[automerger skipped] Merge "Move bionic test libraries to a default, for easy consumption in cts." into android14-tests-dev am: 430eb3e96b am: f7121f3f3c am: 2cfdef9476 -s ours

am skip reason: Merged-In I271668e83aed239107b9129dfb707f03bae47cfa with SHA-1 f5c9a65046 is already in history

Original change: https://android-review.googlesource.com/c/platform/bionic/+/3394596

Change-Id: I9a258d32166289e29f98f6709dafa048e7f35575
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
diff --git a/Android.mk b/Android.mk
deleted file mode 100644
index 888404c..0000000
--- a/Android.mk
+++ /dev/null
@@ -1,4 +0,0 @@
-LOCAL_PATH := $(call my-dir)
-
-include $(call all-makefiles-under,$(LOCAL_PATH))
-
diff --git a/OWNERS b/OWNERS
index 3818b1d..1859b9e 100644
--- a/OWNERS
+++ b/OWNERS
@@ -5,3 +5,5 @@
 danalbert@google.com
 rprichard@google.com
 yabinc@google.com
+
+per-file docs/mte.md=eugenis@google.com,fmayer@google.com,pcc@google.com
diff --git a/README.md b/README.md
index 8d8e583..953e983 100644
--- a/README.md
+++ b/README.md
@@ -1,15 +1,11 @@
-# bionic
+# bionic maintainer overview
 
 [bionic](https://en.wikipedia.org/wiki/Bionic_(software)) is Android's
 C library, math library, and dynamic linker.
 
-# Using bionic as an app developer
-
-See the [user documentation](docs/).
-
-# Working on bionic itself
-
-This documentation is about making changes to bionic itself.
+This document is a high-level overview of making changes to bionic itself.
+If you're trying to _use_ bionic, or want more in-depth information about
+some part of the implementation, see [all the bionic documentation](docs/).
 
 ## What are the big pieces of bionic?
 
@@ -48,7 +44,9 @@
 #### tests/ --- unit tests
 
 The `tests/` directory contains unit tests. Roughly arranged as one file per
-publicly-exported header file.
+publicly-exported header file. `tests/headers/` contains compile-only tests
+that just check that things are _in_ the headers, whereas the "real" tests
+check actual _behavior_.
 
 #### benchmarks/ --- benchmarks
 
@@ -83,12 +81,29 @@
     # files written by us and files taken from BSD.
 
   kernel/
-    # The kernel uapi header files. These are scrubbed copies of the originals
-    # in external/kernel-headers/. These files must not be edited directly. The
-    # generate_uapi_headers.sh script should be used to go from a kernel tree to
-    # external/kernel-headers/ --- this takes care of the architecture-specific
-    # details. The update_all.py script should be used to regenerate bionic's
-    # scrubbed headers from external/kernel-headers/.
+    # The kernel uapi header files. The "libc" headers that developers actually
+    # use are a mixture of headers provided by the C library itself (which,
+    # for bionic, are in bionic/libc/include/) and headers provided by the
+    # kernel. This is because ISO C and POSIX will say things like "there is
+    # a constant called PROT_NONE" or "there is a type called struct stat,
+    # and it contains a field called st_size", but they won't necessarily say
+    # what _value_ that constant has, or what _order_ the fields in a type
+    # are in. Those are left to individual kernels' ABIs. In an effort to --
+    # amongst other things, see https://lwn.net/Articles/507794/ for more
+    # background -- reduce copy & paste, the Linux kernel makes all the types
+    # and constants that make up the "userspace API" (uapi) available as
+    # headers separate from their internal-use headers (which contain all kinds
+    # of extra stuff that isn't available to userspace). We import the latest
+    # released kernel's uapi headers in external/kernel-headers/, but we don't
+    # use those headers directly in bionic. The bionic/libc/kernel/ directory
+    # contains scrubbed copies of the originals from external/kernel-headers/.
+    # The generate_uapi_headers.sh script should be used to go from a kernel
+    # tree to external/kernel-headers/ --- this takes care of the
+    # architecture-specific details. The update_all.py script should then be
+    # used to regenerate bionic's copy from external/kernel-headers/.
+    # The files in bionic must not be edited directly because any local changes
+    # will be overwritten by the next update. "Updating kernel header files"
+    # below has more information on this process.
 
   private/
     # These are private header files meant for use within bionic itself.
@@ -99,10 +114,18 @@
   upstream-freebsd/
   upstream-netbsd/
   upstream-openbsd/
-    # These directories contain unmolested upstream source. Any time we can
-    # just use a BSD implementation of something unmodified, we should.
-    # The structure under these directories mimics the upstream tree,
-    # but there's also...
+    # These directories contain upstream source with no local changes.
+    # Any time we can just use a BSD implementation of something unmodified,
+    # we should. Ideally these should probably have been three separate git
+    # projects in external/, but they're here instead mostly by historical
+    # accident (because it wouldn't have been easy to import just the tiny
+    # subset of these operating systems that -- unlike Android -- just have
+    # one huge repository rather than lots of little ones and a mechanism
+    # like our `repo` tool).
+    # The structure under these directories mimics the relevant upstream tree,
+    # but in order to actually be able to compile this code in our tree
+    # _without_ making modifications to the source files directly, we also
+    # have the following subdirectories in each one that aren't upstream:
     android/
       include/
         # This is where we keep the hacks necessary to build BSD source
@@ -132,9 +155,9 @@
   tzcode/
     # A modified superset of the IANA tzcode. Most of the modifications relate
     # to Android's use of a single file (with corresponding index) to contain
-    # time zone data.
+    # timezone data.
   zoneinfo/
-    # Android-format time zone data.
+    # Android-format timezone data.
     # See 'Updating tzdata' later.
 ```
 
@@ -154,7 +177,7 @@
 library that would make more sense as the place to add the wrapper.
 
 In all other cases, you should use
-[syscall(3)](http://man7.org/linux/man-pages/man2/syscall.2.html) instead.
+[syscall(3)](https://man7.org/linux/man-pages/man2/syscall.2.html) instead.
 
 Adding a system call usually involves:
 
@@ -286,14 +309,14 @@
 
 Note that if you're actually just trying to expose device-specific headers to
 build your device drivers, you shouldn't modify bionic. Instead use
-`TARGET_DEVICE_KERNEL_HEADERS` and friends described in [config.mk](https://android.googlesource.com/platform/build/+/master/core/config.mk#186).
+`TARGET_DEVICE_KERNEL_HEADERS` and friends described in [config.mk](https://android.googlesource.com/platform/build/+/main/core/config.mk#186).
 
 
 ## Updating tzdata
 
 This is handled by the libcore team, because they own icu, and that needs to be
 updated in sync with bionic). See
-[system/timezone/README.android](https://android.googlesource.com/platform/system/timezone/+/master/README.android).
+[system/timezone/README.android](https://android.googlesource.com/platform/system/timezone/+/main/README.android).
 
 
 ## Verifying changes
@@ -309,7 +332,9 @@
 
 ## Running the tests
 
-The tests are all built from the tests/ directory.
+The tests are all built from the tests/ directory. There is a separate
+directory `benchmarks/` containing benchmarks, and that has its own
+documentation on [running the benchmarks](benchmarks/README.md).
 
 ### Device tests
 
@@ -372,6 +397,19 @@
 
     $ ./tests/run-on-host.sh glibc
 
+### Against musl
+
+Another way to verify test behavior is to run against musl on the host. glibc
+musl don't always match, so this can be a good way to find the more complicated
+corners of the spec. If they *do* match, bionic probably should too!
+
+    $ OUT_DIR=$(ANDROID_BUILD_TOP)/musl-out ./tests/run-on-host.sh musl
+
+Note: the alternate OUT_DIR is used to avoid causing excessive rebuilding when
+switching between glibc and musl. The first musl test run will be expensive
+because it will not reuse any already built artifacts, but subsequent runs will
+be cheaper than if you hadn't used it.
+
 ## Gathering test coverage
 
 To get test coverage for bionic, use `//bionic/build/coverage.sh`. Before
diff --git a/TEST_MAPPING b/TEST_MAPPING
index f56e16a..e98c2ff 100644
--- a/TEST_MAPPING
+++ b/TEST_MAPPING
@@ -10,6 +10,9 @@
       "name": "linker-unit-tests"
     },
     {
+      "name": "CtsBionicAppTestCases"
+    },
+    {
       "name": "CtsBionicTestCases"
     },
     {
@@ -54,6 +57,9 @@
       "name": "linker-unit-tests"
     },
     {
+      "name": "CtsBionicAppTestCases"
+    },
+    {
       "name": "CtsBionicTestCases"
     },
     {
@@ -82,6 +88,12 @@
     },
     {
       "name": "toybox-tests"
+    },
+    {
+      "name": "hwasan_test"
+    },
+    {
+      "name": "hwasan_test_static"
     }
   ],
   "kernel-presubmit": [
diff --git a/android-changes-for-ndk-developers.md b/android-changes-for-ndk-developers.md
index 8ffd96f..e9cfbac 100644
--- a/android-changes-for-ndk-developers.md
+++ b/android-changes-for-ndk-developers.md
@@ -7,16 +7,13 @@
 behavior changes.
 
 See also the
-[unwinder documentation](https://android.googlesource.com/platform/system/unwinding/+/refs/heads/master/libunwindstack/AndroidVersions.md)
+[unwinder documentation](https://android.googlesource.com/platform/system/unwinding/+/refs/heads/main/libunwindstack/AndroidVersions.md)
 for details about changes in stack unwinding (crash dumps) between
 different releases.
 
-Required tools: the NDK has an _arch_-linux-android-readelf binary
-(e.g. arm-linux-androideabi-readelf or i686-linux-android-readelf)
-for each architecture (under toolchains/), but you can use readelf for
-any architecture, as we will be doing basic inspection only. On Linux
-you need to have the “binutils” package installed for readelf,
-and “pax-utils” for scanelf.
+Required tools: the NDK has an `llvm-readelf` binary that understands all the
+architecture-specific details of all Android's supported architectures. Recent
+versions of Android also have toybox readelf on the device.
 
 
 ## How we manage incompatible changes
@@ -38,42 +35,44 @@
 check logcat for warnings until their app stops functioning, so the
 toasts help bring some visibility to the issues before it's too late.
 
+
 ## Changes to library dependency resolution
 
 Until it was [fixed](https://issuetracker.google.com/36950617) in
-JB-MR2, Android didn't include the application library directory
+API level 18, Android didn't include the application library directory
 on the dynamic linker's search path. This meant that apps
 had to call `dlopen` or `System.loadLibrary` on all transitive
 dependencies before loading their main library. Worse, until it was
-[fixed](https://issuetracker.google.com/36935779) in JB-MR2, the
+[fixed](https://issuetracker.google.com/36935779) in API level 18, the
 dynamic linker's caching code cached failures too, so it was necessary
 to topologically sort your libraries and load them in reverse order.
 
-If you need to support Android devices running OS
-versions older than JB-MR2, you might want to consider
+If you need to support Android devices running OS versions older than
+API level 23, you might want to consider
 [ReLinker](https://github.com/KeepSafe/ReLinker) which claims to solve
-these problems automatically.
+these and other problems automatically.
 
 Alternatively, if you don't have too many dependencies, it can be easiest to
 simply link all of your code into one big library and sidestep the details of
 library and symbol lookup changes on all past (and future) Android versions.
 
+
 ## Changes to library search order
 
 We have made various fixes to library search order when resolving symbols.
 
-With API 22, load order switched from depth-first to breadth-first to
+With API level 22, load order switched from depth-first to breadth-first to
 fix dlsym(3).
 
-Before API 23, the default search order was to try the main executable,
+Before API level 23, the default search order was to try the main executable,
 LD_PRELOAD libraries, the library itself, and its DT_NEEDED libraries
-in that order. For API 23 and later, for any given library, the dynamic
+in that order. For API level 23 and later, for any given library, the dynamic
 linker divides other libraries into the global group and the local
 group. The global group is shared by all libraries and contains the main
 executable, LD_PRELOAD libraries, and any library with the DF_1_GLOBAL
 flag set (by passing “-z global” to ld(1)). The local group is
 the breadth-first transitive closure of the library and its DT_NEEDED
-libraries. The M dynamic linker searches the global group followed by
+libraries. The API level 23 dynamic linker searches the global group followed by
 the local group. This allows ASAN, for example, to ensure that it can
 intercept any symbol.
 
@@ -89,7 +88,7 @@
 ## RTLD_LOCAL (Available in API level >= 23)
 
 The dlopen(3) RTLD_LOCAL flag used to be ignored but is implemented
-correctly in API 23 and later. Note that RTLD_LOCAL is the default,
+correctly in API level 23 and later. Note that RTLD_LOCAL is the default,
 so even calls to dlopen(3) that didn’t explicitly use RTLD_LOCAL will
 be affected (unless they explicitly used RTLD_GLOBAL). With RTLD_LOCAL,
 symbols will not be made available to libraries loaded by later calls
@@ -98,10 +97,12 @@
 
 ## GNU hashes (Availible in API level >= 23)
 
-The GNU hash style available with --hash-style=gnu allows faster
-symbol lookup and is now supported by the dynamic linker in API 23 and
-above. (Use --hash-style=both if you want to build code that uses this
-feature >= Android M but still works on older releases.)
+The GNU hash style available with `--hash-style=gnu` allows faster
+symbol lookup and is supported by Android's dynamic linker in API level 23 and
+above. Use `--hash-style=both` if you want to build code that uses this
+feature in new enough releases but still works on older releases.
+If you're using the NDK, clang chooses the right option
+(automatically)[https://github.com/android/ndk/issues/2005].
 
 
 ## Correct soname/path handling (Available in API level >= 23)
@@ -146,8 +147,8 @@
 (on a 4096-byte boundary) in the zip file and stored uncompressed.
 Current versions of the zipalign tool take care of alignment.
 
-Note that in API level 23 and above dlopen(3) will open a library from
-any zip file, not just your APK. Just give dlopen(3) a path of the form
+Note that in API level 23 and above dlopen(3) can open a library from
+any zip file, not just an APK. Just give dlopen(3) a path of the form
 "my_zip_file.zip!/libs/libstuff.so". As with APKs, the library must be
 page-aligned and stored uncompressed for this to work.
 
@@ -155,34 +156,26 @@
 ## Private API (Enforced for API level >= 24)
 
 Native libraries must use only public API, and must not link against
-non-NDK platform libraries. Starting with API 24 this rule is enforced and
-applications are no longer able to load non-NDK platform libraries. The
-rule is enforced by the dynamic linker, so non-public libraries
+non-NDK platform libraries. On devices running API level 24 or later,
+this rule is enforced and applications are no longer able to load all
+non-NDK platform libraries. This was to prevent future issues similar
+to the disruption caused when Android switched from OpenSSL to BoringSSL
+at API level 23.
+
+The rule is enforced by the dynamic linker, so non-public libraries
 are not accessible regardless of the way code tries to load them:
-System.loadLibrary, DT_NEEDED entries, and direct calls to dlopen(3)
+System.loadLibrary(), DT_NEEDED entries, and direct calls to dlopen(3)
 will all work exactly the same.
 
-Users should have a consistent app experience across updates,
-and developers shouldn't have to make emergency app updates to
-handle platform changes. For that reason, we recommend against using
-private C/C++ symbols. Private symbols aren't tested as part of the
-Compatibility Test Suite (CTS) that all Android devices must pass. They
-may not exist, or they may behave differently. This makes apps that use
-them more likely to fail on specific devices, or on future releases ---
-as many developers found when Android 6.0 Marshmallow switched from
-OpenSSL to BoringSSL.
-
-In order to reduce the user impact of this transition, we've identified
-a set of libraries that see significant use from Google Play's
-most-installed apps, and that are feasible for us to support in the
+In order to reduce the user impact of this transition, we identified
+a set of libraries that saw significant use from Google Play's
+most-installed apps and were feasible for us to support in the
 short term (including libandroid_runtime.so, libcutils.so, libcrypto.so,
-and libssl.so). In order to give you more time to transition, we will
-temporarily support these libraries; so if you see a warning that means
-your code will not work in a future release -- please fix it now!
-
-Between O and R, this compatibility mode could be disabled by setting a
-system property (`debug.ld.greylist_disabled`). This property is ignored
-in S and later.
+and libssl.so). In order to give app developers more time to transition,
+we allowed access to these libraries for apps with a target API level < 24.
+On devices running API level 26 to API level 30, this compatibility mode could be
+disabled by setting a system property (`debug.ld.greylist_disabled`).
+This property is ignored on devices running API level 31 and later.
 
 ```
 $ readelf --dynamic libBroken.so | grep NEEDED
@@ -198,7 +191,7 @@
  0x00000001 (NEEDED)                     Shared library: [libc.so]
 ```
 
-*Potential problems*: starting from API 24 the dynamic linker will not
+*Potential problems*: starting from API level 24 the dynamic linker will not
 load private libraries, preventing the application from loading.
 
 *Resolution*: rewrite your native code to rely only on public API. As a
@@ -227,7 +220,7 @@
 information using widely-available tools.)
 
 ```
-$ readelf --header libBroken.so | grep 'section headers'
+$ readelf --headers libBroken.so | grep 'section headers'
   Start of section headers:          0 (bytes into file)
   Size of section headers:           0 (bytes)
   Number of section headers:         0
@@ -236,15 +229,16 @@
 *Resolution*: remove the extra steps from your build that strip section
 headers.
 
+
 ## Text Relocations (Enforced for API level >= 23)
 
-Starting with API 23, shared objects must not contain text
-relocations. That is, the code must be loaded as is and must not be
-modified. Such an approach reduces load time and improves security.
+Apps with a target API level >= 23 cannot load shared objects that contain text
+relocations. Such an approach reduces load time and improves security. This was
+only a change for 32-bit, because 64-bit never supported text relocations.
 
-The usual reason for text relocations is non-position independent
-hand-written assembler. This is not common. Use the scanelf tool as
-described in our documentation for further diagnostics:
+The usual reason for text relocations was non-position independent
+hand-written assembler. This is not common. You can use the scanelf tool
+from the pax-utils debian package for further diagnostics:
 
 ```
 $ scanelf -qT libTextRel.so
@@ -254,10 +248,10 @@
 ```
 
 If you have no scanelf tool available, it is possible to do a basic
-check with readelf instead, look for either a TEXTREL entry or the
+check with readelf instead. Look for either a TEXTREL entry or the
 TEXTREL flag. Either alone is sufficient. (The value corresponding to the
 TEXTREL entry is irrelevant and typically 0 --- simply the presence of
-the TEXTREL entry declares that the .so contains text relocations). This
+the TEXTREL entry declares that the .so contains text relocations.) This
 example has both indicators present:
 
 ```
@@ -274,9 +268,8 @@
 
 *Potential problems*: Relocations enforce code pages being writable, and
 wastefully increase the number of dirty pages in memory. The dynamic
-linker has issued warnings about text relocations since Android K
-(API 19), but on API 23 and above it refuses to load code with text
-relocations.
+linker issued warnings about text relocations from API level 19, but on API
+level 23 and above refuses to load code with text relocations.
 
 *Resolution*: rewrite assembler to be position independent to ensure
 no text relocations are necessary. The
@@ -294,9 +287,9 @@
 leaving the business of finding the library at runtime to the dynamic
 linker.
 
-Before API 23, Android's dynamic linker ignored the full path, and
+Before API level 23, Android's dynamic linker ignored the full path, and
 used only the basename (the part after the last ‘/') when looking
-up the required libraries. Since API 23 the runtime linker will honor
+up the required libraries. Since API level 23 the runtime linker will honor
 the DT_NEEDED exactly and so it won't be able to load the library if
 it is not present in that exact location on the device.
 
@@ -313,8 +306,8 @@
 [C:\Users\build\Android\ci\jni\libBroken.so]
 ```
 
-*Potential problems*: before API 23 the DT_NEEDED entry's basename was
-used, but starting from API 23 the Android runtime will try to load the
+*Potential problems*: before API level 23 the DT_NEEDED entry's basename was
+used, but starting from API level 23 the Android runtime will try to load the
 library using the path specified, and that path won't exist on the
 device. There are broken third-party toolchains/build systems that use
 a path on a build host instead of the SONAME.
@@ -348,16 +341,18 @@
 configured your build system to generate incorrect SONAME entries (using
 the `-soname` linker option).
 
+
 ## `__register_atfork` (Available in API level >= 23)
 
 To allow `atfork` and `pthread_atfork` handlers to be unregistered on
-`dlclose`, the implementation changed in API level 23. Unfortunately this
-requires a new libc function `__register_atfork`. Code using these functions
-that is built with a target API level >= 23 therefore will not load on earlier
-versions of Android, with an error referencing `__register_atfork`.
+`dlclose`, API level 23 added a new libc function `__register_atfork`.
+This means that code using `atfork` or `pthread_atfork` functions that is
+built with a `minSdkVersion` >= 23 will not load on earlier versions of
+Android, with an error referencing `__register_atfork`.
 
-*Resolution*: build your code with an NDK target API level that matches your
-app's minimum API level, or avoid using `atfork`/`pthread_atfork`.
+*Resolution*: build your code with `minSdkVersion` that matches the minimum
+API level you actually support, or avoid using `atfork`/`pthread_atfork`.
+
 
 ## DT_RUNPATH support (Available in API level >= 24)
 
@@ -387,6 +382,7 @@
 into your app. The middleware vendor is aware of the problem and has a fix
 available.
 
+
 ## Invalid ELF header/section headers (Enforced for API level >= 26)
 
 In API level 26 and above the dynamic linker checks more values in
@@ -401,9 +397,10 @@
 ELF files. Note that using them puts application under high risk of
 being incompatible with future versions of Android.
 
-## Enable logging of dlopen/dlsym and library loading errors for apps (Available in Android O)
 
-Starting with Android O it is possible to enable logging of dynamic
+## Enable logging of dlopen/dlsym and library loading errors for apps (Available for API level >= 26)
+
+On devices running API level 26 or later you can enable logging of dynamic
 linker activity for debuggable apps by setting a property corresponding
 to the fully-qualified name of the specific app:
 ```
@@ -427,12 +424,13 @@
 adb shell setprop debug.ld.all dlerror,dlopen
 ```
 
+
 ## dlclose interacts badly with thread local variables with non-trivial destructors
 
 Android allows `dlclose` to unload a library even if there are still
 thread-local variables with non-trivial destructors. This leads to
 crashes when a thread exits and attempts to call the destructor, the
-code for which has been unloaded (as in [issue 360], fixed in P).
+code for which has been unloaded (as in [issue 360], fixed in API level 28).
 
 [issue 360]: https://github.com/android-ndk/ndk/issues/360
 
@@ -440,18 +438,31 @@
 set (so that calls to `dlclose` don't actually unload the library)
 are possible workarounds.
 
-|                   | Pre-M                      | M+      | P+    |
+|                   | API level < 23             | >= 23   | >= 28 |
 | ----------------- | -------------------------- | ------- | ----- |
 | No workaround     | Works for static STL       | Broken  | Works |
 | `-Wl,-z,nodelete` | Works for static STL       | Works   | Works |
 | No `dlclose`      | Works                      | Works   | Works |
 
-## Use of IFUNC in libc (True for all API levels on devices running Q)
 
-Starting with Android Q (API level 29), libc uses
-[IFUNC](https://sourceware.org/glibc/wiki/GNU_IFUNC) functionality in
-the dynamic linker to choose optimized assembler routines at run time
-rather than at build time. This lets us use the same `libc.so` on all
+## ELF TLS (Available for API level >= 29)
+
+Android supports [ELF TLS](docs/elf-tls.md) starting at API level 29. Since
+NDK r26, clang will automatically enable ELF TLS for `minSdkVersion 29` or
+higher. Otherwise, the existing emutls implementation (which uses
+`pthread_key_create()` behind the scenes) will continue to be used. This
+means that convenient C/C++ thread-local syntax is available at any API level;
+at worst it will perform similarly to "roll your own" thread locals using
+`pthread_key_create()` but at best you'll get the performance benefit of
+ELF TLS, and the NDK will take care of the details.
+
+
+## Use of IFUNC in libc (True for all API levels on devices running Android 10)
+
+On devices running API level 29, libc uses
+[IFUNC](https://sourceware.org/glibc/wiki/GNU_IFUNC)
+functionality in the dynamic linker to choose optimized assembler routines at
+run time rather than at build time. This lets us use the same `libc.so` on all
 devices, and is similar to what other OSes already did. Because the zygote
 uses the C library, this decision is made long before we know what API
 level an app targets, so all code sees the new IFUNC-using C library.
@@ -460,6 +471,7 @@
 with IFUNC relocations. The affected functions are from `<string.h>`, but
 may expand to include more functions (and more libraries) in future.
 
+
 ## Relative relocations (RELR)
 
 Android added experimental support for RELR relative relocations
@@ -476,6 +488,36 @@
 OS private use constants for RELR, nor for ELF files using packed
 relocations.
 
+Prior to API level 35, there was a bug that caused RELR relocations to
+be applied after packed relocations. This meant that ifunc resolvers
+referenced by `R_*_IRELATIVE` relocations in the packed relocation
+section would have been able to read globals with RELR relocations
+before they were relocated. The version of `lld` in the NDK has never
+produced binaries affected by this bug, but third-party toolchains
+should make sure not to store `R_*_IRELATIVE` relocations in packed
+relocation sections in order to maintain compatibility with API levels
+below 35.
+
 You can read more about relative relocations
 and their long and complicated history at
 https://maskray.me/blog/2021-10-31-relative-relocations-and-relr.
+
+
+## No more sentinels in .preinit_array/.init_array/.fini_array sections of executables (in All API levels)
+
+In Android <= API level 34 and NDK <= r26, Android used sentinels in the
+`.preinit_array`/`.init_array`/`.fini_array` sections of executables to locate
+the start and end of these arrays. When building with LTO, the function pointers
+in the arrays can be reordered, making sentinels no longer work. This prevents
+constructors for global C++ variables from being called in static executables
+when using LTO.
+
+To fix this, in Android >= API level 35 and NDK >= r27, we removed sentinels
+and switched to using symbols inserted by LLD (like `__init_array_start`,
+`__init_array_end`) to locate the arrays. This also avoids the need for an
+empty section when there are no corresponding functions.
+
+For dynamic executables, we kept sentinel support in `crtbegin_dynamic.o` and
+`libc.so`. This ensures that executables built with newer `crtbegin_dynamic.o`
+(in NDK >= r27) work with older `libc.so` (in Android <= API level 34), and
+vice versa.
diff --git a/apex/Android.bp b/apex/Android.bp
index 6201ad1..d04907b 100644
--- a/apex/Android.bp
+++ b/apex/Android.bp
@@ -43,7 +43,10 @@
     ],
     arch: {
         arm64: {
-            native_shared_libs: ["libc_hwasan", "libclang_rt.hwasan"],
+            native_shared_libs: [
+                "libc_hwasan",
+                "libclang_rt.hwasan",
+            ],
         },
     },
     binaries: [
@@ -89,6 +92,7 @@
         "crtbegin_so",
         "crtend_android",
         "crtend_so",
+        "crt_pad_segment",
     ],
 }
 
diff --git a/benchmarks/Android.bp b/benchmarks/Android.bp
index 17d2d68..d1cdfec 100644
--- a/benchmarks/Android.bp
+++ b/benchmarks/Android.bp
@@ -15,6 +15,7 @@
 //
 
 package {
+    default_team: "trendy_team_native_tools_libraries",
     default_applicable_licenses: ["bionic_benchmarks_license"],
 }
 
@@ -57,6 +58,7 @@
         "stdio_benchmark.cpp",
         "stdlib_benchmark.cpp",
         "string_benchmark.cpp",
+        "syscall_mm_benchmark.cpp",
         "time_benchmark.cpp",
         "unistd_benchmark.cpp",
         "wctype_benchmark.cpp",
@@ -71,6 +73,7 @@
 
     target: {
         android: {
+            header_libs: ["bionic_libc_platform_headers"],
             static_libs: [
                 "libmeminfo",
                 "libprocinfo",
@@ -154,7 +157,13 @@
         "libbase",
         "libBionicBenchmarksUtils",
     ],
-    data: ["test_suites/*"],
+    data: [
+        "test_suites/*",
+        "suites/*",
+        ":bionic-benchmarks",
+    ],
+    test_suites: ["device-tests"],
+    require_root: true,
 }
 
 cc_binary {
diff --git a/benchmarks/NOTICE b/benchmarks/NOTICE
index e46a624..31a2570 100644
--- a/benchmarks/NOTICE
+++ b/benchmarks/NOTICE
@@ -206,3 +206,19 @@
 
 -------------------------------------------------------------------
 
+Copyright (C) 2023 The Android Open Source Project
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+     http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+
+-------------------------------------------------------------------
+
diff --git a/benchmarks/README.md b/benchmarks/README.md
index 1fd17a1..319db25 100644
--- a/benchmarks/README.md
+++ b/benchmarks/README.md
@@ -19,6 +19,12 @@
 By default, `bionic-benchmarks` runs all of the benchmarks in alphabetical order. Pass
 `--benchmark_filter=getpid` to run just the benchmarks with "getpid" in their name.
 
+Note that we also build _static_ benchmark binaries.
+They're useful for testing on devices running different versions of Android, or running non-Android OSes.
+Those binaries are called `bionic-benchmarks-static` instead.
+Copy from `out/target/product/<device>/symbols/data/benchmarktest64/bionic-benchmarks-static` instead of
+`out/target/product/<device>/data/benchmarktest64/bionic-benchmarks-static` if you want symbols for perf(1).
+
 ### Host benchmarks
 
 See the `benchmarks/run-on-host.sh` script. The host benchmarks can be run with 32-bit or 64-bit
@@ -183,6 +189,5 @@
 
 Some devices have a `perf-setup.sh` script that locks CPU and GPU frequencies. Some TradeFed
 benchmarks appear to be using the script. For more information:
- * run `get_build_var BOARD_PERFSETUP_SCRIPT`
- * run `m perf-setup` to install the script into `${OUT}/data/local/tmp/perf-setup.sh`
- * see: https://android.googlesource.com/platform/platform_testing/+/refs/heads/master/scripts/perf-setup/
+ * run `adb shell perf-setup.sh` to execute the script, it is already by default be installed on device for eng and userdebug build
+ * see: https://android.googlesource.com/platform/platform_testing/+/refs/heads/main/scripts/perf-setup/
diff --git a/benchmarks/ScopedDecayTimeRestorer.h b/benchmarks/ScopedDecayTimeRestorer.h
new file mode 100644
index 0000000..5835b43
--- /dev/null
+++ b/benchmarks/ScopedDecayTimeRestorer.h
@@ -0,0 +1,40 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#pragma once
+
+#include <malloc.h>
+
+#if defined(__BIONIC__)
+
+#include "platform/bionic/malloc.h"
+
+class ScopedDecayTimeRestorer {
+ public:
+  ScopedDecayTimeRestorer() {
+    bool value;
+    if (android_mallopt(M_GET_DECAY_TIME_ENABLED, &value, sizeof(value))) {
+      saved_value_ = value ? 1 : 0;
+    }
+  }
+
+  virtual ~ScopedDecayTimeRestorer() { mallopt(M_DECAY_TIME, saved_value_); }
+
+ private:
+  int saved_value_ = 0;
+};
+
+#endif
diff --git a/benchmarks/TEST_MAPPING b/benchmarks/TEST_MAPPING
new file mode 100644
index 0000000..1864b2b
--- /dev/null
+++ b/benchmarks/TEST_MAPPING
@@ -0,0 +1,7 @@
+{
+  "presubmit": [
+    {
+      "name": "bionic-benchmarks-tests"
+    }
+  ]
+}
diff --git a/benchmarks/atomic_benchmark.cpp b/benchmarks/atomic_benchmark.cpp
index ea008d4..e3a6fb2 100644
--- a/benchmarks/atomic_benchmark.cpp
+++ b/benchmarks/atomic_benchmark.cpp
@@ -37,7 +37,9 @@
 // We assume that the compiler is not smart enough to optimize away fences in a single-threaded
 // program. If that changes, we'll need to add a second thread.
 
+// We increment the counter this way to avoid -Wdeprecated-volatile warnings.
 static volatile unsigned counter;
+#define INC_COUNTER() counter = counter + 1
 
 std::atomic<int> test_loc(0);
 
@@ -47,7 +49,7 @@
 
 void BM_atomic_empty(benchmark::State& state) {
   while (state.KeepRunning()) {
-    ++counter;
+    INC_COUNTER();
   }
 }
 BIONIC_BENCHMARK(BM_atomic_empty);
@@ -56,7 +58,7 @@
   unsigned result = 0;
   while (state.KeepRunning()) {
     result += test_loc.load(std::memory_order_relaxed);
-    ++counter;
+    INC_COUNTER();
   }
   sink = result;
 }
@@ -66,7 +68,7 @@
   unsigned result = 0;
   while (state.KeepRunning()) {
     result += test_loc.load(std::memory_order_acquire);
-    ++counter;
+    INC_COUNTER();
   }
   sink = result;
 }
@@ -76,7 +78,7 @@
   int i = counter;
   while (state.KeepRunning()) {
     test_loc.store(++i, std::memory_order_release);
-    ++counter;
+    INC_COUNTER();
   }
 }
 BIONIC_BENCHMARK(BM_atomic_store_release);
@@ -85,7 +87,7 @@
   int i = counter;
   while (state.KeepRunning()) {
     test_loc.store(++i, std::memory_order_seq_cst);
-    ++counter;
+    INC_COUNTER();
   }
 }
 BIONIC_BENCHMARK(BM_atomic_store_seq_cst);
@@ -94,7 +96,7 @@
   unsigned result = 0;
   while (state.KeepRunning()) {
     result += test_loc.fetch_add(1, std::memory_order_relaxed);
-    ++counter;
+    INC_COUNTER();
   }
   sink = result;
 }
@@ -104,7 +106,7 @@
   unsigned result = 0;
   while (state.KeepRunning()) {
     result += test_loc.fetch_add(1, std::memory_order_seq_cst);
-    ++counter;
+    INC_COUNTER();
   }
   sink = result;
 }
@@ -118,7 +120,7 @@
   while (state.KeepRunning()) {
     result += test_loc.load(std::memory_order_relaxed);
     std::atomic_thread_fence(std::memory_order_acquire);
-    ++counter;
+    INC_COUNTER();
   }
   sink = result;
 }
@@ -129,7 +131,7 @@
   while (state.KeepRunning()) {
     result += test_loc.load(std::memory_order_relaxed);
     std::atomic_thread_fence(std::memory_order_seq_cst);
-    ++counter;
+    INC_COUNTER();
   }
   sink = result;
 }
@@ -142,7 +144,8 @@
   while (state.KeepRunning()) {
     {
       std::lock_guard<std::mutex> _(mtx);
-      result += ++counter;
+      INC_COUNTER();
+      result += counter;
     }
   }
   sink = result;
diff --git a/benchmarks/bionic_benchmarks.cpp b/benchmarks/bionic_benchmarks.cpp
index 187ee76..b88c6e5 100644
--- a/benchmarks/bionic_benchmarks.cpp
+++ b/benchmarks/bionic_benchmarks.cpp
@@ -336,23 +336,43 @@
     return to_populate;
   }
 
-  to_populate->push_back(std::vector<int64_t>());
-  std::stringstream sstream(args);
-  std::string argstr;
-  while (sstream >> argstr) {
-    char* check_null;
-    int converted = static_cast<int>(strtol(argstr.c_str(), &check_null, 10));
-    if (*check_null) {
-      errx(1, "ERROR: Args str %s contains an invalid macro or int.", args.c_str());
+  std::string trimmed_args = android::base::Trim(args);
+  if (!trimmed_args.empty()) {
+    std::stringstream sstream(trimmed_args);
+    std::string argstr;
+    while (sstream >> argstr) {
+      char* check_null;
+      int converted = static_cast<int>(strtol(argstr.c_str(), &check_null, 10));
+      if (*check_null == '\0') {
+        to_populate->emplace_back(std::vector<int64_t>{converted});
+        continue;
+      } else if (*check_null == '/') {
+        // The only supported format with a / is \d+(/\d+)\s*. Example 8/8/8 or 16/23.
+        std::vector<int64_t> test_args{converted};
+        while (true) {
+          converted = static_cast<int>(strtol(check_null + 1, &check_null, 10));
+          test_args.push_back(converted);
+          if (*check_null == '\0') {
+            to_populate->emplace_back(std::move(test_args));
+            break;
+          } else if (*check_null != '/') {
+            errx(1, "ERROR: Args str %s contains an invalid macro or int.", args.c_str());
+          }
+        }
+      } else {
+        errx(1, "ERROR: Args str %s contains an invalid macro or int.", args.c_str());
+      }
     }
-    (*to_populate)[0].push_back(converted);
+  } else {
+    // No arguments, only the base benchmark.
+    to_populate->emplace_back(std::vector<int64_t>{});
   }
   return to_populate;
 }
 
 void RegisterGoogleBenchmarks(bench_opts_t primary_opts, bench_opts_t secondary_opts,
                               const std::string& fn_name, args_vector_t* run_args) {
-  if (g_str_to_func.find(fn_name) == g_str_to_func.end()) {
+  if (!g_str_to_func.contains(fn_name)) {
     errx(1, "ERROR: No benchmark for function %s", fn_name.c_str());
   }
   long iterations_to_use = primary_opts.num_iterations ? primary_opts.num_iterations :
@@ -501,31 +521,41 @@
   all_sizes.insert(all_sizes.end(), kMediumSizes.begin(), kMediumSizes.end());
   all_sizes.insert(all_sizes.end(), kLargeSizes.begin(), kLargeSizes.end());
 
-  std::map<std::string, args_vector_t> args_shorthand {
-    {"AT_COMMON_SIZES", GetArgs(kCommonSizes)},
-    {"AT_SMALL_SIZES", GetArgs(kSmallSizes)},
-    {"AT_MEDIUM_SIZES", GetArgs(kMediumSizes)},
-    {"AT_LARGE_SIZES", GetArgs(kLargeSizes)},
-    {"AT_ALL_SIZES", GetArgs(all_sizes)},
+  int page_sz = getpagesize();
+  std::vector<int> sub_page_sizes = {page_sz / 2, page_sz / 4, page_sz / 8};
+  std::vector<int> multi_page_sizes = {page_sz,      page_sz * 2,  page_sz * 3,  page_sz * 10,
+                                       page_sz * 25, page_sz * 50, page_sz * 75, page_sz * 100};
+  std::vector<int> all_page_sizes(sub_page_sizes);
+  all_page_sizes.insert(all_page_sizes.end(), multi_page_sizes.begin(), multi_page_sizes.end());
 
-    {"AT_ALIGNED_ONEBUF", GetArgs(kCommonSizes, 0)},
-    {"AT_ALIGNED_ONEBUF_SMALL", GetArgs(kSmallSizes, 0)},
-    {"AT_ALIGNED_ONEBUF_MEDIUM", GetArgs(kMediumSizes, 0)},
-    {"AT_ALIGNED_ONEBUF_LARGE", GetArgs(kLargeSizes, 0)},
-    {"AT_ALIGNED_ONEBUF_ALL", GetArgs(all_sizes, 0)},
+  std::map<std::string, args_vector_t> args_shorthand{
+      {"AT_COMMON_SIZES", GetArgs(kCommonSizes)},
+      {"AT_SMALL_SIZES", GetArgs(kSmallSizes)},
+      {"AT_MEDIUM_SIZES", GetArgs(kMediumSizes)},
+      {"AT_LARGE_SIZES", GetArgs(kLargeSizes)},
+      {"AT_ALL_SIZES", GetArgs(all_sizes)},
+      {"AT_SUB_PAGE_SIZES", GetArgs(sub_page_sizes)},
+      {"AT_MULTI_PAGE_SIZES", GetArgs(multi_page_sizes)},
+      {"AT_ALL_PAGE_SIZES", GetArgs(all_page_sizes)},
 
-    {"AT_ALIGNED_TWOBUF", GetArgs(kCommonSizes, 0, 0)},
-    {"AT_ALIGNED_TWOBUF_SMALL", GetArgs(kSmallSizes, 0, 0)},
-    {"AT_ALIGNED_TWOBUF_MEDIUM", GetArgs(kMediumSizes, 0, 0)},
-    {"AT_ALIGNED_TWOBUF_LARGE", GetArgs(kLargeSizes, 0, 0)},
-    {"AT_ALIGNED_TWOBUF_ALL", GetArgs(all_sizes, 0, 0)},
+      {"AT_ALIGNED_ONEBUF", GetArgs(kCommonSizes, 0)},
+      {"AT_ALIGNED_ONEBUF_SMALL", GetArgs(kSmallSizes, 0)},
+      {"AT_ALIGNED_ONEBUF_MEDIUM", GetArgs(kMediumSizes, 0)},
+      {"AT_ALIGNED_ONEBUF_LARGE", GetArgs(kLargeSizes, 0)},
+      {"AT_ALIGNED_ONEBUF_ALL", GetArgs(all_sizes, 0)},
 
-    // Do not exceed 512. that is about the largest number of properties
-    // that can be created with the current property area size.
-    {"NUM_PROPS", args_vector_t{ {1}, {4}, {16}, {64}, {128}, {256}, {512} }},
+      {"AT_ALIGNED_TWOBUF", GetArgs(kCommonSizes, 0, 0)},
+      {"AT_ALIGNED_TWOBUF_SMALL", GetArgs(kSmallSizes, 0, 0)},
+      {"AT_ALIGNED_TWOBUF_MEDIUM", GetArgs(kMediumSizes, 0, 0)},
+      {"AT_ALIGNED_TWOBUF_LARGE", GetArgs(kLargeSizes, 0, 0)},
+      {"AT_ALIGNED_TWOBUF_ALL", GetArgs(all_sizes, 0, 0)},
 
-    {"MATH_COMMON", args_vector_t{ {0}, {1}, {2}, {3} }},
-    {"MATH_SINCOS_COMMON", args_vector_t{ {0}, {1}, {2}, {3}, {4}, {5}, {6}, {7} }},
+      // Do not exceed 512. that is about the largest number of properties
+      // that can be created with the current property area size.
+      {"NUM_PROPS", args_vector_t{{1}, {4}, {16}, {64}, {128}, {256}, {512}}},
+
+      {"MATH_COMMON", args_vector_t{{0}, {1}, {2}, {3}}},
+      {"MATH_SINCOS_COMMON", args_vector_t{{0}, {1}, {2}, {3}, {4}, {5}, {6}, {7}}},
   };
 
   args_vector_t args_onebuf;
diff --git a/benchmarks/ctype_benchmark.cpp b/benchmarks/ctype_benchmark.cpp
index eab0133..b162ea7 100644
--- a/benchmarks/ctype_benchmark.cpp
+++ b/benchmarks/ctype_benchmark.cpp
@@ -16,68 +16,47 @@
 
 #include <ctype.h>
 
+#include <array>
+#include <numeric>
+#include <random>
+
 #include <benchmark/benchmark.h>
 #include "util.h"
 
-BIONIC_TRIVIAL_BENCHMARK(BM_ctype_isalnum_y1, isalnum('A'));
-BIONIC_TRIVIAL_BENCHMARK(BM_ctype_isalnum_y2, isalnum('a'));
-BIONIC_TRIVIAL_BENCHMARK(BM_ctype_isalnum_y3, isalnum('0'));
-BIONIC_TRIVIAL_BENCHMARK(BM_ctype_isalnum_n, isalnum('_'));
+static std::array<int, 128> RandomAscii() {
+  std::array<int, 128> result;
+  std::iota(result.begin(), result.end(), 0);
+  std::shuffle(result.begin(), result.end(), std::mt19937{std::random_device{}()});
+  return result;
+}
 
-BIONIC_TRIVIAL_BENCHMARK(BM_ctype_isalpha_y1, isalpha('A'));
-BIONIC_TRIVIAL_BENCHMARK(BM_ctype_isalpha_y2, isalpha('a'));
-BIONIC_TRIVIAL_BENCHMARK(BM_ctype_isalpha_n, isalpha('_'));
+#define CTYPE_BENCHMARK(__benchmark, fn)                        \
+  static void __benchmark##_##fn(benchmark::State& state) {     \
+    auto chars = RandomAscii();                                 \
+    for (auto _ : state) {                                      \
+      for (char ch : chars) {                                   \
+        benchmark::DoNotOptimize(fn(ch));                       \
+      }                                                         \
+    }                                                           \
+    state.SetBytesProcessed(state.iterations() * chars.size()); \
+  }                                                             \
+  BIONIC_BENCHMARK(__benchmark##_##fn)
 
-BIONIC_TRIVIAL_BENCHMARK(BM_ctype_isascii_y, isascii('x'));
-BIONIC_TRIVIAL_BENCHMARK(BM_ctype_isascii_n, isascii(0x88));
+CTYPE_BENCHMARK(BM_ctype, isalpha);
+CTYPE_BENCHMARK(BM_ctype, isalnum);
+CTYPE_BENCHMARK(BM_ctype, isascii);
+CTYPE_BENCHMARK(BM_ctype, isblank);
+CTYPE_BENCHMARK(BM_ctype, iscntrl);
+CTYPE_BENCHMARK(BM_ctype, isgraph);
+CTYPE_BENCHMARK(BM_ctype, islower);
+CTYPE_BENCHMARK(BM_ctype, isprint);
+CTYPE_BENCHMARK(BM_ctype, ispunct);
+CTYPE_BENCHMARK(BM_ctype, isspace);
+CTYPE_BENCHMARK(BM_ctype, isupper);
+CTYPE_BENCHMARK(BM_ctype, isxdigit);
 
-BIONIC_TRIVIAL_BENCHMARK(BM_ctype_isblank_y1, isblank(' '));
-BIONIC_TRIVIAL_BENCHMARK(BM_ctype_isblank_y2, isblank('\t'));
-BIONIC_TRIVIAL_BENCHMARK(BM_ctype_isblank_n, isblank('_'));
-
-BIONIC_TRIVIAL_BENCHMARK(BM_ctype_iscntrl_y1, iscntrl('\b'));
-BIONIC_TRIVIAL_BENCHMARK(BM_ctype_iscntrl_y2, iscntrl('\x7f'));
-BIONIC_TRIVIAL_BENCHMARK(BM_ctype_iscntrl_n, iscntrl('_'));
-
-BIONIC_TRIVIAL_BENCHMARK(BM_ctype_isdigit_y, iscntrl('0'));
-BIONIC_TRIVIAL_BENCHMARK(BM_ctype_isdigit_n, iscntrl('_'));
-
-BIONIC_TRIVIAL_BENCHMARK(BM_ctype_isgraph_y1, isgraph('A'));
-BIONIC_TRIVIAL_BENCHMARK(BM_ctype_isgraph_y2, isgraph('a'));
-BIONIC_TRIVIAL_BENCHMARK(BM_ctype_isgraph_y3, isgraph('0'));
-BIONIC_TRIVIAL_BENCHMARK(BM_ctype_isgraph_y4, isgraph('_'));
-BIONIC_TRIVIAL_BENCHMARK(BM_ctype_isgraph_n, isgraph(' '));
-
-BIONIC_TRIVIAL_BENCHMARK(BM_ctype_islower_y, islower('x'));
-BIONIC_TRIVIAL_BENCHMARK(BM_ctype_islower_n, islower('X'));
-
-BIONIC_TRIVIAL_BENCHMARK(BM_ctype_isprint_y1, isprint('A'));
-BIONIC_TRIVIAL_BENCHMARK(BM_ctype_isprint_y2, isprint('a'));
-BIONIC_TRIVIAL_BENCHMARK(BM_ctype_isprint_y3, isprint('0'));
-BIONIC_TRIVIAL_BENCHMARK(BM_ctype_isprint_y4, isprint('_'));
-BIONIC_TRIVIAL_BENCHMARK(BM_ctype_isprint_y5, isprint(' '));
-BIONIC_TRIVIAL_BENCHMARK(BM_ctype_isprint_n, isprint('\b'));
-
-BIONIC_TRIVIAL_BENCHMARK(BM_ctype_ispunct_y, ispunct('_'));
-BIONIC_TRIVIAL_BENCHMARK(BM_ctype_ispunct_n, ispunct('A'));
-
-BIONIC_TRIVIAL_BENCHMARK(BM_ctype_isspace_y1, isspace(' '));
-BIONIC_TRIVIAL_BENCHMARK(BM_ctype_isspace_y2, isspace('\t'));
-BIONIC_TRIVIAL_BENCHMARK(BM_ctype_isspace_n, isspace('A'));
-
-BIONIC_TRIVIAL_BENCHMARK(BM_ctype_isupper_y, isupper('X'));
-BIONIC_TRIVIAL_BENCHMARK(BM_ctype_isupper_n, isupper('x'));
-
-BIONIC_TRIVIAL_BENCHMARK(BM_ctype_isxdigit_y1, isxdigit('0'));
-BIONIC_TRIVIAL_BENCHMARK(BM_ctype_isxdigit_y2, isxdigit('a'));
-BIONIC_TRIVIAL_BENCHMARK(BM_ctype_isxdigit_y3, isxdigit('A'));
-BIONIC_TRIVIAL_BENCHMARK(BM_ctype_isxdigit_n, isxdigit('_'));
-
-BIONIC_TRIVIAL_BENCHMARK(BM_ctype_toascii_y, isascii('x'));
-BIONIC_TRIVIAL_BENCHMARK(BM_ctype_toascii_n, isascii(0x88));
-
-BIONIC_TRIVIAL_BENCHMARK(BM_ctype_tolower_y, tolower('X'));
-BIONIC_TRIVIAL_BENCHMARK(BM_ctype_tolower_n, tolower('x'));
-
-BIONIC_TRIVIAL_BENCHMARK(BM_ctype_toupper_y, toupper('x'));
-BIONIC_TRIVIAL_BENCHMARK(BM_ctype_toupper_n, toupper('X'));
+CTYPE_BENCHMARK(BM_ctype, toascii);
+CTYPE_BENCHMARK(BM_ctype, tolower);
+CTYPE_BENCHMARK(BM_ctype, _tolower);
+CTYPE_BENCHMARK(BM_ctype, toupper);
+CTYPE_BENCHMARK(BM_ctype, _toupper);
diff --git a/benchmarks/linker_relocation/Android.bp b/benchmarks/linker_relocation/Android.bp
index b78eb8e..59a0c1c 100644
--- a/benchmarks/linker_relocation/Android.bp
+++ b/benchmarks/linker_relocation/Android.bp
@@ -25,6 +25,7 @@
 // SUCH DAMAGE.
 
 package {
+    default_team: "trendy_team_native_tools_libraries",
     default_applicable_licenses: ["bionic_benchmarks_license"],
 }
 
@@ -68,8 +69,12 @@
 
     compile_multilib: "both",
     multilib: {
-        lib32: { suffix: "32" },
-        lib64: { suffix: "64" },
+        lib32: {
+            suffix: "32",
+        },
+        lib64: {
+            suffix: "64",
+        },
     },
 }
 
diff --git a/benchmarks/linker_relocation/gen/Android.bp b/benchmarks/linker_relocation/gen/Android.bp
index c8f0b4a..d07ebf7 100644
--- a/benchmarks/linker_relocation/gen/Android.bp
+++ b/benchmarks/linker_relocation/gen/Android.bp
@@ -1,8 +1,5 @@
 // AUTO-GENERATED BY gen_bench.py -- do not edit
-package {
-    default_applicable_licenses: ["bionic_benchmarks_license"],
-}
-
+package { default_applicable_licenses: ["bionic_benchmarks_license"], }
 cc_defaults {
     name: "linker_reloc_bench_all_libs",
     runtime_libs: [
diff --git a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_000.S b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_000.S
index c0ad782..af25179 100644
--- a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_000.S
+++ b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_000.S
@@ -13,12 +13,12 @@
 b__MA7naqebvq11WUvqyZrzbelQ1Ri:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_7WUjOybo8OyboVasbRR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq6IrpgbeVAF_7WUjOybo8OyboVasbRR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq6IrpgbeVAF_7WUjOybo8OyboVasbRR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq6IrpgbeVAF_7WUjOybo8OyboVasbRR10qb_qrfgeblRCiz:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVvR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq6IrpgbeVvR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq6IrpgbeVvR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq6IrpgbeVvR10qb_qrfgeblRCiz:
 nop
@@ -43,7 +43,7 @@
 b__MA7naqebvq14NaqebvqEhagvzr8pnyyZnvaREXAF_7Fgevat8RC7_wpynffEXAF_6IrpgbeVF1_RR:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_16xrl_inyhr_cnve_gVCAF_10VachgRiragRoRRR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_16xrl_inyhr_cnve_gVCAF_10VachgRiragRoRRR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_16xrl_inyhr_cnve_gVCAF_10VachgRiragRoRRR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_16xrl_inyhr_cnve_gVCAF_10VachgRiragRoRRR8qb_fcyngRCiCXiz:
 nop
@@ -53,7 +53,7 @@
 b__MA7naqebvq20IrybpvglGenpxreFgngr11trgIrybpvglRvCsF1_:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVssRRAF_19__znc_inyhr_pbzcnerVsF2_AF_4yrffVsRRYo1RRRAF_9nyybpngbeVF2_RRR7qrfgeblRCAF_11__gerr_abqrVF2_CiRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVssRRAF_19__znc_inyhr_pbzcnerVsF2_AF_4yrffVsRRYo1RRRAF_9nyybpngbeVF2_RRR7qrfgeblRCAF_11__gerr_abqrVF2_CiRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVssRRAF_19__znc_inyhr_pbzcnerVsF2_AF_4yrffVsRRYo1RRRAF_9nyybpngbeVF2_RRR7qrfgeblRCAF_11__gerr_abqrVF2_CiRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVssRRAF_19__znc_inyhr_pbzcnerVsF2_AF_4yrffVsRRYo1RRRAF_9nyybpngbeVF2_RRR7qrfgeblRCAF_11__gerr_abqrVF2_CiRR:
 nop
@@ -63,7 +63,7 @@
 b__MA16VachgFgevcFbheprQ2Ri:
 nop
 .data
-.globl b__MGI11WninOOvaqre
+.weak b__MGI11WninOOvaqre
 .type b__MGI11WninOOvaqre,%object
 b__MGI11WninOOvaqre:
 .space __SIZEOF_POINTER__
@@ -88,17 +88,17 @@
 b__MA7naqebvq10VachgDhrhr12nggnpuYbbcreRCAF_6YbbcreRvCSvvvCiRF3_:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_8uneqjner8tencuvpf6pbzzba4I1_29PbybeZbqrRR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_8uneqjner8tencuvpf6pbzzba4I1_29PbybeZbqrRR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_8uneqjner8tencuvpf6pbzzba4I1_29PbybeZbqrRR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_8uneqjner8tencuvpf6pbzzba4I1_29PbybeZbqrRR15qb_zbir_sbejneqRCiCXiz:
 nop
 .data
-.globl b__MGIA7naqebvq6IrpgbeVAF_8uneqjner8tencuvpf6pbzzba4I1_29PbybeZbqrRRR
+.weak b__MGIA7naqebvq6IrpgbeVAF_8uneqjner8tencuvpf6pbzzba4I1_29PbybeZbqrRRR
 .type b__MGIA7naqebvq6IrpgbeVAF_8uneqjner8tencuvpf6pbzzba4I1_29PbybeZbqrRRR,%object
 b__MGIA7naqebvq6IrpgbeVAF_8uneqjner8tencuvpf6pbzzba4I1_29PbybeZbqrRRR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIA7naqebvq10hveraqrere23PnainfCebcreglCevzvgvirR
+.weak b__MGIA7naqebvq10hveraqrere23PnainfCebcreglCevzvgvirR
 .type b__MGIA7naqebvq10hveraqrere23PnainfCebcreglCevzvgvirR,%object
 b__MGIA7naqebvq10hveraqrere23PnainfCebcreglCevzvgvirR:
 .space __SIZEOF_POINTER__
@@ -113,12 +113,12 @@
 b__MAX7naqebvq18NffrgFgernzNqncgbe11baQhcyvpngrRi:
 nop
 .text
-.globl b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVgR9jevgrQngnRwCAF0_12RaqvnaBhgchgR
+.weak b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVgR9jevgrQngnRwCAF0_12RaqvnaBhgchgR
 .type b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVgR9jevgrQngnRwCAF0_12RaqvnaBhgchgR,%function
 b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVgR9jevgrQngnRwCAF0_12RaqvnaBhgchgR:
 nop
 .text
-.globl b__MAFg3__120__funerq_cge_rzcynprVA7naqebvq14PnzrenZrgnqngnRAF_9nyybpngbeVF2_RRR21__ba_mreb_funerq_jrnxRi
+.weak b__MAFg3__120__funerq_cge_rzcynprVA7naqebvq14PnzrenZrgnqngnRAF_9nyybpngbeVF2_RRR21__ba_mreb_funerq_jrnxRi
 .type b__MAFg3__120__funerq_cge_rzcynprVA7naqebvq14PnzrenZrgnqngnRAF_9nyybpngbeVF2_RRR21__ba_mreb_funerq_jrnxRi,%function
 b__MAFg3__120__funerq_cge_rzcynprVA7naqebvq14PnzrenZrgnqngnRAF_9nyybpngbeVF2_RRR21__ba_mreb_funerq_jrnxRi:
 nop
@@ -143,7 +143,7 @@
 b__MA7naqebvq7Cvpgher12raqErpbeqvatRi:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVA7naqebvq2fcVAF1_7VOvaqreRRRAF1_16VFhesnprPbzcbfre6FcUnfuVF3_RRAF_8rdhny_gbVF4_RRAF_9nyybpngbeVF4_RRR25__rzcynpr_havdhr_xrl_netfVF4_WEF4_RRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF4_CiRRRRoRREXG_QcBG0_
+.weak b__MAFg3__112__unfu_gnoyrVA7naqebvq2fcVAF1_7VOvaqreRRRAF1_16VFhesnprPbzcbfre6FcUnfuVF3_RRAF_8rdhny_gbVF4_RRAF_9nyybpngbeVF4_RRR25__rzcynpr_havdhr_xrl_netfVF4_WEF4_RRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF4_CiRRRRoRREXG_QcBG0_
 .type b__MAFg3__112__unfu_gnoyrVA7naqebvq2fcVAF1_7VOvaqreRRRAF1_16VFhesnprPbzcbfre6FcUnfuVF3_RRAF_8rdhny_gbVF4_RRAF_9nyybpngbeVF4_RRR25__rzcynpr_havdhr_xrl_netfVF4_WEF4_RRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF4_CiRRRRoRREXG_QcBG0_,%function
 b__MAFg3__112__unfu_gnoyrVA7naqebvq2fcVAF1_7VOvaqreRRRAF1_16VFhesnprPbzcbfre6FcUnfuVF3_RRAF_8rdhny_gbVF4_RRAF_9nyybpngbeVF4_RRR25__rzcynpr_havdhr_xrl_netfVF4_WEF4_RRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF4_CiRRRRoRREXG_QcBG0_:
 nop
@@ -153,7 +153,7 @@
 b__MA7naqebvq25NffrgZnantreSbeWninBowrpgRC7_WAVRaiC8_wbowrpg:
 nop
 .text
-.globl b__MAFg3__16irpgbeV7FxCbvagAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVEXF1_RRiBG_
+.weak b__MAFg3__16irpgbeV7FxCbvagAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVEXF1_RRiBG_
 .type b__MAFg3__16irpgbeV7FxCbvagAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVEXF1_RRiBG_,%function
 b__MAFg3__16irpgbeV7FxCbvagAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVEXF1_RRiBG_:
 nop
@@ -163,7 +163,7 @@
 b__MA21Lhi420FcGbWcrtRapbqreP1RCv:
 nop
 .data
-.globl b__MGIA7naqebvq6IrpgbeVAF_8NhqvbZvkRRR
+.weak b__MGIA7naqebvq6IrpgbeVAF_8NhqvbZvkRRR
 .type b__MGIA7naqebvq6IrpgbeVAF_8NhqvbZvkRRR,%object
 b__MGIA7naqebvq6IrpgbeVAF_8NhqvbZvkRRR:
 .space __SIZEOF_POINTER__
@@ -173,7 +173,7 @@
 b__MA7naqebvq38ertvfgre_naqebvq_ncc_onpxhc_ShyyOnpxhcRC7_WAVRai:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_17CbvagreCebcregvrfRR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_17CbvagreCebcregvrfRR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_17CbvagreCebcregvrfRR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_17CbvagreCebcregvrfRR8qb_fcyngRCiCXiz:
 nop
@@ -193,7 +193,7 @@
 b__MGua16_A7naqebvq18AngvirZrffntrDhrhrQ1Ri:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF6_RRR8__nccraqRz
+.weak b__MAFg3__16irpgbeVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF6_RRR8__nccraqRz
 .type b__MAFg3__16irpgbeVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF6_RRR8__nccraqRz,%function
 b__MAFg3__16irpgbeVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF6_RRR8__nccraqRz:
 nop
@@ -203,7 +203,7 @@
 b__MA11TencuvpfWAV16vfUneqjnerPbasvtRC7_WAVRaiC8_wbowrpg:
 nop
 .text
-.globl b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVqR7trgGlcrRi
+.weak b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVqR7trgGlcrRi
 .type b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVqR7trgGlcrRi,%function
 b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVqR7trgGlcrRi:
 nop
@@ -213,7 +213,7 @@
 b__MA7naqebvq39ertvfgre_naqebvq_pbagrag_erf_BooFpnaareRC7_WAVRai:
 nop
 .text
-.globl b__MAXFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR3fgeRi
+.weak b__MAXFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR3fgeRi
 .type b__MAXFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR3fgeRi,%function
 b__MAXFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR3fgeRi:
 nop
@@ -238,7 +238,7 @@
 b_ertvfgreSenzrjbexAngvirf:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVvAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRRRAF_19__znc_inyhr_pbzcnerVvF8_AF_4yrffVvRRYo1RRRAF5_VF8_RRR7qrfgeblRCAF_11__gerr_abqrVF8_CiRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVvAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRRRAF_19__znc_inyhr_pbzcnerVvF8_AF_4yrffVvRRYo1RRRAF5_VF8_RRR7qrfgeblRCAF_11__gerr_abqrVF8_CiRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVvAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRRRAF_19__znc_inyhr_pbzcnerVvF8_AF_4yrffVvRRYo1RRRAF5_VF8_RRR7qrfgeblRCAF_11__gerr_abqrVF8_CiRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVvAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRRRAF_19__znc_inyhr_pbzcnerVvF8_AF_4yrffVvRRYo1RRRAF5_VF8_RRR7qrfgeblRCAF_11__gerr_abqrVF8_CiRR:
 nop
@@ -248,17 +248,17 @@
 b__MA7naqebvq26AngvirQvfcynlRiragErprvireQ1Ri:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_8uneqjner8tencuvpf6pbzzba4I1_29PbybeZbqrRR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq6IrpgbeVAF_8uneqjner8tencuvpf6pbzzba4I1_29PbybeZbqrRR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq6IrpgbeVAF_8uneqjner8tencuvpf6pbzzba4I1_29PbybeZbqrRR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq6IrpgbeVAF_8uneqjner8tencuvpf6pbzzba4I1_29PbybeZbqrRR12qb_pbafgehpgRCiz:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_7Fgevat8RR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_7Fgevat8RR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_7Fgevat8RR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_7Fgevat8RR7qb_pbclRCiCXiz:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_19NhqvbQrivprGlcrNqqeRR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq6IrpgbeVAF_19NhqvbQrivprGlcrNqqeRR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq6IrpgbeVAF_19NhqvbQrivprGlcrNqqeRR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq6IrpgbeVAF_19NhqvbQrivprGlcrNqqeRR12qb_pbafgehpgRCiz:
 nop
@@ -268,17 +268,17 @@
 b__MA17QverpgFgevcFbhepr13jevgrGbFgernzREA7naqebvq9vzt_hgvyf6BhgchgRw:
 nop
 .text
-.globl b__MA7naqebvq9vzt_hgvyf13GvssRagelVzcyVqRQ2Ri
+.weak b__MA7naqebvq9vzt_hgvyf13GvssRagelVzcyVqRQ2Ri
 .type b__MA7naqebvq9vzt_hgvyf13GvssRagelVzcyVqRQ2Ri,%function
 b__MA7naqebvq9vzt_hgvyf13GvssRagelVzcyVqRQ2Ri:
 nop
 .text
-.globl b__MAXFg3__110__shapgvba6__shapVAF_6__ovaqVESiC7_WAVRaiCXpC8_wfgevatEXAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRRWEF4_F6_QaEXAF_12cynprubyqref4__cuVYv1RRRRRRAFP_VFC_RRSiFR_RR7__pybarRCAF0_6__onfrVFE_RR
+.weak b__MAXFg3__110__shapgvba6__shapVAF_6__ovaqVESiC7_WAVRaiCXpC8_wfgevatEXAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRRWEF4_F6_QaEXAF_12cynprubyqref4__cuVYv1RRRRRRAFP_VFC_RRSiFR_RR7__pybarRCAF0_6__onfrVFE_RR
 .type b__MAXFg3__110__shapgvba6__shapVAF_6__ovaqVESiC7_WAVRaiCXpC8_wfgevatEXAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRRWEF4_F6_QaEXAF_12cynprubyqref4__cuVYv1RRRRRRAFP_VFC_RRSiFR_RR7__pybarRCAF0_6__onfrVFE_RR,%function
 b__MAXFg3__110__shapgvba6__shapVAF_6__ovaqVESiC7_WAVRaiCXpC8_wfgevatEXAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRRWEF4_F6_QaEXAF_12cynprubyqref4__cuVYv1RRRRRRAFP_VFC_RRSiFR_RR7__pybarRCAF0_6__onfrVFE_RR:
 nop
 .text
-.globl b__MAFg3__110__shapgvba6__shapVAF_6__ovaqVESiC7_WAVRaiCXpC8_wfgevatEXAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRRWEF4_EF6_EF8_EXAF_12cynprubyqref4__cuVYv1RRRRRRAFP_VFE_RRSiFR_RR7qrfgeblRi
+.weak b__MAFg3__110__shapgvba6__shapVAF_6__ovaqVESiC7_WAVRaiCXpC8_wfgevatEXAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRRWEF4_EF6_EF8_EXAF_12cynprubyqref4__cuVYv1RRRRRRAFP_VFE_RRSiFR_RR7qrfgeblRi
 .type b__MAFg3__110__shapgvba6__shapVAF_6__ovaqVESiC7_WAVRaiCXpC8_wfgevatEXAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRRWEF4_EF6_EF8_EXAF_12cynprubyqref4__cuVYv1RRRRRRAFP_VFE_RRSiFR_RR7qrfgeblRi,%function
 b__MAFg3__110__shapgvba6__shapVAF_6__ovaqVESiC7_WAVRaiCXpC8_wfgevatEXAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRRWEF4_EF6_EF8_EXAF_12cynprubyqref4__cuVYv1RRRRRRAFP_VFE_RRSiFR_RR7qrfgeblRi:
 nop
@@ -313,17 +313,17 @@
 b__MA16WAVPnzrenPbagrkg22pyrnePnyyonpxOhssref_yRC7_WAVRaiCA7naqebvq6IrpgbeVC11_wolgrNeenlRR:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeV12WninIZBcgvbaR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq6IrpgbeV12WninIZBcgvbaR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq6IrpgbeV12WninIZBcgvbaR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq6IrpgbeV12WninIZBcgvbaR10qb_qrfgeblRCiz:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVC14FpbcrqHgsPunefR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVC14FpbcrqHgsPunefR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVC14FpbcrqHgsPunefR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVC14FpbcrqHgsPunefR16qb_zbir_onpxjneqRCiCXiz:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVvAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRRRAF_19__znc_inyhr_pbzcnerVvF8_AF_4yrffVvRRYo1RRRAF5_VF8_RRR12__svaq_rdhnyVvRRECAF_16__gerr_abqr_onfrVCiRRAF_21__gerr_pbafg_vgrengbeVF8_CAF_11__gerr_abqrVF8_FU_RRyRRECAF_15__gerr_raq_abqrVFW_RRFX_EXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVvAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRRRAF_19__znc_inyhr_pbzcnerVvF8_AF_4yrffVvRRYo1RRRAF5_VF8_RRR12__svaq_rdhnyVvRRECAF_16__gerr_abqr_onfrVCiRRAF_21__gerr_pbafg_vgrengbeVF8_CAF_11__gerr_abqrVF8_FU_RRyRRECAF_15__gerr_raq_abqrVFW_RRFX_EXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVvAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRRRAF_19__znc_inyhr_pbzcnerVvF8_AF_4yrffVvRRYo1RRRAF5_VF8_RRR12__svaq_rdhnyVvRRECAF_16__gerr_abqr_onfrVCiRRAF_21__gerr_pbafg_vgrengbeVF8_CAF_11__gerr_abqrVF8_FU_RRyRRECAF_15__gerr_raq_abqrVFW_RRFX_EXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVvAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRRRAF_19__znc_inyhr_pbzcnerVvF8_AF_4yrffVvRRYo1RRRAF5_VF8_RRR12__svaq_rdhnyVvRRECAF_16__gerr_abqr_onfrVCiRRAF_21__gerr_pbafg_vgrengbeVF8_CAF_11__gerr_abqrVF8_FU_RRyRRECAF_15__gerr_raq_abqrVFW_RRFX_EXG_:
 nop
@@ -353,12 +353,12 @@
 b__MGIA7naqebvq24AngvirVachgRiragErprvireR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIA7naqebvq6IrpgbeVAF_17CbvagreCebcregvrfRRR
+.weak b__MGIA7naqebvq6IrpgbeVAF_17CbvagreCebcregvrfRRR
 .type b__MGIA7naqebvq6IrpgbeVAF_17CbvagreCebcregvrfRRR,%object
 b__MGIA7naqebvq6IrpgbeVAF_17CbvagreCebcregvrfRRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_12QvfcynlFgngrRR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_12QvfcynlFgngrRR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_12QvfcynlFgngrRR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_12QvfcynlFgngrRR15qb_zbir_sbejneqRCiCXiz:
 nop
@@ -388,7 +388,7 @@
 b__M56ertvfgre_naqebvq_tencuvpf_qenjnoyr_NavzngrqVzntrQenjnoyrC7_WAVRai:
 nop
 .data
-.globl b__MGIA7naqebvq29CernyybpngrqVachgRiragSnpgbelR
+.weak b__MGIA7naqebvq29CernyybpngrqVachgRiragSnpgbelR
 .type b__MGIA7naqebvq29CernyybpngrqVachgRiragSnpgbelR,%object
 b__MGIA7naqebvq29CernyybpngrqVachgRiragSnpgbelR:
 .space __SIZEOF_POINTER__
@@ -423,7 +423,7 @@
 b__MA7naqebvq9WUjCnepry9VavgPynffRC7_WAVRai:
 nop
 .text
-.globl b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
+.weak b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
 .type b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_,%function
 b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_:
 nop
@@ -438,7 +438,7 @@
 b__MA17NhgbWninOlgrNeenlQ2Ri:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_22NhqvbZvkZngpuPevgrevbaRR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq6IrpgbeVAF_22NhqvbZvkZngpuPevgrevbaRR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq6IrpgbeVAF_22NhqvbZvkZngpuPevgrevbaRR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq6IrpgbeVAF_22NhqvbZvkZngpuPevgrevbaRR12qb_pbafgehpgRCiz:
 nop
@@ -483,7 +483,7 @@
 b__MA7naqebvq38ertvfgre_naqebvq_pbagrag_erf_NcxNffrgfRC7_WAVRai:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_7Fgevat8RR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq6IrpgbeVAF_7Fgevat8RR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq6IrpgbeVAF_7Fgevat8RR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq6IrpgbeVAF_7Fgevat8RR10qb_qrfgeblRCiz:
 nop
@@ -493,22 +493,22 @@
 b__MA7naqebvq15WUjErzbgrOvaqreP2RC7_WAVRaiC8_wbowrpgEXAF_2fcVAF_8uneqjner7VOvaqreRRR:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_8Fgevat16RuRRR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_8Fgevat16RuRRR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_8Fgevat16RuRRR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_8Fgevat16RuRRR16qb_zbir_onpxjneqRCiCXiz:
 nop
 .data
-.globl b__MGGA7naqebvq23SvavfuNaqVaibxrYvfgrareR
+.weak b__MGGA7naqebvq23SvavfuNaqVaibxrYvfgrareR
 .type b__MGGA7naqebvq23SvavfuNaqVaibxrYvfgrareR,%object
 b__MGGA7naqebvq23SvavfuNaqVaibxrYvfgrareR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIA7naqebvq16WTybonyErsUbyqreR
+.weak b__MGIA7naqebvq16WTybonyErsUbyqreR
 .type b__MGIA7naqebvq16WTybonyErsUbyqreR,%object
 b__MGIA7naqebvq16WTybonyErsUbyqreR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
+.weak b__MGIAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
 .type b__MGIAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR,%object
 b__MGIAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR:
 .space __SIZEOF_POINTER__
@@ -518,12 +518,12 @@
 b__MA18WavVachgOlgrOhssreP2RC7_WAVRaiC8_wbowrpg:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVvyRRAF_19__znc_inyhr_pbzcnerVvF2_AF_4yrffVvRRYo1RRRAF_9nyybpngbeVF2_RRR7qrfgeblRCAF_11__gerr_abqrVF2_CiRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVvyRRAF_19__znc_inyhr_pbzcnerVvF2_AF_4yrffVvRRYo1RRRAF_9nyybpngbeVF2_RRR7qrfgeblRCAF_11__gerr_abqrVF2_CiRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVvyRRAF_19__znc_inyhr_pbzcnerVvF2_AF_4yrffVvRRYo1RRRAF_9nyybpngbeVF2_RRR7qrfgeblRCAF_11__gerr_abqrVF2_CiRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVvyRRAF_19__znc_inyhr_pbzcnerVvF2_AF_4yrffVvRRYo1RRRAF_9nyybpngbeVF2_RRR7qrfgeblRCAF_11__gerr_abqrVF2_CiRR:
 nop
 .text
-.globl b__MAFg3__120__funerq_cge_rzcynprVA7naqebvq16WTybonyErsUbyqreRAF_9nyybpngbeVF2_RRR21__ba_mreb_funerq_jrnxRi
+.weak b__MAFg3__120__funerq_cge_rzcynprVA7naqebvq16WTybonyErsUbyqreRAF_9nyybpngbeVF2_RRR21__ba_mreb_funerq_jrnxRi
 .type b__MAFg3__120__funerq_cge_rzcynprVA7naqebvq16WTybonyErsUbyqreRAF_9nyybpngbeVF2_RRR21__ba_mreb_funerq_jrnxRi,%function
 b__MAFg3__120__funerq_cge_rzcynprVA7naqebvq16WTybonyErsUbyqreRAF_9nyybpngbeVF2_RRR21__ba_mreb_funerq_jrnxRi:
 nop
@@ -548,12 +548,12 @@
 b__MA15AvarCngpuCrrxre5fpnyrRssvv:
 nop
 .text
-.globl b__MA7naqebvq9vzt_hgvyf10GvssJevgre8nqqRagelVgRRvgwCXG_w
+.weak b__MA7naqebvq9vzt_hgvyf10GvssJevgre8nqqRagelVgRRvgwCXG_w
 .type b__MA7naqebvq9vzt_hgvyf10GvssJevgre8nqqRagelVgRRvgwCXG_w,%function
 b__MA7naqebvq9vzt_hgvyf10GvssJevgre8nqqRagelVgRRvgwCXG_w:
 nop
 .text
-.globl b__MAFg3__16irpgbeV11fbpx_svygreAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_
+.weak b__MAFg3__16irpgbeV11fbpx_svygreAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_
 .type b__MAFg3__16irpgbeV11fbpx_svygreAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_,%function
 b__MAFg3__16irpgbeV11fbpx_svygreAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_:
 nop
@@ -563,7 +563,7 @@
 b_nflap_fnsr_sbezng_ohssre:
 nop
 .data
-.globl b__MGI22FpnyrPurpxvatNyybpngbe
+.weak b__MGI22FpnyrPurpxvatNyybpngbe
 .type b__MGI22FpnyrPurpxvatNyybpngbe,%object
 b__MGI22FpnyrPurpxvatNyybpngbe:
 .space __SIZEOF_POINTER__
@@ -593,7 +593,7 @@
 b__MA20WAVNhqvbCbegPnyyonpx22baNhqvbCngpuYvfgHcqngrRi:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_11QvfcynlVasbRR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_11QvfcynlVasbRR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_11QvfcynlVasbRR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_11QvfcynlVasbRR15qb_zbir_sbejneqRCiCXiz:
 nop
@@ -603,27 +603,27 @@
 b__MAX7naqebvq9WUjCnepry7jnfFragRi:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVC11_wolgrNeenlR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVC11_wolgrNeenlR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVC11_wolgrNeenlR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVC11_wolgrNeenlR7qb_pbclRCiCXiz:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVgR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVgR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVgR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVgR7qb_pbclRCiCXiz:
 nop
 .text
-.globl b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVwR13trgQngnUrycreRi
+.weak b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVwR13trgQngnUrycreRi
 .type b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVwR13trgQngnUrycreRi,%function
 b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVwR13trgQngnUrycreRi:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_7WUjOybo8OyboVasbRR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_7WUjOybo8OyboVasbRR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_7WUjOybo8OyboVasbRR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_7WUjOybo8OyboVasbRR16qb_zbir_onpxjneqRCiCXiz:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_8Fgevat16RuRRR10qb_pbzcnerRCXiF6_
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_8Fgevat16RuRRR10qb_pbzcnerRCXiF6_
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_8Fgevat16RuRRR10qb_pbzcnerRCXiF6_,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_8Fgevat16RuRRR10qb_pbzcnerRCXiF6_:
 nop
@@ -638,7 +638,7 @@
 b__MA7naqebvq28AngvirVachgNccyvpngvbaUnaqyrQ2Ri:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_13CbvagrePbbeqfRR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_13CbvagrePbbeqfRR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_13CbvagrePbbeqfRR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_13CbvagrePbbeqfRR16qb_zbir_onpxjneqRCiCXiz:
 nop
@@ -648,7 +648,7 @@
 b__MGPA7naqebvq13AbgvslUnaqyreR0_AF_14ZrffntrUnaqyreR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIA7naqebvq6IrpgbeVAF_7Fgevat8RRR
+.weak b__MGIA7naqebvq6IrpgbeVAF_7Fgevat8RRR
 .type b__MGIA7naqebvq6IrpgbeVAF_7Fgevat8RRR,%object
 b__MGIA7naqebvq6IrpgbeVAF_7Fgevat8RRR:
 .space __SIZEOF_POINTER__
@@ -678,7 +678,7 @@
 b__MGI15AvarCngpuCrrxre:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIA7naqebvq5zrqvn12IbyhzrFuncre13PbasvthengvbaR
+.weak b__MGIA7naqebvq5zrqvn12IbyhzrFuncre13PbasvthengvbaR
 .type b__MGIA7naqebvq5zrqvn12IbyhzrFuncre13PbasvthengvbaR,%object
 b__MGIA7naqebvq5zrqvn12IbyhzrFuncre13PbasvthengvbaR:
 .space __SIZEOF_POINTER__
@@ -708,7 +708,7 @@
 b__MA7naqebvq10VachgDhrhrP2RC8_wbowrpgEXAF_2fcVAF_6YbbcreRRRvv:
 nop
 .data
-.globl b__MGIA7naqebvq31TyShapgbeEryrnfrqPnyyonpxOevqtrR
+.weak b__MGIA7naqebvq31TyShapgbeEryrnfrqPnyyonpxOevqtrR
 .type b__MGIA7naqebvq31TyShapgbeEryrnfrqPnyyonpxOevqtrR,%object
 b__MGIA7naqebvq31TyShapgbeEryrnfrqPnyyonpxOevqtrR:
 .space __SIZEOF_POINTER__
@@ -723,12 +723,12 @@
 b__M36ertvfgre_naqebvq_uneqjner_FrevnyCbegC7_WAVRai:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF6_RRR6vafregRAF_11__jenc_vgreVCXF6_RRBF6_
+.weak b__MAFg3__16irpgbeVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF6_RRR6vafregRAF_11__jenc_vgreVCXF6_RRBF6_
 .type b__MAFg3__16irpgbeVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF6_RRR6vafregRAF_11__jenc_vgreVCXF6_RRBF6_,%function
 b__MAFg3__16irpgbeVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF6_RRR6vafregRAF_11__jenc_vgreVCXF6_RRBF6_:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVwR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVwR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVwR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVwR15qb_zbir_sbejneqRCiCXiz:
 nop
@@ -743,22 +743,22 @@
 b__MA7naqebvq31guebj_fdyvgr3_rkprcgvba_reepbqrRC7_WAVRaivCXp:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_16RcurzrenyFgbentr4VgrzRR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_16RcurzrenyFgbentr4VgrzRR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_16RcurzrenyFgbentr4VgrzRR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_16RcurzrenyFgbentr4VgrzRR15qb_zbir_sbejneqRCiCXiz:
 nop
 .text
-.globl b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
+.weak b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
 .type b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_,%function
 b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_8Fgevat16RuRRR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_8Fgevat16RuRRR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_8Fgevat16RuRRR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_8Fgevat16RuRRR15qb_zbir_sbejneqRCiCXiz:
 nop
 .text
-.globl b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVvR13trgRaqvnaarffRi
+.weak b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVvR13trgRaqvnaarffRi
 .type b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVvR13trgRaqvnaarffRi,%function
 b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVvR13trgRaqvnaarffRi:
 nop
@@ -793,7 +793,7 @@
 b__MA13AngvirPbagrkgQ2Ri:
 nop
 .data
-.globl b__MGIA7naqebvq8XrlRiragR
+.weak b__MGIA7naqebvq8XrlRiragR
 .type b__MGIA7naqebvq8XrlRiragR,%object
 b__MGIA7naqebvq8XrlRiragR:
 .space __SIZEOF_POINTER__
@@ -828,7 +828,7 @@
 b__MA7naqebvq51ertvfgre_pbz_naqebvq_vagreany_bf_PynffYbnqreSnpgbelRC7_WAVRai:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_8XrlRiragRR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_8XrlRiragRR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_8XrlRiragRR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_8XrlRiragRR7qb_pbclRCiCXiz:
 nop
@@ -843,12 +843,12 @@
 b__MA5Zbivr6urvtugRi:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVCAF_9vzt_hgvyf11FgevcFbheprRR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVCAF_9vzt_hgvyf11FgevcFbheprRR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVCAF_9vzt_hgvyf11FgevcFbheprRR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVCAF_9vzt_hgvyf11FgevcFbheprRR8qb_fcyngRCiCXiz:
 nop
 .data
-.globl b__MGIAFg3__110__shapgvba6__shapVAF_6__ovaqVESiC7_WAVRaiCXpC8_wfgevatEXAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRRWEF4_EN5_F5_QaEXAF_12cynprubyqref4__cuVYv1RRRRRRAFP_VFE_RRSiFR_RRR
+.weak b__MGIAFg3__110__shapgvba6__shapVAF_6__ovaqVESiC7_WAVRaiCXpC8_wfgevatEXAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRRWEF4_EN5_F5_QaEXAF_12cynprubyqref4__cuVYv1RRRRRRAFP_VFE_RRSiFR_RRR
 .type b__MGIAFg3__110__shapgvba6__shapVAF_6__ovaqVESiC7_WAVRaiCXpC8_wfgevatEXAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRRWEF4_EN5_F5_QaEXAF_12cynprubyqref4__cuVYv1RRRRRRAFP_VFE_RRSiFR_RRR,%object
 b__MGIAFg3__110__shapgvba6__shapVAF_6__ovaqVESiC7_WAVRaiCXpC8_wfgevatEXAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRRWEF4_EN5_F5_QaEXAF_12cynprubyqref4__cuVYv1RRRRRRAFP_VFE_RRSiFR_RRR:
 .space __SIZEOF_POINTER__
@@ -858,7 +858,7 @@
 b__MA7naqebvq37naqebvq_AngvirNpgvivgl_frgJvaqbjSyntfRC15NAngvirNpgvivglvv:
 nop
 .text
-.globl b__MAFg3__120__funerq_cge_rzcynprVA7naqebvq15ZvavxvaSbagFxvnRAF_9nyybpngbeVF2_RRR21__ba_mreb_funerq_jrnxRi
+.weak b__MAFg3__120__funerq_cge_rzcynprVA7naqebvq15ZvavxvaSbagFxvnRAF_9nyybpngbeVF2_RRR21__ba_mreb_funerq_jrnxRi
 .type b__MAFg3__120__funerq_cge_rzcynprVA7naqebvq15ZvavxvaSbagFxvnRAF_9nyybpngbeVF2_RRR21__ba_mreb_funerq_jrnxRi,%function
 b__MAFg3__120__funerq_cge_rzcynprVA7naqebvq15ZvavxvaSbagFxvnRAF_9nyybpngbeVF2_RRR21__ba_mreb_funerq_jrnxRi:
 nop
@@ -893,17 +893,17 @@
 b__MA17NhgbWninOlgrNeenlP1RC7_WAVRaiC11_wolgrNeenlv:
 nop
 .data
-.globl b__MGIA7naqebvq24IraqbeGntQrfpevcgbePnpurR
+.weak b__MGIA7naqebvq24IraqbeGntQrfpevcgbePnpurR
 .type b__MGIA7naqebvq24IraqbeGntQrfpevcgbePnpurR,%object
 b__MGIA7naqebvq24IraqbeGntQrfpevcgbePnpurR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVvAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRRRAF_19__znc_inyhr_pbzcnerVvF8_AF_4yrffVvRRYo1RRRAF5_VF8_RRR30__rzcynpr_uvag_havdhr_xrl_netfVvWEXAF_4cnveVXvF7_RRRRRAF_15__gerr_vgrengbeVF8_CAF_11__gerr_abqrVF8_CiRRyRRAF_21__gerr_pbafg_vgrengbeVF8_FC_yRREXG_QcBG0_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVvAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRRRAF_19__znc_inyhr_pbzcnerVvF8_AF_4yrffVvRRYo1RRRAF5_VF8_RRR30__rzcynpr_uvag_havdhr_xrl_netfVvWEXAF_4cnveVXvF7_RRRRRAF_15__gerr_vgrengbeVF8_CAF_11__gerr_abqrVF8_CiRRyRRAF_21__gerr_pbafg_vgrengbeVF8_FC_yRREXG_QcBG0_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVvAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRRRAF_19__znc_inyhr_pbzcnerVvF8_AF_4yrffVvRRYo1RRRAF5_VF8_RRR30__rzcynpr_uvag_havdhr_xrl_netfVvWEXAF_4cnveVXvF7_RRRRRAF_15__gerr_vgrengbeVF8_CAF_11__gerr_abqrVF8_CiRRyRRAF_21__gerr_pbafg_vgrengbeVF8_FC_yRREXG_QcBG0_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVvAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRRRAF_19__znc_inyhr_pbzcnerVvF8_AF_4yrffVvRRYo1RRRAF5_VF8_RRR30__rzcynpr_uvag_havdhr_xrl_netfVvWEXAF_4cnveVXvF7_RRRRRAF_15__gerr_vgrengbeVF8_CAF_11__gerr_abqrVF8_CiRRyRRAF_21__gerr_pbafg_vgrengbeVF8_FC_yRREXG_QcBG0_:
 nop
 .data
-.globl b__MGIA7zvavxva7naqebvq16NaqebvqYvarJvqguR
+.weak b__MGIA7zvavxva7naqebvq16NaqebvqYvarJvqguR
 .type b__MGIA7zvavxva7naqebvq16NaqebvqYvarJvqguR,%object
 b__MGIA7zvavxva7naqebvq16NaqebvqYvarJvqguR:
 .space __SIZEOF_POINTER__
@@ -923,12 +923,12 @@
 b__MA7naqebvq47ertvfgre_naqebvq_navzngvba_CebcreglInyhrfUbyqreRC7_WAVRai:
 nop
 .text
-.globl b__MAFg3__124__chg_punenpgre_frdhraprVpAF_11pune_genvgfVpRRRREAF_13onfvp_bfgernzVG_G0_RRF7_CXF4_z
+.weak b__MAFg3__124__chg_punenpgre_frdhraprVpAF_11pune_genvgfVpRRRREAF_13onfvp_bfgernzVG_G0_RRF7_CXF4_z
 .type b__MAFg3__124__chg_punenpgre_frdhraprVpAF_11pune_genvgfVpRRRREAF_13onfvp_bfgernzVG_G0_RRF7_CXF4_z,%function
 b__MAFg3__124__chg_punenpgre_frdhraprVpAF_11pune_genvgfVpRRRREAF_13onfvp_bfgernzVG_G0_RRF7_CXF4_z:
 nop
 .data
-.globl b__MGIA7naqebvq6IrpgbeVAF_19NhqvbQrivprGlcrNqqeRRR
+.weak b__MGIA7naqebvq6IrpgbeVAF_19NhqvbQrivprGlcrNqqeRRR
 .type b__MGIA7naqebvq6IrpgbeVAF_19NhqvbQrivprGlcrNqqeRRR,%object
 b__MGIA7naqebvq6IrpgbeVAF_19NhqvbQrivprGlcrNqqeRRR:
 .space __SIZEOF_POINTER__
@@ -938,17 +938,17 @@
 b__MA18NhgbWninSybngNeenlQ1Ri:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_8NhqvbZvkRR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq6IrpgbeVAF_8NhqvbZvkRR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq6IrpgbeVAF_8NhqvbZvkRR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq6IrpgbeVAF_8NhqvbZvkRR12qb_pbafgehpgRCiz:
 nop
 .text
-.globl b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVuR9jevgrQngnRwCAF0_12RaqvnaBhgchgR
+.weak b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVuR9jevgrQngnRwCAF0_12RaqvnaBhgchgR
 .type b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVuR9jevgrQngnRwCAF0_12RaqvnaBhgchgR,%function
 b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVuR9jevgrQngnRwCAF0_12RaqvnaBhgchgR:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVzAF_10havdhr_cgeV14FpbcrqYbpnyErsVC11_wolgrNeenlRAF_14qrsnhyg_qryrgrVF6_RRRRRRAF_19__znc_inyhr_pbzcnerVzFN_AF_4yrffVzRRYo1RRRAF_9nyybpngbeVFN_RRR7qrfgeblRCAF_11__gerr_abqrVFN_CiRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVzAF_10havdhr_cgeV14FpbcrqYbpnyErsVC11_wolgrNeenlRAF_14qrsnhyg_qryrgrVF6_RRRRRRAF_19__znc_inyhr_pbzcnerVzFN_AF_4yrffVzRRYo1RRRAF_9nyybpngbeVFN_RRR7qrfgeblRCAF_11__gerr_abqrVFN_CiRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVzAF_10havdhr_cgeV14FpbcrqYbpnyErsVC11_wolgrNeenlRAF_14qrsnhyg_qryrgrVF6_RRRRRRAF_19__znc_inyhr_pbzcnerVzFN_AF_4yrffVzRRYo1RRRAF_9nyybpngbeVFN_RRR7qrfgeblRCAF_11__gerr_abqrVFN_CiRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVzAF_10havdhr_cgeV14FpbcrqYbpnyErsVC11_wolgrNeenlRAF_14qrsnhyg_qryrgrVF6_RRRRRRAF_19__znc_inyhr_pbzcnerVzFN_AF_4yrffVzRRYo1RRRAF_9nyybpngbeVFN_RRR7qrfgeblRCAF_11__gerr_abqrVFN_CiRR:
 nop
@@ -958,7 +958,7 @@
 b__MA7naqebvq34ertvfgre_naqebvq_bf_UjErzbgrOvaqreRC7_WAVRai:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_13CbvagrePbbeqfRR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq6IrpgbeVAF_13CbvagrePbbeqfRR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq6IrpgbeVAF_13CbvagrePbbeqfRR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq6IrpgbeVAF_13CbvagrePbbeqfRR12qb_pbafgehpgRCiz:
 nop
@@ -988,12 +988,12 @@
 b_fgngq_jevgre_gelybpx:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_24AngvirVachgRiragErprvire6SvavfuRR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_24AngvirVachgRiragErprvire6SvavfuRR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_24AngvirVachgRiragErprvire6SvavfuRR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_24AngvirVachgRiragErprvire6SvavfuRR8qb_fcyngRCiCXiz:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_12QvfcynlFgngrRR10qb_pbzcnerRCXiF4_
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_12QvfcynlFgngrRR10qb_pbzcnerRCXiF4_
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_12QvfcynlFgngrRR10qb_pbzcnerRCXiF4_,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_12QvfcynlFgngrRR10qb_pbzcnerRCXiF4_:
 nop
@@ -1008,12 +1008,12 @@
 b__M37naqebvq_zrqvn_trgVagPbafgnagSebzPynffC7_WAVRaiC7_wpynffCXpF4_Cv:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR10qb_qrfgeblRCiz:
 nop
 .text
-.globl b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVvR7trgGlcrRi
+.weak b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVvR7trgGlcrRi
 .type b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVvR7trgGlcrRi,%function
 b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVvR7trgGlcrRi:
 nop
@@ -1028,7 +1028,7 @@
 b__MA7naqebvq6ovgznc8gbOvgzncRy:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_24AngvirVachgRiragErprvire6SvavfuRR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq6IrpgbeVAF_24AngvirVachgRiragErprvire6SvavfuRR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq6IrpgbeVAF_24AngvirVachgRiragErprvire6SvavfuRR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq6IrpgbeVAF_24AngvirVachgRiragErprvire6SvavfuRR12qb_pbafgehpgRCiz:
 nop
@@ -1043,12 +1043,12 @@
 b_tBcgvbaf_jvqguSvryqVQ:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIA7naqebvq12FbegrqIrpgbeVC26nhqvbgenpx_pnyyonpx_pbbxvrRR
+.weak b__MGIA7naqebvq12FbegrqIrpgbeVC26nhqvbgenpx_pnyyonpx_pbbxvrRR
 .type b__MGIA7naqebvq12FbegrqIrpgbeVC26nhqvbgenpx_pnyyonpx_pbbxvrRR,%object
 b__MGIA7naqebvq12FbegrqIrpgbeVC26nhqvbgenpx_pnyyonpx_pbbxvrRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq10trgFreivprVAF_8uneqjner14VPnzrenFreivprRRRvEXAF_8Fgevat16RCAF_2fcVG_RR
+.weak b__MA7naqebvq10trgFreivprVAF_8uneqjner14VPnzrenFreivprRRRvEXAF_8Fgevat16RCAF_2fcVG_RR
 .type b__MA7naqebvq10trgFreivprVAF_8uneqjner14VPnzrenFreivprRRRvEXAF_8Fgevat16RCAF_2fcVG_RR,%function
 b__MA7naqebvq10trgFreivprVAF_8uneqjner14VPnzrenFreivprRRRvEXAF_8Fgevat16RCAF_2fcVG_RR:
 nop
@@ -1058,7 +1058,7 @@
 b__MA17QverpgFgevcFbheprP2RC7_WAVRaiCXuwwwwwzww:
 nop
 .data
-.globl b__MGIA7naqebvq6IrpgbeVqRR
+.weak b__MGIA7naqebvq6IrpgbeVqRR
 .type b__MGIA7naqebvq6IrpgbeVqRR,%object
 b__MGIA7naqebvq6IrpgbeVqRR:
 .space __SIZEOF_POINTER__
@@ -1068,7 +1068,7 @@
 b__MA7naqebvq14NaqebvqEhagvzr19wninPerngrGuernqRgpRCSvCiRF1_CXpvzCF1_:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVyR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVyR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVyR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVyR8qb_fcyngRCiCXiz:
 nop
@@ -1083,17 +1083,17 @@
 b_QTvsBcraSvyrUnaqyr:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVwR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq6IrpgbeVwR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq6IrpgbeVwR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq6IrpgbeVwR12qb_pbafgehpgRCiz:
 nop
 .data
-.globl b__MGIA7naqebvq6IrpgbeVCAF_9vzt_hgvyf11FgevcFbheprRRR
+.weak b__MGIA7naqebvq6IrpgbeVCAF_9vzt_hgvyf11FgevcFbheprRRR
 .type b__MGIA7naqebvq6IrpgbeVCAF_9vzt_hgvyf11FgevcFbheprRRR,%object
 b__MGIA7naqebvq6IrpgbeVCAF_9vzt_hgvyf11FgevcFbheprRRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAXFg3__110__shapgvba6__shapVAF_6__ovaqVESiC7_WAVRaiCXpC8_wfgevatEXAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRRWEF4_EF6_EF8_EXAF_12cynprubyqref4__cuVYv1RRRRRRAFP_VFE_RRSiFR_RR7__pybarRCAF0_6__onfrVFG_RR
+.weak b__MAXFg3__110__shapgvba6__shapVAF_6__ovaqVESiC7_WAVRaiCXpC8_wfgevatEXAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRRWEF4_EF6_EF8_EXAF_12cynprubyqref4__cuVYv1RRRRRRAFP_VFE_RRSiFR_RR7__pybarRCAF0_6__onfrVFG_RR
 .type b__MAXFg3__110__shapgvba6__shapVAF_6__ovaqVESiC7_WAVRaiCXpC8_wfgevatEXAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRRWEF4_EF6_EF8_EXAF_12cynprubyqref4__cuVYv1RRRRRRAFP_VFE_RRSiFR_RR7__pybarRCAF0_6__onfrVFG_RR,%function
 b__MAXFg3__110__shapgvba6__shapVAF_6__ovaqVESiC7_WAVRaiCXpC8_wfgevatEXAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRRWEF4_EF6_EF8_EXAF_12cynprubyqref4__cuVYv1RRRRRRAFP_VFE_RRSiFR_RR7__pybarRCAF0_6__onfrVFG_RR:
 nop
@@ -1103,12 +1103,12 @@
 b_nez64_ncc_svygre:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVC27nhqvberpbeq_pnyyonpx_pbbxvrR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVC27nhqvberpbeq_pnyyonpx_pbbxvrR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVC27nhqvberpbeq_pnyyonpx_pbbxvrR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVC27nhqvberpbeq_pnyyonpx_pbbxvrR15qb_zbir_sbejneqRCiCXiz:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVC26nhqvbgenpx_pnyyonpx_pbbxvrR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVC26nhqvbgenpx_pnyyonpx_pbbxvrR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVC26nhqvbgenpx_pnyyonpx_pbbxvrR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVC26nhqvbgenpx_pnyyonpx_pbbxvrR7qb_pbclRCiCXiz:
 nop
@@ -1128,7 +1128,7 @@
 b__MA7naqebvq7WUjOybo9ArjBowrpgRC7_WAVRaiCXiz:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_16xrl_inyhr_cnve_gVCAF_10VachgRiragRoRRR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_16xrl_inyhr_cnve_gVCAF_10VachgRiragRoRRR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_16xrl_inyhr_cnve_gVCAF_10VachgRiragRoRRR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_16xrl_inyhr_cnve_gVCAF_10VachgRiragRoRRR15qb_zbir_sbejneqRCiCXiz:
 nop
@@ -1138,7 +1138,7 @@
 b__MA7naqebvq9WUjOvaqreP1RC7_WAVRaiC8_wbowrpg:
 nop
 .text
-.globl b__MAFg3__110__shapgvba6__shapVAF_6__ovaqVESiC7_WAVRaiCXpC8_wfgevatEXAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRRWEF4_EN5_F5_QaEXAF_12cynprubyqref4__cuVYv1RRRRRRAFP_VFE_RRSiFR_RR18qrfgebl_qrnyybpngrRi
+.weak b__MAFg3__110__shapgvba6__shapVAF_6__ovaqVESiC7_WAVRaiCXpC8_wfgevatEXAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRRWEF4_EN5_F5_QaEXAF_12cynprubyqref4__cuVYv1RRRRRRAFP_VFE_RRSiFR_RR18qrfgebl_qrnyybpngrRi
 .type b__MAFg3__110__shapgvba6__shapVAF_6__ovaqVESiC7_WAVRaiCXpC8_wfgevatEXAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRRWEF4_EN5_F5_QaEXAF_12cynprubyqref4__cuVYv1RRRRRRAFP_VFE_RRSiFR_RR18qrfgebl_qrnyybpngrRi,%function
 b__MAFg3__110__shapgvba6__shapVAF_6__ovaqVESiC7_WAVRaiCXpC8_wfgevatEXAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRRWEF4_EN5_F5_QaEXAF_12cynprubyqref4__cuVYv1RRRRRRAFP_VFE_RRSiFR_RR18qrfgebl_qrnyybpngrRi:
 nop
@@ -1178,7 +1178,7 @@
 b__M33ertvfgre_naqebvq_bcraty_wav_RTY15C7_WAVRai:
 nop
 .data
-.globl b__MGPA7naqebvq25AngvirErzbgrQvfcynlPyvragR8_AF_7OOvaqreR
+.weak b__MGPA7naqebvq25AngvirErzbgrQvfcynlPyvragR8_AF_7OOvaqreR
 .type b__MGPA7naqebvq25AngvirErzbgrQvfcynlPyvragR8_AF_7OOvaqreR,%object
 b__MGPA7naqebvq25AngvirErzbgrQvfcynlPyvragR8_AF_7OOvaqreR:
 .space __SIZEOF_POINTER__
@@ -1193,7 +1193,7 @@
 b__MA7naqebvq49ertvfgre_naqebvq_ivrj_PbzcbfvgvbaFnzcyvatYvfgrareRC7_WAVRai:
 nop
 .data
-.globl b__MGIA7naqebvq6IrpgbeVC14FpbcrqHgsPunefRR
+.weak b__MGIA7naqebvq6IrpgbeVC14FpbcrqHgsPunefRR
 .type b__MGIA7naqebvq6IrpgbeVC14FpbcrqHgsPunefRR,%object
 b__MGIA7naqebvq6IrpgbeVC14FpbcrqHgsPunefRR:
 .space __SIZEOF_POINTER__
@@ -1203,7 +1203,7 @@
 b__MGGA7naqebvq22AngvirVachgRiragFraqreR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIA7naqebvq22UjOvaqreQrnguErpvcvragR
+.weak b__MGIA7naqebvq22UjOvaqreQrnguErpvcvragR
 .type b__MGIA7naqebvq22UjOvaqreQrnguErpvcvragR,%object
 b__MGIA7naqebvq22UjOvaqreQrnguErpvcvragR:
 .space __SIZEOF_POINTER__
@@ -1228,7 +1228,7 @@
 b__MAX13AngvirPbagrkg18trgPunenpgrevfgvpfRi:
 nop
 .text
-.globl b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVqR9jevgrQngnRwCAF0_12RaqvnaBhgchgR
+.weak b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVqR9jevgrQngnRwCAF0_12RaqvnaBhgchgR
 .type b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVqR9jevgrQngnRwCAF0_12RaqvnaBhgchgR,%function
 b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVqR9jevgrQngnRwCAF0_12RaqvnaBhgchgR:
 nop
@@ -1243,7 +1243,7 @@
 b_tBcgvbaf_cerzhygvcyvrqSvryqVQ:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAXFg3__110__shapgvba6__shapVAF_6__ovaqVESiC7_WAVRaiCXpC8_wfgevatEXAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRRWEF4_EN5_F5_QaEXAF_12cynprubyqref4__cuVYv1RRRRRRAFP_VFE_RRSiFR_RR7__pybarRi
+.weak b__MAXFg3__110__shapgvba6__shapVAF_6__ovaqVESiC7_WAVRaiCXpC8_wfgevatEXAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRRWEF4_EN5_F5_QaEXAF_12cynprubyqref4__cuVYv1RRRRRRAFP_VFE_RRSiFR_RR7__pybarRi
 .type b__MAXFg3__110__shapgvba6__shapVAF_6__ovaqVESiC7_WAVRaiCXpC8_wfgevatEXAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRRWEF4_EN5_F5_QaEXAF_12cynprubyqref4__cuVYv1RRRRRRAFP_VFE_RRSiFR_RR7__pybarRi,%function
 b__MAXFg3__110__shapgvba6__shapVAF_6__ovaqVESiC7_WAVRaiCXpC8_wfgevatEXAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRRWEF4_EN5_F5_QaEXAF_12cynprubyqref4__cuVYv1RRRRRRAFP_VFE_RRSiFR_RR7__pybarRi:
 nop
@@ -1283,7 +1283,7 @@
 b__MA18WavVachgOlgrOhssreQ0Ri:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVuR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq6IrpgbeVuR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq6IrpgbeVuR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq6IrpgbeVuR10qb_qrfgeblRCiz:
 nop
@@ -1298,12 +1298,12 @@
 b__MA7naqebvq57ertvfgre_naqebvq_tencuvpf_qenjnoyr_NavzngrqIrpgbeQenjnoyrRC7_WAVRai:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVCAF_6YbbcreRR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVCAF_6YbbcreRR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVCAF_6YbbcreRR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVCAF_6YbbcreRR15qb_zbir_sbejneqRCiCXiz:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_7Fgevat8RR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_7Fgevat8RR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_7Fgevat8RR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_7Fgevat8RR16qb_zbir_onpxjneqRCiCXiz:
 nop
@@ -1323,7 +1323,7 @@
 b__MA20WAVNhqvbCbegPnyyonpx13baFreivprQvrqRi:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR10qb_pbzcnerRCXiF6_
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR10qb_pbzcnerRCXiF6_
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR10qb_pbzcnerRCXiF6_,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR10qb_pbzcnerRCXiF6_:
 nop
@@ -1338,17 +1338,17 @@
 b__MAX15AvarCngpuCrrxre21perngrAvarCngpuVafrgfRC7_WAVRais:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA15FxSbagNethzragf4NkvfRA7naqebvq10hveraqrere18VayvarFgqNyybpngbeVF2_Yz2RRRR24__rzcynpr_onpx_fybj_cnguVWF2_RRRiQcBG_
+.weak b__MAFg3__16irpgbeVA15FxSbagNethzragf4NkvfRA7naqebvq10hveraqrere18VayvarFgqNyybpngbeVF2_Yz2RRRR24__rzcynpr_onpx_fybj_cnguVWF2_RRRiQcBG_
 .type b__MAFg3__16irpgbeVA15FxSbagNethzragf4NkvfRA7naqebvq10hveraqrere18VayvarFgqNyybpngbeVF2_Yz2RRRR24__rzcynpr_onpx_fybj_cnguVWF2_RRRiQcBG_,%function
 b__MAFg3__16irpgbeVA15FxSbagNethzragf4NkvfRA7naqebvq10hveraqrere18VayvarFgqNyybpngbeVF2_Yz2RRRR24__rzcynpr_onpx_fybj_cnguVWF2_RRRiQcBG_:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_10funerq_cgeVA7zvavxva10SbagSnzvylRRRAF_9nyybpngbeVF4_RRR7erfreirRz
+.weak b__MAFg3__16irpgbeVAF_10funerq_cgeVA7zvavxva10SbagSnzvylRRRAF_9nyybpngbeVF4_RRR7erfreirRz
 .type b__MAFg3__16irpgbeVAF_10funerq_cgeVA7zvavxva10SbagSnzvylRRRAF_9nyybpngbeVF4_RRR7erfreirRz,%function
 b__MAFg3__16irpgbeVAF_10funerq_cgeVA7zvavxva10SbagSnzvylRRRAF_9nyybpngbeVF4_RRR7erfreirRz:
 nop
 .text
-.globl b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVgR13trgRaqvnaarffRi
+.weak b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVgR13trgRaqvnaarffRi
 .type b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVgR13trgRaqvnaarffRi,%function
 b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVgR13trgRaqvnaarffRi:
 nop
@@ -1363,7 +1363,7 @@
 b__MA7naqebvq16ahyyBowrpgErgheaRCXp:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_6FrafbeRR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_6FrafbeRR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_6FrafbeRR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_6FrafbeRR7qb_pbclRCiCXiz:
 nop
@@ -1373,7 +1373,7 @@
 b__MA18SvyrQrfpevcgbeVasb13TrgFbpxrgAnzrRvCAFg3__112onfvp_fgevatVpAF0_11pune_genvgfVpRRAF0_9nyybpngbeVpRRRR:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVwR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVwR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVwR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVwR7qb_pbclRCiCXiz:
 nop
@@ -1388,7 +1388,7 @@
 b_erfrg_ybt_pbagrkg:
 nop
 .text
-.globl b__MAX7naqebvq9vzt_hgvyf10GvssJevgre10ohvyqRagelVuRRvgwCXG_CAF_2fcVAF0_9GvssRagelRRR
+.weak b__MAX7naqebvq9vzt_hgvyf10GvssJevgre10ohvyqRagelVuRRvgwCXG_CAF_2fcVAF0_9GvssRagelRRR
 .type b__MAX7naqebvq9vzt_hgvyf10GvssJevgre10ohvyqRagelVuRRvgwCXG_CAF_2fcVAF0_9GvssRagelRRR,%function
 b__MAX7naqebvq9vzt_hgvyf10GvssJevgre10ohvyqRagelVuRRvgwCXG_CAF_2fcVAF0_9GvssRagelRRR:
 nop
@@ -1403,12 +1403,12 @@
 b__MA7naqebvq42ertvfgre_naqebvq_tencuvpf_sbagf_SbagSnzvylRC7_WAVRai:
 nop
 .data
-.globl b__MGIA7naqebvq6IrpgbeV12WninIZBcgvbaRR
+.weak b__MGIA7naqebvq6IrpgbeV12WninIZBcgvbaRR
 .type b__MGIA7naqebvq6IrpgbeV12WninIZBcgvbaRR,%object
 b__MGIA7naqebvq6IrpgbeV12WninIZBcgvbaRR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIA7naqebvq6IrpgbeVAF_11QvfcynlVasbRRR
+.weak b__MGIA7naqebvq6IrpgbeVAF_11QvfcynlVasbRRR
 .type b__MGIA7naqebvq6IrpgbeVAF_11QvfcynlVasbRRR,%object
 b__MGIA7naqebvq6IrpgbeVAF_11QvfcynlVasbRRR:
 .space __SIZEOF_POINTER__
@@ -1418,7 +1418,7 @@
 b_tBcgvbaf_whfgObhaqfSvryqVQ:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq6IrpgbeVsR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVsR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVsR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVsR8qb_fcyngRCiCXiz:
 nop
@@ -1433,7 +1433,7 @@
 b__MA7naqebvq30NffrgZnantreSbeAqxNffrgZnantreRC13NNffrgZnantre:
 nop
 .data
-.globl b__MGIAFg3__119onfvp_vfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
+.weak b__MGIAFg3__119onfvp_vfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
 .type b__MGIAFg3__119onfvp_vfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR,%object
 b__MGIAFg3__119onfvp_vfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR:
 .space __SIZEOF_POINTER__
@@ -1473,7 +1473,7 @@
 b__MA7naqebvq23AngvirVachgJvaqbjUnaqyr10hcqngrVasbRi:
 nop
 .data
-.globl b__MGIAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
+.weak b__MGIAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
 .type b__MGIAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR,%object
 b__MGIAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR:
 .space __SIZEOF_POINTER__
@@ -1488,7 +1488,7 @@
 b__MA7naqebvq15trgOCAngvirQngnRC7_WAVRaiC8_wbowrpg:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVvAF_6irpgbeVA7naqebvq15NhqvbNggevohgrfRAF_9nyybpngbeVF4_RRRRRRAF_19__znc_inyhr_pbzcnerVvF8_AF_4yrffVvRRYo1RRRAF5_VF8_RRR7qrfgeblRCAF_11__gerr_abqrVF8_CiRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVvAF_6irpgbeVA7naqebvq15NhqvbNggevohgrfRAF_9nyybpngbeVF4_RRRRRRAF_19__znc_inyhr_pbzcnerVvF8_AF_4yrffVvRRYo1RRRAF5_VF8_RRR7qrfgeblRCAF_11__gerr_abqrVF8_CiRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVvAF_6irpgbeVA7naqebvq15NhqvbNggevohgrfRAF_9nyybpngbeVF4_RRRRRRAF_19__znc_inyhr_pbzcnerVvF8_AF_4yrffVvRRYo1RRRAF5_VF8_RRR7qrfgeblRCAF_11__gerr_abqrVF8_CiRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVvAF_6irpgbeVA7naqebvq15NhqvbNggevohgrfRAF_9nyybpngbeVF4_RRRRRRAF_19__znc_inyhr_pbzcnerVvF8_AF_4yrffVvRRYo1RRRAF5_VF8_RRR7qrfgeblRCAF_11__gerr_abqrVF8_CiRR:
 nop
@@ -1503,7 +1503,7 @@
 b__MA13AngvirPbagrkgQ1Ri:
 nop
 .text
-.globl b__MAFg3__110__shapgvba6__shapVAF_6__ovaqVESiC7_WAVRaiCXpC8_wfgevatEXAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRRWEF4_EF6_EF8_EXAF_12cynprubyqref4__cuVYv1RRRRRRAFP_VFE_RRSiFR_RRpyRBFR_
+.weak b__MAFg3__110__shapgvba6__shapVAF_6__ovaqVESiC7_WAVRaiCXpC8_wfgevatEXAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRRWEF4_EF6_EF8_EXAF_12cynprubyqref4__cuVYv1RRRRRRAFP_VFE_RRSiFR_RRpyRBFR_
 .type b__MAFg3__110__shapgvba6__shapVAF_6__ovaqVESiC7_WAVRaiCXpC8_wfgevatEXAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRRWEF4_EF6_EF8_EXAF_12cynprubyqref4__cuVYv1RRRRRRAFP_VFE_RRSiFR_RRpyRBFR_,%function
 b__MAFg3__110__shapgvba6__shapVAF_6__ovaqVESiC7_WAVRaiCXpC8_wfgevatEXAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRRWEF4_EF6_EF8_EXAF_12cynprubyqref4__cuVYv1RRRRRRAFP_VFE_RRSiFR_RRpyRBFR_:
 nop
@@ -1523,22 +1523,22 @@
 b__MAX7naqebvq10YvfgUrycre3trgRv:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVC27nhqvberpbeq_pnyyonpx_pbbxvrR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVC27nhqvberpbeq_pnyyonpx_pbbxvrR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVC27nhqvberpbeq_pnyyonpx_pbbxvrR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVC27nhqvberpbeq_pnyyonpx_pbbxvrR12qb_pbafgehpgRCiz:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_19NhqvbQrivprGlcrNqqeRR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_19NhqvbQrivprGlcrNqqeRR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_19NhqvbQrivprGlcrNqqeRR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_19NhqvbQrivprGlcrNqqeRR7qb_pbclRCiCXiz:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVsR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVsR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVsR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVsR7qb_pbclRCiCXiz:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_12QvfcynlFgngrRR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_12QvfcynlFgngrRR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_12QvfcynlFgngrRR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_12QvfcynlFgngrRR8qb_fcyngRCiCXiz:
 nop
@@ -1593,7 +1593,7 @@
 b__M13perngr_wzbivrC7_WAVRaiC5Zbivr:
 nop
 .text
-.globl b__MAFg3__16irpgbeVvAF_9nyybpngbeVvRRR6vafregVAF_11__jenc_vgreVCvRRRRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVvAF_15vgrengbe_genvgfVF9_R9ersreraprRRR5inyhrRF7_R4glcrRAF5_VCXvRRF9_F9_
+.weak b__MAFg3__16irpgbeVvAF_9nyybpngbeVvRRR6vafregVAF_11__jenc_vgreVCvRRRRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVvAF_15vgrengbe_genvgfVF9_R9ersreraprRRR5inyhrRF7_R4glcrRAF5_VCXvRRF9_F9_
 .type b__MAFg3__16irpgbeVvAF_9nyybpngbeVvRRR6vafregVAF_11__jenc_vgreVCvRRRRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVvAF_15vgrengbe_genvgfVF9_R9ersreraprRRR5inyhrRF7_R4glcrRAF5_VCXvRRF9_F9_,%function
 b__MAFg3__16irpgbeVvAF_9nyybpngbeVvRRR6vafregVAF_11__jenc_vgreVCvRRRRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVvAF_15vgrengbe_genvgfVF9_R9ersreraprRRR5inyhrRF7_R4glcrRAF5_VCXvRRF9_F9_:
 nop
@@ -1603,12 +1603,12 @@
 b_nflap_fnsr_sbezng_sq:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7zvavxva4SbagRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVF2_RRiBG_
+.weak b__MAFg3__16irpgbeVA7zvavxva4SbagRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVF2_RRiBG_
 .type b__MAFg3__16irpgbeVA7zvavxva4SbagRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVF2_RRiBG_,%function
 b__MAFg3__16irpgbeVA7zvavxva4SbagRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVF2_RRiBG_:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_11QvfcynlVasbRR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_11QvfcynlVasbRR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_11QvfcynlVasbRR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_11QvfcynlVasbRR8qb_fcyngRCiCXiz:
 nop
@@ -1618,12 +1618,12 @@
 b__MA7naqebvq18AngvirZrffntrDhrhr8cbyyBaprRC7_WAVRaiC8_wbowrpgv:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_22NhqvbZvkZngpuPevgrevbaRR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_22NhqvbZvkZngpuPevgrevbaRR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_22NhqvbZvkZngpuPevgrevbaRR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_22NhqvbZvkZngpuPevgrevbaRR8qb_fcyngRCiCXiz:
 nop
 .text
-.globl b__MA7naqebvq9vzt_hgvyf13GvssRagelVzcyVqRQ0Ri
+.weak b__MA7naqebvq9vzt_hgvyf13GvssRagelVzcyVqRQ0Ri
 .type b__MA7naqebvq9vzt_hgvyf13GvssRagelVzcyVqRQ0Ri,%function
 b__MA7naqebvq9vzt_hgvyf13GvssRagelVzcyVqRQ0Ri:
 nop
@@ -1643,7 +1643,7 @@
 b__MA7naqebvq44naqebvq_ivrj_VachgPunaary_frgQvfcbfrPnyyonpxRC7_WAVRaiC8_wbowrpgCSiF1_F3_EXAF_2fcVAF_12VachgPunaaryRRRCiRF9_:
 nop
 .data
-.globl b__MGIAFg3__120__funerq_cge_rzcynprVA7naqebvq16WTybonyErsUbyqreRAF_9nyybpngbeVF2_RRRR
+.weak b__MGIAFg3__120__funerq_cge_rzcynprVA7naqebvq16WTybonyErsUbyqreRAF_9nyybpngbeVF2_RRRR
 .type b__MGIAFg3__120__funerq_cge_rzcynprVA7naqebvq16WTybonyErsUbyqreRAF_9nyybpngbeVF2_RRRR,%object
 b__MGIAFg3__120__funerq_cge_rzcynprVA7naqebvq16WTybonyErsUbyqreRAF_9nyybpngbeVF2_RRRR:
 .space __SIZEOF_POINTER__
@@ -1663,7 +1663,7 @@
 b__MA21Lhi420FcGbWcrtRapbqre21pbasvtFnzcyvatSnpgbefRC20wcrt_pbzcerff_fgehpg:
 nop
 .text
-.globl b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVgR18trgPbzcnenoyrInyhrRi
+.weak b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVgR18trgPbzcnenoyrInyhrRi
 .type b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVgR18trgPbzcnenoyrInyhrRi,%function
 b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVgR18trgPbzcnenoyrInyhrRi:
 nop
@@ -1683,7 +1683,7 @@
 b__MA7naqebvq26FhesnprGrkgher_trgCebqhpreRC7_WAVRaiC8_wbowrpg:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwwRRAF_22__habeqrerq_znc_unfureVwF2_AF_4unfuVwRRYo1RRRAF_21__habeqrerq_znc_rdhnyVwF2_AF_8rdhny_gbVwRRYo1RRRAF_9nyybpngbeVF2_RRR6erzbirRAF_21__unfu_pbafg_vgrengbeVCAF_11__unfu_abqrVF2_CiRRRR
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwwRRAF_22__habeqrerq_znc_unfureVwF2_AF_4unfuVwRRYo1RRRAF_21__habeqrerq_znc_rdhnyVwF2_AF_8rdhny_gbVwRRYo1RRRAF_9nyybpngbeVF2_RRR6erzbirRAF_21__unfu_pbafg_vgrengbeVCAF_11__unfu_abqrVF2_CiRRRR
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwwRRAF_22__habeqrerq_znc_unfureVwF2_AF_4unfuVwRRYo1RRRAF_21__habeqrerq_znc_rdhnyVwF2_AF_8rdhny_gbVwRRYo1RRRAF_9nyybpngbeVF2_RRR6erzbirRAF_21__unfu_pbafg_vgrengbeVCAF_11__unfu_abqrVF2_CiRRRR,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwwRRAF_22__habeqrerq_znc_unfureVwF2_AF_4unfuVwRRYo1RRRAF_21__habeqrerq_znc_rdhnyVwF2_AF_8rdhny_gbVwRRYo1RRRAF_9nyybpngbeVF2_RRR6erzbirRAF_21__unfu_pbafg_vgrengbeVCAF_11__unfu_abqrVF2_CiRRRR:
 nop
@@ -1698,7 +1698,7 @@
 b__MA7naqebvq23fvtanyRkprcgvbaSbeReebeRC7_WAVRaiC8_wbowrpgvov:
 nop
 .text
-.globl b__MA7naqebvq9vzt_hgvyf10GvssJevgre8nqqRagelVqRRvgwCXG_w
+.weak b__MA7naqebvq9vzt_hgvyf10GvssJevgre8nqqRagelVqRRvgwCXG_w
 .type b__MA7naqebvq9vzt_hgvyf10GvssJevgre8nqqRagelVqRRvgwCXG_w,%function
 b__MA7naqebvq9vzt_hgvyf10GvssJevgre8nqqRagelVqRRvgwCXG_w:
 nop
@@ -1708,7 +1708,7 @@
 b__MA7naqebvq10VachgDhrhr17perngrZbgvbaRiragRi:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVCAF_6YbbcreRR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq6IrpgbeVCAF_6YbbcreRR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq6IrpgbeVCAF_6YbbcreRR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq6IrpgbeVCAF_6YbbcreRR10qb_qrfgeblRCiz:
 nop
@@ -1743,12 +1743,12 @@
 b__MA7naqebvq17WAVQrivprPnyyonpxQ0Ri:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvC18SvyrQrfpevcgbeVasbRRAF_22__habeqrerq_znc_unfureVvF4_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF4_AF_8rdhny_gbVvRRYo1RRRAF_9nyybpngbeVF4_RRR25__rzcynpr_havdhr_xrl_netfVvWEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXvRRRAFX_VWRRRRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF4_CiRRRRoRREXG_QcBG0_
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvC18SvyrQrfpevcgbeVasbRRAF_22__habeqrerq_znc_unfureVvF4_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF4_AF_8rdhny_gbVvRRYo1RRRAF_9nyybpngbeVF4_RRR25__rzcynpr_havdhr_xrl_netfVvWEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXvRRRAFX_VWRRRRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF4_CiRRRRoRREXG_QcBG0_
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvC18SvyrQrfpevcgbeVasbRRAF_22__habeqrerq_znc_unfureVvF4_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF4_AF_8rdhny_gbVvRRYo1RRRAF_9nyybpngbeVF4_RRR25__rzcynpr_havdhr_xrl_netfVvWEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXvRRRAFX_VWRRRRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF4_CiRRRRoRREXG_QcBG0_,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvC18SvyrQrfpevcgbeVasbRRAF_22__habeqrerq_znc_unfureVvF4_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF4_AF_8rdhny_gbVvRRYo1RRRAF_9nyybpngbeVF4_RRR25__rzcynpr_havdhr_xrl_netfVvWEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXvRRRAFX_VWRRRRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF4_CiRRRRoRREXG_QcBG0_:
 nop
 .data
-.globl b__MGIA7naqebvq23AngvirYvoenevrfVgrengbeR
+.weak b__MGIA7naqebvq23AngvirYvoenevrfVgrengbeR
 .type b__MGIA7naqebvq23AngvirYvoenevrfVgrengbeR,%object
 b__MGIA7naqebvq23AngvirYvoenevrfVgrengbeR:
 .space __SIZEOF_POINTER__
@@ -1778,7 +1778,7 @@
 b__MA14WavVachgFgernzQ2Ri:
 nop
 .text
-.globl b__MAFg3__16__gerrVA7naqebvq2fcVAF1_10hveraqrere25CebcreglInyhrfNavzngbeFrgRRRAF_4yrffVF5_RRAF_9nyybpngbeVF5_RRR7qrfgeblRCAF_11__gerr_abqrVF5_CiRR
+.weak b__MAFg3__16__gerrVA7naqebvq2fcVAF1_10hveraqrere25CebcreglInyhrfNavzngbeFrgRRRAF_4yrffVF5_RRAF_9nyybpngbeVF5_RRR7qrfgeblRCAF_11__gerr_abqrVF5_CiRR
 .type b__MAFg3__16__gerrVA7naqebvq2fcVAF1_10hveraqrere25CebcreglInyhrfNavzngbeFrgRRRAF_4yrffVF5_RRAF_9nyybpngbeVF5_RRR7qrfgeblRCAF_11__gerr_abqrVF5_CiRR,%function
 b__MAFg3__16__gerrVA7naqebvq2fcVAF1_10hveraqrere25CebcreglInyhrfNavzngbeFrgRRRAF_4yrffVF5_RRAF_9nyybpngbeVF5_RRR7qrfgeblRCAF_11__gerr_abqrVF5_CiRR:
 nop
@@ -1808,7 +1808,7 @@
 b__MA7naqebvq24WAVFhesnprGrkgherPbagrkgQ2Ri:
 nop
 .text
-.globl b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVqR7trgFvmrRi
+.weak b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVqR7trgFvmrRi
 .type b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVqR7trgFvmrRi,%function
 b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVqR7trgFvmrRi:
 nop
@@ -1818,7 +1818,7 @@
 b__MA7naqebvq10VachgDhrhr12radhrhrRiragRCAF_10VachgRiragR:
 nop
 .data
-.globl b__MGG11WninOOvaqre
+.weak b__MGG11WninOOvaqre
 .type b__MGG11WninOOvaqre,%object
 b__MGG11WninOOvaqre:
 .space __SIZEOF_POINTER__
@@ -1828,7 +1828,7 @@
 b__MA11TencuvpfWAV16wcbvags_gb_cbvagRC7_WAVRaiC8_wbowrpgC7FxCbvag:
 nop
 .text
-.globl b__MA7naqebvq2fcVAF_10NhqvbGenpxRRnFRCF1_
+.weak b__MA7naqebvq2fcVAF_10NhqvbGenpxRRnFRCF1_
 .type b__MA7naqebvq2fcVAF_10NhqvbGenpxRRnFRCF1_,%function
 b__MA7naqebvq2fcVAF_10NhqvbGenpxRRnFRCF1_:
 nop
@@ -1863,7 +1863,7 @@
 b__MA8TVSZbivrP1RC8FxFgernz:
 nop
 .text
-.globl b__MAFg3__16irpgbeVCXpAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVF2_RRiBG_
+.weak b__MAFg3__16irpgbeVCXpAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVF2_RRiBG_
 .type b__MAFg3__16irpgbeVCXpAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVF2_RRiBG_,%function
 b__MAFg3__16irpgbeVCXpAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVF2_RRiBG_:
 nop
@@ -1878,17 +1878,17 @@
 b__M34naqebvq_bf_Cebprff_fraqFvtanyDhvrgC7_WAVRaiC8_wbowrpgvv:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVC26nhqvbgenpx_pnyyonpx_pbbxvrR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVC26nhqvbgenpx_pnyyonpx_pbbxvrR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVC26nhqvbgenpx_pnyyonpx_pbbxvrR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVC26nhqvbgenpx_pnyyonpx_pbbxvrR12qb_pbafgehpgRCiz:
 nop
 .text
-.globl b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVvR6trgGntRi
+.weak b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVvR6trgGntRi
 .type b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVvR6trgGntRi,%function
 b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVvR6trgGntRi:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvC18SvyrQrfpevcgbeVasbRRAF_22__habeqrerq_znc_unfureVvF4_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF4_AF_8rdhny_gbVvRRYo1RRRAF_9nyybpngbeVF4_RRR6erunfuRz
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvC18SvyrQrfpevcgbeVasbRRAF_22__habeqrerq_znc_unfureVvF4_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF4_AF_8rdhny_gbVvRRYo1RRRAF_9nyybpngbeVF4_RRR6erunfuRz
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvC18SvyrQrfpevcgbeVasbRRAF_22__habeqrerq_znc_unfureVvF4_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF4_AF_8rdhny_gbVvRRYo1RRRAF_9nyybpngbeVF4_RRR6erunfuRz,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvC18SvyrQrfpevcgbeVasbRRAF_22__habeqrerq_znc_unfureVvF4_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF4_AF_8rdhny_gbVvRRYo1RRRAF_9nyybpngbeVF4_RRR6erunfuRz:
 nop
@@ -1903,7 +1903,7 @@
 b_nflap_fnsr_jevgr_ybt:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_24AngvirVachgRiragErprvire6SvavfuRR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq6IrpgbeVAF_24AngvirVachgRiragErprvire6SvavfuRR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq6IrpgbeVAF_24AngvirVachgRiragErprvire6SvavfuRR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq6IrpgbeVAF_24AngvirVachgRiragErprvire6SvavfuRR10qb_qrfgeblRCiz:
 nop
@@ -1938,7 +1938,7 @@
 b__MA14WavVachgFgernzP2RC7_WAVRaiC8_wbowrpg:
 nop
 .data
-.globl b__MGIA7naqebvq9vzt_hgvyf13GvssRagelVzcyVqRR
+.weak b__MGIA7naqebvq9vzt_hgvyf13GvssRagelVzcyVqRR
 .type b__MGIA7naqebvq9vzt_hgvyf13GvssRagelVzcyVqRR,%object
 b__MGIA7naqebvq9vzt_hgvyf13GvssRagelVzcyVqRR:
 .space __SIZEOF_POINTER__
@@ -1958,12 +1958,12 @@
 b__MGi0_a24_A7naqebvq22AngvirVachgRiragFraqreQ0Ri:
 nop
 .data
-.globl b__MGIA7naqebvq6IrpgbeVCAF_10VachgRiragRRR
+.weak b__MGIA7naqebvq6IrpgbeVCAF_10VachgRiragRRR
 .type b__MGIA7naqebvq6IrpgbeVCAF_10VachgRiragRRR,%object
 b__MGIA7naqebvq6IrpgbeVCAF_10VachgRiragRRR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIA7naqebvq23SvavfuNaqVaibxrYvfgrareR
+.weak b__MGIA7naqebvq23SvavfuNaqVaibxrYvfgrareR
 .type b__MGIA7naqebvq23SvavfuNaqVaibxrYvfgrareR,%object
 b__MGIA7naqebvq23SvavfuNaqVaibxrYvfgrareR:
 .space __SIZEOF_POINTER__
@@ -1973,12 +1973,12 @@
 b__MA8TVSZbivr9baFrgGvzrRw:
 nop
 .text
-.globl b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVgR8trgPbhagRi
+.weak b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVgR8trgPbhagRi
 .type b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVgR8trgPbhagRi,%function
 b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVgR8trgPbhagRi:
 nop
 .text
-.globl b__MAXFg3__110__shapgvba6__shapVAF_6__ovaqVESiC7_WAVRaiCXpC8_wfgevatEXAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRRWEF4_EF6_EF8_EXAF_12cynprubyqref4__cuVYv1RRRRRRAFP_VFE_RRSiFR_RR7__pybarRi
+.weak b__MAXFg3__110__shapgvba6__shapVAF_6__ovaqVESiC7_WAVRaiCXpC8_wfgevatEXAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRRWEF4_EF6_EF8_EXAF_12cynprubyqref4__cuVYv1RRRRRRAFP_VFE_RRSiFR_RR7__pybarRi
 .type b__MAXFg3__110__shapgvba6__shapVAF_6__ovaqVESiC7_WAVRaiCXpC8_wfgevatEXAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRRWEF4_EF6_EF8_EXAF_12cynprubyqref4__cuVYv1RRRRRRAFP_VFE_RRSiFR_RR7__pybarRi,%function
 b__MAXFg3__110__shapgvba6__shapVAF_6__ovaqVESiC7_WAVRaiCXpC8_wfgevatEXAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRRWEF4_EF6_EF8_EXAF_12cynprubyqref4__cuVYv1RRRRRRAFP_VFE_RRSiFR_RR7__pybarRi:
 nop
@@ -1998,7 +1998,7 @@
 b__M39ertvfgre_naqebvq_tencuvpf_OvgzncSnpgbelC7_WAVRai:
 nop
 .data
-.globl b__MGIA7naqebvq10hveraqrere14SybngRinyhngbeR
+.weak b__MGIA7naqebvq10hveraqrere14SybngRinyhngbeR
 .type b__MGIA7naqebvq10hveraqrere14SybngRinyhngbeR,%object
 b__MGIA7naqebvq10hveraqrere14SybngRinyhngbeR:
 .space __SIZEOF_POINTER__
@@ -2008,7 +2008,7 @@
 b__M29PerngrWninBhgchgFgernzNqncgbeC7_WAVRaiC8_wbowrpgC11_wolgrNeenl:
 nop
 .text
-.globl b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVqR13trgRaqvnaarffRi
+.weak b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVqR13trgRaqvnaarffRi
 .type b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVqR13trgRaqvnaarffRi,%function
 b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVqR13trgRaqvnaarffRi:
 nop
@@ -2018,7 +2018,7 @@
 b_TvsHavbaPbybeZnc:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVyR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq6IrpgbeVyR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq6IrpgbeVyR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq6IrpgbeVyR12qb_pbafgehpgRCiz:
 nop
@@ -2028,7 +2028,7 @@
 b__MA11TencuvpfWAV15trgAngvirErtvbaRC7_WAVRaiC8_wbowrpg:
 nop
 .data
-.globl b__MGIA7naqebvq13BofreireCebklR
+.weak b__MGIA7naqebvq13BofreireCebklR
 .type b__MGIA7naqebvq13BofreireCebklR,%object
 b__MGIA7naqebvq13BofreireCebklR:
 .space __SIZEOF_POINTER__
@@ -2043,7 +2043,7 @@
 b_tOvgznc_avarCngpuVafrgfSvryqVQ:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIA7naqebvq6IrpgbeVAF_24AngvirVachgRiragErprvire6SvavfuRRR
+.weak b__MGIA7naqebvq6IrpgbeVAF_24AngvirVachgRiragErprvire6SvavfuRRR
 .type b__MGIA7naqebvq6IrpgbeVAF_24AngvirVachgRiragErprvire6SvavfuRRR,%object
 b__MGIA7naqebvq6IrpgbeVAF_24AngvirVachgRiragErprvire6SvavfuRRR:
 .space __SIZEOF_POINTER__
@@ -2063,7 +2063,7 @@
 b__MA7naqebvq28AngvirVachgNccyvpngvbaUnaqyrQ0Ri:
 nop
 .text
-.globl b__MAFg3__120__funerq_cge_rzcynprVA7naqebvq15ZvavxvaSbagFxvnRAF_9nyybpngbeVF2_RRR16__ba_mreb_funerqRi
+.weak b__MAFg3__120__funerq_cge_rzcynprVA7naqebvq15ZvavxvaSbagFxvnRAF_9nyybpngbeVF2_RRR16__ba_mreb_funerqRi
 .type b__MAFg3__120__funerq_cge_rzcynprVA7naqebvq15ZvavxvaSbagFxvnRAF_9nyybpngbeVF2_RRR16__ba_mreb_funerqRi,%function
 b__MAFg3__120__funerq_cge_rzcynprVA7naqebvq15ZvavxvaSbagFxvnRAF_9nyybpngbeVF2_RRR16__ba_mreb_funerqRi:
 nop
@@ -2073,7 +2073,7 @@
 b__MA23SvyrQrfpevcgbeJuvgryvfg3TrgRi:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVC14FpbcrqHgsPunefR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq6IrpgbeVC14FpbcrqHgsPunefR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq6IrpgbeVC14FpbcrqHgsPunefR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq6IrpgbeVC14FpbcrqHgsPunefR10qb_qrfgeblRCiz:
 nop
@@ -2088,12 +2088,12 @@
 b__MA7naqebvq32ertvfgre_naqebvq_tencuvpf_ErtvbaRC7_WAVRai:
 nop
 .data
-.globl b__MGGA7naqebvq21VaibxrEhaanoyrZrffntrR
+.weak b__MGGA7naqebvq21VaibxrEhaanoyrZrffntrR
 .type b__MGGA7naqebvq21VaibxrEhaanoyrZrffntrR,%object
 b__MGGA7naqebvq21VaibxrEhaanoyrZrffntrR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_13CbvagrePbbeqfRR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_13CbvagrePbbeqfRR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_13CbvagrePbbeqfRR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_13CbvagrePbbeqfRR15qb_zbir_sbejneqRCiCXiz:
 nop
@@ -2103,7 +2103,7 @@
 b__MA7naqebvq10VachgDhrhr13unaqyrZrffntrREXAF_7ZrffntrR:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVC14FpbcrqHgsPunefR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq6IrpgbeVC14FpbcrqHgsPunefR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq6IrpgbeVC14FpbcrqHgsPunefR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq6IrpgbeVC14FpbcrqHgsPunefR12qb_pbafgehpgRCiz:
 nop
@@ -2163,7 +2163,7 @@
 b__MA7naqebvq26UjOvaqreQrnguErpvcvragYvfgQ2Ri:
 nop
 .data
-.globl b__MGG14VaibxrYvfgrare
+.weak b__MGG14VaibxrYvfgrare
 .type b__MGG14VaibxrYvfgrare,%object
 b__MGG14VaibxrYvfgrare:
 .space __SIZEOF_POINTER__
@@ -2173,7 +2173,7 @@
 b__MA13AngvirPbagrkgQ0Ri:
 nop
 .text
-.globl b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVuR18trgPbzcnenoyrInyhrRi
+.weak b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVuR18trgPbzcnenoyrInyhrRi
 .type b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVuR18trgPbzcnenoyrInyhrRi,%function
 b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVuR18trgPbzcnenoyrInyhrRi:
 nop
@@ -2198,7 +2198,7 @@
 b__MA7naqebvq10VachgDhrhrQ1Ri:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVsR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVsR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVsR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVsR15qb_zbir_sbejneqRCiCXiz:
 nop
@@ -2218,7 +2218,7 @@
 b__MAX13AngvirPbagrkg14trgBevragngvbaRi:
 nop
 .text
-.globl b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVuR13trgRaqvnaarffRi
+.weak b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVuR13trgRaqvnaarffRi
 .type b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVuR13trgRaqvnaarffRi,%function
 b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVuR13trgRaqvnaarffRi:
 nop
@@ -2233,17 +2233,17 @@
 b__MA7naqebvq44ertvfgre_pbz_naqebvq_vagreany_bf_ShfrNccYbbcRC7_WAVRai:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVCAF_10VachgRiragRR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVCAF_10VachgRiragRR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVCAF_10VachgRiragRR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVCAF_10VachgRiragRR15qb_zbir_sbejneqRCiCXiz:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVA7naqebvq2fcVAF2_14FhesnprPbagebyRRRAF2_13PbzcbfreFgngrRRRAF_22__habeqrerq_znc_unfureVF5_F7_AF2_21FhesnprPbzcbfrePyvrag6FPUnfuRYo1RRRAF_21__habeqrerq_znc_rdhnyVF5_F7_AF_8rdhny_gbVF5_RRYo1RRRAF_9nyybpngbeVF7_RRRQ2Ri
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVA7naqebvq2fcVAF2_14FhesnprPbagebyRRRAF2_13PbzcbfreFgngrRRRAF_22__habeqrerq_znc_unfureVF5_F7_AF2_21FhesnprPbzcbfrePyvrag6FPUnfuRYo1RRRAF_21__habeqrerq_znc_rdhnyVF5_F7_AF_8rdhny_gbVF5_RRYo1RRRAF_9nyybpngbeVF7_RRRQ2Ri
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVA7naqebvq2fcVAF2_14FhesnprPbagebyRRRAF2_13PbzcbfreFgngrRRRAF_22__habeqrerq_znc_unfureVF5_F7_AF2_21FhesnprPbzcbfrePyvrag6FPUnfuRYo1RRRAF_21__habeqrerq_znc_rdhnyVF5_F7_AF_8rdhny_gbVF5_RRYo1RRRAF_9nyybpngbeVF7_RRRQ2Ri,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVA7naqebvq2fcVAF2_14FhesnprPbagebyRRRAF2_13PbzcbfreFgngrRRRAF_22__habeqrerq_znc_unfureVF5_F7_AF2_21FhesnprPbzcbfrePyvrag6FPUnfuRYo1RRRAF_21__habeqrerq_znc_rdhnyVF5_F7_AF_8rdhny_gbVF5_RRYo1RRRAF_9nyybpngbeVF7_RRRQ2Ri:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF6_RRR21__chfu_onpx_fybj_cnguVF6_RRiBG_
+.weak b__MAFg3__16irpgbeVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF6_RRR21__chfu_onpx_fybj_cnguVF6_RRiBG_
 .type b__MAFg3__16irpgbeVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF6_RRR21__chfu_onpx_fybj_cnguVF6_RRiBG_,%function
 b__MAFg3__16irpgbeVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF6_RRR21__chfu_onpx_fybj_cnguVF6_RRiBG_:
 nop
@@ -2258,17 +2258,17 @@
 b__MGIA7naqebvq26AngvirQvfcynlRiragErprvireR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq10hveraqrere20QrsreerqYnlreHcqngre17frgFhesnprGrkgherREXAF_2fcVAF_14FhesnprGrkgherRRR
+.weak b__MA7naqebvq10hveraqrere20QrsreerqYnlreHcqngre17frgFhesnprGrkgherREXAF_2fcVAF_14FhesnprGrkgherRRR
 .type b__MA7naqebvq10hveraqrere20QrsreerqYnlreHcqngre17frgFhesnprGrkgherREXAF_2fcVAF_14FhesnprGrkgherRRR,%function
 b__MA7naqebvq10hveraqrere20QrsreerqYnlreHcqngre17frgFhesnprGrkgherREXAF_2fcVAF_14FhesnprGrkgherRRR:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_19NhqvbQrivprGlcrNqqeRR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq6IrpgbeVAF_19NhqvbQrivprGlcrNqqeRR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq6IrpgbeVAF_19NhqvbQrivprGlcrNqqeRR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq6IrpgbeVAF_19NhqvbQrivprGlcrNqqeRR10qb_qrfgeblRCiz:
 nop
 .data
-.globl b__MGIAFg3__110__shapgvba6__shapVAF_6__ovaqVESiC7_WAVRaiCXpC8_wfgevatEXAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRRWEF4_EF6_EF8_EXAF_12cynprubyqref4__cuVYv1RRRRRRAFP_VFE_RRSiFR_RRR
+.weak b__MGIAFg3__110__shapgvba6__shapVAF_6__ovaqVESiC7_WAVRaiCXpC8_wfgevatEXAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRRWEF4_EF6_EF8_EXAF_12cynprubyqref4__cuVYv1RRRRRRAFP_VFE_RRSiFR_RRR
 .type b__MGIAFg3__110__shapgvba6__shapVAF_6__ovaqVESiC7_WAVRaiCXpC8_wfgevatEXAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRRWEF4_EF6_EF8_EXAF_12cynprubyqref4__cuVYv1RRRRRRAFP_VFE_RRSiFR_RRR,%object
 b__MGIAFg3__110__shapgvba6__shapVAF_6__ovaqVESiC7_WAVRaiCXpC8_wfgevatEXAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRRWEF4_EF6_EF8_EXAF_12cynprubyqref4__cuVYv1RRRRRRAFP_VFE_RRSiFR_RRR:
 .space __SIZEOF_POINTER__
@@ -2288,22 +2288,22 @@
 b__MA7naqebvq33ertvfgre_naqebvq_ivrj_VachgQrivprRC7_WAVRai:
 nop
 .text
-.globl b__MAFg3__16irpgbeVzAF_9nyybpngbeVzRRR6nffvtaVCzRRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVzAF_15vgrengbe_genvgfVF7_R9ersreraprRRR5inyhrRiR4glcrRF7_F7_
+.weak b__MAFg3__16irpgbeVzAF_9nyybpngbeVzRRR6nffvtaVCzRRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVzAF_15vgrengbe_genvgfVF7_R9ersreraprRRR5inyhrRiR4glcrRF7_F7_
 .type b__MAFg3__16irpgbeVzAF_9nyybpngbeVzRRR6nffvtaVCzRRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVzAF_15vgrengbe_genvgfVF7_R9ersreraprRRR5inyhrRiR4glcrRF7_F7_,%function
 b__MAFg3__16irpgbeVzAF_9nyybpngbeVzRRR6nffvtaVCzRRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVzAF_15vgrengbe_genvgfVF7_R9ersreraprRRR5inyhrRiR4glcrRF7_F7_:
 nop
 .data
-.globl b__MGIA7naqebvq22NavzngvbaPbagrkgOevqtrR
+.weak b__MGIA7naqebvq22NavzngvbaPbagrkgOevqtrR
 .type b__MGIA7naqebvq22NavzngvbaPbagrkgOevqtrR,%object
 b__MGIA7naqebvq22NavzngvbaPbagrkgOevqtrR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq6IrpgbeVCAF_9vzt_hgvyf11FgevcFbheprRR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVCAF_9vzt_hgvyf11FgevcFbheprRR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVCAF_9vzt_hgvyf11FgevcFbheprRR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVCAF_9vzt_hgvyf11FgevcFbheprRR7qb_pbclRCiCXiz:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeV12WninIZBcgvbaR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeV12WninIZBcgvbaR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeV12WninIZBcgvbaR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeV12WninIZBcgvbaR16qb_zbir_onpxjneqRCiCXiz:
 nop
@@ -2343,7 +2343,7 @@
 b__MA7naqebvq24WAVFhesnprGrkgherPbagrkg16baSenzrNinvynoyrREXAF_10OhssreVgrzR:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_12QvfcynlFgngrRR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_12QvfcynlFgngrRR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_12QvfcynlFgngrRR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_12QvfcynlFgngrRR10qb_qrfgeblRCiz:
 nop
@@ -2408,17 +2408,17 @@
 b__MA14WavVachgFgernzQ1Ri:
 nop
 .text
-.globl b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVvR9jevgrQngnRwCAF0_12RaqvnaBhgchgR
+.weak b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVvR9jevgrQngnRwCAF0_12RaqvnaBhgchgR
 .type b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVvR9jevgrQngnRwCAF0_12RaqvnaBhgchgR,%function
 b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVvR9jevgrQngnRwCAF0_12RaqvnaBhgchgR:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVvsRRAF_19__znc_inyhr_pbzcnerVvF2_AF_4yrffVvRRYo1RRRAF_9nyybpngbeVF2_RRR7qrfgeblRCAF_11__gerr_abqrVF2_CiRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVvsRRAF_19__znc_inyhr_pbzcnerVvF2_AF_4yrffVvRRYo1RRRAF_9nyybpngbeVF2_RRR7qrfgeblRCAF_11__gerr_abqrVF2_CiRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVvsRRAF_19__znc_inyhr_pbzcnerVvF2_AF_4yrffVvRRYo1RRRAF_9nyybpngbeVF2_RRR7qrfgeblRCAF_11__gerr_abqrVF2_CiRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVvsRRAF_19__znc_inyhr_pbzcnerVvF2_AF_4yrffVvRRYo1RRRAF_9nyybpngbeVF2_RRR7qrfgeblRCAF_11__gerr_abqrVF2_CiRR:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_8XrlRiragRR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_8XrlRiragRR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_8XrlRiragRR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_8XrlRiragRR16qb_zbir_onpxjneqRCiCXiz:
 nop
@@ -2458,7 +2458,7 @@
 b__MA13AngvirPbagrkgP2REXA7naqebvq14PnzrenZrgnqngnRF3_:
 nop
 .text
-.globl b__MAX7naqebvq9vzt_hgvyf10GvssJevgre10ohvyqRagelVqRRvgwCXG_CAF_2fcVAF0_9GvssRagelRRR
+.weak b__MAX7naqebvq9vzt_hgvyf10GvssJevgre10ohvyqRagelVqRRvgwCXG_CAF_2fcVAF0_9GvssRagelRRR
 .type b__MAX7naqebvq9vzt_hgvyf10GvssJevgre10ohvyqRagelVqRRvgwCXG_CAF_2fcVAF0_9GvssRagelRRR,%function
 b__MAX7naqebvq9vzt_hgvyf10GvssJevgre10ohvyqRagelVqRRvgwCXG_CAF_2fcVAF0_9GvssRagelRRR:
 nop
@@ -2468,7 +2468,7 @@
 b_TvsZnxrZncBowrpg:
 nop
 .data
-.globl b__MGIA7naqebvq23NavzngvbaYvfgrareOevqtrR
+.weak b__MGIA7naqebvq23NavzngvbaYvfgrareOevqtrR
 .type b__MGIA7naqebvq23NavzngvbaYvfgrareOevqtrR,%object
 b__MGIA7naqebvq23NavzngvbaYvfgrareOevqtrR:
 .space __SIZEOF_POINTER__
@@ -2478,7 +2478,7 @@
 b__MA7naqebvq42ertvfgre_naqebvq_pbagrag_erf_PbasvthengvbaRC7_WAVRai:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVCAF_6YbbcreRR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq6IrpgbeVCAF_6YbbcreRR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq6IrpgbeVCAF_6YbbcreRR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq6IrpgbeVCAF_6YbbcreRR12qb_pbafgehpgRCiz:
 nop
@@ -2488,7 +2488,7 @@
 b__MA7naqebvq38naqebvq_ivrj_CbvagreVpba_trgFlfgrzVpbaRC7_WAVRaiC8_wbowrpgv:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVC27nhqvberpbeq_pnyyonpx_pbbxvrR10qb_pbzcnerRCXiF5_
+.weak b__MAX7naqebvq12FbegrqIrpgbeVC27nhqvberpbeq_pnyyonpx_pbbxvrR10qb_pbzcnerRCXiF5_
 .type b__MAX7naqebvq12FbegrqIrpgbeVC27nhqvberpbeq_pnyyonpx_pbbxvrR10qb_pbzcnerRCXiF5_,%function
 b__MAX7naqebvq12FbegrqIrpgbeVC27nhqvberpbeq_pnyyonpx_pbbxvrR10qb_pbzcnerRCXiF5_:
 nop
@@ -2503,12 +2503,12 @@
 b__MA18NhgbWninSybngNeenlP2RC7_WAVRaiC12_wsybngNeenlv9WAVNpprff:
 nop
 .data
-.globl b__MGIA7naqebvq6IrpgbeVAF_22NhqvbZvkZngpuPevgrevbaRRR
+.weak b__MGIA7naqebvq6IrpgbeVAF_22NhqvbZvkZngpuPevgrevbaRRR
 .type b__MGIA7naqebvq6IrpgbeVAF_22NhqvbZvkZngpuPevgrevbaRRR,%object
 b__MGIA7naqebvq6IrpgbeVAF_22NhqvbZvkZngpuPevgrevbaRRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVwR18trgPbzcnenoyrInyhrRi
+.weak b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVwR18trgPbzcnenoyrInyhrRi
 .type b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVwR18trgPbzcnenoyrInyhrRi,%function
 b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVwR18trgPbzcnenoyrInyhrRi:
 nop
@@ -2523,7 +2523,7 @@
 b_tBcgvbaf_cersreDhnyvglBireFcrrqSvryqVQ:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_10funerq_cgeVA7zvavxva14SbagPbyyrpgvbaRRRRRAF_19__znc_inyhr_pbzcnerVF7_FP_AF_4yrffVF7_RRYo1RRRAF5_VFP_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVCiRRECAF_15__gerr_raq_abqrVFA_RREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_10funerq_cgeVA7zvavxva14SbagPbyyrpgvbaRRRRRAF_19__znc_inyhr_pbzcnerVF7_FP_AF_4yrffVF7_RRYo1RRRAF5_VFP_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVCiRRECAF_15__gerr_raq_abqrVFA_RREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_10funerq_cgeVA7zvavxva14SbagPbyyrpgvbaRRRRRAF_19__znc_inyhr_pbzcnerVF7_FP_AF_4yrffVF7_RRYo1RRRAF5_VFP_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVCiRRECAF_15__gerr_raq_abqrVFA_RREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_10funerq_cgeVA7zvavxva14SbagPbyyrpgvbaRRRRRAF_19__znc_inyhr_pbzcnerVF7_FP_AF_4yrffVF7_RRYo1RRRAF5_VFP_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVCiRRECAF_15__gerr_raq_abqrVFA_RREXG_:
 nop
@@ -2533,7 +2533,7 @@
 b__MA16WAVPnzrenPbagrkg12cbfgZrgnqngnRC7_WAVRaivC21pnzren_senzr_zrgnqngn:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVCAF_9vzt_hgvyf11FgevcFbheprRR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq6IrpgbeVCAF_9vzt_hgvyf11FgevcFbheprRR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq6IrpgbeVCAF_9vzt_hgvyf11FgevcFbheprRR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq6IrpgbeVCAF_9vzt_hgvyf11FgevcFbheprRR12qb_pbafgehpgRCiz:
 nop
@@ -2543,7 +2543,7 @@
 b__MAX7naqebvq7WUjOybo4ernqRzCiz:
 nop
 .text
-.globl b__MAFg3__17trgyvarVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRREAF_13onfvp_vfgernzVG_G0_RRF9_EAF_12onfvp_fgevatVF6_F7_G1_RRF6_
+.weak b__MAFg3__17trgyvarVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRREAF_13onfvp_vfgernzVG_G0_RRF9_EAF_12onfvp_fgevatVF6_F7_G1_RRF6_
 .type b__MAFg3__17trgyvarVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRREAF_13onfvp_vfgernzVG_G0_RRF9_EAF_12onfvp_fgevatVF6_F7_G1_RRF6_,%function
 b__MAFg3__17trgyvarVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRREAF_13onfvp_vfgernzVG_G0_RRF9_EAF_12onfvp_fgevatVF6_F7_G1_RRF6_:
 nop
@@ -2553,12 +2553,12 @@
 b__MA18WavVachgOlgrOhssre4bcraRi:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_16xrl_inyhr_cnve_gVCAF_10VachgRiragRoRRR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq6IrpgbeVAF_16xrl_inyhr_cnve_gVCAF_10VachgRiragRoRRR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq6IrpgbeVAF_16xrl_inyhr_cnve_gVCAF_10VachgRiragRoRRR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq6IrpgbeVAF_16xrl_inyhr_cnve_gVCAF_10VachgRiragRoRRR10qb_qrfgeblRCiz:
 nop
 .data
-.globl b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_13onfvp_vfgernzVpF2_RR
+.weak b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_13onfvp_vfgernzVpF2_RR
 .type b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_13onfvp_vfgernzVpF2_RR,%object
 b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_13onfvp_vfgernzVpF2_RR:
 .space __SIZEOF_POINTER__
@@ -2608,12 +2608,12 @@
 b__MA7naqebvq18sbejneqCqsvhzReebeRC7_WAVRai:
 nop
 .text
-.globl b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVvR7trgFvmrRi
+.weak b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVvR7trgFvmrRi
 .type b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVvR7trgFvmrRi,%function
 b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVvR7trgFvmrRi:
 nop
 .data
-.globl b__MGIA7naqebvq10hveraqrere14IrpgbeQenjnoyr4GerrR
+.weak b__MGIA7naqebvq10hveraqrere14IrpgbeQenjnoyr4GerrR
 .type b__MGIA7naqebvq10hveraqrere14IrpgbeQenjnoyr4GerrR,%object
 b__MGIA7naqebvq10hveraqrere14IrpgbeQenjnoyr4GerrR:
 .space __SIZEOF_POINTER__
@@ -2623,7 +2623,7 @@
 b__MA7naqebvq7Cvpgher4qenjRCAF_6PnainfR:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_13CbvagrePbbeqfRR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_13CbvagrePbbeqfRR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_13CbvagrePbbeqfRR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_13CbvagrePbbeqfRR7qb_pbclRCiCXiz:
 nop
@@ -2648,7 +2648,7 @@
 b__MA7naqebvq15WUjErzbgrOvaqre9ArjBowrpgRC7_WAVRaiEXAF_2fcVAF_8uneqjner7VOvaqreRRR:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_6FrafbeRR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_6FrafbeRR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_6FrafbeRR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_6FrafbeRR8qb_fcyngRCiCXiz:
 nop
@@ -2698,7 +2698,7 @@
 b__MA7naqebvq39naqebvq_bf_ZrffntrDhrhr_trgZrffntrDhrhrRC7_WAVRaiC8_wbowrpg:
 nop
 .text
-.globl b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9conpxsnvyRv
+.weak b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9conpxsnvyRv
 .type b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9conpxsnvyRv,%function
 b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9conpxsnvyRv:
 nop
@@ -2708,7 +2708,7 @@
 b__MA7naqebvq14NaqebvqEhagvzr7fgnegIzRCC7_WninIZCC7_WAVRaioo:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_17CbvagreCebcregvrfRR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq6IrpgbeVAF_17CbvagreCebcregvrfRR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq6IrpgbeVAF_17CbvagreCebcregvrfRR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq6IrpgbeVAF_17CbvagreCebcregvrfRR10qb_qrfgeblRCiz:
 nop
@@ -2718,32 +2718,32 @@
 b__MA11TencuvpfWAV24trgAngvirOvgzncPbybeGlcrRC7_WAVRaiC8_wbowrpg:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVC27nhqvberpbeq_pnyyonpx_pbbxvrR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVC27nhqvberpbeq_pnyyonpx_pbbxvrR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVC27nhqvberpbeq_pnyyonpx_pbbxvrR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVC27nhqvberpbeq_pnyyonpx_pbbxvrR8qb_fcyngRCiCXiz:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVgR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq6IrpgbeVgR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq6IrpgbeVgR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq6IrpgbeVgR12qb_pbafgehpgRCiz:
 nop
 .data
-.globl b__MGI23WavNavzngvbaRaqYvfgrare
+.weak b__MGI23WavNavzngvbaRaqYvfgrare
 .type b__MGI23WavNavzngvbaRaqYvfgrare,%object
 b__MGI23WavNavzngvbaRaqYvfgrare:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVqR6trgGntRi
+.weak b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVqR6trgGntRi
 .type b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVqR6trgGntRi,%function
 b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVqR6trgGntRi:
 nop
 .data
-.globl b__MGIA7naqebvq6IrpgbeVAF_16RcurzrenyFgbentr4VgrzRRR
+.weak b__MGIA7naqebvq6IrpgbeVAF_16RcurzrenyFgbentr4VgrzRRR
 .type b__MGIA7naqebvq6IrpgbeVAF_16RcurzrenyFgbentr4VgrzRRR,%object
 b__MGIA7naqebvq6IrpgbeVAF_16RcurzrenyFgbentr4VgrzRRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVvCXpRRAF_19__znc_inyhr_pbzcnerVvF4_AF_4yrffVvRRYo1RRRAF_9nyybpngbeVF4_RRR7qrfgeblRCAF_11__gerr_abqrVF4_CiRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVvCXpRRAF_19__znc_inyhr_pbzcnerVvF4_AF_4yrffVvRRYo1RRRAF_9nyybpngbeVF4_RRR7qrfgeblRCAF_11__gerr_abqrVF4_CiRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVvCXpRRAF_19__znc_inyhr_pbzcnerVvF4_AF_4yrffVvRRYo1RRRAF_9nyybpngbeVF4_RRR7qrfgeblRCAF_11__gerr_abqrVF4_CiRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVvCXpRRAF_19__znc_inyhr_pbzcnerVvF4_AF_4yrffVvRRYo1RRRAF_9nyybpngbeVF4_RRR7qrfgeblRCAF_11__gerr_abqrVF4_CiRR:
 nop
@@ -2758,7 +2758,7 @@
 b__MA5Zbivr5jvqguRi:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVuR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVuR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVuR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVuR16qb_zbir_onpxjneqRCiCXiz:
 nop
@@ -2838,12 +2838,12 @@
 b_tBcgvbaf_qvgureSvryqVQ:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_16RcurzrenyFgbentr4VgrzRR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_16RcurzrenyFgbentr4VgrzRR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_16RcurzrenyFgbentr4VgrzRR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_16RcurzrenyFgbentr4VgrzRR7qb_pbclRCiCXiz:
 nop
 .text
-.globl b__MAFg3__16__gerrVvAF_4yrffVvRRAF_9nyybpngbeVvRRR7qrfgeblRCAF_11__gerr_abqrVvCiRR
+.weak b__MAFg3__16__gerrVvAF_4yrffVvRRAF_9nyybpngbeVvRRR7qrfgeblRCAF_11__gerr_abqrVvCiRR
 .type b__MAFg3__16__gerrVvAF_4yrffVvRRAF_9nyybpngbeVvRRR7qrfgeblRCAF_11__gerr_abqrVvCiRR,%function
 b__MAFg3__16__gerrVvAF_4yrffVvRRAF_9nyybpngbeVvRRR7qrfgeblRCAF_11__gerr_abqrVvCiRR:
 nop
@@ -2863,7 +2863,7 @@
 b__MGGA7naqebvq18AngvirZrffntrDhrhrR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__16irpgbeVsAF_9nyybpngbeVsRRR6vafregVCsRRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVsAF_15vgrengbe_genvgfVF7_R9ersreraprRRR5inyhrRAF_11__jenc_vgreVF5_RRR4glcrRAFO_VCXsRRF7_F7_
+.weak b__MAFg3__16irpgbeVsAF_9nyybpngbeVsRRR6vafregVCsRRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVsAF_15vgrengbe_genvgfVF7_R9ersreraprRRR5inyhrRAF_11__jenc_vgreVF5_RRR4glcrRAFO_VCXsRRF7_F7_
 .type b__MAFg3__16irpgbeVsAF_9nyybpngbeVsRRR6vafregVCsRRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVsAF_15vgrengbe_genvgfVF7_R9ersreraprRRR5inyhrRAF_11__jenc_vgreVF5_RRR4glcrRAFO_VCXsRRF7_F7_,%function
 b__MAFg3__16irpgbeVsAF_9nyybpngbeVsRRR6vafregVCsRRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVsAF_15vgrengbe_genvgfVF7_R9ersreraprRRR5inyhrRAF_11__jenc_vgreVF5_RRR4glcrRAFO_VCXsRRF7_F7_:
 nop
@@ -2873,12 +2873,12 @@
 b__MA7naqebvq10VachgDhrhr18qrgnpuYbbcreYbpxrqRi:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_19NhqvbQrivprGlcrNqqeRR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_19NhqvbQrivprGlcrNqqeRR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_19NhqvbQrivprGlcrNqqeRR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_19NhqvbQrivprGlcrNqqeRR15qb_zbir_sbejneqRCiCXiz:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVqR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq6IrpgbeVqR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq6IrpgbeVqR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq6IrpgbeVqR12qb_pbafgehpgRCiz:
 nop
@@ -2913,22 +2913,22 @@
 b__MAX7naqebvq18NffrgFgernzNqncgbe9trgYratguRi:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVC26nhqvbgenpx_pnyyonpx_pbbxvrR10qb_pbzcnerRCXiF5_
+.weak b__MAX7naqebvq12FbegrqIrpgbeVC26nhqvbgenpx_pnyyonpx_pbbxvrR10qb_pbzcnerRCXiF5_
 .type b__MAX7naqebvq12FbegrqIrpgbeVC26nhqvbgenpx_pnyyonpx_pbbxvrR10qb_pbzcnerRCXiF5_,%function
 b__MAX7naqebvq12FbegrqIrpgbeVC26nhqvbgenpx_pnyyonpx_pbbxvrR10qb_pbzcnerRCXiF5_:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_6FrafbeRR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_6FrafbeRR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_6FrafbeRR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_6FrafbeRR15qb_zbir_sbejneqRCiCXiz:
 nop
 .data
-.globl b__MGPA7naqebvq25AngvirErzbgrQvfcynlPyvragR0_AF_10VVagresnprR
+.weak b__MGPA7naqebvq25AngvirErzbgrQvfcynlPyvragR0_AF_10VVagresnprR
 .type b__MGPA7naqebvq25AngvirErzbgrQvfcynlPyvragR0_AF_10VVagresnprR,%object
 b__MGPA7naqebvq25AngvirErzbgrQvfcynlPyvragR0_AF_10VVagresnprR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq6IrpgbeVC11_wolgrNeenlR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVC11_wolgrNeenlR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVC11_wolgrNeenlR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVC11_wolgrNeenlR15qb_zbir_sbejneqRCiCXiz:
 nop
@@ -2953,12 +2953,12 @@
 b__MA7naqebvq7WUjOybo9VavgPynffRC7_WAVRai:
 nop
 .text
-.globl b__MAFg3__16irpgbeVC14FpbcrqHgsPunefAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVEXF2_RRiBG_
+.weak b__MAFg3__16irpgbeVC14FpbcrqHgsPunefAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVEXF2_RRiBG_
 .type b__MAFg3__16irpgbeVC14FpbcrqHgsPunefAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVEXF2_RRiBG_,%function
 b__MAFg3__16irpgbeVC14FpbcrqHgsPunefAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVEXF2_RRiBG_:
 nop
 .text
-.globl b__MA7naqebvq9vzt_hgvyf13GvssRagelVzcyVuRQ2Ri
+.weak b__MA7naqebvq9vzt_hgvyf13GvssRagelVzcyVuRQ2Ri
 .type b__MA7naqebvq9vzt_hgvyf13GvssRagelVzcyVuRQ2Ri,%function
 b__MA7naqebvq9vzt_hgvyf13GvssRagelVzcyVuRQ2Ri:
 nop
@@ -2973,7 +2973,7 @@
 b__MA7naqebvq18AngvirVachgPunaaryQ1Ri:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVyR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVyR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVyR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVyR16qb_zbir_onpxjneqRCiCXiz:
 nop
@@ -2988,7 +2988,7 @@
 b__MA7naqebvq24AngvirVachgRiragErprvire10vavgvnyvmrRi:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVyR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVyR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVyR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVyR15qb_zbir_sbejneqRCiCXiz:
 nop
@@ -3018,7 +3018,7 @@
 b__MA16WAVPnzrenPbagrkg7eryrnfrRi:
 nop
 .data
-.globl b__MGIA7naqebvq6IrpgbeVAF_8XrlRiragRRR
+.weak b__MGIA7naqebvq6IrpgbeVAF_8XrlRiragRRR
 .type b__MGIA7naqebvq6IrpgbeVAF_8XrlRiragRRR,%object
 b__MGIA7naqebvq6IrpgbeVAF_8XrlRiragRRR:
 .space __SIZEOF_POINTER__
@@ -3028,12 +3028,12 @@
 b__MA7naqebvq23arjCneprySvyrQrfpevcgbeRC7_WAVRaiC8_wbowrpg:
 nop
 .data
-.globl b__MGIA7naqebvq10hveraqrere18YvarneVagrecbyngbeR
+.weak b__MGIA7naqebvq10hveraqrere18YvarneVagrecbyngbeR
 .type b__MGIA7naqebvq10hveraqrere18YvarneVagrecbyngbeR,%object
 b__MGIA7naqebvq10hveraqrere18YvarneVagrecbyngbeR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq6IrpgbeVCAF_6YbbcreRR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVCAF_6YbbcreRR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVCAF_6YbbcreRR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVCAF_6YbbcreRR16qb_zbir_onpxjneqRCiCXiz:
 nop
@@ -3068,7 +3068,7 @@
 b__MA11TencuvpfWAV16vcbvag_gb_wcbvagREX8FxVCbvagC7_WAVRaiC8_wbowrpg:
 nop
 .text
-.globl b__MAFg3__16irpgbeVsAF_9nyybpngbeVsRRR6nffvtaVCsRRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVsAF_15vgrengbe_genvgfVF7_R9ersreraprRRR5inyhrRiR4glcrRF7_F7_
+.weak b__MAFg3__16irpgbeVsAF_9nyybpngbeVsRRR6nffvtaVCsRRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVsAF_15vgrengbe_genvgfVF7_R9ersreraprRRR5inyhrRiR4glcrRF7_F7_
 .type b__MAFg3__16irpgbeVsAF_9nyybpngbeVsRRR6nffvtaVCsRRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVsAF_15vgrengbe_genvgfVF7_R9ersreraprRRR5inyhrRiR4glcrRF7_F7_,%function
 b__MAFg3__16irpgbeVsAF_9nyybpngbeVsRRR6nffvtaVCsRRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVsAF_15vgrengbe_genvgfVF7_R9ersreraprRRR5inyhrRiR4glcrRF7_F7_:
 nop
@@ -3093,7 +3093,7 @@
 b__MA7naqebvq36naqebvq_bf_Qroht_trgYbpnyBowrpgPbhagRC7_WAVRaiC8_wbowrpg:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_7WUjOybo8OyboVasbRR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_7WUjOybo8OyboVasbRR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_7WUjOybo8OyboVasbRR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_7WUjOybo8OyboVasbRR7qb_pbclRCiCXiz:
 nop
@@ -3103,7 +3103,7 @@
 b__MA7naqebvq26UjOvaqreQrnguErpvcvragYvfg4svaqRC8_wbowrpg:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_22UjOvaqreQrnguErpvcvragRRRAF_9nyybpngbeVF4_RRR21__chfu_onpx_fybj_cnguVEXF4_RRiBG_
+.weak b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_22UjOvaqreQrnguErpvcvragRRRAF_9nyybpngbeVF4_RRR21__chfu_onpx_fybj_cnguVEXF4_RRiBG_
 .type b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_22UjOvaqreQrnguErpvcvragRRRAF_9nyybpngbeVF4_RRR21__chfu_onpx_fybj_cnguVEXF4_RRiBG_,%function
 b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_22UjOvaqreQrnguErpvcvragRRRAF_9nyybpngbeVF4_RRR21__chfu_onpx_fybj_cnguVEXF4_RRiBG_:
 nop
@@ -3123,7 +3123,7 @@
 b__MA7naqebvq22AngvirVachgRiragFraqre7qvfcbfrRi:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_8uneqjner8tencuvpf6pbzzba4I1_29PbybeZbqrRR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_8uneqjner8tencuvpf6pbzzba4I1_29PbybeZbqrRR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_8uneqjner8tencuvpf6pbzzba4I1_29PbybeZbqrRR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_8uneqjner8tencuvpf6pbzzba4I1_29PbybeZbqrRR16qb_zbir_onpxjneqRCiCXiz:
 nop
@@ -3163,12 +3163,12 @@
 b__MA7naqebvq36ertvfgre_naqebvq_zrqvn_ErzbgrQvfcynlRC7_WAVRai:
 nop
 .text
-.globl b__MA7naqebvq11OaVagresnprVAF_23VErtvbaFnzcyvatYvfgrareRR10baNfOvaqreRi
+.weak b__MA7naqebvq11OaVagresnprVAF_23VErtvbaFnzcyvatYvfgrareRR10baNfOvaqreRi
 .type b__MA7naqebvq11OaVagresnprVAF_23VErtvbaFnzcyvatYvfgrareRR10baNfOvaqreRi,%function
 b__MA7naqebvq11OaVagresnprVAF_23VErtvbaFnzcyvatYvfgrareRR10baNfOvaqreRi:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner10sebzOvaqreVAF_4uvqy4onfr4I1_05VOnfrRAF4_8OcUjOnfrRAF4_8OaUjOnfrRRRAF_2fcVG_RREXAF8_VAF0_7VOvaqreRRR
+.weak b__MA7naqebvq8uneqjner10sebzOvaqreVAF_4uvqy4onfr4I1_05VOnfrRAF4_8OcUjOnfrRAF4_8OaUjOnfrRRRAF_2fcVG_RREXAF8_VAF0_7VOvaqreRRR
 .type b__MA7naqebvq8uneqjner10sebzOvaqreVAF_4uvqy4onfr4I1_05VOnfrRAF4_8OcUjOnfrRAF4_8OaUjOnfrRRRAF_2fcVG_RREXAF8_VAF0_7VOvaqreRRR,%function
 b__MA7naqebvq8uneqjner10sebzOvaqreVAF_4uvqy4onfr4I1_05VOnfrRAF4_8OcUjOnfrRAF4_8OaUjOnfrRRRAF_2fcVG_RREXAF8_VAF0_7VOvaqreRRR:
 nop
@@ -3228,7 +3228,7 @@
 b__MA7naqebvq18NffrgFgernzNqncgbe4frrxRz:
 nop
 .text
-.globl b__MA7naqebvq9vzt_hgvyf10GvssJevgre8nqqRagelVuRRvgwCXG_w
+.weak b__MA7naqebvq9vzt_hgvyf10GvssJevgre8nqqRagelVuRRvgwCXG_w
 .type b__MA7naqebvq9vzt_hgvyf10GvssJevgre8nqqRagelVuRRvgwCXG_w,%function
 b__MA7naqebvq9vzt_hgvyf10GvssJevgre8nqqRagelVuRRvgwCXG_w:
 nop
@@ -3253,7 +3253,7 @@
 b__MA7naqebvq14NaqebvqEhagvzr9nqqBcgvbaRCXpCi:
 nop
 .data
-.globl b__MGIA7naqebvq6IrpgbeVyRR
+.weak b__MGIA7naqebvq6IrpgbeVyRR
 .type b__MGIA7naqebvq6IrpgbeVyRR,%object
 b__MGIA7naqebvq6IrpgbeVyRR:
 .space __SIZEOF_POINTER__
@@ -3273,7 +3273,7 @@
 b__MA20Lhi422VGbWcrtRapbqreP2RCv:
 nop
 .text
-.globl b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVgR6trgGntRi
+.weak b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVgR6trgGntRi
 .type b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVgR6trgGntRi,%function
 b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVgR6trgGntRi:
 nop
@@ -3293,7 +3293,7 @@
 b__M32naqebvq_bf_Cebprff_frgFjnccvarffC7_WAVRaiC8_wbowrpgvu:
 nop
 .text
-.globl b__MAFg3__110__shapgvba6__shapVAF_6__ovaqVESiC7_WAVRaiCXpC8_wfgevatEXAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRRWEF4_F6_QaEXAF_12cynprubyqref4__cuVYv1RRRRRRAFP_VFC_RRSiFR_RR7qrfgeblRi
+.weak b__MAFg3__110__shapgvba6__shapVAF_6__ovaqVESiC7_WAVRaiCXpC8_wfgevatEXAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRRWEF4_F6_QaEXAF_12cynprubyqref4__cuVYv1RRRRRRAFP_VFC_RRSiFR_RR7qrfgeblRi
 .type b__MAFg3__110__shapgvba6__shapVAF_6__ovaqVESiC7_WAVRaiCXpC8_wfgevatEXAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRRWEF4_F6_QaEXAF_12cynprubyqref4__cuVYv1RRRRRRAFP_VFC_RRSiFR_RR7qrfgeblRi,%function
 b__MAFg3__110__shapgvba6__shapVAF_6__ovaqVESiC7_WAVRaiCXpC8_wfgevatEXAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRRWEF4_F6_QaEXAF_12cynprubyqref4__cuVYv1RRRRRRAFP_VFC_RRSiFR_RR7qrfgeblRi:
 nop
@@ -3303,12 +3303,12 @@
 b__MA7naqebvq33ertvfgre_naqebvq_pbagrag_KzyOybpxRC7_WAVRai:
 nop
 .data
-.globl b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR16_AF_13onfvp_bfgernzVpF2_RR
+.weak b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR16_AF_13onfvp_bfgernzVpF2_RR
 .type b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR16_AF_13onfvp_bfgernzVpF2_RR,%object
 b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR16_AF_13onfvp_bfgernzVpF2_RR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq6IrpgbeVCAF_9vzt_hgvyf11FgevcFbheprRR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq6IrpgbeVCAF_9vzt_hgvyf11FgevcFbheprRR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq6IrpgbeVCAF_9vzt_hgvyf11FgevcFbheprRR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq6IrpgbeVCAF_9vzt_hgvyf11FgevcFbheprRR10qb_qrfgeblRCiz:
 nop
@@ -3318,12 +3318,12 @@
 b__M45ertvfgre_naqebvq_zrqvn_NhqvbCebqhpgFgengrtvrfC7_WAVRai:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_17CbvagreCebcregvrfRR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_17CbvagreCebcregvrfRR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_17CbvagreCebcregvrfRR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_17CbvagreCebcregvrfRR7qb_pbclRCiCXiz:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_16xrl_inyhr_cnve_gVCAF_10VachgRiragRoRRR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_16xrl_inyhr_cnve_gVCAF_10VachgRiragRoRRR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_16xrl_inyhr_cnve_gVCAF_10VachgRiragRoRRR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_16xrl_inyhr_cnve_gVCAF_10VachgRiragRoRRR7qb_pbclRCiCXiz:
 nop
@@ -3333,12 +3333,12 @@
 b__MGi0_a24_A7naqebvq24WAVFhesnprGrkgherPbagrkgQ1Ri:
 nop
 .text
-.globl b__MA7naqebvq9vzt_hgvyf13GvssRagelVzcyVgRQ2Ri
+.weak b__MA7naqebvq9vzt_hgvyf13GvssRagelVzcyVgRQ2Ri
 .type b__MA7naqebvq9vzt_hgvyf13GvssRagelVzcyVgRQ2Ri,%function
 b__MA7naqebvq9vzt_hgvyf13GvssRagelVzcyVgRQ2Ri:
 nop
 .text
-.globl b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVvR12jevgrGntVasbRwCAF0_12RaqvnaBhgchgR
+.weak b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVvR12jevgrGntVasbRwCAF0_12RaqvnaBhgchgR
 .type b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVvR12jevgrGntVasbRwCAF0_12RaqvnaBhgchgR,%function
 b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVvR12jevgrGntVasbRwCAF0_12RaqvnaBhgchgR:
 nop
@@ -3358,7 +3358,7 @@
 b_QTvsTrgYvar:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_12QvfcynlFgngrRR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_12QvfcynlFgngrRR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_12QvfcynlFgngrRR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_12QvfcynlFgngrRR7qb_pbclRCiCXiz:
 nop
@@ -3368,12 +3368,12 @@
 b__MA7naqebvq23perngrWninTencuvpOhssreRC7_WAVRaiEXAF_2fcVAF_13TencuvpOhssreRRR:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7zvavxva13SbagInevngvbaRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVF2_RRiBG_
+.weak b__MAFg3__16irpgbeVA7zvavxva13SbagInevngvbaRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVF2_RRiBG_
 .type b__MAFg3__16irpgbeVA7zvavxva13SbagInevngvbaRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVF2_RRiBG_,%function
 b__MAFg3__16irpgbeVA7zvavxva13SbagInevngvbaRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVF2_RRiBG_:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_16RcurzrenyFgbentr4VgrzRR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_16RcurzrenyFgbentr4VgrzRR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_16RcurzrenyFgbentr4VgrzRR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_16RcurzrenyFgbentr4VgrzRR8qb_fcyngRCiCXiz:
 nop
@@ -3388,7 +3388,7 @@
 b__MA11TencuvpfWAV14verpg_gb_werpgREX7FxVErpgC7_WAVRaiC8_wbowrpg:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_10havdhr_cgeVA7zvavxva3EhaRAF_14qrsnhyg_qryrgrVF3_RRRRAF_9nyybpngbeVF6_RRR24__rzcynpr_onpx_fybj_cnguVWAF1_VAF2_8FglyrEhaRAF4_VFO_RRRRRRRiQcBG_
+.weak b__MAFg3__16irpgbeVAF_10havdhr_cgeVA7zvavxva3EhaRAF_14qrsnhyg_qryrgrVF3_RRRRAF_9nyybpngbeVF6_RRR24__rzcynpr_onpx_fybj_cnguVWAF1_VAF2_8FglyrEhaRAF4_VFO_RRRRRRRiQcBG_
 .type b__MAFg3__16irpgbeVAF_10havdhr_cgeVA7zvavxva3EhaRAF_14qrsnhyg_qryrgrVF3_RRRRAF_9nyybpngbeVF6_RRR24__rzcynpr_onpx_fybj_cnguVWAF1_VAF2_8FglyrEhaRAF4_VFO_RRRRRRRiQcBG_,%function
 b__MAFg3__16irpgbeVAF_10havdhr_cgeVA7zvavxva3EhaRAF_14qrsnhyg_qryrgrVF3_RRRRAF_9nyybpngbeVF6_RRR24__rzcynpr_onpx_fybj_cnguVWAF1_VAF2_8FglyrEhaRAF4_VFO_RRRRRRRiQcBG_:
 nop
@@ -3418,7 +3418,7 @@
 b__MA7naqebvq7CvpgherP1RB5fx_fcV9FxCvpgherR:
 nop
 .data
-.globl b__MGIA7naqebvq14PbagrkgSnpgbelR
+.weak b__MGIA7naqebvq14PbagrkgSnpgbelR
 .type b__MGIA7naqebvq14PbagrkgSnpgbelR,%object
 b__MGIA7naqebvq14PbagrkgSnpgbelR:
 .space __SIZEOF_POINTER__
@@ -3433,7 +3433,7 @@
 b__MA7naqebvq26UjOvaqreQrnguErpvcvragYvfgQ0Ri:
 nop
 .data
-.globl b__MGPA7naqebvq25AngvirErzbgrQvfcynlPyvragR0_AF_21OaErzbgrQvfcynlPyvragR
+.weak b__MGPA7naqebvq25AngvirErzbgrQvfcynlPyvragR0_AF_21OaErzbgrQvfcynlPyvragR
 .type b__MGPA7naqebvq25AngvirErzbgrQvfcynlPyvragR0_AF_21OaErzbgrQvfcynlPyvragR,%object
 b__MGPA7naqebvq25AngvirErzbgrQvfcynlPyvragR0_AF_21OaErzbgrQvfcynlPyvragR:
 .space __SIZEOF_POINTER__
@@ -3458,12 +3458,12 @@
 b__MA7naqebvq54naqebvq_uneqjner_UneqjnerOhssre_pbairegSebzCvkrySbezngRw:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_8XrlRiragRR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_8XrlRiragRR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_8XrlRiragRR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_8XrlRiragRR8qb_fcyngRCiCXiz:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_7Fgevat8RR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq6IrpgbeVAF_7Fgevat8RR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq6IrpgbeVAF_7Fgevat8RR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq6IrpgbeVAF_7Fgevat8RR12qb_pbafgehpgRCiz:
 nop
@@ -3483,7 +3483,7 @@
 b__MA7naqebvq38naqebvq_AngvirNpgvivgl_frgJvaqbjSbezngRC15NAngvirNpgvivglv:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_8XrlRiragRR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq6IrpgbeVAF_8XrlRiragRR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq6IrpgbeVAF_8XrlRiragRR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq6IrpgbeVAF_8XrlRiragRR12qb_pbafgehpgRCiz:
 nop
@@ -3523,7 +3523,7 @@
 b__MA7naqebvq32ertvfgre_naqebvq_tencuvpf_ZngevkRC7_WAVRai:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVyR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq6IrpgbeVyR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq6IrpgbeVyR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq6IrpgbeVyR10qb_qrfgeblRCiz:
 nop
@@ -3538,12 +3538,12 @@
 b_tPyfNhqvbErpbeqEbhgvatCebkl:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVC26nhqvbgenpx_pnyyonpx_pbbxvrR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVC26nhqvbgenpx_pnyyonpx_pbbxvrR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVC26nhqvbgenpx_pnyyonpx_pbbxvrR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVC26nhqvbgenpx_pnyyonpx_pbbxvrR8qb_fcyngRCiCXiz:
 nop
 .text
-.globl b__MA7naqebvq9vzt_hgvyf13GvssRagelVzcyVvRQ2Ri
+.weak b__MA7naqebvq9vzt_hgvyf13GvssRagelVzcyVvRQ2Ri
 .type b__MA7naqebvq9vzt_hgvyf13GvssRagelVzcyVvRQ2Ri,%function
 b__MA7naqebvq9vzt_hgvyf13GvssRagelVzcyVvRQ2Ri:
 nop
@@ -3568,12 +3568,12 @@
 b__MA7naqebvq22AngvirVachgRiragFraqre15fraqZbgvbaRiragRwCXAF_11ZbgvbaRiragR:
 nop
 .data
-.globl b__MGIA7naqebvq10hveraqrere14PbagrkgSnpgbelR
+.weak b__MGIA7naqebvq10hveraqrere14PbagrkgSnpgbelR
 .type b__MGIA7naqebvq10hveraqrere14PbagrkgSnpgbelR,%object
 b__MGIA7naqebvq10hveraqrere14PbagrkgSnpgbelR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_11QvfcynlVasbRR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq6IrpgbeVAF_11QvfcynlVasbRR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq6IrpgbeVAF_11QvfcynlVasbRR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq6IrpgbeVAF_11QvfcynlVasbRR12qb_pbafgehpgRCiz:
 nop
@@ -3588,7 +3588,7 @@
 b__MA7naqebvq18AngvirZrffntrDhrhrQ0Ri:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVvR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq6IrpgbeVvR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq6IrpgbeVvR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq6IrpgbeVvR12qb_pbafgehpgRCiz:
 nop
@@ -3613,17 +3613,17 @@
 b_jevgr_gb_ybttre:
 nop
 .text
-.globl b__MAFg3__16__gerrVA7naqebvq15ErfGnoyr_pbasvtRAF_4yrffVF2_RRAF_9nyybpngbeVF2_RRR7qrfgeblRCAF_11__gerr_abqrVF2_CiRR
+.weak b__MAFg3__16__gerrVA7naqebvq15ErfGnoyr_pbasvtRAF_4yrffVF2_RRAF_9nyybpngbeVF2_RRR7qrfgeblRCAF_11__gerr_abqrVF2_CiRR
 .type b__MAFg3__16__gerrVA7naqebvq15ErfGnoyr_pbasvtRAF_4yrffVF2_RRAF_9nyybpngbeVF2_RRR7qrfgeblRCAF_11__gerr_abqrVF2_CiRR,%function
 b__MAFg3__16__gerrVA7naqebvq15ErfGnoyr_pbasvtRAF_4yrffVF2_RRAF_9nyybpngbeVF2_RRR7qrfgeblRCAF_11__gerr_abqrVF2_CiRR:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVsR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq6IrpgbeVsR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq6IrpgbeVsR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq6IrpgbeVsR12qb_pbafgehpgRCiz:
 nop
 .text
-.globl b__MAXFg3__110__shapgvba6__shapVAF_6__ovaqVESiC7_WAVRaiCXpC8_wfgevatEXAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRRWEF4_EN5_F5_QaEXAF_12cynprubyqref4__cuVYv1RRRRRRAFP_VFE_RRSiFR_RR7__pybarRCAF0_6__onfrVFG_RR
+.weak b__MAXFg3__110__shapgvba6__shapVAF_6__ovaqVESiC7_WAVRaiCXpC8_wfgevatEXAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRRWEF4_EN5_F5_QaEXAF_12cynprubyqref4__cuVYv1RRRRRRAFP_VFE_RRSiFR_RR7__pybarRCAF0_6__onfrVFG_RR
 .type b__MAXFg3__110__shapgvba6__shapVAF_6__ovaqVESiC7_WAVRaiCXpC8_wfgevatEXAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRRWEF4_EN5_F5_QaEXAF_12cynprubyqref4__cuVYv1RRRRRRAFP_VFE_RRSiFR_RR7__pybarRCAF0_6__onfrVFG_RR,%function
 b__MAXFg3__110__shapgvba6__shapVAF_6__ovaqVESiC7_WAVRaiCXpC8_wfgevatEXAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRRWEF4_EN5_F5_QaEXAF_12cynprubyqref4__cuVYv1RRRRRRAFP_VFE_RRSiFR_RR7__pybarRCAF0_6__onfrVFG_RR:
 nop
@@ -3633,7 +3633,7 @@
 b__MA7naqebvq28AngvirVachgNccyvpngvbaUnaqyr36trgVachgNccyvpngvbaUnaqyrBowYbpnyErsRC7_WAVRai:
 nop
 .text
-.globl b__MAFg3__16irpgbeVvAF_9nyybpngbeVvRRR6vafregVCvRRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVvAF_15vgrengbe_genvgfVF7_R9ersreraprRRR5inyhrRAF_11__jenc_vgreVF5_RRR4glcrRAFO_VCXvRRF7_F7_
+.weak b__MAFg3__16irpgbeVvAF_9nyybpngbeVvRRR6vafregVCvRRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVvAF_15vgrengbe_genvgfVF7_R9ersreraprRRR5inyhrRAF_11__jenc_vgreVF5_RRR4glcrRAFO_VCXvRRF7_F7_
 .type b__MAFg3__16irpgbeVvAF_9nyybpngbeVvRRR6vafregVCvRRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVvAF_15vgrengbe_genvgfVF7_R9ersreraprRRR5inyhrRAF_11__jenc_vgreVF5_RRR4glcrRAFO_VCXvRRF7_F7_,%function
 b__MAFg3__16irpgbeVvAF_9nyybpngbeVvRRR6vafregVCvRRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVvAF_15vgrengbe_genvgfVF7_R9ersreraprRRR5inyhrRAF_11__jenc_vgreVF5_RRR4glcrRAFO_VCXvRRF7_F7_:
 nop
@@ -3658,7 +3658,7 @@
 b__MA8TVSZbivrQ2Ri:
 nop
 .text
-.globl b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVvR13trgQngnUrycreRi
+.weak b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVvR13trgQngnUrycreRi
 .type b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVvR13trgQngnUrycreRi,%function
 b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVvR13trgQngnUrycreRi:
 nop
@@ -3673,7 +3673,7 @@
 b__M28PerngrWninVachgFgernzNqncgbeC7_WAVRaiC8_wbowrpgC11_wolgrNeenlo:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVwR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVwR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVwR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVwR8qb_fcyngRCiCXiz:
 nop
@@ -3683,7 +3683,7 @@
 b_tBcgvbaf_zPnapryVQ:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__110__shapgvba6__shapVAF_6__ovaqVESiC7_WAVRaiCXpC8_wfgevatEXAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRRWEF4_EF6_EF8_EXAF_12cynprubyqref4__cuVYv1RRRRRRAFP_VFE_RRSiFR_RR18qrfgebl_qrnyybpngrRi
+.weak b__MAFg3__110__shapgvba6__shapVAF_6__ovaqVESiC7_WAVRaiCXpC8_wfgevatEXAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRRWEF4_EF6_EF8_EXAF_12cynprubyqref4__cuVYv1RRRRRRAFP_VFE_RRSiFR_RR18qrfgebl_qrnyybpngrRi
 .type b__MAFg3__110__shapgvba6__shapVAF_6__ovaqVESiC7_WAVRaiCXpC8_wfgevatEXAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRRWEF4_EF6_EF8_EXAF_12cynprubyqref4__cuVYv1RRRRRRAFP_VFE_RRSiFR_RR18qrfgebl_qrnyybpngrRi,%function
 b__MAFg3__110__shapgvba6__shapVAF_6__ovaqVESiC7_WAVRaiCXpC8_wfgevatEXAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRRWEF4_EF6_EF8_EXAF_12cynprubyqref4__cuVYv1RRRRRRAFP_VFE_RRSiFR_RR18qrfgebl_qrnyybpngrRi:
 nop
@@ -3713,7 +3713,7 @@
 b__MA18QrnguErpvcvragYvfgQ1Ri:
 nop
 .data
-.globl b__MGP11WninOOvaqre0_A7naqebvq7OOvaqreR
+.weak b__MGP11WninOOvaqre0_A7naqebvq7OOvaqreR
 .type b__MGP11WninOOvaqre0_A7naqebvq7OOvaqreR,%object
 b__MGP11WninOOvaqre0_A7naqebvq7OOvaqreR:
 .space __SIZEOF_POINTER__
@@ -3723,12 +3723,12 @@
 b__MA7naqebvq44ertvfgre_naqebvq_onpxhc_SvyrOnpxhcUrycreOnfrRC7_WAVRai:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVC26nhqvbgenpx_pnyyonpx_pbbxvrR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVC26nhqvbgenpx_pnyyonpx_pbbxvrR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVC26nhqvbgenpx_pnyyonpx_pbbxvrR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVC26nhqvbgenpx_pnyyonpx_pbbxvrR16qb_zbir_onpxjneqRCiCXiz:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvC18SvyrQrfpevcgbeVasbRRAF_22__habeqrerq_znc_unfureVvF4_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF4_AF_8rdhny_gbVvRRYo1RRRAF_9nyybpngbeVF4_RRR6erzbirRAF_21__unfu_pbafg_vgrengbeVCAF_11__unfu_abqrVF4_CiRRRR
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvC18SvyrQrfpevcgbeVasbRRAF_22__habeqrerq_znc_unfureVvF4_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF4_AF_8rdhny_gbVvRRYo1RRRAF_9nyybpngbeVF4_RRR6erzbirRAF_21__unfu_pbafg_vgrengbeVCAF_11__unfu_abqrVF4_CiRRRR
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvC18SvyrQrfpevcgbeVasbRRAF_22__habeqrerq_znc_unfureVvF4_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF4_AF_8rdhny_gbVvRRYo1RRRAF_9nyybpngbeVF4_RRR6erzbirRAF_21__unfu_pbafg_vgrengbeVCAF_11__unfu_abqrVF4_CiRRRR,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvC18SvyrQrfpevcgbeVasbRRAF_22__habeqrerq_znc_unfureVvF4_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF4_AF_8rdhny_gbVvRRYo1RRRAF_9nyybpngbeVF4_RRR6erzbirRAF_21__unfu_pbafg_vgrengbeVCAF_11__unfu_abqrVF4_CiRRRR:
 nop
@@ -3748,7 +3748,7 @@
 b__M10qbGuebjVBRC7_WAVRaiCXp:
 nop
 .data
-.globl b__MGPA7naqebvq25AngvirErzbgrQvfcynlPyvragR8_AF_7VOvaqreR
+.weak b__MGPA7naqebvq25AngvirErzbgrQvfcynlPyvragR8_AF_7VOvaqreR
 .type b__MGPA7naqebvq25AngvirErzbgrQvfcynlPyvragR8_AF_7VOvaqreR,%object
 b__MGPA7naqebvq25AngvirErzbgrQvfcynlPyvragR8_AF_7VOvaqreR:
 .space __SIZEOF_POINTER__
@@ -3763,7 +3763,7 @@
 b__MA7naqebvq18AngvirVachgPunaary30vaibxrNaqErzbirQvfcbfrPnyyonpxRC7_WAVRaiC8_wbowrpg:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_17CbvagreCebcregvrfRR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_17CbvagreCebcregvrfRR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_17CbvagreCebcregvrfRR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_17CbvagreCebcregvrfRR16qb_zbir_onpxjneqRCiCXiz:
 nop
@@ -3773,7 +3773,7 @@
 b__MA7naqebvq35naqebvq_tencuvpf_Zngevk_trgFxZngevkRC7_WAVRaiC8_wbowrpg:
 nop
 .text
-.globl b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVqR8trgPbhagRi
+.weak b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVqR8trgPbhagRi
 .type b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVqR8trgPbhagRi,%function
 b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVqR8trgPbhagRi:
 nop
@@ -3813,7 +3813,7 @@
 b__MA7naqebvq27WAVNhqvbIbyhzrTebhcPnyyonpx25baNhqvbIbyhzrTebhcPunatrqRAF_14ibyhzr_tebhc_gRv:
 nop
 .text
-.globl b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVwR7trgGlcrRi
+.weak b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVwR7trgGlcrRi
 .type b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVwR7trgGlcrRi,%function
 b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVwR7trgGlcrRi:
 nop
@@ -3823,7 +3823,7 @@
 b__MA18QrnguErpvcvragYvfg3nqqREXA7naqebvq2fcV18WninQrnguErpvcvragRR:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_8NhqvbZvkRR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_8NhqvbZvkRR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_8NhqvbZvkRR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_8NhqvbZvkRR16qb_zbir_onpxjneqRCiCXiz:
 nop
@@ -3838,12 +3838,12 @@
 b__MA7naqebvq10VachgDhrhr14perngrXrlRiragRi:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_8NhqvbZvkRR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_8NhqvbZvkRR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_8NhqvbZvkRR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_8NhqvbZvkRR15qb_zbir_sbejneqRCiCXiz:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVsR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq6IrpgbeVsR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq6IrpgbeVsR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq6IrpgbeVsR10qb_qrfgeblRCiz:
 nop
@@ -3853,7 +3853,7 @@
 b__M34naqebvq_bf_Cebprff_frgCebprffTebhcC7_WAVRaiC8_wbowrpgvv:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_22NhqvbZvkZngpuPevgrevbaRR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_22NhqvbZvkZngpuPevgrevbaRR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_22NhqvbZvkZngpuPevgrevbaRR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_22NhqvbZvkZngpuPevgrevbaRR7qb_pbclRCiCXiz:
 nop
@@ -3908,12 +3908,12 @@
 b__MAX7naqebvq7WUjOybo9trgFgevatRzCCXAF_8uneqjner11uvqy_fgevatR:
 nop
 .text
-.globl b__MAFg3__120__funerq_cge_rzcynprVA7zvavxva10SbagSnzvylRAF_9nyybpngbeVF2_RRR16__ba_mreb_funerqRi
+.weak b__MAFg3__120__funerq_cge_rzcynprVA7zvavxva10SbagSnzvylRAF_9nyybpngbeVF2_RRR16__ba_mreb_funerqRi
 .type b__MAFg3__120__funerq_cge_rzcynprVA7zvavxva10SbagSnzvylRAF_9nyybpngbeVF2_RRR16__ba_mreb_funerqRi,%function
 b__MAFg3__120__funerq_cge_rzcynprVA7zvavxva10SbagSnzvylRAF_9nyybpngbeVF2_RRR16__ba_mreb_funerqRi:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVgR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVgR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVgR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVgR8qb_fcyngRCiCXiz:
 nop
@@ -3928,7 +3928,7 @@
 b__MA21Lhi420FcGbWcrtRapbqre12qrvagreyrnirRCuF0_F0_vvv:
 nop
 .data
-.globl b__MGIA7naqebvq6IrpgbeVC11_wolgrNeenlRR
+.weak b__MGIA7naqebvq6IrpgbeVC11_wolgrNeenlRR
 .type b__MGIA7naqebvq6IrpgbeVC11_wolgrNeenlRR,%object
 b__MGIA7naqebvq6IrpgbeVC11_wolgrNeenlRR:
 .space __SIZEOF_POINTER__
@@ -3968,12 +3968,12 @@
 b__MA16WAVPnzrenPbagrkg8cbfgQngnRvEXA7naqebvq2fcVAF0_7VZrzbelRRRC21pnzren_senzr_zrgnqngn:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVqR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVqR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVqR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVqR8qb_fcyngRCiCXiz:
 nop
 .data
-.globl b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRRR
+.weak b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRRR
 .type b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRRR,%object
 b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRRR:
 .space __SIZEOF_POINTER__
@@ -3983,7 +3983,7 @@
 b__M10trgPbagrkgy:
 nop
 .text
-.globl b__MA7naqebvq9vzt_hgvyf10GvssJevgre8nqqRagelVwRRvgwCXG_w
+.weak b__MA7naqebvq9vzt_hgvyf10GvssJevgre8nqqRagelVwRRvgwCXG_w
 .type b__MA7naqebvq9vzt_hgvyf10GvssJevgre8nqqRagelVwRRvgwCXG_w,%function
 b__MA7naqebvq9vzt_hgvyf10GvssJevgre8nqqRagelVwRRvgwCXG_w:
 nop
@@ -4008,7 +4008,7 @@
 b__MA7naqebvq15WUjErzbgrOvaqre9frgOvaqreREXAF_2fcVAF_8uneqjner7VOvaqreRRR:
 nop
 .text
-.globl b__MAFg3__110__shapgvba6__shapVAF_6__ovaqVESiC7_WAVRaiCXpC8_wfgevatEXAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRRWEF4_F6_QaEXAF_12cynprubyqref4__cuVYv1RRRRRRAFP_VFC_RRSiFR_RR18qrfgebl_qrnyybpngrRi
+.weak b__MAFg3__110__shapgvba6__shapVAF_6__ovaqVESiC7_WAVRaiCXpC8_wfgevatEXAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRRWEF4_F6_QaEXAF_12cynprubyqref4__cuVYv1RRRRRRAFP_VFC_RRSiFR_RR18qrfgebl_qrnyybpngrRi
 .type b__MAFg3__110__shapgvba6__shapVAF_6__ovaqVESiC7_WAVRaiCXpC8_wfgevatEXAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRRWEF4_F6_QaEXAF_12cynprubyqref4__cuVYv1RRRRRRAFP_VFC_RRSiFR_RR18qrfgebl_qrnyybpngrRi,%function
 b__MAFg3__110__shapgvba6__shapVAF_6__ovaqVESiC7_WAVRaiCXpC8_wfgevatEXAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRRWEF4_F6_QaEXAF_12cynprubyqref4__cuVYv1RRRRRRAFP_VFC_RRSiFR_RR18qrfgebl_qrnyybpngrRi:
 nop
@@ -4018,7 +4018,7 @@
 b__MA7naqebvq38ertvfgre_naqebvq_ivrj_GuernqrqEraqrereRC7_WAVRai:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_11QvfcynlVasbRR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq6IrpgbeVAF_11QvfcynlVasbRR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq6IrpgbeVAF_11QvfcynlVasbRR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq6IrpgbeVAF_11QvfcynlVasbRR10qb_qrfgeblRCiz:
 nop
@@ -4028,7 +4028,7 @@
 b__MA20Lhi422VGbWcrtRapbqre21pbasvtFnzcyvatSnpgbefRC20wcrt_pbzcerff_fgehpg:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_22NhqvbZvkZngpuPevgrevbaRR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq6IrpgbeVAF_22NhqvbZvkZngpuPevgrevbaRR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq6IrpgbeVAF_22NhqvbZvkZngpuPevgrevbaRR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq6IrpgbeVAF_22NhqvbZvkZngpuPevgrevbaRR10qb_qrfgeblRCiz:
 nop
@@ -4048,7 +4048,7 @@
 b__MA7naqebvq30ertvfgre_naqebvq_bf_UvqyZrzbelRC7_WAVRai:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_8Fgevat16RuRRR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_8Fgevat16RuRRR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_8Fgevat16RuRRR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_8Fgevat16RuRRR8qb_fcyngRCiCXiz:
 nop
@@ -4093,7 +4093,7 @@
 b__MGPA7naqebvq26AngvirQvfcynlRiragErprvireR0_AF_22QvfcynlRiragQvfcngpureR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_8uneqjner8tencuvpf6pbzzba4I1_29PbybeZbqrRR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_8uneqjner8tencuvpf6pbzzba4I1_29PbybeZbqrRR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_8uneqjner8tencuvpf6pbzzba4I1_29PbybeZbqrRR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_8uneqjner8tencuvpf6pbzzba4I1_29PbybeZbqrRR8qb_fcyngRCiCXiz:
 nop
@@ -4133,12 +4133,12 @@
 b__M35ertvfgre_naqebvq_uneqjner_HfoQrivprC7_WAVRai:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwwRRAF_22__habeqrerq_znc_unfureVwF2_AF_4unfuVwRRYo1RRRAF_21__habeqrerq_znc_rdhnyVwF2_AF_8rdhny_gbVwRRYo1RRRAF_9nyybpngbeVF2_RRR8__erunfuRz
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwwRRAF_22__habeqrerq_znc_unfureVwF2_AF_4unfuVwRRYo1RRRAF_21__habeqrerq_znc_rdhnyVwF2_AF_8rdhny_gbVwRRYo1RRRAF_9nyybpngbeVF2_RRR8__erunfuRz
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwwRRAF_22__habeqrerq_znc_unfureVwF2_AF_4unfuVwRRYo1RRRAF_21__habeqrerq_znc_rdhnyVwF2_AF_8rdhny_gbVwRRYo1RRRAF_9nyybpngbeVF2_RRR8__erunfuRz,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwwRRAF_22__habeqrerq_znc_unfureVwF2_AF_4unfuVwRRYo1RRRAF_21__habeqrerq_znc_rdhnyVwF2_AF_8rdhny_gbVwRRYo1RRRAF_9nyybpngbeVF2_RRR8__erunfuRz:
 nop
 .text
-.globl b__MAFg3__16irpgbeVCXA7naqebvq9NcxNffrgfRAF_9nyybpngbeVF4_RRR21__chfu_onpx_fybj_cnguVF4_RRiBG_
+.weak b__MAFg3__16irpgbeVCXA7naqebvq9NcxNffrgfRAF_9nyybpngbeVF4_RRR21__chfu_onpx_fybj_cnguVF4_RRiBG_
 .type b__MAFg3__16irpgbeVCXA7naqebvq9NcxNffrgfRAF_9nyybpngbeVF4_RRR21__chfu_onpx_fybj_cnguVF4_RRiBG_,%function
 b__MAFg3__16irpgbeVCXA7naqebvq9NcxNffrgfRAF_9nyybpngbeVF4_RRR21__chfu_onpx_fybj_cnguVF4_RRiBG_:
 nop
@@ -4173,7 +4173,7 @@
 b__MGPA7naqebvq24WAVFhesnprGrkgherPbagrkgR0_AF_12PbafhzreOnfr22SenzrNinvynoyrYvfgrareR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_16RcurzrenyFgbentr4VgrzRR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq6IrpgbeVAF_16RcurzrenyFgbentr4VgrzRR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq6IrpgbeVAF_16RcurzrenyFgbentr4VgrzRR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq6IrpgbeVAF_16RcurzrenyFgbentr4VgrzRR10qb_qrfgeblRCiz:
 nop
@@ -4183,7 +4183,7 @@
 b_nez64_flfgrz_svygre:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq6IrpgbeVyR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVyR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVyR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVyR7qb_pbclRCiCXiz:
 nop
@@ -4193,12 +4193,12 @@
 b__MA14WavVachgFgernz4bcraRi:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVqR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVqR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVqR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVqR16qb_zbir_onpxjneqRCiCXiz:
 nop
 .text
-.globl b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVgR13trgQngnUrycreRi
+.weak b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVgR13trgQngnUrycreRi
 .type b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVgR13trgQngnUrycreRi,%function
 b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVgR13trgQngnUrycreRi:
 nop
@@ -4213,12 +4213,12 @@
 b__MA7naqebvq24AngvirVachgRiragErprvireP1RC7_WAVRaiC8_wbowrpgEXAF_2fcVAF_12VachgPunaaryRRREXAF5_VAF_12ZrffntrDhrhrRRR:
 nop
 .text
-.globl b__MAFg3__120__funerq_cge_rzcynprVA7naqebvq16WTybonyErsUbyqreRAF_9nyybpngbeVF2_RRR16__ba_mreb_funerqRi
+.weak b__MAFg3__120__funerq_cge_rzcynprVA7naqebvq16WTybonyErsUbyqreRAF_9nyybpngbeVF2_RRR16__ba_mreb_funerqRi
 .type b__MAFg3__120__funerq_cge_rzcynprVA7naqebvq16WTybonyErsUbyqreRAF_9nyybpngbeVF2_RRR16__ba_mreb_funerqRi,%function
 b__MAFg3__120__funerq_cge_rzcynprVA7naqebvq16WTybonyErsUbyqreRAF_9nyybpngbeVF2_RRR16__ba_mreb_funerqRi:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVvR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVvR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVvR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVvR16qb_zbir_onpxjneqRCiCXiz:
 nop
@@ -4228,12 +4228,12 @@
 b__MA7naqebvq6ovgznc12haybpxCvkryfRC7_WAVRaiC8_wbowrpg:
 nop
 .text
-.globl b__MA7naqebvq9vzt_hgvyf13GvssRagelVzcyVuRQ0Ri
+.weak b__MA7naqebvq9vzt_hgvyf13GvssRagelVzcyVuRQ0Ri
 .type b__MA7naqebvq9vzt_hgvyf13GvssRagelVzcyVuRQ0Ri,%function
 b__MA7naqebvq9vzt_hgvyf13GvssRagelVzcyVuRQ0Ri:
 nop
 .text
-.globl b__MA7naqebvq9vzt_hgvyf13GvssRagelVzcyVwRQ2Ri
+.weak b__MA7naqebvq9vzt_hgvyf13GvssRagelVzcyVwRQ2Ri
 .type b__MA7naqebvq9vzt_hgvyf13GvssRagelVzcyVwRQ2Ri,%function
 b__MA7naqebvq9vzt_hgvyf13GvssRagelVzcyVwRQ2Ri:
 nop
@@ -4258,7 +4258,7 @@
 b__MGIA7naqebvq26UjOvaqreQrnguErpvcvragYvfgR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVqR12jevgrGntVasbRwCAF0_12RaqvnaBhgchgR
+.weak b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVqR12jevgrGntVasbRwCAF0_12RaqvnaBhgchgR
 .type b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVqR12jevgrGntVasbRwCAF0_12RaqvnaBhgchgR,%function
 b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVqR12jevgrGntVasbRwCAF0_12RaqvnaBhgchgR:
 nop
@@ -4268,7 +4268,7 @@
 b__MA7naqebvq30naqebvq_ivrj_XrlRirag_gbAngvirRC7_WAVRaiC8_wbowrpgCAF_8XrlRiragR:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_8XrlRiragRR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_8XrlRiragRR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_8XrlRiragRR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_8XrlRiragRR15qb_zbir_sbejneqRCiCXiz:
 nop
@@ -4278,7 +4278,7 @@
 b__MA7naqebvq31naqebvq_ivrj_Fhesnpr_trgFhesnprRC7_WAVRaiC8_wbowrpg:
 nop
 .data
-.globl b__MGI18WninQrnguErpvcvrag
+.weak b__MGI18WninQrnguErpvcvrag
 .type b__MGI18WninQrnguErpvcvrag,%object
 b__MGI18WninQrnguErpvcvrag:
 .space __SIZEOF_POINTER__
@@ -4293,12 +4293,12 @@
 b__MA7naqebvq31ertvfgre_naqebvq_bf_FlfgrzPybpxRC7_WAVRai:
 nop
 .data
-.globl b__MGIA7naqebvq6IrpgbeVAF_16xrl_inyhr_cnve_gVCAF_10VachgRiragRoRRRR
+.weak b__MGIA7naqebvq6IrpgbeVAF_16xrl_inyhr_cnve_gVCAF_10VachgRiragRoRRRR
 .type b__MGIA7naqebvq6IrpgbeVAF_16xrl_inyhr_cnve_gVCAF_10VachgRiragRoRRRR,%object
 b__MGIA7naqebvq6IrpgbeVAF_16xrl_inyhr_cnve_gVCAF_10VachgRiragRoRRRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_8XrlRiragRR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq6IrpgbeVAF_8XrlRiragRR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq6IrpgbeVAF_8XrlRiragRR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq6IrpgbeVAF_8XrlRiragRR10qb_qrfgeblRCiz:
 nop
@@ -4313,7 +4313,7 @@
 b__M25naqebvq_bf_Cebprff_frgTvqC7_WAVRaiC8_wbowrpgv:
 nop
 .text
-.globl b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVuR6trgGntRi
+.weak b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVuR6trgGntRi
 .type b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVuR6trgGntRi,%function
 b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVuR6trgGntRi:
 nop
@@ -4328,7 +4328,7 @@
 b__MGIA7naqebvq13AbgvslUnaqyreR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__16__gerrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_4yrffVF6_RRAF4_VF6_RRR12__svaq_rdhnyVF6_RRECAF_16__gerr_abqr_onfrVCiRRAF_21__gerr_pbafg_vgrengbeVF6_CAF_11__gerr_abqrVF6_FQ_RRyRRECAF_15__gerr_raq_abqrVFS_RRFT_EXG_
+.weak b__MAFg3__16__gerrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_4yrffVF6_RRAF4_VF6_RRR12__svaq_rdhnyVF6_RRECAF_16__gerr_abqr_onfrVCiRRAF_21__gerr_pbafg_vgrengbeVF6_CAF_11__gerr_abqrVF6_FQ_RRyRRECAF_15__gerr_raq_abqrVFS_RRFT_EXG_
 .type b__MAFg3__16__gerrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_4yrffVF6_RRAF4_VF6_RRR12__svaq_rdhnyVF6_RRECAF_16__gerr_abqr_onfrVCiRRAF_21__gerr_pbafg_vgrengbeVF6_CAF_11__gerr_abqrVF6_FQ_RRyRRECAF_15__gerr_raq_abqrVFS_RRFT_EXG_,%function
 b__MAFg3__16__gerrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_4yrffVF6_RRAF4_VF6_RRR12__svaq_rdhnyVF6_RRECAF_16__gerr_abqr_onfrVCiRRAF_21__gerr_pbafg_vgrengbeVF6_CAF_11__gerr_abqrVF6_FQ_RRyRRECAF_15__gerr_raq_abqrVFS_RRFT_EXG_:
 nop
@@ -4358,12 +4358,12 @@
 b__MGP16WAVPnzrenPbagrkg0_A7naqebvq14PnzrenYvfgrareR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq6IrpgbeVuR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVuR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVuR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVuR7qb_pbclRCiCXiz:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVvvRRAF_19__znc_inyhr_pbzcnerVvF2_AF_4yrffVvRRYo1RRRAF_9nyybpngbeVF2_RRR7qrfgeblRCAF_11__gerr_abqrVF2_CiRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVvvRRAF_19__znc_inyhr_pbzcnerVvF2_AF_4yrffVvRRYo1RRRAF_9nyybpngbeVF2_RRR7qrfgeblRCAF_11__gerr_abqrVF2_CiRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVvvRRAF_19__znc_inyhr_pbzcnerVvF2_AF_4yrffVvRRYo1RRRAF_9nyybpngbeVF2_RRR7qrfgeblRCAF_11__gerr_abqrVF2_CiRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVvvRRAF_19__znc_inyhr_pbzcnerVvF2_AF_4yrffVvRRYo1RRRAF_9nyybpngbeVF2_RRR7qrfgeblRCAF_11__gerr_abqrVF2_CiRR:
 nop
@@ -4378,7 +4378,7 @@
 b__MA7naqebvq28ertvfgre_naqebvq_bf_UjCnepryRC7_WAVRai:
 nop
 .data
-.globl b__MGIA7naqebvq14EbbgEraqreAbqrR
+.weak b__MGIA7naqebvq14EbbgEraqreAbqrR
 .type b__MGIA7naqebvq14EbbgEraqreAbqrR,%object
 b__MGIA7naqebvq14EbbgEraqreAbqrR:
 .space __SIZEOF_POINTER__
@@ -4388,12 +4388,12 @@
 b__MA7naqebvq15WUjErzbgrOvaqreP1RC7_WAVRaiC8_wbowrpgEXAF_2fcVAF_8uneqjner7VOvaqreRRR:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVCAF_9vzt_hgvyf11FgevcFbheprRR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVCAF_9vzt_hgvyf11FgevcFbheprRR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVCAF_9vzt_hgvyf11FgevcFbheprRR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVCAF_9vzt_hgvyf11FgevcFbheprRR15qb_zbir_sbejneqRCiCXiz:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVuR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVuR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVuR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVuR15qb_zbir_sbejneqRCiCXiz:
 nop
@@ -4423,7 +4423,7 @@
 b__MA7naqebvq40ertvfgre_naqebvq_ivrj_EraqreAbqrNavzngbeRC7_WAVRai:
 nop
 .data
-.globl b__MGIA7naqebvq33NavzngvbaYvfgrareYvsrplpyrPurpxreR
+.weak b__MGIA7naqebvq33NavzngvbaYvfgrareYvsrplpyrPurpxreR
 .type b__MGIA7naqebvq33NavzngvbaYvfgrareYvsrplpyrPurpxreR,%object
 b__MGIA7naqebvq33NavzngvbaYvfgrareYvsrplpyrPurpxreR:
 .space __SIZEOF_POINTER__
@@ -4438,7 +4438,7 @@
 b__MA7naqebvq22angvirFpnyrSbeCevagvatRC7_WAVRaiC7_wpynffy:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq15NhqvbNggevohgrfRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVEXF2_RRiBG_
+.weak b__MAFg3__16irpgbeVA7naqebvq15NhqvbNggevohgrfRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVEXF2_RRiBG_
 .type b__MAFg3__16irpgbeVA7naqebvq15NhqvbNggevohgrfRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVEXF2_RRiBG_,%function
 b__MAFg3__16irpgbeVA7naqebvq15NhqvbNggevohgrfRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVEXF2_RRiBG_:
 nop
@@ -4453,7 +4453,7 @@
 b__MA7naqebvq17tEhaanoyrZrgubqVqR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_7WUjOybo8OyboVasbRR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq6IrpgbeVAF_7WUjOybo8OyboVasbRR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq6IrpgbeVAF_7WUjOybo8OyboVasbRR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq6IrpgbeVAF_7WUjOybo8OyboVasbRR12qb_pbafgehpgRCiz:
 nop
@@ -4463,7 +4463,7 @@
 b__MA11TencuvpfWAV25perngrOvgzncErtvbaQrpbqreRC7_WAVRaiC21FxOvgzncErtvbaQrpbqre:
 nop
 .text
-.globl b__MA7naqebvq11OaVagresnprVAF_20VErzbgrQvfcynlPyvragRR10baNfOvaqreRi
+.weak b__MA7naqebvq11OaVagresnprVAF_20VErzbgrQvfcynlPyvragRR10baNfOvaqreRi
 .type b__MA7naqebvq11OaVagresnprVAF_20VErzbgrQvfcynlPyvragRR10baNfOvaqreRi,%function
 b__MA7naqebvq11OaVagresnprVAF_20VErzbgrQvfcynlPyvragRR10baNfOvaqreRi:
 nop
@@ -4478,17 +4478,17 @@
 b_fgngf_jevgr_yvfg:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeV12WninIZBcgvbaR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeV12WninIZBcgvbaR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq6IrpgbeV12WninIZBcgvbaR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeV12WninIZBcgvbaR7qb_pbclRCiCXiz:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_24AngvirVachgRiragErprvire6SvavfuRR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_24AngvirVachgRiragErprvire6SvavfuRR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_24AngvirVachgRiragErprvire6SvavfuRR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_24AngvirVachgRiragErprvire6SvavfuRR15qb_zbir_sbejneqRCiCXiz:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_10hveraqrere10EraqreAbqrRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_
+.weak b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_10hveraqrere10EraqreAbqrRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_
 .type b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_10hveraqrere10EraqreAbqrRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_,%function
 b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_10hveraqrere10EraqreAbqrRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_:
 nop
@@ -4548,12 +4548,12 @@
 b__MA20WAVNhqvbCbegPnyyonpxQ2Ri:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_6FrafbeRR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_6FrafbeRR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_6FrafbeRR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_6FrafbeRR16qb_zbir_onpxjneqRCiCXiz:
 nop
 .text
-.globl b__MAXFg3__110__shapgvba6__shapVAF_6__ovaqVESiC7_WAVRaiCXpC8_wfgevatEXAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRRWEF4_F6_QaEXAF_12cynprubyqref4__cuVYv1RRRRRRAFP_VFC_RRSiFR_RR7__pybarRi
+.weak b__MAXFg3__110__shapgvba6__shapVAF_6__ovaqVESiC7_WAVRaiCXpC8_wfgevatEXAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRRWEF4_F6_QaEXAF_12cynprubyqref4__cuVYv1RRRRRRAFP_VFC_RRSiFR_RR7__pybarRi
 .type b__MAXFg3__110__shapgvba6__shapVAF_6__ovaqVESiC7_WAVRaiCXpC8_wfgevatEXAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRRWEF4_F6_QaEXAF_12cynprubyqref4__cuVYv1RRRRRRAFP_VFC_RRSiFR_RR7__pybarRi,%function
 b__MAXFg3__110__shapgvba6__shapVAF_6__ovaqVESiC7_WAVRaiCXpC8_wfgevatEXAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRRWEF4_F6_QaEXAF_12cynprubyqref4__cuVYv1RRRRRRAFP_VFC_RRSiFR_RR7__pybarRi:
 nop
@@ -4568,7 +4568,7 @@
 b__MA7naqebvq43ertvfgre_naqebvq_tencuvpf_grkg_ZrnfherqGrkgRC7_WAVRai:
 nop
 .data
-.globl b__MGIA7naqebvq6IrpgbeVAF_7WUjOybo8OyboVasbRRR
+.weak b__MGIA7naqebvq6IrpgbeVAF_7WUjOybo8OyboVasbRRR
 .type b__MGIA7naqebvq6IrpgbeVAF_7WUjOybo8OyboVasbRRR,%object
 b__MGIA7naqebvq6IrpgbeVAF_7WUjOybo8OyboVasbRRR:
 .space __SIZEOF_POINTER__
@@ -4648,7 +4648,7 @@
 b__MA7naqebvq37ertvfgre_naqebvq_qngnonfr_FDYvgrQrohtRC7_WAVRai:
 nop
 .data
-.globl b__MGIA7naqebvq6IrpgbeVwRR
+.weak b__MGIA7naqebvq6IrpgbeVwRR
 .type b__MGIA7naqebvq6IrpgbeVwRR,%object
 b__MGIA7naqebvq6IrpgbeVwRR:
 .space __SIZEOF_POINTER__
@@ -4663,12 +4663,12 @@
 b__MGI13AngvirPbagrkg:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_24AngvirVachgRiragErprvire6SvavfuRR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_24AngvirVachgRiragErprvire6SvavfuRR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_24AngvirVachgRiragErprvire6SvavfuRR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_24AngvirVachgRiragErprvire6SvavfuRR16qb_zbir_onpxjneqRCiCXiz:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_16xrl_inyhr_cnve_gVCAF_10VachgRiragRoRRR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq6IrpgbeVAF_16xrl_inyhr_cnve_gVCAF_10VachgRiragRoRRR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq6IrpgbeVAF_16xrl_inyhr_cnve_gVCAF_10VachgRiragRoRRR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq6IrpgbeVAF_16xrl_inyhr_cnve_gVCAF_10VachgRiragRoRRR12qb_pbafgehpgRCiz:
 nop
@@ -4683,7 +4683,7 @@
 b_tBcgvbaf_fperraQrafvglSvryqVQ:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_8NhqvbZvkRR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_8NhqvbZvkRR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_8NhqvbZvkRR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_8NhqvbZvkRR8qb_fcyngRCiCXiz:
 nop
@@ -4703,7 +4703,7 @@
 b__MA7naqebvq37ertvfgre_naqebvq_ivrj_XrlPunenpgreZncRC7_WAVRai:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwwRRAF_22__habeqrerq_znc_unfureVwF2_AF_4unfuVwRRYo1RRRAF_21__habeqrerq_znc_rdhnyVwF2_AF_8rdhny_gbVwRRYo1RRRAF_9nyybpngbeVF2_RRR6erunfuRz
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwwRRAF_22__habeqrerq_znc_unfureVwF2_AF_4unfuVwRRYo1RRRAF_21__habeqrerq_znc_rdhnyVwF2_AF_8rdhny_gbVwRRYo1RRRAF_9nyybpngbeVF2_RRR6erunfuRz
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwwRRAF_22__habeqrerq_znc_unfureVwF2_AF_4unfuVwRRYo1RRRAF_21__habeqrerq_znc_rdhnyVwF2_AF_8rdhny_gbVwRRYo1RRRAF_9nyybpngbeVF2_RRR6erunfuRz,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwwRRAF_22__habeqrerq_znc_unfureVwF2_AF_4unfuVwRRYo1RRRAF_21__habeqrerq_znc_rdhnyVwF2_AF_8rdhny_gbVwRRYo1RRRAF_9nyybpngbeVF2_RRR6erunfuRz:
 nop
@@ -4718,7 +4718,7 @@
 b__MA16WAVPnzrenPbagrkg22pyrnePnyyonpxOhssref_yRC7_WAVRai:
 nop
 .data
-.globl b__MGIA7naqebvq6IrpgbeVAF_6FrafbeRRR
+.weak b__MGIA7naqebvq6IrpgbeVAF_6FrafbeRRR
 .type b__MGIA7naqebvq6IrpgbeVAF_6FrafbeRRR,%object
 b__MGIA7naqebvq6IrpgbeVAF_6FrafbeRRR:
 .space __SIZEOF_POINTER__
@@ -4733,12 +4733,12 @@
 b__MGI20Lhi422VGbWcrtRapbqre:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__16irpgbeVA7zvavxva4SbagRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVEXF2_RRiBG_
+.weak b__MAFg3__16irpgbeVA7zvavxva4SbagRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVEXF2_RRiBG_
 .type b__MAFg3__16irpgbeVA7zvavxva4SbagRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVEXF2_RRiBG_,%function
 b__MAFg3__16irpgbeVA7zvavxva4SbagRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVEXF2_RRiBG_:
 nop
 .text
-.globl b__MA7naqebvq9vzt_hgvyf13GvssRagelVzcyVgRQ0Ri
+.weak b__MA7naqebvq9vzt_hgvyf13GvssRagelVzcyVgRQ0Ri
 .type b__MA7naqebvq9vzt_hgvyf13GvssRagelVzcyVgRQ0Ri,%function
 b__MA7naqebvq9vzt_hgvyf13GvssRagelVzcyVgRQ0Ri:
 nop
@@ -4748,7 +4748,7 @@
 b__MA23WAVFbhaqGevttrePnyyonpx20baFreivprFgngrPunatrR29fbhaq_gevttre_freivpr_fgngr_g:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_17CbvagreCebcregvrfRR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq6IrpgbeVAF_17CbvagreCebcregvrfRR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq6IrpgbeVAF_17CbvagreCebcregvrfRR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq6IrpgbeVAF_17CbvagreCebcregvrfRR12qb_pbafgehpgRCiz:
 nop
@@ -4803,7 +4803,7 @@
 b__MA7naqebvq33ertvfgre_naqebvq_ivrj_GrkgherIvrjRC7_WAVRai:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVCAF_10VachgRiragRR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVCAF_10VachgRiragRR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVCAF_10VachgRiragRR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVCAF_10VachgRiragRR7qb_pbclRCiCXiz:
 nop
@@ -4818,7 +4818,7 @@
 b__MA7naqebvq36naqebvq_bf_Qroht_trgCebklBowrpgPbhagRC7_WAVRaiC8_wbowrpg:
 nop
 .text
-.globl b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVqR13trgQngnUrycreRi
+.weak b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVqR13trgQngnUrycreRi
 .type b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVqR13trgQngnUrycreRi,%function
 b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVqR13trgQngnUrycreRi:
 nop
@@ -4828,12 +4828,12 @@
 b__MA7naqebvq36ertvfgre_naqebvq_ivrj_FhesnprPbagebyRC7_WAVRai:
 nop
 .data
-.globl b__MGIA7naqebvq21VaibxrEhaanoyrZrffntrR
+.weak b__MGIA7naqebvq21VaibxrEhaanoyrZrffntrR
 .type b__MGIA7naqebvq21VaibxrEhaanoyrZrffntrR,%object
 b__MGIA7naqebvq21VaibxrEhaanoyrZrffntrR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__16irpgbeVpAF_9nyybpngbeVpRRR21__chfu_onpx_fybj_cnguVpRRiBG_
+.weak b__MAFg3__16irpgbeVpAF_9nyybpngbeVpRRR21__chfu_onpx_fybj_cnguVpRRiBG_
 .type b__MAFg3__16irpgbeVpAF_9nyybpngbeVpRRR21__chfu_onpx_fybj_cnguVpRRiBG_,%function
 b__MAFg3__16irpgbeVpAF_9nyybpngbeVpRRR21__chfu_onpx_fybj_cnguVpRRiBG_:
 nop
@@ -4848,7 +4848,7 @@
 b__MA7naqebvq17NhgbOhssreCbvagreP1RC7_WAVRaiC8_wbowrpgu:
 nop
 .data
-.globl b__MGI5Zbivr
+.weak b__MGI5Zbivr
 .type b__MGI5Zbivr,%object
 b__MGI5Zbivr:
 .space __SIZEOF_POINTER__
@@ -4898,7 +4898,7 @@
 b__MA7naqebvq38pbairegNhqvbRssrpgQrfpevcgbeSebzAngvirRC7_WAVRaiCC8_wbowrpgCX19rssrpg_qrfpevcgbe_f:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeV12WninIZBcgvbaR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeV12WninIZBcgvbaR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeV12WninIZBcgvbaR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeV12WninIZBcgvbaR15qb_zbir_sbejneqRCiCXiz:
 nop
@@ -4913,7 +4913,7 @@
 b__MA7naqebvq7WUjOyboQ1Ri:
 nop
 .text
-.globl b__MAFg3__16irpgbeVsAF_9nyybpngbeVsRRR21__chfu_onpx_fybj_cnguVsRRiBG_
+.weak b__MAFg3__16irpgbeVsAF_9nyybpngbeVsRRR21__chfu_onpx_fybj_cnguVsRRiBG_
 .type b__MAFg3__16irpgbeVsAF_9nyybpngbeVsRRR21__chfu_onpx_fybj_cnguVsRRiBG_,%function
 b__MAFg3__16irpgbeVsAF_9nyybpngbeVsRRR21__chfu_onpx_fybj_cnguVsRRiBG_:
 nop
@@ -4928,7 +4928,7 @@
 b__M34WUjOvaqre_angvir_wbvaEcpGuernqcbbyi:
 nop
 .text
-.globl b__MAFg3__1yfVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRREAF_13onfvp_bfgernzVG_G0_RRF9_EXAF_12onfvp_fgevatVF6_F7_G1_RR
+.weak b__MAFg3__1yfVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRREAF_13onfvp_bfgernzVG_G0_RRF9_EXAF_12onfvp_fgevatVF6_F7_G1_RR
 .type b__MAFg3__1yfVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRREAF_13onfvp_bfgernzVG_G0_RRF9_EXAF_12onfvp_fgevatVF6_F7_G1_RR,%function
 b__MAFg3__1yfVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRREAF_13onfvp_bfgernzVG_G0_RRF9_EXAF_12onfvp_fgevatVF6_F7_G1_RR:
 nop
@@ -4973,12 +4973,12 @@
 b__MA11TencuvpfWAV13trgPbybeFcnprRC7_WAVRaiC12FxPbybeFcnpr11FxPbybeGlcr:
 nop
 .text
-.globl b__MA7naqebvq9vzt_hgvyf13GvssRagelVzcyVvRQ0Ri
+.weak b__MA7naqebvq9vzt_hgvyf13GvssRagelVzcyVvRQ0Ri
 .type b__MA7naqebvq9vzt_hgvyf13GvssRagelVzcyVvRQ0Ri,%function
 b__MA7naqebvq9vzt_hgvyf13GvssRagelVzcyVvRQ0Ri:
 nop
 .text
-.globl b__MAFg3__16irpgbeVvAF_9nyybpngbeVvRRR21__chfu_onpx_fybj_cnguVvRRiBG_
+.weak b__MAFg3__16irpgbeVvAF_9nyybpngbeVvRRR21__chfu_onpx_fybj_cnguVvRRiBG_
 .type b__MAFg3__16irpgbeVvAF_9nyybpngbeVvRRR21__chfu_onpx_fybj_cnguVvRRiBG_,%function
 b__MAFg3__16irpgbeVvAF_9nyybpngbeVvRRR21__chfu_onpx_fybj_cnguVvRRiBG_:
 nop
@@ -4988,7 +4988,7 @@
 b_tOvgzncPbasvt_pynff:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvC18SvyrQrfpevcgbeVasbRRAF_22__habeqrerq_znc_unfureVvF4_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF4_AF_8rdhny_gbVvRRYo1RRRAF_9nyybpngbeVF4_RRR25__rzcynpr_havdhr_xrl_netfVvWEXAF_4cnveVXvF3_RRRRRAFU_VAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF4_CiRRRRoRREXG_QcBG0_
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvC18SvyrQrfpevcgbeVasbRRAF_22__habeqrerq_znc_unfureVvF4_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF4_AF_8rdhny_gbVvRRYo1RRRAF_9nyybpngbeVF4_RRR25__rzcynpr_havdhr_xrl_netfVvWEXAF_4cnveVXvF3_RRRRRAFU_VAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF4_CiRRRRoRREXG_QcBG0_
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvC18SvyrQrfpevcgbeVasbRRAF_22__habeqrerq_znc_unfureVvF4_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF4_AF_8rdhny_gbVvRRYo1RRRAF_9nyybpngbeVF4_RRR25__rzcynpr_havdhr_xrl_netfVvWEXAF_4cnveVXvF3_RRRRRAFU_VAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF4_CiRRRRoRREXG_QcBG0_,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvC18SvyrQrfpevcgbeVasbRRAF_22__habeqrerq_znc_unfureVvF4_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF4_AF_8rdhny_gbVvRRYo1RRRAF_9nyybpngbeVF4_RRR25__rzcynpr_havdhr_xrl_netfVvWEXAF_4cnveVXvF3_RRRRRAFU_VAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF4_CiRRRRoRREXG_QcBG0_:
 nop
@@ -5008,32 +5008,32 @@
 b__MA7naqebvq22AngvirVachgRiragFraqreQ2Ri:
 nop
 .text
-.globl b__MAFg3__16irpgbeVvAF_9nyybpngbeVvRRR21__chfu_onpx_fybj_cnguVEXvRRiBG_
+.weak b__MAFg3__16irpgbeVvAF_9nyybpngbeVvRRR21__chfu_onpx_fybj_cnguVEXvRRiBG_
 .type b__MAFg3__16irpgbeVvAF_9nyybpngbeVvRRR21__chfu_onpx_fybj_cnguVEXvRRiBG_,%function
 b__MAFg3__16irpgbeVvAF_9nyybpngbeVvRRR21__chfu_onpx_fybj_cnguVEXvRRiBG_:
 nop
 .text
-.globl b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR8biresybjRv
+.weak b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR8biresybjRv
 .type b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR8biresybjRv,%function
 b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR8biresybjRv:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_8Fgevat16RuRRR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_8Fgevat16RuRRR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_8Fgevat16RuRRR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_8Fgevat16RuRRR7qb_pbclRCiCXiz:
 nop
 .data
-.globl b__MGIA7naqebvq4YvfgVAF_2fcV18WninQrnguErpvcvragRRRR
+.weak b__MGIA7naqebvq4YvfgVAF_2fcV18WninQrnguErpvcvragRRRR
 .type b__MGIA7naqebvq4YvfgVAF_2fcV18WninQrnguErpvcvragRRRR,%object
 b__MGIA7naqebvq4YvfgVAF_2fcV18WninQrnguErpvcvragRRRR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIA7naqebvq6Cnepry17SynggranoyrUrycreVAF_13TencuvpOhssreRRR
+.weak b__MGIA7naqebvq6Cnepry17SynggranoyrUrycreVAF_13TencuvpOhssreRRR
 .type b__MGIA7naqebvq6Cnepry17SynggranoyrUrycreVAF_13TencuvpOhssreRRR,%object
 b__MGIA7naqebvq6Cnepry17SynggranoyrUrycreVAF_13TencuvpOhssreRRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__16irpgbeVwAF_9nyybpngbeVwRRR21__chfu_onpx_fybj_cnguVwRRiBG_
+.weak b__MAFg3__16irpgbeVwAF_9nyybpngbeVwRRR21__chfu_onpx_fybj_cnguVwRRiBG_
 .type b__MAFg3__16irpgbeVwAF_9nyybpngbeVwRRR21__chfu_onpx_fybj_cnguVwRRiBG_,%function
 b__MAFg3__16irpgbeVwAF_9nyybpngbeVwRRR21__chfu_onpx_fybj_cnguVwRRiBG_:
 nop
@@ -5048,7 +5048,7 @@
 b__MA7naqebvq36ertvfgre_naqebvq_arg_YbpnyFbpxrgVzcyRC7_WAVRai:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_16xrl_inyhr_cnve_gVCAF_10VachgRiragRoRRR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_16xrl_inyhr_cnve_gVCAF_10VachgRiragRoRRR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_16xrl_inyhr_cnve_gVCAF_10VachgRiragRoRRR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_16xrl_inyhr_cnve_gVCAF_10VachgRiragRoRRR16qb_zbir_onpxjneqRCiCXiz:
 nop
@@ -5058,7 +5058,7 @@
 b__MA7naqebvq38naqebvq_FhesnprGrkgher_trgAngvirJvaqbjRC7_WAVRaiC8_wbowrpg:
 nop
 .data
-.globl b__MGI14VaibxrYvfgrare
+.weak b__MGI14VaibxrYvfgrare
 .type b__MGI14VaibxrYvfgrare,%object
 b__MGI14VaibxrYvfgrare:
 .space __SIZEOF_POINTER__
@@ -5073,7 +5073,7 @@
 b__MA8TVSZbivrQ0Ri:
 nop
 .text
-.globl b__MA7naqebvq12ZvavxvaHgvyf10sbeSbagEhaVAF_9CnvagTyhr14TrgGrkgShapgbeRRRiEXA7zvavxva6YnlbhgRCAF_5CnvagREG_
+.weak b__MA7naqebvq12ZvavxvaHgvyf10sbeSbagEhaVAF_9CnvagTyhr14TrgGrkgShapgbeRRRiEXA7zvavxva6YnlbhgRCAF_5CnvagREG_
 .type b__MA7naqebvq12ZvavxvaHgvyf10sbeSbagEhaVAF_9CnvagTyhr14TrgGrkgShapgbeRRRiEXA7zvavxva6YnlbhgRCAF_5CnvagREG_,%function
 b__MA7naqebvq12ZvavxvaHgvyf10sbeSbagEhaVAF_9CnvagTyhr14TrgGrkgShapgbeRRRiEXA7zvavxva6YnlbhgRCAF_5CnvagREG_:
 nop
@@ -5088,7 +5088,7 @@
 b__M34ertvfgre_naqebvq_bcraty_wav_RTYRkgC7_WAVRai:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_7WUjOybo8OyboVasbRR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_7WUjOybo8OyboVasbRR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_7WUjOybo8OyboVasbRR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_7WUjOybo8OyboVasbRR8qb_fcyngRCiCXiz:
 nop
@@ -5098,7 +5098,7 @@
 b__MAX7naqebvq7WUjOybo4fvmrRi:
 nop
 .data
-.globl b__MGPAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_13onfvp_bfgernzVpF2_RR
+.weak b__MGPAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_13onfvp_bfgernzVpF2_RR
 .type b__MGPAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_13onfvp_bfgernzVpF2_RR,%object
 b__MGPAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_13onfvp_bfgernzVpF2_RR:
 .space __SIZEOF_POINTER__
@@ -5108,17 +5108,17 @@
 b__MA18QrnguErpvcvragYvfg4ybpxRi:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVvR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVvR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVvR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVvR8qb_fcyngRCiCXiz:
 nop
 .text
-.globl b__MAFg3__16irpgbeVpAF_9nyybpngbeVpRRR8__nccraqRz
+.weak b__MAFg3__16irpgbeVpAF_9nyybpngbeVpRRR8__nccraqRz
 .type b__MAFg3__16irpgbeVpAF_9nyybpngbeVpRRR8__nccraqRz,%function
 b__MAFg3__16irpgbeVpAF_9nyybpngbeVpRRR8__nccraqRz:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVs7FxCbvagRRAF_19__znc_inyhr_pbzcnerVsF3_AF_4yrffVsRRYo1RRRAF_9nyybpngbeVF3_RRR7qrfgeblRCAF_11__gerr_abqrVF3_CiRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVs7FxCbvagRRAF_19__znc_inyhr_pbzcnerVsF3_AF_4yrffVsRRYo1RRRAF_9nyybpngbeVF3_RRR7qrfgeblRCAF_11__gerr_abqrVF3_CiRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVs7FxCbvagRRAF_19__znc_inyhr_pbzcnerVsF3_AF_4yrffVsRRYo1RRRAF_9nyybpngbeVF3_RRR7qrfgeblRCAF_11__gerr_abqrVF3_CiRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVs7FxCbvagRRAF_19__znc_inyhr_pbzcnerVsF3_AF_4yrffVsRRYo1RRRAF_9nyybpngbeVF3_RRR7qrfgeblRCAF_11__gerr_abqrVF3_CiRR:
 nop
@@ -5133,7 +5133,7 @@
 b__MA7naqebvq60ertvfgre_pbz_naqebvq_vagreany_bf_MltbgrVavg_angvirMltbgrVavgRC7_WAVRai:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVCAF_10VachgRiragRR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq6IrpgbeVCAF_10VachgRiragRR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq6IrpgbeVCAF_10VachgRiragRR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq6IrpgbeVCAF_10VachgRiragRR12qb_pbafgehpgRCiz:
 nop
@@ -5178,12 +5178,12 @@
 b__MA16WAVPnzrenPbagrkg33cbfgErpbeqvatSenzrUnaqyrGvzrfgnzcRyC13angvir_unaqyr:
 nop
 .text
-.globl b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVuR13trgQngnUrycreRi
+.weak b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVuR13trgQngnUrycreRi
 .type b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVuR13trgQngnUrycreRi,%function
 b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVuR13trgQngnUrycreRi:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_16RcurzrenyFgbentr4VgrzRR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq6IrpgbeVAF_16RcurzrenyFgbentr4VgrzRR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq6IrpgbeVAF_16RcurzrenyFgbentr4VgrzRR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq6IrpgbeVAF_16RcurzrenyFgbentr4VgrzRR12qb_pbafgehpgRCiz:
 nop
@@ -5198,7 +5198,7 @@
 b__MA13AngvirPbagrkg14frgBevragngvbaRg:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_6FrafbeRR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq6IrpgbeVAF_6FrafbeRR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq6IrpgbeVAF_6FrafbeRR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq6IrpgbeVAF_6FrafbeRR10qb_qrfgeblRCiz:
 nop
@@ -5213,12 +5213,12 @@
 b__MGI21Lhi420FcGbWcrtRapbqre:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_19NhqvbQrivprGlcrNqqeRR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_19NhqvbQrivprGlcrNqqeRR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_19NhqvbQrivprGlcrNqqeRR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_19NhqvbQrivprGlcrNqqeRR16qb_zbir_onpxjneqRCiCXiz:
 nop
 .text
-.globl b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVwR6trgGntRi
+.weak b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVwR6trgGntRi
 .type b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVwR6trgGntRi,%function
 b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVwR6trgGntRi:
 nop
@@ -5228,7 +5228,7 @@
 b__MA7naqebvq9WUjCnepry16FrgAngvirPbagrkgRC7_WAVRaiC8_wbowrpgEXAF_2fcVF0_RR:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVC11_wolgrNeenlR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq6IrpgbeVC11_wolgrNeenlR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq6IrpgbeVC11_wolgrNeenlR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq6IrpgbeVC11_wolgrNeenlR12qb_pbafgehpgRCiz:
 nop
@@ -5268,22 +5268,22 @@
 b__MA7naqebvq35naqebvq_tencuvpf_Ertvba_trgFxErtvbaRC7_WAVRaiC8_wbowrpg:
 nop
 .data
-.globl b__MGI23ErplpyvatCvkryNyybpngbe
+.weak b__MGI23ErplpyvatCvkryNyybpngbe
 .type b__MGI23ErplpyvatCvkryNyybpngbe,%object
 b__MGI23ErplpyvatCvkryNyybpngbe:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIA7naqebvq10hveraqrere19PnainfCebcreglCnvagR
+.weak b__MGIA7naqebvq10hveraqrere19PnainfCebcreglCnvagR
 .type b__MGIA7naqebvq10hveraqrere19PnainfCebcreglCnvagR,%object
 b__MGIA7naqebvq10hveraqrere19PnainfCebcreglCnvagR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVC27nhqvberpbeq_pnyyonpx_pbbxvrR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVC27nhqvberpbeq_pnyyonpx_pbbxvrR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVC27nhqvberpbeq_pnyyonpx_pbbxvrR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVC27nhqvberpbeq_pnyyonpx_pbbxvrR10qb_qrfgeblRCiz:
 nop
 .text
-.globl b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVwR8trgPbhagRi
+.weak b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVwR8trgPbhagRi
 .type b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVwR8trgPbhagRi,%function
 b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVwR8trgPbhagRi:
 nop
@@ -5298,7 +5298,7 @@
 b__MA20WAVNhqvbCbegPnyyonpxQ1Ri:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVCAF_9vzt_hgvyf11FgevcFbheprRR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVCAF_9vzt_hgvyf11FgevcFbheprRR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVCAF_9vzt_hgvyf11FgevcFbheprRR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVCAF_9vzt_hgvyf11FgevcFbheprRR16qb_zbir_onpxjneqRCiCXiz:
 nop
@@ -5308,7 +5308,7 @@
 b__M44ertvfgre_naqebvq_uneqjner_pnzren2_QatPerngbeC7_WAVRai:
 nop
 .text
-.globl b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVvR18trgPbzcnenoyrInyhrRi
+.weak b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVvR18trgPbzcnenoyrInyhrRi
 .type b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVvR18trgPbzcnenoyrInyhrRi,%function
 b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVvR18trgPbzcnenoyrInyhrRi:
 nop
@@ -5353,12 +5353,12 @@
 b__MA5Zbivr10QrpbqrSvyrRCXp:
 nop
 .data
-.globl b__MGIA7zvavxva14ErcynprzragEhaR
+.weak b__MGIA7zvavxva14ErcynprzragEhaR
 .type b__MGIA7zvavxva14ErcynprzragEhaR,%object
 b__MGIA7zvavxva14ErcynprzragEhaR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGP14VaibxrYvfgrare0_A7naqebvq14ZrffntrUnaqyreR
+.weak b__MGP14VaibxrYvfgrare0_A7naqebvq14ZrffntrUnaqyreR
 .type b__MGP14VaibxrYvfgrare0_A7naqebvq14ZrffntrUnaqyreR,%object
 b__MGP14VaibxrYvfgrare0_A7naqebvq14ZrffntrUnaqyreR:
 .space __SIZEOF_POINTER__
@@ -5368,22 +5368,22 @@
 b__MA11TencuvpfWAV14erpg_gb_werpgsREX6FxErpgC7_WAVRaiC8_wbowrpg:
 nop
 .text
-.globl b__MAFg3__16irpgbeV7FxCbvagAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_
+.weak b__MAFg3__16irpgbeV7FxCbvagAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_
 .type b__MAFg3__16irpgbeV7FxCbvagAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_,%function
 b__MAFg3__16irpgbeV7FxCbvagAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_:
 nop
 .text
-.globl b__MA7naqebvq5ivags9gb_fgevatVAF0_13XrearyIrefvbaRRRAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRREXG_
+.weak b__MA7naqebvq5ivags9gb_fgevatVAF0_13XrearyIrefvbaRRRAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRREXG_
 .type b__MA7naqebvq5ivags9gb_fgevatVAF0_13XrearyIrefvbaRRRAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRREXG_,%function
 b__MA7naqebvq5ivags9gb_fgevatVAF0_13XrearyIrefvbaRRRAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRREXG_:
 nop
 .data
-.globl b__MGIA7naqebvq6IrpgbeVvRR
+.weak b__MGIA7naqebvq6IrpgbeVvRR
 .type b__MGIA7naqebvq6IrpgbeVvRR,%object
 b__MGIA7naqebvq6IrpgbeVvRR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIA7naqebvq16CnvagSyntfSvygreR
+.weak b__MGIA7naqebvq16CnvagSyntfSvygreR
 .type b__MGIA7naqebvq16CnvagSyntfSvygreR,%object
 b__MGIA7naqebvq16CnvagSyntfSvygreR:
 .space __SIZEOF_POINTER__
@@ -5398,12 +5398,12 @@
 b__MA7naqebvq23guebj_fdyvgr3_rkprcgvbaRC7_WAVRaiC7fdyvgr3:
 nop
 .data
-.globl b__MGPAFg3__119onfvp_vfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_13onfvp_vfgernzVpF2_RR
+.weak b__MGPAFg3__119onfvp_vfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_13onfvp_vfgernzVpF2_RR
 .type b__MGPAFg3__119onfvp_vfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_13onfvp_vfgernzVpF2_RR,%object
 b__MGPAFg3__119onfvp_vfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_13onfvp_vfgernzVpF2_RR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_8NhqvbZvkRR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_8NhqvbZvkRR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_8NhqvbZvkRR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_8NhqvbZvkRR7qb_pbclRCiCXiz:
 nop
@@ -5423,7 +5423,7 @@
 b__MA7naqebvq36naqebvq_hgvy_Ybt_vfIreobfrYbtRanoyrqRCXp:
 nop
 .data
-.globl b__MGI15OlgrNeenlFgernz
+.weak b__MGI15OlgrNeenlFgernz
 .type b__MGI15OlgrNeenlFgernz,%object
 b__MGI15OlgrNeenlFgernz:
 .space __SIZEOF_POINTER__
@@ -5448,17 +5448,17 @@
 b__MA7naqebvq37ertvfgre_naqebvq_tencuvpf_PbybeSvygreRC7_WAVRai:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeV12WninIZBcgvbaR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeV12WninIZBcgvbaR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq6IrpgbeV12WninIZBcgvbaR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeV12WninIZBcgvbaR8qb_fcyngRCiCXiz:
 nop
 .text
-.globl b__MAFg3__120__funerq_cge_rzcynprVA7naqebvq14PnzrenZrgnqngnRAF_9nyybpngbeVF2_RRR16__ba_mreb_funerqRi
+.weak b__MAFg3__120__funerq_cge_rzcynprVA7naqebvq14PnzrenZrgnqngnRAF_9nyybpngbeVF2_RRR16__ba_mreb_funerqRi
 .type b__MAFg3__120__funerq_cge_rzcynprVA7naqebvq14PnzrenZrgnqngnRAF_9nyybpngbeVF2_RRR16__ba_mreb_funerqRi,%function
 b__MAFg3__120__funerq_cge_rzcynprVA7naqebvq14PnzrenZrgnqngnRAF_9nyybpngbeVF2_RRR16__ba_mreb_funerqRi:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVCAF_10VachgRiragRR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVCAF_10VachgRiragRR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVCAF_10VachgRiragRR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVCAF_10VachgRiragRR16qb_zbir_onpxjneqRCiCXiz:
 nop
@@ -5468,7 +5468,7 @@
 b__MA7naqebvq12ZrffntrDhrhrQ1Ri:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_4yrffVF6_RRAF4_VF6_RRR7qrfgeblRCAF_11__gerr_abqrVF6_CiRR
+.weak b__MAFg3__16__gerrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_4yrffVF6_RRAF4_VF6_RRR7qrfgeblRCAF_11__gerr_abqrVF6_CiRR
 .type b__MAFg3__16__gerrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_4yrffVF6_RRAF4_VF6_RRR7qrfgeblRCAF_11__gerr_abqrVF6_CiRR,%function
 b__MAFg3__16__gerrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_4yrffVF6_RRAF4_VF6_RRR7qrfgeblRCAF_11__gerr_abqrVF6_CiRR:
 nop
@@ -5478,7 +5478,7 @@
 b__MA11TencuvpfWAV26uneqjnerYrtnplOvgzncPbasvtRi:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR7qb_pbclRCiCXiz:
 nop
@@ -5488,7 +5488,7 @@
 b__MA7naqebvq9WUjCnepryQ2Ri:
 nop
 .data
-.globl b__MGIA7naqebvq9vzt_hgvyf13GvssRagelVzcyVwRR
+.weak b__MGIA7naqebvq9vzt_hgvyf13GvssRagelVzcyVwRR
 .type b__MGIA7naqebvq9vzt_hgvyf13GvssRagelVzcyVwRR,%object
 b__MGIA7naqebvq9vzt_hgvyf13GvssRagelVzcyVwRR:
 .space __SIZEOF_POINTER__
@@ -5503,7 +5503,7 @@
 b__MA7naqebvq17WAVQrivprPnyyonpx19baNhqvbQrivprHcqngrRvv:
 nop
 .text
-.globl b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVwR7trgFvmrRi
+.weak b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVwR7trgFvmrRi
 .type b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVwR7trgFvmrRi,%function
 b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVwR7trgFvmrRi:
 nop
@@ -5523,12 +5523,12 @@
 b__MA7naqebvq10VachgDhrhr11svavfuRiragRCAF_10VachgRiragRo:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_11QvfcynlVasbRR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_11QvfcynlVasbRR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_11QvfcynlVasbRR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_11QvfcynlVasbRR16qb_zbir_onpxjneqRCiCXiz:
 nop
 .data
-.globl b__MGGA7naqebvq25AngvirErzbgrQvfcynlPyvragR
+.weak b__MGGA7naqebvq25AngvirErzbgrQvfcynlPyvragR
 .type b__MGGA7naqebvq25AngvirErzbgrQvfcynlPyvragR,%object
 b__MGGA7naqebvq25AngvirErzbgrQvfcynlPyvragR:
 .space __SIZEOF_POINTER__
@@ -5543,7 +5543,7 @@
 b__MAX7naqebvq15WUjErzbgrOvaqre21trgQrnguErpvcvragYvfgRi:
 nop
 .text
-.globl b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVwR9jevgrQngnRwCAF0_12RaqvnaBhgchgR
+.weak b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVwR9jevgrQngnRwCAF0_12RaqvnaBhgchgR
 .type b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVwR9jevgrQngnRwCAF0_12RaqvnaBhgchgR,%function
 b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVwR9jevgrQngnRwCAF0_12RaqvnaBhgchgR:
 nop
@@ -5558,7 +5558,7 @@
 b__MA7naqebvq39ertvfgre_naqebvq_hgvy_wne_FgevpgWneSvyrRC7_WAVRai:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_4yrffVF6_RRAF4_VF6_RRR12__svaq_rdhnyVF6_RRECAF_16__gerr_abqr_onfrVCiRRECAF_15__gerr_raq_abqrVFS_RREXG_
+.weak b__MAFg3__16__gerrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_4yrffVF6_RRAF4_VF6_RRR12__svaq_rdhnyVF6_RRECAF_16__gerr_abqr_onfrVCiRRECAF_15__gerr_raq_abqrVFS_RREXG_
 .type b__MAFg3__16__gerrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_4yrffVF6_RRAF4_VF6_RRR12__svaq_rdhnyVF6_RRECAF_16__gerr_abqr_onfrVCiRRECAF_15__gerr_raq_abqrVFS_RREXG_,%function
 b__MAFg3__16__gerrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_4yrffVF6_RRAF4_VF6_RRR12__svaq_rdhnyVF6_RRECAF_16__gerr_abqr_onfrVCiRRECAF_15__gerr_raq_abqrVFS_RREXG_:
 nop
@@ -5568,7 +5568,7 @@
 b__M41naqebvq_bf_Cebprff_erzbirNyyCebprffTebhcfC7_WAVRaiC8_wbowrpg:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_8NhqvbZvkRR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq6IrpgbeVAF_8NhqvbZvkRR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq6IrpgbeVAF_8NhqvbZvkRR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq6IrpgbeVAF_8NhqvbZvkRR10qb_qrfgeblRCiz:
 nop
@@ -5588,7 +5588,7 @@
 b__MA7naqebvq24AngvirVachgRiragErprvire16svavfuVachgRiragRwo:
 nop
 .data
-.globl b__MGIA7naqebvq11ZbgvbaRiragR
+.weak b__MGIA7naqebvq11ZbgvbaRiragR
 .type b__MGIA7naqebvq11ZbgvbaRiragR,%object
 b__MGIA7naqebvq11ZbgvbaRiragR:
 .space __SIZEOF_POINTER__
@@ -5598,47 +5598,47 @@
 b__MA7naqebvq16QryrgrFperrafubgRCiF0_:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_7Fgevat8RR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_7Fgevat8RR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_7Fgevat8RR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_7Fgevat8RR15qb_zbir_sbejneqRCiCXiz:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVvR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVvR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVvR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVvR15qb_zbir_sbejneqRCiCXiz:
 nop
 .data
-.globl b__MGIA7naqebvq6IrpgbeVCAF_6YbbcreRRR
+.weak b__MGIA7naqebvq6IrpgbeVCAF_6YbbcreRRR
 .type b__MGIA7naqebvq6IrpgbeVCAF_6YbbcreRRR,%object
 b__MGIA7naqebvq6IrpgbeVCAF_6YbbcreRRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_12QvfcynlFgngrRR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_12QvfcynlFgngrRR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_12QvfcynlFgngrRR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_12QvfcynlFgngrRR16qb_zbir_onpxjneqRCiCXiz:
 nop
 .data
-.globl b__MGIAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
+.weak b__MGIAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
 .type b__MGIAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR,%object
 b__MGIAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_7Fgevat8RR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_7Fgevat8RR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_7Fgevat8RR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_7Fgevat8RR8qb_fcyngRCiCXiz:
 nop
 .text
-.globl b__MAX7naqebvq9vzt_hgvyf10GvssJevgre10ohvyqRagelVwRRvgwCXG_CAF_2fcVAF0_9GvssRagelRRR
+.weak b__MAX7naqebvq9vzt_hgvyf10GvssJevgre10ohvyqRagelVwRRvgwCXG_CAF_2fcVAF0_9GvssRagelRRR
 .type b__MAX7naqebvq9vzt_hgvyf10GvssJevgre10ohvyqRagelVwRRvgwCXG_CAF_2fcVAF0_9GvssRagelRRR,%function
 b__MAX7naqebvq9vzt_hgvyf10GvssJevgre10ohvyqRagelVwRRvgwCXG_CAF_2fcVAF0_9GvssRagelRRR:
 nop
 .text
-.globl b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVgR7trgGlcrRi
+.weak b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVgR7trgGlcrRi
 .type b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVgR7trgGlcrRi,%function
 b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVgR7trgGlcrRi:
 nop
 .data
-.globl b__MGIA7naqebvq6IrpgbeVgRR
+.weak b__MGIA7naqebvq6IrpgbeVgRR
 .type b__MGIA7naqebvq6IrpgbeVgRR,%object
 b__MGIA7naqebvq6IrpgbeVgRR:
 .space __SIZEOF_POINTER__
@@ -5648,7 +5648,7 @@
 b__MA7naqebvq44ertvfgre_naqebvq_ivrj_VachgNccyvpngvbaUnaqyrRC7_WAVRai:
 nop
 .data
-.globl b__MGIA7naqebvq18PbagrkgSnpgbelVzcyR
+.weak b__MGIA7naqebvq18PbagrkgSnpgbelVzcyR
 .type b__MGIA7naqebvq18PbagrkgSnpgbelVzcyR,%object
 b__MGIA7naqebvq18PbagrkgSnpgbelVzcyR:
 .space __SIZEOF_POINTER__
@@ -5658,7 +5658,7 @@
 b__MA7naqebvq16RcurzrenyFgbentr25nyybpGrzcbenelVag64IrpgbeRC7_WAVRaiC11_wybatNeenl:
 nop
 .data
-.globl b__MGI22WninVachgFgernzNqncgbe
+.weak b__MGI22WninVachgFgernzNqncgbe
 .type b__MGI22WninVachgFgernzNqncgbe,%object
 b__MGI22WninVachgFgernzNqncgbe:
 .space __SIZEOF_POINTER__
@@ -5688,12 +5688,12 @@
 b__MA7naqebvq30ertvfgre_naqebvq_tencuvpf_CnguRC7_WAVRai:
 nop
 .text
-.globl b__MAFg3__16irpgbeVpAF_9nyybpngbeVpRRR6nffvtaVCpRRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVpAF_15vgrengbe_genvgfVF7_R9ersreraprRRR5inyhrRiR4glcrRF7_F7_
+.weak b__MAFg3__16irpgbeVpAF_9nyybpngbeVpRRR6nffvtaVCpRRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVpAF_15vgrengbe_genvgfVF7_R9ersreraprRRR5inyhrRiR4glcrRF7_F7_
 .type b__MAFg3__16irpgbeVpAF_9nyybpngbeVpRRR6nffvtaVCpRRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVpAF_15vgrengbe_genvgfVF7_R9ersreraprRRR5inyhrRiR4glcrRF7_F7_,%function
 b__MAFg3__16irpgbeVpAF_9nyybpngbeVpRRR6nffvtaVCpRRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVpAF_15vgrengbe_genvgfVF7_R9ersreraprRRR5inyhrRiR4glcrRF7_F7_:
 nop
 .data
-.globl b__MGIA7naqebvq10hveraqrere24CebcreglInyhrfUbyqreVzcyVAF0_14IrpgbeQenjnoyr4Cngu4QngnRRR
+.weak b__MGIA7naqebvq10hveraqrere24CebcreglInyhrfUbyqreVzcyVAF0_14IrpgbeQenjnoyr4Cngu4QngnRRR
 .type b__MGIA7naqebvq10hveraqrere24CebcreglInyhrfUbyqreVzcyVAF0_14IrpgbeQenjnoyr4Cngu4QngnRRR,%object
 b__MGIA7naqebvq10hveraqrere24CebcreglInyhrfUbyqreVzcyVAF0_14IrpgbeQenjnoyr4Cngu4QngnRRR:
 .space __SIZEOF_POINTER__
@@ -5708,7 +5708,7 @@
 b__MA7naqebvq4zvqv18tSvqZvqvQrivprVasbR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq9vzt_hgvyf13GvssRagelVzcyVwRQ0Ri
+.weak b__MA7naqebvq9vzt_hgvyf13GvssRagelVzcyVwRQ0Ri
 .type b__MA7naqebvq9vzt_hgvyf13GvssRagelVzcyVwRQ0Ri,%function
 b__MA7naqebvq9vzt_hgvyf13GvssRagelVzcyVwRQ0Ri:
 nop
@@ -5723,12 +5723,12 @@
 b__MA20NfuzrzCvkryNyybpngbeP1RC7_WAVRai:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_10havdhr_cgeV14FpbcrqHgsPunefAF_14qrsnhyg_qryrgrVF2_RRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_
+.weak b__MAFg3__16irpgbeVAF_10havdhr_cgeV14FpbcrqHgsPunefAF_14qrsnhyg_qryrgrVF2_RRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_
 .type b__MAFg3__16irpgbeVAF_10havdhr_cgeV14FpbcrqHgsPunefAF_14qrsnhyg_qryrgrVF2_RRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_,%function
 b__MAFg3__16irpgbeVAF_10havdhr_cgeV14FpbcrqHgsPunefAF_14qrsnhyg_qryrgrVF2_RRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_:
 nop
 .text
-.globl b__MAFg3__16irpgbeV11fbpx_svygreAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVEXF1_RRiBG_
+.weak b__MAFg3__16irpgbeV11fbpx_svygreAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVEXF1_RRiBG_
 .type b__MAFg3__16irpgbeV11fbpx_svygreAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVEXF1_RRiBG_,%function
 b__MAFg3__16irpgbeV11fbpx_svygreAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVEXF1_RRiBG_:
 nop
@@ -5763,12 +5763,12 @@
 b__MAX7naqebvq7WUjOybo21jevgrFhoOybofGbCnepryRCAF_8uneqjner6CnepryRz:
 nop
 .data
-.globl b__MGI18FxWninBhgchgFgernz
+.weak b__MGI18FxWninBhgchgFgernz
 .type b__MGI18FxWninBhgchgFgernz,%object
 b__MGI18FxWninBhgchgFgernz:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVC27nhqvberpbeq_pnyyonpx_pbbxvrR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVC27nhqvberpbeq_pnyyonpx_pbbxvrR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVC27nhqvberpbeq_pnyyonpx_pbbxvrR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVC27nhqvberpbeq_pnyyonpx_pbbxvrR7qb_pbclRCiCXiz:
 nop
@@ -5803,7 +5803,7 @@
 b__MA7naqebvq27WAVNhqvbIbyhzrTebhcPnyyonpxQ2Ri:
 nop
 .text
-.globl b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVqR18trgPbzcnenoyrInyhrRi
+.weak b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVqR18trgPbzcnenoyrInyhrRi
 .type b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVqR18trgPbzcnenoyrInyhrRi,%function
 b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVqR18trgPbzcnenoyrInyhrRi:
 nop
@@ -5818,12 +5818,12 @@
 b__MAX7naqebvq7Cvpgher9frevnyvmrRC9FxJFgernz:
 nop
 .data
-.globl b__MGIA7naqebvq15WUjOvaqreUbyqreR
+.weak b__MGIA7naqebvq15WUjOvaqreUbyqreR
 .type b__MGIA7naqebvq15WUjOvaqreUbyqreR,%object
 b__MGIA7naqebvq15WUjOvaqreUbyqreR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_8Fgevat16RuRRR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_8Fgevat16RuRRR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_8Fgevat16RuRRR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_8Fgevat16RuRRR12qb_pbafgehpgRCiz:
 nop
@@ -5833,7 +5833,7 @@
 b__MA15WavBhgchgFgernz5jevgrRCXuzz:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwwRRAF_22__habeqrerq_znc_unfureVwF2_AF_4unfuVwRRYo1RRRAF_21__habeqrerq_znc_rdhnyVwF2_AF_8rdhny_gbVwRRYo1RRRAF_9nyybpngbeVF2_RRR25__rzcynpr_havdhr_xrl_netfVwWEwFS_RRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF2_CiRRRRoRREXG_QcBG0_
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwwRRAF_22__habeqrerq_znc_unfureVwF2_AF_4unfuVwRRYo1RRRAF_21__habeqrerq_znc_rdhnyVwF2_AF_8rdhny_gbVwRRYo1RRRAF_9nyybpngbeVF2_RRR25__rzcynpr_havdhr_xrl_netfVwWEwFS_RRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF2_CiRRRRoRREXG_QcBG0_
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwwRRAF_22__habeqrerq_znc_unfureVwF2_AF_4unfuVwRRYo1RRRAF_21__habeqrerq_znc_rdhnyVwF2_AF_8rdhny_gbVwRRYo1RRRAF_9nyybpngbeVF2_RRR25__rzcynpr_havdhr_xrl_netfVwWEwFS_RRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF2_CiRRRRoRREXG_QcBG0_,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwwRRAF_22__habeqrerq_znc_unfureVwF2_AF_4unfuVwRRYo1RRRAF_21__habeqrerq_znc_rdhnyVwF2_AF_8rdhny_gbVwRRYo1RRRAF_9nyybpngbeVF2_RRR25__rzcynpr_havdhr_xrl_netfVwWEwFS_RRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF2_CiRRRRoRREXG_QcBG0_:
 nop
@@ -5843,7 +5843,7 @@
 b_QTvsTrgRkgrafvbaArkg:
 nop
 .data
-.globl b__MGIA7naqebvq6IrpgbeVAF_13CbvagrePbbeqfRRR
+.weak b__MGIA7naqebvq6IrpgbeVAF_13CbvagrePbbeqfRRR
 .type b__MGIA7naqebvq6IrpgbeVAF_13CbvagrePbbeqfRRR,%object
 b__MGIA7naqebvq6IrpgbeVAF_13CbvagrePbbeqfRRR:
 .space __SIZEOF_POINTER__
@@ -5853,7 +5853,7 @@
 b__MA7naqebvq9WUjCnepry9ArjBowrpgRC7_WAVRai:
 nop
 .data
-.globl b__MGGAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
+.weak b__MGGAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
 .type b__MGGAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR,%object
 b__MGGAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR:
 .space __SIZEOF_POINTER__
@@ -5863,12 +5863,12 @@
 b__MA13AngvirPbagrkg10frgTcfQngnREX7TcfQngn:
 nop
 .text
-.globl b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVuR7trgGlcrRi
+.weak b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVuR7trgGlcrRi
 .type b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVuR7trgGlcrRi,%function
 b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVuR7trgGlcrRi:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvC18SvyrQrfpevcgbeVasbRRAF_22__habeqrerq_znc_unfureVvF4_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF4_AF_8rdhny_gbVvRRYo1RRRAF_9nyybpngbeVF4_RRR8__erunfuRz
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvC18SvyrQrfpevcgbeVasbRRAF_22__habeqrerq_znc_unfureVvF4_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF4_AF_8rdhny_gbVvRRYo1RRRAF_9nyybpngbeVF4_RRR8__erunfuRz
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvC18SvyrQrfpevcgbeVasbRRAF_22__habeqrerq_znc_unfureVvF4_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF4_AF_8rdhny_gbVvRRYo1RRRAF_9nyybpngbeVF4_RRR8__erunfuRz,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvC18SvyrQrfpevcgbeVasbRRAF_22__habeqrerq_znc_unfureVvF4_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF4_AF_8rdhny_gbVvRRYo1RRRAF_9nyybpngbeVF4_RRR8__erunfuRz:
 nop
@@ -5878,7 +5878,7 @@
 b__MA7naqebvq32ertvfgre_naqebvq_bf_FunerqZrzbelRC7_WAVRai:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVCAF_10VachgRiragRR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVCAF_10VachgRiragRR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVCAF_10VachgRiragRR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVCAF_10VachgRiragRR8qb_fcyngRCiCXiz:
 nop
@@ -5888,7 +5888,7 @@
 b__MA7naqebvq16RcurzrenyFgbentrQ1Ri:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_10havdhr_cgeVA7zvavxva3EhaRAF_14qrsnhyg_qryrgrVF3_RRRRAF_9nyybpngbeVF6_RRR24__rzcynpr_onpx_fybj_cnguVWAF1_VAF2_14ErcynprzragEhaRAF4_VFO_RRRRRRRiQcBG_
+.weak b__MAFg3__16irpgbeVAF_10havdhr_cgeVA7zvavxva3EhaRAF_14qrsnhyg_qryrgrVF3_RRRRAF_9nyybpngbeVF6_RRR24__rzcynpr_onpx_fybj_cnguVWAF1_VAF2_14ErcynprzragEhaRAF4_VFO_RRRRRRRiQcBG_
 .type b__MAFg3__16irpgbeVAF_10havdhr_cgeVA7zvavxva3EhaRAF_14qrsnhyg_qryrgrVF3_RRRRAF_9nyybpngbeVF6_RRR24__rzcynpr_onpx_fybj_cnguVWAF1_VAF2_14ErcynprzragEhaRAF4_VFO_RRRRRRRiQcBG_,%function
 b__MAFg3__16irpgbeVAF_10havdhr_cgeVA7zvavxva3EhaRAF_14qrsnhyg_qryrgrVF3_RRRRAF_9nyybpngbeVF6_RRR24__rzcynpr_onpx_fybj_cnguVWAF1_VAF2_14ErcynprzragEhaRAF4_VFO_RRRRRRRiQcBG_:
 nop
@@ -5918,7 +5918,7 @@
 b__MA7naqebvq23AngvirVachgJvaqbjUnaqyr31trgVachgJvaqbjUnaqyrBowYbpnyErsRC7_WAVRai:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVwR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVwR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVwR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVwR16qb_zbir_onpxjneqRCiCXiz:
 nop
@@ -5933,7 +5933,7 @@
 b__M21cbfgCebprffNaqEryrnfrC7_WAVRaiC8_wbowrpgAFg3__110havdhr_cgeVA7naqebvq6PnainfRAF3_14qrsnhyg_qryrgrVF6_RRRR:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVqR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVqR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVqR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVqR15qb_zbir_sbejneqRCiCXiz:
 nop
@@ -5953,7 +5953,7 @@
 b__MA15WavBhgchgFgernzQ2Ri:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVzAF_10havdhr_cgeV14FpbcrqYbpnyErsVC11_wolgrNeenlRAF_14qrsnhyg_qryrgrVF6_RRRRRRAF_19__znc_inyhr_pbzcnerVzFN_AF_4yrffVzRRYo1RRRAF_9nyybpngbeVFN_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFN_CAF_11__gerr_abqrVFN_CiRRyRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVzAF_10havdhr_cgeV14FpbcrqYbpnyErsVC11_wolgrNeenlRAF_14qrsnhyg_qryrgrVF6_RRRRRRAF_19__znc_inyhr_pbzcnerVzFN_AF_4yrffVzRRYo1RRRAF_9nyybpngbeVFN_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFN_CAF_11__gerr_abqrVFN_CiRRyRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVzAF_10havdhr_cgeV14FpbcrqYbpnyErsVC11_wolgrNeenlRAF_14qrsnhyg_qryrgrVF6_RRRRRRAF_19__znc_inyhr_pbzcnerVzFN_AF_4yrffVzRRYo1RRRAF_9nyybpngbeVFN_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFN_CAF_11__gerr_abqrVFN_CiRRyRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVzAF_10havdhr_cgeV14FpbcrqYbpnyErsVC11_wolgrNeenlRAF_14qrsnhyg_qryrgrVF6_RRRRRRAF_19__znc_inyhr_pbzcnerVzFN_AF_4yrffVzRRYo1RRRAF_9nyybpngbeVFN_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFN_CAF_11__gerr_abqrVFN_CiRRyRR:
 nop
@@ -5988,7 +5988,7 @@
 b__MA7naqebvq26AngvirQvfcynlRiragErprvire7qvfcbfrRi:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_8uneqjner8tencuvpf6pbzzba4I1_29PbybeZbqrRR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_8uneqjner8tencuvpf6pbzzba4I1_29PbybeZbqrRR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_8uneqjner8tencuvpf6pbzzba4I1_29PbybeZbqrRR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_8uneqjner8tencuvpf6pbzzba4I1_29PbybeZbqrRR7qb_pbclRCiCXiz:
 nop
@@ -6018,7 +6018,7 @@
 b__MA20WAVNhqvbCbegPnyyonpxQ0Ri:
 nop
 .text
-.globl b__MAFg3__110__shapgvba6__shapVAF_6__ovaqVESiC7_WAVRaiCXpC8_wfgevatEXAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRRWEF4_F6_QaEXAF_12cynprubyqref4__cuVYv1RRRRRRAFP_VFC_RRSiFR_RRpyRBFR_
+.weak b__MAFg3__110__shapgvba6__shapVAF_6__ovaqVESiC7_WAVRaiCXpC8_wfgevatEXAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRRWEF4_F6_QaEXAF_12cynprubyqref4__cuVYv1RRRRRRAFP_VFC_RRSiFR_RRpyRBFR_
 .type b__MAFg3__110__shapgvba6__shapVAF_6__ovaqVESiC7_WAVRaiCXpC8_wfgevatEXAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRRWEF4_F6_QaEXAF_12cynprubyqref4__cuVYv1RRRRRRAFP_VFC_RRSiFR_RRpyRBFR_,%function
 b__MAFg3__110__shapgvba6__shapVAF_6__ovaqVESiC7_WAVRaiCXpC8_wfgevatEXAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRRWEF4_F6_QaEXAF_12cynprubyqref4__cuVYv1RRRRRRAFP_VFC_RRSiFR_RRpyRBFR_:
 nop
@@ -6043,7 +6043,7 @@
 b__MA11TencuvpfWAV9frg_werpgRC7_WAVRaiC8_wbowrpgvvvv:
 nop
 .data
-.globl b__MGPA7naqebvq25AngvirErzbgrQvfcynlPyvragR0_AF_20VErzbgrQvfcynlPyvragR
+.weak b__MGPA7naqebvq25AngvirErzbgrQvfcynlPyvragR0_AF_20VErzbgrQvfcynlPyvragR
 .type b__MGPA7naqebvq25AngvirErzbgrQvfcynlPyvragR0_AF_20VErzbgrQvfcynlPyvragR,%object
 b__MGPA7naqebvq25AngvirErzbgrQvfcynlPyvragR0_AF_20VErzbgrQvfcynlPyvragR:
 .space __SIZEOF_POINTER__
@@ -6053,7 +6053,7 @@
 b__MA16WAVPnzrenPbagrkg17trgPnyyonpxOhssreRC7_WAVRaiCA7naqebvq6IrpgbeVC11_wolgrNeenlRRz:
 nop
 .text
-.globl b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVuR12jevgrGntVasbRwCAF0_12RaqvnaBhgchgR
+.weak b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVuR12jevgrGntVasbRwCAF0_12RaqvnaBhgchgR
 .type b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVuR12jevgrGntVasbRwCAF0_12RaqvnaBhgchgR,%function
 b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVuR12jevgrGntVasbRwCAF0_12RaqvnaBhgchgR:
 nop
@@ -6073,12 +6073,12 @@
 b__MGi0_a24_A7naqebvq18AngvirZrffntrDhrhrQ1Ri:
 nop
 .data
-.globl b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_8Fgevat16RuRRRR
+.weak b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_8Fgevat16RuRRRR
 .type b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_8Fgevat16RuRRRR,%object
 b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_8Fgevat16RuRRRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq9vzt_hgvyf10GvssJevgre10ohvyqRagelVgRRvgwCXG_CAF_2fcVAF0_9GvssRagelRRR
+.weak b__MAX7naqebvq9vzt_hgvyf10GvssJevgre10ohvyqRagelVgRRvgwCXG_CAF_2fcVAF0_9GvssRagelRRR
 .type b__MAX7naqebvq9vzt_hgvyf10GvssJevgre10ohvyqRagelVgRRvgwCXG_CAF_2fcVAF0_9GvssRagelRRR,%function
 b__MAX7naqebvq9vzt_hgvyf10GvssJevgre10ohvyqRagelVgRRvgwCXG_CAF_2fcVAF0_9GvssRagelRRR:
 nop
@@ -6108,12 +6108,12 @@
 b__MGG16WAVPnzrenPbagrkg:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIA7naqebvq6IrpgbeVuRR
+.weak b__MGIA7naqebvq6IrpgbeVuRR
 .type b__MGIA7naqebvq6IrpgbeVuRR,%object
 b__MGIA7naqebvq6IrpgbeVuRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq6IrpgbeVC11_wolgrNeenlR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVC11_wolgrNeenlR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVC11_wolgrNeenlR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVC11_wolgrNeenlR16qb_zbir_onpxjneqRCiCXiz:
 nop
@@ -6123,12 +6123,12 @@
 b__M32ertvfgre_naqebvq_tencuvpf_OvgzncC7_WAVRai:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_11QvfcynlVasbRR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_11QvfcynlVasbRR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_11QvfcynlVasbRR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_11QvfcynlVasbRR7qb_pbclRCiCXiz:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVgR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVgR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVgR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVgR15qb_zbir_sbejneqRCiCXiz:
 nop
@@ -6143,7 +6143,7 @@
 b__MA5Zbivr12QrpbqrFgernzRC18FxFgernzErjvaqnoyr:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR16qb_zbir_onpxjneqRCiCXiz:
 nop
@@ -6173,12 +6173,12 @@
 b__MA7naqebvq9WUjCnepryQ1Ri:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR8qb_fcyngRCiCXiz:
 nop
 .data
-.globl b__MGIA7naqebvq9vzt_hgvyf13GvssRagelVzcyVvRR
+.weak b__MGIA7naqebvq9vzt_hgvyf13GvssRagelVzcyVvRR
 .type b__MGIA7naqebvq9vzt_hgvyf13GvssRagelVzcyVvRR,%object
 b__MGIA7naqebvq9vzt_hgvyf13GvssRagelVzcyVvRR:
 .space __SIZEOF_POINTER__
@@ -6188,7 +6188,7 @@
 b__MA7naqebvq26ertvfgre_naqebvq_bf_UjOyboRC7_WAVRai:
 nop
 .text
-.globl b__MAFg3__16irpgbeVsAF_9nyybpngbeVsRRR21__chfu_onpx_fybj_cnguVEXsRRiBG_
+.weak b__MAFg3__16irpgbeVsAF_9nyybpngbeVsRRR21__chfu_onpx_fybj_cnguVEXsRRiBG_
 .type b__MAFg3__16irpgbeVsAF_9nyybpngbeVsRRR21__chfu_onpx_fybj_cnguVEXsRRiBG_,%function
 b__MAFg3__16irpgbeVsAF_9nyybpngbeVsRRR21__chfu_onpx_fybj_cnguVEXsRRiBG_:
 nop
@@ -6203,7 +6203,7 @@
 b__MGI31ErplpyvatPyvccvatCvkryNyybpngbe:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVC26nhqvbgenpx_pnyyonpx_pbbxvrR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVC26nhqvbgenpx_pnyyonpx_pbbxvrR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVC26nhqvbgenpx_pnyyonpx_pbbxvrR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVC26nhqvbgenpx_pnyyonpx_pbbxvrR10qb_qrfgeblRCiz:
 nop
@@ -6218,12 +6218,12 @@
 b__MA7naqebvq22AngvirVachgRiragFraqre10vavgvnyvmrRi:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVC27nhqvberpbeq_pnyyonpx_pbbxvrR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVC27nhqvberpbeq_pnyyonpx_pbbxvrR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVC27nhqvberpbeq_pnyyonpx_pbbxvrR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVC27nhqvberpbeq_pnyyonpx_pbbxvrR16qb_zbir_onpxjneqRCiCXiz:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVA7naqebvq2fcVAF1_7VOvaqreRRRAF1_16VFhesnprPbzcbfre6FcUnfuVF3_RRAF_8rdhny_gbVF4_RRAF_9nyybpngbeVF4_RRR6erunfuRz
+.weak b__MAFg3__112__unfu_gnoyrVA7naqebvq2fcVAF1_7VOvaqreRRRAF1_16VFhesnprPbzcbfre6FcUnfuVF3_RRAF_8rdhny_gbVF4_RRAF_9nyybpngbeVF4_RRR6erunfuRz
 .type b__MAFg3__112__unfu_gnoyrVA7naqebvq2fcVAF1_7VOvaqreRRRAF1_16VFhesnprPbzcbfre6FcUnfuVF3_RRAF_8rdhny_gbVF4_RRAF_9nyybpngbeVF4_RRR6erunfuRz,%function
 b__MAFg3__112__unfu_gnoyrVA7naqebvq2fcVAF1_7VOvaqreRRRAF1_16VFhesnprPbzcbfre6FcUnfuVF3_RRAF_8rdhny_gbVF4_RRAF_9nyybpngbeVF4_RRR6erunfuRz:
 nop
@@ -6238,7 +6238,7 @@
 b__M17trg_angvir_pnzrenC7_WAVRaiC8_wbowrpgCC16WAVPnzrenPbagrkg:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVuR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq6IrpgbeVuR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq6IrpgbeVuR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq6IrpgbeVuR12qb_pbafgehpgRCiz:
 nop
@@ -6258,17 +6258,17 @@
 b__MGGA7naqebvq24AngvirVachgRiragErprvireR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq2fcVAF_11NhqvbErpbeqRRnFRCF1_
+.weak b__MA7naqebvq2fcVAF_11NhqvbErpbeqRRnFRCF1_
 .type b__MA7naqebvq2fcVAF_11NhqvbErpbeqRRnFRCF1_,%function
 b__MA7naqebvq2fcVAF_11NhqvbErpbeqRRnFRCF1_:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVqR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVqR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVqR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVqR7qb_pbclRCiCXiz:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVwR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq6IrpgbeVwR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq6IrpgbeVwR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq6IrpgbeVwR10qb_qrfgeblRCiz:
 nop
@@ -6283,7 +6283,7 @@
 b__MA7naqebvq24WAVFhesnprGrkgherPbagrkgP2RC7_WAVRaiC8_wbowrpgC7_wpynff:
 nop
 .data
-.globl b__MGIA7naqebvq25AngvirErzbgrQvfcynlPyvragR
+.weak b__MGIA7naqebvq25AngvirErzbgrQvfcynlPyvragR
 .type b__MGIA7naqebvq25AngvirErzbgrQvfcynlPyvragR,%object
 b__MGIA7naqebvq25AngvirErzbgrQvfcynlPyvragR:
 .space __SIZEOF_POINTER__
@@ -6293,7 +6293,7 @@
 b__MA7naqebvq36ertvfgre_naqebvq_ivrj_FhesnprFrffvbaRC7_WAVRai:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_24AngvirVachgRiragErprvire6SvavfuRR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_24AngvirVachgRiragErprvire6SvavfuRR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_24AngvirVachgRiragErprvire6SvavfuRR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_24AngvirVachgRiragErprvire6SvavfuRR7qb_pbclRCiCXiz:
 nop
@@ -6303,7 +6303,7 @@
 b__M10qbGuebjVFRC7_WAVRaiCXp:
 nop
 .data
-.globl b__MGIA7naqebvq12FbegrqIrpgbeVC27nhqvberpbeq_pnyyonpx_pbbxvrRR
+.weak b__MGIA7naqebvq12FbegrqIrpgbeVC27nhqvberpbeq_pnyyonpx_pbbxvrRR
 .type b__MGIA7naqebvq12FbegrqIrpgbeVC27nhqvberpbeq_pnyyonpx_pbbxvrRR,%object
 b__MGIA7naqebvq12FbegrqIrpgbeVC27nhqvberpbeq_pnyyonpx_pbbxvrRR:
 .space __SIZEOF_POINTER__
@@ -6318,7 +6318,7 @@
 b__M34ertvfgre_naqebvq_tencuvpf_GlcrsnprC7_WAVRai:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVC14FpbcrqHgsPunefR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVC14FpbcrqHgsPunefR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVC14FpbcrqHgsPunefR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVC14FpbcrqHgsPunefR7qb_pbclRCiCXiz:
 nop
@@ -6328,12 +6328,12 @@
 b__MA7naqebvq20IrybpvglGenpxreFgngrP2RCXp:
 nop
 .text
-.globl b__MAFg3__114__fcyvg_ohssreVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRREAF4_VF6_RRR9chfu_onpxRBF6_
+.weak b__MAFg3__114__fcyvg_ohssreVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRREAF4_VF6_RRR9chfu_onpxRBF6_
 .type b__MAFg3__114__fcyvg_ohssreVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRREAF4_VF6_RRR9chfu_onpxRBF6_,%function
 b__MAFg3__114__fcyvg_ohssreVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRREAF4_VF6_RRR9chfu_onpxRBF6_:
 nop
 .data
-.globl b__MGIA7naqebvq9vzt_hgvyf13GvssRagelVzcyVgRR
+.weak b__MGIA7naqebvq9vzt_hgvyf13GvssRagelVzcyVgRR
 .type b__MGIA7naqebvq9vzt_hgvyf13GvssRagelVzcyVgRR,%object
 b__MGIA7naqebvq9vzt_hgvyf13GvssRagelVzcyVgRR:
 .space __SIZEOF_POINTER__
@@ -6348,7 +6348,7 @@
 b__MA7naqebvq22AngvirVachgRiragFraqreQ0Ri:
 nop
 .data
-.globl b__MGP11WninOOvaqre0_A7naqebvq7VOvaqreR
+.weak b__MGP11WninOOvaqre0_A7naqebvq7VOvaqreR
 .type b__MGP11WninOOvaqre0_A7naqebvq7VOvaqreR,%object
 b__MGP11WninOOvaqre0_A7naqebvq7VOvaqreR:
 .space __SIZEOF_POINTER__
@@ -6373,7 +6373,7 @@
 b__M36naqebvq_bf_Cebprff_trgRkpyhfvirPberfC7_WAVRaiC8_wbowrpg:
 nop
 .text
-.globl b__MAFg3__16irpgbeVCA7naqebvq10CntrErpbeqRAF_9nyybpngbeVF3_RRR21__chfu_onpx_fybj_cnguVEXF3_RRiBG_
+.weak b__MAFg3__16irpgbeVCA7naqebvq10CntrErpbeqRAF_9nyybpngbeVF3_RRR21__chfu_onpx_fybj_cnguVEXF3_RRiBG_
 .type b__MAFg3__16irpgbeVCA7naqebvq10CntrErpbeqRAF_9nyybpngbeVF3_RRR21__chfu_onpx_fybj_cnguVEXF3_RRiBG_,%function
 b__MAFg3__16irpgbeVCA7naqebvq10CntrErpbeqRAF_9nyybpngbeVF3_RRR21__chfu_onpx_fybj_cnguVEXF3_RRiBG_:
 nop
@@ -6403,7 +6403,7 @@
 b_tBcgvbaf_pbybeFcnprSvryqVQ:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq6IrpgbeVuR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVuR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVuR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVuR8qb_fcyngRCiCXiz:
 nop
@@ -6428,7 +6428,7 @@
 b__M13qbGuebjNVBBORC7_WAVRai:
 nop
 .data
-.globl b__MGIA7naqebvq21FhesnprPbzcbfrePyvrag11GenafnpgvbaR
+.weak b__MGIA7naqebvq21FhesnprPbzcbfrePyvrag11GenafnpgvbaR
 .type b__MGIA7naqebvq21FhesnprPbzcbfrePyvrag11GenafnpgvbaR,%object
 b__MGIA7naqebvq21FhesnprPbzcbfrePyvrag11GenafnpgvbaR:
 .space __SIZEOF_POINTER__
@@ -6468,7 +6468,7 @@
 b__MA14WavVachgFgernzP1RC7_WAVRaiC8_wbowrpg:
 nop
 .text
-.globl b__MAX7naqebvq9vzt_hgvyf10GvssJevgre10ohvyqRagelVvRRvgwCXG_CAF_2fcVAF0_9GvssRagelRRR
+.weak b__MAX7naqebvq9vzt_hgvyf10GvssJevgre10ohvyqRagelVvRRvgwCXG_CAF_2fcVAF0_9GvssRagelRRR
 .type b__MAX7naqebvq9vzt_hgvyf10GvssJevgre10ohvyqRagelVvRRvgwCXG_CAF_2fcVAF0_9GvssRagelRRR,%function
 b__MAX7naqebvq9vzt_hgvyf10GvssJevgre10ohvyqRagelVvRRvgwCXG_CAF_2fcVAF0_9GvssRagelRRR:
 nop
@@ -6478,12 +6478,12 @@
 b__MA7naqebvq10VachgDhrhr12qrgnpuYbbcreRi:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_22NhqvbZvkZngpuPevgrevbaRR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_22NhqvbZvkZngpuPevgrevbaRR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_22NhqvbZvkZngpuPevgrevbaRR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_22NhqvbZvkZngpuPevgrevbaRR16qb_zbir_onpxjneqRCiCXiz:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_13CbvagrePbbeqfRR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_13CbvagrePbbeqfRR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_13CbvagrePbbeqfRR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_13CbvagrePbbeqfRR8qb_fcyngRCiCXiz:
 nop
@@ -6498,7 +6498,7 @@
 b_tBcgvbaf_bhgPbybeFcnprSvryqVQ:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_22NhqvbZvkZngpuPevgrevbaRR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_22NhqvbZvkZngpuPevgrevbaRR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_22NhqvbZvkZngpuPevgrevbaRR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_22NhqvbZvkZngpuPevgrevbaRR15qb_zbir_sbejneqRCiCXiz:
 nop
@@ -6513,7 +6513,7 @@
 b__M42naqebvq_bf_Cebprff_frgGuernqTebhcNaqPchfrgC7_WAVRaiC8_wbowrpgvv:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVC11_wolgrNeenlR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVC11_wolgrNeenlR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVC11_wolgrNeenlR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVC11_wolgrNeenlR8qb_fcyngRCiCXiz:
 nop
@@ -6543,7 +6543,7 @@
 b__MA15WavBhgchgFgernzQ1Ri:
 nop
 .text
-.globl b__MAFg3__16__gerrVA7naqebvq2fcVAF1_10hveraqrere25CebcreglInyhrfNavzngbeFrgRRRAF_4yrffVF5_RRAF_9nyybpngbeVF5_RRR12__svaq_rdhnyVF5_RRECAF_16__gerr_abqr_onfrVCiRRAF_21__gerr_pbafg_vgrengbeVF5_CAF_11__gerr_abqrVF5_FQ_RRyRRECAF_15__gerr_raq_abqrVFS_RRFT_EXG_
+.weak b__MAFg3__16__gerrVA7naqebvq2fcVAF1_10hveraqrere25CebcreglInyhrfNavzngbeFrgRRRAF_4yrffVF5_RRAF_9nyybpngbeVF5_RRR12__svaq_rdhnyVF5_RRECAF_16__gerr_abqr_onfrVCiRRAF_21__gerr_pbafg_vgrengbeVF5_CAF_11__gerr_abqrVF5_FQ_RRyRRECAF_15__gerr_raq_abqrVFS_RRFT_EXG_
 .type b__MAFg3__16__gerrVA7naqebvq2fcVAF1_10hveraqrere25CebcreglInyhrfNavzngbeFrgRRRAF_4yrffVF5_RRAF_9nyybpngbeVF5_RRR12__svaq_rdhnyVF5_RRECAF_16__gerr_abqr_onfrVCiRRAF_21__gerr_pbafg_vgrengbeVF5_CAF_11__gerr_abqrVF5_FQ_RRyRRECAF_15__gerr_raq_abqrVFS_RRFT_EXG_,%function
 b__MAFg3__16__gerrVA7naqebvq2fcVAF1_10hveraqrere25CebcreglInyhrfNavzngbeFrgRRRAF_4yrffVF5_RRAF_9nyybpngbeVF5_RRR12__svaq_rdhnyVF5_RRECAF_16__gerr_abqr_onfrVCiRRAF_21__gerr_pbafg_vgrengbeVF5_CAF_11__gerr_abqrVF5_FQ_RRyRRECAF_15__gerr_raq_abqrVFS_RRFT_EXG_:
 nop
@@ -6558,7 +6558,7 @@
 b__MA7naqebvq23WAVNhqvbNggevohgrUrycre12trgWninNeenlRC7_WAVRaiCC13_wbowrpgNeenlv:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVgR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq6IrpgbeVgR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq6IrpgbeVgR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq6IrpgbeVgR10qb_qrfgeblRCiz:
 nop
@@ -6573,7 +6573,7 @@
 b_TvsZnxrFnirqVzntr:
 nop
 .data
-.globl b__MGGAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
+.weak b__MGGAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
 .type b__MGGAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR,%object
 b__MGGAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR:
 .space __SIZEOF_POINTER__
@@ -6583,17 +6583,17 @@
 b__M32naqebvq_bf_Cebprff_trgTvqSbeAnzrC7_WAVRaiC8_wbowrpgC8_wfgevat:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR15qb_zbir_sbejneqRCiCXiz:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVCAF_10VachgRiragRR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq6IrpgbeVCAF_10VachgRiragRR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq6IrpgbeVCAF_10VachgRiragRR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq6IrpgbeVCAF_10VachgRiragRR10qb_qrfgeblRCiz:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVqR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq6IrpgbeVqR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq6IrpgbeVqR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq6IrpgbeVqR10qb_qrfgeblRCiz:
 nop
@@ -6603,7 +6603,7 @@
 b__M33naqebvq_bf_Cebprff_frgGuernqTebhcC7_WAVRaiC8_wbowrpgvv:
 nop
 .data
-.globl b__MGIAFg3__120__funerq_cge_rzcynprVA7zvavxva10SbagSnzvylRAF_9nyybpngbeVF2_RRRR
+.weak b__MGIAFg3__120__funerq_cge_rzcynprVA7zvavxva10SbagSnzvylRAF_9nyybpngbeVF2_RRRR
 .type b__MGIAFg3__120__funerq_cge_rzcynprVA7zvavxva10SbagSnzvylRAF_9nyybpngbeVF2_RRRR,%object
 b__MGIAFg3__120__funerq_cge_rzcynprVA7zvavxva10SbagSnzvylRAF_9nyybpngbeVF2_RRRR:
 .space __SIZEOF_POINTER__
@@ -6613,7 +6613,7 @@
 b_QTvsBcraSvyrAnzr:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_7WUjOybo8OyboVasbRR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_7WUjOybo8OyboVasbRR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_7WUjOybo8OyboVasbRR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_7WUjOybo8OyboVasbRR15qb_zbir_sbejneqRCiCXiz:
 nop
@@ -6633,17 +6633,17 @@
 b__MGi0_a24_A7naqebvq18AngvirZrffntrDhrhrQ0Ri:
 nop
 .text
-.globl b__MA7naqebvq9vzt_hgvyf10GvssJevgre8nqqRagelVvRRvgwCXG_w
+.weak b__MA7naqebvq9vzt_hgvyf10GvssJevgre8nqqRagelVvRRvgwCXG_w
 .type b__MA7naqebvq9vzt_hgvyf10GvssJevgre8nqqRagelVvRRvgwCXG_w,%function
 b__MA7naqebvq9vzt_hgvyf10GvssJevgre8nqqRagelVvRRvgwCXG_w:
 nop
 .text
-.globl b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVgR12jevgrGntVasbRwCAF0_12RaqvnaBhgchgR
+.weak b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVgR12jevgrGntVasbRwCAF0_12RaqvnaBhgchgR
 .type b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVgR12jevgrGntVasbRwCAF0_12RaqvnaBhgchgR,%function
 b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVgR12jevgrGntVasbRwCAF0_12RaqvnaBhgchgR:
 nop
 .data
-.globl b__MGIAFg3__120__funerq_cge_rzcynprVA7naqebvq14PnzrenZrgnqngnRAF_9nyybpngbeVF2_RRRR
+.weak b__MGIAFg3__120__funerq_cge_rzcynprVA7naqebvq14PnzrenZrgnqngnRAF_9nyybpngbeVF2_RRRR
 .type b__MGIAFg3__120__funerq_cge_rzcynprVA7naqebvq14PnzrenZrgnqngnRAF_9nyybpngbeVF2_RRRR,%object
 b__MGIAFg3__120__funerq_cge_rzcynprVA7naqebvq14PnzrenZrgnqngnRAF_9nyybpngbeVF2_RRRR:
 .space __SIZEOF_POINTER__
@@ -6653,12 +6653,12 @@
 b__MA7naqebvq10VachgDhrhr17erplpyrVachgRiragRCAF_10VachgRiragR:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVC26nhqvbgenpx_pnyyonpx_pbbxvrR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVC26nhqvbgenpx_pnyyonpx_pbbxvrR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVC26nhqvbgenpx_pnyyonpx_pbbxvrR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVC26nhqvbgenpx_pnyyonpx_pbbxvrR15qb_zbir_sbejneqRCiCXiz:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_16RcurzrenyFgbentr4VgrzRR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_16RcurzrenyFgbentr4VgrzRR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_16RcurzrenyFgbentr4VgrzRR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_16RcurzrenyFgbentr4VgrzRR16qb_zbir_onpxjneqRCiCXiz:
 nop
@@ -6673,7 +6673,7 @@
 b__MGi0_a24_A7naqebvq26AngvirQvfcynlRiragErprvireQ0Ri:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_8Fgevat16RuRRR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_8Fgevat16RuRRR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_8Fgevat16RuRRR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_8Fgevat16RuRRR10qb_qrfgeblRCiz:
 nop
@@ -6698,7 +6698,7 @@
 b__M37ertvfgre_naqebvq_bcraty_wav_TYRF11RkgC7_WAVRai:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVvR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVvR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVvR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVvR7qb_pbclRCiCXiz:
 nop
@@ -6708,12 +6708,12 @@
 b__MA7naqebvq24AngvirVachgRiragErprvire7qvfcbfrRi:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_8uneqjner8tencuvpf6pbzzba4I1_29PbybeZbqrRR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq6IrpgbeVAF_8uneqjner8tencuvpf6pbzzba4I1_29PbybeZbqrRR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq6IrpgbeVAF_8uneqjner8tencuvpf6pbzzba4I1_29PbybeZbqrRR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq6IrpgbeVAF_8uneqjner8tencuvpf6pbzzba4I1_29PbybeZbqrRR10qb_qrfgeblRCiz:
 nop
 .data
-.globl b__MGIA7naqebvq12FbegrqIrpgbeVAF_12QvfcynlFgngrRRR
+.weak b__MGIA7naqebvq12FbegrqIrpgbeVAF_12QvfcynlFgngrRRR
 .type b__MGIA7naqebvq12FbegrqIrpgbeVAF_12QvfcynlFgngrRRR,%object
 b__MGIA7naqebvq12FbegrqIrpgbeVAF_12QvfcynlFgngrRRR:
 .space __SIZEOF_POINTER__
@@ -6733,7 +6733,7 @@
 b__MA7naqebvq9WUjOvaqre15TrgAngvirOvaqreRC7_WAVRaiC8_wbowrpg:
 nop
 .text
-.globl b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVuR8trgPbhagRi
+.weak b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVuR8trgPbhagRi
 .type b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVuR8trgPbhagRi,%function
 b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVuR8trgPbhagRi:
 nop
@@ -6753,7 +6753,7 @@
 b__MA7naqebvq24AngvirVachgRiragErprvire11unaqyrRiragRvvCi:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVCAF_6YbbcreRR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVCAF_6YbbcreRR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVCAF_6YbbcreRR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVCAF_6YbbcreRR8qb_fcyngRCiCXiz:
 nop
@@ -6768,7 +6768,7 @@
 b__M10reebe_rkvgC18wcrt_pbzzba_fgehpg:
 nop
 .text
-.globl b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVwR12jevgrGntVasbRwCAF0_12RaqvnaBhgchgR
+.weak b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVwR12jevgrGntVasbRwCAF0_12RaqvnaBhgchgR
 .type b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVwR12jevgrGntVasbRwCAF0_12RaqvnaBhgchgR,%function
 b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVwR12jevgrGntVasbRwCAF0_12RaqvnaBhgchgR:
 nop
@@ -6788,7 +6788,7 @@
 b__MA7naqebvq9WUjCnepryQ0Ri:
 nop
 .data
-.globl b__MGIA7naqebvq9vzt_hgvyf13GvssRagelVzcyVuRR
+.weak b__MGIA7naqebvq9vzt_hgvyf13GvssRagelVzcyVuRR
 .type b__MGIA7naqebvq9vzt_hgvyf13GvssRagelVzcyVuRR,%object
 b__MGIA7naqebvq9vzt_hgvyf13GvssRagelVzcyVuRR:
 .space __SIZEOF_POINTER__
@@ -6798,7 +6798,7 @@
 b__M26ertvfgre_naqebvq_bf_OvaqreC7_WAVRai:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_12QvfcynlFgngrRR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_12QvfcynlFgngrRR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_12QvfcynlFgngrRR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_12QvfcynlFgngrRR12qb_pbafgehpgRCiz:
 nop
@@ -6818,7 +6818,7 @@
 b__MGI20WAVNhqvbCbegPnyyonpx:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRzRRAF_19__znc_inyhr_pbzcnerVF7_F8_AF_4yrffVF7_RRYo1RRRAF5_VF8_RRR7qrfgeblRCAF_11__gerr_abqrVF8_CiRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRzRRAF_19__znc_inyhr_pbzcnerVF7_F8_AF_4yrffVF7_RRYo1RRRAF5_VF8_RRR7qrfgeblRCAF_11__gerr_abqrVF8_CiRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRzRRAF_19__znc_inyhr_pbzcnerVF7_F8_AF_4yrffVF7_RRYo1RRRAF5_VF8_RRR7qrfgeblRCAF_11__gerr_abqrVF8_CiRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRzRRAF_19__znc_inyhr_pbzcnerVF7_F8_AF_4yrffVF7_RRYo1RRRAF5_VF8_RRR7qrfgeblRCAF_11__gerr_abqrVF8_CiRR:
 nop
@@ -6828,7 +6828,7 @@
 b__MGIA7naqebvq7WUjOyboR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9haqresybjRi
+.weak b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9haqresybjRi
 .type b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9haqresybjRi,%function
 b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9haqresybjRi:
 nop
@@ -6843,12 +6843,12 @@
 b_QTvsFyhec:
 nop
 .text
-.globl b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVvR8trgPbhagRi
+.weak b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVvR8trgPbhagRi
 .type b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVvR8trgPbhagRi,%function
 b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVvR8trgPbhagRi:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_6FrafbeRR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq6IrpgbeVAF_6FrafbeRR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq6IrpgbeVAF_6FrafbeRR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq6IrpgbeVAF_6FrafbeRR12qb_pbafgehpgRCiz:
 nop
@@ -6858,7 +6858,7 @@
 b__MA7naqebvq34ertvfgre_naqebvq_bf_HRiragBofreireRC7_WAVRai:
 nop
 .data
-.globl b__MGIA7naqebvq10VachgRiragR
+.weak b__MGIA7naqebvq10VachgRiragR
 .type b__MGIA7naqebvq10VachgRiragR,%object
 b__MGIA7naqebvq10VachgRiragR:
 .space __SIZEOF_POINTER__
@@ -6913,12 +6913,12 @@
 b__MA7naqebvq23guebj_fdyvgr3_rkprcgvbaRC7_WAVRaiC7fdyvgr3CXp:
 nop
 .text
-.globl b__MAFg3__120__funerq_cge_rzcynprVA7zvavxva10SbagSnzvylRAF_9nyybpngbeVF2_RRR21__ba_mreb_funerq_jrnxRi
+.weak b__MAFg3__120__funerq_cge_rzcynprVA7zvavxva10SbagSnzvylRAF_9nyybpngbeVF2_RRR21__ba_mreb_funerq_jrnxRi
 .type b__MAFg3__120__funerq_cge_rzcynprVA7zvavxva10SbagSnzvylRAF_9nyybpngbeVF2_RRR21__ba_mreb_funerq_jrnxRi,%function
 b__MAFg3__120__funerq_cge_rzcynprVA7zvavxva10SbagSnzvylRAF_9nyybpngbeVF2_RRR21__ba_mreb_funerq_jrnxRi:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR12qb_pbafgehpgRCiz:
 nop
@@ -6943,12 +6943,12 @@
 b__MA13AngvirPbagrkg9trgJevgreRi:
 nop
 .text
-.globl b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVwR13trgRaqvnaarffRi
+.weak b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVwR13trgRaqvnaarffRi
 .type b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVwR13trgRaqvnaarffRi,%function
 b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVwR13trgRaqvnaarffRi:
 nop
 .data
-.globl b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_14onfvp_vbfgernzVpF2_RR
+.weak b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_14onfvp_vbfgernzVpF2_RR
 .type b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_14onfvp_vbfgernzVpF2_RR,%object
 b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_14onfvp_vbfgernzVpF2_RR:
 .space __SIZEOF_POINTER__
@@ -6988,12 +6988,12 @@
 b__MA7naqebvq41ertvfgre_naqebvq_tencuvpf_cqs_CqsEraqrereRC7_WAVRai:
 nop
 .data
-.globl b__MGIAFg3__120__funerq_cge_rzcynprVA7naqebvq15ZvavxvaSbagFxvnRAF_9nyybpngbeVF2_RRRR
+.weak b__MGIAFg3__120__funerq_cge_rzcynprVA7naqebvq15ZvavxvaSbagFxvnRAF_9nyybpngbeVF2_RRRR
 .type b__MGIAFg3__120__funerq_cge_rzcynprVA7naqebvq15ZvavxvaSbagFxvnRAF_9nyybpngbeVF2_RRRR,%object
 b__MGIAFg3__120__funerq_cge_rzcynprVA7naqebvq15ZvavxvaSbagFxvnRAF_9nyybpngbeVF2_RRRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__110__shapgvba6__shapVAF_6__ovaqVESiC7_WAVRaiCXpC8_wfgevatEXAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRRWEF4_EN5_F5_QaEXAF_12cynprubyqref4__cuVYv1RRRRRRAFP_VFE_RRSiFR_RR7qrfgeblRi
+.weak b__MAFg3__110__shapgvba6__shapVAF_6__ovaqVESiC7_WAVRaiCXpC8_wfgevatEXAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRRWEF4_EN5_F5_QaEXAF_12cynprubyqref4__cuVYv1RRRRRRAFP_VFE_RRSiFR_RR7qrfgeblRi
 .type b__MAFg3__110__shapgvba6__shapVAF_6__ovaqVESiC7_WAVRaiCXpC8_wfgevatEXAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRRWEF4_EN5_F5_QaEXAF_12cynprubyqref4__cuVYv1RRRRRRAFP_VFE_RRSiFR_RR7qrfgeblRi,%function
 b__MAFg3__110__shapgvba6__shapVAF_6__ovaqVESiC7_WAVRaiCXpC8_wfgevatEXAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRRWEF4_EN5_F5_QaEXAF_12cynprubyqref4__cuVYv1RRRRRRAFP_VFE_RRSiFR_RR7qrfgeblRi:
 nop
@@ -7013,7 +7013,7 @@
 b__M25frg_flfgrz_frppbzc_svygrei:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVC14FpbcrqHgsPunefR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVC14FpbcrqHgsPunefR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVC14FpbcrqHgsPunefR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVC14FpbcrqHgsPunefR8qb_fcyngRCiCXiz:
 nop
@@ -7023,7 +7023,7 @@
 b__MA16NhgbWninVagNeenlQ1Ri:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVCAF_6YbbcreRR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVCAF_6YbbcreRR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVCAF_6YbbcreRR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVCAF_6YbbcreRR7qb_pbclRCiCXiz:
 nop
@@ -7033,7 +7033,7 @@
 b__MA7naqebvq13AbgvslUnaqyre13unaqyrZrffntrREXAF_7ZrffntrR:
 nop
 .text
-.globl b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVgR7trgFvmrRi
+.weak b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVgR7trgFvmrRi
 .type b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVgR7trgFvmrRi,%function
 b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVgR7trgFvmrRi:
 nop
@@ -7053,7 +7053,7 @@
 b__MA7naqebvq32ertvfgre_naqebvq_hgvy_CnguCnefreRC7_WAVRai:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeV12WninIZBcgvbaR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq6IrpgbeV12WninIZBcgvbaR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq6IrpgbeV12WninIZBcgvbaR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq6IrpgbeV12WninIZBcgvbaR12qb_pbafgehpgRCiz:
 nop
@@ -7068,12 +7068,12 @@
 b__MA7naqebvq11WUvqyZrzbel6gbWninRC7_WAVRaiEXAF_8uneqjner11uvqy_zrzbelR:
 nop
 .data
-.globl b__MGI16OlgrOhssreFgernz
+.weak b__MGI16OlgrOhssreFgernz
 .type b__MGI16OlgrOhssreFgernz,%object
 b__MGI16OlgrOhssreFgernz:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__16irpgbeV18nhqvb_nggevohgrf_gAF_9nyybpngbeVF1_RRRP2REXF4_
+.weak b__MAFg3__16irpgbeV18nhqvb_nggevohgrf_gAF_9nyybpngbeVF1_RRRP2REXF4_
 .type b__MAFg3__16irpgbeV18nhqvb_nggevohgrf_gAF_9nyybpngbeVF1_RRRP2REXF4_,%function
 b__MAFg3__16irpgbeV18nhqvb_nggevohgrf_gAF_9nyybpngbeVF1_RRRP2REXF4_:
 nop
@@ -7083,12 +7083,12 @@
 b__MA7naqebvq16bgureFgngf_svryqR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGI16LhiGbWcrtRapbqre
+.weak b__MGI16LhiGbWcrtRapbqre
 .type b__MGI16LhiGbWcrtRapbqre,%object
 b__MGI16LhiGbWcrtRapbqre:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIA7naqebvq19IraqbeGntQrfpevcgbeR
+.weak b__MGIA7naqebvq19IraqbeGntQrfpevcgbeR
 .type b__MGIA7naqebvq19IraqbeGntQrfpevcgbeR,%object
 b__MGIA7naqebvq19IraqbeGntQrfpevcgbeR:
 .space __SIZEOF_POINTER__
@@ -7098,12 +7098,12 @@
 b__MA7naqebvq38ertvfgre_naqebvq_qngnonfr_FDYvgrTybonyRC7_WAVRai:
 nop
 .text
-.globl b__MAFg3__16irpgbeV8FxOvgzncAF_9nyybpngbeVF1_RRR8__nccraqRz
+.weak b__MAFg3__16irpgbeV8FxOvgzncAF_9nyybpngbeVF1_RRR8__nccraqRz
 .type b__MAFg3__16irpgbeV8FxOvgzncAF_9nyybpngbeVF1_RRR8__nccraqRz,%function
 b__MAFg3__16irpgbeV8FxOvgzncAF_9nyybpngbeVF1_RRR8__nccraqRz:
 nop
 .data
-.globl b__MGPA7naqebvq23SvavfuNaqVaibxrYvfgrareR0_AF_14ZrffntrUnaqyreR
+.weak b__MGPA7naqebvq23SvavfuNaqVaibxrYvfgrareR0_AF_14ZrffntrUnaqyreR
 .type b__MGPA7naqebvq23SvavfuNaqVaibxrYvfgrareR0_AF_14ZrffntrUnaqyreR,%object
 b__MGPA7naqebvq23SvavfuNaqVaibxrYvfgrareR0_AF_14ZrffntrUnaqyreR:
 .space __SIZEOF_POINTER__
@@ -7168,7 +7168,7 @@
 b_tBcgvbaf_zvzrSvryqVQ:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVA7zvavxva12ZvavxvaCnvagRwRRAF_22__habeqrerq_znc_unfureVF3_F4_AF2_12YnlbhgCvrprf11CnvagUnfureRYo1RRRAF_21__habeqrerq_znc_rdhnyVF3_F4_AF_8rdhny_gbVF3_RRYo1RRRAF_9nyybpngbeVF4_RRRQ2Ri
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVA7zvavxva12ZvavxvaCnvagRwRRAF_22__habeqrerq_znc_unfureVF3_F4_AF2_12YnlbhgCvrprf11CnvagUnfureRYo1RRRAF_21__habeqrerq_znc_rdhnyVF3_F4_AF_8rdhny_gbVF3_RRYo1RRRAF_9nyybpngbeVF4_RRRQ2Ri
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVA7zvavxva12ZvavxvaCnvagRwRRAF_22__habeqrerq_znc_unfureVF3_F4_AF2_12YnlbhgCvrprf11CnvagUnfureRYo1RRRAF_21__habeqrerq_znc_rdhnyVF3_F4_AF_8rdhny_gbVF3_RRYo1RRRAF_9nyybpngbeVF4_RRRQ2Ri,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVA7zvavxva12ZvavxvaCnvagRwRRAF_22__habeqrerq_znc_unfureVF3_F4_AF2_12YnlbhgCvrprf11CnvagUnfureRYo1RRRAF_21__habeqrerq_znc_rdhnyVF3_F4_AF_8rdhny_gbVF3_RRYo1RRRAF_9nyybpngbeVF4_RRRQ2Ri:
 nop
@@ -7183,12 +7183,12 @@
 b__MA7naqebvq43ertvfgre_pbz_naqebvq_vagreany_bf_MltbgrVavgRC7_WAVRai:
 nop
 .data
-.globl b__MGPA7naqebvq21VaibxrEhaanoyrZrffntrR0_AF_14ZrffntrUnaqyreR
+.weak b__MGPA7naqebvq21VaibxrEhaanoyrZrffntrR0_AF_14ZrffntrUnaqyreR
 .type b__MGPA7naqebvq21VaibxrEhaanoyrZrffntrR0_AF_14ZrffntrUnaqyreR,%object
 b__MGPA7naqebvq21VaibxrEhaanoyrZrffntrR0_AF_14ZrffntrUnaqyreR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_13CbvagrePbbeqfRR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq6IrpgbeVAF_13CbvagrePbbeqfRR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq6IrpgbeVAF_13CbvagrePbbeqfRR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq6IrpgbeVAF_13CbvagrePbbeqfRR10qb_qrfgeblRCiz:
 nop
@@ -7223,12 +7223,12 @@
 b__MA7naqebvq44pbairegNhqvbRssrpgQrfpevcgbeIrpgbeSebzAngvirRC7_WAVRaiCC13_wbowrpgNeenlEXAFg3__16irpgbeV19rssrpg_qrfpevcgbe_fAF5_9nyybpngbeVF7_RRRR:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_19NhqvbQrivprGlcrNqqeRR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_19NhqvbQrivprGlcrNqqeRR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_19NhqvbQrivprGlcrNqqeRR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_19NhqvbQrivprGlcrNqqeRR8qb_fcyngRCiCXiz:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVC11_wolgrNeenlR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq6IrpgbeVC11_wolgrNeenlR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq6IrpgbeVC11_wolgrNeenlR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq6IrpgbeVC11_wolgrNeenlR10qb_qrfgeblRCiz:
 nop
@@ -7238,27 +7238,27 @@
 b__MA15WavBhgchgFgernzP1RC7_WAVRaiC8_wbowrpg:
 nop
 .text
-.globl b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVuR7trgFvmrRi
+.weak b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVuR7trgFvmrRi
 .type b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVuR7trgFvmrRi,%function
 b__MAX7naqebvq9vzt_hgvyf13GvssRagelVzcyVuR7trgFvmrRi:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVsR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVsR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVsR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVsR16qb_zbir_onpxjneqRCiCXiz:
 nop
 .data
-.globl b__MGIAFg3__110__shapgvba6__shapVAF_6__ovaqVESiC7_WAVRaiCXpC8_wfgevatEXAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRRWEF4_F6_QaEXAF_12cynprubyqref4__cuVYv1RRRRRRAFP_VFC_RRSiFR_RRR
+.weak b__MGIAFg3__110__shapgvba6__shapVAF_6__ovaqVESiC7_WAVRaiCXpC8_wfgevatEXAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRRWEF4_F6_QaEXAF_12cynprubyqref4__cuVYv1RRRRRRAFP_VFC_RRSiFR_RRR
 .type b__MGIAFg3__110__shapgvba6__shapVAF_6__ovaqVESiC7_WAVRaiCXpC8_wfgevatEXAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRRWEF4_F6_QaEXAF_12cynprubyqref4__cuVYv1RRRRRRAFP_VFC_RRSiFR_RRR,%object
 b__MGIAFg3__110__shapgvba6__shapVAF_6__ovaqVESiC7_WAVRaiCXpC8_wfgevatEXAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRRWEF4_F6_QaEXAF_12cynprubyqref4__cuVYv1RRRRRRAFP_VFC_RRSiFR_RRR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIA7naqebvq6IrpgbeVsRR
+.weak b__MGIA7naqebvq6IrpgbeVsRR
 .type b__MGIA7naqebvq6IrpgbeVsRR,%object
 b__MGIA7naqebvq6IrpgbeVsRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__110__shapgvba6__shapVAF_6__ovaqVESiC7_WAVRaiCXpC8_wfgevatEXAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRRWEF4_EN5_F5_QaEXAF_12cynprubyqref4__cuVYv1RRRRRRAFP_VFE_RRSiFR_RRpyRBFR_
+.weak b__MAFg3__110__shapgvba6__shapVAF_6__ovaqVESiC7_WAVRaiCXpC8_wfgevatEXAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRRWEF4_EN5_F5_QaEXAF_12cynprubyqref4__cuVYv1RRRRRRAFP_VFE_RRSiFR_RRpyRBFR_
 .type b__MAFg3__110__shapgvba6__shapVAF_6__ovaqVESiC7_WAVRaiCXpC8_wfgevatEXAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRRWEF4_EN5_F5_QaEXAF_12cynprubyqref4__cuVYv1RRRRRRAFP_VFE_RRSiFR_RRpyRBFR_,%function
 b__MAFg3__110__shapgvba6__shapVAF_6__ovaqVESiC7_WAVRaiCXpC8_wfgevatEXAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRRWEF4_EN5_F5_QaEXAF_12cynprubyqref4__cuVYv1RRRRRRAFP_VFE_RRSiFR_RRpyRBFR_:
 nop
@@ -7273,12 +7273,12 @@
 b__MGGA7naqebvq26AngvirQvfcynlRiragErprvireR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_17CbvagreCebcregvrfRR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_17CbvagreCebcregvrfRR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_17CbvagreCebcregvrfRR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_17CbvagreCebcregvrfRR15qb_zbir_sbejneqRCiCXiz:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7zvavxva13SbagInevngvbaRAF_9nyybpngbeVF2_RRR24__rzcynpr_onpx_fybj_cnguVWwEsRRRiQcBG_
+.weak b__MAFg3__16irpgbeVA7zvavxva13SbagInevngvbaRAF_9nyybpngbeVF2_RRR24__rzcynpr_onpx_fybj_cnguVWwEsRRRiQcBG_
 .type b__MAFg3__16irpgbeVA7zvavxva13SbagInevngvbaRAF_9nyybpngbeVF2_RRR24__rzcynpr_onpx_fybj_cnguVWwEsRRRiQcBG_,%function
 b__MAFg3__16irpgbeVA7zvavxva13SbagInevngvbaRAF_9nyybpngbeVF2_RRR24__rzcynpr_onpx_fybj_cnguVWwEsRRRiQcBG_:
 nop
@@ -7298,7 +7298,7 @@
 b__MA7naqebvq31naqebvq_ivrj_VachgQrivpr_perngrRC7_WAVRaiEXAF_15VachgQrivprVasbR:
 nop
 .text
-.globl b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR3fgeREXAF_12onfvp_fgevatVpF2_F4_RR
+.weak b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR3fgeREXAF_12onfvp_fgevatVpF2_F4_RR
 .type b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR3fgeREXAF_12onfvp_fgevatVpF2_F4_RR,%function
 b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR3fgeREXAF_12onfvp_fgevatVpF2_F4_RR:
 nop
@@ -7323,7 +7323,7 @@
 b__M10qbGuebjVNRC7_WAVRaiCXp:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVA7naqebvq2fcVAF1_7VOvaqreRRRAF1_16VFhesnprPbzcbfre6FcUnfuVF3_RRAF_8rdhny_gbVF4_RRAF_9nyybpngbeVF4_RRR8__erunfuRz
+.weak b__MAFg3__112__unfu_gnoyrVA7naqebvq2fcVAF1_7VOvaqreRRRAF1_16VFhesnprPbzcbfre6FcUnfuVF3_RRAF_8rdhny_gbVF4_RRAF_9nyybpngbeVF4_RRR8__erunfuRz
 .type b__MAFg3__112__unfu_gnoyrVA7naqebvq2fcVAF1_7VOvaqreRRRAF1_16VFhesnprPbzcbfre6FcUnfuVF3_RRAF_8rdhny_gbVF4_RRAF_9nyybpngbeVF4_RRR8__erunfuRz,%function
 b__MAFg3__112__unfu_gnoyrVA7naqebvq2fcVAF1_7VOvaqreRRRAF1_16VFhesnprPbzcbfre6FcUnfuVF3_RRAF_8rdhny_gbVF4_RRAF_9nyybpngbeVF4_RRR8__erunfuRz:
 nop
@@ -7343,7 +7343,7 @@
 b__MA7naqebvq38ertvfgre_naqebvq_qngnonfr_PhefbeJvaqbjRC7_WAVRai:
 nop
 .text
-.globl b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR7frrxbssRkAF_8vbf_onfr7frrxqveRw
+.weak b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR7frrxbssRkAF_8vbf_onfr7frrxqveRw
 .type b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR7frrxbssRkAF_8vbf_onfr7frrxqveRw,%function
 b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR7frrxbssRkAF_8vbf_onfr7frrxqveRw:
 nop
@@ -7368,12 +7368,12 @@
 b__MA7naqebvq16RcurzrenyFgbentr21nyybpGrzcbenelFgbentrRz:
 nop
 .text
-.globl b__MA7naqebvq5ivags9gb_fgevatVAF0_7IrefvbaRRRAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRREXG_
+.weak b__MA7naqebvq5ivags9gb_fgevatVAF0_7IrefvbaRRRAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRREXG_
 .type b__MA7naqebvq5ivags9gb_fgevatVAF0_7IrefvbaRRRAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRREXG_,%function
 b__MA7naqebvq5ivags9gb_fgevatVAF0_7IrefvbaRRRAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRREXG_:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF6_RRR21__chfu_onpx_fybj_cnguVEXF6_RRiBG_
+.weak b__MAFg3__16irpgbeVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF6_RRR21__chfu_onpx_fybj_cnguVEXF6_RRiBG_
 .type b__MAFg3__16irpgbeVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF6_RRR21__chfu_onpx_fybj_cnguVEXF6_RRiBG_,%function
 b__MAFg3__16irpgbeVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF6_RRR21__chfu_onpx_fybj_cnguVEXF6_RRiBG_:
 nop
@@ -7388,12 +7388,12 @@
 b_tOvgzncPbasvt_angvirGbPbasvtZrgubqVQ:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIA7naqebvq5zrqvn12IbyhzrFuncre9BcrengvbaR
+.weak b__MGIA7naqebvq5zrqvn12IbyhzrFuncre9BcrengvbaR
 .type b__MGIA7naqebvq5zrqvn12IbyhzrFuncre9BcrengvbaR,%object
 b__MGIA7naqebvq5zrqvn12IbyhzrFuncre9BcrengvbaR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGGAFg3__119onfvp_vfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
+.weak b__MGGAFg3__119onfvp_vfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
 .type b__MGGAFg3__119onfvp_vfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR,%object
 b__MGGAFg3__119onfvp_vfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR:
 .space __SIZEOF_POINTER__
@@ -7413,7 +7413,7 @@
 b__MA7naqebvq22AngvirVachgRiragFraqre11unaqyrRiragRvvCi:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_10funerq_cgeVA7zvavxva10SbagSnzvylRRRAF_9nyybpngbeVF4_RRR24__rzcynpr_onpx_fybj_cnguVWEF4_RRRiQcBG_
+.weak b__MAFg3__16irpgbeVAF_10funerq_cgeVA7zvavxva10SbagSnzvylRRRAF_9nyybpngbeVF4_RRR24__rzcynpr_onpx_fybj_cnguVWEF4_RRRiQcBG_
 .type b__MAFg3__16irpgbeVAF_10funerq_cgeVA7zvavxva10SbagSnzvylRRRAF_9nyybpngbeVF4_RRR24__rzcynpr_onpx_fybj_cnguVWEF4_RRRiQcBG_,%function
 b__MAFg3__16irpgbeVAF_10funerq_cgeVA7zvavxva10SbagSnzvylRRRAF_9nyybpngbeVF4_RRR24__rzcynpr_onpx_fybj_cnguVWEF4_RRRiQcBG_:
 nop
@@ -7448,7 +7448,7 @@
 b__M22trg_qrivpr_sebz_bowrpgC7_WAVRaiC8_wbowrpg:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVC14FpbcrqHgsPunefR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVC14FpbcrqHgsPunefR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVC14FpbcrqHgsPunefR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVC14FpbcrqHgsPunefR15qb_zbir_sbejneqRCiCXiz:
 nop
@@ -7468,17 +7468,17 @@
 b__MA7naqebvq16RcurzrenyFgbentr26nyybpGrzcbenelAngvirUnaqyrRvv:
 nop
 .text
-.globl b__MAFg3__16irpgbeVpAF_9nyybpngbeVpRRR8__nccraqRzEXp
+.weak b__MAFg3__16irpgbeVpAF_9nyybpngbeVpRRR8__nccraqRzEXp
 .type b__MAFg3__16irpgbeVpAF_9nyybpngbeVpRRR8__nccraqRzEXp,%function
 b__MAFg3__16irpgbeVpAF_9nyybpngbeVpRRR8__nccraqRzEXp:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVs7FxCbvagRRAF_19__znc_inyhr_pbzcnerVsF3_AF_4yrffVsRRYo1RRRAF_9nyybpngbeVF3_RRR12__svaq_rdhnyVsRRECAF_16__gerr_abqr_onfrVCiRRAF_21__gerr_pbafg_vgrengbeVF3_CAF_11__gerr_abqrVF3_FQ_RRyRRECAF_15__gerr_raq_abqrVFS_RRFT_EXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVs7FxCbvagRRAF_19__znc_inyhr_pbzcnerVsF3_AF_4yrffVsRRYo1RRRAF_9nyybpngbeVF3_RRR12__svaq_rdhnyVsRRECAF_16__gerr_abqr_onfrVCiRRAF_21__gerr_pbafg_vgrengbeVF3_CAF_11__gerr_abqrVF3_FQ_RRyRRECAF_15__gerr_raq_abqrVFS_RRFT_EXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVs7FxCbvagRRAF_19__znc_inyhr_pbzcnerVsF3_AF_4yrffVsRRYo1RRRAF_9nyybpngbeVF3_RRR12__svaq_rdhnyVsRRECAF_16__gerr_abqr_onfrVCiRRAF_21__gerr_pbafg_vgrengbeVF3_CAF_11__gerr_abqrVF3_FQ_RRyRRECAF_15__gerr_raq_abqrVFS_RRFT_EXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVs7FxCbvagRRAF_19__znc_inyhr_pbzcnerVsF3_AF_4yrffVsRRYo1RRRAF_9nyybpngbeVF3_RRR12__svaq_rdhnyVsRRECAF_16__gerr_abqr_onfrVCiRRAF_21__gerr_pbafg_vgrengbeVF3_CAF_11__gerr_abqrVF3_FQ_RRyRRECAF_15__gerr_raq_abqrVFS_RRFT_EXG_:
 nop
 .data
-.globl b__MGPA7naqebvq25AngvirErzbgrQvfcynlPyvragR0_AF_11OaVagresnprVAF_20VErzbgrQvfcynlPyvragRRR
+.weak b__MGPA7naqebvq25AngvirErzbgrQvfcynlPyvragR0_AF_11OaVagresnprVAF_20VErzbgrQvfcynlPyvragRRR
 .type b__MGPA7naqebvq25AngvirErzbgrQvfcynlPyvragR0_AF_11OaVagresnprVAF_20VErzbgrQvfcynlPyvragRRR,%object
 b__MGPA7naqebvq25AngvirErzbgrQvfcynlPyvragR0_AF_11OaVagresnprVAF_20VErzbgrQvfcynlPyvragRRR:
 .space __SIZEOF_POINTER__
@@ -7488,7 +7488,7 @@
 b__MA18WavVachgOlgrOhssreQ2Ri:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVgR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVgR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVgR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVgR16qb_zbir_onpxjneqRCiCXiz:
 nop
@@ -7572,7 +7572,6 @@
 CALL(b_wavGuebjRkprcgvbaSzg)
 CALL(b__MAX7naqebvq9MvcSvyrEB12trgRagelVasbRCiCgCwF3_CyF3_F3_)
 CALL(mktime)
-CALL(lstat64)
 CALL(b_pep32)
 CALL(read)
 CALL(close)
@@ -9757,7 +9756,6 @@
 .weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_10funerq_cgeVA7zvavxva14SbagPbyyrpgvbaRRRRRAF_19__znc_inyhr_pbzcnerVF7_FP_AF_4yrffVF7_RRYo1RRRAF5_VFP_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVCiRRECAF_15__gerr_raq_abqrVFA_RREXG_
 CALL(b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_10funerq_cgeVA7zvavxva14SbagPbyyrpgvbaRRRRRAF_19__znc_inyhr_pbzcnerVF7_FP_AF_4yrffVF7_RRYo1RRRAF5_VFP_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVCiRRECAF_15__gerr_raq_abqrVFA_RREXG_)
 CALL(b__MA6FxQngn17ZnxrHavavgvnyvmrqRz)
-CALL(lseek64)
 CALL(longjmp)
 CALL(b__MA22fxwcrt_qrfgvangvba_zteP1RC9FxJFgernz)
 CALL(b_wcrt_fgq_reebe)
diff --git a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_001.S b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_001.S
index c2d5ef2..1ffbeda 100644
--- a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_001.S
+++ b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_001.S
@@ -13,12 +13,12 @@
 b__MA7naqebvq10ErfKZYGerr6havavgRi:
 nop
 .data
-.globl b__MGIA7naqebvq6IrpgbeVCAF_8ErfGnoyr6UrnqreRRR
+.weak b__MGIA7naqebvq6IrpgbeVCAF_8ErfGnoyr6UrnqreRRR
 .type b__MGIA7naqebvq6IrpgbeVCAF_8ErfGnoyr6UrnqreRRR,%object
 b__MGIA7naqebvq6IrpgbeVCAF_8ErfGnoyr6UrnqreRRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_12NffrgZnantre10nffrg_cnguRR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_12NffrgZnantre10nffrg_cnguRR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_12NffrgZnantre10nffrg_cnguRR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_12NffrgZnantre10nffrg_cnguRR16qb_zbir_onpxjneqRCiCXiz:
 nop
@@ -53,7 +53,7 @@
 b__MA7naqebvq10_SvyrNffrgP1Ri:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_10havdhr_cgeVXA7naqebvq13YbnqrqCnpxntrRAF_14qrsnhyg_qryrgrVF4_RRRRAF_9nyybpngbeVF7_RRR7erfreirRz
+.weak b__MAFg3__16irpgbeVAF_10havdhr_cgeVXA7naqebvq13YbnqrqCnpxntrRAF_14qrsnhyg_qryrgrVF4_RRRRAF_9nyybpngbeVF7_RRR7erfreirRz
 .type b__MAFg3__16irpgbeVAF_10havdhr_cgeVXA7naqebvq13YbnqrqCnpxntrRAF_14qrsnhyg_qryrgrVF4_RRRRAF_9nyybpngbeVF7_RRR7erfreirRz,%function
 b__MAFg3__16irpgbeVAF_10havdhr_cgeVXA7naqebvq13YbnqrqCnpxntrRAF_14qrsnhyg_qryrgrVF4_RRRRAF_9nyybpngbeVF7_RRR7erfreirRz:
 nop
@@ -63,7 +63,7 @@
 b__MAX7naqebvq15ErfGnoyr_pbasvt15nccraqQveYbpnyrREAF_7Fgevat8R:
 nop
 .data
-.globl b__MGGAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
+.weak b__MGGAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
 .type b__MGGAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR,%object
 b__MGGAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR:
 .space __SIZEOF_POINTER__
@@ -73,12 +73,12 @@
 b__MA7naqebvq15ErfGnoyr_pbasvt10cnpxErtvbaRCXp:
 nop
 .text
-.globl b__MAFg3__110__shapgvba6__shapVCSvvRAF_9nyybpngbeVF3_RRSppRR7qrfgeblRi
+.weak b__MAFg3__110__shapgvba6__shapVCSvvRAF_9nyybpngbeVF3_RRSppRR7qrfgeblRi
 .type b__MAFg3__110__shapgvba6__shapVCSvvRAF_9nyybpngbeVF3_RRSppRR7qrfgeblRi,%function
 b__MAFg3__110__shapgvba6__shapVCSvvRAF_9nyybpngbeVF3_RRSppRR7qrfgeblRi:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_8NffrgQve8SvyrVasbRR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_8NffrgQve8SvyrVasbRR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_8NffrgQve8SvyrVasbRR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_8NffrgQve8SvyrVasbRR7qb_pbclRCiCXiz:
 nop
@@ -108,7 +108,7 @@
 b__MA7naqebvq15QlanzvpErsGnoyrP1Ri:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwzRRR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwzRRR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwzRRR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwzRRR16qb_zbir_onpxjneqRCiCXiz:
 nop
@@ -168,7 +168,7 @@
 b__MAX7naqebvq15QlanzvpErsGnoyr19ybbxhcErfbheprInyhrRCAF_9Erf_inyhrR:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwCXAF_11ErfbyirqOnt5RagelRRRR10qb_pbzcnerRCXiF9_
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwCXAF_11ErfbyirqOnt5RagelRRRR10qb_pbzcnerRCXiF9_
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwCXAF_11ErfbyirqOnt5RagelRRRR10qb_pbzcnerRCXiF9_,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwCXAF_11ErfbyirqOnt5RagelRRRR10qb_pbzcnerRCXiF9_:
 nop
@@ -183,7 +183,7 @@
 b__MAX7naqebvq8ErfGnoyr17vfErfbheprQlanzvpRw:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwuRRAF_22__habeqrerq_znc_unfureVwF2_AF_4unfuVwRRYo1RRRAF_21__habeqrerq_znc_rdhnyVwF2_AF_8rdhny_gbVwRRYo1RRRAF_9nyybpngbeVF2_RRR25__rzcynpr_havdhr_xrl_netfVwWEXAF_4cnveVXwuRRRRRAFS_VAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF2_CiRRRRoRREXG_QcBG0_
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwuRRAF_22__habeqrerq_znc_unfureVwF2_AF_4unfuVwRRYo1RRRAF_21__habeqrerq_znc_rdhnyVwF2_AF_8rdhny_gbVwRRYo1RRRAF_9nyybpngbeVF2_RRR25__rzcynpr_havdhr_xrl_netfVwWEXAF_4cnveVXwuRRRRRAFS_VAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF2_CiRRRRoRREXG_QcBG0_
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwuRRAF_22__habeqrerq_znc_unfureVwF2_AF_4unfuVwRRYo1RRRAF_21__habeqrerq_znc_rdhnyVwF2_AF_8rdhny_gbVwRRYo1RRRAF_9nyybpngbeVF2_RRR25__rzcynpr_havdhr_xrl_netfVwWEXAF_4cnveVXwuRRRRRAFS_VAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF2_CiRRRRoRREXG_QcBG0_,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwuRRAF_22__habeqrerq_znc_unfureVwF2_AF_4unfuVwRRYo1RRRAF_21__habeqrerq_znc_rdhnyVwF2_AF_8rdhny_gbVwRRYo1RRRAF_9nyybpngbeVF2_RRR25__rzcynpr_havdhr_xrl_netfVwWEXAF_4cnveVXwuRRRRRAFS_VAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF2_CiRRRRoRREXG_QcBG0_:
 nop
@@ -193,7 +193,7 @@
 b__MA7naqebvq8ErfGnoyr5GurzrP1REXF0_:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVuAF_12VqzncRagevrfRRRR10qb_pbzcnerRCXiF6_
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVuAF_12VqzncRagevrfRRRR10qb_pbzcnerRCXiF6_
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVuAF_12VqzncRagevrfRRRR10qb_pbzcnerRCXiF6_,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVuAF_12VqzncRagevrfRRRR10qb_pbzcnerRCXiF6_:
 nop
@@ -218,7 +218,7 @@
 b__MA7naqebvq10YbnqrqNefp4YbnqREXAF_16OnfvpFgevatCvrprVpRRCXAF_11YbnqrqVqzncRoo:
 nop
 .text
-.globl b__MAFg3__16irpgbeVCXA7naqebvq13ErfGnoyr_glcrRAF_9nyybpngbeVF4_RRR21__chfu_onpx_fybj_cnguVEXF4_RRiBG_
+.weak b__MAFg3__16irpgbeVCXA7naqebvq13ErfGnoyr_glcrRAF_9nyybpngbeVF4_RRR21__chfu_onpx_fybj_cnguVEXF4_RRiBG_
 .type b__MAFg3__16irpgbeVCXA7naqebvq13ErfGnoyr_glcrRAF_9nyybpngbeVF4_RRR21__chfu_onpx_fybj_cnguVEXF4_RRiBG_,%function
 b__MAFg3__16irpgbeVCXA7naqebvq13ErfGnoyr_glcrRAF_9nyybpngbeVF4_RRR21__chfu_onpx_fybj_cnguVEXF4_RRiBG_:
 nop
@@ -298,12 +298,12 @@
 b__MA7naqebvq16OnpxhcQngnJevgreP1Rv:
 nop
 .text
-.globl b__MAXFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR3fgeRi
+.weak b__MAXFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR3fgeRi
 .type b__MAXFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR3fgeRi,%function
 b__MAXFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR3fgeRi:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVvAF_3zncVvvAF_4yrffVvRRAF_9nyybpngbeVAF_4cnveVXvvRRRRRRRRAF_19__znc_inyhr_pbzcnerVvFO_F4_Yo1RRRAF5_VFO_RRR21__rzcynpr_havdhr_vzcyVWAF6_VzFN_RRRRRAF6_VAF_15__gerr_vgrengbeVFO_CAF_11__gerr_abqrVFO_CiRRyRRoRRQcBG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVvAF_3zncVvvAF_4yrffVvRRAF_9nyybpngbeVAF_4cnveVXvvRRRRRRRRAF_19__znc_inyhr_pbzcnerVvFO_F4_Yo1RRRAF5_VFO_RRR21__rzcynpr_havdhr_vzcyVWAF6_VzFN_RRRRRAF6_VAF_15__gerr_vgrengbeVFO_CAF_11__gerr_abqrVFO_CiRRyRRoRRQcBG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVvAF_3zncVvvAF_4yrffVvRRAF_9nyybpngbeVAF_4cnveVXvvRRRRRRRRAF_19__znc_inyhr_pbzcnerVvFO_F4_Yo1RRRAF5_VFO_RRR21__rzcynpr_havdhr_vzcyVWAF6_VzFN_RRRRRAF6_VAF_15__gerr_vgrengbeVFO_CAF_11__gerr_abqrVFO_CiRRyRRoRRQcBG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVvAF_3zncVvvAF_4yrffVvRRAF_9nyybpngbeVAF_4cnveVXvvRRRRRRRRAF_19__znc_inyhr_pbzcnerVvFO_F4_Yo1RRRAF5_VFO_RRR21__rzcynpr_havdhr_vzcyVWAF6_VzFN_RRRRRAF6_VAF_15__gerr_vgrengbeVFO_CAF_11__gerr_abqrVFO_CiRRyRRoRRQcBG_:
 nop
@@ -323,12 +323,12 @@
 b__MA7naqebvq13YbnqrqCnpxntr8vgrengbeP2RCXF0_zz:
 nop
 .text
-.globl b__MAFg3__16irpgbeVXAF_4cnveVA7naqebvq15BireynlnoyrVasbRAF_13habeqrerq_frgVwAF_4unfuVwRRAF_8rdhny_gbVwRRAF_9nyybpngbeVwRRRRRRAF9_VFQ_RRR26__fjnc_bhg_pvephyne_ohssreREAF_14__fcyvg_ohssreVFQ_EFR_RR
+.weak b__MAFg3__16irpgbeVXAF_4cnveVA7naqebvq15BireynlnoyrVasbRAF_13habeqrerq_frgVwAF_4unfuVwRRAF_8rdhny_gbVwRRAF_9nyybpngbeVwRRRRRRAF9_VFQ_RRR26__fjnc_bhg_pvephyne_ohssreREAF_14__fcyvg_ohssreVFQ_EFR_RR
 .type b__MAFg3__16irpgbeVXAF_4cnveVA7naqebvq15BireynlnoyrVasbRAF_13habeqrerq_frgVwAF_4unfuVwRRAF_8rdhny_gbVwRRAF_9nyybpngbeVwRRRRRRAF9_VFQ_RRR26__fjnc_bhg_pvephyne_ohssreREAF_14__fcyvg_ohssreVFQ_EFR_RR,%function
 b__MAFg3__16irpgbeVXAF_4cnveVA7naqebvq15BireynlnoyrVasbRAF_13habeqrerq_frgVwAF_4unfuVwRRAF_8rdhny_gbVwRRAF_9nyybpngbeVwRRRRRRAF9_VFQ_RRR26__fjnc_bhg_pvephyne_ohssreREAF_14__fcyvg_ohssreVFQ_EFR_RR:
 nop
 .data
-.globl b__MGI12OhssreErnqre
+.weak b__MGI12OhssreErnqre
 .type b__MGI12OhssreErnqre,%object
 b__MGI12OhssreErnqre:
 .space __SIZEOF_POINTER__
@@ -338,12 +338,12 @@
 b__MA7naqebvq8ErfGnoyrP1Ri:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwzRRR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwzRRR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwzRRR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwzRRR10qb_qrfgeblRCiz:
 nop
 .data
-.globl b__MGIA7naqebvq6IrpgbeVCXAF_13ErfGnoyr_glcrRRR
+.weak b__MGIA7naqebvq6IrpgbeVCXAF_13ErfGnoyr_glcrRRR
 .type b__MGIA7naqebvq6IrpgbeVCXAF_13ErfGnoyr_glcrRRR,%object
 b__MGIA7naqebvq6IrpgbeVCXAF_13ErfGnoyr_glcrRRR:
 .space __SIZEOF_POINTER__
@@ -353,7 +353,7 @@
 b__MA7naqebvq16OnpxhcQngnJevgreQ2Ri:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVvAF_3zncVvvAF_4yrffVvRRAF_9nyybpngbeVAF_4cnveVXvvRRRRRRRRAF_19__znc_inyhr_pbzcnerVvFO_F4_Yo1RRRAF5_VFO_RRR7qrfgeblRCAF_11__gerr_abqrVFO_CiRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVvAF_3zncVvvAF_4yrffVvRRAF_9nyybpngbeVAF_4cnveVXvvRRRRRRRRAF_19__znc_inyhr_pbzcnerVvFO_F4_Yo1RRRAF5_VFO_RRR7qrfgeblRCAF_11__gerr_abqrVFO_CiRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVvAF_3zncVvvAF_4yrffVvRRAF_9nyybpngbeVAF_4cnveVXvvRRRRRRRRAF_19__znc_inyhr_pbzcnerVvFO_F4_Yo1RRRAF5_VFO_RRR7qrfgeblRCAF_11__gerr_abqrVFO_CiRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVvAF_3zncVvvAF_4yrffVvRRAF_9nyybpngbeVAF_4cnveVXvvRRRRRRRRAF_19__znc_inyhr_pbzcnerVvFO_F4_Yo1RRRAF5_VFO_RRR7qrfgeblRCAF_11__gerr_abqrVFO_CiRR:
 nop
@@ -363,12 +363,12 @@
 b__MA7naqebvq8ErfGnoyr17rkcnaqErfbheprErsRCXQfzCAF_8Fgevat16RF4_F4_CXF3_F6_CCXpCo:
 nop
 .text
-.globl b__MAFg3__110__shapgvba6__shapVCSvvRAF_9nyybpngbeVF3_RRSppRRpyRBp
+.weak b__MAFg3__110__shapgvba6__shapVCSvvRAF_9nyybpngbeVF3_RRSppRRpyRBp
 .type b__MAFg3__110__shapgvba6__shapVCSvvRAF_9nyybpngbeVF3_RRSppRRpyRBp,%function
 b__MAFg3__110__shapgvba6__shapVCSvvRAF_9nyybpngbeVF3_RRSppRRpyRBp:
 nop
 .data
-.globl b__MGI12OhssreJevgre
+.weak b__MGI12OhssreJevgre
 .type b__MGI12OhssreJevgre,%object
 b__MGI12OhssreJevgre:
 .space __SIZEOF_POINTER__
@@ -383,7 +383,7 @@
 b__MAX7naqebvq12NffrgZnantre13arkgNffrgCnguRv:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_8NffrgQve8SvyrVasbRR10qb_pbzcnerRCXiF5_
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_8NffrgQve8SvyrVasbRR10qb_pbzcnerRCXiF5_
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_8NffrgQve8SvyrVasbRR10qb_pbzcnerRCXiF5_,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_8NffrgQve8SvyrVasbRR10qb_pbzcnerRCXiF5_:
 nop
@@ -408,12 +408,12 @@
 b__MA7naqebvq13NffrgZnantre220TrgNffvtarqCnpxntrVqRCXAF_13YbnqrqCnpxntrR:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVCAF_8ErfGnoyr12CnpxntrTebhcRR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVCAF_8ErfGnoyr12CnpxntrTebhcRR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVCAF_8ErfGnoyr12CnpxntrTebhcRR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVCAF_8ErfGnoyr12CnpxntrTebhcRR8qb_fcyngRCiCXiz:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_8Fgevat16RuRRR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_8Fgevat16RuRRR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_8Fgevat16RuRRR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_8Fgevat16RuRRR10qb_qrfgeblRCiz:
 nop
@@ -448,7 +448,7 @@
 b__MAX7naqebvq17PbasvtQrfpevcgvba13PbasyvpgfJvguREXF0_:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVCXAF_13ErfGnoyr_glcrRR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVCXAF_13ErfGnoyr_glcrRR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVCXAF_13ErfGnoyr_glcrRR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVCXAF_13ErfGnoyr_glcrRR7qb_pbclRCiCXiz:
 nop
@@ -458,12 +458,12 @@
 b__MA7naqebvq18fraq_gnesvyr_puhaxRCAF_16OnpxhcQngnJevgreRCXpz:
 nop
 .text
-.globl b__MAFg3__16irpgbeVwAF_9nyybpngbeVwRRR6nffvtaVCwRRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVwAF_15vgrengbe_genvgfVF7_R9ersreraprRRR5inyhrRiR4glcrRF7_F7_
+.weak b__MAFg3__16irpgbeVwAF_9nyybpngbeVwRRR6nffvtaVCwRRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVwAF_15vgrengbe_genvgfVF7_R9ersreraprRRR5inyhrRiR4glcrRF7_F7_
 .type b__MAFg3__16irpgbeVwAF_9nyybpngbeVwRRR6nffvtaVCwRRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVwAF_15vgrengbe_genvgfVF7_R9ersreraprRRR5inyhrRiR4glcrRF7_F7_,%function
 b__MAFg3__16irpgbeVwAF_9nyybpngbeVwRRR6nffvtaVCwRRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVwAF_15vgrengbe_genvgfVF7_R9ersreraprRRR5inyhrRiR4glcrRF7_F7_:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwCXAF_11ErfbyirqOnt5RagelRRRR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwCXAF_11ErfbyirqOnt5RagelRRRR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwCXAF_11ErfbyirqOnt5RagelRRRR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwCXAF_11ErfbyirqOnt5RagelRRRR7qb_pbclRCiCXiz:
 nop
@@ -473,7 +473,7 @@
 b__MAX7naqebvq15ErfGnoyr_pbasvt14hacnpxYnathntrRCp:
 nop
 .data
-.globl b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RAF_9SvyrFgngrRRRRR
+.weak b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RAF_9SvyrFgngrRRRRR
 .type b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RAF_9SvyrFgngrRRRRR,%object
 b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RAF_9SvyrFgngrRRRRR:
 .space __SIZEOF_POINTER__
@@ -528,7 +528,7 @@
 b__MAX7naqebvq12NffrgZnantre10trgYbpnyrfRCAF_6IrpgbeVAF_7Fgevat8RRRo:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_8Fgevat16RuRRR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_8Fgevat16RuRRR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_8Fgevat16RuRRR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_8Fgevat16RuRRR16qb_zbir_onpxjneqRCiCXiz:
 nop
@@ -538,12 +538,12 @@
 b__MAX7naqebvq13NffrgZnantre227TrgBireynlnoyrZncSbeCnpxntrRw:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVvvRRAF_19__znc_inyhr_pbzcnerVvF2_AF_4yrffVvRRYo1RRRAF_9nyybpngbeVF2_RRR7qrfgeblRCAF_11__gerr_abqrVF2_CiRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVvvRRAF_19__znc_inyhr_pbzcnerVvF2_AF_4yrffVvRRYo1RRRAF_9nyybpngbeVF2_RRR7qrfgeblRCAF_11__gerr_abqrVF2_CiRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVvvRRAF_19__znc_inyhr_pbzcnerVvF2_AF_4yrffVvRRYo1RRRAF_9nyybpngbeVF2_RRR7qrfgeblRCAF_11__gerr_abqrVF2_CiRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVvvRRAF_19__znc_inyhr_pbzcnerVvF2_AF_4yrffVvRRYo1RRRAF_9nyybpngbeVF2_RRR7qrfgeblRCAF_11__gerr_abqrVF2_CiRR:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwuRRAF_22__habeqrerq_znc_unfureVwF2_AF_4unfuVwRRYo1RRRAF_21__habeqrerq_znc_rdhnyVwF2_AF_8rdhny_gbVwRRYo1RRRAF_9nyybpngbeVF2_RRR6erunfuRz
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwuRRAF_22__habeqrerq_znc_unfureVwF2_AF_4unfuVwRRYo1RRRAF_21__habeqrerq_znc_rdhnyVwF2_AF_8rdhny_gbVwRRYo1RRRAF_9nyybpngbeVF2_RRR6erunfuRz
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwuRRAF_22__habeqrerq_znc_unfureVwF2_AF_4unfuVwRRYo1RRRAF_21__habeqrerq_znc_rdhnyVwF2_AF_8rdhny_gbVwRRYo1RRRAF_9nyybpngbeVF2_RRR6erunfuRz,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwuRRAF_22__habeqrerq_znc_unfureVwF2_AF_4unfuVwRRYo1RRRAF_21__habeqrerq_znc_rdhnyVwF2_AF_8rdhny_gbVwRRYo1RRRAF_9nyybpngbeVF2_RRR6erunfuRz:
 nop
@@ -593,7 +593,7 @@
 b__MAX7naqebvq12ErfKZYCnefre20trgNggevohgrQngnGlcrRz:
 nop
 .data
-.globl b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RAF_7SvyrErpRRRRR
+.weak b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RAF_7SvyrErpRRRRR
 .type b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RAF_7SvyrErpRRRRR,%object
 b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RAF_7SvyrErpRRRRR:
 .space __SIZEOF_POINTER__
@@ -613,17 +613,17 @@
 b__MA7naqebvq12NffrgZnantre15bcraAbaNffrgQveRvCXp:
 nop
 .data
-.globl b__MGIA7naqebvq12FbegrqIrpgbeVAF_8NffrgQve8SvyrVasbRRR
+.weak b__MGIA7naqebvq12FbegrqIrpgbeVAF_8NffrgQve8SvyrVasbRRR
 .type b__MGIA7naqebvq12FbegrqIrpgbeVAF_8NffrgQve8SvyrVasbRRR,%object
 b__MGIA7naqebvq12FbegrqIrpgbeVAF_8NffrgQve8SvyrVasbRRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_8Fgevat16RuRRR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_8Fgevat16RuRRR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_8Fgevat16RuRRR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_8Fgevat16RuRRR15qb_zbir_sbejneqRCiCXiz:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAFg3__110funerq_cgeVAF0_VCXAF_13ErfGnoyr_glcrRRRRRR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq6IrpgbeVAFg3__110funerq_cgeVAF0_VCXAF_13ErfGnoyr_glcrRRRRRR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq6IrpgbeVAFg3__110funerq_cgeVAF0_VCXAF_13ErfGnoyr_glcrRRRRRR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq6IrpgbeVAFg3__110funerq_cgeVAF0_VCXAF_13ErfGnoyr_glcrRRRRRR10qb_qrfgeblRCiz:
 nop
@@ -658,7 +658,7 @@
 b__MAX7naqebvq13ErfFgevatCbby8vfFbegrqRi:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVCAF_8ErfGnoyr7CnpxntrRR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq6IrpgbeVCAF_8ErfGnoyr7CnpxntrRR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq6IrpgbeVCAF_8ErfGnoyr7CnpxntrRR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq6IrpgbeVCAF_8ErfGnoyr7CnpxntrRR12qb_pbafgehpgRCiz:
 nop
@@ -673,22 +673,22 @@
 b__MA7naqebvq12NffrgZnantre9FunerqMvcP1RvEXAF_7Fgevat8R:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq13NffrgZnantre210Erfbyhgvba4FgrcRAF_9nyybpngbeVF4_RRR6nffvtaVCF4_RRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF4_AF_15vgrengbe_genvgfVFO_R9ersreraprRRR5inyhrRiR4glcrRFO_FO_
+.weak b__MAFg3__16irpgbeVA7naqebvq13NffrgZnantre210Erfbyhgvba4FgrcRAF_9nyybpngbeVF4_RRR6nffvtaVCF4_RRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF4_AF_15vgrengbe_genvgfVFO_R9ersreraprRRR5inyhrRiR4glcrRFO_FO_
 .type b__MAFg3__16irpgbeVA7naqebvq13NffrgZnantre210Erfbyhgvba4FgrcRAF_9nyybpngbeVF4_RRR6nffvtaVCF4_RRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF4_AF_15vgrengbe_genvgfVFO_R9ersreraprRRR5inyhrRiR4glcrRFO_FO_,%function
 b__MAFg3__16irpgbeVA7naqebvq13NffrgZnantre210Erfbyhgvba4FgrcRAF_9nyybpngbeVF4_RRR6nffvtaVCF4_RRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF4_AF_15vgrengbe_genvgfVFO_R9ersreraprRRR5inyhrRiR4glcrRFO_FO_:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAFg3__110funerq_cgeVAF0_VCXAF_13ErfGnoyr_glcrRRRRRR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAFg3__110funerq_cgeVAF0_VCXAF_13ErfGnoyr_glcrRRRRRR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAFg3__110funerq_cgeVAF0_VCXAF_13ErfGnoyr_glcrRRRRRR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAFg3__110funerq_cgeVAF0_VCXAF_13ErfGnoyr_glcrRRRRRR15qb_zbir_sbejneqRCiCXiz:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVCAF_8ErfGnoyr6UrnqreRR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVCAF_8ErfGnoyr6UrnqreRR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVCAF_8ErfGnoyr6UrnqreRR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVCAF_8ErfGnoyr6UrnqreRR8qb_fcyngRCiCXiz:
 nop
 .text
-.globl b__MAFg3__110__shapgvba6__shapVCSvvRAF_9nyybpngbeVF3_RRSppRR18qrfgebl_qrnyybpngrRi
+.weak b__MAFg3__110__shapgvba6__shapVCSvvRAF_9nyybpngbeVF3_RRSppRR18qrfgebl_qrnyybpngrRi
 .type b__MAFg3__110__shapgvba6__shapVCSvvRAF_9nyybpngbeVF3_RRSppRR18qrfgebl_qrnyybpngrRi,%function
 b__MAFg3__110__shapgvba6__shapVCSvvRAF_9nyybpngbeVF3_RRSppRR18qrfgebl_qrnyybpngrRi:
 nop
@@ -758,7 +758,7 @@
 b__MA7naqebvq10NccylFglyrRCAF_5GurzrRCAF_12ErfKZYCnefreRwwCXwzCwF6_:
 nop
 .text
-.globl b__MA7naqebvq27OnpxGenpxvatNggevohgrSvaqreVAF_18OntNggevohgrSvaqreRCXAF_11ErfbyirqOnt5RagelRR4SvaqRw
+.weak b__MA7naqebvq27OnpxGenpxvatNggevohgrSvaqreVAF_18OntNggevohgrSvaqreRCXAF_11ErfbyirqOnt5RagelRR4SvaqRw
 .type b__MA7naqebvq27OnpxGenpxvatNggevohgrSvaqreVAF_18OntNggevohgrSvaqreRCXAF_11ErfbyirqOnt5RagelRR4SvaqRw,%function
 b__MA7naqebvq27OnpxGenpxvatNggevohgrSvaqreVAF_18OntNggevohgrSvaqreRCXAF_11ErfbyirqOnt5RagelRR4SvaqRw:
 nop
@@ -793,7 +793,7 @@
 b__MAX7naqebvq12NffrgZnantre12trgNffrgCnguRv:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_7Fgevat8RR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq6IrpgbeVAF_7Fgevat8RR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq6IrpgbeVAF_7Fgevat8RR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq6IrpgbeVAF_7Fgevat8RR12qb_pbafgehpgRCiz:
 nop
@@ -823,7 +823,7 @@
 b__MAX7naqebvq12NffrgZnantre11trgErfGnoyrRo:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVuCXA7naqebvq17VqzncRagel_urnqreRRRAF_22__habeqrerq_znc_unfureVuF6_AF_4unfuVuRRYo1RRRAF_21__habeqrerq_znc_rdhnyVuF6_AF_8rdhny_gbVuRRYo1RRRAF_9nyybpngbeVF6_RRR8__erunfuRz
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVuCXA7naqebvq17VqzncRagel_urnqreRRRAF_22__habeqrerq_znc_unfureVuF6_AF_4unfuVuRRYo1RRRAF_21__habeqrerq_znc_rdhnyVuF6_AF_8rdhny_gbVuRRYo1RRRAF_9nyybpngbeVF6_RRR8__erunfuRz
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVuCXA7naqebvq17VqzncRagel_urnqreRRRAF_22__habeqrerq_znc_unfureVuF6_AF_4unfuVuRRYo1RRRAF_21__habeqrerq_znc_rdhnyVuF6_AF_8rdhny_gbVuRRYo1RRRAF_9nyybpngbeVF6_RRR8__erunfuRz,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVuCXA7naqebvq17VqzncRagel_urnqreRRRAF_22__habeqrerq_znc_unfureVuF6_AF_4unfuVuRRYo1RRRAF_21__habeqrerq_znc_rdhnyVuF6_AF_8rdhny_gbVuRRYo1RRRAF_9nyybpngbeVF6_RRR8__erunfuRz:
 nop
@@ -843,7 +843,7 @@
 b__MAX7naqebvq10ErfKZYGerr8trgReebeRi:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVuzRRAF_19__znc_inyhr_pbzcnerVuF2_AF_4yrffVuRRYo1RRRAF_9nyybpngbeVF2_RRR7qrfgeblRCAF_11__gerr_abqrVF2_CiRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVuzRRAF_19__znc_inyhr_pbzcnerVuF2_AF_4yrffVuRRYo1RRRAF_9nyybpngbeVF2_RRR7qrfgeblRCAF_11__gerr_abqrVF2_CiRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVuzRRAF_19__znc_inyhr_pbzcnerVuF2_AF_4yrffVuRRYo1RRRAF_9nyybpngbeVF2_RRR7qrfgeblRCAF_11__gerr_abqrVF2_CiRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVuzRRAF_19__znc_inyhr_pbzcnerVuF2_AF_4yrffVuRRYo1RRRAF_9nyybpngbeVF2_RRR7qrfgeblRCAF_11__gerr_abqrVF2_CiRR:
 nop
@@ -878,12 +878,12 @@
 b__MA7naqebvq22QvfcynlRiragQvfcngpure10vavgvnyvmrRi:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_2fcVAF_12NffrgZnantre9FunerqMvcRRRR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq6IrpgbeVAF_2fcVAF_12NffrgZnantre9FunerqMvcRRRR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq6IrpgbeVAF_2fcVAF_12NffrgZnantre9FunerqMvcRRRR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq6IrpgbeVAF_2fcVAF_12NffrgZnantre9FunerqMvcRRRR12qb_pbafgehpgRCiz:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq15ErfGnoyr_pbasvtRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVEXF2_RRiBG_
+.weak b__MAFg3__16irpgbeVA7naqebvq15ErfGnoyr_pbasvtRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVEXF2_RRiBG_
 .type b__MAFg3__16irpgbeVA7naqebvq15ErfGnoyr_pbasvtRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVEXF2_RRiBG_,%function
 b__MAFg3__16irpgbeVA7naqebvq15ErfGnoyr_pbasvtRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVEXF2_RRiBG_:
 nop
@@ -893,7 +893,7 @@
 b__MAX7naqebvq12ErfKZYCnefre17trgNggevohgrPbhagRi:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwCXAF_11ErfbyirqOnt5RagelRRRR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwCXAF_11ErfbyirqOnt5RagelRRRR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwCXAF_11ErfbyirqOnt5RagelRRRR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwCXAF_11ErfbyirqOnt5RagelRRRR15qb_zbir_sbejneqRCiCXiz:
 nop
@@ -908,7 +908,7 @@
 b__MAX7naqebvq15ErfGnoyr_pbasvt24vfYbpnyrZberFcrpvsvpGunaREXF0_:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RAF_9SvyrFgngrRRRR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RAF_9SvyrFgngrRRRR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RAF_9SvyrFgngrRRRR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RAF_9SvyrFgngrRRRR16qb_zbir_onpxjneqRCiCXiz:
 nop
@@ -918,12 +918,12 @@
 b__MAX7naqebvq13NffrgZnantre213TrgErfbheprVqREXAFg3__112onfvp_fgevatVpAF1_11pune_genvgfVpRRAF1_9nyybpngbeVpRRRRF9_F9_:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVzAF_4unfuVzRRAF_8rdhny_gbVzRRAF_9nyybpngbeVzRRR8__erunfuRz
+.weak b__MAFg3__112__unfu_gnoyrVzAF_4unfuVzRRAF_8rdhny_gbVzRRAF_9nyybpngbeVzRRR8__erunfuRz
 .type b__MAFg3__112__unfu_gnoyrVzAF_4unfuVzRRAF_8rdhny_gbVzRRAF_9nyybpngbeVzRRR8__erunfuRz,%function
 b__MAFg3__112__unfu_gnoyrVzAF_4unfuVzRRAF_8rdhny_gbVzRRAF_9nyybpngbeVzRRR8__erunfuRz:
 nop
 .text
-.globl b__MAFg3__16irpgbeVXAF_4cnveVA7naqebvq15BireynlnoyrVasbRAF_13habeqrerq_frgVwAF_4unfuVwRRAF_8rdhny_gbVwRRAF_9nyybpngbeVwRRRRRRAF9_VFQ_RRR21__chfu_onpx_fybj_cnguVFQ_RRiBG_
+.weak b__MAFg3__16irpgbeVXAF_4cnveVA7naqebvq15BireynlnoyrVasbRAF_13habeqrerq_frgVwAF_4unfuVwRRAF_8rdhny_gbVwRRAF_9nyybpngbeVwRRRRRRAF9_VFQ_RRR21__chfu_onpx_fybj_cnguVFQ_RRiBG_
 .type b__MAFg3__16irpgbeVXAF_4cnveVA7naqebvq15BireynlnoyrVasbRAF_13habeqrerq_frgVwAF_4unfuVwRRAF_8rdhny_gbVwRRAF_9nyybpngbeVwRRRRRRAF9_VFQ_RRR21__chfu_onpx_fybj_cnguVFQ_RRiBG_,%function
 b__MAFg3__16irpgbeVXAF_4cnveVA7naqebvq15BireynlnoyrVasbRAF_13habeqrerq_frgVwAF_4unfuVwRRAF_8rdhny_gbVwRRAF_9nyybpngbeVwRRRRRRAF9_VFQ_RRR21__chfu_onpx_fybj_cnguVFQ_RRiBG_:
 nop
@@ -933,7 +933,7 @@
 b__MAX7naqebvq12ErfKZYCnefre9trgGrkgVQRi:
 nop
 .data
-.globl b__MGIA7naqebvq6IrpgbeVAF_7Fgevat8RRR
+.weak b__MGIA7naqebvq6IrpgbeVAF_7Fgevat8RRR
 .type b__MGIA7naqebvq6IrpgbeVAF_7Fgevat8RRR,%object
 b__MGIA7naqebvq6IrpgbeVAF_7Fgevat8RRR:
 .space __SIZEOF_POINTER__
@@ -968,7 +968,7 @@
 b__MAX7naqebvq13NffrgZnantre225TrgYnfgErfbheprErfbyhgvbaRi:
 nop
 .data
-.globl b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_14onfvp_vbfgernzVpF2_RR
+.weak b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_14onfvp_vbfgernzVpF2_RR
 .type b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_14onfvp_vbfgernzVpF2_RR,%object
 b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_14onfvp_vbfgernzVpF2_RR:
 .space __SIZEOF_POINTER__
@@ -988,7 +988,7 @@
 b__MA7naqebvq5GurzrP1RCAF_13NffrgZnantre2R:
 nop
 .text
-.globl b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9haqresybjRi
+.weak b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9haqresybjRi
 .type b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9haqresybjRi,%function
 b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9haqresybjRi:
 nop
@@ -1013,7 +1013,7 @@
 b__MA7naqebvq20FgernzvatMvcVasyngreP1Rvyzz:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRF7_RRAF_22__habeqrerq_znc_unfureVF7_F8_AF_4unfuVF7_RRYo1RRRAF_21__habeqrerq_znc_rdhnyVF7_F8_AF_8rdhny_gbVF7_RRYo1RRRAF5_VF8_RRR6erunfuRz
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRF7_RRAF_22__habeqrerq_znc_unfureVF7_F8_AF_4unfuVF7_RRYo1RRRAF_21__habeqrerq_znc_rdhnyVF7_F8_AF_8rdhny_gbVF7_RRYo1RRRAF5_VF8_RRR6erunfuRz
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRF7_RRAF_22__habeqrerq_znc_unfureVF7_F8_AF_4unfuVF7_RRYo1RRRAF_21__habeqrerq_znc_rdhnyVF7_F8_AF_8rdhny_gbVF7_RRYo1RRRAF5_VF8_RRR6erunfuRz,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRF7_RRAF_22__habeqrerq_znc_unfureVF7_F8_AF_4unfuVF7_RRYo1RRRAF_21__habeqrerq_znc_rdhnyVF7_F8_AF_8rdhny_gbVF7_RRYo1RRRAF5_VF8_RRR6erunfuRz:
 nop
@@ -1043,12 +1043,12 @@
 b__MA7naqebvq13NffrgZnantre217ErohvyqSvygreYvfgRo:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwA7naqebvq4hgvy11havdhr_pcgeVAF2_11ErfbyirqOntRRRRRAF_22__habeqrerq_znc_unfureVwF7_AF_4unfuVwRRYo1RRRAF_21__habeqrerq_znc_rdhnyVwF7_AF_8rdhny_gbVwRRYo1RRRAF_9nyybpngbeVF7_RRR6erunfuRz
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwA7naqebvq4hgvy11havdhr_pcgeVAF2_11ErfbyirqOntRRRRRAF_22__habeqrerq_znc_unfureVwF7_AF_4unfuVwRRYo1RRRAF_21__habeqrerq_znc_rdhnyVwF7_AF_8rdhny_gbVwRRYo1RRRAF_9nyybpngbeVF7_RRR6erunfuRz
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwA7naqebvq4hgvy11havdhr_pcgeVAF2_11ErfbyirqOntRRRRRAF_22__habeqrerq_znc_unfureVwF7_AF_4unfuVwRRYo1RRRAF_21__habeqrerq_znc_rdhnyVwF7_AF_8rdhny_gbVwRRYo1RRRAF_9nyybpngbeVF7_RRR6erunfuRz,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwA7naqebvq4hgvy11havdhr_pcgeVAF2_11ErfbyirqOntRRRRRAF_22__habeqrerq_znc_unfureVwF7_AF_4unfuVwRRYo1RRRAF_21__habeqrerq_znc_rdhnyVwF7_AF_8rdhny_gbVwRRYo1RRRAF_9nyybpngbeVF7_RRR6erunfuRz:
 nop
 .text
-.globl b__MAFg3__120__funerq_cge_rzcynprVA7naqebvq6IrpgbeVCXAF1_13ErfGnoyr_glcrRRRAF_9nyybpngbeVF6_RRR21__ba_mreb_funerq_jrnxRi
+.weak b__MAFg3__120__funerq_cge_rzcynprVA7naqebvq6IrpgbeVCXAF1_13ErfGnoyr_glcrRRRAF_9nyybpngbeVF6_RRR21__ba_mreb_funerq_jrnxRi
 .type b__MAFg3__120__funerq_cge_rzcynprVA7naqebvq6IrpgbeVCXAF1_13ErfGnoyr_glcrRRRAF_9nyybpngbeVF6_RRR21__ba_mreb_funerq_jrnxRi,%function
 b__MAFg3__120__funerq_cge_rzcynprVA7naqebvq6IrpgbeVCXAF1_13ErfGnoyr_glcrRRRAF_9nyybpngbeVF6_RRR21__ba_mreb_funerq_jrnxRi:
 nop
@@ -1073,7 +1073,7 @@
 b__MAX7naqebvq17PbasvtQrfpevcgvba23UnfUvtureCerprqraprGunaREXF0_:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAFg3__110funerq_cgeVAF0_VCXAF_13ErfGnoyr_glcrRRRRRR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAFg3__110funerq_cgeVAF0_VCXAF_13ErfGnoyr_glcrRRRRRR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAFg3__110funerq_cgeVAF0_VCXAF_13ErfGnoyr_glcrRRRRRR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAFg3__110funerq_cgeVAF0_VCXAF_13ErfGnoyr_glcrRRRRRR16qb_zbir_onpxjneqRCiCXiz:
 nop
@@ -1088,7 +1088,7 @@
 b__MA7naqebvq13ErfFgevatCbbyP2Ri:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVCAF_8ErfGnoyr6UrnqreRR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVCAF_8ErfGnoyr6UrnqreRR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVCAF_8ErfGnoyr6UrnqreRR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVCAF_8ErfGnoyr6UrnqreRR16qb_zbir_onpxjneqRCiCXiz:
 nop
@@ -1108,12 +1108,12 @@
 b__MA7naqebvq12NffrgZnantre9FunerqMvcQ0Ri:
 nop
 .data
-.globl b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwzRRRR
+.weak b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwzRRRR
 .type b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwzRRRR,%object
 b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwzRRRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVuAF_12VqzncRagevrfRRRR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVuAF_12VqzncRagevrfRRRR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVuAF_12VqzncRagevrfRRRR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVuAF_12VqzncRagevrfRRRR12qb_pbafgehpgRCiz:
 nop
@@ -1133,7 +1133,7 @@
 b__MAX7naqebvq8ErfGnoyr13inyhrGbFgevatRCXAF_9Erf_inyhrRzCQfCz:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_8Fgevat16RuRRR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_8Fgevat16RuRRR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_8Fgevat16RuRRR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_8Fgevat16RuRRR12qb_pbafgehpgRCiz:
 nop
@@ -1153,12 +1153,12 @@
 b__MA7naqebvq12PhefbeJvaqbj10trgEbjFybgRw:
 nop
 .text
-.globl b__MAFg3__112onfvp_fgevatVQfAF_11pune_genvgfVQfRRAF_9nyybpngbeVQfRRR9__tebj_olRzzzzzz
+.weak b__MAFg3__112onfvp_fgevatVQfAF_11pune_genvgfVQfRRAF_9nyybpngbeVQfRRR9__tebj_olRzzzzzz
 .type b__MAFg3__112onfvp_fgevatVQfAF_11pune_genvgfVQfRRAF_9nyybpngbeVQfRRR9__tebj_olRzzzzzz,%function
 b__MAFg3__112onfvp_fgevatVQfAF_11pune_genvgfVQfRRAF_9nyybpngbeVQfRRR9__tebj_olRzzzzzz:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVuCXA7naqebvq17VqzncRagel_urnqreRRRAF_22__habeqrerq_znc_unfureVuF6_AF_4unfuVuRRYo1RRRAF_21__habeqrerq_znc_rdhnyVuF6_AF_8rdhny_gbVuRRYo1RRRAF_9nyybpngbeVF6_RRR6erunfuRz
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVuCXA7naqebvq17VqzncRagel_urnqreRRRAF_22__habeqrerq_znc_unfureVuF6_AF_4unfuVuRRYo1RRRAF_21__habeqrerq_znc_rdhnyVuF6_AF_8rdhny_gbVuRRYo1RRRAF_9nyybpngbeVF6_RRR6erunfuRz
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVuCXA7naqebvq17VqzncRagel_urnqreRRRAF_22__habeqrerq_znc_unfureVuF6_AF_4unfuVuRRYo1RRRAF_21__habeqrerq_znc_rdhnyVuF6_AF_8rdhny_gbVuRRYo1RRRAF_9nyybpngbeVF6_RRR6erunfuRz,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVuCXA7naqebvq17VqzncRagel_urnqreRRRAF_22__habeqrerq_znc_unfureVuF6_AF_4unfuVuRRYo1RRRAF_21__habeqrerq_znc_rdhnyVuF6_AF_8rdhny_gbVuRRYo1RRRAF_9nyybpngbeVF6_RRR6erunfuRz:
 nop
@@ -1188,7 +1188,7 @@
 b__MAX7naqebvq12ErfKZYCnefre16vaqrkBsNggevohgrRCXpF2_:
 nop
 .data
-.globl b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_13onfvp_vfgernzVpF2_RR
+.weak b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_13onfvp_vfgernzVpF2_RR
 .type b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_13onfvp_vfgernzVpF2_RR,%object
 b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_13onfvp_vfgernzVpF2_RR:
 .space __SIZEOF_POINTER__
@@ -1198,12 +1198,12 @@
 b__MAX7naqebvq13NffrgZnantre211TrgErfbheprRwogCAF_9Erf_inyhrRCAF_15ErfGnoyr_pbasvtRCw:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwuRRAF_22__habeqrerq_znc_unfureVwF2_AF_4unfuVwRRYo1RRRAF_21__habeqrerq_znc_rdhnyVwF2_AF_8rdhny_gbVwRRYo1RRRAF_9nyybpngbeVF2_RRR8__erunfuRz
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwuRRAF_22__habeqrerq_znc_unfureVwF2_AF_4unfuVwRRYo1RRRAF_21__habeqrerq_znc_rdhnyVwF2_AF_8rdhny_gbVwRRYo1RRRAF_9nyybpngbeVF2_RRR8__erunfuRz
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwuRRAF_22__habeqrerq_znc_unfureVwF2_AF_4unfuVwRRYo1RRRAF_21__habeqrerq_znc_rdhnyVwF2_AF_8rdhny_gbVwRRYo1RRRAF_9nyybpngbeVF2_RRR8__erunfuRz,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwuRRAF_22__habeqrerq_znc_unfureVwF2_AF_4unfuVwRRYo1RRRAF_21__habeqrerq_znc_rdhnyVwF2_AF_8rdhny_gbVwRRYo1RRRAF_9nyybpngbeVF2_RRR8__erunfuRz:
 nop
 .data
-.globl b__MGIA7naqebvq6IrpgbeVAFg3__110funerq_cgeVAF0_VCXAF_13ErfGnoyr_glcrRRRRRRR
+.weak b__MGIA7naqebvq6IrpgbeVAFg3__110funerq_cgeVAF0_VCXAF_13ErfGnoyr_glcrRRRRRRR
 .type b__MGIA7naqebvq6IrpgbeVAFg3__110funerq_cgeVAF0_VCXAF_13ErfGnoyr_glcrRRRRRRR,%object
 b__MGIA7naqebvq6IrpgbeVAFg3__110funerq_cgeVAF0_VCXAF_13ErfGnoyr_glcrRRRRRRR:
 .space __SIZEOF_POINTER__
@@ -1213,7 +1213,7 @@
 b__MA7naqebvq12NffrgZnantre6MvcFrgQ2Ri:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RAF_7SvyrErpRRRR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RAF_7SvyrErpRRRR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RAF_7SvyrErpRRRR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RAF_7SvyrErpRRRR12qb_pbafgehpgRCiz:
 nop
@@ -1233,12 +1233,12 @@
 b__MA7naqebvq5GurzrQ2Ri:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVCAF_8ErfGnoyr4GlcrRR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq6IrpgbeVCAF_8ErfGnoyr4GlcrRR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq6IrpgbeVCAF_8ErfGnoyr4GlcrRR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq6IrpgbeVCAF_8ErfGnoyr4GlcrRR12qb_pbafgehpgRCiz:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq13NffrgZnantre210Erfbyhgvba4FgrcRAF_9nyybpngbeVF4_RRR21__chfu_onpx_fybj_cnguVF4_RRiBG_
+.weak b__MAFg3__16irpgbeVA7naqebvq13NffrgZnantre210Erfbyhgvba4FgrcRAF_9nyybpngbeVF4_RRR21__chfu_onpx_fybj_cnguVF4_RRiBG_
 .type b__MAFg3__16irpgbeVA7naqebvq13NffrgZnantre210Erfbyhgvba4FgrcRAF_9nyybpngbeVF4_RRR21__chfu_onpx_fybj_cnguVF4_RRiBG_,%function
 b__MAFg3__16irpgbeVA7naqebvq13NffrgZnantre210Erfbyhgvba4FgrcRAF_9nyybpngbeVF4_RRR21__chfu_onpx_fybj_cnguVF4_RRiBG_:
 nop
@@ -1263,7 +1263,7 @@
 b__MAX7naqebvq13ErfFgevatCbby14fgevatQrpbqrNgRzCXuzCz:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVwzRRAF_19__znc_inyhr_pbzcnerVwF2_AF_4yrffVwRRYo1RRRAF_9nyybpngbeVF2_RRR7qrfgeblRCAF_11__gerr_abqrVF2_CiRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVwzRRAF_19__znc_inyhr_pbzcnerVwF2_AF_4yrffVwRRYo1RRRAF_9nyybpngbeVF2_RRR7qrfgeblRCAF_11__gerr_abqrVF2_CiRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVwzRRAF_19__znc_inyhr_pbzcnerVwF2_AF_4yrffVwRRYo1RRRAF_9nyybpngbeVF2_RRR7qrfgeblRCAF_11__gerr_abqrVF2_CiRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVwzRRAF_19__znc_inyhr_pbzcnerVwF2_AF_4yrffVwRRYo1RRRAF_9nyybpngbeVF2_RRR7qrfgeblRCAF_11__gerr_abqrVF2_CiRR:
 nop
@@ -1288,7 +1288,7 @@
 b__MAX7naqebvq15ErfGnoyr_pbasvt14trgOpc47YbpnyrRCpo:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_2fcVAF_12NffrgZnantre9FunerqMvcRRRR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_2fcVAF_12NffrgZnantre9FunerqMvcRRRR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_2fcVAF_12NffrgZnantre9FunerqMvcRRRR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_2fcVAF_12NffrgZnantre9FunerqMvcRRRR16qb_zbir_onpxjneqRCiCXiz:
 nop
@@ -1298,7 +1298,7 @@
 b__MAX7naqebvq13NffrgZnantre225TrgErfbheprPbasvthengvbafRoo:
 nop
 .data
-.globl b__MGIA7naqebvq5NffrgR
+.weak b__MGIA7naqebvq5NffrgR
 .type b__MGIA7naqebvq5NffrgR,%object
 b__MGIA7naqebvq5NffrgR:
 .space __SIZEOF_POINTER__
@@ -1308,7 +1308,7 @@
 b__MA7naqebvq12NffrgZnantre6MvcFrg19frgMvcErfbheprGnoyrREXAF_7Fgevat8RCAF_8ErfGnoyrR:
 nop
 .data
-.globl b__MGIA7naqebvq6IrpgbeVAF_2fcVAF_12NffrgZnantre9FunerqMvcRRRRR
+.weak b__MGIA7naqebvq6IrpgbeVAF_2fcVAF_12NffrgZnantre9FunerqMvcRRRRR
 .type b__MGIA7naqebvq6IrpgbeVAF_2fcVAF_12NffrgZnantre9FunerqMvcRRRRR,%object
 b__MGIA7naqebvq6IrpgbeVAF_2fcVAF_12NffrgZnantre9FunerqMvcRRRRR:
 .space __SIZEOF_POINTER__
@@ -1328,12 +1328,12 @@
 b__MA7naqebvq12NffrgZnantre9FunerqMvc6perngrRvEXAF_7Fgevat8R:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RAF_2jcVAF_12NffrgZnantre9FunerqMvcRRRRRR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RAF_2jcVAF_12NffrgZnantre9FunerqMvcRRRRRR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RAF_2jcVAF_12NffrgZnantre9FunerqMvcRRRRRR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RAF_2jcVAF_12NffrgZnantre9FunerqMvcRRRRRR16qb_zbir_onpxjneqRCiCXiz:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwAF_6irpgbeVwAF_9nyybpngbeVwRRRRRRAF_22__habeqrerq_znc_unfureVwF6_AF_4unfuVwRRYo1RRRAF_21__habeqrerq_znc_rdhnyVwF6_AF_8rdhny_gbVwRRYo1RRRAF3_VF6_RRR25__rzcynpr_havdhr_xrl_netfVwWEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXwRRRAFY_VWRRRRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF6_CiRRRRoRREXG_QcBG0_
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwAF_6irpgbeVwAF_9nyybpngbeVwRRRRRRAF_22__habeqrerq_znc_unfureVwF6_AF_4unfuVwRRYo1RRRAF_21__habeqrerq_znc_rdhnyVwF6_AF_8rdhny_gbVwRRYo1RRRAF3_VF6_RRR25__rzcynpr_havdhr_xrl_netfVwWEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXwRRRAFY_VWRRRRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF6_CiRRRRoRREXG_QcBG0_
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwAF_6irpgbeVwAF_9nyybpngbeVwRRRRRRAF_22__habeqrerq_znc_unfureVwF6_AF_4unfuVwRRYo1RRRAF_21__habeqrerq_znc_rdhnyVwF6_AF_8rdhny_gbVwRRYo1RRRAF3_VF6_RRR25__rzcynpr_havdhr_xrl_netfVwWEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXwRRRAFY_VWRRRRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF6_CiRRRRoRREXG_QcBG0_,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwAF_6irpgbeVwAF_9nyybpngbeVwRRRRRRAF_22__habeqrerq_znc_unfureVwF6_AF_4unfuVwRRYo1RRRAF_21__habeqrerq_znc_rdhnyVwF6_AF_8rdhny_gbVwRRYo1RRRAF3_VF6_RRR25__rzcynpr_havdhr_xrl_netfVwWEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXwRRRAFY_VWRRRRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF6_CiRRRRoRREXG_QcBG0_:
 nop
@@ -1343,7 +1343,7 @@
 b__MA7naqebvq10ErfKZYGerrP1RCXAF_15QlanzvpErsGnoyrR:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVuAF_12VqzncRagevrfRRRR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVuAF_12VqzncRagevrfRRRR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVuAF_12VqzncRagevrfRRRR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVuAF_12VqzncRagevrfRRRR16qb_zbir_onpxjneqRCiCXiz:
 nop
@@ -1353,7 +1353,7 @@
 b__MAX7naqebvq12NffrgZnantre15bcraVqzncYbpxrqREXAF0_10nffrg_cnguR:
 nop
 .data
-.globl b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwCXAF_11ErfbyirqOnt5RagelRRRRR
+.weak b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwCXAF_11ErfbyirqOnt5RagelRRRRR
 .type b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwCXAF_11ErfbyirqOnt5RagelRRRRR,%object
 b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwCXAF_11ErfbyirqOnt5RagelRRRRR:
 .space __SIZEOF_POINTER__
@@ -1388,7 +1388,7 @@
 b__MA7naqebvq17PbasvtQrfpevcgvba13QrsnhygPbasvtRi:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVCAF_8ErfGnoyr12CnpxntrTebhcRR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVCAF_8ErfGnoyr12CnpxntrTebhcRR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVCAF_8ErfGnoyr12CnpxntrTebhcRR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVCAF_8ErfGnoyr12CnpxntrTebhcRR16qb_zbir_onpxjneqRCiCXiz:
 nop
@@ -1428,12 +1428,12 @@
 b__MAX7naqebvq13ErfFgevatCbby5olgrfRi:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RAF_9SvyrFgngrRRRR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RAF_9SvyrFgngrRRRR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RAF_9SvyrFgngrRRRR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RAF_9SvyrFgngrRRRR12qb_pbafgehpgRCiz:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVCAF_8ErfGnoyr12CnpxntrTebhcRR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq6IrpgbeVCAF_8ErfGnoyr12CnpxntrTebhcRR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq6IrpgbeVCAF_8ErfGnoyr12CnpxntrTebhcRR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq6IrpgbeVCAF_8ErfGnoyr12CnpxntrTebhcRR10qb_qrfgeblRCiz:
 nop
@@ -1448,7 +1448,7 @@
 b__MA7naqebvq20FgernzvatMvcVasyngre12frrxNofbyhgrRy:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwzRRR10qb_pbzcnerRCXiF5_
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwzRRR10qb_pbzcnerRCXiF5_
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwzRRR10qb_pbzcnerRCXiF5_,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwzRRR10qb_pbzcnerRCXiF5_:
 nop
@@ -1458,7 +1458,7 @@
 b__MA7naqebvq8ErfGnoyr5GurzrQ2Ri:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_4yrffVF6_RRAF4_VF6_RRR12__svaq_rdhnyVF6_RRECAF_16__gerr_abqr_onfrVCiRRECAF_15__gerr_raq_abqrVFS_RREXG_
+.weak b__MAFg3__16__gerrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_4yrffVF6_RRAF4_VF6_RRR12__svaq_rdhnyVF6_RRECAF_16__gerr_abqr_onfrVCiRRECAF_15__gerr_raq_abqrVFS_RREXG_
 .type b__MAFg3__16__gerrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_4yrffVF6_RRAF4_VF6_RRR12__svaq_rdhnyVF6_RRECAF_16__gerr_abqr_onfrVCiRRECAF_15__gerr_raq_abqrVFS_RREXG_,%function
 b__MAFg3__16__gerrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_4yrffVF6_RRAF4_VF6_RRR12__svaq_rdhnyVF6_RRECAF_16__gerr_abqr_onfrVCiRRECAF_15__gerr_raq_abqrVFS_RREXG_:
 nop
@@ -1468,7 +1468,7 @@
 b__MAX7naqebvq13ErfFgevatCbby4fvmrRi:
 nop
 .text
-.globl b__MAFg3__124__chg_punenpgre_frdhraprVpAF_11pune_genvgfVpRRRREAF_13onfvp_bfgernzVG_G0_RRF7_CXF4_z
+.weak b__MAFg3__124__chg_punenpgre_frdhraprVpAF_11pune_genvgfVpRRRREAF_13onfvp_bfgernzVG_G0_RRF7_CXF4_z
 .type b__MAFg3__124__chg_punenpgre_frdhraprVpAF_11pune_genvgfVpRRRREAF_13onfvp_bfgernzVG_G0_RRF7_CXF4_z,%function
 b__MAFg3__124__chg_punenpgre_frdhraprVpAF_11pune_genvgfVpRRRREAF_13onfvp_bfgernzVG_G0_RRF7_CXF4_z:
 nop
@@ -1478,7 +1478,7 @@
 b__MA7naqebvq12NffrgZnantre15zretrVasbYbpxrqRCAF_12FbegrqIrpgbeVAF_8NffrgQve8SvyrVasbRRRCXF4_:
 nop
 .text
-.globl b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR7frrxbssRkAF_8vbf_onfr7frrxqveRw
+.weak b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR7frrxbssRkAF_8vbf_onfr7frrxqveRw
 .type b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR7frrxbssRkAF_8vbf_onfr7frrxqveRw,%function
 b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR7frrxbssRkAF_8vbf_onfr7frrxqveRw:
 nop
@@ -1488,12 +1488,12 @@
 b__MA7naqebvq11YbpnyrInyhr10frg_ertvbaRCXp:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_12NffrgZnantre10nffrg_cnguRR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq6IrpgbeVAF_12NffrgZnantre10nffrg_cnguRR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq6IrpgbeVAF_12NffrgZnantre10nffrg_cnguRR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq6IrpgbeVAF_12NffrgZnantre10nffrg_cnguRR12qb_pbafgehpgRCiz:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_8Fgevat16RuRRR10qb_pbzcnerRCXiF6_
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_8Fgevat16RuRRR10qb_pbzcnerRCXiF6_
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_8Fgevat16RuRRR10qb_pbzcnerRCXiF6_,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_8Fgevat16RuRRR10qb_pbzcnerRCXiF6_:
 nop
@@ -1518,7 +1518,7 @@
 b__MA7naqebvq14GbErfbheprAnzrREXAF_13FgevatCbbyErsRF2_EXAF_16OnfvpFgevatCvrprVpRRCAF_13NffrgZnantre212ErfbheprAnzrR:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwAF_6irpgbeVwAF_9nyybpngbeVwRRRRRRAF_22__habeqrerq_znc_unfureVwF6_AF_4unfuVwRRYo1RRRAF_21__habeqrerq_znc_rdhnyVwF6_AF_8rdhny_gbVwRRYo1RRRAF3_VF6_RRR8__erunfuRz
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwAF_6irpgbeVwAF_9nyybpngbeVwRRRRRRAF_22__habeqrerq_znc_unfureVwF6_AF_4unfuVwRRYo1RRRAF_21__habeqrerq_znc_rdhnyVwF6_AF_8rdhny_gbVwRRYo1RRRAF3_VF6_RRR8__erunfuRz
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwAF_6irpgbeVwAF_9nyybpngbeVwRRRRRRAF_22__habeqrerq_znc_unfureVwF6_AF_4unfuVwRRYo1RRRAF_21__habeqrerq_znc_rdhnyVwF6_AF_8rdhny_gbVwRRYo1RRRAF3_VF6_RRR8__erunfuRz,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwAF_6irpgbeVwAF_9nyybpngbeVwRRRRRRAF_22__habeqrerq_znc_unfureVwF6_AF_4unfuVwRRYo1RRRAF_21__habeqrerq_znc_rdhnyVwF6_AF_8rdhny_gbVwRRYo1RRRAF3_VF6_RRR8__erunfuRz:
 nop
@@ -1543,12 +1543,12 @@
 b__MA7naqebvq12NffrgZnantre6MvcFrg11trgCnguAnzrRCXp:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVvvRRAF_19__znc_inyhr_pbzcnerVvF2_AF_4yrffVvRRYo1RRRAF_9nyybpngbeVF2_RRR12__svaq_rdhnyVvRRECAF_16__gerr_abqr_onfrVCiRRAF_21__gerr_pbafg_vgrengbeVF2_CAF_11__gerr_abqrVF2_FP_RRyRRECAF_15__gerr_raq_abqrVFR_RRFS_EXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVvvRRAF_19__znc_inyhr_pbzcnerVvF2_AF_4yrffVvRRYo1RRRAF_9nyybpngbeVF2_RRR12__svaq_rdhnyVvRRECAF_16__gerr_abqr_onfrVCiRRAF_21__gerr_pbafg_vgrengbeVF2_CAF_11__gerr_abqrVF2_FP_RRyRRECAF_15__gerr_raq_abqrVFR_RRFS_EXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVvvRRAF_19__znc_inyhr_pbzcnerVvF2_AF_4yrffVvRRYo1RRRAF_9nyybpngbeVF2_RRR12__svaq_rdhnyVvRRECAF_16__gerr_abqr_onfrVCiRRAF_21__gerr_pbafg_vgrengbeVF2_CAF_11__gerr_abqrVF2_FP_RRyRRECAF_15__gerr_raq_abqrVFR_RRFS_EXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVvvRRAF_19__znc_inyhr_pbzcnerVvF2_AF_4yrffVvRRYo1RRRAF_9nyybpngbeVF2_RRR12__svaq_rdhnyVvRRECAF_16__gerr_abqr_onfrVCiRRAF_21__gerr_pbafg_vgrengbeVF2_CAF_11__gerr_abqrVF2_FP_RRyRRECAF_15__gerr_raq_abqrVFR_RRFS_EXG_:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVCAF_8ErfGnoyr4GlcrRR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVCAF_8ErfGnoyr4GlcrRR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVCAF_8ErfGnoyr4GlcrRR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVCAF_8ErfGnoyr4GlcrRR8qb_fcyngRCiCXiz:
 nop
@@ -1568,7 +1568,7 @@
 b__MA7naqebvq17ErfgberUrycreOnfr9JevgrSvyrREXAF_7Fgevat8RCAF_16OnpxhcQngnErnqreR:
 nop
 .data
-.globl b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_8Fgevat16RuRRRR
+.weak b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_8Fgevat16RuRRRR
 .type b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_8Fgevat16RuRRRR,%object
 b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_8Fgevat16RuRRRR:
 .space __SIZEOF_POINTER__
@@ -1578,12 +1578,12 @@
 b__MA7naqebvq13ErfFgevatCbbyQ2Ri:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAFg3__110funerq_cgeVAF0_VCXAF_13ErfGnoyr_glcrRRRRRR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAFg3__110funerq_cgeVAF0_VCXAF_13ErfGnoyr_glcrRRRRRR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAFg3__110funerq_cgeVAF0_VCXAF_13ErfGnoyr_glcrRRRRRR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAFg3__110funerq_cgeVAF0_VCXAF_13ErfGnoyr_glcrRRRRRR7qb_pbclRCiCXiz:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVCXAF_13ErfGnoyr_glcrRR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVCXAF_13ErfGnoyr_glcrRR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVCXAF_13ErfGnoyr_glcrRR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVCXAF_13ErfGnoyr_glcrRR16qb_zbir_onpxjneqRCiCXiz:
 nop
@@ -1593,7 +1593,7 @@
 b__MAX7naqebvq8ErfGnoyr13trgCnenzrgrefRCAF_15ErfGnoyr_pbasvtR:
 nop
 .text
-.globl b__MAXFg3__110__shapgvba6__shapVCSvvRAF_9nyybpngbeVF3_RRSppRR7__pybarRi
+.weak b__MAXFg3__110__shapgvba6__shapVCSvvRAF_9nyybpngbeVF3_RRSppRR7__pybarRi
 .type b__MAXFg3__110__shapgvba6__shapVCSvvRAF_9nyybpngbeVF3_RRSppRR7__pybarRi,%function
 b__MAXFg3__110__shapgvba6__shapVCSvvRAF_9nyybpngbeVF3_RRSppRR7__pybarRi:
 nop
@@ -1618,7 +1618,7 @@
 b__MAX7naqebvq12ErfKZYCnefre21trgNggevohgrAnzrfcnprRzCz:
 nop
 .data
-.globl b__MGIA7naqebvq8NffrgQveR
+.weak b__MGIA7naqebvq8NffrgQveR
 .type b__MGIA7naqebvq8NffrgQveR,%object
 b__MGIA7naqebvq8NffrgQveR:
 .space __SIZEOF_POINTER__
@@ -1658,27 +1658,27 @@
 b__MA7naqebvq12NffrgZnantre6MvcFrg19trgMvcErfbheprGnoyrREXAF_7Fgevat8R:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwA7naqebvq4hgvy11havdhr_pcgeVAF2_11ErfbyirqOntRRRRRAF_22__habeqrerq_znc_unfureVwF7_AF_4unfuVwRRYo1RRRAF_21__habeqrerq_znc_rdhnyVwF7_AF_8rdhny_gbVwRRYo1RRRAF_9nyybpngbeVF7_RRR8__erunfuRz
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwA7naqebvq4hgvy11havdhr_pcgeVAF2_11ErfbyirqOntRRRRRAF_22__habeqrerq_znc_unfureVwF7_AF_4unfuVwRRYo1RRRAF_21__habeqrerq_znc_rdhnyVwF7_AF_8rdhny_gbVwRRYo1RRRAF_9nyybpngbeVF7_RRR8__erunfuRz
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwA7naqebvq4hgvy11havdhr_pcgeVAF2_11ErfbyirqOntRRRRRAF_22__habeqrerq_znc_unfureVwF7_AF_4unfuVwRRYo1RRRAF_21__habeqrerq_znc_rdhnyVwF7_AF_8rdhny_gbVwRRYo1RRRAF_9nyybpngbeVF7_RRR8__erunfuRz,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwA7naqebvq4hgvy11havdhr_pcgeVAF2_11ErfbyirqOntRRRRRAF_22__habeqrerq_znc_unfureVwF7_AF_4unfuVwRRYo1RRRAF_21__habeqrerq_znc_rdhnyVwF7_AF_8rdhny_gbVwRRYo1RRRAF_9nyybpngbeVF7_RRR8__erunfuRz:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwCXAF_11ErfbyirqOnt5RagelRRRR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwCXAF_11ErfbyirqOnt5RagelRRRR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwCXAF_11ErfbyirqOnt5RagelRRRR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwCXAF_11ErfbyirqOnt5RagelRRRR8qb_fcyngRCiCXiz:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVzAF_4unfuVzRRAF_8rdhny_gbVzRRAF_9nyybpngbeVzRRR25__rzcynpr_havdhr_xrl_netfVzWEXzRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVzCiRRRRoRREXG_QcBG0_
+.weak b__MAFg3__112__unfu_gnoyrVzAF_4unfuVzRRAF_8rdhny_gbVzRRAF_9nyybpngbeVzRRR25__rzcynpr_havdhr_xrl_netfVzWEXzRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVzCiRRRRoRREXG_QcBG0_
 .type b__MAFg3__112__unfu_gnoyrVzAF_4unfuVzRRAF_8rdhny_gbVzRRAF_9nyybpngbeVzRRR25__rzcynpr_havdhr_xrl_netfVzWEXzRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVzCiRRRRoRREXG_QcBG0_,%function
 b__MAFg3__112__unfu_gnoyrVzAF_4unfuVzRRAF_8rdhny_gbVzRRAF_9nyybpngbeVzRRR25__rzcynpr_havdhr_xrl_netfVzWEXzRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVzCiRRRRoRREXG_QcBG0_:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVCAF_8ErfGnoyr6UrnqreRR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq6IrpgbeVCAF_8ErfGnoyr6UrnqreRR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq6IrpgbeVCAF_8ErfGnoyr6UrnqreRR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq6IrpgbeVCAF_8ErfGnoyr6UrnqreRR10qb_qrfgeblRCiz:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RAF_7SvyrErpRRRR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RAF_7SvyrErpRRRR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RAF_7SvyrErpRRRR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RAF_7SvyrErpRRRR8qb_fcyngRCiCXiz:
 nop
@@ -1693,7 +1693,7 @@
 b__MA7naqebvq13NffrgZnantre216TrgOntErfVqFgnpxRw:
 nop
 .text
-.globl b__MAFg3__120__funerq_cge_rzcynprVA7naqebvq6IrpgbeVCXAF1_13ErfGnoyr_glcrRRRAF_9nyybpngbeVF6_RRR16__ba_mreb_funerqRi
+.weak b__MAFg3__120__funerq_cge_rzcynprVA7naqebvq6IrpgbeVCXAF1_13ErfGnoyr_glcrRRRAF_9nyybpngbeVF6_RRR16__ba_mreb_funerqRi
 .type b__MAFg3__120__funerq_cge_rzcynprVA7naqebvq6IrpgbeVCXAF1_13ErfGnoyr_glcrRRRAF_9nyybpngbeVF6_RRR16__ba_mreb_funerqRi,%function
 b__MAFg3__120__funerq_cge_rzcynprVA7naqebvq6IrpgbeVCXAF1_13ErfGnoyr_glcrRRRAF_9nyybpngbeVF6_RRR16__ba_mreb_funerqRi:
 nop
@@ -1713,7 +1713,7 @@
 b__MA7naqebvq8ErfGnoyr18abeznyvmrSbeBhgchgRCXp:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVCAF_8ErfGnoyr4GlcrRR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVCAF_8ErfGnoyr4GlcrRR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVCAF_8ErfGnoyr4GlcrRR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVCAF_8ErfGnoyr4GlcrRR15qb_zbir_sbejneqRCiCXiz:
 nop
@@ -1733,7 +1733,7 @@
 b__MAX7naqebvq12NffrgZnantre20nccraqCnguGbErfGnoyrREAF0_10nffrg_cnguRo:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_2fcVAF_12NffrgZnantre9FunerqMvcRRRR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_2fcVAF_12NffrgZnantre9FunerqMvcRRRR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_2fcVAF_12NffrgZnantre9FunerqMvcRRRR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_2fcVAF_12NffrgZnantre9FunerqMvcRRRR15qb_zbir_sbejneqRCiCXiz:
 nop
@@ -1748,7 +1748,7 @@
 b__MA7naqebvq12PhefbeJvaqbj5pyrneRi:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwzRRR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwzRRR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwzRRR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwzRRR7qb_pbclRCiCXiz:
 nop
@@ -1758,12 +1758,12 @@
 b__MA7naqebvq11GlcrInevnagP1RCXAF_13ErfGnoyr_glcrR:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVCXAF_13ErfGnoyr_glcrRR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVCXAF_13ErfGnoyr_glcrRR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVCXAF_13ErfGnoyr_glcrRR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVCXAF_13ErfGnoyr_glcrRR15qb_zbir_sbejneqRCiCXiz:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF6_RRR24__rzcynpr_onpx_fybj_cnguVWF6_RRRiQcBG_
+.weak b__MAFg3__16irpgbeVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF6_RRR24__rzcynpr_onpx_fybj_cnguVWF6_RRRiQcBG_
 .type b__MAFg3__16irpgbeVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF6_RRR24__rzcynpr_onpx_fybj_cnguVWF6_RRRiQcBG_,%function
 b__MAFg3__16irpgbeVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF6_RRR24__rzcynpr_onpx_fybj_cnguVWF6_RRRiQcBG_:
 nop
@@ -1808,12 +1808,12 @@
 b__MA7naqebvq12NffrgZnantre22FLFGRZ_RKG_BIREYNL_QVER:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq13NffrgZnantre217PbasvtherqCnpxntrRAF_9nyybpngbeVF3_RRR21__chfu_onpx_fybj_cnguVF3_RRiBG_
+.weak b__MAFg3__16irpgbeVA7naqebvq13NffrgZnantre217PbasvtherqCnpxntrRAF_9nyybpngbeVF3_RRR21__chfu_onpx_fybj_cnguVF3_RRiBG_
 .type b__MAFg3__16irpgbeVA7naqebvq13NffrgZnantre217PbasvtherqCnpxntrRAF_9nyybpngbeVF3_RRR21__chfu_onpx_fybj_cnguVF3_RRiBG_,%function
 b__MAFg3__16irpgbeVA7naqebvq13NffrgZnantre217PbasvtherqCnpxntrRAF_9nyybpngbeVF3_RRR21__chfu_onpx_fybj_cnguVF3_RRiBG_:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwCXAF_11ErfbyirqOnt5RagelRRRR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwCXAF_11ErfbyirqOnt5RagelRRRR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwCXAF_11ErfbyirqOnt5RagelRRRR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwCXAF_11ErfbyirqOnt5RagelRRRR16qb_zbir_onpxjneqRCiCXiz:
 nop
@@ -1828,17 +1828,17 @@
 b__MA7naqebvq16OnpxhcQngnErnqre12fxvc_cnqqvatRi:
 nop
 .text
-.globl b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
+.weak b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
 .type b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_,%function
 b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_7Fgevat8RR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_7Fgevat8RR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_7Fgevat8RR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_7Fgevat8RR7qb_pbclRCiCXiz:
 nop
 .data
-.globl b__MGIA7naqebvq6IrpgbeVAF_12NffrgZnantre10nffrg_cnguRRR
+.weak b__MGIA7naqebvq6IrpgbeVAF_12NffrgZnantre10nffrg_cnguRRR
 .type b__MGIA7naqebvq6IrpgbeVAF_12NffrgZnantre10nffrg_cnguRRR,%object
 b__MGIA7naqebvq6IrpgbeVAF_12NffrgZnantre10nffrg_cnguRRR:
 .space __SIZEOF_POINTER__
@@ -1848,12 +1848,12 @@
 b__MAX7naqebvq17PbasvtQrfpevcgvba9gb_fgevatRi:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVCAF_8ErfGnoyr12CnpxntrTebhcRR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVCAF_8ErfGnoyr12CnpxntrTebhcRR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVCAF_8ErfGnoyr12CnpxntrTebhcRR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVCAF_8ErfGnoyr12CnpxntrTebhcRR7qb_pbclRCiCXiz:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RAF_9SvyrFgngrRRRR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RAF_9SvyrFgngrRRRR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RAF_9SvyrFgngrRRRR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RAF_9SvyrFgngrRRRR8qb_fcyngRCiCXiz:
 nop
@@ -1868,7 +1868,7 @@
 b__MA7naqebvq12NffrgZnantre9FunerqMvc21frgErfbheprGnoyrNffrgRCAF_5NffrgR:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RAF_2jcVAF_12NffrgZnantre9FunerqMvcRRRRRR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RAF_2jcVAF_12NffrgZnantre9FunerqMvcRRRRRR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RAF_2jcVAF_12NffrgZnantre9FunerqMvcRRRRRR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RAF_2jcVAF_12NffrgZnantre9FunerqMvcRRRRRR7qb_pbclRCiCXiz:
 nop
@@ -1883,7 +1883,7 @@
 b__MA7naqebvq8ErfGnoyr3nqqRCAF_5NffrgRF2_vooo:
 nop
 .text
-.globl b__MAFg3__16irpgbeVCXA7naqebvq9NcxNffrgfRAF_9nyybpngbeVF4_RRR6nffvtaVCF4_RRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF4_AF_15vgrengbe_genvgfVFO_R9ersreraprRRR5inyhrRiR4glcrRFO_FO_
+.weak b__MAFg3__16irpgbeVCXA7naqebvq9NcxNffrgfRAF_9nyybpngbeVF4_RRR6nffvtaVCF4_RRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF4_AF_15vgrengbe_genvgfVFO_R9ersreraprRRR5inyhrRiR4glcrRFO_FO_
 .type b__MAFg3__16irpgbeVCXA7naqebvq9NcxNffrgfRAF_9nyybpngbeVF4_RRR6nffvtaVCF4_RRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF4_AF_15vgrengbe_genvgfVFO_R9ersreraprRRR5inyhrRiR4glcrRFO_FO_,%function
 b__MAFg3__16irpgbeVCXA7naqebvq9NcxNffrgfRAF_9nyybpngbeVF4_RRR6nffvtaVCF4_RRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF4_AF_15vgrengbe_genvgfVFO_R9ersreraprRRR5inyhrRiR4glcrRFO_FO_:
 nop
@@ -1943,7 +1943,7 @@
 b__MA7naqebvq12ErfKZYCnefre19frgFbheprErfbheprVqRw:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVCAF_8ErfGnoyr6UrnqreRR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq6IrpgbeVCAF_8ErfGnoyr6UrnqreRR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq6IrpgbeVCAF_8ErfGnoyr6UrnqreRR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq6IrpgbeVCAF_8ErfGnoyr6UrnqreRR12qb_pbafgehpgRCiz:
 nop
@@ -1973,7 +1973,7 @@
 b__MA7naqebvq8ErfGnoyr5GurzrP2REXF0_:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVuAF_3frgVAF_4cnveVwwRRAF_4yrffVF4_RRAF_9nyybpngbeVF4_RRRRRRAF_19__znc_inyhr_pbzcnerVuFN_AF5_VuRRYo1RRRAF7_VFN_RRR25__rzcynpr_havdhr_xrl_netfVuWEuF9_RRRAF3_VAF_15__gerr_vgrengbeVFN_CAF_11__gerr_abqrVFN_CiRRyRRoRREXG_QcBG0_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVuAF_3frgVAF_4cnveVwwRRAF_4yrffVF4_RRAF_9nyybpngbeVF4_RRRRRRAF_19__znc_inyhr_pbzcnerVuFN_AF5_VuRRYo1RRRAF7_VFN_RRR25__rzcynpr_havdhr_xrl_netfVuWEuF9_RRRAF3_VAF_15__gerr_vgrengbeVFN_CAF_11__gerr_abqrVFN_CiRRyRRoRREXG_QcBG0_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVuAF_3frgVAF_4cnveVwwRRAF_4yrffVF4_RRAF_9nyybpngbeVF4_RRRRRRAF_19__znc_inyhr_pbzcnerVuFN_AF5_VuRRYo1RRRAF7_VFN_RRR25__rzcynpr_havdhr_xrl_netfVuWEuF9_RRRAF3_VAF_15__gerr_vgrengbeVFN_CAF_11__gerr_abqrVFN_CiRRyRRoRREXG_QcBG0_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVuAF_3frgVAF_4cnveVwwRRAF_4yrffVF4_RRAF_9nyybpngbeVF4_RRRRRRAF_19__znc_inyhr_pbzcnerVuFN_AF5_VuRRYo1RRRAF7_VFN_RRR25__rzcynpr_havdhr_xrl_netfVuWEuF9_RRRAF3_VAF_15__gerr_vgrengbeVFN_CAF_11__gerr_abqrVFN_CiRRyRRoRREXG_QcBG0_:
 nop
@@ -1998,7 +1998,7 @@
 b__MAX7naqebvq9MvcSvyrEB12eryrnfrRagelRCi:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwwRRAF_22__habeqrerq_znc_unfureVwF2_AF_4unfuVwRRYo1RRRAF_21__habeqrerq_znc_rdhnyVwF2_AF_8rdhny_gbVwRRYo1RRRAF_9nyybpngbeVF2_RRR8__erunfuRz
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwwRRAF_22__habeqrerq_znc_unfureVwF2_AF_4unfuVwRRYo1RRRAF_21__habeqrerq_znc_rdhnyVwF2_AF_8rdhny_gbVwRRYo1RRRAF_9nyybpngbeVF2_RRR8__erunfuRz
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwwRRAF_22__habeqrerq_znc_unfureVwF2_AF_4unfuVwRRYo1RRRAF_21__habeqrerq_znc_rdhnyVwF2_AF_8rdhny_gbVwRRYo1RRRAF_9nyybpngbeVF2_RRR8__erunfuRz,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwwRRAF_22__habeqrerq_znc_unfureVwF2_AF_4unfuVwRRYo1RRRAF_21__habeqrerq_znc_rdhnyVwF2_AF_8rdhny_gbVwRRYo1RRRAF_9nyybpngbeVF2_RRR8__erunfuRz:
 nop
@@ -2013,7 +2013,7 @@
 b__MAX7naqebvq13ErfFgevatCbby13vaqrkBsFgevatRCXQfz:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVCXAF_13ErfGnoyr_glcrRR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq6IrpgbeVCXAF_13ErfGnoyr_glcrRR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq6IrpgbeVCXAF_13ErfGnoyr_glcrRR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq6IrpgbeVCXAF_13ErfGnoyr_glcrRR10qb_qrfgeblRCiz:
 nop
@@ -2038,12 +2038,12 @@
 b__MA7naqebvq5GurzrP2RCAF_13NffrgZnantre2R:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVCXAF_13ErfGnoyr_glcrRR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVCXAF_13ErfGnoyr_glcrRR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVCXAF_13ErfGnoyr_glcrRR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVCXAF_13ErfGnoyr_glcrRR8qb_fcyngRCiCXiz:
 nop
 .data
-.globl b__MGI10SvyrErnqre
+.weak b__MGI10SvyrErnqre
 .type b__MGI10SvyrErnqre,%object
 b__MGI10SvyrErnqre:
 .space __SIZEOF_POINTER__
@@ -2083,12 +2083,12 @@
 b__MA7naqebvq12NffrgZnantreQ1Ri:
 nop
 .data
-.globl b__MGIAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
+.weak b__MGIAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
 .type b__MGIAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR,%object
 b__MGIAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_12NffrgZnantre10nffrg_cnguRR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_12NffrgZnantre10nffrg_cnguRR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_12NffrgZnantre10nffrg_cnguRR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_12NffrgZnantre10nffrg_cnguRR7qb_pbclRCiCXiz:
 nop
@@ -2118,7 +2118,7 @@
 b__MAX7naqebvq8ErfGnoyr17vqragvsvreSbeAnzrRCXQfzF2_zF2_zCw:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RAF_9SvyrFgngrRRRR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RAF_9SvyrFgngrRRRR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RAF_9SvyrFgngrRRRR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RAF_9SvyrFgngrRRRR7qb_pbclRCiCXiz:
 nop
@@ -2193,7 +2193,7 @@
 b__MA7naqebvq17ErfgberUrycreOnfrQ2Ri:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RAF_9SvyrFgngrRRRR10qb_pbzcnerRCXiF7_
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RAF_9SvyrFgngrRRRR10qb_pbzcnerRCXiF7_
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RAF_9SvyrFgngrRRRR10qb_pbzcnerRCXiF7_,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RAF_9SvyrFgngrRRRR10qb_pbzcnerRCXiF7_:
 nop
@@ -2203,12 +2203,12 @@
 b__MA7naqebvq10svaqCneragRwCXp:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVCAF_8ErfGnoyr12CnpxntrTebhcRR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVCAF_8ErfGnoyr12CnpxntrTebhcRR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVCAF_8ErfGnoyr12CnpxntrTebhcRR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVCAF_8ErfGnoyr12CnpxntrTebhcRR15qb_zbir_sbejneqRCiCXiz:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVCAF_8ErfGnoyr7CnpxntrRR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVCAF_8ErfGnoyr7CnpxntrRR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVCAF_8ErfGnoyr7CnpxntrRR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVCAF_8ErfGnoyr7CnpxntrRR7qb_pbclRCiCXiz:
 nop
@@ -2218,12 +2218,12 @@
 b__MA7naqebvq12PhefbeJvaqbj5nyybpRzo:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RAF_2jcVAF_12NffrgZnantre9FunerqMvcRRRRRR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RAF_2jcVAF_12NffrgZnantre9FunerqMvcRRRRRR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RAF_2jcVAF_12NffrgZnantre9FunerqMvcRRRRRR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RAF_2jcVAF_12NffrgZnantre9FunerqMvcRRRRRR15qb_zbir_sbejneqRCiCXiz:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwzRRR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwzRRR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwzRRR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwzRRR12qb_pbafgehpgRCiz:
 nop
@@ -2243,12 +2243,12 @@
 b__MA7naqebvq20FgernzvatMvcVasyngre13ernqArkgPuhaxRi:
 nop
 .text
-.globl b__MAFg3__1yfVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRREAF_13onfvp_bfgernzVG_G0_RRF9_EXAF_12onfvp_fgevatVF6_F7_G1_RR
+.weak b__MAFg3__1yfVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRREAF_13onfvp_bfgernzVG_G0_RRF9_EXAF_12onfvp_fgevatVF6_F7_G1_RR
 .type b__MAFg3__1yfVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRREAF_13onfvp_bfgernzVG_G0_RRF9_EXAF_12onfvp_fgevatVF6_F7_G1_RR,%function
 b__MAFg3__1yfVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRREAF_13onfvp_bfgernzVG_G0_RRF9_EXAF_12onfvp_fgevatVF6_F7_G1_RR:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_7Fgevat8RR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_7Fgevat8RR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_7Fgevat8RR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_7Fgevat8RR16qb_zbir_onpxjneqRCiCXiz:
 nop
@@ -2313,12 +2313,12 @@
 b__MA7naqebvq13ErfFgevatCbbyQ1Ri:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq13NffrgZnantre212CnpxntrTebhcRAF_9nyybpngbeVF3_RRR21__chfu_onpx_fybj_cnguVF3_RRiBG_
+.weak b__MAFg3__16irpgbeVA7naqebvq13NffrgZnantre212CnpxntrTebhcRAF_9nyybpngbeVF3_RRR21__chfu_onpx_fybj_cnguVF3_RRiBG_
 .type b__MAFg3__16irpgbeVA7naqebvq13NffrgZnantre212CnpxntrTebhcRAF_9nyybpngbeVF3_RRR21__chfu_onpx_fybj_cnguVF3_RRiBG_,%function
 b__MAFg3__16irpgbeVA7naqebvq13NffrgZnantre212CnpxntrTebhcRAF_9nyybpngbeVF3_RRR21__chfu_onpx_fybj_cnguVF3_RRiBG_:
 nop
 .data
-.globl b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR16_AF_13onfvp_bfgernzVpF2_RR
+.weak b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR16_AF_13onfvp_bfgernzVpF2_RR
 .type b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR16_AF_13onfvp_bfgernzVpF2_RR,%object
 b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR16_AF_13onfvp_bfgernzVpF2_RR:
 .space __SIZEOF_POINTER__
@@ -2328,7 +2328,7 @@
 b__MA7naqebvq15QlanzvpErsGnoyr10nqqZnccvatRuu:
 nop
 .data
-.globl b__MGIAFg3__120__funerq_cge_rzcynprVA7naqebvq6IrpgbeVCXAF1_13ErfGnoyr_glcrRRRAF_9nyybpngbeVF6_RRRR
+.weak b__MGIAFg3__120__funerq_cge_rzcynprVA7naqebvq6IrpgbeVCXAF1_13ErfGnoyr_glcrRRRAF_9nyybpngbeVF6_RRRR
 .type b__MGIAFg3__120__funerq_cge_rzcynprVA7naqebvq6IrpgbeVCXAF1_13ErfGnoyr_glcrRRRAF_9nyybpngbeVF6_RRRR,%object
 b__MGIAFg3__120__funerq_cge_rzcynprVA7naqebvq6IrpgbeVCXAF1_13ErfGnoyr_glcrRRRAF_9nyybpngbeVF6_RRRR:
 .space __SIZEOF_POINTER__
@@ -2358,12 +2358,12 @@
 b__MGGA7naqebvq22QvfcynlRiragQvfcngpureR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__16__gerrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_4yrffVF6_RRAF4_VF6_RRR7qrfgeblRCAF_11__gerr_abqrVF6_CiRR
+.weak b__MAFg3__16__gerrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_4yrffVF6_RRAF4_VF6_RRR7qrfgeblRCAF_11__gerr_abqrVF6_CiRR
 .type b__MAFg3__16__gerrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_4yrffVF6_RRAF4_VF6_RRR7qrfgeblRCAF_11__gerr_abqrVF6_CiRR,%function
 b__MAFg3__16__gerrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_4yrffVF6_RRAF4_VF6_RRR7qrfgeblRCAF_11__gerr_abqrVF6_CiRR:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_8Fgevat16RuRRR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_8Fgevat16RuRRR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_8Fgevat16RuRRR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_8Fgevat16RuRRR7qb_pbclRCiCXiz:
 nop
@@ -2403,12 +2403,12 @@
 b__MA7naqebvq12NffrgZnantre9FunerqMvc10vfHcGbQngrRi:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_8NffrgQve8SvyrVasbRR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_8NffrgQve8SvyrVasbRR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_8NffrgQve8SvyrVasbRR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_8NffrgQve8SvyrVasbRR16qb_zbir_onpxjneqRCiCXiz:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVwAF_4unfuVwRRAF_8rdhny_gbVwRRAF_9nyybpngbeVwRRR8__erunfuRz
+.weak b__MAFg3__112__unfu_gnoyrVwAF_4unfuVwRRAF_8rdhny_gbVwRRAF_9nyybpngbeVwRRR8__erunfuRz
 .type b__MAFg3__112__unfu_gnoyrVwAF_4unfuVwRRAF_8rdhny_gbVwRRAF_9nyybpngbeVwRRR8__erunfuRz,%function
 b__MAFg3__112__unfu_gnoyrVwAF_4unfuVwRRAF_8rdhny_gbVwRRAF_9nyybpngbeVwRRR8__erunfuRz:
 nop
@@ -2423,7 +2423,7 @@
 b__MA7naqebvq13jevgr_gnesvyrREXAF_7Fgevat8RF2_F2_F2_CyCAF_16OnpxhcQngnJevgreR:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RAF_9SvyrFgngrRRRR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RAF_9SvyrFgngrRRRR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RAF_9SvyrFgngrRRRR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RAF_9SvyrFgngrRRRR15qb_zbir_sbejneqRCiCXiz:
 nop
@@ -2453,7 +2453,7 @@
 b__MA7naqebvq5Nffrg24perngrSebzPbzcerffrqSvyrRCXpAF0_10NpprffZbqrR:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwA7naqebvq4hgvy11havdhr_pcgeVAF2_11ErfbyirqOntRRRRRAF_22__habeqrerq_znc_unfureVwF7_AF_4unfuVwRRYo1RRRAF_21__habeqrerq_znc_rdhnyVwF7_AF_8rdhny_gbVwRRYo1RRRAF_9nyybpngbeVF7_RRR25__rzcynpr_havdhr_xrl_netfVwWEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXwRRRAFA_VWRRRRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF7_CiRRRRoRREXG_QcBG0_
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwA7naqebvq4hgvy11havdhr_pcgeVAF2_11ErfbyirqOntRRRRRAF_22__habeqrerq_znc_unfureVwF7_AF_4unfuVwRRYo1RRRAF_21__habeqrerq_znc_rdhnyVwF7_AF_8rdhny_gbVwRRYo1RRRAF_9nyybpngbeVF7_RRR25__rzcynpr_havdhr_xrl_netfVwWEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXwRRRAFA_VWRRRRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF7_CiRRRRoRREXG_QcBG0_
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwA7naqebvq4hgvy11havdhr_pcgeVAF2_11ErfbyirqOntRRRRRAF_22__habeqrerq_znc_unfureVwF7_AF_4unfuVwRRYo1RRRAF_21__habeqrerq_znc_rdhnyVwF7_AF_8rdhny_gbVwRRYo1RRRAF_9nyybpngbeVF7_RRR25__rzcynpr_havdhr_xrl_netfVwWEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXwRRRAFA_VWRRRRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF7_CiRRRRoRREXG_QcBG0_,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwA7naqebvq4hgvy11havdhr_pcgeVAF2_11ErfbyirqOntRRRRRAF_22__habeqrerq_znc_unfureVwF7_AF_4unfuVwRRYo1RRRAF_21__habeqrerq_znc_rdhnyVwF7_AF_8rdhny_gbVwRRYo1RRRAF_9nyybpngbeVF7_RRR25__rzcynpr_havdhr_xrl_netfVwWEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXwRRRAFA_VWRRRRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF7_CiRRRRoRREXG_QcBG0_:
 nop
@@ -2473,7 +2473,7 @@
 b__MAX7naqebvq13YbnqrqCnpxntr21PbyyrpgPbasvthengvbafRoCAFg3__13frgVAF_15ErfGnoyr_pbasvtRAF1_4yrffVF3_RRAF1_9nyybpngbeVF3_RRRR:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRF7_RRAF_22__habeqrerq_znc_unfureVF7_F8_AF_4unfuVF7_RRYo1RRRAF_21__habeqrerq_znc_rdhnyVF7_F8_AF_8rdhny_gbVF7_RRYo1RRRAF5_VF8_RRR25__rzcynpr_havdhr_xrl_netfVF7_WEF7_FX_RRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF8_CiRRRRoRREXG_QcBG0_
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRF7_RRAF_22__habeqrerq_znc_unfureVF7_F8_AF_4unfuVF7_RRYo1RRRAF_21__habeqrerq_znc_rdhnyVF7_F8_AF_8rdhny_gbVF7_RRYo1RRRAF5_VF8_RRR25__rzcynpr_havdhr_xrl_netfVF7_WEF7_FX_RRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF8_CiRRRRoRREXG_QcBG0_
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRF7_RRAF_22__habeqrerq_znc_unfureVF7_F8_AF_4unfuVF7_RRYo1RRRAF_21__habeqrerq_znc_rdhnyVF7_F8_AF_8rdhny_gbVF7_RRYo1RRRAF5_VF8_RRR25__rzcynpr_havdhr_xrl_netfVF7_WEF7_FX_RRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF8_CiRRRRoRREXG_QcBG0_,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRF7_RRAF_22__habeqrerq_znc_unfureVF7_F8_AF_4unfuVF7_RRYo1RRRAF_21__habeqrerq_znc_rdhnyVF7_F8_AF_8rdhny_gbVF7_RRYo1RRRAF5_VF8_RRR25__rzcynpr_havdhr_xrl_netfVF7_WEF7_FX_RRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF8_CiRRRRoRREXG_QcBG0_:
 nop
@@ -2493,7 +2493,7 @@
 b__MA7naqebvq7BooSvyrP2Ri:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVzAF_4unfuVzRRAF_8rdhny_gbVzRRAF_9nyybpngbeVzRRR6erunfuRz
+.weak b__MAFg3__112__unfu_gnoyrVzAF_4unfuVzRRAF_8rdhny_gbVzRRAF_9nyybpngbeVzRRR6erunfuRz
 .type b__MAFg3__112__unfu_gnoyrVzAF_4unfuVzRRAF_8rdhny_gbVzRRAF_9nyybpngbeVzRRR6erunfuRz,%function
 b__MAFg3__112__unfu_gnoyrVzAF_4unfuVzRRAF_8rdhny_gbVzRRAF_9nyybpngbeVzRRR6erunfuRz:
 nop
@@ -2518,7 +2518,7 @@
 b__MAX7naqebvq12ErfKZYCnefre25trgNggevohgrInyhrFgevatVQRz:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVCAF_8ErfGnoyr4GlcrRR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq6IrpgbeVCAF_8ErfGnoyr4GlcrRR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq6IrpgbeVCAF_8ErfGnoyr4GlcrRR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq6IrpgbeVCAF_8ErfGnoyr4GlcrRR10qb_qrfgeblRCiz:
 nop
@@ -2533,17 +2533,17 @@
 b__MA7naqebvq12NffrgZnantre21fpnaNaqZretrQveYbpxrqRCAF_12FbegrqIrpgbeVAF_8NffrgQve8SvyrVasbRRREXAF0_10nffrg_cnguRCXpFN_:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_7Fgevat8RR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_7Fgevat8RR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_7Fgevat8RR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_7Fgevat8RR15qb_zbir_sbejneqRCiCXiz:
 nop
 .text
-.globl b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9conpxsnvyRv
+.weak b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9conpxsnvyRv
 .type b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9conpxsnvyRv,%function
 b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9conpxsnvyRv:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwwRRAF_22__habeqrerq_znc_unfureVwF2_AF_4unfuVwRRYo1RRRAF_21__habeqrerq_znc_rdhnyVwF2_AF_8rdhny_gbVwRRYo1RRRAF_9nyybpngbeVF2_RRR6erunfuRz
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwwRRAF_22__habeqrerq_znc_unfureVwF2_AF_4unfuVwRRYo1RRRAF_21__habeqrerq_znc_rdhnyVwF2_AF_8rdhny_gbVwRRYo1RRRAF_9nyybpngbeVF2_RRR6erunfuRz
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwwRRAF_22__habeqrerq_znc_unfureVwF2_AF_4unfuVwRRYo1RRRAF_21__habeqrerq_znc_rdhnyVwF2_AF_8rdhny_gbVwRRYo1RRRAF_9nyybpngbeVF2_RRR6erunfuRz,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwwRRAF_22__habeqrerq_znc_unfureVwF2_AF_4unfuVwRRYo1RRRAF_21__habeqrerq_znc_rdhnyVwF2_AF_8rdhny_gbVwRRYo1RRRAF_9nyybpngbeVF2_RRR6erunfuRz:
 nop
@@ -2553,17 +2553,17 @@
 b__MAX7naqebvq8ErfGnoyr15trgErfbheprAnzrRwoCAF0_13erfbhepr_anzrR:
 nop
 .text
-.globl b__MA7naqebvq27OnpxGenpxvatNggevohgrSvaqreVAF_18KzyNggevohgrSvaqreRzR4SvaqRw
+.weak b__MA7naqebvq27OnpxGenpxvatNggevohgrSvaqreVAF_18KzyNggevohgrSvaqreRzR4SvaqRw
 .type b__MA7naqebvq27OnpxGenpxvatNggevohgrSvaqreVAF_18KzyNggevohgrSvaqreRzR4SvaqRw,%function
 b__MA7naqebvq27OnpxGenpxvatNggevohgrSvaqreVAF_18KzyNggevohgrSvaqreRzR4SvaqRw:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_7Fgevat8RR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_7Fgevat8RR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_7Fgevat8RR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_7Fgevat8RR8qb_fcyngRCiCXiz:
 nop
 .data
-.globl b__MGIAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
+.weak b__MGIAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
 .type b__MGIAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR,%object
 b__MGIAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR:
 .space __SIZEOF_POINTER__
@@ -2578,7 +2578,7 @@
 b__MAX7naqebvq15ErfGnoyr_pbasvt18vfYbpnyrOrggreGunaREXF0_CF1_:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVuAF_3frgVAF_4cnveVwwRRAF_4yrffVF4_RRAF_9nyybpngbeVF4_RRRRRRAF_19__znc_inyhr_pbzcnerVuFN_AF5_VuRRYo1RRRAF7_VFN_RRR30__rzcynpr_uvag_havdhr_xrl_netfVuWEXAF3_VXuF9_RRRRRAF_15__gerr_vgrengbeVFN_CAF_11__gerr_abqrVFN_CiRRyRRAF_21__gerr_pbafg_vgrengbeVFN_FC_yRREXG_QcBG0_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVuAF_3frgVAF_4cnveVwwRRAF_4yrffVF4_RRAF_9nyybpngbeVF4_RRRRRRAF_19__znc_inyhr_pbzcnerVuFN_AF5_VuRRYo1RRRAF7_VFN_RRR30__rzcynpr_uvag_havdhr_xrl_netfVuWEXAF3_VXuF9_RRRRRAF_15__gerr_vgrengbeVFN_CAF_11__gerr_abqrVFN_CiRRyRRAF_21__gerr_pbafg_vgrengbeVFN_FC_yRREXG_QcBG0_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVuAF_3frgVAF_4cnveVwwRRAF_4yrffVF4_RRAF_9nyybpngbeVF4_RRRRRRAF_19__znc_inyhr_pbzcnerVuFN_AF5_VuRRYo1RRRAF7_VFN_RRR30__rzcynpr_uvag_havdhr_xrl_netfVuWEXAF3_VXuF9_RRRRRAF_15__gerr_vgrengbeVFN_CAF_11__gerr_abqrVFN_CiRRyRRAF_21__gerr_pbafg_vgrengbeVFN_FC_yRREXG_QcBG0_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVuAF_3frgVAF_4cnveVwwRRAF_4yrffVF4_RRAF_9nyybpngbeVF4_RRRRRRAF_19__znc_inyhr_pbzcnerVuFN_AF5_VuRRYo1RRRAF7_VFN_RRR30__rzcynpr_uvag_havdhr_xrl_netfVuWEXAF3_VXuF9_RRRRRAF_15__gerr_vgrengbeVFN_CAF_11__gerr_abqrVFN_CiRRyRRAF_21__gerr_pbafg_vgrengbeVFN_FC_yRREXG_QcBG0_:
 nop
@@ -2608,7 +2608,7 @@
 b__MAX7naqebvq15ErfGnoyr_pbasvt5zngpuREXF0_:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVCAF_8ErfGnoyr4GlcrRR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVCAF_8ErfGnoyr4GlcrRR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVCAF_8ErfGnoyr4GlcrRR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVCAF_8ErfGnoyr4GlcrRR16qb_zbir_onpxjneqRCiCXiz:
 nop
@@ -2623,7 +2623,7 @@
 b__MA7naqebvq10_SvyrNffrg9bcraPuhaxRCAF_7SvyrZncR:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwCXAF_11ErfbyirqOnt5RagelRRRR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwCXAF_11ErfbyirqOnt5RagelRRRR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwCXAF_11ErfbyirqOnt5RagelRRRR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwCXAF_11ErfbyirqOnt5RagelRRRR10qb_qrfgeblRCiz:
 nop
@@ -2638,12 +2638,12 @@
 b__MA7naqebvq15QlanzvpErsGnoyrP1Ruo:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RAF_7SvyrErpRRRR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RAF_7SvyrErpRRRR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RAF_7SvyrErpRRRR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RAF_7SvyrErpRRRR10qb_qrfgeblRCiz:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RAF_7SvyrErpRRRR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RAF_7SvyrErpRRRR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RAF_7SvyrErpRRRR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RAF_7SvyrErpRRRR7qb_pbclRCiCXiz:
 nop
@@ -2653,7 +2653,7 @@
 b__MAX7naqebvq15QlanzvpErsGnoyr16ybbxhcErfbheprVqRCw:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwCXAF_11ErfbyirqOnt5RagelRRRR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwCXAF_11ErfbyirqOnt5RagelRRRR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwCXAF_11ErfbyirqOnt5RagelRRRR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwCXAF_11ErfbyirqOnt5RagelRRRR12qb_pbafgehpgRCiz:
 nop
@@ -2693,7 +2693,7 @@
 b__MAX7naqebvq15ErfGnoyr_pbasvt12hacnpxErtvbaRCp:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVCAF_8ErfGnoyr6UrnqreRR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVCAF_8ErfGnoyr6UrnqreRR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVCAF_8ErfGnoyr6UrnqreRR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVCAF_8ErfGnoyr6UrnqreRR7qb_pbclRCiCXiz:
 nop
@@ -2708,7 +2708,7 @@
 b__MA7naqebvq13YbnqrqCnpxntr8vgrengbeccRi:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVuAF_12VqzncRagevrfRRRR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVuAF_12VqzncRagevrfRRRR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVuAF_12VqzncRagevrfRRRR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVuAF_12VqzncRagevrfRRRR15qb_zbir_sbejneqRCiCXiz:
 nop
@@ -2723,12 +2723,12 @@
 b__MAX7naqebvq5Gurzr12TrgNggevohgrRwCAF_9Erf_inyhrRCw:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_10havdhr_cgeVXA7naqebvq13YbnqrqCnpxntrRAF_14qrsnhyg_qryrgrVF4_RRRRAF_9nyybpngbeVF7_RRR21__chfu_onpx_fybj_cnguVF7_RRiBG_
+.weak b__MAFg3__16irpgbeVAF_10havdhr_cgeVXA7naqebvq13YbnqrqCnpxntrRAF_14qrsnhyg_qryrgrVF4_RRRRAF_9nyybpngbeVF7_RRR21__chfu_onpx_fybj_cnguVF7_RRiBG_
 .type b__MAFg3__16irpgbeVAF_10havdhr_cgeVXA7naqebvq13YbnqrqCnpxntrRAF_14qrsnhyg_qryrgrVF4_RRRRAF_9nyybpngbeVF7_RRR21__chfu_onpx_fybj_cnguVF7_RRiBG_,%function
 b__MAFg3__16irpgbeVAF_10havdhr_cgeVXA7naqebvq13YbnqrqCnpxntrRAF_14qrsnhyg_qryrgrVF4_RRRRAF_9nyybpngbeVF7_RRR21__chfu_onpx_fybj_cnguVF7_RRiBG_:
 nop
 .data
-.globl b__MGIA7naqebvq6IrpgbeVCAF_8ErfGnoyr4GlcrRRR
+.weak b__MGIA7naqebvq6IrpgbeVCAF_8ErfGnoyr4GlcrRRR
 .type b__MGIA7naqebvq6IrpgbeVCAF_8ErfGnoyr4GlcrRRR,%object
 b__MGIA7naqebvq6IrpgbeVCAF_8ErfGnoyr4GlcrRRR:
 .space __SIZEOF_POINTER__
@@ -2738,17 +2738,17 @@
 b__MA7naqebvq16OnpxhcQngnErnqreQ2Ri:
 nop
 .text
-.globl b__MAFg3__16irpgbeVvAF_9nyybpngbeVvRRR21__chfu_onpx_fybj_cnguVvRRiBG_
+.weak b__MAFg3__16irpgbeVvAF_9nyybpngbeVvRRR21__chfu_onpx_fybj_cnguVvRRiBG_
 .type b__MAFg3__16irpgbeVvAF_9nyybpngbeVvRRR21__chfu_onpx_fybj_cnguVvRRiBG_,%function
 b__MAFg3__16irpgbeVvAF_9nyybpngbeVvRRR21__chfu_onpx_fybj_cnguVvRRiBG_:
 nop
 .text
-.globl b__MAFg3__16irpgbeVwAF_9nyybpngbeVwRRR21__chfu_onpx_fybj_cnguVEXwRRiBG_
+.weak b__MAFg3__16irpgbeVwAF_9nyybpngbeVwRRR21__chfu_onpx_fybj_cnguVEXwRRiBG_
 .type b__MAFg3__16irpgbeVwAF_9nyybpngbeVwRRR21__chfu_onpx_fybj_cnguVEXwRRiBG_,%function
 b__MAFg3__16irpgbeVwAF_9nyybpngbeVwRRR21__chfu_onpx_fybj_cnguVEXwRRiBG_:
 nop
 .text
-.globl b__MAFg3__16__gerrVA7naqebvq15ErfGnoyr_pbasvtRAF_4yrffVF2_RRAF_9nyybpngbeVF2_RRR25__rzcynpr_havdhr_xrl_netfVF2_WEXF2_RRRAF_4cnveVAF_15__gerr_vgrengbeVF2_CAF_11__gerr_abqrVF2_CiRRyRRoRREXG_QcBG0_
+.weak b__MAFg3__16__gerrVA7naqebvq15ErfGnoyr_pbasvtRAF_4yrffVF2_RRAF_9nyybpngbeVF2_RRR25__rzcynpr_havdhr_xrl_netfVF2_WEXF2_RRRAF_4cnveVAF_15__gerr_vgrengbeVF2_CAF_11__gerr_abqrVF2_CiRRyRRoRREXG_QcBG0_
 .type b__MAFg3__16__gerrVA7naqebvq15ErfGnoyr_pbasvtRAF_4yrffVF2_RRAF_9nyybpngbeVF2_RRR25__rzcynpr_havdhr_xrl_netfVF2_WEXF2_RRRAF_4cnveVAF_15__gerr_vgrengbeVF2_CAF_11__gerr_abqrVF2_CiRRyRRoRREXG_QcBG0_,%function
 b__MAFg3__16__gerrVA7naqebvq15ErfGnoyr_pbasvtRAF_4yrffVF2_RRAF_9nyybpngbeVF2_RRR25__rzcynpr_havdhr_xrl_netfVF2_WEXF2_RRRAF_4cnveVAF_15__gerr_vgrengbeVF2_CAF_11__gerr_abqrVF2_CiRRyRRoRREXG_QcBG0_:
 nop
@@ -2763,7 +2763,7 @@
 b__MAX7naqebvq12ErfKZYCnefre12trgGrkgInyhrRCAF_9Erf_inyhrR:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_2fcVAF_12NffrgZnantre9FunerqMvcRRRR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq6IrpgbeVAF_2fcVAF_12NffrgZnantre9FunerqMvcRRRR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq6IrpgbeVAF_2fcVAF_12NffrgZnantre9FunerqMvcRRRR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq6IrpgbeVAF_2fcVAF_12NffrgZnantre9FunerqMvcRRRR10qb_qrfgeblRCiz:
 nop
@@ -2773,7 +2773,7 @@
 b__MA7naqebvq13FgevatCbbyErsP2RCXAF_13ErfFgevatCbbyRw:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_4cnveVwwRRAF_4yrffVF2_RRAF_9nyybpngbeVF2_RRR12__svaq_rdhnyVF2_RRECAF_16__gerr_abqr_onfrVCiRRAF_21__gerr_pbafg_vgrengbeVF2_CAF_11__gerr_abqrVF2_FN_RRyRRECAF_15__gerr_raq_abqrVFP_RRFQ_EXG_
+.weak b__MAFg3__16__gerrVAF_4cnveVwwRRAF_4yrffVF2_RRAF_9nyybpngbeVF2_RRR12__svaq_rdhnyVF2_RRECAF_16__gerr_abqr_onfrVCiRRAF_21__gerr_pbafg_vgrengbeVF2_CAF_11__gerr_abqrVF2_FN_RRyRRECAF_15__gerr_raq_abqrVFP_RRFQ_EXG_
 .type b__MAFg3__16__gerrVAF_4cnveVwwRRAF_4yrffVF2_RRAF_9nyybpngbeVF2_RRR12__svaq_rdhnyVF2_RRECAF_16__gerr_abqr_onfrVCiRRAF_21__gerr_pbafg_vgrengbeVF2_CAF_11__gerr_abqrVF2_FN_RRyRRECAF_15__gerr_raq_abqrVFP_RRFQ_EXG_,%function
 b__MAFg3__16__gerrVAF_4cnveVwwRRAF_4yrffVF2_RRAF_9nyybpngbeVF2_RRR12__svaq_rdhnyVF2_RRECAF_16__gerr_abqr_onfrVCiRRAF_21__gerr_pbafg_vgrengbeVF2_CAF_11__gerr_abqrVF2_FN_RRyRRECAF_15__gerr_raq_abqrVFP_RRFQ_EXG_:
 nop
@@ -2783,7 +2783,7 @@
 b__MA7naqebvq10_SvyrNffrg5pybfrRi:
 nop
 .data
-.globl b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RAF_2jcVAF_12NffrgZnantre9FunerqMvcRRRRRRR
+.weak b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RAF_2jcVAF_12NffrgZnantre9FunerqMvcRRRRRRR
 .type b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RAF_2jcVAF_12NffrgZnantre9FunerqMvcRRRRRRR,%object
 b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RAF_2jcVAF_12NffrgZnantre9FunerqMvcRRRRRRR:
 .space __SIZEOF_POINTER__
@@ -2798,7 +2798,7 @@
 b__MA7naqebvq12NffrgZnantre6MvcFrg24frgMvcErfbheprGnoyrNffrgREXAF_7Fgevat8RCAF_5NffrgR:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_2fcVAF_12NffrgZnantre9FunerqMvcRRRR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_2fcVAF_12NffrgZnantre9FunerqMvcRRRR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_2fcVAF_12NffrgZnantre9FunerqMvcRRRR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_2fcVAF_12NffrgZnantre9FunerqMvcRRRR8qb_fcyngRCiCXiz:
 nop
@@ -2808,7 +2808,7 @@
 b__MA7naqebvq5Gurzr5PyrneRi:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVCAF_8ErfGnoyr12CnpxntrTebhcRR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq6IrpgbeVCAF_8ErfGnoyr12CnpxntrTebhcRR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq6IrpgbeVCAF_8ErfGnoyr12CnpxntrTebhcRR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq6IrpgbeVCAF_8ErfGnoyr12CnpxntrTebhcRR12qb_pbafgehpgRCiz:
 nop
@@ -2823,7 +2823,7 @@
 b__MA7naqebvq11YbpnyrInyhr12frg_ynathntrRCXp:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RAF_9SvyrFgngrRRRR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RAF_9SvyrFgngrRRRR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RAF_9SvyrFgngrRRRR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RAF_9SvyrFgngrRRRR10qb_qrfgeblRCiz:
 nop
@@ -2838,7 +2838,7 @@
 b__MA7naqebvq12NffrgZnantreQ0Ri:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwA7naqebvq4hgvy11havdhr_pcgeVAF2_11ErfbyirqOntRRRRRAF_22__habeqrerq_znc_unfureVwF7_AF_4unfuVwRRYo1RRRAF_21__habeqrerq_znc_rdhnyVwF7_AF_8rdhny_gbVwRRYo1RRRAF_9nyybpngbeVF7_RRR6erzbirRAF_21__unfu_pbafg_vgrengbeVCAF_11__unfu_abqrVF7_CiRRRR
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwA7naqebvq4hgvy11havdhr_pcgeVAF2_11ErfbyirqOntRRRRRAF_22__habeqrerq_znc_unfureVwF7_AF_4unfuVwRRYo1RRRAF_21__habeqrerq_znc_rdhnyVwF7_AF_8rdhny_gbVwRRYo1RRRAF_9nyybpngbeVF7_RRR6erzbirRAF_21__unfu_pbafg_vgrengbeVCAF_11__unfu_abqrVF7_CiRRRR
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwA7naqebvq4hgvy11havdhr_pcgeVAF2_11ErfbyirqOntRRRRRAF_22__habeqrerq_znc_unfureVwF7_AF_4unfuVwRRYo1RRRAF_21__habeqrerq_znc_rdhnyVwF7_AF_8rdhny_gbVwRRYo1RRRAF_9nyybpngbeVF7_RRR6erzbirRAF_21__unfu_pbafg_vgrengbeVCAF_11__unfu_abqrVF7_CiRRRR,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwA7naqebvq4hgvy11havdhr_pcgeVAF2_11ErfbyirqOntRRRRRAF_22__habeqrerq_znc_unfureVwF7_AF_4unfuVwRRYo1RRRAF_21__habeqrerq_znc_rdhnyVwF7_AF_8rdhny_gbVwRRYo1RRRAF_9nyybpngbeVF7_RRR6erzbirRAF_21__unfu_pbafg_vgrengbeVCAF_11__unfu_abqrVF7_CiRRRR:
 nop
@@ -2848,7 +2848,7 @@
 b__MAX7naqebvq8ErfGnoyr12trgOntYbpxrqRwCCXAF0_9ont_ragelRCw:
 nop
 .data
-.globl b__MGIA7naqebvq6IrpgbeVCAF_8ErfGnoyr12CnpxntrTebhcRRR
+.weak b__MGIA7naqebvq6IrpgbeVCAF_8ErfGnoyr12CnpxntrTebhcRRR
 .type b__MGIA7naqebvq6IrpgbeVCAF_8ErfGnoyr12CnpxntrTebhcRRR,%object
 b__MGIA7naqebvq6IrpgbeVCAF_8ErfGnoyr12CnpxntrTebhcRRR:
 .space __SIZEOF_POINTER__
@@ -2873,7 +2873,7 @@
 b__MAX7naqebvq8ErfGnoyr7ybpxOntRwCCXAF0_9ont_ragelR:
 nop
 .data
-.globl b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVuAF_12VqzncRagevrfRRRRR
+.weak b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVuAF_12VqzncRagevrfRRRRR
 .type b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVuAF_12VqzncRagevrfRRRRR,%object
 b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVuAF_12VqzncRagevrfRRRRR:
 .space __SIZEOF_POINTER__
@@ -2893,12 +2893,12 @@
 b__MAX7naqebvq13NffrgZnantre215TrgErfbheprAnzrRwCAF0_12ErfbheprAnzrR:
 nop
 .text
-.globl b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR8biresybjRv
+.weak b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR8biresybjRv
 .type b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR8biresybjRv,%function
 b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR8biresybjRv:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVuAF_12VqzncRagevrfRRRR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVuAF_12VqzncRagevrfRRRR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVuAF_12VqzncRagevrfRRRR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVuAF_12VqzncRagevrfRRRR10qb_qrfgeblRCiz:
 nop
@@ -2938,7 +2938,7 @@
 b__MA7naqebvq14Erf_cat_9cngpu11qrfrevnyvmrRCi:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVuAF_12VqzncRagevrfRRRR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVuAF_12VqzncRagevrfRRRR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVuAF_12VqzncRagevrfRRRR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVuAF_12VqzncRagevrfRRRR8qb_fcyngRCiCXiz:
 nop
@@ -2953,7 +2953,7 @@
 b__MA7naqebvq9MvcSvyrEB14fgnegVgrengvbaRCCiCXpF4_:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_12NffrgZnantre10nffrg_cnguRR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_12NffrgZnantre10nffrg_cnguRR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_12NffrgZnantre10nffrg_cnguRR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_12NffrgZnantre10nffrg_cnguRR15qb_zbir_sbejneqRCiCXiz:
 nop
@@ -3033,7 +3033,7 @@
 b__MA7naqebvq9NcxNffrgf19PerngrNffrgSebzSvyrREXAFg3__112onfvp_fgevatVpAF1_11pune_genvgfVpRRAF1_9nyybpngbeVpRRRR:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq19QlanzvpCnpxntrRagelRAF_9nyybpngbeVF2_RRR7erfreirRz
+.weak b__MAFg3__16irpgbeVA7naqebvq19QlanzvpCnpxntrRagelRAF_9nyybpngbeVF2_RRR7erfreirRz
 .type b__MAFg3__16irpgbeVA7naqebvq19QlanzvpCnpxntrRagelRAF_9nyybpngbeVF2_RRR7erfreirRz,%function
 b__MAFg3__16irpgbeVA7naqebvq19QlanzvpCnpxntrRagelRAF_9nyybpngbeVF2_RRR7erfreirRz:
 nop
@@ -3068,7 +3068,7 @@
 b__MA7naqebvq12NffrgZnantre9FunerqMvcP2REXAF_7Fgevat8Ry:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwzRRR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwzRRR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwzRRR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwzRRR8qb_fcyngRCiCXiz:
 nop
@@ -3078,7 +3078,7 @@
 b__MA7naqebvq13YbnqrqCnpxntr8vgrengbeP1RCXF0_zz:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVwAF_4unfuVwRRAF_8rdhny_gbVwRRAF_9nyybpngbeVwRRR6erunfuRz
+.weak b__MAFg3__112__unfu_gnoyrVwAF_4unfuVwRRAF_8rdhny_gbVwRRAF_9nyybpngbeVwRRR6erunfuRz
 .type b__MAFg3__112__unfu_gnoyrVwAF_4unfuVwRRAF_8rdhny_gbVwRRAF_9nyybpngbeVwRRR6erunfuRz,%function
 b__MAFg3__112__unfu_gnoyrVwAF_4unfuVwRRAF_8rdhny_gbVwRRAF_9nyybpngbeVwRRR6erunfuRz:
 nop
@@ -3093,7 +3093,7 @@
 b__MA7naqebvq15QlanzvpErsGnoyr4ybnqRCXAF_19ErfGnoyr_yvo_urnqreR:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVCAF_8ErfGnoyr7CnpxntrRR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVCAF_8ErfGnoyr7CnpxntrRR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVCAF_8ErfGnoyr7CnpxntrRR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVCAF_8ErfGnoyr7CnpxntrRR16qb_zbir_onpxjneqRCiCXiz:
 nop
@@ -3108,7 +3108,7 @@
 b__MA7naqebvq15QlanzvpErsGnoyrP2Ri:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVCAF_8ErfGnoyr4GlcrRR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVCAF_8ErfGnoyr4GlcrRR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVCAF_8ErfGnoyr4GlcrRR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVCAF_8ErfGnoyr4GlcrRR7qb_pbclRCiCXiz:
 nop
@@ -3133,7 +3133,7 @@
 b__MA7naqebvq5Nffrg25perngrSebzHapbzcerffrqZncRAFg3__110havdhr_cgeVAF_7SvyrZncRAF1_14qrsnhyg_qryrgrVF3_RRRRAF0_10NpprffZbqrR:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVuAF_3frgVAF_4cnveVwwRRAF_4yrffVF4_RRAF_9nyybpngbeVF4_RRRRRRAF_19__znc_inyhr_pbzcnerVuFN_AF5_VuRRYo1RRRAF7_VFN_RRR12__svaq_rdhnyVuRRECAF_16__gerr_abqr_onfrVCiRRAF_21__gerr_pbafg_vgrengbeVFN_CAF_11__gerr_abqrVFN_FV_RRyRRECAF_15__gerr_raq_abqrVFX_RRFY_EXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVuAF_3frgVAF_4cnveVwwRRAF_4yrffVF4_RRAF_9nyybpngbeVF4_RRRRRRAF_19__znc_inyhr_pbzcnerVuFN_AF5_VuRRYo1RRRAF7_VFN_RRR12__svaq_rdhnyVuRRECAF_16__gerr_abqr_onfrVCiRRAF_21__gerr_pbafg_vgrengbeVFN_CAF_11__gerr_abqrVFN_FV_RRyRRECAF_15__gerr_raq_abqrVFX_RRFY_EXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVuAF_3frgVAF_4cnveVwwRRAF_4yrffVF4_RRAF_9nyybpngbeVF4_RRRRRRAF_19__znc_inyhr_pbzcnerVuFN_AF5_VuRRYo1RRRAF7_VFN_RRR12__svaq_rdhnyVuRRECAF_16__gerr_abqr_onfrVCiRRAF_21__gerr_pbafg_vgrengbeVFN_CAF_11__gerr_abqrVFN_FV_RRyRRECAF_15__gerr_raq_abqrVFX_RRFY_EXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVuAF_3frgVAF_4cnveVwwRRAF_4yrffVF4_RRAF_9nyybpngbeVF4_RRRRRRAF_19__znc_inyhr_pbzcnerVuFN_AF5_VuRRYo1RRRAF7_VFN_RRR12__svaq_rdhnyVuRRECAF_16__gerr_abqr_onfrVCiRRAF_21__gerr_pbafg_vgrengbeVFN_CAF_11__gerr_abqrVFN_FV_RRyRRECAF_15__gerr_raq_abqrVFX_RRFY_EXG_:
 nop
@@ -3158,7 +3158,7 @@
 b__MA7naqebvq19RkgenpgErfbheprAnzrREXAF_16OnfvpFgevatCvrprVpRRCF1_F4_F4_:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_8Fgevat16RuRRR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_8Fgevat16RuRRR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_8Fgevat16RuRRR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_8Fgevat16RuRRR8qb_fcyngRCiCXiz:
 nop
@@ -3178,7 +3178,7 @@
 b__MA7naqebvq20FgernzvatMvcVasyngreQ1Ri:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RAF_2jcVAF_12NffrgZnantre9FunerqMvcRRRRRR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RAF_2jcVAF_12NffrgZnantre9FunerqMvcRRRRRR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RAF_2jcVAF_12NffrgZnantre9FunerqMvcRRRRRR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RAF_2jcVAF_12NffrgZnantre9FunerqMvcRRRRRR12qb_pbafgehpgRCiz:
 nop
@@ -3203,7 +3203,7 @@
 b__MA7naqebvq12NffrgZnantre12nqqNffrgCnguREXAF_7Fgevat8RCvoo:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwAF_6irpgbeVwAF_9nyybpngbeVwRRRRRRAF_22__habeqrerq_znc_unfureVwF6_AF_4unfuVwRRYo1RRRAF_21__habeqrerq_znc_rdhnyVwF6_AF_8rdhny_gbVwRRYo1RRRAF3_VF6_RRR6erunfuRz
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwAF_6irpgbeVwAF_9nyybpngbeVwRRRRRRAF_22__habeqrerq_znc_unfureVwF6_AF_4unfuVwRRYo1RRRAF_21__habeqrerq_znc_rdhnyVwF6_AF_8rdhny_gbVwRRYo1RRRAF3_VF6_RRR6erunfuRz
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwAF_6irpgbeVwAF_9nyybpngbeVwRRRRRRAF_22__habeqrerq_znc_unfureVwF6_AF_4unfuVwRRYo1RRRAF_21__habeqrerq_znc_rdhnyVwF6_AF_8rdhny_gbVwRRYo1RRRAF3_VF6_RRR6erunfuRz,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwAF_6irpgbeVwAF_9nyybpngbeVwRRRRRRAF_22__habeqrerq_znc_unfureVwF6_AF_4unfuVwRRYo1RRRAF_21__habeqrerq_znc_rdhnyVwF6_AF_8rdhny_gbVwRRYo1RRRAF3_VF6_RRR6erunfuRz:
 nop
@@ -3213,7 +3213,7 @@
 b__MA7naqebvq10cnefrVqzncRCXizCuCAF_11XrlrqIrpgbeVuAF_12VqzncRagevrfRRR:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVCAF_8ErfGnoyr7CnpxntrRR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq6IrpgbeVCAF_8ErfGnoyr7CnpxntrRR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq6IrpgbeVCAF_8ErfGnoyr7CnpxntrRR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq6IrpgbeVCAF_8ErfGnoyr7CnpxntrRR10qb_qrfgeblRCiz:
 nop
@@ -3238,7 +3238,7 @@
 b__MA7naqebvq12NffrgZnantre9FunerqMvcQ2Ri:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_8NffrgQve8SvyrVasbRR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_8NffrgQve8SvyrVasbRR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_8NffrgQve8SvyrVasbRR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_8NffrgQve8SvyrVasbRR12qb_pbafgehpgRCiz:
 nop
@@ -3248,7 +3248,7 @@
 b__MAX7naqebvq13ErfFgevatCbby6vfHGS8Ri:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_12NffrgZnantre10nffrg_cnguRR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq6IrpgbeVAF_12NffrgZnantre10nffrg_cnguRR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq6IrpgbeVAF_12NffrgZnantre10nffrg_cnguRR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq6IrpgbeVAF_12NffrgZnantre10nffrg_cnguRR10qb_qrfgeblRCiz:
 nop
@@ -3258,12 +3258,12 @@
 b__MA7naqebvq8ErfGnoyr5Gurzr5frgGbREXF1_:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVCXAF_13ErfGnoyr_glcrRR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq6IrpgbeVCXAF_13ErfGnoyr_glcrRR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq6IrpgbeVCXAF_13ErfGnoyr_glcrRR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq6IrpgbeVCXAF_13ErfGnoyr_glcrRR12qb_pbafgehpgRCiz:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVCAF_8ErfGnoyr7CnpxntrRR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVCAF_8ErfGnoyr7CnpxntrRR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVCAF_8ErfGnoyr7CnpxntrRR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVCAF_8ErfGnoyr7CnpxntrRR8qb_fcyngRCiCXiz:
 nop
@@ -3283,12 +3283,12 @@
 b__MA7naqebvq12NffrgZnantre9FunerqMvc5tBcraR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_8NffrgQve8SvyrVasbRR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_8NffrgQve8SvyrVasbRR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_8NffrgQve8SvyrVasbRR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_8NffrgQve8SvyrVasbRR15qb_zbir_sbejneqRCiCXiz:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwzRRR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwzRRR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwzRRR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwzRRR15qb_zbir_sbejneqRCiCXiz:
 nop
@@ -3308,7 +3308,7 @@
 b__MA7naqebvq15QlanzvpErsGnoyrP2Ruo:
 nop
 .data
-.globl b__MGIA7naqebvq6IrpgbeVCAF_8ErfGnoyr7CnpxntrRRR
+.weak b__MGIA7naqebvq6IrpgbeVCAF_8ErfGnoyr7CnpxntrRRR
 .type b__MGIA7naqebvq6IrpgbeVCAF_8ErfGnoyr7CnpxntrRRR,%object
 b__MGIA7naqebvq6IrpgbeVCAF_8ErfGnoyr7CnpxntrRRR:
 .space __SIZEOF_POINTER__
@@ -3318,7 +3318,7 @@
 b__MA7naqebvq12NffrgZnantre21fpnaNaqZretrMvcYbpxrqRCAF_12FbegrqIrpgbeVAF_8NffrgQve8SvyrVasbRRREXAF0_10nffrg_cnguRCXpFN_:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_12NffrgZnantre10nffrg_cnguRR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_12NffrgZnantre10nffrg_cnguRR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_12NffrgZnantre10nffrg_cnguRR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_12NffrgZnantre10nffrg_cnguRR8qb_fcyngRCiCXiz:
 nop
@@ -3348,7 +3348,7 @@
 b__MAX7naqebvq12ErfKZYCnefre19trgRyrzragAnzrfcnprRCz:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAFg3__110funerq_cgeVAF0_VCXAF_13ErfGnoyr_glcrRRRRRR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq6IrpgbeVAFg3__110funerq_cgeVAF0_VCXAF_13ErfGnoyr_glcrRRRRRR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq6IrpgbeVAFg3__110funerq_cgeVAF0_VCXAF_13ErfGnoyr_glcrRRRRRR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq6IrpgbeVAFg3__110funerq_cgeVAF0_VCXAF_13ErfGnoyr_glcrRRRRRR12qb_pbafgehpgRCiz:
 nop
@@ -3368,7 +3368,7 @@
 b__MAX7naqebvq12NffrgZnantre6MvcFrg8trgVaqrkREXAF_7Fgevat8R:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RAF_2jcVAF_12NffrgZnantre9FunerqMvcRRRRRR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RAF_2jcVAF_12NffrgZnantre9FunerqMvcRRRRRR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RAF_2jcVAF_12NffrgZnantre9FunerqMvcRRRRRR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RAF_2jcVAF_12NffrgZnantre9FunerqMvcRRRRRR10qb_qrfgeblRCiz:
 nop
@@ -3378,7 +3378,7 @@
 b__MA7naqebvq13YbnqrqCnpxntr14TrgRagelBssfrgRCXAF_13ErfGnoyr_glcrRg:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVuAF_12VqzncRagevrfRRRR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVuAF_12VqzncRagevrfRRRR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVuAF_12VqzncRagevrfRRRR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVuAF_12VqzncRagevrfRRRR7qb_pbclRCiCXiz:
 nop
@@ -3403,7 +3403,7 @@
 b__MA7naqebvq22hacnpxYnathntrBeErtvbaRCXppCp:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RAF_2jcVAF_12NffrgZnantre9FunerqMvcRRRRRR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RAF_2jcVAF_12NffrgZnantre9FunerqMvcRRRRRR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RAF_2jcVAF_12NffrgZnantre9FunerqMvcRRRRRR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RAF_2jcVAF_12NffrgZnantre9FunerqMvcRRRRRR8qb_fcyngRCiCXiz:
 nop
@@ -3413,7 +3413,7 @@
 b__MAX7naqebvq13ErfFgevatCbby15fgevat8BowrpgNgRz:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_4cnveVwwRRAF_4yrffVF2_RRAF_9nyybpngbeVF2_RRR7qrfgeblRCAF_11__gerr_abqrVF2_CiRR
+.weak b__MAFg3__16__gerrVAF_4cnveVwwRRAF_4yrffVF2_RRAF_9nyybpngbeVF2_RRR7qrfgeblRCAF_11__gerr_abqrVF2_CiRR
 .type b__MAFg3__16__gerrVAF_4cnveVwwRRAF_4yrffVF2_RRAF_9nyybpngbeVF2_RRR7qrfgeblRCAF_11__gerr_abqrVF2_CiRR,%function
 b__MAFg3__16__gerrVAF_4cnveVwwRRAF_4yrffVF2_RRAF_9nyybpngbeVF2_RRR7qrfgeblRCAF_11__gerr_abqrVF2_CiRR:
 nop
@@ -3423,7 +3423,7 @@
 b__MA7naqebvq12PhefbeJvaqbj13frgAhzPbyhzafRw:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAFg3__110funerq_cgeVAF0_VCXAF_13ErfGnoyr_glcrRRRRRR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAFg3__110funerq_cgeVAF0_VCXAF_13ErfGnoyr_glcrRRRRRR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAFg3__110funerq_cgeVAF0_VCXAF_13ErfGnoyr_glcrRRRRRR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAFg3__110funerq_cgeVAF0_VCXAF_13ErfGnoyr_glcrRRRRRR8qb_fcyngRCiCXiz:
 nop
@@ -3448,7 +3448,7 @@
 b__MAX7naqebvq12ErfKZYCnefre20trgAnzrfcnprCersvkVQRi:
 nop
 .data
-.globl b__MGIAFg3__110__shapgvba6__shapVCSvvRAF_9nyybpngbeVF3_RRSppRRR
+.weak b__MGIAFg3__110__shapgvba6__shapVCSvvRAF_9nyybpngbeVF3_RRSppRRR
 .type b__MGIAFg3__110__shapgvba6__shapVCSvvRAF_9nyybpngbeVF3_RRSppRRR,%object
 b__MGIAFg3__110__shapgvba6__shapVCSvvRAF_9nyybpngbeVF3_RRSppRRR:
 .space __SIZEOF_POINTER__
@@ -3463,12 +3463,12 @@
 b__MA7naqebvq16OnpxhcQngnJevgre12FrgXrlCersvkREXAF_7Fgevat8R:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RAF_7SvyrErpRRRR10qb_pbzcnerRCXiF7_
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RAF_7SvyrErpRRRR10qb_pbzcnerRCXiF7_
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RAF_7SvyrErpRRRR10qb_pbzcnerRCXiF7_,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RAF_7SvyrErpRRRR10qb_pbzcnerRCXiF7_:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVwAF_4unfuVwRRAF_8rdhny_gbVwRRAF_9nyybpngbeVwRRR25__rzcynpr_havdhr_xrl_netfVwWEXwRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVwCiRRRRoRREXG_QcBG0_
+.weak b__MAFg3__112__unfu_gnoyrVwAF_4unfuVwRRAF_8rdhny_gbVwRRAF_9nyybpngbeVwRRR25__rzcynpr_havdhr_xrl_netfVwWEXwRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVwCiRRRRoRREXG_QcBG0_
 .type b__MAFg3__112__unfu_gnoyrVwAF_4unfuVwRRAF_8rdhny_gbVwRRAF_9nyybpngbeVwRRR25__rzcynpr_havdhr_xrl_netfVwWEXwRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVwCiRRRRoRREXG_QcBG0_,%function
 b__MAFg3__112__unfu_gnoyrVwAF_4unfuVwRRAF_8rdhny_gbVwRRAF_9nyybpngbeVwRRR25__rzcynpr_havdhr_xrl_netfVwWEXwRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVwCiRRRRoRREXG_QcBG0_:
 nop
@@ -3478,7 +3478,7 @@
 b__MAX7naqebvq13FgevatCbbyErs8fgevat16RCz:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRF7_RRAF_22__habeqrerq_znc_unfureVF7_F8_AF_4unfuVF7_RRYo1RRRAF_21__habeqrerq_znc_rdhnyVF7_F8_AF_8rdhny_gbVF7_RRYo1RRRAF5_VF8_RRR4svaqVF7_RRAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF8_CiRRRREXG_
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRF7_RRAF_22__habeqrerq_znc_unfureVF7_F8_AF_4unfuVF7_RRYo1RRRAF_21__habeqrerq_znc_rdhnyVF7_F8_AF_8rdhny_gbVF7_RRYo1RRRAF5_VF8_RRR4svaqVF7_RRAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF8_CiRRRREXG_
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRF7_RRAF_22__habeqrerq_znc_unfureVF7_F8_AF_4unfuVF7_RRYo1RRRAF_21__habeqrerq_znc_rdhnyVF7_F8_AF_8rdhny_gbVF7_RRYo1RRRAF5_VF8_RRR4svaqVF7_RRAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF8_CiRRRREXG_,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRF7_RRAF_22__habeqrerq_znc_unfureVF7_F8_AF_4unfuVF7_RRYo1RRRAF_21__habeqrerq_znc_rdhnyVF7_F8_AF_8rdhny_gbVF7_RRYo1RRRAF5_VF8_RRR4svaqVF7_RRAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF8_CiRRRREXG_:
 nop
@@ -3508,7 +3508,7 @@
 b__MAX7naqebvq8ErfGnoyr8trgRagelRCXAF0_12CnpxntrTebhcRvvCXAF_15ErfGnoyr_pbasvtRCAF0_5RagelR:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVuAF_3frgVAF_4cnveVwwRRAF_4yrffVF4_RRAF_9nyybpngbeVF4_RRRRRRAF_19__znc_inyhr_pbzcnerVuFN_AF5_VuRRYo1RRRAF7_VFN_RRR7qrfgeblRCAF_11__gerr_abqrVFN_CiRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVuAF_3frgVAF_4cnveVwwRRAF_4yrffVF4_RRAF_9nyybpngbeVF4_RRRRRRAF_19__znc_inyhr_pbzcnerVuFN_AF5_VuRRYo1RRRAF7_VFN_RRR7qrfgeblRCAF_11__gerr_abqrVFN_CiRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVuAF_3frgVAF_4cnveVwwRRAF_4yrffVF4_RRAF_9nyybpngbeVF4_RRRRRRAF_19__znc_inyhr_pbzcnerVuFN_AF5_VuRRYo1RRRAF7_VFN_RRR7qrfgeblRCAF_11__gerr_abqrVFN_CiRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVuAF_3frgVAF_4cnveVwwRRAF_4yrffVF4_RRAF_9nyybpngbeVF4_RRRRRRAF_19__znc_inyhr_pbzcnerVuFN_AF5_VuRRYo1RRRAF7_VFN_RRR7qrfgeblRCAF_11__gerr_abqrVFN_CiRR:
 nop
@@ -3523,7 +3523,7 @@
 b__MAX7naqebvq12ErfKZYCnefre7trgGrkgRCz:
 nop
 .text
-.globl b__MAXFg3__110__shapgvba6__shapVCSvvRAF_9nyybpngbeVF3_RRSppRR7__pybarRCAF0_6__onfrVF6_RR
+.weak b__MAXFg3__110__shapgvba6__shapVCSvvRAF_9nyybpngbeVF3_RRSppRR7__pybarRCAF0_6__onfrVF6_RR
 .type b__MAXFg3__110__shapgvba6__shapVCSvvRAF_9nyybpngbeVF3_RRSppRR7__pybarRCAF0_6__onfrVF6_RR,%function
 b__MAXFg3__110__shapgvba6__shapVCSvvRAF_9nyybpngbeVF3_RRSppRR7__pybarRCAF0_6__onfrVF6_RR:
 nop
@@ -3533,7 +3533,7 @@
 b__MA7naqebvq16_PbzcerffrqNffrg9trgOhssreRo:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_2fcVAF_12NffrgZnantre9FunerqMvcRRRR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_2fcVAF_12NffrgZnantre9FunerqMvcRRRR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_2fcVAF_12NffrgZnantre9FunerqMvcRRRR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_2fcVAF_12NffrgZnantre9FunerqMvcRRRR7qb_pbclRCiCXiz:
 nop
@@ -3543,7 +3543,7 @@
 b__MGIA7naqebvq12NffrgZnantreR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RAF_7SvyrErpRRRR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RAF_7SvyrErpRRRR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RAF_7SvyrErpRRRR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RAF_7SvyrErpRRRR16qb_zbir_onpxjneqRCiCXiz:
 nop
@@ -3568,17 +3568,17 @@
 b__MA7naqebvq16OnpxhcQngnErnqreQ1Ri:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RAF_7SvyrErpRRRR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RAF_7SvyrErpRRRR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RAF_7SvyrErpRRRR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RAF_7SvyrErpRRRR15qb_zbir_sbejneqRCiCXiz:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVuCXA7naqebvq17VqzncRagel_urnqreRRRAF_22__habeqrerq_znc_unfureVuF6_AF_4unfuVuRRYo1RRRAF_21__habeqrerq_znc_rdhnyVuF6_AF_8rdhny_gbVuRRYo1RRRAF_9nyybpngbeVF6_RRR25__rzcynpr_havdhr_xrl_netfVuWEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWBuRRRAFZ_VWRRRRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF6_CiRRRRoRREXG_QcBG0_
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVuCXA7naqebvq17VqzncRagel_urnqreRRRAF_22__habeqrerq_znc_unfureVuF6_AF_4unfuVuRRYo1RRRAF_21__habeqrerq_znc_rdhnyVuF6_AF_8rdhny_gbVuRRYo1RRRAF_9nyybpngbeVF6_RRR25__rzcynpr_havdhr_xrl_netfVuWEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWBuRRRAFZ_VWRRRRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF6_CiRRRRoRREXG_QcBG0_
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVuCXA7naqebvq17VqzncRagel_urnqreRRRAF_22__habeqrerq_znc_unfureVuF6_AF_4unfuVuRRYo1RRRAF_21__habeqrerq_znc_rdhnyVuF6_AF_8rdhny_gbVuRRYo1RRRAF_9nyybpngbeVF6_RRR25__rzcynpr_havdhr_xrl_netfVuWEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWBuRRRAFZ_VWRRRRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF6_CiRRRRoRREXG_QcBG0_,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVuCXA7naqebvq17VqzncRagel_urnqreRRRAF_22__habeqrerq_znc_unfureVuF6_AF_4unfuVuRRYo1RRRAF_21__habeqrerq_znc_rdhnyVuF6_AF_8rdhny_gbVuRRYo1RRRAF_9nyybpngbeVF6_RRR25__rzcynpr_havdhr_xrl_netfVuWEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWBuRRRAFZ_VWRRRRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF6_CiRRRRoRREXG_QcBG0_:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq19QlanzvpCnpxntrRagelRAF_9nyybpngbeVF2_RRR24__rzcynpr_onpx_fybj_cnguVWAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF3_VpRRRREXwRRRiQcBG_
+.weak b__MAFg3__16irpgbeVA7naqebvq19QlanzvpCnpxntrRagelRAF_9nyybpngbeVF2_RRR24__rzcynpr_onpx_fybj_cnguVWAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF3_VpRRRREXwRRRiQcBG_
 .type b__MAFg3__16irpgbeVA7naqebvq19QlanzvpCnpxntrRagelRAF_9nyybpngbeVF2_RRR24__rzcynpr_onpx_fybj_cnguVWAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF3_VpRRRREXwRRRiQcBG_,%function
 b__MAFg3__16irpgbeVA7naqebvq19QlanzvpCnpxntrRagelRAF_9nyybpngbeVF2_RRR24__rzcynpr_onpx_fybj_cnguVWAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF3_VpRRRREXwRRRiQcBG_:
 nop
@@ -3613,7 +3613,7 @@
 b__MAX7naqebvq12ErfKZYCnefre11trgCbfvgvbaRCAF0_14ErfKZYCbfvgvbaR:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVCAF_8ErfGnoyr7CnpxntrRR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVCAF_8ErfGnoyr7CnpxntrRR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVCAF_8ErfGnoyr7CnpxntrRR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVCAF_8ErfGnoyr7CnpxntrRR15qb_zbir_sbejneqRCiCXiz:
 nop
@@ -3628,7 +3628,7 @@
 b__MA7naqebvq12NffrgZnantre6MvcFrg12trgFunerqMvcREXAF_7Fgevat8R:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_8NffrgQve8SvyrVasbRR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_8NffrgQve8SvyrVasbRR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_8NffrgQve8SvyrVasbRR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_8NffrgQve8SvyrVasbRR10qb_qrfgeblRCiz:
 nop
@@ -3648,7 +3648,7 @@
 b__MAX7naqebvq8ErfGnoyr11cevag_inyhrRCXAF0_7CnpxntrREXAF_9Erf_inyhrR:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_7Fgevat8RR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq6IrpgbeVAF_7Fgevat8RR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq6IrpgbeVAF_7Fgevat8RR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq6IrpgbeVAF_7Fgevat8RR10qb_qrfgeblRCiz:
 nop
@@ -3673,7 +3673,7 @@
 b__MAX7naqebvq12NffrgZnantre17nqqFlfgrzBireynlfRCXpEXAF_7Fgevat8RCAF_8ErfGnoyrRz:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_8NffrgQve8SvyrVasbRR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_8NffrgQve8SvyrVasbRR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_8NffrgQve8SvyrVasbRR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_8NffrgQve8SvyrVasbRR8qb_fcyngRCiCXiz:
 nop
@@ -3703,12 +3703,12 @@
 b__MA7naqebvq13NffrgZnantre26TrgOntRw:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRF7_RRAF_22__habeqrerq_znc_unfureVF7_F8_AF_4unfuVF7_RRYo1RRRAF_21__habeqrerq_znc_rdhnyVF7_F8_AF_8rdhny_gbVF7_RRYo1RRRAF5_VF8_RRR8__erunfuRz
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRF7_RRAF_22__habeqrerq_znc_unfureVF7_F8_AF_4unfuVF7_RRYo1RRRAF_21__habeqrerq_znc_rdhnyVF7_F8_AF_8rdhny_gbVF7_RRYo1RRRAF5_VF8_RRR8__erunfuRz
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRF7_RRAF_22__habeqrerq_znc_unfureVF7_F8_AF_4unfuVF7_RRYo1RRRAF_21__habeqrerq_znc_rdhnyVF7_F8_AF_8rdhny_gbVF7_RRYo1RRRAF5_VF8_RRR8__erunfuRz,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRF7_RRAF_22__habeqrerq_znc_unfureVF7_F8_AF_4unfuVF7_RRYo1RRRAF_21__habeqrerq_znc_rdhnyVF7_F8_AF_8rdhny_gbVF7_RRYo1RRRAF5_VF8_RRR8__erunfuRz:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVCAF_8ErfGnoyr6UrnqreRR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVCAF_8ErfGnoyr6UrnqreRR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVCAF_8ErfGnoyr6UrnqreRR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVCAF_8ErfGnoyr6UrnqreRR15qb_zbir_sbejneqRCiCXiz:
 nop
@@ -3723,7 +3723,7 @@
 b__MA7naqebvq12NffrgZnantre6MvcFrg10vfHcGbQngrRi:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RAF_2jcVAF_12NffrgZnantre9FunerqMvcRRRRRR10qb_pbzcnerRCXiFN_
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RAF_2jcVAF_12NffrgZnantre9FunerqMvcRRRRRR10qb_pbzcnerRCXiFN_
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RAF_2jcVAF_12NffrgZnantre9FunerqMvcRRRRRR10qb_pbzcnerRCXiFN_,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RAF_2jcVAF_12NffrgZnantre9FunerqMvcRRRRRR10qb_pbzcnerRCXiFN_:
 nop
@@ -3733,7 +3733,7 @@
 b__MA7naqebvq10YbnqrqNefp9YbnqGnoyrREXAF_5PuhaxRCXAF_11YbnqrqVqzncRo:
 nop
 .data
-.globl b__MGI8SqErnqre
+.weak b__MGI8SqErnqre
 .type b__MGI8SqErnqre,%object
 b__MGI8SqErnqre:
 .space __SIZEOF_POINTER__
@@ -3743,7 +3743,7 @@
 b__MAX7naqebvq5Gurzr25ErfbyirNggevohgrErsreraprRvCAF_9Erf_inyhrRCAF_15ErfGnoyr_pbasvtRCwF5_:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwwRRAF_22__habeqrerq_znc_unfureVwF2_AF_4unfuVwRRYo1RRRAF_21__habeqrerq_znc_rdhnyVwF2_AF_8rdhny_gbVwRRYo1RRRAF_9nyybpngbeVF2_RRR25__rzcynpr_havdhr_xrl_netfVwWEXAF_4cnveVXwwRRRRRAFS_VAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF2_CiRRRRoRREXG_QcBG0_
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwwRRAF_22__habeqrerq_znc_unfureVwF2_AF_4unfuVwRRYo1RRRAF_21__habeqrerq_znc_rdhnyVwF2_AF_8rdhny_gbVwRRYo1RRRAF_9nyybpngbeVF2_RRR25__rzcynpr_havdhr_xrl_netfVwWEXAF_4cnveVXwwRRRRRAFS_VAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF2_CiRRRRoRREXG_QcBG0_
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwwRRAF_22__habeqrerq_znc_unfureVwF2_AF_4unfuVwRRYo1RRRAF_21__habeqrerq_znc_rdhnyVwF2_AF_8rdhny_gbVwRRYo1RRRAF_9nyybpngbeVF2_RRR25__rzcynpr_havdhr_xrl_netfVwWEXAF_4cnveVXwwRRRRRAFS_VAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF2_CiRRRRoRREXG_QcBG0_,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwwRRAF_22__habeqrerq_znc_unfureVwF2_AF_4unfuVwRRYo1RRRAF_21__habeqrerq_znc_rdhnyVwF2_AF_8rdhny_gbVwRRYo1RRRAF_9nyybpngbeVF2_RRR25__rzcynpr_havdhr_xrl_netfVwWEXAF_4cnveVXwwRRRRRAFS_VAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF2_CiRRRRoRREXG_QcBG0_:
 nop
@@ -3798,7 +3798,6 @@
 CALL(b__MA7naqebvq4onfr10YbtZrffntrQ1Ri)
 CALL(b__MA7naqebvq9NcxNffrgf19PerngrNffrgSebzSvyrREXAFg3__112onfvp_fgevatVpAF1_11pune_genvgfVpRRAF1_9nyybpngbeVpRRRR)
 CALL(b__MA7naqebvq11YbnqrqVqznc4YbnqREXAF_16OnfvpFgevatCvrprVpRR)
-CALL(lseek64)
 CALL(b__MA7naqebvq7SvyrZncP1Ri)
 CALL(b__MA7naqebvq7SvyrZnc6perngrRCXpvyzo)
 CALL(b__MA7naqebvq5Nffrg25perngrSebzHapbzcerffrqZncRAFg3__110havdhr_cgeVAF_7SvyrZncRAF1_14qrsnhyg_qryrgrVF3_RRRRAF0_10NpprffZbqrR)
@@ -4301,7 +4300,6 @@
 CALL(b_pep32)
 CALL(b__MA7naqebvq16OnpxhcQngnJevgre17JevgrRagvglUrnqreREXAF_7Fgevat8Rz)
 CALL(b__MA7naqebvq16OnpxhcQngnJevgre15JevgrRagvglQngnRCXiz)
-CALL(lstat64)
 CALL(b__MA7naqebvq16OnpxhcQngnErnqre16ErnqRagvglUrnqreRCAF_7Fgevat8RCz)
 CALL(b__MA7naqebvq16OnpxhcQngnErnqre14ErnqRagvglQngnRCiz)
 CALL(open)
diff --git a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_002.S b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_002.S
index 6eae0a1..6d43235 100644
--- a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_002.S
+++ b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_002.S
@@ -3,12 +3,12 @@
 .data
 .p2align 4
 .text
-.globl b__MAX7naqebvq6IrpgbeVvR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVvR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVvR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVvR7qb_pbclRCiCXiz:
 nop
 .text
-.globl b__MA7naqebvq11OaVagresnprVAF_5zrqvn7VCynlreRR10baNfOvaqreRi
+.weak b__MA7naqebvq11OaVagresnprVAF_5zrqvn7VCynlreRR10baNfOvaqreRi
 .type b__MA7naqebvq11OaVagresnprVAF_5zrqvn7VCynlreRR10baNfOvaqreRi,%function
 b__MA7naqebvq11OaVagresnprVAF_5zrqvn7VCynlreRR10baNfOvaqreRi:
 nop
@@ -28,7 +28,7 @@
 b__MGua8_A7naqebvq8OaRssrpg10baGenafnpgRwEXAF_6CnepryRCF1_w:
 nop
 .data
-.globl b__MGIA7naqebvq11NhqvbRssrpg12RssrpgPyvragR
+.weak b__MGIA7naqebvq11NhqvbRssrpg12RssrpgPyvragR
 .type b__MGIA7naqebvq11NhqvbRssrpg12RssrpgPyvragR,%object
 b__MGIA7naqebvq11NhqvbRssrpg12RssrpgPyvragR:
 .space __SIZEOF_POINTER__
@@ -53,7 +53,7 @@
 b__MA7naqebvq21NhqvbGenpxPyvragCebkl5syhfuRi:
 nop
 .data
-.globl b__MGPA7naqebvq14OcNhqvbSyvatreR0_AF_13VNhqvbSyvatreR
+.weak b__MGPA7naqebvq14OcNhqvbSyvatreR0_AF_13VNhqvbSyvatreR
 .type b__MGPA7naqebvq14OcNhqvbSyvatreR0_AF_13VNhqvbSyvatreR,%object
 b__MGPA7naqebvq14OcNhqvbSyvatreR0_AF_13VNhqvbSyvatreR:
 .space __SIZEOF_POINTER__
@@ -78,7 +78,7 @@
 b__MGIA7naqebvq21NhqvbGenpxPyvragCebklR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIA7naqebvq8OcRssrpgR
+.weak b__MGIA7naqebvq8OcRssrpgR
 .type b__MGIA7naqebvq8OcRssrpgR,%object
 b__MGIA7naqebvq8OcRssrpgR:
 .space __SIZEOF_POINTER__
@@ -98,7 +98,7 @@
 b__MGIA7naqebvq14OaNhqvbSyvatreR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq6IrpgbeVvR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq6IrpgbeVvR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq6IrpgbeVvR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq6IrpgbeVvR12qb_pbafgehpgRCiz:
 nop
@@ -138,7 +138,7 @@
 b__MAX7naqebvq19VNhqvbSyvatrePyvrag22trgVagresnprQrfpevcgbeRi:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR10qb_qrfgeblRCiz:
 nop
@@ -148,7 +148,7 @@
 b__MA7naqebvq27FgngvpNhqvbGenpxFreireCebkl11senzrfErnqlRi:
 nop
 .data
-.globl b__MGIA7naqebvq26OcNhqvbCbyvplFreivprPyvragR
+.weak b__MGIA7naqebvq26OcNhqvbCbyvplFreivprPyvragR
 .type b__MGIA7naqebvq26OcNhqvbCbyvplFreivprPyvragR,%object
 b__MGIA7naqebvq26OcNhqvbCbyvplFreivprPyvragR:
 .space __SIZEOF_POINTER__
@@ -203,12 +203,12 @@
 b__MGPA7naqebvq11NhqvbFlfgrz24NhqvbCbyvplFreivprPyvragR8_AF_11OaVagresnprVAF_25VNhqvbCbyvplFreivprPyvragRRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_22NhqvbZvkZngpuPevgrevbaRR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_22NhqvbZvkZngpuPevgrevbaRR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_22NhqvbZvkZngpuPevgrevbaRR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_22NhqvbZvkZngpuPevgrevbaRR15qb_zbir_sbejneqRCiCXiz:
 nop
 .text
-.globl b__MA7naqebvq11OaVagresnprVAF_5zrqvn12VNhqvbErpbeqRR10baNfOvaqreRi
+.weak b__MA7naqebvq11OaVagresnprVAF_5zrqvn12VNhqvbErpbeqRR10baNfOvaqreRi
 .type b__MA7naqebvq11OaVagresnprVAF_5zrqvn12VNhqvbErpbeqRR10baNfOvaqreRi,%function
 b__MA7naqebvq11OaVagresnprVAF_5zrqvn12VNhqvbErpbeqRR10baNfOvaqreRi:
 nop
@@ -228,7 +228,7 @@
 b__MA7naqebvq26OaNhqvbCbyvplFreivprPyvrag10baGenafnpgRwEXAF_6CnepryRCF1_w:
 nop
 .text
-.globl b__MAFg3__14yvfgVA7naqebvq5zrqvn12IbyhzrFuncreRAF_9nyybpngbeVF3_RRR5renfrRAF_21__yvfg_pbafg_vgrengbeVF3_CiRR
+.weak b__MAFg3__14yvfgVA7naqebvq5zrqvn12IbyhzrFuncreRAF_9nyybpngbeVF3_RRR5renfrRAF_21__yvfg_pbafg_vgrengbeVF3_CiRR
 .type b__MAFg3__14yvfgVA7naqebvq5zrqvn12IbyhzrFuncreRAF_9nyybpngbeVF3_RRR5renfrRAF_21__yvfg_pbafg_vgrengbeVF3_CiRR,%function
 b__MAFg3__14yvfgVA7naqebvq5zrqvn12IbyhzrFuncreRAF_9nyybpngbeVF3_RRR5renfrRAF_21__yvfg_pbafg_vgrengbeVF3_CiRR:
 nop
@@ -243,7 +243,7 @@
 b__MA7naqebvq5zrqvn8OcCynlre4fgbcRi:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_2fcVAF_11NhqvbFlfgrz24NhqvbIbyhzrTebhcPnyyonpxRRRR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_2fcVAF_11NhqvbFlfgrz24NhqvbIbyhzrTebhcPnyyonpxRRRR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_2fcVAF_11NhqvbFlfgrz24NhqvbIbyhzrTebhcPnyyonpxRRRR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_2fcVAF_11NhqvbFlfgrz24NhqvbIbyhzrTebhcPnyyonpxRRRR7qb_pbclRCiCXiz:
 nop
@@ -253,7 +253,7 @@
 b__MA7naqebvq13VNhqvbSyvatre12qrsnhyg_vzcyR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIA7naqebvq6IrpgbeVAF_19NhqvbQrivprGlcrNqqeRRR
+.weak b__MGIA7naqebvq6IrpgbeVAF_19NhqvbQrivprGlcrNqqeRRR
 .type b__MGIA7naqebvq6IrpgbeVAF_19NhqvbQrivprGlcrNqqeRRR,%object
 b__MGIA7naqebvq6IrpgbeVAF_19NhqvbQrivprGlcrNqqeRRR:
 .space __SIZEOF_POINTER__
@@ -273,7 +273,7 @@
 b__MA7naqebvq11PyvragCebkl8xSberireR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGGA7naqebvq14OcNhqvbSyvatreR
+.weak b__MGGA7naqebvq14OcNhqvbSyvatreR
 .type b__MGGA7naqebvq14OcNhqvbSyvatreR,%object
 b__MGGA7naqebvq14OcNhqvbSyvatreR:
 .space __SIZEOF_POINTER__
@@ -313,12 +313,12 @@
 b__MA7naqebvq5zrqvn12VNhqvbErpbeqQ1Ri:
 nop
 .data
-.globl b__MGPA7naqebvq11NhqvbRssrpg12RssrpgPyvragR32_AF_7VOvaqre14QrnguErpvcvragR
+.weak b__MGPA7naqebvq11NhqvbRssrpg12RssrpgPyvragR32_AF_7VOvaqre14QrnguErpvcvragR
 .type b__MGPA7naqebvq11NhqvbRssrpg12RssrpgPyvragR32_AF_7VOvaqre14QrnguErpvcvragR,%object
 b__MGPA7naqebvq11NhqvbRssrpg12RssrpgPyvragR32_AF_7VOvaqre14QrnguErpvcvragR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq2fcVAF_21NhqvbGenpxPyvragCebklRRnFVAF_27FgngvpNhqvbGenpxPyvragCebklRRREF2_EXAF0_VG_RR
+.weak b__MA7naqebvq2fcVAF_21NhqvbGenpxPyvragCebklRRnFVAF_27FgngvpNhqvbGenpxPyvragCebklRRREF2_EXAF0_VG_RR
 .type b__MA7naqebvq2fcVAF_21NhqvbGenpxPyvragCebklRRnFVAF_27FgngvpNhqvbGenpxPyvragCebklRRREF2_EXAF0_VG_RR,%function
 b__MA7naqebvq2fcVAF_21NhqvbGenpxPyvragCebklRRnFVAF_27FgngvpNhqvbGenpxPyvragCebklRRREF2_EXAF0_VG_RR:
 nop
@@ -338,7 +338,7 @@
 b__MA7naqebvq11NhqvbFlfgrz13trgCubarFgngrRi:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVsR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVsR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVsR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVsR15qb_zbir_sbejneqRCiCXiz:
 nop
@@ -353,7 +353,7 @@
 b__MA7naqebvq21NhqvbGenpxFreireCebkl11senzrfErnqlRi:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_19NhqvbQrivprGlcrNqqeRR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_19NhqvbQrivprGlcrNqqeRR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_19NhqvbQrivprGlcrNqqeRR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_19NhqvbQrivprGlcrNqqeRR7qb_pbclRCiCXiz:
 nop
@@ -363,7 +363,7 @@
 b__MA7naqebvq5zrqvn13OaNhqvbErpbeqP2Ri:
 nop
 .data
-.globl b__MGIA7naqebvq6IrpgbeVvRR
+.weak b__MGIA7naqebvq6IrpgbeVvRR
 .type b__MGIA7naqebvq6IrpgbeVvRR,%object
 b__MGIA7naqebvq6IrpgbeVvRR:
 .space __SIZEOF_POINTER__
@@ -383,7 +383,7 @@
 b__MAX7naqebvq21NhqvbGenpxFreireCebkl7trgErneRi:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF0_VsRRR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF0_VsRRR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF0_VsRRR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF0_VsRRR7qb_pbclRCiCXiz:
 nop
@@ -408,7 +408,7 @@
 b__MA7naqebvq15GenpxCynlreOnfr4vavgRCAF_10NhqvbGenpxRAF_13cynlre_glcr_gR13nhqvb_hfntr_g:
 nop
 .text
-.globl b__MA7naqebvq11OaVagresnprVAF_13VRssrpgPyvragRR10baNfOvaqreRi
+.weak b__MA7naqebvq11OaVagresnprVAF_13VRssrpgPyvragRR10baNfOvaqreRi
 .type b__MA7naqebvq11OaVagresnprVAF_13VRssrpgPyvragRR10baNfOvaqreRi,%function
 b__MA7naqebvq11OaVagresnprVAF_13VRssrpgPyvragRR10baNfOvaqreRi:
 nop
@@ -423,7 +423,7 @@
 b__MA7naqebvq11NhqvbErpbeq12ZrqvnZrgevpf6tngureRCXF0_:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_2fcVAF_11NhqvbFlfgrz17NhqvbCbegPnyyonpxRRRR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_2fcVAF_11NhqvbFlfgrz17NhqvbCbegPnyyonpxRRRR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_2fcVAF_11NhqvbFlfgrz17NhqvbCbegPnyyonpxRRRR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_2fcVAF_11NhqvbFlfgrz17NhqvbCbegPnyyonpxRRRR8qb_fcyngRCiCXiz:
 nop
@@ -453,7 +453,7 @@
 b__MGPA7naqebvq14OaNhqvbSyvatreR0_AF_11OaVagresnprVAF_13VNhqvbSyvatreRRR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGPA7naqebvq11NhqvbRssrpg12RssrpgPyvragR0_AF_13VRssrpgPyvragR
+.weak b__MGPA7naqebvq11NhqvbRssrpg12RssrpgPyvragR0_AF_13VRssrpgPyvragR
 .type b__MGPA7naqebvq11NhqvbRssrpg12RssrpgPyvragR0_AF_13VRssrpgPyvragR,%object
 b__MGPA7naqebvq11NhqvbRssrpg12RssrpgPyvragR0_AF_13VRssrpgPyvragR:
 .space __SIZEOF_POINTER__
@@ -463,7 +463,7 @@
 b__MA7naqebvq11NhqvbFlfgrz22nqqNhqvbQrivprPnyyonpxREXAF_2jcVAF0_19NhqvbQrivprPnyyonpxRRRvv:
 nop
 .text
-.globl b__MAFg3__16irpgbeVvAF_9nyybpngbeVvRRR21__chfu_onpx_fybj_cnguVEXvRRiBG_
+.weak b__MAFg3__16irpgbeVvAF_9nyybpngbeVvRRR21__chfu_onpx_fybj_cnguVEXvRRiBG_
 .type b__MAFg3__16irpgbeVvAF_9nyybpngbeVvRRR21__chfu_onpx_fybj_cnguVEXvRRiBG_,%function
 b__MAFg3__16irpgbeVvAF_9nyybpngbeVvRRR21__chfu_onpx_fybj_cnguVEXvRRiBG_:
 nop
@@ -483,7 +483,7 @@
 b__MGi0_a24_A7naqebvq10NhqvbGenpx16NhqvbGenpxGuernqQ0Ri:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq16NhqvbIbyhzrTebhcRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVEXF2_RRiBG_
+.weak b__MAFg3__16irpgbeVA7naqebvq16NhqvbIbyhzrTebhcRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVEXF2_RRiBG_
 .type b__MAFg3__16irpgbeVA7naqebvq16NhqvbIbyhzrTebhcRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVEXF2_RRiBG_,%function
 b__MAFg3__16irpgbeVA7naqebvq16NhqvbIbyhzrTebhcRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVEXF2_RRiBG_:
 nop
@@ -518,7 +518,7 @@
 b__MA7naqebvq11NhqvbErpbeq13QrnguAbgvsvre10ovaqreQvrqREXAF_2jcVAF_7VOvaqreRRR:
 nop
 .data
-.globl b__MGIA7naqebvq22NhqvbErpbeqPyvragCebklR
+.weak b__MGIA7naqebvq22NhqvbErpbeqPyvragCebklR
 .type b__MGIA7naqebvq22NhqvbErpbeqPyvragCebklR,%object
 b__MGIA7naqebvq22NhqvbErpbeqPyvragCebklR:
 .space __SIZEOF_POINTER__
@@ -538,7 +538,7 @@
 b__MA7naqebvq11NhqvbFlfgrz19trgQrivprfSbeFgernzR19nhqvb_fgernz_glcr_g:
 nop
 .data
-.globl b__MGIA7naqebvq20OcNhqvbCbyvplFreivprR
+.weak b__MGIA7naqebvq20OcNhqvbCbyvplFreivprR
 .type b__MGIA7naqebvq20OcNhqvbCbyvplFreivprR,%object
 b__MGIA7naqebvq20OcNhqvbCbyvplFreivprR:
 .space __SIZEOF_POINTER__
@@ -588,12 +588,12 @@
 b__MA7naqebvq10NhqvbGenpx22hcqngrEbhgrqQrivprVq_yRi:
 nop
 .text
-.globl b__MA7naqebvq2fcVAF_27FgngvpNhqvbGenpxPyvragCebklRRnFRCF1_
+.weak b__MA7naqebvq2fcVAF_27FgngvpNhqvbGenpxPyvragCebklRRnFRCF1_
 .type b__MA7naqebvq2fcVAF_27FgngvpNhqvbGenpxPyvragCebklRRnFRCF1_,%function
 b__MA7naqebvq2fcVAF_27FgngvpNhqvbGenpxPyvragCebklRRnFRCF1_:
 nop
 .text
-.globl b__MAFg3__113__irpgbe_onfrVA7naqebvq5zrqvn14ZvpebcubarVasbRAF_9nyybpngbeVF3_RRRQ2Ri
+.weak b__MAFg3__113__irpgbe_onfrVA7naqebvq5zrqvn14ZvpebcubarVasbRAF_9nyybpngbeVF3_RRRQ2Ri
 .type b__MAFg3__113__irpgbe_onfrVA7naqebvq5zrqvn14ZvpebcubarVasbRAF_9nyybpngbeVF3_RRRQ2Ri,%function
 b__MAFg3__113__irpgbe_onfrVA7naqebvq5zrqvn14ZvpebcubarVasbRAF_9nyybpngbeVF3_RRRQ2Ri:
 nop
@@ -643,22 +643,22 @@
 b__MGi0_a24_A7naqebvq11NhqvbErpbeq17NhqvbErpbeqGuernqQ0Ri:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_2fcVAF_11NhqvbFlfgrz24NhqvbIbyhzrTebhcPnyyonpxRRRR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_2fcVAF_11NhqvbFlfgrz24NhqvbIbyhzrTebhcPnyyonpxRRRR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_2fcVAF_11NhqvbFlfgrz24NhqvbIbyhzrTebhcPnyyonpxRRRR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_2fcVAF_11NhqvbFlfgrz24NhqvbIbyhzrTebhcPnyyonpxRRRR16qb_zbir_onpxjneqRCiCXiz:
 nop
 .data
-.globl b__MGIA7naqebvq5zrqvn12IbyhzrFuncre9BcrengvbaR
+.weak b__MGIA7naqebvq5zrqvn12IbyhzrFuncre9BcrengvbaR
 .type b__MGIA7naqebvq5zrqvn12IbyhzrFuncre9BcrengvbaR,%object
 b__MGIA7naqebvq5zrqvn12IbyhzrFuncre9BcrengvbaR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGPA7naqebvq26OcNhqvbCbyvplFreivprPyvragR8_AF_9OcErsOnfrR
+.weak b__MGPA7naqebvq26OcNhqvbCbyvplFreivprPyvragR8_AF_9OcErsOnfrR
 .type b__MGPA7naqebvq26OcNhqvbCbyvplFreivprPyvragR8_AF_9OcErsOnfrR,%object
 b__MGPA7naqebvq26OcNhqvbCbyvplFreivprPyvragR8_AF_9OcErsOnfrR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGPA7naqebvq14OcRssrpgPyvragR0_AF_10VVagresnprR
+.weak b__MGPA7naqebvq14OcRssrpgPyvragR0_AF_10VVagresnprR
 .type b__MGPA7naqebvq14OcRssrpgPyvragR0_AF_10VVagresnprR,%object
 b__MGPA7naqebvq14OcRssrpgPyvragR0_AF_10VVagresnprR:
 .space __SIZEOF_POINTER__
@@ -693,7 +693,7 @@
 b__MA7naqebvq11NhqvbFlfgrz24NhqvbCbyvplFreivprPyvrag29baQlanzvpCbyvplZvkFgngrHcqngrRAF_7Fgevat8Rv:
 nop
 .data
-.globl b__MGGA7naqebvq8OcRssrpgR
+.weak b__MGGA7naqebvq8OcRssrpgR
 .type b__MGGA7naqebvq8OcRssrpgR,%object
 b__MGGA7naqebvq8OcRssrpgR:
 .space __SIZEOF_POINTER__
@@ -703,7 +703,7 @@
 b__MA7naqebvq11NhqvbRssrpgP1RCXpEXAF_8Fgevat16RF2_vCSivCiF6_RF6_15nhqvb_frffvba_gv:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_8NhqvbZvkRR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_8NhqvbZvkRR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_8NhqvbZvkRR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_8NhqvbZvkRR15qb_zbir_sbejneqRCiCXiz:
 nop
@@ -728,7 +728,7 @@
 b__MGIA7naqebvq19VNhqvbCbyvplFreivprR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIA7naqebvq6IrpgbeVsRR
+.weak b__MGIA7naqebvq6IrpgbeVsRR
 .type b__MGIA7naqebvq6IrpgbeVsRR,%object
 b__MGIA7naqebvq6IrpgbeVsRR:
 .space __SIZEOF_POINTER__
@@ -753,7 +753,7 @@
 b__MA7naqebvq10NhqvbGenpx21trgOhssreQhengvbaVaHfRCy:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR10qb_pbzcnerRCXiF6_
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR10qb_pbzcnerRCXiF6_
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR10qb_pbzcnerRCXiF6_,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR10qb_pbzcnerRCXiF6_:
 nop
@@ -793,12 +793,12 @@
 b__MA7naqebvq15GenpxCynlreOnfr9qbQrfgeblRi:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVvR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVvR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVvR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVvR16qb_zbir_onpxjneqRCiCXiz:
 nop
 .text
-.globl b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR7frrxbssRkAF_8vbf_onfr7frrxqveRw
+.weak b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR7frrxbssRkAF_8vbf_onfr7frrxqveRw
 .type b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR7frrxbssRkAF_8vbf_onfr7frrxqveRw,%function
 b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR7frrxbssRkAF_8vbf_onfr7frrxqveRw:
 nop
@@ -848,7 +848,7 @@
 b__MA7naqebvq11NhqvbFlfgrz29trgCersreerqQrivprSbeFgengrtlRAF_18cebqhpg_fgengrtl_gREAF_19NhqvbQrivprGlcrNqqeR:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_2fcVAF_11NhqvbFlfgrz17NhqvbCbegPnyyonpxRRRR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq6IrpgbeVAF_2fcVAF_11NhqvbFlfgrz17NhqvbCbegPnyyonpxRRRR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq6IrpgbeVAF_2fcVAF_11NhqvbFlfgrz17NhqvbCbegPnyyonpxRRRR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq6IrpgbeVAF_2fcVAF_11NhqvbFlfgrz17NhqvbCbegPnyyonpxRRRR10qb_qrfgeblRCiz:
 nop
@@ -878,7 +878,7 @@
 b__MA7naqebvq10NhqvbGenpx22nqqNhqvbQrivprPnyyonpxREXAF_2fcVAF_11NhqvbFlfgrz19NhqvbQrivprPnyyonpxRRR:
 nop
 .data
-.globl b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVgCAF_13GbarTrarengbe13JnirTrarengbeRRRRR
+.weak b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVgCAF_13GbarTrarengbe13JnirTrarengbeRRRRR
 .type b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVgCAF_13GbarTrarengbe13JnirTrarengbeRRRRR,%object
 b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVgCAF_13GbarTrarengbe13JnirTrarengbeRRRRR:
 .space __SIZEOF_POINTER__
@@ -938,7 +938,7 @@
 b__MGGA7naqebvq5zrqvn8OaCynlreR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_22NhqvbZvkZngpuPevgrevbaRR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq6IrpgbeVAF_22NhqvbZvkZngpuPevgrevbaRR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq6IrpgbeVAF_22NhqvbZvkZngpuPevgrevbaRR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq6IrpgbeVAF_22NhqvbZvkZngpuPevgrevbaRR12qb_pbafgehpgRCiz:
 nop
@@ -958,7 +958,7 @@
 b__MA7naqebvq11NhqvbFlfgrz13tNhqvbSyvatreR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_11NhqvbFlfgrz19NhqvbQrivprPnyyonpxRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVEXF5_RRiBG_
+.weak b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_11NhqvbFlfgrz19NhqvbQrivprPnyyonpxRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVEXF5_RRiBG_
 .type b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_11NhqvbFlfgrz19NhqvbQrivprPnyyonpxRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVEXF5_RRiBG_,%function
 b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_11NhqvbFlfgrz19NhqvbQrivprPnyyonpxRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVEXF5_RRiBG_:
 nop
@@ -1003,7 +1003,7 @@
 b__MA7naqebvq19VNhqvbCbyvplFreivprQ1Ri:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_8NhqvbZvkRR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_8NhqvbZvkRR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_8NhqvbZvkRR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_8NhqvbZvkRR8qb_fcyngRCiCXiz:
 nop
@@ -1023,7 +1023,7 @@
 b__MA7naqebvq19VNhqvbCbyvplFreivpr11nfVagresnprREXAF_2fcVAF_7VOvaqreRRR:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_2fcVAF_11NhqvbFlfgrz24NhqvbIbyhzrTebhcPnyyonpxRRRR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_2fcVAF_11NhqvbFlfgrz24NhqvbIbyhzrTebhcPnyyonpxRRRR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_2fcVAF_11NhqvbFlfgrz24NhqvbIbyhzrTebhcPnyyonpxRRRR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_2fcVAF_11NhqvbFlfgrz24NhqvbIbyhzrTebhcPnyyonpxRRRR15qb_zbir_sbejneqRCiCXiz:
 nop
@@ -1063,7 +1063,7 @@
 b__MA7naqebvq24ErpbeqvatNpgvivglGenpxre16erpbeqvatFgbccrqRi:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVsR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVsR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVsR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVsR8qb_fcyngRCiCXiz:
 nop
@@ -1073,7 +1073,7 @@
 b__MA7naqebvq11NhqvbFlfgrz24NhqvbCbyvplFreivprPyvrag23erzbirNhqvbCbegPnyyonpxREXAF_2fcVAF0_17NhqvbCbegPnyyonpxRRR:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_2fcVAF_17NhqvbVbQrfpevcgbeRRRRRR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_2fcVAF_17NhqvbVbQrfpevcgbeRRRRRR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_2fcVAF_17NhqvbVbQrfpevcgbeRRRRRR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_2fcVAF_17NhqvbVbQrfpevcgbeRRRRRR8qb_fcyngRCiCXiz:
 nop
@@ -1093,7 +1093,7 @@
 b__MGua8_A7naqebvq14OaNhqvbSyvatre10baGenafnpgRwEXAF_6CnepryRCF1_w:
 nop
 .text
-.globl b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9haqresybjRi
+.weak b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9haqresybjRi
 .type b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9haqresybjRi,%function
 b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9haqresybjRi:
 nop
@@ -1143,7 +1143,7 @@
 b__MA7naqebvq7VRssrpgQ2Ri:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF0_VsRRR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF0_VsRRR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF0_VsRRR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF0_VsRRR8qb_fcyngRCiCXiz:
 nop
@@ -1163,7 +1163,7 @@
 b__MA7naqebvq24ErpbeqvatNpgvivglGenpxre16erpbeqvatFgnegrqRi:
 nop
 .text
-.globl b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
+.weak b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
 .type b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_,%function
 b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_:
 nop
@@ -1188,7 +1188,7 @@
 b__MGGA7naqebvq11VNhqvbGenpxR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGPA7naqebvq8OcRssrpgR0_AF_10VVagresnprR
+.weak b__MGPA7naqebvq8OcRssrpgR0_AF_10VVagresnprR
 .type b__MGPA7naqebvq8OcRssrpgR0_AF_10VVagresnprR,%object
 b__MGPA7naqebvq8OcRssrpgR0_AF_10VVagresnprR:
 .space __SIZEOF_POINTER__
@@ -1203,7 +1203,7 @@
 b__MA7naqebvq5zrqvn19VNhqvbErpbeqQrsnhyg5fgnegRvv:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVvA7naqebvq2jcVAF2_11NhqvbFlfgrz19NhqvbQrivprPnyyonpxRRRRRAF_19__znc_inyhr_pbzcnerVvF7_AF_4yrffVvRRYo1RRRAF_9nyybpngbeVF7_RRR25__rzcynpr_havdhr_xrl_netfVvWEvEF6_RRRAF_4cnveVAF_15__gerr_vgrengbeVF7_CAF_11__gerr_abqrVF7_CiRRyRRoRREXG_QcBG0_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVvA7naqebvq2jcVAF2_11NhqvbFlfgrz19NhqvbQrivprPnyyonpxRRRRRAF_19__znc_inyhr_pbzcnerVvF7_AF_4yrffVvRRYo1RRRAF_9nyybpngbeVF7_RRR25__rzcynpr_havdhr_xrl_netfVvWEvEF6_RRRAF_4cnveVAF_15__gerr_vgrengbeVF7_CAF_11__gerr_abqrVF7_CiRRyRRoRREXG_QcBG0_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVvA7naqebvq2jcVAF2_11NhqvbFlfgrz19NhqvbQrivprPnyyonpxRRRRRAF_19__znc_inyhr_pbzcnerVvF7_AF_4yrffVvRRYo1RRRAF_9nyybpngbeVF7_RRR25__rzcynpr_havdhr_xrl_netfVvWEvEF6_RRRAF_4cnveVAF_15__gerr_vgrengbeVF7_CAF_11__gerr_abqrVF7_CiRRyRRoRREXG_QcBG0_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVvA7naqebvq2jcVAF2_11NhqvbFlfgrz19NhqvbQrivprPnyyonpxRRRRRAF_19__znc_inyhr_pbzcnerVvF7_AF_4yrffVvRRYo1RRRAF_9nyybpngbeVF7_RRR25__rzcynpr_havdhr_xrl_netfVvWEvEF6_RRRAF_4cnveVAF_15__gerr_vgrengbeVF7_CAF_11__gerr_abqrVF7_CiRRyRRoRREXG_QcBG0_:
 nop
@@ -1218,7 +1218,7 @@
 b__MA7naqebvq10NhqvbGenpx15frgCynlonpxEngrREXAF_17NhqvbCynlonpxEngrR:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_19NhqvbQrivprGlcrNqqeRR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_19NhqvbQrivprGlcrNqqeRR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_19NhqvbQrivprGlcrNqqeRR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_19NhqvbQrivprGlcrNqqeRR15qb_zbir_sbejneqRCiCXiz:
 nop
@@ -1308,7 +1308,7 @@
 b__MA7naqebvq5zrqvn19VNhqvbErpbeqQrsnhyg31frgCersreerqZvpebcubarQverpgvbaRv:
 nop
 .data
-.globl b__MGPA7naqebvq11NhqvbRssrpg12RssrpgPyvragR0_AF_11OaVagresnprVAF_13VRssrpgPyvragRRR
+.weak b__MGPA7naqebvq11NhqvbRssrpg12RssrpgPyvragR0_AF_11OaVagresnprVAF_13VRssrpgPyvragRRR
 .type b__MGPA7naqebvq11NhqvbRssrpg12RssrpgPyvragR0_AF_11OaVagresnprVAF_13VRssrpgPyvragRRR,%object
 b__MGPA7naqebvq11NhqvbRssrpg12RssrpgPyvragR0_AF_11OaVagresnprVAF_13VRssrpgPyvragRRR:
 .space __SIZEOF_POINTER__
@@ -1318,7 +1318,7 @@
 b__MA7naqebvq27FgngvpNhqvbGenpxPyvragCebklP1RCAF_18nhqvb_genpx_poyx_gRCizz:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq20NhqvbCebqhpgFgengrtlRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVEXF2_RRiBG_
+.weak b__MAFg3__16irpgbeVA7naqebvq20NhqvbCebqhpgFgengrtlRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVEXF2_RRiBG_
 .type b__MAFg3__16irpgbeVA7naqebvq20NhqvbCebqhpgFgengrtlRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVEXF2_RRiBG_,%function
 b__MAFg3__16irpgbeVA7naqebvq20NhqvbCebqhpgFgengrtlRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVEXF2_RRiBG_:
 nop
@@ -1353,7 +1353,7 @@
 b__MAX7naqebvq10NhqvbGenpx13trgFnzcyrEngrRi:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_8NhqvbZvkRR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq6IrpgbeVAF_8NhqvbZvkRR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq6IrpgbeVAF_8NhqvbZvkRR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq6IrpgbeVAF_8NhqvbZvkRR12qb_pbafgehpgRCiz:
 nop
@@ -1388,7 +1388,7 @@
 b__MA7naqebvq13GbarTrarengbeQ2Ri:
 nop
 .data
-.globl b__MGPA7naqebvq11NhqvbRssrpg12RssrpgPyvragR8_AF_7OOvaqreR
+.weak b__MGPA7naqebvq11NhqvbRssrpg12RssrpgPyvragR8_AF_7OOvaqreR
 .type b__MGPA7naqebvq11NhqvbRssrpg12RssrpgPyvragR8_AF_7OOvaqreR,%object
 b__MGPA7naqebvq11NhqvbRssrpg12RssrpgPyvragR8_AF_7OOvaqreR:
 .space __SIZEOF_POINTER__
@@ -1398,7 +1398,7 @@
 b__MA7naqebvq11PyvragCebkl9vagreehcgRi:
 nop
 .text
-.globl b__MAFg3__16irpgbeV19rssrpg_qrfpevcgbe_fAF_9nyybpngbeVF1_RRRP2REXF4_
+.weak b__MAFg3__16irpgbeV19rssrpg_qrfpevcgbe_fAF_9nyybpngbeVF1_RRRP2REXF4_
 .type b__MAFg3__16irpgbeV19rssrpg_qrfpevcgbe_fAF_9nyybpngbeVF1_RRRP2REXF4_,%function
 b__MAFg3__16irpgbeV19rssrpg_qrfpevcgbe_fAF_9nyybpngbeVF1_RRRP2REXF4_:
 nop
@@ -1418,7 +1418,7 @@
 b__MGIA7naqebvq11NhqvbErpbeq13QrnguAbgvsvreR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGGAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
+.weak b__MGGAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
 .type b__MGGAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR,%object
 b__MGGAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR:
 .space __SIZEOF_POINTER__
@@ -1473,7 +1473,7 @@
 b__MA7naqebvq10CynlreOnfr6frgCnaRs:
 nop
 .text
-.globl b__MAX7naqebvq6Cnepry20ernqCneprynoyrIrpgbeVAF_5zrqvn14ZvpebcubarVasbRRRvCAFg3__16irpgbeVG_AF4_9nyybpngbeVF6_RRRR
+.weak b__MAX7naqebvq6Cnepry20ernqCneprynoyrIrpgbeVAF_5zrqvn14ZvpebcubarVasbRRRvCAFg3__16irpgbeVG_AF4_9nyybpngbeVF6_RRRR
 .type b__MAX7naqebvq6Cnepry20ernqCneprynoyrIrpgbeVAF_5zrqvn14ZvpebcubarVasbRRRvCAFg3__16irpgbeVG_AF4_9nyybpngbeVF6_RRRR,%function
 b__MAX7naqebvq6Cnepry20ernqCneprynoyrIrpgbeVAF_5zrqvn14ZvpebcubarVasbRRRvCAFg3__16irpgbeVG_AF4_9nyybpngbeVF6_RRRR:
 nop
@@ -1493,7 +1493,7 @@
 b__MGIA7naqebvq22NhqvbErpbeqFreireCebklR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__16irpgbeVvAF_9nyybpngbeVvRRR8__nccraqRz
+.weak b__MAFg3__16irpgbeVvAF_9nyybpngbeVvRRR8__nccraqRz
 .type b__MAFg3__16irpgbeVvAF_9nyybpngbeVvRRR8__nccraqRz,%function
 b__MAFg3__16irpgbeVvAF_9nyybpngbeVvRRR8__nccraqRz:
 nop
@@ -1508,7 +1508,7 @@
 b__MA7naqebvq10NhqvbGenpx19baNhqvbQrivprHcqngrRvv:
 nop
 .data
-.globl b__MGPA7naqebvq20OcNhqvbSyvatrePyvragR0_AF_19VNhqvbSyvatrePyvragR
+.weak b__MGPA7naqebvq20OcNhqvbSyvatrePyvragR0_AF_19VNhqvbSyvatrePyvragR
 .type b__MGPA7naqebvq20OcNhqvbSyvatrePyvragR0_AF_19VNhqvbSyvatrePyvragR,%object
 b__MGPA7naqebvq20OcNhqvbSyvatrePyvragR0_AF_19VNhqvbSyvatrePyvragR:
 .space __SIZEOF_POINTER__
@@ -1548,7 +1548,7 @@
 b__MA7naqebvq13VNhqvbSyvatre14trgQrsnhygVzcyRi:
 nop
 .text
-.globl b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR8biresybjRv
+.weak b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR8biresybjRv
 .type b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR8biresybjRv,%function
 b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR8biresybjRv:
 nop
@@ -1603,7 +1603,7 @@
 b__MAX7naqebvq10NhqvbGenpx17trgZnexreCbfvgvbaRCw:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVsR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq6IrpgbeVsR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq6IrpgbeVsR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq6IrpgbeVsR10qb_qrfgeblRCiz:
 nop
@@ -1618,7 +1618,7 @@
 b__MGua8_A7naqebvq5zrqvn8OaCynlre10baGenafnpgRwEXAF_6CnepryRCF2_w:
 nop
 .data
-.globl b__MGPAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_13onfvp_bfgernzVpF2_RR
+.weak b__MGPAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_13onfvp_bfgernzVpF2_RR
 .type b__MGPAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_13onfvp_bfgernzVpF2_RR,%object
 b__MGPAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_13onfvp_bfgernzVpF2_RR:
 .space __SIZEOF_POINTER__
@@ -1658,7 +1658,7 @@
 b__MA7naqebvq10NhqvbGenpx13frgFnzcyrEngrRw:
 nop
 .data
-.globl b__MGIA7naqebvq5zrqvn12IbyhzrFuncre5FgngrR
+.weak b__MGIA7naqebvq5zrqvn12IbyhzrFuncre5FgngrR
 .type b__MGIA7naqebvq5zrqvn12IbyhzrFuncre5FgngrR,%object
 b__MGIA7naqebvq5zrqvn12IbyhzrFuncre5FgngrR:
 .space __SIZEOF_POINTER__
@@ -1673,7 +1673,7 @@
 b__MA7naqebvq27FgngvpNhqvbGenpxFreireCebkl12bognvaOhssreRCAF_5Cebkl6OhssreRo:
 nop
 .text
-.globl b__MAFg3__16irpgbeVvAF_9nyybpngbeVvRRR6erfvmrRz
+.weak b__MAFg3__16irpgbeVvAF_9nyybpngbeVvRRR6erfvmrRz
 .type b__MAFg3__16irpgbeVvAF_9nyybpngbeVvRRR6erfvmrRz,%function
 b__MAFg3__16irpgbeVvAF_9nyybpngbeVvRRR6erfvmrRz:
 nop
@@ -1698,7 +1698,7 @@
 b__MA7naqebvq11NhqvbFlfgrz13trgFgernzZhgrR19nhqvb_fgernz_glcr_gCo:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_22NhqvbZvkZngpuPevgrevbaRR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_22NhqvbZvkZngpuPevgrevbaRR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_22NhqvbZvkZngpuPevgrevbaRR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_22NhqvbZvkZngpuPevgrevbaRR16qb_zbir_onpxjneqRCiCXiz:
 nop
@@ -1728,7 +1728,7 @@
 b__MA7naqebvq13VNhqvbSyvatre10qrfpevcgbeR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_8NhqvbZvkRR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_8NhqvbZvkRR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_8NhqvbZvkRR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_8NhqvbZvkRR7qb_pbclRCiCXiz:
 nop
@@ -1748,12 +1748,12 @@
 b__MA7naqebvq10NhqvbGenpx16NhqvbGenpxGuernqP2REF0_:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR16qb_zbir_onpxjneqRCiCXiz:
 nop
 .data
-.globl b__MGPA7naqebvq20OcNhqvbSyvatrePyvragR0_AF_11OcVagresnprVAF_19VNhqvbSyvatrePyvragRRR
+.weak b__MGPA7naqebvq20OcNhqvbSyvatrePyvragR0_AF_11OcVagresnprVAF_19VNhqvbSyvatrePyvragRRR
 .type b__MGPA7naqebvq20OcNhqvbSyvatrePyvragR0_AF_11OcVagresnprVAF_19VNhqvbSyvatrePyvragRRR,%object
 b__MGPA7naqebvq20OcNhqvbSyvatrePyvragR0_AF_11OcVagresnprVAF_19VNhqvbSyvatrePyvragRRR:
 .space __SIZEOF_POINTER__
@@ -1773,7 +1773,7 @@
 b__MGi0_a24_A7naqebvq15GenpxCynlreOnfrQ1Ri:
 nop
 .data
-.globl b__MGPA7naqebvq11NhqvbRssrpg12RssrpgPyvragR8_AF_7VOvaqreR
+.weak b__MGPA7naqebvq11NhqvbRssrpg12RssrpgPyvragR8_AF_7VOvaqreR
 .type b__MGPA7naqebvq11NhqvbRssrpg12RssrpgPyvragR8_AF_7VOvaqreR,%object
 b__MGPA7naqebvq11NhqvbRssrpg12RssrpgPyvragR8_AF_7VOvaqreR:
 .space __SIZEOF_POINTER__
@@ -1813,7 +1813,7 @@
 b__MA7naqebvq5zrqvn19VNhqvbErpbeqQrsnhyg36frgCersreerqZvpebcubarSvryqQvzrafvbaRs:
 nop
 .data
-.globl b__MGIA7naqebvq6IrpgbeVAF0_VsRRRR
+.weak b__MGIA7naqebvq6IrpgbeVAF0_VsRRRR
 .type b__MGIA7naqebvq6IrpgbeVAF0_VsRRRR,%object
 b__MGIA7naqebvq6IrpgbeVAF0_VsRRRR:
 .space __SIZEOF_POINTER__
@@ -1838,7 +1838,7 @@
 b__MA7naqebvq10NhqvbGenpx21pbairegGenafsreGbGrkgRAF0_13genafsre_glcrR:
 nop
 .text
-.globl b__MAFg3__16irpgbeV14nhqvb_sbezng_gAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_
+.weak b__MAFg3__16irpgbeV14nhqvb_sbezng_gAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_
 .type b__MAFg3__16irpgbeV14nhqvb_sbezng_gAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_,%function
 b__MAFg3__16irpgbeV14nhqvb_sbezng_gAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_:
 nop
@@ -1943,7 +1943,7 @@
 b__MA7naqebvq11NhqvbRssrpg19ranoyrFgnghfPunatrqRo:
 nop
 .data
-.globl b__MGIA7naqebvq13VNhqvbSyvatre18PerngrErpbeqBhgchgR
+.weak b__MGIA7naqebvq13VNhqvbSyvatre18PerngrErpbeqBhgchgR
 .type b__MGIA7naqebvq13VNhqvbSyvatre18PerngrErpbeqBhgchgR,%object
 b__MGIA7naqebvq13VNhqvbSyvatre18PerngrErpbeqBhgchgR:
 .space __SIZEOF_POINTER__
@@ -1973,7 +1973,7 @@
 b__MGIA7naqebvq13VRssrpgPyvragR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVgCAF_13GbarTrarengbe13JnirTrarengbeRRRR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVgCAF_13GbarTrarengbe13JnirTrarengbeRRRR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVgCAF_13GbarTrarengbe13JnirTrarengbeRRRR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVgCAF_13GbarTrarengbe13JnirTrarengbeRRRR10qb_qrfgeblRCiz:
 nop
@@ -2033,7 +2033,7 @@
 b__MA7naqebvq11NhqvbErpbeq12trgGvzrfgnzcRCAF_17RkgraqrqGvzrfgnzcR:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_2fcVAF_17NhqvbVbQrfpevcgbeRRRRRR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_2fcVAF_17NhqvbVbQrfpevcgbeRRRRRR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_2fcVAF_17NhqvbVbQrfpevcgbeRRRRRR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_2fcVAF_17NhqvbVbQrfpevcgbeRRRRRR12qb_pbafgehpgRCiz:
 nop
@@ -2048,7 +2048,7 @@
 b__MGi0_a24_A7naqebvq10NhqvbGenpx16NhqvbGenpxGuernqQ1Ri:
 nop
 .data
-.globl b__MGPA7naqebvq20OcNhqvbCbyvplFreivprR0_AF_10VVagresnprR
+.weak b__MGPA7naqebvq20OcNhqvbCbyvplFreivprR0_AF_10VVagresnprR
 .type b__MGPA7naqebvq20OcNhqvbCbyvplFreivprR0_AF_10VVagresnprR,%object
 b__MGPA7naqebvq20OcNhqvbCbyvplFreivprR0_AF_10VVagresnprR:
 .space __SIZEOF_POINTER__
@@ -2063,7 +2063,7 @@
 b__MAX7naqebvq22NhqvbErpbeqFreireCebkl15senzrfErnqlFnsrRi:
 nop
 .data
-.globl b__MGPA7naqebvq20OcNhqvbSyvatrePyvragR0_AF_10VVagresnprR
+.weak b__MGPA7naqebvq20OcNhqvbSyvatrePyvragR0_AF_10VVagresnprR
 .type b__MGPA7naqebvq20OcNhqvbSyvatrePyvragR0_AF_10VVagresnprR,%object
 b__MGPA7naqebvq20OcNhqvbSyvatrePyvragR0_AF_10VVagresnprR:
 .space __SIZEOF_POINTER__
@@ -2093,22 +2093,22 @@
 b__MA7naqebvq10NhqvbGenpx26vfFnzcyrEngrFcrrqNyybjrq_yRws:
 nop
 .text
-.globl b__MAFg3__16irpgbeV19rssrpg_qrfpevcgbe_fAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVEXF1_RRiBG_
+.weak b__MAFg3__16irpgbeV19rssrpg_qrfpevcgbe_fAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVEXF1_RRiBG_
 .type b__MAFg3__16irpgbeV19rssrpg_qrfpevcgbe_fAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVEXF1_RRiBG_,%function
 b__MAFg3__16irpgbeV19rssrpg_qrfpevcgbe_fAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVEXF1_RRiBG_:
 nop
 .data
-.globl b__MGPA7naqebvq14OcRssrpgPyvragR0_AF_13VRssrpgPyvragR
+.weak b__MGPA7naqebvq14OcRssrpgPyvragR0_AF_13VRssrpgPyvragR
 .type b__MGPA7naqebvq14OcRssrpgPyvragR0_AF_13VRssrpgPyvragR,%object
 b__MGPA7naqebvq14OcRssrpgPyvragR0_AF_13VRssrpgPyvragR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq6IrpgbeVvR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVvR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVvR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVvR8qb_fcyngRCiCXiz:
 nop
 .data
-.globl b__MGPA7naqebvq11NhqvbRssrpg12RssrpgPyvragR0_AF_10VVagresnprR
+.weak b__MGPA7naqebvq11NhqvbRssrpg12RssrpgPyvragR0_AF_10VVagresnprR
 .type b__MGPA7naqebvq11NhqvbRssrpg12RssrpgPyvragR0_AF_10VVagresnprR,%object
 b__MGPA7naqebvq11NhqvbRssrpg12RssrpgPyvragR0_AF_10VVagresnprR:
 .space __SIZEOF_POINTER__
@@ -2118,7 +2118,7 @@
 b__MA7naqebvq11NhqvbFlfgrz18trgFheebhaqSbezngfRCwC14nhqvb_sbezng_gCoo:
 nop
 .data
-.globl b__MGIA7naqebvq6IrpgbeVAF_2fcVAF_11NhqvbFlfgrz24NhqvbIbyhzrTebhcPnyyonpxRRRRR
+.weak b__MGIA7naqebvq6IrpgbeVAF_2fcVAF_11NhqvbFlfgrz24NhqvbIbyhzrTebhcPnyyonpxRRRRR
 .type b__MGIA7naqebvq6IrpgbeVAF_2fcVAF_11NhqvbFlfgrz24NhqvbIbyhzrTebhcPnyyonpxRRRRR,%object
 b__MGIA7naqebvq6IrpgbeVAF_2fcVAF_11NhqvbFlfgrz24NhqvbIbyhzrTebhcPnyyonpxRRRRR:
 .space __SIZEOF_POINTER__
@@ -2148,7 +2148,7 @@
 b__MA7naqebvq15GenpxCynlreOnfr15frgCynlreIbyhzrRss:
 nop
 .text
-.globl b__MA7naqebvq2fcVAF_11NhqvbFlfgrz18NhqvbSyvatrePyvragRRQ2Ri
+.weak b__MA7naqebvq2fcVAF_11NhqvbFlfgrz18NhqvbSyvatrePyvragRRQ2Ri
 .type b__MA7naqebvq2fcVAF_11NhqvbFlfgrz18NhqvbSyvatrePyvragRRQ2Ri,%function
 b__MA7naqebvq2fcVAF_11NhqvbFlfgrz18NhqvbSyvatrePyvragRRQ2Ri:
 nop
@@ -2163,7 +2163,7 @@
 b__MA7naqebvq10NhqvbGenpx5syhfuRi:
 nop
 .text
-.globl b__MAFg3__113__irpgbe_onfrVA7naqebvq20NhqvbCebqhpgFgengrtlRAF_9nyybpngbeVF2_RRRQ2Ri
+.weak b__MAFg3__113__irpgbe_onfrVA7naqebvq20NhqvbCebqhpgFgengrtlRAF_9nyybpngbeVF2_RRRQ2Ri
 .type b__MAFg3__113__irpgbe_onfrVA7naqebvq20NhqvbCebqhpgFgengrtlRAF_9nyybpngbeVF2_RRRQ2Ri,%function
 b__MAFg3__113__irpgbe_onfrVA7naqebvq20NhqvbCebqhpgFgengrtlRAF_9nyybpngbeVF2_RRRQ2Ri:
 nop
@@ -2188,7 +2188,7 @@
 b__MA7naqebvq11NhqvbErpbeq15erfgberErpbeq_yRCXp:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR12qb_pbafgehpgRCiz:
 nop
@@ -2248,7 +2248,7 @@
 b__MGPA7naqebvq10CynlreOnfrR0_AF_5zrqvn8OaCynlreR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__124__chg_punenpgre_frdhraprVpAF_11pune_genvgfVpRRRREAF_13onfvp_bfgernzVG_G0_RRF7_CXF4_z
+.weak b__MAFg3__124__chg_punenpgre_frdhraprVpAF_11pune_genvgfVpRRRREAF_13onfvp_bfgernzVG_G0_RRF7_CXF4_z
 .type b__MAFg3__124__chg_punenpgre_frdhraprVpAF_11pune_genvgfVpRRRREAF_13onfvp_bfgernzVG_G0_RRF7_CXF4_z,%function
 b__MAFg3__124__chg_punenpgre_frdhraprVpAF_11pune_genvgfVpRRRREAF_13onfvp_bfgernzVG_G0_RRF7_CXF4_z:
 nop
@@ -2263,7 +2263,7 @@
 b__MA7naqebvq10NhqvbGenpx15frgBhgchgQrivprRv:
 nop
 .data
-.globl b__MGPA7naqebvq8OcRssrpgR8_AF_9OcErsOnfrR
+.weak b__MGPA7naqebvq8OcRssrpgR8_AF_9OcErsOnfrR
 .type b__MGPA7naqebvq8OcRssrpgR8_AF_9OcErsOnfrR,%object
 b__MGPA7naqebvq8OcRssrpgR8_AF_9OcErsOnfrR:
 .space __SIZEOF_POINTER__
@@ -2273,7 +2273,7 @@
 b__MA7naqebvq11NhqvbRssrpg11dhrelRssrpgRwC19rssrpg_qrfpevcgbe_f:
 nop
 .text
-.globl b__MA7naqebvq11OaVagresnprVAF_19VNhqvbCbyvplFreivprRR10baNfOvaqreRi
+.weak b__MA7naqebvq11OaVagresnprVAF_19VNhqvbCbyvplFreivprRR10baNfOvaqreRi
 .type b__MA7naqebvq11OaVagresnprVAF_19VNhqvbCbyvplFreivprRR10baNfOvaqreRi,%function
 b__MA7naqebvq11OaVagresnprVAF_19VNhqvbCbyvplFreivprRR10baNfOvaqreRi:
 nop
@@ -2298,12 +2298,12 @@
 b__MA7naqebvq11NhqvbFlfgrz37trgCebqhpgFgengrtlSebzNhqvbNggevohgrfREXAF_15NhqvbNggevohgrfREAF_18cebqhpg_fgengrtl_gR:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_2fcVAF_11NhqvbFlfgrz17NhqvbCbegPnyyonpxRRRR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq6IrpgbeVAF_2fcVAF_11NhqvbFlfgrz17NhqvbCbegPnyyonpxRRRR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq6IrpgbeVAF_2fcVAF_11NhqvbFlfgrz17NhqvbCbegPnyyonpxRRRR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq6IrpgbeVAF_2fcVAF_11NhqvbFlfgrz17NhqvbCbegPnyyonpxRRRR12qb_pbafgehpgRCiz:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVvAF_3zncVvA7naqebvq2jcVAF3_11NhqvbFlfgrz19NhqvbQrivprPnyyonpxRRRAF_4yrffVvRRAF_9nyybpngbeVAF_4cnveVXvF7_RRRRRRRRAF_19__znc_inyhr_pbzcnerVvFT_F9_Yo1RRRAFN_VFT_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFT_CAF_11__gerr_abqrVFT_CiRRyRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVvAF_3zncVvA7naqebvq2jcVAF3_11NhqvbFlfgrz19NhqvbQrivprPnyyonpxRRRAF_4yrffVvRRAF_9nyybpngbeVAF_4cnveVXvF7_RRRRRRRRAF_19__znc_inyhr_pbzcnerVvFT_F9_Yo1RRRAFN_VFT_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFT_CAF_11__gerr_abqrVFT_CiRRyRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVvAF_3zncVvA7naqebvq2jcVAF3_11NhqvbFlfgrz19NhqvbQrivprPnyyonpxRRRAF_4yrffVvRRAF_9nyybpngbeVAF_4cnveVXvF7_RRRRRRRRAF_19__znc_inyhr_pbzcnerVvFT_F9_Yo1RRRAFN_VFT_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFT_CAF_11__gerr_abqrVFT_CiRRyRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVvAF_3zncVvA7naqebvq2jcVAF3_11NhqvbFlfgrz19NhqvbQrivprPnyyonpxRRRAF_4yrffVvRRAF_9nyybpngbeVAF_4cnveVXvF7_RRRRRRRRAF_19__znc_inyhr_pbzcnerVvFT_F9_Yo1RRRAFN_VFT_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFT_CAF_11__gerr_abqrVFT_CiRRyRR:
 nop
@@ -2323,7 +2323,7 @@
 b__MGGA7naqebvq11NhqvbErpbeq13QrnguAbgvsvreR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVvA7naqebvq2jcVAF2_11NhqvbFlfgrz19NhqvbQrivprPnyyonpxRRRRRAF_19__znc_inyhr_pbzcnerVvF7_AF_4yrffVvRRYo1RRRAF_9nyybpngbeVF7_RRR25__rzcynpr_havdhr_xrl_netfVvWEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXvRRRAFW_VWEXF6_RRRRRRAF_4cnveVAF_15__gerr_vgrengbeVF7_CAF_11__gerr_abqrVF7_CiRRyRRoRREXG_QcBG0_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVvA7naqebvq2jcVAF2_11NhqvbFlfgrz19NhqvbQrivprPnyyonpxRRRRRAF_19__znc_inyhr_pbzcnerVvF7_AF_4yrffVvRRYo1RRRAF_9nyybpngbeVF7_RRR25__rzcynpr_havdhr_xrl_netfVvWEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXvRRRAFW_VWEXF6_RRRRRRAF_4cnveVAF_15__gerr_vgrengbeVF7_CAF_11__gerr_abqrVF7_CiRRyRRoRREXG_QcBG0_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVvA7naqebvq2jcVAF2_11NhqvbFlfgrz19NhqvbQrivprPnyyonpxRRRRRAF_19__znc_inyhr_pbzcnerVvF7_AF_4yrffVvRRYo1RRRAF_9nyybpngbeVF7_RRR25__rzcynpr_havdhr_xrl_netfVvWEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXvRRRAFW_VWEXF6_RRRRRRAF_4cnveVAF_15__gerr_vgrengbeVF7_CAF_11__gerr_abqrVF7_CiRRyRRoRREXG_QcBG0_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVvA7naqebvq2jcVAF2_11NhqvbFlfgrz19NhqvbQrivprPnyyonpxRRRRRAF_19__znc_inyhr_pbzcnerVvF7_AF_4yrffVvRRYo1RRRAF_9nyybpngbeVF7_RRR25__rzcynpr_havdhr_xrl_netfVvWEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXvRRRAFW_VWEXF6_RRRRRRAF_4cnveVAF_15__gerr_vgrengbeVF7_CAF_11__gerr_abqrVF7_CiRRyRRoRREXG_QcBG0_:
 nop
@@ -2338,17 +2338,17 @@
 b__MA7naqebvq11NhqvbFlfgrz24trgNhqvbUjFlapSbeFrffvbaR15nhqvb_frffvba_g:
 nop
 .text
-.globl b__MA7naqebvq2fcVAF_10NhqvbGenpx16NhqvbGenpxGuernqRR5pyrneRi
+.weak b__MA7naqebvq2fcVAF_10NhqvbGenpx16NhqvbGenpxGuernqRR5pyrneRi
 .type b__MA7naqebvq2fcVAF_10NhqvbGenpx16NhqvbGenpxGuernqRR5pyrneRi,%function
 b__MA7naqebvq2fcVAF_10NhqvbGenpx16NhqvbGenpxGuernqRR5pyrneRi:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_19NhqvbQrivprGlcrNqqeRR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_19NhqvbQrivprGlcrNqqeRR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_19NhqvbQrivprGlcrNqqeRR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_19NhqvbQrivprGlcrNqqeRR8qb_fcyngRCiCXiz:
 nop
 .data
-.globl b__MGPA7naqebvq20OcNhqvbCbyvplFreivprR0_AF_11OcVagresnprVAF_19VNhqvbCbyvplFreivprRRR
+.weak b__MGPA7naqebvq20OcNhqvbCbyvplFreivprR0_AF_11OcVagresnprVAF_19VNhqvbCbyvplFreivprRRR
 .type b__MGPA7naqebvq20OcNhqvbCbyvplFreivprR0_AF_11OcVagresnprVAF_19VNhqvbCbyvplFreivprRRR,%object
 b__MGPA7naqebvq20OcNhqvbCbyvplFreivprR0_AF_11OcVagresnprVAF_19VNhqvbCbyvplFreivprRRR:
 .space __SIZEOF_POINTER__
@@ -2408,7 +2408,7 @@
 b__MA7naqebvq5zrqvn7VCynlre12qrsnhyg_vzcyR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIA7naqebvq5zrqvn12IbyhzrFuncre13PbasvthengvbaR
+.weak b__MGIA7naqebvq5zrqvn12IbyhzrFuncre13PbasvthengvbaR
 .type b__MGIA7naqebvq5zrqvn12IbyhzrFuncre13PbasvthengvbaR,%object
 b__MGIA7naqebvq5zrqvn12IbyhzrFuncre13PbasvthengvbaR:
 .space __SIZEOF_POINTER__
@@ -2448,7 +2448,7 @@
 b__MGPA7naqebvq11NhqvbFlfgrz18NhqvbSyvatrePyvragR8_AF_20OaNhqvbSyvatrePyvragR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_22NhqvbZvkZngpuPevgrevbaRR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_22NhqvbZvkZngpuPevgrevbaRR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_22NhqvbZvkZngpuPevgrevbaRR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_22NhqvbZvkZngpuPevgrevbaRR8qb_fcyngRCiCXiz:
 nop
@@ -2483,7 +2483,7 @@
 b__MA7naqebvq11FreireCebkl13eryrnfrOhssreRCAF_5Cebkl6OhssreR:
 nop
 .text
-.globl b__MA7naqebvq2fcVAF_11NhqvbFlfgrz24NhqvbCbyvplFreivprPyvragRRQ2Ri
+.weak b__MA7naqebvq2fcVAF_11NhqvbFlfgrz24NhqvbCbyvplFreivprPyvragRRQ2Ri
 .type b__MA7naqebvq2fcVAF_11NhqvbFlfgrz24NhqvbCbyvplFreivprPyvragRRQ2Ri,%function
 b__MA7naqebvq2fcVAF_11NhqvbFlfgrz24NhqvbCbyvplFreivprPyvragRRQ2Ri:
 nop
@@ -2498,7 +2498,7 @@
 b__MAX7naqebvq10NhqvbGenpx18trgHaqreehaPbhag_yRi:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVsAF_5ghcyrVWsssRRRRRAF_22__habeqrerq_znc_unfureVsF4_AF_4unfuVsRRYo1RRRAF_21__habeqrerq_znc_rdhnyVsF4_AF_8rdhny_gbVsRRYo1RRRAF_9nyybpngbeVF4_RRR6erunfuRz
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVsAF_5ghcyrVWsssRRRRRAF_22__habeqrerq_znc_unfureVsF4_AF_4unfuVsRRYo1RRRAF_21__habeqrerq_znc_rdhnyVsF4_AF_8rdhny_gbVsRRYo1RRRAF_9nyybpngbeVF4_RRR6erunfuRz
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVsAF_5ghcyrVWsssRRRRRAF_22__habeqrerq_znc_unfureVsF4_AF_4unfuVsRRYo1RRRAF_21__habeqrerq_znc_rdhnyVsF4_AF_8rdhny_gbVsRRYo1RRRAF_9nyybpngbeVF4_RRR6erunfuRz,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVsAF_5ghcyrVWsssRRRRRAF_22__habeqrerq_znc_unfureVsF4_AF_4unfuVsRRYo1RRRAF_21__habeqrerq_znc_rdhnyVsF4_AF_8rdhny_gbVsRRYo1RRRAF_9nyybpngbeVF4_RRR6erunfuRz:
 nop
@@ -2523,7 +2523,7 @@
 b__MGua8_A7naqebvq11NhqvbFlfgrz24NhqvbCbyvplFreivprPyvrag21baNhqvbCbegYvfgHcqngrRi:
 nop
 .data
-.globl b__MGPA7naqebvq14OcNhqvbSyvatreR0_AF_10VVagresnprR
+.weak b__MGPA7naqebvq14OcNhqvbSyvatreR0_AF_10VVagresnprR
 .type b__MGPA7naqebvq14OcNhqvbSyvatreR0_AF_10VVagresnprR,%object
 b__MGPA7naqebvq14OcNhqvbSyvatreR0_AF_10VVagresnprR:
 .space __SIZEOF_POINTER__
@@ -2543,7 +2543,7 @@
 b__MA7naqebvq11NhqvbFlfgrz9fgbcVachgRv:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVvR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVvR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVvR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVvR15qb_zbir_sbejneqRCiCXiz:
 nop
@@ -2568,17 +2568,17 @@
 b__MA7naqebvq10NhqvbGenpx5cnhfrRi:
 nop
 .data
-.globl b__MGGA7naqebvq26OcNhqvbCbyvplFreivprPyvragR
+.weak b__MGGA7naqebvq26OcNhqvbCbyvplFreivprPyvragR
 .type b__MGGA7naqebvq26OcNhqvbCbyvplFreivprPyvragR,%object
 b__MGGA7naqebvq26OcNhqvbCbyvplFreivprPyvragR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGGA7naqebvq14OcRssrpgPyvragR
+.weak b__MGGA7naqebvq14OcRssrpgPyvragR
 .type b__MGGA7naqebvq14OcRssrpgPyvragR,%object
 b__MGGA7naqebvq14OcRssrpgPyvragR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq6IrpgbeVvR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq6IrpgbeVvR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq6IrpgbeVvR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq6IrpgbeVvR10qb_qrfgeblRCiz:
 nop
@@ -2598,7 +2598,7 @@
 b__MA7naqebvq11NhqvbFlfgrz21trgNhqvbSyvatrePyvragRi:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_2fcVAF_17NhqvbVbQrfpevcgbeRRRRRR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_2fcVAF_17NhqvbVbQrfpevcgbeRRRRRR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_2fcVAF_17NhqvbVbQrfpevcgbeRRRRRR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_2fcVAF_17NhqvbVbQrfpevcgbeRRRRRR15qb_zbir_sbejneqRCiCXiz:
 nop
@@ -2683,7 +2683,7 @@
 b__MA7naqebvq11NhqvbErpbeq5fgnegRAF_11NhqvbFlfgrz12flap_rirag_gR15nhqvb_frffvba_g:
 nop
 .data
-.globl b__MGIAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
+.weak b__MGIAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
 .type b__MGIAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR,%object
 b__MGIAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR:
 .space __SIZEOF_POINTER__
@@ -2693,12 +2693,12 @@
 b__MA7naqebvq11NhqvbFlfgrz18NhqvbSyvatrePyvrag15trgVbQrfpevcgbeRv:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq5zrqvn14ZvpebcubarVasbRAF_9nyybpngbeVF3_RRR8__nccraqRz
+.weak b__MAFg3__16irpgbeVA7naqebvq5zrqvn14ZvpebcubarVasbRAF_9nyybpngbeVF3_RRR8__nccraqRz
 .type b__MAFg3__16irpgbeVA7naqebvq5zrqvn14ZvpebcubarVasbRAF_9nyybpngbeVF3_RRR8__nccraqRz,%function
 b__MAFg3__16irpgbeVA7naqebvq5zrqvn14ZvpebcubarVasbRAF_9nyybpngbeVF3_RRR8__nccraqRz:
 nop
 .text
-.globl b__MAFg3__16irpgbeVsAF_9nyybpngbeVsRRR21__chfu_onpx_fybj_cnguVEXsRRiBG_
+.weak b__MAFg3__16irpgbeVsAF_9nyybpngbeVsRRR21__chfu_onpx_fybj_cnguVEXsRRiBG_
 .type b__MAFg3__16irpgbeVsAF_9nyybpngbeVsRRR21__chfu_onpx_fybj_cnguVEXsRRiBG_,%function
 b__MAFg3__16irpgbeVsAF_9nyybpngbeVsRRR21__chfu_onpx_fybj_cnguVEXsRRiBG_:
 nop
@@ -2708,12 +2708,12 @@
 b__MGIA7naqebvq5zrqvn19VNhqvbErpbeqQrsnhygR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGGAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
+.weak b__MGGAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
 .type b__MGGAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR,%object
 b__MGGAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_13onfvp_vfgernzVpF2_RR
+.weak b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_13onfvp_vfgernzVpF2_RR
 .type b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_13onfvp_vfgernzVpF2_RR,%object
 b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_13onfvp_vfgernzVpF2_RR:
 .space __SIZEOF_POINTER__
@@ -2753,7 +2753,7 @@
 b__MA7naqebvq11NhqvbFlfgrz32erzbirCersreerqQrivprSbeFgengrtlRAF_18cebqhpg_fgengrtl_gR:
 nop
 .text
-.globl b__MA7naqebvq2fcVAF_10NhqvbGenpx16NhqvbGenpxGuernqRRnFRCF2_
+.weak b__MA7naqebvq2fcVAF_10NhqvbGenpx16NhqvbGenpxGuernqRRnFRCF2_
 .type b__MA7naqebvq2fcVAF_10NhqvbGenpx16NhqvbGenpxGuernqRRnFRCF2_,%function
 b__MA7naqebvq2fcVAF_10NhqvbGenpx16NhqvbGenpxGuernqRRnFRCF2_:
 nop
@@ -2783,7 +2783,7 @@
 b__MA7naqebvq18nhqvb_genpx_poyx_gP2Ri:
 nop
 .text
-.globl b__MA7naqebvq2fcVAF_20QrivprQrfpevcgbeOnfrRRP2RCF1_
+.weak b__MA7naqebvq2fcVAF_20QrivprQrfpevcgbeOnfrRRP2RCF1_
 .type b__MA7naqebvq2fcVAF_20QrivprQrfpevcgbeOnfrRRP2RCF1_,%function
 b__MA7naqebvq2fcVAF_20QrivprQrfpevcgbeOnfrRRP2RCF1_:
 nop
@@ -2838,7 +2838,7 @@
 b__MA7naqebvq11NhqvbFlfgrz10fgnegVachgRv:
 nop
 .text
-.globl b__MA7naqebvq11OaVagresnprVAF_13VNhqvbSyvatreRR10baNfOvaqreRi
+.weak b__MA7naqebvq11OaVagresnprVAF_13VNhqvbSyvatreRR10baNfOvaqreRi
 .type b__MA7naqebvq11OaVagresnprVAF_13VNhqvbSyvatreRR10baNfOvaqreRi,%function
 b__MA7naqebvq11OaVagresnprVAF_13VNhqvbSyvatreRR10baNfOvaqreRi:
 nop
@@ -2858,12 +2858,12 @@
 b__MA7naqebvq11NhqvbFlfgrz33trgIbyhzrTebhcSebzNhqvbNggevohgrfREXAF_15NhqvbNggevohgrfREAF_14ibyhzr_tebhc_gR:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_19NhqvbQrivprGlcrNqqeRR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq6IrpgbeVAF_19NhqvbQrivprGlcrNqqeRR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq6IrpgbeVAF_19NhqvbQrivprGlcrNqqeRR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq6IrpgbeVAF_19NhqvbQrivprGlcrNqqeRR10qb_qrfgeblRCiz:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_19NhqvbQrivprGlcrNqqeRR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq6IrpgbeVAF_19NhqvbQrivprGlcrNqqeRR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq6IrpgbeVAF_19NhqvbQrivprGlcrNqqeRR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq6IrpgbeVAF_19NhqvbQrivprGlcrNqqeRR12qb_pbafgehpgRCiz:
 nop
@@ -2893,7 +2893,7 @@
 b__MGua8_A7naqebvq20OaNhqvbCbyvplFreivpr10baGenafnpgRwEXAF_6CnepryRCF1_w:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVvA7naqebvq2jcVAF2_11NhqvbFlfgrz19NhqvbQrivprPnyyonpxRRRRRAF_19__znc_inyhr_pbzcnerVvF7_AF_4yrffVvRRYo1RRRAF_9nyybpngbeVF7_RRR12__svaq_rdhnyVvRRECAF_16__gerr_abqr_onfrVCiRRAF_21__gerr_pbafg_vgrengbeVF7_CAF_11__gerr_abqrVF7_FU_RRyRRECAF_15__gerr_raq_abqrVFW_RRFX_EXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVvA7naqebvq2jcVAF2_11NhqvbFlfgrz19NhqvbQrivprPnyyonpxRRRRRAF_19__znc_inyhr_pbzcnerVvF7_AF_4yrffVvRRYo1RRRAF_9nyybpngbeVF7_RRR12__svaq_rdhnyVvRRECAF_16__gerr_abqr_onfrVCiRRAF_21__gerr_pbafg_vgrengbeVF7_CAF_11__gerr_abqrVF7_FU_RRyRRECAF_15__gerr_raq_abqrVFW_RRFX_EXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVvA7naqebvq2jcVAF2_11NhqvbFlfgrz19NhqvbQrivprPnyyonpxRRRRRAF_19__znc_inyhr_pbzcnerVvF7_AF_4yrffVvRRYo1RRRAF_9nyybpngbeVF7_RRR12__svaq_rdhnyVvRRECAF_16__gerr_abqr_onfrVCiRRAF_21__gerr_pbafg_vgrengbeVF7_CAF_11__gerr_abqrVF7_FU_RRyRRECAF_15__gerr_raq_abqrVFW_RRFX_EXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVvA7naqebvq2jcVAF2_11NhqvbFlfgrz19NhqvbQrivprPnyyonpxRRRRRAF_19__znc_inyhr_pbzcnerVvF7_AF_4yrffVvRRYo1RRRAF_9nyybpngbeVF7_RRR12__svaq_rdhnyVvRRECAF_16__gerr_abqr_onfrVCiRRAF_21__gerr_pbafg_vgrengbeVF7_CAF_11__gerr_abqrVF7_FU_RRyRRECAF_15__gerr_raq_abqrVFW_RRFX_EXG_:
 nop
@@ -2913,7 +2913,7 @@
 b__MA7naqebvq11NhqvbErpbeq12bognvaOhssreRCAF0_6OhssreRCX8gvzrfcrpCF3_Cz:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_2fcVAF_11NhqvbFlfgrz17NhqvbCbegPnyyonpxRRRR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_2fcVAF_11NhqvbFlfgrz17NhqvbCbegPnyyonpxRRRR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_2fcVAF_11NhqvbFlfgrz17NhqvbCbegPnyyonpxRRRR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_2fcVAF_11NhqvbFlfgrz17NhqvbCbegPnyyonpxRRRR15qb_zbir_sbejneqRCiCXiz:
 nop
@@ -2923,7 +2923,7 @@
 b__MA7naqebvq27FgngvpNhqvbGenpxPyvragCebkl29trgOhssreCbfvgvbaNaqYbbcPbhagRCzCv:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVsAF_5ghcyrVWsssRRRRRAF_22__habeqrerq_znc_unfureVsF4_AF_4unfuVsRRYo1RRRAF_21__habeqrerq_znc_rdhnyVsF4_AF_8rdhny_gbVsRRYo1RRRAF_9nyybpngbeVF4_RRR25__rzcynpr_havdhr_xrl_netfVsWEXAF_21cvrprjvfr_pbafgehpg_gRAF2_VWEXsRRRAF2_VWRRRRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF4_CiRRRRoRREXG_QcBG0_
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVsAF_5ghcyrVWsssRRRRRAF_22__habeqrerq_znc_unfureVsF4_AF_4unfuVsRRYo1RRRAF_21__habeqrerq_znc_rdhnyVsF4_AF_8rdhny_gbVsRRYo1RRRAF_9nyybpngbeVF4_RRR25__rzcynpr_havdhr_xrl_netfVsWEXAF_21cvrprjvfr_pbafgehpg_gRAF2_VWEXsRRRAF2_VWRRRRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF4_CiRRRRoRREXG_QcBG0_
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVsAF_5ghcyrVWsssRRRRRAF_22__habeqrerq_znc_unfureVsF4_AF_4unfuVsRRYo1RRRAF_21__habeqrerq_znc_rdhnyVsF4_AF_8rdhny_gbVsRRYo1RRRAF_9nyybpngbeVF4_RRR25__rzcynpr_havdhr_xrl_netfVsWEXAF_21cvrprjvfr_pbafgehpg_gRAF2_VWEXsRRRAF2_VWRRRRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF4_CiRRRRoRREXG_QcBG0_,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVsAF_5ghcyrVWsssRRRRRAF_22__habeqrerq_znc_unfureVsF4_AF_4unfuVsRRYo1RRRAF_21__habeqrerq_znc_rdhnyVsF4_AF_8rdhny_gbVsRRYo1RRRAF_9nyybpngbeVF4_RRR25__rzcynpr_havdhr_xrl_netfVsWEXAF_21cvrprjvfr_pbafgehpg_gRAF2_VWEXsRRRAF2_VWRRRRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF4_CiRRRRoRREXG_QcBG0_:
 nop
@@ -2943,12 +2943,12 @@
 b__MA7naqebvq11NhqvbRssrpgP2REXAF_8Fgevat16R:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_22NhqvbZvkZngpuPevgrevbaRR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq6IrpgbeVAF_22NhqvbZvkZngpuPevgrevbaRR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq6IrpgbeVAF_22NhqvbZvkZngpuPevgrevbaRR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq6IrpgbeVAF_22NhqvbZvkZngpuPevgrevbaRR10qb_qrfgeblRCiz:
 nop
 .text
-.globl b__MAFg3__16irpgbeV19nhqvb_fgernz_glcr_gAF_9nyybpngbeVF1_RRRP2REXF4_
+.weak b__MAFg3__16irpgbeV19nhqvb_fgernz_glcr_gAF_9nyybpngbeVF1_RRRP2REXF4_
 .type b__MAFg3__16irpgbeV19nhqvb_fgernz_glcr_gAF_9nyybpngbeVF1_RRRP2REXF4_,%function
 b__MAFg3__16irpgbeV19nhqvb_fgernz_glcr_gAF_9nyybpngbeVF1_RRRP2REXF4_:
 nop
@@ -2993,12 +2993,12 @@
 b__MA7naqebvq10NhqvbGenpx12trgGvzrfgnzcRCAF_17RkgraqrqGvzrfgnzcR:
 nop
 .data
-.globl b__MGIAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
+.weak b__MGIAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
 .type b__MGIAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR,%object
 b__MGIAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq6IrpgbeVsR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVsR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVsR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVsR16qb_zbir_onpxjneqRCiCXiz:
 nop
@@ -3013,7 +3013,7 @@
 b__MA7naqebvq11NhqvbFlfgrz14vfFbheprNpgvirR14nhqvb_fbhepr_gCo:
 nop
 .text
-.globl b__MA7naqebvq11OaVagresnprVAF_19VNhqvbSyvatrePyvragRR10baNfOvaqreRi
+.weak b__MA7naqebvq11OaVagresnprVAF_19VNhqvbSyvatrePyvragRR10baNfOvaqreRi
 .type b__MA7naqebvq11OaVagresnprVAF_19VNhqvbSyvatrePyvragRR10baNfOvaqreRi,%function
 b__MA7naqebvq11OaVagresnprVAF_19VNhqvbSyvatrePyvragRR10baNfOvaqreRi:
 nop
@@ -3128,7 +3128,7 @@
 b__MA7naqebvq13GbarTrarengbe17fGbarZnccvatGnoyrR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVgCAF_13GbarTrarengbe13JnirTrarengbeRRRR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVgCAF_13GbarTrarengbe13JnirTrarengbeRRRR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVgCAF_13GbarTrarengbe13JnirTrarengbeRRRR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVgCAF_13GbarTrarengbe13JnirTrarengbeRRRR7qb_pbclRCiCXiz:
 nop
@@ -3148,7 +3148,7 @@
 b__MA7naqebvq27FgngvpNhqvbGenpxPyvragCebkl5syhfuRi:
 nop
 .data
-.globl b__MGPA7naqebvq14OcRssrpgPyvragR0_AF_11OcVagresnprVAF_13VRssrpgPyvragRRR
+.weak b__MGPA7naqebvq14OcRssrpgPyvragR0_AF_11OcVagresnprVAF_13VRssrpgPyvragRRR
 .type b__MGPA7naqebvq14OcRssrpgPyvragR0_AF_11OcVagresnprVAF_13VRssrpgPyvragRRR,%object
 b__MGPA7naqebvq14OcRssrpgPyvragR0_AF_11OcVagresnprVAF_13VRssrpgPyvragRRR:
 .space __SIZEOF_POINTER__
@@ -3163,7 +3163,7 @@
 b__MA7naqebvq21NhqvbGenpxPyvragCebkl22fraqFgernzvatSyhfuFgbcRo:
 nop
 .data
-.globl b__MGPA7naqebvq11NhqvbRssrpg12RssrpgPyvragR0_AF_14OaRssrpgPyvragR
+.weak b__MGPA7naqebvq11NhqvbRssrpg12RssrpgPyvragR0_AF_14OaRssrpgPyvragR
 .type b__MGPA7naqebvq11NhqvbRssrpg12RssrpgPyvragR0_AF_14OaRssrpgPyvragR,%object
 b__MGPA7naqebvq11NhqvbRssrpg12RssrpgPyvragR0_AF_14OaRssrpgPyvragR:
 .space __SIZEOF_POINTER__
@@ -3188,7 +3188,7 @@
 b__MA7naqebvq5zrqvn13OcNhqvbErpbeq5fgnegRvv:
 nop
 .data
-.globl b__MGGA7naqebvq11NhqvbRssrpg12RssrpgPyvragR
+.weak b__MGGA7naqebvq11NhqvbRssrpg12RssrpgPyvragR
 .type b__MGGA7naqebvq11NhqvbRssrpg12RssrpgPyvragR,%object
 b__MGGA7naqebvq11NhqvbRssrpg12RssrpgPyvragR:
 .space __SIZEOF_POINTER__
@@ -3203,7 +3203,7 @@
 b__MA7naqebvq8OaRssrpg10baGenafnpgRwEXAF_6CnepryRCF1_w:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVgCAF_13GbarTrarengbe13JnirTrarengbeRRRR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVgCAF_13GbarTrarengbe13JnirTrarengbeRRRR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVgCAF_13GbarTrarengbe13JnirTrarengbeRRRR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVgCAF_13GbarTrarengbe13JnirTrarengbeRRRR16qb_zbir_onpxjneqRCiCXiz:
 nop
@@ -3223,7 +3223,7 @@
 b__MA7naqebvq11NhqvbFlfgrz22fgernzGlcrGbNggevohgrfR19nhqvb_fgernz_glcr_g:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_8NhqvbZvkRR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq6IrpgbeVAF_8NhqvbZvkRR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq6IrpgbeVAF_8NhqvbZvkRR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq6IrpgbeVAF_8NhqvbZvkRR10qb_qrfgeblRCiz:
 nop
@@ -3288,17 +3288,17 @@
 b__MA7naqebvq11NhqvbFlfgrz11flfgrzErnqlRi:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_2fcVAF_11NhqvbFlfgrz17NhqvbCbegPnyyonpxRRRR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_2fcVAF_11NhqvbFlfgrz17NhqvbCbegPnyyonpxRRRR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_2fcVAF_11NhqvbFlfgrz17NhqvbCbegPnyyonpxRRRR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_2fcVAF_11NhqvbFlfgrz17NhqvbCbegPnyyonpxRRRR7qb_pbclRCiCXiz:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVvA7naqebvq2jcVAF2_11NhqvbFlfgrz19NhqvbQrivprPnyyonpxRRRRRAF_19__znc_inyhr_pbzcnerVvF7_AF_4yrffVvRRYo1RRRAF_9nyybpngbeVF7_RRR15__rzcynpr_zhygvVWEXAF_4cnveVXvF6_RRRRRAF_15__gerr_vgrengbeVF7_CAF_11__gerr_abqrVF7_CiRRyRRQcBG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVvA7naqebvq2jcVAF2_11NhqvbFlfgrz19NhqvbQrivprPnyyonpxRRRRRAF_19__znc_inyhr_pbzcnerVvF7_AF_4yrffVvRRYo1RRRAF_9nyybpngbeVF7_RRR15__rzcynpr_zhygvVWEXAF_4cnveVXvF6_RRRRRAF_15__gerr_vgrengbeVF7_CAF_11__gerr_abqrVF7_CiRRyRRQcBG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVvA7naqebvq2jcVAF2_11NhqvbFlfgrz19NhqvbQrivprPnyyonpxRRRRRAF_19__znc_inyhr_pbzcnerVvF7_AF_4yrffVvRRYo1RRRAF_9nyybpngbeVF7_RRR15__rzcynpr_zhygvVWEXAF_4cnveVXvF6_RRRRRAF_15__gerr_vgrengbeVF7_CAF_11__gerr_abqrVF7_CiRRyRRQcBG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVvA7naqebvq2jcVAF2_11NhqvbFlfgrz19NhqvbQrivprPnyyonpxRRRRRAF_19__znc_inyhr_pbzcnerVvF7_AF_4yrffVvRRYo1RRRAF_9nyybpngbeVF7_RRR15__rzcynpr_zhygvVWEXAF_4cnveVXvF6_RRRRRAF_15__gerr_vgrengbeVF7_CAF_11__gerr_abqrVF7_CiRRyRRQcBG_:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVvAF_3zncVvA7naqebvq2jcVAF3_11NhqvbFlfgrz19NhqvbQrivprPnyyonpxRRRAF_4yrffVvRRAF_9nyybpngbeVAF_4cnveVXvF7_RRRRRRRRAF_19__znc_inyhr_pbzcnerVvFT_F9_Yo1RRRAFN_VFT_RRR7qrfgeblRCAF_11__gerr_abqrVFT_CiRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVvAF_3zncVvA7naqebvq2jcVAF3_11NhqvbFlfgrz19NhqvbQrivprPnyyonpxRRRAF_4yrffVvRRAF_9nyybpngbeVAF_4cnveVXvF7_RRRRRRRRAF_19__znc_inyhr_pbzcnerVvFT_F9_Yo1RRRAFN_VFT_RRR7qrfgeblRCAF_11__gerr_abqrVFT_CiRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVvAF_3zncVvA7naqebvq2jcVAF3_11NhqvbFlfgrz19NhqvbQrivprPnyyonpxRRRAF_4yrffVvRRAF_9nyybpngbeVAF_4cnveVXvF7_RRRRRRRRAF_19__znc_inyhr_pbzcnerVvFT_F9_Yo1RRRAFN_VFT_RRR7qrfgeblRCAF_11__gerr_abqrVFT_CiRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVvAF_3zncVvA7naqebvq2jcVAF3_11NhqvbFlfgrz19NhqvbQrivprPnyyonpxRRRAF_4yrffVvRRAF_9nyybpngbeVAF_4cnveVXvF7_RRRRRRRRAF_19__znc_inyhr_pbzcnerVvFT_F9_Yo1RRRAFN_VFT_RRR7qrfgeblRCAF_11__gerr_abqrVFT_CiRR:
 nop
@@ -3328,7 +3328,7 @@
 b__MA7naqebvq7VRssrpg12qrsnhyg_vzcyR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_2fcVAF_17NhqvbVbQrfpevcgbeRRRRRR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_2fcVAF_17NhqvbVbQrfpevcgbeRRRRRR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_2fcVAF_17NhqvbVbQrfpevcgbeRRRRRR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_2fcVAF_17NhqvbVbQrfpevcgbeRRRRRR10qb_qrfgeblRCiz:
 nop
@@ -3358,7 +3358,7 @@
 b__MA7naqebvq11NhqvbFlfgrz20trgFgengrtlSbeFgernzR19nhqvb_fgernz_glcr_g:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_2fcVAF_11NhqvbFlfgrz24NhqvbIbyhzrTebhcPnyyonpxRRRR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_2fcVAF_11NhqvbFlfgrz24NhqvbIbyhzrTebhcPnyyonpxRRRR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_2fcVAF_11NhqvbFlfgrz24NhqvbIbyhzrTebhcPnyyonpxRRRR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_2fcVAF_11NhqvbFlfgrz24NhqvbIbyhzrTebhcPnyyonpxRRRR8qb_fcyngRCiCXiz:
 nop
@@ -3418,12 +3418,12 @@
 b__MAX7naqebvq13VNhqvbSyvatre22trgVagresnprQrfpevcgbeRi:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVgCAF_13GbarTrarengbe13JnirTrarengbeRRRR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVgCAF_13GbarTrarengbe13JnirTrarengbeRRRR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVgCAF_13GbarTrarengbe13JnirTrarengbeRRRR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVgCAF_13GbarTrarengbe13JnirTrarengbeRRRR15qb_zbir_sbejneqRCiCXiz:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF0_VsRRR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq6IrpgbeVAF0_VsRRR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq6IrpgbeVAF0_VsRRR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq6IrpgbeVAF0_VsRRR10qb_qrfgeblRCiz:
 nop
@@ -3448,17 +3448,17 @@
 b__MGPA7naqebvq8OaRssrpgR0_AF_11OaVagresnprVAF_7VRssrpgRRR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGPA7naqebvq20OcNhqvbCbyvplFreivprR0_AF_19VNhqvbCbyvplFreivprR
+.weak b__MGPA7naqebvq20OcNhqvbCbyvplFreivprR0_AF_19VNhqvbCbyvplFreivprR
 .type b__MGPA7naqebvq20OcNhqvbCbyvplFreivprR0_AF_19VNhqvbCbyvplFreivprR,%object
 b__MGPA7naqebvq20OcNhqvbCbyvplFreivprR0_AF_19VNhqvbCbyvplFreivprR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVgCAF_13GbarTrarengbe13JnirTrarengbeRRRR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVgCAF_13GbarTrarengbe13JnirTrarengbeRRRR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVgCAF_13GbarTrarengbe13JnirTrarengbeRRRR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVgCAF_13GbarTrarengbe13JnirTrarengbeRRRR12qb_pbafgehpgRCiz:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVsR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVsR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVsR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVsR7qb_pbclRCiCXiz:
 nop
@@ -3508,7 +3508,7 @@
 b__MGPA7naqebvq10NhqvbGenpx13QrnguAbgvsvreR0_AF_7VOvaqre14QrnguErpvcvragR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGPA7naqebvq20OcNhqvbCbyvplFreivprR8_AF_9OcErsOnfrR
+.weak b__MGPA7naqebvq20OcNhqvbCbyvplFreivprR8_AF_9OcErsOnfrR
 .type b__MGPA7naqebvq20OcNhqvbCbyvplFreivprR8_AF_9OcErsOnfrR,%object
 b__MGPA7naqebvq20OcNhqvbCbyvplFreivprR8_AF_9OcErsOnfrR:
 .space __SIZEOF_POINTER__
@@ -3563,12 +3563,12 @@
 b__MA7naqebvq11NhqvbFlfgrz21eryrnfrNhqvbFrffvbaVqR15nhqvb_frffvba_gv:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR7qb_pbclRCiCXiz:
 nop
 .data
-.globl b__MGPA7naqebvq26OcNhqvbCbyvplFreivprPyvragR0_AF_25VNhqvbCbyvplFreivprPyvragR
+.weak b__MGPA7naqebvq26OcNhqvbCbyvplFreivprPyvragR0_AF_25VNhqvbCbyvplFreivprPyvragR
 .type b__MGPA7naqebvq26OcNhqvbCbyvplFreivprPyvragR0_AF_25VNhqvbCbyvplFreivprPyvragR,%object
 b__MGPA7naqebvq26OcNhqvbCbyvplFreivprPyvragR0_AF_25VNhqvbCbyvplFreivprPyvragR:
 .space __SIZEOF_POINTER__
@@ -3583,17 +3583,17 @@
 b__MA7naqebvq11NhqvbFlfgrz26trgCevznelBhgchgSenzrPbhagRi:
 nop
 .text
-.globl b__MAFg3__16irpgbeVwAF_9nyybpngbeVwRRR21__chfu_onpx_fybj_cnguVwRRiBG_
+.weak b__MAFg3__16irpgbeVwAF_9nyybpngbeVwRRR21__chfu_onpx_fybj_cnguVwRRiBG_
 .type b__MAFg3__16irpgbeVwAF_9nyybpngbeVwRRR21__chfu_onpx_fybj_cnguVwRRiBG_,%function
 b__MAFg3__16irpgbeVwAF_9nyybpngbeVwRRR21__chfu_onpx_fybj_cnguVwRRiBG_:
 nop
 .data
-.globl b__MGPA7naqebvq12OcNhqvbGenpxR0_AF_11VNhqvbGenpxR
+.weak b__MGPA7naqebvq12OcNhqvbGenpxR0_AF_11VNhqvbGenpxR
 .type b__MGPA7naqebvq12OcNhqvbGenpxR0_AF_11VNhqvbGenpxR,%object
 b__MGPA7naqebvq12OcNhqvbGenpxR0_AF_11VNhqvbGenpxR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq6IrpgbeVsR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq6IrpgbeVsR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq6IrpgbeVsR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq6IrpgbeVsR12qb_pbafgehpgRCiz:
 nop
@@ -3613,12 +3613,12 @@
 b__MGPA7naqebvq26OaNhqvbCbyvplFreivprPyvragR0_AF_11OaVagresnprVAF_25VNhqvbCbyvplFreivprPyvragRRR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIA7naqebvq12OcNhqvbGenpxR
+.weak b__MGIA7naqebvq12OcNhqvbGenpxR
 .type b__MGIA7naqebvq12OcNhqvbGenpxR,%object
 b__MGIA7naqebvq12OcNhqvbGenpxR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVgCAF_13GbarTrarengbe13JnirTrarengbeRRRR10qb_pbzcnerRCXiF8_
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVgCAF_13GbarTrarengbe13JnirTrarengbeRRRR10qb_pbzcnerRCXiF8_
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVgCAF_13GbarTrarengbe13JnirTrarengbeRRRR10qb_pbzcnerRCXiF8_,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVgCAF_13GbarTrarengbe13JnirTrarengbeRRRR10qb_pbzcnerRCXiF8_:
 nop
@@ -3663,12 +3663,12 @@
 b__MGIA7naqebvq11NhqvbFlfgrz24NhqvbCbyvplFreivprPyvragR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGGA7naqebvq20OcNhqvbSyvatrePyvragR
+.weak b__MGGA7naqebvq20OcNhqvbSyvatrePyvragR
 .type b__MGGA7naqebvq20OcNhqvbSyvatrePyvragR,%object
 b__MGGA7naqebvq20OcNhqvbSyvatrePyvragR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGPA7naqebvq12OcNhqvbGenpxR0_AF_11OcVagresnprVAF_11VNhqvbGenpxRRR
+.weak b__MGPA7naqebvq12OcNhqvbGenpxR0_AF_11OcVagresnprVAF_11VNhqvbGenpxRRR
 .type b__MGPA7naqebvq12OcNhqvbGenpxR0_AF_11OcVagresnprVAF_11VNhqvbGenpxRRR,%object
 b__MGPA7naqebvq12OcNhqvbGenpxR0_AF_11OcVagresnprVAF_11VNhqvbGenpxRRR:
 .space __SIZEOF_POINTER__
@@ -3693,12 +3693,12 @@
 b__MGIA7naqebvq11NhqvbErpbeq17NhqvbErpbeqGuernqR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
+.weak b__MGIAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
 .type b__MGIAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR,%object
 b__MGIAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_2fcVAF_11NhqvbFlfgrz17NhqvbCbegPnyyonpxRRRR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_2fcVAF_11NhqvbFlfgrz17NhqvbCbegPnyyonpxRRRR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_2fcVAF_11NhqvbFlfgrz17NhqvbCbegPnyyonpxRRRR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_2fcVAF_11NhqvbFlfgrz17NhqvbCbegPnyyonpxRRRR16qb_zbir_onpxjneqRCiCXiz:
 nop
@@ -3713,7 +3713,7 @@
 b__MGIA7naqebvq11VNhqvbGenpxR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF0_VsRRR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF0_VsRRR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF0_VsRRR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF0_VsRRR15qb_zbir_sbejneqRCiCXiz:
 nop
@@ -3728,17 +3728,17 @@
 b__MA7naqebvq11NhqvbFlfgrz17trgEraqreCbfvgvbaRvCwF1_:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVvA7naqebvq2jcVAF2_11NhqvbFlfgrz19NhqvbQrivprPnyyonpxRRRRRAF_19__znc_inyhr_pbzcnerVvF7_AF_4yrffVvRRYo1RRRAF_9nyybpngbeVF7_RRR14__nffvta_zhygvVAF_21__gerr_pbafg_vgrengbeVF7_CAF_11__gerr_abqrVF7_CiRRyRRRRiG_FZ_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVvA7naqebvq2jcVAF2_11NhqvbFlfgrz19NhqvbQrivprPnyyonpxRRRRRAF_19__znc_inyhr_pbzcnerVvF7_AF_4yrffVvRRYo1RRRAF_9nyybpngbeVF7_RRR14__nffvta_zhygvVAF_21__gerr_pbafg_vgrengbeVF7_CAF_11__gerr_abqrVF7_CiRRyRRRRiG_FZ_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVvA7naqebvq2jcVAF2_11NhqvbFlfgrz19NhqvbQrivprPnyyonpxRRRRRAF_19__znc_inyhr_pbzcnerVvF7_AF_4yrffVvRRYo1RRRAF_9nyybpngbeVF7_RRR14__nffvta_zhygvVAF_21__gerr_pbafg_vgrengbeVF7_CAF_11__gerr_abqrVF7_CiRRyRRRRiG_FZ_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVvA7naqebvq2jcVAF2_11NhqvbFlfgrz19NhqvbQrivprPnyyonpxRRRRRAF_19__znc_inyhr_pbzcnerVvF7_AF_4yrffVvRRYo1RRRAF_9nyybpngbeVF7_RRR14__nffvta_zhygvVAF_21__gerr_pbafg_vgrengbeVF7_CAF_11__gerr_abqrVF7_CiRRyRRRRiG_FZ_:
 nop
 .data
-.globl b__MGPA7naqebvq8OcRssrpgR0_AF_11OcVagresnprVAF_7VRssrpgRRR
+.weak b__MGPA7naqebvq8OcRssrpgR0_AF_11OcVagresnprVAF_7VRssrpgRRR
 .type b__MGPA7naqebvq8OcRssrpgR0_AF_11OcVagresnprVAF_7VRssrpgRRR,%object
 b__MGPA7naqebvq8OcRssrpgR0_AF_11OcVagresnprVAF_7VRssrpgRRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVsAF_5ghcyrVWsssRRRRRAF_22__habeqrerq_znc_unfureVsF4_AF_4unfuVsRRYo1RRRAF_21__habeqrerq_znc_rdhnyVsF4_AF_8rdhny_gbVsRRYo1RRRAF_9nyybpngbeVF4_RRR25__rzcynpr_havdhr_xrl_netfVsWEXAF_4cnveVXsF3_RRRRRAFU_VAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF4_CiRRRRoRREXG_QcBG0_
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVsAF_5ghcyrVWsssRRRRRAF_22__habeqrerq_znc_unfureVsF4_AF_4unfuVsRRYo1RRRAF_21__habeqrerq_znc_rdhnyVsF4_AF_8rdhny_gbVsRRYo1RRRAF_9nyybpngbeVF4_RRR25__rzcynpr_havdhr_xrl_netfVsWEXAF_4cnveVXsF3_RRRRRAFU_VAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF4_CiRRRRoRREXG_QcBG0_
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVsAF_5ghcyrVWsssRRRRRAF_22__habeqrerq_znc_unfureVsF4_AF_4unfuVsRRYo1RRRAF_21__habeqrerq_znc_rdhnyVsF4_AF_8rdhny_gbVsRRYo1RRRAF_9nyybpngbeVF4_RRR25__rzcynpr_havdhr_xrl_netfVsWEXAF_4cnveVXsF3_RRRRRAFU_VAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF4_CiRRRRoRREXG_QcBG0_,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVsAF_5ghcyrVWsssRRRRRAF_22__habeqrerq_znc_unfureVsF4_AF_4unfuVsRRYo1RRRAF_21__habeqrerq_znc_rdhnyVsF4_AF_8rdhny_gbVsRRYo1RRRAF_9nyybpngbeVF4_RRR25__rzcynpr_havdhr_xrl_netfVsWEXAF_4cnveVXsF3_RRRRRAFU_VAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF4_CiRRRRoRREXG_QcBG0_:
 nop
@@ -3778,7 +3778,7 @@
 b__MAX7naqebvq11NhqvbErpbeq18trgVachgSenzrfYbfgRi:
 nop
 .data
-.globl b__MGIA7naqebvq13VNhqvbSyvatre17PerngrErpbeqVachgR
+.weak b__MGIA7naqebvq13VNhqvbSyvatre17PerngrErpbeqVachgR
 .type b__MGIA7naqebvq13VNhqvbSyvatre17PerngrErpbeqVachgR,%object
 b__MGIA7naqebvq13VNhqvbSyvatre17PerngrErpbeqVachgR:
 .space __SIZEOF_POINTER__
@@ -3793,7 +3793,7 @@
 b__MA7naqebvq11NhqvbFlfgrz30erzbirNhqvbIbyhzrTebhcPnyyonpxREXAF_2fcVAF0_24NhqvbIbyhzrTebhcPnyyonpxRRR:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_19NhqvbQrivprGlcrNqqeRR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_19NhqvbQrivprGlcrNqqeRR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_19NhqvbQrivprGlcrNqqeRR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_19NhqvbQrivprGlcrNqqeRR16qb_zbir_onpxjneqRCiCXiz:
 nop
@@ -3813,12 +3813,12 @@
 b__MAX7naqebvq11NhqvbErpbeq23trgCbfvgvbaHcqngrCrevbqRCw:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVvA7naqebvq2jcVAF2_11NhqvbFlfgrz19NhqvbQrivprPnyyonpxRRRRRAF_19__znc_inyhr_pbzcnerVvF7_AF_4yrffVvRRYo1RRRAF_9nyybpngbeVF7_RRR30__rzcynpr_uvag_havdhr_xrl_netfVvWEXAF_4cnveVXvF6_RRRRRAF_15__gerr_vgrengbeVF7_CAF_11__gerr_abqrVF7_CiRRyRRAF_21__gerr_pbafg_vgrengbeVF7_FC_yRREXG_QcBG0_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVvA7naqebvq2jcVAF2_11NhqvbFlfgrz19NhqvbQrivprPnyyonpxRRRRRAF_19__znc_inyhr_pbzcnerVvF7_AF_4yrffVvRRYo1RRRAF_9nyybpngbeVF7_RRR30__rzcynpr_uvag_havdhr_xrl_netfVvWEXAF_4cnveVXvF6_RRRRRAF_15__gerr_vgrengbeVF7_CAF_11__gerr_abqrVF7_CiRRyRRAF_21__gerr_pbafg_vgrengbeVF7_FC_yRREXG_QcBG0_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVvA7naqebvq2jcVAF2_11NhqvbFlfgrz19NhqvbQrivprPnyyonpxRRRRRAF_19__znc_inyhr_pbzcnerVvF7_AF_4yrffVvRRYo1RRRAF_9nyybpngbeVF7_RRR30__rzcynpr_uvag_havdhr_xrl_netfVvWEXAF_4cnveVXvF6_RRRRRAF_15__gerr_vgrengbeVF7_CAF_11__gerr_abqrVF7_CiRRyRRAF_21__gerr_pbafg_vgrengbeVF7_FC_yRREXG_QcBG0_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVvA7naqebvq2jcVAF2_11NhqvbFlfgrz19NhqvbQrivprPnyyonpxRRRRRAF_19__znc_inyhr_pbzcnerVvF7_AF_4yrffVvRRYo1RRRAF_9nyybpngbeVF7_RRR30__rzcynpr_uvag_havdhr_xrl_netfVvWEXAF_4cnveVXvF6_RRRRRAF_15__gerr_vgrengbeVF7_CAF_11__gerr_abqrVF7_CiRRyRRAF_21__gerr_pbafg_vgrengbeVF7_FC_yRREXG_QcBG0_:
 nop
 .data
-.globl b__MGIA7naqebvq6IrpgbeVAF_2fcVAF_11NhqvbFlfgrz17NhqvbCbegPnyyonpxRRRRR
+.weak b__MGIA7naqebvq6IrpgbeVAF_2fcVAF_11NhqvbFlfgrz17NhqvbCbegPnyyonpxRRRRR
 .type b__MGIA7naqebvq6IrpgbeVAF_2fcVAF_11NhqvbFlfgrz17NhqvbCbegPnyyonpxRRRRR,%object
 b__MGIA7naqebvq6IrpgbeVAF_2fcVAF_11NhqvbFlfgrz17NhqvbCbegPnyyonpxRRRRR:
 .space __SIZEOF_POINTER__
@@ -3853,12 +3853,12 @@
 b__MGGA7naqebvq13VRssrpgPyvragR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_2fcVAF_11NhqvbFlfgrz24NhqvbIbyhzrTebhcPnyyonpxRRRR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq6IrpgbeVAF_2fcVAF_11NhqvbFlfgrz24NhqvbIbyhzrTebhcPnyyonpxRRRR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq6IrpgbeVAF_2fcVAF_11NhqvbFlfgrz24NhqvbIbyhzrTebhcPnyyonpxRRRR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq6IrpgbeVAF_2fcVAF_11NhqvbFlfgrz24NhqvbIbyhzrTebhcPnyyonpxRRRR10qb_qrfgeblRCiz:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR15qb_zbir_sbejneqRCiCXiz:
 nop
@@ -3878,7 +3878,7 @@
 b__MA7naqebvq10NhqvbGenpx9frgIbyhzrRss:
 nop
 .data
-.globl b__MGIA7naqebvq13VNhqvbSyvatre17PerngrGenpxBhgchgR
+.weak b__MGIA7naqebvq13VNhqvbSyvatre17PerngrGenpxBhgchgR
 .type b__MGIA7naqebvq13VNhqvbSyvatre17PerngrGenpxBhgchgR,%object
 b__MGIA7naqebvq13VNhqvbSyvatre17PerngrGenpxBhgchgR:
 .space __SIZEOF_POINTER__
@@ -3893,7 +3893,7 @@
 b__MGPA7naqebvq14OaNhqvbSyvatreR0_AF_10VVagresnprR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGPA7naqebvq12OcNhqvbGenpxR0_AF_10VVagresnprR
+.weak b__MGPA7naqebvq12OcNhqvbGenpxR0_AF_10VVagresnprR
 .type b__MGPA7naqebvq12OcNhqvbGenpxR0_AF_10VVagresnprR,%object
 b__MGPA7naqebvq12OcNhqvbGenpxR0_AF_10VVagresnprR:
 .space __SIZEOF_POINTER__
@@ -3943,7 +3943,7 @@
 b__MA7naqebvq11NhqvbRssrpg20frgCnenzrgreQrsreerqRC14rssrpg_cnenz_f:
 nop
 .data
-.globl b__MGPA7naqebvq26OcNhqvbCbyvplFreivprPyvragR0_AF_10VVagresnprR
+.weak b__MGPA7naqebvq26OcNhqvbCbyvplFreivprPyvragR0_AF_10VVagresnprR
 .type b__MGPA7naqebvq26OcNhqvbCbyvplFreivprPyvragR0_AF_10VVagresnprR,%object
 b__MGPA7naqebvq26OcNhqvbCbyvplFreivprPyvragR0_AF_10VVagresnprR:
 .space __SIZEOF_POINTER__
@@ -3963,7 +3963,7 @@
 b__MGi0_a24_A7naqebvq5zrqvn7VCynlreQ1Ri:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_2fcVAF_17NhqvbVbQrfpevcgbeRRRRRR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_2fcVAF_17NhqvbVbQrfpevcgbeRRRRRR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_2fcVAF_17NhqvbVbQrfpevcgbeRRRRRR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_2fcVAF_17NhqvbVbQrfpevcgbeRRRRRR7qb_pbclRCiCXiz:
 nop
@@ -4008,7 +4008,7 @@
 b__MA7naqebvq11NhqvbFlfgrz22vfFgernzNpgvirErzbgrylR19nhqvb_fgernz_glcr_gCow:
 nop
 .text
-.globl b__MA7naqebvq2fcVAF_19VNhqvbCbyvplFreivprRRQ2Ri
+.weak b__MA7naqebvq2fcVAF_19VNhqvbCbyvplFreivprRRQ2Ri
 .type b__MA7naqebvq2fcVAF_19VNhqvbCbyvplFreivprRRQ2Ri,%function
 b__MA7naqebvq2fcVAF_19VNhqvbCbyvplFreivprRRQ2Ri:
 nop
@@ -4018,12 +4018,12 @@
 b__MA7naqebvq10NhqvbGenpx17frgZnexreCbfvgvbaRw:
 nop
 .data
-.globl b__MGIA7naqebvq14OcNhqvbSyvatreR
+.weak b__MGIA7naqebvq14OcNhqvbSyvatreR
 .type b__MGIA7naqebvq14OcNhqvbSyvatreR,%object
 b__MGIA7naqebvq14OcNhqvbSyvatreR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGPA7naqebvq20OcNhqvbSyvatrePyvragR8_AF_9OcErsOnfrR
+.weak b__MGPA7naqebvq20OcNhqvbSyvatrePyvragR8_AF_9OcErsOnfrR
 .type b__MGPA7naqebvq20OcNhqvbSyvatrePyvragR8_AF_9OcErsOnfrR,%object
 b__MGPA7naqebvq20OcNhqvbSyvatrePyvragR8_AF_9OcErsOnfrR:
 .space __SIZEOF_POINTER__
@@ -4033,12 +4033,12 @@
 b__MAX7naqebvq11NhqvbRssrpg10trgRanoyrqRi:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_2fcVAF_17NhqvbVbQrfpevcgbeRRRRRR10qb_pbzcnerRCXiF8_
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_2fcVAF_17NhqvbVbQrfpevcgbeRRRRRR10qb_pbzcnerRCXiF8_
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_2fcVAF_17NhqvbVbQrfpevcgbeRRRRRR10qb_pbzcnerRCXiF8_,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_2fcVAF_17NhqvbVbQrfpevcgbeRRRRRR10qb_pbzcnerRCXiF8_:
 nop
 .data
-.globl b__MGIA7naqebvq6IrpgbeVAF_22NhqvbZvkZngpuPevgrevbaRRR
+.weak b__MGIA7naqebvq6IrpgbeVAF_22NhqvbZvkZngpuPevgrevbaRRR
 .type b__MGIA7naqebvq6IrpgbeVAF_22NhqvbZvkZngpuPevgrevbaRRR,%object
 b__MGIA7naqebvq6IrpgbeVAF_22NhqvbZvkZngpuPevgrevbaRRR:
 .space __SIZEOF_POINTER__
@@ -4083,7 +4083,7 @@
 b__MGPA7naqebvq5zrqvn19VNhqvbErpbeqQrsnhygR0_AF0_12VNhqvbErpbeqR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGPA7naqebvq14OcRssrpgPyvragR8_AF_9OcErsOnfrR
+.weak b__MGPA7naqebvq14OcRssrpgPyvragR8_AF_9OcErsOnfrR
 .type b__MGPA7naqebvq14OcRssrpgPyvragR8_AF_9OcErsOnfrR,%object
 b__MGPA7naqebvq14OcRssrpgPyvragR8_AF_9OcErsOnfrR:
 .space __SIZEOF_POINTER__
@@ -4098,12 +4098,12 @@
 b__MA7naqebvq11NhqvbFlfgrz18NhqvbSyvatrePyvrag17trgVbQrfpevcgbe_yRv:
 nop
 .text
-.globl b__MA7naqebvq2fcVAF_13VNhqvbSyvatreRRQ2Ri
+.weak b__MA7naqebvq2fcVAF_13VNhqvbSyvatreRRQ2Ri
 .type b__MA7naqebvq2fcVAF_13VNhqvbSyvatreRRQ2Ri,%function
 b__MA7naqebvq2fcVAF_13VNhqvbSyvatreRRQ2Ri:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_2fcVAF_11NhqvbFlfgrz24NhqvbIbyhzrTebhcPnyyonpxRRRR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq6IrpgbeVAF_2fcVAF_11NhqvbFlfgrz24NhqvbIbyhzrTebhcPnyyonpxRRRR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq6IrpgbeVAF_2fcVAF_11NhqvbFlfgrz24NhqvbIbyhzrTebhcPnyyonpxRRRR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq6IrpgbeVAF_2fcVAF_11NhqvbFlfgrz24NhqvbIbyhzrTebhcPnyyonpxRRRR12qb_pbafgehpgRCiz:
 nop
@@ -4123,12 +4123,12 @@
 b__MA7naqebvq11NhqvbFlfgrz26eryrnfrFbhaqGevttreFrffvbaR15nhqvb_frffvba_g:
 nop
 .text
-.globl b__MA7naqebvq11OaVagresnprVAF_25VNhqvbCbyvplFreivprPyvragRR10baNfOvaqreRi
+.weak b__MA7naqebvq11OaVagresnprVAF_25VNhqvbCbyvplFreivprPyvragRR10baNfOvaqreRi
 .type b__MA7naqebvq11OaVagresnprVAF_25VNhqvbCbyvplFreivprPyvragRR10baNfOvaqreRi,%function
 b__MA7naqebvq11OaVagresnprVAF_25VNhqvbCbyvplFreivprPyvragRR10baNfOvaqreRi:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_2fcVAF_17NhqvbVbQrfpevcgbeRRRRRR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_2fcVAF_17NhqvbVbQrfpevcgbeRRRRRR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_2fcVAF_17NhqvbVbQrfpevcgbeRRRRRR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_2fcVAF_17NhqvbVbQrfpevcgbeRRRRRR16qb_zbir_onpxjneqRCiCXiz:
 nop
@@ -4138,7 +4138,7 @@
 b__MA7naqebvq15GenpxCynlreOnfrQ1Ri:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF0_VsRRR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq6IrpgbeVAF0_VsRRR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq6IrpgbeVAF0_VsRRR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq6IrpgbeVAF0_VsRRR12qb_pbafgehpgRCiz:
 nop
@@ -4153,7 +4153,7 @@
 b__MA7naqebvq5zrqvn7VCynlreP2Ri:
 nop
 .text
-.globl b__MA7naqebvq2fcVAF_11NhqvbErpbeq17NhqvbErpbeqGuernqRR5pyrneRi
+.weak b__MA7naqebvq2fcVAF_11NhqvbErpbeq17NhqvbErpbeqGuernqRR5pyrneRi
 .type b__MA7naqebvq2fcVAF_11NhqvbErpbeq17NhqvbErpbeqGuernqRR5pyrneRi,%function
 b__MA7naqebvq2fcVAF_11NhqvbErpbeq17NhqvbErpbeqGuernqRR5pyrneRi:
 nop
@@ -4163,7 +4163,7 @@
 b__MA7naqebvq11NhqvbFlfgrz23frgErpbeqPbasvtPnyyonpxRCSivCXAF_18erpbeq_pyvrag_vasbRCX17nhqvb_pbasvt_onfrAFg3__16irpgbeV19rssrpg_qrfpevcgbe_fAF7_9nyybpngbeVF9_RRRRF6_FP_v14nhqvb_fbhepr_gR:
 nop
 .text
-.globl b__MA7naqebvq2fcVAF_10NhqvbGenpx13QrnguAbgvsvreRR5pyrneRi
+.weak b__MA7naqebvq2fcVAF_10NhqvbGenpx13QrnguAbgvsvreRR5pyrneRi
 .type b__MA7naqebvq2fcVAF_10NhqvbGenpx13QrnguAbgvsvreRR5pyrneRi,%function
 b__MA7naqebvq2fcVAF_10NhqvbGenpx13QrnguAbgvsvreRR5pyrneRi:
 nop
@@ -4198,7 +4198,7 @@
 b__MA7naqebvq11NhqvbFlfgrz15frgFgernzIbyhzrR19nhqvb_fgernz_glcr_gsv:
 nop
 .text
-.globl b__MAXFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR3fgeRi
+.weak b__MAXFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR3fgeRi
 .type b__MAXFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR3fgeRi,%function
 b__MAXFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR3fgeRi:
 nop
@@ -4213,12 +4213,12 @@
 b__MGi0_a24_A7naqebvq19VNhqvbSyvatrePyvragQ0Ri:
 nop
 .text
-.globl b__MA7naqebvq2fcVAF_5zrqvn13IbyhzrUnaqyreRRnFRCF2_
+.weak b__MA7naqebvq2fcVAF_5zrqvn13IbyhzrUnaqyreRRnFRCF2_
 .type b__MA7naqebvq2fcVAF_5zrqvn13IbyhzrUnaqyreRRnFRCF2_,%function
 b__MA7naqebvq2fcVAF_5zrqvn13IbyhzrUnaqyreRRnFRCF2_:
 nop
 .data
-.globl b__MGIA7naqebvq5CebklR
+.weak b__MGIA7naqebvq5CebklR
 .type b__MGIA7naqebvq5CebklR,%object
 b__MGIA7naqebvq5CebklR:
 .space __SIZEOF_POINTER__
@@ -4238,7 +4238,7 @@
 b__MGPA7naqebvq15GenpxCynlreOnfrR8_AF_7VOvaqreR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIA7naqebvq5zrqvn14ZvpebcubarVasbR
+.weak b__MGIA7naqebvq5zrqvn14ZvpebcubarVasbR
 .type b__MGIA7naqebvq5zrqvn14ZvpebcubarVasbR,%object
 b__MGIA7naqebvq5zrqvn14ZvpebcubarVasbR:
 .space __SIZEOF_POINTER__
@@ -4288,12 +4288,12 @@
 b__MA7naqebvq10NhqvbGenpxP1R19nhqvb_fgernz_glcr_gw14nhqvb_sbezng_gwz20nhqvb_bhgchg_syntf_gCSivCiF4_RF4_v15nhqvb_frffvba_gAF0_13genafsre_glcrRCX20nhqvb_bssybnq_vasb_gwvCX18nhqvb_nggevohgrf_gosv:
 nop
 .text
-.globl b__MA7naqebvq11OaVagresnprVAF_11VNhqvbGenpxRR10baNfOvaqreRi
+.weak b__MA7naqebvq11OaVagresnprVAF_11VNhqvbGenpxRR10baNfOvaqreRi
 .type b__MA7naqebvq11OaVagresnprVAF_11VNhqvbGenpxRR10baNfOvaqreRi,%function
 b__MA7naqebvq11OaVagresnprVAF_11VNhqvbGenpxRR10baNfOvaqreRi:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVssRRAF_19__znc_inyhr_pbzcnerVsF2_AF_4yrffVsRRYo1RRRAF_9nyybpngbeVF2_RRR12__svaq_rdhnyVsRRECAF_16__gerr_abqr_onfrVCiRRAF_21__gerr_pbafg_vgrengbeVF2_CAF_11__gerr_abqrVF2_FP_RRyRRECAF_15__gerr_raq_abqrVFR_RRFS_EXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVssRRAF_19__znc_inyhr_pbzcnerVsF2_AF_4yrffVsRRYo1RRRAF_9nyybpngbeVF2_RRR12__svaq_rdhnyVsRRECAF_16__gerr_abqr_onfrVCiRRAF_21__gerr_pbafg_vgrengbeVF2_CAF_11__gerr_abqrVF2_FP_RRyRRECAF_15__gerr_raq_abqrVFR_RRFS_EXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVssRRAF_19__znc_inyhr_pbzcnerVsF2_AF_4yrffVsRRYo1RRRAF_9nyybpngbeVF2_RRR12__svaq_rdhnyVsRRECAF_16__gerr_abqr_onfrVCiRRAF_21__gerr_pbafg_vgrengbeVF2_CAF_11__gerr_abqrVF2_FP_RRyRRECAF_15__gerr_raq_abqrVFR_RRFS_EXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVssRRAF_19__znc_inyhr_pbzcnerVsF2_AF_4yrffVsRRYo1RRRAF_9nyybpngbeVF2_RRR12__svaq_rdhnyVsRRECAF_16__gerr_abqr_onfrVCiRRAF_21__gerr_pbafg_vgrengbeVF2_CAF_11__gerr_abqrVF2_FP_RRyRRECAF_15__gerr_raq_abqrVFR_RRFS_EXG_:
 nop
@@ -4348,7 +4348,7 @@
 b__MGPA7naqebvq14OaNhqvbSyvatreR0_AF_13VNhqvbSyvatreR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF0_VsRRR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF0_VsRRR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF0_VsRRR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF0_VsRRR16qb_zbir_onpxjneqRCiCXiz:
 nop
@@ -4363,7 +4363,7 @@
 b__MA7naqebvq10CynlreOnfr11ercbegRiragRAF_14cynlre_fgngr_gR:
 nop
 .data
-.globl b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_2fcVAF_17NhqvbVbQrfpevcgbeRRRRRRR
+.weak b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_2fcVAF_17NhqvbVbQrfpevcgbeRRRRRRR
 .type b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_2fcVAF_17NhqvbVbQrfpevcgbeRRRRRRR,%object
 b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_2fcVAF_17NhqvbVbQrfpevcgbeRRRRRRR:
 .space __SIZEOF_POINTER__
@@ -4383,7 +4383,7 @@
 b__MGIA7naqebvq11NhqvbFlfgrz18NhqvbSyvatrePyvragR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVsAF_5ghcyrVWsssRRRRRAF_22__habeqrerq_znc_unfureVsF4_AF_4unfuVsRRYo1RRRAF_21__habeqrerq_znc_rdhnyVsF4_AF_8rdhny_gbVsRRYo1RRRAF_9nyybpngbeVF4_RRR8__erunfuRz
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVsAF_5ghcyrVWsssRRRRRAF_22__habeqrerq_znc_unfureVsF4_AF_4unfuVsRRYo1RRRAF_21__habeqrerq_znc_rdhnyVsF4_AF_8rdhny_gbVsRRYo1RRRAF_9nyybpngbeVF4_RRR8__erunfuRz
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVsAF_5ghcyrVWsssRRRRRAF_22__habeqrerq_znc_unfureVsF4_AF_4unfuVsRRYo1RRRAF_21__habeqrerq_znc_rdhnyVsF4_AF_8rdhny_gbVsRRYo1RRRAF_9nyybpngbeVF4_RRR8__erunfuRz,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVsAF_5ghcyrVWsssRRRRRAF_22__habeqrerq_znc_unfureVsF4_AF_4unfuVsRRYo1RRRAF_21__habeqrerq_znc_rdhnyVsF4_AF_8rdhny_gbVsRRYo1RRRAF_9nyybpngbeVF4_RRR8__erunfuRz:
 nop
@@ -4403,7 +4403,7 @@
 b__MA7naqebvq13VRssrpgPyvragQ2Ri:
 nop
 .text
-.globl b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9conpxsnvyRv
+.weak b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9conpxsnvyRv
 .type b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9conpxsnvyRv,%function
 b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9conpxsnvyRv:
 nop
@@ -4418,7 +4418,7 @@
 b__MGua8_A7naqebvq11NhqvbFlfgrz24NhqvbCbyvplFreivprPyvrag25baNhqvbIbyhzrTebhcPunatrqRAF_14ibyhzr_tebhc_gRv:
 nop
 .text
-.globl b__MAFg3__16irpgbeV18nhqvb_nggevohgrf_gAF_9nyybpngbeVF1_RRRP2REXF4_
+.weak b__MAFg3__16irpgbeV18nhqvb_nggevohgrf_gAF_9nyybpngbeVF1_RRRP2REXF4_
 .type b__MAFg3__16irpgbeV18nhqvb_nggevohgrf_gAF_9nyybpngbeVF1_RRRP2REXF4_,%function
 b__MAFg3__16irpgbeV18nhqvb_nggevohgrf_gAF_9nyybpngbeVF1_RRRP2REXF4_:
 nop
@@ -4438,7 +4438,7 @@
 b__MA7naqebvq11NhqvbErpbeqP1R14nhqvb_fbhepr_gw14nhqvb_sbezng_gwEXAF_8Fgevat16RzCSivCiF6_RF6_w15nhqvb_frffvba_gAF0_13genafsre_glcrR19nhqvb_vachg_syntf_gwvCX18nhqvb_nggevohgrf_gv28nhqvb_zvpebcubar_qverpgvba_gs:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVvAF_3zncVvA7naqebvq2jcVAF3_11NhqvbFlfgrz19NhqvbQrivprPnyyonpxRRRAF_4yrffVvRRAF_9nyybpngbeVAF_4cnveVXvF7_RRRRRRRRAF_19__znc_inyhr_pbzcnerVvFT_F9_Yo1RRRAFN_VFT_RRR25__rzcynpr_havdhr_xrl_netfVvWEvFS_RRRAFO_VAF_15__gerr_vgrengbeVFT_CAF_11__gerr_abqrVFT_CiRRyRRoRREXG_QcBG0_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVvAF_3zncVvA7naqebvq2jcVAF3_11NhqvbFlfgrz19NhqvbQrivprPnyyonpxRRRAF_4yrffVvRRAF_9nyybpngbeVAF_4cnveVXvF7_RRRRRRRRAF_19__znc_inyhr_pbzcnerVvFT_F9_Yo1RRRAFN_VFT_RRR25__rzcynpr_havdhr_xrl_netfVvWEvFS_RRRAFO_VAF_15__gerr_vgrengbeVFT_CAF_11__gerr_abqrVFT_CiRRyRRoRREXG_QcBG0_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVvAF_3zncVvA7naqebvq2jcVAF3_11NhqvbFlfgrz19NhqvbQrivprPnyyonpxRRRAF_4yrffVvRRAF_9nyybpngbeVAF_4cnveVXvF7_RRRRRRRRAF_19__znc_inyhr_pbzcnerVvFT_F9_Yo1RRRAFN_VFT_RRR25__rzcynpr_havdhr_xrl_netfVvWEvFS_RRRAFO_VAF_15__gerr_vgrengbeVFT_CAF_11__gerr_abqrVFT_CiRRyRRoRREXG_QcBG0_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVvAF_3zncVvA7naqebvq2jcVAF3_11NhqvbFlfgrz19NhqvbQrivprPnyyonpxRRRAF_4yrffVvRRAF_9nyybpngbeVAF_4cnveVXvF7_RRRRRRRRAF_19__znc_inyhr_pbzcnerVvFT_F9_Yo1RRRAFN_VFT_RRR25__rzcynpr_havdhr_xrl_netfVvWEvFS_RRRAFO_VAF_15__gerr_vgrengbeVFT_CAF_11__gerr_abqrVFT_CiRRyRRoRREXG_QcBG0_:
 nop
@@ -4448,7 +4448,7 @@
 b__MA7naqebvq10NhqvbGenpx15nggnpuNhkRssrpgRv:
 nop
 .data
-.globl b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR16_AF_13onfvp_bfgernzVpF2_RR
+.weak b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR16_AF_13onfvp_bfgernzVpF2_RR
 .type b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR16_AF_13onfvp_bfgernzVpF2_RR,%object
 b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR16_AF_13onfvp_bfgernzVpF2_RR:
 .space __SIZEOF_POINTER__
@@ -4473,12 +4473,12 @@
 b__MGPA7naqebvq11NhqvbFlfgrz18NhqvbSyvatrePyvragR16_AF_7OOvaqreR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq2fcVAF_21NhqvbGenpxPyvragCebklRRnFRCF1_
+.weak b__MA7naqebvq2fcVAF_21NhqvbGenpxPyvragCebklRRnFRCF1_
 .type b__MA7naqebvq2fcVAF_21NhqvbGenpxPyvragCebklRRnFRCF1_,%function
 b__MA7naqebvq2fcVAF_21NhqvbGenpxPyvragCebklRRnFRCF1_:
 nop
 .data
-.globl b__MGPA7naqebvq8OcRssrpgR0_AF_7VRssrpgR
+.weak b__MGPA7naqebvq8OcRssrpgR0_AF_7VRssrpgR
 .type b__MGPA7naqebvq8OcRssrpgR0_AF_7VRssrpgR,%object
 b__MGPA7naqebvq8OcRssrpgR0_AF_7VRssrpgR:
 .space __SIZEOF_POINTER__
@@ -4498,12 +4498,12 @@
 b__MA7naqebvq11NhqvbErpbeq22nqqNhqvbQrivprPnyyonpxREXAF_2fcVAF_11NhqvbFlfgrz19NhqvbQrivprPnyyonpxRRR:
 nop
 .data
-.globl b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRRR
+.weak b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRRR
 .type b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRRR,%object
 b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__113__irpgbe_onfrVA7naqebvq16NhqvbIbyhzrTebhcRAF_9nyybpngbeVF2_RRRQ2Ri
+.weak b__MAFg3__113__irpgbe_onfrVA7naqebvq16NhqvbIbyhzrTebhcRAF_9nyybpngbeVF2_RRRQ2Ri
 .type b__MAFg3__113__irpgbe_onfrVA7naqebvq16NhqvbIbyhzrTebhcRAF_9nyybpngbeVF2_RRRQ2Ri,%function
 b__MAFg3__113__irpgbe_onfrVA7naqebvq16NhqvbIbyhzrTebhcRAF_9nyybpngbeVF2_RRRQ2Ri:
 nop
@@ -4513,17 +4513,17 @@
 b__MA7naqebvq11NhqvbFlfgrz14ertvfgreRssrpgRCX19rssrpg_qrfpevcgbe_fvw15nhqvb_frffvba_gv:
 nop
 .data
-.globl b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_14onfvp_vbfgernzVpF2_RR
+.weak b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_14onfvp_vbfgernzVpF2_RR
 .type b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_14onfvp_vbfgernzVpF2_RR,%object
 b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_14onfvp_vbfgernzVpF2_RR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIA7naqebvq13VNhqvbSyvatre16PerngrGenpxVachgR
+.weak b__MGIA7naqebvq13VNhqvbSyvatre16PerngrGenpxVachgR
 .type b__MGIA7naqebvq13VNhqvbSyvatre16PerngrGenpxVachgR,%object
 b__MGIA7naqebvq13VNhqvbSyvatre16PerngrGenpxVachgR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGPA7naqebvq26OcNhqvbCbyvplFreivprPyvragR0_AF_11OcVagresnprVAF_25VNhqvbCbyvplFreivprPyvragRRR
+.weak b__MGPA7naqebvq26OcNhqvbCbyvplFreivprPyvragR0_AF_11OcVagresnprVAF_25VNhqvbCbyvplFreivprPyvragRRR
 .type b__MGPA7naqebvq26OcNhqvbCbyvplFreivprPyvragR0_AF_11OcVagresnprVAF_25VNhqvbCbyvplFreivprPyvragRRR,%object
 b__MGPA7naqebvq26OcNhqvbCbyvplFreivprPyvragR0_AF_11OcVagresnprVAF_25VNhqvbCbyvplFreivprPyvragRRR:
 .space __SIZEOF_POINTER__
@@ -4558,7 +4558,7 @@
 b__MAX7naqebvq10NhqvbGenpx21trgBevtvanyFnzcyrEngrRi:
 nop
 .text
-.globl b__MA7naqebvq11OaVagresnprVAF_7VRssrpgRR10baNfOvaqreRi
+.weak b__MA7naqebvq11OaVagresnprVAF_7VRssrpgRR10baNfOvaqreRi
 .type b__MA7naqebvq11OaVagresnprVAF_7VRssrpgRR10baNfOvaqreRi,%function
 b__MA7naqebvq11OaVagresnprVAF_7VRssrpgRR10baNfOvaqreRi:
 nop
@@ -4593,7 +4593,7 @@
 b__MGPA7naqebvq14OaNhqvbSyvatreR8_AF_7OOvaqreR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGPA7naqebvq14OcNhqvbSyvatreR0_AF_11OcVagresnprVAF_13VNhqvbSyvatreRRR
+.weak b__MGPA7naqebvq14OcNhqvbSyvatreR0_AF_11OcVagresnprVAF_13VNhqvbSyvatreRRR
 .type b__MGPA7naqebvq14OcNhqvbSyvatreR0_AF_11OcVagresnprVAF_13VNhqvbSyvatreRRR,%object
 b__MGPA7naqebvq14OcNhqvbSyvatreR0_AF_11OcVagresnprVAF_13VNhqvbSyvatreRRR:
 .space __SIZEOF_POINTER__
@@ -4613,22 +4613,22 @@
 b__MA7naqebvq11NhqvbFlfgrz24frgQrivprPbaarpgvbaFgngrRw24nhqvb_cbyvpl_qri_fgngr_gCXpF3_14nhqvb_sbezng_g:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVvA7naqebvq2jcVAF2_11NhqvbFlfgrz19NhqvbQrivprPnyyonpxRRRRRAF_19__znc_inyhr_pbzcnerVvF7_AF_4yrffVvRRYo1RRRAF_9nyybpngbeVF7_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVF7_CAF_11__gerr_abqrVF7_CiRRyRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVvA7naqebvq2jcVAF2_11NhqvbFlfgrz19NhqvbQrivprPnyyonpxRRRRRAF_19__znc_inyhr_pbzcnerVvF7_AF_4yrffVvRRYo1RRRAF_9nyybpngbeVF7_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVF7_CAF_11__gerr_abqrVF7_CiRRyRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVvA7naqebvq2jcVAF2_11NhqvbFlfgrz19NhqvbQrivprPnyyonpxRRRRRAF_19__znc_inyhr_pbzcnerVvF7_AF_4yrffVvRRYo1RRRAF_9nyybpngbeVF7_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVF7_CAF_11__gerr_abqrVF7_CiRRyRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVvA7naqebvq2jcVAF2_11NhqvbFlfgrz19NhqvbQrivprPnyyonpxRRRRRAF_19__znc_inyhr_pbzcnerVvF7_AF_4yrffVvRRYo1RRRAF_9nyybpngbeVF7_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVF7_CAF_11__gerr_abqrVF7_CiRRyRR:
 nop
 .data
-.globl b__MGIA7naqebvq17NhqvbVbQrfpevcgbeR
+.weak b__MGIA7naqebvq17NhqvbVbQrfpevcgbeR
 .type b__MGIA7naqebvq17NhqvbVbQrfpevcgbeR,%object
 b__MGIA7naqebvq17NhqvbVbQrfpevcgbeR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_22NhqvbZvkZngpuPevgrevbaRR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_22NhqvbZvkZngpuPevgrevbaRR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_22NhqvbZvkZngpuPevgrevbaRR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_22NhqvbZvkZngpuPevgrevbaRR7qb_pbclRCiCXiz:
 nop
 .data
-.globl b__MGPA7naqebvq12OcNhqvbGenpxR8_AF_9OcErsOnfrR
+.weak b__MGPA7naqebvq12OcNhqvbGenpxR8_AF_9OcErsOnfrR
 .type b__MGPA7naqebvq12OcNhqvbGenpxR8_AF_9OcErsOnfrR,%object
 b__MGPA7naqebvq12OcNhqvbGenpxR8_AF_9OcErsOnfrR:
 .space __SIZEOF_POINTER__
@@ -4713,12 +4713,12 @@
 b__MA7naqebvq19VNhqvbCbyvplFreivpr12qrsnhyg_vzcyR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIA7naqebvq14OcRssrpgPyvragR
+.weak b__MGIA7naqebvq14OcRssrpgPyvragR
 .type b__MGIA7naqebvq14OcRssrpgPyvragR,%object
 b__MGIA7naqebvq14OcRssrpgPyvragR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVssRRAF_19__znc_inyhr_pbzcnerVsF2_AF_4yrffVsRRYo1RRRAF_9nyybpngbeVF2_RRR7qrfgeblRCAF_11__gerr_abqrVF2_CiRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVssRRAF_19__znc_inyhr_pbzcnerVsF2_AF_4yrffVsRRYo1RRRAF_9nyybpngbeVF2_RRR7qrfgeblRCAF_11__gerr_abqrVF2_CiRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVssRRAF_19__znc_inyhr_pbzcnerVsF2_AF_4yrffVsRRYo1RRRAF_9nyybpngbeVF2_RRR7qrfgeblRCAF_11__gerr_abqrVF2_CiRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVssRRAF_19__znc_inyhr_pbzcnerVsF2_AF_4yrffVsRRYo1RRRAF_9nyybpngbeVF2_RRR7qrfgeblRCAF_11__gerr_abqrVF2_CiRR:
 nop
@@ -4728,12 +4728,12 @@
 b__MA7naqebvq11NhqvbRssrpgP1REXAF_8Fgevat16R:
 nop
 .data
-.globl b__MGIA7naqebvq20OcNhqvbSyvatrePyvragR
+.weak b__MGIA7naqebvq20OcNhqvbSyvatrePyvragR
 .type b__MGIA7naqebvq20OcNhqvbSyvatrePyvragR,%object
 b__MGIA7naqebvq20OcNhqvbSyvatrePyvragR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGGA7naqebvq20OcNhqvbCbyvplFreivprR
+.weak b__MGGA7naqebvq20OcNhqvbCbyvplFreivprR
 .type b__MGGA7naqebvq20OcNhqvbCbyvplFreivprR,%object
 b__MGGA7naqebvq20OcNhqvbCbyvplFreivprR:
 .space __SIZEOF_POINTER__
@@ -4743,17 +4743,17 @@
 b__MA7naqebvq11NhqvbFlfgrz18NhqvbSyvatrePyvrag18trgVachgOhssreFvmrRw14nhqvb_sbezng_gwCz:
 nop
 .text
-.globl b__MA7naqebvq2fcVAF_27FgngvpNhqvbGenpxPyvragCebklRR5pyrneRi
+.weak b__MA7naqebvq2fcVAF_27FgngvpNhqvbGenpxPyvragCebklRR5pyrneRi
 .type b__MA7naqebvq2fcVAF_27FgngvpNhqvbGenpxPyvragCebklRR5pyrneRi,%function
 b__MA7naqebvq2fcVAF_27FgngvpNhqvbGenpxPyvragCebklRR5pyrneRi:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR8qb_fcyngRCiCXiz:
 nop
 .data
-.globl b__MGIA7naqebvq5zrqvn13IbyhzrUnaqyreR
+.weak b__MGIA7naqebvq5zrqvn13IbyhzrUnaqyreR
 .type b__MGIA7naqebvq5zrqvn13IbyhzrUnaqyreR,%object
 b__MGIA7naqebvq5zrqvn13IbyhzrUnaqyreR:
 .space __SIZEOF_POINTER__
@@ -4798,7 +4798,7 @@
 b__MGIA7naqebvq13VNhqvbSyvatreR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq6Cnepry21jevgrCneprynoyrIrpgbeVAF_5zrqvn14ZvpebcubarVasbRRRvEXAFg3__16irpgbeVG_AF4_9nyybpngbeVF6_RRRR
+.weak b__MA7naqebvq6Cnepry21jevgrCneprynoyrIrpgbeVAF_5zrqvn14ZvpebcubarVasbRRRvEXAFg3__16irpgbeVG_AF4_9nyybpngbeVF6_RRRR
 .type b__MA7naqebvq6Cnepry21jevgrCneprynoyrIrpgbeVAF_5zrqvn14ZvpebcubarVasbRRRvEXAFg3__16irpgbeVG_AF4_9nyybpngbeVF6_RRRR,%function
 b__MA7naqebvq6Cnepry21jevgrCneprynoyrIrpgbeVAF_5zrqvn14ZvpebcubarVasbRRRvEXAFg3__16irpgbeVG_AF4_9nyybpngbeVF6_RRRR:
 nop
@@ -4808,7 +4808,7 @@
 b__MA7naqebvq11NhqvbErpbeq20trgNpgvirZvpebcubarfRCAFg3__16irpgbeVAF_5zrqvn14ZvpebcubarVasbRAF1_9nyybpngbeVF4_RRRR:
 nop
 .data
-.globl b__MGIA7naqebvq11NhqvbPyvragR
+.weak b__MGIA7naqebvq11NhqvbPyvragR
 .type b__MGIA7naqebvq11NhqvbPyvragR,%object
 b__MGIA7naqebvq11NhqvbPyvragR:
 .space __SIZEOF_POINTER__
@@ -4818,7 +4818,7 @@
 b__MAX7naqebvq10NhqvbGenpx23trgCbfvgvbaHcqngrCrevbqRCw:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_8NhqvbZvkRR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_8NhqvbZvkRR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_8NhqvbZvkRR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_8NhqvbZvkRR16qb_zbir_onpxjneqRCiCXiz:
 nop
@@ -4833,7 +4833,7 @@
 b__MA7naqebvq11NhqvbFlfgrz16trgBhgchgYngraplRCw19nhqvb_fgernz_glcr_g:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVvA7naqebvq2jcVAF2_11NhqvbFlfgrz19NhqvbQrivprPnyyonpxRRRRRAF_19__znc_inyhr_pbzcnerVvF7_AF_4yrffVvRRYo1RRRAF_9nyybpngbeVF7_RRR7qrfgeblRCAF_11__gerr_abqrVF7_CiRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVvA7naqebvq2jcVAF2_11NhqvbFlfgrz19NhqvbQrivprPnyyonpxRRRRRAF_19__znc_inyhr_pbzcnerVvF7_AF_4yrffVvRRYo1RRRAF_9nyybpngbeVF7_RRR7qrfgeblRCAF_11__gerr_abqrVF7_CiRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVvA7naqebvq2jcVAF2_11NhqvbFlfgrz19NhqvbQrivprPnyyonpxRRRRRAF_19__znc_inyhr_pbzcnerVvF7_AF_4yrffVvRRYo1RRRAF_9nyybpngbeVF7_RRR7qrfgeblRCAF_11__gerr_abqrVF7_CiRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVvA7naqebvq2jcVAF2_11NhqvbFlfgrz19NhqvbQrivprPnyyonpxRRRRRAF_19__znc_inyhr_pbzcnerVvF7_AF_4yrffVvRRYo1RRRAF_9nyybpngbeVF7_RRR7qrfgeblRCAF_11__gerr_abqrVF7_CiRR:
 nop
@@ -4868,7 +4868,7 @@
 b__MGPA7naqebvq11NhqvbFlfgrz24NhqvbCbyvplFreivprPyvragR16_AF_7OOvaqreR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIA7naqebvq6IrpgbeVAF_8NhqvbZvkRRR
+.weak b__MGIA7naqebvq6IrpgbeVAF_8NhqvbZvkRRR
 .type b__MGIA7naqebvq6IrpgbeVAF_8NhqvbZvkRRR,%object
 b__MGIA7naqebvq6IrpgbeVAF_8NhqvbZvkRRR:
 .space __SIZEOF_POINTER__
@@ -4933,7 +4933,7 @@
 b__MA7naqebvq10NhqvbGenpxQ1Ri:
 nop
 .data
-.globl b__MGGA7naqebvq12OcNhqvbGenpxR
+.weak b__MGGA7naqebvq12OcNhqvbGenpxR
 .type b__MGGA7naqebvq12OcNhqvbGenpxR,%object
 b__MGGA7naqebvq12OcNhqvbGenpxR:
 .space __SIZEOF_POINTER__
@@ -4973,12 +4973,12 @@
 b__MA7naqebvq11NhqvbFlfgrz17eryrnfrNhqvbCngpuRv:
 nop
 .data
-.globl b__MGPA7naqebvq14OcNhqvbSyvatreR8_AF_9OcErsOnfrR
+.weak b__MGPA7naqebvq14OcNhqvbSyvatreR8_AF_9OcErsOnfrR
 .type b__MGPA7naqebvq14OcNhqvbSyvatreR8_AF_9OcErsOnfrR,%object
 b__MGPA7naqebvq14OcNhqvbSyvatreR8_AF_9OcErsOnfrR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVgCAF_13GbarTrarengbe13JnirTrarengbeRRRR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVgCAF_13GbarTrarengbe13JnirTrarengbeRRRR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVgCAF_13GbarTrarengbe13JnirTrarengbeRRRR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVgCAF_13GbarTrarengbe13JnirTrarengbeRRRR8qb_fcyngRCiCXiz:
 nop
@@ -5003,7 +5003,7 @@
 b__MGPA7naqebvq5zrqvn13OcNhqvbErpbeqR0_AF0_12VNhqvbErpbeqR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
+.weak b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
 .type b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_,%function
 b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_:
 nop
diff --git a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_003.S b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_003.S
index 9a4c31c..6b095b4 100644
--- a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_003.S
+++ b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_003.S
@@ -8,12 +8,12 @@
 b__MA7naqebvq4onfr10YbtZrffntrP1RCXpwAF0_5YbtVqRAF0_11YbtFrirevglRF3_v:
 nop
 .text
-.globl b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9conpxsnvyRv
+.weak b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9conpxsnvyRv
 .type b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9conpxsnvyRv,%function
 b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9conpxsnvyRv:
 nop
 .text
-.globl b__MA3szg2i68vagreany12sbezng_sybngVqRRvG_vAF1_11sybng_fcrpfREAF1_6ohssreVpRR
+.weak b__MA3szg2i68vagreany12sbezng_sybngVqRRvG_vAF1_11sybng_fcrpfREAF1_6ohssreVpRR
 .type b__MA3szg2i68vagreany12sbezng_sybngVqRRvG_vAF1_11sybng_fcrpfREAF1_6ohssreVpRR,%function
 b__MA3szg2i68vagreany12sbezng_sybngVqRRvG_vAF1_11sybng_fcrpfREAF1_6ohssreVpRR:
 nop
@@ -33,17 +33,17 @@
 b__MA7naqebvq4onfr23JnvgSbeCebcreglPerngvbaREXAFg3__112onfvp_fgevatVpAF1_11pune_genvgfVpRRAF1_9nyybpngbeVpRRRRAF1_6puebab8qhengvbaVkAF1_5engvbVYy1RYy1000RRRRR:
 nop
 .text
-.globl b__MA3szg2i68vagreany14facevags_sybngVrRRvG_vAF1_11sybng_fcrpfREAF1_6ohssreVpRR
+.weak b__MA3szg2i68vagreany14facevags_sybngVrRRvG_vAF1_11sybng_fcrpfREAF1_6ohssreVpRR
 .type b__MA3szg2i68vagreany14facevags_sybngVrRRvG_vAF1_11sybng_fcrpfREAF1_6ohssreVpRR,%function
 b__MA3szg2i68vagreany14facevags_sybngVrRRvG_vAF1_11sybng_fcrpfREAF1_6ohssreVpRR:
 nop
 .text
-.globl b__MAXFg3__110__shapgvba6__shapVCSiCXpRAF_9nyybpngbeVF5_RRF4_R7__pybarRi
+.weak b__MAXFg3__110__shapgvba6__shapVCSiCXpRAF_9nyybpngbeVF5_RRF4_R7__pybarRi
 .type b__MAXFg3__110__shapgvba6__shapVCSiCXpRAF_9nyybpngbeVF5_RRF4_R7__pybarRi,%function
 b__MAXFg3__110__shapgvba6__shapVCSiCXpRAF_9nyybpngbeVF5_RRF4_R7__pybarRi:
 nop
 .text
-.globl b__MAFg3__110__shapgvba6__shapVA7naqebvq4onfr10YbtqYbttreRAF_9nyybpngbeVF4_RRSiAF3_5YbtVqRAF3_11YbtFrirevglRCXpFN_wFN_RR7qrfgeblRi
+.weak b__MAFg3__110__shapgvba6__shapVA7naqebvq4onfr10YbtqYbttreRAF_9nyybpngbeVF4_RRSiAF3_5YbtVqRAF3_11YbtFrirevglRCXpFN_wFN_RR7qrfgeblRi
 .type b__MAFg3__110__shapgvba6__shapVA7naqebvq4onfr10YbtqYbttreRAF_9nyybpngbeVF4_RRSiAF3_5YbtVqRAF3_11YbtFrirevglRCXpFN_wFN_RR7qrfgeblRi,%function
 b__MAFg3__110__shapgvba6__shapVA7naqebvq4onfr10YbtqYbttreRAF_9nyybpngbeVF4_RRSiAF3_5YbtVqRAF3_11YbtFrirevglRCXpFN_wFN_RR7qrfgeblRi:
 nop
@@ -58,7 +58,7 @@
 b__MA7naqebvq4onfr15TrgObbyCebcreglREXAFg3__112onfvp_fgevatVpAF1_11pune_genvgfVpRRAF1_9nyybpngbeVpRRRRo:
 nop
 .data
-.globl b__MGIA3szg2i619onfvp_zrzbel_ohssreVpYz500RAFg3__19nyybpngbeVpRRRR
+.weak b__MGIA3szg2i619onfvp_zrzbel_ohssreVpYz500RAFg3__19nyybpngbeVpRRRR
 .type b__MGIA3szg2i619onfvp_zrzbel_ohssreVpYz500RAFg3__19nyybpngbeVpRRRR,%object
 b__MGIA3szg2i619onfvp_zrzbel_ohssreVpYz500RAFg3__19nyybpngbeVpRRRR:
 .space __SIZEOF_POINTER__
@@ -73,12 +73,12 @@
 b__MA7naqebvq4onfr17FpbcrqYbtFrirevglQ1Ri:
 nop
 .text
-.globl b__MAXFg3__110__shapgvba6__shapVCSiCXpRAF_9nyybpngbeVF5_RRF4_R7__pybarRCAF0_6__onfrVF4_RR
+.weak b__MAXFg3__110__shapgvba6__shapVCSiCXpRAF_9nyybpngbeVF5_RRF4_R7__pybarRCAF0_6__onfrVF4_RR
 .type b__MAXFg3__110__shapgvba6__shapVCSiCXpRAF_9nyybpngbeVF5_RRF4_R7__pybarRCAF0_6__onfrVF4_RR,%function
 b__MAXFg3__110__shapgvba6__shapVCSiCXpRAF_9nyybpngbeVF5_RRF4_R7__pybarRCAF0_6__onfrVF4_RR:
 nop
 .text
-.globl b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9haqresybjRi
+.weak b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9haqresybjRi
 .type b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9haqresybjRi,%function
 b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9haqresybjRi:
 nop
@@ -88,7 +88,7 @@
 b__MA7naqebvq4onfr20FgnegfJvguVtaberPnfrRAFg3__117onfvp_fgevat_ivrjVpAF1_11pune_genvgfVpRRRRF5_:
 nop
 .text
-.globl b__MA3szg2i68vagreany7net_zncVAF0_20onfvp_sbezng_pbagrkgVAFg3__120onpx_vafreg_vgrengbeVAF1_6ohssreVjRRRRjRRR4vavgREXAF0_17onfvp_sbezng_netfVF9_RR
+.weak b__MA3szg2i68vagreany7net_zncVAF0_20onfvp_sbezng_pbagrkgVAFg3__120onpx_vafreg_vgrengbeVAF1_6ohssreVjRRRRjRRR4vavgREXAF0_17onfvp_sbezng_netfVF9_RR
 .type b__MA3szg2i68vagreany7net_zncVAF0_20onfvp_sbezng_pbagrkgVAFg3__120onpx_vafreg_vgrengbeVAF1_6ohssreVjRRRRjRRR4vavgREXAF0_17onfvp_sbezng_netfVF9_RR,%function
 b__MA3szg2i68vagreany7net_zncVAF0_20onfvp_sbezng_pbagrkgVAFg3__120onpx_vafreg_vgrengbeVAF1_6ohssreVjRRRRjRRR4vavgREXAF0_17onfvp_sbezng_netfVF9_RR:
 nop
@@ -108,7 +108,7 @@
 b__MA7naqebvq4onfr8ErnycnguREXAFg3__112onfvp_fgevatVpAF1_11pune_genvgfVpRRAF1_9nyybpngbeVpRRRRCF7_:
 nop
 .text
-.globl b__MAFg3__110__shapgvba6__shapVCSiCXpRAF_9nyybpngbeVF5_RRF4_RpyRBF3_
+.weak b__MAFg3__110__shapgvba6__shapVCSiCXpRAF_9nyybpngbeVF5_RRF4_RpyRBF3_
 .type b__MAFg3__110__shapgvba6__shapVCSiCXpRAF_9nyybpngbeVF5_RRF4_RpyRBF3_,%function
 b__MAFg3__110__shapgvba6__shapVCSiCXpRAF_9nyybpngbeVF5_RRF4_RpyRBF3_:
 nop
@@ -138,7 +138,7 @@
 b__MA3szg2i68vagreany12sjevgr_shyylRCXizzC7__fSVYR:
 nop
 .text
-.globl b__MA7naqebvq4onfr4WbvaVAFg3__16irpgbeVAF2_12onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRAF7_VF9_RRRREXF9_RRF9_EXG_G0_
+.weak b__MA7naqebvq4onfr4WbvaVAFg3__16irpgbeVAF2_12onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRAF7_VF9_RRRREXF9_RRF9_EXG_G0_
 .type b__MA7naqebvq4onfr4WbvaVAFg3__16irpgbeVAF2_12onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRAF7_VF9_RRRREXF9_RRF9_EXG_G0_,%function
 b__MA7naqebvq4onfr4WbvaVAFg3__16irpgbeVAF2_12onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRAF7_VF9_RRRREXF9_RRF9_EXG_G0_:
 nop
@@ -163,7 +163,7 @@
 b__MA7naqebvq4onfr10YbtqYbttreP1RAF0_5YbtVqR:
 nop
 .text
-.globl b__MA7naqebvq4onfr14TrgVagCebcreglVvRRG_EXAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRRF2_F2_F2_
+.weak b__MA7naqebvq4onfr14TrgVagCebcreglVvRRG_EXAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRRF2_F2_F2_
 .type b__MA7naqebvq4onfr14TrgVagCebcreglVvRRG_EXAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRRF2_F2_F2_,%function
 b__MA7naqebvq4onfr14TrgVagCebcreglVvRRG_EXAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRRF2_F2_F2_:
 nop
@@ -193,7 +193,7 @@
 b__MA7naqebvq4onfr12FgevatCevagsRCXpm:
 nop
 .data
-.globl b__MA3szg2i68vagreany10onfvp_qngnViR23mreb_be_cbjref_bs_10_64R
+.weak b__MA3szg2i68vagreany10onfvp_qngnViR23mreb_be_cbjref_bs_10_64R
 .type b__MA3szg2i68vagreany10onfvp_qngnViR23mreb_be_cbjref_bs_10_64R,%object
 b__MA3szg2i68vagreany10onfvp_qngnViR23mreb_be_cbjref_bs_10_64R:
 .space __SIZEOF_POINTER__
@@ -223,7 +223,7 @@
 b__MA3szg2i619sbezng_flfgrz_reebeREAF0_8vagreany6ohssreVpRRvAF0_17onfvp_fgevat_ivrjVpRR:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq4onfr14havdhr_sq_vzcyVAF2_13QrsnhygPybfreRRRAF_9nyybpngbeVF5_RRR26__fjnc_bhg_pvephyne_ohssreREAF_14__fcyvg_ohssreVF5_EF7_RR
+.weak b__MAFg3__16irpgbeVA7naqebvq4onfr14havdhr_sq_vzcyVAF2_13QrsnhygPybfreRRRAF_9nyybpngbeVF5_RRR26__fjnc_bhg_pvephyne_ohssreREAF_14__fcyvg_ohssreVF5_EF7_RR
 .type b__MAFg3__16irpgbeVA7naqebvq4onfr14havdhr_sq_vzcyVAF2_13QrsnhygPybfreRRRAF_9nyybpngbeVF5_RRR26__fjnc_bhg_pvephyne_ohssreREAF_14__fcyvg_ohssreVF5_EF7_RR,%function
 b__MAFg3__16irpgbeVA7naqebvq4onfr14havdhr_sq_vzcyVAF2_13QrsnhygPybfreRRRAF_9nyybpngbeVF5_RRR26__fjnc_bhg_pvephyne_ohssreREAF_14__fcyvg_ohssreVF5_EF7_RR:
 nop
@@ -238,12 +238,12 @@
 b__MA7naqebvq4onfr15JnvgSbeCebcreglREXAFg3__112onfvp_fgevatVpAF1_11pune_genvgfVpRRAF1_9nyybpngbeVpRRRRF9_AF1_6puebab8qhengvbaVkAF1_5engvbVYy1RYy1000RRRRR:
 nop
 .text
-.globl b__MA7naqebvq4onfr9CnefrHvagVwRRoCXpCG_F4_o
+.weak b__MA7naqebvq4onfr9CnefrHvagVwRRoCXpCG_F4_o
 .type b__MA7naqebvq4onfr9CnefrHvagVwRRoCXpCG_F4_o,%function
 b__MA7naqebvq4onfr9CnefrHvagVwRRoCXpCG_F4_o:
 nop
 .text
-.globl b__MA7naqebvq4onfr4WbvaVAFg3__16irpgbeVCXpAF2_9nyybpngbeVF5_RRRREXAF2_12onfvp_fgevatVpAF2_11pune_genvgfVpRRAF6_VpRRRRRRFQ_EXG_G0_
+.weak b__MA7naqebvq4onfr4WbvaVAFg3__16irpgbeVCXpAF2_9nyybpngbeVF5_RRRREXAF2_12onfvp_fgevatVpAF2_11pune_genvgfVpRRAF6_VpRRRRRRFQ_EXG_G0_
 .type b__MA7naqebvq4onfr4WbvaVAFg3__16irpgbeVCXpAF2_9nyybpngbeVF5_RRRREXAF2_12onfvp_fgevatVpAF2_11pune_genvgfVpRRAF6_VpRRRRRRFQ_EXG_G0_,%function
 b__MA7naqebvq4onfr4WbvaVAFg3__16irpgbeVCXpAF2_9nyybpngbeVF5_RRRREXAF2_12onfvp_fgevatVpAF2_11pune_genvgfVpRRAF6_VpRRRRRRFQ_EXG_G0_:
 nop
@@ -253,7 +253,7 @@
 b__MA13PncgherqFgqSqQ2Ri:
 nop
 .text
-.globl b__MA3szg2i619onfvp_zrzbel_ohssreVpYz500RAFg3__19nyybpngbeVpRRR4tebjRz
+.weak b__MA3szg2i619onfvp_zrzbel_ohssreVpYz500RAFg3__19nyybpngbeVpRRR4tebjRz
 .type b__MA3szg2i619onfvp_zrzbel_ohssreVpYz500RAFg3__19nyybpngbeVpRRR4tebjRz,%function
 b__MA3szg2i619onfvp_zrzbel_ohssreVpYz500RAFg3__19nyybpngbeVpRRR4tebjRz:
 nop
@@ -278,12 +278,12 @@
 b__MA7naqebvq4onfr15CnefrArgNqqerffREXAFg3__112onfvp_fgevatVpAF1_11pune_genvgfVpRRAF1_9nyybpngbeVpRRRRCF7_CvFN_FN_:
 nop
 .text
-.globl b__MAFg3__110__shapgvba6__shapVA7naqebvq4onfr10YbtqYbttreRAF_9nyybpngbeVF4_RRSiAF3_5YbtVqRAF3_11YbtFrirevglRCXpFN_wFN_RRpyRBF7_BF8_BFN_FS_BwFS_
+.weak b__MAFg3__110__shapgvba6__shapVA7naqebvq4onfr10YbtqYbttreRAF_9nyybpngbeVF4_RRSiAF3_5YbtVqRAF3_11YbtFrirevglRCXpFN_wFN_RRpyRBF7_BF8_BFN_FS_BwFS_
 .type b__MAFg3__110__shapgvba6__shapVA7naqebvq4onfr10YbtqYbttreRAF_9nyybpngbeVF4_RRSiAF3_5YbtVqRAF3_11YbtFrirevglRCXpFN_wFN_RRpyRBF7_BF8_BFN_FS_BwFS_,%function
 b__MAFg3__110__shapgvba6__shapVA7naqebvq4onfr10YbtqYbttreRAF_9nyybpngbeVF4_RRSiAF3_5YbtVqRAF3_11YbtFrirevglRCXpFN_wFN_RRpyRBF7_BF8_BFN_FS_BwFS_:
 nop
 .data
-.globl b__MGIAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
+.weak b__MGIAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
 .type b__MGIAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR,%object
 b__MGIAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR:
 .space __SIZEOF_POINTER__
@@ -293,7 +293,7 @@
 b__MA7naqebvq4onfr10ZnccrqSvyrQ1Ri:
 nop
 .text
-.globl b__MA7naqebvq4onfr9CnefrHvagVgRRoCXpCG_F4_o
+.weak b__MA7naqebvq4onfr9CnefrHvagVgRRoCXpCG_F4_o
 .type b__MA7naqebvq4onfr9CnefrHvagVgRRoCXpCG_F4_o,%function
 b__MA7naqebvq4onfr9CnefrHvagVgRRoCXpCG_F4_o:
 nop
@@ -313,7 +313,7 @@
 b__MA7naqebvq4onfr17TrgRkrphgnoyrCnguRi:
 nop
 .text
-.globl b__MA7naqebvq4onfr14TrgVagCebcreglVnRRG_EXAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRRF2_F2_F2_
+.weak b__MA7naqebvq4onfr14TrgVagCebcreglVnRRG_EXAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRRF2_F2_F2_
 .type b__MA7naqebvq4onfr14TrgVagCebcreglVnRRG_EXAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRRF2_F2_F2_,%function
 b__MA7naqebvq4onfr14TrgVagCebcreglVnRRG_EXAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRRF2_F2_F2_:
 nop
@@ -328,7 +328,7 @@
 b__MA3szg2i68vagreany12pbhag_qvtvgfVYw4RAF1_16snyyonpx_hvagcgeRRRvG0_:
 nop
 .text
-.globl b__MA3szg2i68vagreany12sbezng_sybngVrRRvG_vAF1_11sybng_fcrpfREAF1_6ohssreVpRR
+.weak b__MA3szg2i68vagreany12sbezng_sybngVrRRvG_vAF1_11sybng_fcrpfREAF1_6ohssreVpRR
 .type b__MA3szg2i68vagreany12sbezng_sybngVrRRvG_vAF1_11sybng_fcrpfREAF1_6ohssreVpRR,%function
 b__MA3szg2i68vagreany12sbezng_sybngVrRRvG_vAF1_11sybng_fcrpfREAF1_6ohssreVpRR:
 nop
@@ -348,17 +348,17 @@
 b__MA7naqebvq4onfr17JevgrFgevatGbSvyrREXAFg3__112onfvp_fgevatVpAF1_11pune_genvgfVpRRAF1_9nyybpngbeVpRRRRF9_wwwo:
 nop
 .data
-.globl b__MA3szg2i68vagreany10onfvp_qngnViR18cbj10_fvtavsvpnaqfR
+.weak b__MA3szg2i68vagreany10onfvp_qngnViR18cbj10_fvtavsvpnaqfR
 .type b__MA3szg2i68vagreany10onfvp_qngnViR18cbj10_fvtavsvpnaqfR,%object
 b__MA3szg2i68vagreany10onfvp_qngnViR18cbj10_fvtavsvpnaqfR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MA3szg2i68vagreany10onfvp_qngnViR23mreb_be_cbjref_bs_10_32R
+.weak b__MA3szg2i68vagreany10onfvp_qngnViR23mreb_be_cbjref_bs_10_32R
 .type b__MA3szg2i68vagreany10onfvp_qngnViR23mreb_be_cbjref_bs_10_32R,%object
 b__MA3szg2i68vagreany10onfvp_qngnViR23mreb_be_cbjref_bs_10_32R:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA3szg2i68vagreany6ohssreVpR6nccraqVpRRiCXG_F7_
+.weak b__MA3szg2i68vagreany6ohssreVpR6nccraqVpRRiCXG_F7_
 .type b__MA3szg2i68vagreany6ohssreVpR6nccraqVpRRiCXG_F7_,%function
 b__MA3szg2i68vagreany6ohssreVpR6nccraqVpRRiCXG_F7_:
 nop
@@ -368,7 +368,7 @@
 b__MA13GrzcbenelSvyrP2Ri:
 nop
 .text
-.globl b__MAXFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR3fgeRi
+.weak b__MAXFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR3fgeRi
 .type b__MAXFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR3fgeRi,%function
 b__MAXFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR3fgeRi:
 nop
@@ -378,17 +378,17 @@
 b__MA7naqebvq4onfr11FrgCebcreglREXAFg3__112onfvp_fgevatVpAF1_11pune_genvgfVpRRAF1_9nyybpngbeVpRRRRF9_:
 nop
 .text
-.globl b__MA3szg2i68vagreany14jevgr_rkcbaragVjAF1_17pbhagvat_vgrengbeRRRG0_vF4_
+.weak b__MA3szg2i68vagreany14jevgr_rkcbaragVjAF1_17pbhagvat_vgrengbeRRRG0_vF4_
 .type b__MA3szg2i68vagreany14jevgr_rkcbaragVjAF1_17pbhagvat_vgrengbeRRRG0_vF4_,%function
 b__MA3szg2i68vagreany14jevgr_rkcbaragVjAF1_17pbhagvat_vgrengbeRRRG0_vF4_:
 nop
 .text
-.globl b__MAFg3__124__chg_punenpgre_frdhraprVpAF_11pune_genvgfVpRRRREAF_13onfvp_bfgernzVG_G0_RRF7_CXF4_z
+.weak b__MAFg3__124__chg_punenpgre_frdhraprVpAF_11pune_genvgfVpRRRREAF_13onfvp_bfgernzVG_G0_RRF7_CXF4_z
 .type b__MAFg3__124__chg_punenpgre_frdhraprVpAF_11pune_genvgfVpRRRREAF_13onfvp_bfgernzVG_G0_RRF7_CXF4_z,%function
 b__MAFg3__124__chg_punenpgre_frdhraprVpAF_11pune_genvgfVpRRRREAF_13onfvp_bfgernzVG_G0_RRF7_CXF4_z:
 nop
 .data
-.globl b__MA3szg2i68vagreany10onfvp_qngnViR16sbertebhaq_pbybeR
+.weak b__MA3szg2i68vagreany10onfvp_qngnViR16sbertebhaq_pbybeR
 .type b__MA3szg2i68vagreany10onfvp_qngnViR16sbertebhaq_pbybeR,%object
 b__MA3szg2i68vagreany10onfvp_qngnViR16sbertebhaq_pbybeR:
 .space __SIZEOF_POINTER__
@@ -398,12 +398,12 @@
 b__MA7naqebvq4onfr10YbtZrffntr7YbtYvarRCXpwAF0_5YbtVqRAF0_11YbtFrirevglRF3_F3_:
 nop
 .text
-.globl b__MA7naqebvq4onfr9CnefrHvagVzRRoCXpCG_F4_o
+.weak b__MA7naqebvq4onfr9CnefrHvagVzRRoCXpCG_F4_o
 .type b__MA7naqebvq4onfr9CnefrHvagVzRRoCXpCG_F4_o,%function
 b__MA7naqebvq4onfr9CnefrHvagVzRRoCXpCG_F4_o:
 nop
 .text
-.globl b__MA3szg2i68vagreany14jevgr_rkcbaragVjCjRRG0_vF4_
+.weak b__MA3szg2i68vagreany14jevgr_rkcbaragVjCjRRG0_vF4_
 .type b__MA3szg2i68vagreany14jevgr_rkcbaragVjCjRRG0_vF4_,%function
 b__MA3szg2i68vagreany14jevgr_rkcbaragVjCjRRG0_vF4_:
 nop
@@ -413,12 +413,12 @@
 b__MA13GrzcbenelSvyrQ2Ri:
 nop
 .data
-.globl b__MGIAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
+.weak b__MGIAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
 .type b__MGIAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR,%object
 b__MGIAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq4onfr14TrgVagCebcreglVyRRG_EXAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRRF2_F2_F2_
+.weak b__MA7naqebvq4onfr14TrgVagCebcreglVyRRG_EXAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRRF2_F2_F2_
 .type b__MA7naqebvq4onfr14TrgVagCebcreglVyRRG_EXAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRRF2_F2_F2_,%function
 b__MA7naqebvq4onfr14TrgVagCebcreglVyRRG_EXAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRRF2_F2_F2_:
 nop
@@ -443,7 +443,7 @@
 b__MA7naqebvq4onfr9ErnqShyylRvCiz:
 nop
 .text
-.globl b__MA7naqebvq4onfr4WbvaVAFg3__16irpgbeVCXpAF2_9nyybpngbeVF5_RRRRpRRAF2_12onfvp_fgevatVpAF2_11pune_genvgfVpRRAF6_VpRRRREXG_G0_
+.weak b__MA7naqebvq4onfr4WbvaVAFg3__16irpgbeVCXpAF2_9nyybpngbeVF5_RRRRpRRAF2_12onfvp_fgevatVpAF2_11pune_genvgfVpRRAF6_VpRRRREXG_G0_
 .type b__MA7naqebvq4onfr4WbvaVAFg3__16irpgbeVCXpAF2_9nyybpngbeVF5_RRRRpRRAF2_12onfvp_fgevatVpAF2_11pune_genvgfVpRRAF6_VpRRRREXG_G0_,%function
 b__MA7naqebvq4onfr4WbvaVAFg3__16irpgbeVCXpAF2_9nyybpngbeVF5_RRRRpRRAF2_12onfvp_fgevatVpAF2_11pune_genvgfVpRRAF6_VpRRRREXG_G0_:
 nop
@@ -463,7 +463,7 @@
 b__MA7naqebvq4onfr10ZnccrqSvyrP1RBF1_:
 nop
 .text
-.globl b__MA7naqebvq4onfr15TrgHvagCebcreglVuRRG_EXAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRRF2_F2_
+.weak b__MA7naqebvq4onfr15TrgHvagCebcreglVuRRG_EXAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRRF2_F2_
 .type b__MA7naqebvq4onfr15TrgHvagCebcreglVuRRG_EXAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRRF2_F2_,%function
 b__MA7naqebvq4onfr15TrgHvagCebcreglVuRRG_EXAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRRF2_F2_:
 nop
@@ -473,7 +473,7 @@
 b__MA7naqebvq4onfr13FgevatErcynprRAFg3__117onfvp_fgevat_ivrjVpAF1_11pune_genvgfVpRRRRF5_F5_o:
 nop
 .text
-.globl b__MA3szg2i619onfvp_zrzbel_ohssreVjYz500RAFg3__19nyybpngbeVjRRR4tebjRz
+.weak b__MA3szg2i619onfvp_zrzbel_ohssreVjYz500RAFg3__19nyybpngbeVjRRR4tebjRz
 .type b__MA3szg2i619onfvp_zrzbel_ohssreVjYz500RAFg3__19nyybpngbeVjRRR4tebjRz,%function
 b__MA3szg2i619onfvp_zrzbel_ohssreVjYz500RAFg3__19nyybpngbeVjRRR4tebjRz:
 nop
@@ -483,7 +483,7 @@
 b__MA7naqebvq4onfr14ErnqSqGbFgevatRvCAFg3__112onfvp_fgevatVpAF1_11pune_genvgfVpRRAF1_9nyybpngbeVpRRRR:
 nop
 .text
-.globl b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR8biresybjRv
+.weak b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR8biresybjRv
 .type b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR8biresybjRv,%function
 b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR8biresybjRv:
 nop
@@ -503,12 +503,12 @@
 b__MA7naqebvq4onfr7QveanzrREXAFg3__112onfvp_fgevatVpAF1_11pune_genvgfVpRRAF1_9nyybpngbeVpRRRR:
 nop
 .text
-.globl b__MA3szg2i68vagreany7net_zncVAF0_20onfvp_sbezng_pbagrkgVAFg3__120onpx_vafreg_vgrengbeVAF1_6ohssreVpRRRRpRRR4vavgREXAF0_17onfvp_sbezng_netfVF9_RR
+.weak b__MA3szg2i68vagreany7net_zncVAF0_20onfvp_sbezng_pbagrkgVAFg3__120onpx_vafreg_vgrengbeVAF1_6ohssreVpRRRRpRRR4vavgREXAF0_17onfvp_sbezng_netfVF9_RR
 .type b__MA3szg2i68vagreany7net_zncVAF0_20onfvp_sbezng_pbagrkgVAFg3__120onpx_vafreg_vgrengbeVAF1_6ohssreVpRRRRpRRR4vavgREXAF0_17onfvp_sbezng_netfVF9_RR,%function
 b__MA3szg2i68vagreany7net_zncVAF0_20onfvp_sbezng_pbagrkgVAFg3__120onpx_vafreg_vgrengbeVAF1_6ohssreVpRRRRpRRR4vavgREXAF0_17onfvp_sbezng_netfVF9_RR:
 nop
 .text
-.globl b__MA3szg2i68vagreany7isbezngVjRRAFg3__112onfvp_fgevatVG_AF3_11pune_genvgfVF5_RRAF3_9nyybpngbeVF5_RRRRAF0_17onfvp_fgevat_ivrjVF5_RRAF0_17onfvp_sbezng_netfVAF0_20onfvp_sbezng_pbagrkgVAF3_20onpx_vafreg_vgrengbeVAF1_6ohssreVF5_RRRRF5_RRRR
+.weak b__MA3szg2i68vagreany7isbezngVjRRAFg3__112onfvp_fgevatVG_AF3_11pune_genvgfVF5_RRAF3_9nyybpngbeVF5_RRRRAF0_17onfvp_fgevat_ivrjVF5_RRAF0_17onfvp_sbezng_netfVAF0_20onfvp_sbezng_pbagrkgVAF3_20onpx_vafreg_vgrengbeVAF1_6ohssreVF5_RRRRF5_RRRR
 .type b__MA3szg2i68vagreany7isbezngVjRRAFg3__112onfvp_fgevatVG_AF3_11pune_genvgfVF5_RRAF3_9nyybpngbeVF5_RRRRAF0_17onfvp_fgevat_ivrjVF5_RRAF0_17onfvp_sbezng_netfVAF0_20onfvp_sbezng_pbagrkgVAF3_20onpx_vafreg_vgrengbeVAF1_6ohssreVF5_RRRRF5_RRRR,%function
 b__MA3szg2i68vagreany7isbezngVjRRAFg3__112onfvp_fgevatVG_AF3_11pune_genvgfVF5_RRAF3_9nyybpngbeVF5_RRRRAF0_17onfvp_fgevat_ivrjVF5_RRAF0_17onfvp_sbezng_netfVAF0_20onfvp_sbezng_pbagrkgVAF3_20onpx_vafreg_vgrengbeVAF1_6ohssreVF5_RRRRF5_RRRR:
 nop
@@ -518,12 +518,12 @@
 b__MA7naqebvq4onfr15JevgrFgevatGbSqREXAFg3__112onfvp_fgevatVpAF1_11pune_genvgfVpRRAF1_9nyybpngbeVpRRRRv:
 nop
 .text
-.globl b__MA3szg2i68vagreany10ybpnyr_ersP2VAFg3__16ybpnyrRRREXG_
+.weak b__MA3szg2i68vagreany10ybpnyr_ersP2VAFg3__16ybpnyrRRREXG_
 .type b__MA3szg2i68vagreany10ybpnyr_ersP2VAFg3__16ybpnyrRRREXG_,%function
 b__MA3szg2i68vagreany10ybpnyr_ersP2VAFg3__16ybpnyrRRREXG_:
 nop
 .text
-.globl b__MA3szg2i68vagreany18qrpvzny_cbvag_vzcyVjRRG_AF1_10ybpnyr_ersR
+.weak b__MA3szg2i68vagreany18qrpvzny_cbvag_vzcyVjRRG_AF1_10ybpnyr_ersR
 .type b__MA3szg2i68vagreany18qrpvzny_cbvag_vzcyVjRRG_AF1_10ybpnyr_ersR,%function
 b__MA3szg2i68vagreany18qrpvzny_cbvag_vzcyVjRRG_AF1_10ybpnyr_ersR:
 nop
@@ -533,7 +533,7 @@
 b__MA7naqebvq4onfr10FrgNobegreRBAFg3__18shapgvbaVSiCXpRRR:
 nop
 .text
-.globl b__MA7naqebvq4onfr4WbvaVAFg3__16irpgbeVAF2_12onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRAF7_VF9_RRRRpRRF9_EXG_G0_
+.weak b__MA7naqebvq4onfr4WbvaVAFg3__16irpgbeVAF2_12onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRAF7_VF9_RRRRpRRF9_EXG_G0_
 .type b__MA7naqebvq4onfr4WbvaVAFg3__16irpgbeVAF2_12onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRAF7_VF9_RRRRpRRF9_EXG_G0_,%function
 b__MA7naqebvq4onfr4WbvaVAFg3__16irpgbeVAF2_12onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRAF7_VF9_RRRRpRRF9_EXG_G0_:
 nop
@@ -553,27 +553,27 @@
 b__MA3szg2i612flfgrz_reebe4vavgRvAF0_17onfvp_fgevat_ivrjVpRRAF0_11sbezng_netfR:
 nop
 .text
-.globl b__MA3szg2i620onfvp_sbezng_pbagrkgVAFg3__120onpx_vafreg_vgrengbeVAF0_8vagreany6ohssreVjRRRRjR3netRAF0_17onfvp_fgevat_ivrjVjRR
+.weak b__MA3szg2i620onfvp_sbezng_pbagrkgVAFg3__120onpx_vafreg_vgrengbeVAF0_8vagreany6ohssreVjRRRRjR3netRAF0_17onfvp_fgevat_ivrjVjRR
 .type b__MA3szg2i620onfvp_sbezng_pbagrkgVAFg3__120onpx_vafreg_vgrengbeVAF0_8vagreany6ohssreVjRRRRjR3netRAF0_17onfvp_fgevat_ivrjVjRR,%function
 b__MA3szg2i620onfvp_sbezng_pbagrkgVAFg3__120onpx_vafreg_vgrengbeVAF0_8vagreany6ohssreVjRRRRjR3netRAF0_17onfvp_fgevat_ivrjVjRR:
 nop
 .data
-.globl b__MA3szg2i68vagreany10onfvp_qngnViR16onpxtebhaq_pbybeR
+.weak b__MA3szg2i68vagreany10onfvp_qngnViR16onpxtebhaq_pbybeR
 .type b__MA3szg2i68vagreany10onfvp_qngnViR16onpxtebhaq_pbybeR,%object
 b__MA3szg2i68vagreany10onfvp_qngnViR16onpxtebhaq_pbybeR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MA3szg2i68vagreany10onfvp_qngnViR6qvtvgfR
+.weak b__MA3szg2i68vagreany10onfvp_qngnViR6qvtvgfR
 .type b__MA3szg2i68vagreany10onfvp_qngnViR6qvtvgfR,%object
 b__MA3szg2i68vagreany10onfvp_qngnViR6qvtvgfR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__110__shapgvba6__shapVCSiCXpRAF_9nyybpngbeVF5_RRF4_R18qrfgebl_qrnyybpngrRi
+.weak b__MAFg3__110__shapgvba6__shapVCSiCXpRAF_9nyybpngbeVF5_RRF4_R18qrfgebl_qrnyybpngrRi
 .type b__MAFg3__110__shapgvba6__shapVCSiCXpRAF_9nyybpngbeVF5_RRF4_R18qrfgebl_qrnyybpngrRi,%function
 b__MAFg3__110__shapgvba6__shapVCSiCXpRAF_9nyybpngbeVF5_RRF4_R18qrfgebl_qrnyybpngrRi:
 nop
 .text
-.globl b__MA7naqebvq4onfr14TrgVagCebcreglVfRRG_EXAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRRF2_F2_F2_
+.weak b__MA7naqebvq4onfr14TrgVagCebcreglVfRRG_EXAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRRF2_F2_F2_
 .type b__MA7naqebvq4onfr14TrgVagCebcreglVfRRG_EXAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRRF2_F2_F2_,%function
 b__MA7naqebvq4onfr14TrgVagCebcreglVfRRG_EXAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRRF2_F2_F2_:
 nop
@@ -608,17 +608,17 @@
 b__MA3szg2i612flfgrz_reebeQ0Ri:
 nop
 .text
-.globl b__MAXFg3__110__shapgvba6__shapVA7naqebvq4onfr10YbtqYbttreRAF_9nyybpngbeVF4_RRSiAF3_5YbtVqRAF3_11YbtFrirevglRCXpFN_wFN_RR7__pybarRi
+.weak b__MAXFg3__110__shapgvba6__shapVA7naqebvq4onfr10YbtqYbttreRAF_9nyybpngbeVF4_RRSiAF3_5YbtVqRAF3_11YbtFrirevglRCXpFN_wFN_RR7__pybarRi
 .type b__MAXFg3__110__shapgvba6__shapVA7naqebvq4onfr10YbtqYbttreRAF_9nyybpngbeVF4_RRSiAF3_5YbtVqRAF3_11YbtFrirevglRCXpFN_wFN_RR7__pybarRi,%function
 b__MAXFg3__110__shapgvba6__shapVA7naqebvq4onfr10YbtqYbttreRAF_9nyybpngbeVF4_RRSiAF3_5YbtVqRAF3_11YbtFrirevglRCXpFN_wFN_RR7__pybarRi:
 nop
 .text
-.globl b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR7frrxbssRkAF_8vbf_onfr7frrxqveRw
+.weak b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR7frrxbssRkAF_8vbf_onfr7frrxqveRw
 .type b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR7frrxbssRkAF_8vbf_onfr7frrxqveRw,%function
 b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR7frrxbssRkAF_8vbf_onfr7frrxqveRw:
 nop
 .text
-.globl b__MA3szg2i68vagreany18qrpvzny_cbvag_vzcyVpRRG_AF1_10ybpnyr_ersR
+.weak b__MA3szg2i68vagreany18qrpvzny_cbvag_vzcyVpRRG_AF1_10ybpnyr_ersR
 .type b__MA3szg2i68vagreany18qrpvzny_cbvag_vzcyVpRRG_AF1_10ybpnyr_ersR,%function
 b__MA3szg2i68vagreany18qrpvzny_cbvag_vzcyVpRRG_AF1_10ybpnyr_ersR:
 nop
@@ -628,12 +628,12 @@
 b__MA7naqebvq4onfr10ZnccrqSvyr12SebzBfUnaqyrRvyzv:
 nop
 .text
-.globl b__MA3szg2i68vagreany13tebhcvat_vzcyVpRRAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRRAF1_10ybpnyr_ersR
+.weak b__MA3szg2i68vagreany13tebhcvat_vzcyVpRRAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRRAF1_10ybpnyr_ersR
 .type b__MA3szg2i68vagreany13tebhcvat_vzcyVpRRAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRRAF1_10ybpnyr_ersR,%function
 b__MA3szg2i68vagreany13tebhcvat_vzcyVpRRAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRRAF1_10ybpnyr_ersR:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq4onfr14havdhr_sq_vzcyVAF2_13QrsnhygPybfreRRRAF_9nyybpngbeVF5_RRR24__rzcynpr_onpx_fybj_cnguVWEvRRRiQcBG_
+.weak b__MAFg3__16irpgbeVA7naqebvq4onfr14havdhr_sq_vzcyVAF2_13QrsnhygPybfreRRRAF_9nyybpngbeVF5_RRR24__rzcynpr_onpx_fybj_cnguVWEvRRRiQcBG_
 .type b__MAFg3__16irpgbeVA7naqebvq4onfr14havdhr_sq_vzcyVAF2_13QrsnhygPybfreRRRAF_9nyybpngbeVF5_RRR24__rzcynpr_onpx_fybj_cnguVWEvRRRiQcBG_,%function
 b__MAFg3__16irpgbeVA7naqebvq4onfr14havdhr_sq_vzcyVAF2_13QrsnhygPybfreRRRAF_9nyybpngbeVF5_RRR24__rzcynpr_onpx_fybj_cnguVWEvRRRiQcBG_:
 nop
@@ -643,7 +643,7 @@
 b__MA13PncgherqFgqSq3fgeRi:
 nop
 .text
-.globl b__MA3szg2i68vagreany10ybpnyr_ersP1VAFg3__16ybpnyrRRREXG_
+.weak b__MA3szg2i68vagreany10ybpnyr_ersP1VAFg3__16ybpnyrRRREXG_
 .type b__MA3szg2i68vagreany10ybpnyr_ersP1VAFg3__16ybpnyrRRREXG_,%function
 b__MA3szg2i68vagreany10ybpnyr_ersP1VAFg3__16ybpnyrRRREXG_:
 nop
@@ -673,7 +673,7 @@
 b__MA3szg2i612sbezng_reebeQ0Ri:
 nop
 .text
-.globl b__MAFg3__16irpgbeVpAF_9nyybpngbeVpRRR8__nccraqRz
+.weak b__MAFg3__16irpgbeVpAF_9nyybpngbeVpRRR8__nccraqRz
 .type b__MAFg3__16irpgbeVpAF_9nyybpngbeVpRRR8__nccraqRz,%function
 b__MAFg3__16irpgbeVpAF_9nyybpngbeVpRRR8__nccraqRz:
 nop
@@ -693,7 +693,7 @@
 b__MA7naqebvq4onfr16ErnqSvyrGbFgevatREXAFg3__112onfvp_fgevatVpAF1_11pune_genvgfVpRRAF1_9nyybpngbeVpRRRRCF7_o:
 nop
 .text
-.globl b__MA7naqebvq4onfr15TrgHvagCebcreglVwRRG_EXAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRRF2_F2_
+.weak b__MA7naqebvq4onfr15TrgHvagCebcreglVwRRG_EXAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRRF2_F2_
 .type b__MA7naqebvq4onfr15TrgHvagCebcreglVwRRG_EXAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRRF2_F2_,%function
 b__MA7naqebvq4onfr15TrgHvagCebcreglVwRRG_EXAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRRF2_F2_:
 nop
@@ -708,12 +708,12 @@
 b__MA3szg2i68vagreany13reebe_unaqyre8ba_reebeRCXp:
 nop
 .data
-.globl b__MGIAFg3__110__shapgvba6__shapVA7naqebvq4onfr10YbtqYbttreRAF_9nyybpngbeVF4_RRSiAF3_5YbtVqRAF3_11YbtFrirevglRCXpFN_wFN_RRR
+.weak b__MGIAFg3__110__shapgvba6__shapVA7naqebvq4onfr10YbtqYbttreRAF_9nyybpngbeVF4_RRSiAF3_5YbtVqRAF3_11YbtFrirevglRCXpFN_wFN_RRR
 .type b__MGIAFg3__110__shapgvba6__shapVA7naqebvq4onfr10YbtqYbttreRAF_9nyybpngbeVF4_RRSiAF3_5YbtVqRAF3_11YbtFrirevglRCXpFN_wFN_RRR,%object
 b__MGIAFg3__110__shapgvba6__shapVA7naqebvq4onfr10YbtqYbttreRAF_9nyybpngbeVF4_RRSiAF3_5YbtVqRAF3_11YbtFrirevglRCXpFN_wFN_RRR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIAFg3__110__shapgvba6__shapVCSiCXpRAF_9nyybpngbeVF5_RRF4_RR
+.weak b__MGIAFg3__110__shapgvba6__shapVCSiCXpRAF_9nyybpngbeVF5_RRF4_RR
 .type b__MGIAFg3__110__shapgvba6__shapVCSiCXpRAF_9nyybpngbeVF5_RRF4_RR,%object
 b__MGIAFg3__110__shapgvba6__shapVCSiCXpRAF_9nyybpngbeVF5_RRF4_RR:
 .space __SIZEOF_POINTER__
@@ -728,7 +728,7 @@
 b__MA7naqebvq4onfr7NyyCvqf11CvqVgrengbe9VaperzragRi:
 nop
 .text
-.globl b__MA7naqebvq4onfr15TrgHvagCebcreglVgRRG_EXAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRRF2_F2_
+.weak b__MA7naqebvq4onfr15TrgHvagCebcreglVgRRG_EXAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRRF2_F2_
 .type b__MA7naqebvq4onfr15TrgHvagCebcreglVgRRG_EXAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRRF2_F2_,%function
 b__MA7naqebvq4onfr15TrgHvagCebcreglVgRRG_EXAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRRF2_F2_:
 nop
@@ -743,7 +743,7 @@
 b__MA7naqebvq4onfr9ErnqShyylRAF0_11obeebjrq_sqRCiz:
 nop
 .data
-.globl b__MGGAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
+.weak b__MGGAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
 .type b__MGGAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR,%object
 b__MGGAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR:
 .space __SIZEOF_POINTER__
@@ -753,7 +753,7 @@
 b__MA7naqebvq4onfr23FlfgrzReebePbqrGbFgevatRv:
 nop
 .text
-.globl b__MA3szg2i68vagreany15snyyonpx_sbezngVqRRiG_EAF1_6ohssreVpRREv
+.weak b__MA3szg2i68vagreany15snyyonpx_sbezngVqRRiG_EAF1_6ohssreVpRREv
 .type b__MA3szg2i68vagreany15snyyonpx_sbezngVqRRiG_EAF1_6ohssreVpRREv,%function
 b__MA3szg2i68vagreany15snyyonpx_sbezngVqRRiG_EAF1_6ohssreVpRREv:
 nop
@@ -763,7 +763,7 @@
 b__MA3szg2i68vagreany16trg_pnpurq_cbjreRvEv:
 nop
 .text
-.globl b__MA3szg2i68vagreany18gubhfnaqf_frc_vzcyVjRRG_AF1_10ybpnyr_ersR
+.weak b__MA3szg2i68vagreany18gubhfnaqf_frc_vzcyVjRRG_AF1_10ybpnyr_ersR
 .type b__MA3szg2i68vagreany18gubhfnaqf_frc_vzcyVjRRG_AF1_10ybpnyr_ersR,%function
 b__MA3szg2i68vagreany18gubhfnaqf_frc_vzcyVjRRG_AF1_10ybpnyr_ersR:
 nop
@@ -778,7 +778,7 @@
 b__MA3szg2i612sbezng_reebeQ2Ri:
 nop
 .text
-.globl b__MA3szg2i620onfvp_sbezng_pbagrkgVAFg3__120onpx_vafreg_vgrengbeVAF0_8vagreany6ohssreVpRRRRpR3netRAF0_17onfvp_fgevat_ivrjVpRR
+.weak b__MA3szg2i620onfvp_sbezng_pbagrkgVAFg3__120onpx_vafreg_vgrengbeVAF0_8vagreany6ohssreVpRRRRpR3netRAF0_17onfvp_fgevat_ivrjVpRR
 .type b__MA3szg2i620onfvp_sbezng_pbagrkgVAFg3__120onpx_vafreg_vgrengbeVAF0_8vagreany6ohssreVpRRRRpR3netRAF0_17onfvp_fgevat_ivrjVpRR,%function
 b__MA3szg2i620onfvp_sbezng_pbagrkgVAFg3__120onpx_vafreg_vgrengbeVAF0_8vagreany6ohssreVpRRRRpR3netRAF0_17onfvp_fgevat_ivrjVpRR:
 nop
@@ -788,7 +788,7 @@
 b__MA7naqebvq4onfr17FpbcrqYbtFrirevglP2RAF0_11YbtFrirevglR:
 nop
 .data
-.globl b__MGPAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_13onfvp_bfgernzVpF2_RR
+.weak b__MGPAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_13onfvp_bfgernzVpF2_RR
 .type b__MGPAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_13onfvp_bfgernzVpF2_RR,%object
 b__MGPAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_13onfvp_bfgernzVpF2_RR:
 .space __SIZEOF_POINTER__
@@ -798,7 +798,7 @@
 b__MA7naqebvq4onfr10YbtZrffntrQ2Ri:
 nop
 .text
-.globl b__MAFg3__1yfVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRREAF_13onfvp_bfgernzVG_G0_RRF9_EXAF_12onfvp_fgevatVF6_F7_G1_RR
+.weak b__MAFg3__1yfVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRREAF_13onfvp_bfgernzVG_G0_RRF9_EXAF_12onfvp_fgevatVF6_F7_G1_RR
 .type b__MAFg3__1yfVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRREAF_13onfvp_bfgernzVG_G0_RRF9_EXAF_12onfvp_fgevatVF6_F7_G1_RR,%function
 b__MAFg3__1yfVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRREAF_13onfvp_bfgernzVG_G0_RRF9_EXAF_12onfvp_fgevatVF6_F7_G1_RR:
 nop
@@ -833,27 +833,27 @@
 b__MA13PncgherqFgqSq5FgnegRi:
 nop
 .data
-.globl b__MA3szg2i68vagreany10onfvp_qngnViR11erfrg_pbybeR
+.weak b__MA3szg2i68vagreany10onfvp_qngnViR11erfrg_pbybeR
 .type b__MA3szg2i68vagreany10onfvp_qngnViR11erfrg_pbybeR,%object
 b__MA3szg2i68vagreany10onfvp_qngnViR11erfrg_pbybeR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MA3szg2i68vagreany10onfvp_qngnViR15cbj10_rkcbaragfR
+.weak b__MA3szg2i68vagreany10onfvp_qngnViR15cbj10_rkcbaragfR
 .type b__MA3szg2i68vagreany10onfvp_qngnViR15cbj10_rkcbaragfR,%object
 b__MA3szg2i68vagreany10onfvp_qngnViR15cbj10_rkcbaragfR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA3szg2i68vagreany10isbezng_gbVpRRAF0_20onfvp_sbezng_pbagrkgVAFg3__120onpx_vafreg_vgrengbeVAF1_6ohssreVG_RRRRF7_R8vgrengbeREF8_AF0_17onfvp_fgevat_ivrjVF7_RRAF0_17onfvp_sbezng_netfVFN_RR
+.weak b__MA3szg2i68vagreany10isbezng_gbVpRRAF0_20onfvp_sbezng_pbagrkgVAFg3__120onpx_vafreg_vgrengbeVAF1_6ohssreVG_RRRRF7_R8vgrengbeREF8_AF0_17onfvp_fgevat_ivrjVF7_RRAF0_17onfvp_sbezng_netfVFN_RR
 .type b__MA3szg2i68vagreany10isbezng_gbVpRRAF0_20onfvp_sbezng_pbagrkgVAFg3__120onpx_vafreg_vgrengbeVAF1_6ohssreVG_RRRRF7_R8vgrengbeREF8_AF0_17onfvp_fgevat_ivrjVF7_RRAF0_17onfvp_sbezng_netfVFN_RR,%function
 b__MA3szg2i68vagreany10isbezng_gbVpRRAF0_20onfvp_sbezng_pbagrkgVAFg3__120onpx_vafreg_vgrengbeVAF1_6ohssreVG_RRRRF7_R8vgrengbeREF8_AF0_17onfvp_fgevat_ivrjVF7_RRAF0_17onfvp_sbezng_netfVFN_RR:
 nop
 .text
-.globl b__MA3szg2i68vagreany14facevags_sybngVqRRvG_vAF1_11sybng_fcrpfREAF1_6ohssreVpRR
+.weak b__MA3szg2i68vagreany14facevags_sybngVqRRvG_vAF1_11sybng_fcrpfREAF1_6ohssreVpRR
 .type b__MA3szg2i68vagreany14facevags_sybngVqRRvG_vAF1_11sybng_fcrpfREAF1_6ohssreVpRR,%function
 b__MA3szg2i68vagreany14facevags_sybngVqRRvG_vAF1_11sybng_fcrpfREAF1_6ohssreVpRR:
 nop
 .data
-.globl b__MGIA3szg2i619onfvp_zrzbel_ohssreVjYz500RAFg3__19nyybpngbeVjRRRR
+.weak b__MGIA3szg2i619onfvp_zrzbel_ohssreVjYz500RAFg3__19nyybpngbeVjRRRR
 .type b__MGIA3szg2i619onfvp_zrzbel_ohssreVjYz500RAFg3__19nyybpngbeVjRRRR,%object
 b__MGIA3szg2i619onfvp_zrzbel_ohssreVjYz500RAFg3__19nyybpngbeVjRRRR:
 .space __SIZEOF_POINTER__
@@ -873,7 +873,7 @@
 b__MA7naqebvq4onfr10YbtqYbttrepyRAF0_5YbtVqRAF0_11YbtFrirevglRCXpF5_wF5_:
 nop
 .text
-.globl b__MAFg3__110__shapgvba6__shapVCSiCXpRAF_9nyybpngbeVF5_RRF4_R7qrfgeblRi
+.weak b__MAFg3__110__shapgvba6__shapVCSiCXpRAF_9nyybpngbeVF5_RRF4_R7qrfgeblRi
 .type b__MAFg3__110__shapgvba6__shapVCSiCXpRAF_9nyybpngbeVF5_RRF4_R7qrfgeblRi,%function
 b__MAFg3__110__shapgvba6__shapVCSiCXpRAF_9nyybpngbeVF5_RRF4_R7qrfgeblRi:
 nop
@@ -883,12 +883,12 @@
 b__MA7naqebvq4onfr8RaqfJvguRAFg3__117onfvp_fgevat_ivrjVpAF1_11pune_genvgfVpRRRRF5_:
 nop
 .text
-.globl b__MA3szg2i68vagreany18gubhfnaqf_frc_vzcyVpRRG_AF1_10ybpnyr_ersR
+.weak b__MA3szg2i68vagreany18gubhfnaqf_frc_vzcyVpRRG_AF1_10ybpnyr_ersR
 .type b__MA3szg2i68vagreany18gubhfnaqf_frc_vzcyVpRRG_AF1_10ybpnyr_ersR,%function
 b__MA3szg2i68vagreany18gubhfnaqf_frc_vzcyVpRRG_AF1_10ybpnyr_ersR:
 nop
 .data
-.globl b__MGIA3szg2i619onfvp_zrzbel_ohssreVwYz32RAFg3__19nyybpngbeVwRRRR
+.weak b__MGIA3szg2i619onfvp_zrzbel_ohssreVwYz32RAFg3__19nyybpngbeVwRRRR
 .type b__MGIA3szg2i619onfvp_zrzbel_ohssreVwYz32RAFg3__19nyybpngbeVwRRRR,%object
 b__MGIA3szg2i619onfvp_zrzbel_ohssreVwYz32RAFg3__19nyybpngbeVwRRRR:
 .space __SIZEOF_POINTER__
@@ -913,7 +913,7 @@
 b__MA3szg2i68vagreany17sbezng_reebe_pbqrREAF1_6ohssreVpRRvAF0_17onfvp_fgevat_ivrjVpRR:
 nop
 .text
-.globl b__MAX3szg2i68vagreany10ybpnyr_ers3trgVAFg3__16ybpnyrRRRG_i
+.weak b__MAX3szg2i68vagreany10ybpnyr_ers3trgVAFg3__16ybpnyrRRRG_i
 .type b__MAX3szg2i68vagreany10ybpnyr_ers3trgVAFg3__16ybpnyrRRRG_i,%function
 b__MAX3szg2i68vagreany10ybpnyr_ers3trgVAFg3__16ybpnyrRRRG_i:
 nop
@@ -923,7 +923,7 @@
 b__MA7naqebvq4onfr17ErnqShyylNgBssfrgRAF0_11obeebjrq_sqRCizy:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq4onfr14havdhr_sq_vzcyVAF2_13QrsnhygPybfreRRRAF_9nyybpngbeVF5_RRR13__iqrnyybpngrRi
+.weak b__MAFg3__16irpgbeVA7naqebvq4onfr14havdhr_sq_vzcyVAF2_13QrsnhygPybfreRRRAF_9nyybpngbeVF5_RRR13__iqrnyybpngrRi
 .type b__MAFg3__16irpgbeVA7naqebvq4onfr14havdhr_sq_vzcyVAF2_13QrsnhygPybfreRRRAF_9nyybpngbeVF5_RRR13__iqrnyybpngrRi,%function
 b__MAFg3__16irpgbeVA7naqebvq4onfr14havdhr_sq_vzcyVAF2_13QrsnhygPybfreRRRAF_9nyybpngbeVF5_RRR13__iqrnyybpngrRi:
 nop
@@ -933,7 +933,7 @@
 b__MA13GrzcbenelSvyrQ1Ri:
 nop
 .text
-.globl b__MAFg3__110__shapgvba6__shapVA7naqebvq4onfr10YbtqYbttreRAF_9nyybpngbeVF4_RRSiAF3_5YbtVqRAF3_11YbtFrirevglRCXpFN_wFN_RR18qrfgebl_qrnyybpngrRi
+.weak b__MAFg3__110__shapgvba6__shapVA7naqebvq4onfr10YbtqYbttreRAF_9nyybpngbeVF4_RRSiAF3_5YbtVqRAF3_11YbtFrirevglRCXpFN_wFN_RR18qrfgebl_qrnyybpngrRi
 .type b__MAFg3__110__shapgvba6__shapVA7naqebvq4onfr10YbtqYbttreRAF_9nyybpngbeVF4_RRSiAF3_5YbtVqRAF3_11YbtFrirevglRCXpFN_wFN_RR18qrfgebl_qrnyybpngrRi,%function
 b__MAFg3__110__shapgvba6__shapVA7naqebvq4onfr10YbtqYbttreRAF_9nyybpngbeVF4_RRSiAF3_5YbtVqRAF3_11YbtFrirevglRCXpFN_wFN_RR18qrfgebl_qrnyybpngrRi:
 nop
@@ -963,17 +963,17 @@
 b__MA13GrzcbenelSvyrP1REXAFg3__112onfvp_fgevatVpAF0_11pune_genvgfVpRRAF0_9nyybpngbeVpRRRR:
 nop
 .text
-.globl b__MA3szg2i619onfvp_zrzbel_ohssreVwYz32RAFg3__19nyybpngbeVwRRR4tebjRz
+.weak b__MA3szg2i619onfvp_zrzbel_ohssreVwYz32RAFg3__19nyybpngbeVwRRR4tebjRz
 .type b__MA3szg2i619onfvp_zrzbel_ohssreVwYz32RAFg3__19nyybpngbeVwRRR4tebjRz,%function
 b__MA3szg2i619onfvp_zrzbel_ohssreVwYz32RAFg3__19nyybpngbeVwRRR4tebjRz:
 nop
 .text
-.globl b__MA3szg2i68vagreany13tebhcvat_vzcyVjRRAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRRAF1_10ybpnyr_ersR
+.weak b__MA3szg2i68vagreany13tebhcvat_vzcyVjRRAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRRAF1_10ybpnyr_ersR
 .type b__MA3szg2i68vagreany13tebhcvat_vzcyVjRRAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRRAF1_10ybpnyr_ersR,%function
 b__MA3szg2i68vagreany13tebhcvat_vzcyVjRRAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRRAF1_10ybpnyr_ersR:
 nop
 .text
-.globl b__MA3szg2i69gb_fgevatVpYz500RRRAFg3__112onfvp_fgevatVG_AF2_11pune_genvgfVF4_RRAF2_9nyybpngbeVF4_RRRREXAF0_19onfvp_zrzbel_ohssreVF4_KG0_RF8_RR
+.weak b__MA3szg2i69gb_fgevatVpYz500RRRAFg3__112onfvp_fgevatVG_AF2_11pune_genvgfVF4_RRAF2_9nyybpngbeVF4_RRRREXAF0_19onfvp_zrzbel_ohssreVF4_KG0_RF8_RR
 .type b__MA3szg2i69gb_fgevatVpYz500RRRAFg3__112onfvp_fgevatVG_AF2_11pune_genvgfVF4_RRAF2_9nyybpngbeVF4_RRRREXAF0_19onfvp_zrzbel_ohssreVF4_KG0_RF8_RR,%function
 b__MA3szg2i69gb_fgevatVpYz500RRRAFg3__112onfvp_fgevatVG_AF2_11pune_genvgfVF4_RRAF2_9nyybpngbeVF4_RRRREXAF0_19onfvp_zrzbel_ohssreVF4_KG0_RF8_RR:
 nop
@@ -998,27 +998,27 @@
 b__MA7naqebvq4onfr11TrgCebcreglREXAFg3__112onfvp_fgevatVpAF1_11pune_genvgfVpRRAF1_9nyybpngbeVpRRRRF9_:
 nop
 .data
-.globl b__MA3szg2i68vagreany10onfvp_qngnViR10urk_qvtvgfR
+.weak b__MA3szg2i68vagreany10onfvp_qngnViR10urk_qvtvgfR
 .type b__MA3szg2i68vagreany10onfvp_qngnViR10urk_qvtvgfR,%object
 b__MA3szg2i68vagreany10onfvp_qngnViR10urk_qvtvgfR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA3szg2i68vagreany14jevgr_rkcbaragVpAF1_17pbhagvat_vgrengbeRRRG0_vF4_
+.weak b__MA3szg2i68vagreany14jevgr_rkcbaragVpAF1_17pbhagvat_vgrengbeRRRG0_vF4_
 .type b__MA3szg2i68vagreany14jevgr_rkcbaragVpAF1_17pbhagvat_vgrengbeRRRG0_vF4_,%function
 b__MA3szg2i68vagreany14jevgr_rkcbaragVpAF1_17pbhagvat_vgrengbeRRRG0_vF4_:
 nop
 .text
-.globl b__MAXFg3__110__shapgvba6__shapVA7naqebvq4onfr10YbtqYbttreRAF_9nyybpngbeVF4_RRSiAF3_5YbtVqRAF3_11YbtFrirevglRCXpFN_wFN_RR7__pybarRCAF0_6__onfrVFO_RR
+.weak b__MAXFg3__110__shapgvba6__shapVA7naqebvq4onfr10YbtqYbttreRAF_9nyybpngbeVF4_RRSiAF3_5YbtVqRAF3_11YbtFrirevglRCXpFN_wFN_RR7__pybarRCAF0_6__onfrVFO_RR
 .type b__MAXFg3__110__shapgvba6__shapVA7naqebvq4onfr10YbtqYbttreRAF_9nyybpngbeVF4_RRSiAF3_5YbtVqRAF3_11YbtFrirevglRCXpFN_wFN_RR7__pybarRCAF0_6__onfrVFO_RR,%function
 b__MAXFg3__110__shapgvba6__shapVA7naqebvq4onfr10YbtqYbttreRAF_9nyybpngbeVF4_RRSiAF3_5YbtVqRAF3_11YbtFrirevglRCXpFN_wFN_RR7__pybarRCAF0_6__onfrVFO_RR:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF6_RRR21__chfu_onpx_fybj_cnguVF6_RRiBG_
+.weak b__MAFg3__16irpgbeVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF6_RRR21__chfu_onpx_fybj_cnguVF6_RRiBG_
 .type b__MAFg3__16irpgbeVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF6_RRR21__chfu_onpx_fybj_cnguVF6_RRiBG_,%function
 b__MAFg3__16irpgbeVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF6_RRR21__chfu_onpx_fybj_cnguVF6_RRiBG_:
 nop
 .data
-.globl b__MA3szg2i68vagreany10onfvp_qngnViR5fvtafR
+.weak b__MA3szg2i68vagreany10onfvp_qngnViR5fvtafR
 .type b__MA3szg2i68vagreany10onfvp_qngnViR5fvtafR,%object
 b__MA3szg2i68vagreany10onfvp_qngnViR5fvtafR:
 .space __SIZEOF_POINTER__
@@ -1028,7 +1028,7 @@
 b__MA7naqebvq4onfr10FgnegfJvguRAFg3__117onfvp_fgevat_ivrjVpAF1_11pune_genvgfVpRRRRF5_:
 nop
 .text
-.globl b__MA7naqebvq4onfr15TrgHvagCebcreglVzRRG_EXAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRRF2_F2_
+.weak b__MA7naqebvq4onfr15TrgHvagCebcreglVzRRG_EXAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRRF2_F2_
 .type b__MA7naqebvq4onfr15TrgHvagCebcreglVzRRG_EXAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRRF2_F2_,%function
 b__MA7naqebvq4onfr15TrgHvagCebcreglVzRRG_EXAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRRF2_F2_:
 nop
@@ -1038,17 +1038,17 @@
 b__MA13PncgherqFgqSqP2Rv:
 nop
 .text
-.globl b__MA7naqebvq4onfr9CnefrHvagVuRRoCXpCG_F4_o
+.weak b__MA7naqebvq4onfr9CnefrHvagVuRRoCXpCG_F4_o
 .type b__MA7naqebvq4onfr9CnefrHvagVuRRoCXpCG_F4_o,%function
 b__MA7naqebvq4onfr9CnefrHvagVuRRoCXpCG_F4_o:
 nop
 .text
-.globl b__MA3szg2i68vagreany6ohssreVjR6nccraqVjRRiCXG_F7_
+.weak b__MA3szg2i68vagreany6ohssreVjR6nccraqVjRRiCXG_F7_
 .type b__MA3szg2i68vagreany6ohssreVjR6nccraqVjRRiCXG_F7_,%function
 b__MA3szg2i68vagreany6ohssreVjR6nccraqVjRRiCXG_F7_:
 nop
 .text
-.globl b__MA3szg2i68vagreany7isbezngVpRRAFg3__112onfvp_fgevatVG_AF3_11pune_genvgfVF5_RRAF3_9nyybpngbeVF5_RRRRAF0_17onfvp_fgevat_ivrjVF5_RRAF0_17onfvp_sbezng_netfVAF0_20onfvp_sbezng_pbagrkgVAF3_20onpx_vafreg_vgrengbeVAF1_6ohssreVF5_RRRRF5_RRRR
+.weak b__MA3szg2i68vagreany7isbezngVpRRAFg3__112onfvp_fgevatVG_AF3_11pune_genvgfVF5_RRAF3_9nyybpngbeVF5_RRRRAF0_17onfvp_fgevat_ivrjVF5_RRAF0_17onfvp_sbezng_netfVAF0_20onfvp_sbezng_pbagrkgVAF3_20onpx_vafreg_vgrengbeVAF1_6ohssreVF5_RRRRF5_RRRR
 .type b__MA3szg2i68vagreany7isbezngVpRRAFg3__112onfvp_fgevatVG_AF3_11pune_genvgfVF5_RRAF3_9nyybpngbeVF5_RRRRAF0_17onfvp_fgevat_ivrjVF5_RRAF0_17onfvp_sbezng_netfVAF0_20onfvp_sbezng_pbagrkgVAF3_20onpx_vafreg_vgrengbeVAF1_6ohssreVF5_RRRRF5_RRRR,%function
 b__MA3szg2i68vagreany7isbezngVpRRAFg3__112onfvp_fgevatVG_AF3_11pune_genvgfVF5_RRAF3_9nyybpngbeVF5_RRRRAF0_17onfvp_fgevat_ivrjVF5_RRAF0_17onfvp_sbezng_netfVAF0_20onfvp_sbezng_pbagrkgVAF3_20onpx_vafreg_vgrengbeVAF1_6ohssreVF5_RRRRF5_RRRR:
 nop
@@ -1068,12 +1068,12 @@
 b__MA3szg2i66icevagRAF0_17onfvp_fgevat_ivrjVpRRAF0_11sbezng_netfR:
 nop
 .data
-.globl b__MA3szg2i68vagreany10onfvp_qngnViR12jerfrg_pbybeR
+.weak b__MA3szg2i68vagreany10onfvp_qngnViR12jerfrg_pbybeR
 .type b__MA3szg2i68vagreany10onfvp_qngnViR12jerfrg_pbybeR,%object
 b__MA3szg2i68vagreany10onfvp_qngnViR12jerfrg_pbybeR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MA3szg2i68vagreany10onfvp_qngnViR15cbjref_bs_10_64R
+.weak b__MA3szg2i68vagreany10onfvp_qngnViR15cbjref_bs_10_64R
 .type b__MA3szg2i68vagreany10onfvp_qngnViR15cbjref_bs_10_64R,%object
 b__MA3szg2i68vagreany10onfvp_qngnViR15cbjref_bs_10_64R:
 .space __SIZEOF_POINTER__
diff --git a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_004.S b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_004.S
index 04fb5e0..8097483 100644
--- a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_004.S
+++ b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_004.S
@@ -13,12 +13,12 @@
 b__MA7naqebvq4shfr19ShfrNccYbbcPnyyonpxQ1Ri:
 nop
 .text
-.globl b__MAX7naqebvq4shfr11ShfrZrffntrVAF0_16ShfrErfcbafrOnfrVYz0RRRR12JevgrBeNtnvaRv
+.weak b__MAX7naqebvq4shfr11ShfrZrffntrVAF0_16ShfrErfcbafrOnfrVYz0RRRR12JevgrBeNtnvaRv
 .type b__MAX7naqebvq4shfr11ShfrZrffntrVAF0_16ShfrErfcbafrOnfrVYz0RRRR12JevgrBeNtnvaRv,%function
 b__MAX7naqebvq4shfr11ShfrZrffntrVAF0_16ShfrErfcbafrOnfrVYz0RRRR12JevgrBeNtnvaRv:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVCA7naqebvq4shfr15ShfrOevqtrRagelRAF_4unfuVF4_RRAF_8rdhny_gbVF4_RRAF_9nyybpngbeVF4_RRR25__rzcynpr_havdhr_xrl_netfVF4_WEXF4_RRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF4_CiRRRRoRREXG_QcBG0_
+.weak b__MAFg3__112__unfu_gnoyrVCA7naqebvq4shfr15ShfrOevqtrRagelRAF_4unfuVF4_RRAF_8rdhny_gbVF4_RRAF_9nyybpngbeVF4_RRR25__rzcynpr_havdhr_xrl_netfVF4_WEXF4_RRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF4_CiRRRRoRREXG_QcBG0_
 .type b__MAFg3__112__unfu_gnoyrVCA7naqebvq4shfr15ShfrOevqtrRagelRAF_4unfuVF4_RRAF_8rdhny_gbVF4_RRAF_9nyybpngbeVF4_RRR25__rzcynpr_havdhr_xrl_netfVF4_WEXF4_RRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF4_CiRRRRoRREXG_QcBG0_,%function
 b__MAFg3__112__unfu_gnoyrVCA7naqebvq4shfr15ShfrOevqtrRagelRAF_4unfuVF4_RRAF_8rdhny_gbVF4_RRAF_9nyybpngbeVF4_RRR25__rzcynpr_havdhr_xrl_netfVF4_WEXF4_RRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF4_CiRRRRoRREXG_QcBG0_:
 nop
@@ -33,12 +33,12 @@
 b__MA7naqebvq4shfr19ShfrNccYbbcPnyyonpxQ2Ri:
 nop
 .text
-.globl b__MAX7naqebvq4shfr11ShfrZrffntrVAF0_16ShfrErfcbafrOnfrVYz0RRRR5JevgrRv
+.weak b__MAX7naqebvq4shfr11ShfrZrffntrVAF0_16ShfrErfcbafrOnfrVYz0RRRR5JevgrRv
 .type b__MAX7naqebvq4shfr11ShfrZrffntrVAF0_16ShfrErfcbafrOnfrVYz0RRRR5JevgrRv,%function
 b__MAX7naqebvq4shfr11ShfrZrffntrVAF0_16ShfrErfcbafrOnfrVYz0RRRR5JevgrRv:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVvAF_10havdhr_cgeVA7naqebvq4shfr15ShfrOevqtrRagelRAF_14qrsnhyg_qryrgrVF5_RRRRRRAF_19__znc_inyhr_pbzcnerVvF9_AF_4yrffVvRRYo1RRRAF_9nyybpngbeVF9_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVF9_CAF_11__gerr_abqrVF9_CiRRyRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVvAF_10havdhr_cgeVA7naqebvq4shfr15ShfrOevqtrRagelRAF_14qrsnhyg_qryrgrVF5_RRRRRRAF_19__znc_inyhr_pbzcnerVvF9_AF_4yrffVvRRYo1RRRAF_9nyybpngbeVF9_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVF9_CAF_11__gerr_abqrVF9_CiRRyRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVvAF_10havdhr_cgeVA7naqebvq4shfr15ShfrOevqtrRagelRAF_14qrsnhyg_qryrgrVF5_RRRRRRAF_19__znc_inyhr_pbzcnerVvF9_AF_4yrffVvRRYo1RRRAF_9nyybpngbeVF9_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVF9_CAF_11__gerr_abqrVF9_CiRRyRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVvAF_10havdhr_cgeVA7naqebvq4shfr15ShfrOevqtrRagelRAF_14qrsnhyg_qryrgrVF5_RRRRRRAF_19__znc_inyhr_pbzcnerVvF9_AF_4yrffVvRRYo1RRRAF_9nyybpngbeVF9_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVF9_CAF_11__gerr_abqrVF9_CiRRyRR:
 nop
@@ -58,12 +58,12 @@
 b__MA7naqebvq4shfr11ShfrNccYbbcP1RBAF_4onfr14havdhr_sq_vzcyVAF2_13QrsnhygPybfreRRR:
 nop
 .text
-.globl b__MA7naqebvq4shfr11ShfrZrffntrVAF0_11ShfrErdhrfgRR11ErnqBeNtnvaRv
+.weak b__MA7naqebvq4shfr11ShfrZrffntrVAF0_11ShfrErdhrfgRR11ErnqBeNtnvaRv
 .type b__MA7naqebvq4shfr11ShfrZrffntrVAF0_11ShfrErdhrfgRR11ErnqBeNtnvaRv,%function
 b__MA7naqebvq4shfr11ShfrZrffntrVAF0_11ShfrErdhrfgRR11ErnqBeNtnvaRv:
 nop
 .text
-.globl b__MA7naqebvq4shfr11ShfrZrffntrVAF0_16ShfrErfcbafrOnfrVYz131072RRRR11ErnqBeNtnvaRv
+.weak b__MA7naqebvq4shfr11ShfrZrffntrVAF0_16ShfrErfcbafrOnfrVYz131072RRRR11ErnqBeNtnvaRv
 .type b__MA7naqebvq4shfr11ShfrZrffntrVAF0_16ShfrErfcbafrOnfrVYz131072RRRR11ErnqBeNtnvaRv,%function
 b__MA7naqebvq4shfr11ShfrZrffntrVAF0_16ShfrErfcbafrOnfrVYz131072RRRR11ErnqBeNtnvaRv:
 nop
@@ -73,7 +73,7 @@
 b__MAX7naqebvq4shfr15RcbyyPbagebyyre13VaibxrPbagebyRvvvCi:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVvAF_10havdhr_cgeVA7naqebvq4shfr15ShfrOevqtrRagelRAF_14qrsnhyg_qryrgrVF5_RRRRRRAF_19__znc_inyhr_pbzcnerVvF9_AF_4yrffVvRRYo1RRRAF_9nyybpngbeVF9_RRR7qrfgeblRCAF_11__gerr_abqrVF9_CiRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVvAF_10havdhr_cgeVA7naqebvq4shfr15ShfrOevqtrRagelRAF_14qrsnhyg_qryrgrVF5_RRRRRRAF_19__znc_inyhr_pbzcnerVvF9_AF_4yrffVvRRYo1RRRAF_9nyybpngbeVF9_RRR7qrfgeblRCAF_11__gerr_abqrVF9_CiRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVvAF_10havdhr_cgeVA7naqebvq4shfr15ShfrOevqtrRagelRAF_14qrsnhyg_qryrgrVF5_RRRRRRAF_19__znc_inyhr_pbzcnerVvF9_AF_4yrffVvRRYo1RRRAF_9nyybpngbeVF9_RRR7qrfgeblRCAF_11__gerr_abqrVF9_CiRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVvAF_10havdhr_cgeVA7naqebvq4shfr15ShfrOevqtrRagelRAF_14qrsnhyg_qryrgrVF5_RRRRRRAF_19__znc_inyhr_pbzcnerVvF9_AF_4yrffVvRRYo1RRRAF_9nyybpngbeVF9_RRR7qrfgeblRCAF_11__gerr_abqrVF9_CiRR:
 nop
@@ -88,17 +88,17 @@
 b__MA7naqebvq4shfr11ShfrNccYbbcP2RBAF_4onfr14havdhr_sq_vzcyVAF2_13QrsnhygPybfreRRR:
 nop
 .text
-.globl b__MA7naqebvq4shfr11ShfrZrffntrVAF0_11ShfrErdhrfgRR4ErnqRv
+.weak b__MA7naqebvq4shfr11ShfrZrffntrVAF0_11ShfrErdhrfgRR4ErnqRv
 .type b__MA7naqebvq4shfr11ShfrZrffntrVAF0_11ShfrErdhrfgRR4ErnqRv,%function
 b__MA7naqebvq4shfr11ShfrZrffntrVAF0_11ShfrErdhrfgRR4ErnqRv:
 nop
 .text
-.globl b__MA7naqebvq4shfr11ShfrZrffntrVAF0_16ShfrErfcbafrOnfrVYz131072RRRR4ErnqRv
+.weak b__MA7naqebvq4shfr11ShfrZrffntrVAF0_16ShfrErfcbafrOnfrVYz131072RRRR4ErnqRv
 .type b__MA7naqebvq4shfr11ShfrZrffntrVAF0_16ShfrErfcbafrOnfrVYz131072RRRR4ErnqRv,%function
 b__MA7naqebvq4shfr11ShfrZrffntrVAF0_16ShfrErfcbafrOnfrVYz131072RRRR4ErnqRv:
 nop
 .text
-.globl b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
+.weak b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
 .type b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_,%function
 b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_:
 nop
@@ -108,7 +108,7 @@
 b__MA7naqebvq4shfr10ShfrOhssre10UnaqyrVavgRi:
 nop
 .text
-.globl b__MA7naqebvq4shfr11ShfrZrffntrVAF0_16ShfrErfcbafrOnfrVYz0RRRR11ErnqBeNtnvaRv
+.weak b__MA7naqebvq4shfr11ShfrZrffntrVAF0_16ShfrErfcbafrOnfrVYz0RRRR11ErnqBeNtnvaRv
 .type b__MA7naqebvq4shfr11ShfrZrffntrVAF0_16ShfrErfcbafrOnfrVYz0RRRR11ErnqBeNtnvaRv,%function
 b__MA7naqebvq4shfr11ShfrZrffntrVAF0_16ShfrErfcbafrOnfrVYz0RRRR11ErnqBeNtnvaRv:
 nop
@@ -118,27 +118,27 @@
 b__MA7naqebvq4shfr15RcbyyPbagebyyre5NqqSqRvvCi:
 nop
 .text
-.globl b__MA7naqebvq4shfr11ShfrZrffntrVAF0_16ShfrErfcbafrOnfrVYz0RRRR4ErnqRv
+.weak b__MA7naqebvq4shfr11ShfrZrffntrVAF0_16ShfrErfcbafrOnfrVYz0RRRR4ErnqRv
 .type b__MA7naqebvq4shfr11ShfrZrffntrVAF0_16ShfrErfcbafrOnfrVYz0RRRR4ErnqRv,%function
 b__MA7naqebvq4shfr11ShfrZrffntrVAF0_16ShfrErfcbafrOnfrVYz0RRRR4ErnqRv:
 nop
 .text
-.globl b__MA7naqebvq4shfr16ShfrErfcbafrOnfrVYz131072RR5ErfrgRwvz
+.weak b__MA7naqebvq4shfr16ShfrErfcbafrOnfrVYz131072RR5ErfrgRwvz
 .type b__MA7naqebvq4shfr16ShfrErfcbafrOnfrVYz131072RR5ErfrgRwvz,%function
 b__MA7naqebvq4shfr16ShfrErfcbafrOnfrVYz131072RR5ErfrgRwvz:
 nop
 .text
-.globl b__MAX7naqebvq4shfr11ShfrZrffntrVAF0_11ShfrErdhrfgRR13JevgrJvguObqlRvzCXi
+.weak b__MAX7naqebvq4shfr11ShfrZrffntrVAF0_11ShfrErdhrfgRR13JevgrJvguObqlRvzCXi
 .type b__MAX7naqebvq4shfr11ShfrZrffntrVAF0_11ShfrErdhrfgRR13JevgrJvguObqlRvzCXi,%function
 b__MAX7naqebvq4shfr11ShfrZrffntrVAF0_11ShfrErdhrfgRR13JevgrJvguObqlRvzCXi:
 nop
 .text
-.globl b__MAX7naqebvq4shfr11ShfrZrffntrVAF0_16ShfrErfcbafrOnfrVYz131072RRRR13JevgrJvguObqlRvzCXi
+.weak b__MAX7naqebvq4shfr11ShfrZrffntrVAF0_16ShfrErfcbafrOnfrVYz131072RRRR13JevgrJvguObqlRvzCXi
 .type b__MAX7naqebvq4shfr11ShfrZrffntrVAF0_16ShfrErfcbafrOnfrVYz131072RRRR13JevgrJvguObqlRvzCXi,%function
 b__MAX7naqebvq4shfr11ShfrZrffntrVAF0_16ShfrErfcbafrOnfrVYz131072RRRR13JevgrJvguObqlRvzCXi:
 nop
 .text
-.globl b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
+.weak b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
 .type b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_,%function
 b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_:
 nop
@@ -153,12 +153,12 @@
 b__MA7naqebvq4shfr11ShfrErdhrfg5ErfrgRwwz:
 nop
 .text
-.globl b__MA7naqebvq4shfr16ShfrErfcbafrOnfrVYz0RR5ErfrgRwvz
+.weak b__MA7naqebvq4shfr16ShfrErfcbafrOnfrVYz0RR5ErfrgRwvz
 .type b__MA7naqebvq4shfr16ShfrErfcbafrOnfrVYz0RR5ErfrgRwvz,%function
 b__MA7naqebvq4shfr16ShfrErfcbafrOnfrVYz0RR5ErfrgRwvz:
 nop
 .text
-.globl b__MAX7naqebvq4shfr11ShfrZrffntrVAF0_16ShfrErfcbafrOnfrVYz0RRRR13JevgrJvguObqlRvzCXi
+.weak b__MAX7naqebvq4shfr11ShfrZrffntrVAF0_16ShfrErfcbafrOnfrVYz0RRRR13JevgrJvguObqlRvzCXi
 .type b__MAX7naqebvq4shfr11ShfrZrffntrVAF0_16ShfrErfcbafrOnfrVYz0RRRR13JevgrJvguObqlRvzCXi,%function
 b__MAX7naqebvq4shfr11ShfrZrffntrVAF0_16ShfrErfcbafrOnfrVYz0RRRR13JevgrJvguObqlRvzCXi:
 nop
@@ -183,12 +183,12 @@
 b__MA7naqebvq4shfr14ShfrOevqtrYbbcP1Ri:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzwRRAF_22__habeqrerq_znc_unfureVzF2_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF2_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF2_RRR25__rzcynpr_havdhr_xrl_netfVzWEzEXwRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF2_CiRRRRoRREXG_QcBG0_
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzwRRAF_22__habeqrerq_znc_unfureVzF2_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF2_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF2_RRR25__rzcynpr_havdhr_xrl_netfVzWEzEXwRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF2_CiRRRRoRREXG_QcBG0_
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzwRRAF_22__habeqrerq_znc_unfureVzF2_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF2_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF2_RRR25__rzcynpr_havdhr_xrl_netfVzWEzEXwRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF2_CiRRRRoRREXG_QcBG0_,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzwRRAF_22__habeqrerq_znc_unfureVzF2_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF2_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF2_RRR25__rzcynpr_havdhr_xrl_netfVzWEzEXwRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF2_CiRRRRoRREXG_QcBG0_:
 nop
 .text
-.globl b__MAFg3__124__chg_punenpgre_frdhraprVpAF_11pune_genvgfVpRRRREAF_13onfvp_bfgernzVG_G0_RRF7_CXF4_z
+.weak b__MAFg3__124__chg_punenpgre_frdhraprVpAF_11pune_genvgfVpRRRREAF_13onfvp_bfgernzVG_G0_RRF7_CXF4_z
 .type b__MAFg3__124__chg_punenpgre_frdhraprVpAF_11pune_genvgfVpRRRREAF_13onfvp_bfgernzVG_G0_RRF7_CXF4_z,%function
 b__MAFg3__124__chg_punenpgre_frdhraprVpAF_11pune_genvgfVpRRRREAF_13onfvp_bfgernzVG_G0_RRF7_CXF4_z:
 nop
@@ -213,17 +213,17 @@
 b__MA7naqebvq4shfr14ShfrOevqtrYbbcQ2Ri:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVCA7naqebvq4shfr15ShfrOevqtrRagelRAF_4unfuVF4_RRAF_8rdhny_gbVF4_RRAF_9nyybpngbeVF4_RRR6erunfuRz
+.weak b__MAFg3__112__unfu_gnoyrVCA7naqebvq4shfr15ShfrOevqtrRagelRAF_4unfuVF4_RRAF_8rdhny_gbVF4_RRAF_9nyybpngbeVF4_RRR6erunfuRz
 .type b__MAFg3__112__unfu_gnoyrVCA7naqebvq4shfr15ShfrOevqtrRagelRAF_4unfuVF4_RRAF_8rdhny_gbVF4_RRAF_9nyybpngbeVF4_RRR6erunfuRz,%function
 b__MAFg3__112__unfu_gnoyrVCA7naqebvq4shfr15ShfrOevqtrRagelRAF_4unfuVF4_RRAF_8rdhny_gbVF4_RRAF_9nyybpngbeVF4_RRR6erunfuRz:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVCA7naqebvq4shfr15ShfrOevqtrRagelRAF_4unfuVF4_RRAF_8rdhny_gbVF4_RRAF_9nyybpngbeVF4_RRR8__erunfuRz
+.weak b__MAFg3__112__unfu_gnoyrVCA7naqebvq4shfr15ShfrOevqtrRagelRAF_4unfuVF4_RRAF_8rdhny_gbVF4_RRAF_9nyybpngbeVF4_RRR8__erunfuRz
 .type b__MAFg3__112__unfu_gnoyrVCA7naqebvq4shfr15ShfrOevqtrRagelRAF_4unfuVF4_RRAF_8rdhny_gbVF4_RRAF_9nyybpngbeVF4_RRR8__erunfuRz,%function
 b__MAFg3__112__unfu_gnoyrVCA7naqebvq4shfr15ShfrOevqtrRagelRAF_4unfuVF4_RRAF_8rdhny_gbVF4_RRAF_9nyybpngbeVF4_RRR8__erunfuRz:
 nop
 .text
-.globl b__MAFg3__16irpgbeV11rcbyy_riragAF_9nyybpngbeVF1_RRR8__nccraqRz
+.weak b__MAFg3__16irpgbeV11rcbyy_riragAF_9nyybpngbeVF1_RRR8__nccraqRz
 .type b__MAFg3__16irpgbeV11rcbyy_riragAF_9nyybpngbeVF1_RRR8__nccraqRz,%function
 b__MAFg3__16irpgbeV11rcbyy_riragAF_9nyybpngbeVF1_RRR8__nccraqRz:
 nop
@@ -233,22 +233,22 @@
 b__MA7naqebvq4shfr15RcbyyPbagebyyre4JnvgRz:
 nop
 .text
-.globl b__MA7naqebvq4shfr16ShfrErfcbafrOnfrVYz131072RR11ErfrgUrnqreRwvz
+.weak b__MA7naqebvq4shfr16ShfrErfcbafrOnfrVYz131072RR11ErfrgUrnqreRwvz
 .type b__MA7naqebvq4shfr16ShfrErfcbafrOnfrVYz131072RR11ErfrgUrnqreRwvz,%function
 b__MA7naqebvq4shfr16ShfrErfcbafrOnfrVYz131072RR11ErfrgUrnqreRwvz:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzwRRAF_22__habeqrerq_znc_unfureVzF2_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF2_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF2_RRR6erunfuRz
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzwRRAF_22__habeqrerq_znc_unfureVzF2_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF2_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF2_RRR6erunfuRz
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzwRRAF_22__habeqrerq_znc_unfureVzF2_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF2_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF2_RRR6erunfuRz,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzwRRAF_22__habeqrerq_znc_unfureVzF2_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF2_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF2_RRR6erunfuRz:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzwRRAF_22__habeqrerq_znc_unfureVzF2_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF2_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF2_RRR8__erunfuRz
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzwRRAF_22__habeqrerq_znc_unfureVzF2_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF2_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF2_RRR8__erunfuRz
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzwRRAF_22__habeqrerq_znc_unfureVzF2_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF2_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF2_RRR8__erunfuRz,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzwRRAF_22__habeqrerq_znc_unfureVzF2_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF2_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF2_RRR8__erunfuRz:
 nop
 .text
-.globl b__MAFg3__1yfVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRREAF_13onfvp_bfgernzVG_G0_RRF9_EXAF_12onfvp_fgevatVF6_F7_G1_RR
+.weak b__MAFg3__1yfVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRREAF_13onfvp_bfgernzVG_G0_RRF9_EXAF_12onfvp_fgevatVF6_F7_G1_RR
 .type b__MAFg3__1yfVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRREAF_13onfvp_bfgernzVG_G0_RRF9_EXAF_12onfvp_fgevatVF6_F7_G1_RR,%function
 b__MAFg3__1yfVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRREAF_13onfvp_bfgernzVG_G0_RRF9_EXAF_12onfvp_fgevatVF6_F7_G1_RR:
 nop
@@ -273,17 +273,17 @@
 b__MA7naqebvq4shfr11ShfrNccYbbc11ErcylFvzcyrRzv:
 nop
 .text
-.globl b__MA7naqebvq4shfr16ShfrErfcbafrOnfrVYz0RR11ErfrgUrnqreRwvz
+.weak b__MA7naqebvq4shfr16ShfrErfcbafrOnfrVYz0RR11ErfrgUrnqreRwvz
 .type b__MA7naqebvq4shfr16ShfrErfcbafrOnfrVYz0RR11ErfrgUrnqreRwvz,%function
 b__MA7naqebvq4shfr16ShfrErfcbafrOnfrVYz0RR11ErfrgUrnqreRwvz:
 nop
 .text
-.globl b__MAX7naqebvq4shfr11ShfrZrffntrVAF0_11ShfrErdhrfgRR12JevgrBeNtnvaRv
+.weak b__MAX7naqebvq4shfr11ShfrZrffntrVAF0_11ShfrErdhrfgRR12JevgrBeNtnvaRv
 .type b__MAX7naqebvq4shfr11ShfrZrffntrVAF0_11ShfrErdhrfgRR12JevgrBeNtnvaRv,%function
 b__MAX7naqebvq4shfr11ShfrZrffntrVAF0_11ShfrErdhrfgRR12JevgrBeNtnvaRv:
 nop
 .text
-.globl b__MAX7naqebvq4shfr11ShfrZrffntrVAF0_16ShfrErfcbafrOnfrVYz131072RRRR12JevgrBeNtnvaRv
+.weak b__MAX7naqebvq4shfr11ShfrZrffntrVAF0_16ShfrErfcbafrOnfrVYz131072RRRR12JevgrBeNtnvaRv
 .type b__MAX7naqebvq4shfr11ShfrZrffntrVAF0_16ShfrErfcbafrOnfrVYz131072RRRR12JevgrBeNtnvaRv,%function
 b__MAX7naqebvq4shfr11ShfrZrffntrVAF0_16ShfrErfcbafrOnfrVYz131072RRRR12JevgrBeNtnvaRv:
 nop
@@ -308,7 +308,7 @@
 b__MA7naqebvq4shfr19ShfrNccYbbcPnyyonpxQ0Ri:
 nop
 .text
-.globl b__MAX7naqebvq4shfr11ShfrZrffntrVAF0_16ShfrErfcbafrOnfrVYz131072RRRR5JevgrRv
+.weak b__MAX7naqebvq4shfr11ShfrZrffntrVAF0_16ShfrErfcbafrOnfrVYz131072RRRR5JevgrRv
 .type b__MAX7naqebvq4shfr11ShfrZrffntrVAF0_16ShfrErfcbafrOnfrVYz131072RRRR5JevgrRv,%function
 b__MAX7naqebvq4shfr11ShfrZrffntrVAF0_16ShfrErfcbafrOnfrVYz131072RRRR5JevgrRv:
 nop
@@ -318,12 +318,12 @@
 b__MGIA7naqebvq4shfr19ShfrNccYbbcPnyyonpxR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq4shfr11ShfrZrffntrVAF0_11ShfrErdhrfgRR5JevgrRv
+.weak b__MAX7naqebvq4shfr11ShfrZrffntrVAF0_11ShfrErdhrfgRR5JevgrRv
 .type b__MAX7naqebvq4shfr11ShfrZrffntrVAF0_11ShfrErdhrfgRR5JevgrRv,%function
 b__MAX7naqebvq4shfr11ShfrZrffntrVAF0_11ShfrErdhrfgRR5JevgrRv:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzwRRAF_22__habeqrerq_znc_unfureVzF2_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF2_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF2_RRR6erzbirRAF_21__unfu_pbafg_vgrengbeVCAF_11__unfu_abqrVF2_CiRRRR
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzwRRAF_22__habeqrerq_znc_unfureVzF2_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF2_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF2_RRR6erzbirRAF_21__unfu_pbafg_vgrengbeVCAF_11__unfu_abqrVF2_CiRRRR
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzwRRAF_22__habeqrerq_znc_unfureVzF2_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF2_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF2_RRR6erzbirRAF_21__unfu_pbafg_vgrengbeVCAF_11__unfu_abqrVF2_CiRRRR,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzwRRAF_22__habeqrerq_znc_unfureVzF2_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF2_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF2_RRR6erzbirRAF_21__unfu_pbafg_vgrengbeVCAF_11__unfu_abqrVF2_CiRRRR:
 nop
diff --git a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_005.S b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_005.S
index 72fdfed..b93f5b0 100644
--- a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_005.S
+++ b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_005.S
@@ -43,7 +43,7 @@
 b__MAX7naqebvq12ZrzbelQrnyre4urncRi:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RyRRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR15__rzcynpr_zhygvVWEXAF_4cnveVXF3_yRRRRRAF_15__gerr_vgrengbeVF4_CAF_11__gerr_abqrVF4_CiRRyRRQcBG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RyRRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR15__rzcynpr_zhygvVWEXAF_4cnveVXF3_yRRRRRAF_15__gerr_vgrengbeVF4_CAF_11__gerr_abqrVF4_CiRRyRRQcBG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RyRRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR15__rzcynpr_zhygvVWEXAF_4cnveVXF3_yRRRRRAF_15__gerr_vgrengbeVF4_CAF_11__gerr_abqrVF4_CiRRyRRQcBG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RyRRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR15__rzcynpr_zhygvVWEXAF_4cnveVXF3_yRRRRRAF_15__gerr_vgrengbeVF4_CAF_11__gerr_abqrVF4_CiRRyRRQcBG_:
 nop
@@ -63,7 +63,7 @@
 b__MA7naqebvq9UrncPnpur8trg_urncREXAF_2fcVAF_7VOvaqreRRR:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_2jcVAF_7VOvaqreRRRAF_9UrncPnpur11urnc_vasb_gRRRR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_2jcVAF_7VOvaqreRRRAF_9UrncPnpur11urnc_vasb_gRRRR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_2jcVAF_7VOvaqreRRRAF_9UrncPnpur11urnc_vasb_gRRRR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_2jcVAF_7VOvaqreRRRAF_9UrncPnpur11urnc_vasb_gRRRR7qb_pbclRCiCXiz:
 nop
@@ -73,7 +73,7 @@
 b__MGIA7naqebvq11VZrzbelUrncR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq6IrpgbeVCAF_7OOvaqreRR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVCAF_7OOvaqreRR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVCAF_7OOvaqreRR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVCAF_7OOvaqreRR8qb_fcyngRCiCXiz:
 nop
@@ -83,7 +83,7 @@
 b__MA7naqebvq14VNccBcfFreivprQ2Ri:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVCAF_7ErsOnfrRR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVCAF_7ErsOnfrRR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVCAF_7ErsOnfrRR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVCAF_7ErsOnfrRR7qb_pbclRCiCXiz:
 nop
@@ -98,7 +98,7 @@
 b__MAX7naqebvq2bf17CrefvfgnoyrOhaqyr15trgFgevatIrpgbeREXAF_8Fgevat16RCAFg3__16irpgbeVF2_AF5_9nyybpngbeVF2_RRRR:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVoAF_9nyybpngbeVoRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR7qrfgeblRCAF_11__gerr_abqrVF8_CiRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVoAF_9nyybpngbeVoRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR7qrfgeblRCAF_11__gerr_abqrVF8_CiRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVoAF_9nyybpngbeVoRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR7qrfgeblRCAF_11__gerr_abqrVF8_CiRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVoAF_9nyybpngbeVoRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR7qrfgeblRCAF_11__gerr_abqrVF8_CiRR:
 nop
@@ -118,7 +118,7 @@
 b__MGPA7naqebvq2bf17OcFreivprPnyyonpxR0_AF_11OcVagresnprVAF0_16VFreivprPnyyonpxRRR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGPA7naqebvq20OcCebprffVasbFreivprR0_AF_10VVagresnprR
+.weak b__MGPA7naqebvq20OcCebprffVasbFreivprR0_AF_10VVagresnprR
 .type b__MGPA7naqebvq20OcCebprffVasbFreivprR0_AF_10VVagresnprR,%object
 b__MGPA7naqebvq20OcCebprffVasbFreivprR0_AF_10VVagresnprR:
 .space __SIZEOF_POINTER__
@@ -138,17 +138,17 @@
 b__MGi0_a24_A7naqebvq2bf16VFreivprPnyyonpxQ0Ri:
 nop
 .text
-.globl b__MA7naqebvqyfVCiRREAF_10GrkgBhgchgRF3_EXG_
+.weak b__MA7naqebvqyfVCiRREAF_10GrkgBhgchgRF3_EXG_
 .type b__MA7naqebvqyfVCiRREAF_10GrkgBhgchgRF3_EXG_,%function
 b__MA7naqebvqyfVCiRREAF_10GrkgBhgchgRF3_EXG_:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVF3_AF_9nyybpngbeVF3_RRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR14__renfr_havdhrVF3_RRzEXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVF3_AF_9nyybpngbeVF3_RRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR14__renfr_havdhrVF3_RRzEXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVF3_AF_9nyybpngbeVF3_RRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR14__renfr_havdhrVF3_RRzEXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVF3_AF_9nyybpngbeVF3_RRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR14__renfr_havdhrVF3_RRzEXG_:
 nop
 .text
-.globl b__MA7naqebvq2fcVAF_12CebprffFgngrRRQ2Ri
+.weak b__MA7naqebvq2fcVAF_12CebprffFgngrRRQ2Ri
 .type b__MA7naqebvq2fcVAF_12CebprffFgngrRRQ2Ri,%function
 b__MA7naqebvq2fcVAF_12CebprffFgngrRRQ2Ri:
 nop
@@ -158,7 +158,7 @@
 b__MAX7naqebvq14ZrzbelUrncOnfr7trgOnfrRi:
 nop
 .text
-.globl b__MAXFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RyRRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR4svaqVF3_RRAF_21__gerr_pbafg_vgrengbeVF4_CAF_11__gerr_abqrVF4_CiRRyRREXG_
+.weak b__MAXFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RyRRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR4svaqVF3_RRAF_21__gerr_pbafg_vgrengbeVF4_CAF_11__gerr_abqrVF4_CiRRyRREXG_
 .type b__MAXFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RyRRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR4svaqVF3_RRAF_21__gerr_pbafg_vgrengbeVF4_CAF_11__gerr_abqrVF4_CiRRyRREXG_,%function
 b__MAXFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RyRRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR4svaqVF3_RRAF_21__gerr_pbafg_vgrengbeVF4_CAF_11__gerr_abqrVF4_CiRRyRREXG_:
 nop
@@ -218,7 +218,7 @@
 b__MGi0_a24_A7naqebvq9OcErsOnfrQ1Ri:
 nop
 .text
-.globl b__MA7naqebvqyfVN2_pRREAF_10GrkgBhgchgRF3_EXG_
+.weak b__MA7naqebvqyfVN2_pRREAF_10GrkgBhgchgRF3_EXG_
 .type b__MA7naqebvqyfVN2_pRREAF_10GrkgBhgchgRF3_EXG_,%function
 b__MA7naqebvqyfVN2_pRREAF_10GrkgBhgchgRF3_EXG_:
 nop
@@ -293,7 +293,7 @@
 b__MAX7naqebvq6Cnepry24ernqAhyynoyrFgebatOvaqreRCAF_2fcVAF_7VOvaqreRRR:
 nop
 .text
-.globl b__MAFg3__16__gerrVA7naqebvq8Fgevat16RAF_4yrffVF2_RRAF_9nyybpngbeVF2_RRR7qrfgeblRCAF_11__gerr_abqrVF2_CiRR
+.weak b__MAFg3__16__gerrVA7naqebvq8Fgevat16RAF_4yrffVF2_RRAF_9nyybpngbeVF2_RRR7qrfgeblRCAF_11__gerr_abqrVF2_CiRR
 .type b__MAFg3__16__gerrVA7naqebvq8Fgevat16RAF_4yrffVF2_RRAF_9nyybpngbeVF2_RRR7qrfgeblRCAF_11__gerr_abqrVF2_CiRR,%function
 b__MAFg3__16__gerrVA7naqebvq8Fgevat16RAF_4yrffVF2_RRAF_9nyybpngbeVF2_RRR7qrfgeblRCAF_11__gerr_abqrVF2_CiRR:
 nop
@@ -318,12 +318,12 @@
 b__MA7naqebvq8OcOvaqre4qhzcRvEXAF_6IrpgbeVAF_8Fgevat16RRR:
 nop
 .text
-.globl b__MAX7naqebvq6Cnepry23ernqAhyynoyrGlcrqIrpgbeVvRRvCAFg3__110havdhr_cgeVAF2_6irpgbeVG_AF2_9nyybpngbeVF5_RRRRAF2_14qrsnhyg_qryrgrVF8_RRRRZF0_XSvCF5_R
+.weak b__MAX7naqebvq6Cnepry23ernqAhyynoyrGlcrqIrpgbeVvRRvCAFg3__110havdhr_cgeVAF2_6irpgbeVG_AF2_9nyybpngbeVF5_RRRRAF2_14qrsnhyg_qryrgrVF8_RRRRZF0_XSvCF5_R
 .type b__MAX7naqebvq6Cnepry23ernqAhyynoyrGlcrqIrpgbeVvRRvCAFg3__110havdhr_cgeVAF2_6irpgbeVG_AF2_9nyybpngbeVF5_RRRRAF2_14qrsnhyg_qryrgrVF8_RRRRZF0_XSvCF5_R,%function
 b__MAX7naqebvq6Cnepry23ernqAhyynoyrGlcrqIrpgbeVvRRvCAFg3__110havdhr_cgeVAF2_6irpgbeVG_AF2_9nyybpngbeVF5_RRRRAF2_14qrsnhyg_qryrgrVF8_RRRRZF0_XSvCF5_R:
 nop
 .text
-.globl b__MAFg3__16irpgbeVoAF_9nyybpngbeVoRRR6erfvmrRzo
+.weak b__MAFg3__16irpgbeVoAF_9nyybpngbeVoRRR6erfvmrRzo
 .type b__MAFg3__16irpgbeVoAF_9nyybpngbeVoRRR6erfvmrRzo,%function
 b__MAFg3__16irpgbeVoAF_9nyybpngbeVoRRR6erfvmrRzo:
 nop
@@ -338,7 +338,7 @@
 b__MGGA7naqebvq2bf23VFreivprPnyyonpxQrsnhygR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_8Fgevat16RR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_8Fgevat16RR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_8Fgevat16RR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_8Fgevat16RR8qb_fcyngRCiCXiz:
 nop
@@ -348,12 +348,12 @@
 b__MAX7naqebvq22FvzcyrOrfgSvgNyybpngbe4qhzcREAF_7Fgevat8RCXp:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVyAF_9nyybpngbeVyRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR4svaqVF3_RRAF_15__gerr_vgrengbeVF8_CAF_11__gerr_abqrVF8_CiRRyRREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVyAF_9nyybpngbeVyRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR4svaqVF3_RRAF_15__gerr_vgrengbeVF8_CAF_11__gerr_abqrVF8_CiRRyRREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVyAF_9nyybpngbeVyRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR4svaqVF3_RRAF_15__gerr_vgrengbeVF8_CAF_11__gerr_abqrVF8_CiRRyRREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVyAF_9nyybpngbeVyRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR4svaqVF3_RRAF_15__gerr_vgrengbeVF8_CAF_11__gerr_abqrVF8_CiRRyRREXG_:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RoRRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR25__rzcynpr_havdhr_xrl_netfVF3_WEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXF3_RRRAFT_VWRRRRRRAF_4cnveVAF_15__gerr_vgrengbeVF4_CAF_11__gerr_abqrVF4_CiRRyRRoRREXG_QcBG0_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RoRRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR25__rzcynpr_havdhr_xrl_netfVF3_WEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXF3_RRRAFT_VWRRRRRRAF_4cnveVAF_15__gerr_vgrengbeVF4_CAF_11__gerr_abqrVF4_CiRRyRRoRREXG_QcBG0_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RoRRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR25__rzcynpr_havdhr_xrl_netfVF3_WEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXF3_RRRAFT_VWRRRRRRAF_4cnveVAF_15__gerr_vgrengbeVF4_CAF_11__gerr_abqrVF4_CiRRyRRoRREXG_QcBG0_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RoRRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR25__rzcynpr_havdhr_xrl_netfVF3_WEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXF3_RRRAFT_VWRRRRRRAF_4cnveVAF_15__gerr_vgrengbeVF4_CAF_11__gerr_abqrVF4_CiRRyRRoRREXG_QcBG0_:
 nop
@@ -363,7 +363,7 @@
 b__MA7naqebvq7pbagrag2cz28VCnpxntrZnantreAngvirQrsnhyg29trgGnetrgFqxIrefvbaSbeCnpxntrREXAF_8Fgevat16RCv:
 nop
 .data
-.globl b__MGPA7naqebvq16OcNccBcfPnyyonpxR0_AF_15VNccBcfPnyyonpxR
+.weak b__MGPA7naqebvq16OcNccBcfPnyyonpxR0_AF_15VNccBcfPnyyonpxR
 .type b__MGPA7naqebvq16OcNccBcfPnyyonpxR0_AF_15VNccBcfPnyyonpxR,%object
 b__MGPA7naqebvq16OcNccBcfPnyyonpxR0_AF_15VNccBcfPnyyonpxR:
 .space __SIZEOF_POINTER__
@@ -393,12 +393,12 @@
 b__MGua8_A7naqebvq10ZrzbelOnfrQ0Ri:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVqAF_9nyybpngbeVqRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR25__rzcynpr_havdhr_xrl_netfVF3_WEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXF3_RRRAFW_VWRRRRRRAF_4cnveVAF_15__gerr_vgrengbeVF8_CAF_11__gerr_abqrVF8_CiRRyRRoRREXG_QcBG0_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVqAF_9nyybpngbeVqRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR25__rzcynpr_havdhr_xrl_netfVF3_WEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXF3_RRRAFW_VWRRRRRRAF_4cnveVAF_15__gerr_vgrengbeVF8_CAF_11__gerr_abqrVF8_CiRRyRRoRREXG_QcBG0_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVqAF_9nyybpngbeVqRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR25__rzcynpr_havdhr_xrl_netfVF3_WEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXF3_RRRAFW_VWRRRRRRAF_4cnveVAF_15__gerr_vgrengbeVF8_CAF_11__gerr_abqrVF8_CiRRyRRoRREXG_QcBG0_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVqAF_9nyybpngbeVqRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR25__rzcynpr_havdhr_xrl_netfVF3_WEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXF3_RRRAFW_VWRRRRRRAF_4cnveVAF_15__gerr_vgrengbeVF8_CAF_11__gerr_abqrVF8_CiRRyRRoRREXG_QcBG0_:
 nop
 .text
-.globl b__MAFg3__16irpgbeVvAF_9nyybpngbeVvRRRP2REXF3_
+.weak b__MAFg3__16irpgbeVvAF_9nyybpngbeVvRRRP2REXF3_
 .type b__MAFg3__16irpgbeVvAF_9nyybpngbeVvRRRP2REXF3_,%function
 b__MAFg3__16irpgbeVvAF_9nyybpngbeVvRRRP2REXF3_:
 nop
@@ -423,7 +423,7 @@
 b__MA7naqebvq14VCPGuernqFgngr24pyrneCebcntngrJbexFbheprRi:
 nop
 .text
-.globl b__MA7naqebvq2fcVAF_15VFreivprZnantreRRQ2Ri
+.weak b__MA7naqebvq2fcVAF_15VFreivprZnantreRRQ2Ri
 .type b__MA7naqebvq2fcVAF_15VFreivprZnantreRRQ2Ri,%function
 b__MA7naqebvq2fcVAF_15VFreivprZnantreRRQ2Ri:
 nop
@@ -443,7 +443,7 @@
 b__MGPA7naqebvq2bf16OaFreivprZnantreR8_AF_7OOvaqreR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_8OcOvaqre8BovghnelRR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_8OcOvaqre8BovghnelRR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_8OcOvaqre8BovghnelRR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_8OcOvaqre8BovghnelRR8qb_fcyngRCiCXiz:
 nop
@@ -458,12 +458,12 @@
 b__MAX7naqebvq6Cnepry17trgOyboNfuzrzFvmrRi:
 nop
 .text
-.globl b__MAFg3__16irpgbeVoAF_9nyybpngbeVoRRRnFREXF3_
+.weak b__MAFg3__16irpgbeVoAF_9nyybpngbeVoRRRnFREXF3_
 .type b__MAFg3__16irpgbeVoAF_9nyybpngbeVoRRRnFREXF3_,%function
 b__MAFg3__16irpgbeVoAF_9nyybpngbeVoRRRnFREXF3_:
 nop
 .data
-.globl b__MGIA7naqebvq12FbegrqIrpgbeVAF_8Fgevat16RRR
+.weak b__MGIA7naqebvq12FbegrqIrpgbeVAF_8Fgevat16RRR
 .type b__MGIA7naqebvq12FbegrqIrpgbeVAF_8Fgevat16RRR,%object
 b__MGIA7naqebvq12FbegrqIrpgbeVAF_8Fgevat16RRR:
 .space __SIZEOF_POINTER__
@@ -513,7 +513,7 @@
 b__MA7naqebvq6Cnepry7frgQngnRCXuz:
 nop
 .text
-.globl b__MAFg3__16irpgbeVoAF_9nyybpngbeVoRRR18__pbafgehpg_ng_raqVAF_14__ovg_vgrengbeVF3_Yo1RYz0RRRRRAF_9ranoyr_vsVKfe21__vf_sbejneq_vgrengbeVG_RR5inyhrRiR4glcrRF8_F8_
+.weak b__MAFg3__16irpgbeVoAF_9nyybpngbeVoRRR18__pbafgehpg_ng_raqVAF_14__ovg_vgrengbeVF3_Yo1RYz0RRRRRAF_9ranoyr_vsVKfe21__vf_sbejneq_vgrengbeVG_RR5inyhrRiR4glcrRF8_F8_
 .type b__MAFg3__16irpgbeVoAF_9nyybpngbeVoRRR18__pbafgehpg_ng_raqVAF_14__ovg_vgrengbeVF3_Yo1RYz0RRRRRAF_9ranoyr_vsVKfe21__vf_sbejneq_vgrengbeVG_RR5inyhrRiR4glcrRF8_F8_,%function
 b__MAFg3__16irpgbeVoAF_9nyybpngbeVoRRR18__pbafgehpg_ng_raqVAF_14__ovg_vgrengbeVF3_Yo1RYz0RRRRRAF_9ranoyr_vsVKfe21__vf_sbejneq_vgrengbeVG_RR5inyhrRiR4glcrRF8_F8_:
 nop
@@ -523,12 +523,12 @@
 b__MA7naqebvq19VCebprffVasbFreivprQ0Ri:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_8Fgevat16RR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq6IrpgbeVAF_8Fgevat16RR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq6IrpgbeVAF_8Fgevat16RR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq6IrpgbeVAF_8Fgevat16RR12qb_pbafgehpgRCiz:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_8OcOvaqre8BovghnelRR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq6IrpgbeVAF_8OcOvaqre8BovghnelRR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq6IrpgbeVAF_8OcOvaqre8BovghnelRR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq6IrpgbeVAF_8OcOvaqre8BovghnelRR12qb_pbafgehpgRCiz:
 nop
@@ -563,7 +563,7 @@
 b__MA7naqebvq7OOvaqre12trgRkgrafvbaRi:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_8OcOvaqre8BovghnelRR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_8OcOvaqre8BovghnelRR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_8OcOvaqre8BovghnelRR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_8OcOvaqre8BovghnelRR15qb_zbir_sbejneqRCiCXiz:
 nop
@@ -578,7 +578,7 @@
 b__MA7naqebvq2bf17CrefvfgnoyrOhaqyr15chgFgevatIrpgbeREXAF_8Fgevat16REXAFg3__16irpgbeVF2_AF5_9nyybpngbeVF2_RRRR:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVF3_AF_9nyybpngbeVF3_RRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR25__rzcynpr_havdhr_xrl_netfVF3_WEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXF3_RRRAFW_VWRRRRRRAF_4cnveVAF_15__gerr_vgrengbeVF8_CAF_11__gerr_abqrVF8_CiRRyRRoRREXG_QcBG0_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVF3_AF_9nyybpngbeVF3_RRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR25__rzcynpr_havdhr_xrl_netfVF3_WEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXF3_RRRAFW_VWRRRRRRAF_4cnveVAF_15__gerr_vgrengbeVF8_CAF_11__gerr_abqrVF8_CiRRyRRoRREXG_QcBG0_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVF3_AF_9nyybpngbeVF3_RRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR25__rzcynpr_havdhr_xrl_netfVF3_WEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXF3_RRRAFW_VWRRRRRRAF_4cnveVAF_15__gerr_vgrengbeVF8_CAF_11__gerr_abqrVF8_CiRRyRRoRREXG_QcBG0_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVF3_AF_9nyybpngbeVF3_RRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR25__rzcynpr_havdhr_xrl_netfVF3_WEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXF3_RRRAFW_VWRRRRRRAF_4cnveVAF_15__gerr_vgrengbeVF8_CAF_11__gerr_abqrVF8_CiRRyRRoRREXG_QcBG0_:
 nop
@@ -588,12 +588,12 @@
 b__MA7naqebvq11VZrzbelUrnc12qrsnhyg_vzcyR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__16irpgbeVyAF_9nyybpngbeVyRRR6nffvtaVCyRRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVyAF_15vgrengbe_genvgfVF7_R9ersreraprRRR5inyhrRiR4glcrRF7_F7_
+.weak b__MAFg3__16irpgbeVyAF_9nyybpngbeVyRRR6nffvtaVCyRRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVyAF_15vgrengbe_genvgfVF7_R9ersreraprRRR5inyhrRiR4glcrRF7_F7_
 .type b__MAFg3__16irpgbeVyAF_9nyybpngbeVyRRR6nffvtaVCyRRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVyAF_15vgrengbe_genvgfVF7_R9ersreraprRRR5inyhrRiR4glcrRF7_F7_,%function
 b__MAFg3__16irpgbeVyAF_9nyybpngbeVyRRR6nffvtaVCyRRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVyAF_15vgrengbe_genvgfVF7_R9ersreraprRRR5inyhrRiR4glcrRF7_F7_:
 nop
 .data
-.globl b__MGIA7naqebvq12SqGrkgBhgchgR
+.weak b__MGIA7naqebvq12SqGrkgBhgchgR
 .type b__MGIA7naqebvq12SqGrkgBhgchgR,%object
 b__MGIA7naqebvq12SqGrkgBhgchgR:
 .space __SIZEOF_POINTER__
@@ -633,7 +633,7 @@
 b__MA7naqebvq2bf16VFreivprPnyyonpxQ1Ri:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVvAF_9nyybpngbeVvRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR14__renfr_havdhrVF3_RRzEXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVvAF_9nyybpngbeVvRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR14__renfr_havdhrVF3_RRzEXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVvAF_9nyybpngbeVvRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR14__renfr_havdhrVF3_RRzEXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVvAF_9nyybpngbeVvRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR14__renfr_havdhrVF3_RRzEXG_:
 nop
@@ -718,7 +718,7 @@
 b__MA7naqebvq6Cnepry15jevgrPuneIrpgbeREXAFg3__16irpgbeVQfAF1_9nyybpngbeVQfRRRR:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVvR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq6IrpgbeVvR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq6IrpgbeVvR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq6IrpgbeVvR12qb_pbafgehpgRCiz:
 nop
@@ -773,7 +773,7 @@
 b__MGPA7naqebvq14OaOnggrelFgngfR8_AF_7VOvaqreR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq9FvatyrgbaVAF_18CebprffVasbFreivprRR11trgVafgnaprRi
+.weak b__MA7naqebvq9FvatyrgbaVAF_18CebprffVasbFreivprRR11trgVafgnaprRi
 .type b__MA7naqebvq9FvatyrgbaVAF_18CebprffVasbFreivprRR11trgVafgnaprRi,%function
 b__MA7naqebvq9FvatyrgbaVAF_18CebprffVasbFreivprRR11trgVafgnaprRi:
 nop
@@ -788,7 +788,7 @@
 b__MAX7naqebvq6Cnepry37hcqngrJbexFbheprErdhrfgUrnqreCbfvgvbaRi:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_10havdhr_cgeVA7naqebvq8Fgevat16RAF_14qrsnhyg_qryrgrVF3_RRRRAF_9nyybpngbeVF6_RRR8__nccraqRz
+.weak b__MAFg3__16irpgbeVAF_10havdhr_cgeVA7naqebvq8Fgevat16RAF_14qrsnhyg_qryrgrVF3_RRRRAF_9nyybpngbeVF6_RRR8__nccraqRz
 .type b__MAFg3__16irpgbeVAF_10havdhr_cgeVA7naqebvq8Fgevat16RAF_14qrsnhyg_qryrgrVF3_RRRRAF_9nyybpngbeVF6_RRR8__nccraqRz,%function
 b__MAFg3__16irpgbeVAF_10havdhr_cgeVA7naqebvq8Fgevat16RAF_14qrsnhyg_qryrgrVF3_RRRRAF_9nyybpngbeVF6_RRR8__nccraqRz:
 nop
@@ -808,7 +808,7 @@
 b__MAX7naqebvq7OOvaqre22trgVagresnprQrfpevcgbeRi:
 nop
 .text
-.globl b__MA7naqebvq11OaVagresnprVAF_15VErfhygErprvireRR10baNfOvaqreRi
+.weak b__MA7naqebvq11OaVagresnprVAF_15VErfhygErprvireRR10baNfOvaqreRi
 .type b__MA7naqebvq11OaVagresnprVAF_15VErfhygErprvireRR10baNfOvaqreRi,%function
 b__MA7naqebvq11OaVagresnprVAF_15VErfhygErprvireRR10baNfOvaqreRi:
 nop
@@ -833,12 +833,12 @@
 b__MAX7naqebvq2bf17CrefvfgnoyrOhaqyr9trgFgevatREXAF_8Fgevat16RCF2_:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVyAF_9nyybpngbeVyRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR30__rzcynpr_uvag_havdhr_xrl_netfVF3_WEXAF_4cnveVXF3_F7_RRRRRAF_15__gerr_vgrengbeVF8_CAF_11__gerr_abqrVF8_CiRRyRRAF_21__gerr_pbafg_vgrengbeVF8_FC_yRREXG_QcBG0_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVyAF_9nyybpngbeVyRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR30__rzcynpr_uvag_havdhr_xrl_netfVF3_WEXAF_4cnveVXF3_F7_RRRRRAF_15__gerr_vgrengbeVF8_CAF_11__gerr_abqrVF8_CiRRyRRAF_21__gerr_pbafg_vgrengbeVF8_FC_yRREXG_QcBG0_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVyAF_9nyybpngbeVyRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR30__rzcynpr_uvag_havdhr_xrl_netfVF3_WEXAF_4cnveVXF3_F7_RRRRRAF_15__gerr_vgrengbeVF8_CAF_11__gerr_abqrVF8_CiRRyRRAF_21__gerr_pbafg_vgrengbeVF8_FC_yRREXG_QcBG0_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVyAF_9nyybpngbeVyRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR30__rzcynpr_uvag_havdhr_xrl_netfVF3_WEXAF_4cnveVXF3_F7_RRRRRAF_15__gerr_vgrengbeVF8_CAF_11__gerr_abqrVF8_CiRRyRRAF_21__gerr_pbafg_vgrengbeVF8_FC_yRREXG_QcBG0_:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RF3_RRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVF4_CAF_11__gerr_abqrVF4_CiRRyRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RF3_RRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVF4_CAF_11__gerr_abqrVF4_CiRRyRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RF3_RRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVF4_CAF_11__gerr_abqrVF4_CiRRyRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RF3_RRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVF4_CAF_11__gerr_abqrVF4_CiRRyRR:
 nop
@@ -883,7 +883,7 @@
 b__MAX7naqebvq14VCPGuernqFgngr25fubhyqCebcntngrJbexFbheprRi:
 nop
 .data
-.globl b__MGGAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
+.weak b__MGGAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
 .type b__MGGAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR,%object
 b__MGGAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR:
 .space __SIZEOF_POINTER__
@@ -933,12 +933,12 @@
 b__MA7naqebvq22FvzcyrOrfgSvgNyybpngbeP2Rz:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RF3_RRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR25__rzcynpr_havdhr_xrl_netfVF3_WEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXF3_RRRAFT_VWRRRRRRAF_4cnveVAF_15__gerr_vgrengbeVF4_CAF_11__gerr_abqrVF4_CiRRyRRoRREXG_QcBG0_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RF3_RRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR25__rzcynpr_havdhr_xrl_netfVF3_WEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXF3_RRRAFT_VWRRRRRRAF_4cnveVAF_15__gerr_vgrengbeVF4_CAF_11__gerr_abqrVF4_CiRRyRRoRREXG_QcBG0_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RF3_RRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR25__rzcynpr_havdhr_xrl_netfVF3_WEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXF3_RRRAFT_VWRRRRRRAF_4cnveVAF_15__gerr_vgrengbeVF4_CAF_11__gerr_abqrVF4_CiRRyRRoRREXG_QcBG0_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RF3_RRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR25__rzcynpr_havdhr_xrl_netfVF3_WEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXF3_RRRAFT_VWRRRRRRAF_4cnveVAF_15__gerr_vgrengbeVF4_CAF_11__gerr_abqrVF4_CiRRyRRoRREXG_QcBG0_:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RoRRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR12__svaq_rdhnyVF3_RRECAF_16__gerr_abqr_onfrVCiRRAF_21__gerr_pbafg_vgrengbeVF4_CAF_11__gerr_abqrVF4_FR_RRyRRECAF_15__gerr_raq_abqrVFT_RRFU_EXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RoRRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR12__svaq_rdhnyVF3_RRECAF_16__gerr_abqr_onfrVCiRRAF_21__gerr_pbafg_vgrengbeVF4_CAF_11__gerr_abqrVF4_FR_RRyRRECAF_15__gerr_raq_abqrVFT_RRFU_EXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RoRRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR12__svaq_rdhnyVF3_RRECAF_16__gerr_abqr_onfrVCiRRAF_21__gerr_pbafg_vgrengbeVF4_CAF_11__gerr_abqrVF4_FR_RRyRRECAF_15__gerr_raq_abqrVFT_RRFU_EXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RoRRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR12__svaq_rdhnyVF3_RRECAF_16__gerr_abqr_onfrVCiRRAF_21__gerr_pbafg_vgrengbeVF4_CAF_11__gerr_abqrVF4_FR_RRyRRECAF_15__gerr_raq_abqrVFT_RRFU_EXG_:
 nop
@@ -948,12 +948,12 @@
 b__MAX7naqebvq6Cnepry4ernqRCiz:
 nop
 .text
-.globl b__MA7naqebvq6Cnepry22hafnsrJevgrGlcrqIrpgbeVooRRvEXAFg3__16irpgbeVG_AF2_9nyybpngbeVF4_RRRRZF0_SvG0_R
+.weak b__MA7naqebvq6Cnepry22hafnsrJevgrGlcrqIrpgbeVooRRvEXAFg3__16irpgbeVG_AF2_9nyybpngbeVF4_RRRRZF0_SvG0_R
 .type b__MA7naqebvq6Cnepry22hafnsrJevgrGlcrqIrpgbeVooRRvEXAFg3__16irpgbeVG_AF2_9nyybpngbeVF4_RRRRZF0_SvG0_R,%function
 b__MA7naqebvq6Cnepry22hafnsrJevgrGlcrqIrpgbeVooRRvEXAFg3__16irpgbeVG_AF2_9nyybpngbeVF4_RRRRZF0_SvG0_R:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RqRRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR12__svaq_rdhnyVF3_RRECAF_16__gerr_abqr_onfrVCiRRAF_21__gerr_pbafg_vgrengbeVF4_CAF_11__gerr_abqrVF4_FR_RRyRRECAF_15__gerr_raq_abqrVFT_RRFU_EXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RqRRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR12__svaq_rdhnyVF3_RRECAF_16__gerr_abqr_onfrVCiRRAF_21__gerr_pbafg_vgrengbeVF4_CAF_11__gerr_abqrVF4_FR_RRyRRECAF_15__gerr_raq_abqrVFT_RRFU_EXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RqRRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR12__svaq_rdhnyVF3_RRECAF_16__gerr_abqr_onfrVCiRRAF_21__gerr_pbafg_vgrengbeVF4_CAF_11__gerr_abqrVF4_FR_RRyRRECAF_15__gerr_raq_abqrVFT_RRFU_EXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RqRRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR12__svaq_rdhnyVF3_RRECAF_16__gerr_abqr_onfrVCiRRAF_21__gerr_pbafg_vgrengbeVF4_CAF_11__gerr_abqrVF4_FR_RRyRRECAF_15__gerr_raq_abqrVFT_RRFU_EXG_:
 nop
@@ -993,7 +993,7 @@
 b__MAX7naqebvq6Cnepry14ernqOlgrIrpgbeRCAFg3__110havdhr_cgeVAF1_6irpgbeVuAF1_9nyybpngbeVuRRRRAF1_14qrsnhyg_qryrgrVF6_RRRR:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RyRRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR12__svaq_rdhnyVF3_RRECAF_16__gerr_abqr_onfrVCiRRAF_21__gerr_pbafg_vgrengbeVF4_CAF_11__gerr_abqrVF4_FR_RRyRRECAF_15__gerr_raq_abqrVFT_RRFU_EXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RyRRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR12__svaq_rdhnyVF3_RRECAF_16__gerr_abqr_onfrVCiRRAF_21__gerr_pbafg_vgrengbeVF4_CAF_11__gerr_abqrVF4_FR_RRyRRECAF_15__gerr_raq_abqrVFT_RRFU_EXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RyRRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR12__svaq_rdhnyVF3_RRECAF_16__gerr_abqr_onfrVCiRRAF_21__gerr_pbafg_vgrengbeVF4_CAF_11__gerr_abqrVF4_FR_RRyRRECAF_15__gerr_raq_abqrVFT_RRFU_EXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RyRRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR12__svaq_rdhnyVF3_RRECAF_16__gerr_abqr_onfrVCiRRAF_21__gerr_pbafg_vgrengbeVF4_CAF_11__gerr_abqrVF4_FR_RRyRRECAF_15__gerr_raq_abqrVFT_RRFU_EXG_:
 nop
@@ -1023,27 +1023,27 @@
 b__MA7naqebvq6ovaqre6Fgnghf14ernqSebzCnepryREXAF_6CnepryR:
 nop
 .text
-.globl b__MAX7naqebvq6Cnepry21hafnsrErnqGlcrqIrpgbeVQfQfRRvCAFg3__16irpgbeVG_AF2_9nyybpngbeVF4_RRRRZF0_XSvCG0_R
+.weak b__MAX7naqebvq6Cnepry21hafnsrErnqGlcrqIrpgbeVQfQfRRvCAFg3__16irpgbeVG_AF2_9nyybpngbeVF4_RRRRZF0_XSvCG0_R
 .type b__MAX7naqebvq6Cnepry21hafnsrErnqGlcrqIrpgbeVQfQfRRvCAFg3__16irpgbeVG_AF2_9nyybpngbeVF4_RRRRZF0_XSvCG0_R,%function
 b__MAX7naqebvq6Cnepry21hafnsrErnqGlcrqIrpgbeVQfQfRRvCAFg3__16irpgbeVG_AF2_9nyybpngbeVF4_RRRRZF0_XSvCG0_R:
 nop
 .text
-.globl b__MAX7naqebvq6Cnepry23ernqAhyynoyrGlcrqIrpgbeVqRRvCAFg3__110havdhr_cgeVAF2_6irpgbeVG_AF2_9nyybpngbeVF5_RRRRAF2_14qrsnhyg_qryrgrVF8_RRRRZF0_XSvCF5_R
+.weak b__MAX7naqebvq6Cnepry23ernqAhyynoyrGlcrqIrpgbeVqRRvCAFg3__110havdhr_cgeVAF2_6irpgbeVG_AF2_9nyybpngbeVF5_RRRRAF2_14qrsnhyg_qryrgrVF8_RRRRZF0_XSvCF5_R
 .type b__MAX7naqebvq6Cnepry23ernqAhyynoyrGlcrqIrpgbeVqRRvCAFg3__110havdhr_cgeVAF2_6irpgbeVG_AF2_9nyybpngbeVF5_RRRRAF2_14qrsnhyg_qryrgrVF8_RRRRZF0_XSvCF5_R,%function
 b__MAX7naqebvq6Cnepry23ernqAhyynoyrGlcrqIrpgbeVqRRvCAFg3__110havdhr_cgeVAF2_6irpgbeVG_AF2_9nyybpngbeVF5_RRRRAF2_14qrsnhyg_qryrgrVF8_RRRRZF0_XSvCF5_R:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVqAF_9nyybpngbeVqRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR14__renfr_havdhrVF3_RRzEXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVqAF_9nyybpngbeVqRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR14__renfr_havdhrVF3_RRzEXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVqAF_9nyybpngbeVqRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR14__renfr_havdhrVF3_RRzEXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVqAF_9nyybpngbeVqRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR14__renfr_havdhrVF3_RRzEXG_:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVyAF_9nyybpngbeVyRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR14__nffvta_zhygvVAF_21__gerr_pbafg_vgrengbeVF8_CAF_11__gerr_abqrVF8_CiRRyRRRRiG_FZ_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVyAF_9nyybpngbeVyRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR14__nffvta_zhygvVAF_21__gerr_pbafg_vgrengbeVF8_CAF_11__gerr_abqrVF8_CiRRyRRRRiG_FZ_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVyAF_9nyybpngbeVyRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR14__nffvta_zhygvVAF_21__gerr_pbafg_vgrengbeVF8_CAF_11__gerr_abqrVF8_CiRRyRRRRiG_FZ_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVyAF_9nyybpngbeVyRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR14__nffvta_zhygvVAF_21__gerr_pbafg_vgrengbeVF8_CAF_11__gerr_abqrVF8_CiRRyRRRRiG_FZ_:
 nop
 .data
-.globl b__MGPA7naqebvq15OcNccBcfFreivprR0_AF_10VVagresnprR
+.weak b__MGPA7naqebvq15OcNccBcfFreivprR0_AF_10VVagresnprR
 .type b__MGPA7naqebvq15OcNccBcfFreivprR0_AF_10VVagresnprR,%object
 b__MGPA7naqebvq15OcNccBcfFreivprR0_AF_10VVagresnprR:
 .space __SIZEOF_POINTER__
@@ -1068,7 +1068,7 @@
 b__MGi0_a24_A7naqebvq14VNccBcfFreivprQ0Ri:
 nop
 .text
-.globl b__MA7naqebvqyfVzRREAF_10GrkgBhgchgRF2_EXG_
+.weak b__MA7naqebvqyfVzRREAF_10GrkgBhgchgRF2_EXG_
 .type b__MA7naqebvqyfVzRREAF_10GrkgBhgchgRF2_EXG_,%function
 b__MA7naqebvqyfVzRREAF_10GrkgBhgchgRF2_EXG_:
 nop
@@ -1093,12 +1093,12 @@
 b__MGi0_a24_A7naqebvq15VFreivprZnantreQ0Ri:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_12CebprffFgngr12unaqyr_ragelRR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_12CebprffFgngr12unaqyr_ragelRR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_12CebprffFgngr12unaqyr_ragelRR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_12CebprffFgngr12unaqyr_ragelRR8qb_fcyngRCiCXiz:
 nop
 .data
-.globl b__MGGA7naqebvq16OcNccBcfPnyyonpxR
+.weak b__MGGA7naqebvq16OcNccBcfPnyyonpxR
 .type b__MGGA7naqebvq16OcNccBcfPnyyonpxR,%object
 b__MGGA7naqebvq16OcNccBcfPnyyonpxR:
 .space __SIZEOF_POINTER__
@@ -1108,7 +1108,7 @@
 b__MGGA7naqebvq21VCrezvffvbaPbagebyyreR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIA7naqebvq22OcCrezvffvbaPbagebyyreR
+.weak b__MGIA7naqebvq22OcCrezvffvbaPbagebyyreR
 .type b__MGIA7naqebvq22OcCrezvffvbaPbagebyyreR,%object
 b__MGIA7naqebvq22OcCrezvffvbaPbagebyyreR:
 .space __SIZEOF_POINTER__
@@ -1118,17 +1118,17 @@
 b__MGi0_a24_A7naqebvq10VVagresnprQ0Ri:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVCAF_7OOvaqreRR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVCAF_7OOvaqreRR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVCAF_7OOvaqreRR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVCAF_7OOvaqreRR15qb_zbir_sbejneqRCiCXiz:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVqAF_9nyybpngbeVqRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR12__svaq_rdhnyVF3_RRECAF_16__gerr_abqr_onfrVCiRRAF_21__gerr_pbafg_vgrengbeVF8_CAF_11__gerr_abqrVF8_FU_RRyRRECAF_15__gerr_raq_abqrVFW_RRFX_EXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVqAF_9nyybpngbeVqRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR12__svaq_rdhnyVF3_RRECAF_16__gerr_abqr_onfrVCiRRAF_21__gerr_pbafg_vgrengbeVF8_CAF_11__gerr_abqrVF8_FU_RRyRRECAF_15__gerr_raq_abqrVFW_RRFX_EXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVqAF_9nyybpngbeVqRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR12__svaq_rdhnyVF3_RRECAF_16__gerr_abqr_onfrVCiRRAF_21__gerr_pbafg_vgrengbeVF8_CAF_11__gerr_abqrVF8_FU_RRyRRECAF_15__gerr_raq_abqrVFW_RRFX_EXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVqAF_9nyybpngbeVqRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR12__svaq_rdhnyVF3_RRECAF_16__gerr_abqr_onfrVCiRRAF_21__gerr_pbafg_vgrengbeVF8_CAF_11__gerr_abqrVF8_FU_RRyRRECAF_15__gerr_raq_abqrVFW_RRFX_EXG_:
 nop
 .data
-.globl b__MGPA7naqebvq16OcNccBcfPnyyonpxR8_AF_9OcErsOnfrR
+.weak b__MGPA7naqebvq16OcNccBcfPnyyonpxR8_AF_9OcErsOnfrR
 .type b__MGPA7naqebvq16OcNccBcfPnyyonpxR8_AF_9OcErsOnfrR,%object
 b__MGPA7naqebvq16OcNccBcfPnyyonpxR8_AF_9OcErsOnfrR:
 .space __SIZEOF_POINTER__
@@ -1143,7 +1143,7 @@
 b__MA7naqebvq2bf17CrefvfgnoyrOhaqyr10chgObbyrnaREXAF_8Fgevat16Ro:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_12CebprffFgngr12unaqyr_ragelRR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_12CebprffFgngr12unaqyr_ragelRR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_12CebprffFgngr12unaqyr_ragelRR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_12CebprffFgngr12unaqyr_ragelRR16qb_zbir_onpxjneqRCiCXiz:
 nop
@@ -1158,12 +1158,12 @@
 b__MA7naqebvq16VNpgvivglZnantre14trgQrsnhygVzcyRi:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVyAF_9nyybpngbeVyRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR15__rzcynpr_zhygvVWEXAF_4cnveVXF3_F7_RRRRRAF_15__gerr_vgrengbeVF8_CAF_11__gerr_abqrVF8_CiRRyRRQcBG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVyAF_9nyybpngbeVyRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR15__rzcynpr_zhygvVWEXAF_4cnveVXF3_F7_RRRRRAF_15__gerr_vgrengbeVF8_CAF_11__gerr_abqrVF8_CiRRyRRQcBG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVyAF_9nyybpngbeVyRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR15__rzcynpr_zhygvVWEXAF_4cnveVXF3_F7_RRRRRAF_15__gerr_vgrengbeVF8_CAF_11__gerr_abqrVF8_CiRRyRRQcBG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVyAF_9nyybpngbeVyRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR15__rzcynpr_zhygvVWEXAF_4cnveVXF3_F7_RRRRRAF_15__gerr_vgrengbeVF8_CAF_11__gerr_abqrVF8_CiRRyRRQcBG_:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVyAF_9nyybpngbeVyRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVF8_CAF_11__gerr_abqrVF8_CiRRyRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVyAF_9nyybpngbeVyRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVF8_CAF_11__gerr_abqrVF8_CiRRyRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVyAF_9nyybpngbeVyRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVF8_CAF_11__gerr_abqrVF8_CiRRyRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVyAF_9nyybpngbeVyRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVF8_CAF_11__gerr_abqrVF8_CiRRyRR:
 nop
@@ -1178,7 +1178,7 @@
 b__MGPA7naqebvq2bf22VFreivprZnantreQrsnhygR0_AF0_15VFreivprZnantreR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_8Fgevat16RR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_8Fgevat16RR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_8Fgevat16RR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_8Fgevat16RR10qb_qrfgeblRCiz:
 nop
@@ -1243,17 +1243,17 @@
 b__MA7naqebvq12VHvqBofreire10qrfpevcgbeR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_15CrezvffvbaPnpur5RagelRR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_15CrezvffvbaPnpur5RagelRR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_15CrezvffvbaPnpur5RagelRR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_15CrezvffvbaPnpur5RagelRR16qb_zbir_onpxjneqRCiCXiz:
 nop
 .text
-.globl b__MAXFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF2_2bf17CrefvfgnoyrOhaqyrRRRAF_19__znc_inyhr_pbzcnerVF3_F6_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF6_RRR4svaqVF3_RRAF_21__gerr_pbafg_vgrengbeVF6_CAF_11__gerr_abqrVF6_CiRRyRREXG_
+.weak b__MAXFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF2_2bf17CrefvfgnoyrOhaqyrRRRAF_19__znc_inyhr_pbzcnerVF3_F6_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF6_RRR4svaqVF3_RRAF_21__gerr_pbafg_vgrengbeVF6_CAF_11__gerr_abqrVF6_CiRRyRREXG_
 .type b__MAXFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF2_2bf17CrefvfgnoyrOhaqyrRRRAF_19__znc_inyhr_pbzcnerVF3_F6_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF6_RRR4svaqVF3_RRAF_21__gerr_pbafg_vgrengbeVF6_CAF_11__gerr_abqrVF6_CiRRyRREXG_,%function
 b__MAXFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF2_2bf17CrefvfgnoyrOhaqyrRRRAF_19__znc_inyhr_pbzcnerVF3_F6_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF6_RRR4svaqVF3_RRAF_21__gerr_pbafg_vgrengbeVF6_CAF_11__gerr_abqrVF6_CiRRyRREXG_:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVF3_AF_9nyybpngbeVF3_RRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR7qrfgeblRCAF_11__gerr_abqrVF8_CiRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVF3_AF_9nyybpngbeVF3_RRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR7qrfgeblRCAF_11__gerr_abqrVF8_CiRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVF3_AF_9nyybpngbeVF3_RRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR7qrfgeblRCAF_11__gerr_abqrVF8_CiRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVF3_AF_9nyybpngbeVF3_RRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR7qrfgeblRCAF_11__gerr_abqrVF8_CiRR:
 nop
@@ -1293,7 +1293,7 @@
 b__MA7naqebvq6Cnepry17jevgrQbhoyrIrpgbeREXAFg3__16irpgbeVqAF1_9nyybpngbeVqRRRR:
 nop
 .text
-.globl b__MAFg3__124__chg_punenpgre_frdhraprVpAF_11pune_genvgfVpRRRREAF_13onfvp_bfgernzVG_G0_RRF7_CXF4_z
+.weak b__MAFg3__124__chg_punenpgre_frdhraprVpAF_11pune_genvgfVpRRRREAF_13onfvp_bfgernzVG_G0_RRF7_CXF4_z
 .type b__MAFg3__124__chg_punenpgre_frdhraprVpAF_11pune_genvgfVpRRRREAF_13onfvp_bfgernzVG_G0_RRF7_CXF4_z,%function
 b__MAFg3__124__chg_punenpgre_frdhraprVpAF_11pune_genvgfVpRRRREAF_13onfvp_bfgernzVG_G0_RRF7_CXF4_z:
 nop
@@ -1303,7 +1303,7 @@
 b__MGIA7naqebvq21VZrqvnErfbheprZbavgbeR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq9FvatyrgbaVAF_18CebprffVasbFreivprRRQ2Ri
+.weak b__MA7naqebvq9FvatyrgbaVAF_18CebprffVasbFreivprRRQ2Ri
 .type b__MA7naqebvq9FvatyrgbaVAF_18CebprffVasbFreivprRRQ2Ri,%function
 b__MA7naqebvq9FvatyrgbaVAF_18CebprffVasbFreivprRRQ2Ri:
 nop
@@ -1328,7 +1328,7 @@
 b__MGi0_a24_A7naqebvq9UrncPnpurQ0Ri:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVCAF_7ErsOnfr12jrnxers_glcrRR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVCAF_7ErsOnfr12jrnxers_glcrRR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVCAF_7ErsOnfr12jrnxers_glcrRR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVCAF_7ErsOnfr12jrnxers_glcrRR15qb_zbir_sbejneqRCiCXiz:
 nop
@@ -1343,7 +1343,7 @@
 b__MA7naqebvq14VFuryyPnyyonpx10qrfpevcgbeR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGPA7naqebvq22OcCrezvffvbaPbagebyyreR0_AF_10VVagresnprR
+.weak b__MGPA7naqebvq22OcCrezvffvbaPbagebyyreR0_AF_10VVagresnprR
 .type b__MGPA7naqebvq22OcCrezvffvbaPbagebyyreR0_AF_10VVagresnprR,%object
 b__MGPA7naqebvq22OcCrezvffvbaPbagebyyreR0_AF_10VVagresnprR:
 .space __SIZEOF_POINTER__
@@ -1388,12 +1388,12 @@
 b__MAX7naqebvq6Cnepry16ernqQbhoyrIrpgbeRCAFg3__16irpgbeVqAF1_9nyybpngbeVqRRRR:
 nop
 .text
-.globl b__MAX7naqebvq6Cnepry16erfreirBhgIrpgbeVuRRvCAFg3__16irpgbeVG_AF2_9nyybpngbeVF4_RRRRCz
+.weak b__MAX7naqebvq6Cnepry16erfreirBhgIrpgbeVuRRvCAFg3__16irpgbeVG_AF2_9nyybpngbeVF4_RRRRCz
 .type b__MAX7naqebvq6Cnepry16erfreirBhgIrpgbeVuRRvCAFg3__16irpgbeVG_AF2_9nyybpngbeVF4_RRRRCz,%function
 b__MAX7naqebvq6Cnepry16erfreirBhgIrpgbeVuRRvCAFg3__16irpgbeVG_AF2_9nyybpngbeVF4_RRRRCz:
 nop
 .text
-.globl b__MAXFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RoRRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR4svaqVF3_RRAF_21__gerr_pbafg_vgrengbeVF4_CAF_11__gerr_abqrVF4_CiRRyRREXG_
+.weak b__MAXFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RoRRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR4svaqVF3_RRAF_21__gerr_pbafg_vgrengbeVF4_CAF_11__gerr_abqrVF4_CiRRyRREXG_
 .type b__MAXFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RoRRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR4svaqVF3_RRAF_21__gerr_pbafg_vgrengbeVF4_CAF_11__gerr_abqrVF4_CiRRyRREXG_,%function
 b__MAXFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RoRRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR4svaqVF3_RRAF_21__gerr_pbafg_vgrengbeVF4_CAF_11__gerr_abqrVF4_CiRRyRREXG_:
 nop
@@ -1443,7 +1443,7 @@
 b__MAX7naqebvq12OcZrzbelUrnc12nffregZnccrqRi:
 nop
 .text
-.globl b__MAX7naqebvq6Cnepry23ernqAhyynoyrGlcrqIrpgbeVAFg3__110havdhr_cgeVAF2_12onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRAF2_14qrsnhyg_qryrgrVF9_RRRRRRvCAF3_VAF2_6irpgbeVG_AF7_VFR_RRRRAFN_VFT_RRRRZF0_XSvCFR_R
+.weak b__MAX7naqebvq6Cnepry23ernqAhyynoyrGlcrqIrpgbeVAFg3__110havdhr_cgeVAF2_12onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRAF2_14qrsnhyg_qryrgrVF9_RRRRRRvCAF3_VAF2_6irpgbeVG_AF7_VFR_RRRRAFN_VFT_RRRRZF0_XSvCFR_R
 .type b__MAX7naqebvq6Cnepry23ernqAhyynoyrGlcrqIrpgbeVAFg3__110havdhr_cgeVAF2_12onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRAF2_14qrsnhyg_qryrgrVF9_RRRRRRvCAF3_VAF2_6irpgbeVG_AF7_VFR_RRRRAFN_VFT_RRRRZF0_XSvCFR_R,%function
 b__MAX7naqebvq6Cnepry23ernqAhyynoyrGlcrqIrpgbeVAFg3__110havdhr_cgeVAF2_12onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRAF2_14qrsnhyg_qryrgrVF9_RRRRRRvCAF3_VAF2_6irpgbeVG_AF7_VFR_RRRRAFN_VFT_RRRRZF0_XSvCFR_R:
 nop
@@ -1473,7 +1473,7 @@
 b__MAX7naqebvq2bf17CrefvfgnoyrOhaqyr12trgVagIrpgbeREXAF_8Fgevat16RCAFg3__16irpgbeVvAF5_9nyybpngbeVvRRRR:
 nop
 .text
-.globl b__MAFg3__116__pbcl_hanyvtarqVAF_6irpgbeVoAF_9nyybpngbeVoRRRRYo1RRRAF_14__ovg_vgrengbeVG_Yo0RKYv0RRRRAF5_VF6_KG0_RKYv0RRRRF8_F7_
+.weak b__MAFg3__116__pbcl_hanyvtarqVAF_6irpgbeVoAF_9nyybpngbeVoRRRRYo1RRRAF_14__ovg_vgrengbeVG_Yo0RKYv0RRRRAF5_VF6_KG0_RKYv0RRRRF8_F7_
 .type b__MAFg3__116__pbcl_hanyvtarqVAF_6irpgbeVoAF_9nyybpngbeVoRRRRYo1RRRAF_14__ovg_vgrengbeVG_Yo0RKYv0RRRRAF5_VF6_KG0_RKYv0RRRRF8_F7_,%function
 b__MAFg3__116__pbcl_hanyvtarqVAF_6irpgbeVoAF_9nyybpngbeVoRRRRYo1RRRAF_14__ovg_vgrengbeVG_Yo0RKYv0RRRRAF5_VF6_KG0_RKYv0RRRRF8_F7_:
 nop
@@ -1508,7 +1508,7 @@
 b__MGi0_a32_A7naqebvq14ZrzbelUrncOnfrQ0Ri:
 nop
 .text
-.globl b__MAFg3__16irpgbeVnAF_9nyybpngbeVnRRR6vafregVCXnRRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVnAF_15vgrengbe_genvgfVF8_R9ersreraprRRR5inyhrRAF_11__jenc_vgreVCnRRR4glcrRAFP_VF6_RRF8_F8_
+.weak b__MAFg3__16irpgbeVnAF_9nyybpngbeVnRRR6vafregVCXnRRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVnAF_15vgrengbe_genvgfVF8_R9ersreraprRRR5inyhrRAF_11__jenc_vgreVCnRRR4glcrRAFP_VF6_RRF8_F8_
 .type b__MAFg3__16irpgbeVnAF_9nyybpngbeVnRRR6vafregVCXnRRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVnAF_15vgrengbe_genvgfVF8_R9ersreraprRRR5inyhrRAF_11__jenc_vgreVCnRRR4glcrRAFP_VF6_RRF8_F8_,%function
 b__MAFg3__16irpgbeVnAF_9nyybpngbeVnRRR6vafregVCXnRRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVnAF_15vgrengbe_genvgfVF8_R9ersreraprRRR5inyhrRAF_11__jenc_vgreVCnRRR4glcrRAFP_VF6_RRF8_F8_:
 nop
@@ -1538,7 +1538,7 @@
 b__MA7naqebvq21qrsnhygFreivprZnantreRi:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVF3_AF_9nyybpngbeVF3_RRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR12__svaq_rdhnyVF3_RRECAF_16__gerr_abqr_onfrVCiRRAF_21__gerr_pbafg_vgrengbeVF8_CAF_11__gerr_abqrVF8_FU_RRyRRECAF_15__gerr_raq_abqrVFW_RRFX_EXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVF3_AF_9nyybpngbeVF3_RRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR12__svaq_rdhnyVF3_RRECAF_16__gerr_abqr_onfrVCiRRAF_21__gerr_pbafg_vgrengbeVF8_CAF_11__gerr_abqrVF8_FU_RRyRRECAF_15__gerr_raq_abqrVFW_RRFX_EXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVF3_AF_9nyybpngbeVF3_RRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR12__svaq_rdhnyVF3_RRECAF_16__gerr_abqr_onfrVCiRRAF_21__gerr_pbafg_vgrengbeVF8_CAF_11__gerr_abqrVF8_FU_RRyRRECAF_15__gerr_raq_abqrVFW_RRFX_EXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVF3_AF_9nyybpngbeVF3_RRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR12__svaq_rdhnyVF3_RRECAF_16__gerr_abqr_onfrVCiRRAF_21__gerr_pbafg_vgrengbeVF8_CAF_11__gerr_abqrVF8_FU_RRyRRECAF_15__gerr_raq_abqrVFW_RRFX_EXG_:
 nop
@@ -1548,7 +1548,7 @@
 b__MAX7naqebvq6Cnepry9ernqVag64Ri:
 nop
 .data
-.globl b__MGIA7naqebvq6IrpgbeVCAF_7OOvaqreRRR
+.weak b__MGIA7naqebvq6IrpgbeVCAF_7OOvaqreRRR
 .type b__MGIA7naqebvq6IrpgbeVCAF_7OOvaqreRRR,%object
 b__MGIA7naqebvq6IrpgbeVCAF_7OOvaqreRRR:
 .space __SIZEOF_POINTER__
@@ -1588,7 +1588,7 @@
 b__MGGA7naqebvq9UrncPnpurR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvqyfVN9_pRREAF_10GrkgBhgchgRF3_EXG_
+.weak b__MA7naqebvqyfVN9_pRREAF_10GrkgBhgchgRF3_EXG_
 .type b__MA7naqebvqyfVN9_pRREAF_10GrkgBhgchgRF3_EXG_,%function
 b__MA7naqebvqyfVN9_pRREAF_10GrkgBhgchgRF3_EXG_:
 nop
@@ -1628,7 +1628,7 @@
 b__MGPA7naqebvq15OaFuryyPnyyonpxR0_AF_11OaVagresnprVAF_14VFuryyPnyyonpxRRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVF3_AF_9nyybpngbeVF3_RRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR16__pbafgehpg_abqrVWEXAF_4cnveVXF3_F7_RRRRRAF_10havdhr_cgeVAF_11__gerr_abqrVF8_CiRRAF_22__gerr_abqr_qrfgehpgbeVAF5_VFB_RRRRRRQcBG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVF3_AF_9nyybpngbeVF3_RRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR16__pbafgehpg_abqrVWEXAF_4cnveVXF3_F7_RRRRRAF_10havdhr_cgeVAF_11__gerr_abqrVF8_CiRRAF_22__gerr_abqr_qrfgehpgbeVAF5_VFB_RRRRRRQcBG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVF3_AF_9nyybpngbeVF3_RRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR16__pbafgehpg_abqrVWEXAF_4cnveVXF3_F7_RRRRRAF_10havdhr_cgeVAF_11__gerr_abqrVF8_CiRRAF_22__gerr_abqr_qrfgehpgbeVAF5_VFB_RRRRRRQcBG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVF3_AF_9nyybpngbeVF3_RRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR16__pbafgehpg_abqrVWEXAF_4cnveVXF3_F7_RRRRRAF_10havdhr_cgeVAF_11__gerr_abqrVF8_CiRRAF_22__gerr_abqr_qrfgehpgbeVAF5_VFB_RRRRRRQcBG_:
 nop
@@ -1643,7 +1643,7 @@
 b__MAX7naqebvq6Cnepry17trgBcraNfuzrzFvmrRi:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVqAF_9nyybpngbeVqRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR15__rzcynpr_zhygvVWEXAF_4cnveVXF3_F7_RRRRRAF_15__gerr_vgrengbeVF8_CAF_11__gerr_abqrVF8_CiRRyRRQcBG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVqAF_9nyybpngbeVqRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR15__rzcynpr_zhygvVWEXAF_4cnveVXF3_F7_RRRRRAF_15__gerr_vgrengbeVF8_CAF_11__gerr_abqrVF8_CiRRyRRQcBG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVqAF_9nyybpngbeVqRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR15__rzcynpr_zhygvVWEXAF_4cnveVXF3_F7_RRRRRAF_15__gerr_vgrengbeVF8_CAF_11__gerr_abqrVF8_CiRRyRRQcBG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVqAF_9nyybpngbeVqRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR15__rzcynpr_zhygvVWEXAF_4cnveVXF3_F7_RRRRRAF_15__gerr_vgrengbeVF8_CAF_11__gerr_abqrVF8_CiRRyRRQcBG_:
 nop
@@ -1668,7 +1668,7 @@
 b__MAX7naqebvq6Cnepry8ernqOlgrRCn:
 nop
 .text
-.globl b__MA7naqebvq6Cnepry22hafnsrJevgrGlcrqIrpgbeVQfQfRRvEXAFg3__16irpgbeVG_AF2_9nyybpngbeVF4_RRRRZF0_SvG0_R
+.weak b__MA7naqebvq6Cnepry22hafnsrJevgrGlcrqIrpgbeVQfQfRRvEXAFg3__16irpgbeVG_AF2_9nyybpngbeVF4_RRRRZF0_SvG0_R
 .type b__MA7naqebvq6Cnepry22hafnsrJevgrGlcrqIrpgbeVQfQfRRvEXAFg3__16irpgbeVG_AF2_9nyybpngbeVF4_RRRRZF0_SvG0_R,%function
 b__MA7naqebvq6Cnepry22hafnsrJevgrGlcrqIrpgbeVQfQfRRvEXAFg3__16irpgbeVG_AF2_9nyybpngbeVF4_RRRRZF0_SvG0_R:
 nop
@@ -1738,7 +1738,7 @@
 b__MA7naqebvq21VCrezvffvbaPbagebyyreQ2Ri:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVCXiAF_8OcOvaqre13BowrpgZnantre7ragel_gRRRR16qb_zbir_onpxjneqRCiF3_z
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVCXiAF_8OcOvaqre13BowrpgZnantre7ragel_gRRRR16qb_zbir_onpxjneqRCiF3_z
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVCXiAF_8OcOvaqre13BowrpgZnantre7ragel_gRRRR16qb_zbir_onpxjneqRCiF3_z,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVCXiAF_8OcOvaqre13BowrpgZnantre7ragel_gRRRR16qb_zbir_onpxjneqRCiF3_z:
 nop
@@ -1768,7 +1768,7 @@
 b__MGPA7naqebvq14ZrzbelUrncOnfrR72_AF_7OOvaqreR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIA7naqebvq15OcNccBcfFreivprR
+.weak b__MGIA7naqebvq15OcNccBcfFreivprR
 .type b__MGIA7naqebvq15OcNccBcfFreivprR,%object
 b__MGIA7naqebvq15OcNccBcfFreivprR:
 .space __SIZEOF_POINTER__
@@ -1863,12 +1863,12 @@
 b__MGi0_a80_AX7naqebvq14ZrzbelUrncOnfr8trgSyntfRi:
 nop
 .text
-.globl b__MAX7naqebvq6Cnepry21hafnsrErnqGlcrqIrpgbeVAFg3__110havdhr_cgeVAF_8Fgevat16RAF2_14qrsnhyg_qryrgrVF4_RRRRF7_RRvCAF2_6irpgbeVG_AF2_9nyybpngbeVF9_RRRRZF0_XSvCG0_R
+.weak b__MAX7naqebvq6Cnepry21hafnsrErnqGlcrqIrpgbeVAFg3__110havdhr_cgeVAF_8Fgevat16RAF2_14qrsnhyg_qryrgrVF4_RRRRF7_RRvCAF2_6irpgbeVG_AF2_9nyybpngbeVF9_RRRRZF0_XSvCG0_R
 .type b__MAX7naqebvq6Cnepry21hafnsrErnqGlcrqIrpgbeVAFg3__110havdhr_cgeVAF_8Fgevat16RAF2_14qrsnhyg_qryrgrVF4_RRRRF7_RRvCAF2_6irpgbeVG_AF2_9nyybpngbeVF9_RRRRZF0_XSvCG0_R,%function
 b__MAX7naqebvq6Cnepry21hafnsrErnqGlcrqIrpgbeVAFg3__110havdhr_cgeVAF_8Fgevat16RAF2_14qrsnhyg_qryrgrVF4_RRRRF7_RRvCAF2_6irpgbeVG_AF2_9nyybpngbeVF9_RRRRZF0_XSvCG0_R:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq8Fgevat16RAF_9nyybpngbeVF2_RRR8__nccraqRz
+.weak b__MAFg3__16irpgbeVA7naqebvq8Fgevat16RAF_9nyybpngbeVF2_RRR8__nccraqRz
 .type b__MAFg3__16irpgbeVA7naqebvq8Fgevat16RAF_9nyybpngbeVF2_RRR8__nccraqRz,%function
 b__MAFg3__16irpgbeVA7naqebvq8Fgevat16RAF_9nyybpngbeVF2_RRR8__nccraqRz:
 nop
@@ -1883,7 +1883,7 @@
 b__MA7naqebvq13NccBcfZnantre6abgrBcRvvEXAF_8Fgevat16R:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVCXiAF_8OcOvaqre13BowrpgZnantre7ragel_gRRRR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVCXiAF_8OcOvaqre13BowrpgZnantre7ragel_gRRRR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVCXiAF_8OcOvaqre13BowrpgZnantre7ragel_gRRRR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVCXiAF_8OcOvaqre13BowrpgZnantre7ragel_gRRRR12qb_pbafgehpgRCiz:
 nop
@@ -1898,12 +1898,12 @@
 b__MA7naqebvq10ZrzbelOnfrQ1Ri:
 nop
 .data
-.globl b__MGPA7naqebvq17OcNpgvivglZnantreR0_AF_11OcVagresnprVAF_16VNpgvivglZnantreRRR
+.weak b__MGPA7naqebvq17OcNpgvivglZnantreR0_AF_11OcVagresnprVAF_16VNpgvivglZnantreRRR
 .type b__MGPA7naqebvq17OcNpgvivglZnantreR0_AF_11OcVagresnprVAF_16VNpgvivglZnantreRRR,%object
 b__MGPA7naqebvq17OcNpgvivglZnantreR0_AF_11OcVagresnprVAF_16VNpgvivglZnantreRRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq9FvatyrgbaVAF_15CrezvffvbaPnpurRRP1Ri
+.weak b__MA7naqebvq9FvatyrgbaVAF_15CrezvffvbaPnpurRRP1Ri
 .type b__MA7naqebvq9FvatyrgbaVAF_15CrezvffvbaPnpurRRP1Ri,%function
 b__MA7naqebvq9FvatyrgbaVAF_15CrezvffvbaPnpurRRP1Ri:
 nop
@@ -1923,7 +1923,7 @@
 b__MGIA7naqebvq12CebprffFgngrR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIA7naqebvq6IrpgbeVvRR
+.weak b__MGIA7naqebvq6IrpgbeVvRR
 .type b__MGIA7naqebvq6IrpgbeVvRR,%object
 b__MGIA7naqebvq6IrpgbeVvRR:
 .space __SIZEOF_POINTER__
@@ -1963,7 +1963,7 @@
 b__MA7naqebvq13NccBcfZnantre8svavfuBcRvvEXAF_8Fgevat16R:
 nop
 .text
-.globl b__MA7naqebvq11OaVagresnprVAF_2bf16VFreivprPnyyonpxRR10baNfOvaqreRi
+.weak b__MA7naqebvq11OaVagresnprVAF_2bf16VFreivprPnyyonpxRR10baNfOvaqreRi
 .type b__MA7naqebvq11OaVagresnprVAF_2bf16VFreivprPnyyonpxRR10baNfOvaqreRi,%function
 b__MA7naqebvq11OaVagresnprVAF_2bf16VFreivprPnyyonpxRR10baNfOvaqreRi:
 nop
@@ -2003,7 +2003,7 @@
 b__MA7naqebvq6Cnepry12jevgrPFgevatRCXp:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq4onfr14havdhr_sq_vzcyVAF2_13QrsnhygPybfreRRRAF_9nyybpngbeVF5_RRR8__nccraqRz
+.weak b__MAFg3__16irpgbeVA7naqebvq4onfr14havdhr_sq_vzcyVAF2_13QrsnhygPybfreRRRAF_9nyybpngbeVF5_RRR8__nccraqRz
 .type b__MAFg3__16irpgbeVA7naqebvq4onfr14havdhr_sq_vzcyVAF2_13QrsnhygPybfreRRRAF_9nyybpngbeVF5_RRR8__nccraqRz,%function
 b__MAFg3__16irpgbeVA7naqebvq4onfr14havdhr_sq_vzcyVAF2_13QrsnhygPybfreRRRAF_9nyybpngbeVF5_RRR8__nccraqRz:
 nop
@@ -2023,12 +2023,12 @@
 b__MA7naqebvq14ZrzbelUrncOnfrP1RCXpzw:
 nop
 .text
-.globl b__MAFg3__16irpgbeVzAF_9nyybpngbeVzRRR8__nccraqRz
+.weak b__MAFg3__16irpgbeVzAF_9nyybpngbeVzRRR8__nccraqRz
 .type b__MAFg3__16irpgbeVzAF_9nyybpngbeVzRRR8__nccraqRz,%function
 b__MAFg3__16irpgbeVzAF_9nyybpngbeVzRRR8__nccraqRz:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVvAF_9nyybpngbeVvRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR30__rzcynpr_uvag_havdhr_xrl_netfVF3_WEXAF_4cnveVXF3_F7_RRRRRAF_15__gerr_vgrengbeVF8_CAF_11__gerr_abqrVF8_CiRRyRRAF_21__gerr_pbafg_vgrengbeVF8_FC_yRREXG_QcBG0_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVvAF_9nyybpngbeVvRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR30__rzcynpr_uvag_havdhr_xrl_netfVF3_WEXAF_4cnveVXF3_F7_RRRRRAF_15__gerr_vgrengbeVF8_CAF_11__gerr_abqrVF8_CiRRyRRAF_21__gerr_pbafg_vgrengbeVF8_FC_yRREXG_QcBG0_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVvAF_9nyybpngbeVvRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR30__rzcynpr_uvag_havdhr_xrl_netfVF3_WEXAF_4cnveVXF3_F7_RRRRRAF_15__gerr_vgrengbeVF8_CAF_11__gerr_abqrVF8_CiRRyRRAF_21__gerr_pbafg_vgrengbeVF8_FC_yRREXG_QcBG0_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVvAF_9nyybpngbeVvRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR30__rzcynpr_uvag_havdhr_xrl_netfVF3_WEXAF_4cnveVXF3_F7_RRRRRAF_15__gerr_vgrengbeVF8_CAF_11__gerr_abqrVF8_CiRRyRRAF_21__gerr_pbafg_vgrengbeVF8_FC_yRREXG_QcBG0_:
 nop
@@ -2043,7 +2043,7 @@
 b__MA7naqebvq8vagreany9Fgnovyvgl22gelZnexPbzcvyngvbaHavgRCAF_7VOvaqreR:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF2_2bf17CrefvfgnoyrOhaqyrRRRAF_19__znc_inyhr_pbzcnerVF3_F6_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF6_RRR25__rzcynpr_havdhr_xrl_netfVF3_WEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXF3_RRRAFV_VWRRRRRRAF_4cnveVAF_15__gerr_vgrengbeVF6_CAF_11__gerr_abqrVF6_CiRRyRRoRREXG_QcBG0_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF2_2bf17CrefvfgnoyrOhaqyrRRRAF_19__znc_inyhr_pbzcnerVF3_F6_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF6_RRR25__rzcynpr_havdhr_xrl_netfVF3_WEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXF3_RRRAFV_VWRRRRRRAF_4cnveVAF_15__gerr_vgrengbeVF6_CAF_11__gerr_abqrVF6_CiRRyRRoRREXG_QcBG0_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF2_2bf17CrefvfgnoyrOhaqyrRRRAF_19__znc_inyhr_pbzcnerVF3_F6_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF6_RRR25__rzcynpr_havdhr_xrl_netfVF3_WEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXF3_RRRAFV_VWRRRRRRAF_4cnveVAF_15__gerr_vgrengbeVF6_CAF_11__gerr_abqrVF6_CiRRyRRoRREXG_QcBG0_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF2_2bf17CrefvfgnoyrOhaqyrRRRAF_19__znc_inyhr_pbzcnerVF3_F6_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF6_RRR25__rzcynpr_havdhr_xrl_netfVF3_WEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXF3_RRRAFV_VWRRRRRRAF_4cnveVAF_15__gerr_vgrengbeVF6_CAF_11__gerr_abqrVF6_CiRRyRRoRREXG_QcBG0_:
 nop
@@ -2053,7 +2053,7 @@
 b__MA7naqebvq7pbagrag2cz22OaCnpxntrZnantreAngvirP2Ri:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_2fcVAF_18OhssrerqGrkgBhgchg11OhssreFgngrRRRR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_2fcVAF_18OhssrerqGrkgBhgchg11OhssreFgngrRRRR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_2fcVAF_18OhssrerqGrkgBhgchg11OhssreFgngrRRRR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_2fcVAF_18OhssrerqGrkgBhgchg11OhssreFgngrRRRR15qb_zbir_sbejneqRCiCXiz:
 nop
@@ -2063,7 +2063,7 @@
 b__MA7naqebvq14VCPGuernqFgngrQ1Ri:
 nop
 .text
-.globl b__MAFg3__114__pbcl_nyvtarqVAF_6irpgbeVoAF_9nyybpngbeVoRRRRYo1RRRAF_14__ovg_vgrengbeVG_Yo0RKYv0RRRRAF5_VF6_KG0_RKYv0RRRRF8_F7_
+.weak b__MAFg3__114__pbcl_nyvtarqVAF_6irpgbeVoAF_9nyybpngbeVoRRRRYo1RRRAF_14__ovg_vgrengbeVG_Yo0RKYv0RRRRAF5_VF6_KG0_RKYv0RRRRF8_F7_
 .type b__MAFg3__114__pbcl_nyvtarqVAF_6irpgbeVoAF_9nyybpngbeVoRRRRYo1RRRAF_14__ovg_vgrengbeVG_Yo0RKYv0RRRRAF5_VF6_KG0_RKYv0RRRRF8_F7_,%function
 b__MAFg3__114__pbcl_nyvtarqVAF_6irpgbeVoAF_9nyybpngbeVoRRRRYo1RRRAF_14__ovg_vgrengbeVG_Yo0RKYv0RRRRAF5_VF6_KG0_RKYv0RRRRF8_F7_:
 nop
@@ -2103,7 +2103,7 @@
 b__MAX7naqebvq2bf17CrefvfgnoyrOhaqyr6trgVagREXAF_8Fgevat16RCv:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVvAF_9nyybpngbeVvRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVF8_CAF_11__gerr_abqrVF8_CiRRyRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVvAF_9nyybpngbeVvRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVF8_CAF_11__gerr_abqrVF8_CiRRyRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVvAF_9nyybpngbeVvRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVF8_CAF_11__gerr_abqrVF8_CiRRyRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVvAF_9nyybpngbeVvRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVF8_CAF_11__gerr_abqrVF8_CiRRyRR:
 nop
@@ -2113,7 +2113,7 @@
 b__MGPA7naqebvq2bf17OaFreivprPnyyonpxR8_AF_7OOvaqreR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVF3_AF_9nyybpngbeVF3_RRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR15__rzcynpr_zhygvVWEXAF_4cnveVXF3_F7_RRRRRAF_15__gerr_vgrengbeVF8_CAF_11__gerr_abqrVF8_CiRRyRRQcBG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVF3_AF_9nyybpngbeVF3_RRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR15__rzcynpr_zhygvVWEXAF_4cnveVXF3_F7_RRRRRAF_15__gerr_vgrengbeVF8_CAF_11__gerr_abqrVF8_CiRRyRRQcBG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVF3_AF_9nyybpngbeVF3_RRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR15__rzcynpr_zhygvVWEXAF_4cnveVXF3_F7_RRRRRAF_15__gerr_vgrengbeVF8_CAF_11__gerr_abqrVF8_CiRRyRRQcBG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVF3_AF_9nyybpngbeVF3_RRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR15__rzcynpr_zhygvVWEXAF_4cnveVXF3_F7_RRRRRAF_15__gerr_vgrengbeVF8_CAF_11__gerr_abqrVF8_CiRRyRRQcBG_:
 nop
@@ -2123,12 +2123,12 @@
 b__MAX7naqebvq6Cnepry10ernqHvag64Ri:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVCAF_7OOvaqreRR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq6IrpgbeVCAF_7OOvaqreRR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq6IrpgbeVCAF_7OOvaqreRR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq6IrpgbeVCAF_7OOvaqreRR10qb_qrfgeblRCiz:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVCAF_7ErsOnfr12jrnxers_glcrRR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVCAF_7ErsOnfr12jrnxers_glcrRR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVCAF_7ErsOnfr12jrnxers_glcrRR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVCAF_7ErsOnfr12jrnxers_glcrRR8qb_fcyngRCiCXiz:
 nop
@@ -2158,7 +2158,7 @@
 b__MA7naqebvq7OOvaqre10cvatOvaqreRi:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_2jcVAF_7VOvaqreRRRAF_9UrncPnpur11urnc_vasb_gRRRR10qb_pbzcnerRCXiFN_
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_2jcVAF_7VOvaqreRRRAF_9UrncPnpur11urnc_vasb_gRRRR10qb_pbzcnerRCXiFN_
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_2jcVAF_7VOvaqreRRRAF_9UrncPnpur11urnc_vasb_gRRRR10qb_pbzcnerRCXiFN_,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_2jcVAF_7VOvaqreRRRAF_9UrncPnpur11urnc_vasb_gRRRR10qb_pbzcnerRCXiFN_:
 nop
@@ -2193,7 +2193,7 @@
 b__MAX7naqebvq3arg8VcCersvk19trgNqqerffNfVa6NqqeRC8va6_nqqe:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_7VOvaqreRRRAF_9nyybpngbeVF4_RRR8__nccraqRz
+.weak b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_7VOvaqreRRRAF_9nyybpngbeVF4_RRR8__nccraqRz
 .type b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_7VOvaqreRRRAF_9nyybpngbeVF4_RRR8__nccraqRz,%function
 b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_7VOvaqreRRRAF_9nyybpngbeVF4_RRR8__nccraqRz:
 nop
@@ -2243,17 +2243,17 @@
 b__MA7naqebvq2bf17CrefvfgnoyrOhaqyr6chgVagREXAF_8Fgevat16Rv:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RyRRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR14__nffvta_zhygvVAF_21__gerr_pbafg_vgrengbeVF4_CAF_11__gerr_abqrVF4_CiRRyRRRRiG_FW_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RyRRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR14__nffvta_zhygvVAF_21__gerr_pbafg_vgrengbeVF4_CAF_11__gerr_abqrVF4_CiRRyRRRRiG_FW_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RyRRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR14__nffvta_zhygvVAF_21__gerr_pbafg_vgrengbeVF4_CAF_11__gerr_abqrVF4_CiRRyRRRRiG_FW_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RyRRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR14__nffvta_zhygvVAF_21__gerr_pbafg_vgrengbeVF4_CAF_11__gerr_abqrVF4_CiRRyRRRRiG_FW_:
 nop
 .text
-.globl b__MAFg3__16irpgbeVqAF_9nyybpngbeVqRRR6nffvtaVCqRRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVqAF_15vgrengbe_genvgfVF7_R9ersreraprRRR5inyhrRiR4glcrRF7_F7_
+.weak b__MAFg3__16irpgbeVqAF_9nyybpngbeVqRRR6nffvtaVCqRRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVqAF_15vgrengbe_genvgfVF7_R9ersreraprRRR5inyhrRiR4glcrRF7_F7_
 .type b__MAFg3__16irpgbeVqAF_9nyybpngbeVqRRR6nffvtaVCqRRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVqAF_15vgrengbe_genvgfVF7_R9ersreraprRRR5inyhrRiR4glcrRF7_F7_,%function
 b__MAFg3__16irpgbeVqAF_9nyybpngbeVqRRR6nffvtaVCqRRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVqAF_15vgrengbe_genvgfVF7_R9ersreraprRRR5inyhrRiR4glcrRF7_F7_:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVCXiAF_8OcOvaqre13BowrpgZnantre7ragel_gRRRR7qb_pbclRCiF3_z
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVCXiAF_8OcOvaqre13BowrpgZnantre7ragel_gRRRR7qb_pbclRCiF3_z
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVCXiAF_8OcOvaqre13BowrpgZnantre7ragel_gRRRR7qb_pbclRCiF3_z,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVCXiAF_8OcOvaqre13BowrpgZnantre7ragel_gRRRR7qb_pbclRCiF3_z:
 nop
@@ -2303,7 +2303,7 @@
 b__MGua8_A7naqebvq15OaNccBcfFreivpr10baGenafnpgRwEXAF_6CnepryRCF1_w:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_8Fgevat16RR10qb_pbzcnerRCXiF4_
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_8Fgevat16RR10qb_pbzcnerRCXiF4_
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_8Fgevat16RR10qb_pbzcnerRCXiF4_,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_8Fgevat16RR10qb_pbzcnerRCXiF4_:
 nop
@@ -2323,7 +2323,7 @@
 b__MA7naqebvq14VCPGuernqFgngr41frgPnyyvatJbexFbheprHvqJvgubhgCebcntngvbaRw:
 nop
 .text
-.globl b__MAX7naqebvq6Cnepry23ernqAhyynoyrGlcrqIrpgbeVQfRRvCAFg3__110havdhr_cgeVAF2_6irpgbeVG_AF2_9nyybpngbeVF5_RRRRAF2_14qrsnhyg_qryrgrVF8_RRRRZF0_XSvCF5_R
+.weak b__MAX7naqebvq6Cnepry23ernqAhyynoyrGlcrqIrpgbeVQfRRvCAFg3__110havdhr_cgeVAF2_6irpgbeVG_AF2_9nyybpngbeVF5_RRRRAF2_14qrsnhyg_qryrgrVF8_RRRRZF0_XSvCF5_R
 .type b__MAX7naqebvq6Cnepry23ernqAhyynoyrGlcrqIrpgbeVQfRRvCAFg3__110havdhr_cgeVAF2_6irpgbeVG_AF2_9nyybpngbeVF5_RRRRAF2_14qrsnhyg_qryrgrVF8_RRRRZF0_XSvCF5_R,%function
 b__MAX7naqebvq6Cnepry23ernqAhyynoyrGlcrqIrpgbeVQfRRvCAFg3__110havdhr_cgeVAF2_6irpgbeVG_AF2_9nyybpngbeVF5_RRRRAF2_14qrsnhyg_qryrgrVF8_RRRRZF0_XSvCF5_R:
 nop
@@ -2358,12 +2358,12 @@
 b__MAX7naqebvq6Cnepry11ernqCbvagreRi:
 nop
 .text
-.globl b__MAFg3__113__svyy_a_gehrVAF_6irpgbeVoAF_9nyybpngbeVoRRRRRRiAF_14__ovg_vgrengbeVG_Yo0RKYv0RRRRAF6_9fvmr_glcrR
+.weak b__MAFg3__113__svyy_a_gehrVAF_6irpgbeVoAF_9nyybpngbeVoRRRRRRiAF_14__ovg_vgrengbeVG_Yo0RKYv0RRRRAF6_9fvmr_glcrR
 .type b__MAFg3__113__svyy_a_gehrVAF_6irpgbeVoAF_9nyybpngbeVoRRRRRRiAF_14__ovg_vgrengbeVG_Yo0RKYv0RRRRAF6_9fvmr_glcrR,%function
 b__MAFg3__113__svyy_a_gehrVAF_6irpgbeVoAF_9nyybpngbeVoRRRRRRiAF_14__ovg_vgrengbeVG_Yo0RKYv0RRRRAF6_9fvmr_glcrR:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RvRRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR30__rzcynpr_uvag_havdhr_xrl_netfVF3_WEXAF_4cnveVXF3_vRRRRRAF_15__gerr_vgrengbeVF4_CAF_11__gerr_abqrVF4_CiRRyRRAF_21__gerr_pbafg_vgrengbeVF4_FZ_yRREXG_QcBG0_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RvRRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR30__rzcynpr_uvag_havdhr_xrl_netfVF3_WEXAF_4cnveVXF3_vRRRRRAF_15__gerr_vgrengbeVF4_CAF_11__gerr_abqrVF4_CiRRyRRAF_21__gerr_pbafg_vgrengbeVF4_FZ_yRREXG_QcBG0_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RvRRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR30__rzcynpr_uvag_havdhr_xrl_netfVF3_WEXAF_4cnveVXF3_vRRRRRAF_15__gerr_vgrengbeVF4_CAF_11__gerr_abqrVF4_CiRRyRRAF_21__gerr_pbafg_vgrengbeVF4_FZ_yRREXG_QcBG0_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RvRRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR30__rzcynpr_uvag_havdhr_xrl_netfVF3_WEXAF_4cnveVXF3_vRRRRRAF_15__gerr_vgrengbeVF4_CAF_11__gerr_abqrVF4_CiRRyRRAF_21__gerr_pbafg_vgrengbeVF4_FZ_yRREXG_QcBG0_:
 nop
@@ -2373,7 +2373,7 @@
 b__MA7naqebvq8vagreany9Fgnovyvgl5purpxRvAF1_5YriryR:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvwRRAF_22__habeqrerq_znc_unfureVvF2_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF2_AF_8rdhny_gbVvRRYo1RRRAF_9nyybpngbeVF2_RRR6erunfuRz
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvwRRAF_22__habeqrerq_znc_unfureVvF2_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF2_AF_8rdhny_gbVvRRYo1RRRAF_9nyybpngbeVF2_RRR6erunfuRz
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvwRRAF_22__habeqrerq_znc_unfureVvF2_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF2_AF_8rdhny_gbVvRRYo1RRRAF_9nyybpngbeVF2_RRR6erunfuRz,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvwRRAF_22__habeqrerq_znc_unfureVvF2_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF2_AF_8rdhny_gbVvRRYo1RRRAF_9nyybpngbeVF2_RRR6erunfuRz:
 nop
@@ -2383,7 +2383,7 @@
 b__MA7naqebvq6ovaqre6FgnghfP1RvvEXAF_7Fgevat8R:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_2fcVAF_18OhssrerqGrkgBhgchg11OhssreFgngrRRRR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_2fcVAF_18OhssrerqGrkgBhgchg11OhssreFgngrRRRR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_2fcVAF_18OhssrerqGrkgBhgchg11OhssreFgngrRRRR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_2fcVAF_18OhssrerqGrkgBhgchg11OhssreFgngrRRRR8qb_fcyngRCiCXiz:
 nop
@@ -2393,7 +2393,7 @@
 b__MGi0_a24_A7naqebvq7VZrzbelQ1Ri:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF2_2bf17CrefvfgnoyrOhaqyrRRRAF_19__znc_inyhr_pbzcnerVF3_F6_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF6_RRR14__nffvta_zhygvVAF_21__gerr_pbafg_vgrengbeVF6_CAF_11__gerr_abqrVF6_CiRRyRRRRiG_FY_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF2_2bf17CrefvfgnoyrOhaqyrRRRAF_19__znc_inyhr_pbzcnerVF3_F6_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF6_RRR14__nffvta_zhygvVAF_21__gerr_pbafg_vgrengbeVF6_CAF_11__gerr_abqrVF6_CiRRyRRRRiG_FY_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF2_2bf17CrefvfgnoyrOhaqyrRRRAF_19__znc_inyhr_pbzcnerVF3_F6_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF6_RRR14__nffvta_zhygvVAF_21__gerr_pbafg_vgrengbeVF6_CAF_11__gerr_abqrVF6_CiRRyRRRRiG_FY_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF2_2bf17CrefvfgnoyrOhaqyrRRRAF_19__znc_inyhr_pbzcnerVF3_F6_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF6_RRR14__nffvta_zhygvVAF_21__gerr_pbafg_vgrengbeVF6_CAF_11__gerr_abqrVF6_CiRRyRRRRiG_FY_:
 nop
@@ -2403,17 +2403,17 @@
 b__MA7naqebvq21VZrqvnErfbheprZbavgbeQ0Ri:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_8Fgevat16RR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq6IrpgbeVAF_8Fgevat16RR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq6IrpgbeVAF_8Fgevat16RR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq6IrpgbeVAF_8Fgevat16RR10qb_qrfgeblRCiz:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_8Fgevat16RR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_8Fgevat16RR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_8Fgevat16RR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_8Fgevat16RR16qb_zbir_onpxjneqRCiCXiz:
 nop
 .data
-.globl b__MGIA7naqebvq6IrpgbeVAF_2fcVAF_18OhssrerqGrkgBhgchg11OhssreFgngrRRRRR
+.weak b__MGIA7naqebvq6IrpgbeVAF_2fcVAF_18OhssrerqGrkgBhgchg11OhssreFgngrRRRRR
 .type b__MGIA7naqebvq6IrpgbeVAF_2fcVAF_18OhssrerqGrkgBhgchg11OhssreFgngrRRRRR,%object
 b__MGIA7naqebvq6IrpgbeVAF_2fcVAF_18OhssrerqGrkgBhgchg11OhssreFgngrRRRRR:
 .space __SIZEOF_POINTER__
@@ -2453,7 +2453,7 @@
 b__MGPA7naqebvq7pbagrag2cz22OcCnpxntrZnantreAngvirR0_AF_11OcVagresnprVAF1_21VCnpxntrZnantreAngvirRRR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIA7naqebvq12FbegrqIrpgbeVAF_15CrezvffvbaPnpur5RagelRRR
+.weak b__MGIA7naqebvq12FbegrqIrpgbeVAF_15CrezvffvbaPnpur5RagelRRR
 .type b__MGIA7naqebvq12FbegrqIrpgbeVAF_15CrezvffvbaPnpur5RagelRRR,%object
 b__MGIA7naqebvq12FbegrqIrpgbeVAF_15CrezvffvbaPnpur5RagelRRR:
 .space __SIZEOF_POINTER__
@@ -2498,12 +2498,12 @@
 b__MA7naqebvq15NpgvivglZnantreP2Ri:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_8Fgevat16RR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_8Fgevat16RR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_8Fgevat16RR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_8Fgevat16RR16qb_zbir_onpxjneqRCiCXiz:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_8OcOvaqre8BovghnelRR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq6IrpgbeVAF_8OcOvaqre8BovghnelRR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq6IrpgbeVAF_8OcOvaqre8BovghnelRR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq6IrpgbeVAF_8OcOvaqre8BovghnelRR10qb_qrfgeblRCiz:
 nop
@@ -2513,12 +2513,12 @@
 b__MA7naqebvq6Cnepry4Oybo7eryrnfrRi:
 nop
 .text
-.globl b__MA7naqebvq11OaVagresnprVAF_14VNccBcfFreivprRR10baNfOvaqreRi
+.weak b__MA7naqebvq11OaVagresnprVAF_14VNccBcfFreivprRR10baNfOvaqreRi
 .type b__MA7naqebvq11OaVagresnprVAF_14VNccBcfFreivprRR10baNfOvaqreRi,%function
 b__MA7naqebvq11OaVagresnprVAF_14VNccBcfFreivprRR10baNfOvaqreRi:
 nop
 .data
-.globl b__MGPA7naqebvq13OcHvqBofreireR8_AF_9OcErsOnfrR
+.weak b__MGPA7naqebvq13OcHvqBofreireR8_AF_9OcErsOnfrR
 .type b__MGPA7naqebvq13OcHvqBofreireR8_AF_9OcErsOnfrR,%object
 b__MGPA7naqebvq13OcHvqBofreireR8_AF_9OcErsOnfrR:
 .space __SIZEOF_POINTER__
@@ -2528,7 +2528,7 @@
 b__MA7naqebvq7OOvaqreP2Ri:
 nop
 .data
-.globl b__MGPA7naqebvq16OcErfhygErprvireR0_AF_11OcVagresnprVAF_15VErfhygErprvireRRR
+.weak b__MGPA7naqebvq16OcErfhygErprvireR0_AF_11OcVagresnprVAF_15VErfhygErprvireRRR
 .type b__MGPA7naqebvq16OcErfhygErprvireR0_AF_11OcVagresnprVAF_15VErfhygErprvireRRR,%object
 b__MGPA7naqebvq16OcErfhygErprvireR0_AF_11OcVagresnprVAF_15VErfhygErprvireRRR:
 .space __SIZEOF_POINTER__
@@ -2558,17 +2558,17 @@
 b__MA7naqebvq14ZrzbelUrncOnfrP1Rvzwy:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RvRRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR12__svaq_rdhnyVF3_RRECAF_16__gerr_abqr_onfrVCiRRAF_21__gerr_pbafg_vgrengbeVF4_CAF_11__gerr_abqrVF4_FR_RRyRRECAF_15__gerr_raq_abqrVFT_RRFU_EXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RvRRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR12__svaq_rdhnyVF3_RRECAF_16__gerr_abqr_onfrVCiRRAF_21__gerr_pbafg_vgrengbeVF4_CAF_11__gerr_abqrVF4_FR_RRyRRECAF_15__gerr_raq_abqrVFT_RRFU_EXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RvRRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR12__svaq_rdhnyVF3_RRECAF_16__gerr_abqr_onfrVCiRRAF_21__gerr_pbafg_vgrengbeVF4_CAF_11__gerr_abqrVF4_FR_RRyRRECAF_15__gerr_raq_abqrVFT_RRFU_EXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RvRRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR12__svaq_rdhnyVF3_RRECAF_16__gerr_abqr_onfrVCiRRAF_21__gerr_pbafg_vgrengbeVF4_CAF_11__gerr_abqrVF4_FR_RRyRRECAF_15__gerr_raq_abqrVFT_RRFU_EXG_:
 nop
 .text
-.globl b__MA7naqebvq9FvatyrgbaVAF_15CrezvffvbaPnpurRR11unfVafgnaprRi
+.weak b__MA7naqebvq9FvatyrgbaVAF_15CrezvffvbaPnpurRR11unfVafgnaprRi
 .type b__MA7naqebvq9FvatyrgbaVAF_15CrezvffvbaPnpurRR11unfVafgnaprRi,%function
 b__MA7naqebvq9FvatyrgbaVAF_15CrezvffvbaPnpurRR11unfVafgnaprRi:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_8OcOvaqre8BovghnelRR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_8OcOvaqre8BovghnelRR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_8OcOvaqre8BovghnelRR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_8OcOvaqre8BovghnelRR7qb_pbclRCiCXiz:
 nop
@@ -2598,7 +2598,7 @@
 b__MAX7naqebvq6Cnepry8ernqPuneRi:
 nop
 .text
-.globl b__MAFg3__114__svyy_a_snyfrVAF_6irpgbeVoAF_9nyybpngbeVoRRRRRRiAF_14__ovg_vgrengbeVG_Yo0RKYv0RRRRAF6_9fvmr_glcrR
+.weak b__MAFg3__114__svyy_a_snyfrVAF_6irpgbeVoAF_9nyybpngbeVoRRRRRRiAF_14__ovg_vgrengbeVG_Yo0RKYv0RRRRAF6_9fvmr_glcrR
 .type b__MAFg3__114__svyy_a_snyfrVAF_6irpgbeVoAF_9nyybpngbeVoRRRRRRiAF_14__ovg_vgrengbeVG_Yo0RKYv0RRRRAF6_9fvmr_glcrR,%function
 b__MAFg3__114__svyy_a_snyfrVAF_6irpgbeVoAF_9nyybpngbeVoRRRRRRiAF_14__ovg_vgrengbeVG_Yo0RKYv0RRRRAF6_9fvmr_glcrR:
 nop
@@ -2623,12 +2623,12 @@
 b__MA7naqebvq6Cnepry15jevgrPuneIrpgbeREXAFg3__110havdhr_cgeVAF1_6irpgbeVQfAF1_9nyybpngbeVQfRRRRAF1_14qrsnhyg_qryrgrVF6_RRRR:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVyAF_9nyybpngbeVyRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR25__rzcynpr_havdhr_xrl_netfVF3_WEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXF3_RRRAFW_VWRRRRRRAF_4cnveVAF_15__gerr_vgrengbeVF8_CAF_11__gerr_abqrVF8_CiRRyRRoRREXG_QcBG0_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVyAF_9nyybpngbeVyRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR25__rzcynpr_havdhr_xrl_netfVF3_WEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXF3_RRRAFW_VWRRRRRRAF_4cnveVAF_15__gerr_vgrengbeVF8_CAF_11__gerr_abqrVF8_CiRRyRRoRREXG_QcBG0_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVyAF_9nyybpngbeVyRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR25__rzcynpr_havdhr_xrl_netfVF3_WEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXF3_RRRAFW_VWRRRRRRAF_4cnveVAF_15__gerr_vgrengbeVF8_CAF_11__gerr_abqrVF8_CiRRyRRoRREXG_QcBG0_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVyAF_9nyybpngbeVyRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR25__rzcynpr_havdhr_xrl_netfVF3_WEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXF3_RRRAFW_VWRRRRRRAF_4cnveVAF_15__gerr_vgrengbeVF8_CAF_11__gerr_abqrVF8_CiRRyRRoRREXG_QcBG0_:
 nop
 .data
-.globl b__MGPA7naqebvq14OcOnggrelFgngfR8_AF_9OcErsOnfrR
+.weak b__MGPA7naqebvq14OcOnggrelFgngfR8_AF_9OcErsOnfrR
 .type b__MGPA7naqebvq14OcOnggrelFgngfR8_AF_9OcErsOnfrR,%object
 b__MGPA7naqebvq14OcOnggrelFgngfR8_AF_9OcErsOnfrR:
 .space __SIZEOF_POINTER__
@@ -2638,7 +2638,7 @@
 b__MA7naqebvq12OaZrzbelUrncQ2Ri:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVCAF_7ErsOnfrRR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq6IrpgbeVCAF_7ErsOnfrRR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq6IrpgbeVCAF_7ErsOnfrRR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq6IrpgbeVCAF_7ErsOnfrRR10qb_qrfgeblRCiz:
 nop
@@ -2653,12 +2653,12 @@
 b__MA7naqebvq6Cnepry19trgTybonyNyybpPbhagRi:
 nop
 .text
-.globl b__MA7naqebvq6Cnepry22hafnsrJevgrGlcrqIrpgbeVAFg3__110havdhr_cgeVAF_8Fgevat16RAF2_14qrsnhyg_qryrgrVF4_RRRREXF7_RRvEXAF2_6irpgbeVG_AF2_9nyybpngbeVFO_RRRRZF0_SvG0_R
+.weak b__MA7naqebvq6Cnepry22hafnsrJevgrGlcrqIrpgbeVAFg3__110havdhr_cgeVAF_8Fgevat16RAF2_14qrsnhyg_qryrgrVF4_RRRREXF7_RRvEXAF2_6irpgbeVG_AF2_9nyybpngbeVFO_RRRRZF0_SvG0_R
 .type b__MA7naqebvq6Cnepry22hafnsrJevgrGlcrqIrpgbeVAFg3__110havdhr_cgeVAF_8Fgevat16RAF2_14qrsnhyg_qryrgrVF4_RRRREXF7_RRvEXAF2_6irpgbeVG_AF2_9nyybpngbeVFO_RRRRZF0_SvG0_R,%function
 b__MA7naqebvq6Cnepry22hafnsrJevgrGlcrqIrpgbeVAFg3__110havdhr_cgeVAF_8Fgevat16RAF2_14qrsnhyg_qryrgrVF4_RRRREXF7_RRvEXAF2_6irpgbeVG_AF2_9nyybpngbeVFO_RRRRZF0_SvG0_R:
 nop
 .text
-.globl b__MAXFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVyAF_9nyybpngbeVyRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR4svaqVF3_RRAF_21__gerr_pbafg_vgrengbeVF8_CAF_11__gerr_abqrVF8_CiRRyRREXG_
+.weak b__MAXFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVyAF_9nyybpngbeVyRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR4svaqVF3_RRAF_21__gerr_pbafg_vgrengbeVF8_CAF_11__gerr_abqrVF8_CiRRyRREXG_
 .type b__MAXFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVyAF_9nyybpngbeVyRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR4svaqVF3_RRAF_21__gerr_pbafg_vgrengbeVF8_CAF_11__gerr_abqrVF8_CiRRyRREXG_,%function
 b__MAXFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVyAF_9nyybpngbeVyRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR4svaqVF3_RRAF_21__gerr_pbafg_vgrengbeVF8_CAF_11__gerr_abqrVF8_CiRRyRREXG_:
 nop
@@ -2673,7 +2673,7 @@
 b__MAX7naqebvq21VZrqvnErfbheprZbavgbe22trgVagresnprQrfpevcgbeRi:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_8Fgevat16RR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_8Fgevat16RR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_8Fgevat16RR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_8Fgevat16RR7qb_pbclRCiCXiz:
 nop
@@ -2688,7 +2688,7 @@
 b__MGPA7naqebvq12OcZrzbelUrncR0_AF_10VVagresnprR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGPA7naqebvq15OcFuryyPnyyonpxR0_AF_10VVagresnprR
+.weak b__MGPA7naqebvq15OcFuryyPnyyonpxR0_AF_10VVagresnprR
 .type b__MGPA7naqebvq15OcFuryyPnyyonpxR0_AF_10VVagresnprR,%object
 b__MGPA7naqebvq15OcFuryyPnyyonpxR0_AF_10VVagresnprR:
 .space __SIZEOF_POINTER__
@@ -2698,7 +2698,7 @@
 b__MA7naqebvq6Cnepry4OyboQ1Ri:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RoRRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR14__nffvta_zhygvVAF_21__gerr_pbafg_vgrengbeVF4_CAF_11__gerr_abqrVF4_CiRRyRRRRiG_FW_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RoRRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR14__nffvta_zhygvVAF_21__gerr_pbafg_vgrengbeVF4_CAF_11__gerr_abqrVF4_CiRRyRRRRiG_FW_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RoRRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR14__nffvta_zhygvVAF_21__gerr_pbafg_vgrengbeVF4_CAF_11__gerr_abqrVF4_CiRRyRRRRiG_FW_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RoRRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR14__nffvta_zhygvVAF_21__gerr_pbafg_vgrengbeVF4_CAF_11__gerr_abqrVF4_CiRRyRRRRiG_FW_:
 nop
@@ -2738,7 +2738,7 @@
 b__MGGA7naqebvq21VZrqvnErfbheprZbavgbeR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIA7naqebvq22OcZrqvnErfbheprZbavgbeR
+.weak b__MGIA7naqebvq22OcZrqvnErfbheprZbavgbeR
 .type b__MGIA7naqebvq22OcZrqvnErfbheprZbavgbeR,%object
 b__MGIA7naqebvq22OcZrqvnErfbheprZbavgbeR:
 .space __SIZEOF_POINTER__
@@ -2763,12 +2763,12 @@
 b__MA7naqebvq2bf23VFreivprPnyyonpxQrsnhyg14baErtvfgengvbaREXAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRREXAF_2fcVAF_7VOvaqreRRR:
 nop
 .text
-.globl b__MA7naqebvq6Cnepry22hafnsrJevgrGlcrqIrpgbeVvvRRvEXAFg3__16irpgbeVG_AF2_9nyybpngbeVF4_RRRRZF0_SvG0_R
+.weak b__MA7naqebvq6Cnepry22hafnsrJevgrGlcrqIrpgbeVvvRRvEXAFg3__16irpgbeVG_AF2_9nyybpngbeVF4_RRRRZF0_SvG0_R
 .type b__MA7naqebvq6Cnepry22hafnsrJevgrGlcrqIrpgbeVvvRRvEXAFg3__16irpgbeVG_AF2_9nyybpngbeVF4_RRRRZF0_SvG0_R,%function
 b__MA7naqebvq6Cnepry22hafnsrJevgrGlcrqIrpgbeVvvRRvEXAFg3__16irpgbeVG_AF2_9nyybpngbeVF4_RRRRZF0_SvG0_R:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq4onfr14havdhr_sq_vzcyVAF2_13QrsnhygPybfreRRRAF_9nyybpngbeVF5_RRR26__fjnc_bhg_pvephyne_ohssreREAF_14__fcyvg_ohssreVF5_EF7_RR
+.weak b__MAFg3__16irpgbeVA7naqebvq4onfr14havdhr_sq_vzcyVAF2_13QrsnhygPybfreRRRAF_9nyybpngbeVF5_RRR26__fjnc_bhg_pvephyne_ohssreREAF_14__fcyvg_ohssreVF5_EF7_RR
 .type b__MAFg3__16irpgbeVA7naqebvq4onfr14havdhr_sq_vzcyVAF2_13QrsnhygPybfreRRRAF_9nyybpngbeVF5_RRR26__fjnc_bhg_pvephyne_ohssreREAF_14__fcyvg_ohssreVF5_EF7_RR,%function
 b__MAFg3__16irpgbeVA7naqebvq4onfr14havdhr_sq_vzcyVAF2_13QrsnhygPybfreRRRAF_9nyybpngbeVF5_RRR26__fjnc_bhg_pvephyne_ohssreREAF_14__fcyvg_ohssreVF5_EF7_RR:
 nop
@@ -2803,7 +2803,7 @@
 b__MA7naqebvq12CebprffFgngr32trgFgebatErsPbhagSbeAbqrOlUnaqyrRv:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_12CebprffFgngr12unaqyr_ragelRR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq6IrpgbeVAF_12CebprffFgngr12unaqyr_ragelRR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq6IrpgbeVAF_12CebprffFgngr12unaqyr_ragelRR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq6IrpgbeVAF_12CebprffFgngr12unaqyr_ragelRR12qb_pbafgehpgRCiz:
 nop
@@ -2873,7 +2873,7 @@
 b__MGIA7naqebvq21VCrezvffvbaPbagebyyreR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq8Fgevat16RAF_9nyybpngbeVF2_RRR6nffvtaVCF2_RRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF2_AF_15vgrengbe_genvgfVF9_R9ersreraprRRR5inyhrRiR4glcrRF9_F9_
+.weak b__MAFg3__16irpgbeVA7naqebvq8Fgevat16RAF_9nyybpngbeVF2_RRR6nffvtaVCF2_RRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF2_AF_15vgrengbe_genvgfVF9_R9ersreraprRRR5inyhrRiR4glcrRF9_F9_
 .type b__MAFg3__16irpgbeVA7naqebvq8Fgevat16RAF_9nyybpngbeVF2_RRR6nffvtaVCF2_RRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF2_AF_15vgrengbe_genvgfVF9_R9ersreraprRRR5inyhrRiR4glcrRF9_F9_,%function
 b__MAFg3__16irpgbeVA7naqebvq8Fgevat16RAF_9nyybpngbeVF2_RRR6nffvtaVCF2_RRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF2_AF_15vgrengbe_genvgfVF9_R9ersreraprRRR5inyhrRiR4glcrRF9_F9_:
 nop
@@ -2898,12 +2898,12 @@
 b__MA7naqebvq12ZrzbelQrnyre10qrnyybpngrRz:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RF3_RRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR30__rzcynpr_uvag_havdhr_xrl_netfVF3_WEXAF_4cnveVXF3_F3_RRRRRAF_15__gerr_vgrengbeVF4_CAF_11__gerr_abqrVF4_CiRRyRRAF_21__gerr_pbafg_vgrengbeVF4_FZ_yRREXG_QcBG0_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RF3_RRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR30__rzcynpr_uvag_havdhr_xrl_netfVF3_WEXAF_4cnveVXF3_F3_RRRRRAF_15__gerr_vgrengbeVF4_CAF_11__gerr_abqrVF4_CiRRyRRAF_21__gerr_pbafg_vgrengbeVF4_FZ_yRREXG_QcBG0_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RF3_RRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR30__rzcynpr_uvag_havdhr_xrl_netfVF3_WEXAF_4cnveVXF3_F3_RRRRRAF_15__gerr_vgrengbeVF4_CAF_11__gerr_abqrVF4_CiRRyRRAF_21__gerr_pbafg_vgrengbeVF4_FZ_yRREXG_QcBG0_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RF3_RRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR30__rzcynpr_uvag_havdhr_xrl_netfVF3_WEXAF_4cnveVXF3_F3_RRRRRAF_15__gerr_vgrengbeVF4_CAF_11__gerr_abqrVF4_CiRRyRRAF_21__gerr_pbafg_vgrengbeVF4_FZ_yRREXG_QcBG0_:
 nop
 .data
-.globl b__MGPA7naqebvq17OcNpgvivglZnantreR0_AF_10VVagresnprR
+.weak b__MGPA7naqebvq17OcNpgvivglZnantreR0_AF_10VVagresnprR
 .type b__MGPA7naqebvq17OcNpgvivglZnantreR0_AF_10VVagresnprR,%object
 b__MGPA7naqebvq17OcNpgvivglZnantreR0_AF_10VVagresnprR:
 .space __SIZEOF_POINTER__
@@ -2953,17 +2953,17 @@
 b__MA7naqebvq6Cnepry28jevgrHgs8IrpgbeNfHgs16IrpgbeREXAFg3__16irpgbeVAF1_12onfvp_fgevatVpAF1_11pune_genvgfVpRRAF1_9nyybpngbeVpRRRRAF6_VF8_RRRR:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVvAF_9nyybpngbeVvRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR12__svaq_rdhnyVF3_RRECAF_16__gerr_abqr_onfrVCiRRECAF_15__gerr_raq_abqrVFW_RREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVvAF_9nyybpngbeVvRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR12__svaq_rdhnyVF3_RRECAF_16__gerr_abqr_onfrVCiRRECAF_15__gerr_raq_abqrVFW_RREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVvAF_9nyybpngbeVvRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR12__svaq_rdhnyVF3_RRECAF_16__gerr_abqr_onfrVCiRRECAF_15__gerr_raq_abqrVFW_RREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVvAF_9nyybpngbeVvRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR12__svaq_rdhnyVF3_RRECAF_16__gerr_abqr_onfrVCiRRECAF_15__gerr_raq_abqrVFW_RREXG_:
 nop
 .data
-.globl b__MGGA7naqebvq17OcNpgvivglZnantreR
+.weak b__MGGA7naqebvq17OcNpgvivglZnantreR
 .type b__MGGA7naqebvq17OcNpgvivglZnantreR,%object
 b__MGGA7naqebvq17OcNpgvivglZnantreR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__16irpgbeVqAF_9nyybpngbeVqRRR8__nccraqRz
+.weak b__MAFg3__16irpgbeVqAF_9nyybpngbeVqRRR8__nccraqRz
 .type b__MAFg3__16irpgbeVqAF_9nyybpngbeVqRRR8__nccraqRz,%function
 b__MAFg3__16irpgbeVqAF_9nyybpngbeVqRRR8__nccraqRz:
 nop
@@ -2973,7 +2973,7 @@
 b__MA7naqebvq7pbagrag2cz21VCnpxntrZnantreAngvir14frgQrsnhygVzcyRAFg3__110havdhr_cgeVF2_AF3_14qrsnhyg_qryrgrVF2_RRRR:
 nop
 .text
-.globl b__MA7naqebvq6Cnepry22hafnsrJevgrGlcrqIrpgbeVzzRRvEXAFg3__16irpgbeVG_AF2_9nyybpngbeVF4_RRRRZF0_SvG0_R
+.weak b__MA7naqebvq6Cnepry22hafnsrJevgrGlcrqIrpgbeVzzRRvEXAFg3__16irpgbeVG_AF2_9nyybpngbeVF4_RRRRZF0_SvG0_R
 .type b__MA7naqebvq6Cnepry22hafnsrJevgrGlcrqIrpgbeVzzRRvEXAFg3__16irpgbeVG_AF2_9nyybpngbeVF4_RRRRZF0_SvG0_R,%function
 b__MA7naqebvq6Cnepry22hafnsrJevgrGlcrqIrpgbeVzzRRvEXAFg3__16irpgbeVG_AF2_9nyybpngbeVF4_RRRRZF0_SvG0_R:
 nop
@@ -3018,12 +3018,12 @@
 b__MA7naqebvq12CebprffFgngr20orpbzrPbagrkgZnantreRCSoEXAF_8Fgevat16REXAF_2fcVAF_7VOvaqreRRRCiRF9_:
 nop
 .text
-.globl b__MA7naqebvq11OaVagresnprVAF_2bf15VFreivprZnantreRR10baNfOvaqreRi
+.weak b__MA7naqebvq11OaVagresnprVAF_2bf15VFreivprZnantreRR10baNfOvaqreRi
 .type b__MA7naqebvq11OaVagresnprVAF_2bf15VFreivprZnantreRR10baNfOvaqreRi,%function
 b__MA7naqebvq11OaVagresnprVAF_2bf15VFreivprZnantreRR10baNfOvaqreRi:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_2jcVAF_7VOvaqreRRRAF_9UrncPnpur11urnc_vasb_gRRRR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_2jcVAF_7VOvaqreRRRAF_9UrncPnpur11urnc_vasb_gRRRR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_2jcVAF_7VOvaqreRRRAF_9UrncPnpur11urnc_vasb_gRRRR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_2jcVAF_7VOvaqreRRRAF_9UrncPnpur11urnc_vasb_gRRRR16qb_zbir_onpxjneqRCiCXiz:
 nop
@@ -3033,7 +3033,7 @@
 b__MAX7naqebvq14VCPGuernqFgngr23trgPnyyvatJbexFbheprHvqRi:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVvR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVvR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVvR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVvR7qb_pbclRCiCXiz:
 nop
@@ -3043,7 +3043,7 @@
 b__MA7naqebvq6ovaqre6Fgnghf14frgSebzFgnghfGRv:
 nop
 .text
-.globl b__MAXFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RqRRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR4svaqVF3_RRAF_21__gerr_pbafg_vgrengbeVF4_CAF_11__gerr_abqrVF4_CiRRyRREXG_
+.weak b__MAXFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RqRRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR4svaqVF3_RRAF_21__gerr_pbafg_vgrengbeVF4_CAF_11__gerr_abqrVF4_CiRRyRREXG_
 .type b__MAXFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RqRRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR4svaqVF3_RRAF_21__gerr_pbafg_vgrengbeVF4_CAF_11__gerr_abqrVF4_CiRRyRREXG_,%function
 b__MAXFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RqRRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR4svaqVF3_RRAF_21__gerr_pbafg_vgrengbeVF4_CAF_11__gerr_abqrVF4_CiRRyRREXG_:
 nop
@@ -3058,12 +3058,12 @@
 b__MGIA7naqebvq10NyybpngvbaR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAXFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RvRRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR4svaqVF3_RRAF_21__gerr_pbafg_vgrengbeVF4_CAF_11__gerr_abqrVF4_CiRRyRREXG_
+.weak b__MAXFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RvRRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR4svaqVF3_RRAF_21__gerr_pbafg_vgrengbeVF4_CAF_11__gerr_abqrVF4_CiRRyRREXG_
 .type b__MAXFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RvRRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR4svaqVF3_RRAF_21__gerr_pbafg_vgrengbeVF4_CAF_11__gerr_abqrVF4_CiRRyRREXG_,%function
 b__MAXFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RvRRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR4svaqVF3_RRAF_21__gerr_pbafg_vgrengbeVF4_CAF_11__gerr_abqrVF4_CiRRyRREXG_:
 nop
 .text
-.globl b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
+.weak b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
 .type b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_,%function
 b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_:
 nop
@@ -3083,7 +3083,7 @@
 b__MAX7naqebvq8OcOvaqre18vfQrfpevcgbePnpurqRi:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_12CebprffFgngr12unaqyr_ragelRR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq6IrpgbeVAF_12CebprffFgngr12unaqyr_ragelRR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq6IrpgbeVAF_12CebprffFgngr12unaqyr_ragelRR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq6IrpgbeVAF_12CebprffFgngr12unaqyr_ragelRR10qb_qrfgeblRCiz:
 nop
@@ -3108,17 +3108,17 @@
 b__MA7naqebvq6Cnepry25jevgrHavdhrSvyrQrfpevcgbeREXAF_4onfr14havdhr_sq_vzcyVAF1_13QrsnhygPybfreRRR:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_10havdhr_cgeVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_14qrsnhyg_qryrgrVF7_RRRRAF5_VFN_RRR8__nccraqRz
+.weak b__MAFg3__16irpgbeVAF_10havdhr_cgeVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_14qrsnhyg_qryrgrVF7_RRRRAF5_VFN_RRR8__nccraqRz
 .type b__MAFg3__16irpgbeVAF_10havdhr_cgeVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_14qrsnhyg_qryrgrVF7_RRRRAF5_VFN_RRR8__nccraqRz,%function
 b__MAFg3__16irpgbeVAF_10havdhr_cgeVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_14qrsnhyg_qryrgrVF7_RRRRAF5_VFN_RRR8__nccraqRz:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVqAF_9nyybpngbeVqRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR7qrfgeblRCAF_11__gerr_abqrVF8_CiRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVqAF_9nyybpngbeVqRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR7qrfgeblRCAF_11__gerr_abqrVF8_CiRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVqAF_9nyybpngbeVqRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR7qrfgeblRCAF_11__gerr_abqrVF8_CiRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVqAF_9nyybpngbeVqRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR7qrfgeblRCAF_11__gerr_abqrVF8_CiRR:
 nop
 .data
-.globl b__MGPA7naqebvq15OcNccBcfFreivprR0_AF_11OcVagresnprVAF_14VNccBcfFreivprRRR
+.weak b__MGPA7naqebvq15OcNccBcfFreivprR0_AF_11OcVagresnprVAF_14VNccBcfFreivprRRR
 .type b__MGPA7naqebvq15OcNccBcfFreivprR0_AF_11OcVagresnprVAF_14VNccBcfFreivprRRR,%object
 b__MGPA7naqebvq15OcNccBcfFreivprR0_AF_11OcVagresnprVAF_14VNccBcfFreivprRRR:
 .space __SIZEOF_POINTER__
@@ -3128,12 +3128,12 @@
 b__MAX7naqebvq6Cnepry14purpxVagresnprRCAF_7VOvaqreR:
 nop
 .text
-.globl b__MAFg3__116__pbcl_hanyvtarqVAF_6irpgbeVoAF_9nyybpngbeVoRRRRYo0RRRAF_14__ovg_vgrengbeVG_Yo0RKYv0RRRRAF5_VF6_KG0_RKYv0RRRRF8_F7_
+.weak b__MAFg3__116__pbcl_hanyvtarqVAF_6irpgbeVoAF_9nyybpngbeVoRRRRYo0RRRAF_14__ovg_vgrengbeVG_Yo0RKYv0RRRRAF5_VF6_KG0_RKYv0RRRRF8_F7_
 .type b__MAFg3__116__pbcl_hanyvtarqVAF_6irpgbeVoAF_9nyybpngbeVoRRRRYo0RRRAF_14__ovg_vgrengbeVG_Yo0RKYv0RRRRAF5_VF6_KG0_RKYv0RRRRF8_F7_,%function
 b__MAFg3__116__pbcl_hanyvtarqVAF_6irpgbeVoAF_9nyybpngbeVoRRRRYo0RRRAF_14__ovg_vgrengbeVG_Yo0RKYv0RRRRAF5_VF6_KG0_RKYv0RRRRF8_F7_:
 nop
 .text
-.globl b__MAFg3__16__gerrVA7naqebvq8Fgevat16RAF_4yrffVF2_RRAF_9nyybpngbeVF2_RRR25__rzcynpr_havdhr_xrl_netfVF2_WEXF2_RRRAF_4cnveVAF_15__gerr_vgrengbeVF2_CAF_11__gerr_abqrVF2_CiRRyRRoRREXG_QcBG0_
+.weak b__MAFg3__16__gerrVA7naqebvq8Fgevat16RAF_4yrffVF2_RRAF_9nyybpngbeVF2_RRR25__rzcynpr_havdhr_xrl_netfVF2_WEXF2_RRRAF_4cnveVAF_15__gerr_vgrengbeVF2_CAF_11__gerr_abqrVF2_CiRRyRRoRREXG_QcBG0_
 .type b__MAFg3__16__gerrVA7naqebvq8Fgevat16RAF_4yrffVF2_RRAF_9nyybpngbeVF2_RRR25__rzcynpr_havdhr_xrl_netfVF2_WEXF2_RRRAF_4cnveVAF_15__gerr_vgrengbeVF2_CAF_11__gerr_abqrVF2_CiRRyRRoRREXG_QcBG0_,%function
 b__MAFg3__16__gerrVA7naqebvq8Fgevat16RAF_4yrffVF2_RRAF_9nyybpngbeVF2_RRR25__rzcynpr_havdhr_xrl_netfVF2_WEXF2_RRRAF_4cnveVAF_15__gerr_vgrengbeVF2_CAF_11__gerr_abqrVF2_CiRRyRRoRREXG_QcBG0_:
 nop
@@ -3148,12 +3148,12 @@
 b__MGua8_A7naqebvq13OaHvqBofreire10baGenafnpgRwEXAF_6CnepryRCF1_w:
 nop
 .data
-.globl b__MGIA7naqebvq16OcErfhygErprvireR
+.weak b__MGIA7naqebvq16OcErfhygErprvireR
 .type b__MGIA7naqebvq16OcErfhygErprvireR,%object
 b__MGIA7naqebvq16OcErfhygErprvireR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVF3_AF_9nyybpngbeVF3_RRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR4svaqVF3_RRAF_15__gerr_vgrengbeVF8_CAF_11__gerr_abqrVF8_CiRRyRREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVF3_AF_9nyybpngbeVF3_RRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR4svaqVF3_RRAF_15__gerr_vgrengbeVF8_CAF_11__gerr_abqrVF8_CiRRyRREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVF3_AF_9nyybpngbeVF3_RRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR4svaqVF3_RRAF_15__gerr_vgrengbeVF8_CAF_11__gerr_abqrVF8_CiRRyRREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVF3_AF_9nyybpngbeVF3_RRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR4svaqVF3_RRAF_15__gerr_vgrengbeVF8_CAF_11__gerr_abqrVF8_CiRRyRREXG_:
 nop
@@ -3168,7 +3168,7 @@
 b__MGGA7naqebvq22OaCrezvffvbaPbagebyyreR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_2jcVAF_7VOvaqreRRRAF_9UrncPnpur11urnc_vasb_gRRRR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_2jcVAF_7VOvaqreRRRAF_9UrncPnpur11urnc_vasb_gRRRR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_2jcVAF_7VOvaqreRRRAF_9UrncPnpur11urnc_vasb_gRRRR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_2jcVAF_7VOvaqreRRRAF_9UrncPnpur11urnc_vasb_gRRRR8qb_fcyngRCiCXiz:
 nop
@@ -3183,7 +3183,7 @@
 b__MA7naqebvq2bf23VFreivprPnyyonpxQrsnhyg10baNfOvaqreRi:
 nop
 .data
-.globl b__MGGA7naqebvq15OcFuryyPnyyonpxR
+.weak b__MGGA7naqebvq15OcFuryyPnyyonpxR
 .type b__MGGA7naqebvq15OcFuryyPnyyonpxR,%object
 b__MGGA7naqebvq15OcFuryyPnyyonpxR:
 .space __SIZEOF_POINTER__
@@ -3193,7 +3193,7 @@
 b__MA7naqebvq12CebprffFgngr18frgPnyyErfgevpgvbaRAF0_15PnyyErfgevpgvbaR:
 nop
 .text
-.globl b__MA7naqebvq11OaVagresnprVAF_7pbagrag2cz21VCnpxntrZnantreAngvirRR10baNfOvaqreRi
+.weak b__MA7naqebvq11OaVagresnprVAF_7pbagrag2cz21VCnpxntrZnantreAngvirRR10baNfOvaqreRi
 .type b__MA7naqebvq11OaVagresnprVAF_7pbagrag2cz21VCnpxntrZnantreAngvirRR10baNfOvaqreRi,%function
 b__MA7naqebvq11OaVagresnprVAF_7pbagrag2cz21VCnpxntrZnantreAngvirRR10baNfOvaqreRi:
 nop
@@ -3203,12 +3203,12 @@
 b__MA7naqebvq12VHvqBofreire11nfVagresnprREXAF_2fcVAF_7VOvaqreRRR:
 nop
 .text
-.globl b__MA7naqebvq9FvatyrgbaVAF_18CebprffVasbFreivprRRQ1Ri
+.weak b__MA7naqebvq9FvatyrgbaVAF_18CebprffVasbFreivprRRQ1Ri
 .type b__MA7naqebvq9FvatyrgbaVAF_18CebprffVasbFreivprRRQ1Ri,%function
 b__MA7naqebvq9FvatyrgbaVAF_18CebprffVasbFreivprRRQ1Ri:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_2fcVAF_18OhssrerqGrkgBhgchg11OhssreFgngrRRRR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq6IrpgbeVAF_2fcVAF_18OhssrerqGrkgBhgchg11OhssreFgngrRRRR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq6IrpgbeVAF_2fcVAF_18OhssrerqGrkgBhgchg11OhssreFgngrRRRR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq6IrpgbeVAF_2fcVAF_18OhssrerqGrkgBhgchg11OhssreFgngrRRRR12qb_pbafgehpgRCiz:
 nop
@@ -3223,12 +3223,12 @@
 b__MAX7naqebvq6Cnepry30ernqHavdhrSvyrQrfpevcgbeIrpgbeRCAFg3__16irpgbeVAF_4onfr14havdhr_sq_vzcyVAF3_13QrsnhygPybfreRRRAF1_9nyybpngbeVF6_RRRR:
 nop
 .text
-.globl b__MAXFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVvAF_9nyybpngbeVvRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR4svaqVF3_RRAF_21__gerr_pbafg_vgrengbeVF8_CAF_11__gerr_abqrVF8_CiRRyRREXG_
+.weak b__MAXFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVvAF_9nyybpngbeVvRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR4svaqVF3_RRAF_21__gerr_pbafg_vgrengbeVF8_CAF_11__gerr_abqrVF8_CiRRyRREXG_
 .type b__MAXFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVvAF_9nyybpngbeVvRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR4svaqVF3_RRAF_21__gerr_pbafg_vgrengbeVF8_CAF_11__gerr_abqrVF8_CiRRyRREXG_,%function
 b__MAXFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVvAF_9nyybpngbeVvRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR4svaqVF3_RRAF_21__gerr_pbafg_vgrengbeVF8_CAF_11__gerr_abqrVF8_CiRRyRREXG_:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVvR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVvR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVvR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVvR8qb_fcyngRCiCXiz:
 nop
@@ -3238,12 +3238,12 @@
 b__MA7naqebvq8OcOvaqre8genafnpgRwEXAF_6CnepryRCF1_w:
 nop
 .text
-.globl b__MA7naqebvqyfVN3_pRREAF_10GrkgBhgchgRF3_EXG_
+.weak b__MA7naqebvqyfVN3_pRREAF_10GrkgBhgchgRF3_EXG_
 .type b__MA7naqebvqyfVN3_pRREAF_10GrkgBhgchgRF3_EXG_,%function
 b__MA7naqebvqyfVN3_pRREAF_10GrkgBhgchgRF3_EXG_:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RqRRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR25__rzcynpr_havdhr_xrl_netfVF3_WEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXF3_RRRAFT_VWRRRRRRAF_4cnveVAF_15__gerr_vgrengbeVF4_CAF_11__gerr_abqrVF4_CiRRyRRoRREXG_QcBG0_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RqRRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR25__rzcynpr_havdhr_xrl_netfVF3_WEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXF3_RRRAFT_VWRRRRRRAF_4cnveVAF_15__gerr_vgrengbeVF4_CAF_11__gerr_abqrVF4_CiRRyRRoRREXG_QcBG0_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RqRRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR25__rzcynpr_havdhr_xrl_netfVF3_WEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXF3_RRRAFT_VWRRRRRRAF_4cnveVAF_15__gerr_vgrengbeVF4_CAF_11__gerr_abqrVF4_CiRRyRRoRREXG_QcBG0_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RqRRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR25__rzcynpr_havdhr_xrl_netfVF3_WEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXF3_RRRAFT_VWRRRRRRAF_4cnveVAF_15__gerr_vgrengbeVF4_CAF_11__gerr_abqrVF4_CiRRyRRoRREXG_QcBG0_:
 nop
@@ -3268,7 +3268,7 @@
 b__MA7naqebvq6Cnepry15jevgrVag32NeenlRzCXv:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVqAF_9nyybpngbeVqRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR30__rzcynpr_uvag_havdhr_xrl_netfVF3_WEXAF_4cnveVXF3_F7_RRRRRAF_15__gerr_vgrengbeVF8_CAF_11__gerr_abqrVF8_CiRRyRRAF_21__gerr_pbafg_vgrengbeVF8_FC_yRREXG_QcBG0_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVqAF_9nyybpngbeVqRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR30__rzcynpr_uvag_havdhr_xrl_netfVF3_WEXAF_4cnveVXF3_F7_RRRRRAF_15__gerr_vgrengbeVF8_CAF_11__gerr_abqrVF8_CiRRyRRAF_21__gerr_pbafg_vgrengbeVF8_FC_yRREXG_QcBG0_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVqAF_9nyybpngbeVqRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR30__rzcynpr_uvag_havdhr_xrl_netfVF3_WEXAF_4cnveVXF3_F7_RRRRRAF_15__gerr_vgrengbeVF8_CAF_11__gerr_abqrVF8_CiRRyRRAF_21__gerr_pbafg_vgrengbeVF8_FC_yRREXG_QcBG0_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVqAF_9nyybpngbeVqRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR30__rzcynpr_uvag_havdhr_xrl_netfVF3_WEXAF_4cnveVXF3_F7_RRRRRAF_15__gerr_vgrengbeVF8_CAF_11__gerr_abqrVF8_CiRRyRRAF_21__gerr_pbafg_vgrengbeVF8_FC_yRREXG_QcBG0_:
 nop
@@ -3318,7 +3318,7 @@
 b__MGIA7naqebvq15OaFuryyPnyyonpxR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RvRRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR4svaqVF3_RRAF_15__gerr_vgrengbeVF4_CAF_11__gerr_abqrVF4_CiRRyRREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RvRRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR4svaqVF3_RRAF_15__gerr_vgrengbeVF4_CAF_11__gerr_abqrVF4_CiRRyRREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RvRRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR4svaqVF3_RRAF_15__gerr_vgrengbeVF4_CAF_11__gerr_abqrVF4_CiRRyRREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RvRRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR4svaqVF3_RRAF_15__gerr_vgrengbeVF4_CAF_11__gerr_abqrVF4_CiRRyRREXG_:
 nop
@@ -3353,7 +3353,7 @@
 b__MA7naqebvq6Cnepry15erfgberNyybjSqfRo:
 nop
 .data
-.globl b__MGGA7naqebvq14OcOnggrelFgngfR
+.weak b__MGGA7naqebvq14OcOnggrelFgngfR
 .type b__MGGA7naqebvq14OcOnggrelFgngfR,%object
 b__MGGA7naqebvq14OcOnggrelFgngfR:
 .space __SIZEOF_POINTER__
@@ -3388,7 +3388,7 @@
 b__MAX7naqebvq2bf17CrefvfgnoyrOhaqyr4fvmrRi:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvwRRAF_22__habeqrerq_znc_unfureVvF2_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF2_AF_8rdhny_gbVvRRYo1RRRAF_9nyybpngbeVF2_RRR25__rzcynpr_havdhr_xrl_netfVvWEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXvRRRAFV_VWRRRRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF2_CiRRRRoRREXG_QcBG0_
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvwRRAF_22__habeqrerq_znc_unfureVvF2_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF2_AF_8rdhny_gbVvRRYo1RRRAF_9nyybpngbeVF2_RRR25__rzcynpr_havdhr_xrl_netfVvWEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXvRRRAFV_VWRRRRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF2_CiRRRRoRREXG_QcBG0_
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvwRRAF_22__habeqrerq_znc_unfureVvF2_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF2_AF_8rdhny_gbVvRRYo1RRRAF_9nyybpngbeVF2_RRR25__rzcynpr_havdhr_xrl_netfVvWEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXvRRRAFV_VWRRRRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF2_CiRRRRoRREXG_QcBG0_,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvwRRAF_22__habeqrerq_znc_unfureVvF2_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF2_AF_8rdhny_gbVvRRYo1RRRAF_9nyybpngbeVF2_RRR25__rzcynpr_havdhr_xrl_netfVvWEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXvRRRAFV_VWRRRRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF2_CiRRRRoRREXG_QcBG0_:
 nop
@@ -3403,12 +3403,12 @@
 b__MAX7naqebvq6Cnepry12qngnPncnpvglRi:
 nop
 .text
-.globl b__MAX7naqebvq6Cnepry16erfreirBhgIrpgbeVnRRvCAFg3__16irpgbeVG_AF2_9nyybpngbeVF4_RRRRCz
+.weak b__MAX7naqebvq6Cnepry16erfreirBhgIrpgbeVnRRvCAFg3__16irpgbeVG_AF2_9nyybpngbeVF4_RRRRCz
 .type b__MAX7naqebvq6Cnepry16erfreirBhgIrpgbeVnRRvCAFg3__16irpgbeVG_AF2_9nyybpngbeVF4_RRRRCz,%function
 b__MAX7naqebvq6Cnepry16erfreirBhgIrpgbeVnRRvCAFg3__16irpgbeVG_AF2_9nyybpngbeVF4_RRRRCz:
 nop
 .text
-.globl b__MAX7naqebvq6Cnepry21hafnsrErnqGlcrqIrpgbeVzzRRvCAFg3__16irpgbeVG_AF2_9nyybpngbeVF4_RRRRZF0_XSvCG0_R
+.weak b__MAX7naqebvq6Cnepry21hafnsrErnqGlcrqIrpgbeVzzRRvCAFg3__16irpgbeVG_AF2_9nyybpngbeVF4_RRRRZF0_XSvCG0_R
 .type b__MAX7naqebvq6Cnepry21hafnsrErnqGlcrqIrpgbeVzzRRvCAFg3__16irpgbeVG_AF2_9nyybpngbeVF4_RRRRZF0_XSvCG0_R,%function
 b__MAX7naqebvq6Cnepry21hafnsrErnqGlcrqIrpgbeVzzRRvCAFg3__16irpgbeVG_AF2_9nyybpngbeVF4_RRRRZF0_XSvCG0_R:
 nop
@@ -3433,12 +3433,12 @@
 b__MA7naqebvq22FvzcyrOrfgSvgNyybpngbe8nyybpngrRzw:
 nop
 .text
-.globl b__MAX7naqebvq6Cnepry21hafnsrErnqGlcrqIrpgbeVAF_4onfr14havdhr_sq_vzcyVAF2_13QrsnhygPybfreRRRF5_RRvCAFg3__16irpgbeVG_AF6_9nyybpngbeVF8_RRRRZF0_XSvCG0_R
+.weak b__MAX7naqebvq6Cnepry21hafnsrErnqGlcrqIrpgbeVAF_4onfr14havdhr_sq_vzcyVAF2_13QrsnhygPybfreRRRF5_RRvCAFg3__16irpgbeVG_AF6_9nyybpngbeVF8_RRRRZF0_XSvCG0_R
 .type b__MAX7naqebvq6Cnepry21hafnsrErnqGlcrqIrpgbeVAF_4onfr14havdhr_sq_vzcyVAF2_13QrsnhygPybfreRRRF5_RRvCAFg3__16irpgbeVG_AF6_9nyybpngbeVF8_RRRRZF0_XSvCG0_R,%function
 b__MAX7naqebvq6Cnepry21hafnsrErnqGlcrqIrpgbeVAF_4onfr14havdhr_sq_vzcyVAF2_13QrsnhygPybfreRRRF5_RRvCAFg3__16irpgbeVG_AF6_9nyybpngbeVF8_RRRRZF0_XSvCG0_R:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RoRRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR7qrfgeblRCAF_11__gerr_abqrVF4_CiRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RoRRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR7qrfgeblRCAF_11__gerr_abqrVF4_CiRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RoRRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR7qrfgeblRCAF_11__gerr_abqrVF4_CiRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RoRRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR7qrfgeblRCAF_11__gerr_abqrVF4_CiRR:
 nop
@@ -3463,7 +3463,7 @@
 b__MGPA7naqebvq16OaErfhygErprvireR8_AF_7VOvaqreR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RqRRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR30__rzcynpr_uvag_havdhr_xrl_netfVF3_WEXAF_4cnveVXF3_qRRRRRAF_15__gerr_vgrengbeVF4_CAF_11__gerr_abqrVF4_CiRRyRRAF_21__gerr_pbafg_vgrengbeVF4_FZ_yRREXG_QcBG0_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RqRRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR30__rzcynpr_uvag_havdhr_xrl_netfVF3_WEXAF_4cnveVXF3_qRRRRRAF_15__gerr_vgrengbeVF4_CAF_11__gerr_abqrVF4_CiRRyRRAF_21__gerr_pbafg_vgrengbeVF4_FZ_yRREXG_QcBG0_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RqRRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR30__rzcynpr_uvag_havdhr_xrl_netfVF3_WEXAF_4cnveVXF3_qRRRRRAF_15__gerr_vgrengbeVF4_CAF_11__gerr_abqrVF4_CiRRyRRAF_21__gerr_pbafg_vgrengbeVF4_FZ_yRREXG_QcBG0_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RqRRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR30__rzcynpr_uvag_havdhr_xrl_netfVF3_WEXAF_4cnveVXF3_qRRRRRAF_15__gerr_vgrengbeVF4_CAF_11__gerr_abqrVF4_CiRRyRRAF_21__gerr_pbafg_vgrengbeVF4_FZ_yRREXG_QcBG0_:
 nop
@@ -3483,7 +3483,7 @@
 b__MGIA7naqebvq2bf20CneprySvyrQrfpevcgbeR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_15CrezvffvbaPnpur5RagelRR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_15CrezvffvbaPnpur5RagelRR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_15CrezvffvbaPnpur5RagelRR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_15CrezvffvbaPnpur5RagelRR12qb_pbafgehpgRCiz:
 nop
@@ -3508,7 +3508,7 @@
 b__MAX7naqebvq2bf17CrefvfgnoyrOhaqyr13trgQbhoyrXrlfRi:
 nop
 .data
-.globl b__MGPA7naqebvq20OcCebprffVasbFreivprR0_AF_19VCebprffVasbFreivprR
+.weak b__MGPA7naqebvq20OcCebprffVasbFreivprR0_AF_19VCebprffVasbFreivprR
 .type b__MGPA7naqebvq20OcCebprffVasbFreivprR0_AF_19VCebprffVasbFreivprR,%object
 b__MGPA7naqebvq20OcCebprffVasbFreivprR0_AF_19VCebprffVasbFreivprR:
 .space __SIZEOF_POINTER__
@@ -3533,7 +3533,7 @@
 b__MA7naqebvq13tCebprffZhgrkR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_12CebprffFgngr12unaqyr_ragelRR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_12CebprffFgngr12unaqyr_ragelRR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_12CebprffFgngr12unaqyr_ragelRR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_12CebprffFgngr12unaqyr_ragelRR7qb_pbclRCiCXiz:
 nop
@@ -3553,7 +3553,7 @@
 b__MA7naqebvq14VCPGuernqFgngr13syhfuPbzznaqfRi:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVCAF_7ErsOnfr12jrnxers_glcrRR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVCAF_7ErsOnfr12jrnxers_glcrRR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVCAF_7ErsOnfr12jrnxers_glcrRR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVCAF_7ErsOnfr12jrnxers_glcrRR7qb_pbclRCiCXiz:
 nop
@@ -3578,7 +3578,7 @@
 b__MGi0_a24_A7naqebvq13VOnggrelFgngfQ0Ri:
 nop
 .text
-.globl b__MAFg3__16irpgbeVsAF_9nyybpngbeVsRRR8__nccraqRz
+.weak b__MAFg3__16irpgbeVsAF_9nyybpngbeVsRRR8__nccraqRz
 .type b__MAFg3__16irpgbeVsAF_9nyybpngbeVsRRR8__nccraqRz,%function
 b__MAFg3__16irpgbeVsAF_9nyybpngbeVsRRR8__nccraqRz:
 nop
@@ -3598,7 +3598,7 @@
 b__MA7naqebvq6Cnepry13jevgrFgevat16REXAFg3__110havdhr_cgeVAF_8Fgevat16RAF1_14qrsnhyg_qryrgrVF3_RRRR:
 nop
 .text
-.globl b__MA7naqebvq6Cnepry22hafnsrJevgrGlcrqIrpgbeVAFg3__110havdhr_cgeVAF2_12onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRAF2_14qrsnhyg_qryrgrVF9_RRRREXFP_RRvEXAF2_6irpgbeVG_AF7_VFT_RRRRZF0_SvG0_R
+.weak b__MA7naqebvq6Cnepry22hafnsrJevgrGlcrqIrpgbeVAFg3__110havdhr_cgeVAF2_12onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRAF2_14qrsnhyg_qryrgrVF9_RRRREXFP_RRvEXAF2_6irpgbeVG_AF7_VFT_RRRRZF0_SvG0_R
 .type b__MA7naqebvq6Cnepry22hafnsrJevgrGlcrqIrpgbeVAFg3__110havdhr_cgeVAF2_12onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRAF2_14qrsnhyg_qryrgrVF9_RRRREXFP_RRvEXAF2_6irpgbeVG_AF7_VFT_RRRRZF0_SvG0_R,%function
 b__MA7naqebvq6Cnepry22hafnsrJevgrGlcrqIrpgbeVAFg3__110havdhr_cgeVAF2_12onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRAF2_14qrsnhyg_qryrgrVF9_RRRREXFP_RRvEXAF2_6irpgbeVG_AF7_VFT_RRRRZF0_SvG0_R:
 nop
@@ -3613,17 +3613,17 @@
 b__MGPA7naqebvq13VOnggrelFgngfR0_AF_10VVagresnprR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_8Fgevat16RR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_8Fgevat16RR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_8Fgevat16RR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_8Fgevat16RR8qb_fcyngRCiCXiz:
 nop
 .text
-.globl b__MAX7naqebvq6Cnepry23ernqAhyynoyrGlcrqIrpgbeVsRRvCAFg3__110havdhr_cgeVAF2_6irpgbeVG_AF2_9nyybpngbeVF5_RRRRAF2_14qrsnhyg_qryrgrVF8_RRRRZF0_XSvCF5_R
+.weak b__MAX7naqebvq6Cnepry23ernqAhyynoyrGlcrqIrpgbeVsRRvCAFg3__110havdhr_cgeVAF2_6irpgbeVG_AF2_9nyybpngbeVF5_RRRRAF2_14qrsnhyg_qryrgrVF8_RRRRZF0_XSvCF5_R
 .type b__MAX7naqebvq6Cnepry23ernqAhyynoyrGlcrqIrpgbeVsRRvCAFg3__110havdhr_cgeVAF2_6irpgbeVG_AF2_9nyybpngbeVF5_RRRRAF2_14qrsnhyg_qryrgrVF8_RRRRZF0_XSvCF5_R,%function
 b__MAX7naqebvq6Cnepry23ernqAhyynoyrGlcrqIrpgbeVsRRvCAFg3__110havdhr_cgeVAF2_6irpgbeVG_AF2_9nyybpngbeVF5_RRRRAF2_14qrsnhyg_qryrgrVF8_RRRRZF0_XSvCF5_R:
 nop
 .data
-.globl b__MGPA7naqebvq15OcFuryyPnyyonpxR0_AF_14VFuryyPnyyonpxR
+.weak b__MGPA7naqebvq15OcFuryyPnyyonpxR0_AF_14VFuryyPnyyonpxR
 .type b__MGPA7naqebvq15OcFuryyPnyyonpxR0_AF_14VFuryyPnyyonpxR,%object
 b__MGPA7naqebvq15OcFuryyPnyyonpxR0_AF_14VFuryyPnyyonpxR:
 .space __SIZEOF_POINTER__
@@ -3653,7 +3653,7 @@
 b__MA7naqebvq11VZrzbelUrncQ2Ri:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVCAF_7ErsOnfr12jrnxers_glcrRR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVCAF_7ErsOnfr12jrnxers_glcrRR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVCAF_7ErsOnfr12jrnxers_glcrRR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVCAF_7ErsOnfr12jrnxers_glcrRR16qb_zbir_onpxjneqRCiCXiz:
 nop
@@ -3673,12 +3673,12 @@
 b__MA7naqebvq8OcOvaqre15fAhzGenpxrqHvqfR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGGA7naqebvq10CbbyGuernqR
+.weak b__MGGA7naqebvq10CbbyGuernqR
 .type b__MGGA7naqebvq10CbbyGuernqR,%object
 b__MGGA7naqebvq10CbbyGuernqR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIA7naqebvq6IrpgbeVAF_12CebprffFgngr12unaqyr_ragelRRR
+.weak b__MGIA7naqebvq6IrpgbeVAF_12CebprffFgngr12unaqyr_ragelRRR
 .type b__MGIA7naqebvq6IrpgbeVAF_12CebprffFgngr12unaqyr_ragelRRR,%object
 b__MGIA7naqebvq6IrpgbeVAF_12CebprffFgngr12unaqyr_ragelRRR:
 .space __SIZEOF_POINTER__
@@ -3693,7 +3693,7 @@
 b__MA7naqebvq18FreivprZnantreFuvzP1REXAF_2fcVAF_2bf15VFreivprZnantreRRR:
 nop
 .text
-.globl b__MAXFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVF3_AF_9nyybpngbeVF3_RRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR4svaqVF3_RRAF_21__gerr_pbafg_vgrengbeVF8_CAF_11__gerr_abqrVF8_CiRRyRREXG_
+.weak b__MAXFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVF3_AF_9nyybpngbeVF3_RRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR4svaqVF3_RRAF_21__gerr_pbafg_vgrengbeVF8_CAF_11__gerr_abqrVF8_CiRRyRREXG_
 .type b__MAXFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVF3_AF_9nyybpngbeVF3_RRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR4svaqVF3_RRAF_21__gerr_pbafg_vgrengbeVF8_CAF_11__gerr_abqrVF8_CiRRyRREXG_,%function
 b__MAXFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVF3_AF_9nyybpngbeVF3_RRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR4svaqVF3_RRAF_21__gerr_pbafg_vgrengbeVF8_CAF_11__gerr_abqrVF8_CiRRyRREXG_:
 nop
@@ -3758,7 +3758,7 @@
 b__MGPA7naqebvq14OaOnggrelFgngfR0_AF_11OaVagresnprVAF_13VOnggrelFgngfRRR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGGA7naqebvq13OcHvqBofreireR
+.weak b__MGGA7naqebvq13OcHvqBofreireR
 .type b__MGGA7naqebvq13OcHvqBofreireR,%object
 b__MGGA7naqebvq13OcHvqBofreireR:
 .space __SIZEOF_POINTER__
@@ -3778,7 +3778,7 @@
 b__MA7naqebvq14VCPGuernqFgngrP2Ri:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVCAF_7ErsOnfr12jrnxers_glcrRR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq6IrpgbeVCAF_7ErsOnfr12jrnxers_glcrRR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq6IrpgbeVCAF_7ErsOnfr12jrnxers_glcrRR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq6IrpgbeVCAF_7ErsOnfr12jrnxers_glcrRR12qb_pbafgehpgRCiz:
 nop
@@ -3793,7 +3793,7 @@
 b__MA7naqebvq2bf15VFreivprZnantre11nfVagresnprREXAF_2fcVAF_7VOvaqreRRR:
 nop
 .text
-.globl b__MAFg3__114__pbcl_nyvtarqVAF_6irpgbeVoAF_9nyybpngbeVoRRRRYo0RRRAF_14__ovg_vgrengbeVG_Yo0RKYv0RRRRAF5_VF6_KG0_RKYv0RRRRF8_F7_
+.weak b__MAFg3__114__pbcl_nyvtarqVAF_6irpgbeVoAF_9nyybpngbeVoRRRRYo0RRRAF_14__ovg_vgrengbeVG_Yo0RKYv0RRRRAF5_VF6_KG0_RKYv0RRRRF8_F7_
 .type b__MAFg3__114__pbcl_nyvtarqVAF_6irpgbeVoAF_9nyybpngbeVoRRRRYo0RRRAF_14__ovg_vgrengbeVG_Yo0RKYv0RRRRAF5_VF6_KG0_RKYv0RRRRF8_F7_,%function
 b__MAFg3__114__pbcl_nyvtarqVAF_6irpgbeVoAF_9nyybpngbeVoRRRRYo0RRRAF_14__ovg_vgrengbeVG_Yo0RKYv0RRRRAF5_VF6_KG0_RKYv0RRRRF8_F7_:
 nop
@@ -3818,7 +3818,7 @@
 b__MGGA7naqebvq15VNccBcfPnyyonpxR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGPA7naqebvq20OcCebprffVasbFreivprR0_AF_11OcVagresnprVAF_19VCebprffVasbFreivprRRR
+.weak b__MGPA7naqebvq20OcCebprffVasbFreivprR0_AF_11OcVagresnprVAF_19VCebprffVasbFreivprRRR
 .type b__MGPA7naqebvq20OcCebprffVasbFreivprR0_AF_11OcVagresnprVAF_19VCebprffVasbFreivprRRR,%object
 b__MGPA7naqebvq20OcCebprffVasbFreivprR0_AF_11OcVagresnprVAF_19VCebprffVasbFreivprRRR:
 .space __SIZEOF_POINTER__
@@ -3828,7 +3828,7 @@
 b__MA7naqebvq18CebprffVasbFreivpr18hcqngrOvaqreYbpxrqRi:
 nop
 .text
-.globl b__MA7naqebvq2fcVAF_21VCrezvffvbaPbagebyyreRRQ2Ri
+.weak b__MA7naqebvq2fcVAF_21VCrezvffvbaPbagebyyreRRQ2Ri
 .type b__MA7naqebvq2fcVAF_21VCrezvffvbaPbagebyyreRRQ2Ri,%function
 b__MA7naqebvq2fcVAF_21VCrezvffvbaPbagebyyreRRQ2Ri:
 nop
@@ -3848,7 +3848,7 @@
 b__MA7naqebvq14VCPGuernqFgngr24erfgberPnyyvatJbexFbheprRy:
 nop
 .text
-.globl b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9conpxsnvyRv
+.weak b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9conpxsnvyRv
 .type b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9conpxsnvyRv,%function
 b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9conpxsnvyRv:
 nop
@@ -3873,7 +3873,7 @@
 b__MA7naqebvq6Cnepry26jevgrEnjAhyynoyrCneprynoyrRCXAF_10CneprynoyrR:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RyRRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR25__rzcynpr_havdhr_xrl_netfVF3_WEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXF3_RRRAFT_VWRRRRRRAF_4cnveVAF_15__gerr_vgrengbeVF4_CAF_11__gerr_abqrVF4_CiRRyRRoRREXG_QcBG0_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RyRRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR25__rzcynpr_havdhr_xrl_netfVF3_WEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXF3_RRRAFT_VWRRRRRRAF_4cnveVAF_15__gerr_vgrengbeVF4_CAF_11__gerr_abqrVF4_CiRRyRRoRREXG_QcBG0_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RyRRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR25__rzcynpr_havdhr_xrl_netfVF3_WEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXF3_RRRAFT_VWRRRRRRAF_4cnveVAF_15__gerr_vgrengbeVF4_CAF_11__gerr_abqrVF4_CiRRyRRoRREXG_QcBG0_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RyRRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR25__rzcynpr_havdhr_xrl_netfVF3_WEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXF3_RRRAFT_VWRRRRRRAF_4cnveVAF_15__gerr_vgrengbeVF4_CAF_11__gerr_abqrVF4_CiRRyRRoRREXG_QcBG0_:
 nop
@@ -3893,12 +3893,12 @@
 b__MA7naqebvq6Cnepry18trgTybonyNyybpFvmrRi:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVF3_AF_9nyybpngbeVF3_RRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR12__svaq_rdhnyVF3_RRECAF_16__gerr_abqr_onfrVCiRRECAF_15__gerr_raq_abqrVFW_RREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVF3_AF_9nyybpngbeVF3_RRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR12__svaq_rdhnyVF3_RRECAF_16__gerr_abqr_onfrVCiRRECAF_15__gerr_raq_abqrVFW_RREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVF3_AF_9nyybpngbeVF3_RRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR12__svaq_rdhnyVF3_RRECAF_16__gerr_abqr_onfrVCiRRECAF_15__gerr_raq_abqrVFW_RREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVF3_AF_9nyybpngbeVF3_RRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR12__svaq_rdhnyVF3_RRECAF_16__gerr_abqr_onfrVCiRRECAF_15__gerr_raq_abqrVFW_RREXG_:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_12CebprffFgngr12unaqyr_ragelRR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_12CebprffFgngr12unaqyr_ragelRR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_12CebprffFgngr12unaqyr_ragelRR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_12CebprffFgngr12unaqyr_ragelRR15qb_zbir_sbejneqRCiCXiz:
 nop
@@ -3928,22 +3928,22 @@
 b__MA7naqebvq10ZrzbelOnfrQ0Ri:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RoRRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR15__rzcynpr_zhygvVWEXAF_4cnveVXF3_oRRRRRAF_15__gerr_vgrengbeVF4_CAF_11__gerr_abqrVF4_CiRRyRRQcBG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RoRRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR15__rzcynpr_zhygvVWEXAF_4cnveVXF3_oRRRRRAF_15__gerr_vgrengbeVF4_CAF_11__gerr_abqrVF4_CiRRyRRQcBG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RoRRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR15__rzcynpr_zhygvVWEXAF_4cnveVXF3_oRRRRRAF_15__gerr_vgrengbeVF4_CAF_11__gerr_abqrVF4_CiRRyRRQcBG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RoRRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR15__rzcynpr_zhygvVWEXAF_4cnveVXF3_oRRRRRAF_15__gerr_vgrengbeVF4_CAF_11__gerr_abqrVF4_CiRRyRRQcBG_:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_8Fgevat16RR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_8Fgevat16RR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_8Fgevat16RR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_8Fgevat16RR12qb_pbafgehpgRCiz:
 nop
 .data
-.globl b__MGPA7naqebvq16OcErfhygErprvireR8_AF_9OcErsOnfrR
+.weak b__MGPA7naqebvq16OcErfhygErprvireR8_AF_9OcErsOnfrR
 .type b__MGPA7naqebvq16OcErfhygErprvireR8_AF_9OcErsOnfrR,%object
 b__MGPA7naqebvq16OcErfhygErprvireR8_AF_9OcErsOnfrR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq6Cnepry21hafnsrErnqGlcrqIrpgbeVqqRRvCAFg3__16irpgbeVG_AF2_9nyybpngbeVF4_RRRRZF0_XSvCG0_R
+.weak b__MAX7naqebvq6Cnepry21hafnsrErnqGlcrqIrpgbeVqqRRvCAFg3__16irpgbeVG_AF2_9nyybpngbeVF4_RRRRZF0_XSvCG0_R
 .type b__MAX7naqebvq6Cnepry21hafnsrErnqGlcrqIrpgbeVqqRRvCAFg3__16irpgbeVG_AF2_9nyybpngbeVF4_RRRRZF0_XSvCG0_R,%function
 b__MAX7naqebvq6Cnepry21hafnsrErnqGlcrqIrpgbeVqqRRvCAFg3__16irpgbeVG_AF2_9nyybpngbeVF4_RRRRZF0_XSvCG0_R:
 nop
@@ -3953,7 +3953,7 @@
 b__MAX7naqebvq6Cnepry18ernqSvyrQrfpevcgbeRi:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_8OcOvaqre8BovghnelRR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_8OcOvaqre8BovghnelRR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_8OcOvaqre8BovghnelRR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_8OcOvaqre8BovghnelRR16qb_zbir_onpxjneqRCiCXiz:
 nop
@@ -3973,12 +3973,12 @@
 b__MA7naqebvq14VCPGuernqFgngr19frgFgevpgZbqrCbyvplRv:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVoAF_9nyybpngbeVoRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR12__svaq_rdhnyVF3_RRECAF_16__gerr_abqr_onfrVCiRRAF_21__gerr_pbafg_vgrengbeVF8_CAF_11__gerr_abqrVF8_FU_RRyRRECAF_15__gerr_raq_abqrVFW_RRFX_EXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVoAF_9nyybpngbeVoRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR12__svaq_rdhnyVF3_RRECAF_16__gerr_abqr_onfrVCiRRAF_21__gerr_pbafg_vgrengbeVF8_CAF_11__gerr_abqrVF8_FU_RRyRRECAF_15__gerr_raq_abqrVFW_RRFX_EXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVoAF_9nyybpngbeVoRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR12__svaq_rdhnyVF3_RRECAF_16__gerr_abqr_onfrVCiRRAF_21__gerr_pbafg_vgrengbeVF8_CAF_11__gerr_abqrVF8_FU_RRyRRECAF_15__gerr_raq_abqrVFW_RRFX_EXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVoAF_9nyybpngbeVoRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR12__svaq_rdhnyVF3_RRECAF_16__gerr_abqr_onfrVCiRRAF_21__gerr_pbafg_vgrengbeVF8_CAF_11__gerr_abqrVF8_FU_RRyRRECAF_15__gerr_raq_abqrVFW_RRFX_EXG_:
 nop
 .text
-.globl b__MAFg3__16irpgbeVyAF_9nyybpngbeVyRRRP2REXF3_
+.weak b__MAFg3__16irpgbeVyAF_9nyybpngbeVyRRRP2REXF3_
 .type b__MAFg3__16irpgbeVyAF_9nyybpngbeVyRRRP2REXF3_,%function
 b__MAFg3__16irpgbeVyAF_9nyybpngbeVyRRRP2REXF3_:
 nop
@@ -3993,7 +3993,7 @@
 b__MGGA7naqebvq2bf22VFreivprZnantreQrsnhygR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq9FvatyrgbaVAF_15CrezvffvbaPnpurRRQ2Ri
+.weak b__MA7naqebvq9FvatyrgbaVAF_15CrezvffvbaPnpurRRQ2Ri
 .type b__MA7naqebvq9FvatyrgbaVAF_15CrezvffvbaPnpurRRQ2Ri,%function
 b__MA7naqebvq9FvatyrgbaVAF_15CrezvffvbaPnpurRRQ2Ri:
 nop
@@ -4023,7 +4023,7 @@
 b__MAX7naqebvq6Cnepry12ernqFgevat16Ri:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_2jcVAF_7VOvaqreRRRAF_9UrncPnpur11urnc_vasb_gRRRR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_2jcVAF_7VOvaqreRRRAF_9UrncPnpur11urnc_vasb_gRRRR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_2jcVAF_7VOvaqreRRRAF_9UrncPnpur11urnc_vasb_gRRRR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_2jcVAF_7VOvaqreRRRAF_9UrncPnpur11urnc_vasb_gRRRR12qb_pbafgehpgRCiz:
 nop
@@ -4048,22 +4048,22 @@
 b__MAX7naqebvq6Cnepry10ernqVagCgeRCy:
 nop
 .text
-.globl b__MAX7naqebvq6Cnepry21hafnsrErnqGlcrqIrpgbeVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRF8_RRvCAF2_6irpgbeVG_AF6_VFN_RRRRZF0_XSvCG0_R
+.weak b__MAX7naqebvq6Cnepry21hafnsrErnqGlcrqIrpgbeVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRF8_RRvCAF2_6irpgbeVG_AF6_VFN_RRRRZF0_XSvCG0_R
 .type b__MAX7naqebvq6Cnepry21hafnsrErnqGlcrqIrpgbeVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRF8_RRvCAF2_6irpgbeVG_AF6_VFN_RRRRZF0_XSvCG0_R,%function
 b__MAX7naqebvq6Cnepry21hafnsrErnqGlcrqIrpgbeVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRF8_RRvCAF2_6irpgbeVG_AF6_VFN_RRRRZF0_XSvCG0_R:
 nop
 .text
-.globl b__MAFg3__16irpgbeVyAF_9nyybpngbeVyRRR8__nccraqRz
+.weak b__MAFg3__16irpgbeVyAF_9nyybpngbeVyRRR8__nccraqRz
 .type b__MAFg3__16irpgbeVyAF_9nyybpngbeVyRRR8__nccraqRz,%function
 b__MAFg3__16irpgbeVyAF_9nyybpngbeVyRRR8__nccraqRz:
 nop
 .data
-.globl b__MGIAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
+.weak b__MGIAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
 .type b__MGIAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR,%object
 b__MGIAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGPA7naqebvq22OcZrqvnErfbheprZbavgbeR8_AF_9OcErsOnfrR
+.weak b__MGPA7naqebvq22OcZrqvnErfbheprZbavgbeR8_AF_9OcErsOnfrR
 .type b__MGPA7naqebvq22OcZrqvnErfbheprZbavgbeR8_AF_9OcErsOnfrR,%object
 b__MGPA7naqebvq22OcZrqvnErfbheprZbavgbeR8_AF_9OcErsOnfrR:
 .space __SIZEOF_POINTER__
@@ -4093,17 +4093,17 @@
 b__MAX7naqebvq12OcZrzbelUrnc8trgSyntfRi:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVCAF_7OOvaqreRR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq6IrpgbeVCAF_7OOvaqreRR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq6IrpgbeVCAF_7OOvaqreRR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq6IrpgbeVCAF_7OOvaqreRR12qb_pbafgehpgRCiz:
 nop
 .data
-.globl b__MGPA7naqebvq16OcErfhygErprvireR0_AF_15VErfhygErprvireR
+.weak b__MGPA7naqebvq16OcErfhygErprvireR0_AF_15VErfhygErprvireR
 .type b__MGPA7naqebvq16OcErfhygErprvireR0_AF_15VErfhygErprvireR,%object
 b__MGPA7naqebvq16OcErfhygErprvireR0_AF_15VErfhygErprvireR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGPA7naqebvq14OcOnggrelFgngfR0_AF_13VOnggrelFgngfR
+.weak b__MGPA7naqebvq14OcOnggrelFgngfR0_AF_13VOnggrelFgngfR
 .type b__MGPA7naqebvq14OcOnggrelFgngfR0_AF_13VOnggrelFgngfR,%object
 b__MGPA7naqebvq14OcOnggrelFgngfR0_AF_13VOnggrelFgngfR:
 .space __SIZEOF_POINTER__
@@ -4128,7 +4128,7 @@
 b__MAX7naqebvq15VNccBcfPnyyonpx22trgVagresnprQrfpevcgbeRi:
 nop
 .data
-.globl b__MGPA7naqebvq16OcErfhygErprvireR0_AF_10VVagresnprR
+.weak b__MGPA7naqebvq16OcErfhygErprvireR0_AF_10VVagresnprR
 .type b__MGPA7naqebvq16OcErfhygErprvireR0_AF_10VVagresnprR,%object
 b__MGPA7naqebvq16OcErfhygErprvireR0_AF_10VVagresnprR:
 .space __SIZEOF_POINTER__
@@ -4168,7 +4168,7 @@
 b__MAX7naqebvq2bf17CrefvfgnoyrOhaqyr13trgFgevatXrlfRi:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RF3_RRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR7qrfgeblRCAF_11__gerr_abqrVF4_CiRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RF3_RRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR7qrfgeblRCAF_11__gerr_abqrVF4_CiRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RF3_RRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR7qrfgeblRCAF_11__gerr_abqrVF4_CiRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RF3_RRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR7qrfgeblRCAF_11__gerr_abqrVF4_CiRR:
 nop
@@ -4178,7 +4178,7 @@
 b__MA7naqebvq6ovaqre6FgnghfP2Rvv:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVCXiAF_8OcOvaqre13BowrpgZnantre7ragel_gRRRR8qb_fcyngRCiF3_z
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVCXiAF_8OcOvaqre13BowrpgZnantre7ragel_gRRRR8qb_fcyngRCiF3_z
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVCXiAF_8OcOvaqre13BowrpgZnantre7ragel_gRRRR8qb_fcyngRCiF3_z,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVCXiAF_8OcOvaqre13BowrpgZnantre7ragel_gRRRR8qb_fcyngRCiF3_z:
 nop
@@ -4188,7 +4188,7 @@
 b__MA7naqebvq12OcZrzbelUrncQ1Ri:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVCAF_7OOvaqreRR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVCAF_7OOvaqreRR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVCAF_7OOvaqreRR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVCAF_7OOvaqreRR7qb_pbclRCiCXiz:
 nop
@@ -4198,7 +4198,7 @@
 b__MAX7naqebvq6Cnepry12ernqFgevat16RCAFg3__110havdhr_cgeVAF_8Fgevat16RAF1_14qrsnhyg_qryrgrVF3_RRRR:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RF3_RRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR15__rzcynpr_zhygvVWEXAF_4cnveVXF3_F3_RRRRRAF_15__gerr_vgrengbeVF4_CAF_11__gerr_abqrVF4_CiRRyRRQcBG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RF3_RRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR15__rzcynpr_zhygvVWEXAF_4cnveVXF3_F3_RRRRRAF_15__gerr_vgrengbeVF4_CAF_11__gerr_abqrVF4_CiRRyRRQcBG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RF3_RRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR15__rzcynpr_zhygvVWEXAF_4cnveVXF3_F3_RRRRRAF_15__gerr_vgrengbeVF4_CAF_11__gerr_abqrVF4_CiRRyRRQcBG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RF3_RRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR15__rzcynpr_zhygvVWEXAF_4cnveVXF3_F3_RRRRRAF_15__gerr_vgrengbeVF4_CAF_11__gerr_abqrVF4_CiRRyRRQcBG_:
 nop
@@ -4238,7 +4238,7 @@
 b__MAX7naqebvq6Cnepry11ernqFgevat8Ri:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF2_2bf17CrefvfgnoyrOhaqyrRRRAF_19__znc_inyhr_pbzcnerVF3_F6_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF6_RRR4svaqVF3_RRAF_15__gerr_vgrengbeVF6_CAF_11__gerr_abqrVF6_CiRRyRREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF2_2bf17CrefvfgnoyrOhaqyrRRRAF_19__znc_inyhr_pbzcnerVF3_F6_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF6_RRR4svaqVF3_RRAF_15__gerr_vgrengbeVF6_CAF_11__gerr_abqrVF6_CiRRyRREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF2_2bf17CrefvfgnoyrOhaqyrRRRAF_19__znc_inyhr_pbzcnerVF3_F6_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF6_RRR4svaqVF3_RRAF_15__gerr_vgrengbeVF6_CAF_11__gerr_abqrVF6_CiRRyRREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF2_2bf17CrefvfgnoyrOhaqyrRRRAF_19__znc_inyhr_pbzcnerVF3_F6_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF6_RRR4svaqVF3_RRAF_15__gerr_vgrengbeVF6_CAF_11__gerr_abqrVF6_CiRRyRREXG_:
 nop
@@ -4318,12 +4318,12 @@
 b__MGPA7naqebvq12OaZrzbelUrncR8_AF_7OOvaqreR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq6IrpgbeVCAF_7ErsOnfr12jrnxers_glcrRR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq6IrpgbeVCAF_7ErsOnfr12jrnxers_glcrRR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq6IrpgbeVCAF_7ErsOnfr12jrnxers_glcrRR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq6IrpgbeVCAF_7ErsOnfr12jrnxers_glcrRR10qb_qrfgeblRCiz:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RyRRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR30__rzcynpr_uvag_havdhr_xrl_netfVF3_WEXAF_4cnveVXF3_yRRRRRAF_15__gerr_vgrengbeVF4_CAF_11__gerr_abqrVF4_CiRRyRRAF_21__gerr_pbafg_vgrengbeVF4_FZ_yRREXG_QcBG0_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RyRRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR30__rzcynpr_uvag_havdhr_xrl_netfVF3_WEXAF_4cnveVXF3_yRRRRRAF_15__gerr_vgrengbeVF4_CAF_11__gerr_abqrVF4_CiRRyRRAF_21__gerr_pbafg_vgrengbeVF4_FZ_yRREXG_QcBG0_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RyRRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR30__rzcynpr_uvag_havdhr_xrl_netfVF3_WEXAF_4cnveVXF3_yRRRRRAF_15__gerr_vgrengbeVF4_CAF_11__gerr_abqrVF4_CiRRyRRAF_21__gerr_pbafg_vgrengbeVF4_FZ_yRREXG_QcBG0_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RyRRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR30__rzcynpr_uvag_havdhr_xrl_netfVF3_WEXAF_4cnveVXF3_yRRRRRAF_15__gerr_vgrengbeVF4_CAF_11__gerr_abqrVF4_CiRRyRRAF_21__gerr_pbafg_vgrengbeVF4_FZ_yRREXG_QcBG0_:
 nop
@@ -4333,7 +4333,7 @@
 b__MAX7naqebvq8OcOvaqre10svaqBowrpgRCXi:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_15CrezvffvbaPnpur5RagelRR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_15CrezvffvbaPnpur5RagelRR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_15CrezvffvbaPnpur5RagelRR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_15CrezvffvbaPnpur5RagelRR7qb_pbclRCiCXiz:
 nop
@@ -4343,7 +4343,7 @@
 b__MGi0_a24_A7naqebvq8OaZrzbelQ1Ri:
 nop
 .data
-.globl b__MGIA7naqebvq6IrpgbeVCAF_7ErsOnfrRRR
+.weak b__MGIA7naqebvq6IrpgbeVCAF_7ErsOnfrRRR
 .type b__MGIA7naqebvq6IrpgbeVCAF_7ErsOnfrRRR,%object
 b__MGIA7naqebvq6IrpgbeVCAF_7ErsOnfrRRR:
 .space __SIZEOF_POINTER__
@@ -4363,7 +4363,7 @@
 b__MA7naqebvq7pbagrag2cz22OaCnpxntrZnantreAngvir10baGenafnpgRwEXAF_6CnepryRCF3_w:
 nop
 .text
-.globl b__MAFg3__16__gerrVA7naqebvq8Fgevat16RAF_4yrffVF2_RRAF_9nyybpngbeVF2_RRR12__svaq_rdhnyVF2_RRECAF_16__gerr_abqr_onfrVCiRRECAF_15__gerr_raq_abqrVFP_RREXG_
+.weak b__MAFg3__16__gerrVA7naqebvq8Fgevat16RAF_4yrffVF2_RRAF_9nyybpngbeVF2_RRR12__svaq_rdhnyVF2_RRECAF_16__gerr_abqr_onfrVCiRRECAF_15__gerr_raq_abqrVFP_RREXG_
 .type b__MAFg3__16__gerrVA7naqebvq8Fgevat16RAF_4yrffVF2_RRAF_9nyybpngbeVF2_RRR12__svaq_rdhnyVF2_RRECAF_16__gerr_abqr_onfrVCiRRECAF_15__gerr_raq_abqrVFP_RREXG_,%function
 b__MAFg3__16__gerrVA7naqebvq8Fgevat16RAF_4yrffVF2_RRAF_9nyybpngbeVF2_RRR12__svaq_rdhnyVF2_RRECAF_16__gerr_abqr_onfrVCiRRECAF_15__gerr_raq_abqrVFP_RREXG_:
 nop
@@ -4378,7 +4378,7 @@
 b__MGi0_a24_A7naqebvq2bf15VFreivprZnantreQ1Ri:
 nop
 .data
-.globl b__MGPA7naqebvq17OcNpgvivglZnantreR0_AF_16VNpgvivglZnantreR
+.weak b__MGPA7naqebvq17OcNpgvivglZnantreR0_AF_16VNpgvivglZnantreR
 .type b__MGPA7naqebvq17OcNpgvivglZnantreR0_AF_16VNpgvivglZnantreR,%object
 b__MGPA7naqebvq17OcNpgvivglZnantreR0_AF_16VNpgvivglZnantreR:
 .space __SIZEOF_POINTER__
@@ -4393,12 +4393,12 @@
 b__MAX7naqebvq12ZrzbelQrnyre4qhzcRCXp:
 nop
 .text
-.globl b__MAFg3__16irpgbeVoAF_9nyybpngbeVoRRR18__pbafgehpg_ng_raqVAF_14__ovg_vgrengbeVF3_Yo0RYz0RRRRRAF_9ranoyr_vsVKfe21__vf_sbejneq_vgrengbeVG_RR5inyhrRiR4glcrRF8_F8_
+.weak b__MAFg3__16irpgbeVoAF_9nyybpngbeVoRRR18__pbafgehpg_ng_raqVAF_14__ovg_vgrengbeVF3_Yo0RYz0RRRRRAF_9ranoyr_vsVKfe21__vf_sbejneq_vgrengbeVG_RR5inyhrRiR4glcrRF8_F8_
 .type b__MAFg3__16irpgbeVoAF_9nyybpngbeVoRRR18__pbafgehpg_ng_raqVAF_14__ovg_vgrengbeVF3_Yo0RYz0RRRRRAF_9ranoyr_vsVKfe21__vf_sbejneq_vgrengbeVG_RR5inyhrRiR4glcrRF8_F8_,%function
 b__MAFg3__16irpgbeVoAF_9nyybpngbeVoRRR18__pbafgehpg_ng_raqVAF_14__ovg_vgrengbeVF3_Yo0RYz0RRRRRAF_9ranoyr_vsVKfe21__vf_sbejneq_vgrengbeVG_RR5inyhrRiR4glcrRF8_F8_:
 nop
 .data
-.globl b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_13onfvp_vfgernzVpF2_RR
+.weak b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_13onfvp_vfgernzVpF2_RR
 .type b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_13onfvp_vfgernzVpF2_RR,%object
 b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_13onfvp_vfgernzVpF2_RR:
 .space __SIZEOF_POINTER__
@@ -4438,7 +4438,7 @@
 b__MA7naqebvq15CrezvffvbaPnpur5pnpurREXAF_8Fgevat16Rwo:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_8Fgevat16RR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_8Fgevat16RR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_8Fgevat16RR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_8Fgevat16RR7qb_pbclRCiCXiz:
 nop
@@ -4458,12 +4458,12 @@
 b__MA7naqebvq18FreivprZnantreFuvz14jnvgSbeFreivprREXAF_8Fgevat16R:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF2_2bf17CrefvfgnoyrOhaqyrRRRAF_19__znc_inyhr_pbzcnerVF3_F6_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF6_RRR12__svaq_rdhnyVF3_RRECAF_16__gerr_abqr_onfrVCiRRAF_21__gerr_pbafg_vgrengbeVF6_CAF_11__gerr_abqrVF6_FT_RRyRRECAF_15__gerr_raq_abqrVFV_RRFW_EXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF2_2bf17CrefvfgnoyrOhaqyrRRRAF_19__znc_inyhr_pbzcnerVF3_F6_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF6_RRR12__svaq_rdhnyVF3_RRECAF_16__gerr_abqr_onfrVCiRRAF_21__gerr_pbafg_vgrengbeVF6_CAF_11__gerr_abqrVF6_FT_RRyRRECAF_15__gerr_raq_abqrVFV_RRFW_EXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF2_2bf17CrefvfgnoyrOhaqyrRRRAF_19__znc_inyhr_pbzcnerVF3_F6_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF6_RRR12__svaq_rdhnyVF3_RRECAF_16__gerr_abqr_onfrVCiRRAF_21__gerr_pbafg_vgrengbeVF6_CAF_11__gerr_abqrVF6_FT_RRyRRECAF_15__gerr_raq_abqrVFV_RRFW_EXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF2_2bf17CrefvfgnoyrOhaqyrRRRAF_19__znc_inyhr_pbzcnerVF3_F6_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF6_RRR12__svaq_rdhnyVF3_RRECAF_16__gerr_abqr_onfrVCiRRAF_21__gerr_pbafg_vgrengbeVF6_CAF_11__gerr_abqrVF6_FT_RRyRRECAF_15__gerr_raq_abqrVFV_RRFW_EXG_:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RyRRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR7qrfgeblRCAF_11__gerr_abqrVF4_CiRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RyRRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR7qrfgeblRCAF_11__gerr_abqrVF4_CiRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RyRRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR7qrfgeblRCAF_11__gerr_abqrVF4_CiRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RyRRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR7qrfgeblRCAF_11__gerr_abqrVF4_CiRR:
 nop
@@ -4498,7 +4498,7 @@
 b__MA7naqebvq10VVagresnprQ1Ri:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RyRRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR4svaqVF3_RRAF_15__gerr_vgrengbeVF4_CAF_11__gerr_abqrVF4_CiRRyRREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RyRRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR4svaqVF3_RRAF_15__gerr_vgrengbeVF4_CAF_11__gerr_abqrVF4_CiRRyRREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RyRRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR4svaqVF3_RRAF_15__gerr_vgrengbeVF4_CAF_11__gerr_abqrVF4_CiRRyRREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RyRRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR4svaqVF3_RRAF_15__gerr_vgrengbeVF4_CAF_11__gerr_abqrVF4_CiRRyRREXG_:
 nop
@@ -4518,12 +4518,12 @@
 b__MGi0_a24_A7naqebvq10ZrzbelOnfrQ1Ri:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RoRRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR4svaqVF3_RRAF_15__gerr_vgrengbeVF4_CAF_11__gerr_abqrVF4_CiRRyRREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RoRRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR4svaqVF3_RRAF_15__gerr_vgrengbeVF4_CAF_11__gerr_abqrVF4_CiRRyRREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RoRRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR4svaqVF3_RRAF_15__gerr_vgrengbeVF4_CAF_11__gerr_abqrVF4_CiRRyRREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RoRRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR4svaqVF3_RRAF_15__gerr_vgrengbeVF4_CAF_11__gerr_abqrVF4_CiRRyRREXG_:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RyRRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR12__svaq_rdhnyVF3_RRECAF_16__gerr_abqr_onfrVCiRRECAF_15__gerr_raq_abqrVFT_RREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RyRRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR12__svaq_rdhnyVF3_RRECAF_16__gerr_abqr_onfrVCiRRECAF_15__gerr_raq_abqrVFT_RREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RyRRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR12__svaq_rdhnyVF3_RRECAF_16__gerr_abqr_onfrVCiRRECAF_15__gerr_raq_abqrVFT_RREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RyRRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR12__svaq_rdhnyVF3_RRECAF_16__gerr_abqr_onfrVCiRRECAF_15__gerr_raq_abqrVFT_RREXG_:
 nop
@@ -4553,7 +4553,7 @@
 b__MGi0_a24_A7naqebvq7VZrzbelQ0Ri:
 nop
 .text
-.globl b__MAX7naqebvq6Cnepry21hafnsrErnqGlcrqIrpgbeVssRRvCAFg3__16irpgbeVG_AF2_9nyybpngbeVF4_RRRRZF0_XSvCG0_R
+.weak b__MAX7naqebvq6Cnepry21hafnsrErnqGlcrqIrpgbeVssRRvCAFg3__16irpgbeVG_AF2_9nyybpngbeVF4_RRRRZF0_XSvCG0_R
 .type b__MAX7naqebvq6Cnepry21hafnsrErnqGlcrqIrpgbeVssRRvCAFg3__16irpgbeVG_AF2_9nyybpngbeVF4_RRRRZF0_XSvCG0_R,%function
 b__MAX7naqebvq6Cnepry21hafnsrErnqGlcrqIrpgbeVssRRvCAFg3__16irpgbeVG_AF2_9nyybpngbeVF4_RRRRZF0_XSvCG0_R:
 nop
@@ -4563,7 +4563,7 @@
 b__MA7naqebvq7VOvaqre12furyyPbzznaqREXAF_2fcVF0_RRvvvEAF_6IrpgbeVAF_8Fgevat16RRREXAF1_VAF_14VFuryyPnyyonpxRRREXAF1_VAF_15VErfhygErprvireRRR:
 nop
 .text
-.globl b__MA7naqebvq11OaVagresnprVAF_7VZrzbelRR10baNfOvaqreRi
+.weak b__MA7naqebvq11OaVagresnprVAF_7VZrzbelRR10baNfOvaqreRi
 .type b__MA7naqebvq11OaVagresnprVAF_7VZrzbelRR10baNfOvaqreRi,%function
 b__MA7naqebvq11OaVagresnprVAF_7VZrzbelRR10baNfOvaqreRi:
 nop
@@ -4603,7 +4603,7 @@
 b__MA7naqebvq6Cnepry11frgQngnFvmrRz:
 nop
 .text
-.globl b__MAX7naqebvq6Cnepry23ernqAhyynoyrGlcrqIrpgbeVAF_2fcVAF_7VOvaqreRRRRRvCAFg3__110havdhr_cgeVAF5_6irpgbeVG_AF5_9nyybpngbeVF8_RRRRAF5_14qrsnhyg_qryrgrVFO_RRRRZF0_XSvCF8_R
+.weak b__MAX7naqebvq6Cnepry23ernqAhyynoyrGlcrqIrpgbeVAF_2fcVAF_7VOvaqreRRRRRvCAFg3__110havdhr_cgeVAF5_6irpgbeVG_AF5_9nyybpngbeVF8_RRRRAF5_14qrsnhyg_qryrgrVFO_RRRRZF0_XSvCF8_R
 .type b__MAX7naqebvq6Cnepry23ernqAhyynoyrGlcrqIrpgbeVAF_2fcVAF_7VOvaqreRRRRRvCAFg3__110havdhr_cgeVAF5_6irpgbeVG_AF5_9nyybpngbeVF8_RRRRAF5_14qrsnhyg_qryrgrVFO_RRRRZF0_XSvCF8_R,%function
 b__MAX7naqebvq6Cnepry23ernqAhyynoyrGlcrqIrpgbeVAF_2fcVAF_7VOvaqreRRRRRvCAFg3__110havdhr_cgeVAF5_6irpgbeVG_AF5_9nyybpngbeVF8_RRRRAF5_14qrsnhyg_qryrgrVFO_RRRRZF0_XSvCF8_R:
 nop
@@ -4613,7 +4613,7 @@
 b__MA7naqebvq7pbagrag2cz28VCnpxntrZnantreAngvirQrsnhyg24trgIrefvbaPbqrSbeCnpxntrREXAF_8Fgevat16RCy:
 nop
 .data
-.globl b__MGIA7naqebvq6IrpgbeVAF_8Fgevat16RRR
+.weak b__MGIA7naqebvq6IrpgbeVAF_8Fgevat16RRR
 .type b__MGIA7naqebvq6IrpgbeVAF_8Fgevat16RRR,%object
 b__MGIA7naqebvq6IrpgbeVAF_8Fgevat16RRR:
 .space __SIZEOF_POINTER__
@@ -4638,7 +4638,7 @@
 b__MA7naqebvq6Cnepry12erfgnegJevgrRz:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RvRRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR14__nffvta_zhygvVAF_21__gerr_pbafg_vgrengbeVF4_CAF_11__gerr_abqrVF4_CiRRyRRRRiG_FW_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RvRRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR14__nffvta_zhygvVAF_21__gerr_pbafg_vgrengbeVF4_CAF_11__gerr_abqrVF4_CiRRyRRRRiG_FW_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RvRRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR14__nffvta_zhygvVAF_21__gerr_pbafg_vgrengbeVF4_CAF_11__gerr_abqrVF4_CiRRyRRRRiG_FW_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RvRRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR14__nffvta_zhygvVAF_21__gerr_pbafg_vgrengbeVF4_CAF_11__gerr_abqrVF4_CiRRyRRRRiG_FW_:
 nop
@@ -4698,7 +4698,7 @@
 b__MGPA7naqebvq16OaErfhygErprvireR0_AF_15VErfhygErprvireR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVoAF_9nyybpngbeVoRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR16__pbafgehpg_abqrVWEXAF_4cnveVXF3_F7_RRRRRAF_10havdhr_cgeVAF_11__gerr_abqrVF8_CiRRAF_22__gerr_abqr_qrfgehpgbeVAF5_VFB_RRRRRRQcBG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVoAF_9nyybpngbeVoRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR16__pbafgehpg_abqrVWEXAF_4cnveVXF3_F7_RRRRRAF_10havdhr_cgeVAF_11__gerr_abqrVF8_CiRRAF_22__gerr_abqr_qrfgehpgbeVAF5_VFB_RRRRRRQcBG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVoAF_9nyybpngbeVoRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR16__pbafgehpg_abqrVWEXAF_4cnveVXF3_F7_RRRRRAF_10havdhr_cgeVAF_11__gerr_abqrVF8_CiRRAF_22__gerr_abqr_qrfgehpgbeVAF5_VFB_RRRRRRQcBG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVoAF_9nyybpngbeVoRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR16__pbafgehpg_abqrVWEXAF_4cnveVXF3_F7_RRRRRAF_10havdhr_cgeVAF_11__gerr_abqrVF8_CiRRAF_22__gerr_abqr_qrfgehpgbeVAF5_VFB_RRRRRRQcBG_:
 nop
@@ -4708,7 +4708,7 @@
 b__MA7naqebvq8vagreany9Fgnovyvgl24erdhverfIvagsQrpynengvbaREXAF_2fcVAF_7VOvaqreRRR:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVCAF_7ErsOnfrRR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVCAF_7ErsOnfrRR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVCAF_7ErsOnfrRR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVCAF_7ErsOnfrRR15qb_zbir_sbejneqRCiCXiz:
 nop
@@ -4718,12 +4718,12 @@
 b__MA7naqebvq6Cnepry9jevgrObbyRo:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVvAF_9nyybpngbeVvRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR7qrfgeblRCAF_11__gerr_abqrVF8_CiRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVvAF_9nyybpngbeVvRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR7qrfgeblRCAF_11__gerr_abqrVF8_CiRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVvAF_9nyybpngbeVvRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR7qrfgeblRCAF_11__gerr_abqrVF8_CiRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVvAF_9nyybpngbeVvRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR7qrfgeblRCAF_11__gerr_abqrVF8_CiRR:
 nop
 .data
-.globl b__MGGA7naqebvq22OcZrqvnErfbheprZbavgbeR
+.weak b__MGGA7naqebvq22OcZrqvnErfbheprZbavgbeR
 .type b__MGGA7naqebvq22OcZrqvnErfbheprZbavgbeR,%object
 b__MGGA7naqebvq22OcZrqvnErfbheprZbavgbeR:
 .space __SIZEOF_POINTER__
@@ -4743,7 +4743,7 @@
 b__MA7naqebvq15VNccBcfPnyyonpxP2Ri:
 nop
 .data
-.globl b__MGIA7naqebvq18OhssrerqGrkgBhgchg11OhssreFgngrR
+.weak b__MGIA7naqebvq18OhssrerqGrkgBhgchg11OhssreFgngrR
 .type b__MGIA7naqebvq18OhssrerqGrkgBhgchg11OhssreFgngrR,%object
 b__MGIA7naqebvq18OhssrerqGrkgBhgchg11OhssreFgngrR:
 .space __SIZEOF_POINTER__
@@ -4753,17 +4753,17 @@
 b__MA7naqebvq12OaZrzbelUrncQ1Ri:
 nop
 .text
-.globl b__MAX7naqebvq6Cnepry23ernqAhyynoyrGlcrqIrpgbeVAFg3__110havdhr_cgeVAF_8Fgevat16RAF2_14qrsnhyg_qryrgrVF4_RRRRRRvCAF3_VAF2_6irpgbeVG_AF2_9nyybpngbeVF9_RRRRAF5_VFP_RRRRZF0_XSvCF9_R
+.weak b__MAX7naqebvq6Cnepry23ernqAhyynoyrGlcrqIrpgbeVAFg3__110havdhr_cgeVAF_8Fgevat16RAF2_14qrsnhyg_qryrgrVF4_RRRRRRvCAF3_VAF2_6irpgbeVG_AF2_9nyybpngbeVF9_RRRRAF5_VFP_RRRRZF0_XSvCF9_R
 .type b__MAX7naqebvq6Cnepry23ernqAhyynoyrGlcrqIrpgbeVAFg3__110havdhr_cgeVAF_8Fgevat16RAF2_14qrsnhyg_qryrgrVF4_RRRRRRvCAF3_VAF2_6irpgbeVG_AF2_9nyybpngbeVF9_RRRRAF5_VFP_RRRRZF0_XSvCF9_R,%function
 b__MAX7naqebvq6Cnepry23ernqAhyynoyrGlcrqIrpgbeVAFg3__110havdhr_cgeVAF_8Fgevat16RAF2_14qrsnhyg_qryrgrVF4_RRRRRRvCAF3_VAF2_6irpgbeVG_AF2_9nyybpngbeVF9_RRRRAF5_VFP_RRRRZF0_XSvCF9_R:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF2_2bf17CrefvfgnoyrOhaqyrRRRAF_19__znc_inyhr_pbzcnerVF3_F6_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF6_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVF6_CAF_11__gerr_abqrVF6_CiRRyRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF2_2bf17CrefvfgnoyrOhaqyrRRRAF_19__znc_inyhr_pbzcnerVF3_F6_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF6_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVF6_CAF_11__gerr_abqrVF6_CiRRyRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF2_2bf17CrefvfgnoyrOhaqyrRRRAF_19__znc_inyhr_pbzcnerVF3_F6_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF6_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVF6_CAF_11__gerr_abqrVF6_CiRRyRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF2_2bf17CrefvfgnoyrOhaqyrRRRAF_19__znc_inyhr_pbzcnerVF3_F6_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF6_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVF6_CAF_11__gerr_abqrVF6_CiRRyRR:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVyAF_9nyybpngbeVyRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR12__svaq_rdhnyVF3_RRECAF_16__gerr_abqr_onfrVCiRRECAF_15__gerr_raq_abqrVFW_RREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVyAF_9nyybpngbeVyRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR12__svaq_rdhnyVF3_RRECAF_16__gerr_abqr_onfrVCiRRECAF_15__gerr_raq_abqrVFW_RREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVyAF_9nyybpngbeVyRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR12__svaq_rdhnyVF3_RRECAF_16__gerr_abqr_onfrVCiRRECAF_15__gerr_raq_abqrVFW_RREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVyAF_9nyybpngbeVyRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR12__svaq_rdhnyVF3_RRECAF_16__gerr_abqr_onfrVCiRRECAF_15__gerr_raq_abqrVFW_RREXG_:
 nop
@@ -4788,12 +4788,12 @@
 b__MA7naqebvq6Cnepry9jevgrPuneRQf:
 nop
 .text
-.globl b__MAXFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR3fgeRi
+.weak b__MAXFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR3fgeRi
 .type b__MAXFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR3fgeRi,%function
 b__MAXFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR3fgeRi:
 nop
 .data
-.globl b__MGIA7naqebvq13YbtGrkgBhgchgR
+.weak b__MGIA7naqebvq13YbtGrkgBhgchgR
 .type b__MGIA7naqebvq13YbtGrkgBhgchgR,%object
 b__MGIA7naqebvq13YbtGrkgBhgchgR:
 .space __SIZEOF_POINTER__
@@ -4823,7 +4823,7 @@
 b__MAX7naqebvq2bf17CrefvfgnoyrOhaqyr19trgFgevatIrpgbeXrlfRi:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF2_2bf17CrefvfgnoyrOhaqyrRRRAF_19__znc_inyhr_pbzcnerVF3_F6_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF6_RRR12__svaq_rdhnyVF3_RRECAF_16__gerr_abqr_onfrVCiRRECAF_15__gerr_raq_abqrVFV_RREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF2_2bf17CrefvfgnoyrOhaqyrRRRAF_19__znc_inyhr_pbzcnerVF3_F6_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF6_RRR12__svaq_rdhnyVF3_RRECAF_16__gerr_abqr_onfrVCiRRECAF_15__gerr_raq_abqrVFV_RREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF2_2bf17CrefvfgnoyrOhaqyrRRRAF_19__znc_inyhr_pbzcnerVF3_F6_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF6_RRR12__svaq_rdhnyVF3_RRECAF_16__gerr_abqr_onfrVCiRRECAF_15__gerr_raq_abqrVFV_RREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF2_2bf17CrefvfgnoyrOhaqyrRRRAF_19__znc_inyhr_pbzcnerVF3_F6_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF6_RRR12__svaq_rdhnyVF3_RRECAF_16__gerr_abqr_onfrVCiRRECAF_15__gerr_raq_abqrVFV_RREXG_:
 nop
@@ -4833,7 +4833,7 @@
 b__MAX7naqebvq6Cnepry16rasbeprVagresnprREXAF_8Fgevat16RCAF_14VCPGuernqFgngrR:
 nop
 .text
-.globl b__MAFg3__16irpgbeVuAF_9nyybpngbeVuRRR6vafregVCXuRRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVuAF_15vgrengbe_genvgfVF8_R9ersreraprRRR5inyhrRAF_11__jenc_vgreVCuRRR4glcrRAFP_VF6_RRF8_F8_
+.weak b__MAFg3__16irpgbeVuAF_9nyybpngbeVuRRR6vafregVCXuRRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVuAF_15vgrengbe_genvgfVF8_R9ersreraprRRR5inyhrRAF_11__jenc_vgreVCuRRR4glcrRAFP_VF6_RRF8_F8_
 .type b__MAFg3__16irpgbeVuAF_9nyybpngbeVuRRR6vafregVCXuRRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVuAF_15vgrengbe_genvgfVF8_R9ersreraprRRR5inyhrRAF_11__jenc_vgreVCuRRR4glcrRAFP_VF6_RRF8_F8_,%function
 b__MAFg3__16irpgbeVuAF_9nyybpngbeVuRRR6vafregVCXuRRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVuAF_15vgrengbe_genvgfVF8_R9ersreraprRRR5inyhrRAF_11__jenc_vgreVCuRRR4glcrRAFP_VF6_RRF8_F8_:
 nop
@@ -4873,7 +4873,7 @@
 b__MGi0_a24_A7naqebvq8OcOvaqreQ1Ri:
 nop
 .data
-.globl b__MGPA7naqebvq13OcHvqBofreireR0_AF_10VVagresnprR
+.weak b__MGPA7naqebvq13OcHvqBofreireR0_AF_10VVagresnprR
 .type b__MGPA7naqebvq13OcHvqBofreireR0_AF_10VVagresnprR,%object
 b__MGPA7naqebvq13OcHvqBofreireR0_AF_10VVagresnprR:
 .space __SIZEOF_POINTER__
@@ -4883,7 +4883,7 @@
 b__MA7naqebvq6Cnepry4Oybo5pyrneRi:
 nop
 .text
-.globl b__MAX7naqebvq6Cnepry21hafnsrErnqGlcrqIrpgbeVyyRRvCAFg3__16irpgbeVG_AF2_9nyybpngbeVF4_RRRRZF0_XSvCG0_R
+.weak b__MAX7naqebvq6Cnepry21hafnsrErnqGlcrqIrpgbeVyyRRvCAFg3__16irpgbeVG_AF2_9nyybpngbeVF4_RRRRZF0_XSvCG0_R
 .type b__MAX7naqebvq6Cnepry21hafnsrErnqGlcrqIrpgbeVyyRRvCAFg3__16irpgbeVG_AF2_9nyybpngbeVF4_RRRRZF0_XSvCG0_R,%function
 b__MAX7naqebvq6Cnepry21hafnsrErnqGlcrqIrpgbeVyyRRvCAFg3__16irpgbeVG_AF2_9nyybpngbeVF4_RRRRZF0_XSvCG0_R:
 nop
@@ -4908,7 +4908,7 @@
 b__MGia8_a32_A7naqebvq14ZrzbelUrncOnfrQ1Ri:
 nop
 .data
-.globl b__MGIA7naqebvq10CbbyGuernqR
+.weak b__MGIA7naqebvq10CbbyGuernqR
 .type b__MGIA7naqebvq10CbbyGuernqR,%object
 b__MGIA7naqebvq10CbbyGuernqR:
 .space __SIZEOF_POINTER__
@@ -4918,7 +4918,7 @@
 b__MA7naqebvq6Cnepry15jevgrObbyIrpgbeREXAFg3__110havdhr_cgeVAF1_6irpgbeVoAF1_9nyybpngbeVoRRRRAF1_14qrsnhyg_qryrgrVF6_RRRR:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RF3_RRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR12__svaq_rdhnyVF3_RRECAF_16__gerr_abqr_onfrVCiRRAF_21__gerr_pbafg_vgrengbeVF4_CAF_11__gerr_abqrVF4_FR_RRyRRECAF_15__gerr_raq_abqrVFT_RRFU_EXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RF3_RRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR12__svaq_rdhnyVF3_RRECAF_16__gerr_abqr_onfrVCiRRAF_21__gerr_pbafg_vgrengbeVF4_CAF_11__gerr_abqrVF4_FR_RRyRRECAF_15__gerr_raq_abqrVFT_RRFU_EXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RF3_RRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR12__svaq_rdhnyVF3_RRECAF_16__gerr_abqr_onfrVCiRRAF_21__gerr_pbafg_vgrengbeVF4_CAF_11__gerr_abqrVF4_FR_RRyRRECAF_15__gerr_raq_abqrVFT_RRFU_EXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RF3_RRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR12__svaq_rdhnyVF3_RRECAF_16__gerr_abqr_onfrVCiRRAF_21__gerr_pbafg_vgrengbeVF4_CAF_11__gerr_abqrVF4_FR_RRyRRECAF_15__gerr_raq_abqrVFT_RRFU_EXG_:
 nop
@@ -4928,17 +4928,17 @@
 b__MGPA7naqebvq14OaOnggrelFgngfR0_AF_10VVagresnprR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq6Cnepry21hafnsrErnqGlcrqIrpgbeVAF_8Fgevat16RF2_RRvCAFg3__16irpgbeVG_AF3_9nyybpngbeVF5_RRRRZF0_XSvCG0_R
+.weak b__MAX7naqebvq6Cnepry21hafnsrErnqGlcrqIrpgbeVAF_8Fgevat16RF2_RRvCAFg3__16irpgbeVG_AF3_9nyybpngbeVF5_RRRRZF0_XSvCG0_R
 .type b__MAX7naqebvq6Cnepry21hafnsrErnqGlcrqIrpgbeVAF_8Fgevat16RF2_RRvCAFg3__16irpgbeVG_AF3_9nyybpngbeVF5_RRRRZF0_XSvCG0_R,%function
 b__MAX7naqebvq6Cnepry21hafnsrErnqGlcrqIrpgbeVAF_8Fgevat16RF2_RRvCAFg3__16irpgbeVG_AF3_9nyybpngbeVF5_RRRRZF0_XSvCG0_R:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVqAF_9nyybpngbeVqRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVF8_CAF_11__gerr_abqrVF8_CiRRyRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVqAF_9nyybpngbeVqRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVF8_CAF_11__gerr_abqrVF8_CiRRyRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVqAF_9nyybpngbeVqRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVF8_CAF_11__gerr_abqrVF8_CiRRyRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVqAF_9nyybpngbeVqRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVF8_CAF_11__gerr_abqrVF8_CiRRyRR:
 nop
 .data
-.globl b__MGPA7naqebvq14OcOnggrelFgngfR0_AF_10VVagresnprR
+.weak b__MGPA7naqebvq14OcOnggrelFgngfR0_AF_10VVagresnprR
 .type b__MGPA7naqebvq14OcOnggrelFgngfR0_AF_10VVagresnprR,%object
 b__MGPA7naqebvq14OcOnggrelFgngfR0_AF_10VVagresnprR:
 .space __SIZEOF_POINTER__
@@ -4948,7 +4948,7 @@
 b__MA7naqebvq6Cnepry10jevgrVag64Ry:
 nop
 .data
-.globl b__MGGA7naqebvq16OcErfhygErprvireR
+.weak b__MGGA7naqebvq16OcErfhygErprvireR
 .type b__MGGA7naqebvq16OcErfhygErprvireR,%object
 b__MGGA7naqebvq16OcErfhygErprvireR:
 .space __SIZEOF_POINTER__
@@ -4973,7 +4973,7 @@
 b__MA7naqebvq6Cnepry17jevgrHvag64IrpgbeREXAFg3__110havdhr_cgeVAF1_6irpgbeVzAF1_9nyybpngbeVzRRRRAF1_14qrsnhyg_qryrgrVF6_RRRR:
 nop
 .text
-.globl b__MAX7naqebvq6Cnepry23ernqAhyynoyrGlcrqIrpgbeVyRRvCAFg3__110havdhr_cgeVAF2_6irpgbeVG_AF2_9nyybpngbeVF5_RRRRAF2_14qrsnhyg_qryrgrVF8_RRRRZF0_XSvCF5_R
+.weak b__MAX7naqebvq6Cnepry23ernqAhyynoyrGlcrqIrpgbeVyRRvCAFg3__110havdhr_cgeVAF2_6irpgbeVG_AF2_9nyybpngbeVF5_RRRRAF2_14qrsnhyg_qryrgrVF8_RRRRZF0_XSvCF5_R
 .type b__MAX7naqebvq6Cnepry23ernqAhyynoyrGlcrqIrpgbeVyRRvCAFg3__110havdhr_cgeVAF2_6irpgbeVG_AF2_9nyybpngbeVF5_RRRRAF2_14qrsnhyg_qryrgrVF8_RRRRZF0_XSvCF5_R,%function
 b__MAX7naqebvq6Cnepry23ernqAhyynoyrGlcrqIrpgbeVyRRvCAFg3__110havdhr_cgeVAF2_6irpgbeVG_AF2_9nyybpngbeVF5_RRRRAF2_14qrsnhyg_qryrgrVF8_RRRRZF0_XSvCF5_R:
 nop
@@ -4988,17 +4988,17 @@
 b__MA7naqebvq14VCPGuernqFgngr11fgbcCebprffRo:
 nop
 .text
-.globl b__MA7naqebvqyfVN5_pRREAF_10GrkgBhgchgRF3_EXG_
+.weak b__MA7naqebvqyfVN5_pRREAF_10GrkgBhgchgRF3_EXG_
 .type b__MA7naqebvqyfVN5_pRREAF_10GrkgBhgchgRF3_EXG_,%function
 b__MA7naqebvqyfVN5_pRREAF_10GrkgBhgchgRF3_EXG_:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVF3_AF_9nyybpngbeVF3_RRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVF8_CAF_11__gerr_abqrVF8_CiRRyRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVF3_AF_9nyybpngbeVF3_RRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVF8_CAF_11__gerr_abqrVF8_CiRRyRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVF3_AF_9nyybpngbeVF3_RRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVF8_CAF_11__gerr_abqrVF8_CiRRyRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVF3_AF_9nyybpngbeVF3_RRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVF8_CAF_11__gerr_abqrVF8_CiRRyRR:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVoAF_9nyybpngbeVoRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR25__rzcynpr_havdhr_xrl_netfVF3_WEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXF3_RRRAFW_VWRRRRRRAF_4cnveVAF_15__gerr_vgrengbeVF8_CAF_11__gerr_abqrVF8_CiRRyRRoRREXG_QcBG0_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVoAF_9nyybpngbeVoRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR25__rzcynpr_havdhr_xrl_netfVF3_WEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXF3_RRRAFW_VWRRRRRRAF_4cnveVAF_15__gerr_vgrengbeVF8_CAF_11__gerr_abqrVF8_CiRRyRRoRREXG_QcBG0_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVoAF_9nyybpngbeVoRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR25__rzcynpr_havdhr_xrl_netfVF3_WEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXF3_RRRAFW_VWRRRRRRAF_4cnveVAF_15__gerr_vgrengbeVF8_CAF_11__gerr_abqrVF8_CiRRyRRoRREXG_QcBG0_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVoAF_9nyybpngbeVoRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR25__rzcynpr_havdhr_xrl_netfVF3_WEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXF3_RRRAFW_VWRRRRRRAF_4cnveVAF_15__gerr_vgrengbeVF8_CAF_11__gerr_abqrVF8_CiRRyRRoRREXG_QcBG0_:
 nop
@@ -5018,7 +5018,7 @@
 b__MA7naqebvq15VNccBcfPnyyonpxQ0Ri:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVCXiAF_8OcOvaqre13BowrpgZnantre7ragel_gRRRR15qb_zbir_sbejneqRCiF3_z
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVCXiAF_8OcOvaqre13BowrpgZnantre7ragel_gRRRR15qb_zbir_sbejneqRCiF3_z
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVCXiAF_8OcOvaqre13BowrpgZnantre7ragel_gRRRR15qb_zbir_sbejneqRCiF3_z,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVCXiAF_8OcOvaqre13BowrpgZnantre7ragel_gRRRR15qb_zbir_sbejneqRCiF3_z:
 nop
@@ -5033,7 +5033,7 @@
 b__MA7naqebvq2bf17OaFreivprPnyyonpx10baGenafnpgRwEXAF_6CnepryRCF2_w:
 nop
 .data
-.globl b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR16_AF_13onfvp_bfgernzVpF2_RR
+.weak b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR16_AF_13onfvp_bfgernzVpF2_RR
 .type b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR16_AF_13onfvp_bfgernzVpF2_RR,%object
 b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR16_AF_13onfvp_bfgernzVpF2_RR:
 .space __SIZEOF_POINTER__
@@ -5058,17 +5058,17 @@
 b__MA7naqebvq6Cnepry11jevgrHvag32Rw:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVvAF_9nyybpngbeVvRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR14__nffvta_zhygvVAF_21__gerr_pbafg_vgrengbeVF8_CAF_11__gerr_abqrVF8_CiRRyRRRRiG_FZ_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVvAF_9nyybpngbeVvRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR14__nffvta_zhygvVAF_21__gerr_pbafg_vgrengbeVF8_CAF_11__gerr_abqrVF8_CiRRyRRRRiG_FZ_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVvAF_9nyybpngbeVvRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR14__nffvta_zhygvVAF_21__gerr_pbafg_vgrengbeVF8_CAF_11__gerr_abqrVF8_CiRRyRRRRiG_FZ_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVvAF_9nyybpngbeVvRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR14__nffvta_zhygvVAF_21__gerr_pbafg_vgrengbeVF8_CAF_11__gerr_abqrVF8_CiRRyRRRRiG_FZ_:
 nop
 .data
-.globl b__MGPA7naqebvq22OcZrqvnErfbheprZbavgbeR0_AF_10VVagresnprR
+.weak b__MGPA7naqebvq22OcZrqvnErfbheprZbavgbeR0_AF_10VVagresnprR
 .type b__MGPA7naqebvq22OcZrqvnErfbheprZbavgbeR0_AF_10VVagresnprR,%object
 b__MGPA7naqebvq22OcZrqvnErfbheprZbavgbeR0_AF_10VVagresnprR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq9FvatyrgbaVAF_18CebprffVasbFreivprRRP2Ri
+.weak b__MA7naqebvq9FvatyrgbaVAF_18CebprffVasbFreivprRRP2Ri
 .type b__MA7naqebvq9FvatyrgbaVAF_18CebprffVasbFreivprRRP2Ri,%function
 b__MA7naqebvq9FvatyrgbaVAF_18CebprffVasbFreivprRRP2Ri:
 nop
@@ -5083,7 +5083,7 @@
 b__MGua8_A7naqebvq8OaZrzbelQ1Ri:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_15CrezvffvbaPnpur5RagelRR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_15CrezvffvbaPnpur5RagelRR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_15CrezvffvbaPnpur5RagelRR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_15CrezvffvbaPnpur5RagelRR8qb_fcyngRCiCXiz:
 nop
@@ -5093,22 +5093,22 @@
 b__MAX7naqebvq6Cnepry15ernqVag64IrpgbeRCAFg3__16irpgbeVyAF1_9nyybpngbeVyRRRR:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RF3_RRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR4svaqVF3_RRAF_15__gerr_vgrengbeVF4_CAF_11__gerr_abqrVF4_CiRRyRREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RF3_RRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR4svaqVF3_RRAF_15__gerr_vgrengbeVF4_CAF_11__gerr_abqrVF4_CiRRyRREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RF3_RRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR4svaqVF3_RRAF_15__gerr_vgrengbeVF4_CAF_11__gerr_abqrVF4_CiRRyRREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RF3_RRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR4svaqVF3_RRAF_15__gerr_vgrengbeVF4_CAF_11__gerr_abqrVF4_CiRRyRREXG_:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RvRRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR12__svaq_rdhnyVF3_RRECAF_16__gerr_abqr_onfrVCiRRECAF_15__gerr_raq_abqrVFT_RREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RvRRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR12__svaq_rdhnyVF3_RRECAF_16__gerr_abqr_onfrVCiRRECAF_15__gerr_raq_abqrVFT_RREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RvRRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR12__svaq_rdhnyVF3_RRECAF_16__gerr_abqr_onfrVCiRRECAF_15__gerr_raq_abqrVFT_RREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RvRRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR12__svaq_rdhnyVF3_RRECAF_16__gerr_abqr_onfrVCiRRECAF_15__gerr_raq_abqrVFT_RREXG_:
 nop
 .text
-.globl b__MA7naqebvq11OaVagresnprVAF_12VHvqBofreireRR10baNfOvaqreRi
+.weak b__MA7naqebvq11OaVagresnprVAF_12VHvqBofreireRR10baNfOvaqreRi
 .type b__MA7naqebvq11OaVagresnprVAF_12VHvqBofreireRR10baNfOvaqreRi,%function
 b__MA7naqebvq11OaVagresnprVAF_12VHvqBofreireRR10baNfOvaqreRi:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_15CrezvffvbaPnpur5RagelRR10qb_pbzcnerRCXiF5_
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_15CrezvffvbaPnpur5RagelRR10qb_pbzcnerRCXiF5_
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_15CrezvffvbaPnpur5RagelRR10qb_pbzcnerRCXiF5_,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_15CrezvffvbaPnpur5RagelRR10qb_pbzcnerRCXiF5_:
 nop
@@ -5148,12 +5148,12 @@
 b__MA7naqebvq21VZrqvnErfbheprZbavgbe10qrfpevcgbeR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq6IrpgbeVCAF_7ErsOnfrRR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVCAF_7ErsOnfrRR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVCAF_7ErsOnfrRR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVCAF_7ErsOnfrRR8qb_fcyngRCiCXiz:
 nop
 .text
-.globl b__MA7naqebvqyfVCpRREAF_10GrkgBhgchgRF3_EXG_
+.weak b__MA7naqebvqyfVCpRREAF_10GrkgBhgchgRF3_EXG_
 .type b__MA7naqebvqyfVCpRREAF_10GrkgBhgchgRF3_EXG_,%function
 b__MA7naqebvqyfVCpRREAF_10GrkgBhgchgRF3_EXG_:
 nop
@@ -5178,7 +5178,7 @@
 b__MA7naqebvq8OcOvaqre16ranoyrPbhagOlHvqRi:
 nop
 .text
-.globl b__MA7naqebvq11OaVagresnprVAF_14VFuryyPnyyonpxRR10baNfOvaqreRi
+.weak b__MA7naqebvq11OaVagresnprVAF_14VFuryyPnyyonpxRR10baNfOvaqreRi
 .type b__MA7naqebvq11OaVagresnprVAF_14VFuryyPnyyonpxRR10baNfOvaqreRi,%function
 b__MA7naqebvq11OaVagresnprVAF_14VFuryyPnyyonpxRR10baNfOvaqreRi:
 nop
@@ -5198,7 +5198,7 @@
 b__MAX7naqebvq6Cnepry5cevagREAF_10GrkgBhgchgRw:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_2jcVAF_7VOvaqreRRRAF_9UrncPnpur11urnc_vasb_gRRRR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_2jcVAF_7VOvaqreRRRAF_9UrncPnpur11urnc_vasb_gRRRR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_2jcVAF_7VOvaqreRRRAF_9UrncPnpur11urnc_vasb_gRRRR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_2jcVAF_7VOvaqreRRRAF_9UrncPnpur11urnc_vasb_gRRRR15qb_zbir_sbejneqRCiCXiz:
 nop
@@ -5208,7 +5208,7 @@
 b__MA7naqebvq15VErfhygErprvire10qrfpevcgbeR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__16irpgbeVvAF_9nyybpngbeVvRRR6nffvtaVCvRRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVvAF_15vgrengbe_genvgfVF7_R9ersreraprRRR5inyhrRiR4glcrRF7_F7_
+.weak b__MAFg3__16irpgbeVvAF_9nyybpngbeVvRRR6nffvtaVCvRRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVvAF_15vgrengbe_genvgfVF7_R9ersreraprRRR5inyhrRiR4glcrRF7_F7_
 .type b__MAFg3__16irpgbeVvAF_9nyybpngbeVvRRR6nffvtaVCvRRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVvAF_15vgrengbe_genvgfVF7_R9ersreraprRRR5inyhrRiR4glcrRF7_F7_,%function
 b__MAFg3__16irpgbeVvAF_9nyybpngbeVvRRR6nffvtaVCvRRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVvAF_15vgrengbe_genvgfVF7_R9ersreraprRRR5inyhrRiR4glcrRF7_F7_:
 nop
@@ -5223,7 +5223,7 @@
 b__MA7naqebvq7OOvaqre12nggnpuBowrpgRCXiCiF3_CSiF2_F3_F3_R:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVCXiAF_8OcOvaqre13BowrpgZnantre7ragel_gRRRR10qb_pbzcnerRF3_F3_
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVCXiAF_8OcOvaqre13BowrpgZnantre7ragel_gRRRR10qb_pbzcnerRF3_F3_
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVCXiAF_8OcOvaqre13BowrpgZnantre7ragel_gRRRR10qb_pbzcnerRF3_F3_,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVCXiAF_8OcOvaqre13BowrpgZnantre7ragel_gRRRR10qb_pbzcnerRF3_F3_:
 nop
@@ -5288,7 +5288,7 @@
 b__MA7naqebvq8OcOvaqre15baYnfgFgebatErsRCXi:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_2jcVAF_7VOvaqreRRRAF_9UrncPnpur11urnc_vasb_gRRRR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_2jcVAF_7VOvaqreRRRAF_9UrncPnpur11urnc_vasb_gRRRR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_2jcVAF_7VOvaqreRRRAF_9UrncPnpur11urnc_vasb_gRRRR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_2jcVAF_7VOvaqreRRRAF_9UrncPnpur11urnc_vasb_gRRRR10qb_qrfgeblRCiz:
 nop
@@ -5298,12 +5298,12 @@
 b__MA7naqebvq14VFuryyPnyyonpx14trgQrsnhygVzcyRi:
 nop
 .data
-.globl b__MGPA7naqebvq17OcNpgvivglZnantreR8_AF_9OcErsOnfrR
+.weak b__MGPA7naqebvq17OcNpgvivglZnantreR8_AF_9OcErsOnfrR
 .type b__MGPA7naqebvq17OcNpgvivglZnantreR8_AF_9OcErsOnfrR,%object
 b__MGPA7naqebvq17OcNpgvivglZnantreR8_AF_9OcErsOnfrR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGPA7naqebvq15OcFuryyPnyyonpxR0_AF_11OcVagresnprVAF_14VFuryyPnyyonpxRRR
+.weak b__MGPA7naqebvq15OcFuryyPnyyonpxR0_AF_11OcVagresnprVAF_14VFuryyPnyyonpxRRR
 .type b__MGPA7naqebvq15OcFuryyPnyyonpxR0_AF_11OcVagresnprVAF_14VFuryyPnyyonpxRRR,%object
 b__MGPA7naqebvq15OcFuryyPnyyonpxR0_AF_11OcVagresnprVAF_14VFuryyPnyyonpxRRR:
 .space __SIZEOF_POINTER__
@@ -5313,12 +5313,12 @@
 b__MA7naqebvq6ovaqreyfREAFg3__118onfvp_fgevatfgernzVpAF1_11pune_genvgfVpRRAF1_9nyybpngbeVpRRRREXAF0_6FgnghfR:
 nop
 .data
-.globl b__MGPA7naqebvq13OcHvqBofreireR0_AF_12VHvqBofreireR
+.weak b__MGPA7naqebvq13OcHvqBofreireR0_AF_12VHvqBofreireR
 .type b__MGPA7naqebvq13OcHvqBofreireR0_AF_12VHvqBofreireR,%object
 b__MGPA7naqebvq13OcHvqBofreireR0_AF_12VHvqBofreireR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq6IrpgbeVvR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq6IrpgbeVvR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq6IrpgbeVvR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq6IrpgbeVvR10qb_qrfgeblRCiz:
 nop
@@ -5333,12 +5333,12 @@
 b__MA7naqebvq14VNccBcfFreivpr10qrfpevcgbeR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq11OaVagresnprVAF_21VZrqvnErfbheprZbavgbeRR10baNfOvaqreRi
+.weak b__MA7naqebvq11OaVagresnprVAF_21VZrqvnErfbheprZbavgbeRR10baNfOvaqreRi
 .type b__MA7naqebvq11OaVagresnprVAF_21VZrqvnErfbheprZbavgbeRR10baNfOvaqreRi,%function
 b__MA7naqebvq11OaVagresnprVAF_21VZrqvnErfbheprZbavgbeRR10baNfOvaqreRi:
 nop
 .text
-.globl b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR8biresybjRv
+.weak b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR8biresybjRv
 .type b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR8biresybjRv,%function
 b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR8biresybjRv:
 nop
@@ -5383,17 +5383,17 @@
 b__MAX7naqebvq2bf17CrefvfgnoyrOhaqyr16trgVagIrpgbeXrlfRi:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF2_2bf17CrefvfgnoyrOhaqyrRRRAF_19__znc_inyhr_pbzcnerVF3_F6_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF6_RRR14__renfr_havdhrVF3_RRzEXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF2_2bf17CrefvfgnoyrOhaqyrRRRAF_19__znc_inyhr_pbzcnerVF3_F6_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF6_RRR14__renfr_havdhrVF3_RRzEXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF2_2bf17CrefvfgnoyrOhaqyrRRRAF_19__znc_inyhr_pbzcnerVF3_F6_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF6_RRR14__renfr_havdhrVF3_RRzEXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF2_2bf17CrefvfgnoyrOhaqyrRRRAF_19__znc_inyhr_pbzcnerVF3_F6_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF6_RRR14__renfr_havdhrVF3_RRzEXG_:
 nop
 .text
-.globl b__MAFg3__16irpgbeVqAF_9nyybpngbeVqRRRP2REXF3_
+.weak b__MAFg3__16irpgbeVqAF_9nyybpngbeVqRRRP2REXF3_
 .type b__MAFg3__16irpgbeVqAF_9nyybpngbeVqRRRP2REXF3_,%function
 b__MAFg3__16irpgbeVqAF_9nyybpngbeVqRRRP2REXF3_:
 nop
 .data
-.globl b__MGPA7naqebvq10CbbyGuernqR0_AF_6GuernqR
+.weak b__MGPA7naqebvq10CbbyGuernqR0_AF_6GuernqR
 .type b__MGPA7naqebvq10CbbyGuernqR0_AF_6GuernqR,%object
 b__MGPA7naqebvq10CbbyGuernqR0_AF_6GuernqR:
 .space __SIZEOF_POINTER__
@@ -5428,7 +5428,7 @@
 b__MGua8_A7naqebvq12OcZrzbelUrncQ0Ri:
 nop
 .text
-.globl b__MAFg3__16irpgbeVvAF_9nyybpngbeVvRRR8__nccraqRz
+.weak b__MAFg3__16irpgbeVvAF_9nyybpngbeVvRRR8__nccraqRz
 .type b__MAFg3__16irpgbeVvAF_9nyybpngbeVvRRR8__nccraqRz,%function
 b__MAFg3__16irpgbeVvAF_9nyybpngbeVvRRR8__nccraqRz:
 nop
@@ -5478,7 +5478,7 @@
 b__MGPA7naqebvq7pbagrag2cz22OcCnpxntrZnantreAngvirR8_AF_9OcErsOnfrR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGGA7naqebvq15OcNccBcfFreivprR
+.weak b__MGGA7naqebvq15OcNccBcfFreivprR
 .type b__MGGA7naqebvq15OcNccBcfFreivprR,%object
 b__MGGA7naqebvq15OcNccBcfFreivprR:
 .space __SIZEOF_POINTER__
@@ -5498,7 +5498,7 @@
 b__MA7naqebvq7pbagrag2cz28VCnpxntrZnantreAngvirQrsnhyg29vfNhqvbCynlonpxPncgherNyybjrqREXAFg3__16irpgbeVAF3_12onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRRAF8_VFN_RRRRCAF4_VoAF8_VoRRRR:
 nop
 .text
-.globl b__MA7naqebvq9FvatyrgbaVAF_15CrezvffvbaPnpurRR11trgVafgnaprRi
+.weak b__MA7naqebvq9FvatyrgbaVAF_15CrezvffvbaPnpurRR11trgVafgnaprRi
 .type b__MA7naqebvq9FvatyrgbaVAF_15CrezvffvbaPnpurRR11trgVafgnaprRi,%function
 b__MA7naqebvq9FvatyrgbaVAF_15CrezvffvbaPnpurRR11trgVafgnaprRi:
 nop
@@ -5533,7 +5533,7 @@
 b__MGPA7naqebvq16OaErfhygErprvireR0_AF_10VVagresnprR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGPA7naqebvq22OcZrqvnErfbheprZbavgbeR0_AF_11OcVagresnprVAF_21VZrqvnErfbheprZbavgbeRRR
+.weak b__MGPA7naqebvq22OcZrqvnErfbheprZbavgbeR0_AF_11OcVagresnprVAF_21VZrqvnErfbheprZbavgbeRRR
 .type b__MGPA7naqebvq22OcZrqvnErfbheprZbavgbeR0_AF_11OcVagresnprVAF_21VZrqvnErfbheprZbavgbeRRR,%object
 b__MGPA7naqebvq22OcZrqvnErfbheprZbavgbeR0_AF_11OcVagresnprVAF_21VZrqvnErfbheprZbavgbeRRR:
 .space __SIZEOF_POINTER__
@@ -5588,7 +5588,7 @@
 b__MAX7naqebvq6Cnepry16inyvqngrErnqQngnRz:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVF3_AF_9nyybpngbeVF3_RRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR14__nffvta_zhygvVAF_21__gerr_pbafg_vgrengbeVF8_CAF_11__gerr_abqrVF8_CiRRyRRRRiG_FZ_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVF3_AF_9nyybpngbeVF3_RRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR14__nffvta_zhygvVAF_21__gerr_pbafg_vgrengbeVF8_CAF_11__gerr_abqrVF8_CiRRyRRRRiG_FZ_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVF3_AF_9nyybpngbeVF3_RRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR14__nffvta_zhygvVAF_21__gerr_pbafg_vgrengbeVF8_CAF_11__gerr_abqrVF8_CiRRyRRRRiG_FZ_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVF3_AF_9nyybpngbeVF3_RRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR14__nffvta_zhygvVAF_21__gerr_pbafg_vgrengbeVF8_CAF_11__gerr_abqrVF8_CiRRyRRRRiG_FZ_:
 nop
@@ -5643,7 +5643,7 @@
 b__MA7naqebvq21VCrezvffvbaPbagebyyre10qrfpevcgbeR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq9FvatyrgbaVAF_18CebprffVasbFreivprRR11unfVafgnaprRi
+.weak b__MA7naqebvq9FvatyrgbaVAF_18CebprffVasbFreivprRR11unfVafgnaprRi
 .type b__MA7naqebvq9FvatyrgbaVAF_18CebprffVasbFreivprRR11unfVafgnaprRi,%function
 b__MA7naqebvq9FvatyrgbaVAF_18CebprffVasbFreivprRR11unfVafgnaprRi:
 nop
@@ -5663,7 +5663,7 @@
 b__MA7naqebvq7OOvaqre16frgErdhrfgvatFvqRo:
 nop
 .text
-.globl b__MA7naqebvq6Cnepry22hafnsrJevgrGlcrqIrpgbeVssRRvEXAFg3__16irpgbeVG_AF2_9nyybpngbeVF4_RRRRZF0_SvG0_R
+.weak b__MA7naqebvq6Cnepry22hafnsrJevgrGlcrqIrpgbeVssRRvEXAFg3__16irpgbeVG_AF2_9nyybpngbeVF4_RRRRZF0_SvG0_R
 .type b__MA7naqebvq6Cnepry22hafnsrJevgrGlcrqIrpgbeVssRRvEXAFg3__16irpgbeVG_AF2_9nyybpngbeVF4_RRRRZF0_SvG0_R,%function
 b__MA7naqebvq6Cnepry22hafnsrJevgrGlcrqIrpgbeVssRRvEXAFg3__16irpgbeVG_AF2_9nyybpngbeVF4_RRRRZF0_SvG0_R:
 nop
@@ -5693,7 +5693,7 @@
 b__MAX7naqebvq6Cnepry16ernqHvag64IrpgbeRCAFg3__16irpgbeVzAF1_9nyybpngbeVzRRRR:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVoAF_9nyybpngbeVoRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR12__svaq_rdhnyVF3_RRECAF_16__gerr_abqr_onfrVCiRRECAF_15__gerr_raq_abqrVFW_RREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVoAF_9nyybpngbeVoRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR12__svaq_rdhnyVF3_RRECAF_16__gerr_abqr_onfrVCiRRECAF_15__gerr_raq_abqrVFW_RREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVoAF_9nyybpngbeVoRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR12__svaq_rdhnyVF3_RRECAF_16__gerr_abqr_onfrVCiRRECAF_15__gerr_raq_abqrVFW_RREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVoAF_9nyybpngbeVoRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR12__svaq_rdhnyVF3_RRECAF_16__gerr_abqr_onfrVCiRRECAF_15__gerr_raq_abqrVFW_RREXG_:
 nop
@@ -5728,7 +5728,7 @@
 b__MGGA7naqebvq16OaErfhygErprvireR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvqyfVlRREAF_10GrkgBhgchgRF2_EXG_
+.weak b__MA7naqebvqyfVlRREAF_10GrkgBhgchgRF2_EXG_
 .type b__MA7naqebvqyfVlRREAF_10GrkgBhgchgRF2_EXG_,%function
 b__MA7naqebvqyfVlRREAF_10GrkgBhgchgRF2_EXG_:
 nop
@@ -5763,7 +5763,7 @@
 b__MA7naqebvq14VCPGuernqFgngrP1Ri:
 nop
 .data
-.globl b__MGPA7naqebvq20OcCebprffVasbFreivprR8_AF_9OcErsOnfrR
+.weak b__MGPA7naqebvq20OcCebprffVasbFreivprR8_AF_9OcErsOnfrR
 .type b__MGPA7naqebvq20OcCebprffVasbFreivprR8_AF_9OcErsOnfrR,%object
 b__MGPA7naqebvq20OcCebprffVasbFreivprR8_AF_9OcErsOnfrR:
 .space __SIZEOF_POINTER__
@@ -5783,7 +5783,7 @@
 b__MGua8_A7naqebvq10NyybpngvbaQ0Ri:
 nop
 .text
-.globl b__MAX7naqebvq6Cnepry21hafnsrErnqGlcrqIrpgbeVAFg3__110havdhr_cgeVAF2_12onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRAF2_14qrsnhyg_qryrgrVF9_RRRRFP_RRvCAF2_6irpgbeVG_AF7_VFR_RRRRZF0_XSvCG0_R
+.weak b__MAX7naqebvq6Cnepry21hafnsrErnqGlcrqIrpgbeVAFg3__110havdhr_cgeVAF2_12onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRAF2_14qrsnhyg_qryrgrVF9_RRRRFP_RRvCAF2_6irpgbeVG_AF7_VFR_RRRRZF0_XSvCG0_R
 .type b__MAX7naqebvq6Cnepry21hafnsrErnqGlcrqIrpgbeVAFg3__110havdhr_cgeVAF2_12onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRAF2_14qrsnhyg_qryrgrVF9_RRRRFP_RRvCAF2_6irpgbeVG_AF7_VFR_RRRRZF0_XSvCG0_R,%function
 b__MAX7naqebvq6Cnepry21hafnsrErnqGlcrqIrpgbeVAFg3__110havdhr_cgeVAF2_12onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRAF2_14qrsnhyg_qryrgrVF9_RRRRFP_RRvCAF2_6irpgbeVG_AF7_VFR_RRRRZF0_XSvCG0_R:
 nop
@@ -5808,7 +5808,7 @@
 b__MGPA7naqebvq15OaFuryyPnyyonpxR0_AF_14VFuryyPnyyonpxR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RqRRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR7qrfgeblRCAF_11__gerr_abqrVF4_CiRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RqRRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR7qrfgeblRCAF_11__gerr_abqrVF4_CiRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RqRRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR7qrfgeblRCAF_11__gerr_abqrVF4_CiRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RqRRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR7qrfgeblRCAF_11__gerr_abqrVF4_CiRR:
 nop
@@ -5858,7 +5858,7 @@
 b__MA7naqebvq2bf17CrefvfgnoyrOhaqyr16chgObbyrnaIrpgbeREXAF_8Fgevat16REXAFg3__16irpgbeVoAF5_9nyybpngbeVoRRRR:
 nop
 .data
-.globl b__MGPA7naqebvq15OcNccBcfFreivprR0_AF_14VNccBcfFreivprR
+.weak b__MGPA7naqebvq15OcNccBcfFreivprR0_AF_14VNccBcfFreivprR
 .type b__MGPA7naqebvq15OcNccBcfFreivprR0_AF_14VNccBcfFreivprR,%object
 b__MGPA7naqebvq15OcNccBcfFreivprR0_AF_14VNccBcfFreivprR:
 .space __SIZEOF_POINTER__
@@ -5888,7 +5888,7 @@
 b__MA7naqebvq12CebprffFgngr13rkchatrUnaqyrRvCAF_7VOvaqreR:
 nop
 .text
-.globl b__MA7naqebvq11OaVagresnprVAF_13VOnggrelFgngfRR10baNfOvaqreRi
+.weak b__MA7naqebvq11OaVagresnprVAF_13VOnggrelFgngfRR10baNfOvaqreRi
 .type b__MA7naqebvq11OaVagresnprVAF_13VOnggrelFgngfRR10baNfOvaqreRi,%function
 b__MA7naqebvq11OaVagresnprVAF_13VOnggrelFgngfRR10baNfOvaqreRi:
 nop
@@ -5908,7 +5908,7 @@
 b__MAX7naqebvq6Cnepry12bowrpgfPbhagRi:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RqRRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR12__svaq_rdhnyVF3_RRECAF_16__gerr_abqr_onfrVCiRRECAF_15__gerr_raq_abqrVFT_RREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RqRRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR12__svaq_rdhnyVF3_RRECAF_16__gerr_abqr_onfrVCiRRECAF_15__gerr_raq_abqrVFT_RREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RqRRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR12__svaq_rdhnyVF3_RRECAF_16__gerr_abqr_onfrVCiRRECAF_15__gerr_raq_abqrVFT_RREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RqRRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR12__svaq_rdhnyVF3_RRECAF_16__gerr_abqr_onfrVCiRRECAF_15__gerr_raq_abqrVFT_RREXG_:
 nop
@@ -5933,7 +5933,7 @@
 b__MA7naqebvq13VOnggrelFgngf14trgQrsnhygVzcyRi:
 nop
 .text
-.globl b__MA7naqebvq9FvatyrgbaVAF_15CrezvffvbaPnpurRRQ1Ri
+.weak b__MA7naqebvq9FvatyrgbaVAF_15CrezvffvbaPnpurRRQ1Ri
 .type b__MA7naqebvq9FvatyrgbaVAF_15CrezvffvbaPnpurRRQ1Ri,%function
 b__MA7naqebvq9FvatyrgbaVAF_15CrezvffvbaPnpurRRQ1Ri:
 nop
@@ -5943,12 +5943,12 @@
 b__MAX7naqebvq6Cnepry16ernqFgebatOvaqreRi:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_2fcVAF_18OhssrerqGrkgBhgchg11OhssreFgngrRRRR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_2fcVAF_18OhssrerqGrkgBhgchg11OhssreFgngrRRRR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_2fcVAF_18OhssrerqGrkgBhgchg11OhssreFgngrRRRR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_2fcVAF_18OhssrerqGrkgBhgchg11OhssreFgngrRRRR16qb_zbir_onpxjneqRCiCXiz:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVqAF_9nyybpngbeVqRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR14__nffvta_zhygvVAF_21__gerr_pbafg_vgrengbeVF8_CAF_11__gerr_abqrVF8_CiRRyRRRRiG_FZ_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVqAF_9nyybpngbeVqRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR14__nffvta_zhygvVAF_21__gerr_pbafg_vgrengbeVF8_CAF_11__gerr_abqrVF8_CiRRyRRRRiG_FZ_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVqAF_9nyybpngbeVqRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR14__nffvta_zhygvVAF_21__gerr_pbafg_vgrengbeVF8_CAF_11__gerr_abqrVF8_CiRRyRRRRiG_FZ_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVqAF_9nyybpngbeVqRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR14__nffvta_zhygvVAF_21__gerr_pbafg_vgrengbeVF8_CAF_11__gerr_abqrVF8_CiRRyRRRRiG_FZ_:
 nop
@@ -5973,7 +5973,7 @@
 b__MA7naqebvq9UrncPnpur10ovaqreQvrqREXAF_2jcVAF_7VOvaqreRRR:
 nop
 .text
-.globl b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
+.weak b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
 .type b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_,%function
 b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_:
 nop
@@ -5988,7 +5988,7 @@
 b__MGPA7naqebvq2bf16OcFreivprZnantreR0_AF_10VVagresnprR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq6IrpgbeVCAF_7ErsOnfrRR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVCAF_7ErsOnfrRR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVCAF_7ErsOnfrRR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVCAF_7ErsOnfrRR16qb_zbir_onpxjneqRCiCXiz:
 nop
@@ -5998,7 +5998,7 @@
 b__MA7naqebvq14ZrzbelUrncOnfr5zncsqRvzy:
 nop
 .text
-.globl b__MAX7naqebvq6Cnepry21hafnsrErnqGlcrqIrpgbeVAF_2fcVAF_7VOvaqreRRRF4_RRvCAFg3__16irpgbeVG_AF5_9nyybpngbeVF7_RRRRZF0_XSvCG0_R
+.weak b__MAX7naqebvq6Cnepry21hafnsrErnqGlcrqIrpgbeVAF_2fcVAF_7VOvaqreRRRF4_RRvCAFg3__16irpgbeVG_AF5_9nyybpngbeVF7_RRRRZF0_XSvCG0_R
 .type b__MAX7naqebvq6Cnepry21hafnsrErnqGlcrqIrpgbeVAF_2fcVAF_7VOvaqreRRRF4_RRvCAFg3__16irpgbeVG_AF5_9nyybpngbeVF7_RRRRZF0_XSvCG0_R,%function
 b__MAX7naqebvq6Cnepry21hafnsrErnqGlcrqIrpgbeVAF_2fcVAF_7VOvaqreRRRF4_RRvCAFg3__16irpgbeVG_AF5_9nyybpngbeVF7_RRRRZF0_XSvCG0_R:
 nop
@@ -6048,12 +6048,12 @@
 b__MA7naqebvq6Cnepry17jevgrQbhoyrIrpgbeREXAFg3__110havdhr_cgeVAF1_6irpgbeVqAF1_9nyybpngbeVqRRRRAF1_14qrsnhyg_qryrgrVF6_RRRR:
 nop
 .text
-.globl b__MAX7naqebvq6Cnepry23ernqAhyynoyrGlcrqIrpgbeVAF_4onfr14havdhr_sq_vzcyVAF2_13QrsnhygPybfreRRRRRvCAFg3__110havdhr_cgeVAF6_6irpgbeVG_AF6_9nyybpngbeVF9_RRRRAF6_14qrsnhyg_qryrgrVFP_RRRRZF0_XSvCF9_R
+.weak b__MAX7naqebvq6Cnepry23ernqAhyynoyrGlcrqIrpgbeVAF_4onfr14havdhr_sq_vzcyVAF2_13QrsnhygPybfreRRRRRvCAFg3__110havdhr_cgeVAF6_6irpgbeVG_AF6_9nyybpngbeVF9_RRRRAF6_14qrsnhyg_qryrgrVFP_RRRRZF0_XSvCF9_R
 .type b__MAX7naqebvq6Cnepry23ernqAhyynoyrGlcrqIrpgbeVAF_4onfr14havdhr_sq_vzcyVAF2_13QrsnhygPybfreRRRRRvCAFg3__110havdhr_cgeVAF6_6irpgbeVG_AF6_9nyybpngbeVF9_RRRRAF6_14qrsnhyg_qryrgrVFP_RRRRZF0_XSvCF9_R,%function
 b__MAX7naqebvq6Cnepry23ernqAhyynoyrGlcrqIrpgbeVAF_4onfr14havdhr_sq_vzcyVAF2_13QrsnhygPybfreRRRRRvCAFg3__110havdhr_cgeVAF6_6irpgbeVG_AF6_9nyybpngbeVF9_RRRRAF6_14qrsnhyg_qryrgrVFP_RRRRZF0_XSvCF9_R:
 nop
 .data
-.globl b__MGGA7naqebvq20OcCebprffVasbFreivprR
+.weak b__MGGA7naqebvq20OcCebprffVasbFreivprR
 .type b__MGGA7naqebvq20OcCebprffVasbFreivprR,%object
 b__MGGA7naqebvq20OcCebprffVasbFreivprR:
 .space __SIZEOF_POINTER__
@@ -6118,7 +6118,7 @@
 b__MAX7naqebvq2bf17CrefvfgnoyrOhaqyr14trgObbyrnaXrlfRi:
 nop
 .text
-.globl b__MA7naqebvq2fcVAF_9UrncPnpurRRQ2Ri
+.weak b__MA7naqebvq2fcVAF_9UrncPnpurRRQ2Ri
 .type b__MA7naqebvq2fcVAF_9UrncPnpurRRQ2Ri,%function
 b__MA7naqebvq2fcVAF_9UrncPnpurRRQ2Ri:
 nop
@@ -6158,7 +6158,7 @@
 b__MGPA7naqebvq10ZrzbelOnfrR0_AF_7VZrzbelR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAXFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVoAF_9nyybpngbeVoRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR4svaqVF3_RRAF_21__gerr_pbafg_vgrengbeVF8_CAF_11__gerr_abqrVF8_CiRRyRREXG_
+.weak b__MAXFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVoAF_9nyybpngbeVoRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR4svaqVF3_RRAF_21__gerr_pbafg_vgrengbeVF8_CAF_11__gerr_abqrVF8_CiRRyRREXG_
 .type b__MAXFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVoAF_9nyybpngbeVoRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR4svaqVF3_RRAF_21__gerr_pbafg_vgrengbeVF8_CAF_11__gerr_abqrVF8_CiRRyRREXG_,%function
 b__MAXFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVoAF_9nyybpngbeVoRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR4svaqVF3_RRAF_21__gerr_pbafg_vgrengbeVF8_CAF_11__gerr_abqrVF8_CiRRyRREXG_:
 nop
@@ -6183,7 +6183,7 @@
 b__MGua8_A7naqebvq10ZrzbelOnfrQ1Ri:
 nop
 .text
-.globl b__MAFg3__16irpgbeVoAF_9nyybpngbeVoRRR7erfreirRz
+.weak b__MAFg3__16irpgbeVoAF_9nyybpngbeVoRRR7erfreirRz
 .type b__MAFg3__16irpgbeVoAF_9nyybpngbeVoRRR7erfreirRz,%function
 b__MAFg3__16irpgbeVoAF_9nyybpngbeVoRRR7erfreirRz:
 nop
@@ -6198,12 +6198,12 @@
 b__MA7naqebvq21VZrqvnErfbheprZbavgbeQ2Ri:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RqRRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR15__rzcynpr_zhygvVWEXAF_4cnveVXF3_qRRRRRAF_15__gerr_vgrengbeVF4_CAF_11__gerr_abqrVF4_CiRRyRRQcBG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RqRRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR15__rzcynpr_zhygvVWEXAF_4cnveVXF3_qRRRRRAF_15__gerr_vgrengbeVF4_CAF_11__gerr_abqrVF4_CiRRyRRQcBG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RqRRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR15__rzcynpr_zhygvVWEXAF_4cnveVXF3_qRRRRRAF_15__gerr_vgrengbeVF4_CAF_11__gerr_abqrVF4_CiRRyRRQcBG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RqRRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR15__rzcynpr_zhygvVWEXAF_4cnveVXF3_qRRRRRAF_15__gerr_vgrengbeVF4_CAF_11__gerr_abqrVF4_CiRRyRRQcBG_:
 nop
 .data
-.globl b__MGGA7naqebvq22OcCrezvffvbaPbagebyyreR
+.weak b__MGGA7naqebvq22OcCrezvffvbaPbagebyyreR
 .type b__MGGA7naqebvq22OcCrezvffvbaPbagebyyreR,%object
 b__MGGA7naqebvq22OcCrezvffvbaPbagebyyreR:
 .space __SIZEOF_POINTER__
@@ -6248,7 +6248,7 @@
 b__MAX7naqebvq6Cnepry8ernqObbyRi:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RvRRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR7qrfgeblRCAF_11__gerr_abqrVF4_CiRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RvRRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR7qrfgeblRCAF_11__gerr_abqrVF4_CiRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RvRRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR7qrfgeblRCAF_11__gerr_abqrVF4_CiRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RvRRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR7qrfgeblRCAF_11__gerr_abqrVF4_CiRR:
 nop
@@ -6273,17 +6273,17 @@
 b__MGGA7naqebvq12OaZrzbelUrncR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIA7naqebvq6IrpgbeVCAF_7ErsOnfr12jrnxers_glcrRRR
+.weak b__MGIA7naqebvq6IrpgbeVCAF_7ErsOnfr12jrnxers_glcrRRR
 .type b__MGIA7naqebvq6IrpgbeVCAF_7ErsOnfr12jrnxers_glcrRRR,%object
 b__MGIA7naqebvq6IrpgbeVCAF_7ErsOnfr12jrnxers_glcrRRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvqyfVN8_pRREAF_10GrkgBhgchgRF3_EXG_
+.weak b__MA7naqebvqyfVN8_pRREAF_10GrkgBhgchgRF3_EXG_
 .type b__MA7naqebvqyfVN8_pRREAF_10GrkgBhgchgRF3_EXG_,%function
 b__MA7naqebvqyfVN8_pRREAF_10GrkgBhgchgRF3_EXG_:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVvR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVvR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVvR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVvR16qb_zbir_onpxjneqRCiCXiz:
 nop
@@ -6318,7 +6318,7 @@
 b__MA7naqebvq19VCebprffVasbFreivprQ1Ri:
 nop
 .data
-.globl b__MGIA7naqebvq20OcCebprffVasbFreivprR
+.weak b__MGIA7naqebvq20OcCebprffVasbFreivprR
 .type b__MGIA7naqebvq20OcCebprffVasbFreivprR,%object
 b__MGIA7naqebvq20OcCebprffVasbFreivprR:
 .space __SIZEOF_POINTER__
@@ -6328,17 +6328,17 @@
 b__MA7naqebvq7VOvaqre11trgQrohtCvqRCv:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF2_2bf17CrefvfgnoyrOhaqyrRRRAF_19__znc_inyhr_pbzcnerVF3_F6_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF6_RRR7qrfgeblRCAF_11__gerr_abqrVF6_CiRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF2_2bf17CrefvfgnoyrOhaqyrRRRAF_19__znc_inyhr_pbzcnerVF3_F6_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF6_RRR7qrfgeblRCAF_11__gerr_abqrVF6_CiRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF2_2bf17CrefvfgnoyrOhaqyrRRRAF_19__znc_inyhr_pbzcnerVF3_F6_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF6_RRR7qrfgeblRCAF_11__gerr_abqrVF6_CiRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF2_2bf17CrefvfgnoyrOhaqyrRRRAF_19__znc_inyhr_pbzcnerVF3_F6_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF6_RRR7qrfgeblRCAF_11__gerr_abqrVF6_CiRR:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVvAF_9nyybpngbeVvRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR15__rzcynpr_zhygvVWEXAF_4cnveVXF3_F7_RRRRRAF_15__gerr_vgrengbeVF8_CAF_11__gerr_abqrVF8_CiRRyRRQcBG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVvAF_9nyybpngbeVvRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR15__rzcynpr_zhygvVWEXAF_4cnveVXF3_F7_RRRRRAF_15__gerr_vgrengbeVF8_CAF_11__gerr_abqrVF8_CiRRyRRQcBG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVvAF_9nyybpngbeVvRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR15__rzcynpr_zhygvVWEXAF_4cnveVXF3_F7_RRRRRAF_15__gerr_vgrengbeVF8_CAF_11__gerr_abqrVF8_CiRRyRRQcBG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVvAF_9nyybpngbeVvRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR15__rzcynpr_zhygvVWEXAF_4cnveVXF3_F7_RRRRRAF_15__gerr_vgrengbeVF8_CAF_11__gerr_abqrVF8_CiRRyRRQcBG_:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RoRRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR30__rzcynpr_uvag_havdhr_xrl_netfVF3_WEXAF_4cnveVXF3_oRRRRRAF_15__gerr_vgrengbeVF4_CAF_11__gerr_abqrVF4_CiRRyRRAF_21__gerr_pbafg_vgrengbeVF4_FZ_yRREXG_QcBG0_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RoRRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR30__rzcynpr_uvag_havdhr_xrl_netfVF3_WEXAF_4cnveVXF3_oRRRRRAF_15__gerr_vgrengbeVF4_CAF_11__gerr_abqrVF4_CiRRyRRAF_21__gerr_pbafg_vgrengbeVF4_FZ_yRREXG_QcBG0_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RoRRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR30__rzcynpr_uvag_havdhr_xrl_netfVF3_WEXAF_4cnveVXF3_oRRRRRAF_15__gerr_vgrengbeVF4_CAF_11__gerr_abqrVF4_CiRRyRRAF_21__gerr_pbafg_vgrengbeVF4_FZ_yRREXG_QcBG0_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RoRRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR30__rzcynpr_uvag_havdhr_xrl_netfVF3_WEXAF_4cnveVXF3_oRRRRRAF_15__gerr_vgrengbeVF4_CAF_11__gerr_abqrVF4_CiRRyRRAF_21__gerr_pbafg_vgrengbeVF4_FZ_yRREXG_QcBG0_:
 nop
@@ -6358,12 +6358,12 @@
 b__MGPA7naqebvq10NyybpngvbaR0_AF_10VVagresnprR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvqyfVN4_pRREAF_10GrkgBhgchgRF3_EXG_
+.weak b__MA7naqebvqyfVN4_pRREAF_10GrkgBhgchgRF3_EXG_
 .type b__MA7naqebvqyfVN4_pRREAF_10GrkgBhgchgRF3_EXG_,%function
 b__MA7naqebvqyfVN4_pRREAF_10GrkgBhgchgRF3_EXG_:
 nop
 .text
-.globl b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR7frrxbssRkAF_8vbf_onfr7frrxqveRw
+.weak b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR7frrxbssRkAF_8vbf_onfr7frrxqveRw
 .type b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR7frrxbssRkAF_8vbf_onfr7frrxqveRw,%function
 b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR7frrxbssRkAF_8vbf_onfr7frrxqveRw:
 nop
@@ -6393,7 +6393,7 @@
 b__MA7naqebvq12ZrzbelQrnyreP2RzCXpw:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RqRRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR14__nffvta_zhygvVAF_21__gerr_pbafg_vgrengbeVF4_CAF_11__gerr_abqrVF4_CiRRyRRRRiG_FW_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RqRRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR14__nffvta_zhygvVAF_21__gerr_pbafg_vgrengbeVF4_CAF_11__gerr_abqrVF4_CiRRyRRRRiG_FW_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RqRRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR14__nffvta_zhygvVAF_21__gerr_pbafg_vgrengbeVF4_CAF_11__gerr_abqrVF4_CiRRyRRRRiG_FW_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RqRRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR14__nffvta_zhygvVAF_21__gerr_pbafg_vgrengbeVF4_CAF_11__gerr_abqrVF4_CiRRyRRRRiG_FW_:
 nop
@@ -6418,7 +6418,7 @@
 b__MGi0_a24_A7naqebvq10ZrzbelOnfrQ0Ri:
 nop
 .text
-.globl b__MA7naqebvq6Cnepry22hafnsrJevgrGlcrqIrpgbeVAF_4onfr14havdhr_sq_vzcyVAF2_13QrsnhygPybfreRRREXF5_RRvEXAFg3__16irpgbeVG_AF8_9nyybpngbeVFN_RRRRZF0_SvG0_R
+.weak b__MA7naqebvq6Cnepry22hafnsrJevgrGlcrqIrpgbeVAF_4onfr14havdhr_sq_vzcyVAF2_13QrsnhygPybfreRRREXF5_RRvEXAFg3__16irpgbeVG_AF8_9nyybpngbeVFN_RRRRZF0_SvG0_R
 .type b__MA7naqebvq6Cnepry22hafnsrJevgrGlcrqIrpgbeVAF_4onfr14havdhr_sq_vzcyVAF2_13QrsnhygPybfreRRREXF5_RRvEXAFg3__16irpgbeVG_AF8_9nyybpngbeVFN_RRRRZF0_SvG0_R,%function
 b__MA7naqebvq6Cnepry22hafnsrJevgrGlcrqIrpgbeVAF_4onfr14havdhr_sq_vzcyVAF2_13QrsnhygPybfreRRREXF5_RRvEXAFg3__16irpgbeVG_AF8_9nyybpngbeVFN_RRRRZF0_SvG0_R:
 nop
@@ -6428,7 +6428,7 @@
 b__MAX7naqebvq2bf17CrefvfgnoyrOhaqyr13trgYbatIrpgbeREXAF_8Fgevat16RCAFg3__16irpgbeVyAF5_9nyybpngbeVyRRRR:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVvAF_9nyybpngbeVvRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR4svaqVF3_RRAF_15__gerr_vgrengbeVF8_CAF_11__gerr_abqrVF8_CiRRyRREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVvAF_9nyybpngbeVvRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR4svaqVF3_RRAF_15__gerr_vgrengbeVF8_CAF_11__gerr_abqrVF8_CiRRyRREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVvAF_9nyybpngbeVvRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR4svaqVF3_RRAF_15__gerr_vgrengbeVF8_CAF_11__gerr_abqrVF8_CiRRyRREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVvAF_9nyybpngbeVvRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR4svaqVF3_RRAF_15__gerr_vgrengbeVF8_CAF_11__gerr_abqrVF8_CiRRyRREXG_:
 nop
@@ -6438,7 +6438,7 @@
 b__MA7naqebvq3arg8VcCersvk10frgNqqerffREX8va6_nqqe:
 nop
 .text
-.globl b__MA7naqebvq6Cnepry22hafnsrJevgrGlcrqIrpgbeVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRREXF8_RRvEXAF2_6irpgbeVG_AF6_VFP_RRRRZF0_SvG0_R
+.weak b__MA7naqebvq6Cnepry22hafnsrJevgrGlcrqIrpgbeVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRREXF8_RRvEXAF2_6irpgbeVG_AF6_VFP_RRRRZF0_SvG0_R
 .type b__MA7naqebvq6Cnepry22hafnsrJevgrGlcrqIrpgbeVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRREXF8_RRvEXAF2_6irpgbeVG_AF6_VFP_RRRRZF0_SvG0_R,%function
 b__MA7naqebvq6Cnepry22hafnsrJevgrGlcrqIrpgbeVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRREXF8_RRvEXAF2_6irpgbeVG_AF6_VFP_RRRRZF0_SvG0_R:
 nop
@@ -6493,7 +6493,7 @@
 b__MGi0_a24_A7naqebvq15VErfhygErprvireQ1Ri:
 nop
 .data
-.globl b__MGPA7naqebvq15OcFuryyPnyyonpxR8_AF_9OcErsOnfrR
+.weak b__MGPA7naqebvq15OcFuryyPnyyonpxR8_AF_9OcErsOnfrR
 .type b__MGPA7naqebvq15OcFuryyPnyyonpxR8_AF_9OcErsOnfrR,%object
 b__MGPA7naqebvq15OcFuryyPnyyonpxR8_AF_9OcErsOnfrR:
 .space __SIZEOF_POINTER__
@@ -6523,7 +6523,7 @@
 b__MA7naqebvq8vagreany9Fgnovyvgl17qrohtYbtFgnovyvglREXAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRREXAF_2fcVAF_7VOvaqreRRR:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_2fcVAF_18OhssrerqGrkgBhgchg11OhssreFgngrRRRR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_2fcVAF_18OhssrerqGrkgBhgchg11OhssreFgngrRRRR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_2fcVAF_18OhssrerqGrkgBhgchg11OhssreFgngrRRRR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_2fcVAF_18OhssrerqGrkgBhgchg11OhssreFgngrRRRR7qb_pbclRCiCXiz:
 nop
@@ -6548,7 +6548,7 @@
 b__MAX7naqebvq6Cnepry15ernqSybngIrpgbeRCAFg3__110havdhr_cgeVAF1_6irpgbeVsAF1_9nyybpngbeVsRRRRAF1_14qrsnhyg_qryrgrVF6_RRRR:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RF3_RRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR12__svaq_rdhnyVF3_RRECAF_16__gerr_abqr_onfrVCiRRECAF_15__gerr_raq_abqrVFT_RREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RF3_RRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR12__svaq_rdhnyVF3_RRECAF_16__gerr_abqr_onfrVCiRRECAF_15__gerr_raq_abqrVFT_RREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RF3_RRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR12__svaq_rdhnyVF3_RRECAF_16__gerr_abqr_onfrVCiRRECAF_15__gerr_raq_abqrVFT_RREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RF3_RRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR12__svaq_rdhnyVF3_RRECAF_16__gerr_abqr_onfrVCiRRECAF_15__gerr_raq_abqrVFT_RREXG_:
 nop
@@ -6558,22 +6558,22 @@
 b__MGi0_a24_A7naqebvq16VNpgvivglZnantreQ1Ri:
 nop
 .data
-.globl b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_14onfvp_vbfgernzVpF2_RR
+.weak b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_14onfvp_vbfgernzVpF2_RR
 .type b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_14onfvp_vbfgernzVpF2_RR,%object
 b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_14onfvp_vbfgernzVpF2_RR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVoAF_9nyybpngbeVoRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVF8_CAF_11__gerr_abqrVF8_CiRRyRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVoAF_9nyybpngbeVoRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVF8_CAF_11__gerr_abqrVF8_CiRRyRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVoAF_9nyybpngbeVoRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVF8_CAF_11__gerr_abqrVF8_CiRRyRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVoAF_9nyybpngbeVoRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVF8_CAF_11__gerr_abqrVF8_CiRRyRR:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RvRRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR15__rzcynpr_zhygvVWEXAF_4cnveVXF3_vRRRRRAF_15__gerr_vgrengbeVF4_CAF_11__gerr_abqrVF4_CiRRyRRQcBG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RvRRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR15__rzcynpr_zhygvVWEXAF_4cnveVXF3_vRRRRRAF_15__gerr_vgrengbeVF4_CAF_11__gerr_abqrVF4_CiRRyRRQcBG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RvRRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR15__rzcynpr_zhygvVWEXAF_4cnveVXF3_vRRRRRAF_15__gerr_vgrengbeVF4_CAF_11__gerr_abqrVF4_CiRRyRRQcBG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RvRRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR15__rzcynpr_zhygvVWEXAF_4cnveVXF3_vRRRRRAF_15__gerr_vgrengbeVF4_CAF_11__gerr_abqrVF4_CiRRyRRQcBG_:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVvR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVvR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVvR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVvR15qb_zbir_sbejneqRCiCXiz:
 nop
@@ -6663,7 +6663,7 @@
 b__MA7naqebvq6Cnepry8serrQngnRi:
 nop
 .text
-.globl b__MAFg3__16irpgbeVQfAF_9nyybpngbeVQfRRR8__nccraqRz
+.weak b__MAFg3__16irpgbeVQfAF_9nyybpngbeVQfRRR8__nccraqRz
 .type b__MAFg3__16irpgbeVQfAF_9nyybpngbeVQfRRR8__nccraqRz,%function
 b__MAFg3__16irpgbeVQfAF_9nyybpngbeVQfRRR8__nccraqRz:
 nop
@@ -6678,12 +6678,12 @@
 b__MA7naqebvq6Cnepry11pbzcnerQngnREXF0_:
 nop
 .text
-.globl b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9haqresybjRi
+.weak b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9haqresybjRi
 .type b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9haqresybjRi,%function
 b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9haqresybjRi:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVvAF_9nyybpngbeVvRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR12__svaq_rdhnyVF3_RRECAF_16__gerr_abqr_onfrVCiRRAF_21__gerr_pbafg_vgrengbeVF8_CAF_11__gerr_abqrVF8_FU_RRyRRECAF_15__gerr_raq_abqrVFW_RRFX_EXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVvAF_9nyybpngbeVvRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR12__svaq_rdhnyVF3_RRECAF_16__gerr_abqr_onfrVCiRRAF_21__gerr_pbafg_vgrengbeVF8_CAF_11__gerr_abqrVF8_FU_RRyRRECAF_15__gerr_raq_abqrVFW_RRFX_EXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVvAF_9nyybpngbeVvRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR12__svaq_rdhnyVF3_RRECAF_16__gerr_abqr_onfrVCiRRAF_21__gerr_pbafg_vgrengbeVF8_CAF_11__gerr_abqrVF8_FU_RRyRRECAF_15__gerr_raq_abqrVFW_RRFX_EXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVvAF_9nyybpngbeVvRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR12__svaq_rdhnyVF3_RRECAF_16__gerr_abqr_onfrVCiRRAF_21__gerr_pbafg_vgrengbeVF8_CAF_11__gerr_abqrVF8_FU_RRyRRECAF_15__gerr_raq_abqrVFW_RRFX_EXG_:
 nop
@@ -6708,7 +6708,7 @@
 b__MGIA7naqebvq2bf16OaFreivprZnantreR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIA7naqebvq13OcHvqBofreireR
+.weak b__MGIA7naqebvq13OcHvqBofreireR
 .type b__MGIA7naqebvq13OcHvqBofreireR,%object
 b__MGIA7naqebvq13OcHvqBofreireR:
 .space __SIZEOF_POINTER__
@@ -6718,12 +6718,12 @@
 b__MGPA7naqebvq7pbagrag2cz22OcCnpxntrZnantreAngvirR0_AF_10VVagresnprR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvwRRAF_22__habeqrerq_znc_unfureVvF2_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF2_AF_8rdhny_gbVvRRYo1RRRAF_9nyybpngbeVF2_RRR6erzbirRAF_21__unfu_pbafg_vgrengbeVCAF_11__unfu_abqrVF2_CiRRRR
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvwRRAF_22__habeqrerq_znc_unfureVvF2_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF2_AF_8rdhny_gbVvRRYo1RRRAF_9nyybpngbeVF2_RRR6erzbirRAF_21__unfu_pbafg_vgrengbeVCAF_11__unfu_abqrVF2_CiRRRR
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvwRRAF_22__habeqrerq_znc_unfureVvF2_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF2_AF_8rdhny_gbVvRRYo1RRRAF_9nyybpngbeVF2_RRR6erzbirRAF_21__unfu_pbafg_vgrengbeVCAF_11__unfu_abqrVF2_CiRRRR,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvwRRAF_22__habeqrerq_znc_unfureVvF2_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF2_AF_8rdhny_gbVvRRYo1RRRAF_9nyybpngbeVF2_RRR6erzbirRAF_21__unfu_pbafg_vgrengbeVCAF_11__unfu_abqrVF2_CiRRRR:
 nop
 .text
-.globl b__MAX7naqebvq6Cnepry16erfreirBhgIrpgbeVuRRvCAFg3__110havdhr_cgeVAF2_6irpgbeVG_AF2_9nyybpngbeVF5_RRRRAF2_14qrsnhyg_qryrgrVF8_RRRRCz
+.weak b__MAX7naqebvq6Cnepry16erfreirBhgIrpgbeVuRRvCAFg3__110havdhr_cgeVAF2_6irpgbeVG_AF2_9nyybpngbeVF5_RRRRAF2_14qrsnhyg_qryrgrVF8_RRRRCz
 .type b__MAX7naqebvq6Cnepry16erfreirBhgIrpgbeVuRRvCAFg3__110havdhr_cgeVAF2_6irpgbeVG_AF2_9nyybpngbeVF5_RRRRAF2_14qrsnhyg_qryrgrVF8_RRRRCz,%function
 b__MAX7naqebvq6Cnepry16erfreirBhgIrpgbeVuRRvCAFg3__110havdhr_cgeVAF2_6irpgbeVG_AF2_9nyybpngbeVF5_RRRRAF2_14qrsnhyg_qryrgrVF8_RRRRCz:
 nop
@@ -6763,7 +6763,7 @@
 b__MAX7naqebvq6Cnepry4qngnRi:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVCAF_7ErsOnfrRR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq6IrpgbeVCAF_7ErsOnfrRR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq6IrpgbeVCAF_7ErsOnfrRR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq6IrpgbeVCAF_7ErsOnfrRR12qb_pbafgehpgRCiz:
 nop
@@ -6778,12 +6778,12 @@
 b__MA7naqebvq2bf17OaFreivprPnyyonpxP2Ri:
 nop
 .text
-.globl b__MA7naqebvq11OaVagresnprVAF_21VCrezvffvbaPbagebyyreRR10baNfOvaqreRi
+.weak b__MA7naqebvq11OaVagresnprVAF_21VCrezvffvbaPbagebyyreRR10baNfOvaqreRi
 .type b__MA7naqebvq11OaVagresnprVAF_21VCrezvffvbaPbagebyyreRR10baNfOvaqreRi,%function
 b__MA7naqebvq11OaVagresnprVAF_21VCrezvffvbaPbagebyyreRR10baNfOvaqreRi:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_8Fgevat16RR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_8Fgevat16RR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_8Fgevat16RR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_8Fgevat16RR15qb_zbir_sbejneqRCiCXiz:
 nop
@@ -6808,17 +6808,17 @@
 b__MGia8_a32_A7naqebvq14ZrzbelUrncOnfrQ0Ri:
 nop
 .text
-.globl b__MAX7naqebvq6Cnepry23ernqAhyynoyrGlcrqIrpgbeVzRRvCAFg3__110havdhr_cgeVAF2_6irpgbeVG_AF2_9nyybpngbeVF5_RRRRAF2_14qrsnhyg_qryrgrVF8_RRRRZF0_XSvCF5_R
+.weak b__MAX7naqebvq6Cnepry23ernqAhyynoyrGlcrqIrpgbeVzRRvCAFg3__110havdhr_cgeVAF2_6irpgbeVG_AF2_9nyybpngbeVF5_RRRRAF2_14qrsnhyg_qryrgrVF8_RRRRZF0_XSvCF5_R
 .type b__MAX7naqebvq6Cnepry23ernqAhyynoyrGlcrqIrpgbeVzRRvCAFg3__110havdhr_cgeVAF2_6irpgbeVG_AF2_9nyybpngbeVF5_RRRRAF2_14qrsnhyg_qryrgrVF8_RRRRZF0_XSvCF5_R,%function
 b__MAX7naqebvq6Cnepry23ernqAhyynoyrGlcrqIrpgbeVzRRvCAFg3__110havdhr_cgeVAF2_6irpgbeVG_AF2_9nyybpngbeVF5_RRRRAF2_14qrsnhyg_qryrgrVF8_RRRRZF0_XSvCF5_R:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVqAF_9nyybpngbeVqRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR12__svaq_rdhnyVF3_RRECAF_16__gerr_abqr_onfrVCiRRECAF_15__gerr_raq_abqrVFW_RREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVqAF_9nyybpngbeVqRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR12__svaq_rdhnyVF3_RRECAF_16__gerr_abqr_onfrVCiRRECAF_15__gerr_raq_abqrVFW_RREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVqAF_9nyybpngbeVqRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR12__svaq_rdhnyVF3_RRECAF_16__gerr_abqr_onfrVCiRRECAF_15__gerr_raq_abqrVFW_RREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVqAF_9nyybpngbeVqRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR12__svaq_rdhnyVF3_RRECAF_16__gerr_abqr_onfrVCiRRECAF_15__gerr_raq_abqrVFW_RREXG_:
 nop
 .data
-.globl b__MGPA7naqebvq13OcHvqBofreireR0_AF_11OcVagresnprVAF_12VHvqBofreireRRR
+.weak b__MGPA7naqebvq13OcHvqBofreireR0_AF_11OcVagresnprVAF_12VHvqBofreireRRR
 .type b__MGPA7naqebvq13OcHvqBofreireR0_AF_11OcVagresnprVAF_12VHvqBofreireRRR,%object
 b__MGPA7naqebvq13OcHvqBofreireR0_AF_11OcVagresnprVAF_12VHvqBofreireRRR:
 .space __SIZEOF_POINTER__
@@ -6838,17 +6838,17 @@
 b__MGi0_a24_A7naqebvq14VNccBcfFreivprQ1Ri:
 nop
 .data
-.globl b__MGPA7naqebvq22OcCrezvffvbaPbagebyyreR0_AF_11OcVagresnprVAF_21VCrezvffvbaPbagebyyreRRR
+.weak b__MGPA7naqebvq22OcCrezvffvbaPbagebyyreR0_AF_11OcVagresnprVAF_21VCrezvffvbaPbagebyyreRRR
 .type b__MGPA7naqebvq22OcCrezvffvbaPbagebyyreR0_AF_11OcVagresnprVAF_21VCrezvffvbaPbagebyyreRRR,%object
 b__MGPA7naqebvq22OcCrezvffvbaPbagebyyreR0_AF_11OcVagresnprVAF_21VCrezvffvbaPbagebyyreRRR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVCXiAF_8OcOvaqre13BowrpgZnantre7ragel_gRRRRR
+.weak b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVCXiAF_8OcOvaqre13BowrpgZnantre7ragel_gRRRRR
 .type b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVCXiAF_8OcOvaqre13BowrpgZnantre7ragel_gRRRRR,%object
 b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVCXiAF_8OcOvaqre13BowrpgZnantre7ragel_gRRRRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq6Cnepry16ernqFgebatOvaqreVAF_2bf16VFreivprPnyyonpxRRRvCAF_2fcVG_RR
+.weak b__MAX7naqebvq6Cnepry16ernqFgebatOvaqreVAF_2bf16VFreivprPnyyonpxRRRvCAF_2fcVG_RR
 .type b__MAX7naqebvq6Cnepry16ernqFgebatOvaqreVAF_2bf16VFreivprPnyyonpxRRRvCAF_2fcVG_RR,%function
 b__MAX7naqebvq6Cnepry16ernqFgebatOvaqreVAF_2bf16VFreivprPnyyonpxRRRvCAF_2fcVG_RR:
 nop
@@ -6863,7 +6863,7 @@
 b__MGi0_a24_A7naqebvq15VFreivprZnantreQ1Ri:
 nop
 .text
-.globl b__MAX7naqebvq6Cnepry21hafnsrErnqGlcrqIrpgbeVvvRRvCAFg3__16irpgbeVG_AF2_9nyybpngbeVF4_RRRRZF0_XSvCG0_R
+.weak b__MAX7naqebvq6Cnepry21hafnsrErnqGlcrqIrpgbeVvvRRvCAFg3__16irpgbeVG_AF2_9nyybpngbeVF4_RRRRZF0_XSvCG0_R
 .type b__MAX7naqebvq6Cnepry21hafnsrErnqGlcrqIrpgbeVvvRRvCAFg3__16irpgbeVG_AF2_9nyybpngbeVF4_RRRRZF0_XSvCG0_R,%function
 b__MAX7naqebvq6Cnepry21hafnsrErnqGlcrqIrpgbeVvvRRvCAFg3__16irpgbeVG_AF2_9nyybpngbeVF4_RRRRZF0_XSvCG0_R:
 nop
@@ -6873,7 +6873,7 @@
 b__MA7naqebvq2bf17CrefvfgnoyrOhaqyr9chgFgevatREXAF_8Fgevat16RF4_:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RF3_RRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR14__nffvta_zhygvVAF_21__gerr_pbafg_vgrengbeVF4_CAF_11__gerr_abqrVF4_CiRRyRRRRiG_FW_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RF3_RRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR14__nffvta_zhygvVAF_21__gerr_pbafg_vgrengbeVF4_CAF_11__gerr_abqrVF4_CiRRyRRRRiG_FW_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RF3_RRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR14__nffvta_zhygvVAF_21__gerr_pbafg_vgrengbeVF4_CAF_11__gerr_abqrVF4_CiRRyRRRRiG_FW_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RF3_RRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR14__nffvta_zhygvVAF_21__gerr_pbafg_vgrengbeVF4_CAF_11__gerr_abqrVF4_CiRRyRRRRiG_FW_:
 nop
@@ -6913,7 +6913,7 @@
 b__MAX7naqebvq6Cnepry16ernqAngvirUnaqyrRi:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF6_RRR8__nccraqRz
+.weak b__MAFg3__16irpgbeVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF6_RRR8__nccraqRz
 .type b__MAFg3__16irpgbeVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF6_RRR8__nccraqRz,%function
 b__MAFg3__16irpgbeVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF6_RRR8__nccraqRz:
 nop
@@ -6948,7 +6948,7 @@
 b__MA7naqebvq2bf22VFreivprZnantreQrsnhyg10baNfOvaqreRi:
 nop
 .data
-.globl b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_2jcVAF_7VOvaqreRRRAF_9UrncPnpur11urnc_vasb_gRRRRR
+.weak b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_2jcVAF_7VOvaqreRRRAF_9UrncPnpur11urnc_vasb_gRRRRR
 .type b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_2jcVAF_7VOvaqreRRRAF_9UrncPnpur11urnc_vasb_gRRRRR,%object
 b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_2jcVAF_7VOvaqreRRRAF_9UrncPnpur11urnc_vasb_gRRRRR:
 .space __SIZEOF_POINTER__
@@ -6973,7 +6973,7 @@
 b__MA7naqebvq14VCPGuernqFgngr22pyrnePnyyvatJbexFbheprRi:
 nop
 .data
-.globl b__MGIAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
+.weak b__MGIAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
 .type b__MGIAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR,%object
 b__MGIAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR:
 .space __SIZEOF_POINTER__
@@ -6983,7 +6983,7 @@
 b__MA7naqebvq7OOvaqre11yvaxGbQrnguREXAF_2fcVAF_7VOvaqre14QrnguErpvcvragRRRCiw:
 nop
 .text
-.globl b__MA7naqebvq9FvatyrgbaVAF_18CebprffVasbFreivprRRP1Ri
+.weak b__MA7naqebvq9FvatyrgbaVAF_18CebprffVasbFreivprRRP1Ri
 .type b__MA7naqebvq9FvatyrgbaVAF_18CebprffVasbFreivprRRP1Ri,%function
 b__MA7naqebvq9FvatyrgbaVAF_18CebprffVasbFreivprRRP1Ri:
 nop
@@ -7043,7 +7043,7 @@
 b__MAX7naqebvq6Cnepry10ernqBowrpgRo:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_15CrezvffvbaPnpur5RagelRR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_15CrezvffvbaPnpur5RagelRR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_15CrezvffvbaPnpur5RagelRR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_15CrezvffvbaPnpur5RagelRR10qb_qrfgeblRCiz:
 nop
@@ -7058,7 +7058,7 @@
 b__MGGA7naqebvq15OaFuryyPnyyonpxR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVvAF_9nyybpngbeVvRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR25__rzcynpr_havdhr_xrl_netfVF3_WEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXF3_RRRAFW_VWRRRRRRAF_4cnveVAF_15__gerr_vgrengbeVF8_CAF_11__gerr_abqrVF8_CiRRyRRoRREXG_QcBG0_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVvAF_9nyybpngbeVvRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR25__rzcynpr_havdhr_xrl_netfVF3_WEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXF3_RRRAFW_VWRRRRRRAF_4cnveVAF_15__gerr_vgrengbeVF8_CAF_11__gerr_abqrVF8_CiRRyRRoRREXG_QcBG0_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVvAF_9nyybpngbeVvRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR25__rzcynpr_havdhr_xrl_netfVF3_WEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXF3_RRRAFW_VWRRRRRRAF_4cnveVAF_15__gerr_vgrengbeVF8_CAF_11__gerr_abqrVF8_CiRRyRRoRREXG_QcBG0_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVvAF_9nyybpngbeVvRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR25__rzcynpr_havdhr_xrl_netfVF3_WEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXF3_RRRAFW_VWRRRRRRAF_4cnveVAF_15__gerr_vgrengbeVF8_CAF_11__gerr_abqrVF8_CiRRyRRoRREXG_QcBG0_:
 nop
@@ -7118,7 +7118,7 @@
 b__MA7naqebvq19VCebprffVasbFreivpr12qrsnhyg_vzcyR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_8Fgevat16RR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_8Fgevat16RR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_8Fgevat16RR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_8Fgevat16RR15qb_zbir_sbejneqRCiCXiz:
 nop
@@ -7133,7 +7133,7 @@
 b__MA7naqebvq14VCPGuernqFgngr22cebprffCbfgJevgrQrersfRi:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVyAF_9nyybpngbeVyRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR14__renfr_havdhrVF3_RRzEXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVyAF_9nyybpngbeVyRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR14__renfr_havdhrVF3_RRzEXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVyAF_9nyybpngbeVyRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR14__renfr_havdhrVF3_RRzEXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVyAF_9nyybpngbeVyRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR14__renfr_havdhrVF3_RRzEXG_:
 nop
@@ -7153,7 +7153,7 @@
 b_trgOvaqreXrearyErsreraprf:
 nop
 .text
-.globl b__MA7naqebvq6Cnepry22hafnsrJevgrGlcrqIrpgbeVqqRRvEXAFg3__16irpgbeVG_AF2_9nyybpngbeVF4_RRRRZF0_SvG0_R
+.weak b__MA7naqebvq6Cnepry22hafnsrJevgrGlcrqIrpgbeVqqRRvEXAFg3__16irpgbeVG_AF2_9nyybpngbeVF4_RRRRZF0_SvG0_R
 .type b__MA7naqebvq6Cnepry22hafnsrJevgrGlcrqIrpgbeVqqRRvEXAFg3__16irpgbeVG_AF2_9nyybpngbeVF4_RRRRZF0_SvG0_R,%function
 b__MA7naqebvq6Cnepry22hafnsrJevgrGlcrqIrpgbeVqqRRvEXAFg3__16irpgbeVG_AF2_9nyybpngbeVF4_RRRRZF0_SvG0_R:
 nop
@@ -7163,7 +7163,7 @@
 b__MGua8_A7naqebvq8OcZrzbelQ0Ri:
 nop
 .data
-.globl b__MGIA7naqebvq16OcNccBcfPnyyonpxR
+.weak b__MGIA7naqebvq16OcNccBcfPnyyonpxR
 .type b__MGIA7naqebvq16OcNccBcfPnyyonpxR,%object
 b__MGIA7naqebvq16OcNccBcfPnyyonpxR:
 .space __SIZEOF_POINTER__
@@ -7173,7 +7173,7 @@
 b__MGPA7naqebvq22OaZrqvnErfbheprZbavgbeR0_AF_11OaVagresnprVAF_21VZrqvnErfbheprZbavgbeRRR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGPA7naqebvq22OcCrezvffvbaPbagebyyreR8_AF_9OcErsOnfrR
+.weak b__MGPA7naqebvq22OcCrezvffvbaPbagebyyreR8_AF_9OcErsOnfrR
 .type b__MGPA7naqebvq22OcCrezvffvbaPbagebyyreR8_AF_9OcErsOnfrR,%object
 b__MGPA7naqebvq22OcCrezvffvbaPbagebyyreR8_AF_9OcErsOnfrR:
 .space __SIZEOF_POINTER__
@@ -7198,7 +7198,7 @@
 b__MA7naqebvq14VCPGuernqFgngr15vapFgebatUnaqyrRvCAF_8OcOvaqreR:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvwRRAF_22__habeqrerq_znc_unfureVvF2_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF2_AF_8rdhny_gbVvRRYo1RRRAF_9nyybpngbeVF2_RRR14__renfr_havdhrVvRRzEXG_
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvwRRAF_22__habeqrerq_znc_unfureVvF2_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF2_AF_8rdhny_gbVvRRYo1RRRAF_9nyybpngbeVF2_RRR14__renfr_havdhrVvRRzEXG_
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvwRRAF_22__habeqrerq_znc_unfureVvF2_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF2_AF_8rdhny_gbVvRRYo1RRRAF_9nyybpngbeVF2_RRR14__renfr_havdhrVvRRzEXG_,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvwRRAF_22__habeqrerq_znc_unfureVvF2_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF2_AF_8rdhny_gbVvRRYo1RRRAF_9nyybpngbeVF2_RRR14__renfr_havdhrVvRRzEXG_:
 nop
@@ -7228,12 +7228,12 @@
 b__MAX7naqebvq7VZrzbel22trgVagresnprQrfpevcgbeRi:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVoAF_9nyybpngbeVoRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR15__rzcynpr_zhygvVWEXAF_4cnveVXF3_F7_RRRRRAF_15__gerr_vgrengbeVF8_CAF_11__gerr_abqrVF8_CiRRyRRQcBG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVoAF_9nyybpngbeVoRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR15__rzcynpr_zhygvVWEXAF_4cnveVXF3_F7_RRRRRAF_15__gerr_vgrengbeVF8_CAF_11__gerr_abqrVF8_CiRRyRRQcBG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVoAF_9nyybpngbeVoRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR15__rzcynpr_zhygvVWEXAF_4cnveVXF3_F7_RRRRRAF_15__gerr_vgrengbeVF8_CAF_11__gerr_abqrVF8_CiRRyRRQcBG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVoAF_9nyybpngbeVoRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR15__rzcynpr_zhygvVWEXAF_4cnveVXF3_F7_RRRRRAF_15__gerr_vgrengbeVF8_CAF_11__gerr_abqrVF8_CiRRyRRQcBG_:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RqRRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR4svaqVF3_RRAF_15__gerr_vgrengbeVF4_CAF_11__gerr_abqrVF4_CiRRyRREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RqRRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR4svaqVF3_RRAF_15__gerr_vgrengbeVF4_CAF_11__gerr_abqrVF4_CiRRyRREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RqRRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR4svaqVF3_RRAF_15__gerr_vgrengbeVF4_CAF_11__gerr_abqrVF4_CiRRyRREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RqRRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR4svaqVF3_RRAF_15__gerr_vgrengbeVF4_CAF_11__gerr_abqrVF4_CiRRyRREXG_:
 nop
@@ -7253,17 +7253,17 @@
 b__MGi0_a32_A7naqebvq14ZrzbelUrncOnfrQ1Ri:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RvRRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR25__rzcynpr_havdhr_xrl_netfVF3_WEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXF3_RRRAFT_VWRRRRRRAF_4cnveVAF_15__gerr_vgrengbeVF4_CAF_11__gerr_abqrVF4_CiRRyRRoRREXG_QcBG0_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RvRRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR25__rzcynpr_havdhr_xrl_netfVF3_WEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXF3_RRRAFT_VWRRRRRRAF_4cnveVAF_15__gerr_vgrengbeVF4_CAF_11__gerr_abqrVF4_CiRRyRRoRREXG_QcBG0_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RvRRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR25__rzcynpr_havdhr_xrl_netfVF3_WEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXF3_RRRAFT_VWRRRRRRAF_4cnveVAF_15__gerr_vgrengbeVF4_CAF_11__gerr_abqrVF4_CiRRyRRoRREXG_QcBG0_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RvRRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR25__rzcynpr_havdhr_xrl_netfVF3_WEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXF3_RRRAFT_VWRRRRRRAF_4cnveVAF_15__gerr_vgrengbeVF4_CAF_11__gerr_abqrVF4_CiRRyRRoRREXG_QcBG0_:
 nop
 .text
-.globl b__MA7naqebvq2fcVAF_7VOvaqreRRQ2Ri
+.weak b__MA7naqebvq2fcVAF_7VOvaqreRRQ2Ri
 .type b__MA7naqebvq2fcVAF_7VOvaqreRRQ2Ri,%function
 b__MA7naqebvq2fcVAF_7VOvaqreRRQ2Ri:
 nop
 .data
-.globl b__MGPA7naqebvq14OcOnggrelFgngfR0_AF_11OcVagresnprVAF_13VOnggrelFgngfRRR
+.weak b__MGPA7naqebvq14OcOnggrelFgngfR0_AF_11OcVagresnprVAF_13VOnggrelFgngfRRR
 .type b__MGPA7naqebvq14OcOnggrelFgngfR0_AF_11OcVagresnprVAF_13VOnggrelFgngfRRR,%object
 b__MGPA7naqebvq14OcOnggrelFgngfR0_AF_11OcVagresnprVAF_13VOnggrelFgngfRRR:
 .space __SIZEOF_POINTER__
@@ -7278,7 +7278,7 @@
 b__MGPA7naqebvq14ZrzbelUrncOnfrR64_AF_11VZrzbelUrncR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAXFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVqAF_9nyybpngbeVqRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR4svaqVF3_RRAF_21__gerr_pbafg_vgrengbeVF8_CAF_11__gerr_abqrVF8_CiRRyRREXG_
+.weak b__MAXFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVqAF_9nyybpngbeVqRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR4svaqVF3_RRAF_21__gerr_pbafg_vgrengbeVF8_CAF_11__gerr_abqrVF8_CiRRyRREXG_
 .type b__MAXFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVqAF_9nyybpngbeVqRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR4svaqVF3_RRAF_21__gerr_pbafg_vgrengbeVF8_CAF_11__gerr_abqrVF8_CiRRyRREXG_,%function
 b__MAXFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVqAF_9nyybpngbeVqRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR4svaqVF3_RRAF_21__gerr_pbafg_vgrengbeVF8_CAF_11__gerr_abqrVF8_CiRRyRREXG_:
 nop
@@ -7288,7 +7288,7 @@
 b__MGIA7naqebvq2bf17OcFreivprPnyyonpxR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIA7naqebvq14OcOnggrelFgngfR
+.weak b__MGIA7naqebvq14OcOnggrelFgngfR
 .type b__MGIA7naqebvq14OcOnggrelFgngfR,%object
 b__MGIA7naqebvq14OcOnggrelFgngfR:
 .space __SIZEOF_POINTER__
@@ -7308,7 +7308,7 @@
 b__MA7naqebvq9OcErsOnfrQ2Ri:
 nop
 .data
-.globl b__MGIA7naqebvq15OcFuryyPnyyonpxR
+.weak b__MGIA7naqebvq15OcFuryyPnyyonpxR
 .type b__MGIA7naqebvq15OcFuryyPnyyonpxR,%object
 b__MGIA7naqebvq15OcFuryyPnyyonpxR:
 .space __SIZEOF_POINTER__
@@ -7318,7 +7318,7 @@
 b__MAX7naqebvq6Cnepry16ernqFgebatOvaqreRCAF_2fcVAF_7VOvaqreRRR:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF2_2bf17CrefvfgnoyrOhaqyrRRRAF_19__znc_inyhr_pbzcnerVF3_F6_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF6_RRR15__rzcynpr_zhygvVWEXAF_4cnveVXF3_F5_RRRRRAF_15__gerr_vgrengbeVF6_CAF_11__gerr_abqrVF6_CiRRyRRQcBG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF2_2bf17CrefvfgnoyrOhaqyrRRRAF_19__znc_inyhr_pbzcnerVF3_F6_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF6_RRR15__rzcynpr_zhygvVWEXAF_4cnveVXF3_F5_RRRRRAF_15__gerr_vgrengbeVF6_CAF_11__gerr_abqrVF6_CiRRyRRQcBG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF2_2bf17CrefvfgnoyrOhaqyrRRRAF_19__znc_inyhr_pbzcnerVF3_F6_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF6_RRR15__rzcynpr_zhygvVWEXAF_4cnveVXF3_F5_RRRRRAF_15__gerr_vgrengbeVF6_CAF_11__gerr_abqrVF6_CiRRyRRQcBG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF2_2bf17CrefvfgnoyrOhaqyrRRRAF_19__znc_inyhr_pbzcnerVF3_F6_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF6_RRR15__rzcynpr_zhygvVWEXAF_4cnveVXF3_F5_RRRRRAF_15__gerr_vgrengbeVF6_CAF_11__gerr_abqrVF6_CiRRyRRQcBG_:
 nop
@@ -7328,7 +7328,7 @@
 b__MGIA7naqebvq2bf17OaFreivprPnyyonpxR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGPA7naqebvq16OcNccBcfPnyyonpxR0_AF_10VVagresnprR
+.weak b__MGPA7naqebvq16OcNccBcfPnyyonpxR0_AF_10VVagresnprR
 .type b__MGPA7naqebvq16OcNccBcfPnyyonpxR0_AF_10VVagresnprR,%object
 b__MGPA7naqebvq16OcNccBcfPnyyonpxR0_AF_10VVagresnprR:
 .space __SIZEOF_POINTER__
@@ -7353,7 +7353,7 @@
 b__MA7naqebvq12CebprffFgngr10frysBeAhyyRi:
 nop
 .text
-.globl b__MA7naqebvq2fcVAF_7OOvaqreRRQ2Ri
+.weak b__MA7naqebvq2fcVAF_7OOvaqreRRQ2Ri
 .type b__MA7naqebvq2fcVAF_7OOvaqreRRQ2Ri,%function
 b__MA7naqebvq2fcVAF_7OOvaqreRRQ2Ri:
 nop
@@ -7373,7 +7373,7 @@
 b__MAX7naqebvq6ovaqre6Fgnghf13jevgrGbCnepryRCAF_6CnepryR:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVyAF_9nyybpngbeVyRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR12__svaq_rdhnyVF3_RRECAF_16__gerr_abqr_onfrVCiRRAF_21__gerr_pbafg_vgrengbeVF8_CAF_11__gerr_abqrVF8_FU_RRyRRECAF_15__gerr_raq_abqrVFW_RRFX_EXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVyAF_9nyybpngbeVyRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR12__svaq_rdhnyVF3_RRECAF_16__gerr_abqr_onfrVCiRRAF_21__gerr_pbafg_vgrengbeVF8_CAF_11__gerr_abqrVF8_FU_RRyRRECAF_15__gerr_raq_abqrVFW_RRFX_EXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVyAF_9nyybpngbeVyRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR12__svaq_rdhnyVF3_RRECAF_16__gerr_abqr_onfrVCiRRAF_21__gerr_pbafg_vgrengbeVF8_CAF_11__gerr_abqrVF8_FU_RRyRRECAF_15__gerr_raq_abqrVFW_RRFX_EXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVyAF_9nyybpngbeVyRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR12__svaq_rdhnyVF3_RRECAF_16__gerr_abqr_onfrVCiRRAF_21__gerr_pbafg_vgrengbeVF8_CAF_11__gerr_abqrVF8_FU_RRyRRECAF_15__gerr_raq_abqrVFW_RRFX_EXG_:
 nop
@@ -7403,7 +7403,7 @@
 b__MA7naqebvq16VNpgvivglZnantre14frgQrsnhygVzcyRAFg3__110havdhr_cgeVF0_AF1_14qrsnhyg_qryrgrVF0_RRRR:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_15CrezvffvbaPnpur5RagelRR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_15CrezvffvbaPnpur5RagelRR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_15CrezvffvbaPnpur5RagelRR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_15CrezvffvbaPnpur5RagelRR15qb_zbir_sbejneqRCiCXiz:
 nop
@@ -7423,7 +7423,7 @@
 b__MA7naqebvq11VZrzbelUrncP2Ri:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVCAF_7OOvaqreRR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVCAF_7OOvaqreRR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVCAF_7OOvaqreRR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVCAF_7OOvaqreRR16qb_zbir_onpxjneqRCiCXiz:
 nop
@@ -7443,7 +7443,7 @@
 b__MAX7naqebvq6Cnepry18ernqFgevat16IrpgbeRCAFg3__16irpgbeVAF_8Fgevat16RAF1_9nyybpngbeVF3_RRRR:
 nop
 .data
-.globl b__MGIA7naqebvq17OcNpgvivglZnantreR
+.weak b__MGIA7naqebvq17OcNpgvivglZnantreR
 .type b__MGIA7naqebvq17OcNpgvivglZnantreR,%object
 b__MGIA7naqebvq17OcNpgvivglZnantreR:
 .space __SIZEOF_POINTER__
@@ -7453,7 +7453,7 @@
 b__MA7naqebvq21VCrezvffvbaPbagebyyre14frgQrsnhygVzcyRAFg3__110havdhr_cgeVF0_AF1_14qrsnhyg_qryrgrVF0_RRRR:
 nop
 .data
-.globl b__MGIA7naqebvq6IrpgbeVAF_8OcOvaqre8BovghnelRRR
+.weak b__MGIA7naqebvq6IrpgbeVAF_8OcOvaqre8BovghnelRRR
 .type b__MGIA7naqebvq6IrpgbeVAF_8OcOvaqre8BovghnelRRR,%object
 b__MGIA7naqebvq6IrpgbeVAF_8OcOvaqre8BovghnelRRR:
 .space __SIZEOF_POINTER__
@@ -7468,7 +7468,7 @@
 b__MA7naqebvq16VNpgvivglZnantreQ1Ri:
 nop
 .text
-.globl b__MA7naqebvq11OaVagresnprVAF_15VNccBcfPnyyonpxRR10baNfOvaqreRi
+.weak b__MA7naqebvq11OaVagresnprVAF_15VNccBcfPnyyonpxRR10baNfOvaqreRi
 .type b__MA7naqebvq11OaVagresnprVAF_15VNccBcfPnyyonpxRR10baNfOvaqreRi,%function
 b__MA7naqebvq11OaVagresnprVAF_15VNccBcfPnyyonpxRR10baNfOvaqreRi:
 nop
@@ -7503,7 +7503,7 @@
 b__MA7naqebvq6Cnepry13synggraOvaqreREXAF_2fcVAF_7VOvaqreRRR:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RoRRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR12__svaq_rdhnyVF3_RRECAF_16__gerr_abqr_onfrVCiRRECAF_15__gerr_raq_abqrVFT_RREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RoRRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR12__svaq_rdhnyVF3_RRECAF_16__gerr_abqr_onfrVCiRRECAF_15__gerr_raq_abqrVFT_RREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RoRRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR12__svaq_rdhnyVF3_RRECAF_16__gerr_abqr_onfrVCiRRECAF_15__gerr_raq_abqrVFT_RREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RoRRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR12__svaq_rdhnyVF3_RRECAF_16__gerr_abqr_onfrVCiRRECAF_15__gerr_raq_abqrVFT_RREXG_:
 nop
@@ -7538,7 +7538,7 @@
 b__MA7naqebvq7pbagrag2cz22OcCnpxntrZnantreAngvir29trgGnetrgFqxIrefvbaSbeCnpxntrREXAF_8Fgevat16RCv:
 nop
 .data
-.globl b__MGPA7naqebvq16OcNccBcfPnyyonpxR0_AF_11OcVagresnprVAF_15VNccBcfPnyyonpxRRR
+.weak b__MGPA7naqebvq16OcNccBcfPnyyonpxR0_AF_11OcVagresnprVAF_15VNccBcfPnyyonpxRRR
 .type b__MGPA7naqebvq16OcNccBcfPnyyonpxR0_AF_11OcVagresnprVAF_15VNccBcfPnyyonpxRRR,%object
 b__MGPA7naqebvq16OcNccBcfPnyyonpxR0_AF_11OcVagresnprVAF_15VNccBcfPnyyonpxRRR:
 .space __SIZEOF_POINTER__
@@ -7563,7 +7563,7 @@
 b__MA7naqebvq14ZrzbelUrncOnfrQ0Ri:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVoAF_9nyybpngbeVoRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR14__nffvta_zhygvVAF_21__gerr_pbafg_vgrengbeVF8_CAF_11__gerr_abqrVF8_CiRRyRRRRiG_FZ_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVoAF_9nyybpngbeVoRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR14__nffvta_zhygvVAF_21__gerr_pbafg_vgrengbeVF8_CAF_11__gerr_abqrVF8_CiRRyRRRRiG_FZ_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVoAF_9nyybpngbeVoRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR14__nffvta_zhygvVAF_21__gerr_pbafg_vgrengbeVF8_CAF_11__gerr_abqrVF8_CiRRyRRRRiG_FZ_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVoAF_9nyybpngbeVoRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR14__nffvta_zhygvVAF_21__gerr_pbafg_vgrengbeVF8_CAF_11__gerr_abqrVF8_CiRRyRRRRiG_FZ_:
 nop
@@ -7573,7 +7573,7 @@
 b__MA7naqebvq13NccBcfZnantreP2Ri:
 nop
 .data
-.globl b__MGPA7naqebvq15OcNccBcfFreivprR8_AF_9OcErsOnfrR
+.weak b__MGPA7naqebvq15OcNccBcfFreivprR8_AF_9OcErsOnfrR
 .type b__MGPA7naqebvq15OcNccBcfFreivprR8_AF_9OcErsOnfrR,%object
 b__MGPA7naqebvq15OcNccBcfFreivprR8_AF_9OcErsOnfrR:
 .space __SIZEOF_POINTER__
@@ -7593,7 +7593,7 @@
 b__MAX7naqebvq2bf17CrefvfgnoyrOhaqyr10trgObbyrnaREXAF_8Fgevat16RCo:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVyAF_9nyybpngbeVyRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR7qrfgeblRCAF_11__gerr_abqrVF8_CiRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVyAF_9nyybpngbeVyRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR7qrfgeblRCAF_11__gerr_abqrVF8_CiRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVyAF_9nyybpngbeVyRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR7qrfgeblRCAF_11__gerr_abqrVF8_CiRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVyAF_9nyybpngbeVyRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR7qrfgeblRCAF_11__gerr_abqrVF8_CiRR:
 nop
@@ -7613,7 +7613,7 @@
 b__MGPA7naqebvq14ZrzbelUrncOnfrR64_AF_11OaVagresnprVAF_11VZrzbelUrncRRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVCXiAF_8OcOvaqre13BowrpgZnantre7ragel_gRRRR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVCXiAF_8OcOvaqre13BowrpgZnantre7ragel_gRRRR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVCXiAF_8OcOvaqre13BowrpgZnantre7ragel_gRRRR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVCXiAF_8OcOvaqre13BowrpgZnantre7ragel_gRRRR10qb_qrfgeblRCiz:
 nop
@@ -7698,12 +7698,12 @@
 b__MGi0_a24_A7naqebvq15VNccBcfPnyyonpxQ1Ri:
 nop
 .data
-.globl b__MGPA7naqebvq22OcZrqvnErfbheprZbavgbeR0_AF_21VZrqvnErfbheprZbavgbeR
+.weak b__MGPA7naqebvq22OcZrqvnErfbheprZbavgbeR0_AF_21VZrqvnErfbheprZbavgbeR
 .type b__MGPA7naqebvq22OcZrqvnErfbheprZbavgbeR0_AF_21VZrqvnErfbheprZbavgbeR,%object
 b__MGPA7naqebvq22OcZrqvnErfbheprZbavgbeR0_AF_21VZrqvnErfbheprZbavgbeR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGPA7naqebvq22OcCrezvffvbaPbagebyyreR0_AF_21VCrezvffvbaPbagebyyreR
+.weak b__MGPA7naqebvq22OcCrezvffvbaPbagebyyreR0_AF_21VCrezvffvbaPbagebyyreR
 .type b__MGPA7naqebvq22OcCrezvffvbaPbagebyyreR0_AF_21VCrezvffvbaPbagebyyreR,%object
 b__MGPA7naqebvq22OcCrezvffvbaPbagebyyreR0_AF_21VCrezvffvbaPbagebyyreR:
 .space __SIZEOF_POINTER__
@@ -7768,7 +7768,7 @@
 b__MA7naqebvq10ZrzbelOnfrQ2Ri:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF2_2bf17CrefvfgnoyrOhaqyrRRRAF_19__znc_inyhr_pbzcnerVF3_F6_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF6_RRR30__rzcynpr_uvag_havdhr_xrl_netfVF3_WEXAF_4cnveVXF3_F5_RRRRRAF_15__gerr_vgrengbeVF6_CAF_11__gerr_abqrVF6_CiRRyRRAF_21__gerr_pbafg_vgrengbeVF6_FB_yRREXG_QcBG0_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF2_2bf17CrefvfgnoyrOhaqyrRRRAF_19__znc_inyhr_pbzcnerVF3_F6_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF6_RRR30__rzcynpr_uvag_havdhr_xrl_netfVF3_WEXAF_4cnveVXF3_F5_RRRRRAF_15__gerr_vgrengbeVF6_CAF_11__gerr_abqrVF6_CiRRyRRAF_21__gerr_pbafg_vgrengbeVF6_FB_yRREXG_QcBG0_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF2_2bf17CrefvfgnoyrOhaqyrRRRAF_19__znc_inyhr_pbzcnerVF3_F6_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF6_RRR30__rzcynpr_uvag_havdhr_xrl_netfVF3_WEXAF_4cnveVXF3_F5_RRRRRAF_15__gerr_vgrengbeVF6_CAF_11__gerr_abqrVF6_CiRRyRRAF_21__gerr_pbafg_vgrengbeVF6_FB_yRREXG_QcBG0_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF2_2bf17CrefvfgnoyrOhaqyrRRRAF_19__znc_inyhr_pbzcnerVF3_F6_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF6_RRR30__rzcynpr_uvag_havdhr_xrl_netfVF3_WEXAF_4cnveVXF3_F5_RRRRRAF_15__gerr_vgrengbeVF6_CAF_11__gerr_abqrVF6_CiRRyRRAF_21__gerr_pbafg_vgrengbeVF6_FB_yRREXG_QcBG0_:
 nop
@@ -7778,7 +7778,7 @@
 b__MAX7naqebvq12VHvqBofreire22trgVagresnprQrfpevcgbeRi:
 nop
 .text
-.globl b__MA7naqebvq9FvatyrgbaVAF_15CrezvffvbaPnpurRRP2Ri
+.weak b__MA7naqebvq9FvatyrgbaVAF_15CrezvffvbaPnpurRRP2Ri
 .type b__MA7naqebvq9FvatyrgbaVAF_15CrezvffvbaPnpurRRP2Ri,%function
 b__MA7naqebvq9FvatyrgbaVAF_15CrezvffvbaPnpurRRP2Ri:
 nop
@@ -7788,7 +7788,7 @@
 b__MGIA7naqebvq8OcZrzbelR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq6Cnepry22hafnsrJevgrGlcrqIrpgbeVyyRRvEXAFg3__16irpgbeVG_AF2_9nyybpngbeVF4_RRRRZF0_SvG0_R
+.weak b__MA7naqebvq6Cnepry22hafnsrJevgrGlcrqIrpgbeVyyRRvEXAFg3__16irpgbeVG_AF2_9nyybpngbeVF4_RRRRZF0_SvG0_R
 .type b__MA7naqebvq6Cnepry22hafnsrJevgrGlcrqIrpgbeVyyRRvEXAFg3__16irpgbeVG_AF2_9nyybpngbeVF4_RRRRZF0_SvG0_R,%function
 b__MA7naqebvq6Cnepry22hafnsrJevgrGlcrqIrpgbeVyyRRvEXAFg3__16irpgbeVG_AF2_9nyybpngbeVF4_RRRRZF0_SvG0_R:
 nop
@@ -7798,7 +7798,7 @@
 b__MAX7naqebvq2bf20CneprySvyrQrfpevcgbe13jevgrGbCnepryRCAF_6CnepryR:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVoAF_9nyybpngbeVoRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR4svaqVF3_RRAF_15__gerr_vgrengbeVF8_CAF_11__gerr_abqrVF8_CiRRyRREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVoAF_9nyybpngbeVoRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR4svaqVF3_RRAF_15__gerr_vgrengbeVF8_CAF_11__gerr_abqrVF8_CiRRyRREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVoAF_9nyybpngbeVoRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR4svaqVF3_RRAF_15__gerr_vgrengbeVF8_CAF_11__gerr_abqrVF8_CiRRyRREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVoAF_9nyybpngbeVoRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR4svaqVF3_RRAF_15__gerr_vgrengbeVF8_CAF_11__gerr_abqrVF8_CiRRyRREXG_:
 nop
@@ -7838,7 +7838,7 @@
 b__MGi0_a24_A7naqebvq14ZrzbelUrncOnfrQ0Ri:
 nop
 .text
-.globl b__MAX7naqebvq6Cnepry16erfreirBhgIrpgbeVnRRvCAFg3__110havdhr_cgeVAF2_6irpgbeVG_AF2_9nyybpngbeVF5_RRRRAF2_14qrsnhyg_qryrgrVF8_RRRRCz
+.weak b__MAX7naqebvq6Cnepry16erfreirBhgIrpgbeVnRRvCAFg3__110havdhr_cgeVAF2_6irpgbeVG_AF2_9nyybpngbeVF5_RRRRAF2_14qrsnhyg_qryrgrVF8_RRRRCz
 .type b__MAX7naqebvq6Cnepry16erfreirBhgIrpgbeVnRRvCAFg3__110havdhr_cgeVAF2_6irpgbeVG_AF2_9nyybpngbeVF5_RRRRAF2_14qrsnhyg_qryrgrVF8_RRRRCz,%function
 b__MAX7naqebvq6Cnepry16erfreirBhgIrpgbeVnRRvCAFg3__110havdhr_cgeVAF2_6irpgbeVG_AF2_9nyybpngbeVF5_RRRRAF2_14qrsnhyg_qryrgrVF8_RRRRCz:
 nop
@@ -7868,12 +7868,12 @@
 b__MAX7naqebvq14VCPGuernqFgngr13trgPnyyvatHvqRi:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_2fcVAF_18OhssrerqGrkgBhgchg11OhssreFgngrRRRR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq6IrpgbeVAF_2fcVAF_18OhssrerqGrkgBhgchg11OhssreFgngrRRRR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq6IrpgbeVAF_2fcVAF_18OhssrerqGrkgBhgchg11OhssreFgngrRRRR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq6IrpgbeVAF_2fcVAF_18OhssrerqGrkgBhgchg11OhssreFgngrRRRR10qb_qrfgeblRCiz:
 nop
 .text
-.globl b__MA7naqebvq11OaVagresnprVAF_11VZrzbelUrncRR10baNfOvaqreRi
+.weak b__MA7naqebvq11OaVagresnprVAF_11VZrzbelUrncRR10baNfOvaqreRi
 .type b__MA7naqebvq11OaVagresnprVAF_11VZrzbelUrncRR10baNfOvaqreRi,%function
 b__MA7naqebvq11OaVagresnprVAF_11VZrzbelUrncRR10baNfOvaqreRi:
 nop
@@ -7893,12 +7893,12 @@
 b__MGi0_a24_A7naqebvq11VZrzbelUrncQ1Ri:
 nop
 .text
-.globl b__MAXFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RF3_RRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR4svaqVF3_RRAF_21__gerr_pbafg_vgrengbeVF4_CAF_11__gerr_abqrVF4_CiRRyRREXG_
+.weak b__MAXFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RF3_RRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR4svaqVF3_RRAF_21__gerr_pbafg_vgrengbeVF4_CAF_11__gerr_abqrVF4_CiRRyRREXG_
 .type b__MAXFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RF3_RRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR4svaqVF3_RRAF_21__gerr_pbafg_vgrengbeVF4_CAF_11__gerr_abqrVF4_CiRRyRREXG_,%function
 b__MAXFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RF3_RRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR4svaqVF3_RRAF_21__gerr_pbafg_vgrengbeVF4_CAF_11__gerr_abqrVF4_CiRRyRREXG_:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVqAF_9nyybpngbeVqRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR4svaqVF3_RRAF_15__gerr_vgrengbeVF8_CAF_11__gerr_abqrVF8_CiRRyRREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVqAF_9nyybpngbeVqRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR4svaqVF3_RRAF_15__gerr_vgrengbeVF8_CAF_11__gerr_abqrVF8_CiRRyRREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVqAF_9nyybpngbeVqRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR4svaqVF3_RRAF_15__gerr_vgrengbeVF8_CAF_11__gerr_abqrVF8_CiRRyRREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RAF_6irpgbeVqAF_9nyybpngbeVqRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR4svaqVF3_RRAF_15__gerr_vgrengbeVF8_CAF_11__gerr_abqrVF8_CiRRyRREXG_:
 nop
@@ -7943,7 +7943,7 @@
 b__MGGA7naqebvq9OcErsOnfrR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvwRRAF_22__habeqrerq_znc_unfureVvF2_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF2_AF_8rdhny_gbVvRRYo1RRRAF_9nyybpngbeVF2_RRR8__erunfuRz
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvwRRAF_22__habeqrerq_znc_unfureVvF2_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF2_AF_8rdhny_gbVvRRYo1RRRAF_9nyybpngbeVF2_RRR8__erunfuRz
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvwRRAF_22__habeqrerq_znc_unfureVvF2_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF2_AF_8rdhny_gbVvRRYo1RRRAF_9nyybpngbeVF2_RRR8__erunfuRz,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvwRRAF_22__habeqrerq_znc_unfureVvF2_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF2_AF_8rdhny_gbVvRRYo1RRRAF_9nyybpngbeVF2_RRR8__erunfuRz:
 nop
diff --git a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_010.S b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_010.S
index e8143a1..ada674d 100644
--- a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_010.S
+++ b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_010.S
@@ -8,7 +8,7 @@
 b__MA7naqebvq8jnxrybpx8JnxrYbpxQ2Ri:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRA7naqebvq2fcVAF8_6flfgrz7fhfcraq4I1_09VJnxrYbpxRRRRRAF_22__habeqrerq_znc_unfureVF7_FS_AF_4unfuVF7_RRYo1RRRAF_21__habeqrerq_znc_rdhnyVF7_FS_AF_8rdhny_gbVF7_RRYo1RRRAF5_VFS_RRR6erunfuRz
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRA7naqebvq2fcVAF8_6flfgrz7fhfcraq4I1_09VJnxrYbpxRRRRRAF_22__habeqrerq_znc_unfureVF7_FS_AF_4unfuVF7_RRYo1RRRAF_21__habeqrerq_znc_rdhnyVF7_FS_AF_8rdhny_gbVF7_RRYo1RRRAF5_VFS_RRR6erunfuRz
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRA7naqebvq2fcVAF8_6flfgrz7fhfcraq4I1_09VJnxrYbpxRRRRRAF_22__habeqrerq_znc_unfureVF7_FS_AF_4unfuVF7_RRYo1RRRAF_21__habeqrerq_znc_rdhnyVF7_FS_AF_8rdhny_gbVF7_RRYo1RRRAF5_VFS_RRR6erunfuRz,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRA7naqebvq2fcVAF8_6flfgrz7fhfcraq4I1_09VJnxrYbpxRRRRRAF_22__habeqrerq_znc_unfureVF7_FS_AF_4unfuVF7_RRYo1RRRAF_21__habeqrerq_znc_rdhnyVF7_FS_AF_8rdhny_gbVF7_RRYo1RRRAF5_VFS_RRR6erunfuRz:
 nop
@@ -48,17 +48,17 @@
 b__MA7naqebvq8jnxrybpx8JnxrYbpx12JnxrYbpxVzcyQ2Ri:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRA7naqebvq2fcVAF8_6flfgrz7fhfcraq4I1_09VJnxrYbpxRRRRRAF_22__habeqrerq_znc_unfureVF7_FS_AF_4unfuVF7_RRYo1RRRAF_21__habeqrerq_znc_rdhnyVF7_FS_AF_8rdhny_gbVF7_RRYo1RRRAF5_VFS_RRR8__erunfuRz
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRA7naqebvq2fcVAF8_6flfgrz7fhfcraq4I1_09VJnxrYbpxRRRRRAF_22__habeqrerq_znc_unfureVF7_FS_AF_4unfuVF7_RRYo1RRRAF_21__habeqrerq_znc_rdhnyVF7_FS_AF_8rdhny_gbVF7_RRYo1RRRAF5_VFS_RRR8__erunfuRz
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRA7naqebvq2fcVAF8_6flfgrz7fhfcraq4I1_09VJnxrYbpxRRRRRAF_22__habeqrerq_znc_unfureVF7_FS_AF_4unfuVF7_RRYo1RRRAF_21__habeqrerq_znc_rdhnyVF7_FS_AF_8rdhny_gbVF7_RRYo1RRRAF5_VFS_RRR8__erunfuRz,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRA7naqebvq2fcVAF8_6flfgrz7fhfcraq4I1_09VJnxrYbpxRRRRRAF_22__habeqrerq_znc_unfureVF7_FS_AF_4unfuVF7_RRYo1RRRAF_21__habeqrerq_znc_rdhnyVF7_FS_AF_8rdhny_gbVF7_RRYo1RRRAF5_VFS_RRR8__erunfuRz:
 nop
 .text
-.globl b__MAFg3__124__chg_punenpgre_frdhraprVpAF_11pune_genvgfVpRRRREAF_13onfvp_bfgernzVG_G0_RRF7_CXF4_z
+.weak b__MAFg3__124__chg_punenpgre_frdhraprVpAF_11pune_genvgfVpRRRREAF_13onfvp_bfgernzVG_G0_RRF7_CXF4_z
 .type b__MAFg3__124__chg_punenpgre_frdhraprVpAF_11pune_genvgfVpRRRREAF_13onfvp_bfgernzVG_G0_RRF7_CXF4_z,%function
 b__MAFg3__124__chg_punenpgre_frdhraprVpAF_11pune_genvgfVpRRRREAF_13onfvp_bfgernzVG_G0_RRF7_CXF4_z:
 nop
 .text
-.globl b__MAFg3__1yfVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRREAF_13onfvp_bfgernzVG_G0_RRF9_EXAF_12onfvp_fgevatVF6_F7_G1_RR
+.weak b__MAFg3__1yfVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRREAF_13onfvp_bfgernzVG_G0_RRF9_EXAF_12onfvp_fgevatVF6_F7_G1_RR
 .type b__MAFg3__1yfVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRREAF_13onfvp_bfgernzVG_G0_RRF9_EXAF_12onfvp_fgevatVF6_F7_G1_RR,%function
 b__MAFg3__1yfVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRREAF_13onfvp_bfgernzVG_G0_RRF9_EXAF_12onfvp_fgevatVF6_F7_G1_RR:
 nop
@@ -78,7 +78,7 @@
 b__MA7naqebvq8jnxrybpx8JnxrYbpx12JnxrYbpxVzcyQ1Ri:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRA7naqebvq2fcVAF8_6flfgrz7fhfcraq4I1_09VJnxrYbpxRRRRRAF_22__habeqrerq_znc_unfureVF7_FS_AF_4unfuVF7_RRYo1RRRAF_21__habeqrerq_znc_rdhnyVF7_FS_AF_8rdhny_gbVF7_RRYo1RRRAF5_VFS_RRR25__rzcynpr_havdhr_xrl_netfVF7_WEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWBF7_RRRAFH_VWRRRRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVFS_CiRRRRoRREXG_QcBG0_
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRA7naqebvq2fcVAF8_6flfgrz7fhfcraq4I1_09VJnxrYbpxRRRRRAF_22__habeqrerq_znc_unfureVF7_FS_AF_4unfuVF7_RRYo1RRRAF_21__habeqrerq_znc_rdhnyVF7_FS_AF_8rdhny_gbVF7_RRYo1RRRAF5_VFS_RRR25__rzcynpr_havdhr_xrl_netfVF7_WEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWBF7_RRRAFH_VWRRRRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVFS_CiRRRRoRREXG_QcBG0_
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRA7naqebvq2fcVAF8_6flfgrz7fhfcraq4I1_09VJnxrYbpxRRRRRAF_22__habeqrerq_znc_unfureVF7_FS_AF_4unfuVF7_RRYo1RRRAF_21__habeqrerq_znc_rdhnyVF7_FS_AF_8rdhny_gbVF7_RRYo1RRRAF5_VFS_RRR25__rzcynpr_havdhr_xrl_netfVF7_WEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWBF7_RRRAFH_VWRRRRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVFS_CiRRRRoRREXG_QcBG0_,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRA7naqebvq2fcVAF8_6flfgrz7fhfcraq4I1_09VJnxrYbpxRRRRRAF_22__habeqrerq_znc_unfureVF7_FS_AF_4unfuVF7_RRYo1RRRAF_21__habeqrerq_znc_rdhnyVF7_FS_AF_8rdhny_gbVF7_RRYo1RRRAF5_VFS_RRR25__rzcynpr_havdhr_xrl_netfVF7_WEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWBF7_RRRAFH_VWRRRRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVFS_CiRRRRoRREXG_QcBG0_:
 nop
diff --git a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_011.S b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_011.S
index f0044dc..dd50c6a 100644
--- a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_011.S
+++ b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_011.S
@@ -63,7 +63,7 @@
 b__MGIA8xrlfgber13RapelcgrqQngnR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__1cyVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_12onfvp_fgevatVG_G0_G1_RREXF9_FO_
+.weak b__MAFg3__1cyVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_12onfvp_fgevatVG_G0_G1_RREXF9_FO_
 .type b__MAFg3__1cyVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_12onfvp_fgevatVG_G0_G1_RREXF9_FO_,%function
 b__MAFg3__1cyVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_12onfvp_fgevatVG_G0_G1_RREXF9_FO_:
 nop
@@ -73,7 +73,7 @@
 b__MA8xrlfgber18XrlfgberPyvragVzcy8yvfgXrlfREXAFg3__112onfvp_fgevatVpAF1_11pune_genvgfVpRRAF1_9nyybpngbeVpRRRRCAF1_6irpgbeVF7_AF5_VF7_RRRR:
 nop
 .text
-.globl b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
+.weak b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
 .type b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_,%function
 b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_:
 nop
@@ -103,7 +103,7 @@
 b__MA8xrlfgber18XrlfgberPyvragVzcy12qbrfXrlRkvfgREXAFg3__112onfvp_fgevatVpAF1_11pune_genvgfVpRRAF1_9nyybpngbeVpRRRR:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs8vagreany21neran_qrfgehpg_bowrpgVAF1_29VagreanyZrgnqngnJvguNeranOnfrVAFg3__112onfvp_fgevatVpAF4_11pune_genvgfVpRRAF4_9nyybpngbeVpRRRRAF1_29VagreanyZrgnqngnJvguNeranYvgrRR9PbagnvareRRRiCi
+.weak b__MA6tbbtyr8cebgbohs8vagreany21neran_qrfgehpg_bowrpgVAF1_29VagreanyZrgnqngnJvguNeranOnfrVAFg3__112onfvp_fgevatVpAF4_11pune_genvgfVpRRAF4_9nyybpngbeVpRRRRAF1_29VagreanyZrgnqngnJvguNeranYvgrRR9PbagnvareRRRiCi
 .type b__MA6tbbtyr8cebgbohs8vagreany21neran_qrfgehpg_bowrpgVAF1_29VagreanyZrgnqngnJvguNeranOnfrVAFg3__112onfvp_fgevatVpAF4_11pune_genvgfVpRRAF4_9nyybpngbeVpRRRRAF1_29VagreanyZrgnqngnJvguNeranYvgrRR9PbagnvareRRRiCi,%function
 b__MA6tbbtyr8cebgbohs8vagreany21neran_qrfgehpg_bowrpgVAF1_29VagreanyZrgnqngnJvguNeranOnfrVAFg3__112onfvp_fgevatVpAF4_11pune_genvgfVpRRAF4_9nyybpngbeVpRRRRAF1_29VagreanyZrgnqngnJvguNeranYvgrRR9PbagnvareRRRiCi:
 nop
@@ -168,17 +168,17 @@
 b__MA8xrlfgber18XrlfgberPyvragVzcy6trgXrlREXAFg3__112onfvp_fgevatVpAF1_11pune_genvgfVpRRAF1_9nyybpngbeVpRRRRv:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq8uneqjner9xrlznfgre4I4_012XrlCnenzrgreRAF_9nyybpngbeVF5_RRR8__nccraqRz
+.weak b__MAFg3__16irpgbeVA7naqebvq8uneqjner9xrlznfgre4I4_012XrlCnenzrgreRAF_9nyybpngbeVF5_RRR8__nccraqRz
 .type b__MAFg3__16irpgbeVA7naqebvq8uneqjner9xrlznfgre4I4_012XrlCnenzrgreRAF_9nyybpngbeVF5_RRR8__nccraqRz,%function
 b__MAFg3__16irpgbeVA7naqebvq8uneqjner9xrlznfgre4I4_012XrlCnenzrgreRAF_9nyybpngbeVF5_RRR8__nccraqRz:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq8uneqjner9xrlznfgre4I4_012XrlCnenzrgreRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_
+.weak b__MAFg3__16irpgbeVA7naqebvq8uneqjner9xrlznfgre4I4_012XrlCnenzrgreRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_
 .type b__MAFg3__16irpgbeVA7naqebvq8uneqjner9xrlznfgre4I4_012XrlCnenzrgreRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_,%function
 b__MAFg3__16irpgbeVA7naqebvq8uneqjner9xrlznfgre4I4_012XrlCnenzrgreRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_:
 nop
 .text
-.globl b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
+.weak b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
 .type b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_,%function
 b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_:
 nop
@@ -278,7 +278,7 @@
 b__MA8xrlfgber18XrlfgberPyvragVzcy9rkcbegXrlRA7naqebvq8uneqjner9xrlznfgre4I4_09XrlSbezngREXAFg3__112onfvp_fgevatVpAF6_11pune_genvgfVpRRAF6_9nyybpngbeVpRRRRCFP_:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF6_RRR21__chfu_onpx_fybj_cnguVF6_RRiBG_
+.weak b__MAFg3__16irpgbeVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF6_RRR21__chfu_onpx_fybj_cnguVF6_RRiBG_
 .type b__MAFg3__16irpgbeVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF6_RRR21__chfu_onpx_fybj_cnguVF6_RRiBG_,%function
 b__MAFg3__16irpgbeVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF6_RRR21__chfu_onpx_fybj_cnguVF6_RRiBG_:
 nop
@@ -288,7 +288,7 @@
 b__MAX8xrlfgber13RapelcgrqQngn13FrgPnpurqFvmrRv:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs8vagreany21neran_qrfgehpg_bowrpgVA8xrlfgber13RapelcgrqQngnRRRiCi
+.weak b__MA6tbbtyr8cebgbohs8vagreany21neran_qrfgehpg_bowrpgVA8xrlfgber13RapelcgrqQngnRRRiCi
 .type b__MA6tbbtyr8cebgbohs8vagreany21neran_qrfgehpg_bowrpgVA8xrlfgber13RapelcgrqQngnRRRiCi,%function
 b__MA6tbbtyr8cebgbohs8vagreany21neran_qrfgehpg_bowrpgVA8xrlfgber13RapelcgrqQngnRRRiCi:
 nop
diff --git a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_012.S b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_012.S
index 96e9351..d3b6e6b 100644
--- a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_012.S
+++ b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_012.S
@@ -158,7 +158,7 @@
 b__MA7naqebvq18ZgcSsfPbzcngUnaqyr11erprvirSvyrR14zgc_svyr_enatro:
 nop
 .text
-.globl b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9haqresybjRi
+.weak b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9haqresybjRi
 .type b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9haqresybjRi,%function
 b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9haqresybjRi:
 nop
@@ -288,7 +288,7 @@
 b__MA7naqebvq12ZgcSsfUnaqyr4ernqRCiz:
 nop
 .data
-.globl b__MGGAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
+.weak b__MGGAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
 .type b__MGGAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR,%object
 b__MGGAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR:
 .space __SIZEOF_POINTER__
@@ -368,7 +368,7 @@
 b__MA7naqebvq9ZgcFreireQ1Ri:
 nop
 .text
-.globl b__MAFg3__1yfVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRREAF_13onfvp_bfgernzVG_G0_RRF9_EXAF_12onfvp_fgevatVF6_F7_G1_RR
+.weak b__MAFg3__1yfVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRREAF_13onfvp_bfgernzVG_G0_RRF9_EXAF_12onfvp_fgevatVF6_F7_G1_RR
 .type b__MAFg3__1yfVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRREAF_13onfvp_bfgernzVG_G0_RRF9_EXAF_12onfvp_fgevatVF6_F7_G1_RR,%function
 b__MAFg3__1yfVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRREAF_13onfvp_bfgernzVG_G0_RRF9_EXAF_12onfvp_fgevatVF6_F7_G1_RR:
 nop
@@ -818,7 +818,7 @@
 b__MA7naqebvq11ZgcCebcregl10jevgrInyhrREAF_13ZgcQngnCnpxrgREAF_16ZgcCebcreglInyhrR:
 nop
 .text
-.globl b__MAFg3__124__chg_punenpgre_frdhraprVpAF_11pune_genvgfVpRRRREAF_13onfvp_bfgernzVG_G0_RRF7_CXF4_z
+.weak b__MAFg3__124__chg_punenpgre_frdhraprVpAF_11pune_genvgfVpRRRREAF_13onfvp_bfgernzVG_G0_RRF7_CXF4_z
 .type b__MAFg3__124__chg_punenpgre_frdhraprVpAF_11pune_genvgfVpRRRREAF_13onfvp_bfgernzVG_G0_RRF7_CXF4_z,%function
 b__MAFg3__124__chg_punenpgre_frdhraprVpAF_11pune_genvgfVpRRRREAF_13onfvp_bfgernzVG_G0_RRF7_CXF4_z:
 nop
@@ -963,7 +963,7 @@
 b__MA7naqebvq9ZgcQrivprP1RC10hfo_qrivprvCX23hfo_raqcbvag_qrfpevcgbeF5_F5_:
 nop
 .text
-.globl b__MAFg3__16irpgbeVpAF_9nyybpngbeVpRRR8__nccraqRz
+.weak b__MAFg3__16irpgbeVpAF_9nyybpngbeVpRRR8__nccraqRz
 .type b__MAFg3__16irpgbeVpAF_9nyybpngbeVpRRR8__nccraqRz,%function
 b__MAFg3__16irpgbeVpAF_9nyybpngbeVpRRR8__nccraqRz:
 nop
@@ -1093,7 +1093,7 @@
 b__MA7naqebvq14ZgcRiragCnpxrg11fraqErdhrfgRC11hfo_erdhrfg:
 nop
 .data
-.globl b__MGIAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
+.weak b__MGIAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
 .type b__MGIAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR,%object
 b__MGIAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR:
 .space __SIZEOF_POINTER__
@@ -1358,7 +1358,7 @@
 b__MA7naqebvq18ZgcSsfPbzcngUnaqyr11jevgrUnaqyrRvCXiz:
 nop
 .data
-.globl b__MGIAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
+.weak b__MGIAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
 .type b__MGIAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR,%object
 b__MGIAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR:
 .space __SIZEOF_POINTER__
@@ -1668,7 +1668,7 @@
 b__M9nvb_reebeCX5nvbpo:
 nop
 .text
-.globl b__MAXFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR3fgeRi
+.weak b__MAXFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR3fgeRi
 .type b__MAXFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR3fgeRi,%function
 b__MAXFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR3fgeRi:
 nop
@@ -1703,7 +1703,7 @@
 b__MAX7naqebvq9ZgcCnpxrg16trgPbagnvarePbqrRi:
 nop
 .text
-.globl b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR7frrxbssRkAF_8vbf_onfr7frrxqveRw
+.weak b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR7frrxbssRkAF_8vbf_onfr7frrxqveRw
 .type b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR7frrxbssRkAF_8vbf_onfr7frrxqveRw,%function
 b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR7frrxbssRkAF_8vbf_onfr7frrxqveRw:
 nop
@@ -1753,7 +1753,7 @@
 b__MA7naqebvq9ZgcQrivprP2RC10hfo_qrivprvCX23hfo_raqcbvag_qrfpevcgbeF5_F5_:
 nop
 .text
-.globl b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR8biresybjRv
+.weak b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR8biresybjRv
 .type b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR8biresybjRv,%function
 b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR8biresybjRv:
 nop
@@ -1763,7 +1763,7 @@
 b__MAX7naqebvq10ZgcFgbentr14trgQrfpevcgvbaRi:
 nop
 .text
-.globl b__MAFg3__114__guernq_cebklVAF_5ghcyrVWAF_10havdhr_cgeVAF_15__guernq_fgehpgRAF_14qrsnhyg_qryrgrVF3_RRRRCSiCiRQaRRRRRF7_F7_
+.weak b__MAFg3__114__guernq_cebklVAF_5ghcyrVWAF_10havdhr_cgeVAF_15__guernq_fgehpgRAF_14qrsnhyg_qryrgrVF3_RRRRCSiCiRQaRRRRRF7_F7_
 .type b__MAFg3__114__guernq_cebklVAF_5ghcyrVWAF_10havdhr_cgeVAF_15__guernq_fgehpgRAF_14qrsnhyg_qryrgrVF3_RRRRCSiCiRQaRRRRRF7_F7_,%function
 b__MAFg3__114__guernq_cebklVAF_5ghcyrVWAF_10havdhr_cgeVAF_15__guernq_fgehpgRAF_14qrsnhyg_qryrgrVF3_RRRRCSiCiRQaRRRRRF7_F7_:
 nop
@@ -1773,7 +1773,7 @@
 b__MA7naqebvq13ZgcQngnCnpxrg5jevgrRCAF_10VZgcUnaqyrR:
 nop
 .text
-.globl b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9conpxsnvyRv
+.weak b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9conpxsnvyRv
 .type b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9conpxsnvyRv,%function
 b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9conpxsnvyRv:
 nop
@@ -1823,7 +1823,7 @@
 b__MA7naqebvq14ZgcRiragCnpxrg12ernqErfcbafrRC10hfo_qrivpr:
 nop
 .data
-.globl b__MGPAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_13onfvp_bfgernzVpF2_RR
+.weak b__MGPAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_13onfvp_bfgernzVpF2_RR
 .type b__MGPAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_13onfvp_bfgernzVpF2_RR,%object
 b__MGPAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_13onfvp_bfgernzVpF2_RR:
 .space __SIZEOF_POINTER__
diff --git a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_014.S b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_014.S
index edeff65..e35ddd2 100644
--- a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_014.S
+++ b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_014.S
@@ -8,12 +8,12 @@
 b__MA7naqebvq5SraprP1Rv:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVCX13angvir_unaqyrAF_22TencuvpOhssreNyybpngbe11nyybp_erp_gRRRR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVCX13angvir_unaqyrAF_22TencuvpOhssreNyybpngbe11nyybp_erp_gRRRR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVCX13angvir_unaqyrAF_22TencuvpOhssreNyybpngbe11nyybp_erp_gRRRR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVCX13angvir_unaqyrAF_22TencuvpOhssreNyybpngbe11nyybp_erp_gRRRR8qb_fcyngRCiCXiz:
 nop
 .text
-.globl b__MAFg3__114__fcyvg_ohssreVCAF_8jrnx_cgeVA7naqebvq9SraprGvzrRRRAF_9nyybpngbeVF5_RRR10chfu_sebagRBF5_
+.weak b__MAFg3__114__fcyvg_ohssreVCAF_8jrnx_cgeVA7naqebvq9SraprGvzrRRRAF_9nyybpngbeVF5_RRR10chfu_sebagRBF5_
 .type b__MAFg3__114__fcyvg_ohssreVCAF_8jrnx_cgeVA7naqebvq9SraprGvzrRRRAF_9nyybpngbeVF5_RRR10chfu_sebagRBF5_,%function
 b__MAFg3__114__fcyvg_ohssreVCAF_8jrnx_cgeVA7naqebvq9SraprGvzrRRRAF_9nyybpngbeVF5_RRR10chfu_sebagRBF5_:
 nop
@@ -113,7 +113,7 @@
 b__MAX7naqebvq14Tenyybp3Znccre28inyvqngrOhssreQrfpevcgbeVasbRCAF_8uneqjner8tencuvpf6znccre4I3_07VZnccre20OhssreQrfpevcgbeVasbR:
 nop
 .data
-.globl b__MGIA7naqebvq6IrpgbeVAF_4ErpgRRR
+.weak b__MGIA7naqebvq6IrpgbeVAF_4ErpgRRR
 .type b__MGIA7naqebvq6IrpgbeVAF_4ErpgRRR,%object
 b__MGIA7naqebvq6IrpgbeVAF_4ErpgRRR:
 .space __SIZEOF_POINTER__
@@ -123,7 +123,7 @@
 b__MAX7naqebvq2hv9Genafsbez2flRi:
 nop
 .text
-.globl b__MAFg3__110__shapgvba6__shapVCQbSssRAF_9nyybpngbeVF3_RRSssRR18qrfgebl_qrnyybpngrRi
+.weak b__MAFg3__110__shapgvba6__shapVCQbSssRAF_9nyybpngbeVF3_RRSssRR18qrfgebl_qrnyybpngrRi
 .type b__MAFg3__110__shapgvba6__shapVCQbSssRAF_9nyybpngbeVF3_RRSssRR18qrfgebl_qrnyybpngrRi,%function
 b__MAFg3__110__shapgvba6__shapVCQbSssRAF_9nyybpngbeVF3_RRSssRR18qrfgebl_qrnyybpngrRi:
 nop
@@ -158,12 +158,12 @@
 b__MA7naqebvq2hv9GenafsbezQ2Ri:
 nop
 .text
-.globl b__MAFg3__110__shapgvba6__shapVAF_6__ovaqVESssEXA7naqebvq10PbybeFcnpr18GenafsreCnenzrgrefRRWEXAF_12cynprubyqref4__cuVYv1RRRF7_RRRAF_9nyybpngbeVFS_RRSssRR7qrfgeblRi
+.weak b__MAFg3__110__shapgvba6__shapVAF_6__ovaqVESssEXA7naqebvq10PbybeFcnpr18GenafsreCnenzrgrefRRWEXAF_12cynprubyqref4__cuVYv1RRRF7_RRRAF_9nyybpngbeVFS_RRSssRR7qrfgeblRi
 .type b__MAFg3__110__shapgvba6__shapVAF_6__ovaqVESssEXA7naqebvq10PbybeFcnpr18GenafsreCnenzrgrefRRWEXAF_12cynprubyqref4__cuVYv1RRRF7_RRRAF_9nyybpngbeVFS_RRSssRR7qrfgeblRi,%function
 b__MAFg3__110__shapgvba6__shapVAF_6__ovaqVESssEXA7naqebvq10PbybeFcnpr18GenafsreCnenzrgrefRRWEXAF_12cynprubyqref4__cuVYv1RRRF7_RRRAF_9nyybpngbeVFS_RRSssRR7qrfgeblRi:
 nop
 .data
-.globl b__MGIAFg3__120__funerq_cge_rzcynprVA7naqebvq9SraprGvzrRAF_9nyybpngbeVF2_RRRR
+.weak b__MGIAFg3__120__funerq_cge_rzcynprVA7naqebvq9SraprGvzrRAF_9nyybpngbeVF2_RRRR
 .type b__MGIAFg3__120__funerq_cge_rzcynprVA7naqebvq9SraprGvzrRAF_9nyybpngbeVF2_RRRR,%object
 b__MGIAFg3__120__funerq_cge_rzcynprVA7naqebvq9SraprGvzrRAF_9nyybpngbeVF2_RRRR:
 .space __SIZEOF_POINTER__
@@ -203,7 +203,7 @@
 b__MAX7naqebvq4ErpgygREXF0_:
 nop
 .text
-.globl b__MAFg3__110__shapgvba6__shapVAF_6__ovaqVESsssssssRWEXAF_12cynprubyqref4__cuVYv1RRRsssssRRRAF_9nyybpngbeVFN_RRSssRRpyRBs
+.weak b__MAFg3__110__shapgvba6__shapVAF_6__ovaqVESsssssssRWEXAF_12cynprubyqref4__cuVYv1RRRsssssRRRAF_9nyybpngbeVFN_RRSssRRpyRBs
 .type b__MAFg3__110__shapgvba6__shapVAF_6__ovaqVESsssssssRWEXAF_12cynprubyqref4__cuVYv1RRRsssssRRRAF_9nyybpngbeVFN_RRSssRRpyRBs,%function
 b__MAFg3__110__shapgvba6__shapVAF_6__ovaqVESsssssssRWEXAF_12cynprubyqref4__cuVYv1RRRsssssRRRAF_9nyybpngbeVFN_RRSssRRpyRBs:
 nop
@@ -243,7 +243,7 @@
 b__MAX7naqebvq6Ertvba8fhogenpgREXF0_:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_4ErpgRR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq6IrpgbeVAF_4ErpgRR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq6IrpgbeVAF_4ErpgRR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq6IrpgbeVAF_4ErpgRR12qb_pbafgehpgRCiz:
 nop
@@ -263,7 +263,7 @@
 b__MAX7naqebvq9SraprGvzr11trgFancfubgRi:
 nop
 .text
-.globl b__MAFg3__120__funerq_cge_rzcynprVA7naqebvq9SraprGvzrRAF_9nyybpngbeVF2_RRR21__ba_mreb_funerq_jrnxRi
+.weak b__MAFg3__120__funerq_cge_rzcynprVA7naqebvq9SraprGvzrRAF_9nyybpngbeVF2_RRR21__ba_mreb_funerq_jrnxRi
 .type b__MAFg3__120__funerq_cge_rzcynprVA7naqebvq9SraprGvzrRAF_9nyybpngbeVF2_RRR21__ba_mreb_funerq_jrnxRi,%function
 b__MAFg3__120__funerq_cge_rzcynprVA7naqebvq9SraprGvzrRAF_9nyybpngbeVF2_RRR21__ba_mreb_funerq_jrnxRi:
 nop
@@ -298,7 +298,7 @@
 b__MA7naqebvq4Erpg12VAINYVQ_ERPGR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAXFg3__110__shapgvba6__shapVAF_6__ovaqVESssEXA7naqebvq10PbybeFcnpr18GenafsreCnenzrgrefRRWEXAF_12cynprubyqref4__cuVYv1RRRF7_RRRAF_9nyybpngbeVFS_RRSssRR7__pybarRi
+.weak b__MAXFg3__110__shapgvba6__shapVAF_6__ovaqVESssEXA7naqebvq10PbybeFcnpr18GenafsreCnenzrgrefRRWEXAF_12cynprubyqref4__cuVYv1RRRF7_RRRAF_9nyybpngbeVFS_RRSssRR7__pybarRi
 .type b__MAXFg3__110__shapgvba6__shapVAF_6__ovaqVESssEXA7naqebvq10PbybeFcnpr18GenafsreCnenzrgrefRRWEXAF_12cynprubyqref4__cuVYv1RRRF7_RRRAF_9nyybpngbeVFS_RRSssRR7__pybarRi,%function
 b__MAXFg3__110__shapgvba6__shapVAF_6__ovaqVESssEXA7naqebvq10PbybeFcnpr18GenafsreCnenzrgrefRRWEXAF_12cynprubyqref4__cuVYv1RRRF7_RRRAF_9nyybpngbeVFS_RRSssRR7__pybarRi:
 nop
@@ -323,7 +323,7 @@
 b__MAX7naqebvq5Srapr7synggraRECiEzECvF3_:
 nop
 .text
-.globl b__MAFg3__120__funerq_cge_cbvagreVCA7naqebvq9SraprGvzrRAF_14qrsnhyg_qryrgrVF2_RRAF_9nyybpngbeVF2_RRR21__ba_mreb_funerq_jrnxRi
+.weak b__MAFg3__120__funerq_cge_cbvagreVCA7naqebvq9SraprGvzrRAF_14qrsnhyg_qryrgrVF2_RRAF_9nyybpngbeVF2_RRR21__ba_mreb_funerq_jrnxRi
 .type b__MAFg3__120__funerq_cge_cbvagreVCA7naqebvq9SraprGvzrRAF_14qrsnhyg_qryrgrVF2_RRAF_9nyybpngbeVF2_RRR21__ba_mreb_funerq_jrnxRi,%function
 b__MAFg3__120__funerq_cge_cbvagreVCA7naqebvq9SraprGvzrRAF_14qrsnhyg_qryrgrVF2_RRAF_9nyybpngbeVF2_RRR21__ba_mreb_funerq_jrnxRi:
 nop
@@ -348,12 +348,12 @@
 b__MA7naqebvq10PbybeFcnpr10yvarneFETORi:
 nop
 .text
-.globl b__MAXFg3__110__shapgvba6__shapVCQbSssRAF_9nyybpngbeVF3_RRSssRR7__pybarRCAF0_6__onfrVF6_RR
+.weak b__MAXFg3__110__shapgvba6__shapVCQbSssRAF_9nyybpngbeVF3_RRSssRR7__pybarRCAF0_6__onfrVF6_RR
 .type b__MAXFg3__110__shapgvba6__shapVCQbSssRAF_9nyybpngbeVF3_RRSssRR7__pybarRCAF0_6__onfrVF6_RR,%function
 b__MAXFg3__110__shapgvba6__shapVCQbSssRAF_9nyybpngbeVF3_RRSssRR7__pybarRCAF0_6__onfrVF6_RR:
 nop
 .text
-.globl b__MAFg3__110__shapgvba6__shapVAF_6__ovaqVESsssRWEXAF_12cynprubyqref4__cuVYv1RRREsRRRAF_9nyybpngbeVFO_RRSssRR18qrfgebl_qrnyybpngrRi
+.weak b__MAFg3__110__shapgvba6__shapVAF_6__ovaqVESsssRWEXAF_12cynprubyqref4__cuVYv1RRREsRRRAF_9nyybpngbeVFO_RRSssRR18qrfgebl_qrnyybpngrRi
 .type b__MAFg3__110__shapgvba6__shapVAF_6__ovaqVESsssRWEXAF_12cynprubyqref4__cuVYv1RRREsRRRAF_9nyybpngbeVFO_RRSssRR18qrfgebl_qrnyybpngrRi,%function
 b__MAFg3__110__shapgvba6__shapVAF_6__ovaqVESsssRWEXAF_12cynprubyqref4__cuVYv1RRREsRRRAF_9nyybpngbeVFO_RRSssRR18qrfgebl_qrnyybpngrRi:
 nop
@@ -368,7 +368,7 @@
 b__MA7naqebvq14Tenyybp3ZnccreP2Ri:
 nop
 .text
-.globl b__MA7naqebvq9FvatyrgbaVAF_19TencuvpOhssreZnccreRRP1Ri
+.weak b__MA7naqebvq9FvatyrgbaVAF_19TencuvpOhssreZnccreRRP1Ri
 .type b__MA7naqebvq9FvatyrgbaVAF_19TencuvpOhssreZnccreRRP1Ri,%function
 b__MA7naqebvq9FvatyrgbaVAF_19TencuvpOhssreZnccreRRP1Ri:
 nop
@@ -388,7 +388,7 @@
 b__MA7naqebvq2hv9GenafsbeznFREXF1_:
 nop
 .data
-.globl b__MGIAFg3__110__shapgvba6__shapVAF_6__ovaqVEQbSssssRWEXAF_12cynprubyqref4__cuVYv1RRRssRRRAF_9nyybpngbeVFN_RRSssRRR
+.weak b__MGIAFg3__110__shapgvba6__shapVAF_6__ovaqVEQbSssssRWEXAF_12cynprubyqref4__cuVYv1RRRssRRRAF_9nyybpngbeVFN_RRSssRRR
 .type b__MGIAFg3__110__shapgvba6__shapVAF_6__ovaqVEQbSssssRWEXAF_12cynprubyqref4__cuVYv1RRRssRRRAF_9nyybpngbeVFN_RRSssRRR,%object
 b__MGIAFg3__110__shapgvba6__shapVAF_6__ovaqVEQbSssssRWEXAF_12cynprubyqref4__cuVYv1RRRssRRRAF_9nyybpngbeVFN_RRSssRRR:
 .space __SIZEOF_POINTER__
@@ -453,7 +453,7 @@
 b__MA7naqebvq35zncUnySbezngQngnfcnprGbChoyvpSbezngRv19naqebvq_qngnfcnpr_g:
 nop
 .text
-.globl b__MAFg3__110__shapgvba6__shapVCQbSssRAF_9nyybpngbeVF3_RRSssRR7qrfgeblRi
+.weak b__MAFg3__110__shapgvba6__shapVCQbSssRAF_9nyybpngbeVF3_RRSssRR7qrfgeblRi
 .type b__MAFg3__110__shapgvba6__shapVCQbSssRAF_9nyybpngbeVF3_RRSssRR7qrfgeblRi,%function
 b__MAFg3__110__shapgvba6__shapVCQbSssRAF_9nyybpngbeVF3_RRSssRR7qrfgeblRi:
 nop
@@ -518,7 +518,7 @@
 b__MA7naqebvq6Ertvba9fpnyrFrysRss:
 nop
 .text
-.globl b__MAXFg3__110__shapgvba6__shapVCQbSssRAF_9nyybpngbeVF3_RRSssRR7__pybarRi
+.weak b__MAXFg3__110__shapgvba6__shapVCQbSssRAF_9nyybpngbeVF3_RRSssRR7__pybarRi
 .type b__MAXFg3__110__shapgvba6__shapVCQbSssRAF_9nyybpngbeVF3_RRSssRR7__pybarRi,%function
 b__MAXFg3__110__shapgvba6__shapVCQbSssRAF_9nyybpngbeVF3_RRSssRR7__pybarRi:
 nop
@@ -583,7 +583,7 @@
 b__MA7naqebvq6Ertvba10enfgrevmrepyREXAF_4ErpgR:
 nop
 .text
-.globl b__MAXFg3__110__shapgvba6__shapVAF_6__ovaqVESsssssssRWEXAF_12cynprubyqref4__cuVYv1RRRsssssRRRAF_9nyybpngbeVFN_RRSssRR7__pybarRCAF0_6__onfrVFQ_RR
+.weak b__MAXFg3__110__shapgvba6__shapVAF_6__ovaqVESsssssssRWEXAF_12cynprubyqref4__cuVYv1RRRsssssRRRAF_9nyybpngbeVFN_RRSssRR7__pybarRCAF0_6__onfrVFQ_RR
 .type b__MAXFg3__110__shapgvba6__shapVAF_6__ovaqVESsssssssRWEXAF_12cynprubyqref4__cuVYv1RRRsssssRRRAF_9nyybpngbeVFN_RRSssRR7__pybarRCAF0_6__onfrVFQ_RR,%function
 b__MAXFg3__110__shapgvba6__shapVAF_6__ovaqVESsssssssRWEXAF_12cynprubyqref4__cuVYv1RRRsssssRRRAF_9nyybpngbeVFN_RRSssRR7__pybarRCAF0_6__onfrVFQ_RR:
 nop
@@ -618,12 +618,12 @@
 b__MAX7naqebvq2hv9Genafsbez9genafsbezREXAF_7qrgnvyf5GIrp3VsRR:
 nop
 .text
-.globl b__MAXFg3__110__shapgvba6__shapVAF_6__ovaqVEQbSssssRWEXAF_12cynprubyqref4__cuVYv1RRRssRRRAF_9nyybpngbeVFN_RRSssRR7__pybarRi
+.weak b__MAXFg3__110__shapgvba6__shapVAF_6__ovaqVEQbSssssRWEXAF_12cynprubyqref4__cuVYv1RRRssRRRAF_9nyybpngbeVFN_RRSssRR7__pybarRi
 .type b__MAXFg3__110__shapgvba6__shapVAF_6__ovaqVEQbSssssRWEXAF_12cynprubyqref4__cuVYv1RRRssRRRAF_9nyybpngbeVFN_RRSssRR7__pybarRi,%function
 b__MAXFg3__110__shapgvba6__shapVAF_6__ovaqVEQbSssssRWEXAF_12cynprubyqref4__cuVYv1RRRssRRRAF_9nyybpngbeVFN_RRSssRR7__pybarRi:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVCA7naqebvq5SraprRAF_6irpgbeVAF_8jrnx_cgeVAF2_9SraprGvzrRRRAF_9nyybpngbeVF8_RRRRRRAF_22__habeqrerq_znc_unfureVF4_FP_AF_4unfuVF4_RRYo1RRRAF_21__habeqrerq_znc_rdhnyVF4_FP_AF_8rdhny_gbVF4_RRYo1RRRAF9_VFP_RRR25__rzcynpr_havdhr_xrl_netfVF4_WEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWBF4_RRRAFE_VWRRRRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVFP_CiRRRRoRREXG_QcBG0_
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVCA7naqebvq5SraprRAF_6irpgbeVAF_8jrnx_cgeVAF2_9SraprGvzrRRRAF_9nyybpngbeVF8_RRRRRRAF_22__habeqrerq_znc_unfureVF4_FP_AF_4unfuVF4_RRYo1RRRAF_21__habeqrerq_znc_rdhnyVF4_FP_AF_8rdhny_gbVF4_RRYo1RRRAF9_VFP_RRR25__rzcynpr_havdhr_xrl_netfVF4_WEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWBF4_RRRAFE_VWRRRRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVFP_CiRRRRoRREXG_QcBG0_
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVCA7naqebvq5SraprRAF_6irpgbeVAF_8jrnx_cgeVAF2_9SraprGvzrRRRAF_9nyybpngbeVF8_RRRRRRAF_22__habeqrerq_znc_unfureVF4_FP_AF_4unfuVF4_RRYo1RRRAF_21__habeqrerq_znc_rdhnyVF4_FP_AF_8rdhny_gbVF4_RRYo1RRRAF9_VFP_RRR25__rzcynpr_havdhr_xrl_netfVF4_WEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWBF4_RRRAFE_VWRRRRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVFP_CiRRRRoRREXG_QcBG0_,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVCA7naqebvq5SraprRAF_6irpgbeVAF_8jrnx_cgeVAF2_9SraprGvzrRRRAF_9nyybpngbeVF8_RRRRRRAF_22__habeqrerq_znc_unfureVF4_FP_AF_4unfuVF4_RRYo1RRRAF_21__habeqrerq_znc_rdhnyVF4_FP_AF_8rdhny_gbVF4_RRYo1RRRAF9_VFP_RRR25__rzcynpr_havdhr_xrl_netfVF4_WEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWBF4_RRRAFE_VWRRRRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVFP_CiRRRRoRREXG_QcBG0_:
 nop
@@ -633,7 +633,7 @@
 b__MA7naqebvq13TenyybpZnccreQ2Ri:
 nop
 .text
-.globl b__MA7naqebvq9FvatyrgbaVAF_19TencuvpOhssreZnccreRR11unfVafgnaprRi
+.weak b__MA7naqebvq9FvatyrgbaVAF_19TencuvpOhssreZnccreRR11unfVafgnaprRi
 .type b__MA7naqebvq9FvatyrgbaVAF_19TencuvpOhssreZnccreRR11unfVafgnaprRi,%function
 b__MA7naqebvq9FvatyrgbaVAF_19TencuvpOhssreZnccreRR11unfVafgnaprRi:
 nop
@@ -673,7 +673,7 @@
 b__MA7naqebvq19TencuvpOhssreZnccre11vfFhccbegrqRwwvwzCo:
 nop
 .text
-.globl b__MA7naqebvq9FvatyrgbaVAF_22TencuvpOhssreNyybpngbeRRQ1Ri
+.weak b__MA7naqebvq9FvatyrgbaVAF_22TencuvpOhssreNyybpngbeRRQ1Ri
 .type b__MA7naqebvq9FvatyrgbaVAF_22TencuvpOhssreNyybpngbeRRQ1Ri,%function
 b__MA7naqebvq9FvatyrgbaVAF_22TencuvpOhssreNyybpngbeRRQ1Ri:
 nop
@@ -698,7 +698,7 @@
 b__MAX7naqebvq2hv9Genafsbez7trgGlcrRi:
 nop
 .text
-.globl b__MAXFg3__110__shapgvba6__shapVAF_6__ovaqVESsssRWEXAF_12cynprubyqref4__cuVYv1RRREsRRRAF_9nyybpngbeVFO_RRSssRR7__pybarRCAF0_6__onfrVFR_RR
+.weak b__MAXFg3__110__shapgvba6__shapVAF_6__ovaqVESsssRWEXAF_12cynprubyqref4__cuVYv1RRREsRRRAF_9nyybpngbeVFO_RRSssRR7__pybarRCAF0_6__onfrVFR_RR
 .type b__MAXFg3__110__shapgvba6__shapVAF_6__ovaqVESsssRWEXAF_12cynprubyqref4__cuVYv1RRREsRRRAF_9nyybpngbeVFO_RRSssRR7__pybarRCAF0_6__onfrVFR_RR,%function
 b__MAXFg3__110__shapgvba6__shapVAF_6__ovaqVESsssRWEXAF_12cynprubyqref4__cuVYv1RRREsRRRAF_9nyybpngbeVFO_RRSssRR7__pybarRCAF0_6__onfrVFR_RR:
 nop
@@ -728,7 +728,7 @@
 b_naqebvq_pbairegTenyybp0Gb1Hfntr:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVCA7naqebvq5SraprRAF_6irpgbeVAF_8jrnx_cgeVAF2_9SraprGvzrRRRAF_9nyybpngbeVF8_RRRRRRAF_22__habeqrerq_znc_unfureVF4_FP_AF_4unfuVF4_RRYo1RRRAF_21__habeqrerq_znc_rdhnyVF4_FP_AF_8rdhny_gbVF4_RRYo1RRRAF9_VFP_RRR5renfrRAF_21__unfu_pbafg_vgrengbeVCAF_11__unfu_abqrVFP_CiRRRR
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVCA7naqebvq5SraprRAF_6irpgbeVAF_8jrnx_cgeVAF2_9SraprGvzrRRRAF_9nyybpngbeVF8_RRRRRRAF_22__habeqrerq_znc_unfureVF4_FP_AF_4unfuVF4_RRYo1RRRAF_21__habeqrerq_znc_rdhnyVF4_FP_AF_8rdhny_gbVF4_RRYo1RRRAF9_VFP_RRR5renfrRAF_21__unfu_pbafg_vgrengbeVCAF_11__unfu_abqrVFP_CiRRRR
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVCA7naqebvq5SraprRAF_6irpgbeVAF_8jrnx_cgeVAF2_9SraprGvzrRRRAF_9nyybpngbeVF8_RRRRRRAF_22__habeqrerq_znc_unfureVF4_FP_AF_4unfuVF4_RRYo1RRRAF_21__habeqrerq_znc_rdhnyVF4_FP_AF_8rdhny_gbVF4_RRYo1RRRAF9_VFP_RRR5renfrRAF_21__unfu_pbafg_vgrengbeVCAF_11__unfu_abqrVFP_CiRRRR,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVCA7naqebvq5SraprRAF_6irpgbeVAF_8jrnx_cgeVAF2_9SraprGvzrRRRAF_9nyybpngbeVF8_RRRRRRAF_22__habeqrerq_znc_unfureVF4_FP_AF_4unfuVF4_RRYo1RRRAF_21__habeqrerq_znc_rdhnyVF4_FP_AF_8rdhny_gbVF4_RRYo1RRRAF9_VFP_RRR5renfrRAF_21__unfu_pbafg_vgrengbeVCAF_11__unfu_abqrVFP_CiRRRR:
 nop
@@ -738,7 +738,7 @@
 b__MA7naqebvq13TencuvpOhssre9ybpxLPoPeRwEXAF_4ErpgRC13naqebvq_lpope:
 nop
 .text
-.globl b__MAFg3__110__shapgvba6__shapVAF_6__ovaqVESsssRWEXAF_12cynprubyqref4__cuVYv1RRREsRRRAF_9nyybpngbeVFO_RRSssRR7qrfgeblRi
+.weak b__MAFg3__110__shapgvba6__shapVAF_6__ovaqVESsssRWEXAF_12cynprubyqref4__cuVYv1RRREsRRRAF_9nyybpngbeVFO_RRSssRR7qrfgeblRi
 .type b__MAFg3__110__shapgvba6__shapVAF_6__ovaqVESsssRWEXAF_12cynprubyqref4__cuVYv1RRREsRRRAF_9nyybpngbeVFO_RRSssRR7qrfgeblRi,%function
 b__MAFg3__110__shapgvba6__shapVAF_6__ovaqVESsssRWEXAF_12cynprubyqref4__cuVYv1RRREsRRRAF_9nyybpngbeVFO_RRSssRR7qrfgeblRi:
 nop
@@ -748,7 +748,7 @@
 b__MA7naqebvq13SraprGvzryvar17hcqngrFvtanyGvzrfRi:
 nop
 .text
-.globl b__MAFg3__120__funerq_cge_rzcynprVA7naqebvq9SraprGvzrRAF_9nyybpngbeVF2_RRR16__ba_mreb_funerqRi
+.weak b__MAFg3__120__funerq_cge_rzcynprVA7naqebvq9SraprGvzrRAF_9nyybpngbeVF2_RRR16__ba_mreb_funerqRi
 .type b__MAFg3__120__funerq_cge_rzcynprVA7naqebvq9SraprGvzrRAF_9nyybpngbeVF2_RRR16__ba_mreb_funerqRi,%function
 b__MAFg3__120__funerq_cge_rzcynprVA7naqebvq9SraprGvzrRAF_9nyybpngbeVF2_RRR16__ba_mreb_funerqRi:
 nop
@@ -773,7 +773,7 @@
 b__MA7naqebvq22TencuvpOhssreNyybpngbe15qhzcGbFlfgrzYbtRi:
 nop
 .text
-.globl b__MAXFg3__110__shapgvba6__shapVAF_6__ovaqVESsssRWEXAF_12cynprubyqref4__cuVYv1RRRsRRRAF_9nyybpngbeVFN_RRSssRR7__pybarRi
+.weak b__MAXFg3__110__shapgvba6__shapVAF_6__ovaqVESsssRWEXAF_12cynprubyqref4__cuVYv1RRRsRRRAF_9nyybpngbeVFN_RRSssRR7__pybarRi
 .type b__MAXFg3__110__shapgvba6__shapVAF_6__ovaqVESsssRWEXAF_12cynprubyqref4__cuVYv1RRRsRRRAF_9nyybpngbeVFN_RRSssRR7__pybarRi,%function
 b__MAXFg3__110__shapgvba6__shapVAF_6__ovaqVESsssRWEXAF_12cynprubyqref4__cuVYv1RRRsRRRAF_9nyybpngbeVFN_RRSssRR7__pybarRi:
 nop
@@ -788,7 +788,7 @@
 b__MA7naqebvq6Ertvba5pyrneRi:
 nop
 .data
-.globl b__MGIAFg3__110__shapgvba6__shapVAF_6__ovaqVESsssssssRWEXAF_12cynprubyqref4__cuVYv1RRRsssssRRRAF_9nyybpngbeVFN_RRSssRRR
+.weak b__MGIAFg3__110__shapgvba6__shapVAF_6__ovaqVESsssssssRWEXAF_12cynprubyqref4__cuVYv1RRRsssssRRRAF_9nyybpngbeVFN_RRSssRRR
 .type b__MGIAFg3__110__shapgvba6__shapVAF_6__ovaqVESsssssssRWEXAF_12cynprubyqref4__cuVYv1RRRsssssRRRAF_9nyybpngbeVFN_RRSssRRR,%object
 b__MGIAFg3__110__shapgvba6__shapVAF_6__ovaqVESsssssssRWEXAF_12cynprubyqref4__cuVYv1RRRsssssRRRAF_9nyybpngbeVFN_RRSssRRR:
 .space __SIZEOF_POINTER__
@@ -808,7 +808,7 @@
 b__MA7naqebvq13TencuvpOhssre26qhzcNyybpngvbafGbFlfgrzYbtRi:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVCX13angvir_unaqyrAF_22TencuvpOhssreNyybpngbe11nyybp_erp_gRRRR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVCX13angvir_unaqyrAF_22TencuvpOhssreNyybpngbe11nyybp_erp_gRRRR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVCX13angvir_unaqyrAF_22TencuvpOhssreNyybpngbe11nyybp_erp_gRRRR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVCX13angvir_unaqyrAF_22TencuvpOhssreNyybpngbe11nyybp_erp_gRRRR16qb_zbir_onpxjneqRCiCXiz:
 nop
@@ -818,7 +818,7 @@
 b__MA7naqebvq20nccraqHvPbasvtFgevatREAFg3__112onfvp_fgevatVpAF0_11pune_genvgfVpRRAF0_9nyybpngbeVpRRRR:
 nop
 .text
-.globl b__MAXFg3__110__shapgvba6__shapVCSssRAF_9nyybpngbeVF3_RRF2_R7__pybarRCAF0_6__onfrVF2_RR
+.weak b__MAXFg3__110__shapgvba6__shapVCSssRAF_9nyybpngbeVF3_RRF2_R7__pybarRCAF0_6__onfrVF2_RR
 .type b__MAXFg3__110__shapgvba6__shapVCSssRAF_9nyybpngbeVF3_RRF2_R7__pybarRCAF0_6__onfrVF2_RR,%function
 b__MAXFg3__110__shapgvba6__shapVCSssRAF_9nyybpngbeVF3_RRF2_R7__pybarRCAF0_6__onfrVF2_RR:
 nop
@@ -873,7 +873,7 @@
 b__MA7naqebvq13TencuvpOhssre19sebzNUneqjnerOhssreRC15NUneqjnerOhssre:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVCX13angvir_unaqyrAF_22TencuvpOhssreNyybpngbe11nyybp_erp_gRRRR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVCX13angvir_unaqyrAF_22TencuvpOhssreNyybpngbe11nyybp_erp_gRRRR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVCX13angvir_unaqyrAF_22TencuvpOhssreNyybpngbe11nyybp_erp_gRRRR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVCX13angvir_unaqyrAF_22TencuvpOhssreNyybpngbe11nyybp_erp_gRRRR15qb_zbir_sbejneqRCiCXiz:
 nop
@@ -898,12 +898,12 @@
 b__MA7naqebvq15OhssreUhoOhssre9qhcyvpngrRi:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVCX13angvir_unaqyrAF_22TencuvpOhssreNyybpngbe11nyybp_erp_gRRRR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVCX13angvir_unaqyrAF_22TencuvpOhssreNyybpngbe11nyybp_erp_gRRRR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVCX13angvir_unaqyrAF_22TencuvpOhssreNyybpngbe11nyybp_erp_gRRRR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVCX13angvir_unaqyrAF_22TencuvpOhssreNyybpngbe11nyybp_erp_gRRRR7qb_pbclRCiCXiz:
 nop
 .text
-.globl b__MA7naqebvq9FvatyrgbaVAF_19TencuvpOhssreZnccreRRP2Ri
+.weak b__MA7naqebvq9FvatyrgbaVAF_19TencuvpOhssreZnccreRRP2Ri
 .type b__MA7naqebvq9FvatyrgbaVAF_19TencuvpOhssreZnccreRRP2Ri,%function
 b__MA7naqebvq9FvatyrgbaVAF_19TencuvpOhssreZnccreRRP2Ri:
 nop
@@ -918,7 +918,7 @@
 b__MAX7naqebvq6Ertvba3raqRi:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_4ErpgRR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_4ErpgRR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_4ErpgRR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_4ErpgRR7qb_pbclRCiCXiz:
 nop
@@ -958,12 +958,12 @@
 b__MA7naqebvq10PbybeFcnpr18yvarneRkgraqrqFETORi:
 nop
 .text
-.globl b__MAXFg3__110__shapgvba6__shapVAF_6__ovaqVESsssRWEXAF_12cynprubyqref4__cuVYv1RRREsRRRAF_9nyybpngbeVFO_RRSssRR7__pybarRi
+.weak b__MAXFg3__110__shapgvba6__shapVAF_6__ovaqVESsssRWEXAF_12cynprubyqref4__cuVYv1RRREsRRRAF_9nyybpngbeVFO_RRSssRR7__pybarRi
 .type b__MAXFg3__110__shapgvba6__shapVAF_6__ovaqVESsssRWEXAF_12cynprubyqref4__cuVYv1RRREsRRRAF_9nyybpngbeVFO_RRSssRR7__pybarRi,%function
 b__MAXFg3__110__shapgvba6__shapVAF_6__ovaqVESsssRWEXAF_12cynprubyqref4__cuVYv1RRREsRRRAF_9nyybpngbeVFO_RRSssRR7__pybarRi:
 nop
 .data
-.globl b__MGIAFg3__110__shapgvba6__shapVCQbSssRAF_9nyybpngbeVF3_RRSssRRR
+.weak b__MGIAFg3__110__shapgvba6__shapVCQbSssRAF_9nyybpngbeVF3_RRSssRRR
 .type b__MGIAFg3__110__shapgvba6__shapVCQbSssRAF_9nyybpngbeVF3_RRSssRRR,%object
 b__MGIAFg3__110__shapgvba6__shapVCQbSssRAF_9nyybpngbeVF3_RRSssRRR:
 .space __SIZEOF_POINTER__
@@ -1043,7 +1043,7 @@
 b__MA7naqebvq9FvatyrgbaVAF_22TencuvpOhssreNyybpngbeRR5fYbpxR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_4ErpgRR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_4ErpgRR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_4ErpgRR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_4ErpgRR8qb_fcyngRCiCXiz:
 nop
@@ -1058,7 +1058,7 @@
 b__MA7naqebvq17OhssreUhoZrgnqngnP2RzAF_4onfr14havdhr_sq_vzcyVAF1_13QrsnhygPybfreRRRCAF_13OhssreUhoQrsf14ZrgnqngnUrnqreR:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVCA7naqebvq5SraprRAF_6irpgbeVAF_8jrnx_cgeVAF2_9SraprGvzrRRRAF_9nyybpngbeVF8_RRRRRRAF_22__habeqrerq_znc_unfureVF4_FP_AF_4unfuVF4_RRYo1RRRAF_21__habeqrerq_znc_rdhnyVF4_FP_AF_8rdhny_gbVF4_RRYo1RRRAF9_VFP_RRR6erunfuRz
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVCA7naqebvq5SraprRAF_6irpgbeVAF_8jrnx_cgeVAF2_9SraprGvzrRRRAF_9nyybpngbeVF8_RRRRRRAF_22__habeqrerq_znc_unfureVF4_FP_AF_4unfuVF4_RRYo1RRRAF_21__habeqrerq_znc_rdhnyVF4_FP_AF_8rdhny_gbVF4_RRYo1RRRAF9_VFP_RRR6erunfuRz
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVCA7naqebvq5SraprRAF_6irpgbeVAF_8jrnx_cgeVAF2_9SraprGvzrRRRAF_9nyybpngbeVF8_RRRRRRAF_22__habeqrerq_znc_unfureVF4_FP_AF_4unfuVF4_RRYo1RRRAF_21__habeqrerq_znc_rdhnyVF4_FP_AF_8rdhny_gbVF4_RRYo1RRRAF9_VFP_RRR6erunfuRz,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVCA7naqebvq5SraprRAF_6irpgbeVAF_8jrnx_cgeVAF2_9SraprGvzrRRRAF_9nyybpngbeVF8_RRRRRRAF_22__habeqrerq_znc_unfureVF4_FP_AF_4unfuVF4_RRYo1RRRAF_21__habeqrerq_znc_rdhnyVF4_FP_AF_8rdhny_gbVF4_RRYo1RRRAF9_VFP_RRR6erunfuRz:
 nop
@@ -1103,7 +1103,7 @@
 b__MA7naqebvq10PbybeFcnpr9QvfcynlC3Ri:
 nop
 .text
-.globl b__MAFg3__114__fcyvg_ohssreVCAF_8jrnx_cgeVA7naqebvq9SraprGvzrRRREAF_9nyybpngbeVF5_RRR9chfu_onpxRBF5_
+.weak b__MAFg3__114__fcyvg_ohssreVCAF_8jrnx_cgeVA7naqebvq9SraprGvzrRRREAF_9nyybpngbeVF5_RRR9chfu_onpxRBF5_
 .type b__MAFg3__114__fcyvg_ohssreVCAF_8jrnx_cgeVA7naqebvq9SraprGvzrRRREAF_9nyybpngbeVF5_RRR9chfu_onpxRBF5_,%function
 b__MAFg3__114__fcyvg_ohssreVCAF_8jrnx_cgeVA7naqebvq9SraprGvzrRRREAF_9nyybpngbeVF5_RRR9chfu_onpxRBF5_:
 nop
@@ -1133,7 +1133,7 @@
 b__MAX7naqebvq6Ertvba14zretrRkpyhfvirREXF0_:
 nop
 .text
-.globl b__MAFg3__114__fcyvg_ohssreVCAF_8jrnx_cgeVA7naqebvq9SraprGvzrRRREAF_9nyybpngbeVF5_RRR10chfu_sebagREXF5_
+.weak b__MAFg3__114__fcyvg_ohssreVCAF_8jrnx_cgeVA7naqebvq9SraprGvzrRRREAF_9nyybpngbeVF5_RRR10chfu_sebagREXF5_
 .type b__MAFg3__114__fcyvg_ohssreVCAF_8jrnx_cgeVA7naqebvq9SraprGvzrRRREAF_9nyybpngbeVF5_RRR10chfu_sebagREXF5_,%function
 b__MAFg3__114__fcyvg_ohssreVCAF_8jrnx_cgeVA7naqebvq9SraprGvzrRRREAF_9nyybpngbeVF5_RRR10chfu_sebagREXF5_:
 nop
@@ -1148,17 +1148,17 @@
 b__MAX7naqebvq6Ertvba5zretrREXAF_4ErpgR:
 nop
 .text
-.globl b__MAXFg3__110__shapgvba6__shapVAF_6__ovaqVEQbSssssRWEXAF_12cynprubyqref4__cuVYv1RRRssRRRAF_9nyybpngbeVFN_RRSssRR7__pybarRCAF0_6__onfrVFQ_RR
+.weak b__MAXFg3__110__shapgvba6__shapVAF_6__ovaqVEQbSssssRWEXAF_12cynprubyqref4__cuVYv1RRRssRRRAF_9nyybpngbeVFN_RRSssRR7__pybarRCAF0_6__onfrVFQ_RR
 .type b__MAXFg3__110__shapgvba6__shapVAF_6__ovaqVEQbSssssRWEXAF_12cynprubyqref4__cuVYv1RRRssRRRAF_9nyybpngbeVFN_RRSssRR7__pybarRCAF0_6__onfrVFQ_RR,%function
 b__MAXFg3__110__shapgvba6__shapVAF_6__ovaqVEQbSssssRWEXAF_12cynprubyqref4__cuVYv1RRRssRRRAF_9nyybpngbeVFN_RRSssRR7__pybarRCAF0_6__onfrVFQ_RR:
 nop
 .data
-.globl b__MGIAFg3__110__shapgvba6__shapVAF_6__ovaqVESsssRWEXAF_12cynprubyqref4__cuVYv1RRRsRRRAF_9nyybpngbeVFN_RRSssRRR
+.weak b__MGIAFg3__110__shapgvba6__shapVAF_6__ovaqVESsssRWEXAF_12cynprubyqref4__cuVYv1RRRsRRRAF_9nyybpngbeVFN_RRSssRRR
 .type b__MGIAFg3__110__shapgvba6__shapVAF_6__ovaqVESsssRWEXAF_12cynprubyqref4__cuVYv1RRRsRRRAF_9nyybpngbeVFN_RRSssRRR,%object
 b__MGIAFg3__110__shapgvba6__shapVAF_6__ovaqVESsssRWEXAF_12cynprubyqref4__cuVYv1RRRsRRRAF_9nyybpngbeVFN_RRSssRRR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIAFg3__120__funerq_cge_cbvagreVCA7naqebvq9SraprGvzrRAF_14qrsnhyg_qryrgrVF2_RRAF_9nyybpngbeVF2_RRRR
+.weak b__MGIAFg3__120__funerq_cge_cbvagreVCA7naqebvq9SraprGvzrRAF_14qrsnhyg_qryrgrVF2_RRAF_9nyybpngbeVF2_RRRR
 .type b__MGIAFg3__120__funerq_cge_cbvagreVCA7naqebvq9SraprGvzrRAF_14qrsnhyg_qryrgrVF2_RRAF_9nyybpngbeVF2_RRRR,%object
 b__MGIAFg3__120__funerq_cge_cbvagreVCA7naqebvq9SraprGvzrRAF_14qrsnhyg_qryrgrVF2_RRAF_9nyybpngbeVF2_RRRR:
 .space __SIZEOF_POINTER__
@@ -1213,7 +1213,7 @@
 b__M20qrpbqrPbybeGenafsbez25naqebvq_pbybe_genafsbez_g:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVCA7naqebvq5SraprRAF_6irpgbeVAF_8jrnx_cgeVAF2_9SraprGvzrRRRAF_9nyybpngbeVF8_RRRRRRAF_22__habeqrerq_znc_unfureVF4_FP_AF_4unfuVF4_RRYo1RRRAF_21__habeqrerq_znc_rdhnyVF4_FP_AF_8rdhny_gbVF4_RRYo1RRRAF9_VFP_RRR6erzbirRAF_21__unfu_pbafg_vgrengbeVCAF_11__unfu_abqrVFP_CiRRRR
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVCA7naqebvq5SraprRAF_6irpgbeVAF_8jrnx_cgeVAF2_9SraprGvzrRRRAF_9nyybpngbeVF8_RRRRRRAF_22__habeqrerq_znc_unfureVF4_FP_AF_4unfuVF4_RRYo1RRRAF_21__habeqrerq_znc_rdhnyVF4_FP_AF_8rdhny_gbVF4_RRYo1RRRAF9_VFP_RRR6erzbirRAF_21__unfu_pbafg_vgrengbeVCAF_11__unfu_abqrVFP_CiRRRR
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVCA7naqebvq5SraprRAF_6irpgbeVAF_8jrnx_cgeVAF2_9SraprGvzrRRRAF_9nyybpngbeVF8_RRRRRRAF_22__habeqrerq_znc_unfureVF4_FP_AF_4unfuVF4_RRYo1RRRAF_21__habeqrerq_znc_rdhnyVF4_FP_AF_8rdhny_gbVF4_RRYo1RRRAF9_VFP_RRR6erzbirRAF_21__unfu_pbafg_vgrengbeVCAF_11__unfu_abqrVFP_CiRRRR,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVCA7naqebvq5SraprRAF_6irpgbeVAF_8jrnx_cgeVAF2_9SraprGvzrRRRAF_9nyybpngbeVF8_RRRRRRAF_22__habeqrerq_znc_unfureVF4_FP_AF_4unfuVF4_RRYo1RRRAF_21__habeqrerq_znc_rdhnyVF4_FP_AF_8rdhny_gbVF4_RRYo1RRRAF9_VFP_RRR6erzbirRAF_21__unfu_pbafg_vgrengbeVCAF_11__unfu_abqrVFP_CiRRRR:
 nop
@@ -1233,7 +1233,7 @@
 b__MA7naqebvq6Ertvba9hasynggraRCXiz:
 nop
 .text
-.globl b__MAFg3__110__shapgvba6__shapVAF_6__ovaqVEQbSssssRWEXAF_12cynprubyqref4__cuVYv1RRRssRRRAF_9nyybpngbeVFN_RRSssRR7qrfgeblRi
+.weak b__MAFg3__110__shapgvba6__shapVAF_6__ovaqVEQbSssssRWEXAF_12cynprubyqref4__cuVYv1RRRssRRRAF_9nyybpngbeVFN_RRSssRR7qrfgeblRi
 .type b__MAFg3__110__shapgvba6__shapVAF_6__ovaqVEQbSssssRWEXAF_12cynprubyqref4__cuVYv1RRRssRRRAF_9nyybpngbeVFN_RRSssRR7qrfgeblRi,%function
 b__MAFg3__110__shapgvba6__shapVAF_6__ovaqVEQbSssssRWEXAF_12cynprubyqref4__cuVYv1RRRssRRRAF_9nyybpngbeVFN_RRSssRR7qrfgeblRi:
 nop
@@ -1243,7 +1243,7 @@
 b__MA7naqebvq17OhssreUhoZrgnqngnP1RzAF_4onfr14havdhr_sq_vzcyVAF1_13QrsnhygPybfreRRRCAF_13OhssreUhoQrsf14ZrgnqngnUrnqreR:
 nop
 .text
-.globl b__MA7naqebvq9FvatyrgbaVAF_22TencuvpOhssreNyybpngbeRR11trgVafgnaprRi
+.weak b__MA7naqebvq9FvatyrgbaVAF_22TencuvpOhssreNyybpngbeRR11trgVafgnaprRi
 .type b__MA7naqebvq9FvatyrgbaVAF_22TencuvpOhssreNyybpngbeRR11trgVafgnaprRi,%function
 b__MA7naqebvq9FvatyrgbaVAF_22TencuvpOhssreNyybpngbeRR11trgVafgnaprRi:
 nop
@@ -1268,12 +1268,12 @@
 b__MGIA7naqebvq17Tenyybp2NyybpngbeR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq9FvatyrgbaVAF_22TencuvpOhssreNyybpngbeRRQ2Ri
+.weak b__MA7naqebvq9FvatyrgbaVAF_22TencuvpOhssreNyybpngbeRRQ2Ri
 .type b__MA7naqebvq9FvatyrgbaVAF_22TencuvpOhssreNyybpngbeRRQ2Ri,%function
 b__MA7naqebvq9FvatyrgbaVAF_22TencuvpOhssreNyybpngbeRRQ2Ri:
 nop
 .data
-.globl b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVCX13angvir_unaqyrAF_22TencuvpOhssreNyybpngbe11nyybp_erp_gRRRRR
+.weak b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVCX13angvir_unaqyrAF_22TencuvpOhssreNyybpngbe11nyybp_erp_gRRRRR
 .type b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVCX13angvir_unaqyrAF_22TencuvpOhssreNyybpngbe11nyybp_erp_gRRRRR,%object
 b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVCX13angvir_unaqyrAF_22TencuvpOhssreNyybpngbe11nyybp_erp_gRRRRR:
 .space __SIZEOF_POINTER__
@@ -1283,12 +1283,12 @@
 b__MAX7naqebvq6Ertvba8fhogenpgREXF0_vv:
 nop
 .text
-.globl b__MAFg3__110__shapgvba6__shapVAF_6__ovaqVESssEXA7naqebvq10PbybeFcnpr18GenafsreCnenzrgrefRRWEXAF_12cynprubyqref4__cuVYv1RRRF7_RRRAF_9nyybpngbeVFS_RRSssRR18qrfgebl_qrnyybpngrRi
+.weak b__MAFg3__110__shapgvba6__shapVAF_6__ovaqVESssEXA7naqebvq10PbybeFcnpr18GenafsreCnenzrgrefRRWEXAF_12cynprubyqref4__cuVYv1RRRF7_RRRAF_9nyybpngbeVFS_RRSssRR18qrfgebl_qrnyybpngrRi
 .type b__MAFg3__110__shapgvba6__shapVAF_6__ovaqVESssEXA7naqebvq10PbybeFcnpr18GenafsreCnenzrgrefRRWEXAF_12cynprubyqref4__cuVYv1RRRF7_RRRAF_9nyybpngbeVFS_RRSssRR18qrfgebl_qrnyybpngrRi,%function
 b__MAFg3__110__shapgvba6__shapVAF_6__ovaqVESssEXA7naqebvq10PbybeFcnpr18GenafsreCnenzrgrefRRWEXAF_12cynprubyqref4__cuVYv1RRRF7_RRRAF_9nyybpngbeVFS_RRSssRR18qrfgebl_qrnyybpngrRi:
 nop
 .text
-.globl b__MAFg3__110__shapgvba6__shapVAF_6__ovaqVESsssssssRWEXAF_12cynprubyqref4__cuVYv1RRRsssssRRRAF_9nyybpngbeVFN_RRSssRR18qrfgebl_qrnyybpngrRi
+.weak b__MAFg3__110__shapgvba6__shapVAF_6__ovaqVESsssssssRWEXAF_12cynprubyqref4__cuVYv1RRRsssssRRRAF_9nyybpngbeVFN_RRSssRR18qrfgebl_qrnyybpngrRi
 .type b__MAFg3__110__shapgvba6__shapVAF_6__ovaqVESsssssssRWEXAF_12cynprubyqref4__cuVYv1RRRsssssRRRAF_9nyybpngbeVFN_RRSssRR18qrfgebl_qrnyybpngrRi,%function
 b__MAFg3__110__shapgvba6__shapVAF_6__ovaqVESsssssssRWEXAF_12cynprubyqref4__cuVYv1RRRsssssRRRAF_9nyybpngbeVFN_RRSssRR18qrfgebl_qrnyybpngrRi:
 nop
@@ -1328,7 +1328,7 @@
 b__MA7naqebvq13TencuvpOhssre4ybpxRwEXAF_4ErpgRCCiCvF6_:
 nop
 .data
-.globl b__MGIAFg3__110__shapgvba6__shapVAF_6__ovaqVESssEXA7naqebvq10PbybeFcnpr18GenafsreCnenzrgrefRRWEXAF_12cynprubyqref4__cuVYv1RRRF7_RRRAF_9nyybpngbeVFS_RRSssRRR
+.weak b__MGIAFg3__110__shapgvba6__shapVAF_6__ovaqVESssEXA7naqebvq10PbybeFcnpr18GenafsreCnenzrgrefRRWEXAF_12cynprubyqref4__cuVYv1RRRF7_RRRAF_9nyybpngbeVFS_RRSssRRR
 .type b__MGIAFg3__110__shapgvba6__shapVAF_6__ovaqVESssEXA7naqebvq10PbybeFcnpr18GenafsreCnenzrgrefRRWEXAF_12cynprubyqref4__cuVYv1RRRF7_RRRAF_9nyybpngbeVFS_RRSssRRR,%object
 b__MGIAFg3__110__shapgvba6__shapVAF_6__ovaqVESssEXA7naqebvq10PbybeFcnpr18GenafsreCnenzrgrefRRWEXAF_12cynprubyqref4__cuVYv1RRRF7_RRRAF_9nyybpngbeVFS_RRSssRRR:
 .space __SIZEOF_POINTER__
@@ -1363,7 +1363,7 @@
 b__MGIA7naqebvq17Tenyybp3NyybpngbeR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq8uneqjner8tencuvpf6pbzzba4I1_23UqeRAF_9nyybpngbeVF6_RRR8__nccraqRz
+.weak b__MAFg3__16irpgbeVA7naqebvq8uneqjner8tencuvpf6pbzzba4I1_23UqeRAF_9nyybpngbeVF6_RRR8__nccraqRz
 .type b__MAFg3__16irpgbeVA7naqebvq8uneqjner8tencuvpf6pbzzba4I1_23UqeRAF_9nyybpngbeVF6_RRR8__nccraqRz,%function
 b__MAFg3__16irpgbeVA7naqebvq8uneqjner8tencuvpf6pbzzba4I1_23UqeRAF_9nyybpngbeVF6_RRR8__nccraqRz:
 nop
@@ -1388,7 +1388,7 @@
 b__MA7naqebvq15OhssreUhoOhssre4tnvaRi:
 nop
 .text
-.globl b__MAFg3__120__funerq_cge_cbvagreVCA7naqebvq9SraprGvzrRAF_14qrsnhyg_qryrgrVF2_RRAF_9nyybpngbeVF2_RRR16__ba_mreb_funerqRi
+.weak b__MAFg3__120__funerq_cge_cbvagreVCA7naqebvq9SraprGvzrRAF_14qrsnhyg_qryrgrVF2_RRAF_9nyybpngbeVF2_RRR16__ba_mreb_funerqRi
 .type b__MAFg3__120__funerq_cge_cbvagreVCA7naqebvq9SraprGvzrRAF_14qrsnhyg_qryrgrVF2_RRAF_9nyybpngbeVF2_RRR16__ba_mreb_funerqRi,%function
 b__MAFg3__120__funerq_cge_cbvagreVCA7naqebvq9SraprGvzrRAF_14qrsnhyg_qryrgrVF2_RRAF_9nyybpngbeVF2_RRR16__ba_mreb_funerqRi:
 nop
@@ -1398,7 +1398,7 @@
 b__MA7naqebvq13TencuvpOhssreP2RwwvwwwC13angvir_unaqyro:
 nop
 .text
-.globl b__MAXFg3__110__shapgvba6__shapVAF_6__ovaqVESssEXA7naqebvq10PbybeFcnpr18GenafsreCnenzrgrefRRWEXAF_12cynprubyqref4__cuVYv1RRRF7_RRRAF_9nyybpngbeVFS_RRSssRR7__pybarRCAF0_6__onfrVFV_RR
+.weak b__MAXFg3__110__shapgvba6__shapVAF_6__ovaqVESssEXA7naqebvq10PbybeFcnpr18GenafsreCnenzrgrefRRWEXAF_12cynprubyqref4__cuVYv1RRRF7_RRRAF_9nyybpngbeVFS_RRSssRR7__pybarRCAF0_6__onfrVFV_RR
 .type b__MAXFg3__110__shapgvba6__shapVAF_6__ovaqVESssEXA7naqebvq10PbybeFcnpr18GenafsreCnenzrgrefRRWEXAF_12cynprubyqref4__cuVYv1RRRF7_RRRAF_9nyybpngbeVFS_RRSssRR7__pybarRCAF0_6__onfrVFV_RR,%function
 b__MAXFg3__110__shapgvba6__shapVAF_6__ovaqVESssEXA7naqebvq10PbybeFcnpr18GenafsreCnenzrgrefRRWEXAF_12cynprubyqref4__cuVYv1RRRF7_RRRAF_9nyybpngbeVFS_RRSssRR7__pybarRCAF0_6__onfrVFV_RR:
 nop
@@ -1433,7 +1433,7 @@
 b__MA7naqebvq6Ertvba9genafyngrREF0_EXF0_vv:
 nop
 .data
-.globl b__MGIAFg3__110__shapgvba6__shapVCSssRAF_9nyybpngbeVF3_RRF2_RR
+.weak b__MGIAFg3__110__shapgvba6__shapVCSssRAF_9nyybpngbeVF3_RRF2_RR
 .type b__MGIAFg3__110__shapgvba6__shapVCSssRAF_9nyybpngbeVF3_RRF2_RR,%object
 b__MGIAFg3__110__shapgvba6__shapVCSssRAF_9nyybpngbeVF3_RRF2_RR:
 .space __SIZEOF_POINTER__
@@ -1468,7 +1468,7 @@
 b__MA7naqebvq10PbybeFcnprP2REXAFg3__112onfvp_fgevatVpAF1_11pune_genvgfVpRRAF1_9nyybpngbeVpRRRREXAF_7qrgnvyf6GZng33VsRRAF1_8shapgvbaVSssRRRFU_FU_:
 nop
 .text
-.globl b__MAFg3__110__shapgvba6__shapVAF_6__ovaqVESsssRWEXAF_12cynprubyqref4__cuVYv1RRREsRRRAF_9nyybpngbeVFO_RRSssRRpyRBs
+.weak b__MAFg3__110__shapgvba6__shapVAF_6__ovaqVESsssRWEXAF_12cynprubyqref4__cuVYv1RRREsRRRAF_9nyybpngbeVFO_RRSssRRpyRBs
 .type b__MAFg3__110__shapgvba6__shapVAF_6__ovaqVESsssRWEXAF_12cynprubyqref4__cuVYv1RRREsRRRAF_9nyybpngbeVFO_RRSssRRpyRBs,%function
 b__MAFg3__110__shapgvba6__shapVAF_6__ovaqVESsssRWEXAF_12cynprubyqref4__cuVYv1RRREsRRRAF_9nyybpngbeVFO_RRSssRRpyRBs:
 nop
@@ -1498,12 +1498,12 @@
 b__MAX7naqebvq2hv9GenafsbezzyREXF1_:
 nop
 .text
-.globl b__MAXFg3__110__shapgvba6__shapVAF_6__ovaqVESsssssssRWEXAF_12cynprubyqref4__cuVYv1RRRsssssRRRAF_9nyybpngbeVFN_RRSssRR7__pybarRi
+.weak b__MAXFg3__110__shapgvba6__shapVAF_6__ovaqVESsssssssRWEXAF_12cynprubyqref4__cuVYv1RRRsssssRRRAF_9nyybpngbeVFN_RRSssRR7__pybarRi
 .type b__MAXFg3__110__shapgvba6__shapVAF_6__ovaqVESsssssssRWEXAF_12cynprubyqref4__cuVYv1RRRsssssRRRAF_9nyybpngbeVFN_RRSssRR7__pybarRi,%function
 b__MAXFg3__110__shapgvba6__shapVAF_6__ovaqVESsssssssRWEXAF_12cynprubyqref4__cuVYv1RRRsssssRRRAF_9nyybpngbeVFN_RRSssRR7__pybarRi:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVCA7naqebvq5SraprRAF_6irpgbeVAF_8jrnx_cgeVAF2_9SraprGvzrRRRAF_9nyybpngbeVF8_RRRRRRAF_22__habeqrerq_znc_unfureVF4_FP_AF_4unfuVF4_RRYo1RRRAF_21__habeqrerq_znc_rdhnyVF4_FP_AF_8rdhny_gbVF4_RRYo1RRRAF9_VFP_RRR8__erunfuRz
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVCA7naqebvq5SraprRAF_6irpgbeVAF_8jrnx_cgeVAF2_9SraprGvzrRRRAF_9nyybpngbeVF8_RRRRRRAF_22__habeqrerq_znc_unfureVF4_FP_AF_4unfuVF4_RRYo1RRRAF_21__habeqrerq_znc_rdhnyVF4_FP_AF_8rdhny_gbVF4_RRYo1RRRAF9_VFP_RRR8__erunfuRz
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVCA7naqebvq5SraprRAF_6irpgbeVAF_8jrnx_cgeVAF2_9SraprGvzrRRRAF_9nyybpngbeVF8_RRRRRRAF_22__habeqrerq_znc_unfureVF4_FP_AF_4unfuVF4_RRYo1RRRAF_21__habeqrerq_znc_rdhnyVF4_FP_AF_8rdhny_gbVF4_RRYo1RRRAF9_VFP_RRR8__erunfuRz,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVCA7naqebvq5SraprRAF_6irpgbeVAF_8jrnx_cgeVAF2_9SraprGvzrRRRAF_9nyybpngbeVF8_RRRRRRAF_22__habeqrerq_znc_unfureVF4_FP_AF_4unfuVF4_RRYo1RRRAF_21__habeqrerq_znc_rdhnyVF4_FP_AF_8rdhny_gbVF4_RRYo1RRRAF9_VFP_RRR8__erunfuRz:
 nop
@@ -1533,7 +1533,7 @@
 b__MA7naqebvq22TencuvpOhssreNyybpngbeQ2Ri:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVCX13angvir_unaqyrAF_22TencuvpOhssreNyybpngbe11nyybp_erp_gRRRR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVCX13angvir_unaqyrAF_22TencuvpOhssreNyybpngbe11nyybp_erp_gRRRR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVCX13angvir_unaqyrAF_22TencuvpOhssreNyybpngbe11nyybp_erp_gRRRR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVCX13angvir_unaqyrAF_22TencuvpOhssreNyybpngbe11nyybp_erp_gRRRR10qb_qrfgeblRCiz:
 nop
@@ -1543,7 +1543,7 @@
 b__MAX7naqebvq2hv9Genafsbez9genafsbezREXAF_6ErtvbaR:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVCX13angvir_unaqyrAF_22TencuvpOhssreNyybpngbe11nyybp_erp_gRRRR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVCX13angvir_unaqyrAF_22TencuvpOhssreNyybpngbe11nyybp_erp_gRRRR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVCX13angvir_unaqyrAF_22TencuvpOhssreNyybpngbe11nyybp_erp_gRRRR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVCX13angvir_unaqyrAF_22TencuvpOhssreNyybpngbe11nyybp_erp_gRRRR12qb_pbafgehpgRCiz:
 nop
@@ -1583,12 +1583,12 @@
 b__MAX7naqebvq2hv9Genafsbez9genafsbezREXAF_4ErpgRo:
 nop
 .text
-.globl b__MAFg3__110__shapgvba6__shapVAF_6__ovaqVEQbSssssRWEXAF_12cynprubyqref4__cuVYv1RRRssRRRAF_9nyybpngbeVFN_RRSssRR18qrfgebl_qrnyybpngrRi
+.weak b__MAFg3__110__shapgvba6__shapVAF_6__ovaqVEQbSssssRWEXAF_12cynprubyqref4__cuVYv1RRRssRRRAF_9nyybpngbeVFN_RRSssRR18qrfgebl_qrnyybpngrRi
 .type b__MAFg3__110__shapgvba6__shapVAF_6__ovaqVEQbSssssRWEXAF_12cynprubyqref4__cuVYv1RRRssRRRAF_9nyybpngbeVFN_RRSssRR18qrfgebl_qrnyybpngrRi,%function
 b__MAFg3__110__shapgvba6__shapVAF_6__ovaqVEQbSssssRWEXAF_12cynprubyqref4__cuVYv1RRRssRRRAF_9nyybpngbeVFN_RRSssRR18qrfgebl_qrnyybpngrRi:
 nop
 .text
-.globl b__MAFg3__110__shapgvba6__shapVAF_6__ovaqVESsssssssRWEXAF_12cynprubyqref4__cuVYv1RRRsssssRRRAF_9nyybpngbeVFN_RRSssRR7qrfgeblRi
+.weak b__MAFg3__110__shapgvba6__shapVAF_6__ovaqVESsssssssRWEXAF_12cynprubyqref4__cuVYv1RRRsssssRRRAF_9nyybpngbeVFN_RRSssRR7qrfgeblRi
 .type b__MAFg3__110__shapgvba6__shapVAF_6__ovaqVESsssssssRWEXAF_12cynprubyqref4__cuVYv1RRRsssssRRRAF_9nyybpngbeVFN_RRSssRR7qrfgeblRi,%function
 b__MAFg3__110__shapgvba6__shapVAF_6__ovaqVESsssssssRWEXAF_12cynprubyqref4__cuVYv1RRRsssssRRRAF_9nyybpngbeVFN_RRSssRR7qrfgeblRi:
 nop
@@ -1643,7 +1643,7 @@
 b__MA7naqebvq13TencuvpOhssre10ernyybpngrRwwvwz:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_4ErpgRR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_4ErpgRR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_4ErpgRR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_4ErpgRR16qb_zbir_onpxjneqRCiCXiz:
 nop
@@ -1678,7 +1678,7 @@
 b__MA7naqebvq9FvatyrgbaVAF_22TencuvpOhssreNyybpngbeRR9fVafgnaprR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq9FvatyrgbaVAF_19TencuvpOhssreZnccreRRQ1Ri
+.weak b__MA7naqebvq9FvatyrgbaVAF_19TencuvpOhssreZnccreRRQ1Ri
 .type b__MA7naqebvq9FvatyrgbaVAF_19TencuvpOhssreZnccreRRQ1Ri,%function
 b__MA7naqebvq9FvatyrgbaVAF_19TencuvpOhssreZnccreRRQ1Ri:
 nop
@@ -1698,12 +1698,12 @@
 b__MA7naqebvq10PbybeFcnprP1REXAFg3__112onfvp_fgevatVpAF1_11pune_genvgfVpRRAF1_9nyybpngbeVpRRRREXAF1_5neenlVAF_7qrgnvyf5GIrp2VsRRYz3RRREXFQ_sAF1_8shapgvbaVSssRRR:
 nop
 .text
-.globl b__MAFg3__110__shapgvba6__shapVAF_6__ovaqVEQbSssssRWEXAF_12cynprubyqref4__cuVYv1RRRssRRRAF_9nyybpngbeVFN_RRSssRRpyRBs
+.weak b__MAFg3__110__shapgvba6__shapVAF_6__ovaqVEQbSssssRWEXAF_12cynprubyqref4__cuVYv1RRRssRRRAF_9nyybpngbeVFN_RRSssRRpyRBs
 .type b__MAFg3__110__shapgvba6__shapVAF_6__ovaqVEQbSssssRWEXAF_12cynprubyqref4__cuVYv1RRRssRRRAF_9nyybpngbeVFN_RRSssRRpyRBs,%function
 b__MAFg3__110__shapgvba6__shapVAF_6__ovaqVEQbSssssRWEXAF_12cynprubyqref4__cuVYv1RRRssRRRAF_9nyybpngbeVFN_RRSssRRpyRBs:
 nop
 .data
-.globl b__MGIAFg3__110__shapgvba6__shapVAF_6__ovaqVESsssRWEXAF_12cynprubyqref4__cuVYv1RRREsRRRAF_9nyybpngbeVFO_RRSssRRR
+.weak b__MGIAFg3__110__shapgvba6__shapVAF_6__ovaqVESsssRWEXAF_12cynprubyqref4__cuVYv1RRREsRRRAF_9nyybpngbeVFO_RRSssRRR
 .type b__MGIAFg3__110__shapgvba6__shapVAF_6__ovaqVESsssRWEXAF_12cynprubyqref4__cuVYv1RRREsRRRAF_9nyybpngbeVFO_RRSssRRR,%object
 b__MGIAFg3__110__shapgvba6__shapVAF_6__ovaqVESsssRWEXAF_12cynprubyqref4__cuVYv1RRREsRRRAF_9nyybpngbeVFO_RRSssRRR:
 .space __SIZEOF_POINTER__
@@ -1733,7 +1733,7 @@
 b__MAX7naqebvq2hv9Genafsbez10znxrObhaqfRvv:
 nop
 .text
-.globl b__MAFg3__110__shapgvba6__shapVAF_6__ovaqVESsssRWEXAF_12cynprubyqref4__cuVYv1RRRsRRRAF_9nyybpngbeVFN_RRSssRR18qrfgebl_qrnyybpngrRi
+.weak b__MAFg3__110__shapgvba6__shapVAF_6__ovaqVESsssRWEXAF_12cynprubyqref4__cuVYv1RRRsRRRAF_9nyybpngbeVFN_RRSssRR18qrfgebl_qrnyybpngrRi
 .type b__MAFg3__110__shapgvba6__shapVAF_6__ovaqVESsssRWEXAF_12cynprubyqref4__cuVYv1RRRsRRRAF_9nyybpngbeVFN_RRSssRR18qrfgebl_qrnyybpngrRi,%function
 b__MAFg3__110__shapgvba6__shapVAF_6__ovaqVESsssRWEXAF_12cynprubyqref4__cuVYv1RRRsRRRAF_9nyybpngbeVFN_RRSssRR18qrfgebl_qrnyybpngrRi:
 nop
@@ -1773,7 +1773,7 @@
 b__MA7naqebvq10PbybeFcnpr5QPVC3Ri:
 nop
 .text
-.globl b__MAXFg3__110__shapgvba6__shapVCSssRAF_9nyybpngbeVF3_RRF2_R7__pybarRi
+.weak b__MAXFg3__110__shapgvba6__shapVCSssRAF_9nyybpngbeVF3_RRF2_R7__pybarRi
 .type b__MAXFg3__110__shapgvba6__shapVCSssRAF_9nyybpngbeVF3_RRF2_R7__pybarRi,%function
 b__MAXFg3__110__shapgvba6__shapVCSssRAF_9nyybpngbeVF3_RRF2_R7__pybarRi:
 nop
@@ -1823,12 +1823,12 @@
 b__MAX7naqebvq6Ertvba5ortvaRi:
 nop
 .text
-.globl b__MAFg3__110__shapgvba6__shapVCSssRAF_9nyybpngbeVF3_RRF2_R7qrfgeblRi
+.weak b__MAFg3__110__shapgvba6__shapVCSssRAF_9nyybpngbeVF3_RRF2_R7qrfgeblRi
 .type b__MAFg3__110__shapgvba6__shapVCSssRAF_9nyybpngbeVF3_RRF2_R7qrfgeblRi,%function
 b__MAFg3__110__shapgvba6__shapVCSssRAF_9nyybpngbeVF3_RRF2_R7qrfgeblRi:
 nop
 .text
-.globl b__MA7naqebvq9FvatyrgbaVAF_22TencuvpOhssreNyybpngbeRRP1Ri
+.weak b__MA7naqebvq9FvatyrgbaVAF_22TencuvpOhssreNyybpngbeRRP1Ri
 .type b__MA7naqebvq9FvatyrgbaVAF_22TencuvpOhssreNyybpngbeRRP1Ri,%function
 b__MA7naqebvq9FvatyrgbaVAF_22TencuvpOhssreNyybpngbeRRP1Ri:
 nop
@@ -1873,17 +1873,17 @@
 b__MA7naqebvq22TencuvpOhssreNyybpngbe10fNyybpYvfgR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_4ErpgRR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_4ErpgRR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_4ErpgRR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_4ErpgRR15qb_zbir_sbejneqRCiCXiz:
 nop
 .text
-.globl b__MAFg3__110__shapgvba6__shapVCSssRAF_9nyybpngbeVF3_RRF2_R18qrfgebl_qrnyybpngrRi
+.weak b__MAFg3__110__shapgvba6__shapVCSssRAF_9nyybpngbeVF3_RRF2_R18qrfgebl_qrnyybpngrRi
 .type b__MAFg3__110__shapgvba6__shapVCSssRAF_9nyybpngbeVF3_RRF2_R18qrfgebl_qrnyybpngrRi,%function
 b__MAFg3__110__shapgvba6__shapVCSssRAF_9nyybpngbeVF3_RRF2_R18qrfgebl_qrnyybpngrRi:
 nop
 .text
-.globl b__MAFg3__110__shapgvba6__shapVCSssRAF_9nyybpngbeVF3_RRF2_RpyRBs
+.weak b__MAFg3__110__shapgvba6__shapVCSssRAF_9nyybpngbeVF3_RRF2_RpyRBs
 .type b__MAFg3__110__shapgvba6__shapVCSssRAF_9nyybpngbeVF3_RRF2_RpyRBs,%function
 b__MAFg3__110__shapgvba6__shapVCSssRAF_9nyybpngbeVF3_RRF2_RpyRBs:
 nop
@@ -1893,7 +1893,7 @@
 b__MA7naqebvq16OhssreUhoRiragSqP2Ri:
 nop
 .text
-.globl b__MA7naqebvq9FvatyrgbaVAF_22TencuvpOhssreNyybpngbeRR11unfVafgnaprRi
+.weak b__MA7naqebvq9FvatyrgbaVAF_22TencuvpOhssreNyybpngbeRR11unfVafgnaprRi
 .type b__MA7naqebvq9FvatyrgbaVAF_22TencuvpOhssreNyybpngbeRR11unfVafgnaprRi,%function
 b__MA7naqebvq9FvatyrgbaVAF_22TencuvpOhssreNyybpngbeRR11unfVafgnaprRi:
 nop
@@ -1913,7 +1913,7 @@
 b__MAX7naqebvq6Ertvba9genafyngrRvv:
 nop
 .text
-.globl b__MAFg3__15qrdhrVAF_8jrnx_cgeVA7naqebvq9SraprGvzrRRRAF_9nyybpngbeVF4_RRR9chfu_onpxRBF4_
+.weak b__MAFg3__15qrdhrVAF_8jrnx_cgeVA7naqebvq9SraprGvzrRRRAF_9nyybpngbeVF4_RRR9chfu_onpxRBF4_
 .type b__MAFg3__15qrdhrVAF_8jrnx_cgeVA7naqebvq9SraprGvzrRRRAF_9nyybpngbeVF4_RRR9chfu_onpxRBF4_,%function
 b__MAFg3__15qrdhrVAF_8jrnx_cgeVA7naqebvq9SraprGvzrRRRAF_9nyybpngbeVF4_RRR9chfu_onpxRBF4_:
 nop
@@ -1933,7 +1933,7 @@
 b__MA7naqebvq13olgrfCreCvkryRv:
 nop
 .text
-.globl b__MAFg3__110__shapgvba6__shapVAF_6__ovaqVESsssRWEXAF_12cynprubyqref4__cuVYv1RRRsRRRAF_9nyybpngbeVFN_RRSssRR7qrfgeblRi
+.weak b__MAFg3__110__shapgvba6__shapVAF_6__ovaqVESsssRWEXAF_12cynprubyqref4__cuVYv1RRRsRRRAF_9nyybpngbeVFN_RRSssRR7qrfgeblRi
 .type b__MAFg3__110__shapgvba6__shapVAF_6__ovaqVESsssRWEXAF_12cynprubyqref4__cuVYv1RRRsRRRAF_9nyybpngbeVFN_RRSssRR7qrfgeblRi,%function
 b__MAFg3__110__shapgvba6__shapVAF_6__ovaqVESsssRWEXAF_12cynprubyqref4__cuVYv1RRRsRRRAF_9nyybpngbeVFN_RRSssRR7qrfgeblRi:
 nop
@@ -1953,7 +1953,7 @@
 b__MAX7naqebvq2hv9Genafsbez4qhzcRCXp:
 nop
 .text
-.globl b__MAFg3__110funerq_cgeVA7naqebvq9SraprGvzrRRQ2Ri
+.weak b__MAFg3__110funerq_cgeVA7naqebvq9SraprGvzrRRQ2Ri
 .type b__MAFg3__110funerq_cgeVA7naqebvq9SraprGvzrRRQ2Ri,%function
 b__MAFg3__110funerq_cgeVA7naqebvq9SraprGvzrRRQ2Ri:
 nop
@@ -2018,7 +2018,7 @@
 b__MA7naqebvq2hv9Genafsbez8nofVfBarRs:
 nop
 .text
-.globl b__MA7naqebvq2fcVAF_5SraprRR5pyrneRi
+.weak b__MA7naqebvq2fcVAF_5SraprRR5pyrneRi
 .type b__MA7naqebvq2fcVAF_5SraprRR5pyrneRi,%function
 b__MA7naqebvq2fcVAF_5SraprRR5pyrneRi:
 nop
@@ -2048,7 +2048,7 @@
 b__MA7naqebvq10PbybeFcnprP1REXAFg3__112onfvp_fgevatVpAF1_11pune_genvgfVpRRAF1_9nyybpngbeVpRRRREXAF_7qrgnvyf6GZng33VsRRAF1_8shapgvbaVSssRRRFU_FU_:
 nop
 .text
-.globl b__MAFg3__110__shapgvba6__shapVCQbSssRAF_9nyybpngbeVF3_RRSssRRpyRBs
+.weak b__MAFg3__110__shapgvba6__shapVCQbSssRAF_9nyybpngbeVF3_RRSssRRpyRBs
 .type b__MAFg3__110__shapgvba6__shapVCQbSssRAF_9nyybpngbeVF3_RRSssRRpyRBs,%function
 b__MAFg3__110__shapgvba6__shapVCQbSssRAF_9nyybpngbeVF3_RRSssRRpyRBs:
 nop
@@ -2058,7 +2058,7 @@
 b__MAX7naqebvq9SraprGvzr19trgPnpurqFvtanyGvzrRi:
 nop
 .text
-.globl b__MAFg3__15qrdhrVAF_8jrnx_cgeVA7naqebvq9SraprGvzrRRRAF_9nyybpngbeVF4_RRR19__nqq_onpx_pncnpvglRi
+.weak b__MAFg3__15qrdhrVAF_8jrnx_cgeVA7naqebvq9SraprGvzrRRRAF_9nyybpngbeVF4_RRR19__nqq_onpx_pncnpvglRi
 .type b__MAFg3__15qrdhrVAF_8jrnx_cgeVA7naqebvq9SraprGvzrRRRAF_9nyybpngbeVF4_RRR19__nqq_onpx_pncnpvglRi,%function
 b__MAFg3__15qrdhrVAF_8jrnx_cgeVA7naqebvq9SraprGvzrRRRAF_9nyybpngbeVF4_RRR19__nqq_onpx_pncnpvglRi:
 nop
@@ -2078,12 +2078,12 @@
 b__MA7naqebvq6Ertvba3frgRvv:
 nop
 .text
-.globl b__MAFg3__114__fcyvg_ohssreVCAF_8jrnx_cgeVA7naqebvq9SraprGvzrRRRAF_9nyybpngbeVF5_RRR9chfu_onpxRBF5_
+.weak b__MAFg3__114__fcyvg_ohssreVCAF_8jrnx_cgeVA7naqebvq9SraprGvzrRRRAF_9nyybpngbeVF5_RRR9chfu_onpxRBF5_
 .type b__MAFg3__114__fcyvg_ohssreVCAF_8jrnx_cgeVA7naqebvq9SraprGvzrRRRAF_9nyybpngbeVF5_RRR9chfu_onpxRBF5_,%function
 b__MAFg3__114__fcyvg_ohssreVCAF_8jrnx_cgeVA7naqebvq9SraprGvzrRRRAF_9nyybpngbeVF5_RRR9chfu_onpxRBF5_:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_4cnveVAF_8shapgvbaVSiCizRRRF3_RRAF_9nyybpngbeVF6_RRR24__rzcynpr_onpx_fybj_cnguVWEF5_EF3_RRRiQcBG_
+.weak b__MAFg3__16irpgbeVAF_4cnveVAF_8shapgvbaVSiCizRRRF3_RRAF_9nyybpngbeVF6_RRR24__rzcynpr_onpx_fybj_cnguVWEF5_EF3_RRRiQcBG_
 .type b__MAFg3__16irpgbeVAF_4cnveVAF_8shapgvbaVSiCizRRRF3_RRAF_9nyybpngbeVF6_RRR24__rzcynpr_onpx_fybj_cnguVWEF5_EF3_RRRiQcBG_,%function
 b__MAFg3__16irpgbeVAF_4cnveVAF_8shapgvbaVSiCizRRRF3_RRAF_9nyybpngbeVF6_RRR24__rzcynpr_onpx_fybj_cnguVWEF5_EF3_RRRiQcBG_:
 nop
@@ -2208,7 +2208,7 @@
 b__MAX7naqebvq2hv9Genafsbez4glcrRi:
 nop
 .text
-.globl b__MAFg3__110__shapgvba6__shapVAF_6__ovaqVESsssRWEXAF_12cynprubyqref4__cuVYv1RRRsRRRAF_9nyybpngbeVFN_RRSssRRpyRBs
+.weak b__MAFg3__110__shapgvba6__shapVAF_6__ovaqVESsssRWEXAF_12cynprubyqref4__cuVYv1RRRsRRRAF_9nyybpngbeVFN_RRSssRRpyRBs
 .type b__MAFg3__110__shapgvba6__shapVAF_6__ovaqVESsssRWEXAF_12cynprubyqref4__cuVYv1RRRsRRRAF_9nyybpngbeVFN_RRSssRRpyRBs,%function
 b__MAFg3__110__shapgvba6__shapVAF_6__ovaqVESsssRWEXAF_12cynprubyqref4__cuVYv1RRRsRRRAF_9nyybpngbeVFN_RRSssRRpyRBs:
 nop
@@ -2233,7 +2233,7 @@
 b__MA7naqebvq10PbybeFcnpr4fETORi:
 nop
 .text
-.globl b__MAXFg3__110__shapgvba6__shapVAF_6__ovaqVESsssRWEXAF_12cynprubyqref4__cuVYv1RRRsRRRAF_9nyybpngbeVFN_RRSssRR7__pybarRCAF0_6__onfrVFQ_RR
+.weak b__MAXFg3__110__shapgvba6__shapVAF_6__ovaqVESsssRWEXAF_12cynprubyqref4__cuVYv1RRRsRRRAF_9nyybpngbeVFN_RRSssRR7__pybarRCAF0_6__onfrVFQ_RR
 .type b__MAXFg3__110__shapgvba6__shapVAF_6__ovaqVESsssRWEXAF_12cynprubyqref4__cuVYv1RRRsRRRAF_9nyybpngbeVFN_RRSssRR7__pybarRCAF0_6__onfrVFQ_RR,%function
 b__MAXFg3__110__shapgvba6__shapVAF_6__ovaqVESsssRWEXAF_12cynprubyqref4__cuVYv1RRRsRRRAF_9nyybpngbeVFN_RRSssRR7__pybarRCAF0_6__onfrVFQ_RR:
 nop
@@ -2243,12 +2243,12 @@
 b__MGIA7naqebvq13TencuvpOhssreR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq9FvatyrgbaVAF_19TencuvpOhssreZnccreRRQ2Ri
+.weak b__MA7naqebvq9FvatyrgbaVAF_19TencuvpOhssreZnccreRRQ2Ri
 .type b__MA7naqebvq9FvatyrgbaVAF_19TencuvpOhssreZnccreRRQ2Ri,%function
 b__MA7naqebvq9FvatyrgbaVAF_19TencuvpOhssreZnccreRRQ2Ri:
 nop
 .text
-.globl b__MAFg3__110__shapgvba6__shapVAF_6__ovaqVESssEXA7naqebvq10PbybeFcnpr18GenafsreCnenzrgrefRRWEXAF_12cynprubyqref4__cuVYv1RRRF7_RRRAF_9nyybpngbeVFS_RRSssRRpyRBs
+.weak b__MAFg3__110__shapgvba6__shapVAF_6__ovaqVESssEXA7naqebvq10PbybeFcnpr18GenafsreCnenzrgrefRRWEXAF_12cynprubyqref4__cuVYv1RRRF7_RRRAF_9nyybpngbeVFS_RRSssRRpyRBs
 .type b__MAFg3__110__shapgvba6__shapVAF_6__ovaqVESssEXA7naqebvq10PbybeFcnpr18GenafsreCnenzrgrefRRWEXAF_12cynprubyqref4__cuVYv1RRRF7_RRRAF_9nyybpngbeVFS_RRSssRRpyRBs,%function
 b__MAFg3__110__shapgvba6__shapVAF_6__ovaqVESssEXA7naqebvq10PbybeFcnpr18GenafsreCnenzrgrefRRWEXAF_12cynprubyqref4__cuVYv1RRRF7_RRRAF_9nyybpngbeVFS_RRSssRRpyRBs:
 nop
@@ -2263,12 +2263,12 @@
 b__MA7naqebvq9SraprGvzrP1RBAF_2fcVAF_5SraprRRR:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVCX13angvir_unaqyrAF_22TencuvpOhssreNyybpngbe11nyybp_erp_gRRRR10qb_pbzcnerRCXiFN_
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVCX13angvir_unaqyrAF_22TencuvpOhssreNyybpngbe11nyybp_erp_gRRRR10qb_pbzcnerRCXiFN_
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVCX13angvir_unaqyrAF_22TencuvpOhssreNyybpngbe11nyybp_erp_gRRRR10qb_pbzcnerRCXiFN_,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVCX13angvir_unaqyrAF_22TencuvpOhssreNyybpngbe11nyybp_erp_gRRRR10qb_pbzcnerRCXiFN_:
 nop
 .text
-.globl b__MA7naqebvq9FvatyrgbaVAF_19TencuvpOhssreZnccreRR11trgVafgnaprRi
+.weak b__MA7naqebvq9FvatyrgbaVAF_19TencuvpOhssreZnccreRR11trgVafgnaprRi
 .type b__MA7naqebvq9FvatyrgbaVAF_19TencuvpOhssreZnccreRR11trgVafgnaprRi,%function
 b__MA7naqebvq9FvatyrgbaVAF_19TencuvpOhssreZnccreRR11trgVafgnaprRi:
 nop
@@ -2283,7 +2283,7 @@
 b__MA7naqebvq15OhssreUhoOhssre20vavgJvguOhssreGenvgfREXAF_10senzrjbexf9ohssreuho4I1_012OhssreGenvgfR:
 nop
 .text
-.globl b__MA7naqebvq2fcVAF_5SraprRRQ2Ri
+.weak b__MA7naqebvq2fcVAF_5SraprRRQ2Ri
 .type b__MA7naqebvq2fcVAF_5SraprRRQ2Ri,%function
 b__MA7naqebvq2fcVAF_5SraprRRQ2Ri:
 nop
@@ -2308,12 +2308,12 @@
 b__MA7naqebvq6ErtvbanFREXF0_:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_8jrnx_cgeVA7naqebvq9SraprGvzrRRRAF_9nyybpngbeVF4_RRR21__chfu_onpx_fybj_cnguVF4_RRiBG_
+.weak b__MAFg3__16irpgbeVAF_8jrnx_cgeVA7naqebvq9SraprGvzrRRRAF_9nyybpngbeVF4_RRR21__chfu_onpx_fybj_cnguVF4_RRiBG_
 .type b__MAFg3__16irpgbeVAF_8jrnx_cgeVA7naqebvq9SraprGvzrRRRAF_9nyybpngbeVF4_RRR21__chfu_onpx_fybj_cnguVF4_RRiBG_,%function
 b__MAFg3__16irpgbeVAF_8jrnx_cgeVA7naqebvq9SraprGvzrRRRAF_9nyybpngbeVF4_RRR21__chfu_onpx_fybj_cnguVF4_RRiBG_:
 nop
 .text
-.globl b__MA7naqebvq9FvatyrgbaVAF_22TencuvpOhssreNyybpngbeRRP2Ri
+.weak b__MA7naqebvq9FvatyrgbaVAF_22TencuvpOhssreNyybpngbeRRP2Ri
 .type b__MA7naqebvq9FvatyrgbaVAF_22TencuvpOhssreNyybpngbeRRP2Ri,%function
 b__MA7naqebvq9FvatyrgbaVAF_22TencuvpOhssreNyybpngbeRRP2Ri:
 nop
@@ -2323,7 +2323,7 @@
 b__MA7naqebvq6Ertvba7kbeFrysREXF0_:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_4ErpgRR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq6IrpgbeVAF_4ErpgRR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq6IrpgbeVAF_4ErpgRR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq6IrpgbeVAF_4ErpgRR10qb_qrfgeblRCiz:
 nop
diff --git a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_015.S b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_015.S
index fccb45d..3bb8a66 100644
--- a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_015.S
+++ b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_015.S
@@ -3,7 +3,7 @@
 .data
 .p2align 4
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_17CbvagreCebcregvrfRR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_17CbvagreCebcregvrfRR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_17CbvagreCebcregvrfRR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_17CbvagreCebcregvrfRR16qb_zbir_onpxjneqRCiCXiz:
 nop
@@ -18,12 +18,12 @@
 b__MA7naqebvq12VachgPunaary11fraqZrffntrRCXAF_12VachgZrffntrR:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_12VachgZrffntrRR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_12VachgZrffntrRR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_12VachgZrffntrRR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_12VachgZrffntrRR7qb_pbclRCiCXiz:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_13VachgPbafhzre10GbhpuFgngrRR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_13VachgPbafhzre10GbhpuFgngrRR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_13VachgPbafhzre10GbhpuFgngrRR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_13VachgPbafhzre10GbhpuFgngrRR15qb_zbir_sbejneqRCiCXiz:
 nop
@@ -43,12 +43,12 @@
 b__MA7naqebvq6XrlZncP2Ri:
 nop
 .data
-.globl b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_12XrlYnlbhgZnc3XrlRRRRR
+.weak b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_12XrlYnlbhgZnc3XrlRRRRR
 .type b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_12XrlYnlbhgZnc3XrlRRRRR,%object
 b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_12XrlYnlbhgZnc3XrlRRRRR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_12XrlYnlbhgZnc3YrqRRRRR
+.weak b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_12XrlYnlbhgZnc3YrqRRRRR
 .type b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_12XrlYnlbhgZnc3YrqRRRRR,%object
 b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_12XrlYnlbhgZnc3YrqRRRRR:
 .space __SIZEOF_POINTER__
@@ -58,7 +58,7 @@
 b__MA7naqebvq30VzchyfrIrybpvglGenpxreFgengrtlQ0Ri:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvCAF_15XrlPunenpgreZnc3XrlRRRR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvCAF_15XrlPunenpgreZnc3XrlRRRR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvCAF_15XrlPunenpgreZnc3XrlRRRR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvCAF_15XrlPunenpgreZnc3XrlRRRR10qb_qrfgeblRCiz:
 nop
@@ -73,7 +73,7 @@
 b__MA7naqebvq12XrlYnlbhgZnc6CnefreQ2Ri:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_12XrlYnlbhgZnc3YrqRRRR10qb_pbzcnerRCXiF7_
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_12XrlYnlbhgZnc3YrqRRRR10qb_pbzcnerRCXiF7_
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_12XrlYnlbhgZnc3YrqRRRR10qb_pbzcnerRCXiF7_,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_12XrlYnlbhgZnc3YrqRRRR10qb_pbzcnerRCXiF7_:
 nop
@@ -83,7 +83,7 @@
 b__MGPA7naqebvq14OaVachgSyvatreR8_AF_7VOvaqreR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGPA7naqebvq25OcFrgVachgJvaqbjfYvfgrareR0_AF_24VFrgVachgJvaqbjfYvfgrareR
+.weak b__MGPA7naqebvq25OcFrgVachgJvaqbjfYvfgrareR0_AF_24VFrgVachgJvaqbjfYvfgrareR
 .type b__MGPA7naqebvq25OcFrgVachgJvaqbjfYvfgrareR0_AF_24VFrgVachgJvaqbjfYvfgrareR,%object
 b__MGPA7naqebvq25OcFrgVachgJvaqbjfYvfgrareR0_AF_24VFrgVachgJvaqbjfYvfgrareR:
 .space __SIZEOF_POINTER__
@@ -113,7 +113,7 @@
 b__MA7naqebvq13VachgPbafhzre16hcqngrGbhpuFgngrREAF_12VachgZrffntrR:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_12XrlYnlbhgZnc3YrqRRRR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_12XrlYnlbhgZnc3YrqRRRR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_12XrlYnlbhgZnc3YrqRRRR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_12XrlYnlbhgZnc3YrqRRRR15qb_zbir_sbejneqRCiCXiz:
 nop
@@ -138,17 +138,17 @@
 b__MA7naqebvq15VachgQrivprVasbQ1Ri:
 nop
 .data
-.globl b__MGPA7naqebvq25OcFrgVachgJvaqbjfYvfgrareR0_AF_11OcVagresnprVAF_24VFrgVachgJvaqbjfYvfgrareRRR
+.weak b__MGPA7naqebvq25OcFrgVachgJvaqbjfYvfgrareR0_AF_11OcVagresnprVAF_24VFrgVachgJvaqbjfYvfgrareRRR
 .type b__MGPA7naqebvq25OcFrgVachgJvaqbjfYvfgrareR0_AF_11OcVagresnprVAF_24VFrgVachgJvaqbjfYvfgrareRRR,%object
 b__MGPA7naqebvq25OcFrgVachgJvaqbjfYvfgrareR0_AF_11OcVagresnprVAF_24VFrgVachgJvaqbjfYvfgrareRRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_13CbvagrePbbeqfRR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_13CbvagrePbbeqfRR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_13CbvagrePbbeqfRR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_13CbvagrePbbeqfRR8qb_fcyngRCiCXiz:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvvRRR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvvRRR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvvRRR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvvRRR12qb_pbafgehpgRCiz:
 nop
@@ -178,7 +178,7 @@
 b__MA7naqebvq13CbvagrePbbeqf14ernqSebzCnepryRCAF_6CnepryR:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_13CbvagrePbbeqfRR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq6IrpgbeVAF_13CbvagrePbbeqfRR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq6IrpgbeVAF_13CbvagrePbbeqfRR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq6IrpgbeVAF_13CbvagrePbbeqfRR12qb_pbafgehpgRCiz:
 nop
@@ -188,12 +188,12 @@
 b__MA7naqebvq15XrlPunenpgreZnc4ybnqREXAFg3__112onfvp_fgevatVpAF1_11pune_genvgfVpRRAF1_9nyybpngbeVpRRRRAF0_6SbezngRCAF_2fcVF0_RR:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_8NkvfVasbRRRR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_8NkvfVasbRRRR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_8NkvfVasbRRRR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_8NkvfVasbRRRR15qb_zbir_sbejneqRCiCXiz:
 nop
 .data
-.globl b__MGPA7naqebvq14OcVachgSyvatreR0_AF_13VVachgSyvatreR
+.weak b__MGPA7naqebvq14OcVachgSyvatreR0_AF_13VVachgSyvatreR
 .type b__MGPA7naqebvq14OcVachgSyvatreR0_AF_13VVachgSyvatreR,%object
 b__MGPA7naqebvq14OcVachgSyvatreR0_AF_13VVachgSyvatreR:
 .space __SIZEOF_POINTER__
@@ -223,7 +223,7 @@
 b__MA7naqebvq15XrlPunenpgreZnc25nqqFvatyrRcurzrenyZrgnXrlREAF_6IrpgbeVAF_8XrlRiragRRRvvoyvvCv:
 nop
 .data
-.globl b__MGIA7naqebvq6IrpgbeVAF_15XrlPunenpgreZnc6Cnefre8CebcreglRRR
+.weak b__MGIA7naqebvq6IrpgbeVAF_15XrlPunenpgreZnc6Cnefre8CebcreglRRR
 .type b__MGIA7naqebvq6IrpgbeVAF_15XrlPunenpgreZnc6Cnefre8CebcreglRRR,%object
 b__MGIA7naqebvq6IrpgbeVAF_15XrlPunenpgreZnc6Cnefre8CebcreglRRR:
 .space __SIZEOF_POINTER__
@@ -253,7 +253,7 @@
 b__MA7naqebvq23CbbyrqVachgRiragSnpgbelQ1Ri:
 nop
 .data
-.globl b__MGIA7naqebvq8XrlRiragR
+.weak b__MGIA7naqebvq8XrlRiragR
 .type b__MGIA7naqebvq8XrlRiragR,%object
 b__MGIA7naqebvq8XrlRiragR:
 .space __SIZEOF_POINTER__
@@ -283,7 +283,7 @@
 b__MAX7naqebvq29YrtnplIrybpvglGenpxreFgengrtl12trgRfgvzngbeRwCAF_15IrybpvglGenpxre9RfgvzngbeR:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVCAF_8XrlRiragRR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVCAF_8XrlRiragRR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVCAF_8XrlRiragRR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVCAF_8XrlRiragRR7qb_pbclRCiCXiz:
 nop
@@ -293,7 +293,7 @@
 b__MA7naqebvq25vfXrlobneqFcrpvnyShapgvbaRCXAF_11CebcreglZncR:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvCAF_15XrlPunenpgreZnc3XrlRRRR10qb_pbzcnerRCXiF8_
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvCAF_15XrlPunenpgreZnc3XrlRRRR10qb_pbzcnerRCXiF8_
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvCAF_15XrlPunenpgreZnc3XrlRRRR10qb_pbzcnerRCXiF8_,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvCAF_15XrlPunenpgreZnc3XrlRRRR10qb_pbzcnerRCXiF8_:
 nop
@@ -308,7 +308,7 @@
 b__MA7naqebvq12XrlYnlbhgZnc6CnefreQ1Ri:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVCAF_11ZbgvbaRiragRR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVCAF_11ZbgvbaRiragRR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVCAF_11ZbgvbaRiragRR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVCAF_11ZbgvbaRiragRR7qb_pbclRCiCXiz:
 nop
@@ -333,12 +333,12 @@
 b__MA7naqebvq11ZbgvbaRirag5fpnyrRs:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_15XrlPunenpgreZnc6Cnefre8CebcreglRR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_15XrlPunenpgreZnc6Cnefre8CebcreglRR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_15XrlPunenpgreZnc6Cnefre8CebcreglRR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_15XrlPunenpgreZnc6Cnefre8CebcreglRR16qb_zbir_onpxjneqRCiCXiz:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_15XrlPunenpgreZnc6Cnefre8CebcreglRR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_15XrlPunenpgreZnc6Cnefre8CebcreglRR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_15XrlPunenpgreZnc6Cnefre8CebcreglRR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_15XrlPunenpgreZnc6Cnefre8CebcreglRR8qb_fcyngRCiCXiz:
 nop
@@ -353,17 +353,17 @@
 b__MA7naqebvq34VagrtengvatIrybpvglGenpxreFgengrtlQ0Ri:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_13CbvagrePbbeqfRR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_13CbvagrePbbeqfRR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_13CbvagrePbbeqfRR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_13CbvagrePbbeqfRR16qb_zbir_onpxjneqRCiCXiz:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVCAF_11ZbgvbaRiragRR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVCAF_11ZbgvbaRiragRR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVCAF_11ZbgvbaRiragRR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVCAF_11ZbgvbaRiragRR15qb_zbir_sbejneqRCiCXiz:
 nop
 .text
-.globl b__MAFg3__16irpgbeVvAF_9nyybpngbeVvRRR21__chfu_onpx_fybj_cnguVEXvRRiBG_
+.weak b__MAFg3__16irpgbeVvAF_9nyybpngbeVvRRR21__chfu_onpx_fybj_cnguVEXvRRiBG_
 .type b__MAFg3__16irpgbeVvAF_9nyybpngbeVvRRR21__chfu_onpx_fybj_cnguVEXvRRiBG_,%function
 b__MAFg3__16irpgbeVvAF_9nyybpngbeVvRRR21__chfu_onpx_fybj_cnguVEXvRRiBG_:
 nop
@@ -373,7 +373,7 @@
 b__MA7naqebvq15XrlPunenpgreZnc6Cnefre8cnefrXrlRi:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvvRRR10qb_pbzcnerRCXiF5_
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvvRRR10qb_pbzcnerRCXiF5_
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvvRRR10qb_pbzcnerRCXiF5_,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvvRRR10qb_pbzcnerRCXiF5_:
 nop
@@ -413,7 +413,7 @@
 b__MA7naqebvq20VachgNccyvpngvbaVasb4ernqREXAF_6CnepryR:
 nop
 .data
-.globl b__MGIA7naqebvq6IrpgbeVAF_13VachgPbafhzre5OngpuRRR
+.weak b__MGIA7naqebvq6IrpgbeVAF_13VachgPbafhzre5OngpuRRR
 .type b__MGIA7naqebvq6IrpgbeVAF_13VachgPbafhzre5OngpuRRR,%object
 b__MGIA7naqebvq6IrpgbeVAF_13VachgPbafhzre5OngpuRRR:
 .space __SIZEOF_POINTER__
@@ -428,12 +428,12 @@
 b__MA7naqebvq23CbbyrqVachgRiragSnpgbelQ0Ri:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvCAF_15XrlPunenpgreZnc3XrlRRRR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvCAF_15XrlPunenpgreZnc3XrlRRRR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvCAF_15XrlPunenpgreZnc3XrlRRRR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvCAF_15XrlPunenpgreZnc3XrlRRRR12qb_pbafgehpgRCiz:
 nop
 .data
-.globl b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvvRRRR
+.weak b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvvRRRR
 .type b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvvRRRR,%object
 b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvvRRRR:
 .space __SIZEOF_POINTER__
@@ -443,7 +443,7 @@
 b__MA7naqebvq14VachgChoyvfureQ1Ri:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_13VachgPbafhzre5OngpuRR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_13VachgPbafhzre5OngpuRR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_13VachgPbafhzre5OngpuRR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_13VachgPbafhzre5OngpuRR16qb_zbir_onpxjneqRCiCXiz:
 nop
@@ -468,7 +468,7 @@
 b__MA7naqebvq15VachgJvaqbjVasbP1REXAF_6CnepryR:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVCAF_8XrlRiragRR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVCAF_8XrlRiragRR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVCAF_8XrlRiragRR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVCAF_8XrlRiragRR8qb_fcyngRCiCXiz:
 nop
@@ -478,7 +478,7 @@
 b__MAX7naqebvq15GbhpuIvqrbSenzr9trgUrvtugRi:
 nop
 .data
-.globl b__MGGA7naqebvq25OcFrgVachgJvaqbjfYvfgrareR
+.weak b__MGGA7naqebvq25OcFrgVachgJvaqbjfYvfgrareR
 .type b__MGGA7naqebvq25OcFrgVachgJvaqbjfYvfgrareR,%object
 b__MGGA7naqebvq25OcFrgVachgJvaqbjfYvfgrareR:
 .space __SIZEOF_POINTER__
@@ -523,32 +523,32 @@
 b__MAX7naqebvq15XrlPunenpgreZnc6zncXrlRvvCv:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_12XrlYnlbhgZnc3YrqRRRR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_12XrlYnlbhgZnc3YrqRRRR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_12XrlYnlbhgZnc3YrqRRRR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_12XrlYnlbhgZnc3YrqRRRR10qb_qrfgeblRCiz:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_12XrlYnlbhgZnc3YrqRRRR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_12XrlYnlbhgZnc3YrqRRRR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_12XrlYnlbhgZnc3YrqRRRR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_12XrlYnlbhgZnc3YrqRRRR16qb_zbir_onpxjneqRCiCXiz:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_8NkvfVasbRRRR10qb_pbzcnerRCXiF6_
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_8NkvfVasbRRRR10qb_pbzcnerRCXiF6_
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_8NkvfVasbRRRR10qb_pbzcnerRCXiF6_,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_8NkvfVasbRRRR10qb_pbzcnerRCXiF6_:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_13VachgPbafhzre10GbhpuFgngrRR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq6IrpgbeVAF_13VachgPbafhzre10GbhpuFgngrRR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq6IrpgbeVAF_13VachgPbafhzre10GbhpuFgngrRR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq6IrpgbeVAF_13VachgPbafhzre10GbhpuFgngrRR12qb_pbafgehpgRCiz:
 nop
 .text
-.globl b__MA7naqebvq2fcVAF_15XrlPunenpgreZncRRQ2Ri
+.weak b__MA7naqebvq2fcVAF_15XrlPunenpgreZncRRQ2Ri
 .type b__MA7naqebvq2fcVAF_15XrlPunenpgreZncRRQ2Ri,%function
 b__MA7naqebvq2fcVAF_15XrlPunenpgreZncRRQ2Ri:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_13VachgPbafhzre10GbhpuFgngrRR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_13VachgPbafhzre10GbhpuFgngrRR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_13VachgPbafhzre10GbhpuFgngrRR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_13VachgPbafhzre10GbhpuFgngrRR7qb_pbclRCiCXiz:
 nop
@@ -558,7 +558,7 @@
 b__MGPA7naqebvq25OaFrgVachgJvaqbjfYvfgrareR0_AF_10VVagresnprR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIA7naqebvq6IrpgbeVyRR
+.weak b__MGIA7naqebvq6IrpgbeVyRR
 .type b__MGIA7naqebvq6IrpgbeVyRR,%object
 b__MGIA7naqebvq6IrpgbeVyRR:
 .space __SIZEOF_POINTER__
@@ -613,7 +613,7 @@
 b__MA7naqebvq35YrnfgFdhnerfIrybpvglGenpxreFgengrtlQ1Ri:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVCAF_8XrlRiragRR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq6IrpgbeVCAF_8XrlRiragRR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq6IrpgbeVCAF_8XrlRiragRR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq6IrpgbeVCAF_8XrlRiragRR12qb_pbafgehpgRCiz:
 nop
@@ -633,7 +633,7 @@
 b__MAX7naqebvq13VachgPbafhzre16unfQrsreerqRiragRi:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_12VachgZrffntrRR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq6IrpgbeVAF_12VachgZrffntrRR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq6IrpgbeVAF_12VachgZrffntrRR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq6IrpgbeVAF_12VachgZrffntrRR10qb_qrfgeblRCiz:
 nop
@@ -678,7 +678,7 @@
 b__MA7naqebvq15IrybpvglPbageby13frgCnenzrgrefREXAF_25IrybpvglPbagebyCnenzrgrefR:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_8NkvfVasbRRRR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_8NkvfVasbRRRR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_8NkvfVasbRRRR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_8NkvfVasbRRRR10qb_qrfgeblRCiz:
 nop
@@ -703,22 +703,22 @@
 b__MA7naqebvq15GbhpuIvqrbSenzrP2RwwAFg3__16irpgbeVfAF1_9nyybpngbeVfRRRREX7gvzriny:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_13CbvagrePbbeqfRR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_13CbvagrePbbeqfRR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_13CbvagrePbbeqfRR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_13CbvagrePbbeqfRR7qb_pbclRCiCXiz:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVCAF_8XrlRiragRR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVCAF_8XrlRiragRR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVCAF_8XrlRiragRR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVCAF_8XrlRiragRR16qb_zbir_onpxjneqRCiCXiz:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVyR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVyR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVyR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVyR16qb_zbir_onpxjneqRCiCXiz:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVyR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVyR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVyR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVyR8qb_fcyngRCiCXiz:
 nop
@@ -728,12 +728,12 @@
 b__MGPA7naqebvq13VVachgSyvatreR0_AF_10VVagresnprR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGPA7naqebvq14OcVachgSyvatreR0_AF_10VVagresnprR
+.weak b__MGPA7naqebvq14OcVachgSyvatreR0_AF_10VVagresnprR
 .type b__MGPA7naqebvq14OcVachgSyvatreR0_AF_10VVagresnprR,%object
 b__MGPA7naqebvq14OcVachgSyvatreR0_AF_10VVagresnprR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIA7naqebvq6IrpgbeVCAF_8XrlRiragRRR
+.weak b__MGIA7naqebvq6IrpgbeVCAF_8XrlRiragRRR
 .type b__MGIA7naqebvq6IrpgbeVCAF_8XrlRiragRRR,%object
 b__MGIA7naqebvq6IrpgbeVCAF_8XrlRiragRRR:
 .space __SIZEOF_POINTER__
@@ -758,12 +758,12 @@
 b__MA7naqebvq35YrnfgFdhnerfIrybpvglGenpxreFgengrtlQ0Ri:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_8NkvfVasbRRRR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_8NkvfVasbRRRR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_8NkvfVasbRRRR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_8NkvfVasbRRRR16qb_zbir_onpxjneqRCiCXiz:
 nop
 .data
-.globl b__MGIA7naqebvq14OcVachgSyvatreR
+.weak b__MGIA7naqebvq14OcVachgSyvatreR
 .type b__MGIA7naqebvq14OcVachgSyvatreR,%object
 b__MGIA7naqebvq14OcVachgSyvatreR:
 .space __SIZEOF_POINTER__
@@ -798,7 +798,7 @@
 b__MA7naqebvq14VachgChoyvfure18choyvfuZbgvbaRiragRwvvvvvvvvvAF_20ZbgvbaPynffvsvpngvbaRssssyywCXAF_17CbvagreCebcregvrfRCXAF_13CbvagrePbbeqfR:
 nop
 .data
-.globl b__MGPA7naqebvq25OcFrgVachgJvaqbjfYvfgrareR8_AF_9OcErsOnfrR
+.weak b__MGPA7naqebvq25OcFrgVachgJvaqbjfYvfgrareR8_AF_9OcErsOnfrR
 .type b__MGPA7naqebvq25OcFrgVachgJvaqbjfYvfgrareR8_AF_9OcErsOnfrR,%object
 b__MGPA7naqebvq25OcFrgVachgJvaqbjfYvfgrareR8_AF_9OcErsOnfrR:
 .space __SIZEOF_POINTER__
@@ -808,7 +808,7 @@
 b__MAX7naqebvq13CbvagrePbbeqf13jevgrGbCnepryRCAF_6CnepryR:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_12XrlYnlbhgZnc3XrlRRRR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_12XrlYnlbhgZnc3XrlRRRR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_12XrlYnlbhgZnc3XrlRRRR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_12XrlYnlbhgZnc3XrlRRRR8qb_fcyngRCiCXiz:
 nop
@@ -838,7 +838,7 @@
 b__MA7naqebvq24VFrgVachgJvaqbjfYvfgrareQ2Ri:
 nop
 .data
-.globl b__MGIA7naqebvq6IrpgbeVAF_13CbvagrePbbeqfRRR
+.weak b__MGIA7naqebvq6IrpgbeVAF_13CbvagrePbbeqfRRR
 .type b__MGIA7naqebvq6IrpgbeVAF_13CbvagrePbbeqfRRR,%object
 b__MGIA7naqebvq6IrpgbeVAF_13CbvagrePbbeqfRRR:
 .space __SIZEOF_POINTER__
@@ -878,7 +878,7 @@
 b__MAX7naqebvq12XrlYnlbhgZnc7zncNkvfRvCAF_8NkvfVasbR:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_12VachgZrffntrRR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_12VachgZrffntrRR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_12VachgZrffntrRR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_12VachgZrffntrRR15qb_zbir_sbejneqRCiCXiz:
 nop
@@ -893,7 +893,7 @@
 b__MAX7naqebvq11ZbgvbaRirag15trgEnjNkvfInyhrRvz:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVCAF_11ZbgvbaRiragRR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq6IrpgbeVCAF_11ZbgvbaRiragRR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq6IrpgbeVCAF_11ZbgvbaRiragRR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq6IrpgbeVCAF_11ZbgvbaRiragRR10qb_qrfgeblRCiz:
 nop
@@ -923,7 +923,7 @@
 b__MAX7naqebvq11ZbgvbaRirag22trgUvfgbevpnyNkvfInyhrRvzz:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_12XrlYnlbhgZnc3XrlRRRR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_12XrlYnlbhgZnc3XrlRRRR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_12XrlYnlbhgZnc3XrlRRRR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_12XrlYnlbhgZnc3XrlRRRR12qb_pbafgehpgRCiz:
 nop
@@ -938,7 +938,7 @@
 b__MA7naqebvq8XrlRirag19trgXrlPbqrSebzYnoryRCXp:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_17CbvagreCebcregvrfRR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq6IrpgbeVAF_17CbvagreCebcregvrfRR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq6IrpgbeVAF_17CbvagreCebcregvrfRR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq6IrpgbeVAF_17CbvagreCebcregvrfRR10qb_qrfgeblRCiz:
 nop
@@ -988,7 +988,7 @@
 b__MGPA7naqebvq14OaVachgSyvatreR0_AF_10VVagresnprR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIA7naqebvq25OcFrgVachgJvaqbjfYvfgrareR
+.weak b__MGIA7naqebvq25OcFrgVachgJvaqbjfYvfgrareR
 .type b__MGIA7naqebvq25OcFrgVachgJvaqbjfYvfgrareR,%object
 b__MGIA7naqebvq25OcFrgVachgJvaqbjfYvfgrareR:
 .space __SIZEOF_POINTER__
@@ -1073,12 +1073,12 @@
 b__MA7naqebvq23CbbyrqVachgRiragSnpgbelP1Rz:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVyR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVyR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVyR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVyR15qb_zbir_sbejneqRCiCXiz:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvvRRR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvvRRR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvvRRR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvvRRR10qb_qrfgeblRCiz:
 nop
@@ -1113,12 +1113,12 @@
 b__MA7naqebvq13CbvagrePbbeqf11gbbZnalNkrfRv:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_12XrlYnlbhgZnc3XrlRRRR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_12XrlYnlbhgZnc3XrlRRRR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_12XrlYnlbhgZnc3XrlRRRR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_12XrlYnlbhgZnc3XrlRRRR15qb_zbir_sbejneqRCiCXiz:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_8NkvfVasbRRRR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_8NkvfVasbRRRR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_8NkvfVasbRRRR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_8NkvfVasbRRRR7qb_pbclRCiCXiz:
 nop
@@ -1128,7 +1128,7 @@
 b__MA7naqebvq13VachgPbafhzreP1REXAF_2fcVAF_12VachgPunaaryRRR:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_12VachgZrffntrRR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq6IrpgbeVAF_12VachgZrffntrRR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq6IrpgbeVAF_12VachgZrffntrRR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq6IrpgbeVAF_12VachgZrffntrRR12qb_pbafgehpgRCiz:
 nop
@@ -1163,7 +1163,7 @@
 b__MA7naqebvq17CbvagreCebcregvrf8pbclSebzREXF0_:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVyR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVyR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVyR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVyR7qb_pbclRCiCXiz:
 nop
@@ -1173,7 +1173,7 @@
 b__MA7naqebvq13VVachgSyvatreQ2Ri:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_13VachgPbafhzre5OngpuRR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_13VachgPbafhzre5OngpuRR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_13VachgPbafhzre5OngpuRR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_13VachgPbafhzre5OngpuRR8qb_fcyngRCiCXiz:
 nop
@@ -1218,12 +1218,12 @@
 b__MA7naqebvq12VachgPunaaryQ2Ri:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_13VachgPbafhzre10GbhpuFgngrRR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq6IrpgbeVAF_13VachgPbafhzre10GbhpuFgngrRR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq6IrpgbeVAF_13VachgPbafhzre10GbhpuFgngrRR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq6IrpgbeVAF_13VachgPbafhzre10GbhpuFgngrRR10qb_qrfgeblRCiz:
 nop
 .text
-.globl b__MA7naqebvq11OaVagresnprVAF_24VFrgVachgJvaqbjfYvfgrareRR10baNfOvaqreRi
+.weak b__MA7naqebvq11OaVagresnprVAF_24VFrgVachgJvaqbjfYvfgrareRR10baNfOvaqreRi
 .type b__MA7naqebvq11OaVagresnprVAF_24VFrgVachgJvaqbjfYvfgrareRR10baNfOvaqreRi,%function
 b__MA7naqebvq11OaVagresnprVAF_24VFrgVachgJvaqbjfYvfgrareRR10baNfOvaqreRi:
 nop
@@ -1233,22 +1233,22 @@
 b__MA7naqebvq24VFrgVachgJvaqbjfYvfgrareQ0Ri:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq15VachgQrivprVasb11ZbgvbaEnatrRAF_9nyybpngbeVF3_RRR21__chfu_onpx_fybj_cnguVEXF3_RRiBG_
+.weak b__MAFg3__16irpgbeVA7naqebvq15VachgQrivprVasb11ZbgvbaEnatrRAF_9nyybpngbeVF3_RRR21__chfu_onpx_fybj_cnguVEXF3_RRiBG_
 .type b__MAFg3__16irpgbeVA7naqebvq15VachgQrivprVasb11ZbgvbaEnatrRAF_9nyybpngbeVF3_RRR21__chfu_onpx_fybj_cnguVEXF3_RRiBG_,%function
 b__MAFg3__16irpgbeVA7naqebvq15VachgQrivprVasb11ZbgvbaEnatrRAF_9nyybpngbeVF3_RRR21__chfu_onpx_fybj_cnguVEXF3_RRiBG_:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvCAF_15XrlPunenpgreZnc3XrlRRRR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvCAF_15XrlPunenpgreZnc3XrlRRRR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvCAF_15XrlPunenpgreZnc3XrlRRRR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvCAF_15XrlPunenpgreZnc3XrlRRRR8qb_fcyngRCiCXiz:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_12XrlYnlbhgZnc3XrlRRRR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_12XrlYnlbhgZnc3XrlRRRR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_12XrlYnlbhgZnc3XrlRRRR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_12XrlYnlbhgZnc3XrlRRRR16qb_zbir_onpxjneqRCiCXiz:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_8NkvfVasbRRRR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_8NkvfVasbRRRR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_8NkvfVasbRRRR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_8NkvfVasbRRRR12qb_pbafgehpgRCiz:
 nop
@@ -1288,22 +1288,22 @@
 b__MA7naqebvq13CbvagrePbbeqf8pbclSebzREXF0_:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_13CbvagrePbbeqfRR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_13CbvagrePbbeqfRR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_13CbvagrePbbeqfRR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_13CbvagrePbbeqfRR15qb_zbir_sbejneqRCiCXiz:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVCAF_11ZbgvbaRiragRR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVCAF_11ZbgvbaRiragRR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVCAF_11ZbgvbaRiragRR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVCAF_11ZbgvbaRiragRR16qb_zbir_onpxjneqRCiCXiz:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVCAF_8XrlRiragRR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVCAF_8XrlRiragRR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVCAF_8XrlRiragRR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVCAF_8XrlRiragRR15qb_zbir_sbejneqRCiCXiz:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_13VachgPbafhzre8FrdPunvaRR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq6IrpgbeVAF_13VachgPbafhzre8FrdPunvaRR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq6IrpgbeVAF_13VachgPbafhzre8FrdPunvaRR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq6IrpgbeVAF_13VachgPbafhzre8FrdPunvaRR10qb_qrfgeblRCiz:
 nop
@@ -1333,7 +1333,7 @@
 b__MGIA7naqebvq23CbbyrqVachgRiragSnpgbelR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIA7naqebvq6IrpgbeVAF_17CbvagreCebcregvrfRRR
+.weak b__MGIA7naqebvq6IrpgbeVAF_17CbvagreCebcregvrfRRR
 .type b__MGIA7naqebvq6IrpgbeVAF_17CbvagreCebcregvrfRRR,%object
 b__MGIA7naqebvq6IrpgbeVAF_17CbvagreCebcregvrfRRR:
 .space __SIZEOF_POINTER__
@@ -1348,12 +1348,12 @@
 b__MA7naqebvq15XrlPunenpgreZnc3XrlQ2Ri:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_13VachgPbafhzre10GbhpuFgngrRR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_13VachgPbafhzre10GbhpuFgngrRR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_13VachgPbafhzre10GbhpuFgngrRR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_13VachgPbafhzre10GbhpuFgngrRR16qb_zbir_onpxjneqRCiCXiz:
 nop
 .data
-.globl b__MGIA7naqebvq6IrpgbeVAF_13VachgPbafhzre8FrdPunvaRRR
+.weak b__MGIA7naqebvq6IrpgbeVAF_13VachgPbafhzre8FrdPunvaRRR
 .type b__MGIA7naqebvq6IrpgbeVAF_13VachgPbafhzre8FrdPunvaRRR,%object
 b__MGIA7naqebvq6IrpgbeVAF_13VachgPbafhzre8FrdPunvaRRR:
 .space __SIZEOF_POINTER__
@@ -1378,7 +1378,7 @@
 b__MAX7naqebvq12VachgPunaary8trgGbxraRi:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_15XrlPunenpgreZnc6Cnefre8CebcreglRR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_15XrlPunenpgreZnc6Cnefre8CebcreglRR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_15XrlPunenpgreZnc6Cnefre8CebcreglRR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_15XrlPunenpgreZnc6Cnefre8CebcreglRR7qb_pbclRCiCXiz:
 nop
@@ -1398,7 +1398,7 @@
 b__MA7naqebvq13VachgPbafhzre14erjevgrZrffntrREAF0_10GbhpuFgngrREAF_12VachgZrffntrR:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_13CbvagrePbbeqfRR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq6IrpgbeVAF_13CbvagrePbbeqfRR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq6IrpgbeVAF_13CbvagrePbbeqfRR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq6IrpgbeVAF_13CbvagrePbbeqfRR10qb_qrfgeblRCiz:
 nop
@@ -1413,7 +1413,7 @@
 b__MA7naqebvq12VachgPunaaryQ1Ri:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_15XrlPunenpgreZnc6Cnefre8CebcreglRR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq6IrpgbeVAF_15XrlPunenpgreZnc6Cnefre8CebcreglRR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq6IrpgbeVAF_15XrlPunenpgreZnc6Cnefre8CebcreglRR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq6IrpgbeVAF_15XrlPunenpgreZnc6Cnefre8CebcreglRR12qb_pbafgehpgRCiz:
 nop
@@ -1423,7 +1423,7 @@
 b__MA7naqebvq13IveghnyXrlZncP1Ri:
 nop
 .text
-.globl b__MA7naqebvq11OaVagresnprVAF_13VVachgSyvatreRR10baNfOvaqreRi
+.weak b__MA7naqebvq11OaVagresnprVAF_13VVachgSyvatreRR10baNfOvaqreRi
 .type b__MA7naqebvq11OaVagresnprVAF_13VVachgSyvatreRR10baNfOvaqreRi,%function
 b__MA7naqebvq11OaVagresnprVAF_13VVachgSyvatreRR10baNfOvaqreRi:
 nop
@@ -1508,7 +1508,7 @@
 b__MA7naqebvq6XrlZnc13ybnqXrlYnlbhgREXAF_21VachgQrivprVqragvsvreREXAFg3__112onfvp_fgevatVpAF4_11pune_genvgfVpRRAF4_9nyybpngbeVpRRRR:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_15XrlPunenpgreZnc6Cnefre8CebcreglRR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq6IrpgbeVAF_15XrlPunenpgreZnc6Cnefre8CebcreglRR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq6IrpgbeVAF_15XrlPunenpgreZnc6Cnefre8CebcreglRR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq6IrpgbeVAF_15XrlPunenpgreZnc6Cnefre8CebcreglRR10qb_qrfgeblRCiz:
 nop
@@ -1528,7 +1528,7 @@
 b__MAX7naqebvq35YrnfgFdhnerfIrybpvglGenpxreFgengrtl12trgRfgvzngbeRwCAF_15IrybpvglGenpxre9RfgvzngbeR:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_13VachgPbafhzre5OngpuRR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq6IrpgbeVAF_13VachgPbafhzre5OngpuRR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq6IrpgbeVAF_13VachgPbafhzre5OngpuRR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq6IrpgbeVAF_13VachgPbafhzre5OngpuRR12qb_pbafgehpgRCiz:
 nop
@@ -1593,12 +1593,12 @@
 b__MA7naqebvq6XrlZncQ1Ri:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvvRRR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvvRRR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvvRRR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvvRRR15qb_zbir_sbejneqRCiCXiz:
 nop
 .data
-.globl b__MGIA7naqebvq6IrpgbeVAF_12VachgZrffntrRRR
+.weak b__MGIA7naqebvq6IrpgbeVAF_12VachgZrffntrRRR
 .type b__MGIA7naqebvq6IrpgbeVAF_12VachgZrffntrRRR,%object
 b__MGIA7naqebvq6IrpgbeVAF_12VachgZrffntrRRR:
 .space __SIZEOF_POINTER__
@@ -1608,12 +1608,12 @@
 b__MA7naqebvq12XrlYnlbhgZnc6Cnefre8cnefrYrqRi:
 nop
 .data
-.globl b__MGIA7naqebvq6IrpgbeVAF_13VachgPbafhzre10GbhpuFgngrRRR
+.weak b__MGIA7naqebvq6IrpgbeVAF_13VachgPbafhzre10GbhpuFgngrRRR
 .type b__MGIA7naqebvq6IrpgbeVAF_13VachgPbafhzre10GbhpuFgngrRRR,%object
 b__MGIA7naqebvq6IrpgbeVAF_13VachgPbafhzre10GbhpuFgngrRRR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIA7naqebvq6IrpgbeVCAF_11ZbgvbaRiragRRR
+.weak b__MGIA7naqebvq6IrpgbeVCAF_11ZbgvbaRiragRRR
 .type b__MGIA7naqebvq6IrpgbeVCAF_11ZbgvbaRiragRRR,%object
 b__MGIA7naqebvq6IrpgbeVCAF_11ZbgvbaRiragRRR:
 .space __SIZEOF_POINTER__
@@ -1633,12 +1633,12 @@
 b__MA7naqebvq15XrlPunenpgreZnc8OrunivbeP2Ri:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvCAF_15XrlPunenpgreZnc3XrlRRRR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvCAF_15XrlPunenpgreZnc3XrlRRRR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvCAF_15XrlPunenpgreZnc3XrlRRRR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvCAF_15XrlPunenpgreZnc3XrlRRRR16qb_zbir_onpxjneqRCiCXiz:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq15VachgJvaqbjVasbRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVF2_RRiBG_
+.weak b__MAFg3__16irpgbeVA7naqebvq15VachgJvaqbjVasbRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVF2_RRiBG_
 .type b__MAFg3__16irpgbeVA7naqebvq15VachgJvaqbjVasbRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVF2_RRiBG_,%function
 b__MAFg3__16irpgbeVA7naqebvq15VachgJvaqbjVasbRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVF2_RRiBG_:
 nop
@@ -1658,7 +1658,7 @@
 b__MA7naqebvq34VagrtengvatIrybpvglGenpxreFgengrtl5pyrneRi:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVCAF_11ZbgvbaRiragRR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq6IrpgbeVCAF_11ZbgvbaRiragRR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq6IrpgbeVCAF_11ZbgvbaRiragRR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq6IrpgbeVCAF_11ZbgvbaRiragRR12qb_pbafgehpgRCiz:
 nop
@@ -1673,7 +1673,7 @@
 b__MA7naqebvq15IrybpvglGenpxreP1RCXp:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVCAF_8XrlRiragRR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq6IrpgbeVCAF_8XrlRiragRR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq6IrpgbeVCAF_8XrlRiragRR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq6IrpgbeVCAF_8XrlRiragRR10qb_qrfgeblRCiz:
 nop
@@ -1688,12 +1688,12 @@
 b__MGIA7naqebvq22VachgNccyvpngvbaUnaqyrR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_12XrlYnlbhgZnc3YrqRRRR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_12XrlYnlbhgZnc3YrqRRRR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_12XrlYnlbhgZnc3YrqRRRR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_12XrlYnlbhgZnc3YrqRRRR8qb_fcyngRCiCXiz:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_12VachgZrffntrRR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_12VachgZrffntrRR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_12VachgZrffntrRR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_12VachgZrffntrRR8qb_fcyngRCiCXiz:
 nop
@@ -1743,7 +1743,7 @@
 b__MAX7naqebvq12XrlYnlbhgZnc6trgXrlRvv:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_12XrlYnlbhgZnc3YrqRRRR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_12XrlYnlbhgZnc3YrqRRRR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_12XrlYnlbhgZnc3YrqRRRR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_12XrlYnlbhgZnc3YrqRRRR12qb_pbafgehpgRCiz:
 nop
@@ -1768,12 +1768,12 @@
 b__MA7naqebvq15XrlPunenpgreZnc8OrunivbeP1Ri:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_8NkvfVasbRRRR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_8NkvfVasbRRRR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_8NkvfVasbRRRR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_8NkvfVasbRRRR8qb_fcyngRCiCXiz:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_13VachgPbafhzre8FrdPunvaRR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_13VachgPbafhzre8FrdPunvaRR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_13VachgPbafhzre8FrdPunvaRR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_13VachgPbafhzre8FrdPunvaRR15qb_zbir_sbejneqRCiCXiz:
 nop
@@ -1783,7 +1783,7 @@
 b__MA7naqebvq29YrtnplIrybpvglGenpxreFgengrtlQ2Ri:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_17CbvagreCebcregvrfRR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_17CbvagreCebcregvrfRR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_17CbvagreCebcregvrfRR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_17CbvagreCebcregvrfRR7qb_pbclRCiCXiz:
 nop
@@ -1798,7 +1798,7 @@
 b__MAX7naqebvq13VVachgSyvatre22trgVagresnprQrfpevcgbeRi:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_13VachgPbafhzre8FrdPunvaRR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_13VachgPbafhzre8FrdPunvaRR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_13VachgPbafhzre8FrdPunvaRR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_13VachgPbafhzre8FrdPunvaRR7qb_pbclRCiCXiz:
 nop
@@ -1808,7 +1808,7 @@
 b__MAX7naqebvq34VagrtengvatIrybpvglGenpxreFgengrtl9vavgFgngrREAF0_5FgngrRyss:
 nop
 .data
-.globl b__MGPA7naqebvq25OcFrgVachgJvaqbjfYvfgrareR0_AF_10VVagresnprR
+.weak b__MGPA7naqebvq25OcFrgVachgJvaqbjfYvfgrareR0_AF_10VVagresnprR
 .type b__MGPA7naqebvq25OcFrgVachgJvaqbjfYvfgrareR0_AF_10VVagresnprR,%object
 b__MGPA7naqebvq25OcFrgVachgJvaqbjfYvfgrareR0_AF_10VVagresnprR:
 .space __SIZEOF_POINTER__
@@ -1833,12 +1833,12 @@
 b__MA7naqebvq24VFrgVachgJvaqbjfYvfgrareP2Ri:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_15XrlPunenpgreZnc6Cnefre8CebcreglRR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_15XrlPunenpgreZnc6Cnefre8CebcreglRR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_15XrlPunenpgreZnc6Cnefre8CebcreglRR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_15XrlPunenpgreZnc6Cnefre8CebcreglRR15qb_zbir_sbejneqRCiCXiz:
 nop
 .data
-.globl b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvCAF_15XrlPunenpgreZnc3XrlRRRRR
+.weak b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvCAF_15XrlPunenpgreZnc3XrlRRRRR
 .type b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvCAF_15XrlPunenpgreZnc3XrlRRRRR,%object
 b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvCAF_15XrlPunenpgreZnc3XrlRRRRR:
 .space __SIZEOF_POINTER__
@@ -1908,12 +1908,12 @@
 b__MAX7naqebvq20VachgNccyvpngvbaVasb5jevgrREAF_6CnepryR:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_17CbvagreCebcregvrfRR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq6IrpgbeVAF_17CbvagreCebcregvrfRR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq6IrpgbeVAF_17CbvagreCebcregvrfRR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq6IrpgbeVAF_17CbvagreCebcregvrfRR12qb_pbafgehpgRCiz:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVyR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq6IrpgbeVyR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq6IrpgbeVyR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq6IrpgbeVyR10qb_qrfgeblRCiz:
 nop
@@ -1943,7 +1943,7 @@
 b__MAX7naqebvq15VachgJvaqbjVasb8bireyncfRCXF0_:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_12XrlYnlbhgZnc3XrlRRRR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_12XrlYnlbhgZnc3XrlRRRR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_12XrlYnlbhgZnc3XrlRRRR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_12XrlYnlbhgZnc3XrlRRRR10qb_qrfgeblRCiz:
 nop
@@ -1983,7 +1983,7 @@
 b__MA7naqebvq11ZbgvbaRirag8trgYnoryRv:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVCAF_11ZbgvbaRiragRR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVCAF_11ZbgvbaRiragRR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVCAF_11ZbgvbaRiragRR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVCAF_11ZbgvbaRiragRR8qb_fcyngRCiCXiz:
 nop
@@ -2003,17 +2003,17 @@
 b__MA7naqebvq15IrybpvglGenpxre14perngrFgengrtlRCXp:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_17CbvagreCebcregvrfRR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_17CbvagreCebcregvrfRR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_17CbvagreCebcregvrfRR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_17CbvagreCebcregvrfRR15qb_zbir_sbejneqRCiCXiz:
 nop
 .data
-.globl b__MGIA7naqebvq11ZbgvbaRiragR
+.weak b__MGIA7naqebvq11ZbgvbaRiragR
 .type b__MGIA7naqebvq11ZbgvbaRiragR,%object
 b__MGIA7naqebvq11ZbgvbaRiragR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGGA7naqebvq14OcVachgSyvatreR
+.weak b__MGGA7naqebvq14OcVachgSyvatreR
 .type b__MGGA7naqebvq14OcVachgSyvatreR,%object
 b__MGGA7naqebvq14OcVachgSyvatreR:
 .space __SIZEOF_POINTER__
@@ -2023,12 +2023,12 @@
 b__MA7naqebvq13VachgPbafhzre27fraqHapunvarqSvavfurqFvtanyRwo:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_17CbvagreCebcregvrfRR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_17CbvagreCebcregvrfRR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_17CbvagreCebcregvrfRR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_17CbvagreCebcregvrfRR8qb_fcyngRCiCXiz:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_12XrlYnlbhgZnc3XrlRRRR10qb_pbzcnerRCXiF7_
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_12XrlYnlbhgZnc3XrlRRRR10qb_pbzcnerRCXiF7_
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_12XrlYnlbhgZnc3XrlRRRR10qb_pbzcnerRCXiF7_,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_12XrlYnlbhgZnc3XrlRRRR10qb_pbzcnerRCXiF7_:
 nop
@@ -2043,7 +2043,7 @@
 b__MA7naqebvq13IveghnyXrlZnc6CnefreQ2Ri:
 nop
 .data
-.globl b__MGPA7naqebvq14OcVachgSyvatreR0_AF_11OcVagresnprVAF_13VVachgSyvatreRRR
+.weak b__MGPA7naqebvq14OcVachgSyvatreR0_AF_11OcVagresnprVAF_13VVachgSyvatreRRR
 .type b__MGPA7naqebvq14OcVachgSyvatreR0_AF_11OcVagresnprVAF_13VVachgSyvatreRRR,%object
 b__MGPA7naqebvq14OcVachgSyvatreR0_AF_11OcVagresnprVAF_13VVachgSyvatreRRR:
 .space __SIZEOF_POINTER__
@@ -2088,12 +2088,12 @@
 b__MA7naqebvq15XrlPunenpgreZnc8OrunivbeP2REXF1_:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_12XrlYnlbhgZnc3XrlRRRR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_12XrlYnlbhgZnc3XrlRRRR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_12XrlYnlbhgZnc3XrlRRRR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_12XrlYnlbhgZnc3XrlRRRR7qb_pbclRCiCXiz:
 nop
 .data
-.globl b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_8NkvfVasbRRRRR
+.weak b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_8NkvfVasbRRRRR
 .type b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_8NkvfVasbRRRRR,%object
 b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_8NkvfVasbRRRRR:
 .space __SIZEOF_POINTER__
@@ -2113,7 +2113,7 @@
 b__MA7naqebvq15XrlPunenpgreZnc6fRzcglR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_13VachgPbafhzre5OngpuRR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_13VachgPbafhzre5OngpuRR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_13VachgPbafhzre5OngpuRR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_13VachgPbafhzre5OngpuRR7qb_pbclRCiCXiz:
 nop
@@ -2128,17 +2128,17 @@
 b__MAX7naqebvq13CbvagrePbbeqfrdREXF0_:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvvRRR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvvRRR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvvRRR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvvRRR16qb_zbir_onpxjneqRCiCXiz:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvvRRR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvvRRR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvvRRR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvvRRR7qb_pbclRCiCXiz:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq20IveghnyXrlQrsvavgvbaRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVEXF2_RRiBG_
+.weak b__MAFg3__16irpgbeVA7naqebvq20IveghnyXrlQrsvavgvbaRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVEXF2_RRiBG_
 .type b__MAFg3__16irpgbeVA7naqebvq20IveghnyXrlQrsvavgvbaRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVEXF2_RRiBG_,%function
 b__MAFg3__16irpgbeVA7naqebvq20IveghnyXrlQrsvavgvbaRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVEXF2_RRiBG_:
 nop
@@ -2178,7 +2178,7 @@
 b__MAX7naqebvq11ZbgvbaRirag25trgUvfgbevpnyEnjNkvfInyhrRvzz:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVyR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq6IrpgbeVyR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq6IrpgbeVyR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq6IrpgbeVyR12qb_pbafgehpgRCiz:
 nop
@@ -2198,7 +2198,7 @@
 b__MA7naqebvq22VachgNccyvpngvbaUnaqyrQ1Ri:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_13VachgPbafhzre8FrdPunvaRR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_13VachgPbafhzre8FrdPunvaRR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_13VachgPbafhzre8FrdPunvaRR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_13VachgPbafhzre8FrdPunvaRR16qb_zbir_onpxjneqRCiCXiz:
 nop
@@ -2218,7 +2218,7 @@
 b__MA7naqebvq6XrlZnc7trgCnguREXAF_21VachgQrivprVqragvsvreREXAFg3__112onfvp_fgevatVpAF4_11pune_genvgfVpRRAF4_9nyybpngbeVpRRRRAF_32VachgQrivprPbasvthengvbaSvyrGlcrR:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvCAF_15XrlPunenpgreZnc3XrlRRRR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvCAF_15XrlPunenpgreZnc3XrlRRRR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvCAF_15XrlPunenpgreZnc3XrlRRRR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvCAF_15XrlPunenpgreZnc3XrlRRRR15qb_zbir_sbejneqRCiCXiz:
 nop
@@ -2233,7 +2233,7 @@
 b__MA7naqebvq13VachgPbafhzreQ2Ri:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvvRRR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvvRRR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvvRRR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvvRRR8qb_fcyngRCiCXiz:
 nop
@@ -2248,7 +2248,7 @@
 b__MA7naqebvq13IveghnyXrlZnc6Cnefre17cnefrArkgVagSvryqRCv:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq15VachgQrivprVasb11ZbgvbaEnatrRAF_9nyybpngbeVF3_RRRP2REXF6_
+.weak b__MAFg3__16irpgbeVA7naqebvq15VachgQrivprVasb11ZbgvbaEnatrRAF_9nyybpngbeVF3_RRRP2REXF6_
 .type b__MAFg3__16irpgbeVA7naqebvq15VachgQrivprVasb11ZbgvbaEnatrRAF_9nyybpngbeVF3_RRRP2REXF6_,%function
 b__MAFg3__16irpgbeVA7naqebvq15VachgQrivprVasb11ZbgvbaEnatrRAF_9nyybpngbeVF3_RRRP2REXF6_:
 nop
@@ -2298,7 +2298,7 @@
 b__MAX7naqebvq13VachgPbafhzre15unfCraqvatOngpuRi:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_13VachgPbafhzre8FrdPunvaRR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq6IrpgbeVAF_13VachgPbafhzre8FrdPunvaRR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq6IrpgbeVAF_13VachgPbafhzre8FrdPunvaRR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq6IrpgbeVAF_13VachgPbafhzre8FrdPunvaRR12qb_pbafgehpgRCiz:
 nop
@@ -2313,12 +2313,12 @@
 b__MA7naqebvq15XrlPunenpgreZnc3XrlP2Ri:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_12XrlYnlbhgZnc3YrqRRRR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_12XrlYnlbhgZnc3YrqRRRR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_12XrlYnlbhgZnc3YrqRRRR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_12XrlYnlbhgZnc3YrqRRRR7qb_pbclRCiCXiz:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_13VachgPbafhzre5OngpuRR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_13VachgPbafhzre5OngpuRR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_13VachgPbafhzre5OngpuRR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_13VachgPbafhzre5OngpuRR15qb_zbir_sbejneqRCiCXiz:
 nop
@@ -2333,12 +2333,12 @@
 b__MAX7naqebvq11ZbgvbaRirag13jevgrGbCnepryRCAF_6CnepryR:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_13VachgPbafhzre10GbhpuFgngrRR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_13VachgPbafhzre10GbhpuFgngrRR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_13VachgPbafhzre10GbhpuFgngrRR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_13VachgPbafhzre10GbhpuFgngrRR8qb_fcyngRCiCXiz:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_13VachgPbafhzre5OngpuRR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq6IrpgbeVAF_13VachgPbafhzre5OngpuRR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq6IrpgbeVAF_13VachgPbafhzre5OngpuRR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq6IrpgbeVAF_13VachgPbafhzre5OngpuRR10qb_qrfgeblRCiz:
 nop
@@ -2418,7 +2418,7 @@
 b__MGIA7naqebvq25OaFrgVachgJvaqbjfYvfgrareR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvCAF_15XrlPunenpgreZnc3XrlRRRR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvCAF_15XrlPunenpgreZnc3XrlRRRR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvCAF_15XrlPunenpgreZnc3XrlRRRR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvCAF_15XrlPunenpgreZnc3XrlRRRR7qb_pbclRCiCXiz:
 nop
@@ -2433,17 +2433,17 @@
 b__MA7naqebvq13VachgPbafhzreQ1Ri:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_12VachgZrffntrRR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_12VachgZrffntrRR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_12VachgZrffntrRR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_12VachgZrffntrRR16qb_zbir_onpxjneqRCiCXiz:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_13VachgPbafhzre8FrdPunvaRR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_13VachgPbafhzre8FrdPunvaRR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_13VachgPbafhzre8FrdPunvaRR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_13VachgPbafhzre8FrdPunvaRR8qb_fcyngRCiCXiz:
 nop
 .data
-.globl b__MGPA7naqebvq14OcVachgSyvatreR8_AF_9OcErsOnfrR
+.weak b__MGPA7naqebvq14OcVachgSyvatreR8_AF_9OcErsOnfrR
 .type b__MGPA7naqebvq14OcVachgSyvatreR8_AF_9OcErsOnfrR,%object
 b__MGPA7naqebvq14OcVachgSyvatreR8_AF_9OcErsOnfrR:
 .space __SIZEOF_POINTER__
diff --git a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_016.S b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_016.S
index eda1a37..2c1ac1b 100644
--- a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_016.S
+++ b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_016.S
@@ -23,7 +23,7 @@
 b__MA7naqebvq15vachgqvfcngpure15VachgQvfcngpure23qvfcngpuBaprVaareYbpxrqRCy:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_17CbvagreCebcregvrfRR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_17CbvagreCebcregvrfRR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_17CbvagreCebcregvrfRR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_17CbvagreCebcregvrfRR16qb_zbir_onpxjneqRCiCXiz:
 nop
@@ -38,12 +38,12 @@
 b__MA7naqebvq15vachgqvfcngpure15VachgQvfcngpure4qhzcREAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRR:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_15vachgqvfcngpure10GbhpuFgngrRRRR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_15vachgqvfcngpure10GbhpuFgngrRRRR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_15vachgqvfcngpure10GbhpuFgngrRRRR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_15vachgqvfcngpure10GbhpuFgngrRRRR7qb_pbclRCiCXiz:
 nop
 .data
-.globl b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_15vachgqvfcngpure10GbhpuFgngrRRRRR
+.weak b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_15vachgqvfcngpure10GbhpuFgngrRRRRR
 .type b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_15vachgqvfcngpure10GbhpuFgngrRRRRR,%object
 b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_15vachgqvfcngpure10GbhpuFgngrRRRRR:
 .space __SIZEOF_POINTER__
@@ -58,7 +58,7 @@
 b__MAX7naqebvq15vachgqvfcngpure10VachgFgngr9vfArhgenyRi:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq8uneqjner5vachg6pbzzba4I1_013CbvagrePbbeqfRAF_9nyybpngbeVF6_RRR21__chfu_onpx_fybj_cnguVEXF6_RRiBG_
+.weak b__MAFg3__16irpgbeVA7naqebvq8uneqjner5vachg6pbzzba4I1_013CbvagrePbbeqfRAF_9nyybpngbeVF6_RRR21__chfu_onpx_fybj_cnguVEXF6_RRiBG_
 .type b__MAFg3__16irpgbeVA7naqebvq8uneqjner5vachg6pbzzba4I1_013CbvagrePbbeqfRAF_9nyybpngbeVF6_RRR21__chfu_onpx_fybj_cnguVEXF6_RRiBG_,%function
 b__MAFg3__16irpgbeVA7naqebvq8uneqjner5vachg6pbzzba4I1_013CbvagrePbbeqfRAF_9nyybpngbeVF6_RRR21__chfu_onpx_fybj_cnguVEXF6_RRiBG_:
 nop
@@ -78,7 +78,7 @@
 b__MAX7naqebvq15vachgqvfcngpure15VachgQvfcngpure21trgJvaqbjUnaqyrYbpxrqREXAF_2fcVAF_7VOvaqreRRR:
 nop
 .data
-.globl b__MGIA7naqebvq11ZbgvbaRiragR
+.weak b__MGIA7naqebvq11ZbgvbaRiragR
 .type b__MGIA7naqebvq11ZbgvbaRiragR,%object
 b__MGIA7naqebvq11ZbgvbaRiragR:
 .space __SIZEOF_POINTER__
@@ -108,12 +108,12 @@
 b__MGIA7naqebvq15vachgqvfcngpure16QrivprErfrgRagelR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_2fcVAF_15vachgqvfcngpure10PbaarpgvbaRRRRRR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_2fcVAF_15vachgqvfcngpure10PbaarpgvbaRRRRRR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_2fcVAF_15vachgqvfcngpure10PbaarpgvbaRRRRRR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_2fcVAF_15vachgqvfcngpure10PbaarpgvbaRRRRRR16qb_zbir_onpxjneqRCiCXiz:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq15vachgqvfcngpure14GbhpurqZbavgbeRAF_9nyybpngbeVF3_RRR7erfreirRz
+.weak b__MAFg3__16irpgbeVA7naqebvq15vachgqvfcngpure14GbhpurqZbavgbeRAF_9nyybpngbeVF3_RRR7erfreirRz
 .type b__MAFg3__16irpgbeVA7naqebvq15vachgqvfcngpure14GbhpurqZbavgbeRAF_9nyybpngbeVF3_RRR7erfreirRz,%function
 b__MAFg3__16irpgbeVA7naqebvq15vachgqvfcngpure14GbhpurqZbavgbeRAF_9nyybpngbeVF3_RRR7erfreirRz:
 nop
@@ -128,7 +128,7 @@
 b__MA7naqebvq15vachgqvfcngpure10VachgFgngr15fubhyqPnapryXrlREXAF1_10XrlZrzragbREXAF0_18PnapryngvbaBcgvbafR:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvvRRR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvvRRR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvvRRR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvvRRR8qb_fcyngRCiCXiz:
 nop
@@ -153,7 +153,7 @@
 b__MA7naqebvq15vachgqvfcngpure15VachgQvfcngpure20baSbphfPunatrqYbpxrqREXAF_2fcVAF_17VachgJvaqbjUnaqyrRRRF6_:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvA7naqebvq2fcVAF2_22VachgNccyvpngvbaUnaqyrRRRRRAF_22__habeqrerq_znc_unfureVvF6_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF6_AF_8rdhny_gbVvRRYo1RRRAF_9nyybpngbeVF6_RRR14__renfr_havdhrVvRRzEXG_
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvA7naqebvq2fcVAF2_22VachgNccyvpngvbaUnaqyrRRRRRAF_22__habeqrerq_znc_unfureVvF6_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF6_AF_8rdhny_gbVvRRYo1RRRAF_9nyybpngbeVF6_RRR14__renfr_havdhrVvRRzEXG_
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvA7naqebvq2fcVAF2_22VachgNccyvpngvbaUnaqyrRRRRRAF_22__habeqrerq_znc_unfureVvF6_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF6_AF_8rdhny_gbVvRRYo1RRRAF_9nyybpngbeVF6_RRR14__renfr_havdhrVvRRzEXG_,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvA7naqebvq2fcVAF2_22VachgNccyvpngvbaUnaqyrRRRRRAF_22__habeqrerq_znc_unfureVvF6_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF6_AF_8rdhny_gbVvRRYo1RRRAF_9nyybpngbeVF6_RRR14__renfr_havdhrVvRRzEXG_:
 nop
@@ -168,7 +168,7 @@
 b__MGPA7naqebvq15VachgPynffvsvreR0_AF_22VachgYvfgrareVagresnprR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvAF_6irpgbeVA7naqebvq15vachgqvfcngpure7ZbavgbeRAF_9nyybpngbeVF5_RRRRRRAF_22__habeqrerq_znc_unfureVvF9_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF9_AF_8rdhny_gbVvRRYo1RRRAF6_VF9_RRR6erzbirRAF_21__unfu_pbafg_vgrengbeVCAF_11__unfu_abqrVF9_CiRRRR
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvAF_6irpgbeVA7naqebvq15vachgqvfcngpure7ZbavgbeRAF_9nyybpngbeVF5_RRRRRRAF_22__habeqrerq_znc_unfureVvF9_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF9_AF_8rdhny_gbVvRRYo1RRRAF6_VF9_RRR6erzbirRAF_21__unfu_pbafg_vgrengbeVCAF_11__unfu_abqrVF9_CiRRRR
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvAF_6irpgbeVA7naqebvq15vachgqvfcngpure7ZbavgbeRAF_9nyybpngbeVF5_RRRRRRAF_22__habeqrerq_znc_unfureVvF9_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF9_AF_8rdhny_gbVvRRYo1RRRAF6_VF9_RRR6erzbirRAF_21__unfu_pbafg_vgrengbeVCAF_11__unfu_abqrVF9_CiRRRR,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvAF_6irpgbeVA7naqebvq15vachgqvfcngpure7ZbavgbeRAF_9nyybpngbeVF5_RRRRRRAF_22__habeqrerq_znc_unfureVvF9_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF9_AF_8rdhny_gbVvRRYo1RRRAF6_VF9_RRR6erzbirRAF_21__unfu_pbafg_vgrengbeVCAF_11__unfu_abqrVF9_CiRRRR:
 nop
@@ -178,12 +178,12 @@
 b__MA7naqebvq15vachgqvfcngpure10GbhpuFgngr15nqqCbegnyJvaqbjREXAF_2fcVAF_17VachgJvaqbjUnaqyrRRR:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvvRRR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvvRRR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvvRRR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvvRRR12qb_pbafgehpgRCiz:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvAF_6irpgbeVA7naqebvq2fcVAF3_17VachgJvaqbjUnaqyrRRRAF_9nyybpngbeVF6_RRRRRRAF_22__habeqrerq_znc_unfureVvFN_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvFN_AF_8rdhny_gbVvRRYo1RRRAF7_VFN_RRR6erunfuRz
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvAF_6irpgbeVA7naqebvq2fcVAF3_17VachgJvaqbjUnaqyrRRRAF_9nyybpngbeVF6_RRRRRRAF_22__habeqrerq_znc_unfureVvFN_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvFN_AF_8rdhny_gbVvRRYo1RRRAF7_VFN_RRR6erunfuRz
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvAF_6irpgbeVA7naqebvq2fcVAF3_17VachgJvaqbjUnaqyrRRRAF_9nyybpngbeVF6_RRRRRRAF_22__habeqrerq_znc_unfureVvFN_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvFN_AF_8rdhny_gbVvRRYo1RRRAF7_VFN_RRR6erunfuRz,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvAF_6irpgbeVA7naqebvq2fcVAF3_17VachgJvaqbjUnaqyrRRRAF_9nyybpngbeVF6_RRRRRRAF_22__habeqrerq_znc_unfureVvFN_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvFN_AF_8rdhny_gbVvRRYo1RRRAF7_VFN_RRR6erunfuRz:
 nop
@@ -228,7 +228,7 @@
 b__MA7naqebvq15vachgqvfcngpure15VachgQvfcngpure18qenvaQvfcngpuDhrhrRCAF0_5DhrhrVAF0_13QvfcngpuRagelRRR:
 nop
 .data
-.globl b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_2fcVAF_15vachgqvfcngpure10PbaarpgvbaRRRRRRR
+.weak b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_2fcVAF_15vachgqvfcngpure10PbaarpgvbaRRRRRRR
 .type b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_2fcVAF_15vachgqvfcngpure10PbaarpgvbaRRRRRRR,%object
 b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_2fcVAF_15vachgqvfcngpure10PbaarpgvbaRRRRRRR:
 .space __SIZEOF_POINTER__
@@ -248,17 +248,17 @@
 b__MA7naqebvq15vachgqvfcngpure15VachgQvfcngpure20ertvfgreVachgPunaaryREXAF_2fcVAF_12VachgPunaaryRRRv:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_15vachgqvfcngpure15VachgQvfcngpure14XrlErcynprzragRvRRR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_15vachgqvfcngpure15VachgQvfcngpure14XrlErcynprzragRvRRR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_15vachgqvfcngpure15VachgQvfcngpure14XrlErcynprzragRvRRR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_15vachgqvfcngpure15VachgQvfcngpure14XrlErcynprzragRvRRR16qb_zbir_onpxjneqRCiCXiz:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_15vachgqvfcngpure10GbhpuFgngrRRRR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_15vachgqvfcngpure10GbhpuFgngrRRRR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_15vachgqvfcngpure10GbhpuFgngrRRRR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_15vachgqvfcngpure10GbhpuFgngrRRRR10qb_qrfgeblRCiz:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq15vachgqvfcngpure13GbhpurqJvaqbjRAF_9nyybpngbeVF3_RRR6nffvtaVCF3_RRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF3_AF_15vgrengbe_genvgfVFN_R9ersreraprRRR5inyhrRiR4glcrRFN_FN_
+.weak b__MAFg3__16irpgbeVA7naqebvq15vachgqvfcngpure13GbhpurqJvaqbjRAF_9nyybpngbeVF3_RRR6nffvtaVCF3_RRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF3_AF_15vgrengbe_genvgfVFN_R9ersreraprRRR5inyhrRiR4glcrRFN_FN_
 .type b__MAFg3__16irpgbeVA7naqebvq15vachgqvfcngpure13GbhpurqJvaqbjRAF_9nyybpngbeVF3_RRR6nffvtaVCF3_RRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF3_AF_15vgrengbe_genvgfVFN_R9ersreraprRRR5inyhrRiR4glcrRFN_FN_,%function
 b__MAFg3__16irpgbeVA7naqebvq15vachgqvfcngpure13GbhpurqJvaqbjRAF_9nyybpngbeVF3_RRR6nffvtaVCF3_RRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF3_AF_15vgrengbe_genvgfVFN_R9ersreraprRRR5inyhrRiR4glcrRFN_FN_:
 nop
@@ -283,12 +283,12 @@
 b__MA7naqebvq15vachgqvfcngpure15VachgQvfcngpure25nqqZbavgbevatGnetrgYbpxrqREXAF0_7ZbavgbeRssEAFg3__16irpgbeVAF0_11VachgGnetrgRAF5_9nyybpngbeVF7_RRRR:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_13CbvagrePbbeqfRR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq6IrpgbeVAF_13CbvagrePbbeqfRR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq6IrpgbeVAF_13CbvagrePbbeqfRR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq6IrpgbeVAF_13CbvagrePbbeqfRR10qb_qrfgeblRCiz:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvAF_6irpgbeVA7naqebvq15vachgqvfcngpure7ZbavgbeRAF_9nyybpngbeVF5_RRRRRRAF_22__habeqrerq_znc_unfureVvF9_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF9_AF_8rdhny_gbVvRRYo1RRRAF6_VF9_RRRQ2Ri
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvAF_6irpgbeVA7naqebvq15vachgqvfcngpure7ZbavgbeRAF_9nyybpngbeVF5_RRRRRRAF_22__habeqrerq_znc_unfureVvF9_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF9_AF_8rdhny_gbVvRRYo1RRRAF6_VF9_RRRQ2Ri
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvAF_6irpgbeVA7naqebvq15vachgqvfcngpure7ZbavgbeRAF_9nyybpngbeVF5_RRRRRRAF_22__habeqrerq_znc_unfureVvF9_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF9_AF_8rdhny_gbVvRRYo1RRRAF6_VF9_RRRQ2Ri,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvAF_6irpgbeVA7naqebvq15vachgqvfcngpure7ZbavgbeRAF_9nyybpngbeVF5_RRRRRRAF_22__habeqrerq_znc_unfureVvF9_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF9_AF_8rdhny_gbVvRRYo1RRRAF6_VF9_RRRQ2Ri:
 nop
@@ -348,7 +348,7 @@
 b__MA7naqebvq16ZbgvbaPynffvsvreQ0Ri:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_2fcVAF_15vachgqvfcngpure10PbaarpgvbaRRRRRR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_2fcVAF_15vachgqvfcngpure10PbaarpgvbaRRRRRR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_2fcVAF_15vachgqvfcngpure10PbaarpgvbaRRRRRR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_2fcVAF_15vachgqvfcngpure10PbaarpgvbaRRRRRR10qb_qrfgeblRCiz:
 nop
@@ -363,12 +363,12 @@
 b__MA7naqebvq15vachgqvfcngpure15VachgQvfcngpure30qbAbgvslNAEYbpxrqVagreehcgvoyrRCAF0_12PbzznaqRagelR:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_17CbvagreCebcregvrfRR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_17CbvagreCebcregvrfRR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_17CbvagreCebcregvrfRR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_17CbvagreCebcregvrfRR7qb_pbclRCiCXiz:
 nop
 .text
-.globl b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR3fgeREXAF_12onfvp_fgevatVpF2_F4_RR
+.weak b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR3fgeREXAF_12onfvp_fgevatVpF2_F4_RR
 .type b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR3fgeREXAF_12onfvp_fgevatVpF2_F4_RR,%function
 b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR3fgeREXAF_12onfvp_fgevatVpF2_F4_RR:
 nop
@@ -378,7 +378,7 @@
 b__MA7naqebvq15vachgqvfcngpure15VachgQvfcngpure47qbAbgvslPbasvthengvbaPunatrqYbpxrqVagreehcgvoyrRCAF0_12PbzznaqRagelR:
 nop
 .data
-.globl b__MGIAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
+.weak b__MGIAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
 .type b__MGIAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR,%object
 b__MGIAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR:
 .space __SIZEOF_POINTER__
@@ -398,12 +398,12 @@
 b__MA7naqebvq15vachgqvfcngpure15VachgQvfcngpureQ1Ri:
 nop
 .data
-.globl b__MGGAFg3__119onfvp_vfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
+.weak b__MGGAFg3__119onfvp_vfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
 .type b__MGGAFg3__119onfvp_vfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR,%object
 b__MGGAFg3__119onfvp_vfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq8uneqjner5vachg6pbzzba4I1_017CbvagreCebcregvrfRAF_9nyybpngbeVF6_RRR21__chfu_onpx_fybj_cnguVEXF6_RRiBG_
+.weak b__MAFg3__16irpgbeVA7naqebvq8uneqjner5vachg6pbzzba4I1_017CbvagreCebcregvrfRAF_9nyybpngbeVF6_RRR21__chfu_onpx_fybj_cnguVEXF6_RRiBG_
 .type b__MAFg3__16irpgbeVA7naqebvq8uneqjner5vachg6pbzzba4I1_017CbvagreCebcregvrfRAF_9nyybpngbeVF6_RRR21__chfu_onpx_fybj_cnguVEXF6_RRiBG_,%function
 b__MAFg3__16irpgbeVA7naqebvq8uneqjner5vachg6pbzzba4I1_017CbvagreCebcregvrfRAF_9nyybpngbeVF6_RRR21__chfu_onpx_fybj_cnguVEXF6_RRiBG_:
 nop
@@ -418,12 +418,12 @@
 b__MA7naqebvq15vachgqvfcngpure15VachgQvfcngpure19vfNccFjvgpuXrlRiragRCAF0_8XrlRagelR:
 nop
 .text
-.globl b__MAFg3__113__irpgbe_onfrVA7naqebvq2fcVAF1_17VachgJvaqbjUnaqyrRRRAF_9nyybpngbeVF4_RRRQ2Ri
+.weak b__MAFg3__113__irpgbe_onfrVA7naqebvq2fcVAF1_17VachgJvaqbjUnaqyrRRRAF_9nyybpngbeVF4_RRRQ2Ri
 .type b__MAFg3__113__irpgbe_onfrVA7naqebvq2fcVAF1_17VachgJvaqbjUnaqyrRRRAF_9nyybpngbeVF4_RRRQ2Ri,%function
 b__MAFg3__113__irpgbe_onfrVA7naqebvq2fcVAF1_17VachgJvaqbjUnaqyrRRRAF_9nyybpngbeVF4_RRRQ2Ri:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq15PynffvsvreRiragRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVF2_RRiBG_
+.weak b__MAFg3__16irpgbeVA7naqebvq15PynffvsvreRiragRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVF2_RRiBG_
 .type b__MAFg3__16irpgbeVA7naqebvq15PynffvsvreRiragRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVF2_RRiBG_,%function
 b__MAFg3__16irpgbeVA7naqebvq15PynffvsvreRiragRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVF2_RRiBG_:
 nop
@@ -448,12 +448,12 @@
 b__MA7naqebvq15vachgqvfcngpure14VawrpgvbaFgngr7eryrnfrRi:
 nop
 .data
-.globl b__MGIA7naqebvq6IrpgbeVAF_17CbvagreCebcregvrfRRR
+.weak b__MGIA7naqebvq6IrpgbeVAF_17CbvagreCebcregvrfRRR
 .type b__MGIA7naqebvq6IrpgbeVAF_17CbvagreCebcregvrfRRR,%object
 b__MGIA7naqebvq6IrpgbeVAF_17CbvagreCebcregvrfRRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVA7naqebvq2fcVAF2_7VOvaqreRRRAF3_VAF2_17VachgJvaqbjUnaqyrRRRRRAF_22__habeqrerq_znc_unfureVF5_F8_AF2_15vachgqvfcngpure15VachgQvfcngpure11VOvaqreUnfuRYo1RRRAF_21__habeqrerq_znc_rdhnyVF5_F8_AF_8rdhny_gbVF5_RRYo1RRRAF_9nyybpngbeVF8_RRR6erunfuRz
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVA7naqebvq2fcVAF2_7VOvaqreRRRAF3_VAF2_17VachgJvaqbjUnaqyrRRRRRAF_22__habeqrerq_znc_unfureVF5_F8_AF2_15vachgqvfcngpure15VachgQvfcngpure11VOvaqreUnfuRYo1RRRAF_21__habeqrerq_znc_rdhnyVF5_F8_AF_8rdhny_gbVF5_RRYo1RRRAF_9nyybpngbeVF8_RRR6erunfuRz
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVA7naqebvq2fcVAF2_7VOvaqreRRRAF3_VAF2_17VachgJvaqbjUnaqyrRRRRRAF_22__habeqrerq_znc_unfureVF5_F8_AF2_15vachgqvfcngpure15VachgQvfcngpure11VOvaqreUnfuRYo1RRRAF_21__habeqrerq_znc_rdhnyVF5_F8_AF_8rdhny_gbVF5_RRYo1RRRAF_9nyybpngbeVF8_RRR6erunfuRz,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVA7naqebvq2fcVAF2_7VOvaqreRRRAF3_VAF2_17VachgJvaqbjUnaqyrRRRRRAF_22__habeqrerq_znc_unfureVF5_F8_AF2_15vachgqvfcngpure15VachgQvfcngpure11VOvaqreUnfuRYo1RRRAF_21__habeqrerq_znc_rdhnyVF5_F8_AF_8rdhny_gbVF5_RRYo1RRRAF_9nyybpngbeVF8_RRR6erunfuRz:
 nop
@@ -473,7 +473,7 @@
 b__MGGA7naqebvq21VachgQvfcngpureGuernqR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvyRRAF_22__habeqrerq_znc_unfureVvF2_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF2_AF_8rdhny_gbVvRRYo1RRRAF_9nyybpngbeVF2_RRR25__rzcynpr_havdhr_xrl_netfVvWEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXvRRRAFV_VWRRRRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF2_CiRRRRoRREXG_QcBG0_
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvyRRAF_22__habeqrerq_znc_unfureVvF2_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF2_AF_8rdhny_gbVvRRYo1RRRAF_9nyybpngbeVF2_RRR25__rzcynpr_havdhr_xrl_netfVvWEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXvRRRAFV_VWRRRRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF2_CiRRRRoRREXG_QcBG0_
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvyRRAF_22__habeqrerq_znc_unfureVvF2_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF2_AF_8rdhny_gbVvRRYo1RRRAF_9nyybpngbeVF2_RRR25__rzcynpr_havdhr_xrl_netfVvWEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXvRRRAFV_VWRRRRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF2_CiRRRRoRREXG_QcBG0_,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvyRRAF_22__habeqrerq_znc_unfureVvF2_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF2_AF_8rdhny_gbVvRRYo1RRRAF_9nyybpngbeVF2_RRR25__rzcynpr_havdhr_xrl_netfVvWEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXvRRRAFV_VWRRRRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF2_CiRRRRoRREXG_QcBG0_:
 nop
@@ -488,7 +488,7 @@
 b__MA7naqebvq12VachgZnantreQ2Ri:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq15vachgqvfcngpure7ZbavgbeRAF_9nyybpngbeVF3_RRR24__rzcynpr_onpx_fybj_cnguVWEXAF1_2fcVAF1_12VachgPunaaryRRRRRRiQcBG_
+.weak b__MAFg3__16irpgbeVA7naqebvq15vachgqvfcngpure7ZbavgbeRAF_9nyybpngbeVF3_RRR24__rzcynpr_onpx_fybj_cnguVWEXAF1_2fcVAF1_12VachgPunaaryRRRRRRiQcBG_
 .type b__MAFg3__16irpgbeVA7naqebvq15vachgqvfcngpure7ZbavgbeRAF_9nyybpngbeVF3_RRR24__rzcynpr_onpx_fybj_cnguVWEXAF1_2fcVAF1_12VachgPunaaryRRRRRRiQcBG_,%function
 b__MAFg3__16irpgbeVA7naqebvq15vachgqvfcngpure7ZbavgbeRAF_9nyybpngbeVF3_RRR24__rzcynpr_onpx_fybj_cnguVWEXAF1_2fcVAF1_12VachgPunaaryRRRRRRiQcBG_:
 nop
@@ -528,12 +528,12 @@
 b__MA7naqebvq15vachgqvfcngpure10PbaarpgvbaP1REXAF_2fcVAF_12VachgPunaaryRRRo:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_15vachgqvfcngpure15VachgQvfcngpure14XrlErcynprzragRvRRR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_15vachgqvfcngpure15VachgQvfcngpure14XrlErcynprzragRvRRR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_15vachgqvfcngpure15VachgQvfcngpure14XrlErcynprzragRvRRR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_15vachgqvfcngpure15VachgQvfcngpure14XrlErcynprzragRvRRR10qb_qrfgeblRCiz:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvAF_6irpgbeVA7naqebvq2fcVAF3_17VachgJvaqbjUnaqyrRRRAF_9nyybpngbeVF6_RRRRRRAF_22__habeqrerq_znc_unfureVvFN_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvFN_AF_8rdhny_gbVvRRYo1RRRAF7_VFN_RRR6erzbirRAF_21__unfu_pbafg_vgrengbeVCAF_11__unfu_abqrVFN_CiRRRR
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvAF_6irpgbeVA7naqebvq2fcVAF3_17VachgJvaqbjUnaqyrRRRAF_9nyybpngbeVF6_RRRRRRAF_22__habeqrerq_znc_unfureVvFN_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvFN_AF_8rdhny_gbVvRRYo1RRRAF7_VFN_RRR6erzbirRAF_21__unfu_pbafg_vgrengbeVCAF_11__unfu_abqrVFN_CiRRRR
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvAF_6irpgbeVA7naqebvq2fcVAF3_17VachgJvaqbjUnaqyrRRRAF_9nyybpngbeVF6_RRRRRRAF_22__habeqrerq_znc_unfureVvFN_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvFN_AF_8rdhny_gbVvRRYo1RRRAF7_VFN_RRR6erzbirRAF_21__unfu_pbafg_vgrengbeVCAF_11__unfu_abqrVFN_CiRRRR,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvAF_6irpgbeVA7naqebvq2fcVAF3_17VachgJvaqbjUnaqyrRRRAF_9nyybpngbeVF6_RRRRRRAF_22__habeqrerq_znc_unfureVvFN_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvFN_AF_8rdhny_gbVvRRYo1RRRAF7_VFN_RRR6erzbirRAF_21__unfu_pbafg_vgrengbeVCAF_11__unfu_abqrVFN_CiRRRR:
 nop
@@ -548,7 +548,7 @@
 b__MA7naqebvq15vachgqvfcngpure15VachgQvfcngpure12qhzcZbavgbefREAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRREXAF2_6irpgbeVAF0_7ZbavgbeRAF6_VFO_RRRR:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVyR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVyR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVyR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVyR16qb_zbir_onpxjneqRCiCXiz:
 nop
@@ -568,17 +568,17 @@
 b__MAX7naqebvq15vachgqvfcngpure15VachgQvfcngpure29vfJvaqbjBofpherqNgCbvagYbpxrqREXAF_2fcVAF_17VachgJvaqbjUnaqyrRRRvv:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVA7naqebvq2fcVAF2_7VOvaqreRRRAF3_VAF2_12VachgPunaaryRRRRRAF_22__habeqrerq_znc_unfureVF5_F8_AF2_15vachgqvfcngpure15VachgQvfcngpure11VOvaqreUnfuRYo1RRRAF_21__habeqrerq_znc_rdhnyVF5_F8_AF_8rdhny_gbVF5_RRYo1RRRAF_9nyybpngbeVF8_RRR25__rzcynpr_havdhr_xrl_netfVF5_WEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWBF5_RRRAFC_VWRRRRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF8_CiRRRRoRREXG_QcBG0_
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVA7naqebvq2fcVAF2_7VOvaqreRRRAF3_VAF2_12VachgPunaaryRRRRRAF_22__habeqrerq_znc_unfureVF5_F8_AF2_15vachgqvfcngpure15VachgQvfcngpure11VOvaqreUnfuRYo1RRRAF_21__habeqrerq_znc_rdhnyVF5_F8_AF_8rdhny_gbVF5_RRYo1RRRAF_9nyybpngbeVF8_RRR25__rzcynpr_havdhr_xrl_netfVF5_WEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWBF5_RRRAFC_VWRRRRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF8_CiRRRRoRREXG_QcBG0_
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVA7naqebvq2fcVAF2_7VOvaqreRRRAF3_VAF2_12VachgPunaaryRRRRRAF_22__habeqrerq_znc_unfureVF5_F8_AF2_15vachgqvfcngpure15VachgQvfcngpure11VOvaqreUnfuRYo1RRRAF_21__habeqrerq_znc_rdhnyVF5_F8_AF_8rdhny_gbVF5_RRYo1RRRAF_9nyybpngbeVF8_RRR25__rzcynpr_havdhr_xrl_netfVF5_WEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWBF5_RRRAFC_VWRRRRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF8_CiRRRRoRREXG_QcBG0_,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVA7naqebvq2fcVAF2_7VOvaqreRRRAF3_VAF2_12VachgPunaaryRRRRRAF_22__habeqrerq_znc_unfureVF5_F8_AF2_15vachgqvfcngpure15VachgQvfcngpure11VOvaqreUnfuRYo1RRRAF_21__habeqrerq_znc_rdhnyVF5_F8_AF_8rdhny_gbVF5_RRYo1RRRAF_9nyybpngbeVF8_RRR25__rzcynpr_havdhr_xrl_netfVF5_WEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWBF5_RRRAFC_VWRRRRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF8_CiRRRRoRREXG_QcBG0_:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvA7naqebvq2fcVAF2_22VachgNccyvpngvbaUnaqyrRRRRRAF_22__habeqrerq_znc_unfureVvF6_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF6_AF_8rdhny_gbVvRRYo1RRRAF_9nyybpngbeVF6_RRR25__rzcynpr_havdhr_xrl_netfVvWEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXvRRRAFZ_VWRRRRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF6_CiRRRRoRREXG_QcBG0_
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvA7naqebvq2fcVAF2_22VachgNccyvpngvbaUnaqyrRRRRRAF_22__habeqrerq_znc_unfureVvF6_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF6_AF_8rdhny_gbVvRRYo1RRRAF_9nyybpngbeVF6_RRR25__rzcynpr_havdhr_xrl_netfVvWEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXvRRRAFZ_VWRRRRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF6_CiRRRRoRREXG_QcBG0_
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvA7naqebvq2fcVAF2_22VachgNccyvpngvbaUnaqyrRRRRRAF_22__habeqrerq_znc_unfureVvF6_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF6_AF_8rdhny_gbVvRRYo1RRRAF_9nyybpngbeVF6_RRR25__rzcynpr_havdhr_xrl_netfVvWEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXvRRRAFZ_VWRRRRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF6_CiRRRRoRREXG_QcBG0_,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvA7naqebvq2fcVAF2_22VachgNccyvpngvbaUnaqyrRRRRRAF_22__habeqrerq_znc_unfureVvF6_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF6_AF_8rdhny_gbVvRRYo1RRRAF_9nyybpngbeVF6_RRR25__rzcynpr_havdhr_xrl_netfVvWEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXvRRRAFZ_VWRRRRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF6_CiRRRRoRREXG_QcBG0_:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvA7naqebvq2fcVAF2_22VachgNccyvpngvbaUnaqyrRRRRRAF_22__habeqrerq_znc_unfureVvF6_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF6_AF_8rdhny_gbVvRRYo1RRRAF_9nyybpngbeVF6_RRR6erzbirRAF_21__unfu_pbafg_vgrengbeVCAF_11__unfu_abqrVF6_CiRRRR
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvA7naqebvq2fcVAF2_22VachgNccyvpngvbaUnaqyrRRRRRAF_22__habeqrerq_znc_unfureVvF6_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF6_AF_8rdhny_gbVvRRYo1RRRAF_9nyybpngbeVF6_RRR6erzbirRAF_21__unfu_pbafg_vgrengbeVCAF_11__unfu_abqrVF6_CiRRRR
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvA7naqebvq2fcVAF2_22VachgNccyvpngvbaUnaqyrRRRRRAF_22__habeqrerq_znc_unfureVvF6_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF6_AF_8rdhny_gbVvRRYo1RRRAF_9nyybpngbeVF6_RRR6erzbirRAF_21__unfu_pbafg_vgrengbeVCAF_11__unfu_abqrVF6_CiRRRR,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvA7naqebvq2fcVAF2_22VachgNccyvpngvbaUnaqyrRRRRRAF_22__habeqrerq_znc_unfureVvF6_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF6_AF_8rdhny_gbVvRRYo1RRRAF_9nyybpngbeVF6_RRR6erzbirRAF_21__unfu_pbafg_vgrengbeVCAF_11__unfu_abqrVF6_CiRRRR:
 nop
@@ -603,12 +603,12 @@
 b__MA7naqebvq15vachgqvfcngpure15VachgQvfcngpure25trgNccyvpngvbaJvaqbjYnoryREXAF_2fcVAF_22VachgNccyvpngvbaUnaqyrRRREXAF2_VAF_17VachgJvaqbjUnaqyrRRR:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq15vachgqvfcngpure11VachgGnetrgRAF_9nyybpngbeVF3_RRR21__chfu_onpx_fybj_cnguVEXF3_RRiBG_
+.weak b__MAFg3__16irpgbeVA7naqebvq15vachgqvfcngpure11VachgGnetrgRAF_9nyybpngbeVF3_RRR21__chfu_onpx_fybj_cnguVEXF3_RRiBG_
 .type b__MAFg3__16irpgbeVA7naqebvq15vachgqvfcngpure11VachgGnetrgRAF_9nyybpngbeVF3_RRR21__chfu_onpx_fybj_cnguVEXF3_RRiBG_,%function
 b__MAFg3__16irpgbeVA7naqebvq15vachgqvfcngpure11VachgGnetrgRAF_9nyybpngbeVF3_RRR21__chfu_onpx_fybj_cnguVEXF3_RRiBG_:
 nop
 .data
-.globl b__MGIA7naqebvq8XrlRiragR
+.weak b__MGIA7naqebvq8XrlRiragR
 .type b__MGIA7naqebvq8XrlRiragR,%object
 b__MGIA7naqebvq8XrlRiragR:
 .space __SIZEOF_POINTER__
@@ -618,17 +618,17 @@
 b__MA7naqebvq15vachgqvfcngpure15VachgQvfcngpure25eryrnfrCraqvatRiragYbpxrqRi:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_13CbvagrePbbeqfRR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_13CbvagrePbbeqfRR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_13CbvagrePbbeqfRR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_13CbvagrePbbeqfRR8qb_fcyngRCiCXiz:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVA7naqebvq2fcVAF2_7VOvaqreRRRAF3_VAF2_12VachgPunaaryRRRRRAF_22__habeqrerq_znc_unfureVF5_F8_AF2_15vachgqvfcngpure15VachgQvfcngpure11VOvaqreUnfuRYo1RRRAF_21__habeqrerq_znc_rdhnyVF5_F8_AF_8rdhny_gbVF5_RRYo1RRRAF_9nyybpngbeVF8_RRR6erzbirRAF_21__unfu_pbafg_vgrengbeVCAF_11__unfu_abqrVF8_CiRRRR
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVA7naqebvq2fcVAF2_7VOvaqreRRRAF3_VAF2_12VachgPunaaryRRRRRAF_22__habeqrerq_znc_unfureVF5_F8_AF2_15vachgqvfcngpure15VachgQvfcngpure11VOvaqreUnfuRYo1RRRAF_21__habeqrerq_znc_rdhnyVF5_F8_AF_8rdhny_gbVF5_RRYo1RRRAF_9nyybpngbeVF8_RRR6erzbirRAF_21__unfu_pbafg_vgrengbeVCAF_11__unfu_abqrVF8_CiRRRR
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVA7naqebvq2fcVAF2_7VOvaqreRRRAF3_VAF2_12VachgPunaaryRRRRRAF_22__habeqrerq_znc_unfureVF5_F8_AF2_15vachgqvfcngpure15VachgQvfcngpure11VOvaqreUnfuRYo1RRRAF_21__habeqrerq_znc_rdhnyVF5_F8_AF_8rdhny_gbVF5_RRYo1RRRAF_9nyybpngbeVF8_RRR6erzbirRAF_21__unfu_pbafg_vgrengbeVCAF_11__unfu_abqrVF8_CiRRRR,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVA7naqebvq2fcVAF2_7VOvaqreRRRAF3_VAF2_12VachgPunaaryRRRRRAF_22__habeqrerq_znc_unfureVF5_F8_AF2_15vachgqvfcngpure15VachgQvfcngpure11VOvaqreUnfuRYo1RRRAF_21__habeqrerq_znc_rdhnyVF5_F8_AF_8rdhny_gbVF5_RRYo1RRRAF_9nyybpngbeVF8_RRR6erzbirRAF_21__unfu_pbafg_vgrengbeVCAF_11__unfu_abqrVF8_CiRRRR:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq15vachgqvfcngpure13GbhpurqJvaqbjRAF_9nyybpngbeVF3_RRR21__chfu_onpx_fybj_cnguVEXF3_RRiBG_
+.weak b__MAFg3__16irpgbeVA7naqebvq15vachgqvfcngpure13GbhpurqJvaqbjRAF_9nyybpngbeVF3_RRR21__chfu_onpx_fybj_cnguVEXF3_RRiBG_
 .type b__MAFg3__16irpgbeVA7naqebvq15vachgqvfcngpure13GbhpurqJvaqbjRAF_9nyybpngbeVF3_RRR21__chfu_onpx_fybj_cnguVEXF3_RRiBG_,%function
 b__MAFg3__16irpgbeVA7naqebvq15vachgqvfcngpure13GbhpurqJvaqbjRAF_9nyybpngbeVF3_RRR21__chfu_onpx_fybj_cnguVEXF3_RRiBG_:
 nop
@@ -663,7 +663,7 @@
 b__MAX7naqebvq15vachgqvfcngpure10VachgFgngr10vfUbirevatRvwv:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq15vachgqvfcngpure14GbhpurqZbavgbeRAF_9nyybpngbeVF3_RRR6nffvtaVCF3_RRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF3_AF_15vgrengbe_genvgfVFN_R9ersreraprRRR5inyhrRiR4glcrRFN_FN_
+.weak b__MAFg3__16irpgbeVA7naqebvq15vachgqvfcngpure14GbhpurqZbavgbeRAF_9nyybpngbeVF3_RRR6nffvtaVCF3_RRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF3_AF_15vgrengbe_genvgfVFN_R9ersreraprRRR5inyhrRiR4glcrRFN_FN_
 .type b__MAFg3__16irpgbeVA7naqebvq15vachgqvfcngpure14GbhpurqZbavgbeRAF_9nyybpngbeVF3_RRR6nffvtaVCF3_RRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF3_AF_15vgrengbe_genvgfVFN_R9ersreraprRRR5inyhrRiR4glcrRFN_FN_,%function
 b__MAFg3__16irpgbeVA7naqebvq15vachgqvfcngpure14GbhpurqZbavgbeRAF_9nyybpngbeVF3_RRR6nffvtaVCF3_RRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF3_AF_15vgrengbe_genvgfVFN_R9ersreraprRRR5inyhrRiR4glcrRFN_FN_:
 nop
@@ -673,12 +673,12 @@
 b__MA7naqebvq16ZbgvbaPynffvsvre5erfrgRi:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVA7naqebvq2fcVAF2_7VOvaqreRRRAF3_VAF2_12VachgPunaaryRRRRRAF_22__habeqrerq_znc_unfureVF5_F8_AF2_15vachgqvfcngpure15VachgQvfcngpure11VOvaqreUnfuRYo1RRRAF_21__habeqrerq_znc_rdhnyVF5_F8_AF_8rdhny_gbVF5_RRYo1RRRAF_9nyybpngbeVF8_RRR6erunfuRz
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVA7naqebvq2fcVAF2_7VOvaqreRRRAF3_VAF2_12VachgPunaaryRRRRRAF_22__habeqrerq_znc_unfureVF5_F8_AF2_15vachgqvfcngpure15VachgQvfcngpure11VOvaqreUnfuRYo1RRRAF_21__habeqrerq_znc_rdhnyVF5_F8_AF_8rdhny_gbVF5_RRYo1RRRAF_9nyybpngbeVF8_RRR6erunfuRz
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVA7naqebvq2fcVAF2_7VOvaqreRRRAF3_VAF2_12VachgPunaaryRRRRRAF_22__habeqrerq_znc_unfureVF5_F8_AF2_15vachgqvfcngpure15VachgQvfcngpure11VOvaqreUnfuRYo1RRRAF_21__habeqrerq_znc_rdhnyVF5_F8_AF_8rdhny_gbVF5_RRYo1RRRAF_9nyybpngbeVF8_RRR6erunfuRz,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVA7naqebvq2fcVAF2_7VOvaqreRRRAF3_VAF2_12VachgPunaaryRRRRRAF_22__habeqrerq_znc_unfureVF5_F8_AF2_15vachgqvfcngpure15VachgQvfcngpure11VOvaqreUnfuRYo1RRRAF_21__habeqrerq_znc_rdhnyVF5_F8_AF_8rdhny_gbVF5_RRYo1RRRAF_9nyybpngbeVF8_RRR6erunfuRz:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvA7naqebvq2fcVAF2_22VachgNccyvpngvbaUnaqyrRRRRRAF_22__habeqrerq_znc_unfureVvF6_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF6_AF_8rdhny_gbVvRRYo1RRRAF_9nyybpngbeVF6_RRR8__erunfuRz
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvA7naqebvq2fcVAF2_22VachgNccyvpngvbaUnaqyrRRRRRAF_22__habeqrerq_znc_unfureVvF6_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF6_AF_8rdhny_gbVvRRYo1RRRAF_9nyybpngbeVF6_RRR8__erunfuRz
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvA7naqebvq2fcVAF2_22VachgNccyvpngvbaUnaqyrRRRRRAF_22__habeqrerq_znc_unfureVvF6_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF6_AF_8rdhny_gbVvRRYo1RRRAF_9nyybpngbeVF6_RRR8__erunfuRz,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvA7naqebvq2fcVAF2_22VachgNccyvpngvbaUnaqyrRRRRRAF_22__habeqrerq_znc_unfureVvF6_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF6_AF_8rdhny_gbVvRRYo1RRRAF_9nyybpngbeVF6_RRR8__erunfuRz:
 nop
@@ -693,7 +693,7 @@
 b__MA7naqebvq21VachgQvfcngpureGuernqP1REXAF_2fcVAF_24VachgQvfcngpureVagresnprRRR:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvAF_6irpgbeVA7naqebvq2fcVAF3_17VachgJvaqbjUnaqyrRRRAF_9nyybpngbeVF6_RRRRRRAF_22__habeqrerq_znc_unfureVvFN_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvFN_AF_8rdhny_gbVvRRYo1RRRAF7_VFN_RRR25__rzcynpr_havdhr_xrl_netfVvWEXvF9_RRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVFN_CiRRRRoRREXG_QcBG0_
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvAF_6irpgbeVA7naqebvq2fcVAF3_17VachgJvaqbjUnaqyrRRRAF_9nyybpngbeVF6_RRRRRRAF_22__habeqrerq_znc_unfureVvFN_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvFN_AF_8rdhny_gbVvRRYo1RRRAF7_VFN_RRR25__rzcynpr_havdhr_xrl_netfVvWEXvF9_RRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVFN_CiRRRRoRREXG_QcBG0_
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvAF_6irpgbeVA7naqebvq2fcVAF3_17VachgJvaqbjUnaqyrRRRAF_9nyybpngbeVF6_RRRRRRAF_22__habeqrerq_znc_unfureVvFN_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvFN_AF_8rdhny_gbVvRRYo1RRRAF7_VFN_RRR25__rzcynpr_havdhr_xrl_netfVvWEXvF9_RRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVFN_CiRRRRoRREXG_QcBG0_,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvAF_6irpgbeVA7naqebvq2fcVAF3_17VachgJvaqbjUnaqyrRRRAF_9nyybpngbeVF6_RRRRRRAF_22__habeqrerq_znc_unfureVvFN_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvFN_AF_8rdhny_gbVvRRYo1RRRAF7_VFN_RRR25__rzcynpr_havdhr_xrl_netfVvWEXvF9_RRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVFN_CiRRRRoRREXG_QcBG0_:
 nop
@@ -703,17 +703,17 @@
 b__MA7naqebvq15vachgqvfcngpure15VachgQvfcngpure44flagurfvmrPnapryngvbaRiragfSbeZbavgbefYbpxrqREXAF0_18PnapryngvbaBcgvbafREAFg3__113habeqrerq_zncVvAF5_6irpgbeVAF0_7ZbavgbeRAF5_9nyybpngbeVF8_RRRRAF5_4unfuVvRRAF5_8rdhny_gbVvRRAF9_VAF5_4cnveVXvFO_RRRRRR:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVA7naqebvq2fcVAF2_7VOvaqreRRRAF3_VAF2_12VachgPunaaryRRRRRAF_22__habeqrerq_znc_unfureVF5_F8_AF2_15vachgqvfcngpure15VachgQvfcngpure11VOvaqreUnfuRYo1RRRAF_21__habeqrerq_znc_rdhnyVF5_F8_AF_8rdhny_gbVF5_RRYo1RRRAF_9nyybpngbeVF8_RRR8__erunfuRz
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVA7naqebvq2fcVAF2_7VOvaqreRRRAF3_VAF2_12VachgPunaaryRRRRRAF_22__habeqrerq_znc_unfureVF5_F8_AF2_15vachgqvfcngpure15VachgQvfcngpure11VOvaqreUnfuRYo1RRRAF_21__habeqrerq_znc_rdhnyVF5_F8_AF_8rdhny_gbVF5_RRYo1RRRAF_9nyybpngbeVF8_RRR8__erunfuRz
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVA7naqebvq2fcVAF2_7VOvaqreRRRAF3_VAF2_12VachgPunaaryRRRRRAF_22__habeqrerq_znc_unfureVF5_F8_AF2_15vachgqvfcngpure15VachgQvfcngpure11VOvaqreUnfuRYo1RRRAF_21__habeqrerq_znc_rdhnyVF5_F8_AF_8rdhny_gbVF5_RRYo1RRRAF_9nyybpngbeVF8_RRR8__erunfuRz,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVA7naqebvq2fcVAF2_7VOvaqreRRRAF3_VAF2_12VachgPunaaryRRRRRAF_22__habeqrerq_znc_unfureVF5_F8_AF2_15vachgqvfcngpure15VachgQvfcngpure11VOvaqreUnfuRYo1RRRAF_21__habeqrerq_znc_rdhnyVF5_F8_AF_8rdhny_gbVF5_RRYo1RRRAF_9nyybpngbeVF8_RRR8__erunfuRz:
 nop
 .text
-.globl b__MAFg3__17trgyvarVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRREAF_13onfvp_vfgernzVG_G0_RRF9_EAF_12onfvp_fgevatVF6_F7_G1_RRF6_
+.weak b__MAFg3__17trgyvarVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRREAF_13onfvp_vfgernzVG_G0_RRF9_EAF_12onfvp_fgevatVF6_F7_G1_RRF6_
 .type b__MAFg3__17trgyvarVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRREAF_13onfvp_vfgernzVG_G0_RRF9_EAF_12onfvp_fgevatVF6_F7_G1_RRF6_,%function
 b__MAFg3__17trgyvarVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRREAF_13onfvp_vfgernzVG_G0_RRF9_EAF_12onfvp_fgevatVF6_F7_G1_RRF6_:
 nop
 .data
-.globl b__MGIAFg3__119onfvp_vfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
+.weak b__MGIAFg3__119onfvp_vfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
 .type b__MGIAFg3__119onfvp_vfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR,%object
 b__MGIAFg3__119onfvp_vfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR:
 .space __SIZEOF_POINTER__
@@ -733,12 +733,12 @@
 b__MA7naqebvq15vachgqvfcngpure10VachgFgngr13nqqXrlZrzragbRCXAF0_8XrlRagelRv:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq8uneqjner5vachg6pbzzba4I1_010IvqrbSenzrRAF_9nyybpngbeVF6_RRR21__chfu_onpx_fybj_cnguVF6_RRiBG_
+.weak b__MAFg3__16irpgbeVA7naqebvq8uneqjner5vachg6pbzzba4I1_010IvqrbSenzrRAF_9nyybpngbeVF6_RRR21__chfu_onpx_fybj_cnguVF6_RRiBG_
 .type b__MAFg3__16irpgbeVA7naqebvq8uneqjner5vachg6pbzzba4I1_010IvqrbSenzrRAF_9nyybpngbeVF6_RRR21__chfu_onpx_fybj_cnguVF6_RRiBG_,%function
 b__MAFg3__16irpgbeVA7naqebvq8uneqjner5vachg6pbzzba4I1_010IvqrbSenzrRAF_9nyybpngbeVF6_RRR21__chfu_onpx_fybj_cnguVF6_RRiBG_:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvAF_6irpgbeVA7naqebvq2fcVAF3_17VachgJvaqbjUnaqyrRRRAF_9nyybpngbeVF6_RRRRRRAF_22__habeqrerq_znc_unfureVvFN_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvFN_AF_8rdhny_gbVvRRYo1RRRAF7_VFN_RRR8__erunfuRz
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvAF_6irpgbeVA7naqebvq2fcVAF3_17VachgJvaqbjUnaqyrRRRAF_9nyybpngbeVF6_RRRRRRAF_22__habeqrerq_znc_unfureVvFN_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvFN_AF_8rdhny_gbVvRRYo1RRRAF7_VFN_RRR8__erunfuRz
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvAF_6irpgbeVA7naqebvq2fcVAF3_17VachgJvaqbjUnaqyrRRRAF_9nyybpngbeVF6_RRRRRRAF_22__habeqrerq_znc_unfureVvFN_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvFN_AF_8rdhny_gbVvRRYo1RRRAF7_VFN_RRR8__erunfuRz,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvAF_6irpgbeVA7naqebvq2fcVAF3_17VachgJvaqbjUnaqyrRRRAF_9nyybpngbeVF6_RRRRRRAF_22__habeqrerq_znc_unfureVvFN_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvFN_AF_8rdhny_gbVvRRYo1RRRAF7_VFN_RRR8__erunfuRz:
 nop
@@ -763,22 +763,22 @@
 b__MA7naqebvq15vachgqvfcngpure15VachgQvfcngpure29genprVaobhaqDhrhrYratguYbpxrqRi:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_17VachgJvaqbjUnaqyrRRRAF_9nyybpngbeVF4_RRR21__chfu_onpx_fybj_cnguVEXF4_RRiBG_
+.weak b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_17VachgJvaqbjUnaqyrRRRAF_9nyybpngbeVF4_RRR21__chfu_onpx_fybj_cnguVEXF4_RRiBG_
 .type b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_17VachgJvaqbjUnaqyrRRRAF_9nyybpngbeVF4_RRR21__chfu_onpx_fybj_cnguVEXF4_RRiBG_,%function
 b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_17VachgJvaqbjUnaqyrRRRAF_9nyybpngbeVF4_RRR21__chfu_onpx_fybj_cnguVEXF4_RRiBG_:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvvRRR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvvRRR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvvRRR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvvRRR15qb_zbir_sbejneqRCiCXiz:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq15vachgqvfcngpure14GbhpurqZbavgbeRAF_9nyybpngbeVF3_RRR6vafregVAF_11__jenc_vgreVCXF3_RRRRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF3_AF_15vgrengbe_genvgfVFQ_R9ersreraprRRR5inyhrRAF8_VCF3_RRR4glcrRFO_FQ_FQ_
+.weak b__MAFg3__16irpgbeVA7naqebvq15vachgqvfcngpure14GbhpurqZbavgbeRAF_9nyybpngbeVF3_RRR6vafregVAF_11__jenc_vgreVCXF3_RRRRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF3_AF_15vgrengbe_genvgfVFQ_R9ersreraprRRR5inyhrRAF8_VCF3_RRR4glcrRFO_FQ_FQ_
 .type b__MAFg3__16irpgbeVA7naqebvq15vachgqvfcngpure14GbhpurqZbavgbeRAF_9nyybpngbeVF3_RRR6vafregVAF_11__jenc_vgreVCXF3_RRRRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF3_AF_15vgrengbe_genvgfVFQ_R9ersreraprRRR5inyhrRAF8_VCF3_RRR4glcrRFO_FQ_FQ_,%function
 b__MAFg3__16irpgbeVA7naqebvq15vachgqvfcngpure14GbhpurqZbavgbeRAF_9nyybpngbeVF3_RRR6vafregVAF_11__jenc_vgreVCXF3_RRRRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF3_AF_15vgrengbe_genvgfVFQ_R9ersreraprRRR5inyhrRAF8_VCF3_RRR4glcrRFO_FQ_FQ_:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvA7naqebvq20ZbgvbaPynffvsvpngvbaRRRAF_22__habeqrerq_znc_unfureVvF4_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF4_AF_8rdhny_gbVvRRYo1RRRAF_9nyybpngbeVF4_RRR8__erunfuRz
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvA7naqebvq20ZbgvbaPynffvsvpngvbaRRRAF_22__habeqrerq_znc_unfureVvF4_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF4_AF_8rdhny_gbVvRRYo1RRRAF_9nyybpngbeVF4_RRR8__erunfuRz
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvA7naqebvq20ZbgvbaPynffvsvpngvbaRRRAF_22__habeqrerq_znc_unfureVvF4_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF4_AF_8rdhny_gbVvRRYo1RRRAF_9nyybpngbeVF4_RRR8__erunfuRz,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvA7naqebvq20ZbgvbaPynffvsvpngvbaRRRAF_22__habeqrerq_znc_unfureVvF4_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF4_AF_8rdhny_gbVvRRYo1RRRAF_9nyybpngbeVF4_RRR8__erunfuRz:
 nop
@@ -813,7 +813,7 @@
 b__MA7naqebvq15vachgqvfcngpure15VachgQvfcngpure14cvysreCbvagrefREXAF_2fcVAF_7VOvaqreRRR:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_2fcVAF_15vachgqvfcngpure10PbaarpgvbaRRRRRR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_2fcVAF_15vachgqvfcngpure10PbaarpgvbaRRRRRR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_2fcVAF_15vachgqvfcngpure10PbaarpgvbaRRRRRR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_2fcVAF_15vachgqvfcngpure10PbaarpgvbaRRRRRR12qb_pbafgehpgRCiz:
 nop
@@ -838,7 +838,7 @@
 b__MA7naqebvq16ZbgvbaPynffvsvreP2RAF_2fcVAF_8uneqjner20uvqy_qrngu_erpvcvragRRR:
 nop
 .text
-.globl b__MA7naqebvq11OaVagresnprVAF_13VVachgSyvatreRR10baNfOvaqreRi
+.weak b__MA7naqebvq11OaVagresnprVAF_13VVachgSyvatreRR10baNfOvaqreRi
 .type b__MA7naqebvq11OaVagresnprVAF_13VVachgSyvatreRR10baNfOvaqreRi,%function
 b__MA7naqebvq11OaVagresnprVAF_13VVachgSyvatreRR10baNfOvaqreRi:
 nop
@@ -868,12 +868,12 @@
 b__MA7naqebvq15vachgqvfcngpure25PbasvthengvbaPunatrqRagelQ0Ri:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvA7naqebvq2fcVAF2_17VachgJvaqbjUnaqyrRRRRRAF_22__habeqrerq_znc_unfureVvF6_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF6_AF_8rdhny_gbVvRRYo1RRRAF_9nyybpngbeVF6_RRR6erunfuRz
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvA7naqebvq2fcVAF2_17VachgJvaqbjUnaqyrRRRRRAF_22__habeqrerq_znc_unfureVvF6_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF6_AF_8rdhny_gbVvRRYo1RRRAF_9nyybpngbeVF6_RRR6erunfuRz
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvA7naqebvq2fcVAF2_17VachgJvaqbjUnaqyrRRRRRAF_22__habeqrerq_znc_unfureVvF6_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF6_AF_8rdhny_gbVvRRYo1RRRAF_9nyybpngbeVF6_RRR6erunfuRz,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvA7naqebvq2fcVAF2_17VachgJvaqbjUnaqyrRRRRRAF_22__habeqrerq_znc_unfureVvF6_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF6_AF_8rdhny_gbVvRRYo1RRRAF_9nyybpngbeVF6_RRR6erunfuRz:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvA7naqebvq20ZbgvbaPynffvsvpngvbaRRRAF_22__habeqrerq_znc_unfureVvF4_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF4_AF_8rdhny_gbVvRRYo1RRRAF_9nyybpngbeVF4_RRR25__rzcynpr_havdhr_xrl_netfVvWEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXvRRRAFX_VWRRRRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF4_CiRRRRoRREXG_QcBG0_
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvA7naqebvq20ZbgvbaPynffvsvpngvbaRRRAF_22__habeqrerq_znc_unfureVvF4_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF4_AF_8rdhny_gbVvRRYo1RRRAF_9nyybpngbeVF4_RRR25__rzcynpr_havdhr_xrl_netfVvWEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXvRRRAFX_VWRRRRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF4_CiRRRRoRREXG_QcBG0_
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvA7naqebvq20ZbgvbaPynffvsvpngvbaRRRAF_22__habeqrerq_znc_unfureVvF4_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF4_AF_8rdhny_gbVvRRYo1RRRAF_9nyybpngbeVF4_RRR25__rzcynpr_havdhr_xrl_netfVvWEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXvRRRAFX_VWRRRRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF4_CiRRRRoRREXG_QcBG0_,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvA7naqebvq20ZbgvbaPynffvsvpngvbaRRRAF_22__habeqrerq_znc_unfureVvF4_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF4_AF_8rdhny_gbVvRRYo1RRRAF_9nyybpngbeVF4_RRR25__rzcynpr_havdhr_xrl_netfVvWEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXvRRRAFX_VWRRRRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF4_CiRRRRoRREXG_QcBG0_:
 nop
@@ -883,7 +883,7 @@
 b__MA7naqebvq15vachgqvfcngpure15VachgQvfcngpure23qenvaVaobhaqDhrhrYbpxrqRi:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_17CbvagreCebcregvrfRR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_17CbvagreCebcregvrfRR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_17CbvagreCebcregvrfRR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_17CbvagreCebcregvrfRR15qb_zbir_sbejneqRCiCXiz:
 nop
@@ -898,7 +898,7 @@
 b__MA7naqebvq15vachgqvfcngpure15VachgQvfcngpure22cbxrHfreNpgvivglYbpxrqRCXAF0_10RiragRagelR:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVyR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVyR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVyR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVyR15qb_zbir_sbejneqRCiCXiz:
 nop
@@ -908,7 +908,7 @@
 b__MAX7naqebvq15vachgqvfcngpure10VachgFgngr18pbclCbvagreFgngrGbREF1_:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_15vachgqvfcngpure10GbhpuFgngrRRRR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_15vachgqvfcngpure10GbhpuFgngrRRRR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_15vachgqvfcngpure10GbhpuFgngrRRRR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_15vachgqvfcngpure10GbhpuFgngrRRRR12qb_pbafgehpgRCiz:
 nop
@@ -923,12 +923,12 @@
 b__MA7naqebvq15vachgqvfcngpure15VachgQvfcngpure24trgPbaarpgvbaVaqrkYbpxrqREXAF_2fcVAF_12VachgPunaaryRRR:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_15vachgqvfcngpure15VachgQvfcngpure14XrlErcynprzragRvRRR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_15vachgqvfcngpure15VachgQvfcngpure14XrlErcynprzragRvRRR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_15vachgqvfcngpure15VachgQvfcngpure14XrlErcynprzragRvRRR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_15vachgqvfcngpure15VachgQvfcngpure14XrlErcynprzragRvRRR12qb_pbafgehpgRCiz:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvvRRR10qb_pbzcnerRCXiF5_
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvvRRR10qb_pbzcnerRCXiF5_
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvvRRR10qb_pbzcnerRCXiF5_,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvvRRR10qb_pbzcnerRCXiF5_:
 nop
@@ -983,12 +983,12 @@
 b__MA7naqebvq15vachgqvfcngpure15VachgQvfcngpure25svaqGbhpurqJvaqbjNgYbpxrqRvvvoo:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_15vachgqvfcngpure10GbhpuFgngrRRRR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_15vachgqvfcngpure10GbhpuFgngrRRRR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_15vachgqvfcngpure10GbhpuFgngrRRRR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_15vachgqvfcngpure10GbhpuFgngrRRRR8qb_fcyngRCiCXiz:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_13CbvagrePbbeqfRR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_13CbvagrePbbeqfRR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_13CbvagrePbbeqfRR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_13CbvagrePbbeqfRR15qb_zbir_sbejneqRCiCXiz:
 nop
@@ -1018,7 +1018,7 @@
 b__MA7naqebvq15vachgqvfcngpure10RiragRagelP2Rwvyw:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq15vachgqvfcngpure14GbhpurqZbavgbeRAF_9nyybpngbeVF3_RRR24__rzcynpr_onpx_fybj_cnguVWEXAF2_7ZbavgbeREsFO_RRRiQcBG_
+.weak b__MAFg3__16irpgbeVA7naqebvq15vachgqvfcngpure14GbhpurqZbavgbeRAF_9nyybpngbeVF3_RRR24__rzcynpr_onpx_fybj_cnguVWEXAF2_7ZbavgbeREsFO_RRRiQcBG_
 .type b__MAFg3__16irpgbeVA7naqebvq15vachgqvfcngpure14GbhpurqZbavgbeRAF_9nyybpngbeVF3_RRR24__rzcynpr_onpx_fybj_cnguVWEXAF2_7ZbavgbeREsFO_RRRiQcBG_,%function
 b__MAFg3__16irpgbeVA7naqebvq15vachgqvfcngpure14GbhpurqZbavgbeRAF_9nyybpngbeVF3_RRR24__rzcynpr_onpx_fybj_cnguVWEXAF2_7ZbavgbeREsFO_RRRiQcBG_:
 nop
@@ -1048,12 +1048,12 @@
 b__MA7naqebvq15vachgqvfcngpure15VachgQvfcngpure34purpxJvaqbjErnqlSbeZberVachgYbpxrqRyEXAF_2fcVAF_17VachgJvaqbjUnaqyrRRRCXAF0_10RiragRagelRCXp:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvA7naqebvq2fcVAF2_17VachgJvaqbjUnaqyrRRRRRAF_22__habeqrerq_znc_unfureVvF6_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF6_AF_8rdhny_gbVvRRYo1RRRAF_9nyybpngbeVF6_RRR8__erunfuRz
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvA7naqebvq2fcVAF2_17VachgJvaqbjUnaqyrRRRRRAF_22__habeqrerq_znc_unfureVvF6_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF6_AF_8rdhny_gbVvRRYo1RRRAF_9nyybpngbeVF6_RRR8__erunfuRz
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvA7naqebvq2fcVAF2_17VachgJvaqbjUnaqyrRRRRRAF_22__habeqrerq_znc_unfureVvF6_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF6_AF_8rdhny_gbVvRRYo1RRRAF_9nyybpngbeVF6_RRR8__erunfuRz,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvA7naqebvq2fcVAF2_17VachgJvaqbjUnaqyrRRRRRAF_22__habeqrerq_znc_unfureVvF6_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF6_AF_8rdhny_gbVvRRYo1RRRAF_9nyybpngbeVF6_RRR8__erunfuRz:
 nop
 .text
-.globl b__MAFg3__16irpgbeVCA7naqebvq15vachgqvfcngpure10RiragRagelRAF_9nyybpngbeVF4_RRR21__chfu_onpx_fybj_cnguVF4_RRiBG_
+.weak b__MAFg3__16irpgbeVCA7naqebvq15vachgqvfcngpure10RiragRagelRAF_9nyybpngbeVF4_RRR21__chfu_onpx_fybj_cnguVF4_RRiBG_
 .type b__MAFg3__16irpgbeVCA7naqebvq15vachgqvfcngpure10RiragRagelRAF_9nyybpngbeVF4_RRR21__chfu_onpx_fybj_cnguVF4_RRiBG_,%function
 b__MAFg3__16irpgbeVCA7naqebvq15vachgqvfcngpure10RiragRagelRAF_9nyybpngbeVF4_RRR21__chfu_onpx_fybj_cnguVF4_RRiBG_:
 nop
@@ -1083,7 +1083,7 @@
 b__MA7naqebvq15vachgqvfcngpure15VachgQvfcngpure9abgvslXrlRCXAF_13AbgvslXrlNetfR:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVyR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq6IrpgbeVyR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq6IrpgbeVyR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq6IrpgbeVyR10qb_qrfgeblRCiz:
 nop
@@ -1098,17 +1098,17 @@
 b__MA7naqebvq15vachgqvfcngpure15VachgQvfcngpure20qvfcngpuZbgvbaYbpxrqRyCAF0_11ZbgvbaRagelRCAF1_10QebcErnfbaRCy:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_2fcVAF_15vachgqvfcngpure10PbaarpgvbaRRRRRR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_2fcVAF_15vachgqvfcngpure10PbaarpgvbaRRRRRR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_2fcVAF_15vachgqvfcngpure10PbaarpgvbaRRRRRR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_2fcVAF_15vachgqvfcngpure10PbaarpgvbaRRRRRR8qb_fcyngRCiCXiz:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_17CbvagreCebcregvrfRR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq6IrpgbeVAF_17CbvagreCebcregvrfRR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq6IrpgbeVAF_17CbvagreCebcregvrfRR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq6IrpgbeVAF_17CbvagreCebcregvrfRR10qb_qrfgeblRCiz:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvAF_6irpgbeVA7naqebvq2fcVAF3_17VachgJvaqbjUnaqyrRRRAF_9nyybpngbeVF6_RRRRRRAF_22__habeqrerq_znc_unfureVvFN_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvFN_AF_8rdhny_gbVvRRYo1RRRAF7_VFN_RRR5renfrRAF_21__unfu_pbafg_vgrengbeVCAF_11__unfu_abqrVFN_CiRRRR
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvAF_6irpgbeVA7naqebvq2fcVAF3_17VachgJvaqbjUnaqyrRRRAF_9nyybpngbeVF6_RRRRRRAF_22__habeqrerq_znc_unfureVvFN_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvFN_AF_8rdhny_gbVvRRYo1RRRAF7_VFN_RRR5renfrRAF_21__unfu_pbafg_vgrengbeVCAF_11__unfu_abqrVFN_CiRRRR
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvAF_6irpgbeVA7naqebvq2fcVAF3_17VachgJvaqbjUnaqyrRRRAF_9nyybpngbeVF6_RRRRRRAF_22__habeqrerq_znc_unfureVvFN_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvFN_AF_8rdhny_gbVvRRYo1RRRAF7_VFN_RRR5renfrRAF_21__unfu_pbafg_vgrengbeVCAF_11__unfu_abqrVFN_CiRRRR,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvAF_6irpgbeVA7naqebvq2fcVAF3_17VachgJvaqbjUnaqyrRRRAF_9nyybpngbeVF6_RRRRRRAF_22__habeqrerq_znc_unfureVvFN_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvFN_AF_8rdhny_gbVvRRYo1RRRAF7_VFN_RRR5renfrRAF_21__unfu_pbafg_vgrengbeVCAF_11__unfu_abqrVFN_CiRRRR:
 nop
@@ -1128,7 +1128,7 @@
 b__MA7naqebvq15vachgqvfcngpure15VachgQvfcngpure12vfFgnyrRiragRyCAF0_10RiragRagelR:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_2fcVAF_15vachgqvfcngpure10PbaarpgvbaRRRRRR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_2fcVAF_15vachgqvfcngpure10PbaarpgvbaRRRRRR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_2fcVAF_15vachgqvfcngpure10PbaarpgvbaRRRRRR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_2fcVAF_15vachgqvfcngpure10PbaarpgvbaRRRRRR7qb_pbclRCiCXiz:
 nop
@@ -1153,7 +1153,7 @@
 b__MA7naqebvq15vachgqvfcngpure15VachgQvfcngpure27unaqyrGnetrgfAbgErnqlYbpxrqRyCXAF0_10RiragRagelREXAF_2fcVAF_22VachgNccyvpngvbaUnaqyrRRREXAF5_VAF_17VachgJvaqbjUnaqyrRRRCyCXp:
 nop
 .text
-.globl b__MAFg3__114__guernq_cebklVAF_5ghcyrVWAF_10havdhr_cgeVAF_15__guernq_fgehpgRAF_14qrsnhyg_qryrgrVF3_RRRRZA7naqebvq16ZbgvbaPynffvsvreRSiiRCF8_RRRRRCiFQ_
+.weak b__MAFg3__114__guernq_cebklVAF_5ghcyrVWAF_10havdhr_cgeVAF_15__guernq_fgehpgRAF_14qrsnhyg_qryrgrVF3_RRRRZA7naqebvq16ZbgvbaPynffvsvreRSiiRCF8_RRRRRCiFQ_
 .type b__MAFg3__114__guernq_cebklVAF_5ghcyrVWAF_10havdhr_cgeVAF_15__guernq_fgehpgRAF_14qrsnhyg_qryrgrVF3_RRRRZA7naqebvq16ZbgvbaPynffvsvreRSiiRCF8_RRRRRCiFQ_,%function
 b__MAFg3__114__guernq_cebklVAF_5ghcyrVWAF_10havdhr_cgeVAF_15__guernq_fgehpgRAF_14qrsnhyg_qryrgrVF3_RRRRZA7naqebvq16ZbgvbaPynffvsvreRSiiRCF8_RRRRRCiFQ_:
 nop
@@ -1163,7 +1163,7 @@
 b__MA7naqebvq15vachgqvfcngpure10PbaarpgvbaP2REXAF_2fcVAF_12VachgPunaaryRRRo:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq8uneqjner5vachg6pbzzba4I1_013CbvagrePbbeqfRAF_9nyybpngbeVF6_RRR7erfreirRz
+.weak b__MAFg3__16irpgbeVA7naqebvq8uneqjner5vachg6pbzzba4I1_013CbvagrePbbeqfRAF_9nyybpngbeVF6_RRR7erfreirRz
 .type b__MAFg3__16irpgbeVA7naqebvq8uneqjner5vachg6pbzzba4I1_013CbvagrePbbeqfRAF_9nyybpngbeVF6_RRR7erfreirRz,%function
 b__MAFg3__16irpgbeVA7naqebvq8uneqjner5vachg6pbzzba4I1_013CbvagrePbbeqfRAF_9nyybpngbeVF6_RRR7erfreirRz:
 nop
@@ -1213,7 +1213,7 @@
 b__MA7naqebvq15vachgqvfcngpure15VachgQvfcngpure24genprBhgobhaqDhrhrYratguREXAF_2fcVAF0_10PbaarpgvbaRRR:
 nop
 .data
-.globl b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_15vachgqvfcngpure15VachgQvfcngpure14XrlErcynprzragRvRRRR
+.weak b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_15vachgqvfcngpure15VachgQvfcngpure14XrlErcynprzragRvRRRR
 .type b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_15vachgqvfcngpure15VachgQvfcngpure14XrlErcynprzragRvRRRR,%object
 b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_15vachgqvfcngpure15VachgQvfcngpure14XrlErcynprzragRvRRRR:
 .space __SIZEOF_POINTER__
@@ -1228,7 +1228,7 @@
 b__MA7naqebvq15vachgqvfcngpure15VachgQvfcngpureQ0Ri:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVyR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq6IrpgbeVyR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq6IrpgbeVyR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq6IrpgbeVyR12qb_pbafgehpgRCiz:
 nop
@@ -1263,7 +1263,7 @@
 b__MA7naqebvq16ZbgvbaPynffvsvre17trgPynffvsvpngvbaRv:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVvAF_4unfuVvRRAF_8rdhny_gbVvRRAF_9nyybpngbeVvRRR25__rzcynpr_havdhr_xrl_netfVvWEXvRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVvCiRRRRoRREXG_QcBG0_
+.weak b__MAFg3__112__unfu_gnoyrVvAF_4unfuVvRRAF_8rdhny_gbVvRRAF_9nyybpngbeVvRRR25__rzcynpr_havdhr_xrl_netfVvWEXvRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVvCiRRRRoRREXG_QcBG0_
 .type b__MAFg3__112__unfu_gnoyrVvAF_4unfuVvRRAF_8rdhny_gbVvRRAF_9nyybpngbeVvRRR25__rzcynpr_havdhr_xrl_netfVvWEXvRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVvCiRRRRoRREXG_QcBG0_,%function
 b__MAFg3__112__unfu_gnoyrVvAF_4unfuVvRRAF_8rdhny_gbVvRRAF_9nyybpngbeVvRRR25__rzcynpr_havdhr_xrl_netfVvWEXvRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVvCiRRRRoRREXG_QcBG0_:
 nop
@@ -1278,12 +1278,12 @@
 b__MA7naqebvq15vachgqvfcngpure15VachgQvfcngpure36qrperzragCraqvatSbertebhaqQvfcngpurfRCAF0_10RiragRagelR:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvA7naqebvq2fcVAF2_17VachgJvaqbjUnaqyrRRRRRAF_22__habeqrerq_znc_unfureVvF6_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF6_AF_8rdhny_gbVvRRYo1RRRAF_9nyybpngbeVF6_RRR14__renfr_havdhrVvRRzEXG_
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvA7naqebvq2fcVAF2_17VachgJvaqbjUnaqyrRRRRRAF_22__habeqrerq_znc_unfureVvF6_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF6_AF_8rdhny_gbVvRRYo1RRRAF_9nyybpngbeVF6_RRR14__renfr_havdhrVvRRzEXG_
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvA7naqebvq2fcVAF2_17VachgJvaqbjUnaqyrRRRRRAF_22__habeqrerq_znc_unfureVvF6_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF6_AF_8rdhny_gbVvRRYo1RRRAF_9nyybpngbeVF6_RRR14__renfr_havdhrVvRRzEXG_,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvA7naqebvq2fcVAF2_17VachgJvaqbjUnaqyrRRRRRAF_22__habeqrerq_znc_unfureVvF6_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF6_AF_8rdhny_gbVvRRYo1RRRAF_9nyybpngbeVF6_RRR14__renfr_havdhrVvRRzEXG_:
 nop
 .text
-.globl b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR7frrxbssRkAF_8vbf_onfr7frrxqveRw
+.weak b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR7frrxbssRkAF_8vbf_onfr7frrxqveRw
 .type b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR7frrxbssRkAF_8vbf_onfr7frrxqveRw,%function
 b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR7frrxbssRkAF_8vbf_onfr7frrxqveRw:
 nop
@@ -1293,7 +1293,7 @@
 b__MA7naqebvq15PynffvsvreRiragP2RAFg3__110havdhr_cgeVAF_21AbgvslQrivprErfrgNetfRAF1_14qrsnhyg_qryrgrVF3_RRRR:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvAF_6irpgbeVA7naqebvq2fcVAF3_17VachgJvaqbjUnaqyrRRRAF_9nyybpngbeVF6_RRRRRRAF_22__habeqrerq_znc_unfureVvFN_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvFN_AF_8rdhny_gbVvRRYo1RRRAF7_VFN_RRR25__rzcynpr_havdhr_xrl_netfVvWEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXvRRRAFC_VWRRRRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVFN_CiRRRRoRREXG_QcBG0_
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvAF_6irpgbeVA7naqebvq2fcVAF3_17VachgJvaqbjUnaqyrRRRAF_9nyybpngbeVF6_RRRRRRAF_22__habeqrerq_znc_unfureVvFN_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvFN_AF_8rdhny_gbVvRRYo1RRRAF7_VFN_RRR25__rzcynpr_havdhr_xrl_netfVvWEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXvRRRAFC_VWRRRRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVFN_CiRRRRoRREXG_QcBG0_
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvAF_6irpgbeVA7naqebvq2fcVAF3_17VachgJvaqbjUnaqyrRRRAF_9nyybpngbeVF6_RRRRRRAF_22__habeqrerq_znc_unfureVvFN_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvFN_AF_8rdhny_gbVvRRYo1RRRAF7_VFN_RRR25__rzcynpr_havdhr_xrl_netfVvWEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXvRRRAFC_VWRRRRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVFN_CiRRRRoRREXG_QcBG0_,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvAF_6irpgbeVA7naqebvq2fcVAF3_17VachgJvaqbjUnaqyrRRRAF_9nyybpngbeVF6_RRRRRRAF_22__habeqrerq_znc_unfureVvFN_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvFN_AF_8rdhny_gbVvRRYo1RRRAF7_VFN_RRR25__rzcynpr_havdhr_xrl_netfVvWEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXvRRRAFC_VWRRRRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVFN_CiRRRRoRREXG_QcBG0_:
 nop
@@ -1308,17 +1308,17 @@
 b__MGIA7naqebvq21VachgQvfcngpureGuernqR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__112__unfu_gnoyrVvAF_4unfuVvRRAF_8rdhny_gbVvRRAF_9nyybpngbeVvRRR6erunfuRz
+.weak b__MAFg3__112__unfu_gnoyrVvAF_4unfuVvRRAF_8rdhny_gbVvRRAF_9nyybpngbeVvRRR6erunfuRz
 .type b__MAFg3__112__unfu_gnoyrVvAF_4unfuVvRRAF_8rdhny_gbVvRRAF_9nyybpngbeVvRRR6erunfuRz,%function
 b__MAFg3__112__unfu_gnoyrVvAF_4unfuVvRRAF_8rdhny_gbVvRRAF_9nyybpngbeVvRRR6erunfuRz:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq15PynffvsvreRiragRAF_9nyybpngbeVF2_RRR7erfreirRz
+.weak b__MAFg3__16irpgbeVA7naqebvq15PynffvsvreRiragRAF_9nyybpngbeVF2_RRR7erfreirRz
 .type b__MAFg3__16irpgbeVA7naqebvq15PynffvsvreRiragRAF_9nyybpngbeVF2_RRR7erfreirRz,%function
 b__MAFg3__16irpgbeVA7naqebvq15PynffvsvreRiragRAF_9nyybpngbeVF2_RRR7erfreirRz:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_15vachgqvfcngpure15VachgQvfcngpure14XrlErcynprzragRvRRR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_15vachgqvfcngpure15VachgQvfcngpure14XrlErcynprzragRvRRR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_15vachgqvfcngpure15VachgQvfcngpure14XrlErcynprzragRvRRR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_15vachgqvfcngpure15VachgQvfcngpure14XrlErcynprzragRvRRR8qb_fcyngRCiCXiz:
 nop
@@ -1348,7 +1348,7 @@
 b__MA7naqebvq21VachgQvfcngpureGuernqQ2Ri:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq15vachgqvfcngpure10VachgFgngr10XrlZrzragbRAF_9nyybpngbeVF4_RRR21__chfu_onpx_fybj_cnguVEXF4_RRiBG_
+.weak b__MAFg3__16irpgbeVA7naqebvq15vachgqvfcngpure10VachgFgngr10XrlZrzragbRAF_9nyybpngbeVF4_RRR21__chfu_onpx_fybj_cnguVEXF4_RRiBG_
 .type b__MAFg3__16irpgbeVA7naqebvq15vachgqvfcngpure10VachgFgngr10XrlZrzragbRAF_9nyybpngbeVF4_RRR21__chfu_onpx_fybj_cnguVEXF4_RRiBG_,%function
 b__MAFg3__16irpgbeVA7naqebvq15vachgqvfcngpure10VachgFgngr10XrlZrzragbRAF_9nyybpngbeVF4_RRR21__chfu_onpx_fybj_cnguVEXF4_RRiBG_:
 nop
@@ -1363,12 +1363,12 @@
 b__MA7naqebvq15vachgqvfcngpure15VachgQvfcngpure30nobegOebxraQvfcngpuPlpyrYbpxrqRyEXAF_2fcVAF0_10PbaarpgvbaRRRo:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_13CbvagrePbbeqfRR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq6IrpgbeVAF_13CbvagrePbbeqfRR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq6IrpgbeVAF_13CbvagrePbbeqfRR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq6IrpgbeVAF_13CbvagrePbbeqfRR12qb_pbafgehpgRCiz:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_13CbvagrePbbeqfRR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_13CbvagrePbbeqfRR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_13CbvagrePbbeqfRR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_13CbvagrePbbeqfRR7qb_pbclRCiCXiz:
 nop
@@ -1378,7 +1378,7 @@
 b__MA7naqebvq16ZbgvbaPynffvsvre17frgPynffvsvpngvbaRvAF_20ZbgvbaPynffvsvpngvbaR:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvA7naqebvq2fcVAF2_17VachgJvaqbjUnaqyrRRRRRAF_22__habeqrerq_znc_unfureVvF6_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF6_AF_8rdhny_gbVvRRYo1RRRAF_9nyybpngbeVF6_RRR6erzbirRAF_21__unfu_pbafg_vgrengbeVCAF_11__unfu_abqrVF6_CiRRRR
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvA7naqebvq2fcVAF2_17VachgJvaqbjUnaqyrRRRRRAF_22__habeqrerq_znc_unfureVvF6_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF6_AF_8rdhny_gbVvRRYo1RRRAF_9nyybpngbeVF6_RRR6erzbirRAF_21__unfu_pbafg_vgrengbeVCAF_11__unfu_abqrVF6_CiRRRR
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvA7naqebvq2fcVAF2_17VachgJvaqbjUnaqyrRRRRRAF_22__habeqrerq_znc_unfureVvF6_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF6_AF_8rdhny_gbVvRRYo1RRRAF_9nyybpngbeVF6_RRR6erzbirRAF_21__unfu_pbafg_vgrengbeVCAF_11__unfu_abqrVF6_CiRRRR,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvA7naqebvq2fcVAF2_17VachgJvaqbjUnaqyrRRRRRAF_22__habeqrerq_znc_unfureVvF6_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF6_AF_8rdhny_gbVvRRYo1RRRAF_9nyybpngbeVF6_RRR6erzbirRAF_21__unfu_pbafg_vgrengbeVCAF_11__unfu_abqrVF6_CiRRRR:
 nop
@@ -1393,7 +1393,7 @@
 b__MAX7naqebvq15vachgqvfcngpure10VachgFgngr14svaqXrlZrzragbRCXAF0_8XrlRagelR:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvA7naqebvq20ZbgvbaPynffvsvpngvbaRRRAF_22__habeqrerq_znc_unfureVvF4_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF4_AF_8rdhny_gbVvRRYo1RRRAF_9nyybpngbeVF4_RRR6erunfuRz
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvA7naqebvq20ZbgvbaPynffvsvpngvbaRRRAF_22__habeqrerq_znc_unfureVvF4_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF4_AF_8rdhny_gbVvRRYo1RRRAF_9nyybpngbeVF4_RRR6erunfuRz
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvA7naqebvq20ZbgvbaPynffvsvpngvbaRRRAF_22__habeqrerq_znc_unfureVvF4_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF4_AF_8rdhny_gbVvRRYo1RRRAF_9nyybpngbeVF4_RRR6erunfuRz,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvA7naqebvq20ZbgvbaPynffvsvpngvbaRRRAF_22__habeqrerq_znc_unfureVvF4_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF4_AF_8rdhny_gbVvRRYo1RRRAF_9nyybpngbeVF4_RRR6erunfuRz:
 nop
@@ -1408,7 +1408,7 @@
 b__MA7naqebvq15vachgqvfcngpure15VachgQvfcngpure26abgvslPbasvthengvbaPunatrqRCXAF_30AbgvslPbasvthengvbaPunatrqNetfR:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVA7naqebvq2fcVAF2_7VOvaqreRRRAF3_VAF2_17VachgJvaqbjUnaqyrRRRRRAF_22__habeqrerq_znc_unfureVF5_F8_AF2_15vachgqvfcngpure15VachgQvfcngpure11VOvaqreUnfuRYo1RRRAF_21__habeqrerq_znc_rdhnyVF5_F8_AF_8rdhny_gbVF5_RRYo1RRRAF_9nyybpngbeVF8_RRR8__erunfuRz
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVA7naqebvq2fcVAF2_7VOvaqreRRRAF3_VAF2_17VachgJvaqbjUnaqyrRRRRRAF_22__habeqrerq_znc_unfureVF5_F8_AF2_15vachgqvfcngpure15VachgQvfcngpure11VOvaqreUnfuRYo1RRRAF_21__habeqrerq_znc_rdhnyVF5_F8_AF_8rdhny_gbVF5_RRYo1RRRAF_9nyybpngbeVF8_RRR8__erunfuRz
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVA7naqebvq2fcVAF2_7VOvaqreRRRAF3_VAF2_17VachgJvaqbjUnaqyrRRRRRAF_22__habeqrerq_znc_unfureVF5_F8_AF2_15vachgqvfcngpure15VachgQvfcngpure11VOvaqreUnfuRYo1RRRAF_21__habeqrerq_znc_rdhnyVF5_F8_AF_8rdhny_gbVF5_RRYo1RRRAF_9nyybpngbeVF8_RRR8__erunfuRz,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVA7naqebvq2fcVAF2_7VOvaqreRRRAF3_VAF2_17VachgJvaqbjUnaqyrRRRRRAF_22__habeqrerq_znc_unfureVF5_F8_AF2_15vachgqvfcngpure15VachgQvfcngpure11VOvaqreUnfuRYo1RRRAF_21__habeqrerq_znc_rdhnyVF5_F8_AF_8rdhny_gbVF5_RRYo1RRRAF_9nyybpngbeVF8_RRR8__erunfuRz:
 nop
@@ -1428,7 +1428,7 @@
 b__MA7naqebvq15vachgqvfcngpure15VachgQvfcngpure46qbBaCbvagreQbjaBhgfvqrSbphfYbpxrqVagreehcgvoyrRCAF0_12PbzznaqRagelR:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_15vachgqvfcngpure10GbhpuFgngrRRRR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_15vachgqvfcngpure10GbhpuFgngrRRRR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_15vachgqvfcngpure10GbhpuFgngrRRRR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_15vachgqvfcngpure10GbhpuFgngrRRRR15qb_zbir_sbejneqRCiCXiz:
 nop
@@ -1458,7 +1458,7 @@
 b__MA7naqebvq15vachgqvfcngpure15VachgQvfcngpure20eryrnfrQvfcngpuRagelRCAF0_13QvfcngpuRagelR:
 nop
 .data
-.globl b__MGIA7naqebvq6IrpgbeVyRR
+.weak b__MGIA7naqebvq6IrpgbeVyRR
 .type b__MGIA7naqebvq6IrpgbeVyRR,%object
 b__MGIA7naqebvq6IrpgbeVyRR:
 .space __SIZEOF_POINTER__
@@ -1478,12 +1478,12 @@
 b__MA7naqebvq15vachgqvfcngpure15VachgQvfcngpure28radhrhrQvfcngpuRagevrfYbpxrqRyEXAF_2fcVAF0_10PbaarpgvbaRRRCAF0_10RiragRagelRCXAF0_11VachgGnetrgR:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_2fcVAF_15vachgqvfcngpure10PbaarpgvbaRRRRRR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_2fcVAF_15vachgqvfcngpure10PbaarpgvbaRRRRRR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_2fcVAF_15vachgqvfcngpure10PbaarpgvbaRRRRRR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_2fcVAF_15vachgqvfcngpure10PbaarpgvbaRRRRRR15qb_zbir_sbejneqRCiCXiz:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_15vachgqvfcngpure15VachgQvfcngpure14XrlErcynprzragRvRRR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_15vachgqvfcngpure15VachgQvfcngpure14XrlErcynprzragRvRRR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_15vachgqvfcngpure15VachgQvfcngpure14XrlErcynprzragRvRRR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_15vachgqvfcngpure15VachgQvfcngpure14XrlErcynprzragRvRRR7qb_pbclRCiCXiz:
 nop
@@ -1513,7 +1513,7 @@
 b__MGi0_a24_A7naqebvq21VachgQvfcngpureGuernqQ1Ri:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq15vachgqvfcngpure10VachgFgngr13ZbgvbaZrzragbRAF_9nyybpngbeVF4_RRR21__chfu_onpx_fybj_cnguVEXF4_RRiBG_
+.weak b__MAFg3__16irpgbeVA7naqebvq15vachgqvfcngpure10VachgFgngr13ZbgvbaZrzragbRAF_9nyybpngbeVF4_RRR21__chfu_onpx_fybj_cnguVEXF4_RRiBG_
 .type b__MAFg3__16irpgbeVA7naqebvq15vachgqvfcngpure10VachgFgngr13ZbgvbaZrzragbRAF_9nyybpngbeVF4_RRR21__chfu_onpx_fybj_cnguVEXF4_RRiBG_,%function
 b__MAFg3__16irpgbeVA7naqebvq15vachgqvfcngpure10VachgFgngr13ZbgvbaZrzragbRAF_9nyybpngbeVF4_RRR21__chfu_onpx_fybj_cnguVEXF4_RRiBG_:
 nop
@@ -1528,12 +1528,12 @@
 b__MA7naqebvq15vachgqvfcngpure15VachgQvfcngpure34qvfcngpuPbasvthengvbaPunatrqYbpxrqRyCAF0_25PbasvthengvbaPunatrqRagelR:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvAF_6irpgbeVA7naqebvq15vachgqvfcngpure7ZbavgbeRAF_9nyybpngbeVF5_RRRRRRAF_22__habeqrerq_znc_unfureVvF9_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF9_AF_8rdhny_gbVvRRYo1RRRAF6_VF9_RRR5renfrRAF_21__unfu_pbafg_vgrengbeVCAF_11__unfu_abqrVF9_CiRRRR
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvAF_6irpgbeVA7naqebvq15vachgqvfcngpure7ZbavgbeRAF_9nyybpngbeVF5_RRRRRRAF_22__habeqrerq_znc_unfureVvF9_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF9_AF_8rdhny_gbVvRRYo1RRRAF6_VF9_RRR5renfrRAF_21__unfu_pbafg_vgrengbeVCAF_11__unfu_abqrVF9_CiRRRR
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvAF_6irpgbeVA7naqebvq15vachgqvfcngpure7ZbavgbeRAF_9nyybpngbeVF5_RRRRRRAF_22__habeqrerq_znc_unfureVvF9_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF9_AF_8rdhny_gbVvRRYo1RRRAF6_VF9_RRR5renfrRAF_21__unfu_pbafg_vgrengbeVCAF_11__unfu_abqrVF9_CiRRRR,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvAF_6irpgbeVA7naqebvq15vachgqvfcngpure7ZbavgbeRAF_9nyybpngbeVF5_RRRRRRAF_22__habeqrerq_znc_unfureVvF9_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF9_AF_8rdhny_gbVvRRYo1RRRAF6_VF9_RRR5renfrRAF_21__unfu_pbafg_vgrengbeVCAF_11__unfu_abqrVF9_CiRRRR:
 nop
 .data
-.globl b__MGPAFg3__119onfvp_vfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_13onfvp_vfgernzVpF2_RR
+.weak b__MGPAFg3__119onfvp_vfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_13onfvp_vfgernzVpF2_RR
 .type b__MGPAFg3__119onfvp_vfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_13onfvp_vfgernzVpF2_RR,%object
 b__MGPAFg3__119onfvp_vfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_13onfvp_vfgernzVpF2_RR:
 .space __SIZEOF_POINTER__
@@ -1543,7 +1543,7 @@
 b__MA7naqebvq15vachgqvfcngpure15VachgQvfcngpure22erfrgNAEGvzrbhgfYbpxrqRi:
 nop
 .text
-.globl b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9conpxsnvyRv
+.weak b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9conpxsnvyRv
 .type b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9conpxsnvyRv,%function
 b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9conpxsnvyRv:
 nop
@@ -1558,7 +1558,7 @@
 b__MA7naqebvq15VachgPynffvsvreP2REXAF_2fcVAF_22VachgYvfgrareVagresnprRRR:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvyRRAF_22__habeqrerq_znc_unfureVvF2_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF2_AF_8rdhny_gbVvRRYo1RRRAF_9nyybpngbeVF2_RRR8__erunfuRz
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvyRRAF_22__habeqrerq_znc_unfureVvF2_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF2_AF_8rdhny_gbVvRRYo1RRRAF_9nyybpngbeVF2_RRR8__erunfuRz
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvyRRAF_22__habeqrerq_znc_unfureVvF2_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF2_AF_8rdhny_gbVvRRYo1RRRAF_9nyybpngbeVF2_RRR8__erunfuRz,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvyRRAF_22__habeqrerq_znc_unfureVvF2_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF2_AF_8rdhny_gbVvRRYo1RRRAF_9nyybpngbeVF2_RRR8__erunfuRz:
 nop
@@ -1583,7 +1583,7 @@
 b__MA7naqebvq15vachgqvfcngpure10GbhpuFgngrP1Ri:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvvRRR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvvRRR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvvRRR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvvRRR7qb_pbclRCiCXiz:
 nop
@@ -1603,7 +1603,7 @@
 b__MA7naqebvq15vachgqvfcngpure15VachgQvfcngpure12abgvslFjvgpuRCXAF_16AbgvslFjvgpuNetfR:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvvRRR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvvRRR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvvRRR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvvRRR10qb_qrfgeblRCiz:
 nop
@@ -1623,7 +1623,7 @@
 b__MA7naqebvq15vachgqvfcngpure15VachgQvfcngpure39erfhzrNsgreGnetrgfAbgErnqlGvzrbhgYbpxrqRyEXAF_2fcVAF_12VachgPunaaryRRR:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_15vachgqvfcngpure10GbhpuFgngrRRRR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_15vachgqvfcngpure10GbhpuFgngrRRRR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_15vachgqvfcngpure10GbhpuFgngrRRRR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_15vachgqvfcngpure10GbhpuFgngrRRRR16qb_zbir_onpxjneqRCiCXiz:
 nop
@@ -1673,7 +1673,7 @@
 b__MAX7naqebvq15vachgqvfcngpure10GbhpuFgngr10vfFyvccrelRi:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvyRRAF_22__habeqrerq_znc_unfureVvF2_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF2_AF_8rdhny_gbVvRRYo1RRRAF_9nyybpngbeVF2_RRR6erunfuRz
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvyRRAF_22__habeqrerq_znc_unfureVvF2_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF2_AF_8rdhny_gbVvRRYo1RRRAF_9nyybpngbeVF2_RRR6erunfuRz
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvyRRAF_22__habeqrerq_znc_unfureVvF2_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF2_AF_8rdhny_gbVvRRYo1RRRAF_9nyybpngbeVF2_RRR6erunfuRz,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvyRRAF_22__habeqrerq_znc_unfureVvF2_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF2_AF_8rdhny_gbVvRRYo1RRRAF_9nyybpngbeVF2_RRR6erunfuRz:
 nop
@@ -1683,7 +1683,7 @@
 b__MA7naqebvq15vachgqvfcngpure15VachgQvfcngpureP1REXAF_2fcVAF_30VachgQvfcngpureCbyvplVagresnprRRR:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVyR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVyR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVyR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVyR7qb_pbclRCiCXiz:
 nop
@@ -1723,7 +1723,7 @@
 b__MA7naqebvq15vachgqvfcngpure15VachgQvfcngpure20ertvfgreVachgZbavgbeREXAF_2fcVAF_12VachgPunaaryRRRvo:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_2fcVAF_15vachgqvfcngpure10PbaarpgvbaRRRRRR10qb_pbzcnerRCXiF9_
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_2fcVAF_15vachgqvfcngpure10PbaarpgvbaRRRRRR10qb_pbzcnerRCXiF9_
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_2fcVAF_15vachgqvfcngpure10PbaarpgvbaRRRRRR10qb_pbzcnerRCXiF9_,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_2fcVAF_15vachgqvfcngpure10PbaarpgvbaRRRRRR10qb_pbzcnerRCXiF9_:
 nop
@@ -1748,12 +1748,12 @@
 b__MA7naqebvq15vachgqvfcngpure15VachgQvfcngpure20nqqErpragRiragYbpxrqRCAF0_10RiragRagelR:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_15vachgqvfcngpure10GbhpuFgngrRRRR10qb_pbzcnerRCXiF7_
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_15vachgqvfcngpure10GbhpuFgngrRRRR10qb_pbzcnerRCXiF7_
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_15vachgqvfcngpure10GbhpuFgngrRRRR10qb_pbzcnerRCXiF7_,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_15vachgqvfcngpure10GbhpuFgngrRRRR10qb_pbzcnerRCXiF7_:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvAF_6irpgbeVA7naqebvq15vachgqvfcngpure7ZbavgbeRAF_9nyybpngbeVF5_RRRRRRAF_22__habeqrerq_znc_unfureVvF9_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF9_AF_8rdhny_gbVvRRYo1RRRAF6_VF9_RRR25__rzcynpr_havdhr_xrl_netfVvWEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXvRRRAFB_VWRRRRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF9_CiRRRRoRREXG_QcBG0_
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvAF_6irpgbeVA7naqebvq15vachgqvfcngpure7ZbavgbeRAF_9nyybpngbeVF5_RRRRRRAF_22__habeqrerq_znc_unfureVvF9_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF9_AF_8rdhny_gbVvRRYo1RRRAF6_VF9_RRR25__rzcynpr_havdhr_xrl_netfVvWEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXvRRRAFB_VWRRRRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF9_CiRRRRoRREXG_QcBG0_
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvAF_6irpgbeVA7naqebvq15vachgqvfcngpure7ZbavgbeRAF_9nyybpngbeVF5_RRRRRRAF_22__habeqrerq_znc_unfureVvF9_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF9_AF_8rdhny_gbVvRRYo1RRRAF6_VF9_RRR25__rzcynpr_havdhr_xrl_netfVvWEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXvRRRAFB_VWRRRRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF9_CiRRRRoRREXG_QcBG0_,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvAF_6irpgbeVA7naqebvq15vachgqvfcngpure7ZbavgbeRAF_9nyybpngbeVF5_RRRRRRAF_22__habeqrerq_znc_unfureVvF9_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF9_AF_8rdhny_gbVvRRYo1RRRAF6_VF9_RRR25__rzcynpr_havdhr_xrl_netfVvWEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXvRRRAFB_VWRRRRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF9_CiRRRRoRREXG_QcBG0_:
 nop
@@ -1788,12 +1788,12 @@
 b__MA7naqebvq15vachgqvfcngpure15VachgQvfcngpure42qbQvfcngpuPlpyrSvavfurqYbpxrqVagreehcgvoyrRCAF0_12PbzznaqRagelR:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVyR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVyR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVyR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVyR8qb_fcyngRCiCXiz:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVA7naqebvq2fcVAF2_7VOvaqreRRRAF3_VAF2_17VachgJvaqbjUnaqyrRRRRRAF_22__habeqrerq_znc_unfureVF5_F8_AF2_15vachgqvfcngpure15VachgQvfcngpure11VOvaqreUnfuRYo1RRRAF_21__habeqrerq_znc_rdhnyVF5_F8_AF_8rdhny_gbVF5_RRYo1RRRAF_9nyybpngbeVF8_RRR25__rzcynpr_havdhr_xrl_netfVF5_WEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWBF5_RRRAFC_VWRRRRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF8_CiRRRRoRREXG_QcBG0_
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVA7naqebvq2fcVAF2_7VOvaqreRRRAF3_VAF2_17VachgJvaqbjUnaqyrRRRRRAF_22__habeqrerq_znc_unfureVF5_F8_AF2_15vachgqvfcngpure15VachgQvfcngpure11VOvaqreUnfuRYo1RRRAF_21__habeqrerq_znc_rdhnyVF5_F8_AF_8rdhny_gbVF5_RRYo1RRRAF_9nyybpngbeVF8_RRR25__rzcynpr_havdhr_xrl_netfVF5_WEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWBF5_RRRAFC_VWRRRRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF8_CiRRRRoRREXG_QcBG0_
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVA7naqebvq2fcVAF2_7VOvaqreRRRAF3_VAF2_17VachgJvaqbjUnaqyrRRRRRAF_22__habeqrerq_znc_unfureVF5_F8_AF2_15vachgqvfcngpure15VachgQvfcngpure11VOvaqreUnfuRYo1RRRAF_21__habeqrerq_znc_rdhnyVF5_F8_AF_8rdhny_gbVF5_RRYo1RRRAF_9nyybpngbeVF8_RRR25__rzcynpr_havdhr_xrl_netfVF5_WEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWBF5_RRRAFC_VWRRRRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF8_CiRRRRoRREXG_QcBG0_,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVA7naqebvq2fcVAF2_7VOvaqreRRRAF3_VAF2_17VachgJvaqbjUnaqyrRRRRRAF_22__habeqrerq_znc_unfureVF5_F8_AF2_15vachgqvfcngpure15VachgQvfcngpure11VOvaqreUnfuRYo1RRRAF_21__habeqrerq_znc_rdhnyVF5_F8_AF_8rdhny_gbVF5_RRYo1RRRAF_9nyybpngbeVF8_RRR25__rzcynpr_havdhr_xrl_netfVF5_WEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWBF5_RRRAFC_VWRRRRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF8_CiRRRRoRREXG_QcBG0_:
 nop
@@ -1813,7 +1813,7 @@
 b__MA7naqebvq15vachgqvfcngpure15VachgQvfcngpure30ehaPbzznaqfYbpxrqVagreehcgvoyrRi:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_17CbvagreCebcregvrfRR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_17CbvagreCebcregvrfRR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_17CbvagreCebcregvrfRR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_17CbvagreCebcregvrfRR8qb_fcyngRCiCXiz:
 nop
@@ -1873,7 +1873,7 @@
 b__MA7naqebvq15vachgqvfcngpure15VachgQvfcngpure32nqqTybonyZbavgbevatGnetrgfYbpxrqREAFg3__16irpgbeVAF0_11VachgGnetrgRAF2_9nyybpngbeVF4_RRRRvss:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_15vachgqvfcngpure15VachgQvfcngpure14XrlErcynprzragRvRRR10qb_pbzcnerRCXiF8_
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_15vachgqvfcngpure15VachgQvfcngpure14XrlErcynprzragRvRRR10qb_pbzcnerRCXiF8_
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_15vachgqvfcngpure15VachgQvfcngpure14XrlErcynprzragRvRRR10qb_pbzcnerRCXiF8_,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_15vachgqvfcngpure15VachgQvfcngpure14XrlErcynprzragRvRRR10qb_pbzcnerRCXiF8_:
 nop
@@ -1923,7 +1923,7 @@
 b__MA7naqebvq15vachgqvfcngpure15VachgQvfcngpure25eryrnfrVaobhaqRiragYbpxrqRCAF0_10RiragRagelR:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvAF_6irpgbeVA7naqebvq2fcVAF3_17VachgJvaqbjUnaqyrRRRAF_9nyybpngbeVF6_RRRRRRAF_22__habeqrerq_znc_unfureVvFN_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvFN_AF_8rdhny_gbVvRRYo1RRRAF7_VFN_RRRQ2Ri
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvAF_6irpgbeVA7naqebvq2fcVAF3_17VachgJvaqbjUnaqyrRRRAF_9nyybpngbeVF6_RRRRRRAF_22__habeqrerq_znc_unfureVvFN_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvFN_AF_8rdhny_gbVvRRYo1RRRAF7_VFN_RRRQ2Ri
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvAF_6irpgbeVA7naqebvq2fcVAF3_17VachgJvaqbjUnaqyrRRRAF_9nyybpngbeVF6_RRRRRRAF_22__habeqrerq_znc_unfureVvFN_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvFN_AF_8rdhny_gbVvRRYo1RRRAF7_VFN_RRRQ2Ri,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvAF_6irpgbeVA7naqebvq2fcVAF3_17VachgJvaqbjUnaqyrRRRAF_9nyybpngbeVF6_RRRRRRAF_22__habeqrerq_znc_unfureVvFN_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvFN_AF_8rdhny_gbVvRRYo1RRRAF7_VFN_RRRQ2Ri:
 nop
@@ -1933,7 +1933,7 @@
 b__MA7naqebvq15vachgqvfcngpure8XrlRagelP2Rwyvwvwvvvvvvy:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_13CbvagrePbbeqfRR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_13CbvagrePbbeqfRR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_13CbvagrePbbeqfRR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_13CbvagrePbbeqfRR16qb_zbir_onpxjneqRCiCXiz:
 nop
@@ -1968,7 +1968,7 @@
 b__MGPA7naqebvq15VachgPynffvsvreR8_AF_8uneqjner20uvqy_qrngu_erpvcvragR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIA7naqebvq6IrpgbeVAF_13CbvagrePbbeqfRRR
+.weak b__MGIA7naqebvq6IrpgbeVAF_13CbvagrePbbeqfRRR
 .type b__MGIA7naqebvq6IrpgbeVAF_13CbvagrePbbeqfRRR,%object
 b__MGIA7naqebvq6IrpgbeVAF_13CbvagrePbbeqfRRR:
 .space __SIZEOF_POINTER__
@@ -2003,12 +2003,12 @@
 b__MA7naqebvq15vachgqvfcngpure15VachgQvfcngpure22unfVawrpgvbaCrezvffvbaRvv:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvAF_6irpgbeVA7naqebvq15vachgqvfcngpure7ZbavgbeRAF_9nyybpngbeVF5_RRRRRRAF_22__habeqrerq_znc_unfureVvF9_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF9_AF_8rdhny_gbVvRRYo1RRRAF6_VF9_RRR6erunfuRz
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvAF_6irpgbeVA7naqebvq15vachgqvfcngpure7ZbavgbeRAF_9nyybpngbeVF5_RRRRRRAF_22__habeqrerq_znc_unfureVvF9_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF9_AF_8rdhny_gbVvRRYo1RRRAF6_VF9_RRR6erunfuRz
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvAF_6irpgbeVA7naqebvq15vachgqvfcngpure7ZbavgbeRAF_9nyybpngbeVF5_RRRRRRAF_22__habeqrerq_znc_unfureVvF9_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF9_AF_8rdhny_gbVvRRYo1RRRAF6_VF9_RRR6erunfuRz,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvAF_6irpgbeVA7naqebvq15vachgqvfcngpure7ZbavgbeRAF_9nyybpngbeVF5_RRRRRRAF_22__habeqrerq_znc_unfureVvF9_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF9_AF_8rdhny_gbVvRRYo1RRRAF6_VF9_RRR6erunfuRz:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_17CbvagreCebcregvrfRR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq6IrpgbeVAF_17CbvagreCebcregvrfRR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq6IrpgbeVAF_17CbvagreCebcregvrfRR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq6IrpgbeVAF_17CbvagreCebcregvrfRR12qb_pbafgehpgRCiz:
 nop
@@ -2018,12 +2018,12 @@
 b__MA7naqebvq16ZbgvbaPynffvsvre15rafherUnyGuernqRCXp:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVvAF_4unfuVvRRAF_8rdhny_gbVvRRAF_9nyybpngbeVvRRR8__erunfuRz
+.weak b__MAFg3__112__unfu_gnoyrVvAF_4unfuVvRRAF_8rdhny_gbVvRRAF_9nyybpngbeVvRRR8__erunfuRz
 .type b__MAFg3__112__unfu_gnoyrVvAF_4unfuVvRRAF_8rdhny_gbVvRRAF_9nyybpngbeVvRRR8__erunfuRz,%function
 b__MAFg3__112__unfu_gnoyrVvAF_4unfuVvRRAF_8rdhny_gbVvRRAF_9nyybpngbeVvRRR8__erunfuRz:
 nop
 .data
-.globl b__MGIA7naqebvq18OvaqreJvaqbjUnaqyrR
+.weak b__MGIA7naqebvq18OvaqreJvaqbjUnaqyrR
 .type b__MGIA7naqebvq18OvaqreJvaqbjUnaqyrR,%object
 b__MGIA7naqebvq18OvaqreJvaqbjUnaqyrR:
 .space __SIZEOF_POINTER__
@@ -2063,17 +2063,17 @@
 b__MA7naqebvq15vachgqvfcngpure15VachgQvfcngpure23qhzcQvfcngpuFgngrYbpxrqREAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRR:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_15vachgqvfcngpure15VachgQvfcngpure14XrlErcynprzragRvRRR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_15vachgqvfcngpure15VachgQvfcngpure14XrlErcynprzragRvRRR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_15vachgqvfcngpure15VachgQvfcngpure14XrlErcynprzragRvRRR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_15vachgqvfcngpure15VachgQvfcngpure14XrlErcynprzragRvRRR15qb_zbir_sbejneqRCiCXiz:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvAF_6irpgbeVA7naqebvq15vachgqvfcngpure7ZbavgbeRAF_9nyybpngbeVF5_RRRRRRAF_22__habeqrerq_znc_unfureVvF9_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF9_AF_8rdhny_gbVvRRYo1RRRAF6_VF9_RRR8__erunfuRz
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvAF_6irpgbeVA7naqebvq15vachgqvfcngpure7ZbavgbeRAF_9nyybpngbeVF5_RRRRRRAF_22__habeqrerq_znc_unfureVvF9_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF9_AF_8rdhny_gbVvRRYo1RRRAF6_VF9_RRR8__erunfuRz
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvAF_6irpgbeVA7naqebvq15vachgqvfcngpure7ZbavgbeRAF_9nyybpngbeVF5_RRRRRRAF_22__habeqrerq_znc_unfureVvF9_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF9_AF_8rdhny_gbVvRRYo1RRRAF6_VF9_RRR8__erunfuRz,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvAF_6irpgbeVA7naqebvq15vachgqvfcngpure7ZbavgbeRAF_9nyybpngbeVF5_RRRRRRAF_22__habeqrerq_znc_unfureVvF9_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF9_AF_8rdhny_gbVvRRYo1RRRAF6_VF9_RRR8__erunfuRz:
 nop
 .text
-.globl b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR8biresybjRv
+.weak b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR8biresybjRv
 .type b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR8biresybjRv,%function
 b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR8biresybjRv:
 nop
@@ -2113,7 +2113,7 @@
 b__MA7naqebvq15vachgqvfcngpure10VachgFgngr11genpxZbgvbaRCXAF0_11ZbgvbaRagelRvv:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvvRRR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvvRRR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvvRRR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvvRRR16qb_zbir_onpxjneqRCiCXiz:
 nop
@@ -2128,12 +2128,12 @@
 b__MA7naqebvq15vachgqvfcngpure14VawrpgvbaFgngrP1Rvv:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvA7naqebvq2fcVAF2_22VachgNccyvpngvbaUnaqyrRRRRRAF_22__habeqrerq_znc_unfureVvF6_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF6_AF_8rdhny_gbVvRRYo1RRRAF_9nyybpngbeVF6_RRR6erunfuRz
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvA7naqebvq2fcVAF2_22VachgNccyvpngvbaUnaqyrRRRRRAF_22__habeqrerq_znc_unfureVvF6_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF6_AF_8rdhny_gbVvRRYo1RRRAF_9nyybpngbeVF6_RRR6erunfuRz
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvA7naqebvq2fcVAF2_22VachgNccyvpngvbaUnaqyrRRRRRAF_22__habeqrerq_znc_unfureVvF6_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF6_AF_8rdhny_gbVvRRYo1RRRAF_9nyybpngbeVF6_RRR6erunfuRz,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvA7naqebvq2fcVAF2_22VachgNccyvpngvbaUnaqyrRRRRRAF_22__habeqrerq_znc_unfureVvF6_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF6_AF_8rdhny_gbVvRRYo1RRRAF_9nyybpngbeVF6_RRR6erunfuRz:
 nop
 .text
-.globl b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9haqresybjRi
+.weak b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9haqresybjRi
 .type b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9haqresybjRi,%function
 b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9haqresybjRi:
 nop
@@ -2143,7 +2143,7 @@
 b__MA7naqebvq12VachgZnantre15frgVachgJvaqbjfREXAFg3__16irpgbeVAF_15VachgJvaqbjVasbRAF1_9nyybpngbeVF3_RRRREXAF_2fcVAF_24VFrgVachgJvaqbjfYvfgrareRRR:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_17VachgJvaqbjUnaqyrRRRAF_9nyybpngbeVF4_RRR21__chfu_onpx_fybj_cnguVF4_RRiBG_
+.weak b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_17VachgJvaqbjUnaqyrRRRAF_9nyybpngbeVF4_RRR21__chfu_onpx_fybj_cnguVF4_RRiBG_
 .type b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_17VachgJvaqbjUnaqyrRRRAF_9nyybpngbeVF4_RRR21__chfu_onpx_fybj_cnguVF4_RRiBG_,%function
 b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_17VachgJvaqbjUnaqyrRRRAF_9nyybpngbeVF4_RRR21__chfu_onpx_fybj_cnguVF4_RRiBG_:
 nop
@@ -2203,7 +2203,7 @@
 b__MA7naqebvq15vachgqvfcngpure15VachgQvfcngpure18trgGnetrgQvfcynlVqRCXAF0_10RiragRagelR:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvA7naqebvq2fcVAF2_17VachgJvaqbjUnaqyrRRRRRAF_22__habeqrerq_znc_unfureVvF6_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF6_AF_8rdhny_gbVvRRYo1RRRAF_9nyybpngbeVF6_RRR25__rzcynpr_havdhr_xrl_netfVvWEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXvRRRAFZ_VWRRRRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF6_CiRRRRoRREXG_QcBG0_
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvA7naqebvq2fcVAF2_17VachgJvaqbjUnaqyrRRRRRAF_22__habeqrerq_znc_unfureVvF6_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF6_AF_8rdhny_gbVvRRYo1RRRAF_9nyybpngbeVF6_RRR25__rzcynpr_havdhr_xrl_netfVvWEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXvRRRAFZ_VWRRRRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF6_CiRRRRoRREXG_QcBG0_
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvA7naqebvq2fcVAF2_17VachgJvaqbjUnaqyrRRRRRAF_22__habeqrerq_znc_unfureVvF6_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF6_AF_8rdhny_gbVvRRYo1RRRAF_9nyybpngbeVF6_RRR25__rzcynpr_havdhr_xrl_netfVvWEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXvRRRAFZ_VWRRRRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF6_CiRRRRoRREXG_QcBG0_,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvA7naqebvq2fcVAF2_17VachgJvaqbjUnaqyrRRRRRAF_22__habeqrerq_znc_unfureVvF6_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF6_AF_8rdhny_gbVvRRYo1RRRAF_9nyybpngbeVF6_RRR25__rzcynpr_havdhr_xrl_netfVvWEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXvRRRAFZ_VWRRRRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF6_CiRRRRoRREXG_QcBG0_:
 nop
@@ -2258,7 +2258,7 @@
 b__MA7naqebvq15vachgqvfcngpure15VachgQvfcngpure29baQvfcngpuPlpyrSvavfurqYbpxrqRyEXAF_2fcVAF0_10PbaarpgvbaRRRwo:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_17VachgJvaqbjUnaqyrRRRAF_9nyybpngbeVF4_RRR6nffvtaVCF4_RRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF4_AF_15vgrengbe_genvgfVFO_R9ersreraprRRR5inyhrRiR4glcrRFO_FO_
+.weak b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_17VachgJvaqbjUnaqyrRRRAF_9nyybpngbeVF4_RRR6nffvtaVCF4_RRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF4_AF_15vgrengbe_genvgfVFO_R9ersreraprRRR5inyhrRiR4glcrRFO_FO_
 .type b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_17VachgJvaqbjUnaqyrRRRAF_9nyybpngbeVF4_RRR6nffvtaVCF4_RRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF4_AF_15vgrengbe_genvgfVFO_R9ersreraprRRR5inyhrRiR4glcrRFO_FO_,%function
 b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_17VachgJvaqbjUnaqyrRRRAF_9nyybpngbeVF4_RRR6nffvtaVCF4_RRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF4_AF_15vgrengbe_genvgfVFO_R9ersreraprRRR5inyhrRiR4glcrRFO_FO_:
 nop
@@ -2268,7 +2268,7 @@
 b__MA7naqebvq15vachgqvfcngpure10VachgFgngrQ2Ri:
 nop
 .data
-.globl b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvvRRRR
+.weak b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvvRRRR
 .type b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvvRRRR,%object
 b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvvRRRR:
 .space __SIZEOF_POINTER__
diff --git a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_017.S b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_017.S
index 20cfde6..49ea74b 100644
--- a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_017.S
+++ b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_017.S
@@ -28,7 +28,7 @@
 b__MAX7naqebvq16AbgvslZbgvbaNetfrdREXF0_:
 nop
 .text
-.globl b__MAFg3__16irpgbeVCA7naqebvq10AbgvslNetfRAF_9nyybpngbeVF3_RRR21__chfu_onpx_fybj_cnguVF3_RRiBG_
+.weak b__MAFg3__16irpgbeVCA7naqebvq10AbgvslNetfRAF_9nyybpngbeVF3_RRR21__chfu_onpx_fybj_cnguVF3_RRiBG_
 .type b__MAFg3__16irpgbeVCA7naqebvq10AbgvslNetfRAF_9nyybpngbeVF3_RRR21__chfu_onpx_fybj_cnguVF3_RRiBG_,%function
 b__MAFg3__16irpgbeVCA7naqebvq10AbgvslNetfRAF_9nyybpngbeVF3_RRR21__chfu_onpx_fybj_cnguVF3_RRiBG_:
 nop
@@ -253,7 +253,7 @@
 b__MGIA7naqebvq21AbgvslQrivprErfrgNetfR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq15QvfcynlIvrjcbegRAF_9nyybpngbeVF2_RRR6nffvtaVCF2_RRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF2_AF_15vgrengbe_genvgfVF9_R9ersreraprRRR5inyhrRiR4glcrRF9_F9_
+.weak b__MAFg3__16irpgbeVA7naqebvq15QvfcynlIvrjcbegRAF_9nyybpngbeVF2_RRR6nffvtaVCF2_RRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF2_AF_15vgrengbe_genvgfVF9_R9ersreraprRRR5inyhrRiR4glcrRF9_F9_
 .type b__MAFg3__16irpgbeVA7naqebvq15QvfcynlIvrjcbegRAF_9nyybpngbeVF2_RRR6nffvtaVCF2_RRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF2_AF_15vgrengbe_genvgfVF9_R9ersreraprRRR5inyhrRiR4glcrRF9_F9_,%function
 b__MAFg3__16irpgbeVA7naqebvq15QvfcynlIvrjcbegRAF_9nyybpngbeVF2_RRR6nffvtaVCF2_RRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF2_AF_15vgrengbe_genvgfVF9_R9ersreraprRRR5inyhrRiR4glcrRF9_F9_:
 nop
diff --git a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_018.S b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_018.S
index 37aa178..822dca5 100644
--- a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_018.S
+++ b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_018.S
@@ -43,7 +43,7 @@
 b__MA7naqebvq17CbvagrePbagebyyre8frgFcbgfRCXAF_13CbvagrePbbeqfRCXwAF_8OvgFrg32Rv:
 nop
 .data
-.globl b__MGGA7naqebvq18JrnxYbbcrePnyyonpxR
+.weak b__MGGA7naqebvq18JrnxYbbcrePnyyonpxR
 .type b__MGGA7naqebvq18JrnxYbbcrePnyyonpxR,%object
 b__MGGA7naqebvq18JrnxYbbcrePnyyonpxR:
 .space __SIZEOF_POINTER__
@@ -73,7 +73,7 @@
 b__MA7naqebvq16FcevgrPbagebyyre15qbHcqngrFcevgrfRi:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_16FcevgrPbagebyyre12FcevgrHcqngrRR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_16FcevgrPbagebyyre12FcevgrHcqngrRR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_16FcevgrPbagebyyre12FcevgrHcqngrRR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_16FcevgrPbagebyyre12FcevgrHcqngrRR8qb_fcyngRCiCXiz:
 nop
@@ -98,12 +98,12 @@
 b__MA7naqebvq16FcevgrPbagebyyreQ2Ri:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_12QvfcynlFgngrRR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_12QvfcynlFgngrRR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_12QvfcynlFgngrRR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_12QvfcynlFgngrRR7qb_pbclRCiCXiz:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_2fcVAF_14FhesnprPbagebyRRRR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_2fcVAF_14FhesnprPbagebyRRRR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_2fcVAF_14FhesnprPbagebyRRRR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_2fcVAF_14FhesnprPbagebyRRRR15qb_zbir_sbejneqRCiCXiz:
 nop
@@ -143,12 +143,12 @@
 b__MA7naqebvq17CbvagrePbagebyyreQ2Ri:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_16FcevgrPbagebyyre12FcevgrHcqngrRR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_16FcevgrPbagebyyre12FcevgrHcqngrRR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_16FcevgrPbagebyyre12FcevgrHcqngrRR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_16FcevgrPbagebyyre12FcevgrHcqngrRR15qb_zbir_sbejneqRCiCXiz:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_2fcVAF_16FcevgrPbagebyyre10FcevgrVzcyRRRR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_2fcVAF_16FcevgrPbagebyyre10FcevgrVzcyRRRR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_2fcVAF_16FcevgrPbagebyyre10FcevgrVzcyRRRR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_2fcVAF_16FcevgrPbagebyyre10FcevgrVzcyRRRR16qb_zbir_onpxjneqRCiCXiz:
 nop
@@ -158,12 +158,12 @@
 b__MA7naqebvq16FcevgrPbagebyyre15bcraGenafnpgvbaRi:
 nop
 .text
-.globl b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
+.weak b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
 .type b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_,%function
 b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVvAF_6irpgbeVCA7naqebvq17CbvagrePbagebyyre4FcbgRAF_9nyybpngbeVF6_RRRRRRAF_19__znc_inyhr_pbzcnerVvFN_AF_4yrffVvRRYo1RRRAF7_VFN_RRR7qrfgeblRCAF_11__gerr_abqrVFN_CiRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVvAF_6irpgbeVCA7naqebvq17CbvagrePbagebyyre4FcbgRAF_9nyybpngbeVF6_RRRRRRAF_19__znc_inyhr_pbzcnerVvFN_AF_4yrffVvRRYo1RRRAF7_VFN_RRR7qrfgeblRCAF_11__gerr_abqrVFN_CiRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVvAF_6irpgbeVCA7naqebvq17CbvagrePbagebyyre4FcbgRAF_9nyybpngbeVF6_RRRRRRAF_19__znc_inyhr_pbzcnerVvFN_AF_4yrffVvRRYo1RRRAF7_VFN_RRR7qrfgeblRCAF_11__gerr_abqrVFN_CiRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVvAF_6irpgbeVCA7naqebvq17CbvagrePbagebyyre4FcbgRAF_9nyybpngbeVF6_RRRRRRAF_19__znc_inyhr_pbzcnerVvFN_AF_4yrffVvRRYo1RRRAF7_VFN_RRR7qrfgeblRCAF_11__gerr_abqrVFN_CiRR:
 nop
@@ -173,7 +173,7 @@
 b__MA7naqebvq16FcevgrPbagebyyreP1REXAF_2fcVAF_6YbbcreRRRv:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_12QvfcynlFgngrRR10qb_pbzcnerRCXiF4_
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_12QvfcynlFgngrRR10qb_pbzcnerRCXiF4_
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_12QvfcynlFgngrRR10qb_pbzcnerRCXiF4_,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_12QvfcynlFgngrRR10qb_pbzcnerRCXiF4_:
 nop
@@ -188,7 +188,7 @@
 b__MGIA7naqebvq16FcevgrPbagebyyreR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIA7naqebvq18JrnxYbbcrePnyyonpxR
+.weak b__MGIA7naqebvq18JrnxYbbcrePnyyonpxR
 .type b__MGIA7naqebvq18JrnxYbbcrePnyyonpxR,%object
 b__MGIA7naqebvq18JrnxYbbcrePnyyonpxR:
 .space __SIZEOF_POINTER__
@@ -198,17 +198,17 @@
 b__MA7naqebvq16FcevgrPbagebyyre10FcevgrVzcyP2RAF_2fcVF0_RR:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_16FcevgrPbagebyyre12FcevgrHcqngrRR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_16FcevgrPbagebyyre12FcevgrHcqngrRR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_16FcevgrPbagebyyre12FcevgrHcqngrRR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_16FcevgrPbagebyyre12FcevgrHcqngrRR16qb_zbir_onpxjneqRCiCXiz:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_2fcVAF_14FhesnprPbagebyRRRR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_2fcVAF_14FhesnprPbagebyRRRR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_2fcVAF_14FhesnprPbagebyRRRR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_2fcVAF_14FhesnprPbagebyRRRR8qb_fcyngRCiCXiz:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_2fcVAF_16FcevgrPbagebyyre10FcevgrVzcyRRRR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_2fcVAF_16FcevgrPbagebyyre10FcevgrVzcyRRRR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_2fcVAF_16FcevgrPbagebyyre10FcevgrVzcyRRRR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_2fcVAF_16FcevgrPbagebyyre10FcevgrVzcyRRRR8qb_fcyngRCiCXiz:
 nop
@@ -238,7 +238,7 @@
 b__MA7naqebvq17CbvagrePbagebyyre17hcqngrCbvagreVpbaRv:
 nop
 .text
-.globl b__MAFg3__16irpgbeVCA7naqebvq17CbvagrePbagebyyre4FcbgRAF_9nyybpngbeVF4_RRR21__chfu_onpx_fybj_cnguVEXF4_RRiBG_
+.weak b__MAFg3__16irpgbeVCA7naqebvq17CbvagrePbagebyyre4FcbgRAF_9nyybpngbeVF4_RRR21__chfu_onpx_fybj_cnguVEXF4_RRiBG_
 .type b__MAFg3__16irpgbeVCA7naqebvq17CbvagrePbagebyyre4FcbgRAF_9nyybpngbeVF4_RRR21__chfu_onpx_fybj_cnguVEXF4_RRiBG_,%function
 b__MAFg3__16irpgbeVCA7naqebvq17CbvagrePbagebyyre4FcbgRAF_9nyybpngbeVF4_RRR21__chfu_onpx_fybj_cnguVEXF4_RRiBG_:
 nop
@@ -248,17 +248,17 @@
 b__MGGA7naqebvq17CbvagrePbagebyyreR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_16FcevgrPbagebyyre12FcevgrHcqngrRR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_16FcevgrPbagebyyre12FcevgrHcqngrRR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_16FcevgrPbagebyyre12FcevgrHcqngrRR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_16FcevgrPbagebyyre12FcevgrHcqngrRR7qb_pbclRCiCXiz:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_2fcVAF_14FhesnprPbagebyRRRR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq6IrpgbeVAF_2fcVAF_14FhesnprPbagebyRRRR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq6IrpgbeVAF_2fcVAF_14FhesnprPbagebyRRRR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq6IrpgbeVAF_2fcVAF_14FhesnprPbagebyRRRR12qb_pbafgehpgRCiz:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVA7naqebvq2fcVAF2_14FhesnprPbagebyRRRAF2_13PbzcbfreFgngrRRRAF_22__habeqrerq_znc_unfureVF5_F7_AF2_21FhesnprPbzcbfrePyvrag6FPUnfuRYo1RRRAF_21__habeqrerq_znc_rdhnyVF5_F7_AF_8rdhny_gbVF5_RRYo1RRRAF_9nyybpngbeVF7_RRRQ2Ri
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVA7naqebvq2fcVAF2_14FhesnprPbagebyRRRAF2_13PbzcbfreFgngrRRRAF_22__habeqrerq_znc_unfureVF5_F7_AF2_21FhesnprPbzcbfrePyvrag6FPUnfuRYo1RRRAF_21__habeqrerq_znc_rdhnyVF5_F7_AF_8rdhny_gbVF5_RRYo1RRRAF_9nyybpngbeVF7_RRRQ2Ri
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVA7naqebvq2fcVAF2_14FhesnprPbagebyRRRAF2_13PbzcbfreFgngrRRRAF_22__habeqrerq_znc_unfureVF5_F7_AF2_21FhesnprPbzcbfrePyvrag6FPUnfuRYo1RRRAF_21__habeqrerq_znc_rdhnyVF5_F7_AF_8rdhny_gbVF5_RRYo1RRRAF_9nyybpngbeVF7_RRRQ2Ri,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVA7naqebvq2fcVAF2_14FhesnprPbagebyRRRAF2_13PbzcbfreFgngrRRRAF_22__habeqrerq_znc_unfureVF5_F7_AF2_21FhesnprPbzcbfrePyvrag6FPUnfuRYo1RRRAF_21__habeqrerq_znc_rdhnyVF5_F7_AF_8rdhny_gbVF5_RRYo1RRRAF_9nyybpngbeVF7_RRRQ2Ri:
 nop
@@ -278,12 +278,12 @@
 b__MA7naqebvq17CbvagrePbagebyyre19ybnqErfbheprfYbpxrqRi:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVvA7naqebvq16CbvagreNavzngvbaRRRAF_19__znc_inyhr_pbzcnerVvF4_AF_4yrffVvRRYo1RRRAF_9nyybpngbeVF4_RRR7qrfgeblRCAF_11__gerr_abqrVF4_CiRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVvA7naqebvq16CbvagreNavzngvbaRRRAF_19__znc_inyhr_pbzcnerVvF4_AF_4yrffVvRRYo1RRRAF_9nyybpngbeVF4_RRR7qrfgeblRCAF_11__gerr_abqrVF4_CiRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVvA7naqebvq16CbvagreNavzngvbaRRRAF_19__znc_inyhr_pbzcnerVvF4_AF_4yrffVvRRYo1RRRAF_9nyybpngbeVF4_RRR7qrfgeblRCAF_11__gerr_abqrVF4_CiRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVvA7naqebvq16CbvagreNavzngvbaRRRAF_19__znc_inyhr_pbzcnerVvF4_AF_4yrffVvRRYo1RRRAF_9nyybpngbeVF4_RRR7qrfgeblRCAF_11__gerr_abqrVF4_CiRR:
 nop
 .data
-.globl b__MGPA7naqebvq18JrnxYbbcrePnyyonpxR0_AF_14YbbcrePnyyonpxR
+.weak b__MGPA7naqebvq18JrnxYbbcrePnyyonpxR0_AF_14YbbcrePnyyonpxR
 .type b__MGPA7naqebvq18JrnxYbbcrePnyyonpxR0_AF_14YbbcrePnyyonpxR,%object
 b__MGPA7naqebvq18JrnxYbbcrePnyyonpxR0_AF_14YbbcrePnyyonpxR:
 .space __SIZEOF_POINTER__
@@ -308,12 +308,12 @@
 b__MA7naqebvq17CbvagrePbagebyyre4Fcbg12hcqngrFcevgrRCXAF_10FcevgrVpbaRssv:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVvA7naqebvq10FcevgrVpbaRRRAF_19__znc_inyhr_pbzcnerVvF4_AF_4yrffVvRRYo1RRRAF_9nyybpngbeVF4_RRR25__rzcynpr_havdhr_xrl_netfVvWEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXvRRRAFT_VWRRRRRRAF_4cnveVAF_15__gerr_vgrengbeVF4_CAF_11__gerr_abqrVF4_CiRRyRRoRREXG_QcBG0_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVvA7naqebvq10FcevgrVpbaRRRAF_19__znc_inyhr_pbzcnerVvF4_AF_4yrffVvRRYo1RRRAF_9nyybpngbeVF4_RRR25__rzcynpr_havdhr_xrl_netfVvWEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXvRRRAFT_VWRRRRRRAF_4cnveVAF_15__gerr_vgrengbeVF4_CAF_11__gerr_abqrVF4_CiRRyRRoRREXG_QcBG0_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVvA7naqebvq10FcevgrVpbaRRRAF_19__znc_inyhr_pbzcnerVvF4_AF_4yrffVvRRYo1RRRAF_9nyybpngbeVF4_RRR25__rzcynpr_havdhr_xrl_netfVvWEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXvRRRAFT_VWRRRRRRAF_4cnveVAF_15__gerr_vgrengbeVF4_CAF_11__gerr_abqrVF4_CiRRyRRoRREXG_QcBG0_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVvA7naqebvq10FcevgrVpbaRRRAF_19__znc_inyhr_pbzcnerVvF4_AF_4yrffVvRRYo1RRRAF_9nyybpngbeVF4_RRR25__rzcynpr_havdhr_xrl_netfVvWEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXvRRRAFT_VWRRRRRRAF_4cnveVAF_15__gerr_vgrengbeVF4_CAF_11__gerr_abqrVF4_CiRRyRRoRREXG_QcBG0_:
 nop
 .data
-.globl b__MGIA7naqebvq6IrpgbeVAF_16FcevgrPbagebyyre12FcevgrHcqngrRRR
+.weak b__MGIA7naqebvq6IrpgbeVAF_16FcevgrPbagebyyre12FcevgrHcqngrRRR
 .type b__MGIA7naqebvq6IrpgbeVAF_16FcevgrPbagebyyre12FcevgrHcqngrRRR,%object
 b__MGIA7naqebvq6IrpgbeVAF_16FcevgrPbagebyyre12FcevgrHcqngrRRR:
 .space __SIZEOF_POINTER__
@@ -328,7 +328,7 @@
 b__MA7naqebvq16FcevgrPbagebyyre10FcevgrVzcyP1RAF_2fcVF0_RR:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_2fcVAF_16FcevgrPbagebyyre10FcevgrVzcyRRRR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_2fcVAF_16FcevgrPbagebyyre10FcevgrVzcyRRRR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_2fcVAF_16FcevgrPbagebyyre10FcevgrVzcyRRRR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_2fcVAF_16FcevgrPbagebyyre10FcevgrVzcyRRRR7qb_pbclRCiCXiz:
 nop
@@ -348,7 +348,7 @@
 b__MA7naqebvq17CbvagrePbagebyyreP2REXAF_2fcVAF_32CbvagrePbagebyyreCbyvplVagresnprRRREXAF1_VAF_6YbbcreRRREXAF1_VAF_16FcevgrPbagebyyreRRR:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_12QvfcynlFgngrRR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_12QvfcynlFgngrRR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_12QvfcynlFgngrRR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_12QvfcynlFgngrRR12qb_pbafgehpgRCiz:
 nop
@@ -368,17 +368,17 @@
 b__MA7naqebvq16FcevgrPbagebyyre10FcevgrVzcy12frgQvfcynlVqRv:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_12QvfcynlFgngrRR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_12QvfcynlFgngrRR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_12QvfcynlFgngrRR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_12QvfcynlFgngrRR10qb_qrfgeblRCiz:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_12QvfcynlFgngrRR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_12QvfcynlFgngrRR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_12QvfcynlFgngrRR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_12QvfcynlFgngrRR15qb_zbir_sbejneqRCiCXiz:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_16FcevgrPbagebyyre12FcevgrHcqngrRR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq6IrpgbeVAF_16FcevgrPbagebyyre12FcevgrHcqngrRR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq6IrpgbeVAF_16FcevgrPbagebyyre12FcevgrHcqngrRR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq6IrpgbeVAF_16FcevgrPbagebyyre12FcevgrHcqngrRR12qb_pbafgehpgRCiz:
 nop
@@ -408,7 +408,7 @@
 b__MGua8_A7naqebvq17CbvagrePbagebyyre13unaqyrZrffntrREXAF_7ZrffntrR:
 nop
 .text
-.globl b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
+.weak b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
 .type b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_,%function
 b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_:
 nop
@@ -458,7 +458,7 @@
 b__MGPA7naqebvq17CbvagrePbagebyyreR8_AF_14ZrffntrUnaqyreR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_12QvfcynlFgngrRR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_12QvfcynlFgngrRR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_12QvfcynlFgngrRR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_12QvfcynlFgngrRR16qb_zbir_onpxjneqRCiCXiz:
 nop
@@ -478,12 +478,12 @@
 b__MA7naqebvq16FcevgrPbagebyyre10FcevgrVzcy8frgNycunRs:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_16FcevgrPbagebyyre12FcevgrHcqngrRR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq6IrpgbeVAF_16FcevgrPbagebyyre12FcevgrHcqngrRR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq6IrpgbeVAF_16FcevgrPbagebyyre12FcevgrHcqngrRR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq6IrpgbeVAF_16FcevgrPbagebyyre12FcevgrHcqngrRR10qb_qrfgeblRCiz:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_2fcVAF_16FcevgrPbagebyyre10FcevgrVzcyRRRR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq6IrpgbeVAF_2fcVAF_16FcevgrPbagebyyre10FcevgrVzcyRRRR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq6IrpgbeVAF_2fcVAF_16FcevgrPbagebyyre10FcevgrVzcyRRRR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq6IrpgbeVAF_2fcVAF_16FcevgrPbagebyyre10FcevgrVzcyRRRR10qb_qrfgeblRCiz:
 nop
@@ -513,7 +513,7 @@
 b__MA7naqebvq16FcevgrPbagebyyre17qbQvfcbfrFhesnprfRi:
 nop
 .data
-.globl b__MGIA7naqebvq12FbegrqIrpgbeVAF_12QvfcynlFgngrRRR
+.weak b__MGIA7naqebvq12FbegrqIrpgbeVAF_12QvfcynlFgngrRRR
 .type b__MGIA7naqebvq12FbegrqIrpgbeVAF_12QvfcynlFgngrRRR,%object
 b__MGIA7naqebvq12FbegrqIrpgbeVAF_12QvfcynlFgngrRRR:
 .space __SIZEOF_POINTER__
@@ -523,7 +523,7 @@
 b__MA7naqebvq17CbvagrePbagebyyre4snqrRAF_26CbvagrePbagebyyreVagresnpr10GenafvgvbaR:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_6FcevgrRRRAF_9nyybpngbeVF4_RRR21__chfu_onpx_fybj_cnguVEXF4_RRiBG_
+.weak b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_6FcevgrRRRAF_9nyybpngbeVF4_RRR21__chfu_onpx_fybj_cnguVEXF4_RRiBG_
 .type b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_6FcevgrRRRAF_9nyybpngbeVF4_RRR21__chfu_onpx_fybj_cnguVEXF4_RRiBG_,%function
 b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_6FcevgrRRRAF_9nyybpngbeVF4_RRR21__chfu_onpx_fybj_cnguVEXF4_RRiBG_:
 nop
@@ -548,17 +548,17 @@
 b__MGua8_A7naqebvq17CbvagrePbagebyyreQ1Ri:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_2fcVAF_14FhesnprPbagebyRRRR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq6IrpgbeVAF_2fcVAF_14FhesnprPbagebyRRRR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq6IrpgbeVAF_2fcVAF_14FhesnprPbagebyRRRR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq6IrpgbeVAF_2fcVAF_14FhesnprPbagebyRRRR10qb_qrfgeblRCiz:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_2fcVAF_14FhesnprPbagebyRRRR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_2fcVAF_14FhesnprPbagebyRRRR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_2fcVAF_14FhesnprPbagebyRRRR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_2fcVAF_14FhesnprPbagebyRRRR16qb_zbir_onpxjneqRCiCXiz:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVvA7naqebvq10FcevgrVpbaRRRAF_19__znc_inyhr_pbzcnerVvF4_AF_4yrffVvRRYo1RRRAF_9nyybpngbeVF4_RRR7qrfgeblRCAF_11__gerr_abqrVF4_CiRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVvA7naqebvq10FcevgrVpbaRRRAF_19__znc_inyhr_pbzcnerVvF4_AF_4yrffVvRRYo1RRRAF_9nyybpngbeVF4_RRR7qrfgeblRCAF_11__gerr_abqrVF4_CiRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVvA7naqebvq10FcevgrVpbaRRRAF_19__znc_inyhr_pbzcnerVvF4_AF_4yrffVvRRYo1RRRAF_9nyybpngbeVF4_RRR7qrfgeblRCAF_11__gerr_abqrVF4_CiRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVvA7naqebvq10FcevgrVpbaRRRAF_19__znc_inyhr_pbzcnerVvF4_AF_4yrffVvRRYo1RRRAF_9nyybpngbeVF4_RRR7qrfgeblRCAF_11__gerr_abqrVF4_CiRR:
 nop
@@ -578,7 +578,7 @@
 b__MA7naqebvq17CbvagrePbagebyyre27erzbirSvefgSnqvatFcbgYbpxrqREAFg3__16irpgbeVCAF0_4FcbgRAF1_9nyybpngbeVF4_RRRR:
 nop
 .text
-.globl b__MAFg3__16irpgbeVCA7naqebvq17CbvagrePbagebyyre4FcbgRAF_9nyybpngbeVF4_RRR6nffvtaVCF4_RRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF4_AF_15vgrengbe_genvgfVFO_R9ersreraprRRR5inyhrRiR4glcrRFO_FO_
+.weak b__MAFg3__16irpgbeVCA7naqebvq17CbvagrePbagebyyre4FcbgRAF_9nyybpngbeVF4_RRR6nffvtaVCF4_RRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF4_AF_15vgrengbe_genvgfVFO_R9ersreraprRRR5inyhrRiR4glcrRFO_FO_
 .type b__MAFg3__16irpgbeVCA7naqebvq17CbvagrePbagebyyre4FcbgRAF_9nyybpngbeVF4_RRR6nffvtaVCF4_RRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF4_AF_15vgrengbe_genvgfVFO_R9ersreraprRRR5inyhrRiR4glcrRFO_FO_,%function
 b__MAFg3__16irpgbeVCA7naqebvq17CbvagrePbagebyyre4FcbgRAF_9nyybpngbeVF4_RRR6nffvtaVCF4_RRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF4_AF_15vgrengbe_genvgfVFO_R9ersreraprRRR5inyhrRiR4glcrRFO_FO_:
 nop
@@ -588,7 +588,7 @@
 b__MA7naqebvq16FcevgrPbagebyyre10FcevgrVzcy11frgCbfvgvbaRss:
 nop
 .data
-.globl b__MGIA7naqebvq6IrpgbeVAF_2fcVAF_14FhesnprPbagebyRRRRR
+.weak b__MGIA7naqebvq6IrpgbeVAF_2fcVAF_14FhesnprPbagebyRRRRR
 .type b__MGIA7naqebvq6IrpgbeVAF_2fcVAF_14FhesnprPbagebyRRRRR,%object
 b__MGIA7naqebvq6IrpgbeVAF_2fcVAF_14FhesnprPbagebyRRRRR:
 .space __SIZEOF_POINTER__
@@ -598,7 +598,7 @@
 b__MA7naqebvq16FcevgrPbagebyyre10FcevgrVzcy23frgGenafsbezngvbaZngevkREXAF_26FcevgrGenafsbezngvbaZngevkR:
 nop
 .data
-.globl b__MGIA7naqebvq21FhesnprPbzcbfrePyvrag11GenafnpgvbaR
+.weak b__MGIA7naqebvq21FhesnprPbzcbfrePyvrag11GenafnpgvbaR
 .type b__MGIA7naqebvq21FhesnprPbzcbfrePyvrag11GenafnpgvbaR,%object
 b__MGIA7naqebvq21FhesnprPbzcbfrePyvrag11GenafnpgvbaR:
 .space __SIZEOF_POINTER__
@@ -633,12 +633,12 @@
 b__MA7naqebvq16FcevgrPbagebyyreP2REXAF_2fcVAF_6YbbcreRRRv:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_2fcVAF_14FhesnprPbagebyRRRR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_2fcVAF_14FhesnprPbagebyRRRR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_2fcVAF_14FhesnprPbagebyRRRR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_2fcVAF_14FhesnprPbagebyRRRR7qb_pbclRCiCXiz:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_2fcVAF_16FcevgrPbagebyyre10FcevgrVzcyRRRR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_2fcVAF_16FcevgrPbagebyyre10FcevgrVzcyRRRR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_2fcVAF_16FcevgrPbagebyyre10FcevgrVzcyRRRR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_2fcVAF_16FcevgrPbagebyyre10FcevgrVzcyRRRR15qb_zbir_sbejneqRCiCXiz:
 nop
@@ -648,17 +648,17 @@
 b__MA7naqebvq17CbvagrePbagebyyre9qbNavzngrRy:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_12QvfcynlFgngrRR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_12QvfcynlFgngrRR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_12QvfcynlFgngrRR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_12QvfcynlFgngrRR8qb_fcyngRCiCXiz:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_2fcVAF_16FcevgrPbagebyyre10FcevgrVzcyRRRR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq6IrpgbeVAF_2fcVAF_16FcevgrPbagebyyre10FcevgrVzcyRRRR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq6IrpgbeVAF_2fcVAF_16FcevgrPbagebyyre10FcevgrVzcyRRRR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq6IrpgbeVAF_2fcVAF_16FcevgrPbagebyyre10FcevgrVzcyRRRR12qb_pbafgehpgRCiz:
 nop
 .data
-.globl b__MGIA7naqebvq6IrpgbeVAF_2fcVAF_16FcevgrPbagebyyre10FcevgrVzcyRRRRR
+.weak b__MGIA7naqebvq6IrpgbeVAF_2fcVAF_16FcevgrPbagebyyre10FcevgrVzcyRRRRR
 .type b__MGIA7naqebvq6IrpgbeVAF_2fcVAF_16FcevgrPbagebyyre10FcevgrVzcyRRRRR,%object
 b__MGIA7naqebvq6IrpgbeVAF_2fcVAF_16FcevgrPbagebyyre10FcevgrVzcyRRRRR:
 .space __SIZEOF_POINTER__
diff --git a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_020.S b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_020.S
index 7f374f1..307b5f7 100644
--- a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_020.S
+++ b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_020.S
@@ -18,7 +18,7 @@
 b__MA7naqebvq13FrafbeFreivprP2Ri:
 nop
 .data
-.globl b__MGGAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
+.weak b__MGGAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
 .type b__MGGAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR,%object
 b__MGGAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR:
 .space __SIZEOF_POINTER__
@@ -38,17 +38,17 @@
 b__MA7naqebvq8uneqjner7frafbef4I1_014vzcyrzragngvba22pbairegSebzFrafbeRiragREX15frafbef_rirag_gCAF2_5RiragR:
 nop
 .data
-.globl b__MGPAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_13onfvp_bfgernzVpF2_RR
+.weak b__MGPAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_13onfvp_bfgernzVpF2_RR
 .type b__MGPAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_13onfvp_bfgernzVpF2_RR,%object
 b__MGPAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_13onfvp_bfgernzVpF2_RR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
+.weak b__MGIAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
 .type b__MGIAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR,%object
 b__MGIAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
+.weak b__MGIAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
 .type b__MGIAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR,%object
 b__MGIAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR:
 .space __SIZEOF_POINTER__
diff --git a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_021.S b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_021.S
index d395e75..5999a4d 100644
--- a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_021.S
+++ b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_021.S
@@ -33,12 +33,12 @@
 b__MA7naqebvq10senzrjbexf13frafbefreivpr4I1_014vzcyrzragngvba13pbairegErfhygRv:
 nop
 .data
-.globl b__MGPA7naqebvq10senzrjbexf13frafbefreivpr4I1_014vzcyrzragngvba24RiragDhrhrYbbcrePnyyonpxR0_AF_14YbbcrePnyyonpxR
+.weak b__MGPA7naqebvq10senzrjbexf13frafbefreivpr4I1_014vzcyrzragngvba24RiragDhrhrYbbcrePnyyonpxR0_AF_14YbbcrePnyyonpxR
 .type b__MGPA7naqebvq10senzrjbexf13frafbefreivpr4I1_014vzcyrzragngvba24RiragDhrhrYbbcrePnyyonpxR0_AF_14YbbcrePnyyonpxR,%object
 b__MGPA7naqebvq10senzrjbexf13frafbefreivpr4I1_014vzcyrzragngvba24RiragDhrhrYbbcrePnyyonpxR0_AF_14YbbcrePnyyonpxR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIA7naqebvq10senzrjbexf13frafbefreivpr4I1_014vzcyrzragngvba24RiragDhrhrYbbcrePnyyonpxR
+.weak b__MGIA7naqebvq10senzrjbexf13frafbefreivpr4I1_014vzcyrzragngvba24RiragDhrhrYbbcrePnyyonpxR
 .type b__MGIA7naqebvq10senzrjbexf13frafbefreivpr4I1_014vzcyrzragngvba24RiragDhrhrYbbcrePnyyonpxR,%object
 b__MGIA7naqebvq10senzrjbexf13frafbefreivpr4I1_014vzcyrzragngvba24RiragDhrhrYbbcrePnyyonpxR:
 .space __SIZEOF_POINTER__
@@ -163,7 +163,7 @@
 b__MA7naqebvq10senzrjbexf13frafbefreivpr4I1_014vzcyrzragngvba13FrafbeZnantreP1RC7_WninIZ:
 nop
 .text
-.globl b__MA7naqebvq10senzrjbexf13frafbefreivpr4I1_014vzcyrzragngvba19perngrQverpgPunaaryVAFg3__18shapgvbaVSiEXAF_2fcVAF2_20VQverpgErcbegPunaaryRRRAF2_6ErfhygRRRRRRiEAF_13FrafbeZnantreRzvCX13angvir_unaqyrEXG_
+.weak b__MA7naqebvq10senzrjbexf13frafbefreivpr4I1_014vzcyrzragngvba19perngrQverpgPunaaryVAFg3__18shapgvbaVSiEXAF_2fcVAF2_20VQverpgErcbegPunaaryRRRAF2_6ErfhygRRRRRRiEAF_13FrafbeZnantreRzvCX13angvir_unaqyrEXG_
 .type b__MA7naqebvq10senzrjbexf13frafbefreivpr4I1_014vzcyrzragngvba19perngrQverpgPunaaryVAFg3__18shapgvbaVSiEXAF_2fcVAF2_20VQverpgErcbegPunaaryRRRAF2_6ErfhygRRRRRRiEAF_13FrafbeZnantreRzvCX13angvir_unaqyrEXG_,%function
 b__MA7naqebvq10senzrjbexf13frafbefreivpr4I1_014vzcyrzragngvba19perngrQverpgPunaaryVAFg3__18shapgvbaVSiEXAF_2fcVAF2_20VQverpgErcbegPunaaryRRRAF2_6ErfhygRRRRRRiEAF_13FrafbeZnantreRzvCX13angvir_unaqyrEXG_:
 nop
@@ -258,12 +258,12 @@
 b__MGGA7naqebvq10senzrjbexf13frafbefreivpr4I1_014vzcyrzragngvba10RiragDhrhrR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGGA7naqebvq10senzrjbexf13frafbefreivpr4I1_014vzcyrzragngvba24RiragDhrhrYbbcrePnyyonpxR
+.weak b__MGGA7naqebvq10senzrjbexf13frafbefreivpr4I1_014vzcyrzragngvba24RiragDhrhrYbbcrePnyyonpxR
 .type b__MGGA7naqebvq10senzrjbexf13frafbefreivpr4I1_014vzcyrzragngvba24RiragDhrhrYbbcrePnyyonpxR,%object
 b__MGGA7naqebvq10senzrjbexf13frafbefreivpr4I1_014vzcyrzragngvba24RiragDhrhrYbbcrePnyyonpxR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__124__chg_punenpgre_frdhraprVpAF_11pune_genvgfVpRRRREAF_13onfvp_bfgernzVG_G0_RRF7_CXF4_z
+.weak b__MAFg3__124__chg_punenpgre_frdhraprVpAF_11pune_genvgfVpRRRREAF_13onfvp_bfgernzVG_G0_RRF7_CXF4_z
 .type b__MAFg3__124__chg_punenpgre_frdhraprVpAF_11pune_genvgfVpRRRREAF_13onfvp_bfgernzVG_G0_RRF7_CXF4_z,%function
 b__MAFg3__124__chg_punenpgre_frdhraprVpAF_11pune_genvgfVpRRRREAF_13onfvp_bfgernzVG_G0_RRF7_CXF4_z:
 nop
diff --git a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_022.S b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_022.S
index 80c3436..9cbebdf 100644
--- a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_022.S
+++ b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_022.S
@@ -18,7 +18,7 @@
 b__MA7naqebvq12PbafhzreOnfr25frgQrsnhygOhssreQngnFcnprR19naqebvq_qngnfcnpr_g:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_11QvfcynlVasbRR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq6IrpgbeVAF_11QvfcynlVasbRR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq6IrpgbeVAF_11QvfcynlVasbRR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq6IrpgbeVAF_11QvfcynlVasbRR10qb_qrfgeblRCiz:
 nop
@@ -68,7 +68,7 @@
 b__MGPA7naqebvq8uneqjner8tencuvpf11ohssredhrhr4I2_05hgvyf19U2OCebqhpreYvfgrareR16_AF_7OOvaqreR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MMA7naqebvq17OhssreUhoCebqhpre11traHavdhrVqRiR2vq
+.weak b__MMA7naqebvq17OhssreUhoCebqhpre11traHavdhrVqRiR2vq
 .type b__MMA7naqebvq17OhssreUhoCebqhpre11traHavdhrVqRiR2vq,%object
 b__MMA7naqebvq17OhssreUhoCebqhpre11traHavdhrVqRiR2vq:
 .space __SIZEOF_POINTER__
@@ -78,7 +78,7 @@
 b__MGPA7naqebvq24OaQvfcynlRiragPbaarpgvbaR0_AF_23VQvfcynlRiragPbaarpgvbaR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVA7naqebvq2fcVAF2_7VOvaqreRRRAF3_VAF2_14FhesnprPbagebyRRRRRAF_22__habeqrerq_znc_unfureVF5_F8_AF2_28GenafnpgvbaPbzcyrgrqYvfgrare11VOvaqreUnfuRYo1RRRAF_21__habeqrerq_znc_rdhnyVF5_F8_AF_8rdhny_gbVF5_RRYo1RRRAF_9nyybpngbeVF8_RRR25__rzcynpr_havdhr_xrl_netfVF5_WEXAF_4cnveVXF5_F7_RRRRRAFY_VAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF8_CiRRRRoRREXG_QcBG0_
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVA7naqebvq2fcVAF2_7VOvaqreRRRAF3_VAF2_14FhesnprPbagebyRRRRRAF_22__habeqrerq_znc_unfureVF5_F8_AF2_28GenafnpgvbaPbzcyrgrqYvfgrare11VOvaqreUnfuRYo1RRRAF_21__habeqrerq_znc_rdhnyVF5_F8_AF_8rdhny_gbVF5_RRYo1RRRAF_9nyybpngbeVF8_RRR25__rzcynpr_havdhr_xrl_netfVF5_WEXAF_4cnveVXF5_F7_RRRRRAFY_VAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF8_CiRRRRoRREXG_QcBG0_
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVA7naqebvq2fcVAF2_7VOvaqreRRRAF3_VAF2_14FhesnprPbagebyRRRRRAF_22__habeqrerq_znc_unfureVF5_F8_AF2_28GenafnpgvbaPbzcyrgrqYvfgrare11VOvaqreUnfuRYo1RRRAF_21__habeqrerq_znc_rdhnyVF5_F8_AF_8rdhny_gbVF5_RRYo1RRRAF_9nyybpngbeVF8_RRR25__rzcynpr_havdhr_xrl_netfVF5_WEXAF_4cnveVXF5_F7_RRRRRAFY_VAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF8_CiRRRRoRREXG_QcBG0_,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVA7naqebvq2fcVAF2_7VOvaqreRRRAF3_VAF2_14FhesnprPbagebyRRRRRAF_22__habeqrerq_znc_unfureVF5_F8_AF2_28GenafnpgvbaPbzcyrgrqYvfgrare11VOvaqreUnfuRYo1RRRAF_21__habeqrerq_znc_rdhnyVF5_F8_AF_8rdhny_gbVF5_RRYo1RRRAF_9nyybpngbeVF8_RRR25__rzcynpr_havdhr_xrl_netfVF5_WEXAF_4cnveVXF5_F7_RRRRRAFY_VAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF8_CiRRRRoRREXG_QcBG0_:
 nop
@@ -148,7 +148,7 @@
 b__MA7naqebvq8uneqjner8tencuvpf11ohssredhrhr4I2_05hgvyf3o2uRvCAF3_6FgnghfRCoF7_:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq14YnlreQrohtVasbRAF_9nyybpngbeVF2_RRR8__nccraqRz
+.weak b__MAFg3__16irpgbeVA7naqebvq14YnlreQrohtVasbRAF_9nyybpngbeVF2_RRR8__nccraqRz
 .type b__MAFg3__16irpgbeVA7naqebvq14YnlreQrohtVasbRAF_9nyybpngbeVF2_RRR8__nccraqRz,%function
 b__MAFg3__16irpgbeVA7naqebvq14YnlreQrohtVasbRAF_9nyybpngbeVF2_RRR8__nccraqRz:
 nop
@@ -208,12 +208,12 @@
 b__MGi0_a24_A7naqebvq22VTencuvpOhssrePbafhzreQ0Ri:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_10OhssreVgrzRR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_10OhssreVgrzRR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_10OhssreVgrzRR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_10OhssreVgrzRR16qb_zbir_onpxjneqRCiCXiz:
 nop
 .text
-.globl b__MAFg3__112__qrdhr_onfrVAF_8jrnx_cgeVA7naqebvq9SraprGvzrRRRAF_9nyybpngbeVF4_RRR5pyrneRi
+.weak b__MAFg3__112__qrdhr_onfrVAF_8jrnx_cgeVA7naqebvq9SraprGvzrRRRAF_9nyybpngbeVF4_RRR5pyrneRi
 .type b__MAFg3__112__qrdhr_onfrVAF_8jrnx_cgeVA7naqebvq9SraprGvzrRRRAF_9nyybpngbeVF4_RRR5pyrneRi,%function
 b__MAFg3__112__qrdhr_onfrVAF_8jrnx_cgeVA7naqebvq9SraprGvzrRRRAF_9nyybpngbeVF4_RRR5pyrneRi:
 nop
@@ -253,7 +253,7 @@
 b__MA7naqebvq19OhssreDhrhrCebqhpreP1REXAF_2fcVAF_15OhssreDhrhrPberRRRo:
 nop
 .text
-.globl b__MAFg3__120__funerq_cge_cbvagreVCA7naqebvq3qie13PbafhzreDhrhrRAF_14qrsnhyg_qryrgrVF3_RRAF_9nyybpngbeVF3_RRR16__ba_mreb_funerqRi
+.weak b__MAFg3__120__funerq_cge_cbvagreVCA7naqebvq3qie13PbafhzreDhrhrRAF_14qrsnhyg_qryrgrVF3_RRAF_9nyybpngbeVF3_RRR16__ba_mreb_funerqRi
 .type b__MAFg3__120__funerq_cge_cbvagreVCA7naqebvq3qie13PbafhzreDhrhrRAF_14qrsnhyg_qryrgrVF3_RRAF_9nyybpngbeVF3_RRR16__ba_mreb_funerqRi,%function
 b__MAFg3__120__funerq_cge_cbvagreVCA7naqebvq3qie13PbafhzreDhrhrRAF_14qrsnhyg_qryrgrVF3_RRAF_9nyybpngbeVF3_RRR16__ba_mreb_funerqRi:
 nop
@@ -288,7 +288,7 @@
 b__MGIA7naqebvq24OcErtvbaFnzcyvatYvfgrareR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_13PbzcbfreFgngrRR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq6IrpgbeVAF_13PbzcbfreFgngrRR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq6IrpgbeVAF_13PbzcbfreFgngrRR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq6IrpgbeVAF_13PbzcbfreFgngrRR12qb_pbafgehpgRCiz:
 nop
@@ -308,7 +308,7 @@
 b__MA7naqebvq7Fhesnpr18qvfcngpuFrgHfntr64RFg9__in_yvfg:
 nop
 .data
-.globl b__MGIAFg3__110__shapgvba6__shapVCSiCizRAF_9nyybpngbeVF4_RRF3_RR
+.weak b__MGIAFg3__110__shapgvba6__shapVCSiCizRAF_9nyybpngbeVF4_RRF3_RR
 .type b__MGIAFg3__110__shapgvba6__shapVCSiCizRAF_9nyybpngbeVF4_RRF3_RR,%object
 b__MGIAFg3__110__shapgvba6__shapVCSiCizRAF_9nyybpngbeVF4_RRF3_RR:
 .space __SIZEOF_POINTER__
@@ -323,7 +323,7 @@
 b__MGPA7naqebvq23OcTencuvpOhssrePbafhzreR0_AF_22VTencuvpOhssrePbafhzreR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzyRRAF_22__habeqrerq_znc_unfureVzF2_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF2_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF2_RRR8__erunfuRz
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzyRRAF_22__habeqrerq_znc_unfureVzF2_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF2_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF2_RRR8__erunfuRz
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzyRRAF_22__habeqrerq_znc_unfureVzF2_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF2_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF2_RRR8__erunfuRz,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzyRRAF_22__habeqrerq_znc_unfureVzF2_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF2_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF2_RRR8__erunfuRz:
 nop
@@ -333,7 +333,7 @@
 b__MA7naqebvq21FhesnprPbzcbfrePyvrag11Genafnpgvba18frgVachgJvaqbjVasbREXAF_2fcVAF_14FhesnprPbagebyRRREXAF_15VachgJvaqbjVasbR:
 nop
 .text
-.globl b__MAXFg3__110__shapgvba6__shapVAF_6__ovaqVEAF_8shapgvbaVSiCiyEXA7naqebvq2fcVAF5_5SraprRRREXAF_6irpgbeVAF5_19FhesnprPbagebyFgngfRAF_9nyybpngbeVFP_RRRRRRRWEF4_EXAF_12cynprubyqref4__cuVYv1RRREXAFA_VYv2RRREXAFA_VYv3RRRRRRAFQ_VFK_RRSiyFN_FU_RR7__pybarRi
+.weak b__MAXFg3__110__shapgvba6__shapVAF_6__ovaqVEAF_8shapgvbaVSiCiyEXA7naqebvq2fcVAF5_5SraprRRREXAF_6irpgbeVAF5_19FhesnprPbagebyFgngfRAF_9nyybpngbeVFP_RRRRRRRWEF4_EXAF_12cynprubyqref4__cuVYv1RRREXAFA_VYv2RRREXAFA_VYv3RRRRRRAFQ_VFK_RRSiyFN_FU_RR7__pybarRi
 .type b__MAXFg3__110__shapgvba6__shapVAF_6__ovaqVEAF_8shapgvbaVSiCiyEXA7naqebvq2fcVAF5_5SraprRRREXAF_6irpgbeVAF5_19FhesnprPbagebyFgngfRAF_9nyybpngbeVFP_RRRRRRRWEF4_EXAF_12cynprubyqref4__cuVYv1RRREXAFA_VYv2RRREXAFA_VYv3RRRRRRAFQ_VFK_RRSiyFN_FU_RR7__pybarRi,%function
 b__MAXFg3__110__shapgvba6__shapVAF_6__ovaqVEAF_8shapgvbaVSiCiyEXA7naqebvq2fcVAF5_5SraprRRREXAF_6irpgbeVAF5_19FhesnprPbagebyFgngfRAF_9nyybpngbeVFP_RRRRRRRWEF4_EXAF_12cynprubyqref4__cuVYv1RRREXAFA_VYv2RRREXAFA_VYv3RRRRRRAFQ_VFK_RRSiyFN_FU_RR7__pybarRi:
 nop
@@ -353,7 +353,7 @@
 b__MA7naqebvq18OaCebqhpreYvfgrare18arrqfEryrnfrAbgvslRi:
 nop
 .data
-.globl b__MGGA7naqebvq18UcCebqhpreYvfgrareR
+.weak b__MGGA7naqebvq18UcCebqhpreYvfgrareR
 .type b__MGGA7naqebvq18UcCebqhpreYvfgrareR,%object
 b__MGGA7naqebvq18UcCebqhpreYvfgrareR:
 .space __SIZEOF_POINTER__
@@ -403,7 +403,7 @@
 b__MGua40_A7naqebvq14FgernzFcyvggre14BhgchgYvfgrare10ovaqreQvrqREXAF_2jcVAF_7VOvaqreRRR:
 nop
 .data
-.globl b__MA7naqebvq22VTencuvpOhssreCebqhpre27fTrgUnyGbxraGenafnpgvbaPbqrR
+.weak b__MA7naqebvq22VTencuvpOhssreCebqhpre27fTrgUnyGbxraGenafnpgvbaPbqrR
 .type b__MA7naqebvq22VTencuvpOhssreCebqhpre27fTrgUnyGbxraGenafnpgvbaPbqrR,%object
 b__MA7naqebvq22VTencuvpOhssreCebqhpre27fTrgUnyGbxraGenafnpgvbaPbqrR:
 .space __SIZEOF_POINTER__
@@ -413,7 +413,7 @@
 b__MGPA7naqebvq8uneqjner8tencuvpf11ohssredhrhr4I2_05hgvyf24U2OTencuvpOhssreCebqhpreR0_AF_22VTencuvpOhssreCebqhpreR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MMA7naqebvq17OhssreUhoCebqhpre11traHavdhrVqRiR7pbhagre
+.weak b__MMA7naqebvq17OhssreUhoCebqhpre11traHavdhrVqRiR7pbhagre
 .type b__MMA7naqebvq17OhssreUhoCebqhpre11traHavdhrVqRiR7pbhagre,%object
 b__MMA7naqebvq17OhssreUhoCebqhpre11traHavdhrVqRiR7pbhagre:
 .space __SIZEOF_POINTER__
@@ -443,7 +443,7 @@
 b__MGi0_a24_A7naqebvq11OhssreDhrhr21CebklPbafhzreYvfgrareQ1Ri:
 nop
 .data
-.globl b__MGPA7naqebvq23UcTencuvpOhssreCebqhpreR0_AF_11UcVagresnprVAF_23OcTencuvpOhssreCebqhpreRAF_8uneqjner8tencuvpf11ohssredhrhr4I1_05hgvyf24U2OTencuvpOhssreCebqhpreRWAF4_4I2_05hgvyf24U2OTencuvpOhssreCebqhpreRRRR
+.weak b__MGPA7naqebvq23UcTencuvpOhssreCebqhpreR0_AF_11UcVagresnprVAF_23OcTencuvpOhssreCebqhpreRAF_8uneqjner8tencuvpf11ohssredhrhr4I1_05hgvyf24U2OTencuvpOhssreCebqhpreRWAF4_4I2_05hgvyf24U2OTencuvpOhssreCebqhpreRRRR
 .type b__MGPA7naqebvq23UcTencuvpOhssreCebqhpreR0_AF_11UcVagresnprVAF_23OcTencuvpOhssreCebqhpreRAF_8uneqjner8tencuvpf11ohssredhrhr4I1_05hgvyf24U2OTencuvpOhssreCebqhpreRWAF4_4I2_05hgvyf24U2OTencuvpOhssreCebqhpreRRRR,%object
 b__MGPA7naqebvq23UcTencuvpOhssreCebqhpreR0_AF_11UcVagresnprVAF_23OcTencuvpOhssreCebqhpreRAF_8uneqjner8tencuvpf11ohssredhrhr4I1_05hgvyf24U2OTencuvpOhssreCebqhpreRWAF4_4I2_05hgvyf24U2OTencuvpOhssreCebqhpreRRRR:
 .space __SIZEOF_POINTER__
@@ -483,12 +483,12 @@
 b__MGPA7naqebvq8uneqjner8tencuvpf11ohssredhrhr4I2_05hgvyf24U2OTencuvpOhssreCebqhpreR0_AF_11OaVagresnprVAF_22VTencuvpOhssreCebqhpreRRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_11PchPbafhzre14NpdhverqOhssreRR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_11PchPbafhzre14NpdhverqOhssreRR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_11PchPbafhzre14NpdhverqOhssreRR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_11PchPbafhzre14NpdhverqOhssreRR16qb_zbir_onpxjneqRCiCXiz:
 nop
 .text
-.globl b__MAX7naqebvq6Cnepry24ernqAhyynoyrFgebatOvaqreVAF_23VErtvbaFnzcyvatYvfgrareRRRvCAF_2fcVG_RR
+.weak b__MAX7naqebvq6Cnepry24ernqAhyynoyrFgebatOvaqreVAF_23VErtvbaFnzcyvatYvfgrareRRRvCAF_2fcVG_RR
 .type b__MAX7naqebvq6Cnepry24ernqAhyynoyrFgebatOvaqreVAF_23VErtvbaFnzcyvatYvfgrareRRRvCAF_2fcVG_RR,%function
 b__MAX7naqebvq6Cnepry24ernqAhyynoyrFgebatOvaqreVAF_23VErtvbaFnzcyvatYvfgrareRRRvCAF_2fcVG_RR:
 nop
@@ -528,7 +528,7 @@
 b__MGi0_a24_A7naqebvq17OcFhesnprPbzcbfreQ0Ri:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVA7naqebvq2fcVAF1_14FhesnprPbagebyRRRAF1_21FhesnprPbzcbfrePyvrag6FPUnfuRAF_8rdhny_gbVF4_RRAF_9nyybpngbeVF4_RRR25__rzcynpr_havdhr_xrl_netfVF4_WEXF4_RRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF4_CiRRRRoRREXG_QcBG0_
+.weak b__MAFg3__112__unfu_gnoyrVA7naqebvq2fcVAF1_14FhesnprPbagebyRRRAF1_21FhesnprPbzcbfrePyvrag6FPUnfuRAF_8rdhny_gbVF4_RRAF_9nyybpngbeVF4_RRR25__rzcynpr_havdhr_xrl_netfVF4_WEXF4_RRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF4_CiRRRRoRREXG_QcBG0_
 .type b__MAFg3__112__unfu_gnoyrVA7naqebvq2fcVAF1_14FhesnprPbagebyRRRAF1_21FhesnprPbzcbfrePyvrag6FPUnfuRAF_8rdhny_gbVF4_RRAF_9nyybpngbeVF4_RRR25__rzcynpr_havdhr_xrl_netfVF4_WEXF4_RRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF4_CiRRRRoRREXG_QcBG0_,%function
 b__MAFg3__112__unfu_gnoyrVA7naqebvq2fcVAF1_14FhesnprPbagebyRRRAF1_21FhesnprPbzcbfrePyvrag6FPUnfuRAF_8rdhny_gbVF4_RRAF_9nyybpngbeVF4_RRR25__rzcynpr_havdhr_xrl_netfVF4_WEXF4_RRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF4_CiRRRRoRREXG_QcBG0_:
 nop
@@ -563,7 +563,7 @@
 b__MA7naqebvq11OhssreDhrhr21CebklPbafhzreYvfgrare24nqqNaqTrgSenzrGvzrfgnzcfRCXAF_19ArjSenzrRiragfRagelRCAF_22SenzrRiragUvfgbelQrygnR:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_12QvfcynlFgngrRR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_12QvfcynlFgngrRR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_12QvfcynlFgngrRR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_12QvfcynlFgngrRR16qb_zbir_onpxjneqRCiCXiz:
 nop
@@ -613,7 +613,7 @@
 b__MGua40_A7naqebvq14FgernzFcyvggre14BhgchgYvfgrareQ0Ri:
 nop
 .text
-.globl b__MAFg3__110__shapgvba6__shapVAF_6__ovaqVEAF_8shapgvbaVSiCiyEXA7naqebvq2fcVAF5_5SraprRRREXAF_6irpgbeVAF5_19FhesnprPbagebyFgngfRAF_9nyybpngbeVFP_RRRRRRRWEF4_EXAF_12cynprubyqref4__cuVYv1RRREXAFA_VYv2RRREXAFA_VYv3RRRRRRAFQ_VFK_RRSiyFN_FU_RR7qrfgeblRi
+.weak b__MAFg3__110__shapgvba6__shapVAF_6__ovaqVEAF_8shapgvbaVSiCiyEXA7naqebvq2fcVAF5_5SraprRRREXAF_6irpgbeVAF5_19FhesnprPbagebyFgngfRAF_9nyybpngbeVFP_RRRRRRRWEF4_EXAF_12cynprubyqref4__cuVYv1RRREXAFA_VYv2RRREXAFA_VYv3RRRRRRAFQ_VFK_RRSiyFN_FU_RR7qrfgeblRi
 .type b__MAFg3__110__shapgvba6__shapVAF_6__ovaqVEAF_8shapgvbaVSiCiyEXA7naqebvq2fcVAF5_5SraprRRREXAF_6irpgbeVAF5_19FhesnprPbagebyFgngfRAF_9nyybpngbeVFP_RRRRRRRWEF4_EXAF_12cynprubyqref4__cuVYv1RRREXAFA_VYv2RRREXAFA_VYv3RRRRRRAFQ_VFK_RRSiyFN_FU_RR7qrfgeblRi,%function
 b__MAFg3__110__shapgvba6__shapVAF_6__ovaqVEAF_8shapgvbaVSiCiyEXA7naqebvq2fcVAF5_5SraprRRREXAF_6irpgbeVAF5_19FhesnprPbagebyFgngfRAF_9nyybpngbeVFP_RRRRRRRWEF4_EXAF_12cynprubyqref4__cuVYv1RRREXAFA_VYv2RRREXAFA_VYv3RRRRRRAFQ_VFK_RRSiyFN_FU_RR7qrfgeblRi:
 nop
@@ -623,7 +623,7 @@
 b__MGIA7naqebvq18OcCebqhpreYvfgrareR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq12U2OPbairegreVAF_8uneqjner8tencuvpf11ohssredhrhr4I1_022VTencuvpOhssreCebqhpreRAF_23OaTencuvpOhssreCebqhpreRR13hayvaxGbQrnguREXAF_2jcVAF_7VOvaqre14QrnguErpvcvragRRRCiwCFO_
+.weak b__MA7naqebvq12U2OPbairegreVAF_8uneqjner8tencuvpf11ohssredhrhr4I1_022VTencuvpOhssreCebqhpreRAF_23OaTencuvpOhssreCebqhpreRR13hayvaxGbQrnguREXAF_2jcVAF_7VOvaqre14QrnguErpvcvragRRRCiwCFO_
 .type b__MA7naqebvq12U2OPbairegreVAF_8uneqjner8tencuvpf11ohssredhrhr4I1_022VTencuvpOhssreCebqhpreRAF_23OaTencuvpOhssreCebqhpreRR13hayvaxGbQrnguREXAF_2jcVAF_7VOvaqre14QrnguErpvcvragRRRCiwCFO_,%function
 b__MA7naqebvq12U2OPbairegreVAF_8uneqjner8tencuvpf11ohssredhrhr4I1_022VTencuvpOhssreCebqhpreRAF_23OaTencuvpOhssreCebqhpreRR13hayvaxGbQrnguREXAF_2jcVAF_7VOvaqre14QrnguErpvcvragRRRCiwCFO_:
 nop
@@ -663,7 +663,7 @@
 b__MA7naqebvq10pbairefvba6jencNfRCAF_8uneqjner8tencuvpf11ohssredhrhr4I1_022VTencuvpOhssreCebqhpre17DhrhrOhssreBhgchgRCAFg3__16irpgbeVAF9_VC13angvir_unaqyrAF8_9nyybpngbeVFO_RRRRAFP_VFR_RRRREXAF_22VTencuvpOhssreCebqhpre17DhrhrOhssreBhgchgR:
 nop
 .text
-.globl b__MA7naqebvq12U2OPbairegreVAF_8uneqjner8tencuvpf11ohssredhrhr4I1_022VTencuvpOhssreCebqhpreRAF_23OaTencuvpOhssreCebqhpreRR11yvaxGbQrnguREXAF_2fcVAF_7VOvaqre14QrnguErpvcvragRRRCiw
+.weak b__MA7naqebvq12U2OPbairegreVAF_8uneqjner8tencuvpf11ohssredhrhr4I1_022VTencuvpOhssreCebqhpreRAF_23OaTencuvpOhssreCebqhpreRR11yvaxGbQrnguREXAF_2fcVAF_7VOvaqre14QrnguErpvcvragRRRCiw
 .type b__MA7naqebvq12U2OPbairegreVAF_8uneqjner8tencuvpf11ohssredhrhr4I1_022VTencuvpOhssreCebqhpreRAF_23OaTencuvpOhssreCebqhpreRR11yvaxGbQrnguREXAF_2fcVAF_7VOvaqre14QrnguErpvcvragRRRCiw,%function
 b__MA7naqebvq12U2OPbairegreVAF_8uneqjner8tencuvpf11ohssredhrhr4I1_022VTencuvpOhssreCebqhpreRAF_23OaTencuvpOhssreCebqhpreRR11yvaxGbQrnguREXAF_2fcVAF_7VOvaqre14QrnguErpvcvragRRRCiw:
 nop
@@ -703,7 +703,7 @@
 b__MA7naqebvq10TYPbafhzre14hcqngrGrkVzntrRi:
 nop
 .text
-.globl b__MA7naqebvq2fcVAF_13TencuvpOhssreRR5pyrneRi
+.weak b__MA7naqebvq2fcVAF_13TencuvpOhssreRR5pyrneRi
 .type b__MA7naqebvq2fcVAF_13TencuvpOhssreRR5pyrneRi,%function
 b__MA7naqebvq2fcVAF_13TencuvpOhssreRR5pyrneRi:
 nop
@@ -713,7 +713,7 @@
 b__MA7naqebvq14FgernzFcyvggre13OhssreGenpxre10zretrSraprREXAF_2fcVAF_5SraprRRR:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_13TencuvpOhssreRRRAF_9nyybpngbeVF4_RRR6nffvtaVCF4_RRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF4_AF_15vgrengbe_genvgfVFO_R9ersreraprRRR5inyhrRiR4glcrRFO_FO_
+.weak b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_13TencuvpOhssreRRRAF_9nyybpngbeVF4_RRR6nffvtaVCF4_RRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF4_AF_15vgrengbe_genvgfVFO_R9ersreraprRRR5inyhrRiR4glcrRFO_FO_
 .type b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_13TencuvpOhssreRRRAF_9nyybpngbeVF4_RRR6nffvtaVCF4_RRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF4_AF_15vgrengbe_genvgfVFO_R9ersreraprRRR5inyhrRiR4glcrRFO_FO_,%function
 b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_13TencuvpOhssreRRRAF_9nyybpngbeVF4_RRR6nffvtaVCF4_RRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF4_AF_15vgrengbe_genvgfVFO_R9ersreraprRRR5inyhrRiR4glcrRFO_FO_:
 nop
@@ -723,7 +723,7 @@
 b__MAX7naqebvq22VTencuvpOhssrePbafhzre22trgVagresnprQrfpevcgbeRi:
 nop
 .text
-.globl b__MAFg3__14yvfgVvAF_9nyybpngbeVvRRR9chfu_onpxREXv
+.weak b__MAFg3__14yvfgVvAF_9nyybpngbeVvRRR9chfu_onpxREXv
 .type b__MAFg3__14yvfgVvAF_9nyybpngbeVvRRR9chfu_onpxREXv,%function
 b__MAFg3__14yvfgVvAF_9nyybpngbeVvRRR9chfu_onpxREXv:
 nop
@@ -793,7 +793,7 @@
 b__MGIA7naqebvq16PbafhzreYvfgrareR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MGua16_A7naqebvq12U2OPbairegreVAF_8uneqjner8tencuvpf11ohssredhrhr4I1_017VCebqhpreYvfgrareRAF_18OaCebqhpreYvfgrareRR10baGenafnpgRwEXAF_6CnepryRCF8_w
+.weak b__MGua16_A7naqebvq12U2OPbairegreVAF_8uneqjner8tencuvpf11ohssredhrhr4I1_017VCebqhpreYvfgrareRAF_18OaCebqhpreYvfgrareRR10baGenafnpgRwEXAF_6CnepryRCF8_w
 .type b__MGua16_A7naqebvq12U2OPbairegreVAF_8uneqjner8tencuvpf11ohssredhrhr4I1_017VCebqhpreYvfgrareRAF_18OaCebqhpreYvfgrareRR10baGenafnpgRwEXAF_6CnepryRCF8_w,%function
 b__MGua16_A7naqebvq12U2OPbairegreVAF_8uneqjner8tencuvpf11ohssredhrhr4I1_017VCebqhpreYvfgrareRAF_18OaCebqhpreYvfgrareRR10baGenafnpgRwEXAF_6CnepryRCF8_w:
 nop
@@ -803,7 +803,7 @@
 b__MA7naqebvq20QvfcynlRiragErprvireQ2Ri:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVzAF_2fcVAF_14FgernzFcyvggre13OhssreGenpxreRRRRRR10qb_pbzcnerRCXiF9_
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVzAF_2fcVAF_14FgernzFcyvggre13OhssreGenpxreRRRRRR10qb_pbzcnerRCXiF9_
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVzAF_2fcVAF_14FgernzFcyvggre13OhssreGenpxreRRRRRR10qb_pbzcnerRCXiF9_,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVzAF_2fcVAF_14FgernzFcyvggre13OhssreGenpxreRRRRRR10qb_pbzcnerRCXiF9_:
 nop
@@ -848,7 +848,7 @@
 b__MA7naqebvq20QvfcynlRiragErprvireP2RAF_16VFhesnprPbzcbfre11IflapFbheprRAF1_13PbasvtPunatrqR:
 nop
 .text
-.globl b__MA7naqebvq2fcVAF_13TencuvpOhssreRRQ2Ri
+.weak b__MA7naqebvq2fcVAF_13TencuvpOhssreRRQ2Ri
 .type b__MA7naqebvq2fcVAF_13TencuvpOhssreRRQ2Ri,%function
 b__MA7naqebvq2fcVAF_13TencuvpOhssreRRQ2Ri:
 nop
@@ -863,7 +863,7 @@
 b__MGPA7naqebvq28GenafnpgvbaPbzcyrgrqYvfgrareR0_AF_30OaGenafnpgvbaPbzcyrgrqYvfgrareR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__14yvfgVvAF_9nyybpngbeVvRRR6erzbirREXv
+.weak b__MAFg3__14yvfgVvAF_9nyybpngbeVvRRR6erzbirREXv
 .type b__MAFg3__14yvfgVvAF_9nyybpngbeVvRRR6erzbirREXv,%function
 b__MAFg3__14yvfgVvAF_9nyybpngbeVvRRR6erzbirREXv:
 nop
@@ -898,12 +898,12 @@
 b__MGGA7naqebvq17OhssreUhoCebqhpreR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq6Cnepry21jevgrCneprynoyrIrpgbeVAF_14YnlreQrohtVasbRRRvEXAFg3__16irpgbeVG_AF3_9nyybpngbeVF5_RRRR
+.weak b__MA7naqebvq6Cnepry21jevgrCneprynoyrIrpgbeVAF_14YnlreQrohtVasbRRRvEXAFg3__16irpgbeVG_AF3_9nyybpngbeVF5_RRRR
 .type b__MA7naqebvq6Cnepry21jevgrCneprynoyrIrpgbeVAF_14YnlreQrohtVasbRRRvEXAFg3__16irpgbeVG_AF3_9nyybpngbeVF5_RRRR,%function
 b__MA7naqebvq6Cnepry21jevgrCneprynoyrIrpgbeVAF_14YnlreQrohtVasbRRRvEXAFg3__16irpgbeVG_AF3_9nyybpngbeVF5_RRRR:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_13PbzcbfreFgngrRR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_13PbzcbfreFgngrRR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_13PbzcbfreFgngrRR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_13PbzcbfreFgngrRR16qb_zbir_onpxjneqRCiCXiz:
 nop
@@ -958,7 +958,7 @@
 b__MA7naqebvq7Fhesnpr27qvfcngpuFrgFunerqOhssreZbqrRFg9__in_yvfg:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq19VachgJvaqbjPbzznaqf25GenafsreGbhpuSbphfPbzznaqRAF_9nyybpngbeVF3_RRR6nffvtaVCF3_RRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF3_AF_15vgrengbe_genvgfVFN_R9ersreraprRRR5inyhrRiR4glcrRFN_FN_
+.weak b__MAFg3__16irpgbeVA7naqebvq19VachgJvaqbjPbzznaqf25GenafsreGbhpuSbphfPbzznaqRAF_9nyybpngbeVF3_RRR6nffvtaVCF3_RRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF3_AF_15vgrengbe_genvgfVFN_R9ersreraprRRR5inyhrRiR4glcrRFN_FN_
 .type b__MAFg3__16irpgbeVA7naqebvq19VachgJvaqbjPbzznaqf25GenafsreGbhpuSbphfPbzznaqRAF_9nyybpngbeVF3_RRR6nffvtaVCF3_RRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF3_AF_15vgrengbe_genvgfVFN_R9ersreraprRRR5inyhrRiR4glcrRFN_FN_,%function
 b__MAFg3__16irpgbeVA7naqebvq19VachgJvaqbjPbzznaqf25GenafsreGbhpuSbphfPbzznaqRAF_9nyybpngbeVF3_RRR6nffvtaVCF3_RRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF3_AF_15vgrengbe_genvgfVFN_R9ersreraprRRR5inyhrRiR4glcrRFN_FN_:
 nop
@@ -1038,7 +1038,7 @@
 b__MA7naqebvq21FhesnprPbzcbfrePyvrag11Genafnpgvba14qrgnpuPuvyqeraREXAF_2fcVAF_14FhesnprPbagebyRRR:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVyAF_4unfuVyRRAF_8rdhny_gbVyRRAF_9nyybpngbeVyRRR6erunfuRz
+.weak b__MAFg3__112__unfu_gnoyrVyAF_4unfuVyRRAF_8rdhny_gbVyRRAF_9nyybpngbeVyRRR6erunfuRz
 .type b__MAFg3__112__unfu_gnoyrVyAF_4unfuVyRRAF_8rdhny_gbVyRRAF_9nyybpngbeVyRRR6erunfuRz,%function
 b__MAFg3__112__unfu_gnoyrVyAF_4unfuVyRRAF_8rdhny_gbVyRRAF_9nyybpngbeVyRRR6erunfuRz:
 nop
@@ -1058,7 +1058,7 @@
 b__MA7naqebvq8uneqjner8tencuvpf11ohssredhrhr4I2_05hgvyf24U2OTencuvpOhssreCebqhpre12nggnpuOhssreRCvEXAF_2fcVAF_13TencuvpOhssreRRR:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq17YvfgrarePnyyonpxfRAF_9nyybpngbeVF2_RRR24__rzcynpr_onpx_fybj_cnguVWEAF1_2fcVAF1_29VGenafnpgvbaPbzcyrgrqYvfgrareRRREAF0_VyAF3_VyRRRRRRRiQcBG_
+.weak b__MAFg3__16irpgbeVA7naqebvq17YvfgrarePnyyonpxfRAF_9nyybpngbeVF2_RRR24__rzcynpr_onpx_fybj_cnguVWEAF1_2fcVAF1_29VGenafnpgvbaPbzcyrgrqYvfgrareRRREAF0_VyAF3_VyRRRRRRRiQcBG_
 .type b__MAFg3__16irpgbeVA7naqebvq17YvfgrarePnyyonpxfRAF_9nyybpngbeVF2_RRR24__rzcynpr_onpx_fybj_cnguVWEAF1_2fcVAF1_29VGenafnpgvbaPbzcyrgrqYvfgrareRRREAF0_VyAF3_VyRRRRRRRiQcBG_,%function
 b__MAFg3__16irpgbeVA7naqebvq17YvfgrarePnyyonpxfRAF_9nyybpngbeVF2_RRR24__rzcynpr_onpx_fybj_cnguVWEAF1_2fcVAF1_29VGenafnpgvbaPbzcyrgrqYvfgrareRRREAF0_VyAF3_VyRRRRRRRiQcBG_:
 nop
@@ -1093,7 +1093,7 @@
 b__MA7naqebvq21FhesnprPbzcbfrePyvrag11Genafnpgvba17frgFvqronaqFgernzREXAF_2fcVAF_14FhesnprPbagebyRRREXAF2_VAF_12AngvirUnaqyrRRR:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzyRRAF_22__habeqrerq_znc_unfureVzF2_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF2_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF2_RRR25__rzcynpr_havdhr_xrl_netfVzWEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXzRRRAFV_VWRRRRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF2_CiRRRRoRREXG_QcBG0_
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzyRRAF_22__habeqrerq_znc_unfureVzF2_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF2_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF2_RRR25__rzcynpr_havdhr_xrl_netfVzWEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXzRRRAFV_VWRRRRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF2_CiRRRRoRREXG_QcBG0_
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzyRRAF_22__habeqrerq_znc_unfureVzF2_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF2_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF2_RRR25__rzcynpr_havdhr_xrl_netfVzWEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXzRRRAFV_VWRRRRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF2_CiRRRRoRREXG_QcBG0_,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzyRRAF_22__habeqrerq_znc_unfureVzF2_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF2_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF2_RRR25__rzcynpr_havdhr_xrl_netfVzWEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXzRRRAFV_VWRRRRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF2_CiRRRRoRREXG_QcBG0_:
 nop
@@ -1153,12 +1153,12 @@
 b__MGGA7naqebvq18GJCebqhpreYvfgrareR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq6Cnepry4ernqVAF_4ErpgRRRvEAF_16YvtugSynggranoyrVG_RR
+.weak b__MAX7naqebvq6Cnepry4ernqVAF_4ErpgRRRvEAF_16YvtugSynggranoyrVG_RR
 .type b__MAX7naqebvq6Cnepry4ernqVAF_4ErpgRRRvEAF_16YvtugSynggranoyrVG_RR,%function
 b__MAX7naqebvq6Cnepry4ernqVAF_4ErpgRRRvEAF_16YvtugSynggranoyrVG_RR:
 nop
 .text
-.globl b__MGua8_A7naqebvq12U2OPbairegreVAF_8uneqjner8tencuvpf11ohssredhrhr4I1_022VTencuvpOhssreCebqhpreRAF_23OaTencuvpOhssreCebqhpreRR11yvaxGbQrnguREXAF_2fcVAF_7VOvaqre14QrnguErpvcvragRRRCiw
+.weak b__MGua8_A7naqebvq12U2OPbairegreVAF_8uneqjner8tencuvpf11ohssredhrhr4I1_022VTencuvpOhssreCebqhpreRAF_23OaTencuvpOhssreCebqhpreRR11yvaxGbQrnguREXAF_2fcVAF_7VOvaqre14QrnguErpvcvragRRRCiw
 .type b__MGua8_A7naqebvq12U2OPbairegreVAF_8uneqjner8tencuvpf11ohssredhrhr4I1_022VTencuvpOhssreCebqhpreRAF_23OaTencuvpOhssreCebqhpreRR11yvaxGbQrnguREXAF_2fcVAF_7VOvaqre14QrnguErpvcvragRRRCiw,%function
 b__MGua8_A7naqebvq12U2OPbairegreVAF_8uneqjner8tencuvpf11ohssredhrhr4I1_022VTencuvpOhssreCebqhpreRAF_23OaTencuvpOhssreCebqhpreRR11yvaxGbQrnguREXAF_2fcVAF_7VOvaqre14QrnguErpvcvragRRRCiw:
 nop
@@ -1168,12 +1168,12 @@
 b__MAX7naqebvq3thv7OvgGhor5trgSqRi:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_12QvfcynlFgngrRR10qb_pbzcnerRCXiF4_
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_12QvfcynlFgngrRR10qb_pbzcnerRCXiF4_
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_12QvfcynlFgngrRR10qb_pbzcnerRCXiF4_,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_12QvfcynlFgngrRR10qb_pbzcnerRCXiF4_:
 nop
 .text
-.globl b__MAFg3__110__shapgvba6__shapVCSiCizRAF_9nyybpngbeVF4_RRF3_RpyRBF2_Bz
+.weak b__MAFg3__110__shapgvba6__shapVCSiCizRAF_9nyybpngbeVF4_RRF3_RpyRBF2_Bz
 .type b__MAFg3__110__shapgvba6__shapVCSiCizRAF_9nyybpngbeVF4_RRF3_RpyRBF2_Bz,%function
 b__MAFg3__110__shapgvba6__shapVCSiCizRAF_9nyybpngbeVF4_RRF3_RpyRBF2_Bz:
 nop
@@ -1203,22 +1203,22 @@
 b__MGua8_A7naqebvq23OaFhesnprPbzcbfrePyvrag10baGenafnpgRwEXAF_6CnepryRCF1_w:
 nop
 .data
-.globl b__MGIAFg3__110__shapgvba6__shapVAF_6__ovaqVEAF_8shapgvbaVSiCiyEXA7naqebvq2fcVAF5_5SraprRRREXAF_6irpgbeVAF5_19FhesnprPbagebyFgngfRAF_9nyybpngbeVFP_RRRRRRRWEF4_EXAF_12cynprubyqref4__cuVYv1RRREXAFA_VYv2RRREXAFA_VYv3RRRRRRAFQ_VFK_RRSiyFN_FU_RRR
+.weak b__MGIAFg3__110__shapgvba6__shapVAF_6__ovaqVEAF_8shapgvbaVSiCiyEXA7naqebvq2fcVAF5_5SraprRRREXAF_6irpgbeVAF5_19FhesnprPbagebyFgngfRAF_9nyybpngbeVFP_RRRRRRRWEF4_EXAF_12cynprubyqref4__cuVYv1RRREXAFA_VYv2RRREXAFA_VYv3RRRRRRAFQ_VFK_RRSiyFN_FU_RRR
 .type b__MGIAFg3__110__shapgvba6__shapVAF_6__ovaqVEAF_8shapgvbaVSiCiyEXA7naqebvq2fcVAF5_5SraprRRREXAF_6irpgbeVAF5_19FhesnprPbagebyFgngfRAF_9nyybpngbeVFP_RRRRRRRWEF4_EXAF_12cynprubyqref4__cuVYv1RRREXAFA_VYv2RRREXAFA_VYv3RRRRRRAFQ_VFK_RRSiyFN_FU_RRR,%object
 b__MGIAFg3__110__shapgvba6__shapVAF_6__ovaqVEAF_8shapgvbaVSiCiyEXA7naqebvq2fcVAF5_5SraprRRREXAF_6irpgbeVAF5_19FhesnprPbagebyFgngfRAF_9nyybpngbeVFP_RRRRRRRWEF4_EXAF_12cynprubyqref4__cuVYv1RRREXAFA_VYv2RRREXAFA_VYv3RRRRRRAFQ_VFK_RRSiyFN_FU_RRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_11PchPbafhzre14NpdhverqOhssreRR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq6IrpgbeVAF_11PchPbafhzre14NpdhverqOhssreRR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq6IrpgbeVAF_11PchPbafhzre14NpdhverqOhssreRR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq6IrpgbeVAF_11PchPbafhzre14NpdhverqOhssreRR10qb_qrfgeblRCiz:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_11QvfcynlVasbRR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_11QvfcynlVasbRR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_11QvfcynlVasbRR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_11QvfcynlVasbRR15qb_zbir_sbejneqRCiCXiz:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwAF_6irpgbeVuAF_9nyybpngbeVuRRRRRRAF_22__habeqrerq_znc_unfureVwF6_AF_4unfuVwRRYo1RRRAF_21__habeqrerq_znc_rdhnyVwF6_AF_8rdhny_gbVwRRYo1RRRAF3_VF6_RRR16__pbafgehpg_abqrVWEXAF_4cnveVXwF5_RRRRRAF_10havdhr_cgeVAF_11__unfu_abqrVF6_CiRRAF_22__unfu_abqr_qrfgehpgbeVAF3_VFD_RRRRRRQcBG_
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwAF_6irpgbeVuAF_9nyybpngbeVuRRRRRRAF_22__habeqrerq_znc_unfureVwF6_AF_4unfuVwRRYo1RRRAF_21__habeqrerq_znc_rdhnyVwF6_AF_8rdhny_gbVwRRYo1RRRAF3_VF6_RRR16__pbafgehpg_abqrVWEXAF_4cnveVXwF5_RRRRRAF_10havdhr_cgeVAF_11__unfu_abqrVF6_CiRRAF_22__unfu_abqr_qrfgehpgbeVAF3_VFD_RRRRRRQcBG_
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwAF_6irpgbeVuAF_9nyybpngbeVuRRRRRRAF_22__habeqrerq_znc_unfureVwF6_AF_4unfuVwRRYo1RRRAF_21__habeqrerq_znc_rdhnyVwF6_AF_8rdhny_gbVwRRYo1RRRAF3_VF6_RRR16__pbafgehpg_abqrVWEXAF_4cnveVXwF5_RRRRRAF_10havdhr_cgeVAF_11__unfu_abqrVF6_CiRRAF_22__unfu_abqr_qrfgehpgbeVAF3_VFD_RRRRRRQcBG_,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwAF_6irpgbeVuAF_9nyybpngbeVuRRRRRRAF_22__habeqrerq_znc_unfureVwF6_AF_4unfuVwRRYo1RRRAF_21__habeqrerq_znc_rdhnyVwF6_AF_8rdhny_gbVwRRYo1RRRAF3_VF6_RRR16__pbafgehpg_abqrVWEXAF_4cnveVXwF5_RRRRRAF_10havdhr_cgeVAF_11__unfu_abqrVF6_CiRRAF_22__unfu_abqr_qrfgehpgbeVAF3_VFD_RRRRRRQcBG_:
 nop
@@ -1273,7 +1273,7 @@
 b__MGi0_a24_A7naqebvq18OhssreVgrzPbafhzreQ1Ri:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq10SenzrRiragRAF_9nyybpngbeVF2_RRR7erfreirRz
+.weak b__MAFg3__16irpgbeVA7naqebvq10SenzrRiragRAF_9nyybpngbeVF2_RRR7erfreirRz
 .type b__MAFg3__16irpgbeVA7naqebvq10SenzrRiragRAF_9nyybpngbeVF2_RRR7erfreirRz,%function
 b__MAFg3__16irpgbeVA7naqebvq10SenzrRiragRAF_9nyybpngbeVF2_RRR7erfreirRz:
 nop
@@ -1283,7 +1283,7 @@
 b__MA7naqebvq21FhesnprPbzcbfrePyvrag11Genafnpgvba11frgCbfvgvbaREXAF_2fcVAF_14FhesnprPbagebyRRRss:
 nop
 .text
-.globl b__MA7naqebvq9FvatyrgbaVAF_12FlapSrngherfRR11unfVafgnaprRi
+.weak b__MA7naqebvq9FvatyrgbaVAF_12FlapSrngherfRR11unfVafgnaprRi
 .type b__MA7naqebvq9FvatyrgbaVAF_12FlapSrngherfRR11unfVafgnaprRi,%function
 b__MA7naqebvq9FvatyrgbaVAF_12FlapSrngherfRR11unfVafgnaprRi:
 nop
@@ -1293,7 +1293,7 @@
 b__MA7naqebvq10pbairefvba14gbEnjQngnfcnprREXAF_8uneqjner8tencuvpf6pbzzba4I1_09QngnfcnprR:
 nop
 .text
-.globl b__MA7naqebvq12U2OPbairegreVAF_8uneqjner8tencuvpf11ohssredhrhr4I1_017VCebqhpreYvfgrareRAF_18OaCebqhpreYvfgrareRR11yvaxGbQrnguREXAF_2fcVAF_7VOvaqre14QrnguErpvcvragRRRCiw
+.weak b__MA7naqebvq12U2OPbairegreVAF_8uneqjner8tencuvpf11ohssredhrhr4I1_017VCebqhpreYvfgrareRAF_18OaCebqhpreYvfgrareRR11yvaxGbQrnguREXAF_2fcVAF_7VOvaqre14QrnguErpvcvragRRRCiw
 .type b__MA7naqebvq12U2OPbairegreVAF_8uneqjner8tencuvpf11ohssredhrhr4I1_017VCebqhpreYvfgrareRAF_18OaCebqhpreYvfgrareRR11yvaxGbQrnguREXAF_2fcVAF_7VOvaqre14QrnguErpvcvragRRRCiw,%function
 b__MA7naqebvq12U2OPbairegreVAF_8uneqjner8tencuvpf11ohssredhrhr4I1_017VCebqhpreYvfgrareRAF_18OaCebqhpreYvfgrareRR11yvaxGbQrnguREXAF_2fcVAF_7VOvaqre14QrnguErpvcvragRRRCiw:
 nop
@@ -1333,7 +1333,7 @@
 b__MA7naqebvq10TYPbafhzre12trgGvzrfgnzcRi:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwAF_6irpgbeVuAF_9nyybpngbeVuRRRRRRAF_22__habeqrerq_znc_unfureVwF6_AF_4unfuVwRRYo1RRRAF_21__habeqrerq_znc_rdhnyVwF6_AF_8rdhny_gbVwRRYo1RRRAF3_VF6_RRR6erzbirRAF_21__unfu_pbafg_vgrengbeVCAF_11__unfu_abqrVF6_CiRRRR
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwAF_6irpgbeVuAF_9nyybpngbeVuRRRRRRAF_22__habeqrerq_znc_unfureVwF6_AF_4unfuVwRRYo1RRRAF_21__habeqrerq_znc_rdhnyVwF6_AF_8rdhny_gbVwRRYo1RRRAF3_VF6_RRR6erzbirRAF_21__unfu_pbafg_vgrengbeVCAF_11__unfu_abqrVF6_CiRRRR
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwAF_6irpgbeVuAF_9nyybpngbeVuRRRRRRAF_22__habeqrerq_znc_unfureVwF6_AF_4unfuVwRRYo1RRRAF_21__habeqrerq_znc_rdhnyVwF6_AF_8rdhny_gbVwRRYo1RRRAF3_VF6_RRR6erzbirRAF_21__unfu_pbafg_vgrengbeVCAF_11__unfu_abqrVF6_CiRRRR,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwAF_6irpgbeVuAF_9nyybpngbeVuRRRRRRAF_22__habeqrerq_znc_unfureVwF6_AF_4unfuVwRRYo1RRRAF_21__habeqrerq_znc_rdhnyVwF6_AF_8rdhny_gbVwRRYo1RRRAF3_VF6_RRR6erzbirRAF_21__unfu_pbafg_vgrengbeVCAF_11__unfu_abqrVF6_CiRRRR:
 nop
@@ -1368,7 +1368,7 @@
 b__MGPA7naqebvq24OaQvfcynlRiragPbaarpgvbaR8_AF_7VOvaqreR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq16GenafnpgvbaFgngfRAF_9nyybpngbeVF2_RRR24__rzcynpr_onpx_fybj_cnguVWEXAF_13habeqrerq_frgVyAF_4unfuVyRRAF_8rdhny_gbVyRRAF3_VyRRRRRRRiQcBG_
+.weak b__MAFg3__16irpgbeVA7naqebvq16GenafnpgvbaFgngfRAF_9nyybpngbeVF2_RRR24__rzcynpr_onpx_fybj_cnguVWEXAF_13habeqrerq_frgVyAF_4unfuVyRRAF_8rdhny_gbVyRRAF3_VyRRRRRRRiQcBG_
 .type b__MAFg3__16irpgbeVA7naqebvq16GenafnpgvbaFgngfRAF_9nyybpngbeVF2_RRR24__rzcynpr_onpx_fybj_cnguVWEXAF_13habeqrerq_frgVyAF_4unfuVyRRAF_8rdhny_gbVyRRAF3_VyRRRRRRRiQcBG_,%function
 b__MAFg3__16irpgbeVA7naqebvq16GenafnpgvbaFgngfRAF_9nyybpngbeVF2_RRR24__rzcynpr_onpx_fybj_cnguVWEXAF_13habeqrerq_frgVyAF_4unfuVyRRAF_8rdhny_gbVyRRAF3_VyRRRRRRRiQcBG_:
 nop
@@ -1398,7 +1398,7 @@
 b__MA7naqebvq7Fhesnpr21ybpxOhssre_QRCERPNGRQRC19NAngvirJvaqbjOhssre:
 nop
 .text
-.globl b__MA7naqebvq11OaVagresnprVAF_23VErtvbaFnzcyvatYvfgrareRR10baNfOvaqreRi
+.weak b__MA7naqebvq11OaVagresnprVAF_23VErtvbaFnzcyvatYvfgrareRR10baNfOvaqreRi
 .type b__MA7naqebvq11OaVagresnprVAF_23VErtvbaFnzcyvatYvfgrareRR10baNfOvaqreRi,%function
 b__MA7naqebvq11OaVagresnprVAF_23VErtvbaFnzcyvatYvfgrareRR10baNfOvaqreRi:
 nop
@@ -1418,7 +1418,7 @@
 b__MA7naqebvq17OhssreUhoCebqhpre15nyybpngrOhssrefRwwvz:
 nop
 .data
-.globl b__MGPA7naqebvq11PchPbafhzreR0_AF_16PbafhzreYvfgrareR
+.weak b__MGPA7naqebvq11PchPbafhzreR0_AF_16PbafhzreYvfgrareR
 .type b__MGPA7naqebvq11PchPbafhzreR0_AF_16PbafhzreYvfgrareR,%object
 b__MGPA7naqebvq11PchPbafhzreR0_AF_16PbafhzreYvfgrareR:
 .space __SIZEOF_POINTER__
@@ -1443,7 +1443,7 @@
 b__MA7naqebvq8uneqjner8tencuvpf11ohssredhrhr4I1_05hgvyf24U2OTencuvpOhssreCebqhpre17frgQrdhrhrGvzrbhgRy:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_12U2OPbairegreVAF1_8uneqjner8tencuvpf11ohssredhrhr4I1_022VTencuvpOhssreCebqhpreRAF1_23OaTencuvpOhssreCebqhpreRR8BovghnelRRRAF_9nyybpngbeVFP_RRR21__chfu_onpx_fybj_cnguVFP_RRiBG_
+.weak b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_12U2OPbairegreVAF1_8uneqjner8tencuvpf11ohssredhrhr4I1_022VTencuvpOhssreCebqhpreRAF1_23OaTencuvpOhssreCebqhpreRR8BovghnelRRRAF_9nyybpngbeVFP_RRR21__chfu_onpx_fybj_cnguVFP_RRiBG_
 .type b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_12U2OPbairegreVAF1_8uneqjner8tencuvpf11ohssredhrhr4I1_022VTencuvpOhssreCebqhpreRAF1_23OaTencuvpOhssreCebqhpreRR8BovghnelRRRAF_9nyybpngbeVFP_RRR21__chfu_onpx_fybj_cnguVFP_RRiBG_,%function
 b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_12U2OPbairegreVAF1_8uneqjner8tencuvpf11ohssredhrhr4I1_022VTencuvpOhssreCebqhpreRAF1_23OaTencuvpOhssreCebqhpreRR8BovghnelRRRAF_9nyybpngbeVFP_RRR21__chfu_onpx_fybj_cnguVFP_RRiBG_:
 nop
@@ -1458,17 +1458,17 @@
 b__MA7naqebvq19OhssreDhrhrPbafhzre16frgGenafsbezUvagRw:
 nop
 .data
-.globl b__MGIA7naqebvq18UcCebqhpreYvfgrareR
+.weak b__MGIA7naqebvq18UcCebqhpreYvfgrareR
 .type b__MGIA7naqebvq18UcCebqhpreYvfgrareR,%object
 b__MGIA7naqebvq18UcCebqhpreYvfgrareR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq9FvatyrgbaVAF_12FlapSrngherfRRP2Ri
+.weak b__MA7naqebvq9FvatyrgbaVAF_12FlapSrngherfRRP2Ri
 .type b__MA7naqebvq9FvatyrgbaVAF_12FlapSrngherfRRP2Ri,%function
 b__MA7naqebvq9FvatyrgbaVAF_12FlapSrngherfRRP2Ri:
 nop
 .data
-.globl b__MGIA7naqebvq12U2OPbairegreVAF_8uneqjner8tencuvpf11ohssredhrhr4I1_017VCebqhpreYvfgrareRAF_18OaCebqhpreYvfgrareRR8BovghnelR
+.weak b__MGIA7naqebvq12U2OPbairegreVAF_8uneqjner8tencuvpf11ohssredhrhr4I1_017VCebqhpreYvfgrareRAF_18OaCebqhpreYvfgrareRR8BovghnelR
 .type b__MGIA7naqebvq12U2OPbairegreVAF_8uneqjner8tencuvpf11ohssredhrhr4I1_017VCebqhpreYvfgrareRAF_18OaCebqhpreYvfgrareRR8BovghnelR,%object
 b__MGIA7naqebvq12U2OPbairegreVAF_8uneqjner8tencuvpf11ohssredhrhr4I1_017VCebqhpreYvfgrareRAF_18OaCebqhpreYvfgrareRR8BovghnelR:
 .space __SIZEOF_POINTER__
@@ -1548,12 +1548,12 @@
 b__MGPA7naqebvq8uneqjner8tencuvpf11ohssredhrhr4I1_05hgvyf19U2OCebqhpreYvfgrareR0_AF_17VCebqhpreYvfgrareR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MGua16_A7naqebvq12U2OPbairegreVAF_8uneqjner8tencuvpf11ohssredhrhr4I1_017VCebqhpreYvfgrareRAF_18OaCebqhpreYvfgrareRR13hayvaxGbQrnguREXAF_2jcVAF_7VOvaqre14QrnguErpvcvragRRRCiwCFO_
+.weak b__MGua16_A7naqebvq12U2OPbairegreVAF_8uneqjner8tencuvpf11ohssredhrhr4I1_017VCebqhpreYvfgrareRAF_18OaCebqhpreYvfgrareRR13hayvaxGbQrnguREXAF_2jcVAF_7VOvaqre14QrnguErpvcvragRRRCiwCFO_
 .type b__MGua16_A7naqebvq12U2OPbairegreVAF_8uneqjner8tencuvpf11ohssredhrhr4I1_017VCebqhpreYvfgrareRAF_18OaCebqhpreYvfgrareRR13hayvaxGbQrnguREXAF_2jcVAF_7VOvaqre14QrnguErpvcvragRRRCiwCFO_,%function
 b__MGua16_A7naqebvq12U2OPbairegreVAF_8uneqjner8tencuvpf11ohssredhrhr4I1_017VCebqhpreYvfgrareRAF_18OaCebqhpreYvfgrareRR13hayvaxGbQrnguREXAF_2jcVAF_7VOvaqre14QrnguErpvcvragRRRCiwCFO_:
 nop
 .text
-.globl b__MAFg3__112__qrdhr_onfrVA7naqebvq16BpphcnaplGenpxre7FrtzragRAF_9nyybpngbeVF3_RRR5pyrneRi
+.weak b__MAFg3__112__qrdhr_onfrVA7naqebvq16BpphcnaplGenpxre7FrtzragRAF_9nyybpngbeVF3_RRR5pyrneRi
 .type b__MAFg3__112__qrdhr_onfrVA7naqebvq16BpphcnaplGenpxre7FrtzragRAF_9nyybpngbeVF3_RRR5pyrneRi,%function
 b__MAFg3__112__qrdhr_onfrVA7naqebvq16BpphcnaplGenpxre7FrtzragRAF_9nyybpngbeVF3_RRR5pyrneRi:
 nop
@@ -1563,7 +1563,7 @@
 b__MAX7naqebvq11SenzrRiragf19unfQrdhrhrErnqlVasbRi:
 nop
 .data
-.globl b__MGIA7naqebvq23UcTencuvpOhssreCebqhpreR
+.weak b__MGIA7naqebvq23UcTencuvpOhssreCebqhpreR
 .type b__MGIA7naqebvq23UcTencuvpOhssreCebqhpreR,%object
 b__MGIA7naqebvq23UcTencuvpOhssreCebqhpreR:
 .space __SIZEOF_POINTER__
@@ -1578,7 +1578,7 @@
 b__MA7naqebvq21FhesnprPbzcbfrePyvrag11Genafnpgvba14frgPebc_yrtnplREXAF_2fcVAF_14FhesnprPbagebyRRREXAF_4ErpgR:
 nop
 .text
-.globl b__MAXFg3__110__shapgvba6__shapVCSiCizRAF_9nyybpngbeVF4_RRF3_R7__pybarRi
+.weak b__MAXFg3__110__shapgvba6__shapVCSiCizRAF_9nyybpngbeVF4_RRF3_R7__pybarRi
 .type b__MAXFg3__110__shapgvba6__shapVCSiCizRAF_9nyybpngbeVF4_RRF3_R7__pybarRi,%function
 b__MAXFg3__110__shapgvba6__shapVCSiCizRAF_9nyybpngbeVF4_RRF3_R7__pybarRi:
 nop
@@ -1618,7 +1618,7 @@
 b__MA7naqebvq14FgernzFcyvggre13OhssreGenpxreP2REXAF_2fcVAF_13TencuvpOhssreRRR:
 nop
 .text
-.globl b__MAFg3__114__fcyvg_ohssreVCA7naqebvq2fcVAF1_5SraprRRRAF_9nyybpngbeVF5_RRR10chfu_sebagRBF5_
+.weak b__MAFg3__114__fcyvg_ohssreVCA7naqebvq2fcVAF1_5SraprRRRAF_9nyybpngbeVF5_RRR10chfu_sebagRBF5_
 .type b__MAFg3__114__fcyvg_ohssreVCA7naqebvq2fcVAF1_5SraprRRRAF_9nyybpngbeVF5_RRR10chfu_sebagRBF5_,%function
 b__MAFg3__114__fcyvg_ohssreVCA7naqebvq2fcVAF1_5SraprRRRAF_9nyybpngbeVF5_RRR10chfu_sebagRBF5_:
 nop
@@ -1633,7 +1633,7 @@
 b__MGPA7naqebvq8uneqjner8tencuvpf11ohssredhrhr4I2_05hgvyf24O2UTencuvpOhssreCebqhpreR0_AF3_22VTencuvpOhssreCebqhpreR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVA7naqebvq2fcVAF2_7VOvaqreRRRAF3_VAF2_14FhesnprPbagebyRRRRRAF_22__habeqrerq_znc_unfureVF5_F8_AF2_28GenafnpgvbaPbzcyrgrqYvfgrare11VOvaqreUnfuRYo1RRRAF_21__habeqrerq_znc_rdhnyVF5_F8_AF_8rdhny_gbVF5_RRYo1RRRAF_9nyybpngbeVF8_RRR25__rzcynpr_havdhr_xrl_netfVF5_WEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXF5_RRRAFB_VWRRRRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF8_CiRRRRoRREXG_QcBG0_
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVA7naqebvq2fcVAF2_7VOvaqreRRRAF3_VAF2_14FhesnprPbagebyRRRRRAF_22__habeqrerq_znc_unfureVF5_F8_AF2_28GenafnpgvbaPbzcyrgrqYvfgrare11VOvaqreUnfuRYo1RRRAF_21__habeqrerq_znc_rdhnyVF5_F8_AF_8rdhny_gbVF5_RRYo1RRRAF_9nyybpngbeVF8_RRR25__rzcynpr_havdhr_xrl_netfVF5_WEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXF5_RRRAFB_VWRRRRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF8_CiRRRRoRREXG_QcBG0_
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVA7naqebvq2fcVAF2_7VOvaqreRRRAF3_VAF2_14FhesnprPbagebyRRRRRAF_22__habeqrerq_znc_unfureVF5_F8_AF2_28GenafnpgvbaPbzcyrgrqYvfgrare11VOvaqreUnfuRYo1RRRAF_21__habeqrerq_znc_rdhnyVF5_F8_AF_8rdhny_gbVF5_RRYo1RRRAF_9nyybpngbeVF8_RRR25__rzcynpr_havdhr_xrl_netfVF5_WEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXF5_RRRAFB_VWRRRRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF8_CiRRRRoRREXG_QcBG0_,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVA7naqebvq2fcVAF2_7VOvaqreRRRAF3_VAF2_14FhesnprPbagebyRRRRRAF_22__habeqrerq_znc_unfureVF5_F8_AF2_28GenafnpgvbaPbzcyrgrqYvfgrare11VOvaqreUnfuRYo1RRRAF_21__habeqrerq_znc_rdhnyVF5_F8_AF_8rdhny_gbVF5_RRYo1RRRAF_9nyybpngbeVF8_RRR25__rzcynpr_havdhr_xrl_netfVF5_WEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXF5_RRRAFB_VWRRRRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF8_CiRRRRoRREXG_QcBG0_:
 nop
@@ -1653,7 +1653,7 @@
 b__MA7naqebvq8uneqjner8tencuvpf11ohssredhrhr4I2_05hgvyf19O2UCebqhpreYvfgrareP1REXAF_2fcVAF_17VCebqhpreYvfgrareRRR:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_11PchPbafhzre14NpdhverqOhssreRR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq6IrpgbeVAF_11PchPbafhzre14NpdhverqOhssreRR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq6IrpgbeVAF_11PchPbafhzre14NpdhverqOhssreRR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq6IrpgbeVAF_11PchPbafhzre14NpdhverqOhssreRR12qb_pbafgehpgRCiz:
 nop
@@ -1683,7 +1683,7 @@
 b__MGIA7naqebvq14YnlreQrohtVasbR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_2fcVAF_22VTencuvpOhssreCebqhpreRRRR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq6IrpgbeVAF_2fcVAF_22VTencuvpOhssreCebqhpreRRRR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq6IrpgbeVAF_2fcVAF_22VTencuvpOhssreCebqhpreRRRR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq6IrpgbeVAF_2fcVAF_22VTencuvpOhssreCebqhpreRRRR12qb_pbafgehpgRCiz:
 nop
@@ -1708,7 +1708,7 @@
 b__MGPA7naqebvq24OcQvfcynlRiragPbaarpgvbaR0_AF_11OcVagresnprVAF_23VQvfcynlRiragPbaarpgvbaRRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_11QvfcynlVasbRR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_11QvfcynlVasbRR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_11QvfcynlVasbRR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_11QvfcynlVasbRR16qb_zbir_onpxjneqRCiCXiz:
 nop
@@ -1798,7 +1798,7 @@
 b__MGPA7naqebvq18OcPbafhzreYvfgrareR0_AF_16PbafhzreYvfgrareR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwAF_6irpgbeVuAF_9nyybpngbeVuRRRRRRAF_22__habeqrerq_znc_unfureVwF6_AF_4unfuVwRRYo1RRRAF_21__habeqrerq_znc_rdhnyVwF6_AF_8rdhny_gbVwRRYo1RRRAF3_VF6_RRR14__nffvta_zhygvVAF_21__unfu_pbafg_vgrengbeVCAF_11__unfu_abqrVF6_CiRRRRRRiG_FB_
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwAF_6irpgbeVuAF_9nyybpngbeVuRRRRRRAF_22__habeqrerq_znc_unfureVwF6_AF_4unfuVwRRYo1RRRAF_21__habeqrerq_znc_rdhnyVwF6_AF_8rdhny_gbVwRRYo1RRRAF3_VF6_RRR14__nffvta_zhygvVAF_21__unfu_pbafg_vgrengbeVCAF_11__unfu_abqrVF6_CiRRRRRRiG_FB_
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwAF_6irpgbeVuAF_9nyybpngbeVuRRRRRRAF_22__habeqrerq_znc_unfureVwF6_AF_4unfuVwRRYo1RRRAF_21__habeqrerq_znc_rdhnyVwF6_AF_8rdhny_gbVwRRYo1RRRAF3_VF6_RRR14__nffvta_zhygvVAF_21__unfu_pbafg_vgrengbeVCAF_11__unfu_abqrVF6_CiRRRRRRiG_FB_,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwAF_6irpgbeVuAF_9nyybpngbeVuRRRRRRAF_22__habeqrerq_znc_unfureVwF6_AF_4unfuVwRRYo1RRRAF_21__habeqrerq_znc_rdhnyVwF6_AF_8rdhny_gbVwRRYo1RRRAF3_VF6_RRR14__nffvta_zhygvVAF_21__unfu_pbafg_vgrengbeVCAF_11__unfu_abqrVF6_CiRRRRRRiG_FB_:
 nop
@@ -1808,7 +1808,7 @@
 b__MA7naqebvq7Fhesnpr19frgOhssrefGenafsbezRw:
 nop
 .text
-.globl b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
+.weak b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
 .type b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_,%function
 b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_:
 nop
@@ -1828,7 +1828,7 @@
 b__MA7naqebvq14FgernzFcyvggre7frgAnzrREXAF_7Fgevat8R:
 nop
 .text
-.globl b__MAFg3__15qrdhrVA7naqebvq2fcVAF1_5SraprRRRAF_9nyybpngbeVF4_RRR19__nqq_onpx_pncnpvglRi
+.weak b__MAFg3__15qrdhrVA7naqebvq2fcVAF1_5SraprRRRAF_9nyybpngbeVF4_RRR19__nqq_onpx_pncnpvglRi
 .type b__MAFg3__15qrdhrVA7naqebvq2fcVAF1_5SraprRRRAF_9nyybpngbeVF4_RRR19__nqq_onpx_pncnpvglRi,%function
 b__MAFg3__15qrdhrVA7naqebvq2fcVAF1_5SraprRRRAF_9nyybpngbeVF4_RRR19__nqq_onpx_pncnpvglRi:
 nop
@@ -1858,7 +1858,7 @@
 b__MA7naqebvq18OcPbafhzreYvfgrareQ0Ri:
 nop
 .data
-.globl b__MGPA7naqebvq23UcTencuvpOhssreCebqhpreR0_AF_22VTencuvpOhssreCebqhpreR
+.weak b__MGPA7naqebvq23UcTencuvpOhssreCebqhpreR0_AF_22VTencuvpOhssreCebqhpreR
 .type b__MGPA7naqebvq23UcTencuvpOhssreCebqhpreR0_AF_22VTencuvpOhssreCebqhpreR,%object
 b__MGPA7naqebvq23UcTencuvpOhssreCebqhpreR0_AF_22VTencuvpOhssreCebqhpreR:
 .space __SIZEOF_POINTER__
@@ -1918,17 +1918,17 @@
 b__MA7naqebvq18OhssreVgrzPbafhzreQ0Ri:
 nop
 .data
-.globl b__MGIA7naqebvq6Cnepry17SynggranoyrUrycreVAF_5SraprRRR
+.weak b__MGIA7naqebvq6Cnepry17SynggranoyrUrycreVAF_5SraprRRR
 .type b__MGIA7naqebvq6Cnepry17SynggranoyrUrycreVAF_5SraprRRR,%object
 b__MGIA7naqebvq6Cnepry17SynggranoyrUrycreVAF_5SraprRRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_12U2OPbairegreVAF1_8uneqjner8tencuvpf11ohssredhrhr4I2_017VCebqhpreYvfgrareRAF1_18OaCebqhpreYvfgrareRR8BovghnelRRRAF_9nyybpngbeVFP_RRR21__chfu_onpx_fybj_cnguVFP_RRiBG_
+.weak b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_12U2OPbairegreVAF1_8uneqjner8tencuvpf11ohssredhrhr4I2_017VCebqhpreYvfgrareRAF1_18OaCebqhpreYvfgrareRR8BovghnelRRRAF_9nyybpngbeVFP_RRR21__chfu_onpx_fybj_cnguVFP_RRiBG_
 .type b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_12U2OPbairegreVAF1_8uneqjner8tencuvpf11ohssredhrhr4I2_017VCebqhpreYvfgrareRAF1_18OaCebqhpreYvfgrareRR8BovghnelRRRAF_9nyybpngbeVFP_RRR21__chfu_onpx_fybj_cnguVFP_RRiBG_,%function
 b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_12U2OPbairegreVAF1_8uneqjner8tencuvpf11ohssredhrhr4I2_017VCebqhpreYvfgrareRAF1_18OaCebqhpreYvfgrareRR8BovghnelRRRAF_9nyybpngbeVFP_RRR21__chfu_onpx_fybj_cnguVFP_RRiBG_:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVyR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq6IrpgbeVyR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq6IrpgbeVyR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq6IrpgbeVyR12qb_pbafgehpgRCiz:
 nop
@@ -1973,7 +1973,7 @@
 b__MA7naqebvq13YnlreZrgnqngn5zretrREXF0_o:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVyA7naqebvq28GenafnpgvbaPbzcyrgrqYvfgrare19PnyyonpxGenafyngvbaRRRAF_22__habeqrerq_znc_unfureVyF5_AF_4unfuVyRRYo1RRRAF_21__habeqrerq_znc_rdhnyVyF5_AF_8rdhny_gbVyRRYo1RRRAF_9nyybpngbeVF5_RRR25__rzcynpr_havdhr_xrl_netfVyWEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXyRRRAFY_VWRRRRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF5_CiRRRRoRREXG_QcBG0_
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVyA7naqebvq28GenafnpgvbaPbzcyrgrqYvfgrare19PnyyonpxGenafyngvbaRRRAF_22__habeqrerq_znc_unfureVyF5_AF_4unfuVyRRYo1RRRAF_21__habeqrerq_znc_rdhnyVyF5_AF_8rdhny_gbVyRRYo1RRRAF_9nyybpngbeVF5_RRR25__rzcynpr_havdhr_xrl_netfVyWEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXyRRRAFY_VWRRRRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF5_CiRRRRoRREXG_QcBG0_
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVyA7naqebvq28GenafnpgvbaPbzcyrgrqYvfgrare19PnyyonpxGenafyngvbaRRRAF_22__habeqrerq_znc_unfureVyF5_AF_4unfuVyRRYo1RRRAF_21__habeqrerq_znc_rdhnyVyF5_AF_8rdhny_gbVyRRYo1RRRAF_9nyybpngbeVF5_RRR25__rzcynpr_havdhr_xrl_netfVyWEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXyRRRAFY_VWRRRRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF5_CiRRRRoRREXG_QcBG0_,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVyA7naqebvq28GenafnpgvbaPbzcyrgrqYvfgrare19PnyyonpxGenafyngvbaRRRAF_22__habeqrerq_znc_unfureVyF5_AF_4unfuVyRRYo1RRRAF_21__habeqrerq_znc_rdhnyVyF5_AF_8rdhny_gbVyRRYo1RRRAF_9nyybpngbeVF5_RRR25__rzcynpr_havdhr_xrl_netfVyWEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXyRRRAFY_VWRRRRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF5_CiRRRRoRREXG_QcBG0_:
 nop
@@ -1993,12 +1993,12 @@
 b__MGIA7naqebvq18OhssreVgrzPbafhzreR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGPA7naqebvq11PchPbafhzreR0_AF_12PbafhzreOnfrR
+.weak b__MGPA7naqebvq11PchPbafhzreR0_AF_12PbafhzreOnfrR
 .type b__MGPA7naqebvq11PchPbafhzreR0_AF_12PbafhzreOnfrR,%object
 b__MGPA7naqebvq11PchPbafhzreR0_AF_12PbafhzreOnfrR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_13PbzcbfreFgngrRR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_13PbzcbfreFgngrRR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_13PbzcbfreFgngrRR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_13PbzcbfreFgngrRR15qb_zbir_sbejneqRCiCXiz:
 nop
@@ -2028,7 +2028,7 @@
 b__MA7naqebvq17OhssreUhoCebqhpre19frgTrarengvbaAhzoreRw:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_8uneqjner8tencuvpf6pbzzba4I1_29PbybeZbqrRR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_8uneqjner8tencuvpf6pbzzba4I1_29PbybeZbqrRR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_8uneqjner8tencuvpf6pbzzba4I1_29PbybeZbqrRR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_8uneqjner8tencuvpf6pbzzba4I1_29PbybeZbqrRR8qb_fcyngRCiCXiz:
 nop
@@ -2058,7 +2058,7 @@
 b__MA7naqebvq7FhesnprQ2Ri:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVA7naqebvq2fcVAF2_14FhesnprPbagebyRRRAF2_13PbzcbfreFgngrRRRAF_22__habeqrerq_znc_unfureVF5_F7_AF2_21FhesnprPbzcbfrePyvrag6FPUnfuRYo1RRRAF_21__habeqrerq_znc_rdhnyVF5_F7_AF_8rdhny_gbVF5_RRYo1RRRAF_9nyybpngbeVF7_RRRQ2Ri
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVA7naqebvq2fcVAF2_14FhesnprPbagebyRRRAF2_13PbzcbfreFgngrRRRAF_22__habeqrerq_znc_unfureVF5_F7_AF2_21FhesnprPbzcbfrePyvrag6FPUnfuRYo1RRRAF_21__habeqrerq_znc_rdhnyVF5_F7_AF_8rdhny_gbVF5_RRYo1RRRAF_9nyybpngbeVF7_RRRQ2Ri
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVA7naqebvq2fcVAF2_14FhesnprPbagebyRRRAF2_13PbzcbfreFgngrRRRAF_22__habeqrerq_znc_unfureVF5_F7_AF2_21FhesnprPbzcbfrePyvrag6FPUnfuRYo1RRRAF_21__habeqrerq_znc_rdhnyVF5_F7_AF_8rdhny_gbVF5_RRYo1RRRAF_9nyybpngbeVF7_RRRQ2Ri,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVA7naqebvq2fcVAF2_14FhesnprPbagebyRRRAF2_13PbzcbfreFgngrRRRAF_22__habeqrerq_znc_unfureVF5_F7_AF2_21FhesnprPbzcbfrePyvrag6FPUnfuRYo1RRRAF_21__habeqrerq_znc_rdhnyVF5_F7_AF_8rdhny_gbVF5_RRYo1RRRAF_9nyybpngbeVF7_RRRQ2Ri:
 nop
@@ -2078,7 +2078,7 @@
 b__MAX7naqebvq23VQvfcynlRiragPbaarpgvba22trgVagresnprQrfpevcgbeRi:
 nop
 .data
-.globl b__MGIA7naqebvq6IrpgbeVAF_11QvfcynlVasbRRR
+.weak b__MGIA7naqebvq6IrpgbeVAF_11QvfcynlVasbRRR
 .type b__MGIA7naqebvq6IrpgbeVAF_11QvfcynlVasbRRR,%object
 b__MGIA7naqebvq6IrpgbeVAF_11QvfcynlVasbRRR:
 .space __SIZEOF_POINTER__
@@ -2118,7 +2118,7 @@
 b__MA7naqebvq10TYPbafhzreP2REXAF_2fcVAF_22VTencuvpOhssrePbafhzreRRRwwoo:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq19VachgJvaqbjPbzznaqf25GenafsreGbhpuSbphfPbzznaqRAF_9nyybpngbeVF3_RRR6vafregVAF_13zbir_vgrengbeVAF_11__jenc_vgreVCXF3_RRRRRRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF3_AF_15vgrengbe_genvgfVFS_R9ersreraprRRR5inyhrRAF9_VCF3_RRR4glcrRFP_FS_FS_
+.weak b__MAFg3__16irpgbeVA7naqebvq19VachgJvaqbjPbzznaqf25GenafsreGbhpuSbphfPbzznaqRAF_9nyybpngbeVF3_RRR6vafregVAF_13zbir_vgrengbeVAF_11__jenc_vgreVCXF3_RRRRRRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF3_AF_15vgrengbe_genvgfVFS_R9ersreraprRRR5inyhrRAF9_VCF3_RRR4glcrRFP_FS_FS_
 .type b__MAFg3__16irpgbeVA7naqebvq19VachgJvaqbjPbzznaqf25GenafsreGbhpuSbphfPbzznaqRAF_9nyybpngbeVF3_RRR6vafregVAF_13zbir_vgrengbeVAF_11__jenc_vgreVCXF3_RRRRRRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF3_AF_15vgrengbe_genvgfVFS_R9ersreraprRRR5inyhrRAF9_VCF3_RRR4glcrRFP_FS_FS_,%function
 b__MAFg3__16irpgbeVA7naqebvq19VachgJvaqbjPbzznaqf25GenafsreGbhpuSbphfPbzznaqRAF_9nyybpngbeVF3_RRR6vafregVAF_13zbir_vgrengbeVAF_11__jenc_vgreVCXF3_RRRRRRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF3_AF_15vgrengbe_genvgfVFS_R9ersreraprRRR5inyhrRAF9_VCF3_RRR4glcrRFP_FS_FS_:
 nop
@@ -2128,7 +2128,7 @@
 b__MA7naqebvq7Fhesnpr18trgSenzrGvzrfgnzcfRzCyF1_F1_F1_F1_F1_F1_F1_F1_:
 nop
 .text
-.globl b__MA7naqebvq9FvatyrgbaVAF_15PbzcbfreFreivprRRP2Ri
+.weak b__MA7naqebvq9FvatyrgbaVAF_15PbzcbfreFreivprRRP2Ri
 .type b__MA7naqebvq9FvatyrgbaVAF_15PbzcbfreFreivprRRP2Ri,%function
 b__MA7naqebvq9FvatyrgbaVAF_15PbzcbfreFreivprRRP2Ri:
 nop
@@ -2173,7 +2173,7 @@
 b__MA7naqebvq29VGenafnpgvbaPbzcyrgrqYvfgrare14frgQrsnhygVzcyRAFg3__110havdhr_cgeVF0_AF1_14qrsnhyg_qryrgrVF0_RRRR:
 nop
 .text
-.globl b__MA7naqebvq9FvatyrgbaVAF_11OhssrePnpurRRP2Ri
+.weak b__MA7naqebvq9FvatyrgbaVAF_11OhssrePnpurRRP2Ri
 .type b__MA7naqebvq9FvatyrgbaVAF_11OhssrePnpurRRP2Ri,%function
 b__MA7naqebvq9FvatyrgbaVAF_11OhssrePnpurRRP2Ri:
 nop
@@ -2193,7 +2193,7 @@
 b__MA7naqebvq10TYPbafhzre14trgSenzrAhzoreRi:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_13PbzcbfreFgngrRR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq6IrpgbeVAF_13PbzcbfreFgngrRR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq6IrpgbeVAF_13PbzcbfreFgngrRR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq6IrpgbeVAF_13PbzcbfreFgngrRR10qb_qrfgeblRCiz:
 nop
@@ -2208,7 +2208,7 @@
 b__MA7naqebvq17OhssreUhoPbafhzre13npdhverOhssreRCAF_10OhssreVgrzRyz:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVyAF_4unfuVyRRAF_8rdhny_gbVyRRAF_9nyybpngbeVyRRR25__rzcynpr_havdhr_xrl_netfVyWEyRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVyCiRRRRoRREXG_QcBG0_
+.weak b__MAFg3__112__unfu_gnoyrVyAF_4unfuVyRRAF_8rdhny_gbVyRRAF_9nyybpngbeVyRRR25__rzcynpr_havdhr_xrl_netfVyWEyRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVyCiRRRRoRREXG_QcBG0_
 .type b__MAFg3__112__unfu_gnoyrVyAF_4unfuVyRRAF_8rdhny_gbVyRRAF_9nyybpngbeVyRRR25__rzcynpr_havdhr_xrl_netfVyWEyRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVyCiRRRRoRREXG_QcBG0_,%function
 b__MAFg3__112__unfu_gnoyrVyAF_4unfuVyRRAF_8rdhny_gbVyRRAF_9nyybpngbeVyRRR25__rzcynpr_havdhr_xrl_netfVyWEyRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVyCiRRRRoRREXG_QcBG0_:
 nop
@@ -2218,7 +2218,7 @@
 b__MA7naqebvq8uneqjner8tencuvpf11ohssredhrhr4I2_05hgvyf19U2OCebqhpreYvfgrareP2REXAF_2fcVAF3_17VCebqhpreYvfgrareRRR:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVA7naqebvq2fcVAF1_14FhesnprPbagebyRRRAF1_21FhesnprPbzcbfrePyvrag6FPUnfuRAF_8rdhny_gbVF4_RRAF_9nyybpngbeVF4_RRR8__erunfuRz
+.weak b__MAFg3__112__unfu_gnoyrVA7naqebvq2fcVAF1_14FhesnprPbagebyRRRAF1_21FhesnprPbzcbfrePyvrag6FPUnfuRAF_8rdhny_gbVF4_RRAF_9nyybpngbeVF4_RRR8__erunfuRz
 .type b__MAFg3__112__unfu_gnoyrVA7naqebvq2fcVAF1_14FhesnprPbagebyRRRAF1_21FhesnprPbzcbfrePyvrag6FPUnfuRAF_8rdhny_gbVF4_RRAF_9nyybpngbeVF4_RRR8__erunfuRz,%function
 b__MAFg3__112__unfu_gnoyrVA7naqebvq2fcVAF1_14FhesnprPbagebyRRRAF1_21FhesnprPbzcbfrePyvrag6FPUnfuRAF_8rdhny_gbVF4_RRAF_9nyybpngbeVF4_RRR8__erunfuRz:
 nop
@@ -2283,12 +2283,12 @@
 b__MA7naqebvq21FhesnprPbzcbfrePyvrag18trgNpgvirPbybeZbqrREXAF_2fcVAF_7VOvaqreRRR:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVA7naqebvq2fcVAF2_14FhesnprPbagebyRRRAF2_13PbzcbfreFgngrRRRAF_22__habeqrerq_znc_unfureVF5_F7_AF2_21FhesnprPbzcbfrePyvrag6FPUnfuRYo1RRRAF_21__habeqrerq_znc_rdhnyVF5_F7_AF_8rdhny_gbVF5_RRYo1RRRAF_9nyybpngbeVF7_RRR8__erunfuRz
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVA7naqebvq2fcVAF2_14FhesnprPbagebyRRRAF2_13PbzcbfreFgngrRRRAF_22__habeqrerq_znc_unfureVF5_F7_AF2_21FhesnprPbzcbfrePyvrag6FPUnfuRYo1RRRAF_21__habeqrerq_znc_rdhnyVF5_F7_AF_8rdhny_gbVF5_RRYo1RRRAF_9nyybpngbeVF7_RRR8__erunfuRz
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVA7naqebvq2fcVAF2_14FhesnprPbagebyRRRAF2_13PbzcbfreFgngrRRRAF_22__habeqrerq_znc_unfureVF5_F7_AF2_21FhesnprPbzcbfrePyvrag6FPUnfuRYo1RRRAF_21__habeqrerq_znc_rdhnyVF5_F7_AF_8rdhny_gbVF5_RRYo1RRRAF_9nyybpngbeVF7_RRR8__erunfuRz,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVA7naqebvq2fcVAF2_14FhesnprPbagebyRRRAF2_13PbzcbfreFgngrRRRAF_22__habeqrerq_znc_unfureVF5_F7_AF2_21FhesnprPbzcbfrePyvrag6FPUnfuRYo1RRRAF_21__habeqrerq_znc_rdhnyVF5_F7_AF_8rdhny_gbVF5_RRYo1RRRAF_9nyybpngbeVF7_RRR8__erunfuRz:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVA7naqebvq2fcVAF2_29VGenafnpgvbaPbzcyrgrqYvfgrareRRRAF2_21FhesnprPbzcbfrePyvrag12PnyyonpxVasbRRRAF_22__habeqrerq_znc_unfureVF5_F8_AF6_7GPYUnfuRYo1RRRAF_21__habeqrerq_znc_rdhnyVF5_F8_AF_8rdhny_gbVF5_RRYo1RRRAF_9nyybpngbeVF8_RRR25__rzcynpr_havdhr_xrl_netfVF5_WEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXF5_RRRAFA_VWRRRRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF8_CiRRRRoRREXG_QcBG0_
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVA7naqebvq2fcVAF2_29VGenafnpgvbaPbzcyrgrqYvfgrareRRRAF2_21FhesnprPbzcbfrePyvrag12PnyyonpxVasbRRRAF_22__habeqrerq_znc_unfureVF5_F8_AF6_7GPYUnfuRYo1RRRAF_21__habeqrerq_znc_rdhnyVF5_F8_AF_8rdhny_gbVF5_RRYo1RRRAF_9nyybpngbeVF8_RRR25__rzcynpr_havdhr_xrl_netfVF5_WEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXF5_RRRAFA_VWRRRRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF8_CiRRRRoRREXG_QcBG0_
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVA7naqebvq2fcVAF2_29VGenafnpgvbaPbzcyrgrqYvfgrareRRRAF2_21FhesnprPbzcbfrePyvrag12PnyyonpxVasbRRRAF_22__habeqrerq_znc_unfureVF5_F8_AF6_7GPYUnfuRYo1RRRAF_21__habeqrerq_znc_rdhnyVF5_F8_AF_8rdhny_gbVF5_RRYo1RRRAF_9nyybpngbeVF8_RRR25__rzcynpr_havdhr_xrl_netfVF5_WEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXF5_RRRAFA_VWRRRRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF8_CiRRRRoRREXG_QcBG0_,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVA7naqebvq2fcVAF2_29VGenafnpgvbaPbzcyrgrqYvfgrareRRRAF2_21FhesnprPbzcbfrePyvrag12PnyyonpxVasbRRRAF_22__habeqrerq_znc_unfureVF5_F8_AF6_7GPYUnfuRYo1RRRAF_21__habeqrerq_znc_rdhnyVF5_F8_AF_8rdhny_gbVF5_RRYo1RRRAF_9nyybpngbeVF8_RRR25__rzcynpr_havdhr_xrl_netfVF5_WEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXF5_RRRAFA_VWRRRRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF8_CiRRRRoRREXG_QcBG0_:
 nop
@@ -2343,7 +2343,7 @@
 b__MA7naqebvq21FhesnprPbzcbfrePyvrag15abgvslCbjreUvagRv:
 nop
 .text
-.globl b__MA7naqebvq12U2OPbairegreVAF_8uneqjner8tencuvpf11ohssredhrhr4I2_017VCebqhpreYvfgrareRAF_18OaCebqhpreYvfgrareRR10baGenafnpgRwEXAF_6CnepryRCF8_w
+.weak b__MA7naqebvq12U2OPbairegreVAF_8uneqjner8tencuvpf11ohssredhrhr4I2_017VCebqhpreYvfgrareRAF_18OaCebqhpreYvfgrareRR10baGenafnpgRwEXAF_6CnepryRCF8_w
 .type b__MA7naqebvq12U2OPbairegreVAF_8uneqjner8tencuvpf11ohssredhrhr4I2_017VCebqhpreYvfgrareRAF_18OaCebqhpreYvfgrareRR10baGenafnpgRwEXAF_6CnepryRCF8_w,%function
 b__MA7naqebvq12U2OPbairegreVAF_8uneqjner8tencuvpf11ohssredhrhr4I2_017VCebqhpreYvfgrareRAF_18OaCebqhpreYvfgrareRR10baGenafnpgRwEXAF_6CnepryRCF8_w:
 nop
@@ -2373,7 +2373,7 @@
 b__MGPA7naqebvq18OaPbafhzreYvfgrareR0_AF_11OaVagresnprVAF_17VPbafhzreYvfgrareRRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq11OaVagresnprVAF_17VPbafhzreYvfgrareRR10baNfOvaqreRi
+.weak b__MA7naqebvq11OaVagresnprVAF_17VPbafhzreYvfgrareRR10baNfOvaqreRi
 .type b__MA7naqebvq11OaVagresnprVAF_17VPbafhzreYvfgrareRR10baNfOvaqreRi,%function
 b__MA7naqebvq11OaVagresnprVAF_17VPbafhzreYvfgrareRR10baNfOvaqreRi:
 nop
@@ -2393,7 +2393,7 @@
 b__MA7naqebvq16VFhesnprPbzcbfreQ1Ri:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_2fcVAF_22VTencuvpOhssreCebqhpreRRRR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_2fcVAF_22VTencuvpOhssreCebqhpreRRRR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_2fcVAF_22VTencuvpOhssreCebqhpreRRRR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_2fcVAF_22VTencuvpOhssreCebqhpreRRRR7qb_pbclRCiCXiz:
 nop
@@ -2438,7 +2438,7 @@
 b__MGPA7naqebvq8uneqjner8tencuvpf11ohssredhrhr4I1_05hgvyf24U2OTencuvpOhssreCebqhpreR8_AF_7OOvaqreR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRyRRAF_22__habeqrerq_znc_unfureVF7_F8_AF_4unfuVF7_RRYo1RRRAF_21__habeqrerq_znc_rdhnyVF7_F8_AF_8rdhny_gbVF7_RRYo1RRRAF5_VF8_RRR6erunfuRz
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRyRRAF_22__habeqrerq_znc_unfureVF7_F8_AF_4unfuVF7_RRYo1RRRAF_21__habeqrerq_znc_rdhnyVF7_F8_AF_8rdhny_gbVF7_RRYo1RRRAF5_VF8_RRR6erunfuRz
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRyRRAF_22__habeqrerq_znc_unfureVF7_F8_AF_4unfuVF7_RRYo1RRRAF_21__habeqrerq_znc_rdhnyVF7_F8_AF_8rdhny_gbVF7_RRYo1RRRAF5_VF8_RRR6erunfuRz,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRyRRAF_22__habeqrerq_znc_unfureVF7_F8_AF_4unfuVF7_RRYo1RRRAF_21__habeqrerq_znc_rdhnyVF7_F8_AF_8rdhny_gbVF7_RRYo1RRRAF5_VF8_RRR6erunfuRz:
 nop
@@ -2458,7 +2458,7 @@
 b__MA7naqebvq19OhssreDhrhrPbafhzre7pbaarpgREXAF_2fcVAF_17VPbafhzreYvfgrareRRRo:
 nop
 .text
-.globl b__MAFg3__114__fcyvg_ohssreVCA7naqebvq16BpphcnaplGenpxre7FrtzragRAF_9nyybpngbeVF4_RRR10chfu_sebagREXF4_
+.weak b__MAFg3__114__fcyvg_ohssreVCA7naqebvq16BpphcnaplGenpxre7FrtzragRAF_9nyybpngbeVF4_RRR10chfu_sebagREXF4_
 .type b__MAFg3__114__fcyvg_ohssreVCA7naqebvq16BpphcnaplGenpxre7FrtzragRAF_9nyybpngbeVF4_RRR10chfu_sebagREXF4_,%function
 b__MAFg3__114__fcyvg_ohssreVCA7naqebvq16BpphcnaplGenpxre7FrtzragRAF_9nyybpngbeVF4_RRR10chfu_sebagREXF4_:
 nop
@@ -2468,7 +2468,7 @@
 b__MA7naqebvq8uneqjner8tencuvpf11ohssredhrhr4I2_05hgvyf24O2UTencuvpOhssreCebqhpre16qrgnpuArkgOhssreRAFg3__18shapgvbaVSiAF3_6FgnghfREXAF1_6pbzzba4I1_214UneqjnerOhssreREXAF0_11uvqy_unaqyrRRRR:
 nop
 .text
-.globl b__MA7naqebvq2fcVAF_17VCebqhpreYvfgrareRRnFRBF2_
+.weak b__MA7naqebvq2fcVAF_17VCebqhpreYvfgrareRRnFRBF2_
 .type b__MA7naqebvq2fcVAF_17VCebqhpreYvfgrareRRnFRBF2_,%function
 b__MA7naqebvq2fcVAF_17VCebqhpreYvfgrareRRnFRBF2_:
 nop
@@ -2478,12 +2478,12 @@
 b__MA7naqebvq10pbairefvba16trgSynggrarqFvmrREXAF_8uneqjner8tencuvpf11ohssredhrhr4I1_022VTencuvpOhssreCebqhpre22SenzrRiragUvfgbelQrygnR:
 nop
 .text
-.globl b__MA7naqebvq12U2OPbairegreVAF_8uneqjner8tencuvpf11ohssredhrhr4I2_017VCebqhpreYvfgrareRAF_18OaCebqhpreYvfgrareRR13hayvaxGbQrnguREXAF_2jcVAF_7VOvaqre14QrnguErpvcvragRRRCiwCFO_
+.weak b__MA7naqebvq12U2OPbairegreVAF_8uneqjner8tencuvpf11ohssredhrhr4I2_017VCebqhpreYvfgrareRAF_18OaCebqhpreYvfgrareRR13hayvaxGbQrnguREXAF_2jcVAF_7VOvaqre14QrnguErpvcvragRRRCiwCFO_
 .type b__MA7naqebvq12U2OPbairegreVAF_8uneqjner8tencuvpf11ohssredhrhr4I2_017VCebqhpreYvfgrareRAF_18OaCebqhpreYvfgrareRR13hayvaxGbQrnguREXAF_2jcVAF_7VOvaqre14QrnguErpvcvragRRRCiwCFO_,%function
 b__MA7naqebvq12U2OPbairegreVAF_8uneqjner8tencuvpf11ohssredhrhr4I2_017VCebqhpreYvfgrareRAF_18OaCebqhpreYvfgrareRR13hayvaxGbQrnguREXAF_2jcVAF_7VOvaqre14QrnguErpvcvragRRRCiwCFO_:
 nop
 .text
-.globl b__MAFg3__16irpgbeVyAF_9nyybpngbeVyRRRP2REXF3_
+.weak b__MAFg3__16irpgbeVyAF_9nyybpngbeVyRRRP2REXF3_
 .type b__MAFg3__16irpgbeVyAF_9nyybpngbeVyRRRP2REXF3_,%function
 b__MAFg3__16irpgbeVyAF_9nyybpngbeVyRRRP2REXF3_:
 nop
@@ -2493,7 +2493,7 @@
 b__MA7naqebvq21FhesnprPbzcbfrePyvrag26qbHapnpurOhssreGenafnpgvbaRz:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVA7naqebvq2fcVAF2_29VGenafnpgvbaPbzcyrgrqYvfgrareRRRAF2_21FhesnprPbzcbfrePyvrag12PnyyonpxVasbRRRAF_22__habeqrerq_znc_unfureVF5_F8_AF6_7GPYUnfuRYo1RRRAF_21__habeqrerq_znc_rdhnyVF5_F8_AF_8rdhny_gbVF5_RRYo1RRRAF_9nyybpngbeVF8_RRR25__rzcynpr_havdhr_xrl_netfVF5_WEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWBF5_RRRAFA_VWRRRRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF8_CiRRRRoRREXG_QcBG0_
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVA7naqebvq2fcVAF2_29VGenafnpgvbaPbzcyrgrqYvfgrareRRRAF2_21FhesnprPbzcbfrePyvrag12PnyyonpxVasbRRRAF_22__habeqrerq_znc_unfureVF5_F8_AF6_7GPYUnfuRYo1RRRAF_21__habeqrerq_znc_rdhnyVF5_F8_AF_8rdhny_gbVF5_RRYo1RRRAF_9nyybpngbeVF8_RRR25__rzcynpr_havdhr_xrl_netfVF5_WEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWBF5_RRRAFA_VWRRRRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF8_CiRRRRoRREXG_QcBG0_
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVA7naqebvq2fcVAF2_29VGenafnpgvbaPbzcyrgrqYvfgrareRRRAF2_21FhesnprPbzcbfrePyvrag12PnyyonpxVasbRRRAF_22__habeqrerq_znc_unfureVF5_F8_AF6_7GPYUnfuRYo1RRRAF_21__habeqrerq_znc_rdhnyVF5_F8_AF_8rdhny_gbVF5_RRYo1RRRAF_9nyybpngbeVF8_RRR25__rzcynpr_havdhr_xrl_netfVF5_WEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWBF5_RRRAFA_VWRRRRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF8_CiRRRRoRREXG_QcBG0_,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVA7naqebvq2fcVAF2_29VGenafnpgvbaPbzcyrgrqYvfgrareRRRAF2_21FhesnprPbzcbfrePyvrag12PnyyonpxVasbRRRAF_22__habeqrerq_znc_unfureVF5_F8_AF6_7GPYUnfuRYo1RRRAF_21__habeqrerq_znc_rdhnyVF5_F8_AF_8rdhny_gbVF5_RRYo1RRRAF_9nyybpngbeVF8_RRR25__rzcynpr_havdhr_xrl_netfVF5_WEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWBF5_RRRAFA_VWRRRRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF8_CiRRRRoRREXG_QcBG0_:
 nop
@@ -2513,17 +2513,17 @@
 b__MA7naqebvq10TYPbafhzre19npdhverOhssreYbpxrqRCAF_10OhssreVgrzRyz:
 nop
 .text
-.globl b__MAFg3__114__guernq_cebklVAF_5ghcyrVWAF_10havdhr_cgeVAF_15__guernq_fgehpgRAF_14qrsnhyg_qryrgrVF3_RRRRZA7naqebvq12SraprZbavgbeRSiiRCF8_RRRRRCiFQ_
+.weak b__MAFg3__114__guernq_cebklVAF_5ghcyrVWAF_10havdhr_cgeVAF_15__guernq_fgehpgRAF_14qrsnhyg_qryrgrVF3_RRRRZA7naqebvq12SraprZbavgbeRSiiRCF8_RRRRRCiFQ_
 .type b__MAFg3__114__guernq_cebklVAF_5ghcyrVWAF_10havdhr_cgeVAF_15__guernq_fgehpgRAF_14qrsnhyg_qryrgrVF3_RRRRZA7naqebvq12SraprZbavgbeRSiiRCF8_RRRRRCiFQ_,%function
 b__MAFg3__114__guernq_cebklVAF_5ghcyrVWAF_10havdhr_cgeVAF_15__guernq_fgehpgRAF_14qrsnhyg_qryrgrVF3_RRRRZA7naqebvq12SraprZbavgbeRSiiRCF8_RRRRRCiFQ_:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRyRRAF_22__habeqrerq_znc_unfureVF7_F8_AF_4unfuVF7_RRYo1RRRAF_21__habeqrerq_znc_rdhnyVF7_F8_AF_8rdhny_gbVF7_RRYo1RRRAF5_VF8_RRR8__erunfuRz
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRyRRAF_22__habeqrerq_znc_unfureVF7_F8_AF_4unfuVF7_RRYo1RRRAF_21__habeqrerq_znc_rdhnyVF7_F8_AF_8rdhny_gbVF7_RRYo1RRRAF5_VF8_RRR8__erunfuRz
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRyRRAF_22__habeqrerq_znc_unfureVF7_F8_AF_4unfuVF7_RRYo1RRRAF_21__habeqrerq_znc_rdhnyVF7_F8_AF_8rdhny_gbVF7_RRYo1RRRAF5_VF8_RRR8__erunfuRz,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRyRRAF_22__habeqrerq_znc_unfureVF7_F8_AF_4unfuVF7_RRYo1RRRAF_21__habeqrerq_znc_rdhnyVF7_F8_AF_8rdhny_gbVF7_RRYo1RRRAF5_VF8_RRR8__erunfuRz:
 nop
 .text
-.globl b__MA7naqebvq11OaVagresnprVAF_23VQvfcynlRiragPbaarpgvbaRR10baNfOvaqreRi
+.weak b__MA7naqebvq11OaVagresnprVAF_23VQvfcynlRiragPbaarpgvbaRR10baNfOvaqreRi
 .type b__MA7naqebvq11OaVagresnprVAF_23VQvfcynlRiragPbaarpgvbaRR10baNfOvaqreRi,%function
 b__MA7naqebvq11OaVagresnprVAF_23VQvfcynlRiragPbaarpgvbaRR10baNfOvaqreRi:
 nop
@@ -2548,7 +2548,7 @@
 b__MAX7naqebvq19VachgJvaqbjPbzznaqf5jevgrREAF_6CnepryR:
 nop
 .text
-.globl b__MA7naqebvq9FvatyrgbaVAF_21QrsnhygPbzcbfrePyvragRRP1Ri
+.weak b__MA7naqebvq9FvatyrgbaVAF_21QrsnhygPbzcbfrePyvragRRP1Ri
 .type b__MA7naqebvq9FvatyrgbaVAF_21QrsnhygPbzcbfrePyvragRRP1Ri,%function
 b__MA7naqebvq9FvatyrgbaVAF_21QrsnhygPbzcbfrePyvragRRP1Ri:
 nop
@@ -2568,7 +2568,7 @@
 b__MAX7naqebvq16SenzrRiragfQrygn7synggraRECiEzECvF3_:
 nop
 .text
-.globl b__MA7naqebvq2fcVAF_5SraprRRnFRCF1_
+.weak b__MA7naqebvq2fcVAF_5SraprRRnFRCF1_
 .type b__MA7naqebvq2fcVAF_5SraprRRnFRCF1_,%function
 b__MA7naqebvq2fcVAF_5SraprRRnFRCF1_:
 nop
@@ -2583,7 +2583,7 @@
 b__MA7naqebvq13YnlreZrgnqngnP1REXF0_:
 nop
 .text
-.globl b__MA7naqebvq9FvatyrgbaVAF_12FlapSrngherfRRQ2Ri
+.weak b__MA7naqebvq9FvatyrgbaVAF_12FlapSrngherfRRQ2Ri
 .type b__MA7naqebvq9FvatyrgbaVAF_12FlapSrngherfRRQ2Ri,%function
 b__MA7naqebvq9FvatyrgbaVAF_12FlapSrngherfRRQ2Ri:
 nop
@@ -2618,7 +2618,7 @@
 b__MAX7naqebvq22VTencuvpOhssreCebqhpre16DhrhrOhssreVachg10trgSqPbhagRi:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_8uneqjner8tencuvpf6pbzzba4I1_29PbybeZbqrRR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq6IrpgbeVAF_8uneqjner8tencuvpf6pbzzba4I1_29PbybeZbqrRR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq6IrpgbeVAF_8uneqjner8tencuvpf6pbzzba4I1_29PbybeZbqrRR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq6IrpgbeVAF_8uneqjner8tencuvpf6pbzzba4I1_29PbybeZbqrRR12qb_pbafgehpgRCiz:
 nop
@@ -2698,7 +2698,7 @@
 b__MA7naqebvq12QvfcynlFgngr5zretrREXF0_:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_12QvfcynlFgngrRR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_12QvfcynlFgngrRR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_12QvfcynlFgngrRR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_12QvfcynlFgngrRR16qb_zbir_onpxjneqRCiCXiz:
 nop
@@ -2728,7 +2728,7 @@
 b__MA7naqebvq7Fhesnpr17frgQrdhrhrGvzrbhgRy:
 nop
 .data
-.globl b__MGIAFg3__120__funerq_cge_cbvagreVCA7naqebvq3qie13CebqhpreDhrhrRAF_14qrsnhyg_qryrgrVF3_RRAF_9nyybpngbeVF3_RRRR
+.weak b__MGIAFg3__120__funerq_cge_cbvagreVCA7naqebvq3qie13CebqhpreDhrhrRAF_14qrsnhyg_qryrgrVF3_RRAF_9nyybpngbeVF3_RRRR
 .type b__MGIAFg3__120__funerq_cge_cbvagreVCA7naqebvq3qie13CebqhpreDhrhrRAF_14qrsnhyg_qryrgrVF3_RRAF_9nyybpngbeVF3_RRRR,%object
 b__MGIAFg3__120__funerq_cge_cbvagreVCA7naqebvq3qie13CebqhpreDhrhrRAF_14qrsnhyg_qryrgrVF3_RRAF_9nyybpngbeVF3_RRRR:
 .space __SIZEOF_POINTER__
@@ -2753,7 +2753,7 @@
 b__MAX7naqebvq17OhssreUhoPbafhzre9qhzcFgngrREXAF_7Fgevat8RCF1_:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwAF_6irpgbeVuAF_9nyybpngbeVuRRRRRRAF_22__habeqrerq_znc_unfureVwF6_AF_4unfuVwRRYo1RRRAF_21__habeqrerq_znc_rdhnyVwF6_AF_8rdhny_gbVwRRYo1RRRAF3_VF6_RRR25__rzcynpr_havdhr_xrl_netfVwWEXAF_4cnveVXwF5_RRRRRAFV_VAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF6_CiRRRRoRREXG_QcBG0_
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwAF_6irpgbeVuAF_9nyybpngbeVuRRRRRRAF_22__habeqrerq_znc_unfureVwF6_AF_4unfuVwRRYo1RRRAF_21__habeqrerq_znc_rdhnyVwF6_AF_8rdhny_gbVwRRYo1RRRAF3_VF6_RRR25__rzcynpr_havdhr_xrl_netfVwWEXAF_4cnveVXwF5_RRRRRAFV_VAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF6_CiRRRRoRREXG_QcBG0_
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwAF_6irpgbeVuAF_9nyybpngbeVuRRRRRRAF_22__habeqrerq_znc_unfureVwF6_AF_4unfuVwRRYo1RRRAF_21__habeqrerq_znc_rdhnyVwF6_AF_8rdhny_gbVwRRYo1RRRAF3_VF6_RRR25__rzcynpr_havdhr_xrl_netfVwWEXAF_4cnveVXwF5_RRRRRAFV_VAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF6_CiRRRRoRREXG_QcBG0_,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwAF_6irpgbeVuAF_9nyybpngbeVuRRRRRRAF_22__habeqrerq_znc_unfureVwF6_AF_4unfuVwRRYo1RRRAF_21__habeqrerq_znc_rdhnyVwF6_AF_8rdhny_gbVwRRYo1RRRAF3_VF6_RRR25__rzcynpr_havdhr_xrl_netfVwWEXAF_4cnveVXwF5_RRRRRAFV_VAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF6_CiRRRRoRREXG_QcBG0_:
 nop
@@ -2798,7 +2798,7 @@
 b__MAX7naqebvq7Fhesnpr25trgVTencuvpOhssreCebqhpreRi:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVzAF_2fcVAF_14FgernzFcyvggre13OhssreGenpxreRRRRRR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVzAF_2fcVAF_14FgernzFcyvggre13OhssreGenpxreRRRRRR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVzAF_2fcVAF_14FgernzFcyvggre13OhssreGenpxreRRRRRR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVzAF_2fcVAF_14FgernzFcyvggre13OhssreGenpxreRRRRRR8qb_fcyngRCiCXiz:
 nop
@@ -2828,7 +2828,7 @@
 b__MA7naqebvq7Fhesnpr24qvfcngpuFrgOhssrefSbezngRFg9__in_yvfg:
 nop
 .data
-.globl b__MGIA7naqebvq6Cnepry17SynggranoyrUrycreVAF_13TencuvpOhssreRRR
+.weak b__MGIA7naqebvq6Cnepry17SynggranoyrUrycreVAF_13TencuvpOhssreRRR
 .type b__MGIA7naqebvq6Cnepry17SynggranoyrUrycreVAF_13TencuvpOhssreRRR,%object
 b__MGIA7naqebvq6Cnepry17SynggranoyrUrycreVAF_13TencuvpOhssreRRR:
 .space __SIZEOF_POINTER__
@@ -2883,7 +2883,7 @@
 b__MGi0_a24_A7naqebvq19OhssreDhrhrCebqhpreQ1Ri:
 nop
 .text
-.globl b__MGua8_A7naqebvq11OaVagresnprVAF_17VCebqhpreYvfgrareRR10baNfOvaqreRi
+.weak b__MGua8_A7naqebvq11OaVagresnprVAF_17VCebqhpreYvfgrareRR10baNfOvaqreRi
 .type b__MGua8_A7naqebvq11OaVagresnprVAF_17VCebqhpreYvfgrareRR10baNfOvaqreRi,%function
 b__MGua8_A7naqebvq11OaVagresnprVAF_17VCebqhpreYvfgrareRR10baNfOvaqreRi:
 nop
@@ -2908,7 +2908,7 @@
 b__MGPA7naqebvq11OhssreDhrhr21CebklPbafhzreYvfgrareR0_AF_16PbafhzreYvfgrareR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__114__fcyvg_ohssreVCA7naqebvq16BpphcnaplGenpxre7FrtzragRAF_9nyybpngbeVF4_RRR10chfu_sebagRBF4_
+.weak b__MAFg3__114__fcyvg_ohssreVCA7naqebvq16BpphcnaplGenpxre7FrtzragRAF_9nyybpngbeVF4_RRR10chfu_sebagRBF4_
 .type b__MAFg3__114__fcyvg_ohssreVCA7naqebvq16BpphcnaplGenpxre7FrtzragRAF_9nyybpngbeVF4_RRR10chfu_sebagRBF4_,%function
 b__MAFg3__114__fcyvg_ohssreVCA7naqebvq16BpphcnaplGenpxre7FrtzragRAF_9nyybpngbeVF4_RRR10chfu_sebagRBF4_:
 nop
@@ -2918,12 +2918,12 @@
 b__MA7naqebvq21FhesnprPbzcbfrePyvrag11Genafnpgvba4fubjREXAF_2fcVAF_14FhesnprPbagebyRRR:
 nop
 .text
-.globl b__MA7naqebvq9FvatyrgbaVAF_15PbzcbfreFreivprRR11trgVafgnaprRi
+.weak b__MA7naqebvq9FvatyrgbaVAF_15PbzcbfreFreivprRR11trgVafgnaprRi
 .type b__MA7naqebvq9FvatyrgbaVAF_15PbzcbfreFreivprRR11trgVafgnaprRi,%function
 b__MA7naqebvq9FvatyrgbaVAF_15PbzcbfreFreivprRR11trgVafgnaprRi:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq12FhesnprFgngfRAF_9nyybpngbeVF2_RRRP2REXF5_
+.weak b__MAFg3__16irpgbeVA7naqebvq12FhesnprFgngfRAF_9nyybpngbeVF2_RRRP2REXF5_
 .type b__MAFg3__16irpgbeVA7naqebvq12FhesnprFgngfRAF_9nyybpngbeVF2_RRRP2REXF5_,%function
 b__MAFg3__16irpgbeVA7naqebvq12FhesnprFgngfRAF_9nyybpngbeVF2_RRRP2REXF5_:
 nop
@@ -2963,7 +2963,7 @@
 b__MA7naqebvq8uneqjner8tencuvpf11ohssredhrhr4I1_05hgvyf24U2OTencuvpOhssreCebqhpre7pbaarpgREXAF_2fcVAF_17VCebqhpreYvfgrareRRRvoCAF_22VTencuvpOhssreCebqhpre17DhrhrOhssreBhgchgR:
 nop
 .data
-.globl b__MTIMA7naqebvq17OhssreUhoCebqhpre11traHavdhrVqRiR2vq
+.weak b__MTIMA7naqebvq17OhssreUhoCebqhpre11traHavdhrVqRiR2vq
 .type b__MTIMA7naqebvq17OhssreUhoCebqhpre11traHavdhrVqRiR2vq,%object
 b__MTIMA7naqebvq17OhssreUhoCebqhpre11traHavdhrVqRiR2vq:
 .space __SIZEOF_POINTER__
@@ -3023,7 +3023,7 @@
 b__MGGA7naqebvq17VCebqhpreYvfgrareR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__16irpgbeVAF0_VC13angvir_unaqyrAF_9nyybpngbeVF2_RRRRAF3_VF5_RRR8__nccraqRz
+.weak b__MAFg3__16irpgbeVAF0_VC13angvir_unaqyrAF_9nyybpngbeVF2_RRRRAF3_VF5_RRR8__nccraqRz
 .type b__MAFg3__16irpgbeVAF0_VC13angvir_unaqyrAF_9nyybpngbeVF2_RRRRAF3_VF5_RRR8__nccraqRz,%function
 b__MAFg3__16irpgbeVAF0_VC13angvir_unaqyrAF_9nyybpngbeVF2_RRRRAF3_VF5_RRR8__nccraqRz:
 nop
@@ -3043,7 +3043,7 @@
 b__MA7naqebvq8uneqjner8tencuvpf11ohssredhrhr4I2_05hgvyf24O2UTencuvpOhssreCebqhpre12frgNflapZbqrRo:
 nop
 .data
-.globl b__MGIA7naqebvq12U2OPbairegreVAF_8uneqjner8tencuvpf11ohssredhrhr4I2_017VCebqhpreYvfgrareRAF_18OaCebqhpreYvfgrareRR8BovghnelR
+.weak b__MGIA7naqebvq12U2OPbairegreVAF_8uneqjner8tencuvpf11ohssredhrhr4I2_017VCebqhpreYvfgrareRAF_18OaCebqhpreYvfgrareRR8BovghnelR
 .type b__MGIA7naqebvq12U2OPbairegreVAF_8uneqjner8tencuvpf11ohssredhrhr4I2_017VCebqhpreYvfgrareRAF_18OaCebqhpreYvfgrareRR8BovghnelR,%object
 b__MGIA7naqebvq12U2OPbairegreVAF_8uneqjner8tencuvpf11ohssredhrhr4I2_017VCebqhpreYvfgrareRAF_18OaCebqhpreYvfgrareRR8BovghnelR:
 .space __SIZEOF_POINTER__
@@ -3083,7 +3083,7 @@
 b__MA7naqebvq19VachgJvaqbjPbzznaqf5pyrneRi:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_12QvfcynlFgngrRR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_12QvfcynlFgngrRR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_12QvfcynlFgngrRR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_12QvfcynlFgngrRR7qb_pbclRCiCXiz:
 nop
@@ -3133,7 +3133,7 @@
 b__MAX7naqebvq19OhssreDhrhrCebqhpre16trgPbafhzreHfntrRCz:
 nop
 .data
-.globl b__MGIA7naqebvq12U2OPbairegreVAF_8uneqjner8tencuvpf11ohssredhrhr4I2_022VTencuvpOhssreCebqhpreRAF_23OaTencuvpOhssreCebqhpreRR8BovghnelR
+.weak b__MGIA7naqebvq12U2OPbairegreVAF_8uneqjner8tencuvpf11ohssredhrhr4I2_022VTencuvpOhssreCebqhpreRAF_23OaTencuvpOhssreCebqhpreRR8BovghnelR
 .type b__MGIA7naqebvq12U2OPbairegreVAF_8uneqjner8tencuvpf11ohssredhrhr4I2_022VTencuvpOhssreCebqhpreRAF_23OaTencuvpOhssreCebqhpreRR8BovghnelR,%object
 b__MGIA7naqebvq12U2OPbairegreVAF_8uneqjner8tencuvpf11ohssredhrhr4I2_022VTencuvpOhssreCebqhpreRAF_23OaTencuvpOhssreCebqhpreRR8BovghnelR:
 .space __SIZEOF_POINTER__
@@ -3153,7 +3153,7 @@
 b__MA7naqebvq15OhssreDhrhrPber26nqwhfgNinvynoyrFybgfYbpxrqRv:
 nop
 .data
-.globl b__MA7naqebvq17VCebqhpreYvfgrare27fTrgUnyGbxraGenafnpgvbaPbqrR
+.weak b__MA7naqebvq17VCebqhpreYvfgrare27fTrgUnyGbxraGenafnpgvbaPbqrR
 .type b__MA7naqebvq17VCebqhpreYvfgrare27fTrgUnyGbxraGenafnpgvbaPbqrR,%object
 b__MA7naqebvq17VCebqhpreYvfgrare27fTrgUnyGbxraGenafnpgvbaPbqrR:
 .space __SIZEOF_POINTER__
@@ -3183,22 +3183,22 @@
 b__MA7naqebvq10TYPbafhzre19trgPheeragQngnFcnprRi:
 nop
 .data
-.globl b__MGIA7naqebvq6IrpgbeVAF_12QvfcynlFgngrRRR
+.weak b__MGIA7naqebvq6IrpgbeVAF_12QvfcynlFgngrRRR
 .type b__MGIA7naqebvq6IrpgbeVAF_12QvfcynlFgngrRRR,%object
 b__MGIA7naqebvq6IrpgbeVAF_12QvfcynlFgngrRRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_12QvfcynlFgngrRR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_12QvfcynlFgngrRR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_12QvfcynlFgngrRR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_12QvfcynlFgngrRR8qb_fcyngRCiCXiz:
 nop
 .text
-.globl b__MA7naqebvq9FvatyrgbaVAF_15PbzcbfreFreivprRRQ2Ri
+.weak b__MA7naqebvq9FvatyrgbaVAF_15PbzcbfreFreivprRRQ2Ri
 .type b__MA7naqebvq9FvatyrgbaVAF_15PbzcbfreFreivprRRQ2Ri,%function
 b__MA7naqebvq9FvatyrgbaVAF_15PbzcbfreFreivprRRQ2Ri:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVA7naqebvq2fcVAF2_7VOvaqreRRRAF3_VAF2_14FhesnprPbagebyRRRRRAF_22__habeqrerq_znc_unfureVF5_F8_AF2_28GenafnpgvbaPbzcyrgrqYvfgrare11VOvaqreUnfuRYo1RRRAF_21__habeqrerq_znc_rdhnyVF5_F8_AF_8rdhny_gbVF5_RRYo1RRRAF_9nyybpngbeVF8_RRR8__erunfuRz
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVA7naqebvq2fcVAF2_7VOvaqreRRRAF3_VAF2_14FhesnprPbagebyRRRRRAF_22__habeqrerq_znc_unfureVF5_F8_AF2_28GenafnpgvbaPbzcyrgrqYvfgrare11VOvaqreUnfuRYo1RRRAF_21__habeqrerq_znc_rdhnyVF5_F8_AF_8rdhny_gbVF5_RRYo1RRRAF_9nyybpngbeVF8_RRR8__erunfuRz
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVA7naqebvq2fcVAF2_7VOvaqreRRRAF3_VAF2_14FhesnprPbagebyRRRRRAF_22__habeqrerq_znc_unfureVF5_F8_AF2_28GenafnpgvbaPbzcyrgrqYvfgrare11VOvaqreUnfuRYo1RRRAF_21__habeqrerq_znc_rdhnyVF5_F8_AF_8rdhny_gbVF5_RRYo1RRRAF_9nyybpngbeVF8_RRR8__erunfuRz,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVA7naqebvq2fcVAF2_7VOvaqreRRRAF3_VAF2_14FhesnprPbagebyRRRRRAF_22__habeqrerq_znc_unfureVF5_F8_AF2_28GenafnpgvbaPbzcyrgrqYvfgrare11VOvaqreUnfuRYo1RRRAF_21__habeqrerq_znc_rdhnyVF5_F8_AF_8rdhny_gbVF5_RRYo1RRRAF_9nyybpngbeVF8_RRR8__erunfuRz:
 nop
@@ -3218,7 +3218,7 @@
 b__MA7naqebvq7Fhesnpr19frgOhssrefGvzrfgnzcRy:
 nop
 .text
-.globl b__MAFg3__15qrdhrVA7naqebvq2fcVAF1_5SraprRRRAF_9nyybpngbeVF4_RRR9cbc_sebagRi
+.weak b__MAFg3__15qrdhrVA7naqebvq2fcVAF1_5SraprRRRAF_9nyybpngbeVF4_RRR9cbc_sebagRi
 .type b__MAFg3__15qrdhrVA7naqebvq2fcVAF1_5SraprRRRAF_9nyybpngbeVF4_RRR9cbc_sebagRi,%function
 b__MAFg3__15qrdhrVA7naqebvq2fcVAF1_5SraprRRRAF_9nyybpngbeVF4_RRR9cbc_sebagRi:
 nop
@@ -3228,17 +3228,17 @@
 b__MA7naqebvq21FhesnprPbzcbfrePyvrag22trgNavzngvbaSenzrFgngfRCAF_10SenzrFgngfR:
 nop
 .text
-.globl b__MA7naqebvq9FvatyrgbaVAF_11OhssrePnpurRRQ2Ri
+.weak b__MA7naqebvq9FvatyrgbaVAF_11OhssrePnpurRRQ2Ri
 .type b__MA7naqebvq9FvatyrgbaVAF_11OhssrePnpurRRQ2Ri,%function
 b__MA7naqebvq9FvatyrgbaVAF_11OhssrePnpurRRQ2Ri:
 nop
 .text
-.globl b__MAXFg3__110__shapgvba6__shapVCSiCizRAF_9nyybpngbeVF4_RRF3_R7__pybarRCAF0_6__onfrVF3_RR
+.weak b__MAXFg3__110__shapgvba6__shapVCSiCizRAF_9nyybpngbeVF4_RRF3_R7__pybarRCAF0_6__onfrVF3_RR
 .type b__MAXFg3__110__shapgvba6__shapVCSiCizRAF_9nyybpngbeVF4_RRF3_R7__pybarRCAF0_6__onfrVF3_RR,%function
 b__MAXFg3__110__shapgvba6__shapVCSiCizRAF_9nyybpngbeVF4_RRF3_R7__pybarRCAF0_6__onfrVF3_RR:
 nop
 .text
-.globl b__MAFg3__16__gerrVvAF_4yrffVvRRAF_9nyybpngbeVvRRR5renfrRAF_21__gerr_pbafg_vgrengbeVvCAF_11__gerr_abqrVvCiRRyRR
+.weak b__MAFg3__16__gerrVvAF_4yrffVvRRAF_9nyybpngbeVvRRR5renfrRAF_21__gerr_pbafg_vgrengbeVvCAF_11__gerr_abqrVvCiRRyRR
 .type b__MAFg3__16__gerrVvAF_4yrffVvRRAF_9nyybpngbeVvRRR5renfrRAF_21__gerr_pbafg_vgrengbeVvCAF_11__gerr_abqrVvCiRRyRR,%function
 b__MAFg3__16__gerrVvAF_4yrffVvRRAF_9nyybpngbeVvRRR5renfrRAF_21__gerr_pbafg_vgrengbeVvCAF_11__gerr_abqrVvCiRRyRR:
 nop
@@ -3268,7 +3268,7 @@
 b__MA7naqebvq7Fhesnpr20frgOhssrefQvzrafvbafRww:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVA7naqebvq2fcVAF2_7VOvaqreRRRAF3_VAF2_14FhesnprPbagebyRRRRRAF_22__habeqrerq_znc_unfureVF5_F8_AF2_28GenafnpgvbaPbzcyrgrqYvfgrare11VOvaqreUnfuRYo1RRRAF_21__habeqrerq_znc_rdhnyVF5_F8_AF_8rdhny_gbVF5_RRYo1RRRAF_9nyybpngbeVF8_RRR6erunfuRz
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVA7naqebvq2fcVAF2_7VOvaqreRRRAF3_VAF2_14FhesnprPbagebyRRRRRAF_22__habeqrerq_znc_unfureVF5_F8_AF2_28GenafnpgvbaPbzcyrgrqYvfgrare11VOvaqreUnfuRYo1RRRAF_21__habeqrerq_znc_rdhnyVF5_F8_AF_8rdhny_gbVF5_RRYo1RRRAF_9nyybpngbeVF8_RRR6erunfuRz
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVA7naqebvq2fcVAF2_7VOvaqreRRRAF3_VAF2_14FhesnprPbagebyRRRRRAF_22__habeqrerq_znc_unfureVF5_F8_AF2_28GenafnpgvbaPbzcyrgrqYvfgrare11VOvaqreUnfuRYo1RRRAF_21__habeqrerq_znc_rdhnyVF5_F8_AF_8rdhny_gbVF5_RRYo1RRRAF_9nyybpngbeVF8_RRR6erunfuRz,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVA7naqebvq2fcVAF2_7VOvaqreRRRAF3_VAF2_14FhesnprPbagebyRRRRRAF_22__habeqrerq_znc_unfureVF5_F8_AF2_28GenafnpgvbaPbzcyrgrqYvfgrare11VOvaqreUnfuRYo1RRRAF_21__habeqrerq_znc_rdhnyVF5_F8_AF_8rdhny_gbVF5_RRYo1RRRAF_9nyybpngbeVF8_RRR6erunfuRz:
 nop
@@ -3338,7 +3338,7 @@
 b__MA7naqebvq11OhssreDhrhr21CebklPbafhzreYvfgrare17baOhssrefEryrnfrqRi:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_2fcVAF_13TencuvpOhssreRRRR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_2fcVAF_13TencuvpOhssreRRRR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_2fcVAF_13TencuvpOhssreRRRR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_2fcVAF_13TencuvpOhssreRRRR8qb_fcyngRCiCXiz:
 nop
@@ -3353,7 +3353,7 @@
 b__MA7naqebvq28GenafnpgvbaPbzcyrgrqYvfgrare20fgnegYvfgravatYbpxrqRi:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVA7naqebvq2fcVAF1_14FhesnprPbagebyRRRAF1_21FhesnprPbzcbfrePyvrag6FPUnfuRAF_8rdhny_gbVF4_RRAF_9nyybpngbeVF4_RRR6erunfuRz
+.weak b__MAFg3__112__unfu_gnoyrVA7naqebvq2fcVAF1_14FhesnprPbagebyRRRAF1_21FhesnprPbzcbfrePyvrag6FPUnfuRAF_8rdhny_gbVF4_RRAF_9nyybpngbeVF4_RRR6erunfuRz
 .type b__MAFg3__112__unfu_gnoyrVA7naqebvq2fcVAF1_14FhesnprPbagebyRRRAF1_21FhesnprPbzcbfrePyvrag6FPUnfuRAF_8rdhny_gbVF4_RRAF_9nyybpngbeVF4_RRR6erunfuRz,%function
 b__MAFg3__112__unfu_gnoyrVA7naqebvq2fcVAF1_14FhesnprPbagebyRRRAF1_21FhesnprPbzcbfrePyvrag6FPUnfuRAF_8rdhny_gbVF4_RRAF_9nyybpngbeVF4_RRR6erunfuRz:
 nop
@@ -3388,7 +3388,7 @@
 b__MGua8_A7naqebvq23OcTencuvpOhssrePbafhzreQ1Ri:
 nop
 .data
-.globl b__MGGA7naqebvq23UcTencuvpOhssreCebqhpreR
+.weak b__MGGA7naqebvq23UcTencuvpOhssreCebqhpreR
 .type b__MGGA7naqebvq23UcTencuvpOhssreCebqhpreR,%object
 b__MGGA7naqebvq23UcTencuvpOhssreCebqhpreR:
 .space __SIZEOF_POINTER__
@@ -3443,7 +3443,7 @@
 b__MA7naqebvq7Fhesnpr28qvfcngpuFrgOhssrefQvzrafvbafRFg9__in_yvfg:
 nop
 .text
-.globl b__MAFg3__120__funerq_cge_cbvagreVCA7naqebvq3qie13CebqhpreDhrhrRAF_14qrsnhyg_qryrgrVF3_RRAF_9nyybpngbeVF3_RRR16__ba_mreb_funerqRi
+.weak b__MAFg3__120__funerq_cge_cbvagreVCA7naqebvq3qie13CebqhpreDhrhrRAF_14qrsnhyg_qryrgrVF3_RRAF_9nyybpngbeVF3_RRR16__ba_mreb_funerqRi
 .type b__MAFg3__120__funerq_cge_cbvagreVCA7naqebvq3qie13CebqhpreDhrhrRAF_14qrsnhyg_qryrgrVF3_RRAF_9nyybpngbeVF3_RRR16__ba_mreb_funerqRi,%function
 b__MAFg3__120__funerq_cge_cbvagreVCA7naqebvq3qie13CebqhpreDhrhrRAF_14qrsnhyg_qryrgrVF3_RRAF_9nyybpngbeVF3_RRR16__ba_mreb_funerqRi:
 nop
@@ -3463,7 +3463,7 @@
 b__MA7naqebvq10TYPbafhzre18trgGenafsbezZngevkRCs:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_12U2OPbairegreVAF1_8uneqjner8tencuvpf11ohssredhrhr4I1_017VCebqhpreYvfgrareRAF1_18OaCebqhpreYvfgrareRR8BovghnelRRRAF_9nyybpngbeVFP_RRR21__chfu_onpx_fybj_cnguVFP_RRiBG_
+.weak b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_12U2OPbairegreVAF1_8uneqjner8tencuvpf11ohssredhrhr4I1_017VCebqhpreYvfgrareRAF1_18OaCebqhpreYvfgrareRR8BovghnelRRRAF_9nyybpngbeVFP_RRR21__chfu_onpx_fybj_cnguVFP_RRiBG_
 .type b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_12U2OPbairegreVAF1_8uneqjner8tencuvpf11ohssredhrhr4I1_017VCebqhpreYvfgrareRAF1_18OaCebqhpreYvfgrareRR8BovghnelRRRAF_9nyybpngbeVFP_RRR21__chfu_onpx_fybj_cnguVFP_RRiBG_,%function
 b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_12U2OPbairegreVAF1_8uneqjner8tencuvpf11ohssredhrhr4I1_017VCebqhpreYvfgrareRAF1_18OaCebqhpreYvfgrareRR8BovghnelRRRAF_9nyybpngbeVFP_RRR21__chfu_onpx_fybj_cnguVFP_RRiBG_:
 nop
@@ -3478,7 +3478,7 @@
 b__MA7naqebvq25PbafhzreSenzrRiragUvfgbel8nqqDhrhrREXAF_19ArjSenzrRiragfRagelR:
 nop
 .text
-.globl b__MA7naqebvq9FvatyrgbaVAF_11OhssrePnpurRR11trgVafgnaprRi
+.weak b__MA7naqebvq9FvatyrgbaVAF_11OhssrePnpurRR11trgVafgnaprRi
 .type b__MA7naqebvq9FvatyrgbaVAF_11OhssrePnpurRR11trgVafgnaprRi,%function
 b__MA7naqebvq9FvatyrgbaVAF_11OhssrePnpurRR11trgVafgnaprRi:
 nop
@@ -3498,7 +3498,7 @@
 b__MGPA7naqebvq30OaGenafnpgvbaPbzcyrgrqYvfgrareR0_AF_11OaVagresnprVAF_29VGenafnpgvbaPbzcyrgrqYvfgrareRRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq9FvatyrgbaVAF_21QrsnhygPbzcbfrePyvragRRQ1Ri
+.weak b__MA7naqebvq9FvatyrgbaVAF_21QrsnhygPbzcbfrePyvragRRQ1Ri
 .type b__MA7naqebvq9FvatyrgbaVAF_21QrsnhygPbzcbfrePyvragRRQ1Ri,%function
 b__MA7naqebvq9FvatyrgbaVAF_21QrsnhygPbzcbfrePyvragRRQ1Ri:
 nop
@@ -3563,7 +3563,7 @@
 b__MAX7naqebvq15OhssreDhrhrPber33trgZvaHaqrdhrhrqOhssrePbhagYbpxrqRi:
 nop
 .text
-.globl b__MAFg3__124__chg_punenpgre_frdhraprVpAF_11pune_genvgfVpRRRREAF_13onfvp_bfgernzVG_G0_RRF7_CXF4_z
+.weak b__MAFg3__124__chg_punenpgre_frdhraprVpAF_11pune_genvgfVpRRRREAF_13onfvp_bfgernzVG_G0_RRF7_CXF4_z
 .type b__MAFg3__124__chg_punenpgre_frdhraprVpAF_11pune_genvgfVpRRRREAF_13onfvp_bfgernzVG_G0_RRF7_CXF4_z,%function
 b__MAFg3__124__chg_punenpgre_frdhraprVpAF_11pune_genvgfVpRRRREAF_13onfvp_bfgernzVG_G0_RRF7_CXF4_z:
 nop
@@ -3618,7 +3618,7 @@
 b__MA7naqebvq19OhssreDhrhrPbafhzre22frgPbafhzreVfCebgrpgrqRo:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq16SenzrRiragfQrygnRAF_9nyybpngbeVF2_RRR7erfreirRz
+.weak b__MAFg3__16irpgbeVA7naqebvq16SenzrRiragfQrygnRAF_9nyybpngbeVF2_RRR7erfreirRz
 .type b__MAFg3__16irpgbeVA7naqebvq16SenzrRiragfQrygnRAF_9nyybpngbeVF2_RRR7erfreirRz,%function
 b__MAFg3__16irpgbeVA7naqebvq16SenzrRiragfQrygnRAF_9nyybpngbeVF2_RRR7erfreirRz:
 nop
@@ -3683,7 +3683,7 @@
 b__MAX7naqebvq10TYPbafhzre19trgPheeragSraprGvzrRi:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq16GenafnpgvbaFgngfRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVEXF2_RRiBG_
+.weak b__MAFg3__16irpgbeVA7naqebvq16GenafnpgvbaFgngfRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVEXF2_RRiBG_
 .type b__MAFg3__16irpgbeVA7naqebvq16GenafnpgvbaFgngfRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVEXF2_RRiBG_,%function
 b__MAFg3__16irpgbeVA7naqebvq16GenafnpgvbaFgngfRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVEXF2_RRiBG_:
 nop
@@ -3698,7 +3698,7 @@
 b__MA7naqebvq10TYPbafhzre19frgSvygrevatRanoyrqRo:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_12QvfcynlFgngrRR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_12QvfcynlFgngrRR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_12QvfcynlFgngrRR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_12QvfcynlFgngrRR10qb_qrfgeblRCiz:
 nop
@@ -3748,12 +3748,12 @@
 b__MA7naqebvq25PbafhzreSenzrRiragUvfgbelQ0Ri:
 nop
 .text
-.globl b__MA7naqebvq2fcVAF_17VCebqhpreYvfgrareRRP2VAF_21QhzzlCebqhpreYvfgrareRRRCG_
+.weak b__MA7naqebvq2fcVAF_17VCebqhpreYvfgrareRRP2VAF_21QhzzlCebqhpreYvfgrareRRRCG_
 .type b__MA7naqebvq2fcVAF_17VCebqhpreYvfgrareRRP2VAF_21QhzzlCebqhpreYvfgrareRRRCG_,%function
 b__MA7naqebvq2fcVAF_17VCebqhpreYvfgrareRRP2VAF_21QhzzlCebqhpreYvfgrareRRRCG_:
 nop
 .data
-.globl b__MGIAFg3__120__funerq_cge_cbvagreVCA7naqebvq3qie13PbafhzreDhrhrRAF_14qrsnhyg_qryrgrVF3_RRAF_9nyybpngbeVF3_RRRR
+.weak b__MGIAFg3__120__funerq_cge_cbvagreVCA7naqebvq3qie13PbafhzreDhrhrRAF_14qrsnhyg_qryrgrVF3_RRAF_9nyybpngbeVF3_RRRR
 .type b__MGIAFg3__120__funerq_cge_cbvagreVCA7naqebvq3qie13PbafhzreDhrhrRAF_14qrsnhyg_qryrgrVF3_RRAF_9nyybpngbeVF3_RRRR,%object
 b__MGIAFg3__120__funerq_cge_cbvagreVCA7naqebvq3qie13PbafhzreDhrhrRAF_14qrsnhyg_qryrgrVF3_RRAF_9nyybpngbeVF3_RRRR:
 .space __SIZEOF_POINTER__
@@ -3768,7 +3768,7 @@
 b__MGi0_a24_A7naqebvq19OhssreDhrhrPbafhzreQ0Ri:
 nop
 .data
-.globl b__MGIA7naqebvq3qie24OhssreUhoDhrhrCneprynoyrVYAF0_29OhssreUhoDhrhrCneprynoyrZntvpR1651011952RRR
+.weak b__MGIA7naqebvq3qie24OhssreUhoDhrhrCneprynoyrVYAF0_29OhssreUhoDhrhrCneprynoyrZntvpR1651011952RRR
 .type b__MGIA7naqebvq3qie24OhssreUhoDhrhrCneprynoyrVYAF0_29OhssreUhoDhrhrCneprynoyrZntvpR1651011952RRR,%object
 b__MGIA7naqebvq3qie24OhssreUhoDhrhrCneprynoyrVYAF0_29OhssreUhoDhrhrCneprynoyrZntvpR1651011952RRR:
 .space __SIZEOF_POINTER__
@@ -3793,7 +3793,7 @@
 b__MA7naqebvq28GenafnpgvbaPbzcyrgrqYvfgrare28nqqFhesnprPbagebyGbPnyyonpxfREXAF_2fcVAF_14FhesnprPbagebyRRREXAFg3__113habeqrerq_frgVyAF6_4unfuVyRRAF6_8rdhny_gbVyRRAF6_9nyybpngbeVyRRRR:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVA7naqebvq2fcVAF2_29VGenafnpgvbaPbzcyrgrqYvfgrareRRRAF2_21FhesnprPbzcbfrePyvrag12PnyyonpxVasbRRRAF_22__habeqrerq_znc_unfureVF5_F8_AF6_7GPYUnfuRYo1RRRAF_21__habeqrerq_znc_rdhnyVF5_F8_AF_8rdhny_gbVF5_RRYo1RRRAF_9nyybpngbeVF8_RRR6erunfuRz
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVA7naqebvq2fcVAF2_29VGenafnpgvbaPbzcyrgrqYvfgrareRRRAF2_21FhesnprPbzcbfrePyvrag12PnyyonpxVasbRRRAF_22__habeqrerq_znc_unfureVF5_F8_AF6_7GPYUnfuRYo1RRRAF_21__habeqrerq_znc_rdhnyVF5_F8_AF_8rdhny_gbVF5_RRYo1RRRAF_9nyybpngbeVF8_RRR6erunfuRz
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVA7naqebvq2fcVAF2_29VGenafnpgvbaPbzcyrgrqYvfgrareRRRAF2_21FhesnprPbzcbfrePyvrag12PnyyonpxVasbRRRAF_22__habeqrerq_znc_unfureVF5_F8_AF6_7GPYUnfuRYo1RRRAF_21__habeqrerq_znc_rdhnyVF5_F8_AF_8rdhny_gbVF5_RRYo1RRRAF_9nyybpngbeVF8_RRR6erunfuRz,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVA7naqebvq2fcVAF2_29VGenafnpgvbaPbzcyrgrqYvfgrareRRRAF2_21FhesnprPbzcbfrePyvrag12PnyyonpxVasbRRRAF_22__habeqrerq_znc_unfureVF5_F8_AF6_7GPYUnfuRYo1RRRAF_21__habeqrerq_znc_rdhnyVF5_F8_AF_8rdhny_gbVF5_RRYo1RRRAF_9nyybpngbeVF8_RRR6erunfuRz:
 nop
@@ -3853,7 +3853,7 @@
 b__MA7naqebvq28GenafnpgvbaPbzcyrgrqYvfgrareP1Ri:
 nop
 .text
-.globl b__MA7naqebvq2fcVAF_5SraprRRnFREXF2_
+.weak b__MA7naqebvq2fcVAF_5SraprRRnFREXF2_
 .type b__MA7naqebvq2fcVAF_5SraprRRnFREXF2_,%function
 b__MA7naqebvq2fcVAF_5SraprRRnFREXF2_:
 nop
@@ -3868,12 +3868,12 @@
 b__MA7naqebvq21FhesnprPbzcbfrePyvrag18vfJvqrPbybeQvfcynlREXAF_2fcVAF_7VOvaqreRRRCo:
 nop
 .text
-.globl b__MAFg3__16__gerrVvAF_4yrffVvRRAF_9nyybpngbeVvRRR7qrfgeblRCAF_11__gerr_abqrVvCiRR
+.weak b__MAFg3__16__gerrVvAF_4yrffVvRRAF_9nyybpngbeVvRRR7qrfgeblRCAF_11__gerr_abqrVvCiRR
 .type b__MAFg3__16__gerrVvAF_4yrffVvRRAF_9nyybpngbeVvRRR7qrfgeblRCAF_11__gerr_abqrVvCiRR,%function
 b__MAFg3__16__gerrVvAF_4yrffVvRRAF_9nyybpngbeVvRRR7qrfgeblRCAF_11__gerr_abqrVvCiRR:
 nop
 .data
-.globl b__MGPA7naqebvq18UcCebqhpreYvfgrareR0_AF_16CebqhpreYvfgrareR
+.weak b__MGPA7naqebvq18UcCebqhpreYvfgrareR0_AF_16CebqhpreYvfgrareR
 .type b__MGPA7naqebvq18UcCebqhpreYvfgrareR0_AF_16CebqhpreYvfgrareR,%object
 b__MGPA7naqebvq18UcCebqhpreYvfgrareR0_AF_16CebqhpreYvfgrareR:
 .space __SIZEOF_POINTER__
@@ -3933,7 +3933,7 @@
 b__MA7naqebvq17OhssreUhoCebqhpre6PerngrREXAFg3__110funerq_cgeVAF_3qie13CebqhpreDhrhrRRR:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_12QvfcynlFgngrRR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_12QvfcynlFgngrRR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_12QvfcynlFgngrRR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_12QvfcynlFgngrRR15qb_zbir_sbejneqRCiCXiz:
 nop
@@ -3978,7 +3978,7 @@
 b__MGIA7naqebvq30OaGenafnpgvbaPbzcyrgrqYvfgrareR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_2fcVAF_22VTencuvpOhssreCebqhpreRRRR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_2fcVAF_22VTencuvpOhssreCebqhpreRRRR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_2fcVAF_22VTencuvpOhssreCebqhpreRRRR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_2fcVAF_22VTencuvpOhssreCebqhpreRRRR8qb_fcyngRCiCXiz:
 nop
@@ -4113,7 +4113,7 @@
 b__MA7naqebvq17OhssreUhoPbafhzre20frgQrsnhygOhssreFvmrRww:
 nop
 .text
-.globl b__MA7naqebvq6Cnepry5jevgrVAF_10SenzrFgngfRRRvEXAF_16YvtugSynggranoyrVG_RR
+.weak b__MA7naqebvq6Cnepry5jevgrVAF_10SenzrFgngfRRRvEXAF_16YvtugSynggranoyrVG_RR
 .type b__MA7naqebvq6Cnepry5jevgrVAF_10SenzrFgngfRRRvEXAF_16YvtugSynggranoyrVG_RR,%function
 b__MA7naqebvq6Cnepry5jevgrVAF_10SenzrFgngfRRRvEXAF_16YvtugSynggranoyrVG_RR:
 nop
@@ -4228,7 +4228,7 @@
 b__MGPA7naqebvq24OaErtvbaFnzcyvatYvfgrareR0_AF_15FnsrOaVagresnprVAF_23VErtvbaFnzcyvatYvfgrareRRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq11OaVagresnprVAF_16VFhesnprPbzcbfreRR10baNfOvaqreRi
+.weak b__MA7naqebvq11OaVagresnprVAF_16VFhesnprPbzcbfreRR10baNfOvaqreRi
 .type b__MA7naqebvq11OaVagresnprVAF_16VFhesnprPbzcbfreRR10baNfOvaqreRi,%function
 b__MA7naqebvq11OaVagresnprVAF_16VFhesnprPbzcbfreRR10baNfOvaqreRi:
 nop
@@ -4263,7 +4263,7 @@
 b__MA7naqebvq14YnlreQrohtVasb14ernqSebzCnepryRCXAF_6CnepryR:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVA7naqebvq2fcVAF2_7VOvaqreRRRAF3_VAF2_14FhesnprPbagebyRRRRRAF_22__habeqrerq_znc_unfureVF5_F8_AF2_28GenafnpgvbaPbzcyrgrqYvfgrare11VOvaqreUnfuRYo1RRRAF_21__habeqrerq_znc_rdhnyVF5_F8_AF_8rdhny_gbVF5_RRYo1RRRAF_9nyybpngbeVF8_RRR21__rzcynpr_havdhr_vzcyVWEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWBF5_RRRAFB_VWEXF7_RRRRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF8_CiRRRRoRRQcBG_
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVA7naqebvq2fcVAF2_7VOvaqreRRRAF3_VAF2_14FhesnprPbagebyRRRRRAF_22__habeqrerq_znc_unfureVF5_F8_AF2_28GenafnpgvbaPbzcyrgrqYvfgrare11VOvaqreUnfuRYo1RRRAF_21__habeqrerq_znc_rdhnyVF5_F8_AF_8rdhny_gbVF5_RRYo1RRRAF_9nyybpngbeVF8_RRR21__rzcynpr_havdhr_vzcyVWEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWBF5_RRRAFB_VWEXF7_RRRRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF8_CiRRRRoRRQcBG_
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVA7naqebvq2fcVAF2_7VOvaqreRRRAF3_VAF2_14FhesnprPbagebyRRRRRAF_22__habeqrerq_znc_unfureVF5_F8_AF2_28GenafnpgvbaPbzcyrgrqYvfgrare11VOvaqreUnfuRYo1RRRAF_21__habeqrerq_znc_rdhnyVF5_F8_AF_8rdhny_gbVF5_RRYo1RRRAF_9nyybpngbeVF8_RRR21__rzcynpr_havdhr_vzcyVWEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWBF5_RRRAFB_VWEXF7_RRRRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF8_CiRRRRoRRQcBG_,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVA7naqebvq2fcVAF2_7VOvaqreRRRAF3_VAF2_14FhesnprPbagebyRRRRRAF_22__habeqrerq_znc_unfureVF5_F8_AF2_28GenafnpgvbaPbzcyrgrqYvfgrare11VOvaqreUnfuRYo1RRRAF_21__habeqrerq_znc_rdhnyVF5_F8_AF_8rdhny_gbVF5_RRYo1RRRAF_9nyybpngbeVF8_RRR21__rzcynpr_havdhr_vzcyVWEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWBF5_RRRAFB_VWEXF7_RRRRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF8_CiRRRRoRRQcBG_:
 nop
@@ -4283,7 +4283,7 @@
 b__MGGA7naqebvq12PbafhzreOnfrR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_8uneqjner8tencuvpf6pbzzba4I1_29PbybeZbqrRR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_8uneqjner8tencuvpf6pbzzba4I1_29PbybeZbqrRR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_8uneqjner8tencuvpf6pbzzba4I1_29PbybeZbqrRR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_8uneqjner8tencuvpf6pbzzba4I1_29PbybeZbqrRR16qb_zbir_onpxjneqRCiCXiz:
 nop
@@ -4313,7 +4313,7 @@
 b__MGi0_a24_A7naqebvq22VTencuvpOhssrePbafhzreQ1Ri:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_10OhssreVgrzRR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_10OhssreVgrzRR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_10OhssreVgrzRR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_10OhssreVgrzRR15qb_zbir_sbejneqRCiCXiz:
 nop
@@ -4328,7 +4328,7 @@
 b__MGPA7naqebvq30OcGenafnpgvbaPbzcyrgrqYvfgrareR0_AF_15FnsrOcVagresnprVAF_29VGenafnpgvbaPbzcyrgrqYvfgrareRRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_2fcVAF_22VTencuvpOhssreCebqhpreRRRR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_2fcVAF_22VTencuvpOhssreCebqhpreRRRR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_2fcVAF_22VTencuvpOhssreCebqhpreRRRR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_2fcVAF_22VTencuvpOhssreCebqhpreRRRR16qb_zbir_onpxjneqRCiCXiz:
 nop
@@ -4368,7 +4368,7 @@
 b__MA7naqebvq10TYPbafhzre15eryrnfrGrkVzntrRi:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVzAF_2fcVAF_14FgernzFcyvggre13OhssreGenpxreRRRRRR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVzAF_2fcVAF_14FgernzFcyvggre13OhssreGenpxreRRRRRR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVzAF_2fcVAF_14FgernzFcyvggre13OhssreGenpxreRRRRRR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVzAF_2fcVAF_14FgernzFcyvggre13OhssreGenpxreRRRRRR16qb_zbir_onpxjneqRCiCXiz:
 nop
@@ -4378,7 +4378,7 @@
 b__MA7naqebvq21FhesnprPbzcbfrePyvrag11Genafnpgvba14frgUqeZrgnqngnREXAF_2fcVAF_14FhesnprPbagebyRRREXAF_11UqeZrgnqngnR:
 nop
 .data
-.globl b__MGIA7naqebvq6IrpgbeVAF_2fcVAF_13TencuvpOhssreRRRRR
+.weak b__MGIA7naqebvq6IrpgbeVAF_2fcVAF_13TencuvpOhssreRRRRR
 .type b__MGIA7naqebvq6IrpgbeVAF_2fcVAF_13TencuvpOhssreRRRRR,%object
 b__MGIA7naqebvq6IrpgbeVAF_2fcVAF_13TencuvpOhssreRRRRR:
 .space __SIZEOF_POINTER__
@@ -4393,12 +4393,12 @@
 b__MA7naqebvq17OhssreUhoPbafhzre16frgGenafsbezUvagRw:
 nop
 .text
-.globl b__MA7naqebvq2fcVAF_5SraprRR5pyrneRi
+.weak b__MA7naqebvq2fcVAF_5SraprRR5pyrneRi
 .type b__MA7naqebvq2fcVAF_5SraprRR5pyrneRi,%function
 b__MA7naqebvq2fcVAF_5SraprRR5pyrneRi:
 nop
 .text
-.globl b__MA7naqebvq12U2OPbairegreVAF_8uneqjner8tencuvpf11ohssredhrhr4I1_017VCebqhpreYvfgrareRAF_18OaCebqhpreYvfgrareRR10baGenafnpgRwEXAF_6CnepryRCF8_w
+.weak b__MA7naqebvq12U2OPbairegreVAF_8uneqjner8tencuvpf11ohssredhrhr4I1_017VCebqhpreYvfgrareRAF_18OaCebqhpreYvfgrareRR10baGenafnpgRwEXAF_6CnepryRCF8_w
 .type b__MA7naqebvq12U2OPbairegreVAF_8uneqjner8tencuvpf11ohssredhrhr4I1_017VCebqhpreYvfgrareRAF_18OaCebqhpreYvfgrareRR10baGenafnpgRwEXAF_6CnepryRCF8_w,%function
 b__MA7naqebvq12U2OPbairegreVAF_8uneqjner8tencuvpf11ohssredhrhr4I1_017VCebqhpreYvfgrareRAF_18OaCebqhpreYvfgrareRR10baGenafnpgRwEXAF_6CnepryRCF8_w:
 nop
@@ -4428,7 +4428,7 @@
 b__MAX7naqebvq19OhssreDhrhrCebqhpre11trgHavdhrVqRCz:
 nop
 .data
-.globl b__MGIA7naqebvq6Cnepry17SynggranoyrUrycreVAF_10OhssreVgrzRRR
+.weak b__MGIA7naqebvq6Cnepry17SynggranoyrUrycreVAF_10OhssreVgrzRRR
 .type b__MGIA7naqebvq6Cnepry17SynggranoyrUrycreVAF_10OhssreVgrzRRR,%object
 b__MGIA7naqebvq6Cnepry17SynggranoyrUrycreVAF_10OhssreVgrzRRR:
 .space __SIZEOF_POINTER__
@@ -4448,7 +4448,7 @@
 b__MA7naqebvq7Fhesnpr35qvfcngpuFrgOhssrefFzcgr2086ZrgnqngnRFg9__in_yvfg:
 nop
 .text
-.globl b__MAFg3__110__shapgvba6__shapVCSiCizRAF_9nyybpngbeVF4_RRF3_R7qrfgeblRi
+.weak b__MAFg3__110__shapgvba6__shapVCSiCizRAF_9nyybpngbeVF4_RRF3_R7qrfgeblRi
 .type b__MAFg3__110__shapgvba6__shapVCSiCizRAF_9nyybpngbeVF4_RRF3_R7qrfgeblRi,%function
 b__MAFg3__110__shapgvba6__shapVCSiCizRAF_9nyybpngbeVF4_RRF3_R7qrfgeblRi:
 nop
@@ -4458,12 +4458,12 @@
 b__MA7naqebvq7Fhesnpr27qvfcngpuTrgPbzcbfvgbeGvzvatRFg9__in_yvfg:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVyA7naqebvq28GenafnpgvbaPbzcyrgrqYvfgrare19PnyyonpxGenafyngvbaRRRAF_22__habeqrerq_znc_unfureVyF5_AF_4unfuVyRRYo1RRRAF_21__habeqrerq_znc_rdhnyVyF5_AF_8rdhny_gbVyRRYo1RRRAF_9nyybpngbeVF5_RRR6erunfuRz
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVyA7naqebvq28GenafnpgvbaPbzcyrgrqYvfgrare19PnyyonpxGenafyngvbaRRRAF_22__habeqrerq_znc_unfureVyF5_AF_4unfuVyRRYo1RRRAF_21__habeqrerq_znc_rdhnyVyF5_AF_8rdhny_gbVyRRYo1RRRAF_9nyybpngbeVF5_RRR6erunfuRz
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVyA7naqebvq28GenafnpgvbaPbzcyrgrqYvfgrare19PnyyonpxGenafyngvbaRRRAF_22__habeqrerq_znc_unfureVyF5_AF_4unfuVyRRYo1RRRAF_21__habeqrerq_znc_rdhnyVyF5_AF_8rdhny_gbVyRRYo1RRRAF_9nyybpngbeVF5_RRR6erunfuRz,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVyA7naqebvq28GenafnpgvbaPbzcyrgrqYvfgrare19PnyyonpxGenafyngvbaRRRAF_22__habeqrerq_znc_unfureVyF5_AF_4unfuVyRRYo1RRRAF_21__habeqrerq_znc_rdhnyVyF5_AF_8rdhny_gbVyRRYo1RRRAF_9nyybpngbeVF5_RRR6erunfuRz:
 nop
 .text
-.globl b__MAFg3__114__fcyvg_ohssreVCA7naqebvq16BpphcnaplGenpxre7FrtzragREAF_9nyybpngbeVF4_RRR9chfu_onpxRBF4_
+.weak b__MAFg3__114__fcyvg_ohssreVCA7naqebvq16BpphcnaplGenpxre7FrtzragREAF_9nyybpngbeVF4_RRR9chfu_onpxRBF4_
 .type b__MAFg3__114__fcyvg_ohssreVCA7naqebvq16BpphcnaplGenpxre7FrtzragREAF_9nyybpngbeVF4_RRR9chfu_onpxRBF4_,%function
 b__MAFg3__114__fcyvg_ohssreVCA7naqebvq16BpphcnaplGenpxre7FrtzragREAF_9nyybpngbeVF4_RRR9chfu_onpxRBF4_:
 nop
@@ -4528,7 +4528,7 @@
 b__MA7naqebvq7Fhesnpr7pbaarpgRvEXAF_2fcVAF_17VCebqhpreYvfgrareRRR:
 nop
 .text
-.globl b__MAFg3__120__funerq_cge_cbvagreVCA7naqebvq3qie13CebqhpreDhrhrRAF_14qrsnhyg_qryrgrVF3_RRAF_9nyybpngbeVF3_RRR21__ba_mreb_funerq_jrnxRi
+.weak b__MAFg3__120__funerq_cge_cbvagreVCA7naqebvq3qie13CebqhpreDhrhrRAF_14qrsnhyg_qryrgrVF3_RRAF_9nyybpngbeVF3_RRR21__ba_mreb_funerq_jrnxRi
 .type b__MAFg3__120__funerq_cge_cbvagreVCA7naqebvq3qie13CebqhpreDhrhrRAF_14qrsnhyg_qryrgrVF3_RRAF_9nyybpngbeVF3_RRR21__ba_mreb_funerq_jrnxRi,%function
 b__MAFg3__120__funerq_cge_cbvagreVCA7naqebvq3qie13CebqhpreDhrhrRAF_14qrsnhyg_qryrgrVF3_RRAF_9nyybpngbeVF3_RRR21__ba_mreb_funerq_jrnxRi:
 nop
@@ -4538,7 +4538,7 @@
 b__MA7naqebvq15PbzcbfreFreivpr18trgPbzcbfreFreivprRi:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_11QvfcynlVasbRR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq6IrpgbeVAF_11QvfcynlVasbRR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq6IrpgbeVAF_11QvfcynlVasbRR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq6IrpgbeVAF_11QvfcynlVasbRR12qb_pbafgehpgRCiz:
 nop
@@ -4578,7 +4578,7 @@
 b__MA7naqebvq25PbafhzreSenzrRiragUvfgbel17nqqCerPbzcbfvgvbaRzy:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_8uneqjner8tencuvpf6pbzzba4I1_29PbybeZbqrRR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq6IrpgbeVAF_8uneqjner8tencuvpf6pbzzba4I1_29PbybeZbqrRR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq6IrpgbeVAF_8uneqjner8tencuvpf6pbzzba4I1_29PbybeZbqrRR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq6IrpgbeVAF_8uneqjner8tencuvpf6pbzzba4I1_29PbybeZbqrRR10qb_qrfgeblRCiz:
 nop
@@ -4588,7 +4588,7 @@
 b__MA7naqebvq14FgernzFcyvggreQ2Ri:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_12QvfcynlFgngrRR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_12QvfcynlFgngrRR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_12QvfcynlFgngrRR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_12QvfcynlFgngrRR15qb_zbir_sbejneqRCiCXiz:
 nop
@@ -4613,7 +4613,7 @@
 b__MA7naqebvq12PbafhzreOnfr16baSenzrNinvynoyrREXAF_10OhssreVgrzR:
 nop
 .text
-.globl b__MAFg3__110__shapgvba6__shapVAF_6__ovaqVEAF_8shapgvbaVSiCiyEXA7naqebvq2fcVAF5_5SraprRRREXAF_6irpgbeVAF5_19FhesnprPbagebyFgngfRAF_9nyybpngbeVFP_RRRRRRRWEF4_EXAF_12cynprubyqref4__cuVYv1RRREXAFA_VYv2RRREXAFA_VYv3RRRRRRAFQ_VFK_RRSiyFN_FU_RR18qrfgebl_qrnyybpngrRi
+.weak b__MAFg3__110__shapgvba6__shapVAF_6__ovaqVEAF_8shapgvbaVSiCiyEXA7naqebvq2fcVAF5_5SraprRRREXAF_6irpgbeVAF5_19FhesnprPbagebyFgngfRAF_9nyybpngbeVFP_RRRRRRRWEF4_EXAF_12cynprubyqref4__cuVYv1RRREXAFA_VYv2RRREXAFA_VYv3RRRRRRAFQ_VFK_RRSiyFN_FU_RR18qrfgebl_qrnyybpngrRi
 .type b__MAFg3__110__shapgvba6__shapVAF_6__ovaqVEAF_8shapgvbaVSiCiyEXA7naqebvq2fcVAF5_5SraprRRREXAF_6irpgbeVAF5_19FhesnprPbagebyFgngfRAF_9nyybpngbeVFP_RRRRRRRWEF4_EXAF_12cynprubyqref4__cuVYv1RRREXAFA_VYv2RRREXAFA_VYv3RRRRRRAFQ_VFK_RRSiyFN_FU_RR18qrfgebl_qrnyybpngrRi,%function
 b__MAFg3__110__shapgvba6__shapVAF_6__ovaqVEAF_8shapgvbaVSiCiyEXA7naqebvq2fcVAF5_5SraprRRREXAF_6irpgbeVAF5_19FhesnprPbagebyFgngfRAF_9nyybpngbeVFP_RRRRRRRWEF4_EXAF_12cynprubyqref4__cuVYv1RRREXAFA_VYv2RRREXAFA_VYv3RRRRRRAFQ_VFK_RRSiyFN_FU_RR18qrfgebl_qrnyybpngrRi:
 nop
@@ -4633,7 +4633,7 @@
 b__MA7naqebvq23VQvfcynlRiragPbaarpgvbaQ1Ri:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVyR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVyR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVyR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVyR8qb_fcyngRCiCXiz:
 nop
@@ -4743,7 +4743,7 @@
 b__MGPA7naqebvq24OcErtvbaFnzcyvatYvfgrareR8_AF_9OcErsOnfrR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq6IrpgbeVyR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVyR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVyR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVyR15qb_zbir_sbejneqRCiCXiz:
 nop
@@ -4788,12 +4788,12 @@
 b__MGPA7naqebvq18OcPbafhzreYvfgrareR8_AF_10VVagresnprR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__16irpgbeVC13angvir_unaqyrAF_9nyybpngbeVF2_RRR8__nccraqRz
+.weak b__MAFg3__16irpgbeVC13angvir_unaqyrAF_9nyybpngbeVF2_RRR8__nccraqRz
 .type b__MAFg3__16irpgbeVC13angvir_unaqyrAF_9nyybpngbeVF2_RRR8__nccraqRz,%function
 b__MAFg3__16irpgbeVC13angvir_unaqyrAF_9nyybpngbeVF2_RRR8__nccraqRz:
 nop
 .text
-.globl b__MA7naqebvq12U2OPbairegreVAF_8uneqjner8tencuvpf11ohssredhrhr4I1_022VTencuvpOhssreCebqhpreRAF_23OaTencuvpOhssreCebqhpreRR10baGenafnpgRwEXAF_6CnepryRCF8_w
+.weak b__MA7naqebvq12U2OPbairegreVAF_8uneqjner8tencuvpf11ohssredhrhr4I1_022VTencuvpOhssreCebqhpreRAF_23OaTencuvpOhssreCebqhpreRR10baGenafnpgRwEXAF_6CnepryRCF8_w
 .type b__MA7naqebvq12U2OPbairegreVAF_8uneqjner8tencuvpf11ohssredhrhr4I1_022VTencuvpOhssreCebqhpreRAF_23OaTencuvpOhssreCebqhpreRR10baGenafnpgRwEXAF_6CnepryRCF8_w,%function
 b__MA7naqebvq12U2OPbairegreVAF_8uneqjner8tencuvpf11ohssredhrhr4I1_022VTencuvpOhssreCebqhpreRAF_23OaTencuvpOhssreCebqhpreRR10baGenafnpgRwEXAF_6CnepryRCF8_w:
 nop
@@ -4808,7 +4808,7 @@
 b__MA7naqebvq13YnlreZrgnqngn8frgVag32Rwv:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq16BpphcnaplGenpxre7FrtzragRAF_9nyybpngbeVF3_RRR8__nccraqRz
+.weak b__MAFg3__16irpgbeVA7naqebvq16BpphcnaplGenpxre7FrtzragRAF_9nyybpngbeVF3_RRR8__nccraqRz
 .type b__MAFg3__16irpgbeVA7naqebvq16BpphcnaplGenpxre7FrtzragRAF_9nyybpngbeVF3_RRR8__nccraqRz,%function
 b__MAFg3__16irpgbeVA7naqebvq16BpphcnaplGenpxre7FrtzragRAF_9nyybpngbeVF3_RRR8__nccraqRz:
 nop
@@ -4828,7 +4828,7 @@
 b__MA7naqebvq14FhesnprPbagebyP1REXAF_2fcVAF_21FhesnprPbzcbfrePyvragRRREXAF1_VAF_7VOvaqreRRREXAF1_VAF_22VTencuvpOhssreCebqhpreRRRo:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_10OhssreVgrzRR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq6IrpgbeVAF_10OhssreVgrzRR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq6IrpgbeVAF_10OhssreVgrzRR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq6IrpgbeVAF_10OhssreVgrzRR12qb_pbafgehpgRCiz:
 nop
@@ -4843,7 +4843,7 @@
 b__MA7naqebvq20QvfcynlRiragErprvireP1RAF_16VFhesnprPbzcbfre11IflapFbheprRAF1_13PbasvtPunatrqR:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_10OhssreVgrzRR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_10OhssreVgrzRR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_10OhssreVgrzRR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_10OhssreVgrzRR7qb_pbclRCiCXiz:
 nop
@@ -4903,7 +4903,7 @@
 b__MGPA7naqebvq19OhssreDhrhrPbafhzreR0_AF_23OaTencuvpOhssrePbafhzreR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__16irpgbeVuAF_9nyybpngbeVuRRR8__nccraqRz
+.weak b__MAFg3__16irpgbeVuAF_9nyybpngbeVuRRR8__nccraqRz
 .type b__MAFg3__16irpgbeVuAF_9nyybpngbeVuRRR8__nccraqRz,%function
 b__MAFg3__16irpgbeVuAF_9nyybpngbeVuRRR8__nccraqRz:
 nop
@@ -5023,7 +5023,7 @@
 b__MA7naqebvq13YnlreZrgnqngnnFREXF0_:
 nop
 .data
-.globl b__MGPA7naqebvq18UcCebqhpreYvfgrareR0_AF_11UcVagresnprVAF_18OcCebqhpreYvfgrareRAF_8uneqjner8tencuvpf11ohssredhrhr4I1_05hgvyf19U2OCebqhpreYvfgrareRWAF4_4I2_05hgvyf19U2OCebqhpreYvfgrareRRRR
+.weak b__MGPA7naqebvq18UcCebqhpreYvfgrareR0_AF_11UcVagresnprVAF_18OcCebqhpreYvfgrareRAF_8uneqjner8tencuvpf11ohssredhrhr4I1_05hgvyf19U2OCebqhpreYvfgrareRWAF4_4I2_05hgvyf19U2OCebqhpreYvfgrareRRRR
 .type b__MGPA7naqebvq18UcCebqhpreYvfgrareR0_AF_11UcVagresnprVAF_18OcCebqhpreYvfgrareRAF_8uneqjner8tencuvpf11ohssredhrhr4I1_05hgvyf19U2OCebqhpreYvfgrareRWAF4_4I2_05hgvyf19U2OCebqhpreYvfgrareRRRR,%object
 b__MGPA7naqebvq18UcCebqhpreYvfgrareR0_AF_11UcVagresnprVAF_18OcCebqhpreYvfgrareRAF_8uneqjner8tencuvpf11ohssredhrhr4I1_05hgvyf19U2OCebqhpreYvfgrareRWAF4_4I2_05hgvyf19U2OCebqhpreYvfgrareRRRR:
 .space __SIZEOF_POINTER__
@@ -5063,7 +5063,7 @@
 b__MGPA7naqebvq18OaCebqhpreYvfgrareR16_AF_7OOvaqreR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MGua8_A7naqebvq12U2OPbairegreVAF_8uneqjner8tencuvpf11ohssredhrhr4I1_022VTencuvpOhssreCebqhpreRAF_23OaTencuvpOhssreCebqhpreRR10baGenafnpgRwEXAF_6CnepryRCF8_w
+.weak b__MGua8_A7naqebvq12U2OPbairegreVAF_8uneqjner8tencuvpf11ohssredhrhr4I1_022VTencuvpOhssreCebqhpreRAF_23OaTencuvpOhssreCebqhpreRR10baGenafnpgRwEXAF_6CnepryRCF8_w
 .type b__MGua8_A7naqebvq12U2OPbairegreVAF_8uneqjner8tencuvpf11ohssredhrhr4I1_022VTencuvpOhssreCebqhpreRAF_23OaTencuvpOhssreCebqhpreRR10baGenafnpgRwEXAF_6CnepryRCF8_w,%function
 b__MGua8_A7naqebvq12U2OPbairegreVAF_8uneqjner8tencuvpf11ohssredhrhr4I1_022VTencuvpOhssreCebqhpreRAF_23OaTencuvpOhssreCebqhpreRR10baGenafnpgRwEXAF_6CnepryRCF8_w:
 nop
@@ -5093,7 +5093,7 @@
 b__MGua16_A7naqebvq18OcPbafhzreYvfgrareQ1Ri:
 nop
 .data
-.globl b__MGIA7naqebvq6Cnepry17SynggranoyrUrycreVAF_22SenzrRiragUvfgbelQrygnRRR
+.weak b__MGIA7naqebvq6Cnepry17SynggranoyrUrycreVAF_22SenzrRiragUvfgbelQrygnRRR
 .type b__MGIA7naqebvq6Cnepry17SynggranoyrUrycreVAF_22SenzrRiragUvfgbelQrygnRRR,%object
 b__MGIA7naqebvq6Cnepry17SynggranoyrUrycreVAF_22SenzrRiragUvfgbelQrygnRRR:
 .space __SIZEOF_POINTER__
@@ -5103,12 +5103,12 @@
 b__MGPA7naqebvq8uneqjner8tencuvpf11ohssredhrhr4I1_05hgvyf19U2OCebqhpreYvfgrareR0_AF_16CebqhpreYvfgrareR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__113__irpgbe_onfrVA7naqebvq17YvfgrarePnyyonpxfRAF_9nyybpngbeVF2_RRRQ2Ri
+.weak b__MAFg3__113__irpgbe_onfrVA7naqebvq17YvfgrarePnyyonpxfRAF_9nyybpngbeVF2_RRRQ2Ri
 .type b__MAFg3__113__irpgbe_onfrVA7naqebvq17YvfgrarePnyyonpxfRAF_9nyybpngbeVF2_RRRQ2Ri,%function
 b__MAFg3__113__irpgbe_onfrVA7naqebvq17YvfgrarePnyyonpxfRAF_9nyybpngbeVF2_RRRQ2Ri:
 nop
 .text
-.globl b__MAFg3__16irpgbeVvAF_9nyybpngbeVvRRR7erfreirRz
+.weak b__MAFg3__16irpgbeVvAF_9nyybpngbeVvRRR7erfreirRz
 .type b__MAFg3__16irpgbeVvAF_9nyybpngbeVvRRR7erfreirRz,%function
 b__MAFg3__16irpgbeVvAF_9nyybpngbeVvRRR7erfreirRz:
 nop
@@ -5118,7 +5118,7 @@
 b__MA7naqebvq29VGenafnpgvbaPbzcyrgrqYvfgrare12qrsnhyg_vzcyR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq2fcVAF_17VPbafhzreYvfgrareRRnFREXF2_
+.weak b__MA7naqebvq2fcVAF_17VPbafhzreYvfgrareRRnFREXF2_
 .type b__MA7naqebvq2fcVAF_17VPbafhzreYvfgrareRRnFREXF2_,%function
 b__MA7naqebvq2fcVAF_17VPbafhzreYvfgrareRRnFREXF2_:
 nop
@@ -5128,7 +5128,7 @@
 b__MGua8_A7naqebvq23OcTencuvpOhssreCebqhpreQ0Ri:
 nop
 .text
-.globl b__MGua16_A7naqebvq12U2OPbairegreVAF_8uneqjner8tencuvpf11ohssredhrhr4I2_017VCebqhpreYvfgrareRAF_18OaCebqhpreYvfgrareRR11yvaxGbQrnguREXAF_2fcVAF_7VOvaqre14QrnguErpvcvragRRRCiw
+.weak b__MGua16_A7naqebvq12U2OPbairegreVAF_8uneqjner8tencuvpf11ohssredhrhr4I2_017VCebqhpreYvfgrareRAF_18OaCebqhpreYvfgrareRR11yvaxGbQrnguREXAF_2fcVAF_7VOvaqre14QrnguErpvcvragRRRCiw
 .type b__MGua16_A7naqebvq12U2OPbairegreVAF_8uneqjner8tencuvpf11ohssredhrhr4I2_017VCebqhpreYvfgrareRAF_18OaCebqhpreYvfgrareRR11yvaxGbQrnguREXAF_2fcVAF_7VOvaqre14QrnguErpvcvragRRRCiw,%function
 b__MGua16_A7naqebvq12U2OPbairegreVAF_8uneqjner8tencuvpf11ohssredhrhr4I2_017VCebqhpreYvfgrareRAF_18OaCebqhpreYvfgrareRR11yvaxGbQrnguREXAF_2fcVAF_7VOvaqre14QrnguErpvcvragRRRCiw:
 nop
@@ -5173,7 +5173,7 @@
 b__MAX7naqebvq17SenzrRiragUvfgbel4qhzcREAFg3__112onfvp_fgevatVpAF1_11pune_genvgfVpRRAF1_9nyybpngbeVpRRRR:
 nop
 .data
-.globl b__MGIAFg3__120__funerq_cge_rzcynprVA7naqebvq9SraprGvzrRAF_9nyybpngbeVF2_RRRR
+.weak b__MGIAFg3__120__funerq_cge_rzcynprVA7naqebvq9SraprGvzrRAF_9nyybpngbeVF2_RRRR
 .type b__MGIAFg3__120__funerq_cge_rzcynprVA7naqebvq9SraprGvzrRAF_9nyybpngbeVF2_RRRR,%object
 b__MGIAFg3__120__funerq_cge_rzcynprVA7naqebvq9SraprGvzrRAF_9nyybpngbeVF2_RRRR:
 .space __SIZEOF_POINTER__
@@ -5228,7 +5228,7 @@
 b__MA7naqebvq21FhesnprPbzcbfrePyvrag11Genafnpgvba28qrsreGenafnpgvbaHagvy_yrtnplREXAF_2fcVAF_14FhesnprPbagebyRRREXAF2_VAF_7FhesnprRRRz:
 nop
 .text
-.globl b__MAFg3__110__shapgvba6__shapVAF_6__ovaqVEAF_8shapgvbaVSiCiyEXA7naqebvq2fcVAF5_5SraprRRREXAF_6irpgbeVAF5_19FhesnprPbagebyFgngfRAF_9nyybpngbeVFP_RRRRRRRWEF4_EXAF_12cynprubyqref4__cuVYv1RRREXAFA_VYv2RRREXAFA_VYv3RRRRRRAFQ_VFK_RRSiyFN_FU_RRpyRByFN_FU_
+.weak b__MAFg3__110__shapgvba6__shapVAF_6__ovaqVEAF_8shapgvbaVSiCiyEXA7naqebvq2fcVAF5_5SraprRRREXAF_6irpgbeVAF5_19FhesnprPbagebyFgngfRAF_9nyybpngbeVFP_RRRRRRRWEF4_EXAF_12cynprubyqref4__cuVYv1RRREXAFA_VYv2RRREXAFA_VYv3RRRRRRAFQ_VFK_RRSiyFN_FU_RRpyRByFN_FU_
 .type b__MAFg3__110__shapgvba6__shapVAF_6__ovaqVEAF_8shapgvbaVSiCiyEXA7naqebvq2fcVAF5_5SraprRRREXAF_6irpgbeVAF5_19FhesnprPbagebyFgngfRAF_9nyybpngbeVFP_RRRRRRRWEF4_EXAF_12cynprubyqref4__cuVYv1RRREXAFA_VYv2RRREXAFA_VYv3RRRRRRAFQ_VFK_RRSiyFN_FU_RRpyRByFN_FU_,%function
 b__MAFg3__110__shapgvba6__shapVAF_6__ovaqVEAF_8shapgvbaVSiCiyEXA7naqebvq2fcVAF5_5SraprRRREXAF_6irpgbeVAF5_19FhesnprPbagebyFgngfRAF_9nyybpngbeVFP_RRRRRRRWEF4_EXAF_12cynprubyqref4__cuVYv1RRREXAFA_VYv2RRREXAFA_VYv3RRRRRRAFQ_VFK_RRSiyFN_FU_RRpyRByFN_FU_:
 nop
@@ -5238,7 +5238,7 @@
 b__MGIA7naqebvq25PbafhzreSenzrRiragUvfgbelR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIA7naqebvq6IrpgbeVyRR
+.weak b__MGIA7naqebvq6IrpgbeVyRR
 .type b__MGIA7naqebvq6IrpgbeVyRR,%object
 b__MGIA7naqebvq6IrpgbeVyRR:
 .space __SIZEOF_POINTER__
@@ -5293,7 +5293,7 @@
 b__MGPA7naqebvq11OhssreDhrhr21CebklPbafhzreYvfgrareR0_AF_17VPbafhzreYvfgrareR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIA7naqebvq6Cnepry17SynggranoyrUrycreVAF_22VTencuvpOhssreCebqhpre17DhrhrOhssreBhgchgRRR
+.weak b__MGIA7naqebvq6Cnepry17SynggranoyrUrycreVAF_22VTencuvpOhssreCebqhpre17DhrhrOhssreBhgchgRRR
 .type b__MGIA7naqebvq6Cnepry17SynggranoyrUrycreVAF_22VTencuvpOhssreCebqhpre17DhrhrOhssreBhgchgRRR,%object
 b__MGIA7naqebvq6Cnepry17SynggranoyrUrycreVAF_22VTencuvpOhssreCebqhpre17DhrhrOhssreBhgchgRRR:
 .space __SIZEOF_POINTER__
@@ -5303,7 +5303,7 @@
 b__MGua8_A7naqebvq17VCebqhpreYvfgrareQ1Ri:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVzAF_2fcVAF_14FgernzFcyvggre13OhssreGenpxreRRRRRR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVzAF_2fcVAF_14FgernzFcyvggre13OhssreGenpxreRRRRRR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVzAF_2fcVAF_14FgernzFcyvggre13OhssreGenpxreRRRRRR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVzAF_2fcVAF_14FgernzFcyvggre13OhssreGenpxreRRRRRR10qb_qrfgeblRCiz:
 nop
@@ -5318,17 +5318,17 @@
 b__MAX7naqebvq7Fhesnpr5dhrelRvCv:
 nop
 .text
-.globl b__MAXFg3__110__shapgvba6__shapVAF_6__ovaqVEAF_8shapgvbaVSiCiyEXA7naqebvq2fcVAF5_5SraprRRREXAF_6irpgbeVAF5_19FhesnprPbagebyFgngfRAF_9nyybpngbeVFP_RRRRRRRWEF4_EXAF_12cynprubyqref4__cuVYv1RRREXAFA_VYv2RRREXAFA_VYv3RRRRRRAFQ_VFK_RRSiyFN_FU_RR7__pybarRCAF0_6__onfrVFM_RR
+.weak b__MAXFg3__110__shapgvba6__shapVAF_6__ovaqVEAF_8shapgvbaVSiCiyEXA7naqebvq2fcVAF5_5SraprRRREXAF_6irpgbeVAF5_19FhesnprPbagebyFgngfRAF_9nyybpngbeVFP_RRRRRRRWEF4_EXAF_12cynprubyqref4__cuVYv1RRREXAFA_VYv2RRREXAFA_VYv3RRRRRRAFQ_VFK_RRSiyFN_FU_RR7__pybarRCAF0_6__onfrVFM_RR
 .type b__MAXFg3__110__shapgvba6__shapVAF_6__ovaqVEAF_8shapgvbaVSiCiyEXA7naqebvq2fcVAF5_5SraprRRREXAF_6irpgbeVAF5_19FhesnprPbagebyFgngfRAF_9nyybpngbeVFP_RRRRRRRWEF4_EXAF_12cynprubyqref4__cuVYv1RRREXAFA_VYv2RRREXAFA_VYv3RRRRRRAFQ_VFK_RRSiyFN_FU_RR7__pybarRCAF0_6__onfrVFM_RR,%function
 b__MAXFg3__110__shapgvba6__shapVAF_6__ovaqVEAF_8shapgvbaVSiCiyEXA7naqebvq2fcVAF5_5SraprRRREXAF_6irpgbeVAF5_19FhesnprPbagebyFgngfRAF_9nyybpngbeVFP_RRRRRRRWEF4_EXAF_12cynprubyqref4__cuVYv1RRREXAFA_VYv2RRREXAFA_VYv3RRRRRRAFQ_VFK_RRSiyFN_FU_RR7__pybarRCAF0_6__onfrVFM_RR:
 nop
 .text
-.globl b__MAFg3__120__funerq_cge_rzcynprVA7naqebvq9SraprGvzrRAF_9nyybpngbeVF2_RRR16__ba_mreb_funerqRi
+.weak b__MAFg3__120__funerq_cge_rzcynprVA7naqebvq9SraprGvzrRAF_9nyybpngbeVF2_RRR16__ba_mreb_funerqRi
 .type b__MAFg3__120__funerq_cge_rzcynprVA7naqebvq9SraprGvzrRAF_9nyybpngbeVF2_RRR16__ba_mreb_funerqRi,%function
 b__MAFg3__120__funerq_cge_rzcynprVA7naqebvq9SraprGvzrRAF_9nyybpngbeVF2_RRR16__ba_mreb_funerqRi:
 nop
 .data
-.globl b__MGIA7naqebvq6Cnepry17SynggranoyrUrycreVAF_22VTencuvpOhssreCebqhpre16DhrhrOhssreVachgRRR
+.weak b__MGIA7naqebvq6Cnepry17SynggranoyrUrycreVAF_22VTencuvpOhssreCebqhpre16DhrhrOhssreVachgRRR
 .type b__MGIA7naqebvq6Cnepry17SynggranoyrUrycreVAF_22VTencuvpOhssreCebqhpre16DhrhrOhssreVachgRRR,%object
 b__MGIA7naqebvq6Cnepry17SynggranoyrUrycreVAF_22VTencuvpOhssreCebqhpre16DhrhrOhssreVachgRRR:
 .space __SIZEOF_POINTER__
@@ -5353,7 +5353,7 @@
 b__MGPA7naqebvq18OcPbafhzreYvfgrareR0_AF_15FnsrOcVagresnprVAF_17VPbafhzreYvfgrareRRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MGua8_A7naqebvq12U2OPbairegreVAF_8uneqjner8tencuvpf11ohssredhrhr4I2_022VTencuvpOhssreCebqhpreRAF_23OaTencuvpOhssreCebqhpreRR10baGenafnpgRwEXAF_6CnepryRCF8_w
+.weak b__MGua8_A7naqebvq12U2OPbairegreVAF_8uneqjner8tencuvpf11ohssredhrhr4I2_022VTencuvpOhssreCebqhpreRAF_23OaTencuvpOhssreCebqhpreRR10baGenafnpgRwEXAF_6CnepryRCF8_w
 .type b__MGua8_A7naqebvq12U2OPbairegreVAF_8uneqjner8tencuvpf11ohssredhrhr4I2_022VTencuvpOhssreCebqhpreRAF_23OaTencuvpOhssreCebqhpreRR10baGenafnpgRwEXAF_6CnepryRCF8_w,%function
 b__MGua8_A7naqebvq12U2OPbairegreVAF_8uneqjner8tencuvpf11ohssredhrhr4I2_022VTencuvpOhssreCebqhpreRAF_23OaTencuvpOhssreCebqhpreRR10baGenafnpgRwEXAF_6CnepryRCF8_w:
 nop
@@ -5373,7 +5373,7 @@
 b__MGua8_A7naqebvq24OcErtvbaFnzcyvatYvfgrareQ1Ri:
 nop
 .text
-.globl b__MAFg3__16__gerrVvAF_4yrffVvRRAF_9nyybpngbeVvRRR14__renfr_havdhrVvRRzEXG_
+.weak b__MAFg3__16__gerrVvAF_4yrffVvRRAF_9nyybpngbeVvRRR14__renfr_havdhrVvRRzEXG_
 .type b__MAFg3__16__gerrVvAF_4yrffVvRRAF_9nyybpngbeVvRRR14__renfr_havdhrVvRRzEXG_,%function
 b__MAFg3__16__gerrVvAF_4yrffVvRRAF_9nyybpngbeVvRRR14__renfr_havdhrVvRRzEXG_:
 nop
@@ -5393,7 +5393,7 @@
 b__MA7naqebvq19OhssreDhrhrPbafhzre25frgZnkNpdhverqOhssrePbhagRv:
 nop
 .text
-.globl b__MAX7naqebvq6Cnepry20ernqCneprynoyrIrpgbeVAF_16BpphcnaplGenpxre7FrtzragRRRvCAFg3__16irpgbeVG_AF4_9nyybpngbeVF6_RRRR
+.weak b__MAX7naqebvq6Cnepry20ernqCneprynoyrIrpgbeVAF_16BpphcnaplGenpxre7FrtzragRRRvCAFg3__16irpgbeVG_AF4_9nyybpngbeVF6_RRRR
 .type b__MAX7naqebvq6Cnepry20ernqCneprynoyrIrpgbeVAF_16BpphcnaplGenpxre7FrtzragRRRvCAFg3__16irpgbeVG_AF4_9nyybpngbeVF6_RRRR,%function
 b__MAX7naqebvq6Cnepry20ernqCneprynoyrIrpgbeVAF_16BpphcnaplGenpxre7FrtzragRRRvCAFg3__16irpgbeVG_AF4_9nyybpngbeVF6_RRRR:
 nop
@@ -5408,7 +5408,7 @@
 b__MA7naqebvq14FgernzFcyvggre14BhgchgYvfgrareQ0Ri:
 nop
 .data
-.globl b__MGIA7naqebvq12FbegrqIrpgbeVAF_12QvfcynlFgngrRRR
+.weak b__MGIA7naqebvq12FbegrqIrpgbeVAF_12QvfcynlFgngrRRR
 .type b__MGIA7naqebvq12FbegrqIrpgbeVAF_12QvfcynlFgngrRRR,%object
 b__MGIA7naqebvq12FbegrqIrpgbeVAF_12QvfcynlFgngrRRR:
 .space __SIZEOF_POINTER__
@@ -5438,7 +5438,7 @@
 b__MA7naqebvq20QvfcynlRiragErprvireQ1Ri:
 nop
 .text
-.globl b__MA7naqebvq11OaVagresnprVAF_22VFhesnprPbzcbfrePyvragRR10baNfOvaqreRi
+.weak b__MA7naqebvq11OaVagresnprVAF_22VFhesnprPbzcbfrePyvragRR10baNfOvaqreRi
 .type b__MA7naqebvq11OaVagresnprVAF_22VFhesnprPbzcbfrePyvragRR10baNfOvaqreRi,%function
 b__MA7naqebvq11OaVagresnprVAF_22VFhesnprPbzcbfrePyvragRR10baNfOvaqreRi:
 nop
@@ -5458,12 +5458,12 @@
 b__MGGA7naqebvq21QhzzlCebqhpreYvfgrareR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzyRRAF_22__habeqrerq_znc_unfureVzF2_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF2_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF2_RRR6erunfuRz
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzyRRAF_22__habeqrerq_znc_unfureVzF2_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF2_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF2_RRR6erunfuRz
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzyRRAF_22__habeqrerq_znc_unfureVzF2_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF2_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF2_RRR6erunfuRz,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzyRRAF_22__habeqrerq_znc_unfureVzF2_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF2_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF2_RRR6erunfuRz:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVA7naqebvq2fcVAF1_7VOvaqreRRRAF1_16VFhesnprPbzcbfre6FcUnfuVF3_RRAF_8rdhny_gbVF4_RRAF_9nyybpngbeVF4_RRR8__erunfuRz
+.weak b__MAFg3__112__unfu_gnoyrVA7naqebvq2fcVAF1_7VOvaqreRRRAF1_16VFhesnprPbzcbfre6FcUnfuVF3_RRAF_8rdhny_gbVF4_RRAF_9nyybpngbeVF4_RRR8__erunfuRz
 .type b__MAFg3__112__unfu_gnoyrVA7naqebvq2fcVAF1_7VOvaqreRRRAF1_16VFhesnprPbzcbfre6FcUnfuVF3_RRAF_8rdhny_gbVF4_RRAF_9nyybpngbeVF4_RRR8__erunfuRz,%function
 b__MAFg3__112__unfu_gnoyrVA7naqebvq2fcVAF1_7VOvaqreRRRAF1_16VFhesnprPbzcbfre6FcUnfuVF3_RRAF_8rdhny_gbVF4_RRAF_9nyybpngbeVF4_RRR8__erunfuRz:
 nop
@@ -5513,12 +5513,12 @@
 b__MA7naqebvq10pbairefvba9pbairegGbRCAF_22SenzrRiragUvfgbelQrygnREXAF_8uneqjner8tencuvpf11ohssredhrhr4I1_022VTencuvpOhssreCebqhpre22SenzrRiragUvfgbelQrygnR:
 nop
 .text
-.globl b__MA7naqebvq6Cnepry5jevgrVAF_4ErpgRRRvEXAF_16YvtugSynggranoyrVG_RR
+.weak b__MA7naqebvq6Cnepry5jevgrVAF_4ErpgRRRvEXAF_16YvtugSynggranoyrVG_RR
 .type b__MA7naqebvq6Cnepry5jevgrVAF_4ErpgRRRvEXAF_16YvtugSynggranoyrVG_RR,%function
 b__MA7naqebvq6Cnepry5jevgrVAF_4ErpgRRRvEXAF_16YvtugSynggranoyrVG_RR:
 nop
 .text
-.globl b__MAFg3__110__shapgvba6__shapVCSiCizRAF_9nyybpngbeVF4_RRF3_R18qrfgebl_qrnyybpngrRi
+.weak b__MAFg3__110__shapgvba6__shapVCSiCizRAF_9nyybpngbeVF4_RRF3_R18qrfgebl_qrnyybpngrRi
 .type b__MAFg3__110__shapgvba6__shapVCSiCizRAF_9nyybpngbeVF4_RRF3_R18qrfgebl_qrnyybpngrRi,%function
 b__MAFg3__110__shapgvba6__shapVCSiCizRAF_9nyybpngbeVF4_RRF3_R18qrfgebl_qrnyybpngrRi:
 nop
@@ -5543,7 +5543,7 @@
 b__MA7naqebvq10TYPbafhzre15frgEryrnfrSraprREXAF_2fcVAF_5SraprRRR:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_12QvfcynlFgngrRR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq6IrpgbeVAF_12QvfcynlFgngrRR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq6IrpgbeVAF_12QvfcynlFgngrRR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq6IrpgbeVAF_12QvfcynlFgngrRR12qb_pbafgehpgRCiz:
 nop
@@ -5553,7 +5553,7 @@
 b__MGGA7naqebvq8uneqjner8tencuvpf11ohssredhrhr4I1_05hgvyf19U2OCebqhpreYvfgrareR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq9FvatyrgbaVAF_21QrsnhygPbzcbfrePyvragRR11trgVafgnaprRi
+.weak b__MA7naqebvq9FvatyrgbaVAF_21QrsnhygPbzcbfrePyvragRR11trgVafgnaprRi
 .type b__MA7naqebvq9FvatyrgbaVAF_21QrsnhygPbzcbfrePyvragRR11trgVafgnaprRi,%function
 b__MA7naqebvq9FvatyrgbaVAF_21QrsnhygPbzcbfrePyvragRR11trgVafgnaprRi:
 nop
@@ -5598,7 +5598,7 @@
 b__MA7naqebvq8uneqjner8tencuvpf11ohssredhrhr4I1_05hgvyf19U2OCebqhpreYvfgrareP2REXAF_2fcVAF3_17VCebqhpreYvfgrareRRR:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVA7naqebvq2fcVAF2_14FhesnprPbagebyRRRAF2_13PbzcbfreFgngrRRRAF_22__habeqrerq_znc_unfureVF5_F7_AF2_21FhesnprPbzcbfrePyvrag6FPUnfuRYo1RRRAF_21__habeqrerq_znc_rdhnyVF5_F7_AF_8rdhny_gbVF5_RRYo1RRRAF_9nyybpngbeVF7_RRR6erunfuRz
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVA7naqebvq2fcVAF2_14FhesnprPbagebyRRRAF2_13PbzcbfreFgngrRRRAF_22__habeqrerq_znc_unfureVF5_F7_AF2_21FhesnprPbzcbfrePyvrag6FPUnfuRYo1RRRAF_21__habeqrerq_znc_rdhnyVF5_F7_AF_8rdhny_gbVF5_RRYo1RRRAF_9nyybpngbeVF7_RRR6erunfuRz
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVA7naqebvq2fcVAF2_14FhesnprPbagebyRRRAF2_13PbzcbfreFgngrRRRAF_22__habeqrerq_znc_unfureVF5_F7_AF2_21FhesnprPbzcbfrePyvrag6FPUnfuRYo1RRRAF_21__habeqrerq_znc_rdhnyVF5_F7_AF_8rdhny_gbVF5_RRYo1RRRAF_9nyybpngbeVF7_RRR6erunfuRz,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVA7naqebvq2fcVAF2_14FhesnprPbagebyRRRAF2_13PbzcbfreFgngrRRRAF_22__habeqrerq_znc_unfureVF5_F7_AF2_21FhesnprPbzcbfrePyvrag6FPUnfuRYo1RRRAF_21__habeqrerq_znc_rdhnyVF5_F7_AF_8rdhny_gbVF5_RRYo1RRRAF_9nyybpngbeVF7_RRR6erunfuRz:
 nop
@@ -5613,7 +5613,7 @@
 b__MA7naqebvq28GenafnpgvbaPbzcyrgrqYvfgrare15trgArkgVqYbpxrqRi:
 nop
 .text
-.globl b__MAFg3__120__funerq_cge_rzcynprVA7naqebvq9SraprGvzrRAF_9nyybpngbeVF2_RRR21__ba_mreb_funerq_jrnxRi
+.weak b__MAFg3__120__funerq_cge_rzcynprVA7naqebvq9SraprGvzrRAF_9nyybpngbeVF2_RRR21__ba_mreb_funerq_jrnxRi
 .type b__MAFg3__120__funerq_cge_rzcynprVA7naqebvq9SraprGvzrRAF_9nyybpngbeVF2_RRR21__ba_mreb_funerq_jrnxRi,%function
 b__MAFg3__120__funerq_cge_rzcynprVA7naqebvq9SraprGvzrRAF_9nyybpngbeVF2_RRR21__ba_mreb_funerq_jrnxRi:
 nop
@@ -5678,7 +5678,7 @@
 b__MA7naqebvq21FhesnprPbzcbfrePyvrag24trgPbzcbfvgvbaCersreraprRCAF_8uneqjner8tencuvpf6pbzzba4I1_29QngnfcnprRCAF4_11CvkrySbezngRF6_F8_:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_2fcVAF_13TencuvpOhssreRRRR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq6IrpgbeVAF_2fcVAF_13TencuvpOhssreRRRR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq6IrpgbeVAF_2fcVAF_13TencuvpOhssreRRRR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq6IrpgbeVAF_2fcVAF_13TencuvpOhssreRRRR12qb_pbafgehpgRCiz:
 nop
@@ -5713,7 +5713,7 @@
 b__MA7naqebvq10pbairefvba9pbairegGbRCAF_22VTencuvpOhssreCebqhpre17DhrhrOhssreBhgchgREXAF_8uneqjner8tencuvpf11ohssredhrhr4I1_022VTencuvpOhssreCebqhpre17DhrhrOhssreBhgchgR:
 nop
 .text
-.globl b__MA7naqebvq11OaVagresnprVAF_29VGenafnpgvbaPbzcyrgrqYvfgrareRR10baNfOvaqreRi
+.weak b__MA7naqebvq11OaVagresnprVAF_29VGenafnpgvbaPbzcyrgrqYvfgrareRR10baNfOvaqreRi
 .type b__MA7naqebvq11OaVagresnprVAF_29VGenafnpgvbaPbzcyrgrqYvfgrareRR10baNfOvaqreRi,%function
 b__MA7naqebvq11OaVagresnprVAF_29VGenafnpgvbaPbzcyrgrqYvfgrareRR10baNfOvaqreRi:
 nop
@@ -5733,7 +5733,7 @@
 b__MA7naqebvq18OcPbafhzreYvfgrareQ1Ri:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq12FhesnprFgngfRAF_9nyybpngbeVF2_RRR8__nccraqRz
+.weak b__MAFg3__16irpgbeVA7naqebvq12FhesnprFgngfRAF_9nyybpngbeVF2_RRR8__nccraqRz
 .type b__MAFg3__16irpgbeVA7naqebvq12FhesnprFgngfRAF_9nyybpngbeVF2_RRR8__nccraqRz,%function
 b__MAFg3__16irpgbeVA7naqebvq12FhesnprFgngfRAF_9nyybpngbeVF2_RRR8__nccraqRz:
 nop
@@ -5753,7 +5753,7 @@
 b__MA7naqebvq7Fhesnpr10qvfpbaarpgRvAF_22VTencuvpOhssreCebqhpre14QvfpbaarpgZbqrR:
 nop
 .data
-.globl b__MGPA7naqebvq23UcTencuvpOhssreCebqhpreR0_AF_10VVagresnprR
+.weak b__MGPA7naqebvq23UcTencuvpOhssreCebqhpreR0_AF_10VVagresnprR
 .type b__MGPA7naqebvq23UcTencuvpOhssreCebqhpreR0_AF_10VVagresnprR,%object
 b__MGPA7naqebvq23UcTencuvpOhssreCebqhpreR0_AF_10VVagresnprR:
 .space __SIZEOF_POINTER__
@@ -5783,7 +5783,7 @@
 b__MGi0_a24_A7naqebvq18OcPbafhzreYvfgrareQ0Ri:
 nop
 .text
-.globl b__MA7naqebvq9FvatyrgbaVAF_15PbzcbfreFreivprRR11unfVafgnaprRi
+.weak b__MA7naqebvq9FvatyrgbaVAF_15PbzcbfreFreivprRR11unfVafgnaprRi
 .type b__MA7naqebvq9FvatyrgbaVAF_15PbzcbfreFreivprRR11unfVafgnaprRi,%function
 b__MA7naqebvq9FvatyrgbaVAF_15PbzcbfreFreivprRR11unfVafgnaprRi:
 nop
@@ -5798,7 +5798,7 @@
 b__MA7naqebvq22VTencuvpOhssreCebqhpreQ2Ri:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_2fcVAF_13TencuvpOhssreRRRR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq6IrpgbeVAF_2fcVAF_13TencuvpOhssreRRRR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq6IrpgbeVAF_2fcVAF_13TencuvpOhssreRRRR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq6IrpgbeVAF_2fcVAF_13TencuvpOhssreRRRR10qb_qrfgeblRCiz:
 nop
@@ -5818,12 +5818,12 @@
 b__MGPA7naqebvq23OaFhesnprPbzcbfrePyvragR8_AF_7OOvaqreR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq19VachgJvaqbjPbzznaqf25GenafsreGbhpuSbphfPbzznaqRAF_9nyybpngbeVF3_RRR24__rzcynpr_onpx_fybj_cnguVWEF3_RRRiQcBG_
+.weak b__MAFg3__16irpgbeVA7naqebvq19VachgJvaqbjPbzznaqf25GenafsreGbhpuSbphfPbzznaqRAF_9nyybpngbeVF3_RRR24__rzcynpr_onpx_fybj_cnguVWEF3_RRRiQcBG_
 .type b__MAFg3__16irpgbeVA7naqebvq19VachgJvaqbjPbzznaqf25GenafsreGbhpuSbphfPbzznaqRAF_9nyybpngbeVF3_RRR24__rzcynpr_onpx_fybj_cnguVWEF3_RRRiQcBG_,%function
 b__MAFg3__16irpgbeVA7naqebvq19VachgJvaqbjPbzznaqf25GenafsreGbhpuSbphfPbzznaqRAF_9nyybpngbeVF3_RRR24__rzcynpr_onpx_fybj_cnguVWEF3_RRRiQcBG_:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVA7naqebvq2fcVAF2_7VOvaqreRRRAF3_VAF2_14FhesnprPbagebyRRRRRAF_22__habeqrerq_znc_unfureVF5_F8_AF2_28GenafnpgvbaPbzcyrgrqYvfgrare11VOvaqreUnfuRYo1RRRAF_21__habeqrerq_znc_rdhnyVF5_F8_AF_8rdhny_gbVF5_RRYo1RRRAF_9nyybpngbeVF8_RRR25__rzcynpr_havdhr_xrl_netfVF5_WEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWBF5_RRRAFB_VWRRRRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF8_CiRRRRoRREXG_QcBG0_
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVA7naqebvq2fcVAF2_7VOvaqreRRRAF3_VAF2_14FhesnprPbagebyRRRRRAF_22__habeqrerq_znc_unfureVF5_F8_AF2_28GenafnpgvbaPbzcyrgrqYvfgrare11VOvaqreUnfuRYo1RRRAF_21__habeqrerq_znc_rdhnyVF5_F8_AF_8rdhny_gbVF5_RRYo1RRRAF_9nyybpngbeVF8_RRR25__rzcynpr_havdhr_xrl_netfVF5_WEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWBF5_RRRAFB_VWRRRRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF8_CiRRRRoRREXG_QcBG0_
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVA7naqebvq2fcVAF2_7VOvaqreRRRAF3_VAF2_14FhesnprPbagebyRRRRRAF_22__habeqrerq_znc_unfureVF5_F8_AF2_28GenafnpgvbaPbzcyrgrqYvfgrare11VOvaqreUnfuRYo1RRRAF_21__habeqrerq_znc_rdhnyVF5_F8_AF_8rdhny_gbVF5_RRYo1RRRAF_9nyybpngbeVF8_RRR25__rzcynpr_havdhr_xrl_netfVF5_WEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWBF5_RRRAFB_VWRRRRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF8_CiRRRRoRREXG_QcBG0_,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVA7naqebvq2fcVAF2_7VOvaqreRRRAF3_VAF2_14FhesnprPbagebyRRRRRAF_22__habeqrerq_znc_unfureVF5_F8_AF2_28GenafnpgvbaPbzcyrgrqYvfgrare11VOvaqreUnfuRYo1RRRAF_21__habeqrerq_znc_rdhnyVF5_F8_AF_8rdhny_gbVF5_RRYo1RRRAF_9nyybpngbeVF8_RRR25__rzcynpr_havdhr_xrl_netfVF5_WEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWBF5_RRRAFB_VWRRRRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF8_CiRRRRoRREXG_QcBG0_:
 nop
@@ -5843,7 +5843,7 @@
 b__MA7naqebvq17VPbafhzreYvfgrare12qrsnhyg_vzcyR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGPA7naqebvq18UcCebqhpreYvfgrareR8_AF_10VVagresnprR
+.weak b__MGPA7naqebvq18UcCebqhpreYvfgrareR8_AF_10VVagresnprR
 .type b__MGPA7naqebvq18UcCebqhpreYvfgrareR8_AF_10VVagresnprR,%object
 b__MGPA7naqebvq18UcCebqhpreYvfgrareR8_AF_10VVagresnprR:
 .space __SIZEOF_POINTER__
@@ -5858,7 +5858,7 @@
 b__MAX7naqebvq10TYPbafhzre15trgPheeragSraprRi:
 nop
 .text
-.globl b__MA7naqebvq2jcVAF_7VOvaqreRRnFREXAF_2fcVF1_RR
+.weak b__MA7naqebvq2jcVAF_7VOvaqreRRnFREXAF_2fcVF1_RR
 .type b__MA7naqebvq2jcVAF_7VOvaqreRRnFREXAF_2fcVF1_RR,%function
 b__MA7naqebvq2jcVAF_7VOvaqreRRnFREXAF_2fcVF1_RR:
 nop
@@ -5908,7 +5908,7 @@
 b__MGPA7naqebvq18OaCebqhpreYvfgrareR0_AF_11OaVagresnprVAF_17VCebqhpreYvfgrareRRR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIA7naqebvq6IrpgbeVAF_11PchPbafhzre14NpdhverqOhssreRRR
+.weak b__MGIA7naqebvq6IrpgbeVAF_11PchPbafhzre14NpdhverqOhssreRRR
 .type b__MGIA7naqebvq6IrpgbeVAF_11PchPbafhzre14NpdhverqOhssreRRR,%object
 b__MGIA7naqebvq6IrpgbeVAF_11PchPbafhzre14NpdhverqOhssreRRR:
 .space __SIZEOF_POINTER__
@@ -5933,12 +5933,12 @@
 b__MA7naqebvq22VFhesnprPbzcbfrePyvrag11nfVagresnprREXAF_2fcVAF_7VOvaqreRRR:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_8uneqjner8tencuvpf6pbzzba4I1_29PbybeZbqrRR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_8uneqjner8tencuvpf6pbzzba4I1_29PbybeZbqrRR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_8uneqjner8tencuvpf6pbzzba4I1_29PbybeZbqrRR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_8uneqjner8tencuvpf6pbzzba4I1_29PbybeZbqrRR7qb_pbclRCiCXiz:
 nop
 .text
-.globl b__MA7naqebvq2fcVAF_13TencuvpOhssreRRP2RCF1_
+.weak b__MA7naqebvq2fcVAF_13TencuvpOhssreRRP2RCF1_
 .type b__MA7naqebvq2fcVAF_13TencuvpOhssreRRP2RCF1_,%function
 b__MA7naqebvq2fcVAF_13TencuvpOhssreRRP2RCF1_:
 nop
@@ -5948,12 +5948,12 @@
 b__MA7naqebvq8uneqjner8tencuvpf11ohssredhrhr4I1_05hgvyf24U2OTencuvpOhssreCebqhpre12nggnpuOhssreRCvEXAF_2fcVAF_13TencuvpOhssreRRR:
 nop
 .text
-.globl b__MA7naqebvq6Cnepry5jevgrVAF_15UqePncnovyvgvrfRRRvEXAF_16YvtugSynggranoyrVG_RR
+.weak b__MA7naqebvq6Cnepry5jevgrVAF_15UqePncnovyvgvrfRRRvEXAF_16YvtugSynggranoyrVG_RR
 .type b__MA7naqebvq6Cnepry5jevgrVAF_15UqePncnovyvgvrfRRRvEXAF_16YvtugSynggranoyrVG_RR,%function
 b__MA7naqebvq6Cnepry5jevgrVAF_15UqePncnovyvgvrfRRRvEXAF_16YvtugSynggranoyrVG_RR:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVyAF_4unfuVyRRAF_8rdhny_gbVyRRAF_9nyybpngbeVyRRR25__rzcynpr_havdhr_xrl_netfVyWEXyRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVyCiRRRRoRREXG_QcBG0_
+.weak b__MAFg3__112__unfu_gnoyrVyAF_4unfuVyRRAF_8rdhny_gbVyRRAF_9nyybpngbeVyRRR25__rzcynpr_havdhr_xrl_netfVyWEXyRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVyCiRRRRoRREXG_QcBG0_
 .type b__MAFg3__112__unfu_gnoyrVyAF_4unfuVyRRAF_8rdhny_gbVyRRAF_9nyybpngbeVyRRR25__rzcynpr_havdhr_xrl_netfVyWEXyRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVyCiRRRRoRREXG_QcBG0_,%function
 b__MAFg3__112__unfu_gnoyrVyAF_4unfuVyRRAF_8rdhny_gbVyRRAF_9nyybpngbeVyRRR25__rzcynpr_havdhr_xrl_netfVyWEXyRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVyCiRRRRoRREXG_QcBG0_:
 nop
@@ -5983,7 +5983,7 @@
 b__MGPA7naqebvq17OcFhesnprPbzcbfreR8_AF_9OcErsOnfrR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVzAF_2fcVAF_14FgernzFcyvggre13OhssreGenpxreRRRRRR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVzAF_2fcVAF_14FgernzFcyvggre13OhssreGenpxreRRRRRR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVzAF_2fcVAF_14FgernzFcyvggre13OhssreGenpxreRRRRRR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVzAF_2fcVAF_14FgernzFcyvggre13OhssreGenpxreRRRRRR15qb_zbir_sbejneqRCiCXiz:
 nop
@@ -6008,12 +6008,12 @@
 b__MA7naqebvq7Fhesnpr25frgOhssrefFgvpxlGenafsbezRw:
 nop
 .text
-.globl b__MA7naqebvq2fcVAF_28GenafnpgvbaPbzcyrgrqYvfgrareRRQ2Ri
+.weak b__MA7naqebvq2fcVAF_28GenafnpgvbaPbzcyrgrqYvfgrareRRQ2Ri
 .type b__MA7naqebvq2fcVAF_28GenafnpgvbaPbzcyrgrqYvfgrareRRQ2Ri,%function
 b__MA7naqebvq2fcVAF_28GenafnpgvbaPbzcyrgrqYvfgrareRRQ2Ri:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVyA7naqebvq28GenafnpgvbaPbzcyrgrqYvfgrare19PnyyonpxGenafyngvbaRRRAF_22__habeqrerq_znc_unfureVyF5_AF_4unfuVyRRYo1RRRAF_21__habeqrerq_znc_rdhnyVyF5_AF_8rdhny_gbVyRRYo1RRRAF_9nyybpngbeVF5_RRR8__erunfuRz
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVyA7naqebvq28GenafnpgvbaPbzcyrgrqYvfgrare19PnyyonpxGenafyngvbaRRRAF_22__habeqrerq_znc_unfureVyF5_AF_4unfuVyRRYo1RRRAF_21__habeqrerq_znc_rdhnyVyF5_AF_8rdhny_gbVyRRYo1RRRAF_9nyybpngbeVF5_RRR8__erunfuRz
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVyA7naqebvq28GenafnpgvbaPbzcyrgrqYvfgrare19PnyyonpxGenafyngvbaRRRAF_22__habeqrerq_znc_unfureVyF5_AF_4unfuVyRRYo1RRRAF_21__habeqrerq_znc_rdhnyVyF5_AF_8rdhny_gbVyRRYo1RRRAF_9nyybpngbeVF5_RRR8__erunfuRz,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVyA7naqebvq28GenafnpgvbaPbzcyrgrqYvfgrare19PnyyonpxGenafyngvbaRRRAF_22__habeqrerq_znc_unfureVyF5_AF_4unfuVyRRYo1RRRAF_21__habeqrerq_znc_rdhnyVyF5_AF_8rdhny_gbVyRRYo1RRRAF_9nyybpngbeVF5_RRR8__erunfuRz:
 nop
@@ -6023,7 +6023,7 @@
 b__MA7naqebvq20QvfcynlRiragErprvire10fraqRiragfRCAF_3thv7OvgGhorRCXAF0_5RiragRz:
 nop
 .text
-.globl b__MA7naqebvq9FvatyrgbaVAF_12FlapSrngherfRRP1Ri
+.weak b__MA7naqebvq9FvatyrgbaVAF_12FlapSrngherfRRP1Ri
 .type b__MA7naqebvq9FvatyrgbaVAF_12FlapSrngherfRRP1Ri,%function
 b__MA7naqebvq9FvatyrgbaVAF_12FlapSrngherfRRP1Ri:
 nop
@@ -6098,17 +6098,17 @@
 b__MA7naqebvq9FvatyrgbaVAF_12FlapSrngherfRR9fVafgnaprR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_11QvfcynlVasbRR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_11QvfcynlVasbRR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_11QvfcynlVasbRR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_11QvfcynlVasbRR8qb_fcyngRCiCXiz:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwAF_6irpgbeVuAF_9nyybpngbeVuRRRRRRAF_22__habeqrerq_znc_unfureVwF6_AF_4unfuVwRRYo1RRRAF_21__habeqrerq_znc_rdhnyVwF6_AF_8rdhny_gbVwRRYo1RRRAF3_VF6_RRR8__erunfuRz
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwAF_6irpgbeVuAF_9nyybpngbeVuRRRRRRAF_22__habeqrerq_znc_unfureVwF6_AF_4unfuVwRRYo1RRRAF_21__habeqrerq_znc_rdhnyVwF6_AF_8rdhny_gbVwRRYo1RRRAF3_VF6_RRR8__erunfuRz
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwAF_6irpgbeVuAF_9nyybpngbeVuRRRRRRAF_22__habeqrerq_znc_unfureVwF6_AF_4unfuVwRRYo1RRRAF_21__habeqrerq_znc_rdhnyVwF6_AF_8rdhny_gbVwRRYo1RRRAF3_VF6_RRR8__erunfuRz,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwAF_6irpgbeVuAF_9nyybpngbeVuRRRRRRAF_22__habeqrerq_znc_unfureVwF6_AF_4unfuVwRRYo1RRRAF_21__habeqrerq_znc_rdhnyVwF6_AF_8rdhny_gbVwRRYo1RRRAF3_VF6_RRR8__erunfuRz:
 nop
 .text
-.globl b__MAFg3__114__fcyvg_ohssreVCA7naqebvq2fcVAF1_5SraprRRRAF_9nyybpngbeVF5_RRR9chfu_onpxRBF5_
+.weak b__MAFg3__114__fcyvg_ohssreVCA7naqebvq2fcVAF1_5SraprRRRAF_9nyybpngbeVF5_RRR9chfu_onpxRBF5_
 .type b__MAFg3__114__fcyvg_ohssreVCA7naqebvq2fcVAF1_5SraprRRRAF_9nyybpngbeVF5_RRR9chfu_onpxRBF5_,%function
 b__MAFg3__114__fcyvg_ohssreVCA7naqebvq2fcVAF1_5SraprRRRAF_9nyybpngbeVF5_RRR9chfu_onpxRBF5_:
 nop
@@ -6123,12 +6123,12 @@
 b__MGi0_a24_A7naqebvq21QhzzlCebqhpreYvfgrareQ1Ri:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_12U2OPbairegreVAF1_8uneqjner8tencuvpf11ohssredhrhr4I2_022VTencuvpOhssreCebqhpreRAF1_23OaTencuvpOhssreCebqhpreRR8BovghnelRRRAF_9nyybpngbeVFP_RRR21__chfu_onpx_fybj_cnguVFP_RRiBG_
+.weak b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_12U2OPbairegreVAF1_8uneqjner8tencuvpf11ohssredhrhr4I2_022VTencuvpOhssreCebqhpreRAF1_23OaTencuvpOhssreCebqhpreRR8BovghnelRRRAF_9nyybpngbeVFP_RRR21__chfu_onpx_fybj_cnguVFP_RRiBG_
 .type b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_12U2OPbairegreVAF1_8uneqjner8tencuvpf11ohssredhrhr4I2_022VTencuvpOhssreCebqhpreRAF1_23OaTencuvpOhssreCebqhpreRR8BovghnelRRRAF_9nyybpngbeVFP_RRR21__chfu_onpx_fybj_cnguVFP_RRiBG_,%function
 b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_12U2OPbairegreVAF1_8uneqjner8tencuvpf11ohssredhrhr4I2_022VTencuvpOhssreCebqhpreRAF1_23OaTencuvpOhssreCebqhpreRR8BovghnelRRRAF_9nyybpngbeVFP_RRR21__chfu_onpx_fybj_cnguVFP_RRiBG_:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq10SenzrRiragRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVF2_RRiBG_
+.weak b__MAFg3__16irpgbeVA7naqebvq10SenzrRiragRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVF2_RRiBG_
 .type b__MAFg3__16irpgbeVA7naqebvq10SenzrRiragRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVF2_RRiBG_,%function
 b__MAFg3__16irpgbeVA7naqebvq10SenzrRiragRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVF2_RRiBG_:
 nop
@@ -6178,7 +6178,7 @@
 b__MA7naqebvq21FhesnprPbzcbfrePyvrag11Genafnpgvba15frgNpdhverSraprREXAF_2fcVAF_14FhesnprPbagebyRRREXAF2_VAF_5SraprRRR:
 nop
 .text
-.globl b__MGua16_A7naqebvq12U2OPbairegreVAF_8uneqjner8tencuvpf11ohssredhrhr4I1_017VCebqhpreYvfgrareRAF_18OaCebqhpreYvfgrareRR11yvaxGbQrnguREXAF_2fcVAF_7VOvaqre14QrnguErpvcvragRRRCiw
+.weak b__MGua16_A7naqebvq12U2OPbairegreVAF_8uneqjner8tencuvpf11ohssredhrhr4I1_017VCebqhpreYvfgrareRAF_18OaCebqhpreYvfgrareRR11yvaxGbQrnguREXAF_2fcVAF_7VOvaqre14QrnguErpvcvragRRRCiw
 .type b__MGua16_A7naqebvq12U2OPbairegreVAF_8uneqjner8tencuvpf11ohssredhrhr4I1_017VCebqhpreYvfgrareRAF_18OaCebqhpreYvfgrareRR11yvaxGbQrnguREXAF_2fcVAF_7VOvaqre14QrnguErpvcvragRRRCiw,%function
 b__MGua16_A7naqebvq12U2OPbairegreVAF_8uneqjner8tencuvpf11ohssredhrhr4I1_017VCebqhpreYvfgrareRAF_18OaCebqhpreYvfgrareRR11yvaxGbQrnguREXAF_2fcVAF_7VOvaqre14QrnguErpvcvragRRRCiw:
 nop
@@ -6228,17 +6228,17 @@
 b__MA7naqebvq8uneqjner8tencuvpf11ohssredhrhr4I2_05hgvyf24U2OTencuvpOhssreCebqhpre5dhrelRvCv:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwAF_6irpgbeVuAF_9nyybpngbeVuRRRRRRAF_22__habeqrerq_znc_unfureVwF6_AF_4unfuVwRRYo1RRRAF_21__habeqrerq_znc_rdhnyVwF6_AF_8rdhny_gbVwRRYo1RRRAF3_VF6_RRR6erunfuRz
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwAF_6irpgbeVuAF_9nyybpngbeVuRRRRRRAF_22__habeqrerq_znc_unfureVwF6_AF_4unfuVwRRYo1RRRAF_21__habeqrerq_znc_rdhnyVwF6_AF_8rdhny_gbVwRRYo1RRRAF3_VF6_RRR6erunfuRz
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwAF_6irpgbeVuAF_9nyybpngbeVuRRRRRRAF_22__habeqrerq_znc_unfureVwF6_AF_4unfuVwRRYo1RRRAF_21__habeqrerq_znc_rdhnyVwF6_AF_8rdhny_gbVwRRYo1RRRAF3_VF6_RRR6erunfuRz,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwAF_6irpgbeVuAF_9nyybpngbeVuRRRRRRAF_22__habeqrerq_znc_unfureVwF6_AF_4unfuVwRRYo1RRRAF_21__habeqrerq_znc_rdhnyVwF6_AF_8rdhny_gbVwRRYo1RRRAF3_VF6_RRR6erunfuRz:
 nop
 .text
-.globl b__MA7naqebvq2fcVAF_17VCebqhpreYvfgrareRRQ2Ri
+.weak b__MA7naqebvq2fcVAF_17VCebqhpreYvfgrareRRQ2Ri
 .type b__MA7naqebvq2fcVAF_17VCebqhpreYvfgrareRRQ2Ri,%function
 b__MA7naqebvq2fcVAF_17VCebqhpreYvfgrareRRQ2Ri:
 nop
 .text
-.globl b__MAFg3__112__qrdhr_onfrVA7naqebvq2fcVAF1_5SraprRRRAF_9nyybpngbeVF4_RRR5pyrneRi
+.weak b__MAFg3__112__qrdhr_onfrVA7naqebvq2fcVAF1_5SraprRRRAF_9nyybpngbeVF4_RRR5pyrneRi
 .type b__MAFg3__112__qrdhr_onfrVA7naqebvq2fcVAF1_5SraprRRRAF_9nyybpngbeVF4_RRR5pyrneRi,%function
 b__MAFg3__112__qrdhr_onfrVA7naqebvq2fcVAF1_5SraprRRRAF_9nyybpngbeVF4_RRR5pyrneRi:
 nop
@@ -6273,7 +6273,7 @@
 b__MAX7naqebvq7Fhesnpr30dhrelFhccbegrqGvzrfgnzcfYbpxrqRi:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq16SenzrRiragfQrygnRAF_9nyybpngbeVF2_RRR8__nccraqRz
+.weak b__MAFg3__16irpgbeVA7naqebvq16SenzrRiragfQrygnRAF_9nyybpngbeVF2_RRR8__nccraqRz
 .type b__MAFg3__16irpgbeVA7naqebvq16SenzrRiragfQrygnRAF_9nyybpngbeVF2_RRR8__nccraqRz,%function
 b__MAFg3__16irpgbeVA7naqebvq16SenzrRiragfQrygnRAF_9nyybpngbeVF2_RRR8__nccraqRz:
 nop
@@ -6288,7 +6288,7 @@
 b__MA7naqebvq15PbzcbfreFreivprP1Ri:
 nop
 .text
-.globl b__MA7naqebvq2fcVAF_7VOvaqre14QrnguErpvcvragRRP2RCF2_
+.weak b__MA7naqebvq2fcVAF_7VOvaqre14QrnguErpvcvragRRP2RCF2_
 .type b__MA7naqebvq2fcVAF_7VOvaqre14QrnguErpvcvragRRP2RCF2_,%function
 b__MA7naqebvq2fcVAF_7VOvaqre14QrnguErpvcvragRRP2RCF2_:
 nop
@@ -6328,7 +6328,7 @@
 b__MA7naqebvq14FhesnprPbageby7eryrnfrRi:
 nop
 .text
-.globl b__MAFg3__15qrdhrVA7naqebvq16BpphcnaplGenpxre7FrtzragRAF_9nyybpngbeVF3_RRR20__nqq_sebag_pncnpvglRi
+.weak b__MAFg3__15qrdhrVA7naqebvq16BpphcnaplGenpxre7FrtzragRAF_9nyybpngbeVF3_RRR20__nqq_sebag_pncnpvglRi
 .type b__MAFg3__15qrdhrVA7naqebvq16BpphcnaplGenpxre7FrtzragRAF_9nyybpngbeVF3_RRR20__nqq_sebag_pncnpvglRi,%function
 b__MAFg3__15qrdhrVA7naqebvq16BpphcnaplGenpxre7FrtzragRAF_9nyybpngbeVF3_RRR20__nqq_sebag_pncnpvglRi:
 nop
@@ -6358,7 +6358,7 @@
 b__MAX7naqebvq14FhesnprPbageby20pyrneYnlreSenzrFgngfRi:
 nop
 .text
-.globl b__MA7naqebvq9FvatyrgbaVAF_21QrsnhygPbzcbfrePyvragRRP2Ri
+.weak b__MA7naqebvq9FvatyrgbaVAF_21QrsnhygPbzcbfrePyvragRRP2Ri
 .type b__MA7naqebvq9FvatyrgbaVAF_21QrsnhygPbzcbfrePyvragRRP2Ri,%function
 b__MA7naqebvq9FvatyrgbaVAF_21QrsnhygPbzcbfrePyvragRRP2Ri:
 nop
@@ -6383,12 +6383,12 @@
 b__MA7naqebvq7Fhesnpr10ubbx_dhrelRCX13NAngvirJvaqbjvCv:
 nop
 .text
-.globl b__MA7naqebvq2fcVAF_28GenafnpgvbaPbzcyrgrqYvfgrareRRP2RCF1_
+.weak b__MA7naqebvq2fcVAF_28GenafnpgvbaPbzcyrgrqYvfgrareRRP2RCF1_
 .type b__MA7naqebvq2fcVAF_28GenafnpgvbaPbzcyrgrqYvfgrareRRP2RCF1_,%function
 b__MA7naqebvq2fcVAF_28GenafnpgvbaPbzcyrgrqYvfgrareRRP2RCF1_:
 nop
 .text
-.globl b__MA7naqebvq9FvatyrgbaVAF_11OhssrePnpurRR11unfVafgnaprRi
+.weak b__MA7naqebvq9FvatyrgbaVAF_11OhssrePnpurRR11unfVafgnaprRi
 .type b__MA7naqebvq9FvatyrgbaVAF_11OhssrePnpurRR11unfVafgnaprRi,%function
 b__MA7naqebvq9FvatyrgbaVAF_11OhssrePnpurRR11unfVafgnaprRi:
 nop
@@ -6418,7 +6418,7 @@
 b__MA7naqebvq16SenzrRiragfQrygnP1RzEXAF_11SenzrRiragfREXAF_21SenzrRiragQveglSvryqfR:
 nop
 .text
-.globl b__MAX7naqebvq6Cnepry24ernqAhyynoyrFgebatOvaqreVAF_17VPbafhzreYvfgrareRRRvCAF_2fcVG_RR
+.weak b__MAX7naqebvq6Cnepry24ernqAhyynoyrFgebatOvaqreVAF_17VPbafhzreYvfgrareRRRvCAF_2fcVG_RR
 .type b__MAX7naqebvq6Cnepry24ernqAhyynoyrFgebatOvaqreVAF_17VPbafhzreYvfgrareRRRvCAF_2fcVG_RR,%function
 b__MAX7naqebvq6Cnepry24ernqAhyynoyrFgebatOvaqreVAF_17VPbafhzreYvfgrareRRRvCAF_2fcVG_RR:
 nop
@@ -6443,7 +6443,7 @@
 b__MGGA7naqebvq24OcQvfcynlRiragPbaarpgvbaR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__112__unfu_gnoyrVA7naqebvq2fcVAF1_7VOvaqreRRRAF1_16VFhesnprPbzcbfre6FcUnfuVF3_RRAF_8rdhny_gbVF4_RRAF_9nyybpngbeVF4_RRR25__rzcynpr_havdhr_xrl_netfVF4_WF4_RRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF4_CiRRRRoRREXG_QcBG0_
+.weak b__MAFg3__112__unfu_gnoyrVA7naqebvq2fcVAF1_7VOvaqreRRRAF1_16VFhesnprPbzcbfre6FcUnfuVF3_RRAF_8rdhny_gbVF4_RRAF_9nyybpngbeVF4_RRR25__rzcynpr_havdhr_xrl_netfVF4_WF4_RRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF4_CiRRRRoRREXG_QcBG0_
 .type b__MAFg3__112__unfu_gnoyrVA7naqebvq2fcVAF1_7VOvaqreRRRAF1_16VFhesnprPbzcbfre6FcUnfuVF3_RRAF_8rdhny_gbVF4_RRAF_9nyybpngbeVF4_RRR25__rzcynpr_havdhr_xrl_netfVF4_WF4_RRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF4_CiRRRRoRREXG_QcBG0_,%function
 b__MAFg3__112__unfu_gnoyrVA7naqebvq2fcVAF1_7VOvaqreRRRAF1_16VFhesnprPbzcbfre6FcUnfuVF3_RRAF_8rdhny_gbVF4_RRAF_9nyybpngbeVF4_RRR25__rzcynpr_havdhr_xrl_netfVF4_WF4_RRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF4_CiRRRRoRREXG_QcBG0_:
 nop
@@ -6453,7 +6453,7 @@
 b__MGIA7naqebvq23OaFhesnprPbzcbfrePyvragR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwAF_6irpgbeVuAF_9nyybpngbeVuRRRRRRAF_22__habeqrerq_znc_unfureVwF6_AF_4unfuVwRRYo1RRRAF_21__habeqrerq_znc_rdhnyVwF6_AF_8rdhny_gbVwRRYo1RRRAF3_VF6_RRR13__zbir_nffvtaREFT_AF_17vagrteny_pbafgnagVoYo1RRR
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwAF_6irpgbeVuAF_9nyybpngbeVuRRRRRRAF_22__habeqrerq_znc_unfureVwF6_AF_4unfuVwRRYo1RRRAF_21__habeqrerq_znc_rdhnyVwF6_AF_8rdhny_gbVwRRYo1RRRAF3_VF6_RRR13__zbir_nffvtaREFT_AF_17vagrteny_pbafgnagVoYo1RRR
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwAF_6irpgbeVuAF_9nyybpngbeVuRRRRRRAF_22__habeqrerq_znc_unfureVwF6_AF_4unfuVwRRYo1RRRAF_21__habeqrerq_znc_rdhnyVwF6_AF_8rdhny_gbVwRRYo1RRRAF3_VF6_RRR13__zbir_nffvtaREFT_AF_17vagrteny_pbafgnagVoYo1RRR,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwAF_6irpgbeVuAF_9nyybpngbeVuRRRRRRAF_22__habeqrerq_znc_unfureVwF6_AF_4unfuVwRRYo1RRRAF_21__habeqrerq_znc_rdhnyVwF6_AF_8rdhny_gbVwRRYo1RRRAF3_VF6_RRR13__zbir_nffvtaREFT_AF_17vagrteny_pbafgnagVoYo1RRR:
 nop
@@ -6523,7 +6523,7 @@
 b__MA7naqebvq21FhesnprPbzcbfrePyvrag11Genafnpgvba8frgPbybeREXAF_2fcVAF_14FhesnprPbagebyRRREXAF_7qrgnvyf5GIrp3VAF_4unysRRR:
 nop
 .data
-.globl b__MGIA7naqebvq12U2OPbairegreVAF_8uneqjner8tencuvpf11ohssredhrhr4I1_022VTencuvpOhssreCebqhpreRAF_23OaTencuvpOhssreCebqhpreRR8BovghnelR
+.weak b__MGIA7naqebvq12U2OPbairegreVAF_8uneqjner8tencuvpf11ohssredhrhr4I1_022VTencuvpOhssreCebqhpreRAF_23OaTencuvpOhssreCebqhpreRR8BovghnelR
 .type b__MGIA7naqebvq12U2OPbairegreVAF_8uneqjner8tencuvpf11ohssredhrhr4I1_022VTencuvpOhssreCebqhpreRAF_23OaTencuvpOhssreCebqhpreRR8BovghnelR,%object
 b__MGIA7naqebvq12U2OPbairegreVAF_8uneqjner8tencuvpf11ohssredhrhr4I1_022VTencuvpOhssreCebqhpreRAF_23OaTencuvpOhssreCebqhpreRR8BovghnelR:
 .space __SIZEOF_POINTER__
@@ -6558,7 +6558,7 @@
 b__MGPA7naqebvq18OaPbafhzreYvfgrareR8_AF_10VVagresnprR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_11PchPbafhzre14NpdhverqOhssreRR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_11PchPbafhzre14NpdhverqOhssreRR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_11PchPbafhzre14NpdhverqOhssreRR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_11PchPbafhzre14NpdhverqOhssreRR15qb_zbir_sbejneqRCiCXiz:
 nop
@@ -6578,12 +6578,12 @@
 b__MAX7naqebvq29VGenafnpgvbaPbzcyrgrqYvfgrare22trgVagresnprQrfpevcgbeRi:
 nop
 .text
-.globl b__MAX7naqebvq6Cnepry20ernqCneprynoyrIrpgbeVAF_12FhesnprFgngfRRRvCAFg3__16irpgbeVG_AF3_9nyybpngbeVF5_RRRR
+.weak b__MAX7naqebvq6Cnepry20ernqCneprynoyrIrpgbeVAF_12FhesnprFgngfRRRvCAFg3__16irpgbeVG_AF3_9nyybpngbeVF5_RRRR
 .type b__MAX7naqebvq6Cnepry20ernqCneprynoyrIrpgbeVAF_12FhesnprFgngfRRRvCAFg3__16irpgbeVG_AF3_9nyybpngbeVF5_RRRR,%function
 b__MAX7naqebvq6Cnepry20ernqCneprynoyrIrpgbeVAF_12FhesnprFgngfRRRvCAFg3__16irpgbeVG_AF3_9nyybpngbeVF5_RRRR:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_2fcVAF_22VTencuvpOhssreCebqhpreRRRR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq6IrpgbeVAF_2fcVAF_22VTencuvpOhssreCebqhpreRRRR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq6IrpgbeVAF_2fcVAF_22VTencuvpOhssreCebqhpreRRRR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq6IrpgbeVAF_2fcVAF_22VTencuvpOhssreCebqhpreRRRR10qb_qrfgeblRCiz:
 nop
@@ -6628,7 +6628,7 @@
 b__MAX7naqebvq8uneqjner8tencuvpf11ohssredhrhr4I2_05hgvyf13USraprJenccre9trgUnaqyrRi:
 nop
 .text
-.globl b__MGua16_A7naqebvq12U2OPbairegreVAF_8uneqjner8tencuvpf11ohssredhrhr4I2_017VCebqhpreYvfgrareRAF_18OaCebqhpreYvfgrareRR13hayvaxGbQrnguREXAF_2jcVAF_7VOvaqre14QrnguErpvcvragRRRCiwCFO_
+.weak b__MGua16_A7naqebvq12U2OPbairegreVAF_8uneqjner8tencuvpf11ohssredhrhr4I2_017VCebqhpreYvfgrareRAF_18OaCebqhpreYvfgrareRR13hayvaxGbQrnguREXAF_2jcVAF_7VOvaqre14QrnguErpvcvragRRRCiwCFO_
 .type b__MGua16_A7naqebvq12U2OPbairegreVAF_8uneqjner8tencuvpf11ohssredhrhr4I2_017VCebqhpreYvfgrareRAF_18OaCebqhpreYvfgrareRR13hayvaxGbQrnguREXAF_2jcVAF_7VOvaqre14QrnguErpvcvragRRRCiwCFO_,%function
 b__MGua16_A7naqebvq12U2OPbairegreVAF_8uneqjner8tencuvpf11ohssredhrhr4I2_017VCebqhpreYvfgrareRAF_18OaCebqhpreYvfgrareRR13hayvaxGbQrnguREXAF_2jcVAF_7VOvaqre14QrnguErpvcvragRRRCiwCFO_:
 nop
@@ -6668,7 +6668,7 @@
 b__MGIA7naqebvq8uneqjner8tencuvpf11ohssredhrhr4I2_05hgvyf19O2UCebqhpreYvfgrareR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MGua8_A7naqebvq12U2OPbairegreVAF_8uneqjner8tencuvpf11ohssredhrhr4I2_022VTencuvpOhssreCebqhpreRAF_23OaTencuvpOhssreCebqhpreRR13hayvaxGbQrnguREXAF_2jcVAF_7VOvaqre14QrnguErpvcvragRRRCiwCFO_
+.weak b__MGua8_A7naqebvq12U2OPbairegreVAF_8uneqjner8tencuvpf11ohssredhrhr4I2_022VTencuvpOhssreCebqhpreRAF_23OaTencuvpOhssreCebqhpreRR13hayvaxGbQrnguREXAF_2jcVAF_7VOvaqre14QrnguErpvcvragRRRCiwCFO_
 .type b__MGua8_A7naqebvq12U2OPbairegreVAF_8uneqjner8tencuvpf11ohssredhrhr4I2_022VTencuvpOhssreCebqhpreRAF_23OaTencuvpOhssreCebqhpreRR13hayvaxGbQrnguREXAF_2jcVAF_7VOvaqre14QrnguErpvcvragRRRCiwCFO_,%function
 b__MGua8_A7naqebvq12U2OPbairegreVAF_8uneqjner8tencuvpf11ohssredhrhr4I2_022VTencuvpOhssreCebqhpreRAF_23OaTencuvpOhssreCebqhpreRR13hayvaxGbQrnguREXAF_2jcVAF_7VOvaqre14QrnguErpvcvragRRRCiwCFO_:
 nop
@@ -6718,7 +6718,7 @@
 b__MGi0_a24_A7naqebvq23OcTencuvpOhssreCebqhpreQ0Ri:
 nop
 .text
-.globl b__MA7naqebvq12U2OPbairegreVAF_8uneqjner8tencuvpf11ohssredhrhr4I2_017VCebqhpreYvfgrareRAF_18OaCebqhpreYvfgrareRR11yvaxGbQrnguREXAF_2fcVAF_7VOvaqre14QrnguErpvcvragRRRCiw
+.weak b__MA7naqebvq12U2OPbairegreVAF_8uneqjner8tencuvpf11ohssredhrhr4I2_017VCebqhpreYvfgrareRAF_18OaCebqhpreYvfgrareRR11yvaxGbQrnguREXAF_2fcVAF_7VOvaqre14QrnguErpvcvragRRRCiw
 .type b__MA7naqebvq12U2OPbairegreVAF_8uneqjner8tencuvpf11ohssredhrhr4I2_017VCebqhpreYvfgrareRAF_18OaCebqhpreYvfgrareRR11yvaxGbQrnguREXAF_2fcVAF_7VOvaqre14QrnguErpvcvragRRRCiw,%function
 b__MA7naqebvq12U2OPbairegreVAF_8uneqjner8tencuvpf11ohssredhrhr4I2_017VCebqhpreYvfgrareRAF_18OaCebqhpreYvfgrareRR11yvaxGbQrnguREXAF_2fcVAF_7VOvaqre14QrnguErpvcvragRRRCiw:
 nop
@@ -6783,7 +6783,7 @@
 b__MA7naqebvq19OhssreDhrhrPbafhzre15frgPbafhzreAnzrREXAF_7Fgevat8R:
 nop
 .text
-.globl b__MA7naqebvq11OaVagresnprVAF_17VCebqhpreYvfgrareRR10baNfOvaqreRi
+.weak b__MA7naqebvq11OaVagresnprVAF_17VCebqhpreYvfgrareRR10baNfOvaqreRi
 .type b__MA7naqebvq11OaVagresnprVAF_17VCebqhpreYvfgrareRR10baNfOvaqreRi,%function
 b__MA7naqebvq11OaVagresnprVAF_17VCebqhpreYvfgrareRR10baNfOvaqreRi:
 nop
@@ -6793,7 +6793,7 @@
 b__MA7naqebvq14FgernzFcyvggre14BhgchgYvfgrare10ovaqreQvrqREXAF_2jcVAF_7VOvaqreRRR:
 nop
 .text
-.globl b__MA7naqebvq9FvatyrgbaVAF_15PbzcbfreFreivprRRP1Ri
+.weak b__MA7naqebvq9FvatyrgbaVAF_15PbzcbfreFreivprRRP1Ri
 .type b__MA7naqebvq9FvatyrgbaVAF_15PbzcbfreFreivprRRP1Ri,%function
 b__MA7naqebvq9FvatyrgbaVAF_15PbzcbfreFreivprRRP1Ri:
 nop
@@ -6803,7 +6803,7 @@
 b__MAX7naqebvq11SenzrRiragf12unfYngpuVasbRi:
 nop
 .text
-.globl b__MA7naqebvq2fcVAF_12AngvirUnaqyrRRnFRBF2_
+.weak b__MA7naqebvq2fcVAF_12AngvirUnaqyrRRnFRBF2_
 .type b__MA7naqebvq2fcVAF_12AngvirUnaqyrRRnFRBF2_,%function
 b__MA7naqebvq2fcVAF_12AngvirUnaqyrRRnFRBF2_:
 nop
@@ -6813,7 +6813,7 @@
 b__MA7naqebvq8uneqjner8tencuvpf11ohssredhrhr4I1_05hgvyf24U2OTencuvpOhssreCebqhpre15nyybpngrOhssrefRwwvz:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRyRRAF_22__habeqrerq_znc_unfureVF7_F8_AF_4unfuVF7_RRYo1RRRAF_21__habeqrerq_znc_rdhnyVF7_F8_AF_8rdhny_gbVF7_RRYo1RRRAF5_VF8_RRR25__rzcynpr_havdhr_xrl_netfVF7_WEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWBF7_RRRAFA_VWRRRRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF8_CiRRRRoRREXG_QcBG0_
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRyRRAF_22__habeqrerq_znc_unfureVF7_F8_AF_4unfuVF7_RRYo1RRRAF_21__habeqrerq_znc_rdhnyVF7_F8_AF_8rdhny_gbVF7_RRYo1RRRAF5_VF8_RRR25__rzcynpr_havdhr_xrl_netfVF7_WEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWBF7_RRRAFA_VWRRRRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF8_CiRRRRoRREXG_QcBG0_
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRyRRAF_22__habeqrerq_znc_unfureVF7_F8_AF_4unfuVF7_RRYo1RRRAF_21__habeqrerq_znc_rdhnyVF7_F8_AF_8rdhny_gbVF7_RRYo1RRRAF5_VF8_RRR25__rzcynpr_havdhr_xrl_netfVF7_WEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWBF7_RRRAFA_VWRRRRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF8_CiRRRRoRREXG_QcBG0_,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRyRRAF_22__habeqrerq_znc_unfureVF7_F8_AF_4unfuVF7_RRYo1RRRAF_21__habeqrerq_znc_rdhnyVF7_F8_AF_8rdhny_gbVF7_RRYo1RRRAF5_VF8_RRR25__rzcynpr_havdhr_xrl_netfVF7_WEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWBF7_RRRAFA_VWRRRRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF8_CiRRRRoRREXG_QcBG0_:
 nop
@@ -6828,7 +6828,7 @@
 b__MGua8_A7naqebvq24OcQvfcynlRiragPbaarpgvbaQ0Ri:
 nop
 .text
-.globl b__MA7naqebvq9FvatyrgbaVAF_11OhssrePnpurRRP1Ri
+.weak b__MA7naqebvq9FvatyrgbaVAF_11OhssrePnpurRRP1Ri
 .type b__MA7naqebvq9FvatyrgbaVAF_11OhssrePnpurRRP1Ri,%function
 b__MA7naqebvq9FvatyrgbaVAF_11OhssrePnpurRRP1Ri:
 nop
@@ -6883,7 +6883,7 @@
 b__MA7naqebvq21FhesnprPbzcbfrePyvrag11Genafnpgvba8frgSyntfREXAF_2fcVAF_14FhesnprPbagebyRRRww:
 nop
 .text
-.globl b__MA7naqebvq2fcVAF_17VCebqhpreYvfgrareRRnFREXF2_
+.weak b__MA7naqebvq2fcVAF_17VCebqhpreYvfgrareRRnFREXF2_
 .type b__MA7naqebvq2fcVAF_17VCebqhpreYvfgrareRRnFREXF2_,%function
 b__MA7naqebvq2fcVAF_17VCebqhpreYvfgrareRRnFREXF2_:
 nop
@@ -6928,7 +6928,7 @@
 b__MGPA7naqebvq18OcCebqhpreYvfgrareR0_AF_16CebqhpreYvfgrareR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__114__fcyvg_ohssreVCA7naqebvq16BpphcnaplGenpxre7FrtzragRAF_9nyybpngbeVF4_RRR9chfu_onpxRBF4_
+.weak b__MAFg3__114__fcyvg_ohssreVCA7naqebvq16BpphcnaplGenpxre7FrtzragRAF_9nyybpngbeVF4_RRR9chfu_onpxRBF4_
 .type b__MAFg3__114__fcyvg_ohssreVCA7naqebvq16BpphcnaplGenpxre7FrtzragRAF_9nyybpngbeVF4_RRR9chfu_onpxRBF4_,%function
 b__MAFg3__114__fcyvg_ohssreVCA7naqebvq16BpphcnaplGenpxre7FrtzragRAF_9nyybpngbeVF4_RRR9chfu_onpxRBF4_:
 nop
@@ -6938,12 +6938,12 @@
 b__MGPA7naqebvq30OcGenafnpgvbaPbzcyrgrqYvfgrareR0_AF_29VGenafnpgvbaPbzcyrgrqYvfgrareR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__114__fcyvg_ohssreVCA7naqebvq2fcVAF1_5SraprRRREAF_9nyybpngbeVF5_RRR9chfu_onpxRBF5_
+.weak b__MAFg3__114__fcyvg_ohssreVCA7naqebvq2fcVAF1_5SraprRRREAF_9nyybpngbeVF5_RRR9chfu_onpxRBF5_
 .type b__MAFg3__114__fcyvg_ohssreVCA7naqebvq2fcVAF1_5SraprRRREAF_9nyybpngbeVF5_RRR9chfu_onpxRBF5_,%function
 b__MAFg3__114__fcyvg_ohssreVCA7naqebvq2fcVAF1_5SraprRRREAF_9nyybpngbeVF5_RRR9chfu_onpxRBF5_:
 nop
 .text
-.globl b__MA7naqebvq2fcVAF_13TencuvpOhssreRRnFREXF2_
+.weak b__MA7naqebvq2fcVAF_13TencuvpOhssreRRnFREXF2_
 .type b__MA7naqebvq2fcVAF_13TencuvpOhssreRRnFREXF2_,%function
 b__MA7naqebvq2fcVAF_13TencuvpOhssreRRnFREXF2_:
 nop
@@ -6983,12 +6983,12 @@
 b__MA7naqebvq21FhesnprPbzcbfrePyvrag11Genafnpgvba8frgYnlreREXAF_2fcVAF_14FhesnprPbagebyRRRv:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVA7naqebvq2fcVAF2_14FhesnprPbagebyRRRAF2_13PbzcbfreFgngrRRRAF_22__habeqrerq_znc_unfureVF5_F7_AF2_21FhesnprPbzcbfrePyvrag6FPUnfuRYo1RRRAF_21__habeqrerq_znc_rdhnyVF5_F7_AF_8rdhny_gbVF5_RRYo1RRRAF_9nyybpngbeVF7_RRR5pyrneRi
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVA7naqebvq2fcVAF2_14FhesnprPbagebyRRRAF2_13PbzcbfreFgngrRRRAF_22__habeqrerq_znc_unfureVF5_F7_AF2_21FhesnprPbzcbfrePyvrag6FPUnfuRYo1RRRAF_21__habeqrerq_znc_rdhnyVF5_F7_AF_8rdhny_gbVF5_RRYo1RRRAF_9nyybpngbeVF7_RRR5pyrneRi
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVA7naqebvq2fcVAF2_14FhesnprPbagebyRRRAF2_13PbzcbfreFgngrRRRAF_22__habeqrerq_znc_unfureVF5_F7_AF2_21FhesnprPbzcbfrePyvrag6FPUnfuRYo1RRRAF_21__habeqrerq_znc_rdhnyVF5_F7_AF_8rdhny_gbVF5_RRYo1RRRAF_9nyybpngbeVF7_RRR5pyrneRi,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVA7naqebvq2fcVAF2_14FhesnprPbagebyRRRAF2_13PbzcbfreFgngrRRRAF_22__habeqrerq_znc_unfureVF5_F7_AF2_21FhesnprPbzcbfrePyvrag6FPUnfuRYo1RRRAF_21__habeqrerq_znc_rdhnyVF5_F7_AF_8rdhny_gbVF5_RRYo1RRRAF_9nyybpngbeVF7_RRR5pyrneRi:
 nop
 .text
-.globl b__MA7naqebvq9FvatyrgbaVAF_12FlapSrngherfRR11trgVafgnaprRi
+.weak b__MA7naqebvq9FvatyrgbaVAF_12FlapSrngherfRR11trgVafgnaprRi
 .type b__MA7naqebvq9FvatyrgbaVAF_12FlapSrngherfRR11trgVafgnaprRi,%function
 b__MA7naqebvq9FvatyrgbaVAF_12FlapSrngherfRR11trgVafgnaprRi:
 nop
@@ -6998,7 +6998,7 @@
 b__MA7naqebvq7Fhesnpr24frgOhssrefHfreQvzrafvbafRww:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_12QvfcynlFgngrRR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_12QvfcynlFgngrRR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_12QvfcynlFgngrRR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_12QvfcynlFgngrRR12qb_pbafgehpgRCiz:
 nop
@@ -7048,7 +7048,7 @@
 b__MA7naqebvq21FhesnprPbzcbfrePyvrag11Genafnpgvba14frgRneylJnxrhcRi:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_13PbzcbfreFgngrRR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_13PbzcbfreFgngrRR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_13PbzcbfreFgngrRR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_13PbzcbfreFgngrRR7qb_pbclRCiCXiz:
 nop
@@ -7093,7 +7093,7 @@
 b__MA7naqebvq8uneqjner8tencuvpf11ohssredhrhr4I2_05hgvyf24O2UTencuvpOhssreCebqhpre15trgPbafhzreAnzrRAFg3__18shapgvbaVSiEXAF0_11uvqy_fgevatRRRR:
 nop
 .text
-.globl b__MGua8_A7naqebvq11OaVagresnprVAF_17VPbafhzreYvfgrareRR10baNfOvaqreRi
+.weak b__MGua8_A7naqebvq11OaVagresnprVAF_17VPbafhzreYvfgrareRR10baNfOvaqreRi
 .type b__MGua8_A7naqebvq11OaVagresnprVAF_17VPbafhzreYvfgrareRR10baNfOvaqreRi,%function
 b__MGua8_A7naqebvq11OaVagresnprVAF_17VPbafhzreYvfgrareRR10baNfOvaqreRi:
 nop
@@ -7113,12 +7113,12 @@
 b__MA7naqebvq11OhssreDhrhr21CebklPbafhzreYvfgrareQ0Ri:
 nop
 .text
-.globl b__MA7naqebvq12U2OPbairegreVAF_8uneqjner8tencuvpf11ohssredhrhr4I2_022VTencuvpOhssreCebqhpreRAF_23OaTencuvpOhssreCebqhpreRR10baGenafnpgRwEXAF_6CnepryRCF8_w
+.weak b__MA7naqebvq12U2OPbairegreVAF_8uneqjner8tencuvpf11ohssredhrhr4I2_022VTencuvpOhssreCebqhpreRAF_23OaTencuvpOhssreCebqhpreRR10baGenafnpgRwEXAF_6CnepryRCF8_w
 .type b__MA7naqebvq12U2OPbairegreVAF_8uneqjner8tencuvpf11ohssredhrhr4I2_022VTencuvpOhssreCebqhpreRAF_23OaTencuvpOhssreCebqhpreRR10baGenafnpgRwEXAF_6CnepryRCF8_w,%function
 b__MA7naqebvq12U2OPbairegreVAF_8uneqjner8tencuvpf11ohssredhrhr4I2_022VTencuvpOhssreCebqhpreRAF_23OaTencuvpOhssreCebqhpreRR10baGenafnpgRwEXAF_6CnepryRCF8_w:
 nop
 .data
-.globl b__MGIA7naqebvq6IrpgbeVAF_13PbzcbfreFgngrRRR
+.weak b__MGIA7naqebvq6IrpgbeVAF_13PbzcbfreFgngrRRR
 .type b__MGIA7naqebvq6IrpgbeVAF_13PbzcbfreFgngrRRR,%object
 b__MGIA7naqebvq6IrpgbeVAF_13PbzcbfreFgngrRRR:
 .space __SIZEOF_POINTER__
@@ -7138,7 +7138,7 @@
 b__MGua16_A7naqebvq21QhzzlCebqhpreYvfgrareQ1Ri:
 nop
 .text
-.globl b__MAFg3__114__fcyvg_ohssreVCA7naqebvq2fcVAF1_5SraprRRREAF_9nyybpngbeVF5_RRR10chfu_sebagREXF5_
+.weak b__MAFg3__114__fcyvg_ohssreVCA7naqebvq2fcVAF1_5SraprRRREAF_9nyybpngbeVF5_RRR10chfu_sebagREXF5_
 .type b__MAFg3__114__fcyvg_ohssreVCA7naqebvq2fcVAF1_5SraprRRREAF_9nyybpngbeVF5_RRR10chfu_sebagREXF5_,%function
 b__MAFg3__114__fcyvg_ohssreVCA7naqebvq2fcVAF1_5SraprRRREAF_9nyybpngbeVF5_RRR10chfu_sebagREXF5_:
 nop
@@ -7168,7 +7168,7 @@
 b__MA7naqebvq21FhesnprPbzcbfrePyvrag32frgQvfcynlPbagragFnzcyvatRanoyrqREXAF_2fcVAF_7VOvaqreRRRouz:
 nop
 .text
-.globl b__MA7naqebvq11OaVagresnprVAF_22VTencuvpOhssrePbafhzreRR10baNfOvaqreRi
+.weak b__MA7naqebvq11OaVagresnprVAF_22VTencuvpOhssrePbafhzreRR10baNfOvaqreRi
 .type b__MA7naqebvq11OaVagresnprVAF_22VTencuvpOhssrePbafhzreRR10baNfOvaqreRi,%function
 b__MA7naqebvq11OaVagresnprVAF_22VTencuvpOhssrePbafhzreRR10baNfOvaqreRi:
 nop
@@ -7228,22 +7228,22 @@
 b__MGPA7naqebvq24OaQvfcynlRiragPbaarpgvbaR0_AF_11OaVagresnprVAF_23VQvfcynlRiragPbaarpgvbaRRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq6IrpgbeVyR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq6IrpgbeVyR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq6IrpgbeVyR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq6IrpgbeVyR10qb_qrfgeblRCiz:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVzAF_2fcVAF_14FgernzFcyvggre13OhssreGenpxreRRRRRR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVzAF_2fcVAF_14FgernzFcyvggre13OhssreGenpxreRRRRRR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVzAF_2fcVAF_14FgernzFcyvggre13OhssreGenpxreRRRRRR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVzAF_2fcVAF_14FgernzFcyvggre13OhssreGenpxreRRRRRR12qb_pbafgehpgRCiz:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq19FhesnprPbagebyFgngfRAF_9nyybpngbeVF2_RRR24__rzcynpr_onpx_fybj_cnguVWEAF1_2fcVAF1_14FhesnprPbagebyRRREXyEXAF7_VAF1_5SraprRRRRRRiQcBG_
+.weak b__MAFg3__16irpgbeVA7naqebvq19FhesnprPbagebyFgngfRAF_9nyybpngbeVF2_RRR24__rzcynpr_onpx_fybj_cnguVWEAF1_2fcVAF1_14FhesnprPbagebyRRREXyEXAF7_VAF1_5SraprRRRRRRiQcBG_
 .type b__MAFg3__16irpgbeVA7naqebvq19FhesnprPbagebyFgngfRAF_9nyybpngbeVF2_RRR24__rzcynpr_onpx_fybj_cnguVWEAF1_2fcVAF1_14FhesnprPbagebyRRREXyEXAF7_VAF1_5SraprRRRRRRiQcBG_,%function
 b__MAFg3__16irpgbeVA7naqebvq19FhesnprPbagebyFgngfRAF_9nyybpngbeVF2_RRR24__rzcynpr_onpx_fybj_cnguVWEAF1_2fcVAF1_14FhesnprPbagebyRRREXyEXAF7_VAF1_5SraprRRRRRRiQcBG_:
 nop
 .text
-.globl b__MA7naqebvq9FvatyrgbaVAF_12FlapSrngherfRRQ1Ri
+.weak b__MA7naqebvq9FvatyrgbaVAF_12FlapSrngherfRRQ1Ri
 .type b__MA7naqebvq9FvatyrgbaVAF_12FlapSrngherfRRQ1Ri,%function
 b__MA7naqebvq9FvatyrgbaVAF_12FlapSrngherfRRQ1Ri:
 nop
@@ -7288,7 +7288,7 @@
 b__MA7naqebvq18OhssreVgrzPbafhzre16serrOhssreYbpxrqRv:
 nop
 .text
-.globl b__MAX7naqebvq6Cnepry24ernqAhyynoyrFgebatOvaqreVAF_22VTencuvpOhssreCebqhpreRRRvCAF_2fcVG_RR
+.weak b__MAX7naqebvq6Cnepry24ernqAhyynoyrFgebatOvaqreVAF_22VTencuvpOhssreCebqhpreRRRvCAF_2fcVG_RR
 .type b__MAX7naqebvq6Cnepry24ernqAhyynoyrFgebatOvaqreVAF_22VTencuvpOhssreCebqhpreRRRvCAF_2fcVG_RR,%function
 b__MAX7naqebvq6Cnepry24ernqAhyynoyrFgebatOvaqreVAF_22VTencuvpOhssreCebqhpreRRRvCAF_2fcVG_RR:
 nop
@@ -7333,12 +7333,12 @@
 b__MAX7naqebvq8uneqjner8tencuvpf11ohssredhrhr4I1_05hgvyf24U2OTencuvpOhssreCebqhpre15trgPbafhzreAnzrRi:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_11PchPbafhzre14NpdhverqOhssreRR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_11PchPbafhzre14NpdhverqOhssreRR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_11PchPbafhzre14NpdhverqOhssreRR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_11PchPbafhzre14NpdhverqOhssreRR8qb_fcyngRCiCXiz:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_12QvfcynlFgngrRR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_12QvfcynlFgngrRR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_12QvfcynlFgngrRR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_12QvfcynlFgngrRR8qb_fcyngRCiCXiz:
 nop
@@ -7358,7 +7358,7 @@
 b__MA7naqebvq15OhssreDhrhrPberQ0Ri:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_2fcVAF_13TencuvpOhssreRRRR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_2fcVAF_13TencuvpOhssreRRRR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_2fcVAF_13TencuvpOhssreRRRR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_2fcVAF_13TencuvpOhssreRRRR7qb_pbclRCiCXiz:
 nop
@@ -7418,7 +7418,7 @@
 b__MGGA7naqebvq16CebqhpreYvfgrareR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MGua16_A7naqebvq12U2OPbairegreVAF_8uneqjner8tencuvpf11ohssredhrhr4I2_017VCebqhpreYvfgrareRAF_18OaCebqhpreYvfgrareRR10baGenafnpgRwEXAF_6CnepryRCF8_w
+.weak b__MGua16_A7naqebvq12U2OPbairegreVAF_8uneqjner8tencuvpf11ohssredhrhr4I2_017VCebqhpreYvfgrareRAF_18OaCebqhpreYvfgrareRR10baGenafnpgRwEXAF_6CnepryRCF8_w
 .type b__MGua16_A7naqebvq12U2OPbairegreVAF_8uneqjner8tencuvpf11ohssredhrhr4I2_017VCebqhpreYvfgrareRAF_18OaCebqhpreYvfgrareRR10baGenafnpgRwEXAF_6CnepryRCF8_w,%function
 b__MGua16_A7naqebvq12U2OPbairegreVAF_8uneqjner8tencuvpf11ohssredhrhr4I2_017VCebqhpreYvfgrareRAF_18OaCebqhpreYvfgrareRR10baGenafnpgRwEXAF_6CnepryRCF8_w:
 nop
@@ -7578,12 +7578,12 @@
 b__MA7naqebvq22VFhesnprPbzcbfrePyvrag10qrfpevcgbeR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVzAF_2fcVAF_14FgernzFcyvggre13OhssreGenpxreRRRRRRR
+.weak b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVzAF_2fcVAF_14FgernzFcyvggre13OhssreGenpxreRRRRRRR
 .type b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVzAF_2fcVAF_14FgernzFcyvggre13OhssreGenpxreRRRRRRR,%object
 b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVzAF_2fcVAF_14FgernzFcyvggre13OhssreGenpxreRRRRRRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq9FvatyrgbaVAF_21QrsnhygPbzcbfrePyvragRRQ2Ri
+.weak b__MA7naqebvq9FvatyrgbaVAF_21QrsnhygPbzcbfrePyvragRRQ2Ri
 .type b__MA7naqebvq9FvatyrgbaVAF_21QrsnhygPbzcbfrePyvragRRQ2Ri,%function
 b__MA7naqebvq9FvatyrgbaVAF_21QrsnhygPbzcbfrePyvragRRQ2Ri:
 nop
@@ -7603,12 +7603,12 @@
 b__MGPA7naqebvq14FgernzFcyvggre14BhgchgYvfgrareR0_AF_16CebqhpreYvfgrareR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MGua8_A7naqebvq12U2OPbairegreVAF_8uneqjner8tencuvpf11ohssredhrhr4I1_022VTencuvpOhssreCebqhpreRAF_23OaTencuvpOhssreCebqhpreRR13hayvaxGbQrnguREXAF_2jcVAF_7VOvaqre14QrnguErpvcvragRRRCiwCFO_
+.weak b__MGua8_A7naqebvq12U2OPbairegreVAF_8uneqjner8tencuvpf11ohssredhrhr4I1_022VTencuvpOhssreCebqhpreRAF_23OaTencuvpOhssreCebqhpreRR13hayvaxGbQrnguREXAF_2jcVAF_7VOvaqre14QrnguErpvcvragRRRCiwCFO_
 .type b__MGua8_A7naqebvq12U2OPbairegreVAF_8uneqjner8tencuvpf11ohssredhrhr4I1_022VTencuvpOhssreCebqhpreRAF_23OaTencuvpOhssreCebqhpreRR13hayvaxGbQrnguREXAF_2jcVAF_7VOvaqre14QrnguErpvcvragRRRCiwCFO_,%function
 b__MGua8_A7naqebvq12U2OPbairegreVAF_8uneqjner8tencuvpf11ohssredhrhr4I1_022VTencuvpOhssreCebqhpreRAF_23OaTencuvpOhssreCebqhpreRR13hayvaxGbQrnguREXAF_2jcVAF_7VOvaqre14QrnguErpvcvragRRRCiwCFO_:
 nop
 .data
-.globl b__MGI24QrohtRTYVzntrGenpxreAbBc
+.weak b__MGI24QrohtRTYVzntrGenpxreAbBc
 .type b__MGI24QrohtRTYVzntrGenpxreAbBc,%object
 b__MGI24QrohtRTYVzntrGenpxreAbBc:
 .space __SIZEOF_POINTER__
@@ -7643,7 +7643,7 @@
 b__MA7naqebvq11PchPbafhzreP1REXAF_2fcVAF_22VTencuvpOhssrePbafhzreRRRzo:
 nop
 .text
-.globl b__MAX7naqebvq6Cnepry20ernqCneprynoyrIrpgbeVAF_14YnlreQrohtVasbRRRvCAFg3__16irpgbeVG_AF3_9nyybpngbeVF5_RRRR
+.weak b__MAX7naqebvq6Cnepry20ernqCneprynoyrIrpgbeVAF_14YnlreQrohtVasbRRRvCAFg3__16irpgbeVG_AF3_9nyybpngbeVF5_RRRR
 .type b__MAX7naqebvq6Cnepry20ernqCneprynoyrIrpgbeVAF_14YnlreQrohtVasbRRRvCAFg3__16irpgbeVG_AF3_9nyybpngbeVF5_RRRR,%function
 b__MAX7naqebvq6Cnepry20ernqCneprynoyrIrpgbeVAF_14YnlreQrohtVasbRRRvCAFg3__16irpgbeVG_AF3_9nyybpngbeVF5_RRRR:
 nop
@@ -7658,7 +7658,7 @@
 b__MA7naqebvq21FhesnprPbzcbfrePyvrag11Genafnpgvba15trgQvfcynlFgngrREXAF_2fcVAF_7VOvaqreRRR:
 nop
 .data
-.globl b__MMA7naqebvq11OhssrePnpur10trgPbhagreRiR7pbhagre
+.weak b__MMA7naqebvq11OhssrePnpur10trgPbhagreRiR7pbhagre
 .type b__MMA7naqebvq11OhssrePnpur10trgPbhagreRiR7pbhagre,%object
 b__MMA7naqebvq11OhssrePnpur10trgPbhagreRiR7pbhagre:
 .space __SIZEOF_POINTER__
@@ -7708,12 +7708,12 @@
 b__MGIA7naqebvq7FhesnprR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVA7naqebvq2fcVAF2_29VGenafnpgvbaPbzcyrgrqYvfgrareRRRAF2_21FhesnprPbzcbfrePyvrag12PnyyonpxVasbRRRAF_22__habeqrerq_znc_unfureVF5_F8_AF6_7GPYUnfuRYo1RRRAF_21__habeqrerq_znc_rdhnyVF5_F8_AF_8rdhny_gbVF5_RRYo1RRRAF_9nyybpngbeVF8_RRR8__erunfuRz
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVA7naqebvq2fcVAF2_29VGenafnpgvbaPbzcyrgrqYvfgrareRRRAF2_21FhesnprPbzcbfrePyvrag12PnyyonpxVasbRRRAF_22__habeqrerq_znc_unfureVF5_F8_AF6_7GPYUnfuRYo1RRRAF_21__habeqrerq_znc_rdhnyVF5_F8_AF_8rdhny_gbVF5_RRYo1RRRAF_9nyybpngbeVF8_RRR8__erunfuRz
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVA7naqebvq2fcVAF2_29VGenafnpgvbaPbzcyrgrqYvfgrareRRRAF2_21FhesnprPbzcbfrePyvrag12PnyyonpxVasbRRRAF_22__habeqrerq_znc_unfureVF5_F8_AF6_7GPYUnfuRYo1RRRAF_21__habeqrerq_znc_rdhnyVF5_F8_AF_8rdhny_gbVF5_RRYo1RRRAF_9nyybpngbeVF8_RRR8__erunfuRz,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVA7naqebvq2fcVAF2_29VGenafnpgvbaPbzcyrgrqYvfgrareRRRAF2_21FhesnprPbzcbfrePyvrag12PnyyonpxVasbRRRAF_22__habeqrerq_znc_unfureVF5_F8_AF6_7GPYUnfuRYo1RRRAF_21__habeqrerq_znc_rdhnyVF5_F8_AF_8rdhny_gbVF5_RRYo1RRRAF_9nyybpngbeVF8_RRR8__erunfuRz:
 nop
 .text
-.globl b__MA7naqebvq11OaVagresnprVAF_22VTencuvpOhssreCebqhpreRR10baNfOvaqreRi
+.weak b__MA7naqebvq11OaVagresnprVAF_22VTencuvpOhssreCebqhpreRR10baNfOvaqreRi
 .type b__MA7naqebvq11OaVagresnprVAF_22VTencuvpOhssreCebqhpreRR10baNfOvaqreRi,%function
 b__MA7naqebvq11OaVagresnprVAF_22VTencuvpOhssreCebqhpreRR10baNfOvaqreRi:
 nop
@@ -7738,7 +7738,7 @@
 b__MGua8_A7naqebvq14FgernzFcyvggreQ1Ri:
 nop
 .text
-.globl b__MAFg3__16irpgbeVuAF_9nyybpngbeVuRRR6nffvtaVCXuRRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVuAF_15vgrengbe_genvgfVF8_R9ersreraprRRR5inyhrRiR4glcrRF8_F8_
+.weak b__MAFg3__16irpgbeVuAF_9nyybpngbeVuRRR6nffvtaVCXuRRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVuAF_15vgrengbe_genvgfVF8_R9ersreraprRRR5inyhrRiR4glcrRF8_F8_
 .type b__MAFg3__16irpgbeVuAF_9nyybpngbeVuRRR6nffvtaVCXuRRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVuAF_15vgrengbe_genvgfVF8_R9ersreraprRRR5inyhrRiR4glcrRF8_F8_,%function
 b__MAFg3__16irpgbeVuAF_9nyybpngbeVuRRR6nffvtaVCXuRRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVuAF_15vgrengbe_genvgfVF8_R9ersreraprRRR5inyhrRiR4glcrRF8_F8_:
 nop
@@ -7788,7 +7788,7 @@
 b__MAX7naqebvq12FhesnprFgngf13jevgrGbCnepryRCAF_6CnepryR:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVyAF_4unfuVyRRAF_8rdhny_gbVyRRAF_9nyybpngbeVyRRR8__erunfuRz
+.weak b__MAFg3__112__unfu_gnoyrVyAF_4unfuVyRRAF_8rdhny_gbVyRRAF_9nyybpngbeVyRRR8__erunfuRz
 .type b__MAFg3__112__unfu_gnoyrVyAF_4unfuVyRRAF_8rdhny_gbVyRRAF_9nyybpngbeVyRRR8__erunfuRz,%function
 b__MAFg3__112__unfu_gnoyrVyAF_4unfuVyRRAF_8rdhny_gbVyRRAF_9nyybpngbeVyRRR8__erunfuRz:
 nop
@@ -7828,7 +7828,7 @@
 b__MA7naqebvq7Fhesnpr25qvfcngpuFrgFvqronaqFgernzRFg9__in_yvfg:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVyA7naqebvq28GenafnpgvbaPbzcyrgrqYvfgrare19PnyyonpxGenafyngvbaRRRAF_22__habeqrerq_znc_unfureVyF5_AF_4unfuVyRRYo1RRRAF_21__habeqrerq_znc_rdhnyVyF5_AF_8rdhny_gbVyRRYo1RRRAF_9nyybpngbeVF5_RRR6erzbirRAF_21__unfu_pbafg_vgrengbeVCAF_11__unfu_abqrVF5_CiRRRR
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVyA7naqebvq28GenafnpgvbaPbzcyrgrqYvfgrare19PnyyonpxGenafyngvbaRRRAF_22__habeqrerq_znc_unfureVyF5_AF_4unfuVyRRYo1RRRAF_21__habeqrerq_znc_rdhnyVyF5_AF_8rdhny_gbVyRRYo1RRRAF_9nyybpngbeVF5_RRR6erzbirRAF_21__unfu_pbafg_vgrengbeVCAF_11__unfu_abqrVF5_CiRRRR
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVyA7naqebvq28GenafnpgvbaPbzcyrgrqYvfgrare19PnyyonpxGenafyngvbaRRRAF_22__habeqrerq_znc_unfureVyF5_AF_4unfuVyRRYo1RRRAF_21__habeqrerq_znc_rdhnyVyF5_AF_8rdhny_gbVyRRYo1RRRAF_9nyybpngbeVF5_RRR6erzbirRAF_21__unfu_pbafg_vgrengbeVCAF_11__unfu_abqrVF5_CiRRRR,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVyA7naqebvq28GenafnpgvbaPbzcyrgrqYvfgrare19PnyyonpxGenafyngvbaRRRAF_22__habeqrerq_znc_unfureVyF5_AF_4unfuVyRRYo1RRRAF_21__habeqrerq_znc_rdhnyVyF5_AF_8rdhny_gbVyRRYo1RRRAF_9nyybpngbeVF5_RRR6erzbirRAF_21__unfu_pbafg_vgrengbeVCAF_11__unfu_abqrVF5_CiRRRR:
 nop
@@ -7848,7 +7848,7 @@
 b__MA7naqebvq25PbafhzreSenzrRiragUvfgbel26vavgvnyvmrPbzcbfvgbeGvzvatREXAF_16PbzcbfvgbeGvzvatR:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq16SenzrRiragfQrygnRAF_9nyybpngbeVF2_RRR24__rzcynpr_onpx_fybj_cnguVWEzEAF1_11SenzrRiragfREAF1_21SenzrRiragQveglSvryqfRRRRiQcBG_
+.weak b__MAFg3__16irpgbeVA7naqebvq16SenzrRiragfQrygnRAF_9nyybpngbeVF2_RRR24__rzcynpr_onpx_fybj_cnguVWEzEAF1_11SenzrRiragfREAF1_21SenzrRiragQveglSvryqfRRRRiQcBG_
 .type b__MAFg3__16irpgbeVA7naqebvq16SenzrRiragfQrygnRAF_9nyybpngbeVF2_RRR24__rzcynpr_onpx_fybj_cnguVWEzEAF1_11SenzrRiragfREAF1_21SenzrRiragQveglSvryqfRRRRiQcBG_,%function
 b__MAFg3__16irpgbeVA7naqebvq16SenzrRiragfQrygnRAF_9nyybpngbeVF2_RRR24__rzcynpr_onpx_fybj_cnguVWEzEAF1_11SenzrRiragfREAF1_21SenzrRiragQveglSvryqfRRRRiQcBG_:
 nop
@@ -7868,12 +7868,12 @@
 b__MGPA7naqebvq11OhssreDhrhr21CebklPbafhzreYvfgrareR16_AF_7VOvaqreR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIA7naqebvq6IrpgbeVAF_2fcVAF_22VTencuvpOhssreCebqhpreRRRRR
+.weak b__MGIA7naqebvq6IrpgbeVAF_2fcVAF_22VTencuvpOhssreCebqhpreRRRRR
 .type b__MGIA7naqebvq6IrpgbeVAF_2fcVAF_22VTencuvpOhssreCebqhpreRRRRR,%object
 b__MGIA7naqebvq6IrpgbeVAF_2fcVAF_22VTencuvpOhssreCebqhpreRRRRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq10trgFreivprVAF_16VFhesnprPbzcbfreRRRvEXAF_8Fgevat16RCAF_2fcVG_RR
+.weak b__MA7naqebvq10trgFreivprVAF_16VFhesnprPbzcbfreRRRvEXAF_8Fgevat16RCAF_2fcVG_RR
 .type b__MA7naqebvq10trgFreivprVAF_16VFhesnprPbzcbfreRRRvEXAF_8Fgevat16RCAF_2fcVG_RR,%function
 b__MA7naqebvq10trgFreivprVAF_16VFhesnprPbzcbfreRRRvEXAF_8Fgevat16RCAF_2fcVG_RR:
 nop
@@ -7898,7 +7898,7 @@
 b__MA7naqebvq8uneqjner8tencuvpf11ohssredhrhr4I2_05hgvyf24O2UTencuvpOhssreCebqhpre13qrdhrhrOhssreREXAF3_22VTencuvpOhssreCebqhpre18QrdhrhrOhssreVachgRAFg3__18shapgvbaVSiAF3_6FgnghfRvEXAF6_19QrdhrhrOhssreBhgchgRRRR:
 nop
 .text
-.globl b__MA7naqebvq12U2OPbairegreVAF_8uneqjner8tencuvpf11ohssredhrhr4I2_022VTencuvpOhssreCebqhpreRAF_23OaTencuvpOhssreCebqhpreRR11yvaxGbQrnguREXAF_2fcVAF_7VOvaqre14QrnguErpvcvragRRRCiw
+.weak b__MA7naqebvq12U2OPbairegreVAF_8uneqjner8tencuvpf11ohssredhrhr4I2_022VTencuvpOhssreCebqhpreRAF_23OaTencuvpOhssreCebqhpreRR11yvaxGbQrnguREXAF_2fcVAF_7VOvaqre14QrnguErpvcvragRRRCiw
 .type b__MA7naqebvq12U2OPbairegreVAF_8uneqjner8tencuvpf11ohssredhrhr4I2_022VTencuvpOhssreCebqhpreRAF_23OaTencuvpOhssreCebqhpreRR11yvaxGbQrnguREXAF_2fcVAF_7VOvaqre14QrnguErpvcvragRRRCiw,%function
 b__MA7naqebvq12U2OPbairegreVAF_8uneqjner8tencuvpf11ohssredhrhr4I2_022VTencuvpOhssreCebqhpreRAF_23OaTencuvpOhssreCebqhpreRR11yvaxGbQrnguREXAF_2fcVAF_7VOvaqre14QrnguErpvcvragRRRCiw:
 nop
@@ -7908,7 +7908,7 @@
 b__MA7naqebvq8uneqjner8tencuvpf11ohssredhrhr4I2_05hgvyf24U2OTencuvpOhssreCebqhpre13erdhrfgOhssreRvCAF_2fcVAF_13TencuvpOhssreRRR:
 nop
 .text
-.globl b__MAFg3__16irpgbeVvAF_9nyybpngbeVvRRR21__chfu_onpx_fybj_cnguVvRRiBG_
+.weak b__MAFg3__16irpgbeVvAF_9nyybpngbeVvRRR21__chfu_onpx_fybj_cnguVvRRiBG_
 .type b__MAFg3__16irpgbeVvAF_9nyybpngbeVvRRR21__chfu_onpx_fybj_cnguVvRRiBG_,%function
 b__MAFg3__16irpgbeVvAF_9nyybpngbeVvRRR21__chfu_onpx_fybj_cnguVvRRiBG_:
 nop
@@ -7958,7 +7958,7 @@
 b__MA7naqebvq17OhssreUhoCebqhpre12qrgnpuOhssreRv:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_11PchPbafhzre14NpdhverqOhssreRR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_11PchPbafhzre14NpdhverqOhssreRR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_11PchPbafhzre14NpdhverqOhssreRR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_11PchPbafhzre14NpdhverqOhssreRR7qb_pbclRCiCXiz:
 nop
@@ -7968,7 +7968,7 @@
 b__MA7naqebvq7Fhesnpr19trgYnfgDhrhrqOhssreRCAF_2fcVAF_13TencuvpOhssreRRRCAF1_VAF_5SraprRRRCs:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVyA7naqebvq28GenafnpgvbaPbzcyrgrqYvfgrare19PnyyonpxGenafyngvbaRRRAF_22__habeqrerq_znc_unfureVyF5_AF_4unfuVyRRYo1RRRAF_21__habeqrerq_znc_rdhnyVyF5_AF_8rdhny_gbVyRRYo1RRRAF_9nyybpngbeVF5_RRR14__renfr_havdhrVyRRzEXG_
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVyA7naqebvq28GenafnpgvbaPbzcyrgrqYvfgrare19PnyyonpxGenafyngvbaRRRAF_22__habeqrerq_znc_unfureVyF5_AF_4unfuVyRRYo1RRRAF_21__habeqrerq_znc_rdhnyVyF5_AF_8rdhny_gbVyRRYo1RRRAF_9nyybpngbeVF5_RRR14__renfr_havdhrVyRRzEXG_
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVyA7naqebvq28GenafnpgvbaPbzcyrgrqYvfgrare19PnyyonpxGenafyngvbaRRRAF_22__habeqrerq_znc_unfureVyF5_AF_4unfuVyRRYo1RRRAF_21__habeqrerq_znc_rdhnyVyF5_AF_8rdhny_gbVyRRYo1RRRAF_9nyybpngbeVF5_RRR14__renfr_havdhrVyRRzEXG_,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVyA7naqebvq28GenafnpgvbaPbzcyrgrqYvfgrare19PnyyonpxGenafyngvbaRRRAF_22__habeqrerq_znc_unfureVyF5_AF_4unfuVyRRYo1RRRAF_21__habeqrerq_znc_rdhnyVyF5_AF_8rdhny_gbVyRRYo1RRRAF_9nyybpngbeVF5_RRR14__renfr_havdhrVyRRzEXG_:
 nop
@@ -7983,7 +7983,7 @@
 b__MA7naqebvq7Fhesnpr19frgFunerqOhssreZbqrRo:
 nop
 .text
-.globl b__MA7naqebvq9FvatyrgbaVAF_15PbzcbfreFreivprRRQ1Ri
+.weak b__MA7naqebvq9FvatyrgbaVAF_15PbzcbfreFreivprRRQ1Ri
 .type b__MA7naqebvq9FvatyrgbaVAF_15PbzcbfreFreivprRRQ1Ri,%function
 b__MA7naqebvq9FvatyrgbaVAF_15PbzcbfreFreivprRRQ1Ri:
 nop
@@ -8008,7 +8008,7 @@
 b__MA7naqebvq23VErtvbaFnzcyvatYvfgrareQ1Ri:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_12QvfcynlFgngrRR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq6IrpgbeVAF_12QvfcynlFgngrRR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq6IrpgbeVAF_12QvfcynlFgngrRR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq6IrpgbeVAF_12QvfcynlFgngrRR10qb_qrfgeblRCiz:
 nop
@@ -8023,7 +8023,7 @@
 b__MA7naqebvq28GenafnpgvbaPbzcyrgrqYvfgrareP2Ri:
 nop
 .text
-.globl b__MA7naqebvq9FvatyrgbaVAF_11OhssrePnpurRRQ1Ri
+.weak b__MA7naqebvq9FvatyrgbaVAF_11OhssrePnpurRRQ1Ri
 .type b__MA7naqebvq9FvatyrgbaVAF_11OhssrePnpurRRQ1Ri,%function
 b__MA7naqebvq9FvatyrgbaVAF_11OhssrePnpurRRQ1Ri:
 nop
@@ -8083,7 +8083,7 @@
 b__MA7naqebvq3thv7OvgGhor13zbirErprvirSqRi:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_12QvfcynlFgngrRR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_12QvfcynlFgngrRR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_12QvfcynlFgngrRR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_12QvfcynlFgngrRR7qb_pbclRCiCXiz:
 nop
@@ -8093,7 +8093,7 @@
 b__MGua8_A7naqebvq17OaFhesnprPbzcbfre10baGenafnpgRwEXAF_6CnepryRCF1_w:
 nop
 .text
-.globl b__MA7naqebvq12U2OPbairegreVAF_8uneqjner8tencuvpf11ohssredhrhr4I1_017VCebqhpreYvfgrareRAF_18OaCebqhpreYvfgrareRR13hayvaxGbQrnguREXAF_2jcVAF_7VOvaqre14QrnguErpvcvragRRRCiwCFO_
+.weak b__MA7naqebvq12U2OPbairegreVAF_8uneqjner8tencuvpf11ohssredhrhr4I1_017VCebqhpreYvfgrareRAF_18OaCebqhpreYvfgrareRR13hayvaxGbQrnguREXAF_2jcVAF_7VOvaqre14QrnguErpvcvragRRRCiwCFO_
 .type b__MA7naqebvq12U2OPbairegreVAF_8uneqjner8tencuvpf11ohssredhrhr4I1_017VCebqhpreYvfgrareRAF_18OaCebqhpreYvfgrareRR13hayvaxGbQrnguREXAF_2jcVAF_7VOvaqre14QrnguErpvcvragRRRCiwCFO_,%function
 b__MA7naqebvq12U2OPbairegreVAF_8uneqjner8tencuvpf11ohssredhrhr4I1_017VCebqhpreYvfgrareRAF_18OaCebqhpreYvfgrareRR13hayvaxGbQrnguREXAF_2jcVAF_7VOvaqre14QrnguErpvcvragRRRCiwCFO_:
 nop
@@ -8103,7 +8103,7 @@
 b__MAX7naqebvq17OhssreUhoCebqhpre16trgPbafhzreHfntrRCz:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_2fcVAF_22VTencuvpOhssreCebqhpreRRRR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_2fcVAF_22VTencuvpOhssreCebqhpreRRRR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_2fcVAF_22VTencuvpOhssreCebqhpreRRRR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_2fcVAF_22VTencuvpOhssreCebqhpreRRRR15qb_zbir_sbejneqRCiCXiz:
 nop
@@ -8113,7 +8113,7 @@
 b__MAX7naqebvq14FhesnprPbageby18trgYnlreSenzrFgngfRCAF_10SenzrFgngfR:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_10OhssreVgrzRR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_10OhssreVgrzRR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_10OhssreVgrzRR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_10OhssreVgrzRR8qb_fcyngRCiCXiz:
 nop
@@ -8138,17 +8138,17 @@
 b__MA7naqebvq24OcQvfcynlRiragPbaarpgvbaQ0Ri:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVA7naqebvq2fcVAF1_7VOvaqreRRRAF1_16VFhesnprPbzcbfre6FcUnfuVF3_RRAF_8rdhny_gbVF4_RRAF_9nyybpngbeVF4_RRR6erunfuRz
+.weak b__MAFg3__112__unfu_gnoyrVA7naqebvq2fcVAF1_7VOvaqreRRRAF1_16VFhesnprPbzcbfre6FcUnfuVF3_RRAF_8rdhny_gbVF4_RRAF_9nyybpngbeVF4_RRR6erunfuRz
 .type b__MAFg3__112__unfu_gnoyrVA7naqebvq2fcVAF1_7VOvaqreRRRAF1_16VFhesnprPbzcbfre6FcUnfuVF3_RRAF_8rdhny_gbVF4_RRAF_9nyybpngbeVF4_RRR6erunfuRz,%function
 b__MAFg3__112__unfu_gnoyrVA7naqebvq2fcVAF1_7VOvaqreRRRAF1_16VFhesnprPbzcbfre6FcUnfuVF3_RRAF_8rdhny_gbVF4_RRAF_9nyybpngbeVF4_RRR6erunfuRz:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_13TencuvpOhssreRRRAF_9nyybpngbeVF4_RRR21__chfu_onpx_fybj_cnguVEXF4_RRiBG_
+.weak b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_13TencuvpOhssreRRRAF_9nyybpngbeVF4_RRR21__chfu_onpx_fybj_cnguVEXF4_RRiBG_
 .type b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_13TencuvpOhssreRRRAF_9nyybpngbeVF4_RRR21__chfu_onpx_fybj_cnguVEXF4_RRiBG_,%function
 b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_13TencuvpOhssreRRRAF_9nyybpngbeVF4_RRR21__chfu_onpx_fybj_cnguVEXF4_RRiBG_:
 nop
 .text
-.globl b__MA7naqebvq11UcVagresnprVAF_18OcCebqhpreYvfgrareRAF_8uneqjner8tencuvpf11ohssredhrhr4I1_05hgvyf19U2OCebqhpreYvfgrareRWAF4_4I2_05hgvyf19U2OCebqhpreYvfgrareRRRP2REXAF_2fcVAF_7VOvaqreRRR
+.weak b__MA7naqebvq11UcVagresnprVAF_18OcCebqhpreYvfgrareRAF_8uneqjner8tencuvpf11ohssredhrhr4I1_05hgvyf19U2OCebqhpreYvfgrareRWAF4_4I2_05hgvyf19U2OCebqhpreYvfgrareRRRP2REXAF_2fcVAF_7VOvaqreRRR
 .type b__MA7naqebvq11UcVagresnprVAF_18OcCebqhpreYvfgrareRAF_8uneqjner8tencuvpf11ohssredhrhr4I1_05hgvyf19U2OCebqhpreYvfgrareRWAF4_4I2_05hgvyf19U2OCebqhpreYvfgrareRRRP2REXAF_2fcVAF_7VOvaqreRRR,%function
 b__MA7naqebvq11UcVagresnprVAF_18OcCebqhpreYvfgrareRAF_8uneqjner8tencuvpf11ohssredhrhr4I1_05hgvyf19U2OCebqhpreYvfgrareRWAF4_4I2_05hgvyf19U2OCebqhpreYvfgrareRRRP2REXAF_2fcVAF_7VOvaqreRRR:
 nop
@@ -8173,12 +8173,12 @@
 b__MA7naqebvq10TYPbafhzre22ovaqGrkgherVzntrYbpxrqRi:
 nop
 .data
-.globl b__MGIA7naqebvq6IrpgbeVAF_8uneqjner8tencuvpf6pbzzba4I1_29PbybeZbqrRRR
+.weak b__MGIA7naqebvq6IrpgbeVAF_8uneqjner8tencuvpf6pbzzba4I1_29PbybeZbqrRRR
 .type b__MGIA7naqebvq6IrpgbeVAF_8uneqjner8tencuvpf6pbzzba4I1_29PbybeZbqrRRR,%object
 b__MGIA7naqebvq6IrpgbeVAF_8uneqjner8tencuvpf6pbzzba4I1_29PbybeZbqrRRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVA7naqebvq2fcVAF2_14FhesnprPbagebyRRRAF2_13PbzcbfreFgngrRRRAF_22__habeqrerq_znc_unfureVF5_F7_AF2_21FhesnprPbzcbfrePyvrag6FPUnfuRYo1RRRAF_21__habeqrerq_znc_rdhnyVF5_F7_AF_8rdhny_gbVF5_RRYo1RRRAF_9nyybpngbeVF7_RRR25__rzcynpr_havdhr_xrl_netfVF5_WEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXF5_RRRAFA_VWRRRRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF7_CiRRRRoRREXG_QcBG0_
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVA7naqebvq2fcVAF2_14FhesnprPbagebyRRRAF2_13PbzcbfreFgngrRRRAF_22__habeqrerq_znc_unfureVF5_F7_AF2_21FhesnprPbzcbfrePyvrag6FPUnfuRYo1RRRAF_21__habeqrerq_znc_rdhnyVF5_F7_AF_8rdhny_gbVF5_RRYo1RRRAF_9nyybpngbeVF7_RRR25__rzcynpr_havdhr_xrl_netfVF5_WEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXF5_RRRAFA_VWRRRRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF7_CiRRRRoRREXG_QcBG0_
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVA7naqebvq2fcVAF2_14FhesnprPbagebyRRRAF2_13PbzcbfreFgngrRRRAF_22__habeqrerq_znc_unfureVF5_F7_AF2_21FhesnprPbzcbfrePyvrag6FPUnfuRYo1RRRAF_21__habeqrerq_znc_rdhnyVF5_F7_AF_8rdhny_gbVF5_RRYo1RRRAF_9nyybpngbeVF7_RRR25__rzcynpr_havdhr_xrl_netfVF5_WEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXF5_RRRAFA_VWRRRRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF7_CiRRRRoRREXG_QcBG0_,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVA7naqebvq2fcVAF2_14FhesnprPbagebyRRRAF2_13PbzcbfreFgngrRRRAF_22__habeqrerq_znc_unfureVF5_F7_AF2_21FhesnprPbzcbfrePyvrag6FPUnfuRYo1RRRAF_21__habeqrerq_znc_rdhnyVF5_F7_AF_8rdhny_gbVF5_RRYo1RRRAF_9nyybpngbeVF7_RRR25__rzcynpr_havdhr_xrl_netfVF5_WEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXF5_RRRAFA_VWRRRRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF7_CiRRRRoRREXG_QcBG0_:
 nop
@@ -8218,12 +8218,12 @@
 b__MA7naqebvq12PbafhzreOnfr20frgPbafhzreHfntrOvgfRz:
 nop
 .data
-.globl b__MGGA7naqebvq11PchPbafhzreR
+.weak b__MGGA7naqebvq11PchPbafhzreR
 .type b__MGGA7naqebvq11PchPbafhzreR,%object
 b__MGGA7naqebvq11PchPbafhzreR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIA7naqebvq11PchPbafhzreR
+.weak b__MGIA7naqebvq11PchPbafhzreR
 .type b__MGIA7naqebvq11PchPbafhzreR,%object
 b__MGIA7naqebvq11PchPbafhzreR:
 .space __SIZEOF_POINTER__
@@ -8288,7 +8288,7 @@
 b__MGua8_A7naqebvq30OcGenafnpgvbaPbzcyrgrqYvfgrareQ1Ri:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVA7naqebvq2fcVAF2_14FhesnprPbagebyRRRAF2_13PbzcbfreFgngrRRRAF_22__habeqrerq_znc_unfureVF5_F7_AF2_21FhesnprPbzcbfrePyvrag6FPUnfuRYo1RRRAF_21__habeqrerq_znc_rdhnyVF5_F7_AF_8rdhny_gbVF5_RRYo1RRRAF_9nyybpngbeVF7_RRR16__pbafgehpg_abqrVWEXAF_4cnveVXF5_F6_RRRRRAF_10havdhr_cgeVAF_11__unfu_abqrVF7_CiRRAF_22__unfu_abqr_qrfgehpgbeVAFT_VFF_RRRRRRQcBG_
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVA7naqebvq2fcVAF2_14FhesnprPbagebyRRRAF2_13PbzcbfreFgngrRRRAF_22__habeqrerq_znc_unfureVF5_F7_AF2_21FhesnprPbzcbfrePyvrag6FPUnfuRYo1RRRAF_21__habeqrerq_znc_rdhnyVF5_F7_AF_8rdhny_gbVF5_RRYo1RRRAF_9nyybpngbeVF7_RRR16__pbafgehpg_abqrVWEXAF_4cnveVXF5_F6_RRRRRAF_10havdhr_cgeVAF_11__unfu_abqrVF7_CiRRAF_22__unfu_abqr_qrfgehpgbeVAFT_VFF_RRRRRRQcBG_
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVA7naqebvq2fcVAF2_14FhesnprPbagebyRRRAF2_13PbzcbfreFgngrRRRAF_22__habeqrerq_znc_unfureVF5_F7_AF2_21FhesnprPbzcbfrePyvrag6FPUnfuRYo1RRRAF_21__habeqrerq_znc_rdhnyVF5_F7_AF_8rdhny_gbVF5_RRYo1RRRAF_9nyybpngbeVF7_RRR16__pbafgehpg_abqrVWEXAF_4cnveVXF5_F6_RRRRRAF_10havdhr_cgeVAF_11__unfu_abqrVF7_CiRRAF_22__unfu_abqr_qrfgehpgbeVAFT_VFF_RRRRRRQcBG_,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVA7naqebvq2fcVAF2_14FhesnprPbagebyRRRAF2_13PbzcbfreFgngrRRRAF_22__habeqrerq_znc_unfureVF5_F7_AF2_21FhesnprPbzcbfrePyvrag6FPUnfuRYo1RRRAF_21__habeqrerq_znc_rdhnyVF5_F7_AF_8rdhny_gbVF5_RRYo1RRRAF_9nyybpngbeVF7_RRR16__pbafgehpg_abqrVWEXAF_4cnveVXF5_F6_RRRRRAF_10havdhr_cgeVAF_11__unfu_abqrVF7_CiRRAF_22__unfu_abqr_qrfgehpgbeVAFT_VFF_RRRRRRQcBG_:
 nop
@@ -8298,7 +8298,7 @@
 b__MA7naqebvq10pbairefvba9hasynggraRCAF_8uneqjner8tencuvpf11ohssredhrhr4I1_022VTencuvpOhssreCebqhpre17SraprGvzrFancfubgRCC13angvir_unaqyrECXiEzECXvFR_:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVA7naqebvq2fcVAF1_7VOvaqreRRRAF1_16VFhesnprPbzcbfre6FcUnfuVF3_RRAF_8rdhny_gbVF4_RRAF_9nyybpngbeVF4_RRRQ2Ri
+.weak b__MAFg3__112__unfu_gnoyrVA7naqebvq2fcVAF1_7VOvaqreRRRAF1_16VFhesnprPbzcbfre6FcUnfuVF3_RRAF_8rdhny_gbVF4_RRAF_9nyybpngbeVF4_RRRQ2Ri
 .type b__MAFg3__112__unfu_gnoyrVA7naqebvq2fcVAF1_7VOvaqreRRRAF1_16VFhesnprPbzcbfre6FcUnfuVF3_RRAF_8rdhny_gbVF4_RRAF_9nyybpngbeVF4_RRRQ2Ri,%function
 b__MAFg3__112__unfu_gnoyrVA7naqebvq2fcVAF1_7VOvaqreRRRAF1_16VFhesnprPbzcbfre6FcUnfuVF3_RRAF_8rdhny_gbVF4_RRAF_9nyybpngbeVF4_RRRQ2Ri:
 nop
@@ -8328,7 +8328,7 @@
 b__MGi0_a24_A7naqebvq14FgernzFcyvggre14BhgchgYvfgrareQ1Ri:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_2fcVAF_13TencuvpOhssreRRRR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_2fcVAF_13TencuvpOhssreRRRR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_2fcVAF_13TencuvpOhssreRRRR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_2fcVAF_13TencuvpOhssreRRRR16qb_zbir_onpxjneqRCiCXiz:
 nop
@@ -8343,7 +8343,7 @@
 b__MA7naqebvq10pbairefvba11gbUvqyOlgrfRCXiz:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_11QvfcynlVasbRR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_11QvfcynlVasbRR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_11QvfcynlVasbRR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_11QvfcynlVasbRR7qb_pbclRCiCXiz:
 nop
@@ -8353,7 +8353,7 @@
 b__MA7naqebvq21QhzzlCebqhpreYvfgrareQ1Ri:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_13PbzcbfreFgngrRR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_13PbzcbfreFgngrRR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_13PbzcbfreFgngrRR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_13PbzcbfreFgngrRR8qb_fcyngRCiCXiz:
 nop
@@ -8363,7 +8363,7 @@
 b__MGPA7naqebvq28GenafnpgvbaPbzcyrgrqYvfgrareR8_AF_7VOvaqreR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MGua8_A7naqebvq12U2OPbairegreVAF_8uneqjner8tencuvpf11ohssredhrhr4I2_022VTencuvpOhssreCebqhpreRAF_23OaTencuvpOhssreCebqhpreRR11yvaxGbQrnguREXAF_2fcVAF_7VOvaqre14QrnguErpvcvragRRRCiw
+.weak b__MGua8_A7naqebvq12U2OPbairegreVAF_8uneqjner8tencuvpf11ohssredhrhr4I2_022VTencuvpOhssreCebqhpreRAF_23OaTencuvpOhssreCebqhpreRR11yvaxGbQrnguREXAF_2fcVAF_7VOvaqre14QrnguErpvcvragRRRCiw
 .type b__MGua8_A7naqebvq12U2OPbairegreVAF_8uneqjner8tencuvpf11ohssredhrhr4I2_022VTencuvpOhssreCebqhpreRAF_23OaTencuvpOhssreCebqhpreRR11yvaxGbQrnguREXAF_2fcVAF_7VOvaqre14QrnguErpvcvragRRRCiw,%function
 b__MGua8_A7naqebvq12U2OPbairegreVAF_8uneqjner8tencuvpf11ohssredhrhr4I2_022VTencuvpOhssreCebqhpreRAF_23OaTencuvpOhssreCebqhpreRR11yvaxGbQrnguREXAF_2fcVAF_7VOvaqre14QrnguErpvcvragRRRCiw:
 nop
@@ -8393,7 +8393,7 @@
 b__MA7naqebvq9FvatyrgbaVAF_15PbzcbfreFreivprRR9fVafgnaprR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__113__irpgbe_onfrVA7naqebvq14YnlreQrohtVasbRAF_9nyybpngbeVF2_RRRQ2Ri
+.weak b__MAFg3__113__irpgbe_onfrVA7naqebvq14YnlreQrohtVasbRAF_9nyybpngbeVF2_RRRQ2Ri
 .type b__MAFg3__113__irpgbe_onfrVA7naqebvq14YnlreQrohtVasbRAF_9nyybpngbeVF2_RRRQ2Ri,%function
 b__MAFg3__113__irpgbe_onfrVA7naqebvq14YnlreQrohtVasbRAF_9nyybpngbeVF2_RRRQ2Ri:
 nop
@@ -8473,12 +8473,12 @@
 b__MA7naqebvq17OcFhesnprPbzcbfreQ1Ri:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVzAF_2fcVAF_14FgernzFcyvggre13OhssreGenpxreRRRRRR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVzAF_2fcVAF_14FgernzFcyvggre13OhssreGenpxreRRRRRR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVzAF_2fcVAF_14FgernzFcyvggre13OhssreGenpxreRRRRRR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVzAF_2fcVAF_14FgernzFcyvggre13OhssreGenpxreRRRRRR7qb_pbclRCiCXiz:
 nop
 .text
-.globl b__MA7naqebvq11UcVagresnprVAF_23OcTencuvpOhssreCebqhpreRAF_8uneqjner8tencuvpf11ohssredhrhr4I1_05hgvyf24U2OTencuvpOhssreCebqhpreRWAF4_4I2_05hgvyf24U2OTencuvpOhssreCebqhpreRRRP2REXAF_2fcVAF_7VOvaqreRRR
+.weak b__MA7naqebvq11UcVagresnprVAF_23OcTencuvpOhssreCebqhpreRAF_8uneqjner8tencuvpf11ohssredhrhr4I1_05hgvyf24U2OTencuvpOhssreCebqhpreRWAF4_4I2_05hgvyf24U2OTencuvpOhssreCebqhpreRRRP2REXAF_2fcVAF_7VOvaqreRRR
 .type b__MA7naqebvq11UcVagresnprVAF_23OcTencuvpOhssreCebqhpreRAF_8uneqjner8tencuvpf11ohssredhrhr4I1_05hgvyf24U2OTencuvpOhssreCebqhpreRWAF4_4I2_05hgvyf24U2OTencuvpOhssreCebqhpreRRRP2REXAF_2fcVAF_7VOvaqreRRR,%function
 b__MA7naqebvq11UcVagresnprVAF_23OcTencuvpOhssreCebqhpreRAF_8uneqjner8tencuvpf11ohssredhrhr4I1_05hgvyf24U2OTencuvpOhssreCebqhpreRWAF4_4I2_05hgvyf24U2OTencuvpOhssreCebqhpreRRRP2REXAF_2fcVAF_7VOvaqreRRR:
 nop
@@ -8578,7 +8578,7 @@
 b__MA7naqebvq22VTencuvpOhssrePbafhzre11nfVagresnprREXAF_2fcVAF_7VOvaqreRRR:
 nop
 .text
-.globl b__MA7naqebvq12U2OPbairegreVAF_8uneqjner8tencuvpf11ohssredhrhr4I2_022VTencuvpOhssreCebqhpreRAF_23OaTencuvpOhssreCebqhpreRR13hayvaxGbQrnguREXAF_2jcVAF_7VOvaqre14QrnguErpvcvragRRRCiwCFO_
+.weak b__MA7naqebvq12U2OPbairegreVAF_8uneqjner8tencuvpf11ohssredhrhr4I2_022VTencuvpOhssreCebqhpreRAF_23OaTencuvpOhssreCebqhpreRR13hayvaxGbQrnguREXAF_2jcVAF_7VOvaqre14QrnguErpvcvragRRRCiwCFO_
 .type b__MA7naqebvq12U2OPbairegreVAF_8uneqjner8tencuvpf11ohssredhrhr4I2_022VTencuvpOhssreCebqhpreRAF_23OaTencuvpOhssreCebqhpreRR13hayvaxGbQrnguREXAF_2jcVAF_7VOvaqre14QrnguErpvcvragRRRCiwCFO_,%function
 b__MA7naqebvq12U2OPbairegreVAF_8uneqjner8tencuvpf11ohssredhrhr4I2_022VTencuvpOhssreCebqhpreRAF_23OaTencuvpOhssreCebqhpreRR13hayvaxGbQrnguREXAF_2jcVAF_7VOvaqre14QrnguErpvcvragRRRCiwCFO_:
 nop
@@ -8598,12 +8598,12 @@
 b__MA7naqebvq11SenzrRiragf24purpxSraprfSbePbzcyrgvbaRi:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVyR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVyR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVyR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVyR16qb_zbir_onpxjneqRCiCXiz:
 nop
 .text
-.globl b__MAFg3__120__funerq_cge_cbvagreVCA7naqebvq3qie13PbafhzreDhrhrRAF_14qrsnhyg_qryrgrVF3_RRAF_9nyybpngbeVF3_RRR21__ba_mreb_funerq_jrnxRi
+.weak b__MAFg3__120__funerq_cge_cbvagreVCA7naqebvq3qie13PbafhzreDhrhrRAF_14qrsnhyg_qryrgrVF3_RRAF_9nyybpngbeVF3_RRR21__ba_mreb_funerq_jrnxRi
 .type b__MAFg3__120__funerq_cge_cbvagreVCA7naqebvq3qie13PbafhzreDhrhrRAF_14qrsnhyg_qryrgrVF3_RRAF_9nyybpngbeVF3_RRR21__ba_mreb_funerq_jrnxRi,%function
 b__MAFg3__120__funerq_cge_cbvagreVCA7naqebvq3qie13PbafhzreDhrhrRAF_14qrsnhyg_qryrgrVF3_RRAF_9nyybpngbeVF3_RRR21__ba_mreb_funerq_jrnxRi:
 nop
@@ -8638,7 +8638,7 @@
 b__MA7naqebvq22OhssreDhrhrGuernqFgngr13trgPnyyvatHvqRi:
 nop
 .text
-.globl b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
+.weak b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
 .type b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_,%function
 b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_:
 nop
@@ -8673,7 +8673,7 @@
 b__MA7naqebvq21FhesnprPbzcbfrePyvrag11GenafnpgvbaP1REXF1_:
 nop
 .text
-.globl b__MA7naqebvq9FvatyrgbaVAF_21QrsnhygPbzcbfrePyvragRR11unfVafgnaprRi
+.weak b__MA7naqebvq9FvatyrgbaVAF_21QrsnhygPbzcbfrePyvragRR11unfVafgnaprRi
 .type b__MA7naqebvq9FvatyrgbaVAF_21QrsnhygPbzcbfrePyvragRR11unfVafgnaprRi,%function
 b__MA7naqebvq9FvatyrgbaVAF_21QrsnhygPbzcbfrePyvragRR11unfVafgnaprRi:
 nop
@@ -8683,17 +8683,17 @@
 b__MA7naqebvq8uneqjner8tencuvpf11ohssredhrhr4I2_05hgvyf24U2OTencuvpOhssreCebqhpre12pnapryOhssreRvEXAF_2fcVAF_5SraprRRR:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVyR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVyR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVyR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVyR7qb_pbclRCiCXiz:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwAF_6irpgbeVuAF_9nyybpngbeVuRRRRRRAF_22__habeqrerq_znc_unfureVwF6_AF_4unfuVwRRYo1RRRAF_21__habeqrerq_znc_rdhnyVwF6_AF_8rdhny_gbVwRRYo1RRRAF3_VF6_RRR25__rzcynpr_havdhr_xrl_netfVwWEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXwRRRAFY_VWRRRRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF6_CiRRRRoRREXG_QcBG0_
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwAF_6irpgbeVuAF_9nyybpngbeVuRRRRRRAF_22__habeqrerq_znc_unfureVwF6_AF_4unfuVwRRYo1RRRAF_21__habeqrerq_znc_rdhnyVwF6_AF_8rdhny_gbVwRRYo1RRRAF3_VF6_RRR25__rzcynpr_havdhr_xrl_netfVwWEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXwRRRAFY_VWRRRRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF6_CiRRRRoRREXG_QcBG0_
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwAF_6irpgbeVuAF_9nyybpngbeVuRRRRRRAF_22__habeqrerq_znc_unfureVwF6_AF_4unfuVwRRYo1RRRAF_21__habeqrerq_znc_rdhnyVwF6_AF_8rdhny_gbVwRRYo1RRRAF3_VF6_RRR25__rzcynpr_havdhr_xrl_netfVwWEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXwRRRAFY_VWRRRRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF6_CiRRRRoRREXG_QcBG0_,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwAF_6irpgbeVuAF_9nyybpngbeVuRRRRRRAF_22__habeqrerq_znc_unfureVwF6_AF_4unfuVwRRYo1RRRAF_21__habeqrerq_znc_rdhnyVwF6_AF_8rdhny_gbVwRRYo1RRRAF3_VF6_RRR25__rzcynpr_havdhr_xrl_netfVwWEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXwRRRAFY_VWRRRRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF6_CiRRRRoRREXG_QcBG0_:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_10OhssreVgrzRR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq6IrpgbeVAF_10OhssreVgrzRR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq6IrpgbeVAF_10OhssreVgrzRR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq6IrpgbeVAF_10OhssreVgrzRR10qb_qrfgeblRCiz:
 nop
@@ -8743,12 +8743,12 @@
 b__MA7naqebvq21FhesnprPbzcbfrePyvrag11Genafnpgvba21frgPbybeFcnprNtabfgvpREXAF_2fcVAF_14FhesnprPbagebyRRRo:
 nop
 .data
-.globl b__MGIA7naqebvq21FhesnprPbzcbfrePyvrag11GenafnpgvbaR
+.weak b__MGIA7naqebvq21FhesnprPbzcbfrePyvrag11GenafnpgvbaR
 .type b__MGIA7naqebvq21FhesnprPbzcbfrePyvrag11GenafnpgvbaR,%object
 b__MGIA7naqebvq21FhesnprPbzcbfrePyvrag11GenafnpgvbaR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq17YvfgrarePnyyonpxfRAF_9nyybpngbeVF2_RRR24__rzcynpr_onpx_fybj_cnguVWEXAF1_2fcVAF1_29VGenafnpgvbaPbzcyrgrqYvfgrareRRRXAF_13habeqrerq_frgVyAF_4unfuVyRRAF_8rdhny_gbVyRRAF3_VyRRRRRRRiQcBG_
+.weak b__MAFg3__16irpgbeVA7naqebvq17YvfgrarePnyyonpxfRAF_9nyybpngbeVF2_RRR24__rzcynpr_onpx_fybj_cnguVWEXAF1_2fcVAF1_29VGenafnpgvbaPbzcyrgrqYvfgrareRRRXAF_13habeqrerq_frgVyAF_4unfuVyRRAF_8rdhny_gbVyRRAF3_VyRRRRRRRiQcBG_
 .type b__MAFg3__16irpgbeVA7naqebvq17YvfgrarePnyyonpxfRAF_9nyybpngbeVF2_RRR24__rzcynpr_onpx_fybj_cnguVWEXAF1_2fcVAF1_29VGenafnpgvbaPbzcyrgrqYvfgrareRRRXAF_13habeqrerq_frgVyAF_4unfuVyRRAF_8rdhny_gbVyRRAF3_VyRRRRRRRiQcBG_,%function
 b__MAFg3__16irpgbeVA7naqebvq17YvfgrarePnyyonpxfRAF_9nyybpngbeVF2_RRR24__rzcynpr_onpx_fybj_cnguVWEXAF1_2fcVAF1_29VGenafnpgvbaPbzcyrgrqYvfgrareRRRXAF_13habeqrerq_frgVyAF_4unfuVyRRAF_8rdhny_gbVyRRAF3_VyRRRRRRRiQcBG_:
 nop
@@ -8773,7 +8773,7 @@
 b__MA7naqebvq18OcCebqhpreYvfgrareQ1Ri:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_8uneqjner8tencuvpf6pbzzba4I1_29PbybeZbqrRR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_8uneqjner8tencuvpf6pbzzba4I1_29PbybeZbqrRR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_8uneqjner8tencuvpf6pbzzba4I1_29PbybeZbqrRR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_8uneqjner8tencuvpf6pbzzba4I1_29PbybeZbqrRR15qb_zbir_sbejneqRCiCXiz:
 nop
@@ -8798,12 +8798,12 @@
 b__MA7naqebvq19VachgJvaqbjPbzznaqf5zretrREXF0_:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVA7naqebvq2fcVAF2_14FhesnprPbagebyRRRAF2_13PbzcbfreFgngrRRRAF_22__habeqrerq_znc_unfureVF5_F7_AF2_21FhesnprPbzcbfrePyvrag6FPUnfuRYo1RRRAF_21__habeqrerq_znc_rdhnyVF5_F7_AF_8rdhny_gbVF5_RRYo1RRRAF_9nyybpngbeVF7_RRR14__nffvta_zhygvVAF_21__unfu_pbafg_vgrengbeVCAF_11__unfu_abqrVF7_CiRRRRRRiG_FD_
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVA7naqebvq2fcVAF2_14FhesnprPbagebyRRRAF2_13PbzcbfreFgngrRRRAF_22__habeqrerq_znc_unfureVF5_F7_AF2_21FhesnprPbzcbfrePyvrag6FPUnfuRYo1RRRAF_21__habeqrerq_znc_rdhnyVF5_F7_AF_8rdhny_gbVF5_RRYo1RRRAF_9nyybpngbeVF7_RRR14__nffvta_zhygvVAF_21__unfu_pbafg_vgrengbeVCAF_11__unfu_abqrVF7_CiRRRRRRiG_FD_
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVA7naqebvq2fcVAF2_14FhesnprPbagebyRRRAF2_13PbzcbfreFgngrRRRAF_22__habeqrerq_znc_unfureVF5_F7_AF2_21FhesnprPbzcbfrePyvrag6FPUnfuRYo1RRRAF_21__habeqrerq_znc_rdhnyVF5_F7_AF_8rdhny_gbVF5_RRYo1RRRAF_9nyybpngbeVF7_RRR14__nffvta_zhygvVAF_21__unfu_pbafg_vgrengbeVCAF_11__unfu_abqrVF7_CiRRRRRRiG_FD_,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVA7naqebvq2fcVAF2_14FhesnprPbagebyRRRAF2_13PbzcbfreFgngrRRRAF_22__habeqrerq_znc_unfureVF5_F7_AF2_21FhesnprPbzcbfrePyvrag6FPUnfuRYo1RRRAF_21__habeqrerq_znc_rdhnyVF5_F7_AF_8rdhny_gbVF5_RRYo1RRRAF_9nyybpngbeVF7_RRR14__nffvta_zhygvVAF_21__unfu_pbafg_vgrengbeVCAF_11__unfu_abqrVF7_CiRRRRRRiG_FD_:
 nop
 .text
-.globl b__MAFg3__16irpgbeVuAF_9nyybpngbeVuRRR6nffvtaVCuRRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVuAF_15vgrengbe_genvgfVF7_R9ersreraprRRR5inyhrRiR4glcrRF7_F7_
+.weak b__MAFg3__16irpgbeVuAF_9nyybpngbeVuRRR6nffvtaVCuRRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVuAF_15vgrengbe_genvgfVF7_R9ersreraprRRR5inyhrRiR4glcrRF7_F7_
 .type b__MAFg3__16irpgbeVuAF_9nyybpngbeVuRRR6nffvtaVCuRRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVuAF_15vgrengbe_genvgfVF7_R9ersreraprRRR5inyhrRiR4glcrRF7_F7_,%function
 b__MAFg3__16irpgbeVuAF_9nyybpngbeVuRRR6nffvtaVCuRRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVuAF_15vgrengbe_genvgfVF7_R9ersreraprRRR5inyhrRiR4glcrRF7_F7_:
 nop
@@ -8818,12 +8818,12 @@
 b__MA7naqebvq12QvfcynlFgngr4ernqREXAF_6CnepryR:
 nop
 .data
-.globl b__MGIA7naqebvq6IrpgbeVAF_10OhssreVgrzRRR
+.weak b__MGIA7naqebvq6IrpgbeVAF_10OhssreVgrzRRR
 .type b__MGIA7naqebvq6IrpgbeVAF_10OhssreVgrzRRR,%object
 b__MGIA7naqebvq6IrpgbeVAF_10OhssreVgrzRRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_2fcVAF_13TencuvpOhssreRRRR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_2fcVAF_13TencuvpOhssreRRRR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_2fcVAF_13TencuvpOhssreRRRR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_2fcVAF_13TencuvpOhssreRRRR15qb_zbir_sbejneqRCiCXiz:
 nop
@@ -8833,7 +8833,7 @@
 b__MA7naqebvq25PbafhzreSenzrRiragUvfgbel8nqqYngpuRzy:
 nop
 .data
-.globl b__MGPA7naqebvq18UcCebqhpreYvfgrareR0_AF_17VCebqhpreYvfgrareR
+.weak b__MGPA7naqebvq18UcCebqhpreYvfgrareR0_AF_17VCebqhpreYvfgrareR
 .type b__MGPA7naqebvq18UcCebqhpreYvfgrareR0_AF_17VCebqhpreYvfgrareR,%object
 b__MGPA7naqebvq18UcCebqhpreYvfgrareR0_AF_17VCebqhpreYvfgrareR:
 .space __SIZEOF_POINTER__
diff --git a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_025.S b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_025.S
index e23d0ae..58f838a 100644
--- a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_025.S
+++ b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_025.S
@@ -43,7 +43,7 @@
 b__MAX7naqebvq13rty_qvfcynl_g13unirRkgrafvbaRCXpz:
 nop
 .data
-.globl b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR16_AF_13onfvp_bfgernzVpF2_RR
+.weak b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR16_AF_13onfvp_bfgernzVpF2_RR
 .type b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR16_AF_13onfvp_bfgernzVpF2_RR,%object
 b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR16_AF_13onfvp_bfgernzVpF2_RR:
 .space __SIZEOF_POINTER__
@@ -78,7 +78,7 @@
 b__MA7naqebvq11rty_pnpur_g9grezvangrRi:
 nop
 .data
-.globl b__MGGAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
+.weak b__MGGAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
 .type b__MGGAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR,%object
 b__MGGAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR:
 .space __SIZEOF_POINTER__
@@ -183,7 +183,7 @@
 b__MA7naqebvq22rty_frg_pnpur_svyranzrRCXp:
 nop
 .data
-.globl b__MGIAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
+.weak b__MGIAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
 .type b__MGIAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR,%object
 b__MGIAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR:
 .space __SIZEOF_POINTER__
@@ -198,7 +198,7 @@
 b_rtyDhrelFgernzXUE:
 nop
 .data
-.globl b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_14onfvp_vbfgernzVpF2_RR
+.weak b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_14onfvp_vbfgernzVpF2_RR
 .type b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_14onfvp_vbfgernzVpF2_RR,%object
 b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_14onfvp_vbfgernzVpF2_RR:
 .space __SIZEOF_POINTER__
@@ -358,7 +358,7 @@
 b__MA7naqebvq13rty_qvfcynl_g18trgCyngsbezQvfcynlRCiCXy:
 nop
 .data
-.globl b__MGIAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
+.weak b__MGIAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
 .type b__MGIAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR,%object
 b__MGIAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR:
 .space __SIZEOF_POINTER__
@@ -428,12 +428,12 @@
 b_rtyTrgFlfgrzGvzrAI:
 nop
 .data
-.globl b__MGPAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_13onfvp_bfgernzVpF2_RR
+.weak b__MGPAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_13onfvp_bfgernzVpF2_RR
 .type b__MGPAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_13onfvp_bfgernzVpF2_RR,%object
 b__MGPAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_13onfvp_bfgernzVpF2_RR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
+.weak b__MGIAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
 .type b__MGIAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR,%object
 b__MGIAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR:
 .space __SIZEOF_POINTER__
@@ -463,7 +463,7 @@
 b__MA7naqebvq13rty_qvfcynl_g3trgRCi:
 nop
 .data
-.globl b__MGGAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
+.weak b__MGGAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
 .type b__MGGAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR,%object
 b__MGGAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR:
 .space __SIZEOF_POINTER__
@@ -583,7 +583,7 @@
 b__MA7naqebvq13rty_qvfcynl_g10vavgvnyvmrRCvF1_:
 nop
 .data
-.globl b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_13onfvp_vfgernzVpF2_RR
+.weak b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_13onfvp_vfgernzVpF2_RR
 .type b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_13onfvp_vfgernzVpF2_RR,%object
 b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_13onfvp_vfgernzVpF2_RR:
 .space __SIZEOF_POINTER__
diff --git a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_028.S b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_028.S
index f315cc2..9db79d6 100644
--- a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_028.S
+++ b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_028.S
@@ -8,7 +8,7 @@
 b__MA7naqebvq8uneqjner7qrgnvyf14ybtNyjnlfSngnyRCXp:
 nop
 .text
-.globl b__MAXFg3__126__raq_znexrq_fhorkcerffvbaVpR6__rkrpREAF_7__fgngrVpRR
+.weak b__MAXFg3__126__raq_znexrq_fhorkcerffvbaVpR6__rkrpREAF_7__fgngrVpRR
 .type b__MAXFg3__126__raq_znexrq_fhorkcerffvbaVpR6__rkrpREAF_7__fgngrVpRR,%function
 b__MAXFg3__126__raq_znexrq_fhorkcerffvbaVpR6__rkrpREAF_7__fgngrVpRR:
 nop
@@ -48,7 +48,7 @@
 b__MA7naqebvq4uvqy7znantre4I1_021jevgrRzorqqrqGbCnepryREXAF2_15VFreivprZnantre17VafgnaprQrohtVasbRCAF_8uneqjner6CnepryRzz:
 nop
 .text
-.globl b__MAFg3__16irpgbeVCiAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_
+.weak b__MAFg3__16irpgbeVCiAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_
 .type b__MAFg3__16irpgbeVCiAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_,%function
 b__MAFg3__16irpgbeVCiAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_:
 nop
@@ -63,7 +63,7 @@
 b__MA7naqebvq4uvqy4onfr4I1_08OcUjOnfr15baYnfgFgebatErsRCXi:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVCAF_7ErsOnfr12jrnxers_glcrRR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVCAF_7ErsOnfr12jrnxers_glcrRR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVCAF_7ErsOnfr12jrnxers_glcrRR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVCAF_7ErsOnfr12jrnxers_glcrRR15qb_zbir_sbejneqRCiCXiz:
 nop
@@ -78,12 +78,12 @@
 b__MA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbeQ0Ri:
 nop
 .text
-.globl b__MAXFg3__115__jbeq_obhaqnelVpAF_12ertrk_genvgfVpRRR6__rkrpREAF_7__fgngrVpRR
+.weak b__MAXFg3__115__jbeq_obhaqnelVpAF_12ertrk_genvgfVpRRR6__rkrpREAF_7__fgngrVpRR
 .type b__MAXFg3__115__jbeq_obhaqnelVpAF_12ertrk_genvgfVpRRR6__rkrpREAF_7__fgngrVpRR,%function
 b__MAXFg3__115__jbeq_obhaqnelVpAF_12ertrk_genvgfVpRRR6__rkrpREAF_7__fgngrVpRR:
 nop
 .data
-.globl b__MGIAFg3__128__ortva_znexrq_fhorkcerffvbaVpRR
+.weak b__MGIAFg3__128__ortva_znexrq_fhorkcerffvbaVpRR
 .type b__MGIAFg3__128__ortva_znexrq_fhorkcerffvbaVpRR,%object
 b__MGIAFg3__128__ortva_znexrq_fhorkcerffvbaVpRR:
 .space __SIZEOF_POINTER__
@@ -113,7 +113,7 @@
 b__MGua16_A7naqebvq4uvqy4onfr4I1_08OcUjOnfr15baYnfgFgebatErsRCXi:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_8uneqjner10OcUjOvaqre8BovghnelRR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_8uneqjner10OcUjOvaqre8BovghnelRR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_8uneqjner10OcUjOvaqre8BovghnelRR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_8uneqjner10OcUjOvaqre8BovghnelRR7qb_pbclRCiCXiz:
 nop
@@ -148,17 +148,17 @@
 b__MA7naqebvq4uvqy4onfr4I1_08OaUjOnfrP1REXAF_2fcVAF2_5VOnfrRRREXAFg3__112onfvp_fgevatVpAF9_11pune_genvgfVpRRAF9_9nyybpngbeVpRRRRFU_:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_2fcVAF_8uneqjner18OhssrerqGrkgBhgchg11OhssreFgngrRRRR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_2fcVAF_8uneqjner18OhssrerqGrkgBhgchg11OhssreFgngrRRRR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_2fcVAF_8uneqjner18OhssrerqGrkgBhgchg11OhssreFgngrRRRR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_2fcVAF_8uneqjner18OhssrerqGrkgBhgchg11OhssreFgngrRRRR7qb_pbclRCiCXiz:
 nop
 .text
-.globl b__MA7naqebvq8uneqjneryfVN8_pRREAF0_10GrkgBhgchgRF4_EXG_
+.weak b__MA7naqebvq8uneqjneryfVN8_pRREAF0_10GrkgBhgchgRF4_EXG_
 .type b__MA7naqebvq8uneqjneryfVN8_pRREAF0_10GrkgBhgchgRF4_EXG_,%function
 b__MA7naqebvq8uneqjneryfVN8_pRREAF0_10GrkgBhgchgRF4_EXG_:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner10sebzOvaqreVAF_4uvqy4onfr4I1_05VOnfrRAF4_8OcUjOnfrRAF4_8OaUjOnfrRRRAF_2fcVG_RREXAF8_VAF0_7VOvaqreRRR
+.weak b__MA7naqebvq8uneqjner10sebzOvaqreVAF_4uvqy4onfr4I1_05VOnfrRAF4_8OcUjOnfrRAF4_8OaUjOnfrRRRAF_2fcVG_RREXAF8_VAF0_7VOvaqreRRR
 .type b__MA7naqebvq8uneqjner10sebzOvaqreVAF_4uvqy4onfr4I1_05VOnfrRAF4_8OcUjOnfrRAF4_8OaUjOnfrRRRAF_2fcVG_RREXAF8_VAF0_7VOvaqreRRR,%function
 b__MA7naqebvq8uneqjner10sebzOvaqreVAF_4uvqy4onfr4I1_05VOnfrRAF4_8OcUjOnfrRAF4_8OaUjOnfrRRRAF_2fcVG_RREXAF8_VAF0_7VOvaqreRRR:
 nop
@@ -173,17 +173,17 @@
 b__MGi0_a24_A7naqebvq8uneqjner9OUjOvaqreQ1Ri:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF_4uvqy7znantre4I1_218OcUjFreivprZnantreRAF5_15VFreivprZnantreRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFO_11pune_genvgfVpRRAFO_9nyybpngbeVpRRRRoo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF_4uvqy7znantre4I1_218OcUjFreivprZnantreRAF5_15VFreivprZnantreRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFO_11pune_genvgfVpRRAFO_9nyybpngbeVpRRRRoo
 .type b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF_4uvqy7znantre4I1_218OcUjFreivprZnantreRAF5_15VFreivprZnantreRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFO_11pune_genvgfVpRRAFO_9nyybpngbeVpRRRRoo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF_4uvqy7znantre4I1_218OcUjFreivprZnantreRAF5_15VFreivprZnantreRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFO_11pune_genvgfVpRRAFO_9nyybpngbeVpRRRRoo:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVCAF_8uneqjner9OUjOvaqreRR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq6IrpgbeVCAF_8uneqjner9OUjOvaqreRR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq6IrpgbeVCAF_8uneqjner9OUjOvaqreRR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq6IrpgbeVCAF_8uneqjner9OUjOvaqreRR10qb_qrfgeblRCiz:
 nop
 .data
-.globl b__MGIA7naqebvq8uneqjner12SqGrkgBhgchgR
+.weak b__MGIA7naqebvq8uneqjner12SqGrkgBhgchgR
 .type b__MGIA7naqebvq8uneqjner12SqGrkgBhgchgR,%object
 b__MGIA7naqebvq8uneqjner12SqGrkgBhgchgR:
 .space __SIZEOF_POINTER__
@@ -193,17 +193,17 @@
 b__MA7naqebvq4uvqy7znantre4I1_018OcUjFreivprZnantre15yvfgOlVagresnprREXAF_8uneqjner11uvqy_fgevatRAFg3__18shapgvbaVSiEXAF4_8uvqy_irpVF5_RRRRR:
 nop
 .text
-.globl b__MA7naqebvq2fcVAF_4uvqy7znantre4I1_215VPyvragPnyyonpxRRnFRBF5_
+.weak b__MA7naqebvq2fcVAF_4uvqy7znantre4I1_215VPyvragPnyyonpxRRnFRBF5_
 .type b__MA7naqebvq2fcVAF_4uvqy7znantre4I1_215VPyvragPnyyonpxRRnFRBF5_,%function
 b__MA7naqebvq2fcVAF_4uvqy7znantre4I1_215VPyvragPnyyonpxRRnFRBF5_:
 nop
 .text
-.globl b__MAXFg3__128__ortva_znexrq_fhorkcerffvbaVpR6__rkrpREAF_7__fgngrVpRR
+.weak b__MAXFg3__128__ortva_znexrq_fhorkcerffvbaVpR6__rkrpREAF_7__fgngrVpRR
 .type b__MAXFg3__128__ortva_znexrq_fhorkcerffvbaVpR6__rkrpREAF_7__fgngrVpRR,%function
 b__MAXFg3__128__ortva_znexrq_fhorkcerffvbaVpR6__rkrpREAF_7__fgngrVpRR:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRA7naqebvq4uvqy7znantre4I1_015VFreivprZnantre17VafgnaprQrohtVasbRRRAF_19__znc_inyhr_pbzcnerVF7_FR_AF_4yrffVF7_RRYo1RRRAF5_VFR_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVCiRRECAF_15__gerr_raq_abqrVFC_RREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRA7naqebvq4uvqy7znantre4I1_015VFreivprZnantre17VafgnaprQrohtVasbRRRAF_19__znc_inyhr_pbzcnerVF7_FR_AF_4yrffVF7_RRYo1RRRAF5_VFR_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVCiRRECAF_15__gerr_raq_abqrVFC_RREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRA7naqebvq4uvqy7znantre4I1_015VFreivprZnantre17VafgnaprQrohtVasbRRRAF_19__znc_inyhr_pbzcnerVF7_FR_AF_4yrffVF7_RRYo1RRRAF5_VFR_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVCiRRECAF_15__gerr_raq_abqrVFC_RREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRA7naqebvq4uvqy7znantre4I1_015VFreivprZnantre17VafgnaprQrohtVasbRRRAF_19__znc_inyhr_pbzcnerVF7_FR_AF_4yrffVF7_RRYo1RRRAF5_VFR_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVCiRRECAF_15__gerr_raq_abqrVFC_RREXG_:
 nop
@@ -223,12 +223,12 @@
 b__MAX7naqebvq8uneqjner14VCPGuernqFgngr13trgPnyyvatFvqRi:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVCAF_8uneqjner9OUjOvaqreRR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVCAF_8uneqjner9OUjOvaqreRR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVCAF_8uneqjner9OUjOvaqreRR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVCAF_8uneqjner9OUjOvaqreRR7qb_pbclRCiCXiz:
 nop
 .text
-.globl b__MAXFg3__111__ybbxnurnqVpAF_12ertrk_genvgfVpRRR6__rkrpREAF_7__fgngrVpRR
+.weak b__MAXFg3__111__ybbxnurnqVpAF_12ertrk_genvgfVpRRR6__rkrpREAF_7__fgngrVpRR
 .type b__MAXFg3__111__ybbxnurnqVpAF_12ertrk_genvgfVpRRR6__rkrpREAF_7__fgngrVpRR,%function
 b__MAXFg3__111__ybbxnurnqVpAF_12ertrk_genvgfVpRRR6__rkrpREAF_7__fgngrVpRR:
 nop
@@ -248,7 +248,7 @@
 b__MA7naqebvq4uvqy7znantre4I1_115VFreivprZnantre19vagresnprQrfpevcgbeRAFg3__18shapgvbaVSiEXAF_8uneqjner11uvqy_fgevatRRRR:
 nop
 .text
-.globl b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR8biresybjRv
+.weak b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR8biresybjRv
 .type b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR8biresybjRv,%function
 b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR8biresybjRv:
 nop
@@ -263,7 +263,7 @@
 b__MAX7naqebvq8uneqjner6Cnepry8ernqVag8RCn:
 nop
 .data
-.globl b__MGIAFg3__110__e_napubeVpRR
+.weak b__MGIAFg3__110__e_napubeVpRR
 .type b__MGIAFg3__110__e_napubeVpRR,%object
 b__MGIAFg3__110__e_napubeVpRR:
 .space __SIZEOF_POINTER__
@@ -288,7 +288,7 @@
 b__MGIA7naqebvq4uvqy7znantre4I1_218OcUjFreivprZnantreR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq2jcVAF2_4uvqy4onfr4I1_05VOnfrRRRAF2_8uneqjner9FpurqCevbRRRAF_19__znc_inyhr_pbzcnerVF8_FO_AF_4yrffVF8_RRYo1RRRAF_9nyybpngbeVFO_RRR25__rzcynpr_havdhr_xrl_netfVF8_WEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWBF8_RRRAFA_VWRRRRRRAF_4cnveVAF_15__gerr_vgrengbeVFO_CAF_11__gerr_abqrVFO_CiRRyRRoRREXG_QcBG0_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq2jcVAF2_4uvqy4onfr4I1_05VOnfrRRRAF2_8uneqjner9FpurqCevbRRRAF_19__znc_inyhr_pbzcnerVF8_FO_AF_4yrffVF8_RRYo1RRRAF_9nyybpngbeVFO_RRR25__rzcynpr_havdhr_xrl_netfVF8_WEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWBF8_RRRAFA_VWRRRRRRAF_4cnveVAF_15__gerr_vgrengbeVFO_CAF_11__gerr_abqrVFO_CiRRyRRoRREXG_QcBG0_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq2jcVAF2_4uvqy4onfr4I1_05VOnfrRRRAF2_8uneqjner9FpurqCevbRRRAF_19__znc_inyhr_pbzcnerVF8_FO_AF_4yrffVF8_RRYo1RRRAF_9nyybpngbeVFO_RRR25__rzcynpr_havdhr_xrl_netfVF8_WEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWBF8_RRRAFA_VWRRRRRRAF_4cnveVAF_15__gerr_vgrengbeVFO_CAF_11__gerr_abqrVFO_CiRRyRRoRREXG_QcBG0_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq2jcVAF2_4uvqy4onfr4I1_05VOnfrRRRAF2_8uneqjner9FpurqCevbRRRAF_19__znc_inyhr_pbzcnerVF8_FO_AF_4yrffVF8_RRYo1RRRAF_9nyybpngbeVFO_RRR25__rzcynpr_havdhr_xrl_netfVF8_WEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWBF8_RRRAFA_VWRRRRRRAF_4cnveVAF_15__gerr_vgrengbeVFO_CAF_11__gerr_abqrVFO_CiRRyRRoRREXG_QcBG0_:
 nop
@@ -308,17 +308,17 @@
 b__MAX7naqebvq8uneqjner14VCPGuernqFgngr13trgPnyyvatCvqRi:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_8uneqjner12CebprffFgngr12unaqyr_ragelRR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_8uneqjner12CebprffFgngr12unaqyr_ragelRR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_8uneqjner12CebprffFgngr12unaqyr_ragelRR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_8uneqjner12CebprffFgngr12unaqyr_ragelRR8qb_fcyngRCiCXiz:
 nop
 .text
-.globl b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR24__cnefr_rkgraqrq_ert_rkcVAF_11__jenc_vgreVCXpRRRRG_F9_F9_
+.weak b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR24__cnefr_rkgraqrq_ert_rkcVAF_11__jenc_vgreVCXpRRRRG_F9_F9_
 .type b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR24__cnefr_rkgraqrq_ert_rkcVAF_11__jenc_vgreVCXpRRRRG_F9_F9_,%function
 b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR24__cnefr_rkgraqrq_ert_rkcVAF_11__jenc_vgreVCXpRRRRG_F9_F9_:
 nop
 .data
-.globl b__MGIAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
+.weak b__MGIAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
 .type b__MGIAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR,%object
 b__MGIAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR:
 .space __SIZEOF_POINTER__
@@ -328,7 +328,7 @@
 b__MA7naqebvq4uvqy7znantre4I1_218OcUjFreivprZnantreP1REXAF_2fcVAF_8uneqjner7VOvaqreRRR:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_3frgVvAF_4yrffVvRRAF5_VvRRRRRRAF_19__znc_inyhr_pbzcnerVF7_FQ_AF9_VF7_RRYo1RRRAF5_VFQ_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVCiRRECAF_15__gerr_raq_abqrVFA_RREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_3frgVvAF_4yrffVvRRAF5_VvRRRRRRAF_19__znc_inyhr_pbzcnerVF7_FQ_AF9_VF7_RRYo1RRRAF5_VFQ_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVCiRRECAF_15__gerr_raq_abqrVFA_RREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_3frgVvAF_4yrffVvRRAF5_VvRRRRRRAF_19__znc_inyhr_pbzcnerVF7_FQ_AF9_VF7_RRYo1RRRAF5_VFQ_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVCiRRECAF_15__gerr_raq_abqrVFA_RREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_3frgVvAF_4yrffVvRRAF5_VvRRRRRRAF_19__znc_inyhr_pbzcnerVF7_FQ_AF9_VF7_RRYo1RRRAF5_VFQ_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVCiRRECAF_15__gerr_raq_abqrVFA_RREXG_:
 nop
@@ -353,7 +353,7 @@
 b__MAX7naqebvq8uneqjner6Cnepry10reebePurpxRi:
 nop
 .data
-.globl b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_13onfvp_vfgernzVpF2_RR
+.weak b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_13onfvp_vfgernzVpF2_RR
 .type b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_13onfvp_vfgernzVpF2_RR,%object
 b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_13onfvp_vfgernzVpF2_RR:
 .space __SIZEOF_POINTER__
@@ -383,7 +383,7 @@
 b__MA7naqebvq8uneqjner9OUjOvaqre22trgZvaFpurqhyvatCbyvplRi:
 nop
 .text
-.globl b__MAXFg3__112ertrk_genvgfVpR19__genafsbez_cevznelVAF_11__jenc_vgreVCpRRRRAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRG_FP_p
+.weak b__MAXFg3__112ertrk_genvgfVpR19__genafsbez_cevznelVAF_11__jenc_vgreVCpRRRRAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRG_FP_p
 .type b__MAXFg3__112ertrk_genvgfVpR19__genafsbez_cevznelVAF_11__jenc_vgreVCpRRRRAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRG_FP_p,%function
 b__MAXFg3__112ertrk_genvgfVpR19__genafsbez_cevznelVAF_11__jenc_vgreVCpRRRRAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRG_FP_p:
 nop
@@ -433,17 +433,17 @@
 b__MGPA7naqebvq8uneqjner7qrgnvyf21PyvragPbhagrePnyyonpxR0_AF_4uvqy4onfr4I1_05VOnfrR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR22__cnefr_RER_rkcerffvbaVCXpRRG_F7_F7_
+.weak b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR22__cnefr_RER_rkcerffvbaVCXpRRG_F7_F7_
 .type b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR22__cnefr_RER_rkcerffvbaVCXpRRG_F7_F7_,%function
 b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR22__cnefr_RER_rkcerffvbaVCXpRRG_F7_F7_:
 nop
 .text
-.globl b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRR7frrxbssRkAF_8vbf_onfr7frrxqveRw
+.weak b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRR7frrxbssRkAF_8vbf_onfr7frrxqveRw
 .type b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRR7frrxbssRkAF_8vbf_onfr7frrxqveRw,%function
 b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRR7frrxbssRkAF_8vbf_onfr7frrxqveRw:
 nop
 .text
-.globl b__MAFg3__17trgyvarVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRREAF_13onfvp_vfgernzVG_G0_RRF9_EAF_12onfvp_fgevatVF6_F7_G1_RRF6_
+.weak b__MAFg3__17trgyvarVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRREAF_13onfvp_vfgernzVG_G0_RRF9_EAF_12onfvp_fgevatVF6_F7_G1_RRF6_
 .type b__MAFg3__17trgyvarVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRREAF_13onfvp_vfgernzVG_G0_RRF9_EAF_12onfvp_fgevatVF6_F7_G1_RRF6_,%function
 b__MAFg3__17trgyvarVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRREAF_13onfvp_vfgernzVG_G0_RRF9_EAF_12onfvp_fgevatVF6_F7_G1_RRF6_:
 nop
@@ -453,12 +453,12 @@
 b__MGPA7naqebvq4uvqy7znantre4I1_023OaUjFreivprAbgvsvpngvbaR0_AF_8uneqjner9OUjOvaqreR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__112__qrdhr_onfrVAF_7__fgngrVpRRAF_9nyybpngbeVF2_RRR5pyrneRi
+.weak b__MAFg3__112__qrdhr_onfrVAF_7__fgngrVpRRAF_9nyybpngbeVF2_RRR5pyrneRi
 .type b__MAFg3__112__qrdhr_onfrVAF_7__fgngrVpRRAF_9nyybpngbeVF2_RRR5pyrneRi,%function
 b__MAFg3__112__qrdhr_onfrVAF_7__fgngrVpRRAF_9nyybpngbeVF2_RRR5pyrneRi:
 nop
 .text
-.globl b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR7frrxbssRkAF_8vbf_onfr7frrxqveRw
+.weak b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR7frrxbssRkAF_8vbf_onfr7frrxqveRw
 .type b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR7frrxbssRkAF_8vbf_onfr7frrxqveRw,%function
 b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR7frrxbssRkAF_8vbf_onfr7frrxqveRw:
 nop
@@ -483,7 +483,7 @@
 b__MA7naqebvq4uvqy7znantre4I1_218OaUjPyvragPnyyonpx12trgQrohtVasbRAFg3__18shapgvbaVSiEXAF0_4onfr4I1_09QrohtVasbRRRR:
 nop
 .text
-.globl b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR24__cnefr_pbyyngvat_flzobyVAF_11__jenc_vgreVCXpRRRRG_F9_F9_EAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
+.weak b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR24__cnefr_pbyyngvat_flzobyVAF_11__jenc_vgreVCXpRRRRG_F9_F9_EAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
 .type b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR24__cnefr_pbyyngvat_flzobyVAF_11__jenc_vgreVCXpRRRRG_F9_F9_EAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR,%function
 b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR24__cnefr_pbyyngvat_flzobyVAF_11__jenc_vgreVCXpRRRRG_F9_F9_EAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR:
 nop
@@ -493,12 +493,12 @@
 b__MA7naqebvq8uneqjner6FgnghfP1RvvCXp:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_2fcVAF_8uneqjner18OhssrerqGrkgBhgchg11OhssreFgngrRRRR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq6IrpgbeVAF_2fcVAF_8uneqjner18OhssrerqGrkgBhgchg11OhssreFgngrRRRR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq6IrpgbeVAF_2fcVAF_8uneqjner18OhssrerqGrkgBhgchg11OhssreFgngrRRRR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq6IrpgbeVAF_2fcVAF_8uneqjner18OhssrerqGrkgBhgchg11OhssreFgngrRRRR10qb_qrfgeblRCiz:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_2fcVAF_8uneqjner18OhssrerqGrkgBhgchg11OhssreFgngrRRRR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_2fcVAF_8uneqjner18OhssrerqGrkgBhgchg11OhssreFgngrRRRR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_2fcVAF_8uneqjner18OhssrerqGrkgBhgchg11OhssreFgngrRRRR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_2fcVAF_8uneqjner18OhssrerqGrkgBhgchg11OhssreFgngrRRRR16qb_zbir_onpxjneqRCiCXiz:
 nop
@@ -508,7 +508,7 @@
 b__MAX7naqebvq8uneqjner6Cnepry10pyrnePnpurRi:
 nop
 .text
-.globl b__MAXFg3__112__zngpu_puneVpR6__rkrpREAF_7__fgngrVpRR
+.weak b__MAXFg3__112__zngpu_puneVpR6__rkrpREAF_7__fgngrVpRR
 .type b__MAXFg3__112__zngpu_puneVpR6__rkrpREAF_7__fgngrVpRR,%function
 b__MAXFg3__112__zngpu_puneVpR6__rkrpREAF_7__fgngrVpRR:
 nop
@@ -523,7 +523,7 @@
 b__MA7naqebvq8uneqjner18OhssrerqGrkgBhgchg5cevagRCXpz:
 nop
 .data
-.globl b__MGIA7naqebvq6IrpgbeVvRR
+.weak b__MGIA7naqebvq6IrpgbeVvRR
 .type b__MGIA7naqebvq6IrpgbeVvRR,%object
 b__MGIA7naqebvq6IrpgbeVvRR:
 .space __SIZEOF_POINTER__
@@ -553,12 +553,12 @@
 b__MA7naqebvq8uneqjner16unaqyrOvaqreCbyyRi:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq8uneqjner6Cnepry10OhssreVasbRAF_9nyybpngbeVF4_RRR21__chfu_onpx_fybj_cnguVEXF4_RRiBG_
+.weak b__MAFg3__16irpgbeVA7naqebvq8uneqjner6Cnepry10OhssreVasbRAF_9nyybpngbeVF4_RRR21__chfu_onpx_fybj_cnguVEXF4_RRiBG_
 .type b__MAFg3__16irpgbeVA7naqebvq8uneqjner6Cnepry10OhssreVasbRAF_9nyybpngbeVF4_RRR21__chfu_onpx_fybj_cnguVEXF4_RRiBG_,%function
 b__MAFg3__16irpgbeVA7naqebvq8uneqjner6Cnepry10OhssreVasbRAF_9nyybpngbeVF4_RRR21__chfu_onpx_fybj_cnguVEXF4_RRiBG_:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVCAF_7ErsOnfrRR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVCAF_7ErsOnfrRR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVCAF_7ErsOnfrRR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVCAF_7ErsOnfrRR15qb_zbir_sbejneqRCiCXiz:
 nop
@@ -568,12 +568,12 @@
 b__MA7naqebvq8uneqjner14synggra_ovaqreREXAF_2fcVAF0_12CebprffFgngrRRREXAF1_VAF0_7VOvaqreRRRCAF0_6CnepryR:
 nop
 .text
-.globl b__MAXFg3__112ertrk_genvgfVpR9genafsbezVAF_11__jenc_vgreVCpRRRRAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRG_FP_
+.weak b__MAXFg3__112ertrk_genvgfVpR9genafsbezVAF_11__jenc_vgreVCpRRRRAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRG_FP_
 .type b__MAXFg3__112ertrk_genvgfVpR9genafsbezVAF_11__jenc_vgreVCpRRRRAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRG_FP_,%function
 b__MAXFg3__112ertrk_genvgfVpR9genafsbezVAF_11__jenc_vgreVCpRRRRAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRG_FP_:
 nop
 .text
-.globl b__MAFg3__114__fcyvg_ohssreVCAF_8shapgvbaVSiiRRREAF_9nyybpngbeVF4_RRR9chfu_onpxRBF4_
+.weak b__MAFg3__114__fcyvg_ohssreVCAF_8shapgvbaVSiiRRREAF_9nyybpngbeVF4_RRR9chfu_onpxRBF4_
 .type b__MAFg3__114__fcyvg_ohssreVCAF_8shapgvbaVSiiRRREAF_9nyybpngbeVF4_RRR9chfu_onpxRBF4_,%function
 b__MAFg3__114__fcyvg_ohssreVCAF_8shapgvbaVSiiRRREAF_9nyybpngbeVF4_RRR9chfu_onpxRBF4_:
 nop
@@ -618,7 +618,7 @@
 b__MGi0_a24_A7naqebvq4uvqy7znantre4I1_018OaUjFreivprZnantreQ0Ri:
 nop
 .text
-.globl b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR11__chfu_ybbcRzzCAF_16__bjaf_bar_fgngrVpRRzzo
+.weak b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR11__chfu_ybbcRzzCAF_16__bjaf_bar_fgngrVpRRzzo
 .type b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR11__chfu_ybbcRzzCAF_16__bjaf_bar_fgngrVpRRzzo,%function
 b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR11__chfu_ybbcRzzCAF_16__bjaf_bar_fgngrVpRRzzo:
 nop
@@ -653,22 +653,22 @@
 b__MA7naqebvq8uneqjner12CebprffFgngrP1Rz:
 nop
 .text
-.globl b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR12__cnefr_ngbzVCXpRRG_F7_F7_
+.weak b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR12__cnefr_ngbzVCXpRRG_F7_F7_
 .type b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR12__cnefr_ngbzVCXpRRG_F7_F7_,%function
 b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR12__cnefr_ngbzVCXpRRG_F7_F7_:
 nop
 .text
-.globl b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR24__cnefr_punenpgre_rfpncrVCXpRRG_F7_F7_CAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
+.weak b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR24__cnefr_punenpgre_rfpncrVCXpRRG_F7_F7_CAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
 .type b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR24__cnefr_punenpgre_rfpncrVCXpRRG_F7_F7_CAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR,%function
 b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR24__cnefr_punenpgre_rfpncrVCXpRRG_F7_F7_CAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF_4uvqy7znantre4I1_023OcUjFreivprAbgvsvpngvbaRAF5_20VFreivprAbgvsvpngvbaRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFO_11pune_genvgfVpRRAFO_9nyybpngbeVpRRRRoo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF_4uvqy7znantre4I1_023OcUjFreivprAbgvsvpngvbaRAF5_20VFreivprAbgvsvpngvbaRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFO_11pune_genvgfVpRRAFO_9nyybpngbeVpRRRRoo
 .type b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF_4uvqy7znantre4I1_023OcUjFreivprAbgvsvpngvbaRAF5_20VFreivprAbgvsvpngvbaRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFO_11pune_genvgfVpRRAFO_9nyybpngbeVpRRRRoo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF_4uvqy7znantre4I1_023OcUjFreivprAbgvsvpngvbaRAF5_20VFreivprAbgvsvpngvbaRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFO_11pune_genvgfVpRRAFO_9nyybpngbeVpRRRRoo:
 nop
 .data
-.globl b__MGIA7naqebvq4uvqy7znantre4I1_216OfPyvragPnyyonpxR
+.weak b__MGIA7naqebvq4uvqy7znantre4I1_216OfPyvragPnyyonpxR
 .type b__MGIA7naqebvq4uvqy7znantre4I1_216OfPyvragPnyyonpxR,%object
 b__MGIA7naqebvq4uvqy7znantre4I1_216OfPyvragPnyyonpxR:
 .space __SIZEOF_POINTER__
@@ -678,7 +678,7 @@
 b__MAX7naqebvq8uneqjner6Cnepry7vcpQngnRi:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVCAF_7ErsOnfr12jrnxers_glcrRR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVCAF_7ErsOnfr12jrnxers_glcrRR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVCAF_7ErsOnfr12jrnxers_glcrRR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVCAF_7ErsOnfr12jrnxers_glcrRR7qb_pbclRCiCXiz:
 nop
@@ -688,7 +688,7 @@
 b__MA7naqebvq8uneqjner11uvqy_fgevat13frgGbRkgreanyRCXpz:
 nop
 .text
-.globl b__MAXFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR3fgeRi
+.weak b__MAXFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR3fgeRi
 .type b__MAXFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR3fgeRi,%function
 b__MAXFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR3fgeRi:
 nop
@@ -713,12 +713,12 @@
 b__MGPA7naqebvq4uvqy7znantre4I1_218OcUjFreivprZnantreR0_AF1_4I1_015VFreivprZnantreR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIA7naqebvq6IrpgbeVCAF_8uneqjner9OUjOvaqreRRR
+.weak b__MGIA7naqebvq6IrpgbeVCAF_8uneqjner9OUjOvaqreRRR
 .type b__MGIA7naqebvq6IrpgbeVCAF_8uneqjner9OUjOvaqreRRR,%object
 b__MGIA7naqebvq6IrpgbeVCAF_8uneqjner9OUjOvaqreRRR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIAFg3__120__zngpu_pune_pbyyngrVpAF_12ertrk_genvgfVpRRRR
+.weak b__MGIAFg3__120__zngpu_pune_pbyyngrVpAF_12ertrk_genvgfVpRRRR
 .type b__MGIAFg3__120__zngpu_pune_pbyyngrVpAF_12ertrk_genvgfVpRRRR,%object
 b__MGIAFg3__120__zngpu_pune_pbyyngrVpAF_12ertrk_genvgfVpRRRR:
 .space __SIZEOF_POINTER__
@@ -728,17 +728,17 @@
 b__MA7naqebvq8uneqjner7qrgnvyf10GnfxEhaare4chfuREXAFg3__18shapgvbaVSiiRRR:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF_4uvqy7znantre4I1_215VFreivprZnantreRAF4_4I1_115VFreivprZnantreRAF5_18OcUjFreivprZnantreRRRAF0_6ErgheaVAF_2fcVG_RRRRAFO_VG0_RRCXpo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF_4uvqy7znantre4I1_215VFreivprZnantreRAF4_4I1_115VFreivprZnantreRAF5_18OcUjFreivprZnantreRRRAF0_6ErgheaVAF_2fcVG_RRRRAFO_VG0_RRCXpo
 .type b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF_4uvqy7znantre4I1_215VFreivprZnantreRAF4_4I1_115VFreivprZnantreRAF5_18OcUjFreivprZnantreRRRAF0_6ErgheaVAF_2fcVG_RRRRAFO_VG0_RRCXpo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF_4uvqy7znantre4I1_215VFreivprZnantreRAF4_4I1_115VFreivprZnantreRAF5_18OcUjFreivprZnantreRRRAF0_6ErgheaVAF_2fcVG_RRRRAFO_VG0_RRCXpo:
 nop
 .text
-.globl b__MAXFg3__112ertrk_genvgfVpR20__ybbxhc_pbyyngranzrVCpRRAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRG_FN_p
+.weak b__MAXFg3__112ertrk_genvgfVpR20__ybbxhc_pbyyngranzrVCpRRAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRG_FN_p
 .type b__MAXFg3__112ertrk_genvgfVpR20__ybbxhc_pbyyngranzrVCpRRAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRG_FN_p,%function
 b__MAXFg3__112ertrk_genvgfVpR20__ybbxhc_pbyyngranzrVCpRRAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRG_FN_p:
 nop
 .text
-.globl b__MA7naqebvq2fcVAF_8uneqjner25CnffguebhtuFreivprZnantreRRP2RCF2_
+.weak b__MA7naqebvq2fcVAF_8uneqjner25CnffguebhtuFreivprZnantreRRP2RCF2_
 .type b__MA7naqebvq2fcVAF_8uneqjner25CnffguebhtuFreivprZnantreRRP2RCF2_,%function
 b__MA7naqebvq2fcVAF_8uneqjner25CnffguebhtuFreivprZnantreRRP2RCF2_:
 nop
@@ -758,12 +758,12 @@
 b__MA7naqebvq8uneqjner18OhssrerqGrkgBhgchgP2Rw:
 nop
 .text
-.globl b__MAXFg3__112ertrk_genvgfVpR9genafsbezVCpRRAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRG_FN_
+.weak b__MAXFg3__112ertrk_genvgfVpR9genafsbezVCpRRAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRG_FN_
 .type b__MAXFg3__112ertrk_genvgfVpR9genafsbezVCpRRAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRG_FN_,%function
 b__MAXFg3__112ertrk_genvgfVpR9genafsbezVCpRRAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRG_FN_:
 nop
 .text
-.globl b__MAFg3__120__funerq_cge_rzcynprVA7naqebvq8uneqjner7qrgnvyf24YnmlFreivprErtvfgeneVzcyRAF_9nyybpngbeVF4_RRR21__ba_mreb_funerq_jrnxRi
+.weak b__MAFg3__120__funerq_cge_rzcynprVA7naqebvq8uneqjner7qrgnvyf24YnmlFreivprErtvfgeneVzcyRAF_9nyybpngbeVF4_RRR21__ba_mreb_funerq_jrnxRi
 .type b__MAFg3__120__funerq_cge_rzcynprVA7naqebvq8uneqjner7qrgnvyf24YnmlFreivprErtvfgeneVzcyRAF_9nyybpngbeVF4_RRR21__ba_mreb_funerq_jrnxRi,%function
 b__MAFg3__120__funerq_cge_rzcynprVA7naqebvq8uneqjner7qrgnvyf24YnmlFreivprErtvfgeneVzcyRAF_9nyybpngbeVF4_RRR21__ba_mreb_funerq_jrnxRi:
 nop
@@ -783,22 +783,22 @@
 b__MA7naqebvq4uvqy4onfr4I1_08OcUjOnfr12trgUnfuPunvaRAFg3__18shapgvbaVSiEXAF_8uneqjner8uvqy_irpVAF6_10uvqy_neenlVuYz32RWRRRRRRRR:
 nop
 .text
-.globl b__MAXFg3__110__e_napubeVpR6__rkrpREAF_7__fgngrVpRR
+.weak b__MAXFg3__110__e_napubeVpR6__rkrpREAF_7__fgngrVpRR
 .type b__MAXFg3__110__e_napubeVpR6__rkrpREAF_7__fgngrVpRR,%function
 b__MAXFg3__110__e_napubeVpR6__rkrpREAF_7__fgngrVpRR:
 nop
 .text
-.globl b__MAFg3__116__bjaf_bar_fgngrVpRQ0Ri
+.weak b__MAFg3__116__bjaf_bar_fgngrVpRQ0Ri
 .type b__MAFg3__116__bjaf_bar_fgngrVpRQ0Ri,%function
 b__MAFg3__116__bjaf_bar_fgngrVpRQ0Ri:
 nop
 .text
-.globl b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR24__cnefr_rkgraqrq_ert_rkcVCXpRRG_F7_F7_
+.weak b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR24__cnefr_rkgraqrq_ert_rkcVCXpRRG_F7_F7_
 .type b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR24__cnefr_rkgraqrq_ert_rkcVCXpRRG_F7_F7_,%function
 b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR24__cnefr_rkgraqrq_ert_rkcVCXpRRG_F7_F7_:
 nop
 .data
-.globl b__MGGA7naqebvq8uneqjner7qrgnvyf6JnvgreR
+.weak b__MGGA7naqebvq8uneqjner7qrgnvyf6JnvgreR
 .type b__MGGA7naqebvq8uneqjner7qrgnvyf6JnvgreR,%object
 b__MGGA7naqebvq8uneqjner7qrgnvyf6JnvgreR:
 .space __SIZEOF_POINTER__
@@ -833,7 +833,7 @@
 b__MA7naqebvq8uneqjner6Cnepry11jevgrHvag64Rz:
 nop
 .text
-.globl b__MA7naqebvq8uneqjneryfVN9_pRREAF0_10GrkgBhgchgRF4_EXG_
+.weak b__MA7naqebvq8uneqjneryfVN9_pRREAF0_10GrkgBhgchgRF4_EXG_
 .type b__MA7naqebvq8uneqjneryfVN9_pRREAF0_10GrkgBhgchgRF4_EXG_,%function
 b__MA7naqebvq8uneqjneryfVN9_pRREAF0_10GrkgBhgchgRF4_EXG_:
 nop
@@ -958,7 +958,7 @@
 b__MA7naqebvq8uneqjner6Cnepry15frgQngnPncnpvglRz:
 nop
 .text
-.globl b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR23__cnefr_punenpgre_pynffVAF_11__jenc_vgreVCXpRRRRG_F9_F9_CAF_20__oenpxrg_rkcerffvbaVpF2_RR
+.weak b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR23__cnefr_punenpgre_pynffVAF_11__jenc_vgreVCXpRRRRG_F9_F9_CAF_20__oenpxrg_rkcerffvbaVpF2_RR
 .type b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR23__cnefr_punenpgre_pynffVAF_11__jenc_vgreVCXpRRRRG_F9_F9_CAF_20__oenpxrg_rkcerffvbaVpF2_RR,%function
 b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR23__cnefr_punenpgre_pynffVAF_11__jenc_vgreVCXpRRRRG_F9_F9_CAF_20__oenpxrg_rkcerffvbaVpF2_RR:
 nop
@@ -968,7 +968,7 @@
 b__MA7naqebvq8uneqjner10OcUjOvaqre13BowrpgZnantreP2Ri:
 nop
 .text
-.globl b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR25__cnefr_cnggrea_punenpgreVAF_11__jenc_vgreVCXpRRRRG_F9_F9_
+.weak b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR25__cnefr_cnggrea_punenpgreVAF_11__jenc_vgreVCXpRRRRG_F9_F9_
 .type b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR25__cnefr_cnggrea_punenpgreVAF_11__jenc_vgreVCXpRRRRG_F9_F9_,%function
 b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR25__cnefr_cnggrea_punenpgreVAF_11__jenc_vgreVCXpRRRRG_F9_F9_:
 nop
@@ -983,12 +983,12 @@
 b__MGua32_A7naqebvq4uvqy7znantre4I1_118OaUjFreivprZnantreQ0Ri:
 nop
 .data
-.globl b__MGPA7naqebvq4uvqy4onfr4I1_06OfOnfrR0_AF2_5VOnfrR
+.weak b__MGPA7naqebvq4uvqy4onfr4I1_06OfOnfrR0_AF2_5VOnfrR
 .type b__MGPA7naqebvq4uvqy4onfr4I1_06OfOnfrR0_AF2_5VOnfrR,%object
 b__MGPA7naqebvq4uvqy4onfr4I1_06OfOnfrR0_AF2_5VOnfrR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_8Fgevat16RAF_2fcVAF_8uneqjner7VOvaqreRRRRRR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_8Fgevat16RAF_2fcVAF_8uneqjner7VOvaqreRRRRRR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_8Fgevat16RAF_2fcVAF_8uneqjner7VOvaqreRRRRRR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_8Fgevat16RAF_2fcVAF_8uneqjner7VOvaqreRRRRRR15qb_zbir_sbejneqRCiCXiz:
 nop
@@ -1013,7 +1013,7 @@
 b__MA7naqebvq8uneqjner7qrgnvyf13trgQrfpevcgbeRCAF_4uvqy4onfr4I1_05VOnfrR:
 nop
 .text
-.globl b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRR7frrxcbfRAF_4scbfV9zofgngr_gRRw
+.weak b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRR7frrxcbfRAF_4scbfV9zofgngr_gRRw
 .type b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRR7frrxcbfRAF_4scbfV9zofgngr_gRRw,%function
 b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRR7frrxcbfRAF_4scbfV9zofgngr_gRRw:
 nop
@@ -1023,12 +1023,12 @@
 b__MA7naqebvq4uvqy7znantre4I1_018OaUjFreivprZnantreP1REXAF_2fcVAF2_15VFreivprZnantreRRR:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVCAF_7ErsOnfr12jrnxers_glcrRR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq6IrpgbeVCAF_7ErsOnfr12jrnxers_glcrRR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq6IrpgbeVCAF_7ErsOnfr12jrnxers_glcrRR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq6IrpgbeVCAF_7ErsOnfr12jrnxers_glcrRR12qb_pbafgehpgRCiz:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVvR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVvR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVvR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVvR15qb_zbir_sbejneqRCiCXiz:
 nop
@@ -1048,7 +1048,7 @@
 b__MA7naqebvq4uvqy7znantre4I1_218OaUjFreivprZnantre19_uvqy_gelHaertvfgreRCAF0_4onfr4I1_08OaUjOnfrREXAF_8uneqjner6CnepryRCF9_AFg3__18shapgvbaVSiEF9_RRR:
 nop
 .text
-.globl b__MAFg3__110__shapgvba6__shapVCSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF_6irpgbeVCiAF_9nyybpngbeVFN_RRRRRAFO_VFT_RRFS_R7qrfgeblRi
+.weak b__MAFg3__110__shapgvba6__shapVCSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF_6irpgbeVCiAF_9nyybpngbeVFN_RRRRRAFO_VFT_RRFS_R7qrfgeblRi
 .type b__MAFg3__110__shapgvba6__shapVCSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF_6irpgbeVCiAF_9nyybpngbeVFN_RRRRRAFO_VFT_RRFS_R7qrfgeblRi,%function
 b__MAFg3__110__shapgvba6__shapVCSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF_6irpgbeVCiAF_9nyybpngbeVFN_RRRRRAFO_VFT_RRFS_R7qrfgeblRi:
 nop
@@ -1078,7 +1078,7 @@
 b_trgUJOvaqreXrearyErsreraprf:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_8uneqjner12CebprffFgngr12unaqyr_ragelRR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_8uneqjner12CebprffFgngr12unaqyr_ragelRR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_8uneqjner12CebprffFgngr12unaqyr_ragelRR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_8uneqjner12CebprffFgngr12unaqyr_ragelRR16qb_zbir_onpxjneqRCiCXiz:
 nop
@@ -1088,7 +1088,7 @@
 b__MA7naqebvq8uneqjner6Cnepry25jevgrRzorqqrqAngvirUnaqyrRCX13angvir_unaqyrzz:
 nop
 .data
-.globl b__MGIAFg3__113onfvp_sfgernzVpAF_11pune_genvgfVpRRRR
+.weak b__MGIAFg3__113onfvp_sfgernzVpAF_11pune_genvgfVpRRRR
 .type b__MGIAFg3__113onfvp_sfgernzVpAF_11pune_genvgfVpRRRR,%object
 b__MGIAFg3__113onfvp_sfgernzVpAF_11pune_genvgfVpRRRR:
 .space __SIZEOF_POINTER__
@@ -1103,7 +1103,7 @@
 b__MA7naqebvq8uneqjner7qrgnvyf10GnfxEhaareQ1Ri:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner10sebzOvaqreVAF_4uvqy7znantre4I1_020VFreivprAbgvsvpngvbaRAF4_23OcUjFreivprAbgvsvpngvbaRAF4_23OaUjFreivprAbgvsvpngvbaRRRAF_2fcVG_RREXAF8_VAF0_7VOvaqreRRR
+.weak b__MA7naqebvq8uneqjner10sebzOvaqreVAF_4uvqy7znantre4I1_020VFreivprAbgvsvpngvbaRAF4_23OcUjFreivprAbgvsvpngvbaRAF4_23OaUjFreivprAbgvsvpngvbaRRRAF_2fcVG_RREXAF8_VAF0_7VOvaqreRRR
 .type b__MA7naqebvq8uneqjner10sebzOvaqreVAF_4uvqy7znantre4I1_020VFreivprAbgvsvpngvbaRAF4_23OcUjFreivprAbgvsvpngvbaRAF4_23OaUjFreivprAbgvsvpngvbaRRRAF_2fcVG_RREXAF8_VAF0_7VOvaqreRRR,%function
 b__MA7naqebvq8uneqjner10sebzOvaqreVAF_4uvqy7znantre4I1_020VFreivprAbgvsvpngvbaRAF4_23OcUjFreivprAbgvsvpngvbaRAF4_23OaUjFreivprAbgvsvpngvbaRRRAF_2fcVG_RREXAF8_VAF0_7VOvaqreRRR:
 nop
@@ -1138,7 +1138,7 @@
 b__MA7naqebvq8uneqjner6Cnepry12jevgrCbvagreRz:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner6Cnepry11jevgrBowrpgV20ovaqre_ohssre_bowrpgRRvEXG_
+.weak b__MA7naqebvq8uneqjner6Cnepry11jevgrBowrpgV20ovaqre_ohssre_bowrpgRRvEXG_
 .type b__MA7naqebvq8uneqjner6Cnepry11jevgrBowrpgV20ovaqre_ohssre_bowrpgRRvEXG_,%function
 b__MA7naqebvq8uneqjner6Cnepry11jevgrBowrpgV20ovaqre_ohssre_bowrpgRRvEXG_:
 nop
@@ -1153,7 +1153,7 @@
 b__MA7naqebvq4uvqy7znantre4I1_115VFreivprZnantre21abgvslFlfcebcfPunatrqRi:
 nop
 .text
-.globl b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR25__cnefr_rdhvinyrapr_pynffVCXpRRG_F7_F7_CAF_20__oenpxrg_rkcerffvbaVpF2_RR
+.weak b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR25__cnefr_rdhvinyrapr_pynffVCXpRRG_F7_F7_CAF_20__oenpxrg_rkcerffvbaVpF2_RR
 .type b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR25__cnefr_rdhvinyrapr_pynffVCXpRRG_F7_F7_CAF_20__oenpxrg_rkcerffvbaVpF2_RR,%function
 b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR25__cnefr_rdhvinyrapr_pynffVCXpRRG_F7_F7_CAF_20__oenpxrg_rkcerffvbaVpF2_RR:
 nop
@@ -1193,7 +1193,7 @@
 b__MA7naqebvq8uneqjner9OUjOvaqre15vfErdhrfgvatFvqRi:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVCXiAF_8uneqjner10OcUjOvaqre13BowrpgZnantre7ragel_gRRRR7qb_pbclRCiF3_z
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVCXiAF_8uneqjner10OcUjOvaqre13BowrpgZnantre7ragel_gRRRR7qb_pbclRCiF3_z
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVCXiAF_8uneqjner10OcUjOvaqre13BowrpgZnantre7ragel_gRRRR7qb_pbclRCiF3_z,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVCXiAF_8uneqjner10OcUjOvaqre13BowrpgZnantre7ragel_gRRRR7qb_pbclRCiF3_z:
 nop
@@ -1218,7 +1218,7 @@
 b__MGGA7naqebvq4uvqy4onfr4I1_08OaUjOnfrR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAXFg3__117__ercrng_bar_ybbcVpR6__rkrpREAF_7__fgngrVpRR
+.weak b__MAXFg3__117__ercrng_bar_ybbcVpR6__rkrpREAF_7__fgngrVpRR
 .type b__MAXFg3__117__ercrng_bar_ybbcVpR6__rkrpREAF_7__fgngrVpRR,%function
 b__MAXFg3__117__ercrng_bar_ybbcVpR6__rkrpREAF_7__fgngrVpRR:
 nop
@@ -1228,12 +1228,12 @@
 b__MA7naqebvq8uneqjner22ernqRzorqqrqSebzCnepryREXAF0_11uvqy_fgevatREXAF0_6CnepryRzz:
 nop
 .data
-.globl b__MGPAFg3__113onfvp_sfgernzVpAF_11pune_genvgfVpRRRR0_AF_13onfvp_vfgernzVpF2_RR
+.weak b__MGPAFg3__113onfvp_sfgernzVpAF_11pune_genvgfVpRRRR0_AF_13onfvp_vfgernzVpF2_RR
 .type b__MGPAFg3__113onfvp_sfgernzVpAF_11pune_genvgfVpRRRR0_AF_13onfvp_vfgernzVpF2_RR,%object
 b__MGPAFg3__113onfvp_sfgernzVpAF_11pune_genvgfVpRRRR0_AF_13onfvp_vfgernzVpF2_RR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRP2REXFU_
+.weak b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRP2REXFU_
 .type b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRP2REXFU_,%function
 b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRP2REXFU_:
 nop
@@ -1248,7 +1248,7 @@
 b__MA7naqebvq8uneqjner14VCPGuernqFgngr15vapFgebatUnaqyrRvCAF0_10OcUjOvaqreR:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVCAF_7ErsOnfr12jrnxers_glcrRR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVCAF_7ErsOnfr12jrnxers_glcrRR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVCAF_7ErsOnfr12jrnxers_glcrRR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVCAF_7ErsOnfr12jrnxers_glcrRR16qb_zbir_onpxjneqRCiCXiz:
 nop
@@ -1263,12 +1263,12 @@
 b__MA7naqebvq4uvqy7znantre4I1_023OcUjFreivprAbgvsvpngvba14baErtvfgengvbaREXAF_8uneqjner11uvqy_fgevatRF7_o:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_9fho_zngpuVCXpRRAF_9nyybpngbeVF4_RRR8__nccraqRzEXF4_
+.weak b__MAFg3__16irpgbeVAF_9fho_zngpuVCXpRRAF_9nyybpngbeVF4_RRR8__nccraqRzEXF4_
 .type b__MAFg3__16irpgbeVAF_9fho_zngpuVCXpRRAF_9nyybpngbeVF4_RRR8__nccraqRzEXF4_,%function
 b__MAFg3__16irpgbeVAF_9fho_zngpuVCXpRRAF_9nyybpngbeVF4_RRR8__nccraqRzEXF4_:
 nop
 .data
-.globl b__MGIA7naqebvq6IrpgbeVAF_2fcVAF_8uneqjner18OhssrerqGrkgBhgchg11OhssreFgngrRRRRR
+.weak b__MGIA7naqebvq6IrpgbeVAF_2fcVAF_8uneqjner18OhssrerqGrkgBhgchg11OhssreFgngrRRRRR
 .type b__MGIA7naqebvq6IrpgbeVAF_2fcVAF_8uneqjner18OhssrerqGrkgBhgchg11OhssreFgngrRRRRR,%object
 b__MGIA7naqebvq6IrpgbeVAF_2fcVAF_8uneqjner18OhssrerqGrkgBhgchg11OhssreFgngrRRRRR:
 .space __SIZEOF_POINTER__
@@ -1278,7 +1278,7 @@
 b__MA7naqebvq8uneqjner6Cnepry13jevgrHacnqqrqRCXiz:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF6_RRR21__chfu_onpx_fybj_cnguVEXF6_RRiBG_
+.weak b__MAFg3__16irpgbeVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF6_RRR21__chfu_onpx_fybj_cnguVEXF6_RRiBG_
 .type b__MAFg3__16irpgbeVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF6_RRR21__chfu_onpx_fybj_cnguVEXF6_RRiBG_,%function
 b__MAFg3__16irpgbeVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF6_RRR21__chfu_onpx_fybj_cnguVEXF6_RRiBG_:
 nop
@@ -1298,7 +1298,7 @@
 b__MA7naqebvq8uneqjner10UvqyZrzbel11trgVafgnaprRBAF0_11uvqy_zrzbelR:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF_4uvqy7znantre4I1_018OcUjFreivprZnantreRAF5_15VFreivprZnantreRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFO_11pune_genvgfVpRRAFO_9nyybpngbeVpRRRRoo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF_4uvqy7znantre4I1_018OcUjFreivprZnantreRAF5_15VFreivprZnantreRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFO_11pune_genvgfVpRRAFO_9nyybpngbeVpRRRRoo
 .type b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF_4uvqy7znantre4I1_018OcUjFreivprZnantreRAF5_15VFreivprZnantreRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFO_11pune_genvgfVpRRAFO_9nyybpngbeVpRRRRoo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF_4uvqy7znantre4I1_018OcUjFreivprZnantreRAF5_15VFreivprZnantreRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFO_11pune_genvgfVpRRAFO_9nyybpngbeVpRRRRoo:
 nop
@@ -1338,7 +1338,7 @@
 b__MA7naqebvq8uneqjner6Cnepry9vavgFgngrRi:
 nop
 .text
-.globl b__MAFg3__114__fcyvg_ohssreVCAF_7__fgngrVpRRAF_9nyybpngbeVF3_RRR10chfu_sebagREXF3_
+.weak b__MAFg3__114__fcyvg_ohssreVCAF_7__fgngrVpRRAF_9nyybpngbeVF3_RRR10chfu_sebagREXF3_
 .type b__MAFg3__114__fcyvg_ohssreVCAF_7__fgngrVpRRAF_9nyybpngbeVF3_RRR10chfu_sebagREXF3_,%function
 b__MAFg3__114__fcyvg_ohssreVCAF_7__fgngrVpRRAF_9nyybpngbeVF3_RRR10chfu_sebagREXF3_:
 nop
@@ -1368,7 +1368,7 @@
 b__MA7naqebvq4uvqy4onfr4I1_08OaUjOnfrP2REXAF_2fcVAF2_5VOnfrRRREXAFg3__112onfvp_fgevatVpAF9_11pune_genvgfVpRRAF9_9nyybpngbeVpRRRRFU_:
 nop
 .data
-.globl b__MGPA7naqebvq4uvqy7znantre4I1_016OfFreivprZnantreR0_AF2_15VFreivprZnantreR
+.weak b__MGPA7naqebvq4uvqy7znantre4I1_016OfFreivprZnantreR0_AF2_15VFreivprZnantreR
 .type b__MGPA7naqebvq4uvqy7znantre4I1_016OfFreivprZnantreR0_AF2_15VFreivprZnantreR,%object
 b__MGPA7naqebvq4uvqy7znantre4I1_016OfFreivprZnantreR0_AF2_15VFreivprZnantreR:
 .space __SIZEOF_POINTER__
@@ -1473,12 +1473,12 @@
 b__MA7naqebvq8uneqjner10OcUjOvaqreP1Rv:
 nop
 .text
-.globl b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR22__cnefr_RER_rkcerffvbaVAF_11__jenc_vgreVCXpRRRRG_F9_F9_
+.weak b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR22__cnefr_RER_rkcerffvbaVAF_11__jenc_vgreVCXpRRRRG_F9_F9_
 .type b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR22__cnefr_RER_rkcerffvbaVAF_11__jenc_vgreVCXpRRRRG_F9_F9_,%function
 b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR22__cnefr_RER_rkcerffvbaVAF_11__jenc_vgreVCXpRRRRG_F9_F9_:
 nop
 .text
-.globl b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR18__cnefr_abaqhcy_ERVCXpRRG_F7_F7_
+.weak b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR18__cnefr_abaqhcy_ERVCXpRRG_F7_F7_
 .type b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR18__cnefr_abaqhcy_ERVCXpRRG_F7_F7_,%function
 b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR18__cnefr_abaqhcy_ERVCXpRRG_F7_F7_:
 nop
@@ -1508,7 +1508,7 @@
 b__MGi0_a40_A7naqebvq8uneqjner10OcUjOvaqre15baYnfgFgebatErsRCXi:
 nop
 .data
-.globl b__MGIA7naqebvq6IrpgbeVCAF_7ErsOnfr12jrnxers_glcrRRR
+.weak b__MGIA7naqebvq6IrpgbeVCAF_7ErsOnfr12jrnxers_glcrRRR
 .type b__MGIA7naqebvq6IrpgbeVCAF_7ErsOnfr12jrnxers_glcrRRR,%object
 b__MGIA7naqebvq6IrpgbeVCAF_7ErsOnfr12jrnxers_glcrRRR:
 .space __SIZEOF_POINTER__
@@ -1538,17 +1538,17 @@
 b__MGPA7naqebvq4uvqy7znantre4I1_218OcUjFreivprZnantreR0_AF2_15VFreivprZnantreR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__16irpgbeVAF_8shapgvbaVSiiRRRAF_9nyybpngbeVF3_RRR21__chfu_onpx_fybj_cnguVEXF3_RRiBG_
+.weak b__MAFg3__16irpgbeVAF_8shapgvbaVSiiRRRAF_9nyybpngbeVF3_RRR21__chfu_onpx_fybj_cnguVEXF3_RRiBG_
 .type b__MAFg3__16irpgbeVAF_8shapgvbaVSiiRRRAF_9nyybpngbeVF3_RRR21__chfu_onpx_fybj_cnguVEXF3_RRiBG_,%function
 b__MAFg3__16irpgbeVAF_8shapgvbaVSiiRRRAF_9nyybpngbeVF3_RRR21__chfu_onpx_fybj_cnguVEXF3_RRiBG_:
 nop
 .text
-.globl b__MA7naqebvq8uneqjneryfVCiRREAF0_10GrkgBhgchgRF4_EXG_
+.weak b__MA7naqebvq8uneqjneryfVCiRREAF0_10GrkgBhgchgRF4_EXG_
 .type b__MA7naqebvq8uneqjneryfVCiRREAF0_10GrkgBhgchgRF4_EXG_,%function
 b__MA7naqebvq8uneqjneryfVCiRREAF0_10GrkgBhgchgRF4_EXG_:
 nop
 .text
-.globl b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR23__cnefr_rkcerffvba_grezVAF_11__jenc_vgreVCXpRRRRG_F9_F9_CAF_20__oenpxrg_rkcerffvbaVpF2_RR
+.weak b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR23__cnefr_rkcerffvba_grezVAF_11__jenc_vgreVCXpRRRRG_F9_F9_CAF_20__oenpxrg_rkcerffvbaVpF2_RR
 .type b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR23__cnefr_rkcerffvba_grezVAF_11__jenc_vgreVCXpRRRRG_F9_F9_CAF_20__oenpxrg_rkcerffvbaVpF2_RR,%function
 b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR23__cnefr_rkcerffvba_grezVAF_11__jenc_vgreVCXpRRRRG_F9_F9_CAF_20__oenpxrg_rkcerffvbaVpF2_RR:
 nop
@@ -1583,12 +1583,12 @@
 b__MA7naqebvq8uneqjner6Cnepry12jevgrVacynprRz:
 nop
 .data
-.globl b__MTIMA7naqebvq8uneqjner25CnffguebhtuFreivprZnantre8bcraYvofREXAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRREXAF2_8shapgvbaVSoCiFN_FN_RRRR16unyYvoCnguIaqxFc
+.weak b__MTIMA7naqebvq8uneqjner25CnffguebhtuFreivprZnantre8bcraYvofREXAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRREXAF2_8shapgvbaVSoCiFN_FN_RRRR16unyYvoCnguIaqxFc
 .type b__MTIMA7naqebvq8uneqjner25CnffguebhtuFreivprZnantre8bcraYvofREXAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRREXAF2_8shapgvbaVSoCiFN_FN_RRRR16unyYvoCnguIaqxFc,%object
 b__MTIMA7naqebvq8uneqjner25CnffguebhtuFreivprZnantre8bcraYvofREXAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRREXAF2_8shapgvbaVSoCiFN_FN_RRRR16unyYvoCnguIaqxFc:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRRP2Ri
+.weak b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRRP2Ri
 .type b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRRP2Ri,%function
 b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRRP2Ri:
 nop
@@ -1603,12 +1603,12 @@
 b__MGPA7naqebvq4uvqy7znantre4I1_218OaUjFreivprZnantreR0_AF0_4onfr4I1_08OaUjOnfrR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq8uneqjneryfVN5_pRREAF0_10GrkgBhgchgRF4_EXG_
+.weak b__MA7naqebvq8uneqjneryfVN5_pRREAF0_10GrkgBhgchgRF4_EXG_
 .type b__MA7naqebvq8uneqjneryfVN5_pRREAF0_10GrkgBhgchgRF4_EXG_,%function
 b__MA7naqebvq8uneqjneryfVN5_pRREAF0_10GrkgBhgchgRF4_EXG_:
 nop
 .text
-.globl b__MAXFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR27__zngpu_ng_fgneg_cbfvk_fhofVAF_9nyybpngbeVAF_9fho_zngpuVCXpRRRRRRoF8_F8_EAF_13zngpu_erfhygfVF8_G_RRAF_15ertrk_pbafgnagf15zngpu_synt_glcrRo
+.weak b__MAXFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR27__zngpu_ng_fgneg_cbfvk_fhofVAF_9nyybpngbeVAF_9fho_zngpuVCXpRRRRRRoF8_F8_EAF_13zngpu_erfhygfVF8_G_RRAF_15ertrk_pbafgnagf15zngpu_synt_glcrRo
 .type b__MAXFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR27__zngpu_ng_fgneg_cbfvk_fhofVAF_9nyybpngbeVAF_9fho_zngpuVCXpRRRRRRoF8_F8_EAF_13zngpu_erfhygfVF8_G_RRAF_15ertrk_pbafgnagf15zngpu_synt_glcrRo,%function
 b__MAXFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR27__zngpu_ng_fgneg_cbfvk_fhofVAF_9nyybpngbeVAF_9fho_zngpuVCXpRRRRRRoF8_F8_EAF_13zngpu_erfhygfVF8_G_RRAF_15ertrk_pbafgnagf15zngpu_synt_glcrRo:
 nop
@@ -1623,7 +1623,7 @@
 b__MA7naqebvq8uneqjner10GrkgBhgchgP2Ri:
 nop
 .data
-.globl b__MGIAFg3__110__shapgvba6__shapVCSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF_6irpgbeVCiAF_9nyybpngbeVFN_RRRRRAFO_VFT_RRFS_RR
+.weak b__MGIAFg3__110__shapgvba6__shapVCSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF_6irpgbeVCiAF_9nyybpngbeVFN_RRRRRAFO_VFT_RRFS_RR
 .type b__MGIAFg3__110__shapgvba6__shapVCSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF_6irpgbeVCiAF_9nyybpngbeVFN_RRRRRAFO_VFT_RRFS_RR,%object
 b__MGIAFg3__110__shapgvba6__shapVCSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF_6irpgbeVCiAF_9nyybpngbeVFN_RRRRRAFO_VFT_RRFS_RR:
 .space __SIZEOF_POINTER__
@@ -1643,7 +1643,7 @@
 b__MAX7naqebvq8uneqjner6Cnepry11ernqCbvagreRi:
 nop
 .text
-.globl b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRR6frgohsRCpy
+.weak b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRR6frgohsRCpy
 .type b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRR6frgohsRCpy,%function
 b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRR6frgohsRCpy:
 nop
@@ -1658,7 +1658,7 @@
 b__MGPA7naqebvq4uvqy7znantre4I1_023OcUjFreivprAbgvsvpngvbaR16_AF_8uneqjner11OcUjErsOnfrR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIAFg3__116__bjaf_bar_fgngrVpRR
+.weak b__MGIAFg3__116__bjaf_bar_fgngrVpRR
 .type b__MGIAFg3__116__bjaf_bar_fgngrVpRR,%object
 b__MGIAFg3__116__bjaf_bar_fgngrVpRR:
 .space __SIZEOF_POINTER__
@@ -1668,7 +1668,7 @@
 b__MA7naqebvq4uvqy4onfr4I1_05VOnfr4cvatRi:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF_4uvqy7znantre4I1_215VFreivprZnantreRAF3_4onfr4I1_05VOnfrRAF5_18OcUjFreivprZnantreRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF_4uvqy7znantre4I1_215VFreivprZnantreRAF3_4onfr4I1_05VOnfrRAF5_18OcUjFreivprZnantreRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo
 .type b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF_4uvqy7znantre4I1_215VFreivprZnantreRAF3_4onfr4I1_05VOnfrRAF5_18OcUjFreivprZnantreRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF_4uvqy7znantre4I1_215VFreivprZnantreRAF3_4onfr4I1_05VOnfrRAF5_18OcUjFreivprZnantreRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo:
 nop
@@ -1678,12 +1678,12 @@
 b__MA7naqebvq8uneqjner14VCPGuernqFgngr20jevgrGenafnpgvbaQngnRvwvwEXAF0_6CnepryRCv:
 nop
 .text
-.globl b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR22__cnefr_qrpvzny_rfpncrVAF_11__jenc_vgreVCXpRRRRG_F9_F9_
+.weak b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR22__cnefr_qrpvzny_rfpncrVAF_11__jenc_vgreVCXpRRRRG_F9_F9_
 .type b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR22__cnefr_qrpvzny_rfpncrVAF_11__jenc_vgreVCXpRRRRG_F9_F9_,%function
 b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR22__cnefr_qrpvzny_rfpncrVAF_11__jenc_vgreVCXpRRRRG_F9_F9_:
 nop
 .data
-.globl b__MGIAFg3__110__onpx_ersVpRR
+.weak b__MGIAFg3__110__onpx_ersVpRR
 .type b__MGIAFg3__110__onpx_ersVpRR,%object
 b__MGIAFg3__110__onpx_ersVpRR:
 .space __SIZEOF_POINTER__
@@ -1703,7 +1703,7 @@
 b__MGIA7naqebvq4uvqy4onfr4I1_08OcUjOnfrR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIAFg3__112__zngpu_puneVpRR
+.weak b__MGIAFg3__112__zngpu_puneVpRR
 .type b__MGIAFg3__112__zngpu_puneVpRR,%object
 b__MGIAFg3__112__zngpu_puneVpRR:
 .space __SIZEOF_POINTER__
@@ -1713,7 +1713,7 @@
 b__MGPA7naqebvq4uvqy7znantre4I1_215VFreivprZnantreR0_AF0_4onfr4I1_05VOnfrR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__114__fcyvg_ohssreVCAF_8shapgvbaVSiiRRRAF_9nyybpngbeVF4_RRR10chfu_sebagRBF4_
+.weak b__MAFg3__114__fcyvg_ohssreVCAF_8shapgvbaVSiiRRRAF_9nyybpngbeVF4_RRR10chfu_sebagRBF4_
 .type b__MAFg3__114__fcyvg_ohssreVCAF_8shapgvbaVSiiRRRAF_9nyybpngbeVF4_RRR10chfu_sebagRBF4_,%function
 b__MAFg3__114__fcyvg_ohssreVCAF_8shapgvbaVSiiRRRAF_9nyybpngbeVF4_RRR10chfu_sebagRBF4_:
 nop
@@ -1733,7 +1733,7 @@
 b__MAX7naqebvq8uneqjner6Cnepry10svaqOhssreRCXizCoCzF5_:
 nop
 .text
-.globl b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR15__chfu_onpx_ersRv
+.weak b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR15__chfu_onpx_ersRv
 .type b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR15__chfu_onpx_ersRv,%function
 b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR15__chfu_onpx_ersRv:
 nop
@@ -1763,12 +1763,12 @@
 b__MGPA7naqebvq4uvqy7znantre4I1_215VFreivprZnantreR0_AF1_4I1_115VFreivprZnantreR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGGAFg3__113onfvp_sfgernzVpAF_11pune_genvgfVpRRRR
+.weak b__MGGAFg3__113onfvp_sfgernzVpAF_11pune_genvgfVpRRRR
 .type b__MGGAFg3__113onfvp_sfgernzVpAF_11pune_genvgfVpRRRR,%object
 b__MGGAFg3__113onfvp_sfgernzVpAF_11pune_genvgfVpRRRR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIA7naqebvq8uneqjner7qrgnvyf6JnvgreR
+.weak b__MGIA7naqebvq8uneqjner7qrgnvyf6JnvgreR
 .type b__MGIA7naqebvq8uneqjner7qrgnvyf6JnvgreR,%object
 b__MGIA7naqebvq8uneqjner7qrgnvyf6JnvgreR:
 .space __SIZEOF_POINTER__
@@ -1783,7 +1783,7 @@
 b__MA7naqebvq8uneqjner6Cnepry14eryrnfrBowrpgfRi:
 nop
 .data
-.globl b__MGGAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
+.weak b__MGGAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
 .type b__MGGAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR,%object
 b__MGGAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR:
 .space __SIZEOF_POINTER__
@@ -1793,7 +1793,7 @@
 b__MAX7naqebvq8uneqjner12CebprffFgngr16vfPbagrkgZnantreRi:
 nop
 .text
-.globl b__MAFg3__120__funerq_cge_cbvagreVCAF_13__rzcgl_fgngrVpRRAF_14qrsnhyg_qryrgrVF2_RRAF_9nyybpngbeVF2_RRR21__ba_mreb_funerq_jrnxRi
+.weak b__MAFg3__120__funerq_cge_cbvagreVCAF_13__rzcgl_fgngrVpRRAF_14qrsnhyg_qryrgrVF2_RRAF_9nyybpngbeVF2_RRR21__ba_mreb_funerq_jrnxRi
 .type b__MAFg3__120__funerq_cge_cbvagreVCAF_13__rzcgl_fgngrVpRRAF_14qrsnhyg_qryrgrVF2_RRAF_9nyybpngbeVF2_RRR21__ba_mreb_funerq_jrnxRi,%function
 b__MAFg3__120__funerq_cge_cbvagreVCAF_13__rzcgl_fgngrVpRRAF_14qrsnhyg_qryrgrVF2_RRAF_9nyybpngbeVF2_RRR21__ba_mreb_funerq_jrnxRi:
 nop
@@ -1818,12 +1818,12 @@
 b__MGGA7naqebvq8uneqjner10OcUjOvaqreR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRR9conpxsnvyRv
+.weak b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRR9conpxsnvyRv
 .type b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRR9conpxsnvyRv,%function
 b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRR9conpxsnvyRv:
 nop
 .text
-.globl b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRR9haqresybjRi
+.weak b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRR9haqresybjRi
 .type b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRR9haqresybjRi,%function
 b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRR9haqresybjRi:
 nop
@@ -1838,7 +1838,7 @@
 b__MAX7naqebvq8uneqjner6Cnepry11ernqVacynprRz:
 nop
 .text
-.globl b__MAXFg3__116__onpx_ers_vpnfrVpAF_12ertrk_genvgfVpRRR6__rkrpREAF_7__fgngrVpRR
+.weak b__MAXFg3__116__onpx_ers_vpnfrVpAF_12ertrk_genvgfVpRRR6__rkrpREAF_7__fgngrVpRR
 .type b__MAXFg3__116__onpx_ers_vpnfrVpAF_12ertrk_genvgfVpRRR6__rkrpREAF_7__fgngrVpRR,%function
 b__MAXFg3__116__onpx_ers_vpnfrVpAF_12ertrk_genvgfVpRRR6__rkrpREAF_7__fgngrVpRR:
 nop
@@ -1858,7 +1858,7 @@
 b__MA7naqebvq4uvqy7znantre4I1_118OcUjFreivprZnantre19vagresnprQrfpevcgbeRAFg3__18shapgvbaVSiEXAF_8uneqjner11uvqy_fgevatRRRR:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner10sebzOvaqreVAF_4uvqy7znantre4I1_215VPyvragPnyyonpxRAF4_18OcUjPyvragPnyyonpxRAF4_18OaUjPyvragPnyyonpxRRRAF_2fcVG_RREXAF8_VAF0_7VOvaqreRRR
+.weak b__MA7naqebvq8uneqjner10sebzOvaqreVAF_4uvqy7znantre4I1_215VPyvragPnyyonpxRAF4_18OcUjPyvragPnyyonpxRAF4_18OaUjPyvragPnyyonpxRRRAF_2fcVG_RREXAF8_VAF0_7VOvaqreRRR
 .type b__MA7naqebvq8uneqjner10sebzOvaqreVAF_4uvqy7znantre4I1_215VPyvragPnyyonpxRAF4_18OcUjPyvragPnyyonpxRAF4_18OaUjPyvragPnyyonpxRRRAF_2fcVG_RREXAF8_VAF0_7VOvaqreRRR,%function
 b__MA7naqebvq8uneqjner10sebzOvaqreVAF_4uvqy7znantre4I1_215VPyvragPnyyonpxRAF4_18OcUjPyvragPnyyonpxRAF4_18OaUjPyvragPnyyonpxRRRAF_2fcVG_RREXAF8_VAF0_7VOvaqreRRR:
 nop
@@ -1888,7 +1888,7 @@
 b__MA7naqebvq8uneqjner7qrgnvyf21PyvragPbhagrePnyyonpx20nqqErtvfgrerqFreivprREXAF_2fcVAF_4uvqy4onfr4I1_05VOnfrRRREXAFg3__112onfvp_fgevatVpAFO_11pune_genvgfVpRRAFO_9nyybpngbeVpRRRR:
 nop
 .text
-.globl b__MAFg3__15qrdhrVAF_7__fgngrVpRRAF_9nyybpngbeVF2_RRR10chfu_sebagRBF2_
+.weak b__MAFg3__15qrdhrVAF_7__fgngrVpRRAF_9nyybpngbeVF2_RRR10chfu_sebagRBF2_
 .type b__MAFg3__15qrdhrVAF_7__fgngrVpRRAF_9nyybpngbeVF2_RRR10chfu_sebagRBF2_,%function
 b__MAFg3__15qrdhrVAF_7__fgngrVpRRAF_9nyybpngbeVF2_RRR10chfu_sebagRBF2_:
 nop
@@ -1903,7 +1903,7 @@
 b__MA7naqebvq8uneqjneryfREAFg3__113onfvp_bfgernzVpAF1_11pune_genvgfVpRRRREXAF0_6FgnghfR:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVvR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVvR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVvR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVvR8qb_fcyngRCiCXiz:
 nop
@@ -1913,7 +1913,7 @@
 b__MA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbeQ1Ri:
 nop
 .text
-.globl b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR16__cnefr_rpzn_rkcVAF_11__jenc_vgreVCXpRRRRG_F9_F9_
+.weak b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR16__cnefr_rpzn_rkcVAF_11__jenc_vgreVCXpRRRRG_F9_F9_
 .type b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR16__cnefr_rpzn_rkcVAF_11__jenc_vgreVCXpRRRRG_F9_F9_,%function
 b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR16__cnefr_rpzn_rkcVAF_11__jenc_vgreVCXpRRRRG_F9_F9_:
 nop
@@ -1963,7 +1963,7 @@
 b__MA7naqebvq8uneqjner12CebprffFgngr17fcnjaCbbyrqGuernqRo:
 nop
 .text
-.globl b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR20__cnefr_BEQ_PUNE_RERVAF_11__jenc_vgreVCXpRRRRG_F9_F9_
+.weak b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR20__cnefr_BEQ_PUNE_RERVAF_11__jenc_vgreVCXpRRRRG_F9_F9_
 .type b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR20__cnefr_BEQ_PUNE_RERVAF_11__jenc_vgreVCXpRRRRG_F9_F9_,%function
 b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR20__cnefr_BEQ_PUNE_RERVAF_11__jenc_vgreVCXpRRRRG_F9_F9_:
 nop
@@ -1983,7 +1983,7 @@
 b__MA7naqebvq4uvqy7znantre4I1_118OcUjFreivprZnantre24ertvfgreSbeAbgvsvpngvbafREXAF_8uneqjner11uvqy_fgevatRF7_EXAF_2fcVAF1_4I1_020VFreivprAbgvsvpngvbaRRR:
 nop
 .data
-.globl b__MGIAFg3__118__onpx_ers_pbyyngrVpAF_12ertrk_genvgfVpRRRR
+.weak b__MGIAFg3__118__onpx_ers_pbyyngrVpAF_12ertrk_genvgfVpRRRR
 .type b__MGIAFg3__118__onpx_ers_pbyyngrVpAF_12ertrk_genvgfVpRRRR,%object
 b__MGIAFg3__118__onpx_ers_pbyyngrVpAF_12ertrk_genvgfVpRRRR:
 .space __SIZEOF_POINTER__
@@ -2048,7 +2048,7 @@
 b__MA7naqebvq8uneqjner7qrgnvyf17trgIaqxIrefvbaFgeRi:
 nop
 .text
-.globl b__MAFg3__117__bjaf_gjb_fgngrfVpRQ0Ri
+.weak b__MAFg3__117__bjaf_gjb_fgngrfVpRQ0Ri
 .type b__MAFg3__117__bjaf_gjb_fgngrfVpRQ0Ri,%function
 b__MAFg3__117__bjaf_gjb_fgngrfVpRQ0Ri:
 nop
@@ -2083,12 +2083,12 @@
 b__MA7naqebvq8uneqjner6Cnepry14serrQngnAbVavgRi:
 nop
 .text
-.globl b__MAFg3__114__fcyvg_ohssreVCAF_7__fgngrVpRRAF_9nyybpngbeVF3_RRR9chfu_onpxRBF3_
+.weak b__MAFg3__114__fcyvg_ohssreVCAF_7__fgngrVpRRAF_9nyybpngbeVF3_RRR9chfu_onpxRBF3_
 .type b__MAFg3__114__fcyvg_ohssreVCAF_7__fgngrVpRRAF_9nyybpngbeVF3_RRR9chfu_onpxRBF3_,%function
 b__MAFg3__114__fcyvg_ohssreVCAF_7__fgngrVpRRAF_9nyybpngbeVF3_RRR9chfu_onpxRBF3_:
 nop
 .text
-.globl b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRRQ0Ri
+.weak b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRRQ0Ri
 .type b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRRQ0Ri,%function
 b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRRQ0Ri:
 nop
@@ -2113,7 +2113,7 @@
 b__MA7naqebvq4uvqy7znantre4I1_215VFreivprZnantre8pnfgSebzREXAF_2fcVAF1_4I1_115VFreivprZnantreRRRo:
 nop
 .data
-.globl b__MGPA7naqebvq8uneqjner11OcVagresnprVAF_4uvqy4onfr4I1_05VOnfrRRR16_AF0_11OcUjErsOnfrR
+.weak b__MGPA7naqebvq8uneqjner11OcVagresnprVAF_4uvqy4onfr4I1_05VOnfrRRR16_AF0_11OcUjErsOnfrR
 .type b__MGPA7naqebvq8uneqjner11OcVagresnprVAF_4uvqy4onfr4I1_05VOnfrRRR16_AF0_11OcUjErsOnfrR,%object
 b__MGPA7naqebvq8uneqjner11OcVagresnprVAF_4uvqy4onfr4I1_05VOnfrRRR16_AF0_11OcUjErsOnfrR:
 .space __SIZEOF_POINTER__
@@ -2138,7 +2138,7 @@
 b__MA7naqebvq4uvqy4onfr4I1_08OaUjOnfr27_uvqy_abgvslFlfcebcfPunatrqRCF3_EXAF_8uneqjner6CnepryRCF6_AFg3__18shapgvbaVSiEF6_RRR:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_8uneqjner12CebprffFgngr12unaqyr_ragelRR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_8uneqjner12CebprffFgngr12unaqyr_ragelRR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_8uneqjner12CebprffFgngr12unaqyr_ragelRR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_8uneqjner12CebprffFgngr12unaqyr_ragelRR15qb_zbir_sbejneqRCiCXiz:
 nop
@@ -2148,7 +2148,7 @@
 b__MA7naqebvq8uneqjner10GrkgBhgchgQ0Ri:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_7__fgngrVpRRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVF2_RRiBG_
+.weak b__MAFg3__16irpgbeVAF_7__fgngrVpRRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVF2_RRiBG_
 .type b__MAFg3__16irpgbeVAF_7__fgngrVpRRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVF2_RRiBG_,%function
 b__MAFg3__16irpgbeVAF_7__fgngrVpRRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVF2_RRiBG_:
 nop
@@ -2168,7 +2168,7 @@
 b__MA7naqebvq8uneqjner21qrsnhygFreivprZnantreRi:
 nop
 .text
-.globl b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR13__cnefr_rtercVCXpRRG_F7_F7_
+.weak b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR13__cnefr_rtercVCXpRRG_F7_F7_
 .type b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR13__cnefr_rtercVCXpRRG_F7_F7_,%function
 b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR13__cnefr_rtercVCXpRRG_F7_F7_:
 nop
@@ -2193,7 +2193,7 @@
 b__MA7naqebvq4uvqy7znantre4I1_018OcUjFreivprZnantre12trgGenafcbegREXAF_8uneqjner11uvqy_fgevatRF7_:
 nop
 .text
-.globl b__MAXFg3__16__ybbcVpR6__rkrpREAF_7__fgngrVpRR
+.weak b__MAXFg3__16__ybbcVpR6__rkrpREAF_7__fgngrVpRR
 .type b__MAXFg3__16__ybbcVpR6__rkrpREAF_7__fgngrVpRR,%function
 b__MAXFg3__16__ybbcVpR6__rkrpREAF_7__fgngrVpRR:
 nop
@@ -2238,17 +2238,17 @@
 b__MA7naqebvq4uvqy7znantre4I1_218OcUjFreivprZnantre22ertvfgrePyvragPnyyonpxREXAF_8uneqjner11uvqy_fgevatRF7_EXAF_2fcVAF0_4onfr4I1_05VOnfrRRREXAF8_VAF2_15VPyvragPnyyonpxRRR:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_4cnveVzCXpRRAF_9nyybpngbeVF4_RRR6nffvtaVCF4_RRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF4_AF_15vgrengbe_genvgfVFO_R9ersreraprRRR5inyhrRiR4glcrRFO_FO_
+.weak b__MAFg3__16irpgbeVAF_4cnveVzCXpRRAF_9nyybpngbeVF4_RRR6nffvtaVCF4_RRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF4_AF_15vgrengbe_genvgfVFO_R9ersreraprRRR5inyhrRiR4glcrRFO_FO_
 .type b__MAFg3__16irpgbeVAF_4cnveVzCXpRRAF_9nyybpngbeVF4_RRR6nffvtaVCF4_RRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF4_AF_15vgrengbe_genvgfVFO_R9ersreraprRRR5inyhrRiR4glcrRFO_FO_,%function
 b__MAFg3__16irpgbeVAF_4cnveVzCXpRRAF_9nyybpngbeVF4_RRR6nffvtaVCF4_RRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF4_AF_15vgrengbe_genvgfVFO_R9ersreraprRRR5inyhrRiR4glcrRFO_FO_:
 nop
 .data
-.globl b__MGIAFg3__120__oenpxrg_rkcerffvbaVpAF_12ertrk_genvgfVpRRRR
+.weak b__MGIAFg3__120__oenpxrg_rkcerffvbaVpAF_12ertrk_genvgfVpRRRR
 .type b__MGIAFg3__120__oenpxrg_rkcerffvbaVpAF_12ertrk_genvgfVpRRRR,%object
 b__MGIAFg3__120__oenpxrg_rkcerffvbaVpAF_12ertrk_genvgfVpRRRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq2jcVAF2_4uvqy4onfr4I1_05VOnfrRRRoRRAF_19__znc_inyhr_pbzcnerVF8_F9_AF_4yrffVF8_RRYo1RRRAF_9nyybpngbeVF9_RRR25__rzcynpr_havdhr_xrl_netfVF8_WEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWBF8_RRRAFY_VWRRRRRRAF_4cnveVAF_15__gerr_vgrengbeVF9_CAF_11__gerr_abqrVF9_CiRRyRRoRREXG_QcBG0_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq2jcVAF2_4uvqy4onfr4I1_05VOnfrRRRoRRAF_19__znc_inyhr_pbzcnerVF8_F9_AF_4yrffVF8_RRYo1RRRAF_9nyybpngbeVF9_RRR25__rzcynpr_havdhr_xrl_netfVF8_WEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWBF8_RRRAFY_VWRRRRRRAF_4cnveVAF_15__gerr_vgrengbeVF9_CAF_11__gerr_abqrVF9_CiRRyRRoRREXG_QcBG0_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq2jcVAF2_4uvqy4onfr4I1_05VOnfrRRRoRRAF_19__znc_inyhr_pbzcnerVF8_F9_AF_4yrffVF8_RRYo1RRRAF_9nyybpngbeVF9_RRR25__rzcynpr_havdhr_xrl_netfVF8_WEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWBF8_RRRAFY_VWRRRRRRAF_4cnveVAF_15__gerr_vgrengbeVF9_CAF_11__gerr_abqrVF9_CiRRyRRoRREXG_QcBG0_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq2jcVAF2_4uvqy4onfr4I1_05VOnfrRRRoRRAF_19__znc_inyhr_pbzcnerVF8_F9_AF_4yrffVF8_RRYo1RRRAF_9nyybpngbeVF9_RRR25__rzcynpr_havdhr_xrl_netfVF8_WEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWBF8_RRRAFY_VWRRRRRRAF_4cnveVAF_15__gerr_vgrengbeVF9_CAF_11__gerr_abqrVF9_CiRRyRRoRREXG_QcBG0_:
 nop
@@ -2268,7 +2268,7 @@
 b__MA7naqebvq4uvqy7znantre4I1_218OcUjPyvragPnyyonpx12trgQrohtVasbRAFg3__18shapgvbaVSiEXAF0_4onfr4I1_09QrohtVasbRRRR:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF_4uvqy7znantre4I1_218OcUjPyvragPnyyonpxRAF5_15VPyvragPnyyonpxRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFO_11pune_genvgfVpRRAFO_9nyybpngbeVpRRRRoo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF_4uvqy7znantre4I1_218OcUjPyvragPnyyonpxRAF5_15VPyvragPnyyonpxRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFO_11pune_genvgfVpRRAFO_9nyybpngbeVpRRRRoo
 .type b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF_4uvqy7znantre4I1_218OcUjPyvragPnyyonpxRAF5_15VPyvragPnyyonpxRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFO_11pune_genvgfVpRRAFO_9nyybpngbeVpRRRRoo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF_4uvqy7znantre4I1_218OcUjPyvragPnyyonpxRAF5_15VPyvragPnyyonpxRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFO_11pune_genvgfVpRRAFO_9nyybpngbeVpRRRRoo:
 nop
@@ -2278,12 +2278,12 @@
 b__MAX7naqebvq8uneqjner6Cnepry10ernqHvag64Ri:
 nop
 .data
-.globl b__MGIAFg3__111__ybbxnurnqVpAF_12ertrk_genvgfVpRRRR
+.weak b__MGIAFg3__111__ybbxnurnqVpAF_12ertrk_genvgfVpRRRR
 .type b__MGIAFg3__111__ybbxnurnqVpAF_12ertrk_genvgfVpRRRR,%object
 b__MGIAFg3__111__ybbxnurnqVpAF_12ertrk_genvgfVpRRRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__1cyVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_12onfvp_fgevatVG_G0_G1_RREXF9_FO_
+.weak b__MAFg3__1cyVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_12onfvp_fgevatVG_G0_G1_RREXF9_FO_
 .type b__MAFg3__1cyVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_12onfvp_fgevatVG_G0_G1_RREXF9_FO_,%function
 b__MAFg3__1cyVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_12onfvp_fgevatVG_G0_G1_RREXF9_FO_:
 nop
@@ -2358,7 +2358,7 @@
 b__MA7naqebvq8uneqjner27uvqy_ovaqre_qrngu_erpvcvrag10ovaqreQvrqREXAF_2jcVAF0_7VOvaqreRRR:
 nop
 .text
-.globl b__MAX7naqebvq8uneqjner6Cnepry10ernqBowrpgV16ovaqre_sq_bowrpgRRCXG_Cz
+.weak b__MAX7naqebvq8uneqjner6Cnepry10ernqBowrpgV16ovaqre_sq_bowrpgRRCXG_Cz
 .type b__MAX7naqebvq8uneqjner6Cnepry10ernqBowrpgV16ovaqre_sq_bowrpgRRCXG_Cz,%function
 b__MAX7naqebvq8uneqjner6Cnepry10ernqBowrpgV16ovaqre_sq_bowrpgRRCXG_Cz:
 nop
@@ -2373,22 +2373,22 @@
 b__MA7naqebvq8uneqjner14VCPGuernqFgngr8genafnpgRvwEXAF0_6CnepryRCF2_w:
 nop
 .text
-.globl b__MAXFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR8__frnepuVAF_9nyybpngbeVAF_9fho_zngpuVCXpRRRRRRoF8_F8_EAF_13zngpu_erfhygfVF8_G_RRAF_15ertrk_pbafgnagf15zngpu_synt_glcrR
+.weak b__MAXFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR8__frnepuVAF_9nyybpngbeVAF_9fho_zngpuVCXpRRRRRRoF8_F8_EAF_13zngpu_erfhygfVF8_G_RRAF_15ertrk_pbafgnagf15zngpu_synt_glcrR
 .type b__MAXFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR8__frnepuVAF_9nyybpngbeVAF_9fho_zngpuVCXpRRRRRRoF8_F8_EAF_13zngpu_erfhygfVF8_G_RRAF_15ertrk_pbafgnagf15zngpu_synt_glcrR,%function
 b__MAXFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR8__frnepuVAF_9nyybpngbeVAF_9fho_zngpuVCXpRRRRRRoF8_F8_EAF_13zngpu_erfhygfVF8_G_RRAF_15ertrk_pbafgnagf15zngpu_synt_glcrR:
 nop
 .text
-.globl b__MAFg3__124__chg_punenpgre_frdhraprVpAF_11pune_genvgfVpRRRREAF_13onfvp_bfgernzVG_G0_RRF7_CXF4_z
+.weak b__MAFg3__124__chg_punenpgre_frdhraprVpAF_11pune_genvgfVpRRRREAF_13onfvp_bfgernzVG_G0_RRF7_CXF4_z
 .type b__MAFg3__124__chg_punenpgre_frdhraprVpAF_11pune_genvgfVpRRRREAF_13onfvp_bfgernzVG_G0_RRF7_CXF4_z,%function
 b__MAFg3__124__chg_punenpgre_frdhraprVpAF_11pune_genvgfVpRRRREAF_13onfvp_bfgernzVG_G0_RRF7_CXF4_z:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq8uneqjner7qrgnvyf21PyvragPbhagrePnyyonpx7FreivprRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_
+.weak b__MAFg3__16irpgbeVA7naqebvq8uneqjner7qrgnvyf21PyvragPbhagrePnyyonpx7FreivprRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_
 .type b__MAFg3__16irpgbeVA7naqebvq8uneqjner7qrgnvyf21PyvragPbhagrePnyyonpx7FreivprRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_,%function
 b__MAFg3__16irpgbeVA7naqebvq8uneqjner7qrgnvyf21PyvragPbhagrePnyyonpx7FreivprRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_:
 nop
 .text
-.globl b__MAXFg3__112ertrk_genvgfVpR18__ybbxhc_pynffanzrVCXpRRgG_F5_op
+.weak b__MAXFg3__112ertrk_genvgfVpR18__ybbxhc_pynffanzrVCXpRRgG_F5_op
 .type b__MAXFg3__112ertrk_genvgfVpR18__ybbxhc_pynffanzrVCXpRRgG_F5_op,%function
 b__MAXFg3__112ertrk_genvgfVpR18__ybbxhc_pynffanzrVCXpRRgG_F5_op:
 nop
@@ -2398,22 +2398,22 @@
 b__MGua32_A7naqebvq4uvqy7znantre4I1_218OaUjFreivprZnantreQ0Ri:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRA7naqebvq4uvqy7znantre4I1_015VFreivprZnantre17VafgnaprQrohtVasbRRRAF_19__znc_inyhr_pbzcnerVF7_FR_AF_4yrffVF7_RRYo1RRRAF5_VFR_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFR_CAF_11__gerr_abqrVFR_CiRRyRREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRA7naqebvq4uvqy7znantre4I1_015VFreivprZnantre17VafgnaprQrohtVasbRRRAF_19__znc_inyhr_pbzcnerVF7_FR_AF_4yrffVF7_RRYo1RRRAF5_VFR_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFR_CAF_11__gerr_abqrVFR_CiRRyRREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRA7naqebvq4uvqy7znantre4I1_015VFreivprZnantre17VafgnaprQrohtVasbRRRAF_19__znc_inyhr_pbzcnerVF7_FR_AF_4yrffVF7_RRYo1RRRAF5_VFR_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFR_CAF_11__gerr_abqrVFR_CiRRyRREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRA7naqebvq4uvqy7znantre4I1_015VFreivprZnantre17VafgnaprQrohtVasbRRRAF_19__znc_inyhr_pbzcnerVF7_FR_AF_4yrffVF7_RRYo1RRRAF5_VFR_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFR_CAF_11__gerr_abqrVFR_CiRRyRREXG_:
 nop
 .data
-.globl b__MGPA7naqebvq4uvqy7znantre4I1_116OfFreivprZnantreR0_AF2_15VFreivprZnantreR
+.weak b__MGPA7naqebvq4uvqy7znantre4I1_116OfFreivprZnantreR0_AF2_15VFreivprZnantreR
 .type b__MGPA7naqebvq4uvqy7znantre4I1_116OfFreivprZnantreR0_AF2_15VFreivprZnantreR,%object
 b__MGPA7naqebvq4uvqy7znantre4I1_116OfFreivprZnantreR0_AF2_15VFreivprZnantreR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq2fcVAF_8uneqjner9OUjOvaqreRRQ2Ri
+.weak b__MA7naqebvq2fcVAF_8uneqjner9OUjOvaqreRRQ2Ri
 .type b__MA7naqebvq2fcVAF_8uneqjner9OUjOvaqreRRQ2Ri,%function
 b__MA7naqebvq2fcVAF_8uneqjner9OUjOvaqreRRQ2Ri:
 nop
 .text
-.globl b__MAFg3__15qrdhrVAF_7__fgngrVpRRAF_9nyybpngbeVF2_RRR9chfu_onpxRBF2_
+.weak b__MAFg3__15qrdhrVAF_7__fgngrVpRRAF_9nyybpngbeVF2_RRR9chfu_onpxRBF2_
 .type b__MAFg3__15qrdhrVAF_7__fgngrVpRRAF_9nyybpngbeVF2_RRR9chfu_onpxRBF2_,%function
 b__MAFg3__15qrdhrVAF_7__fgngrVpRRAF_9nyybpngbeVF2_RRR9chfu_onpxRBF2_:
 nop
@@ -2423,7 +2423,7 @@
 b__MGua32_A7naqebvq4uvqy4onfr4I1_08OaUjOnfrQ1Ri:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRR21__chfu_onpx_fybj_cnguVFS_RRiBG_
+.weak b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRR21__chfu_onpx_fybj_cnguVFS_RRiBG_
 .type b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRR21__chfu_onpx_fybj_cnguVFS_RRiBG_,%function
 b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRR21__chfu_onpx_fybj_cnguVFS_RRiBG_:
 nop
@@ -2433,7 +2433,7 @@
 b__MA7naqebvq8uneqjner11uvqy_fgevat15xBssfrgBsOhssreR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR32__cnefr_bar_pune_be_pbyy_ryrz_ERVCXpRRG_F7_F7_
+.weak b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR32__cnefr_bar_pune_be_pbyy_ryrz_ERVCXpRRG_F7_F7_
 .type b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR32__cnefr_bar_pune_be_pbyy_ryrz_ERVCXpRRG_F7_F7_,%function
 b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR32__cnefr_bar_pune_be_pbyy_ryrz_ERVCXpRRG_F7_F7_:
 nop
@@ -2463,12 +2463,12 @@
 b__MA7naqebvq4uvqy7znantre4I1_023OaUjFreivprAbgvsvpngvbaQ2Ri:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF_4uvqy7znantre4I1_115VFreivprZnantreRAF4_4I1_015VFreivprZnantreRAF5_18OcUjFreivprZnantreRRRAF0_6ErgheaVAF_2fcVG_RRRRAFO_VG0_RRCXpo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF_4uvqy7znantre4I1_115VFreivprZnantreRAF4_4I1_015VFreivprZnantreRAF5_18OcUjFreivprZnantreRRRAF0_6ErgheaVAF_2fcVG_RRRRAFO_VG0_RRCXpo
 .type b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF_4uvqy7znantre4I1_115VFreivprZnantreRAF4_4I1_015VFreivprZnantreRAF5_18OcUjFreivprZnantreRRRAF0_6ErgheaVAF_2fcVG_RRRRAFO_VG0_RRCXpo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF_4uvqy7znantre4I1_115VFreivprZnantreRAF4_4I1_015VFreivprZnantreRAF5_18OcUjFreivprZnantreRRRAF0_6ErgheaVAF_2fcVG_RRRRAFO_VG0_RRCXpo:
 nop
 .data
-.globl b__MGIA7naqebvq8uneqjner11OcVagresnprVAF_4uvqy4onfr4I1_05VOnfrRRR
+.weak b__MGIA7naqebvq8uneqjner11OcVagresnprVAF_4uvqy4onfr4I1_05VOnfrRRR
 .type b__MGIA7naqebvq8uneqjner11OcVagresnprVAF_4uvqy4onfr4I1_05VOnfrRRR,%object
 b__MGIA7naqebvq8uneqjner11OcVagresnprVAF_4uvqy4onfr4I1_05VOnfrRRR:
 .space __SIZEOF_POINTER__
@@ -2483,12 +2483,12 @@
 b__MGi0_a24_A7naqebvq4uvqy7znantre4I1_018OaUjFreivprZnantreQ1Ri:
 nop
 .text
-.globl b__MAX7naqebvq8uneqjner6Cnepry10ernqBowrpgV20ovaqre_ohssre_bowrpgRRCXG_Cz
+.weak b__MAX7naqebvq8uneqjner6Cnepry10ernqBowrpgV20ovaqre_ohssre_bowrpgRRCXG_Cz
 .type b__MAX7naqebvq8uneqjner6Cnepry10ernqBowrpgV20ovaqre_ohssre_bowrpgRRCXG_Cz,%function
 b__MAX7naqebvq8uneqjner6Cnepry10ernqBowrpgV20ovaqre_ohssre_bowrpgRRCXG_Cz:
 nop
 .text
-.globl b__MAFg3__120__funerq_cge_rzcynprVA7naqebvq8uneqjner7qrgnvyf24YnmlFreivprErtvfgeneVzcyRAF_9nyybpngbeVF4_RRR16__ba_mreb_funerqRi
+.weak b__MAFg3__120__funerq_cge_rzcynprVA7naqebvq8uneqjner7qrgnvyf24YnmlFreivprErtvfgeneVzcyRAF_9nyybpngbeVF4_RRR16__ba_mreb_funerqRi
 .type b__MAFg3__120__funerq_cge_rzcynprVA7naqebvq8uneqjner7qrgnvyf24YnmlFreivprErtvfgeneVzcyRAF_9nyybpngbeVF4_RRR16__ba_mreb_funerqRi,%function
 b__MAFg3__120__funerq_cge_rzcynprVA7naqebvq8uneqjner7qrgnvyf24YnmlFreivprErtvfgeneVzcyRAF_9nyybpngbeVF4_RRR16__ba_mreb_funerqRi:
 nop
@@ -2538,12 +2538,12 @@
 b__MA7naqebvq8uneqjner22ernqRzorqqrqSebzCnepryREXAF0_11uvqy_zrzbelREXAF0_6CnepryRzz:
 nop
 .text
-.globl b__MAFg3__114__fcyvg_ohssreVCAF_7__fgngrVpRREAF_9nyybpngbeVF3_RRR10chfu_sebagREXF3_
+.weak b__MAFg3__114__fcyvg_ohssreVCAF_7__fgngrVpRREAF_9nyybpngbeVF3_RRR10chfu_sebagREXF3_
 .type b__MAFg3__114__fcyvg_ohssreVCAF_7__fgngrVpRREAF_9nyybpngbeVF3_RRR10chfu_sebagREXF3_,%function
 b__MAFg3__114__fcyvg_ohssreVCAF_7__fgngrVpRREAF_9nyybpngbeVF3_RRR10chfu_sebagREXF3_:
 nop
 .text
-.globl b__MAFg3__15qrdhrVAF_8shapgvbaVSiiRRRAF_9nyybpngbeVF3_RRR19__nqq_onpx_pncnpvglRi
+.weak b__MAFg3__15qrdhrVAF_8shapgvbaVSiiRRRAF_9nyybpngbeVF3_RRR19__nqq_onpx_pncnpvglRi
 .type b__MAFg3__15qrdhrVAF_8shapgvbaVSiiRRRAF_9nyybpngbeVF3_RRR19__nqq_onpx_pncnpvglRi,%function
 b__MAFg3__15qrdhrVAF_8shapgvbaVSiiRRRAF_9nyybpngbeVF3_RRR19__nqq_onpx_pncnpvglRi:
 nop
@@ -2573,7 +2573,7 @@
 b__MAX7naqebvq8uneqjner6Cnepry19inyvqngrOhssrePuvyqRzz:
 nop
 .data
-.globl b__MMA7naqebvq8uneqjner25CnffguebhtuFreivprZnantre9qrohtQhzcRAFg3__18shapgvbaVSiEXAF0_8uvqy_irpVAF_4uvqy7znantre4I1_015VFreivprZnantre17VafgnaprQrohtVasbRRRRRRR18unyYvoCnguIaqxFc32
+.weak b__MMA7naqebvq8uneqjner25CnffguebhtuFreivprZnantre9qrohtQhzcRAFg3__18shapgvbaVSiEXAF0_8uvqy_irpVAF_4uvqy7znantre4I1_015VFreivprZnantre17VafgnaprQrohtVasbRRRRRRR18unyYvoCnguIaqxFc32
 .type b__MMA7naqebvq8uneqjner25CnffguebhtuFreivprZnantre9qrohtQhzcRAFg3__18shapgvbaVSiEXAF0_8uvqy_irpVAF_4uvqy7znantre4I1_015VFreivprZnantre17VafgnaprQrohtVasbRRRRRRR18unyYvoCnguIaqxFc32,%object
 b__MMA7naqebvq8uneqjner25CnffguebhtuFreivprZnantre9qrohtQhzcRAFg3__18shapgvbaVSiEXAF0_8uvqy_irpVAF_4uvqy7znantre4I1_015VFreivprZnantre17VafgnaprQrohtVasbRRRRRRR18unyYvoCnguIaqxFc32:
 .space __SIZEOF_POINTER__
@@ -2588,12 +2588,12 @@
 b__MA7naqebvq8uneqjner6Cnepry17jevgrFgebatOvaqreREXAF_2fcVAF0_7VOvaqreRRR:
 nop
 .data
-.globl b__MGIAFg3__110__y_napubeVpRR
+.weak b__MGIAFg3__110__y_napubeVpRR
 .type b__MGIAFg3__110__y_napubeVpRR,%object
 b__MGIAFg3__110__y_napubeVpRR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIAFg3__113__rzcgl_fgngrVpRR
+.weak b__MGIAFg3__113__rzcgl_fgngrVpRR
 .type b__MGIAFg3__113__rzcgl_fgngrVpRR,%object
 b__MGIAFg3__113__rzcgl_fgngrVpRR:
 .space __SIZEOF_POINTER__
@@ -2613,12 +2613,12 @@
 b__MGIA7naqebvq4uvqy7znantre4I1_218OcUjPyvragPnyyonpxR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MTIMA7naqebvq8uneqjner25CnffguebhtuFreivprZnantre9qrohtQhzcRAFg3__18shapgvbaVSiEXAF0_8uvqy_irpVAF_4uvqy7znantre4I1_015VFreivprZnantre17VafgnaprQrohtVasbRRRRRRR18unyYvoCnguIaqxFc32
+.weak b__MTIMA7naqebvq8uneqjner25CnffguebhtuFreivprZnantre9qrohtQhzcRAFg3__18shapgvbaVSiEXAF0_8uvqy_irpVAF_4uvqy7znantre4I1_015VFreivprZnantre17VafgnaprQrohtVasbRRRRRRR18unyYvoCnguIaqxFc32
 .type b__MTIMA7naqebvq8uneqjner25CnffguebhtuFreivprZnantre9qrohtQhzcRAFg3__18shapgvbaVSiEXAF0_8uvqy_irpVAF_4uvqy7znantre4I1_015VFreivprZnantre17VafgnaprQrohtVasbRRRRRRR18unyYvoCnguIaqxFc32,%object
 b__MTIMA7naqebvq8uneqjner25CnffguebhtuFreivprZnantre9qrohtQhzcRAFg3__18shapgvbaVSiEXAF0_8uvqy_irpVAF_4uvqy7znantre4I1_015VFreivprZnantre17VafgnaprQrohtVasbRRRRRRR18unyYvoCnguIaqxFc32:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR26__cnefr_oenpxrg_rkcerffvbaVCXpRRG_F7_F7_
+.weak b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR26__cnefr_oenpxrg_rkcerffvbaVCXpRRG_F7_F7_
 .type b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR26__cnefr_oenpxrg_rkcerffvbaVCXpRRG_F7_F7_,%function
 b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR26__cnefr_oenpxrg_rkcerffvbaVCXpRRG_F7_F7_:
 nop
@@ -2633,7 +2633,7 @@
 b__MA7naqebvq8uneqjner6CnepryP2Ri:
 nop
 .data
-.globl b__MGIAFg3__120__funerq_cge_rzcynprVA7naqebvq8uneqjner7qrgnvyf17FlapuebavmrqDhrhrVAF_8shapgvbaVSiiRRRRRAF_9nyybpngbeVF8_RRRR
+.weak b__MGIAFg3__120__funerq_cge_rzcynprVA7naqebvq8uneqjner7qrgnvyf17FlapuebavmrqDhrhrVAF_8shapgvbaVSiiRRRRRAF_9nyybpngbeVF8_RRRR
 .type b__MGIAFg3__120__funerq_cge_rzcynprVA7naqebvq8uneqjner7qrgnvyf17FlapuebavmrqDhrhrVAF_8shapgvbaVSiiRRRRRAF_9nyybpngbeVF8_RRRR,%object
 b__MGIAFg3__120__funerq_cge_rzcynprVA7naqebvq8uneqjner7qrgnvyf17FlapuebavmrqDhrhrVAF_8shapgvbaVSiiRRRRRAF_9nyybpngbeVF8_RRRR:
 .space __SIZEOF_POINTER__
@@ -2648,7 +2648,7 @@
 b__MAX7naqebvq8uneqjner11uvqy_fgevat5rzcglRi:
 nop
 .text
-.globl b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR23__cnefr_RER_qhcy_flzobyVCXpRRG_F7_F7_CAF_16__bjaf_bar_fgngrVpRRww
+.weak b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR23__cnefr_RER_qhcy_flzobyVCXpRRG_F7_F7_CAF_16__bjaf_bar_fgngrVpRRww
 .type b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR23__cnefr_RER_qhcy_flzobyVCXpRRG_F7_F7_CAF_16__bjaf_bar_fgngrVpRRww,%function
 b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR23__cnefr_RER_qhcy_flzobyVCXpRRG_F7_F7_CAF_16__bjaf_bar_fgngrVpRRww:
 nop
@@ -2673,12 +2673,12 @@
 b__MA7naqebvq8uneqjner10UvqyZrzbelQ1Ri:
 nop
 .text
-.globl b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR30__cnefr_punenpgre_pynff_rfpncrVCXpRRG_F7_F7_
+.weak b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR30__cnefr_punenpgre_pynff_rfpncrVCXpRRG_F7_F7_
 .type b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR30__cnefr_punenpgre_pynff_rfpncrVCXpRRG_F7_F7_,%function
 b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR30__cnefr_punenpgre_pynff_rfpncrVCXpRRG_F7_F7_:
 nop
 .text
-.globl b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR7__cnefrVAF_11__jenc_vgreVCXpRRRRG_F9_F9_
+.weak b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR7__cnefrVAF_11__jenc_vgreVCXpRRRRG_F9_F9_
 .type b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR7__cnefrVAF_11__jenc_vgreVCXpRRRRG_F9_F9_,%function
 b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR7__cnefrVAF_11__jenc_vgreVCXpRRRRG_F9_F9_:
 nop
@@ -2718,7 +2718,7 @@
 b__MGua32_A7naqebvq4uvqy7znantre4I1_118OaUjFreivprZnantreQ1Ri:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVCXiAF_8uneqjner10OcUjOvaqre13BowrpgZnantre7ragel_gRRRR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVCXiAF_8uneqjner10OcUjOvaqre13BowrpgZnantre7ragel_gRRRR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVCXiAF_8uneqjner10OcUjOvaqre13BowrpgZnantre7ragel_gRRRR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVCXiAF_8uneqjner10OcUjOvaqre13BowrpgZnantre7ragel_gRRRR10qb_qrfgeblRCiz:
 nop
@@ -2728,12 +2728,12 @@
 b__MA7naqebvq8uneqjner12CebprffFgngr11trgZzncFvmrRi:
 nop
 .data
-.globl b__MGIA7naqebvq8uneqjner10CbbyGuernqR
+.weak b__MGIA7naqebvq8uneqjner10CbbyGuernqR
 .type b__MGIA7naqebvq8uneqjner10CbbyGuernqR,%object
 b__MGIA7naqebvq8uneqjner10CbbyGuernqR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR26__cnefr_oenpxrg_rkcerffvbaVAF_11__jenc_vgreVCXpRRRRG_F9_F9_
+.weak b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR26__cnefr_oenpxrg_rkcerffvbaVAF_11__jenc_vgreVCXpRRRRG_F9_F9_
 .type b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR26__cnefr_oenpxrg_rkcerffvbaVAF_11__jenc_vgreVCXpRRRRG_F9_F9_,%function
 b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR26__cnefr_oenpxrg_rkcerffvbaVAF_11__jenc_vgreVCXpRRRRG_F9_F9_:
 nop
@@ -2748,12 +2748,12 @@
 b__MA7naqebvq4uvqy7znantre4I1_020VFreivprAbgvsvpngvba19vagresnprQrfpevcgbeRAFg3__18shapgvbaVSiEXAF_8uneqjner11uvqy_fgevatRRRR:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_8uneqjner10OcUjOvaqre8BovghnelRR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_8uneqjner10OcUjOvaqre8BovghnelRR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_8uneqjner10OcUjOvaqre8BovghnelRR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_8uneqjner10OcUjOvaqre8BovghnelRR8qb_fcyngRCiCXiz:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_8uneqjner12CebprffFgngr12unaqyr_ragelRR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_8uneqjner12CebprffFgngr12unaqyr_ragelRR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_8uneqjner12CebprffFgngr12unaqyr_ragelRR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_8uneqjner12CebprffFgngr12unaqyr_ragelRR7qb_pbclRCiCXiz:
 nop
@@ -2763,17 +2763,17 @@
 b__MA7naqebvq8uneqjner15vagresnprfRdhnyREXAF_2fcVAF_4uvqy4onfr4I1_05VOnfrRRRF8_:
 nop
 .data
-.globl b__MGPA7naqebvq4uvqy7znantre4I1_216OfPyvragPnyyonpxR0_AF2_15VPyvragPnyyonpxR
+.weak b__MGPA7naqebvq4uvqy7znantre4I1_216OfPyvragPnyyonpxR0_AF2_15VPyvragPnyyonpxR
 .type b__MGPA7naqebvq4uvqy7znantre4I1_216OfPyvragPnyyonpxR0_AF2_15VPyvragPnyyonpxR,%object
 b__MGPA7naqebvq4uvqy7znantre4I1_216OfPyvragPnyyonpxR0_AF2_15VPyvragPnyyonpxR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq6IrpgbeVCAF_8uneqjner9OUjOvaqreRR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVCAF_8uneqjner9OUjOvaqreRR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVCAF_8uneqjner9OUjOvaqreRR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVCAF_8uneqjner9OUjOvaqreRR16qb_zbir_onpxjneqRCiCXiz:
 nop
 .text
-.globl b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR22__cnefr_ER_qhcy_flzobyVAF_11__jenc_vgreVCXpRRRRG_F9_F9_CAF_16__bjaf_bar_fgngrVpRRww
+.weak b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR22__cnefr_ER_qhcy_flzobyVAF_11__jenc_vgreVCXpRRRRG_F9_F9_CAF_16__bjaf_bar_fgngrVpRRww
 .type b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR22__cnefr_ER_qhcy_flzobyVAF_11__jenc_vgreVCXpRRRRG_F9_F9_CAF_16__bjaf_bar_fgngrVpRRww,%function
 b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR22__cnefr_ER_qhcy_flzobyVAF_11__jenc_vgreVCXpRRRRG_F9_F9_CAF_16__bjaf_bar_fgngrVpRRww:
 nop
@@ -2783,12 +2783,12 @@
 b__MA7naqebvq8uneqjner11uvqy_fgevat8zbirSebzRBF1_:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_8uneqjner27uvqy_ovaqre_qrngu_erpvcvragRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_
+.weak b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_8uneqjner27uvqy_ovaqre_qrngu_erpvcvragRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_
 .type b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_8uneqjner27uvqy_ovaqre_qrngu_erpvcvragRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_,%function
 b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_8uneqjner27uvqy_ovaqre_qrngu_erpvcvragRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_:
 nop
 .text
-.globl b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR17__cnefr_nffregvbaVAF_11__jenc_vgreVCXpRRRRG_F9_F9_
+.weak b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR17__cnefr_nffregvbaVAF_11__jenc_vgreVCXpRRRRG_F9_F9_
 .type b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR17__cnefr_nffregvbaVAF_11__jenc_vgreVCXpRRRRG_F9_F9_,%function
 b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR17__cnefr_nffregvbaVAF_11__jenc_vgreVCXpRRRRG_F9_F9_:
 nop
@@ -2813,7 +2813,7 @@
 b__MA7naqebvq8uneqjner4nbhgR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIAFg3__116__onpx_ers_vpnfrVpAF_12ertrk_genvgfVpRRRR
+.weak b__MGIAFg3__116__onpx_ers_vpnfrVpAF_12ertrk_genvgfVpRRRR
 .type b__MGIAFg3__116__onpx_ers_vpnfrVpAF_12ertrk_genvgfVpRRRR,%object
 b__MGIAFg3__116__onpx_ers_vpnfrVpAF_12ertrk_genvgfVpRRRR:
 .space __SIZEOF_POINTER__
@@ -2823,7 +2823,7 @@
 b__MA7naqebvq4uvqy4onfr4I1_05VOnfr12trgQrohtVasbRAFg3__18shapgvbaVSiEXAF2_9QrohtVasbRRRR:
 nop
 .text
-.globl b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR23__cnefr_rkcerffvba_grezVCXpRRG_F7_F7_CAF_20__oenpxrg_rkcerffvbaVpF2_RR
+.weak b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR23__cnefr_rkcerffvba_grezVCXpRRG_F7_F7_CAF_20__oenpxrg_rkcerffvbaVpF2_RR
 .type b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR23__cnefr_rkcerffvba_grezVCXpRRG_F7_F7_CAF_20__oenpxrg_rkcerffvbaVpF2_RR,%function
 b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR23__cnefr_rkcerffvba_grezVCXpRRG_F7_F7_CAF_20__oenpxrg_rkcerffvbaVpF2_RR:
 nop
@@ -2833,12 +2833,12 @@
 b__MGGA7naqebvq8uneqjner9OUjOvaqreR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIAFg3__117__ercrng_bar_ybbcVpRR
+.weak b__MGIAFg3__117__ercrng_bar_ybbcVpRR
 .type b__MGIAFg3__117__ercrng_bar_ybbcVpRR,%object
 b__MGIAFg3__117__ercrng_bar_ybbcVpRR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIAFg3__118__zngpu_pune_vpnfrVpAF_12ertrk_genvgfVpRRRR
+.weak b__MGIAFg3__118__zngpu_pune_vpnfrVpAF_12ertrk_genvgfVpRRRR
 .type b__MGIAFg3__118__zngpu_pune_vpnfrVpAF_12ertrk_genvgfVpRRRR,%object
 b__MGIAFg3__118__zngpu_pune_vpnfrVpAF_12ertrk_genvgfVpRRRR:
 .space __SIZEOF_POINTER__
@@ -2858,17 +2858,17 @@
 b__MGi0_a24_A7naqebvq4uvqy4onfr4I1_08OaUjOnfrQ1Ri:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_2fcVAF_8uneqjner18OhssrerqGrkgBhgchg11OhssreFgngrRRRR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_2fcVAF_8uneqjner18OhssrerqGrkgBhgchg11OhssreFgngrRRRR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_2fcVAF_8uneqjner18OhssrerqGrkgBhgchg11OhssreFgngrRRRR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_2fcVAF_8uneqjner18OhssrerqGrkgBhgchg11OhssreFgngrRRRR15qb_zbir_sbejneqRCiCXiz:
 nop
 .text
-.globl b__MAXFg3__110__shapgvba6__shapVCSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF_6irpgbeVCiAF_9nyybpngbeVFN_RRRRRAFO_VFT_RRFS_R7__pybarRCAF0_6__onfrVFS_RR
+.weak b__MAXFg3__110__shapgvba6__shapVCSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF_6irpgbeVCiAF_9nyybpngbeVFN_RRRRRAFO_VFT_RRFS_R7__pybarRCAF0_6__onfrVFS_RR
 .type b__MAXFg3__110__shapgvba6__shapVCSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF_6irpgbeVCiAF_9nyybpngbeVFN_RRRRRAFO_VFT_RRFS_R7__pybarRCAF0_6__onfrVFS_RR,%function
 b__MAXFg3__110__shapgvba6__shapVCSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF_6irpgbeVCiAF_9nyybpngbeVFN_RRRRRAFO_VFT_RRFS_R7__pybarRCAF0_6__onfrVFS_RR:
 nop
 .text
-.globl b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR30__cnefr_punenpgre_pynff_rfpncrVAF_11__jenc_vgreVCXpRRRRG_F9_F9_
+.weak b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR30__cnefr_punenpgre_pynff_rfpncrVAF_11__jenc_vgreVCXpRRRRG_F9_F9_
 .type b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR30__cnefr_punenpgre_pynff_rfpncrVAF_11__jenc_vgreVCXpRRRRG_F9_F9_,%function
 b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR30__cnefr_punenpgre_pynff_rfpncrVAF_11__jenc_vgreVCXpRRRRG_F9_F9_:
 nop
@@ -2883,7 +2883,7 @@
 b__MAX7naqebvq8uneqjner6Cnepry4qngnRi:
 nop
 .text
-.globl b__MAXFg3__112ertrk_genvgfVpR18__ybbxhc_pynffanzrVAF_11__jenc_vgreVCXpRRRRgG_F7_op
+.weak b__MAXFg3__112ertrk_genvgfVpR18__ybbxhc_pynffanzrVAF_11__jenc_vgreVCXpRRRRgG_F7_op
 .type b__MAXFg3__112ertrk_genvgfVpR18__ybbxhc_pynffanzrVAF_11__jenc_vgreVCXpRRRRgG_F7_op,%function
 b__MAXFg3__112ertrk_genvgfVpR18__ybbxhc_pynffanzrVAF_11__jenc_vgreVCXpRRRRgG_F7_op:
 nop
@@ -2893,12 +2893,12 @@
 b__MA7naqebvq8uneqjner7qrgnvyf17tOfPbafgehpgbeZncR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR23__cnefr_punenpgre_pynffVCXpRRG_F7_F7_CAF_20__oenpxrg_rkcerffvbaVpF2_RR
+.weak b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR23__cnefr_punenpgre_pynffVCXpRRG_F7_F7_CAF_20__oenpxrg_rkcerffvbaVpF2_RR
 .type b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR23__cnefr_punenpgre_pynffVCXpRRG_F7_F7_CAF_20__oenpxrg_rkcerffvbaVpF2_RR,%function
 b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR23__cnefr_punenpgre_pynffVCXpRRG_F7_F7_CAF_20__oenpxrg_rkcerffvbaVpF2_RR:
 nop
 .text
-.globl b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRR8biresybjRv
+.weak b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRR8biresybjRv
 .type b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRR8biresybjRv,%function
 b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRR8biresybjRv:
 nop
@@ -2918,17 +2918,17 @@
 b__MA7naqebvq4uvqy7znantre4I1_218OcUjFreivprZnantre13hayvaxGbQrnguREXAF_2fcVAF_8uneqjner20uvqy_qrngu_erpvcvragRRR:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner6Cnepry11jevgrBowrpgV22ovaqre_sq_neenl_bowrpgRRvEXG_
+.weak b__MA7naqebvq8uneqjner6Cnepry11jevgrBowrpgV22ovaqre_sq_neenl_bowrpgRRvEXG_
 .type b__MA7naqebvq8uneqjner6Cnepry11jevgrBowrpgV22ovaqre_sq_neenl_bowrpgRRvEXG_,%function
 b__MA7naqebvq8uneqjner6Cnepry11jevgrBowrpgV22ovaqre_sq_neenl_bowrpgRRvEXG_:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf17FlapuebavmrqDhrhrVAFg3__18shapgvbaVSiiRRRR8jnvg_cbcRi
+.weak b__MA7naqebvq8uneqjner7qrgnvyf17FlapuebavmrqDhrhrVAFg3__18shapgvbaVSiiRRRR8jnvg_cbcRi
 .type b__MA7naqebvq8uneqjner7qrgnvyf17FlapuebavmrqDhrhrVAFg3__18shapgvbaVSiiRRRR8jnvg_cbcRi,%function
 b__MA7naqebvq8uneqjner7qrgnvyf17FlapuebavmrqDhrhrVAFg3__18shapgvbaVSiiRRRR8jnvg_cbcRi:
 nop
 .data
-.globl b__MGIAFg3__120__funerq_cge_rzcynprVA7naqebvq8uneqjner7qrgnvyf24YnmlFreivprErtvfgeneVzcyRAF_9nyybpngbeVF4_RRRR
+.weak b__MGIAFg3__120__funerq_cge_rzcynprVA7naqebvq8uneqjner7qrgnvyf24YnmlFreivprErtvfgeneVzcyRAF_9nyybpngbeVF4_RRRR
 .type b__MGIAFg3__120__funerq_cge_rzcynprVA7naqebvq8uneqjner7qrgnvyf24YnmlFreivprErtvfgeneVzcyRAF_9nyybpngbeVF4_RRRR,%object
 b__MGIAFg3__120__funerq_cge_rzcynprVA7naqebvq8uneqjner7qrgnvyf24YnmlFreivprErtvfgeneVzcyRAF_9nyybpngbeVF4_RRRR:
 .space __SIZEOF_POINTER__
@@ -2943,7 +2943,7 @@
 b__MA7naqebvq8uneqjner11OcUjErsOnfr20baVapFgebatNggrzcgrqRwCXi:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFT_RRECAF_15__gerr_raq_abqrVFG_RREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFT_RRECAF_15__gerr_raq_abqrVFG_RREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFT_RRECAF_15__gerr_raq_abqrVFG_RREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFT_RRECAF_15__gerr_raq_abqrVFG_RREXG_:
 nop
@@ -2978,7 +2978,7 @@
 b__MA7naqebvq4uvqy7znantre4I1_218OcUjFreivprZnantre19vagresnprQrfpevcgbeRAFg3__18shapgvbaVSiEXAF_8uneqjner11uvqy_fgevatRRRR:
 nop
 .text
-.globl b__MAXFg3__111__zngpu_nalVpR6__rkrpREAF_7__fgngrVpRR
+.weak b__MAXFg3__111__zngpu_nalVpR6__rkrpREAF_7__fgngrVpRR
 .type b__MAXFg3__111__zngpu_nalVpR6__rkrpREAF_7__fgngrVpRR,%function
 b__MAXFg3__111__zngpu_nalVpR6__rkrpREAF_7__fgngrVpRR:
 nop
@@ -2993,12 +2993,12 @@
 b__MGi0_a32_A7naqebvq8uneqjner10OcUjOvaqre10baSvefgErsRi:
 nop
 .data
-.globl b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR16_AF_13onfvp_bfgernzVpF2_RR
+.weak b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR16_AF_13onfvp_bfgernzVpF2_RR
 .type b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR16_AF_13onfvp_bfgernzVpF2_RR,%object
 b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR16_AF_13onfvp_bfgernzVpF2_RR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAXFg3__120__oenpxrg_rkcerffvbaVpAF_12ertrk_genvgfVpRRR6__rkrpREAF_7__fgngrVpRR
+.weak b__MAXFg3__120__oenpxrg_rkcerffvbaVpAF_12ertrk_genvgfVpRRR6__rkrpREAF_7__fgngrVpRR
 .type b__MAXFg3__120__oenpxrg_rkcerffvbaVpAF_12ertrk_genvgfVpRRR6__rkrpREAF_7__fgngrVpRR,%function
 b__MAXFg3__120__oenpxrg_rkcerffvbaVpAF_12ertrk_genvgfVpRRR6__rkrpREAF_7__fgngrVpRR:
 nop
@@ -3028,7 +3028,7 @@
 b__MA7naqebvq4uvqy7znantre4I1_218OcUjFreivprZnantre29_uvqy_yvfgZnavsrfgOlVagresnprRCAF_8uneqjner10VVagresnprRCAF4_7qrgnvyf16UvqyVafgehzragbeREXAF4_11uvqy_fgevatRAFg3__18shapgvbaVSiEXAF4_8uvqy_irpVFN_RRRRR:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_8uneqjner10OcUjOvaqre8BovghnelRR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_8uneqjner10OcUjOvaqre8BovghnelRR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_8uneqjner10OcUjOvaqre8BovghnelRR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_8uneqjner10OcUjOvaqre8BovghnelRR15qb_zbir_sbejneqRCiCXiz:
 nop
@@ -3038,12 +3038,12 @@
 b__MA7naqebvq8uneqjner14VCPGuernqFgngr12frghcCbyyvatRCv:
 nop
 .text
-.globl b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR12__cnefr_tercVCXpRRG_F7_F7_
+.weak b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR12__cnefr_tercVCXpRRG_F7_F7_
 .type b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR12__cnefr_tercVCXpRRG_F7_F7_,%function
 b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR12__cnefr_tercVCXpRRG_F7_F7_:
 nop
 .data
-.globl b__MGPAFg3__113onfvp_sfgernzVpAF_11pune_genvgfVpRRRR16_AF_13onfvp_bfgernzVpF2_RR
+.weak b__MGPAFg3__113onfvp_sfgernzVpAF_11pune_genvgfVpRRRR16_AF_13onfvp_bfgernzVpF2_RR
 .type b__MGPAFg3__113onfvp_sfgernzVpAF_11pune_genvgfVpRRRR16_AF_13onfvp_bfgernzVpF2_RR,%object
 b__MGPAFg3__113onfvp_sfgernzVpAF_11pune_genvgfVpRRRR16_AF_13onfvp_bfgernzVpF2_RR:
 .space __SIZEOF_POINTER__
@@ -3068,7 +3068,7 @@
 b__MGPA7naqebvq4uvqy4onfr4I1_08OcUjOnfrR0_AF_8uneqjner11OcVagresnprVAF2_5VOnfrRRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAXFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_
+.weak b__MAXFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_
 .type b__MAXFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_,%function
 b__MAXFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_:
 nop
@@ -3078,7 +3078,7 @@
 b__MA7naqebvq8uneqjner21frgZvaFpurqhyreCbyvplREXAF_2fcVAF_4uvqy4onfr4I1_05VOnfrRRRvv:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF_4uvqy4onfr4I1_05VOnfrRiRRAF_2fcVG_RRF9_
+.weak b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF_4uvqy4onfr4I1_05VOnfrRiRRAF_2fcVG_RRF9_
 .type b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF_4uvqy4onfr4I1_05VOnfrRiRRAF_2fcVG_RRF9_,%function
 b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF_4uvqy4onfr4I1_05VOnfrRiRRAF_2fcVG_RRF9_:
 nop
@@ -3088,7 +3088,7 @@
 b__MAX7naqebvq8uneqjner14VCPGuernqFgngr19trgFgevpgZbqrCbyvplRi:
 nop
 .text
-.globl b__MAXFg3__110__shapgvba6__shapVCSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF_6irpgbeVCiAF_9nyybpngbeVFN_RRRRRAFO_VFT_RRFS_R7__pybarRi
+.weak b__MAXFg3__110__shapgvba6__shapVCSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF_6irpgbeVCiAF_9nyybpngbeVFN_RRRRRAFO_VFT_RRFS_R7__pybarRi
 .type b__MAXFg3__110__shapgvba6__shapVCSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF_6irpgbeVCiAF_9nyybpngbeVFN_RRRRRAFO_VFT_RRFS_R7__pybarRi,%function
 b__MAXFg3__110__shapgvba6__shapVCSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF_6irpgbeVCiAF_9nyybpngbeVFN_RRRRRAFO_VFT_RRFS_R7__pybarRi:
 nop
@@ -3118,7 +3118,7 @@
 b__MA7naqebvq8uneqjner6Cnepry10jevgrVag64Ry:
 nop
 .data
-.globl b__MGIA7naqebvq4uvqy7znantre4I1_021OfFreivprAbgvsvpngvbaR
+.weak b__MGIA7naqebvq4uvqy7znantre4I1_021OfFreivprAbgvsvpngvbaR
 .type b__MGIA7naqebvq4uvqy7znantre4I1_021OfFreivprAbgvsvpngvbaR,%object
 b__MGIA7naqebvq4uvqy7znantre4I1_021OfFreivprAbgvsvpngvbaR:
 .space __SIZEOF_POINTER__
@@ -3138,12 +3138,12 @@
 b__MA7naqebvq8uneqjner12CebprffFgngrQ0Ri:
 nop
 .text
-.globl b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR25__cnefr_rdhvinyrapr_pynffVAF_11__jenc_vgreVCXpRRRRG_F9_F9_CAF_20__oenpxrg_rkcerffvbaVpF2_RR
+.weak b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR25__cnefr_rdhvinyrapr_pynffVAF_11__jenc_vgreVCXpRRRRG_F9_F9_CAF_20__oenpxrg_rkcerffvbaVpF2_RR
 .type b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR25__cnefr_rdhvinyrapr_pynffVAF_11__jenc_vgreVCXpRRRRG_F9_F9_CAF_20__oenpxrg_rkcerffvbaVpF2_RR,%function
 b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR25__cnefr_rdhvinyrapr_pynffVAF_11__jenc_vgreVCXpRRRRG_F9_F9_CAF_20__oenpxrg_rkcerffvbaVpF2_RR:
 nop
 .data
-.globl b__MMA7naqebvq8uneqjner25CnffguebhtuFreivprZnantre8bcraYvofREXAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRREXAF2_8shapgvbaVSoCiFN_FN_RRRR16unyYvoCnguIaqxFc
+.weak b__MMA7naqebvq8uneqjner25CnffguebhtuFreivprZnantre8bcraYvofREXAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRREXAF2_8shapgvbaVSoCiFN_FN_RRRR16unyYvoCnguIaqxFc
 .type b__MMA7naqebvq8uneqjner25CnffguebhtuFreivprZnantre8bcraYvofREXAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRREXAF2_8shapgvbaVSoCiFN_FN_RRRR16unyYvoCnguIaqxFc,%object
 b__MMA7naqebvq8uneqjner25CnffguebhtuFreivprZnantre8bcraYvofREXAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRREXAF2_8shapgvbaVSoCiFN_FN_RRRR16unyYvoCnguIaqxFc:
 .space __SIZEOF_POINTER__
@@ -3153,12 +3153,12 @@
 b__MA7naqebvq4uvqy7znantre4I1_018OaUjFreivprZnantre9_uvqy_nqqRCAF0_4onfr4I1_08OaUjOnfrREXAF_8uneqjner6CnepryRCF9_AFg3__18shapgvbaVSiEF9_RRR:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_8uneqjner10OcUjOvaqre8BovghnelRR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_8uneqjner10OcUjOvaqre8BovghnelRR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_8uneqjner10OcUjOvaqre8BovghnelRR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_8uneqjner10OcUjOvaqre8BovghnelRR16qb_zbir_onpxjneqRCiCXiz:
 nop
 .text
-.globl b__MAX7naqebvq8uneqjner6Cnepry10ernqBowrpgV18syng_ovaqre_bowrpgRRCXG_Cz
+.weak b__MAX7naqebvq8uneqjner6Cnepry10ernqBowrpgV18syng_ovaqre_bowrpgRRCXG_Cz
 .type b__MAX7naqebvq8uneqjner6Cnepry10ernqBowrpgV18syng_ovaqre_bowrpgRRCXG_Cz,%function
 b__MAX7naqebvq8uneqjner6Cnepry10ernqBowrpgV18syng_ovaqre_bowrpgRRCXG_Cz:
 nop
@@ -3168,22 +3168,22 @@
 b__MA7naqebvq8uneqjner7qrgnvyf23jencCnffguebhtuVagreanyRAF_2fcVAF_4uvqy4onfr4I1_05VOnfrRRR:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVCXiAF_8uneqjner10OcUjOvaqre13BowrpgZnantre7ragel_gRRRR16qb_zbir_onpxjneqRCiF3_z
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVCXiAF_8uneqjner10OcUjOvaqre13BowrpgZnantre7ragel_gRRRR16qb_zbir_onpxjneqRCiF3_z
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVCXiAF_8uneqjner10OcUjOvaqre13BowrpgZnantre7ragel_gRRRR16qb_zbir_onpxjneqRCiF3_z,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVCXiAF_8uneqjner10OcUjOvaqre13BowrpgZnantre7ragel_gRRRR16qb_zbir_onpxjneqRCiF3_z:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVCAF_7ErsOnfr12jrnxers_glcrRR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVCAF_7ErsOnfr12jrnxers_glcrRR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVCAF_7ErsOnfr12jrnxers_glcrRR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVCAF_7ErsOnfr12jrnxers_glcrRR8qb_fcyngRCiCXiz:
 nop
 .data
-.globl b__MGIA7naqebvq4uvqy7znantre4I1_116OfFreivprZnantreR
+.weak b__MGIA7naqebvq4uvqy7znantre4I1_116OfFreivprZnantreR
 .type b__MGIA7naqebvq4uvqy7znantre4I1_116OfFreivprZnantreR,%object
 b__MGIA7naqebvq4uvqy7znantre4I1_116OfFreivprZnantreR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__1yfVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRREAF_13onfvp_bfgernzVG_G0_RRF9_EXAF_12onfvp_fgevatVF6_F7_G1_RR
+.weak b__MAFg3__1yfVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRREAF_13onfvp_bfgernzVG_G0_RRF9_EXAF_12onfvp_fgevatVF6_F7_G1_RR
 .type b__MAFg3__1yfVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRREAF_13onfvp_bfgernzVG_G0_RRF9_EXAF_12onfvp_fgevatVF6_F7_G1_RR,%function
 b__MAFg3__1yfVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRREAF_13onfvp_bfgernzVG_G0_RRF9_EXAF_12onfvp_fgevatVF6_F7_G1_RR:
 nop
@@ -3203,7 +3203,7 @@
 b__MA7naqebvq4uvqy7znantre4I1_215VPyvragPnyyonpx17ertvfgreNfFreivprREXAFg3__112onfvp_fgevatVpAF4_11pune_genvgfVpRRAF4_9nyybpngbeVpRRRR:
 nop
 .data
-.globl b__MGGA7naqebvq8uneqjner11OcVagresnprVAF_4uvqy4onfr4I1_05VOnfrRRR
+.weak b__MGGA7naqebvq8uneqjner11OcVagresnprVAF_4uvqy4onfr4I1_05VOnfrRRR
 .type b__MGGA7naqebvq8uneqjner11OcVagresnprVAF_4uvqy4onfr4I1_05VOnfrRRR,%object
 b__MGGA7naqebvq8uneqjner11OcVagresnprVAF_4uvqy4onfr4I1_05VOnfrRRR:
 .space __SIZEOF_POINTER__
@@ -3213,7 +3213,7 @@
 b__MA7naqebvq8uneqjner10OcUjOvaqre13BowrpgZnantreQ1Ri:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVCAF_7ErsOnfrRR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq6IrpgbeVCAF_7ErsOnfrRR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq6IrpgbeVCAF_7ErsOnfrRR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq6IrpgbeVCAF_7ErsOnfrRR12qb_pbafgehpgRCiz:
 nop
@@ -3233,7 +3233,7 @@
 b__MA7naqebvq8uneqjner10OcUjOvaqreP2Rv:
 nop
 .data
-.globl b__MGIAFg3__111__raq_fgngrVpRR
+.weak b__MGIAFg3__111__raq_fgngrVpRR
 .type b__MGIAFg3__111__raq_fgngrVpRR,%object
 b__MGIAFg3__111__raq_fgngrVpRR:
 .space __SIZEOF_POINTER__
@@ -3243,12 +3243,12 @@
 b__MA7naqebvq4uvqy7znantre4I1_021OfFreivprAbgvsvpngvbaP1RAF_2fcVAF2_20VFreivprAbgvsvpngvbaRRR:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_2fcVAF_8uneqjner18OhssrerqGrkgBhgchg11OhssreFgngrRRRR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq6IrpgbeVAF_2fcVAF_8uneqjner18OhssrerqGrkgBhgchg11OhssreFgngrRRRR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq6IrpgbeVAF_2fcVAF_8uneqjner18OhssrerqGrkgBhgchg11OhssreFgngrRRRR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq6IrpgbeVAF_2fcVAF_8uneqjner18OhssrerqGrkgBhgchg11OhssreFgngrRRRR12qb_pbafgehpgRCiz:
 nop
 .data
-.globl b__MGIA7naqebvq6IrpgbeVCAF_7ErsOnfrRRR
+.weak b__MGIA7naqebvq6IrpgbeVCAF_7ErsOnfrRRR
 .type b__MGIA7naqebvq6IrpgbeVCAF_7ErsOnfrRRR,%object
 b__MGIA7naqebvq6IrpgbeVCAF_7ErsOnfrRRR:
 .space __SIZEOF_POINTER__
@@ -3273,12 +3273,12 @@
 b__MA7naqebvq8uneqjner14VCPGuernqFgngr22erfgberPnyyvatVqragvglRy:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVCAF_7ErsOnfrRR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq6IrpgbeVCAF_7ErsOnfrRR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq6IrpgbeVCAF_7ErsOnfrRR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq6IrpgbeVCAF_7ErsOnfrRR10qb_qrfgeblRCiz:
 nop
 .data
-.globl b__MGPA7naqebvq8uneqjner10CbbyGuernqR0_AF_6GuernqR
+.weak b__MGPA7naqebvq8uneqjner10CbbyGuernqR0_AF_6GuernqR
 .type b__MGPA7naqebvq8uneqjner10CbbyGuernqR0_AF_6GuernqR,%object
 b__MGPA7naqebvq8uneqjner10CbbyGuernqR0_AF_6GuernqR:
 .space __SIZEOF_POINTER__
@@ -3298,7 +3298,7 @@
 b__MGPA7naqebvq4uvqy7znantre4I1_018OcUjFreivprZnantreR8_AF_8uneqjner10VVagresnprR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGPA7naqebvq4uvqy7znantre4I1_216OfFreivprZnantreR0_AF2_15VFreivprZnantreR
+.weak b__MGPA7naqebvq4uvqy7znantre4I1_216OfFreivprZnantreR0_AF2_15VFreivprZnantreR
 .type b__MGPA7naqebvq4uvqy7znantre4I1_216OfFreivprZnantreR0_AF2_15VFreivprZnantreR,%object
 b__MGPA7naqebvq4uvqy7znantre4I1_216OfFreivprZnantreR0_AF2_15VFreivprZnantreR:
 .space __SIZEOF_POINTER__
@@ -3308,7 +3308,7 @@
 b__MA7naqebvq8uneqjner18OhssrerqGrkgBhgchgQ1Ri:
 nop
 .text
-.globl b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR22__cnefr_ER_qhcy_flzobyVCXpRRG_F7_F7_CAF_16__bjaf_bar_fgngrVpRRww
+.weak b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR22__cnefr_ER_qhcy_flzobyVCXpRRG_F7_F7_CAF_16__bjaf_bar_fgngrVpRRww
 .type b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR22__cnefr_ER_qhcy_flzobyVCXpRRG_F7_F7_CAF_16__bjaf_bar_fgngrVpRRww,%function
 b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR22__cnefr_ER_qhcy_flzobyVCXpRRG_F7_F7_CAF_16__bjaf_bar_fgngrVpRRww:
 nop
@@ -3348,7 +3348,7 @@
 b__MGGA7naqebvq8uneqjner7VOvaqreR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__16irpgbeVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF6_RRR21__chfu_onpx_fybj_cnguVF6_RRiBG_
+.weak b__MAFg3__16irpgbeVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF6_RRR21__chfu_onpx_fybj_cnguVF6_RRiBG_
 .type b__MAFg3__16irpgbeVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF6_RRR21__chfu_onpx_fybj_cnguVF6_RRiBG_,%function
 b__MAFg3__16irpgbeVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF6_RRR21__chfu_onpx_fybj_cnguVF6_RRiBG_:
 nop
@@ -3373,12 +3373,12 @@
 b__MA7naqebvq8uneqjner7VOvaqreQ2Ri:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVCAF_7ErsOnfrRR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVCAF_7ErsOnfrRR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVCAF_7ErsOnfrRR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVCAF_7ErsOnfrRR8qb_fcyngRCiCXiz:
 nop
 .text
-.globl b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
+.weak b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
 .type b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_,%function
 b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_:
 nop
@@ -3388,7 +3388,7 @@
 b__MGPA7naqebvq4uvqy4onfr4I1_08OaUjOnfrR0_AF_8uneqjner7VOvaqreR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_8Fgevat16RAF_2fcVAF_8uneqjner7VOvaqreRRRRRR10qb_pbzcnerRCXiFN_
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_8Fgevat16RAF_2fcVAF_8uneqjner7VOvaqreRRRRRR10qb_pbzcnerRCXiFN_
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_8Fgevat16RAF_2fcVAF_8uneqjner7VOvaqreRRRRRR10qb_pbzcnerRCXiFN_,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_8Fgevat16RAF_2fcVAF_8uneqjner7VOvaqreRRRRRR10qb_pbzcnerRCXiFN_:
 nop
@@ -3398,22 +3398,22 @@
 b__MGGA7naqebvq8uneqjner12CebprffFgngrR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGGA7naqebvq8uneqjner10CbbyGuernqR
+.weak b__MGGA7naqebvq8uneqjner10CbbyGuernqR
 .type b__MGGA7naqebvq8uneqjner10CbbyGuernqR,%object
 b__MGGA7naqebvq8uneqjner10CbbyGuernqR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq2fcVAF_8uneqjner12CebprffFgngrRRQ2Ri
+.weak b__MA7naqebvq2fcVAF_8uneqjner12CebprffFgngrRRQ2Ri
 .type b__MA7naqebvq2fcVAF_8uneqjner12CebprffFgngrRRQ2Ri,%function
 b__MA7naqebvq2fcVAF_8uneqjner12CebprffFgngrRRQ2Ri:
 nop
 .text
-.globl b__MAXFg3__112ertrk_genvgfVpR20__ybbxhc_pbyyngranzrVCXpRRAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRG_FO_p
+.weak b__MAXFg3__112ertrk_genvgfVpR20__ybbxhc_pbyyngranzrVCXpRRAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRG_FO_p
 .type b__MAXFg3__112ertrk_genvgfVpR20__ybbxhc_pbyyngranzrVCXpRRAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRG_FO_p,%function
 b__MAXFg3__112ertrk_genvgfVpR20__ybbxhc_pbyyngranzrVCXpRRAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRG_FO_p:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRA7naqebvq4uvqy7znantre4I1_015VFreivprZnantre17VafgnaprQrohtVasbRRRAF_19__znc_inyhr_pbzcnerVF7_FR_AF_4yrffVF7_RRYo1RRRAF5_VFR_RRR7qrfgeblRCAF_11__gerr_abqrVFR_CiRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRA7naqebvq4uvqy7znantre4I1_015VFreivprZnantre17VafgnaprQrohtVasbRRRAF_19__znc_inyhr_pbzcnerVF7_FR_AF_4yrffVF7_RRYo1RRRAF5_VFR_RRR7qrfgeblRCAF_11__gerr_abqrVFR_CiRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRA7naqebvq4uvqy7znantre4I1_015VFreivprZnantre17VafgnaprQrohtVasbRRRAF_19__znc_inyhr_pbzcnerVF7_FR_AF_4yrffVF7_RRYo1RRRAF5_VFR_RRR7qrfgeblRCAF_11__gerr_abqrVFR_CiRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRA7naqebvq4uvqy7znantre4I1_015VFreivprZnantre17VafgnaprQrohtVasbRRRAF_19__znc_inyhr_pbzcnerVF7_FR_AF_4yrffVF7_RRYo1RRRAF5_VFR_RRR7qrfgeblRCAF_11__gerr_abqrVFR_CiRR:
 nop
@@ -3423,7 +3423,7 @@
 b__MA7naqebvq4uvqy7znantre4I1_018OcUjFreivprZnantre21abgvslFlfcebcfPunatrqRi:
 nop
 .data
-.globl b__MMA7naqebvq8uneqjner25CnffguebhtuFreivprZnantre9qrohtQhzcRAFg3__18shapgvbaVSiEXAF0_8uvqy_irpVAF_4uvqy7znantre4I1_015VFreivprZnantre17VafgnaprQrohtVasbRRRRRRR9fNyyCnguf
+.weak b__MMA7naqebvq8uneqjner25CnffguebhtuFreivprZnantre9qrohtQhzcRAFg3__18shapgvbaVSiEXAF0_8uvqy_irpVAF_4uvqy7znantre4I1_015VFreivprZnantre17VafgnaprQrohtVasbRRRRRRR9fNyyCnguf
 .type b__MMA7naqebvq8uneqjner25CnffguebhtuFreivprZnantre9qrohtQhzcRAFg3__18shapgvbaVSiEXAF0_8uvqy_irpVAF_4uvqy7znantre4I1_015VFreivprZnantre17VafgnaprQrohtVasbRRRRRRR9fNyyCnguf,%object
 b__MMA7naqebvq8uneqjner25CnffguebhtuFreivprZnantre9qrohtQhzcRAFg3__18shapgvbaVSiEXAF0_8uvqy_irpVAF_4uvqy7znantre4I1_015VFreivprZnantre17VafgnaprQrohtVasbRRRRRRR9fNyyCnguf:
 .space __SIZEOF_POINTER__
@@ -3438,12 +3438,12 @@
 b__MA7naqebvq4uvqy7znantre4I1_218OaUjFreivprZnantre29_uvqy_yvfgZnavsrfgOlVagresnprRCAF0_4onfr4I1_08OaUjOnfrREXAF_8uneqjner6CnepryRCF9_AFg3__18shapgvbaVSiEF9_RRR:
 nop
 .text
-.globl b__MA7naqebvq8uneqjneryfVCpRREAF0_10GrkgBhgchgRF4_EXG_
+.weak b__MA7naqebvq8uneqjneryfVCpRREAF0_10GrkgBhgchgRF4_EXG_
 .type b__MA7naqebvq8uneqjneryfVCpRREAF0_10GrkgBhgchgRF4_EXG_,%function
 b__MA7naqebvq8uneqjneryfVCpRREAF0_10GrkgBhgchgRF4_EXG_:
 nop
 .text
-.globl b__MAXFg3__113__rzcgl_fgngrVpR6__rkrpREAF_7__fgngrVpRR
+.weak b__MAXFg3__113__rzcgl_fgngrVpR6__rkrpREAF_7__fgngrVpRR
 .type b__MAXFg3__113__rzcgl_fgngrVpR6__rkrpREAF_7__fgngrVpRR,%function
 b__MAXFg3__113__rzcgl_fgngrVpR6__rkrpREAF_7__fgngrVpRR:
 nop
@@ -3463,7 +3463,7 @@
 b__MAX7naqebvq8uneqjner6Cnepry19ernqFgevat16VacynprRCz:
 nop
 .data
-.globl b__MGIAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
+.weak b__MGIAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
 .type b__MGIAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR,%object
 b__MGIAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR:
 .space __SIZEOF_POINTER__
@@ -3473,22 +3473,22 @@
 b__MA7naqebvq8uneqjner12CebprffFgngr26frgGuernqCbbyPbasvthengvbaRzo:
 nop
 .text
-.globl b__MAXFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_
+.weak b__MAXFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_
 .type b__MAXFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_,%function
 b__MAXFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_:
 nop
 .data
-.globl b__MGIAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRRR
+.weak b__MGIAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRRR
 .type b__MGIAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRRR,%object
 b__MGIAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAXFg3__18shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF7_F7_F7_CAF_6irpgbeVCiAF_9nyybpngbeVF9_RRRRRRpyRF5_F7_F7_F7_F7_FQ_
+.weak b__MAXFg3__18shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF7_F7_F7_CAF_6irpgbeVCiAF_9nyybpngbeVF9_RRRRRRpyRF5_F7_F7_F7_F7_FQ_
 .type b__MAXFg3__18shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF7_F7_F7_CAF_6irpgbeVCiAF_9nyybpngbeVF9_RRRRRRpyRF5_F7_F7_F7_F7_FQ_,%function
 b__MAXFg3__18shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF7_F7_F7_CAF_6irpgbeVCiAF_9nyybpngbeVF9_RRRRRRpyRF5_F7_F7_F7_F7_FQ_:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_8shapgvbaVSiiRRRAF_9nyybpngbeVF3_RRRP2REXF6_
+.weak b__MAFg3__16irpgbeVAF_8shapgvbaVSiiRRRAF_9nyybpngbeVF3_RRRP2REXF6_
 .type b__MAFg3__16irpgbeVAF_8shapgvbaVSiiRRRAF_9nyybpngbeVF3_RRRP2REXF6_,%function
 b__MAFg3__16irpgbeVAF_8shapgvbaVSiiRRRAF_9nyybpngbeVF3_RRRP2REXF6_:
 nop
@@ -3498,12 +3498,12 @@
 b__MA7naqebvq8uneqjner21jevgrRzorqqrqGbCnepryREXAF0_11uvqy_fgevatRCAF0_6CnepryRzz:
 nop
 .text
-.globl b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR23__cnefr_RER_qhcy_flzobyVAF_11__jenc_vgreVCXpRRRRG_F9_F9_CAF_16__bjaf_bar_fgngrVpRRww
+.weak b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR23__cnefr_RER_qhcy_flzobyVAF_11__jenc_vgreVCXpRRRRG_F9_F9_CAF_16__bjaf_bar_fgngrVpRRww
 .type b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR23__cnefr_RER_qhcy_flzobyVAF_11__jenc_vgreVCXpRRRRG_F9_F9_CAF_16__bjaf_bar_fgngrVpRRww,%function
 b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR23__cnefr_RER_qhcy_flzobyVAF_11__jenc_vgreVCXpRRRRG_F9_F9_CAF_16__bjaf_bar_fgngrVpRRww:
 nop
 .text
-.globl b__MAFg3__114__fcyvg_ohssreVCAF_7__fgngrVpRRAF_9nyybpngbeVF3_RRR10chfu_sebagRBF3_
+.weak b__MAFg3__114__fcyvg_ohssreVCAF_7__fgngrVpRRAF_9nyybpngbeVF3_RRR10chfu_sebagRBF3_
 .type b__MAFg3__114__fcyvg_ohssreVCAF_7__fgngrVpRRAF_9nyybpngbeVF3_RRR10chfu_sebagRBF3_,%function
 b__MAFg3__114__fcyvg_ohssreVCAF_7__fgngrVpRRAF_9nyybpngbeVF3_RRR10chfu_sebagRBF3_:
 nop
@@ -3513,7 +3513,7 @@
 b__MA7naqebvq8uneqjner7qrgnvyf21PyvragPbhagrePnyyonpx15ertvfgreFreivprREXAF_2fcVAF_4uvqy4onfr4I1_05VOnfrRRREXAFg3__112onfvp_fgevatVpAFO_11pune_genvgfVpRRAFO_9nyybpngbeVpRRRR:
 nop
 .text
-.globl b__MA7naqebvq2fcVAF_4uvqy7znantre4I1_020VFreivprAbgvsvpngvbaRRnFRBF5_
+.weak b__MA7naqebvq2fcVAF_4uvqy7znantre4I1_020VFreivprAbgvsvpngvbaRRnFRBF5_
 .type b__MA7naqebvq2fcVAF_4uvqy7znantre4I1_020VFreivprAbgvsvpngvbaRRnFRBF5_,%function
 b__MA7naqebvq2fcVAF_4uvqy7znantre4I1_020VFreivprAbgvsvpngvbaRRnFRBF5_:
 nop
@@ -3523,12 +3523,12 @@
 b__MGPA7naqebvq4uvqy4onfr4I1_08OcUjOnfrR0_AF2_5VOnfrR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_8uneqjner12CebprffFgngr12unaqyr_ragelRR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq6IrpgbeVAF_8uneqjner12CebprffFgngr12unaqyr_ragelRR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq6IrpgbeVAF_8uneqjner12CebprffFgngr12unaqyr_ragelRR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq6IrpgbeVAF_8uneqjner12CebprffFgngr12unaqyr_ragelRR10qb_qrfgeblRCiz:
 nop
 .data
-.globl b__MGIA7naqebvq8uneqjner13YbtGrkgBhgchgR
+.weak b__MGIA7naqebvq8uneqjner13YbtGrkgBhgchgR
 .type b__MGIA7naqebvq8uneqjner13YbtGrkgBhgchgR,%object
 b__MGIA7naqebvq8uneqjner13YbtGrkgBhgchgR:
 .space __SIZEOF_POINTER__
@@ -3543,7 +3543,7 @@
 b__MA7naqebvq4uvqy4onfr4I1_05VOnfr21frgUNYVafgehzragngvbaRi:
 nop
 .data
-.globl b__MGGAFg3__114onfvp_vsfgernzVpAF_11pune_genvgfVpRRRR
+.weak b__MGGAFg3__114onfvp_vsfgernzVpAF_11pune_genvgfVpRRRR
 .type b__MGGAFg3__114onfvp_vsfgernzVpAF_11pune_genvgfVpRRRR,%object
 b__MGGAFg3__114onfvp_vsfgernzVpAF_11pune_genvgfVpRRRR:
 .space __SIZEOF_POINTER__
@@ -3563,7 +3563,7 @@
 b__MA7naqebvq4uvqy7znantre4I1_218OaUjFreivprZnantreP2REXAF_2fcVAF2_15VFreivprZnantreRRR:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVCXiAF_8uneqjner10OcUjOvaqre13BowrpgZnantre7ragel_gRRRR10qb_pbzcnerRF3_F3_
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVCXiAF_8uneqjner10OcUjOvaqre13BowrpgZnantre7ragel_gRRRR10qb_pbzcnerRF3_F3_
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVCXiAF_8uneqjner10OcUjOvaqre13BowrpgZnantre7ragel_gRRRR10qb_pbzcnerRF3_F3_,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVCXiAF_8uneqjner10OcUjOvaqre13BowrpgZnantre7ragel_gRRRR10qb_pbzcnerRF3_F3_:
 nop
@@ -3573,7 +3573,7 @@
 b__MA7naqebvq8uneqjner6Cnepry11frgQngnFvmrRz:
 nop
 .text
-.globl b__MA7naqebvq8uneqjneryfVN3_pRREAF0_10GrkgBhgchgRF4_EXG_
+.weak b__MA7naqebvq8uneqjneryfVN3_pRREAF0_10GrkgBhgchgRF4_EXG_
 .type b__MA7naqebvq8uneqjneryfVN3_pRREAF0_10GrkgBhgchgRF4_EXG_,%function
 b__MA7naqebvq8uneqjneryfVN3_pRREAF0_10GrkgBhgchgRF4_EXG_:
 nop
@@ -3598,7 +3598,7 @@
 b__MA7naqebvq8uneqjner12CebprffFgngr20znxrOvaqreGuernqAnzrRi:
 nop
 .data
-.globl b__MGIAFg3__117__bjaf_gjb_fgngrfVpRR
+.weak b__MGIAFg3__117__bjaf_gjb_fgngrfVpRR
 .type b__MGIAFg3__117__bjaf_gjb_fgngrfVpRR,%object
 b__MGIAFg3__117__bjaf_gjb_fgngrfVpRR:
 .space __SIZEOF_POINTER__
@@ -3608,7 +3608,7 @@
 b__MA7naqebvq4uvqy7znantre4I1_018OaUjFreivprZnantreQ0Ri:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRR:
 nop
@@ -3633,7 +3633,7 @@
 b__MA7naqebvq8uneqjner12CebprffFgngr19trgXrearyErsreraprfRzCz:
 nop
 .text
-.globl b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRR5vzohrREXAF_6ybpnyrR
+.weak b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRR5vzohrREXAF_6ybpnyrR
 .type b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRR5vzohrREXAF_6ybpnyrR,%function
 b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRR5vzohrREXAF_6ybpnyrR:
 nop
@@ -3658,7 +3658,7 @@
 b__MA7naqebvq8uneqjner6Cnepry12jevgrPFgevatRCXp:
 nop
 .text
-.globl b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR12__cnefr_tercVAF_11__jenc_vgreVCXpRRRRG_F9_F9_
+.weak b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR12__cnefr_tercVAF_11__jenc_vgreVCXpRRRRG_F9_F9_
 .type b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR12__cnefr_tercVAF_11__jenc_vgreVCXpRRRRG_F9_F9_,%function
 b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR12__cnefr_tercVAF_11__jenc_vgreVCXpRRRRG_F9_F9_:
 nop
@@ -3688,7 +3688,7 @@
 b__MA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbeQ2Ri:
 nop
 .data
-.globl b__MGIAFg3__115__jbeq_obhaqnelVpAF_12ertrk_genvgfVpRRRR
+.weak b__MGIAFg3__115__jbeq_obhaqnelVpAF_12ertrk_genvgfVpRRRR
 .type b__MGIAFg3__115__jbeq_obhaqnelVpAF_12ertrk_genvgfVpRRRR,%object
 b__MGIAFg3__115__jbeq_obhaqnelVpAF_12ertrk_genvgfVpRRRR:
 .space __SIZEOF_POINTER__
@@ -3758,12 +3758,12 @@
 b__MGi0_a24_A7naqebvq8uneqjner12CebprffFgngrQ0Ri:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_8uneqjner12CebprffFgngr12unaqyr_ragelRR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq6IrpgbeVAF_8uneqjner12CebprffFgngr12unaqyr_ragelRR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq6IrpgbeVAF_8uneqjner12CebprffFgngr12unaqyr_ragelRR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq6IrpgbeVAF_8uneqjner12CebprffFgngr12unaqyr_ragelRR12qb_pbafgehpgRCiz:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_9fho_zngpuVCXpRRAF_9nyybpngbeVF4_RRRP2REXF7_
+.weak b__MAFg3__16irpgbeVAF_9fho_zngpuVCXpRRAF_9nyybpngbeVF4_RRRP2REXF7_
 .type b__MAFg3__16irpgbeVAF_9fho_zngpuVCXpRRAF_9nyybpngbeVF4_RRRP2REXF7_,%function
 b__MAFg3__16irpgbeVAF_9fho_zngpuVCXpRRAF_9nyybpngbeVF4_RRRP2REXF7_:
 nop
@@ -3783,7 +3783,7 @@
 b__MA7naqebvq8uneqjner10OcUjOvaqre8genafnpgRwEXAF0_6CnepryRCF2_wAFg3__18shapgvbaVSiEF2_RRR:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVCXiAF_8uneqjner10OcUjOvaqre13BowrpgZnantre7ragel_gRRRR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVCXiAF_8uneqjner10OcUjOvaqre13BowrpgZnantre7ragel_gRRRR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVCXiAF_8uneqjner10OcUjOvaqre13BowrpgZnantre7ragel_gRRRR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVCXiAF_8uneqjner10OcUjOvaqre13BowrpgZnantre7ragel_gRRRR12qb_pbafgehpgRCiz:
 nop
@@ -3798,7 +3798,7 @@
 b__MA7naqebvq8uneqjner6Cnepry14npdhverBowrpgfRi:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_4cnveVppRRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVF2_RRiBG_
+.weak b__MAFg3__16irpgbeVAF_4cnveVppRRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVF2_RRiBG_
 .type b__MAFg3__16irpgbeVAF_4cnveVppRRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVF2_RRiBG_,%function
 b__MAFg3__16irpgbeVAF_4cnveVppRRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVF2_RRiBG_:
 nop
@@ -3833,12 +3833,12 @@
 b__MA7naqebvq8uneqjner6Cnepry6erzbirRzz:
 nop
 .data
-.globl b__MGIAFg3__111__zngpu_nalVpRR
+.weak b__MGIAFg3__111__zngpu_nalVpRR
 .type b__MGIAFg3__111__zngpu_nalVpRR,%object
 b__MGIAFg3__111__zngpu_nalVpRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR18__cnefr_njx_rfpncrVCXpRRG_F7_F7_CAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
+.weak b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR18__cnefr_njx_rfpncrVCXpRRG_F7_F7_CAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
 .type b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR18__cnefr_njx_rfpncrVCXpRRG_F7_F7_CAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR,%function
 b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR18__cnefr_njx_rfpncrVCXpRRG_F7_F7_CAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR:
 nop
@@ -3848,7 +3848,7 @@
 b__MA7naqebvq8uneqjner16trgErdhrfgvatFvqREXAF_2fcVAF_4uvqy4onfr4I1_05VOnfrRRR:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF_4uvqy7znantre4I1_015VFreivprZnantreRAF3_4onfr4I1_05VOnfrRAF5_18OcUjFreivprZnantreRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF_4uvqy7znantre4I1_015VFreivprZnantreRAF3_4onfr4I1_05VOnfrRAF5_18OcUjFreivprZnantreRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo
 .type b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF_4uvqy7znantre4I1_015VFreivprZnantreRAF3_4onfr4I1_05VOnfrRAF5_18OcUjFreivprZnantreRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF_4uvqy7znantre4I1_015VFreivprZnantreRAF3_4onfr4I1_05VOnfrRAF5_18OcUjFreivprZnantreRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo:
 nop
@@ -3873,7 +3873,7 @@
 b__MAX7naqebvq8uneqjner6Cnepry4ernqRCiz:
 nop
 .text
-.globl b__MAXFg3__111__nygreangrVpR12__rkrp_fcyvgRoEAF_7__fgngrVpRR
+.weak b__MAXFg3__111__nygreangrVpR12__rkrp_fcyvgRoEAF_7__fgngrVpRR
 .type b__MAXFg3__111__nygreangrVpR12__rkrp_fcyvgRoEAF_7__fgngrVpRR,%function
 b__MAXFg3__111__nygreangrVpR12__rkrp_fcyvgRoEAF_7__fgngrVpRR:
 nop
@@ -3893,7 +3893,7 @@
 b__MGGA7naqebvq4uvqy7znantre4I1_218OaUjFreivprZnantreR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq6IrpgbeVCAF_8uneqjner9OUjOvaqreRR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVCAF_8uneqjner9OUjOvaqreRR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVCAF_8uneqjner9OUjOvaqreRR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVCAF_8uneqjner9OUjOvaqreRR8qb_fcyngRCiCXiz:
 nop
@@ -3918,7 +3918,7 @@
 b__MA7naqebvq8uneqjner10GrkgBhgchgQ1Ri:
 nop
 .text
-.globl b__MAXFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR21__zngpu_ng_fgneg_rpznVAF_9nyybpngbeVAF_9fho_zngpuVCXpRRRRRRoF8_F8_EAF_13zngpu_erfhygfVF8_G_RRAF_15ertrk_pbafgnagf15zngpu_synt_glcrRo
+.weak b__MAXFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR21__zngpu_ng_fgneg_rpznVAF_9nyybpngbeVAF_9fho_zngpuVCXpRRRRRRoF8_F8_EAF_13zngpu_erfhygfVF8_G_RRAF_15ertrk_pbafgnagf15zngpu_synt_glcrRo
 .type b__MAXFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR21__zngpu_ng_fgneg_rpznVAF_9nyybpngbeVAF_9fho_zngpuVCXpRRRRRRoF8_F8_EAF_13zngpu_erfhygfVF8_G_RRAF_15ertrk_pbafgnagf15zngpu_synt_glcrRo,%function
 b__MAXFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR21__zngpu_ng_fgneg_rpznVAF_9nyybpngbeVAF_9fho_zngpuVCXpRRRRRRoF8_F8_EAF_13zngpu_erfhygfVF8_G_RRAF_15ertrk_pbafgnagf15zngpu_synt_glcrRo:
 nop
@@ -4018,7 +4018,7 @@
 b__MAX7naqebvq8uneqjner6Cnepry10fpnaSbeSqfRi:
 nop
 .data
-.globl b__MGIAFg3__126__raq_znexrq_fhorkcerffvbaVpRR
+.weak b__MGIAFg3__126__raq_znexrq_fhorkcerffvbaVpRR
 .type b__MGIAFg3__126__raq_znexrq_fhorkcerffvbaVpRR,%object
 b__MGIAFg3__126__raq_znexrq_fhorkcerffvbaVpRR:
 .space __SIZEOF_POINTER__
@@ -4033,7 +4033,7 @@
 b__MA7naqebvq4uvqy7znantre4I1_018OcUjFreivprZnantre13hayvaxGbQrnguREXAF_2fcVAF_8uneqjner20uvqy_qrngu_erpvcvragRRR:
 nop
 .data
-.globl b__MGPA7naqebvq8uneqjner11OcVagresnprVAF_4uvqy4onfr4I1_05VOnfrRRR8_AF0_10VVagresnprR
+.weak b__MGPA7naqebvq8uneqjner11OcVagresnprVAF_4uvqy4onfr4I1_05VOnfrRRR8_AF0_10VVagresnprR
 .type b__MGPA7naqebvq8uneqjner11OcVagresnprVAF_4uvqy4onfr4I1_05VOnfrRRR8_AF0_10VVagresnprR,%object
 b__MGPA7naqebvq8uneqjner11OcVagresnprVAF_4uvqy4onfr4I1_05VOnfrRRR8_AF0_10VVagresnprR:
 .space __SIZEOF_POINTER__
@@ -4043,7 +4043,7 @@
 b__MGPA7naqebvq4uvqy7znantre4I1_218OaUjPyvragPnyyonpxR0_AF_8uneqjner9OUjOvaqreR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAXFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR29__zngpu_ng_fgneg_cbfvk_abfhofVAF_9nyybpngbeVAF_9fho_zngpuVCXpRRRRRRoF8_F8_EAF_13zngpu_erfhygfVF8_G_RRAF_15ertrk_pbafgnagf15zngpu_synt_glcrRo
+.weak b__MAXFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR29__zngpu_ng_fgneg_cbfvk_abfhofVAF_9nyybpngbeVAF_9fho_zngpuVCXpRRRRRRoF8_F8_EAF_13zngpu_erfhygfVF8_G_RRAF_15ertrk_pbafgnagf15zngpu_synt_glcrRo
 .type b__MAXFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR29__zngpu_ng_fgneg_cbfvk_abfhofVAF_9nyybpngbeVAF_9fho_zngpuVCXpRRRRRRoF8_F8_EAF_13zngpu_erfhygfVF8_G_RRAF_15ertrk_pbafgnagf15zngpu_synt_glcrRo,%function
 b__MAXFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR29__zngpu_ng_fgneg_cbfvk_abfhofVAF_9nyybpngbeVAF_9fho_zngpuVCXpRRRRRRoF8_F8_EAF_13zngpu_erfhygfVF8_G_RRAF_15ertrk_pbafgnagf15zngpu_synt_glcrRo:
 nop
@@ -4083,7 +4083,7 @@
 b__MAX7naqebvq8uneqjner6Cnepry8qngnFvmrRi:
 nop
 .text
-.globl b__MAXFg3__112ertrk_genvgfVpR20__ybbxhc_pbyyngranzrVAF_11__jenc_vgreVCXpRRRRAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRG_FQ_p
+.weak b__MAXFg3__112ertrk_genvgfVpR20__ybbxhc_pbyyngranzrVAF_11__jenc_vgreVCXpRRRRAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRG_FQ_p
 .type b__MAXFg3__112ertrk_genvgfVpR20__ybbxhc_pbyyngranzrVAF_11__jenc_vgreVCXpRRRRAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRG_FQ_p,%function
 b__MAXFg3__112ertrk_genvgfVpR20__ybbxhc_pbyyngranzrVAF_11__jenc_vgreVCXpRRRRAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRG_FQ_p:
 nop
@@ -4093,7 +4093,7 @@
 b__MGGA7naqebvq8uneqjner27uvqy_ovaqre_qrngu_erpvcvragR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRR4flapRi
+.weak b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRR4flapRi
 .type b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRR4flapRi,%function
 b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRR4flapRi:
 nop
@@ -4138,7 +4138,7 @@
 b__MA7naqebvq8uneqjner14VCPGuernqFgngr22pyrneQrnguAbgvsvpngvbaRvCAF0_10OcUjOvaqreR:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_2fcVAF_8uneqjner18OhssrerqGrkgBhgchg11OhssreFgngrRRRR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_2fcVAF_8uneqjner18OhssrerqGrkgBhgchg11OhssreFgngrRRRR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_2fcVAF_8uneqjner18OhssrerqGrkgBhgchg11OhssreFgngrRRRR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_2fcVAF_8uneqjner18OhssrerqGrkgBhgchg11OhssreFgngrRRRR8qb_fcyngRCiCXiz:
 nop
@@ -4173,7 +4173,7 @@
 b__MAX7naqebvq8uneqjner6Cnepry10ernqHvag32RCw:
 nop
 .data
-.globl b__MGIAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
+.weak b__MGIAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
 .type b__MGIAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR,%object
 b__MGIAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR:
 .space __SIZEOF_POINTER__
@@ -4198,7 +4198,7 @@
 b__MA7naqebvq4uvqy7znantre4I1_021OfFreivprAbgvsvpngvbaP2RAF_2fcVAF2_20VFreivprAbgvsvpngvbaRRR:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF_4uvqy7znantre4I1_215VPyvragPnyyonpxRiRRAF_2fcVG_RRF9_
+.weak b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF_4uvqy7znantre4I1_215VPyvragPnyyonpxRiRRAF_2fcVG_RRF9_
 .type b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF_4uvqy7znantre4I1_215VPyvragPnyyonpxRiRRAF_2fcVG_RRF9_,%function
 b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF_4uvqy7znantre4I1_215VPyvragPnyyonpxRiRRAF_2fcVG_RRF9_:
 nop
@@ -4213,17 +4213,17 @@
 b__MAX7naqebvq8uneqjner6Cnepry10ernqQbhoyrRCq:
 nop
 .text
-.globl b__MA7naqebvq8uneqjneryfVN4_pRREAF0_10GrkgBhgchgRF4_EXG_
+.weak b__MA7naqebvq8uneqjneryfVN4_pRREAF0_10GrkgBhgchgRF4_EXG_
 .type b__MA7naqebvq8uneqjneryfVN4_pRREAF0_10GrkgBhgchgRF4_EXG_,%function
 b__MA7naqebvq8uneqjneryfVN4_pRREAF0_10GrkgBhgchgRF4_EXG_:
 nop
 .text
-.globl b__MAFg3__15qrdhrVAF_7__fgngrVpRRAF_9nyybpngbeVF2_RRR19__nqq_onpx_pncnpvglRi
+.weak b__MAFg3__15qrdhrVAF_7__fgngrVpRRAF_9nyybpngbeVF2_RRR19__nqq_onpx_pncnpvglRi
 .type b__MAFg3__15qrdhrVAF_7__fgngrVpRRAF_9nyybpngbeVF2_RRR19__nqq_onpx_pncnpvglRi,%function
 b__MAFg3__15qrdhrVAF_7__fgngrVpRRAF_9nyybpngbeVF2_RRR19__nqq_onpx_pncnpvglRi:
 nop
 .text
-.globl b__MAFg3__114__fcyvg_ohssreVCAF_8shapgvbaVSiiRRREAF_9nyybpngbeVF4_RRR10chfu_sebagREXF4_
+.weak b__MAFg3__114__fcyvg_ohssreVCAF_8shapgvbaVSiiRRREAF_9nyybpngbeVF4_RRR10chfu_sebagREXF4_
 .type b__MAFg3__114__fcyvg_ohssreVCAF_8shapgvbaVSiiRRREAF_9nyybpngbeVF4_RRR10chfu_sebagREXF4_,%function
 b__MAFg3__114__fcyvg_ohssreVCAF_8shapgvbaVSiiRRREAF_9nyybpngbeVF4_RRR10chfu_sebagREXF4_:
 nop
@@ -4263,7 +4263,7 @@
 b__MGPA7naqebvq4uvqy7znantre4I1_218OcUjFreivprZnantreR0_AF1_4I1_115VFreivprZnantreR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__15qrdhrVAF_7__fgngrVpRRAF_9nyybpngbeVF2_RRR8cbc_onpxRi
+.weak b__MAFg3__15qrdhrVAF_7__fgngrVpRRAF_9nyybpngbeVF2_RRR8cbc_onpxRi
 .type b__MAFg3__15qrdhrVAF_7__fgngrVpRRAF_9nyybpngbeVF2_RRR8cbc_onpxRi,%function
 b__MAFg3__15qrdhrVAF_7__fgngrVpRRAF_9nyybpngbeVF2_RRR8cbc_onpxRi:
 nop
@@ -4273,7 +4273,7 @@
 b__MA7naqebvq8uneqjner23wbvaOvaqreEcpGuernqcbbyRi:
 nop
 .data
-.globl b__MGPA7naqebvq8uneqjner7qrgnvyf6JnvgreR0_AF_4uvqy7znantre4I1_020VFreivprAbgvsvpngvbaR
+.weak b__MGPA7naqebvq8uneqjner7qrgnvyf6JnvgreR0_AF_4uvqy7znantre4I1_020VFreivprAbgvsvpngvbaR
 .type b__MGPA7naqebvq8uneqjner7qrgnvyf6JnvgreR0_AF_4uvqy7znantre4I1_020VFreivprAbgvsvpngvbaR,%object
 b__MGPA7naqebvq8uneqjner7qrgnvyf6JnvgreR0_AF_4uvqy7znantre4I1_020VFreivprAbgvsvpngvbaR:
 .space __SIZEOF_POINTER__
@@ -4283,12 +4283,12 @@
 b__MGGA7naqebvq4uvqy4onfr4I1_08OcUjOnfrR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIA7naqebvq4uvqy4onfr4I1_06OfOnfrR
+.weak b__MGIA7naqebvq4uvqy4onfr4I1_06OfOnfrR
 .type b__MGIA7naqebvq4uvqy4onfr4I1_06OfOnfrR,%object
 b__MGIA7naqebvq4uvqy4onfr4I1_06OfOnfrR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAXFg3__121__rzcgl_aba_bja_fgngrVpR6__rkrpREAF_7__fgngrVpRR
+.weak b__MAXFg3__121__rzcgl_aba_bja_fgngrVpR6__rkrpREAF_7__fgngrVpRR
 .type b__MAXFg3__121__rzcgl_aba_bja_fgngrVpR6__rkrpREAF_7__fgngrVpRR,%function
 b__MAXFg3__121__rzcgl_aba_bja_fgngrVpR6__rkrpREAF_7__fgngrVpRR:
 nop
@@ -4313,7 +4313,7 @@
 b__MA7naqebvq8uneqjner6FgnghfP2RvvCXp:
 nop
 .text
-.globl b__MA7naqebvq4onfr9CnefrHvagVlRRoCXpCG_F4_o
+.weak b__MA7naqebvq4onfr9CnefrHvagVlRRoCXpCG_F4_o
 .type b__MA7naqebvq4onfr9CnefrHvagVlRRoCXpCG_F4_o,%function
 b__MA7naqebvq4onfr9CnefrHvagVlRRoCXpCG_F4_o:
 nop
@@ -4323,7 +4323,7 @@
 b__MA7naqebvq4uvqy7znantre4I1_115VFreivprZnantre21frgUNYVafgehzragngvbaRi:
 nop
 .data
-.globl b__MGPAFg3__114onfvp_vsfgernzVpAF_11pune_genvgfVpRRRR0_AF_13onfvp_vfgernzVpF2_RR
+.weak b__MGPAFg3__114onfvp_vsfgernzVpAF_11pune_genvgfVpRRRR0_AF_13onfvp_vfgernzVpF2_RR
 .type b__MGPAFg3__114onfvp_vsfgernzVpAF_11pune_genvgfVpRRRR0_AF_13onfvp_vfgernzVpF2_RR,%object
 b__MGPAFg3__114onfvp_vsfgernzVpAF_11pune_genvgfVpRRRR0_AF_13onfvp_vfgernzVpF2_RR:
 .space __SIZEOF_POINTER__
@@ -4333,17 +4333,17 @@
 b__MAX7naqebvq8uneqjner6Cnepry8ernqObbyRCo:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRR:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF_4uvqy7znantre4I1_115VFreivprZnantreRAF3_4onfr4I1_05VOnfrRAF5_18OcUjFreivprZnantreRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF_4uvqy7znantre4I1_115VFreivprZnantreRAF3_4onfr4I1_05VOnfrRAF5_18OcUjFreivprZnantreRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo
 .type b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF_4uvqy7znantre4I1_115VFreivprZnantreRAF3_4onfr4I1_05VOnfrRAF5_18OcUjFreivprZnantreRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF_4uvqy7znantre4I1_115VFreivprZnantreRAF3_4onfr4I1_05VOnfrRAF5_18OcUjFreivprZnantreRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo:
 nop
 .text
-.globl b__MAFg3__116__bjaf_bar_fgngrVpRQ2Ri
+.weak b__MAFg3__116__bjaf_bar_fgngrVpRQ2Ri
 .type b__MAFg3__116__bjaf_bar_fgngrVpRQ2Ri,%function
 b__MAFg3__116__bjaf_bar_fgngrVpRQ2Ri:
 nop
@@ -4373,17 +4373,17 @@
 b__MA7naqebvq4uvqy4onfr4I1_06OfOnfr13nqqBarjnlGnfxRAFg3__18shapgvbaVSiiRRR:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVCAF_8uneqjner9OUjOvaqreRR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVCAF_8uneqjner9OUjOvaqreRR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVCAF_8uneqjner9OUjOvaqreRR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVCAF_8uneqjner9OUjOvaqreRR15qb_zbir_sbejneqRCiCXiz:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_8Fgevat16RAF_2fcVAF_8uneqjner7VOvaqreRRRRRR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_8Fgevat16RAF_2fcVAF_8uneqjner7VOvaqreRRRRRR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_8Fgevat16RAF_2fcVAF_8uneqjner7VOvaqreRRRRRR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_8Fgevat16RAF_2fcVAF_8uneqjner7VOvaqreRRRRRR12qb_pbafgehpgRCiz:
 nop
 .data
-.globl b__MGIA7naqebvq4uvqy7znantre4I1_016OfFreivprZnantreR
+.weak b__MGIA7naqebvq4uvqy7znantre4I1_016OfFreivprZnantreR
 .type b__MGIA7naqebvq4uvqy7znantre4I1_016OfFreivprZnantreR,%object
 b__MGIA7naqebvq4uvqy7znantre4I1_016OfFreivprZnantreR:
 .space __SIZEOF_POINTER__
@@ -4438,12 +4438,12 @@
 b__MA7naqebvq8uneqjner23trgBePerngrPnpurqOvaqreRCAF_4uvqy4onfr4I1_05VOnfrR:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF_4uvqy7znantre4I1_215VFreivprZnantreRAF4_4I1_015VFreivprZnantreRAF5_18OcUjFreivprZnantreRRRAF0_6ErgheaVAF_2fcVG_RRRRAFO_VG0_RRCXpo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF_4uvqy7znantre4I1_215VFreivprZnantreRAF4_4I1_015VFreivprZnantreRAF5_18OcUjFreivprZnantreRRRAF0_6ErgheaVAF_2fcVG_RRRRAFO_VG0_RRCXpo
 .type b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF_4uvqy7znantre4I1_215VFreivprZnantreRAF4_4I1_015VFreivprZnantreRAF5_18OcUjFreivprZnantreRRRAF0_6ErgheaVAF_2fcVG_RRRRAFO_VG0_RRCXpo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF_4uvqy7znantre4I1_215VFreivprZnantreRAF4_4I1_015VFreivprZnantreRAF5_18OcUjFreivprZnantreRRRAF0_6ErgheaVAF_2fcVG_RRRRAFO_VG0_RRCXpo:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVvR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq6IrpgbeVvR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq6IrpgbeVvR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq6IrpgbeVvR12qb_pbafgehpgRCiz:
 nop
@@ -4458,12 +4458,12 @@
 b__MA7naqebvq4uvqy4onfr4I1_08OaUjOnfr25_uvqy_vagresnprQrfpevcgbeRCF3_EXAF_8uneqjner6CnepryRCF6_AFg3__18shapgvbaVSiEF6_RRR:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_8Fgevat16RAF_2fcVAF_8uneqjner7VOvaqreRRRRRR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_8Fgevat16RAF_2fcVAF_8uneqjner7VOvaqreRRRRRR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_8Fgevat16RAF_2fcVAF_8uneqjner7VOvaqreRRRRRR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_8Fgevat16RAF_2fcVAF_8uneqjner7VOvaqreRRRRRR7qb_pbclRCiCXiz:
 nop
 .text
-.globl b__MAFg3__112__qrdhr_onfrVAF_8shapgvbaVSiiRRRAF_9nyybpngbeVF3_RRR5pyrneRi
+.weak b__MAFg3__112__qrdhr_onfrVAF_8shapgvbaVSiiRRRAF_9nyybpngbeVF3_RRR5pyrneRi
 .type b__MAFg3__112__qrdhr_onfrVAF_8shapgvbaVSiiRRRAF_9nyybpngbeVF3_RRR5pyrneRi,%function
 b__MAFg3__112__qrdhr_onfrVAF_8shapgvbaVSiiRRRAF_9nyybpngbeVF3_RRR5pyrneRi:
 nop
@@ -4483,12 +4483,12 @@
 b__MA7naqebvq8uneqjner11uvqy_fgevatP2RCXpz:
 nop
 .text
-.globl b__MAFg3__120__funerq_cge_rzcynprVA7naqebvq8uneqjner7qrgnvyf17FlapuebavmrqDhrhrVAF_8shapgvbaVSiiRRRRRAF_9nyybpngbeVF8_RRR21__ba_mreb_funerq_jrnxRi
+.weak b__MAFg3__120__funerq_cge_rzcynprVA7naqebvq8uneqjner7qrgnvyf17FlapuebavmrqDhrhrVAF_8shapgvbaVSiiRRRRRAF_9nyybpngbeVF8_RRR21__ba_mreb_funerq_jrnxRi
 .type b__MAFg3__120__funerq_cge_rzcynprVA7naqebvq8uneqjner7qrgnvyf17FlapuebavmrqDhrhrVAF_8shapgvbaVSiiRRRRRAF_9nyybpngbeVF8_RRR21__ba_mreb_funerq_jrnxRi,%function
 b__MAFg3__120__funerq_cge_rzcynprVA7naqebvq8uneqjner7qrgnvyf17FlapuebavmrqDhrhrVAF_8shapgvbaVSiiRRRRRAF_9nyybpngbeVF8_RRR21__ba_mreb_funerq_jrnxRi:
 nop
 .text
-.globl b__MAFg3__16irpgbeVvAF_9nyybpngbeVvRRRP2VAF_21__gerr_pbafg_vgrengbeVvCAF_11__gerr_abqrVvCiRRyRRRRG_AF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVFO_RR5inyhrfe16vf_pbafgehpgvoyrVvAF_15vgrengbe_genvgfVFO_R9ersreraprRRR5inyhrRFO_R4glcrR
+.weak b__MAFg3__16irpgbeVvAF_9nyybpngbeVvRRRP2VAF_21__gerr_pbafg_vgrengbeVvCAF_11__gerr_abqrVvCiRRyRRRRG_AF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVFO_RR5inyhrfe16vf_pbafgehpgvoyrVvAF_15vgrengbe_genvgfVFO_R9ersreraprRRR5inyhrRFO_R4glcrR
 .type b__MAFg3__16irpgbeVvAF_9nyybpngbeVvRRRP2VAF_21__gerr_pbafg_vgrengbeVvCAF_11__gerr_abqrVvCiRRyRRRRG_AF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVFO_RR5inyhrfe16vf_pbafgehpgvoyrVvAF_15vgrengbe_genvgfVFO_R9ersreraprRRR5inyhrRFO_R4glcrR,%function
 b__MAFg3__16irpgbeVvAF_9nyybpngbeVvRRRP2VAF_21__gerr_pbafg_vgrengbeVvCAF_11__gerr_abqrVvCiRRyRRRRG_AF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVFO_RR5inyhrfe16vf_pbafgehpgvoyrVvAF_15vgrengbe_genvgfVFO_R9ersreraprRRR5inyhrRFO_R4glcrR:
 nop
@@ -4498,7 +4498,7 @@
 b__MAX7naqebvq8uneqjner6Cnepry12ernqFgevat16Ri:
 nop
 .text
-.globl b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR18__cnefr_njx_rfpncrVAF_11__jenc_vgreVCXpRRRRG_F9_F9_CAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
+.weak b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR18__cnefr_njx_rfpncrVAF_11__jenc_vgreVCXpRRRRG_F9_F9_CAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
 .type b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR18__cnefr_njx_rfpncrVAF_11__jenc_vgreVCXpRRRRG_F9_F9_CAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR,%function
 b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR18__cnefr_njx_rfpncrVAF_11__jenc_vgreVCXpRRRRG_F9_F9_CAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR:
 nop
@@ -4538,22 +4538,22 @@
 b__MA7naqebvq4uvqy7znantre4I1_023OcUjFreivprAbgvsvpngvba13hayvaxGbQrnguREXAF_2fcVAF_8uneqjner20uvqy_qrngu_erpvcvragRRR:
 nop
 .text
-.globl b__MA7naqebvq8uneqjneryfVzRREAF0_10GrkgBhgchgRF3_EXG_
+.weak b__MA7naqebvq8uneqjneryfVzRREAF0_10GrkgBhgchgRF3_EXG_
 .type b__MA7naqebvq8uneqjneryfVzRREAF0_10GrkgBhgchgRF3_EXG_,%function
 b__MA7naqebvq8uneqjneryfVzRREAF0_10GrkgBhgchgRF3_EXG_:
 nop
 .data
-.globl b__MGIAFg3__111__nygreangrVpRR
+.weak b__MGIAFg3__111__nygreangrVpRR
 .type b__MGIAFg3__111__nygreangrVpRR,%object
 b__MGIAFg3__111__nygreangrVpRR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MMA7naqebvq8uneqjner25CnffguebhtuFreivprZnantre9qrohtQhzcRAFg3__18shapgvbaVSiEXAF0_8uvqy_irpVAF_4uvqy7znantre4I1_015VFreivprZnantre17VafgnaprQrohtVasbRRRRRRR18unyYvoCnguIaqxFc64
+.weak b__MMA7naqebvq8uneqjner25CnffguebhtuFreivprZnantre9qrohtQhzcRAFg3__18shapgvbaVSiEXAF0_8uvqy_irpVAF_4uvqy7znantre4I1_015VFreivprZnantre17VafgnaprQrohtVasbRRRRRRR18unyYvoCnguIaqxFc64
 .type b__MMA7naqebvq8uneqjner25CnffguebhtuFreivprZnantre9qrohtQhzcRAFg3__18shapgvbaVSiEXAF0_8uvqy_irpVAF_4uvqy7znantre4I1_015VFreivprZnantre17VafgnaprQrohtVasbRRRRRRR18unyYvoCnguIaqxFc64,%object
 b__MMA7naqebvq8uneqjner25CnffguebhtuFreivprZnantre9qrohtQhzcRAFg3__18shapgvbaVSiEXAF0_8uvqy_irpVAF_4uvqy7znantre4I1_015VFreivprZnantre17VafgnaprQrohtVasbRRRRRRR18unyYvoCnguIaqxFc64:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAXFg3__112ertrk_genvgfVpR19__genafsbez_cevznelVCpRRAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRG_FN_p
+.weak b__MAXFg3__112ertrk_genvgfVpR19__genafsbez_cevznelVCpRRAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRG_FN_p
 .type b__MAXFg3__112ertrk_genvgfVpR19__genafsbez_cevznelVCpRRAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRG_FN_p,%function
 b__MAXFg3__112ertrk_genvgfVpR19__genafsbez_cevznelVCpRRAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRG_FN_p:
 nop
@@ -4573,7 +4573,7 @@
 b__MA7naqebvq4uvqy7znantre4I1_018OcUjFreivprZnantre4cvatRi:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF_4uvqy7znantre4I1_215VPyvragPnyyonpxRAF3_4onfr4I1_05VOnfrRAF5_18OcUjPyvragPnyyonpxRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF_4uvqy7znantre4I1_215VPyvragPnyyonpxRAF3_4onfr4I1_05VOnfrRAF5_18OcUjPyvragPnyyonpxRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo
 .type b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF_4uvqy7znantre4I1_215VPyvragPnyyonpxRAF3_4onfr4I1_05VOnfrRAF5_18OcUjPyvragPnyyonpxRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF_4uvqy7znantre4I1_215VPyvragPnyyonpxRAF3_4onfr4I1_05VOnfrRAF5_18OcUjPyvragPnyyonpxRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo:
 nop
@@ -4583,12 +4583,12 @@
 b__MA7naqebvq8uneqjner10OcUjOvaqre20baVapFgebatNggrzcgrqRwCXi:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVCXiAF_8uneqjner10OcUjOvaqre13BowrpgZnantre7ragel_gRRRR8qb_fcyngRCiF3_z
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVCXiAF_8uneqjner10OcUjOvaqre13BowrpgZnantre7ragel_gRRRR8qb_fcyngRCiF3_z
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVCXiAF_8uneqjner10OcUjOvaqre13BowrpgZnantre7ragel_gRRRR8qb_fcyngRCiF3_z,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVCXiAF_8uneqjner10OcUjOvaqre13BowrpgZnantre7ragel_gRRRR8qb_fcyngRCiF3_z:
 nop
 .text
-.globl b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR23__cnefr_DHBGRQ_PUNE_RERVAF_11__jenc_vgreVCXpRRRRG_F9_F9_
+.weak b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR23__cnefr_DHBGRQ_PUNE_RERVAF_11__jenc_vgreVCXpRRRRG_F9_F9_
 .type b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR23__cnefr_DHBGRQ_PUNE_RERVAF_11__jenc_vgreVCXpRRRRG_F9_F9_,%function
 b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR23__cnefr_DHBGRQ_PUNE_RERVAF_11__jenc_vgreVCXpRRRRG_F9_F9_:
 nop
@@ -4598,12 +4598,12 @@
 b__MA7naqebvq8uneqjner14VCPGuernqFgngr8fuhgqbjaRi:
 nop
 .data
-.globl b__MGIAFg3__121__rzcgl_aba_bja_fgngrVpRR
+.weak b__MGIAFg3__121__rzcgl_aba_bja_fgngrVpRR
 .type b__MGIAFg3__121__rzcgl_aba_bja_fgngrVpRR,%object
 b__MGIAFg3__121__rzcgl_aba_bja_fgngrVpRR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MTIMA7naqebvq8uneqjner25CnffguebhtuFreivprZnantre9qrohtQhzcRAFg3__18shapgvbaVSiEXAF0_8uvqy_irpVAF_4uvqy7znantre4I1_015VFreivprZnantre17VafgnaprQrohtVasbRRRRRRR18unyYvoCnguIaqxFc64
+.weak b__MTIMA7naqebvq8uneqjner25CnffguebhtuFreivprZnantre9qrohtQhzcRAFg3__18shapgvbaVSiEXAF0_8uvqy_irpVAF_4uvqy7znantre4I1_015VFreivprZnantre17VafgnaprQrohtVasbRRRRRRR18unyYvoCnguIaqxFc64
 .type b__MTIMA7naqebvq8uneqjner25CnffguebhtuFreivprZnantre9qrohtQhzcRAFg3__18shapgvbaVSiEXAF0_8uvqy_irpVAF_4uvqy7znantre4I1_015VFreivprZnantre17VafgnaprQrohtVasbRRRRRRR18unyYvoCnguIaqxFc64,%object
 b__MTIMA7naqebvq8uneqjner25CnffguebhtuFreivprZnantre9qrohtQhzcRAFg3__18shapgvbaVSiEXAF0_8uvqy_irpVAF_4uvqy7znantre4I1_015VFreivprZnantre17VafgnaprQrohtVasbRRRRRRR18unyYvoCnguIaqxFc64:
 .space __SIZEOF_POINTER__
@@ -4628,7 +4628,7 @@
 b__MGGA7naqebvq4uvqy7znantre4I1_218OcUjFreivprZnantreR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_8uneqjner10OcUjOvaqre8BovghnelRR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq6IrpgbeVAF_8uneqjner10OcUjOvaqre8BovghnelRR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq6IrpgbeVAF_8uneqjner10OcUjOvaqre8BovghnelRR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq6IrpgbeVAF_8uneqjner10OcUjOvaqre8BovghnelRR12qb_pbafgehpgRCiz:
 nop
@@ -4643,7 +4643,7 @@
 b__MA7naqebvq8uneqjner6Cnepry11jevgrHvag16Rg:
 nop
 .data
-.globl b__MTIMA7naqebvq8uneqjner25CnffguebhtuFreivprZnantre9qrohtQhzcRAFg3__18shapgvbaVSiEXAF0_8uvqy_irpVAF_4uvqy7znantre4I1_015VFreivprZnantre17VafgnaprQrohtVasbRRRRRRR9fNyyCnguf
+.weak b__MTIMA7naqebvq8uneqjner25CnffguebhtuFreivprZnantre9qrohtQhzcRAFg3__18shapgvbaVSiEXAF0_8uvqy_irpVAF_4uvqy7znantre4I1_015VFreivprZnantre17VafgnaprQrohtVasbRRRRRRR9fNyyCnguf
 .type b__MTIMA7naqebvq8uneqjner25CnffguebhtuFreivprZnantre9qrohtQhzcRAFg3__18shapgvbaVSiEXAF0_8uvqy_irpVAF_4uvqy7znantre4I1_015VFreivprZnantre17VafgnaprQrohtVasbRRRRRRR9fNyyCnguf,%object
 b__MTIMA7naqebvq8uneqjner25CnffguebhtuFreivprZnantre9qrohtQhzcRAFg3__18shapgvbaVSiEXAF0_8uvqy_irpVAF_4uvqy7znantre4I1_015VFreivprZnantre17VafgnaprQrohtVasbRRRRRRR9fNyyCnguf:
 .space __SIZEOF_POINTER__
@@ -4653,7 +4653,7 @@
 b__MGPA7naqebvq4uvqy7znantre4I1_218OcUjPyvragPnyyonpxR16_AF_8uneqjner11OcUjErsOnfrR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq8uneqjner6Cnepry10ernqBowrpgV22ovaqre_sq_neenl_bowrpgRRCXG_Cz
+.weak b__MAX7naqebvq8uneqjner6Cnepry10ernqBowrpgV22ovaqre_sq_neenl_bowrpgRRCXG_Cz
 .type b__MAX7naqebvq8uneqjner6Cnepry10ernqBowrpgV22ovaqre_sq_neenl_bowrpgRRCXG_Cz,%function
 b__MAX7naqebvq8uneqjner6Cnepry10ernqBowrpgV22ovaqre_sq_neenl_bowrpgRRCXG_Cz:
 nop
@@ -4673,7 +4673,7 @@
 b__MGGA7naqebvq4uvqy7znantre4I1_115VFreivprZnantreR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__16irpgbeVAF_4cnveVzCXpRRAF_9nyybpngbeVF4_RRR8__nccraqRz
+.weak b__MAFg3__16irpgbeVAF_4cnveVzCXpRRAF_9nyybpngbeVF4_RRR8__nccraqRz
 .type b__MAFg3__16irpgbeVAF_4cnveVzCXpRRAF_9nyybpngbeVF4_RRR8__nccraqRz,%function
 b__MAFg3__16irpgbeVAF_4cnveVzCXpRRAF_9nyybpngbeVF4_RRR8__nccraqRz:
 nop
@@ -4718,7 +4718,7 @@
 b__MAX7naqebvq8uneqjner6Cnepry10ernqHvag16RCg:
 nop
 .data
-.globl b__MGIA7naqebvq6IrpgbeVAF_8uneqjner12CebprffFgngr12unaqyr_ragelRRR
+.weak b__MGIA7naqebvq6IrpgbeVAF_8uneqjner12CebprffFgngr12unaqyr_ragelRRR
 .type b__MGIA7naqebvq6IrpgbeVAF_8uneqjner12CebprffFgngr12unaqyr_ragelRRR,%object
 b__MGIA7naqebvq6IrpgbeVAF_8uneqjner12CebprffFgngr12unaqyr_ragelRRR:
 .space __SIZEOF_POINTER__
@@ -4728,12 +4728,12 @@
 b__MA7naqebvq8uneqjner7qrgnvyf19trgOfPbafgehpgbeZncRi:
 nop
 .text
-.globl b__MAFg3__16irpgbeVCXpAF_9nyybpngbeVF2_RRRP2REXF5_
+.weak b__MAFg3__16irpgbeVCXpAF_9nyybpngbeVF2_RRRP2REXF5_
 .type b__MAFg3__16irpgbeVCXpAF_9nyybpngbeVF2_RRRP2REXF5_,%function
 b__MAFg3__16irpgbeVCXpAF_9nyybpngbeVF2_RRRP2REXF5_:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner6Cnepry11jevgrBowrpgV16ovaqre_sq_bowrpgRRvEXG_
+.weak b__MA7naqebvq8uneqjner6Cnepry11jevgrBowrpgV16ovaqre_sq_bowrpgRRvEXG_
 .type b__MA7naqebvq8uneqjner6Cnepry11jevgrBowrpgV16ovaqre_sq_bowrpgRRvEXG_,%function
 b__MA7naqebvq8uneqjner6Cnepry11jevgrBowrpgV16ovaqre_sq_bowrpgRRvEXG_:
 nop
@@ -4743,7 +4743,7 @@
 b__MAX7naqebvq8uneqjner6Cnepry10ernqOhssreRzCzwzzCCXi:
 nop
 .text
-.globl b__MAXFg3__118__onpx_ers_pbyyngrVpAF_12ertrk_genvgfVpRRR6__rkrpREAF_7__fgngrVpRR
+.weak b__MAXFg3__118__onpx_ers_pbyyngrVpAF_12ertrk_genvgfVpRRR6__rkrpREAF_7__fgngrVpRR
 .type b__MAXFg3__118__onpx_ers_pbyyngrVpAF_12ertrk_genvgfVpRRR6__rkrpREAF_7__fgngrVpRR,%function
 b__MAXFg3__118__onpx_ers_pbyyngrVpAF_12ertrk_genvgfVpRRR6__rkrpREAF_7__fgngrVpRR:
 nop
@@ -4803,7 +4803,7 @@
 b__MA7naqebvq8uneqjner6CnepryQ1Ri:
 nop
 .data
-.globl b__MGPA7naqebvq8uneqjner7qrgnvyf6JnvgreR0_AF_4uvqy4onfr4I1_05VOnfrR
+.weak b__MGPA7naqebvq8uneqjner7qrgnvyf6JnvgreR0_AF_4uvqy4onfr4I1_05VOnfrR
 .type b__MGPA7naqebvq8uneqjner7qrgnvyf6JnvgreR0_AF_4uvqy4onfr4I1_05VOnfrR,%object
 b__MGPA7naqebvq8uneqjner7qrgnvyf6JnvgreR0_AF_4uvqy4onfr4I1_05VOnfrR:
 .space __SIZEOF_POINTER__
@@ -4838,7 +4838,7 @@
 b__MA7naqebvq8uneqjner16frgErdhrfgvatFvqREXAF_2fcVAF_4uvqy4onfr4I1_05VOnfrRRRo:
 nop
 .text
-.globl b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR20__cnefr_pynff_rfpncrVCXpRRG_F7_F7_EAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRCAF_20__oenpxrg_rkcerffvbaVpF2_RR
+.weak b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR20__cnefr_pynff_rfpncrVCXpRRG_F7_F7_EAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRCAF_20__oenpxrg_rkcerffvbaVpF2_RR
 .type b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR20__cnefr_pynff_rfpncrVCXpRRG_F7_F7_EAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRCAF_20__oenpxrg_rkcerffvbaVpF2_RR,%function
 b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR20__cnefr_pynff_rfpncrVCXpRRG_F7_F7_EAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRCAF_20__oenpxrg_rkcerffvbaVpF2_RR:
 nop
@@ -4858,12 +4858,12 @@
 b__MA7naqebvq4uvqy7znantre4I1_218OcUjFreivprZnantre4cvatRi:
 nop
 .text
-.globl b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9conpxsnvyRv
+.weak b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9conpxsnvyRv
 .type b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9conpxsnvyRv,%function
 b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9conpxsnvyRv:
 nop
 .text
-.globl b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9haqresybjRi
+.weak b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9haqresybjRi
 .type b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9haqresybjRi,%function
 b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9haqresybjRi:
 nop
@@ -4893,7 +4893,7 @@
 b__MAX7naqebvq8uneqjner11uvqy_unaqyrpiCX13angvir_unaqyrRi:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFR_RRECAF_15__gerr_raq_abqrVFE_RREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFR_RRECAF_15__gerr_raq_abqrVFE_RREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFR_RRECAF_15__gerr_raq_abqrVFE_RREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFR_RRECAF_15__gerr_raq_abqrVFE_RREXG_:
 nop
@@ -4918,12 +4918,12 @@
 b__MGi0_a24_A7naqebvq8uneqjner10OcUjOvaqreQ0Ri:
 nop
 .text
-.globl b__MAFg3__120__funerq_cge_cbvagreVCAF_13__rzcgl_fgngrVpRRAF_14qrsnhyg_qryrgrVF2_RRAF_9nyybpngbeVF2_RRR16__ba_mreb_funerqRi
+.weak b__MAFg3__120__funerq_cge_cbvagreVCAF_13__rzcgl_fgngrVpRRAF_14qrsnhyg_qryrgrVF2_RRAF_9nyybpngbeVF2_RRR16__ba_mreb_funerqRi
 .type b__MAFg3__120__funerq_cge_cbvagreVCAF_13__rzcgl_fgngrVpRRAF_14qrsnhyg_qryrgrVF2_RRAF_9nyybpngbeVF2_RRR16__ba_mreb_funerqRi,%function
 b__MAFg3__120__funerq_cge_cbvagreVCAF_13__rzcgl_fgngrVpRRAF_14qrsnhyg_qryrgrVF2_RRAF_9nyybpngbeVF2_RRR16__ba_mreb_funerqRi:
 nop
 .data
-.globl b__MGIAFg3__114onfvp_vsfgernzVpAF_11pune_genvgfVpRRRR
+.weak b__MGIAFg3__114onfvp_vsfgernzVpAF_11pune_genvgfVpRRRR
 .type b__MGIAFg3__114onfvp_vsfgernzVpAF_11pune_genvgfVpRRRR,%object
 b__MGIAFg3__114onfvp_vsfgernzVpAF_11pune_genvgfVpRRRR:
 .space __SIZEOF_POINTER__
@@ -4953,7 +4953,7 @@
 b__MA7naqebvq4uvqy4onfr4I1_08OaUjOnfrP1REXAF_2fcVAF2_5VOnfrRRR:
 nop
 .data
-.globl b__MGIA7naqebvq6IrpgbeVAF_8uneqjner10OcUjOvaqre8BovghnelRRR
+.weak b__MGIA7naqebvq6IrpgbeVAF_8uneqjner10OcUjOvaqre8BovghnelRRR
 .type b__MGIA7naqebvq6IrpgbeVAF_8uneqjner10OcUjOvaqre8BovghnelRRR,%object
 b__MGIA7naqebvq6IrpgbeVAF_8uneqjner10OcUjOvaqre8BovghnelRRR:
 .space __SIZEOF_POINTER__
@@ -4978,7 +4978,7 @@
 b__MA7naqebvq8uneqjner7qrgnvyf19trgOaPbafgehpgbeZncRi:
 nop
 .data
-.globl b__MGPA7naqebvq4uvqy7znantre4I1_021OfFreivprAbgvsvpngvbaR0_AF2_20VFreivprAbgvsvpngvbaR
+.weak b__MGPA7naqebvq4uvqy7znantre4I1_021OfFreivprAbgvsvpngvbaR0_AF2_20VFreivprAbgvsvpngvbaR
 .type b__MGPA7naqebvq4uvqy7znantre4I1_021OfFreivprAbgvsvpngvbaR0_AF2_20VFreivprAbgvsvpngvbaR,%object
 b__MGPA7naqebvq4uvqy7znantre4I1_021OfFreivprAbgvsvpngvbaR0_AF2_20VFreivprAbgvsvpngvbaR:
 .space __SIZEOF_POINTER__
@@ -4988,12 +4988,12 @@
 b__MA7naqebvq4uvqy7znantre4I1_215VPyvragPnyyonpx13gelTrgFreivprREXAFg3__112onfvp_fgevatVpAF4_11pune_genvgfVpRRAF4_9nyybpngbeVpRRRRo:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVvR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq6IrpgbeVvR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq6IrpgbeVvR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq6IrpgbeVvR10qb_qrfgeblRCiz:
 nop
 .text
-.globl b__MAXFg3__111__nygreangrVpR6__rkrpREAF_7__fgngrVpRR
+.weak b__MAXFg3__111__nygreangrVpR6__rkrpREAF_7__fgngrVpRR
 .type b__MAXFg3__111__nygreangrVpR6__rkrpREAF_7__fgngrVpRR,%function
 b__MAXFg3__111__nygreangrVpR6__rkrpREAF_7__fgngrVpRR:
 nop
@@ -5023,7 +5023,7 @@
 b__MAX7naqebvq8uneqjner6Cnepry11ernqCbvagreRCz:
 nop
 .text
-.globl b__MAXFg3__110__y_napubeVpR6__rkrpREAF_7__fgngrVpRR
+.weak b__MAXFg3__110__y_napubeVpR6__rkrpREAF_7__fgngrVpRR
 .type b__MAXFg3__110__y_napubeVpR6__rkrpREAF_7__fgngrVpRR,%function
 b__MAXFg3__110__y_napubeVpR6__rkrpREAF_7__fgngrVpRR:
 nop
@@ -5098,12 +5098,12 @@
 b__MAX7naqebvq8uneqjner6Cnepry7bowrpgfRi:
 nop
 .text
-.globl b__MAXFg3__16__ybbcVpR12__rkrp_fcyvgRoEAF_7__fgngrVpRR
+.weak b__MAXFg3__16__ybbcVpR12__rkrp_fcyvgRoEAF_7__fgngrVpRR
 .type b__MAXFg3__16__ybbcVpR12__rkrp_fcyvgRoEAF_7__fgngrVpRR,%function
 b__MAXFg3__16__ybbcVpR12__rkrp_fcyvgRoEAF_7__fgngrVpRR:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF_4uvqy7znantre4I1_020VFreivprAbgvsvpngvbaRiRRAF_2fcVG_RRF9_
+.weak b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF_4uvqy7znantre4I1_020VFreivprAbgvsvpngvbaRiRRAF_2fcVG_RRF9_
 .type b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF_4uvqy7znantre4I1_020VFreivprAbgvsvpngvbaRiRRAF_2fcVG_RRF9_,%function
 b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF_4uvqy7znantre4I1_020VFreivprAbgvsvpngvbaRiRRAF_2fcVG_RRF9_:
 nop
@@ -5138,7 +5138,7 @@
 b__MGGA7naqebvq8uneqjner7qrgnvyf21PyvragPbhagrePnyyonpxR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq2jcVAF1_4uvqy4onfr4I1_05VOnfrRRRAF_9nyybpngbeVF7_RRR21__chfu_onpx_fybj_cnguVEXF7_RRiBG_
+.weak b__MAFg3__16irpgbeVA7naqebvq2jcVAF1_4uvqy4onfr4I1_05VOnfrRRRAF_9nyybpngbeVF7_RRR21__chfu_onpx_fybj_cnguVEXF7_RRiBG_
 .type b__MAFg3__16irpgbeVA7naqebvq2jcVAF1_4uvqy4onfr4I1_05VOnfrRRRAF_9nyybpngbeVF7_RRR21__chfu_onpx_fybj_cnguVEXF7_RRiBG_,%function
 b__MAFg3__16irpgbeVA7naqebvq2jcVAF1_4uvqy4onfr4I1_05VOnfrRRRAF_9nyybpngbeVF7_RRR21__chfu_onpx_fybj_cnguVEXF7_RRiBG_:
 nop
@@ -5148,7 +5148,7 @@
 b__MA7naqebvq4uvqy7znantre4I1_020VFreivprAbgvsvpngvba4cvatRi:
 nop
 .text
-.globl b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR22__cnefr_qrpvzny_rfpncrVCXpRRG_F7_F7_
+.weak b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR22__cnefr_qrpvzny_rfpncrVCXpRRG_F7_F7_
 .type b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR22__cnefr_qrpvzny_rfpncrVCXpRRG_F7_F7_,%function
 b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR22__cnefr_qrpvzny_rfpncrVCXpRRG_F7_F7_:
 nop
@@ -5178,12 +5178,12 @@
 b__MA7naqebvq8uneqjner20YnmlFreivprErtvfgene11trgVafgnaprRi:
 nop
 .data
-.globl b__MGIA7naqebvq4uvqy7znantre4I1_216OfFreivprZnantreR
+.weak b__MGIA7naqebvq4uvqy7znantre4I1_216OfFreivprZnantreR
 .type b__MGIA7naqebvq4uvqy7znantre4I1_216OfFreivprZnantreR,%object
 b__MGIA7naqebvq4uvqy7znantre4I1_216OfFreivprZnantreR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__16irpgbeVAF_9fho_zngpuVCXpRRAF_9nyybpngbeVF4_RRR6nffvtaRzEXF4_
+.weak b__MAFg3__16irpgbeVAF_9fho_zngpuVCXpRRAF_9nyybpngbeVF4_RRR6nffvtaRzEXF4_
 .type b__MAFg3__16irpgbeVAF_9fho_zngpuVCXpRRAF_9nyybpngbeVF4_RRR6nffvtaRzEXF4_,%function
 b__MAFg3__16irpgbeVAF_9fho_zngpuVCXpRRAF_9nyybpngbeVF4_RRR6nffvtaRzEXF4_:
 nop
@@ -5198,7 +5198,7 @@
 b__MA7naqebvq8uneqjner14npdhver_bowrpgREXAF_2fcVAF0_12CebprffFgngrRRREX20ovaqre_bowrpg_urnqreCXi:
 nop
 .text
-.globl b__MAXFg3__111__raq_fgngrVpR6__rkrpREAF_7__fgngrVpRR
+.weak b__MAXFg3__111__raq_fgngrVpR6__rkrpREAF_7__fgngrVpRR
 .type b__MAXFg3__111__raq_fgngrVpR6__rkrpREAF_7__fgngrVpRR,%function
 b__MAXFg3__111__raq_fgngrVpR6__rkrpREAF_7__fgngrVpRR:
 nop
@@ -5208,12 +5208,12 @@
 b__MA7naqebvq8uneqjner19unaqyrGenafcbegCbyyRv:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner6Cnepry11jevgrBowrpgV18syng_ovaqre_bowrpgRRvEXG_
+.weak b__MA7naqebvq8uneqjner6Cnepry11jevgrBowrpgV18syng_ovaqre_bowrpgRRvEXG_
 .type b__MA7naqebvq8uneqjner6Cnepry11jevgrBowrpgV18syng_ovaqre_bowrpgRRvEXG_,%function
 b__MA7naqebvq8uneqjner6Cnepry11jevgrBowrpgV18syng_ovaqre_bowrpgRRvEXG_:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_4cnveVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRF7_RRAF5_VF8_RRR21__chfu_onpx_fybj_cnguVF8_RRiBG_
+.weak b__MAFg3__16irpgbeVAF_4cnveVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRF7_RRAF5_VF8_RRR21__chfu_onpx_fybj_cnguVF8_RRiBG_
 .type b__MAFg3__16irpgbeVAF_4cnveVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRF7_RRAF5_VF8_RRR21__chfu_onpx_fybj_cnguVF8_RRiBG_,%function
 b__MAFg3__16irpgbeVAF_4cnveVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRF7_RRAF5_VF8_RRR21__chfu_onpx_fybj_cnguVF8_RRiBG_:
 nop
@@ -5298,7 +5298,7 @@
 b__MA7naqebvq8uneqjner10UvqyZrzbelP1Ri:
 nop
 .text
-.globl b__MAFg3__15qrdhrVAF_8shapgvbaVSiiRRRAF_9nyybpngbeVF3_RRR9chfu_onpxREXF3_
+.weak b__MAFg3__15qrdhrVAF_8shapgvbaVSiiRRRAF_9nyybpngbeVF3_RRR9chfu_onpxREXF3_
 .type b__MAFg3__15qrdhrVAF_8shapgvbaVSiiRRRAF_9nyybpngbeVF3_RRR9chfu_onpxREXF3_,%function
 b__MAFg3__15qrdhrVAF_8shapgvbaVSiiRRRAF_9nyybpngbeVF3_RRR9chfu_onpxREXF3_:
 nop
@@ -5353,7 +5353,7 @@
 b__MAX7naqebvq8uneqjner6Cnepry29ernqAhyynoyrAngvirUnaqyrAbQhcRCCX13angvir_unaqyr:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVCXiAF_8uneqjner10OcUjOvaqre13BowrpgZnantre7ragel_gRRRR15qb_zbir_sbejneqRCiF3_z
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVCXiAF_8uneqjner10OcUjOvaqre13BowrpgZnantre7ragel_gRRRR15qb_zbir_sbejneqRCiF3_z
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVCXiAF_8uneqjner10OcUjOvaqre13BowrpgZnantre7ragel_gRRRR15qb_zbir_sbejneqRCiF3_z,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVCXiAF_8uneqjner10OcUjOvaqre13BowrpgZnantre7ragel_gRRRR15qb_zbir_sbejneqRCiF3_z:
 nop
@@ -5398,12 +5398,12 @@
 b__MA7naqebvq8uneqjner18OhssrerqGrkgBhgchg9cbcOhaqyrRi:
 nop
 .text
-.globl b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
+.weak b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
 .type b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_,%function
 b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_:
 nop
 .text
-.globl b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR21__cnefr_onfvp_ert_rkcVCXpRRG_F7_F7_
+.weak b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR21__cnefr_onfvp_ert_rkcVCXpRRG_F7_F7_
 .type b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR21__cnefr_onfvp_ert_rkcVCXpRRG_F7_F7_,%function
 b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR21__cnefr_onfvp_ert_rkcVCXpRRG_F7_F7_:
 nop
@@ -5438,17 +5438,17 @@
 b__MA7naqebvq8uneqjner18OhssrerqGrkgBhgchg16guernqQrfgehpgbeRCi:
 nop
 .text
-.globl b__MAXFg3__118__zngpu_pune_vpnfrVpAF_12ertrk_genvgfVpRRR6__rkrpREAF_7__fgngrVpRR
+.weak b__MAXFg3__118__zngpu_pune_vpnfrVpAF_12ertrk_genvgfVpRRR6__rkrpREAF_7__fgngrVpRR
 .type b__MAXFg3__118__zngpu_pune_vpnfrVpAF_12ertrk_genvgfVpRRR6__rkrpREAF_7__fgngrVpRR,%function
 b__MAXFg3__118__zngpu_pune_vpnfrVpAF_12ertrk_genvgfVpRRR6__rkrpREAF_7__fgngrVpRR:
 nop
 .text
-.globl b__MAFg3__117__bjaf_gjb_fgngrfVpRQ2Ri
+.weak b__MAFg3__117__bjaf_gjb_fgngrfVpRQ2Ri
 .type b__MAFg3__117__bjaf_gjb_fgngrfVpRQ2Ri,%function
 b__MAFg3__117__bjaf_gjb_fgngrfVpRQ2Ri:
 nop
 .text
-.globl b__MAFg3__16__gerrVvAF_4yrffVvRRAF_9nyybpngbeVvRRR7qrfgeblRCAF_11__gerr_abqrVvCiRR
+.weak b__MAFg3__16__gerrVvAF_4yrffVvRRAF_9nyybpngbeVvRRR7qrfgeblRCAF_11__gerr_abqrVvCiRR
 .type b__MAFg3__16__gerrVvAF_4yrffVvRRAF_9nyybpngbeVvRRR7qrfgeblRCAF_11__gerr_abqrVvCiRR,%function
 b__MAFg3__16__gerrVvAF_4yrffVvRRAF_9nyybpngbeVvRRR7qrfgeblRCAF_11__gerr_abqrVvCiRR:
 nop
@@ -5463,7 +5463,7 @@
 b__MGPA7naqebvq4uvqy7znantre4I1_218OcUjFreivprZnantreR0_AF_8uneqjner11OcVagresnprVAF2_15VFreivprZnantreRRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRRQ2Ri
+.weak b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRRQ2Ri
 .type b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRRQ2Ri,%function
 b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRRQ2Ri:
 nop
@@ -5483,7 +5483,7 @@
 b__MAX7naqebvq8uneqjner6Cnepry8ernqObbyRi:
 nop
 .data
-.globl b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_8Fgevat16RAF_2fcVAF_8uneqjner7VOvaqreRRRRRRR
+.weak b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_8Fgevat16RAF_2fcVAF_8uneqjner7VOvaqreRRRRRRR
 .type b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_8Fgevat16RAF_2fcVAF_8uneqjner7VOvaqreRRRRRRR,%object
 b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_8Fgevat16RAF_2fcVAF_8uneqjner7VOvaqreRRRRRRR:
 .space __SIZEOF_POINTER__
@@ -5513,7 +5513,7 @@
 b__MGPA7naqebvq4uvqy7znantre4I1_023OcUjFreivprAbgvsvpngvbaR0_AF0_4onfr4I1_05VOnfrR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq6IrpgbeVCAF_8uneqjner9OUjOvaqreRR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq6IrpgbeVCAF_8uneqjner9OUjOvaqreRR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq6IrpgbeVCAF_8uneqjner9OUjOvaqreRR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq6IrpgbeVCAF_8uneqjner9OUjOvaqreRR12qb_pbafgehpgRCiz:
 nop
@@ -5528,7 +5528,7 @@
 b__MA7naqebvq8uneqjner12CebprffFgngr18tvirGuernqCbbyAnzrRi:
 nop
 .text
-.globl b__MA7naqebvq2fcVAF_8uneqjner25CnffguebhtuFreivprZnantreRRQ2Ri
+.weak b__MA7naqebvq2fcVAF_8uneqjner25CnffguebhtuFreivprZnantreRRQ2Ri
 .type b__MA7naqebvq2fcVAF_8uneqjner25CnffguebhtuFreivprZnantreRRQ2Ri,%function
 b__MA7naqebvq2fcVAF_8uneqjner25CnffguebhtuFreivprZnantreRRQ2Ri:
 nop
@@ -5563,7 +5563,7 @@
 b__MAX7naqebvq8uneqjner6Cnepry21ernqAngvirUnaqyrAbQhcRCCX13angvir_unaqyr:
 nop
 .text
-.globl b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR12__cnefr_ngbzVAF_11__jenc_vgreVCXpRRRRG_F9_F9_
+.weak b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR12__cnefr_ngbzVAF_11__jenc_vgreVCXpRRRRG_F9_F9_
 .type b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR12__cnefr_ngbzVAF_11__jenc_vgreVCXpRRRRG_F9_F9_,%function
 b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR12__cnefr_ngbzVAF_11__jenc_vgreVCXpRRRRG_F9_F9_:
 nop
@@ -5578,12 +5578,12 @@
 b__MA7naqebvq8uneqjneryfREAFg3__113onfvp_bfgernzVpAF1_11pune_genvgfVpRRRREXAF0_11uvqy_fgevatR:
 nop
 .text
-.globl b__MAFg3__16irpgbeVpAF_9nyybpngbeVpRRR21__chfu_onpx_fybj_cnguVpRRiBG_
+.weak b__MAFg3__16irpgbeVpAF_9nyybpngbeVpRRR21__chfu_onpx_fybj_cnguVpRRiBG_
 .type b__MAFg3__16irpgbeVpAF_9nyybpngbeVpRRR21__chfu_onpx_fybj_cnguVpRRiBG_,%function
 b__MAFg3__16irpgbeVpAF_9nyybpngbeVpRRR21__chfu_onpx_fybj_cnguVpRRiBG_:
 nop
 .text
-.globl b__MA7naqebvq2fcVAF_4uvqy4onfr4I1_05VOnfrRRnFRBF5_
+.weak b__MA7naqebvq2fcVAF_4uvqy4onfr4I1_05VOnfrRRnFRBF5_
 .type b__MA7naqebvq2fcVAF_4uvqy4onfr4I1_05VOnfrRRnFRBF5_,%function
 b__MA7naqebvq2fcVAF_4uvqy4onfr4I1_05VOnfrRRnFRBF5_:
 nop
@@ -5603,7 +5603,7 @@
 b__MA7naqebvq8uneqjner10OcUjOvaqreQ1Ri:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_8Fgevat16RAF_2fcVAF_8uneqjner7VOvaqreRRRRRR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_8Fgevat16RAF_2fcVAF_8uneqjner7VOvaqreRRRRRR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_8Fgevat16RAF_2fcVAF_8uneqjner7VOvaqreRRRRRR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_8Fgevat16RAF_2fcVAF_8uneqjner7VOvaqreRRRRRR16qb_zbir_onpxjneqRCiCXiz:
 nop
@@ -5613,7 +5613,7 @@
 b__MA7naqebvq8uneqjner7qrgnvyf14tFreivprFvqZncR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR24__cnefr_pbyyngvat_flzobyVCXpRRG_F7_F7_EAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
+.weak b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR24__cnefr_pbyyngvat_flzobyVCXpRRG_F7_F7_EAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
 .type b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR24__cnefr_pbyyngvat_flzobyVCXpRRG_F7_F7_EAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR,%function
 b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR24__cnefr_pbyyngvat_flzobyVCXpRRG_F7_F7_EAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR:
 nop
@@ -5643,7 +5643,7 @@
 b__MA7naqebvq8uneqjner7UrkQhzcP2RCXizz:
 nop
 .data
-.globl b__MGGAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
+.weak b__MGGAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
 .type b__MGGAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR,%object
 b__MGGAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR:
 .space __SIZEOF_POINTER__
@@ -5658,7 +5658,7 @@
 b__MGIA7naqebvq4uvqy4onfr4I1_05VOnfrR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIA7naqebvq8uneqjner18OhssrerqGrkgBhgchg11OhssreFgngrR
+.weak b__MGIA7naqebvq8uneqjner18OhssrerqGrkgBhgchg11OhssreFgngrR
 .type b__MGIA7naqebvq8uneqjner18OhssrerqGrkgBhgchg11OhssreFgngrR,%object
 b__MGIA7naqebvq8uneqjner18OhssrerqGrkgBhgchg11OhssreFgngrR:
 .space __SIZEOF_POINTER__
@@ -5668,12 +5668,12 @@
 b__MA7naqebvq8uneqjner6Cnepry20pybfrSvyrQrfpevcgbefRi:
 nop
 .text
-.globl b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR32__cnefr_bar_pune_be_pbyy_ryrz_ERVAF_11__jenc_vgreVCXpRRRRG_F9_F9_
+.weak b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR32__cnefr_bar_pune_be_pbyy_ryrz_ERVAF_11__jenc_vgreVCXpRRRRG_F9_F9_
 .type b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR32__cnefr_bar_pune_be_pbyy_ryrz_ERVAF_11__jenc_vgreVCXpRRRRG_F9_F9_,%function
 b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR32__cnefr_bar_pune_be_pbyy_ryrz_ERVAF_11__jenc_vgreVCXpRRRRG_F9_F9_:
 nop
 .text
-.globl b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR20__cnefr_BEQ_PUNE_RERVCXpRRG_F7_F7_
+.weak b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR20__cnefr_BEQ_PUNE_RERVCXpRRG_F7_F7_
 .type b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR20__cnefr_BEQ_PUNE_RERVCXpRRG_F7_F7_,%function
 b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR20__cnefr_BEQ_PUNE_RERVCXpRRG_F7_F7_:
 nop
@@ -5693,7 +5693,7 @@
 b__MA7naqebvq8uneqjner24qrsnhygFreivprZnantre1_2Ri:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_3frgVvAF_4yrffVvRRAF5_VvRRRRRRAF_19__znc_inyhr_pbzcnerVF7_FQ_AF9_VF7_RRYo1RRRAF5_VFQ_RRR7qrfgeblRCAF_11__gerr_abqrVFQ_CiRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_3frgVvAF_4yrffVvRRAF5_VvRRRRRRAF_19__znc_inyhr_pbzcnerVF7_FQ_AF9_VF7_RRYo1RRRAF5_VFQ_RRR7qrfgeblRCAF_11__gerr_abqrVFQ_CiRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_3frgVvAF_4yrffVvRRAF5_VvRRRRRRAF_19__znc_inyhr_pbzcnerVF7_FQ_AF9_VF7_RRYo1RRRAF5_VFQ_RRR7qrfgeblRCAF_11__gerr_abqrVFQ_CiRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_3frgVvAF_4yrffVvRRAF5_VvRRRRRRAF_19__znc_inyhr_pbzcnerVF7_FQ_AF9_VF7_RRYo1RRRAF5_VFQ_RRR7qrfgeblRCAF_11__gerr_abqrVFQ_CiRR:
 nop
@@ -5713,12 +5713,12 @@
 b__MA7naqebvq4uvqy7znantre4I1_218OcUjFreivprZnantre28_uvqy_ertvfgrePyvragPnyyonpxRCAF_8uneqjner10VVagresnprRCAF4_7qrgnvyf16UvqyVafgehzragbeREXAF4_11uvqy_fgevatRFP_EXAF_2fcVAF0_4onfr4I1_05VOnfrRRREXAFQ_VAF2_15VPyvragPnyyonpxRRR:
 nop
 .data
-.globl b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_14onfvp_vbfgernzVpF2_RR
+.weak b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_14onfvp_vbfgernzVpF2_RR
 .type b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_14onfvp_vbfgernzVpF2_RR,%object
 b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_14onfvp_vbfgernzVpF2_RR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__15qrdhrVAF_8shapgvbaVSiiRRRAF_9nyybpngbeVF3_RRR9cbc_sebagRi
+.weak b__MAFg3__15qrdhrVAF_8shapgvbaVSiiRRRAF_9nyybpngbeVF3_RRR9cbc_sebagRi
 .type b__MAFg3__15qrdhrVAF_8shapgvbaVSiiRRRAF_9nyybpngbeVF3_RRR9cbc_sebagRi,%function
 b__MAFg3__15qrdhrVAF_8shapgvbaVSiiRRRAF_9nyybpngbeVF3_RRR9cbc_sebagRi:
 nop
@@ -5733,7 +5733,7 @@
 b__MA7naqebvq8uneqjner28trgCnffguebhtuFreivprZnantreRi:
 nop
 .text
-.globl b__MAFg3__1efVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRREAF_13onfvp_vfgernzVG_G0_RRF9_EAF_12onfvp_fgevatVF6_F7_G1_RR
+.weak b__MAFg3__1efVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRREAF_13onfvp_vfgernzVG_G0_RRF9_EAF_12onfvp_fgevatVF6_F7_G1_RR
 .type b__MAFg3__1efVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRREAF_13onfvp_vfgernzVG_G0_RRF9_EAF_12onfvp_fgevatVF6_F7_G1_RR,%function
 b__MAFg3__1efVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRREAF_13onfvp_vfgernzVG_G0_RRF9_EAF_12onfvp_fgevatVF6_F7_G1_RR:
 nop
@@ -5743,12 +5743,12 @@
 b__MA7naqebvq8uneqjner14VCPGuernqFgngrP1Ri:
 nop
 .text
-.globl b__MA7naqebvq8uneqjneryfVN15_pRREAF0_10GrkgBhgchgRF4_EXG_
+.weak b__MA7naqebvq8uneqjneryfVN15_pRREAF0_10GrkgBhgchgRF4_EXG_
 .type b__MA7naqebvq8uneqjneryfVN15_pRREAF0_10GrkgBhgchgRF4_EXG_,%function
 b__MA7naqebvq8uneqjneryfVN15_pRREAF0_10GrkgBhgchgRF4_EXG_:
 nop
 .data
-.globl b__MGPAFg3__113onfvp_sfgernzVpAF_11pune_genvgfVpRRRR0_AF_14onfvp_vbfgernzVpF2_RR
+.weak b__MGPAFg3__113onfvp_sfgernzVpAF_11pune_genvgfVpRRRR0_AF_14onfvp_vbfgernzVpF2_RR
 .type b__MGPAFg3__113onfvp_sfgernzVpAF_11pune_genvgfVpRRRR0_AF_14onfvp_vbfgernzVpF2_RR,%object
 b__MGPAFg3__113onfvp_sfgernzVpAF_11pune_genvgfVpRRRR0_AF_14onfvp_vbfgernzVpF2_RR:
 .space __SIZEOF_POINTER__
@@ -5758,12 +5758,12 @@
 b__MA7naqebvq4uvqy7znantre4I1_020VFreivprAbgvsvpngvba10qrfpevcgbeR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF_4uvqy7znantre4I1_118OcUjFreivprZnantreRAF5_15VFreivprZnantreRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFO_11pune_genvgfVpRRAFO_9nyybpngbeVpRRRRoo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF_4uvqy7znantre4I1_118OcUjFreivprZnantreRAF5_15VFreivprZnantreRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFO_11pune_genvgfVpRRAFO_9nyybpngbeVpRRRRoo
 .type b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF_4uvqy7znantre4I1_118OcUjFreivprZnantreRAF5_15VFreivprZnantreRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFO_11pune_genvgfVpRRAFO_9nyybpngbeVpRRRRoo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF_4uvqy7znantre4I1_118OcUjFreivprZnantreRAF5_15VFreivprZnantreRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFO_11pune_genvgfVpRRAFO_9nyybpngbeVpRRRRoo:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_8uneqjner10OcUjOvaqre8BovghnelRR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq6IrpgbeVAF_8uneqjner10OcUjOvaqre8BovghnelRR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq6IrpgbeVAF_8uneqjner10OcUjOvaqre8BovghnelRR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq6IrpgbeVAF_8uneqjner10OcUjOvaqre8BovghnelRR10qb_qrfgeblRCiz:
 nop
@@ -5833,7 +5833,7 @@
 b__MAX7naqebvq8uneqjner6Cnepry9ernqSybngRi:
 nop
 .data
-.globl b__MGIAFg3__16__ybbcVpRR
+.weak b__MGIAFg3__16__ybbcVpRR
 .type b__MGIAFg3__16__ybbcVpRR,%object
 b__MGIAFg3__16__ybbcVpRR:
 .space __SIZEOF_POINTER__
@@ -5868,7 +5868,7 @@
 b__MA7naqebvq8uneqjner10UvqyZrzbelP2REXAF0_11uvqy_fgevatRBAF0_11uvqy_unaqyrRz:
 nop
 .text
-.globl b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR19__cnefr_nygreangvirVCXpRRG_F7_F7_
+.weak b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR19__cnefr_nygreangvirVCXpRRG_F7_F7_
 .type b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR19__cnefr_nygreangvirVCXpRRG_F7_F7_,%function
 b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR19__cnefr_nygreangvirVCXpRRG_F7_F7_:
 nop
@@ -5883,7 +5883,7 @@
 b__MGPA7naqebvq4uvqy7znantre4I1_023OaUjFreivprAbgvsvpngvbaR0_AF_8uneqjner7VOvaqreR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq6IrpgbeVCAF_7ErsOnfrRR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVCAF_7ErsOnfrRR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVCAF_7ErsOnfrRR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVCAF_7ErsOnfrRR7qb_pbclRCiCXiz:
 nop
@@ -5893,7 +5893,7 @@
 b__MAX7naqebvq8uneqjner6Cnepry18irevslOhssreBowrpgRCX20ovaqre_ohssre_bowrpgzwzz:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_9fho_zngpuVCXpRRAF_9nyybpngbeVF4_RRR6nffvtaVCF4_RRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF4_AF_15vgrengbe_genvgfVFO_R9ersreraprRRR5inyhrRiR4glcrRFO_FO_
+.weak b__MAFg3__16irpgbeVAF_9fho_zngpuVCXpRRAF_9nyybpngbeVF4_RRR6nffvtaVCF4_RRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF4_AF_15vgrengbe_genvgfVFO_R9ersreraprRRR5inyhrRiR4glcrRFO_FO_
 .type b__MAFg3__16irpgbeVAF_9fho_zngpuVCXpRRAF_9nyybpngbeVF4_RRR6nffvtaVCF4_RRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF4_AF_15vgrengbe_genvgfVFO_R9ersreraprRRR5inyhrRiR4glcrRFO_FO_,%function
 b__MAFg3__16irpgbeVAF_9fho_zngpuVCXpRRAF_9nyybpngbeVF4_RRR6nffvtaVCF4_RRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF4_AF_15vgrengbe_genvgfVFO_R9ersreraprRRR5inyhrRiR4glcrRFO_FO_:
 nop
@@ -5903,7 +5903,7 @@
 b__MA7naqebvq8uneqjner11uvqy_fgevatP1REXF1_:
 nop
 .data
-.globl b__MGIA7naqebvq8uneqjner25CnffguebhtuFreivprZnantreR
+.weak b__MGIA7naqebvq8uneqjner25CnffguebhtuFreivprZnantreR
 .type b__MGIA7naqebvq8uneqjner25CnffguebhtuFreivprZnantreR,%object
 b__MGIA7naqebvq8uneqjner25CnffguebhtuFreivprZnantreR:
 .space __SIZEOF_POINTER__
@@ -5913,7 +5913,7 @@
 b__MA7naqebvq4uvqy7znantre4I1_023OcUjFreivprAbgvsvpngvba21frgUNYVafgehzragngvbaRi:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF_4uvqy7znantre4I1_020VFreivprAbgvsvpngvbaRAF3_4onfr4I1_05VOnfrRAF5_23OcUjFreivprAbgvsvpngvbaRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF_4uvqy7znantre4I1_020VFreivprAbgvsvpngvbaRAF3_4onfr4I1_05VOnfrRAF5_23OcUjFreivprAbgvsvpngvbaRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo
 .type b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF_4uvqy7znantre4I1_020VFreivprAbgvsvpngvbaRAF3_4onfr4I1_05VOnfrRAF5_23OcUjFreivprAbgvsvpngvbaRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF_4uvqy7znantre4I1_020VFreivprAbgvsvpngvbaRAF3_4onfr4I1_05VOnfrRAF5_23OcUjFreivprAbgvsvpngvbaRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo:
 nop
@@ -5923,7 +5923,7 @@
 b__MGGA7naqebvq4uvqy7znantre4I1_218OaUjPyvragPnyyonpxR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGPA7naqebvq8uneqjner11OcVagresnprVAF_4uvqy4onfr4I1_05VOnfrRRR0_AF4_5VOnfrR
+.weak b__MGPA7naqebvq8uneqjner11OcVagresnprVAF_4uvqy4onfr4I1_05VOnfrRRR0_AF4_5VOnfrR
 .type b__MGPA7naqebvq8uneqjner11OcVagresnprVAF_4uvqy4onfr4I1_05VOnfrRRR0_AF4_5VOnfrR,%object
 b__MGPA7naqebvq8uneqjner11OcVagresnprVAF_4uvqy4onfr4I1_05VOnfrRRR0_AF4_5VOnfrR:
 .space __SIZEOF_POINTER__
@@ -5953,7 +5953,7 @@
 b__MGIA7naqebvq8uneqjner12CebprffFgngrR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIAFg3__123__zngpu_nal_ohg_arjyvarVpRR
+.weak b__MGIAFg3__123__zngpu_nal_ohg_arjyvarVpRR
 .type b__MGIAFg3__123__zngpu_nal_ohg_arjyvarVpRR,%object
 b__MGIAFg3__123__zngpu_nal_ohg_arjyvarVpRR:
 .space __SIZEOF_POINTER__
@@ -5963,7 +5963,7 @@
 b__MA7naqebvq8uneqjner6Fgnghf2bxRi:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_:
 nop
@@ -5973,7 +5973,7 @@
 b__MGua32_A7naqebvq4uvqy7znantre4I1_218OaUjPyvragPnyyonpxQ1Ri:
 nop
 .text
-.globl b__MAXFg3__120__zngpu_pune_pbyyngrVpAF_12ertrk_genvgfVpRRR6__rkrpREAF_7__fgngrVpRR
+.weak b__MAXFg3__120__zngpu_pune_pbyyngrVpAF_12ertrk_genvgfVpRRR6__rkrpREAF_7__fgngrVpRR
 .type b__MAXFg3__120__zngpu_pune_pbyyngrVpAF_12ertrk_genvgfVpRRR6__rkrpREAF_7__fgngrVpRR,%function
 b__MAXFg3__120__zngpu_pune_pbyyngrVpAF_12ertrk_genvgfVpRRR6__rkrpREAF_7__fgngrVpRR:
 nop
@@ -5998,7 +5998,7 @@
 b__MAX7naqebvq8uneqjner14VCPGuernqFgngr29trgYnfgGenafnpgvbaOvaqreSyntfRi:
 nop
 .text
-.globl b__MAFg3__114__fcyvg_ohssreVCAF_8shapgvbaVSiiRRRAF_9nyybpngbeVF4_RRR9chfu_onpxRBF4_
+.weak b__MAFg3__114__fcyvg_ohssreVCAF_8shapgvbaVSiiRRRAF_9nyybpngbeVF4_RRR9chfu_onpxRBF4_
 .type b__MAFg3__114__fcyvg_ohssreVCAF_8shapgvbaVSiiRRRAF_9nyybpngbeVF4_RRR9chfu_onpxRBF4_,%function
 b__MAFg3__114__fcyvg_ohssreVCAF_8shapgvbaVSiiRRRAF_9nyybpngbeVF4_RRR9chfu_onpxRBF4_:
 nop
@@ -6018,7 +6018,7 @@
 b__MA7naqebvq4uvqy7znantre4I1_215VFreivprZnantre14vagresnprPunvaRAFg3__18shapgvbaVSiEXAF_8uneqjner8uvqy_irpVAF6_11uvqy_fgevatRRRRRR:
 nop
 .data
-.globl b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVCXiAF_8uneqjner10OcUjOvaqre13BowrpgZnantre7ragel_gRRRRR
+.weak b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVCXiAF_8uneqjner10OcUjOvaqre13BowrpgZnantre7ragel_gRRRRR
 .type b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVCXiAF_8uneqjner10OcUjOvaqre13BowrpgZnantre7ragel_gRRRRR,%object
 b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVCXiAF_8uneqjner10OcUjOvaqre13BowrpgZnantre7ragel_gRRRRR:
 .space __SIZEOF_POINTER__
@@ -6028,22 +6028,22 @@
 b__MA7naqebvq8uneqjner6Cnepry19vcpFrgQngnErsreraprRCXuzCXlzCSiCF1_F3_zF5_zCiRF7_:
 nop
 .text
-.globl b__MAFg3__113__irpgbe_onfrVAF_8shapgvbaVSiiRRRAF_9nyybpngbeVF3_RRRQ2Ri
+.weak b__MAFg3__113__irpgbe_onfrVAF_8shapgvbaVSiiRRRAF_9nyybpngbeVF3_RRRQ2Ri
 .type b__MAFg3__113__irpgbe_onfrVAF_8shapgvbaVSiiRRRAF_9nyybpngbeVF3_RRRQ2Ri,%function
 b__MAFg3__113__irpgbe_onfrVAF_8shapgvbaVSiiRRRAF_9nyybpngbeVF3_RRRQ2Ri:
 nop
 .text
-.globl b__MA7naqebvq8uneqjneryfVN2_pRREAF0_10GrkgBhgchgRF4_EXG_
+.weak b__MA7naqebvq8uneqjneryfVN2_pRREAF0_10GrkgBhgchgRF4_EXG_
 .type b__MA7naqebvq8uneqjneryfVN2_pRREAF0_10GrkgBhgchgRF4_EXG_,%function
 b__MA7naqebvq8uneqjneryfVN2_pRREAF0_10GrkgBhgchgRF4_EXG_:
 nop
 .data
-.globl b__MGPAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_13onfvp_bfgernzVpF2_RR
+.weak b__MGPAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_13onfvp_bfgernzVpF2_RR
 .type b__MGPAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_13onfvp_bfgernzVpF2_RR,%object
 b__MGPAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_13onfvp_bfgernzVpF2_RR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_:
 nop
@@ -6063,12 +6063,12 @@
 b__MA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe32ertvfgreVafgehzragngvbaPnyyonpxfRCAFg3__16irpgbeVAF3_8shapgvbaVSiAF2_20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF4_VCiAF3_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRR:
 nop
 .text
-.globl b__MAXFg3__110__onpx_ersVpR6__rkrpREAF_7__fgngrVpRR
+.weak b__MAXFg3__110__onpx_ersVpR6__rkrpREAF_7__fgngrVpRR
 .type b__MAXFg3__110__onpx_ersVpR6__rkrpREAF_7__fgngrVpRR,%function
 b__MAXFg3__110__onpx_ersVpR6__rkrpREAF_7__fgngrVpRR:
 nop
 .text
-.globl b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR12__cnefr_grezVCXpRRG_F7_F7_
+.weak b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR12__cnefr_grezVCXpRRG_F7_F7_
 .type b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR12__cnefr_grezVCXpRRG_F7_F7_,%function
 b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR12__cnefr_grezVCXpRRG_F7_F7_:
 nop
@@ -6078,7 +6078,7 @@
 b__MA7naqebvq4uvqy7znantre4I1_018OcUjFreivprZnantre4yvfgRAFg3__18shapgvbaVSiEXAF_8uneqjner8uvqy_irpVAF6_11uvqy_fgevatRRRRRR:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVCAF_7ErsOnfrRR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVCAF_7ErsOnfrRR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVCAF_7ErsOnfrRR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVCAF_7ErsOnfrRR16qb_zbir_onpxjneqRCiCXiz:
 nop
@@ -6108,12 +6108,12 @@
 b__MAX7naqebvq8uneqjner6Cnepry18ernqAhyynoyrOhssreRzCzCCXi:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVvR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVvR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVvR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVvR16qb_zbir_onpxjneqRCiCXiz:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_9fho_zngpuVAF_11__jenc_vgreVCXpRRRRAF_9nyybpngbeVF6_RRR8__nccraqRz
+.weak b__MAFg3__16irpgbeVAF_9fho_zngpuVAF_11__jenc_vgreVCXpRRRRAF_9nyybpngbeVF6_RRR8__nccraqRz
 .type b__MAFg3__16irpgbeVAF_9fho_zngpuVAF_11__jenc_vgreVCXpRRRRAF_9nyybpngbeVF6_RRR8__nccraqRz,%function
 b__MAFg3__16irpgbeVAF_9fho_zngpuVAF_11__jenc_vgreVCXpRRRRAF_9nyybpngbeVF6_RRR8__nccraqRz:
 nop
@@ -6123,7 +6123,7 @@
 b__MA7naqebvq4uvqy7znantre4I1_218OcUjFreivprZnantre12nqqJvguPunvaREXAF_8uneqjner11uvqy_fgevatREXAF_2fcVAF0_4onfr4I1_05VOnfrRRREXAF4_8uvqy_irpVF5_RR:
 nop
 .text
-.globl b__MAFg3__15qrdhrVAF_7__fgngrVpRRAF_9nyybpngbeVF2_RRR20__nqq_sebag_pncnpvglRi
+.weak b__MAFg3__15qrdhrVAF_7__fgngrVpRRAF_9nyybpngbeVF2_RRR20__nqq_sebag_pncnpvglRi
 .type b__MAFg3__15qrdhrVAF_7__fgngrVpRRAF_9nyybpngbeVF2_RRR20__nqq_sebag_pncnpvglRi,%function
 b__MAFg3__15qrdhrVAF_7__fgngrVpRRAF_9nyybpngbeVF2_RRR20__nqq_sebag_pncnpvglRi:
 nop
@@ -6158,7 +6158,7 @@
 b__MA7naqebvq8uneqjner14VCPGuernqFgngr13rkchatrUnaqyrRvCAF0_7VOvaqreR:
 nop
 .text
-.globl b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR21__cnefr_onfvp_ert_rkcVAF_11__jenc_vgreVCXpRRRRG_F9_F9_
+.weak b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR21__cnefr_onfvp_ert_rkcVAF_11__jenc_vgreVCXpRRRRG_F9_F9_
 .type b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR21__cnefr_onfvp_ert_rkcVAF_11__jenc_vgreVCXpRRRRG_F9_F9_,%function
 b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR21__cnefr_onfvp_ert_rkcVAF_11__jenc_vgreVCXpRRRRG_F9_F9_:
 nop
@@ -6183,7 +6183,7 @@
 b__MA7naqebvq8uneqjner14VCPGuernqFgngr13qrpJrnxUnaqyrRv:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVCAF_7ErsOnfr12jrnxers_glcrRR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq6IrpgbeVCAF_7ErsOnfr12jrnxers_glcrRR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq6IrpgbeVCAF_7ErsOnfr12jrnxers_glcrRR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq6IrpgbeVCAF_7ErsOnfr12jrnxers_glcrRR10qb_qrfgeblRCiz:
 nop
@@ -6228,7 +6228,7 @@
 b__MA7naqebvq4uvqy7znantre4I1_215VPyvragPnyyonpx11yvaxGbQrnguREXAF_2fcVAF_8uneqjner20uvqy_qrngu_erpvcvragRRRz:
 nop
 .text
-.globl b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR23__cnefr_DHBGRQ_PUNE_RERVCXpRRG_F7_F7_
+.weak b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR23__cnefr_DHBGRQ_PUNE_RERVCXpRRG_F7_F7_
 .type b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR23__cnefr_DHBGRQ_PUNE_RERVCXpRRG_F7_F7_,%function
 b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR23__cnefr_DHBGRQ_PUNE_RERVCXpRRG_F7_F7_:
 nop
@@ -6263,7 +6263,7 @@
 b__MGGA7naqebvq4uvqy4onfr4I1_05VOnfrR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR11__chfu_puneRp
+.weak b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR11__chfu_puneRp
 .type b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR11__chfu_puneRp,%function
 b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR11__chfu_puneRp:
 nop
@@ -6278,7 +6278,7 @@
 b__MA7naqebvq8uneqjner9OUjOvaqreP1Ri:
 nop
 .text
-.globl b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR17__cnefr_nffregvbaVCXpRRG_F7_F7_
+.weak b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR17__cnefr_nffregvbaVCXpRRG_F7_F7_
 .type b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR17__cnefr_nffregvbaVCXpRRG_F7_F7_,%function
 b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR17__cnefr_nffregvbaVCXpRRG_F7_F7_:
 nop
@@ -6303,7 +6303,7 @@
 b__MAX7naqebvq8uneqjner6Cnepry15vcpBowrpgfPbhagRi:
 nop
 .text
-.globl b__MA7naqebvq8uneqjneryfVlRREAF0_10GrkgBhgchgRF3_EXG_
+.weak b__MA7naqebvq8uneqjneryfVlRREAF0_10GrkgBhgchgRF3_EXG_
 .type b__MA7naqebvq8uneqjneryfVlRREAF0_10GrkgBhgchgRF3_EXG_,%function
 b__MA7naqebvq8uneqjneryfVlRREAF0_10GrkgBhgchgRF3_EXG_:
 nop
@@ -6313,12 +6313,12 @@
 b__MGIA7naqebvq8uneqjner27uvqy_ovaqre_qrngu_erpvcvragR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR16__cnefr_rpzn_rkcVCXpRRG_F7_F7_
+.weak b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR16__cnefr_rpzn_rkcVCXpRRG_F7_F7_
 .type b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR16__cnefr_rpzn_rkcVCXpRRG_F7_F7_,%function
 b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR16__cnefr_rpzn_rkcVCXpRRG_F7_F7_:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF6_RRR7erfreirRz
+.weak b__MAFg3__16irpgbeVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF6_RRR7erfreirRz
 .type b__MAFg3__16irpgbeVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF6_RRR7erfreirRz,%function
 b__MAFg3__16irpgbeVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF6_RRR7erfreirRz:
 nop
@@ -6353,17 +6353,17 @@
 b__MA7naqebvq4uvqy7znantre4I1_018OcUjFreivprZnantre21frgUNYVafgehzragngvbaRi:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVvR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVvR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVvR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVvR7qb_pbclRCiCXiz:
 nop
 .text
-.globl b__MAFg3__114__fcyvg_ohssreVCAF_7__fgngrVpRREAF_9nyybpngbeVF3_RRR9chfu_onpxRBF3_
+.weak b__MAFg3__114__fcyvg_ohssreVCAF_7__fgngrVpRREAF_9nyybpngbeVF3_RRR9chfu_onpxRBF3_
 .type b__MAFg3__114__fcyvg_ohssreVCAF_7__fgngrVpRREAF_9nyybpngbeVF3_RRR9chfu_onpxRBF3_,%function
 b__MAFg3__114__fcyvg_ohssreVCAF_7__fgngrVpRREAF_9nyybpngbeVF3_RRR9chfu_onpxRBF3_:
 nop
 .data
-.globl b__MGIAFg3__120__funerq_cge_cbvagreVCAF_13__rzcgl_fgngrVpRRAF_14qrsnhyg_qryrgrVF2_RRAF_9nyybpngbeVF2_RRRR
+.weak b__MGIAFg3__120__funerq_cge_cbvagreVCAF_13__rzcgl_fgngrVpRRAF_14qrsnhyg_qryrgrVF2_RRAF_9nyybpngbeVF2_RRRR
 .type b__MGIAFg3__120__funerq_cge_cbvagreVCAF_13__rzcgl_fgngrVpRRAF_14qrsnhyg_qryrgrVF2_RRAF_9nyybpngbeVF2_RRRR,%object
 b__MGIAFg3__120__funerq_cge_cbvagreVCAF_13__rzcgl_fgngrVpRRAF_14qrsnhyg_qryrgrVF2_RRAF_9nyybpngbeVF2_RRRR:
 .space __SIZEOF_POINTER__
@@ -6383,12 +6383,12 @@
 b__MA7naqebvq8uneqjneryfREAF0_10GrkgBhgchgREXAF0_8GlcrPbqrR:
 nop
 .text
-.globl b__MAFg3__110__shapgvba6__shapVCSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF_6irpgbeVCiAF_9nyybpngbeVFN_RRRRRAFO_VFT_RRFS_R18qrfgebl_qrnyybpngrRi
+.weak b__MAFg3__110__shapgvba6__shapVCSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF_6irpgbeVCiAF_9nyybpngbeVFN_RRRRRAFO_VFT_RRFS_R18qrfgebl_qrnyybpngrRi
 .type b__MAFg3__110__shapgvba6__shapVCSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF_6irpgbeVCiAF_9nyybpngbeVFN_RRRRRAFO_VFT_RRFS_R18qrfgebl_qrnyybpngrRi,%function
 b__MAFg3__110__shapgvba6__shapVCSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF_6irpgbeVCiAF_9nyybpngbeVFN_RRRRRAFO_VFT_RRFS_R18qrfgebl_qrnyybpngrRi:
 nop
 .text
-.globl b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR24__cnefr_punenpgre_rfpncrVAF_11__jenc_vgreVCXpRRRRG_F9_F9_CAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
+.weak b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR24__cnefr_punenpgre_rfpncrVAF_11__jenc_vgreVCXpRRRRG_F9_F9_CAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
 .type b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR24__cnefr_punenpgre_rfpncrVAF_11__jenc_vgreVCXpRRRRG_F9_F9_CAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR,%function
 b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR24__cnefr_punenpgre_rfpncrVAF_11__jenc_vgreVCXpRRRRG_F9_F9_CAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR:
 nop
@@ -6418,7 +6418,7 @@
 b__MAX7naqebvq8uneqjner6Cnepry11hcqngrPnpurRi:
 nop
 .text
-.globl b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR16__chfu_ybbxnurnqREXF3_ow
+.weak b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR16__chfu_ybbxnurnqREXF3_ow
 .type b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR16__chfu_ybbxnurnqREXF3_ow,%function
 b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR16__chfu_ybbxnurnqREXF3_ow:
 nop
@@ -6448,12 +6448,12 @@
 b__MA7naqebvq8uneqjner8tCebprffR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__110__shapgvba6__shapVCSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF_6irpgbeVCiAF_9nyybpngbeVFN_RRRRRAFO_VFT_RRFS_RpyRBF6_BF8_FX_FX_FX_BFR_
+.weak b__MAFg3__110__shapgvba6__shapVCSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF_6irpgbeVCiAF_9nyybpngbeVFN_RRRRRAFO_VFT_RRFS_RpyRBF6_BF8_FX_FX_FX_BFR_
 .type b__MAFg3__110__shapgvba6__shapVCSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF_6irpgbeVCiAF_9nyybpngbeVFN_RRRRRAFO_VFT_RRFS_RpyRBF6_BF8_FX_FX_FX_BFR_,%function
 b__MAFg3__110__shapgvba6__shapVCSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF_6irpgbeVCiAF_9nyybpngbeVFN_RRRRRAFO_VFT_RRFS_RpyRBF6_BF8_FX_FX_FX_BFR_:
 nop
 .text
-.globl b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR20__cnefr_pynff_rfpncrVAF_11__jenc_vgreVCXpRRRRG_F9_F9_EAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRCAF_20__oenpxrg_rkcerffvbaVpF2_RR
+.weak b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR20__cnefr_pynff_rfpncrVAF_11__jenc_vgreVCXpRRRRG_F9_F9_EAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRCAF_20__oenpxrg_rkcerffvbaVpF2_RR
 .type b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR20__cnefr_pynff_rfpncrVAF_11__jenc_vgreVCXpRRRRG_F9_F9_EAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRCAF_20__oenpxrg_rkcerffvbaVpF2_RR,%function
 b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR20__cnefr_pynff_rfpncrVAF_11__jenc_vgreVCXpRRRRG_F9_F9_EAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRCAF_20__oenpxrg_rkcerffvbaVpF2_RR:
 nop
@@ -6488,12 +6488,12 @@
 b__MA7naqebvq8uneqjneryfREAF0_10GrkgBhgchgREXAF0_7UrkQhzcR:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_8Fgevat16RAF_2fcVAF_8uneqjner7VOvaqreRRRRRR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_8Fgevat16RAF_2fcVAF_8uneqjner7VOvaqreRRRRRR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_8Fgevat16RAF_2fcVAF_8uneqjner7VOvaqreRRRRRR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_8Fgevat16RAF_2fcVAF_8uneqjner7VOvaqreRRRRRR10qb_qrfgeblRCiz:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_4cnveVzCXpRRAF_9nyybpngbeVF4_RRRP2REXF7_
+.weak b__MAFg3__16irpgbeVAF_4cnveVzCXpRRAF_9nyybpngbeVF4_RRRP2REXF7_
 .type b__MAFg3__16irpgbeVAF_4cnveVzCXpRRAF_9nyybpngbeVF4_RRRP2REXF7_,%function
 b__MAFg3__16irpgbeVAF_4cnveVzCXpRRAF_9nyybpngbeVF4_RRRP2REXF7_:
 nop
@@ -6503,12 +6503,12 @@
 b__MA7naqebvq8uneqjner11uvqy_fgevatP2RCXp:
 nop
 .text
-.globl b__MAFg3__120__funerq_cge_rzcynprVA7naqebvq8uneqjner7qrgnvyf17FlapuebavmrqDhrhrVAF_8shapgvbaVSiiRRRRRAF_9nyybpngbeVF8_RRR16__ba_mreb_funerqRi
+.weak b__MAFg3__120__funerq_cge_rzcynprVA7naqebvq8uneqjner7qrgnvyf17FlapuebavmrqDhrhrVAF_8shapgvbaVSiiRRRRRAF_9nyybpngbeVF8_RRR16__ba_mreb_funerqRi
 .type b__MAFg3__120__funerq_cge_rzcynprVA7naqebvq8uneqjner7qrgnvyf17FlapuebavmrqDhrhrVAF_8shapgvbaVSiiRRRRRAF_9nyybpngbeVF8_RRR16__ba_mreb_funerqRi,%function
 b__MAFg3__120__funerq_cge_rzcynprVA7naqebvq8uneqjner7qrgnvyf17FlapuebavmrqDhrhrVAF_8shapgvbaVSiiRRRRRAF_9nyybpngbeVF8_RRR16__ba_mreb_funerqRi:
 nop
 .text
-.globl b__MA7naqebvq2fcVAF_4uvqy7znantre4I1_215VFreivprZnantreRRQ2Ri
+.weak b__MA7naqebvq2fcVAF_4uvqy7znantre4I1_215VFreivprZnantreRRQ2Ri
 .type b__MA7naqebvq2fcVAF_4uvqy7znantre4I1_215VFreivprZnantreRRQ2Ri,%function
 b__MA7naqebvq2fcVAF_4uvqy7znantre4I1_215VFreivprZnantreRRQ2Ri:
 nop
@@ -6533,7 +6533,7 @@
 b__MA7naqebvq8uneqjner12CebprffFgngrQ2Ri:
 nop
 .text
-.globl b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR18__cnefr_abaqhcy_ERVAF_11__jenc_vgreVCXpRRRRG_F9_F9_
+.weak b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR18__cnefr_abaqhcy_ERVAF_11__jenc_vgreVCXpRRRRG_F9_F9_
 .type b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR18__cnefr_abaqhcy_ERVAF_11__jenc_vgreVCXpRRRRG_F9_F9_,%function
 b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR18__cnefr_abaqhcy_ERVAF_11__jenc_vgreVCXpRRRRG_F9_F9_:
 nop
@@ -6568,7 +6568,7 @@
 b__MA7naqebvq4uvqy4onfr4I1_08OcUjOnfr21abgvslFlfcebcfPunatrqRi:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_8Fgevat16RAF_2fcVAF_8uneqjner7VOvaqreRRRRRR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_8Fgevat16RAF_2fcVAF_8uneqjner7VOvaqreRRRRRR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_8Fgevat16RAF_2fcVAF_8uneqjner7VOvaqreRRRRRR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_8Fgevat16RAF_2fcVAF_8uneqjner7VOvaqreRRRRRR8qb_fcyngRCiCXiz:
 nop
@@ -6583,7 +6583,7 @@
 b__MGi0_a40_A7naqebvq4uvqy4onfr4I1_08OcUjOnfr15baYnfgFgebatErsRCXi:
 nop
 .text
-.globl b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR7__cnefrVCXpRRG_F7_F7_
+.weak b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR7__cnefrVCXpRRG_F7_F7_
 .type b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR7__cnefrVCXpRRG_F7_F7_,%function
 b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR7__cnefrVCXpRRG_F7_F7_:
 nop
@@ -6598,17 +6598,17 @@
 b__MGi0_a24_A7naqebvq8uneqjner10OcUjOvaqreQ1Ri:
 nop
 .text
-.globl b__MAFg3__16irpgbeVpAF_9nyybpngbeVpRRR21__chfu_onpx_fybj_cnguVEXpRRiBG_
+.weak b__MAFg3__16irpgbeVpAF_9nyybpngbeVpRRR21__chfu_onpx_fybj_cnguVEXpRRiBG_
 .type b__MAFg3__16irpgbeVpAF_9nyybpngbeVpRRR21__chfu_onpx_fybj_cnguVEXpRRiBG_,%function
 b__MAFg3__16irpgbeVpAF_9nyybpngbeVpRRR21__chfu_onpx_fybj_cnguVEXpRRiBG_:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner10sebzOvaqreVAF_4uvqy7znantre4I1_215VFreivprZnantreRAF4_18OcUjFreivprZnantreRAF4_18OaUjFreivprZnantreRRRAF_2fcVG_RREXAF8_VAF0_7VOvaqreRRR
+.weak b__MA7naqebvq8uneqjner10sebzOvaqreVAF_4uvqy7znantre4I1_215VFreivprZnantreRAF4_18OcUjFreivprZnantreRAF4_18OaUjFreivprZnantreRRRAF_2fcVG_RREXAF8_VAF0_7VOvaqreRRR
 .type b__MA7naqebvq8uneqjner10sebzOvaqreVAF_4uvqy7znantre4I1_215VFreivprZnantreRAF4_18OcUjFreivprZnantreRAF4_18OaUjFreivprZnantreRRRAF_2fcVG_RREXAF8_VAF0_7VOvaqreRRR,%function
 b__MA7naqebvq8uneqjner10sebzOvaqreVAF_4uvqy7znantre4I1_215VFreivprZnantreRAF4_18OcUjFreivprZnantreRAF4_18OaUjFreivprZnantreRRRAF_2fcVG_RREXAF8_VAF0_7VOvaqreRRR:
 nop
 .text
-.globl b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR25__cnefr_cnggrea_punenpgreVCXpRRG_F7_F7_
+.weak b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR25__cnefr_cnggrea_punenpgreVCXpRRG_F7_F7_
 .type b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR25__cnefr_cnggrea_punenpgreVCXpRRG_F7_F7_,%function
 b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR25__cnefr_cnggrea_punenpgreVCXpRRG_F7_F7_:
 nop
@@ -6658,7 +6658,7 @@
 b__MA7naqebvq8uneqjner14VCPGuernqFgngr14gnyxJvguQevireRo:
 nop
 .text
-.globl b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR13__cnefr_rtercVAF_11__jenc_vgreVCXpRRRRG_F9_F9_
+.weak b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR13__cnefr_rtercVAF_11__jenc_vgreVCXpRRRRG_F9_F9_
 .type b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR13__cnefr_rtercVAF_11__jenc_vgreVCXpRRRRG_F9_F9_,%function
 b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR13__cnefr_rtercVAF_11__jenc_vgreVCXpRRRRG_F9_F9_:
 nop
diff --git a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_029.S b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_029.S
index d2d4d86..2b28658 100644
--- a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_029.S
+++ b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_029.S
@@ -23,7 +23,7 @@
 b__MA7naqebvq6Ybbcre9cbyyVaareRv:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_6Ybbcre7ErdhrfgRRRR10qb_pbzcnerRCXiF7_
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_6Ybbcre7ErdhrfgRRRR10qb_pbzcnerRCXiF7_
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_6Ybbcre7ErdhrfgRRRR10qb_pbzcnerRCXiF7_,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_6Ybbcre7ErdhrfgRRRR10qb_pbzcnerRCXiF7_:
 nop
@@ -53,7 +53,7 @@
 b__MGi0_a24_A7naqebvq14YbbcrePnyyonpxQ1Ri:
 nop
 .data
-.globl b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRRR
+.weak b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRRR
 .type b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRRR,%object
 b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRRR:
 .space __SIZEOF_POINTER__
@@ -73,7 +73,7 @@
 b__MAX7naqebvq10IrpgbeVzcy8vgrzFvmrRi:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_28flfcebc_punatr_pnyyonpx_vasbRR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq6IrpgbeVAF_28flfcebc_punatr_pnyyonpx_vasbRR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq6IrpgbeVAF_28flfcebc_punatr_pnyyonpx_vasbRR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq6IrpgbeVAF_28flfcebc_punatr_pnyyonpx_vasbRR10qb_qrfgeblRCiz:
 nop
@@ -88,7 +88,7 @@
 b__MA7naqebvq10IrpgbeVzcy13vafregNeenlNgRCXizz:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_28flfcebc_punatr_pnyyonpx_vasbRR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_28flfcebc_punatr_pnyyonpx_vasbRR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_28flfcebc_punatr_pnyyonpx_vasbRR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_28flfcebc_punatr_pnyyonpx_vasbRR15qb_zbir_sbejneqRCiCXiz:
 nop
@@ -98,7 +98,7 @@
 b_qb_ercbeg_flfcebc_punatr:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_6Ybbcre15ZrffntrRairybcrRR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq6IrpgbeVAF_6Ybbcre15ZrffntrRairybcrRR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq6IrpgbeVAF_6Ybbcre15ZrffntrRairybcrRR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq6IrpgbeVAF_6Ybbcre15ZrffntrRairybcrRR12qb_pbafgehpgRCiz:
 nop
@@ -118,7 +118,7 @@
 b__MA7naqebvq18JrnxZrffntrUnaqyreP2REXAF_2jcVAF_14ZrffntrUnaqyreRRR:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_6Ybbcre8ErfcbafrRR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_6Ybbcre8ErfcbafrRR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_6Ybbcre8ErfcbafrRR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_6Ybbcre8ErfcbafrRR16qb_zbir_onpxjneqRCiCXiz:
 nop
@@ -238,7 +238,7 @@
 b_naqebvqPerngrGuernqRgp:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_6Ybbcre15ZrffntrRairybcrRR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_6Ybbcre15ZrffntrRairybcrRR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_6Ybbcre15ZrffntrRairybcrRR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_6Ybbcre15ZrffntrRairybcrRR8qb_fcyngRCiCXiz:
 nop
@@ -268,7 +268,7 @@
 b_hgs8_gb_hgs16:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_6Ybbcre7ErdhrfgRRRR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_6Ybbcre7ErdhrfgRRRR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_6Ybbcre7ErdhrfgRRRR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_6Ybbcre7ErdhrfgRRRR8qb_fcyngRCiCXiz:
 nop
@@ -303,7 +303,7 @@
 b__MA7naqebvq8Fgevat16P2RAF0_13FgngvpYvaxntrR:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_6Ybbcre8ErfcbafrRR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_6Ybbcre8ErfcbafrRR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_6Ybbcre8ErfcbafrRR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_6Ybbcre8ErfcbafrRR8qb_fcyngRCiCXiz:
 nop
@@ -313,7 +313,7 @@
 b__MA7naqebvq8Fgevat16P1REXAF_7Fgevat8R:
 nop
 .data
-.globl b__MGIA7naqebvq6IrpgbeVAF_28flfcebc_punatr_pnyyonpx_vasbRRR
+.weak b__MGIA7naqebvq6IrpgbeVAF_28flfcebc_punatr_pnyyonpx_vasbRRR
 .type b__MGIA7naqebvq6IrpgbeVAF_28flfcebc_punatr_pnyyonpx_vasbRRR,%object
 b__MGIA7naqebvq6IrpgbeVAF_28flfcebc_punatr_pnyyonpx_vasbRRR:
 .space __SIZEOF_POINTER__
@@ -328,7 +328,7 @@
 b__MA7naqebvq9Gbxravmre9arkgGbxraRCXp:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR12qb_pbafgehpgRCiz:
 nop
@@ -348,7 +348,7 @@
 b__MA7naqebvq11CebcreglZnc6CnefreQ2Ri:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR7qb_pbclRCiCXiz:
 nop
@@ -393,27 +393,27 @@
 b__MAX7naqebvq8Fgevat1610fgnegfJvguRCXQf:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_28flfcebc_punatr_pnyyonpx_vasbRR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_28flfcebc_punatr_pnyyonpx_vasbRR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_28flfcebc_punatr_pnyyonpx_vasbRR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_28flfcebc_punatr_pnyyonpx_vasbRR7qb_pbclRCiCXiz:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_6Ybbcre7ErdhrfgRRRR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_6Ybbcre7ErdhrfgRRRR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_6Ybbcre7ErdhrfgRRRR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_6Ybbcre7ErdhrfgRRRR12qb_pbafgehpgRCiz:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_6Ybbcre7ErdhrfgRRRR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_6Ybbcre7ErdhrfgRRRR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_6Ybbcre7ErdhrfgRRRR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_6Ybbcre7ErdhrfgRRRR15qb_zbir_sbejneqRCiCXiz:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_6Ybbcre15ZrffntrRairybcrRR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq6IrpgbeVAF_6Ybbcre15ZrffntrRairybcrRR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq6IrpgbeVAF_6Ybbcre15ZrffntrRairybcrRR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq6IrpgbeVAF_6Ybbcre15ZrffntrRairybcrRR10qb_qrfgeblRCiz:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_6Ybbcre8ErfcbafrRR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_6Ybbcre8ErfcbafrRR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_6Ybbcre8ErfcbafrRR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_6Ybbcre8ErfcbafrRR7qb_pbclRCiCXiz:
 nop
@@ -428,7 +428,7 @@
 b__MGIA7naqebvq14ZrffntrUnaqyreR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIA7naqebvq6IrpgbeVAF_6Ybbcre15ZrffntrRairybcrRRR
+.weak b__MGIA7naqebvq6IrpgbeVAF_6Ybbcre15ZrffntrRairybcrRRR
 .type b__MGIA7naqebvq6IrpgbeVAF_6Ybbcre15ZrffntrRairybcrRRR,%object
 b__MGIA7naqebvq6IrpgbeVAF_6Ybbcre15ZrffntrRairybcrRRR:
 .space __SIZEOF_POINTER__
@@ -448,7 +448,7 @@
 b__MA7naqebvq10IrpgbeVzcy3nqqRCXi:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_6Ybbcre8ErfcbafrRR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq6IrpgbeVAF_6Ybbcre8ErfcbafrRR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq6IrpgbeVAF_6Ybbcre8ErfcbafrRR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq6IrpgbeVAF_6Ybbcre8ErfcbafrRR10qb_qrfgeblRCiz:
 nop
@@ -548,7 +548,7 @@
 b__MA7naqebvq16FbegrqIrpgbeVzcy5zretrREXF0_:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_28flfcebc_punatr_pnyyonpx_vasbRR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_28flfcebc_punatr_pnyyonpx_vasbRR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_28flfcebc_punatr_pnyyonpx_vasbRR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_28flfcebc_punatr_pnyyonpx_vasbRR16qb_zbir_onpxjneqRCiCXiz:
 nop
@@ -638,7 +638,7 @@
 b__MA7naqebvq8Fgevat1614nyybpSebzHGS16RCXQfz:
 nop
 .data
-.globl b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_6Ybbcre7ErdhrfgRRRRR
+.weak b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_6Ybbcre7ErdhrfgRRRRR
 .type b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_6Ybbcre7ErdhrfgRRRRR,%object
 b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_6Ybbcre7ErdhrfgRRRRR:
 .space __SIZEOF_POINTER__
@@ -763,7 +763,7 @@
 b__MA7naqebvq20FvzcyrYbbcrePnyyonpxP1RCSvvvCiR:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_6Ybbcre15ZrffntrRairybcrRR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_6Ybbcre15ZrffntrRairybcrRR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_6Ybbcre15ZrffntrRairybcrRR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_6Ybbcre15ZrffntrRairybcrRR15qb_zbir_sbejneqRCiCXiz:
 nop
@@ -798,7 +798,7 @@
 b__MGIA7naqebvq10IrpgbeVzcyR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_6Ybbcre8ErfcbafrRR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq6IrpgbeVAF_6Ybbcre8ErfcbafrRR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq6IrpgbeVAF_6Ybbcre8ErfcbafrRR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq6IrpgbeVAF_6Ybbcre8ErfcbafrRR12qb_pbafgehpgRCiz:
 nop
@@ -963,7 +963,7 @@
 b_naqebvqPerngrEnjGuernqRgp:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR8qb_fcyngRCiCXiz:
 nop
@@ -1013,7 +1013,7 @@
 b_fgeyra16:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_6Ybbcre15ZrffntrRairybcrRR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_6Ybbcre15ZrffntrRairybcrRR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_6Ybbcre15ZrffntrRairybcrRR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_6Ybbcre15ZrffntrRairybcrRR7qb_pbclRCiCXiz:
 nop
@@ -1058,7 +1058,7 @@
 b__MA7naqebvq11CebcreglZnc4ybnqREXAF_7Fgevat8RCCF0_:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR10qb_pbzcnerRCXiF6_
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR10qb_pbzcnerRCXiF6_
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR10qb_pbzcnerRCXiF6_,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR10qb_pbzcnerRCXiF6_:
 nop
@@ -1088,7 +1088,7 @@
 b__MA7naqebvq10IrpgbeVzcy8vafregNgRCXizz:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR10qb_qrfgeblRCiz:
 nop
@@ -1178,7 +1178,7 @@
 b__MAX7naqebvq9Gbxravmre19crrxErznvaqreBsYvarRi:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_6Ybbcre7ErdhrfgRRRR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_6Ybbcre7ErdhrfgRRRR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_6Ybbcre7ErdhrfgRRRR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_6Ybbcre7ErdhrfgRRRR7qb_pbclRCiCXiz:
 nop
@@ -1213,7 +1213,7 @@
 b__MA7naqebvq18JrnxZrffntrUnaqyreP1REXAF_2jcVAF_14ZrffntrUnaqyreRRR:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_6Ybbcre7ErdhrfgRRRR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_6Ybbcre7ErdhrfgRRRR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_6Ybbcre7ErdhrfgRRRR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_6Ybbcre7ErdhrfgRRRR10qb_qrfgeblRCiz:
 nop
@@ -1558,12 +1558,12 @@
 b__MA7naqebvq6YbbcreP2Ro:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_6Ybbcre8ErfcbafrRR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_6Ybbcre8ErfcbafrRR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_6Ybbcre8ErfcbafrRR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_6Ybbcre8ErfcbafrRR15qb_zbir_sbejneqRCiCXiz:
 nop
 .data
-.globl b__MGIA7naqebvq6IrpgbeVAF_6Ybbcre8ErfcbafrRRR
+.weak b__MGIA7naqebvq6IrpgbeVAF_6Ybbcre8ErfcbafrRRR
 .type b__MGIA7naqebvq6IrpgbeVAF_6Ybbcre8ErfcbafrRRR,%object
 b__MGIA7naqebvq6IrpgbeVAF_6Ybbcre8ErfcbafrRRR:
 .space __SIZEOF_POINTER__
@@ -1618,7 +1618,7 @@
 b__MA7naqebvq14fgnghfGbFgevatRv:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR16qb_zbir_onpxjneqRCiCXiz:
 nop
@@ -1628,7 +1628,7 @@
 b__MA7naqebvq7Fgevat87sbezngIRCXpFg9__in_yvfg:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR15qb_zbir_sbejneqRCiCXiz:
 nop
@@ -1758,7 +1758,7 @@
 b__MA7naqebvq20FvzcyrYbbcrePnyyonpxQ2Ri:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_6Ybbcre7ErdhrfgRRRR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_6Ybbcre7ErdhrfgRRRR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_6Ybbcre7ErdhrfgRRRR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_6Ybbcre7ErdhrfgRRRR16qb_zbir_onpxjneqRCiCXiz:
 nop
@@ -1978,7 +1978,7 @@
 b__MA7naqebvq7Fgevat8Q2Ri:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_28flfcebc_punatr_pnyyonpx_vasbRR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq6IrpgbeVAF_28flfcebc_punatr_pnyyonpx_vasbRR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq6IrpgbeVAF_28flfcebc_punatr_pnyyonpx_vasbRR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq6IrpgbeVAF_28flfcebc_punatr_pnyyonpx_vasbRR12qb_pbafgehpgRCiz:
 nop
@@ -2093,7 +2093,7 @@
 b_naqebvqPerngrGuernq:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_28flfcebc_punatr_pnyyonpx_vasbRR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_28flfcebc_punatr_pnyyonpx_vasbRR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_28flfcebc_punatr_pnyyonpx_vasbRR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_28flfcebc_punatr_pnyyonpx_vasbRR8qb_fcyngRCiCXiz:
 nop
@@ -2103,7 +2103,7 @@
 b__MA7naqebvq6Ybbcre12trgSbeGuernqRi:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_6Ybbcre15ZrffntrRairybcrRR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_6Ybbcre15ZrffntrRairybcrRR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_6Ybbcre15ZrffntrRairybcrRR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_6Ybbcre15ZrffntrRairybcrRR16qb_zbir_onpxjneqRCiCXiz:
 nop
diff --git a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_030.S b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_030.S
index d95bc57..f7aa8be 100644
--- a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_030.S
+++ b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_030.S
@@ -358,7 +358,7 @@
 b__MA7naqebvq10hveraqrere7Zngevk49ybnqFpnyrRsss:
 nop
 .data
-.globl b__MGIA7naqebvq10hveraqrere14IrpgbeQenjnoyr4AbqrR
+.weak b__MGIA7naqebvq10hveraqrere14IrpgbeQenjnoyr4AbqrR
 .type b__MGIA7naqebvq10hveraqrere14IrpgbeQenjnoyr4AbqrR,%object
 b__MGIA7naqebvq10hveraqrere14IrpgbeQenjnoyr4AbqrR:
 .space __SIZEOF_POINTER__
@@ -1083,7 +1083,7 @@
 b_JroCTrgYvarCnvePbairegre:
 nop
 .data
-.globl b__MGVFg9rkprcgvba
+.weak b__MGVFg9rkprcgvba
 .type b__MGVFg9rkprcgvba,%object
 b__MGVFg9rkprcgvba:
 .space __SIZEOF_POINTER__
@@ -2038,7 +2038,7 @@
 b__MAX17FxGvyrVzntrSvygre18baSvygreAbqrObhaqfREX7FxVErpgEX8FxZngevkA13FxVzntrSvygre12ZncQverpgvbaRCF1_:
 nop
 .data
-.globl b__MGI16TeFhesnprPbagrkg
+.weak b__MGI16TeFhesnprPbagrkg
 .type b__MGI16TeFhesnprPbagrkg,%object
 b__MGI16TeFhesnprPbagrkg:
 .space __SIZEOF_POINTER__
@@ -3148,7 +3148,7 @@
 b__MGI14Fx2QCnguRssrpg:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGI7FxVzntr
+.weak b__MGI7FxVzntr
 .type b__MGI7FxVzntr,%object
 b__MGI7FxVzntr:
 .space __SIZEOF_POINTER__
@@ -3218,7 +3218,7 @@
 b__MA21FxYvtugvatVzntrSvygre21ZnxrQvfgnagYvgQvsshfrREX8FxCbvag3wss5fx_fcV13FxVzntrSvygreRCXAF4_8PebcErpgR:
 nop
 .data
-.globl b__MGI21TeYrtnplQverpgPbagrkg
+.weak b__MGI21TeYrtnplQverpgPbagrkg
 .type b__MGI21TeYrtnplQverpgPbagrkg,%object
 b__MGI21TeYrtnplQverpgPbagrkg:
 .space __SIZEOF_POINTER__
@@ -3238,7 +3238,7 @@
 b__MA7naqebvq14FhesnprGrkgherP1REXAF_2fcVAF_22VTencuvpOhssrePbafhzreRRRwwoo:
 nop
 .data
-.globl b__MGIA7naqebvq10hveraqrere24CebcreglInyhrfUbyqreVzcyVAF0_14IrpgbeQenjnoyr4Cngu4QngnRRR
+.weak b__MGIA7naqebvq10hveraqrere24CebcreglInyhrfUbyqreVzcyVAF0_14IrpgbeQenjnoyr4Cngu4QngnRRR
 .type b__MGIA7naqebvq10hveraqrere24CebcreglInyhrfUbyqreVzcyVAF0_14IrpgbeQenjnoyr4Cngu4QngnRRR,%object
 b__MGIA7naqebvq10hveraqrere24CebcreglInyhrfUbyqreVzcyVAF0_14IrpgbeQenjnoyr4Cngu4QngnRRR:
 .space __SIZEOF_POINTER__
@@ -3468,7 +3468,7 @@
 b_fx_pnainf_ebgngr_enqvnaf:
 nop
 .data
-.globl b__MGFAFg3__117onq_shapgvba_pnyyR
+.weak b__MGFAFg3__117onq_shapgvba_pnyyR
 .type b__MGFAFg3__117onq_shapgvba_pnyyR,%object
 b__MGFAFg3__117onq_shapgvba_pnyyR:
 .space __SIZEOF_POINTER__
@@ -5288,7 +5288,7 @@
 b_IC8YSnfgFYbt2Fybj:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGGAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
+.weak b__MGGAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
 .type b__MGGAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR,%object
 b__MGGAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR:
 .space __SIZEOF_POINTER__
@@ -5428,7 +5428,7 @@
 b__MA12FxSVYRFgernzP1RAFg3__110funerq_cgeV7__fSVYRRRzzz:
 nop
 .data
-.globl b__MGI9FxRapbqre
+.weak b__MGI9FxRapbqre
 .type b__MGI9FxRapbqre,%object
 b__MGI9FxRapbqre:
 .space __SIZEOF_POINTER__
@@ -5648,7 +5648,7 @@
 b__MA21TeEraqreGnetrgPbagrkg14qenjSvyyrqErpgREX6TePyvcB7TeCnvag4TeNNEX8FxZngevkEX6FxErpgCX21TeHfreFgrapvyFrggvatf:
 nop
 .data
-.globl b__MGIA21FxQrsreerqQvfcynlYvfg13YnmlCebklQngnR
+.weak b__MGIA21FxQrsreerqQvfcynlYvfg13YnmlCebklQngnR
 .type b__MGIA21FxQrsreerqQvfcynlYvfg13YnmlCebklQngnR,%object
 b__MGIA21FxQrsreerqQvfcynlYvfg13YnmlCebklQngnR:
 .space __SIZEOF_POINTER__
@@ -5723,7 +5723,7 @@
 b__MA6FxQngn17ZnxrHavavgvnyvmrqRz:
 nop
 .data
-.globl b__MGVFg12yratgu_reebe
+.weak b__MGVFg12yratgu_reebe
 .type b__MGVFg12yratgu_reebe,%object
 b__MGVFg12yratgu_reebe:
 .space __SIZEOF_POINTER__
@@ -6903,7 +6903,7 @@
 b__MA7naqebvq10hveraqrere14IrpgbeQenjnoyr8ShyyCngu4qenjRC8FxPnainfo:
 nop
 .data
-.globl b__MMA7FxVErpg10RzcglVErpgRiR6tRzcgl
+.weak b__MMA7FxVErpg10RzcglVErpgRiR6tRzcgl
 .type b__MMA7FxVErpg10RzcglVErpgRiR6tRzcgl,%object
 b__MMA7FxVErpg10RzcglVErpgRiR6tRzcgl:
 .space __SIZEOF_POINTER__
@@ -7203,7 +7203,7 @@
 b__MA7FxEErpg14vavgvnyvmrErpgREX6FxErpg:
 nop
 .data
-.globl b__MGVFg11ybtvp_reebe
+.weak b__MGVFg11ybtvp_reebe
 .type b__MGVFg11ybtvp_reebe,%object
 b__MGVFg11ybtvp_reebe:
 .space __SIZEOF_POINTER__
@@ -7988,7 +7988,7 @@
 b__MA6FxCngu6dhnqGbRssss:
 nop
 .data
-.globl b__MGFFg9rkprcgvba
+.weak b__MGFFg9rkprcgvba
 .type b__MGFFg9rkprcgvba,%object
 b__MGFFg9rkprcgvba:
 .space __SIZEOF_POINTER__
@@ -8168,7 +8168,7 @@
 b__MA10FxZrgnQngn4VgreP2REXF_:
 nop
 .data
-.globl b__MGIA21TeEraqreGnetrgPbagrkg10GrkgGnetrgR
+.weak b__MGIA21TeEraqreGnetrgPbagrkg10GrkgGnetrgR
 .type b__MGIA21TeEraqreGnetrgPbagrkg10GrkgGnetrgR,%object
 b__MGIA21TeEraqreGnetrgPbagrkg10GrkgGnetrgR:
 .space __SIZEOF_POINTER__
@@ -8778,7 +8778,7 @@
 b__MAX7naqebvq15ZvavxvaSbagFxvn13ErsFxGlcrsnprRi:
 nop
 .data
-.globl b__MGIAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
+.weak b__MGIAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
 .type b__MGIAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR,%object
 b__MGIAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR:
 .space __SIZEOF_POINTER__
@@ -9023,7 +9023,7 @@
 b__MA7FxCnvagQ1Ri:
 nop
 .data
-.globl b__MGIA7naqebvq10hveraqrere18YvarneVagrecbyngbeR
+.weak b__MGIA7naqebvq10hveraqrere18YvarneVagrecbyngbeR
 .type b__MGIA7naqebvq10hveraqrere18YvarneVagrecbyngbeR,%object
 b__MGIA7naqebvq10hveraqrere18YvarneVagrecbyngbeR:
 .space __SIZEOF_POINTER__
@@ -9868,7 +9868,7 @@
 b__MA12FxAJnlPnainf12baPyvcErtvbaREX8FxErtvba8FxPyvcBc:
 nop
 .data
-.globl b__MGIA7naqebvq10hveraqrere24CebcreglInyhrfUbyqreVzcyVwRR
+.weak b__MGIA7naqebvq10hveraqrere24CebcreglInyhrfUbyqreVzcyVwRR
 .type b__MGIA7naqebvq10hveraqrere24CebcreglInyhrfUbyqreVzcyVwRR,%object
 b__MGIA7naqebvq10hveraqrere24CebcreglInyhrfUbyqreVzcyVwRR:
 .space __SIZEOF_POINTER__
@@ -11123,7 +11123,7 @@
 b__MAX14Fx2QCnguRssrpg12baSvygreCnguRC6FxCnguEXF0_C11FxFgebxrErpCX6FxErpg:
 nop
 .data
-.globl b__MGI18FxRebqrVzntrSvygre
+.weak b__MGI18FxRebqrVzntrSvygre
 .type b__MGI18FxRebqrVzntrSvygre,%object
 b__MGI18FxRebqrVzntrSvygre:
 .space __SIZEOF_POINTER__
@@ -11408,7 +11408,7 @@
 b__MA6FxErpg16frgObhaqfAbPurpxRCX7FxCbvagv:
 nop
 .data
-.globl b__MGIAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
+.weak b__MGIAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
 .type b__MGIAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR,%object
 b__MGIAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR:
 .space __SIZEOF_POINTER__
@@ -11503,7 +11503,7 @@
 b__MA8FxPnainf28bayl_nkvf_nyvtarq_fnirOruvaqRCX6FxErpg:
 nop
 .data
-.globl b__MGIAFg3__117onq_shapgvba_pnyyR
+.weak b__MGIAFg3__117onq_shapgvba_pnyyR
 .type b__MGIAFg3__117onq_shapgvba_pnyyR,%object
 b__MGIAFg3__117onq_shapgvba_pnyyR:
 .space __SIZEOF_POINTER__
@@ -11538,12 +11538,12 @@
 b__MA16FxBireqenjPnainf10baQenjCnguREX6FxCnguEX7FxCnvag:
 nop
 .text
-.globl b__MA7naqebvq10hveraqrere12eraqreguernq10EraqreGnfxQ2Ri
+.weak b__MA7naqebvq10hveraqrere12eraqreguernq10EraqreGnfxQ2Ri
 .type b__MA7naqebvq10hveraqrere12eraqreguernq10EraqreGnfxQ2Ri,%function
 b__MA7naqebvq10hveraqrere12eraqreguernq10EraqreGnfxQ2Ri:
 nop
 .data
-.globl b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_14onfvp_vbfgernzVpF2_RR
+.weak b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_14onfvp_vbfgernzVpF2_RR
 .type b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_14onfvp_vbfgernzVpF2_RR,%object
 b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_14onfvp_vbfgernzVpF2_RR:
 .space __SIZEOF_POINTER__
@@ -11753,7 +11753,7 @@
 b_fx_fhesnpr_arj_enfgre_qverpg:
 nop
 .data
-.globl b__MGFFg12yratgu_reebe
+.weak b__MGFFg12yratgu_reebe
 .type b__MGFFg12yratgu_reebe,%object
 b__MGFFg12yratgu_reebe:
 .space __SIZEOF_POINTER__
@@ -12193,7 +12193,7 @@
 b__MA7naqebvq6Ovgznc9znxrVzntrRi:
 nop
 .data
-.globl b__MGIA7naqebvq10hveraqrere24CebcreglInyhrfUbyqreVzcyVsRR
+.weak b__MGIA7naqebvq10hveraqrere24CebcreglInyhrfUbyqreVzcyVsRR
 .type b__MGIA7naqebvq10hveraqrere24CebcreglInyhrfUbyqreVzcyVsRR,%object
 b__MGIA7naqebvq10hveraqrere24CebcreglInyhrfUbyqreVzcyVsRR:
 .space __SIZEOF_POINTER__
@@ -12908,7 +12908,7 @@
 b__MGI22FxAbeznySyngFbheprVzcy:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGI9FxFhesnpr
+.weak b__MGI9FxFhesnpr
 .type b__MGI9FxFhesnpr,%object
 b__MGI9FxFhesnpr:
 .space __SIZEOF_POINTER__
@@ -13253,7 +13253,7 @@
 b__MA7naqebvq6OvgzncQ2Ri:
 nop
 .text
-.globl b__MA7naqebvq10hveraqrere16NavzngvbaPbagrkg14cnhfrNavzngbefRi
+.weak b__MA7naqebvq10hveraqrere16NavzngvbaPbagrkg14cnhfrNavzngbefRi
 .type b__MA7naqebvq10hveraqrere16NavzngvbaPbagrkg14cnhfrNavzngbefRi,%function
 b__MA7naqebvq10hveraqrere16NavzngvbaPbagrkg14cnhfrNavzngbefRi:
 nop
@@ -13348,7 +13348,7 @@
 b__MA18FxCngu1QCnguRssrpg10PerngrCebpRE12FxErnqOhssre:
 nop
 .data
-.globl b__MGI8FxYvtugf
+.weak b__MGI8FxYvtugf
 .type b__MGI8FxYvtugf,%object
 b__MGI8FxYvtugf:
 .space __SIZEOF_POINTER__
@@ -13448,7 +13448,7 @@
 b__MA18FxCngu1QCnguRssrpgP2REX6FxCngussAF_5FglyrR:
 nop
 .data
-.globl b__MGPAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_13onfvp_bfgernzVpF2_RR
+.weak b__MGPAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_13onfvp_bfgernzVpF2_RR
 .type b__MGPAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_13onfvp_bfgernzVpF2_RR,%object
 b__MGPAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_13onfvp_bfgernzVpF2_RR:
 .space __SIZEOF_POINTER__
@@ -13588,7 +13588,7 @@
 b__MA18FxRzobffZnfxSvygreP1RsEXAF_5YvtugR:
 nop
 .data
-.globl b__MGFFg11ybtvp_reebe
+.weak b__MGFFg11ybtvp_reebe
 .type b__MGFFg11ybtvp_reebe,%object
 b__MGFFg11ybtvp_reebe:
 .space __SIZEOF_POINTER__
@@ -13663,7 +13663,7 @@
 b__MA8FxPnainf10qenjQEErpgREX7FxEErpgF2_EX7FxCnvag:
 nop
 .data
-.globl b__MGVAFg3__117onq_shapgvba_pnyyR
+.weak b__MGVAFg3__117onq_shapgvba_pnyyR
 .type b__MGVAFg3__117onq_shapgvba_pnyyR,%object
 b__MGVAFg3__117onq_shapgvba_pnyyR:
 .space __SIZEOF_POINTER__
@@ -14393,7 +14393,7 @@
 b__MA17FxGrkgOyboOhvyqre4znxrRi:
 nop
 .data
-.globl b__MGI16FxPbagbheZrnfher
+.weak b__MGI16FxPbagbheZrnfher
 .type b__MGI16FxPbagbheZrnfher,%object
 b__MGI16FxPbagbheZrnfher:
 .space __SIZEOF_POINTER__
@@ -14418,7 +14418,7 @@
 b_IC8GenafsbezJUG:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_13onfvp_vfgernzVpF2_RR
+.weak b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_13onfvp_vfgernzVpF2_RR
 .type b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_13onfvp_vfgernzVpF2_RR,%object
 b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_13onfvp_vfgernzVpF2_RR:
 .space __SIZEOF_POINTER__
@@ -15248,7 +15248,7 @@
 b__MAX7FxVzntr12rapbqrGbQngnRi:
 nop
 .data
-.globl b__MGI9FxCvpgher
+.weak b__MGI9FxCvpgher
 .type b__MGI9FxCvpgher,%object
 b__MGI9FxCvpgher:
 .space __SIZEOF_POINTER__
@@ -15468,7 +15468,7 @@
 b__MA16FxVzntrTrarengbe19ZnxrSebzRapbqrqVzcyR5fx_fcV6FxQngnR:
 nop
 .data
-.globl b__MGIAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
+.weak b__MGIAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
 .type b__MGIAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR,%object
 b__MGIAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR:
 .space __SIZEOF_POINTER__
@@ -16848,7 +16848,7 @@
 b__MA10FxEJOhssreP1Rz:
 nop
 .data
-.globl b__MGIA14FxFgevxrPyvrag23QvfpneqnoyrFgevxrCvaareR
+.weak b__MGIA14FxFgevxrPyvrag23QvfpneqnoyrFgevxrCvaareR
 .type b__MGIA14FxFgevxrPyvrag23QvfpneqnoyrFgevxrCvaareR,%object
 b__MGIA14FxFgevxrPyvrag23QvfpneqnoyrFgevxrCvaareR:
 .space __SIZEOF_POINTER__
@@ -16903,7 +16903,7 @@
 b__MA14FxZrzbelFgernzP1RCXizo:
 nop
 .data
-.globl b__MGGAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
+.weak b__MGGAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
 .type b__MGGAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR,%object
 b__MGGAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR:
 .space __SIZEOF_POINTER__
@@ -17218,7 +17218,7 @@
 b__MA8FxFgevat3frgRCXpz:
 nop
 .data
-.globl b__MGI12TeQQYPbagrkg
+.weak b__MGI12TeQQYPbagrkg
 .type b__MGI12TeQQYPbagrkg,%object
 b__MGI12TeQQYPbagrkg:
 .space __SIZEOF_POINTER__
@@ -17523,7 +17523,7 @@
 b_IC8YPbybeFcnprGenafsbez:
 nop
 .data
-.globl b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR16_AF_13onfvp_bfgernzVpF2_RR
+.weak b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR16_AF_13onfvp_bfgernzVpF2_RR
 .type b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR16_AF_13onfvp_bfgernzVpF2_RR,%object
 b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR16_AF_13onfvp_bfgernzVpF2_RR:
 .space __SIZEOF_POINTER__
@@ -17798,7 +17798,7 @@
 b__MA9FxJFgernz17jevgrOvtQrpNfGrkgRyv:
 nop
 .data
-.globl b__MGI19FxQvyngrVzntrSvygre
+.weak b__MGI19FxQvyngrVzntrSvygre
 .type b__MGI19FxQvyngrVzntrSvygre,%object
 b__MGI19FxQvyngrVzntrSvygre:
 .space __SIZEOF_POINTER__
diff --git a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_031.S b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_031.S
index 1212559..1b21370 100644
--- a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_031.S
+++ b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_031.S
@@ -3,42 +3,42 @@
 .data
 .p2align 4
 .text
-.globl b__MAFg3__17trgyvarVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRREAF_13onfvp_vfgernzVG_G0_RRF9_EAF_12onfvp_fgevatVF6_F7_G1_RRF6_
+.weak b__MAFg3__17trgyvarVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRREAF_13onfvp_vfgernzVG_G0_RRF9_EAF_12onfvp_fgevatVF6_F7_G1_RRF6_
 .type b__MAFg3__17trgyvarVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRREAF_13onfvp_vfgernzVG_G0_RRF9_EAF_12onfvp_fgevatVF6_F7_G1_RRF6_,%function
 b__MAFg3__17trgyvarVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRREAF_13onfvp_vfgernzVG_G0_RRF9_EAF_12onfvp_fgevatVF6_F7_G1_RRF6_:
 nop
 .text
-.globl b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRR8biresybjRv
+.weak b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRR8biresybjRv
 .type b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRR8biresybjRv,%function
 b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRR8biresybjRv:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq3ocs11pbqrFrpgvbaRAF_9nyybpngbeVF3_RRR21__chfu_onpx_fybj_cnguVF3_RRiBG_
+.weak b__MAFg3__16irpgbeVA7naqebvq3ocs11pbqrFrpgvbaRAF_9nyybpngbeVF3_RRR21__chfu_onpx_fybj_cnguVF3_RRiBG_
 .type b__MAFg3__16irpgbeVA7naqebvq3ocs11pbqrFrpgvbaRAF_9nyybpngbeVF3_RRR21__chfu_onpx_fybj_cnguVF3_RRiBG_,%function
 b__MAFg3__16irpgbeVA7naqebvq3ocs11pbqrFrpgvbaRAF_9nyybpngbeVF3_RRR21__chfu_onpx_fybj_cnguVF3_RRiBG_:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq4onfr14havdhr_sq_vzcyVAF2_13QrsnhygPybfreRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_
+.weak b__MAFg3__16irpgbeVA7naqebvq4onfr14havdhr_sq_vzcyVAF2_13QrsnhygPybfreRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_
 .type b__MAFg3__16irpgbeVA7naqebvq4onfr14havdhr_sq_vzcyVAF2_13QrsnhygPybfreRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_,%function
 b__MAFg3__16irpgbeVA7naqebvq4onfr14havdhr_sq_vzcyVAF2_13QrsnhygPybfreRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_:
 nop
 .data
-.globl b__MGGAFg3__114onfvp_vsfgernzVpAF_11pune_genvgfVpRRRR
+.weak b__MGGAFg3__114onfvp_vsfgernzVpAF_11pune_genvgfVpRRRR
 .type b__MGGAFg3__114onfvp_vsfgernzVpAF_11pune_genvgfVpRRRR,%object
 b__MGGAFg3__114onfvp_vsfgernzVpAF_11pune_genvgfVpRRRR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
+.weak b__MGIAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
 .type b__MGIAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR,%object
 b__MGIAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRRP2Ri
+.weak b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRRP2Ri
 .type b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRRP2Ri,%function
 b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRRP2Ri:
 nop
 .text
-.globl b__MAFg3__127__vafregvba_fbeg_vapbzcyrgrVECSo9rys64_flzF1_RCF1_RRoG0_F6_G_
+.weak b__MAFg3__127__vafregvba_fbeg_vapbzcyrgrVECSo9rys64_flzF1_RCF1_RRoG0_F6_G_
 .type b__MAFg3__127__vafregvba_fbeg_vapbzcyrgrVECSo9rys64_flzF1_RCF1_RRoG0_F6_G_,%function
 b__MAFg3__127__vafregvba_fbeg_vapbzcyrgrVECSo9rys64_flzF1_RCF1_RRoG0_F6_G_:
 nop
@@ -53,17 +53,17 @@
 b__MA7naqebvq3ocsrdREXAF0_8FgngfXrlRF3_:
 nop
 .text
-.globl b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR8biresybjRv
+.weak b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR8biresybjRv
 .type b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR8biresybjRv,%function
 b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR8biresybjRv:
 nop
 .text
-.globl b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRR9conpxsnvyRv
+.weak b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRR9conpxsnvyRv
 .type b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRR9conpxsnvyRv,%function
 b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRR9conpxsnvyRv:
 nop
 .text
-.globl b__MAFg3__16__fbegVECSo9rys64_flzF1_RCF1_RRiG0_F6_G_
+.weak b__MAFg3__16__fbegVECSo9rys64_flzF1_RCF1_RRiG0_F6_G_
 .type b__MAFg3__16__fbegVECSo9rys64_flzF1_RCF1_RRiG0_F6_G_,%function
 b__MAFg3__16__fbegVECSo9rys64_flzF1_RCF1_RRiG0_F6_G_:
 nop
@@ -78,27 +78,27 @@
 b__MA7naqebvq3ocs8ocsSqTrgRCXpw:
 nop
 .text
-.globl b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9conpxsnvyRv
+.weak b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9conpxsnvyRv
 .type b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9conpxsnvyRv,%function
 b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9conpxsnvyRv:
 nop
 .text
-.globl b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRR7frrxcbfRAF_4scbfV9zofgngr_gRRw
+.weak b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRR7frrxcbfRAF_4scbfV9zofgngr_gRRw
 .type b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRR7frrxcbfRAF_4scbfV9zofgngr_gRRw,%function
 b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRR7frrxcbfRAF_4scbfV9zofgngr_gRRw:
 nop
 .text
-.globl b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRR9haqresybjRi
+.weak b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRR9haqresybjRi
 .type b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRR9haqresybjRi,%function
 b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRR9haqresybjRi:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq4onfr14havdhr_sq_vzcyVAF2_13QrsnhygPybfreRRRAF_9nyybpngbeVF5_RRR26__fjnc_bhg_pvephyne_ohssreREAF_14__fcyvg_ohssreVF5_EF7_RR
+.weak b__MAFg3__16irpgbeVA7naqebvq4onfr14havdhr_sq_vzcyVAF2_13QrsnhygPybfreRRRAF_9nyybpngbeVF5_RRR26__fjnc_bhg_pvephyne_ohssreREAF_14__fcyvg_ohssreVF5_EF7_RR
 .type b__MAFg3__16irpgbeVA7naqebvq4onfr14havdhr_sq_vzcyVAF2_13QrsnhygPybfreRRRAF_9nyybpngbeVF5_RRR26__fjnc_bhg_pvephyne_ohssreREAF_14__fcyvg_ohssreVF5_EF7_RR,%function
 b__MAFg3__16irpgbeVA7naqebvq4onfr14havdhr_sq_vzcyVAF2_13QrsnhygPybfreRRRAF_9nyybpngbeVF5_RRR26__fjnc_bhg_pvephyne_ohssreREAF_14__fcyvg_ohssreVF5_EF7_RR:
 nop
 .data
-.globl b__MGIAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRRR
+.weak b__MGIAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRRR
 .type b__MGIAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRRR,%object
 b__MGIAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRRR:
 .space __SIZEOF_POINTER__
@@ -108,22 +108,22 @@
 b__MA7naqebvq3ocs20flapuebavmrXrearyEPHRi:
 nop
 .text
-.globl b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR3fgeREXAF_12onfvp_fgevatVpF2_F4_RR
+.weak b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR3fgeREXAF_12onfvp_fgevatVpF2_F4_RR
 .type b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR3fgeREXAF_12onfvp_fgevatVpF2_F4_RR,%function
 b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR3fgeREXAF_12onfvp_fgevatVpF2_F4_RR:
 nop
 .text
-.globl b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9haqresybjRi
+.weak b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9haqresybjRi
 .type b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9haqresybjRi,%function
 b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9haqresybjRi:
 nop
 .text
-.globl b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRR5vzohrREXAF_6ybpnyrR
+.weak b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRR5vzohrREXAF_6ybpnyrR
 .type b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRR5vzohrREXAF_6ybpnyrR,%function
 b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRR5vzohrREXAF_6ybpnyrR:
 nop
 .text
-.globl b__MAFg3__17__fbeg4VECSo9rys64_flzF1_RCF1_RRwG0_F6_F6_F6_G_
+.weak b__MAFg3__17__fbeg4VECSo9rys64_flzF1_RCF1_RRwG0_F6_F6_F6_G_
 .type b__MAFg3__17__fbeg4VECSo9rys64_flzF1_RCF1_RRwG0_F6_F6_F6_G_,%function
 b__MAFg3__17__fbeg4VECSo9rys64_flzF1_RCF1_RRwG0_F6_F6_F6_G_:
 nop
@@ -143,17 +143,17 @@
 b__MA7naqebvq3ocs9perngrZncR12ocs_znc_glcrwwww:
 nop
 .text
-.globl b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRR6frgohsRCpy
+.weak b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRR6frgohsRCpy
 .type b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRR6frgohsRCpy,%function
 b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRR6frgohsRCpy:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq3ocs11ocs_znc_qrsRAF_9nyybpngbeVF3_RRR8__nccraqRz
+.weak b__MAFg3__16irpgbeVA7naqebvq3ocs11ocs_znc_qrsRAF_9nyybpngbeVF3_RRR8__nccraqRz
 .type b__MAFg3__16irpgbeVA7naqebvq3ocs11ocs_znc_qrsRAF_9nyybpngbeVF3_RRR8__nccraqRz,%function
 b__MAFg3__16irpgbeVA7naqebvq3ocs11ocs_znc_qrsRAF_9nyybpngbeVF3_RRR8__nccraqRz:
 nop
 .data
-.globl b__MGIAFg3__114onfvp_vsfgernzVpAF_11pune_genvgfVpRRRR
+.weak b__MGIAFg3__114onfvp_vsfgernzVpAF_11pune_genvgfVpRRRR
 .type b__MGIAFg3__114onfvp_vsfgernzVpAF_11pune_genvgfVpRRRR,%object
 b__MGIAFg3__114onfvp_vsfgernzVpAF_11pune_genvgfVpRRRR:
 .space __SIZEOF_POINTER__
@@ -163,12 +163,12 @@
 b__MA7naqebvq3ocs18trgOcsFhccbegYriryRi:
 nop
 .data
-.globl b__MGGAFg3__119onfvp_vfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
+.weak b__MGGAFg3__119onfvp_vfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
 .type b__MGGAFg3__119onfvp_vfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR,%object
 b__MGGAFg3__119onfvp_vfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGPAFg3__114onfvp_vsfgernzVpAF_11pune_genvgfVpRRRR0_AF_13onfvp_vfgernzVpF2_RR
+.weak b__MGPAFg3__114onfvp_vsfgernzVpAF_11pune_genvgfVpRRRR0_AF_13onfvp_vfgernzVpF2_RR
 .type b__MGPAFg3__114onfvp_vsfgernzVpAF_11pune_genvgfVpRRRR0_AF_13onfvp_vfgernzVpF2_RR,%object
 b__MGPAFg3__114onfvp_vsfgernzVpAF_11pune_genvgfVpRRRR0_AF_13onfvp_vfgernzVpF2_RR:
 .space __SIZEOF_POINTER__
@@ -178,17 +178,17 @@
 b__MA7naqebvq3ocs11ocsCebtYbnqR13ocs_cebt_glcrAF_9argqhgvyf5FyvprRCXpwF3_:
 nop
 .text
-.globl b__MAFg3__16irpgbeV10rys64_fuqeAF_9nyybpngbeVF1_RRR8__nccraqRz
+.weak b__MAFg3__16irpgbeV10rys64_fuqeAF_9nyybpngbeVF1_RRR8__nccraqRz
 .type b__MAFg3__16irpgbeV10rys64_fuqeAF_9nyybpngbeVF1_RRR8__nccraqRz,%function
 b__MAFg3__16irpgbeV10rys64_fuqeAF_9nyybpngbeVF1_RRR8__nccraqRz:
 nop
 .text
-.globl b__MAFg3__16irpgbeV9rys64_flzAF_9nyybpngbeVF1_RRR6nffvtaVCF1_RRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF1_AF_15vgrengbe_genvgfVF8_R9ersreraprRRR5inyhrRiR4glcrRF8_F8_
+.weak b__MAFg3__16irpgbeV9rys64_flzAF_9nyybpngbeVF1_RRR6nffvtaVCF1_RRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF1_AF_15vgrengbe_genvgfVF8_R9ersreraprRRR5inyhrRiR4glcrRF8_F8_
 .type b__MAFg3__16irpgbeV9rys64_flzAF_9nyybpngbeVF1_RRR6nffvtaVCF1_RRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF1_AF_15vgrengbe_genvgfVF8_R9ersreraprRRR5inyhrRiR4glcrRF8_F8_,%function
 b__MAFg3__16irpgbeV9rys64_flzAF_9nyybpngbeVF1_RRR6nffvtaVCF1_RRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF1_AF_15vgrengbe_genvgfVF8_R9ersreraprRRR5inyhrRiR4glcrRF8_F8_:
 nop
 .text
-.globl b__MAFg3__17__fbeg3VECSo9rys64_flzF1_RCF1_RRwG0_F6_F6_G_
+.weak b__MAFg3__17__fbeg3VECSo9rys64_flzF1_RCF1_RRwG0_F6_F6_G_
 .type b__MAFg3__17__fbeg3VECSo9rys64_flzF1_RCF1_RRwG0_F6_F6_G_,%function
 b__MAFg3__17__fbeg3VECSo9rys64_flzF1_RCF1_RRwG0_F6_F6_G_:
 nop
@@ -213,22 +213,22 @@
 b__MA7naqebvq3ocs8ybnqCebtRCXp:
 nop
 .text
-.globl b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRR4flapRi
+.weak b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRR4flapRi
 .type b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRR4flapRi,%function
 b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRR4flapRi:
 nop
 .text
-.globl b__MAFg3__16irpgbeVpAF_9nyybpngbeVpRRR8__nccraqRz
+.weak b__MAFg3__16irpgbeVpAF_9nyybpngbeVpRRR8__nccraqRz
 .type b__MAFg3__16irpgbeVpAF_9nyybpngbeVpRRR8__nccraqRz,%function
 b__MAFg3__16irpgbeVpAF_9nyybpngbeVpRRR8__nccraqRz:
 nop
 .text
-.globl b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRR7frrxbssRkAF_8vbf_onfr7frrxqveRw
+.weak b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRR7frrxbssRkAF_8vbf_onfr7frrxqveRw
 .type b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRR7frrxbssRkAF_8vbf_onfr7frrxqveRw,%function
 b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRR7frrxbssRkAF_8vbf_onfr7frrxqveRw:
 nop
 .text
-.globl b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRRQ0Ri
+.weak b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRRQ0Ri
 .type b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRRQ0Ri,%function
 b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRRQ0Ri:
 nop
@@ -248,7 +248,7 @@
 b__MA7naqebvq3ocs14trgSvefgZncXrlREXAF_4onfr14havdhr_sq_vzcyVAF1_13QrsnhygPybfreRRRCi:
 nop
 .data
-.globl b__MGIAFg3__119onfvp_vfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
+.weak b__MGIAFg3__119onfvp_vfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
 .type b__MGIAFg3__119onfvp_vfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR,%object
 b__MGIAFg3__119onfvp_vfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR:
 .space __SIZEOF_POINTER__
@@ -268,17 +268,17 @@
 b__MA7naqebvq3ocs15jevgrGbZncRagelREXAF_4onfr14havdhr_sq_vzcyVAF1_13QrsnhygPybfreRRRCiF7_z:
 nop
 .text
-.globl b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR7frrxbssRkAF_8vbf_onfr7frrxqveRw
+.weak b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR7frrxbssRkAF_8vbf_onfr7frrxqveRw
 .type b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR7frrxbssRkAF_8vbf_onfr7frrxqveRw,%function
 b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR7frrxbssRkAF_8vbf_onfr7frrxqveRw:
 nop
 .text
-.globl b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRRQ2Ri
+.weak b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRRQ2Ri
 .type b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRRQ2Ri,%function
 b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRRQ2Ri:
 nop
 .text
-.globl b__MAFg3__16irpgbeVpAF_9nyybpngbeVpRRR6nffvtaVCpRRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVpAF_15vgrengbe_genvgfVF7_R9ersreraprRRR5inyhrRiR4glcrRF7_F7_
+.weak b__MAFg3__16irpgbeVpAF_9nyybpngbeVpRRR6nffvtaVCpRRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVpAF_15vgrengbe_genvgfVF7_R9ersreraprRRR5inyhrRiR4glcrRF7_F7_
 .type b__MAFg3__16irpgbeVpAF_9nyybpngbeVpRRR6nffvtaVCpRRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVpAF_15vgrengbe_genvgfVF7_R9ersreraprRRR5inyhrRiR4glcrRF7_F7_,%function
 b__MAFg3__16irpgbeVpAF_9nyybpngbeVpRRR6nffvtaVCpRRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVpAF_15vgrengbe_genvgfVF7_R9ersreraprRRR5inyhrRiR4glcrRF7_F7_:
 nop
@@ -298,12 +298,12 @@
 b__MA7naqebvq3ocsrdREXAF0_10FgngfInyhrRF3_:
 nop
 .data
-.globl b__MGPAFg3__119onfvp_vfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_13onfvp_vfgernzVpF2_RR
+.weak b__MGPAFg3__119onfvp_vfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_13onfvp_vfgernzVpF2_RR
 .type b__MGPAFg3__119onfvp_vfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_13onfvp_vfgernzVpF2_RR,%object
 b__MGPAFg3__119onfvp_vfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_13onfvp_vfgernzVpF2_RR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__16irpgbeVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF6_RRR21__chfu_onpx_fybj_cnguVEXF6_RRiBG_
+.weak b__MAFg3__16irpgbeVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF6_RRR21__chfu_onpx_fybj_cnguVEXF6_RRiBG_
 .type b__MAFg3__16irpgbeVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF6_RRR21__chfu_onpx_fybj_cnguVEXF6_RRiBG_,%function
 b__MAFg3__16irpgbeVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF6_RRR21__chfu_onpx_fybj_cnguVEXF6_RRiBG_:
 nop
diff --git a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_032.S b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_032.S
index 6424965..b3e3f66 100644
--- a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_032.S
+++ b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_032.S
@@ -13,32 +13,32 @@
 b__MA7naqebvq3ocs26cnefrOcsArgjbexFgngfQrgnvyRCAFg3__16irpgbeVAF0_10fgngf_yvarRAF1_9nyybpngbeVF3_RRRREXAF2_VAF1_12onfvp_fgevatVpAF1_11pune_genvgfVpRRAF4_VpRRRRAF4_VFP_RRRRvv:
 nop
 .text
-.globl b__MAFg3__17__fbeg3VEAF_6__yrffVA7naqebvq3ocs10fgngf_yvarRF4_RRCF4_RRwG0_F8_F8_G_
+.weak b__MAFg3__17__fbeg3VEAF_6__yrffVA7naqebvq3ocs10fgngf_yvarRF4_RRCF4_RRwG0_F8_F8_G_
 .type b__MAFg3__17__fbeg3VEAF_6__yrffVA7naqebvq3ocs10fgngf_yvarRF4_RRCF4_RRwG0_F8_F8_G_,%function
 b__MAFg3__17__fbeg3VEAF_6__yrffVA7naqebvq3ocs10fgngf_yvarRF4_RRCF4_RRwG0_F8_F8_G_:
 nop
 .text
-.globl b__MAFg3__17__fbeg4VEAF_6__yrffVA7naqebvq3ocs10fgngf_yvarRF4_RRCF4_RRwG0_F8_F8_F8_G_
+.weak b__MAFg3__17__fbeg4VEAF_6__yrffVA7naqebvq3ocs10fgngf_yvarRF4_RRCF4_RRwG0_F8_F8_F8_G_
 .type b__MAFg3__17__fbeg4VEAF_6__yrffVA7naqebvq3ocs10fgngf_yvarRF4_RRCF4_RRwG0_F8_F8_F8_G_,%function
 b__MAFg3__17__fbeg4VEAF_6__yrffVA7naqebvq3ocs10fgngf_yvarRF4_RRCF4_RRwG0_F8_F8_F8_G_:
 nop
 .text
-.globl b__MA7naqebvq3ocs19trgVsnprAnzrSebzZncVAF0_8FgngfXrlRRRvEXAF0_6OcsZncVwAF0_10VsnprInyhrRRREXAF3_VG_AF0_10FgngfInyhrRRRwCpEXF8_Cy
+.weak b__MA7naqebvq3ocs19trgVsnprAnzrSebzZncVAF0_8FgngfXrlRRRvEXAF0_6OcsZncVwAF0_10VsnprInyhrRRREXAF3_VG_AF0_10FgngfInyhrRRRwCpEXF8_Cy
 .type b__MA7naqebvq3ocs19trgVsnprAnzrSebzZncVAF0_8FgngfXrlRRRvEXAF0_6OcsZncVwAF0_10VsnprInyhrRRREXAF3_VG_AF0_10FgngfInyhrRRRwCpEXF8_Cy,%function
 b__MA7naqebvq3ocs19trgVsnprAnzrSebzZncVAF0_8FgngfXrlRRRvEXAF0_6OcsZncVwAF0_10VsnprInyhrRRREXAF3_VG_AF0_10FgngfInyhrRRRwCpEXF8_Cy:
 nop
 .text
-.globl b__MA7naqebvq3ocs19trgVsnprAnzrSebzZncVwRRvEXAF0_6OcsZncVwAF0_10VsnprInyhrRRREXAF2_VG_AF0_10FgngfInyhrRRRwCpEXF7_Cy
+.weak b__MA7naqebvq3ocs19trgVsnprAnzrSebzZncVwRRvEXAF0_6OcsZncVwAF0_10VsnprInyhrRRREXAF2_VG_AF0_10FgngfInyhrRRRwCpEXF7_Cy
 .type b__MA7naqebvq3ocs19trgVsnprAnzrSebzZncVwRRvEXAF0_6OcsZncVwAF0_10VsnprInyhrRRREXAF2_VG_AF0_10FgngfInyhrRRRwCpEXF7_Cy,%function
 b__MA7naqebvq3ocs19trgVsnprAnzrSebzZncVwRRvEXAF0_6OcsZncVwAF0_10VsnprInyhrRRREXAF2_VG_AF0_10FgngfInyhrRRRwCpEXF7_Cy:
 nop
 .text
-.globl b__MA7naqebvq3ocs20znlorYbtHaxabjaVsnprVAF0_8FgngfXrlRRRivEXAF0_6OcsZncVG_AF0_10FgngfInyhrRRREXF4_Cy
+.weak b__MA7naqebvq3ocs20znlorYbtHaxabjaVsnprVAF0_8FgngfXrlRRRivEXAF0_6OcsZncVG_AF0_10FgngfInyhrRRREXF4_Cy
 .type b__MA7naqebvq3ocs20znlorYbtHaxabjaVsnprVAF0_8FgngfXrlRRRivEXAF0_6OcsZncVG_AF0_10FgngfInyhrRRREXF4_Cy,%function
 b__MA7naqebvq3ocs20znlorYbtHaxabjaVsnprVAF0_8FgngfXrlRRRivEXAF0_6OcsZncVG_AF0_10FgngfInyhrRRREXF4_Cy:
 nop
 .text
-.globl b__MAFg3__118__vafregvba_fbeg_3VEAF_6__yrffVA7naqebvq3ocs10fgngf_yvarRF4_RRCF4_RRiG0_F8_G_
+.weak b__MAFg3__118__vafregvba_fbeg_3VEAF_6__yrffVA7naqebvq3ocs10fgngf_yvarRF4_RRCF4_RRiG0_F8_G_
 .type b__MAFg3__118__vafregvba_fbeg_3VEAF_6__yrffVA7naqebvq3ocs10fgngf_yvarRF4_RRCF4_RRiG0_F8_G_,%function
 b__MAFg3__118__vafregvba_fbeg_3VEAF_6__yrffVA7naqebvq3ocs10fgngf_yvarRF4_RRCF4_RRiG0_F8_G_:
 nop
@@ -58,12 +58,12 @@
 b__MA7naqebvq3ocsygREXAF0_10fgngf_yvarRF3_:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq3ocs10fgngf_yvarRAF_9nyybpngbeVF3_RRR21__chfu_onpx_fybj_cnguVF3_RRiBG_
+.weak b__MAFg3__16irpgbeVA7naqebvq3ocs10fgngf_yvarRAF_9nyybpngbeVF3_RRR21__chfu_onpx_fybj_cnguVF3_RRiBG_
 .type b__MAFg3__16irpgbeVA7naqebvq3ocs10fgngf_yvarRAF_9nyybpngbeVF3_RRR21__chfu_onpx_fybj_cnguVF3_RRiBG_,%function
 b__MAFg3__16irpgbeVA7naqebvq3ocs10fgngf_yvarRAF_9nyybpngbeVF3_RRR21__chfu_onpx_fybj_cnguVF3_RRiBG_:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq3ocs10fgngf_yvarRAF_9nyybpngbeVF3_RRR8__nccraqRz
+.weak b__MAFg3__16irpgbeVA7naqebvq3ocs10fgngf_yvarRAF_9nyybpngbeVF3_RRR8__nccraqRz
 .type b__MAFg3__16irpgbeVA7naqebvq3ocs10fgngf_yvarRAF_9nyybpngbeVF3_RRR8__nccraqRz,%function
 b__MAFg3__16irpgbeVA7naqebvq3ocs10fgngf_yvarRAF_9nyybpngbeVF3_RRR8__nccraqRz:
 nop
@@ -73,7 +73,7 @@
 b__MA7naqebvq3ocs14ocsTrgHvqFgngfRwCAF0_5FgngfR:
 nop
 .text
-.globl b__MAX7naqebvq3ocs6OcsZncVwAF0_10FgngfInyhrRR7vgrengrREXAFg3__18shapgvbaVSAF_9argqhgvyf6FgnghfREXwEXF3_RRR
+.weak b__MAX7naqebvq3ocs6OcsZncVwAF0_10FgngfInyhrRR7vgrengrREXAFg3__18shapgvbaVSAF_9argqhgvyf6FgnghfREXwEXF3_RRR
 .type b__MAX7naqebvq3ocs6OcsZncVwAF0_10FgngfInyhrRR7vgrengrREXAFg3__18shapgvbaVSAF_9argqhgvyf6FgnghfREXwEXF3_RRR,%function
 b__MAX7naqebvq3ocs6OcsZncVwAF0_10FgngfInyhrRR7vgrengrREXAFg3__18shapgvbaVSAF_9argqhgvyf6FgnghfREXwEXF3_RRR:
 nop
@@ -93,12 +93,12 @@
 b__MA7naqebvq3ocsrdREXAF0_10fgngf_yvarRF3_:
 nop
 .text
-.globl b__MAX7naqebvq3ocs6OcsZncVAF0_8FgngfXrlRAF0_10FgngfInyhrRR7vgrengrREXAFg3__18shapgvbaVSAF_9argqhgvyf6FgnghfREXF2_EXF4_RRR
+.weak b__MAX7naqebvq3ocs6OcsZncVAF0_8FgngfXrlRAF0_10FgngfInyhrRR7vgrengrREXAFg3__18shapgvbaVSAF_9argqhgvyf6FgnghfREXF2_EXF4_RRR
 .type b__MAX7naqebvq3ocs6OcsZncVAF0_8FgngfXrlRAF0_10FgngfInyhrRR7vgrengrREXAFg3__18shapgvbaVSAF_9argqhgvyf6FgnghfREXF2_EXF4_RRR,%function
 b__MAX7naqebvq3ocs6OcsZncVAF0_8FgngfXrlRAF0_10FgngfInyhrRR7vgrengrREXAFg3__18shapgvbaVSAF_9argqhgvyf6FgnghfREXF2_EXF4_RRR:
 nop
 .text
-.globl b__MAFg3__127__vafregvba_fbeg_vapbzcyrgrVEAF_6__yrffVA7naqebvq3ocs10fgngf_yvarRF4_RRCF4_RRoG0_F8_G_
+.weak b__MAFg3__127__vafregvba_fbeg_vapbzcyrgrVEAF_6__yrffVA7naqebvq3ocs10fgngf_yvarRF4_RRCF4_RRoG0_F8_G_
 .type b__MAFg3__127__vafregvba_fbeg_vapbzcyrgrVEAF_6__yrffVA7naqebvq3ocs10fgngf_yvarRF4_RRCF4_RRoG0_F8_G_,%function
 b__MAFg3__127__vafregvba_fbeg_vapbzcyrgrVEAF_6__yrffVA7naqebvq3ocs10fgngf_yvarRF4_RRCF4_RRoG0_F8_G_:
 nop
@@ -133,22 +133,22 @@
 b__MA7naqebvq3ocs34cnefrOcsArgjbexFgngfQrgnvyVagreanyRCAFg3__16irpgbeVAF0_10fgngf_yvarRAF1_9nyybpngbeVF3_RRRREXAF2_VAF1_12onfvp_fgevatVpAF1_11pune_genvgfVpRRAF4_VpRRRRAF4_VFP_RRRRvvEXAF0_6OcsZncVAF0_8FgngfXrlRAF0_10FgngfInyhrRRREXAFU_VwAF0_10VsnprInyhrRRR:
 nop
 .text
-.globl b__MAFg3__16__fbegVEAF_6__yrffVA7naqebvq3ocs10fgngf_yvarRF4_RRCF4_RRiG0_F8_G_
+.weak b__MAFg3__16__fbegVEAF_6__yrffVA7naqebvq3ocs10fgngf_yvarRF4_RRCF4_RRiG0_F8_G_
 .type b__MAFg3__16__fbegVEAF_6__yrffVA7naqebvq3ocs10fgngf_yvarRF4_RRCF4_RRiG0_F8_G_,%function
 b__MAFg3__16__fbegVEAF_6__yrffVA7naqebvq3ocs10fgngf_yvarRF4_RRCF4_RRiG0_F8_G_:
 nop
 .text
-.globl b__MA7naqebvq3ocs20znlorYbtHaxabjaVsnprVwRRivEXAF0_6OcsZncVG_AF0_10FgngfInyhrRRREXF3_Cy
+.weak b__MA7naqebvq3ocs20znlorYbtHaxabjaVsnprVwRRivEXAF0_6OcsZncVG_AF0_10FgngfInyhrRRREXF3_Cy
 .type b__MA7naqebvq3ocs20znlorYbtHaxabjaVsnprVwRRivEXAF0_6OcsZncVG_AF0_10FgngfInyhrRRREXF3_Cy,%function
 b__MA7naqebvq3ocs20znlorYbtHaxabjaVsnprVwRRivEXAF0_6OcsZncVG_AF0_10FgngfInyhrRRREXF3_Cy:
 nop
 .text
-.globl b__MA7naqebvq3ocs6OcsZncVAF0_8FgngfXrlRAF0_10FgngfInyhrRR7vgrengrREXAFg3__18shapgvbaVSAF_9argqhgvyf6FgnghfREXF2_EF4_RRR
+.weak b__MA7naqebvq3ocs6OcsZncVAF0_8FgngfXrlRAF0_10FgngfInyhrRR7vgrengrREXAFg3__18shapgvbaVSAF_9argqhgvyf6FgnghfREXF2_EF4_RRR
 .type b__MA7naqebvq3ocs6OcsZncVAF0_8FgngfXrlRAF0_10FgngfInyhrRR7vgrengrREXAFg3__18shapgvbaVSAF_9argqhgvyf6FgnghfREXF2_EF4_RRR,%function
 b__MA7naqebvq3ocs6OcsZncVAF0_8FgngfXrlRAF0_10FgngfInyhrRR7vgrengrREXAFg3__18shapgvbaVSAF_9argqhgvyf6FgnghfREXF2_EF4_RRR:
 nop
 .text
-.globl b__MAX7naqebvq3ocs6OcsZncVwAF0_10FgngfInyhrRR16vgrengrJvguInyhrREXAFg3__18shapgvbaVSAF_9argqhgvyf6FgnghfREXwEXF2_EXF3_RRR
+.weak b__MAX7naqebvq3ocs6OcsZncVwAF0_10FgngfInyhrRR16vgrengrJvguInyhrREXAFg3__18shapgvbaVSAF_9argqhgvyf6FgnghfREXwEXF2_EXF3_RRR
 .type b__MAX7naqebvq3ocs6OcsZncVwAF0_10FgngfInyhrRR16vgrengrJvguInyhrREXAFg3__18shapgvbaVSAF_9argqhgvyf6FgnghfREXwEXF2_EXF3_RRR,%function
 b__MAX7naqebvq3ocs6OcsZncVwAF0_10FgngfInyhrRR16vgrengrJvguInyhrREXAFg3__18shapgvbaVSAF_9argqhgvyf6FgnghfREXwEXF2_EXF3_RRR:
 nop
diff --git a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_033.S b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_033.S
index 86adc2a..dcf0f0c 100644
--- a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_033.S
+++ b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_033.S
@@ -33,12 +33,12 @@
 b__MAX7naqebvq9argqhgvyf9VCNqqerff8gbFgevatRi:
 nop
 .text
-.globl b__MAFg3__112__qrdhr_onfrVXAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF7_RRR5pyrneRi
+.weak b__MAFg3__112__qrdhr_onfrVXAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF7_RRR5pyrneRi
 .type b__MAFg3__112__qrdhr_onfrVXAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF7_RRR5pyrneRi,%function
 b__MAFg3__112__qrdhr_onfrVXAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF7_RRR5pyrneRi:
 nop
 .text
-.globl b__MA7naqebvq4onfr4WbvaVAFg3__16irpgbeVvAF2_9nyybpngbeVvRRRRCXpRRAF2_12onfvp_fgevatVpAF2_11pune_genvgfVpRRAF4_VpRRRREXG_G0_
+.weak b__MA7naqebvq4onfr4WbvaVAFg3__16irpgbeVvAF2_9nyybpngbeVvRRRRCXpRRAF2_12onfvp_fgevatVpAF2_11pune_genvgfVpRRAF4_VpRRRREXG_G0_
 .type b__MA7naqebvq4onfr4WbvaVAFg3__16irpgbeVvAF2_9nyybpngbeVvRRRRCXpRRAF2_12onfvp_fgevatVpAF2_11pune_genvgfVpRRAF4_VpRRRREXG_G0_,%function
 b__MA7naqebvq4onfr4WbvaVAFg3__16irpgbeVvAF2_9nyybpngbeVvRRRRCXpRRAF2_12onfvp_fgevatVpAF2_11pune_genvgfVpRRAF4_VpRRRREXG_G0_:
 nop
@@ -58,12 +58,12 @@
 b__MA7naqebvq9argqhgvyf8gbFgevatRAF0_5FyvprR:
 nop
 .text
-.globl b__MAFg3__114__fcyvg_ohssreVCXAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF8_RRR9chfu_onpxRBF8_
+.weak b__MAFg3__114__fcyvg_ohssreVCXAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF8_RRR9chfu_onpxRBF8_
 .type b__MAFg3__114__fcyvg_ohssreVCXAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF8_RRR9chfu_onpxRBF8_,%function
 b__MAFg3__114__fcyvg_ohssreVCXAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF8_RRR9chfu_onpxRBF8_:
 nop
 .data
-.globl b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR16_AF_13onfvp_bfgernzVpF2_RR
+.weak b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR16_AF_13onfvp_bfgernzVpF2_RR
 .type b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR16_AF_13onfvp_bfgernzVpF2_RR,%object
 b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR16_AF_13onfvp_bfgernzVpF2_RR:
 .space __SIZEOF_POINTER__
@@ -83,17 +83,17 @@
 b__MA7naqebvq9argqhgvyf8YbtRagel12jvguQhengvbaREXAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRR:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF6_RRR21__chfu_onpx_fybj_cnguVF6_RRiBG_
+.weak b__MAFg3__16irpgbeVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF6_RRR21__chfu_onpx_fybj_cnguVF6_RRiBG_
 .type b__MAFg3__16irpgbeVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF6_RRR21__chfu_onpx_fybj_cnguVF6_RRiBG_,%function
 b__MAFg3__16irpgbeVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF6_RRR21__chfu_onpx_fybj_cnguVF6_RRiBG_:
 nop
 .data
-.globl b__MGPAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_13onfvp_bfgernzVpF2_RR
+.weak b__MGPAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_13onfvp_bfgernzVpF2_RR
 .type b__MGPAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_13onfvp_bfgernzVpF2_RR,%object
 b__MGPAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_13onfvp_bfgernzVpF2_RR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
+.weak b__MGIAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
 .type b__MGIAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR,%object
 b__MGIAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR:
 .space __SIZEOF_POINTER__
@@ -113,22 +113,22 @@
 b__MA7naqebvq9argqhgvyf9VCNqqerff9sbeFgevatREXAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRCF1_:
 nop
 .text
-.globl b__MAFg3__112__qrdhr_onfrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF6_RRR5pyrneRi
+.weak b__MAFg3__112__qrdhr_onfrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF6_RRR5pyrneRi
 .type b__MAFg3__112__qrdhr_onfrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF6_RRR5pyrneRi,%function
 b__MAFg3__112__qrdhr_onfrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF6_RRR5pyrneRi:
 nop
 .text
-.globl b__MAFg3__114__fcyvg_ohssreVCXAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRREAF4_VF8_RRR9chfu_onpxRBF8_
+.weak b__MAFg3__114__fcyvg_ohssreVCXAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRREAF4_VF8_RRR9chfu_onpxRBF8_
 .type b__MAFg3__114__fcyvg_ohssreVCXAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRREAF4_VF8_RRR9chfu_onpxRBF8_,%function
 b__MAFg3__114__fcyvg_ohssreVCXAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRREAF4_VF8_RRR9chfu_onpxRBF8_:
 nop
 .text
-.globl b__MAFg3__15qrdhrVXAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF7_RRR19__nqq_onpx_pncnpvglRi
+.weak b__MAFg3__15qrdhrVXAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF7_RRR19__nqq_onpx_pncnpvglRi
 .type b__MAFg3__15qrdhrVXAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF7_RRR19__nqq_onpx_pncnpvglRi,%function
 b__MAFg3__15qrdhrVXAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF7_RRR19__nqq_onpx_pncnpvglRi:
 nop
 .data
-.globl b__MGIA7naqebvq9argqhgvyf12ErnyFlfpnyyfR
+.weak b__MGIA7naqebvq9argqhgvyf12ErnyFlfpnyyfR
 .type b__MGIA7naqebvq9argqhgvyf12ErnyFlfpnyyfR,%object
 b__MGIA7naqebvq9argqhgvyf12ErnyFlfpnyyfR:
 .space __SIZEOF_POINTER__
@@ -143,7 +143,7 @@
 b__MA7naqebvq9argqhgvyf3YbtQ1Ri:
 nop
 .text
-.globl b__MAFg3__114__fcyvg_ohssreVCAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF7_RRR10chfu_sebagRBF7_
+.weak b__MAFg3__114__fcyvg_ohssreVCAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF7_RRR10chfu_sebagRBF7_
 .type b__MAFg3__114__fcyvg_ohssreVCAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF7_RRR10chfu_sebagRBF7_,%function
 b__MAFg3__114__fcyvg_ohssreVCAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF7_RRR10chfu_sebagRBF7_:
 nop
@@ -163,7 +163,7 @@
 b__MA7naqebvq9argqhgvyf8YbtRagel3netREXAFg3__16irpgbeVAF2_12onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRAF7_VF9_RRRR:
 nop
 .text
-.globl b__MAFg3__15qrdhrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF6_RRR8__nccraqVAF_16__qrdhr_vgrengbeVXF6_CFO_EFO_CXFP_yYy170RRRRRiG_FU_CAF_9ranoyr_vsVKfe21__vf_sbejneq_vgrengbeVFU_RR5inyhrRiR4glcrR
+.weak b__MAFg3__15qrdhrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF6_RRR8__nccraqVAF_16__qrdhr_vgrengbeVXF6_CFO_EFO_CXFP_yYy170RRRRRiG_FU_CAF_9ranoyr_vsVKfe21__vf_sbejneq_vgrengbeVFU_RR5inyhrRiR4glcrR
 .type b__MAFg3__15qrdhrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF6_RRR8__nccraqVAF_16__qrdhr_vgrengbeVXF6_CFO_EFO_CXFP_yYy170RRRRRiG_FU_CAF_9ranoyr_vsVKfe21__vf_sbejneq_vgrengbeVFU_RR5inyhrRiR4glcrR,%function
 b__MAFg3__15qrdhrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF6_RRR8__nccraqVAF_16__qrdhr_vgrengbeVXF6_CFO_EFO_CXFP_yYy170RRRRRiG_FU_CAF_9ranoyr_vsVKfe21__vf_sbejneq_vgrengbeVFU_RR5inyhrRiR4glcrR:
 nop
@@ -183,7 +183,7 @@
 b__MA7naqebvq9argqhgvyf8YbtRagel3netREXAFg3__16irpgbeVvAF2_9nyybpngbeVvRRRR:
 nop
 .text
-.globl b__MAFg3__1yfVpAF_11pune_genvgfVpRRRREAF_13onfvp_bfgernzVG_G0_RRF7_EXAF_9__vbz_g10VF4_RR
+.weak b__MAFg3__1yfVpAF_11pune_genvgfVpRRRREAF_13onfvp_bfgernzVG_G0_RRF7_EXAF_9__vbz_g10VF4_RR
 .type b__MAFg3__1yfVpAF_11pune_genvgfVpRRRREAF_13onfvp_bfgernzVG_G0_RRF7_EXAF_9__vbz_g10VF4_RR,%function
 b__MAFg3__1yfVpAF_11pune_genvgfVpRRRREAF_13onfvp_bfgernzVG_G0_RRF7_EXAF_9__vbz_g10VF4_RR:
 nop
@@ -193,7 +193,7 @@
 b__MAX7naqebvq9argqhgvyf8VCCersvk15vfHavavgvnyvmrqRi:
 nop
 .text
-.globl b__MA7naqebvq4onfr4WbvaVAFg3__16irpgbeVAF2_12onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRAF7_VF9_RRRRCXpRRF9_EXG_G0_
+.weak b__MA7naqebvq4onfr4WbvaVAFg3__16irpgbeVAF2_12onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRAF7_VF9_RRRRCXpRRF9_EXG_G0_
 .type b__MA7naqebvq4onfr4WbvaVAFg3__16irpgbeVAF2_12onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRAF7_VF9_RRRRCXpRRF9_EXG_G0_,%function
 b__MA7naqebvq4onfr4WbvaVAFg3__16irpgbeVAF2_12onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRAF7_VF9_RRRRCXpRRF9_EXG_G0_:
 nop
@@ -203,7 +203,7 @@
 b__MA7naqebvq9argqhgvyf8YbtRagel7jvguHvqRw:
 nop
 .text
-.globl b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9conpxsnvyRv
+.weak b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9conpxsnvyRv
 .type b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9conpxsnvyRv,%function
 b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9conpxsnvyRv:
 nop
@@ -228,7 +228,7 @@
 b__MA7naqebvq9argqhgvyf8YbtRagel7zrffntrREXAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRR:
 nop
 .text
-.globl b__MAFg3__114__fcyvg_ohssreVCXAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRREAF4_VF8_RRR10chfu_sebagREXF8_
+.weak b__MAFg3__114__fcyvg_ohssreVCXAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRREAF4_VF8_RRR10chfu_sebagREXF8_
 .type b__MAFg3__114__fcyvg_ohssreVCXAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRREAF4_VF8_RRR10chfu_sebagREXF8_,%function
 b__MAFg3__114__fcyvg_ohssreVCXAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRREAF4_VF8_RRR10chfu_sebagREXF8_:
 nop
@@ -248,12 +248,12 @@
 b__MA7naqebvq9argqhgvyf8YbtRagel3netREXAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRR:
 nop
 .data
-.globl b__MGGAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
+.weak b__MGGAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
 .type b__MGGAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR,%object
 b__MGGAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGGAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
+.weak b__MGGAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
 .type b__MGGAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR,%object
 b__MGGAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR:
 .space __SIZEOF_POINTER__
@@ -268,12 +268,12 @@
 b__MAX7naqebvq9argqhgvyf8YbtRagel8gbFgevatRi:
 nop
 .text
-.globl b__MAFg3__14pbclVXAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRCF7_EF7_CXF8_yYy170RF6_CF6_EF6_CFP_yYy170RRRAF_16__qrdhr_vgrengbeVG5_G6_G7_G8_G9_KG10_RRRAFS_VG_G0_G1_G2_G3_KG4_RRRFE_FY_
+.weak b__MAFg3__14pbclVXAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRCF7_EF7_CXF8_yYy170RF6_CF6_EF6_CFP_yYy170RRRAF_16__qrdhr_vgrengbeVG5_G6_G7_G8_G9_KG10_RRRAFS_VG_G0_G1_G2_G3_KG4_RRRFE_FY_
 .type b__MAFg3__14pbclVXAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRCF7_EF7_CXF8_yYy170RF6_CF6_EF6_CFP_yYy170RRRAF_16__qrdhr_vgrengbeVG5_G6_G7_G8_G9_KG10_RRRAFS_VG_G0_G1_G2_G3_KG4_RRRFE_FY_,%function
 b__MAFg3__14pbclVXAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRCF7_EF7_CXF8_yYy170RF6_CF6_EF6_CFP_yYy170RRRAF_16__qrdhr_vgrengbeVG5_G6_G7_G8_G9_KG10_RRRAFS_VG_G0_G1_G2_G3_KG4_RRRFE_FY_:
 nop
 .text
-.globl b__MAFg3__15qrdhrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF6_RRR14__renfr_gb_raqRAF_16__qrdhr_vgrengbeVF6_CXF6_EFN_CXFO_yYy170RRR
+.weak b__MAFg3__15qrdhrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF6_RRR14__renfr_gb_raqRAF_16__qrdhr_vgrengbeVF6_CXF6_EFN_CXFO_yYy170RRR
 .type b__MAFg3__15qrdhrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF6_RRR14__renfr_gb_raqRAF_16__qrdhr_vgrengbeVF6_CXF6_EFN_CXFO_yYy170RRR,%function
 b__MAFg3__15qrdhrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF6_RRR14__renfr_gb_raqRAF_16__qrdhr_vgrengbeVF6_CXF6_EFN_CXFO_yYy170RRR:
 nop
@@ -288,12 +288,12 @@
 b__MA7naqebvq9argqhgvyf8YbtRagel3netREXAFg3__16irpgbeVuAF2_9nyybpngbeVuRRRR:
 nop
 .text
-.globl b__MAFg3__114__fcyvg_ohssreVCAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF7_RRR9chfu_onpxRBF7_
+.weak b__MAFg3__114__fcyvg_ohssreVCAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF7_RRR9chfu_onpxRBF7_
 .type b__MAFg3__114__fcyvg_ohssreVCAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF7_RRR9chfu_onpxRBF7_,%function
 b__MAFg3__114__fcyvg_ohssreVCAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF7_RRR9chfu_onpxRBF7_:
 nop
 .data
-.globl b__MGIAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
+.weak b__MGIAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
 .type b__MGIAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR,%object
 b__MGIAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR:
 .space __SIZEOF_POINTER__
@@ -313,7 +313,7 @@
 b__MA7naqebvq9argqhgvyf3YbtQ2Ri:
 nop
 .text
-.globl b__MAXFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR3fgeRi
+.weak b__MAXFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR3fgeRi
 .type b__MAXFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR3fgeRi,%function
 b__MAXFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR3fgeRi:
 nop
@@ -333,12 +333,12 @@
 b__MAX7naqebvq9argqhgvyf8VCCersvk8gbFgevatRi:
 nop
 .text
-.globl b__MAFg3__114__fcyvg_ohssreVCAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRREAF4_VF7_RRR9chfu_onpxRBF7_
+.weak b__MAFg3__114__fcyvg_ohssreVCAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRREAF4_VF7_RRR9chfu_onpxRBF7_
 .type b__MAFg3__114__fcyvg_ohssreVCAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRREAF4_VF7_RRR9chfu_onpxRBF7_,%function
 b__MAFg3__114__fcyvg_ohssreVCAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRREAF4_VF7_RRR9chfu_onpxRBF7_:
 nop
 .text
-.globl b__MAFg3__15qrdhrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF6_RRR19__nqq_onpx_pncnpvglRz
+.weak b__MAFg3__15qrdhrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF6_RRR19__nqq_onpx_pncnpvglRz
 .type b__MAFg3__15qrdhrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF6_RRR19__nqq_onpx_pncnpvglRz,%function
 b__MAFg3__15qrdhrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF6_RRR19__nqq_onpx_pncnpvglRz:
 nop
@@ -363,12 +363,12 @@
 b__MAX7naqebvq9argqhgvyf3Ybt12sbeRnpuRagelREXAFg3__18shapgvbaVSiEXAF2_12onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRRRR:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF6_RRR21__chfu_onpx_fybj_cnguVEXF6_RRiBG_
+.weak b__MAFg3__16irpgbeVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF6_RRR21__chfu_onpx_fybj_cnguVEXF6_RRiBG_
 .type b__MAFg3__16irpgbeVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF6_RRR21__chfu_onpx_fybj_cnguVEXF6_RRiBG_,%function
 b__MAFg3__16irpgbeVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF6_RRR21__chfu_onpx_fybj_cnguVEXF6_RRiBG_:
 nop
 .text
-.globl b__MAFg3__124__chg_punenpgre_frdhraprVpAF_11pune_genvgfVpRRRREAF_13onfvp_bfgernzVG_G0_RRF7_CXF4_z
+.weak b__MAFg3__124__chg_punenpgre_frdhraprVpAF_11pune_genvgfVpRRRREAF_13onfvp_bfgernzVG_G0_RRF7_CXF4_z
 .type b__MAFg3__124__chg_punenpgre_frdhraprVpAF_11pune_genvgfVpRRRREAF_13onfvp_bfgernzVG_G0_RRF7_CXF4_z,%function
 b__MAFg3__124__chg_punenpgre_frdhraprVpAF_11pune_genvgfVpRRRREAF_13onfvp_bfgernzVG_G0_RRF7_CXF4_z:
 nop
@@ -378,7 +378,7 @@
 b__MA7naqebvq9argqhgvyf14FlfpnyyfUbyqreQ1Ri:
 nop
 .text
-.globl b__MAFg3__114__fcyvg_ohssreVCXAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF8_RRR10chfu_sebagRBF8_
+.weak b__MAFg3__114__fcyvg_ohssreVCXAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF8_RRR10chfu_sebagRBF8_
 .type b__MAFg3__114__fcyvg_ohssreVCXAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF8_RRR10chfu_sebagRBF8_,%function
 b__MAFg3__114__fcyvg_ohssreVCXAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF8_RRR10chfu_sebagRBF8_:
 nop
@@ -433,27 +433,27 @@
 b__MA7naqebvq9argqhgvyf8YbtRagel7ergheafRo:
 nop
 .text
-.globl b__MAFg3__114__fcyvg_ohssreVCAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRREAF4_VF7_RRR10chfu_sebagREXF7_
+.weak b__MAFg3__114__fcyvg_ohssreVCAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRREAF4_VF7_RRR10chfu_sebagREXF7_
 .type b__MAFg3__114__fcyvg_ohssreVCAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRREAF4_VF7_RRR10chfu_sebagREXF7_,%function
 b__MAFg3__114__fcyvg_ohssreVCAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRREAF4_VF7_RRR10chfu_sebagREXF7_:
 nop
 .text
-.globl b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR7frrxbssRkAF_8vbf_onfr7frrxqveRw
+.weak b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR7frrxbssRkAF_8vbf_onfr7frrxqveRw
 .type b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR7frrxbssRkAF_8vbf_onfr7frrxqveRw,%function
 b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR7frrxbssRkAF_8vbf_onfr7frrxqveRw:
 nop
 .data
-.globl b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_13onfvp_vfgernzVpF2_RR
+.weak b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_13onfvp_vfgernzVpF2_RR
 .type b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_13onfvp_vfgernzVpF2_RR,%object
 b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_13onfvp_vfgernzVpF2_RR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_14onfvp_vbfgernzVpF2_RR
+.weak b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_14onfvp_vbfgernzVpF2_RR
 .type b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_14onfvp_vbfgernzVpF2_RR,%object
 b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_14onfvp_vbfgernzVpF2_RR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
+.weak b__MGIAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
 .type b__MGIAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR,%object
 b__MGIAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR:
 .space __SIZEOF_POINTER__
@@ -463,17 +463,17 @@
 b__MA7naqebvq9argqhgvyf10QhzcJevgre9qrpVaqragRi:
 nop
 .text
-.globl b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR8biresybjRv
+.weak b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR8biresybjRv
 .type b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR8biresybjRv,%function
 b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR8biresybjRv:
 nop
 .text
-.globl b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9haqresybjRi
+.weak b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9haqresybjRi
 .type b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9haqresybjRi,%function
 b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9haqresybjRi:
 nop
 .text
-.globl b__MAFg3__15qrdhrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF6_RRR6nffvtaVAF_16__qrdhr_vgrengbeVXF6_CFO_EFO_CXFP_yYy170RRRRRiG_FU_CAF_9ranoyr_vsVKfe27__vf_enaqbz_npprff_vgrengbeVFU_RR5inyhrRiR4glcrR
+.weak b__MAFg3__15qrdhrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF6_RRR6nffvtaVAF_16__qrdhr_vgrengbeVXF6_CFO_EFO_CXFP_yYy170RRRRRiG_FU_CAF_9ranoyr_vsVKfe27__vf_enaqbz_npprff_vgrengbeVFU_RR5inyhrRiR4glcrR
 .type b__MAFg3__15qrdhrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF6_RRR6nffvtaVAF_16__qrdhr_vgrengbeVXF6_CFO_EFO_CXFP_yYy170RRRRRiG_FU_CAF_9ranoyr_vsVKfe27__vf_enaqbz_npprff_vgrengbeVFU_RR5inyhrRiR4glcrR,%function
 b__MAFg3__15qrdhrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF6_RRR6nffvtaVAF_16__qrdhr_vgrengbeVXF6_CFO_EFO_CXFP_yYy170RRRRRiG_FU_CAF_9ranoyr_vsVKfe27__vf_enaqbz_npprff_vgrengbeVFU_RR5inyhrRiR4glcrR:
 nop
diff --git a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_036.S b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_036.S
index 337c664..720f47b 100644
--- a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_036.S
+++ b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_036.S
@@ -3,7 +3,7 @@
 .data
 .p2align 4
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_:
 nop
@@ -33,7 +33,7 @@
 b__MA7naqebvq8uneqjner14oebnqpnfgenqvb4I1_017OaUjGharePnyyonpxP2REXAF_2fcVAF2_14VGharePnyyonpxRRR:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_8uneqjner27uvqy_ovaqre_qrngu_erpvcvragRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_
+.weak b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_8uneqjner27uvqy_ovaqre_qrngu_erpvcvragRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_
 .type b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_8uneqjner27uvqy_ovaqre_qrngu_erpvcvragRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_,%function
 b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_8uneqjner27uvqy_ovaqre_qrngu_erpvcvragRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_:
 nop
@@ -68,7 +68,7 @@
 b__MA7naqebvq8uneqjner14oebnqpnfgenqvb4I1_09OcUjGhare21frgUNYVafgehzragngvbaRi:
 nop
 .data
-.globl b__MGIA7naqebvq8uneqjner14oebnqpnfgenqvb4I1_07OfGhareR
+.weak b__MGIA7naqebvq8uneqjner14oebnqpnfgenqvb4I1_07OfGhareR
 .type b__MGIA7naqebvq8uneqjner14oebnqpnfgenqvb4I1_07OfGhareR,%object
 b__MGIA7naqebvq8uneqjner14oebnqpnfgenqvb4I1_07OfGhareR:
 .space __SIZEOF_POINTER__
@@ -103,7 +103,7 @@
 b__MGua16_A7naqebvq8uneqjner14oebnqpnfgenqvb4I1_017OcUjGharePnyyonpx15baYnfgFgebatErsRCXi:
 nop
 .text
-.globl b__MA7naqebvq2fcVAF_8uneqjner14oebnqpnfgenqvb4I1_014VGharePnyyonpxRRnFRBF5_
+.weak b__MA7naqebvq2fcVAF_8uneqjner14oebnqpnfgenqvb4I1_014VGharePnyyonpxRRnFRBF5_
 .type b__MA7naqebvq2fcVAF_8uneqjner14oebnqpnfgenqvb4I1_014VGharePnyyonpxRRnFRBF5_,%function
 b__MA7naqebvq2fcVAF_8uneqjner14oebnqpnfgenqvb4I1_014VGharePnyyonpxRRnFRBF5_:
 nop
@@ -188,7 +188,7 @@
 b__MA7naqebvq8uneqjner14oebnqpnfgenqvb4I1_015VOebnqpnfgEnqvb21abgvslFlfcebcfPunatrqRi:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_14oebnqpnfgenqvb4I1_014VGharePnyyonpxRiRRAF_2fcVG_RRF8_
+.weak b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_14oebnqpnfgenqvb4I1_014VGharePnyyonpxRiRRAF_2fcVG_RRF8_
 .type b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_14oebnqpnfgenqvb4I1_014VGharePnyyonpxRiRRAF_2fcVG_RRF8_,%function
 b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_14oebnqpnfgenqvb4I1_014VGharePnyyonpxRiRRAF_2fcVG_RRF8_:
 nop
@@ -218,7 +218,7 @@
 b__MA7naqebvq8uneqjner14oebnqpnfgenqvb4I1_017OcUjGharePnyyonpx14_uvqy_nsFjvgpuRCAF0_10VVagresnprRCAF0_7qrgnvyf16UvqyVafgehzragbeREXAF2_11CebtenzVasbR:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_14oebnqpnfgenqvb4I1_014VGharePnyyonpxRAF_4uvqy4onfr4I1_05VOnfrRAF4_17OcUjGharePnyyonpxRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_14oebnqpnfgenqvb4I1_014VGharePnyyonpxRAF_4uvqy4onfr4I1_05VOnfrRAF4_17OcUjGharePnyyonpxRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo
 .type b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_14oebnqpnfgenqvb4I1_014VGharePnyyonpxRAF_4uvqy4onfr4I1_05VOnfrRAF4_17OcUjGharePnyyonpxRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_14oebnqpnfgenqvb4I1_014VGharePnyyonpxRAF_4uvqy4onfr4I1_05VOnfrRAF4_17OcUjGharePnyyonpxRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo:
 nop
@@ -248,12 +248,12 @@
 b__MGi0_a40_A7naqebvq8uneqjner14oebnqpnfgenqvb4I1_017OcUjGharePnyyonpx15baYnfgFgebatErsRCXi:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_14oebnqpnfgenqvb4I1_018OcUjOebnqpnfgEnqvbRAF4_15VOebnqpnfgEnqvbRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_14oebnqpnfgenqvb4I1_018OcUjOebnqpnfgEnqvbRAF4_15VOebnqpnfgEnqvbRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo
 .type b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_14oebnqpnfgenqvb4I1_018OcUjOebnqpnfgEnqvbRAF4_15VOebnqpnfgEnqvbRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_14oebnqpnfgenqvb4I1_018OcUjOebnqpnfgEnqvbRAF4_15VOebnqpnfgEnqvbRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo:
 nop
 .text
-.globl b__MAXFg3__18shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF7_F7_F7_CAF_6irpgbeVCiAF_9nyybpngbeVF9_RRRRRRpyRF5_F7_F7_F7_F7_FQ_
+.weak b__MAXFg3__18shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF7_F7_F7_CAF_6irpgbeVCiAF_9nyybpngbeVF9_RRRRRRpyRF5_F7_F7_F7_F7_FQ_
 .type b__MAXFg3__18shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF7_F7_F7_CAF_6irpgbeVCiAF_9nyybpngbeVF9_RRRRRRpyRF5_F7_F7_F7_F7_FQ_,%function
 b__MAXFg3__18shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF7_F7_F7_CAF_6irpgbeVCiAF_9nyybpngbeVF9_RRRRRRpyRF5_F7_F7_F7_F7_FQ_:
 nop
@@ -358,7 +358,7 @@
 b__MGua32_A7naqebvq8uneqjner14oebnqpnfgenqvb4I1_09OaUjGhareQ1Ri:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFR_RRECAF_15__gerr_raq_abqrVFE_RREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFR_RRECAF_15__gerr_raq_abqrVFE_RREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFR_RRECAF_15__gerr_raq_abqrVFE_RREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFR_RRECAF_15__gerr_raq_abqrVFE_RREXG_:
 nop
@@ -438,7 +438,7 @@
 b__MA7naqebvq8uneqjner14oebnqpnfgenqvb4I1_017OcUjGharePnyyonpx21abgvslFlfcebcfPunatrqRi:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRP2REXFU_
+.weak b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRP2REXFU_
 .type b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRP2REXFU_,%function
 b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRP2REXFU_:
 nop
@@ -483,7 +483,7 @@
 b__MA7naqebvq8uneqjner14oebnqpnfgenqvb4I1_09OcUjGhare4fgrcRAF2_9QverpgvbaRo:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_14oebnqpnfgenqvb4I1_09OcUjGhareRAF4_6VGhareRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_14oebnqpnfgenqvb4I1_09OcUjGhareRAF4_6VGhareRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo
 .type b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_14oebnqpnfgenqvb4I1_09OcUjGhareRAF4_6VGhareRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_14oebnqpnfgenqvb4I1_09OcUjGhareRAF4_6VGhareRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo:
 nop
@@ -493,7 +493,7 @@
 b__MA7naqebvq8uneqjner14oebnqpnfgenqvb4I1_018OcUjOebnqpnfgEnqvb15baYnfgFgebatErsRCXi:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_14oebnqpnfgenqvb4I1_015VOebnqpnfgEnqvbRiRRAF_2fcVG_RRF8_
+.weak b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_14oebnqpnfgenqvb4I1_015VOebnqpnfgEnqvbRiRRAF_2fcVG_RRF8_
 .type b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_14oebnqpnfgenqvb4I1_015VOebnqpnfgEnqvbRiRRAF_2fcVG_RRF8_,%function
 b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_14oebnqpnfgenqvb4I1_015VOebnqpnfgEnqvbRiRRAF_2fcVG_RRF8_:
 nop
@@ -588,7 +588,7 @@
 b__MA7naqebvq8uneqjner14oebnqpnfgenqvb4I1_023OfOebnqpnfgEnqvbSnpgbelP2RAF_2fcVAF2_22VOebnqpnfgEnqvbSnpgbelRRR:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_14oebnqpnfgenqvb4I1_022VOebnqpnfgEnqvbSnpgbelRAF_4uvqy4onfr4I1_05VOnfrRAF4_25OcUjOebnqpnfgEnqvbSnpgbelRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_14oebnqpnfgenqvb4I1_022VOebnqpnfgEnqvbSnpgbelRAF_4uvqy4onfr4I1_05VOnfrRAF4_25OcUjOebnqpnfgEnqvbSnpgbelRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo
 .type b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_14oebnqpnfgenqvb4I1_022VOebnqpnfgEnqvbSnpgbelRAF_4uvqy4onfr4I1_05VOnfrRAF4_25OcUjOebnqpnfgEnqvbSnpgbelRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_14oebnqpnfgenqvb4I1_022VOebnqpnfgEnqvbSnpgbelRAF_4uvqy4onfr4I1_05VOnfrRAF4_25OcUjOebnqpnfgEnqvbSnpgbelRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo:
 nop
@@ -698,7 +698,7 @@
 b__MGIA7naqebvq8uneqjner14oebnqpnfgenqvb4I1_025OcUjOebnqpnfgEnqvbSnpgbelR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRR:
 nop
@@ -753,7 +753,7 @@
 b__MA7naqebvq8uneqjner14oebnqpnfgenqvb4I1_014VGharePnyyonpx10qrfpevcgbeR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__16irpgbeVCiAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_
+.weak b__MAFg3__16irpgbeVCiAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_
 .type b__MAFg3__16irpgbeVCiAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_,%function
 b__MAFg3__16irpgbeVCiAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_:
 nop
@@ -773,12 +773,12 @@
 b__MA7naqebvq8uneqjner14oebnqpnfgenqvb4I1_017OcUjGharePnyyonpx12pbasvtPunatrRAF2_6ErfhygREXAF2_10OnaqPbasvtR:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_14oebnqpnfgenqvb4I1_014VGharePnyyonpxRAF3_17OcUjGharePnyyonpxRAF3_17OaUjGharePnyyonpxRRRAF_2fcVG_RREXAF7_VAF0_7VOvaqreRRR
+.weak b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_14oebnqpnfgenqvb4I1_014VGharePnyyonpxRAF3_17OcUjGharePnyyonpxRAF3_17OaUjGharePnyyonpxRRRAF_2fcVG_RREXAF7_VAF0_7VOvaqreRRR
 .type b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_14oebnqpnfgenqvb4I1_014VGharePnyyonpxRAF3_17OcUjGharePnyyonpxRAF3_17OaUjGharePnyyonpxRRRAF_2fcVG_RREXAF7_VAF0_7VOvaqreRRR,%function
 b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_14oebnqpnfgenqvb4I1_014VGharePnyyonpxRAF3_17OcUjGharePnyyonpxRAF3_17OaUjGharePnyyonpxRRRAF_2fcVG_RREXAF7_VAF0_7VOvaqreRRR:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_14oebnqpnfgenqvb4I1_06VGhareRAF3_9OcUjGhareRAF3_9OaUjGhareRRRAF_2fcVG_RREXAF7_VAF0_7VOvaqreRRR
+.weak b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_14oebnqpnfgenqvb4I1_06VGhareRAF3_9OcUjGhareRAF3_9OaUjGhareRRRAF_2fcVG_RREXAF7_VAF0_7VOvaqreRRR
 .type b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_14oebnqpnfgenqvb4I1_06VGhareRAF3_9OcUjGhareRAF3_9OaUjGhareRRRAF_2fcVG_RREXAF7_VAF0_7VOvaqreRRR,%function
 b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_14oebnqpnfgenqvb4I1_06VGhareRAF3_9OcUjGhareRAF3_9OaUjGhareRRRAF_2fcVG_RREXAF7_VAF0_7VOvaqreRRR:
 nop
@@ -793,7 +793,7 @@
 b__MA7naqebvq8uneqjner14oebnqpnfgenqvb4I1_018OaUjOebnqpnfgEnqvb10baGenafnpgRwEXAF0_6CnepryRCF4_wAFg3__18shapgvbaVSiEF4_RRR:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_14oebnqpnfgenqvb4I1_015VOebnqpnfgEnqvbRAF3_18OcUjOebnqpnfgEnqvbRAF3_18OaUjOebnqpnfgEnqvbRRRAF_2fcVG_RREXAF7_VAF0_7VOvaqreRRR
+.weak b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_14oebnqpnfgenqvb4I1_015VOebnqpnfgEnqvbRAF3_18OcUjOebnqpnfgEnqvbRAF3_18OaUjOebnqpnfgEnqvbRRRAF_2fcVG_RREXAF7_VAF0_7VOvaqreRRR
 .type b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_14oebnqpnfgenqvb4I1_015VOebnqpnfgEnqvbRAF3_18OcUjOebnqpnfgEnqvbRAF3_18OaUjOebnqpnfgEnqvbRRRAF_2fcVG_RREXAF7_VAF0_7VOvaqreRRR,%function
 b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_14oebnqpnfgenqvb4I1_015VOebnqpnfgEnqvbRAF3_18OcUjOebnqpnfgEnqvbRAF3_18OaUjOebnqpnfgEnqvbRRRAF_2fcVG_RREXAF7_VAF0_7VOvaqreRRR:
 nop
@@ -813,7 +813,7 @@
 b__MA7naqebvq8uneqjner14oebnqpnfgenqvb4I1_015OfGharePnyyonpxP1RAF_2fcVAF2_14VGharePnyyonpxRRR:
 nop
 .data
-.globl b__MGIA7naqebvq8uneqjner14oebnqpnfgenqvb4I1_015OfGharePnyyonpxR
+.weak b__MGIA7naqebvq8uneqjner14oebnqpnfgenqvb4I1_015OfGharePnyyonpxR
 .type b__MGIA7naqebvq8uneqjner14oebnqpnfgenqvb4I1_015OfGharePnyyonpxR,%object
 b__MGIA7naqebvq8uneqjner14oebnqpnfgenqvb4I1_015OfGharePnyyonpxR:
 .space __SIZEOF_POINTER__
@@ -843,12 +843,12 @@
 b__MA7naqebvq8uneqjner14oebnqpnfgenqvb4I1_09OcUjGhare13hayvaxGbQrnguREXAF_2fcVAF0_20uvqy_qrngu_erpvcvragRRR:
 nop
 .data
-.globl b__MGPA7naqebvq8uneqjner14oebnqpnfgenqvb4I1_07OfGhareR0_AF2_6VGhareR
+.weak b__MGPA7naqebvq8uneqjner14oebnqpnfgenqvb4I1_07OfGhareR0_AF2_6VGhareR
 .type b__MGPA7naqebvq8uneqjner14oebnqpnfgenqvb4I1_07OfGhareR0_AF2_6VGhareR,%object
 b__MGPA7naqebvq8uneqjner14oebnqpnfgenqvb4I1_07OfGhareR0_AF2_6VGhareR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_14oebnqpnfgenqvb4I1_025OcUjOebnqpnfgEnqvbSnpgbelRAF4_22VOebnqpnfgEnqvbSnpgbelRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_14oebnqpnfgenqvb4I1_025OcUjOebnqpnfgEnqvbSnpgbelRAF4_22VOebnqpnfgEnqvbSnpgbelRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo
 .type b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_14oebnqpnfgenqvb4I1_025OcUjOebnqpnfgEnqvbSnpgbelRAF4_22VOebnqpnfgEnqvbSnpgbelRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_14oebnqpnfgenqvb4I1_025OcUjOebnqpnfgEnqvbSnpgbelRAF4_22VOebnqpnfgEnqvbSnpgbelRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo:
 nop
@@ -953,7 +953,7 @@
 b__MA7naqebvq8uneqjner14oebnqpnfgenqvb4I1_014VGharePnyyonpx12trgQrohtVasbRAFg3__18shapgvbaVSiEXAF_4uvqy4onfr4I1_09QrohtVasbRRRR:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_14oebnqpnfgenqvb4I1_015VOebnqpnfgEnqvbRAF_4uvqy4onfr4I1_05VOnfrRAF4_18OcUjOebnqpnfgEnqvbRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_14oebnqpnfgenqvb4I1_015VOebnqpnfgEnqvbRAF_4uvqy4onfr4I1_05VOnfrRAF4_18OcUjOebnqpnfgEnqvbRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo
 .type b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_14oebnqpnfgenqvb4I1_015VOebnqpnfgEnqvbRAF_4uvqy4onfr4I1_05VOnfrRAF4_18OcUjOebnqpnfgEnqvbRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_14oebnqpnfgenqvb4I1_015VOebnqpnfgEnqvbRAF_4uvqy4onfr4I1_05VOnfrRAF4_18OcUjOebnqpnfgEnqvbRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo:
 nop
@@ -998,7 +998,7 @@
 b__MGi0_a24_A7naqebvq8uneqjner14oebnqpnfgenqvb4I1_018OaUjOebnqpnfgEnqvbQ0Ri:
 nop
 .data
-.globl b__MGPA7naqebvq8uneqjner14oebnqpnfgenqvb4I1_023OfOebnqpnfgEnqvbSnpgbelR0_AF2_22VOebnqpnfgEnqvbSnpgbelR
+.weak b__MGPA7naqebvq8uneqjner14oebnqpnfgenqvb4I1_023OfOebnqpnfgEnqvbSnpgbelR0_AF2_22VOebnqpnfgEnqvbSnpgbelR
 .type b__MGPA7naqebvq8uneqjner14oebnqpnfgenqvb4I1_023OfOebnqpnfgEnqvbSnpgbelR0_AF2_22VOebnqpnfgEnqvbSnpgbelR,%object
 b__MGPA7naqebvq8uneqjner14oebnqpnfgenqvb4I1_023OfOebnqpnfgEnqvbSnpgbelR0_AF2_22VOebnqpnfgEnqvbSnpgbelR:
 .space __SIZEOF_POINTER__
@@ -1008,7 +1008,7 @@
 b__MA7naqebvq8uneqjner14oebnqpnfgenqvb4I1_09OaUjGhare4cvatRi:
 nop
 .data
-.globl b__MGPA7naqebvq8uneqjner14oebnqpnfgenqvb4I1_015OfGharePnyyonpxR0_AF2_14VGharePnyyonpxR
+.weak b__MGPA7naqebvq8uneqjner14oebnqpnfgenqvb4I1_015OfGharePnyyonpxR0_AF2_14VGharePnyyonpxR
 .type b__MGPA7naqebvq8uneqjner14oebnqpnfgenqvb4I1_015OfGharePnyyonpxR0_AF2_14VGharePnyyonpxR,%object
 b__MGPA7naqebvq8uneqjner14oebnqpnfgenqvb4I1_015OfGharePnyyonpxR0_AF2_14VGharePnyyonpxR:
 .space __SIZEOF_POINTER__
@@ -1063,7 +1063,7 @@
 b__MA7naqebvq8uneqjner14oebnqpnfgenqvb4I1_015VOebnqpnfgEnqvb11yvaxGbQrnguREXAF_2fcVAF0_20uvqy_qrngu_erpvcvragRRRz:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFT_RRECAF_15__gerr_raq_abqrVFG_RREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFT_RRECAF_15__gerr_raq_abqrVFG_RREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFT_RRECAF_15__gerr_raq_abqrVFG_RREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFT_RRECAF_15__gerr_raq_abqrVFG_RREXG_:
 nop
@@ -1118,12 +1118,12 @@
 b__MA7naqebvq8uneqjner14oebnqpnfgenqvb4I1_018OcUjOebnqpnfgEnqvb13trgCebcregvrfRAFg3__18shapgvbaVSiAF2_6ErfhygREXAF2_10CebcregvrfRRRR:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRR:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_14oebnqpnfgenqvb4I1_06VGhareRAF_4uvqy4onfr4I1_05VOnfrRAF4_9OcUjGhareRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_14oebnqpnfgenqvb4I1_06VGhareRAF_4uvqy4onfr4I1_05VOnfrRAF4_9OcUjGhareRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo
 .type b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_14oebnqpnfgenqvb4I1_06VGhareRAF_4uvqy4onfr4I1_05VOnfrRAF4_9OcUjGhareRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_14oebnqpnfgenqvb4I1_06VGhareRAF_4uvqy4onfr4I1_05VOnfrRAF4_9OcUjGhareRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo:
 nop
@@ -1228,7 +1228,7 @@
 b__MA7naqebvq8uneqjner14oebnqpnfgenqvb4I1_022ernqRzorqqrqSebzCnepryREXAF2_10OnaqPbasvtREXAF0_6CnepryRzz:
 nop
 .text
-.globl b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
+.weak b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
 .type b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_,%function
 b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_:
 nop
@@ -1298,7 +1298,7 @@
 b__MGi0_a24_A7naqebvq8uneqjner14oebnqpnfgenqvb4I1_09OaUjGhareQ0Ri:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_:
 nop
@@ -1313,7 +1313,7 @@
 b__MA7naqebvq8uneqjner14oebnqpnfgenqvb4I1_018OcUjOebnqpnfgEnqvbP1REXAF_2fcVAF0_7VOvaqreRRR:
 nop
 .text
-.globl b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
+.weak b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
 .type b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_,%function
 b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_:
 nop
@@ -1353,7 +1353,7 @@
 b__MGGA7naqebvq8uneqjner14oebnqpnfgenqvb4I1_014VGharePnyyonpxR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIA7naqebvq8uneqjner14oebnqpnfgenqvb4I1_023OfOebnqpnfgEnqvbSnpgbelR
+.weak b__MGIA7naqebvq8uneqjner14oebnqpnfgenqvb4I1_023OfOebnqpnfgEnqvbSnpgbelR
 .type b__MGIA7naqebvq8uneqjner14oebnqpnfgenqvb4I1_023OfOebnqpnfgEnqvbSnpgbelR,%object
 b__MGIA7naqebvq8uneqjner14oebnqpnfgenqvb4I1_023OfOebnqpnfgEnqvbSnpgbelR:
 .space __SIZEOF_POINTER__
@@ -1463,7 +1463,7 @@
 b__MA7naqebvq8uneqjner14oebnqpnfgenqvb4I1_025OcUjOebnqpnfgEnqvbSnpgbel21abgvslFlfcebcfPunatrqRi:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_14oebnqpnfgenqvb4I1_017OcUjGharePnyyonpxRAF4_14VGharePnyyonpxRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_14oebnqpnfgenqvb4I1_017OcUjGharePnyyonpxRAF4_14VGharePnyyonpxRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo
 .type b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_14oebnqpnfgenqvb4I1_017OcUjGharePnyyonpxRAF4_14VGharePnyyonpxRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_14oebnqpnfgenqvb4I1_017OcUjGharePnyyonpxRAF4_14VGharePnyyonpxRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo:
 nop
@@ -1578,7 +1578,7 @@
 b__MA7naqebvq8uneqjner14oebnqpnfgenqvb4I1_022ernqRzorqqrqSebzCnepryREXAF2_8ZrgnQngnREXAF0_6CnepryRzz:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_14oebnqpnfgenqvb4I1_06VGhareRiRRAF_2fcVG_RRF8_
+.weak b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_14oebnqpnfgenqvb4I1_06VGhareRiRRAF_2fcVG_RRF8_
 .type b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_14oebnqpnfgenqvb4I1_06VGhareRiRRAF_2fcVG_RRF8_,%function
 b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_14oebnqpnfgenqvb4I1_06VGhareRiRRAF_2fcVG_RRF8_:
 nop
@@ -1623,12 +1623,12 @@
 b__MA7naqebvq8uneqjner14oebnqpnfgenqvb4I1_016OfOebnqpnfgEnqvbP1RAF_2fcVAF2_15VOebnqpnfgEnqvbRRR:
 nop
 .data
-.globl b__MGPA7naqebvq8uneqjner14oebnqpnfgenqvb4I1_016OfOebnqpnfgEnqvbR0_AF2_15VOebnqpnfgEnqvbR
+.weak b__MGPA7naqebvq8uneqjner14oebnqpnfgenqvb4I1_016OfOebnqpnfgEnqvbR0_AF2_15VOebnqpnfgEnqvbR
 .type b__MGPA7naqebvq8uneqjner14oebnqpnfgenqvb4I1_016OfOebnqpnfgEnqvbR0_AF2_15VOebnqpnfgEnqvbR,%object
 b__MGPA7naqebvq8uneqjner14oebnqpnfgenqvb4I1_016OfOebnqpnfgEnqvbR0_AF2_15VOebnqpnfgEnqvbR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIA7naqebvq8uneqjner14oebnqpnfgenqvb4I1_016OfOebnqpnfgEnqvbR
+.weak b__MGIA7naqebvq8uneqjner14oebnqpnfgenqvb4I1_016OfOebnqpnfgEnqvbR
 .type b__MGIA7naqebvq8uneqjner14oebnqpnfgenqvb4I1_016OfOebnqpnfgEnqvbR,%object
 b__MGIA7naqebvq8uneqjner14oebnqpnfgenqvb4I1_016OfOebnqpnfgEnqvbR:
 .space __SIZEOF_POINTER__
diff --git a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_037.S b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_037.S
index 472f439..2678ee3 100644
--- a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_037.S
+++ b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_037.S
@@ -3,7 +3,7 @@
 .data
 .p2align 4
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_14oebnqpnfgenqvb4I1_015VOebnqpnfgEnqvbRiRRAF_2fcVG_RRF8_
+.weak b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_14oebnqpnfgenqvb4I1_015VOebnqpnfgEnqvbRiRRAF_2fcVG_RRF8_
 .type b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_14oebnqpnfgenqvb4I1_015VOebnqpnfgEnqvbRiRRAF_2fcVG_RRF8_,%function
 b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_14oebnqpnfgenqvb4I1_015VOebnqpnfgEnqvbRiRRAF_2fcVG_RRF8_:
 nop
@@ -43,12 +43,12 @@
 b__MA7naqebvq8uneqjner14oebnqpnfgenqvb4I1_115VOebnqpnfgEnqvb5qrohtREXAF0_11uvqy_unaqyrREXAF0_8uvqy_irpVAF0_11uvqy_fgevatRRR:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRR:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_14oebnqpnfgenqvb4I1_125OcUjOebnqpnfgEnqvbSnpgbelRAF4_22VOebnqpnfgEnqvbSnpgbelRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_14oebnqpnfgenqvb4I1_125OcUjOebnqpnfgEnqvbSnpgbelRAF4_22VOebnqpnfgEnqvbSnpgbelRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo
 .type b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_14oebnqpnfgenqvb4I1_125OcUjOebnqpnfgEnqvbSnpgbelRAF4_22VOebnqpnfgEnqvbSnpgbelRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_14oebnqpnfgenqvb4I1_125OcUjOebnqpnfgEnqvbSnpgbelRAF4_22VOebnqpnfgEnqvbSnpgbelRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo:
 nop
@@ -83,12 +83,12 @@
 b__MA7naqebvq8uneqjner14oebnqpnfgenqvb4I1_19OcUjGhare15frgNanybtSbeprqRo:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRR:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_8uneqjner27uvqy_ovaqre_qrngu_erpvcvragRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_
+.weak b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_8uneqjner27uvqy_ovaqre_qrngu_erpvcvragRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_
 .type b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_8uneqjner27uvqy_ovaqre_qrngu_erpvcvragRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_,%function
 b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_8uneqjner27uvqy_ovaqre_qrngu_erpvcvragRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_:
 nop
@@ -178,7 +178,7 @@
 b__MA7naqebvq8uneqjner14oebnqpnfgenqvb4I1_117OaUjGharePnyyonpx4cvatRi:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_14oebnqpnfgenqvb4I1_014VGharePnyyonpxRiRRAF_2fcVG_RRF8_
+.weak b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_14oebnqpnfgenqvb4I1_014VGharePnyyonpxRiRRAF_2fcVG_RRF8_
 .type b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_14oebnqpnfgenqvb4I1_014VGharePnyyonpxRiRRAF_2fcVG_RRF8_,%function
 b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_14oebnqpnfgenqvb4I1_014VGharePnyyonpxRiRRAF_2fcVG_RRF8_:
 nop
@@ -213,7 +213,7 @@
 b__MA7naqebvq8uneqjner14oebnqpnfgenqvb4I1_16VGhare13gelTrgFreivprREXAFg3__112onfvp_fgevatVpAF4_11pune_genvgfVpRRAF4_9nyybpngbeVpRRRRo:
 nop
 .data
-.globl b__MGPA7naqebvq8uneqjner14oebnqpnfgenqvb4I1_17OfGhareR0_AF2_6VGhareR
+.weak b__MGPA7naqebvq8uneqjner14oebnqpnfgenqvb4I1_17OfGhareR0_AF2_6VGhareR
 .type b__MGPA7naqebvq8uneqjner14oebnqpnfgenqvb4I1_17OfGhareR0_AF2_6VGhareR,%object
 b__MGPA7naqebvq8uneqjner14oebnqpnfgenqvb4I1_17OfGhareR0_AF2_6VGhareR:
 .space __SIZEOF_POINTER__
@@ -323,7 +323,7 @@
 b__MGPA7naqebvq8uneqjner14oebnqpnfgenqvb4I1_19OcUjGhareR8_AF0_10VVagresnprR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_14oebnqpnfgenqvb4I1_122VOebnqpnfgEnqvbSnpgbelRAF_4uvqy4onfr4I1_05VOnfrRAF4_25OcUjOebnqpnfgEnqvbSnpgbelRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_14oebnqpnfgenqvb4I1_122VOebnqpnfgEnqvbSnpgbelRAF_4uvqy4onfr4I1_05VOnfrRAF4_25OcUjOebnqpnfgEnqvbSnpgbelRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo
 .type b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_14oebnqpnfgenqvb4I1_122VOebnqpnfgEnqvbSnpgbelRAF_4uvqy4onfr4I1_05VOnfrRAF4_25OcUjOebnqpnfgEnqvbSnpgbelRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_14oebnqpnfgenqvb4I1_122VOebnqpnfgEnqvbSnpgbelRAF_4uvqy4onfr4I1_05VOnfrRAF4_25OcUjOebnqpnfgEnqvbSnpgbelRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo:
 nop
@@ -493,7 +493,7 @@
 b__MA7naqebvq8uneqjner14oebnqpnfgenqvb4I1_125OcUjOebnqpnfgEnqvbSnpgbel13hayvaxGbQrnguREXAF_2fcVAF0_20uvqy_qrngu_erpvcvragRRR:
 nop
 .data
-.globl b__MGPA7naqebvq8uneqjner14oebnqpnfgenqvb4I1_123OfOebnqpnfgEnqvbSnpgbelR0_AF2_22VOebnqpnfgEnqvbSnpgbelR
+.weak b__MGPA7naqebvq8uneqjner14oebnqpnfgenqvb4I1_123OfOebnqpnfgEnqvbSnpgbelR0_AF2_22VOebnqpnfgEnqvbSnpgbelR
 .type b__MGPA7naqebvq8uneqjner14oebnqpnfgenqvb4I1_123OfOebnqpnfgEnqvbSnpgbelR0_AF2_22VOebnqpnfgEnqvbSnpgbelR,%object
 b__MGPA7naqebvq8uneqjner14oebnqpnfgenqvb4I1_123OfOebnqpnfgEnqvbSnpgbelR0_AF2_22VOebnqpnfgEnqvbSnpgbelR:
 .space __SIZEOF_POINTER__
@@ -518,7 +518,7 @@
 b__MA7naqebvq8uneqjner14oebnqpnfgenqvb4I1_19OcUjGhare6pnapryRi:
 nop
 .data
-.globl b__MGIA7naqebvq8uneqjner14oebnqpnfgenqvb4I1_17OfGhareR
+.weak b__MGIA7naqebvq8uneqjner14oebnqpnfgenqvb4I1_17OfGhareR
 .type b__MGIA7naqebvq8uneqjner14oebnqpnfgenqvb4I1_17OfGhareR,%object
 b__MGIA7naqebvq8uneqjner14oebnqpnfgenqvb4I1_17OfGhareR:
 .space __SIZEOF_POINTER__
@@ -593,7 +593,7 @@
 b__MA7naqebvq8uneqjner14oebnqpnfgenqvb4I1_118OaUjOebnqpnfgEnqvbP1REXAF_2fcVAF2_15VOebnqpnfgEnqvbRRR:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_:
 nop
@@ -638,7 +638,7 @@
 b__MA7naqebvq8uneqjner14oebnqpnfgenqvb4I1_115VOebnqpnfgEnqvb4cvatRi:
 nop
 .text
-.globl b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
+.weak b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
 .type b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_,%function
 b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_:
 nop
@@ -673,7 +673,7 @@
 b__MA7naqebvq8uneqjner14oebnqpnfgenqvb4I1_117OcUjGharePnyyonpxP2REXAF_2fcVAF0_7VOvaqreRRR:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_14oebnqpnfgenqvb4I1_117OcUjGharePnyyonpxRAF4_14VGharePnyyonpxRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_14oebnqpnfgenqvb4I1_117OcUjGharePnyyonpxRAF4_14VGharePnyyonpxRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo
 .type b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_14oebnqpnfgenqvb4I1_117OcUjGharePnyyonpxRAF4_14VGharePnyyonpxRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_14oebnqpnfgenqvb4I1_117OcUjGharePnyyonpxRAF4_14VGharePnyyonpxRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo:
 nop
@@ -703,7 +703,7 @@
 b__MA7naqebvq8uneqjner14oebnqpnfgenqvb4I1_122VOebnqpnfgEnqvbSnpgbel12trgUnfuPunvaRAFg3__18shapgvbaVSiEXAF0_8uvqy_irpVAF0_10uvqy_neenlVuYz32RWRRRRRRRR:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_14oebnqpnfgenqvb4I1_19OcUjGhareRAF4_6VGhareRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_14oebnqpnfgenqvb4I1_19OcUjGhareRAF4_6VGhareRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo
 .type b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_14oebnqpnfgenqvb4I1_19OcUjGhareRAF4_6VGhareRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_14oebnqpnfgenqvb4I1_19OcUjGhareRAF4_6VGhareRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo:
 nop
@@ -843,7 +843,7 @@
 b__MA7naqebvq8uneqjner14oebnqpnfgenqvb4I1_122VOebnqpnfgEnqvbSnpgbel13hayvaxGbQrnguREXAF_2fcVAF0_20uvqy_qrngu_erpvcvragRRR:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_14oebnqpnfgenqvb4I1_16VGhareRAF_4uvqy4onfr4I1_05VOnfrRAF4_9OcUjGhareRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_14oebnqpnfgenqvb4I1_16VGhareRAF_4uvqy4onfr4I1_05VOnfrRAF4_9OcUjGhareRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo
 .type b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_14oebnqpnfgenqvb4I1_16VGhareRAF_4uvqy4onfr4I1_05VOnfrRAF4_9OcUjGhareRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_14oebnqpnfgenqvb4I1_16VGhareRAF_4uvqy4onfr4I1_05VOnfrRAF4_9OcUjGhareRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo:
 nop
@@ -963,7 +963,7 @@
 b__MA7naqebvq8uneqjner14oebnqpnfgenqvb4I1_118OcUjOebnqpnfgEnqvb13trgCebcregvrfRAFg3__18shapgvbaVSiAF1_4I1_06ErfhygREXAF6_10CebcregvrfRRRR:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRP2REXFU_
+.weak b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRP2REXFU_
 .type b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRP2REXFU_,%function
 b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRP2REXFU_:
 nop
@@ -1013,7 +1013,7 @@
 b__MGPA7naqebvq8uneqjner14oebnqpnfgenqvb4I1_117OcUjGharePnyyonpxR16_AF0_11OcUjErsOnfrR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_14oebnqpnfgenqvb4I1_115VOebnqpnfgEnqvbRAF3_4I1_015VOebnqpnfgEnqvbRAF4_18OcUjOebnqpnfgEnqvbRRRAF0_6ErgheaVAF_2fcVG_RRRRAFN_VG0_RRCXpo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_14oebnqpnfgenqvb4I1_115VOebnqpnfgEnqvbRAF3_4I1_015VOebnqpnfgEnqvbRAF4_18OcUjOebnqpnfgEnqvbRRRAF0_6ErgheaVAF_2fcVG_RRRRAFN_VG0_RRCXpo
 .type b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_14oebnqpnfgenqvb4I1_115VOebnqpnfgEnqvbRAF3_4I1_015VOebnqpnfgEnqvbRAF4_18OcUjOebnqpnfgEnqvbRRRAF0_6ErgheaVAF_2fcVG_RRRRAFN_VG0_RRCXpo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_14oebnqpnfgenqvb4I1_115VOebnqpnfgEnqvbRAF3_4I1_015VOebnqpnfgEnqvbRAF4_18OcUjOebnqpnfgEnqvbRRRAF0_6ErgheaVAF_2fcVG_RRRRAFN_VG0_RRCXpo:
 nop
@@ -1028,12 +1028,12 @@
 b__MA7naqebvq8uneqjner14oebnqpnfgenqvb4I1_19OcUjGhare5qrohtREXAF0_11uvqy_unaqyrREXAF0_8uvqy_irpVAF0_11uvqy_fgevatRRR:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_14oebnqpnfgenqvb4I1_16VGhareRAF3_4I1_06VGhareRAF4_9OcUjGhareRRRAF0_6ErgheaVAF_2fcVG_RRRRAFN_VG0_RRCXpo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_14oebnqpnfgenqvb4I1_16VGhareRAF3_4I1_06VGhareRAF4_9OcUjGhareRRRAF0_6ErgheaVAF_2fcVG_RRRRAFN_VG0_RRCXpo
 .type b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_14oebnqpnfgenqvb4I1_16VGhareRAF3_4I1_06VGhareRAF4_9OcUjGhareRRRAF0_6ErgheaVAF_2fcVG_RRRRAFN_VG0_RRCXpo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_14oebnqpnfgenqvb4I1_16VGhareRAF3_4I1_06VGhareRAF4_9OcUjGhareRRRAF0_6ErgheaVAF_2fcVG_RRRRAFN_VG0_RRCXpo:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFR_RRECAF_15__gerr_raq_abqrVFE_RREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFR_RRECAF_15__gerr_raq_abqrVFE_RREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFR_RRECAF_15__gerr_raq_abqrVFE_RREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFR_RRECAF_15__gerr_raq_abqrVFE_RREXG_:
 nop
@@ -1078,7 +1078,7 @@
 b__MA7naqebvq8uneqjner14oebnqpnfgenqvb4I1_115VOebnqpnfgEnqvb21frgUNYVafgehzragngvbaRi:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_14oebnqpnfgenqvb4I1_06VGhareRiRRAF_2fcVG_RRF8_
+.weak b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_14oebnqpnfgenqvb4I1_06VGhareRiRRAF_2fcVG_RRF8_
 .type b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_14oebnqpnfgenqvb4I1_06VGhareRiRRAF_2fcVG_RRF8_,%function
 b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_14oebnqpnfgenqvb4I1_06VGhareRiRRAF_2fcVG_RRF8_:
 nop
@@ -1103,7 +1103,7 @@
 b__MGPA7naqebvq8uneqjner14oebnqpnfgenqvb4I1_122VOebnqpnfgEnqvbSnpgbelR0_AF1_4I1_022VOebnqpnfgEnqvbSnpgbelR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIA7naqebvq8uneqjner14oebnqpnfgenqvb4I1_123OfOebnqpnfgEnqvbSnpgbelR
+.weak b__MGIA7naqebvq8uneqjner14oebnqpnfgenqvb4I1_123OfOebnqpnfgEnqvbSnpgbelR
 .type b__MGIA7naqebvq8uneqjner14oebnqpnfgenqvb4I1_123OfOebnqpnfgEnqvbSnpgbelR,%object
 b__MGIA7naqebvq8uneqjner14oebnqpnfgenqvb4I1_123OfOebnqpnfgEnqvbSnpgbelR:
 .space __SIZEOF_POINTER__
@@ -1168,7 +1168,7 @@
 b__MGGA7naqebvq8uneqjner14oebnqpnfgenqvb4I1_117OcUjGharePnyyonpxR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIA7naqebvq8uneqjner14oebnqpnfgenqvb4I1_115OfGharePnyyonpxR
+.weak b__MGIA7naqebvq8uneqjner14oebnqpnfgenqvb4I1_115OfGharePnyyonpxR
 .type b__MGIA7naqebvq8uneqjner14oebnqpnfgenqvb4I1_115OfGharePnyyonpxR,%object
 b__MGIA7naqebvq8uneqjner14oebnqpnfgenqvb4I1_115OfGharePnyyonpxR:
 .space __SIZEOF_POINTER__
@@ -1183,7 +1183,7 @@
 b__MA7naqebvq8uneqjner14oebnqpnfgenqvb4I1_16VGhare10qrfpevcgbeR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGPA7naqebvq8uneqjner14oebnqpnfgenqvb4I1_116OfOebnqpnfgEnqvbR0_AF2_15VOebnqpnfgEnqvbR
+.weak b__MGPA7naqebvq8uneqjner14oebnqpnfgenqvb4I1_116OfOebnqpnfgEnqvbR0_AF2_15VOebnqpnfgEnqvbR
 .type b__MGPA7naqebvq8uneqjner14oebnqpnfgenqvb4I1_116OfOebnqpnfgEnqvbR0_AF2_15VOebnqpnfgEnqvbR,%object
 b__MGPA7naqebvq8uneqjner14oebnqpnfgenqvb4I1_116OfOebnqpnfgEnqvbR0_AF2_15VOebnqpnfgEnqvbR:
 .space __SIZEOF_POINTER__
@@ -1228,7 +1228,7 @@
 b__MA7naqebvq8uneqjner14oebnqpnfgenqvb4I1_125OaUjOebnqpnfgEnqvbSnpgbelP1REXAF_2fcVAF2_22VOebnqpnfgEnqvbSnpgbelRRR:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_:
 nop
@@ -1328,7 +1328,7 @@
 b__MGi0_a24_A7naqebvq8uneqjner14oebnqpnfgenqvb4I1_117OaUjGharePnyyonpxQ1Ri:
 nop
 .data
-.globl b__MGIA7naqebvq8uneqjner14oebnqpnfgenqvb4I1_116OfOebnqpnfgEnqvbR
+.weak b__MGIA7naqebvq8uneqjner14oebnqpnfgenqvb4I1_116OfOebnqpnfgEnqvbR
 .type b__MGIA7naqebvq8uneqjner14oebnqpnfgenqvb4I1_116OfOebnqpnfgEnqvbR,%object
 b__MGIA7naqebvq8uneqjner14oebnqpnfgenqvb4I1_116OfOebnqpnfgEnqvbR:
 .space __SIZEOF_POINTER__
@@ -1398,7 +1398,7 @@
 b__MA7naqebvq8uneqjner14oebnqpnfgenqvb4I1_118OcUjOebnqpnfgEnqvb12trgQrohtVasbRAFg3__18shapgvbaVSiEXAF_4uvqy4onfr4I1_09QrohtVasbRRRR:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_14oebnqpnfgenqvb4I1_115VOebnqpnfgEnqvbRAF_4uvqy4onfr4I1_05VOnfrRAF4_18OcUjOebnqpnfgEnqvbRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_14oebnqpnfgenqvb4I1_115VOebnqpnfgEnqvbRAF_4uvqy4onfr4I1_05VOnfrRAF4_18OcUjOebnqpnfgEnqvbRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo
 .type b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_14oebnqpnfgenqvb4I1_115VOebnqpnfgEnqvbRAF_4uvqy4onfr4I1_05VOnfrRAF4_18OcUjOebnqpnfgEnqvbRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_14oebnqpnfgenqvb4I1_115VOebnqpnfgEnqvbRAF_4uvqy4onfr4I1_05VOnfrRAF4_18OcUjOebnqpnfgEnqvbRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo:
 nop
@@ -1438,7 +1438,7 @@
 b__MA7naqebvq8uneqjner14oebnqpnfgenqvb4I1_16VGhare17ertvfgreNfFreivprREXAFg3__112onfvp_fgevatVpAF4_11pune_genvgfVpRRAF4_9nyybpngbeVpRRRR:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_14oebnqpnfgenqvb4I1_114VGharePnyyonpxRAF3_4I1_014VGharePnyyonpxRAF4_17OcUjGharePnyyonpxRRRAF0_6ErgheaVAF_2fcVG_RRRRAFN_VG0_RRCXpo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_14oebnqpnfgenqvb4I1_114VGharePnyyonpxRAF3_4I1_014VGharePnyyonpxRAF4_17OcUjGharePnyyonpxRRRAF0_6ErgheaVAF_2fcVG_RRRRAFN_VG0_RRCXpo
 .type b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_14oebnqpnfgenqvb4I1_114VGharePnyyonpxRAF3_4I1_014VGharePnyyonpxRAF4_17OcUjGharePnyyonpxRRRAF0_6ErgheaVAF_2fcVG_RRRRAFN_VG0_RRCXpo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_14oebnqpnfgenqvb4I1_114VGharePnyyonpxRAF3_4I1_014VGharePnyyonpxRAF4_17OcUjGharePnyyonpxRRRAF0_6ErgheaVAF_2fcVG_RRRRAFN_VG0_RRCXpo:
 nop
@@ -1508,7 +1508,7 @@
 b__MA7naqebvq8uneqjner14oebnqpnfgenqvb4I1_118OcUjOebnqpnfgEnqvb23_uvqy_trgCebcregvrf_1_1RCAF0_10VVagresnprRCAF0_7qrgnvyf16UvqyVafgehzragbeRAFg3__18shapgvbaVSiEXAF2_10CebcregvrfRRRR:
 nop
 .text
-.globl b__MAFg3__16irpgbeVCiAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_
+.weak b__MAFg3__16irpgbeVCiAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_
 .type b__MAFg3__16irpgbeVCiAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_,%function
 b__MAFg3__16irpgbeVCiAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_:
 nop
@@ -1593,7 +1593,7 @@
 b__MA7naqebvq8uneqjner14oebnqpnfgenqvb4I1_125OcUjOebnqpnfgEnqvbSnpgbel12trgUnfuPunvaRAFg3__18shapgvbaVSiEXAF0_8uvqy_irpVAF0_10uvqy_neenlVuYz32RWRRRRRRRR:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_14oebnqpnfgenqvb4I1_122VOebnqpnfgEnqvbSnpgbelRAF3_4I1_022VOebnqpnfgEnqvbSnpgbelRAF4_25OcUjOebnqpnfgEnqvbSnpgbelRRRAF0_6ErgheaVAF_2fcVG_RRRRAFN_VG0_RRCXpo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_14oebnqpnfgenqvb4I1_122VOebnqpnfgEnqvbSnpgbelRAF3_4I1_022VOebnqpnfgEnqvbSnpgbelRAF4_25OcUjOebnqpnfgEnqvbSnpgbelRRRAF0_6ErgheaVAF_2fcVG_RRRRAFN_VG0_RRCXpo
 .type b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_14oebnqpnfgenqvb4I1_122VOebnqpnfgEnqvbSnpgbelRAF3_4I1_022VOebnqpnfgEnqvbSnpgbelRAF4_25OcUjOebnqpnfgEnqvbSnpgbelRRRAF0_6ErgheaVAF_2fcVG_RRRRAFN_VG0_RRCXpo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_14oebnqpnfgenqvb4I1_122VOebnqpnfgEnqvbSnpgbelRAF3_4I1_022VOebnqpnfgEnqvbSnpgbelRAF4_25OcUjOebnqpnfgEnqvbSnpgbelRRRAF0_6ErgheaVAF_2fcVG_RRRRAFN_VG0_RRCXpo:
 nop
@@ -1668,7 +1668,7 @@
 b__MA7naqebvq8uneqjner14oebnqpnfgenqvb4I1_118OcUjOebnqpnfgEnqvb11yvaxGbQrnguREXAF_2fcVAF0_20uvqy_qrngu_erpvcvragRRRz:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFT_RRECAF_15__gerr_raq_abqrVFG_RREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFT_RRECAF_15__gerr_raq_abqrVFG_RREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFT_RRECAF_15__gerr_raq_abqrVFG_RREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFT_RRECAF_15__gerr_raq_abqrVFG_RREXG_:
 nop
@@ -1713,7 +1713,7 @@
 b__MA7naqebvq8uneqjner14oebnqpnfgenqvb4I1_118OaUjOebnqpnfgEnqvbQ1Ri:
 nop
 .text
-.globl b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
+.weak b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
 .type b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_,%function
 b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_:
 nop
@@ -1723,7 +1723,7 @@
 b__MGPA7naqebvq8uneqjner14oebnqpnfgenqvb4I1_118OaUjOebnqpnfgEnqvbR0_AF_4uvqy4onfr4I1_08OaUjOnfrR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_14oebnqpnfgenqvb4I1_114VGharePnyyonpxRAF_4uvqy4onfr4I1_05VOnfrRAF4_17OcUjGharePnyyonpxRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_14oebnqpnfgenqvb4I1_114VGharePnyyonpxRAF_4uvqy4onfr4I1_05VOnfrRAF4_17OcUjGharePnyyonpxRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo
 .type b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_14oebnqpnfgenqvb4I1_114VGharePnyyonpxRAF_4uvqy4onfr4I1_05VOnfrRAF4_17OcUjGharePnyyonpxRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_14oebnqpnfgenqvb4I1_114VGharePnyyonpxRAF_4uvqy4onfr4I1_05VOnfrRAF4_17OcUjGharePnyyonpxRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo:
 nop
@@ -1733,7 +1733,7 @@
 b__MA7naqebvq8uneqjner14oebnqpnfgenqvb4I1_117OcUjGharePnyyonpx29_uvqy_onpxtebhaqFpnaNinvynoyrRCAF0_10VVagresnprRCAF0_7qrgnvyf16UvqyVafgehzragbeRo:
 nop
 .data
-.globl b__MGPA7naqebvq8uneqjner14oebnqpnfgenqvb4I1_115OfGharePnyyonpxR0_AF2_14VGharePnyyonpxR
+.weak b__MGPA7naqebvq8uneqjner14oebnqpnfgenqvb4I1_115OfGharePnyyonpxR0_AF2_14VGharePnyyonpxR
 .type b__MGPA7naqebvq8uneqjner14oebnqpnfgenqvb4I1_115OfGharePnyyonpxR0_AF2_14VGharePnyyonpxR,%object
 b__MGPA7naqebvq8uneqjner14oebnqpnfgenqvb4I1_115OfGharePnyyonpxR0_AF2_14VGharePnyyonpxR:
 .space __SIZEOF_POINTER__
@@ -1788,7 +1788,7 @@
 b__MA7naqebvq8uneqjner14oebnqpnfgenqvb4I1_125OaUjOebnqpnfgEnqvbSnpgbel10baGenafnpgRwEXAF0_6CnepryRCF4_wAFg3__18shapgvbaVSiEF4_RRR:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_14oebnqpnfgenqvb4I1_118OcUjOebnqpnfgEnqvbRAF4_15VOebnqpnfgEnqvbRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_14oebnqpnfgenqvb4I1_118OcUjOebnqpnfgEnqvbRAF4_15VOebnqpnfgEnqvbRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo
 .type b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_14oebnqpnfgenqvb4I1_118OcUjOebnqpnfgEnqvbRAF4_15VOebnqpnfgEnqvbRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_14oebnqpnfgenqvb4I1_118OcUjOebnqpnfgEnqvbRAF4_15VOebnqpnfgEnqvbRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo:
 nop
@@ -1803,7 +1803,7 @@
 b__MGGA7naqebvq8uneqjner14oebnqpnfgenqvb4I1_114VGharePnyyonpxR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAXFg3__18shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF7_F7_F7_CAF_6irpgbeVCiAF_9nyybpngbeVF9_RRRRRRpyRF5_F7_F7_F7_F7_FQ_
+.weak b__MAXFg3__18shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF7_F7_F7_CAF_6irpgbeVCiAF_9nyybpngbeVF9_RRRRRRpyRF5_F7_F7_F7_F7_FQ_
 .type b__MAXFg3__18shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF7_F7_F7_CAF_6irpgbeVCiAF_9nyybpngbeVF9_RRRRRRpyRF5_F7_F7_F7_F7_FQ_,%function
 b__MAXFg3__18shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF7_F7_F7_CAF_6irpgbeVCiAF_9nyybpngbeVF9_RRRRRRpyRF5_F7_F7_F7_F7_FQ_:
 nop
diff --git a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_038.S b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_038.S
index 8d5f4a7..8aecf5f 100644
--- a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_038.S
+++ b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_038.S
@@ -18,17 +18,17 @@
 b__MA7naqebvq8uneqjner10pbagrkguho4I1_014OaUjPbagrkguhoQ0Ri:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRP2REXFU_
+.weak b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRP2REXFU_
 .type b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRP2REXFU_,%function
 b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRP2REXFU_:
 nop
 .text
-.globl b__MAFg3__16irpgbeVCiAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_
+.weak b__MAFg3__16irpgbeVCiAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_
 .type b__MAFg3__16irpgbeVCiAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_,%function
 b__MAFg3__16irpgbeVCiAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_:
 nop
@@ -63,7 +63,7 @@
 b__MA7naqebvq8uneqjner10pbagrkguho4I1_011VPbagrkguho14vagresnprPunvaRAFg3__18shapgvbaVSiEXAF0_8uvqy_irpVAF0_11uvqy_fgevatRRRRRR:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_10pbagrkguho4I1_019VPbagrkguhoPnyyonpxRAF3_22OcUjPbagrkguhoPnyyonpxRAF3_22OaUjPbagrkguhoPnyyonpxRRRAF_2fcVG_RREXAF7_VAF0_7VOvaqreRRR
+.weak b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_10pbagrkguho4I1_019VPbagrkguhoPnyyonpxRAF3_22OcUjPbagrkguhoPnyyonpxRAF3_22OaUjPbagrkguhoPnyyonpxRRRAF_2fcVG_RREXAF7_VAF0_7VOvaqreRRR
 .type b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_10pbagrkguho4I1_019VPbagrkguhoPnyyonpxRAF3_22OcUjPbagrkguhoPnyyonpxRAF3_22OaUjPbagrkguhoPnyyonpxRRRAF_2fcVG_RREXAF7_VAF0_7VOvaqreRRR,%function
 b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_10pbagrkguho4I1_019VPbagrkguhoPnyyonpxRAF3_22OcUjPbagrkguhoPnyyonpxRAF3_22OaUjPbagrkguhoPnyyonpxRRRAF_2fcVG_RREXAF7_VAF0_7VOvaqreRRR:
 nop
@@ -93,7 +93,7 @@
 b__MA7naqebvq8uneqjner10pbagrkguho4I1_014OcUjPbagrkguho9dhrelNccfRw:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRR:
 nop
@@ -123,7 +123,7 @@
 b__MA7naqebvq8uneqjner10pbagrkguho4I1_014OcUjPbagrkguho21frgUNYVafgehzragngvbaRi:
 nop
 .data
-.globl b__MGPA7naqebvq8uneqjner10pbagrkguho4I1_012OfPbagrkguhoR0_AF2_11VPbagrkguhoR
+.weak b__MGPA7naqebvq8uneqjner10pbagrkguho4I1_012OfPbagrkguhoR0_AF2_11VPbagrkguhoR
 .type b__MGPA7naqebvq8uneqjner10pbagrkguho4I1_012OfPbagrkguhoR0_AF2_11VPbagrkguhoR,%object
 b__MGPA7naqebvq8uneqjner10pbagrkguho4I1_012OfPbagrkguhoR0_AF2_11VPbagrkguhoR:
 .space __SIZEOF_POINTER__
@@ -143,7 +143,7 @@
 b__MA7naqebvq8uneqjner10pbagrkguho4I1_022OcUjPbagrkguhoPnyyonpx15baYnfgFgebatErsRCXi:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_10pbagrkguho4I1_022OcUjPbagrkguhoPnyyonpxRAF4_19VPbagrkguhoPnyyonpxRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_10pbagrkguho4I1_022OcUjPbagrkguhoPnyyonpxRAF4_19VPbagrkguhoPnyyonpxRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo
 .type b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_10pbagrkguho4I1_022OcUjPbagrkguhoPnyyonpxRAF4_19VPbagrkguhoPnyyonpxRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_10pbagrkguho4I1_022OcUjPbagrkguhoPnyyonpxRAF4_19VPbagrkguhoPnyyonpxRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo:
 nop
@@ -168,7 +168,7 @@
 b__MA7naqebvq8uneqjner10pbagrkguho4I1_020OfPbagrkguhoPnyyonpx13nqqBarjnlGnfxRAFg3__18shapgvbaVSiiRRR:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_10pbagrkguho4I1_011VPbagrkguhoRAF_4uvqy4onfr4I1_05VOnfrRAF4_14OcUjPbagrkguhoRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_10pbagrkguho4I1_011VPbagrkguhoRAF_4uvqy4onfr4I1_05VOnfrRAF4_14OcUjPbagrkguhoRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo
 .type b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_10pbagrkguho4I1_011VPbagrkguhoRAF_4uvqy4onfr4I1_05VOnfrRAF4_14OcUjPbagrkguhoRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_10pbagrkguho4I1_011VPbagrkguhoRAF_4uvqy4onfr4I1_05VOnfrRAF4_14OcUjPbagrkguhoRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo:
 nop
@@ -203,7 +203,7 @@
 b__MA7naqebvq8uneqjner10pbagrkguho4I1_022OcUjPbagrkguhoPnyyonpx12trgUnfuPunvaRAFg3__18shapgvbaVSiEXAF0_8uvqy_irpVAF0_10uvqy_neenlVuYz32RWRRRRRRRR:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_10pbagrkguho4I1_019VPbagrkguhoPnyyonpxRAF_4uvqy4onfr4I1_05VOnfrRAF4_22OcUjPbagrkguhoPnyyonpxRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_10pbagrkguho4I1_019VPbagrkguhoPnyyonpxRAF_4uvqy4onfr4I1_05VOnfrRAF4_22OcUjPbagrkguhoPnyyonpxRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo
 .type b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_10pbagrkguho4I1_019VPbagrkguhoPnyyonpxRAF_4uvqy4onfr4I1_05VOnfrRAF4_22OcUjPbagrkguhoPnyyonpxRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_10pbagrkguho4I1_019VPbagrkguhoPnyyonpxRAF_4uvqy4onfr4I1_05VOnfrRAF4_22OcUjPbagrkguhoPnyyonpxRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo:
 nop
@@ -343,7 +343,7 @@
 b__MGGA7naqebvq8uneqjner10pbagrkguho4I1_014OcUjPbagrkguhoR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIA7naqebvq8uneqjner10pbagrkguho4I1_020OfPbagrkguhoPnyyonpxR
+.weak b__MGIA7naqebvq8uneqjner10pbagrkguho4I1_020OfPbagrkguhoPnyyonpxR
 .type b__MGIA7naqebvq8uneqjner10pbagrkguho4I1_020OfPbagrkguhoPnyyonpxR,%object
 b__MGIA7naqebvq8uneqjner10pbagrkguho4I1_020OfPbagrkguhoPnyyonpxR:
 .space __SIZEOF_POINTER__
@@ -353,7 +353,7 @@
 b__MA7naqebvq8uneqjner10pbagrkguho4I1_014OaUjPbagrkguho12trgQrohtVasbRAFg3__18shapgvbaVSiEXAF_4uvqy4onfr4I1_09QrohtVasbRRRR:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_8uneqjner27uvqy_ovaqre_qrngu_erpvcvragRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_
+.weak b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_8uneqjner27uvqy_ovaqre_qrngu_erpvcvragRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_
 .type b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_8uneqjner27uvqy_ovaqre_qrngu_erpvcvragRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_,%function
 b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_8uneqjner27uvqy_ovaqre_qrngu_erpvcvragRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_:
 nop
@@ -393,12 +393,12 @@
 b__MA7naqebvq8uneqjner10pbagrkguho4I1_014OaUjPbagrkguho19_uvqy_haybnqAnabNccRCAF_4uvqy4onfr4I1_08OaUjOnfrREXAF0_6CnepryRCF9_AFg3__18shapgvbaVSiEF9_RRR:
 nop
 .text
-.globl b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
+.weak b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
 .type b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_,%function
 b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_:
 nop
 .data
-.globl b__MGIA7naqebvq8uneqjner10pbagrkguho4I1_012OfPbagrkguhoR
+.weak b__MGIA7naqebvq8uneqjner10pbagrkguho4I1_012OfPbagrkguhoR
 .type b__MGIA7naqebvq8uneqjner10pbagrkguho4I1_012OfPbagrkguhoR,%object
 b__MGIA7naqebvq8uneqjner10pbagrkguho4I1_012OfPbagrkguhoR:
 .space __SIZEOF_POINTER__
@@ -418,12 +418,12 @@
 b__MA7naqebvq8uneqjner10pbagrkguho4I1_022ernqRzorqqrqSebzCnepryREXAF2_10PbagrkgUhoREXAF0_6CnepryRzz:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_10pbagrkguho4I1_019VPbagrkguhoPnyyonpxRiRRAF_2fcVG_RRF8_
+.weak b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_10pbagrkguho4I1_019VPbagrkguhoPnyyonpxRiRRAF_2fcVG_RRF8_
 .type b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_10pbagrkguho4I1_019VPbagrkguhoPnyyonpxRiRRAF_2fcVG_RRF8_,%function
 b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_10pbagrkguho4I1_019VPbagrkguhoPnyyonpxRiRRAF_2fcVG_RRF8_:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_10pbagrkguho4I1_014OcUjPbagrkguhoRAF4_11VPbagrkguhoRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_10pbagrkguho4I1_014OcUjPbagrkguhoRAF4_11VPbagrkguhoRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo
 .type b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_10pbagrkguho4I1_014OcUjPbagrkguhoRAF4_11VPbagrkguhoRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_10pbagrkguho4I1_014OcUjPbagrkguhoRAF4_11VPbagrkguhoRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo:
 nop
@@ -448,12 +448,12 @@
 b__MA7naqebvq8uneqjner10pbagrkguho4I1_022ernqRzorqqrqSebzCnepryREXAF2_13AnabNccOvanelREXAF0_6CnepryRzz:
 nop
 .text
-.globl b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
+.weak b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
 .type b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_,%function
 b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFR_RRECAF_15__gerr_raq_abqrVFE_RREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFR_RRECAF_15__gerr_raq_abqrVFE_RREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFR_RRECAF_15__gerr_raq_abqrVFE_RREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFR_RRECAF_15__gerr_raq_abqrVFE_RREXG_:
 nop
@@ -473,7 +473,7 @@
 b__MA7naqebvq8uneqjner10pbagrkguho4I1_022OaUjPbagrkguhoPnyyonpxP2REXAF_2fcVAF2_19VPbagrkguhoPnyyonpxRRR:
 nop
 .data
-.globl b__MGPA7naqebvq8uneqjner10pbagrkguho4I1_020OfPbagrkguhoPnyyonpxR0_AF2_19VPbagrkguhoPnyyonpxR
+.weak b__MGPA7naqebvq8uneqjner10pbagrkguho4I1_020OfPbagrkguhoPnyyonpxR0_AF2_19VPbagrkguhoPnyyonpxR
 .type b__MGPA7naqebvq8uneqjner10pbagrkguho4I1_020OfPbagrkguhoPnyyonpxR0_AF2_19VPbagrkguhoPnyyonpxR,%object
 b__MGPA7naqebvq8uneqjner10pbagrkguho4I1_020OfPbagrkguhoPnyyonpxR0_AF2_19VPbagrkguhoPnyyonpxR:
 .space __SIZEOF_POINTER__
@@ -498,7 +498,7 @@
 b__MGi0_a24_A7naqebvq8uneqjner10pbagrkguho4I1_022OaUjPbagrkguhoPnyyonpxQ0Ri:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_:
 nop
@@ -528,7 +528,7 @@
 b__MA7naqebvq8uneqjner10pbagrkguho4I1_014OcUjPbagrkguho22_uvqy_ertvfgrePnyyonpxRCAF0_10VVagresnprRCAF0_7qrgnvyf16UvqyVafgehzragbeRwEXAF_2fcVAF2_19VPbagrkguhoPnyyonpxRRR:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFT_RRECAF_15__gerr_raq_abqrVFG_RREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFT_RRECAF_15__gerr_raq_abqrVFG_RREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFT_RRECAF_15__gerr_raq_abqrVFG_RREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFT_RRECAF_15__gerr_raq_abqrVFG_RREXG_:
 nop
@@ -573,7 +573,7 @@
 b__MA7naqebvq8uneqjner10pbagrkguho4I1_014OaUjPbagrkguho20_uvqy_qvfnoyrAnabNccRCAF_4uvqy4onfr4I1_08OaUjOnfrREXAF0_6CnepryRCF9_AFg3__18shapgvbaVSiEF9_RRR:
 nop
 .text
-.globl b__MAXFg3__18shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF7_F7_F7_CAF_6irpgbeVCiAF_9nyybpngbeVF9_RRRRRRpyRF5_F7_F7_F7_F7_FQ_
+.weak b__MAXFg3__18shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF7_F7_F7_CAF_6irpgbeVCiAF_9nyybpngbeVF9_RRRRRRpyRF5_F7_F7_F7_F7_FQ_
 .type b__MAXFg3__18shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF7_F7_F7_CAF_6irpgbeVCiAF_9nyybpngbeVF9_RRRRRRpyRF5_F7_F7_F7_F7_FQ_,%function
 b__MAXFg3__18shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF7_F7_F7_CAF_6irpgbeVCiAF_9nyybpngbeVF9_RRRRRRpyRF5_F7_F7_F7_F7_FQ_:
 nop
@@ -868,7 +868,7 @@
 b__MA7naqebvq8uneqjner10pbagrkguho4I1_014OcUjPbagrkguho7trgUhofRAFg3__18shapgvbaVSiEXAF0_8uvqy_irpVAF2_10PbagrkgUhoRRRRRR:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRR:
 nop
diff --git a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_039.S b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_039.S
index 3a8b88f..472a329 100644
--- a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_039.S
+++ b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_039.S
@@ -18,7 +18,7 @@
 b__MGi0_a40_A7naqebvq8uneqjner4taff4I1_025OcUjTaffAnivtngvbaZrffntr15baYnfgFgebatErsRCXi:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRR:
 nop
@@ -83,7 +83,7 @@
 b__MA7naqebvq8uneqjner4taff4I1_016OfTaffAvPnyyonpx13nqqBarjnlGnfxRAFg3__18shapgvbaVSiiRRR:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_8uneqjner27uvqy_ovaqre_qrngu_erpvcvragRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_
+.weak b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_8uneqjner27uvqy_ovaqre_qrngu_erpvcvragRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_
 .type b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_8uneqjner27uvqy_ovaqre_qrngu_erpvcvragRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_,%function
 b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_8uneqjner27uvqy_ovaqre_qrngu_erpvcvragRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_:
 nop
@@ -133,7 +133,7 @@
 b__MA7naqebvq8uneqjner4taff4I1_017VTaffKgenPnyyonpx8pnfgSebzREXAF_2fcVF3_RRo:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_4taff4I1_020OcUjTaffKgenPnyyonpxRAF4_17VTaffKgenPnyyonpxRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_4taff4I1_020OcUjTaffKgenPnyyonpxRAF4_17VTaffKgenPnyyonpxRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo
 .type b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_4taff4I1_020OcUjTaffKgenPnyyonpxRAF4_17VTaffKgenPnyyonpxRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_4taff4I1_020OcUjTaffKgenPnyyonpxRAF4_17VTaffKgenPnyyonpxRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo:
 nop
@@ -143,7 +143,7 @@
 b__MA7naqebvq8uneqjner4taff4I1_09OcUjNTaff14qngnPbaaSnvyrqRi:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFR_RRECAF_15__gerr_raq_abqrVFE_RREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFR_RRECAF_15__gerr_raq_abqrVFE_RREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFR_RRECAF_15__gerr_raq_abqrVFE_RREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFR_RRECAF_15__gerr_raq_abqrVFE_RREXG_:
 nop
@@ -303,7 +303,7 @@
 b__MA7naqebvq8uneqjner4taff4I1_07OfNTaffP1RAF_2fcVAF2_6VNTaffRRR:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_4taff4I1_09VTaffKgenRAF3_12OcUjTaffKgenRAF3_12OaUjTaffKgenRRRAF_2fcVG_RREXAF7_VAF0_7VOvaqreRRR
+.weak b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_4taff4I1_09VTaffKgenRAF3_12OcUjTaffKgenRAF3_12OaUjTaffKgenRRRAF_2fcVG_RREXAF7_VAF0_7VOvaqreRRR
 .type b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_4taff4I1_09VTaffKgenRAF3_12OcUjTaffKgenRAF3_12OaUjTaffKgenRRRAF_2fcVG_RREXAF7_VAF0_7VOvaqreRRR,%function
 b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_4taff4I1_09VTaffKgenRAF3_12OcUjTaffKgenRAF3_12OaUjTaffKgenRRRAF_2fcVG_RREXAF7_VAF0_7VOvaqreRRR:
 nop
@@ -343,12 +343,12 @@
 b__MA7naqebvq8uneqjner4taff4I1_015VTaffAvPnyyonpx17ertvfgreNfFreivprREXAFg3__112onfvp_fgevatVpAF4_11pune_genvgfVpRRAF4_9nyybpngbeVpRRRR:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I1_09VTaffKgenRAF_4uvqy4onfr4I1_05VOnfrRAF4_12OcUjTaffKgenRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I1_09VTaffKgenRAF_4uvqy4onfr4I1_05VOnfrRAF4_12OcUjTaffKgenRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo
 .type b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I1_09VTaffKgenRAF_4uvqy4onfr4I1_05VOnfrRAF4_12OcUjTaffKgenRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I1_09VTaffKgenRAF_4uvqy4onfr4I1_05VOnfrRAF4_12OcUjTaffKgenRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_:
 nop
@@ -413,7 +413,7 @@
 b__MA7naqebvq8uneqjner4taff4I1_013OaUjTaffQroht18_uvqy_trgQrohtQngnRCAF_4uvqy4onfr4I1_08OaUjOnfrREXAF0_6CnepryRCF9_AFg3__18shapgvbaVSiEF9_RRR:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_4taff4I1_010OcUjTaffAvRAF4_7VTaffAvRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_4taff4I1_010OcUjTaffAvRAF4_7VTaffAvRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo
 .type b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_4taff4I1_010OcUjTaffAvRAF4_7VTaffAvRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_4taff4I1_010OcUjTaffAvRAF4_7VTaffAvRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo:
 nop
@@ -493,7 +493,7 @@
 b__MA7naqebvq8uneqjner4taff4I1_024OcUjTaffTrbsraprPnyyonpx20taffTrbsraprErzbirPoRvAF2_21VTaffTrbsraprPnyyonpx14TrbsraprFgnghfR:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_030VTaffAnivtngvbaZrffntrPnyyonpxRiRRAF_2fcVG_RRF8_
+.weak b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_030VTaffAnivtngvbaZrffntrPnyyonpxRiRRAF_2fcVG_RRF8_
 .type b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_030VTaffAnivtngvbaZrffntrPnyyonpxRiRRAF_2fcVG_RRF8_,%function
 b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_030VTaffAnivtngvbaZrffntrPnyyonpxRiRRAF_2fcVG_RRF8_:
 nop
@@ -608,7 +608,7 @@
 b__MA7naqebvq8uneqjner4taff4I1_08OcUjTaff26trgRkgrafvbaTaffTrbsrapvatRi:
 nop
 .data
-.globl b__MGIA7naqebvq8uneqjner4taff4I1_018OfNTaffEvyPnyyonpxR
+.weak b__MGIA7naqebvq8uneqjner4taff4I1_018OfNTaffEvyPnyyonpxR
 .type b__MGIA7naqebvq8uneqjner4taff4I1_018OfNTaffEvyPnyyonpxR,%object
 b__MGIA7naqebvq8uneqjner4taff4I1_018OfNTaffEvyPnyyonpxR:
 .space __SIZEOF_POINTER__
@@ -868,7 +868,7 @@
 b__MA7naqebvq8uneqjner4taff4I1_027OcUjTaffZrnfherzragPnyyonpx14vagresnprPunvaRAFg3__18shapgvbaVSiEXAF0_8uvqy_irpVAF0_11uvqy_fgevatRRRRRR:
 nop
 .text
-.globl b__MAXFg3__18shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF7_F7_F7_CAF_6irpgbeVCiAF_9nyybpngbeVF9_RRRRRRpyRF5_F7_F7_F7_F7_FQ_
+.weak b__MAXFg3__18shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF7_F7_F7_CAF_6irpgbeVCiAF_9nyybpngbeVF9_RRRRRRpyRF5_F7_F7_F7_F7_FQ_
 .type b__MAXFg3__18shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF7_F7_F7_CAF_6irpgbeVCiAF_9nyybpngbeVF9_RRRRRRpyRF5_F7_F7_F7_F7_FQ_,%function
 b__MAXFg3__18shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF7_F7_F7_CAF_6irpgbeVCiAF_9nyybpngbeVF9_RRRRRRpyRF5_F7_F7_F7_F7_FQ_:
 nop
@@ -928,7 +928,7 @@
 b__MA7naqebvq8uneqjner4taff4I1_021VTaffTrbsraprPnyyonpx24ertvfgreSbeAbgvsvpngvbafREXAFg3__112onfvp_fgevatVpAF4_11pune_genvgfVpRRAF4_9nyybpngbeVpRRRREXAF_2fcVAF_4uvqy7znantre4I1_020VFreivprAbgvsvpngvbaRRR:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_015VTaffAvPnyyonpxRiRRAF_2fcVG_RRF8_
+.weak b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_015VTaffAvPnyyonpxRiRRAF_2fcVG_RRF8_
 .type b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_015VTaffAvPnyyonpxRiRRAF_2fcVG_RRF8_,%function
 b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_015VTaffAvPnyyonpxRiRRAF_2fcVG_RRF8_:
 nop
@@ -1173,7 +1173,7 @@
 b__MA7naqebvq8uneqjner4taff4I1_013VTaffOngpuvat19vagresnprQrfpevcgbeRAFg3__18shapgvbaVSiEXAF0_11uvqy_fgevatRRRR:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I1_013VTaffOngpuvatRAF_4uvqy4onfr4I1_05VOnfrRAF4_16OcUjTaffOngpuvatRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I1_013VTaffOngpuvatRAF_4uvqy4onfr4I1_05VOnfrRAF4_16OcUjTaffOngpuvatRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo
 .type b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I1_013VTaffOngpuvatRAF_4uvqy4onfr4I1_05VOnfrRAF4_16OcUjTaffOngpuvatRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I1_013VTaffOngpuvatRAF_4uvqy4onfr4I1_05VOnfrRAF4_16OcUjTaffOngpuvatRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo:
 nop
@@ -1253,7 +1253,7 @@
 b__MGIA7naqebvq8uneqjner4taff4I1_024OcUjTaffOngpuvatPnyyonpxR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_4taff4I1_016OcUjTaffPnyyonpxRAF4_13VTaffPnyyonpxRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_4taff4I1_016OcUjTaffPnyyonpxRAF4_13VTaffPnyyonpxRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo
 .type b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_4taff4I1_016OcUjTaffPnyyonpxRAF4_13VTaffPnyyonpxRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_4taff4I1_016OcUjTaffPnyyonpxRAF4_13VTaffPnyyonpxRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo:
 nop
@@ -1283,7 +1283,7 @@
 b__MA7naqebvq8uneqjner4taff4I1_021OaUjTaffPbasvthengvbaQ2Ri:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_4taff4I1_027OcUjTaffZrnfherzragPnyyonpxRAF4_24VTaffZrnfherzragPnyyonpxRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_4taff4I1_027OcUjTaffZrnfherzragPnyyonpxRAF4_24VTaffZrnfherzragPnyyonpxRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo
 .type b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_4taff4I1_027OcUjTaffZrnfherzragPnyyonpxRAF4_24VTaffZrnfherzragPnyyonpxRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_4taff4I1_027OcUjTaffZrnfherzragPnyyonpxRAF4_24VTaffZrnfherzragPnyyonpxRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo:
 nop
@@ -1418,7 +1418,7 @@
 b__MA7naqebvq8uneqjner4taff4I1_08OcUjTaff12trgQrohtVasbRAFg3__18shapgvbaVSiEXAF_4uvqy4onfr4I1_09QrohtVasbRRRR:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_010VTaffQrohtRiRRAF_2fcVG_RRF8_
+.weak b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_010VTaffQrohtRiRRAF_2fcVG_RRF8_
 .type b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_010VTaffQrohtRiRRAF_2fcVG_RRF8_,%function
 b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_010VTaffQrohtRiRRAF_2fcVG_RRF8_:
 nop
@@ -1493,7 +1493,7 @@
 b__MGIA7naqebvq8uneqjner4taff4I1_015VTaffAvPnyyonpxR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I1_06VNTaffRAF_4uvqy4onfr4I1_05VOnfrRAF4_9OcUjNTaffRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I1_06VNTaffRAF_4uvqy4onfr4I1_05VOnfrRAF4_9OcUjNTaffRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo
 .type b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I1_06VNTaffRAF_4uvqy4onfr4I1_05VOnfrRAF4_9OcUjNTaffRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I1_06VNTaffRAF_4uvqy4onfr4I1_05VOnfrRAF4_9OcUjNTaffRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo:
 nop
@@ -1558,7 +1558,7 @@
 b__MA7naqebvq8uneqjner4taff4I1_010OaUjTaffAvP1REXAF_2fcVAF2_7VTaffAvRRR:
 nop
 .text
-.globl b__MA7naqebvq2fcVAF_8uneqjner4taff4I1_09VTaffKgenRRnFRBF5_
+.weak b__MA7naqebvq2fcVAF_8uneqjner4taff4I1_09VTaffKgenRRnFRBF5_
 .type b__MA7naqebvq2fcVAF_8uneqjner4taff4I1_09VTaffKgenRRnFRBF5_,%function
 b__MA7naqebvq2fcVAF_8uneqjner4taff4I1_09VTaffKgenRRnFRBF5_:
 nop
@@ -1583,7 +1583,7 @@
 b__MA7naqebvq8uneqjner4taff4I1_010OfTaffKgenP2RAF_2fcVAF2_9VTaffKgenRRR:
 nop
 .data
-.globl b__MGPA7naqebvq8uneqjner4taff4I1_017OfTaffZrnfherzragR0_AF2_16VTaffZrnfherzragR
+.weak b__MGPA7naqebvq8uneqjner4taff4I1_017OfTaffZrnfherzragR0_AF2_16VTaffZrnfherzragR
 .type b__MGPA7naqebvq8uneqjner4taff4I1_017OfTaffZrnfherzragR0_AF2_16VTaffZrnfherzragR,%object
 b__MGPA7naqebvq8uneqjner4taff4I1_017OfTaffZrnfherzragR0_AF2_16VTaffZrnfherzragR:
 .space __SIZEOF_POINTER__
@@ -1593,7 +1593,7 @@
 b__MA7naqebvq8uneqjner4taff4I1_06VNTaff12trgUnfuPunvaRAFg3__18shapgvbaVSiEXAF0_8uvqy_irpVAF0_10uvqy_neenlVuYz32RWRRRRRRRR:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_4taff4I1_016VTaffZrnfherzragRAF3_19OcUjTaffZrnfherzragRAF3_19OaUjTaffZrnfherzragRRRAF_2fcVG_RREXAF7_VAF0_7VOvaqreRRR
+.weak b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_4taff4I1_016VTaffZrnfherzragRAF3_19OcUjTaffZrnfherzragRAF3_19OaUjTaffZrnfherzragRRRAF_2fcVG_RREXAF7_VAF0_7VOvaqreRRR
 .type b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_4taff4I1_016VTaffZrnfherzragRAF3_19OcUjTaffZrnfherzragRAF3_19OaUjTaffZrnfherzragRRRAF_2fcVG_RREXAF7_VAF0_7VOvaqreRRR,%function
 b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_4taff4I1_016VTaffZrnfherzragRAF3_19OcUjTaffZrnfherzragRAF3_19OaUjTaffZrnfherzragRRRAF_2fcVG_RREXAF7_VAF0_7VOvaqreRRR:
 nop
@@ -1668,7 +1668,7 @@
 b__MA7naqebvq8uneqjner4taff4I1_021OaUjTaffPbasvthengvba16_uvqy_frgTcfYbpxRCAF_4uvqy4onfr4I1_08OaUjOnfrREXAF0_6CnepryRCF9_AFg3__18shapgvbaVSiEF9_RRR:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I1_016VTaffZrnfherzragRAF_4uvqy4onfr4I1_05VOnfrRAF4_19OcUjTaffZrnfherzragRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I1_016VTaffZrnfherzragRAF_4uvqy4onfr4I1_05VOnfrRAF4_19OcUjTaffZrnfherzragRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo
 .type b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I1_016VTaffZrnfherzragRAF_4uvqy4onfr4I1_05VOnfrRAF4_19OcUjTaffZrnfherzragRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I1_016VTaffZrnfherzragRAF_4uvqy4onfr4I1_05VOnfrRAF4_19OcUjTaffZrnfherzragRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo:
 nop
@@ -1888,7 +1888,7 @@
 b__MGGA7naqebvq8uneqjner4taff4I1_013VTaffPnyyonpxR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_4taff4I1_024OcUjTaffTrbsraprPnyyonpxRAF4_21VTaffTrbsraprPnyyonpxRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_4taff4I1_024OcUjTaffTrbsraprPnyyonpxRAF4_21VTaffTrbsraprPnyyonpxRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo
 .type b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_4taff4I1_024OcUjTaffTrbsraprPnyyonpxRAF4_21VTaffTrbsraprPnyyonpxRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_4taff4I1_024OcUjTaffTrbsraprPnyyonpxRAF4_21VTaffTrbsraprPnyyonpxRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo:
 nop
@@ -1958,7 +1958,7 @@
 b__MA7naqebvq8uneqjner4taff4I1_016VTaffZrnfherzrag10qrfpevcgbeR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_013VTaffOngpuvatRiRRAF_2fcVG_RRF8_
+.weak b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_013VTaffOngpuvatRiRRAF_2fcVG_RRF8_
 .type b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_013VTaffOngpuvatRiRRAF_2fcVG_RRF8_,%function
 b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_013VTaffOngpuvatRiRRAF_2fcVG_RRF8_:
 nop
@@ -1993,7 +1993,7 @@
 b__MA7naqebvq8uneqjner4taff4I1_018OcUjTaffAvPnyyonpx21abgvslFlfcebcfPunatrqRi:
 nop
 .data
-.globl b__MGPA7naqebvq8uneqjner4taff4I1_010OfTaffKgenR0_AF2_9VTaffKgenR
+.weak b__MGPA7naqebvq8uneqjner4taff4I1_010OfTaffKgenR0_AF2_9VTaffKgenR
 .type b__MGPA7naqebvq8uneqjner4taff4I1_010OfTaffKgenR0_AF2_9VTaffKgenR,%object
 b__MGPA7naqebvq8uneqjner4taff4I1_010OfTaffKgenR0_AF2_9VTaffKgenR:
 .space __SIZEOF_POINTER__
@@ -2113,7 +2113,7 @@
 b__MA7naqebvq8uneqjner4taff4I1_016OcUjTaffPnyyonpx14vagresnprPunvaRAFg3__18shapgvbaVSiEXAF0_8uvqy_irpVAF0_11uvqy_fgevatRRRRRR:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_4taff4I1_021VTaffTrbsraprPnyyonpxRAF3_24OcUjTaffTrbsraprPnyyonpxRAF3_24OaUjTaffTrbsraprPnyyonpxRRRAF_2fcVG_RREXAF7_VAF0_7VOvaqreRRR
+.weak b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_4taff4I1_021VTaffTrbsraprPnyyonpxRAF3_24OcUjTaffTrbsraprPnyyonpxRAF3_24OaUjTaffTrbsraprPnyyonpxRRRAF_2fcVG_RREXAF7_VAF0_7VOvaqreRRR
 .type b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_4taff4I1_021VTaffTrbsraprPnyyonpxRAF3_24OcUjTaffTrbsraprPnyyonpxRAF3_24OaUjTaffTrbsraprPnyyonpxRRRAF_2fcVG_RREXAF7_VAF0_7VOvaqreRRR,%function
 b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_4taff4I1_021VTaffTrbsraprPnyyonpxRAF3_24OcUjTaffTrbsraprPnyyonpxRAF3_24OaUjTaffTrbsraprPnyyonpxRRRAF_2fcVG_RREXAF7_VAF0_7VOvaqreRRR:
 nop
@@ -2138,7 +2138,7 @@
 b__MA7naqebvq8uneqjner4taff4I1_06VNTaff10trgFreivprREXAFg3__112onfvp_fgevatVpAF4_11pune_genvgfVpRRAF4_9nyybpngbeVpRRRRo:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_4taff4I1_017VNTaffEvyPnyyonpxRAF3_20OcUjNTaffEvyPnyyonpxRAF3_20OaUjNTaffEvyPnyyonpxRRRAF_2fcVG_RREXAF7_VAF0_7VOvaqreRRR
+.weak b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_4taff4I1_017VNTaffEvyPnyyonpxRAF3_20OcUjNTaffEvyPnyyonpxRAF3_20OaUjNTaffEvyPnyyonpxRRRAF_2fcVG_RREXAF7_VAF0_7VOvaqreRRR
 .type b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_4taff4I1_017VNTaffEvyPnyyonpxRAF3_20OcUjNTaffEvyPnyyonpxRAF3_20OaUjNTaffEvyPnyyonpxRRRAF_2fcVG_RREXAF7_VAF0_7VOvaqreRRR,%function
 b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_4taff4I1_017VNTaffEvyPnyyonpxRAF3_20OcUjNTaffEvyPnyyonpxRAF3_20OaUjNTaffEvyPnyyonpxRRRAF_2fcVG_RREXAF7_VAF0_7VOvaqreRRR:
 nop
@@ -2153,7 +2153,7 @@
 b__MA7naqebvq8uneqjner4taff4I1_08OaUjTaff26_uvqy_trgRkgrafvbaNTaffEvyRCAF_4uvqy4onfr4I1_08OaUjOnfrREXAF0_6CnepryRCF9_AFg3__18shapgvbaVSiEF9_RRR:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_016VTaffZrnfherzragRiRRAF_2fcVG_RRF8_
+.weak b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_016VTaffZrnfherzragRiRRAF_2fcVG_RRF8_
 .type b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_016VTaffZrnfherzragRiRRAF_2fcVG_RRF8_,%function
 b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_016VTaffZrnfherzragRiRRAF_2fcVG_RRF8_:
 nop
@@ -2183,7 +2183,7 @@
 b__MA7naqebvq8uneqjner4taff4I1_016OcUjTaffPnyyonpxP2REXAF_2fcVAF0_7VOvaqreRRR:
 nop
 .data
-.globl b__MGIA7naqebvq8uneqjner4taff4I1_019OfTaffPbasvthengvbaR
+.weak b__MGIA7naqebvq8uneqjner4taff4I1_019OfTaffPbasvthengvbaR
 .type b__MGIA7naqebvq8uneqjner4taff4I1_019OfTaffPbasvthengvbaR,%object
 b__MGIA7naqebvq8uneqjner4taff4I1_019OfTaffPbasvthengvbaR:
 .space __SIZEOF_POINTER__
@@ -2248,7 +2248,7 @@
 b__MA7naqebvq8uneqjner4taff4I1_020OcUjTaffKgenPnyyonpx14vagresnprPunvaRAFg3__18shapgvbaVSiEXAF0_8uvqy_irpVAF0_11uvqy_fgevatRRRRRR:
 nop
 .text
-.globl b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
+.weak b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
 .type b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_,%function
 b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_:
 nop
@@ -2268,7 +2268,7 @@
 b__MGua16_A7naqebvq8uneqjner4taff4I1_012OcUjNTaffEvy15baYnfgFgebatErsRCXi:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_4taff4I1_020OcUjNTaffEvyPnyyonpxRAF4_17VNTaffEvyPnyyonpxRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_4taff4I1_020OcUjNTaffEvyPnyyonpxRAF4_17VNTaffEvyPnyyonpxRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo
 .type b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_4taff4I1_020OcUjNTaffEvyPnyyonpxRAF4_17VNTaffEvyPnyyonpxRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_4taff4I1_020OcUjNTaffEvyPnyyonpxRAF4_17VNTaffEvyPnyyonpxRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo:
 nop
@@ -2423,7 +2423,7 @@
 b__MGPA7naqebvq8uneqjner4taff4I1_033OaUjTaffAnivtngvbaZrffntrPnyyonpxR0_AF0_7VOvaqreR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIA7naqebvq8uneqjner4taff4I1_031OfTaffAnivtngvbaZrffntrPnyyonpxR
+.weak b__MGIA7naqebvq8uneqjner4taff4I1_031OfTaffAnivtngvbaZrffntrPnyyonpxR
 .type b__MGIA7naqebvq8uneqjner4taff4I1_031OfTaffAnivtngvbaZrffntrPnyyonpxR,%object
 b__MGIA7naqebvq8uneqjner4taff4I1_031OfTaffAnivtngvbaZrffntrPnyyonpxR:
 .space __SIZEOF_POINTER__
@@ -2433,7 +2433,7 @@
 b__MGGA7naqebvq8uneqjner4taff4I1_018OaUjTaffAvPnyyonpxR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIA7naqebvq8uneqjner4taff4I1_016OfTaffAvPnyyonpxR
+.weak b__MGIA7naqebvq8uneqjner4taff4I1_016OfTaffAvPnyyonpxR
 .type b__MGIA7naqebvq8uneqjner4taff4I1_016OfTaffAvPnyyonpxR,%object
 b__MGIA7naqebvq8uneqjner4taff4I1_016OfTaffAvPnyyonpxR:
 .space __SIZEOF_POINTER__
@@ -2443,7 +2443,7 @@
 b__MA7naqebvq8uneqjner4taff4I1_021VTaffTrbsraprPnyyonpx13gelTrgFreivprREXAFg3__112onfvp_fgevatVpAF4_11pune_genvgfVpRRAF4_9nyybpngbeVpRRRRo:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_4taff4I1_018OcUjTaffTrbsrapvatRAF4_15VTaffTrbsrapvatRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_4taff4I1_018OcUjTaffTrbsrapvatRAF4_15VTaffTrbsrapvatRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo
 .type b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_4taff4I1_018OcUjTaffTrbsrapvatRAF4_15VTaffTrbsrapvatRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_4taff4I1_018OcUjTaffTrbsrapvatRAF4_15VTaffTrbsrapvatRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo:
 nop
@@ -2468,7 +2468,7 @@
 b__MGPA7naqebvq8uneqjner4taff4I1_019OaUjTaffZrnfherzragR0_AF0_9OUjOvaqreR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_017VTaffKgenPnyyonpxRiRRAF_2fcVG_RRF8_
+.weak b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_017VTaffKgenPnyyonpxRiRRAF_2fcVG_RRF8_
 .type b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_017VTaffKgenPnyyonpxRiRRAF_2fcVG_RRF8_,%function
 b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_017VTaffKgenPnyyonpxRiRRAF_2fcVG_RRF8_:
 nop
@@ -2493,7 +2493,7 @@
 b__MGPA7naqebvq8uneqjner4taff4I1_021OcUjTaffPbasvthengvbaR16_AF0_11OcUjErsOnfrR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_4taff4I1_018VTaffPbasvthengvbaRAF3_21OcUjTaffPbasvthengvbaRAF3_21OaUjTaffPbasvthengvbaRRRAF_2fcVG_RREXAF7_VAF0_7VOvaqreRRR
+.weak b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_4taff4I1_018VTaffPbasvthengvbaRAF3_21OcUjTaffPbasvthengvbaRAF3_21OaUjTaffPbasvthengvbaRRRAF_2fcVG_RREXAF7_VAF0_7VOvaqreRRR
 .type b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_4taff4I1_018VTaffPbasvthengvbaRAF3_21OcUjTaffPbasvthengvbaRAF3_21OaUjTaffPbasvthengvbaRRRAF_2fcVG_RREXAF7_VAF0_7VOvaqreRRR,%function
 b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_4taff4I1_018VTaffPbasvthengvbaRAF3_21OcUjTaffPbasvthengvbaRAF3_21OaUjTaffPbasvthengvbaRRRAF_2fcVG_RREXAF7_VAF0_7VOvaqreRRR:
 nop
@@ -2558,12 +2558,12 @@
 b__MA7naqebvq8uneqjner4taff4I1_06VNTaff13gelTrgFreivprREXAFg3__112onfvp_fgevatVpAF4_11pune_genvgfVpRRAF4_9nyybpngbeVpRRRRo:
 nop
 .data
-.globl b__MGPA7naqebvq8uneqjner4taff4I1_018OfNTaffEvyPnyyonpxR0_AF2_17VNTaffEvyPnyyonpxR
+.weak b__MGPA7naqebvq8uneqjner4taff4I1_018OfNTaffEvyPnyyonpxR0_AF2_17VNTaffEvyPnyyonpxR
 .type b__MGPA7naqebvq8uneqjner4taff4I1_018OfNTaffEvyPnyyonpxR0_AF2_17VNTaffEvyPnyyonpxR,%object
 b__MGPA7naqebvq8uneqjner4taff4I1_018OfNTaffEvyPnyyonpxR0_AF2_17VNTaffEvyPnyyonpxR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGPA7naqebvq8uneqjner4taff4I1_022OfTaffTrbsraprPnyyonpxR0_AF2_21VTaffTrbsraprPnyyonpxR
+.weak b__MGPA7naqebvq8uneqjner4taff4I1_022OfTaffTrbsraprPnyyonpxR0_AF2_21VTaffTrbsraprPnyyonpxR
 .type b__MGPA7naqebvq8uneqjner4taff4I1_022OfTaffTrbsraprPnyyonpxR0_AF2_21VTaffTrbsraprPnyyonpxR,%object
 b__MGPA7naqebvq8uneqjner4taff4I1_022OfTaffTrbsraprPnyyonpxR0_AF2_21VTaffTrbsraprPnyyonpxR:
 .space __SIZEOF_POINTER__
@@ -2708,7 +2708,7 @@
 b__MGPA7naqebvq8uneqjner4taff4I1_016OcUjTaffPnyyonpxR8_AF0_10VVagresnprR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_021VTaffTrbsraprPnyyonpxRiRRAF_2fcVG_RRF8_
+.weak b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_021VTaffTrbsraprPnyyonpxRiRRAF_2fcVG_RRF8_
 .type b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_021VTaffTrbsraprPnyyonpxRiRRAF_2fcVG_RRF8_,%function
 b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_021VTaffTrbsraprPnyyonpxRiRRAF_2fcVG_RRF8_:
 nop
@@ -2718,7 +2718,7 @@
 b__MA7naqebvq8uneqjner4taff4I1_010OcUjTaffAv17_uvqy_frgPnyyonpxRCAF0_10VVagresnprRCAF0_7qrgnvyf16UvqyVafgehzragbeREXAF_2fcVAF2_15VTaffAvPnyyonpxRRR:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I1_022VTaffAnivtngvbaZrffntrRAF_4uvqy4onfr4I1_05VOnfrRAF4_25OcUjTaffAnivtngvbaZrffntrRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I1_022VTaffAnivtngvbaZrffntrRAF_4uvqy4onfr4I1_05VOnfrRAF4_25OcUjTaffAnivtngvbaZrffntrRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo
 .type b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I1_022VTaffAnivtngvbaZrffntrRAF_4uvqy4onfr4I1_05VOnfrRAF4_25OcUjTaffAnivtngvbaZrffntrRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I1_022VTaffAnivtngvbaZrffntrRAF_4uvqy4onfr4I1_05VOnfrRAF4_25OcUjTaffAnivtngvbaZrffntrRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo:
 nop
@@ -2828,7 +2828,7 @@
 b__MA7naqebvq8uneqjner4taff4I1_024VTaffZrnfherzragPnyyonpx10trgFreivprREXAFg3__112onfvp_fgevatVpAF4_11pune_genvgfVpRRAF4_9nyybpngbeVpRRRRo:
 nop
 .data
-.globl b__MGIA7naqebvq8uneqjner4taff4I1_025OfTaffZrnfherzragPnyyonpxR
+.weak b__MGIA7naqebvq8uneqjner4taff4I1_025OfTaffZrnfherzragPnyyonpxR
 .type b__MGIA7naqebvq8uneqjner4taff4I1_025OfTaffZrnfherzragPnyyonpxR,%object
 b__MGIA7naqebvq8uneqjner4taff4I1_025OfTaffZrnfherzragPnyyonpxR:
 .space __SIZEOF_POINTER__
@@ -2883,7 +2883,7 @@
 b__MA7naqebvq8uneqjner4taff4I1_031OfTaffAnivtngvbaZrffntrPnyyonpx13nqqBarjnlGnfxRAFg3__18shapgvbaVSiiRRR:
 nop
 .text
-.globl b__MA7naqebvq2fcVAF_8uneqjner4taff4I1_09VNTaffEvyRRnFRBF5_
+.weak b__MA7naqebvq2fcVAF_8uneqjner4taff4I1_09VNTaffEvyRRnFRBF5_
 .type b__MA7naqebvq2fcVAF_8uneqjner4taff4I1_09VNTaffEvyRRnFRBF5_,%function
 b__MA7naqebvq2fcVAF_8uneqjner4taff4I1_09VNTaffEvyRRnFRBF5_:
 nop
@@ -2908,7 +2908,7 @@
 b__MGIA7naqebvq8uneqjner4taff4I1_020OcUjNTaffEvyPnyyonpxR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq2fcVAF_8uneqjner4taff4I1_07VTaffAvRRnFRBF5_
+.weak b__MA7naqebvq2fcVAF_8uneqjner4taff4I1_07VTaffAvRRnFRBF5_
 .type b__MA7naqebvq2fcVAF_8uneqjner4taff4I1_07VTaffAvRRnFRBF5_,%function
 b__MA7naqebvq2fcVAF_8uneqjner4taff4I1_07VTaffAvRRnFRBF5_:
 nop
@@ -2968,7 +2968,7 @@
 b__MA7naqebvq8uneqjner4taff4I1_019OaUjTaffZrnfherzrag17_uvqy_frgPnyyonpxRCAF_4uvqy4onfr4I1_08OaUjOnfrREXAF0_6CnepryRCF9_AFg3__18shapgvbaVSiEF9_RRR:
 nop
 .data
-.globl b__MGPA7naqebvq8uneqjner4taff4I1_016OfTaffAvPnyyonpxR0_AF2_15VTaffAvPnyyonpxR
+.weak b__MGPA7naqebvq8uneqjner4taff4I1_016OfTaffAvPnyyonpxR0_AF2_15VTaffAvPnyyonpxR
 .type b__MGPA7naqebvq8uneqjner4taff4I1_016OfTaffAvPnyyonpxR0_AF2_15VTaffAvPnyyonpxR,%object
 b__MGPA7naqebvq8uneqjner4taff4I1_016OfTaffAvPnyyonpxR0_AF2_15VTaffAvPnyyonpxR:
 .space __SIZEOF_POINTER__
@@ -2988,7 +2988,7 @@
 b__MA7naqebvq8uneqjner4taff4I1_024OcUjTaffTrbsraprPnyyonpx26_uvqy_taffTrbsraprFgnghfPoRCAF0_10VVagresnprRCAF0_7qrgnvyf16UvqyVafgehzragbeRAF2_21VTaffTrbsraprPnyyonpx20TrbsraprNinvynovyvglREXAF2_12TaffYbpngvbaR:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_024VTaffZrnfherzragPnyyonpxRiRRAF_2fcVG_RRF8_
+.weak b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_024VTaffZrnfherzragPnyyonpxRiRRAF_2fcVG_RRF8_
 .type b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_024VTaffZrnfherzragPnyyonpxRiRRAF_2fcVG_RRF8_,%function
 b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_024VTaffZrnfherzragPnyyonpxRiRRAF_2fcVG_RRF8_:
 nop
@@ -2998,7 +2998,7 @@
 b__MGPA7naqebvq8uneqjner4taff4I1_012OaUjTaffKgenR0_AF0_7VOvaqreR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_4taff4I1_016OcUjTaffOngpuvatRAF4_13VTaffOngpuvatRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_4taff4I1_016OcUjTaffOngpuvatRAF4_13VTaffOngpuvatRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo
 .type b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_4taff4I1_016OcUjTaffOngpuvatRAF4_13VTaffOngpuvatRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_4taff4I1_016OcUjTaffOngpuvatRAF4_13VTaffOngpuvatRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo:
 nop
@@ -3063,7 +3063,7 @@
 b__MA7naqebvq8uneqjner4taff4I1_017VTaffKgenPnyyonpx12trgUnfuPunvaRAFg3__18shapgvbaVSiEXAF0_8uvqy_irpVAF0_10uvqy_neenlVuYz32RWRRRRRRRR:
 nop
 .text
-.globl b__MA7naqebvq2fcVAF_8uneqjner4taff4I1_016VTaffZrnfherzragRRnFRBF5_
+.weak b__MA7naqebvq2fcVAF_8uneqjner4taff4I1_016VTaffZrnfherzragRRnFRBF5_
 .type b__MA7naqebvq2fcVAF_8uneqjner4taff4I1_016VTaffZrnfherzragRRnFRBF5_,%function
 b__MA7naqebvq2fcVAF_8uneqjner4taff4I1_016VTaffZrnfherzragRRnFRBF5_:
 nop
@@ -3078,7 +3078,7 @@
 b__MGi0_a24_A7naqebvq8uneqjner4taff4I1_013OaUjTaffQrohtQ0Ri:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I1_024VTaffZrnfherzragPnyyonpxRAF_4uvqy4onfr4I1_05VOnfrRAF4_27OcUjTaffZrnfherzragPnyyonpxRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I1_024VTaffZrnfherzragPnyyonpxRAF_4uvqy4onfr4I1_05VOnfrRAF4_27OcUjTaffZrnfherzragPnyyonpxRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo
 .type b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I1_024VTaffZrnfherzragPnyyonpxRAF_4uvqy4onfr4I1_05VOnfrRAF4_27OcUjTaffZrnfherzragPnyyonpxRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I1_024VTaffZrnfherzragPnyyonpxRAF_4uvqy4onfr4I1_05VOnfrRAF4_27OcUjTaffZrnfherzragPnyyonpxRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo:
 nop
@@ -3123,7 +3123,7 @@
 b__MA7naqebvq8uneqjner4taff4I1_024OcUjTaffTrbsraprPnyyonpx24taffTrbsraprGenafvgvbaPoRvEXAF2_12TaffYbpngvbaRAF2_21VTaffTrbsraprPnyyonpx18TrbsraprGenafvgvbaRy:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFT_RRECAF_15__gerr_raq_abqrVFG_RREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFT_RRECAF_15__gerr_raq_abqrVFG_RREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFT_RRECAF_15__gerr_raq_abqrVFG_RREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFT_RRECAF_15__gerr_raq_abqrVFG_RREXG_:
 nop
@@ -3148,7 +3148,7 @@
 b__MA7naqebvq8uneqjner4taff4I1_022OfTaffTrbsraprPnyyonpxP2RAF_2fcVAF2_21VTaffTrbsraprPnyyonpxRRR:
 nop
 .text
-.globl b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
+.weak b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
 .type b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_,%function
 b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_:
 nop
@@ -3158,7 +3158,7 @@
 b__MA7naqebvq8uneqjner4taff4I1_018OfNTaffEvyPnyyonpxP2RAF_2fcVAF2_17VNTaffEvyPnyyonpxRRR:
 nop
 .text
-.globl b__MA7naqebvq2fcVAF_8uneqjner4taff4I1_022VTaffAnivtngvbaZrffntrRRnFRBF5_
+.weak b__MA7naqebvq2fcVAF_8uneqjner4taff4I1_022VTaffAnivtngvbaZrffntrRRnFRBF5_
 .type b__MA7naqebvq2fcVAF_8uneqjner4taff4I1_022VTaffAnivtngvbaZrffntrRRnFRBF5_,%function
 b__MA7naqebvq2fcVAF_8uneqjner4taff4I1_022VTaffAnivtngvbaZrffntrRRnFRBF5_:
 nop
@@ -3173,7 +3173,7 @@
 b__MA7naqebvq8uneqjner4taff4I1_033OaUjTaffAnivtngvbaZrffntrPnyyonpx12trgQrohtVasbRAFg3__18shapgvbaVSiEXAF_4uvqy4onfr4I1_09QrohtVasbRRRR:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_4taff4I1_014VNTaffPnyyonpxRAF3_17OcUjNTaffPnyyonpxRAF3_17OaUjNTaffPnyyonpxRRRAF_2fcVG_RREXAF7_VAF0_7VOvaqreRRR
+.weak b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_4taff4I1_014VNTaffPnyyonpxRAF3_17OcUjNTaffPnyyonpxRAF3_17OaUjNTaffPnyyonpxRRRAF_2fcVG_RREXAF7_VAF0_7VOvaqreRRR
 .type b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_4taff4I1_014VNTaffPnyyonpxRAF3_17OcUjNTaffPnyyonpxRAF3_17OaUjNTaffPnyyonpxRRRAF_2fcVG_RREXAF7_VAF0_7VOvaqreRRR,%function
 b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_4taff4I1_014VNTaffPnyyonpxRAF3_17OcUjNTaffPnyyonpxRAF3_17OaUjNTaffPnyyonpxRRRAF_2fcVG_RREXAF7_VAF0_7VOvaqreRRR:
 nop
@@ -3213,7 +3213,7 @@
 b__MA7naqebvq8uneqjner4taff4I1_012OcUjTaffKgen15baYnfgFgebatErsRCXi:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_4taff4I1_012OcUjTaffKgenRAF4_9VTaffKgenRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_4taff4I1_012OcUjTaffKgenRAF4_9VTaffKgenRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo
 .type b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_4taff4I1_012OcUjTaffKgenRAF4_9VTaffKgenRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_4taff4I1_012OcUjTaffKgenRAF4_9VTaffKgenRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo:
 nop
@@ -3223,7 +3223,7 @@
 b__MGIA7naqebvq8uneqjner4taff4I1_012OaUjTaffKgenR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I1_017VNTaffEvyPnyyonpxRAF_4uvqy4onfr4I1_05VOnfrRAF4_20OcUjNTaffEvyPnyyonpxRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I1_017VNTaffEvyPnyyonpxRAF_4uvqy4onfr4I1_05VOnfrRAF4_20OcUjNTaffEvyPnyyonpxRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo
 .type b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I1_017VNTaffEvyPnyyonpxRAF_4uvqy4onfr4I1_05VOnfrRAF4_20OcUjNTaffEvyPnyyonpxRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I1_017VNTaffEvyPnyyonpxRAF_4uvqy4onfr4I1_05VOnfrRAF4_20OcUjNTaffEvyPnyyonpxRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo:
 nop
@@ -3283,7 +3283,7 @@
 b__MA7naqebvq8uneqjner4taff4I1_012OcUjNTaffEvy11frgPnyyonpxREXAF_2fcVAF2_17VNTaffEvyPnyyonpxRRR:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_4taff4I1_06VNTaffRAF3_9OcUjNTaffRAF3_9OaUjNTaffRRRAF_2fcVG_RREXAF7_VAF0_7VOvaqreRRR
+.weak b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_4taff4I1_06VNTaffRAF3_9OcUjNTaffRAF3_9OaUjNTaffRRRAF_2fcVG_RREXAF7_VAF0_7VOvaqreRRR
 .type b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_4taff4I1_06VNTaffRAF3_9OcUjNTaffRAF3_9OaUjNTaffRRRAF_2fcVG_RREXAF7_VAF0_7VOvaqreRRR,%function
 b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_4taff4I1_06VNTaffRAF3_9OcUjNTaffRAF3_9OaUjNTaffRRRAF_2fcVG_RREXAF7_VAF0_7VOvaqreRRR:
 nop
@@ -3463,7 +3463,7 @@
 b__MGIA7naqebvq8uneqjner4taff4I1_016OcUjTaffOngpuvatR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIA7naqebvq8uneqjner4taff4I1_022OfTaffTrbsraprPnyyonpxR
+.weak b__MGIA7naqebvq8uneqjner4taff4I1_022OfTaffTrbsraprPnyyonpxR
 .type b__MGIA7naqebvq8uneqjner4taff4I1_022OfTaffTrbsraprPnyyonpxR,%object
 b__MGIA7naqebvq8uneqjner4taff4I1_022OfTaffTrbsraprPnyyonpxR:
 .space __SIZEOF_POINTER__
@@ -3498,7 +3498,7 @@
 b__MA7naqebvq8uneqjner4taff4I1_017VNTaffEvyPnyyonpx14vagresnprPunvaRAFg3__18shapgvbaVSiEXAF0_8uvqy_irpVAF0_11uvqy_fgevatRRRRRR:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_4taff4I1_08OcUjTaffRAF4_5VTaffRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_4taff4I1_08OcUjTaffRAF4_5VTaffRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo
 .type b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_4taff4I1_08OcUjTaffRAF4_5VTaffRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_4taff4I1_08OcUjTaffRAF4_5VTaffRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo:
 nop
@@ -3523,7 +3523,7 @@
 b__MA7naqebvq8uneqjner4taff4I1_017VTaffKgenPnyyonpx21frgUNYVafgehzragngvbaRi:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_015VTaffTrbsrapvatRiRRAF_2fcVG_RRF8_
+.weak b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_015VTaffTrbsrapvatRiRRAF_2fcVG_RRF8_
 .type b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_015VTaffTrbsrapvatRiRRAF_2fcVG_RRF8_,%function
 b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_015VTaffTrbsrapvatRiRRAF_2fcVG_RRF8_:
 nop
@@ -3588,7 +3588,7 @@
 b__MA7naqebvq8uneqjner4taff4I1_09OcUjNTaff20_uvqy_qngnPbaaSnvyrqRCAF0_10VVagresnprRCAF0_7qrgnvyf16UvqyVafgehzragbeR:
 nop
 .data
-.globl b__MGPA7naqebvq8uneqjner4taff4I1_07OfNTaffR0_AF2_6VNTaffR
+.weak b__MGPA7naqebvq8uneqjner4taff4I1_07OfNTaffR0_AF2_6VNTaffR
 .type b__MGPA7naqebvq8uneqjner4taff4I1_07OfNTaffR0_AF2_6VNTaffR,%object
 b__MGPA7naqebvq8uneqjner4taff4I1_07OfNTaffR0_AF2_6VNTaffR:
 .space __SIZEOF_POINTER__
@@ -3598,7 +3598,7 @@
 b__MGPA7naqebvq8uneqjner4taff4I1_016OaUjTaffOngpuvatR0_AF0_7VOvaqreR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGPA7naqebvq8uneqjner4taff4I1_014OfTaffPnyyonpxR0_AF2_13VTaffPnyyonpxR
+.weak b__MGPA7naqebvq8uneqjner4taff4I1_014OfTaffPnyyonpxR0_AF2_13VTaffPnyyonpxR
 .type b__MGPA7naqebvq8uneqjner4taff4I1_014OfTaffPnyyonpxR0_AF2_13VTaffPnyyonpxR,%object
 b__MGPA7naqebvq8uneqjner4taff4I1_014OfTaffPnyyonpxR0_AF2_13VTaffPnyyonpxR:
 .space __SIZEOF_POINTER__
@@ -3743,7 +3743,7 @@
 b__MGGA7naqebvq8uneqjner4taff4I1_012OaUjTaffKgenR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_4taff4I1_012OcUjNTaffEvyRAF4_9VNTaffEvyRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_4taff4I1_012OcUjNTaffEvyRAF4_9VNTaffEvyRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo
 .type b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_4taff4I1_012OcUjNTaffEvyRAF4_9VNTaffEvyRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_4taff4I1_012OcUjNTaffEvyRAF4_9VNTaffEvyRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo:
 nop
@@ -3768,7 +3768,7 @@
 b__MGGA7naqebvq8uneqjner4taff4I1_09VTaffKgenR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_4taff4I1_07VTaffAvRAF3_10OcUjTaffAvRAF3_10OaUjTaffAvRRRAF_2fcVG_RREXAF7_VAF0_7VOvaqreRRR
+.weak b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_4taff4I1_07VTaffAvRAF3_10OcUjTaffAvRAF3_10OaUjTaffAvRRRAF_2fcVG_RREXAF7_VAF0_7VOvaqreRRR
 .type b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_4taff4I1_07VTaffAvRAF3_10OcUjTaffAvRAF3_10OaUjTaffAvRRRAF_2fcVG_RREXAF7_VAF0_7VOvaqreRRR,%function
 b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_4taff4I1_07VTaffAvRAF3_10OcUjTaffAvRAF3_10OaUjTaffAvRRRAF_2fcVG_RREXAF7_VAF0_7VOvaqreRRR:
 nop
@@ -3893,7 +3893,7 @@
 b__MA7naqebvq8uneqjner4taff4I1_08OcUjTaff32_uvqy_trgRkgrafvbaTaffTrbsrapvatRCAF0_10VVagresnprRCAF0_7qrgnvyf16UvqyVafgehzragbeR:
 nop
 .data
-.globl b__MGIA7naqebvq8uneqjner4taff4I1_06OfTaffR
+.weak b__MGIA7naqebvq8uneqjner4taff4I1_06OfTaffR
 .type b__MGIA7naqebvq8uneqjner4taff4I1_06OfTaffR,%object
 b__MGIA7naqebvq8uneqjner4taff4I1_06OfTaffR:
 .space __SIZEOF_POINTER__
@@ -3918,7 +3918,7 @@
 b__MGIA7naqebvq8uneqjner4taff4I1_016OcUjTaffPnyyonpxR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIA7naqebvq8uneqjner4taff4I1_017OfTaffZrnfherzragR
+.weak b__MGIA7naqebvq8uneqjner4taff4I1_017OfTaffZrnfherzragR
 .type b__MGIA7naqebvq8uneqjner4taff4I1_017OfTaffZrnfherzragR,%object
 b__MGIA7naqebvq8uneqjner4taff4I1_017OfTaffZrnfherzragR:
 .space __SIZEOF_POINTER__
@@ -4028,7 +4028,7 @@
 b__MA7naqebvq8uneqjner4taff4I1_016VTaffZrnfherzrag8pnfgSebzREXAF_2fcVF3_RRo:
 nop
 .data
-.globl b__MGIA7naqebvq8uneqjner4taff4I1_023OfTaffAnivtngvbaZrffntrR
+.weak b__MGIA7naqebvq8uneqjner4taff4I1_023OfTaffAnivtngvbaZrffntrR
 .type b__MGIA7naqebvq8uneqjner4taff4I1_023OfTaffAnivtngvbaZrffntrR,%object
 b__MGIA7naqebvq8uneqjner4taff4I1_023OfTaffAnivtngvbaZrffntrR:
 .space __SIZEOF_POINTER__
@@ -4053,7 +4053,7 @@
 b__MA7naqebvq8uneqjner4taff4I1_016OaUjTaffOngpuvatP2REXAF_2fcVAF2_13VTaffOngpuvatRRR:
 nop
 .data
-.globl b__MGPA7naqebvq8uneqjner4taff4I1_016OfTaffTrbsrapvatR0_AF2_15VTaffTrbsrapvatR
+.weak b__MGPA7naqebvq8uneqjner4taff4I1_016OfTaffTrbsrapvatR0_AF2_15VTaffTrbsrapvatR
 .type b__MGPA7naqebvq8uneqjner4taff4I1_016OfTaffTrbsrapvatR0_AF2_15VTaffTrbsrapvatR,%object
 b__MGPA7naqebvq8uneqjner4taff4I1_016OfTaffTrbsrapvatR0_AF2_15VTaffTrbsrapvatR:
 .space __SIZEOF_POINTER__
@@ -4103,7 +4103,7 @@
 b__MA7naqebvq8uneqjner4taff4I1_017OcUjNTaffPnyyonpx12trgQrohtVasbRAFg3__18shapgvbaVSiEXAF_4uvqy4onfr4I1_09QrohtVasbRRRR:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_09VNTaffEvyRiRRAF_2fcVG_RRF8_
+.weak b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_09VNTaffEvyRiRRAF_2fcVG_RRF8_
 .type b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_09VNTaffEvyRiRRAF_2fcVG_RRF8_,%function
 b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_09VNTaffEvyRiRRAF_2fcVG_RRF8_:
 nop
@@ -4133,7 +4133,7 @@
 b__MGi0_a24_A7naqebvq8uneqjner4taff4I1_012OaUjNTaffEvyQ1Ri:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_4taff4I1_015VTaffTrbsrapvatRAF3_18OcUjTaffTrbsrapvatRAF3_18OaUjTaffTrbsrapvatRRRAF_2fcVG_RREXAF7_VAF0_7VOvaqreRRR
+.weak b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_4taff4I1_015VTaffTrbsrapvatRAF3_18OcUjTaffTrbsrapvatRAF3_18OaUjTaffTrbsrapvatRRRAF_2fcVG_RREXAF7_VAF0_7VOvaqreRRR
 .type b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_4taff4I1_015VTaffTrbsrapvatRAF3_18OcUjTaffTrbsrapvatRAF3_18OaUjTaffTrbsrapvatRRRAF_2fcVG_RREXAF7_VAF0_7VOvaqreRRR,%function
 b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_4taff4I1_015VTaffTrbsrapvatRAF3_18OcUjTaffTrbsrapvatRAF3_18OaUjTaffTrbsrapvatRRRAF_2fcVG_RREXAF7_VAF0_7VOvaqreRRR:
 nop
@@ -4143,12 +4143,12 @@
 b__MA7naqebvq8uneqjner4taff4I1_013OcUjTaffQrohtP1REXAF_2fcVAF0_7VOvaqreRRR:
 nop
 .data
-.globl b__MGIA7naqebvq8uneqjner4taff4I1_014OfTaffOngpuvatR
+.weak b__MGIA7naqebvq8uneqjner4taff4I1_014OfTaffOngpuvatR
 .type b__MGIA7naqebvq8uneqjner4taff4I1_014OfTaffOngpuvatR,%object
 b__MGIA7naqebvq8uneqjner4taff4I1_014OfTaffOngpuvatR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGPA7naqebvq8uneqjner4taff4I1_023OfTaffAnivtngvbaZrffntrR0_AF2_22VTaffAnivtngvbaZrffntrR
+.weak b__MGPA7naqebvq8uneqjner4taff4I1_023OfTaffAnivtngvbaZrffntrR0_AF2_22VTaffAnivtngvbaZrffntrR
 .type b__MGPA7naqebvq8uneqjner4taff4I1_023OfTaffAnivtngvbaZrffntrR0_AF2_22VTaffAnivtngvbaZrffntrR,%object
 b__MGPA7naqebvq8uneqjner4taff4I1_023OfTaffAnivtngvbaZrffntrR0_AF2_22VTaffAnivtngvbaZrffntrR:
 .space __SIZEOF_POINTER__
@@ -4253,7 +4253,7 @@
 b__MA7naqebvq8uneqjner4taff4I1_030VTaffAnivtngvbaZrffntrPnyyonpx4cvatRi:
 nop
 .data
-.globl b__MGPA7naqebvq8uneqjner4taff4I1_014OfTaffOngpuvatR0_AF2_13VTaffOngpuvatR
+.weak b__MGPA7naqebvq8uneqjner4taff4I1_014OfTaffOngpuvatR0_AF2_13VTaffOngpuvatR
 .type b__MGPA7naqebvq8uneqjner4taff4I1_014OfTaffOngpuvatR0_AF2_13VTaffOngpuvatR,%object
 b__MGPA7naqebvq8uneqjner4taff4I1_014OfTaffOngpuvatR0_AF2_13VTaffOngpuvatR:
 .space __SIZEOF_POINTER__
@@ -4278,7 +4278,7 @@
 b__MA7naqebvq8uneqjner4taff4I1_014VNTaffPnyyonpx21abgvslFlfcebcfPunatrqRi:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_4taff4I1_013VTaffOngpuvatRAF3_16OcUjTaffOngpuvatRAF3_16OaUjTaffOngpuvatRRRAF_2fcVG_RREXAF7_VAF0_7VOvaqreRRR
+.weak b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_4taff4I1_013VTaffOngpuvatRAF3_16OcUjTaffOngpuvatRAF3_16OaUjTaffOngpuvatRRRAF_2fcVG_RREXAF7_VAF0_7VOvaqreRRR
 .type b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_4taff4I1_013VTaffOngpuvatRAF3_16OcUjTaffOngpuvatRAF3_16OaUjTaffOngpuvatRRRAF_2fcVG_RREXAF7_VAF0_7VOvaqreRRR,%function
 b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_4taff4I1_013VTaffOngpuvatRAF3_16OcUjTaffOngpuvatRAF3_16OaUjTaffOngpuvatRRRAF_2fcVG_RREXAF7_VAF0_7VOvaqreRRR:
 nop
@@ -4408,7 +4408,7 @@
 b__MA7naqebvq8uneqjner4taff4I1_013VTaffOngpuvat13hayvaxGbQrnguREXAF_2fcVAF0_20uvqy_qrngu_erpvcvragRRR:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_4taff4I1_024VTaffZrnfherzragPnyyonpxRAF3_27OcUjTaffZrnfherzragPnyyonpxRAF3_27OaUjTaffZrnfherzragPnyyonpxRRRAF_2fcVG_RREXAF7_VAF0_7VOvaqreRRR
+.weak b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_4taff4I1_024VTaffZrnfherzragPnyyonpxRAF3_27OcUjTaffZrnfherzragPnyyonpxRAF3_27OaUjTaffZrnfherzragPnyyonpxRRRAF_2fcVG_RREXAF7_VAF0_7VOvaqreRRR
 .type b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_4taff4I1_024VTaffZrnfherzragPnyyonpxRAF3_27OcUjTaffZrnfherzragPnyyonpxRAF3_27OaUjTaffZrnfherzragPnyyonpxRRRAF_2fcVG_RREXAF7_VAF0_7VOvaqreRRR,%function
 b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_4taff4I1_024VTaffZrnfherzragPnyyonpxRAF3_27OcUjTaffZrnfherzragPnyyonpxRAF3_27OaUjTaffZrnfherzragPnyyonpxRRRAF_2fcVG_RREXAF7_VAF0_7VOvaqreRRR:
 nop
@@ -4423,7 +4423,7 @@
 b__MA7naqebvq8uneqjner4taff4I1_010OcUjTaffAv11frgPnyyonpxREXAF_2fcVAF2_15VTaffAvPnyyonpxRRR:
 nop
 .data
-.globl b__MGIA7naqebvq8uneqjner4taff4I1_014OfTaffPnyyonpxR
+.weak b__MGIA7naqebvq8uneqjner4taff4I1_014OfTaffPnyyonpxR
 .type b__MGIA7naqebvq8uneqjner4taff4I1_014OfTaffPnyyonpxR,%object
 b__MGIA7naqebvq8uneqjner4taff4I1_014OfTaffPnyyonpxR:
 .space __SIZEOF_POINTER__
@@ -4448,12 +4448,12 @@
 b__MA7naqebvq8uneqjner4taff4I1_016OcUjTaffOngpuvat5qrohtREXAF0_11uvqy_unaqyrREXAF0_8uvqy_irpVAF0_11uvqy_fgevatRRR:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I1_017VTaffKgenPnyyonpxRAF_4uvqy4onfr4I1_05VOnfrRAF4_20OcUjTaffKgenPnyyonpxRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I1_017VTaffKgenPnyyonpxRAF_4uvqy4onfr4I1_05VOnfrRAF4_20OcUjTaffKgenPnyyonpxRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo
 .type b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I1_017VTaffKgenPnyyonpxRAF_4uvqy4onfr4I1_05VOnfrRAF4_20OcUjTaffKgenPnyyonpxRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I1_017VTaffKgenPnyyonpxRAF_4uvqy4onfr4I1_05VOnfrRAF4_20OcUjTaffKgenPnyyonpxRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRR:
 nop
@@ -4463,7 +4463,7 @@
 b__MA7naqebvq8uneqjner4taff4I1_08OaUjTaff4cvatRi:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_4taff4I1_024OcUjTaffOngpuvatPnyyonpxRAF4_21VTaffOngpuvatPnyyonpxRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_4taff4I1_024OcUjTaffOngpuvatPnyyonpxRAF4_21VTaffOngpuvatPnyyonpxRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo
 .type b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_4taff4I1_024OcUjTaffOngpuvatPnyyonpxRAF4_21VTaffOngpuvatPnyyonpxRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_4taff4I1_024OcUjTaffOngpuvatPnyyonpxRAF4_21VTaffOngpuvatPnyyonpxRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo:
 nop
@@ -4488,7 +4488,7 @@
 b__MA7naqebvq8uneqjner4taff4I1_017VNTaffEvyPnyyonpx10qrfpevcgbeR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq2fcVAF_8uneqjner4taff4I1_010VTaffQrohtRRnFRBF5_
+.weak b__MA7naqebvq2fcVAF_8uneqjner4taff4I1_010VTaffQrohtRRnFRBF5_
 .type b__MA7naqebvq2fcVAF_8uneqjner4taff4I1_010VTaffQrohtRRnFRBF5_,%function
 b__MA7naqebvq2fcVAF_8uneqjner4taff4I1_010VTaffQrohtRRnFRBF5_:
 nop
@@ -4598,12 +4598,12 @@
 b__MA7naqebvq8uneqjner4taff4I1_021OcUjTaffPbasvthengvba11yvaxGbQrnguREXAF_2fcVAF0_20uvqy_qrngu_erpvcvragRRRz:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I1_018VTaffPbasvthengvbaRAF_4uvqy4onfr4I1_05VOnfrRAF4_21OcUjTaffPbasvthengvbaRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I1_018VTaffPbasvthengvbaRAF_4uvqy4onfr4I1_05VOnfrRAF4_21OcUjTaffPbasvthengvbaRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo
 .type b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I1_018VTaffPbasvthengvbaRAF_4uvqy4onfr4I1_05VOnfrRAF4_21OcUjTaffPbasvthengvbaRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I1_018VTaffPbasvthengvbaRAF_4uvqy4onfr4I1_05VOnfrRAF4_21OcUjTaffPbasvthengvbaRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo:
 nop
 .data
-.globl b__MGIA7naqebvq8uneqjner4taff4I1_011OfTaffQrohtR
+.weak b__MGIA7naqebvq8uneqjner4taff4I1_011OfTaffQrohtR
 .type b__MGIA7naqebvq8uneqjner4taff4I1_011OfTaffQrohtR,%object
 b__MGIA7naqebvq8uneqjner4taff4I1_011OfTaffQrohtR:
 .space __SIZEOF_POINTER__
@@ -4648,7 +4648,7 @@
 b__MGIA7naqebvq8uneqjner4taff4I1_016OaUjTaffPnyyonpxR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I1_030VTaffAnivtngvbaZrffntrPnyyonpxRAF_4uvqy4onfr4I1_05VOnfrRAF4_33OcUjTaffAnivtngvbaZrffntrPnyyonpxRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I1_030VTaffAnivtngvbaZrffntrPnyyonpxRAF_4uvqy4onfr4I1_05VOnfrRAF4_33OcUjTaffAnivtngvbaZrffntrPnyyonpxRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo
 .type b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I1_030VTaffAnivtngvbaZrffntrPnyyonpxRAF_4uvqy4onfr4I1_05VOnfrRAF4_33OcUjTaffAnivtngvbaZrffntrPnyyonpxRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I1_030VTaffAnivtngvbaZrffntrPnyyonpxRAF_4uvqy4onfr4I1_05VOnfrRAF4_33OcUjTaffAnivtngvbaZrffntrPnyyonpxRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo:
 nop
@@ -4673,7 +4673,7 @@
 b__MA7naqebvq8uneqjner4taff4I1_09OcUjNTaff17_uvqy_frgPnyyonpxRCAF0_10VVagresnprRCAF0_7qrgnvyf16UvqyVafgehzragbeREXAF_2fcVAF2_14VNTaffPnyyonpxRRR:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_014VNTaffPnyyonpxRiRRAF_2fcVG_RRF8_
+.weak b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_014VNTaffPnyyonpxRiRRAF_2fcVG_RRF8_
 .type b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_014VNTaffPnyyonpxRiRRAF_2fcVG_RRF8_,%function
 b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_014VNTaffPnyyonpxRiRRAF_2fcVG_RRF8_:
 nop
@@ -4763,7 +4763,7 @@
 b__MA7naqebvq8uneqjner4taff4I1_012OaUjNTaffEvyQ1Ri:
 nop
 .text
-.globl b__MA7naqebvq2fcVAF_8uneqjner4taff4I1_018VTaffPbasvthengvbaRRnFRBF5_
+.weak b__MA7naqebvq2fcVAF_8uneqjner4taff4I1_018VTaffPbasvthengvbaRRnFRBF5_
 .type b__MA7naqebvq2fcVAF_8uneqjner4taff4I1_018VTaffPbasvthengvbaRRnFRBF5_,%function
 b__MA7naqebvq2fcVAF_8uneqjner4taff4I1_018VTaffPbasvthengvbaRRnFRBF5_:
 nop
@@ -4928,7 +4928,7 @@
 b__MA7naqebvq8uneqjner4taff4I1_027OaUjTaffZrnfherzragPnyyonpxP2REXAF_2fcVAF2_24VTaffZrnfherzragPnyyonpxRRR:
 nop
 .data
-.globl b__MGPA7naqebvq8uneqjner4taff4I1_015OfNTaffPnyyonpxR0_AF2_14VNTaffPnyyonpxR
+.weak b__MGPA7naqebvq8uneqjner4taff4I1_015OfNTaffPnyyonpxR0_AF2_14VNTaffPnyyonpxR
 .type b__MGPA7naqebvq8uneqjner4taff4I1_015OfNTaffPnyyonpxR0_AF2_14VNTaffPnyyonpxR,%object
 b__MGPA7naqebvq8uneqjner4taff4I1_015OfNTaffPnyyonpxR0_AF2_14VNTaffPnyyonpxR:
 .space __SIZEOF_POINTER__
@@ -4998,7 +4998,7 @@
 b__MA7naqebvq8uneqjner4taff4I1_018OcUjTaffAvPnyyonpx11yvaxGbQrnguREXAF_2fcVAF0_20uvqy_qrngu_erpvcvragRRRz:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I1_015VTaffAvPnyyonpxRAF_4uvqy4onfr4I1_05VOnfrRAF4_18OcUjTaffAvPnyyonpxRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I1_015VTaffAvPnyyonpxRAF_4uvqy4onfr4I1_05VOnfrRAF4_18OcUjTaffAvPnyyonpxRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo
 .type b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I1_015VTaffAvPnyyonpxRAF_4uvqy4onfr4I1_05VOnfrRAF4_18OcUjTaffAvPnyyonpxRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I1_015VTaffAvPnyyonpxRAF_4uvqy4onfr4I1_05VOnfrRAF4_18OcUjTaffAvPnyyonpxRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo:
 nop
@@ -5008,12 +5008,12 @@
 b__MGi0_a24_A7naqebvq8uneqjner4taff4I1_018OaUjTaffAvPnyyonpxQ0Ri:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I1_021VTaffOngpuvatPnyyonpxRAF_4uvqy4onfr4I1_05VOnfrRAF4_24OcUjTaffOngpuvatPnyyonpxRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I1_021VTaffOngpuvatPnyyonpxRAF_4uvqy4onfr4I1_05VOnfrRAF4_24OcUjTaffOngpuvatPnyyonpxRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo
 .type b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I1_021VTaffOngpuvatPnyyonpxRAF_4uvqy4onfr4I1_05VOnfrRAF4_24OcUjTaffOngpuvatPnyyonpxRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I1_021VTaffOngpuvatPnyyonpxRAF_4uvqy4onfr4I1_05VOnfrRAF4_24OcUjTaffOngpuvatPnyyonpxRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_09VTaffKgenRiRRAF_2fcVG_RRF8_
+.weak b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_09VTaffKgenRiRRAF_2fcVG_RRF8_
 .type b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_09VTaffKgenRiRRAF_2fcVG_RRF8_,%function
 b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_09VTaffKgenRiRRAF_2fcVG_RRF8_:
 nop
@@ -5088,7 +5088,7 @@
 b__MA7naqebvq8uneqjner4taff4I1_06VNTaff19vagresnprQrfpevcgbeRAFg3__18shapgvbaVSiEXAF0_11uvqy_fgevatRRRR:
 nop
 .data
-.globl b__MGIA7naqebvq8uneqjner4taff4I1_07OfNTaffR
+.weak b__MGIA7naqebvq8uneqjner4taff4I1_07OfNTaffR
 .type b__MGIA7naqebvq8uneqjner4taff4I1_07OfNTaffR,%object
 b__MGIA7naqebvq8uneqjner4taff4I1_07OfNTaffR:
 .space __SIZEOF_POINTER__
@@ -5108,7 +5108,7 @@
 b__MA7naqebvq8uneqjner4taff4I1_021VTaffTrbsraprPnyyonpx17ertvfgreNfFreivprREXAFg3__112onfvp_fgevatVpAF4_11pune_genvgfVpRRAF4_9nyybpngbeVpRRRR:
 nop
 .data
-.globl b__MGIA7naqebvq8uneqjner4taff4I1_010OfTaffKgenR
+.weak b__MGIA7naqebvq8uneqjner4taff4I1_010OfTaffKgenR
 .type b__MGIA7naqebvq8uneqjner4taff4I1_010OfTaffKgenR,%object
 b__MGIA7naqebvq8uneqjner4taff4I1_010OfTaffKgenR:
 .space __SIZEOF_POINTER__
@@ -5158,7 +5158,7 @@
 b__MGPA7naqebvq8uneqjner4taff4I1_017OaUjNTaffPnyyonpxR0_AF_4uvqy4onfr4I1_08OaUjOnfrR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq2fcVAF_8uneqjner4taff4I1_015VTaffTrbsrapvatRRnFRBF5_
+.weak b__MA7naqebvq2fcVAF_8uneqjner4taff4I1_015VTaffTrbsrapvatRRnFRBF5_
 .type b__MA7naqebvq2fcVAF_8uneqjner4taff4I1_015VTaffTrbsrapvatRRnFRBF5_,%function
 b__MA7naqebvq2fcVAF_8uneqjner4taff4I1_015VTaffTrbsrapvatRRnFRBF5_:
 nop
@@ -5268,7 +5268,7 @@
 b__MA7naqebvq8uneqjner4taff4I1_010OaUjTaffAv17_uvqy_frgPnyyonpxRCAF_4uvqy4onfr4I1_08OaUjOnfrREXAF0_6CnepryRCF9_AFg3__18shapgvbaVSiEF9_RRR:
 nop
 .data
-.globl b__MGPA7naqebvq8uneqjner4taff4I1_08OfTaffAvR0_AF2_7VTaffAvR
+.weak b__MGPA7naqebvq8uneqjner4taff4I1_08OfTaffAvR0_AF2_7VTaffAvR
 .type b__MGPA7naqebvq8uneqjner4taff4I1_08OfTaffAvR0_AF2_7VTaffAvR,%object
 b__MGPA7naqebvq8uneqjner4taff4I1_08OfTaffAvR0_AF2_7VTaffAvR:
 .space __SIZEOF_POINTER__
@@ -5313,7 +5313,7 @@
 b__MA7naqebvq8uneqjner4taff4I1_018OfNTaffEvyPnyyonpxP1RAF_2fcVAF2_17VNTaffEvyPnyyonpxRRR:
 nop
 .data
-.globl b__MGPA7naqebvq8uneqjner4taff4I1_022OfTaffOngpuvatPnyyonpxR0_AF2_21VTaffOngpuvatPnyyonpxR
+.weak b__MGPA7naqebvq8uneqjner4taff4I1_022OfTaffOngpuvatPnyyonpxR0_AF2_21VTaffOngpuvatPnyyonpxR
 .type b__MGPA7naqebvq8uneqjner4taff4I1_022OfTaffOngpuvatPnyyonpxR0_AF2_21VTaffOngpuvatPnyyonpxR,%object
 b__MGPA7naqebvq8uneqjner4taff4I1_022OfTaffOngpuvatPnyyonpxR0_AF2_21VTaffOngpuvatPnyyonpxR:
 .space __SIZEOF_POINTER__
@@ -5323,7 +5323,7 @@
 b__MGGA7naqebvq8uneqjner4taff4I1_030VTaffAnivtngvbaZrffntrPnyyonpxR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I1_07VTaffAvRAF_4uvqy4onfr4I1_05VOnfrRAF4_10OcUjTaffAvRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I1_07VTaffAvRAF_4uvqy4onfr4I1_05VOnfrRAF4_10OcUjTaffAvRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo
 .type b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I1_07VTaffAvRAF_4uvqy4onfr4I1_05VOnfrRAF4_10OcUjTaffAvRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I1_07VTaffAvRAF_4uvqy4onfr4I1_05VOnfrRAF4_10OcUjTaffAvRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo:
 nop
@@ -5398,7 +5398,7 @@
 b__MA7naqebvq8uneqjner4taff4I1_020OcUjTaffKgenPnyyonpx23_uvqy_qbjaybnqErdhrfgPoRCAF0_10VVagresnprRCAF0_7qrgnvyf16UvqyVafgehzragbeR:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I1_010VTaffQrohtRAF_4uvqy4onfr4I1_05VOnfrRAF4_13OcUjTaffQrohtRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I1_010VTaffQrohtRAF_4uvqy4onfr4I1_05VOnfrRAF4_13OcUjTaffQrohtRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo
 .type b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I1_010VTaffQrohtRAF_4uvqy4onfr4I1_05VOnfrRAF4_13OcUjTaffQrohtRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I1_010VTaffQrohtRAF_4uvqy4onfr4I1_05VOnfrRAF4_13OcUjTaffQrohtRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo:
 nop
@@ -5433,7 +5433,7 @@
 b__MA7naqebvq8uneqjner4taff4I1_013VTaffOngpuvat8pnfgSebzREXAF_2fcVF3_RRo:
 nop
 .data
-.globl b__MGPA7naqebvq8uneqjner4taff4I1_025OfTaffZrnfherzragPnyyonpxR0_AF2_24VTaffZrnfherzragPnyyonpxR
+.weak b__MGPA7naqebvq8uneqjner4taff4I1_025OfTaffZrnfherzragPnyyonpxR0_AF2_24VTaffZrnfherzragPnyyonpxR
 .type b__MGPA7naqebvq8uneqjner4taff4I1_025OfTaffZrnfherzragPnyyonpxR0_AF2_24VTaffZrnfherzragPnyyonpxR,%object
 b__MGPA7naqebvq8uneqjner4taff4I1_025OfTaffZrnfherzragPnyyonpxR0_AF2_24VTaffZrnfherzragPnyyonpxR:
 .space __SIZEOF_POINTER__
@@ -5468,7 +5468,7 @@
 b__MA7naqebvq8uneqjner4taff4I1_017VTaffKgenPnyyonpx8pnfgSebzREXAF_2fcVAF_4uvqy4onfr4I1_05VOnfrRRRo:
 nop
 .text
-.globl b__MA7naqebvq2fcVAF_8uneqjner4taff4I1_013VTaffOngpuvatRRnFRBF5_
+.weak b__MA7naqebvq2fcVAF_8uneqjner4taff4I1_013VTaffOngpuvatRRnFRBF5_
 .type b__MA7naqebvq2fcVAF_8uneqjner4taff4I1_013VTaffOngpuvatRRnFRBF5_,%function
 b__MA7naqebvq2fcVAF_8uneqjner4taff4I1_013VTaffOngpuvatRRnFRBF5_:
 nop
@@ -5498,7 +5498,7 @@
 b__MGua16_A7naqebvq8uneqjner4taff4I1_020OcUjNTaffEvyPnyyonpx15baYnfgFgebatErsRCXi:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_021VTaffOngpuvatPnyyonpxRiRRAF_2fcVG_RRF8_
+.weak b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_021VTaffOngpuvatPnyyonpxRiRRAF_2fcVG_RRF8_
 .type b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_021VTaffOngpuvatPnyyonpxRiRRAF_2fcVG_RRF8_,%function
 b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_021VTaffOngpuvatPnyyonpxRiRRAF_2fcVG_RRF8_:
 nop
@@ -5543,7 +5543,7 @@
 b__MA7naqebvq8uneqjner4taff4I1_017OcUjNTaffPnyyonpx15baYnfgFgebatErsRCXi:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I1_021VTaffTrbsraprPnyyonpxRAF_4uvqy4onfr4I1_05VOnfrRAF4_24OcUjTaffTrbsraprPnyyonpxRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I1_021VTaffTrbsraprPnyyonpxRAF_4uvqy4onfr4I1_05VOnfrRAF4_24OcUjTaffTrbsraprPnyyonpxRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo
 .type b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I1_021VTaffTrbsraprPnyyonpxRAF_4uvqy4onfr4I1_05VOnfrRAF4_24OcUjTaffTrbsraprPnyyonpxRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I1_021VTaffTrbsraprPnyyonpxRAF_4uvqy4onfr4I1_05VOnfrRAF4_24OcUjTaffTrbsraprPnyyonpxRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo:
 nop
@@ -5638,7 +5638,7 @@
 b__MA7naqebvq8uneqjner4taff4I1_016OcUjTaffPnyyonpx21taffNpdhverJnxrybpxPoRi:
 nop
 .data
-.globl b__MGPA7naqebvq8uneqjner4taff4I1_011OfTaffQrohtR0_AF2_10VTaffQrohtR
+.weak b__MGPA7naqebvq8uneqjner4taff4I1_011OfTaffQrohtR0_AF2_10VTaffQrohtR
 .type b__MGPA7naqebvq8uneqjner4taff4I1_011OfTaffQrohtR0_AF2_10VTaffQrohtR,%object
 b__MGPA7naqebvq8uneqjner4taff4I1_011OfTaffQrohtR0_AF2_10VTaffQrohtR:
 .space __SIZEOF_POINTER__
@@ -5668,7 +5668,7 @@
 b__MA7naqebvq8uneqjner4taff4I1_021OaUjTaffPbasvthengvba15_uvqy_frgFhcyRfRCAF_4uvqy4onfr4I1_08OaUjOnfrREXAF0_6CnepryRCF9_AFg3__18shapgvbaVSiEF9_RRR:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_4taff4I1_015VTaffAvPnyyonpxRAF3_18OcUjTaffAvPnyyonpxRAF3_18OaUjTaffAvPnyyonpxRRRAF_2fcVG_RREXAF7_VAF0_7VOvaqreRRR
+.weak b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_4taff4I1_015VTaffAvPnyyonpxRAF3_18OcUjTaffAvPnyyonpxRAF3_18OaUjTaffAvPnyyonpxRRRAF_2fcVG_RREXAF7_VAF0_7VOvaqreRRR
 .type b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_4taff4I1_015VTaffAvPnyyonpxRAF3_18OcUjTaffAvPnyyonpxRAF3_18OaUjTaffAvPnyyonpxRRRAF_2fcVG_RREXAF7_VAF0_7VOvaqreRRR,%function
 b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_4taff4I1_015VTaffAvPnyyonpxRAF3_18OcUjTaffAvPnyyonpxRAF3_18OaUjTaffAvPnyyonpxRRRAF_2fcVG_RREXAF7_VAF0_7VOvaqreRRR:
 nop
@@ -5758,7 +5758,7 @@
 b__MA7naqebvq8uneqjner4taff4I1_018VTaffPbasvthengvba10trgFreivprREXAFg3__112onfvp_fgevatVpAF4_11pune_genvgfVpRRAF4_9nyybpngbeVpRRRRo:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I1_015VTaffTrbsrapvatRAF_4uvqy4onfr4I1_05VOnfrRAF4_18OcUjTaffTrbsrapvatRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I1_015VTaffTrbsrapvatRAF_4uvqy4onfr4I1_05VOnfrRAF4_18OcUjTaffTrbsrapvatRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo
 .type b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I1_015VTaffTrbsrapvatRAF_4uvqy4onfr4I1_05VOnfrRAF4_18OcUjTaffTrbsrapvatRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I1_015VTaffTrbsrapvatRAF_4uvqy4onfr4I1_05VOnfrRAF4_18OcUjTaffTrbsrapvatRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo:
 nop
@@ -5768,7 +5768,7 @@
 b__MA7naqebvq8uneqjner4taff4I1_033OcUjTaffAnivtngvbaZrffntrPnyyonpx4cvatRi:
 nop
 .data
-.globl b__MGIA7naqebvq8uneqjner4taff4I1_08OfTaffAvR
+.weak b__MGIA7naqebvq8uneqjner4taff4I1_08OfTaffAvR
 .type b__MGIA7naqebvq8uneqjner4taff4I1_08OfTaffAvR,%object
 b__MGIA7naqebvq8uneqjner4taff4I1_08OfTaffAvR:
 .space __SIZEOF_POINTER__
@@ -5833,12 +5833,12 @@
 b__MGGA7naqebvq8uneqjner4taff4I1_012OaUjNTaffEvyR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_4taff4I1_013VTaffPnyyonpxRAF3_16OcUjTaffPnyyonpxRAF3_16OaUjTaffPnyyonpxRRRAF_2fcVG_RREXAF7_VAF0_7VOvaqreRRR
+.weak b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_4taff4I1_013VTaffPnyyonpxRAF3_16OcUjTaffPnyyonpxRAF3_16OaUjTaffPnyyonpxRRRAF_2fcVG_RREXAF7_VAF0_7VOvaqreRRR
 .type b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_4taff4I1_013VTaffPnyyonpxRAF3_16OcUjTaffPnyyonpxRAF3_16OaUjTaffPnyyonpxRRRAF_2fcVG_RREXAF7_VAF0_7VOvaqreRRR,%function
 b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_4taff4I1_013VTaffPnyyonpxRAF3_16OcUjTaffPnyyonpxRAF3_16OaUjTaffPnyyonpxRRRAF_2fcVG_RREXAF7_VAF0_7VOvaqreRRR:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_07VTaffAvRiRRAF_2fcVG_RRF8_
+.weak b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_07VTaffAvRiRRAF_2fcVG_RRF8_
 .type b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_07VTaffAvRiRRAF_2fcVG_RRF8_,%function
 b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_07VTaffAvRiRRAF_2fcVG_RRF8_:
 nop
@@ -5853,7 +5853,7 @@
 b__MA7naqebvq8uneqjner4taff4I1_013VTaffPnyyonpx17ertvfgreNfFreivprREXAFg3__112onfvp_fgevatVpAF4_11pune_genvgfVpRRAF4_9nyybpngbeVpRRRR:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_4taff4I1_019OcUjTaffZrnfherzragRAF4_16VTaffZrnfherzragRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_4taff4I1_019OcUjTaffZrnfherzragRAF4_16VTaffZrnfherzragRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo
 .type b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_4taff4I1_019OcUjTaffZrnfherzragRAF4_16VTaffZrnfherzragRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_4taff4I1_019OcUjTaffZrnfherzragRAF4_16VTaffZrnfherzragRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo:
 nop
@@ -5903,7 +5903,7 @@
 b__MA7naqebvq8uneqjner4taff4I1_017OcUjNTaffPnyyonpxP1REXAF_2fcVAF0_7VOvaqreRRR:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_017VNTaffEvyPnyyonpxRiRRAF_2fcVG_RRF8_
+.weak b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_017VNTaffEvyPnyyonpxRiRRAF_2fcVG_RRF8_
 .type b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_017VNTaffEvyPnyyonpxRiRRAF_2fcVG_RRF8_,%function
 b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_017VNTaffEvyPnyyonpxRiRRAF_2fcVG_RRF8_:
 nop
@@ -5913,7 +5913,7 @@
 b__MA7naqebvq8uneqjner4taff4I1_020OaUjNTaffEvyPnyyonpxQ1Ri:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_022VTaffAnivtngvbaZrffntrRiRRAF_2fcVG_RRF8_
+.weak b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_022VTaffAnivtngvbaZrffntrRiRRAF_2fcVG_RRF8_
 .type b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_022VTaffAnivtngvbaZrffntrRiRRAF_2fcVG_RRF8_,%function
 b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_022VTaffAnivtngvbaZrffntrRiRRAF_2fcVG_RRF8_:
 nop
@@ -5938,7 +5938,7 @@
 b__MGIA7naqebvq8uneqjner4taff4I1_017OaUjNTaffPnyyonpxR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_013VTaffPnyyonpxRiRRAF_2fcVG_RRF8_
+.weak b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_013VTaffPnyyonpxRiRRAF_2fcVG_RRF8_
 .type b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_013VTaffPnyyonpxRiRRAF_2fcVG_RRF8_,%function
 b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_013VTaffPnyyonpxRiRRAF_2fcVG_RRF8_:
 nop
@@ -5953,12 +5953,12 @@
 b__MA7naqebvq8uneqjner4taff4I1_021OcUjTaffPbasvthengvba16_uvqy_frgTcfYbpxRCAF0_10VVagresnprRCAF0_7qrgnvyf16UvqyVafgehzragbeRu:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_4taff4I1_021VTaffOngpuvatPnyyonpxRAF3_24OcUjTaffOngpuvatPnyyonpxRAF3_24OaUjTaffOngpuvatPnyyonpxRRRAF_2fcVG_RREXAF7_VAF0_7VOvaqreRRR
+.weak b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_4taff4I1_021VTaffOngpuvatPnyyonpxRAF3_24OcUjTaffOngpuvatPnyyonpxRAF3_24OaUjTaffOngpuvatPnyyonpxRRRAF_2fcVG_RREXAF7_VAF0_7VOvaqreRRR
 .type b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_4taff4I1_021VTaffOngpuvatPnyyonpxRAF3_24OcUjTaffOngpuvatPnyyonpxRAF3_24OaUjTaffOngpuvatPnyyonpxRRRAF_2fcVG_RREXAF7_VAF0_7VOvaqreRRR,%function
 b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_4taff4I1_021VTaffOngpuvatPnyyonpxRAF3_24OcUjTaffOngpuvatPnyyonpxRAF3_24OaUjTaffOngpuvatPnyyonpxRRRAF_2fcVG_RREXAF7_VAF0_7VOvaqreRRR:
 nop
@@ -6153,7 +6153,7 @@
 b__MGPA7naqebvq8uneqjner4taff4I1_08OcUjTaffR0_AF_4uvqy4onfr4I1_05VOnfrR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_4taff4I1_021OcUjTaffPbasvthengvbaRAF4_18VTaffPbasvthengvbaRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_4taff4I1_021OcUjTaffPbasvthengvbaRAF4_18VTaffPbasvthengvbaRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo
 .type b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_4taff4I1_021OcUjTaffPbasvthengvbaRAF4_18VTaffPbasvthengvbaRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_4taff4I1_021OcUjTaffPbasvthengvbaRAF4_18VTaffPbasvthengvbaRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo:
 nop
@@ -6258,7 +6258,7 @@
 b__MGGA7naqebvq8uneqjner4taff4I1_012OcUjTaffKgenR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_4taff4I1_017OcUjNTaffPnyyonpxRAF4_14VNTaffPnyyonpxRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_4taff4I1_017OcUjNTaffPnyyonpxRAF4_14VNTaffPnyyonpxRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo
 .type b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_4taff4I1_017OcUjNTaffPnyyonpxRAF4_14VNTaffPnyyonpxRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_4taff4I1_017OcUjNTaffPnyyonpxRAF4_14VNTaffPnyyonpxRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo:
 nop
@@ -6313,7 +6313,7 @@
 b__MA7naqebvq8uneqjner4taff4I1_021OaUjTaffPbasvthengvbaQ0Ri:
 nop
 .data
-.globl b__MGPA7naqebvq8uneqjner4taff4I1_019OfTaffPbasvthengvbaR0_AF2_18VTaffPbasvthengvbaR
+.weak b__MGPA7naqebvq8uneqjner4taff4I1_019OfTaffPbasvthengvbaR0_AF2_18VTaffPbasvthengvbaR
 .type b__MGPA7naqebvq8uneqjner4taff4I1_019OfTaffPbasvthengvbaR0_AF2_18VTaffPbasvthengvbaR,%object
 b__MGPA7naqebvq8uneqjner4taff4I1_019OfTaffPbasvthengvbaR0_AF2_18VTaffPbasvthengvbaR:
 .space __SIZEOF_POINTER__
@@ -6353,7 +6353,7 @@
 b__MA7naqebvq8uneqjner4taff4I1_020OcUjTaffKgenPnyyonpx21frgUNYVafgehzragngvbaRi:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_4taff4I1_09VNTaffEvyRAF3_12OcUjNTaffEvyRAF3_12OaUjNTaffEvyRRRAF_2fcVG_RREXAF7_VAF0_7VOvaqreRRR
+.weak b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_4taff4I1_09VNTaffEvyRAF3_12OcUjNTaffEvyRAF3_12OaUjNTaffEvyRRRAF_2fcVG_RREXAF7_VAF0_7VOvaqreRRR
 .type b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_4taff4I1_09VNTaffEvyRAF3_12OcUjNTaffEvyRAF3_12OaUjNTaffEvyRRRAF_2fcVG_RREXAF7_VAF0_7VOvaqreRRR,%function
 b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_4taff4I1_09VNTaffEvyRAF3_12OcUjNTaffEvyRAF3_12OaUjNTaffEvyRRRAF_2fcVG_RREXAF7_VAF0_7VOvaqreRRR:
 nop
@@ -6378,7 +6378,7 @@
 b__MA7naqebvq8uneqjner4taff4I1_022VTaffAnivtngvbaZrffntr21abgvslFlfcebcfPunatrqRi:
 nop
 .data
-.globl b__MGPA7naqebvq8uneqjner4taff4I1_031OfTaffAnivtngvbaZrffntrPnyyonpxR0_AF2_30VTaffAnivtngvbaZrffntrPnyyonpxR
+.weak b__MGPA7naqebvq8uneqjner4taff4I1_031OfTaffAnivtngvbaZrffntrPnyyonpxR0_AF2_30VTaffAnivtngvbaZrffntrPnyyonpxR
 .type b__MGPA7naqebvq8uneqjner4taff4I1_031OfTaffAnivtngvbaZrffntrPnyyonpxR0_AF2_30VTaffAnivtngvbaZrffntrPnyyonpxR,%object
 b__MGPA7naqebvq8uneqjner4taff4I1_031OfTaffAnivtngvbaZrffntrPnyyonpxR0_AF2_30VTaffAnivtngvbaZrffntrPnyyonpxR:
 .space __SIZEOF_POINTER__
@@ -6523,7 +6523,7 @@
 b__MA7naqebvq8uneqjner4taff4I1_033OcUjTaffAnivtngvbaZrffntrPnyyonpx21abgvslFlfcebcfPunatrqRi:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_4taff4I1_017VTaffKgenPnyyonpxRAF3_20OcUjTaffKgenPnyyonpxRAF3_20OaUjTaffKgenPnyyonpxRRRAF_2fcVG_RREXAF7_VAF0_7VOvaqreRRR
+.weak b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_4taff4I1_017VTaffKgenPnyyonpxRAF3_20OcUjTaffKgenPnyyonpxRAF3_20OaUjTaffKgenPnyyonpxRRRAF_2fcVG_RREXAF7_VAF0_7VOvaqreRRR
 .type b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_4taff4I1_017VTaffKgenPnyyonpxRAF3_20OcUjTaffKgenPnyyonpxRAF3_20OaUjTaffKgenPnyyonpxRRRAF_2fcVG_RREXAF7_VAF0_7VOvaqreRRR,%function
 b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_4taff4I1_017VTaffKgenPnyyonpxRAF3_20OcUjTaffKgenPnyyonpxRAF3_20OaUjTaffKgenPnyyonpxRRRAF_2fcVG_RREXAF7_VAF0_7VOvaqreRRR:
 nop
@@ -6543,7 +6543,7 @@
 b__MGGA7naqebvq8uneqjner4taff4I1_033OaUjTaffAnivtngvbaZrffntrPnyyonpxR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGPA7naqebvq8uneqjner4taff4I1_018OfTaffKgenPnyyonpxR0_AF2_17VTaffKgenPnyyonpxR
+.weak b__MGPA7naqebvq8uneqjner4taff4I1_018OfTaffKgenPnyyonpxR0_AF2_17VTaffKgenPnyyonpxR
 .type b__MGPA7naqebvq8uneqjner4taff4I1_018OfTaffKgenPnyyonpxR0_AF2_17VTaffKgenPnyyonpxR,%object
 b__MGPA7naqebvq8uneqjner4taff4I1_018OfTaffKgenPnyyonpxR0_AF2_17VTaffKgenPnyyonpxR:
 .space __SIZEOF_POINTER__
@@ -6563,7 +6563,7 @@
 b__MA7naqebvq8uneqjner4taff4I1_08OaUjTaff10baGenafnpgRwEXAF0_6CnepryRCF4_wAFg3__18shapgvbaVSiEF4_RRR:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_018VTaffPbasvthengvbaRiRRAF_2fcVG_RRF8_
+.weak b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_018VTaffPbasvthengvbaRiRRAF_2fcVG_RRF8_
 .type b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_018VTaffPbasvthengvbaRiRRAF_2fcVG_RRF8_,%function
 b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_018VTaffPbasvthengvbaRiRRAF_2fcVG_RRF8_:
 nop
@@ -6693,7 +6693,7 @@
 b__MA7naqebvq8uneqjner4taff4I1_019OaUjTaffZrnfherzrag10baGenafnpgRwEXAF0_6CnepryRCF4_wAFg3__18shapgvbaVSiEF4_RRR:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_4taff4I1_025OcUjTaffAnivtngvbaZrffntrRAF4_22VTaffAnivtngvbaZrffntrRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_4taff4I1_025OcUjTaffAnivtngvbaZrffntrRAF4_22VTaffAnivtngvbaZrffntrRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo
 .type b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_4taff4I1_025OcUjTaffAnivtngvbaZrffntrRAF4_22VTaffAnivtngvbaZrffntrRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_4taff4I1_025OcUjTaffAnivtngvbaZrffntrRAF4_22VTaffAnivtngvbaZrffntrRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo:
 nop
@@ -6883,7 +6883,7 @@
 b__MA7naqebvq8uneqjner4taff4I1_020OcUjNTaffEvyPnyyonpx21_uvqy_erdhrfgErsYbpPoRCAF0_10VVagresnprRCAF0_7qrgnvyf16UvqyVafgehzragbeR:
 nop
 .data
-.globl b__MGPA7naqebvq8uneqjner4taff4I1_06OfTaffR0_AF2_5VTaffR
+.weak b__MGPA7naqebvq8uneqjner4taff4I1_06OfTaffR0_AF2_5VTaffR
 .type b__MGPA7naqebvq8uneqjner4taff4I1_06OfTaffR0_AF2_5VTaffR,%object
 b__MGPA7naqebvq8uneqjner4taff4I1_06OfTaffR0_AF2_5VTaffR:
 .space __SIZEOF_POINTER__
@@ -6958,7 +6958,7 @@
 b__MA7naqebvq8uneqjner4taff4I1_020OcUjNTaffEvyPnyyonpx12trgQrohtVasbRAFg3__18shapgvbaVSiEXAF_4uvqy4onfr4I1_09QrohtVasbRRRR:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I1_013VTaffPnyyonpxRAF_4uvqy4onfr4I1_05VOnfrRAF4_16OcUjTaffPnyyonpxRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I1_013VTaffPnyyonpxRAF_4uvqy4onfr4I1_05VOnfrRAF4_16OcUjTaffPnyyonpxRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo
 .type b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I1_013VTaffPnyyonpxRAF_4uvqy4onfr4I1_05VOnfrRAF4_16OcUjTaffPnyyonpxRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I1_013VTaffPnyyonpxRAF_4uvqy4onfr4I1_05VOnfrRAF4_16OcUjTaffPnyyonpxRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo:
 nop
@@ -6968,12 +6968,12 @@
 b__MA7naqebvq8uneqjner4taff4I1_07OfNTaff13nqqBarjnlGnfxRAFg3__18shapgvbaVSiiRRR:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I1_014VNTaffPnyyonpxRAF_4uvqy4onfr4I1_05VOnfrRAF4_17OcUjNTaffPnyyonpxRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I1_014VNTaffPnyyonpxRAF_4uvqy4onfr4I1_05VOnfrRAF4_17OcUjNTaffPnyyonpxRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo
 .type b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I1_014VNTaffPnyyonpxRAF_4uvqy4onfr4I1_05VOnfrRAF4_17OcUjNTaffPnyyonpxRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I1_014VNTaffPnyyonpxRAF_4uvqy4onfr4I1_05VOnfrRAF4_17OcUjNTaffPnyyonpxRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I1_09VNTaffEvyRAF_4uvqy4onfr4I1_05VOnfrRAF4_12OcUjNTaffEvyRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I1_09VNTaffEvyRAF_4uvqy4onfr4I1_05VOnfrRAF4_12OcUjNTaffEvyRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo
 .type b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I1_09VNTaffEvyRAF_4uvqy4onfr4I1_05VOnfrRAF4_12OcUjNTaffEvyRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I1_09VNTaffEvyRAF_4uvqy4onfr4I1_05VOnfrRAF4_12OcUjNTaffEvyRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo:
 nop
@@ -7063,7 +7063,7 @@
 b__MA7naqebvq8uneqjner4taff4I1_012OcUjNTaffEvy8frgFrgVqRAF2_9VNTaffEvy9FrgVQGlcrREXAF0_11uvqy_fgevatR:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_4taff4I1_022VTaffAnivtngvbaZrffntrRAF3_25OcUjTaffAnivtngvbaZrffntrRAF3_25OaUjTaffAnivtngvbaZrffntrRRRAF_2fcVG_RREXAF7_VAF0_7VOvaqreRRR
+.weak b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_4taff4I1_022VTaffAnivtngvbaZrffntrRAF3_25OcUjTaffAnivtngvbaZrffntrRAF3_25OaUjTaffAnivtngvbaZrffntrRRRAF_2fcVG_RREXAF7_VAF0_7VOvaqreRRR
 .type b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_4taff4I1_022VTaffAnivtngvbaZrffntrRAF3_25OcUjTaffAnivtngvbaZrffntrRAF3_25OaUjTaffAnivtngvbaZrffntrRRRAF_2fcVG_RREXAF7_VAF0_7VOvaqreRRR,%function
 b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_4taff4I1_022VTaffAnivtngvbaZrffntrRAF3_25OcUjTaffAnivtngvbaZrffntrRAF3_25OaUjTaffAnivtngvbaZrffntrRRRAF_2fcVG_RREXAF7_VAF0_7VOvaqreRRR:
 nop
@@ -7078,12 +7078,12 @@
 b__MA7naqebvq8uneqjner4taff4I1_013VTaffPnyyonpx4cvatRi:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_4taff4I1_033OcUjTaffAnivtngvbaZrffntrPnyyonpxRAF4_30VTaffAnivtngvbaZrffntrPnyyonpxRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_4taff4I1_033OcUjTaffAnivtngvbaZrffntrPnyyonpxRAF4_30VTaffAnivtngvbaZrffntrPnyyonpxRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo
 .type b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_4taff4I1_033OcUjTaffAnivtngvbaZrffntrPnyyonpxRAF4_30VTaffAnivtngvbaZrffntrPnyyonpxRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_4taff4I1_033OcUjTaffAnivtngvbaZrffntrPnyyonpxRAF4_30VTaffAnivtngvbaZrffntrPnyyonpxRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo:
 nop
 .data
-.globl b__MGPA7naqebvq8uneqjner4taff4I1_010OfNTaffEvyR0_AF2_9VNTaffEvyR
+.weak b__MGPA7naqebvq8uneqjner4taff4I1_010OfNTaffEvyR0_AF2_9VNTaffEvyR
 .type b__MGPA7naqebvq8uneqjner4taff4I1_010OfNTaffEvyR0_AF2_9VNTaffEvyR,%object
 b__MGPA7naqebvq8uneqjner4taff4I1_010OfNTaffEvyR0_AF2_9VNTaffEvyR:
 .space __SIZEOF_POINTER__
@@ -7103,7 +7103,7 @@
 b__MA7naqebvq8uneqjner4taff4I1_021VTaffTrbsraprPnyyonpx21abgvslFlfcebcfPunatrqRi:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_4taff4I1_030VTaffAnivtngvbaZrffntrPnyyonpxRAF3_33OcUjTaffAnivtngvbaZrffntrPnyyonpxRAF3_33OaUjTaffAnivtngvbaZrffntrPnyyonpxRRRAF_2fcVG_RREXAF7_VAF0_7VOvaqreRRR
+.weak b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_4taff4I1_030VTaffAnivtngvbaZrffntrPnyyonpxRAF3_33OcUjTaffAnivtngvbaZrffntrPnyyonpxRAF3_33OaUjTaffAnivtngvbaZrffntrPnyyonpxRRRAF_2fcVG_RREXAF7_VAF0_7VOvaqreRRR
 .type b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_4taff4I1_030VTaffAnivtngvbaZrffntrPnyyonpxRAF3_33OcUjTaffAnivtngvbaZrffntrPnyyonpxRAF3_33OaUjTaffAnivtngvbaZrffntrPnyyonpxRRRAF_2fcVG_RREXAF7_VAF0_7VOvaqreRRR,%function
 b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_4taff4I1_030VTaffAnivtngvbaZrffntrPnyyonpxRAF3_33OcUjTaffAnivtngvbaZrffntrPnyyonpxRAF3_33OaUjTaffAnivtngvbaZrffntrPnyyonpxRRRAF_2fcVG_RREXAF7_VAF0_7VOvaqreRRR:
 nop
@@ -7163,7 +7163,7 @@
 b__MA7naqebvq8uneqjner4taff4I1_018OcUjTaffTrbsrapvat5qrohtREXAF0_11uvqy_unaqyrREXAF0_8uvqy_irpVAF0_11uvqy_fgevatRRR:
 nop
 .data
-.globl b__MGIA7naqebvq8uneqjner4taff4I1_018OfTaffKgenPnyyonpxR
+.weak b__MGIA7naqebvq8uneqjner4taff4I1_018OfTaffKgenPnyyonpxR
 .type b__MGIA7naqebvq8uneqjner4taff4I1_018OfTaffKgenPnyyonpxR,%object
 b__MGIA7naqebvq8uneqjner4taff4I1_018OfTaffKgenPnyyonpxR:
 .space __SIZEOF_POINTER__
@@ -7273,7 +7273,7 @@
 b__MA7naqebvq8uneqjner4taff4I1_010OfTaffKgen13nqqBarjnlGnfxRAFg3__18shapgvbaVSiiRRR:
 nop
 .data
-.globl b__MGIA7naqebvq8uneqjner4taff4I1_010OfNTaffEvyR
+.weak b__MGIA7naqebvq8uneqjner4taff4I1_010OfNTaffEvyR
 .type b__MGIA7naqebvq8uneqjner4taff4I1_010OfNTaffEvyR,%object
 b__MGIA7naqebvq8uneqjner4taff4I1_010OfNTaffEvyR:
 .space __SIZEOF_POINTER__
@@ -7298,7 +7298,7 @@
 b__MA7naqebvq8uneqjner4taff4I1_06VNTaff12trgQrohtVasbRAFg3__18shapgvbaVSiEXAF_4uvqy4onfr4I1_09QrohtVasbRRRR:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRP2REXFU_
+.weak b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRP2REXFU_
 .type b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRP2REXFU_,%function
 b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRP2REXFU_:
 nop
@@ -7528,7 +7528,7 @@
 b__MA7naqebvq8uneqjner4taff4I1_017VTaffKgenPnyyonpx11yvaxGbQrnguREXAF_2fcVAF0_20uvqy_qrngu_erpvcvragRRRz:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_4taff4I1_09OcUjNTaffRAF4_6VNTaffRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_4taff4I1_09OcUjNTaffRAF4_6VNTaffRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo
 .type b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_4taff4I1_09OcUjNTaffRAF4_6VNTaffRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_4taff4I1_09OcUjNTaffRAF4_6VNTaffRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo:
 nop
@@ -7618,7 +7618,7 @@
 b__MGIA7naqebvq8uneqjner4taff4I1_017VNTaffEvyPnyyonpxR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq2fcVAF_8uneqjner4taff4I1_06VNTaffRRnFRBF5_
+.weak b__MA7naqebvq2fcVAF_8uneqjner4taff4I1_06VNTaffRRnFRBF5_
 .type b__MA7naqebvq2fcVAF_8uneqjner4taff4I1_06VNTaffRRnFRBF5_,%function
 b__MA7naqebvq2fcVAF_8uneqjner4taff4I1_06VNTaffRRnFRBF5_:
 nop
@@ -7633,7 +7633,7 @@
 b__MA7naqebvq8uneqjner4taff4I1_06VNTaff4cvatRi:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_4taff4I1_013OcUjTaffQrohtRAF4_10VTaffQrohtRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_4taff4I1_013OcUjTaffQrohtRAF4_10VTaffQrohtRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo
 .type b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_4taff4I1_013OcUjTaffQrohtRAF4_10VTaffQrohtRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_4taff4I1_013OcUjTaffQrohtRAF4_10VTaffQrohtRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo:
 nop
@@ -7683,12 +7683,12 @@
 b__MGua32_A7naqebvq8uneqjner4taff4I1_024OaUjTaffTrbsraprPnyyonpxQ0Ri:
 nop
 .data
-.globl b__MGIA7naqebvq8uneqjner4taff4I1_015OfNTaffPnyyonpxR
+.weak b__MGIA7naqebvq8uneqjner4taff4I1_015OfNTaffPnyyonpxR
 .type b__MGIA7naqebvq8uneqjner4taff4I1_015OfNTaffPnyyonpxR,%object
 b__MGIA7naqebvq8uneqjner4taff4I1_015OfNTaffPnyyonpxR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_4taff4I1_010VTaffQrohtRAF3_13OcUjTaffQrohtRAF3_13OaUjTaffQrohtRRRAF_2fcVG_RREXAF7_VAF0_7VOvaqreRRR
+.weak b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_4taff4I1_010VTaffQrohtRAF3_13OcUjTaffQrohtRAF3_13OaUjTaffQrohtRRRAF_2fcVG_RREXAF7_VAF0_7VOvaqreRRR
 .type b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_4taff4I1_010VTaffQrohtRAF3_13OcUjTaffQrohtRAF3_13OaUjTaffQrohtRRRAF_2fcVG_RREXAF7_VAF0_7VOvaqreRRR,%function
 b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_4taff4I1_010VTaffQrohtRAF3_13OcUjTaffQrohtRAF3_13OaUjTaffQrohtRRRAF_2fcVG_RREXAF7_VAF0_7VOvaqreRRR:
 nop
@@ -7738,7 +7738,7 @@
 b__MGi0_a24_A7naqebvq8uneqjner4taff4I1_020OaUjTaffKgenPnyyonpxQ1Ri:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_06VNTaffRiRRAF_2fcVG_RRF8_
+.weak b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_06VNTaffRiRRAF_2fcVG_RRF8_
 .type b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_06VNTaffRiRRAF_2fcVG_RRF8_,%function
 b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_06VNTaffRiRRAF_2fcVG_RRF8_:
 nop
@@ -7818,7 +7818,7 @@
 b__MGPA7naqebvq8uneqjner4taff4I1_012OcUjTaffKgenR16_AF0_11OcUjErsOnfrR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__16irpgbeVCiAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_
+.weak b__MAFg3__16irpgbeVCiAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_
 .type b__MAFg3__16irpgbeVCiAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_,%function
 b__MAFg3__16irpgbeVCiAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_:
 nop
@@ -7833,7 +7833,7 @@
 b__MA7naqebvq8uneqjner4taff4I1_010VTaffQroht24ertvfgreSbeAbgvsvpngvbafREXAFg3__112onfvp_fgevatVpAF4_11pune_genvgfVpRRAF4_9nyybpngbeVpRRRREXAF_2fcVAF_4uvqy7znantre4I1_020VFreivprAbgvsvpngvbaRRR:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_4taff4I1_018OcUjTaffAvPnyyonpxRAF4_15VTaffAvPnyyonpxRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_4taff4I1_018OcUjTaffAvPnyyonpxRAF4_15VTaffAvPnyyonpxRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo
 .type b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_4taff4I1_018OcUjTaffAvPnyyonpxRAF4_15VTaffAvPnyyonpxRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_4taff4I1_018OcUjTaffAvPnyyonpxRAF4_15VTaffAvPnyyonpxRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo:
 nop
@@ -7893,7 +7893,7 @@
 b__MA7naqebvq8uneqjner4taff4I1_08OcUjTaff10vawrpgGvzrRyyv:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I1_05VTaffRAF_4uvqy4onfr4I1_05VOnfrRAF4_8OcUjTaffRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I1_05VTaffRAF_4uvqy4onfr4I1_05VOnfrRAF4_8OcUjTaffRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo
 .type b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I1_05VTaffRAF_4uvqy4onfr4I1_05VOnfrRAF4_8OcUjTaffRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I1_05VTaffRAF_4uvqy4onfr4I1_05VOnfrRAF4_8OcUjTaffRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo:
 nop
@@ -8033,7 +8033,7 @@
 b__MA7naqebvq8uneqjner4taff4I1_012OcUjNTaffEvy17_uvqy_frgPnyyonpxRCAF0_10VVagresnprRCAF0_7qrgnvyf16UvqyVafgehzragbeREXAF_2fcVAF2_17VNTaffEvyPnyyonpxRRR:
 nop
 .data
-.globl b__MGIA7naqebvq8uneqjner4taff4I1_022OfTaffOngpuvatPnyyonpxR
+.weak b__MGIA7naqebvq8uneqjner4taff4I1_022OfTaffOngpuvatPnyyonpxR
 .type b__MGIA7naqebvq8uneqjner4taff4I1_022OfTaffOngpuvatPnyyonpxR,%object
 b__MGIA7naqebvq8uneqjner4taff4I1_022OfTaffOngpuvatPnyyonpxR:
 .space __SIZEOF_POINTER__
@@ -8053,7 +8053,7 @@
 b__MGGA7naqebvq8uneqjner4taff4I1_018OaUjTaffTrbsrapvatR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIA7naqebvq8uneqjner4taff4I1_016OfTaffTrbsrapvatR
+.weak b__MGIA7naqebvq8uneqjner4taff4I1_016OfTaffTrbsrapvatR
 .type b__MGIA7naqebvq8uneqjner4taff4I1_016OfTaffTrbsrapvatR,%object
 b__MGIA7naqebvq8uneqjner4taff4I1_016OfTaffTrbsrapvatR:
 .space __SIZEOF_POINTER__
diff --git a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_040.S b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_040.S
index 5c36068..236c876 100644
--- a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_040.S
+++ b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_040.S
@@ -58,7 +58,7 @@
 b__MA7naqebvq8uneqjner4taff4I1_18OcUjTaff16trgRkgrafvbaKgenRi:
 nop
 .data
-.globl b__MGIA7naqebvq8uneqjner4taff4I1_16OfTaffR
+.weak b__MGIA7naqebvq8uneqjner4taff4I1_16OfTaffR
 .type b__MGIA7naqebvq8uneqjner4taff4I1_16OfTaffR,%object
 b__MGIA7naqebvq8uneqjner4taff4I1_16OfTaffR:
 .space __SIZEOF_POINTER__
@@ -83,7 +83,7 @@
 b__MGPA7naqebvq8uneqjner4taff4I1_18OcUjTaffR0_AF_4uvqy4onfr4I1_05VOnfrR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIA7naqebvq8uneqjner4taff4I1_119OfTaffPbasvthengvbaR
+.weak b__MGIA7naqebvq8uneqjner4taff4I1_119OfTaffPbasvthengvbaR
 .type b__MGIA7naqebvq8uneqjner4taff4I1_119OfTaffPbasvthengvbaR,%object
 b__MGIA7naqebvq8uneqjner4taff4I1_119OfTaffPbasvthengvbaR:
 .space __SIZEOF_POINTER__
@@ -93,7 +93,7 @@
 b__MA7naqebvq8uneqjner4taff4I1_124VTaffZrnfherzragPnyyonpx4cvatRi:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_113VTaffPnyyonpxRiRRAF_2fcVG_RRF8_
+.weak b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_113VTaffPnyyonpxRiRRAF_2fcVG_RRF8_
 .type b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_113VTaffPnyyonpxRiRRAF_2fcVG_RRF8_,%function
 b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_113VTaffPnyyonpxRiRRAF_2fcVG_RRF8_:
 nop
@@ -103,12 +103,12 @@
 b__MA7naqebvq8uneqjner4taff4I1_117OfTaffZrnfherzrag13nqqBarjnlGnfxRAFg3__18shapgvbaVSiiRRR:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_4taff4I1_18OcUjTaffRAF4_5VTaffRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_4taff4I1_18OcUjTaffRAF4_5VTaffRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo
 .type b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_4taff4I1_18OcUjTaffRAF4_5VTaffRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_4taff4I1_18OcUjTaffRAF4_5VTaffRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRR:
 nop
@@ -133,7 +133,7 @@
 b__MA7naqebvq8uneqjner4taff4I1_127OcUjTaffZrnfherzragPnyyonpx11yvaxGbQrnguREXAF_2fcVAF0_20uvqy_qrngu_erpvcvragRRRz:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_:
 nop
@@ -173,7 +173,7 @@
 b__MA7naqebvq8uneqjner4taff4I1_18OcUjTaff19frgCbfvgvbaZbqr_1_1RAF1_4I1_05VTaff16TaffCbfvgvbaZbqrRAF5_22TaffCbfvgvbaErpheeraprRwwwo:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_018VTaffPbasvthengvbaRiRRAF_2fcVG_RRF8_
+.weak b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_018VTaffPbasvthengvbaRiRRAF_2fcVG_RRF8_
 .type b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_018VTaffPbasvthengvbaRiRRAF_2fcVG_RRF8_,%function
 b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_018VTaffPbasvthengvbaRiRRAF_2fcVG_RRF8_:
 nop
@@ -193,7 +193,7 @@
 b__MA7naqebvq8uneqjner4taff4I1_118VTaffPbasvthengvba10qrfpevcgbeR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFR_RRECAF_15__gerr_raq_abqrVFE_RREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFR_RRECAF_15__gerr_raq_abqrVFE_RREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFR_RRECAF_15__gerr_raq_abqrVFE_RREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFR_RRECAF_15__gerr_raq_abqrVFE_RREXG_:
 nop
@@ -288,7 +288,7 @@
 b__MGGA7naqebvq8uneqjner4taff4I1_113VTaffPnyyonpxR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRP2REXFU_
+.weak b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRP2REXFU_
 .type b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRP2REXFU_,%function
 b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRP2REXFU_:
 nop
@@ -298,7 +298,7 @@
 b__MA7naqebvq8uneqjner4taff4I1_119OaUjTaffZrnfherzragQ0Ri:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_4taff4I1_127OcUjTaffZrnfherzragPnyyonpxRAF4_24VTaffZrnfherzragPnyyonpxRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_4taff4I1_127OcUjTaffZrnfherzragPnyyonpxRAF4_24VTaffZrnfherzragPnyyonpxRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo
 .type b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_4taff4I1_127OcUjTaffZrnfherzragPnyyonpxRAF4_24VTaffZrnfherzragPnyyonpxRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_4taff4I1_127OcUjTaffZrnfherzragPnyyonpxRAF4_24VTaffZrnfherzragPnyyonpxRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo:
 nop
@@ -318,7 +318,7 @@
 b__MA7naqebvq8uneqjner4taff4I1_18OcUjTaff33trgRkgrafvbaTaffAnivtngvbaZrffntrRi:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_09VNTaffEvyRiRRAF_2fcVG_RRF8_
+.weak b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_09VNTaffEvyRiRRAF_2fcVG_RRF8_
 .type b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_09VNTaffEvyRiRRAF_2fcVG_RRF8_,%function
 b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_09VNTaffEvyRiRRAF_2fcVG_RRF8_:
 nop
@@ -328,7 +328,7 @@
 b__MGi0_a24_A7naqebvq8uneqjner4taff4I1_18OaUjTaffQ0Ri:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_118VTaffPbasvthengvbaRiRRAF_2fcVG_RRF8_
+.weak b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_118VTaffPbasvthengvbaRiRRAF_2fcVG_RRF8_
 .type b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_118VTaffPbasvthengvbaRiRRAF_2fcVG_RRF8_,%function
 b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_118VTaffPbasvthengvbaRiRRAF_2fcVG_RRF8_:
 nop
@@ -448,7 +448,7 @@
 b__MA7naqebvq8uneqjner4taff4I1_18OcUjTaff10vawrpgGvzrRyyv:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I1_116VTaffZrnfherzragRAF3_4I1_016VTaffZrnfherzragRAF4_19OcUjTaffZrnfherzragRRRAF0_6ErgheaVAF_2fcVG_RRRRAFN_VG0_RRCXpo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I1_116VTaffZrnfherzragRAF3_4I1_016VTaffZrnfherzragRAF4_19OcUjTaffZrnfherzragRRRAF0_6ErgheaVAF_2fcVG_RRRRAFN_VG0_RRCXpo
 .type b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I1_116VTaffZrnfherzragRAF3_4I1_016VTaffZrnfherzragRAF4_19OcUjTaffZrnfherzragRRRAF0_6ErgheaVAF_2fcVG_RRRRAFN_VG0_RRCXpo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I1_116VTaffZrnfherzragRAF3_4I1_016VTaffZrnfherzragRAF4_19OcUjTaffZrnfherzragRRRAF0_6ErgheaVAF_2fcVG_RRRRAFN_VG0_RRCXpo:
 nop
@@ -478,7 +478,7 @@
 b__MGGA7naqebvq8uneqjner4taff4I1_18OaUjTaffR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_4taff4I1_116OcUjTaffPnyyonpxRAF4_13VTaffPnyyonpxRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_4taff4I1_116OcUjTaffPnyyonpxRAF4_13VTaffPnyyonpxRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo
 .type b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_4taff4I1_116OcUjTaffPnyyonpxRAF4_13VTaffPnyyonpxRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_4taff4I1_116OcUjTaffPnyyonpxRAF4_13VTaffPnyyonpxRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo:
 nop
@@ -493,7 +493,7 @@
 b__MA7naqebvq8uneqjner4taff4I1_124VTaffZrnfherzragPnyyonpx12trgQrohtVasbRAFg3__18shapgvbaVSiEXAF_4uvqy4onfr4I1_09QrohtVasbRRRR:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_013VTaffOngpuvatRiRRAF_2fcVG_RRF8_
+.weak b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_013VTaffOngpuvatRiRRAF_2fcVG_RRF8_
 .type b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_013VTaffOngpuvatRiRRAF_2fcVG_RRF8_,%function
 b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_013VTaffOngpuvatRiRRAF_2fcVG_RRF8_:
 nop
@@ -518,7 +518,7 @@
 b__MGIA7naqebvq8uneqjner4taff4I1_18OaUjTaffR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_4taff4I1_113VTaffPnyyonpxRAF3_16OcUjTaffPnyyonpxRAF3_16OaUjTaffPnyyonpxRRRAF_2fcVG_RREXAF7_VAF0_7VOvaqreRRR
+.weak b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_4taff4I1_113VTaffPnyyonpxRAF3_16OcUjTaffPnyyonpxRAF3_16OaUjTaffPnyyonpxRRRAF_2fcVG_RREXAF7_VAF0_7VOvaqreRRR
 .type b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_4taff4I1_113VTaffPnyyonpxRAF3_16OcUjTaffPnyyonpxRAF3_16OaUjTaffPnyyonpxRRRAF_2fcVG_RREXAF7_VAF0_7VOvaqreRRR,%function
 b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_4taff4I1_113VTaffPnyyonpxRAF3_16OcUjTaffPnyyonpxRAF3_16OaUjTaffPnyyonpxRRRAF_2fcVG_RREXAF7_VAF0_7VOvaqreRRR:
 nop
@@ -528,7 +528,7 @@
 b__MA7naqebvq8uneqjner4taff4I1_18OcUjTaff19vagresnprQrfpevcgbeRAFg3__18shapgvbaVSiEXAF0_11uvqy_fgevatRRRR:
 nop
 .data
-.globl b__MGPA7naqebvq8uneqjner4taff4I1_114OfTaffPnyyonpxR0_AF2_13VTaffPnyyonpxR
+.weak b__MGPA7naqebvq8uneqjner4taff4I1_114OfTaffPnyyonpxR0_AF2_13VTaffPnyyonpxR
 .type b__MGPA7naqebvq8uneqjner4taff4I1_114OfTaffPnyyonpxR0_AF2_13VTaffPnyyonpxR,%object
 b__MGPA7naqebvq8uneqjner4taff4I1_114OfTaffPnyyonpxR0_AF2_13VTaffPnyyonpxR:
 .space __SIZEOF_POINTER__
@@ -553,12 +553,12 @@
 b__MA7naqebvq8uneqjner4taff4I1_116VTaffZrnfherzrag17ertvfgreNfFreivprREXAFg3__112onfvp_fgevatVpAF4_11pune_genvgfVpRRAF4_9nyybpngbeVpRRRR:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I1_124VTaffZrnfherzragPnyyonpxRAF3_4I1_024VTaffZrnfherzragPnyyonpxRAF4_27OcUjTaffZrnfherzragPnyyonpxRRRAF0_6ErgheaVAF_2fcVG_RRRRAFN_VG0_RRCXpo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I1_124VTaffZrnfherzragPnyyonpxRAF3_4I1_024VTaffZrnfherzragPnyyonpxRAF4_27OcUjTaffZrnfherzragPnyyonpxRRRAF0_6ErgheaVAF_2fcVG_RRRRAFN_VG0_RRCXpo
 .type b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I1_124VTaffZrnfherzragPnyyonpxRAF3_4I1_024VTaffZrnfherzragPnyyonpxRAF4_27OcUjTaffZrnfherzragPnyyonpxRRRAF0_6ErgheaVAF_2fcVG_RRRRAFN_VG0_RRCXpo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I1_124VTaffZrnfherzragPnyyonpxRAF3_4I1_024VTaffZrnfherzragPnyyonpxRAF4_27OcUjTaffZrnfherzragPnyyonpxRRRAF0_6ErgheaVAF_2fcVG_RRRRAFN_VG0_RRCXpo:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I1_15VTaffRAF3_4I1_05VTaffRAF4_8OcUjTaffRRRAF0_6ErgheaVAF_2fcVG_RRRRAFN_VG0_RRCXpo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I1_15VTaffRAF3_4I1_05VTaffRAF4_8OcUjTaffRRRAF0_6ErgheaVAF_2fcVG_RRRRAFN_VG0_RRCXpo
 .type b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I1_15VTaffRAF3_4I1_05VTaffRAF4_8OcUjTaffRRRAF0_6ErgheaVAF_2fcVG_RRRRAFN_VG0_RRCXpo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I1_15VTaffRAF3_4I1_05VTaffRAF4_8OcUjTaffRRRAF0_6ErgheaVAF_2fcVG_RRRRAFN_VG0_RRCXpo:
 nop
@@ -603,7 +603,7 @@
 b__MA7naqebvq8uneqjner4taff4I1_18OcUjTaff15frgCbfvgvbaZbqrRAF1_4I1_05VTaff16TaffCbfvgvbaZbqrRAF5_22TaffCbfvgvbaErpheeraprRwww:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_8uneqjner27uvqy_ovaqre_qrngu_erpvcvragRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_
+.weak b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_8uneqjner27uvqy_ovaqre_qrngu_erpvcvragRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_
 .type b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_8uneqjner27uvqy_ovaqre_qrngu_erpvcvragRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_,%function
 b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_8uneqjner27uvqy_ovaqre_qrngu_erpvcvragRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_:
 nop
@@ -613,7 +613,7 @@
 b__MA7naqebvq8uneqjner4taff4I1_116VTaffZrnfherzrag21frgUNYVafgehzragngvbaRi:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_124VTaffZrnfherzragPnyyonpxRiRRAF_2fcVG_RRF8_
+.weak b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_124VTaffZrnfherzragPnyyonpxRiRRAF_2fcVG_RRF8_
 .type b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_124VTaffZrnfherzragPnyyonpxRiRRAF_2fcVG_RRF8_,%function
 b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_124VTaffZrnfherzragPnyyonpxRiRRAF_2fcVG_RRF8_:
 nop
@@ -633,7 +633,7 @@
 b__MGi0_a40_A7naqebvq8uneqjner4taff4I1_127OcUjTaffZrnfherzragPnyyonpx15baYnfgFgebatErsRCXi:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_4taff4I1_121OcUjTaffPbasvthengvbaRAF4_18VTaffPbasvthengvbaRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_4taff4I1_121OcUjTaffPbasvthengvbaRAF4_18VTaffPbasvthengvbaRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo
 .type b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_4taff4I1_121OcUjTaffPbasvthengvbaRAF4_18VTaffPbasvthengvbaRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_4taff4I1_121OcUjTaffPbasvthengvbaRAF4_18VTaffPbasvthengvbaRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo:
 nop
@@ -658,12 +658,12 @@
 b__MA7naqebvq8uneqjner4taff4I1_15VTaff4cvatRi:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_010VTaffQrohtRiRRAF_2fcVG_RRF8_
+.weak b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_010VTaffQrohtRiRRAF_2fcVG_RRF8_
 .type b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_010VTaffQrohtRiRRAF_2fcVG_RRF8_,%function
 b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_010VTaffQrohtRiRRAF_2fcVG_RRF8_:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_022VTaffAnivtngvbaZrffntrRiRRAF_2fcVG_RRF8_
+.weak b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_022VTaffAnivtngvbaZrffntrRiRRAF_2fcVG_RRF8_
 .type b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_022VTaffAnivtngvbaZrffntrRiRRAF_2fcVG_RRF8_,%function
 b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_022VTaffAnivtngvbaZrffntrRiRRAF_2fcVG_RRF8_:
 nop
@@ -678,7 +678,7 @@
 b__MA7naqebvq8uneqjner4taff4I1_124VTaffZrnfherzragPnyyonpx10trgFreivprREXAFg3__112onfvp_fgevatVpAF4_11pune_genvgfVpRRAF4_9nyybpngbeVpRRRRo:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_09VTaffKgenRiRRAF_2fcVG_RRF8_
+.weak b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_09VTaffKgenRiRRAF_2fcVG_RRF8_
 .type b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_09VTaffKgenRiRRAF_2fcVG_RRF8_,%function
 b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_09VTaffKgenRiRRAF_2fcVG_RRF8_:
 nop
@@ -743,7 +743,7 @@
 b__MGPA7naqebvq8uneqjner4taff4I1_124VTaffZrnfherzragPnyyonpxR0_AF1_4I1_024VTaffZrnfherzragPnyyonpxR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGPA7naqebvq8uneqjner4taff4I1_125OfTaffZrnfherzragPnyyonpxR0_AF2_24VTaffZrnfherzragPnyyonpxR
+.weak b__MGPA7naqebvq8uneqjner4taff4I1_125OfTaffZrnfherzragPnyyonpxR0_AF2_24VTaffZrnfherzragPnyyonpxR
 .type b__MGPA7naqebvq8uneqjner4taff4I1_125OfTaffZrnfherzragPnyyonpxR0_AF2_24VTaffZrnfherzragPnyyonpxR,%object
 b__MGPA7naqebvq8uneqjner4taff4I1_125OfTaffZrnfherzragPnyyonpxR0_AF2_24VTaffZrnfherzragPnyyonpxR:
 .space __SIZEOF_POINTER__
@@ -763,7 +763,7 @@
 b__MA7naqebvq8uneqjner4taff4I1_118VTaffPbasvthengvba11yvaxGbQrnguREXAF_2fcVAF0_20uvqy_qrngu_erpvcvragRRRz:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I1_113VTaffPnyyonpxRAF_4uvqy4onfr4I1_05VOnfrRAF4_16OcUjTaffPnyyonpxRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I1_113VTaffPnyyonpxRAF_4uvqy4onfr4I1_05VOnfrRAF4_16OcUjTaffPnyyonpxRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo
 .type b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I1_113VTaffPnyyonpxRAF_4uvqy4onfr4I1_05VOnfrRAF4_16OcUjTaffPnyyonpxRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I1_113VTaffPnyyonpxRAF_4uvqy4onfr4I1_05VOnfrRAF4_16OcUjTaffPnyyonpxRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo:
 nop
@@ -868,7 +868,7 @@
 b__MA7naqebvq8uneqjner4taff4I1_127OcUjTaffZrnfherzragPnyyonpx4cvatRi:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_06VNTaffRiRRAF_2fcVG_RRF8_
+.weak b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_06VNTaffRiRRAF_2fcVG_RRF8_
 .type b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_06VNTaffRiRRAF_2fcVG_RRF8_,%function
 b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_06VNTaffRiRRAF_2fcVG_RRF8_:
 nop
@@ -883,7 +883,7 @@
 b__MA7naqebvq8uneqjner4taff4I1_124VTaffZrnfherzragPnyyonpx10qrfpevcgbeR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I1_116VTaffZrnfherzragRAF_4uvqy4onfr4I1_05VOnfrRAF4_19OcUjTaffZrnfherzragRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I1_116VTaffZrnfherzragRAF_4uvqy4onfr4I1_05VOnfrRAF4_19OcUjTaffZrnfherzragRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo
 .type b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I1_116VTaffZrnfherzragRAF_4uvqy4onfr4I1_05VOnfrRAF4_19OcUjTaffZrnfherzragRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I1_116VTaffZrnfherzragRAF_4uvqy4onfr4I1_05VOnfrRAF4_19OcUjTaffZrnfherzragRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo:
 nop
@@ -1048,7 +1048,7 @@
 b__MA7naqebvq8uneqjner4taff4I1_118VTaffPbasvthengvba8pnfgSebzREXAF_2fcVAF_4uvqy4onfr4I1_05VOnfrRRRo:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I1_118VTaffPbasvthengvbaRAF_4uvqy4onfr4I1_05VOnfrRAF4_21OcUjTaffPbasvthengvbaRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I1_118VTaffPbasvthengvbaRAF_4uvqy4onfr4I1_05VOnfrRAF4_21OcUjTaffPbasvthengvbaRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo
 .type b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I1_118VTaffPbasvthengvbaRAF_4uvqy4onfr4I1_05VOnfrRAF4_21OcUjTaffPbasvthengvbaRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I1_118VTaffPbasvthengvbaRAF_4uvqy4onfr4I1_05VOnfrRAF4_21OcUjTaffPbasvthengvbaRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo:
 nop
@@ -1113,7 +1113,7 @@
 b__MGIA7naqebvq8uneqjner4taff4I1_127OcUjTaffZrnfherzragPnyyonpxR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_:
 nop
@@ -1123,7 +1123,7 @@
 b__MGua16_A7naqebvq8uneqjner4taff4I1_18OcUjTaff15baYnfgFgebatErsRCXi:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I1_118VTaffPbasvthengvbaRAF3_4I1_018VTaffPbasvthengvbaRAF4_21OcUjTaffPbasvthengvbaRRRAF0_6ErgheaVAF_2fcVG_RRRRAFN_VG0_RRCXpo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I1_118VTaffPbasvthengvbaRAF3_4I1_018VTaffPbasvthengvbaRAF4_21OcUjTaffPbasvthengvbaRRRAF0_6ErgheaVAF_2fcVG_RRRRAFN_VG0_RRCXpo
 .type b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I1_118VTaffPbasvthengvbaRAF3_4I1_018VTaffPbasvthengvbaRAF4_21OcUjTaffPbasvthengvbaRRRAF0_6ErgheaVAF_2fcVG_RRRRAFN_VG0_RRCXpo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I1_118VTaffPbasvthengvbaRAF3_4I1_018VTaffPbasvthengvbaRAF4_21OcUjTaffPbasvthengvbaRRRAF0_6ErgheaVAF_2fcVG_RRRRAFN_VG0_RRCXpo:
 nop
@@ -1133,7 +1133,7 @@
 b__MA7naqebvq8uneqjner4taff4I1_116VTaffZrnfherzrag5qrohtREXAF0_11uvqy_unaqyrREXAF0_8uvqy_irpVAF0_11uvqy_fgevatRRR:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_4taff4I1_119OcUjTaffZrnfherzragRAF4_16VTaffZrnfherzragRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_4taff4I1_119OcUjTaffZrnfherzragRAF4_16VTaffZrnfherzragRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo
 .type b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_4taff4I1_119OcUjTaffZrnfherzragRAF4_16VTaffZrnfherzragRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_4taff4I1_119OcUjTaffZrnfherzragRAF4_16VTaffZrnfherzragRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo:
 nop
@@ -1163,7 +1163,7 @@
 b__MA7naqebvq8uneqjner4taff4I1_122ernqRzorqqrqSebzCnepryREXAF2_24VTaffZrnfherzragPnyyonpx8TaffQngnREXAF0_6CnepryRzz:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_4taff4I1_116VTaffZrnfherzragRAF3_19OcUjTaffZrnfherzragRAF3_19OaUjTaffZrnfherzragRRRAF_2fcVG_RREXAF7_VAF0_7VOvaqreRRR
+.weak b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_4taff4I1_116VTaffZrnfherzragRAF3_19OcUjTaffZrnfherzragRAF3_19OaUjTaffZrnfherzragRRRAF_2fcVG_RREXAF7_VAF0_7VOvaqreRRR
 .type b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_4taff4I1_116VTaffZrnfherzragRAF3_19OcUjTaffZrnfherzragRAF3_19OaUjTaffZrnfherzragRRRAF_2fcVG_RREXAF7_VAF0_7VOvaqreRRR,%function
 b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_4taff4I1_116VTaffZrnfherzragRAF3_19OcUjTaffZrnfherzragRAF3_19OaUjTaffZrnfherzragRRRAF_2fcVG_RREXAF7_VAF0_7VOvaqreRRR:
 nop
@@ -1273,7 +1273,7 @@
 b__MGGA7naqebvq8uneqjner4taff4I1_116VTaffZrnfherzragR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_4taff4I1_118VTaffPbasvthengvbaRAF3_21OcUjTaffPbasvthengvbaRAF3_21OaUjTaffPbasvthengvbaRRRAF_2fcVG_RREXAF7_VAF0_7VOvaqreRRR
+.weak b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_4taff4I1_118VTaffPbasvthengvbaRAF3_21OcUjTaffPbasvthengvbaRAF3_21OaUjTaffPbasvthengvbaRRRAF_2fcVG_RREXAF7_VAF0_7VOvaqreRRR
 .type b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_4taff4I1_118VTaffPbasvthengvbaRAF3_21OcUjTaffPbasvthengvbaRAF3_21OaUjTaffPbasvthengvbaRRRAF_2fcVG_RREXAF7_VAF0_7VOvaqreRRR,%function
 b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_4taff4I1_118VTaffPbasvthengvbaRAF3_21OcUjTaffPbasvthengvbaRAF3_21OaUjTaffPbasvthengvbaRRRAF_2fcVG_RREXAF7_VAF0_7VOvaqreRRR:
 nop
@@ -1288,17 +1288,17 @@
 b__MA7naqebvq8uneqjner4taff4I1_18OcUjTaff12trgUnfuPunvaRAFg3__18shapgvbaVSiEXAF0_8uvqy_irpVAF0_10uvqy_neenlVuYz32RWRRRRRRRR:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_116VTaffZrnfherzragRiRRAF_2fcVG_RRF8_
+.weak b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_116VTaffZrnfherzragRiRRAF_2fcVG_RRF8_
 .type b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_116VTaffZrnfherzragRiRRAF_2fcVG_RRF8_,%function
 b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_116VTaffZrnfherzragRiRRAF_2fcVG_RRF8_:
 nop
 .data
-.globl b__MGPA7naqebvq8uneqjner4taff4I1_16OfTaffR0_AF2_5VTaffR
+.weak b__MGPA7naqebvq8uneqjner4taff4I1_16OfTaffR0_AF2_5VTaffR
 .type b__MGPA7naqebvq8uneqjner4taff4I1_16OfTaffR0_AF2_5VTaffR,%object
 b__MGPA7naqebvq8uneqjner4taff4I1_16OfTaffR0_AF2_5VTaffR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I1_124VTaffZrnfherzragPnyyonpxRAF_4uvqy4onfr4I1_05VOnfrRAF4_27OcUjTaffZrnfherzragPnyyonpxRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I1_124VTaffZrnfherzragPnyyonpxRAF_4uvqy4onfr4I1_05VOnfrRAF4_27OcUjTaffZrnfherzragPnyyonpxRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo
 .type b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I1_124VTaffZrnfherzragPnyyonpxRAF_4uvqy4onfr4I1_05VOnfrRAF4_27OcUjTaffZrnfherzragPnyyonpxRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I1_124VTaffZrnfherzragPnyyonpxRAF_4uvqy4onfr4I1_05VOnfrRAF4_27OcUjTaffZrnfherzragPnyyonpxRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo:
 nop
@@ -1323,7 +1323,7 @@
 b__MA7naqebvq8uneqjner4taff4I1_18OcUjTaff14vagresnprPunvaRAFg3__18shapgvbaVSiEXAF0_8uvqy_irpVAF0_11uvqy_fgevatRRRRRR:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_07VTaffAvRiRRAF_2fcVG_RRF8_
+.weak b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_07VTaffAvRiRRAF_2fcVG_RRF8_
 .type b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_07VTaffAvRiRRAF_2fcVG_RRF8_,%function
 b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_07VTaffAvRiRRAF_2fcVG_RRF8_:
 nop
@@ -1368,12 +1368,12 @@
 b__MA7naqebvq8uneqjner4taff4I1_127OcUjTaffZrnfherzragPnyyonpx21abgvslFlfcebcfPunatrqRi:
 nop
 .text
-.globl b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
+.weak b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
 .type b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_,%function
 b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFT_RRECAF_15__gerr_raq_abqrVFG_RREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFT_RRECAF_15__gerr_raq_abqrVFG_RREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFT_RRECAF_15__gerr_raq_abqrVFG_RREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFT_RRECAF_15__gerr_raq_abqrVFG_RREXG_:
 nop
@@ -1428,7 +1428,7 @@
 b__MA7naqebvq8uneqjner4taff4I1_119OaUjTaffZrnfherzrag21_uvqy_frgPnyyonpx_1_1RCAF_4uvqy4onfr4I1_08OaUjOnfrREXAF0_6CnepryRCF9_AFg3__18shapgvbaVSiEF9_RRR:
 nop
 .data
-.globl b__MGPA7naqebvq8uneqjner4taff4I1_117OfTaffZrnfherzragR0_AF2_16VTaffZrnfherzragR
+.weak b__MGPA7naqebvq8uneqjner4taff4I1_117OfTaffZrnfherzragR0_AF2_16VTaffZrnfherzragR
 .type b__MGPA7naqebvq8uneqjner4taff4I1_117OfTaffZrnfherzragR0_AF2_16VTaffZrnfherzragR,%object
 b__MGPA7naqebvq8uneqjner4taff4I1_117OfTaffZrnfherzragR0_AF2_16VTaffZrnfherzragR:
 .space __SIZEOF_POINTER__
@@ -1488,12 +1488,12 @@
 b__MGPA7naqebvq8uneqjner4taff4I1_127OaUjTaffZrnfherzragPnyyonpxR0_AF0_7VOvaqreR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIA7naqebvq8uneqjner4taff4I1_125OfTaffZrnfherzragPnyyonpxR
+.weak b__MGIA7naqebvq8uneqjner4taff4I1_125OfTaffZrnfherzragPnyyonpxR
 .type b__MGIA7naqebvq8uneqjner4taff4I1_125OfTaffZrnfherzragPnyyonpxR,%object
 b__MGIA7naqebvq8uneqjner4taff4I1_125OfTaffZrnfherzragPnyyonpxR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq2fcVAF_8uneqjner4taff4I1_116VTaffZrnfherzragRRnFRBF5_
+.weak b__MA7naqebvq2fcVAF_8uneqjner4taff4I1_116VTaffZrnfherzragRRnFRBF5_
 .type b__MA7naqebvq2fcVAF_8uneqjner4taff4I1_116VTaffZrnfherzragRRnFRBF5_,%function
 b__MA7naqebvq2fcVAF_8uneqjner4taff4I1_116VTaffZrnfherzragRRnFRBF5_:
 nop
@@ -1548,7 +1548,7 @@
 b__MGPA7naqebvq8uneqjner4taff4I1_18OcUjTaffR8_AF0_10VVagresnprR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I1_113VTaffPnyyonpxRAF3_4I1_013VTaffPnyyonpxRAF4_16OcUjTaffPnyyonpxRRRAF0_6ErgheaVAF_2fcVG_RRRRAFN_VG0_RRCXpo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I1_113VTaffPnyyonpxRAF3_4I1_013VTaffPnyyonpxRAF4_16OcUjTaffPnyyonpxRRRAF0_6ErgheaVAF_2fcVG_RRRRAFN_VG0_RRCXpo
 .type b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I1_113VTaffPnyyonpxRAF3_4I1_013VTaffPnyyonpxRAF4_16OcUjTaffPnyyonpxRRRAF0_6ErgheaVAF_2fcVG_RRRRAFN_VG0_RRCXpo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I1_113VTaffPnyyonpxRAF3_4I1_013VTaffPnyyonpxRAF4_16OcUjTaffPnyyonpxRRRAF0_6ErgheaVAF_2fcVG_RRRRAFN_VG0_RRCXpo:
 nop
@@ -1588,7 +1588,7 @@
 b__MA7naqebvq8uneqjner4taff4I1_124VTaffZrnfherzragPnyyonpx12trgUnfuPunvaRAFg3__18shapgvbaVSiEXAF0_8uvqy_irpVAF0_10uvqy_neenlVuYz32RWRRRRRRRR:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_015VTaffTrbsrapvatRiRRAF_2fcVG_RRF8_
+.weak b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_015VTaffTrbsrapvatRiRRAF_2fcVG_RRF8_
 .type b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_015VTaffTrbsrapvatRiRRAF_2fcVG_RRF8_,%function
 b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_015VTaffTrbsrapvatRiRRAF_2fcVG_RRF8_:
 nop
@@ -1638,7 +1638,7 @@
 b__MA7naqebvq8uneqjner4taff4I1_116VTaffZrnfherzrag10qrfpevcgbeR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__16irpgbeVCiAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_
+.weak b__MAFg3__16irpgbeVCiAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_
 .type b__MAFg3__16irpgbeVCiAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_,%function
 b__MAFg3__16irpgbeVCiAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_:
 nop
@@ -1868,7 +1868,7 @@
 b__MGPA7naqebvq8uneqjner4taff4I1_119OcUjTaffZrnfherzragR8_AF0_10VVagresnprR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIA7naqebvq8uneqjner4taff4I1_117OfTaffZrnfherzragR
+.weak b__MGIA7naqebvq8uneqjner4taff4I1_117OfTaffZrnfherzragR
 .type b__MGIA7naqebvq8uneqjner4taff4I1_117OfTaffZrnfherzragR,%object
 b__MGIA7naqebvq8uneqjner4taff4I1_117OfTaffZrnfherzragR:
 .space __SIZEOF_POINTER__
@@ -1943,7 +1943,7 @@
 b__MA7naqebvq8uneqjner4taff4I1_15VTaff5qrohtREXAF0_11uvqy_unaqyrREXAF0_8uvqy_irpVAF0_11uvqy_fgevatRRR:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_013VTaffPnyyonpxRiRRAF_2fcVG_RRF8_
+.weak b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_013VTaffPnyyonpxRiRRAF_2fcVG_RRF8_
 .type b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_013VTaffPnyyonpxRiRRAF_2fcVG_RRF8_,%function
 b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_013VTaffPnyyonpxRiRRAF_2fcVG_RRF8_:
 nop
@@ -1973,7 +1973,7 @@
 b__MGPA7naqebvq8uneqjner4taff4I1_113VTaffPnyyonpxR0_AF1_4I1_013VTaffPnyyonpxR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIA7naqebvq8uneqjner4taff4I1_114OfTaffPnyyonpxR
+.weak b__MGIA7naqebvq8uneqjner4taff4I1_114OfTaffPnyyonpxR
 .type b__MGIA7naqebvq8uneqjner4taff4I1_114OfTaffPnyyonpxR,%object
 b__MGIA7naqebvq8uneqjner4taff4I1_114OfTaffPnyyonpxR:
 .space __SIZEOF_POINTER__
@@ -1983,7 +1983,7 @@
 b__MA7naqebvq8uneqjner4taff4I1_118VTaffPbasvthengvba12trgQrohtVasbRAFg3__18shapgvbaVSiEXAF_4uvqy4onfr4I1_09QrohtVasbRRRR:
 nop
 .data
-.globl b__MGPA7naqebvq8uneqjner4taff4I1_119OfTaffPbasvthengvbaR0_AF2_18VTaffPbasvthengvbaR
+.weak b__MGPA7naqebvq8uneqjner4taff4I1_119OfTaffPbasvthengvbaR0_AF2_18VTaffPbasvthengvbaR
 .type b__MGPA7naqebvq8uneqjner4taff4I1_119OfTaffPbasvthengvbaR0_AF2_18VTaffPbasvthengvbaR,%object
 b__MGPA7naqebvq8uneqjner4taff4I1_119OfTaffPbasvthengvbaR0_AF2_18VTaffPbasvthengvbaR:
 .space __SIZEOF_POINTER__
@@ -2043,7 +2043,7 @@
 b__MA7naqebvq8uneqjner4taff4I1_121OcUjTaffPbasvthengvba19frgRzretraplFhcyCqaRo:
 nop
 .text
-.globl b__MA7naqebvq2fcVAF_8uneqjner4taff4I1_118VTaffPbasvthengvbaRRnFRBF5_
+.weak b__MA7naqebvq2fcVAF_8uneqjner4taff4I1_118VTaffPbasvthengvbaRRnFRBF5_
 .type b__MA7naqebvq2fcVAF_8uneqjner4taff4I1_118VTaffPbasvthengvbaRRnFRBF5_,%function
 b__MA7naqebvq2fcVAF_8uneqjner4taff4I1_118VTaffPbasvthengvbaRRnFRBF5_:
 nop
@@ -2108,7 +2108,7 @@
 b__MA7naqebvq8uneqjner4taff4I1_118VTaffPbasvthengvba13hayvaxGbQrnguREXAF_2fcVAF0_20uvqy_qrngu_erpvcvragRRR:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_024VTaffZrnfherzragPnyyonpxRiRRAF_2fcVG_RRF8_
+.weak b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_024VTaffZrnfherzragPnyyonpxRiRRAF_2fcVG_RRF8_
 .type b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_024VTaffZrnfherzragPnyyonpxRiRRAF_2fcVG_RRF8_,%function
 b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_024VTaffZrnfherzragPnyyonpxRiRRAF_2fcVG_RRF8_:
 nop
@@ -2143,12 +2143,12 @@
 b__MA7naqebvq8uneqjner4taff4I1_18OcUjTaff17trgRkgrafvbaNTaffRi:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_016VTaffZrnfherzragRiRRAF_2fcVG_RRF8_
+.weak b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_016VTaffZrnfherzragRiRRAF_2fcVG_RRF8_
 .type b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_016VTaffZrnfherzragRiRRAF_2fcVG_RRF8_,%function
 b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_016VTaffZrnfherzragRiRRAF_2fcVG_RRF8_:
 nop
 .text
-.globl b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
+.weak b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
 .type b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_,%function
 b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_:
 nop
@@ -2178,7 +2178,7 @@
 b__MA7naqebvq8uneqjner4taff4I1_18OcUjTaff29trgRkgrafvbaTaffPbasvthengvbaRi:
 nop
 .text
-.globl b__MAXFg3__18shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF7_F7_F7_CAF_6irpgbeVCiAF_9nyybpngbeVF9_RRRRRRpyRF5_F7_F7_F7_F7_FQ_
+.weak b__MAXFg3__18shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF7_F7_F7_CAF_6irpgbeVCiAF_9nyybpngbeVF9_RRRRRRpyRF5_F7_F7_F7_F7_FQ_
 .type b__MAXFg3__18shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF7_F7_F7_CAF_6irpgbeVCiAF_9nyybpngbeVF9_RRRRRRpyRF5_F7_F7_F7_F7_FQ_,%function
 b__MAXFg3__18shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF7_F7_F7_CAF_6irpgbeVCiAF_9nyybpngbeVF9_RRRRRRpyRF5_F7_F7_F7_F7_FQ_:
 nop
@@ -2208,12 +2208,12 @@
 b__MGi0_a24_A7naqebvq8uneqjner4taff4I1_127OaUjTaffZrnfherzragPnyyonpxQ1Ri:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I1_15VTaffRAF_4uvqy4onfr4I1_05VOnfrRAF4_8OcUjTaffRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I1_15VTaffRAF_4uvqy4onfr4I1_05VOnfrRAF4_8OcUjTaffRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo
 .type b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I1_15VTaffRAF_4uvqy4onfr4I1_05VOnfrRAF4_8OcUjTaffRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I1_15VTaffRAF_4uvqy4onfr4I1_05VOnfrRAF4_8OcUjTaffRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_4taff4I1_124VTaffZrnfherzragPnyyonpxRAF3_27OcUjTaffZrnfherzragPnyyonpxRAF3_27OaUjTaffZrnfherzragPnyyonpxRRRAF_2fcVG_RREXAF7_VAF0_7VOvaqreRRR
+.weak b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_4taff4I1_124VTaffZrnfherzragPnyyonpxRAF3_27OcUjTaffZrnfherzragPnyyonpxRAF3_27OaUjTaffZrnfherzragPnyyonpxRRRAF_2fcVG_RREXAF7_VAF0_7VOvaqreRRR
 .type b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_4taff4I1_124VTaffZrnfherzragPnyyonpxRAF3_27OcUjTaffZrnfherzragPnyyonpxRAF3_27OaUjTaffZrnfherzragPnyyonpxRRRAF_2fcVG_RREXAF7_VAF0_7VOvaqreRRR,%function
 b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_4taff4I1_124VTaffZrnfherzragPnyyonpxRAF3_27OcUjTaffZrnfherzragPnyyonpxRAF3_27OaUjTaffZrnfherzragPnyyonpxRRRAF_2fcVG_RREXAF7_VAF0_7VOvaqreRRR:
 nop
@@ -2243,7 +2243,7 @@
 b__MA7naqebvq8uneqjner4taff4I1_18OcUjTaff7pyrnahcRi:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRR:
 nop
diff --git a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_041.S b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_041.S
index 53e8ed7..ddf1b91 100644
--- a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_041.S
+++ b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_041.S
@@ -23,7 +23,7 @@
 b__MA7naqebvq8uneqjner4taff4I2_08OcUjTaff14vagresnprPunvaRAFg3__18shapgvbaVSiEXAF0_8uvqy_irpVAF0_11uvqy_fgevatRRRRRR:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_09VTaffKgenRiRRAF_2fcVG_RRF8_
+.weak b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_09VTaffKgenRiRRAF_2fcVG_RRF8_
 .type b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_09VTaffKgenRiRRAF_2fcVG_RRF8_,%function
 b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_09VTaffKgenRiRRAF_2fcVG_RRF8_:
 nop
@@ -68,7 +68,7 @@
 b__MGi0_a24_A7naqebvq8uneqjner4taff4I2_019OaUjTaffZrnfherzragQ0Ri:
 nop
 .text
-.globl b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
+.weak b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
 .type b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_,%function
 b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_:
 nop
@@ -208,7 +208,7 @@
 b__MA7naqebvq8uneqjner4taff4I2_019OaUjTaffZrnfherzrag21_uvqy_frgPnyyonpx_2_0RCAF_4uvqy4onfr4I1_08OaUjOnfrREXAF0_6CnepryRCF9_AFg3__18shapgvbaVSiEF9_RRR:
 nop
 .data
-.globl b__MGIA7naqebvq8uneqjner4taff4I2_07OfNTaffR
+.weak b__MGIA7naqebvq8uneqjner4taff4I2_07OfNTaffR
 .type b__MGIA7naqebvq8uneqjner4taff4I2_07OfNTaffR,%object
 b__MGIA7naqebvq8uneqjner4taff4I2_07OfNTaffR:
 .space __SIZEOF_POINTER__
@@ -283,7 +283,7 @@
 b__MA7naqebvq8uneqjner4taff4I2_013OcUjTaffQroht19vagresnprQrfpevcgbeRAFg3__18shapgvbaVSiEXAF0_11uvqy_fgevatRRRR:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_4taff4I2_010VTaffQrohtRAF3_13OcUjTaffQrohtRAF3_13OaUjTaffQrohtRRRAF_2fcVG_RREXAF7_VAF0_7VOvaqreRRR
+.weak b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_4taff4I2_010VTaffQrohtRAF3_13OcUjTaffQrohtRAF3_13OaUjTaffQrohtRRRAF_2fcVG_RREXAF7_VAF0_7VOvaqreRRR
 .type b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_4taff4I2_010VTaffQrohtRAF3_13OcUjTaffQrohtRAF3_13OaUjTaffQrohtRRRAF_2fcVG_RREXAF7_VAF0_7VOvaqreRRR,%function
 b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_4taff4I2_010VTaffQrohtRAF3_13OcUjTaffQrohtRAF3_13OaUjTaffQrohtRRRAF_2fcVG_RREXAF7_VAF0_7VOvaqreRRR:
 nop
@@ -313,17 +313,17 @@
 b__MA7naqebvq8uneqjner4taff4I2_019OcUjTaffZrnfherzrag15baYnfgFgebatErsRCXi:
 nop
 .data
-.globl b__MGPA7naqebvq8uneqjner4taff4I2_07OfNTaffR0_AF2_6VNTaffR
+.weak b__MGPA7naqebvq8uneqjner4taff4I2_07OfNTaffR0_AF2_6VNTaffR
 .type b__MGPA7naqebvq8uneqjner4taff4I2_07OfNTaffR0_AF2_6VNTaffR,%object
 b__MGPA7naqebvq8uneqjner4taff4I2_07OfNTaffR0_AF2_6VNTaffR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq2fcVAF_8uneqjner4taff4I2_018VTaffPbasvthengvbaRRnFRBF5_
+.weak b__MA7naqebvq2fcVAF_8uneqjner4taff4I2_018VTaffPbasvthengvbaRRnFRBF5_
 .type b__MA7naqebvq2fcVAF_8uneqjner4taff4I2_018VTaffPbasvthengvbaRRnFRBF5_,%function
 b__MA7naqebvq2fcVAF_8uneqjner4taff4I2_018VTaffPbasvthengvbaRRnFRBF5_:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff23zrnfherzrag_pbeerpgvbaf4I1_023VZrnfherzragPbeerpgvbafRiRRAF_2fcVG_RRF9_
+.weak b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff23zrnfherzrag_pbeerpgvbaf4I1_023VZrnfherzragPbeerpgvbafRiRRAF_2fcVG_RRF9_
 .type b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff23zrnfherzrag_pbeerpgvbaf4I1_023VZrnfherzragPbeerpgvbafRiRRAF_2fcVG_RRF9_,%function
 b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff23zrnfherzrag_pbeerpgvbaf4I1_023VZrnfherzragPbeerpgvbafRiRRAF_2fcVG_RRF9_:
 nop
@@ -428,7 +428,7 @@
 b__MA7naqebvq8uneqjner4taff4I2_027OcUjTaffZrnfherzragPnyyonpxP2REXAF_2fcVAF0_7VOvaqreRRR:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I2_06VNTaffRiRRAF_2fcVG_RRF8_
+.weak b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I2_06VNTaffRiRRAF_2fcVG_RRF8_
 .type b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I2_06VNTaffRiRRAF_2fcVG_RRF8_,%function
 b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I2_06VNTaffRiRRAF_2fcVG_RRF8_:
 nop
@@ -493,7 +493,7 @@
 b__MA7naqebvq8uneqjner4taff4I2_013VTaffOngpuvat5qrohtREXAF0_11uvqy_unaqyrREXAF0_8uvqy_irpVAF0_11uvqy_fgevatRRR:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I2_013VTaffOngpuvatRAF_4uvqy4onfr4I1_05VOnfrRAF4_16OcUjTaffOngpuvatRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I2_013VTaffOngpuvatRAF_4uvqy4onfr4I1_05VOnfrRAF4_16OcUjTaffOngpuvatRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo
 .type b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I2_013VTaffOngpuvatRAF_4uvqy4onfr4I1_05VOnfrRAF4_16OcUjTaffOngpuvatRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I2_013VTaffOngpuvatRAF_4uvqy4onfr4I1_05VOnfrRAF4_16OcUjTaffOngpuvatRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo:
 nop
@@ -513,12 +513,12 @@
 b__MGi0_a24_A7naqebvq8uneqjner4taff4I2_012OaUjNTaffEvyQ1Ri:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_4taff4I2_016OcUjTaffOngpuvatRAF4_13VTaffOngpuvatRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_4taff4I2_016OcUjTaffOngpuvatRAF4_13VTaffOngpuvatRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo
 .type b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_4taff4I2_016OcUjTaffOngpuvatRAF4_13VTaffOngpuvatRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_4taff4I2_016OcUjTaffOngpuvatRAF4_13VTaffOngpuvatRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I2_024VTaffZrnfherzragPnyyonpxRAF3_4I1_124VTaffZrnfherzragPnyyonpxRAF4_27OcUjTaffZrnfherzragPnyyonpxRRRAF0_6ErgheaVAF_2fcVG_RRRRAFN_VG0_RRCXpo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I2_024VTaffZrnfherzragPnyyonpxRAF3_4I1_124VTaffZrnfherzragPnyyonpxRAF4_27OcUjTaffZrnfherzragPnyyonpxRRRAF0_6ErgheaVAF_2fcVG_RRRRAFN_VG0_RRCXpo
 .type b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I2_024VTaffZrnfherzragPnyyonpxRAF3_4I1_124VTaffZrnfherzragPnyyonpxRAF4_27OcUjTaffZrnfherzragPnyyonpxRRRAF0_6ErgheaVAF_2fcVG_RRRRAFN_VG0_RRCXpo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I2_024VTaffZrnfherzragPnyyonpxRAF3_4I1_124VTaffZrnfherzragPnyyonpxRAF4_27OcUjTaffZrnfherzragPnyyonpxRRRAF0_6ErgheaVAF_2fcVG_RRRRAFN_VG0_RRCXpo:
 nop
@@ -528,17 +528,17 @@
 b__MA7naqebvq8uneqjner4taff4I2_017OaUjNTaffPnyyonpxQ1Ri:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I2_010VTaffQrohtRAF3_4I1_010VTaffQrohtRAF4_13OcUjTaffQrohtRRRAF0_6ErgheaVAF_2fcVG_RRRRAFN_VG0_RRCXpo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I2_010VTaffQrohtRAF3_4I1_010VTaffQrohtRAF4_13OcUjTaffQrohtRRRAF0_6ErgheaVAF_2fcVG_RRRRAFN_VG0_RRCXpo
 .type b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I2_010VTaffQrohtRAF3_4I1_010VTaffQrohtRAF4_13OcUjTaffQrohtRRRAF0_6ErgheaVAF_2fcVG_RRRRAFN_VG0_RRCXpo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I2_010VTaffQrohtRAF3_4I1_010VTaffQrohtRAF4_13OcUjTaffQrohtRRRAF0_6ErgheaVAF_2fcVG_RRRRAFN_VG0_RRCXpo:
 nop
 .text
-.globl b__MAXFg3__18shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF7_F7_F7_CAF_6irpgbeVCiAF_9nyybpngbeVF9_RRRRRRpyRF5_F7_F7_F7_F7_FQ_
+.weak b__MAXFg3__18shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF7_F7_F7_CAF_6irpgbeVCiAF_9nyybpngbeVF9_RRRRRRpyRF5_F7_F7_F7_F7_FQ_
 .type b__MAXFg3__18shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF7_F7_F7_CAF_6irpgbeVCiAF_9nyybpngbeVF9_RRRRRRpyRF5_F7_F7_F7_F7_FQ_,%function
 b__MAXFg3__18shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF7_F7_F7_CAF_6irpgbeVCiAF_9nyybpngbeVF9_RRRRRRpyRF5_F7_F7_F7_F7_FQ_:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I2_05VTaffRAF3_4I1_15VTaffRAF4_8OcUjTaffRRRAF0_6ErgheaVAF_2fcVG_RRRRAFN_VG0_RRCXpo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I2_05VTaffRAF3_4I1_15VTaffRAF4_8OcUjTaffRRRAF0_6ErgheaVAF_2fcVG_RRRRAFN_VG0_RRCXpo
 .type b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I2_05VTaffRAF3_4I1_15VTaffRAF4_8OcUjTaffRRRAF0_6ErgheaVAF_2fcVG_RRRRAFN_VG0_RRCXpo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I2_05VTaffRAF3_4I1_15VTaffRAF4_8OcUjTaffRRRAF0_6ErgheaVAF_2fcVG_RRRRAFN_VG0_RRCXpo:
 nop
@@ -568,7 +568,7 @@
 b__MA7naqebvq8uneqjner4taff4I2_016OcUjTaffPnyyonpx4cvatRi:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I2_018VTaffPbasvthengvbaRAF3_4I1_018VTaffPbasvthengvbaRAF4_21OcUjTaffPbasvthengvbaRRRAF0_6ErgheaVAF_2fcVG_RRRRAFN_VG0_RRCXpo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I2_018VTaffPbasvthengvbaRAF3_4I1_018VTaffPbasvthengvbaRAF4_21OcUjTaffPbasvthengvbaRRRAF0_6ErgheaVAF_2fcVG_RRRRAFN_VG0_RRCXpo
 .type b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I2_018VTaffPbasvthengvbaRAF3_4I1_018VTaffPbasvthengvbaRAF4_21OcUjTaffPbasvthengvbaRRRAF0_6ErgheaVAF_2fcVG_RRRRAFN_VG0_RRCXpo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I2_018VTaffPbasvthengvbaRAF3_4I1_018VTaffPbasvthengvbaRAF4_21OcUjTaffPbasvthengvbaRRRAF0_6ErgheaVAF_2fcVG_RRRRAFN_VG0_RRCXpo:
 nop
@@ -588,7 +588,7 @@
 b__MGPA7naqebvq8uneqjner4taff4I2_08OcUjTaffR16_AF0_11OcUjErsOnfrR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_4taff4I2_021VTaffOngpuvatPnyyonpxRAF3_24OcUjTaffOngpuvatPnyyonpxRAF3_24OaUjTaffOngpuvatPnyyonpxRRRAF_2fcVG_RREXAF7_VAF0_7VOvaqreRRR
+.weak b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_4taff4I2_021VTaffOngpuvatPnyyonpxRAF3_24OcUjTaffOngpuvatPnyyonpxRAF3_24OaUjTaffOngpuvatPnyyonpxRRRAF_2fcVG_RREXAF7_VAF0_7VOvaqreRRR
 .type b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_4taff4I2_021VTaffOngpuvatPnyyonpxRAF3_24OcUjTaffOngpuvatPnyyonpxRAF3_24OaUjTaffOngpuvatPnyyonpxRRRAF_2fcVG_RREXAF7_VAF0_7VOvaqreRRR,%function
 b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_4taff4I2_021VTaffOngpuvatPnyyonpxRAF3_24OcUjTaffOngpuvatPnyyonpxRAF3_24OaUjTaffOngpuvatPnyyonpxRRRAF_2fcVG_RREXAF7_VAF0_7VOvaqreRRR:
 nop
@@ -603,7 +603,7 @@
 b__MA7naqebvq8uneqjner4taff4I2_010VTaffQroht8pnfgSebzREXAF_2fcVF3_RRo:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_8uneqjner27uvqy_ovaqre_qrngu_erpvcvragRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_
+.weak b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_8uneqjner27uvqy_ovaqre_qrngu_erpvcvragRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_
 .type b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_8uneqjner27uvqy_ovaqre_qrngu_erpvcvragRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_,%function
 b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_8uneqjner27uvqy_ovaqre_qrngu_erpvcvragRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_:
 nop
@@ -613,7 +613,7 @@
 b__MA7naqebvq8uneqjner4taff4I2_08OcUjTaff33trgRkgrafvbaTaffPbasvthengvba_1_1Ri:
 nop
 .data
-.globl b__MGPA7naqebvq8uneqjner4taff4I2_011OfTaffQrohtR0_AF2_10VTaffQrohtR
+.weak b__MGPA7naqebvq8uneqjner4taff4I2_011OfTaffQrohtR0_AF2_10VTaffQrohtR
 .type b__MGPA7naqebvq8uneqjner4taff4I2_011OfTaffQrohtR0_AF2_10VTaffQrohtR,%object
 b__MGPA7naqebvq8uneqjner4taff4I2_011OfTaffQrohtR0_AF2_10VTaffQrohtR:
 .space __SIZEOF_POINTER__
@@ -688,12 +688,12 @@
 b__MGPA7naqebvq8uneqjner4taff4I2_08OaUjTaffR0_AF0_7VOvaqreR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIA7naqebvq8uneqjner4taff4I2_014OfTaffOngpuvatR
+.weak b__MGIA7naqebvq8uneqjner4taff4I2_014OfTaffOngpuvatR
 .type b__MGIA7naqebvq8uneqjner4taff4I2_014OfTaffOngpuvatR,%object
 b__MGIA7naqebvq8uneqjner4taff4I2_014OfTaffOngpuvatR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGPA7naqebvq8uneqjner4taff4I2_022OfTaffOngpuvatPnyyonpxR0_AF2_21VTaffOngpuvatPnyyonpxR
+.weak b__MGPA7naqebvq8uneqjner4taff4I2_022OfTaffOngpuvatPnyyonpxR0_AF2_21VTaffOngpuvatPnyyonpxR
 .type b__MGPA7naqebvq8uneqjner4taff4I2_022OfTaffOngpuvatPnyyonpxR0_AF2_21VTaffOngpuvatPnyyonpxR,%object
 b__MGPA7naqebvq8uneqjner4taff4I2_022OfTaffOngpuvatPnyyonpxR0_AF2_21VTaffOngpuvatPnyyonpxR:
 .space __SIZEOF_POINTER__
@@ -888,7 +888,7 @@
 b__MA7naqebvq8uneqjner4taff4I2_08OcUjTaffP2REXAF_2fcVAF0_7VOvaqreRRR:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_4taff4I2_021OcUjTaffPbasvthengvbaRAF4_18VTaffPbasvthengvbaRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_4taff4I2_021OcUjTaffPbasvthengvbaRAF4_18VTaffPbasvthengvbaRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo
 .type b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_4taff4I2_021OcUjTaffPbasvthengvbaRAF4_18VTaffPbasvthengvbaRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_4taff4I2_021OcUjTaffPbasvthengvbaRAF4_18VTaffPbasvthengvbaRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo:
 nop
@@ -898,7 +898,7 @@
 b__MGIA7naqebvq8uneqjner4taff4I2_09OcUjNTaffR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq2fcVAF_8uneqjner4taff4I2_09VNTaffEvyRRnFRBF5_
+.weak b__MA7naqebvq2fcVAF_8uneqjner4taff4I2_09VNTaffEvyRRnFRBF5_
 .type b__MA7naqebvq2fcVAF_8uneqjner4taff4I2_09VNTaffEvyRRnFRBF5_,%function
 b__MA7naqebvq2fcVAF_8uneqjner4taff4I2_09VNTaffEvyRRnFRBF5_:
 nop
@@ -1048,7 +1048,7 @@
 b__MA7naqebvq8uneqjner4taff4I2_013OcUjTaffQroht15baYnfgFgebatErsRCXi:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I2_09VNTaffEvyRAF3_4I1_09VNTaffEvyRAF4_12OcUjNTaffEvyRRRAF0_6ErgheaVAF_2fcVG_RRRRAFN_VG0_RRCXpo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I2_09VNTaffEvyRAF3_4I1_09VNTaffEvyRAF4_12OcUjNTaffEvyRRRAF0_6ErgheaVAF_2fcVG_RRRRAFN_VG0_RRCXpo
 .type b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I2_09VNTaffEvyRAF3_4I1_09VNTaffEvyRAF4_12OcUjNTaffEvyRRRAF0_6ErgheaVAF_2fcVG_RRRRAFN_VG0_RRCXpo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I2_09VNTaffEvyRAF3_4I1_09VNTaffEvyRAF4_12OcUjNTaffEvyRRRAF0_6ErgheaVAF_2fcVG_RRRRAFN_VG0_RRCXpo:
 nop
@@ -1068,7 +1068,7 @@
 b__MA7naqebvq8uneqjner4taff4I2_010VTaffQroht14vagresnprPunvaRAFg3__18shapgvbaVSiEXAF0_8uvqy_irpVAF0_11uvqy_fgevatRRRRRR:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I2_024VTaffZrnfherzragPnyyonpxRiRRAF_2fcVG_RRF8_
+.weak b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I2_024VTaffZrnfherzragPnyyonpxRiRRAF_2fcVG_RRF8_
 .type b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I2_024VTaffZrnfherzragPnyyonpxRiRRAF_2fcVG_RRF8_,%function
 b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I2_024VTaffZrnfherzragPnyyonpxRiRRAF_2fcVG_RRF8_:
 nop
@@ -1103,7 +1103,7 @@
 b__MA7naqebvq8uneqjner4taff4I2_016VTaffZrnfherzrag8pnfgSebzREXAF_2fcVAF1_4I1_116VTaffZrnfherzragRRRo:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_024VTaffZrnfherzragPnyyonpxRiRRAF_2fcVG_RRF8_
+.weak b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_024VTaffZrnfherzragPnyyonpxRiRRAF_2fcVG_RRF8_
 .type b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_024VTaffZrnfherzragPnyyonpxRiRRAF_2fcVG_RRF8_,%function
 b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_024VTaffZrnfherzragPnyyonpxRiRRAF_2fcVG_RRF8_:
 nop
@@ -1113,7 +1113,7 @@
 b__MA7naqebvq8uneqjner4taff4I2_027OcUjTaffZrnfherzragPnyyonpx21abgvslFlfcebcfPunatrqRi:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I2_024VTaffZrnfherzragPnyyonpxRAF_4uvqy4onfr4I1_05VOnfrRAF4_27OcUjTaffZrnfherzragPnyyonpxRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I2_024VTaffZrnfherzragPnyyonpxRAF_4uvqy4onfr4I1_05VOnfrRAF4_27OcUjTaffZrnfherzragPnyyonpxRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo
 .type b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I2_024VTaffZrnfherzragPnyyonpxRAF_4uvqy4onfr4I1_05VOnfrRAF4_27OcUjTaffZrnfherzragPnyyonpxRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I2_024VTaffZrnfherzragPnyyonpxRAF_4uvqy4onfr4I1_05VOnfrRAF4_27OcUjTaffZrnfherzragPnyyonpxRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo:
 nop
@@ -1168,7 +1168,7 @@
 b__MGua32_A7naqebvq8uneqjner4taff4I2_012OaUjNTaffEvyQ1Ri:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_4taff4I2_013VTaffPnyyonpxRAF3_16OcUjTaffPnyyonpxRAF3_16OaUjTaffPnyyonpxRRRAF_2fcVG_RREXAF7_VAF0_7VOvaqreRRR
+.weak b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_4taff4I2_013VTaffPnyyonpxRAF3_16OcUjTaffPnyyonpxRAF3_16OaUjTaffPnyyonpxRRRAF_2fcVG_RREXAF7_VAF0_7VOvaqreRRR
 .type b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_4taff4I2_013VTaffPnyyonpxRAF3_16OcUjTaffPnyyonpxRAF3_16OaUjTaffPnyyonpxRRRAF_2fcVG_RREXAF7_VAF0_7VOvaqreRRR,%function
 b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_4taff4I2_013VTaffPnyyonpxRAF3_16OcUjTaffPnyyonpxRAF3_16OaUjTaffPnyyonpxRRRAF_2fcVG_RREXAF7_VAF0_7VOvaqreRRR:
 nop
@@ -1198,7 +1198,7 @@
 b__MA7naqebvq8uneqjner4taff4I2_024OcUjTaffOngpuvatPnyyonpx11yvaxGbQrnguREXAF_2fcVAF0_20uvqy_qrngu_erpvcvragRRRz:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I2_016VTaffZrnfherzragRAF_4uvqy4onfr4I1_05VOnfrRAF4_19OcUjTaffZrnfherzragRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I2_016VTaffZrnfherzragRAF_4uvqy4onfr4I1_05VOnfrRAF4_19OcUjTaffZrnfherzragRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo
 .type b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I2_016VTaffZrnfherzragRAF_4uvqy4onfr4I1_05VOnfrRAF4_19OcUjTaffZrnfherzragRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I2_016VTaffZrnfherzragRAF_4uvqy4onfr4I1_05VOnfrRAF4_19OcUjTaffZrnfherzragRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo:
 nop
@@ -1213,7 +1213,7 @@
 b__MA7naqebvq8uneqjner4taff4I2_021VTaffOngpuvatPnyyonpx13hayvaxGbQrnguREXAF_2fcVAF0_20uvqy_qrngu_erpvcvragRRR:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I2_013VTaffPnyyonpxRAF3_4I1_113VTaffPnyyonpxRAF4_16OcUjTaffPnyyonpxRRRAF0_6ErgheaVAF_2fcVG_RRRRAFN_VG0_RRCXpo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I2_013VTaffPnyyonpxRAF3_4I1_113VTaffPnyyonpxRAF4_16OcUjTaffPnyyonpxRRRAF0_6ErgheaVAF_2fcVG_RRRRAFN_VG0_RRCXpo
 .type b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I2_013VTaffPnyyonpxRAF3_4I1_113VTaffPnyyonpxRAF4_16OcUjTaffPnyyonpxRRRAF0_6ErgheaVAF_2fcVG_RRRRAFN_VG0_RRCXpo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I2_013VTaffPnyyonpxRAF3_4I1_113VTaffPnyyonpxRAF4_16OcUjTaffPnyyonpxRRRAF0_6ErgheaVAF_2fcVG_RRRRAFN_VG0_RRCXpo:
 nop
@@ -1268,7 +1268,7 @@
 b__MGi0_a40_A7naqebvq8uneqjner4taff4I2_017OcUjNTaffPnyyonpx15baYnfgFgebatErsRCXi:
 nop
 .text
-.globl b__MA7naqebvq2fcVAF_8uneqjner4taff23zrnfherzrag_pbeerpgvbaf4I1_023VZrnfherzragPbeerpgvbafRRnFRBF6_
+.weak b__MA7naqebvq2fcVAF_8uneqjner4taff23zrnfherzrag_pbeerpgvbaf4I1_023VZrnfherzragPbeerpgvbafRRnFRBF6_
 .type b__MA7naqebvq2fcVAF_8uneqjner4taff23zrnfherzrag_pbeerpgvbaf4I1_023VZrnfherzragPbeerpgvbafRRnFRBF6_,%function
 b__MA7naqebvq2fcVAF_8uneqjner4taff23zrnfherzrag_pbeerpgvbaf4I1_023VZrnfherzragPbeerpgvbafRRnFRBF6_:
 nop
@@ -1373,7 +1373,7 @@
 b__MGua16_A7naqebvq8uneqjner4taff4I2_012OcUjNTaffEvy15baYnfgFgebatErsRCXi:
 nop
 .text
-.globl b__MA7naqebvq2fcVAF_8uneqjner4taff4I2_010VTaffQrohtRRnFRBF5_
+.weak b__MA7naqebvq2fcVAF_8uneqjner4taff4I2_010VTaffQrohtRRnFRBF5_
 .type b__MA7naqebvq2fcVAF_8uneqjner4taff4I2_010VTaffQrohtRRnFRBF5_,%function
 b__MA7naqebvq2fcVAF_8uneqjner4taff4I2_010VTaffQrohtRRnFRBF5_:
 nop
@@ -1423,7 +1423,7 @@
 b__MA7naqebvq8uneqjner4taff4I2_013OcUjTaffQroht5qrohtREXAF0_11uvqy_unaqyrREXAF0_8uvqy_irpVAF0_11uvqy_fgevatRRR:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_4taff4I2_06VNTaffRAF3_9OcUjNTaffRAF3_9OaUjNTaffRRRAF_2fcVG_RREXAF7_VAF0_7VOvaqreRRR
+.weak b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_4taff4I2_06VNTaffRAF3_9OcUjNTaffRAF3_9OaUjNTaffRRRAF_2fcVG_RREXAF7_VAF0_7VOvaqreRRR
 .type b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_4taff4I2_06VNTaffRAF3_9OcUjNTaffRAF3_9OaUjNTaffRRRAF_2fcVG_RREXAF7_VAF0_7VOvaqreRRR,%function
 b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_4taff4I2_06VNTaffRAF3_9OcUjNTaffRAF3_9OaUjNTaffRRRAF_2fcVG_RREXAF7_VAF0_7VOvaqreRRR:
 nop
@@ -1438,7 +1438,7 @@
 b__MGPA7naqebvq8uneqjner4taff4I2_012OaUjNTaffEvyR0_AF0_7VOvaqreR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_016VTaffZrnfherzragRiRRAF_2fcVG_RRF8_
+.weak b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_016VTaffZrnfherzragRiRRAF_2fcVG_RRF8_
 .type b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_016VTaffZrnfherzragRiRRAF_2fcVG_RRF8_,%function
 b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_016VTaffZrnfherzragRiRRAF_2fcVG_RRF8_:
 nop
@@ -1478,12 +1478,12 @@
 b__MA7naqebvq8uneqjner4taff4I2_09VNTaffEvy21frgUNYVafgehzragngvbaRi:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I2_010VTaffQrohtRiRRAF_2fcVG_RRF8_
+.weak b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I2_010VTaffQrohtRiRRAF_2fcVG_RRF8_
 .type b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I2_010VTaffQrohtRiRRAF_2fcVG_RRF8_,%function
 b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I2_010VTaffQrohtRiRRAF_2fcVG_RRF8_:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I2_018VTaffPbasvthengvbaRiRRAF_2fcVG_RRF8_
+.weak b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I2_018VTaffPbasvthengvbaRiRRAF_2fcVG_RRF8_
 .type b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I2_018VTaffPbasvthengvbaRiRRAF_2fcVG_RRF8_,%function
 b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I2_018VTaffPbasvthengvbaRiRRAF_2fcVG_RRF8_:
 nop
@@ -1513,7 +1513,7 @@
 b__MA7naqebvq8uneqjner4taff4I2_09OcUjNTaff11yvaxGbQrnguREXAF_2fcVAF0_20uvqy_qrngu_erpvcvragRRRz:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_113VTaffPnyyonpxRiRRAF_2fcVG_RRF8_
+.weak b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_113VTaffPnyyonpxRiRRAF_2fcVG_RRF8_
 .type b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_113VTaffPnyyonpxRiRRAF_2fcVG_RRF8_,%function
 b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_113VTaffPnyyonpxRiRRAF_2fcVG_RRF8_:
 nop
@@ -1523,7 +1523,7 @@
 b__MGPA7naqebvq8uneqjner4taff4I2_016OcUjTaffOngpuvatR0_AF1_4I1_013VTaffOngpuvatR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGPA7naqebvq8uneqjner4taff4I2_019OfTaffPbasvthengvbaR0_AF2_18VTaffPbasvthengvbaR
+.weak b__MGPA7naqebvq8uneqjner4taff4I2_019OfTaffPbasvthengvbaR0_AF2_18VTaffPbasvthengvbaR
 .type b__MGPA7naqebvq8uneqjner4taff4I2_019OfTaffPbasvthengvbaR0_AF2_18VTaffPbasvthengvbaR,%object
 b__MGPA7naqebvq8uneqjner4taff4I2_019OfTaffPbasvthengvbaR0_AF2_18VTaffPbasvthengvbaR:
 .space __SIZEOF_POINTER__
@@ -1568,7 +1568,7 @@
 b__MGPA7naqebvq8uneqjner4taff4I2_027OaUjTaffZrnfherzragPnyyonpxR0_AF0_9OUjOvaqreR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I2_013VTaffOngpuvatRAF3_4I1_013VTaffOngpuvatRAF4_16OcUjTaffOngpuvatRRRAF0_6ErgheaVAF_2fcVG_RRRRAFN_VG0_RRCXpo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I2_013VTaffOngpuvatRAF3_4I1_013VTaffOngpuvatRAF4_16OcUjTaffOngpuvatRRRAF0_6ErgheaVAF_2fcVG_RRRRAFN_VG0_RRCXpo
 .type b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I2_013VTaffOngpuvatRAF3_4I1_013VTaffOngpuvatRAF4_16OcUjTaffOngpuvatRRRAF0_6ErgheaVAF_2fcVG_RRRRAFN_VG0_RRCXpo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I2_013VTaffOngpuvatRAF3_4I1_013VTaffOngpuvatRAF4_16OcUjTaffOngpuvatRRRAF0_6ErgheaVAF_2fcVG_RRRRAFN_VG0_RRCXpo:
 nop
@@ -1633,7 +1633,7 @@
 b__MGPA7naqebvq8uneqjner4taff4I2_016OcUjTaffOngpuvatR8_AF0_10VVagresnprR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I2_06VNTaffRAF_4uvqy4onfr4I1_05VOnfrRAF4_9OcUjNTaffRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I2_06VNTaffRAF_4uvqy4onfr4I1_05VOnfrRAF4_9OcUjNTaffRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo
 .type b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I2_06VNTaffRAF_4uvqy4onfr4I1_05VOnfrRAF4_9OcUjNTaffRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I2_06VNTaffRAF_4uvqy4onfr4I1_05VOnfrRAF4_9OcUjNTaffRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo:
 nop
@@ -1643,12 +1643,12 @@
 b__MGi0_a40_A7naqebvq8uneqjner4taff4I2_09OcUjNTaff15baYnfgFgebatErsRCXi:
 nop
 .text
-.globl b__MA7naqebvq2fcVAF_8uneqjner4taff4I2_013VTaffOngpuvatRRnFRBF5_
+.weak b__MA7naqebvq2fcVAF_8uneqjner4taff4I2_013VTaffOngpuvatRRnFRBF5_
 .type b__MA7naqebvq2fcVAF_8uneqjner4taff4I2_013VTaffOngpuvatRRnFRBF5_,%function
 b__MA7naqebvq2fcVAF_8uneqjner4taff4I2_013VTaffOngpuvatRRnFRBF5_:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_4taff4I2_09OcUjNTaffRAF4_6VNTaffRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_4taff4I2_09OcUjNTaffRAF4_6VNTaffRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo
 .type b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_4taff4I2_09OcUjNTaffRAF4_6VNTaffRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_4taff4I2_09OcUjNTaffRAF4_6VNTaffRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo:
 nop
@@ -1688,7 +1688,7 @@
 b__MA7naqebvq8uneqjner4taff4I2_08OcUjTaff18vawrpgOrfgYbpngvbaREXAF1_4I1_012TaffYbpngvbaR:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_116VTaffZrnfherzragRiRRAF_2fcVG_RRF8_
+.weak b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_116VTaffZrnfherzragRiRRAF_2fcVG_RRF8_
 .type b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_116VTaffZrnfherzragRiRRAF_2fcVG_RRF8_,%function
 b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_116VTaffZrnfherzragRiRRAF_2fcVG_RRF8_:
 nop
@@ -1753,7 +1753,7 @@
 b__MA7naqebvq8uneqjner4taff4I2_019OaUjTaffZrnfherzrag12trgQrohtVasbRAFg3__18shapgvbaVSiEXAF_4uvqy4onfr4I1_09QrohtVasbRRRR:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_124VTaffZrnfherzragPnyyonpxRiRRAF_2fcVG_RRF8_
+.weak b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_124VTaffZrnfherzragPnyyonpxRiRRAF_2fcVG_RRF8_
 .type b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_124VTaffZrnfherzragPnyyonpxRiRRAF_2fcVG_RRF8_,%function
 b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_124VTaffZrnfherzragPnyyonpxRiRRAF_2fcVG_RRF8_:
 nop
@@ -1813,7 +1813,7 @@
 b__MGPA7naqebvq8uneqjner4taff4I2_019OcUjTaffZrnfherzragR8_AF0_10VVagresnprR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq2fcVAF_8uneqjner4taff18ivfvovyvgl_pbageby4I1_022VTaffIvfvovyvglPbagebyRRnFRBF6_
+.weak b__MA7naqebvq2fcVAF_8uneqjner4taff18ivfvovyvgl_pbageby4I1_022VTaffIvfvovyvglPbagebyRRnFRBF6_
 .type b__MA7naqebvq2fcVAF_8uneqjner4taff18ivfvovyvgl_pbageby4I1_022VTaffIvfvovyvglPbagebyRRnFRBF6_,%function
 b__MA7naqebvq2fcVAF_8uneqjner4taff18ivfvovyvgl_pbageby4I1_022VTaffIvfvovyvglPbagebyRRnFRBF6_:
 nop
@@ -1838,7 +1838,7 @@
 b__MGPA7naqebvq8uneqjner4taff4I2_021OcUjTaffPbasvthengvbaR0_AF_4uvqy4onfr4I1_05VOnfrR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRP2REXFU_
+.weak b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRP2REXFU_
 .type b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRP2REXFU_,%function
 b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRP2REXFU_:
 nop
@@ -1888,12 +1888,12 @@
 b__MA7naqebvq8uneqjner4taff4I2_012OaUjNTaffEvyP2REXAF_2fcVAF2_9VNTaffEvyRRR:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_4taff4I2_013VTaffOngpuvatRAF3_16OcUjTaffOngpuvatRAF3_16OaUjTaffOngpuvatRRRAF_2fcVG_RREXAF7_VAF0_7VOvaqreRRR
+.weak b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_4taff4I2_013VTaffOngpuvatRAF3_16OcUjTaffOngpuvatRAF3_16OaUjTaffOngpuvatRRRAF_2fcVG_RREXAF7_VAF0_7VOvaqreRRR
 .type b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_4taff4I2_013VTaffOngpuvatRAF3_16OcUjTaffOngpuvatRAF3_16OaUjTaffOngpuvatRRRAF_2fcVG_RREXAF7_VAF0_7VOvaqreRRR,%function
 b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_4taff4I2_013VTaffOngpuvatRAF3_16OcUjTaffOngpuvatRAF3_16OaUjTaffOngpuvatRRRAF_2fcVG_RREXAF7_VAF0_7VOvaqreRRR:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_4taff4I2_016VTaffZrnfherzragRAF3_19OcUjTaffZrnfherzragRAF3_19OaUjTaffZrnfherzragRRRAF_2fcVG_RREXAF7_VAF0_7VOvaqreRRR
+.weak b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_4taff4I2_016VTaffZrnfherzragRAF3_19OcUjTaffZrnfherzragRAF3_19OaUjTaffZrnfherzragRRRAF_2fcVG_RREXAF7_VAF0_7VOvaqreRRR
 .type b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_4taff4I2_016VTaffZrnfherzragRAF3_19OcUjTaffZrnfherzragRAF3_19OaUjTaffZrnfherzragRRRAF_2fcVG_RREXAF7_VAF0_7VOvaqreRRR,%function
 b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_4taff4I2_016VTaffZrnfherzragRAF3_19OcUjTaffZrnfherzragRAF3_19OaUjTaffZrnfherzragRRRAF_2fcVG_RREXAF7_VAF0_7VOvaqreRRR:
 nop
@@ -1933,7 +1933,7 @@
 b__MA7naqebvq8uneqjner4taff4I2_017OcUjNTaffPnyyonpx11yvaxGbQrnguREXAF_2fcVAF0_20uvqy_qrngu_erpvcvragRRRz:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_4taff4I2_09VNTaffEvyRAF3_12OcUjNTaffEvyRAF3_12OaUjNTaffEvyRRRAF_2fcVG_RREXAF7_VAF0_7VOvaqreRRR
+.weak b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_4taff4I2_09VNTaffEvyRAF3_12OcUjNTaffEvyRAF3_12OaUjNTaffEvyRRRAF_2fcVG_RREXAF7_VAF0_7VOvaqreRRR
 .type b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_4taff4I2_09VNTaffEvyRAF3_12OcUjNTaffEvyRAF3_12OaUjNTaffEvyRRRAF_2fcVG_RREXAF7_VAF0_7VOvaqreRRR,%function
 b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_4taff4I2_09VNTaffEvyRAF3_12OcUjNTaffEvyRAF3_12OaUjNTaffEvyRRRAF_2fcVG_RREXAF7_VAF0_7VOvaqreRRR:
 nop
@@ -1943,7 +1943,7 @@
 b__MA7naqebvq8uneqjner4taff4I2_016OcUjTaffPnyyonpx5qrohtREXAF0_11uvqy_unaqyrREXAF0_8uvqy_irpVAF0_11uvqy_fgevatRRR:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFR_RRECAF_15__gerr_raq_abqrVFE_RREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFR_RRECAF_15__gerr_raq_abqrVFE_RREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFR_RRECAF_15__gerr_raq_abqrVFE_RREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFR_RRECAF_15__gerr_raq_abqrVFE_RREXG_:
 nop
@@ -1998,7 +1998,7 @@
 b__MA7naqebvq8uneqjner4taff4I2_09VNTaffEvy5qrohtREXAF0_11uvqy_unaqyrREXAF0_8uvqy_irpVAF0_11uvqy_fgevatRRR:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_09VNTaffEvyRiRRAF_2fcVG_RRF8_
+.weak b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_09VNTaffEvyRiRRAF_2fcVG_RRF8_
 .type b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_09VNTaffEvyRiRRAF_2fcVG_RRF8_,%function
 b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_09VNTaffEvyRiRRAF_2fcVG_RRF8_:
 nop
@@ -2098,7 +2098,7 @@
 b__MA7naqebvq8uneqjner4taff4I2_012OcUjNTaffEvy12trgUnfuPunvaRAFg3__18shapgvbaVSiEXAF0_8uvqy_irpVAF0_10uvqy_neenlVuYz32RWRRRRRRRR:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_06VNTaffRiRRAF_2fcVG_RRF8_
+.weak b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_06VNTaffRiRRAF_2fcVG_RRF8_
 .type b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_06VNTaffRiRRAF_2fcVG_RRF8_,%function
 b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_06VNTaffRiRRAF_2fcVG_RRF8_:
 nop
@@ -2178,7 +2178,7 @@
 b__MA7naqebvq8uneqjner4taff4I2_08OcUjTaff16qryrgrNvqvatQngnRAF1_4I1_05VTaff14TaffNvqvatQngnR:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff18ivfvovyvgl_pbageby4I1_022VTaffIvfvovyvglPbagebyRiRRAF_2fcVG_RRF9_
+.weak b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff18ivfvovyvgl_pbageby4I1_022VTaffIvfvovyvglPbagebyRiRRAF_2fcVG_RRF9_
 .type b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff18ivfvovyvgl_pbageby4I1_022VTaffIvfvovyvglPbagebyRiRRAF_2fcVG_RRF9_,%function
 b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff18ivfvovyvgl_pbageby4I1_022VTaffIvfvovyvglPbagebyRiRRAF_2fcVG_RRF9_:
 nop
@@ -2218,7 +2218,7 @@
 b__MGPA7naqebvq8uneqjner4taff4I2_024OaUjTaffOngpuvatPnyyonpxR0_AF0_7VOvaqreR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGPA7naqebvq8uneqjner4taff4I2_017OfTaffZrnfherzragR0_AF2_16VTaffZrnfherzragR
+.weak b__MGPA7naqebvq8uneqjner4taff4I2_017OfTaffZrnfherzragR0_AF2_16VTaffZrnfherzragR
 .type b__MGPA7naqebvq8uneqjner4taff4I2_017OfTaffZrnfherzragR0_AF2_16VTaffZrnfherzragR,%object
 b__MGPA7naqebvq8uneqjner4taff4I2_017OfTaffZrnfherzragR0_AF2_16VTaffZrnfherzragR:
 .space __SIZEOF_POINTER__
@@ -2358,7 +2358,7 @@
 b__MA7naqebvq8uneqjner4taff4I2_08OaUjTaff10baGenafnpgRwEXAF0_6CnepryRCF4_wAFg3__18shapgvbaVSiEF4_RRR:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I2_016VTaffZrnfherzragRiRRAF_2fcVG_RRF8_
+.weak b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I2_016VTaffZrnfherzragRiRRAF_2fcVG_RRF8_
 .type b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I2_016VTaffZrnfherzragRiRRAF_2fcVG_RRF8_,%function
 b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I2_016VTaffZrnfherzragRiRRAF_2fcVG_RRF8_:
 nop
@@ -2378,7 +2378,7 @@
 b__MA7naqebvq8uneqjner4taff4I2_019OaUjTaffZrnfherzragQ1Ri:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_4taff4I2_019OcUjTaffZrnfherzragRAF4_16VTaffZrnfherzragRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_4taff4I2_019OcUjTaffZrnfherzragRAF4_16VTaffZrnfherzragRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo
 .type b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_4taff4I2_019OcUjTaffZrnfherzragRAF4_16VTaffZrnfherzragRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_4taff4I2_019OcUjTaffZrnfherzragRAF4_16VTaffZrnfherzragRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo:
 nop
@@ -2488,7 +2488,7 @@
 b__MA7naqebvq8uneqjner4taff4I2_09OcUjNTaff18_uvqy_qngnPbaaBcraRCAF0_10VVagresnprRCAF0_7qrgnvyf16UvqyVafgehzragbeRzEXAF0_11uvqy_fgevatRAF2_6VNTaff9NcaVcGlcrR:
 nop
 .data
-.globl b__MGPA7naqebvq8uneqjner4taff4I2_010OfNTaffEvyR0_AF2_9VNTaffEvyR
+.weak b__MGPA7naqebvq8uneqjner4taff4I2_010OfNTaffEvyR0_AF2_9VNTaffEvyR
 .type b__MGPA7naqebvq8uneqjner4taff4I2_010OfNTaffEvyR0_AF2_9VNTaffEvyR,%object
 b__MGPA7naqebvq8uneqjner4taff4I2_010OfNTaffEvyR0_AF2_9VNTaffEvyR:
 .space __SIZEOF_POINTER__
@@ -2548,7 +2548,7 @@
 b__MA7naqebvq8uneqjner4taff4I2_024VTaffZrnfherzragPnyyonpx19vagresnprQrfpevcgbeRAFg3__18shapgvbaVSiEXAF0_11uvqy_fgevatRRRR:
 nop
 .data
-.globl b__MGPA7naqebvq8uneqjner4taff4I2_025OfTaffZrnfherzragPnyyonpxR0_AF2_24VTaffZrnfherzragPnyyonpxR
+.weak b__MGPA7naqebvq8uneqjner4taff4I2_025OfTaffZrnfherzragPnyyonpxR0_AF2_24VTaffZrnfherzragPnyyonpxR
 .type b__MGPA7naqebvq8uneqjner4taff4I2_025OfTaffZrnfherzragPnyyonpxR0_AF2_24VTaffZrnfherzragPnyyonpxR,%object
 b__MGPA7naqebvq8uneqjner4taff4I2_025OfTaffZrnfherzragPnyyonpxR0_AF2_24VTaffZrnfherzragPnyyonpxR:
 .space __SIZEOF_POINTER__
@@ -2578,7 +2578,7 @@
 b__MA7naqebvq8uneqjner4taff4I2_09OcUjNTaff20_uvqy_qngnPbaaPybfrqRCAF0_10VVagresnprRCAF0_7qrgnvyf16UvqyVafgehzragbeR:
 nop
 .text
-.globl b__MA7naqebvq2fcVAF_8uneqjner4taff4I2_06VNTaffRRnFRBF5_
+.weak b__MA7naqebvq2fcVAF_8uneqjner4taff4I2_06VNTaffRRnFRBF5_
 .type b__MA7naqebvq2fcVAF_8uneqjner4taff4I2_06VNTaffRRnFRBF5_,%function
 b__MA7naqebvq2fcVAF_8uneqjner4taff4I2_06VNTaffRRnFRBF5_:
 nop
@@ -2653,7 +2653,7 @@
 b__MA7naqebvq8uneqjner4taff4I2_015OfNTaffPnyyonpxP1RAF_2fcVAF2_14VNTaffPnyyonpxRRR:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I2_05VTaffRAF3_4I1_05VTaffRAF4_8OcUjTaffRRRAF0_6ErgheaVAF_2fcVG_RRRRAFN_VG0_RRCXpo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I2_05VTaffRAF3_4I1_05VTaffRAF4_8OcUjTaffRRRAF0_6ErgheaVAF_2fcVG_RRRRAFN_VG0_RRCXpo
 .type b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I2_05VTaffRAF3_4I1_05VTaffRAF4_8OcUjTaffRRRAF0_6ErgheaVAF_2fcVG_RRRRAFN_VG0_RRCXpo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I2_05VTaffRAF3_4I1_05VTaffRAF4_8OcUjTaffRRRAF0_6ErgheaVAF_2fcVG_RRRRAFN_VG0_RRCXpo:
 nop
@@ -2733,7 +2733,7 @@
 b__MGIA7naqebvq8uneqjner4taff4I2_024VTaffZrnfherzragPnyyonpxR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I2_09VNTaffEvyRiRRAF_2fcVG_RRF8_
+.weak b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I2_09VNTaffEvyRiRRAF_2fcVG_RRF8_
 .type b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I2_09VNTaffEvyRiRRAF_2fcVG_RRF8_,%function
 b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I2_09VNTaffEvyRiRRAF_2fcVG_RRF8_:
 nop
@@ -2783,7 +2783,7 @@
 b__MA7naqebvq8uneqjner4taff4I2_016OcUjTaffOngpuvat5qrohtREXAF0_11uvqy_unaqyrREXAF0_8uvqy_irpVAF0_11uvqy_fgevatRRR:
 nop
 .data
-.globl b__MGPA7naqebvq8uneqjner4taff4I2_014OfTaffOngpuvatR0_AF2_13VTaffOngpuvatR
+.weak b__MGPA7naqebvq8uneqjner4taff4I2_014OfTaffOngpuvatR0_AF2_13VTaffOngpuvatR
 .type b__MGPA7naqebvq8uneqjner4taff4I2_014OfTaffOngpuvatR0_AF2_13VTaffOngpuvatR,%object
 b__MGPA7naqebvq8uneqjner4taff4I2_014OfTaffOngpuvatR0_AF2_13VTaffOngpuvatR:
 .space __SIZEOF_POINTER__
@@ -2818,7 +2818,7 @@
 b__MA7naqebvq8uneqjner4taff4I2_010VTaffQroht8pnfgSebzREXAF_2fcVAF1_4I1_010VTaffQrohtRRRo:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_4taff4I2_027OcUjTaffZrnfherzragPnyyonpxRAF4_24VTaffZrnfherzragPnyyonpxRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_4taff4I2_027OcUjTaffZrnfherzragPnyyonpxRAF4_24VTaffZrnfherzragPnyyonpxRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo
 .type b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_4taff4I2_027OcUjTaffZrnfherzragPnyyonpxRAF4_24VTaffZrnfherzragPnyyonpxRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_4taff4I2_027OcUjTaffZrnfherzragPnyyonpxRAF4_24VTaffZrnfherzragPnyyonpxRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo:
 nop
@@ -2828,7 +2828,7 @@
 b__MA7naqebvq8uneqjner4taff4I2_017OaUjNTaffPnyyonpxP1REXAF_2fcVAF2_14VNTaffPnyyonpxRRR:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I2_014VNTaffPnyyonpxRAF_4uvqy4onfr4I1_05VOnfrRAF4_17OcUjNTaffPnyyonpxRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I2_014VNTaffPnyyonpxRAF_4uvqy4onfr4I1_05VOnfrRAF4_17OcUjNTaffPnyyonpxRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo
 .type b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I2_014VNTaffPnyyonpxRAF_4uvqy4onfr4I1_05VOnfrRAF4_17OcUjNTaffPnyyonpxRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I2_014VNTaffPnyyonpxRAF_4uvqy4onfr4I1_05VOnfrRAF4_17OcUjNTaffPnyyonpxRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo:
 nop
@@ -2858,7 +2858,7 @@
 b__MA7naqebvq8uneqjner4taff4I2_021OaUjTaffPbasvthengvbaP1REXAF_2fcVAF2_18VTaffPbasvthengvbaRRR:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I2_018VTaffPbasvthengvbaRAF3_4I1_118VTaffPbasvthengvbaRAF4_21OcUjTaffPbasvthengvbaRRRAF0_6ErgheaVAF_2fcVG_RRRRAFN_VG0_RRCXpo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I2_018VTaffPbasvthengvbaRAF3_4I1_118VTaffPbasvthengvbaRAF4_21OcUjTaffPbasvthengvbaRRRAF0_6ErgheaVAF_2fcVG_RRRRAFN_VG0_RRCXpo
 .type b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I2_018VTaffPbasvthengvbaRAF3_4I1_118VTaffPbasvthengvbaRAF4_21OcUjTaffPbasvthengvbaRRRAF0_6ErgheaVAF_2fcVG_RRRRAFN_VG0_RRCXpo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I2_018VTaffPbasvthengvbaRAF3_4I1_118VTaffPbasvthengvbaRAF4_21OcUjTaffPbasvthengvbaRRRAF0_6ErgheaVAF_2fcVG_RRRRAFN_VG0_RRCXpo:
 nop
@@ -2893,7 +2893,7 @@
 b__MA7naqebvq8uneqjner4taff4I2_08OcUjTaff19frgCbfvgvbaZbqr_1_1RAF1_4I1_05VTaff16TaffCbfvgvbaZbqrRAF5_22TaffCbfvgvbaErpheeraprRwwwo:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I2_021VTaffOngpuvatPnyyonpxRiRRAF_2fcVG_RRF8_
+.weak b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I2_021VTaffOngpuvatPnyyonpxRiRRAF_2fcVG_RRF8_
 .type b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I2_021VTaffOngpuvatPnyyonpxRiRRAF_2fcVG_RRF8_,%function
 b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I2_021VTaffOngpuvatPnyyonpxRiRRAF_2fcVG_RRF8_:
 nop
@@ -2948,7 +2948,7 @@
 b__MA7naqebvq8uneqjner4taff4I2_05VTaff8pnfgSebzREXAF_2fcVAF_4uvqy4onfr4I1_05VOnfrRRRo:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_07VTaffAvRiRRAF_2fcVG_RRF8_
+.weak b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_07VTaffAvRiRRAF_2fcVG_RRF8_
 .type b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_07VTaffAvRiRRAF_2fcVG_RRF8_,%function
 b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_07VTaffAvRiRRAF_2fcVG_RRF8_:
 nop
@@ -2958,7 +2958,7 @@
 b__MGIA7naqebvq8uneqjner4taff4I2_018VTaffPbasvthengvbaR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_4taff4I2_013OcUjTaffQrohtRAF4_10VTaffQrohtRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_4taff4I2_013OcUjTaffQrohtRAF4_10VTaffQrohtRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo
 .type b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_4taff4I2_013OcUjTaffQrohtRAF4_10VTaffQrohtRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_4taff4I2_013OcUjTaffQrohtRAF4_10VTaffQrohtRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo:
 nop
@@ -3008,7 +3008,7 @@
 b__MGi0_a24_A7naqebvq8uneqjner4taff4I2_027OaUjTaffZrnfherzragPnyyonpxQ1Ri:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_:
 nop
@@ -3033,7 +3033,7 @@
 b__MA7naqebvq8uneqjner4taff4I2_016OcUjTaffPnyyonpx25taffErdhrfgYbpngvbaPo_2_0Roo:
 nop
 .data
-.globl b__MGIA7naqebvq8uneqjner4taff4I2_014OfTaffPnyyonpxR
+.weak b__MGIA7naqebvq8uneqjner4taff4I2_014OfTaffPnyyonpxR
 .type b__MGIA7naqebvq8uneqjner4taff4I2_014OfTaffPnyyonpxR,%object
 b__MGIA7naqebvq8uneqjner4taff4I2_014OfTaffPnyyonpxR:
 .space __SIZEOF_POINTER__
@@ -3093,7 +3093,7 @@
 b__MA7naqebvq8uneqjner4taff4I2_019OaUjTaffZrnfherzragP1REXAF_2fcVAF2_16VTaffZrnfherzragRRR:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I2_014VNTaffPnyyonpxRiRRAF_2fcVG_RRF8_
+.weak b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I2_014VNTaffPnyyonpxRiRRAF_2fcVG_RRF8_
 .type b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I2_014VNTaffPnyyonpxRiRRAF_2fcVG_RRF8_,%function
 b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I2_014VNTaffPnyyonpxRiRRAF_2fcVG_RRF8_:
 nop
@@ -3123,12 +3123,12 @@
 b__MA7naqebvq8uneqjner4taff4I2_015OfNTaffPnyyonpxP2RAF_2fcVAF2_14VNTaffPnyyonpxRRR:
 nop
 .text
-.globl b__MA7naqebvq2fcVAF_8uneqjner4taff4I2_016VTaffZrnfherzragRRnFRBF5_
+.weak b__MA7naqebvq2fcVAF_8uneqjner4taff4I2_016VTaffZrnfherzragRRnFRBF5_
 .type b__MA7naqebvq2fcVAF_8uneqjner4taff4I2_016VTaffZrnfherzragRRnFRBF5_,%function
 b__MA7naqebvq2fcVAF_8uneqjner4taff4I2_016VTaffZrnfherzragRRnFRBF5_:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I2_05VTaffRAF_4uvqy4onfr4I1_05VOnfrRAF4_8OcUjTaffRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I2_05VTaffRAF_4uvqy4onfr4I1_05VOnfrRAF4_8OcUjTaffRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo
 .type b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I2_05VTaffRAF_4uvqy4onfr4I1_05VOnfrRAF4_8OcUjTaffRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I2_05VTaffRAF_4uvqy4onfr4I1_05VOnfrRAF4_8OcUjTaffRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo:
 nop
@@ -3163,7 +3163,7 @@
 b__MA7naqebvq8uneqjner4taff4I2_09OcUjNTaff14qngnPbaaSnvyrqRi:
 nop
 .data
-.globl b__MGPA7naqebvq8uneqjner4taff4I2_06OfTaffR0_AF2_5VTaffR
+.weak b__MGPA7naqebvq8uneqjner4taff4I2_06OfTaffR0_AF2_5VTaffR
 .type b__MGPA7naqebvq8uneqjner4taff4I2_06OfTaffR0_AF2_5VTaffR,%object
 b__MGPA7naqebvq8uneqjner4taff4I2_06OfTaffR0_AF2_5VTaffR:
 .space __SIZEOF_POINTER__
@@ -3243,7 +3243,7 @@
 b__MA7naqebvq8uneqjner4taff4I2_018VTaffPbasvthengvba11yvaxGbQrnguREXAF_2fcVAF0_20uvqy_qrngu_erpvcvragRRRz:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I2_024VTaffZrnfherzragPnyyonpxRAF3_4I1_024VTaffZrnfherzragPnyyonpxRAF4_27OcUjTaffZrnfherzragPnyyonpxRRRAF0_6ErgheaVAF_2fcVG_RRRRAFN_VG0_RRCXpo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I2_024VTaffZrnfherzragPnyyonpxRAF3_4I1_024VTaffZrnfherzragPnyyonpxRAF4_27OcUjTaffZrnfherzragPnyyonpxRRRAF0_6ErgheaVAF_2fcVG_RRRRAFN_VG0_RRCXpo
 .type b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I2_024VTaffZrnfherzragPnyyonpxRAF3_4I1_024VTaffZrnfherzragPnyyonpxRAF4_27OcUjTaffZrnfherzragPnyyonpxRRRAF0_6ErgheaVAF_2fcVG_RRRRAFN_VG0_RRCXpo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I2_024VTaffZrnfherzragPnyyonpxRAF3_4I1_024VTaffZrnfherzragPnyyonpxRAF4_27OcUjTaffZrnfherzragPnyyonpxRRRAF0_6ErgheaVAF_2fcVG_RRRRAFN_VG0_RRCXpo:
 nop
@@ -3308,7 +3308,7 @@
 b__MGGA7naqebvq8uneqjner4taff4I2_013VTaffOngpuvatR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I2_013VTaffPnyyonpxRAF3_4I1_013VTaffPnyyonpxRAF4_16OcUjTaffPnyyonpxRRRAF0_6ErgheaVAF_2fcVG_RRRRAFN_VG0_RRCXpo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I2_013VTaffPnyyonpxRAF3_4I1_013VTaffPnyyonpxRAF4_16OcUjTaffPnyyonpxRRRAF0_6ErgheaVAF_2fcVG_RRRRAFN_VG0_RRCXpo
 .type b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I2_013VTaffPnyyonpxRAF3_4I1_013VTaffPnyyonpxRAF4_16OcUjTaffPnyyonpxRRRAF0_6ErgheaVAF_2fcVG_RRRRAFN_VG0_RRCXpo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I2_013VTaffPnyyonpxRAF3_4I1_013VTaffPnyyonpxRAF4_16OcUjTaffPnyyonpxRRRAF0_6ErgheaVAF_2fcVG_RRRRAFN_VG0_RRCXpo:
 nop
@@ -3358,7 +3358,7 @@
 b__MA7naqebvq8uneqjner4taff4I2_017OcUjNTaffPnyyonpx19_uvqy_ntaffFgnghfPoRCAF0_10VVagresnprRCAF0_7qrgnvyf16UvqyVafgehzragbeRAF2_14VNTaffPnyyonpx9NTaffGlcrRAF9_16NTaffFgnghfInyhrR:
 nop
 .data
-.globl b__MGIA7naqebvq8uneqjner4taff4I2_015OfNTaffPnyyonpxR
+.weak b__MGIA7naqebvq8uneqjner4taff4I2_015OfNTaffPnyyonpxR
 .type b__MGIA7naqebvq8uneqjner4taff4I2_015OfNTaffPnyyonpxR,%object
 b__MGIA7naqebvq8uneqjner4taff4I2_015OfNTaffPnyyonpxR:
 .space __SIZEOF_POINTER__
@@ -3403,7 +3403,7 @@
 b__MA7naqebvq8uneqjner4taff4I2_024VTaffZrnfherzragPnyyonpx21frgUNYVafgehzragngvbaRi:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_:
 nop
@@ -3428,12 +3428,12 @@
 b__MGi0_a24_A7naqebvq8uneqjner4taff4I2_012OaUjNTaffEvyQ0Ri:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_013VTaffPnyyonpxRiRRAF_2fcVG_RRF8_
+.weak b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_013VTaffPnyyonpxRiRRAF_2fcVG_RRF8_
 .type b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_013VTaffPnyyonpxRiRRAF_2fcVG_RRF8_,%function
 b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_013VTaffPnyyonpxRiRRAF_2fcVG_RRF8_:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_118VTaffPbasvthengvbaRiRRAF_2fcVG_RRF8_
+.weak b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_118VTaffPbasvthengvbaRiRRAF_2fcVG_RRF8_
 .type b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_118VTaffPbasvthengvbaRiRRAF_2fcVG_RRF8_,%function
 b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_118VTaffPbasvthengvbaRiRRAF_2fcVG_RRF8_:
 nop
@@ -3463,12 +3463,12 @@
 b__MA7naqebvq8uneqjner4taff4I2_017OaUjNTaffPnyyonpxQ0Ri:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_013VTaffOngpuvatRiRRAF_2fcVG_RRF8_
+.weak b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_013VTaffOngpuvatRiRRAF_2fcVG_RRF8_
 .type b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_013VTaffOngpuvatRiRRAF_2fcVG_RRF8_,%function
 b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_013VTaffOngpuvatRiRRAF_2fcVG_RRF8_:
 nop
 .data
-.globl b__MGIA7naqebvq8uneqjner4taff4I2_011OfTaffQrohtR
+.weak b__MGIA7naqebvq8uneqjner4taff4I2_011OfTaffQrohtR
 .type b__MGIA7naqebvq8uneqjner4taff4I2_011OfTaffQrohtR,%object
 b__MGIA7naqebvq8uneqjner4taff4I2_011OfTaffQrohtR:
 .space __SIZEOF_POINTER__
@@ -3493,7 +3493,7 @@
 b__MA7naqebvq8uneqjner4taff4I2_09OaUjNTaff12trgQrohtVasbRAFg3__18shapgvbaVSiEXAF_4uvqy4onfr4I1_09QrohtVasbRRRR:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_4taff23zrnfherzrag_pbeerpgvbaf4I1_023VZrnfherzragPbeerpgvbafRAF4_26OcUjZrnfherzragPbeerpgvbafRAF4_26OaUjZrnfherzragPbeerpgvbafRRRAF_2fcVG_RREXAF8_VAF0_7VOvaqreRRR
+.weak b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_4taff23zrnfherzrag_pbeerpgvbaf4I1_023VZrnfherzragPbeerpgvbafRAF4_26OcUjZrnfherzragPbeerpgvbafRAF4_26OaUjZrnfherzragPbeerpgvbafRRRAF_2fcVG_RREXAF8_VAF0_7VOvaqreRRR
 .type b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_4taff23zrnfherzrag_pbeerpgvbaf4I1_023VZrnfherzragPbeerpgvbafRAF4_26OcUjZrnfherzragPbeerpgvbafRAF4_26OaUjZrnfherzragPbeerpgvbafRRRAF_2fcVG_RREXAF8_VAF0_7VOvaqreRRR,%function
 b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_4taff23zrnfherzrag_pbeerpgvbaf4I1_023VZrnfherzragPbeerpgvbafRAF4_26OcUjZrnfherzragPbeerpgvbafRAF4_26OaUjZrnfherzragPbeerpgvbafRRRAF_2fcVG_RREXAF8_VAF0_7VOvaqreRRR:
 nop
@@ -3543,7 +3543,7 @@
 b__MA7naqebvq8uneqjner4taff4I2_09OcUjNTaff12trgQrohtVasbRAFg3__18shapgvbaVSiEXAF_4uvqy4onfr4I1_09QrohtVasbRRRR:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_4taff4I2_012OcUjNTaffEvyRAF4_9VNTaffEvyRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_4taff4I2_012OcUjNTaffEvyRAF4_9VNTaffEvyRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo
 .type b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_4taff4I2_012OcUjNTaffEvyRAF4_9VNTaffEvyRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_4taff4I2_012OcUjNTaffEvyRAF4_9VNTaffEvyRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo:
 nop
@@ -3553,7 +3553,7 @@
 b__MGGA7naqebvq8uneqjner4taff4I2_09VNTaffEvyR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_4taff4I2_024OcUjTaffOngpuvatPnyyonpxRAF4_21VTaffOngpuvatPnyyonpxRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_4taff4I2_024OcUjTaffOngpuvatPnyyonpxRAF4_21VTaffOngpuvatPnyyonpxRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo
 .type b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_4taff4I2_024OcUjTaffOngpuvatPnyyonpxRAF4_21VTaffOngpuvatPnyyonpxRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_4taff4I2_024OcUjTaffOngpuvatPnyyonpxRAF4_21VTaffOngpuvatPnyyonpxRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo:
 nop
@@ -3618,7 +3618,7 @@
 b__MGPA7naqebvq8uneqjner4taff4I2_018VTaffPbasvthengvbaR0_AF1_4I1_118VTaffPbasvthengvbaR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRR:
 nop
@@ -3638,7 +3638,7 @@
 b__MA7naqebvq8uneqjner4taff4I2_021OcUjTaffPbasvthengvba14vagresnprPunvaRAFg3__18shapgvbaVSiEXAF0_8uvqy_irpVAF0_11uvqy_fgevatRRRRRR:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I2_016VTaffZrnfherzragRAF3_4I1_016VTaffZrnfherzragRAF4_19OcUjTaffZrnfherzragRRRAF0_6ErgheaVAF_2fcVG_RRRRAFN_VG0_RRCXpo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I2_016VTaffZrnfherzragRAF3_4I1_016VTaffZrnfherzragRAF4_19OcUjTaffZrnfherzragRRRAF0_6ErgheaVAF_2fcVG_RRRRAFN_VG0_RRCXpo
 .type b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I2_016VTaffZrnfherzragRAF3_4I1_016VTaffZrnfherzragRAF4_19OcUjTaffZrnfherzragRRRAF0_6ErgheaVAF_2fcVG_RRRRAFN_VG0_RRCXpo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I2_016VTaffZrnfherzragRAF3_4I1_016VTaffZrnfherzragRAF4_19OcUjTaffZrnfherzragRRRAF0_6ErgheaVAF_2fcVG_RRRRAFN_VG0_RRCXpo:
 nop
@@ -3648,7 +3648,7 @@
 b__MA7naqebvq8uneqjner4taff4I2_024VTaffZrnfherzragPnyyonpx8pnfgSebzREXAF_2fcVAF1_4I1_024VTaffZrnfherzragPnyyonpxRRRo:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFT_RRECAF_15__gerr_raq_abqrVFG_RREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFT_RRECAF_15__gerr_raq_abqrVFG_RREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFT_RRECAF_15__gerr_raq_abqrVFG_RREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFT_RRECAF_15__gerr_raq_abqrVFG_RREXG_:
 nop
@@ -3708,7 +3708,7 @@
 b__MA7naqebvq8uneqjner4taff4I2_013OaUjTaffQroht12trgQrohtVasbRAFg3__18shapgvbaVSiEXAF_4uvqy4onfr4I1_09QrohtVasbRRRR:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_4taff4I2_017OcUjNTaffPnyyonpxRAF4_14VNTaffPnyyonpxRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_4taff4I2_017OcUjNTaffPnyyonpxRAF4_14VNTaffPnyyonpxRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo
 .type b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_4taff4I2_017OcUjNTaffPnyyonpxRAF4_14VNTaffPnyyonpxRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_4taff4I2_017OcUjNTaffPnyyonpxRAF4_14VNTaffPnyyonpxRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo:
 nop
@@ -3758,7 +3758,7 @@
 b__MGGA7naqebvq8uneqjner4taff4I2_016OaUjTaffPnyyonpxR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I2_018VTaffPbasvthengvbaRAF_4uvqy4onfr4I1_05VOnfrRAF4_21OcUjTaffPbasvthengvbaRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I2_018VTaffPbasvthengvbaRAF_4uvqy4onfr4I1_05VOnfrRAF4_21OcUjTaffPbasvthengvbaRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo
 .type b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I2_018VTaffPbasvthengvbaRAF_4uvqy4onfr4I1_05VOnfrRAF4_21OcUjTaffPbasvthengvbaRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I2_018VTaffPbasvthengvbaRAF_4uvqy4onfr4I1_05VOnfrRAF4_21OcUjTaffPbasvthengvbaRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo:
 nop
@@ -3768,7 +3768,7 @@
 b__MA7naqebvq8uneqjner4taff4I2_010VTaffQroht21abgvslFlfcebcfPunatrqRi:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_4taff18ivfvovyvgl_pbageby4I1_022VTaffIvfvovyvglPbagebyRAF4_25OcUjTaffIvfvovyvglPbagebyRAF4_25OaUjTaffIvfvovyvglPbagebyRRRAF_2fcVG_RREXAF8_VAF0_7VOvaqreRRR
+.weak b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_4taff18ivfvovyvgl_pbageby4I1_022VTaffIvfvovyvglPbagebyRAF4_25OcUjTaffIvfvovyvglPbagebyRAF4_25OaUjTaffIvfvovyvglPbagebyRRRAF_2fcVG_RREXAF8_VAF0_7VOvaqreRRR
 .type b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_4taff18ivfvovyvgl_pbageby4I1_022VTaffIvfvovyvglPbagebyRAF4_25OcUjTaffIvfvovyvglPbagebyRAF4_25OaUjTaffIvfvovyvglPbagebyRRRAF_2fcVG_RREXAF8_VAF0_7VOvaqreRRR,%function
 b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_4taff18ivfvovyvgl_pbageby4I1_022VTaffIvfvovyvglPbagebyRAF4_25OcUjTaffIvfvovyvglPbagebyRAF4_25OaUjTaffIvfvovyvglPbagebyRRRAF_2fcVG_RREXAF8_VAF0_7VOvaqreRRR:
 nop
@@ -3838,7 +3838,7 @@
 b__MA7naqebvq8uneqjner4taff4I2_021OcUjTaffPbasvthengvba14frgFhcyIrefvbaRw:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_017VNTaffEvyPnyyonpxRiRRAF_2fcVG_RRF8_
+.weak b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_017VNTaffEvyPnyyonpxRiRRAF_2fcVG_RRF8_
 .type b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_017VNTaffEvyPnyyonpxRiRRAF_2fcVG_RRF8_,%function
 b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_017VNTaffEvyPnyyonpxRiRRAF_2fcVG_RRF8_:
 nop
@@ -3948,7 +3948,7 @@
 b__MA7naqebvq8uneqjner4taff4I2_024OcUjTaffOngpuvatPnyyonpx21abgvslFlfcebcfPunatrqRi:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I2_013VTaffPnyyonpxRAF_4uvqy4onfr4I1_05VOnfrRAF4_16OcUjTaffPnyyonpxRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I2_013VTaffPnyyonpxRAF_4uvqy4onfr4I1_05VOnfrRAF4_16OcUjTaffPnyyonpxRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo
 .type b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I2_013VTaffPnyyonpxRAF_4uvqy4onfr4I1_05VOnfrRAF4_16OcUjTaffPnyyonpxRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I2_013VTaffPnyyonpxRAF_4uvqy4onfr4I1_05VOnfrRAF4_16OcUjTaffPnyyonpxRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo:
 nop
@@ -3998,7 +3998,7 @@
 b__MGi0_a24_A7naqebvq8uneqjner4taff4I2_016OaUjTaffPnyyonpxQ1Ri:
 nop
 .data
-.globl b__MGIA7naqebvq8uneqjner4taff4I2_019OfTaffPbasvthengvbaR
+.weak b__MGIA7naqebvq8uneqjner4taff4I2_019OfTaffPbasvthengvbaR
 .type b__MGIA7naqebvq8uneqjner4taff4I2_019OfTaffPbasvthengvbaR,%object
 b__MGIA7naqebvq8uneqjner4taff4I2_019OfTaffPbasvthengvbaR:
 .space __SIZEOF_POINTER__
@@ -4053,7 +4053,7 @@
 b__MA7naqebvq8uneqjner4taff4I2_019OaUjTaffZrnfherzrag10baGenafnpgRwEXAF0_6CnepryRCF4_wAFg3__18shapgvbaVSiEF4_RRR:
 nop
 .data
-.globl b__MGIA7naqebvq8uneqjner4taff4I2_017OfTaffZrnfherzragR
+.weak b__MGIA7naqebvq8uneqjner4taff4I2_017OfTaffZrnfherzragR
 .type b__MGIA7naqebvq8uneqjner4taff4I2_017OfTaffZrnfherzragR,%object
 b__MGIA7naqebvq8uneqjner4taff4I2_017OfTaffZrnfherzragR:
 .space __SIZEOF_POINTER__
@@ -4098,7 +4098,7 @@
 b__MA7naqebvq8uneqjner4taff4I2_016VTaffZrnfherzrag10trgFreivprREXAFg3__112onfvp_fgevatVpAF4_11pune_genvgfVpRRAF4_9nyybpngbeVpRRRRo:
 nop
 .data
-.globl b__MGPA7naqebvq8uneqjner4taff4I2_014OfTaffPnyyonpxR0_AF2_13VTaffPnyyonpxR
+.weak b__MGPA7naqebvq8uneqjner4taff4I2_014OfTaffPnyyonpxR0_AF2_13VTaffPnyyonpxR
 .type b__MGPA7naqebvq8uneqjner4taff4I2_014OfTaffPnyyonpxR0_AF2_13VTaffPnyyonpxR,%object
 b__MGPA7naqebvq8uneqjner4taff4I2_014OfTaffPnyyonpxR0_AF2_13VTaffPnyyonpxR:
 .space __SIZEOF_POINTER__
@@ -4113,7 +4113,7 @@
 b__MA7naqebvq8uneqjner4taff4I2_019OcUjTaffZrnfherzrag21frgUNYVafgehzragngvbaRi:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_4taff4I2_016OcUjTaffPnyyonpxRAF4_13VTaffPnyyonpxRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_4taff4I2_016OcUjTaffPnyyonpxRAF4_13VTaffPnyyonpxRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo
 .type b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_4taff4I2_016OcUjTaffPnyyonpxRAF4_13VTaffPnyyonpxRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_4taff4I2_016OcUjTaffPnyyonpxRAF4_13VTaffPnyyonpxRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo:
 nop
@@ -4183,7 +4183,7 @@
 b__MA7naqebvq8uneqjner4taff4I2_019OcUjTaffZrnfherzrag12trgUnfuPunvaRAFg3__18shapgvbaVSiEXAF0_8uvqy_irpVAF0_10uvqy_neenlVuYz32RWRRRRRRRR:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_4taff4I2_08OcUjTaffRAF4_5VTaffRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_4taff4I2_08OcUjTaffRAF4_5VTaffRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo
 .type b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_4taff4I2_08OcUjTaffRAF4_5VTaffRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_4taff4I2_08OcUjTaffRAF4_5VTaffRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo:
 nop
@@ -4208,7 +4208,7 @@
 b__MA7naqebvq8uneqjner4taff4I2_09OcUjNTaff9frgFreireRAF2_14VNTaffPnyyonpx9NTaffGlcrREXAF0_11uvqy_fgevatRv:
 nop
 .data
-.globl b__MGIA7naqebvq8uneqjner4taff4I2_022OfTaffOngpuvatPnyyonpxR
+.weak b__MGIA7naqebvq8uneqjner4taff4I2_022OfTaffOngpuvatPnyyonpxR
 .type b__MGIA7naqebvq8uneqjner4taff4I2_022OfTaffOngpuvatPnyyonpxR,%object
 b__MGIA7naqebvq8uneqjner4taff4I2_022OfTaffOngpuvatPnyyonpxR:
 .space __SIZEOF_POINTER__
@@ -4268,7 +4268,7 @@
 b__MGIA7naqebvq8uneqjner4taff4I2_019OaUjTaffZrnfherzragR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_015VTaffTrbsrapvatRiRRAF_2fcVG_RRF8_
+.weak b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_015VTaffTrbsrapvatRiRRAF_2fcVG_RRF8_
 .type b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_015VTaffTrbsrapvatRiRRAF_2fcVG_RRF8_,%function
 b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_015VTaffTrbsrapvatRiRRAF_2fcVG_RRF8_:
 nop
@@ -4283,7 +4283,7 @@
 b__MGGA7naqebvq8uneqjner4taff4I2_016OcUjTaffPnyyonpxR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_022VTaffAnivtngvbaZrffntrRiRRAF_2fcVG_RRF8_
+.weak b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_022VTaffAnivtngvbaZrffntrRiRRAF_2fcVG_RRF8_
 .type b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_022VTaffAnivtngvbaZrffntrRiRRAF_2fcVG_RRF8_,%function
 b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_022VTaffAnivtngvbaZrffntrRiRRAF_2fcVG_RRF8_:
 nop
@@ -4363,7 +4363,7 @@
 b__MA7naqebvq8uneqjner4taff4I2_027OcUjTaffZrnfherzragPnyyonpx19vagresnprQrfpevcgbeRAFg3__18shapgvbaVSiEXAF0_11uvqy_fgevatRRRR:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRR:
 nop
@@ -4373,7 +4373,7 @@
 b__MGIA7naqebvq8uneqjner4taff4I2_09OaUjNTaffR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGPA7naqebvq8uneqjner4taff4I2_015OfNTaffPnyyonpxR0_AF2_14VNTaffPnyyonpxR
+.weak b__MGPA7naqebvq8uneqjner4taff4I2_015OfNTaffPnyyonpxR0_AF2_14VNTaffPnyyonpxR
 .type b__MGPA7naqebvq8uneqjner4taff4I2_015OfNTaffPnyyonpxR0_AF2_14VNTaffPnyyonpxR,%object
 b__MGPA7naqebvq8uneqjner4taff4I2_015OfNTaffPnyyonpxR0_AF2_14VNTaffPnyyonpxR:
 .space __SIZEOF_POINTER__
@@ -4438,7 +4438,7 @@
 b__MGGA7naqebvq8uneqjner4taff4I2_024OaUjTaffOngpuvatPnyyonpxR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_4taff4I2_018VTaffPbasvthengvbaRAF3_21OcUjTaffPbasvthengvbaRAF3_21OaUjTaffPbasvthengvbaRRRAF_2fcVG_RREXAF7_VAF0_7VOvaqreRRR
+.weak b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_4taff4I2_018VTaffPbasvthengvbaRAF3_21OcUjTaffPbasvthengvbaRAF3_21OaUjTaffPbasvthengvbaRRRAF_2fcVG_RREXAF7_VAF0_7VOvaqreRRR
 .type b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_4taff4I2_018VTaffPbasvthengvbaRAF3_21OcUjTaffPbasvthengvbaRAF3_21OaUjTaffPbasvthengvbaRRRAF_2fcVG_RREXAF7_VAF0_7VOvaqreRRR,%function
 b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_4taff4I2_018VTaffPbasvthengvbaRAF3_21OcUjTaffPbasvthengvbaRAF3_21OaUjTaffPbasvthengvbaRRRAF_2fcVG_RREXAF7_VAF0_7VOvaqreRRR:
 nop
@@ -4503,7 +4503,7 @@
 b__MA7naqebvq8uneqjner4taff4I2_024VTaffZrnfherzragPnyyonpx24ertvfgreSbeAbgvsvpngvbafREXAFg3__112onfvp_fgevatVpAF4_11pune_genvgfVpRRAF4_9nyybpngbeVpRRRREXAF_2fcVAF_4uvqy7znantre4I1_020VFreivprAbgvsvpngvbaRRR:
 nop
 .text
-.globl b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
+.weak b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
 .type b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_,%function
 b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_:
 nop
@@ -4513,7 +4513,7 @@
 b__MA7naqebvq8uneqjner4taff4I2_022ernqRzorqqrqSebzCnepryREXAF2_9VNTaffEvy17ArgjbexNggevohgrfREXAF0_6CnepryRzz:
 nop
 .data
-.globl b__MGIA7naqebvq8uneqjner4taff4I2_010OfNTaffEvyR
+.weak b__MGIA7naqebvq8uneqjner4taff4I2_010OfNTaffEvyR
 .type b__MGIA7naqebvq8uneqjner4taff4I2_010OfNTaffEvyR,%object
 b__MGIA7naqebvq8uneqjner4taff4I2_010OfNTaffEvyR:
 .space __SIZEOF_POINTER__
@@ -4543,7 +4543,7 @@
 b__MA7naqebvq8uneqjner4taff4I2_024OcUjTaffOngpuvatPnyyonpx12trgQrohtVasbRAFg3__18shapgvbaVSiEXAF_4uvqy4onfr4I1_09QrohtVasbRRRR:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I2_021VTaffOngpuvatPnyyonpxRAF_4uvqy4onfr4I1_05VOnfrRAF4_24OcUjTaffOngpuvatPnyyonpxRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I2_021VTaffOngpuvatPnyyonpxRAF_4uvqy4onfr4I1_05VOnfrRAF4_24OcUjTaffOngpuvatPnyyonpxRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo
 .type b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I2_021VTaffOngpuvatPnyyonpxRAF_4uvqy4onfr4I1_05VOnfrRAF4_24OcUjTaffOngpuvatPnyyonpxRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I2_021VTaffOngpuvatPnyyonpxRAF_4uvqy4onfr4I1_05VOnfrRAF4_24OcUjTaffOngpuvatPnyyonpxRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo:
 nop
@@ -4648,7 +4648,7 @@
 b__MA7naqebvq8uneqjner4taff4I2_014VNTaffPnyyonpx8pnfgSebzREXAF_2fcVAF_4uvqy4onfr4I1_05VOnfrRRRo:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I2_09VNTaffEvyRAF_4uvqy4onfr4I1_05VOnfrRAF4_12OcUjNTaffEvyRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I2_09VNTaffEvyRAF_4uvqy4onfr4I1_05VOnfrRAF4_12OcUjNTaffEvyRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo
 .type b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I2_09VNTaffEvyRAF_4uvqy4onfr4I1_05VOnfrRAF4_12OcUjNTaffEvyRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I2_09VNTaffEvyRAF_4uvqy4onfr4I1_05VOnfrRAF4_12OcUjNTaffEvyRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo:
 nop
@@ -4658,7 +4658,7 @@
 b__MGPA7naqebvq8uneqjner4taff4I2_09VNTaffEvyR0_AF_4uvqy4onfr4I1_05VOnfrR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_018VTaffPbasvthengvbaRiRRAF_2fcVG_RRF8_
+.weak b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_018VTaffPbasvthengvbaRiRRAF_2fcVG_RRF8_
 .type b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_018VTaffPbasvthengvbaRiRRAF_2fcVG_RRF8_,%function
 b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_018VTaffPbasvthengvbaRiRRAF_2fcVG_RRF8_:
 nop
@@ -4668,7 +4668,7 @@
 b__MA7naqebvq8uneqjner4taff4I2_010VTaffQroht10trgFreivprREXAFg3__112onfvp_fgevatVpAF4_11pune_genvgfVpRRAF4_9nyybpngbeVpRRRRo:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_4taff4I2_014VNTaffPnyyonpxRAF3_17OcUjNTaffPnyyonpxRAF3_17OaUjNTaffPnyyonpxRRRAF_2fcVG_RREXAF7_VAF0_7VOvaqreRRR
+.weak b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_4taff4I2_014VNTaffPnyyonpxRAF3_17OcUjNTaffPnyyonpxRAF3_17OaUjNTaffPnyyonpxRRRAF_2fcVG_RREXAF7_VAF0_7VOvaqreRRR
 .type b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_4taff4I2_014VNTaffPnyyonpxRAF3_17OcUjNTaffPnyyonpxRAF3_17OaUjNTaffPnyyonpxRRRAF_2fcVG_RREXAF7_VAF0_7VOvaqreRRR,%function
 b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_4taff4I2_014VNTaffPnyyonpxRAF3_17OcUjNTaffPnyyonpxRAF3_17OaUjNTaffPnyyonpxRRRAF_2fcVG_RREXAF7_VAF0_7VOvaqreRRR:
 nop
@@ -4723,7 +4723,7 @@
 b__MA7naqebvq8uneqjner4taff4I2_014VNTaffPnyyonpx13hayvaxGbQrnguREXAF_2fcVAF0_20uvqy_qrngu_erpvcvragRRR:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_021VTaffOngpuvatPnyyonpxRiRRAF_2fcVG_RRF8_
+.weak b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_021VTaffOngpuvatPnyyonpxRiRRAF_2fcVG_RRF8_
 .type b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_021VTaffOngpuvatPnyyonpxRiRRAF_2fcVG_RRF8_,%function
 b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_021VTaffOngpuvatPnyyonpxRiRRAF_2fcVG_RRF8_:
 nop
@@ -4738,7 +4738,7 @@
 b__MA7naqebvq8uneqjner4taff4I2_08OcUjTaff25trgRkgrafvbaTaffQroht_2_0Ri:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_010VTaffQrohtRiRRAF_2fcVG_RRF8_
+.weak b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_010VTaffQrohtRiRRAF_2fcVG_RRF8_
 .type b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_010VTaffQrohtRiRRAF_2fcVG_RRF8_,%function
 b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I1_010VTaffQrohtRiRRAF_2fcVG_RRF8_:
 nop
@@ -4778,7 +4778,7 @@
 b__MA7naqebvq8uneqjner4taff4I2_016VTaffZrnfherzrag21abgvslFlfcebcfPunatrqRi:
 nop
 .data
-.globl b__MGIA7naqebvq8uneqjner4taff4I2_025OfTaffZrnfherzragPnyyonpxR
+.weak b__MGIA7naqebvq8uneqjner4taff4I2_025OfTaffZrnfherzragPnyyonpxR
 .type b__MGIA7naqebvq8uneqjner4taff4I2_025OfTaffZrnfherzragPnyyonpxR,%object
 b__MGIA7naqebvq8uneqjner4taff4I2_025OfTaffZrnfherzragPnyyonpxR:
 .space __SIZEOF_POINTER__
@@ -4818,7 +4818,7 @@
 b__MGPA7naqebvq8uneqjner4taff4I2_017OaUjNTaffPnyyonpxR0_AF0_9OUjOvaqreR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIA7naqebvq8uneqjner4taff4I2_06OfTaffR
+.weak b__MGIA7naqebvq8uneqjner4taff4I2_06OfTaffR
 .type b__MGIA7naqebvq8uneqjner4taff4I2_06OfTaffR,%object
 b__MGIA7naqebvq8uneqjner4taff4I2_06OfTaffR:
 .space __SIZEOF_POINTER__
@@ -4848,17 +4848,17 @@
 b__MA7naqebvq8uneqjner4taff4I2_027OcUjTaffZrnfherzragPnyyonpx17taffZrnfherzragPoREXAF1_4I1_124VTaffZrnfherzragPnyyonpx8TaffQngnR:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I2_013VTaffPnyyonpxRiRRAF_2fcVG_RRF8_
+.weak b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I2_013VTaffPnyyonpxRiRRAF_2fcVG_RRF8_
 .type b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I2_013VTaffPnyyonpxRiRRAF_2fcVG_RRF8_,%function
 b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I2_013VTaffPnyyonpxRiRRAF_2fcVG_RRF8_:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I2_010VTaffQrohtRAF_4uvqy4onfr4I1_05VOnfrRAF4_13OcUjTaffQrohtRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I2_010VTaffQrohtRAF_4uvqy4onfr4I1_05VOnfrRAF4_13OcUjTaffQrohtRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo
 .type b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I2_010VTaffQrohtRAF_4uvqy4onfr4I1_05VOnfrRAF4_13OcUjTaffQrohtRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I2_010VTaffQrohtRAF_4uvqy4onfr4I1_05VOnfrRAF4_13OcUjTaffQrohtRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I2_016VTaffZrnfherzragRAF3_4I1_116VTaffZrnfherzragRAF4_19OcUjTaffZrnfherzragRRRAF0_6ErgheaVAF_2fcVG_RRRRAFN_VG0_RRCXpo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I2_016VTaffZrnfherzragRAF3_4I1_116VTaffZrnfherzragRAF4_19OcUjTaffZrnfherzragRRRAF0_6ErgheaVAF_2fcVG_RRRRAFN_VG0_RRCXpo
 .type b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I2_016VTaffZrnfherzragRAF3_4I1_116VTaffZrnfherzragRAF4_19OcUjTaffZrnfherzragRRRAF0_6ErgheaVAF_2fcVG_RRRRAFN_VG0_RRCXpo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff4I2_016VTaffZrnfherzragRAF3_4I1_116VTaffZrnfherzragRAF4_19OcUjTaffZrnfherzragRRRAF0_6ErgheaVAF_2fcVG_RRRRAFN_VG0_RRCXpo:
 nop
@@ -4873,7 +4873,7 @@
 b__MA7naqebvq8uneqjner4taff4I2_012OcUjNTaffEvy18hcqngrArgjbexFgngrRoAF1_4I1_09VNTaffEvy11ArgjbexGlcrRo:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I2_013VTaffOngpuvatRiRRAF_2fcVG_RRF8_
+.weak b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I2_013VTaffOngpuvatRiRRAF_2fcVG_RRF8_
 .type b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I2_013VTaffOngpuvatRiRRAF_2fcVG_RRF8_,%function
 b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff4I2_013VTaffOngpuvatRiRRAF_2fcVG_RRF8_:
 nop
@@ -4893,7 +4893,7 @@
 b__MA7naqebvq8uneqjner4taff4I2_06VNTaff13gelTrgFreivprREXAFg3__112onfvp_fgevatVpAF4_11pune_genvgfVpRRAF4_9nyybpngbeVpRRRRo:
 nop
 .text
-.globl b__MAFg3__16irpgbeVCiAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_
+.weak b__MAFg3__16irpgbeVCiAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_
 .type b__MAFg3__16irpgbeVCiAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_,%function
 b__MAFg3__16irpgbeVCiAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_:
 nop
@@ -4918,7 +4918,7 @@
 b__MA7naqebvq8uneqjner4taff4I2_016OcUjTaffPnyyonpx24_uvqy_taffYbpngvbaPo_2_0RCAF0_10VVagresnprRCAF0_7qrgnvyf16UvqyVafgehzragbeREXAF2_12TaffYbpngvbaR:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_4taff4I2_024VTaffZrnfherzragPnyyonpxRAF3_27OcUjTaffZrnfherzragPnyyonpxRAF3_27OaUjTaffZrnfherzragPnyyonpxRRRAF_2fcVG_RREXAF7_VAF0_7VOvaqreRRR
+.weak b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_4taff4I2_024VTaffZrnfherzragPnyyonpxRAF3_27OcUjTaffZrnfherzragPnyyonpxRAF3_27OaUjTaffZrnfherzragPnyyonpxRRRAF_2fcVG_RREXAF7_VAF0_7VOvaqreRRR
 .type b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_4taff4I2_024VTaffZrnfherzragPnyyonpxRAF3_27OcUjTaffZrnfherzragPnyyonpxRAF3_27OaUjTaffZrnfherzragPnyyonpxRRRAF_2fcVG_RREXAF7_VAF0_7VOvaqreRRR,%function
 b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_4taff4I2_024VTaffZrnfherzragPnyyonpxRAF3_27OcUjTaffZrnfherzragPnyyonpxRAF3_27OaUjTaffZrnfherzragPnyyonpxRRRAF_2fcVG_RREXAF7_VAF0_7VOvaqreRRR:
 nop
diff --git a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_042.S b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_042.S
index 5798fd7..e3eaa94 100644
--- a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_042.S
+++ b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_042.S
@@ -28,7 +28,7 @@
 b__MA7naqebvq8uneqjner4taff23zrnfherzrag_pbeerpgvbaf4I1_026OcUjZrnfherzragPbeerpgvbaf20_uvqy_frgPbeerpgvbafRCAF0_10VVagresnprRCAF0_7qrgnvyf16UvqyVafgehzragbeREXAF3_22ZrnfherzragPbeerpgvbafR:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFR_RRECAF_15__gerr_raq_abqrVFE_RREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFR_RRECAF_15__gerr_raq_abqrVFE_RREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFR_RRECAF_15__gerr_raq_abqrVFE_RREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFR_RRECAF_15__gerr_raq_abqrVFE_RREXG_:
 nop
@@ -118,7 +118,7 @@
 b__MA7naqebvq8uneqjner4taff23zrnfherzrag_pbeerpgvbaf4I1_034OcUjZrnfherzragPbeerpgvbafPnyyonpxP1REXAF_2fcVAF0_7VOvaqreRRR:
 nop
 .text
-.globl b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
+.weak b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
 .type b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_,%function
 b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_:
 nop
@@ -263,7 +263,7 @@
 b__MA7naqebvq8uneqjner4taff23zrnfherzrag_pbeerpgvbaf4I1_026OaUjZrnfherzragPbeerpgvbaf17_uvqy_frgPnyyonpxRCAF_4uvqy4onfr4I1_08OaUjOnfrREXAF0_6CnepryRCFN_AFg3__18shapgvbaVSiEFN_RRR:
 nop
 .text
-.globl b__MAXFg3__18shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF7_F7_F7_CAF_6irpgbeVCiAF_9nyybpngbeVF9_RRRRRRpyRF5_F7_F7_F7_F7_FQ_
+.weak b__MAXFg3__18shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF7_F7_F7_CAF_6irpgbeVCiAF_9nyybpngbeVF9_RRRRRRpyRF5_F7_F7_F7_F7_FQ_
 .type b__MAXFg3__18shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF7_F7_F7_CAF_6irpgbeVCiAF_9nyybpngbeVF9_RRRRRRpyRF5_F7_F7_F7_F7_FQ_,%function
 b__MAXFg3__18shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF7_F7_F7_CAF_6irpgbeVCiAF_9nyybpngbeVF9_RRRRRRpyRF5_F7_F7_F7_F7_FQ_:
 nop
@@ -278,7 +278,7 @@
 b__MGua32_A7naqebvq8uneqjner4taff23zrnfherzrag_pbeerpgvbaf4I1_034OaUjZrnfherzragPbeerpgvbafPnyyonpxQ1Ri:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_4taff23zrnfherzrag_pbeerpgvbaf4I1_031VZrnfherzragPbeerpgvbafPnyyonpxRAF4_34OcUjZrnfherzragPbeerpgvbafPnyyonpxRAF4_34OaUjZrnfherzragPbeerpgvbafPnyyonpxRRRAF_2fcVG_RREXAF8_VAF0_7VOvaqreRRR
+.weak b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_4taff23zrnfherzrag_pbeerpgvbaf4I1_031VZrnfherzragPbeerpgvbafPnyyonpxRAF4_34OcUjZrnfherzragPbeerpgvbafPnyyonpxRAF4_34OaUjZrnfherzragPbeerpgvbafPnyyonpxRRRAF_2fcVG_RREXAF8_VAF0_7VOvaqreRRR
 .type b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_4taff23zrnfherzrag_pbeerpgvbaf4I1_031VZrnfherzragPbeerpgvbafPnyyonpxRAF4_34OcUjZrnfherzragPbeerpgvbafPnyyonpxRAF4_34OaUjZrnfherzragPbeerpgvbafPnyyonpxRRRAF_2fcVG_RREXAF8_VAF0_7VOvaqreRRR,%function
 b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_4taff23zrnfherzrag_pbeerpgvbaf4I1_031VZrnfherzragPbeerpgvbafPnyyonpxRAF4_34OcUjZrnfherzragPbeerpgvbafPnyyonpxRAF4_34OaUjZrnfherzragPbeerpgvbafPnyyonpxRRRAF_2fcVG_RREXAF8_VAF0_7VOvaqreRRR:
 nop
@@ -293,7 +293,7 @@
 b__MGPA7naqebvq8uneqjner4taff23zrnfherzrag_pbeerpgvbaf4I1_034OcUjZrnfherzragPbeerpgvbafPnyyonpxR16_AF0_11OcUjErsOnfrR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_8uneqjner27uvqy_ovaqre_qrngu_erpvcvragRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_
+.weak b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_8uneqjner27uvqy_ovaqre_qrngu_erpvcvragRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_
 .type b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_8uneqjner27uvqy_ovaqre_qrngu_erpvcvragRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_,%function
 b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_8uneqjner27uvqy_ovaqre_qrngu_erpvcvragRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_:
 nop
@@ -368,7 +368,7 @@
 b__MA7naqebvq8uneqjner4taff23zrnfherzrag_pbeerpgvbaf4I1_031VZrnfherzragPbeerpgvbafPnyyonpx10qrfpevcgbeR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGPA7naqebvq8uneqjner4taff23zrnfherzrag_pbeerpgvbaf4I1_024OfZrnfherzragPbeerpgvbafR0_AF3_23VZrnfherzragPbeerpgvbafR
+.weak b__MGPA7naqebvq8uneqjner4taff23zrnfherzrag_pbeerpgvbaf4I1_024OfZrnfherzragPbeerpgvbafR0_AF3_23VZrnfherzragPbeerpgvbafR
 .type b__MGPA7naqebvq8uneqjner4taff23zrnfherzrag_pbeerpgvbaf4I1_024OfZrnfherzragPbeerpgvbafR0_AF3_23VZrnfherzragPbeerpgvbafR,%object
 b__MGPA7naqebvq8uneqjner4taff23zrnfherzrag_pbeerpgvbaf4I1_024OfZrnfherzragPbeerpgvbafR0_AF3_23VZrnfherzragPbeerpgvbafR:
 .space __SIZEOF_POINTER__
@@ -443,7 +443,7 @@
 b__MA7naqebvq8uneqjner4taff23zrnfherzrag_pbeerpgvbaf4I1_034OcUjZrnfherzragPbeerpgvbafPnyyonpx11yvaxGbQrnguREXAF_2fcVAF0_20uvqy_qrngu_erpvcvragRRRz:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff23zrnfherzrag_pbeerpgvbaf4I1_031VZrnfherzragPbeerpgvbafPnyyonpxRAF_4uvqy4onfr4I1_05VOnfrRAF5_34OcUjZrnfherzragPbeerpgvbafPnyyonpxRRRAF0_6ErgheaVAF_2fcVG_RRRRAFQ_VG0_RRCXpo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff23zrnfherzrag_pbeerpgvbaf4I1_031VZrnfherzragPbeerpgvbafPnyyonpxRAF_4uvqy4onfr4I1_05VOnfrRAF5_34OcUjZrnfherzragPbeerpgvbafPnyyonpxRRRAF0_6ErgheaVAF_2fcVG_RRRRAFQ_VG0_RRCXpo
 .type b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff23zrnfherzrag_pbeerpgvbaf4I1_031VZrnfherzragPbeerpgvbafPnyyonpxRAF_4uvqy4onfr4I1_05VOnfrRAF5_34OcUjZrnfherzragPbeerpgvbafPnyyonpxRRRAF0_6ErgheaVAF_2fcVG_RRRRAFQ_VG0_RRCXpo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff23zrnfherzrag_pbeerpgvbaf4I1_031VZrnfherzragPbeerpgvbafPnyyonpxRAF_4uvqy4onfr4I1_05VOnfrRAF5_34OcUjZrnfherzragPbeerpgvbafPnyyonpxRRRAF0_6ErgheaVAF_2fcVG_RRRRAFQ_VG0_RRCXpo:
 nop
@@ -458,7 +458,7 @@
 b__MA7naqebvq8uneqjner4taff23zrnfherzrag_pbeerpgvbaf4I1_026OaUjZrnfherzragPbeerpgvbafQ1Ri:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRR:
 nop
@@ -478,17 +478,17 @@
 b__MA7naqebvq8uneqjner4taff23zrnfherzrag_pbeerpgvbaf4I1_024OfZrnfherzragPbeerpgvbafP1RAF_2fcVAF3_23VZrnfherzragPbeerpgvbafRRR:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff23zrnfherzrag_pbeerpgvbaf4I1_023VZrnfherzragPbeerpgvbafRAF_4uvqy4onfr4I1_05VOnfrRAF5_26OcUjZrnfherzragPbeerpgvbafRRRAF0_6ErgheaVAF_2fcVG_RRRRAFQ_VG0_RRCXpo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff23zrnfherzrag_pbeerpgvbaf4I1_023VZrnfherzragPbeerpgvbafRAF_4uvqy4onfr4I1_05VOnfrRAF5_26OcUjZrnfherzragPbeerpgvbafRRRAF0_6ErgheaVAF_2fcVG_RRRRAFQ_VG0_RRCXpo
 .type b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff23zrnfherzrag_pbeerpgvbaf4I1_023VZrnfherzragPbeerpgvbafRAF_4uvqy4onfr4I1_05VOnfrRAF5_26OcUjZrnfherzragPbeerpgvbafRRRAF0_6ErgheaVAF_2fcVG_RRRRAFQ_VG0_RRCXpo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff23zrnfherzrag_pbeerpgvbaf4I1_023VZrnfherzragPbeerpgvbafRAF_4uvqy4onfr4I1_05VOnfrRAF5_26OcUjZrnfherzragPbeerpgvbafRRRAF0_6ErgheaVAF_2fcVG_RRRRAFQ_VG0_RRCXpo:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFT_RRECAF_15__gerr_raq_abqrVFG_RREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFT_RRECAF_15__gerr_raq_abqrVFG_RREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFT_RRECAF_15__gerr_raq_abqrVFG_RREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFT_RRECAF_15__gerr_raq_abqrVFG_RREXG_:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_:
 nop
@@ -508,12 +508,12 @@
 b__MA7naqebvq8uneqjner4taff23zrnfherzrag_pbeerpgvbaf4I1_023VZrnfherzragPbeerpgvbaf8pnfgSebzREXAF_2fcVAF_4uvqy4onfr4I1_05VOnfrRRRo:
 nop
 .text
-.globl b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
+.weak b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
 .type b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_,%function
 b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_:
 nop
 .data
-.globl b__MGIA7naqebvq8uneqjner4taff23zrnfherzrag_pbeerpgvbaf4I1_024OfZrnfherzragPbeerpgvbafR
+.weak b__MGIA7naqebvq8uneqjner4taff23zrnfherzrag_pbeerpgvbaf4I1_024OfZrnfherzragPbeerpgvbafR
 .type b__MGIA7naqebvq8uneqjner4taff23zrnfherzrag_pbeerpgvbaf4I1_024OfZrnfherzragPbeerpgvbafR,%object
 b__MGIA7naqebvq8uneqjner4taff23zrnfherzrag_pbeerpgvbaf4I1_024OfZrnfherzragPbeerpgvbafR:
 .space __SIZEOF_POINTER__
@@ -663,12 +663,12 @@
 b__MA7naqebvq8uneqjner4taff23zrnfherzrag_pbeerpgvbaf4I1_026OcUjZrnfherzragPbeerpgvbaf4cvatRi:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_4taff23zrnfherzrag_pbeerpgvbaf4I1_026OcUjZrnfherzragPbeerpgvbafRAF5_23VZrnfherzragPbeerpgvbafRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFO_11pune_genvgfVpRRAFO_9nyybpngbeVpRRRRoo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_4taff23zrnfherzrag_pbeerpgvbaf4I1_026OcUjZrnfherzragPbeerpgvbafRAF5_23VZrnfherzragPbeerpgvbafRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFO_11pune_genvgfVpRRAFO_9nyybpngbeVpRRRRoo
 .type b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_4taff23zrnfherzrag_pbeerpgvbaf4I1_026OcUjZrnfherzragPbeerpgvbafRAF5_23VZrnfherzragPbeerpgvbafRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFO_11pune_genvgfVpRRAFO_9nyybpngbeVpRRRRoo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_4taff23zrnfherzrag_pbeerpgvbaf4I1_026OcUjZrnfherzragPbeerpgvbafRAF5_23VZrnfherzragPbeerpgvbafRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFO_11pune_genvgfVpRRAFO_9nyybpngbeVpRRRRoo:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRP2REXFU_
+.weak b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRP2REXFU_
 .type b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRP2REXFU_,%function
 b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRP2REXFU_:
 nop
@@ -678,7 +678,7 @@
 b__MA7naqebvq8uneqjner4taff23zrnfherzrag_pbeerpgvbaf4I1_031VZrnfherzragPbeerpgvbafPnyyonpx8pnfgSebzREXAF_2fcVF4_RRo:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_4taff23zrnfherzrag_pbeerpgvbaf4I1_034OcUjZrnfherzragPbeerpgvbafPnyyonpxRAF5_31VZrnfherzragPbeerpgvbafPnyyonpxRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFO_11pune_genvgfVpRRAFO_9nyybpngbeVpRRRRoo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_4taff23zrnfherzrag_pbeerpgvbaf4I1_034OcUjZrnfherzragPbeerpgvbafPnyyonpxRAF5_31VZrnfherzragPbeerpgvbafPnyyonpxRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFO_11pune_genvgfVpRRAFO_9nyybpngbeVpRRRRoo
 .type b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_4taff23zrnfherzrag_pbeerpgvbaf4I1_034OcUjZrnfherzragPbeerpgvbafPnyyonpxRAF5_31VZrnfherzragPbeerpgvbafPnyyonpxRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFO_11pune_genvgfVpRRAFO_9nyybpngbeVpRRRRoo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_4taff23zrnfherzrag_pbeerpgvbaf4I1_034OcUjZrnfherzragPbeerpgvbafPnyyonpxRAF5_31VZrnfherzragPbeerpgvbafPnyyonpxRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFO_11pune_genvgfVpRRAFO_9nyybpngbeVpRRRRoo:
 nop
@@ -693,7 +693,7 @@
 b__MA7naqebvq8uneqjner4taff23zrnfherzrag_pbeerpgvbaf4I1_023VZrnfherzragPbeerpgvbaf24ertvfgreSbeAbgvsvpngvbafREXAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRREXAF_2fcVAF_4uvqy7znantre4I1_020VFreivprAbgvsvpngvbaRRR:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_:
 nop
@@ -703,7 +703,7 @@
 b__MA7naqebvq8uneqjner4taff23zrnfherzrag_pbeerpgvbaf4I1_031VZrnfherzragPbeerpgvbafPnyyonpx12trgQrohtVasbRAFg3__18shapgvbaVSiEXAF_4uvqy4onfr4I1_09QrohtVasbRRRR:
 nop
 .data
-.globl b__MGIA7naqebvq8uneqjner4taff23zrnfherzrag_pbeerpgvbaf4I1_032OfZrnfherzragPbeerpgvbafPnyyonpxR
+.weak b__MGIA7naqebvq8uneqjner4taff23zrnfherzrag_pbeerpgvbaf4I1_032OfZrnfherzragPbeerpgvbafPnyyonpxR
 .type b__MGIA7naqebvq8uneqjner4taff23zrnfherzrag_pbeerpgvbaf4I1_032OfZrnfherzragPbeerpgvbafPnyyonpxR,%object
 b__MGIA7naqebvq8uneqjner4taff23zrnfherzrag_pbeerpgvbaf4I1_032OfZrnfherzragPbeerpgvbafPnyyonpxR:
 .space __SIZEOF_POINTER__
@@ -733,12 +733,12 @@
 b__MGPA7naqebvq8uneqjner4taff23zrnfherzrag_pbeerpgvbaf4I1_034OcUjZrnfherzragPbeerpgvbafPnyyonpxR0_AF3_31VZrnfherzragPbeerpgvbafPnyyonpxR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff23zrnfherzrag_pbeerpgvbaf4I1_031VZrnfherzragPbeerpgvbafPnyyonpxRiRRAF_2fcVG_RRF9_
+.weak b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff23zrnfherzrag_pbeerpgvbaf4I1_031VZrnfherzragPbeerpgvbafPnyyonpxRiRRAF_2fcVG_RRF9_
 .type b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff23zrnfherzrag_pbeerpgvbaf4I1_031VZrnfherzragPbeerpgvbafPnyyonpxRiRRAF_2fcVG_RRF9_,%function
 b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff23zrnfherzrag_pbeerpgvbaf4I1_031VZrnfherzragPbeerpgvbafPnyyonpxRiRRAF_2fcVG_RRF9_:
 nop
 .text
-.globl b__MAFg3__16irpgbeVCiAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_
+.weak b__MAFg3__16irpgbeVCiAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_
 .type b__MAFg3__16irpgbeVCiAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_,%function
 b__MAFg3__16irpgbeVCiAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_:
 nop
@@ -768,7 +768,7 @@
 b__MA7naqebvq8uneqjner4taff23zrnfherzrag_pbeerpgvbaf4I1_026OcUjZrnfherzragPbeerpgvbaf21abgvslFlfcebcfPunatrqRi:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRR:
 nop
@@ -783,7 +783,7 @@
 b__MA7naqebvq8uneqjner4taff23zrnfherzrag_pbeerpgvbaf4I1_031VZrnfherzragPbeerpgvbafPnyyonpx24ertvfgreSbeAbgvsvpngvbafREXAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRREXAF_2fcVAF_4uvqy7znantre4I1_020VFreivprAbgvsvpngvbaRRR:
 nop
 .data
-.globl b__MGPA7naqebvq8uneqjner4taff23zrnfherzrag_pbeerpgvbaf4I1_032OfZrnfherzragPbeerpgvbafPnyyonpxR0_AF3_31VZrnfherzragPbeerpgvbafPnyyonpxR
+.weak b__MGPA7naqebvq8uneqjner4taff23zrnfherzrag_pbeerpgvbaf4I1_032OfZrnfherzragPbeerpgvbafPnyyonpxR0_AF3_31VZrnfherzragPbeerpgvbafPnyyonpxR
 .type b__MGPA7naqebvq8uneqjner4taff23zrnfherzrag_pbeerpgvbaf4I1_032OfZrnfherzragPbeerpgvbafPnyyonpxR0_AF3_31VZrnfherzragPbeerpgvbafPnyyonpxR,%object
 b__MGPA7naqebvq8uneqjner4taff23zrnfherzrag_pbeerpgvbaf4I1_032OfZrnfherzragPbeerpgvbafPnyyonpxR0_AF3_31VZrnfherzragPbeerpgvbafPnyyonpxR:
 .space __SIZEOF_POINTER__
diff --git a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_043.S b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_043.S
index d1e9f50..c15d6d0 100644
--- a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_043.S
+++ b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_043.S
@@ -8,7 +8,7 @@
 b__MA7naqebvq8uneqjner4taff18ivfvovyvgl_pbageby4I1_025OaUjTaffIvfvovyvglPbageby17_uvqy_frgPnyyonpxRCAF_4uvqy4onfr4I1_08OaUjOnfrREXAF0_6CnepryRCFN_AFg3__18shapgvbaVSiEFN_RRR:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_:
 nop
@@ -18,7 +18,7 @@
 b__MA7naqebvq8uneqjner4taff18ivfvovyvgl_pbageby4I1_030VTaffIvfvovyvglPbagebyPnyyonpx8pnfgSebzREXAF_2fcVAF_4uvqy4onfr4I1_05VOnfrRRRo:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_:
 nop
@@ -33,7 +33,7 @@
 b__MA7naqebvq8uneqjner4taff18ivfvovyvgl_pbageby4I1_033OcUjTaffIvfvovyvglPbagebyPnyyonpx5qrohtREXAF0_11uvqy_unaqyrREXAF0_8uvqy_irpVAF0_11uvqy_fgevatRRR:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff18ivfvovyvgl_pbageby4I1_030VTaffIvfvovyvglPbagebyPnyyonpxRiRRAF_2fcVG_RRF9_
+.weak b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff18ivfvovyvgl_pbageby4I1_030VTaffIvfvovyvglPbagebyPnyyonpxRiRRAF_2fcVG_RRF9_
 .type b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff18ivfvovyvgl_pbageby4I1_030VTaffIvfvovyvglPbagebyPnyyonpxRiRRAF_2fcVG_RRF9_,%function
 b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_4taff18ivfvovyvgl_pbageby4I1_030VTaffIvfvovyvglPbagebyPnyyonpxRiRRAF_2fcVG_RRF9_:
 nop
@@ -88,7 +88,7 @@
 b__MA7naqebvq8uneqjner4taff18ivfvovyvgl_pbageby4I1_023OfTaffIvfvovyvglPbagebyP2RAF_2fcVAF3_22VTaffIvfvovyvglPbagebyRRR:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRR:
 nop
@@ -108,7 +108,7 @@
 b__MGi0_a40_A7naqebvq8uneqjner4taff18ivfvovyvgl_pbageby4I1_033OcUjTaffIvfvovyvglPbagebyPnyyonpx15baYnfgFgebatErsRCXi:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_4taff18ivfvovyvgl_pbageby4I1_030VTaffIvfvovyvglPbagebyPnyyonpxRAF4_33OcUjTaffIvfvovyvglPbagebyPnyyonpxRAF4_33OaUjTaffIvfvovyvglPbagebyPnyyonpxRRRAF_2fcVG_RREXAF8_VAF0_7VOvaqreRRR
+.weak b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_4taff18ivfvovyvgl_pbageby4I1_030VTaffIvfvovyvglPbagebyPnyyonpxRAF4_33OcUjTaffIvfvovyvglPbagebyPnyyonpxRAF4_33OaUjTaffIvfvovyvglPbagebyPnyyonpxRRRAF_2fcVG_RREXAF8_VAF0_7VOvaqreRRR
 .type b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_4taff18ivfvovyvgl_pbageby4I1_030VTaffIvfvovyvglPbagebyPnyyonpxRAF4_33OcUjTaffIvfvovyvglPbagebyPnyyonpxRAF4_33OaUjTaffIvfvovyvglPbagebyPnyyonpxRRRAF_2fcVG_RREXAF8_VAF0_7VOvaqreRRR,%function
 b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_4taff18ivfvovyvgl_pbageby4I1_030VTaffIvfvovyvglPbagebyPnyyonpxRAF4_33OcUjTaffIvfvovyvglPbagebyPnyyonpxRAF4_33OaUjTaffIvfvovyvglPbagebyPnyyonpxRRRAF_2fcVG_RREXAF8_VAF0_7VOvaqreRRR:
 nop
@@ -128,7 +128,7 @@
 b__MA7naqebvq8uneqjner4taff18ivfvovyvgl_pbageby4I1_030VTaffIvfvovyvglPbagebyPnyyonpx5qrohtREXAF0_11uvqy_unaqyrREXAF0_8uvqy_irpVAF0_11uvqy_fgevatRRR:
 nop
 .data
-.globl b__MGPA7naqebvq8uneqjner4taff18ivfvovyvgl_pbageby4I1_031OfTaffIvfvovyvglPbagebyPnyyonpxR0_AF3_30VTaffIvfvovyvglPbagebyPnyyonpxR
+.weak b__MGPA7naqebvq8uneqjner4taff18ivfvovyvgl_pbageby4I1_031OfTaffIvfvovyvglPbagebyPnyyonpxR0_AF3_30VTaffIvfvovyvglPbagebyPnyyonpxR
 .type b__MGPA7naqebvq8uneqjner4taff18ivfvovyvgl_pbageby4I1_031OfTaffIvfvovyvglPbagebyPnyyonpxR0_AF3_30VTaffIvfvovyvglPbagebyPnyyonpxR,%object
 b__MGPA7naqebvq8uneqjner4taff18ivfvovyvgl_pbageby4I1_031OfTaffIvfvovyvglPbagebyPnyyonpxR0_AF3_30VTaffIvfvovyvglPbagebyPnyyonpxR:
 .space __SIZEOF_POINTER__
@@ -163,7 +163,7 @@
 b__MA7naqebvq8uneqjner4taff18ivfvovyvgl_pbageby4I1_025OcUjTaffIvfvovyvglPbageby12trgQrohtVasbRAFg3__18shapgvbaVSiEXAF_4uvqy4onfr4I1_09QrohtVasbRRRR:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRP2REXFU_
+.weak b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRP2REXFU_
 .type b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRP2REXFU_,%function
 b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRP2REXFU_:
 nop
@@ -213,7 +213,7 @@
 b__MA7naqebvq8uneqjner4taff18ivfvovyvgl_pbageby4I1_022VTaffIvfvovyvglPbageby13gelTrgFreivprREXAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRRo:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFT_RRECAF_15__gerr_raq_abqrVFG_RREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFT_RRECAF_15__gerr_raq_abqrVFG_RREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFT_RRECAF_15__gerr_raq_abqrVFG_RREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFT_RRECAF_15__gerr_raq_abqrVFG_RREXG_:
 nop
@@ -243,12 +243,12 @@
 b__MA7naqebvq8uneqjner4taff18ivfvovyvgl_pbageby4I1_023OfTaffIvfvovyvglPbagebyP1RAF_2fcVAF3_22VTaffIvfvovyvglPbagebyRRR:
 nop
 .text
-.globl b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
+.weak b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
 .type b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_,%function
 b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRR:
 nop
@@ -283,7 +283,7 @@
 b__MA7naqebvq8uneqjner4taff18ivfvovyvgl_pbageby4I1_033OaUjTaffIvfvovyvglPbagebyPnyyonpxP1REXAF_2fcVAF3_30VTaffIvfvovyvglPbagebyPnyyonpxRRR:
 nop
 .data
-.globl b__MGIA7naqebvq8uneqjner4taff18ivfvovyvgl_pbageby4I1_031OfTaffIvfvovyvglPbagebyPnyyonpxR
+.weak b__MGIA7naqebvq8uneqjner4taff18ivfvovyvgl_pbageby4I1_031OfTaffIvfvovyvglPbagebyPnyyonpxR
 .type b__MGIA7naqebvq8uneqjner4taff18ivfvovyvgl_pbageby4I1_031OfTaffIvfvovyvglPbagebyPnyyonpxR,%object
 b__MGIA7naqebvq8uneqjner4taff18ivfvovyvgl_pbageby4I1_031OfTaffIvfvovyvglPbagebyPnyyonpxR:
 .space __SIZEOF_POINTER__
@@ -298,7 +298,7 @@
 b__MA7naqebvq8uneqjner4taff18ivfvovyvgl_pbageby4I1_025OaUjTaffIvfvovyvglPbageby12trgQrohtVasbRAFg3__18shapgvbaVSiEXAF_4uvqy4onfr4I1_09QrohtVasbRRRR:
 nop
 .data
-.globl b__MGPA7naqebvq8uneqjner4taff18ivfvovyvgl_pbageby4I1_023OfTaffIvfvovyvglPbagebyR0_AF3_22VTaffIvfvovyvglPbagebyR
+.weak b__MGPA7naqebvq8uneqjner4taff18ivfvovyvgl_pbageby4I1_023OfTaffIvfvovyvglPbagebyR0_AF3_22VTaffIvfvovyvglPbagebyR
 .type b__MGPA7naqebvq8uneqjner4taff18ivfvovyvgl_pbageby4I1_023OfTaffIvfvovyvglPbagebyR0_AF3_22VTaffIvfvovyvglPbagebyR,%object
 b__MGPA7naqebvq8uneqjner4taff18ivfvovyvgl_pbageby4I1_023OfTaffIvfvovyvglPbagebyR0_AF3_22VTaffIvfvovyvglPbagebyR:
 .space __SIZEOF_POINTER__
@@ -373,7 +373,7 @@
 b__MA7naqebvq8uneqjner4taff18ivfvovyvgl_pbageby4I1_022VTaffIvfvovyvglPbageby5qrohtREXAF0_11uvqy_unaqyrREXAF0_8uvqy_irpVAF0_11uvqy_fgevatRRR:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff18ivfvovyvgl_pbageby4I1_022VTaffIvfvovyvglPbagebyRAF_4uvqy4onfr4I1_05VOnfrRAF5_25OcUjTaffIvfvovyvglPbagebyRRRAF0_6ErgheaVAF_2fcVG_RRRRAFQ_VG0_RRCXpo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff18ivfvovyvgl_pbageby4I1_022VTaffIvfvovyvglPbagebyRAF_4uvqy4onfr4I1_05VOnfrRAF5_25OcUjTaffIvfvovyvglPbagebyRRRAF0_6ErgheaVAF_2fcVG_RRRRAFQ_VG0_RRCXpo
 .type b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff18ivfvovyvgl_pbageby4I1_022VTaffIvfvovyvglPbagebyRAF_4uvqy4onfr4I1_05VOnfrRAF5_25OcUjTaffIvfvovyvglPbagebyRRRAF0_6ErgheaVAF_2fcVG_RRRRAFQ_VG0_RRCXpo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff18ivfvovyvgl_pbageby4I1_022VTaffIvfvovyvglPbagebyRAF_4uvqy4onfr4I1_05VOnfrRAF5_25OcUjTaffIvfvovyvglPbagebyRRRAF0_6ErgheaVAF_2fcVG_RRRRAFQ_VG0_RRCXpo:
 nop
@@ -383,7 +383,7 @@
 b__MGPA7naqebvq8uneqjner4taff18ivfvovyvgl_pbageby4I1_025OaUjTaffIvfvovyvglPbagebyR0_AF0_7VOvaqreR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff18ivfvovyvgl_pbageby4I1_030VTaffIvfvovyvglPbagebyPnyyonpxRAF_4uvqy4onfr4I1_05VOnfrRAF5_33OcUjTaffIvfvovyvglPbagebyPnyyonpxRRRAF0_6ErgheaVAF_2fcVG_RRRRAFQ_VG0_RRCXpo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff18ivfvovyvgl_pbageby4I1_030VTaffIvfvovyvglPbagebyPnyyonpxRAF_4uvqy4onfr4I1_05VOnfrRAF5_33OcUjTaffIvfvovyvglPbagebyPnyyonpxRRRAF0_6ErgheaVAF_2fcVG_RRRRAFQ_VG0_RRCXpo
 .type b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff18ivfvovyvgl_pbageby4I1_030VTaffIvfvovyvglPbagebyPnyyonpxRAF_4uvqy4onfr4I1_05VOnfrRAF5_33OcUjTaffIvfvovyvglPbagebyPnyyonpxRRRAF0_6ErgheaVAF_2fcVG_RRRRAFQ_VG0_RRCXpo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_4taff18ivfvovyvgl_pbageby4I1_030VTaffIvfvovyvglPbagebyPnyyonpxRAF_4uvqy4onfr4I1_05VOnfrRAF5_33OcUjTaffIvfvovyvglPbagebyPnyyonpxRRRAF0_6ErgheaVAF_2fcVG_RRRRAFQ_VG0_RRCXpo:
 nop
@@ -423,12 +423,12 @@
 b__MA7naqebvq8uneqjner4taff18ivfvovyvgl_pbageby4I1_025OaUjTaffIvfvovyvglPbagebyP2REXAF_2fcVAF3_22VTaffIvfvovyvglPbagebyRRR:
 nop
 .text
-.globl b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
+.weak b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
 .type b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_,%function
 b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFR_RRECAF_15__gerr_raq_abqrVFE_RREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFR_RRECAF_15__gerr_raq_abqrVFE_RREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFR_RRECAF_15__gerr_raq_abqrVFE_RREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFR_RRECAF_15__gerr_raq_abqrVFE_RREXG_:
 nop
@@ -458,7 +458,7 @@
 b__MA7naqebvq8uneqjner4taff18ivfvovyvgl_pbageby4I1_033OcUjTaffIvfvovyvglPbagebyPnyyonpx17_uvqy_asjAbgvslPoRCAF0_10VVagresnprRCAF0_7qrgnvyf16UvqyVafgehzragbeREXAF3_30VTaffIvfvovyvglPbagebyPnyyonpx15AsjAbgvsvpngvbaR:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_4taff18ivfvovyvgl_pbageby4I1_033OcUjTaffIvfvovyvglPbagebyPnyyonpxRAF5_30VTaffIvfvovyvglPbagebyPnyyonpxRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFO_11pune_genvgfVpRRAFO_9nyybpngbeVpRRRRoo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_4taff18ivfvovyvgl_pbageby4I1_033OcUjTaffIvfvovyvglPbagebyPnyyonpxRAF5_30VTaffIvfvovyvglPbagebyPnyyonpxRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFO_11pune_genvgfVpRRAFO_9nyybpngbeVpRRRRoo
 .type b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_4taff18ivfvovyvgl_pbageby4I1_033OcUjTaffIvfvovyvglPbagebyPnyyonpxRAF5_30VTaffIvfvovyvglPbagebyPnyyonpxRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFO_11pune_genvgfVpRRAFO_9nyybpngbeVpRRRRoo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_4taff18ivfvovyvgl_pbageby4I1_033OcUjTaffIvfvovyvglPbagebyPnyyonpxRAF5_30VTaffIvfvovyvglPbagebyPnyyonpxRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFO_11pune_genvgfVpRRAFO_9nyybpngbeVpRRRRoo:
 nop
@@ -493,12 +493,12 @@
 b__MA7naqebvq8uneqjner4taff18ivfvovyvgl_pbageby4I1_023OfTaffIvfvovyvglPbageby13nqqBarjnlGnfxRAFg3__18shapgvbaVSiiRRR:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_8uneqjner27uvqy_ovaqre_qrngu_erpvcvragRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_
+.weak b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_8uneqjner27uvqy_ovaqre_qrngu_erpvcvragRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_
 .type b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_8uneqjner27uvqy_ovaqre_qrngu_erpvcvragRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_,%function
 b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_8uneqjner27uvqy_ovaqre_qrngu_erpvcvragRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_:
 nop
 .data
-.globl b__MGIA7naqebvq8uneqjner4taff18ivfvovyvgl_pbageby4I1_023OfTaffIvfvovyvglPbagebyR
+.weak b__MGIA7naqebvq8uneqjner4taff18ivfvovyvgl_pbageby4I1_023OfTaffIvfvovyvglPbagebyR
 .type b__MGIA7naqebvq8uneqjner4taff18ivfvovyvgl_pbageby4I1_023OfTaffIvfvovyvglPbagebyR,%object
 b__MGIA7naqebvq8uneqjner4taff18ivfvovyvgl_pbageby4I1_023OfTaffIvfvovyvglPbagebyR:
 .space __SIZEOF_POINTER__
@@ -588,7 +588,7 @@
 b__MA7naqebvq8uneqjner4taff18ivfvovyvgl_pbageby4I1_025OcUjTaffIvfvovyvglPbageby4cvatRi:
 nop
 .text
-.globl b__MAXFg3__18shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF7_F7_F7_CAF_6irpgbeVCiAF_9nyybpngbeVF9_RRRRRRpyRF5_F7_F7_F7_F7_FQ_
+.weak b__MAXFg3__18shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF7_F7_F7_CAF_6irpgbeVCiAF_9nyybpngbeVF9_RRRRRRpyRF5_F7_F7_F7_F7_FQ_
 .type b__MAXFg3__18shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF7_F7_F7_CAF_6irpgbeVCiAF_9nyybpngbeVF9_RRRRRRpyRF5_F7_F7_F7_F7_FQ_,%function
 b__MAXFg3__18shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF7_F7_F7_CAF_6irpgbeVCiAF_9nyybpngbeVF9_RRRRRRpyRF5_F7_F7_F7_F7_FQ_:
 nop
@@ -643,7 +643,7 @@
 b__MGua32_A7naqebvq8uneqjner4taff18ivfvovyvgl_pbageby4I1_033OaUjTaffIvfvovyvglPbagebyPnyyonpxQ1Ri:
 nop
 .text
-.globl b__MAFg3__16irpgbeVCiAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_
+.weak b__MAFg3__16irpgbeVCiAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_
 .type b__MAFg3__16irpgbeVCiAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_,%function
 b__MAFg3__16irpgbeVCiAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_:
 nop
@@ -783,7 +783,7 @@
 b__MA7naqebvq8uneqjner4taff18ivfvovyvgl_pbageby4I1_025OcUjTaffIvfvovyvglPbagebyP1REXAF_2fcVAF0_7VOvaqreRRR:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_4taff18ivfvovyvgl_pbageby4I1_025OcUjTaffIvfvovyvglPbagebyRAF5_22VTaffIvfvovyvglPbagebyRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFO_11pune_genvgfVpRRAFO_9nyybpngbeVpRRRRoo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_4taff18ivfvovyvgl_pbageby4I1_025OcUjTaffIvfvovyvglPbagebyRAF5_22VTaffIvfvovyvglPbagebyRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFO_11pune_genvgfVpRRAFO_9nyybpngbeVpRRRRoo
 .type b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_4taff18ivfvovyvgl_pbageby4I1_025OcUjTaffIvfvovyvglPbagebyRAF5_22VTaffIvfvovyvglPbagebyRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFO_11pune_genvgfVpRRAFO_9nyybpngbeVpRRRRoo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_4taff18ivfvovyvgl_pbageby4I1_025OcUjTaffIvfvovyvglPbagebyRAF5_22VTaffIvfvovyvglPbagebyRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFO_11pune_genvgfVpRRAFO_9nyybpngbeVpRRRRoo:
 nop
diff --git a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_044.S b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_044.S
index 7b05eb3..8a024f7 100644
--- a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_044.S
+++ b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_044.S
@@ -28,7 +28,7 @@
 b__MA7naqebvq8uneqjner5vachg10pynffvsvre4I1_019OcUjVachgPynffvsvre5qrohtREXAF0_11uvqy_unaqyrREXAF0_8uvqy_irpVAF0_11uvqy_fgevatRRR:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_5vachg10pynffvsvre4I1_019OcUjVachgPynffvsvreRAF5_16VVachgPynffvsvreRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFO_11pune_genvgfVpRRAFO_9nyybpngbeVpRRRRoo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_5vachg10pynffvsvre4I1_019OcUjVachgPynffvsvreRAF5_16VVachgPynffvsvreRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFO_11pune_genvgfVpRRAFO_9nyybpngbeVpRRRRoo
 .type b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_5vachg10pynffvsvre4I1_019OcUjVachgPynffvsvreRAF5_16VVachgPynffvsvreRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFO_11pune_genvgfVpRRAFO_9nyybpngbeVpRRRRoo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_5vachg10pynffvsvre4I1_019OcUjVachgPynffvsvreRAF5_16VVachgPynffvsvreRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFO_11pune_genvgfVpRRAFO_9nyybpngbeVpRRRRoo:
 nop
@@ -53,12 +53,12 @@
 b__MA7naqebvq8uneqjner5vachg10pynffvsvre4I1_019OcUjVachgPynffvsvre12trgQrohtVasbRAFg3__18shapgvbaVSiEXAF_4uvqy4onfr4I1_09QrohtVasbRRRR:
 nop
 .text
-.globl b__MAFg3__16irpgbeVCiAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_
+.weak b__MAFg3__16irpgbeVCiAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_
 .type b__MAFg3__16irpgbeVCiAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_,%function
 b__MAFg3__16irpgbeVCiAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_:
 nop
 .data
-.globl b__MGPA7naqebvq8uneqjner5vachg10pynffvsvre4I1_017OfVachgPynffvsvreR0_AF3_16VVachgPynffvsvreR
+.weak b__MGPA7naqebvq8uneqjner5vachg10pynffvsvre4I1_017OfVachgPynffvsvreR0_AF3_16VVachgPynffvsvreR
 .type b__MGPA7naqebvq8uneqjner5vachg10pynffvsvre4I1_017OfVachgPynffvsvreR0_AF3_16VVachgPynffvsvreR,%object
 b__MGPA7naqebvq8uneqjner5vachg10pynffvsvre4I1_017OfVachgPynffvsvreR0_AF3_16VVachgPynffvsvreR:
 .space __SIZEOF_POINTER__
@@ -123,7 +123,7 @@
 b__MA7naqebvq8uneqjner5vachg10pynffvsvre4I1_019OcUjVachgPynffvsvre13hayvaxGbQrnguREXAF_2fcVAF0_20uvqy_qrngu_erpvcvragRRR:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFR_RRECAF_15__gerr_raq_abqrVFE_RREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFR_RRECAF_15__gerr_raq_abqrVFE_RREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFR_RRECAF_15__gerr_raq_abqrVFE_RREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFR_RRECAF_15__gerr_raq_abqrVFE_RREXG_:
 nop
@@ -153,7 +153,7 @@
 b__MA7naqebvq8uneqjner5vachg10pynffvsvre4I1_019OcUjVachgPynffvsvre11yvaxGbQrnguREXAF_2fcVAF0_20uvqy_qrngu_erpvcvragRRRz:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_8uneqjner27uvqy_ovaqre_qrngu_erpvcvragRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_
+.weak b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_8uneqjner27uvqy_ovaqre_qrngu_erpvcvragRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_
 .type b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_8uneqjner27uvqy_ovaqre_qrngu_erpvcvragRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_,%function
 b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_8uneqjner27uvqy_ovaqre_qrngu_erpvcvragRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_:
 nop
@@ -178,7 +178,7 @@
 b__MA7naqebvq8uneqjner5vachg10pynffvsvre4I1_016VVachgPynffvsvre8pnfgSebzREXAF_2fcVAF_4uvqy4onfr4I1_05VOnfrRRRo:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFT_RRECAF_15__gerr_raq_abqrVFG_RREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFT_RRECAF_15__gerr_raq_abqrVFG_RREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFT_RRECAF_15__gerr_raq_abqrVFG_RREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFT_RRECAF_15__gerr_raq_abqrVFG_RREXG_:
 nop
@@ -198,7 +198,7 @@
 b__MA7naqebvq8uneqjner5vachg10pynffvsvre4I1_016VVachgPynffvsvre21frgUNYVafgehzragngvbaRi:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_:
 nop
@@ -213,7 +213,7 @@
 b__MA7naqebvq8uneqjner5vachg10pynffvsvre4I1_019OaUjVachgPynffvsvreQ0Ri:
 nop
 .text
-.globl b__MAXFg3__18shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF7_F7_F7_CAF_6irpgbeVCiAF_9nyybpngbeVF9_RRRRRRpyRF5_F7_F7_F7_F7_FQ_
+.weak b__MAXFg3__18shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF7_F7_F7_CAF_6irpgbeVCiAF_9nyybpngbeVF9_RRRRRRpyRF5_F7_F7_F7_F7_FQ_
 .type b__MAXFg3__18shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF7_F7_F7_CAF_6irpgbeVCiAF_9nyybpngbeVF9_RRRRRRpyRF5_F7_F7_F7_F7_FQ_,%function
 b__MAXFg3__18shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF7_F7_F7_CAF_6irpgbeVCiAF_9nyybpngbeVF9_RRRRRRpyRF5_F7_F7_F7_F7_FQ_:
 nop
@@ -228,7 +228,7 @@
 b__MA7naqebvq8uneqjner5vachg10pynffvsvre4I1_019OcUjVachgPynffvsvreP2REXAF_2fcVAF0_7VOvaqreRRR:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_:
 nop
@@ -243,7 +243,7 @@
 b__MA7naqebvq8uneqjner5vachg10pynffvsvre4I1_016VVachgPynffvsvre17ertvfgreNfFreivprREXAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRR:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_5vachg10pynffvsvre4I1_016VVachgPynffvsvreRAF_4uvqy4onfr4I1_05VOnfrRAF5_19OcUjVachgPynffvsvreRRRAF0_6ErgheaVAF_2fcVG_RRRRAFQ_VG0_RRCXpo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_5vachg10pynffvsvre4I1_016VVachgPynffvsvreRAF_4uvqy4onfr4I1_05VOnfrRAF5_19OcUjVachgPynffvsvreRRRAF0_6ErgheaVAF_2fcVG_RRRRAFQ_VG0_RRCXpo
 .type b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_5vachg10pynffvsvre4I1_016VVachgPynffvsvreRAF_4uvqy4onfr4I1_05VOnfrRAF5_19OcUjVachgPynffvsvreRRRAF0_6ErgheaVAF_2fcVG_RRRRAFQ_VG0_RRCXpo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_5vachg10pynffvsvre4I1_016VVachgPynffvsvreRAF_4uvqy4onfr4I1_05VOnfrRAF5_19OcUjVachgPynffvsvreRRRAF0_6ErgheaVAF_2fcVG_RRRRAFQ_VG0_RRCXpo:
 nop
@@ -263,7 +263,7 @@
 b__MA7naqebvq8uneqjner5vachg10pynffvsvre4I1_019OcUjVachgPynffvsvre4cvatRi:
 nop
 .text
-.globl b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
+.weak b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
 .type b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_,%function
 b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_:
 nop
@@ -323,7 +323,7 @@
 b__MA7naqebvq8uneqjner5vachg10pynffvsvre4I1_016VVachgPynffvsvre13hayvaxGbQrnguREXAF_2fcVAF0_20uvqy_qrngu_erpvcvragRRR:
 nop
 .text
-.globl b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
+.weak b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
 .type b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_,%function
 b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_:
 nop
@@ -358,7 +358,7 @@
 b__MA7naqebvq8uneqjner5vachg10pynffvsvre4I1_019OcUjVachgPynffvsvre17_uvqy_erfrgQrivprRCAF0_10VVagresnprRCAF0_7qrgnvyf16UvqyVafgehzragbeRv:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRP2REXFU_
+.weak b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRP2REXFU_
 .type b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRP2REXFU_,%function
 b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRP2REXFU_:
 nop
@@ -413,12 +413,12 @@
 b__MA7naqebvq8uneqjner5vachg10pynffvsvre4I1_019OcUjVachgPynffvsvre21abgvslFlfcebcfPunatrqRi:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRR:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRR:
 nop
@@ -433,7 +433,7 @@
 b__MGPA7naqebvq8uneqjner5vachg10pynffvsvre4I1_019OaUjVachgPynffvsvreR0_AF0_7VOvaqreR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIA7naqebvq8uneqjner5vachg10pynffvsvre4I1_017OfVachgPynffvsvreR
+.weak b__MGIA7naqebvq8uneqjner5vachg10pynffvsvre4I1_017OfVachgPynffvsvreR
 .type b__MGIA7naqebvq8uneqjner5vachg10pynffvsvre4I1_017OfVachgPynffvsvreR,%object
 b__MGIA7naqebvq8uneqjner5vachg10pynffvsvre4I1_017OfVachgPynffvsvreR:
 .space __SIZEOF_POINTER__
diff --git a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_045.S b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_045.S
index ab715e7..282d563 100644
--- a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_045.S
+++ b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_045.S
@@ -13,7 +13,7 @@
 b__MA7naqebvq8uneqjner2ve4I1_014OaUjPbafhzreVe14_uvqy_genafzvgRCAF_4uvqy4onfr4I1_08OaUjOnfrREXAF0_6CnepryRCF9_AFg3__18shapgvbaVSiEF9_RRR:
 nop
 .text
-.globl b__MAFg3__16irpgbeVCiAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_
+.weak b__MAFg3__16irpgbeVCiAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_
 .type b__MAFg3__16irpgbeVCiAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_,%function
 b__MAFg3__16irpgbeVCiAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_:
 nop
@@ -43,7 +43,7 @@
 b__MA7naqebvq8uneqjner2ve4I1_011VPbafhzreVe21abgvslFlfcebcfPunatrqRi:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_2ve4I1_011VPbafhzreVeRAF_4uvqy4onfr4I1_05VOnfrRAF4_14OcUjPbafhzreVeRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_2ve4I1_011VPbafhzreVeRAF_4uvqy4onfr4I1_05VOnfrRAF4_14OcUjPbafhzreVeRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo
 .type b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_2ve4I1_011VPbafhzreVeRAF_4uvqy4onfr4I1_05VOnfrRAF4_14OcUjPbafhzreVeRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_2ve4I1_011VPbafhzreVeRAF_4uvqy4onfr4I1_05VOnfrRAF4_14OcUjPbafhzreVeRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo:
 nop
@@ -68,7 +68,7 @@
 b__MA7naqebvq8uneqjner2ve4I1_014OaUjPbafhzreVe4cvatRi:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFR_RRECAF_15__gerr_raq_abqrVFE_RREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFR_RRECAF_15__gerr_raq_abqrVFE_RREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFR_RRECAF_15__gerr_raq_abqrVFE_RREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFR_RRECAF_15__gerr_raq_abqrVFE_RREXG_:
 nop
@@ -88,7 +88,7 @@
 b__MA7naqebvq8uneqjner2ve4I1_014OaUjPbafhzreVe10baGenafnpgRwEXAF0_6CnepryRCF4_wAFg3__18shapgvbaVSiEF4_RRR:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_8uneqjner27uvqy_ovaqre_qrngu_erpvcvragRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_
+.weak b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_8uneqjner27uvqy_ovaqre_qrngu_erpvcvragRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_
 .type b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_8uneqjner27uvqy_ovaqre_qrngu_erpvcvragRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_,%function
 b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_8uneqjner27uvqy_ovaqre_qrngu_erpvcvragRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_:
 nop
@@ -113,7 +113,7 @@
 b__MA7naqebvq8uneqjner2ve4I1_014OcUjPbafhzreVe8genafzvgRvEXAF0_8uvqy_irpVvRR:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFT_RRECAF_15__gerr_raq_abqrVFG_RREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFT_RRECAF_15__gerr_raq_abqrVFG_RREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFT_RRECAF_15__gerr_raq_abqrVFG_RREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFT_RRECAF_15__gerr_raq_abqrVFG_RREXG_:
 nop
@@ -138,7 +138,7 @@
 b__MA7naqebvq8uneqjner2ve4I1_014OcUjPbafhzreVe21frgUNYVafgehzragngvbaRi:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_:
 nop
@@ -163,7 +163,7 @@
 b__MGi0_a40_A7naqebvq8uneqjner2ve4I1_014OcUjPbafhzreVe15baYnfgFgebatErsRCXi:
 nop
 .text
-.globl b__MAXFg3__18shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF7_F7_F7_CAF_6irpgbeVCiAF_9nyybpngbeVF9_RRRRRRpyRF5_F7_F7_F7_F7_FQ_
+.weak b__MAXFg3__18shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF7_F7_F7_CAF_6irpgbeVCiAF_9nyybpngbeVF9_RRRRRRpyRF5_F7_F7_F7_F7_FQ_
 .type b__MAXFg3__18shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF7_F7_F7_CAF_6irpgbeVCiAF_9nyybpngbeVF9_RRRRRRpyRF5_F7_F7_F7_F7_FQ_,%function
 b__MAXFg3__18shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF7_F7_F7_CAF_6irpgbeVCiAF_9nyybpngbeVF9_RRRRRRpyRF5_F7_F7_F7_F7_FQ_:
 nop
@@ -198,7 +198,7 @@
 b__MA7naqebvq8uneqjner2ve4I1_014OcUjPbafhzreVe4cvatRi:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_:
 nop
@@ -228,12 +228,12 @@
 b__MA7naqebvq8uneqjner2ve4I1_014OcUjPbafhzreVeP2REXAF_2fcVAF0_7VOvaqreRRR:
 nop
 .text
-.globl b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
+.weak b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
 .type b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_,%function
 b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_:
 nop
 .data
-.globl b__MGPA7naqebvq8uneqjner2ve4I1_012OfPbafhzreVeR0_AF2_11VPbafhzreVeR
+.weak b__MGPA7naqebvq8uneqjner2ve4I1_012OfPbafhzreVeR0_AF2_11VPbafhzreVeR
 .type b__MGPA7naqebvq8uneqjner2ve4I1_012OfPbafhzreVeR0_AF2_11VPbafhzreVeR,%object
 b__MGPA7naqebvq8uneqjner2ve4I1_012OfPbafhzreVeR0_AF2_11VPbafhzreVeR:
 .space __SIZEOF_POINTER__
@@ -318,7 +318,7 @@
 b__MA7naqebvq8uneqjner2ve4I1_014OcUjPbafhzreVe5qrohtREXAF0_11uvqy_unaqyrREXAF0_8uvqy_irpVAF0_11uvqy_fgevatRRR:
 nop
 .text
-.globl b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
+.weak b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
 .type b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_,%function
 b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_:
 nop
@@ -348,7 +348,7 @@
 b__MA7naqebvq8uneqjner2ve4I1_011VPbafhzreVe4cvatRi:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRP2REXFU_
+.weak b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRP2REXFU_
 .type b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRP2REXFU_,%function
 b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRP2REXFU_:
 nop
@@ -363,7 +363,7 @@
 b__MA7naqebvq8uneqjner2ve4I1_014OaUjPbafhzreVeQ0Ri:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_2ve4I1_014OcUjPbafhzreVeRAF4_11VPbafhzreVeRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_2ve4I1_014OcUjPbafhzreVeRAF4_11VPbafhzreVeRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo
 .type b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_2ve4I1_014OcUjPbafhzreVeRAF4_11VPbafhzreVeRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_2ve4I1_014OcUjPbafhzreVeRAF4_11VPbafhzreVeRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo:
 nop
@@ -373,7 +373,7 @@
 b__MGPA7naqebvq8uneqjner2ve4I1_014OcUjPbafhzreVeR16_AF0_11OcUjErsOnfrR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIA7naqebvq8uneqjner2ve4I1_012OfPbafhzreVeR
+.weak b__MGIA7naqebvq8uneqjner2ve4I1_012OfPbafhzreVeR
 .type b__MGIA7naqebvq8uneqjner2ve4I1_012OfPbafhzreVeR,%object
 b__MGIA7naqebvq8uneqjner2ve4I1_012OfPbafhzreVeR:
 .space __SIZEOF_POINTER__
@@ -403,12 +403,12 @@
 b__MA7naqebvq8uneqjner2ve4I1_014OcUjPbafhzreVe19vagresnprQrfpevcgbeRAFg3__18shapgvbaVSiEXAF0_11uvqy_fgevatRRRR:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRR:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRR:
 nop
diff --git a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_046.S b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_046.S
index e1a34cf..001ce11 100644
--- a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_046.S
+++ b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_046.S
@@ -38,7 +38,7 @@
 b__MA7naqebvq8uneqjner5yvtug4I2_06VYvtug12trgQrohtVasbRAFg3__18shapgvbaVSiEXAF_4uvqy4onfr4I1_09QrohtVasbRRRR:
 nop
 .text
-.globl b__MAFg3__16irpgbeVCiAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_
+.weak b__MAFg3__16irpgbeVCiAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_
 .type b__MAFg3__16irpgbeVCiAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_,%function
 b__MAFg3__16irpgbeVCiAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_:
 nop
@@ -58,12 +58,12 @@
 b__MA7naqebvq8uneqjner5yvtug4I2_09OaUjYvtug12trgQrohtVasbRAFg3__18shapgvbaVSiEXAF_4uvqy4onfr4I1_09QrohtVasbRRRR:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_5yvtug4I2_09OcUjYvtugRAF4_6VYvtugRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_5yvtug4I2_09OcUjYvtugRAF4_6VYvtugRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo
 .type b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_5yvtug4I2_09OcUjYvtugRAF4_6VYvtugRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_5yvtug4I2_09OcUjYvtugRAF4_6VYvtugRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo:
 nop
 .data
-.globl b__MGIA7naqebvq8uneqjner5yvtug4I2_07OfYvtugR
+.weak b__MGIA7naqebvq8uneqjner5yvtug4I2_07OfYvtugR
 .type b__MGIA7naqebvq8uneqjner5yvtug4I2_07OfYvtugR,%object
 b__MGIA7naqebvq8uneqjner5yvtug4I2_07OfYvtugR:
 .space __SIZEOF_POINTER__
@@ -93,12 +93,12 @@
 b__MA7naqebvq8uneqjner5yvtug4I2_06VYvtug13hayvaxGbQrnguREXAF_2fcVAF0_20uvqy_qrngu_erpvcvragRRR:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_5yvtug4I2_06VYvtugRAF_4uvqy4onfr4I1_05VOnfrRAF4_9OcUjYvtugRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_5yvtug4I2_06VYvtugRAF_4uvqy4onfr4I1_05VOnfrRAF4_9OcUjYvtugRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo
 .type b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_5yvtug4I2_06VYvtugRAF_4uvqy4onfr4I1_05VOnfrRAF4_9OcUjYvtugRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_5yvtug4I2_06VYvtugRAF_4uvqy4onfr4I1_05VOnfrRAF4_9OcUjYvtugRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFR_RRECAF_15__gerr_raq_abqrVFE_RREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFR_RRECAF_15__gerr_raq_abqrVFE_RREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFR_RRECAF_15__gerr_raq_abqrVFE_RREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFR_RRECAF_15__gerr_raq_abqrVFE_RREXG_:
 nop
@@ -113,7 +113,7 @@
 b__MA7naqebvq8uneqjner5yvtug4I2_06VYvtug8pnfgSebzREXAF_2fcVF3_RRo:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_8uneqjner27uvqy_ovaqre_qrngu_erpvcvragRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_
+.weak b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_8uneqjner27uvqy_ovaqre_qrngu_erpvcvragRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_
 .type b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_8uneqjner27uvqy_ovaqre_qrngu_erpvcvragRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_,%function
 b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_8uneqjner27uvqy_ovaqre_qrngu_erpvcvragRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_:
 nop
@@ -138,7 +138,7 @@
 b__MA7naqebvq8uneqjner5yvtug4I2_09OcUjYvtug14vagresnprPunvaRAFg3__18shapgvbaVSiEXAF0_8uvqy_irpVAF0_11uvqy_fgevatRRRRRR:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFT_RRECAF_15__gerr_raq_abqrVFG_RREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFT_RRECAF_15__gerr_raq_abqrVFG_RREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFT_RRECAF_15__gerr_raq_abqrVFG_RREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFT_RRECAF_15__gerr_raq_abqrVFG_RREXG_:
 nop
@@ -153,7 +153,7 @@
 b__MA7naqebvq8uneqjner5yvtug4I2_09OcUjYvtug19vagresnprQrfpevcgbeRAFg3__18shapgvbaVSiEXAF0_11uvqy_fgevatRRRR:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_:
 nop
@@ -168,7 +168,7 @@
 b__MA7naqebvq8uneqjner5yvtug4I2_09OcUjYvtug5qrohtREXAF0_11uvqy_unaqyrREXAF0_8uvqy_irpVAF0_11uvqy_fgevatRRR:
 nop
 .text
-.globl b__MAXFg3__18shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF7_F7_F7_CAF_6irpgbeVCiAF_9nyybpngbeVF9_RRRRRRpyRF5_F7_F7_F7_F7_FQ_
+.weak b__MAXFg3__18shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF7_F7_F7_CAF_6irpgbeVCiAF_9nyybpngbeVF9_RRRRRRpyRF5_F7_F7_F7_F7_FQ_
 .type b__MAXFg3__18shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF7_F7_F7_CAF_6irpgbeVCiAF_9nyybpngbeVF9_RRRRRRpyRF5_F7_F7_F7_F7_FQ_,%function
 b__MAXFg3__18shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF7_F7_F7_CAF_6irpgbeVCiAF_9nyybpngbeVF9_RRRRRRpyRF5_F7_F7_F7_F7_FQ_:
 nop
@@ -188,7 +188,7 @@
 b__MA7naqebvq8uneqjner5yvtug4I2_09OaUjYvtug4cvatRi:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_:
 nop
@@ -228,7 +228,7 @@
 b__MA7naqebvq8uneqjner5yvtug4I2_09OaUjYvtug23_uvqy_trgFhccbegrqGlcrfRCAF_4uvqy4onfr4I1_08OaUjOnfrREXAF0_6CnepryRCF9_AFg3__18shapgvbaVSiEF9_RRR:
 nop
 .text
-.globl b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
+.weak b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
 .type b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_,%function
 b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_:
 nop
@@ -238,7 +238,7 @@
 b__MGPA7naqebvq8uneqjner5yvtug4I2_06VYvtugR0_AF_4uvqy4onfr4I1_05VOnfrR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGPA7naqebvq8uneqjner5yvtug4I2_07OfYvtugR0_AF2_6VYvtugR
+.weak b__MGPA7naqebvq8uneqjner5yvtug4I2_07OfYvtugR0_AF2_6VYvtugR
 .type b__MGPA7naqebvq8uneqjner5yvtug4I2_07OfYvtugR0_AF2_6VYvtugR,%object
 b__MGPA7naqebvq8uneqjner5yvtug4I2_07OfYvtugR0_AF2_6VYvtugR:
 .space __SIZEOF_POINTER__
@@ -328,7 +328,7 @@
 b__MA7naqebvq8uneqjner5yvtug4I2_09OaUjYvtugQ0Ri:
 nop
 .text
-.globl b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
+.weak b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
 .type b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_,%function
 b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_:
 nop
@@ -373,7 +373,7 @@
 b__MA7naqebvq8uneqjner5yvtug4I2_09OcUjYvtug4cvatRi:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRP2REXFU_
+.weak b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRP2REXFU_
 .type b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRP2REXFU_,%function
 b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRP2REXFU_:
 nop
@@ -413,12 +413,12 @@
 b__MA7naqebvq8uneqjner5yvtug4I2_09OcUjYvtug17trgFhccbegrqGlcrfRAFg3__18shapgvbaVSiEXAF0_8uvqy_irpVAF2_4GlcrRRRRRR:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRR:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRR:
 nop
diff --git a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_047.S b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_047.S
index 250bf84..61d59c8 100644
--- a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_047.S
+++ b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_047.S
@@ -38,7 +38,7 @@
 b__MGPA7naqebvq8uneqjner5cbjre4I1_09OcUjCbjreR0_AF_4uvqy4onfr4I1_05VOnfrR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIA7naqebvq8uneqjner5cbjre4I1_07OfCbjreR
+.weak b__MGIA7naqebvq8uneqjner5cbjre4I1_07OfCbjreR
 .type b__MGIA7naqebvq8uneqjner5cbjre4I1_07OfCbjreR,%object
 b__MGIA7naqebvq8uneqjner5cbjre4I1_07OfCbjreR:
 .space __SIZEOF_POINTER__
@@ -108,7 +108,7 @@
 b__MA7naqebvq8uneqjner5cbjre4I1_09OcUjCbjre21frgUNYVafgehzragngvbaRi:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFT_RRECAF_15__gerr_raq_abqrVFG_RREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFT_RRECAF_15__gerr_raq_abqrVFG_RREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFT_RRECAF_15__gerr_raq_abqrVFG_RREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFT_RRECAF_15__gerr_raq_abqrVFG_RREXG_:
 nop
@@ -118,12 +118,12 @@
 b__MGPA7naqebvq8uneqjner5cbjre4I1_09OaUjCbjreR0_AF0_7VOvaqreR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRR:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRP2REXFU_
+.weak b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRP2REXFU_
 .type b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRP2REXFU_,%function
 b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRP2REXFU_:
 nop
@@ -138,7 +138,7 @@
 b__MA7naqebvq8uneqjner5cbjre4I1_09OaUjCbjre16_uvqy_frgSrngherRCAF_4uvqy4onfr4I1_08OaUjOnfrREXAF0_6CnepryRCF9_AFg3__18shapgvbaVSiEF9_RRR:
 nop
 .text
-.globl b__MAXFg3__18shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF7_F7_F7_CAF_6irpgbeVCiAF_9nyybpngbeVF9_RRRRRRpyRF5_F7_F7_F7_F7_FQ_
+.weak b__MAXFg3__18shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF7_F7_F7_CAF_6irpgbeVCiAF_9nyybpngbeVF9_RRRRRRpyRF5_F7_F7_F7_F7_FQ_
 .type b__MAXFg3__18shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF7_F7_F7_CAF_6irpgbeVCiAF_9nyybpngbeVF9_RRRRRRpyRF5_F7_F7_F7_F7_FQ_,%function
 b__MAXFg3__18shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF7_F7_F7_CAF_6irpgbeVCiAF_9nyybpngbeVF9_RRRRRRpyRF5_F7_F7_F7_F7_FQ_:
 nop
@@ -153,7 +153,7 @@
 b__MGPA7naqebvq8uneqjner5cbjre4I1_09OcUjCbjreR0_AF2_6VCbjreR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_:
 nop
@@ -173,7 +173,7 @@
 b__MA7naqebvq8uneqjner5cbjre4I1_07OfCbjreP2RAF_2fcVAF2_6VCbjreRRR:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_:
 nop
@@ -218,7 +218,7 @@
 b__MA7naqebvq8uneqjner5cbjre4I1_09OaUjCbjreQ2Ri:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFR_RRECAF_15__gerr_raq_abqrVFE_RREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFR_RRECAF_15__gerr_raq_abqrVFE_RREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFR_RRECAF_15__gerr_raq_abqrVFE_RREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFR_RRECAF_15__gerr_raq_abqrVFE_RREXG_:
 nop
@@ -278,7 +278,7 @@
 b__MA7naqebvq8uneqjner5cbjre4I1_09OcUjCbjreP2REXAF_2fcVAF0_7VOvaqreRRR:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRR:
 nop
@@ -298,12 +298,12 @@
 b__MA7naqebvq8uneqjner5cbjre4I1_09OcUjCbjre15baYnfgFgebatErsRCXi:
 nop
 .text
-.globl b__MAFg3__16irpgbeVCiAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_
+.weak b__MAFg3__16irpgbeVCiAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_
 .type b__MAFg3__16irpgbeVCiAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_,%function
 b__MAFg3__16irpgbeVCiAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_:
 nop
 .data
-.globl b__MGPA7naqebvq8uneqjner5cbjre4I1_07OfCbjreR0_AF2_6VCbjreR
+.weak b__MGPA7naqebvq8uneqjner5cbjre4I1_07OfCbjreR0_AF2_6VCbjreR
 .type b__MGPA7naqebvq8uneqjner5cbjre4I1_07OfCbjreR0_AF2_6VCbjreR,%object
 b__MGPA7naqebvq8uneqjner5cbjre4I1_07OfCbjreR0_AF2_6VCbjreR:
 .space __SIZEOF_POINTER__
@@ -333,7 +333,7 @@
 b__MA7naqebvq8uneqjner5cbjre4I1_09OcUjCbjre20_uvqy_frgVagrenpgvirRCAF0_10VVagresnprRCAF0_7qrgnvyf16UvqyVafgehzragbeRo:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_5cbjre4I1_09OcUjCbjreRAF4_6VCbjreRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_5cbjre4I1_09OcUjCbjreRAF4_6VCbjreRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo
 .type b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_5cbjre4I1_09OcUjCbjreRAF4_6VCbjreRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_5cbjre4I1_09OcUjCbjreRAF4_6VCbjreRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo:
 nop
@@ -373,7 +373,7 @@
 b__MA7naqebvq8uneqjner5cbjre4I1_09OcUjCbjre4cvatRi:
 nop
 .text
-.globl b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
+.weak b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
 .type b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_,%function
 b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_:
 nop
@@ -403,7 +403,7 @@
 b__MA7naqebvq8uneqjner5cbjre4I1_09OcUjCbjre10frgSrngherRAF2_7SrngherRo:
 nop
 .text
-.globl b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
+.weak b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
 .type b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_,%function
 b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_:
 nop
@@ -448,12 +448,12 @@
 b__MA7naqebvq8uneqjner5cbjre4I1_06VCbjre24ertvfgreSbeAbgvsvpngvbafREXAFg3__112onfvp_fgevatVpAF4_11pune_genvgfVpRRAF4_9nyybpngbeVpRRRREXAF_2fcVAF_4uvqy7znantre4I1_020VFreivprAbgvsvpngvbaRRR:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_5cbjre4I1_06VCbjreRAF_4uvqy4onfr4I1_05VOnfrRAF4_9OcUjCbjreRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_5cbjre4I1_06VCbjreRAF_4uvqy4onfr4I1_05VOnfrRAF4_9OcUjCbjreRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo
 .type b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_5cbjre4I1_06VCbjreRAF_4uvqy4onfr4I1_05VOnfrRAF4_9OcUjCbjreRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_5cbjre4I1_06VCbjreRAF_4uvqy4onfr4I1_05VOnfrRAF4_9OcUjCbjreRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_8uneqjner27uvqy_ovaqre_qrngu_erpvcvragRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_
+.weak b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_8uneqjner27uvqy_ovaqre_qrngu_erpvcvragRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_
 .type b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_8uneqjner27uvqy_ovaqre_qrngu_erpvcvragRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_,%function
 b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_8uneqjner27uvqy_ovaqre_qrngu_erpvcvragRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_:
 nop
diff --git a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_048.S b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_048.S
index 871425e..fa7c3ca 100644
--- a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_048.S
+++ b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_048.S
@@ -13,12 +13,12 @@
 b__MA7naqebvq8uneqjner5cbjre4I1_19OcUjCbjre20_uvqy_cbjreUvagNflapRCAF0_10VVagresnprRCAF0_7qrgnvyf16UvqyVafgehzragbeRAF1_4I1_09CbjreUvagRv:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRP2REXFU_
+.weak b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRP2REXFU_
 .type b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRP2REXFU_,%function
 b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRP2REXFU_:
 nop
@@ -33,12 +33,12 @@
 b__MA7naqebvq8uneqjner5cbjre4I1_19OaUjCbjre4cvatRi:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_:
 nop
 .text
-.globl b__MAFg3__16irpgbeVCiAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_
+.weak b__MAFg3__16irpgbeVCiAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_
 .type b__MAFg3__16irpgbeVCiAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_,%function
 b__MAFg3__16irpgbeVCiAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_:
 nop
@@ -68,7 +68,7 @@
 b__MA7naqebvq8uneqjner5cbjre4I1_16VCbjre24ertvfgreSbeAbgvsvpngvbafREXAFg3__112onfvp_fgevatVpAF4_11pune_genvgfVpRRAF4_9nyybpngbeVpRRRREXAF_2fcVAF_4uvqy7znantre4I1_020VFreivprAbgvsvpngvbaRRR:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFT_RRECAF_15__gerr_raq_abqrVFG_RREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFT_RRECAF_15__gerr_raq_abqrVFG_RREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFT_RRECAF_15__gerr_raq_abqrVFG_RREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFT_RRECAF_15__gerr_raq_abqrVFG_RREXG_:
 nop
@@ -113,17 +113,17 @@
 b__MA7naqebvq8uneqjner5cbjre4I1_19OcUjCbjre13hayvaxGbQrnguREXAF_2fcVAF0_20uvqy_qrngu_erpvcvragRRR:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_5cbjre4I1_19OcUjCbjreRAF4_6VCbjreRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_5cbjre4I1_19OcUjCbjreRAF4_6VCbjreRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo
 .type b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_5cbjre4I1_19OcUjCbjreRAF4_6VCbjreRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_5cbjre4I1_19OcUjCbjreRAF4_6VCbjreRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo:
 nop
 .text
-.globl b__MAXFg3__18shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF7_F7_F7_CAF_6irpgbeVCiAF_9nyybpngbeVF9_RRRRRRpyRF5_F7_F7_F7_F7_FQ_
+.weak b__MAXFg3__18shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF7_F7_F7_CAF_6irpgbeVCiAF_9nyybpngbeVF9_RRRRRRpyRF5_F7_F7_F7_F7_FQ_
 .type b__MAXFg3__18shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF7_F7_F7_CAF_6irpgbeVCiAF_9nyybpngbeVF9_RRRRRRpyRF5_F7_F7_F7_F7_FQ_,%function
 b__MAXFg3__18shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF7_F7_F7_CAF_6irpgbeVCiAF_9nyybpngbeVF9_RRRRRRpyRF5_F7_F7_F7_F7_FQ_:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRR:
 nop
@@ -163,7 +163,7 @@
 b__MA7naqebvq8uneqjner5cbjre4I1_16VCbjre13gelTrgFreivprREXAFg3__112onfvp_fgevatVpAF4_11pune_genvgfVpRRAF4_9nyybpngbeVpRRRRo:
 nop
 .data
-.globl b__MGIA7naqebvq8uneqjner5cbjre4I1_17OfCbjreR
+.weak b__MGIA7naqebvq8uneqjner5cbjre4I1_17OfCbjreR
 .type b__MGIA7naqebvq8uneqjner5cbjre4I1_17OfCbjreR,%object
 b__MGIA7naqebvq8uneqjner5cbjre4I1_17OfCbjreR:
 .space __SIZEOF_POINTER__
@@ -313,17 +313,17 @@
 b__MA7naqebvq8uneqjner5cbjre4I1_19OcUjCbjre21frgUNYVafgehzragngvbaRi:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_5cbjre4I1_16VCbjreRAF3_4I1_06VCbjreRAF4_9OcUjCbjreRRRAF0_6ErgheaVAF_2fcVG_RRRRAFN_VG0_RRCXpo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_5cbjre4I1_16VCbjreRAF3_4I1_06VCbjreRAF4_9OcUjCbjreRRRAF0_6ErgheaVAF_2fcVG_RRRRAFN_VG0_RRCXpo
 .type b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_5cbjre4I1_16VCbjreRAF3_4I1_06VCbjreRAF4_9OcUjCbjreRRRAF0_6ErgheaVAF_2fcVG_RRRRAFN_VG0_RRCXpo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_5cbjre4I1_16VCbjreRAF3_4I1_06VCbjreRAF4_9OcUjCbjreRRRAF0_6ErgheaVAF_2fcVG_RRRRAFN_VG0_RRCXpo:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_5cbjre4I1_16VCbjreRAF_4uvqy4onfr4I1_05VOnfrRAF4_9OcUjCbjreRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_5cbjre4I1_16VCbjreRAF_4uvqy4onfr4I1_05VOnfrRAF4_9OcUjCbjreRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo
 .type b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_5cbjre4I1_16VCbjreRAF_4uvqy4onfr4I1_05VOnfrRAF4_9OcUjCbjreRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_5cbjre4I1_16VCbjreRAF_4uvqy4onfr4I1_05VOnfrRAF4_9OcUjCbjreRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_8uneqjner27uvqy_ovaqre_qrngu_erpvcvragRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_
+.weak b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_8uneqjner27uvqy_ovaqre_qrngu_erpvcvragRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_
 .type b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_8uneqjner27uvqy_ovaqre_qrngu_erpvcvragRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_,%function
 b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_8uneqjner27uvqy_ovaqre_qrngu_erpvcvragRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_:
 nop
@@ -388,12 +388,12 @@
 b__MA7naqebvq8uneqjner5cbjre4I1_17OfCbjreP1RAF_2fcVAF2_6VCbjreRRR:
 nop
 .text
-.globl b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
+.weak b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
 .type b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_,%function
 b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRR:
 nop
@@ -458,17 +458,17 @@
 b__MA7naqebvq8uneqjner5cbjre4I1_19OcUjCbjreP2REXAF_2fcVAF0_7VOvaqreRRR:
 nop
 .text
-.globl b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
+.weak b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
 .type b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_,%function
 b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFR_RRECAF_15__gerr_raq_abqrVFE_RREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFR_RRECAF_15__gerr_raq_abqrVFE_RREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFR_RRECAF_15__gerr_raq_abqrVFE_RREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFR_RRECAF_15__gerr_raq_abqrVFE_RREXG_:
 nop
 .data
-.globl b__MGPA7naqebvq8uneqjner5cbjre4I1_17OfCbjreR0_AF2_6VCbjreR
+.weak b__MGPA7naqebvq8uneqjner5cbjre4I1_17OfCbjreR0_AF2_6VCbjreR
 .type b__MGPA7naqebvq8uneqjner5cbjre4I1_17OfCbjreR0_AF2_6VCbjreR,%object
 b__MGPA7naqebvq8uneqjner5cbjre4I1_17OfCbjreR0_AF2_6VCbjreR:
 .space __SIZEOF_POINTER__
diff --git a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_049.S b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_049.S
index e4800c4..a5d6d8f 100644
--- a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_049.S
+++ b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_049.S
@@ -8,7 +8,7 @@
 b__MA7naqebvq8uneqjner5cbjre5fgngf4I1_011VCbjreFgngf12trgUnfuPunvaRAFg3__18shapgvbaVSiEXAF0_8uvqy_irpVAF0_10uvqy_neenlVuYz32RWRRRRRRRR:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_5cbjre5fgngf4I1_011VCbjreFgngfRAF_4uvqy4onfr4I1_05VOnfrRAF5_14OcUjCbjreFgngfRRRAF0_6ErgheaVAF_2fcVG_RRRRAFQ_VG0_RRCXpo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_5cbjre5fgngf4I1_011VCbjreFgngfRAF_4uvqy4onfr4I1_05VOnfrRAF5_14OcUjCbjreFgngfRRRAF0_6ErgheaVAF_2fcVG_RRRRAFQ_VG0_RRCXpo
 .type b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_5cbjre5fgngf4I1_011VCbjreFgngfRAF_4uvqy4onfr4I1_05VOnfrRAF5_14OcUjCbjreFgngfRRRAF0_6ErgheaVAF_2fcVG_RRRRAFQ_VG0_RRCXpo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_5cbjre5fgngf4I1_011VCbjreFgngfRAF_4uvqy4onfr4I1_05VOnfrRAF5_14OcUjCbjreFgngfRRRAF0_6ErgheaVAF_2fcVG_RRRRAFQ_VG0_RRCXpo:
 nop
@@ -28,12 +28,12 @@
 b__MA7naqebvq8uneqjner5cbjre5fgngf4I1_014OcUjCbjreFgngf22_uvqy_fgernzRaretlQngnRCAF0_10VVagresnprRCAF0_7qrgnvyf16UvqyVafgehzragbeRwwAFg3__18shapgvbaVSiEXAF0_12ZDQrfpevcgbeVAF3_10RaretlQngnRYAF0_8ZDSynibeR1RRRwwAF3_6FgnghfRRRR:
 nop
 .text
-.globl b__MAXFg3__18shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF7_F7_F7_CAF_6irpgbeVCiAF_9nyybpngbeVF9_RRRRRRpyRF5_F7_F7_F7_F7_FQ_
+.weak b__MAXFg3__18shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF7_F7_F7_CAF_6irpgbeVCiAF_9nyybpngbeVF9_RRRRRRpyRF5_F7_F7_F7_F7_FQ_
 .type b__MAXFg3__18shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF7_F7_F7_CAF_6irpgbeVCiAF_9nyybpngbeVF9_RRRRRRpyRF5_F7_F7_F7_F7_FQ_,%function
 b__MAXFg3__18shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF7_F7_F7_CAF_6irpgbeVCiAF_9nyybpngbeVF9_RRRRRRpyRF5_F7_F7_F7_F7_FQ_:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFT_RRECAF_15__gerr_raq_abqrVFG_RREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFT_RRECAF_15__gerr_raq_abqrVFG_RREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFT_RRECAF_15__gerr_raq_abqrVFG_RREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFT_RRECAF_15__gerr_raq_abqrVFG_RREXG_:
 nop
@@ -53,7 +53,7 @@
 b__MA7naqebvq8uneqjner5cbjre5fgngf4I1_022ernqRzorqqrqSebzCnepryREXAF3_8EnvyVasbREXAF0_6CnepryRzz:
 nop
 .text
-.globl b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
+.weak b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
 .type b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_,%function
 b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_:
 nop
@@ -208,7 +208,7 @@
 b__MA7naqebvq8uneqjner5cbjre5fgngf4I1_014OcUjCbjreFgngf19vagresnprQrfpevcgbeRAFg3__18shapgvbaVSiEXAF0_11uvqy_fgevatRRRR:
 nop
 .text
-.globl b__MAFg3__16irpgbeVCiAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_
+.weak b__MAFg3__16irpgbeVCiAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_
 .type b__MAFg3__16irpgbeVCiAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_,%function
 b__MAFg3__16irpgbeVCiAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_:
 nop
@@ -243,7 +243,7 @@
 b__MA7naqebvq8uneqjner5cbjre5fgngf4I1_022ernqRzorqqrqSebzCnepryREXAF3_15CbjreRagvglVasbREXAF0_6CnepryRzz:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRR:
 nop
@@ -268,17 +268,17 @@
 b__MA7naqebvq8uneqjner5cbjre5fgngf4I1_014OcUjCbjreFgngf12trgUnfuPunvaRAFg3__18shapgvbaVSiEXAF0_8uvqy_irpVAF0_10uvqy_neenlVuYz32RWRRRRRRRR:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_5cbjre5fgngf4I1_014OcUjCbjreFgngfRAF5_11VCbjreFgngfRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFO_11pune_genvgfVpRRAFO_9nyybpngbeVpRRRRoo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_5cbjre5fgngf4I1_014OcUjCbjreFgngfRAF5_11VCbjreFgngfRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFO_11pune_genvgfVpRRAFO_9nyybpngbeVpRRRRoo
 .type b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_5cbjre5fgngf4I1_014OcUjCbjreFgngfRAF5_11VCbjreFgngfRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFO_11pune_genvgfVpRRAFO_9nyybpngbeVpRRRRoo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_5cbjre5fgngf4I1_014OcUjCbjreFgngfRAF5_11VCbjreFgngfRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFO_11pune_genvgfVpRRAFO_9nyybpngbeVpRRRRoo:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRR:
 nop
 .data
-.globl b__MGIA7naqebvq8uneqjner5cbjre5fgngf4I1_012OfCbjreFgngfR
+.weak b__MGIA7naqebvq8uneqjner5cbjre5fgngf4I1_012OfCbjreFgngfR
 .type b__MGIA7naqebvq8uneqjner5cbjre5fgngf4I1_012OfCbjreFgngfR,%object
 b__MGIA7naqebvq8uneqjner5cbjre5fgngf4I1_012OfCbjreFgngfR:
 .space __SIZEOF_POINTER__
@@ -298,17 +298,17 @@
 b__MA7naqebvq8uneqjner5cbjre5fgngf4I1_014OcUjCbjreFgngf11trgEnvyVasbRAFg3__18shapgvbaVSiEXAF0_8uvqy_irpVAF3_8EnvyVasbRRRAF3_6FgnghfRRRR:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFR_RRECAF_15__gerr_raq_abqrVFE_RREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFR_RRECAF_15__gerr_raq_abqrVFE_RREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFR_RRECAF_15__gerr_raq_abqrVFE_RREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFR_RRECAF_15__gerr_raq_abqrVFE_RREXG_:
 nop
 .data
-.globl b__MGPA7naqebvq8uneqjner5cbjre5fgngf4I1_012OfCbjreFgngfR0_AF3_11VCbjreFgngfR
+.weak b__MGPA7naqebvq8uneqjner5cbjre5fgngf4I1_012OfCbjreFgngfR0_AF3_11VCbjreFgngfR
 .type b__MGPA7naqebvq8uneqjner5cbjre5fgngf4I1_012OfCbjreFgngfR0_AF3_11VCbjreFgngfR,%object
 b__MGPA7naqebvq8uneqjner5cbjre5fgngf4I1_012OfCbjreFgngfR0_AF3_11VCbjreFgngfR:
 .space __SIZEOF_POINTER__
@@ -353,7 +353,7 @@
 b__MA7naqebvq8uneqjner5cbjre5fgngf4I1_014OcUjCbjreFgngf32trgCbjreRagvglFgngrErfvqraplQngnREXAF0_8uvqy_irpVwRRAFg3__18shapgvbaVSiEXAF5_VAF3_31CbjreRagvglFgngrErfvqraplErfhygRRRAF3_6FgnghfRRRR:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_8uneqjner27uvqy_ovaqre_qrngu_erpvcvragRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_
+.weak b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_8uneqjner27uvqy_ovaqre_qrngu_erpvcvragRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_
 .type b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_8uneqjner27uvqy_ovaqre_qrngu_erpvcvragRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_,%function
 b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_8uneqjner27uvqy_ovaqre_qrngu_erpvcvragRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_:
 nop
@@ -363,7 +363,7 @@
 b__MA7naqebvq8uneqjner5cbjre5fgngf4I1_021jevgrRzorqqrqGbCnepryREXAF3_21CbjreRagvglFgngrFcnprRCAF0_6CnepryRzz:
 nop
 .text
-.globl b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
+.weak b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
 .type b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_,%function
 b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_:
 nop
@@ -408,7 +408,7 @@
 b__MA7naqebvq8uneqjner5cbjre5fgngf4I1_014OcUjCbjreFgngf38_uvqy_trgCbjreRagvglFgngrErfvqraplQngnRCAF0_10VVagresnprRCAF0_7qrgnvyf16UvqyVafgehzragbeREXAF0_8uvqy_irpVwRRAFg3__18shapgvbaVSiEXAFN_VAF3_31CbjreRagvglFgngrErfvqraplErfhygRRRAF3_6FgnghfRRRR:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRP2REXFU_
+.weak b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRP2REXFU_
 .type b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRP2REXFU_,%function
 b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRP2REXFU_:
 nop
@@ -438,7 +438,7 @@
 b__MA7naqebvq8uneqjner5cbjre5fgngf4I1_014OcUjCbjreFgngf21frgUNYVafgehzragngvbaRi:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_:
 nop
diff --git a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_050.S b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_050.S
index d5ccb53..1ade973 100644
--- a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_050.S
+++ b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_050.S
@@ -3,7 +3,7 @@
 .data
 .p2align 4
 .data
-.globl b__MGIA7naqebvq8uneqjner7gurezny4I1_09OfGureznyR
+.weak b__MGIA7naqebvq8uneqjner7gurezny4I1_09OfGureznyR
 .type b__MGIA7naqebvq8uneqjner7gurezny4I1_09OfGureznyR,%object
 b__MGIA7naqebvq8uneqjner7gurezny4I1_09OfGureznyR:
 .space __SIZEOF_POINTER__
@@ -78,7 +78,7 @@
 b__MA7naqebvq8uneqjner7gurezny4I1_08VGurezny5qrohtREXAF0_11uvqy_unaqyrREXAF0_8uvqy_irpVAF0_11uvqy_fgevatRRR:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFT_RRECAF_15__gerr_raq_abqrVFG_RREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFT_RRECAF_15__gerr_raq_abqrVFG_RREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFT_RRECAF_15__gerr_raq_abqrVFG_RREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFT_RRECAF_15__gerr_raq_abqrVFG_RREXG_:
 nop
@@ -103,12 +103,12 @@
 b__MA7naqebvq8uneqjner7gurezny4I1_08VGurezny13hayvaxGbQrnguREXAF_2fcVAF0_20uvqy_qrngu_erpvcvragRRR:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRR:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRP2REXFU_
+.weak b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRP2REXFU_
 .type b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRP2REXFU_,%function
 b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRP2REXFU_:
 nop
@@ -148,7 +148,7 @@
 b__MA7naqebvq8uneqjner7gurezny4I1_09OfGureznyP1RAF_2fcVAF2_8VGureznyRRR:
 nop
 .text
-.globl b__MAXFg3__18shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF7_F7_F7_CAF_6irpgbeVCiAF_9nyybpngbeVF9_RRRRRRpyRF5_F7_F7_F7_F7_FQ_
+.weak b__MAXFg3__18shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF7_F7_F7_CAF_6irpgbeVCiAF_9nyybpngbeVF9_RRRRRRpyRF5_F7_F7_F7_F7_FQ_
 .type b__MAXFg3__18shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF7_F7_F7_CAF_6irpgbeVCiAF_9nyybpngbeVF9_RRRRRRpyRF5_F7_F7_F7_F7_FQ_,%function
 b__MAXFg3__18shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF7_F7_F7_CAF_6irpgbeVCiAF_9nyybpngbeVF9_RRRRRRpyRF5_F7_F7_F7_F7_FQ_:
 nop
@@ -203,7 +203,7 @@
 b__MA7naqebvq8uneqjner7gurezny4I1_08VGurezny8pnfgSebzREXAF_2fcVF3_RRo:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_:
 nop
@@ -228,7 +228,7 @@
 b__MA7naqebvq8uneqjner7gurezny4I1_08VGurezny19vagresnprQrfpevcgbeRAFg3__18shapgvbaVSiEXAF0_11uvqy_fgevatRRRR:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_:
 nop
@@ -253,7 +253,7 @@
 b__MA7naqebvq8uneqjner7gurezny4I1_08VGurezny11yvaxGbQrnguREXAF_2fcVAF0_20uvqy_qrngu_erpvcvragRRRz:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFR_RRECAF_15__gerr_raq_abqrVFE_RREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFR_RRECAF_15__gerr_raq_abqrVFE_RREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFR_RRECAF_15__gerr_raq_abqrVFE_RREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFR_RRECAF_15__gerr_raq_abqrVFE_RREXG_:
 nop
@@ -268,7 +268,7 @@
 b__MGua32_A7naqebvq8uneqjner7gurezny4I1_011OaUjGureznyQ0Ri:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_7gurezny4I1_08VGureznyRAF_4uvqy4onfr4I1_05VOnfrRAF4_11OcUjGureznyRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_7gurezny4I1_08VGureznyRAF_4uvqy4onfr4I1_05VOnfrRAF4_11OcUjGureznyRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo
 .type b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_7gurezny4I1_08VGureznyRAF_4uvqy4onfr4I1_05VOnfrRAF4_11OcUjGureznyRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_7gurezny4I1_08VGureznyRAF_4uvqy4onfr4I1_05VOnfrRAF4_11OcUjGureznyRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo:
 nop
@@ -283,7 +283,7 @@
 b__MA7naqebvq8uneqjner7gurezny4I1_08VGurezny12trgQrohtVasbRAFg3__18shapgvbaVSiEXAF_4uvqy4onfr4I1_09QrohtVasbRRRR:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRR:
 nop
@@ -308,7 +308,7 @@
 b__MA7naqebvq8uneqjner7gurezny4I1_011OcUjGurezny14vagresnprPunvaRAFg3__18shapgvbaVSiEXAF0_8uvqy_irpVAF0_11uvqy_fgevatRRRRRR:
 nop
 .text
-.globl b__MAFg3__16irpgbeVCiAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_
+.weak b__MAFg3__16irpgbeVCiAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_
 .type b__MAFg3__16irpgbeVCiAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_,%function
 b__MAFg3__16irpgbeVCiAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_:
 nop
@@ -373,7 +373,7 @@
 b__MA7naqebvq8uneqjner7gurezny4I1_011OcUjGurezny12trgPchHfntrfRAFg3__18shapgvbaVSiEXAF2_13GureznyFgnghfREXAF0_8uvqy_irpVAF2_8PchHfntrRRRRRR:
 nop
 .text
-.globl b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
+.weak b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
 .type b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_,%function
 b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_:
 nop
@@ -388,7 +388,7 @@
 b__MGPA7naqebvq8uneqjner7gurezny4I1_011OcUjGureznyR16_AF0_11OcUjErsOnfrR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_7gurezny4I1_011OcUjGureznyRAF4_8VGureznyRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_7gurezny4I1_011OcUjGureznyRAF4_8VGureznyRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo
 .type b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_7gurezny4I1_011OcUjGureznyRAF4_8VGureznyRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_7gurezny4I1_011OcUjGureznyRAF4_8VGureznyRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo:
 nop
@@ -423,12 +423,12 @@
 b__MA7naqebvq8uneqjner7gurezny4I1_08VGurezny12trgUnfuPunvaRAFg3__18shapgvbaVSiEXAF0_8uvqy_irpVAF0_10uvqy_neenlVuYz32RWRRRRRRRR:
 nop
 .text
-.globl b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
+.weak b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
 .type b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_,%function
 b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_:
 nop
 .data
-.globl b__MGPA7naqebvq8uneqjner7gurezny4I1_09OfGureznyR0_AF2_8VGureznyR
+.weak b__MGPA7naqebvq8uneqjner7gurezny4I1_09OfGureznyR0_AF2_8VGureznyR
 .type b__MGPA7naqebvq8uneqjner7gurezny4I1_09OfGureznyR0_AF2_8VGureznyR,%object
 b__MGPA7naqebvq8uneqjner7gurezny4I1_09OfGureznyR0_AF2_8VGureznyR:
 .space __SIZEOF_POINTER__
@@ -468,7 +468,7 @@
 b__MA7naqebvq8uneqjner7gurezny4I1_08VGurezny10trgFreivprREXAFg3__112onfvp_fgevatVpAF4_11pune_genvgfVpRRAF4_9nyybpngbeVpRRRRo:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_8uneqjner27uvqy_ovaqre_qrngu_erpvcvragRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_
+.weak b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_8uneqjner27uvqy_ovaqre_qrngu_erpvcvragRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_
 .type b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_8uneqjner27uvqy_ovaqre_qrngu_erpvcvragRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_,%function
 b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_8uneqjner27uvqy_ovaqre_qrngu_erpvcvragRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_:
 nop
diff --git a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_051.S b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_051.S
index c020d85..5dc9038 100644
--- a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_051.S
+++ b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_051.S
@@ -18,12 +18,12 @@
 b__MA7naqebvq8uneqjner2gi3prp4I1_011OcUjUqzvPrp15_uvqy_frgBcgvbaRCAF0_10VVagresnprRCAF0_7qrgnvyf16UvqyVafgehzragbeRAF3_9BcgvbaXrlRo:
 nop
 .text
-.globl b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
+.weak b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
 .type b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_,%function
 b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRR:
 nop
@@ -58,7 +58,7 @@
 b__MGPA7naqebvq8uneqjner2gi3prp4I1_011OcUjUqzvPrpR0_AF_4uvqy4onfr4I1_05VOnfrR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_8uneqjner27uvqy_ovaqre_qrngu_erpvcvragRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_
+.weak b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_8uneqjner27uvqy_ovaqre_qrngu_erpvcvragRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_
 .type b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_8uneqjner27uvqy_ovaqre_qrngu_erpvcvragRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_,%function
 b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_8uneqjner27uvqy_ovaqre_qrngu_erpvcvragRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_:
 nop
@@ -73,7 +73,7 @@
 b__MA7naqebvq8uneqjner2gi3prp4I1_08VUqzvPrp11yvaxGbQrnguREXAF_2fcVAF0_20uvqy_qrngu_erpvcvragRRRz:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFR_RRECAF_15__gerr_raq_abqrVFE_RREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFR_RRECAF_15__gerr_raq_abqrVFE_RREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFR_RRECAF_15__gerr_raq_abqrVFE_RREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFR_RRECAF_15__gerr_raq_abqrVFE_RREXG_:
 nop
@@ -98,7 +98,7 @@
 b__MA7naqebvq8uneqjner2gi3prp4I1_08VUqzvPrp8pnfgSebzREXAF_2fcVF4_RRo:
 nop
 .text
-.globl b__MAXFg3__18shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF7_F7_F7_CAF_6irpgbeVCiAF_9nyybpngbeVF9_RRRRRRpyRF5_F7_F7_F7_F7_FQ_
+.weak b__MAXFg3__18shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF7_F7_F7_CAF_6irpgbeVCiAF_9nyybpngbeVF9_RRRRRRpyRF5_F7_F7_F7_F7_FQ_
 .type b__MAXFg3__18shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF7_F7_F7_CAF_6irpgbeVCiAF_9nyybpngbeVF9_RRRRRRpyRF5_F7_F7_F7_F7_FQ_,%function
 b__MAXFg3__18shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF7_F7_F7_CAF_6irpgbeVCiAF_9nyybpngbeVF9_RRRRRRpyRF5_F7_F7_F7_F7_FQ_:
 nop
@@ -108,7 +108,7 @@
 b__MA7naqebvq8uneqjner2gi3prp4I1_017OfUqzvPrpPnyyonpx13nqqBarjnlGnfxRAFg3__18shapgvbaVSiiRRR:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_:
 nop
@@ -218,7 +218,7 @@
 b__MGua32_A7naqebvq8uneqjner2gi3prp4I1_019OaUjUqzvPrpPnyyonpxQ1Ri:
 nop
 .text
-.globl b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
+.weak b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
 .type b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_,%function
 b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_:
 nop
@@ -373,7 +373,7 @@
 b__MA7naqebvq8uneqjner2gi3prp4I1_011OcUjUqzvPrp17_uvqy_fraqZrffntrRCAF0_10VVagresnprRCAF0_7qrgnvyf16UvqyVafgehzragbeREXAF3_10PrpZrffntrR:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_2gi3prp4I1_011OcUjUqzvPrpRAF5_8VUqzvPrpRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFO_11pune_genvgfVpRRAFO_9nyybpngbeVpRRRRoo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_2gi3prp4I1_011OcUjUqzvPrpRAF5_8VUqzvPrpRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFO_11pune_genvgfVpRRAFO_9nyybpngbeVpRRRRoo
 .type b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_2gi3prp4I1_011OcUjUqzvPrpRAF5_8VUqzvPrpRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFO_11pune_genvgfVpRRAFO_9nyybpngbeVpRRRRoo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_2gi3prp4I1_011OcUjUqzvPrpRAF5_8VUqzvPrpRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFO_11pune_genvgfVpRRAFO_9nyybpngbeVpRRRRoo:
 nop
@@ -453,7 +453,7 @@
 b__MGIA7naqebvq8uneqjner2gi3prp4I1_019OaUjUqzvPrpPnyyonpxR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIA7naqebvq8uneqjner2gi3prp4I1_09OfUqzvPrpR
+.weak b__MGIA7naqebvq8uneqjner2gi3prp4I1_09OfUqzvPrpR
 .type b__MGIA7naqebvq8uneqjner2gi3prp4I1_09OfUqzvPrpR,%object
 b__MGIA7naqebvq8uneqjner2gi3prp4I1_09OfUqzvPrpR:
 .space __SIZEOF_POINTER__
@@ -508,7 +508,7 @@
 b__MA7naqebvq8uneqjner2gi3prp4I1_09OfUqzvPrp13nqqBarjnlGnfxRAFg3__18shapgvbaVSiiRRR:
 nop
 .data
-.globl b__MGPA7naqebvq8uneqjner2gi3prp4I1_09OfUqzvPrpR0_AF3_8VUqzvPrpR
+.weak b__MGPA7naqebvq8uneqjner2gi3prp4I1_09OfUqzvPrpR0_AF3_8VUqzvPrpR
 .type b__MGPA7naqebvq8uneqjner2gi3prp4I1_09OfUqzvPrpR0_AF3_8VUqzvPrpR,%object
 b__MGPA7naqebvq8uneqjner2gi3prp4I1_09OfUqzvPrpR0_AF3_8VUqzvPrpR:
 .space __SIZEOF_POINTER__
@@ -543,7 +543,7 @@
 b__MA7naqebvq8uneqjner2gi3prp4I1_016VUqzvPrpPnyyonpx8pnfgSebzREXAF_2fcVAF_4uvqy4onfr4I1_05VOnfrRRRo:
 nop
 .data
-.globl b__MGIA7naqebvq8uneqjner2gi3prp4I1_017OfUqzvPrpPnyyonpxR
+.weak b__MGIA7naqebvq8uneqjner2gi3prp4I1_017OfUqzvPrpPnyyonpxR
 .type b__MGIA7naqebvq8uneqjner2gi3prp4I1_017OfUqzvPrpPnyyonpxR,%object
 b__MGIA7naqebvq8uneqjner2gi3prp4I1_017OfUqzvPrpPnyyonpxR:
 .space __SIZEOF_POINTER__
@@ -578,7 +578,7 @@
 b__MGPA7naqebvq8uneqjner2gi3prp4I1_011OcUjUqzvPrpR16_AF0_11OcUjErsOnfrR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_2gi3prp4I1_016VUqzvPrpPnyyonpxRAF_4uvqy4onfr4I1_05VOnfrRAF5_19OcUjUqzvPrpPnyyonpxRRRAF0_6ErgheaVAF_2fcVG_RRRRAFQ_VG0_RRCXpo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_2gi3prp4I1_016VUqzvPrpPnyyonpxRAF_4uvqy4onfr4I1_05VOnfrRAF5_19OcUjUqzvPrpPnyyonpxRRRAF0_6ErgheaVAF_2fcVG_RRRRAFQ_VG0_RRCXpo
 .type b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_2gi3prp4I1_016VUqzvPrpPnyyonpxRAF_4uvqy4onfr4I1_05VOnfrRAF5_19OcUjUqzvPrpPnyyonpxRRRAF0_6ErgheaVAF_2fcVG_RRRRAFQ_VG0_RRCXpo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_2gi3prp4I1_016VUqzvPrpPnyyonpxRAF_4uvqy4onfr4I1_05VOnfrRAF5_19OcUjUqzvPrpPnyyonpxRRRAF0_6ErgheaVAF_2fcVG_RRRRAFQ_VG0_RRCXpo:
 nop
@@ -598,7 +598,7 @@
 b__MA7naqebvq8uneqjner2gi3prp4I1_08VUqzvPrp19vagresnprQrfpevcgbeRAFg3__18shapgvbaVSiEXAF0_11uvqy_fgevatRRRR:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRP2REXFU_
+.weak b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRP2REXFU_
 .type b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRP2REXFU_,%function
 b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRP2REXFU_:
 nop
@@ -628,7 +628,7 @@
 b__MA7naqebvq8uneqjner2gi3prp4I1_09OfUqzvPrpP2RAF_2fcVAF3_8VUqzvPrpRRR:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_2gi3prp4I1_08VUqzvPrpRAF_4uvqy4onfr4I1_05VOnfrRAF5_11OcUjUqzvPrpRRRAF0_6ErgheaVAF_2fcVG_RRRRAFQ_VG0_RRCXpo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_2gi3prp4I1_08VUqzvPrpRAF_4uvqy4onfr4I1_05VOnfrRAF5_11OcUjUqzvPrpRRRAF0_6ErgheaVAF_2fcVG_RRRRAFQ_VG0_RRCXpo
 .type b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_2gi3prp4I1_08VUqzvPrpRAF_4uvqy4onfr4I1_05VOnfrRAF5_11OcUjUqzvPrpRRRAF0_6ErgheaVAF_2fcVG_RRRRAFQ_VG0_RRCXpo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_2gi3prp4I1_08VUqzvPrpRAF_4uvqy4onfr4I1_05VOnfrRAF5_11OcUjUqzvPrpRRRAF0_6ErgheaVAF_2fcVG_RRRRAFQ_VG0_RRCXpo:
 nop
@@ -708,7 +708,7 @@
 b__MA7naqebvq8uneqjner2gi3prp4I1_011OaUjUqzvPrp17_uvqy_frgPnyyonpxRCAF_4uvqy4onfr4I1_08OaUjOnfrREXAF0_6CnepryRCFN_AFg3__18shapgvbaVSiEFN_RRR:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_2gi3prp4I1_016VUqzvPrpPnyyonpxRiRRAF_2fcVG_RRF9_
+.weak b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_2gi3prp4I1_016VUqzvPrpPnyyonpxRiRRAF_2fcVG_RRF9_
 .type b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_2gi3prp4I1_016VUqzvPrpPnyyonpxRiRRAF_2fcVG_RRF9_,%function
 b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_2gi3prp4I1_016VUqzvPrpPnyyonpxRiRRAF_2fcVG_RRF9_:
 nop
@@ -783,7 +783,7 @@
 b__MA7naqebvq8uneqjner2gi3prp4I1_011OcUjUqzvPrp19pyrneYbtvpnyNqqerffRi:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRR:
 nop
@@ -848,7 +848,7 @@
 b__MA7naqebvq8uneqjner2gi3prp4I1_08VUqzvPrp5qrohtREXAF0_11uvqy_unaqyrREXAF0_8uvqy_irpVAF0_11uvqy_fgevatRRR:
 nop
 .text
-.globl b__MAFg3__16irpgbeVCiAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_
+.weak b__MAFg3__16irpgbeVCiAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_
 .type b__MAFg3__16irpgbeVCiAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_,%function
 b__MAFg3__16irpgbeVCiAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_:
 nop
@@ -888,12 +888,12 @@
 b__MA7naqebvq8uneqjner2gi3prp4I1_08VUqzvPrp13gelTrgFreivprREXAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRRo:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFT_RRECAF_15__gerr_raq_abqrVFG_RREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFT_RRECAF_15__gerr_raq_abqrVFG_RREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFT_RRECAF_15__gerr_raq_abqrVFG_RREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFT_RRECAF_15__gerr_raq_abqrVFG_RREXG_:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_:
 nop
@@ -903,7 +903,7 @@
 b__MGPA7naqebvq8uneqjner2gi3prp4I1_08VUqzvPrpR0_AF_4uvqy4onfr4I1_05VOnfrR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGPA7naqebvq8uneqjner2gi3prp4I1_017OfUqzvPrpPnyyonpxR0_AF3_16VUqzvPrpPnyyonpxR
+.weak b__MGPA7naqebvq8uneqjner2gi3prp4I1_017OfUqzvPrpPnyyonpxR0_AF3_16VUqzvPrpPnyyonpxR
 .type b__MGPA7naqebvq8uneqjner2gi3prp4I1_017OfUqzvPrpPnyyonpxR0_AF3_16VUqzvPrpPnyyonpxR,%object
 b__MGPA7naqebvq8uneqjner2gi3prp4I1_017OfUqzvPrpPnyyonpxR0_AF3_16VUqzvPrpPnyyonpxR:
 .space __SIZEOF_POINTER__
@@ -928,7 +928,7 @@
 b__MA7naqebvq8uneqjner2gi3prp4I1_016VUqzvPrpPnyyonpx21frgUNYVafgehzragngvbaRi:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_2gi3prp4I1_019OcUjUqzvPrpPnyyonpxRAF5_16VUqzvPrpPnyyonpxRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFO_11pune_genvgfVpRRAFO_9nyybpngbeVpRRRRoo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_2gi3prp4I1_019OcUjUqzvPrpPnyyonpxRAF5_16VUqzvPrpPnyyonpxRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFO_11pune_genvgfVpRRAFO_9nyybpngbeVpRRRRoo
 .type b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_2gi3prp4I1_019OcUjUqzvPrpPnyyonpxRAF5_16VUqzvPrpPnyyonpxRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFO_11pune_genvgfVpRRAFO_9nyybpngbeVpRRRRoo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_2gi3prp4I1_019OcUjUqzvPrpPnyyonpxRAF5_16VUqzvPrpPnyyonpxRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFO_11pune_genvgfVpRRAFO_9nyybpngbeVpRRRRoo:
 nop
@@ -938,7 +938,7 @@
 b__MGPA7naqebvq8uneqjner2gi3prp4I1_019OcUjUqzvPrpPnyyonpxR0_AF_4uvqy4onfr4I1_05VOnfrR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_2gi3prp4I1_016VUqzvPrpPnyyonpxRAF4_19OcUjUqzvPrpPnyyonpxRAF4_19OaUjUqzvPrpPnyyonpxRRRAF_2fcVG_RREXAF8_VAF0_7VOvaqreRRR
+.weak b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_2gi3prp4I1_016VUqzvPrpPnyyonpxRAF4_19OcUjUqzvPrpPnyyonpxRAF4_19OaUjUqzvPrpPnyyonpxRRRAF_2fcVG_RREXAF8_VAF0_7VOvaqreRRR
 .type b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_2gi3prp4I1_016VUqzvPrpPnyyonpxRAF4_19OcUjUqzvPrpPnyyonpxRAF4_19OaUjUqzvPrpPnyyonpxRRRAF_2fcVG_RREXAF8_VAF0_7VOvaqreRRR,%function
 b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_2gi3prp4I1_016VUqzvPrpPnyyonpxRAF4_19OcUjUqzvPrpPnyyonpxRAF4_19OaUjUqzvPrpPnyyonpxRRRAF_2fcVG_RREXAF8_VAF0_7VOvaqreRRR:
 nop
diff --git a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_052.S b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_052.S
index 5283131..9fc589f 100644
--- a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_052.S
+++ b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_052.S
@@ -3,7 +3,7 @@
 .data
 .p2align 4
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_:
 nop
@@ -28,7 +28,7 @@
 b__MA7naqebvq8uneqjner2gi5vachg4I1_016VGiVachgPnyyonpx10qrfpevcgbeR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_:
 nop
@@ -73,7 +73,7 @@
 b__MA7naqebvq8uneqjner2gi5vachg4I1_08VGiVachg19vagresnprQrfpevcgbeRAFg3__18shapgvbaVSiEXAF0_11uvqy_fgevatRRRR:
 nop
 .data
-.globl b__MGPA7naqebvq8uneqjner2gi5vachg4I1_09OfGiVachgR0_AF3_8VGiVachgR
+.weak b__MGPA7naqebvq8uneqjner2gi5vachg4I1_09OfGiVachgR0_AF3_8VGiVachgR
 .type b__MGPA7naqebvq8uneqjner2gi5vachg4I1_09OfGiVachgR0_AF3_8VGiVachgR,%object
 b__MGPA7naqebvq8uneqjner2gi5vachg4I1_09OfGiVachgR0_AF3_8VGiVachgR:
 .space __SIZEOF_POINTER__
@@ -83,7 +83,7 @@
 b__MA7naqebvq8uneqjner2gi5vachg4I1_016VGiVachgPnyyonpx11yvaxGbQrnguREXAF_2fcVAF0_20uvqy_qrngu_erpvcvragRRRz:
 nop
 .data
-.globl b__MGPA7naqebvq8uneqjner2gi5vachg4I1_017OfGiVachgPnyyonpxR0_AF3_16VGiVachgPnyyonpxR
+.weak b__MGPA7naqebvq8uneqjner2gi5vachg4I1_017OfGiVachgPnyyonpxR0_AF3_16VGiVachgPnyyonpxR
 .type b__MGPA7naqebvq8uneqjner2gi5vachg4I1_017OfGiVachgPnyyonpxR0_AF3_16VGiVachgPnyyonpxR,%object
 b__MGPA7naqebvq8uneqjner2gi5vachg4I1_017OfGiVachgPnyyonpxR0_AF3_16VGiVachgPnyyonpxR:
 .space __SIZEOF_POINTER__
@@ -118,7 +118,7 @@
 b__MA7naqebvq8uneqjner2gi5vachg4I1_011OcUjGiVachg21frgUNYVafgehzragngvbaRi:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRR:
 nop
@@ -183,12 +183,12 @@
 b__MA7naqebvq8uneqjner2gi5vachg4I1_011OaUjGiVachgQ1Ri:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRP2REXFU_
+.weak b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRP2REXFU_
 .type b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRP2REXFU_,%function
 b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRP2REXFU_:
 nop
 .data
-.globl b__MGIA7naqebvq8uneqjner2gi5vachg4I1_017OfGiVachgPnyyonpxR
+.weak b__MGIA7naqebvq8uneqjner2gi5vachg4I1_017OfGiVachgPnyyonpxR
 .type b__MGIA7naqebvq8uneqjner2gi5vachg4I1_017OfGiVachgPnyyonpxR,%object
 b__MGIA7naqebvq8uneqjner2gi5vachg4I1_017OfGiVachgPnyyonpxR:
 .space __SIZEOF_POINTER__
@@ -228,7 +228,7 @@
 b__MA7naqebvq8uneqjner2gi5vachg4I1_08VGiVachg14vagresnprPunvaRAFg3__18shapgvbaVSiEXAF0_8uvqy_irpVAF0_11uvqy_fgevatRRRRRR:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFT_RRECAF_15__gerr_raq_abqrVFG_RREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFT_RRECAF_15__gerr_raq_abqrVFG_RREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFT_RRECAF_15__gerr_raq_abqrVFG_RREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFT_RRECAF_15__gerr_raq_abqrVFG_RREXG_:
 nop
@@ -248,12 +248,12 @@
 b__MA7naqebvq8uneqjner2gi5vachg4I1_09OfGiVachg13nqqBarjnlGnfxRAFg3__18shapgvbaVSiiRRR:
 nop
 .text
-.globl b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
+.weak b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
 .type b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_,%function
 b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRR:
 nop
@@ -373,7 +373,7 @@
 b__MGPA7naqebvq8uneqjner2gi5vachg4I1_019OcUjGiVachgPnyyonpxR8_AF0_10VVagresnprR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_2gi5vachg4I1_011OcUjGiVachgRAF5_8VGiVachgRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFO_11pune_genvgfVpRRAFO_9nyybpngbeVpRRRRoo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_2gi5vachg4I1_011OcUjGiVachgRAF5_8VGiVachgRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFO_11pune_genvgfVpRRAFO_9nyybpngbeVpRRRRoo
 .type b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_2gi5vachg4I1_011OcUjGiVachgRAF5_8VGiVachgRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFO_11pune_genvgfVpRRAFO_9nyybpngbeVpRRRRoo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_2gi5vachg4I1_011OcUjGiVachgRAF5_8VGiVachgRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFO_11pune_genvgfVpRRAFO_9nyybpngbeVpRRRRoo:
 nop
@@ -418,7 +418,7 @@
 b__MA7naqebvq8uneqjner2gi5vachg4I1_011OcUjGiVachg11pybfrFgernzRvv:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_2gi5vachg4I1_016VGiVachgPnyyonpxRiRRAF_2fcVG_RRF9_
+.weak b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_2gi5vachg4I1_016VGiVachgPnyyonpxRiRRAF_2fcVG_RRF9_
 .type b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_2gi5vachg4I1_016VGiVachgPnyyonpxRiRRAF_2fcVG_RRF9_,%function
 b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_2gi5vachg4I1_016VGiVachgPnyyonpxRiRRAF_2fcVG_RRF9_:
 nop
@@ -443,12 +443,12 @@
 b__MGPA7naqebvq8uneqjner2gi5vachg4I1_019OaUjGiVachgPnyyonpxR0_AF_4uvqy4onfr4I1_08OaUjOnfrR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
+.weak b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
 .type b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_,%function
 b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFR_RRECAF_15__gerr_raq_abqrVFE_RREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFR_RRECAF_15__gerr_raq_abqrVFE_RREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFR_RRECAF_15__gerr_raq_abqrVFE_RREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFR_RRECAF_15__gerr_raq_abqrVFE_RREXG_:
 nop
@@ -503,7 +503,7 @@
 b__MA7naqebvq8uneqjner2gi5vachg4I1_011OcUjGiVachg11yvaxGbQrnguREXAF_2fcVAF0_20uvqy_qrngu_erpvcvragRRRz:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_8uneqjner27uvqy_ovaqre_qrngu_erpvcvragRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_
+.weak b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_8uneqjner27uvqy_ovaqre_qrngu_erpvcvragRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_
 .type b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_8uneqjner27uvqy_ovaqre_qrngu_erpvcvragRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_,%function
 b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_8uneqjner27uvqy_ovaqre_qrngu_erpvcvragRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_:
 nop
@@ -573,7 +573,7 @@
 b__MGPA7naqebvq8uneqjner2gi5vachg4I1_011OaUjGiVachgR0_AF0_7VOvaqreR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIA7naqebvq8uneqjner2gi5vachg4I1_09OfGiVachgR
+.weak b__MGIA7naqebvq8uneqjner2gi5vachg4I1_09OfGiVachgR
 .type b__MGIA7naqebvq8uneqjner2gi5vachg4I1_09OfGiVachgR,%object
 b__MGIA7naqebvq8uneqjner2gi5vachg4I1_09OfGiVachgR:
 .space __SIZEOF_POINTER__
@@ -593,7 +593,7 @@
 b__MA7naqebvq8uneqjner2gi5vachg4I1_08VGiVachg5qrohtREXAF0_11uvqy_unaqyrREXAF0_8uvqy_irpVAF0_11uvqy_fgevatRRR:
 nop
 .text
-.globl b__MAXFg3__18shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF7_F7_F7_CAF_6irpgbeVCiAF_9nyybpngbeVF9_RRRRRRpyRF5_F7_F7_F7_F7_FQ_
+.weak b__MAXFg3__18shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF7_F7_F7_CAF_6irpgbeVCiAF_9nyybpngbeVF9_RRRRRRpyRF5_F7_F7_F7_F7_FQ_
 .type b__MAXFg3__18shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF7_F7_F7_CAF_6irpgbeVCiAF_9nyybpngbeVF9_RRRRRRpyRF5_F7_F7_F7_F7_FQ_,%function
 b__MAXFg3__18shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF7_F7_F7_CAF_6irpgbeVCiAF_9nyybpngbeVF9_RRRRRRpyRF5_F7_F7_F7_F7_FQ_:
 nop
@@ -613,7 +613,7 @@
 b__MA7naqebvq8uneqjner2gi5vachg4I1_011OcUjGiVachg10bcraFgernzRvvAFg3__18shapgvbaVSiAF3_6ErfhygREXAF0_11uvqy_unaqyrRRRR:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_2gi5vachg4I1_08VGiVachgRAF_4uvqy4onfr4I1_05VOnfrRAF5_11OcUjGiVachgRRRAF0_6ErgheaVAF_2fcVG_RRRRAFQ_VG0_RRCXpo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_2gi5vachg4I1_08VGiVachgRAF_4uvqy4onfr4I1_05VOnfrRAF5_11OcUjGiVachgRRRAF0_6ErgheaVAF_2fcVG_RRRRAFQ_VG0_RRCXpo
 .type b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_2gi5vachg4I1_08VGiVachgRAF_4uvqy4onfr4I1_05VOnfrRAF5_11OcUjGiVachgRRRAF0_6ErgheaVAF_2fcVG_RRRRAFQ_VG0_RRCXpo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_2gi5vachg4I1_08VGiVachgRAF_4uvqy4onfr4I1_05VOnfrRAF5_11OcUjGiVachgRRRAF0_6ErgheaVAF_2fcVG_RRRRAFQ_VG0_RRCXpo:
 nop
@@ -683,7 +683,7 @@
 b__MA7naqebvq8uneqjner2gi5vachg4I1_011OcUjGiVachg23trgFgernzPbasvthengvbafRvAFg3__18shapgvbaVSiAF3_6ErfhygREXAF0_8uvqy_irpVAF3_14GiFgernzPbasvtRRRRRR:
 nop
 .text
-.globl b__MAFg3__16irpgbeVCiAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_
+.weak b__MAFg3__16irpgbeVCiAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_
 .type b__MAFg3__16irpgbeVCiAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_,%function
 b__MAFg3__16irpgbeVCiAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_:
 nop
@@ -723,12 +723,12 @@
 b__MA7naqebvq8uneqjner2gi5vachg4I1_08VGiVachg12trgUnfuPunvaRAFg3__18shapgvbaVSiEXAF0_8uvqy_irpVAF0_10uvqy_neenlVuYz32RWRRRRRRRR:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_2gi5vachg4I1_019OcUjGiVachgPnyyonpxRAF5_16VGiVachgPnyyonpxRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFO_11pune_genvgfVpRRAFO_9nyybpngbeVpRRRRoo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_2gi5vachg4I1_019OcUjGiVachgPnyyonpxRAF5_16VGiVachgPnyyonpxRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFO_11pune_genvgfVpRRAFO_9nyybpngbeVpRRRRoo
 .type b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_2gi5vachg4I1_019OcUjGiVachgPnyyonpxRAF5_16VGiVachgPnyyonpxRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFO_11pune_genvgfVpRRAFO_9nyybpngbeVpRRRRoo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_2gi5vachg4I1_019OcUjGiVachgPnyyonpxRAF5_16VGiVachgPnyyonpxRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFO_11pune_genvgfVpRRAFO_9nyybpngbeVpRRRRoo:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_2gi5vachg4I1_016VGiVachgPnyyonpxRAF4_19OcUjGiVachgPnyyonpxRAF4_19OaUjGiVachgPnyyonpxRRRAF_2fcVG_RREXAF8_VAF0_7VOvaqreRRR
+.weak b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_2gi5vachg4I1_016VGiVachgPnyyonpxRAF4_19OcUjGiVachgPnyyonpxRAF4_19OaUjGiVachgPnyyonpxRRRAF_2fcVG_RREXAF8_VAF0_7VOvaqreRRR
 .type b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_2gi5vachg4I1_016VGiVachgPnyyonpxRAF4_19OcUjGiVachgPnyyonpxRAF4_19OaUjGiVachgPnyyonpxRRRAF_2fcVG_RREXAF8_VAF0_7VOvaqreRRR,%function
 b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_2gi5vachg4I1_016VGiVachgPnyyonpxRAF4_19OcUjGiVachgPnyyonpxRAF4_19OaUjGiVachgPnyyonpxRRRAF_2fcVG_RREXAF8_VAF0_7VOvaqreRRR:
 nop
@@ -803,7 +803,7 @@
 b__MA7naqebvq8uneqjner2gi5vachg4I1_016VGiVachgPnyyonpx21frgUNYVafgehzragngvbaRi:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_2gi5vachg4I1_016VGiVachgPnyyonpxRAF_4uvqy4onfr4I1_05VOnfrRAF5_19OcUjGiVachgPnyyonpxRRRAF0_6ErgheaVAF_2fcVG_RRRRAFQ_VG0_RRCXpo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_2gi5vachg4I1_016VGiVachgPnyyonpxRAF_4uvqy4onfr4I1_05VOnfrRAF5_19OcUjGiVachgPnyyonpxRRRAF0_6ErgheaVAF_2fcVG_RRRRAFQ_VG0_RRCXpo
 .type b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_2gi5vachg4I1_016VGiVachgPnyyonpxRAF_4uvqy4onfr4I1_05VOnfrRAF5_19OcUjGiVachgPnyyonpxRRRAF0_6ErgheaVAF_2fcVG_RRRRAFQ_VG0_RRCXpo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_2gi5vachg4I1_016VGiVachgPnyyonpxRAF_4uvqy4onfr4I1_05VOnfrRAF5_19OcUjGiVachgPnyyonpxRRRAF0_6ErgheaVAF_2fcVG_RRRRAFQ_VG0_RRCXpo:
 nop
diff --git a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_053.S b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_053.S
index 4a1b64c..21851f2 100644
--- a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_053.S
+++ b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_053.S
@@ -83,7 +83,7 @@
 b__MA7naqebvq8uneqjner8ivoengbe4I1_09VIvoengbe5qrohtREXAF0_11uvqy_unaqyrREXAF0_8uvqy_irpVAF0_11uvqy_fgevatRRR:
 nop
 .data
-.globl b__MGPA7naqebvq8uneqjner8ivoengbe4I1_010OfIvoengbeR0_AF2_9VIvoengbeR
+.weak b__MGPA7naqebvq8uneqjner8ivoengbe4I1_010OfIvoengbeR0_AF2_9VIvoengbeR
 .type b__MGPA7naqebvq8uneqjner8ivoengbe4I1_010OfIvoengbeR0_AF2_9VIvoengbeR,%object
 b__MGPA7naqebvq8uneqjner8ivoengbe4I1_010OfIvoengbeR0_AF2_9VIvoengbeR:
 .space __SIZEOF_POINTER__
@@ -123,7 +123,7 @@
 b__MA7naqebvq8uneqjner8ivoengbe4I1_09VIvoengbe4cvatRi:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFT_RRECAF_15__gerr_raq_abqrVFG_RREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFT_RRECAF_15__gerr_raq_abqrVFG_RREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFT_RRECAF_15__gerr_raq_abqrVFG_RREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFT_RRECAF_15__gerr_raq_abqrVFG_RREXG_:
 nop
@@ -148,12 +148,12 @@
 b__MA7naqebvq8uneqjner8ivoengbe4I1_012OcUjIvoengbe24fhccbegfNzcyvghqrPbagebyRi:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRR:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRP2REXFU_
+.weak b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRP2REXFU_
 .type b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRP2REXFU_,%function
 b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRP2REXFU_:
 nop
@@ -168,7 +168,7 @@
 b__MGPA7naqebvq8uneqjner8ivoengbe4I1_012OcUjIvoengbeR16_AF0_11OcUjErsOnfrR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAXFg3__18shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF7_F7_F7_CAF_6irpgbeVCiAF_9nyybpngbeVF9_RRRRRRpyRF5_F7_F7_F7_F7_FQ_
+.weak b__MAXFg3__18shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF7_F7_F7_CAF_6irpgbeVCiAF_9nyybpngbeVF9_RRRRRRpyRF5_F7_F7_F7_F7_FQ_
 .type b__MAXFg3__18shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF7_F7_F7_CAF_6irpgbeVCiAF_9nyybpngbeVF9_RRRRRRpyRF5_F7_F7_F7_F7_FQ_,%function
 b__MAXFg3__18shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF7_F7_F7_CAF_6irpgbeVCiAF_9nyybpngbeVF9_RRRRRRpyRF5_F7_F7_F7_F7_FQ_:
 nop
@@ -213,7 +213,7 @@
 b__MA7naqebvq8uneqjner8ivoengbe4I1_012OcUjIvoengbe3bssRi:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_:
 nop
@@ -253,7 +253,7 @@
 b__MA7naqebvq8uneqjner8ivoengbe4I1_09VIvoengbe17ertvfgreNfFreivprREXAFg3__112onfvp_fgevatVpAF4_11pune_genvgfVpRRAF4_9nyybpngbeVpRRRR:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_:
 nop
@@ -283,7 +283,7 @@
 b__MA7naqebvq8uneqjner8ivoengbe4I1_09VIvoengbe19vagresnprQrfpevcgbeRAFg3__18shapgvbaVSiEXAF0_11uvqy_fgevatRRRR:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFR_RRECAF_15__gerr_raq_abqrVFE_RREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFR_RRECAF_15__gerr_raq_abqrVFE_RREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFR_RRECAF_15__gerr_raq_abqrVFE_RREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFR_RRECAF_15__gerr_raq_abqrVFE_RREXG_:
 nop
@@ -323,12 +323,12 @@
 b__MA7naqebvq8uneqjner8ivoengbe4I1_012OcUjIvoengbe11yvaxGbQrnguREXAF_2fcVAF0_20uvqy_qrngu_erpvcvragRRRz:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRR:
 nop
 .data
-.globl b__MGIA7naqebvq8uneqjner8ivoengbe4I1_010OfIvoengbeR
+.weak b__MGIA7naqebvq8uneqjner8ivoengbe4I1_010OfIvoengbeR
 .type b__MGIA7naqebvq8uneqjner8ivoengbe4I1_010OfIvoengbeR,%object
 b__MGIA7naqebvq8uneqjner8ivoengbe4I1_010OfIvoengbeR:
 .space __SIZEOF_POINTER__
@@ -338,7 +338,7 @@
 b__MA7naqebvq8uneqjner8ivoengbe4I1_09VIvoengbe24ertvfgreSbeAbgvsvpngvbafREXAFg3__112onfvp_fgevatVpAF4_11pune_genvgfVpRRAF4_9nyybpngbeVpRRRREXAF_2fcVAF_4uvqy7znantre4I1_020VFreivprAbgvsvpngvbaRRR:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_8ivoengbe4I1_09VIvoengbeRAF_4uvqy4onfr4I1_05VOnfrRAF4_12OcUjIvoengbeRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_8ivoengbe4I1_09VIvoengbeRAF_4uvqy4onfr4I1_05VOnfrRAF4_12OcUjIvoengbeRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo
 .type b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_8ivoengbe4I1_09VIvoengbeRAF_4uvqy4onfr4I1_05VOnfrRAF4_12OcUjIvoengbeRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_8ivoengbe4I1_09VIvoengbeRAF_4uvqy4onfr4I1_05VOnfrRAF4_12OcUjIvoengbeRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo:
 nop
@@ -348,7 +348,7 @@
 b__MA7naqebvq8uneqjner8ivoengbe4I1_09VIvoengbe12trgUnfuPunvaRAFg3__18shapgvbaVSiEXAF0_8uvqy_irpVAF0_10uvqy_neenlVuYz32RWRRRRRRRR:
 nop
 .text
-.globl b__MAFg3__16irpgbeVCiAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_
+.weak b__MAFg3__16irpgbeVCiAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_
 .type b__MAFg3__16irpgbeVCiAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_,%function
 b__MAFg3__16irpgbeVCiAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_:
 nop
@@ -413,17 +413,17 @@
 b__MA7naqebvq8uneqjner8ivoengbe4I1_012OcUjIvoengbeP1REXAF_2fcVAF0_7VOvaqreRRR:
 nop
 .text
-.globl b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
+.weak b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
 .type b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_,%function
 b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_:
 nop
 .text
-.globl b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
+.weak b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
 .type b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_,%function
 b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_8ivoengbe4I1_012OcUjIvoengbeRAF4_9VIvoengbeRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_8ivoengbe4I1_012OcUjIvoengbeRAF4_9VIvoengbeRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo
 .type b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_8ivoengbe4I1_012OcUjIvoengbeRAF4_9VIvoengbeRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_8ivoengbe4I1_012OcUjIvoengbeRAF4_9VIvoengbeRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo:
 nop
@@ -448,7 +448,7 @@
 b__MA7naqebvq8uneqjner8ivoengbe4I1_012OcUjIvoengbe7cresbezRAF2_6RssrpgRAF2_14RssrpgFgeratguRAFg3__18shapgvbaVSiAF2_6FgnghfRwRRR:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_8uneqjner27uvqy_ovaqre_qrngu_erpvcvragRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_
+.weak b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_8uneqjner27uvqy_ovaqre_qrngu_erpvcvragRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_
 .type b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_8uneqjner27uvqy_ovaqre_qrngu_erpvcvragRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_,%function
 b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_8uneqjner27uvqy_ovaqre_qrngu_erpvcvragRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_:
 nop
diff --git a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_054.S b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_054.S
index 0ea454e..9a6a359 100644
--- a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_054.S
+++ b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_054.S
@@ -28,7 +28,7 @@
 b__MGGA7naqebvq8uneqjner8ivoengbe4I1_112OaUjIvoengbeR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_8ivoengbe4I1_112OcUjIvoengbeRAF4_9VIvoengbeRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_8ivoengbe4I1_112OcUjIvoengbeRAF4_9VIvoengbeRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo
 .type b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_8ivoengbe4I1_112OcUjIvoengbeRAF4_9VIvoengbeRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_8ivoengbe4I1_112OcUjIvoengbeRAF4_9VIvoengbeRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo:
 nop
@@ -38,7 +38,7 @@
 b__MA7naqebvq8uneqjner8ivoengbe4I1_112OaUjIvoengbeQ1Ri:
 nop
 .data
-.globl b__MGIA7naqebvq8uneqjner8ivoengbe4I1_110OfIvoengbeR
+.weak b__MGIA7naqebvq8uneqjner8ivoengbe4I1_110OfIvoengbeR
 .type b__MGIA7naqebvq8uneqjner8ivoengbe4I1_110OfIvoengbeR,%object
 b__MGIA7naqebvq8uneqjner8ivoengbe4I1_110OfIvoengbeR:
 .space __SIZEOF_POINTER__
@@ -53,7 +53,7 @@
 b__MGi0_a24_A7naqebvq8uneqjner8ivoengbe4I1_112OaUjIvoengbeQ0Ri:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_8uneqjner27uvqy_ovaqre_qrngu_erpvcvragRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_
+.weak b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_8uneqjner27uvqy_ovaqre_qrngu_erpvcvragRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_
 .type b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_8uneqjner27uvqy_ovaqre_qrngu_erpvcvragRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_,%function
 b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_8uneqjner27uvqy_ovaqre_qrngu_erpvcvragRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_:
 nop
@@ -73,7 +73,7 @@
 b__MGPA7naqebvq8uneqjner8ivoengbe4I1_112OcUjIvoengbeR0_AF0_11OcVagresnprVAF2_9VIvoengbeRRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__16irpgbeVCiAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_
+.weak b__MAFg3__16irpgbeVCiAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_
 .type b__MAFg3__16irpgbeVCiAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_,%function
 b__MAFg3__16irpgbeVCiAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_:
 nop
@@ -98,7 +98,7 @@
 b__MA7naqebvq8uneqjner8ivoengbe4I1_19VIvoengbe5qrohtREXAF0_11uvqy_unaqyrREXAF0_8uvqy_irpVAF0_11uvqy_fgevatRRR:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFR_RRECAF_15__gerr_raq_abqrVFE_RREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFR_RRECAF_15__gerr_raq_abqrVFE_RREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFR_RRECAF_15__gerr_raq_abqrVFE_RREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFR_RRECAF_15__gerr_raq_abqrVFE_RREXG_:
 nop
@@ -113,12 +113,12 @@
 b__MA7naqebvq8uneqjner8ivoengbe4I1_19VIvoengbe10trgFreivprREXAFg3__112onfvp_fgevatVpAF4_11pune_genvgfVpRRAF4_9nyybpngbeVpRRRRo:
 nop
 .text
-.globl b__MAXFg3__18shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF7_F7_F7_CAF_6irpgbeVCiAF_9nyybpngbeVF9_RRRRRRpyRF5_F7_F7_F7_F7_FQ_
+.weak b__MAXFg3__18shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF7_F7_F7_CAF_6irpgbeVCiAF_9nyybpngbeVF9_RRRRRRpyRF5_F7_F7_F7_F7_FQ_
 .type b__MAXFg3__18shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF7_F7_F7_CAF_6irpgbeVCiAF_9nyybpngbeVF9_RRRRRRpyRF5_F7_F7_F7_F7_FQ_,%function
 b__MAXFg3__18shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF7_F7_F7_CAF_6irpgbeVCiAF_9nyybpngbeVF9_RRRRRRpyRF5_F7_F7_F7_F7_FQ_:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFT_RRECAF_15__gerr_raq_abqrVFG_RREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFT_RRECAF_15__gerr_raq_abqrVFG_RREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFT_RRECAF_15__gerr_raq_abqrVFG_RREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFT_RRECAF_15__gerr_raq_abqrVFG_RREXG_:
 nop
@@ -143,7 +143,7 @@
 b__MA7naqebvq8uneqjner8ivoengbe4I1_19VIvoengbe4cvatRi:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRP2REXFU_
+.weak b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRP2REXFU_
 .type b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRP2REXFU_,%function
 b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRP2REXFU_:
 nop
@@ -198,12 +198,12 @@
 b__MA7naqebvq8uneqjner8ivoengbe4I1_19VIvoengbe13gelTrgFreivprREXAFg3__112onfvp_fgevatVpAF4_11pune_genvgfVpRRAF4_9nyybpngbeVpRRRRo:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_8ivoengbe4I1_19VIvoengbeRAF3_4I1_09VIvoengbeRAF4_12OcUjIvoengbeRRRAF0_6ErgheaVAF_2fcVG_RRRRAFN_VG0_RRCXpo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_8ivoengbe4I1_19VIvoengbeRAF3_4I1_09VIvoengbeRAF4_12OcUjIvoengbeRRRAF0_6ErgheaVAF_2fcVG_RRRRAFN_VG0_RRCXpo
 .type b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_8ivoengbe4I1_19VIvoengbeRAF3_4I1_09VIvoengbeRAF4_12OcUjIvoengbeRRRAF0_6ErgheaVAF_2fcVG_RRRRAFN_VG0_RRCXpo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_8ivoengbe4I1_19VIvoengbeRAF3_4I1_09VIvoengbeRAF4_12OcUjIvoengbeRRRAF0_6ErgheaVAF_2fcVG_RRRRAFN_VG0_RRCXpo:
 nop
@@ -228,12 +228,12 @@
 b__MA7naqebvq8uneqjner8ivoengbe4I1_19VIvoengbe8pnfgSebzREXAF_2fcVAF_4uvqy4onfr4I1_05VOnfrRRRo:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRR:
 nop
@@ -303,7 +303,7 @@
 b__MA7naqebvq8uneqjner8ivoengbe4I1_19VIvoengbe11yvaxGbQrnguREXAF_2fcVAF0_20uvqy_qrngu_erpvcvragRRRz:
 nop
 .data
-.globl b__MGPA7naqebvq8uneqjner8ivoengbe4I1_110OfIvoengbeR0_AF2_9VIvoengbeR
+.weak b__MGPA7naqebvq8uneqjner8ivoengbe4I1_110OfIvoengbeR0_AF2_9VIvoengbeR
 .type b__MGPA7naqebvq8uneqjner8ivoengbe4I1_110OfIvoengbeR0_AF2_9VIvoengbeR,%object
 b__MGPA7naqebvq8uneqjner8ivoengbe4I1_110OfIvoengbeR0_AF2_9VIvoengbeR:
 .space __SIZEOF_POINTER__
@@ -343,7 +343,7 @@
 b__MA7naqebvq8uneqjner8ivoengbe4I1_19VIvoengbe24ertvfgreSbeAbgvsvpngvbafREXAFg3__112onfvp_fgevatVpAF4_11pune_genvgfVpRRAF4_9nyybpngbeVpRRRREXAF_2fcVAF_4uvqy7znantre4I1_020VFreivprAbgvsvpngvbaRRR:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRR:
 nop
@@ -358,7 +358,7 @@
 b__MA7naqebvq8uneqjner8ivoengbe4I1_19VIvoengbe12trgUnfuPunvaRAFg3__18shapgvbaVSiEXAF0_8uvqy_irpVAF0_10uvqy_neenlVuYz32RWRRRRRRRR:
 nop
 .text
-.globl b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
+.weak b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
 .type b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_,%function
 b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_:
 nop
@@ -373,7 +373,7 @@
 b__MGGA7naqebvq8uneqjner8ivoengbe4I1_19VIvoengbeR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_8ivoengbe4I1_19VIvoengbeRAF_4uvqy4onfr4I1_05VOnfrRAF4_12OcUjIvoengbeRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_8ivoengbe4I1_19VIvoengbeRAF_4uvqy4onfr4I1_05VOnfrRAF4_12OcUjIvoengbeRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo
 .type b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_8ivoengbe4I1_19VIvoengbeRAF_4uvqy4onfr4I1_05VOnfrRAF4_12OcUjIvoengbeRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_8ivoengbe4I1_19VIvoengbeRAF_4uvqy4onfr4I1_05VOnfrRAF4_12OcUjIvoengbeRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo:
 nop
@@ -433,7 +433,7 @@
 b__MA7naqebvq8uneqjner8ivoengbe4I1_19VIvoengbe19vagresnprQrfpevcgbeRAFg3__18shapgvbaVSiEXAF0_11uvqy_fgevatRRRR:
 nop
 .text
-.globl b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
+.weak b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
 .type b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_,%function
 b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_:
 nop
diff --git a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_055.S b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_055.S
index 40962a9..de1315b 100644
--- a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_055.S
+++ b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_055.S
@@ -3,7 +3,7 @@
 .data
 .p2align 4
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_8ivoengbe4I1_212OcUjIvoengbeRAF4_9VIvoengbeRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_8ivoengbe4I1_212OcUjIvoengbeRAF4_9VIvoengbeRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo
 .type b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_8ivoengbe4I1_212OcUjIvoengbeRAF4_9VIvoengbeRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_8ivoengbe4I1_212OcUjIvoengbeRAF4_9VIvoengbeRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo:
 nop
@@ -38,12 +38,12 @@
 b__MA7naqebvq8uneqjner8ivoengbe4I1_29VIvoengbe12trgQrohtVasbRAFg3__18shapgvbaVSiEXAF_4uvqy4onfr4I1_09QrohtVasbRRRR:
 nop
 .data
-.globl b__MGIA7naqebvq8uneqjner8ivoengbe4I1_210OfIvoengbeR
+.weak b__MGIA7naqebvq8uneqjner8ivoengbe4I1_210OfIvoengbeR
 .type b__MGIA7naqebvq8uneqjner8ivoengbe4I1_210OfIvoengbeR,%object
 b__MGIA7naqebvq8uneqjner8ivoengbe4I1_210OfIvoengbeR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_8ivoengbe4I1_29VIvoengbeRAF3_4I1_19VIvoengbeRAF4_12OcUjIvoengbeRRRAF0_6ErgheaVAF_2fcVG_RRRRAFN_VG0_RRCXpo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_8ivoengbe4I1_29VIvoengbeRAF3_4I1_19VIvoengbeRAF4_12OcUjIvoengbeRRRAF0_6ErgheaVAF_2fcVG_RRRRAFN_VG0_RRCXpo
 .type b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_8ivoengbe4I1_29VIvoengbeRAF3_4I1_19VIvoengbeRAF4_12OcUjIvoengbeRRRAF0_6ErgheaVAF_2fcVG_RRRRAFN_VG0_RRCXpo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_8ivoengbe4I1_29VIvoengbeRAF3_4I1_19VIvoengbeRAF4_12OcUjIvoengbeRRRAF0_6ErgheaVAF_2fcVG_RRRRAFN_VG0_RRCXpo:
 nop
@@ -88,7 +88,7 @@
 b__MA7naqebvq8uneqjner8ivoengbe4I1_29VIvoengbe14vagresnprPunvaRAFg3__18shapgvbaVSiEXAF0_8uvqy_irpVAF0_11uvqy_fgevatRRRRRR:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFT_RRECAF_15__gerr_raq_abqrVFG_RREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFT_RRECAF_15__gerr_raq_abqrVFG_RREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFT_RRECAF_15__gerr_raq_abqrVFG_RREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFT_RRECAF_15__gerr_raq_abqrVFG_RREXG_:
 nop
@@ -108,17 +108,17 @@
 b__MA7naqebvq8uneqjner8ivoengbe4I1_212OcUjIvoengbe7cresbezRAF1_4I1_06RssrpgRAF4_14RssrpgFgeratguRAFg3__18shapgvbaVSiAF4_6FgnghfRwRRR:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRR:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRP2REXFU_
+.weak b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRP2REXFU_
 .type b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRP2REXFU_,%function
 b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRP2REXFU_:
 nop
 .data
-.globl b__MGPA7naqebvq8uneqjner8ivoengbe4I1_210OfIvoengbeR0_AF2_9VIvoengbeR
+.weak b__MGPA7naqebvq8uneqjner8ivoengbe4I1_210OfIvoengbeR0_AF2_9VIvoengbeR
 .type b__MGPA7naqebvq8uneqjner8ivoengbe4I1_210OfIvoengbeR0_AF2_9VIvoengbeR,%object
 b__MGPA7naqebvq8uneqjner8ivoengbe4I1_210OfIvoengbeR0_AF2_9VIvoengbeR:
 .space __SIZEOF_POINTER__
@@ -138,7 +138,7 @@
 b__MA7naqebvq8uneqjner8ivoengbe4I1_212OaUjIvoengbeP2REXAF_2fcVAF2_9VIvoengbeRRR:
 nop
 .text
-.globl b__MAXFg3__18shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF7_F7_F7_CAF_6irpgbeVCiAF_9nyybpngbeVF9_RRRRRRpyRF5_F7_F7_F7_F7_FQ_
+.weak b__MAXFg3__18shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF7_F7_F7_CAF_6irpgbeVCiAF_9nyybpngbeVF9_RRRRRRpyRF5_F7_F7_F7_F7_FQ_
 .type b__MAXFg3__18shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF7_F7_F7_CAF_6irpgbeVCiAF_9nyybpngbeVF9_RRRRRRpyRF5_F7_F7_F7_F7_FQ_,%function
 b__MAXFg3__18shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF7_F7_F7_CAF_6irpgbeVCiAF_9nyybpngbeVF9_RRRRRRpyRF5_F7_F7_F7_F7_FQ_:
 nop
@@ -183,7 +183,7 @@
 b__MA7naqebvq8uneqjner8ivoengbe4I1_29VIvoengbe8pnfgSebzREXAF_2fcVAF1_4I1_19VIvoengbeRRRo:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_:
 nop
@@ -198,7 +198,7 @@
 b__MA7naqebvq8uneqjner8ivoengbe4I1_29VIvoengbe4cvatRi:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_:
 nop
@@ -238,7 +238,7 @@
 b__MA7naqebvq8uneqjner8ivoengbe4I1_29VIvoengbe24ertvfgreSbeAbgvsvpngvbafREXAFg3__112onfvp_fgevatVpAF4_11pune_genvgfVpRRAF4_9nyybpngbeVpRRRREXAF_2fcVAF_4uvqy7znantre4I1_020VFreivprAbgvsvpngvbaRRR:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFR_RRECAF_15__gerr_raq_abqrVFE_RREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFR_RRECAF_15__gerr_raq_abqrVFE_RREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFR_RRECAF_15__gerr_raq_abqrVFE_RREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFR_RRECAF_15__gerr_raq_abqrVFE_RREXG_:
 nop
@@ -268,7 +268,7 @@
 b__MA7naqebvq8uneqjner8ivoengbe4I1_29VIvoengbe13gelTrgFreivprREXAFg3__112onfvp_fgevatVpAF4_11pune_genvgfVpRRAF4_9nyybpngbeVpRRRRo:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRR:
 nop
@@ -308,7 +308,7 @@
 b__MA7naqebvq8uneqjner8ivoengbe4I1_29VIvoengbe8pnfgSebzREXAF_2fcVAF1_4I1_09VIvoengbeRRRo:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_8ivoengbe4I1_29VIvoengbeRAF_4uvqy4onfr4I1_05VOnfrRAF4_12OcUjIvoengbeRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_8ivoengbe4I1_29VIvoengbeRAF_4uvqy4onfr4I1_05VOnfrRAF4_12OcUjIvoengbeRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo
 .type b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_8ivoengbe4I1_29VIvoengbeRAF_4uvqy4onfr4I1_05VOnfrRAF4_12OcUjIvoengbeRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_8ivoengbe4I1_29VIvoengbeRAF_4uvqy4onfr4I1_05VOnfrRAF4_12OcUjIvoengbeRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo:
 nop
@@ -323,7 +323,7 @@
 b__MA7naqebvq8uneqjner8ivoengbe4I1_212OcUjIvoengbeP1REXAF_2fcVAF0_7VOvaqreRRR:
 nop
 .text
-.globl b__MAFg3__16irpgbeVCiAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_
+.weak b__MAFg3__16irpgbeVCiAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_
 .type b__MAFg3__16irpgbeVCiAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_,%function
 b__MAFg3__16irpgbeVCiAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_:
 nop
@@ -348,7 +348,7 @@
 b__MGIA7naqebvq8uneqjner8ivoengbe4I1_29VIvoengbeR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_8ivoengbe4I1_29VIvoengbeRAF3_4I1_09VIvoengbeRAF4_12OcUjIvoengbeRRRAF0_6ErgheaVAF_2fcVG_RRRRAFN_VG0_RRCXpo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_8ivoengbe4I1_29VIvoengbeRAF3_4I1_09VIvoengbeRAF4_12OcUjIvoengbeRRRAF0_6ErgheaVAF_2fcVG_RRRRAFN_VG0_RRCXpo
 .type b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_8ivoengbe4I1_29VIvoengbeRAF3_4I1_09VIvoengbeRAF4_12OcUjIvoengbeRRRAF0_6ErgheaVAF_2fcVG_RRRRAFN_VG0_RRCXpo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_8ivoengbe4I1_29VIvoengbeRAF3_4I1_09VIvoengbeRAF4_12OcUjIvoengbeRRRAF0_6ErgheaVAF_2fcVG_RRRRAFN_VG0_RRCXpo:
 nop
@@ -358,7 +358,7 @@
 b__MA7naqebvq8uneqjner8ivoengbe4I1_212OaUjIvoengbeQ2Ri:
 nop
 .text
-.globl b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
+.weak b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
 .type b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_,%function
 b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_:
 nop
@@ -393,7 +393,7 @@
 b__MA7naqebvq8uneqjner8ivoengbe4I1_29VIvoengbe21frgUNYVafgehzragngvbaRi:
 nop
 .text
-.globl b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
+.weak b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
 .type b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_,%function
 b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_:
 nop
@@ -438,7 +438,7 @@
 b__MA7naqebvq8uneqjner8ivoengbe4I1_212OcUjIvoengbeP2REXAF_2fcVAF0_7VOvaqreRRR:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_8uneqjner27uvqy_ovaqre_qrngu_erpvcvragRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_
+.weak b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_8uneqjner27uvqy_ovaqre_qrngu_erpvcvragRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_
 .type b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_8uneqjner27uvqy_ovaqre_qrngu_erpvcvragRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_,%function
 b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_8uneqjner27uvqy_ovaqre_qrngu_erpvcvragRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_:
 nop
diff --git a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_056.S b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_056.S
index e17ba09..2c67be4 100644
--- a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_056.S
+++ b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_056.S
@@ -33,12 +33,12 @@
 b__MA7naqebvq8uneqjner8ivoengbe4I1_39VIvoengbe12trgQrohtVasbRAFg3__18shapgvbaVSiEXAF_4uvqy4onfr4I1_09QrohtVasbRRRR:
 nop
 .text
-.globl b__MAXFg3__18shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF7_F7_F7_CAF_6irpgbeVCiAF_9nyybpngbeVF9_RRRRRRpyRF5_F7_F7_F7_F7_FQ_
+.weak b__MAXFg3__18shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF7_F7_F7_CAF_6irpgbeVCiAF_9nyybpngbeVF9_RRRRRRpyRF5_F7_F7_F7_F7_FQ_
 .type b__MAXFg3__18shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF7_F7_F7_CAF_6irpgbeVCiAF_9nyybpngbeVF9_RRRRRRpyRF5_F7_F7_F7_F7_FQ_,%function
 b__MAXFg3__18shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF7_F7_F7_CAF_6irpgbeVCiAF_9nyybpngbeVF9_RRRRRRpyRF5_F7_F7_F7_F7_FQ_:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFT_RRECAF_15__gerr_raq_abqrVFG_RREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFT_RRECAF_15__gerr_raq_abqrVFG_RREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFT_RRECAF_15__gerr_raq_abqrVFG_RREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFT_RRECAF_15__gerr_raq_abqrVFG_RREXG_:
 nop
@@ -63,7 +63,7 @@
 b__MA7naqebvq8uneqjner8ivoengbe4I1_39VIvoengbe8pnfgSebzREXAF_2fcVAF_4uvqy4onfr4I1_05VOnfrRRRo:
 nop
 .text
-.globl b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
+.weak b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
 .type b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_,%function
 b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_:
 nop
@@ -148,12 +148,12 @@
 b__MA7naqebvq8uneqjner8ivoengbe4I1_39VIvoengbe5qrohtREXAF0_11uvqy_unaqyrREXAF0_8uvqy_irpVAF0_11uvqy_fgevatRRR:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_8ivoengbe4I1_39VIvoengbeRAF3_4I1_19VIvoengbeRAF4_12OcUjIvoengbeRRRAF0_6ErgheaVAF_2fcVG_RRRRAFN_VG0_RRCXpo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_8ivoengbe4I1_39VIvoengbeRAF3_4I1_19VIvoengbeRAF4_12OcUjIvoengbeRRRAF0_6ErgheaVAF_2fcVG_RRRRAFN_VG0_RRCXpo
 .type b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_8ivoengbe4I1_39VIvoengbeRAF3_4I1_19VIvoengbeRAF4_12OcUjIvoengbeRRRAF0_6ErgheaVAF_2fcVG_RRRRAFN_VG0_RRCXpo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_8ivoengbe4I1_39VIvoengbeRAF3_4I1_19VIvoengbeRAF4_12OcUjIvoengbeRRRAF0_6ErgheaVAF_2fcVG_RRRRAFN_VG0_RRCXpo:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_8ivoengbe4I1_312OcUjIvoengbeRAF4_9VIvoengbeRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_8ivoengbe4I1_312OcUjIvoengbeRAF4_9VIvoengbeRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo
 .type b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_8ivoengbe4I1_312OcUjIvoengbeRAF4_9VIvoengbeRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_8ivoengbe4I1_312OcUjIvoengbeRAF4_9VIvoengbeRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo:
 nop
@@ -213,7 +213,7 @@
 b__MGGA7naqebvq8uneqjner8ivoengbe4I1_312OaUjIvoengbeR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIA7naqebvq8uneqjner8ivoengbe4I1_310OfIvoengbeR
+.weak b__MGIA7naqebvq8uneqjner8ivoengbe4I1_310OfIvoengbeR
 .type b__MGIA7naqebvq8uneqjner8ivoengbe4I1_310OfIvoengbeR,%object
 b__MGIA7naqebvq8uneqjner8ivoengbe4I1_310OfIvoengbeR:
 .space __SIZEOF_POINTER__
@@ -228,7 +228,7 @@
 b__MA7naqebvq8uneqjner8ivoengbe4I1_39VIvoengbe24ertvfgreSbeAbgvsvpngvbafREXAFg3__112onfvp_fgevatVpAF4_11pune_genvgfVpRRAF4_9nyybpngbeVpRRRREXAF_2fcVAF_4uvqy7znantre4I1_020VFreivprAbgvsvpngvbaRRR:
 nop
 .text
-.globl b__MAFg3__16irpgbeVCiAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_
+.weak b__MAFg3__16irpgbeVCiAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_
 .type b__MAFg3__16irpgbeVCiAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_,%function
 b__MAFg3__16irpgbeVCiAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_:
 nop
@@ -243,12 +243,12 @@
 b__MA7naqebvq8uneqjner8ivoengbe4I1_39VIvoengbe4cvatRi:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRR:
 nop
 .data
-.globl b__MGPA7naqebvq8uneqjner8ivoengbe4I1_310OfIvoengbeR0_AF2_9VIvoengbeR
+.weak b__MGPA7naqebvq8uneqjner8ivoengbe4I1_310OfIvoengbeR0_AF2_9VIvoengbeR
 .type b__MGPA7naqebvq8uneqjner8ivoengbe4I1_310OfIvoengbeR0_AF2_9VIvoengbeR,%object
 b__MGPA7naqebvq8uneqjner8ivoengbe4I1_310OfIvoengbeR0_AF2_9VIvoengbeR:
 .space __SIZEOF_POINTER__
@@ -263,7 +263,7 @@
 b__MA7naqebvq8uneqjner8ivoengbe4I1_312OcUjIvoengbe23fhccbegfRkgreanyPbagebyRi:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRR:
 nop
@@ -298,12 +298,12 @@
 b__MA7naqebvq8uneqjner8ivoengbe4I1_39VIvoengbe8pnfgSebzREXAF_2fcVAF1_4I1_19VIvoengbeRRRo:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFR_RRECAF_15__gerr_raq_abqrVFE_RREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFR_RRECAF_15__gerr_raq_abqrVFE_RREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFR_RRECAF_15__gerr_raq_abqrVFE_RREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFR_RRECAF_15__gerr_raq_abqrVFE_RREXG_:
 nop
@@ -358,7 +358,7 @@
 b__MA7naqebvq8uneqjner8ivoengbe4I1_312OcUjIvoengbe11cresbez_1_3RAF2_6RssrpgRAF1_4I1_014RssrpgFgeratguRAFg3__18shapgvbaVSiAF5_6FgnghfRwRRR:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_8uneqjner27uvqy_ovaqre_qrngu_erpvcvragRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_
+.weak b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_8uneqjner27uvqy_ovaqre_qrngu_erpvcvragRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_
 .type b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_8uneqjner27uvqy_ovaqre_qrngu_erpvcvragRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_,%function
 b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_8uneqjner27uvqy_ovaqre_qrngu_erpvcvragRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_:
 nop
@@ -368,7 +368,7 @@
 b__MGPA7naqebvq8uneqjner8ivoengbe4I1_39VIvoengbeR0_AF1_4I1_29VIvoengbeR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_8ivoengbe4I1_39VIvoengbeRAF3_4I1_29VIvoengbeRAF4_12OcUjIvoengbeRRRAF0_6ErgheaVAF_2fcVG_RRRRAFN_VG0_RRCXpo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_8ivoengbe4I1_39VIvoengbeRAF3_4I1_29VIvoengbeRAF4_12OcUjIvoengbeRRRAF0_6ErgheaVAF_2fcVG_RRRRAFN_VG0_RRCXpo
 .type b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_8ivoengbe4I1_39VIvoengbeRAF3_4I1_29VIvoengbeRAF4_12OcUjIvoengbeRRRAF0_6ErgheaVAF_2fcVG_RRRRAFN_VG0_RRCXpo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_8ivoengbe4I1_39VIvoengbeRAF3_4I1_29VIvoengbeRAF4_12OcUjIvoengbeRRRAF0_6ErgheaVAF_2fcVG_RRRRAFN_VG0_RRCXpo:
 nop
@@ -378,7 +378,7 @@
 b__MA7naqebvq8uneqjner8ivoengbe4I1_312OcUjIvoengbe12frgNzcyvghqrRu:
 nop
 .text
-.globl b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
+.weak b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
 .type b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_,%function
 b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_:
 nop
@@ -418,12 +418,12 @@
 b__MA7naqebvq8uneqjner8ivoengbe4I1_312OcUjIvoengbe29_uvqy_fhccbegfRkgreanyPbagebyRCAF0_10VVagresnprRCAF0_7qrgnvyf16UvqyVafgehzragbeR:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRP2REXFU_
+.weak b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRP2REXFU_
 .type b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRP2REXFU_,%function
 b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRP2REXFU_:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_8ivoengbe4I1_39VIvoengbeRAF_4uvqy4onfr4I1_05VOnfrRAF4_12OcUjIvoengbeRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_8ivoengbe4I1_39VIvoengbeRAF_4uvqy4onfr4I1_05VOnfrRAF4_12OcUjIvoengbeRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo
 .type b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_8ivoengbe4I1_39VIvoengbeRAF_4uvqy4onfr4I1_05VOnfrRAF4_12OcUjIvoengbeRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_8ivoengbe4I1_39VIvoengbeRAF_4uvqy4onfr4I1_05VOnfrRAF4_12OcUjIvoengbeRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo:
 nop
@@ -433,12 +433,12 @@
 b__MA7naqebvq8uneqjner8ivoengbe4I1_39VIvoengbe8pnfgSebzREXAF_2fcVAF1_4I1_29VIvoengbeRRRo:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_8ivoengbe4I1_39VIvoengbeRAF3_4I1_09VIvoengbeRAF4_12OcUjIvoengbeRRRAF0_6ErgheaVAF_2fcVG_RRRRAFN_VG0_RRCXpo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_8ivoengbe4I1_39VIvoengbeRAF3_4I1_09VIvoengbeRAF4_12OcUjIvoengbeRRRAF0_6ErgheaVAF_2fcVG_RRRRAFN_VG0_RRCXpo
 .type b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_8ivoengbe4I1_39VIvoengbeRAF3_4I1_09VIvoengbeRAF4_12OcUjIvoengbeRRRAF0_6ErgheaVAF_2fcVG_RRRRAFN_VG0_RRCXpo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_8ivoengbe4I1_39VIvoengbeRAF3_4I1_09VIvoengbeRAF4_12OcUjIvoengbeRRRAF0_6ErgheaVAF_2fcVG_RRRRAFN_VG0_RRCXpo:
 nop
diff --git a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_057.S b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_057.S
index 8eacd05..3b4d937 100644
--- a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_057.S
+++ b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_057.S
@@ -33,7 +33,7 @@
 b__MA7naqebvq8uneqjner2ie4I1_03VIe8pnfgSebzREXAF_2fcVF3_RRo:
 nop
 .text
-.globl b__MAFg3__16irpgbeVCiAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_
+.weak b__MAFg3__16irpgbeVCiAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_
 .type b__MAFg3__16irpgbeVCiAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_,%function
 b__MAFg3__16irpgbeVCiAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_:
 nop
@@ -103,7 +103,7 @@
 b__MA7naqebvq8uneqjner2ie4I1_06OaUjIeP2REXAF_2fcVAF2_3VIeRRR:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFR_RRECAF_15__gerr_raq_abqrVFE_RREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFR_RRECAF_15__gerr_raq_abqrVFE_RREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFR_RRECAF_15__gerr_raq_abqrVFE_RREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFR_RRECAF_15__gerr_raq_abqrVFE_RREXG_:
 nop
@@ -133,17 +133,17 @@
 b__MA7naqebvq8uneqjner2ie4I1_06OcUjIe21abgvslFlfcebcfPunatrqRi:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_2ie4I1_06OcUjIeRAF4_3VIeRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_2ie4I1_06OcUjIeRAF4_3VIeRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo
 .type b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_2ie4I1_06OcUjIeRAF4_3VIeRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_2ie4I1_06OcUjIeRAF4_3VIeRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_8uneqjner27uvqy_ovaqre_qrngu_erpvcvragRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_
+.weak b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_8uneqjner27uvqy_ovaqre_qrngu_erpvcvragRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_
 .type b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_8uneqjner27uvqy_ovaqre_qrngu_erpvcvragRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_,%function
 b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_8uneqjner27uvqy_ovaqre_qrngu_erpvcvragRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_:
 nop
 .data
-.globl b__MGIA7naqebvq8uneqjner2ie4I1_04OfIeR
+.weak b__MGIA7naqebvq8uneqjner2ie4I1_04OfIeR
 .type b__MGIA7naqebvq8uneqjner2ie4I1_04OfIeR,%object
 b__MGIA7naqebvq8uneqjner2ie4I1_04OfIeR:
 .space __SIZEOF_POINTER__
@@ -163,7 +163,7 @@
 b__MA7naqebvq8uneqjner2ie4I1_06OcUjIe5qrohtREXAF0_11uvqy_unaqyrREXAF0_8uvqy_irpVAF0_11uvqy_fgevatRRR:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFT_RRECAF_15__gerr_raq_abqrVFG_RREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFT_RRECAF_15__gerr_raq_abqrVFG_RREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFT_RRECAF_15__gerr_raq_abqrVFG_RREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFT_RRECAF_15__gerr_raq_abqrVFG_RREXG_:
 nop
@@ -173,7 +173,7 @@
 b__MA7naqebvq8uneqjner2ie4I1_06OcUjIe15_uvqy_frgIeZbqrRCAF0_10VVagresnprRCAF0_7qrgnvyf16UvqyVafgehzragbeRo:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_:
 nop
@@ -203,7 +203,7 @@
 b__MA7naqebvq8uneqjner2ie4I1_06OcUjIe12trgUnfuPunvaRAFg3__18shapgvbaVSiEXAF0_8uvqy_irpVAF0_10uvqy_neenlVuYz32RWRRRRRRRR:
 nop
 .text
-.globl b__MAXFg3__18shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF7_F7_F7_CAF_6irpgbeVCiAF_9nyybpngbeVF9_RRRRRRpyRF5_F7_F7_F7_F7_FQ_
+.weak b__MAXFg3__18shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF7_F7_F7_CAF_6irpgbeVCiAF_9nyybpngbeVF9_RRRRRRpyRF5_F7_F7_F7_F7_FQ_
 .type b__MAXFg3__18shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF7_F7_F7_CAF_6irpgbeVCiAF_9nyybpngbeVF9_RRRRRRpyRF5_F7_F7_F7_F7_FQ_,%function
 b__MAXFg3__18shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF7_F7_F7_CAF_6irpgbeVCiAF_9nyybpngbeVF9_RRRRRRpyRF5_F7_F7_F7_F7_FQ_:
 nop
@@ -218,7 +218,7 @@
 b__MA7naqebvq8uneqjner2ie4I1_03VIe12trgUnfuPunvaRAFg3__18shapgvbaVSiEXAF0_8uvqy_irpVAF0_10uvqy_neenlVuYz32RWRRRRRRRR:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_:
 nop
@@ -243,7 +243,7 @@
 b__MA7naqebvq8uneqjner2ie4I1_06OcUjIe4cvatRi:
 nop
 .text
-.globl b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
+.weak b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
 .type b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_,%function
 b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_:
 nop
@@ -298,7 +298,7 @@
 b__MA7naqebvq8uneqjner2ie4I1_06OcUjIe19vagresnprQrfpevcgbeRAFg3__18shapgvbaVSiEXAF0_11uvqy_fgevatRRRR:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_2ie4I1_03VIeRAF_4uvqy4onfr4I1_05VOnfrRAF4_6OcUjIeRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_2ie4I1_03VIeRAF_4uvqy4onfr4I1_05VOnfrRAF4_6OcUjIeRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo
 .type b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_2ie4I1_03VIeRAF_4uvqy4onfr4I1_05VOnfrRAF4_6OcUjIeRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_2ie4I1_03VIeRAF_4uvqy4onfr4I1_05VOnfrRAF4_6OcUjIeRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo:
 nop
@@ -328,7 +328,7 @@
 b__MA7naqebvq8uneqjner2ie4I1_06OaUjIe12trgQrohtVasbRAFg3__18shapgvbaVSiEXAF_4uvqy4onfr4I1_09QrohtVasbRRRR:
 nop
 .text
-.globl b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
+.weak b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
 .type b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_,%function
 b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_:
 nop
@@ -358,7 +358,7 @@
 b__MA7naqebvq8uneqjner2ie4I1_06OcUjIe12trgQrohtVasbRAFg3__18shapgvbaVSiEXAF_4uvqy4onfr4I1_09QrohtVasbRRRR:
 nop
 .data
-.globl b__MGPA7naqebvq8uneqjner2ie4I1_04OfIeR0_AF2_3VIeR
+.weak b__MGPA7naqebvq8uneqjner2ie4I1_04OfIeR0_AF2_3VIeR
 .type b__MGPA7naqebvq8uneqjner2ie4I1_04OfIeR0_AF2_3VIeR,%object
 b__MGPA7naqebvq8uneqjner2ie4I1_04OfIeR0_AF2_3VIeR:
 .space __SIZEOF_POINTER__
@@ -373,7 +373,7 @@
 b__MA7naqebvq8uneqjner2ie4I1_06OaUjIeQ2Ri:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRP2REXFU_
+.weak b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRP2REXFU_
 .type b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRP2REXFU_,%function
 b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRP2REXFU_:
 nop
@@ -408,12 +408,12 @@
 b__MA7naqebvq8uneqjner2ie4I1_06OcUjIeP1REXAF_2fcVAF0_7VOvaqreRRR:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRR:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRR:
 nop
diff --git a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_058.S b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_058.S
index d85ce4c..413b8f0 100644
--- a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_058.S
+++ b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_058.S
@@ -8,7 +8,7 @@
 b__MA7naqebvq10senzrjbexf16fpurqhyrefreivpr4I1_024VFpurqhyvatCbyvplFreivpr5qrohtREXAF_8uneqjner11uvqy_unaqyrREXAF4_8uvqy_irpVAF4_11uvqy_fgevatRRR:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF_10senzrjbexf16fpurqhyrefreivpr4I1_024VFpurqhyvatCbyvplFreivprRAF_4uvqy4onfr4I1_05VOnfrRAF5_27OcUjFpurqhyvatCbyvplFreivprRRRAF0_6ErgheaVAF_2fcVG_RRRRAFQ_VG0_RRCXpo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF_10senzrjbexf16fpurqhyrefreivpr4I1_024VFpurqhyvatCbyvplFreivprRAF_4uvqy4onfr4I1_05VOnfrRAF5_27OcUjFpurqhyvatCbyvplFreivprRRRAF0_6ErgheaVAF_2fcVG_RRRRAFQ_VG0_RRCXpo
 .type b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF_10senzrjbexf16fpurqhyrefreivpr4I1_024VFpurqhyvatCbyvplFreivprRAF_4uvqy4onfr4I1_05VOnfrRAF5_27OcUjFpurqhyvatCbyvplFreivprRRRAF0_6ErgheaVAF_2fcVG_RRRRAFQ_VG0_RRCXpo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF_10senzrjbexf16fpurqhyrefreivpr4I1_024VFpurqhyvatCbyvplFreivprRAF_4uvqy4onfr4I1_05VOnfrRAF5_27OcUjFpurqhyvatCbyvplFreivprRRRAF0_6ErgheaVAF_2fcVG_RRRRAFQ_VG0_RRCXpo:
 nop
@@ -18,7 +18,7 @@
 b__MGGA7naqebvq10senzrjbexf16fpurqhyrefreivpr4I1_027OcUjFpurqhyvatCbyvplFreivprR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__16irpgbeVCiAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_
+.weak b__MAFg3__16irpgbeVCiAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_
 .type b__MAFg3__16irpgbeVCiAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_,%function
 b__MAFg3__16irpgbeVCiAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_:
 nop
@@ -53,12 +53,12 @@
 b__MGPA7naqebvq10senzrjbexf16fpurqhyrefreivpr4I1_024VFpurqhyvatCbyvplFreivprR0_AF_4uvqy4onfr4I1_05VOnfrR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFR_RRECAF_15__gerr_raq_abqrVFE_RREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFR_RRECAF_15__gerr_raq_abqrVFE_RREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFR_RRECAF_15__gerr_raq_abqrVFE_RREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFR_RRECAF_15__gerr_raq_abqrVFE_RREXG_:
 nop
 .data
-.globl b__MGIA7naqebvq10senzrjbexf16fpurqhyrefreivpr4I1_025OfFpurqhyvatCbyvplFreivprR
+.weak b__MGIA7naqebvq10senzrjbexf16fpurqhyrefreivpr4I1_025OfFpurqhyvatCbyvplFreivprR
 .type b__MGIA7naqebvq10senzrjbexf16fpurqhyrefreivpr4I1_025OfFpurqhyvatCbyvplFreivprR,%object
 b__MGIA7naqebvq10senzrjbexf16fpurqhyrefreivpr4I1_025OfFpurqhyvatCbyvplFreivprR:
 .space __SIZEOF_POINTER__
@@ -73,12 +73,12 @@
 b__MA7naqebvq10senzrjbexf16fpurqhyrefreivpr4I1_027OcUjFpurqhyvatCbyvplFreivpr11yvaxGbQrnguREXAF_2fcVAF_8uneqjner20uvqy_qrngu_erpvcvragRRRz:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF_10senzrjbexf16fpurqhyrefreivpr4I1_027OcUjFpurqhyvatCbyvplFreivprRAF5_24VFpurqhyvatCbyvplFreivprRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFO_11pune_genvgfVpRRAFO_9nyybpngbeVpRRRRoo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF_10senzrjbexf16fpurqhyrefreivpr4I1_027OcUjFpurqhyvatCbyvplFreivprRAF5_24VFpurqhyvatCbyvplFreivprRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFO_11pune_genvgfVpRRAFO_9nyybpngbeVpRRRRoo
 .type b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF_10senzrjbexf16fpurqhyrefreivpr4I1_027OcUjFpurqhyvatCbyvplFreivprRAF5_24VFpurqhyvatCbyvplFreivprRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFO_11pune_genvgfVpRRAFO_9nyybpngbeVpRRRRoo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF_10senzrjbexf16fpurqhyrefreivpr4I1_027OcUjFpurqhyvatCbyvplFreivprRAF5_24VFpurqhyvatCbyvplFreivprRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFO_11pune_genvgfVpRRAFO_9nyybpngbeVpRRRRoo:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_8uneqjner27uvqy_ovaqre_qrngu_erpvcvragRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_
+.weak b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_8uneqjner27uvqy_ovaqre_qrngu_erpvcvragRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_
 .type b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_8uneqjner27uvqy_ovaqre_qrngu_erpvcvragRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_,%function
 b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_8uneqjner27uvqy_ovaqre_qrngu_erpvcvragRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_:
 nop
@@ -103,7 +103,7 @@
 b__MA7naqebvq10senzrjbexf16fpurqhyrefreivpr4I1_027OcUjFpurqhyvatCbyvplFreivpr21_uvqy_erdhrfgCevbevglRCAF_8uneqjner10VVagresnprRCAF4_7qrgnvyf16UvqyVafgehzragbeRvvv:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFT_RRECAF_15__gerr_raq_abqrVFG_RREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFT_RRECAF_15__gerr_raq_abqrVFG_RREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFT_RRECAF_15__gerr_raq_abqrVFG_RREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFT_RRECAF_15__gerr_raq_abqrVFG_RREXG_:
 nop
@@ -123,7 +123,7 @@
 b__MA7naqebvq10senzrjbexf16fpurqhyrefreivpr4I1_027OcUjFpurqhyvatCbyvplFreivpr21trgZnkNyybjrqCevbevglRi:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_:
 nop
@@ -158,7 +158,7 @@
 b__MA7naqebvq10senzrjbexf16fpurqhyrefreivpr4I1_027OcUjFpurqhyvatCbyvplFreivprP1REXAF_2fcVAF_8uneqjner7VOvaqreRRR:
 nop
 .text
-.globl b__MAXFg3__18shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF7_F7_F7_CAF_6irpgbeVCiAF_9nyybpngbeVF9_RRRRRRpyRF5_F7_F7_F7_F7_FQ_
+.weak b__MAXFg3__18shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF7_F7_F7_CAF_6irpgbeVCiAF_9nyybpngbeVF9_RRRRRRpyRF5_F7_F7_F7_F7_FQ_
 .type b__MAXFg3__18shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF7_F7_F7_CAF_6irpgbeVCiAF_9nyybpngbeVF9_RRRRRRpyRF5_F7_F7_F7_F7_FQ_,%function
 b__MAXFg3__18shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF7_F7_F7_CAF_6irpgbeVCiAF_9nyybpngbeVF9_RRRRRRpyRF5_F7_F7_F7_F7_FQ_:
 nop
@@ -193,7 +193,7 @@
 b__MA7naqebvq10senzrjbexf16fpurqhyrefreivpr4I1_027OcUjFpurqhyvatCbyvplFreivpr12trgUnfuPunvaRAFg3__18shapgvbaVSiEXAF_8uneqjner8uvqy_irpVAF6_10uvqy_neenlVuYz32RWRRRRRRRR:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_:
 nop
@@ -218,7 +218,7 @@
 b__MA7naqebvq10senzrjbexf16fpurqhyrefreivpr4I1_027OcUjFpurqhyvatCbyvplFreivpr4cvatRi:
 nop
 .data
-.globl b__MGPA7naqebvq10senzrjbexf16fpurqhyrefreivpr4I1_025OfFpurqhyvatCbyvplFreivprR0_AF2_24VFpurqhyvatCbyvplFreivprR
+.weak b__MGPA7naqebvq10senzrjbexf16fpurqhyrefreivpr4I1_025OfFpurqhyvatCbyvplFreivprR0_AF2_24VFpurqhyvatCbyvplFreivprR
 .type b__MGPA7naqebvq10senzrjbexf16fpurqhyrefreivpr4I1_025OfFpurqhyvatCbyvplFreivprR0_AF2_24VFpurqhyvatCbyvplFreivprR,%object
 b__MGPA7naqebvq10senzrjbexf16fpurqhyrefreivpr4I1_025OfFpurqhyvatCbyvplFreivprR0_AF2_24VFpurqhyvatCbyvplFreivprR:
 .space __SIZEOF_POINTER__
@@ -228,7 +228,7 @@
 b__MA7naqebvq10senzrjbexf16fpurqhyrefreivpr4I1_025OfFpurqhyvatCbyvplFreivpr13nqqBarjnlGnfxRAFg3__18shapgvbaVSiiRRR:
 nop
 .text
-.globl b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
+.weak b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
 .type b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_,%function
 b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_:
 nop
@@ -323,7 +323,7 @@
 b__MA7naqebvq10senzrjbexf16fpurqhyrefreivpr4I1_024VFpurqhyvatCbyvplFreivpr21frgUNYVafgehzragngvbaRi:
 nop
 .text
-.globl b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
+.weak b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
 .type b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_,%function
 b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_:
 nop
@@ -363,7 +363,7 @@
 b__MA7naqebvq10senzrjbexf16fpurqhyrefreivpr4I1_027OcUjFpurqhyvatCbyvplFreivpr5qrohtREXAF_8uneqjner11uvqy_unaqyrREXAF4_8uvqy_irpVAF4_11uvqy_fgevatRRR:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRP2REXFU_
+.weak b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRP2REXFU_
 .type b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRP2REXFU_,%function
 b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRP2REXFU_:
 nop
@@ -408,12 +408,12 @@
 b__MA7naqebvq10senzrjbexf16fpurqhyrefreivpr4I1_027OcUjFpurqhyvatCbyvplFreivpr12trgQrohtVasbRAFg3__18shapgvbaVSiEXAF_4uvqy4onfr4I1_09QrohtVasbRRRR:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRR:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRR:
 nop
diff --git a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_059.S b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_059.S
index 07265bd..67f69e5 100644
--- a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_059.S
+++ b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_059.S
@@ -3,7 +3,7 @@
 .data
 .p2align 4
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_:
 nop
@@ -48,7 +48,7 @@
 b__MA7naqebvq10senzrjbexf13frafbefreivpr4I1_014VFrafbeZnantre11yvaxGbQrnguREXAF_2fcVAF_8uneqjner20uvqy_qrngu_erpvcvragRRRz:
 nop
 .data
-.globl b__MGPA7naqebvq10senzrjbexf13frafbefreivpr4I1_015OfFrafbeZnantreR0_AF2_14VFrafbeZnantreR
+.weak b__MGPA7naqebvq10senzrjbexf13frafbefreivpr4I1_015OfFrafbeZnantreR0_AF2_14VFrafbeZnantreR
 .type b__MGPA7naqebvq10senzrjbexf13frafbefreivpr4I1_015OfFrafbeZnantreR0_AF2_14VFrafbeZnantreR,%object
 b__MGPA7naqebvq10senzrjbexf13frafbefreivpr4I1_015OfFrafbeZnantreR0_AF2_14VFrafbeZnantreR:
 .space __SIZEOF_POINTER__
@@ -58,7 +58,7 @@
 b__MGua16_A7naqebvq10senzrjbexf13frafbefreivpr4I1_014OcUjRiragDhrhr15baYnfgFgebatErsRCXi:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF_10senzrjbexf13frafbefreivpr4I1_019VRiragDhrhrPnyyonpxRiRRAF_2fcVG_RRF9_
+.weak b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF_10senzrjbexf13frafbefreivpr4I1_019VRiragDhrhrPnyyonpxRiRRAF_2fcVG_RRF9_
 .type b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF_10senzrjbexf13frafbefreivpr4I1_019VRiragDhrhrPnyyonpxRiRRAF_2fcVG_RRF9_,%function
 b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF_10senzrjbexf13frafbefreivpr4I1_019VRiragDhrhrPnyyonpxRiRRAF_2fcVG_RRF9_:
 nop
@@ -118,7 +118,7 @@
 b__MA7naqebvq10senzrjbexf13frafbefreivpr4I1_023OcUjQverpgErcbegPunaary12trgUnfuPunvaRAFg3__18shapgvbaVSiEXAF_8uneqjner8uvqy_irpVAF6_10uvqy_neenlVuYz32RWRRRRRRRR:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRR:
 nop
@@ -133,12 +133,12 @@
 b__MA7naqebvq10senzrjbexf13frafbefreivpr4I1_017OcUjFrafbeZnantre21abgvslFlfcebcfPunatrqRi:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF_10senzrjbexf13frafbefreivpr4I1_020VQverpgErcbegPunaaryRAF_4uvqy4onfr4I1_05VOnfrRAF5_23OcUjQverpgErcbegPunaaryRRRAF0_6ErgheaVAF_2fcVG_RRRRAFQ_VG0_RRCXpo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF_10senzrjbexf13frafbefreivpr4I1_020VQverpgErcbegPunaaryRAF_4uvqy4onfr4I1_05VOnfrRAF5_23OcUjQverpgErcbegPunaaryRRRAF0_6ErgheaVAF_2fcVG_RRRRAFQ_VG0_RRCXpo
 .type b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF_10senzrjbexf13frafbefreivpr4I1_020VQverpgErcbegPunaaryRAF_4uvqy4onfr4I1_05VOnfrRAF5_23OcUjQverpgErcbegPunaaryRRRAF0_6ErgheaVAF_2fcVG_RRRRAFQ_VG0_RRCXpo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF_10senzrjbexf13frafbefreivpr4I1_020VQverpgErcbegPunaaryRAF_4uvqy4onfr4I1_05VOnfrRAF5_23OcUjQverpgErcbegPunaaryRRRAF0_6ErgheaVAF_2fcVG_RRRRAFQ_VG0_RRCXpo:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF_10senzrjbexf13frafbefreivpr4I1_014OcUjRiragDhrhrRAF5_11VRiragDhrhrRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFO_11pune_genvgfVpRRAFO_9nyybpngbeVpRRRRoo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF_10senzrjbexf13frafbefreivpr4I1_014OcUjRiragDhrhrRAF5_11VRiragDhrhrRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFO_11pune_genvgfVpRRAFO_9nyybpngbeVpRRRRoo
 .type b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF_10senzrjbexf13frafbefreivpr4I1_014OcUjRiragDhrhrRAF5_11VRiragDhrhrRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFO_11pune_genvgfVpRRAFO_9nyybpngbeVpRRRRoo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF_10senzrjbexf13frafbefreivpr4I1_014OcUjRiragDhrhrRAF5_11VRiragDhrhrRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFO_11pune_genvgfVpRRAFO_9nyybpngbeVpRRRRoo:
 nop
@@ -183,7 +183,7 @@
 b__MGua32_A7naqebvq10senzrjbexf13frafbefreivpr4I1_023OaUjQverpgErcbegPunaaryQ1Ri:
 nop
 .data
-.globl b__MGPA7naqebvq10senzrjbexf13frafbefreivpr4I1_020OfRiragDhrhrPnyyonpxR0_AF2_19VRiragDhrhrPnyyonpxR
+.weak b__MGPA7naqebvq10senzrjbexf13frafbefreivpr4I1_020OfRiragDhrhrPnyyonpxR0_AF2_19VRiragDhrhrPnyyonpxR
 .type b__MGPA7naqebvq10senzrjbexf13frafbefreivpr4I1_020OfRiragDhrhrPnyyonpxR0_AF2_19VRiragDhrhrPnyyonpxR,%object
 b__MGPA7naqebvq10senzrjbexf13frafbefreivpr4I1_020OfRiragDhrhrPnyyonpxR0_AF2_19VRiragDhrhrPnyyonpxR:
 .space __SIZEOF_POINTER__
@@ -223,7 +223,7 @@
 b__MA7naqebvq10senzrjbexf13frafbefreivpr4I1_017OaUjFrafbeZnantreQ0Ri:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF_10senzrjbexf13frafbefreivpr4I1_020VQverpgErcbegPunaaryRiRRAF_2fcVG_RRF9_
+.weak b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF_10senzrjbexf13frafbefreivpr4I1_020VQverpgErcbegPunaaryRiRRAF_2fcVG_RRF9_
 .type b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF_10senzrjbexf13frafbefreivpr4I1_020VQverpgErcbegPunaaryRiRRAF_2fcVG_RRF9_,%function
 b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF_10senzrjbexf13frafbefreivpr4I1_020VQverpgErcbegPunaaryRiRRAF_2fcVG_RRF9_:
 nop
@@ -233,7 +233,7 @@
 b__MA7naqebvq10senzrjbexf13frafbefreivpr4I1_020VQverpgErcbegPunaary13hayvaxGbQrnguREXAF_2fcVAF_8uneqjner20uvqy_qrngu_erpvcvragRRR:
 nop
 .data
-.globl b__MGIA7naqebvq10senzrjbexf13frafbefreivpr4I1_012OfRiragDhrhrR
+.weak b__MGIA7naqebvq10senzrjbexf13frafbefreivpr4I1_012OfRiragDhrhrR
 .type b__MGIA7naqebvq10senzrjbexf13frafbefreivpr4I1_012OfRiragDhrhrR,%object
 b__MGIA7naqebvq10senzrjbexf13frafbefreivpr4I1_012OfRiragDhrhrR:
 .space __SIZEOF_POINTER__
@@ -343,7 +343,7 @@
 b__MA7naqebvq10senzrjbexf13frafbefreivpr4I1_017OaUjFrafbeZnantre10baGenafnpgRwEXAF_8uneqjner6CnepryRCF5_wAFg3__18shapgvbaVSiEF5_RRR:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF_10senzrjbexf13frafbefreivpr4I1_014VFrafbeZnantreRAF_4uvqy4onfr4I1_05VOnfrRAF5_17OcUjFrafbeZnantreRRRAF0_6ErgheaVAF_2fcVG_RRRRAFQ_VG0_RRCXpo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF_10senzrjbexf13frafbefreivpr4I1_014VFrafbeZnantreRAF_4uvqy4onfr4I1_05VOnfrRAF5_17OcUjFrafbeZnantreRRRAF0_6ErgheaVAF_2fcVG_RRRRAFQ_VG0_RRCXpo
 .type b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF_10senzrjbexf13frafbefreivpr4I1_014VFrafbeZnantreRAF_4uvqy4onfr4I1_05VOnfrRAF5_17OcUjFrafbeZnantreRRRAF0_6ErgheaVAF_2fcVG_RRRRAFQ_VG0_RRCXpo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF_10senzrjbexf13frafbefreivpr4I1_014VFrafbeZnantreRAF_4uvqy4onfr4I1_05VOnfrRAF5_17OcUjFrafbeZnantreRRRAF0_6ErgheaVAF_2fcVG_RRRRAFQ_VG0_RRCXpo:
 nop
@@ -393,7 +393,7 @@
 b__MGi0_a24_A7naqebvq10senzrjbexf13frafbefreivpr4I1_022OaUjRiragDhrhrPnyyonpxQ0Ri:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_:
 nop
@@ -523,7 +523,7 @@
 b__MA7naqebvq10senzrjbexf13frafbefreivpr4I1_014VFrafbeZnantre8pnfgSebzREXAF_2fcVF3_RRo:
 nop
 .text
-.globl b__MAXFg3__18shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF7_F7_F7_CAF_6irpgbeVCiAF_9nyybpngbeVF9_RRRRRRpyRF5_F7_F7_F7_F7_FQ_
+.weak b__MAXFg3__18shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF7_F7_F7_CAF_6irpgbeVCiAF_9nyybpngbeVF9_RRRRRRpyRF5_F7_F7_F7_F7_FQ_
 .type b__MAXFg3__18shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF7_F7_F7_CAF_6irpgbeVCiAF_9nyybpngbeVF9_RRRRRRpyRF5_F7_F7_F7_F7_FQ_,%function
 b__MAXFg3__18shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF7_F7_F7_CAF_6irpgbeVCiAF_9nyybpngbeVF9_RRRRRRpyRF5_F7_F7_F7_F7_FQ_:
 nop
@@ -543,7 +543,7 @@
 b__MA7naqebvq10senzrjbexf13frafbefreivpr4I1_022OaUjRiragDhrhrPnyyonpx4cvatRi:
 nop
 .data
-.globl b__MGIA7naqebvq10senzrjbexf13frafbefreivpr4I1_020OfRiragDhrhrPnyyonpxR
+.weak b__MGIA7naqebvq10senzrjbexf13frafbefreivpr4I1_020OfRiragDhrhrPnyyonpxR
 .type b__MGIA7naqebvq10senzrjbexf13frafbefreivpr4I1_020OfRiragDhrhrPnyyonpxR,%object
 b__MGIA7naqebvq10senzrjbexf13frafbefreivpr4I1_020OfRiragDhrhrPnyyonpxR:
 .space __SIZEOF_POINTER__
@@ -618,12 +618,12 @@
 b__MGua32_A7naqebvq10senzrjbexf13frafbefreivpr4I1_017OaUjFrafbeZnantreQ0Ri:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF_10senzrjbexf13frafbefreivpr4I1_023OcUjQverpgErcbegPunaaryRAF5_20VQverpgErcbegPunaaryRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFO_11pune_genvgfVpRRAFO_9nyybpngbeVpRRRRoo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF_10senzrjbexf13frafbefreivpr4I1_023OcUjQverpgErcbegPunaaryRAF5_20VQverpgErcbegPunaaryRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFO_11pune_genvgfVpRRAFO_9nyybpngbeVpRRRRoo
 .type b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF_10senzrjbexf13frafbefreivpr4I1_023OcUjQverpgErcbegPunaaryRAF5_20VQverpgErcbegPunaaryRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFO_11pune_genvgfVpRRAFO_9nyybpngbeVpRRRRoo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF_10senzrjbexf13frafbefreivpr4I1_023OcUjQverpgErcbegPunaaryRAF5_20VQverpgErcbegPunaaryRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFO_11pune_genvgfVpRRAFO_9nyybpngbeVpRRRRoo:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRR:
 nop
@@ -663,7 +663,7 @@
 b__MA7naqebvq10senzrjbexf13frafbefreivpr4I1_011VRiragDhrhr4cvatRi:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF_10senzrjbexf13frafbefreivpr4I1_011VRiragDhrhrRAF_4uvqy4onfr4I1_05VOnfrRAF5_14OcUjRiragDhrhrRRRAF0_6ErgheaVAF_2fcVG_RRRRAFQ_VG0_RRCXpo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF_10senzrjbexf13frafbefreivpr4I1_011VRiragDhrhrRAF_4uvqy4onfr4I1_05VOnfrRAF5_14OcUjRiragDhrhrRRRAF0_6ErgheaVAF_2fcVG_RRRRAFQ_VG0_RRCXpo
 .type b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF_10senzrjbexf13frafbefreivpr4I1_011VRiragDhrhrRAF_4uvqy4onfr4I1_05VOnfrRAF5_14OcUjRiragDhrhrRRRAF0_6ErgheaVAF_2fcVG_RRRRAFQ_VG0_RRCXpo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF_10senzrjbexf13frafbefreivpr4I1_011VRiragDhrhrRAF_4uvqy4onfr4I1_05VOnfrRAF5_14OcUjRiragDhrhrRRRAF0_6ErgheaVAF_2fcVG_RRRRAFQ_VG0_RRCXpo:
 nop
@@ -733,7 +733,7 @@
 b__MGPA7naqebvq10senzrjbexf13frafbefreivpr4I1_011VRiragDhrhrR0_AF_4uvqy4onfr4I1_05VOnfrR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFR_RRECAF_15__gerr_raq_abqrVFE_RREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFR_RRECAF_15__gerr_raq_abqrVFE_RREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFR_RRECAF_15__gerr_raq_abqrVFE_RREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFR_RRECAF_15__gerr_raq_abqrVFE_RREXG_:
 nop
@@ -758,7 +758,7 @@
 b__MGua32_A7naqebvq10senzrjbexf13frafbefreivpr4I1_022OaUjRiragDhrhrPnyyonpxQ1Ri:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner10sebzOvaqreVAF_10senzrjbexf13frafbefreivpr4I1_011VRiragDhrhrRAF4_14OcUjRiragDhrhrRAF4_14OaUjRiragDhrhrRRRAF_2fcVG_RREXAF8_VAF0_7VOvaqreRRR
+.weak b__MA7naqebvq8uneqjner10sebzOvaqreVAF_10senzrjbexf13frafbefreivpr4I1_011VRiragDhrhrRAF4_14OcUjRiragDhrhrRAF4_14OaUjRiragDhrhrRRRAF_2fcVG_RREXAF8_VAF0_7VOvaqreRRR
 .type b__MA7naqebvq8uneqjner10sebzOvaqreVAF_10senzrjbexf13frafbefreivpr4I1_011VRiragDhrhrRAF4_14OcUjRiragDhrhrRAF4_14OaUjRiragDhrhrRRRAF_2fcVG_RREXAF8_VAF0_7VOvaqreRRR,%function
 b__MA7naqebvq8uneqjner10sebzOvaqreVAF_10senzrjbexf13frafbefreivpr4I1_011VRiragDhrhrRAF4_14OcUjRiragDhrhrRAF4_14OaUjRiragDhrhrRRRAF_2fcVG_RREXAF8_VAF0_7VOvaqreRRR:
 nop
@@ -778,7 +778,7 @@
 b__MA7naqebvq10senzrjbexf13frafbefreivpr4I1_019VRiragDhrhrPnyyonpx8pnfgSebzREXAF_2fcVF3_RRo:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF_10senzrjbexf13frafbefreivpr4I1_019VRiragDhrhrPnyyonpxRAF_4uvqy4onfr4I1_05VOnfrRAF5_22OcUjRiragDhrhrPnyyonpxRRRAF0_6ErgheaVAF_2fcVG_RRRRAFQ_VG0_RRCXpo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF_10senzrjbexf13frafbefreivpr4I1_019VRiragDhrhrPnyyonpxRAF_4uvqy4onfr4I1_05VOnfrRAF5_22OcUjRiragDhrhrPnyyonpxRRRAF0_6ErgheaVAF_2fcVG_RRRRAFQ_VG0_RRCXpo
 .type b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF_10senzrjbexf13frafbefreivpr4I1_019VRiragDhrhrPnyyonpxRAF_4uvqy4onfr4I1_05VOnfrRAF5_22OcUjRiragDhrhrPnyyonpxRRRAF0_6ErgheaVAF_2fcVG_RRRRAFQ_VG0_RRCXpo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF_10senzrjbexf13frafbefreivpr4I1_019VRiragDhrhrPnyyonpxRAF_4uvqy4onfr4I1_05VOnfrRAF5_22OcUjRiragDhrhrPnyyonpxRRRAF0_6ErgheaVAF_2fcVG_RRRRAFQ_VG0_RRCXpo:
 nop
@@ -848,7 +848,7 @@
 b__MA7naqebvq10senzrjbexf13frafbefreivpr4I1_017OcUjFrafbeZnantre12trgQrohtVasbRAFg3__18shapgvbaVSiEXAF_4uvqy4onfr4I1_09QrohtVasbRRRR:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner10sebzOvaqreVAF_10senzrjbexf13frafbefreivpr4I1_020VQverpgErcbegPunaaryRAF4_23OcUjQverpgErcbegPunaaryRAF4_23OaUjQverpgErcbegPunaaryRRRAF_2fcVG_RREXAF8_VAF0_7VOvaqreRRR
+.weak b__MA7naqebvq8uneqjner10sebzOvaqreVAF_10senzrjbexf13frafbefreivpr4I1_020VQverpgErcbegPunaaryRAF4_23OcUjQverpgErcbegPunaaryRAF4_23OaUjQverpgErcbegPunaaryRRRAF_2fcVG_RREXAF8_VAF0_7VOvaqreRRR
 .type b__MA7naqebvq8uneqjner10sebzOvaqreVAF_10senzrjbexf13frafbefreivpr4I1_020VQverpgErcbegPunaaryRAF4_23OcUjQverpgErcbegPunaaryRAF4_23OaUjQverpgErcbegPunaaryRRRAF_2fcVG_RREXAF8_VAF0_7VOvaqreRRR,%function
 b__MA7naqebvq8uneqjner10sebzOvaqreVAF_10senzrjbexf13frafbefreivpr4I1_020VQverpgErcbegPunaaryRAF4_23OcUjQverpgErcbegPunaaryRAF4_23OaUjQverpgErcbegPunaaryRRRAF_2fcVG_RREXAF8_VAF0_7VOvaqreRRR:
 nop
@@ -928,7 +928,7 @@
 b__MA7naqebvq10senzrjbexf13frafbefreivpr4I1_020VQverpgErcbegPunaary19vagresnprQrfpevcgbeRAFg3__18shapgvbaVSiEXAF_8uneqjner11uvqy_fgevatRRRR:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_8uneqjner27uvqy_ovaqre_qrngu_erpvcvragRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_
+.weak b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_8uneqjner27uvqy_ovaqre_qrngu_erpvcvragRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_
 .type b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_8uneqjner27uvqy_ovaqre_qrngu_erpvcvragRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_,%function
 b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_8uneqjner27uvqy_ovaqre_qrngu_erpvcvragRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_:
 nop
@@ -938,7 +938,7 @@
 b__MA7naqebvq10senzrjbexf13frafbefreivpr4I1_020OfRiragDhrhrPnyyonpxP1RAF_2fcVAF2_19VRiragDhrhrPnyyonpxRRR:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner10sebzOvaqreVAF_10senzrjbexf13frafbefreivpr4I1_019VRiragDhrhrPnyyonpxRAF4_22OcUjRiragDhrhrPnyyonpxRAF4_22OaUjRiragDhrhrPnyyonpxRRRAF_2fcVG_RREXAF8_VAF0_7VOvaqreRRR
+.weak b__MA7naqebvq8uneqjner10sebzOvaqreVAF_10senzrjbexf13frafbefreivpr4I1_019VRiragDhrhrPnyyonpxRAF4_22OcUjRiragDhrhrPnyyonpxRAF4_22OaUjRiragDhrhrPnyyonpxRRRAF_2fcVG_RREXAF8_VAF0_7VOvaqreRRR
 .type b__MA7naqebvq8uneqjner10sebzOvaqreVAF_10senzrjbexf13frafbefreivpr4I1_019VRiragDhrhrPnyyonpxRAF4_22OcUjRiragDhrhrPnyyonpxRAF4_22OaUjRiragDhrhrPnyyonpxRRRAF_2fcVG_RREXAF8_VAF0_7VOvaqreRRR,%function
 b__MA7naqebvq8uneqjner10sebzOvaqreVAF_10senzrjbexf13frafbefreivpr4I1_019VRiragDhrhrPnyyonpxRAF4_22OcUjRiragDhrhrPnyyonpxRAF4_22OaUjRiragDhrhrPnyyonpxRRRAF_2fcVG_RREXAF8_VAF0_7VOvaqreRRR:
 nop
@@ -958,7 +958,7 @@
 b__MA7naqebvq10senzrjbexf13frafbefreivpr4I1_023OcUjQverpgErcbegPunaary13hayvaxGbQrnguREXAF_2fcVAF_8uneqjner20uvqy_qrngu_erpvcvragRRR:
 nop
 .data
-.globl b__MGPA7naqebvq10senzrjbexf13frafbefreivpr4I1_021OfQverpgErcbegPunaaryR0_AF2_20VQverpgErcbegPunaaryR
+.weak b__MGPA7naqebvq10senzrjbexf13frafbefreivpr4I1_021OfQverpgErcbegPunaaryR0_AF2_20VQverpgErcbegPunaaryR
 .type b__MGPA7naqebvq10senzrjbexf13frafbefreivpr4I1_021OfQverpgErcbegPunaaryR0_AF2_20VQverpgErcbegPunaaryR,%object
 b__MGPA7naqebvq10senzrjbexf13frafbefreivpr4I1_021OfQverpgErcbegPunaaryR0_AF2_20VQverpgErcbegPunaaryR:
 .space __SIZEOF_POINTER__
@@ -998,7 +998,7 @@
 b__MGIA7naqebvq10senzrjbexf13frafbefreivpr4I1_017OaUjFrafbeZnantreR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
+.weak b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
 .type b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_,%function
 b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_:
 nop
@@ -1043,7 +1043,7 @@
 b__MA7naqebvq10senzrjbexf13frafbefreivpr4I1_023OcUjQverpgErcbegPunaary4cvatRi:
 nop
 .text
-.globl b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
+.weak b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
 .type b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_,%function
 b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_:
 nop
@@ -1138,7 +1138,7 @@
 b__MA7naqebvq10senzrjbexf13frafbefreivpr4I1_022OaUjRiragDhrhrPnyyonpxQ1Ri:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF_10senzrjbexf13frafbefreivpr4I1_022OcUjRiragDhrhrPnyyonpxRAF5_19VRiragDhrhrPnyyonpxRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFO_11pune_genvgfVpRRAFO_9nyybpngbeVpRRRRoo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF_10senzrjbexf13frafbefreivpr4I1_022OcUjRiragDhrhrPnyyonpxRAF5_19VRiragDhrhrPnyyonpxRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFO_11pune_genvgfVpRRAFO_9nyybpngbeVpRRRRoo
 .type b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF_10senzrjbexf13frafbefreivpr4I1_022OcUjRiragDhrhrPnyyonpxRAF5_19VRiragDhrhrPnyyonpxRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFO_11pune_genvgfVpRRAFO_9nyybpngbeVpRRRRoo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF_10senzrjbexf13frafbefreivpr4I1_022OcUjRiragDhrhrPnyyonpxRAF5_19VRiragDhrhrPnyyonpxRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFO_11pune_genvgfVpRRAFO_9nyybpngbeVpRRRRoo:
 nop
@@ -1268,7 +1268,7 @@
 b__MA7naqebvq10senzrjbexf13frafbefreivpr4I1_022OcUjRiragDhrhrPnyyonpx11yvaxGbQrnguREXAF_2fcVAF_8uneqjner20uvqy_qrngu_erpvcvragRRRz:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFT_RRECAF_15__gerr_raq_abqrVFG_RREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFT_RRECAF_15__gerr_raq_abqrVFG_RREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFT_RRECAF_15__gerr_raq_abqrVFG_RREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFT_RRECAF_15__gerr_raq_abqrVFG_RREXG_:
 nop
@@ -1278,7 +1278,7 @@
 b__MGPA7naqebvq10senzrjbexf13frafbefreivpr4I1_020VQverpgErcbegPunaaryR0_AF_4uvqy4onfr4I1_05VOnfrR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIA7naqebvq10senzrjbexf13frafbefreivpr4I1_015OfFrafbeZnantreR
+.weak b__MGIA7naqebvq10senzrjbexf13frafbefreivpr4I1_015OfFrafbeZnantreR
 .type b__MGIA7naqebvq10senzrjbexf13frafbefreivpr4I1_015OfFrafbeZnantreR,%object
 b__MGIA7naqebvq10senzrjbexf13frafbefreivpr4I1_015OfFrafbeZnantreR:
 .space __SIZEOF_POINTER__
@@ -1328,7 +1328,7 @@
 b__MA7naqebvq10senzrjbexf13frafbefreivpr4I1_014OaUjRiragDhrhr19_uvqy_qvfnoyrFrafbeRCAF_4uvqy4onfr4I1_08OaUjOnfrREXAF_8uneqjner6CnepryRCFN_AFg3__18shapgvbaVSiEFN_RRR:
 nop
 .data
-.globl b__MGPA7naqebvq10senzrjbexf13frafbefreivpr4I1_012OfRiragDhrhrR0_AF2_11VRiragDhrhrR
+.weak b__MGPA7naqebvq10senzrjbexf13frafbefreivpr4I1_012OfRiragDhrhrR0_AF2_11VRiragDhrhrR
 .type b__MGPA7naqebvq10senzrjbexf13frafbefreivpr4I1_012OfRiragDhrhrR0_AF2_11VRiragDhrhrR,%object
 b__MGPA7naqebvq10senzrjbexf13frafbefreivpr4I1_012OfRiragDhrhrR0_AF2_11VRiragDhrhrR:
 .space __SIZEOF_POINTER__
@@ -1353,7 +1353,7 @@
 b__MGGA7naqebvq10senzrjbexf13frafbefreivpr4I1_023OcUjQverpgErcbegPunaaryR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIA7naqebvq10senzrjbexf13frafbefreivpr4I1_021OfQverpgErcbegPunaaryR
+.weak b__MGIA7naqebvq10senzrjbexf13frafbefreivpr4I1_021OfQverpgErcbegPunaaryR
 .type b__MGIA7naqebvq10senzrjbexf13frafbefreivpr4I1_021OfQverpgErcbegPunaaryR,%object
 b__MGIA7naqebvq10senzrjbexf13frafbefreivpr4I1_021OfQverpgErcbegPunaaryR:
 .space __SIZEOF_POINTER__
@@ -1433,7 +1433,7 @@
 b__MA7naqebvq10senzrjbexf13frafbefreivpr4I1_014OcUjRiragDhrhr21abgvslFlfcebcfPunatrqRi:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF_10senzrjbexf13frafbefreivpr4I1_011VRiragDhrhrRiRRAF_2fcVG_RRF9_
+.weak b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF_10senzrjbexf13frafbefreivpr4I1_011VRiragDhrhrRiRRAF_2fcVG_RRF9_
 .type b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF_10senzrjbexf13frafbefreivpr4I1_011VRiragDhrhrRiRRAF_2fcVG_RRF9_,%function
 b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF_10senzrjbexf13frafbefreivpr4I1_011VRiragDhrhrRiRRAF_2fcVG_RRF9_:
 nop
@@ -1443,7 +1443,7 @@
 b__MGi0_a40_A7naqebvq10senzrjbexf13frafbefreivpr4I1_017OcUjFrafbeZnantre15baYnfgFgebatErsRCXi:
 nop
 .text
-.globl b__MAFg3__16irpgbeVCiAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_
+.weak b__MAFg3__16irpgbeVCiAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_
 .type b__MAFg3__16irpgbeVCiAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_,%function
 b__MAFg3__16irpgbeVCiAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_:
 nop
@@ -1493,7 +1493,7 @@
 b__MA7naqebvq10senzrjbexf13frafbefreivpr4I1_017OcUjFrafbeZnantre15baYnfgFgebatErsRCXi:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF_10senzrjbexf13frafbefreivpr4I1_017OcUjFrafbeZnantreRAF5_14VFrafbeZnantreRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFO_11pune_genvgfVpRRAFO_9nyybpngbeVpRRRRoo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF_10senzrjbexf13frafbefreivpr4I1_017OcUjFrafbeZnantreRAF5_14VFrafbeZnantreRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFO_11pune_genvgfVpRRAFO_9nyybpngbeVpRRRRoo
 .type b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF_10senzrjbexf13frafbefreivpr4I1_017OcUjFrafbeZnantreRAF5_14VFrafbeZnantreRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFO_11pune_genvgfVpRRAFO_9nyybpngbeVpRRRRoo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF_10senzrjbexf13frafbefreivpr4I1_017OcUjFrafbeZnantreRAF5_14VFrafbeZnantreRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFO_11pune_genvgfVpRRAFO_9nyybpngbeVpRRRRoo:
 nop
@@ -1508,7 +1508,7 @@
 b__MA7naqebvq10senzrjbexf13frafbefreivpr4I1_023OcUjQverpgErcbegPunaary11yvaxGbQrnguREXAF_2fcVAF_8uneqjner20uvqy_qrngu_erpvcvragRRRz:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRP2REXFU_
+.weak b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRP2REXFU_
 .type b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRP2REXFU_,%function
 b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRP2REXFU_:
 nop
diff --git a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_060.S b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_060.S
index 49a3864..cc5a7c0 100644
--- a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_060.S
+++ b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_060.S
@@ -48,7 +48,7 @@
 b__MA7naqebvq6flfgrz7fhfcraq4I1_017OcUjFlfgrzFhfcraq21abgvslFlfcebcfPunatrqRi:
 nop
 .text
-.globl b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
+.weak b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
 .type b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_,%function
 b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_:
 nop
@@ -133,7 +133,7 @@
 b__MA7naqebvq6flfgrz7fhfcraq4I1_09VJnxrYbpx8pnfgSebzREXAF_2fcVF3_RRo:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF_6flfgrz7fhfcraq4I1_09VJnxrYbpxRAF_4uvqy4onfr4I1_05VOnfrRAF5_12OcUjJnxrYbpxRRRAF0_6ErgheaVAF_2fcVG_RRRRAFQ_VG0_RRCXpo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF_6flfgrz7fhfcraq4I1_09VJnxrYbpxRAF_4uvqy4onfr4I1_05VOnfrRAF5_12OcUjJnxrYbpxRRRAF0_6ErgheaVAF_2fcVG_RRRRAFQ_VG0_RRCXpo
 .type b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF_6flfgrz7fhfcraq4I1_09VJnxrYbpxRAF_4uvqy4onfr4I1_05VOnfrRAF5_12OcUjJnxrYbpxRRRAF0_6ErgheaVAF_2fcVG_RRRRAFQ_VG0_RRCXpo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF_6flfgrz7fhfcraq4I1_09VJnxrYbpxRAF_4uvqy4onfr4I1_05VOnfrRAF5_12OcUjJnxrYbpxRRRAF0_6ErgheaVAF_2fcVG_RRRRAFQ_VG0_RRCXpo:
 nop
@@ -168,7 +168,7 @@
 b__MA7naqebvq6flfgrz7fhfcraq4I1_09VJnxrYbpx10qrfpevcgbeR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFR_RRECAF_15__gerr_raq_abqrVFE_RREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFR_RRECAF_15__gerr_raq_abqrVFE_RREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFR_RRECAF_15__gerr_raq_abqrVFE_RREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFR_RRECAF_15__gerr_raq_abqrVFE_RREXG_:
 nop
@@ -193,12 +193,12 @@
 b__MA7naqebvq6flfgrz7fhfcraq4I1_017OcUjFlfgrzFhfcraq15baYnfgFgebatErsRCXi:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRR:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_8uneqjner27uvqy_ovaqre_qrngu_erpvcvragRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_
+.weak b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_8uneqjner27uvqy_ovaqre_qrngu_erpvcvragRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_
 .type b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_8uneqjner27uvqy_ovaqre_qrngu_erpvcvragRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_,%function
 b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_8uneqjner27uvqy_ovaqre_qrngu_erpvcvragRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_:
 nop
@@ -213,12 +213,12 @@
 b__MGi0_a24_A7naqebvq6flfgrz7fhfcraq4I1_012OaUjJnxrYbpxQ1Ri:
 nop
 .text
-.globl b__MA7naqebvq2fcVAF_6flfgrz7fhfcraq4I1_09VJnxrYbpxRRnFRBF5_
+.weak b__MA7naqebvq2fcVAF_6flfgrz7fhfcraq4I1_09VJnxrYbpxRRnFRBF5_
 .type b__MA7naqebvq2fcVAF_6flfgrz7fhfcraq4I1_09VJnxrYbpxRRnFRBF5_,%function
 b__MA7naqebvq2fcVAF_6flfgrz7fhfcraq4I1_09VJnxrYbpxRRnFRBF5_:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF_6flfgrz7fhfcraq4I1_09VJnxrYbpxRiRRAF_2fcVG_RRF9_
+.weak b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF_6flfgrz7fhfcraq4I1_09VJnxrYbpxRiRRAF_2fcVG_RRF9_
 .type b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF_6flfgrz7fhfcraq4I1_09VJnxrYbpxRiRRAF_2fcVG_RRF9_,%function
 b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF_6flfgrz7fhfcraq4I1_09VJnxrYbpxRiRRAF_2fcVG_RRF9_:
 nop
@@ -358,12 +358,12 @@
 b__MA7naqebvq6flfgrz7fhfcraq4I1_017OaUjFlfgrzFhfcraq4cvatRi:
 nop
 .text
-.globl b__MAFg3__16irpgbeVCiAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_
+.weak b__MAFg3__16irpgbeVCiAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_
 .type b__MAFg3__16irpgbeVCiAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_,%function
 b__MAFg3__16irpgbeVCiAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_:
 nop
 .data
-.globl b__MGPA7naqebvq6flfgrz7fhfcraq4I1_015OfFlfgrzFhfcraqR0_AF2_14VFlfgrzFhfcraqR
+.weak b__MGPA7naqebvq6flfgrz7fhfcraq4I1_015OfFlfgrzFhfcraqR0_AF2_14VFlfgrzFhfcraqR
 .type b__MGPA7naqebvq6flfgrz7fhfcraq4I1_015OfFlfgrzFhfcraqR0_AF2_14VFlfgrzFhfcraqR,%object
 b__MGPA7naqebvq6flfgrz7fhfcraq4I1_015OfFlfgrzFhfcraqR0_AF2_14VFlfgrzFhfcraqR:
 .space __SIZEOF_POINTER__
@@ -373,7 +373,7 @@
 b__MA7naqebvq6flfgrz7fhfcraq4I1_017OaUjFlfgrzFhfcraq12trgQrohtVasbRAFg3__18shapgvbaVSiEXAF_4uvqy4onfr4I1_09QrohtVasbRRRR:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_:
 nop
@@ -418,12 +418,12 @@
 b__MA7naqebvq6flfgrz7fhfcraq4I1_014VFlfgrzFhfcraq5qrohtREXAF_8uneqjner11uvqy_unaqyrREXAF4_8uvqy_irpVAF4_11uvqy_fgevatRRR:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner10sebzOvaqreVAF_6flfgrz7fhfcraq4I1_09VJnxrYbpxRAF4_12OcUjJnxrYbpxRAF4_12OaUjJnxrYbpxRRRAF_2fcVG_RREXAF8_VAF0_7VOvaqreRRR
+.weak b__MA7naqebvq8uneqjner10sebzOvaqreVAF_6flfgrz7fhfcraq4I1_09VJnxrYbpxRAF4_12OcUjJnxrYbpxRAF4_12OaUjJnxrYbpxRRRAF_2fcVG_RREXAF8_VAF0_7VOvaqreRRR
 .type b__MA7naqebvq8uneqjner10sebzOvaqreVAF_6flfgrz7fhfcraq4I1_09VJnxrYbpxRAF4_12OcUjJnxrYbpxRAF4_12OaUjJnxrYbpxRRRAF_2fcVG_RREXAF8_VAF0_7VOvaqreRRR,%function
 b__MA7naqebvq8uneqjner10sebzOvaqreVAF_6flfgrz7fhfcraq4I1_09VJnxrYbpxRAF4_12OcUjJnxrYbpxRAF4_12OaUjJnxrYbpxRRRAF_2fcVG_RREXAF8_VAF0_7VOvaqreRRR:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRP2REXFU_
+.weak b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRP2REXFU_
 .type b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRP2REXFU_,%function
 b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRP2REXFU_:
 nop
@@ -443,7 +443,7 @@
 b__MA7naqebvq6flfgrz7fhfcraq4I1_09VJnxrYbpx4cvatRi:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF_6flfgrz7fhfcraq4I1_012OcUjJnxrYbpxRAF5_9VJnxrYbpxRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFO_11pune_genvgfVpRRAFO_9nyybpngbeVpRRRRoo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF_6flfgrz7fhfcraq4I1_012OcUjJnxrYbpxRAF5_9VJnxrYbpxRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFO_11pune_genvgfVpRRAFO_9nyybpngbeVpRRRRoo
 .type b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF_6flfgrz7fhfcraq4I1_012OcUjJnxrYbpxRAF5_9VJnxrYbpxRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFO_11pune_genvgfVpRRAFO_9nyybpngbeVpRRRRoo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF_6flfgrz7fhfcraq4I1_012OcUjJnxrYbpxRAF5_9VJnxrYbpxRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFO_11pune_genvgfVpRRAFO_9nyybpngbeVpRRRRoo:
 nop
@@ -458,7 +458,7 @@
 b__MA7naqebvq6flfgrz7fhfcraq4I1_017OaUjFlfgrzFhfcraqQ2Ri:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF_6flfgrz7fhfcraq4I1_017OcUjFlfgrzFhfcraqRAF5_14VFlfgrzFhfcraqRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFO_11pune_genvgfVpRRAFO_9nyybpngbeVpRRRRoo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF_6flfgrz7fhfcraq4I1_017OcUjFlfgrzFhfcraqRAF5_14VFlfgrzFhfcraqRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFO_11pune_genvgfVpRRAFO_9nyybpngbeVpRRRRoo
 .type b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF_6flfgrz7fhfcraq4I1_017OcUjFlfgrzFhfcraqRAF5_14VFlfgrzFhfcraqRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFO_11pune_genvgfVpRRAFO_9nyybpngbeVpRRRRoo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF_6flfgrz7fhfcraq4I1_017OcUjFlfgrzFhfcraqRAF5_14VFlfgrzFhfcraqRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFO_11pune_genvgfVpRRAFO_9nyybpngbeVpRRRRoo:
 nop
@@ -538,7 +538,7 @@
 b__MA7naqebvq6flfgrz7fhfcraq4I1_09VJnxrYbpx5qrohtREXAF_8uneqjner11uvqy_unaqyrREXAF4_8uvqy_irpVAF4_11uvqy_fgevatRRR:
 nop
 .data
-.globl b__MGIA7naqebvq6flfgrz7fhfcraq4I1_010OfJnxrYbpxR
+.weak b__MGIA7naqebvq6flfgrz7fhfcraq4I1_010OfJnxrYbpxR
 .type b__MGIA7naqebvq6flfgrz7fhfcraq4I1_010OfJnxrYbpxR,%object
 b__MGIA7naqebvq6flfgrz7fhfcraq4I1_010OfJnxrYbpxR:
 .space __SIZEOF_POINTER__
@@ -553,7 +553,7 @@
 b__MA7naqebvq6flfgrz7fhfcraq4I1_017OaUjFlfgrzFhfcraq10baGenafnpgRwEXAF_8uneqjner6CnepryRCF5_wAFg3__18shapgvbaVSiEF5_RRR:
 nop
 .text
-.globl b__MAXFg3__18shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF7_F7_F7_CAF_6irpgbeVCiAF_9nyybpngbeVF9_RRRRRRpyRF5_F7_F7_F7_F7_FQ_
+.weak b__MAXFg3__18shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF7_F7_F7_CAF_6irpgbeVCiAF_9nyybpngbeVF9_RRRRRRpyRF5_F7_F7_F7_F7_FQ_
 .type b__MAXFg3__18shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF7_F7_F7_CAF_6irpgbeVCiAF_9nyybpngbeVF9_RRRRRRpyRF5_F7_F7_F7_F7_FQ_,%function
 b__MAXFg3__18shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF7_F7_F7_CAF_6irpgbeVCiAF_9nyybpngbeVF9_RRRRRRpyRF5_F7_F7_F7_F7_FQ_:
 nop
@@ -583,7 +583,7 @@
 b__MA7naqebvq6flfgrz7fhfcraq4I1_017OcUjFlfgrzFhfcraq21_uvqy_npdhverJnxrYbpxRCAF_8uneqjner10VVagresnprRCAF4_7qrgnvyf16UvqyVafgehzragbeRAF2_12JnxrYbpxGlcrREXAF4_11uvqy_fgevatR:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF_6flfgrz7fhfcraq4I1_014VFlfgrzFhfcraqRAF_4uvqy4onfr4I1_05VOnfrRAF5_17OcUjFlfgrzFhfcraqRRRAF0_6ErgheaVAF_2fcVG_RRRRAFQ_VG0_RRCXpo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF_6flfgrz7fhfcraq4I1_014VFlfgrzFhfcraqRAF_4uvqy4onfr4I1_05VOnfrRAF5_17OcUjFlfgrzFhfcraqRRRAF0_6ErgheaVAF_2fcVG_RRRRAFQ_VG0_RRCXpo
 .type b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF_6flfgrz7fhfcraq4I1_014VFlfgrzFhfcraqRAF_4uvqy4onfr4I1_05VOnfrRAF5_17OcUjFlfgrzFhfcraqRRRAF0_6ErgheaVAF_2fcVG_RRRRAFQ_VG0_RRCXpo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF_6flfgrz7fhfcraq4I1_014VFlfgrzFhfcraqRAF_4uvqy4onfr4I1_05VOnfrRAF5_17OcUjFlfgrzFhfcraqRRRAF0_6ErgheaVAF_2fcVG_RRRRAFQ_VG0_RRCXpo:
 nop
@@ -618,7 +618,7 @@
 b__MGPA7naqebvq6flfgrz7fhfcraq4I1_012OaUjJnxrYbpxR0_AF_4uvqy4onfr4I1_08OaUjOnfrR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRR:
 nop
@@ -638,7 +638,7 @@
 b__MA7naqebvq6flfgrz7fhfcraq4I1_09VJnxrYbpx21frgUNYVafgehzragngvbaRi:
 nop
 .data
-.globl b__MGPA7naqebvq6flfgrz7fhfcraq4I1_010OfJnxrYbpxR0_AF2_9VJnxrYbpxR
+.weak b__MGPA7naqebvq6flfgrz7fhfcraq4I1_010OfJnxrYbpxR0_AF2_9VJnxrYbpxR
 .type b__MGPA7naqebvq6flfgrz7fhfcraq4I1_010OfJnxrYbpxR0_AF2_9VJnxrYbpxR,%object
 b__MGPA7naqebvq6flfgrz7fhfcraq4I1_010OfJnxrYbpxR0_AF2_9VJnxrYbpxR:
 .space __SIZEOF_POINTER__
@@ -653,7 +653,7 @@
 b__MA7naqebvq6flfgrz7fhfcraq4I1_014VFlfgrzFhfcraq13gelTrgFreivprREXAFg3__112onfvp_fgevatVpAF4_11pune_genvgfVpRRAF4_9nyybpngbeVpRRRRo:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFT_RRECAF_15__gerr_raq_abqrVFG_RREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFT_RRECAF_15__gerr_raq_abqrVFG_RREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFT_RRECAF_15__gerr_raq_abqrVFG_RREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFT_RRECAF_15__gerr_raq_abqrVFG_RREXG_:
 nop
@@ -713,7 +713,7 @@
 b__MA7naqebvq6flfgrz7fhfcraq4I1_017OcUjFlfgrzFhfcraq4cvatRi:
 nop
 .data
-.globl b__MGIA7naqebvq6flfgrz7fhfcraq4I1_015OfFlfgrzFhfcraqR
+.weak b__MGIA7naqebvq6flfgrz7fhfcraq4I1_015OfFlfgrzFhfcraqR
 .type b__MGIA7naqebvq6flfgrz7fhfcraq4I1_015OfFlfgrzFhfcraqR,%object
 b__MGIA7naqebvq6flfgrz7fhfcraq4I1_015OfFlfgrzFhfcraqR:
 .space __SIZEOF_POINTER__
@@ -723,7 +723,7 @@
 b__MA7naqebvq6flfgrz7fhfcraq4I1_017OaUjFlfgrzFhfcraqQ1Ri:
 nop
 .text
-.globl b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
+.weak b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
 .type b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_,%function
 b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_:
 nop
@@ -748,7 +748,7 @@
 b__MA7naqebvq6flfgrz7fhfcraq4I1_017OcUjFlfgrzFhfcraq14vagresnprPunvaRAFg3__18shapgvbaVSiEXAF_8uneqjner8uvqy_irpVAF6_11uvqy_fgevatRRRRRR:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_:
 nop
diff --git a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_061.S b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_061.S
index c4e64e5..05840d1 100644
--- a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_061.S
+++ b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_061.S
@@ -28,7 +28,7 @@
 b__MA7naqebvq6flfgrz7fhfcraq29VFhfcraqPbagebyFreivprQrsnhyg17ranoyrNhgbfhfcraqRCo:
 nop
 .text
-.globl b__MA7naqebvq11OaVagresnprVAF_6flfgrz7fhfcraq16VFhfcraqPnyyonpxRR10baNfOvaqreRi
+.weak b__MA7naqebvq11OaVagresnprVAF_6flfgrz7fhfcraq16VFhfcraqPnyyonpxRR10baNfOvaqreRi
 .type b__MA7naqebvq11OaVagresnprVAF_6flfgrz7fhfcraq16VFhfcraqPnyyonpxRR10baNfOvaqreRi,%function
 b__MA7naqebvq11OaVagresnprVAF_6flfgrz7fhfcraq16VFhfcraqPnyyonpxRR10baNfOvaqreRi:
 nop
@@ -183,12 +183,12 @@
 b__MGGA7naqebvq6flfgrz7fhfcraq29VFhfcraqPbagebyFreivprQrsnhygR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq6Cnepry16ernqFgebatOvaqreVAF_6flfgrz7fhfcraq16VFhfcraqPnyyonpxRRRvCAF_2fcVG_RR
+.weak b__MAX7naqebvq6Cnepry16ernqFgebatOvaqreVAF_6flfgrz7fhfcraq16VFhfcraqPnyyonpxRRRvCAF_2fcVG_RR
 .type b__MAX7naqebvq6Cnepry16ernqFgebatOvaqreVAF_6flfgrz7fhfcraq16VFhfcraqPnyyonpxRRRvCAF_2fcVG_RR,%function
 b__MAX7naqebvq6Cnepry16ernqFgebatOvaqreVAF_6flfgrz7fhfcraq16VFhfcraqPnyyonpxRRRvCAF_2fcVG_RR:
 nop
 .text
-.globl b__MAX7naqebvq6Cnepry20ernqCneprynoyrIrpgbeVAF_6flfgrz7fhfcraq12JnxrYbpxVasbRRRvCAFg3__16irpgbeVG_AF5_9nyybpngbeVF7_RRRR
+.weak b__MAX7naqebvq6Cnepry20ernqCneprynoyrIrpgbeVAF_6flfgrz7fhfcraq12JnxrYbpxVasbRRRvCAFg3__16irpgbeVG_AF5_9nyybpngbeVF7_RRRR
 .type b__MAX7naqebvq6Cnepry20ernqCneprynoyrIrpgbeVAF_6flfgrz7fhfcraq12JnxrYbpxVasbRRRvCAFg3__16irpgbeVG_AF5_9nyybpngbeVF7_RRRR,%function
 b__MAX7naqebvq6Cnepry20ernqCneprynoyrIrpgbeVAF_6flfgrz7fhfcraq12JnxrYbpxVasbRRRvCAFg3__16irpgbeVG_AF5_9nyybpngbeVF7_RRRR:
 nop
@@ -233,12 +233,12 @@
 b__MA7naqebvq6flfgrz7fhfcraq23OcFhfcraqPbagebyFreivpr12sbeprFhfcraqRCo:
 nop
 .text
-.globl b__MA7naqebvq11OaVagresnprVAF_6flfgrz7fhfcraq22VFhfcraqPbagebyFreivprRR10baNfOvaqreRi
+.weak b__MA7naqebvq11OaVagresnprVAF_6flfgrz7fhfcraq22VFhfcraqPbagebyFreivprRR10baNfOvaqreRi
 .type b__MA7naqebvq11OaVagresnprVAF_6flfgrz7fhfcraq22VFhfcraqPbagebyFreivprRR10baNfOvaqreRi,%function
 b__MA7naqebvq11OaVagresnprVAF_6flfgrz7fhfcraq22VFhfcraqPbagebyFreivprRR10baNfOvaqreRi:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq6flfgrz7fhfcraq12JnxrYbpxVasbRAF_9nyybpngbeVF4_RRR8__nccraqRz
+.weak b__MAFg3__16irpgbeVA7naqebvq6flfgrz7fhfcraq12JnxrYbpxVasbRAF_9nyybpngbeVF4_RRR8__nccraqRz
 .type b__MAFg3__16irpgbeVA7naqebvq6flfgrz7fhfcraq12JnxrYbpxVasbRAF_9nyybpngbeVF4_RRR8__nccraqRz,%function
 b__MAFg3__16irpgbeVA7naqebvq6flfgrz7fhfcraq12JnxrYbpxVasbRAF_9nyybpngbeVF4_RRR8__nccraqRz:
 nop
@@ -253,7 +253,7 @@
 b__MA7naqebvq6flfgrz7fhfcraq17OcFhfcraqPnyyonpxP2REXAF_2fcVAF_7VOvaqreRRR:
 nop
 .text
-.globl b__MA7naqebvq6Cnepry21jevgrCneprynoyrIrpgbeVAF_6flfgrz7fhfcraq12JnxrYbpxVasbRRRvEXAFg3__16irpgbeVG_AF5_9nyybpngbeVF7_RRRR
+.weak b__MA7naqebvq6Cnepry21jevgrCneprynoyrIrpgbeVAF_6flfgrz7fhfcraq12JnxrYbpxVasbRRRvEXAFg3__16irpgbeVG_AF5_9nyybpngbeVF7_RRRR
 .type b__MA7naqebvq6Cnepry21jevgrCneprynoyrIrpgbeVAF_6flfgrz7fhfcraq12JnxrYbpxVasbRRRvEXAFg3__16irpgbeVG_AF5_9nyybpngbeVF7_RRRR,%function
 b__MA7naqebvq6Cnepry21jevgrCneprynoyrIrpgbeVAF_6flfgrz7fhfcraq12JnxrYbpxVasbRRRvEXAFg3__16irpgbeVG_AF5_9nyybpngbeVF7_RRRR:
 nop
diff --git a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_062.S b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_062.S
index 5223078..5b529ac 100644
--- a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_062.S
+++ b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_062.S
@@ -13,7 +13,7 @@
 b__MA7naqebvq8uneqjner8ivoengbe17VIvoengbePnyyonpx11nfVagresnprREXAF_2fcVAF_7VOvaqreRRR:
 nop
 .text
-.globl b__MAX7naqebvq6Cnepry14ernqRahzIrpgbeVAF_8uneqjner8ivoengbe6RssrpgRYo0RRRvCAFg3__16irpgbeVG_AF5_9nyybpngbeVF7_RRRR
+.weak b__MAX7naqebvq6Cnepry14ernqRahzIrpgbeVAF_8uneqjner8ivoengbe6RssrpgRYo0RRRvCAFg3__16irpgbeVG_AF5_9nyybpngbeVF7_RRRR
 .type b__MAX7naqebvq6Cnepry14ernqRahzIrpgbeVAF_8uneqjner8ivoengbe6RssrpgRYo0RRRvCAFg3__16irpgbeVG_AF5_9nyybpngbeVF7_RRRR,%function
 b__MAX7naqebvq6Cnepry14ernqRahzIrpgbeVAF_8uneqjner8ivoengbe6RssrpgRYo0RRRvCAFg3__16irpgbeVG_AF5_9nyybpngbeVF7_RRRR:
 nop
@@ -128,7 +128,7 @@
 b__MA7naqebvq8uneqjner8ivoengbe9VIvoengbeP2Ri:
 nop
 .text
-.globl b__MAX7naqebvq6Cnepry16ernqFgebatOvaqreVAF_8uneqjner8ivoengbe17VIvoengbePnyyonpxRRRvCAF_2fcVG_RR
+.weak b__MAX7naqebvq6Cnepry16ernqFgebatOvaqreVAF_8uneqjner8ivoengbe17VIvoengbePnyyonpxRRRvCAF_2fcVG_RR
 .type b__MAX7naqebvq6Cnepry16ernqFgebatOvaqreVAF_8uneqjner8ivoengbe17VIvoengbePnyyonpxRRRvCAF_2fcVG_RR,%function
 b__MAX7naqebvq6Cnepry16ernqFgebatOvaqreVAF_8uneqjner8ivoengbe17VIvoengbePnyyonpxRRRvCAF_2fcVG_RR:
 nop
@@ -148,7 +148,7 @@
 b__MA7naqebvq8uneqjner8ivoengbe16VIvoengbeQrsnhyg15trgPncnovyvgvrfRCv:
 nop
 .text
-.globl b__MAX7naqebvq6Cnepry20ernqCneprynoyrIrpgbeVAF_8uneqjner8ivoengbe15PbzcbfvgrRssrpgRRRvCAFg3__16irpgbeVG_AF5_9nyybpngbeVF7_RRRR
+.weak b__MAX7naqebvq6Cnepry20ernqCneprynoyrIrpgbeVAF_8uneqjner8ivoengbe15PbzcbfvgrRssrpgRRRvCAFg3__16irpgbeVG_AF5_9nyybpngbeVF7_RRRR
 .type b__MAX7naqebvq6Cnepry20ernqCneprynoyrIrpgbeVAF_8uneqjner8ivoengbe15PbzcbfvgrRssrpgRRRvCAFg3__16irpgbeVG_AF5_9nyybpngbeVF7_RRRR,%function
 b__MAX7naqebvq6Cnepry20ernqCneprynoyrIrpgbeVAF_8uneqjner8ivoengbe15PbzcbfvgrRssrpgRRRvCAFg3__16irpgbeVG_AF5_9nyybpngbeVF7_RRRR:
 nop
@@ -223,7 +223,7 @@
 b__MGIA7naqebvq8uneqjner8ivoengbe18OaIvoengbePnyyonpxR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq6Cnepry15jevgrRahzIrpgbeVAF_8uneqjner8ivoengbe6RssrpgRYo0RRRvEXAFg3__16irpgbeVG_AF5_9nyybpngbeVF7_RRRR
+.weak b__MA7naqebvq6Cnepry15jevgrRahzIrpgbeVAF_8uneqjner8ivoengbe6RssrpgRYo0RRRvEXAFg3__16irpgbeVG_AF5_9nyybpngbeVF7_RRRR
 .type b__MA7naqebvq6Cnepry15jevgrRahzIrpgbeVAF_8uneqjner8ivoengbe6RssrpgRYo0RRRvEXAFg3__16irpgbeVG_AF5_9nyybpngbeVF7_RRRR,%function
 b__MA7naqebvq6Cnepry15jevgrRahzIrpgbeVAF_8uneqjner8ivoengbe6RssrpgRYo0RRRvEXAFg3__16irpgbeVG_AF5_9nyybpngbeVF7_RRRR:
 nop
@@ -373,7 +373,7 @@
 b__MA7naqebvq8uneqjner8ivoengbe16VIvoengbeQrsnhyg7pbzcbfrREXAFg3__16irpgbeVAF1_15PbzcbfvgrRssrpgRAF3_9nyybpngbeVF5_RRRREXAF_2fcVAF1_17VIvoengbePnyyonpxRRR:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq8uneqjner8ivoengbe6RssrpgRAF_9nyybpngbeVF4_RRR8__nccraqRz
+.weak b__MAFg3__16irpgbeVA7naqebvq8uneqjner8ivoengbe6RssrpgRAF_9nyybpngbeVF4_RRR8__nccraqRz
 .type b__MAFg3__16irpgbeVA7naqebvq8uneqjner8ivoengbe6RssrpgRAF_9nyybpngbeVF4_RRR8__nccraqRz,%function
 b__MAFg3__16irpgbeVA7naqebvq8uneqjner8ivoengbe6RssrpgRAF_9nyybpngbeVF4_RRR8__nccraqRz:
 nop
@@ -393,7 +393,7 @@
 b__MA7naqebvq8uneqjner8ivoengbe16VIvoengbeQrsnhyg19trgFhccbegrqRssrpgfRCAFg3__16irpgbeVAF1_6RssrpgRAF3_9nyybpngbeVF5_RRRR:
 nop
 .text
-.globl b__MA7naqebvq11OaVagresnprVAF_8uneqjner8ivoengbe17VIvoengbePnyyonpxRR10baNfOvaqreRi
+.weak b__MA7naqebvq11OaVagresnprVAF_8uneqjner8ivoengbe17VIvoengbePnyyonpxRR10baNfOvaqreRi
 .type b__MA7naqebvq11OaVagresnprVAF_8uneqjner8ivoengbe17VIvoengbePnyyonpxRR10baNfOvaqreRi,%function
 b__MA7naqebvq11OaVagresnprVAF_8uneqjner8ivoengbe17VIvoengbePnyyonpxRR10baNfOvaqreRi:
 nop
@@ -538,7 +538,7 @@
 b__MGPA7naqebvq8uneqjner8ivoengbe18OaIvoengbePnyyonpxR0_AF_11OaVagresnprVAF1_17VIvoengbePnyyonpxRRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq11OaVagresnprVAF_8uneqjner8ivoengbe9VIvoengbeRR10baNfOvaqreRi
+.weak b__MA7naqebvq11OaVagresnprVAF_8uneqjner8ivoengbe9VIvoengbeRR10baNfOvaqreRi
 .type b__MA7naqebvq11OaVagresnprVAF_8uneqjner8ivoengbe9VIvoengbeRR10baNfOvaqreRi,%function
 b__MA7naqebvq11OaVagresnprVAF_8uneqjner8ivoengbe9VIvoengbeRR10baNfOvaqreRi:
 nop
@@ -568,7 +568,7 @@
 b__MA7naqebvq8uneqjner8ivoengbe9VIvoengbe10qrfpevcgbeR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq8uneqjner8ivoengbe15PbzcbfvgrRssrpgRAF_9nyybpngbeVF4_RRR8__nccraqRz
+.weak b__MAFg3__16irpgbeVA7naqebvq8uneqjner8ivoengbe15PbzcbfvgrRssrpgRAF_9nyybpngbeVF4_RRR8__nccraqRz
 .type b__MAFg3__16irpgbeVA7naqebvq8uneqjner8ivoengbe15PbzcbfvgrRssrpgRAF_9nyybpngbeVF4_RRR8__nccraqRz,%function
 b__MAFg3__16irpgbeVA7naqebvq8uneqjner8ivoengbe15PbzcbfvgrRssrpgRAF_9nyybpngbeVF4_RRR8__nccraqRz:
 nop
diff --git a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_063.S b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_063.S
index 45c82b0..ab3673f 100644
--- a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_063.S
+++ b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_063.S
@@ -13,7 +13,7 @@
 b__MAXFg3__111__yvopcc_qo22__yrff_guna_pbzcnenoyrRCXiF2_:
 nop
 .text
-.globl b__MAFg3__115onfvp_fgernzohsVjAF_11pune_genvgfVjRRR5hsybjRi
+.weak b__MAFg3__115onfvp_fgernzohsVjAF_11pune_genvgfVjRRR5hsybjRi
 .type b__MAFg3__115onfvp_fgernzohsVjAF_11pune_genvgfVjRRR5hsybjRi,%function
 b__MAFg3__115onfvp_fgernzohsVjAF_11pune_genvgfVjRRR5hsybjRi:
 nop
@@ -33,7 +33,7 @@
 b__MAFg3__17cebzvfrViRQ2Ri:
 nop
 .text
-.globl b__MAXFg3__117zbarlchapg_olanzrVpYo0RR16qb_artngvir_fvtaRi
+.weak b__MAXFg3__117zbarlchapg_olanzrVpYo0RR16qb_artngvir_fvtaRi
 .type b__MAXFg3__117zbarlchapg_olanzrVpYo0RR16qb_artngvir_fvtaRi,%function
 b__MAXFg3__117zbarlchapg_olanzrVpYo0RR16qb_artngvir_fvtaRi:
 nop
@@ -43,12 +43,12 @@
 b__MAXFg3__120__pbqrpig_hgs8_hgs16VjR5qb_vaRE9zofgngr_gCXpF5_EF5_CjF7_EF7_:
 nop
 .text
-.globl b__MAXFg3__18gvzr_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR11__trg_zbaguREvEF4_F4_EwEXAF_5pglcrVpRR
+.weak b__MAXFg3__18gvzr_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR11__trg_zbaguREvEF4_F4_EwEXAF_5pglcrVpRR
 .type b__MAXFg3__18gvzr_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR11__trg_zbaguREvEF4_F4_EwEXAF_5pglcrVpRR,%function
 b__MAXFg3__18gvzr_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR11__trg_zbaguREvEF4_F4_EwEXAF_5pglcrVpRR:
 nop
 .data
-.globl b__MGVAFg3__117zbarlchapg_olanzrVjYo1RRR
+.weak b__MGVAFg3__117zbarlchapg_olanzrVjYo1RRR
 .type b__MGVAFg3__117zbarlchapg_olanzrVjYo1RRR,%object
 b__MGVAFg3__117zbarlchapg_olanzrVjYo1RRR:
 .space __SIZEOF_POINTER__
@@ -63,12 +63,12 @@
 b__MAFg3__18vbf_onfr9fubjcbvagR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAXFg3__17ahz_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR6qb_trgRF4_F4_EAF_8vbf_onfrREwEk
+.weak b__MAXFg3__17ahz_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR6qb_trgRF4_F4_EAF_8vbf_onfrREwEk
 .type b__MAXFg3__17ahz_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR6qb_trgRF4_F4_EAF_8vbf_onfrREwEk,%function
 b__MAXFg3__17ahz_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR6qb_trgRF4_F4_EAF_8vbf_onfrREwEk:
 nop
 .text
-.globl b__MAXFg3__18gvzr_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR18__trg_qnl_lrne_ahzREvEF4_F4_EwEXAF_5pglcrVjRR
+.weak b__MAXFg3__18gvzr_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR18__trg_qnl_lrne_ahzREvEF4_F4_EwEXAF_5pglcrVjRR
 .type b__MAXFg3__18gvzr_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR18__trg_qnl_lrne_ahzREvEF4_F4_EwEXAF_5pglcrVjRR,%function
 b__MAXFg3__18gvzr_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR18__trg_qnl_lrne_ahzREvEF4_F4_EwEXAF_5pglcrVjRR:
 nop
@@ -88,7 +88,7 @@
 b__MGIFg9onq_nyybp:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAXFg3__17ahz_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR6qb_trgRF4_F4_EAF_8vbf_onfrREwEl
+.weak b__MAXFg3__17ahz_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR6qb_trgRF4_F4_EAF_8vbf_onfrREwEl
 .type b__MAXFg3__17ahz_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR6qb_trgRF4_F4_EAF_8vbf_onfrREwEl,%function
 b__MAXFg3__17ahz_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR6qb_trgRF4_F4_EAF_8vbf_onfrREwEl:
 nop
@@ -108,7 +108,7 @@
 b__MGFA10__pkknovi123__shaqnzragny_glcr_vasbR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MqnCizFg11nyvta_iny_g
+.weak b__MqnCizFg11nyvta_iny_g
 .type b__MqnCizFg11nyvta_iny_g,%function
 b__MqnCizFg11nyvta_iny_g:
 nop
@@ -118,22 +118,22 @@
 b__MAFg13rkprcgvba_cgeQ2Ri:
 nop
 .text
-.globl b__MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRR4crrxRi
+.weak b__MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRR4crrxRi
 .type b__MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRR4crrxRi,%function
 b__MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRR4crrxRi:
 nop
 .text
-.globl b__MAXFg3__117zbarlchapg_olanzrVpYo0RR13qb_cbf_sbezngRi
+.weak b__MAXFg3__117zbarlchapg_olanzrVpYo0RR13qb_cbf_sbezngRi
 .type b__MAXFg3__117zbarlchapg_olanzrVpYo0RR13qb_cbf_sbezngRi,%function
 b__MAXFg3__117zbarlchapg_olanzrVpYo0RR13qb_cbf_sbezngRi:
 nop
 .text
-.globl b__MAXFg3__117zbarlchapg_olanzrVjYo1RR13qb_art_sbezngRi
+.weak b__MAXFg3__117zbarlchapg_olanzrVjYo1RR13qb_art_sbezngRi
 .type b__MAXFg3__117zbarlchapg_olanzrVjYo1RR13qb_art_sbezngRi,%function
 b__MAXFg3__117zbarlchapg_olanzrVjYo1RR13qb_art_sbezngRi:
 nop
 .text
-.globl b__MAFg3__19__ahz_chgVjR23__jvqra_naq_tebhc_sybngRCpF2_F2_CjEF3_F4_EXAF_6ybpnyrR
+.weak b__MAFg3__19__ahz_chgVjR23__jvqra_naq_tebhc_sybngRCpF2_F2_CjEF3_F4_EXAF_6ybpnyrR
 .type b__MAFg3__19__ahz_chgVjR23__jvqra_naq_tebhc_sybngRCpF2_F2_CjEF3_F4_EXAF_6ybpnyrR,%function
 b__MAFg3__19__ahz_chgVjR23__jvqra_naq_tebhc_sybngRCpF2_F2_CjEF3_F4_EXAF_6ybpnyrR:
 nop
@@ -143,7 +143,7 @@
 b__MAFg9onq_nyybpQ0Ri:
 nop
 .text
-.globl b__MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRR3trgRCpyp
+.weak b__MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRR3trgRCpyp
 .type b__MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRR3trgRCpyp,%function
 b__MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRR3trgRCpyp:
 nop
@@ -158,7 +158,7 @@
 b__MAFg3__114__ahz_trg_onfr10__trg_onfrREAF_8vbf_onfrR:
 nop
 .text
-.globl b__MAFg3__114pbqrpig_olanzrVpp9zofgngr_gRQ2Ri
+.weak b__MAFg3__114pbqrpig_olanzrVpp9zofgngr_gRQ2Ri
 .type b__MAFg3__114pbqrpig_olanzrVpp9zofgngr_gRQ2Ri,%function
 b__MAFg3__114pbqrpig_olanzrVpp9zofgngr_gRQ2Ri:
 nop
@@ -168,7 +168,7 @@
 b__MAFg3__17pbqrpigVpp9zofgngr_gRQ1Ri:
 nop
 .data
-.globl b__MGVAFg3__115gvzr_chg_olanzrVjAF_19bfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRRR
+.weak b__MGVAFg3__115gvzr_chg_olanzrVjAF_19bfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRRR
 .type b__MGVAFg3__115gvzr_chg_olanzrVjAF_19bfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRRR,%object
 b__MGVAFg3__115gvzr_chg_olanzrVjAF_19bfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRRR:
 .space __SIZEOF_POINTER__
@@ -183,12 +183,12 @@
 b__MGFFg13onq_rkprcgvba:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__115onfvp_fgernzohsVjAF_11pune_genvgfVjRRRP2Ri
+.weak b__MAFg3__115onfvp_fgernzohsVjAF_11pune_genvgfVjRRRP2Ri
 .type b__MAFg3__115onfvp_fgernzohsVjAF_11pune_genvgfVjRRRP2Ri,%function
 b__MAFg3__115onfvp_fgernzohsVjAF_11pune_genvgfVjRRRP2Ri:
 nop
 .data
-.globl b__MGFAFg3__19zbarl_chgVjAF_19bfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRRR
+.weak b__MGFAFg3__19zbarl_chgVjAF_19bfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRRR
 .type b__MGFAFg3__19zbarl_chgVjAF_19bfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRRR,%object
 b__MGFAFg3__19zbarl_chgVjAF_19bfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRRR:
 .space __SIZEOF_POINTER__
@@ -198,32 +198,32 @@
 b__MAFg14biresybj_reebeQ2Ri:
 nop
 .text
-.globl b__MAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRR7trgyvarRCjy
+.weak b__MAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRR7trgyvarRCjy
 .type b__MAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRR7trgyvarRCjy,%function
 b__MAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRR7trgyvarRCjy:
 nop
 .text
-.globl b__MGua16_AFg3__114onfvp_vbfgernzVpAF_11pune_genvgfVpRRRQ0Ri
+.weak b__MGua16_AFg3__114onfvp_vbfgernzVpAF_11pune_genvgfVpRRRQ0Ri
 .type b__MGua16_AFg3__114onfvp_vbfgernzVpAF_11pune_genvgfVpRRRQ0Ri,%function
 b__MGua16_AFg3__114onfvp_vbfgernzVpAF_11pune_genvgfVpRRRQ0Ri:
 nop
 .text
-.globl b__MAFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRR6nccraqRCXjz
+.weak b__MAFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRR6nccraqRCXjz
 .type b__MAFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRR6nccraqRCXjz,%function
 b__MAFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRR6nccraqRCXjz:
 nop
 .data
-.globl b__MGVAFg3__115zrffntrf_olanzrVjRR
+.weak b__MGVAFg3__115zrffntrf_olanzrVjRR
 .type b__MGVAFg3__115zrffntrf_olanzrVjRR,%object
 b__MGVAFg3__115zrffntrf_olanzrVjRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAXFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR2ngRz
+.weak b__MAXFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR2ngRz
 .type b__MAXFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR2ngRz,%function
 b__MAXFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR2ngRz:
 nop
 .text
-.globl b__MAFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR6nccraqREXF5_zz
+.weak b__MAFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR6nccraqREXF5_zz
 .type b__MAFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR6nccraqREXF5_zz,%function
 b__MAFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR6nccraqREXF5_zz:
 nop
@@ -308,7 +308,7 @@
 b__MAFg3__123__yvopcc_qroht_shapgvbaR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRR7trgyvarRCpyp
+.weak b__MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRR7trgyvarRCpyp
 .type b__MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRR7trgyvarRCpyp,%function
 b__MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRR7trgyvarRCpyp:
 nop
@@ -318,7 +318,7 @@
 b__MGVFg19onq_bcgvbany_npprff:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__18inyneenlVzRP1Rz
+.weak b__MAFg3__18inyneenlVzRP1Rz
 .type b__MAFg3__18inyneenlVzRP1Rz,%function
 b__MAFg3__18inyneenlVzRP1Rz:
 nop
@@ -328,17 +328,17 @@
 b__MAFg9onq_nyybpQ1Ri:
 nop
 .data
-.globl b__MGIAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRRR
+.weak b__MGIAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRRR
 .type b__MGIAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRRR,%object
 b__MGIAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__111__zbarl_chgVpR8__sbezngRCpEF2_F3_wCXpF5_EXAF_5pglcrVpRRoEXAF_10zbarl_onfr7cnggreaRppEXAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRFY_FY_v
+.weak b__MAFg3__111__zbarl_chgVpR8__sbezngRCpEF2_F3_wCXpF5_EXAF_5pglcrVpRRoEXAF_10zbarl_onfr7cnggreaRppEXAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRFY_FY_v
 .type b__MAFg3__111__zbarl_chgVpR8__sbezngRCpEF2_F3_wCXpF5_EXAF_5pglcrVpRRoEXAF_10zbarl_onfr7cnggreaRppEXAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRFY_FY_v,%function
 b__MAFg3__111__zbarl_chgVpR8__sbezngRCpEF2_F3_wCXpF5_EXAF_5pglcrVpRRoEXAF_10zbarl_onfr7cnggreaRppEXAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRFY_FY_v:
 nop
 .text
-.globl b__MAFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR6vafregRzzp
+.weak b__MAFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR6vafregRzzp
 .type b__MAFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR6vafregRzzp,%function
 b__MAFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR6vafregRzzp:
 nop
@@ -348,17 +348,17 @@
 b__MAFg3__17pbqrpigVpp9zofgngr_gRQ2Ri:
 nop
 .data
-.globl b__MAFg3__110zbarlchapgVjYo0RR4vagyR
+.weak b__MAFg3__110zbarlchapgVjYo0RR4vagyR
 .type b__MAFg3__110zbarlchapgVjYo0RR4vagyR,%object
 b__MAFg3__110zbarlchapgVjYo0RR4vagyR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9chfu_onpxRp
+.weak b__MAFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9chfu_onpxRp
 .type b__MAFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9chfu_onpxRp,%function
 b__MAFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9chfu_onpxRp:
 nop
 .text
-.globl b__MAXFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR4svaqRCXpzz
+.weak b__MAXFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR4svaqRCXpzz
 .type b__MAXFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR4svaqRCXpzz,%function
 b__MAXFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR4svaqRCXpzz:
 nop
@@ -373,7 +373,7 @@
 b__MAFg12bhg_bs_enatrQ0Ri:
 nop
 .text
-.globl b__MGua16_AFg3__114onfvp_vbfgernzVpAF_11pune_genvgfVpRRRQ1Ri
+.weak b__MGua16_AFg3__114onfvp_vbfgernzVpAF_11pune_genvgfVpRRRQ1Ri
 .type b__MGua16_AFg3__114onfvp_vbfgernzVpAF_11pune_genvgfVpRRRQ1Ri,%function
 b__MGua16_AFg3__114onfvp_vbfgernzVpAF_11pune_genvgfVpRRRQ1Ri:
 nop
@@ -413,7 +413,7 @@
 b__MAXFg3__17pbqrpigVQvp9zofgngr_gR10qb_hafuvsgREF1_CpF4_EF4_:
 nop
 .data
-.globl b__MGIAFg3__114pbqrpig_olanzrVQvp9zofgngr_gRR
+.weak b__MGIAFg3__114pbqrpig_olanzrVQvp9zofgngr_gRR
 .type b__MGIAFg3__114pbqrpig_olanzrVQvp9zofgngr_gRR,%object
 b__MGIAFg3__114pbqrpig_olanzrVQvp9zofgngr_gRR:
 .space __SIZEOF_POINTER__
@@ -428,7 +428,7 @@
 b__MAXFg3__112pglcr_olanzrVjR8qb_jvqraRp:
 nop
 .data
-.globl b__MGVAFg3__114pbqrpig_olanzrVQfp9zofgngr_gRR
+.weak b__MGVAFg3__114pbqrpig_olanzrVQfp9zofgngr_gRR
 .type b__MGVAFg3__114pbqrpig_olanzrVQfp9zofgngr_gRR,%object
 b__MGVAFg3__114pbqrpig_olanzrVQfp9zofgngr_gRR:
 .space __SIZEOF_POINTER__
@@ -453,7 +453,7 @@
 b__MAFg3__18vbf_onfr5vjbeqRv:
 nop
 .text
-.globl b__MAFg3__16__fbegVEAF_6__yrffVnnRRCnRRiG0_F5_G_
+.weak b__MAFg3__16__fbegVEAF_6__yrffVnnRRCnRRiG0_F5_G_
 .type b__MAFg3__16__fbegVEAF_6__yrffVnnRRCnRRiG0_F5_G_,%function
 b__MAFg3__16__fbegVEAF_6__yrffVnnRRCnRRiG0_F5_G_:
 nop
@@ -493,32 +493,32 @@
 b__MAFg3__119__funerq_zhgrk_onfr13haybpx_funerqRi:
 nop
 .text
-.globl b__MAXFg3__121__onfvp_fgevat_pbzzbaVYo1RR20__guebj_bhg_bs_enatrRi
+.weak b__MAXFg3__121__onfvp_fgevat_pbzzbaVYo1RR20__guebj_bhg_bs_enatrRi
 .type b__MAXFg3__121__onfvp_fgevat_pbzzbaVYo1RR20__guebj_bhg_bs_enatrRi,%function
 b__MAXFg3__121__onfvp_fgevat_pbzzbaVYo1RR20__guebj_bhg_bs_enatrRi:
 nop
 .text
-.globl b__MAFg3__115onfvp_fgernzohsVjAF_11pune_genvgfVjRRR5tohzcRv
+.weak b__MAFg3__115onfvp_fgernzohsVjAF_11pune_genvgfVjRRR5tohzcRv
 .type b__MAFg3__115onfvp_fgernzohsVjAF_11pune_genvgfVjRRR5tohzcRv,%function
 b__MAFg3__115onfvp_fgernzohsVjAF_11pune_genvgfVjRRR5tohzcRv:
 nop
 .text
-.globl b__MAXFg3__17ahz_chgVjAF_19bfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR6qb_chgRF4_EAF_8vbf_onfrRjo
+.weak b__MAXFg3__17ahz_chgVjAF_19bfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR6qb_chgRF4_EAF_8vbf_onfrRjo
 .type b__MAXFg3__17ahz_chgVjAF_19bfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR6qb_chgRF4_EAF_8vbf_onfrRjo,%function
 b__MAXFg3__17ahz_chgVjAF_19bfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR6qb_chgRF4_EAF_8vbf_onfrRjo:
 nop
 .data
-.globl b__MGVAFg3__114__ahz_trg_onfrR
+.weak b__MGVAFg3__114__ahz_trg_onfrR
 .type b__MGVAFg3__114__ahz_trg_onfrR,%object
 b__MGVAFg3__114__ahz_trg_onfrR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGFAFg3__19__ahz_trgVjRR
+.weak b__MGFAFg3__19__ahz_trgVjRR
 .type b__MGFAFg3__19__ahz_trgVjRR,%object
 b__MGFAFg3__19__ahz_trgVjRR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGFAFg3__19onfvp_vbfVpAF_11pune_genvgfVpRRRR
+.weak b__MGFAFg3__19onfvp_vbfVpAF_11pune_genvgfVpRRRR
 .type b__MGFAFg3__19onfvp_vbfVpAF_11pune_genvgfVpRRRR,%object
 b__MGFAFg3__19onfvp_vbfVpAF_11pune_genvgfVpRRRR:
 .space __SIZEOF_POINTER__
@@ -528,17 +528,17 @@
 b__MAXFg3__15pglcrVpR9qb_aneebjRCXpF3_pCp:
 nop
 .text
-.globl b__MAFg3__111__zbarl_chgVpR13__tngure_vasbRooEXAF_6ybpnyrREAF_10zbarl_onfr7cnggreaREpF8_EAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRFS_FS_Ev
+.weak b__MAFg3__111__zbarl_chgVpR13__tngure_vasbRooEXAF_6ybpnyrREAF_10zbarl_onfr7cnggreaREpF8_EAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRFS_FS_Ev
 .type b__MAFg3__111__zbarl_chgVpR13__tngure_vasbRooEXAF_6ybpnyrREAF_10zbarl_onfr7cnggreaREpF8_EAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRFS_FS_Ev,%function
 b__MAFg3__111__zbarl_chgVpR13__tngure_vasbRooEXAF_6ybpnyrREAF_10zbarl_onfr7cnggreaREpF8_EAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRFS_FS_Ev:
 nop
 .data
-.globl b__MGVAFg3__17pbyyngrVjRR
+.weak b__MGVAFg3__17pbyyngrVjRR
 .type b__MGVAFg3__17pbyyngrVjRR,%object
 b__MGVAFg3__17pbyyngrVjRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__18inyneenlVzRP2Rz
+.weak b__MAFg3__18inyneenlVzRP2Rz
 .type b__MAFg3__18inyneenlVzRP2Rz,%function
 b__MAFg3__18inyneenlVzRP2Rz:
 nop
@@ -558,12 +558,12 @@
 b__MAFg3__16shgherViRP2RCAF_17__nffbp_fho_fgngrR:
 nop
 .text
-.globl b__MAXFg3__17ahz_chgVjAF_19bfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR6qb_chgRF4_EAF_8vbf_onfrRjq
+.weak b__MAXFg3__17ahz_chgVjAF_19bfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR6qb_chgRF4_EAF_8vbf_onfrRjq
 .type b__MAXFg3__17ahz_chgVjAF_19bfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR6qb_chgRF4_EAF_8vbf_onfrRjq,%function
 b__MAXFg3__17ahz_chgVjAF_19bfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR6qb_chgRF4_EAF_8vbf_onfrRjq:
 nop
 .data
-.globl b__MGVAFg3__19__ahz_trgVpRR
+.weak b__MGVAFg3__19__ahz_trgVpRR
 .type b__MGVAFg3__19__ahz_trgVpRR,%object
 b__MGVAFg3__19__ahz_trgVpRR:
 .space __SIZEOF_POINTER__
@@ -578,7 +578,7 @@
 b__MGIAFg3__19fgefgernzR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRR7frrxcbfRAF_4scbfV9zofgngr_gRRw
+.weak b__MAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRR7frrxcbfRAF_4scbfV9zofgngr_gRRw
 .type b__MAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRR7frrxcbfRAF_4scbfV9zofgngr_gRRw,%function
 b__MAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRR7frrxcbfRAF_4scbfV9zofgngr_gRRw:
 nop
@@ -588,7 +588,7 @@
 b__MAFg3__15pglcrVpR2vqR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAXFg3__17ahz_chgVjAF_19bfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR6qb_chgRF4_EAF_8vbf_onfrRjr
+.weak b__MAXFg3__17ahz_chgVjAF_19bfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR6qb_chgRF4_EAF_8vbf_onfrRjr
 .type b__MAXFg3__17ahz_chgVjAF_19bfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR6qb_chgRF4_EAF_8vbf_onfrRjr,%function
 b__MAXFg3__17ahz_chgVjAF_19bfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR6qb_chgRF4_EAF_8vbf_onfrRjr:
 nop
@@ -608,12 +608,12 @@
 b__MAFg3__113funerq_shgherViRQ2Ri:
 nop
 .text
-.globl b__MAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRR7chgonpxRj
+.weak b__MAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRR7chgonpxRj
 .type b__MAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRR7chgonpxRj,%function
 b__MAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRR7chgonpxRj:
 nop
 .text
-.globl b__MAFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRR9__tebj_olRzzzzzz
+.weak b__MAFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRR9__tebj_olRzzzzzz
 .type b__MAFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRR9__tebj_olRzzzzzz,%function
 b__MAFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRR9__tebj_olRzzzzzz:
 nop
@@ -633,7 +633,7 @@
 b__MAFg12bhg_bs_enatrQ1Ri:
 nop
 .text
-.globl b__MAXFg3__110zbarlchapgVpYo1RR16qb_qrpvzny_cbvagRi
+.weak b__MAXFg3__110zbarlchapgVpYo1RR16qb_qrpvzny_cbvagRi
 .type b__MAXFg3__110zbarlchapgVpYo1RR16qb_qrpvzny_cbvagRi,%function
 b__MAXFg3__110zbarlchapgVpYo1RR16qb_qrpvzny_cbvagRi:
 nop
@@ -648,7 +648,7 @@
 b__MAXFg3__15pglcrVjR10qb_gbybjreRj:
 nop
 .text
-.globl b__MAFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRR6nffvtaRCXj
+.weak b__MAFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRR6nffvtaRCXj
 .type b__MAFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRR6nffvtaRCXj,%function
 b__MAFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRR6nffvtaRCXj:
 nop
@@ -663,12 +663,12 @@
 b__MAFg13ehagvzr_reebeP1REXF_:
 nop
 .text
-.globl b__MAFg3__16__fbegVEAF_6__yrffVyyRRCyRRiG0_F5_G_
+.weak b__MAFg3__16__fbegVEAF_6__yrffVyyRRCyRRiG0_F5_G_
 .type b__MAFg3__16__fbegVEAF_6__yrffVyyRRCyRRiG0_F5_G_,%function
 b__MAFg3__16__fbegVEAF_6__yrffVyyRRCyRRiG0_F5_G_:
 nop
 .text
-.globl b__MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRR5hatrgRi
+.weak b__MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRR5hatrgRi
 .type b__MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRR5hatrgRi,%function
 b__MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRR5hatrgRi:
 nop
@@ -698,7 +698,7 @@
 b__MAXFg3__112pglcr_olanzrVjR9qb_aneebjRjp:
 nop
 .text
-.globl b__MAXFg3__18gvzr_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR3trgRF4_F4_EAF_8vbf_onfrREwC2gzCXpFP_
+.weak b__MAXFg3__18gvzr_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR3trgRF4_F4_EAF_8vbf_onfrREwC2gzCXpFP_
 .type b__MAXFg3__18gvzr_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR3trgRF4_F4_EAF_8vbf_onfrREwC2gzCXpFP_,%function
 b__MAXFg3__18gvzr_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR3trgRF4_F4_EAF_8vbf_onfrREwC2gzCXpFP_:
 nop
@@ -713,7 +713,7 @@
 b__MAFg3__115__guernq_fgehpgP2Ri:
 nop
 .text
-.globl b__MAFg3__115onfvp_fgernzohsVjAF_11pune_genvgfVjRRR7choflapRi
+.weak b__MAFg3__115onfvp_fgernzohsVjAF_11pune_genvgfVjRRR7choflapRi
 .type b__MAFg3__115onfvp_fgernzohsVjAF_11pune_genvgfVjRRR7choflapRi,%function
 b__MAFg3__115onfvp_fgernzohsVjAF_11pune_genvgfVjRRR7choflapRi:
 nop
@@ -738,7 +738,7 @@
 b__MAXFg3__120__gvzr_trg_p_fgbentrVjR3__KRi:
 nop
 .text
-.globl b__MAXFg3__17ahz_chgVjAF_19bfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR6qb_chgRF4_EAF_8vbf_onfrRjy
+.weak b__MAXFg3__17ahz_chgVjAF_19bfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR6qb_chgRF4_EAF_8vbf_onfrRjy
 .type b__MAXFg3__17ahz_chgVjAF_19bfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR6qb_chgRF4_EAF_8vbf_onfrRjy,%function
 b__MAXFg3__17ahz_chgVjAF_19bfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR6qb_chgRF4_EAF_8vbf_onfrRjy:
 nop
@@ -753,7 +753,7 @@
 b__MAXFg11ybtvp_reebe4jungRi:
 nop
 .text
-.globl b__MAFg3__115onfvp_fgernzohsVjAF_11pune_genvgfVjRRR8va_ninvyRi
+.weak b__MAFg3__115onfvp_fgernzohsVjAF_11pune_genvgfVjRRR8va_ninvyRi
 .type b__MAFg3__115onfvp_fgernzohsVjAF_11pune_genvgfVjRRR8va_ninvyRi,%function
 b__MAFg3__115onfvp_fgernzohsVjAF_11pune_genvgfVjRRR8va_ninvyRi:
 nop
@@ -763,22 +763,22 @@
 b__MAXFg3__114__pbqrpig_hgs8VQfR13qb_znk_yratguRi:
 nop
 .text
-.globl b__MAXFg3__17ahz_chgVjAF_19bfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR6qb_chgRF4_EAF_8vbf_onfrRjz
+.weak b__MAXFg3__17ahz_chgVjAF_19bfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR6qb_chgRF4_EAF_8vbf_onfrRjz
 .type b__MAXFg3__17ahz_chgVjAF_19bfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR6qb_chgRF4_EAF_8vbf_onfrRjz,%function
 b__MAXFg3__17ahz_chgVjAF_19bfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR6qb_chgRF4_EAF_8vbf_onfrRjz:
 nop
 .text
-.globl b__MAXFg3__18gvzr_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR3trgRF4_F4_EAF_8vbf_onfrREwC2gzCXjFP_
+.weak b__MAXFg3__18gvzr_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR3trgRF4_F4_EAF_8vbf_onfrREwC2gzCXjFP_
 .type b__MAXFg3__18gvzr_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR3trgRF4_F4_EAF_8vbf_onfrREwC2gzCXjFP_,%function
 b__MAXFg3__18gvzr_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR3trgRF4_F4_EAF_8vbf_onfrREwC2gzCXjFP_:
 nop
 .text
-.globl b__MAFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRRP1REXF5_
+.weak b__MAFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRRP1REXF5_
 .type b__MAFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRRP1REXF5_,%function
 b__MAFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRRP1REXF5_:
 nop
 .text
-.globl b__MAFg3__111__zbarl_trgVpR13__tngure_vasbRoEXAF_6ybpnyrREAF_10zbarl_onfr7cnggreaREpF8_EAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRFS_FS_FS_Ev
+.weak b__MAFg3__111__zbarl_trgVpR13__tngure_vasbRoEXAF_6ybpnyrREAF_10zbarl_onfr7cnggreaREpF8_EAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRFS_FS_FS_Ev
 .type b__MAFg3__111__zbarl_trgVpR13__tngure_vasbRoEXAF_6ybpnyrREAF_10zbarl_onfr7cnggreaREpF8_EAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRFS_FS_FS_Ev,%function
 b__MAFg3__111__zbarl_trgVpR13__tngure_vasbRoEXAF_6ybpnyrREAF_10zbarl_onfr7cnggreaREpF8_EAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRFS_FS_FS_Ev:
 nop
@@ -788,7 +788,7 @@
 b__MAFg3__119__funerq_jrnx_pbhag14__eryrnfr_jrnxRi:
 nop
 .text
-.globl b__MAXFg3__19zbarl_chgVjAF_19bfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR6qb_chgRF4_oEAF_8vbf_onfrRjr
+.weak b__MAXFg3__19zbarl_chgVjAF_19bfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR6qb_chgRF4_oEAF_8vbf_onfrRjr
 .type b__MAXFg3__19zbarl_chgVjAF_19bfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR6qb_chgRF4_oEAF_8vbf_onfrRjr,%function
 b__MAXFg3__19zbarl_chgVjAF_19bfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR6qb_chgRF4_oEAF_8vbf_onfrRjr:
 nop
@@ -798,17 +798,17 @@
 b__MAFg3__16ybpnyr14__vafgnyy_pgbeREXF0_CAF0_5snprgRy:
 nop
 .text
-.globl b__MAFg3__16__fbegVEAF_6__yrffVjjRRCjRRiG0_F5_G_
+.weak b__MAFg3__16__fbegVEAF_6__yrffVjjRRCjRRiG0_F5_G_
 .type b__MAFg3__16__fbegVEAF_6__yrffVjjRRCjRRiG0_F5_G_,%function
 b__MAFg3__16__fbegVEAF_6__yrffVjjRRCjRRiG0_F5_G_:
 nop
 .text
-.globl b__MAFg3__113onfvp_bfgernzVjAF_11pune_genvgfVjRRRQ0Ri
+.weak b__MAFg3__113onfvp_bfgernzVjAF_11pune_genvgfVjRRRQ0Ri
 .type b__MAFg3__113onfvp_bfgernzVjAF_11pune_genvgfVjRRRQ0Ri,%function
 b__MAFg3__113onfvp_bfgernzVjAF_11pune_genvgfVjRRRQ0Ri:
 nop
 .data
-.globl b__MGPAFg3__114onfvp_vbfgernzVpAF_11pune_genvgfVpRRRR16_AF_13onfvp_bfgernzVpF2_RR
+.weak b__MGPAFg3__114onfvp_vbfgernzVpAF_11pune_genvgfVpRRRR16_AF_13onfvp_bfgernzVpF2_RR
 .type b__MGPAFg3__114onfvp_vbfgernzVpAF_11pune_genvgfVpRRRR16_AF_13onfvp_bfgernzVpF2_RR,%object
 b__MGPAFg3__114onfvp_vbfgernzVpAF_11pune_genvgfVpRRRR16_AF_13onfvp_bfgernzVpF2_RR:
 .space __SIZEOF_POINTER__
@@ -818,7 +818,7 @@
 b__MGVAFg3__18vbf_onfr7snvyherR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR6vafregRzEXF5_zz
+.weak b__MAFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR6vafregRzEXF5_zz
 .type b__MAFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR6vafregRzEXF5_zz,%function
 b__MAFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR6vafregRzEXF5_zz:
 nop
@@ -838,7 +838,7 @@
 b__MAFg3__117__nffbp_fho_fgngr9__rkrphgrRi:
 nop
 .data
-.globl b__MGFAFg3__18gvzr_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRRR
+.weak b__MGFAFg3__18gvzr_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRRR
 .type b__MGFAFg3__18gvzr_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRRR,%object
 b__MGFAFg3__18gvzr_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRRR:
 .space __SIZEOF_POINTER__
@@ -853,7 +853,7 @@
 b__MAFg12bhg_bs_enatrQ2Ri:
 nop
 .text
-.globl b__MAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRR6kftrgaRCpy
+.weak b__MAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRR6kftrgaRCpy
 .type b__MAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRR6kftrgaRCpy,%function
 b__MAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRR6kftrgaRCpy:
 nop
@@ -883,7 +883,7 @@
 b__MAFg3__19fgefgernzQ0Ri:
 nop
 .text
-.globl b__MAFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR6nccraqRCXp
+.weak b__MAFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR6nccraqRCXp
 .type b__MAFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR6nccraqRCXp,%function
 b__MAFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR6nccraqRCXp:
 nop
@@ -893,12 +893,12 @@
 b__MFg17erguebj_rkprcgvbaFg13rkprcgvba_cge:
 nop
 .text
-.globl b__MAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRR5ftrgpRi
+.weak b__MAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRR5ftrgpRi
 .type b__MAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRR5ftrgpRi,%function
 b__MAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRR5ftrgpRi:
 nop
 .text
-.globl b__MAXFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRR16svaq_ynfg_abg_bsRCXjzz
+.weak b__MAXFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRR16svaq_ynfg_abg_bsRCXjzz
 .type b__MAXFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRR16svaq_ynfg_abg_bsRCXjzz,%function
 b__MAXFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRR16svaq_ynfg_abg_bsRCXjzz:
 nop
@@ -908,7 +908,7 @@
 b__MAFg3__110bfgefgernzQ2Ri:
 nop
 .text
-.globl b__MAXFg3__19zbarl_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR6qb_trgRF4_F4_oEAF_8vbf_onfrREwEAF_12onfvp_fgevatVjF3_AF_9nyybpngbeVjRRRR
+.weak b__MAXFg3__19zbarl_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR6qb_trgRF4_F4_oEAF_8vbf_onfrREwEAF_12onfvp_fgevatVjF3_AF_9nyybpngbeVjRRRR
 .type b__MAXFg3__19zbarl_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR6qb_trgRF4_F4_oEAF_8vbf_onfrREwEAF_12onfvp_fgevatVjF3_AF_9nyybpngbeVjRRRR,%function
 b__MAXFg3__19zbarl_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR6qb_trgRF4_F4_oEAF_8vbf_onfrREwEAF_12onfvp_fgevatVjF3_AF_9nyybpngbeVjRRRR:
 nop
@@ -958,7 +958,7 @@
 b___pkn_onq_glcrvq:
 nop
 .text
-.globl b__MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRRefRECi
+.weak b__MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRRefRECi
 .type b__MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRRefRECi,%function
 b__MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRRefRECi:
 nop
@@ -973,17 +973,17 @@
 b__MAFg11ybtvp_reebeP1REXAFg3__112onfvp_fgevatVpAF0_11pune_genvgfVpRRAF0_9nyybpngbeVpRRRR:
 nop
 .text
-.globl b__MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRR6fragelP2REF3_o
+.weak b__MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRR6fragelP2REF3_o
 .type b__MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRR6fragelP2REF3_o,%function
 b__MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRR6fragelP2REF3_o:
 nop
 .text
-.globl b__MAXFg3__117zbarlchapg_olanzrVpYo0RR16qb_qrpvzny_cbvagRi
+.weak b__MAXFg3__117zbarlchapg_olanzrVpYo0RR16qb_qrpvzny_cbvagRi
 .type b__MAXFg3__117zbarlchapg_olanzrVpYo0RR16qb_qrpvzny_cbvagRi,%function
 b__MAXFg3__117zbarlchapg_olanzrVpYo0RR16qb_qrpvzny_cbvagRi:
 nop
 .text
-.globl b__MAXFg3__17ahz_chgVjAF_19bfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR6qb_chgRF4_EAF_8vbf_onfrRjk
+.weak b__MAXFg3__17ahz_chgVjAF_19bfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR6qb_chgRF4_EAF_8vbf_onfrRjk
 .type b__MAXFg3__17ahz_chgVjAF_19bfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR6qb_chgRF4_EAF_8vbf_onfrRjk,%function
 b__MAXFg3__17ahz_chgVjAF_19bfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR6qb_chgRF4_EAF_8vbf_onfrRjk:
 nop
@@ -1008,7 +1008,7 @@
 b__MAXFg3__17pbqrpigVQfp9zofgngr_gR5qb_vaREF1_CXpF5_EF5_CQfF7_EF7_:
 nop
 .text
-.globl b__MAXFg3__17ahz_chgVjAF_19bfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR6qb_chgRF4_EAF_8vbf_onfrRjl
+.weak b__MAXFg3__17ahz_chgVjAF_19bfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR6qb_chgRF4_EAF_8vbf_onfrRjl
 .type b__MAXFg3__17ahz_chgVjAF_19bfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR6qb_chgRF4_EAF_8vbf_onfrRjl,%function
 b__MAXFg3__17ahz_chgVjAF_19bfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR6qb_chgRF4_EAF_8vbf_onfrRjl:
 nop
@@ -1033,7 +1033,7 @@
 b__MAXFg3__115__pbqrpig_hgs16VQfYo0RR6qb_bhgRE9zofgngr_gCXQfF5_EF5_CpF7_EF7_:
 nop
 .text
-.globl b__MAXFg3__117zbarlchapg_olanzrVjYo0RR14qb_senp_qvtvgfRi
+.weak b__MAXFg3__117zbarlchapg_olanzrVjYo0RR14qb_senp_qvtvgfRi
 .type b__MAXFg3__117zbarlchapg_olanzrVjYo0RR14qb_senp_qvtvgfRi,%function
 b__MAXFg3__117zbarlchapg_olanzrVjYo0RR14qb_senp_qvtvgfRi:
 nop
@@ -1043,7 +1043,7 @@
 b__MAFg13ehagvzr_reebenFREXF_:
 nop
 .text
-.globl b__MAFg3__113onfvp_bfgernzVjAF_11pune_genvgfVjRRRQ1Ri
+.weak b__MAFg3__113onfvp_bfgernzVjAF_11pune_genvgfVjRRRQ1Ri
 .type b__MAFg3__113onfvp_bfgernzVjAF_11pune_genvgfVjRRRQ1Ri,%function
 b__MAFg3__113onfvp_bfgernzVjAF_11pune_genvgfVjRRRQ1Ri:
 nop
@@ -1063,7 +1063,7 @@
 b__MAFg3__16__vgbn8__h64gbnRzCp:
 nop
 .text
-.globl b__MAFg3__115onfvp_fgernzohsVjAF_11pune_genvgfVjRRRP2REXF3_
+.weak b__MAFg3__115onfvp_fgernzohsVjAF_11pune_genvgfVjRRRP2REXF3_
 .type b__MAFg3__115onfvp_fgernzohsVjAF_11pune_genvgfVjRRRP2REXF3_,%function
 b__MAFg3__115onfvp_fgernzohsVjAF_11pune_genvgfVjRRRP2REXF3_:
 nop
@@ -1073,7 +1073,7 @@
 b__MAXFg3__120__pbqrpig_hgs8_hgs16VQfR6qb_bhgRE9zofgngr_gCXQfF5_EF5_CpF7_EF7_:
 nop
 .text
-.globl b__MAFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRR6vafregRzEXF5_zz
+.weak b__MAFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRR6vafregRzEXF5_zz
 .type b__MAFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRR6vafregRzEXF5_zz,%function
 b__MAFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRR6vafregRzEXF5_zz:
 nop
@@ -1083,12 +1083,12 @@
 b__MAFg3__117__nffbp_fho_fgngr28frg_rkprcgvba_ng_guernq_rkvgRFg13rkprcgvba_cge:
 nop
 .text
-.globl b__MAFg3__115onfvp_fgernzohsVjAF_11pune_genvgfVjRRR5vzohrREXAF_6ybpnyrR
+.weak b__MAFg3__115onfvp_fgernzohsVjAF_11pune_genvgfVjRRR5vzohrREXAF_6ybpnyrR
 .type b__MAFg3__115onfvp_fgernzohsVjAF_11pune_genvgfVjRRR5vzohrREXAF_6ybpnyrR,%function
 b__MAFg3__115onfvp_fgernzohsVjAF_11pune_genvgfVjRRR5vzohrREXAF_6ybpnyrR:
 nop
 .data
-.globl b__MGFAFg3__117zbarlchapg_olanzrVpYo0RRR
+.weak b__MGFAFg3__117zbarlchapg_olanzrVpYo0RRR
 .type b__MGFAFg3__117zbarlchapg_olanzrVpYo0RRR,%object
 b__MGFAFg3__117zbarlchapg_olanzrVpYo0RRR:
 .space __SIZEOF_POINTER__
@@ -1103,7 +1103,7 @@
 b__MAFg3__19fgefgernzQ1Ri:
 nop
 .data
-.globl b__MGVAFg3__19zbarl_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRRR
+.weak b__MGVAFg3__19zbarl_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRRR
 .type b__MGVAFg3__19zbarl_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRRR,%object
 b__MGVAFg3__19zbarl_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRRR:
 .space __SIZEOF_POINTER__
@@ -1113,7 +1113,7 @@
 b__MAFg3__15fgbyyREXAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRCzv:
 nop
 .text
-.globl b__MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRRefRCSEF3_F4_R
+.weak b__MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRRefRCSEF3_F4_R
 .type b__MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRRefRCSEF3_F4_R,%function
 b__MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRRefRCSEF3_F4_R:
 nop
@@ -1123,12 +1123,12 @@
 b__MAFg3__111gvzrq_zhgrkP2Ri:
 nop
 .text
-.globl b__MAFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRRP2REXF5_
+.weak b__MAFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRRP2REXF5_
 .type b__MAFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRRP2REXF5_,%function
 b__MAFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRRP2REXF5_:
 nop
 .text
-.globl b__MAFg3__113onfvp_bfgernzVpAF_11pune_genvgfVpRRRP1RCAF_15onfvp_fgernzohsVpF2_RR
+.weak b__MAFg3__113onfvp_bfgernzVpAF_11pune_genvgfVpRRRP1RCAF_15onfvp_fgernzohsVpF2_RR
 .type b__MAFg3__113onfvp_bfgernzVpAF_11pune_genvgfVpRRRP1RCAF_15onfvp_fgernzohsVpF2_RR,%function
 b__MAFg3__113onfvp_bfgernzVpAF_11pune_genvgfVpRRRP1RCAF_15onfvp_fgernzohsVpF2_RR:
 nop
@@ -1158,12 +1158,12 @@
 b__MGVAFg3__124__yvopcc_qroht_rkprcgvbaR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRRP1Ri
+.weak b__MAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRRP1Ri
 .type b__MAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRRP1Ri,%function
 b__MAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRRP1Ri:
 nop
 .text
-.globl b__MAXFg3__18gvzr_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR15__trg_zbaguanzrREvEF4_F4_EwEXAF_5pglcrVpRR
+.weak b__MAXFg3__18gvzr_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR15__trg_zbaguanzrREvEF4_F4_EwEXAF_5pglcrVpRR
 .type b__MAXFg3__18gvzr_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR15__trg_zbaguanzrREvEF4_F4_EwEXAF_5pglcrVpRR,%function
 b__MAXFg3__18gvzr_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR15__trg_zbaguanzrREvEF4_F4_EwEXAF_5pglcrVpRR:
 nop
@@ -1183,17 +1183,17 @@
 b__MAFg3__16ybpnyr8zbargnelR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRR4fjncREF3_
+.weak b__MAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRR4fjncREF3_
 .type b__MAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRR4fjncREF3_,%function
 b__MAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRR4fjncREF3_:
 nop
 .data
-.globl b__MGVAFg3__118__gvzr_trg_fgbentrVpRR
+.weak b__MGVAFg3__118__gvzr_trg_fgbentrVpRR
 .type b__MGVAFg3__118__gvzr_trg_fgbentrVpRR,%object
 b__MGVAFg3__118__gvzr_trg_fgbentrVpRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRnFRp
+.weak b__MAFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRnFRp
 .type b__MAFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRnFRp,%function
 b__MAFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRnFRp:
 nop
@@ -1223,7 +1223,7 @@
 b__MAFg3__18vbf_onfr3qrpR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__113onfvp_bfgernzVjAF_11pune_genvgfVjRRRQ2Ri
+.weak b__MAFg3__113onfvp_bfgernzVjAF_11pune_genvgfVjRRRQ2Ri
 .type b__MAFg3__113onfvp_bfgernzVjAF_11pune_genvgfVjRRRQ2Ri,%function
 b__MAFg3__113onfvp_bfgernzVjAF_11pune_genvgfVjRRRQ2Ri:
 nop
@@ -1238,7 +1238,7 @@
 b__MAFg3__16ybpnyr6tybonyREXF0_:
 nop
 .text
-.globl b__MAFg3__16__fbegVEAF_6__yrffVuuRRCuRRiG0_F5_G_
+.weak b__MAFg3__16__fbegVEAF_6__yrffVuuRRCuRRiG0_F5_G_
 .type b__MAFg3__16__fbegVEAF_6__yrffVuuRRCuRRiG0_F5_G_,%function
 b__MAFg3__16__fbegVEAF_6__yrffVuuRRCuRRiG0_F5_G_:
 nop
@@ -1248,7 +1248,7 @@
 b__MAXFg3__115__pbqrpig_hgs16VQvYo0RR16qb_nyjnlf_abpbaiRi:
 nop
 .text
-.globl b__MAXFg3__18zrffntrfVpR8qb_pybfrRy
+.weak b__MAXFg3__18zrffntrfVpR8qb_pybfrRy
 .type b__MAXFg3__18zrffntrfVpR8qb_pybfrRy,%function
 b__MAXFg3__18zrffntrfVpR8qb_pybfrRy:
 nop
@@ -1268,7 +1268,7 @@
 b__MGVFg12qbznva_reebe:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGGAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRRR
+.weak b__MGGAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRRR
 .type b__MGGAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRRR,%object
 b__MGGAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRRR:
 .space __SIZEOF_POINTER__
@@ -1313,7 +1313,7 @@
 b__MAXFg3__112pglcr_olanzrVjR10qb_fpna_vfRzCXjF3_:
 nop
 .text
-.globl b__MAXFg3__117zbarlchapg_olanzrVjYo1RR14qb_phee_flzobyRi
+.weak b__MAXFg3__117zbarlchapg_olanzrVjYo1RR14qb_phee_flzobyRi
 .type b__MAXFg3__117zbarlchapg_olanzrVjYo1RR14qb_phee_flzobyRi,%function
 b__MAXFg3__117zbarlchapg_olanzrVjYo1RR14qb_phee_flzobyRi:
 nop
@@ -1323,7 +1323,7 @@
 b__MAFg3__18vbf_onfr5svkrqR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAXFg3__17ahz_chgVpAF_19bfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR6qb_chgRF4_EAF_8vbf_onfrRpo
+.weak b__MAXFg3__17ahz_chgVpAF_19bfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR6qb_chgRF4_EAF_8vbf_onfrRpo
 .type b__MAXFg3__17ahz_chgVpAF_19bfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR6qb_chgRF4_EAF_8vbf_onfrRpo,%function
 b__MAXFg3__17ahz_chgVpAF_19bfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR6qb_chgRF4_EAF_8vbf_onfrRpo:
 nop
@@ -1343,12 +1343,12 @@
 b__MAFg3__124__yvopcc_qroht_rkprcgvbaP2REXF0_:
 nop
 .text
-.globl b__MAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRRP2Ri
+.weak b__MAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRRP2Ri
 .type b__MAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRRP2Ri,%function
 b__MAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRRP2Ri:
 nop
 .text
-.globl b__MAFg3__115onfvp_fgernzohsVjAF_11pune_genvgfVjRRR5fchgpRj
+.weak b__MAFg3__115onfvp_fgernzohsVjAF_11pune_genvgfVjRRR5fchgpRj
 .type b__MAFg3__115onfvp_fgernzohsVjAF_11pune_genvgfVjRRR5fchgpRj,%function
 b__MAFg3__115onfvp_fgernzohsVjAF_11pune_genvgfVjRRR5fchgpRj:
 nop
@@ -1358,7 +1358,7 @@
 b__MAXFg3__16ybpnyr9unf_snprgREAF0_2vqR:
 nop
 .data
-.globl b__MGIAFg3__117zbarlchapg_olanzrVpYo1RRR
+.weak b__MGIAFg3__117zbarlchapg_olanzrVpYo1RRR
 .type b__MGIAFg3__117zbarlchapg_olanzrVpYo1RRR,%object
 b__MGIAFg3__117zbarlchapg_olanzrVpYo1RRR:
 .space __SIZEOF_POINTER__
@@ -1383,17 +1383,17 @@
 b__MAXFg3__120__gvzr_trg_p_fgbentrVpR3__eRi:
 nop
 .text
-.globl b__MAXFg3__17ahz_chgVpAF_19bfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR6qb_chgRF4_EAF_8vbf_onfrRpq
+.weak b__MAXFg3__17ahz_chgVpAF_19bfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR6qb_chgRF4_EAF_8vbf_onfrRpq
 .type b__MAXFg3__17ahz_chgVpAF_19bfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR6qb_chgRF4_EAF_8vbf_onfrRpq,%function
 b__MAXFg3__17ahz_chgVpAF_19bfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR6qb_chgRF4_EAF_8vbf_onfrRpq:
 nop
 .text
-.globl b__MAXFg3__19zbarl_chgVjAF_19bfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR6qb_chgRF4_oEAF_8vbf_onfrRjEXAF_12onfvp_fgevatVjF3_AF_9nyybpngbeVjRRRR
+.weak b__MAXFg3__19zbarl_chgVjAF_19bfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR6qb_chgRF4_oEAF_8vbf_onfrRjEXAF_12onfvp_fgevatVjF3_AF_9nyybpngbeVjRRRR
 .type b__MAXFg3__19zbarl_chgVjAF_19bfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR6qb_chgRF4_oEAF_8vbf_onfrRjEXAF_12onfvp_fgevatVjF3_AF_9nyybpngbeVjRRRR,%function
 b__MAXFg3__19zbarl_chgVjAF_19bfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR6qb_chgRF4_oEAF_8vbf_onfrRjEXAF_12onfvp_fgevatVjF3_AF_9nyybpngbeVjRRRR:
 nop
 .data
-.globl b__MGIAFg3__19zbarl_chgVjAF_19bfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRRR
+.weak b__MGIAFg3__19zbarl_chgVjAF_19bfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRRR
 .type b__MGIAFg3__19zbarl_chgVjAF_19bfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRRR,%object
 b__MGIAFg3__19zbarl_chgVjAF_19bfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRRR:
 .space __SIZEOF_POINTER__
@@ -1408,17 +1408,17 @@
 b__MAFg3__17cebzvfrViR10trg_shgherRi:
 nop
 .text
-.globl b__MAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRR10chofrrxcbfRAF_4scbfV9zofgngr_gRRw
+.weak b__MAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRR10chofrrxcbfRAF_4scbfV9zofgngr_gRRw
 .type b__MAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRR10chofrrxcbfRAF_4scbfV9zofgngr_gRRw,%function
 b__MAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRR10chofrrxcbfRAF_4scbfV9zofgngr_gRRw:
 nop
 .text
-.globl b__MAXFg3__17ahz_chgVpAF_19bfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR6qb_chgRF4_EAF_8vbf_onfrRpr
+.weak b__MAXFg3__17ahz_chgVpAF_19bfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR6qb_chgRF4_EAF_8vbf_onfrRpr
 .type b__MAXFg3__17ahz_chgVpAF_19bfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR6qb_chgRF4_EAF_8vbf_onfrRpr,%function
 b__MAXFg3__17ahz_chgVpAF_19bfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR6qb_chgRF4_EAF_8vbf_onfrRpr:
 nop
 .text
-.globl b__MAFg3__16__fbegVEAF_6__yrffVffRRCfRRiG0_F5_G_
+.weak b__MAFg3__16__fbegVEAF_6__yrffVffRRCfRRiG0_F5_G_
 .type b__MAFg3__16__fbegVEAF_6__yrffVffRRCfRRiG0_F5_G_,%function
 b__MAFg3__16__fbegVEAF_6__yrffVffRRCfRRiG0_F5_G_:
 nop
@@ -1428,7 +1428,7 @@
 b__MAXFg3__120__pbqrpig_hgs8_hgs16VQvR9qb_yratguRE9zofgngr_gCXpF5_z:
 nop
 .text
-.globl b__MAXFg3__18zrffntrfVjR7qb_bcraREXAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRREXAF_6ybpnyrR
+.weak b__MAXFg3__18zrffntrfVjR7qb_bcraREXAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRREXAF_6ybpnyrR
 .type b__MAXFg3__18zrffntrfVjR7qb_bcraREXAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRREXAF_6ybpnyrR,%function
 b__MAXFg3__18zrffntrfVjR7qb_bcraREXAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRREXAF_6ybpnyrR:
 nop
@@ -1438,17 +1438,17 @@
 b__MAXFg3__114reebe_pngrtbel10rdhvinyragREXAF_10reebe_pbqrRv:
 nop
 .text
-.globl b__MAXFg3__110zbarlchapgVpYo0RR16qb_gubhfnaqf_frcRi
+.weak b__MAXFg3__110zbarlchapgVpYo0RR16qb_gubhfnaqf_frcRi
 .type b__MAXFg3__110zbarlchapgVpYo0RR16qb_gubhfnaqf_frcRi,%function
 b__MAXFg3__110zbarlchapgVpYo0RR16qb_gubhfnaqf_frcRi:
 nop
 .data
-.globl b__MGVAFg3__120__gvzr_trg_p_fgbentrVpRR
+.weak b__MGVAFg3__120__gvzr_trg_p_fgbentrVpRR
 .type b__MGVAFg3__120__gvzr_trg_p_fgbentrVpRR,%object
 b__MGVAFg3__120__gvzr_trg_p_fgbentrVpRR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGFAFg3__18zrffntrfVpRR
+.weak b__MGFAFg3__18zrffntrfVpRR
 .type b__MGFAFg3__18zrffntrfVpRR,%object
 b__MGFAFg3__18zrffntrfVpRR:
 .space __SIZEOF_POINTER__
@@ -1468,7 +1468,7 @@
 b__MGFAFg3__112flfgrz_reebeR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRR10chofrrxbssRkAF_8vbf_onfr7frrxqveRw
+.weak b__MAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRR10chofrrxbssRkAF_8vbf_onfr7frrxqveRw
 .type b__MAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRR10chofrrxbssRkAF_8vbf_onfr7frrxqveRw,%function
 b__MAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRR10chofrrxbssRkAF_8vbf_onfr7frrxqveRw:
 nop
@@ -1478,12 +1478,12 @@
 b__MAXFg3__115__pbqrpig_hgs16VQfYo1RR6qb_bhgRE9zofgngr_gCXQfF5_EF5_CpF7_EF7_:
 nop
 .text
-.globl b__MAXFg3__117zbarlchapg_olanzrVjYo1RR16qb_qrpvzny_cbvagRi
+.weak b__MAXFg3__117zbarlchapg_olanzrVjYo1RR16qb_qrpvzny_cbvagRi
 .type b__MAXFg3__117zbarlchapg_olanzrVjYo1RR16qb_qrpvzny_cbvagRi,%function
 b__MAXFg3__117zbarlchapg_olanzrVjYo1RR16qb_qrpvzny_cbvagRi:
 nop
 .data
-.globl b__MGIAFg3__17pbyyngrVjRR
+.weak b__MGIAFg3__17pbyyngrVjRR
 .type b__MGIAFg3__17pbyyngrVjRR,%object
 b__MGIAFg3__17pbyyngrVjRR:
 .space __SIZEOF_POINTER__
@@ -1493,27 +1493,27 @@
 b___pkn_irp_arj2:
 nop
 .text
-.globl b__MAFg3__113onfvp_bfgernzVpAF_11pune_genvgfVpRRR5jevgrRCXpy
+.weak b__MAFg3__113onfvp_bfgernzVpAF_11pune_genvgfVpRRR5jevgrRCXpy
 .type b__MAFg3__113onfvp_bfgernzVpAF_11pune_genvgfVpRRR5jevgrRCXpy,%function
 b__MAFg3__113onfvp_bfgernzVpAF_11pune_genvgfVpRRR5jevgrRCXpy:
 nop
 .text
-.globl b__MAFg3__114onfvp_vbfgernzVpAF_11pune_genvgfVpRRR4fjncREF3_
+.weak b__MAFg3__114onfvp_vbfgernzVpAF_11pune_genvgfVpRRR4fjncREF3_
 .type b__MAFg3__114onfvp_vbfgernzVpAF_11pune_genvgfVpRRR4fjncREF3_,%function
 b__MAFg3__114onfvp_vbfgernzVpAF_11pune_genvgfVpRRR4fjncREF3_:
 nop
 .data
-.globl b__MGIAFg3__114onfvp_vbfgernzVpAF_11pune_genvgfVpRRRR
+.weak b__MGIAFg3__114onfvp_vbfgernzVpAF_11pune_genvgfVpRRRR
 .type b__MGIAFg3__114onfvp_vbfgernzVpAF_11pune_genvgfVpRRRR,%object
 b__MGIAFg3__114onfvp_vbfgernzVpAF_11pune_genvgfVpRRRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAXFg3__18gvzr_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR11__trg_lrne4REvEF4_F4_EwEXAF_5pglcrVjRR
+.weak b__MAXFg3__18gvzr_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR11__trg_lrne4REvEF4_F4_EwEXAF_5pglcrVjRR
 .type b__MAXFg3__18gvzr_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR11__trg_lrne4REvEF4_F4_EwEXAF_5pglcrVjRR,%function
 b__MAXFg3__18gvzr_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR11__trg_lrne4REvEF4_F4_EwEXAF_5pglcrVjRR:
 nop
 .text
-.globl b__MAFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9__tebj_olRzzzzzz
+.weak b__MAFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9__tebj_olRzzzzzz
 .type b__MAFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9__tebj_olRzzzzzz,%function
 b__MAFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9__tebj_olRzzzzzz:
 nop
@@ -1533,22 +1533,22 @@
 b__MAFg3__112__ef_qrsnhygQ1Ri:
 nop
 .text
-.globl b__MAXFg3__17ahz_chgVpAF_19bfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR6qb_chgRF4_EAF_8vbf_onfrRpy
+.weak b__MAXFg3__17ahz_chgVpAF_19bfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR6qb_chgRF4_EAF_8vbf_onfrRpy
 .type b__MAXFg3__17ahz_chgVpAF_19bfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR6qb_chgRF4_EAF_8vbf_onfrRpy,%function
 b__MAXFg3__17ahz_chgVpAF_19bfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR6qb_chgRF4_EAF_8vbf_onfrRpy:
 nop
 .text
-.globl b__MAXFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR16svaq_ynfg_abg_bsRCXpzz
+.weak b__MAXFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR16svaq_ynfg_abg_bsRCXpzz
 .type b__MAXFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR16svaq_ynfg_abg_bsRCXpzz,%function
 b__MAXFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR16svaq_ynfg_abg_bsRCXpzz:
 nop
 .text
-.globl b__MAXFg3__17ahz_chgVpAF_19bfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR6qb_chgRF4_EAF_8vbf_onfrRpz
+.weak b__MAXFg3__17ahz_chgVpAF_19bfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR6qb_chgRF4_EAF_8vbf_onfrRpz
 .type b__MAXFg3__17ahz_chgVpAF_19bfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR6qb_chgRF4_EAF_8vbf_onfrRpz,%function
 b__MAXFg3__17ahz_chgVpAF_19bfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR6qb_chgRF4_EAF_8vbf_onfrRpz:
 nop
 .data
-.globl b__MGIAFg3__18gvzr_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRRR
+.weak b__MGIAFg3__18gvzr_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRRR
 .type b__MGIAFg3__18gvzr_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRRR,%object
 b__MGIAFg3__18gvzr_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRRR:
 .space __SIZEOF_POINTER__
@@ -1558,12 +1558,12 @@
 b__MAFg3__14fgbyREXAF_12onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRRRCzv:
 nop
 .text
-.globl b__MAFg3__127__vafregvba_fbeg_vapbzcyrgrVEAF_6__yrffVzzRRCzRRoG0_F5_G_
+.weak b__MAFg3__127__vafregvba_fbeg_vapbzcyrgrVEAF_6__yrffVzzRRCzRRoG0_F5_G_
 .type b__MAFg3__127__vafregvba_fbeg_vapbzcyrgrVEAF_6__yrffVzzRRCzRRoG0_F5_G_,%function
 b__MAFg3__127__vafregvba_fbeg_vapbzcyrgrVEAF_6__yrffVzzRRCzRRoG0_F5_G_:
 nop
 .text
-.globl b__MAFg3__115onfvp_fgernzohsVjAF_11pune_genvgfVjRRR8biresybjRw
+.weak b__MAFg3__115onfvp_fgernzohsVjAF_11pune_genvgfVjRRR8biresybjRw
 .type b__MAFg3__115onfvp_fgernzohsVjAF_11pune_genvgfVjRRR8biresybjRw,%function
 b__MAFg3__115onfvp_fgernzohsVjAF_11pune_genvgfVjRRR8biresybjRw:
 nop
@@ -1593,7 +1593,7 @@
 b__MAFg3__119__funerq_zhgrk_onfr15gel_ybpx_funerqRi:
 nop
 .text
-.globl b__MAXFg3__18gvzr_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR10__trg_ubheREvEF4_F4_EwEXAF_5pglcrVpRR
+.weak b__MAXFg3__18gvzr_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR10__trg_ubheREvEF4_F4_EwEXAF_5pglcrVpRR
 .type b__MAXFg3__18gvzr_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR10__trg_ubheREvEF4_F4_EwEXAF_5pglcrVpRR,%function
 b__MAXFg3__18gvzr_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR10__trg_ubheREvEF4_F4_EwEXAF_5pglcrVpRR:
 nop
@@ -1623,7 +1623,7 @@
 b__MAFg3__16ybpnyr2vq6__vavgRi:
 nop
 .data
-.globl b__MGFAFg3__110__gvzr_trgR
+.weak b__MGFAFg3__110__gvzr_trgR
 .type b__MGFAFg3__110__gvzr_trgR,%object
 b__MGFAFg3__110__gvzr_trgR:
 .space __SIZEOF_POINTER__
@@ -1633,7 +1633,7 @@
 b__MGIFg12yratgu_reebe:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRRefRECi
+.weak b__MAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRRefRECi
 .type b__MAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRRefRECi,%function
 b__MAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRRefRECi:
 nop
@@ -1643,12 +1643,12 @@
 b__MAFg3__16ybpnyr5snprg16__ba_mreb_funerqRi:
 nop
 .data
-.globl b__MGVAFg3__19gvzr_onfrR
+.weak b__MGVAFg3__19gvzr_onfrR
 .type b__MGVAFg3__19gvzr_onfrR,%object
 b__MGVAFg3__19gvzr_onfrR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAXFg3__117zbarlchapg_olanzrVpYo1RR14qb_senp_qvtvgfRi
+.weak b__MAXFg3__117zbarlchapg_olanzrVpYo1RR14qb_senp_qvtvgfRi
 .type b__MAXFg3__117zbarlchapg_olanzrVpYo1RR14qb_senp_qvtvgfRi,%function
 b__MAXFg3__117zbarlchapg_olanzrVpYo1RR14qb_senp_qvtvgfRi:
 nop
@@ -1678,7 +1678,7 @@
 b__MGVFg13ehagvzr_reebe:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__127__vafregvba_fbeg_vapbzcyrgrVEAF_6__yrffVkkRRCkRRoG0_F5_G_
+.weak b__MAFg3__127__vafregvba_fbeg_vapbzcyrgrVEAF_6__yrffVkkRRCkRRoG0_F5_G_
 .type b__MAFg3__127__vafregvba_fbeg_vapbzcyrgrVEAF_6__yrffVkkRRCkRRoG0_F5_G_,%function
 b__MAFg3__127__vafregvba_fbeg_vapbzcyrgrVEAF_6__yrffVkkRRCkRRoG0_F5_G_:
 nop
@@ -1688,7 +1688,7 @@
 b__MAFg3__18vbf_onfrQ0Ri:
 nop
 .data
-.globl b__MGIAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRRR
+.weak b__MGIAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRRR
 .type b__MGIAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRRR,%object
 b__MGIAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRRR:
 .space __SIZEOF_POINTER__
@@ -1708,7 +1708,7 @@
 b__MAFg3__112__ef_qrsnhygQ2Ri:
 nop
 .data
-.globl b__MGFAFg3__110zbarl_onfrR
+.weak b__MGFAFg3__110zbarl_onfrR
 .type b__MGFAFg3__110zbarl_onfrR,%object
 b__MGFAFg3__110zbarl_onfrR:
 .space __SIZEOF_POINTER__
@@ -1718,17 +1718,17 @@
 b__MGIAFg3__18vbf_onfrR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAXFg3__17ahz_chgVpAF_19bfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR6qb_chgRF4_EAF_8vbf_onfrRpk
+.weak b__MAXFg3__17ahz_chgVpAF_19bfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR6qb_chgRF4_EAF_8vbf_onfrRpk
 .type b__MAXFg3__17ahz_chgVpAF_19bfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR6qb_chgRF4_EAF_8vbf_onfrRpk,%function
 b__MAXFg3__17ahz_chgVpAF_19bfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR6qb_chgRF4_EAF_8vbf_onfrRpk:
 nop
 .data
-.globl b__MGVAFg3__18gvzr_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRRR
+.weak b__MGVAFg3__18gvzr_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRRR
 .type b__MGVAFg3__18gvzr_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRRR,%object
 b__MGVAFg3__18gvzr_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAXFg3__17ahz_chgVpAF_19bfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR6qb_chgRF4_EAF_8vbf_onfrRpl
+.weak b__MAXFg3__17ahz_chgVpAF_19bfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR6qb_chgRF4_EAF_8vbf_onfrRpl
 .type b__MAXFg3__17ahz_chgVpAF_19bfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR6qb_chgRF4_EAF_8vbf_onfrRpl,%function
 b__MAXFg3__17ahz_chgVpAF_19bfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR6qb_chgRF4_EAF_8vbf_onfrRpl:
 nop
@@ -1738,7 +1738,7 @@
 b__MGIAFg3__17pbqrpigVQfp9zofgngr_gRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRR8chovzohrREXAF_6ybpnyrR
+.weak b__MAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRR8chovzohrREXAF_6ybpnyrR
 .type b__MAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRR8chovzohrREXAF_6ybpnyrR,%function
 b__MAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRR8chovzohrREXAF_6ybpnyrR:
 nop
@@ -1763,17 +1763,17 @@
 b__MAFg3__118funerq_gvzrq_zhgrk13haybpx_funerqRi:
 nop
 .text
-.globl b__MAFg3__16__fbegVEAF_6__yrffVqqRRCqRRiG0_F5_G_
+.weak b__MAFg3__16__fbegVEAF_6__yrffVqqRRCqRRiG0_F5_G_
 .type b__MAFg3__16__fbegVEAF_6__yrffVqqRRCqRRiG0_F5_G_,%function
 b__MAFg3__16__fbegVEAF_6__yrffVqqRRCqRRiG0_F5_G_:
 nop
 .text
-.globl b__MAXFg3__110zbarlchapgVpYo1RR13qb_cbf_sbezngRi
+.weak b__MAXFg3__110zbarlchapgVpYo1RR13qb_cbf_sbezngRi
 .type b__MAXFg3__110zbarlchapgVpYo1RR13qb_cbf_sbezngRi,%function
 b__MAXFg3__110zbarlchapgVpYo1RR13qb_cbf_sbezngRi:
 nop
 .text
-.globl b__MAXFg3__110zbarlchapgVjYo0RR14qb_senp_qvtvgfRi
+.weak b__MAXFg3__110zbarlchapgVjYo0RR14qb_senp_qvtvgfRi
 .type b__MAXFg3__110zbarlchapgVjYo0RR14qb_senp_qvtvgfRi,%function
 b__MAXFg3__110zbarlchapgVjYo0RR14qb_senp_qvtvgfRi:
 nop
@@ -1788,7 +1788,7 @@
 b__MAFg3__16ybpnyrQ2Ri:
 nop
 .text
-.globl b__MAFg3__19__ahz_trgVpR19__fgntr2_sybng_ybbcRpEoEpCpEF4_ppEXAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRCwEFR_EwF4_
+.weak b__MAFg3__19__ahz_trgVpR19__fgntr2_sybng_ybbcRpEoEpCpEF4_ppEXAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRCwEFR_EwF4_
 .type b__MAFg3__19__ahz_trgVpR19__fgntr2_sybng_ybbcRpEoEpCpEF4_ppEXAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRCwEFR_EwF4_,%function
 b__MAFg3__19__ahz_trgVpR19__fgntr2_sybng_ybbcRpEoEpCpEF4_ppEXAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRCwEFR_EwF4_:
 nop
@@ -1798,7 +1798,7 @@
 b__MAFg3__119__funerq_jrnx_pbhag12__nqq_funerqRi:
 nop
 .text
-.globl b__MAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRR5vzohrREXAF_6ybpnyrR
+.weak b__MAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRR5vzohrREXAF_6ybpnyrR
 .type b__MAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRR5vzohrREXAF_6ybpnyrR,%function
 b__MAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRR5vzohrREXAF_6ybpnyrR:
 nop
@@ -1813,12 +1813,12 @@
 b__MGIA10__pkknovi120__shapgvba_glcr_vasbR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGFAFg3__19onfvp_vbfVjAF_11pune_genvgfVjRRRR
+.weak b__MGFAFg3__19onfvp_vbfVjAF_11pune_genvgfVjRRRR
 .type b__MGFAFg3__19onfvp_vbfVjAF_11pune_genvgfVjRRRR,%object
 b__MGFAFg3__19onfvp_vbfVjAF_11pune_genvgfVjRRRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAXFg3__117zbarlchapg_olanzrVjYo0RR13qb_art_sbezngRi
+.weak b__MAXFg3__117zbarlchapg_olanzrVjYo0RR13qb_art_sbezngRi
 .type b__MAXFg3__117zbarlchapg_olanzrVjYo0RR13qb_art_sbezngRi,%function
 b__MAXFg3__117zbarlchapg_olanzrVjYo0RR13qb_art_sbezngRi:
 nop
@@ -1828,7 +1828,7 @@
 b__MAXFg3__17pbqrpigVQfp9zofgngr_gR13qb_znk_yratguRi:
 nop
 .data
-.globl b__MGIAFg3__17ahz_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRRR
+.weak b__MGIAFg3__17ahz_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRRR
 .type b__MGIAFg3__17ahz_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRRR,%object
 b__MGIAFg3__17ahz_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRRR:
 .space __SIZEOF_POINTER__
@@ -1858,7 +1858,7 @@
 b__MAFg3__112fgefgernzohs8biresybjRv:
 nop
 .text
-.globl b__MAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRRefRCSEF3_F4_R
+.weak b__MAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRRefRCSEF3_F4_R
 .type b__MAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRRefRCSEF3_F4_R,%function
 b__MAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRRefRCSEF3_F4_R:
 nop
@@ -1873,12 +1873,12 @@
 b__MGIA10__pkknovi117__pynff_glcr_vasbR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__113onfvp_bfgernzVpAF_11pune_genvgfVpRRRQ0Ri
+.weak b__MAFg3__113onfvp_bfgernzVpAF_11pune_genvgfVpRRRQ0Ri
 .type b__MAFg3__113onfvp_bfgernzVpAF_11pune_genvgfVpRRRQ0Ri,%function
 b__MAFg3__113onfvp_bfgernzVpAF_11pune_genvgfVpRRRQ0Ri:
 nop
 .text
-.globl b__MAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRR5cohzcRv
+.weak b__MAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRR5cohzcRv
 .type b__MAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRR5cohzcRv,%function
 b__MAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRR5cohzcRv:
 nop
@@ -1898,7 +1898,7 @@
 b__MAFg3__118pbaqvgvba_inevnoyr15__qb_gvzrq_jnvgREAF_11havdhr_ybpxVAF_5zhgrkRRRAF_6puebab10gvzr_cbvagVAF5_12flfgrz_pybpxRAF5_8qhengvbaVkAF_5engvbVYy1RYy1000000000RRRRRRR:
 nop
 .data
-.globl b__MGFAFg3__110zbarlchapgVpYo1RRR
+.weak b__MGFAFg3__110zbarlchapgVpYo1RRR
 .type b__MGFAFg3__110zbarlchapgVpYo1RRR,%object
 b__MGFAFg3__110zbarlchapgVpYo1RRR:
 .space __SIZEOF_POINTER__
@@ -1913,12 +1913,12 @@
 b__MAXFg3__17pbqrpigVpp9zofgngr_gR5qb_vaREF1_CXpF5_EF5_CpF7_EF7_:
 nop
 .data
-.globl b__MGIAFg3__110zbarlchapgVpYo1RRR
+.weak b__MGIAFg3__110zbarlchapgVpYo1RRR
 .type b__MGIAFg3__110zbarlchapgVpYo1RRR,%object
 b__MGIAFg3__110zbarlchapgVpYo1RRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRR7ercynprRzzEXF5_zz
+.weak b__MAFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRR7ercynprRzzEXF5_zz
 .type b__MAFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRR7ercynprRzzEXF5_zz,%function
 b__MAFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRR7ercynprRzzEXF5_zz:
 nop
@@ -1943,7 +1943,7 @@
 b__MAXFg3__120__gvzr_trg_p_fgbentrVpR7__nz_czRi:
 nop
 .data
-.globl b__MGFAFg3__115gvzr_trg_olanzrVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRRR
+.weak b__MGFAFg3__115gvzr_trg_olanzrVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRRR
 .type b__MGFAFg3__115gvzr_trg_olanzrVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRRR,%object
 b__MGFAFg3__115gvzr_trg_olanzrVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRRR:
 .space __SIZEOF_POINTER__
@@ -1953,12 +1953,12 @@
 b__MGVFg8onq_pnfg:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__113onfvp_bfgernzVpAF_11pune_genvgfVpRRRyfRCSEAF_8vbf_onfrRF5_R
+.weak b__MAFg3__113onfvp_bfgernzVpAF_11pune_genvgfVpRRRyfRCSEAF_8vbf_onfrRF5_R
 .type b__MAFg3__113onfvp_bfgernzVpAF_11pune_genvgfVpRRRyfRCSEAF_8vbf_onfrRF5_R,%function
 b__MAFg3__113onfvp_bfgernzVpAF_11pune_genvgfVpRRRyfRCSEAF_8vbf_onfrRF5_R:
 nop
 .data
-.globl b__MGIAFg3__18gvzr_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRRR
+.weak b__MGIAFg3__18gvzr_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRRR
 .type b__MGIAFg3__18gvzr_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRRR,%object
 b__MGIAFg3__18gvzr_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRRR:
 .space __SIZEOF_POINTER__
@@ -1968,17 +1968,17 @@
 b__MAFg3__117__nffbp_fho_fgngr10__fho_jnvgREAF_11havdhr_ybpxVAF_5zhgrkRRR:
 nop
 .data
-.globl b__MAFg3__17ahz_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR2vqR
+.weak b__MAFg3__17ahz_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR2vqR
 .type b__MAFg3__17ahz_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR2vqR,%object
 b__MAFg3__17ahz_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR2vqR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MAFg3__17ahz_chgVjAF_19bfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR2vqR
+.weak b__MAFg3__17ahz_chgVjAF_19bfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR2vqR
 .type b__MAFg3__17ahz_chgVjAF_19bfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR2vqR,%object
 b__MAFg3__17ahz_chgVjAF_19bfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR2vqR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAXFg3__18gvzr_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR16qb_trg_zbaguanzrRF4_F4_EAF_8vbf_onfrREwC2gz
+.weak b__MAXFg3__18gvzr_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR16qb_trg_zbaguanzrRF4_F4_EAF_8vbf_onfrREwC2gz
 .type b__MAXFg3__18gvzr_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR16qb_trg_zbaguanzrRF4_F4_EAF_8vbf_onfrREwC2gz,%function
 b__MAXFg3__18gvzr_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR16qb_trg_zbaguanzrRF4_F4_EAF_8vbf_onfrREwC2gz:
 nop
@@ -1988,7 +1988,7 @@
 b__MAFg3__18ahzchapgVjR2vqR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGFAFg3__17ahz_chgVjAF_19bfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRRR
+.weak b__MGFAFg3__17ahz_chgVjAF_19bfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRRR
 .type b__MGFAFg3__17ahz_chgVjAF_19bfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRRR,%object
 b__MGFAFg3__17ahz_chgVjAF_19bfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRRR:
 .space __SIZEOF_POINTER__
@@ -2028,7 +2028,7 @@
 b__MAXFg3__124__yvopcc_qroht_rkprcgvba4jungRi:
 nop
 .text
-.globl b__MAXFg3__117zbarlchapg_olanzrVpYo1RR16qb_artngvir_fvtaRi
+.weak b__MAXFg3__117zbarlchapg_olanzrVpYo1RR16qb_artngvir_fvtaRi
 .type b__MAXFg3__117zbarlchapg_olanzrVpYo1RR16qb_artngvir_fvtaRi,%function
 b__MAXFg3__117zbarlchapg_olanzrVpYo1RR16qb_artngvir_fvtaRi:
 nop
@@ -2068,7 +2068,7 @@
 b__MGVA10__pkknovi120__shapgvba_glcr_vasbR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__127__vafregvba_fbeg_vapbzcyrgrVEAF_6__yrffVvvRRCvRRoG0_F5_G_
+.weak b__MAFg3__127__vafregvba_fbeg_vapbzcyrgrVEAF_6__yrffVvvRRCvRRoG0_F5_G_
 .type b__MAFg3__127__vafregvba_fbeg_vapbzcyrgrVEAF_6__yrffVvvRRCvRRoG0_F5_G_,%function
 b__MAFg3__127__vafregvba_fbeg_vapbzcyrgrVEAF_6__yrffVvvRRCvRRoG0_F5_G_:
 nop
@@ -2078,12 +2078,12 @@
 b__MAFg16arfgrq_rkprcgvbaQ0Ri:
 nop
 .text
-.globl b__MAXFg3__110zbarlchapgVjYo1RR14qb_phee_flzobyRi
+.weak b__MAXFg3__110zbarlchapgVjYo1RR14qb_phee_flzobyRi
 .type b__MAXFg3__110zbarlchapgVjYo1RR14qb_phee_flzobyRi,%function
 b__MAXFg3__110zbarlchapgVjYo1RR14qb_phee_flzobyRi:
 nop
 .text
-.globl b__MAFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR6erfvmrRzp
+.weak b__MAFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR6erfvmrRzp
 .type b__MAFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR6erfvmrRzp,%function
 b__MAFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR6erfvmrRzp:
 nop
@@ -2098,12 +2098,12 @@
 b__MAFg3__124__yvopcc_qroht_rkprcgvbaP1Ri:
 nop
 .text
-.globl b__MAFg3__113onfvp_bfgernzVpAF_11pune_genvgfVpRRRQ1Ri
+.weak b__MAFg3__113onfvp_bfgernzVpAF_11pune_genvgfVpRRRQ1Ri
 .type b__MAFg3__113onfvp_bfgernzVpAF_11pune_genvgfVpRRRQ1Ri,%function
 b__MAFg3__113onfvp_bfgernzVpAF_11pune_genvgfVpRRRQ1Ri:
 nop
 .text
-.globl b__MAXFg3__18gvzr_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR11qb_trg_lrneRF4_F4_EAF_8vbf_onfrREwC2gz
+.weak b__MAXFg3__18gvzr_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR11qb_trg_lrneRF4_F4_EAF_8vbf_onfrREwC2gz
 .type b__MAXFg3__18gvzr_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR11qb_trg_lrneRF4_F4_EAF_8vbf_onfrREwC2gz,%function
 b__MAXFg3__18gvzr_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR11qb_trg_lrneRF4_F4_EAF_8vbf_onfrREwC2gz:
 nop
@@ -2113,7 +2113,7 @@
 b__MAFg3__15pglcrVpRQ0Ri:
 nop
 .data
-.globl b__MGVAFg3__111__zbarl_chgVjRR
+.weak b__MGVAFg3__111__zbarl_chgVjRR
 .type b__MGVAFg3__111__zbarl_chgVjRR,%object
 b__MGVAFg3__111__zbarl_chgVjRR:
 .space __SIZEOF_POINTER__
@@ -2138,7 +2138,7 @@
 b__MAFg3__16puebab12flfgrz_pybpx11sebz_gvzr_gRy:
 nop
 .text
-.globl b__MAFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR6nffvtaRCXp
+.weak b__MAFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR6nffvtaRCXp
 .type b__MAFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR6nffvtaRCXp,%function
 b__MAFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR6nffvtaRCXp:
 nop
@@ -2168,7 +2168,7 @@
 b__MGVCXQu:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRRefRCAF_15onfvp_fgernzohsVjF2_RR
+.weak b__MAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRRefRCAF_15onfvp_fgernzohsVjF2_RR
 .type b__MAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRRefRCAF_15onfvp_fgernzohsVjF2_RR,%function
 b__MAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRRefRCAF_15onfvp_fgernzohsVjF2_RR:
 nop
@@ -2183,27 +2183,27 @@
 b__MGIAFg3__112shgher_reebeR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRRefRCSEAF_8vbf_onfrRF5_R
+.weak b__MAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRRefRCSEAF_8vbf_onfrRF5_R
 .type b__MAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRRefRCSEAF_8vbf_onfrRF5_R,%function
 b__MAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRRefRCSEAF_8vbf_onfrRF5_R:
 nop
 .text
-.globl b__MAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRRnFREXF3_
+.weak b__MAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRRnFREXF3_
 .type b__MAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRRnFREXF3_,%function
 b__MAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRRnFREXF3_:
 nop
 .text
-.globl b__MAFg3__19__ahz_trgVpR19__fgntr2_sybng_cercREAF_8vbf_onfrRCpEpF5_
+.weak b__MAFg3__19__ahz_trgVpR19__fgntr2_sybng_cercREAF_8vbf_onfrRCpEpF5_
 .type b__MAFg3__19__ahz_trgVpR19__fgntr2_sybng_cercREAF_8vbf_onfrRCpEpF5_,%function
 b__MAFg3__19__ahz_trgVpR19__fgntr2_sybng_cercREAF_8vbf_onfrRCpEpF5_:
 nop
 .data
-.globl b__MGFAFg3__17pbyyngrVjRR
+.weak b__MGFAFg3__17pbyyngrVjRR
 .type b__MGFAFg3__17pbyyngrVjRR,%object
 b__MGFAFg3__17pbyyngrVjRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRR7erfreirRz
+.weak b__MAFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRR7erfreirRz
 .type b__MAFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRR7erfreirRz,%function
 b__MAFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRR7erfreirRz:
 nop
@@ -2233,12 +2233,12 @@
 b__MAFg3__15pglcrVjR2vqR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRR7ercynprRzzzj
+.weak b__MAFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRR7ercynprRzzzj
 .type b__MAFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRR7ercynprRzzzj,%function
 b__MAFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRR7ercynprRzzzj:
 nop
 .text
-.globl b__MAFg3__127__vafregvba_fbeg_vapbzcyrgrVEAF_6__yrffVggRRCgRRoG0_F5_G_
+.weak b__MAFg3__127__vafregvba_fbeg_vapbzcyrgrVEAF_6__yrffVggRRCgRRoG0_F5_G_
 .type b__MAFg3__127__vafregvba_fbeg_vapbzcyrgrVEAF_6__yrffVggRRCgRRoG0_F5_G_,%function
 b__MAFg3__127__vafregvba_fbeg_vapbzcyrgrVEAF_6__yrffVggRRCgRRoG0_F5_G_:
 nop
@@ -2248,7 +2248,7 @@
 b__MAXFg3__115__pbqrpig_hgs16VQfYo1RR9qb_yratguRE9zofgngr_gCXpF5_z:
 nop
 .text
-.globl b__MAXFg3__18gvzr_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR13__trg_jrrxqnlREvEF4_F4_EwEXAF_5pglcrVjRR
+.weak b__MAXFg3__18gvzr_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR13__trg_jrrxqnlREvEF4_F4_EwEXAF_5pglcrVjRR
 .type b__MAXFg3__18gvzr_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR13__trg_jrrxqnlREvEF4_F4_EwEXAF_5pglcrVjRR,%function
 b__MAXFg3__18gvzr_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR13__trg_jrrxqnlREvEF4_F4_EwEXAF_5pglcrVjRR:
 nop
@@ -2263,7 +2263,7 @@
 b__MAFg11ybtvp_reebeP1RCXp:
 nop
 .text
-.globl b__MAXFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR5esvaqRCXpzz
+.weak b__MAXFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR5esvaqRCXpzz
 .type b__MAXFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR5esvaqRCXpzz,%function
 b__MAXFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR5esvaqRCXpzz:
 nop
@@ -2283,7 +2283,7 @@
 b__MAXFg3__114__pbqrpig_hgs8VQvR11qb_rapbqvatRi:
 nop
 .text
-.globl b__MAXFg3__18gvzr_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR6qb_trgRF4_F4_EAF_8vbf_onfrREwC2gzpp
+.weak b__MAXFg3__18gvzr_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR6qb_trgRF4_F4_EAF_8vbf_onfrREwC2gzpp
 .type b__MAXFg3__18gvzr_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR6qb_trgRF4_F4_EAF_8vbf_onfrREwC2gzpp,%function
 b__MAXFg3__18gvzr_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR6qb_trgRF4_F4_EAF_8vbf_onfrREwC2gzpp:
 nop
@@ -2293,7 +2293,7 @@
 b__MGVFg12yratgu_reebe:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAXFg3__121__onfvp_fgevat_pbzzbaVYo1RR20__guebj_yratgu_reebeRi
+.weak b__MAXFg3__121__onfvp_fgevat_pbzzbaVYo1RR20__guebj_yratgu_reebeRi
 .type b__MAXFg3__121__onfvp_fgevat_pbzzbaVYo1RR20__guebj_yratgu_reebeRi,%function
 b__MAXFg3__121__onfvp_fgevat_pbzzbaVYo1RR20__guebj_yratgu_reebeRi:
 nop
@@ -2333,7 +2333,7 @@
 b__MAXFg3__114__pbqrpig_hgs8VQvR13qb_znk_yratguRi:
 nop
 .data
-.globl b__MGIAFg3__117zbarlchapg_olanzrVjYo0RRR
+.weak b__MGIAFg3__117zbarlchapg_olanzrVjYo0RRR
 .type b__MGIAFg3__117zbarlchapg_olanzrVjYo0RRR,%object
 b__MGIAFg3__117zbarlchapg_olanzrVjYo0RRR:
 .space __SIZEOF_POINTER__
@@ -2343,7 +2343,7 @@
 b__MAFg3__124__yvopcc_qroht_rkprcgvbaP2Ri:
 nop
 .text
-.globl b__MAFg3__113onfvp_bfgernzVpAF_11pune_genvgfVpRRRQ2Ri
+.weak b__MAFg3__113onfvp_bfgernzVpAF_11pune_genvgfVpRRRQ2Ri
 .type b__MAFg3__113onfvp_bfgernzVpAF_11pune_genvgfVpRRRQ2Ri,%function
 b__MAFg3__113onfvp_bfgernzVpAF_11pune_genvgfVpRRRQ2Ri:
 nop
@@ -2358,12 +2358,12 @@
 b__MAFg3__15pglcrVpRQ1Ri:
 nop
 .data
-.globl b__MGVAFg3__110zbarlchapgVjYo1RRR
+.weak b__MGVAFg3__110zbarlchapgVjYo1RRR
 .type b__MGVAFg3__110zbarlchapgVjYo1RRR,%object
 b__MGVAFg3__110zbarlchapgVjYo1RRR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGVAFg3__114pbqrpig_olanzrVQvp9zofgngr_gRR
+.weak b__MGVAFg3__114pbqrpig_olanzrVQvp9zofgngr_gRR
 .type b__MGVAFg3__114pbqrpig_olanzrVQvp9zofgngr_gRR,%object
 b__MGVAFg3__114pbqrpig_olanzrVQvp9zofgngr_gRR:
 .space __SIZEOF_POINTER__
@@ -2378,7 +2378,7 @@
 b__MAFg3__114__funerq_pbhagQ1Ri:
 nop
 .text
-.globl b__ManzFg11nyvta_iny_gEXFg9abguebj_g
+.weak b__ManzFg11nyvta_iny_gEXFg9abguebj_g
 .type b__ManzFg11nyvta_iny_gEXFg9abguebj_g,%function
 b__ManzFg11nyvta_iny_gEXFg9abguebj_g:
 nop
@@ -2403,12 +2403,12 @@
 b___qlanzvp_pnfg:
 nop
 .text
-.globl b__MAXFg3__18gvzr_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR12__trg_frpbaqREvEF4_F4_EwEXAF_5pglcrVjRR
+.weak b__MAXFg3__18gvzr_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR12__trg_frpbaqREvEF4_F4_EwEXAF_5pglcrVjRR
 .type b__MAXFg3__18gvzr_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR12__trg_frpbaqREvEF4_F4_EwEXAF_5pglcrVjRR,%function
 b__MAXFg3__18gvzr_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR12__trg_frpbaqREvEF4_F4_EwEXAF_5pglcrVjRR:
 nop
 .text
-.globl b__MAFg3__111__zbarl_chgVjR8__sbezngRCjEF2_F3_wCXjF5_EXAF_5pglcrVjRRoEXAF_10zbarl_onfr7cnggreaRjjEXAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRREXAFR_VjAFS_VjRRAFU_VjRRRRFD_v
+.weak b__MAFg3__111__zbarl_chgVjR8__sbezngRCjEF2_F3_wCXjF5_EXAF_5pglcrVjRRoEXAF_10zbarl_onfr7cnggreaRjjEXAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRREXAFR_VjAFS_VjRRAFU_VjRRRRFD_v
 .type b__MAFg3__111__zbarl_chgVjR8__sbezngRCjEF2_F3_wCXjF5_EXAF_5pglcrVjRRoEXAF_10zbarl_onfr7cnggreaRjjEXAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRREXAFR_VjAFS_VjRRAFU_VjRRRRFD_v,%function
 b__MAFg3__111__zbarl_chgVjR8__sbezngRCjEF2_F3_wCXjF5_EXAF_5pglcrVjRRoEXAF_10zbarl_onfr7cnggreaRjjEXAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRREXAFR_VjAFS_VjRRAFU_VjRRRRFD_v:
 nop
@@ -2423,22 +2423,22 @@
 b__MA10__pkknovi119__trgRkprcgvbaPynffRCX17_Hajvaq_Rkprcgvba:
 nop
 .text
-.globl b__MAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRR3trgREj
+.weak b__MAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRR3trgREj
 .type b__MAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRR3trgREj,%function
 b__MAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRR3trgREj:
 nop
 .text
-.globl b__MAFg3__19onfvp_vbfVjAF_11pune_genvgfVjRRRQ0Ri
+.weak b__MAFg3__19onfvp_vbfVjAF_11pune_genvgfVjRRRQ0Ri
 .type b__MAFg3__19onfvp_vbfVjAF_11pune_genvgfVjRRRQ0Ri,%function
 b__MAFg3__19onfvp_vbfVjAF_11pune_genvgfVjRRRQ0Ri:
 nop
 .data
-.globl b__MGVAFg3__117zbarlchapg_olanzrVpYo1RRR
+.weak b__MGVAFg3__117zbarlchapg_olanzrVpYo1RRR
 .type b__MGVAFg3__117zbarlchapg_olanzrVpYo1RRR,%object
 b__MGVAFg3__117zbarlchapg_olanzrVpYo1RRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__121__guernq_fcrpvsvp_cgeVAF_15__guernq_fgehpgRRP2Ri
+.weak b__MAFg3__121__guernq_fcrpvsvp_cgeVAF_15__guernq_fgehpgRRP2Ri
 .type b__MAFg3__121__guernq_fcrpvsvp_cgeVAF_15__guernq_fgehpgRRP2Ri,%function
 b__MAFg3__121__guernq_fcrpvsvp_cgeVAF_15__guernq_fgehpgRRP2Ri:
 nop
@@ -2458,7 +2458,7 @@
 b__MAFg3__17cebzvfrViR28frg_rkprcgvba_ng_guernq_rkvgRFg13rkprcgvba_cge:
 nop
 .text
-.globl b__MAXFg3__18gvzr_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR9__trg_qnlREvEF4_F4_EwEXAF_5pglcrVjRR
+.weak b__MAXFg3__18gvzr_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR9__trg_qnlREvEF4_F4_EwEXAF_5pglcrVjRR
 .type b__MAXFg3__18gvzr_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR9__trg_qnlREvEF4_F4_EwEXAF_5pglcrVjRR,%function
 b__MAXFg3__18gvzr_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR9__trg_qnlREvEF4_F4_EwEXAF_5pglcrVjRR:
 nop
@@ -2503,7 +2503,7 @@
 b__MAXFg3__111__yvopcc_qo8__svaq_pRCi:
 nop
 .text
-.globl b__MAXFg3__110zbarlchapgVpYo1RR14qb_senp_qvtvgfRi
+.weak b__MAXFg3__110zbarlchapgVpYo1RR14qb_senp_qvtvgfRi
 .type b__MAXFg3__110zbarlchapgVpYo1RR14qb_senp_qvtvgfRi,%function
 b__MAXFg3__110zbarlchapgVpYo1RR14qb_senp_qvtvgfRi:
 nop
@@ -2533,7 +2533,7 @@
 b__MAFg3__18vbf_onfr4VavgP1Ri:
 nop
 .text
-.globl b__MAXFg3__19zbarl_chgVpAF_19bfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR6qb_chgRF4_oEAF_8vbf_onfrRpEXAF_12onfvp_fgevatVpF3_AF_9nyybpngbeVpRRRR
+.weak b__MAXFg3__19zbarl_chgVpAF_19bfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR6qb_chgRF4_oEAF_8vbf_onfrRpEXAF_12onfvp_fgevatVpF3_AF_9nyybpngbeVpRRRR
 .type b__MAXFg3__19zbarl_chgVpAF_19bfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR6qb_chgRF4_oEAF_8vbf_onfrRpEXAF_12onfvp_fgevatVpF3_AF_9nyybpngbeVpRRRR,%function
 b__MAXFg3__19zbarl_chgVpAF_19bfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR6qb_chgRF4_oEAF_8vbf_onfrRpEXAF_12onfvp_fgevatVpF3_AF_9nyybpngbeVpRRRR:
 nop
@@ -2548,12 +2548,12 @@
 b__MAFg3__118__gvzr_trg_fgbentrVpRP2RCXp:
 nop
 .data
-.globl b__MGFAFg3__111__zbarl_chgVjRR
+.weak b__MGFAFg3__111__zbarl_chgVjRR
 .type b__MGFAFg3__111__zbarl_chgVjRR,%object
 b__MGFAFg3__111__zbarl_chgVjRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRR6nccraqRzj
+.weak b__MAFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRR6nccraqRzj
 .type b__MAFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRR6nccraqRzj,%function
 b__MAFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRR6nccraqRzj:
 nop
@@ -2563,7 +2563,7 @@
 b__MAFg3__114__funerq_pbhagQ2Ri:
 nop
 .data
-.globl b__MGFAFg3__113onfvp_bfgernzVjAF_11pune_genvgfVjRRRR
+.weak b__MGFAFg3__113onfvp_bfgernzVjAF_11pune_genvgfVjRRRR
 .type b__MGFAFg3__113onfvp_bfgernzVjAF_11pune_genvgfVjRRRR,%object
 b__MGFAFg3__113onfvp_bfgernzVjAF_11pune_genvgfVjRRRR:
 .space __SIZEOF_POINTER__
@@ -2623,12 +2623,12 @@
 b__MAFg3__111ertrk_reebeQ2Ri:
 nop
 .text
-.globl b__MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRR3trgRi
+.weak b__MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRR3trgRi
 .type b__MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRR3trgRi,%function
 b__MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRR3trgRi:
 nop
 .text
-.globl b__MAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRR4crrxRi
+.weak b__MAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRR4crrxRi
 .type b__MAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRR4crrxRi,%function
 b__MAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRR4crrxRi:
 nop
@@ -2643,17 +2643,17 @@
 b__MAXFg3__120__gvzr_trg_p_fgbentrVpR3__kRi:
 nop
 .data
-.globl b__MGVAFg3__18zrffntrfVpRR
+.weak b__MGVAFg3__18zrffntrfVpRR
 .type b__MGVAFg3__18zrffntrfVpRR,%object
 b__MGVAFg3__18zrffntrfVpRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRR6fragelP1REF3_o
+.weak b__MAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRR6fragelP1REF3_o
 .type b__MAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRR6fragelP1REF3_o,%function
 b__MAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRR6fragelP1REF3_o:
 nop
 .text
-.globl b__MAFg3__19onfvp_vbfVjAF_11pune_genvgfVjRRRQ1Ri
+.weak b__MAFg3__19onfvp_vbfVjAF_11pune_genvgfVjRRRQ1Ri
 .type b__MAFg3__19onfvp_vbfVjAF_11pune_genvgfVjRRRQ1Ri,%function
 b__MAFg3__19onfvp_vbfVjAF_11pune_genvgfVjRRRQ1Ri:
 nop
@@ -2663,12 +2663,12 @@
 b__MAXFg3__115__pbqrpig_hgs16VjYo1RR10qb_hafuvsgRE9zofgngr_gCpF4_EF4_:
 nop
 .text
-.globl b__MAFg3__113onfvp_bfgernzVjAF_11pune_genvgfVjRRR5syhfuRi
+.weak b__MAFg3__113onfvp_bfgernzVjAF_11pune_genvgfVjRRR5syhfuRi
 .type b__MAFg3__113onfvp_bfgernzVjAF_11pune_genvgfVjRRR5syhfuRi,%function
 b__MAFg3__113onfvp_bfgernzVjAF_11pune_genvgfVjRRR5syhfuRi:
 nop
 .data
-.globl b__MGVAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRRR
+.weak b__MGVAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRRR
 .type b__MGVAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRRR,%object
 b__MGVAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRRR:
 .space __SIZEOF_POINTER__
@@ -2683,7 +2683,7 @@
 b__MGIAFg3__18ahzchapgVpRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR6nffvtaRCXpz
+.weak b__MAFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR6nffvtaRCXpz
 .type b__MAFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR6nffvtaRCXpz,%function
 b__MAFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR6nffvtaRCXpz:
 nop
@@ -2713,7 +2713,7 @@
 b__MAXFg3__15pglcrVjR10qb_gbhccreRCjCXj:
 nop
 .text
-.globl b__MAFg3__127__vafregvba_fbeg_vapbzcyrgrVEAF_6__yrffVrrRRCrRRoG0_F5_G_
+.weak b__MAFg3__127__vafregvba_fbeg_vapbzcyrgrVEAF_6__yrffVrrRRCrRRoG0_F5_G_
 .type b__MAFg3__127__vafregvba_fbeg_vapbzcyrgrVEAF_6__yrffVrrRRCrRRoG0_F5_G_,%function
 b__MAFg3__127__vafregvba_fbeg_vapbzcyrgrVEAF_6__yrffVrrRRCrRRoG0_F5_G_:
 nop
@@ -2723,22 +2723,22 @@
 b__MAFg3__18vbf_onfr4VavgP2Ri:
 nop
 .text
-.globl b__MAXFg3__117zbarlchapg_olanzrVpYo0RR16qb_cbfvgvir_fvtaRi
+.weak b__MAXFg3__117zbarlchapg_olanzrVpYo0RR16qb_cbfvgvir_fvtaRi
 .type b__MAXFg3__117zbarlchapg_olanzrVpYo0RR16qb_cbfvgvir_fvtaRi,%function
 b__MAXFg3__117zbarlchapg_olanzrVpYo0RR16qb_cbfvgvir_fvtaRi:
 nop
 .text
-.globl b__MAXFg3__18gvzr_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR10__trg_lrneREvEF4_F4_EwEXAF_5pglcrVpRR
+.weak b__MAXFg3__18gvzr_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR10__trg_lrneREvEF4_F4_EwEXAF_5pglcrVpRR
 .type b__MAXFg3__18gvzr_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR10__trg_lrneREvEF4_F4_EwEXAF_5pglcrVpRR,%function
 b__MAXFg3__18gvzr_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR10__trg_lrneREvEF4_F4_EwEXAF_5pglcrVpRR:
 nop
 .text
-.globl b__MAFg3__19__ahz_trgVjR17__fgntr2_vag_cercREAF_8vbf_onfrRCjEj
+.weak b__MAFg3__19__ahz_trgVjR17__fgntr2_vag_cercREAF_8vbf_onfrRCjEj
 .type b__MAFg3__19__ahz_trgVjR17__fgntr2_vag_cercREAF_8vbf_onfrRCjEj,%function
 b__MAFg3__19__ahz_trgVjR17__fgntr2_vag_cercREAF_8vbf_onfrRCjEj:
 nop
 .data
-.globl b__MGVAFg3__19zbarl_chgVjAF_19bfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRRR
+.weak b__MGVAFg3__19zbarl_chgVjAF_19bfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRRR
 .type b__MGVAFg3__19zbarl_chgVjAF_19bfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRRR,%object
 b__MGVAFg3__19zbarl_chgVjAF_19bfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRRR:
 .space __SIZEOF_POINTER__
@@ -2758,22 +2758,22 @@
 b__MAXFg12onq_nal_pnfg4jungRi:
 nop
 .text
-.globl b__MAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRR5gryytRi
+.weak b__MAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRR5gryytRi
 .type b__MAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRR5gryytRi,%function
 b__MAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRR5gryytRi:
 nop
 .data
-.globl b__MGFAFg3__114onfvp_vbfgernzVpAF_11pune_genvgfVpRRRR
+.weak b__MGFAFg3__114onfvp_vbfgernzVpAF_11pune_genvgfVpRRRR
 .type b__MGFAFg3__114onfvp_vbfgernzVpAF_11pune_genvgfVpRRRR,%object
 b__MGFAFg3__114onfvp_vbfgernzVpAF_11pune_genvgfVpRRRR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGVAFg3__113zrffntrf_onfrR
+.weak b__MGVAFg3__113zrffntrf_onfrR
 .type b__MGVAFg3__113zrffntrf_onfrR,%object
 b__MGVAFg3__113zrffntrf_onfrR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAXFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRR2ngRz
+.weak b__MAXFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRR2ngRz
 .type b__MAXFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRR2ngRz,%function
 b__MAXFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRR2ngRz:
 nop
@@ -2788,7 +2788,7 @@
 b__MGVo:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRR5tohzcRv
+.weak b__MAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRR5tohzcRv
 .type b__MAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRR5tohzcRv,%function
 b__MAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRR5tohzcRv:
 nop
@@ -2798,7 +2798,7 @@
 b__MAFg3__112pglcr_olanzrVjRP1RCXpz:
 nop
 .data
-.globl b__MGVAFg3__110__gvzr_trgR
+.weak b__MGVAFg3__110__gvzr_trgR
 .type b__MGVAFg3__110__gvzr_trgR,%object
 b__MGVAFg3__110__gvzr_trgR:
 .space __SIZEOF_POINTER__
@@ -2818,7 +2818,7 @@
 b__MGVq:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__19onfvp_vbfVjAF_11pune_genvgfVjRRRQ2Ri
+.weak b__MAFg3__19onfvp_vbfVjAF_11pune_genvgfVjRRRQ2Ri
 .type b__MAFg3__19onfvp_vbfVjAF_11pune_genvgfVjRRRQ2Ri,%function
 b__MAFg3__19onfvp_vbfVjAF_11pune_genvgfVjRRRQ2Ri:
 nop
@@ -2828,7 +2828,7 @@
 b__MAFg3__16ybpnyr4abarR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGVAFg3__114pbqrpig_olanzrVjp9zofgngr_gRR
+.weak b__MGVAFg3__114pbqrpig_olanzrVjp9zofgngr_gRR
 .type b__MGVAFg3__114pbqrpig_olanzrVjp9zofgngr_gRR,%object
 b__MGVAFg3__114pbqrpig_olanzrVjp9zofgngr_gRR:
 .space __SIZEOF_POINTER__
@@ -2873,7 +2873,7 @@
 b__MGVAFg12rkcrevzragny19onq_bcgvbany_npprffR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MAFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR4acbfR
+.weak b__MAFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR4acbfR
 .type b__MAFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR4acbfR,%object
 b__MAFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR4acbfR:
 .space __SIZEOF_POINTER__
@@ -2903,12 +2903,12 @@
 b__MGVv:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__115onfvp_fgernzohsVjAF_11pune_genvgfVjRRR4frgtRCjF4_F4_
+.weak b__MAFg3__115onfvp_fgernzohsVjAF_11pune_genvgfVjRRR4frgtRCjF4_F4_
 .type b__MAFg3__115onfvp_fgernzohsVjAF_11pune_genvgfVjRRR4frgtRCjF4_F4_,%function
 b__MAFg3__115onfvp_fgernzohsVjAF_11pune_genvgfVjRRR4frgtRCjF4_F4_:
 nop
 .text
-.globl b__MAXFg3__110zbarlchapgVjYo0RR16qb_qrpvzny_cbvagRi
+.weak b__MAXFg3__110zbarlchapgVjYo0RR16qb_qrpvzny_cbvagRi
 .type b__MAXFg3__110zbarlchapgVjYo0RR16qb_qrpvzny_cbvagRi,%function
 b__MAXFg3__110zbarlchapgVjYo0RR16qb_qrpvzny_cbvagRi:
 nop
@@ -2963,7 +2963,7 @@
 b__MAXFg3__114__pbqrpig_hgs8VQfR11qb_rapbqvatRi:
 nop
 .data
-.globl b__MGFAFg3__110zbarlchapgVjYo0RRR
+.weak b__MGFAFg3__110zbarlchapgVjYo0RRR
 .type b__MGFAFg3__110zbarlchapgVjYo0RRR,%object
 b__MGFAFg3__110zbarlchapgVjYo0RRR:
 .space __SIZEOF_POINTER__
@@ -2978,7 +2978,7 @@
 b__MGVy:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MqnCiz
+.weak b__MqnCiz
 .type b__MqnCiz,%function
 b__MqnCiz:
 nop
@@ -2998,7 +2998,7 @@
 b__MAFg3__127__yvopcc_frg_qroht_shapgvbaRCSiEXAF_19__yvopcc_qroht_vasbRR:
 nop
 .text
-.globl b__MGi0_a24_AFg3__113onfvp_bfgernzVjAF_11pune_genvgfVjRRRQ0Ri
+.weak b__MGi0_a24_AFg3__113onfvp_bfgernzVjAF_11pune_genvgfVjRRRQ0Ri
 .type b__MGi0_a24_AFg3__113onfvp_bfgernzVjAF_11pune_genvgfVjRRRQ0Ri,%function
 b__MGi0_a24_AFg3__113onfvp_bfgernzVjAF_11pune_genvgfVjRRRQ0Ri:
 nop
@@ -3023,12 +3023,12 @@
 b__MAFg3__110pglcr_onfr5hccreR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIAFg3__110zbarlchapgVjYo0RRR
+.weak b__MGIAFg3__110zbarlchapgVjYo0RRR
 .type b__MGIAFg3__110zbarlchapgVjYo0RRR,%object
 b__MGIAFg3__110zbarlchapgVjYo0RRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__Manz
+.weak b__Manz
 .type b__Manz,%function
 b__Manz:
 nop
@@ -3043,17 +3043,17 @@
 b__MAFg8onq_pnfgQ2Ri:
 nop
 .text
-.globl b__MAXFg3__18gvzr_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR11__trg_nz_czREvEF4_F4_EwEXAF_5pglcrVpRR
+.weak b__MAXFg3__18gvzr_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR11__trg_nz_czREvEF4_F4_EwEXAF_5pglcrVpRR
 .type b__MAXFg3__18gvzr_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR11__trg_nz_czREvEF4_F4_EwEXAF_5pglcrVpRR,%function
 b__MAXFg3__18gvzr_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR11__trg_nz_czREvEF4_F4_EwEXAF_5pglcrVpRR:
 nop
 .text
-.globl b__MAXFg3__18gvzr_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR9__trg_qnlREvEF4_F4_EwEXAF_5pglcrVpRR
+.weak b__MAXFg3__18gvzr_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR9__trg_qnlREvEF4_F4_EwEXAF_5pglcrVpRR
 .type b__MAXFg3__18gvzr_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR9__trg_qnlREvEF4_F4_EwEXAF_5pglcrVpRR,%function
 b__MAXFg3__18gvzr_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR9__trg_qnlREvEF4_F4_EwEXAF_5pglcrVpRR:
 nop
 .data
-.globl b__MGFAFg3__19zbarl_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRRR
+.weak b__MGFAFg3__19zbarl_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRRR
 .type b__MGFAFg3__19zbarl_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRRR,%object
 b__MGFAFg3__19zbarl_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRRR:
 .space __SIZEOF_POINTER__
@@ -3063,7 +3063,7 @@
 b__MAFg3__118trg_cbvagre_fnsrglRi:
 nop
 .text
-.globl b__MAFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRnFREXF5_
+.weak b__MAFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRnFREXF5_
 .type b__MAFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRnFREXF5_,%function
 b__MAFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRnFREXF5_:
 nop
@@ -3083,7 +3083,7 @@
 b__MAXFg3__120__gvzr_trg_p_fgbentrVjR3__pRi:
 nop
 .text
-.globl b__MAFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR2ngRz
+.weak b__MAFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR2ngRz
 .type b__MAFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR2ngRz,%function
 b__MAFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR2ngRz:
 nop
@@ -3113,12 +3113,12 @@
 b__MAFg3__18vbf_onfr11nqwhfgsvryqR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRR9chfu_onpxRj
+.weak b__MAFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRR9chfu_onpxRj
 .type b__MAFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRR9chfu_onpxRj,%function
 b__MAFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRR9chfu_onpxRj:
 nop
 .text
-.globl b__ManzFg11nyvta_iny_g
+.weak b__ManzFg11nyvta_iny_g
 .type b__ManzFg11nyvta_iny_g,%function
 b__ManzFg11nyvta_iny_g:
 nop
@@ -3133,7 +3133,7 @@
 b__MAFg3__112fgefgernzohsP1RCnyF1_:
 nop
 .text
-.globl b__MAFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRP1REXF5_EXF4_
+.weak b__MAFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRP1REXF5_EXF4_
 .type b__MAFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRP1REXF5_EXF4_,%function
 b__MAFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRP1REXF5_EXF4_:
 nop
@@ -3158,7 +3158,7 @@
 b__MGVg:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__113onfvp_bfgernzVjAF_11pune_genvgfVjRRR6fragelP2REF3_
+.weak b__MAFg3__113onfvp_bfgernzVjAF_11pune_genvgfVjRRR6fragelP2REF3_
 .type b__MAFg3__113onfvp_bfgernzVjAF_11pune_genvgfVjRRR6fragelP2REF3_,%function
 b__MAFg3__113onfvp_bfgernzVjAF_11pune_genvgfVjRRR6fragelP2REF3_:
 nop
@@ -3178,7 +3178,7 @@
 b__MGVAFg3__119__funerq_jrnx_pbhagR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRR3trgREAF_15onfvp_fgernzohsVpF2_RRp
+.weak b__MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRR3trgREAF_15onfvp_fgernzohsVpF2_RRp
 .type b__MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRR3trgREAF_15onfvp_fgernzohsVpF2_RRp,%function
 b__MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRR3trgREAF_15onfvp_fgernzohsVpF2_RRp:
 nop
@@ -3208,7 +3208,7 @@
 b__MGVi:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAXFg3__18gvzr_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR11__trg_zbaguREvEF4_F4_EwEXAF_5pglcrVjRR
+.weak b__MAXFg3__18gvzr_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR11__trg_zbaguREvEF4_F4_EwEXAF_5pglcrVjRR
 .type b__MAXFg3__18gvzr_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR11__trg_zbaguREvEF4_F4_EwEXAF_5pglcrVjRR,%function
 b__MAXFg3__18gvzr_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR11__trg_zbaguREvEF4_F4_EwEXAF_5pglcrVjRR:
 nop
@@ -3223,12 +3223,12 @@
 b__MGVj:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__113onfvp_bfgernzVpAF_11pune_genvgfVpRRR6fragelQ1Ri
+.weak b__MAFg3__113onfvp_bfgernzVpAF_11pune_genvgfVpRRR6fragelQ1Ri
 .type b__MAFg3__113onfvp_bfgernzVpAF_11pune_genvgfVpRRR6fragelQ1Ri,%function
 b__MAFg3__113onfvp_bfgernzVpAF_11pune_genvgfVpRRR6fragelQ1Ri:
 nop
 .text
-.globl b__MGi0_a24_AFg3__113onfvp_bfgernzVjAF_11pune_genvgfVjRRRQ1Ri
+.weak b__MGi0_a24_AFg3__113onfvp_bfgernzVjAF_11pune_genvgfVjRRRQ1Ri
 .type b__MGi0_a24_AFg3__113onfvp_bfgernzVjAF_11pune_genvgfVjRRRQ1Ri,%function
 b__MGi0_a24_AFg3__113onfvp_bfgernzVjAF_11pune_genvgfVjRRRQ1Ri:
 nop
@@ -3263,7 +3263,7 @@
 b__MAFg3__17cebzvfrViRP1Ri:
 nop
 .text
-.globl b__MAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRR5fchgpRp
+.weak b__MAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRR5fchgpRp
 .type b__MAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRR5fchgpRp,%function
 b__MAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRR5fchgpRp:
 nop
@@ -3318,12 +3318,12 @@
 b__MAFg3__15zhgrk4ybpxRi:
 nop
 .text
-.globl b__MAFg3__113onfvp_bfgernzVpAF_11pune_genvgfVpRRRyfRCXi
+.weak b__MAFg3__113onfvp_bfgernzVpAF_11pune_genvgfVpRRRyfRCXi
 .type b__MAFg3__113onfvp_bfgernzVpAF_11pune_genvgfVpRRRyfRCXi,%function
 b__MAFg3__113onfvp_bfgernzVpAF_11pune_genvgfVpRRRyfRCXi:
 nop
 .text
-.globl b__MAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRRP2REXF3_
+.weak b__MAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRRP2REXF3_
 .type b__MAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRRP2REXF3_,%function
 b__MAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRRP2REXF3_:
 nop
@@ -3343,7 +3343,7 @@
 b__MAFg3__119__funerq_zhgrk_onfr11ybpx_funerqRi:
 nop
 .text
-.globl b__MAFg3__127__vafregvba_fbeg_vapbzcyrgrVEAF_6__yrffVnnRRCnRRoG0_F5_G_
+.weak b__MAFg3__127__vafregvba_fbeg_vapbzcyrgrVEAF_6__yrffVnnRRCnRRoG0_F5_G_
 .type b__MAFg3__127__vafregvba_fbeg_vapbzcyrgrVEAF_6__yrffVnnRRCnRRoG0_F5_G_,%function
 b__MAFg3__127__vafregvba_fbeg_vapbzcyrgrVEAF_6__yrffVnnRRCnRRoG0_F5_G_:
 nop
@@ -3363,7 +3363,7 @@
 b__MAFg3__117__jvqra_sebz_hgs8VYz32RRQ0Ri:
 nop
 .data
-.globl b__MGFAFg3__120__gvzr_trg_p_fgbentrVjRR
+.weak b__MGFAFg3__120__gvzr_trg_p_fgbentrVjRR
 .type b__MGFAFg3__120__gvzr_trg_p_fgbentrVjRR,%object
 b__MGFAFg3__120__gvzr_trg_p_fgbentrVjRR:
 .space __SIZEOF_POINTER__
@@ -3373,7 +3373,7 @@
 b__MAFg3__111ertrk_reebeP1RAF_15ertrk_pbafgnagf10reebe_glcrR:
 nop
 .text
-.globl b__MAFg3__111__zbarl_trgVjR13__tngure_vasbRoEXAF_6ybpnyrREAF_10zbarl_onfr7cnggreaREjF8_EAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRREAF9_VjAFN_VjRRAFP_VjRRRRFW_FW_Ev
+.weak b__MAFg3__111__zbarl_trgVjR13__tngure_vasbRoEXAF_6ybpnyrREAF_10zbarl_onfr7cnggreaREjF8_EAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRREAF9_VjAFN_VjRRAFP_VjRRRRFW_FW_Ev
 .type b__MAFg3__111__zbarl_trgVjR13__tngure_vasbRoEXAF_6ybpnyrREAF_10zbarl_onfr7cnggreaREjF8_EAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRREAF9_VjAFN_VjRRAFP_VjRRRRFW_FW_Ev,%function
 b__MAFg3__111__zbarl_trgVjR13__tngure_vasbRoEXAF_6ybpnyrREAF_10zbarl_onfr7cnggreaREjF8_EAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRREAF9_VjAFN_VjRRAFP_VjRRRRFW_FW_Ev:
 nop
@@ -3403,7 +3403,7 @@
 b__MAXFg3__115__pbqrpig_hgs16VQfYo0RR13qb_znk_yratguRi:
 nop
 .text
-.globl b__MAXFg3__18gvzr_chgVpAF_19bfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR6qb_chgRF4_EAF_8vbf_onfrRpCX2gzpp
+.weak b__MAXFg3__18gvzr_chgVpAF_19bfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR6qb_chgRF4_EAF_8vbf_onfrRpCX2gzpp
 .type b__MAXFg3__18gvzr_chgVpAF_19bfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR6qb_chgRF4_EAF_8vbf_onfrRpCX2gzpp,%function
 b__MAXFg3__18gvzr_chgVpAF_19bfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR6qb_chgRF4_EAF_8vbf_onfrRpCX2gzpp:
 nop
@@ -3418,7 +3418,7 @@
 b__MAXFg3__115__pbqrpig_hgs16VQfYo0RR16qb_nyjnlf_abpbaiRi:
 nop
 .text
-.globl b__MAFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRR6__vavgRzj
+.weak b__MAFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRR6__vavgRzj
 .type b__MAFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRR6__vavgRzj,%function
 b__MAFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRR6__vavgRzj:
 nop
@@ -3428,17 +3428,17 @@
 b__MAFg3__16puebab12flfgrz_pybpx3abjRi:
 nop
 .text
-.globl b__MAXFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRR6trgybpRi
+.weak b__MAXFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRR6trgybpRi
 .type b__MAXFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRR6trgybpRi,%function
 b__MAXFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRR6trgybpRi:
 nop
 .text
-.globl b__MAFg3__113onfvp_bfgernzVpAF_11pune_genvgfVpRRR6fragelQ2Ri
+.weak b__MAFg3__113onfvp_bfgernzVpAF_11pune_genvgfVpRRR6fragelQ2Ri
 .type b__MAFg3__113onfvp_bfgernzVpAF_11pune_genvgfVpRRR6fragelQ2Ri,%function
 b__MAFg3__113onfvp_bfgernzVpAF_11pune_genvgfVpRRR6fragelQ2Ri:
 nop
 .text
-.globl b__MAXFg3__17pbyyngrVpR7qb_unfuRCXpF3_
+.weak b__MAXFg3__17pbyyngrVpR7qb_unfuRCXpF3_
 .type b__MAXFg3__17pbyyngrVpR7qb_unfuRCXpF3_,%function
 b__MAXFg3__17pbyyngrVpR7qb_unfuRCXpF3_:
 nop
@@ -3458,12 +3458,12 @@
 b__MAFg3__18vbf_onfr9hccrepnfrR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAXFg3__110zbarlchapgVpYo1RR16qb_gubhfnaqf_frcRi
+.weak b__MAXFg3__110zbarlchapgVpYo1RR16qb_gubhfnaqf_frcRi
 .type b__MAXFg3__110zbarlchapgVpYo1RR16qb_gubhfnaqf_frcRi,%function
 b__MAXFg3__110zbarlchapgVpYo1RR16qb_gubhfnaqf_frcRi:
 nop
 .data
-.globl b__MGVAFg3__117zbarlchapg_olanzrVjYo0RRR
+.weak b__MGVAFg3__117zbarlchapg_olanzrVjYo0RRR
 .type b__MGVAFg3__117zbarlchapg_olanzrVjYo0RRR,%object
 b__MGVAFg3__117zbarlchapg_olanzrVjYo0RRR:
 .space __SIZEOF_POINTER__
@@ -3478,7 +3478,7 @@
 b__MAFg3__114__funerq_pbhag16__eryrnfr_funerqRi:
 nop
 .data
-.globl b__MGIAFg3__113onfvp_bfgernzVpAF_11pune_genvgfVpRRRR
+.weak b__MGIAFg3__113onfvp_bfgernzVpAF_11pune_genvgfVpRRRR
 .type b__MGIAFg3__113onfvp_bfgernzVpAF_11pune_genvgfVpRRRR,%object
 b__MGIAFg3__113onfvp_bfgernzVpAF_11pune_genvgfVpRRRR:
 .space __SIZEOF_POINTER__
@@ -3503,12 +3503,12 @@
 b__MAFg13ehagvzr_reebeQ2Ri:
 nop
 .text
-.globl b__MAFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR5renfrRzz
+.weak b__MAFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR5renfrRzz
 .type b__MAFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR5renfrRzz,%function
 b__MAFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR5renfrRzz:
 nop
 .data
-.globl b__MGVAFg3__17ahz_chgVpAF_19bfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRRR
+.weak b__MGVAFg3__17ahz_chgVpAF_19bfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRRR
 .type b__MGVAFg3__17ahz_chgVpAF_19bfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRRR,%object
 b__MGVAFg3__17ahz_chgVpAF_19bfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRRR:
 .space __SIZEOF_POINTER__
@@ -3558,12 +3558,12 @@
 b__MAFg3__112cynprubyqref3_10R:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAXFg3__110zbarlchapgVpYo0RR16qb_artngvir_fvtaRi
+.weak b__MAXFg3__110zbarlchapgVpYo0RR16qb_artngvir_fvtaRi
 .type b__MAXFg3__110zbarlchapgVpYo0RR16qb_artngvir_fvtaRi,%function
 b__MAXFg3__110zbarlchapgVpYo0RR16qb_artngvir_fvtaRi:
 nop
 .data
-.globl b__MGIAFg3__17ahz_chgVjAF_19bfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRRR
+.weak b__MGIAFg3__17ahz_chgVjAF_19bfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRRR
 .type b__MGIAFg3__17ahz_chgVjAF_19bfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRRR,%object
 b__MGIAFg3__17ahz_chgVjAF_19bfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRRR:
 .space __SIZEOF_POINTER__
@@ -3573,27 +3573,27 @@
 b__MAFg3__112flfgrz_reebeP2RvEXAF_14reebe_pngrtbelREXAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR:
 nop
 .text
-.globl b__MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRR4ernqRCpy
+.weak b__MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRR4ernqRCpy
 .type b__MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRR4ernqRCpy,%function
 b__MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRR4ernqRCpy:
 nop
 .text
-.globl b__MAFg3__113onfvp_bfgernzVjAF_11pune_genvgfVjRRRyfRo
+.weak b__MAFg3__113onfvp_bfgernzVjAF_11pune_genvgfVjRRRyfRo
 .type b__MAFg3__113onfvp_bfgernzVjAF_11pune_genvgfVjRRRyfRo,%function
 b__MAFg3__113onfvp_bfgernzVjAF_11pune_genvgfVjRRRyfRo:
 nop
 .text
-.globl b__MAFg3__19onfvp_vbfVpAF_11pune_genvgfVpRRRQ0Ri
+.weak b__MAFg3__19onfvp_vbfVpAF_11pune_genvgfVpRRRQ0Ri
 .type b__MAFg3__19onfvp_vbfVpAF_11pune_genvgfVpRRRQ0Ri,%function
 b__MAFg3__19onfvp_vbfVpAF_11pune_genvgfVpRRRQ0Ri:
 nop
 .text
-.globl b__MAXFg3__110zbarlchapgVpYo0RR13qb_cbf_sbezngRi
+.weak b__MAXFg3__110zbarlchapgVpYo0RR13qb_cbf_sbezngRi
 .type b__MAXFg3__110zbarlchapgVpYo0RR13qb_cbf_sbezngRi,%function
 b__MAXFg3__110zbarlchapgVpYo0RR13qb_cbf_sbezngRi:
 nop
 .text
-.globl b__MAXFg3__110zbarlchapgVjYo1RR13qb_art_sbezngRi
+.weak b__MAXFg3__110zbarlchapgVjYo1RR13qb_art_sbezngRi
 .type b__MAXFg3__110zbarlchapgVjYo1RR13qb_art_sbezngRi,%function
 b__MAXFg3__110zbarlchapgVjYo1RR13qb_art_sbezngRi:
 nop
@@ -3603,12 +3603,12 @@
 b___pkn_cher_iveghny:
 nop
 .text
-.globl b__MAFg3__113onfvp_bfgernzVjAF_11pune_genvgfVjRRRyfRq
+.weak b__MAFg3__113onfvp_bfgernzVjAF_11pune_genvgfVjRRRyfRq
 .type b__MAFg3__113onfvp_bfgernzVjAF_11pune_genvgfVjRRRyfRq,%function
 b__MAFg3__113onfvp_bfgernzVjAF_11pune_genvgfVjRRRyfRq:
 nop
 .text
-.globl b__MAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRR9chofrgohsRCpy
+.weak b__MAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRR9chofrgohsRCpy
 .type b__MAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRR9chofrgohsRCpy,%function
 b__MAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRR9chofrgohsRCpy:
 nop
@@ -3623,12 +3623,12 @@
 b__MAFg3__18ahzchapgVjRQ0Ri:
 nop
 .text
-.globl b__MAFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRR6nffvtaREXF5_zz
+.weak b__MAFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRR6nffvtaREXF5_zz
 .type b__MAFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRR6nffvtaREXF5_zz,%function
 b__MAFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRR6nffvtaREXF5_zz:
 nop
 .text
-.globl b__MAFg3__113onfvp_bfgernzVjAF_11pune_genvgfVjRRRyfRr
+.weak b__MAFg3__113onfvp_bfgernzVjAF_11pune_genvgfVjRRRyfRr
 .type b__MAFg3__113onfvp_bfgernzVjAF_11pune_genvgfVjRRRyfRr,%function
 b__MAFg3__113onfvp_bfgernzVjAF_11pune_genvgfVjRRRyfRr:
 nop
@@ -3648,12 +3648,12 @@
 b__MGFAFg12rkcrevzragny15shaqnzragnyf_i112onq_nal_pnfgR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__113onfvp_bfgernzVjAF_11pune_genvgfVjRRRyfRs
+.weak b__MAFg3__113onfvp_bfgernzVjAF_11pune_genvgfVjRRRyfRs
 .type b__MAFg3__113onfvp_bfgernzVjAF_11pune_genvgfVjRRRyfRs,%function
 b__MAFg3__113onfvp_bfgernzVjAF_11pune_genvgfVjRRRyfRs:
 nop
 .data
-.globl b__MGVAFg3__111__zbarl_trgVpRR
+.weak b__MGVAFg3__111__zbarl_trgVpRR
 .type b__MGVAFg3__111__zbarl_trgVpRR,%object
 b__MGVAFg3__111__zbarl_trgVpRR:
 .space __SIZEOF_POINTER__
@@ -3688,7 +3688,7 @@
 b__MAFg3__18__fc_zhg6haybpxRi:
 nop
 .text
-.globl b__MAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRRP2RCAF_15onfvp_fgernzohsVjF2_RR
+.weak b__MAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRRP2RCAF_15onfvp_fgernzohsVjF2_RR
 .type b__MAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRRP2RCAF_15onfvp_fgernzohsVjF2_RR,%function
 b__MAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRRP2RCAF_15onfvp_fgernzohsVjF2_RR:
 nop
@@ -3698,17 +3698,17 @@
 b__MAXFg3__18ahzchapgVpR11qb_gehranzrRi:
 nop
 .data
-.globl b__MAFg3__18gvzr_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR2vqR
+.weak b__MAFg3__18gvzr_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR2vqR
 .type b__MAFg3__18gvzr_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR2vqR,%object
 b__MAFg3__18gvzr_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR2vqR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MAFg3__18gvzr_chgVpAF_19bfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR2vqR
+.weak b__MAFg3__18gvzr_chgVpAF_19bfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR2vqR
 .type b__MAFg3__18gvzr_chgVpAF_19bfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR2vqR,%object
 b__MAFg3__18gvzr_chgVpAF_19bfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR2vqR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIAFg3__19zbarl_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRRR
+.weak b__MGIAFg3__19zbarl_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRRR
 .type b__MGIAFg3__19zbarl_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRRR,%object
 b__MGIAFg3__19zbarl_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRRR:
 .space __SIZEOF_POINTER__
@@ -3718,7 +3718,7 @@
 b__MAFg3__14fgbvREXAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRCzv:
 nop
 .text
-.globl b__MAFg3__113onfvp_bfgernzVjAF_11pune_genvgfVjRRRyfRv
+.weak b__MAFg3__113onfvp_bfgernzVjAF_11pune_genvgfVjRRRyfRv
 .type b__MAFg3__113onfvp_bfgernzVjAF_11pune_genvgfVjRRRyfRv,%function
 b__MAFg3__113onfvp_bfgernzVjAF_11pune_genvgfVjRRRyfRv:
 nop
@@ -3728,27 +3728,27 @@
 b__MAFg9onq_nyybpP1Ri:
 nop
 .text
-.globl b__MAFg3__113onfvp_bfgernzVjAF_11pune_genvgfVjRRRyfRCAF_15onfvp_fgernzohsVjF2_RR
+.weak b__MAFg3__113onfvp_bfgernzVjAF_11pune_genvgfVjRRRyfRCAF_15onfvp_fgernzohsVjF2_RR
 .type b__MAFg3__113onfvp_bfgernzVjAF_11pune_genvgfVjRRRyfRCAF_15onfvp_fgernzohsVjF2_RR,%function
 b__MAFg3__113onfvp_bfgernzVjAF_11pune_genvgfVjRRRyfRCAF_15onfvp_fgernzohsVjF2_RR:
 nop
 .text
-.globl b__MAFg3__113onfvp_bfgernzVjAF_11pune_genvgfVjRRRyfRw
+.weak b__MAFg3__113onfvp_bfgernzVjAF_11pune_genvgfVjRRRyfRw
 .type b__MAFg3__113onfvp_bfgernzVjAF_11pune_genvgfVjRRRyfRw,%function
 b__MAFg3__113onfvp_bfgernzVjAF_11pune_genvgfVjRRRyfRw:
 nop
 .text
-.globl b__MAFg3__115onfvp_fgernzohsVjAF_11pune_genvgfVjRRR7frrxcbfRAF_4scbfV9zofgngr_gRRw
+.weak b__MAFg3__115onfvp_fgernzohsVjAF_11pune_genvgfVjRRR7frrxcbfRAF_4scbfV9zofgngr_gRRw
 .type b__MAFg3__115onfvp_fgernzohsVjAF_11pune_genvgfVjRRR7frrxcbfRAF_4scbfV9zofgngr_gRRw,%function
 b__MAFg3__115onfvp_fgernzohsVjAF_11pune_genvgfVjRRR7frrxcbfRAF_4scbfV9zofgngr_gRRw:
 nop
 .data
-.globl b__MGIAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRRR
+.weak b__MGIAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRRR
 .type b__MGIAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRRR,%object
 b__MGIAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRRR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MAFg3__110zbarlchapgVpYo0RR2vqR
+.weak b__MAFg3__110zbarlchapgVpYo0RR2vqR
 .type b__MAFg3__110zbarlchapgVpYo0RR2vqR,%object
 b__MAFg3__110zbarlchapgVpYo0RR2vqR:
 .space __SIZEOF_POINTER__
@@ -3778,32 +3778,32 @@
 b__MAFg3__117__jvqra_sebz_hgs8VYz32RRQ2Ri:
 nop
 .text
-.globl b__MAFg3__113onfvp_bfgernzVjAF_11pune_genvgfVjRRRyfRy
+.weak b__MAFg3__113onfvp_bfgernzVjAF_11pune_genvgfVjRRRyfRy
 .type b__MAFg3__113onfvp_bfgernzVjAF_11pune_genvgfVjRRRyfRy,%function
 b__MAFg3__113onfvp_bfgernzVjAF_11pune_genvgfVjRRRyfRy:
 nop
 .text
-.globl b__MAXFg3__117zbarlchapg_olanzrVpYo0RR16qb_gubhfnaqf_frcRi
+.weak b__MAXFg3__117zbarlchapg_olanzrVpYo0RR16qb_gubhfnaqf_frcRi
 .type b__MAXFg3__117zbarlchapg_olanzrVpYo0RR16qb_gubhfnaqf_frcRi,%function
 b__MAXFg3__117zbarlchapg_olanzrVpYo0RR16qb_gubhfnaqf_frcRi:
 nop
 .text
-.globl b__MAFg3__16__fbegVEAF_6__yrffVssRRCsRRiG0_F5_G_
+.weak b__MAFg3__16__fbegVEAF_6__yrffVssRRCsRRiG0_F5_G_
 .type b__MAFg3__16__fbegVEAF_6__yrffVssRRCsRRiG0_F5_G_,%function
 b__MAFg3__16__fbegVEAF_6__yrffVssRRCsRRiG0_F5_G_:
 nop
 .text
-.globl b__MAFg3__113onfvp_bfgernzVjAF_11pune_genvgfVjRRRyfRz
+.weak b__MAFg3__113onfvp_bfgernzVjAF_11pune_genvgfVjRRRyfRz
 .type b__MAFg3__113onfvp_bfgernzVjAF_11pune_genvgfVjRRRyfRz,%function
 b__MAFg3__113onfvp_bfgernzVjAF_11pune_genvgfVjRRRyfRz:
 nop
 .text
-.globl b__MAFg3__19onfvp_vbfVpAF_11pune_genvgfVpRRRQ1Ri
+.weak b__MAFg3__19onfvp_vbfVpAF_11pune_genvgfVpRRRQ1Ri
 .type b__MAFg3__19onfvp_vbfVpAF_11pune_genvgfVpRRRQ1Ri,%function
 b__MAFg3__19onfvp_vbfVpAF_11pune_genvgfVpRRRQ1Ri:
 nop
 .text
-.globl b__MAXFg3__17pbyyngrVjR7qb_unfuRCXjF3_
+.weak b__MAXFg3__17pbyyngrVjR7qb_unfuRCXjF3_
 .type b__MAXFg3__17pbyyngrVjR7qb_unfuRCXjF3_,%function
 b__MAXFg3__17pbyyngrVjR7qb_unfuRCXjF3_:
 nop
@@ -3818,7 +3818,7 @@
 b__MAFg3__18__p_abqrQ0Ri:
 nop
 .data
-.globl b__MGIAFg3__18zrffntrfVjRR
+.weak b__MGIAFg3__18zrffntrfVjRR
 .type b__MGIAFg3__18zrffntrfVjRR,%object
 b__MGIAFg3__18zrffntrfVjRR:
 .space __SIZEOF_POINTER__
@@ -3828,7 +3828,7 @@
 b__MAFg3__111__yvopcc_qo15__vgrengbe_pbclRCiCXi:
 nop
 .text
-.globl b__MAFg3__113onfvp_bfgernzVjAF_11pune_genvgfVjRRRyfRCSEAF_8vbf_onfrRF5_R
+.weak b__MAFg3__113onfvp_bfgernzVjAF_11pune_genvgfVjRRRyfRCSEAF_8vbf_onfrRF5_R
 .type b__MAFg3__113onfvp_bfgernzVjAF_11pune_genvgfVjRRRyfRCSEAF_8vbf_onfrRF5_R,%function
 b__MAFg3__113onfvp_bfgernzVjAF_11pune_genvgfVjRRRyfRCSEAF_8vbf_onfrRF5_R:
 nop
@@ -3848,7 +3848,7 @@
 b__MGFAFg3__17pbqrpigVQvp9zofgngr_gRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAXFg3__117zbarlchapg_olanzrVpYo1RR13qb_art_sbezngRi
+.weak b__MAXFg3__117zbarlchapg_olanzrVpYo1RR13qb_art_sbezngRi
 .type b__MAXFg3__117zbarlchapg_olanzrVpYo1RR13qb_art_sbezngRi,%function
 b__MAXFg3__117zbarlchapg_olanzrVpYo1RR13qb_art_sbezngRi:
 nop
@@ -3858,17 +3858,17 @@
 b__MAFg3__15pglcrVjRQ0Ri:
 nop
 .text
-.globl b__MAFg3__19onfvp_vbfVpAF_11pune_genvgfVpRRR7pbclszgREXF3_
+.weak b__MAFg3__19onfvp_vbfVpAF_11pune_genvgfVpRRR7pbclszgREXF3_
 .type b__MAFg3__19onfvp_vbfVpAF_11pune_genvgfVpRRR7pbclszgREXF3_,%function
 b__MAFg3__19onfvp_vbfVpAF_11pune_genvgfVpRRR7pbclszgREXF3_:
 nop
 .text
-.globl b__MGi0_a24_AFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRRQ0Ri
+.weak b__MGi0_a24_AFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRRQ0Ri
 .type b__MGi0_a24_AFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRRQ0Ri,%function
 b__MGi0_a24_AFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRRQ0Ri:
 nop
 .text
-.globl b__MAXFg3__18gvzr_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR13__trg_jrrxqnlREvEF4_F4_EwEXAF_5pglcrVpRR
+.weak b__MAXFg3__18gvzr_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR13__trg_jrrxqnlREvEF4_F4_EwEXAF_5pglcrVpRR
 .type b__MAXFg3__18gvzr_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR13__trg_jrrxqnlREvEF4_F4_EwEXAF_5pglcrVpRR,%function
 b__MAXFg3__18gvzr_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR13__trg_jrrxqnlREvEF4_F4_EwEXAF_5pglcrVpRR:
 nop
@@ -3888,12 +3888,12 @@
 b__MGVAFg3__112shgher_reebeR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRRefRCSEAF_9onfvp_vbfVpF2_RRF6_R
+.weak b__MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRRefRCSEAF_9onfvp_vbfVpF2_RRF6_R
 .type b__MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRRefRCSEAF_9onfvp_vbfVpF2_RRF6_R,%function
 b__MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRRefRCSEAF_9onfvp_vbfVpF2_RRF6_R:
 nop
 .text
-.globl b__MAFg3__113onfvp_bfgernzVjAF_11pune_genvgfVjRRRyfRf
+.weak b__MAFg3__113onfvp_bfgernzVjAF_11pune_genvgfVjRRRyfRf
 .type b__MAFg3__113onfvp_bfgernzVjAF_11pune_genvgfVjRRRyfRf,%function
 b__MAFg3__113onfvp_bfgernzVjAF_11pune_genvgfVjRRRyfRf:
 nop
@@ -3903,12 +3903,12 @@
 b__MAXFg3__118__gvzr_trg_fgbentrVpR15__qb_qngr_beqreRi:
 nop
 .text
-.globl b__MAXFg3__18zrffntrfVpR6qb_trgRyvvEXAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
+.weak b__MAXFg3__18zrffntrfVpR6qb_trgRyvvEXAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
 .type b__MAXFg3__18zrffntrfVpR6qb_trgRyvvEXAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR,%function
 b__MAXFg3__18zrffntrfVpR6qb_trgRyvvEXAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR:
 nop
 .text
-.globl b__MAFg3__113onfvp_bfgernzVjAF_11pune_genvgfVjRRRyfRg
+.weak b__MAFg3__113onfvp_bfgernzVjAF_11pune_genvgfVjRRRyfRg
 .type b__MAFg3__113onfvp_bfgernzVjAF_11pune_genvgfVjRRRyfRg,%function
 b__MAFg3__113onfvp_bfgernzVjAF_11pune_genvgfVjRRRyfRg:
 nop
@@ -3928,7 +3928,7 @@
 b__MAFg3__110__gvzr_chgP1RCXp:
 nop
 .data
-.globl b__MGFAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRRR
+.weak b__MGFAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRRR
 .type b__MGFAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRRR,%object
 b__MGFAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRRR:
 .space __SIZEOF_POINTER__
@@ -3938,7 +3938,7 @@
 b__MAFg3__116__purpx_tebhcvatREXAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRCwF8_Ew:
 nop
 .data
-.globl b__MAFg3__17pbyyngrVpR2vqR
+.weak b__MAFg3__17pbyyngrVpR2vqR
 .type b__MAFg3__17pbyyngrVpR2vqR,%object
 b__MAFg3__17pbyyngrVpR2vqR:
 .space __SIZEOF_POINTER__
@@ -3953,17 +3953,17 @@
 b__MGFAFg3__115__pbqrpig_hgs16VQvYo0RRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRRefRCSEAF_9onfvp_vbfVjF2_RRF6_R
+.weak b__MAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRRefRCSEAF_9onfvp_vbfVjF2_RRF6_R
 .type b__MAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRRefRCSEAF_9onfvp_vbfVjF2_RRF6_R,%function
 b__MAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRRefRCSEAF_9onfvp_vbfVjF2_RRF6_R:
 nop
 .text
-.globl b__MAFg3__113onfvp_bfgernzVjAF_11pune_genvgfVjRRRyfRk
+.weak b__MAFg3__113onfvp_bfgernzVjAF_11pune_genvgfVjRRRyfRk
 .type b__MAFg3__113onfvp_bfgernzVjAF_11pune_genvgfVjRRRyfRk,%function
 b__MAFg3__113onfvp_bfgernzVjAF_11pune_genvgfVjRRRyfRk:
 nop
 .text
-.globl b__MAFg3__19onfvp_vbfVpAF_11pune_genvgfVpRRRQ2Ri
+.weak b__MAFg3__19onfvp_vbfVpAF_11pune_genvgfVpRRRQ2Ri
 .type b__MAFg3__19onfvp_vbfVpAF_11pune_genvgfVpRRRQ2Ri,%function
 b__MAFg3__19onfvp_vbfVpAF_11pune_genvgfVpRRRQ2Ri:
 nop
@@ -3973,22 +3973,22 @@
 b__MAFg3__18__p_abqrQ1Ri:
 nop
 .text
-.globl b__MAFg3__113onfvp_bfgernzVjAF_11pune_genvgfVjRRRyfRl
+.weak b__MAFg3__113onfvp_bfgernzVjAF_11pune_genvgfVjRRRyfRl
 .type b__MAFg3__113onfvp_bfgernzVjAF_11pune_genvgfVjRRRyfRl,%function
 b__MAFg3__113onfvp_bfgernzVjAF_11pune_genvgfVjRRRyfRl:
 nop
 .text
-.globl b__MAXFg3__17ahz_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR6qb_trgRF4_F4_EAF_8vbf_onfrREwECi
+.weak b__MAXFg3__17ahz_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR6qb_trgRF4_F4_EAF_8vbf_onfrREwECi
 .type b__MAXFg3__17ahz_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR6qb_trgRF4_F4_EAF_8vbf_onfrREwECi,%function
 b__MAXFg3__17ahz_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR6qb_trgRF4_F4_EAF_8vbf_onfrREwECi:
 nop
 .text
-.globl b__MAXFg3__18gvzr_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR17__trg_juvgr_fcnprREF4_F4_EwEXAF_5pglcrVpRR
+.weak b__MAXFg3__18gvzr_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR17__trg_juvgr_fcnprREF4_F4_EwEXAF_5pglcrVpRR
 .type b__MAXFg3__18gvzr_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR17__trg_juvgr_fcnprREF4_F4_EwEXAF_5pglcrVpRR,%function
 b__MAXFg3__18gvzr_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR17__trg_juvgr_fcnprREF4_F4_EwEXAF_5pglcrVpRR:
 nop
 .text
-.globl b__MAFg3__1cyVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_12onfvp_fgevatVG_G0_G1_RRCXF6_EXF9_
+.weak b__MAFg3__1cyVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_12onfvp_fgevatVG_G0_G1_RRCXF6_EXF9_
 .type b__MAFg3__1cyVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_12onfvp_fgevatVG_G0_G1_RRCXF6_EXF9_,%function
 b__MAFg3__1cyVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_12onfvp_fgevatVG_G0_G1_RRCXF6_EXF9_:
 nop
@@ -3998,7 +3998,7 @@
 b__MGVAFg3__114pbyyngr_olanzrVjRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR6nffvtaREXF5_zz
+.weak b__MAFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR6nffvtaREXF5_zz
 .type b__MAFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR6nffvtaREXF5_zz,%function
 b__MAFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR6nffvtaREXF5_zz:
 nop
@@ -4013,12 +4013,12 @@
 b__MAFg3__18ahzchapgVjRQ2Ri:
 nop
 .text
-.globl b__MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRR3trgREp
+.weak b__MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRR3trgREp
 .type b__MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRR3trgREp,%function
 b__MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRR3trgREp:
 nop
 .text
-.globl b__MAFg3__115onfvp_fgernzohsVjAF_11pune_genvgfVjRRR9haqresybjRi
+.weak b__MAFg3__115onfvp_fgernzohsVjAF_11pune_genvgfVjRRR9haqresybjRi
 .type b__MAFg3__115onfvp_fgernzohsVjAF_11pune_genvgfVjRRR9haqresybjRi,%function
 b__MAFg3__115onfvp_fgernzohsVjAF_11pune_genvgfVjRRR9haqresybjRi:
 nop
@@ -4028,7 +4028,7 @@
 b__MAFg3__15pglcrVjRQ1Ri:
 nop
 .data
-.globl b__MGFAFg3__111__zbarl_trgVpRR
+.weak b__MGFAFg3__111__zbarl_trgVpRR
 .type b__MGFAFg3__111__zbarl_trgVpRR,%object
 b__MGFAFg3__111__zbarl_trgVpRR:
 .space __SIZEOF_POINTER__
@@ -4038,17 +4038,17 @@
 b__MAFg3__15zhgrk6haybpxRi:
 nop
 .data
-.globl b__MGVAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRRR
+.weak b__MGVAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRRR
 .type b__MGVAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRRR,%object
 b__MGVAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MGi0_a24_AFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRRQ1Ri
+.weak b__MGi0_a24_AFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRRQ1Ri
 .type b__MGi0_a24_AFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRRQ1Ri,%function
 b__MGi0_a24_AFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRRQ1Ri:
 nop
 .text
-.globl b__MAXFg3__110zbarlchapgVjYo1RR16qb_artngvir_fvtaRi
+.weak b__MAXFg3__110zbarlchapgVjYo1RR16qb_artngvir_fvtaRi
 .type b__MAXFg3__110zbarlchapgVjYo1RR16qb_artngvir_fvtaRi,%function
 b__MAXFg3__110zbarlchapgVjYo1RR16qb_artngvir_fvtaRi:
 nop
@@ -4058,7 +4058,7 @@
 b__MAXFg3__120__pbqrpig_hgs8_hgs16VQvR13qb_znk_yratguRi:
 nop
 .data
-.globl b__MAFg3__110zbarlchapgVpYo1RR2vqR
+.weak b__MAFg3__110zbarlchapgVpYo1RR2vqR
 .type b__MAFg3__110zbarlchapgVpYo1RR2vqR,%object
 b__MAFg3__110zbarlchapgVpYo1RR2vqR:
 .space __SIZEOF_POINTER__
@@ -4068,7 +4068,7 @@
 b__MGFAFg3__115__pbqrpig_hgs16VjYo0RRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRR21__tebj_ol_naq_ercynprRzzzzzzCXj
+.weak b__MAFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRR21__tebj_ol_naq_ercynprRzzzzzzCXj
 .type b__MAFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRR21__tebj_ol_naq_ercynprRzzzzzzCXj,%function
 b__MAFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRR21__tebj_ol_naq_ercynprRzzzzzzCXj:
 nop
@@ -4098,7 +4098,7 @@
 b__MAFg13ehagvzr_reebeP2REXAFg3__112onfvp_fgevatVpAF0_11pune_genvgfVpRRAF0_9nyybpngbeVpRRRR:
 nop
 .text
-.globl b__MGi0_a24_AFg3__113onfvp_bfgernzVpAF_11pune_genvgfVpRRRQ0Ri
+.weak b__MGi0_a24_AFg3__113onfvp_bfgernzVpAF_11pune_genvgfVpRRRQ0Ri
 .type b__MGi0_a24_AFg3__113onfvp_bfgernzVpAF_11pune_genvgfVpRRRQ0Ri,%function
 b__MGi0_a24_AFg3__113onfvp_bfgernzVpAF_11pune_genvgfVpRRRQ0Ri:
 nop
@@ -4123,17 +4123,17 @@
 b__MGFAFg3__120__pbqrpig_hgs8_hgs16VQvRR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIAFg3__19zbarl_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRRR
+.weak b__MGIAFg3__19zbarl_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRRR
 .type b__MGIAFg3__19zbarl_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRRR,%object
 b__MGIAFg3__19zbarl_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRR6nffvtaRzj
+.weak b__MAFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRR6nffvtaRzj
 .type b__MAFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRR6nffvtaRzj,%function
 b__MAFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRR6nffvtaRzj:
 nop
 .text
-.globl b__MAFg3__113onfvp_bfgernzVpAF_11pune_genvgfVpRRR6fragelP2REF3_
+.weak b__MAFg3__113onfvp_bfgernzVpAF_11pune_genvgfVpRRR6fragelP2REF3_
 .type b__MAFg3__113onfvp_bfgernzVpAF_11pune_genvgfVpRRR6fragelP2REF3_,%function
 b__MAFg3__113onfvp_bfgernzVpAF_11pune_genvgfVpRRR6fragelP2REF3_:
 nop
@@ -4143,7 +4143,7 @@
 b__MAFg3__17pbqrpigVjp9zofgngr_gR2vqR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIAFg3__115gvzr_trg_olanzrVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRRR
+.weak b__MGIAFg3__115gvzr_trg_olanzrVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRRR
 .type b__MGIAFg3__115gvzr_trg_olanzrVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRRR,%object
 b__MGIAFg3__115gvzr_trg_olanzrVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRRR:
 .space __SIZEOF_POINTER__
@@ -4158,7 +4158,7 @@
 b__MAXFg3__114__pbqrpig_hgs8VQfR10qb_hafuvsgRE9zofgngr_gCpF4_EF4_:
 nop
 .text
-.globl b__MAXFg3__18gvzr_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR13__trg_12_ubheREvEF4_F4_EwEXAF_5pglcrVjRR
+.weak b__MAXFg3__18gvzr_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR13__trg_12_ubheREvEF4_F4_EwEXAF_5pglcrVjRR
 .type b__MAXFg3__18gvzr_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR13__trg_12_ubheREvEF4_F4_EwEXAF_5pglcrVjRR,%function
 b__MAXFg3__18gvzr_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR13__trg_12_ubheREvEF4_F4_EwEXAF_5pglcrVjRR:
 nop
@@ -4188,12 +4188,12 @@
 b__MAFg3__18__ef_trgRi:
 nop
 .text
-.globl b__MAXFg3__117zbarlchapg_olanzrVjYo1RR16qb_gubhfnaqf_frcRi
+.weak b__MAXFg3__117zbarlchapg_olanzrVjYo1RR16qb_gubhfnaqf_frcRi
 .type b__MAXFg3__117zbarlchapg_olanzrVjYo1RR16qb_gubhfnaqf_frcRi,%function
 b__MAXFg3__117zbarlchapg_olanzrVjYo1RR16qb_gubhfnaqf_frcRi:
 nop
 .text
-.globl b__MAFg3__19__ahz_chgVpR23__jvqra_naq_tebhc_sybngRCpF2_F2_F2_EF2_F3_EXAF_6ybpnyrR
+.weak b__MAFg3__19__ahz_chgVpR23__jvqra_naq_tebhc_sybngRCpF2_F2_F2_EF2_F3_EXAF_6ybpnyrR
 .type b__MAFg3__19__ahz_chgVpR23__jvqra_naq_tebhc_sybngRCpF2_F2_F2_EF2_F3_EXAF_6ybpnyrR,%function
 b__MAFg3__19__ahz_chgVpR23__jvqra_naq_tebhc_sybngRCpF2_F2_F2_EF2_F3_EXAF_6ybpnyrR:
 nop
@@ -4253,7 +4253,7 @@
 b__MAFg3__112__ef_qrsnhygP2REXF0_:
 nop
 .text
-.globl b__MGi0_a24_AFg3__113onfvp_bfgernzVpAF_11pune_genvgfVpRRRQ1Ri
+.weak b__MGi0_a24_AFg3__113onfvp_bfgernzVpAF_11pune_genvgfVpRRRQ1Ri
 .type b__MGi0_a24_AFg3__113onfvp_bfgernzVpAF_11pune_genvgfVpRRRQ1Ri,%function
 b__MGi0_a24_AFg3__113onfvp_bfgernzVpAF_11pune_genvgfVpRRRQ1Ri:
 nop
@@ -4268,7 +4268,7 @@
 b__MAXFg3__120__gvzr_trg_p_fgbentrVpR8__zbagufRi:
 nop
 .text
-.globl b__MAXFg3__117zbarlchapg_olanzrVjYo0RR16qb_artngvir_fvtaRi
+.weak b__MAXFg3__117zbarlchapg_olanzrVjYo0RR16qb_artngvir_fvtaRi
 .type b__MAXFg3__117zbarlchapg_olanzrVjYo0RR16qb_artngvir_fvtaRi,%function
 b__MAXFg3__117zbarlchapg_olanzrVjYo0RR16qb_artngvir_fvtaRi:
 nop
@@ -4283,7 +4283,7 @@
 b__MAFg3__16guernq4wbvaRi:
 nop
 .data
-.globl b__MGVAFg3__113onfvp_bfgernzVpAF_11pune_genvgfVpRRRR
+.weak b__MGVAFg3__113onfvp_bfgernzVpAF_11pune_genvgfVpRRRR
 .type b__MGVAFg3__113onfvp_bfgernzVpAF_11pune_genvgfVpRRRR,%object
 b__MGVAFg3__113onfvp_bfgernzVpAF_11pune_genvgfVpRRRR:
 .space __SIZEOF_POINTER__
@@ -4318,7 +4318,7 @@
 b___pkn_thneq_npdhver:
 nop
 .data
-.globl b__MAFg3__110zbarlchapgVjYo1RR2vqR
+.weak b__MAFg3__110zbarlchapgVjYo1RR2vqR
 .type b__MAFg3__110zbarlchapgVjYo1RR2vqR,%object
 b__MAFg3__110zbarlchapgVjYo1RR2vqR:
 .space __SIZEOF_POINTER__
@@ -4338,7 +4338,7 @@
 b__MAXFg3__17pbqrpigVjp9zofgngr_gR16qb_nyjnlf_abpbaiRi:
 nop
 .text
-.globl b__MqnCiFg11nyvta_iny_gEXFg9abguebj_g
+.weak b__MqnCiFg11nyvta_iny_gEXFg9abguebj_g
 .type b__MqnCiFg11nyvta_iny_gEXFg9abguebj_g,%function
 b__MqnCiFg11nyvta_iny_gEXFg9abguebj_g:
 nop
@@ -4358,22 +4358,22 @@
 b__MGFAFg3__18ahzchapgVpRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__16__fbegVEAF_6__yrffVzzRRCzRRiG0_F5_G_
+.weak b__MAFg3__16__fbegVEAF_6__yrffVzzRRCzRRiG0_F5_G_
 .type b__MAFg3__16__fbegVEAF_6__yrffVzzRRCzRRiG0_F5_G_,%function
 b__MAFg3__16__fbegVEAF_6__yrffVzzRRCzRRiG0_F5_G_:
 nop
 .data
-.globl b__MGFAFg3__118__gvzr_trg_fgbentrVpRR
+.weak b__MGFAFg3__118__gvzr_trg_fgbentrVpRR
 .type b__MGFAFg3__118__gvzr_trg_fgbentrVpRR,%object
 b__MGFAFg3__118__gvzr_trg_fgbentrVpRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRRnFREXF5_
+.weak b__MAFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRRnFREXF5_
 .type b__MAFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRRnFREXF5_,%function
 b__MAFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRRnFREXF5_:
 nop
 .text
-.globl b__MAFg3__113onfvp_bfgernzVpAF_11pune_genvgfVpRRR5gryycRi
+.weak b__MAFg3__113onfvp_bfgernzVpAF_11pune_genvgfVpRRR5gryycRi
 .type b__MAFg3__113onfvp_bfgernzVpAF_11pune_genvgfVpRRR5gryycRi,%function
 b__MAFg3__113onfvp_bfgernzVpAF_11pune_genvgfVpRRR5gryycRi:
 nop
@@ -4413,12 +4413,12 @@
 b__MAFg3__112fgefgernzohsQ0Ri:
 nop
 .text
-.globl b__MAXFg3__18gvzr_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR11qb_trg_qngrRF4_F4_EAF_8vbf_onfrREwC2gz
+.weak b__MAXFg3__18gvzr_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR11qb_trg_qngrRF4_F4_EAF_8vbf_onfrREwC2gz
 .type b__MAXFg3__18gvzr_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR11qb_trg_qngrRF4_F4_EAF_8vbf_onfrREwC2gz,%function
 b__MAXFg3__18gvzr_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR11qb_trg_qngrRF4_F4_EAF_8vbf_onfrREwC2gz:
 nop
 .text
-.globl b__MAFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRR6vafregRzzj
+.weak b__MAFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRR6vafregRzzj
 .type b__MAFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRR6vafregRzzj,%function
 b__MAFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRR6vafregRzzj:
 nop
@@ -4438,7 +4438,7 @@
 b__MAFg3__18vbf_onfr6onqovgR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRR7ercynprRzzCXj
+.weak b__MAFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRR7ercynprRzzCXj
 .type b__MAFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRR7ercynprRzzCXj,%function
 b__MAFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRR7ercynprRzzCXj:
 nop
@@ -4453,7 +4453,7 @@
 b__MAFg3__115erphefvir_zhgrk4ybpxRi:
 nop
 .text
-.globl b__MAFg3__16__fbegVEAF_6__yrffVkkRRCkRRiG0_F5_G_
+.weak b__MAFg3__16__fbegVEAF_6__yrffVkkRRCkRRiG0_F5_G_
 .type b__MAFg3__16__fbegVEAF_6__yrffVkkRRCkRRiG0_F5_G_,%function
 b__MAFg3__16__fbegVEAF_6__yrffVkkRRCkRRiG0_F5_G_:
 nop
@@ -4483,7 +4483,7 @@
 b__MAXFg3__15pglcrVjR9qb_aneebjRjp:
 nop
 .data
-.globl b__MGIAFg3__117zbarlchapg_olanzrVpYo0RRR
+.weak b__MGIAFg3__117zbarlchapg_olanzrVpYo0RRR
 .type b__MGIAFg3__117zbarlchapg_olanzrVpYo0RRR,%object
 b__MGIAFg3__117zbarlchapg_olanzrVpYo0RRR:
 .space __SIZEOF_POINTER__
@@ -4493,27 +4493,27 @@
 b__MAFg3__18__trg_qoRi:
 nop
 .text
-.globl b__MAFg3__113onfvp_bfgernzVpAF_11pune_genvgfVpRRRyfRo
+.weak b__MAFg3__113onfvp_bfgernzVpAF_11pune_genvgfVpRRRyfRo
 .type b__MAFg3__113onfvp_bfgernzVpAF_11pune_genvgfVpRRRyfRo,%function
 b__MAFg3__113onfvp_bfgernzVpAF_11pune_genvgfVpRRRyfRo:
 nop
 .text
-.globl b__MAXFg3__110zbarlchapgVjYo0RR16qb_cbfvgvir_fvtaRi
+.weak b__MAXFg3__110zbarlchapgVjYo0RR16qb_cbfvgvir_fvtaRi
 .type b__MAXFg3__110zbarlchapgVjYo0RR16qb_cbfvgvir_fvtaRi,%function
 b__MAXFg3__110zbarlchapgVjYo0RR16qb_cbfvgvir_fvtaRi:
 nop
 .data
-.globl b__MGVAFg3__110pglcr_onfrR
+.weak b__MGVAFg3__110pglcr_onfrR
 .type b__MGVAFg3__110pglcr_onfrR,%object
 b__MGVAFg3__110pglcr_onfrR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGVAFg3__110zbarlchapgVpYo1RRR
+.weak b__MGVAFg3__110zbarlchapgVpYo1RRR
 .type b__MGVAFg3__110zbarlchapgVpYo1RRR,%object
 b__MGVAFg3__110zbarlchapgVpYo1RRR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGFAFg3__114pbqrpig_olanzrVpp9zofgngr_gRR
+.weak b__MGFAFg3__114pbqrpig_olanzrVpp9zofgngr_gRR
 .type b__MGFAFg3__114pbqrpig_olanzrVpp9zofgngr_gRR,%object
 b__MGFAFg3__114pbqrpig_olanzrVpp9zofgngr_gRR:
 .space __SIZEOF_POINTER__
@@ -4523,7 +4523,7 @@
 b__MFg10harkcrpgrqi:
 nop
 .text
-.globl b__MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRR8ernqfbzrRCpy
+.weak b__MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRR8ernqfbzrRCpy
 .type b__MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRR8ernqfbzrRCpy,%function
 b__MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRR8ernqfbzrRCpy:
 nop
@@ -4533,7 +4533,7 @@
 b__MAFg3__18vbf_onfr16__pnyy_pnyyonpxfRAF0_5riragR:
 nop
 .text
-.globl b__MAXFg3__117zbarlchapg_olanzrVpYo1RR16qb_cbfvgvir_fvtaRi
+.weak b__MAXFg3__117zbarlchapg_olanzrVpYo1RR16qb_cbfvgvir_fvtaRi
 .type b__MAXFg3__117zbarlchapg_olanzrVpYo1RR16qb_cbfvgvir_fvtaRi,%function
 b__MAXFg3__117zbarlchapg_olanzrVpYo1RR16qb_cbfvgvir_fvtaRi:
 nop
@@ -4548,27 +4548,27 @@
 b__MGFCXQu:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__113onfvp_bfgernzVpAF_11pune_genvgfVpRRRyfRq
+.weak b__MAFg3__113onfvp_bfgernzVpAF_11pune_genvgfVpRRRyfRq
 .type b__MAFg3__113onfvp_bfgernzVpAF_11pune_genvgfVpRRRyfRq,%function
 b__MAFg3__113onfvp_bfgernzVpAF_11pune_genvgfVpRRRyfRq:
 nop
 .text
-.globl b__MAXFg3__17pbyyngrVpR10qb_pbzcnerRCXpF3_F3_F3_
+.weak b__MAXFg3__17pbyyngrVpR10qb_pbzcnerRCXpF3_F3_F3_
 .type b__MAXFg3__17pbyyngrVpR10qb_pbzcnerRCXpF3_F3_F3_,%function
 b__MAXFg3__17pbyyngrVpR10qb_pbzcnerRCXpF3_F3_F3_:
 nop
 .text
-.globl b__MAXFg3__17ahz_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR6qb_trgRF4_F4_EAF_8vbf_onfrREwECi
+.weak b__MAXFg3__17ahz_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR6qb_trgRF4_F4_EAF_8vbf_onfrREwECi
 .type b__MAXFg3__17ahz_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR6qb_trgRF4_F4_EAF_8vbf_onfrREwECi,%function
 b__MAXFg3__17ahz_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR6qb_trgRF4_F4_EAF_8vbf_onfrREwECi:
 nop
 .data
-.globl b__MAFg3__19zbarl_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR2vqR
+.weak b__MAFg3__19zbarl_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR2vqR
 .type b__MAFg3__19zbarl_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR2vqR,%object
 b__MAFg3__19zbarl_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR2vqR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MAFg3__19zbarl_chgVjAF_19bfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR2vqR
+.weak b__MAFg3__19zbarl_chgVjAF_19bfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR2vqR
 .type b__MAFg3__19zbarl_chgVjAF_19bfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR2vqR,%object
 b__MAFg3__19zbarl_chgVjAF_19bfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR2vqR:
 .space __SIZEOF_POINTER__
@@ -4578,7 +4578,7 @@
 b__MGIAFg3__117__jvqra_sebz_hgs8VYz32RRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRP2REXF5_EXF4_
+.weak b__MAFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRP2REXF5_EXF4_
 .type b__MAFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRP2REXF5_EXF4_,%function
 b__MAFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRP2REXF5_EXF4_:
 nop
@@ -4603,22 +4603,22 @@
 b__MAFg3__111__yvopcc_qoQ2Ri:
 nop
 .text
-.globl b__MAFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR6vafregRzCXp
+.weak b__MAFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR6vafregRzCXp
 .type b__MAFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR6vafregRzCXp,%function
 b__MAFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR6vafregRzCXp:
 nop
 .text
-.globl b__MAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRR5frrxtRAF_4scbfV9zofgngr_gRR
+.weak b__MAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRR5frrxtRAF_4scbfV9zofgngr_gRR
 .type b__MAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRR5frrxtRAF_4scbfV9zofgngr_gRR,%function
 b__MAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRR5frrxtRAF_4scbfV9zofgngr_gRR:
 nop
 .text
-.globl b__MAFg3__113onfvp_bfgernzVpAF_11pune_genvgfVpRRRyfRr
+.weak b__MAFg3__113onfvp_bfgernzVpAF_11pune_genvgfVpRRRyfRr
 .type b__MAFg3__113onfvp_bfgernzVpAF_11pune_genvgfVpRRRyfRr,%function
 b__MAFg3__113onfvp_bfgernzVpAF_11pune_genvgfVpRRRyfRr:
 nop
 .text
-.globl b__MAFg3__115onfvp_fgernzohsVjAF_11pune_genvgfVjRRR4flapRi
+.weak b__MAFg3__115onfvp_fgernzohsVjAF_11pune_genvgfVjRRR4flapRi
 .type b__MAFg3__115onfvp_fgernzohsVjAF_11pune_genvgfVjRRR4flapRi,%function
 b__MAFg3__115onfvp_fgernzohsVjAF_11pune_genvgfVjRRR4flapRi:
 nop
@@ -4638,7 +4638,7 @@
 b__MAFg3__16ybpnyr5snprgQ0Ri:
 nop
 .data
-.globl b__MGVAFg3__19__ahz_trgVjRR
+.weak b__MGVAFg3__19__ahz_trgVjRR
 .type b__MGVAFg3__19__ahz_trgVjRR,%object
 b__MGVAFg3__19__ahz_trgVjRR:
 .space __SIZEOF_POINTER__
@@ -4653,12 +4653,12 @@
 b__MGVCo:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__113onfvp_bfgernzVpAF_11pune_genvgfVpRRRyfRs
+.weak b__MAFg3__113onfvp_bfgernzVpAF_11pune_genvgfVpRRRyfRs
 .type b__MAFg3__113onfvp_bfgernzVpAF_11pune_genvgfVpRRRyfRs,%function
 b__MAFg3__113onfvp_bfgernzVpAF_11pune_genvgfVpRRRyfRs:
 nop
 .data
-.globl b__MGIAFg3__113onfvp_bfgernzVjAF_11pune_genvgfVjRRRR
+.weak b__MGIAFg3__113onfvp_bfgernzVjAF_11pune_genvgfVjRRRR
 .type b__MGIAFg3__113onfvp_bfgernzVjAF_11pune_genvgfVjRRRR,%object
 b__MGIAFg3__113onfvp_bfgernzVjAF_11pune_genvgfVjRRRR:
 .space __SIZEOF_POINTER__
@@ -4678,7 +4678,7 @@
 b__MGVCp:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRRefREo
+.weak b__MAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRRefREo
 .type b__MAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRRefREo,%function
 b__MAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRRefREo:
 nop
@@ -4688,7 +4688,7 @@
 b__MAXFg3__114__pbqrpig_hgs8VQfR6qb_bhgRE9zofgngr_gCXQfF5_EF5_CpF7_EF7_:
 nop
 .data
-.globl b__MGFAFg3__18gvzr_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRRR
+.weak b__MGFAFg3__18gvzr_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRRR
 .type b__MGFAFg3__18gvzr_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRRR,%object
 b__MGFAFg3__18gvzr_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRRR:
 .space __SIZEOF_POINTER__
@@ -4718,12 +4718,12 @@
 b__MGVCr:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRRefREq
+.weak b__MAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRRefREq
 .type b__MAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRRefREq,%function
 b__MAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRRefREq:
 nop
 .text
-.globl b__MAFg3__113onfvp_bfgernzVpAF_11pune_genvgfVpRRRyfRv
+.weak b__MAFg3__113onfvp_bfgernzVpAF_11pune_genvgfVpRRRyfRv
 .type b__MAFg3__113onfvp_bfgernzVpAF_11pune_genvgfVpRRRyfRv,%function
 b__MAFg3__113onfvp_bfgernzVpAF_11pune_genvgfVpRRRyfRv:
 nop
@@ -4753,22 +4753,22 @@
 b__MAFg3__112cynprubyqref2_1R:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRRefREr
+.weak b__MAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRRefREr
 .type b__MAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRRefREr,%function
 b__MAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRRefREr:
 nop
 .text
-.globl b__MAFg3__113onfvp_bfgernzVpAF_11pune_genvgfVpRRRyfRw
+.weak b__MAFg3__113onfvp_bfgernzVpAF_11pune_genvgfVpRRRyfRw
 .type b__MAFg3__113onfvp_bfgernzVpAF_11pune_genvgfVpRRRyfRw,%function
 b__MAFg3__113onfvp_bfgernzVpAF_11pune_genvgfVpRRRyfRw:
 nop
 .text
-.globl b__MAFg3__115onfvp_fgernzohsVjAF_11pune_genvgfVjRRR9chofrgohsRCjy
+.weak b__MAFg3__115onfvp_fgernzohsVjAF_11pune_genvgfVjRRR9chofrgohsRCjy
 .type b__MAFg3__115onfvp_fgernzohsVjAF_11pune_genvgfVjRRR9chofrgohsRCjy,%function
 b__MAFg3__115onfvp_fgernzohsVjAF_11pune_genvgfVjRRR9chofrgohsRCjy:
 nop
 .text
-.globl b__MAFg3__115onfvp_fgernzohsVjAF_11pune_genvgfVjRRR9fubjznalpRi
+.weak b__MAFg3__115onfvp_fgernzohsVjAF_11pune_genvgfVjRRR9fubjznalpRi
 .type b__MAFg3__115onfvp_fgernzohsVjAF_11pune_genvgfVjRRR9fubjznalpRi,%function
 b__MAFg3__115onfvp_fgernzohsVjAF_11pune_genvgfVjRRR9fubjznalpRi:
 nop
@@ -4778,7 +4778,7 @@
 b__MAXFg3__115__pbqrpig_hgs16VjYo1RR13qb_znk_yratguRi:
 nop
 .data
-.globl b__MGFAFg3__17ahz_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRRR
+.weak b__MGFAFg3__17ahz_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRRR
 .type b__MGFAFg3__17ahz_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRRR,%object
 b__MGFAFg3__17ahz_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRRR:
 .space __SIZEOF_POINTER__
@@ -4793,12 +4793,12 @@
 b__MAFg3__112shgher_reebeQ1Ri:
 nop
 .text
-.globl b__MAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRRefREs
+.weak b__MAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRRefREs
 .type b__MAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRRefREs,%function
 b__MAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRRefREs:
 nop
 .text
-.globl b__MAFg3__113onfvp_bfgernzVpAF_11pune_genvgfVpRRR3chgRp
+.weak b__MAFg3__113onfvp_bfgernzVpAF_11pune_genvgfVpRRR3chgRp
 .type b__MAFg3__113onfvp_bfgernzVpAF_11pune_genvgfVpRRR3chgRp,%function
 b__MAFg3__113onfvp_bfgernzVpAF_11pune_genvgfVpRRR3chgRp:
 nop
@@ -4823,7 +4823,7 @@
 b__MAXFg8onq_pnfg4jungRi:
 nop
 .text
-.globl b__MAFg3__113onfvp_bfgernzVpAF_11pune_genvgfVpRRRyfRy
+.weak b__MAFg3__113onfvp_bfgernzVpAF_11pune_genvgfVpRRRyfRy
 .type b__MAFg3__113onfvp_bfgernzVpAF_11pune_genvgfVpRRRyfRy,%function
 b__MAFg3__113onfvp_bfgernzVpAF_11pune_genvgfVpRRRyfRy:
 nop
@@ -4838,17 +4838,17 @@
 b__MAFg13rkprcgvba_cgenFREXF_:
 nop
 .text
-.globl b__MAFg3__113onfvp_bfgernzVpAF_11pune_genvgfVpRRR5syhfuRi
+.weak b__MAFg3__113onfvp_bfgernzVpAF_11pune_genvgfVpRRR5syhfuRi
 .type b__MAFg3__113onfvp_bfgernzVpAF_11pune_genvgfVpRRR5syhfuRi,%function
 b__MAFg3__113onfvp_bfgernzVpAF_11pune_genvgfVpRRR5syhfuRi:
 nop
 .text
-.globl b__MAFg3__113onfvp_bfgernzVpAF_11pune_genvgfVpRRRyfRz
+.weak b__MAFg3__113onfvp_bfgernzVpAF_11pune_genvgfVpRRRyfRz
 .type b__MAFg3__113onfvp_bfgernzVpAF_11pune_genvgfVpRRRyfRz,%function
 b__MAFg3__113onfvp_bfgernzVpAF_11pune_genvgfVpRRRyfRz:
 nop
 .text
-.globl b__MAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRR6farkgpRi
+.weak b__MAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRR6farkgpRi
 .type b__MAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRR6farkgpRi,%function
 b__MAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRR6farkgpRi:
 nop
@@ -4858,12 +4858,12 @@
 b__MGVCw:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRRefREv
+.weak b__MAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRRefREv
 .type b__MAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRRefREv,%function
 b__MAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRRefREv:
 nop
 .text
-.globl b__MAXFg3__110zbarlchapgVjYo1RR16qb_qrpvzny_cbvagRi
+.weak b__MAXFg3__110zbarlchapgVjYo1RR16qb_qrpvzny_cbvagRi
 .type b__MAXFg3__110zbarlchapgVjYo1RR16qb_qrpvzny_cbvagRi,%function
 b__MAXFg3__110zbarlchapgVjYo1RR16qb_qrpvzny_cbvagRi:
 nop
@@ -4883,12 +4883,12 @@
 b__MGFCXQf:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRRefREw
+.weak b__MAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRRefREw
 .type b__MAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRRefREw,%function
 b__MAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRRefREw:
 nop
 .text
-.globl b__MAXFg3__117zbarlchapg_olanzrVjYo1RR13qb_cbf_sbezngRi
+.weak b__MAXFg3__117zbarlchapg_olanzrVjYo1RR13qb_cbf_sbezngRi
 .type b__MAXFg3__117zbarlchapg_olanzrVjYo1RR13qb_cbf_sbezngRi,%function
 b__MAXFg3__117zbarlchapg_olanzrVjYo1RR13qb_cbf_sbezngRi:
 nop
@@ -4933,22 +4933,22 @@
 b__MGFCXQh:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRRefREy
+.weak b__MAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRRefREy
 .type b__MAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRRefREy,%function
 b__MAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRRefREy:
 nop
 .text
-.globl b__MAFg3__115onfvp_fgernzohsVjAF_11pune_genvgfVjRRR4frgcRCjF4_
+.weak b__MAFg3__115onfvp_fgernzohsVjAF_11pune_genvgfVjRRR4frgcRCjF4_
 .type b__MAFg3__115onfvp_fgernzohsVjAF_11pune_genvgfVjRRR4frgcRCjF4_,%function
 b__MAFg3__115onfvp_fgernzohsVjAF_11pune_genvgfVjRRR4frgcRCjF4_:
 nop
 .data
-.globl b__MGVAFg3__114onfvp_vbfgernzVpAF_11pune_genvgfVpRRRR
+.weak b__MGVAFg3__114onfvp_vbfgernzVpAF_11pune_genvgfVpRRRR
 .type b__MGVAFg3__114onfvp_vbfgernzVpAF_11pune_genvgfVpRRRR,%object
 b__MGVAFg3__114onfvp_vbfgernzVpAF_11pune_genvgfVpRRRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MGi0_a24_AFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRRQ0Ri
+.weak b__MGi0_a24_AFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRRQ0Ri
 .type b__MGi0_a24_AFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRRQ0Ri,%function
 b__MGi0_a24_AFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRRQ0Ri:
 nop
@@ -4963,12 +4963,12 @@
 b__MGVCa:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRRefREz
+.weak b__MAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRRefREz
 .type b__MAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRRefREz,%function
 b__MAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRRefREz:
 nop
 .data
-.globl b__MGFAFg3__115zrffntrf_olanzrVpRR
+.weak b__MGFAFg3__115zrffntrf_olanzrVpRR
 .type b__MGFAFg3__115zrffntrf_olanzrVpRR,%object
 b__MGFAFg3__115zrffntrf_olanzrVpRR:
 .space __SIZEOF_POINTER__
@@ -4988,7 +4988,7 @@
 b__MGVCb:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__113onfvp_bfgernzVpAF_11pune_genvgfVpRRRyfRf
+.weak b__MAFg3__113onfvp_bfgernzVpAF_11pune_genvgfVpRRRyfRf
 .type b__MAFg3__113onfvp_bfgernzVpAF_11pune_genvgfVpRRRyfRf,%function
 b__MAFg3__113onfvp_bfgernzVpAF_11pune_genvgfVpRRRyfRf:
 nop
@@ -5003,12 +5003,12 @@
 b___pkn_erguebj_cevznel_rkprcgvba:
 nop
 .text
-.globl b__MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRR5gryytRi
+.weak b__MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRR5gryytRi
 .type b__MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRR5gryytRi,%function
 b__MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRR5gryytRi:
 nop
 .text
-.globl b__MAFg3__113onfvp_bfgernzVpAF_11pune_genvgfVpRRRyfRg
+.weak b__MAFg3__113onfvp_bfgernzVpAF_11pune_genvgfVpRRRyfRg
 .type b__MAFg3__113onfvp_bfgernzVpAF_11pune_genvgfVpRRRyfRg,%function
 b__MAFg3__113onfvp_bfgernzVpAF_11pune_genvgfVpRRRyfRg:
 nop
@@ -5018,27 +5018,27 @@
 b__MAFg3__18vbf_onfr7tbbqovgR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIAFg3__115onfvp_fgernzohsVjAF_11pune_genvgfVjRRRR
+.weak b__MGIAFg3__115onfvp_fgernzohsVjAF_11pune_genvgfVjRRRR
 .type b__MGIAFg3__115onfvp_fgernzohsVjAF_11pune_genvgfVjRRRR,%object
 b__MGIAFg3__115onfvp_fgernzohsVjAF_11pune_genvgfVjRRRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAXFg3__18zrffntrfVjR8qb_pybfrRy
+.weak b__MAXFg3__18zrffntrfVjR8qb_pybfrRy
 .type b__MAXFg3__18zrffntrfVjR8qb_pybfrRy,%function
 b__MAXFg3__18zrffntrfVjR8qb_pybfrRy:
 nop
 .text
-.globl b__MAXFg3__18gvzr_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR17__trg_jrrxqnlanzrREvEF4_F4_EwEXAF_5pglcrVpRR
+.weak b__MAXFg3__18gvzr_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR17__trg_jrrxqnlanzrREvEF4_F4_EwEXAF_5pglcrVpRR
 .type b__MAXFg3__18gvzr_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR17__trg_jrrxqnlanzrREvEF4_F4_EwEXAF_5pglcrVpRR,%function
 b__MAXFg3__18gvzr_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR17__trg_jrrxqnlanzrREvEF4_F4_EwEXAF_5pglcrVpRR:
 nop
 .data
-.globl b__MGVAFg3__19zbarl_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRRR
+.weak b__MGVAFg3__19zbarl_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRRR
 .type b__MGVAFg3__19zbarl_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRRR,%object
 b__MGVAFg3__19zbarl_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRRR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIAFg3__115gvzr_chg_olanzrVpAF_19bfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRRR
+.weak b__MGIAFg3__115gvzr_chg_olanzrVpAF_19bfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRRR
 .type b__MGIAFg3__115gvzr_chg_olanzrVpAF_19bfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRRR,%object
 b__MGIAFg3__115gvzr_chg_olanzrVpAF_19bfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRRR:
 .space __SIZEOF_POINTER__
@@ -5078,7 +5078,7 @@
 b__MAFg13ehagvzr_reebeP1REXAFg3__112onfvp_fgevatVpAF0_11pune_genvgfVpRRAF0_9nyybpngbeVpRRRR:
 nop
 .data
-.globl b__MGVAFg3__115gvzr_trg_olanzrVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRRR
+.weak b__MGVAFg3__115gvzr_trg_olanzrVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRRR
 .type b__MGVAFg3__115gvzr_trg_olanzrVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRRR,%object
 b__MGVAFg3__115gvzr_trg_olanzrVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRRR:
 .space __SIZEOF_POINTER__
@@ -5093,12 +5093,12 @@
 b__MAFg3__110gb_jfgevatRq:
 nop
 .text
-.globl b__MAFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR6nccraqRzp
+.weak b__MAFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR6nccraqRzp
 .type b__MAFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR6nccraqRzp,%function
 b__MAFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR6nccraqRzp:
 nop
 .data
-.globl b__MAFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRR4acbfR
+.weak b__MAFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRR4acbfR
 .type b__MAFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRR4acbfR,%object
 b__MAFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRR4acbfR:
 .space __SIZEOF_POINTER__
@@ -5113,7 +5113,7 @@
 b__MGVCf:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__16__fbegVEAF_6__yrffVvvRRCvRRiG0_F5_G_
+.weak b__MAFg3__16__fbegVEAF_6__yrffVvvRRCvRRiG0_F5_G_
 .type b__MAFg3__16__fbegVEAF_6__yrffVvvRRCvRRiG0_F5_G_,%function
 b__MAFg3__16__fbegVEAF_6__yrffVvvRRCvRRiG0_F5_G_:
 nop
@@ -5128,7 +5128,7 @@
 b__MAFg3__110gb_jfgevatRr:
 nop
 .text
-.globl b__MAFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRR6nccraqRCXj
+.weak b__MAFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRR6nccraqRCXj
 .type b__MAFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRR6nccraqRCXj,%function
 b__MAFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRR6nccraqRCXj:
 nop
@@ -5148,17 +5148,17 @@
 b__MAFg3__129__yvopcc_nobeg_qroht_shapgvbaREXAF_19__yvopcc_qroht_vasbR:
 nop
 .text
-.globl b__MAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRRefREf
+.weak b__MAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRRefREf
 .type b__MAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRRefREf,%function
 b__MAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRRefREf:
 nop
 .text
-.globl b__MAFg3__113onfvp_bfgernzVpAF_11pune_genvgfVpRRRyfRk
+.weak b__MAFg3__113onfvp_bfgernzVpAF_11pune_genvgfVpRRRyfRk
 .type b__MAFg3__113onfvp_bfgernzVpAF_11pune_genvgfVpRRRyfRk,%function
 b__MAFg3__113onfvp_bfgernzVpAF_11pune_genvgfVpRRRyfRk:
 nop
 .text
-.globl b__MAXFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRR4pbclRCjzz
+.weak b__MAXFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRR4pbclRCjzz
 .type b__MAXFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRR4pbclRCjzz,%function
 b__MAXFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRR4pbclRCjzz:
 nop
@@ -5173,12 +5173,12 @@
 b__MAFg3__111__yvopcc_qo9__renfr_pRCi:
 nop
 .text
-.globl b__MAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRRefREg
+.weak b__MAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRRefREg
 .type b__MAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRRefREg,%function
 b__MAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRRefREg:
 nop
 .text
-.globl b__MAFg3__113onfvp_bfgernzVpAF_11pune_genvgfVpRRRyfRl
+.weak b__MAFg3__113onfvp_bfgernzVpAF_11pune_genvgfVpRRRyfRl
 .type b__MAFg3__113onfvp_bfgernzVpAF_11pune_genvgfVpRRRyfRl,%function
 b__MAFg3__113onfvp_bfgernzVpAF_11pune_genvgfVpRRRyfRl:
 nop
@@ -5198,7 +5198,7 @@
 b__MGIAFg3__112onq_jrnx_cgeR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRRP2REXF5_zzEXF4_
+.weak b__MAFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRRP2REXF5_zzEXF4_
 .type b__MAFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRRP2REXF5_zzEXF4_,%function
 b__MAFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRRP2REXF5_zzEXF4_:
 nop
@@ -5208,7 +5208,7 @@
 b__MGVCi:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRR5ftrgaRCpy
+.weak b__MAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRR5ftrgaRCpy
 .type b__MAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRR5ftrgaRCpy,%function
 b__MAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRR5ftrgaRCpy:
 nop
@@ -5218,17 +5218,17 @@
 b__MAFg3__114pbyyngr_olanzrVjRQ1Ri:
 nop
 .data
-.globl b__MGVAFg3__19__ahz_chgVpRR
+.weak b__MGVAFg3__19__ahz_chgVpRR
 .type b__MGVAFg3__19__ahz_chgVpRR,%object
 b__MGVAFg3__19__ahz_chgVpRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAXFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR7pbzcnerRzzEXF5_zz
+.weak b__MAXFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR7pbzcnerRzzEXF5_zz
 .type b__MAXFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR7pbzcnerRzzEXF5_zz,%function
 b__MAXFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR7pbzcnerRzzEXF5_zz:
 nop
 .text
-.globl b__MAFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR7erfreirRz
+.weak b__MAFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR7erfreirRz
 .type b__MAFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR7erfreirRz,%function
 b__MAFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR7erfreirRz:
 nop
@@ -5263,7 +5263,7 @@
 b__MGVCk:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MGi0_a24_AFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRRQ1Ri
+.weak b__MGi0_a24_AFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRRQ1Ri
 .type b__MGi0_a24_AFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRRQ1Ri,%function
 b__MGi0_a24_AFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRRQ1Ri:
 nop
@@ -5293,7 +5293,7 @@
 b__MGVFg11ybtvp_reebe:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRRefREk
+.weak b__MAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRRefREk
 .type b__MAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRRefREk,%function
 b__MAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRRefREk:
 nop
@@ -5308,7 +5308,7 @@
 b__MGVAFg3__116__aneebj_gb_hgs8VYz32RRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR6__vavgRCXpz
+.weak b__MAFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR6__vavgRCXpz
 .type b__MAFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR6__vavgRCXpz,%function
 b__MAFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR6__vavgRCXpz:
 nop
@@ -5318,7 +5318,7 @@
 b__MGIAFg12rkcrevzragny15shaqnzragnyf_i112onq_nal_pnfgR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRRefREl
+.weak b__MAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRRefREl
 .type b__MAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRRefREl,%function
 b__MAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRRefREl:
 nop
@@ -5338,12 +5338,12 @@
 b___pkn_nyybpngr_rkprcgvba:
 nop
 .text
-.globl b__MAFg3__127__vafregvba_fbeg_vapbzcyrgrVEAF_6__yrffVppRRCpRRoG0_F5_G_
+.weak b__MAFg3__127__vafregvba_fbeg_vapbzcyrgrVEAF_6__yrffVppRRCpRRoG0_F5_G_
 .type b__MAFg3__127__vafregvba_fbeg_vapbzcyrgrVEAF_6__yrffVppRRCpRRoG0_F5_G_,%function
 b__MAFg3__127__vafregvba_fbeg_vapbzcyrgrVEAF_6__yrffVppRRCpRRoG0_F5_G_:
 nop
 .text
-.globl b__MAFg3__16__fbegVEAF_6__yrffVggRRCgRRiG0_F5_G_
+.weak b__MAFg3__16__fbegVEAF_6__yrffVggRRCgRRiG0_F5_G_
 .type b__MAFg3__16__fbegVEAF_6__yrffVggRRCgRRiG0_F5_G_,%function
 b__MAFg3__16__fbegVEAF_6__yrffVggRRCgRRiG0_F5_G_:
 nop
@@ -5358,27 +5358,27 @@
 b__MAFg3__110gb_jfgevatRz:
 nop
 .text
-.globl b__MAFg3__113onfvp_bfgernzVpAF_11pune_genvgfVpRRR4fjncREF3_
+.weak b__MAFg3__113onfvp_bfgernzVpAF_11pune_genvgfVpRRR4fjncREF3_
 .type b__MAFg3__113onfvp_bfgernzVpAF_11pune_genvgfVpRRR4fjncREF3_,%function
 b__MAFg3__113onfvp_bfgernzVpAF_11pune_genvgfVpRRR4fjncREF3_:
 nop
 .data
-.globl b__MGFAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRRR
+.weak b__MGFAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRRR
 .type b__MGFAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRRR,%object
 b__MGFAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAXFg3__19zbarl_chgVpAF_19bfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR6qb_chgRF4_oEAF_8vbf_onfrRpr
+.weak b__MAXFg3__19zbarl_chgVpAF_19bfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR6qb_chgRF4_oEAF_8vbf_onfrRpr
 .type b__MAXFg3__19zbarl_chgVpAF_19bfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR6qb_chgRF4_oEAF_8vbf_onfrRpr,%function
 b__MAXFg3__19zbarl_chgVpAF_19bfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR6qb_chgRF4_oEAF_8vbf_onfrRpr:
 nop
 .text
-.globl b__MAXFg3__117zbarlchapg_olanzrVjYo1RR14qb_senp_qvtvgfRi
+.weak b__MAXFg3__117zbarlchapg_olanzrVjYo1RR14qb_senp_qvtvgfRi
 .type b__MAXFg3__117zbarlchapg_olanzrVjYo1RR14qb_senp_qvtvgfRi,%function
 b__MAXFg3__117zbarlchapg_olanzrVjYo1RR14qb_senp_qvtvgfRi:
 nop
 .data
-.globl b__MGFAFg3__114pbqrpig_olanzrVQfp9zofgngr_gRR
+.weak b__MGFAFg3__114pbqrpig_olanzrVQfp9zofgngr_gRR
 .type b__MGFAFg3__114pbqrpig_olanzrVQfp9zofgngr_gRR,%object
 b__MGFAFg3__114pbqrpig_olanzrVQfp9zofgngr_gRR:
 .space __SIZEOF_POINTER__
@@ -5398,7 +5398,7 @@
 b__MAXFg3__17pbqrpigVQvp9zofgngr_gR13qb_znk_yratguRi:
 nop
 .text
-.globl b__MAXFg3__18gvzr_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR14qb_trg_jrrxqnlRF4_F4_EAF_8vbf_onfrREwC2gz
+.weak b__MAXFg3__18gvzr_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR14qb_trg_jrrxqnlRF4_F4_EAF_8vbf_onfrREwC2gz
 .type b__MAXFg3__18gvzr_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR14qb_trg_jrrxqnlRF4_F4_EAF_8vbf_onfrREwC2gz,%function
 b__MAXFg3__18gvzr_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR14qb_trg_jrrxqnlRF4_F4_EAF_8vbf_onfrREwC2gz:
 nop
@@ -5408,7 +5408,7 @@
 b__MAFg3__17pbqrpigVQvp9zofgngr_gR2vqR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGFAFg3__110zbarlchapgVpYo0RRR
+.weak b__MGFAFg3__110zbarlchapgVpYo0RRR
 .type b__MGFAFg3__110zbarlchapgVpYo0RRR,%object
 b__MGFAFg3__110zbarlchapgVpYo0RRR:
 .space __SIZEOF_POINTER__
@@ -5428,17 +5428,17 @@
 b__MGFFg16vainyvq_nethzrag:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAXFg3__110zbarlchapgVjYo0RR13qb_art_sbezngRi
+.weak b__MAXFg3__110zbarlchapgVjYo0RR13qb_art_sbezngRi
 .type b__MAXFg3__110zbarlchapgVjYo0RR13qb_art_sbezngRi,%function
 b__MAXFg3__110zbarlchapgVjYo0RR13qb_art_sbezngRi:
 nop
 .data
-.globl b__MGIAFg3__110zbarlchapgVpYo0RRR
+.weak b__MGIAFg3__110zbarlchapgVpYo0RRR
 .type b__MGIAFg3__110zbarlchapgVpYo0RRR,%object
 b__MGIAFg3__110zbarlchapgVpYo0RRR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGVAFg3__118__gvzr_trg_fgbentrVjRR
+.weak b__MGVAFg3__118__gvzr_trg_fgbentrVjRR
 .type b__MGVAFg3__118__gvzr_trg_fgbentrVjRR,%object
 b__MGVAFg3__118__gvzr_trg_fgbentrVjRR:
 .space __SIZEOF_POINTER__
@@ -5458,7 +5458,7 @@
 b__MAFg3__118funerq_gvzrq_zhgrkP1Ri:
 nop
 .text
-.globl b__ManzEXFg9abguebj_g
+.weak b__ManzEXFg9abguebj_g
 .type b__ManzEXFg9abguebj_g,%function
 b__ManzEXFg9abguebj_g:
 nop
@@ -5473,7 +5473,7 @@
 b__MAFg3__18vbf_onfr3bpgR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGVAFg3__115onfvp_fgernzohsVjAF_11pune_genvgfVjRRRR
+.weak b__MGVAFg3__115onfvp_fgernzohsVjAF_11pune_genvgfVjRRRR
 .type b__MGVAFg3__115onfvp_fgernzohsVjAF_11pune_genvgfVjRRRR,%object
 b__MGVAFg3__115onfvp_fgernzohsVjAF_11pune_genvgfVjRRRR:
 .space __SIZEOF_POINTER__
@@ -5488,12 +5488,12 @@
 b__MAFg3__117__jvqra_sebz_hgs8VYz16RRQ1Ri:
 nop
 .data
-.globl b__MGIAFg3__115zrffntrf_olanzrVpRR
+.weak b__MGIAFg3__115zrffntrf_olanzrVpRR
 .type b__MGIAFg3__115zrffntrf_olanzrVpRR,%object
 b__MGIAFg3__115zrffntrf_olanzrVpRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAXFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR4svaqRpz
+.weak b__MAXFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR4svaqRpz
 .type b__MAXFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR4svaqRpz,%function
 b__MAXFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR4svaqRpz:
 nop
@@ -5503,12 +5503,12 @@
 b__MAFg3__115ahzchapg_olanzrVjRQ2Ri:
 nop
 .data
-.globl b__MGFAFg3__114__ahz_trg_onfrR
+.weak b__MGFAFg3__114__ahz_trg_onfrR
 .type b__MGFAFg3__114__ahz_trg_onfrR,%object
 b__MGFAFg3__114__ahz_trg_onfrR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGFAFg3__19__ahz_chgVpRR
+.weak b__MGFAFg3__19__ahz_chgVpRR
 .type b__MGFAFg3__19__ahz_chgVpRR,%object
 b__MGFAFg3__19__ahz_chgVpRR:
 .space __SIZEOF_POINTER__
@@ -5558,7 +5558,7 @@
 b__MGVAFg3__120__pbqrpig_hgs8_hgs16VjRR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIAFg3__18gvzr_chgVpAF_19bfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRRR
+.weak b__MGIAFg3__18gvzr_chgVpAF_19bfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRRR
 .type b__MGIAFg3__18gvzr_chgVpAF_19bfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRRR,%object
 b__MGIAFg3__18gvzr_chgVpAF_19bfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRRR:
 .space __SIZEOF_POINTER__
@@ -5578,37 +5578,37 @@
 b__MAFg3__110pglcr_onfr5fcnprR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__17pbyyngrVpRQ0Ri
+.weak b__MAFg3__17pbyyngrVpRQ0Ri
 .type b__MAFg3__17pbyyngrVpRQ0Ri,%function
 b__MAFg3__17pbyyngrVpRQ0Ri:
 nop
 .data
-.globl b__MGIAFg3__114pbqrpig_olanzrVjp9zofgngr_gRR
+.weak b__MGIAFg3__114pbqrpig_olanzrVjp9zofgngr_gRR
 .type b__MGIAFg3__114pbqrpig_olanzrVjp9zofgngr_gRR,%object
 b__MGIAFg3__114pbqrpig_olanzrVjp9zofgngr_gRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRR4fjncREF3_
+.weak b__MAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRR4fjncREF3_
 .type b__MAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRR4fjncREF3_,%function
 b__MAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRR4fjncREF3_:
 nop
 .text
-.globl b__MAXFg3__110zbarlchapgVpYo1RR16qb_artngvir_fvtaRi
+.weak b__MAXFg3__110zbarlchapgVpYo1RR16qb_artngvir_fvtaRi
 .type b__MAXFg3__110zbarlchapgVpYo1RR16qb_artngvir_fvtaRi,%function
 b__MAXFg3__110zbarlchapgVpYo1RR16qb_artngvir_fvtaRi:
 nop
 .text
-.globl b__MAFg3__114pbqrpig_olanzrVjp9zofgngr_gRQ0Ri
+.weak b__MAFg3__114pbqrpig_olanzrVjp9zofgngr_gRQ0Ri
 .type b__MAFg3__114pbqrpig_olanzrVjp9zofgngr_gRQ0Ri,%function
 b__MAFg3__114pbqrpig_olanzrVjp9zofgngr_gRQ0Ri:
 nop
 .text
-.globl b__MAXFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR13svaq_svefg_bsRCXpzz
+.weak b__MAXFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR13svaq_svefg_bsRCXpzz
 .type b__MAXFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR13svaq_svefg_bsRCXpzz,%function
 b__MAXFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR13svaq_svefg_bsRCXpzz:
 nop
 .text
-.globl b__MAFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRP2REXF5_zzEXF4_
+.weak b__MAFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRP2REXF5_zzEXF4_
 .type b__MAFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRP2REXF5_zzEXF4_,%function
 b__MAFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRP2REXF5_zzEXF4_:
 nop
@@ -5623,7 +5623,7 @@
 b__MGVA10__pkknovi123__shaqnzragny_glcr_vasbR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__127__vafregvba_fbeg_vapbzcyrgrVEAF_6__yrffVllRRClRRoG0_F5_G_
+.weak b__MAFg3__127__vafregvba_fbeg_vapbzcyrgrVEAF_6__yrffVllRRClRRoG0_F5_G_
 .type b__MAFg3__127__vafregvba_fbeg_vapbzcyrgrVEAF_6__yrffVllRRClRRoG0_F5_G_,%function
 b__MAFg3__127__vafregvba_fbeg_vapbzcyrgrVEAF_6__yrffVllRRClRRoG0_F5_G_:
 nop
@@ -5633,7 +5633,7 @@
 b__MAFg3__111__yvopcc_qo9__renfr_vRCi:
 nop
 .text
-.globl b__MAXFg3__110zbarlchapgVjYo0RR11qb_tebhcvatRi
+.weak b__MAXFg3__110zbarlchapgVjYo0RR11qb_tebhcvatRi
 .type b__MAXFg3__110zbarlchapgVjYo0RR11qb_tebhcvatRi,%function
 b__MAXFg3__110zbarlchapgVjYo0RR11qb_tebhcvatRi:
 nop
@@ -5648,12 +5648,12 @@
 b__MAXFg3__114__pbqrpig_hgs8VQfR9qb_yratguRE9zofgngr_gCXpF5_z:
 nop
 .text
-.globl b__MAXFg3__117zbarlchapg_olanzrVpYo0RR13qb_art_sbezngRi
+.weak b__MAXFg3__117zbarlchapg_olanzrVpYo0RR13qb_art_sbezngRi
 .type b__MAXFg3__117zbarlchapg_olanzrVpYo0RR13qb_art_sbezngRi,%function
 b__MAXFg3__117zbarlchapg_olanzrVpYo0RR13qb_art_sbezngRi:
 nop
 .data
-.globl b__MGVAFg3__115gvzr_trg_olanzrVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRRR
+.weak b__MGVAFg3__115gvzr_trg_olanzrVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRRR
 .type b__MGVAFg3__115gvzr_trg_olanzrVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRRR,%object
 b__MGVAFg3__115gvzr_trg_olanzrVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRRR:
 .space __SIZEOF_POINTER__
@@ -5673,12 +5673,12 @@
 b__MAFg3__117__jvqra_sebz_hgs8VYz16RRQ2Ri:
 nop
 .data
-.globl b__MGFAFg3__110__gvzr_chgR
+.weak b__MGFAFg3__110__gvzr_chgR
 .type b__MGFAFg3__110__gvzr_chgR,%object
 b__MGFAFg3__110__gvzr_chgR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRR2ngRz
+.weak b__MAFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRR2ngRz
 .type b__MAFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRR2ngRz,%function
 b__MAFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRR2ngRz:
 nop
@@ -5688,22 +5688,22 @@
 b__MAFg3__118__gvzr_trg_fgbentrVpR4vavgREXAF_5pglcrVpRR:
 nop
 .data
-.globl b__MAFg3__17pbyyngrVjR2vqR
+.weak b__MAFg3__17pbyyngrVjR2vqR
 .type b__MAFg3__17pbyyngrVjR2vqR,%object
 b__MAFg3__17pbyyngrVjR2vqR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGVAFg3__120__gvzr_trg_p_fgbentrVjRR
+.weak b__MGVAFg3__120__gvzr_trg_p_fgbentrVjRR
 .type b__MGVAFg3__120__gvzr_trg_p_fgbentrVjRR,%object
 b__MGVAFg3__120__gvzr_trg_p_fgbentrVjRR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGFAFg3__117zbarlchapg_olanzrVjYo1RRR
+.weak b__MGFAFg3__117zbarlchapg_olanzrVjYo1RRR
 .type b__MGFAFg3__117zbarlchapg_olanzrVjYo1RRR,%object
 b__MGFAFg3__117zbarlchapg_olanzrVjYo1RRR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGFAFg3__18zrffntrfVjRR
+.weak b__MGFAFg3__18zrffntrfVjRR
 .type b__MGFAFg3__18zrffntrfVjRR,%object
 b__MGFAFg3__18zrffntrfVjRR:
 .space __SIZEOF_POINTER__
@@ -5733,7 +5733,7 @@
 b__MAXFg3__115__pbqrpig_hgs16VQfYo0RR11qb_rapbqvatRi:
 nop
 .text
-.globl b__MAXFg3__19zbarl_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR6qb_trgRF4_F4_oEAF_8vbf_onfrREwEr
+.weak b__MAXFg3__19zbarl_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR6qb_trgRF4_F4_oEAF_8vbf_onfrREwEr
 .type b__MAXFg3__19zbarl_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR6qb_trgRF4_F4_oEAF_8vbf_onfrREwEr,%function
 b__MAXFg3__19zbarl_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR6qb_trgRF4_F4_oEAF_8vbf_onfrREwEr:
 nop
@@ -5743,7 +5743,7 @@
 b__MGVAFg3__18ahzchapgVpRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__16__fbegVEAF_6__yrffVrrRRCrRRiG0_F5_G_
+.weak b__MAFg3__16__fbegVEAF_6__yrffVrrRRCrRRiG0_F5_G_
 .type b__MAFg3__16__fbegVEAF_6__yrffVrrRRCrRRiG0_F5_G_,%function
 b__MAFg3__16__fbegVEAF_6__yrffVrrRRCrRRiG0_F5_G_:
 nop
@@ -5758,47 +5758,47 @@
 b__MAFg3__120__guebj_flfgrz_reebeRvCXp:
 nop
 .data
-.globl b__MGPAFg3__114onfvp_vbfgernzVpAF_11pune_genvgfVpRRRR0_AF_13onfvp_vfgernzVpF2_RR
+.weak b__MGPAFg3__114onfvp_vbfgernzVpAF_11pune_genvgfVpRRRR0_AF_13onfvp_vfgernzVpF2_RR
 .type b__MGPAFg3__114onfvp_vbfgernzVpAF_11pune_genvgfVpRRRR0_AF_13onfvp_vfgernzVpF2_RR,%object
 b__MGPAFg3__114onfvp_vbfgernzVpAF_11pune_genvgfVpRRRR0_AF_13onfvp_vfgernzVpF2_RR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__17pbyyngrVpRQ1Ri
+.weak b__MAFg3__17pbyyngrVpRQ1Ri
 .type b__MAFg3__17pbyyngrVpRQ1Ri,%function
 b__MAFg3__17pbyyngrVpRQ1Ri:
 nop
 .data
-.globl b__MGVAFg3__110zbarlchapgVjYo0RRR
+.weak b__MGVAFg3__110zbarlchapgVjYo0RRR
 .type b__MGVAFg3__110zbarlchapgVjYo0RRR,%object
 b__MGVAFg3__110zbarlchapgVjYo0RRR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGVAFg3__18gvzr_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRRR
+.weak b__MGVAFg3__18gvzr_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRRR
 .type b__MGVAFg3__18gvzr_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRRR,%object
 b__MGVAFg3__18gvzr_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MajzEXFg9abguebj_g
+.weak b__MajzEXFg9abguebj_g
 .type b__MajzEXFg9abguebj_g,%function
 b__MajzEXFg9abguebj_g:
 nop
 .text
-.globl b__MAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRR4frgcRCpF4_
+.weak b__MAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRR4frgcRCpF4_
 .type b__MAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRR4frgcRCpF4_,%function
 b__MAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRR4frgcRCpF4_:
 nop
 .data
-.globl b__MGVAFg3__113onfvp_bfgernzVjAF_11pune_genvgfVjRRRR
+.weak b__MGVAFg3__113onfvp_bfgernzVjAF_11pune_genvgfVjRRRR
 .type b__MGVAFg3__113onfvp_bfgernzVjAF_11pune_genvgfVjRRRR,%object
 b__MGVAFg3__113onfvp_bfgernzVjAF_11pune_genvgfVjRRRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAXFg3__110zbarlchapgVjYo0RR16qb_gubhfnaqf_frcRi
+.weak b__MAXFg3__110zbarlchapgVjYo0RR16qb_gubhfnaqf_frcRi
 .type b__MAXFg3__110zbarlchapgVjYo0RR16qb_gubhfnaqf_frcRi,%function
 b__MAXFg3__110zbarlchapgVjYo0RR16qb_gubhfnaqf_frcRi:
 nop
 .text
-.globl b__MAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRR7trgyvarRCjyj
+.weak b__MAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRR7trgyvarRCjyj
 .type b__MAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRR7trgyvarRCjyj,%function
 b__MAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRR7trgyvarRCjyj:
 nop
@@ -5808,7 +5808,7 @@
 b__MAXFg3__115__pbqrpig_hgs16VQfYo1RR10qb_hafuvsgRE9zofgngr_gCpF4_EF4_:
 nop
 .text
-.globl b__MAXFg3__117zbarlchapg_olanzrVpYo1RR16qb_gubhfnaqf_frcRi
+.weak b__MAXFg3__117zbarlchapg_olanzrVpYo1RR16qb_gubhfnaqf_frcRi
 .type b__MAXFg3__117zbarlchapg_olanzrVpYo1RR16qb_gubhfnaqf_frcRi,%function
 b__MAXFg3__117zbarlchapg_olanzrVpYo1RR16qb_gubhfnaqf_frcRi:
 nop
@@ -5818,7 +5818,7 @@
 b__MAXFg3__18ahzchapgVpR11qb_tebhcvatRi:
 nop
 .text
-.globl b__MAFg3__114pbqrpig_olanzrVjp9zofgngr_gRQ1Ri
+.weak b__MAFg3__114pbqrpig_olanzrVjp9zofgngr_gRQ1Ri
 .type b__MAFg3__114pbqrpig_olanzrVjp9zofgngr_gRQ1Ri,%function
 b__MAFg3__114pbqrpig_olanzrVjp9zofgngr_gRQ1Ri:
 nop
@@ -5833,7 +5833,7 @@
 b__MGIAFg3__114pbyyngr_olanzrVjRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAXFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR7pbzcnerRzzCXp
+.weak b__MAXFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR7pbzcnerRzzCXp
 .type b__MAXFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR7pbzcnerRzzCXp,%function
 b__MAXFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR7pbzcnerRzzCXp:
 nop
@@ -5843,17 +5843,17 @@
 b__MAFg3__114reebe_pngrtbelQ1Ri:
 nop
 .text
-.globl b__MqnCiFg11nyvta_iny_g
+.weak b__MqnCiFg11nyvta_iny_g
 .type b__MqnCiFg11nyvta_iny_g,%function
 b__MqnCiFg11nyvta_iny_g:
 nop
 .data
-.globl b__MGGAFg3__114onfvp_vbfgernzVpAF_11pune_genvgfVpRRRR
+.weak b__MGGAFg3__114onfvp_vbfgernzVpAF_11pune_genvgfVpRRRR
 .type b__MGGAFg3__114onfvp_vbfgernzVpAF_11pune_genvgfVpRRRR,%object
 b__MGGAFg3__114onfvp_vbfgernzVpAF_11pune_genvgfVpRRRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAXFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR7pbzcnerRzzCXpz
+.weak b__MAXFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR7pbzcnerRzzCXpz
 .type b__MAXFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR7pbzcnerRzzCXpz,%function
 b__MAXFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR7pbzcnerRzzCXpz:
 nop
@@ -5863,7 +5863,7 @@
 b__MAFg3__16ybpnyr4gvzrR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGVAFg3__117zbarlchapg_olanzrVpYo0RRR
+.weak b__MGVAFg3__117zbarlchapg_olanzrVpYo0RRR
 .type b__MGVAFg3__117zbarlchapg_olanzrVpYo0RRR,%object
 b__MGVAFg3__117zbarlchapg_olanzrVpYo0RRR:
 .space __SIZEOF_POINTER__
@@ -5878,12 +5878,12 @@
 b__MAXFg3__114__pbqrpig_hgs8VQvR9qb_yratguRE9zofgngr_gCXpF5_z:
 nop
 .text
-.globl b__MAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRRP1RCAF_15onfvp_fgernzohsVjF2_RR
+.weak b__MAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRRP1RCAF_15onfvp_fgernzohsVjF2_RR
 .type b__MAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRRP1RCAF_15onfvp_fgernzohsVjF2_RR,%function
 b__MAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRRP1RCAF_15onfvp_fgernzohsVjF2_RR:
 nop
 .data
-.globl b__MGVAFg3__17ahz_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRRR
+.weak b__MGVAFg3__17ahz_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRRR
 .type b__MGVAFg3__17ahz_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRRR,%object
 b__MGVAFg3__17ahz_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRRR:
 .space __SIZEOF_POINTER__
@@ -5918,17 +5918,17 @@
 b__MAFg3__121erphefvir_gvzrq_zhgrkP2Ri:
 nop
 .text
-.globl b__MqyCiFg11nyvta_iny_gEXFg9abguebj_g
+.weak b__MqyCiFg11nyvta_iny_gEXFg9abguebj_g
 .type b__MqyCiFg11nyvta_iny_gEXFg9abguebj_g,%function
 b__MqyCiFg11nyvta_iny_gEXFg9abguebj_g:
 nop
 .text
-.globl b__MAFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR6nccraqRCXpz
+.weak b__MAFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR6nccraqRCXpz
 .type b__MAFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR6nccraqRCXpz,%function
 b__MAFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR6nccraqRCXpz:
 nop
 .text
-.globl b__MAXFg3__18gvzr_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR12__trg_frpbaqREvEF4_F4_EwEXAF_5pglcrVpRR
+.weak b__MAXFg3__18gvzr_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR12__trg_frpbaqREvEF4_F4_EwEXAF_5pglcrVpRR
 .type b__MAXFg3__18gvzr_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR12__trg_frpbaqREvEF4_F4_EwEXAF_5pglcrVpRR,%function
 b__MAXFg3__18gvzr_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR12__trg_frpbaqREvEF4_F4_EwEXAF_5pglcrVpRR:
 nop
@@ -5938,22 +5938,22 @@
 b__MAFg3__16ybpnyrP1REXF0_CXpv:
 nop
 .data
-.globl b__MGIAFg3__17ahz_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRRR
+.weak b__MGIAFg3__17ahz_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRRR
 .type b__MGIAFg3__17ahz_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRRR,%object
 b__MGIAFg3__17ahz_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__115onfvp_fgernzohsVjAF_11pune_genvgfVjRRR5ftrgaRCjy
+.weak b__MAFg3__115onfvp_fgernzohsVjAF_11pune_genvgfVjRRR5ftrgaRCjy
 .type b__MAFg3__115onfvp_fgernzohsVjAF_11pune_genvgfVjRRR5ftrgaRCjy,%function
 b__MAFg3__115onfvp_fgernzohsVjAF_11pune_genvgfVjRRR5ftrgaRCjy:
 nop
 .text
-.globl b__MAFg3__115onfvp_fgernzohsVjAF_11pune_genvgfVjRRR6frgohsRCjy
+.weak b__MAFg3__115onfvp_fgernzohsVjAF_11pune_genvgfVjRRR6frgohsRCjy
 .type b__MAFg3__115onfvp_fgernzohsVjAF_11pune_genvgfVjRRR6frgohsRCjy,%function
 b__MAFg3__115onfvp_fgernzohsVjAF_11pune_genvgfVjRRR6frgohsRCjy:
 nop
 .text
-.globl b__MAXFg3__18gvzr_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR10__trg_ubheREvEF4_F4_EwEXAF_5pglcrVjRR
+.weak b__MAXFg3__18gvzr_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR10__trg_ubheREvEF4_F4_EwEXAF_5pglcrVjRR
 .type b__MAXFg3__18gvzr_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR10__trg_ubheREvEF4_F4_EwEXAF_5pglcrVjRR,%function
 b__MAXFg3__18gvzr_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR10__trg_ubheREvEF4_F4_EwEXAF_5pglcrVjRR:
 nop
@@ -5968,7 +5968,7 @@
 b__MAFg16arfgrq_rkprcgvbaP2Ri:
 nop
 .text
-.globl b__MAFg3__113onfvp_bfgernzVjAF_11pune_genvgfVjRRRP1RCAF_15onfvp_fgernzohsVjF2_RR
+.weak b__MAFg3__113onfvp_bfgernzVjAF_11pune_genvgfVjRRRP1RCAF_15onfvp_fgernzohsVjF2_RR
 .type b__MAFg3__113onfvp_bfgernzVjAF_11pune_genvgfVjRRRP1RCAF_15onfvp_fgernzohsVjF2_RR,%function
 b__MAFg3__113onfvp_bfgernzVjAF_11pune_genvgfVjRRRP1RCAF_15onfvp_fgernzohsVjF2_RR:
 nop
@@ -5993,22 +5993,22 @@
 b__MAXFg3__17pbqrpigVpp9zofgngr_gR16qb_nyjnlf_abpbaiRi:
 nop
 .text
-.globl b__MAFg3__17pbyyngrVpRQ2Ri
+.weak b__MAFg3__17pbyyngrVpRQ2Ri
 .type b__MAFg3__17pbyyngrVpRQ2Ri,%function
 b__MAFg3__17pbyyngrVpRQ2Ri:
 nop
 .text
-.globl b__MAFg3__19__ahz_trgVjR17__fgntr2_vag_ybbcRjvCpEF2_EwjEXAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRCwEFQ_Cj
+.weak b__MAFg3__19__ahz_trgVjR17__fgntr2_vag_ybbcRjvCpEF2_EwjEXAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRCwEFQ_Cj
 .type b__MAFg3__19__ahz_trgVjR17__fgntr2_vag_ybbcRjvCpEF2_EwjEXAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRCwEFQ_Cj,%function
 b__MAFg3__19__ahz_trgVjR17__fgntr2_vag_ybbcRjvCpEF2_EwjEXAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRCwEFQ_Cj:
 nop
 .text
-.globl b__MAFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR6__vavgRzp
+.weak b__MAFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR6__vavgRzp
 .type b__MAFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR6__vavgRzp,%function
 b__MAFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR6__vavgRzp:
 nop
 .text
-.globl b__MqyCiEXFg9abguebj_g
+.weak b__MqyCiEXFg9abguebj_g
 .type b__MqyCiEXFg9abguebj_g,%function
 b__MqyCiEXFg9abguebj_g:
 nop
@@ -6023,7 +6023,7 @@
 b__MAFg3__114__trg_pbafg_qoRi:
 nop
 .text
-.globl b__MAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRR9haqresybjRi
+.weak b__MAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRR9haqresybjRi
 .type b__MAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRR9haqresybjRi,%function
 b__MAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRR9haqresybjRi:
 nop
@@ -6043,17 +6043,17 @@
 b__MAFg3__114reebe_pngrtbelQ2Ri:
 nop
 .text
-.globl b__MAFg3__113onfvp_bfgernzVjAF_11pune_genvgfVjRRR3chgRj
+.weak b__MAFg3__113onfvp_bfgernzVjAF_11pune_genvgfVjRRR3chgRj
 .type b__MAFg3__113onfvp_bfgernzVjAF_11pune_genvgfVjRRR3chgRj,%function
 b__MAFg3__113onfvp_bfgernzVjAF_11pune_genvgfVjRRR3chgRj:
 nop
 .text
-.globl b__MAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRR6kfchgaRCXpy
+.weak b__MAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRR6kfchgaRCXpy
 .type b__MAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRR6kfchgaRCXpy,%function
 b__MAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRR6kfchgaRCXpy:
 nop
 .text
-.globl b__MAFg3__114pbqrpig_olanzrVjp9zofgngr_gRQ2Ri
+.weak b__MAFg3__114pbqrpig_olanzrVjp9zofgngr_gRQ2Ri
 .type b__MAFg3__114pbqrpig_olanzrVjp9zofgngr_gRQ2Ri,%function
 b__MAFg3__114pbqrpig_olanzrVjp9zofgngr_gRQ2Ri:
 nop
@@ -6068,12 +6068,12 @@
 b__MAFg3__112fgefgernzohs3fgeRi:
 nop
 .text
-.globl b__MAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRR6vtaberRyw
+.weak b__MAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRR6vtaberRyw
 .type b__MAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRR6vtaberRyw,%function
 b__MAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRR6vtaberRyw:
 nop
 .text
-.globl b__MAXFg3__18gvzr_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR12__trg_zvahgrREvEF4_F4_EwEXAF_5pglcrVjRR
+.weak b__MAXFg3__18gvzr_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR12__trg_zvahgrREvEF4_F4_EwEXAF_5pglcrVjRR
 .type b__MAXFg3__18gvzr_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR12__trg_zvahgrREvEF4_F4_EwEXAF_5pglcrVjRR,%function
 b__MAXFg3__18gvzr_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR12__trg_zvahgrREvEF4_F4_EwEXAF_5pglcrVjRR:
 nop
@@ -6088,12 +6088,12 @@
 b__MAFg3__17pbqrpigVQfp9zofgngr_gR2vqR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGFAFg3__115gvzr_trg_olanzrVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRRR
+.weak b__MGFAFg3__115gvzr_trg_olanzrVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRRR
 .type b__MGFAFg3__115gvzr_trg_olanzrVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRRR,%object
 b__MGFAFg3__115gvzr_trg_olanzrVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__127__vafregvba_fbeg_vapbzcyrgrVEAF_6__yrffVwwRRCwRRoG0_F5_G_
+.weak b__MAFg3__127__vafregvba_fbeg_vapbzcyrgrVEAF_6__yrffVwwRRCwRRoG0_F5_G_
 .type b__MAFg3__127__vafregvba_fbeg_vapbzcyrgrVEAF_6__yrffVwwRRCwRRoG0_F5_G_,%function
 b__MAFg3__127__vafregvba_fbeg_vapbzcyrgrVEAF_6__yrffVwwRRCwRRoG0_F5_G_:
 nop
@@ -6103,7 +6103,7 @@
 b__MAFg3__17cebzvfrViR24frg_inyhr_ng_guernq_rkvgRi:
 nop
 .text
-.globl b__MAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRR9fchgonpxpRp
+.weak b__MAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRR9fchgonpxpRp
 .type b__MAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRR9fchgonpxpRp,%function
 b__MAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRR9fchgonpxpRp:
 nop
@@ -6118,12 +6118,12 @@
 b__MAFg3__18vbf_onfr4yrsgR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAXFg3__18zrffntrfVpR7qb_bcraREXAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRREXAF_6ybpnyrR
+.weak b__MAXFg3__18zrffntrfVpR7qb_bcraREXAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRREXAF_6ybpnyrR
 .type b__MAXFg3__18zrffntrfVpR7qb_bcraREXAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRREXAF_6ybpnyrR,%function
 b__MAXFg3__18zrffntrfVpR7qb_bcraREXAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRREXAF_6ybpnyrR:
 nop
 .data
-.globl b__MAFg3__110zbarlchapgVpYo0RR4vagyR
+.weak b__MAFg3__110zbarlchapgVpYo0RR4vagyR
 .type b__MAFg3__110zbarlchapgVpYo0RR4vagyR,%object
 b__MAFg3__110zbarlchapgVpYo0RR4vagyR:
 .space __SIZEOF_POINTER__
@@ -6138,7 +6138,7 @@
 b__MAFg3__112flfgrz_reebe6__vavgREXAF_10reebe_pbqrRAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR:
 nop
 .text
-.globl b__MAFg3__114onfvp_vbfgernzVpAF_11pune_genvgfVpRRRP2RCAF_15onfvp_fgernzohsVpF2_RR
+.weak b__MAFg3__114onfvp_vbfgernzVpAF_11pune_genvgfVpRRRP2RCAF_15onfvp_fgernzohsVpF2_RR
 .type b__MAFg3__114onfvp_vbfgernzVpAF_11pune_genvgfVpRRRP2RCAF_15onfvp_fgernzohsVpF2_RR,%function
 b__MAFg3__114onfvp_vbfgernzVpAF_11pune_genvgfVpRRRP2RCAF_15onfvp_fgernzohsVpF2_RR:
 nop
@@ -6163,7 +6163,7 @@
 b__MAFg3__112cynprubyqref2_3R:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAXFg3__18gvzr_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR11__trg_nz_czREvEF4_F4_EwEXAF_5pglcrVjRR
+.weak b__MAXFg3__18gvzr_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR11__trg_nz_czREvEF4_F4_EwEXAF_5pglcrVjRR
 .type b__MAXFg3__18gvzr_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR11__trg_nz_czREvEF4_F4_EwEXAF_5pglcrVjRR,%function
 b__MAXFg3__18gvzr_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR11__trg_nz_czREvEF4_F4_EwEXAF_5pglcrVjRR:
 nop
@@ -6183,7 +6183,7 @@
 b__MFg17pheerag_rkprcgvbai:
 nop
 .text
-.globl b__MAXFg3__110zbarlchapgVjYo1RR14qb_senp_qvtvgfRi
+.weak b__MAXFg3__110zbarlchapgVjYo1RR14qb_senp_qvtvgfRi
 .type b__MAXFg3__110zbarlchapgVjYo1RR14qb_senp_qvtvgfRi,%function
 b__MAXFg3__110zbarlchapgVjYo1RR14qb_senp_qvtvgfRi:
 nop
@@ -6198,12 +6198,12 @@
 b__MAFg8onq_pnfgP1Ri:
 nop
 .text
-.globl b__MAXFg3__18gvzr_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR14qb_trg_jrrxqnlRF4_F4_EAF_8vbf_onfrREwC2gz
+.weak b__MAXFg3__18gvzr_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR14qb_trg_jrrxqnlRF4_F4_EAF_8vbf_onfrREwC2gz
 .type b__MAXFg3__18gvzr_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR14qb_trg_jrrxqnlRF4_F4_EAF_8vbf_onfrREwC2gz,%function
 b__MAXFg3__18gvzr_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR14qb_trg_jrrxqnlRF4_F4_EAF_8vbf_onfrREwC2gz:
 nop
 .text
-.globl b__MAXFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRR7pbzcnerRzzCXj
+.weak b__MAXFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRR7pbzcnerRzzCXj
 .type b__MAXFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRR7pbzcnerRzzCXj,%function
 b__MAXFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRR7pbzcnerRzzCXj:
 nop
@@ -6228,22 +6228,22 @@
 b__MAFg3__17pbqrpigVjp9zofgngr_gRQ2Ri:
 nop
 .data
-.globl b__MGVAFg3__114__ahz_chg_onfrR
+.weak b__MGVAFg3__114__ahz_chg_onfrR
 .type b__MGVAFg3__114__ahz_chg_onfrR,%object
 b__MGVAFg3__114__ahz_chg_onfrR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__113onfvp_bfgernzVjAF_11pune_genvgfVjRRR5frrxcRAF_4scbfV9zofgngr_gRR
+.weak b__MAFg3__113onfvp_bfgernzVjAF_11pune_genvgfVjRRR5frrxcRAF_4scbfV9zofgngr_gRR
 .type b__MAFg3__113onfvp_bfgernzVjAF_11pune_genvgfVjRRR5frrxcRAF_4scbfV9zofgngr_gRR,%function
 b__MAFg3__113onfvp_bfgernzVjAF_11pune_genvgfVjRRR5frrxcRAF_4scbfV9zofgngr_gRR:
 nop
 .text
-.globl b__MAXFg3__110zbarlchapgVpYo0RR16qb_cbfvgvir_fvtaRi
+.weak b__MAXFg3__110zbarlchapgVpYo0RR16qb_cbfvgvir_fvtaRi
 .type b__MAXFg3__110zbarlchapgVpYo0RR16qb_cbfvgvir_fvtaRi,%function
 b__MAXFg3__110zbarlchapgVpYo0RR16qb_cbfvgvir_fvtaRi:
 nop
 .text
-.globl b__MAXFg3__19zbarl_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR6qb_trgRF4_F4_oEAF_8vbf_onfrREwEAF_12onfvp_fgevatVpF3_AF_9nyybpngbeVpRRRR
+.weak b__MAXFg3__19zbarl_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR6qb_trgRF4_F4_oEAF_8vbf_onfrREwEAF_12onfvp_fgevatVpF3_AF_9nyybpngbeVpRRRR
 .type b__MAXFg3__19zbarl_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR6qb_trgRF4_F4_oEAF_8vbf_onfrREwEAF_12onfvp_fgevatVpF3_AF_9nyybpngbeVpRRRR,%function
 b__MAXFg3__19zbarl_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR6qb_trgRF4_F4_oEAF_8vbf_onfrREwEAF_12onfvp_fgevatVpF3_AF_9nyybpngbeVpRRRR:
 nop
@@ -6253,7 +6253,7 @@
 b__MGIAFg3__110bfgefgernzR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAXFg3__110zbarlchapgVjYo1RR11qb_tebhcvatRi
+.weak b__MAXFg3__110zbarlchapgVjYo1RR11qb_tebhcvatRi
 .type b__MAXFg3__110zbarlchapgVjYo1RR11qb_tebhcvatRi,%function
 b__MAXFg3__110zbarlchapgVjYo1RR11qb_tebhcvatRi:
 nop
@@ -6273,7 +6273,7 @@
 b__MAFg3__110__gvzr_chgP2RCXp:
 nop
 .text
-.globl b__MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRRefRCSEAF_8vbf_onfrRF5_R
+.weak b__MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRRefRCSEAF_8vbf_onfrRF5_R
 .type b__MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRRefRCSEAF_8vbf_onfrRF5_R,%function
 b__MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRRefRCSEAF_8vbf_onfrRF5_R:
 nop
@@ -6313,22 +6313,22 @@
 b__MAFg3__112flfgrz_reebeP2RAF_10reebe_pbqrREXAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR:
 nop
 .text
-.globl b__MAFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRR5renfrRzz
+.weak b__MAFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRR5renfrRzz
 .type b__MAFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRR5renfrRzz,%function
 b__MAFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRR5renfrRzz:
 nop
 .text
-.globl b__MAFg3__114pbqrpig_olanzrVQvp9zofgngr_gRQ0Ri
+.weak b__MAFg3__114pbqrpig_olanzrVQvp9zofgngr_gRQ0Ri
 .type b__MAFg3__114pbqrpig_olanzrVQvp9zofgngr_gRQ0Ri,%function
 b__MAFg3__114pbqrpig_olanzrVQvp9zofgngr_gRQ0Ri:
 nop
 .data
-.globl b__MGVAFg3__115zrffntrf_olanzrVpRR
+.weak b__MGVAFg3__115zrffntrf_olanzrVpRR
 .type b__MGVAFg3__115zrffntrf_olanzrVpRR,%object
 b__MGVAFg3__115zrffntrf_olanzrVpRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRR8va_ninvyRi
+.weak b__MAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRR8va_ninvyRi
 .type b__MAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRR8va_ninvyRi,%function
 b__MAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRR8va_ninvyRi:
 nop
@@ -6343,12 +6343,12 @@
 b__MGFCXn:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRR4frgtRCpF4_F4_
+.weak b__MAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRR4frgtRCpF4_F4_
 .type b__MAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRR4frgtRCpF4_F4_,%function
 b__MAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRR4frgtRCpF4_F4_:
 nop
 .text
-.globl b__MAXFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR5esvaqRpz
+.weak b__MAXFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR5esvaqRpz
 .type b__MAXFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR5esvaqRpz,%function
 b__MAXFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR5esvaqRpz:
 nop
@@ -6368,7 +6368,7 @@
 b__MAFg3__18vbf_onfr5evtugR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAXFg3__18gvzr_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR13qb_qngr_beqreRi
+.weak b__MAXFg3__18gvzr_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR13qb_qngr_beqreRi
 .type b__MAXFg3__18gvzr_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR13qb_qngr_beqreRi,%function
 b__MAXFg3__18gvzr_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR13qb_qngr_beqreRi:
 nop
@@ -6383,7 +6383,7 @@
 b__MAFg8onq_pnfgP2Ri:
 nop
 .text
-.globl b__MAFg3__115onfvp_fgernzohsVjAF_11pune_genvgfVjRRR6kfchgaRCXjy
+.weak b__MAFg3__115onfvp_fgernzohsVjAF_11pune_genvgfVjRRR6kfchgaRCXjy
 .type b__MAFg3__115onfvp_fgernzohsVjAF_11pune_genvgfVjRRR6kfchgaRCXjy,%function
 b__MAFg3__115onfvp_fgernzohsVjAF_11pune_genvgfVjRRR6kfchgaRCXjy:
 nop
@@ -6398,22 +6398,22 @@
 b__MAFg3__16ybpnyrnFREXF0_:
 nop
 .data
-.globl b__MAFg3__17ahz_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR2vqR
+.weak b__MAFg3__17ahz_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR2vqR
 .type b__MAFg3__17ahz_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR2vqR,%object
 b__MAFg3__17ahz_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR2vqR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MAFg3__17ahz_chgVpAF_19bfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR2vqR
+.weak b__MAFg3__17ahz_chgVpAF_19bfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR2vqR
 .type b__MAFg3__17ahz_chgVpAF_19bfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR2vqR,%object
 b__MAFg3__17ahz_chgVpAF_19bfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR2vqR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAXFg3__117zbarlchapg_olanzrVjYo1RR16qb_artngvir_fvtaRi
+.weak b__MAXFg3__117zbarlchapg_olanzrVjYo1RR16qb_artngvir_fvtaRi
 .type b__MAXFg3__117zbarlchapg_olanzrVjYo1RR16qb_artngvir_fvtaRi,%function
 b__MAXFg3__117zbarlchapg_olanzrVjYo1RR16qb_artngvir_fvtaRi:
 nop
 .text
-.globl b__MAXFg3__18gvzr_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR13__trg_crepragREF4_F4_EwEXAF_5pglcrVjRR
+.weak b__MAXFg3__18gvzr_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR13__trg_crepragREF4_F4_EwEXAF_5pglcrVjRR
 .type b__MAXFg3__18gvzr_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR13__trg_crepragREF4_F4_EwEXAF_5pglcrVjRR,%function
 b__MAXFg3__18gvzr_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR13__trg_crepragREF4_F4_EwEXAF_5pglcrVjRR:
 nop
@@ -6428,7 +6428,7 @@
 b__MGFFg12qbznva_reebe:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRR6fragelP1REF3_o
+.weak b__MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRR6fragelP1REF3_o
 .type b__MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRR6fragelP1REF3_o,%function
 b__MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRR6fragelP1REF3_o:
 nop
@@ -6453,7 +6453,7 @@
 b__MAFg3__124__yvopcc_qroht_rkprcgvbaP1REXAF_19__yvopcc_qroht_vasbR:
 nop
 .text
-.globl b__MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRR4flapRi
+.weak b__MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRR4flapRi
 .type b__MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRR4flapRi,%function
 b__MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRR4flapRi:
 nop
@@ -6463,12 +6463,12 @@
 b__MAFg3__18vbf_onfr2vaR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAXFg3__19zbarl_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR6qb_trgRF4_F4_oEAF_8vbf_onfrREwEr
+.weak b__MAXFg3__19zbarl_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR6qb_trgRF4_F4_oEAF_8vbf_onfrREwEr
 .type b__MAXFg3__19zbarl_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR6qb_trgRF4_F4_oEAF_8vbf_onfrREwEr,%function
 b__MAXFg3__19zbarl_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR6qb_trgRF4_F4_oEAF_8vbf_onfrREwEr:
 nop
 .text
-.globl b__MAFg3__19__ahz_chgVjR21__jvqra_naq_tebhc_vagRCpF2_F2_CjEF3_F4_EXAF_6ybpnyrR
+.weak b__MAFg3__19__ahz_chgVjR21__jvqra_naq_tebhc_vagRCpF2_F2_CjEF3_F4_EXAF_6ybpnyrR
 .type b__MAFg3__19__ahz_chgVjR21__jvqra_naq_tebhc_vagRCpF2_F2_CjEF3_F4_EXAF_6ybpnyrR,%function
 b__MAFg3__19__ahz_chgVjR21__jvqra_naq_tebhc_vagRCpF2_F2_CjEF3_F4_EXAF_6ybpnyrR:
 nop
@@ -6493,7 +6493,7 @@
 b__MAFg11enatr_reebeQ1Ri:
 nop
 .data
-.globl b__MGVAFg3__115gvzr_chg_olanzrVpAF_19bfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRRR
+.weak b__MGVAFg3__115gvzr_chg_olanzrVpAF_19bfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRRR
 .type b__MGVAFg3__115gvzr_chg_olanzrVpAF_19bfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRRR,%object
 b__MGVAFg3__115gvzr_chg_olanzrVpAF_19bfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRRR:
 .space __SIZEOF_POINTER__
@@ -6508,12 +6508,12 @@
 b__MGFCXv:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__115onfvp_fgernzohsVjAF_11pune_genvgfVjRRRP1REXF3_
+.weak b__MAFg3__115onfvp_fgernzohsVjAF_11pune_genvgfVjRRRP1REXF3_
 .type b__MAFg3__115onfvp_fgernzohsVjAF_11pune_genvgfVjRRRP1REXF3_,%function
 b__MAFg3__115onfvp_fgernzohsVjAF_11pune_genvgfVjRRRP1REXF3_:
 nop
 .data
-.globl b__MAFg3__110zbarlchapgVjYo1RR4vagyR
+.weak b__MAFg3__110zbarlchapgVjYo1RR4vagyR
 .type b__MAFg3__110zbarlchapgVjYo1RR4vagyR,%object
 b__MAFg3__110zbarlchapgVjYo1RR4vagyR:
 .space __SIZEOF_POINTER__
@@ -6523,7 +6523,7 @@
 b__MAFg3__114__ahz_chg_onfr18__vqragvsl_cnqqvatRCpF1_EXAF_8vbf_onfrR:
 nop
 .data
-.globl b__MGFAFg3__19zbarl_chgVpAF_19bfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRRR
+.weak b__MGFAFg3__19zbarl_chgVpAF_19bfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRRR
 .type b__MGFAFg3__19zbarl_chgVpAF_19bfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRRR,%object
 b__MGFAFg3__19zbarl_chgVpAF_19bfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRRR:
 .space __SIZEOF_POINTER__
@@ -6558,7 +6558,7 @@
 b__MAXFg3__15pglcrVpR9qb_aneebjRpp:
 nop
 .text
-.globl b__MAFg3__114pbqrpig_olanzrVQvp9zofgngr_gRQ1Ri
+.weak b__MAFg3__114pbqrpig_olanzrVQvp9zofgngr_gRQ1Ri
 .type b__MAFg3__114pbqrpig_olanzrVQvp9zofgngr_gRQ1Ri,%function
 b__MAFg3__114pbqrpig_olanzrVQvp9zofgngr_gRQ1Ri:
 nop
@@ -6593,7 +6593,7 @@
 b__MGFCXa:
 .space __SIZEOF_POINTER__
 .text
-.globl b__Majz
+.weak b__Majz
 .type b__Majz,%function
 b__Majz:
 nop
@@ -6608,7 +6608,7 @@
 b__MAFg12qbznva_reebeQ0Ri:
 nop
 .data
-.globl b__MGFAFg3__114__ahz_chg_onfrR
+.weak b__MGFAFg3__114__ahz_chg_onfrR
 .type b__MGFAFg3__114__ahz_chg_onfrR,%object
 b__MGFAFg3__114__ahz_chg_onfrR:
 .space __SIZEOF_POINTER__
@@ -6623,7 +6623,7 @@
 b__MGFCXb:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__127__vafregvba_fbeg_vapbzcyrgrVEAF_6__yrffVssRRCsRRoG0_F5_G_
+.weak b__MAFg3__127__vafregvba_fbeg_vapbzcyrgrVEAF_6__yrffVssRRCsRRoG0_F5_G_
 .type b__MAFg3__127__vafregvba_fbeg_vapbzcyrgrVEAF_6__yrffVssRRCsRRoG0_F5_G_,%function
 b__MAFg3__127__vafregvba_fbeg_vapbzcyrgrVEAF_6__yrffVssRRCsRRoG0_F5_G_:
 nop
@@ -6643,7 +6643,7 @@
 b__MAXFg3__115__pbqrpig_hgs16VjYo0RR13qb_znk_yratguRi:
 nop
 .text
-.globl b__MAXFg3__18gvzr_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR15__trg_zbaguanzrREvEF4_F4_EwEXAF_5pglcrVjRR
+.weak b__MAXFg3__18gvzr_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR15__trg_zbaguanzrREvEF4_F4_EwEXAF_5pglcrVjRR
 .type b__MAXFg3__18gvzr_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR15__trg_zbaguanzrREvEF4_F4_EwEXAF_5pglcrVjRR,%function
 b__MAXFg3__18gvzr_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR15__trg_zbaguanzrREvEF4_F4_EwEXAF_5pglcrVjRR:
 nop
@@ -6653,12 +6653,12 @@
 b__MAFg3__18ahzchapgVpRQ1Ri:
 nop
 .data
-.globl b__MGFAFg3__19__ahz_trgVpRR
+.weak b__MGFAFg3__19__ahz_trgVpRR
 .type b__MGFAFg3__19__ahz_trgVpRR,%object
 b__MGFAFg3__19__ahz_trgVpRR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGVAFg3__17pbyyngrVpRR
+.weak b__MGVAFg3__17pbyyngrVpRR
 .type b__MGVAFg3__17pbyyngrVpRR,%object
 b__MGVAFg3__17pbyyngrVpRR:
 .space __SIZEOF_POINTER__
@@ -6678,7 +6678,7 @@
 b__MAFg3__16shgherViRP1RCAF_17__nffbp_fho_fgngrR:
 nop
 .data
-.globl b__MGVAFg3__114pbqrpig_olanzrVpp9zofgngr_gRR
+.weak b__MGVAFg3__114pbqrpig_olanzrVpp9zofgngr_gRR
 .type b__MGVAFg3__114pbqrpig_olanzrVpp9zofgngr_gRR,%object
 b__MGVAFg3__114pbqrpig_olanzrVpp9zofgngr_gRR:
 .space __SIZEOF_POINTER__
@@ -6688,12 +6688,12 @@
 b__MAFg3__18__fc_zhg4ybpxRi:
 nop
 .text
-.globl b__MAXFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR17svaq_svefg_abg_bsRCXpzz
+.weak b__MAXFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR17svaq_svefg_abg_bsRCXpzz
 .type b__MAXFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR17svaq_svefg_abg_bsRCXpzz,%function
 b__MAXFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR17svaq_svefg_abg_bsRCXpzz:
 nop
 .text
-.globl b__MAFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR7ercynprRzzzp
+.weak b__MAFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR7ercynprRzzzp
 .type b__MAFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR7ercynprRzzzp,%function
 b__MAFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR7ercynprRzzzp:
 nop
@@ -6708,7 +6708,7 @@
 b__MGFAFg3__124__yvopcc_qroht_rkprcgvbaR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__115onfvp_fgernzohsVjAF_11pune_genvgfVjRRR5fchgaRCXjy
+.weak b__MAFg3__115onfvp_fgernzohsVjAF_11pune_genvgfVjRRR5fchgaRCXjy
 .type b__MAFg3__115onfvp_fgernzohsVjAF_11pune_genvgfVjRRR5fchgaRCXjy,%function
 b__MAFg3__115onfvp_fgernzohsVjAF_11pune_genvgfVjRRR5fchgaRCXjy:
 nop
@@ -6718,12 +6718,12 @@
 b__MGFCXg:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__115onfvp_fgernzohsVjAF_11pune_genvgfVjRRRQ0Ri
+.weak b__MAFg3__115onfvp_fgernzohsVjAF_11pune_genvgfVjRRRQ0Ri
 .type b__MAFg3__115onfvp_fgernzohsVjAF_11pune_genvgfVjRRRQ0Ri,%function
 b__MAFg3__115onfvp_fgernzohsVjAF_11pune_genvgfVjRRRQ0Ri:
 nop
 .data
-.globl b__MGFAFg3__114pbqrpig_olanzrVjp9zofgngr_gRR
+.weak b__MGFAFg3__114pbqrpig_olanzrVjp9zofgngr_gRR
 .type b__MGFAFg3__114pbqrpig_olanzrVjp9zofgngr_gRR,%object
 b__MGFAFg3__114pbqrpig_olanzrVjp9zofgngr_gRR:
 .space __SIZEOF_POINTER__
@@ -6733,7 +6733,7 @@
 b__MAFg3__15fgbhyREXAF_12onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRRRCzv:
 nop
 .text
-.globl b__MAXFg3__110zbarlchapgVjYo1RR16qb_cbfvgvir_fvtaRi
+.weak b__MAXFg3__110zbarlchapgVjYo1RR16qb_cbfvgvir_fvtaRi
 .type b__MAXFg3__110zbarlchapgVjYo1RR16qb_cbfvgvir_fvtaRi,%function
 b__MAXFg3__110zbarlchapgVjYo1RR16qb_cbfvgvir_fvtaRi:
 nop
@@ -6743,17 +6743,17 @@
 b__MAXFg3__115__pbqrpig_hgs16VQvYo1RR6qb_bhgRE9zofgngr_gCXQvF5_EF5_CpF7_EF7_:
 nop
 .text
-.globl b__MAXFg3__117zbarlchapg_olanzrVjYo0RR13qb_cbf_sbezngRi
+.weak b__MAXFg3__117zbarlchapg_olanzrVjYo0RR13qb_cbf_sbezngRi
 .type b__MAXFg3__117zbarlchapg_olanzrVjYo0RR13qb_cbf_sbezngRi,%function
 b__MAXFg3__117zbarlchapg_olanzrVjYo0RR13qb_cbf_sbezngRi:
 nop
 .text
-.globl b__MAXFg3__18gvzr_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR13qb_qngr_beqreRi
+.weak b__MAXFg3__18gvzr_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR13qb_qngr_beqreRi
 .type b__MAXFg3__18gvzr_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR13qb_qngr_beqreRi,%function
 b__MAXFg3__18gvzr_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR13qb_qngr_beqreRi:
 nop
 .text
-.globl b__MAFg3__114pbqrpig_olanzrVQvp9zofgngr_gRQ2Ri
+.weak b__MAFg3__114pbqrpig_olanzrVQvp9zofgngr_gRQ2Ri
 .type b__MAFg3__114pbqrpig_olanzrVQvp9zofgngr_gRQ2Ri,%function
 b__MAFg3__114pbqrpig_olanzrVQvp9zofgngr_gRQ2Ri:
 nop
@@ -6768,7 +6768,7 @@
 b__MAFg3__117zbarlchapg_olanzrVpYo0RR4vavgRCXp:
 nop
 .text
-.globl b__MAFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR6nffvtaRzp
+.weak b__MAFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR6nffvtaRzp
 .type b__MAFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR6nffvtaRzp,%function
 b__MAFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR6nffvtaRzp:
 nop
@@ -6788,12 +6788,12 @@
 b__MAXFg3__18ahzchapgVpR12qb_snyfranzrRi:
 nop
 .text
-.globl b__MAXFg3__18gvzr_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR6qb_trgRF4_F4_EAF_8vbf_onfrREwC2gzpp
+.weak b__MAXFg3__18gvzr_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR6qb_trgRF4_F4_EAF_8vbf_onfrREwC2gzpp
 .type b__MAXFg3__18gvzr_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR6qb_trgRF4_F4_EAF_8vbf_onfrREwC2gzpp,%function
 b__MAXFg3__18gvzr_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR6qb_trgRF4_F4_EAF_8vbf_onfrREwC2gzpp:
 nop
 .text
-.globl b__MAXFg3__120__irpgbe_onfr_pbzzbaVYo1RR20__guebj_bhg_bs_enatrRi
+.weak b__MAXFg3__120__irpgbe_onfr_pbzzbaVYo1RR20__guebj_bhg_bs_enatrRi
 .type b__MAXFg3__120__irpgbe_onfr_pbzzbaVYo1RR20__guebj_bhg_bs_enatrRi,%function
 b__MAXFg3__120__irpgbe_onfr_pbzzbaVYo1RR20__guebj_bhg_bs_enatrRi:
 nop
@@ -6808,17 +6808,17 @@
 b__MAFg3__112cynprubyqref2_4R:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__113onfvp_bfgernzVjAF_11pune_genvgfVjRRR5gryycRi
+.weak b__MAFg3__113onfvp_bfgernzVjAF_11pune_genvgfVjRRR5gryycRi
 .type b__MAFg3__113onfvp_bfgernzVjAF_11pune_genvgfVjRRR5gryycRi,%function
 b__MAFg3__113onfvp_bfgernzVjAF_11pune_genvgfVjRRR5gryycRi:
 nop
 .data
-.globl b__MGFAFg3__112pbqrpig_onfrR
+.weak b__MGFAFg3__112pbqrpig_onfrR
 .type b__MGFAFg3__112pbqrpig_onfrR,%object
 b__MGFAFg3__112pbqrpig_onfrR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAXFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRR17svaq_svefg_abg_bsRCXjzz
+.weak b__MAXFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRR17svaq_svefg_abg_bsRCXjzz
 .type b__MAXFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRR17svaq_svefg_abg_bsRCXjzz,%function
 b__MAXFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRR17svaq_svefg_abg_bsRCXjzz:
 nop
@@ -6833,12 +6833,12 @@
 b__MGFCXk:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRR4flapRi
+.weak b__MAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRR4flapRi
 .type b__MAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRR4flapRi,%function
 b__MAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRR4flapRi:
 nop
 .text
-.globl b__MAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRR9fubjznalpRi
+.weak b__MAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRR9fubjznalpRi
 .type b__MAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRR9fubjznalpRi,%function
 b__MAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRR9fubjznalpRi:
 nop
@@ -6863,7 +6863,7 @@
 b__MAFg3__124__yvopcc_qroht_rkprcgvbaP1REXF0_:
 nop
 .data
-.globl b__MGVAFg3__110__gvzr_chgR
+.weak b__MGVAFg3__110__gvzr_chgR
 .type b__MGVAFg3__110__gvzr_chgR,%object
 b__MGVAFg3__110__gvzr_chgR:
 .space __SIZEOF_POINTER__
@@ -6883,17 +6883,17 @@
 b__MAFg3__17cebzvfrViR9frg_inyhrRi:
 nop
 .text
-.globl b__MAXFg3__115onfvp_fgernzohsVjAF_11pune_genvgfVjRRR6trgybpRi
+.weak b__MAXFg3__115onfvp_fgernzohsVjAF_11pune_genvgfVjRRR6trgybpRi
 .type b__MAXFg3__115onfvp_fgernzohsVjAF_11pune_genvgfVjRRR6trgybpRi,%function
 b__MAXFg3__115onfvp_fgernzohsVjAF_11pune_genvgfVjRRR6trgybpRi:
 nop
 .text
-.globl b__MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRRP1RCAF_15onfvp_fgernzohsVpF2_RR
+.weak b__MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRRP1RCAF_15onfvp_fgernzohsVpF2_RR
 .type b__MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRRP1RCAF_15onfvp_fgernzohsVpF2_RR,%function
 b__MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRRP1RCAF_15onfvp_fgernzohsVpF2_RR:
 nop
 .data
-.globl b__MGVAFg3__18zrffntrfVjRR
+.weak b__MGVAFg3__18zrffntrfVjRR
 .type b__MGVAFg3__18zrffntrfVjRR,%object
 b__MGVAFg3__18zrffntrfVjRR:
 .space __SIZEOF_POINTER__
@@ -6908,7 +6908,7 @@
 b__MAFg3__18ahzchapgVpRQ2Ri:
 nop
 .text
-.globl b__MAFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRR6__vavgRCXjzz
+.weak b__MAFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRR6__vavgRCXjzz
 .type b__MAFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRR6__vavgRCXjzz,%function
 b__MAFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRR6__vavgRCXjzz:
 nop
@@ -6918,7 +6918,7 @@
 b__MAXFg3__115__pbqrpig_hgs16VQvYo0RR11qb_rapbqvatRi:
 nop
 .data
-.globl b__MGFAFg3__115gvzr_chg_olanzrVjAF_19bfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRRR
+.weak b__MGFAFg3__115gvzr_chg_olanzrVjAF_19bfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRRR
 .type b__MGFAFg3__115gvzr_chg_olanzrVjAF_19bfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRRR,%object
 b__MGFAFg3__115gvzr_chg_olanzrVjAF_19bfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRRR:
 .space __SIZEOF_POINTER__
@@ -6973,7 +6973,7 @@
 b__MGFCp:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__115onfvp_fgernzohsVjAF_11pune_genvgfVjRRRQ1Ri
+.weak b__MAFg3__115onfvp_fgernzohsVjAF_11pune_genvgfVjRRRQ1Ri
 .type b__MAFg3__115onfvp_fgernzohsVjAF_11pune_genvgfVjRRRQ1Ri,%function
 b__MAFg3__115onfvp_fgernzohsVjAF_11pune_genvgfVjRRRQ1Ri:
 nop
@@ -7008,7 +7008,7 @@
 b__MGIA10__pkknovi119__cbvagre_glcr_vasbR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRR7fhatrgpRi
+.weak b__MAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRR7fhatrgpRi
 .type b__MAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRR7fhatrgpRi,%function
 b__MAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRR7fhatrgpRi:
 nop
@@ -7033,7 +7033,7 @@
 b__MAXFg3__17pbqrpigVQfp9zofgngr_gR9qb_yratguREF1_CXpF5_z:
 nop
 .text
-.globl b__MAXFg3__18gvzr_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR16qb_trg_zbaguanzrRF4_F4_EAF_8vbf_onfrREwC2gz
+.weak b__MAXFg3__18gvzr_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR16qb_trg_zbaguanzrRF4_F4_EAF_8vbf_onfrREwC2gz
 .type b__MAXFg3__18gvzr_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR16qb_trg_zbaguanzrRF4_F4_EAF_8vbf_onfrREwC2gz,%function
 b__MAXFg3__18gvzr_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR16qb_trg_zbaguanzrRF4_F4_EAF_8vbf_onfrREwC2gz:
 nop
@@ -7043,22 +7043,22 @@
 b__MGFCs:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGFAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRRR
+.weak b__MGFAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRRR
 .type b__MGFAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRRR,%object
 b__MGFAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__114pbqrpig_olanzrVQfp9zofgngr_gRQ0Ri
+.weak b__MAFg3__114pbqrpig_olanzrVQfp9zofgngr_gRQ0Ri
 .type b__MAFg3__114pbqrpig_olanzrVQfp9zofgngr_gRQ0Ri,%function
 b__MAFg3__114pbqrpig_olanzrVQfp9zofgngr_gRQ0Ri:
 nop
 .text
-.globl b__MAFg3__19zbarl_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR8__qb_trgREF4_F4_oEXAF_6ybpnyrRwEwEoEXAF_5pglcrVpRREAF_10havdhr_cgeVpCSiCiRRRECpFZ_
+.weak b__MAFg3__19zbarl_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR8__qb_trgREF4_F4_oEXAF_6ybpnyrRwEwEoEXAF_5pglcrVpRREAF_10havdhr_cgeVpCSiCiRRRECpFZ_
 .type b__MAFg3__19zbarl_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR8__qb_trgREF4_F4_oEXAF_6ybpnyrRwEwEoEXAF_5pglcrVpRREAF_10havdhr_cgeVpCSiCiRRRECpFZ_,%function
 b__MAFg3__19zbarl_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR8__qb_trgREF4_F4_oEXAF_6ybpnyrRwEwEoEXAF_5pglcrVpRREAF_10havdhr_cgeVpCSiCiRRRECpFZ_:
 nop
 .text
-.globl b__MAXFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRR5esvaqRjz
+.weak b__MAXFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRR5esvaqRjz
 .type b__MAXFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRR5esvaqRjz,%function
 b__MAXFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRR5esvaqRjz:
 nop
@@ -7098,7 +7098,7 @@
 b__MAFg3__18ahzchapgVjRP1Rz:
 nop
 .data
-.globl b__MGFAFg3__19zbarl_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRRR
+.weak b__MGFAFg3__19zbarl_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRRR
 .type b__MGFAFg3__19zbarl_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRRR,%object
 b__MGFAFg3__19zbarl_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRRR:
 .space __SIZEOF_POINTER__
@@ -7118,7 +7118,7 @@
 b__MAXFg3__115__pbqrpig_hgs16VQvYo1RR9qb_yratguRE9zofgngr_gCXpF5_z:
 nop
 .text
-.globl b__MAXFg3__18gvzr_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR10__trg_lrneREvEF4_F4_EwEXAF_5pglcrVjRR
+.weak b__MAXFg3__18gvzr_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR10__trg_lrneREvEF4_F4_EwEXAF_5pglcrVjRR
 .type b__MAXFg3__18gvzr_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR10__trg_lrneREvEF4_F4_EwEXAF_5pglcrVjRR,%function
 b__MAXFg3__18gvzr_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR10__trg_lrneREvEF4_F4_EwEXAF_5pglcrVjRR:
 nop
@@ -7128,17 +7128,17 @@
 b__MGFCw:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGFAFg3__113onfvp_bfgernzVpAF_11pune_genvgfVpRRRR
+.weak b__MGFAFg3__113onfvp_bfgernzVpAF_11pune_genvgfVpRRRR
 .type b__MGFAFg3__113onfvp_bfgernzVpAF_11pune_genvgfVpRRRR,%object
 b__MGFAFg3__113onfvp_bfgernzVpAF_11pune_genvgfVpRRRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAXFg3__117zbarlchapg_olanzrVjYo0RR16qb_cbfvgvir_fvtaRi
+.weak b__MAXFg3__117zbarlchapg_olanzrVjYo0RR16qb_cbfvgvir_fvtaRi
 .type b__MAXFg3__117zbarlchapg_olanzrVjYo0RR16qb_cbfvgvir_fvtaRi,%function
 b__MAXFg3__117zbarlchapg_olanzrVjYo0RR16qb_cbfvgvir_fvtaRi:
 nop
 .text
-.globl b__MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRR5frrxtRAF_4scbfV9zofgngr_gRR
+.weak b__MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRR5frrxtRAF_4scbfV9zofgngr_gRR
 .type b__MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRR5frrxtRAF_4scbfV9zofgngr_gRR,%function
 b__MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRR5frrxtRAF_4scbfV9zofgngr_gRR:
 nop
@@ -7158,7 +7158,7 @@
 b__MFg18hapnhtug_rkprcgvbai:
 nop
 .data
-.globl b__MGGAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRRR
+.weak b__MGGAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRRR
 .type b__MGGAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRRR,%object
 b__MGGAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRRR:
 .space __SIZEOF_POINTER__
@@ -7173,7 +7173,7 @@
 b__MGFCz:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRR8biresybjRv
+.weak b__MAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRR8biresybjRv
 .type b__MAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRR8biresybjRv,%function
 b__MAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRR8biresybjRv:
 nop
@@ -7193,7 +7193,7 @@
 b__MGFAFg3__17pbqrpigVjp9zofgngr_gRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAXFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR7pbzcnerRCXp
+.weak b__MAXFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR7pbzcnerRCXp
 .type b__MAXFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR7pbzcnerRCXp,%function
 b__MAXFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR7pbzcnerRCXp:
 nop
@@ -7203,7 +7203,7 @@
 b__MGFCa:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MqyCiFg11nyvta_iny_g
+.weak b__MqyCiFg11nyvta_iny_g
 .type b__MqyCiFg11nyvta_iny_g,%function
 b__MqyCiFg11nyvta_iny_g:
 nop
@@ -7213,12 +7213,12 @@
 b__MGVAFg3__18__p_abqrR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__115onfvp_fgernzohsVjAF_11pune_genvgfVjRRRQ2Ri
+.weak b__MAFg3__115onfvp_fgernzohsVjAF_11pune_genvgfVjRRRQ2Ri
 .type b__MAFg3__115onfvp_fgernzohsVjAF_11pune_genvgfVjRRRQ2Ri,%function
 b__MAFg3__115onfvp_fgernzohsVjAF_11pune_genvgfVjRRRQ2Ri:
 nop
 .data
-.globl b__MGVAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRRR
+.weak b__MGVAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRRR
 .type b__MGVAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRRR,%object
 b__MGVAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRRR:
 .space __SIZEOF_POINTER__
@@ -7238,22 +7238,22 @@
 b__MAFg3__121erphefvir_gvzrq_zhgrk8gel_ybpxRi:
 nop
 .text
-.globl b__MAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRR3trgREAF_15onfvp_fgernzohsVjF2_RRj
+.weak b__MAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRR3trgREAF_15onfvp_fgernzohsVjF2_RRj
 .type b__MAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRR3trgREAF_15onfvp_fgernzohsVjF2_RRj,%function
 b__MAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRR3trgREAF_15onfvp_fgernzohsVjF2_RRj:
 nop
 .text
-.globl b__MAXFg3__17pbyyngrVjR10qb_pbzcnerRCXjF3_F3_F3_
+.weak b__MAXFg3__17pbyyngrVjR10qb_pbzcnerRCXjF3_F3_F3_
 .type b__MAXFg3__17pbyyngrVjR10qb_pbzcnerRCXjF3_F3_F3_,%function
 b__MAXFg3__17pbyyngrVjR10qb_pbzcnerRCXjF3_F3_F3_:
 nop
 .text
-.globl b__MAFg3__114pbqrpig_olanzrVQfp9zofgngr_gRQ1Ri
+.weak b__MAFg3__114pbqrpig_olanzrVQfp9zofgngr_gRQ1Ri
 .type b__MAFg3__114pbqrpig_olanzrVQfp9zofgngr_gRQ1Ri,%function
 b__MAFg3__114pbqrpig_olanzrVQfp9zofgngr_gRQ1Ri:
 nop
 .text
-.globl b__MqyCiz
+.weak b__MqyCiz
 .type b__MqyCiz,%function
 b__MqyCiz:
 nop
@@ -7263,7 +7263,7 @@
 b__MAXFg3__17pbqrpigVQvp9zofgngr_gR9qb_yratguREF1_CXpF5_z:
 nop
 .text
-.globl b__MAFg3__17pbyyngrVjRQ0Ri
+.weak b__MAFg3__17pbyyngrVjRQ0Ri
 .type b__MAFg3__17pbyyngrVjRQ0Ri,%function
 b__MAFg3__17pbyyngrVjRQ0Ri:
 nop
@@ -7288,7 +7288,7 @@
 b__MAFg3__18ahzchapgVjRP2Rz:
 nop
 .data
-.globl b__MGFAFg3__114pbqrpig_olanzrVQvp9zofgngr_gRR
+.weak b__MGFAFg3__114pbqrpig_olanzrVQvp9zofgngr_gRR
 .type b__MGFAFg3__114pbqrpig_olanzrVQvp9zofgngr_gRR,%object
 b__MGFAFg3__114pbqrpig_olanzrVQvp9zofgngr_gRR:
 .space __SIZEOF_POINTER__
@@ -7313,7 +7313,7 @@
 b__MGFCi:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__113onfvp_bfgernzVpAF_11pune_genvgfVpRRRyfRCSEAF_9onfvp_vbfVpF2_RRF6_R
+.weak b__MAFg3__113onfvp_bfgernzVpAF_11pune_genvgfVpRRRyfRCSEAF_9onfvp_vbfVpF2_RRF6_R
 .type b__MAFg3__113onfvp_bfgernzVpAF_11pune_genvgfVpRRRyfRCSEAF_9onfvp_vbfVpF2_RRF6_R,%function
 b__MAFg3__113onfvp_bfgernzVpAF_11pune_genvgfVpRRRyfRCSEAF_9onfvp_vbfVpF2_RRF6_R:
 nop
@@ -7323,12 +7323,12 @@
 b__MAXFg3__112pglcr_olanzrVjR8qb_jvqraRCXpF3_Cj:
 nop
 .text
-.globl b__MAXFg3__117zbarlchapg_olanzrVjYo0RR11qb_tebhcvatRi
+.weak b__MAXFg3__117zbarlchapg_olanzrVjYo0RR11qb_tebhcvatRi
 .type b__MAXFg3__117zbarlchapg_olanzrVjYo0RR11qb_tebhcvatRi,%function
 b__MAXFg3__117zbarlchapg_olanzrVjYo0RR11qb_tebhcvatRi:
 nop
 .text
-.globl b__MAXFg3__117zbarlchapg_olanzrVjYo0RR14qb_phee_flzobyRi
+.weak b__MAXFg3__117zbarlchapg_olanzrVjYo0RR14qb_phee_flzobyRi
 .type b__MAXFg3__117zbarlchapg_olanzrVjYo0RR14qb_phee_flzobyRi,%function
 b__MAXFg3__117zbarlchapg_olanzrVjYo0RR14qb_phee_flzobyRi:
 nop
@@ -7353,12 +7353,12 @@
 b__MGFCj:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAXFg3__110zbarlchapgVpYo1RR13qb_art_sbezngRi
+.weak b__MAXFg3__110zbarlchapgVpYo1RR13qb_art_sbezngRi
 .type b__MAXFg3__110zbarlchapgVpYo1RR13qb_art_sbezngRi,%function
 b__MAXFg3__110zbarlchapgVpYo1RR13qb_art_sbezngRi:
 nop
 .text
-.globl b__MAFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRR6nffvtaRCXjz
+.weak b__MAFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRR6nffvtaRCXjz
 .type b__MAFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRR6nffvtaRCXjz,%function
 b__MAFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRR6nffvtaRCXjz:
 nop
@@ -7413,12 +7413,12 @@
 b__MGFAFg3__114pbyyngr_olanzrVpRR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGFAFg3__115gvzr_chg_olanzrVpAF_19bfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRRR
+.weak b__MGFAFg3__115gvzr_chg_olanzrVpAF_19bfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRRR
 .type b__MGFAFg3__115gvzr_chg_olanzrVpAF_19bfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRRR,%object
 b__MGFAFg3__115gvzr_chg_olanzrVpAF_19bfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__113onfvp_bfgernzVjAF_11pune_genvgfVjRRRyfRCSEAF_9onfvp_vbfVjF2_RRF6_R
+.weak b__MAFg3__113onfvp_bfgernzVjAF_11pune_genvgfVjRRRyfRCSEAF_9onfvp_vbfVjF2_RRF6_R
 .type b__MAFg3__113onfvp_bfgernzVjAF_11pune_genvgfVjRRRyfRCSEAF_9onfvp_vbfVjF2_RRF6_R,%function
 b__MAFg3__113onfvp_bfgernzVjAF_11pune_genvgfVjRRRyfRCSEAF_9onfvp_vbfVjF2_RRF6_R:
 nop
@@ -7428,7 +7428,7 @@
 b__MAFg3__112cynprubyqref2_5R:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__114pbqrpig_olanzrVQfp9zofgngr_gRQ2Ri
+.weak b__MAFg3__114pbqrpig_olanzrVQfp9zofgngr_gRQ2Ri
 .type b__MAFg3__114pbqrpig_olanzrVQfp9zofgngr_gRQ2Ri,%function
 b__MAFg3__114pbqrpig_olanzrVQfp9zofgngr_gRQ2Ri:
 nop
@@ -7438,7 +7438,7 @@
 b__MAFg3__118__gvzr_trg_fgbentrVjRP2RCXp:
 nop
 .data
-.globl b__MGVAFg3__110zbarl_onfrR
+.weak b__MGVAFg3__110zbarl_onfrR
 .type b__MGVAFg3__110zbarl_onfrR,%object
 b__MGVAFg3__110zbarl_onfrR:
 .space __SIZEOF_POINTER__
@@ -7448,12 +7448,12 @@
 b__MAXFg3__115__pbqrpig_hgs16VjYo0RR16qb_nyjnlf_abpbaiRi:
 nop
 .text
-.globl b__MAFg3__17pbyyngrVjRQ1Ri
+.weak b__MAFg3__17pbyyngrVjRQ1Ri
 .type b__MAFg3__17pbyyngrVjRQ1Ri,%function
 b__MAFg3__17pbyyngrVjRQ1Ri:
 nop
 .text
-.globl b__MAFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR6__vavgRCXpzz
+.weak b__MAFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR6__vavgRCXpzz
 .type b__MAFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR6__vavgRCXpzz,%function
 b__MAFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR6__vavgRCXpzz:
 nop
@@ -7483,7 +7483,7 @@
 b__MAFg10onq_glcrvqQ2Ri:
 nop
 .text
-.globl b__MAXFg3__117zbarlchapg_olanzrVpYo1RR16qb_qrpvzny_cbvagRi
+.weak b__MAXFg3__117zbarlchapg_olanzrVpYo1RR16qb_qrpvzny_cbvagRi
 .type b__MAXFg3__117zbarlchapg_olanzrVpYo1RR16qb_qrpvzny_cbvagRi,%function
 b__MAXFg3__117zbarlchapg_olanzrVpYo1RR16qb_qrpvzny_cbvagRi:
 nop
@@ -7503,17 +7503,17 @@
 b__MGVAFg3__114__pbqrpig_hgs8VQvRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__18inyneenlVzRQ1Ri
+.weak b__MAFg3__18inyneenlVzRQ1Ri
 .type b__MAFg3__18inyneenlVzRQ1Ri,%function
 b__MAFg3__18inyneenlVzRQ1Ri:
 nop
 .text
-.globl b__MAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRR6fragelP2REF3_o
+.weak b__MAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRR6fragelP2REF3_o
 .type b__MAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRR6fragelP2REF3_o,%function
 b__MAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRR6fragelP2REF3_o:
 nop
 .text
-.globl b__MAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRRQ0Ri
+.weak b__MAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRRQ0Ri
 .type b__MAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRRQ0Ri,%function
 b__MAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRRQ0Ri:
 nop
@@ -7523,7 +7523,7 @@
 b__MAFg3__118__gvzr_trg_fgbentrVpR9__nanylmrRpEXAF_5pglcrVpRR:
 nop
 .text
-.globl b__MAFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRR6vafregRzCXj
+.weak b__MAFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRR6vafregRzCXj
 .type b__MAFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRR6vafregRzCXj,%function
 b__MAFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRR6vafregRzCXj:
 nop
@@ -7538,7 +7538,7 @@
 b__MAFg13onq_rkprcgvbaQ0Ri:
 nop
 .data
-.globl b__MGVAFg3__17ahz_chgVjAF_19bfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRRR
+.weak b__MGVAFg3__17ahz_chgVjAF_19bfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRRR
 .type b__MGVAFg3__17ahz_chgVjAF_19bfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRRR,%object
 b__MGVAFg3__17ahz_chgVjAF_19bfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRRR:
 .space __SIZEOF_POINTER__
@@ -7558,7 +7558,7 @@
 b__MAXFg3__120__pbqrpig_hgs8_hgs16VQfR16qb_nyjnlf_abpbaiRi:
 nop
 .text
-.globl b__MAFg3__115onfvp_fgernzohsVjAF_11pune_genvgfVjRRR9conpxsnvyRw
+.weak b__MAFg3__115onfvp_fgernzohsVjAF_11pune_genvgfVjRRR9conpxsnvyRw
 .type b__MAFg3__115onfvp_fgernzohsVjAF_11pune_genvgfVjRRR9conpxsnvyRw,%function
 b__MAFg3__115onfvp_fgernzohsVjAF_11pune_genvgfVjRRR9conpxsnvyRw:
 nop
@@ -7568,12 +7568,12 @@
 b__MAFg3__112pglcr_olanzrVpRP2RCXpz:
 nop
 .text
-.globl b__MAFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRR6vafregRzCXjz
+.weak b__MAFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRR6vafregRzCXjz
 .type b__MAFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRR6vafregRzCXjz,%function
 b__MAFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRR6vafregRzCXjz:
 nop
 .text
-.globl b__MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRR6vtaberRyv
+.weak b__MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRR6vtaberRyv
 .type b__MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRR6vtaberRyv,%function
 b__MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRR6vtaberRyv:
 nop
@@ -7588,7 +7588,7 @@
 b__MAFg3__17pbqrpigVQfp9zofgngr_gRQ0Ri:
 nop
 .text
-.globl b__MAFg3__19__ahz_trgVjR19__fgntr2_sybng_ybbcRjEoEpCpEF4_jjEXAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRCwEFR_EwCj
+.weak b__MAFg3__19__ahz_trgVjR19__fgntr2_sybng_ybbcRjEoEpCpEF4_jjEXAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRCwEFR_EwCj
 .type b__MAFg3__19__ahz_trgVjR19__fgntr2_sybng_ybbcRjEoEpCpEF4_jjEXAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRCwEFR_EwCj,%function
 b__MAFg3__19__ahz_trgVjR19__fgntr2_sybng_ybbcRjEoEpCpEF4_jjEXAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRCwEFR_EwCj:
 nop
@@ -7598,7 +7598,7 @@
 b__MGFAFg3__15pglcrVjRR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIAFg3__17pbyyngrVpRR
+.weak b__MGIAFg3__17pbyyngrVpRR
 .type b__MGIAFg3__17pbyyngrVpRR,%object
 b__MGIAFg3__17pbyyngrVpRR:
 .space __SIZEOF_POINTER__
@@ -7623,17 +7623,17 @@
 b__MAFg3__16ybpnyrP2REXF0_EXAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRv:
 nop
 .data
-.globl b__MAFg3__18zrffntrfVpR2vqR
+.weak b__MAFg3__18zrffntrfVpR2vqR
 .type b__MAFg3__18zrffntrfVpR2vqR,%object
 b__MAFg3__18zrffntrfVpR2vqR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRR7chgonpxRp
+.weak b__MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRR7chgonpxRp
 .type b__MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRR7chgonpxRp,%function
 b__MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRR7chgonpxRp:
 nop
 .text
-.globl b__MAFg3__17pbyyngrVjRQ2Ri
+.weak b__MAFg3__17pbyyngrVjRQ2Ri
 .type b__MAFg3__17pbyyngrVjRQ2Ri,%function
 b__MAFg3__17pbyyngrVjRQ2Ri:
 nop
@@ -7653,7 +7653,7 @@
 b__MGFA10__pkknovi121__izv_pynff_glcr_vasbR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAXFg3__117zbarlchapg_olanzrVpYo0RR14qb_senp_qvtvgfRi
+.weak b__MAXFg3__117zbarlchapg_olanzrVpYo0RR14qb_senp_qvtvgfRi
 .type b__MAXFg3__117zbarlchapg_olanzrVpYo0RR14qb_senp_qvtvgfRi,%function
 b__MAXFg3__117zbarlchapg_olanzrVpYo0RR14qb_senp_qvtvgfRi:
 nop
@@ -7668,7 +7668,7 @@
 b__MGIAFg3__116__aneebj_gb_hgs8VYz32RRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAXFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRR12svaq_ynfg_bsRCXjzz
+.weak b__MAXFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRR12svaq_ynfg_bsRCXjzz
 .type b__MAXFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRR12svaq_ynfg_bsRCXjzz,%function
 b__MAXFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRR12svaq_ynfg_bsRCXjzz:
 nop
@@ -7688,17 +7688,17 @@
 b__MAFg3__117__nffbp_fho_fgngr12__znxr_ernqlRi:
 nop
 .data
-.globl b__MGIAFg3__19zbarl_chgVpAF_19bfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRRR
+.weak b__MGIAFg3__19zbarl_chgVpAF_19bfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRRR
 .type b__MGIAFg3__19zbarl_chgVpAF_19bfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRRR,%object
 b__MGIAFg3__19zbarl_chgVpAF_19bfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__18inyneenlVzRQ2Ri
+.weak b__MAFg3__18inyneenlVzRQ2Ri
 .type b__MAFg3__18inyneenlVzRQ2Ri,%function
 b__MAFg3__18inyneenlVzRQ2Ri:
 nop
 .text
-.globl b__MqnCiEXFg9abguebj_g
+.weak b__MqnCiEXFg9abguebj_g
 .type b__MqnCiEXFg9abguebj_g,%function
 b__MqnCiEXFg9abguebj_g:
 nop
@@ -7708,12 +7708,12 @@
 b__MAFg3__16puebab12flfgrz_pybpx9gb_gvzr_gREXAF0_10gvzr_cbvagVF1_AF0_8qhengvbaVkAF_5engvbVYy1RYy1000000RRRRRRR:
 nop
 .text
-.globl b__MAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRRQ1Ri
+.weak b__MAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRRQ1Ri
 .type b__MAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRRQ1Ri,%function
 b__MAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRRQ1Ri:
 nop
 .text
-.globl b__MAFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRRQ1Ri
+.weak b__MAFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRRQ1Ri
 .type b__MAFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRRQ1Ri,%function
 b__MAFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRRQ1Ri:
 nop
@@ -7733,7 +7733,7 @@
 b__MAXFg3__112pglcr_olanzrVpR10qb_gbybjreRp:
 nop
 .data
-.globl b__MAFg3__110zbarlchapgVpYo1RR4vagyR
+.weak b__MAFg3__110zbarlchapgVpYo1RR4vagyR
 .type b__MAFg3__110zbarlchapgVpYo1RR4vagyR,%object
 b__MAFg3__110zbarlchapgVpYo1RR4vagyR:
 .space __SIZEOF_POINTER__
@@ -7743,12 +7743,12 @@
 b__MGVAFg3__115__pbqrpig_hgs16VjYo0RRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAXFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRR7pbzcnerRzzCXjz
+.weak b__MAXFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRR7pbzcnerRzzCXjz
 .type b__MAXFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRR7pbzcnerRzzCXjz,%function
 b__MAXFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRR7pbzcnerRzzCXjz:
 nop
 .text
-.globl b__MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRRefRCAF_15onfvp_fgernzohsVpF2_RR
+.weak b__MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRRefRCAF_15onfvp_fgernzohsVpF2_RR
 .type b__MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRRefRCAF_15onfvp_fgernzohsVpF2_RR,%function
 b__MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRRefRCAF_15onfvp_fgernzohsVpF2_RR:
 nop
@@ -7788,12 +7788,12 @@
 b__MGVQa:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRR3trgRCpy
+.weak b__MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRR3trgRCpy
 .type b__MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRR3trgRCpy,%function
 b__MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRR3trgRCpy:
 nop
 .text
-.globl b__MAXFg3__110zbarlchapgVjYo1RR16qb_gubhfnaqf_frcRi
+.weak b__MAXFg3__110zbarlchapgVjYo1RR16qb_gubhfnaqf_frcRi
 .type b__MAXFg3__110zbarlchapgVjYo1RR16qb_gubhfnaqf_frcRi,%function
 b__MAXFg3__110zbarlchapgVjYo1RR16qb_gubhfnaqf_frcRi:
 nop
@@ -7828,12 +7828,12 @@
 b__MAFg3__17pbqrpigVQfp9zofgngr_gRQ1Ri:
 nop
 .text
-.globl b__MAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRR3trgRCjy
+.weak b__MAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRR3trgRCjy
 .type b__MAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRR3trgRCjy,%function
 b__MAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRR3trgRCjy:
 nop
 .data
-.globl b__MGIAFg3__19onfvp_vbfVpAF_11pune_genvgfVpRRRR
+.weak b__MGIAFg3__19onfvp_vbfVpAF_11pune_genvgfVpRRRR
 .type b__MGIAFg3__19onfvp_vbfVpAF_11pune_genvgfVpRRRR,%object
 b__MGIAFg3__19onfvp_vbfVpAF_11pune_genvgfVpRRRR:
 .space __SIZEOF_POINTER__
@@ -7843,7 +7843,7 @@
 b__MGFAFg3__18__p_abqrR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRR3trgRi
+.weak b__MAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRR3trgRi
 .type b__MAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRR3trgRi,%function
 b__MAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRR3trgRi:
 nop
@@ -7873,7 +7873,7 @@
 b__MAXFg3__17pbqrpigVjp9zofgngr_gR6qb_bhgREF1_CXjF5_EF5_CpF7_EF7_:
 nop
 .text
-.globl b__MAFg3__19zbarl_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR8__qb_trgREF4_F4_oEXAF_6ybpnyrRwEwEoEXAF_5pglcrVjRREAF_10havdhr_cgeVjCSiCiRRRECjFZ_
+.weak b__MAFg3__19zbarl_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR8__qb_trgREF4_F4_oEXAF_6ybpnyrRwEwEoEXAF_5pglcrVjRREAF_10havdhr_cgeVjCSiCiRRRECjFZ_
 .type b__MAFg3__19zbarl_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR8__qb_trgREF4_F4_oEXAF_6ybpnyrRwEwEoEXAF_5pglcrVjRREAF_10havdhr_cgeVjCSiCiRRRECjFZ_,%function
 b__MAFg3__19zbarl_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR8__qb_trgREF4_F4_oEXAF_6ybpnyrRwEwEoEXAF_5pglcrVjRREAF_10havdhr_cgeVjCSiCiRRRECjFZ_:
 nop
@@ -7883,22 +7883,22 @@
 b__MGVQf:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRRQ0Ri
+.weak b__MAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRRQ0Ri
 .type b__MAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRRQ0Ri,%function
 b__MAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRRQ0Ri:
 nop
 .data
-.globl b__MGVAFg3__111__zbarl_trgVjRR
+.weak b__MGVAFg3__111__zbarl_trgVjRR
 .type b__MGVAFg3__111__zbarl_trgVjRR,%object
 b__MGVAFg3__111__zbarl_trgVjRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__115onfvp_fgernzohsVjAF_11pune_genvgfVjRRR6kftrgaRCjy
+.weak b__MAFg3__115onfvp_fgernzohsVjAF_11pune_genvgfVjRRR6kftrgaRCjy
 .type b__MAFg3__115onfvp_fgernzohsVjAF_11pune_genvgfVjRRR6kftrgaRCjy,%function
 b__MAFg3__115onfvp_fgernzohsVjAF_11pune_genvgfVjRRR6kftrgaRCjy:
 nop
 .text
-.globl b__MAXFg3__110zbarlchapgVjYo0RR16qb_artngvir_fvtaRi
+.weak b__MAXFg3__110zbarlchapgVjYo0RR16qb_artngvir_fvtaRi
 .type b__MAXFg3__110zbarlchapgVjYo0RR16qb_artngvir_fvtaRi,%function
 b__MAXFg3__110zbarlchapgVjYo0RR16qb_artngvir_fvtaRi:
 nop
@@ -7913,12 +7913,12 @@
 b__MGIFg20onq_neenl_arj_yratgu:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRR8ernqfbzrRCjy
+.weak b__MAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRR8ernqfbzrRCjy
 .type b__MAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRR8ernqfbzrRCjy,%function
 b__MAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRR8ernqfbzrRCjy:
 nop
 .text
-.globl b__MAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRRQ2Ri
+.weak b__MAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRRQ2Ri
 .type b__MAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRRQ2Ri,%function
 b__MAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRRQ2Ri:
 nop
@@ -7928,12 +7928,12 @@
 b__MAXFg3__112pglcr_olanzrVjR10qb_gbhccreRCjCXj:
 nop
 .text
-.globl b__MAFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRRQ2Ri
+.weak b__MAFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRRQ2Ri
 .type b__MAFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRRQ2Ri,%function
 b__MAFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRRQ2Ri:
 nop
 .text
-.globl b__MqnCi
+.weak b__MqnCi
 .type b__MqnCi,%function
 b__MqnCi:
 nop
@@ -7973,7 +7973,7 @@
 b__MAFg3__111__yvopcc_qoP1Ri:
 nop
 .text
-.globl b__MAFg3__113onfvp_bfgernzVjAF_11pune_genvgfVjRRR6fragelQ1Ri
+.weak b__MAFg3__113onfvp_bfgernzVjAF_11pune_genvgfVjRRR6fragelQ1Ri
 .type b__MAFg3__113onfvp_bfgernzVjAF_11pune_genvgfVjRRR6fragelQ1Ri,%function
 b__MAFg3__113onfvp_bfgernzVjAF_11pune_genvgfVjRRR6fragelQ1Ri:
 nop
@@ -7983,17 +7983,17 @@
 b__MAFg3__18vbf_onfr5pyrneRw:
 nop
 .data
-.globl b__MGVAFg3__19onfvp_vbfVpAF_11pune_genvgfVpRRRR
+.weak b__MGVAFg3__19onfvp_vbfVpAF_11pune_genvgfVpRRRR
 .type b__MGVAFg3__19onfvp_vbfVpAF_11pune_genvgfVpRRRR,%object
 b__MGVAFg3__19onfvp_vbfVpAF_11pune_genvgfVpRRRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAXFg3__117zbarlchapg_olanzrVjYo1RR11qb_tebhcvatRi
+.weak b__MAXFg3__117zbarlchapg_olanzrVjYo1RR11qb_tebhcvatRi
 .type b__MAXFg3__117zbarlchapg_olanzrVjYo1RR11qb_tebhcvatRi,%function
 b__MAXFg3__117zbarlchapg_olanzrVjYo1RR11qb_tebhcvatRi:
 nop
 .text
-.globl b__MAXFg3__17ahz_chgVpAF_19bfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR6qb_chgRF4_EAF_8vbf_onfrRpCXi
+.weak b__MAXFg3__17ahz_chgVpAF_19bfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR6qb_chgRF4_EAF_8vbf_onfrRpCXi
 .type b__MAXFg3__17ahz_chgVpAF_19bfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR6qb_chgRF4_EAF_8vbf_onfrRpCXi,%function
 b__MAXFg3__17ahz_chgVpAF_19bfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR6qb_chgRF4_EAF_8vbf_onfrRpCXi:
 nop
@@ -8003,7 +8003,7 @@
 b__MAFg19onq_bcgvbany_npprffQ1Ri:
 nop
 .text
-.globl b__MAXFg3__110zbarlchapgVpYo0RR11qb_tebhcvatRi
+.weak b__MAXFg3__110zbarlchapgVpYo0RR11qb_tebhcvatRi
 .type b__MAXFg3__110zbarlchapgVpYo0RR11qb_tebhcvatRi,%function
 b__MAXFg3__110zbarlchapgVpYo0RR11qb_tebhcvatRi:
 nop
@@ -8013,7 +8013,7 @@
 b__MAXFg3__114__pbqrpig_hgs8VQvR16qb_nyjnlf_abpbaiRi:
 nop
 .text
-.globl b__MAXFg3__117zbarlchapg_olanzrVpYo1RR14qb_phee_flzobyRi
+.weak b__MAXFg3__117zbarlchapg_olanzrVpYo1RR14qb_phee_flzobyRi
 .type b__MAXFg3__117zbarlchapg_olanzrVpYo1RR14qb_phee_flzobyRi,%function
 b__MAXFg3__117zbarlchapg_olanzrVpYo1RR14qb_phee_flzobyRi:
 nop
@@ -8023,7 +8023,7 @@
 b__MGFAFg3__115__pbqrpig_hgs16VQfYo0RRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__127__vafregvba_fbeg_vapbzcyrgrVEAF_6__yrffVyyRRCyRRoG0_F5_G_
+.weak b__MAFg3__127__vafregvba_fbeg_vapbzcyrgrVEAF_6__yrffVyyRRCyRRoG0_F5_G_
 .type b__MAFg3__127__vafregvba_fbeg_vapbzcyrgrVEAF_6__yrffVyyRRCyRRoG0_F5_G_,%function
 b__MAFg3__127__vafregvba_fbeg_vapbzcyrgrVEAF_6__yrffVyyRRCyRRoG0_F5_G_:
 nop
@@ -8058,7 +8058,7 @@
 b__MGVAFg3__16ybpnyr5snprgR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGFAFg3__117zbarlchapg_olanzrVpYo1RRR
+.weak b__MGFAFg3__117zbarlchapg_olanzrVpYo1RRR
 .type b__MGFAFg3__117zbarlchapg_olanzrVpYo1RRR,%object
 b__MGFAFg3__117zbarlchapg_olanzrVpYo1RRR:
 .space __SIZEOF_POINTER__
@@ -8083,7 +8083,7 @@
 b__MAFg3__118__gvzr_trg_fgbentrVjRP2REXAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR:
 nop
 .text
-.globl b__MAFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR7ercynprRzzEXF5_zz
+.weak b__MAFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR7ercynprRzzEXF5_zz
 .type b__MAFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR7ercynprRzzEXF5_zz,%function
 b__MAFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR7ercynprRzzEXF5_zz:
 nop
@@ -8093,7 +8093,7 @@
 b__MAFg3__112cynprubyqref2_6R:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAXFg3__18gvzr_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR11qb_trg_qngrRF4_F4_EAF_8vbf_onfrREwC2gz
+.weak b__MAXFg3__18gvzr_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR11qb_trg_qngrRF4_F4_EAF_8vbf_onfrREwC2gz
 .type b__MAXFg3__18gvzr_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR11qb_trg_qngrRF4_F4_EAF_8vbf_onfrREwC2gz,%function
 b__MAXFg3__18gvzr_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR11qb_trg_qngrRF4_F4_EAF_8vbf_onfrREwC2gz:
 nop
@@ -8108,12 +8108,12 @@
 b__MAFg3__112fgefgernzohsP1RCXpy:
 nop
 .text
-.globl b__MAFg3__115onfvp_fgernzohsVjAF_11pune_genvgfVjRRR10chofrrxbssRkAF_8vbf_onfr7frrxqveRw
+.weak b__MAFg3__115onfvp_fgernzohsVjAF_11pune_genvgfVjRRR10chofrrxbssRkAF_8vbf_onfr7frrxqveRw
 .type b__MAFg3__115onfvp_fgernzohsVjAF_11pune_genvgfVjRRR10chofrrxbssRkAF_8vbf_onfr7frrxqveRw,%function
 b__MAFg3__115onfvp_fgernzohsVjAF_11pune_genvgfVjRRR10chofrrxbssRkAF_8vbf_onfr7frrxqveRw:
 nop
 .text
-.globl b__MAFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRR6vafregRAF_11__jenc_vgreVCXjRRj
+.weak b__MAFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRR6vafregRAF_11__jenc_vgreVCXjRRj
 .type b__MAFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRR6vafregRAF_11__jenc_vgreVCXjRRj,%function
 b__MAFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRR6vafregRAF_11__jenc_vgreVCXjRRj:
 nop
@@ -8123,22 +8123,22 @@
 b__MGFAFg3__110bfgefgernzR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRRQ1Ri
+.weak b__MAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRRQ1Ri
 .type b__MAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRRQ1Ri,%function
 b__MAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRRQ1Ri:
 nop
 .text
-.globl b__MAFg3__115onfvp_fgernzohsVjAF_11pune_genvgfVjRRR8chovzohrREXAF_6ybpnyrR
+.weak b__MAFg3__115onfvp_fgernzohsVjAF_11pune_genvgfVjRRR8chovzohrREXAF_6ybpnyrR
 .type b__MAFg3__115onfvp_fgernzohsVjAF_11pune_genvgfVjRRR8chovzohrREXAF_6ybpnyrR,%function
 b__MAFg3__115onfvp_fgernzohsVjAF_11pune_genvgfVjRRR8chovzohrREXAF_6ybpnyrR:
 nop
 .text
-.globl b__MAXFg3__117zbarlchapg_olanzrVjYo0RR16qb_gubhfnaqf_frcRi
+.weak b__MAXFg3__117zbarlchapg_olanzrVjYo0RR16qb_gubhfnaqf_frcRi
 .type b__MAXFg3__117zbarlchapg_olanzrVjYo0RR16qb_gubhfnaqf_frcRi,%function
 b__MAXFg3__117zbarlchapg_olanzrVjYo0RR16qb_gubhfnaqf_frcRi:
 nop
 .data
-.globl b__MGVAFg3__110zbarlchapgVpYo0RRR
+.weak b__MGVAFg3__110zbarlchapgVpYo0RRR
 .type b__MGVAFg3__110zbarlchapgVpYo0RRR,%object
 b__MGVAFg3__110zbarlchapgVpYo0RRR:
 .space __SIZEOF_POINTER__
@@ -8148,7 +8148,7 @@
 b__MGIAFg3__119__funerq_jrnx_pbhagR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRR7choflapRi
+.weak b__MAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRR7choflapRi
 .type b__MAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRR7choflapRi,%function
 b__MAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRR7choflapRi:
 nop
@@ -8163,17 +8163,17 @@
 b__MAFg3__115flfgrz_pngrtbelRi:
 nop
 .text
-.globl b__MAFg3__127__vafregvba_fbeg_vapbzcyrgrVEAF_6__yrffVjjRRCjRRoG0_F5_G_
+.weak b__MAFg3__127__vafregvba_fbeg_vapbzcyrgrVEAF_6__yrffVjjRRCjRRoG0_F5_G_
 .type b__MAFg3__127__vafregvba_fbeg_vapbzcyrgrVEAF_6__yrffVjjRRCjRRoG0_F5_G_,%function
 b__MAFg3__127__vafregvba_fbeg_vapbzcyrgrVEAF_6__yrffVjjRRCjRRoG0_F5_G_:
 nop
 .text
-.globl b__MAXFg3__110zbarlchapgVjYo0RR14qb_phee_flzobyRi
+.weak b__MAXFg3__110zbarlchapgVjYo0RR14qb_phee_flzobyRi
 .type b__MAXFg3__110zbarlchapgVjYo0RR14qb_phee_flzobyRi,%function
 b__MAXFg3__110zbarlchapgVjYo0RR14qb_phee_flzobyRi:
 nop
 .text
-.globl b__MAXFg3__117zbarlchapg_olanzrVpYo0RR14qb_phee_flzobyRi
+.weak b__MAXFg3__117zbarlchapg_olanzrVpYo0RR14qb_phee_flzobyRi
 .type b__MAXFg3__117zbarlchapg_olanzrVpYo0RR14qb_phee_flzobyRi,%function
 b__MAXFg3__117zbarlchapg_olanzrVpYo0RR14qb_phee_flzobyRi:
 nop
@@ -8193,17 +8193,17 @@
 b__MAFg3__111__yvopcc_qoP2Ri:
 nop
 .text
-.globl b__MAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRR3trgRCjyj
+.weak b__MAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRR3trgRCjyj
 .type b__MAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRR3trgRCjyj,%function
 b__MAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRR3trgRCjyj:
 nop
 .text
-.globl b__MAFg3__113onfvp_bfgernzVjAF_11pune_genvgfVjRRR6fragelQ2Ri
+.weak b__MAFg3__113onfvp_bfgernzVjAF_11pune_genvgfVjRRR6fragelQ2Ri
 .type b__MAFg3__113onfvp_bfgernzVjAF_11pune_genvgfVjRRR6fragelQ2Ri,%function
 b__MAFg3__113onfvp_bfgernzVjAF_11pune_genvgfVjRRR6fragelQ2Ri:
 nop
 .text
-.globl b__MAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRR5hsybjRi
+.weak b__MAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRR5hsybjRi
 .type b__MAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRR5hsybjRi,%function
 b__MAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRR5hsybjRi:
 nop
@@ -8233,7 +8233,7 @@
 b__MAFg3__111__yvopcc_qo16__vainyvqngr_nyyRCi:
 nop
 .text
-.globl b__MAFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR7ercynprRzzCXpz
+.weak b__MAFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR7ercynprRzzCXpz
 .type b__MAFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR7ercynprRzzCXpz,%function
 b__MAFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR7ercynprRzzCXpz:
 nop
@@ -8263,7 +8263,7 @@
 b__MGFFg13ehagvzr_reebe:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__113onfvp_bfgernzVjAF_11pune_genvgfVjRRR4fjncREF3_
+.weak b__MAFg3__113onfvp_bfgernzVjAF_11pune_genvgfVjRRR4fjncREF3_
 .type b__MAFg3__113onfvp_bfgernzVjAF_11pune_genvgfVjRRR4fjncREF3_,%function
 b__MAFg3__113onfvp_bfgernzVjAF_11pune_genvgfVjRRR4fjncREF3_:
 nop
@@ -8288,7 +8288,7 @@
 b__MAFg3__114pbyyngr_olanzrVpRQ2Ri:
 nop
 .data
-.globl b__MGIAFg3__115gvzr_trg_olanzrVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRRR
+.weak b__MGIAFg3__115gvzr_trg_olanzrVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRRR
 .type b__MGIAFg3__115gvzr_trg_olanzrVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRRR,%object
 b__MGIAFg3__115gvzr_trg_olanzrVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRRR:
 .space __SIZEOF_POINTER__
@@ -8308,7 +8308,7 @@
 b__MAFg3__118pbaqvgvba_inevnoyr10abgvsl_barRi:
 nop
 .text
-.globl b__MAXFg3__110zbarlchapgVpYo1RR16qb_cbfvgvir_fvtaRi
+.weak b__MAXFg3__110zbarlchapgVpYo1RR16qb_cbfvgvir_fvtaRi
 .type b__MAXFg3__110zbarlchapgVpYo1RR16qb_cbfvgvir_fvtaRi,%function
 b__MAXFg3__110zbarlchapgVpYo1RR16qb_cbfvgvir_fvtaRi:
 nop
@@ -8333,12 +8333,12 @@
 b__MGVFg12bhg_bs_enatr:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__16__fbegVEAF_6__yrffVppRRCpRRiG0_F5_G_
+.weak b__MAFg3__16__fbegVEAF_6__yrffVppRRCpRRiG0_F5_G_
 .type b__MAFg3__16__fbegVEAF_6__yrffVppRRCpRRiG0_F5_G_,%function
 b__MAFg3__16__fbegVEAF_6__yrffVppRRCpRRiG0_F5_G_:
 nop
 .text
-.globl b__MAFg3__114onfvp_vbfgernzVpAF_11pune_genvgfVpRRRP1RCAF_15onfvp_fgernzohsVpF2_RR
+.weak b__MAFg3__114onfvp_vbfgernzVpAF_11pune_genvgfVpRRRP1RCAF_15onfvp_fgernzohsVpF2_RR
 .type b__MAFg3__114onfvp_vbfgernzVpAF_11pune_genvgfVpRRRP1RCAF_15onfvp_fgernzohsVpF2_RR,%function
 b__MAFg3__114onfvp_vbfgernzVpAF_11pune_genvgfVpRRRP1RCAF_15onfvp_fgernzohsVpF2_RR:
 nop
@@ -8348,12 +8348,12 @@
 b__MAXFg3__112pglcr_olanzrVjR10qb_gbhccreRj:
 nop
 .data
-.globl b__MGVAFg3__111__zbarl_chgVpRR
+.weak b__MGVAFg3__111__zbarl_chgVpRR
 .type b__MGVAFg3__111__zbarl_chgVpRR,%object
 b__MGVAFg3__111__zbarl_chgVpRR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGFAFg3__111__zbarl_trgVjRR
+.weak b__MGFAFg3__111__zbarl_trgVjRR
 .type b__MGFAFg3__111__zbarl_trgVjRR,%object
 b__MGFAFg3__111__zbarl_trgVjRR:
 .space __SIZEOF_POINTER__
@@ -8373,12 +8373,12 @@
 b___tkk_crefbanyvgl_i0:
 nop
 .text
-.globl b__MAFg3__113onfvp_bfgernzVjAF_11pune_genvgfVjRRRP2RCAF_15onfvp_fgernzohsVjF2_RR
+.weak b__MAFg3__113onfvp_bfgernzVjAF_11pune_genvgfVjRRRP2RCAF_15onfvp_fgernzohsVjF2_RR
 .type b__MAFg3__113onfvp_bfgernzVjAF_11pune_genvgfVjRRRP2RCAF_15onfvp_fgernzohsVjF2_RR,%function
 b__MAFg3__113onfvp_bfgernzVjAF_11pune_genvgfVjRRRP2RCAF_15onfvp_fgernzohsVjF2_RR:
 nop
 .text
-.globl b__MAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRRQ2Ri
+.weak b__MAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRRQ2Ri
 .type b__MAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRRQ2Ri,%function
 b__MAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRRQ2Ri:
 nop
@@ -8403,7 +8403,7 @@
 b__MAXFg3__17pbqrpigVQvp9zofgngr_gR16qb_nyjnlf_abpbaiRi:
 nop
 .data
-.globl b__MGFAFg3__18gvzr_chgVjAF_19bfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRRR
+.weak b__MGFAFg3__18gvzr_chgVjAF_19bfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRRR
 .type b__MGFAFg3__18gvzr_chgVjAF_19bfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRRR,%object
 b__MGFAFg3__18gvzr_chgVjAF_19bfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRRR:
 .space __SIZEOF_POINTER__
@@ -8428,7 +8428,7 @@
 b__MAFg3__18vbf_onfr7havgohsR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGFAFg3__115onfvp_fgernzohsVjAF_11pune_genvgfVjRRRR
+.weak b__MGFAFg3__115onfvp_fgernzohsVjAF_11pune_genvgfVjRRRR
 .type b__MGFAFg3__115onfvp_fgernzohsVjAF_11pune_genvgfVjRRRR,%object
 b__MGFAFg3__115onfvp_fgernzohsVjAF_11pune_genvgfVjRRRR:
 .space __SIZEOF_POINTER__
@@ -8438,7 +8438,7 @@
 b__MAFg3__19gb_fgevatRz:
 nop
 .text
-.globl b__MAFg3__115onfvp_fgernzohsVjAF_11pune_genvgfVjRRR6farkgpRi
+.weak b__MAFg3__115onfvp_fgernzohsVjAF_11pune_genvgfVjRRR6farkgpRi
 .type b__MAFg3__115onfvp_fgernzohsVjAF_11pune_genvgfVjRRR6farkgpRi,%function
 b__MAFg3__115onfvp_fgernzohsVjAF_11pune_genvgfVjRRR6farkgpRi:
 nop
@@ -8448,7 +8448,7 @@
 b__MAFg3__115ahzchapg_olanzrVjRP1REXAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRz:
 nop
 .text
-.globl b__MqyCizFg11nyvta_iny_g
+.weak b__MqyCizFg11nyvta_iny_g
 .type b__MqyCizFg11nyvta_iny_g,%function
 b__MqyCizFg11nyvta_iny_g:
 nop
@@ -8463,17 +8463,17 @@
 b__MAXFg3__15pglcrVjR10qb_gbybjreRCjCXj:
 nop
 .data
-.globl b__MGFAFg3__17pbyyngrVpRR
+.weak b__MGFAFg3__17pbyyngrVpRR
 .type b__MGFAFg3__17pbyyngrVpRR,%object
 b__MGFAFg3__17pbyyngrVpRR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGFAFg3__17ahz_chgVpAF_19bfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRRR
+.weak b__MGFAFg3__17ahz_chgVpAF_19bfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRRR
 .type b__MGFAFg3__17ahz_chgVpAF_19bfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRRR,%object
 b__MGFAFg3__17ahz_chgVpAF_19bfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MajzFg11nyvta_iny_gEXFg9abguebj_g
+.weak b__MajzFg11nyvta_iny_gEXFg9abguebj_g
 .type b__MajzFg11nyvta_iny_gEXFg9abguebj_g,%function
 b__MajzFg11nyvta_iny_gEXFg9abguebj_g:
 nop
@@ -8503,7 +8503,7 @@
 b__MGFAFg3__114__pbqrpig_hgs8VjRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAXFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR12svaq_ynfg_bsRCXpzz
+.weak b__MAXFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR12svaq_ynfg_bsRCXpzz
 .type b__MAXFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR12svaq_ynfg_bsRCXpzz,%function
 b__MAXFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR12svaq_ynfg_bsRCXpzz:
 nop
@@ -8518,12 +8518,12 @@
 b__MAFg3__113enaqbz_qrivprP2REXAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR:
 nop
 .text
-.globl b__MAXFg3__110zbarlchapgVjYo1RR13qb_cbf_sbezngRi
+.weak b__MAXFg3__110zbarlchapgVjYo1RR13qb_cbf_sbezngRi
 .type b__MAXFg3__110zbarlchapgVjYo1RR13qb_cbf_sbezngRi,%function
 b__MAXFg3__110zbarlchapgVjYo1RR13qb_cbf_sbezngRi:
 nop
 .text
-.globl b__MAXFg3__17ahz_chgVjAF_19bfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR6qb_chgRF4_EAF_8vbf_onfrRjCXi
+.weak b__MAXFg3__17ahz_chgVjAF_19bfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR6qb_chgRF4_EAF_8vbf_onfrRjCXi
 .type b__MAXFg3__17ahz_chgVjAF_19bfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR6qb_chgRF4_EAF_8vbf_onfrRjCXi,%function
 b__MAXFg3__17ahz_chgVjAF_19bfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR6qb_chgRF4_EAF_8vbf_onfrRjCXi:
 nop
@@ -8543,7 +8543,7 @@
 b__MAFg9glcr_vasbQ0Ri:
 nop
 .text
-.globl b__MAFg3__115onfvp_fgernzohsVjAF_11pune_genvgfVjRRR4fjncREF3_
+.weak b__MAFg3__115onfvp_fgernzohsVjAF_11pune_genvgfVjRRR4fjncREF3_
 .type b__MAFg3__115onfvp_fgernzohsVjAF_11pune_genvgfVjRRR4fjncREF3_,%function
 b__MAFg3__115onfvp_fgernzohsVjAF_11pune_genvgfVjRRR4fjncREF3_:
 nop
@@ -8558,17 +8558,17 @@
 b__MAFg3__114pbyyngr_olanzrVjRP1REXAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRz:
 nop
 .text
-.globl b__MAXFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRR4svaqRCXjzz
+.weak b__MAXFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRR4svaqRCXjzz
 .type b__MAXFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRR4svaqRCXjzz,%function
 b__MAXFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRR4svaqRCXjzz:
 nop
 .text
-.globl b__MAFg3__113onfvp_bfgernzVjAF_11pune_genvgfVjRRRyfRCXi
+.weak b__MAFg3__113onfvp_bfgernzVjAF_11pune_genvgfVjRRRyfRCXi
 .type b__MAFg3__113onfvp_bfgernzVjAF_11pune_genvgfVjRRRyfRCXi,%function
 b__MAFg3__113onfvp_bfgernzVjAF_11pune_genvgfVjRRRyfRCXi:
 nop
 .text
-.globl b__MAXFg3__110zbarlchapgVpYo0RR14qb_senp_qvtvgfRi
+.weak b__MAXFg3__110zbarlchapgVpYo0RR14qb_senp_qvtvgfRi
 .type b__MAXFg3__110zbarlchapgVpYo0RR14qb_senp_qvtvgfRi,%function
 b__MAXFg3__110zbarlchapgVpYo0RR14qb_senp_qvtvgfRi:
 nop
@@ -8588,7 +8588,7 @@
 b__MAFg3__124__yvopcc_qroht_rkprcgvbaP2REXAF_19__yvopcc_qroht_vasbR:
 nop
 .text
-.globl b__MAFg3__113onfvp_bfgernzVpAF_11pune_genvgfVpRRR5frrxcRAF_4scbfV9zofgngr_gRR
+.weak b__MAFg3__113onfvp_bfgernzVpAF_11pune_genvgfVpRRR5frrxcRAF_4scbfV9zofgngr_gRR
 .type b__MAFg3__113onfvp_bfgernzVpAF_11pune_genvgfVpRRR5frrxcRAF_4scbfV9zofgngr_gRR,%function
 b__MAFg3__113onfvp_bfgernzVpAF_11pune_genvgfVpRRR5frrxcRAF_4scbfV9zofgngr_gRR:
 nop
@@ -8613,7 +8613,7 @@
 b__MAXFg3__111__yvopcc_qo9__nqqnoyrRCXiy:
 nop
 .text
-.globl b__MAFg3__113onfvp_bfgernzVjAF_11pune_genvgfVjRRR5jevgrRCXjy
+.weak b__MAFg3__113onfvp_bfgernzVjAF_11pune_genvgfVjRRR5jevgrRCXjy
 .type b__MAFg3__113onfvp_bfgernzVjAF_11pune_genvgfVjRRR5jevgrRCXjy,%function
 b__MAFg3__113onfvp_bfgernzVjAF_11pune_genvgfVjRRR5jevgrRCXjy:
 nop
@@ -8633,17 +8633,17 @@
 b__MAFg3__112shgher_reebeP1RAF_10reebe_pbqrR:
 nop
 .text
-.globl b__MAFg3__113onfvp_bfgernzVjAF_11pune_genvgfVjRRR5frrxcRkAF_8vbf_onfr7frrxqveR
+.weak b__MAFg3__113onfvp_bfgernzVjAF_11pune_genvgfVjRRR5frrxcRkAF_8vbf_onfr7frrxqveR
 .type b__MAFg3__113onfvp_bfgernzVjAF_11pune_genvgfVjRRR5frrxcRkAF_8vbf_onfr7frrxqveR,%function
 b__MAFg3__113onfvp_bfgernzVjAF_11pune_genvgfVjRRR5frrxcRkAF_8vbf_onfr7frrxqveR:
 nop
 .text
-.globl b__MAFg3__115onfvp_fgernzohsVjAF_11pune_genvgfVjRRR7frrxbssRkAF_8vbf_onfr7frrxqveRw
+.weak b__MAFg3__115onfvp_fgernzohsVjAF_11pune_genvgfVjRRR7frrxbssRkAF_8vbf_onfr7frrxqveRw
 .type b__MAFg3__115onfvp_fgernzohsVjAF_11pune_genvgfVjRRR7frrxbssRkAF_8vbf_onfr7frrxqveRw,%function
 b__MAFg3__115onfvp_fgernzohsVjAF_11pune_genvgfVjRRR7frrxbssRkAF_8vbf_onfr7frrxqveRw:
 nop
 .text
-.globl b__MAFg3__19__ahz_trgVjR19__fgntr2_sybng_cercREAF_8vbf_onfrRCjEjF5_
+.weak b__MAFg3__19__ahz_trgVjR19__fgntr2_sybng_cercREAF_8vbf_onfrRCjEjF5_
 .type b__MAFg3__19__ahz_trgVjR19__fgntr2_sybng_cercREAF_8vbf_onfrRCjEjF5_,%function
 b__MAFg3__19__ahz_trgVjR19__fgntr2_sybng_cercREAF_8vbf_onfrRCjEjF5_:
 nop
@@ -8658,12 +8658,12 @@
 b__MAFg3__19gb_fgevatRl:
 nop
 .text
-.globl b__MAFg3__127__vafregvba_fbeg_vapbzcyrgrVEAF_6__yrffVuuRRCuRRoG0_F5_G_
+.weak b__MAFg3__127__vafregvba_fbeg_vapbzcyrgrVEAF_6__yrffVuuRRCuRRoG0_F5_G_
 .type b__MAFg3__127__vafregvba_fbeg_vapbzcyrgrVEAF_6__yrffVuuRRCuRRoG0_F5_G_,%function
 b__MAFg3__127__vafregvba_fbeg_vapbzcyrgrVEAF_6__yrffVuuRRCuRRoG0_F5_G_:
 nop
 .text
-.globl b__MAFg3__16__fbegVEAF_6__yrffVllRRClRRiG0_F5_G_
+.weak b__MAFg3__16__fbegVEAF_6__yrffVllRRClRRiG0_F5_G_
 .type b__MAFg3__16__fbegVEAF_6__yrffVllRRClRRiG0_F5_G_,%function
 b__MAFg3__16__fbegVEAF_6__yrffVllRRClRRiG0_F5_G_:
 nop
@@ -8673,17 +8673,17 @@
 b__MAFg3__117__nffbp_fho_fgngr16__ba_mreb_funerqRi:
 nop
 .text
-.globl b__MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRR4fjncREF3_
+.weak b__MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRR4fjncREF3_
 .type b__MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRR4fjncREF3_,%function
 b__MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRR4fjncREF3_:
 nop
 .text
-.globl b__MAXFg3__120__irpgbe_onfr_pbzzbaVYo1RR20__guebj_yratgu_reebeRi
+.weak b__MAXFg3__120__irpgbe_onfr_pbzzbaVYo1RR20__guebj_yratgu_reebeRi
 .type b__MAXFg3__120__irpgbe_onfr_pbzzbaVYo1RR20__guebj_yratgu_reebeRi,%function
 b__MAXFg3__120__irpgbe_onfr_pbzzbaVYo1RR20__guebj_yratgu_reebeRi:
 nop
 .text
-.globl b__MAFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR21__tebj_ol_naq_ercynprRzzzzzzCXp
+.weak b__MAFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR21__tebj_ol_naq_ercynprRzzzzzzCXp
 .type b__MAFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR21__tebj_ol_naq_ercynprRzzzzzzCXp,%function
 b__MAFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR21__tebj_ol_naq_ercynprRzzzzzzCXp:
 nop
@@ -8718,7 +8718,7 @@
 b___pkn_hapnhtug_rkprcgvbaf:
 nop
 .text
-.globl b__MAXFg3__110zbarlchapgVpYo1RR11qb_tebhcvatRi
+.weak b__MAXFg3__110zbarlchapgVpYo1RR11qb_tebhcvatRi
 .type b__MAXFg3__110zbarlchapgVpYo1RR11qb_tebhcvatRi,%function
 b__MAXFg3__110zbarlchapgVpYo1RR11qb_tebhcvatRi:
 nop
@@ -8733,12 +8733,12 @@
 b__MAFg3__16ybpnyrP1RCXp:
 nop
 .text
-.globl b__MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRRQ0Ri
+.weak b__MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRRQ0Ri
 .type b__MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRRQ0Ri,%function
 b__MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRRQ0Ri:
 nop
 .text
-.globl b__MAFg3__19onfvp_vbfVjAF_11pune_genvgfVjRRR7pbclszgREXF3_
+.weak b__MAFg3__19onfvp_vbfVjAF_11pune_genvgfVjRRR7pbclszgREXF3_
 .type b__MAFg3__19onfvp_vbfVjAF_11pune_genvgfVjRRR7pbclszgREXF3_,%function
 b__MAFg3__19onfvp_vbfVjAF_11pune_genvgfVjRRR7pbclszgREXF3_:
 nop
@@ -8753,7 +8753,7 @@
 b__MAFg3__16ybpnyrP1REXF0_F2_v:
 nop
 .data
-.globl b__MGVAFg3__112pbqrpig_onfrR
+.weak b__MGVAFg3__112pbqrpig_onfrR
 .type b__MGVAFg3__112pbqrpig_onfrR,%object
 b__MGVAFg3__112pbqrpig_onfrR:
 .space __SIZEOF_POINTER__
@@ -8763,12 +8763,12 @@
 b__MAFg3__16guernqQ1Ri:
 nop
 .text
-.globl b__MGi0_a24_AFg3__114onfvp_vbfgernzVpAF_11pune_genvgfVpRRRQ0Ri
+.weak b__MGi0_a24_AFg3__114onfvp_vbfgernzVpAF_11pune_genvgfVpRRRQ0Ri
 .type b__MGi0_a24_AFg3__114onfvp_vbfgernzVpAF_11pune_genvgfVpRRRQ0Ri,%function
 b__MGi0_a24_AFg3__114onfvp_vbfgernzVpAF_11pune_genvgfVpRRRQ0Ri:
 nop
 .text
-.globl b__MAFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRRP1REXF5_EXF4_
+.weak b__MAFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRRP1REXF5_EXF4_
 .type b__MAFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRRP1REXF5_EXF4_,%function
 b__MAFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRRP1REXF5_EXF4_:
 nop
@@ -8778,7 +8778,7 @@
 b__MAFg3__112cynprubyqref2_7R:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRR3trgREAF_15onfvp_fgernzohsVjF2_RR
+.weak b__MAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRR3trgREAF_15onfvp_fgernzohsVjF2_RR
 .type b__MAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRR3trgREAF_15onfvp_fgernzohsVjF2_RR,%function
 b__MAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRR3trgREAF_15onfvp_fgernzohsVjF2_RR:
 nop
@@ -8788,7 +8788,7 @@
 b__MGVAFg3__115ahzchapg_olanzrVjRR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGFAFg3__111__zbarl_chgVpRR
+.weak b__MGFAFg3__111__zbarl_chgVpRR
 .type b__MGFAFg3__111__zbarl_chgVpRR,%object
 b__MGFAFg3__111__zbarl_chgVpRR:
 .space __SIZEOF_POINTER__
@@ -8803,7 +8803,7 @@
 b__MAFg3__129__yvopcc_guebj_qroht_shapgvbaREXAF_19__yvopcc_qroht_vasbR:
 nop
 .text
-.globl b__MAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRR5hatrgRi
+.weak b__MAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRR5hatrgRi
 .type b__MAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRR5hatrgRi,%function
 b__MAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRR5hatrgRi:
 nop
@@ -8813,17 +8813,17 @@
 b__MAFg3__17pbqrpigVpp9zofgngr_gR2vqR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAXFg3__117zbarlchapg_olanzrVpYo1RR13qb_cbf_sbezngRi
+.weak b__MAXFg3__117zbarlchapg_olanzrVpYo1RR13qb_cbf_sbezngRi
 .type b__MAXFg3__117zbarlchapg_olanzrVpYo1RR13qb_cbf_sbezngRi,%function
 b__MAXFg3__117zbarlchapg_olanzrVpYo1RR13qb_cbf_sbezngRi:
 nop
 .text
-.globl b__MAXFg3__18gvzr_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR11__trg_lrne4REvEF4_F4_EwEXAF_5pglcrVpRR
+.weak b__MAXFg3__18gvzr_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR11__trg_lrne4REvEF4_F4_EwEXAF_5pglcrVpRR
 .type b__MAXFg3__18gvzr_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR11__trg_lrne4REvEF4_F4_EwEXAF_5pglcrVpRR,%function
 b__MAXFg3__18gvzr_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR11__trg_lrne4REvEF4_F4_EwEXAF_5pglcrVpRR:
 nop
 .text
-.globl b__MAFg3__111__zbarl_chgVjR13__tngure_vasbRooEXAF_6ybpnyrREAF_10zbarl_onfr7cnggreaREjF8_EAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRREAF9_VjAFN_VjRRAFP_VjRRRRFW_Ev
+.weak b__MAFg3__111__zbarl_chgVjR13__tngure_vasbRooEXAF_6ybpnyrREAF_10zbarl_onfr7cnggreaREjF8_EAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRREAF9_VjAFN_VjRRAFP_VjRRRRFW_Ev
 .type b__MAFg3__111__zbarl_chgVjR13__tngure_vasbRooEXAF_6ybpnyrREAF_10zbarl_onfr7cnggreaREjF8_EAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRREAF9_VjAFN_VjRRAFP_VjRRRRFW_Ev,%function
 b__MAFg3__111__zbarl_chgVjR13__tngure_vasbRooEXAF_6ybpnyrREAF_10zbarl_onfr7cnggreaREjF8_EAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRREAF9_VjAFN_VjRRAFP_VjRRRRFW_Ev:
 nop
@@ -8853,12 +8853,12 @@
 b__MAFg15haqresybj_reebeQ2Ri:
 nop
 .text
-.globl b__MAFg3__127__vafregvba_fbeg_vapbzcyrgrVEAF_6__yrffVffRRCfRRoG0_F5_G_
+.weak b__MAFg3__127__vafregvba_fbeg_vapbzcyrgrVEAF_6__yrffVffRRCfRRoG0_F5_G_
 .type b__MAFg3__127__vafregvba_fbeg_vapbzcyrgrVEAF_6__yrffVffRRCfRRoG0_F5_G_,%function
 b__MAFg3__127__vafregvba_fbeg_vapbzcyrgrVEAF_6__yrffVffRRCfRRoG0_F5_G_:
 nop
 .text
-.globl b__MAFg3__113onfvp_bfgernzVpAF_11pune_genvgfVpRRRyfRCSEF3_F4_R
+.weak b__MAFg3__113onfvp_bfgernzVpAF_11pune_genvgfVpRRRyfRCSEF3_F4_R
 .type b__MAFg3__113onfvp_bfgernzVpAF_11pune_genvgfVpRRRyfRCSEF3_F4_R,%function
 b__MAFg3__113onfvp_bfgernzVpAF_11pune_genvgfVpRRRyfRCSEF3_F4_R:
 nop
@@ -8888,7 +8888,7 @@
 b__MAXFg3__115__pbqrpig_hgs16VQfYo1RR5qb_vaRE9zofgngr_gCXpF5_EF5_CQfF7_EF7_:
 nop
 .data
-.globl b__MGFAFg3__118__gvzr_trg_fgbentrVjRR
+.weak b__MGFAFg3__118__gvzr_trg_fgbentrVjRR
 .type b__MGFAFg3__118__gvzr_trg_fgbentrVjRR,%object
 b__MGFAFg3__118__gvzr_trg_fgbentrVjRR:
 .space __SIZEOF_POINTER__
@@ -8898,7 +8898,7 @@
 b__MGVFg11enatr_reebe:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAXFg3__18gvzr_chgVpAF_19bfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR3chgRF4_EAF_8vbf_onfrRpCX2gzCXpFP_
+.weak b__MAXFg3__18gvzr_chgVpAF_19bfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR3chgRF4_EAF_8vbf_onfrRpCX2gzCXpFP_
 .type b__MAXFg3__18gvzr_chgVpAF_19bfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR3chgRF4_EAF_8vbf_onfrRpCX2gzCXpFP_,%function
 b__MAXFg3__18gvzr_chgVpAF_19bfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR3chgRF4_EAF_8vbf_onfrRpCX2gzCXpFP_:
 nop
@@ -8913,12 +8913,12 @@
 b__MGIA10__pkknovi120__fv_pynff_glcr_vasbR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRRP1REXF3_
+.weak b__MAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRRP1REXF3_
 .type b__MAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRRP1REXF3_,%function
 b__MAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRRP1REXF3_:
 nop
 .text
-.globl b__MAFg3__115onfvp_fgernzohsVjAF_11pune_genvgfVjRRR6fohzcpRi
+.weak b__MAFg3__115onfvp_fgernzohsVjAF_11pune_genvgfVjRRR6fohzcpRi
 .type b__MAFg3__115onfvp_fgernzohsVjAF_11pune_genvgfVjRRR6fohzcpRi,%function
 b__MAFg3__115onfvp_fgernzohsVjAF_11pune_genvgfVjRRR6fohzcpRi:
 nop
@@ -8928,7 +8928,7 @@
 b__MAXFg3__115__pbqrpig_hgs16VQfYo0RR9qb_yratguRE9zofgngr_gCXpF5_z:
 nop
 .text
-.globl b__MAXFg3__110zbarlchapgVpYo1RR14qb_phee_flzobyRi
+.weak b__MAXFg3__110zbarlchapgVpYo1RR14qb_phee_flzobyRi
 .type b__MAXFg3__110zbarlchapgVpYo1RR14qb_phee_flzobyRi,%function
 b__MAXFg3__110zbarlchapgVpYo1RR14qb_phee_flzobyRi:
 nop
@@ -8943,12 +8943,12 @@
 b__MAXFg3__17pbqrpigVpp9zofgngr_gR13qb_znk_yratguRi:
 nop
 .text
-.globl b__MAXFg3__17pbyyngrVpR12qb_genafsbezRCXpF3_
+.weak b__MAXFg3__17pbyyngrVpR12qb_genafsbezRCXpF3_
 .type b__MAXFg3__17pbyyngrVpR12qb_genafsbezRCXpF3_,%function
 b__MAXFg3__17pbyyngrVpR12qb_genafsbezRCXpF3_:
 nop
 .data
-.globl b__MGFAFg3__18gvzr_chgVpAF_19bfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRRR
+.weak b__MGFAFg3__18gvzr_chgVpAF_19bfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRRR
 .type b__MGFAFg3__18gvzr_chgVpAF_19bfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRRR,%object
 b__MGFAFg3__18gvzr_chgVpAF_19bfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRRR:
 .space __SIZEOF_POINTER__
@@ -8958,7 +8958,7 @@
 b__MAFg3__116__aneebj_gb_hgs8VYz16RRQ1Ri:
 nop
 .text
-.globl b__MAXFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRR5esvaqRCXjzz
+.weak b__MAXFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRR5esvaqRCXjzz
 .type b__MAXFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRR5esvaqRCXjzz,%function
 b__MAXFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRR5esvaqRCXjzz:
 nop
@@ -8968,17 +8968,17 @@
 b__MAFg3__125abgvsl_nyy_ng_guernq_rkvgREAF_18pbaqvgvba_inevnoyrRAF_11havdhr_ybpxVAF_5zhgrkRRR:
 nop
 .text
-.globl b__MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRRQ1Ri
+.weak b__MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRRQ1Ri
 .type b__MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRRQ1Ri,%function
 b__MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRRQ1Ri:
 nop
 .text
-.globl b__MAXFg3__18gvzr_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR17__trg_jrrxqnlanzrREvEF4_F4_EwEXAF_5pglcrVjRR
+.weak b__MAXFg3__18gvzr_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR17__trg_jrrxqnlanzrREvEF4_F4_EwEXAF_5pglcrVjRR
 .type b__MAXFg3__18gvzr_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR17__trg_jrrxqnlanzrREvEF4_F4_EwEXAF_5pglcrVjRR,%function
 b__MAXFg3__18gvzr_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR17__trg_jrrxqnlanzrREvEF4_F4_EwEXAF_5pglcrVjRR:
 nop
 .data
-.globl b__MGIAFg3__114pbqrpig_olanzrVQfp9zofgngr_gRR
+.weak b__MGIAFg3__114pbqrpig_olanzrVQfp9zofgngr_gRR
 .type b__MGIAFg3__114pbqrpig_olanzrVQfp9zofgngr_gRR,%object
 b__MGIAFg3__114pbqrpig_olanzrVQfp9zofgngr_gRR:
 .space __SIZEOF_POINTER__
@@ -8993,12 +8993,12 @@
 b___pkn_trg_tybonyf_snfg:
 nop
 .data
-.globl b__MGGAFg3__113onfvp_bfgernzVpAF_11pune_genvgfVpRRRR
+.weak b__MGGAFg3__113onfvp_bfgernzVpAF_11pune_genvgfVpRRRR
 .type b__MGGAFg3__113onfvp_bfgernzVpAF_11pune_genvgfVpRRRR,%object
 b__MGGAFg3__113onfvp_bfgernzVpAF_11pune_genvgfVpRRRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MGi0_a24_AFg3__114onfvp_vbfgernzVpAF_11pune_genvgfVpRRRQ1Ri
+.weak b__MGi0_a24_AFg3__114onfvp_vbfgernzVpAF_11pune_genvgfVpRRRQ1Ri
 .type b__MGi0_a24_AFg3__114onfvp_vbfgernzVpAF_11pune_genvgfVpRRRQ1Ri,%function
 b__MGi0_a24_AFg3__114onfvp_vbfgernzVpAF_11pune_genvgfVpRRRQ1Ri:
 nop
@@ -9018,7 +9018,7 @@
 b__MAXFg3__115__pbqrpig_hgs16VjYo0RR11qb_rapbqvatRi:
 nop
 .data
-.globl b__MGFAFg3__17ahz_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRRR
+.weak b__MGFAFg3__17ahz_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRRR
 .type b__MGFAFg3__17ahz_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRRR,%object
 b__MGFAFg3__17ahz_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRRR:
 .space __SIZEOF_POINTER__
@@ -9033,7 +9033,7 @@
 b__MAFg3__124__yvopcc_qroht_rkprcgvbaQ0Ri:
 nop
 .text
-.globl b__MAFg3__115onfvp_fgernzohsVjAF_11pune_genvgfVjRRR5ftrgpRi
+.weak b__MAFg3__115onfvp_fgernzohsVjAF_11pune_genvgfVjRRR5ftrgpRi
 .type b__MAFg3__115onfvp_fgernzohsVjAF_11pune_genvgfVjRRR5ftrgpRi,%function
 b__MAFg3__115onfvp_fgernzohsVjAF_11pune_genvgfVjRRR5ftrgpRi:
 nop
@@ -9048,17 +9048,17 @@
 b__MGFFg12bhg_bs_enatr:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRR4flapRi
+.weak b__MAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRR4flapRi
 .type b__MAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRR4flapRi,%function
 b__MAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRR4flapRi:
 nop
 .text
-.globl b__MAXFg3__110zbarlchapgVpYo0RR16qb_qrpvzny_cbvagRi
+.weak b__MAXFg3__110zbarlchapgVpYo0RR16qb_qrpvzny_cbvagRi
 .type b__MAXFg3__110zbarlchapgVpYo0RR16qb_qrpvzny_cbvagRi,%function
 b__MAXFg3__110zbarlchapgVpYo0RR16qb_qrpvzny_cbvagRi:
 nop
 .text
-.globl b__MAXFg3__18gvzr_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR11qb_trg_gvzrRF4_F4_EAF_8vbf_onfrREwC2gz
+.weak b__MAXFg3__18gvzr_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR11qb_trg_gvzrRF4_F4_EAF_8vbf_onfrREwC2gz
 .type b__MAXFg3__18gvzr_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR11qb_trg_gvzrRF4_F4_EAF_8vbf_onfrREwC2gz,%function
 b__MAXFg3__18gvzr_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR11qb_trg_gvzrRF4_F4_EAF_8vbf_onfrREwC2gz:
 nop
@@ -9073,7 +9073,7 @@
 b__MAXFg3__111__yvopcc_qo17__qrersreraprnoyrRCXi:
 nop
 .text
-.globl b__MAFg3__113onfvp_bfgernzVpAF_11pune_genvgfVpRRR5frrxcRkAF_8vbf_onfr7frrxqveR
+.weak b__MAFg3__113onfvp_bfgernzVpAF_11pune_genvgfVpRRR5frrxcRkAF_8vbf_onfr7frrxqveR
 .type b__MAFg3__113onfvp_bfgernzVpAF_11pune_genvgfVpRRR5frrxcRkAF_8vbf_onfr7frrxqveR,%function
 b__MAFg3__113onfvp_bfgernzVpAF_11pune_genvgfVpRRR5frrxcRkAF_8vbf_onfr7frrxqveR:
 nop
@@ -9083,7 +9083,7 @@
 b__MAFg3__18vbf_onfr7snvyherQ1Ri:
 nop
 .text
-.globl b__MAFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRRP1REXF5_zzEXF4_
+.weak b__MAFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRRP1REXF5_zzEXF4_
 .type b__MAFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRRP1REXF5_zzEXF4_,%function
 b__MAFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRRP1REXF5_zzEXF4_:
 nop
@@ -9093,12 +9093,12 @@
 b__MAFg3__16__vgbn8__h32gbnRwCp:
 nop
 .text
-.globl b__MAXFg3__110zbarlchapgVpYo0RR14qb_phee_flzobyRi
+.weak b__MAXFg3__110zbarlchapgVpYo0RR14qb_phee_flzobyRi
 .type b__MAXFg3__110zbarlchapgVpYo0RR14qb_phee_flzobyRi,%function
 b__MAXFg3__110zbarlchapgVpYo0RR14qb_phee_flzobyRi:
 nop
 .text
-.globl b__MAXFg3__18gvzr_chgVjAF_19bfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR6qb_chgRF4_EAF_8vbf_onfrRjCX2gzpp
+.weak b__MAXFg3__18gvzr_chgVjAF_19bfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR6qb_chgRF4_EAF_8vbf_onfrRjCX2gzpp
 .type b__MAXFg3__18gvzr_chgVjAF_19bfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR6qb_chgRF4_EAF_8vbf_onfrRjCX2gzpp,%function
 b__MAXFg3__18gvzr_chgVjAF_19bfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR6qb_chgRF4_EAF_8vbf_onfrRjCX2gzpp:
 nop
@@ -9133,12 +9133,12 @@
 b__MAFg3__112fgefgernzohsP1RCuyF1_:
 nop
 .text
-.globl b__MAFg3__16__fbegVEAF_6__yrffVwwRRCwRRiG0_F5_G_
+.weak b__MAFg3__16__fbegVEAF_6__yrffVwwRRCwRRiG0_F5_G_
 .type b__MAFg3__16__fbegVEAF_6__yrffVwwRRCwRRiG0_F5_G_,%function
 b__MAFg3__16__fbegVEAF_6__yrffVwwRRCwRRiG0_F5_G_:
 nop
 .data
-.globl b__MGFAFg3__117zbarlchapg_olanzrVjYo0RRR
+.weak b__MGFAFg3__117zbarlchapg_olanzrVjYo0RRR
 .type b__MGFAFg3__117zbarlchapg_olanzrVjYo0RRR,%object
 b__MGFAFg3__117zbarlchapg_olanzrVjYo0RRR:
 .space __SIZEOF_POINTER__
@@ -9153,7 +9153,7 @@
 b__MAXFg3__115__pbqrpig_hgs16VQvYo0RR9qb_yratguRE9zofgngr_gCXpF5_z:
 nop
 .text
-.globl b__MAXFg3__18zrffntrfVjR6qb_trgRyvvEXAF_12onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRRR
+.weak b__MAXFg3__18zrffntrfVjR6qb_trgRyvvEXAF_12onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRRR
 .type b__MAXFg3__18zrffntrfVjR6qb_trgRyvvEXAF_12onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRRR,%function
 b__MAXFg3__18zrffntrfVjR6qb_trgRyvvEXAF_12onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRRR:
 nop
@@ -9168,7 +9168,7 @@
 b__MGVA10__pkknovi120__fv_pynff_glcr_vasbR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRRQ2Ri
+.weak b__MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRRQ2Ri
 .type b__MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRRQ2Ri,%function
 b__MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRRQ2Ri:
 nop
@@ -9178,12 +9178,12 @@
 b__MAFg3__18vbf_onfr15flap_jvgu_fgqvbRo:
 nop
 .text
-.globl b__MAFg3__19__ahz_trgVpR17__fgntr2_vag_cercREAF_8vbf_onfrRCpEp
+.weak b__MAFg3__19__ahz_trgVpR17__fgntr2_vag_cercREAF_8vbf_onfrRCpEp
 .type b__MAFg3__19__ahz_trgVpR17__fgntr2_vag_cercREAF_8vbf_onfrRCpEp,%function
 b__MAFg3__19__ahz_trgVpR17__fgntr2_vag_cercREAF_8vbf_onfrRCpEp:
 nop
 .data
-.globl b__MGVAFg3__19zbarl_chgVpAF_19bfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRRR
+.weak b__MGVAFg3__19zbarl_chgVpAF_19bfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRRR
 .type b__MGVAFg3__19zbarl_chgVpAF_19bfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRRR,%object
 b__MGVAFg3__19zbarl_chgVpAF_19bfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRRR:
 .space __SIZEOF_POINTER__
@@ -9193,17 +9193,17 @@
 b__MAFg13rkprcgvba_cgeP1REXF_:
 nop
 .text
-.globl b__MAXFg3__110zbarlchapgVpYo0RR13qb_art_sbezngRi
+.weak b__MAXFg3__110zbarlchapgVpYo0RR13qb_art_sbezngRi
 .type b__MAXFg3__110zbarlchapgVpYo0RR13qb_art_sbezngRi,%function
 b__MAXFg3__110zbarlchapgVpYo0RR13qb_art_sbezngRi:
 nop
 .text
-.globl b__MAXFg3__117zbarlchapg_olanzrVjYo1RR16qb_cbfvgvir_fvtaRi
+.weak b__MAXFg3__117zbarlchapg_olanzrVjYo1RR16qb_cbfvgvir_fvtaRi
 .type b__MAXFg3__117zbarlchapg_olanzrVjYo1RR16qb_cbfvgvir_fvtaRi,%function
 b__MAXFg3__117zbarlchapg_olanzrVjYo1RR16qb_cbfvgvir_fvtaRi:
 nop
 .text
-.globl b__MAXFg3__18gvzr_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR11qb_trg_lrneRF4_F4_EAF_8vbf_onfrREwC2gz
+.weak b__MAXFg3__18gvzr_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR11qb_trg_lrneRF4_F4_EAF_8vbf_onfrREwC2gz
 .type b__MAXFg3__18gvzr_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR11qb_trg_lrneRF4_F4_EAF_8vbf_onfrREwC2gz,%function
 b__MAXFg3__18gvzr_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR11qb_trg_lrneRF4_F4_EAF_8vbf_onfrREwC2gz:
 nop
@@ -9218,7 +9218,7 @@
 b__MGVAFg3__112pglcr_olanzrVpRR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIAFg3__115gvzr_chg_olanzrVjAF_19bfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRRR
+.weak b__MGIAFg3__115gvzr_chg_olanzrVjAF_19bfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRRR
 .type b__MGIAFg3__115gvzr_chg_olanzrVjAF_19bfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRRR,%object
 b__MGIAFg3__115gvzr_chg_olanzrVjAF_19bfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRRR:
 .space __SIZEOF_POINTER__
@@ -9268,7 +9268,7 @@
 b__MAXFg3__15pglcrVjR10qb_fpna_vfRzCXjF3_:
 nop
 .text
-.globl b__MAXFg3__18gvzr_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR13__trg_crepragREF4_F4_EwEXAF_5pglcrVpRR
+.weak b__MAXFg3__18gvzr_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR13__trg_crepragREF4_F4_EwEXAF_5pglcrVpRR
 .type b__MAXFg3__18gvzr_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR13__trg_crepragREF4_F4_EwEXAF_5pglcrVpRR,%function
 b__MAXFg3__18gvzr_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR13__trg_crepragREF4_F4_EwEXAF_5pglcrVpRR:
 nop
@@ -9283,7 +9283,7 @@
 b__MGFo:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRRefREo
+.weak b__MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRRefREo
 .type b__MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRRefREo,%function
 b__MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRRefREo:
 nop
@@ -9298,12 +9298,12 @@
 b__MAFg3__118__gvzr_trg_fgbentrVpRP2REXAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR:
 nop
 .data
-.globl b__MAFg3__19zbarl_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR2vqR
+.weak b__MAFg3__19zbarl_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR2vqR
 .type b__MAFg3__19zbarl_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR2vqR,%object
 b__MAFg3__19zbarl_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR2vqR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MAFg3__19zbarl_chgVpAF_19bfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR2vqR
+.weak b__MAFg3__19zbarl_chgVpAF_19bfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR2vqR
 .type b__MAFg3__19zbarl_chgVpAF_19bfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR2vqR,%object
 b__MAFg3__19zbarl_chgVpAF_19bfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR2vqR:
 .space __SIZEOF_POINTER__
@@ -9323,7 +9323,7 @@
 b__MGFp:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIAFg3__19onfvp_vbfVjAF_11pune_genvgfVjRRRR
+.weak b__MGIAFg3__19onfvp_vbfVjAF_11pune_genvgfVjRRRR
 .type b__MGIAFg3__19onfvp_vbfVjAF_11pune_genvgfVjRRRR,%object
 b__MGIAFg3__19onfvp_vbfVjAF_11pune_genvgfVjRRRR:
 .space __SIZEOF_POINTER__
@@ -9343,7 +9343,7 @@
 b__MGFq:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__127__vafregvba_fbeg_vapbzcyrgrVEAF_6__yrffVqqRRCqRRoG0_F5_G_
+.weak b__MAFg3__127__vafregvba_fbeg_vapbzcyrgrVEAF_6__yrffVqqRRCqRRoG0_F5_G_
 .type b__MAFg3__127__vafregvba_fbeg_vapbzcyrgrVEAF_6__yrffVqqRRCqRRoG0_F5_G_,%function
 b__MAFg3__127__vafregvba_fbeg_vapbzcyrgrVEAF_6__yrffVqqRRCqRRoG0_F5_G_:
 nop
@@ -9353,7 +9353,7 @@
 b__MAFg3__115shgher_pngrtbelRi:
 nop
 .text
-.globl b__MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRRefREq
+.weak b__MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRRefREq
 .type b__MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRRefREq,%function
 b__MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRRefREq:
 nop
@@ -9378,17 +9378,17 @@
 b__MAFg3__16shgherViR3trgRi:
 nop
 .text
-.globl b__MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRRP2RCAF_15onfvp_fgernzohsVpF2_RR
+.weak b__MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRRP2RCAF_15onfvp_fgernzohsVpF2_RR
 .type b__MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRRP2RCAF_15onfvp_fgernzohsVpF2_RR,%function
 b__MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRRP2RCAF_15onfvp_fgernzohsVpF2_RR:
 nop
 .text
-.globl b__MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRRefREr
+.weak b__MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRRefREr
 .type b__MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRRefREr,%function
 b__MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRRefREr:
 nop
 .text
-.globl b__MAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRR6frgohsRCpy
+.weak b__MAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRR6frgohsRCpy
 .type b__MAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRR6frgohsRCpy,%function
 b__MAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRR6frgohsRCpy:
 nop
@@ -9423,7 +9423,7 @@
 b__MAFg3__112shgher_reebeP2RAF_10reebe_pbqrR:
 nop
 .text
-.globl b__MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRRefREs
+.weak b__MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRRefREs
 .type b__MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRRefREs,%function
 b__MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRRefREs:
 nop
@@ -9453,12 +9453,12 @@
 b__MGFt:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__113onfvp_bfgernzVpAF_11pune_genvgfVpRRRyfRCAF_15onfvp_fgernzohsVpF2_RR
+.weak b__MAFg3__113onfvp_bfgernzVpAF_11pune_genvgfVpRRRyfRCAF_15onfvp_fgernzohsVpF2_RR
 .type b__MAFg3__113onfvp_bfgernzVpAF_11pune_genvgfVpRRRyfRCAF_15onfvp_fgernzohsVpF2_RR,%function
 b__MAFg3__113onfvp_bfgernzVpAF_11pune_genvgfVpRRRyfRCAF_15onfvp_fgernzohsVpF2_RR:
 nop
 .data
-.globl b__MGVAFg3__18gvzr_chgVjAF_19bfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRRR
+.weak b__MGVAFg3__18gvzr_chgVjAF_19bfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRRR
 .type b__MGVAFg3__18gvzr_chgVjAF_19bfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRRR,%object
 b__MGVAFg3__18gvzr_chgVjAF_19bfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRRR:
 .space __SIZEOF_POINTER__
@@ -9478,12 +9478,12 @@
 b__MAFg9rkprcgvbaQ1Ri:
 nop
 .data
-.globl b__MGFAFg3__115zrffntrf_olanzrVjRR
+.weak b__MGFAFg3__115zrffntrf_olanzrVjRR
 .type b__MGFAFg3__115zrffntrf_olanzrVjRR,%object
 b__MGFAFg3__115zrffntrf_olanzrVjRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAXFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRR4svaqRjz
+.weak b__MAXFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRR4svaqRjz
 .type b__MAXFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRR4svaqRjz,%function
 b__MAXFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRR4svaqRjz:
 nop
@@ -9503,17 +9503,17 @@
 b__MGFv:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRRefREv
+.weak b__MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRRefREv
 .type b__MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRRefREv,%function
 b__MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRRefREv:
 nop
 .text
-.globl b__MAFg3__113onfvp_bfgernzVjAF_11pune_genvgfVjRRR6fragelP1REF3_
+.weak b__MAFg3__113onfvp_bfgernzVjAF_11pune_genvgfVjRRR6fragelP1REF3_
 .type b__MAFg3__113onfvp_bfgernzVjAF_11pune_genvgfVjRRR6fragelP1REF3_,%function
 b__MAFg3__113onfvp_bfgernzVjAF_11pune_genvgfVjRRR6fragelP1REF3_:
 nop
 .text
-.globl b__MAFg3__114onfvp_vbfgernzVpAF_11pune_genvgfVpRRRQ0Ri
+.weak b__MAFg3__114onfvp_vbfgernzVpAF_11pune_genvgfVpRRRQ0Ri
 .type b__MAFg3__114onfvp_vbfgernzVpAF_11pune_genvgfVpRRRQ0Ri,%function
 b__MAFg3__114onfvp_vbfgernzVpAF_11pune_genvgfVpRRRQ0Ri:
 nop
@@ -9523,7 +9523,7 @@
 b__MAXFg3__17pbqrpigVpp9zofgngr_gR11qb_rapbqvatRi:
 nop
 .text
-.globl b__MAXFg3__17ahz_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR6qb_trgRF4_F4_EAF_8vbf_onfrREwF8_
+.weak b__MAXFg3__17ahz_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR6qb_trgRF4_F4_EAF_8vbf_onfrREwF8_
 .type b__MAXFg3__17ahz_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR6qb_trgRF4_F4_EAF_8vbf_onfrREwF8_,%function
 b__MAXFg3__17ahz_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR6qb_trgRF4_F4_EAF_8vbf_onfrREwF8_:
 nop
@@ -9543,17 +9543,17 @@
 b__MGIA10__pkknovi116__fuvz_glcr_vasbR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRRefREw
+.weak b__MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRRefREw
 .type b__MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRRefREw,%function
 b__MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRRefREw:
 nop
 .text
-.globl b__MAFg3__113onfvp_bfgernzVpAF_11pune_genvgfVpRRRP2RCAF_15onfvp_fgernzohsVpF2_RR
+.weak b__MAFg3__113onfvp_bfgernzVpAF_11pune_genvgfVpRRRP2RCAF_15onfvp_fgernzohsVpF2_RR
 .type b__MAFg3__113onfvp_bfgernzVpAF_11pune_genvgfVpRRRP2RCAF_15onfvp_fgernzohsVpF2_RR,%function
 b__MAFg3__113onfvp_bfgernzVpAF_11pune_genvgfVpRRRP2RCAF_15onfvp_fgernzohsVpF2_RR:
 nop
 .data
-.globl b__MGVAFg3__19onfvp_vbfVjAF_11pune_genvgfVjRRRR
+.weak b__MGVAFg3__19onfvp_vbfVjAF_11pune_genvgfVjRRRR
 .type b__MGVAFg3__19onfvp_vbfVjAF_11pune_genvgfVjRRRR,%object
 b__MGVAFg3__19onfvp_vbfVjAF_11pune_genvgfVjRRRR:
 .space __SIZEOF_POINTER__
@@ -9573,7 +9573,7 @@
 b__MGVCXy:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__17__fbeg5VEAF_6__yrffVrrRRCrRRwG0_F5_F5_F5_F5_G_
+.weak b__MAFg3__17__fbeg5VEAF_6__yrffVrrRRCrRRwG0_F5_F5_F5_F5_G_
 .type b__MAFg3__17__fbeg5VEAF_6__yrffVrrRRCrRRwG0_F5_F5_F5_F5_G_,%function
 b__MAFg3__17__fbeg5VEAF_6__yrffVrrRRCrRRwG0_F5_F5_F5_F5_G_:
 nop
@@ -9588,17 +9588,17 @@
 b__MAFg3__115__guernq_fgehpg27__znxr_ernql_ng_guernq_rkvgRCAF_17__nffbp_fho_fgngrR:
 nop
 .text
-.globl b__MAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRR4ernqRCjy
+.weak b__MAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRR4ernqRCjy
 .type b__MAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRR4ernqRCjy,%function
 b__MAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRR4ernqRCjy:
 nop
 .data
-.globl b__MAFg3__18zrffntrfVjR2vqR
+.weak b__MAFg3__18zrffntrfVjR2vqR
 .type b__MAFg3__18zrffntrfVjR2vqR,%object
 b__MAFg3__18zrffntrfVjR2vqR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIAFg3__117zbarlchapg_olanzrVjYo1RRR
+.weak b__MGIAFg3__117zbarlchapg_olanzrVjYo1RRR
 .type b__MGIAFg3__117zbarlchapg_olanzrVjYo1RRR,%object
 b__MGIAFg3__117zbarlchapg_olanzrVjYo1RRR:
 .space __SIZEOF_POINTER__
@@ -9618,7 +9618,7 @@
 b__MAFg3__124__yvopcc_qroht_rkprcgvbaQ2Ri:
 nop
 .text
-.globl b__MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRRefREy
+.weak b__MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRRefREy
 .type b__MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRRefREy,%function
 b__MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRRefREy:
 nop
@@ -9643,7 +9643,7 @@
 b__MGFz:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRRefREz
+.weak b__MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRRefREz
 .type b__MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRRefREz,%function
 b__MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRRefREz:
 nop
@@ -9678,12 +9678,12 @@
 b__MAXFg3__120__pbqrpig_hgs8_hgs16VjR13qb_znk_yratguRi:
 nop
 .data
-.globl b__MGFAFg3__110pglcr_onfrR
+.weak b__MGFAFg3__110pglcr_onfrR
 .type b__MGFAFg3__110pglcr_onfrR,%object
 b__MGFAFg3__110pglcr_onfrR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRP1REXF5_zzEXF4_
+.weak b__MAFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRP1REXF5_zzEXF4_
 .type b__MAFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRP1REXF5_zzEXF4_,%function
 b__MAFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRP1REXF5_zzEXF4_:
 nop
@@ -9698,7 +9698,7 @@
 b__MGIFg9rkprcgvba:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIAFg3__114pbqrpig_olanzrVpp9zofgngr_gRR
+.weak b__MGIAFg3__114pbqrpig_olanzrVpp9zofgngr_gRR
 .type b__MGIAFg3__114pbqrpig_olanzrVpp9zofgngr_gRR,%object
 b__MGIAFg3__114pbqrpig_olanzrVpp9zofgngr_gRR:
 .space __SIZEOF_POINTER__
@@ -9723,7 +9723,7 @@
 b__MAFg3__17pbqrpigVjp9zofgngr_gRP2Rz:
 nop
 .data
-.globl b__MGVAFg3__19__ahz_chgVjRR
+.weak b__MGVAFg3__19__ahz_chgVjRR
 .type b__MGVAFg3__19__ahz_chgVjRR,%object
 b__MGVAFg3__19__ahz_chgVjRR:
 .space __SIZEOF_POINTER__
@@ -9753,7 +9753,7 @@
 b__MAFg3__18__p_abqr5__nqqRCAF_8__v_abqrR:
 nop
 .text
-.globl b__MAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRR9conpxsnvyRv
+.weak b__MAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRR9conpxsnvyRv
 .type b__MAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRR9conpxsnvyRv,%function
 b__MAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRR9conpxsnvyRv:
 nop
@@ -9768,7 +9768,7 @@
 b__MAXFg3__15pglcrVjR11qb_fpna_abgRzCXjF3_:
 nop
 .data
-.globl b__MGFAFg3__120__gvzr_trg_p_fgbentrVpRR
+.weak b__MGFAFg3__120__gvzr_trg_p_fgbentrVpRR
 .type b__MGFAFg3__120__gvzr_trg_p_fgbentrVpRR,%object
 b__MGFAFg3__120__gvzr_trg_p_fgbentrVpRR:
 .space __SIZEOF_POINTER__
@@ -9798,7 +9798,7 @@
 b__MAFg9rkprcgvbaQ2Ri:
 nop
 .text
-.globl b__MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRRefREf
+.weak b__MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRRefREf
 .type b__MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRRefREf,%function
 b__MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRRefREf:
 nop
@@ -9813,12 +9813,12 @@
 b__MGIFg11enatr_reebe:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRRefREg
+.weak b__MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRRefREg
 .type b__MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRRefREg,%function
 b__MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRRefREg:
 nop
 .text
-.globl b__MAFg3__114onfvp_vbfgernzVpAF_11pune_genvgfVpRRRQ1Ri
+.weak b__MAFg3__114onfvp_vbfgernzVpAF_11pune_genvgfVpRRRQ1Ri
 .type b__MAFg3__114onfvp_vbfgernzVpAF_11pune_genvgfVpRRRQ1Ri,%function
 b__MAFg3__114onfvp_vbfgernzVpAF_11pune_genvgfVpRRRQ1Ri:
 nop
@@ -9828,7 +9828,7 @@
 b__MAFg3__18vbf_onfr4VavgQ1Ri:
 nop
 .text
-.globl b__MAXFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRR7pbzcnerRzzEXF5_zz
+.weak b__MAXFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRR7pbzcnerRzzEXF5_zz
 .type b__MAXFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRR7pbzcnerRzzEXF5_zz,%function
 b__MAXFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRR7pbzcnerRzzEXF5_zz:
 nop
@@ -9848,7 +9848,7 @@
 b__MAXFg3__120__pbqrpig_hgs8_hgs16VQvR6qb_bhgRE9zofgngr_gCXQvF5_EF5_CpF7_EF7_:
 nop
 .text
-.globl b__MAXFg3__18gvzr_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR12__trg_zvahgrREvEF4_F4_EwEXAF_5pglcrVpRR
+.weak b__MAXFg3__18gvzr_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR12__trg_zvahgrREvEF4_F4_EwEXAF_5pglcrVpRR
 .type b__MAXFg3__18gvzr_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR12__trg_zvahgrREvEF4_F4_EwEXAF_5pglcrVpRR,%function
 b__MAXFg3__18gvzr_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR12__trg_zvahgrREvEF4_F4_EwEXAF_5pglcrVpRR:
 nop
@@ -9873,7 +9873,7 @@
 b__MGFFg11ybtvp_reebe:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIAFg3__18gvzr_chgVjAF_19bfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRRR
+.weak b__MGIAFg3__18gvzr_chgVjAF_19bfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRRR
 .type b__MGIAFg3__18gvzr_chgVjAF_19bfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRRR,%object
 b__MGIAFg3__18gvzr_chgVjAF_19bfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRRR:
 .space __SIZEOF_POINTER__
@@ -9903,7 +9903,7 @@
 b__MAXFg3__18ahzchapgVjR11qb_gehranzrRi:
 nop
 .text
-.globl b__MAXFg3__18gvzr_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR17__trg_juvgr_fcnprREF4_F4_EwEXAF_5pglcrVjRR
+.weak b__MAXFg3__18gvzr_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR17__trg_juvgr_fcnprREF4_F4_EwEXAF_5pglcrVjRR
 .type b__MAXFg3__18gvzr_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR17__trg_juvgr_fcnprREF4_F4_EwEXAF_5pglcrVjRR,%function
 b__MAXFg3__18gvzr_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR17__trg_juvgr_fcnprREF4_F4_EwEXAF_5pglcrVjRR:
 nop
@@ -9923,7 +9923,7 @@
 b__MGIAFg3__15pglcrVjRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRQ1Ri
+.weak b__MAFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRQ1Ri
 .type b__MAFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRQ1Ri,%function
 b__MAFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRQ1Ri:
 nop
@@ -9953,12 +9953,12 @@
 b__MGIFg10onq_glcrvq:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRP1REXF5_
+.weak b__MAFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRP1REXF5_
 .type b__MAFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRP1REXF5_,%function
 b__MAFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRP1REXF5_:
 nop
 .text
-.globl b__MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRRefREk
+.weak b__MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRRefREk
 .type b__MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRRefREk,%function
 b__MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRRefREk:
 nop
@@ -9983,12 +9983,12 @@
 b__MGFl:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRRefREl
+.weak b__MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRRefREl
 .type b__MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRRefREl,%function
 b__MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRRefREl:
 nop
 .text
-.globl b__MAFg3__113onfvp_bfgernzVjAF_11pune_genvgfVjRRRyfRCSEF3_F4_R
+.weak b__MAFg3__113onfvp_bfgernzVjAF_11pune_genvgfVjRRRyfRCSEF3_F4_R
 .type b__MAFg3__113onfvp_bfgernzVjAF_11pune_genvgfVjRRRyfRCSEF3_F4_R,%function
 b__MAFg3__113onfvp_bfgernzVjAF_11pune_genvgfVjRRRyfRCSEF3_F4_R:
 nop
@@ -10013,7 +10013,7 @@
 b__MGIAFg3__17pbqrpigVpp9zofgngr_gRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAXFg3__17ahz_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR6qb_trgRF4_F4_EAF_8vbf_onfrREwEo
+.weak b__MAXFg3__17ahz_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR6qb_trgRF4_F4_EAF_8vbf_onfrREwEo
 .type b__MAXFg3__17ahz_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR6qb_trgRF4_F4_EAF_8vbf_onfrREwEo,%function
 b__MAXFg3__17ahz_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR6qb_trgRF4_F4_EAF_8vbf_onfrREwEo:
 nop
@@ -10038,7 +10038,7 @@
 b__MGIFg16arfgrq_rkprcgvba:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIAFg3__115zrffntrf_olanzrVjRR
+.weak b__MGIAFg3__115zrffntrf_olanzrVjRR
 .type b__MGIAFg3__115zrffntrf_olanzrVjRR,%object
 b__MGIAFg3__115zrffntrf_olanzrVjRR:
 .space __SIZEOF_POINTER__
@@ -10058,47 +10058,47 @@
 b__MFg15trg_arj_unaqyrei:
 nop
 .text
-.globl b__MAXFg3__17ahz_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR6qb_trgRF4_F4_EAF_8vbf_onfrREwEq
+.weak b__MAXFg3__17ahz_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR6qb_trgRF4_F4_EAF_8vbf_onfrREwEq
 .type b__MAXFg3__17ahz_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR6qb_trgRF4_F4_EAF_8vbf_onfrREwEq,%function
 b__MAXFg3__17ahz_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR6qb_trgRF4_F4_EAF_8vbf_onfrREwEq:
 nop
 .data
-.globl b__MAFg3__18gvzr_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR2vqR
+.weak b__MAFg3__18gvzr_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR2vqR
 .type b__MAFg3__18gvzr_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR2vqR,%object
 b__MAFg3__18gvzr_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR2vqR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MAFg3__18gvzr_chgVjAF_19bfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR2vqR
+.weak b__MAFg3__18gvzr_chgVjAF_19bfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR2vqR
 .type b__MAFg3__18gvzr_chgVjAF_19bfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR2vqR,%object
 b__MAFg3__18gvzr_chgVjAF_19bfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR2vqR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGFAFg3__19__ahz_chgVjRR
+.weak b__MGFAFg3__19__ahz_chgVjRR
 .type b__MGFAFg3__19__ahz_chgVjRR,%object
 b__MGFAFg3__19__ahz_chgVjRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAXFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRR13svaq_svefg_bsRCXjzz
+.weak b__MAXFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRR13svaq_svefg_bsRCXjzz
 .type b__MAXFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRR13svaq_svefg_bsRCXjzz,%function
 b__MAXFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRR13svaq_svefg_bsRCXjzz:
 nop
 .text
-.globl b__MAFg3__115onfvp_fgernzohsVjAF_11pune_genvgfVjRRR10chofrrxcbfRAF_4scbfV9zofgngr_gRRw
+.weak b__MAFg3__115onfvp_fgernzohsVjAF_11pune_genvgfVjRRR10chofrrxcbfRAF_4scbfV9zofgngr_gRRw
 .type b__MAFg3__115onfvp_fgernzohsVjAF_11pune_genvgfVjRRR10chofrrxcbfRAF_4scbfV9zofgngr_gRRw,%function
 b__MAFg3__115onfvp_fgernzohsVjAF_11pune_genvgfVjRRR10chofrrxcbfRAF_4scbfV9zofgngr_gRRw:
 nop
 .text
-.globl b__MAXFg3__117zbarlchapg_olanzrVpYo0RR11qb_tebhcvatRi
+.weak b__MAXFg3__117zbarlchapg_olanzrVpYo0RR11qb_tebhcvatRi
 .type b__MAXFg3__117zbarlchapg_olanzrVpYo0RR11qb_tebhcvatRi,%function
 b__MAXFg3__117zbarlchapg_olanzrVpYo0RR11qb_tebhcvatRi:
 nop
 .text
-.globl b__MAXFg3__17ahz_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR6qb_trgRF4_F4_EAF_8vbf_onfrREwEr
+.weak b__MAXFg3__17ahz_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR6qb_trgRF4_F4_EAF_8vbf_onfrREwEr
 .type b__MAXFg3__17ahz_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR6qb_trgRF4_F4_EAF_8vbf_onfrREwEr,%function
 b__MAXFg3__17ahz_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR6qb_trgRF4_F4_EAF_8vbf_onfrREwEr:
 nop
 .text
-.globl b__MAFg3__19__ahz_chgVpR21__jvqra_naq_tebhc_vagRCpF2_F2_F2_EF2_F3_EXAF_6ybpnyrR
+.weak b__MAFg3__19__ahz_chgVpR21__jvqra_naq_tebhc_vagRCpF2_F2_F2_EF2_F3_EXAF_6ybpnyrR
 .type b__MAFg3__19__ahz_chgVpR21__jvqra_naq_tebhc_vagRCpF2_F2_F2_EF2_F3_EXAF_6ybpnyrR,%function
 b__MAFg3__19__ahz_chgVpR21__jvqra_naq_tebhc_vagRCpF2_F2_F2_EF2_F3_EXAF_6ybpnyrR:
 nop
@@ -10108,7 +10108,7 @@
 b__MAFg3__15fgbyqREXAF_12onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRRRCz:
 nop
 .text
-.globl b__MAFg3__18inyneenlVzR6erfvmrRzz
+.weak b__MAFg3__18inyneenlVzR6erfvmrRzz
 .type b__MAFg3__18inyneenlVzR6erfvmrRzz,%function
 b__MAFg3__18inyneenlVzR6erfvmrRzz:
 nop
@@ -10118,7 +10118,7 @@
 b__MGFAFg3__117__nffbp_fho_fgngrR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__114onfvp_vbfgernzVpAF_11pune_genvgfVpRRRQ2Ri
+.weak b__MAFg3__114onfvp_vbfgernzVpAF_11pune_genvgfVpRRRQ2Ri
 .type b__MAFg3__114onfvp_vbfgernzVpAF_11pune_genvgfVpRRRQ2Ri,%function
 b__MAFg3__114onfvp_vbfgernzVpAF_11pune_genvgfVpRRRQ2Ri:
 nop
@@ -10128,12 +10128,12 @@
 b__MAFg3__18vbf_onfr4VavgQ2Ri:
 nop
 .text
-.globl b__MAXFg3__17ahz_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR6qb_trgRF4_F4_EAF_8vbf_onfrREwEs
+.weak b__MAXFg3__17ahz_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR6qb_trgRF4_F4_EAF_8vbf_onfrREwEs
 .type b__MAXFg3__17ahz_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR6qb_trgRF4_F4_EAF_8vbf_onfrREwEs,%function
 b__MAXFg3__17ahz_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR6qb_trgRF4_F4_EAF_8vbf_onfrREwEs:
 nop
 .text
-.globl b__MAXFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR4pbclRCpzz
+.weak b__MAXFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR4pbclRCpzz
 .type b__MAXFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR4pbclRCpzz,%function
 b__MAXFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR4pbclRCpzz:
 nop
@@ -10153,7 +10153,7 @@
 b__MGIAFg3__117__nffbp_fho_fgngrR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGVAFg3__18gvzr_chgVpAF_19bfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRRR
+.weak b__MGVAFg3__18gvzr_chgVpAF_19bfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRRR
 .type b__MGVAFg3__18gvzr_chgVpAF_19bfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRRR,%object
 b__MGVAFg3__18gvzr_chgVpAF_19bfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRRR:
 .space __SIZEOF_POINTER__
@@ -10163,7 +10163,7 @@
 b__MAFg3__112fgefgernzohsP1RCSCizRCSiF1_R:
 nop
 .text
-.globl b__MAFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRQ2Ri
+.weak b__MAFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRQ2Ri
 .type b__MAFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRQ2Ri,%function
 b__MAFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRQ2Ri:
 nop
@@ -10193,7 +10193,7 @@
 b__MGIAFg3__18__p_abqrR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAXFg3__117zbarlchapg_olanzrVjYo0RR16qb_qrpvzny_cbvagRi
+.weak b__MAXFg3__117zbarlchapg_olanzrVjYo0RR16qb_qrpvzny_cbvagRi
 .type b__MAXFg3__117zbarlchapg_olanzrVjYo0RR16qb_qrpvzny_cbvagRi,%function
 b__MAXFg3__117zbarlchapg_olanzrVjYo0RR16qb_qrpvzny_cbvagRi:
 nop
@@ -10203,7 +10203,7 @@
 b__MAXFg3__17pbqrpigVpp9zofgngr_gR9qb_yratguREF1_CXpF5_z:
 nop
 .data
-.globl b__MGFAFg3__113zrffntrf_onfrR
+.weak b__MGFAFg3__113zrffntrf_onfrR
 .type b__MGFAFg3__113zrffntrf_onfrR,%object
 b__MGFAFg3__113zrffntrf_onfrR:
 .space __SIZEOF_POINTER__
@@ -10218,7 +10218,7 @@
 b__MAXFg3__15pglcrVpR10qb_gbhccreRp:
 nop
 .text
-.globl b__MAXFg3__17ahz_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR6qb_trgRF4_F4_EAF_8vbf_onfrREwEy
+.weak b__MAXFg3__17ahz_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR6qb_trgRF4_F4_EAF_8vbf_onfrREwEy
 .type b__MAXFg3__17ahz_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR6qb_trgRF4_F4_EAF_8vbf_onfrREwEy,%function
 b__MAXFg3__17ahz_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR6qb_trgRF4_F4_EAF_8vbf_onfrREwEy:
 nop
@@ -10228,7 +10228,7 @@
 b__MAXFg3__18ahzchapgVjR16qb_qrpvzny_cbvagRi:
 nop
 .text
-.globl b__MAXFg3__18gvzr_chgVjAF_19bfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR3chgRF4_EAF_8vbf_onfrRjCX2gzCXjFP_
+.weak b__MAXFg3__18gvzr_chgVjAF_19bfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR3chgRF4_EAF_8vbf_onfrRjCX2gzCXjFP_
 .type b__MAXFg3__18gvzr_chgVjAF_19bfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR3chgRF4_EAF_8vbf_onfrRjCX2gzCXjFP_,%function
 b__MAXFg3__18gvzr_chgVjAF_19bfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR3chgRF4_EAF_8vbf_onfrRjCX2gzCXjFP_:
 nop
@@ -10243,12 +10243,12 @@
 b__MAFg3__16shgherViRQ1Ri:
 nop
 .text
-.globl b__MAXFg3__17ahz_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR6qb_trgRF4_F4_EAF_8vbf_onfrREwEz
+.weak b__MAXFg3__17ahz_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR6qb_trgRF4_F4_EAF_8vbf_onfrREwEz
 .type b__MAXFg3__17ahz_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR6qb_trgRF4_F4_EAF_8vbf_onfrREwEz,%function
 b__MAXFg3__17ahz_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR6qb_trgRF4_F4_EAF_8vbf_onfrREwEz:
 nop
 .text
-.globl b__MAXFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRR7pbzcnerRCXj
+.weak b__MAXFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRR7pbzcnerRCXj
 .type b__MAXFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRR7pbzcnerRCXj,%function
 b__MAXFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRR7pbzcnerRCXj:
 nop
@@ -10263,7 +10263,7 @@
 b__MAFg3__18ahzchapgVpRP1Rz:
 nop
 .data
-.globl b__MGVAFg3__17ahz_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRRR
+.weak b__MGVAFg3__17ahz_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRRR
 .type b__MGVAFg3__17ahz_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRRR,%object
 b__MGVAFg3__17ahz_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRRR:
 .space __SIZEOF_POINTER__
@@ -10278,7 +10278,7 @@
 b__MGVA10__pkknovi117__pynff_glcr_vasbR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__115onfvp_fgernzohsVjAF_11pune_genvgfVjRRR7fhatrgpRi
+.weak b__MAFg3__115onfvp_fgernzohsVjAF_11pune_genvgfVjRRR7fhatrgpRi
 .type b__MAFg3__115onfvp_fgernzohsVjAF_11pune_genvgfVjRRR7fhatrgpRi,%function
 b__MAFg3__115onfvp_fgernzohsVjAF_11pune_genvgfVjRRR7fhatrgpRi:
 nop
@@ -10293,32 +10293,32 @@
 b__MGFQa:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRR5frrxtRkAF_8vbf_onfr7frrxqveR
+.weak b__MAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRR5frrxtRkAF_8vbf_onfr7frrxqveR
 .type b__MAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRR5frrxtRkAF_8vbf_onfr7frrxqveR,%function
 b__MAFg3__113onfvp_vfgernzVjAF_11pune_genvgfVjRRR5frrxtRkAF_8vbf_onfr7frrxqveR:
 nop
 .text
-.globl b__MAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRR6fohzcpRi
+.weak b__MAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRR6fohzcpRi
 .type b__MAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRR6fohzcpRi,%function
 b__MAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRR6fohzcpRi:
 nop
 .text
-.globl b__MAXFg3__18gvzr_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR18__trg_qnl_lrne_ahzREvEF4_F4_EwEXAF_5pglcrVpRR
+.weak b__MAXFg3__18gvzr_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR18__trg_qnl_lrne_ahzREvEF4_F4_EwEXAF_5pglcrVpRR
 .type b__MAXFg3__18gvzr_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR18__trg_qnl_lrne_ahzREvEF4_F4_EwEXAF_5pglcrVpRR,%function
 b__MAXFg3__18gvzr_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR18__trg_qnl_lrne_ahzREvEF4_F4_EwEXAF_5pglcrVpRR:
 nop
 .data
-.globl b__MGIAFg3__17ahz_chgVpAF_19bfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRRR
+.weak b__MGIAFg3__17ahz_chgVpAF_19bfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRRR
 .type b__MGIAFg3__17ahz_chgVpAF_19bfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRRR,%object
 b__MGIAFg3__17ahz_chgVpAF_19bfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRR6__vavgRCXjz
+.weak b__MAFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRR6__vavgRCXjz
 .type b__MAFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRR6__vavgRCXjz,%function
 b__MAFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRR6__vavgRCXjz:
 nop
 .text
-.globl b__MAFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRP2REXF5_
+.weak b__MAFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRP2REXF5_
 .type b__MAFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRP2REXF5_,%function
 b__MAFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRP2REXF5_:
 nop
@@ -10343,17 +10343,17 @@
 b__MGVAFg3__18ahzchapgVjRR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIAFg3__18zrffntrfVpRR
+.weak b__MGIAFg3__18zrffntrfVpRR
 .type b__MGIAFg3__18zrffntrfVpRR,%object
 b__MGIAFg3__18zrffntrfVpRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR6vafregRAF_11__jenc_vgreVCXpRRp
+.weak b__MAFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR6vafregRAF_11__jenc_vgreVCXpRRp
 .type b__MAFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR6vafregRAF_11__jenc_vgreVCXpRRp,%function
 b__MAFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR6vafregRAF_11__jenc_vgreVCXpRRp:
 nop
 .text
-.globl b__MAFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRR6erfvmrRzj
+.weak b__MAFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRR6erfvmrRzj
 .type b__MAFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRR6erfvmrRzj,%function
 b__MAFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRR6erfvmrRzj:
 nop
@@ -10368,12 +10368,12 @@
 b__MAFg3__112cynprubyqref2_9R:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAXFg3__17pbyyngrVjR12qb_genafsbezRCXjF3_
+.weak b__MAXFg3__17pbyyngrVjR12qb_genafsbezRCXjF3_
 .type b__MAXFg3__17pbyyngrVjR12qb_genafsbezRCXjF3_,%function
 b__MAXFg3__17pbyyngrVjR12qb_genafsbezRCXjF3_:
 nop
 .data
-.globl b__MGFAFg3__110zbarlchapgVjYo1RRR
+.weak b__MGFAFg3__110zbarlchapgVjYo1RRR
 .type b__MGFAFg3__110zbarlchapgVjYo1RRR,%object
 b__MGFAFg3__110zbarlchapgVjYo1RRR:
 .space __SIZEOF_POINTER__
@@ -10393,17 +10393,17 @@
 b__MAXFg3__120__pbqrpig_hgs8_hgs16VQvR5qb_vaRE9zofgngr_gCXpF5_EF5_CQvF7_EF7_:
 nop
 .text
-.globl b__MAXFg3__17ahz_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR6qb_trgRF4_F4_EAF_8vbf_onfrREwEg
+.weak b__MAXFg3__17ahz_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR6qb_trgRF4_F4_EAF_8vbf_onfrREwEg
 .type b__MAXFg3__17ahz_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR6qb_trgRF4_F4_EAF_8vbf_onfrREwEg,%function
 b__MAXFg3__17ahz_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR6qb_trgRF4_F4_EAF_8vbf_onfrREwEg:
 nop
 .data
-.globl b__MAFg3__110zbarlchapgVjYo0RR2vqR
+.weak b__MAFg3__110zbarlchapgVjYo0RR2vqR
 .type b__MAFg3__110zbarlchapgVjYo0RR2vqR,%object
 b__MAFg3__110zbarlchapgVjYo0RR2vqR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIAFg3__110zbarlchapgVjYo1RRR
+.weak b__MGIAFg3__110zbarlchapgVjYo1RRR
 .type b__MGIAFg3__110zbarlchapgVjYo1RRR,%object
 b__MGIAFg3__110zbarlchapgVjYo1RRR:
 .space __SIZEOF_POINTER__
@@ -10423,12 +10423,12 @@
 b__MAFg20onq_neenl_arj_yratguQ0Ri:
 nop
 .text
-.globl b__MajzFg11nyvta_iny_g
+.weak b__MajzFg11nyvta_iny_g
 .type b__MajzFg11nyvta_iny_g,%function
 b__MajzFg11nyvta_iny_g:
 nop
 .text
-.globl b__MAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRR5fchgaRCXpy
+.weak b__MAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRR5fchgaRCXpy
 .type b__MAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRR5fchgaRCXpy,%function
 b__MAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRR5fchgaRCXpy:
 nop
@@ -10438,12 +10438,12 @@
 b__MAFg3__17pbqrpigVjp9zofgngr_gRP1RCXpz:
 nop
 .text
-.globl b__MAFg3__115onfvp_fgernzohsVjAF_11pune_genvgfVjRRR5cohzcRv
+.weak b__MAFg3__115onfvp_fgernzohsVjAF_11pune_genvgfVjRRR5cohzcRv
 .type b__MAFg3__115onfvp_fgernzohsVjAF_11pune_genvgfVjRRR5cohzcRv,%function
 b__MAFg3__115onfvp_fgernzohsVjAF_11pune_genvgfVjRRR5cohzcRv:
 nop
 .text
-.globl b__MAXFg3__17ahz_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR6qb_trgRF4_F4_EAF_8vbf_onfrREwEo
+.weak b__MAXFg3__17ahz_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR6qb_trgRF4_F4_EAF_8vbf_onfrREwEo
 .type b__MAXFg3__17ahz_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR6qb_trgRF4_F4_EAF_8vbf_onfrREwEo,%function
 b__MAXFg3__17ahz_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR6qb_trgRF4_F4_EAF_8vbf_onfrREwEo:
 nop
@@ -10458,12 +10458,12 @@
 b__MAXFg3__114__pbqrpig_hgs8VjR10qb_hafuvsgRE9zofgngr_gCpF4_EF4_:
 nop
 .text
-.globl b__MAXFg3__17ahz_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR6qb_trgRF4_F4_EAF_8vbf_onfrREwF8_
+.weak b__MAXFg3__17ahz_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR6qb_trgRF4_F4_EAF_8vbf_onfrREwF8_
 .type b__MAXFg3__17ahz_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR6qb_trgRF4_F4_EAF_8vbf_onfrREwF8_,%function
 b__MAXFg3__17ahz_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR6qb_trgRF4_F4_EAF_8vbf_onfrREwF8_:
 nop
 .text
-.globl b__MAFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR6vafregRzCXpz
+.weak b__MAFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR6vafregRzCXpz
 .type b__MAFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR6vafregRzCXpz,%function
 b__MAFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR6vafregRzCXpz:
 nop
@@ -10473,17 +10473,17 @@
 b__MAFg3__16shgherViRQ2Ri:
 nop
 .text
-.globl b__MAXFg3__17ahz_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR6qb_trgRF4_F4_EAF_8vbf_onfrREwEk
+.weak b__MAXFg3__17ahz_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR6qb_trgRF4_F4_EAF_8vbf_onfrREwEk
 .type b__MAXFg3__17ahz_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR6qb_trgRF4_F4_EAF_8vbf_onfrREwEk,%function
 b__MAXFg3__17ahz_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR6qb_trgRF4_F4_EAF_8vbf_onfrREwEk:
 nop
 .text
-.globl b__MAXFg3__17ahz_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR6qb_trgRF4_F4_EAF_8vbf_onfrREwEq
+.weak b__MAXFg3__17ahz_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR6qb_trgRF4_F4_EAF_8vbf_onfrREwEq
 .type b__MAXFg3__17ahz_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR6qb_trgRF4_F4_EAF_8vbf_onfrREwEq,%function
 b__MAXFg3__17ahz_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR6qb_trgRF4_F4_EAF_8vbf_onfrREwEq:
 nop
 .text
-.globl b__MAXFg3__18gvzr_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR11qb_trg_gvzrRF4_F4_EAF_8vbf_onfrREwC2gz
+.weak b__MAXFg3__18gvzr_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR11qb_trg_gvzrRF4_F4_EAF_8vbf_onfrREwC2gz
 .type b__MAXFg3__18gvzr_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR11qb_trg_gvzrRF4_F4_EAF_8vbf_onfrREwC2gz,%function
 b__MAXFg3__18gvzr_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR11qb_trg_gvzrRF4_F4_EAF_8vbf_onfrREwC2gz:
 nop
@@ -10493,7 +10493,7 @@
 b__MGFAFg3__119__funerq_jrnx_pbhagR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRRnFRj
+.weak b__MAFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRRnFRj
 .type b__MAFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRRnFRj,%function
 b__MAFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRRnFRj:
 nop
@@ -10503,17 +10503,17 @@
 b__MAXFg3__15pglcrVpR10qb_gbybjreRCpCXp:
 nop
 .text
-.globl b__MAXFg3__17ahz_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR6qb_trgRF4_F4_EAF_8vbf_onfrREwEl
+.weak b__MAXFg3__17ahz_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR6qb_trgRF4_F4_EAF_8vbf_onfrREwEl
 .type b__MAXFg3__17ahz_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR6qb_trgRF4_F4_EAF_8vbf_onfrREwEl,%function
 b__MAXFg3__17ahz_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR6qb_trgRF4_F4_EAF_8vbf_onfrREwEl:
 nop
 .text
-.globl b__MAXFg3__17ahz_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR6qb_trgRF4_F4_EAF_8vbf_onfrREwEr
+.weak b__MAXFg3__17ahz_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR6qb_trgRF4_F4_EAF_8vbf_onfrREwEr
 .type b__MAXFg3__17ahz_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR6qb_trgRF4_F4_EAF_8vbf_onfrREwEr,%function
 b__MAXFg3__17ahz_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR6qb_trgRF4_F4_EAF_8vbf_onfrREwEr:
 nop
 .text
-.globl b__MAFg3__114pbqrpig_olanzrVpp9zofgngr_gRQ0Ri
+.weak b__MAFg3__114pbqrpig_olanzrVpp9zofgngr_gRQ0Ri
 .type b__MAFg3__114pbqrpig_olanzrVpp9zofgngr_gRQ0Ri,%function
 b__MAFg3__114pbqrpig_olanzrVpp9zofgngr_gRQ0Ri:
 nop
@@ -10533,17 +10533,17 @@
 b__MAFg3__113funerq_shgherViRnFREXF1_:
 nop
 .text
-.globl b__MAXFg3__17ahz_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR6qb_trgRF4_F4_EAF_8vbf_onfrREwEs
+.weak b__MAXFg3__17ahz_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR6qb_trgRF4_F4_EAF_8vbf_onfrREwEs
 .type b__MAXFg3__17ahz_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR6qb_trgRF4_F4_EAF_8vbf_onfrREwEs,%function
 b__MAXFg3__17ahz_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR6qb_trgRF4_F4_EAF_8vbf_onfrREwEs:
 nop
 .text
-.globl b__MAFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR7ercynprRzzCXp
+.weak b__MAFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR7ercynprRzzCXp
 .type b__MAFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR7ercynprRzzCXp,%function
 b__MAFg3__112onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR7ercynprRzzCXp:
 nop
 .text
-.globl b__MAFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRR7ercynprRzzCXjz
+.weak b__MAFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRR7ercynprRzzCXjz
 .type b__MAFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRR7ercynprRzzCXjz,%function
 b__MAFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRR7ercynprRzzCXjz:
 nop
@@ -10563,7 +10563,7 @@
 b__MGFAFg3__18vbf_onfrR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__19__ahz_trgVpR17__fgntr2_vag_ybbcRpvCpEF2_EwpEXAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRCwEFQ_F2_
+.weak b__MAFg3__19__ahz_trgVpR17__fgntr2_vag_ybbcRpvCpEF2_EwpEXAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRCwEFQ_F2_
 .type b__MAFg3__19__ahz_trgVpR17__fgntr2_vag_ybbcRpvCpEF2_EwpEXAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRCwEFQ_F2_,%function
 b__MAFg3__19__ahz_trgVpR17__fgntr2_vag_ybbcRpvCpEF2_EwpEXAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRCwEFQ_F2_:
 nop
@@ -10578,7 +10578,7 @@
 b__MAFg3__118pbaqvgvba_inevnoyrQ1Ri:
 nop
 .text
-.globl b__MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRR7trgyvarRCpy
+.weak b__MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRR7trgyvarRCpy
 .type b__MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRR7trgyvarRCpy,%function
 b__MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRR7trgyvarRCpy:
 nop
@@ -10593,12 +10593,12 @@
 b__MGVAFg3__114pbyyngr_olanzrVpRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRR6nccraqREXF5_zz
+.weak b__MAFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRR6nccraqREXF5_zz
 .type b__MAFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRR6nccraqREXF5_zz,%function
 b__MAFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRR6nccraqREXF5_zz:
 nop
 .text
-.globl b__MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRR3trgREAF_15onfvp_fgernzohsVpF2_RR
+.weak b__MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRR3trgREAF_15onfvp_fgernzohsVpF2_RR
 .type b__MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRR3trgREAF_15onfvp_fgernzohsVpF2_RR,%function
 b__MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRR3trgREAF_15onfvp_fgernzohsVpF2_RR:
 nop
@@ -10613,7 +10613,7 @@
 b__MAFg3__17cebzvfrViRQ1Ri:
 nop
 .text
-.globl b__MAXFg3__17ahz_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR6qb_trgRF4_F4_EAF_8vbf_onfrREwEy
+.weak b__MAXFg3__17ahz_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR6qb_trgRF4_F4_EAF_8vbf_onfrREwEy
 .type b__MAXFg3__17ahz_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR6qb_trgRF4_F4_EAF_8vbf_onfrREwEy,%function
 b__MAXFg3__17ahz_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR6qb_trgRF4_F4_EAF_8vbf_onfrREwEy:
 nop
@@ -10623,17 +10623,17 @@
 b__MGIAFg3__116__aneebj_gb_hgs8VYz16RRR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGGAFg3__113onfvp_bfgernzVjAF_11pune_genvgfVjRRRR
+.weak b__MGGAFg3__113onfvp_bfgernzVjAF_11pune_genvgfVjRRRR
 .type b__MGGAFg3__113onfvp_bfgernzVjAF_11pune_genvgfVjRRRR,%object
 b__MGGAFg3__113onfvp_bfgernzVjAF_11pune_genvgfVjRRRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAXFg3__110zbarlchapgVjYo0RR13qb_cbf_sbezngRi
+.weak b__MAXFg3__110zbarlchapgVjYo0RR13qb_cbf_sbezngRi
 .type b__MAXFg3__110zbarlchapgVjYo0RR13qb_cbf_sbezngRi,%function
 b__MAXFg3__110zbarlchapgVjYo0RR13qb_cbf_sbezngRi:
 nop
 .text
-.globl b__MAXFg3__17ahz_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR6qb_trgRF4_F4_EAF_8vbf_onfrREwEz
+.weak b__MAXFg3__17ahz_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR6qb_trgRF4_F4_EAF_8vbf_onfrREwEz
 .type b__MAXFg3__17ahz_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR6qb_trgRF4_F4_EAF_8vbf_onfrREwEz,%function
 b__MAXFg3__17ahz_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR6qb_trgRF4_F4_EAF_8vbf_onfrREwEz:
 nop
@@ -10658,7 +10658,7 @@
 b__MGIA10__pkknovi129__cbvagre_gb_zrzore_glcr_vasbR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MqyCi
+.weak b__MqyCi
 .type b__MqyCi,%function
 b__MqyCi:
 nop
@@ -10668,7 +10668,7 @@
 b__MAFg13rkprcgvba_cgeQ1Ri:
 nop
 .text
-.globl b__MAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRR7frrxbssRkAF_8vbf_onfr7frrxqveRw
+.weak b__MAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRR7frrxbssRkAF_8vbf_onfr7frrxqveRw
 .type b__MAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRR7frrxbssRkAF_8vbf_onfr7frrxqveRw,%function
 b__MAFg3__115onfvp_fgernzohsVpAF_11pune_genvgfVpRRR7frrxbssRkAF_8vbf_onfr7frrxqveRw:
 nop
@@ -10693,7 +10693,7 @@
 b__MAXFg3__120__pbqrpig_hgs8_hgs16VQfR10qb_hafuvsgRE9zofgngr_gCpF4_EF4_:
 nop
 .text
-.globl b__MAFg3__114pbqrpig_olanzrVpp9zofgngr_gRQ1Ri
+.weak b__MAFg3__114pbqrpig_olanzrVpp9zofgngr_gRQ1Ri
 .type b__MAFg3__114pbqrpig_olanzrVpp9zofgngr_gRQ1Ri,%function
 b__MAFg3__114pbqrpig_olanzrVpp9zofgngr_gRQ1Ri:
 nop
@@ -10703,7 +10703,7 @@
 b__MAFg3__17pbqrpigVpp9zofgngr_gRQ0Ri:
 nop
 .text
-.globl b__MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRR5frrxtRkAF_8vbf_onfr7frrxqveR
+.weak b__MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRR5frrxtRkAF_8vbf_onfr7frrxqveR
 .type b__MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRR5frrxtRkAF_8vbf_onfr7frrxqveR,%function
 b__MAFg3__113onfvp_vfgernzVpAF_11pune_genvgfVpRRR5frrxtRkAF_8vbf_onfr7frrxqveR:
 nop
@@ -10713,17 +10713,17 @@
 b__MGVAFg3__115__pbqrpig_hgs16VQfYo0RRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__115onfvp_fgernzohsVjAF_11pune_genvgfVjRRRP1Ri
+.weak b__MAFg3__115onfvp_fgernzohsVjAF_11pune_genvgfVjRRRP1Ri
 .type b__MAFg3__115onfvp_fgernzohsVjAF_11pune_genvgfVjRRRP1Ri,%function
 b__MAFg3__115onfvp_fgernzohsVjAF_11pune_genvgfVjRRRP1Ri:
 nop
 .text
-.globl b__MAFg3__115onfvp_fgernzohsVjAF_11pune_genvgfVjRRRnFREXF3_
+.weak b__MAFg3__115onfvp_fgernzohsVjAF_11pune_genvgfVjRRRnFREXF3_
 .type b__MAFg3__115onfvp_fgernzohsVjAF_11pune_genvgfVjRRRnFREXF3_,%function
 b__MAFg3__115onfvp_fgernzohsVjAF_11pune_genvgfVjRRRnFREXF3_:
 nop
 .text
-.globl b__MAFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRRP2REXF5_EXF4_
+.weak b__MAFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRRP2REXF5_EXF4_
 .type b__MAFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRRP2REXF5_EXF4_,%function
 b__MAFg3__112onfvp_fgevatVjAF_11pune_genvgfVjRRAF_9nyybpngbeVjRRRP2REXF5_EXF4_:
 nop
@@ -10738,17 +10738,17 @@
 b__MAFg14biresybj_reebeQ1Ri:
 nop
 .text
-.globl b__MAFg3__113onfvp_bfgernzVpAF_11pune_genvgfVpRRR6fragelP1REF3_
+.weak b__MAFg3__113onfvp_bfgernzVpAF_11pune_genvgfVpRRR6fragelP1REF3_
 .type b__MAFg3__113onfvp_bfgernzVpAF_11pune_genvgfVpRRR6fragelP1REF3_,%function
 b__MAFg3__113onfvp_bfgernzVpAF_11pune_genvgfVpRRR6fragelP1REF3_:
 nop
 .text
-.globl b__MAXFg3__117zbarlchapg_olanzrVpYo1RR11qb_tebhcvatRi
+.weak b__MAXFg3__117zbarlchapg_olanzrVpYo1RR11qb_tebhcvatRi
 .type b__MAXFg3__117zbarlchapg_olanzrVpYo1RR11qb_tebhcvatRi,%function
 b__MAXFg3__117zbarlchapg_olanzrVpYo1RR11qb_tebhcvatRi:
 nop
 .text
-.globl b__MAXFg3__18gvzr_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR13__trg_12_ubheREvEF4_F4_EwEXAF_5pglcrVpRR
+.weak b__MAXFg3__18gvzr_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR13__trg_12_ubheREvEF4_F4_EwEXAF_5pglcrVpRR
 .type b__MAXFg3__18gvzr_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR13__trg_12_ubheREvEF4_F4_EwEXAF_5pglcrVpRR,%function
 b__MAXFg3__18gvzr_trgVpAF_19vfgernzohs_vgrengbeVpAF_11pune_genvgfVpRRRRR13__trg_12_ubheREvEF4_F4_EwEXAF_5pglcrVpRR:
 nop
@@ -10763,12 +10763,12 @@
 b__MAFg3__118pbaqvgvba_inevnoyrQ2Ri:
 nop
 .text
-.globl b__MAFg3__115onfvp_fgernzohsVjAF_11pune_genvgfVjRRR9fchgonpxpRj
+.weak b__MAFg3__115onfvp_fgernzohsVjAF_11pune_genvgfVjRRR9fchgonpxpRj
 .type b__MAFg3__115onfvp_fgernzohsVjAF_11pune_genvgfVjRRR9fchgonpxpRj,%function
 b__MAFg3__115onfvp_fgernzohsVjAF_11pune_genvgfVjRRR9fchgonpxpRj:
 nop
 .text
-.globl b__MAXFg3__17ahz_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR6qb_trgRF4_F4_EAF_8vbf_onfrREwEg
+.weak b__MAXFg3__17ahz_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR6qb_trgRF4_F4_EAF_8vbf_onfrREwEg
 .type b__MAXFg3__17ahz_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR6qb_trgRF4_F4_EAF_8vbf_onfrREwEg,%function
 b__MAXFg3__17ahz_trgVjAF_19vfgernzohs_vgrengbeVjAF_11pune_genvgfVjRRRRR6qb_trgRF4_F4_EAF_8vbf_onfrREwEg:
 nop
@@ -10793,7 +10793,7 @@
 b__MAXFg3__17pbqrpigVQvp9zofgngr_gR6qb_bhgREF1_CXQvF5_EF5_CpF7_EF7_:
 nop
 .data
-.globl b__MGFAFg3__19gvzr_onfrR
+.weak b__MGFAFg3__19gvzr_onfrR
 .type b__MGFAFg3__19gvzr_onfrR,%object
 b__MGFAFg3__19gvzr_onfrR:
 .space __SIZEOF_POINTER__
diff --git a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_064.S b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_064.S
index 1fd0b83..78d530d 100644
--- a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_064.S
+++ b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_064.S
@@ -13,12 +13,12 @@
 b_zrzgenpx_cebp_bgure_gbgny:
 nop
 .text
-.globl b__MA7naqebvq2fcVAF_8uneqjner8zrzgenpx4I1_09VZrzgenpxRRQ2Ri
+.weak b__MA7naqebvq2fcVAF_8uneqjner8zrzgenpx4I1_09VZrzgenpxRRQ2Ri
 .type b__MA7naqebvq2fcVAF_8uneqjner8zrzgenpx4I1_09VZrzgenpxRRQ2Ri,%function
 b__MA7naqebvq2fcVAF_8uneqjner8zrzgenpx4I1_09VZrzgenpxRRQ2Ri:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq8uneqjner8zrzgenpx4I1_014ZrzgenpxErpbeqRAF_9nyybpngbeVF5_RRR8__nccraqRz
+.weak b__MAFg3__16irpgbeVA7naqebvq8uneqjner8zrzgenpx4I1_014ZrzgenpxErpbeqRAF_9nyybpngbeVF5_RRR8__nccraqRz
 .type b__MAFg3__16irpgbeVA7naqebvq8uneqjner8zrzgenpx4I1_014ZrzgenpxErpbeqRAF_9nyybpngbeVF5_RRR8__nccraqRz,%function
 b__MAFg3__16irpgbeVA7naqebvq8uneqjner8zrzgenpx4I1_014ZrzgenpxErpbeqRAF_9nyybpngbeVF5_RRR8__nccraqRz:
 nop
diff --git a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_065.S b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_065.S
index 8701048..30f4284 100644
--- a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_065.S
+++ b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_065.S
@@ -3,37 +3,37 @@
 .data
 .p2align 4
 .text
-.globl b__MA7naqebvq4onfr19FraqSvyrQrfpevcgbefVWvRRRyAF0_11obeebjrq_sqRCXizQcBG_
+.weak b__MA7naqebvq4onfr19FraqSvyrQrfpevcgbefVWvRRRyAF0_11obeebjrq_sqRCXizQcBG_
 .type b__MA7naqebvq4onfr19FraqSvyrQrfpevcgbefVWvRRRyAF0_11obeebjrq_sqRCXizQcBG_,%function
 b__MA7naqebvq4onfr19FraqSvyrQrfpevcgbefVWvRRRyAF0_11obeebjrq_sqRCXizQcBG_:
 nop
 .text
-.globl b__MA7naqebvq4onfr8CnefrVagVvRRoCXpCG_F4_F4_
+.weak b__MA7naqebvq4onfr8CnefrVagVvRRoCXpCG_F4_F4_
 .type b__MA7naqebvq4onfr8CnefrVagVvRRoCXpCG_F4_F4_,%function
 b__MA7naqebvq4onfr8CnefrVagVvRRoCXpCG_F4_F4_:
 nop
 .text
-.globl b__MAFg3__124__chg_punenpgre_frdhraprVpAF_11pune_genvgfVpRRRREAF_13onfvp_bfgernzVG_G0_RRF7_CXF4_z
+.weak b__MAFg3__124__chg_punenpgre_frdhraprVpAF_11pune_genvgfVpRRRREAF_13onfvp_bfgernzVG_G0_RRF7_CXF4_z
 .type b__MAFg3__124__chg_punenpgre_frdhraprVpAF_11pune_genvgfVpRRRREAF_13onfvp_bfgernzVG_G0_RRF7_CXF4_z,%function
 b__MAFg3__124__chg_punenpgre_frdhraprVpAF_11pune_genvgfVpRRRREAF_13onfvp_bfgernzVG_G0_RRF7_CXF4_z:
 nop
 .text
-.globl b__MAFg3__16irpgbeVvAF_9nyybpngbeVvRRR26__fjnc_bhg_pvephyne_ohssreREAF_14__fcyvg_ohssreVvEF2_RRCv
+.weak b__MAFg3__16irpgbeVvAF_9nyybpngbeVvRRR26__fjnc_bhg_pvephyne_ohssreREAF_14__fcyvg_ohssreVvEF2_RRCv
 .type b__MAFg3__16irpgbeVvAF_9nyybpngbeVvRRR26__fjnc_bhg_pvephyne_ohssreREAF_14__fcyvg_ohssreVvEF2_RRCv,%function
 b__MAFg3__16irpgbeVvAF_9nyybpngbeVvRRR26__fjnc_bhg_pvephyne_ohssreREAF_14__fcyvg_ohssreVvEF2_RRCv:
 nop
 .text
-.globl b__MAFg3__1yfVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRREAF_13onfvp_bfgernzVG_G0_RRF9_EXAF_12onfvp_fgevatVF6_F7_G1_RR
+.weak b__MAFg3__1yfVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRREAF_13onfvp_bfgernzVG_G0_RRF9_EXAF_12onfvp_fgevatVF6_F7_G1_RR
 .type b__MAFg3__1yfVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRREAF_13onfvp_bfgernzVG_G0_RRF9_EXAF_12onfvp_fgevatVF6_F7_G1_RR,%function
 b__MAFg3__1yfVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRREAF_13onfvp_bfgernzVG_G0_RRF9_EXAF_12onfvp_fgevatVF6_F7_G1_RR:
 nop
 .data
-.globl b__MGGAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
+.weak b__MGGAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
 .type b__MGGAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR,%object
 b__MGGAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__16irpgbeVvAF_9nyybpngbeVvRRR26__fjnc_bhg_pvephyne_ohssreREAF_14__fcyvg_ohssreVvEF2_RR
+.weak b__MAFg3__16irpgbeVvAF_9nyybpngbeVvRRR26__fjnc_bhg_pvephyne_ohssreREAF_14__fcyvg_ohssreVvEF2_RR
 .type b__MAFg3__16irpgbeVvAF_9nyybpngbeVvRRR26__fjnc_bhg_pvephyne_ohssreREAF_14__fcyvg_ohssreVvEF2_RR,%function
 b__MAFg3__16irpgbeVvAF_9nyybpngbeVvRRR26__fjnc_bhg_pvephyne_ohssreREAF_14__fcyvg_ohssreVvEF2_RR:
 nop
@@ -43,22 +43,22 @@
 b__M22qrohttreq_gevttre_qhzcv17QrohttreqQhzcGlcrwA7naqebvq4onfr14havdhr_sq_vzcyVAF1_13QrsnhygPybfreRRR:
 nop
 .text
-.globl b__MA7naqebvq8cebpvasb27TrgCebprffGvqfSebzCebpCvqSqVAFg3__16irpgbeVvAF2_9nyybpngbeVvRRRRRRAF2_9ranoyr_vsVKtrfgAG_10inyhr_glcrRYz4RRoR4glcrRvCF8_CAF2_12onfvp_fgevatVpAF2_11pune_genvgfVpRRAF4_VpRRRR
+.weak b__MA7naqebvq8cebpvasb27TrgCebprffGvqfSebzCebpCvqSqVAFg3__16irpgbeVvAF2_9nyybpngbeVvRRRRRRAF2_9ranoyr_vsVKtrfgAG_10inyhr_glcrRYz4RRoR4glcrRvCF8_CAF2_12onfvp_fgevatVpAF2_11pune_genvgfVpRRAF4_VpRRRR
 .type b__MA7naqebvq8cebpvasb27TrgCebprffGvqfSebzCebpCvqSqVAFg3__16irpgbeVvAF2_9nyybpngbeVvRRRRRRAF2_9ranoyr_vsVKtrfgAG_10inyhr_glcrRYz4RRoR4glcrRvCF8_CAF2_12onfvp_fgevatVpAF2_11pune_genvgfVpRRAF4_VpRRRR,%function
 b__MA7naqebvq8cebpvasb27TrgCebprffGvqfSebzCebpCvqSqVAFg3__16irpgbeVvAF2_9nyybpngbeVvRRRRRRAF2_9ranoyr_vsVKtrfgAG_10inyhr_glcrRYz4RRoR4glcrRvCF8_CAF2_12onfvp_fgevatVpAF2_11pune_genvgfVpRRAF4_VpRRRR:
 nop
 .text
-.globl b__MAFg3__16irpgbeVvAF_9nyybpngbeVvRRR21__chfu_onpx_fybj_cnguVvRRiBG_
+.weak b__MAFg3__16irpgbeVvAF_9nyybpngbeVvRRR21__chfu_onpx_fybj_cnguVvRRiBG_
 .type b__MAFg3__16irpgbeVvAF_9nyybpngbeVvRRR21__chfu_onpx_fybj_cnguVvRRiBG_,%function
 b__MAFg3__16irpgbeVvAF_9nyybpngbeVvRRR21__chfu_onpx_fybj_cnguVvRRiBG_:
 nop
 .text
-.globl b__MAFg3__16irpgbeVvAF_9nyybpngbeVvRRR6vafregRAF_11__jenc_vgreVCXvRREF5_
+.weak b__MAFg3__16irpgbeVvAF_9nyybpngbeVvRRR6vafregRAF_11__jenc_vgreVCXvRREF5_
 .type b__MAFg3__16irpgbeVvAF_9nyybpngbeVvRRR6vafregRAF_11__jenc_vgreVCXvRREF5_,%function
 b__MAFg3__16irpgbeVvAF_9nyybpngbeVvRRR6vafregRAF_11__jenc_vgreVCXvRREF5_:
 nop
 .data
-.globl b__MGIAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
+.weak b__MGIAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
 .type b__MGIAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR,%object
 b__MGIAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR:
 .space __SIZEOF_POINTER__
@@ -78,37 +78,37 @@
 b__M30qhzc_onpxgenpr_gb_svyr_gvzrbhgv17QrohttreqQhzcGlcrvv:
 nop
 .text
-.globl b__MAXFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR3fgeRi
+.weak b__MAXFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR3fgeRi
 .type b__MAXFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR3fgeRi,%function
 b__MAXFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR3fgeRi:
 nop
 .text
-.globl b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9conpxsnvyRv
+.weak b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9conpxsnvyRv
 .type b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9conpxsnvyRv,%function
 b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9conpxsnvyRv:
 nop
 .data
-.globl b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR16_AF_13onfvp_bfgernzVpF2_RR
+.weak b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR16_AF_13onfvp_bfgernzVpF2_RR
 .type b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR16_AF_13onfvp_bfgernzVpF2_RR,%object
 b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR16_AF_13onfvp_bfgernzVpF2_RR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR7frrxbssRkAF_8vbf_onfr7frrxqveRw
+.weak b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR7frrxbssRkAF_8vbf_onfr7frrxqveRw
 .type b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR7frrxbssRkAF_8vbf_onfr7frrxqveRw,%function
 b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR7frrxbssRkAF_8vbf_onfr7frrxqveRw:
 nop
 .data
-.globl b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_13onfvp_vfgernzVpF2_RR
+.weak b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_13onfvp_vfgernzVpF2_RR
 .type b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_13onfvp_vfgernzVpF2_RR,%object
 b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_13onfvp_vfgernzVpF2_RR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_14onfvp_vbfgernzVpF2_RR
+.weak b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_14onfvp_vbfgernzVpF2_RR
 .type b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_14onfvp_vbfgernzVpF2_RR,%object
 b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_14onfvp_vbfgernzVpF2_RR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
+.weak b__MGIAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
 .type b__MGIAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR,%object
 b__MGIAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR:
 .space __SIZEOF_POINTER__
@@ -118,22 +118,22 @@
 b__M15trg_guernq_anzrv:
 nop
 .text
-.globl b__MA7naqebvq8cebpvasb14TrgCebprffGvqfVAFg3__16irpgbeVvAF2_9nyybpngbeVvRRRRRRAF2_9ranoyr_vsVKtrfgAG_10inyhr_glcrRYz4RRoR4glcrRvCF8_CAF2_12onfvp_fgevatVpAF2_11pune_genvgfVpRRAF4_VpRRRR
+.weak b__MA7naqebvq8cebpvasb14TrgCebprffGvqfVAFg3__16irpgbeVvAF2_9nyybpngbeVvRRRRRRAF2_9ranoyr_vsVKtrfgAG_10inyhr_glcrRYz4RRoR4glcrRvCF8_CAF2_12onfvp_fgevatVpAF2_11pune_genvgfVpRRAF4_VpRRRR
 .type b__MA7naqebvq8cebpvasb14TrgCebprffGvqfVAFg3__16irpgbeVvAF2_9nyybpngbeVvRRRRRRAF2_9ranoyr_vsVKtrfgAG_10inyhr_glcrRYz4RRoR4glcrRvCF8_CAF2_12onfvp_fgevatVpAF2_11pune_genvgfVpRRAF4_VpRRRR,%function
 b__MA7naqebvq8cebpvasb14TrgCebprffGvqfVAFg3__16irpgbeVvAF2_9nyybpngbeVvRRRRRRAF2_9ranoyr_vsVKtrfgAG_10inyhr_glcrRYz4RRoR4glcrRvCF8_CAF2_12onfvp_fgevatVpAF2_11pune_genvgfVpRRAF4_VpRRRR:
 nop
 .text
-.globl b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR8biresybjRv
+.weak b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR8biresybjRv
 .type b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR8biresybjRv,%function
 b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR8biresybjRv:
 nop
 .text
-.globl b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9haqresybjRi
+.weak b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9haqresybjRi
 .type b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9haqresybjRi,%function
 b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9haqresybjRi:
 nop
 .text
-.globl b__MAFg3__16irpgbeVvAF_9nyybpngbeVvRRR12__zbir_enatrRCvF4_F4_
+.weak b__MAFg3__16irpgbeVvAF_9nyybpngbeVvRRR12__zbir_enatrRCvF4_F4_
 .type b__MAFg3__16irpgbeVvAF_9nyybpngbeVvRRR12__zbir_enatrRCvF4_F4_,%function
 b__MAFg3__16irpgbeVvAF_9nyybpngbeVvRRR12__zbir_enatrRCvF4_F4_:
 nop
diff --git a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_066.S b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_066.S
index b8823de..53a2538 100644
--- a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_066.S
+++ b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_066.S
@@ -28,7 +28,7 @@
 b__MA7naqebvq11TencuvpfRai11trgVafgnaprRi:
 nop
 .text
-.globl b__MAX7naqebvq6Cnepry20ernqCneprynoyrIrpgbeVAF_15TchFgngfNccVasbRRRvCAFg3__16irpgbeVG_AF3_9nyybpngbeVF5_RRRR
+.weak b__MAX7naqebvq6Cnepry20ernqCneprynoyrIrpgbeVAF_15TchFgngfNccVasbRRRvCAFg3__16irpgbeVG_AF3_9nyybpngbeVF5_RRRR
 .type b__MAX7naqebvq6Cnepry20ernqCneprynoyrIrpgbeVAF_15TchFgngfNccVasbRRRvCAFg3__16irpgbeVG_AF3_9nyybpngbeVF5_RRRR,%function
 b__MAX7naqebvq6Cnepry20ernqCneprynoyrIrpgbeVAF_15TchFgngfNccVasbRRRvCAFg3__16irpgbeVG_AF3_9nyybpngbeVF5_RRRR:
 nop
@@ -38,12 +38,12 @@
 b__MA7naqebvq11TencuvpfRai13frgYnlreCngufRCAF_21AngvirYbnqreAnzrfcnprRAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRR:
 nop
 .text
-.globl b__MA7naqebvq11OaVagresnprVAF_11VTchFreivprRR10baNfOvaqreRi
+.weak b__MA7naqebvq11OaVagresnprVAF_11VTchFreivprRR10baNfOvaqreRi
 .type b__MA7naqebvq11OaVagresnprVAF_11VTchFreivprRR10baNfOvaqreRi,%function
 b__MA7naqebvq11OaVagresnprVAF_11VTchFreivprRR10baNfOvaqreRi:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq15TchFgngfNccVasbRAF_9nyybpngbeVF2_RRR26__fjnc_bhg_pvephyne_ohssreREAF_14__fcyvg_ohssreVF2_EF4_RR
+.weak b__MAFg3__16irpgbeVA7naqebvq15TchFgngfNccVasbRAF_9nyybpngbeVF2_RRR26__fjnc_bhg_pvephyne_ohssreREAF_14__fcyvg_ohssreVF2_EF4_RR
 .type b__MAFg3__16irpgbeVA7naqebvq15TchFgngfNccVasbRAF_9nyybpngbeVF2_RRR26__fjnc_bhg_pvephyne_ohssreREAF_14__fcyvg_ohssreVF2_EF4_RR,%function
 b__MAFg3__16irpgbeVA7naqebvq15TchFgngfNccVasbRAF_9nyybpngbeVF2_RRR26__fjnc_bhg_pvephyne_ohssreREAF_14__fcyvg_ohssreVF2_EF4_RR:
 nop
@@ -63,7 +63,7 @@
 b__MA7naqebvq11VTchFreivprQ2Ri:
 nop
 .text
-.globl b__MA7naqebvq6Cnepry21jevgrCneprynoyrIrpgbeVAF_18TchFgngfTybonyVasbRRRvEXAFg3__16irpgbeVG_AF3_9nyybpngbeVF5_RRRR
+.weak b__MA7naqebvq6Cnepry21jevgrCneprynoyrIrpgbeVAF_18TchFgngfTybonyVasbRRRvEXAFg3__16irpgbeVG_AF3_9nyybpngbeVF5_RRRR
 .type b__MA7naqebvq6Cnepry21jevgrCneprynoyrIrpgbeVAF_18TchFgngfTybonyVasbRRRvEXAFg3__16irpgbeVG_AF3_9nyybpngbeVF5_RRRR,%function
 b__MA7naqebvq6Cnepry21jevgrCneprynoyrIrpgbeVAF_18TchFgngfTybonyVasbRRRvEXAFg3__16irpgbeVG_AF3_9nyybpngbeVF5_RRRR:
 nop
@@ -133,7 +133,7 @@
 b__MGIA7naqebvq11VTchFreivprR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIA7naqebvq12OcTchFreivprR
+.weak b__MGIA7naqebvq12OcTchFreivprR
 .type b__MGIA7naqebvq12OcTchFreivprR,%object
 b__MGIA7naqebvq12OcTchFreivprR:
 .space __SIZEOF_POINTER__
@@ -148,7 +148,7 @@
 b__MGPA7naqebvq12OaTchFreivprR0_AF_11VTchFreivprR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGPA7naqebvq12OcTchFreivprR0_AF_11OcVagresnprVAF_11VTchFreivprRRR
+.weak b__MGPA7naqebvq12OcTchFreivprR0_AF_11OcVagresnprVAF_11VTchFreivprRRR
 .type b__MGPA7naqebvq12OcTchFreivprR0_AF_11OcVagresnprVAF_11VTchFreivprRRR,%object
 b__MGPA7naqebvq12OcTchFreivprR0_AF_11OcVagresnprVAF_11VTchFreivprRRR:
 .space __SIZEOF_POINTER__
@@ -193,7 +193,7 @@
 b__MAX7naqebvq11VTchFreivpr22trgVagresnprQrfpevcgbeRi:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq15TchFgngfNccVasbRAF_9nyybpngbeVF2_RRR8__nccraqRz
+.weak b__MAFg3__16irpgbeVA7naqebvq15TchFgngfNccVasbRAF_9nyybpngbeVF2_RRR8__nccraqRz
 .type b__MAFg3__16irpgbeVA7naqebvq15TchFgngfNccVasbRAF_9nyybpngbeVF2_RRR8__nccraqRz,%function
 b__MAFg3__16irpgbeVA7naqebvq15TchFgngfNccVasbRAF_9nyybpngbeVF2_RRR8__nccraqRz:
 nop
@@ -203,7 +203,7 @@
 b__MGPA7naqebvq12OaTchFreivprR0_AF_11OaVagresnprVAF_11VTchFreivprRRR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGPA7naqebvq12OcTchFreivprR0_AF_11VTchFreivprR
+.weak b__MGPA7naqebvq12OcTchFreivprR0_AF_11VTchFreivprR
 .type b__MGPA7naqebvq12OcTchFreivprR0_AF_11VTchFreivprR,%object
 b__MGPA7naqebvq12OcTchFreivprR0_AF_11VTchFreivprR:
 .space __SIZEOF_POINTER__
@@ -228,17 +228,17 @@
 b__MA7naqebvq11TencuvpfRai18uvagNpgvivglYnhapuRi:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF6_RRR21__chfu_onpx_fybj_cnguVEXF6_RRiBG_
+.weak b__MAFg3__16irpgbeVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF6_RRR21__chfu_onpx_fybj_cnguVEXF6_RRiBG_
 .type b__MAFg3__16irpgbeVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF6_RRR21__chfu_onpx_fybj_cnguVEXF6_RRiBG_,%function
 b__MAFg3__16irpgbeVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF6_RRR21__chfu_onpx_fybj_cnguVEXF6_RRiBG_:
 nop
 .text
-.globl b__MAX7naqebvq6Cnepry24ernqAhyynoyrFgebatOvaqreVAF_15VErfhygErprvireRRRvCAF_2fcVG_RR
+.weak b__MAX7naqebvq6Cnepry24ernqAhyynoyrFgebatOvaqreVAF_15VErfhygErprvireRRRvCAF_2fcVG_RR
 .type b__MAX7naqebvq6Cnepry24ernqAhyynoyrFgebatOvaqreVAF_15VErfhygErprvireRRRvCAF_2fcVG_RR,%function
 b__MAX7naqebvq6Cnepry24ernqAhyynoyrFgebatOvaqreVAF_15VErfhygErprvireRRRvCAF_2fcVG_RR:
 nop
 .data
-.globl b__MGPA7naqebvq12OcTchFreivprR8_AF_9OcErsOnfrR
+.weak b__MGPA7naqebvq12OcTchFreivprR8_AF_9OcErsOnfrR
 .type b__MGPA7naqebvq12OcTchFreivprR8_AF_9OcErsOnfrR,%object
 b__MGPA7naqebvq12OcTchFreivprR8_AF_9OcErsOnfrR:
 .space __SIZEOF_POINTER__
@@ -308,7 +308,7 @@
 b__MA7naqebvq11VTchFreivpr10qrfpevcgbeR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq18TchFgngfTybonyVasbRAF_9nyybpngbeVF2_RRR8__nccraqRz
+.weak b__MAFg3__16irpgbeVA7naqebvq18TchFgngfTybonyVasbRAF_9nyybpngbeVF2_RRR8__nccraqRz
 .type b__MAFg3__16irpgbeVA7naqebvq18TchFgngfTybonyVasbRAF_9nyybpngbeVF2_RRR8__nccraqRz,%function
 b__MAFg3__16irpgbeVA7naqebvq18TchFgngfTybonyVasbRAF_9nyybpngbeVF2_RRR8__nccraqRz:
 nop
@@ -318,7 +318,7 @@
 b__MGPA7naqebvq12OaTchFreivprR0_AF_10VVagresnprR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGGA7naqebvq12OcTchFreivprR
+.weak b__MGGA7naqebvq12OcTchFreivprR
 .type b__MGGA7naqebvq12OcTchFreivprR,%object
 b__MGGA7naqebvq12OcTchFreivprR:
 .space __SIZEOF_POINTER__
@@ -338,7 +338,7 @@
 b__MA7naqebvq11TencuvpfRai14frgGnetrgFgngfRAF0_5FgngfRz:
 nop
 .text
-.globl b__MA7naqebvq6Cnepry21jevgrCneprynoyrIrpgbeVAF_15TchFgngfNccVasbRRRvEXAFg3__16irpgbeVG_AF3_9nyybpngbeVF5_RRRR
+.weak b__MA7naqebvq6Cnepry21jevgrCneprynoyrIrpgbeVAF_15TchFgngfNccVasbRRRvEXAFg3__16irpgbeVG_AF3_9nyybpngbeVF5_RRRR
 .type b__MA7naqebvq6Cnepry21jevgrCneprynoyrIrpgbeVAF_15TchFgngfNccVasbRRRvEXAFg3__16irpgbeVG_AF3_9nyybpngbeVF5_RRRR,%function
 b__MA7naqebvq6Cnepry21jevgrCneprynoyrIrpgbeVAF_15TchFgngfNccVasbRRRvEXAFg3__16irpgbeVG_AF3_9nyybpngbeVF5_RRRR:
 nop
@@ -358,12 +358,12 @@
 b__MA7naqebvq11TencuvpfRai25yvaxQevireAnzrfcnprYbpxrqRC19naqebvq_anzrfcnpr_g:
 nop
 .text
-.globl b__MAX7naqebvq6Cnepry20ernqCneprynoyrIrpgbeVAF_18TchFgngfTybonyVasbRRRvCAFg3__16irpgbeVG_AF3_9nyybpngbeVF5_RRRR
+.weak b__MAX7naqebvq6Cnepry20ernqCneprynoyrIrpgbeVAF_18TchFgngfTybonyVasbRRRvCAFg3__16irpgbeVG_AF3_9nyybpngbeVF5_RRRR
 .type b__MAX7naqebvq6Cnepry20ernqCneprynoyrIrpgbeVAF_18TchFgngfTybonyVasbRRRvCAFg3__16irpgbeVG_AF3_9nyybpngbeVF5_RRRR,%function
 b__MAX7naqebvq6Cnepry20ernqCneprynoyrIrpgbeVAF_18TchFgngfTybonyVasbRRRvCAFg3__16irpgbeVG_AF3_9nyybpngbeVF5_RRRR:
 nop
 .data
-.globl b__MGPA7naqebvq12OcTchFreivprR0_AF_10VVagresnprR
+.weak b__MGPA7naqebvq12OcTchFreivprR0_AF_10VVagresnprR
 .type b__MGPA7naqebvq12OcTchFreivprR0_AF_10VVagresnprR,%object
 b__MGPA7naqebvq12OcTchFreivprR0_AF_10VVagresnprR:
 .space __SIZEOF_POINTER__
diff --git a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_067.S b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_067.S
index f63ac42..8574ef7 100644
--- a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_067.S
+++ b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_067.S
@@ -58,12 +58,12 @@
 b__MA7naqebvq16FrafbeRiragDhrhrQ1Ri:
 nop
 .text
-.globl b__MA7naqebvq10trgFreivprVAF_13VFrafbeFreireRRRvEXAF_8Fgevat16RCAF_2fcVG_RR
+.weak b__MA7naqebvq10trgFreivprVAF_13VFrafbeFreireRRRvEXAF_8Fgevat16RCAF_2fcVG_RR
 .type b__MA7naqebvq10trgFreivprVAF_13VFrafbeFreireRRRvEXAF_8Fgevat16RCAF_2fcVG_RR,%function
 b__MA7naqebvq10trgFreivprVAF_13VFrafbeFreireRRRvEXAF_8Fgevat16RCAF_2fcVG_RR:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvA7naqebvq2fcVAF2_22VFrafbeRiragPbaarpgvbaRRRRRAF_22__habeqrerq_znc_unfureVvF6_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF6_AF_8rdhny_gbVvRRYo1RRRAF_9nyybpngbeVF6_RRR6erunfuRz
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvA7naqebvq2fcVAF2_22VFrafbeRiragPbaarpgvbaRRRRRAF_22__habeqrerq_znc_unfureVvF6_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF6_AF_8rdhny_gbVvRRYo1RRRAF_9nyybpngbeVF6_RRR6erunfuRz
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvA7naqebvq2fcVAF2_22VFrafbeRiragPbaarpgvbaRRRRRAF_22__habeqrerq_znc_unfureVvF6_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF6_AF_8rdhny_gbVvRRYo1RRRAF_9nyybpngbeVF6_RRR6erunfuRz,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvA7naqebvq2fcVAF2_22VFrafbeRiragPbaarpgvbaRRRRRAF_22__habeqrerq_znc_unfureVvF6_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF6_AF_8rdhny_gbVvRRYo1RRRAF_9nyybpngbeVF6_RRR6erunfuRz:
 nop
@@ -73,12 +73,12 @@
 b__MGua8_A7naqebvq23OaFrafbeRiragPbaarpgvba10baGenafnpgRwEXAF_6CnepryRCF1_w:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_8Fgevat16RR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq6IrpgbeVAF_8Fgevat16RR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq6IrpgbeVAF_8Fgevat16RR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq6IrpgbeVAF_8Fgevat16RR12qb_pbafgehpgRCiz:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVvR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq6IrpgbeVvR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq6IrpgbeVvR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq6IrpgbeVvR12qb_pbafgehpgRCiz:
 nop
@@ -88,7 +88,7 @@
 b__MAX7naqebvq6Frafbe21trgErdhverqCrezvffvbaRi:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvA7naqebvq2fcVAF2_22VFrafbeRiragPbaarpgvbaRRRRRAF_22__habeqrerq_znc_unfureVvF6_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF6_AF_8rdhny_gbVvRRYo1RRRAF_9nyybpngbeVF6_RRR6erzbirRAF_21__unfu_pbafg_vgrengbeVCAF_11__unfu_abqrVF6_CiRRRR
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvA7naqebvq2fcVAF2_22VFrafbeRiragPbaarpgvbaRRRRRAF_22__habeqrerq_znc_unfureVvF6_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF6_AF_8rdhny_gbVvRRYo1RRRAF_9nyybpngbeVF6_RRR6erzbirRAF_21__unfu_pbafg_vgrengbeVCAF_11__unfu_abqrVF6_CiRRRR
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvA7naqebvq2fcVAF2_22VFrafbeRiragPbaarpgvbaRRRRRAF_22__habeqrerq_znc_unfureVvF6_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF6_AF_8rdhny_gbVvRRYo1RRRAF_9nyybpngbeVF6_RRR6erzbirRAF_21__unfu_pbafg_vgrengbeVCAF_11__unfu_abqrVF6_CiRRRR,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvA7naqebvq2fcVAF2_22VFrafbeRiragPbaarpgvbaRRRRRAF_22__habeqrerq_znc_unfureVvF6_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF6_AF_8rdhny_gbVvRRYo1RRRAF_9nyybpngbeVF6_RRR6erzbirRAF_21__unfu_pbafg_vgrengbeVCAF_11__unfu_abqrVF6_CiRRRR:
 nop
@@ -233,7 +233,7 @@
 b__MGGA7naqebvq23OcFrafbeRiragPbaarpgvbaR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_6FrafbeRR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_6FrafbeRR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_6FrafbeRR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_6FrafbeRR16qb_zbir_onpxjneqRCiCXiz:
 nop
@@ -248,7 +248,7 @@
 b__MA7naqebvq6Frafbe14synggraFgevat8RECiEzEXAF_7Fgevat8R:
 nop
 .text
-.globl b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
+.weak b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
 .type b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_,%function
 b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_:
 nop
@@ -288,7 +288,7 @@
 b__MGi0_a24_A7naqebvq22VFrafbeRiragPbaarpgvbaQ0Ri:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_6FrafbeRR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_6FrafbeRR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_6FrafbeRR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_6FrafbeRR8qb_fcyngRCiCXiz:
 nop
@@ -298,7 +298,7 @@
 b__MA7naqebvq22VFrafbeRiragPbaarpgvbaP2Ri:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_6FrafbeRR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_6FrafbeRR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_6FrafbeRR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_6FrafbeRR15qb_zbir_sbejneqRCiCXiz:
 nop
@@ -308,12 +308,12 @@
 b__MA7naqebvq23OcFrafbeRiragPbaarpgvbaQ2Ri:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVvR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVvR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVvR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVvR16qb_zbir_onpxjneqRCiCXiz:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVvR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVvR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVvR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVvR8qb_fcyngRCiCXiz:
 nop
@@ -363,7 +363,7 @@
 b__MA7naqebvq13VFrafbeFreire11nfVagresnprREXAF_2fcVAF_7VOvaqreRRR:
 nop
 .data
-.globl b__MGIA7naqebvq6IrpgbeVsRR
+.weak b__MGIA7naqebvq6IrpgbeVsRR
 .type b__MGIA7naqebvq6IrpgbeVsRR,%object
 b__MGIA7naqebvq6IrpgbeVsRR:
 .space __SIZEOF_POINTER__
@@ -373,7 +373,7 @@
 b__MAX7naqebvq6Frafbe7trgAnzrRi:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvA7naqebvq2fcVAF2_22VFrafbeRiragPbaarpgvbaRRRRRAF_22__habeqrerq_znc_unfureVvF6_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF6_AF_8rdhny_gbVvRRYo1RRRAF_9nyybpngbeVF6_RRR8__erunfuRz
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvA7naqebvq2fcVAF2_22VFrafbeRiragPbaarpgvbaRRRRRAF_22__habeqrerq_znc_unfureVvF6_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF6_AF_8rdhny_gbVvRRYo1RRRAF_9nyybpngbeVF6_RRR8__erunfuRz
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvA7naqebvq2fcVAF2_22VFrafbeRiragPbaarpgvbaRRRRRAF_22__habeqrerq_znc_unfureVvF6_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF6_AF_8rdhny_gbVvRRYo1RRRAF_9nyybpngbeVF6_RRR8__erunfuRz,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvA7naqebvq2fcVAF2_22VFrafbeRiragPbaarpgvbaRRRRRAF_22__habeqrerq_znc_unfureVvF6_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF6_AF_8rdhny_gbVvRRYo1RRRAF_9nyybpngbeVF6_RRR8__erunfuRz:
 nop
@@ -383,7 +383,7 @@
 b__MA7naqebvq14OcFrafbeFreireQ2Ri:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVsR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVsR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVsR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVsR8qb_fcyngRCiCXiz:
 nop
@@ -393,7 +393,7 @@
 b__MGua8_A7naqebvq14OcFrafbeFreireQ1Ri:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVvR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVvR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVvR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVvR7qb_pbclRCiCXiz:
 nop
@@ -408,7 +408,7 @@
 b__MAX7naqebvq22VFrafbeRiragPbaarpgvba22trgVagresnprQrfpevcgbeRi:
 nop
 .text
-.globl b__MA7naqebvq11OaVagresnprVAF_13VFrafbeFreireRR10baNfOvaqreRi
+.weak b__MA7naqebvq11OaVagresnprVAF_13VFrafbeFreireRR10baNfOvaqreRi
 .type b__MA7naqebvq11OaVagresnprVAF_13VFrafbeFreireRR10baNfOvaqreRi,%function
 b__MA7naqebvq11OaVagresnprVAF_13VFrafbeFreireRR10baNfOvaqreRi:
 nop
@@ -423,7 +423,7 @@
 b__MGPA7naqebvq14OaFrafbeFreireR8_AF_7OOvaqreR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIA7naqebvq6IrpgbeVAF_6FrafbeRRR
+.weak b__MGIA7naqebvq6IrpgbeVAF_6FrafbeRRR
 .type b__MGIA7naqebvq6IrpgbeVAF_6FrafbeRRR,%object
 b__MGIA7naqebvq6IrpgbeVAF_6FrafbeRRR:
 .space __SIZEOF_POINTER__
@@ -478,12 +478,12 @@
 b__MA7naqebvq14OaFrafbeFreire10baGenafnpgRwEXAF_6CnepryRCF1_w:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVsR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVsR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVsR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVsR16qb_zbir_onpxjneqRCiCXiz:
 nop
 .data
-.globl b__MGIA7naqebvq6IrpgbeVAF_8Fgevat16RRR
+.weak b__MGIA7naqebvq6IrpgbeVAF_8Fgevat16RRR
 .type b__MGIA7naqebvq6IrpgbeVAF_8Fgevat16RRR,%object
 b__MGIA7naqebvq6IrpgbeVAF_8Fgevat16RRR:
 .space __SIZEOF_POINTER__
@@ -523,17 +523,17 @@
 b__MA7naqebvq13FrafbeZnantreQ1Ri:
 nop
 .text
-.globl b__MA7naqebvq11OaVagresnprVAF_22VFrafbeRiragPbaarpgvbaRR10baNfOvaqreRi
+.weak b__MA7naqebvq11OaVagresnprVAF_22VFrafbeRiragPbaarpgvbaRR10baNfOvaqreRi
 .type b__MA7naqebvq11OaVagresnprVAF_22VFrafbeRiragPbaarpgvbaRR10baNfOvaqreRi,%function
 b__MA7naqebvq11OaVagresnprVAF_22VFrafbeRiragPbaarpgvbaRR10baNfOvaqreRi:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_6FrafbeRR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq6IrpgbeVAF_6FrafbeRR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq6IrpgbeVAF_6FrafbeRR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq6IrpgbeVAF_6FrafbeRR10qb_qrfgeblRCiz:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_8Fgevat16RR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_8Fgevat16RR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_8Fgevat16RR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_8Fgevat16RR16qb_zbir_onpxjneqRCiCXiz:
 nop
@@ -558,7 +558,7 @@
 b__MGIA7naqebvq14OcFrafbeFreireR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq6IrpgbeVvR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq6IrpgbeVvR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq6IrpgbeVvR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq6IrpgbeVvR10qb_qrfgeblRCiz:
 nop
@@ -603,7 +603,7 @@
 b__MA7naqebvq13FrafbeZnantreP2REXAF_8Fgevat16R:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RCAF2_13FrafbeZnantreRRRAF_19__znc_inyhr_pbzcnerVF3_F6_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF6_RRR12__svaq_rdhnyVF3_RRECAF_16__gerr_abqr_onfrVCiRRECAF_15__gerr_raq_abqrVFV_RREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RCAF2_13FrafbeZnantreRRRAF_19__znc_inyhr_pbzcnerVF3_F6_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF6_RRR12__svaq_rdhnyVF3_RRECAF_16__gerr_abqr_onfrVCiRRECAF_15__gerr_raq_abqrVFV_RREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RCAF2_13FrafbeZnantreRRRAF_19__znc_inyhr_pbzcnerVF3_F6_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF6_RRR12__svaq_rdhnyVF3_RRECAF_16__gerr_abqr_onfrVCiRRECAF_15__gerr_raq_abqrVFV_RREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RCAF2_13FrafbeZnantreRRRAF_19__znc_inyhr_pbzcnerVF3_F6_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF6_RRR12__svaq_rdhnyVF3_RRECAF_16__gerr_abqr_onfrVCiRRECAF_15__gerr_raq_abqrVFV_RREXG_:
 nop
@@ -618,12 +618,12 @@
 b__MA7naqebvq13VFrafbeFreire12qrsnhyg_vzcyR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_8Fgevat16RR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_8Fgevat16RR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_8Fgevat16RR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_8Fgevat16RR7qb_pbclRCiCXiz:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RCAF2_13FrafbeZnantreRRRAF_19__znc_inyhr_pbzcnerVF3_F6_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF6_RRR7qrfgeblRCAF_11__gerr_abqrVF6_CiRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RCAF2_13FrafbeZnantreRRRAF_19__znc_inyhr_pbzcnerVF3_F6_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF6_RRR7qrfgeblRCAF_11__gerr_abqrVF6_CiRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RCAF2_13FrafbeZnantreRRRAF_19__znc_inyhr_pbzcnerVF3_F6_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF6_RRR7qrfgeblRCAF_11__gerr_abqrVF6_CiRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RCAF2_13FrafbeZnantreRRRAF_19__znc_inyhr_pbzcnerVF3_F6_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF6_RRR7qrfgeblRCAF_11__gerr_abqrVF6_CiRR:
 nop
@@ -638,7 +638,7 @@
 b__MA7naqebvq22VFrafbeRiragPbaarpgvbaQ1Ri:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVsR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq6IrpgbeVsR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq6IrpgbeVsR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq6IrpgbeVsR10qb_qrfgeblRCiz:
 nop
@@ -688,7 +688,7 @@
 b__MA7naqebvq7OvgGhorQ0Ri:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVvR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVvR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVvR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVvR15qb_zbir_sbejneqRCiCXiz:
 nop
@@ -708,7 +708,7 @@
 b__MA7naqebvq13FrafbeZnantre5fYbpxR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RCAF2_13FrafbeZnantreRRRAF_19__znc_inyhr_pbzcnerVF3_F6_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF6_RRR4svaqVF3_RRAF_15__gerr_vgrengbeVF6_CAF_11__gerr_abqrVF6_CiRRyRREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RCAF2_13FrafbeZnantreRRRAF_19__znc_inyhr_pbzcnerVF3_F6_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF6_RRR4svaqVF3_RRAF_15__gerr_vgrengbeVF6_CAF_11__gerr_abqrVF6_CiRRyRREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RCAF2_13FrafbeZnantreRRRAF_19__znc_inyhr_pbzcnerVF3_F6_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF6_RRR4svaqVF3_RRAF_15__gerr_vgrengbeVF6_CAF_11__gerr_abqrVF6_CiRRyRREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RCAF2_13FrafbeZnantreRRRAF_19__znc_inyhr_pbzcnerVF3_F6_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF6_RRR4svaqVF3_RRAF_15__gerr_vgrengbeVF6_CAF_11__gerr_abqrVF6_CiRRyRREXG_:
 nop
@@ -748,7 +748,7 @@
 b__MGIA7naqebvq14OaFrafbeFreireR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvA7naqebvq2fcVAF2_22VFrafbeRiragPbaarpgvbaRRRRRAF_22__habeqrerq_znc_unfureVvF6_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF6_AF_8rdhny_gbVvRRYo1RRRAF_9nyybpngbeVF6_RRR25__rzcynpr_havdhr_xrl_netfVvWEvEF5_RRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF6_CiRRRRoRREXG_QcBG0_
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvA7naqebvq2fcVAF2_22VFrafbeRiragPbaarpgvbaRRRRRAF_22__habeqrerq_znc_unfureVvF6_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF6_AF_8rdhny_gbVvRRYo1RRRAF_9nyybpngbeVF6_RRR25__rzcynpr_havdhr_xrl_netfVvWEvEF5_RRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF6_CiRRRRoRREXG_QcBG0_
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvA7naqebvq2fcVAF2_22VFrafbeRiragPbaarpgvbaRRRRRAF_22__habeqrerq_znc_unfureVvF6_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF6_AF_8rdhny_gbVvRRYo1RRRAF_9nyybpngbeVF6_RRR25__rzcynpr_havdhr_xrl_netfVvWEvEF5_RRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF6_CiRRRRoRREXG_QcBG0_,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvA7naqebvq2fcVAF2_22VFrafbeRiragPbaarpgvbaRRRRRAF_22__habeqrerq_znc_unfureVvF6_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF6_AF_8rdhny_gbVvRRYo1RRRAF_9nyybpngbeVF6_RRR25__rzcynpr_havdhr_xrl_netfVvWEvEF5_RRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF6_CiRRRRoRREXG_QcBG0_:
 nop
@@ -758,12 +758,12 @@
 b__MA7naqebvq22VFrafbeRiragPbaarpgvba14trgQrsnhygVzcyRi:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVsR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq6IrpgbeVsR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq6IrpgbeVsR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq6IrpgbeVsR12qb_pbafgehpgRCiz:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVsR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVsR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVsR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVsR15qb_zbir_sbejneqRCiCXiz:
 nop
@@ -773,12 +773,12 @@
 b__MAX7naqebvq6Frafbe13trgZvaQrynlAfRi:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_6FrafbeRR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq6IrpgbeVAF_6FrafbeRR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq6IrpgbeVAF_6FrafbeRR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq6IrpgbeVAF_6FrafbeRR12qb_pbafgehpgRCiz:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_8Fgevat16RR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_8Fgevat16RR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_8Fgevat16RR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_8Fgevat16RR15qb_zbir_sbejneqRCiCXiz:
 nop
@@ -813,12 +813,12 @@
 b__MA7naqebvq13VFrafbeFreireQ1Ri:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_6FrafbeRR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_6FrafbeRR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_6FrafbeRR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_6FrafbeRR7qb_pbclRCiCXiz:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_8Fgevat16RR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_8Fgevat16RR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_8Fgevat16RR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_8Fgevat16RR8qb_fcyngRCiCXiz:
 nop
@@ -908,7 +908,7 @@
 b__MAX7naqebvq7OvgGhor9trgFraqSqRi:
 nop
 .data
-.globl b__MGIA7naqebvq6IrpgbeVvRR
+.weak b__MGIA7naqebvq6IrpgbeVvRR
 .type b__MGIA7naqebvq6IrpgbeVvRR,%object
 b__MGIA7naqebvq6IrpgbeVvRR:
 .space __SIZEOF_POINTER__
@@ -958,12 +958,12 @@
 b__MA7naqebvq13VFrafbeFreireQ2Ri:
 nop
 .text
-.globl b__MAX7naqebvq6Cnepry24ernqAhyynoyrFgebatOvaqreVAF_15VErfhygErprvireRRRvCAF_2fcVG_RR
+.weak b__MAX7naqebvq6Cnepry24ernqAhyynoyrFgebatOvaqreVAF_15VErfhygErprvireRRRvCAF_2fcVG_RR
 .type b__MAX7naqebvq6Cnepry24ernqAhyynoyrFgebatOvaqreVAF_15VErfhygErprvireRRRvCAF_2fcVG_RR,%function
 b__MAX7naqebvq6Cnepry24ernqAhyynoyrFgebatOvaqreVAF_15VErfhygErprvireRRRvCAF_2fcVG_RR:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVsR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVsR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVsR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVsR7qb_pbclRCiCXiz:
 nop
@@ -988,7 +988,7 @@
 b__MA7naqebvq13FrafbeZnantre20qrfgeblQverpgPunaaryRv:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvA7naqebvq2fcVAF2_22VFrafbeRiragPbaarpgvbaRRRRRAF_22__habeqrerq_znc_unfureVvF6_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF6_AF_8rdhny_gbVvRRYo1RRRAF_9nyybpngbeVF6_RRR14__renfr_havdhrVvRRzEXG_
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvA7naqebvq2fcVAF2_22VFrafbeRiragPbaarpgvbaRRRRRAF_22__habeqrerq_znc_unfureVvF6_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF6_AF_8rdhny_gbVvRRYo1RRRAF_9nyybpngbeVF6_RRR14__renfr_havdhrVvRRzEXG_
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvA7naqebvq2fcVAF2_22VFrafbeRiragPbaarpgvbaRRRRRAF_22__habeqrerq_znc_unfureVvF6_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF6_AF_8rdhny_gbVvRRYo1RRRAF_9nyybpngbeVF6_RRR14__renfr_havdhrVvRRzEXG_,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvA7naqebvq2fcVAF2_22VFrafbeRiragPbaarpgvbaRRRRRAF_22__habeqrerq_znc_unfureVvF6_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF6_AF_8rdhny_gbVvRRYo1RRRAF_9nyybpngbeVF6_RRR14__renfr_havdhrVvRRzEXG_:
 nop
@@ -1053,7 +1053,7 @@
 b__MA7naqebvq13FrafbeZnantre22pbasvtherQverpgPunaaryRvvv:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RCAF2_13FrafbeZnantreRRRAF_19__znc_inyhr_pbzcnerVF3_F6_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF6_RRR25__rzcynpr_havdhr_xrl_netfVF3_WAF_4cnveVF3_F5_RRRRRAFS_VAF_15__gerr_vgrengbeVF6_CAF_11__gerr_abqrVF6_CiRRyRRoRREXG_QcBG0_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RCAF2_13FrafbeZnantreRRRAF_19__znc_inyhr_pbzcnerVF3_F6_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF6_RRR25__rzcynpr_havdhr_xrl_netfVF3_WAF_4cnveVF3_F5_RRRRRAFS_VAF_15__gerr_vgrengbeVF6_CAF_11__gerr_abqrVF6_CiRRyRRoRREXG_QcBG0_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RCAF2_13FrafbeZnantreRRRAF_19__znc_inyhr_pbzcnerVF3_F6_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF6_RRR25__rzcynpr_havdhr_xrl_netfVF3_WAF_4cnveVF3_F5_RRRRRAFS_VAF_15__gerr_vgrengbeVF6_CAF_11__gerr_abqrVF6_CiRRyRRoRREXG_QcBG0_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq8Fgevat16RCAF2_13FrafbeZnantreRRRAF_19__znc_inyhr_pbzcnerVF3_F6_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF6_RRR25__rzcynpr_havdhr_xrl_netfVF3_WAF_4cnveVF3_F5_RRRRRAFS_VAF_15__gerr_vgrengbeVF6_CAF_11__gerr_abqrVF6_CiRRyRRoRREXG_QcBG0_:
 nop
@@ -1063,7 +1063,7 @@
 b__MA7naqebvq7OvgGhor11erpiBowrpgfREXAF_2fcVF0_RRCizz:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_8Fgevat16RR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq6IrpgbeVAF_8Fgevat16RR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq6IrpgbeVAF_8Fgevat16RR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq6IrpgbeVAF_8Fgevat16RR10qb_qrfgeblRCiz:
 nop
diff --git a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_068.S b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_068.S
index 8429df2..f560f65 100644
--- a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_068.S
+++ b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_068.S
@@ -73,7 +73,7 @@
 b__MAX7naqebvq16PnzrenCnenzrgref7synggraRi:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_7Fgevat8RR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_7Fgevat8RR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_7Fgevat8RR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_7Fgevat8RR15qb_zbir_sbejneqRCiCXiz:
 nop
@@ -138,12 +138,12 @@
 b__MA7naqebvq29VPnzrenErpbeqvatCebklYvfgrareQ1Ri:
 nop
 .text
-.globl b__MA7naqebvq11OaVagresnprVAF_21VPnzrenErpbeqvatCebklRR10baNfOvaqreRi
+.weak b__MA7naqebvq11OaVagresnprVAF_21VPnzrenErpbeqvatCebklRR10baNfOvaqreRi
 .type b__MA7naqebvq11OaVagresnprVAF_21VPnzrenErpbeqvatCebklRR10baNfOvaqreRi,%function
 b__MA7naqebvq11OaVagresnprVAF_21VPnzrenErpbeqvatCebklRR10baNfOvaqreRi:
 nop
 .text
-.globl b__MAFg3__16irpgbeVwAF_9nyybpngbeVwRRR6vafregVCXvRRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVwAF_15vgrengbe_genvgfVF8_R9ersreraprRRR5inyhrRAF_11__jenc_vgreVCwRRR4glcrRAFP_VCXwRRF8_F8_
+.weak b__MAFg3__16irpgbeVwAF_9nyybpngbeVwRRR6vafregVCXvRRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVwAF_15vgrengbe_genvgfVF8_R9ersreraprRRR5inyhrRAF_11__jenc_vgreVCwRRR4glcrRAFP_VCXwRRF8_F8_
 .type b__MAFg3__16irpgbeVwAF_9nyybpngbeVwRRR6vafregVCXvRRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVwAF_15vgrengbe_genvgfVF8_R9ersreraprRRR5inyhrRAF_11__jenc_vgreVCwRRR4glcrRAFP_VCXwRRF8_F8_,%function
 b__MAFg3__16irpgbeVwAF_9nyybpngbeVwRRR6vafregVCXvRRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVwAF_15vgrengbe_genvgfVF8_R9ersreraprRRR5inyhrRAF_11__jenc_vgreVCwRRR4glcrRAFP_VCXwRRF8_F8_:
 nop
@@ -233,12 +233,12 @@
 b__MA7naqebvq8uneqjner7pnzren217VPnzrenQrivprHfreQ0Ri:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq8uneqjner7pnzren214PncgherErdhrfgRAF_9nyybpngbeVF4_RRR8__nccraqRz
+.weak b__MAFg3__16irpgbeVA7naqebvq8uneqjner7pnzren214PncgherErdhrfgRAF_9nyybpngbeVF4_RRR8__nccraqRz
 .type b__MAFg3__16irpgbeVA7naqebvq8uneqjner7pnzren214PncgherErdhrfgRAF_9nyybpngbeVF4_RRR8__nccraqRz,%function
 b__MAFg3__16irpgbeVA7naqebvq8uneqjner7pnzren214PncgherErdhrfgRAF_9nyybpngbeVF4_RRR8__nccraqRz:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwwRRR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwwRRR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwwRRR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwwRRR16qb_zbir_onpxjneqRCiCXiz:
 nop
@@ -248,7 +248,7 @@
 b__MA7naqebvq8uneqjner26VPnzrenFreivprCebklQrsnhyg10baNfOvaqreRi:
 nop
 .text
-.globl b__MAX7naqebvq6Cnepry20ernqCneprynoyrIrpgbeVAF_8uneqjner7pnzren24vzcy25CulfvpnyPncgherErfhygVasbRRRvCAFg3__16irpgbeVG_AF6_9nyybpngbeVF8_RRRR
+.weak b__MAX7naqebvq6Cnepry20ernqCneprynoyrIrpgbeVAF_8uneqjner7pnzren24vzcy25CulfvpnyPncgherErfhygVasbRRRvCAFg3__16irpgbeVG_AF6_9nyybpngbeVF8_RRRR
 .type b__MAX7naqebvq6Cnepry20ernqCneprynoyrIrpgbeVAF_8uneqjner7pnzren24vzcy25CulfvpnyPncgherErfhygVasbRRRvCAFg3__16irpgbeVG_AF6_9nyybpngbeVF8_RRRR,%function
 b__MAX7naqebvq6Cnepry20ernqCneprynoyrIrpgbeVAF_8uneqjner7pnzren24vzcy25CulfvpnyPncgherErfhygVasbRRRvCAFg3__16irpgbeVG_AF6_9nyybpngbeVF8_RRRR:
 nop
@@ -273,7 +273,7 @@
 b__MA7naqebvq8uneqjner10PnzrenVasb14ernqSebzCnepryRCXAF_6CnepryR:
 nop
 .data
-.globl b__MGPA7naqebvq10PnzrenOnfrVAF_6PnzrenRAF_12PnzrenGenvgfVF1_RRRR0_AF_7VOvaqre14QrnguErpvcvragR
+.weak b__MGPA7naqebvq10PnzrenOnfrVAF_6PnzrenRAF_12PnzrenGenvgfVF1_RRRR0_AF_7VOvaqre14QrnguErpvcvragR
 .type b__MGPA7naqebvq10PnzrenOnfrVAF_6PnzrenRAF_12PnzrenGenvgfVF1_RRRR0_AF_7VOvaqre14QrnguErpvcvragR,%object
 b__MGPA7naqebvq10PnzrenOnfrVAF_6PnzrenRAF_12PnzrenGenvgfVF1_RRRR0_AF_7VOvaqre14QrnguErpvcvragR:
 .space __SIZEOF_POINTER__
@@ -298,7 +298,7 @@
 b__MGi0_a24_A7naqebvq8uneqjner7VPnzrenQ1Ri:
 nop
 .text
-.globl b__MA7naqebvq6Cnepry21jevgrCneprynoyrIrpgbeVAF_8uneqjner12PnzrenFgnghfRRRvEXAFg3__16irpgbeVG_AF4_9nyybpngbeVF6_RRRR
+.weak b__MA7naqebvq6Cnepry21jevgrCneprynoyrIrpgbeVAF_8uneqjner12PnzrenFgnghfRRRvEXAFg3__16irpgbeVG_AF4_9nyybpngbeVF6_RRRR
 .type b__MA7naqebvq6Cnepry21jevgrCneprynoyrIrpgbeVAF_8uneqjner12PnzrenFgnghfRRRvEXAFg3__16irpgbeVG_AF4_9nyybpngbeVF6_RRRR,%function
 b__MA7naqebvq6Cnepry21jevgrCneprynoyrIrpgbeVAF_8uneqjner12PnzrenFgnghfRRRvEXAFg3__16irpgbeVG_AF4_9nyybpngbeVF6_RRRR:
 nop
@@ -318,7 +318,7 @@
 b__MA7naqebvq8uneqjner23OcPnzrenFreivprYvfgrareP2REXAF_2fcVAF_7VOvaqreRRR:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVvR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq6IrpgbeVvR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq6IrpgbeVvR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq6IrpgbeVvR12qb_pbafgehpgRCiz:
 nop
@@ -413,7 +413,7 @@
 b__MGPA7naqebvq6PnzrenR80_AF_10VVagresnprR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq6Cnepry16ernqFgebatOvaqreVAF_8uneqjner22VPnzrenFreivprYvfgrareRRRvCAF_2fcVG_RR
+.weak b__MAX7naqebvq6Cnepry16ernqFgebatOvaqreVAF_8uneqjner22VPnzrenFreivprYvfgrareRRRvCAF_2fcVG_RR
 .type b__MAX7naqebvq6Cnepry16ernqFgebatOvaqreVAF_8uneqjner22VPnzrenFreivprYvfgrareRRRvCAF_2fcVG_RR,%function
 b__MAX7naqebvq6Cnepry16ernqFgebatOvaqreVAF_8uneqjner22VPnzrenFreivprYvfgrareRRRvCAF_2fcVG_RR:
 nop
@@ -453,12 +453,12 @@
 b__MA7naqebvq16PnzrenCnenzrgrefP2Ri:
 nop
 .text
-.globl b__MAFg3__16irpgbeVC13angvir_unaqyrAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVEXF2_RRiBG_
+.weak b__MAFg3__16irpgbeVC13angvir_unaqyrAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVEXF2_RRiBG_
 .type b__MAFg3__16irpgbeVC13angvir_unaqyrAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVEXF2_RRiBG_,%function
 b__MAFg3__16irpgbeVC13angvir_unaqyrAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVEXF2_RRiBG_:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RCAF_11XrlrqIrpgbeVF2_wRRRRR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RCAF_11XrlrqIrpgbeVF2_wRRRRR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RCAF_11XrlrqIrpgbeVF2_wRRRRR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RCAF_11XrlrqIrpgbeVF2_wRRRRR15qb_zbir_sbejneqRCiCXiz:
 nop
@@ -483,7 +483,7 @@
 b__MA7naqebvq8uneqjner7pnzren224VPnzrenQrivprHfreQrsnhyg17perngrVachgFgernzRvvvCv:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RCAF_11XrlrqIrpgbeVF2_wRRRRR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RCAF_11XrlrqIrpgbeVF2_wRRRRR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RCAF_11XrlrqIrpgbeVF2_wRRRRR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RCAF_11XrlrqIrpgbeVF2_wRRRRR10qb_qrfgeblRCiz:
 nop
@@ -513,7 +513,7 @@
 b__MGIA7naqebvq8uneqjner7VPnzrenR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq10PnzrenOnfrVAF_6PnzrenRAF_12PnzrenGenvgfVF1_RRR18trgAhzoreBsPnzrenfRi
+.weak b__MA7naqebvq10PnzrenOnfrVAF_6PnzrenRAF_12PnzrenGenvgfVF1_RRR18trgAhzoreBsPnzrenfRi
 .type b__MA7naqebvq10PnzrenOnfrVAF_6PnzrenRAF_12PnzrenGenvgfVF1_RRR18trgAhzoreBsPnzrenfRi,%function
 b__MA7naqebvq10PnzrenOnfrVAF_6PnzrenRAF_12PnzrenGenvgfVF1_RRR18trgAhzoreBsPnzrenfRi:
 nop
@@ -583,12 +583,12 @@
 b__MAX7naqebvq13PncgherErfhyg13jevgrGbCnepryRCAF_6CnepryR:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVvR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVvR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVvR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVvR8qb_fcyngRCiCXiz:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RwRRR10qb_pbzcnerRCXiF6_
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RwRRR10qb_pbzcnerRCXiF6_
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RwRRR10qb_pbzcnerRCXiF6_,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RwRRR10qb_pbzcnerRCXiF6_:
 nop
@@ -643,7 +643,7 @@
 b__MAX7naqebvq8uneqjner7pnzren26cnenzf19BhgchgPbasvthengvba9tocfRdhnyREXF3_:
 nop
 .data
-.globl b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RCAF_11XrlrqIrpgbeVF2_wRRRRRR
+.weak b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RCAF_11XrlrqIrpgbeVF2_wRRRRRR
 .type b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RCAF_11XrlrqIrpgbeVF2_wRRRRRR,%object
 b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RCAF_11XrlrqIrpgbeVF2_wRRRRRR:
 .space __SIZEOF_POINTER__
@@ -678,7 +678,7 @@
 b__MA7naqebvq8uneqjner20OcPnzrenFreivprCebklP2REXAF_2fcVAF_7VOvaqreRRR:
 nop
 .text
-.globl b__MAFg3__114__fcyvg_ohssreVA7naqebvq8uneqjner7pnzren24vzcy25CulfvpnyPncgherErfhygVasbREAF_9nyybpngbeVF5_RRR12rzcynpr_onpxVWEAF1_8Fgevat16REAF1_14PnzrenZrgnqngnRRRRiQcBG_
+.weak b__MAFg3__114__fcyvg_ohssreVA7naqebvq8uneqjner7pnzren24vzcy25CulfvpnyPncgherErfhygVasbREAF_9nyybpngbeVF5_RRR12rzcynpr_onpxVWEAF1_8Fgevat16REAF1_14PnzrenZrgnqngnRRRRiQcBG_
 .type b__MAFg3__114__fcyvg_ohssreVA7naqebvq8uneqjner7pnzren24vzcy25CulfvpnyPncgherErfhygVasbREAF_9nyybpngbeVF5_RRR12rzcynpr_onpxVWEAF1_8Fgevat16REAF1_14PnzrenZrgnqngnRRRRiQcBG_,%function
 b__MAFg3__114__fcyvg_ohssreVA7naqebvq8uneqjner7pnzren24vzcy25CulfvpnyPncgherErfhygVasbREAF_9nyybpngbeVF5_RRR12rzcynpr_onpxVWEAF1_8Fgevat16REAF1_14PnzrenZrgnqngnRRRRiQcBG_:
 nop
@@ -693,12 +693,12 @@
 b__MA7naqebvq14PnzrenZrgnqngn9purpxGlcrRwu:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwAF_7Fgevat8RRRR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwAF_7Fgevat8RRRR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwAF_7Fgevat8RRRR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwAF_7Fgevat8RRRR7qb_pbclRCiCXiz:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwvRRR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwvRRR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwvRRR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwvRRR8qb_fcyngRCiCXiz:
 nop
@@ -718,12 +718,12 @@
 b__MA7naqebvq8uneqjner7pnzren224VPnzrenQrivprHfreQrsnhyg17fhozvgErdhrfgYvfgREXAFg3__16irpgbeVAF1_14PncgherErdhrfgRAF3_9nyybpngbeVF5_RRRRoCAF1_5hgvyf10FhozvgVasbR:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR15qb_zbir_sbejneqRCiCXiz:
 nop
 .data
-.globl b__MGIA7naqebvq6IrpgbeVwRR
+.weak b__MGIA7naqebvq6IrpgbeVwRR
 .type b__MGIA7naqebvq6IrpgbeVwRR,%object
 b__MGIA7naqebvq6IrpgbeVwRR:
 .space __SIZEOF_POINTER__
@@ -748,12 +748,12 @@
 b__MA7naqebvq16PnzrenCnenzrgref3frgRCXpF2_:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwAF_7Fgevat8RRRR10qb_pbzcnerRCXiF6_
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwAF_7Fgevat8RRRR10qb_pbzcnerRCXiF6_
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwAF_7Fgevat8RRRR10qb_pbzcnerRCXiF6_,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwAF_7Fgevat8RRRR10qb_pbzcnerRCXiF6_:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_7Fgevat8RR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_7Fgevat8RR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_7Fgevat8RR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_7Fgevat8RR8qb_fcyngRCiCXiz:
 nop
@@ -798,7 +798,7 @@
 b__MA7naqebvq16PnzrenCnenzrgref17FPRAR_ZBQR_FHAFRGR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq2fcVAF_24IraqbeGntQrfpevcgbePnpurRRQ2Ri
+.weak b__MA7naqebvq2fcVAF_24IraqbeGntQrfpevcgbePnpurRRQ2Ri
 .type b__MA7naqebvq2fcVAF_24IraqbeGntQrfpevcgbePnpurRRQ2Ri,%function
 b__MA7naqebvq2fcVAF_24IraqbeGntQrfpevcgbePnpurRRQ2Ri:
 nop
@@ -843,12 +843,12 @@
 b__MA7naqebvq16PnzrenCnenzrgref19CVKRY_SBEZNG_ETO565R:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq6Cnepry21jevgrCneprynoyrIrpgbeVAF_8uneqjner7pnzren26cnenzf19BhgchgPbasvthengvbaRRRvEXAFg3__16irpgbeVG_AF6_9nyybpngbeVF8_RRRR
+.weak b__MA7naqebvq6Cnepry21jevgrCneprynoyrIrpgbeVAF_8uneqjner7pnzren26cnenzf19BhgchgPbasvthengvbaRRRvEXAFg3__16irpgbeVG_AF6_9nyybpngbeVF8_RRRR
 .type b__MA7naqebvq6Cnepry21jevgrCneprynoyrIrpgbeVAF_8uneqjner7pnzren26cnenzf19BhgchgPbasvthengvbaRRRvEXAFg3__16irpgbeVG_AF6_9nyybpngbeVF8_RRRR,%function
 b__MA7naqebvq6Cnepry21jevgrCneprynoyrIrpgbeVAF_8uneqjner7pnzren26cnenzf19BhgchgPbasvthengvbaRRRvEXAFg3__16irpgbeVG_AF6_9nyybpngbeVF8_RRRR:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RwRRR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RwRRR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RwRRR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RwRRR10qb_qrfgeblRCiz:
 nop
@@ -903,7 +903,7 @@
 b__MA7naqebvq16PnzrenCnenzrgref25XRL_FHCCBEGRQ_FPRAR_ZBQRFR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIA7naqebvq19IraqbeGntQrfpevcgbeR
+.weak b__MGIA7naqebvq19IraqbeGntQrfpevcgbeR
 .type b__MGIA7naqebvq19IraqbeGntQrfpevcgbeR,%object
 b__MGIA7naqebvq19IraqbeGntQrfpevcgbeR:
 .space __SIZEOF_POINTER__
@@ -943,17 +943,17 @@
 b__MA7naqebvq16PnzrenCnenzrgref15RSSRPG_FBYNEVMRR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGPA7naqebvq8uneqjner8OcPnzrenR0_AF_10VVagresnprR
+.weak b__MGPA7naqebvq8uneqjner8OcPnzrenR0_AF_10VVagresnprR
 .type b__MGPA7naqebvq8uneqjner8OcPnzrenR0_AF_10VVagresnprR,%object
 b__MGPA7naqebvq8uneqjner8OcPnzrenR0_AF_10VVagresnprR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq4ivrj7FhesnprRAF_9nyybpngbeVF3_RRR8__nccraqRz
+.weak b__MAFg3__16irpgbeVA7naqebvq4ivrj7FhesnprRAF_9nyybpngbeVF3_RRR8__nccraqRz
 .type b__MAFg3__16irpgbeVA7naqebvq4ivrj7FhesnprRAF_9nyybpngbeVF3_RRR8__nccraqRz,%function
 b__MAFg3__16irpgbeVA7naqebvq4ivrj7FhesnprRAF_9nyybpngbeVF3_RRR8__nccraqRz:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwAF_7Fgevat8RRRR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwAF_7Fgevat8RRRR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwAF_7Fgevat8RRRR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwAF_7Fgevat8RRRR12qb_pbafgehpgRCiz:
 nop
@@ -1033,7 +1033,7 @@
 b__MA7naqebvq8uneqjner7pnzren214PncgherErdhrfgP2RBF2_:
 nop
 .data
-.globl b__MGIA7naqebvq10PnzrenOnfrVAF_6PnzrenRAF_12PnzrenGenvgfVF1_RRRR
+.weak b__MGIA7naqebvq10PnzrenOnfrVAF_6PnzrenRAF_12PnzrenGenvgfVF1_RRRR
 .type b__MGIA7naqebvq10PnzrenOnfrVAF_6PnzrenRAF_12PnzrenGenvgfVF1_RRRR,%object
 b__MGIA7naqebvq10PnzrenOnfrVAF_6PnzrenRAF_12PnzrenGenvgfVF1_RRRR:
 .space __SIZEOF_POINTER__
@@ -1083,7 +1083,7 @@
 b__MGIA7naqebvq22OaPnzrenErpbeqvatCebklR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_17PnzrenCnenzrgref218BeqrerqXrlrqIrpgbeVAF_7Fgevat8RF3_R4CnveRR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq6IrpgbeVAF_17PnzrenCnenzrgref218BeqrerqXrlrqIrpgbeVAF_7Fgevat8RF3_R4CnveRR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq6IrpgbeVAF_17PnzrenCnenzrgref218BeqrerqXrlrqIrpgbeVAF_7Fgevat8RF3_R4CnveRR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq6IrpgbeVAF_17PnzrenCnenzrgref218BeqrerqXrlrqIrpgbeVAF_7Fgevat8RF3_R4CnveRR10qb_qrfgeblRCiz:
 nop
@@ -1128,7 +1128,7 @@
 b__MA7naqebvq16PnzrenCnenzrgref26JUVGR_ONYNAPR_VAPNAQRFPRAGR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RCAF_11XrlrqIrpgbeVF2_wRRRRR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RCAF_11XrlrqIrpgbeVF2_wRRRRR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RCAF_11XrlrqIrpgbeVF2_wRRRRR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RCAF_11XrlrqIrpgbeVF2_wRRRRR7qb_pbclRCiCXiz:
 nop
@@ -1143,7 +1143,7 @@
 b__MGPA7naqebvq8uneqjner14OaPnzrenPyvragR0_AF_11OaVagresnprVAF0_13VPnzrenPyvragRRR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGPA7naqebvq30OcPnzrenErpbeqvatCebklYvfgrareR0_AF_10VVagresnprR
+.weak b__MGPA7naqebvq30OcPnzrenErpbeqvatCebklYvfgrareR0_AF_10VVagresnprR
 .type b__MGPA7naqebvq30OcPnzrenErpbeqvatCebklYvfgrareR0_AF_10VVagresnprR,%object
 b__MGPA7naqebvq30OcPnzrenErpbeqvatCebklYvfgrareR0_AF_10VVagresnprR:
 .space __SIZEOF_POINTER__
@@ -1193,7 +1193,7 @@
 b__MA7naqebvq17PnzrenCnenzrgref2Q2Ri:
 nop
 .data
-.globl b__MGGA7naqebvq30OcPnzrenErpbeqvatCebklYvfgrareR
+.weak b__MGGA7naqebvq30OcPnzrenErpbeqvatCebklYvfgrareR
 .type b__MGGA7naqebvq30OcPnzrenErpbeqvatCebklYvfgrareR,%object
 b__MGGA7naqebvq30OcPnzrenErpbeqvatCebklYvfgrareR:
 .space __SIZEOF_POINTER__
@@ -1203,7 +1203,7 @@
 b__MGPA7naqebvq8uneqjner7pnzren222VPnzrenQrivprPnyyonpxfR0_AF_10VVagresnprR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq10PnzrenOnfrVAF_6PnzrenRAF_12PnzrenGenvgfVF1_RRRQ2Ri
+.weak b__MA7naqebvq10PnzrenOnfrVAF_6PnzrenRAF_12PnzrenGenvgfVF1_RRRQ2Ri
 .type b__MA7naqebvq10PnzrenOnfrVAF_6PnzrenRAF_12PnzrenGenvgfVF1_RRRQ2Ri,%function
 b__MA7naqebvq10PnzrenOnfrVAF_6PnzrenRAF_12PnzrenGenvgfVF1_RRRQ2Ri:
 nop
@@ -1223,12 +1223,12 @@
 b__MA7naqebvq16PnzrenCnenzrgref20CVKRY_SBEZNG_LHI422VR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR7qb_pbclRCiCXiz:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_17PnzrenCnenzrgref218BeqrerqXrlrqIrpgbeVAF_7Fgevat8RF3_R4CnveRR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq6IrpgbeVAF_17PnzrenCnenzrgref218BeqrerqXrlrqIrpgbeVAF_7Fgevat8RF3_R4CnveRR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq6IrpgbeVAF_17PnzrenCnenzrgref218BeqrerqXrlrqIrpgbeVAF_7Fgevat8RF3_R4CnveRR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq6IrpgbeVAF_17PnzrenCnenzrgref218BeqrerqXrlrqIrpgbeVAF_7Fgevat8RF3_R4CnveRR12qb_pbafgehpgRCiz:
 nop
@@ -1253,7 +1253,7 @@
 b__MA7naqebvq6Pnzren14fgnegErpbeqvatRi:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_7Fgevat8RR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_7Fgevat8RR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_7Fgevat8RR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_7Fgevat8RR16qb_zbir_onpxjneqRCiCXiz:
 nop
@@ -1263,12 +1263,12 @@
 b__MA7naqebvq6Pnzren21eryrnfrErpbeqvatSenzrREXAF_2fcVAF_7VZrzbelRRR:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwwRRR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwwRRR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwwRRR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwwRRR12qb_pbafgehpgRCiz:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVwR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVwR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVwR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVwR16qb_zbir_onpxjneqRCiCXiz:
 nop
@@ -1278,7 +1278,7 @@
 b__MGIA7naqebvq8uneqjner7pnzren26cnenzf19BhgchgPbasvthengvbaR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__16irpgbeVvAF_9nyybpngbeVvRRR7erfreirRz
+.weak b__MAFg3__16irpgbeVvAF_9nyybpngbeVvRRR7erfreirRz
 .type b__MAFg3__16irpgbeVvAF_9nyybpngbeVvRRR7erfreirRz,%function
 b__MAFg3__16irpgbeVvAF_9nyybpngbeVvRRR7erfreirRz:
 nop
@@ -1308,12 +1308,12 @@
 b__MA7naqebvq16PnzrenCnenzrgref16frgCerivrjSbezngRCXp:
 nop
 .data
-.globl b__MGIA7naqebvq22OcPnzrenErpbeqvatCebklR
+.weak b__MGIA7naqebvq22OcPnzrenErpbeqvatCebklR
 .type b__MGIA7naqebvq22OcPnzrenErpbeqvatCebklR,%object
 b__MGIA7naqebvq22OcPnzrenErpbeqvatCebklR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzA7naqebvq2fcVAF2_19IraqbeGntQrfpevcgbeRRRRRAF_22__habeqrerq_znc_unfureVzF6_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF6_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF6_RRR25__rzcynpr_havdhr_xrl_netfVzWEzEF5_RRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF6_CiRRRRoRREXG_QcBG0_
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzA7naqebvq2fcVAF2_19IraqbeGntQrfpevcgbeRRRRRAF_22__habeqrerq_znc_unfureVzF6_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF6_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF6_RRR25__rzcynpr_havdhr_xrl_netfVzWEzEF5_RRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF6_CiRRRRoRREXG_QcBG0_
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzA7naqebvq2fcVAF2_19IraqbeGntQrfpevcgbeRRRRRAF_22__habeqrerq_znc_unfureVzF6_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF6_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF6_RRR25__rzcynpr_havdhr_xrl_netfVzWEzEF5_RRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF6_CiRRRRoRREXG_QcBG0_,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzA7naqebvq2fcVAF2_19IraqbeGntQrfpevcgbeRRRRRAF_22__habeqrerq_znc_unfureVzF6_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF6_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF6_RRR25__rzcynpr_havdhr_xrl_netfVzWEzEF5_RRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF6_CiRRRRoRREXG_QcBG0_:
 nop
@@ -1343,7 +1343,7 @@
 b__MA7naqebvq8uneqjner23OcPnzrenFreivprYvfgrare31baPnzrenNpprffCevbevgvrfPunatrqRi:
 nop
 .text
-.globl b__MA7naqebvq11OaVagresnprVAF_8uneqjner7pnzren217VPnzrenQrivprHfreRR10baNfOvaqreRi
+.weak b__MA7naqebvq11OaVagresnprVAF_8uneqjner7pnzren217VPnzrenQrivprHfreRR10baNfOvaqreRi
 .type b__MA7naqebvq11OaVagresnprVAF_8uneqjner7pnzren217VPnzrenQrivprHfreRR10baNfOvaqreRi,%function
 b__MA7naqebvq11OaVagresnprVAF_8uneqjner7pnzren217VPnzrenQrivprHfreRR10baNfOvaqreRi:
 nop
@@ -1363,7 +1363,7 @@
 b__MGGA7naqebvq8uneqjner14OaPnzrenPyvragR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq6IrpgbeVvR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVvR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVvR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVvR7qb_pbclRCiCXiz:
 nop
@@ -1398,7 +1398,7 @@
 b__MGPA7naqebvq8uneqjner7pnzren223OaPnzrenQrivprPnyyonpxfR0_AF_11OaVagresnprVAF1_22VPnzrenQrivprPnyyonpxfRRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq10PnzrenOnfrVAF_6PnzrenRAF_12PnzrenGenvgfVF1_RRRP2Rv
+.weak b__MA7naqebvq10PnzrenOnfrVAF_6PnzrenRAF_12PnzrenGenvgfVF1_RRRP2Rv
 .type b__MA7naqebvq10PnzrenOnfrVAF_6PnzrenRAF_12PnzrenGenvgfVF1_RRRP2Rv,%function
 b__MA7naqebvq10PnzrenOnfrVAF_6PnzrenRAF_12PnzrenGenvgfVF1_RRRP2Rv:
 nop
@@ -1473,12 +1473,12 @@
 b__MAX7naqebvq17PnzrenCnenzrgref24qhzcRvEXAF_6IrpgbeVAF_8Fgevat16RRR:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_2fcVAF_7FhesnprRRRR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_2fcVAF_7FhesnprRRRR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_2fcVAF_7FhesnprRRRR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_2fcVAF_7FhesnprRRRR16qb_zbir_onpxjneqRCiCXiz:
 nop
 .text
-.globl b__MAX7naqebvq6Cnepry16ernqFgebatOvaqreVAF_8uneqjner7VPnzrenRRRvCAF_2fcVG_RR
+.weak b__MAX7naqebvq6Cnepry16ernqFgebatOvaqreVAF_8uneqjner7VPnzrenRRRvCAF_2fcVG_RR
 .type b__MAX7naqebvq6Cnepry16ernqFgebatOvaqreVAF_8uneqjner7VPnzrenRRRvCAF_2fcVG_RR,%function
 b__MAX7naqebvq6Cnepry16ernqFgebatOvaqreVAF_8uneqjner7VPnzrenRRRvCAF_2fcVG_RR:
 nop
@@ -1543,7 +1543,7 @@
 b__MA7naqebvq8uneqjner7pnzren218OcPnzrenQrivprHfre28svanyvmrBhgchgPbasvthengvbafRvEXAF1_6cnenzf19BhgchgPbasvthengvbaR:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_2fcVAF_7FhesnprRRRR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq6IrpgbeVAF_2fcVAF_7FhesnprRRRR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq6IrpgbeVAF_2fcVAF_7FhesnprRRRR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq6IrpgbeVAF_2fcVAF_7FhesnprRRRR12qb_pbafgehpgRCiz:
 nop
@@ -1593,7 +1593,7 @@
 b__MA7naqebvq16PnzrenCnenzrgref16FPRAR_ZBQR_AVTUGR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RCAF_11XrlrqIrpgbeVF2_wRRRRR10qb_pbzcnerRCXiF9_
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RCAF_11XrlrqIrpgbeVF2_wRRRRR10qb_pbzcnerRCXiF9_
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RCAF_11XrlrqIrpgbeVF2_wRRRRR10qb_pbzcnerRCXiF9_,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RCAF_11XrlrqIrpgbeVF2_wRRRRR10qb_pbzcnerRCXiF9_:
 nop
@@ -1603,12 +1603,12 @@
 b__MA7naqebvq8uneqjner14VPnzrenFreivpr12qrsnhyg_vzcyR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq2fcVAF_19IraqbeGntQrfpevcgbeRRQ2Ri
+.weak b__MA7naqebvq2fcVAF_19IraqbeGntQrfpevcgbeRRQ2Ri
 .type b__MA7naqebvq2fcVAF_19IraqbeGntQrfpevcgbeRRQ2Ri,%function
 b__MA7naqebvq2fcVAF_19IraqbeGntQrfpevcgbeRRQ2Ri:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RwRRR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RwRRR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RwRRR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RwRRR12qb_pbafgehpgRCiz:
 nop
@@ -1623,12 +1623,12 @@
 b__MAX7naqebvq17PnzrenCnenzrgref224trgFhccbegrqCerivrjFvmrfREAF_6IrpgbeVAF_4FvmrRRR:
 nop
 .data
-.globl b__MGPA7naqebvq30OcPnzrenErpbeqvatCebklYvfgrareR0_AF_11OcVagresnprVAF_29VPnzrenErpbeqvatCebklYvfgrareRRR
+.weak b__MGPA7naqebvq30OcPnzrenErpbeqvatCebklYvfgrareR0_AF_11OcVagresnprVAF_29VPnzrenErpbeqvatCebklYvfgrareRRR
 .type b__MGPA7naqebvq30OcPnzrenErpbeqvatCebklYvfgrareR0_AF_11OcVagresnprVAF_29VPnzrenErpbeqvatCebklYvfgrareRRR,%object
 b__MGPA7naqebvq30OcPnzrenErpbeqvatCebklYvfgrareR0_AF_11OcVagresnprVAF_29VPnzrenErpbeqvatCebklYvfgrareRRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwvRRR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwvRRR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwvRRR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwvRRR7qb_pbclRCiCXiz:
 nop
@@ -1718,7 +1718,7 @@
 b__MA7naqebvq17PnzrenCnenzrgref216frgCvpgherSbezngRCXp:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq8uneqjner12PnzrenFgnghfRAF_9nyybpngbeVF3_RRR8__nccraqRz
+.weak b__MAFg3__16irpgbeVA7naqebvq8uneqjner12PnzrenFgnghfRAF_9nyybpngbeVF3_RRR8__nccraqRz
 .type b__MAFg3__16irpgbeVA7naqebvq8uneqjner12PnzrenFgnghfRAF_9nyybpngbeVF3_RRR8__nccraqRz,%function
 b__MAFg3__16irpgbeVA7naqebvq8uneqjner12PnzrenFgnghfRAF_9nyybpngbeVF3_RRR8__nccraqRz:
 nop
@@ -1753,7 +1753,7 @@
 b__MA7naqebvq14PnzrenZrgnqngn6nccraqRCX15pnzren_zrgnqngn:
 nop
 .text
-.globl b__MA7naqebvq2fcVAF_7FhesnprRRnFRCF1_
+.weak b__MA7naqebvq2fcVAF_7FhesnprRRnFRCF1_
 .type b__MA7naqebvq2fcVAF_7FhesnprRRnFRCF1_,%function
 b__MA7naqebvq2fcVAF_7FhesnprRRnFRCF1_:
 nop
@@ -1818,7 +1818,7 @@
 b__MGi0_a24_A7naqebvq8uneqjner7pnzren222VPnzrenQrivprPnyyonpxfQ0Ri:
 nop
 .text
-.globl b__MAX7naqebvq6Cnepry20ernqCneprynoyrIrpgbeVAF_8uneqjner12PnzrenFgnghfRRRvCAFg3__16irpgbeVG_AF4_9nyybpngbeVF6_RRRR
+.weak b__MAX7naqebvq6Cnepry20ernqCneprynoyrIrpgbeVAF_8uneqjner12PnzrenFgnghfRRRvCAFg3__16irpgbeVG_AF4_9nyybpngbeVF6_RRRR
 .type b__MAX7naqebvq6Cnepry20ernqCneprynoyrIrpgbeVAF_8uneqjner12PnzrenFgnghfRRRvCAFg3__16irpgbeVG_AF4_9nyybpngbeVF6_RRRR,%function
 b__MAX7naqebvq6Cnepry20ernqCneprynoyrIrpgbeVAF_8uneqjner12PnzrenFgnghfRRRvCAFg3__16irpgbeVG_AF4_9nyybpngbeVF6_RRRR:
 nop
@@ -1848,7 +1848,7 @@
 b__MA7naqebvq6Pnzren6haybpxRi:
 nop
 .text
-.globl b__MAFg3__16irpgbeVvAF_9nyybpngbeVvRRR21__chfu_onpx_fybj_cnguVvRRiBG_
+.weak b__MAFg3__16irpgbeVvAF_9nyybpngbeVvRRR21__chfu_onpx_fybj_cnguVvRRiBG_
 .type b__MAFg3__16irpgbeVvAF_9nyybpngbeVvRRR21__chfu_onpx_fybj_cnguVvRRiBG_,%function
 b__MAFg3__16irpgbeVvAF_9nyybpngbeVvRRR21__chfu_onpx_fybj_cnguVvRRiBG_:
 nop
@@ -1873,12 +1873,12 @@
 b__MA7naqebvq21VPnzrenErpbeqvatCebkl11nfVagresnprREXAF_2fcVAF_7VOvaqreRRR:
 nop
 .data
-.globl b__MGPA7naqebvq30OcPnzrenErpbeqvatCebklYvfgrareR8_AF_9OcErsOnfrR
+.weak b__MGPA7naqebvq30OcPnzrenErpbeqvatCebklYvfgrareR8_AF_9OcErsOnfrR
 .type b__MGPA7naqebvq30OcPnzrenErpbeqvatCebklYvfgrareR8_AF_9OcErsOnfrR,%object
 b__MGPA7naqebvq30OcPnzrenErpbeqvatCebklYvfgrareR8_AF_9OcErsOnfrR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwAF_7Fgevat8RRRR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwAF_7Fgevat8RRRR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwAF_7Fgevat8RRRR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwAF_7Fgevat8RRRR15qb_zbir_sbejneqRCiCXiz:
 nop
@@ -1898,12 +1898,12 @@
 b__MA7naqebvq16PnzrenCnenzrgref20FPRAR_ZBQR_YNAQFPNCRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq8uneqjner7pnzren214PncgherErdhrfg22CulfvpnyPnzrenFrggvatfRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_
+.weak b__MAFg3__16irpgbeVA7naqebvq8uneqjner7pnzren214PncgherErdhrfg22CulfvpnyPnzrenFrggvatfRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_
 .type b__MAFg3__16irpgbeVA7naqebvq8uneqjner7pnzren214PncgherErdhrfg22CulfvpnyPnzrenFrggvatfRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_,%function
 b__MAFg3__16irpgbeVA7naqebvq8uneqjner7pnzren214PncgherErdhrfg22CulfvpnyPnzrenFrggvatfRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq8uneqjner7pnzren24vzcy25CulfvpnyPncgherErfhygVasbRAF_9nyybpngbeVF5_RRR8__nccraqRz
+.weak b__MAFg3__16irpgbeVA7naqebvq8uneqjner7pnzren24vzcy25CulfvpnyPncgherErfhygVasbRAF_9nyybpngbeVF5_RRR8__nccraqRz
 .type b__MAFg3__16irpgbeVA7naqebvq8uneqjner7pnzren24vzcy25CulfvpnyPncgherErfhygVasbRAF_9nyybpngbeVF5_RRR8__nccraqRz,%function
 b__MAFg3__16irpgbeVA7naqebvq8uneqjner7pnzren24vzcy25CulfvpnyPncgherErfhygVasbRAF_9nyybpngbeVF5_RRR8__nccraqRz:
 nop
@@ -1918,7 +1918,7 @@
 b__MA7naqebvq29VPnzrenErpbeqvatCebklYvfgrare12qrsnhyg_vzcyR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq10PnzrenOnfrVAF_6PnzrenRAF_12PnzrenGenvgfVF1_RRR9trgFgnghfRi
+.weak b__MA7naqebvq10PnzrenOnfrVAF_6PnzrenRAF_12PnzrenGenvgfVF1_RRR9trgFgnghfRi
 .type b__MA7naqebvq10PnzrenOnfrVAF_6PnzrenRAF_12PnzrenGenvgfVF1_RRR9trgFgnghfRi,%function
 b__MA7naqebvq10PnzrenOnfrVAF_6PnzrenRAF_12PnzrenGenvgfVF1_RRR9trgFgnghfRi:
 nop
@@ -1938,12 +1938,12 @@
 b__MAX7naqebvq17PnzrenCnenzrgref231trgCersreerqCerivrjFvmrSbeIvqrbRCvF1_:
 nop
 .data
-.globl b__MGPA7naqebvq22OcPnzrenErpbeqvatCebklR8_AF_9OcErsOnfrR
+.weak b__MGPA7naqebvq22OcPnzrenErpbeqvatCebklR8_AF_9OcErsOnfrR
 .type b__MGPA7naqebvq22OcPnzrenErpbeqvatCebklR8_AF_9OcErsOnfrR,%object
 b__MGPA7naqebvq22OcPnzrenErpbeqvatCebklR8_AF_9OcErsOnfrR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwAF_7Fgevat8RRRR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwAF_7Fgevat8RRRR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwAF_7Fgevat8RRRR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwAF_7Fgevat8RRRR16qb_zbir_onpxjneqRCiCXiz:
 nop
@@ -1958,7 +1958,7 @@
 b__MA7naqebvq14PnzrenZrgnqngn10hcqngrVzcyRwCXiz:
 nop
 .text
-.globl b__MAX7naqebvq6Cnepry16ernqFgebatOvaqreVAF_8uneqjner13VPnzrenPyvragRRRvCAF_2fcVG_RR
+.weak b__MAX7naqebvq6Cnepry16ernqFgebatOvaqreVAF_8uneqjner13VPnzrenPyvragRRRvCAF_2fcVG_RR
 .type b__MAX7naqebvq6Cnepry16ernqFgebatOvaqreVAF_8uneqjner13VPnzrenPyvragRRRvCAF_2fcVG_RR,%function
 b__MAX7naqebvq6Cnepry16ernqFgebatOvaqreVAF_8uneqjner13VPnzrenPyvragRRRvCAF_2fcVG_RR:
 nop
@@ -1998,7 +1998,7 @@
 b__MA7naqebvq8uneqjner7pnzren25hgvyf10FhozvgVasb14ernqSebzCnepryRCXAF_6CnepryR:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_7Fgevat8RR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_7Fgevat8RR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_7Fgevat8RR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_7Fgevat8RR12qb_pbafgehpgRCiz:
 nop
@@ -2038,7 +2038,7 @@
 b__MA7naqebvq14PnzrenZrgnqngn6hcqngrRwEXAF_7Fgevat8R:
 nop
 .text
-.globl b__MAFg3__16irpgbeVC13angvir_unaqyrAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVF2_RRiBG_
+.weak b__MAFg3__16irpgbeVC13angvir_unaqyrAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVF2_RRiBG_
 .type b__MAFg3__16irpgbeVC13angvir_unaqyrAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVF2_RRiBG_,%function
 b__MAFg3__16irpgbeVC13angvir_unaqyrAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVF2_RRiBG_:
 nop
@@ -2113,7 +2113,7 @@
 b__MA7naqebvq13PncgherErfhyg14ernqSebzCnepryRCAF_6CnepryR:
 nop
 .data
-.globl b__MGPA7naqebvq8uneqjner14OcPnzrenPyvragR0_AF0_13VPnzrenPyvragR
+.weak b__MGPA7naqebvq8uneqjner14OcPnzrenPyvragR0_AF0_13VPnzrenPyvragR
 .type b__MGPA7naqebvq8uneqjner14OcPnzrenPyvragR0_AF0_13VPnzrenPyvragR,%object
 b__MGPA7naqebvq8uneqjner14OcPnzrenPyvragR0_AF0_13VPnzrenPyvragR:
 .space __SIZEOF_POINTER__
@@ -2158,7 +2158,7 @@
 b__MAX7naqebvq8uneqjner7pnzren214PncgherErdhrfg13jevgrGbCnepryRCAF_6CnepryR:
 nop
 .text
-.globl b__MA7naqebvq6Cnepry21jevgrCneprynoyrIrpgbeVAF_4ivrj7FhesnprRRRvEXAFg3__16irpgbeVG_AF4_9nyybpngbeVF6_RRRR
+.weak b__MA7naqebvq6Cnepry21jevgrCneprynoyrIrpgbeVAF_4ivrj7FhesnprRRRvEXAFg3__16irpgbeVG_AF4_9nyybpngbeVF6_RRRR
 .type b__MA7naqebvq6Cnepry21jevgrCneprynoyrIrpgbeVAF_4ivrj7FhesnprRRRvEXAFg3__16irpgbeVG_AF4_9nyybpngbeVF6_RRRR,%function
 b__MA7naqebvq6Cnepry21jevgrCneprynoyrIrpgbeVAF_4ivrj7FhesnprRRRvEXAFg3__16irpgbeVG_AF4_9nyybpngbeVF6_RRRR:
 nop
@@ -2178,7 +2178,7 @@
 b__MGIA7naqebvq8uneqjner29VPnzrenFreivprYvfgrareQrsnhygR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_2fcVAF_7FhesnprRRRR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_2fcVAF_7FhesnprRRRR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_2fcVAF_7FhesnprRRRR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_2fcVAF_7FhesnprRRRR8qb_fcyngRCiCXiz:
 nop
@@ -2188,7 +2188,7 @@
 b__MA7naqebvq14PnzrenZrgnqngnQ1Ri:
 nop
 .text
-.globl b__MA7naqebvq10PnzrenOnfrVAF_6PnzrenRAF_12PnzrenGenvgfVF1_RRRQ0Ri
+.weak b__MA7naqebvq10PnzrenOnfrVAF_6PnzrenRAF_12PnzrenGenvgfVF1_RRRQ0Ri
 .type b__MA7naqebvq10PnzrenOnfrVAF_6PnzrenRAF_12PnzrenGenvgfVF1_RRRQ0Ri,%function
 b__MA7naqebvq10PnzrenOnfrVAF_6PnzrenRAF_12PnzrenGenvgfVF1_RRRQ0Ri:
 nop
@@ -2243,12 +2243,12 @@
 b__MAX7naqebvq8uneqjner7pnzren26cnenzf19BhgchgPbasvthengvba10vfQrsreerqRi:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVwR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq6IrpgbeVwR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq6IrpgbeVwR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq6IrpgbeVwR10qb_qrfgeblRCiz:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVwR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVwR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVwR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVwR7qb_pbclRCiCXiz:
 nop
@@ -2273,7 +2273,7 @@
 b__MA7naqebvq16PnzrenCnenzrgref27SBPHF_ZBQR_PBAGVAHBHF_IVQRBR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwvRRR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwvRRR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwvRRR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwvRRR12qb_pbafgehpgRCiz:
 nop
@@ -2283,7 +2283,7 @@
 b__MA7naqebvq6Pnzren14ErpbeqvatCebklP1REXAF_2fcVF0_RR:
 nop
 .text
-.globl b__MGi0_a24_A7naqebvq10PnzrenOnfrVAF_6PnzrenRAF_12PnzrenGenvgfVF1_RRRQ0Ri
+.weak b__MGi0_a24_A7naqebvq10PnzrenOnfrVAF_6PnzrenRAF_12PnzrenGenvgfVF1_RRRQ0Ri
 .type b__MGi0_a24_A7naqebvq10PnzrenOnfrVAF_6PnzrenRAF_12PnzrenGenvgfVF1_RRRQ0Ri,%function
 b__MGi0_a24_A7naqebvq10PnzrenOnfrVAF_6PnzrenRAF_12PnzrenGenvgfVF1_RRRQ0Ri:
 nop
@@ -2303,7 +2303,7 @@
 b__MA7naqebvq8uneqjner22VPnzrenFreivprYvfgrareQ2Ri:
 nop
 .text
-.globl b__MA7naqebvq10PnzrenOnfrVAF_6PnzrenRAF_12PnzrenGenvgfVF1_RRR16trgPnzrenFreivprRi
+.weak b__MA7naqebvq10PnzrenOnfrVAF_6PnzrenRAF_12PnzrenGenvgfVF1_RRR16trgPnzrenFreivprRi
 .type b__MA7naqebvq10PnzrenOnfrVAF_6PnzrenRAF_12PnzrenGenvgfVF1_RRR16trgPnzrenFreivprRi,%function
 b__MA7naqebvq10PnzrenOnfrVAF_6PnzrenRAF_12PnzrenGenvgfVF1_RRR16trgPnzrenFreivprRi:
 nop
@@ -2333,12 +2333,12 @@
 b__MA7naqebvq8uneqjner7pnzren26cnenzf19BhgchgPbasvthengvbaP1REXAF_6CnepryR:
 nop
 .text
-.globl b__MAX7naqebvq6Cnepry20ernqCneprynoyrIrpgbeVAF_8uneqjner7pnzren26cnenzf19BhgchgPbasvthengvbaRRRvCAFg3__16irpgbeVG_AF6_9nyybpngbeVF8_RRRR
+.weak b__MAX7naqebvq6Cnepry20ernqCneprynoyrIrpgbeVAF_8uneqjner7pnzren26cnenzf19BhgchgPbasvthengvbaRRRvCAFg3__16irpgbeVG_AF6_9nyybpngbeVF8_RRRR
 .type b__MAX7naqebvq6Cnepry20ernqCneprynoyrIrpgbeVAF_8uneqjner7pnzren26cnenzf19BhgchgPbasvthengvbaRRRvCAFg3__16irpgbeVG_AF6_9nyybpngbeVF8_RRRR,%function
 b__MAX7naqebvq6Cnepry20ernqCneprynoyrIrpgbeVAF_8uneqjner7pnzren26cnenzf19BhgchgPbasvthengvbaRRRvCAFg3__16irpgbeVG_AF6_9nyybpngbeVF8_RRRR:
 nop
 .text
-.globl b__MA7naqebvq11OaVagresnprVAF_8uneqjner7VPnzrenRR10baNfOvaqreRi
+.weak b__MA7naqebvq11OaVagresnprVAF_8uneqjner7VPnzrenRR10baNfOvaqreRi
 .type b__MA7naqebvq11OaVagresnprVAF_8uneqjner7VPnzrenRR10baNfOvaqreRi,%function
 b__MA7naqebvq11OaVagresnprVAF_8uneqjner7VPnzrenRR10baNfOvaqreRi:
 nop
@@ -2368,7 +2368,7 @@
 b__MAX7naqebvq17PnzrenCnenzrgref216trgCerivrjSbezngRi:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RCAF_11XrlrqIrpgbeVF2_wRRRRR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RCAF_11XrlrqIrpgbeVF2_wRRRRR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RCAF_11XrlrqIrpgbeVF2_wRRRRR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RCAF_11XrlrqIrpgbeVF2_wRRRRR8qb_fcyngRCiCXiz:
 nop
@@ -2398,7 +2398,7 @@
 b__MAX7naqebvq14PnzrenZrgnqngn13jevgrGbCnepryRCAF_6CnepryR:
 nop
 .text
-.globl b__MAFg3__16irpgbeVwAF_9nyybpngbeVwRRR6vafregVCwRRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVwAF_15vgrengbe_genvgfVF7_R9ersreraprRRR5inyhrRAF_11__jenc_vgreVF5_RRR4glcrRAFO_VCXwRRF7_F7_
+.weak b__MAFg3__16irpgbeVwAF_9nyybpngbeVwRRR6vafregVCwRRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVwAF_15vgrengbe_genvgfVF7_R9ersreraprRRR5inyhrRAF_11__jenc_vgreVF5_RRR4glcrRAFO_VCXwRRF7_F7_
 .type b__MAFg3__16irpgbeVwAF_9nyybpngbeVwRRR6vafregVCwRRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVwAF_15vgrengbe_genvgfVF7_R9ersreraprRRR5inyhrRAF_11__jenc_vgreVF5_RRR4glcrRAFO_VCXwRRF7_F7_,%function
 b__MAFg3__16irpgbeVwAF_9nyybpngbeVwRRR6vafregVCwRRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVwAF_15vgrengbe_genvgfVF7_R9ersreraprRRR5inyhrRAF_11__jenc_vgreVF5_RRR4glcrRAFO_VCXwRRF7_F7_:
 nop
@@ -2438,7 +2438,7 @@
 b__MA7naqebvq8uneqjner7pnzren218OcPnzrenQrivprHfre5syhfuRCy:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_17PnzrenCnenzrgref218BeqrerqXrlrqIrpgbeVAF_7Fgevat8RF3_R4CnveRR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_17PnzrenCnenzrgref218BeqrerqXrlrqIrpgbeVAF_7Fgevat8RF3_R4CnveRR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_17PnzrenCnenzrgref218BeqrerqXrlrqIrpgbeVAF_7Fgevat8RF3_R4CnveRR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_17PnzrenCnenzrgref218BeqrerqXrlrqIrpgbeVAF_7Fgevat8RF3_R4CnveRR15qb_zbir_sbejneqRCiCXiz:
 nop
@@ -2538,7 +2538,7 @@
 b__MA7naqebvq8uneqjner7pnzren224VPnzrenQrivprHfreQrsnhyg7cercnerRv:
 nop
 .text
-.globl b__MAX7naqebvq6Cnepry20ernqCneprynoyrIrpgbeVAF_8uneqjner7pnzren214PncgherErdhrfgRRRvCAFg3__16irpgbeVG_AF5_9nyybpngbeVF7_RRRR
+.weak b__MAX7naqebvq6Cnepry20ernqCneprynoyrIrpgbeVAF_8uneqjner7pnzren214PncgherErdhrfgRRRvCAFg3__16irpgbeVG_AF5_9nyybpngbeVF7_RRRR
 .type b__MAX7naqebvq6Cnepry20ernqCneprynoyrIrpgbeVAF_8uneqjner7pnzren214PncgherErdhrfgRRRvCAFg3__16irpgbeVG_AF5_9nyybpngbeVF7_RRRR,%function
 b__MAX7naqebvq6Cnepry20ernqCneprynoyrIrpgbeVAF_8uneqjner7pnzren214PncgherErdhrfgRRRvCAFg3__16irpgbeVG_AF5_9nyybpngbeVF7_RRRR:
 nop
@@ -2553,7 +2553,7 @@
 b__MA7naqebvq16PnzrenCnenzrgref19XRL_SBPHF_QVFGNAPRFR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq6Cnepry16ernqFgebatOvaqreVAF_8uneqjner7pnzren217VPnzrenQrivprHfreRRRvCAF_2fcVG_RR
+.weak b__MAX7naqebvq6Cnepry16ernqFgebatOvaqreVAF_8uneqjner7pnzren217VPnzrenQrivprHfreRRRvCAF_2fcVG_RR
 .type b__MAX7naqebvq6Cnepry16ernqFgebatOvaqreVAF_8uneqjner7pnzren217VPnzrenQrivprHfreRRRvCAF_2fcVG_RR,%function
 b__MAX7naqebvq6Cnepry16ernqFgebatOvaqreVAF_8uneqjner7pnzren217VPnzrenQrivprHfreRRRvCAF_2fcVG_RR:
 nop
@@ -2573,12 +2573,12 @@
 b__MAX7naqebvq8uneqjner7VPnzren22trgVagresnprQrfpevcgbeRi:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RwRRR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RwRRR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RwRRR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RwRRR16qb_zbir_onpxjneqRCiCXiz:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwAF_7Fgevat8RRRR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwAF_7Fgevat8RRRR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwAF_7Fgevat8RRRR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwAF_7Fgevat8RRRR8qb_fcyngRCiCXiz:
 nop
@@ -2603,17 +2603,17 @@
 b__MA7naqebvq16PnzrenCnenzrgref6erzbirRCXp:
 nop
 .text
-.globl b__MAX7naqebvq6Cnepry20ernqCneprynoyrIrpgbeVAF_4ivrj7FhesnprRRRvCAFg3__16irpgbeVG_AF4_9nyybpngbeVF6_RRRR
+.weak b__MAX7naqebvq6Cnepry20ernqCneprynoyrIrpgbeVAF_4ivrj7FhesnprRRRvCAFg3__16irpgbeVG_AF4_9nyybpngbeVF6_RRRR
 .type b__MAX7naqebvq6Cnepry20ernqCneprynoyrIrpgbeVAF_4ivrj7FhesnprRRRvCAFg3__16irpgbeVG_AF4_9nyybpngbeVF6_RRRR,%function
 b__MAX7naqebvq6Cnepry20ernqCneprynoyrIrpgbeVAF_4ivrj7FhesnprRRRvCAFg3__16irpgbeVG_AF4_9nyybpngbeVF6_RRRR:
 nop
 .text
-.globl b__MAFg3__16irpgbeVwAF_9nyybpngbeVwRRR6vafregVCvRRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVwAF_15vgrengbe_genvgfVF7_R9ersreraprRRR5inyhrRAF_11__jenc_vgreVCwRRR4glcrRAFO_VCXwRRF7_F7_
+.weak b__MAFg3__16irpgbeVwAF_9nyybpngbeVwRRR6vafregVCvRRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVwAF_15vgrengbe_genvgfVF7_R9ersreraprRRR5inyhrRAF_11__jenc_vgreVCwRRR4glcrRAFO_VCXwRRF7_F7_
 .type b__MAFg3__16irpgbeVwAF_9nyybpngbeVwRRR6vafregVCvRRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVwAF_15vgrengbe_genvgfVF7_R9ersreraprRRR5inyhrRAF_11__jenc_vgreVCwRRR4glcrRAFO_VCXwRRF7_F7_,%function
 b__MAFg3__16irpgbeVwAF_9nyybpngbeVwRRR6vafregVCvRRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVwAF_15vgrengbe_genvgfVF7_R9ersreraprRRR5inyhrRAF_11__jenc_vgreVCwRRR4glcrRAFO_VCXwRRF7_F7_:
 nop
 .data
-.globl b__MGIA7naqebvq8uneqjner14OcPnzrenPyvragR
+.weak b__MGIA7naqebvq8uneqjner14OcPnzrenPyvragR
 .type b__MGIA7naqebvq8uneqjner14OcPnzrenPyvragR,%object
 b__MGIA7naqebvq8uneqjner14OcPnzrenPyvragR:
 .space __SIZEOF_POINTER__
@@ -2668,17 +2668,17 @@
 b__MA7naqebvq8uneqjner7pnzren24vzcy25CulfvpnyPncgherErfhygVasb14ernqSebzCnepryRCXAF_6CnepryR:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVvR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVvR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVvR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVvR15qb_zbir_sbejneqRCiCXiz:
 nop
 .text
-.globl b__MA7naqebvq2fcVAF_8uneqjner14VPnzrenFreivprRRQ2Ri
+.weak b__MA7naqebvq2fcVAF_8uneqjner14VPnzrenFreivprRRQ2Ri
 .type b__MA7naqebvq2fcVAF_8uneqjner14VPnzrenFreivprRRQ2Ri,%function
 b__MA7naqebvq2fcVAF_8uneqjner14VPnzrenFreivprRRQ2Ri:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RwRRR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RwRRR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RwRRR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RwRRR7qb_pbclRCiCXiz:
 nop
@@ -2708,12 +2708,12 @@
 b__MA7naqebvq8uneqjner8OaPnzren10baGenafnpgRwEXAF_6CnepryRCF2_w:
 nop
 .data
-.globl b__MGPA7naqebvq22OcPnzrenErpbeqvatCebklR0_AF_10VVagresnprR
+.weak b__MGPA7naqebvq22OcPnzrenErpbeqvatCebklR0_AF_10VVagresnprR
 .type b__MGPA7naqebvq22OcPnzrenErpbeqvatCebklR0_AF_10VVagresnprR,%object
 b__MGPA7naqebvq22OcPnzrenErpbeqvatCebklR0_AF_10VVagresnprR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RwRRR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RwRRR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RwRRR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RwRRR8qb_fcyngRCiCXiz:
 nop
@@ -2743,12 +2743,12 @@
 b__MA7naqebvq8uneqjner7pnzren214PncgherErdhrfgP2Ri:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RCAF_11XrlrqIrpgbeVF2_wRRRRR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RCAF_11XrlrqIrpgbeVF2_wRRRRR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RCAF_11XrlrqIrpgbeVF2_wRRRRR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RCAF_11XrlrqIrpgbeVF2_wRRRRR12qb_pbafgehpgRCiz:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzA7naqebvq2fcVAF2_19IraqbeGntQrfpevcgbeRRRRRAF_22__habeqrerq_znc_unfureVzF6_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF6_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF6_RRR6erunfuRz
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzA7naqebvq2fcVAF2_19IraqbeGntQrfpevcgbeRRRRRAF_22__habeqrerq_znc_unfureVzF6_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF6_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF6_RRR6erunfuRz
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzA7naqebvq2fcVAF2_19IraqbeGntQrfpevcgbeRRRRRAF_22__habeqrerq_znc_unfureVzF6_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF6_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF6_RRR6erunfuRz,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzA7naqebvq2fcVAF2_19IraqbeGntQrfpevcgbeRRRRRAF_22__habeqrerq_znc_unfureVzF6_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF6_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF6_RRR6erunfuRz:
 nop
@@ -2768,7 +2768,7 @@
 b__MA7naqebvq8uneqjner7pnzren229VPnzrenQrivprPnyyonpxfQrsnhyg12baQrivprVqyrRi:
 nop
 .data
-.globl b__MGIA7naqebvq6IrpgbeVAF_17PnzrenCnenzrgref218BeqrerqXrlrqIrpgbeVAF_7Fgevat8RF3_R4CnveRRR
+.weak b__MGIA7naqebvq6IrpgbeVAF_17PnzrenCnenzrgref218BeqrerqXrlrqIrpgbeVAF_7Fgevat8RF3_R4CnveRRR
 .type b__MGIA7naqebvq6IrpgbeVAF_17PnzrenCnenzrgref218BeqrerqXrlrqIrpgbeVAF_7Fgevat8RF3_R4CnveRRR,%object
 b__MGIA7naqebvq6IrpgbeVAF_17PnzrenCnenzrgref218BeqrerqXrlrqIrpgbeVAF_7Fgevat8RF3_R4CnveRRR:
 .space __SIZEOF_POINTER__
@@ -2783,12 +2783,12 @@
 b__MAX7naqebvq16PnzrenCnenzrgref14trgCvpgherFvmrRCvF1_:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_2fcVAF_7FhesnprRRRR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq6IrpgbeVAF_2fcVAF_7FhesnprRRRR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq6IrpgbeVAF_2fcVAF_7FhesnprRRRR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq6IrpgbeVAF_2fcVAF_7FhesnprRRRR10qb_qrfgeblRCiz:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq8uneqjner7pnzren26cnenzf19BhgchgPbasvthengvbaRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVEXF5_RRiBG_
+.weak b__MAFg3__16irpgbeVA7naqebvq8uneqjner7pnzren26cnenzf19BhgchgPbasvthengvbaRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVEXF5_RRiBG_
 .type b__MAFg3__16irpgbeVA7naqebvq8uneqjner7pnzren26cnenzf19BhgchgPbasvthengvbaRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVEXF5_RRiBG_,%function
 b__MAFg3__16irpgbeVA7naqebvq8uneqjner7pnzren26cnenzf19BhgchgPbasvthengvbaRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVEXF5_RRiBG_:
 nop
@@ -2888,7 +2888,7 @@
 b__MA7naqebvq16PnzrenCnenzrgref16RSSRPG_CBFGREVMRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR10qb_qrfgeblRCiz:
 nop
@@ -2898,7 +2898,7 @@
 b__MGPA7naqebvq22OaPnzrenErpbeqvatCebklR8_AF_7OOvaqreR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_7Fgevat8RR10qb_pbzcnerRCXiF4_
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_7Fgevat8RR10qb_pbzcnerRCXiF4_
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_7Fgevat8RR10qb_pbzcnerRCXiF4_,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_7Fgevat8RR10qb_pbzcnerRCXiF4_:
 nop
@@ -2913,7 +2913,7 @@
 b__MA7naqebvq16PnzrenCnenzrgref25XRL_UBEVMBAGNY_IVRJ_NATYRR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGPA7naqebvq8uneqjner8OcPnzrenR0_AF0_7VPnzrenR
+.weak b__MGPA7naqebvq8uneqjner8OcPnzrenR0_AF0_7VPnzrenR
 .type b__MGPA7naqebvq8uneqjner8OcPnzrenR0_AF0_7VPnzrenR,%object
 b__MGPA7naqebvq8uneqjner8OcPnzrenR0_AF0_7VPnzrenR:
 .space __SIZEOF_POINTER__
@@ -2978,7 +2978,7 @@
 b__MAX7naqebvq16PnzrenCnenzrgref24trgFhccbegrqCvpgherFvmrfREAF_6IrpgbeVAF_4FvmrRRR:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq8uneqjner7pnzren24vzcy25CulfvpnyPncgherErfhygVasbRAF_9nyybpngbeVF5_RRR7rzcynprVWEAF1_8Fgevat16REAF1_14PnzrenZrgnqngnRRRRAF_11__jenc_vgreVCF5_RRAFR_VCXF5_RRQcBG_
+.weak b__MAFg3__16irpgbeVA7naqebvq8uneqjner7pnzren24vzcy25CulfvpnyPncgherErfhygVasbRAF_9nyybpngbeVF5_RRR7rzcynprVWEAF1_8Fgevat16REAF1_14PnzrenZrgnqngnRRRRAF_11__jenc_vgreVCF5_RRAFR_VCXF5_RRQcBG_
 .type b__MAFg3__16irpgbeVA7naqebvq8uneqjner7pnzren24vzcy25CulfvpnyPncgherErfhygVasbRAF_9nyybpngbeVF5_RRR7rzcynprVWEAF1_8Fgevat16REAF1_14PnzrenZrgnqngnRRRRAF_11__jenc_vgreVCF5_RRAFR_VCXF5_RRQcBG_,%function
 b__MAFg3__16irpgbeVA7naqebvq8uneqjner7pnzren24vzcy25CulfvpnyPncgherErfhygVasbRAF_9nyybpngbeVF5_RRR7rzcynprVWEAF1_8Fgevat16REAF1_14PnzrenZrgnqngnRRRRAF_11__jenc_vgreVCF5_RRAFR_VCXF5_RRQcBG_:
 nop
@@ -3008,7 +3008,7 @@
 b__MA7naqebvq16PnzrenCnenzrgref17RSSRPG_JUVGROBNEQR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_17PnzrenCnenzrgref218BeqrerqXrlrqIrpgbeVAF_7Fgevat8RF3_R4CnveRR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_17PnzrenCnenzrgref218BeqrerqXrlrqIrpgbeVAF_7Fgevat8RF3_R4CnveRR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_17PnzrenCnenzrgref218BeqrerqXrlrqIrpgbeVAF_7Fgevat8RF3_R4CnveRR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_17PnzrenCnenzrgref218BeqrerqXrlrqIrpgbeVAF_7Fgevat8RF3_R4CnveRR8qb_fcyngRCiCXiz:
 nop
@@ -3028,7 +3028,7 @@
 b__MA7naqebvq8uneqjner21VPnzrenFreivprQrsnhyg17abgvslFlfgrzRiragRvEXAFg3__16irpgbeVvAF2_9nyybpngbeVvRRRR:
 nop
 .data
-.globl b__MGPA7naqebvq8uneqjner14OcPnzrenPyvragR8_AF_9OcErsOnfrR
+.weak b__MGPA7naqebvq8uneqjner14OcPnzrenPyvragR8_AF_9OcErsOnfrR
 .type b__MGPA7naqebvq8uneqjner14OcPnzrenPyvragR8_AF_9OcErsOnfrR,%object
 b__MGPA7naqebvq8uneqjner14OcPnzrenPyvragR8_AF_9OcErsOnfrR:
 .space __SIZEOF_POINTER__
@@ -3138,12 +3138,12 @@
 b__MA7naqebvq8uneqjner21VPnzrenFreivprQrsnhyg23trgPnzrenIraqbeGntPnpurRCAF0_7pnzren26cnenzf24IraqbeGntQrfpevcgbePnpurR:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR12qb_pbafgehpgRCiz:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVwR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq6IrpgbeVwR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq6IrpgbeVwR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq6IrpgbeVwR12qb_pbafgehpgRCiz:
 nop
@@ -3158,7 +3158,7 @@
 b__MA7naqebvq8uneqjner7pnzren223OcPnzrenQrivprPnyyonpxfP1REXAF_2fcVAF_7VOvaqreRRR:
 nop
 .text
-.globl b__MA7naqebvq10PnzrenOnfrVAF_6PnzrenRAF_12PnzrenGenvgfVF1_RRR11frgYvfgrareREXAF_2fcVAF_14PnzrenYvfgrareRRR
+.weak b__MA7naqebvq10PnzrenOnfrVAF_6PnzrenRAF_12PnzrenGenvgfVF1_RRR11frgYvfgrareREXAF_2fcVAF_14PnzrenYvfgrareRRR
 .type b__MA7naqebvq10PnzrenOnfrVAF_6PnzrenRAF_12PnzrenGenvgfVF1_RRR11frgYvfgrareREXAF_2fcVAF_14PnzrenYvfgrareRRR,%function
 b__MA7naqebvq10PnzrenOnfrVAF_6PnzrenRAF_12PnzrenGenvgfVF1_RRR11frgYvfgrareREXAF_2fcVAF_14PnzrenYvfgrareRRR:
 nop
@@ -3168,7 +3168,7 @@
 b__MAX7naqebvq8uneqjner10PnzrenVasb13jevgrGbCnepryRCAF_6CnepryR:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwAF_7Fgevat8RRRR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwAF_7Fgevat8RRRR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwAF_7Fgevat8RRRR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwAF_7Fgevat8RRRR10qb_qrfgeblRCiz:
 nop
@@ -3263,7 +3263,7 @@
 b__MGPA7naqebvq29VPnzrenErpbeqvatCebklYvfgrareR0_AF_10VVagresnprR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq6Cnepry16ernqFgebatOvaqreVAF_8uneqjner7pnzren222VPnzrenQrivprPnyyonpxfRRRvCAF_2fcVG_RR
+.weak b__MAX7naqebvq6Cnepry16ernqFgebatOvaqreVAF_8uneqjner7pnzren222VPnzrenQrivprPnyyonpxfRRRvCAF_2fcVG_RR
 .type b__MAX7naqebvq6Cnepry16ernqFgebatOvaqreVAF_8uneqjner7pnzren222VPnzrenQrivprPnyyonpxfRRRvCAF_2fcVG_RR,%function
 b__MAX7naqebvq6Cnepry16ernqFgebatOvaqreVAF_8uneqjner7pnzren222VPnzrenQrivprPnyyonpxfRRRvCAF_2fcVG_RR:
 nop
@@ -3278,7 +3278,7 @@
 b__MA7naqebvq8uneqjner7VPnzren14trgQrsnhygVzcyRi:
 nop
 .data
-.globl b__MGGA7naqebvq8uneqjner8OcPnzrenR
+.weak b__MGGA7naqebvq8uneqjner8OcPnzrenR
 .type b__MGGA7naqebvq8uneqjner8OcPnzrenR,%object
 b__MGGA7naqebvq8uneqjner8OcPnzrenR:
 .space __SIZEOF_POINTER__
@@ -3298,7 +3298,7 @@
 b__MGPA7naqebvq6Pnzren14ErpbeqvatCebklR0_AF_22OaPnzrenErpbeqvatCebklR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__16irpgbeVvAF_9nyybpngbeVvRRR8__nccraqRz
+.weak b__MAFg3__16irpgbeVvAF_9nyybpngbeVvRRR8__nccraqRz
 .type b__MAFg3__16irpgbeVvAF_9nyybpngbeVvRRR8__nccraqRz,%function
 b__MAFg3__16irpgbeVvAF_9nyybpngbeVvRRR8__nccraqRz:
 nop
@@ -3318,12 +3318,12 @@
 b__MGGA7naqebvq29VPnzrenErpbeqvatCebklYvfgrareR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwvRRR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwvRRR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwvRRR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwvRRR16qb_zbir_onpxjneqRCiCXiz:
 nop
 .data
-.globl b__MGIA7naqebvq12FbegrqIrpgbeVAF_7Fgevat8RRR
+.weak b__MGIA7naqebvq12FbegrqIrpgbeVAF_7Fgevat8RRR
 .type b__MGIA7naqebvq12FbegrqIrpgbeVAF_7Fgevat8RRR,%object
 b__MGIA7naqebvq12FbegrqIrpgbeVAF_7Fgevat8RRR:
 .space __SIZEOF_POINTER__
@@ -3333,7 +3333,7 @@
 b__MGi0_a24_A7naqebvq8uneqjner19VPnzrenFreivprCebklQ0Ri:
 nop
 .data
-.globl b__MGPA7naqebvq8uneqjner14OcPnzrenPyvragR0_AF_10VVagresnprR
+.weak b__MGPA7naqebvq8uneqjner14OcPnzrenPyvragR0_AF_10VVagresnprR
 .type b__MGPA7naqebvq8uneqjner14OcPnzrenPyvragR0_AF_10VVagresnprR,%object
 b__MGPA7naqebvq8uneqjner14OcPnzrenPyvragR0_AF_10VVagresnprR:
 .space __SIZEOF_POINTER__
@@ -3388,7 +3388,7 @@
 b__MGGA7naqebvq8uneqjner23OcPnzrenFreivprYvfgrareR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq10PnzrenOnfrVAF_6PnzrenRAF_12PnzrenGenvgfVF1_RRR10ovaqreQvrqREXAF_2jcVAF_7VOvaqreRRR
+.weak b__MA7naqebvq10PnzrenOnfrVAF_6PnzrenRAF_12PnzrenGenvgfVF1_RRR10ovaqreQvrqREXAF_2jcVAF_7VOvaqreRRR
 .type b__MA7naqebvq10PnzrenOnfrVAF_6PnzrenRAF_12PnzrenGenvgfVF1_RRR10ovaqreQvrqREXAF_2jcVAF_7VOvaqreRRR,%function
 b__MA7naqebvq10PnzrenOnfrVAF_6PnzrenRAF_12PnzrenGenvgfVF1_RRR10ovaqreQvrqREXAF_2jcVAF_7VOvaqreRRR:
 nop
@@ -3443,7 +3443,7 @@
 b__MA7naqebvq16PnzrenCnenzrgref21CVKRY_SBEZNG_LHI422FCR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_2fcVAF_7FhesnprRRRR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_2fcVAF_7FhesnprRRRR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_2fcVAF_7FhesnprRRRR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_2fcVAF_7FhesnprRRRR7qb_pbclRCiCXiz:
 nop
@@ -3468,7 +3468,7 @@
 b__MA7naqebvq16PnzrenCnenzrgref32XRL_NHGB_RKCBFHER_YBPX_FHCCBEGRQR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_17PnzrenCnenzrgref218BeqrerqXrlrqIrpgbeVAF_7Fgevat8RF3_R4CnveRR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_17PnzrenCnenzrgref218BeqrerqXrlrqIrpgbeVAF_7Fgevat8RF3_R4CnveRR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_17PnzrenCnenzrgref218BeqrerqXrlrqIrpgbeVAF_7Fgevat8RF3_R4CnveRR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_17PnzrenCnenzrgref218BeqrerqXrlrqIrpgbeVAF_7Fgevat8RF3_R4CnveRR16qb_zbir_onpxjneqRCiCXiz:
 nop
@@ -3513,17 +3513,17 @@
 b__MGPA7naqebvq8uneqjner8OaPnzrenR0_AF0_7VPnzrenR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq6IrpgbeVvR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq6IrpgbeVvR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq6IrpgbeVvR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq6IrpgbeVvR10qb_qrfgeblRCiz:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwwRRR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwwRRR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwwRRR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwwRRR8qb_fcyngRCiCXiz:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_7Fgevat8RR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_7Fgevat8RR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_7Fgevat8RR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_7Fgevat8RR7qb_pbclRCiCXiz:
 nop
@@ -3548,7 +3548,7 @@
 b__MA7naqebvq17PnzrenCnenzrgref28frgSybngRCXps:
 nop
 .data
-.globl b__MGPA7naqebvq22OcPnzrenErpbeqvatCebklR0_AF_11OcVagresnprVAF_21VPnzrenErpbeqvatCebklRRR
+.weak b__MGPA7naqebvq22OcPnzrenErpbeqvatCebklR0_AF_11OcVagresnprVAF_21VPnzrenErpbeqvatCebklRRR
 .type b__MGPA7naqebvq22OcPnzrenErpbeqvatCebklR0_AF_11OcVagresnprVAF_21VPnzrenErpbeqvatCebklRRR,%object
 b__MGPA7naqebvq22OcPnzrenErpbeqvatCebklR0_AF_11OcVagresnprVAF_21VPnzrenErpbeqvatCebklRRR:
 .space __SIZEOF_POINTER__
@@ -3593,12 +3593,12 @@
 b__MA7naqebvq17PnzrenCnenzrgref218frgCerivrjScfEnatrRvv:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_2fcVAF_7FhesnprRRRR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_2fcVAF_7FhesnprRRRR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_2fcVAF_7FhesnprRRRR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_2fcVAF_7FhesnprRRRR15qb_zbir_sbejneqRCiCXiz:
 nop
 .text
-.globl b__MAFg3__113__irpgbe_onfrVA7naqebvq8uneqjner7pnzren26cnenzf19BhgchgPbasvthengvbaRAF_9nyybpngbeVF5_RRRQ2Ri
+.weak b__MAFg3__113__irpgbe_onfrVA7naqebvq8uneqjner7pnzren26cnenzf19BhgchgPbasvthengvbaRAF_9nyybpngbeVF5_RRRQ2Ri
 .type b__MAFg3__113__irpgbe_onfrVA7naqebvq8uneqjner7pnzren26cnenzf19BhgchgPbasvthengvbaRAF_9nyybpngbeVF5_RRRQ2Ri,%function
 b__MAFg3__113__irpgbe_onfrVA7naqebvq8uneqjner7pnzren26cnenzf19BhgchgPbasvthengvbaRAF_9nyybpngbeVF5_RRRQ2Ri:
 nop
@@ -3613,7 +3613,7 @@
 b__MA7naqebvq8uneqjner7pnzren218OcPnzrenQrivprHfre12perngrFgernzREXAF1_6cnenzf19BhgchgPbasvthengvbaRCv:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwvRRR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwvRRR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwvRRR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwvRRR15qb_zbir_sbejneqRCiCXiz:
 nop
@@ -3648,12 +3648,12 @@
 b__MAX7naqebvq16PnzrenCnenzrgref3trgRCXp:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwvRRR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwvRRR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwvRRR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwvRRR10qb_qrfgeblRCiz:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwwRRR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwwRRR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwwRRR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwwRRR15qb_zbir_sbejneqRCiCXiz:
 nop
@@ -3683,22 +3683,22 @@
 b__MA7naqebvq16PnzrenCnenzrgref17XRL_JUVGR_ONYNAPRR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIA7naqebvq6IrpgbeVvRR
+.weak b__MGIA7naqebvq6IrpgbeVvRR
 .type b__MGIA7naqebvq6IrpgbeVvRR,%object
 b__MGIA7naqebvq6IrpgbeVvRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_22VTencuvpOhssreCebqhpreRRRAF_9nyybpngbeVF4_RRR21__chfu_onpx_fybj_cnguVEXF4_RRiBG_
+.weak b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_22VTencuvpOhssreCebqhpreRRRAF_9nyybpngbeVF4_RRR21__chfu_onpx_fybj_cnguVEXF4_RRiBG_
 .type b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_22VTencuvpOhssreCebqhpreRRRAF_9nyybpngbeVF4_RRR21__chfu_onpx_fybj_cnguVEXF4_RRiBG_,%function
 b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_22VTencuvpOhssreCebqhpreRRRAF_9nyybpngbeVF4_RRR21__chfu_onpx_fybj_cnguVEXF4_RRiBG_:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_7Fgevat8RR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_7Fgevat8RR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_7Fgevat8RR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_7Fgevat8RR10qb_qrfgeblRCiz:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVwR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVwR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVwR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVwR15qb_zbir_sbejneqRCiCXiz:
 nop
@@ -3733,7 +3733,7 @@
 b__MGPA7naqebvq8uneqjner8OaPnzrenR0_AF_10VVagresnprR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGPA7naqebvq8uneqjner8OcPnzrenR0_AF_11OcVagresnprVAF0_7VPnzrenRRR
+.weak b__MGPA7naqebvq8uneqjner8OcPnzrenR0_AF_11OcVagresnprVAF0_7VPnzrenRRR
 .type b__MGPA7naqebvq8uneqjner8OcPnzrenR0_AF_11OcVagresnprVAF0_7VPnzrenRRR,%object
 b__MGPA7naqebvq8uneqjner8OcPnzrenR0_AF_11OcVagresnprVAF0_7VPnzrenRRR:
 .space __SIZEOF_POINTER__
@@ -3743,17 +3743,17 @@
 b__MA7naqebvq8uneqjner13VPnzrenPyvrag14trgQrsnhygVzcyRi:
 nop
 .text
-.globl b__MAFg3__16irpgbeVyAF_9nyybpngbeVyRRR21__chfu_onpx_fybj_cnguVEXyRRiBG_
+.weak b__MAFg3__16irpgbeVyAF_9nyybpngbeVyRRR21__chfu_onpx_fybj_cnguVEXyRRiBG_
 .type b__MAFg3__16irpgbeVyAF_9nyybpngbeVyRRR21__chfu_onpx_fybj_cnguVEXyRRiBG_,%function
 b__MAFg3__16irpgbeVyAF_9nyybpngbeVyRRR21__chfu_onpx_fybj_cnguVEXyRRiBG_:
 nop
 .data
-.globl b__MGPA7naqebvq8uneqjner14OcPnzrenPyvragR0_AF_11OcVagresnprVAF0_13VPnzrenPyvragRRR
+.weak b__MGPA7naqebvq8uneqjner14OcPnzrenPyvragR0_AF_11OcVagresnprVAF0_13VPnzrenPyvragRRR
 .type b__MGPA7naqebvq8uneqjner14OcPnzrenPyvragR0_AF_11OcVagresnprVAF0_13VPnzrenPyvragRRR,%object
 b__MGPA7naqebvq8uneqjner14OcPnzrenPyvragR0_AF_11OcVagresnprVAF0_13VPnzrenPyvragRRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzA7naqebvq2fcVAF2_19IraqbeGntQrfpevcgbeRRRRRAF_22__habeqrerq_znc_unfureVzF6_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF6_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF6_RRR8__erunfuRz
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzA7naqebvq2fcVAF2_19IraqbeGntQrfpevcgbeRRRRRAF_22__habeqrerq_znc_unfureVzF6_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF6_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF6_RRR8__erunfuRz
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzA7naqebvq2fcVAF2_19IraqbeGntQrfpevcgbeRRRRRAF_22__habeqrerq_znc_unfureVzF6_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF6_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF6_RRR8__erunfuRz,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzA7naqebvq2fcVAF2_19IraqbeGntQrfpevcgbeRRRRRAF_22__habeqrerq_znc_unfureVzF6_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF6_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF6_RRR8__erunfuRz:
 nop
@@ -3783,7 +3783,7 @@
 b__MAX7naqebvq16PnzrenCnenzrgref19trgCerivrjSenzrEngrRi:
 nop
 .data
-.globl b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwwRRRR
+.weak b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwwRRRR
 .type b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwwRRRR,%object
 b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwwRRRR:
 .space __SIZEOF_POINTER__
@@ -3818,7 +3818,7 @@
 b__MA7naqebvq17PnzrenCnenzrgref214frgCvpgherFvmrRvv:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RwRRR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RwRRR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RwRRR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RwRRR15qb_zbir_sbejneqRCiCXiz:
 nop
@@ -3898,7 +3898,7 @@
 b__MGIA7naqebvq8uneqjner13VPnzrenPyvragR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq6IrpgbeVvR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVvR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVvR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVvR16qb_zbir_onpxjneqRCiCXiz:
 nop
@@ -3908,7 +3908,7 @@
 b__MGIA7naqebvq8uneqjner7pnzren224VPnzrenQrivprHfreQrsnhygR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq10PnzrenOnfrVAF_6PnzrenRAF_12PnzrenGenvgfVF1_RRR14abgvslPnyyonpxRvvv
+.weak b__MA7naqebvq10PnzrenOnfrVAF_6PnzrenRAF_12PnzrenGenvgfVF1_RRR14abgvslPnyyonpxRvvv
 .type b__MA7naqebvq10PnzrenOnfrVAF_6PnzrenRAF_12PnzrenGenvgfVF1_RRR14abgvslPnyyonpxRvvv,%function
 b__MA7naqebvq10PnzrenOnfrVAF_6PnzrenRAF_12PnzrenGenvgfVF1_RRR14abgvslPnyyonpxRvvv:
 nop
@@ -3928,12 +3928,12 @@
 b__MA7naqebvq8uneqjner7pnzren218OaPnzrenQrivprHfre10baGenafnpgRwEXAF_6CnepryRCF3_w:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_17PnzrenCnenzrgref218BeqrerqXrlrqIrpgbeVAF_7Fgevat8RF3_R4CnveRR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_17PnzrenCnenzrgref218BeqrerqXrlrqIrpgbeVAF_7Fgevat8RF3_R4CnveRR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_17PnzrenCnenzrgref218BeqrerqXrlrqIrpgbeVAF_7Fgevat8RF3_R4CnveRR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_17PnzrenCnenzrgref218BeqrerqXrlrqIrpgbeVAF_7Fgevat8RF3_R4CnveRR7qb_pbclRCiCXiz:
 nop
 .data
-.globl b__MGPA7naqebvq8uneqjner8OcPnzrenR8_AF_9OcErsOnfrR
+.weak b__MGPA7naqebvq8uneqjner8OcPnzrenR8_AF_9OcErsOnfrR
 .type b__MGPA7naqebvq8uneqjner8OcPnzrenR8_AF_9OcErsOnfrR,%object
 b__MGPA7naqebvq8uneqjner8OcPnzrenR8_AF_9OcErsOnfrR:
 .space __SIZEOF_POINTER__
@@ -3943,12 +3943,12 @@
 b__MGIA7naqebvq8uneqjner20OcPnzrenFreivprCebklR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq10PnzrenOnfrVAF_6PnzrenRAF_12PnzrenGenvgfVF1_RRR10qvfpbaarpgRi
+.weak b__MA7naqebvq10PnzrenOnfrVAF_6PnzrenRAF_12PnzrenGenvgfVF1_RRR10qvfpbaarpgRi
 .type b__MA7naqebvq10PnzrenOnfrVAF_6PnzrenRAF_12PnzrenGenvgfVF1_RRR10qvfpbaarpgRi,%function
 b__MA7naqebvq10PnzrenOnfrVAF_6PnzrenRAF_12PnzrenGenvgfVF1_RRR10qvfpbaarpgRi:
 nop
 .data
-.globl b__MGIA7naqebvq13PncgherErfhygR
+.weak b__MGIA7naqebvq13PncgherErfhygR
 .type b__MGIA7naqebvq13PncgherErfhygR,%object
 b__MGIA7naqebvq13PncgherErfhygR:
 .space __SIZEOF_POINTER__
@@ -4053,7 +4053,7 @@
 b__MGIA7naqebvq21VPnzrenErpbeqvatCebklR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq11OaVagresnprVAF_8uneqjner19VPnzrenFreivprCebklRR10baNfOvaqreRi
+.weak b__MA7naqebvq11OaVagresnprVAF_8uneqjner19VPnzrenFreivprCebklRR10baNfOvaqreRi
 .type b__MA7naqebvq11OaVagresnprVAF_8uneqjner19VPnzrenFreivprCebklRR10baNfOvaqreRi,%function
 b__MA7naqebvq11OaVagresnprVAF_8uneqjner19VPnzrenFreivprCebklRR10baNfOvaqreRi:
 nop
@@ -4073,7 +4073,7 @@
 b__MA7naqebvq16PnzrenCnenzrgref29XRL_ZNK_AHZ_QRGRPGRQ_SNPRF_FJR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq8uneqjner7pnzren24vzcy25CulfvpnyPncgherErfhygVasbRAF_9nyybpngbeVF5_RRR6nffvtaVCF5_RRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF5_AF_15vgrengbe_genvgfVFP_R9ersreraprRRR5inyhrRiR4glcrRFP_FP_
+.weak b__MAFg3__16irpgbeVA7naqebvq8uneqjner7pnzren24vzcy25CulfvpnyPncgherErfhygVasbRAF_9nyybpngbeVF5_RRR6nffvtaVCF5_RRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF5_AF_15vgrengbe_genvgfVFP_R9ersreraprRRR5inyhrRiR4glcrRFP_FP_
 .type b__MAFg3__16irpgbeVA7naqebvq8uneqjner7pnzren24vzcy25CulfvpnyPncgherErfhygVasbRAF_9nyybpngbeVF5_RRR6nffvtaVCF5_RRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF5_AF_15vgrengbe_genvgfVFP_R9ersreraprRRR5inyhrRiR4glcrRFP_FP_,%function
 b__MAFg3__16irpgbeVA7naqebvq8uneqjner7pnzren24vzcy25CulfvpnyPncgherErfhygVasbRAF_9nyybpngbeVF5_RRR6nffvtaVCF5_RRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF5_AF_15vgrengbe_genvgfVFP_R9ersreraprRRR5inyhrRiR4glcrRFP_FP_:
 nop
@@ -4088,7 +4088,7 @@
 b__MA7naqebvq19IraqbeGntQrfpevcgbe23perngrQrfpevcgbeSebzBcfRCX14iraqbe_gnt_bcfEAF_2fcVF0_RR:
 nop
 .data
-.globl b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwvRRRR
+.weak b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwvRRRR
 .type b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwvRRRR,%object
 b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwvRRRR:
 .space __SIZEOF_POINTER__
@@ -4098,7 +4098,7 @@
 b__MGIA7naqebvq8uneqjner7pnzren26cnenzf19IraqbeGntQrfpevcgbeR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq11OaVagresnprVAF_8uneqjner14VPnzrenFreivprRR10baNfOvaqreRi
+.weak b__MA7naqebvq11OaVagresnprVAF_8uneqjner14VPnzrenFreivprRR10baNfOvaqreRi
 .type b__MA7naqebvq11OaVagresnprVAF_8uneqjner14VPnzrenFreivprRR10baNfOvaqreRi,%function
 b__MA7naqebvq11OaVagresnprVAF_8uneqjner14VPnzrenFreivprRR10baNfOvaqreRi:
 nop
@@ -4113,12 +4113,12 @@
 b__MAX7naqebvq8uneqjner7pnzren24vzcy19PncgherErfhygRkgenf13jevgrGbCnepryRCAF_6CnepryR:
 nop
 .data
-.globl b__MGPA7naqebvq30OcPnzrenErpbeqvatCebklYvfgrareR0_AF_29VPnzrenErpbeqvatCebklYvfgrareR
+.weak b__MGPA7naqebvq30OcPnzrenErpbeqvatCebklYvfgrareR0_AF_29VPnzrenErpbeqvatCebklYvfgrareR
 .type b__MGPA7naqebvq30OcPnzrenErpbeqvatCebklYvfgrareR0_AF_29VPnzrenErpbeqvatCebklYvfgrareR,%object
 b__MGPA7naqebvq30OcPnzrenErpbeqvatCebklYvfgrareR0_AF_29VPnzrenErpbeqvatCebklYvfgrareR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGGA7naqebvq10PnzrenOnfrVAF_6PnzrenRAF_12PnzrenGenvgfVF1_RRRR
+.weak b__MGGA7naqebvq10PnzrenOnfrVAF_6PnzrenRAF_12PnzrenGenvgfVF1_RRRR
 .type b__MGGA7naqebvq10PnzrenOnfrVAF_6PnzrenRAF_12PnzrenGenvgfVF1_RRRR,%object
 b__MGGA7naqebvq10PnzrenOnfrVAF_6PnzrenRAF_12PnzrenGenvgfVF1_RRRR:
 .space __SIZEOF_POINTER__
@@ -4163,7 +4163,7 @@
 b__MA7naqebvq8uneqjner7pnzren26cnenzf19BhgchgPbasvthengvbaP1REXAFg3__16irpgbeVAF_2fcVAF_22VTencuvpOhssreCebqhpreRRRAF4_9nyybpngbeVF8_RRRRvEXAF_8Fgevat16Rvvvvo:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwwRRR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwwRRR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwwRRR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwwRRR10qb_qrfgeblRCiz:
 nop
@@ -4188,7 +4188,7 @@
 b__MA7naqebvq8uneqjner7pnzren224VPnzrenQrivprHfreQrsnhyg31vfFrffvbaPbasvthengvbaFhccbegrqREXAF1_6cnenzf20FrffvbaPbasvthengvbaRCo:
 nop
 .text
-.globl b__MA7naqebvq10PnzrenOnfrVAF_6PnzrenRAF_12PnzrenGenvgfVF1_RRRQ1Ri
+.weak b__MA7naqebvq10PnzrenOnfrVAF_6PnzrenRAF_12PnzrenGenvgfVF1_RRRQ1Ri
 .type b__MA7naqebvq10PnzrenOnfrVAF_6PnzrenRAF_12PnzrenGenvgfVF1_RRRQ1Ri,%function
 b__MA7naqebvq10PnzrenOnfrVAF_6PnzrenRAF_12PnzrenGenvgfVF1_RRRQ1Ri:
 nop
@@ -4208,7 +4208,7 @@
 b__MA7naqebvq14PnzrenZrgnqngnQ2Ri:
 nop
 .data
-.globl b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRRR
+.weak b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRRR
 .type b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRRR,%object
 b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRRR:
 .space __SIZEOF_POINTER__
@@ -4223,7 +4223,7 @@
 b__MA7naqebvq16PnzrenCnenzrgref15FPRAR_ZBQR_NHGBR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq11OaVagresnprVAF_8uneqjner13VPnzrenPyvragRR10baNfOvaqreRi
+.weak b__MA7naqebvq11OaVagresnprVAF_8uneqjner13VPnzrenPyvragRR10baNfOvaqreRi
 .type b__MA7naqebvq11OaVagresnprVAF_8uneqjner13VPnzrenPyvragRR10baNfOvaqreRi,%function
 b__MA7naqebvq11OaVagresnprVAF_8uneqjner13VPnzrenPyvragRR10baNfOvaqreRi:
 nop
@@ -4248,7 +4248,7 @@
 b__MA7naqebvq8uneqjner7VPnzren14frgQrsnhygVzcyRAFg3__110havdhr_cgeVF1_AF2_14qrsnhyg_qryrgrVF1_RRRR:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVwR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVwR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVwR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVwR8qb_fcyngRCiCXiz:
 nop
@@ -4258,12 +4258,12 @@
 b__MA7naqebvq8uneqjner7pnzren224VPnzrenQrivprHfreQrsnhyg5syhfuRCy:
 nop
 .text
-.globl b__MGi0_a24_A7naqebvq10PnzrenOnfrVAF_6PnzrenRAF_12PnzrenGenvgfVF1_RRRQ1Ri
+.weak b__MGi0_a24_A7naqebvq10PnzrenOnfrVAF_6PnzrenRAF_12PnzrenGenvgfVF1_RRRQ1Ri
 .type b__MGi0_a24_A7naqebvq10PnzrenOnfrVAF_6PnzrenRAF_12PnzrenGenvgfVF1_RRRQ1Ri,%function
 b__MGi0_a24_A7naqebvq10PnzrenOnfrVAF_6PnzrenRAF_12PnzrenGenvgfVF1_RRRQ1Ri:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR10qb_pbzcnerRCXiF6_
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR10qb_pbzcnerRCXiF6_
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR10qb_pbzcnerRCXiF6_,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR10qb_pbzcnerRCXiF6_:
 nop
@@ -4273,7 +4273,7 @@
 b__MA7naqebvq17PnzrenCnenzrgref219frgCerivrjSenzrEngrRv:
 nop
 .text
-.globl b__MA7naqebvq11OaVagresnprVAF_8uneqjner7pnzren222VPnzrenQrivprPnyyonpxfRR10baNfOvaqreRi
+.weak b__MA7naqebvq11OaVagresnprVAF_8uneqjner7pnzren222VPnzrenQrivprPnyyonpxfRR10baNfOvaqreRi
 .type b__MA7naqebvq11OaVagresnprVAF_8uneqjner7pnzren222VPnzrenQrivprPnyyonpxfRR10baNfOvaqreRi,%function
 b__MA7naqebvq11OaVagresnprVAF_8uneqjner7pnzren222VPnzrenQrivprPnyyonpxfRR10baNfOvaqreRi:
 nop
@@ -4288,7 +4288,7 @@
 b__MA7naqebvq16PnzrenCnenzrgref16XRL_TCF_YNGVGHQRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq10PnzrenOnfrVAF_6PnzrenRAF_12PnzrenGenvgfVF1_RRR6erzbgrRi
+.weak b__MA7naqebvq10PnzrenOnfrVAF_6PnzrenRAF_12PnzrenGenvgfVF1_RRR6erzbgrRi
 .type b__MA7naqebvq10PnzrenOnfrVAF_6PnzrenRAF_12PnzrenGenvgfVF1_RRR6erzbgrRi,%function
 b__MA7naqebvq10PnzrenOnfrVAF_6PnzrenRAF_12PnzrenGenvgfVF1_RRR6erzbgrRi:
 nop
@@ -4383,17 +4383,17 @@
 b__MA7naqebvq16PnzrenCnenzrgref21CVKRY_SBEZNG_LHI420FCR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGGA7naqebvq8uneqjner14OcPnzrenPyvragR
+.weak b__MGGA7naqebvq8uneqjner14OcPnzrenPyvragR
 .type b__MGGA7naqebvq8uneqjner14OcPnzrenPyvragR,%object
 b__MGGA7naqebvq8uneqjner14OcPnzrenPyvragR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq4ivrj7FhesnprRAF_9nyybpngbeVF3_RRR21__chfu_onpx_fybj_cnguVEXF3_RRiBG_
+.weak b__MAFg3__16irpgbeVA7naqebvq4ivrj7FhesnprRAF_9nyybpngbeVF3_RRR21__chfu_onpx_fybj_cnguVEXF3_RRiBG_
 .type b__MAFg3__16irpgbeVA7naqebvq4ivrj7FhesnprRAF_9nyybpngbeVF3_RRR21__chfu_onpx_fybj_cnguVEXF3_RRiBG_,%function
 b__MAFg3__16irpgbeVA7naqebvq4ivrj7FhesnprRAF_9nyybpngbeVF3_RRR21__chfu_onpx_fybj_cnguVEXF3_RRiBG_:
 nop
 .text
-.globl b__MA7naqebvq10PnzrenOnfrVAF_6PnzrenRAF_12PnzrenGenvgfVF1_RRRP1Rv
+.weak b__MA7naqebvq10PnzrenOnfrVAF_6PnzrenRAF_12PnzrenGenvgfVF1_RRRP1Rv
 .type b__MA7naqebvq10PnzrenOnfrVAF_6PnzrenRAF_12PnzrenGenvgfVF1_RRRP1Rv,%function
 b__MA7naqebvq10PnzrenOnfrVAF_6PnzrenRAF_12PnzrenGenvgfVF1_RRRP1Rv:
 nop
@@ -4403,7 +4403,7 @@
 b__MA7naqebvq19IraqbeGntQrfpevcgbe30pyrneTybonyIraqbeGntQrfpevcgbeRi:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR16qb_zbir_onpxjneqRCiCXiz:
 nop
@@ -4423,7 +4423,7 @@
 b__MA7naqebvq8uneqjner7pnzren26cnenzf19BhgchgPbasvthengvbaP1Ri:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq8uneqjner7pnzren26cnenzf19BhgchgPbasvthengvbaRAF_9nyybpngbeVF5_RRR8__nccraqRz
+.weak b__MAFg3__16irpgbeVA7naqebvq8uneqjner7pnzren26cnenzf19BhgchgPbasvthengvbaRAF_9nyybpngbeVF5_RRR8__nccraqRz
 .type b__MAFg3__16irpgbeVA7naqebvq8uneqjner7pnzren26cnenzf19BhgchgPbasvthengvbaRAF_9nyybpngbeVF5_RRR8__nccraqRz,%function
 b__MAFg3__16irpgbeVA7naqebvq8uneqjner7pnzren26cnenzf19BhgchgPbasvthengvbaRAF_9nyybpngbeVF5_RRR8__nccraqRz:
 nop
@@ -4483,7 +4483,7 @@
 b__MAX7naqebvq17PnzrenCnenzrgref214trgCvpgherFvmrRCvF1_:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RCAF_11XrlrqIrpgbeVF2_wRRRRR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RCAF_11XrlrqIrpgbeVF2_wRRRRR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RCAF_11XrlrqIrpgbeVF2_wRRRRR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RCAF_11XrlrqIrpgbeVF2_wRRRRR16qb_zbir_onpxjneqRCiCXiz:
 nop
@@ -4503,17 +4503,17 @@
 b__MA7naqebvq13PncgherErfhygP2REXF0_:
 nop
 .data
-.globl b__MGIA7naqebvq8uneqjner8OcPnzrenR
+.weak b__MGIA7naqebvq8uneqjner8OcPnzrenR
 .type b__MGIA7naqebvq8uneqjner8OcPnzrenR,%object
 b__MGIA7naqebvq8uneqjner8OcPnzrenR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq10PnzrenOnfrVAF_6PnzrenRAF_12PnzrenGenvgfVF1_RRR13trgPnzrenVasbRvCAF_8uneqjner10PnzrenVasbR
+.weak b__MA7naqebvq10PnzrenOnfrVAF_6PnzrenRAF_12PnzrenGenvgfVF1_RRR13trgPnzrenVasbRvCAF_8uneqjner10PnzrenVasbR
 .type b__MA7naqebvq10PnzrenOnfrVAF_6PnzrenRAF_12PnzrenGenvgfVF1_RRR13trgPnzrenVasbRvCAF_8uneqjner10PnzrenVasbR,%function
 b__MA7naqebvq10PnzrenOnfrVAF_6PnzrenRAF_12PnzrenGenvgfVF1_RRR13trgPnzrenVasbRvCAF_8uneqjner10PnzrenVasbR:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwwRRR10qb_pbzcnerRCXiF5_
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwwRRR10qb_pbzcnerRCXiF5_
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwwRRR10qb_pbzcnerRCXiF5_,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwwRRR10qb_pbzcnerRCXiF5_:
 nop
@@ -4593,12 +4593,12 @@
 b__MA7naqebvq8uneqjner7pnzren222VPnzrenQrivprPnyyonpxf10qrfpevcgbeR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGGA7naqebvq22OcPnzrenErpbeqvatCebklR
+.weak b__MGGA7naqebvq22OcPnzrenErpbeqvatCebklR
 .type b__MGGA7naqebvq22OcPnzrenErpbeqvatCebklR,%object
 b__MGGA7naqebvq22OcPnzrenErpbeqvatCebklR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIA7naqebvq6IrpgbeVAF_2fcVAF_7FhesnprRRRRR
+.weak b__MGIA7naqebvq6IrpgbeVAF_2fcVAF_7FhesnprRRRRR
 .type b__MGIA7naqebvq6IrpgbeVAF_2fcVAF_7FhesnprRRRRR,%object
 b__MGIA7naqebvq6IrpgbeVAF_2fcVAF_7FhesnprRRRRR:
 .space __SIZEOF_POINTER__
@@ -4688,12 +4688,12 @@
 b__MGIA7naqebvq8uneqjner8OaPnzrenR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RwRRRR
+.weak b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RwRRRR
 .type b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RwRRRR,%object
 b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RwRRRR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwAF_7Fgevat8RRRRR
+.weak b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwAF_7Fgevat8RRRRR
 .type b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwAF_7Fgevat8RRRRR,%object
 b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwAF_7Fgevat8RRRRR:
 .space __SIZEOF_POINTER__
@@ -4743,7 +4743,7 @@
 b__MA7naqebvq8uneqjner15OcPnzrenFreivpr22vfUvqqraCulfvpnyPnzrenREXAF_8Fgevat16RCo:
 nop
 .text
-.globl b__MA7naqebvq11OaVagresnprVAF_29VPnzrenErpbeqvatCebklYvfgrareRR10baNfOvaqreRi
+.weak b__MA7naqebvq11OaVagresnprVAF_29VPnzrenErpbeqvatCebklYvfgrareRR10baNfOvaqreRi
 .type b__MA7naqebvq11OaVagresnprVAF_29VPnzrenErpbeqvatCebklYvfgrareRR10baNfOvaqreRi,%function
 b__MA7naqebvq11OaVagresnprVAF_29VPnzrenErpbeqvatCebklYvfgrareRR10baNfOvaqreRi:
 nop
@@ -4753,7 +4753,7 @@
 b__MGPA7naqebvq8uneqjner15OaPnzrenFreivprR8_AF_7VOvaqreR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq11OaVagresnprVAF_8uneqjner22VPnzrenFreivprYvfgrareRR10baNfOvaqreRi
+.weak b__MA7naqebvq11OaVagresnprVAF_8uneqjner22VPnzrenFreivprYvfgrareRR10baNfOvaqreRi
 .type b__MA7naqebvq11OaVagresnprVAF_8uneqjner22VPnzrenFreivprYvfgrareRR10baNfOvaqreRi,%function
 b__MA7naqebvq11OaVagresnprVAF_8uneqjner22VPnzrenFreivprYvfgrareRR10baNfOvaqreRi:
 nop
@@ -4763,7 +4763,7 @@
 b__MA7naqebvq16PnzrenCnenzrgref12RSSRPG_FRCVNR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGPA7naqebvq22OcPnzrenErpbeqvatCebklR0_AF_21VPnzrenErpbeqvatCebklR
+.weak b__MGPA7naqebvq22OcPnzrenErpbeqvatCebklR0_AF_21VPnzrenErpbeqvatCebklR
 .type b__MGPA7naqebvq22OcPnzrenErpbeqvatCebklR0_AF_21VPnzrenErpbeqvatCebklR,%object
 b__MGPA7naqebvq22OcPnzrenErpbeqvatCebklR0_AF_21VPnzrenErpbeqvatCebklR:
 .space __SIZEOF_POINTER__
@@ -4838,7 +4838,7 @@
 b__MA7naqebvq17PnzrenCnenzrgref26erzbirRCXp:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwwRRR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwwRRR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwwRRR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwwRRR7qb_pbclRCiCXiz:
 nop
@@ -4853,7 +4853,7 @@
 b__MA7naqebvq29VPnzrenErpbeqvatCebklYvfgrare10qrfpevcgbeR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwvRRR10qb_pbzcnerRCXiF5_
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwvRRR10qb_pbzcnerRCXiF5_
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwvRRR10qb_pbzcnerRCXiF5_,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwvRRR10qb_pbzcnerRCXiF5_:
 nop
@@ -4898,7 +4898,7 @@
 b__MGGA7naqebvq8uneqjner7pnzren224VPnzrenQrivprHfreQrsnhygR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq10PnzrenOnfrVAF_6PnzrenRAF_12PnzrenGenvgfVF1_RRR7pbaarpgRvEXAF_8Fgevat16Rvv
+.weak b__MA7naqebvq10PnzrenOnfrVAF_6PnzrenRAF_12PnzrenGenvgfVF1_RRR7pbaarpgRvEXAF_8Fgevat16Rvv
 .type b__MA7naqebvq10PnzrenOnfrVAF_6PnzrenRAF_12PnzrenGenvgfVF1_RRR7pbaarpgRvEXAF_8Fgevat16Rvv,%function
 b__MA7naqebvq10PnzrenOnfrVAF_6PnzrenRAF_12PnzrenGenvgfVF1_RRR7pbaarpgRvEXAF_8Fgevat16Rvv:
 nop
@@ -4928,7 +4928,7 @@
 b__MA7naqebvq16PnzrenCnenzrgref15XRL_SBPHF_NERNFR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIA7naqebvq30OcPnzrenErpbeqvatCebklYvfgrareR
+.weak b__MGIA7naqebvq30OcPnzrenErpbeqvatCebklYvfgrareR
 .type b__MGIA7naqebvq30OcPnzrenErpbeqvatCebklYvfgrareR,%object
 b__MGIA7naqebvq30OcPnzrenErpbeqvatCebklYvfgrareR:
 .space __SIZEOF_POINTER__
@@ -4953,12 +4953,12 @@
 b__MA7naqebvq8uneqjner7pnzren218OcPnzrenQrivprHfre12qryrgrFgernzRv:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR8qb_fcyngRCiCXiz:
 nop
 .text
-.globl b__MAFg3__113__irpgbe_onfrVA7naqebvq4ivrj7FhesnprRAF_9nyybpngbeVF3_RRRQ2Ri
+.weak b__MAFg3__113__irpgbe_onfrVA7naqebvq4ivrj7FhesnprRAF_9nyybpngbeVF3_RRRQ2Ri
 .type b__MAFg3__113__irpgbe_onfrVA7naqebvq4ivrj7FhesnprRAF_9nyybpngbeVF3_RRRQ2Ri,%function
 b__MAFg3__113__irpgbe_onfrVA7naqebvq4ivrj7FhesnprRAF_9nyybpngbeVF3_RRRQ2Ri:
 nop
diff --git a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_070.S b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_070.S
index 7a8310d..ddfc3d4 100644
--- a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_070.S
+++ b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_070.S
@@ -2299,16 +2299,14 @@
 DATA_WORD(local_label)
 .space (__SIZEOF_POINTER__ * 2)
 DATA_WORD(local_label)
-DATA_WORD(pread64)
-.space (__SIZEOF_POINTER__ * 1)
+.space (__SIZEOF_POINTER__ * 2)
 DATA_WORD(local_label)
 DATA_WORD(write)
 .space (__SIZEOF_POINTER__ * 1)
 DATA_WORD(local_label)
 .space (__SIZEOF_POINTER__ * 2)
 DATA_WORD(local_label)
-DATA_WORD(pwrite64)
-.space (__SIZEOF_POINTER__ * 1)
+.space (__SIZEOF_POINTER__ * 2)
 DATA_WORD(local_label)
 DATA_WORD(fchmod)
 .space (__SIZEOF_POINTER__ * 1)
diff --git a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_073.S b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_073.S
index 9ad64a4..7cb6dc1 100644
--- a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_073.S
+++ b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_073.S
@@ -83,7 +83,7 @@
 b_ixTrgCulfvpnyQrivprSrngherf2:
 nop
 .data
-.globl b__MGPAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_13onfvp_bfgernzVpF2_RR
+.weak b__MGPAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_13onfvp_bfgernzVpF2_RR
 .type b__MGPAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_13onfvp_bfgernzVpF2_RR,%object
 b__MGPAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_13onfvp_bfgernzVpF2_RR:
 .space __SIZEOF_POINTER__
@@ -243,12 +243,12 @@
 b_ixHcqngrQrfpevcgbeFrgJvguGrzcyngr:
 nop
 .data
-.globl b__MGGAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
+.weak b__MGGAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
 .type b__MGGAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR,%object
 b__MGGAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGGAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
+.weak b__MGGAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
 .type b__MGGAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR,%object
 b__MGGAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR:
 .space __SIZEOF_POINTER__
@@ -318,7 +318,7 @@
 b_ixTrgCulfvpnyQrivprFhesnprFhccbegXUE:
 nop
 .data
-.globl b__MGIAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
+.weak b__MGIAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
 .type b__MGIAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR,%object
 b__MGIAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR:
 .space __SIZEOF_POINTER__
@@ -558,7 +558,7 @@
 b_ixGevzPbzznaqCbby:
 nop
 .data
-.globl b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR16_AF_13onfvp_bfgernzVpF2_RR
+.weak b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR16_AF_13onfvp_bfgernzVpF2_RR
 .type b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR16_AF_13onfvp_bfgernzVpF2_RR,%object
 b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR16_AF_13onfvp_bfgernzVpF2_RR:
 .space __SIZEOF_POINTER__
@@ -578,7 +578,7 @@
 b_ixTrgQrivprZrzbelPbzzvgzrag:
 nop
 .data
-.globl b__MGIAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
+.weak b__MGIAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
 .type b__MGIAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR,%object
 b__MGIAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR:
 .space __SIZEOF_POINTER__
@@ -948,17 +948,17 @@
 b_ixQrfgeblQrfpevcgbeHcqngrGrzcyngr:
 nop
 .data
-.globl b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_13onfvp_vfgernzVpF2_RR
+.weak b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_13onfvp_vfgernzVpF2_RR
 .type b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_13onfvp_vfgernzVpF2_RR,%object
 b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_13onfvp_vfgernzVpF2_RR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_14onfvp_vbfgernzVpF2_RR
+.weak b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_14onfvp_vbfgernzVpF2_RR
 .type b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_14onfvp_vbfgernzVpF2_RR,%object
 b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_14onfvp_vbfgernzVpF2_RR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
+.weak b__MGIAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
 .type b__MGIAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR,%object
 b__MGIAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR:
 .space __SIZEOF_POINTER__
diff --git a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_074.S b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_074.S
index 340a9cf..fe67fa5 100644
--- a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_074.S
+++ b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_074.S
@@ -3,7 +3,7 @@
 .data
 .p2align 4
 .data
-.globl b__MGI13CebprffJevgre
+.weak b__MGI13CebprffJevgre
 .type b__MGI13CebprffJevgre,%object
 b__MGI13CebprffJevgre:
 .space __SIZEOF_POINTER__
@@ -13,7 +13,7 @@
 b__MAX13ZnccrqMvcSvyr17TrgSvyrQrfpevcgbeRi:
 nop
 .data
-.globl b__MGI11RagelErnqre
+.weak b__MGI11RagelErnqre
 .type b__MGI11RagelErnqre,%object
 b__MGI11RagelErnqre:
 .space __SIZEOF_POINTER__
@@ -78,7 +78,7 @@
 b__MA11mvc_nepuvir6JevgreQ2Ri:
 nop
 .text
-.globl b__MAFg3__124__chg_punenpgre_frdhraprVpAF_11pune_genvgfVpRRRREAF_13onfvp_bfgernzVG_G0_RRF7_CXF4_z
+.weak b__MAFg3__124__chg_punenpgre_frdhraprVpAF_11pune_genvgfVpRRRREAF_13onfvp_bfgernzVG_G0_RRF7_CXF4_z
 .type b__MAFg3__124__chg_punenpgre_frdhraprVpAF_11pune_genvgfVpRRRREAF_13onfvp_bfgernzVG_G0_RRF7_CXF4_z,%function
 b__MAFg3__124__chg_punenpgre_frdhraprVpAF_11pune_genvgfVpRRRREAF_13onfvp_bfgernzVG_G0_RRF7_CXF4_z:
 nop
@@ -143,7 +143,7 @@
 b__MA10MvcNepuvirP1Rvo:
 nop
 .text
-.globl b__MAFg3__16irpgbeVuAF_9nyybpngbeVuRRRP2Rz
+.weak b__MAFg3__16irpgbeVuAF_9nyybpngbeVuRRRP2Rz
 .type b__MAFg3__16irpgbeVuAF_9nyybpngbeVuRRRP2Rz,%function
 b__MAFg3__16irpgbeVuAF_9nyybpngbeVuRRRP2Rz:
 nop
@@ -183,7 +183,7 @@
 b__M12PybfrNepuvirC10MvcNepuvir:
 nop
 .text
-.globl b__MAFg3__16irpgbeVuAF_9nyybpngbeVuRRR8__nccraqRz
+.weak b__MAFg3__16irpgbeVuAF_9nyybpngbeVuRRR8__nccraqRz
 .type b__MAFg3__16irpgbeVuAF_9nyybpngbeVuRRR8__nccraqRz,%function
 b__MAFg3__16irpgbeVuAF_9nyybpngbeVuRRR8__nccraqRz:
 nop
@@ -258,7 +258,7 @@
 b__MAX8MvcRagel19TrgZbqvsvpngvbaGvzrRi:
 nop
 .data
-.globl b__MGI10SvyrJevgre
+.weak b__MGI10SvyrJevgre
 .type b__MGI10SvyrJevgre,%object
 b__MGI10SvyrJevgre:
 .space __SIZEOF_POINTER__
@@ -328,7 +328,7 @@
 b__MA9MvcJevgrenFRBF_:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA9MvcJevgre9SvyrRagelRAF_9nyybpngbeVF2_RRR24__rzcynpr_onpx_fybj_cnguVWF2_RRRiQcBG_
+.weak b__MAFg3__16irpgbeVA9MvcJevgre9SvyrRagelRAF_9nyybpngbeVF2_RRR24__rzcynpr_onpx_fybj_cnguVWF2_RRRiQcBG_
 .type b__MAFg3__16irpgbeVA9MvcJevgre9SvyrRagelRAF_9nyybpngbeVF2_RRR24__rzcynpr_onpx_fybj_cnguVWF2_RRRiQcBG_,%function
 b__MAFg3__16irpgbeVA9MvcJevgre9SvyrRagelRAF_9nyybpngbeVF2_RRR24__rzcynpr_onpx_fybj_cnguVWF2_RRRiQcBG_:
 nop
@@ -393,7 +393,7 @@
 b__MA11mvc_nepuvir7VasyngrREXAF_6ErnqreRwwCAF_6JevgreRCz:
 nop
 .data
-.globl b__MGI12ZrzbelJevgre
+.weak b__MGI12ZrzbelJevgre
 .type b__MGI12ZrzbelJevgre,%object
 b__MGI12ZrzbelJevgre:
 .space __SIZEOF_POINTER__
@@ -413,7 +413,7 @@
 b__MA9MvcJevgre11UnaqyrReebeRv:
 nop
 .text
-.globl b__MAFg3__16irpgbeVpAF_9nyybpngbeVpRRR6erfvmrRzEXp
+.weak b__MAFg3__16irpgbeVpAF_9nyybpngbeVpRRR6erfvmrRzEXp
 .type b__MAFg3__16irpgbeVpAF_9nyybpngbeVpRRR6erfvmrRzEXp,%function
 b__MAFg3__16irpgbeVpAF_9nyybpngbeVpRRR6erfvmrRzEXp:
 nop
@@ -438,7 +438,7 @@
 b__MA9MvcJevgre10JevgrOlgrfRCXiz:
 nop
 .text
-.globl b__MAFg3__16irpgbeVpAF_9nyybpngbeVpRRR8__nccraqRzEXp
+.weak b__MAFg3__16irpgbeVpAF_9nyybpngbeVpRRR8__nccraqRzEXp
 .type b__MAFg3__16irpgbeVpAF_9nyybpngbeVpRRR8__nccraqRzEXp,%function
 b__MAFg3__16irpgbeVpAF_9nyybpngbeVpRRR8__nccraqRzEXp:
 nop
@@ -460,7 +460,6 @@
 CALL(__stack_chk_fail)
 CALL(open)
 CALL(strerror)
-CALL(lseek64)
 CALL(b__MA10MvcNepuvirQ2Ri)
 CALL(memcpy)
 CALL(b__MAXFg3__121__onfvp_fgevat_pbzzbaVYo1RR20__guebj_yratgu_reebeRi)
diff --git a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_078.S b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_078.S
index 611835f..6e2b208 100644
--- a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_078.S
+++ b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_078.S
@@ -3,12 +3,12 @@
 .data
 .p2align 4
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_2jcVAF_12VZrqvnFbheprRRRR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_2jcVAF_12VZrqvnFbheprRRRR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_2jcVAF_12VZrqvnFbheprRRRR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_2jcVAF_12VZrqvnFbheprRRRR16qb_zbir_onpxjneqRCiCXiz:
 nop
 .data
-.globl b__MGPA7naqebvq21OcErzbgrQvfcynlPyvragR0_AF_11OcVagresnprVAF_20VErzbgrQvfcynlPyvragRRR
+.weak b__MGPA7naqebvq21OcErzbgrQvfcynlPyvragR0_AF_11OcVagresnprVAF_20VErzbgrQvfcynlPyvragRRR
 .type b__MGPA7naqebvq21OcErzbgrQvfcynlPyvragR0_AF_11OcVagresnprVAF_20VErzbgrQvfcynlPyvragRRR,%object
 b__MGPA7naqebvq21OcErzbgrQvfcynlPyvragR0_AF_11OcVagresnprVAF_20VErzbgrQvfcynlPyvragRRR:
 .space __SIZEOF_POINTER__
@@ -18,7 +18,7 @@
 b__MA7naqebvq13ZrqvnCebsvyrf19fgnegRyrzragUnaqyreRCiCXpCF3_:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVCAF_13ZrqvnCebsvyrf15NhqvbQrpbqrePncRR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq6IrpgbeVCAF_13ZrqvnCebsvyrf15NhqvbQrpbqrePncRR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq6IrpgbeVCAF_13ZrqvnCebsvyrf15NhqvbQrpbqrePncRR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq6IrpgbeVCAF_13ZrqvnCebsvyrf15NhqvbQrpbqrePncRR10qb_qrfgeblRCiz:
 nop
@@ -33,7 +33,7 @@
 b__MGIA7naqebvq13ZrqvnErpbeqreR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_13ivqrb_rapbqreRR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_13ivqrb_rapbqreRR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_13ivqrb_rapbqreRR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_13ivqrb_rapbqreRR15qb_zbir_sbejneqRCiCXiz:
 nop
@@ -43,7 +43,7 @@
 b__MA7naqebvq11ZrqvnCynlre20trgIbyhzrFuncreFgngrRv:
 nop
 .text
-.globl b__MA7naqebvq11OaVagresnprVAF_22VZrqvnRkgenpgbeFreivprRR10baNfOvaqreRi
+.weak b__MA7naqebvq11OaVagresnprVAF_22VZrqvnRkgenpgbeFreivprRR10baNfOvaqreRi
 .type b__MA7naqebvq11OaVagresnprVAF_22VZrqvnRkgenpgbeFreivprRR10baNfOvaqreRi,%function
 b__MA7naqebvq11OaVagresnprVAF_22VZrqvnRkgenpgbeFreivprRR10baNfOvaqreRi:
 nop
@@ -78,12 +78,12 @@
 b__MA7naqebvq11ZrqvnCynlre17frgNhqvbFrffvbaVqR15nhqvb_frffvba_g:
 nop
 .data
-.globl b__MGIA7naqebvq6IrpgbeVAF_7Fgevat8RRR
+.weak b__MGIA7naqebvq6IrpgbeVAF_7Fgevat8RRR
 .type b__MGIA7naqebvq6IrpgbeVAF_7Fgevat8RRR,%object
 b__MGIA7naqebvq6IrpgbeVAF_7Fgevat8RRR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGGA7naqebvq23OcZrqvnRkgenpgbeFreivprR
+.weak b__MGGA7naqebvq23OcZrqvnRkgenpgbeFreivprR
 .type b__MGGA7naqebvq23OcZrqvnRkgenpgbeFreivprR,%object
 b__MGGA7naqebvq23OcZrqvnRkgenpgbeFreivprR:
 .space __SIZEOF_POINTER__
@@ -93,7 +93,7 @@
 b__MGPA7naqebvq15OaZrqvnErpbeqreR8_AF_7VOvaqreR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq6IrpgbeVCAF_13ZrqvnCebsvyrf15NhqvbQrpbqrePncRR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVCAF_13ZrqvnCebsvyrf15NhqvbQrpbqrePncRR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVCAF_13ZrqvnCebsvyrf15NhqvbQrpbqrePncRR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVCAF_13ZrqvnCebsvyrf15NhqvbQrpbqrePncRR7qb_pbclRCiCXiz:
 nop
@@ -108,12 +108,12 @@
 b__MA7naqebvq19VZrqvnQrnguAbgvsvre19erzbirBovgErpvcvragREXAF_2jcVF0_RR:
 nop
 .data
-.globl b__MGPA7naqebvq16OcZrqvnRkgenpgbeR0_AF_10VVagresnprR
+.weak b__MGPA7naqebvq16OcZrqvnRkgenpgbeR0_AF_10VVagresnprR
 .type b__MGPA7naqebvq16OcZrqvnRkgenpgbeR0_AF_10VVagresnprR,%object
 b__MGPA7naqebvq16OcZrqvnRkgenpgbeR0_AF_10VVagresnprR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR15qb_zbir_sbejneqRCiCXiz:
 nop
@@ -138,7 +138,7 @@
 b__MA7naqebvq21OaErzbgrQvfcynlPyvrag10baGenafnpgRwEXAF_6CnepryRCF1_w:
 nop
 .text
-.globl b__MA7naqebvq11OaVagresnprVAF_19VZrqvnCynlreFreivprRR10baNfOvaqreRi
+.weak b__MA7naqebvq11OaVagresnprVAF_19VZrqvnCynlreFreivprRR10baNfOvaqreRi
 .type b__MA7naqebvq11OaVagresnprVAF_19VZrqvnCynlreFreivprRR10baNfOvaqreRi,%function
 b__MA7naqebvq11OaVagresnprVAF_19VZrqvnCynlreFreivprRR10baNfOvaqreRi:
 nop
@@ -168,17 +168,17 @@
 b__MGGA7naqebvq20VZrqvnUGGCPbaarpgvbaR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_2jcVAF_12VZrqvnFbheprRRRR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_2jcVAF_12VZrqvnFbheprRRRR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_2jcVAF_12VZrqvnFbheprRRRR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_2jcVAF_12VZrqvnFbheprRRRR8qb_fcyngRCiCXiz:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVCAF_13ZrqvnCebsvyrf15IvqrbRapbqrePncRR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq6IrpgbeVCAF_13ZrqvnCebsvyrf15IvqrbRapbqrePncRR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq6IrpgbeVCAF_13ZrqvnCebsvyrf15IvqrbRapbqrePncRR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq6IrpgbeVCAF_13ZrqvnCebsvyrf15IvqrbRapbqrePncRR10qb_qrfgeblRCiz:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_7Fgevat8RR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_7Fgevat8RR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_7Fgevat8RR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_7Fgevat8RR8qb_fcyngRCiCXiz:
 nop
@@ -188,12 +188,12 @@
 b__MAX7naqebvq22VZrqvnRkgenpgbeFreivpr22trgVagresnprQrfpevcgbeRi:
 nop
 .data
-.globl b__MGIA7naqebvq23OcErfbheprZnantrePyvragR
+.weak b__MGIA7naqebvq23OcErfbheprZnantrePyvragR
 .type b__MGIA7naqebvq23OcErfbheprZnantrePyvragR,%object
 b__MGIA7naqebvq23OcErfbheprZnantrePyvragR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGPA7naqebvq16OcFgernzYvfgrareR0_AF_11OcVagresnprVAF_15VFgernzYvfgrareRRR
+.weak b__MGPA7naqebvq16OcFgernzYvfgrareR0_AF_11OcVagresnprVAF_15VFgernzYvfgrareRRR
 .type b__MGPA7naqebvq16OcFgernzYvfgrareR0_AF_11OcVagresnprVAF_15VFgernzYvfgrareRRR,%object
 b__MGPA7naqebvq16OcFgernzYvfgrareR0_AF_11OcVagresnprVAF_15VFgernzYvfgrareRRR:
 .space __SIZEOF_POINTER__
@@ -208,17 +208,17 @@
 b__MA7naqebvq11ZrqvnCynlre18trgPheeragCbfvgvbaRCv:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVCA7naqebvq7VZrzbelRAF_4cnveVAF2_2fcVF3_RRzRRRRAF_19__znc_inyhr_pbzcnerVF4_F9_AF_4yrffVF4_RRYo1RRRAF_9nyybpngbeVF9_RRR21__rzcynpr_havdhr_vzcyVWEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWBF4_RRRAFY_VWEXF7_EzRRRRRRAF5_VAF_15__gerr_vgrengbeVF9_CAF_11__gerr_abqrVF9_CiRRyRRoRRQcBG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVCA7naqebvq7VZrzbelRAF_4cnveVAF2_2fcVF3_RRzRRRRAF_19__znc_inyhr_pbzcnerVF4_F9_AF_4yrffVF4_RRYo1RRRAF_9nyybpngbeVF9_RRR21__rzcynpr_havdhr_vzcyVWEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWBF4_RRRAFY_VWEXF7_EzRRRRRRAF5_VAF_15__gerr_vgrengbeVF9_CAF_11__gerr_abqrVF9_CiRRyRRoRRQcBG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVCA7naqebvq7VZrzbelRAF_4cnveVAF2_2fcVF3_RRzRRRRAF_19__znc_inyhr_pbzcnerVF4_F9_AF_4yrffVF4_RRYo1RRRAF_9nyybpngbeVF9_RRR21__rzcynpr_havdhr_vzcyVWEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWBF4_RRRAFY_VWEXF7_EzRRRRRRAF5_VAF_15__gerr_vgrengbeVF9_CAF_11__gerr_abqrVF9_CiRRyRRoRRQcBG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVCA7naqebvq7VZrzbelRAF_4cnveVAF2_2fcVF3_RRzRRRRAF_19__znc_inyhr_pbzcnerVF4_F9_AF_4yrffVF4_RRYo1RRRAF_9nyybpngbeVF9_RRR21__rzcynpr_havdhr_vzcyVWEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWBF4_RRRAFY_VWEXF7_EzRRRRRRAF5_VAF_15__gerr_vgrengbeVF9_CAF_11__gerr_abqrVF9_CiRRyRRoRRQcBG_:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVzA7naqebvq2fcVAF2_7VZrzbelRRRRRAF_19__znc_inyhr_pbzcnerVzF6_AF_4yrffVzRRYo1RRRAF_9nyybpngbeVF6_RRR7qrfgeblRCAF_11__gerr_abqrVF6_CiRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVzA7naqebvq2fcVAF2_7VZrzbelRRRRRAF_19__znc_inyhr_pbzcnerVzF6_AF_4yrffVzRRYo1RRRAF_9nyybpngbeVF6_RRR7qrfgeblRCAF_11__gerr_abqrVF6_CiRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVzA7naqebvq2fcVAF2_7VZrzbelRRRRRAF_19__znc_inyhr_pbzcnerVzF6_AF_4yrffVzRRYo1RRRAF_9nyybpngbeVF6_RRR7qrfgeblRCAF_11__gerr_abqrVF6_CiRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVzA7naqebvq2fcVAF2_7VZrzbelRRRRRAF_19__znc_inyhr_pbzcnerVzF6_AF_4yrffVzRRYo1RRRAF_9nyybpngbeVF6_RRR7qrfgeblRCAF_11__gerr_abqrVF6_CiRR:
 nop
 .data
-.globl b__MGPA7naqebvq20OcZrqvnCynlreFreivprR8_AF_9OcErsOnfrR
+.weak b__MGPA7naqebvq20OcZrqvnCynlreFreivprR8_AF_9OcErsOnfrR
 .type b__MGPA7naqebvq20OcZrqvnCynlreFreivprR8_AF_9OcErsOnfrR,%object
 b__MGPA7naqebvq20OcZrqvnCynlreFreivprR8_AF_9OcErsOnfrR:
 .space __SIZEOF_POINTER__
@@ -233,12 +233,12 @@
 b__MA7naqebvq13ZrqvnCebsvyrf26perngrQrsnhygIvqrbQrpbqrefRCF0_:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVCAF_13ZrqvnCebsvyrf15NhqvbQrpbqrePncRR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq6IrpgbeVCAF_13ZrqvnCebsvyrf15NhqvbQrpbqrePncRR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq6IrpgbeVCAF_13ZrqvnCebsvyrf15NhqvbQrpbqrePncRR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq6IrpgbeVCAF_13ZrqvnCebsvyrf15NhqvbQrpbqrePncRR12qb_pbafgehpgRCiz:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_13nhqvb_qrpbqreRR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq6IrpgbeVAF_13nhqvb_qrpbqreRR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq6IrpgbeVAF_13nhqvb_qrpbqreRR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq6IrpgbeVAF_13nhqvb_qrpbqreRR12qb_pbafgehpgRCiz:
 nop
@@ -263,12 +263,12 @@
 b__MA7naqebvq14VZrqvnErpbeqreQ2Ri:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVsR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVsR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVsR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVsR16qb_zbir_onpxjneqRCiCXiz:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_19ZrqvnErfbheprCbyvplRR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq6IrpgbeVAF_19ZrqvnErfbheprCbyvplRR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq6IrpgbeVAF_19ZrqvnErfbheprCbyvplRR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq6IrpgbeVAF_19ZrqvnErfbheprCbyvplRR12qb_pbafgehpgRCiz:
 nop
@@ -283,7 +283,7 @@
 b__MAX7naqebvq13ZrqvnCebsvyrf29trgVzntrRapbqvatDhnyvglYriryfRv:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_13nhqvb_rapbqreRR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_13nhqvb_rapbqreRR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_13nhqvb_rapbqreRR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_13nhqvb_rapbqreRR15qb_zbir_sbejneqRCiCXiz:
 nop
@@ -298,7 +298,7 @@
 b__MA7naqebvq17VZrqvnUGGCFreivpr12qrsnhyg_vzcyR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq6IrpgbeVvR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVvR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVvR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVvR15qb_zbir_sbejneqRCiCXiz:
 nop
@@ -388,7 +388,7 @@
 b__MGGA7naqebvq14VErzbgrQvfcynlR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGPA7naqebvq23OcErfbheprZnantrePyvragR0_AF_10VVagresnprR
+.weak b__MGPA7naqebvq23OcErfbheprZnantrePyvragR0_AF_10VVagresnprR
 .type b__MGPA7naqebvq23OcErfbheprZnantrePyvragR0_AF_10VVagresnprR,%object
 b__MGPA7naqebvq23OcErfbheprZnantrePyvragR0_AF_10VVagresnprR:
 .space __SIZEOF_POINTER__
@@ -453,12 +453,12 @@
 b__MAX7naqebvq12VZrqvnCynlre22trgVagresnprQrfpevcgbeRi:
 nop
 .data
-.globl b__MGPA7naqebvq13OcZrqvnCynlreR0_AF_10VVagresnprR
+.weak b__MGPA7naqebvq13OcZrqvnCynlreR0_AF_10VVagresnprR
 .type b__MGPA7naqebvq13OcZrqvnCynlreR0_AF_10VVagresnprR,%object
 b__MGPA7naqebvq13OcZrqvnCynlreR0_AF_10VVagresnprR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
+.weak b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
 .type b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_,%function
 b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_:
 nop
@@ -478,17 +478,17 @@
 b__MA7naqebvq13VFgernzFbhepr14frgQrsnhygVzcyRAFg3__110havdhr_cgeVF0_AF1_14qrsnhyg_qryrgrVF0_RRRR:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_13nhqvb_qrpbqreRR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_13nhqvb_qrpbqreRR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_13nhqvb_qrpbqreRR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_13nhqvb_qrpbqreRR16qb_zbir_onpxjneqRCiCXiz:
 nop
 .text
-.globl b__MAX7naqebvq6Cnepry20ernqCneprynoyrIrpgbeVAF_5zrqvn14ZvpebcubarVasbRRRvCAFg3__16irpgbeVG_AF4_9nyybpngbeVF6_RRRR
+.weak b__MAX7naqebvq6Cnepry20ernqCneprynoyrIrpgbeVAF_5zrqvn14ZvpebcubarVasbRRRvCAFg3__16irpgbeVG_AF4_9nyybpngbeVF6_RRRR
 .type b__MAX7naqebvq6Cnepry20ernqCneprynoyrIrpgbeVAF_5zrqvn14ZvpebcubarVasbRRRvCAFg3__16irpgbeVG_AF4_9nyybpngbeVF6_RRRR,%function
 b__MAX7naqebvq6Cnepry20ernqCneprynoyrIrpgbeVAF_5zrqvn14ZvpebcubarVasbRRRvCAFg3__16irpgbeVG_AF4_9nyybpngbeVF6_RRRR:
 nop
 .data
-.globl b__MGIA7naqebvq6IrpgbeVCAF_13ZrqvnCebsvyrf15NhqvbQrpbqrePncRRR
+.weak b__MGIA7naqebvq6IrpgbeVCAF_13ZrqvnCebsvyrf15NhqvbQrpbqrePncRRR
 .type b__MGIA7naqebvq6IrpgbeVCAF_13ZrqvnCebsvyrf15NhqvbQrpbqrePncRRR,%object
 b__MGIA7naqebvq6IrpgbeVCAF_13ZrqvnCebsvyrf15NhqvbQrpbqrePncRRR:
 .space __SIZEOF_POINTER__
@@ -548,7 +548,7 @@
 b__MA7naqebvq19VZrqvnCynlreFreivpr14frgQrsnhygVzcyRAFg3__110havdhr_cgeVF0_AF1_14qrsnhyg_qryrgrVF0_RRRR:
 nop
 .data
-.globl b__MGIA7naqebvq21OcErzbgrQvfcynlPyvragR
+.weak b__MGIA7naqebvq21OcErzbgrQvfcynlPyvragR
 .type b__MGIA7naqebvq21OcErzbgrQvfcynlPyvragR,%object
 b__MGIA7naqebvq21OcErzbgrQvfcynlPyvragR:
 .space __SIZEOF_POINTER__
@@ -568,22 +568,22 @@
 b__MA7naqebvq13ZrqvnErfbheprP1RAF0_4GlcrRAF0_7FhoGlcrRz:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVCX13HPunefrgZngpuR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVCX13HPunefrgZngpuR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVCX13HPunefrgZngpuR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVCX13HPunefrgZngpuR16qb_zbir_onpxjneqRCiCXiz:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVCAF_13ZrqvnCebsvyrf26VzntrRapbqvatDhnyvglYriryfRR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVCAF_13ZrqvnCebsvyrf26VzntrRapbqvatDhnyvglYriryfRR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVCAF_13ZrqvnCebsvyrf26VzntrRapbqvatDhnyvglYriryfRR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVCAF_13ZrqvnCebsvyrf26VzntrRapbqvatDhnyvglYriryfRR16qb_zbir_onpxjneqRCiCXiz:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF0_VsRRR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF0_VsRRR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF0_VsRRR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF0_VsRRR7qb_pbclRCiCXiz:
 nop
 .text
-.globl b__MA7naqebvq11OaVagresnprVAF_20VErzbgrQvfcynlPyvragRR10baNfOvaqreRi
+.weak b__MA7naqebvq11OaVagresnprVAF_20VErzbgrQvfcynlPyvragRR10baNfOvaqreRi
 .type b__MA7naqebvq11OaVagresnprVAF_20VErzbgrQvfcynlPyvragRR10baNfOvaqreRi,%function
 b__MA7naqebvq11OaVagresnprVAF_20VErzbgrQvfcynlPyvragRR10baNfOvaqreRi:
 nop
@@ -598,7 +598,7 @@
 b__MA7naqebvq13ZrqvnCebsvyrf20fIvqrbQrpbqreAnzrZncR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_2jcVAF_12VZrqvnFbheprRRRR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_2jcVAF_12VZrqvnFbheprRRRR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_2jcVAF_12VZrqvnFbheprRRRR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_2jcVAF_12VZrqvnFbheprRRRR15qb_zbir_sbejneqRCiCXiz:
 nop
@@ -618,7 +618,7 @@
 b__MA7naqebvq12ZrqvnFpnaare9frgYbpnyrRCXp:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_19ZrqvnErfbheprCbyvplRR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_19ZrqvnErfbheprCbyvplRR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_19ZrqvnErfbheprCbyvplRR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_19ZrqvnErfbheprCbyvplRR16qb_zbir_onpxjneqRCiCXiz:
 nop
@@ -633,12 +633,12 @@
 b__MA7naqebvq11ZrqvnCynlre11frgYvfgrareREXAF_2fcVAF_19ZrqvnCynlreYvfgrareRRR:
 nop
 .data
-.globl b__MGIA7naqebvq20OcZrqvnCynlreFreivprR
+.weak b__MGIA7naqebvq20OcZrqvnCynlreFreivprR
 .type b__MGIA7naqebvq20OcZrqvnCynlreFreivprR,%object
 b__MGIA7naqebvq20OcZrqvnCynlreFreivprR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIA7naqebvq6IrpgbeVCAF_13ZrqvnCebsvyrf15IvqrbRapbqrePncRRR
+.weak b__MGIA7naqebvq6IrpgbeVCAF_13ZrqvnCebsvyrf15IvqrbRapbqrePncRRR
 .type b__MGIA7naqebvq6IrpgbeVCAF_13ZrqvnCebsvyrf15IvqrbRapbqrePncRRR,%object
 b__MGIA7naqebvq6IrpgbeVCAF_13ZrqvnCebsvyrf15IvqrbRapbqrePncRRR:
 .space __SIZEOF_POINTER__
@@ -653,12 +653,12 @@
 b__MGGA7naqebvq13OaZrqvnCynlreR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF0_VsRRR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF0_VsRRR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF0_VsRRR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF0_VsRRR16qb_zbir_onpxjneqRCiCXiz:
 nop
 .data
-.globl b__MGPA7naqebvq14OcFgernzFbheprR8_AF_9OcErsOnfrR
+.weak b__MGPA7naqebvq14OcFgernzFbheprR8_AF_9OcErsOnfrR
 .type b__MGPA7naqebvq14OcFgernzFbheprR8_AF_9OcErsOnfrR,%object
 b__MGPA7naqebvq14OcFgernzFbheprR8_AF_9OcErsOnfrR:
 .space __SIZEOF_POINTER__
@@ -668,7 +668,7 @@
 b__MA7naqebvq13ZrqvnErpbeqre15frgIvqrbRapbqreRv:
 nop
 .data
-.globl b__MGIA7naqebvq24OcZrqvnZrgnqngnErgevrireR
+.weak b__MGIA7naqebvq24OcZrqvnZrgnqngnErgevrireR
 .type b__MGIA7naqebvq24OcZrqvnZrgnqngnErgevrireR,%object
 b__MGIA7naqebvq24OcZrqvnZrgnqngnErgevrireR:
 .space __SIZEOF_POINTER__
@@ -678,7 +678,7 @@
 b__MGPA7naqebvq21OaZrqvnErpbeqrePyvragR8_AF_7OOvaqreR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVzA7naqebvq2fcVAF2_7VZrzbelRRRRRAF_19__znc_inyhr_pbzcnerVzF6_AF_4yrffVzRRYo1RRRAF_9nyybpngbeVF6_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVF6_CAF_11__gerr_abqrVF6_CiRRyRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVzA7naqebvq2fcVAF2_7VZrzbelRRRRRAF_19__znc_inyhr_pbzcnerVzF6_AF_4yrffVzRRYo1RRRAF_9nyybpngbeVF6_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVF6_CAF_11__gerr_abqrVF6_CiRRyRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVzA7naqebvq2fcVAF2_7VZrzbelRRRRRAF_19__znc_inyhr_pbzcnerVzF6_AF_4yrffVzRRYo1RRRAF_9nyybpngbeVF6_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVF6_CAF_11__gerr_abqrVF6_CiRRyRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVzA7naqebvq2fcVAF2_7VZrzbelRRRRRAF_19__znc_inyhr_pbzcnerVzF6_AF_4yrffVzRRYo1RRRAF_9nyybpngbeVF6_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVF6_CAF_11__gerr_abqrVF6_CiRRyRR:
 nop
@@ -698,22 +698,22 @@
 b__MA7naqebvq23VZrqvnZrgnqngnErgevrireQ2Ri:
 nop
 .data
-.globl b__MGPA7naqebvq18OcZrqvnUGGCFreivprR0_AF_11OcVagresnprVAF_17VZrqvnUGGCFreivprRRR
+.weak b__MGPA7naqebvq18OcZrqvnUGGCFreivprR0_AF_11OcVagresnprVAF_17VZrqvnUGGCFreivprRRR
 .type b__MGPA7naqebvq18OcZrqvnUGGCFreivprR0_AF_11OcVagresnprVAF_17VZrqvnUGGCFreivprRRR,%object
 b__MGPA7naqebvq18OcZrqvnUGGCFreivprR0_AF_11OcVagresnprVAF_17VZrqvnUGGCFreivprRRR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGPA7naqebvq15OcErzbgrQvfcynlR0_AF_10VVagresnprR
+.weak b__MGPA7naqebvq15OcErzbgrQvfcynlR0_AF_10VVagresnprR
 .type b__MGPA7naqebvq15OcErzbgrQvfcynlR0_AF_10VVagresnprR,%object
 b__MGPA7naqebvq15OcErzbgrQvfcynlR0_AF_10VVagresnprR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGPA7naqebvq21OcErzbgrQvfcynlPyvragR0_AF_10VVagresnprR
+.weak b__MGPA7naqebvq21OcErzbgrQvfcynlPyvragR0_AF_10VVagresnprR
 .type b__MGPA7naqebvq21OcErzbgrQvfcynlPyvragR0_AF_10VVagresnprR,%object
 b__MGPA7naqebvq21OcErzbgrQvfcynlPyvragR0_AF_10VVagresnprR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq11OaVagresnprVAF_13VFgernzFbheprRR10baNfOvaqreRi
+.weak b__MA7naqebvq11OaVagresnprVAF_13VFgernzFbheprRR10baNfOvaqreRi
 .type b__MA7naqebvq11OaVagresnprVAF_13VFgernzFbheprRR10baNfOvaqreRi,%function
 b__MA7naqebvq11OaVagresnprVAF_13VFgernzFbheprRR10baNfOvaqreRi:
 nop
@@ -723,7 +723,7 @@
 b__MGi0_a24_A7naqebvq23VZrqvnZrgnqngnErgevrireQ1Ri:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_13nhqvb_rapbqreRR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_13nhqvb_rapbqreRR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_13nhqvb_rapbqreRR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_13nhqvb_rapbqreRR7qb_pbclRCiCXiz:
 nop
@@ -748,7 +748,7 @@
 b__MA7naqebvq23VZrqvnZrgnqngnErgevrire10qrfpevcgbeR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGPA7naqebvq24OcZrqvnZrgnqngnErgevrireR0_AF_10VVagresnprR
+.weak b__MGPA7naqebvq24OcZrqvnZrgnqngnErgevrireR0_AF_10VVagresnprR
 .type b__MGPA7naqebvq24OcZrqvnZrgnqngnErgevrireR0_AF_10VVagresnprR,%object
 b__MGPA7naqebvq24OcZrqvnZrgnqngnErgevrireR0_AF_10VVagresnprR:
 .space __SIZEOF_POINTER__
@@ -758,7 +758,7 @@
 b__MA7naqebvq25PunenpgreRapbqvatQrgrpgbe16qrgrpgNaqPbairegRi:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_2jcVAF_19VZrqvnQrnguAbgvsvreRRRR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_2jcVAF_19VZrqvnQrnguAbgvsvreRRRR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_2jcVAF_19VZrqvnQrnguAbgvsvreRRRR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_2jcVAF_19VZrqvnQrnguAbgvsvreRRRR8qb_fcyngRCiCXiz:
 nop
@@ -768,7 +768,7 @@
 b__MA7naqebvq11ZrqvnCynlre22frgIvqrbFhesnprGrkgherREXAF_2fcVAF_22VTencuvpOhssreCebqhpreRRR:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_13ivqrb_qrpbqreRR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_13ivqrb_qrpbqreRR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_13ivqrb_qrpbqreRR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_13ivqrb_qrpbqreRR8qb_fcyngRCiCXiz:
 nop
@@ -798,7 +798,7 @@
 b__MGi0_a24_A7naqebvq22VErfbheprZnantrePyvragQ0Ri:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVCAF_13ZrqvnCebsvyrf15IvqrbRapbqrePncRR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVCAF_13ZrqvnCebsvyrf15IvqrbRapbqrePncRR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVCAF_13ZrqvnCebsvyrf15IvqrbRapbqrePncRR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVCAF_13ZrqvnCebsvyrf15IvqrbRapbqrePncRR16qb_zbir_onpxjneqRCiCXiz:
 nop
@@ -863,7 +863,7 @@
 b__MA7naqebvq25PunenpgreRapbqvatQrgrpgbe6nqqGntRCXpF2_:
 nop
 .data
-.globl b__MGPA7naqebvq12OcQngnFbheprR0_AF_11VQngnFbheprR
+.weak b__MGPA7naqebvq12OcQngnFbheprR0_AF_11VQngnFbheprR
 .type b__MGPA7naqebvq12OcQngnFbheprR0_AF_11VQngnFbheprR,%object
 b__MGPA7naqebvq12OcQngnFbheprR0_AF_11VQngnFbheprR:
 .space __SIZEOF_POINTER__
@@ -908,7 +908,7 @@
 b__MA7naqebvq15VFgernzYvfgrare10qrfpevcgbeR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIA7naqebvq6IrpgbeVAF_13bhgchg_sbezngRRR
+.weak b__MGIA7naqebvq6IrpgbeVAF_13bhgchg_sbezngRRR
 .type b__MGIA7naqebvq6IrpgbeVAF_13bhgchg_sbezngRRR,%object
 b__MGIA7naqebvq6IrpgbeVAF_13bhgchg_sbezngRRR:
 .space __SIZEOF_POINTER__
@@ -918,7 +918,7 @@
 b__MA7naqebvq11ZrqvnCynlre5erfrgRi:
 nop
 .data
-.globl b__MGPA7naqebvq21OcZrqvnErpbeqrePyvragR0_AF_11OcVagresnprVAF_20VZrqvnErpbeqrePyvragRRR
+.weak b__MGPA7naqebvq21OcZrqvnErpbeqrePyvragR0_AF_11OcVagresnprVAF_20VZrqvnErpbeqrePyvragRRR
 .type b__MGPA7naqebvq21OcZrqvnErpbeqrePyvragR0_AF_11OcVagresnprVAF_20VZrqvnErpbeqrePyvragRRR,%object
 b__MGPA7naqebvq21OcZrqvnErpbeqrePyvragR0_AF_11OcVagresnprVAF_20VZrqvnErpbeqrePyvragRRR:
 .space __SIZEOF_POINTER__
@@ -953,12 +953,12 @@
 b__MA7naqebvq20VZrqvnErpbeqrePyvragQ2Ri:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVvR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq6IrpgbeVvR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq6IrpgbeVvR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq6IrpgbeVvR12qb_pbafgehpgRCiz:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVCA7naqebvq7VZrzbelRAF_4cnveVAF2_2fcVF3_RRzRRRRAF_19__znc_inyhr_pbzcnerVF4_F9_AF_4yrffVF4_RRYo1RRRAF_9nyybpngbeVF9_RRR7qrfgeblRCAF_11__gerr_abqrVF9_CiRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVCA7naqebvq7VZrzbelRAF_4cnveVAF2_2fcVF3_RRzRRRRAF_19__znc_inyhr_pbzcnerVF4_F9_AF_4yrffVF4_RRYo1RRRAF_9nyybpngbeVF9_RRR7qrfgeblRCAF_11__gerr_abqrVF9_CiRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVCA7naqebvq7VZrzbelRAF_4cnveVAF2_2fcVF3_RRzRRRRAF_19__znc_inyhr_pbzcnerVF4_F9_AF_4yrffVF4_RRYo1RRRAF_9nyybpngbeVF9_RRR7qrfgeblRCAF_11__gerr_abqrVF9_CiRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVCA7naqebvq7VZrzbelRAF_4cnveVAF2_2fcVF3_RRzRRRRAF_19__znc_inyhr_pbzcnerVF4_F9_AF_4yrffVF4_RRYo1RRRAF_9nyybpngbeVF9_RRR7qrfgeblRCAF_11__gerr_abqrVF9_CiRR:
 nop
@@ -968,7 +968,7 @@
 b__MA7naqebvq13VFgernzFbhepr14trgQrsnhygVzcyRi:
 nop
 .data
-.globl b__MGGA7naqebvq16OcFgernzYvfgrareR
+.weak b__MGGA7naqebvq16OcFgernzYvfgrareR
 .type b__MGGA7naqebvq16OcFgernzYvfgrareR,%object
 b__MGGA7naqebvq16OcFgernzYvfgrareR:
 .space __SIZEOF_POINTER__
@@ -988,7 +988,7 @@
 b__MGPA7naqebvq24OaErfbheprZnantreFreivprR8_AF_7VOvaqreR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_13nhqvb_rapbqreRR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq6IrpgbeVAF_13nhqvb_rapbqreRR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq6IrpgbeVAF_13nhqvb_rapbqreRR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq6IrpgbeVAF_13nhqvb_rapbqreRR10qb_qrfgeblRCiz:
 nop
@@ -998,7 +998,7 @@
 b__MGIA7naqebvq14VZrqvnErpbeqreR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVCA7naqebvq7VZrzbelRAF_4cnveVAF2_2fcVF3_RRzRRRRAF_19__znc_inyhr_pbzcnerVF4_F9_AF_4yrffVF4_RRYo1RRRAF_9nyybpngbeVF9_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVF9_CAF_11__gerr_abqrVF9_CiRRyRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVCA7naqebvq7VZrzbelRAF_4cnveVAF2_2fcVF3_RRzRRRRAF_19__znc_inyhr_pbzcnerVF4_F9_AF_4yrffVF4_RRYo1RRRAF_9nyybpngbeVF9_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVF9_CAF_11__gerr_abqrVF9_CiRRyRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVCA7naqebvq7VZrzbelRAF_4cnveVAF2_2fcVF3_RRzRRRRAF_19__znc_inyhr_pbzcnerVF4_F9_AF_4yrffVF4_RRYo1RRRAF_9nyybpngbeVF9_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVF9_CAF_11__gerr_abqrVF9_CiRRyRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVCA7naqebvq7VZrzbelRAF_4cnveVAF2_2fcVF3_RRzRRRRAF_19__znc_inyhr_pbzcnerVF4_F9_AF_4yrffVF4_RRYo1RRRAF_9nyybpngbeVF9_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVF9_CAF_11__gerr_abqrVF9_CiRRyRR:
 nop
@@ -1008,7 +1008,7 @@
 b__MA7naqebvq20VErzbgrQvfcynlPyvragQ2Ri:
 nop
 .data
-.globl b__MGPA7naqebvq16OcZrqvnRkgenpgbeR0_AF_11OcVagresnprVAF_15VZrqvnRkgenpgbeRRR
+.weak b__MGPA7naqebvq16OcZrqvnRkgenpgbeR0_AF_11OcVagresnprVAF_15VZrqvnRkgenpgbeRRR
 .type b__MGPA7naqebvq16OcZrqvnRkgenpgbeR0_AF_11OcVagresnprVAF_15VZrqvnRkgenpgbeRRR,%object
 b__MGPA7naqebvq16OcZrqvnRkgenpgbeR0_AF_11OcVagresnprVAF_15VZrqvnRkgenpgbeRRR:
 .space __SIZEOF_POINTER__
@@ -1038,7 +1038,7 @@
 b__MGIA7naqebvq12ZrqvnFpnaareR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIA7naqebvq6IrpgbeVAF_13ivqrb_rapbqreRRR
+.weak b__MGIA7naqebvq6IrpgbeVAF_13ivqrb_rapbqreRRR
 .type b__MGIA7naqebvq6IrpgbeVAF_13ivqrb_rapbqreRRR,%object
 b__MGIA7naqebvq6IrpgbeVAF_13ivqrb_rapbqreRRR:
 .space __SIZEOF_POINTER__
@@ -1068,12 +1068,12 @@
 b__MA7naqebvq22VErfbheprZnantrePyvrag10qrfpevcgbeR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGPA7naqebvq12OcQngnFbheprR0_AF_10VVagresnprR
+.weak b__MGPA7naqebvq12OcQngnFbheprR0_AF_10VVagresnprR
 .type b__MGPA7naqebvq12OcQngnFbheprR0_AF_10VVagresnprR,%object
 b__MGPA7naqebvq12OcQngnFbheprR0_AF_10VVagresnprR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGPA7naqebvq21OcZrqvnUGGCPbaarpgvbaR0_AF_11OcVagresnprVAF_20VZrqvnUGGCPbaarpgvbaRRR
+.weak b__MGPA7naqebvq21OcZrqvnUGGCPbaarpgvbaR0_AF_11OcVagresnprVAF_20VZrqvnUGGCPbaarpgvbaRRR
 .type b__MGPA7naqebvq21OcZrqvnUGGCPbaarpgvbaR0_AF_11OcVagresnprVAF_20VZrqvnUGGCPbaarpgvbaRRR,%object
 b__MGPA7naqebvq21OcZrqvnUGGCPbaarpgvbaR0_AF_11OcVagresnprVAF_20VZrqvnUGGCPbaarpgvbaRRR:
 .space __SIZEOF_POINTER__
@@ -1088,7 +1088,7 @@
 b__MGGA7naqebvq20OaZrqvnCynlreFreivprR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq11OaVagresnprVAF_12VZrqvnCynlreRR10baNfOvaqreRi
+.weak b__MA7naqebvq11OaVagresnprVAF_12VZrqvnCynlreRR10baNfOvaqreRi
 .type b__MA7naqebvq11OaVagresnprVAF_12VZrqvnCynlreRR10baNfOvaqreRi,%function
 b__MA7naqebvq11OaVagresnprVAF_12VZrqvnCynlreRR10baNfOvaqreRi:
 nop
@@ -1098,7 +1098,7 @@
 b__MAX7naqebvq12ZrqvnFpnaare6ybpnyrRi:
 nop
 .data
-.globl b__MGIA7naqebvq13OcZrqvnFbheprR
+.weak b__MGIA7naqebvq13OcZrqvnFbheprR
 .type b__MGIA7naqebvq13OcZrqvnFbheprR,%object
 b__MGIA7naqebvq13OcZrqvnFbheprR:
 .space __SIZEOF_POINTER__
@@ -1108,7 +1108,7 @@
 b__MGIA7naqebvq15VFgernzYvfgrareR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvvRRR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvvRRR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvvRRR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvvRRR7qb_pbclRCiCXiz:
 nop
@@ -1118,7 +1118,7 @@
 b__MAX7naqebvq13ZrqvnCebsvyrf20trgBhgchgSvyrSbezngfRi:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_17RkgenpgbeVafgnaprRR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq6IrpgbeVAF_17RkgenpgbeVafgnaprRR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq6IrpgbeVAF_17RkgenpgbeVafgnaprRR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq6IrpgbeVAF_17RkgenpgbeVafgnaprRR10qb_qrfgeblRCiz:
 nop
@@ -1168,12 +1168,12 @@
 b__MA7naqebvq19VZrqvnQrnguAbgvsvre14fQrnguAbgvsvreR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MA7naqebvq13ZrqvnCebsvyrf8kzySvyrfR
+.weak b__MA7naqebvq13ZrqvnCebsvyrf8kzySvyrfR
 .type b__MA7naqebvq13ZrqvnCebsvyrf8kzySvyrfR,%object
 b__MA7naqebvq13ZrqvnCebsvyrf8kzySvyrfR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGPA7naqebvq24OcErfbheprZnantreFreivprR0_AF_11OcVagresnprVAF_23VErfbheprZnantreFreivprRRR
+.weak b__MGPA7naqebvq24OcErfbheprZnantreFreivprR0_AF_11OcVagresnprVAF_23VErfbheprZnantreFreivprRRR
 .type b__MGPA7naqebvq24OcErfbheprZnantreFreivprR0_AF_11OcVagresnprVAF_23VErfbheprZnantreFreivprRRR,%object
 b__MGPA7naqebvq24OcErfbheprZnantreFreivprR0_AF_11OcVagresnprVAF_23VErfbheprZnantreFreivprRRR:
 .space __SIZEOF_POINTER__
@@ -1193,7 +1193,7 @@
 b__MGIA7naqebvq22VErfbheprZnantrePyvragR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_13ivqrb_rapbqreRR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_13ivqrb_rapbqreRR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_13ivqrb_rapbqreRR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_13ivqrb_rapbqreRR16qb_zbir_onpxjneqRCiCXiz:
 nop
@@ -1218,17 +1218,17 @@
 b__MGi0_a24_A7naqebvq19VZrqvnCynlreFreivprQ1Ri:
 nop
 .data
-.globl b__MGPA7naqebvq21OcZrqvnErpbeqrePyvragR0_AF_20VZrqvnErpbeqrePyvragR
+.weak b__MGPA7naqebvq21OcZrqvnErpbeqrePyvragR0_AF_20VZrqvnErpbeqrePyvragR
 .type b__MGPA7naqebvq21OcZrqvnErpbeqrePyvragR0_AF_20VZrqvnErpbeqrePyvragR,%object
 b__MGPA7naqebvq21OcZrqvnErpbeqrePyvragR0_AF_20VZrqvnErpbeqrePyvragR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGPA7naqebvq13OcZrqvnFbheprR0_AF_11OcVagresnprVAF_12VZrqvnFbheprRRR
+.weak b__MGPA7naqebvq13OcZrqvnFbheprR0_AF_11OcVagresnprVAF_12VZrqvnFbheprRRR
 .type b__MGPA7naqebvq13OcZrqvnFbheprR0_AF_11OcVagresnprVAF_12VZrqvnFbheprRRR,%object
 b__MGPA7naqebvq13OcZrqvnFbheprR0_AF_11OcVagresnprVAF_12VZrqvnFbheprRRR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGPA7naqebvq15OcErzbgrQvfcynlR0_AF_14VErzbgrQvfcynlR
+.weak b__MGPA7naqebvq15OcErzbgrQvfcynlR0_AF_14VErzbgrQvfcynlR
 .type b__MGPA7naqebvq15OcErzbgrQvfcynlR0_AF_14VErzbgrQvfcynlR,%object
 b__MGPA7naqebvq15OcErzbgrQvfcynlR0_AF_14VErzbgrQvfcynlR:
 .space __SIZEOF_POINTER__
@@ -1238,7 +1238,7 @@
 b__MA7naqebvq15VFgernzYvfgrare12qrsnhyg_vzcyR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIA7naqebvq6IrpgbeVCAF_13ZrqvnCebsvyrf26VzntrRapbqvatDhnyvglYriryfRRR
+.weak b__MGIA7naqebvq6IrpgbeVCAF_13ZrqvnCebsvyrf26VzntrRapbqvatDhnyvglYriryfRRR
 .type b__MGIA7naqebvq6IrpgbeVCAF_13ZrqvnCebsvyrf26VzntrRapbqvatDhnyvglYriryfRRR,%object
 b__MGIA7naqebvq6IrpgbeVCAF_13ZrqvnCebsvyrf26VzntrRapbqvatDhnyvglYriryfRRR:
 .space __SIZEOF_POINTER__
@@ -1248,12 +1248,12 @@
 b__MA7naqebvq11VQngnFbhepr10qrfpevcgbeR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGPA7naqebvq21OcZrqvnErpbeqrePyvragR8_AF_9OcErsOnfrR
+.weak b__MGPA7naqebvq21OcZrqvnErpbeqrePyvragR8_AF_9OcErsOnfrR
 .type b__MGPA7naqebvq21OcZrqvnErpbeqrePyvragR8_AF_9OcErsOnfrR,%object
 b__MGPA7naqebvq21OcZrqvnErpbeqrePyvragR8_AF_9OcErsOnfrR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq6IrpgbeVCAF_13ZrqvnCebsvyrf15NhqvbQrpbqrePncRR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVCAF_13ZrqvnCebsvyrf15NhqvbQrpbqrePncRR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVCAF_13ZrqvnCebsvyrf15NhqvbQrpbqrePncRR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVCAF_13ZrqvnCebsvyrf15NhqvbQrpbqrePncRR8qb_fcyngRCiCXiz:
 nop
@@ -1268,7 +1268,7 @@
 b__MA7naqebvq11FgevatNeenl9chfu_onpxRCXp:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvvRRR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvvRRR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvvRRR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvvRRR15qb_zbir_sbejneqRCiCXiz:
 nop
@@ -1278,12 +1278,12 @@
 b__MGIA7naqebvq15OaZrqvnErpbeqreR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIA7naqebvq15OcZrqvnErpbeqreR
+.weak b__MGIA7naqebvq15OcZrqvnErpbeqreR
 .type b__MGIA7naqebvq15OcZrqvnErpbeqreR,%object
 b__MGIA7naqebvq15OcZrqvnErpbeqreR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_2fcVAF_7VZrzbelRRRR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq6IrpgbeVAF_2fcVAF_7VZrzbelRRRR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq6IrpgbeVAF_2fcVAF_7VZrzbelRRRR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq6IrpgbeVAF_2fcVAF_7VZrzbelRRRR10qb_qrfgeblRCiz:
 nop
@@ -1308,7 +1308,7 @@
 b__MGGA7naqebvq22ZrqvnZrgnqngnErgevrire13QrnguAbgvsvreR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGPA7naqebvq16OcZrqvnRkgenpgbeR0_AF_15VZrqvnRkgenpgbeR
+.weak b__MGPA7naqebvq16OcZrqvnRkgenpgbeR0_AF_15VZrqvnRkgenpgbeR
 .type b__MGPA7naqebvq16OcZrqvnRkgenpgbeR0_AF_15VZrqvnRkgenpgbeR,%object
 b__MGPA7naqebvq16OcZrqvnRkgenpgbeR0_AF_15VZrqvnRkgenpgbeR:
 .space __SIZEOF_POINTER__
@@ -1318,12 +1318,12 @@
 b__MGi0_a24_A7naqebvq20VZrqvnErpbeqrePyvragQ0Ri:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_7Fgevat8RRRR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_7Fgevat8RRRR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_7Fgevat8RRRR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_7Fgevat8RRRR16qb_zbir_onpxjneqRCiCXiz:
 nop
 .data
-.globl b__MGPA7naqebvq24OcZrqvnZrgnqngnErgevrireR0_AF_23VZrqvnZrgnqngnErgevrireR
+.weak b__MGPA7naqebvq24OcZrqvnZrgnqngnErgevrireR0_AF_23VZrqvnZrgnqngnErgevrireR
 .type b__MGPA7naqebvq24OcZrqvnZrgnqngnErgevrireR0_AF_23VZrqvnZrgnqngnErgevrireR,%object
 b__MGPA7naqebvq24OcZrqvnZrgnqngnErgevrireR0_AF_23VZrqvnZrgnqngnErgevrireR:
 .space __SIZEOF_POINTER__
@@ -1338,7 +1338,7 @@
 b__MGGA7naqebvq15OaZrqvnErpbeqreR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGGA7naqebvq15OcZrqvnErpbeqreR
+.weak b__MGGA7naqebvq15OcZrqvnErpbeqreR
 .type b__MGGA7naqebvq15OcZrqvnErpbeqreR,%object
 b__MGGA7naqebvq15OcZrqvnErpbeqreR:
 .space __SIZEOF_POINTER__
@@ -1413,7 +1413,7 @@
 b__MGGA7naqebvq12OaQngnFbheprR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_7Fgevat8RR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_7Fgevat8RR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_7Fgevat8RR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_7Fgevat8RR16qb_zbir_onpxjneqRCiCXiz:
 nop
@@ -1448,7 +1448,7 @@
 b__MA7naqebvq11ZrqvnCynlre6vaibxrREXAF_6CnepryRCF1_:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_17RkgenpgbeVafgnaprRR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_17RkgenpgbeVafgnaprRR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_17RkgenpgbeVafgnaprRR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_17RkgenpgbeVafgnaprRR16qb_zbir_onpxjneqRCiCXiz:
 nop
@@ -1473,7 +1473,7 @@
 b__MGua8_A7naqebvq24OaErfbheprZnantreFreivpr10baGenafnpgRwEXAF_6CnepryRCF1_w:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_2fcVAF_7VZrzbelRRRR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq6IrpgbeVAF_2fcVAF_7VZrzbelRRRR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq6IrpgbeVAF_2fcVAF_7VZrzbelRRRR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq6IrpgbeVAF_2fcVAF_7VZrzbelRRRR12qb_pbafgehpgRCiz:
 nop
@@ -1493,7 +1493,7 @@
 b__MA7naqebvq13ZrqvnCebsvyrf21perngrNhqvbQrpbqrePncRCCXp:
 nop
 .text
-.globl b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
+.weak b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
 .type b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_,%function
 b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_:
 nop
@@ -1503,7 +1503,7 @@
 b__MGi0_a24_A7naqebvq20VErzbgrQvfcynlPyvragQ0Ri:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_2fcVAF_7VZrzbelRRRR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_2fcVAF_7VZrzbelRRRR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_2fcVAF_7VZrzbelRRRR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_2fcVAF_7VZrzbelRRRR7qb_pbclRCiCXiz:
 nop
@@ -1538,12 +1538,12 @@
 b__MA7naqebvq13ZrqvnCebsvyrf26perngrQrsnhygNhqvbQrpbqrefRCF0_:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_13nhqvb_qrpbqreRR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_13nhqvb_qrpbqreRR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_13nhqvb_qrpbqreRR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_13nhqvb_qrpbqreRR7qb_pbclRCiCXiz:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVCAF_13ZrqvnCebsvyrf15NhqvbRapbqrePncRR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVCAF_13ZrqvnCebsvyrf15NhqvbRapbqrePncRR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVCAF_13ZrqvnCebsvyrf15NhqvbRapbqrePncRR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVCAF_13ZrqvnCebsvyrf15NhqvbRapbqrePncRR16qb_zbir_onpxjneqRCiCXiz:
 nop
@@ -1558,7 +1558,7 @@
 b__MA7naqebvq20VZrqvnErpbeqrePyvragQ1Ri:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVCAF_13ZrqvnCebsvyrf15IvqrbRapbqrePncRR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVCAF_13ZrqvnCebsvyrf15IvqrbRapbqrePncRR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVCAF_13ZrqvnCebsvyrf15IvqrbRapbqrePncRR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVCAF_13ZrqvnCebsvyrf15IvqrbRapbqrePncRR8qb_fcyngRCiCXiz:
 nop
@@ -1573,7 +1573,7 @@
 b__MA7naqebvq11ZrqvnCynlre13trgIvqrbJvqguRCv:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_7Fgevat8RRRR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_7Fgevat8RRRR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_7Fgevat8RRRR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_7Fgevat8RRRR10qb_qrfgeblRCiz:
 nop
@@ -1603,7 +1603,7 @@
 b__MA7naqebvq20VErzbgrQvfcynlPyvragQ1Ri:
 nop
 .data
-.globl b__MGIA7naqebvq14OcFgernzFbheprR
+.weak b__MGIA7naqebvq14OcFgernzFbheprR
 .type b__MGIA7naqebvq14OcFgernzFbheprR,%object
 b__MGIA7naqebvq14OcFgernzFbheprR:
 .space __SIZEOF_POINTER__
@@ -1618,7 +1618,7 @@
 b__MGPA7naqebvq12OaQngnFbheprR0_AF_11VQngnFbheprR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_7Fgevat8RRRR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_7Fgevat8RRRR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_7Fgevat8RRRR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_7Fgevat8RRRR7qb_pbclRCiCXiz:
 nop
@@ -1628,12 +1628,12 @@
 b__MA7naqebvq11FgevatNeenlQ1Ri:
 nop
 .data
-.globl b__MGPA7naqebvq20OcZrqvnCynlreFreivprR0_AF_19VZrqvnCynlreFreivprR
+.weak b__MGPA7naqebvq20OcZrqvnCynlreFreivprR0_AF_19VZrqvnCynlreFreivprR
 .type b__MGPA7naqebvq20OcZrqvnCynlreFreivprR0_AF_19VZrqvnCynlreFreivprR,%object
 b__MGPA7naqebvq20OcZrqvnCynlreFreivprR0_AF_19VZrqvnCynlreFreivprR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGPA7naqebvq15OcZrqvnErpbeqreR0_AF_14VZrqvnErpbeqreR
+.weak b__MGPA7naqebvq15OcZrqvnErpbeqreR0_AF_14VZrqvnErpbeqreR
 .type b__MGPA7naqebvq15OcZrqvnErpbeqreR0_AF_14VZrqvnErpbeqreR,%object
 b__MGPA7naqebvq15OcZrqvnErpbeqreR0_AF_14VZrqvnErpbeqreR:
 .space __SIZEOF_POINTER__
@@ -1693,7 +1693,7 @@
 b__MA7naqebvq13ZrqvnCebsvyrf11trgVafgnaprRi:
 nop
 .data
-.globl b__MGPA7naqebvq21OcErzbgrQvfcynlPyvragR0_AF_20VErzbgrQvfcynlPyvragR
+.weak b__MGPA7naqebvq21OcErzbgrQvfcynlPyvragR0_AF_20VErzbgrQvfcynlPyvragR
 .type b__MGPA7naqebvq21OcErzbgrQvfcynlPyvragR0_AF_20VErzbgrQvfcynlPyvragR,%object
 b__MGPA7naqebvq21OcErzbgrQvfcynlPyvragR0_AF_20VErzbgrQvfcynlPyvragR:
 .space __SIZEOF_POINTER__
@@ -1718,7 +1718,7 @@
 b__MA7naqebvq12VZrqvnCynlre11nfVagresnprREXAF_2fcVAF_7VOvaqreRRR:
 nop
 .data
-.globl b__MGGA7naqebvq21OcErzbgrQvfcynlPyvragR
+.weak b__MGGA7naqebvq21OcErzbgrQvfcynlPyvragR
 .type b__MGGA7naqebvq21OcErzbgrQvfcynlPyvragR,%object
 b__MGGA7naqebvq21OcErzbgrQvfcynlPyvragR:
 .space __SIZEOF_POINTER__
@@ -1733,7 +1733,7 @@
 b__MA7naqebvq13ZrqvnCebsvyrf26perngrQrsnhygIvqrbRapbqrefRCF0_:
 nop
 .data
-.globl b__MGIA7naqebvq12OcQngnFbheprR
+.weak b__MGIA7naqebvq12OcQngnFbheprR
 .type b__MGIA7naqebvq12OcQngnFbheprR,%object
 b__MGIA7naqebvq12OcQngnFbheprR:
 .space __SIZEOF_POINTER__
@@ -1748,7 +1748,7 @@
 b__MGGA7naqebvq16OaFgernzYvfgrareR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq6IrpgbeVCAF_13ZrqvnCebsvyrf15IvqrbQrpbqrePncRR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVCAF_13ZrqvnCebsvyrf15IvqrbQrpbqrePncRR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVCAF_13ZrqvnCebsvyrf15IvqrbQrpbqrePncRR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVCAF_13ZrqvnCebsvyrf15IvqrbQrpbqrePncRR16qb_zbir_onpxjneqRCiCXiz:
 nop
@@ -1763,7 +1763,7 @@
 b__MA7naqebvq12ZrqvnFpnaareQ1Ri:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_2jcVAF_12VZrqvnFbheprRRRR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_2jcVAF_12VZrqvnFbheprRRRR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_2jcVAF_12VZrqvnFbheprRRRR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_2jcVAF_12VZrqvnFbheprRRRR7qb_pbclRCiCXiz:
 nop
@@ -1778,7 +1778,7 @@
 b__MGPA7naqebvq15OaZrqvnErpbeqreR0_AF_11OaVagresnprVAF_14VZrqvnErpbeqreRRR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGPA7naqebvq14OcFgernzFbheprR0_AF_10VVagresnprR
+.weak b__MGPA7naqebvq14OcFgernzFbheprR0_AF_10VVagresnprR
 .type b__MGPA7naqebvq14OcFgernzFbheprR0_AF_10VVagresnprR,%object
 b__MGPA7naqebvq14OcFgernzFbheprR0_AF_10VVagresnprR:
 .space __SIZEOF_POINTER__
@@ -1798,7 +1798,7 @@
 b__MGPA7naqebvq12OaQngnFbheprR0_AF_10VVagresnprR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGPA7naqebvq21OcZrqvnUGGCPbaarpgvbaR0_AF_19ZrqvnUGGCPbaarpgvbaR
+.weak b__MGPA7naqebvq21OcZrqvnUGGCPbaarpgvbaR0_AF_19ZrqvnUGGCPbaarpgvbaR
 .type b__MGPA7naqebvq21OcZrqvnUGGCPbaarpgvbaR0_AF_19ZrqvnUGGCPbaarpgvbaR,%object
 b__MGPA7naqebvq21OcZrqvnUGGCPbaarpgvbaR0_AF_19ZrqvnUGGCPbaarpgvbaR:
 .space __SIZEOF_POINTER__
@@ -1823,7 +1823,7 @@
 b__MA7naqebvq13ZrqvnNyohzNeg8sebzQngnRvCXi:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_13ivqrb_rapbqreRR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq6IrpgbeVAF_13ivqrb_rapbqreRR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq6IrpgbeVAF_13ivqrb_rapbqreRR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq6IrpgbeVAF_13ivqrb_rapbqreRR12qb_pbafgehpgRCiz:
 nop
@@ -1848,7 +1848,7 @@
 b__MA7naqebvq12VZrqvnFbhepr14trgQrsnhygVzcyRi:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_2fcVAF_7VZrzbelRRRR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_2fcVAF_7VZrzbelRRRR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_2fcVAF_7VZrzbelRRRR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_2fcVAF_7VZrzbelRRRR15qb_zbir_sbejneqRCiCXiz:
 nop
@@ -1898,7 +1898,7 @@
 b__MA7naqebvq5zrqvn8Zrgnqngn8purpxXrlRv:
 nop
 .data
-.globl b__MGPA7naqebvq23OcErfbheprZnantrePyvragR8_AF_9OcErsOnfrR
+.weak b__MGPA7naqebvq23OcErfbheprZnantrePyvragR8_AF_9OcErsOnfrR
 .type b__MGPA7naqebvq23OcErfbheprZnantrePyvragR8_AF_9OcErsOnfrR,%object
 b__MGPA7naqebvq23OcErfbheprZnantrePyvragR8_AF_9OcErsOnfrR:
 .space __SIZEOF_POINTER__
@@ -1913,7 +1913,7 @@
 b__MA7naqebvq18yvzvgCebprffZrzbelRCXpzz:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVCX13HPunefrgZngpuR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVCX13HPunefrgZngpuR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVCX13HPunefrgZngpuR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVCX13HPunefrgZngpuR7qb_pbclRCiCXiz:
 nop
@@ -1933,12 +1933,12 @@
 b__MGPA7naqebvq15OaErzbgrQvfcynlR8_AF_7OOvaqreR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIA7naqebvq6IrpgbeVCX13HPunefrgZngpuRR
+.weak b__MGIA7naqebvq6IrpgbeVCX13HPunefrgZngpuRR
 .type b__MGIA7naqebvq6IrpgbeVCX13HPunefrgZngpuRR,%object
 b__MGIA7naqebvq6IrpgbeVCX13HPunefrgZngpuRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_2jcVAF_19VZrqvnQrnguAbgvsvreRRRR10qb_pbzcnerRCXiF6_
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_2jcVAF_19VZrqvnQrnguAbgvsvreRRRR10qb_pbzcnerRCXiF6_
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_2jcVAF_19VZrqvnQrnguAbgvsvreRRRR10qb_pbzcnerRCXiF6_,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_2jcVAF_19VZrqvnQrnguAbgvsvreRRRR10qb_pbzcnerRCXiF6_:
 nop
@@ -1953,7 +1953,7 @@
 b__MA7naqebvq20NZrqvnSbezng_sebzZftRCAF_2fcVAF_8NZrffntrRRR:
 nop
 .data
-.globl b__MGIA7naqebvq16OcZrqvnRkgenpgbeR
+.weak b__MGIA7naqebvq16OcZrqvnRkgenpgbeR
 .type b__MGIA7naqebvq16OcZrqvnRkgenpgbeR,%object
 b__MGIA7naqebvq16OcZrqvnRkgenpgbeR:
 .space __SIZEOF_POINTER__
@@ -1963,7 +1963,7 @@
 b__MA7naqebvq13ZrqvnCebsvyrf42perngrQrsnhygPnzpbeqreGvzrYncfrDpvsCebsvyrRAF_17pnzpbeqre_dhnyvglR:
 nop
 .text
-.globl b__MA7naqebvq11OaVagresnprVAF_20VZrqvnErpbeqrePyvragRR10baNfOvaqreRi
+.weak b__MA7naqebvq11OaVagresnprVAF_20VZrqvnErpbeqrePyvragRR10baNfOvaqreRi
 .type b__MA7naqebvq11OaVagresnprVAF_20VZrqvnErpbeqrePyvragRR10baNfOvaqreRi,%function
 b__MA7naqebvq11OaVagresnprVAF_20VZrqvnErpbeqrePyvragRR10baNfOvaqreRi:
 nop
@@ -1973,7 +1973,7 @@
 b__MA7naqebvq13ZrqvnErfbhepr14ernqSebzCnepryREXAF_6CnepryR:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_13ZrqvnErfbheprRR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq6IrpgbeVAF_13ZrqvnErfbheprRR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq6IrpgbeVAF_13ZrqvnErfbheprRR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq6IrpgbeVAF_13ZrqvnErfbheprRR10qb_qrfgeblRCiz:
 nop
@@ -1993,17 +1993,17 @@
 b__MA7naqebvq22ZrqvnZrgnqngnErgevrireP1Ri:
 nop
 .data
-.globl b__MGIA7naqebvq6IrpgbeVAF_13nhqvb_rapbqreRRR
+.weak b__MGIA7naqebvq6IrpgbeVAF_13nhqvb_rapbqreRRR
 .type b__MGIA7naqebvq6IrpgbeVAF_13nhqvb_rapbqreRRR,%object
 b__MGIA7naqebvq6IrpgbeVAF_13nhqvb_rapbqreRRR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIA7naqebvq6IrpgbeVCAF_13ZrqvnCebsvyrf15NhqvbRapbqrePncRRR
+.weak b__MGIA7naqebvq6IrpgbeVCAF_13ZrqvnCebsvyrf15NhqvbRapbqrePncRRR
 .type b__MGIA7naqebvq6IrpgbeVCAF_13ZrqvnCebsvyrf15NhqvbRapbqrePncRRR,%object
 b__MGIA7naqebvq6IrpgbeVCAF_13ZrqvnCebsvyrf15NhqvbRapbqrePncRRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq6IrpgbeVvR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVvR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVvR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVvR7qb_pbclRCiCXiz:
 nop
@@ -2018,7 +2018,7 @@
 b__MAX7naqebvq13ZrqvnCebsvyrf24trgPnzpbeqreCebsvyrVaqrkRvAF_17pnzpbeqre_dhnyvglR:
 nop
 .data
-.globl b__MGIA7naqebvq6IrpgbeVAF0_VsRRRR
+.weak b__MGIA7naqebvq6IrpgbeVAF0_VsRRRR
 .type b__MGIA7naqebvq6IrpgbeVAF0_VsRRRR,%object
 b__MGIA7naqebvq6IrpgbeVAF0_VsRRRR:
 .space __SIZEOF_POINTER__
@@ -2033,7 +2033,7 @@
 b__MAX7naqebvq13ZrqvnCebsvyrf16trgIvqrbQrpbqrefRi:
 nop
 .text
-.globl b__MAFg3__16irpgbeVvAF_9nyybpngbeVvRRR21__chfu_onpx_fybj_cnguVEXvRRiBG_
+.weak b__MAFg3__16irpgbeVvAF_9nyybpngbeVvRRR21__chfu_onpx_fybj_cnguVEXvRRiBG_
 .type b__MAFg3__16irpgbeVvAF_9nyybpngbeVvRRR21__chfu_onpx_fybj_cnguVEXvRRiBG_,%function
 b__MAFg3__16irpgbeVvAF_9nyybpngbeVvRRR21__chfu_onpx_fybj_cnguVEXvRRiBG_:
 nop
@@ -2088,7 +2088,7 @@
 b__MAX7naqebvq13ZrqvnCebsvyrf16trgNhqvbQrpbqrefRi:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_13nhqvb_qrpbqreRR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq6IrpgbeVAF_13nhqvb_qrpbqreRR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq6IrpgbeVAF_13nhqvb_qrpbqreRR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq6IrpgbeVAF_13nhqvb_qrpbqreRR10qb_qrfgeblRCiz:
 nop
@@ -2173,12 +2173,12 @@
 b__MA7naqebvq23VZrqvnZrgnqngnErgevrire12qrsnhyg_vzcyR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq6IrpgbeVCAF_13ZrqvnCebsvyrf16PnzpbeqreCebsvyrRR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq6IrpgbeVCAF_13ZrqvnCebsvyrf16PnzpbeqreCebsvyrRR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq6IrpgbeVCAF_13ZrqvnCebsvyrf16PnzpbeqreCebsvyrRR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq6IrpgbeVCAF_13ZrqvnCebsvyrf16PnzpbeqreCebsvyrRR12qb_pbafgehpgRCiz:
 nop
 .data
-.globl b__MGIA7naqebvq6IrpgbeVAF_17RkgenpgbeVafgnaprRRR
+.weak b__MGIA7naqebvq6IrpgbeVAF_17RkgenpgbeVafgnaprRRR
 .type b__MGIA7naqebvq6IrpgbeVAF_17RkgenpgbeVafgnaprRRR,%object
 b__MGIA7naqebvq6IrpgbeVAF_17RkgenpgbeVafgnaprRRR:
 .space __SIZEOF_POINTER__
@@ -2188,7 +2188,7 @@
 b__MGua8_A7naqebvq21OaZrqvnErpbeqrePyvrag10baGenafnpgRwEXAF_6CnepryRCF1_w:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVCAF_13ZrqvnCebsvyrf15IvqrbQrpbqrePncRR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVCAF_13ZrqvnCebsvyrf15IvqrbQrpbqrePncRR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVCAF_13ZrqvnCebsvyrf15IvqrbQrpbqrePncRR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVCAF_13ZrqvnCebsvyrf15IvqrbQrpbqrePncRR15qb_zbir_sbejneqRCiCXiz:
 nop
@@ -2223,12 +2223,12 @@
 b__MA7naqebvq22ZrqvnZrgnqngnErgevrire15rkgenpgNyohzNegRi:
 nop
 .data
-.globl b__MGIA7naqebvq24OcErfbheprZnantreFreivprR
+.weak b__MGIA7naqebvq24OcErfbheprZnantreFreivprR
 .type b__MGIA7naqebvq24OcErfbheprZnantreFreivprR,%object
 b__MGIA7naqebvq24OcErfbheprZnantreFreivprR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq11OaVagresnprVAF_11VQngnFbheprRR10baNfOvaqreRi
+.weak b__MA7naqebvq11OaVagresnprVAF_11VQngnFbheprRR10baNfOvaqreRi
 .type b__MA7naqebvq11OaVagresnprVAF_11VQngnFbheprRR10baNfOvaqreRi,%function
 b__MA7naqebvq11OaVagresnprVAF_11VQngnFbheprRR10baNfOvaqreRi:
 nop
@@ -2238,22 +2238,22 @@
 b__MA7naqebvq20VZrqvnUGGCPbaarpgvba14frgQrsnhygVzcyRAFg3__110havdhr_cgeVF0_AF1_14qrsnhyg_qryrgrVF0_RRRR:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVCX13HPunefrgZngpuR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVCX13HPunefrgZngpuR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVCX13HPunefrgZngpuR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVCX13HPunefrgZngpuR15qb_zbir_sbejneqRCiCXiz:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVCAF_13ZrqvnCebsvyrf15IvqrbQrpbqrePncRR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq6IrpgbeVCAF_13ZrqvnCebsvyrf15IvqrbQrpbqrePncRR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq6IrpgbeVCAF_13ZrqvnCebsvyrf15IvqrbQrpbqrePncRR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq6IrpgbeVCAF_13ZrqvnCebsvyrf15IvqrbQrpbqrePncRR10qb_qrfgeblRCiz:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVCAF_13ZrqvnCebsvyrf15IvqrbRapbqrePncRR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVCAF_13ZrqvnCebsvyrf15IvqrbRapbqrePncRR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVCAF_13ZrqvnCebsvyrf15IvqrbRapbqrePncRR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVCAF_13ZrqvnCebsvyrf15IvqrbRapbqrePncRR15qb_zbir_sbejneqRCiCXiz:
 nop
 .text
-.globl b__MA7naqebvq11OaVagresnprVAF_22VErfbheprZnantrePyvragRR10baNfOvaqreRi
+.weak b__MA7naqebvq11OaVagresnprVAF_22VErfbheprZnantrePyvragRR10baNfOvaqreRi
 .type b__MA7naqebvq11OaVagresnprVAF_22VErfbheprZnantrePyvragRR10baNfOvaqreRi,%function
 b__MA7naqebvq11OaVagresnprVAF_22VErfbheprZnantrePyvragRR10baNfOvaqreRi:
 nop
@@ -2283,12 +2283,12 @@
 b__MGPA7naqebvq11ZrqvnCynlreR8_AF_7OOvaqreR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq2fcVAF_19VZrqvnQrnguAbgvsvre13QrnguAbgvsvreRRQ2Ri
+.weak b__MA7naqebvq2fcVAF_19VZrqvnQrnguAbgvsvre13QrnguAbgvsvreRRQ2Ri
 .type b__MA7naqebvq2fcVAF_19VZrqvnQrnguAbgvsvre13QrnguAbgvsvreRRQ2Ri,%function
 b__MA7naqebvq2fcVAF_19VZrqvnQrnguAbgvsvre13QrnguAbgvsvreRRQ2Ri:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVCAF_15ZrqvnOhssreOnfrRR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVCAF_15ZrqvnOhssreOnfrRR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVCAF_15ZrqvnOhssreOnfrRR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVCAF_15ZrqvnOhssreOnfrRR15qb_zbir_sbejneqRCiCXiz:
 nop
@@ -2303,7 +2303,7 @@
 b__MA7naqebvq12ZrqvnFpnaareQ0Ri:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVCAF_13ZrqvnCebsvyrf15NhqvbQrpbqrePncRR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVCAF_13ZrqvnCebsvyrf15NhqvbQrpbqrePncRR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVCAF_13ZrqvnCebsvyrf15NhqvbQrpbqrePncRR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVCAF_13ZrqvnCebsvyrf15NhqvbQrpbqrePncRR16qb_zbir_onpxjneqRCiCXiz:
 nop
@@ -2313,7 +2313,7 @@
 b__MAX7naqebvq14VErzbgrQvfcynl22trgVagresnprQrfpevcgbeRi:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_13ZrqvnErfbheprRR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_13ZrqvnErfbheprRR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_13ZrqvnErfbheprRR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_13ZrqvnErfbheprRR15qb_zbir_sbejneqRCiCXiz:
 nop
@@ -2333,7 +2333,7 @@
 b__MA7naqebvq22ZrqvnZrgnqngnErgevrire13frgQngnFbheprREXAF_2fcVAF_17VZrqvnUGGCFreivprRRRCXpCXAF_11XrlrqIrpgbeVAF_7Fgevat8RF9_RR:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVuR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVuR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVuR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVuR16qb_zbir_onpxjneqRCiCXiz:
 nop
@@ -2348,7 +2348,7 @@
 b__MGGA7naqebvq13OaZrqvnFbheprR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGPA7naqebvq24OcErfbheprZnantreFreivprR0_AF_10VVagresnprR
+.weak b__MGPA7naqebvq24OcErfbheprZnantreFreivprR0_AF_10VVagresnprR
 .type b__MGPA7naqebvq24OcErfbheprZnantreFreivprR0_AF_10VVagresnprR,%object
 b__MGPA7naqebvq24OcErfbheprZnantreFreivprR0_AF_10VVagresnprR:
 .space __SIZEOF_POINTER__
@@ -2358,7 +2358,7 @@
 b__MA7naqebvq13ZrqvnErpbeqre13frgCnenzrgrefREXAF_7Fgevat8R:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_2jcVAF_19VZrqvnQrnguAbgvsvreRRRR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_2jcVAF_19VZrqvnQrnguAbgvsvreRRRR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_2jcVAF_19VZrqvnQrnguAbgvsvreRRRR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_2jcVAF_19VZrqvnQrnguAbgvsvreRRRR15qb_zbir_sbejneqRCiCXiz:
 nop
@@ -2378,7 +2378,7 @@
 b__MA7naqebvq18VZrqvnCynlrePyvrag14frgQrsnhygVzcyRAFg3__110havdhr_cgeVF0_AF1_14qrsnhyg_qryrgrVF0_RRRR:
 nop
 .data
-.globl b__MGIA7naqebvq6IrpgbeVCAF_15ZrqvnOhssreOnfrRRR
+.weak b__MGIA7naqebvq6IrpgbeVCAF_15ZrqvnOhssreOnfrRRR
 .type b__MGIA7naqebvq6IrpgbeVCAF_15ZrqvnOhssreOnfrRRR,%object
 b__MGIA7naqebvq6IrpgbeVCAF_15ZrqvnOhssreOnfrRRR:
 .space __SIZEOF_POINTER__
@@ -2398,7 +2398,7 @@
 b__MGua8_A7naqebvq13ZrqvnErpbeqreQ0Ri:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_13nhqvb_rapbqreRR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_13nhqvb_rapbqreRR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_13nhqvb_rapbqreRR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_13nhqvb_rapbqreRR8qb_fcyngRCiCXiz:
 nop
@@ -2408,22 +2408,22 @@
 b__MA7naqebvq11ZrqvnCynlre12cercnerNflapRi:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR10qb_qrfgeblRCiz:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVvR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq6IrpgbeVvR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq6IrpgbeVvR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq6IrpgbeVvR10qb_qrfgeblRCiz:
 nop
 .data
-.globl b__MGPA7naqebvq13OcZrqvnFbheprR0_AF_10VVagresnprR
+.weak b__MGPA7naqebvq13OcZrqvnFbheprR0_AF_10VVagresnprR
 .type b__MGPA7naqebvq13OcZrqvnFbheprR0_AF_10VVagresnprR,%object
 b__MGPA7naqebvq13OcZrqvnFbheprR0_AF_10VVagresnprR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_13nhqvb_rapbqreRR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_13nhqvb_rapbqreRR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_13nhqvb_rapbqreRR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_13nhqvb_rapbqreRR16qb_zbir_onpxjneqRCiCXiz:
 nop
@@ -2438,7 +2438,7 @@
 b__MGua8_A7naqebvq17VZrqvnUGGCFreivprQ1Ri:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVuR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq6IrpgbeVuR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq6IrpgbeVuR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq6IrpgbeVuR10qb_qrfgeblRCiz:
 nop
@@ -2463,12 +2463,12 @@
 b__MGIA7naqebvq14VErzbgrQvfcynlR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_2jcVAF_19VZrqvnQrnguAbgvsvreRRRR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_2jcVAF_19VZrqvnQrnguAbgvsvreRRRR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_2jcVAF_19VZrqvnQrnguAbgvsvreRRRR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_2jcVAF_19VZrqvnQrnguAbgvsvreRRRR12qb_pbafgehpgRCiz:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVsR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq6IrpgbeVsR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq6IrpgbeVsR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq6IrpgbeVsR10qb_qrfgeblRCiz:
 nop
@@ -2478,7 +2478,7 @@
 b__MAX7naqebvq20VErzbgrQvfcynlPyvrag22trgVagresnprQrfpevcgbeRi:
 nop
 .data
-.globl b__MGIA7naqebvq6IrpgbeVAF_19ZrqvnErfbheprCbyvplRRR
+.weak b__MGIA7naqebvq6IrpgbeVAF_19ZrqvnErfbheprCbyvplRRR
 .type b__MGIA7naqebvq6IrpgbeVAF_19ZrqvnErfbheprCbyvplRRR,%object
 b__MGIA7naqebvq6IrpgbeVAF_19ZrqvnErfbheprCbyvplRRR:
 .space __SIZEOF_POINTER__
@@ -2488,7 +2488,7 @@
 b__MGPA7naqebvq21OaZrqvnErpbeqrePyvragR0_AF_20VZrqvnErpbeqrePyvragR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF0_VsRRR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq6IrpgbeVAF0_VsRRR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq6IrpgbeVAF0_VsRRR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq6IrpgbeVAF0_VsRRR10qb_qrfgeblRCiz:
 nop
@@ -2498,7 +2498,7 @@
 b__MA7naqebvq13ZrqvnErpbeqreQ1Ri:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_7Fgevat8RRRR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_7Fgevat8RRRR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_7Fgevat8RRRR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_7Fgevat8RRRR12qb_pbafgehpgRCiz:
 nop
@@ -2518,7 +2518,7 @@
 b__MA7naqebvq15VZrqvnRkgenpgbeQ2Ri:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_17RkgenpgbeVafgnaprRR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_17RkgenpgbeVafgnaprRR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_17RkgenpgbeVafgnaprRR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_17RkgenpgbeVafgnaprRR7qb_pbclRCiCXiz:
 nop
@@ -2528,7 +2528,7 @@
 b__MGGA7naqebvq23OaZrqvnRkgenpgbeFreivprR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR10qb_pbzcnerRCXiF6_
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR10qb_pbzcnerRCXiF6_
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR10qb_pbzcnerRCXiF6_,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR10qb_pbzcnerRCXiF6_:
 nop
@@ -2538,7 +2538,7 @@
 b__MA7naqebvq11ZrqvnCynlre5fgnegRi:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_17RkgenpgbeVafgnaprRR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_17RkgenpgbeVafgnaprRR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_17RkgenpgbeVafgnaprRR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_17RkgenpgbeVafgnaprRR8qb_fcyngRCiCXiz:
 nop
@@ -2553,7 +2553,7 @@
 b__MAX7naqebvq13ZrqvnErfbheprrdREXF0_:
 nop
 .data
-.globl b__MGPA7naqebvq12OcQngnFbheprR8_AF_9OcErsOnfrR
+.weak b__MGPA7naqebvq12OcQngnFbheprR8_AF_9OcErsOnfrR
 .type b__MGPA7naqebvq12OcQngnFbheprR8_AF_9OcErsOnfrR,%object
 b__MGPA7naqebvq12OcQngnFbheprR8_AF_9OcErsOnfrR:
 .space __SIZEOF_POINTER__
@@ -2583,12 +2583,12 @@
 b__MA7naqebvq18ZrqvnFpnaarePyvrag7raqSvyrRi:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_13ivqrb_qrpbqreRR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq6IrpgbeVAF_13ivqrb_qrpbqreRR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq6IrpgbeVAF_13ivqrb_qrpbqreRR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq6IrpgbeVAF_13ivqrb_qrpbqreRR12qb_pbafgehpgRCiz:
 nop
 .data
-.globl b__MGIA7naqebvq21OcZrqvnErpbeqrePyvragR
+.weak b__MGIA7naqebvq21OcZrqvnErpbeqrePyvragR
 .type b__MGIA7naqebvq21OcZrqvnErpbeqrePyvragR,%object
 b__MGIA7naqebvq21OcZrqvnErpbeqrePyvragR:
 .space __SIZEOF_POINTER__
@@ -2603,7 +2603,7 @@
 b__MAX7naqebvq13ZrqvnCebsvyrf26trgIvqrbRapbqreCnenzOlAnzrRCXpAF_13ivqrb_rapbqreR:
 nop
 .text
-.globl b__MA7naqebvq6Cnepry21jevgrCneprynoyrIrpgbeVAF_5zrqvn14ZvpebcubarVasbRRRvEXAFg3__16irpgbeVG_AF4_9nyybpngbeVF6_RRRR
+.weak b__MA7naqebvq6Cnepry21jevgrCneprynoyrIrpgbeVAF_5zrqvn14ZvpebcubarVasbRRRvEXAFg3__16irpgbeVG_AF4_9nyybpngbeVF6_RRRR
 .type b__MA7naqebvq6Cnepry21jevgrCneprynoyrIrpgbeVAF_5zrqvn14ZvpebcubarVasbRRRvEXAFg3__16irpgbeVG_AF4_9nyybpngbeVF6_RRRR,%function
 b__MA7naqebvq6Cnepry21jevgrCneprynoyrIrpgbeVAF_5zrqvn14ZvpebcubarVasbRRRvEXAFg3__16irpgbeVG_AF4_9nyybpngbeVF6_RRRR:
 nop
@@ -2623,12 +2623,12 @@
 b__MA7naqebvq19VZrqvnCynlreFreivpr10qrfpevcgbeR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVssRRAF_19__znc_inyhr_pbzcnerVsF2_AF_4yrffVsRRYo1RRRAF_9nyybpngbeVF2_RRR7qrfgeblRCAF_11__gerr_abqrVF2_CiRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVssRRAF_19__znc_inyhr_pbzcnerVsF2_AF_4yrffVsRRYo1RRRAF_9nyybpngbeVF2_RRR7qrfgeblRCAF_11__gerr_abqrVF2_CiRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVssRRAF_19__znc_inyhr_pbzcnerVsF2_AF_4yrffVsRRYo1RRRAF_9nyybpngbeVF2_RRR7qrfgeblRCAF_11__gerr_abqrVF2_CiRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVssRRAF_19__znc_inyhr_pbzcnerVsF2_AF_4yrffVsRRYo1RRRAF_9nyybpngbeVF2_RRR7qrfgeblRCAF_11__gerr_abqrVF2_CiRR:
 nop
 .data
-.globl b__MGPA7naqebvq13OcZrqvnCynlreR8_AF_9OcErsOnfrR
+.weak b__MGPA7naqebvq13OcZrqvnCynlreR8_AF_9OcErsOnfrR
 .type b__MGPA7naqebvq13OcZrqvnCynlreR8_AF_9OcErsOnfrR,%object
 b__MGPA7naqebvq13OcZrqvnCynlreR8_AF_9OcErsOnfrR:
 .space __SIZEOF_POINTER__
@@ -2653,12 +2653,12 @@
 b__MA7naqebvq11ZrqvnCynlre12frgCnenzrgreRvEXAF_6CnepryR:
 nop
 .data
-.globl b__MGPA7naqebvq21OcZrqvnUGGCPbaarpgvbaR16_AF_9OcErsOnfrR
+.weak b__MGPA7naqebvq21OcZrqvnUGGCPbaarpgvbaR16_AF_9OcErsOnfrR
 .type b__MGPA7naqebvq21OcZrqvnUGGCPbaarpgvbaR16_AF_9OcErsOnfrR,%object
 b__MGPA7naqebvq21OcZrqvnUGGCPbaarpgvbaR16_AF_9OcErsOnfrR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq11OaVagresnprVAF_15VZrqvnRkgenpgbeRR10baNfOvaqreRi
+.weak b__MA7naqebvq11OaVagresnprVAF_15VZrqvnRkgenpgbeRR10baNfOvaqreRi
 .type b__MA7naqebvq11OaVagresnprVAF_15VZrqvnRkgenpgbeRR10baNfOvaqreRi,%function
 b__MA7naqebvq11OaVagresnprVAF_15VZrqvnRkgenpgbeRR10baNfOvaqreRi:
 nop
@@ -2673,7 +2673,7 @@
 b__MGPA7naqebvq21OaZrqvnErpbeqrePyvragR8_AF_7VOvaqreR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGPA7naqebvq16OcFgernzYvfgrareR0_AF_15VFgernzYvfgrareR
+.weak b__MGPA7naqebvq16OcFgernzYvfgrareR0_AF_15VFgernzYvfgrareR
 .type b__MGPA7naqebvq16OcFgernzYvfgrareR0_AF_15VFgernzYvfgrareR,%object
 b__MGPA7naqebvq16OcFgernzYvfgrareR0_AF_15VFgernzYvfgrareR:
 .space __SIZEOF_POINTER__
@@ -2703,7 +2703,7 @@
 b__MGIA7naqebvq23OaErfbheprZnantrePyvragR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_2fcVAF_7VZrzbelRRRR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_2fcVAF_7VZrzbelRRRR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_2fcVAF_7VZrzbelRRRR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_2fcVAF_7VZrzbelRRRR8qb_fcyngRCiCXiz:
 nop
@@ -2713,7 +2713,7 @@
 b__MA7naqebvq13ZrqvnErpbeqre17frgCerivrjFhesnprREXAF_2fcVAF_22VTencuvpOhssreCebqhpreRRR:
 nop
 .data
-.globl b__MGPA7naqebvq18OcZrqvnUGGCFreivprR0_AF_17VZrqvnUGGCFreivprR
+.weak b__MGPA7naqebvq18OcZrqvnUGGCFreivprR0_AF_17VZrqvnUGGCFreivprR
 .type b__MGPA7naqebvq18OcZrqvnUGGCFreivprR0_AF_17VZrqvnUGGCFreivprR,%object
 b__MGPA7naqebvq18OcZrqvnUGGCFreivprR0_AF_17VZrqvnUGGCFreivprR:
 .space __SIZEOF_POINTER__
@@ -2723,7 +2723,7 @@
 b__MGIA7naqebvq16OaZrqvnRkgenpgbeR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq11OaVagresnprVAF_23VZrqvnZrgnqngnErgevrireRR10baNfOvaqreRi
+.weak b__MA7naqebvq11OaVagresnprVAF_23VZrqvnZrgnqngnErgevrireRR10baNfOvaqreRi
 .type b__MA7naqebvq11OaVagresnprVAF_23VZrqvnZrgnqngnErgevrireRR10baNfOvaqreRi,%function
 b__MA7naqebvq11OaVagresnprVAF_23VZrqvnZrgnqngnErgevrireRR10baNfOvaqreRi:
 nop
@@ -2738,7 +2738,7 @@
 b__MA7naqebvq11FgevatNeenlP1Ri:
 nop
 .text
-.globl b__MA7naqebvq11OaVagresnprVAF_18VZrqvnCynlrePyvragRR10baNfOvaqreRi
+.weak b__MA7naqebvq11OaVagresnprVAF_18VZrqvnCynlrePyvragRR10baNfOvaqreRi
 .type b__MA7naqebvq11OaVagresnprVAF_18VZrqvnCynlrePyvragRR10baNfOvaqreRi,%function
 b__MA7naqebvq11OaVagresnprVAF_18VZrqvnCynlrePyvragRR10baNfOvaqreRi:
 nop
@@ -2748,7 +2748,7 @@
 b__MGIA7naqebvq15OaErzbgrQvfcynlR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIA7naqebvq15OcErzbgrQvfcynlR
+.weak b__MGIA7naqebvq15OcErzbgrQvfcynlR
 .type b__MGIA7naqebvq15OcErzbgrQvfcynlR,%object
 b__MGIA7naqebvq15OcErzbgrQvfcynlR:
 .space __SIZEOF_POINTER__
@@ -2758,22 +2758,22 @@
 b__MGPA7naqebvq15VZrqvnRkgenpgbeR0_AF_10VVagresnprR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGPA7naqebvq23OcZrqvnRkgenpgbeFreivprR8_AF_9OcErsOnfrR
+.weak b__MGPA7naqebvq23OcZrqvnRkgenpgbeFreivprR8_AF_9OcErsOnfrR
 .type b__MGPA7naqebvq23OcZrqvnRkgenpgbeFreivprR8_AF_9OcErsOnfrR,%object
 b__MGPA7naqebvq23OcZrqvnRkgenpgbeFreivprR8_AF_9OcErsOnfrR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIA7naqebvq23OcZrqvnRkgenpgbeFreivprR
+.weak b__MGIA7naqebvq23OcZrqvnRkgenpgbeFreivprR
 .type b__MGIA7naqebvq23OcZrqvnRkgenpgbeFreivprR,%object
 b__MGIA7naqebvq23OcZrqvnRkgenpgbeFreivprR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGPA7naqebvq19OcZrqvnCynlrePyvragR8_AF_9OcErsOnfrR
+.weak b__MGPA7naqebvq19OcZrqvnCynlrePyvragR8_AF_9OcErsOnfrR
 .type b__MGPA7naqebvq19OcZrqvnCynlrePyvragR8_AF_9OcErsOnfrR,%object
 b__MGPA7naqebvq19OcZrqvnCynlrePyvragR8_AF_9OcErsOnfrR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq6IrpgbeVsR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVsR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVsR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVsR15qb_zbir_sbejneqRCiCXiz:
 nop
@@ -2783,12 +2783,12 @@
 b__MA7naqebvq13ZrqvnErpbeqre17frgArkgBhgchgSvyrRv:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_13ivqrb_qrpbqreRR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_13ivqrb_qrpbqreRR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_13ivqrb_qrpbqreRR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_13ivqrb_qrpbqreRR15qb_zbir_sbejneqRCiCXiz:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_7Fgevat8RR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_7Fgevat8RR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_7Fgevat8RR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_7Fgevat8RR15qb_zbir_sbejneqRCiCXiz:
 nop
@@ -2798,7 +2798,7 @@
 b__MGGA7naqebvq15OaErzbgrQvfcynlR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGGA7naqebvq15OcErzbgrQvfcynlR
+.weak b__MGGA7naqebvq15OcErzbgrQvfcynlR
 .type b__MGGA7naqebvq15OcErzbgrQvfcynlR,%object
 b__MGGA7naqebvq15OcErzbgrQvfcynlR:
 .space __SIZEOF_POINTER__
@@ -2813,7 +2813,7 @@
 b__MGua8_A7naqebvq23OaZrqvnRkgenpgbeFreivpr10baGenafnpgRwEXAF_6CnepryRCF1_w:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF0_VsRRR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF0_VsRRR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF0_VsRRR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF0_VsRRR15qb_zbir_sbejneqRCiCXiz:
 nop
@@ -2823,17 +2823,17 @@
 b__MA7naqebvq18ZrqvnFpnaarePyvragQ2Ri:
 nop
 .data
-.globl b__MGIA7naqebvq6IrpgbeVAF_13ivqrb_qrpbqreRRR
+.weak b__MGIA7naqebvq6IrpgbeVAF_13ivqrb_qrpbqreRRR
 .type b__MGIA7naqebvq6IrpgbeVAF_13ivqrb_qrpbqreRRR,%object
 b__MGIA7naqebvq6IrpgbeVAF_13ivqrb_qrpbqreRRR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGPA7naqebvq23OcZrqvnRkgenpgbeFreivprR0_AF_11OcVagresnprVAF_22VZrqvnRkgenpgbeFreivprRRR
+.weak b__MGPA7naqebvq23OcZrqvnRkgenpgbeFreivprR0_AF_11OcVagresnprVAF_22VZrqvnRkgenpgbeFreivprRRR
 .type b__MGPA7naqebvq23OcZrqvnRkgenpgbeFreivprR0_AF_11OcVagresnprVAF_22VZrqvnRkgenpgbeFreivprRRR,%object
 b__MGPA7naqebvq23OcZrqvnRkgenpgbeFreivprR0_AF_11OcVagresnprVAF_22VZrqvnRkgenpgbeFreivprRRR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIA7naqebvq5zrqvn12IbyhzrFuncre13PbasvthengvbaR
+.weak b__MGIA7naqebvq5zrqvn12IbyhzrFuncre13PbasvthengvbaR
 .type b__MGIA7naqebvq5zrqvn12IbyhzrFuncre13PbasvthengvbaR,%object
 b__MGIA7naqebvq5zrqvn12IbyhzrFuncre13PbasvthengvbaR:
 .space __SIZEOF_POINTER__
@@ -2863,12 +2863,12 @@
 b__MA7naqebvq13ZrqvnCebsvyrf30perngrQrsnhygPnzpbeqreCebsvyrfRCF0_:
 nop
 .data
-.globl b__MGPA7naqebvq13OcZrqvnFbheprR8_AF_9OcErsOnfrR
+.weak b__MGPA7naqebvq13OcZrqvnFbheprR8_AF_9OcErsOnfrR
 .type b__MGPA7naqebvq13OcZrqvnFbheprR8_AF_9OcErsOnfrR,%object
 b__MGPA7naqebvq13OcZrqvnFbheprR8_AF_9OcErsOnfrR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq2fcVAF_19VZrqvnCynlreFreivprRRQ2Ri
+.weak b__MA7naqebvq2fcVAF_19VZrqvnCynlreFreivprRRQ2Ri
 .type b__MA7naqebvq2fcVAF_19VZrqvnCynlreFreivprRRQ2Ri,%function
 b__MA7naqebvq2fcVAF_19VZrqvnCynlreFreivprRRQ2Ri:
 nop
@@ -2893,12 +2893,12 @@
 b__MA7naqebvq13ZrqvnCebsvyrf20fNhqvbQrpbqreAnzrZncR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq6IrpgbeVCAF_13ZrqvnCebsvyrf16PnzpbeqreCebsvyrRR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVCAF_13ZrqvnCebsvyrf16PnzpbeqreCebsvyrRR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVCAF_13ZrqvnCebsvyrf16PnzpbeqreCebsvyrRR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVCAF_13ZrqvnCebsvyrf16PnzpbeqreCebsvyrRR7qb_pbclRCiCXiz:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVuR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVuR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVuR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVuR7qb_pbclRCiCXiz:
 nop
@@ -2908,7 +2908,7 @@
 b__MGPA7naqebvq21OaErzbgrQvfcynlPyvragR0_AF_20VErzbgrQvfcynlPyvragR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_7Fgevat8RRRR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_7Fgevat8RRRR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_7Fgevat8RRRR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_7Fgevat8RRRR8qb_fcyngRCiCXiz:
 nop
@@ -2923,17 +2923,17 @@
 b__MA7naqebvq12VZrqvnCynlre12qrsnhyg_vzcyR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_7VZrzbelRRRAF_9nyybpngbeVF4_RRR21__chfu_onpx_fybj_cnguVF4_RRiBG_
+.weak b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_7VZrzbelRRRAF_9nyybpngbeVF4_RRR21__chfu_onpx_fybj_cnguVF4_RRiBG_
 .type b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_7VZrzbelRRRAF_9nyybpngbeVF4_RRR21__chfu_onpx_fybj_cnguVF4_RRiBG_,%function
 b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_7VZrzbelRRRAF_9nyybpngbeVF4_RRR21__chfu_onpx_fybj_cnguVF4_RRiBG_:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_13nhqvb_qrpbqreRR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_13nhqvb_qrpbqreRR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_13nhqvb_qrpbqreRR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_13nhqvb_qrpbqreRR15qb_zbir_sbejneqRCiCXiz:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_7Fgevat8RR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_7Fgevat8RR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_7Fgevat8RR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_7Fgevat8RR7qb_pbclRCiCXiz:
 nop
@@ -2953,7 +2953,7 @@
 b__MA7naqebvq15VZrqvnRkgenpgbe14trgQrsnhygVzcyRi:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_13ZrqvnErfbheprRR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_13ZrqvnErfbheprRR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_13ZrqvnErfbheprRR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_13ZrqvnErfbheprRR16qb_zbir_onpxjneqRCiCXiz:
 nop
@@ -2963,7 +2963,7 @@
 b__MA7naqebvq13ZrqvnCebsvyrf26perngrQrsnhygNhqvbRapbqrefRCF0_:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVCAF_13ZrqvnCebsvyrf16PnzpbeqreCebsvyrRR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVCAF_13ZrqvnCebsvyrf16PnzpbeqreCebsvyrRR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVCAF_13ZrqvnCebsvyrf16PnzpbeqreCebsvyrRR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVCAF_13ZrqvnCebsvyrf16PnzpbeqreCebsvyrRR15qb_zbir_sbejneqRCiCXiz:
 nop
@@ -2993,7 +2993,7 @@
 b__MGPA7naqebvq20OaZrqvnCynlreFreivprR0_AF_11OaVagresnprVAF_19VZrqvnCynlreFreivprRRR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGGA7naqebvq13OcZrqvnCynlreR
+.weak b__MGGA7naqebvq13OcZrqvnCynlreR
 .type b__MGGA7naqebvq13OcZrqvnCynlreR,%object
 b__MGGA7naqebvq13OcZrqvnCynlreR:
 .space __SIZEOF_POINTER__
@@ -3018,7 +3018,7 @@
 b__MA7naqebvq13ZrqvnNyohzNeg4vavgRCF0_vCXi:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvvRRR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvvRRR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvvRRR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvvRRR10qb_qrfgeblRCiz:
 nop
@@ -3043,7 +3043,7 @@
 b__MA7naqebvq11ZrqvnCynlre19trgCynlonpxFrggvatfRCAF_17NhqvbCynlonpxEngrR:
 nop
 .data
-.globl b__MGPA7naqebvq19OcZrqvnCynlrePyvragR0_AF_18VZrqvnCynlrePyvragR
+.weak b__MGPA7naqebvq19OcZrqvnCynlrePyvragR0_AF_18VZrqvnCynlrePyvragR
 .type b__MGPA7naqebvq19OcZrqvnCynlrePyvragR0_AF_18VZrqvnCynlrePyvragR,%object
 b__MGPA7naqebvq19OcZrqvnCynlrePyvragR0_AF_18VZrqvnCynlrePyvragR:
 .space __SIZEOF_POINTER__
@@ -3058,7 +3058,7 @@
 b__MGGA7naqebvq17VZrqvnUGGCFreivprR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq6IrpgbeVCAF_15ZrqvnOhssreOnfrRR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVCAF_15ZrqvnOhssreOnfrRR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVCAF_15ZrqvnOhssreOnfrRR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVCAF_15ZrqvnOhssreOnfrRR16qb_zbir_onpxjneqRCiCXiz:
 nop
@@ -3068,12 +3068,12 @@
 b__MA7naqebvq14VErzbgrQvfcynlQ1Ri:
 nop
 .data
-.globl b__MGPA7naqebvq23OcErfbheprZnantrePyvragR0_AF_11OcVagresnprVAF_22VErfbheprZnantrePyvragRRR
+.weak b__MGPA7naqebvq23OcErfbheprZnantrePyvragR0_AF_11OcVagresnprVAF_22VErfbheprZnantrePyvragRRR
 .type b__MGPA7naqebvq23OcErfbheprZnantrePyvragR0_AF_11OcVagresnprVAF_22VErfbheprZnantrePyvragRRR,%object
 b__MGPA7naqebvq23OcErfbheprZnantrePyvragR0_AF_11OcVagresnprVAF_22VErfbheprZnantrePyvragRRR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGPA7naqebvq16OcFgernzYvfgrareR0_AF_10VVagresnprR
+.weak b__MGPA7naqebvq16OcFgernzYvfgrareR0_AF_10VVagresnprR
 .type b__MGPA7naqebvq16OcFgernzYvfgrareR0_AF_10VVagresnprR,%object
 b__MGPA7naqebvq16OcFgernzYvfgrareR0_AF_10VVagresnprR:
 .space __SIZEOF_POINTER__
@@ -3108,7 +3108,7 @@
 b__MGPA7naqebvq12VZrqvnCynlreR0_AF_10VVagresnprR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF0_VsRRR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq6IrpgbeVAF0_VsRRR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq6IrpgbeVAF0_VsRRR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq6IrpgbeVAF0_VsRRR12qb_pbafgehpgRCiz:
 nop
@@ -3163,12 +3163,12 @@
 b__MA7naqebvq19VZrqvnCynlreFreivprQ0Ri:
 nop
 .data
-.globl b__MGPA7naqebvq15OcZrqvnErpbeqreR0_AF_10VVagresnprR
+.weak b__MGPA7naqebvq15OcZrqvnErpbeqreR0_AF_10VVagresnprR
 .type b__MGPA7naqebvq15OcZrqvnErpbeqreR0_AF_10VVagresnprR,%object
 b__MGPA7naqebvq15OcZrqvnErpbeqreR0_AF_10VVagresnprR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq11OaVagresnprVAF_14VErzbgrQvfcynlRR10baNfOvaqreRi
+.weak b__MA7naqebvq11OaVagresnprVAF_14VErzbgrQvfcynlRR10baNfOvaqreRi
 .type b__MA7naqebvq11OaVagresnprVAF_14VErzbgrQvfcynlRR10baNfOvaqreRi,%function
 b__MA7naqebvq11OaVagresnprVAF_14VErzbgrQvfcynlRR10baNfOvaqreRi:
 nop
@@ -3203,27 +3203,27 @@
 b__MGIA7naqebvq20VZrqvnUGGCPbaarpgvbaR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq6IrpgbeVCAF_13ZrqvnCebsvyrf26VzntrRapbqvatDhnyvglYriryfRR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVCAF_13ZrqvnCebsvyrf26VzntrRapbqvatDhnyvglYriryfRR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVCAF_13ZrqvnCebsvyrf26VzntrRapbqvatDhnyvglYriryfRR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVCAF_13ZrqvnCebsvyrf26VzntrRapbqvatDhnyvglYriryfRR7qb_pbclRCiCXiz:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVzA7naqebvq2fcVAF2_7VZrzbelRRRRRAF_19__znc_inyhr_pbzcnerVzF6_AF_4yrffVzRRYo1RRRAF_9nyybpngbeVF6_RRR25__rzcynpr_havdhr_xrl_netfVzWEzEXF5_RRRAF_4cnveVAF_15__gerr_vgrengbeVF6_CAF_11__gerr_abqrVF6_CiRRyRRoRREXG_QcBG0_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVzA7naqebvq2fcVAF2_7VZrzbelRRRRRAF_19__znc_inyhr_pbzcnerVzF6_AF_4yrffVzRRYo1RRRAF_9nyybpngbeVF6_RRR25__rzcynpr_havdhr_xrl_netfVzWEzEXF5_RRRAF_4cnveVAF_15__gerr_vgrengbeVF6_CAF_11__gerr_abqrVF6_CiRRyRRoRREXG_QcBG0_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVzA7naqebvq2fcVAF2_7VZrzbelRRRRRAF_19__znc_inyhr_pbzcnerVzF6_AF_4yrffVzRRYo1RRRAF_9nyybpngbeVF6_RRR25__rzcynpr_havdhr_xrl_netfVzWEzEXF5_RRRAF_4cnveVAF_15__gerr_vgrengbeVF6_CAF_11__gerr_abqrVF6_CiRRyRRoRREXG_QcBG0_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVzA7naqebvq2fcVAF2_7VZrzbelRRRRRAF_19__znc_inyhr_pbzcnerVzF6_AF_4yrffVzRRYo1RRRAF_9nyybpngbeVF6_RRR25__rzcynpr_havdhr_xrl_netfVzWEzEXF5_RRRAF_4cnveVAF_15__gerr_vgrengbeVF6_CAF_11__gerr_abqrVF6_CiRRyRRoRREXG_QcBG0_:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVCAF_13ZrqvnCebsvyrf26VzntrRapbqvatDhnyvglYriryfRR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVCAF_13ZrqvnCebsvyrf26VzntrRapbqvatDhnyvglYriryfRR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVCAF_13ZrqvnCebsvyrf26VzntrRapbqvatDhnyvglYriryfRR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVCAF_13ZrqvnCebsvyrf26VzntrRapbqvatDhnyvglYriryfRR15qb_zbir_sbejneqRCiCXiz:
 nop
 .data
-.globl b__MGGA7naqebvq23OcErfbheprZnantrePyvragR
+.weak b__MGGA7naqebvq23OcErfbheprZnantrePyvragR
 .type b__MGGA7naqebvq23OcErfbheprZnantrePyvragR,%object
 b__MGGA7naqebvq23OcErfbheprZnantrePyvragR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_19ZrqvnErfbheprCbyvplRR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_19ZrqvnErfbheprCbyvplRR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_19ZrqvnErfbheprCbyvplRR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_19ZrqvnErfbheprCbyvplRR7qb_pbclRCiCXiz:
 nop
@@ -3233,22 +3233,22 @@
 b__MA7naqebvq18ZrqvnFpnaarePyvrag9ortvaSvyrRi:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR12qb_pbafgehpgRCiz:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_13ivqrb_rapbqreRR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_13ivqrb_rapbqreRR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_13ivqrb_rapbqreRR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_13ivqrb_rapbqreRR7qb_pbclRCiCXiz:
 nop
 .data
-.globl b__MGGA7naqebvq20OcZrqvnCynlreFreivprR
+.weak b__MGGA7naqebvq20OcZrqvnCynlreFreivprR
 .type b__MGGA7naqebvq20OcZrqvnCynlreFreivprR,%object
 b__MGGA7naqebvq20OcZrqvnCynlreFreivprR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_19ZrqvnErfbheprCbyvplRR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq6IrpgbeVAF_19ZrqvnErfbheprCbyvplRR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq6IrpgbeVAF_19ZrqvnErfbheprCbyvplRR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq6IrpgbeVAF_19ZrqvnErfbheprCbyvplRR10qb_qrfgeblRCiz:
 nop
@@ -3258,7 +3258,7 @@
 b__MA7naqebvq20VZrqvnUGGCPbaarpgvbaQ2Ri:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq5zrqvn14ZvpebcubarVasbRAF_9nyybpngbeVF3_RRR8__nccraqRz
+.weak b__MAFg3__16irpgbeVA7naqebvq5zrqvn14ZvpebcubarVasbRAF_9nyybpngbeVF3_RRR8__nccraqRz
 .type b__MAFg3__16irpgbeVA7naqebvq5zrqvn14ZvpebcubarVasbRAF_9nyybpngbeVF3_RRR8__nccraqRz,%function
 b__MAFg3__16irpgbeVA7naqebvq5zrqvn14ZvpebcubarVasbRAF_9nyybpngbeVF3_RRR8__nccraqRz:
 nop
@@ -3283,7 +3283,7 @@
 b__MGPA7naqebvq23OaErfbheprZnantrePyvragR0_AF_10VVagresnprR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_13ZrqvnErfbheprRR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_13ZrqvnErfbheprRR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_13ZrqvnErfbheprRR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_13ZrqvnErfbheprRR8qb_fcyngRCiCXiz:
 nop
@@ -3293,7 +3293,7 @@
 b__MA7naqebvq25PunenpgreRapbqvatQrgrpgbeQ2Ri:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_4unfuVF6_RRAF_8rdhny_gbVF6_RRAF4_VF6_RRR6erunfuRz
+.weak b__MAFg3__112__unfu_gnoyrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_4unfuVF6_RRAF_8rdhny_gbVF6_RRAF4_VF6_RRR6erunfuRz
 .type b__MAFg3__112__unfu_gnoyrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_4unfuVF6_RRAF_8rdhny_gbVF6_RRAF4_VF6_RRR6erunfuRz,%function
 b__MAFg3__112__unfu_gnoyrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_4unfuVF6_RRAF_8rdhny_gbVF6_RRAF4_VF6_RRR6erunfuRz:
 nop
@@ -3303,7 +3303,7 @@
 b__MGPA7naqebvq15OaErzbgrQvfcynlR0_AF_10VVagresnprR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_13ZrqvnErfbheprRR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq6IrpgbeVAF_13ZrqvnErfbheprRR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq6IrpgbeVAF_13ZrqvnErfbheprRR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq6IrpgbeVAF_13ZrqvnErfbheprRR12qb_pbafgehpgRCiz:
 nop
@@ -3313,7 +3313,7 @@
 b__MGPA7naqebvq16OaFgernzYvfgrareR8_AF_7VOvaqreR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGGA7naqebvq16OcZrqvnRkgenpgbeR
+.weak b__MGGA7naqebvq16OcZrqvnRkgenpgbeR
 .type b__MGGA7naqebvq16OcZrqvnRkgenpgbeR,%object
 b__MGGA7naqebvq16OcZrqvnRkgenpgbeR:
 .space __SIZEOF_POINTER__
@@ -3323,7 +3323,7 @@
 b__MGPA7naqebvq20OaZrqvnCynlreFreivprR8_AF_7OOvaqreR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq6IrpgbeVvR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVvR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVvR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVvR16qb_zbir_onpxjneqRCiCXiz:
 nop
@@ -3348,7 +3348,7 @@
 b__MGIA7naqebvq21OaErzbgrQvfcynlPyvragR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGPA7naqebvq24OcErfbheprZnantreFreivprR0_AF_23VErfbheprZnantreFreivprR
+.weak b__MGPA7naqebvq24OcErfbheprZnantreFreivprR0_AF_23VErfbheprZnantreFreivprR
 .type b__MGPA7naqebvq24OcErfbheprZnantreFreivprR0_AF_23VErfbheprZnantreFreivprR,%object
 b__MGPA7naqebvq24OcErfbheprZnantreFreivprR0_AF_23VErfbheprZnantreFreivprR:
 .space __SIZEOF_POINTER__
@@ -3358,12 +3358,12 @@
 b__MA7naqebvq5zrqvn8ZrgnqngnP1RCAF_6CnepryR:
 nop
 .data
-.globl b__MGGA7naqebvq12OcQngnFbheprR
+.weak b__MGGA7naqebvq12OcQngnFbheprR
 .type b__MGGA7naqebvq12OcQngnFbheprR,%object
 b__MGGA7naqebvq12OcQngnFbheprR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq6IrpgbeVCAF_15ZrqvnOhssreOnfrRR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq6IrpgbeVCAF_15ZrqvnOhssreOnfrRR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq6IrpgbeVCAF_15ZrqvnOhssreOnfrRR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq6IrpgbeVCAF_15ZrqvnOhssreOnfrRR10qb_qrfgeblRCiz:
 nop
@@ -3388,7 +3388,7 @@
 b__MA7naqebvq13ZrqvnCebsvyrf12purpxKzySvyrRCXp:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_13nhqvb_qrpbqreRR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_13nhqvb_qrpbqreRR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_13nhqvb_qrpbqreRR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_13nhqvb_qrpbqreRR8qb_fcyngRCiCXiz:
 nop
@@ -3398,17 +3398,17 @@
 b__MAX7naqebvq19VZrqvnCynlreFreivpr22trgVagresnprQrfpevcgbeRi:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVsR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq6IrpgbeVsR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq6IrpgbeVsR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq6IrpgbeVsR12qb_pbafgehpgRCiz:
 nop
 .text
-.globl b__MAFg3__16irpgbeVsAF_9nyybpngbeVsRRR21__chfu_onpx_fybj_cnguVEXsRRiBG_
+.weak b__MAFg3__16irpgbeVsAF_9nyybpngbeVsRRR21__chfu_onpx_fybj_cnguVEXsRRiBG_
 .type b__MAFg3__16irpgbeVsAF_9nyybpngbeVsRRR21__chfu_onpx_fybj_cnguVEXsRRiBG_,%function
 b__MAFg3__16irpgbeVsAF_9nyybpngbeVsRRR21__chfu_onpx_fybj_cnguVEXsRRiBG_:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVCAF_13ZrqvnCebsvyrf16PnzpbeqreCebsvyrRR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVCAF_13ZrqvnCebsvyrf16PnzpbeqreCebsvyrRR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVCAF_13ZrqvnCebsvyrf16PnzpbeqreCebsvyrRR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVCAF_13ZrqvnCebsvyrf16PnzpbeqreCebsvyrRR16qb_zbir_onpxjneqRCiCXiz:
 nop
@@ -3418,7 +3418,7 @@
 b__MA7naqebvq15VFgernzYvfgrareQ1Ri:
 nop
 .data
-.globl b__MGPA7naqebvq18OcZrqvnUGGCFreivprR0_AF_16ZrqvnUGGCFreivprR
+.weak b__MGPA7naqebvq18OcZrqvnUGGCFreivprR0_AF_16ZrqvnUGGCFreivprR
 .type b__MGPA7naqebvq18OcZrqvnUGGCFreivprR0_AF_16ZrqvnUGGCFreivprR,%object
 b__MGPA7naqebvq18OcZrqvnUGGCFreivprR0_AF_16ZrqvnUGGCFreivprR:
 .space __SIZEOF_POINTER__
@@ -3453,7 +3453,7 @@
 b__MA7naqebvq17VZrqvnUGGCFreivpr14frgQrsnhygVzcyRAFg3__110havdhr_cgeVF0_AF1_14qrsnhyg_qryrgrVF0_RRRR:
 nop
 .data
-.globl b__MGIA7naqebvq18OcZrqvnUGGCFreivprR
+.weak b__MGIA7naqebvq18OcZrqvnUGGCFreivprR
 .type b__MGIA7naqebvq18OcZrqvnUGGCFreivprR,%object
 b__MGIA7naqebvq18OcZrqvnUGGCFreivprR:
 .space __SIZEOF_POINTER__
@@ -3473,7 +3473,7 @@
 b__MGi0_a24_A7naqebvq15VZrqvnRkgenpgbeQ1Ri:
 nop
 .text
-.globl b__MA7naqebvq11OaVagresnprVAF_14VZrqvnErpbeqreRR10baNfOvaqreRi
+.weak b__MA7naqebvq11OaVagresnprVAF_14VZrqvnErpbeqreRR10baNfOvaqreRi
 .type b__MA7naqebvq11OaVagresnprVAF_14VZrqvnErpbeqreRR10baNfOvaqreRi,%function
 b__MA7naqebvq11OaVagresnprVAF_14VZrqvnErpbeqreRR10baNfOvaqreRi:
 nop
@@ -3518,22 +3518,22 @@
 b__MGPA7naqebvq23OaZrqvnRkgenpgbeFreivprR0_AF_11OaVagresnprVAF_22VZrqvnRkgenpgbeFreivprRRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq6IrpgbeVCAF_15ZrqvnOhssreOnfrRR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVCAF_15ZrqvnOhssreOnfrRR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVCAF_15ZrqvnOhssreOnfrRR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVCAF_15ZrqvnOhssreOnfrRR7qb_pbclRCiCXiz:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_13bhgchg_sbezngRR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_13bhgchg_sbezngRR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_13bhgchg_sbezngRR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_13bhgchg_sbezngRR7qb_pbclRCiCXiz:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVCAF_13ZrqvnCebsvyrf15NhqvbRapbqrePncRR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq6IrpgbeVCAF_13ZrqvnCebsvyrf15NhqvbRapbqrePncRR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq6IrpgbeVCAF_13ZrqvnCebsvyrf15NhqvbRapbqrePncRR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq6IrpgbeVCAF_13ZrqvnCebsvyrf15NhqvbRapbqrePncRR10qb_qrfgeblRCiz:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVCAF_13ZrqvnCebsvyrf15IvqrbQrpbqrePncRR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVCAF_13ZrqvnCebsvyrf15IvqrbQrpbqrePncRR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVCAF_13ZrqvnCebsvyrf15IvqrbQrpbqrePncRR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVCAF_13ZrqvnCebsvyrf15IvqrbQrpbqrePncRR8qb_fcyngRCiCXiz:
 nop
@@ -3568,12 +3568,12 @@
 b__MA7naqebvq13ZrqvnErpbeqre13frgPyvragAnzrREXAF_8Fgevat16R:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVCX13HPunefrgZngpuR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq6IrpgbeVCX13HPunefrgZngpuR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq6IrpgbeVCX13HPunefrgZngpuR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq6IrpgbeVCX13HPunefrgZngpuR10qb_qrfgeblRCiz:
 nop
 .text
-.globl b__MAFg3__113__irpgbe_onfrVA7naqebvq5zrqvn14ZvpebcubarVasbRAF_9nyybpngbeVF3_RRRQ2Ri
+.weak b__MAFg3__113__irpgbe_onfrVA7naqebvq5zrqvn14ZvpebcubarVasbRAF_9nyybpngbeVF3_RRRQ2Ri
 .type b__MAFg3__113__irpgbe_onfrVA7naqebvq5zrqvn14ZvpebcubarVasbRAF_9nyybpngbeVF3_RRRQ2Ri,%function
 b__MAFg3__113__irpgbe_onfrVA7naqebvq5zrqvn14ZvpebcubarVasbRAF_9nyybpngbeVF3_RRRQ2Ri:
 nop
@@ -3583,17 +3583,17 @@
 b__MA7naqebvq19ZrqvnErfbheprCbyvplP1Ri:
 nop
 .data
-.globl b__MGPA7naqebvq24OcErfbheprZnantreFreivprR8_AF_9OcErsOnfrR
+.weak b__MGPA7naqebvq24OcErfbheprZnantreFreivprR8_AF_9OcErsOnfrR
 .type b__MGPA7naqebvq24OcErfbheprZnantreFreivprR8_AF_9OcErsOnfrR,%object
 b__MGPA7naqebvq24OcErfbheprZnantreFreivprR8_AF_9OcErsOnfrR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGPA7naqebvq24OcZrqvnZrgnqngnErgevrireR8_AF_9OcErsOnfrR
+.weak b__MGPA7naqebvq24OcZrqvnZrgnqngnErgevrireR8_AF_9OcErsOnfrR
 .type b__MGPA7naqebvq24OcZrqvnZrgnqngnErgevrireR8_AF_9OcErsOnfrR,%object
 b__MGPA7naqebvq24OcZrqvnZrgnqngnErgevrireR8_AF_9OcErsOnfrR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGGA7naqebvq24OcZrqvnZrgnqngnErgevrireR
+.weak b__MGGA7naqebvq24OcZrqvnZrgnqngnErgevrireR
 .type b__MGGA7naqebvq24OcZrqvnZrgnqngnErgevrireR,%object
 b__MGGA7naqebvq24OcZrqvnZrgnqngnErgevrireR:
 .space __SIZEOF_POINTER__
@@ -3618,22 +3618,22 @@
 b__MA7naqebvq19VZrqvnCynlreFreivpr12qrsnhyg_vzcyR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGPA7naqebvq20OcZrqvnCynlreFreivprR0_AF_10VVagresnprR
+.weak b__MGPA7naqebvq20OcZrqvnCynlreFreivprR0_AF_10VVagresnprR
 .type b__MGPA7naqebvq20OcZrqvnCynlreFreivprR0_AF_10VVagresnprR,%object
 b__MGPA7naqebvq20OcZrqvnCynlreFreivprR0_AF_10VVagresnprR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_4unfuVF6_RRAF_8rdhny_gbVF6_RRAF4_VF6_RRR25__rzcynpr_havdhr_xrl_netfVF6_WF6_RRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF6_CiRRRRoRREXG_QcBG0_
+.weak b__MAFg3__112__unfu_gnoyrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_4unfuVF6_RRAF_8rdhny_gbVF6_RRAF4_VF6_RRR25__rzcynpr_havdhr_xrl_netfVF6_WF6_RRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF6_CiRRRRoRREXG_QcBG0_
 .type b__MAFg3__112__unfu_gnoyrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_4unfuVF6_RRAF_8rdhny_gbVF6_RRAF4_VF6_RRR25__rzcynpr_havdhr_xrl_netfVF6_WF6_RRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF6_CiRRRRoRREXG_QcBG0_,%function
 b__MAFg3__112__unfu_gnoyrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_4unfuVF6_RRAF_8rdhny_gbVF6_RRAF4_VF6_RRR25__rzcynpr_havdhr_xrl_netfVF6_WF6_RRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF6_CiRRRRoRREXG_QcBG0_:
 nop
 .data
-.globl b__MGPA7naqebvq14OcFgernzFbheprR0_AF_13VFgernzFbheprR
+.weak b__MGPA7naqebvq14OcFgernzFbheprR0_AF_13VFgernzFbheprR
 .type b__MGPA7naqebvq14OcFgernzFbheprR0_AF_13VFgernzFbheprR,%object
 b__MGPA7naqebvq14OcFgernzFbheprR0_AF_13VFgernzFbheprR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIA7naqebvq6IrpgbeVAF_13nhqvb_qrpbqreRRR
+.weak b__MGIA7naqebvq6IrpgbeVAF_13nhqvb_qrpbqreRRR
 .type b__MGIA7naqebvq6IrpgbeVAF_13nhqvb_qrpbqreRRR,%object
 b__MGIA7naqebvq6IrpgbeVAF_13nhqvb_qrpbqreRRR:
 .space __SIZEOF_POINTER__
@@ -3653,27 +3653,27 @@
 b__MA7naqebvq17VZrqvnUGGCFreivpr10qrfpevcgbeR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_17RkgenpgbeVafgnaprRR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq6IrpgbeVAF_17RkgenpgbeVafgnaprRR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq6IrpgbeVAF_17RkgenpgbeVafgnaprRR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq6IrpgbeVAF_17RkgenpgbeVafgnaprRR12qb_pbafgehpgRCiz:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR8qb_fcyngRCiCXiz:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF0_VsRRR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF0_VsRRR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF0_VsRRR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF0_VsRRR8qb_fcyngRCiCXiz:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVvR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVvR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVvR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVvR8qb_fcyngRCiCXiz:
 nop
 .data
-.globl b__MGIA7naqebvq5zrqvn14ZvpebcubarVasbR
+.weak b__MGIA7naqebvq5zrqvn14ZvpebcubarVasbR
 .type b__MGIA7naqebvq5zrqvn14ZvpebcubarVasbR,%object
 b__MGIA7naqebvq5zrqvn14ZvpebcubarVasbR:
 .space __SIZEOF_POINTER__
@@ -3688,7 +3688,7 @@
 b__MA7naqebvq22VZrqvnRkgenpgbeFreivpr14trgQrsnhygVzcyRi:
 nop
 .data
-.globl b__MGGA7naqebvq21OcZrqvnErpbeqrePyvragR
+.weak b__MGGA7naqebvq21OcZrqvnErpbeqrePyvragR
 .type b__MGGA7naqebvq21OcZrqvnErpbeqrePyvragR,%object
 b__MGGA7naqebvq21OcZrqvnErpbeqrePyvragR:
 .space __SIZEOF_POINTER__
@@ -3698,22 +3698,22 @@
 b__MA7naqebvq12VZrqvnCynlreQ2Ri:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVuR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVuR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVuR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVuR8qb_fcyngRCiCXiz:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvvRRR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvvRRR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvvRRR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvvRRR16qb_zbir_onpxjneqRCiCXiz:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_13bhgchg_sbezngRR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq6IrpgbeVAF_13bhgchg_sbezngRR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq6IrpgbeVAF_13bhgchg_sbezngRR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq6IrpgbeVAF_13bhgchg_sbezngRR12qb_pbafgehpgRCiz:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVCAF_13ZrqvnCebsvyrf16PnzpbeqreCebsvyrRR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq6IrpgbeVCAF_13ZrqvnCebsvyrf16PnzpbeqreCebsvyrRR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq6IrpgbeVCAF_13ZrqvnCebsvyrf16PnzpbeqreCebsvyrRR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq6IrpgbeVCAF_13ZrqvnCebsvyrf16PnzpbeqreCebsvyrRR10qb_qrfgeblRCiz:
 nop
@@ -3723,7 +3723,7 @@
 b__MA7naqebvq20VZrqvnErpbeqrePyvrag10qrfpevcgbeR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIA7naqebvq6IrpgbeVvRR
+.weak b__MGIA7naqebvq6IrpgbeVvRR
 .type b__MGIA7naqebvq6IrpgbeVvRR,%object
 b__MGIA7naqebvq6IrpgbeVvRR:
 .space __SIZEOF_POINTER__
@@ -3758,7 +3758,7 @@
 b__MAX7naqebvq17VZrqvnUGGCFreivpr22trgVagresnprQrfpevcgbeRi:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVsR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVsR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVsR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVsR8qb_fcyngRCiCXiz:
 nop
@@ -3773,7 +3773,7 @@
 b__MA7naqebvq13ZrqvnErpbeqre15frgNhqvbRapbqreRv:
 nop
 .data
-.globl b__MGIA7naqebvq6IrpgbeVAF_2jcVAF_12VZrqvnFbheprRRRRR
+.weak b__MGIA7naqebvq6IrpgbeVAF_2jcVAF_12VZrqvnFbheprRRRRR
 .type b__MGIA7naqebvq6IrpgbeVAF_2jcVAF_12VZrqvnFbheprRRRRR,%object
 b__MGIA7naqebvq6IrpgbeVAF_2jcVAF_12VZrqvnFbheprRRRRR:
 .space __SIZEOF_POINTER__
@@ -3793,17 +3793,17 @@
 b__MA7naqebvq22VErfbheprZnantrePyvrag14frgQrsnhygVzcyRAFg3__110havdhr_cgeVF0_AF1_14qrsnhyg_qryrgrVF0_RRRR:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_7Fgevat8RRRR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_7Fgevat8RRRR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_7Fgevat8RRRR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_7Fgevat8RRRR15qb_zbir_sbejneqRCiCXiz:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVCAF_13ZrqvnCebsvyrf26VzntrRapbqvatDhnyvglYriryfRR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq6IrpgbeVCAF_13ZrqvnCebsvyrf26VzntrRapbqvatDhnyvglYriryfRR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq6IrpgbeVCAF_13ZrqvnCebsvyrf26VzntrRapbqvatDhnyvglYriryfRR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq6IrpgbeVCAF_13ZrqvnCebsvyrf26VzntrRapbqvatDhnyvglYriryfRR10qb_qrfgeblRCiz:
 nop
 .data
-.globl b__MGPA7naqebvq16OcZrqvnRkgenpgbeR8_AF_9OcErsOnfrR
+.weak b__MGPA7naqebvq16OcZrqvnRkgenpgbeR8_AF_9OcErsOnfrR
 .type b__MGPA7naqebvq16OcZrqvnRkgenpgbeR8_AF_9OcErsOnfrR,%object
 b__MGPA7naqebvq16OcZrqvnRkgenpgbeR8_AF_9OcErsOnfrR:
 .space __SIZEOF_POINTER__
@@ -3833,7 +3833,7 @@
 b__MA7naqebvq20VZrqvnUGGCPbaarpgvbaQ1Ri:
 nop
 .text
-.globl b__MA7naqebvq11OaVagresnprVAF_12VZrqvnFbheprRR10baNfOvaqreRi
+.weak b__MA7naqebvq11OaVagresnprVAF_12VZrqvnFbheprRR10baNfOvaqreRi
 .type b__MA7naqebvq11OaVagresnprVAF_12VZrqvnFbheprRR10baNfOvaqreRi,%function
 b__MA7naqebvq11OaVagresnprVAF_12VZrqvnFbheprRR10baNfOvaqreRi:
 nop
@@ -3868,7 +3868,7 @@
 b__MGPA7naqebvq20VZrqvnErpbeqrePyvragR0_AF_10VVagresnprR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR16qb_zbir_onpxjneqRCiCXiz:
 nop
@@ -3913,7 +3913,7 @@
 b__MA7naqebvq12ZrqvnFpnaare16cebprffQverpgbelRCXpEAF_18ZrqvnFpnaarePyvragR:
 nop
 .data
-.globl b__MGPA7naqebvq15OcZrqvnErpbeqreR0_AF_11OcVagresnprVAF_14VZrqvnErpbeqreRRR
+.weak b__MGPA7naqebvq15OcZrqvnErpbeqreR0_AF_11OcVagresnprVAF_14VZrqvnErpbeqreRRR
 .type b__MGPA7naqebvq15OcZrqvnErpbeqreR0_AF_11OcVagresnprVAF_14VZrqvnErpbeqreRRR,%object
 b__MGPA7naqebvq15OcZrqvnErpbeqreR0_AF_11OcVagresnprVAF_14VZrqvnErpbeqreRRR:
 .space __SIZEOF_POINTER__
@@ -3938,7 +3938,7 @@
 b__MA7naqebvq23VZrqvnZrgnqngnErgevrire11nfVagresnprREXAF_2fcVAF_7VOvaqreRRR:
 nop
 .data
-.globl b__MGIA7naqebvq24ErzbgrZrqvnOhssreJenccreR
+.weak b__MGIA7naqebvq24ErzbgrZrqvnOhssreJenccreR
 .type b__MGIA7naqebvq24ErzbgrZrqvnOhssreJenccreR,%object
 b__MGIA7naqebvq24ErzbgrZrqvnOhssreJenccreR:
 .space __SIZEOF_POINTER__
@@ -3973,12 +3973,12 @@
 b__MA7naqebvq13ZrqvnCebsvyrfQ2Ri:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_13ivqrb_qrpbqreRR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_13ivqrb_qrpbqreRR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_13ivqrb_qrpbqreRR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_13ivqrb_qrpbqreRR7qb_pbclRCiCXiz:
 nop
 .data
-.globl b__MGGA7naqebvq19OcZrqvnCynlrePyvragR
+.weak b__MGGA7naqebvq19OcZrqvnCynlrePyvragR
 .type b__MGGA7naqebvq19OcZrqvnCynlrePyvragR,%object
 b__MGGA7naqebvq19OcZrqvnCynlrePyvragR:
 .space __SIZEOF_POINTER__
@@ -4008,7 +4008,7 @@
 b__MA7naqebvq13ZrqvnCebsvyrf37perngrQrsnhygRapbqreBhgchgSvyrSbezngfRCF0_:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVCAF_13ZrqvnCebsvyrf26VzntrRapbqvatDhnyvglYriryfRR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq6IrpgbeVCAF_13ZrqvnCebsvyrf26VzntrRapbqvatDhnyvglYriryfRR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq6IrpgbeVCAF_13ZrqvnCebsvyrf26VzntrRapbqvatDhnyvglYriryfRR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq6IrpgbeVCAF_13ZrqvnCebsvyrf26VzntrRapbqvatDhnyvglYriryfRR12qb_pbafgehpgRCiz:
 nop
@@ -4043,7 +4043,7 @@
 b__MGua8_A7naqebvq23OaErfbheprZnantrePyvrag10baGenafnpgRwEXAF_6CnepryRCF1_w:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_13bhgchg_sbezngRR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq6IrpgbeVAF_13bhgchg_sbezngRR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq6IrpgbeVAF_13bhgchg_sbezngRR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq6IrpgbeVAF_13bhgchg_sbezngRR10qb_qrfgeblRCiz:
 nop
@@ -4058,7 +4058,7 @@
 b__MA7naqebvq11ZrqvnCynlre21purpxFgngrSbeXrlFrg_yRv:
 nop
 .text
-.globl b__MA7naqebvq2fcVAF_17VZrqvnUGGCFreivprRRnFRBF2_
+.weak b__MA7naqebvq2fcVAF_17VZrqvnUGGCFreivprRRnFRBF2_
 .type b__MA7naqebvq2fcVAF_17VZrqvnUGGCFreivprRRnFRBF2_,%function
 b__MA7naqebvq2fcVAF_17VZrqvnUGGCFreivprRRnFRBF2_:
 nop
@@ -4078,7 +4078,7 @@
 b__MGGA7naqebvq16OaZrqvnRkgenpgbeR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGPA7naqebvq19OcZrqvnCynlrePyvragR0_AF_10VVagresnprR
+.weak b__MGPA7naqebvq19OcZrqvnCynlrePyvragR0_AF_10VVagresnprR
 .type b__MGPA7naqebvq19OcZrqvnCynlrePyvragR0_AF_10VVagresnprR,%object
 b__MGPA7naqebvq19OcZrqvnCynlrePyvragR0_AF_10VVagresnprR:
 .space __SIZEOF_POINTER__
@@ -4108,7 +4108,7 @@
 b__MA7naqebvq18ZrqvnFpnaarePyvrag9frgYbpnyrRCXp:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_2jcVAF_19VZrqvnQrnguAbgvsvreRRRR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_2jcVAF_19VZrqvnQrnguAbgvsvreRRRR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_2jcVAF_19VZrqvnQrnguAbgvsvreRRRR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_2jcVAF_19VZrqvnQrnguAbgvsvreRRRR7qb_pbclRCiCXiz:
 nop
@@ -4118,7 +4118,7 @@
 b__MAX7naqebvq13ZrqvnCebsvyrf20trgFgnegGvzrBssfrgZfRv:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_13ivqrb_rapbqreRR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq6IrpgbeVAF_13ivqrb_rapbqreRR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq6IrpgbeVAF_13ivqrb_rapbqreRR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq6IrpgbeVAF_13ivqrb_rapbqreRR10qb_qrfgeblRCiz:
 nop
@@ -4153,7 +4153,7 @@
 b__MA7naqebvq11ZrqvnCynlre6frrxGbRvAF_10ZrqvnGenpx11ErnqBcgvbaf8FrrxZbqrR:
 nop
 .data
-.globl b__MGPA7naqebvq20OcZrqvnCynlreFreivprR0_AF_11OcVagresnprVAF_19VZrqvnCynlreFreivprRRR
+.weak b__MGPA7naqebvq20OcZrqvnCynlreFreivprR0_AF_11OcVagresnprVAF_19VZrqvnCynlreFreivprRRR
 .type b__MGPA7naqebvq20OcZrqvnCynlreFreivprR0_AF_11OcVagresnprVAF_19VZrqvnCynlreFreivprRRR,%object
 b__MGPA7naqebvq20OcZrqvnCynlreFreivprR0_AF_11OcVagresnprVAF_19VZrqvnCynlreFreivprRRR:
 .space __SIZEOF_POINTER__
@@ -4163,17 +4163,17 @@
 b__MGIA7naqebvq18ZrqvnFpnaarePyvragR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvvRRRR
+.weak b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvvRRRR
 .type b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvvRRRR,%object
 b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvvRRRR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGGA7naqebvq18OcZrqvnUGGCFreivprR
+.weak b__MGGA7naqebvq18OcZrqvnUGGCFreivprR
 .type b__MGGA7naqebvq18OcZrqvnUGGCFreivprR,%object
 b__MGGA7naqebvq18OcZrqvnUGGCFreivprR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGPA7naqebvq15OcZrqvnErpbeqreR8_AF_9OcErsOnfrR
+.weak b__MGPA7naqebvq15OcZrqvnErpbeqreR8_AF_9OcErsOnfrR
 .type b__MGPA7naqebvq15OcZrqvnErpbeqreR8_AF_9OcErsOnfrR,%object
 b__MGPA7naqebvq15OcZrqvnErpbeqreR8_AF_9OcErsOnfrR:
 .space __SIZEOF_POINTER__
@@ -4198,12 +4198,12 @@
 b__MA7naqebvq5zrqvn8Zrgnqngn10nccraqObbyRvo:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVCX13HPunefrgZngpuR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq6IrpgbeVCX13HPunefrgZngpuR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq6IrpgbeVCX13HPunefrgZngpuR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq6IrpgbeVCX13HPunefrgZngpuR12qb_pbafgehpgRCiz:
 nop
 .data
-.globl b__MGIA7naqebvq6IrpgbeVCAF_13ZrqvnCebsvyrf16PnzpbeqreCebsvyrRRR
+.weak b__MGIA7naqebvq6IrpgbeVCAF_13ZrqvnCebsvyrf16PnzpbeqreCebsvyrRRR
 .type b__MGIA7naqebvq6IrpgbeVCAF_13ZrqvnCebsvyrf16PnzpbeqreCebsvyrRRR,%object
 b__MGIA7naqebvq6IrpgbeVCAF_13ZrqvnCebsvyrf16PnzpbeqreCebsvyrRRR:
 .space __SIZEOF_POINTER__
@@ -4228,12 +4228,12 @@
 b__MGPA7naqebvq19OaZrqvnCynlrePyvragR8_AF_7OOvaqreR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIA7naqebvq5zrqvn12IbyhzrFuncre9BcrengvbaR
+.weak b__MGIA7naqebvq5zrqvn12IbyhzrFuncre9BcrengvbaR
 .type b__MGIA7naqebvq5zrqvn12IbyhzrFuncre9BcrengvbaR,%object
 b__MGIA7naqebvq5zrqvn12IbyhzrFuncre9BcrengvbaR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGPA7naqebvq13OcZrqvnFbheprR0_AF_12VZrqvnFbheprR
+.weak b__MGPA7naqebvq13OcZrqvnFbheprR0_AF_12VZrqvnFbheprR
 .type b__MGPA7naqebvq13OcZrqvnFbheprR0_AF_12VZrqvnFbheprR,%object
 b__MGPA7naqebvq13OcZrqvnFbheprR0_AF_12VZrqvnFbheprR:
 .space __SIZEOF_POINTER__
@@ -4253,7 +4253,7 @@
 b__MA7naqebvq12VZrqvnCynlreQ1Ri:
 nop
 .data
-.globl b__MGIA7naqebvq6IrpgbeVuRR
+.weak b__MGIA7naqebvq6IrpgbeVuRR
 .type b__MGIA7naqebvq6IrpgbeVuRR,%object
 b__MGIA7naqebvq6IrpgbeVuRR:
 .space __SIZEOF_POINTER__
@@ -4278,7 +4278,7 @@
 b__MA7naqebvq13ZrqvnErpbeqre4vavgRi:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_7Fgevat8RRRR10qb_pbzcnerRCXiF6_
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_7Fgevat8RRRR10qb_pbzcnerRCXiF6_
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_7Fgevat8RRRR10qb_pbzcnerRCXiF6_,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_7Fgevat8RRRR10qb_pbzcnerRCXiF6_:
 nop
@@ -4293,12 +4293,12 @@
 b__MGi0_a24_A7naqebvq22ZrqvnZrgnqngnErgevrire13QrnguAbgvsvreQ0Ri:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVCAF_13ZrqvnCebsvyrf15IvqrbRapbqrePncRR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq6IrpgbeVCAF_13ZrqvnCebsvyrf15IvqrbRapbqrePncRR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq6IrpgbeVCAF_13ZrqvnCebsvyrf15IvqrbRapbqrePncRR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq6IrpgbeVCAF_13ZrqvnCebsvyrf15IvqrbRapbqrePncRR12qb_pbafgehpgRCiz:
 nop
 .data
-.globl b__MGIA7naqebvq21OcZrqvnUGGCPbaarpgvbaR
+.weak b__MGIA7naqebvq21OcZrqvnUGGCPbaarpgvbaR
 .type b__MGIA7naqebvq21OcZrqvnUGGCPbaarpgvbaR,%object
 b__MGIA7naqebvq21OcZrqvnUGGCPbaarpgvbaR:
 .space __SIZEOF_POINTER__
@@ -4313,7 +4313,7 @@
 b__MA7naqebvq11ZrqvnCynlre13frgQngnFbheprREXAF_2fcVAF_17VZrqvnUGGCFreivprRRRCXpCXAF_11XrlrqIrpgbeVAF_7Fgevat8RF9_RR:
 nop
 .data
-.globl b__MGPA7naqebvq21OcZrqvnUGGCPbaarpgvbaR0_AF_20VZrqvnUGGCPbaarpgvbaR
+.weak b__MGPA7naqebvq21OcZrqvnUGGCPbaarpgvbaR0_AF_20VZrqvnUGGCPbaarpgvbaR
 .type b__MGPA7naqebvq21OcZrqvnUGGCPbaarpgvbaR0_AF_20VZrqvnUGGCPbaarpgvbaR,%object
 b__MGPA7naqebvq21OcZrqvnUGGCPbaarpgvbaR0_AF_20VZrqvnUGGCPbaarpgvbaR:
 .space __SIZEOF_POINTER__
@@ -4358,7 +4358,7 @@
 b__MA7naqebvq13ZrqvnErpbeqre7qbErfrgRi:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvvRRR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvvRRR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvvRRR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvvRRR8qb_fcyngRCiCXiz:
 nop
@@ -4378,12 +4378,12 @@
 b__MA7naqebvq12VZrqvnFbhepr10qrfpevcgbeR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq11OaVagresnprVAF_15VFgernzYvfgrareRR10baNfOvaqreRi
+.weak b__MA7naqebvq11OaVagresnprVAF_15VFgernzYvfgrareRR10baNfOvaqreRi
 .type b__MA7naqebvq11OaVagresnprVAF_15VFgernzYvfgrareRR10baNfOvaqreRi,%function
 b__MA7naqebvq11OaVagresnprVAF_15VFgernzYvfgrareRR10baNfOvaqreRi:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_2fcVAF_7VZrzbelRRRR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_2fcVAF_7VZrzbelRRRR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_2fcVAF_7VZrzbelRRRR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_2fcVAF_7VZrzbelRRRR16qb_zbir_onpxjneqRCiCXiz:
 nop
@@ -4393,7 +4393,7 @@
 b__MGi0_a32_A7naqebvq13ZrqvnErpbeqreQ1Ri:
 nop
 .data
-.globl b__MGPA7naqebvq24OcZrqvnZrgnqngnErgevrireR0_AF_11OcVagresnprVAF_23VZrqvnZrgnqngnErgevrireRRR
+.weak b__MGPA7naqebvq24OcZrqvnZrgnqngnErgevrireR0_AF_11OcVagresnprVAF_23VZrqvnZrgnqngnErgevrireRRR
 .type b__MGPA7naqebvq24OcZrqvnZrgnqngnErgevrireR0_AF_11OcVagresnprVAF_23VZrqvnZrgnqngnErgevrireRRR,%object
 b__MGPA7naqebvq24OcZrqvnZrgnqngnErgevrireR0_AF_11OcVagresnprVAF_23VZrqvnZrgnqngnErgevrireRRR:
 .space __SIZEOF_POINTER__
@@ -4413,12 +4413,12 @@
 b__MGi0_a24_A7naqebvq11VQngnFbheprQ0Ri:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_2jcVAF_12VZrqvnFbheprRRRR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq6IrpgbeVAF_2jcVAF_12VZrqvnFbheprRRRR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq6IrpgbeVAF_2jcVAF_12VZrqvnFbheprRRRR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq6IrpgbeVAF_2jcVAF_12VZrqvnFbheprRRRR10qb_qrfgeblRCiz:
 nop
 .data
-.globl b__MGPA7naqebvq23OcZrqvnRkgenpgbeFreivprR0_AF_10VVagresnprR
+.weak b__MGPA7naqebvq23OcZrqvnRkgenpgbeFreivprR0_AF_10VVagresnprR
 .type b__MGPA7naqebvq23OcZrqvnRkgenpgbeFreivprR0_AF_10VVagresnprR,%object
 b__MGPA7naqebvq23OcZrqvnRkgenpgbeFreivprR0_AF_10VVagresnprR:
 .space __SIZEOF_POINTER__
@@ -4433,7 +4433,7 @@
 b__MGPA7naqebvq14OaFgernzFbheprR8_AF_7VOvaqreR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_7Fgevat8RR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq6IrpgbeVAF_7Fgevat8RR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq6IrpgbeVAF_7Fgevat8RR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq6IrpgbeVAF_7Fgevat8RR10qb_qrfgeblRCiz:
 nop
@@ -4463,12 +4463,12 @@
 b__MA7naqebvq22VErfbheprZnantrePyvrag14trgQrsnhygVzcyRi:
 nop
 .data
-.globl b__MGPA7naqebvq23OcErfbheprZnantrePyvragR0_AF_22VErfbheprZnantrePyvragR
+.weak b__MGPA7naqebvq23OcErfbheprZnantrePyvragR0_AF_22VErfbheprZnantrePyvragR
 .type b__MGPA7naqebvq23OcErfbheprZnantrePyvragR0_AF_22VErfbheprZnantrePyvragR,%object
 b__MGPA7naqebvq23OcErfbheprZnantrePyvragR0_AF_22VErfbheprZnantrePyvragR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGPA7naqebvq14OcFgernzFbheprR0_AF_11OcVagresnprVAF_13VFgernzFbheprRRR
+.weak b__MGPA7naqebvq14OcFgernzFbheprR0_AF_11OcVagresnprVAF_13VFgernzFbheprRRR
 .type b__MGPA7naqebvq14OcFgernzFbheprR0_AF_11OcVagresnprVAF_13VFgernzFbheprRRR,%object
 b__MGPA7naqebvq14OcFgernzFbheprR0_AF_11OcVagresnprVAF_13VFgernzFbheprRRR:
 .space __SIZEOF_POINTER__
@@ -4493,7 +4493,7 @@
 b__MA7naqebvq14VZrqvnErpbeqre14trgQrsnhygVzcyRi:
 nop
 .text
-.globl b__MA7naqebvq2fcVAF_22ZrqvnZrgnqngnErgevrire13QrnguAbgvsvreRRQ2Ri
+.weak b__MA7naqebvq2fcVAF_22ZrqvnZrgnqngnErgevrire13QrnguAbgvsvreRRQ2Ri
 .type b__MA7naqebvq2fcVAF_22ZrqvnZrgnqngnErgevrire13QrnguAbgvsvreRRQ2Ri,%function
 b__MA7naqebvq2fcVAF_22ZrqvnZrgnqngnErgevrire13QrnguAbgvsvreRRQ2Ri:
 nop
@@ -4523,12 +4523,12 @@
 b__MA7naqebvq22ZrqvnZrgnqngnErgevrire15trgVzntrNgVaqrkRvvoo:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvvRRR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvvRRR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvvRRR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvvRRR12qb_pbafgehpgRCiz:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVsR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVsR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVsR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVsR7qb_pbclRCiCXiz:
 nop
@@ -4568,7 +4568,7 @@
 b__MGPA7naqebvq15OaZrqvnErpbeqreR0_AF_14VZrqvnErpbeqreR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGGA7naqebvq13OcZrqvnFbheprR
+.weak b__MGGA7naqebvq13OcZrqvnFbheprR
 .type b__MGGA7naqebvq13OcZrqvnFbheprR,%object
 b__MGGA7naqebvq13OcZrqvnFbheprR:
 .space __SIZEOF_POINTER__
@@ -4583,17 +4583,17 @@
 b__MA7naqebvq13ZrqvnCebsvyrf23vavgErdhverqCebsvyrErsfREXAF_6IrpgbeVvRR:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVCAF_13ZrqvnCebsvyrf15IvqrbRapbqrePncRR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVCAF_13ZrqvnCebsvyrf15IvqrbRapbqrePncRR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVCAF_13ZrqvnCebsvyrf15IvqrbRapbqrePncRR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVCAF_13ZrqvnCebsvyrf15IvqrbRapbqrePncRR7qb_pbclRCiCXiz:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_17RkgenpgbeVafgnaprRR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_17RkgenpgbeVafgnaprRR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_17RkgenpgbeVafgnaprRR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_17RkgenpgbeVafgnaprRR15qb_zbir_sbejneqRCiCXiz:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_19ZrqvnErfbheprCbyvplRR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_19ZrqvnErfbheprCbyvplRR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_19ZrqvnErfbheprCbyvplRR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_19ZrqvnErfbheprCbyvplRR8qb_fcyngRCiCXiz:
 nop
@@ -4638,7 +4638,7 @@
 b__MAX7naqebvq13ZrqvnCebsvyrf30trgPnzpbeqreCebsvyrCnenzOlAnzrRCXpvAF_17pnzpbeqre_dhnyvglR:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_4unfuVF6_RRAF_8rdhny_gbVF6_RRAF4_VF6_RRR8__erunfuRz
+.weak b__MAFg3__112__unfu_gnoyrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_4unfuVF6_RRAF_8rdhny_gbVF6_RRAF4_VF6_RRR8__erunfuRz
 .type b__MAFg3__112__unfu_gnoyrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_4unfuVF6_RRAF_8rdhny_gbVF6_RRAF4_VF6_RRR8__erunfuRz,%function
 b__MAFg3__112__unfu_gnoyrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_4unfuVF6_RRAF_8rdhny_gbVF6_RRAF4_VF6_RRR8__erunfuRz:
 nop
@@ -4653,7 +4653,7 @@
 b__MA7naqebvq13ZrqvnErpbeqre31frgCersreerqZvpebcubarQverpgvbaR28nhqvb_zvpebcubar_qverpgvba_g:
 nop
 .data
-.globl b__MGPA7naqebvq13OcZrqvnCynlreR0_AF_12VZrqvnCynlreR
+.weak b__MGPA7naqebvq13OcZrqvnCynlreR0_AF_12VZrqvnCynlreR
 .type b__MGPA7naqebvq13OcZrqvnCynlreR0_AF_12VZrqvnCynlreR,%object
 b__MGPA7naqebvq13OcZrqvnCynlreR0_AF_12VZrqvnCynlreR:
 .space __SIZEOF_POINTER__
@@ -4683,7 +4683,7 @@
 b__MA7naqebvq14VZrqvnErpbeqre14frgQrsnhygVzcyRAFg3__110havdhr_cgeVF0_AF1_14qrsnhyg_qryrgrVF0_RRRR:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVCAF_15ZrqvnOhssreOnfrRR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVCAF_15ZrqvnOhssreOnfrRR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVCAF_15ZrqvnOhssreOnfrRR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVCAF_15ZrqvnOhssreOnfrRR8qb_fcyngRCiCXiz:
 nop
@@ -4698,12 +4698,12 @@
 b__MA7naqebvq11ZrqvnCynlre4fgbcRi:
 nop
 .data
-.globl b__MGIA7naqebvq6IrpgbeVAF_2fcVAF_7VZrzbelRRRRR
+.weak b__MGIA7naqebvq6IrpgbeVAF_2fcVAF_7VZrzbelRRRRR
 .type b__MGIA7naqebvq6IrpgbeVAF_2fcVAF_7VZrzbelRRRRR,%object
 b__MGIA7naqebvq6IrpgbeVAF_2fcVAF_7VZrzbelRRRRR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGPA7naqebvq19OcZrqvnCynlrePyvragR0_AF_11OcVagresnprVAF_18VZrqvnCynlrePyvragRRR
+.weak b__MGPA7naqebvq19OcZrqvnCynlrePyvragR0_AF_11OcVagresnprVAF_18VZrqvnCynlrePyvragRRR
 .type b__MGPA7naqebvq19OcZrqvnCynlrePyvragR0_AF_11OcVagresnprVAF_18VZrqvnCynlrePyvragRRR,%object
 b__MGPA7naqebvq19OcZrqvnCynlrePyvragR0_AF_11OcVagresnprVAF_18VZrqvnCynlrePyvragRRR:
 .space __SIZEOF_POINTER__
@@ -4738,7 +4738,7 @@
 b__MA7naqebvq20VZrqvnUGGCPbaarpgvba11nfVagresnprREXAF_2fcVAF_7VOvaqreRRR:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_19ZrqvnErfbheprCbyvplRR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_19ZrqvnErfbheprCbyvplRR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_19ZrqvnErfbheprCbyvplRR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_19ZrqvnErfbheprCbyvplRR15qb_zbir_sbejneqRCiCXiz:
 nop
@@ -4748,12 +4748,12 @@
 b__MA7naqebvq24OaZrqvnZrgnqngnErgevrire10baGenafnpgRwEXAF_6CnepryRCF1_w:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVCAF_13ZrqvnCebsvyrf15NhqvbRapbqrePncRR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq6IrpgbeVCAF_13ZrqvnCebsvyrf15NhqvbRapbqrePncRR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq6IrpgbeVCAF_13ZrqvnCebsvyrf15NhqvbRapbqrePncRR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq6IrpgbeVCAF_13ZrqvnCebsvyrf15NhqvbRapbqrePncRR12qb_pbafgehpgRCiz:
 nop
 .data
-.globl b__MGPA7naqebvq21OcZrqvnErpbeqrePyvragR0_AF_10VVagresnprR
+.weak b__MGPA7naqebvq21OcZrqvnErpbeqrePyvragR0_AF_10VVagresnprR
 .type b__MGPA7naqebvq21OcZrqvnErpbeqrePyvragR0_AF_10VVagresnprR,%object
 b__MGPA7naqebvq21OcZrqvnErpbeqrePyvragR0_AF_10VVagresnprR:
 .space __SIZEOF_POINTER__
@@ -4778,7 +4778,7 @@
 b__MA7naqebvq13ZrqvnNyohzNeg5pybarRi:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVCAF_13ZrqvnCebsvyrf15NhqvbRapbqrePncRR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVCAF_13ZrqvnCebsvyrf15NhqvbRapbqrePncRR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVCAF_13ZrqvnCebsvyrf15NhqvbRapbqrePncRR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVCAF_13ZrqvnCebsvyrf15NhqvbRapbqrePncRR8qb_fcyngRCiCXiz:
 nop
@@ -4788,7 +4788,7 @@
 b__MA7naqebvq17VZrqvnUGGCFreivpr14trgQrsnhygVzcyRi:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVuR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVuR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVuR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVuR15qb_zbir_sbejneqRCiCXiz:
 nop
@@ -4803,17 +4803,17 @@
 b__MA7naqebvq13ZrqvnCebsvyrf21perngrIvqrbQrpbqrePncRCCXp:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvvRRR10qb_pbzcnerRCXiF5_
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvvRRR10qb_pbzcnerRCXiF5_
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvvRRR10qb_pbzcnerRCXiF5_,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvvRRR10qb_pbzcnerRCXiF5_:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_13bhgchg_sbezngRR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_13bhgchg_sbezngRR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_13bhgchg_sbezngRR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_13bhgchg_sbezngRR16qb_zbir_onpxjneqRCiCXiz:
 nop
 .data
-.globl b__MGIA7naqebvq6IrpgbeVCAF_13ZrqvnCebsvyrf15IvqrbQrpbqrePncRRR
+.weak b__MGIA7naqebvq6IrpgbeVCAF_13ZrqvnCebsvyrf15IvqrbQrpbqrePncRRR
 .type b__MGIA7naqebvq6IrpgbeVCAF_13ZrqvnCebsvyrf15IvqrbQrpbqrePncRRR,%object
 b__MGIA7naqebvq6IrpgbeVCAF_13ZrqvnCebsvyrf15IvqrbQrpbqrePncRRR:
 .space __SIZEOF_POINTER__
@@ -4823,7 +4823,7 @@
 b__MA7naqebvq13OaZrqvnFbheprQ1Ri:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVCAF_13ZrqvnCebsvyrf15NhqvbQrpbqrePncRR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVCAF_13ZrqvnCebsvyrf15NhqvbQrpbqrePncRR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVCAF_13ZrqvnCebsvyrf15NhqvbQrpbqrePncRR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVCAF_13ZrqvnCebsvyrf15NhqvbQrpbqrePncRR15qb_zbir_sbejneqRCiCXiz:
 nop
@@ -4833,12 +4833,12 @@
 b__MGua8_A7naqebvq20VZrqvnUGGCPbaarpgvbaQ0Ri:
 nop
 .data
-.globl b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRRR
+.weak b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRRR
 .type b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRRR,%object
 b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq6IrpgbeVCX13HPunefrgZngpuR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVCX13HPunefrgZngpuR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVCX13HPunefrgZngpuR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVCX13HPunefrgZngpuR8qb_fcyngRCiCXiz:
 nop
@@ -4878,7 +4878,7 @@
 b__MGGA7naqebvq19OaZrqvnCynlrePyvragR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIA7naqebvq19OcZrqvnCynlrePyvragR
+.weak b__MGIA7naqebvq19OcZrqvnCynlrePyvragR
 .type b__MGIA7naqebvq19OcZrqvnCynlrePyvragR,%object
 b__MGIA7naqebvq19OcZrqvnCynlrePyvragR:
 .space __SIZEOF_POINTER__
@@ -4903,7 +4903,7 @@
 b__MAX7naqebvq13ZrqvnErpbeqre9trgCbegVqRCv:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVCAF_13ZrqvnCebsvyrf15NhqvbRapbqrePncRR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVCAF_13ZrqvnCebsvyrf15NhqvbRapbqrePncRR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVCAF_13ZrqvnCebsvyrf15NhqvbRapbqrePncRR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVCAF_13ZrqvnCebsvyrf15NhqvbRapbqrePncRR7qb_pbclRCiCXiz:
 nop
@@ -4913,7 +4913,7 @@
 b__MA7naqebvq14VErzbgrQvfcynl11nfVagresnprREXAF_2fcVAF_7VOvaqreRRR:
 nop
 .data
-.globl b__MGIA7naqebvq5zrqvn12IbyhzrFuncre5FgngrR
+.weak b__MGIA7naqebvq5zrqvn12IbyhzrFuncre5FgngrR
 .type b__MGIA7naqebvq5zrqvn12IbyhzrFuncre5FgngrR,%object
 b__MGIA7naqebvq5zrqvn12IbyhzrFuncre5FgngrR:
 .space __SIZEOF_POINTER__
@@ -4938,12 +4938,12 @@
 b__MA7naqebvq25PunenpgreRapbqvatQrgrpgbeP1Ri:
 nop
 .data
-.globl b__MGIA7naqebvq12FbegrqIrpgbeVAF_2jcVAF_19VZrqvnQrnguAbgvsvreRRRRR
+.weak b__MGIA7naqebvq12FbegrqIrpgbeVAF_2jcVAF_19VZrqvnQrnguAbgvsvreRRRRR
 .type b__MGIA7naqebvq12FbegrqIrpgbeVAF_2jcVAF_19VZrqvnQrnguAbgvsvreRRRRR,%object
 b__MGIA7naqebvq12FbegrqIrpgbeVAF_2jcVAF_19VZrqvnQrnguAbgvsvreRRRRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq6IrpgbeVCAF_13ZrqvnCebsvyrf15NhqvbRapbqrePncRR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVCAF_13ZrqvnCebsvyrf15NhqvbRapbqrePncRR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVCAF_13ZrqvnCebsvyrf15NhqvbRapbqrePncRR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVCAF_13ZrqvnCebsvyrf15NhqvbRapbqrePncRR15qb_zbir_sbejneqRCiCXiz:
 nop
@@ -4968,7 +4968,7 @@
 b__MAX7naqebvq13ZrqvnCebsvyrf30svaqVzntrRapbqvatDhnyvglYriryfRv:
 nop
 .data
-.globl b__MGPA7naqebvq18OcZrqvnUGGCFreivprR16_AF_9OcErsOnfrR
+.weak b__MGPA7naqebvq18OcZrqvnUGGCFreivprR16_AF_9OcErsOnfrR
 .type b__MGPA7naqebvq18OcZrqvnUGGCFreivprR16_AF_9OcErsOnfrR,%object
 b__MGPA7naqebvq18OcZrqvnUGGCFreivprR16_AF_9OcErsOnfrR:
 .space __SIZEOF_POINTER__
@@ -4998,7 +4998,7 @@
 b__MA7naqebvq20VErzbgrQvfcynlPyvrag14trgQrsnhygVzcyRi:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_13ivqrb_qrpbqreRR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_13ivqrb_qrpbqreRR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_13ivqrb_qrpbqreRR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_13ivqrb_qrpbqreRR16qb_zbir_onpxjneqRCiCXiz:
 nop
@@ -5038,7 +5038,7 @@
 b__MA7naqebvq11ZrqvnCynlreQ2Ri:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_2jcVAF_19VZrqvnQrnguAbgvsvreRRRR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_2jcVAF_19VZrqvnQrnguAbgvsvreRRRR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_2jcVAF_19VZrqvnQrnguAbgvsvreRRRR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_2jcVAF_19VZrqvnQrnguAbgvsvreRRRR10qb_qrfgeblRCiz:
 nop
@@ -5078,12 +5078,12 @@
 b__MA7naqebvq14qhzcRkgenpgbefRvEXAF_6IrpgbeVAF_8Fgevat16RRR:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_13nhqvb_rapbqreRR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq6IrpgbeVAF_13nhqvb_rapbqreRR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq6IrpgbeVAF_13nhqvb_rapbqreRR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq6IrpgbeVAF_13nhqvb_rapbqreRR12qb_pbafgehpgRCiz:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVCAF_13ZrqvnCebsvyrf16PnzpbeqreCebsvyrRR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVCAF_13ZrqvnCebsvyrf16PnzpbeqreCebsvyrRR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVCAF_13ZrqvnCebsvyrf16PnzpbeqreCebsvyrRR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVCAF_13ZrqvnCebsvyrf16PnzpbeqreCebsvyrRR8qb_fcyngRCiCXiz:
 nop
@@ -5108,12 +5108,12 @@
 b__MGPA7naqebvq21OaErzbgrQvfcynlPyvragR0_AF_10VVagresnprR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGGA7naqebvq24OcErfbheprZnantreFreivprR
+.weak b__MGGA7naqebvq24OcErfbheprZnantreFreivprR
 .type b__MGGA7naqebvq24OcErfbheprZnantreFreivprR,%object
 b__MGGA7naqebvq24OcErfbheprZnantreFreivprR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGPA7naqebvq12OcQngnFbheprR0_AF_11OcVagresnprVAF_11VQngnFbheprRRR
+.weak b__MGPA7naqebvq12OcQngnFbheprR0_AF_11OcVagresnprVAF_11VQngnFbheprRRR
 .type b__MGPA7naqebvq12OcQngnFbheprR0_AF_11OcVagresnprVAF_11VQngnFbheprRRR,%object
 b__MGPA7naqebvq12OcQngnFbheprR0_AF_11OcVagresnprVAF_11VQngnFbheprRRR:
 .space __SIZEOF_POINTER__
@@ -5128,22 +5128,22 @@
 b__MGi0_a24_A7naqebvq11ZrqvnCynlreQ0Ri:
 nop
 .data
-.globl b__MGIA7naqebvq13OcZrqvnCynlreR
+.weak b__MGIA7naqebvq13OcZrqvnCynlreR
 .type b__MGIA7naqebvq13OcZrqvnCynlreR,%object
 b__MGIA7naqebvq13OcZrqvnCynlreR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq6IrpgbeVCAF_15ZrqvnOhssreOnfrRR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq6IrpgbeVCAF_15ZrqvnOhssreOnfrRR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq6IrpgbeVCAF_15ZrqvnOhssreOnfrRR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq6IrpgbeVCAF_15ZrqvnOhssreOnfrRR12qb_pbafgehpgRCiz:
 nop
 .data
-.globl b__MGPA7naqebvq21OcErzbgrQvfcynlPyvragR8_AF_9OcErsOnfrR
+.weak b__MGPA7naqebvq21OcErzbgrQvfcynlPyvragR8_AF_9OcErsOnfrR
 .type b__MGPA7naqebvq21OcErzbgrQvfcynlPyvragR8_AF_9OcErsOnfrR,%object
 b__MGPA7naqebvq21OcErzbgrQvfcynlPyvragR8_AF_9OcErsOnfrR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGGA7naqebvq14OcFgernzFbheprR
+.weak b__MGGA7naqebvq14OcFgernzFbheprR
 .type b__MGGA7naqebvq14OcFgernzFbheprR,%object
 b__MGGA7naqebvq14OcFgernzFbheprR:
 .space __SIZEOF_POINTER__
@@ -5168,12 +5168,12 @@
 b__MGPA7naqebvq20OaZrqvnCynlreFreivprR8_AF_7VOvaqreR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_13ivqrb_qrpbqreRR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq6IrpgbeVAF_13ivqrb_qrpbqreRR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq6IrpgbeVAF_13ivqrb_qrpbqreRR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq6IrpgbeVAF_13ivqrb_qrpbqreRR10qb_qrfgeblRCiz:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVCAF_13ZrqvnCebsvyrf26VzntrRapbqvatDhnyvglYriryfRR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVCAF_13ZrqvnCebsvyrf26VzntrRapbqvatDhnyvglYriryfRR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVCAF_13ZrqvnCebsvyrf26VzntrRapbqvatDhnyvglYriryfRR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVCAF_13ZrqvnCebsvyrf26VzntrRapbqvatDhnyvglYriryfRR8qb_fcyngRCiCXiz:
 nop
@@ -5233,7 +5233,7 @@
 b__MA7naqebvq12VZrqvnFbheprQ0Ri:
 nop
 .data
-.globl b__MGIA7naqebvq16OcFgernzYvfgrareR
+.weak b__MGIA7naqebvq16OcFgernzYvfgrareR
 .type b__MGIA7naqebvq16OcFgernzYvfgrareR,%object
 b__MGIA7naqebvq16OcFgernzYvfgrareR:
 .space __SIZEOF_POINTER__
@@ -5253,12 +5253,12 @@
 b__MA7naqebvq23VErfbheprZnantreFreivpr12qrsnhyg_vzcyR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_13ZrqvnErfbheprRR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_13ZrqvnErfbheprRR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_13ZrqvnErfbheprRR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_13ZrqvnErfbheprRR7qb_pbclRCiCXiz:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_2jcVAF_19VZrqvnQrnguAbgvsvreRRRR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_2jcVAF_19VZrqvnQrnguAbgvsvreRRRR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_2jcVAF_19VZrqvnQrnguAbgvsvreRRRR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_2jcVAF_19VZrqvnQrnguAbgvsvreRRRR16qb_zbir_onpxjneqRCiCXiz:
 nop
@@ -5268,7 +5268,7 @@
 b__MA7naqebvq13ZrqvnCebsvyrf18ybtIvqrbRapbqrePncREXAF0_15IvqrbRapbqrePncR:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_13bhgchg_sbezngRR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_13bhgchg_sbezngRR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_13bhgchg_sbezngRR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_13bhgchg_sbezngRR15qb_zbir_sbejneqRCiCXiz:
 nop
@@ -5283,7 +5283,7 @@
 b__MA7naqebvq19VZrqvnQrnguAbgvsvre15fBovgErpvcvragfR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq6IrpgbeVCAF_13ZrqvnCebsvyrf15IvqrbQrpbqrePncRR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq6IrpgbeVCAF_13ZrqvnCebsvyrf15IvqrbQrpbqrePncRR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq6IrpgbeVCAF_13ZrqvnCebsvyrf15IvqrbQrpbqrePncRR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq6IrpgbeVCAF_13ZrqvnCebsvyrf15IvqrbQrpbqrePncRR12qb_pbafgehpgRCiz:
 nop
@@ -5298,17 +5298,17 @@
 b__MA7naqebvq20VErzbgrQvfcynlPyvrag11nfVagresnprREXAF_2fcVAF_7VOvaqreRRR:
 nop
 .data
-.globl b__MGPA7naqebvq13OcZrqvnCynlreR0_AF_11OcVagresnprVAF_12VZrqvnCynlreRRR
+.weak b__MGPA7naqebvq13OcZrqvnCynlreR0_AF_11OcVagresnprVAF_12VZrqvnCynlreRRR
 .type b__MGPA7naqebvq13OcZrqvnCynlreR0_AF_11OcVagresnprVAF_12VZrqvnCynlreRRR,%object
 b__MGPA7naqebvq13OcZrqvnCynlreR0_AF_11OcVagresnprVAF_12VZrqvnCynlreRRR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIA7naqebvq17CrefvfgragFhesnprR
+.weak b__MGIA7naqebvq17CrefvfgragFhesnprR
 .type b__MGIA7naqebvq17CrefvfgragFhesnprR,%object
 b__MGIA7naqebvq17CrefvfgragFhesnprR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq11OaVagresnprVAF_23VErfbheprZnantreFreivprRR10baNfOvaqreRi
+.weak b__MA7naqebvq11OaVagresnprVAF_23VErfbheprZnantreFreivprRR10baNfOvaqreRi
 .type b__MA7naqebvq11OaVagresnprVAF_23VErfbheprZnantreFreivprRR10baNfOvaqreRi,%function
 b__MA7naqebvq11OaVagresnprVAF_23VErfbheprZnantreFreivprRR10baNfOvaqreRi:
 nop
@@ -5318,7 +5318,7 @@
 b__MA7naqebvq11ZrqvnCynlre9vfCynlvatRi:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_7Fgevat8RR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq6IrpgbeVAF_7Fgevat8RR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq6IrpgbeVAF_7Fgevat8RR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq6IrpgbeVAF_7Fgevat8RR12qb_pbafgehpgRCiz:
 nop
@@ -5333,17 +5333,17 @@
 b__MA7naqebvq11ZrqvnCynlre15nggnpuArjCynlreREXAF_2fcVAF_12VZrqvnCynlreRRR:
 nop
 .data
-.globl b__MGPA7naqebvq16OcFgernzYvfgrareR8_AF_9OcErsOnfrR
+.weak b__MGPA7naqebvq16OcFgernzYvfgrareR8_AF_9OcErsOnfrR
 .type b__MGPA7naqebvq16OcFgernzYvfgrareR8_AF_9OcErsOnfrR,%object
 b__MGPA7naqebvq16OcFgernzYvfgrareR8_AF_9OcErsOnfrR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_13bhgchg_sbezngRR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_13bhgchg_sbezngRR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_13bhgchg_sbezngRR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_13bhgchg_sbezngRR8qb_fcyngRCiCXiz:
 nop
 .text
-.globl b__MA7naqebvq2fcVAF_5zrqvn12IbyhzrFuncre9BcrengvbaRRnFRCF3_
+.weak b__MA7naqebvq2fcVAF_5zrqvn12IbyhzrFuncre9BcrengvbaRRnFRCF3_
 .type b__MA7naqebvq2fcVAF_5zrqvn12IbyhzrFuncre9BcrengvbaRRnFRCF3_,%function
 b__MA7naqebvq2fcVAF_5zrqvn12IbyhzrFuncre9BcrengvbaRRnFRCF3_:
 nop
@@ -5388,7 +5388,7 @@
 b__MA7naqebvq13ZrqvnCebsvyrf20fNhqvbRapbqreAnzrZncR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq6IrpgbeVCAF_13ZrqvnCebsvyrf15IvqrbQrpbqrePncRR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVCAF_13ZrqvnCebsvyrf15IvqrbQrpbqrePncRR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVCAF_13ZrqvnCebsvyrf15IvqrbQrpbqrePncRR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVCAF_13ZrqvnCebsvyrf15IvqrbQrpbqrePncRR7qb_pbclRCiCXiz:
 nop
@@ -5403,12 +5403,12 @@
 b__MGPA7naqebvq20VZrqvnUGGCPbaarpgvbaR0_AF_19ZrqvnUGGCPbaarpgvbaR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGPA7naqebvq18OcZrqvnUGGCFreivprR8_AF_10VVagresnprR
+.weak b__MGPA7naqebvq18OcZrqvnUGGCFreivprR8_AF_10VVagresnprR
 .type b__MGPA7naqebvq18OcZrqvnUGGCFreivprR8_AF_10VVagresnprR,%object
 b__MGPA7naqebvq18OcZrqvnUGGCFreivprR8_AF_10VVagresnprR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIA7naqebvq6IrpgbeVsRR
+.weak b__MGIA7naqebvq6IrpgbeVsRR
 .type b__MGIA7naqebvq6IrpgbeVsRR,%object
 b__MGIA7naqebvq6IrpgbeVsRR:
 .space __SIZEOF_POINTER__
@@ -5463,7 +5463,7 @@
 b__MGIA7naqebvq12OaQngnFbheprR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGGA7naqebvq21OcZrqvnUGGCPbaarpgvbaR
+.weak b__MGGA7naqebvq21OcZrqvnUGGCPbaarpgvbaR
 .type b__MGGA7naqebvq21OcZrqvnUGGCPbaarpgvbaR,%object
 b__MGGA7naqebvq21OcZrqvnUGGCPbaarpgvbaR:
 .space __SIZEOF_POINTER__
@@ -5473,17 +5473,17 @@
 b__MGIA7naqebvq21OaZrqvnErpbeqrePyvragR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq2fcVAF_5zrqvn12IbyhzrFuncre13PbasvthengvbaRRnFRCF3_
+.weak b__MA7naqebvq2fcVAF_5zrqvn12IbyhzrFuncre13PbasvthengvbaRRnFRCF3_
 .type b__MA7naqebvq2fcVAF_5zrqvn12IbyhzrFuncre13PbasvthengvbaRRnFRCF3_,%function
 b__MA7naqebvq2fcVAF_5zrqvn12IbyhzrFuncre13PbasvthengvbaRRnFRCF3_:
 nop
 .text
-.globl b__MA7naqebvq2fcVAF_17CrefvfgragFhesnprRRP2RCF1_
+.weak b__MA7naqebvq2fcVAF_17CrefvfgragFhesnprRRP2RCF1_
 .type b__MA7naqebvq2fcVAF_17CrefvfgragFhesnprRRP2RCF1_,%function
 b__MA7naqebvq2fcVAF_17CrefvfgragFhesnprRRP2RCF1_:
 nop
 .data
-.globl b__MGIA7naqebvq6IrpgbeVAF_13ZrqvnErfbheprRRR
+.weak b__MGIA7naqebvq6IrpgbeVAF_13ZrqvnErfbheprRRR
 .type b__MGIA7naqebvq6IrpgbeVAF_13ZrqvnErfbheprRRR,%object
 b__MGIA7naqebvq6IrpgbeVAF_13ZrqvnErfbheprRRR:
 .space __SIZEOF_POINTER__
@@ -5493,12 +5493,12 @@
 b__MAX7naqebvq23VZrqvnZrgnqngnErgevrire22trgVagresnprQrfpevcgbeRi:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_13ivqrb_rapbqreRR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_13ivqrb_rapbqreRR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_13ivqrb_rapbqreRR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_13ivqrb_rapbqreRR8qb_fcyngRCiCXiz:
 nop
 .data
-.globl b__MGPA7naqebvq21OcZrqvnUGGCPbaarpgvbaR8_AF_10VVagresnprR
+.weak b__MGPA7naqebvq21OcZrqvnUGGCPbaarpgvbaR8_AF_10VVagresnprR
 .type b__MGPA7naqebvq21OcZrqvnUGGCPbaarpgvbaR8_AF_10VVagresnprR,%object
 b__MGPA7naqebvq21OcZrqvnUGGCPbaarpgvbaR8_AF_10VVagresnprR:
 .space __SIZEOF_POINTER__
@@ -5533,12 +5533,12 @@
 b__MA7naqebvq13ZrqvnCebsvyrf9fVafgnaprR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_7Fgevat8RRRRR
+.weak b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_7Fgevat8RRRRR
 .type b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_7Fgevat8RRRRR,%object
 b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_7Fgevat8RRRRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq6IrpgbeVuR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq6IrpgbeVuR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq6IrpgbeVuR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq6IrpgbeVuR12qb_pbafgehpgRCiz:
 nop
@@ -5558,17 +5558,17 @@
 b__MA7naqebvq15VFgernzYvfgrare14trgQrsnhygVzcyRi:
 nop
 .data
-.globl b__MGPA7naqebvq23OcZrqvnRkgenpgbeFreivprR0_AF_22VZrqvnRkgenpgbeFreivprR
+.weak b__MGPA7naqebvq23OcZrqvnRkgenpgbeFreivprR0_AF_22VZrqvnRkgenpgbeFreivprR
 .type b__MGPA7naqebvq23OcZrqvnRkgenpgbeFreivprR0_AF_22VZrqvnRkgenpgbeFreivprR,%object
 b__MGPA7naqebvq23OcZrqvnRkgenpgbeFreivprR0_AF_22VZrqvnRkgenpgbeFreivprR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGPA7naqebvq15OcErzbgrQvfcynlR0_AF_11OcVagresnprVAF_14VErzbgrQvfcynlRRR
+.weak b__MGPA7naqebvq15OcErzbgrQvfcynlR0_AF_11OcVagresnprVAF_14VErzbgrQvfcynlRRR
 .type b__MGPA7naqebvq15OcErzbgrQvfcynlR0_AF_11OcVagresnprVAF_14VErzbgrQvfcynlRRR,%object
 b__MGPA7naqebvq15OcErzbgrQvfcynlR0_AF_11OcVagresnprVAF_14VErzbgrQvfcynlRRR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGPA7naqebvq15OcErzbgrQvfcynlR8_AF_9OcErsOnfrR
+.weak b__MGPA7naqebvq15OcErzbgrQvfcynlR8_AF_9OcErsOnfrR
 .type b__MGPA7naqebvq15OcErzbgrQvfcynlR8_AF_9OcErsOnfrR,%object
 b__MGPA7naqebvq15OcErzbgrQvfcynlR8_AF_9OcErsOnfrR:
 .space __SIZEOF_POINTER__
@@ -5578,12 +5578,12 @@
 b__MA7naqebvq11ZrqvnCynlreQ1Ri:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_2jcVAF_12VZrqvnFbheprRRRR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq6IrpgbeVAF_2jcVAF_12VZrqvnFbheprRRRR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq6IrpgbeVAF_2jcVAF_12VZrqvnFbheprRRRR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq6IrpgbeVAF_2jcVAF_12VZrqvnFbheprRRRR12qb_pbafgehpgRCiz:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR7qb_pbclRCiCXiz:
 nop
diff --git a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_079.S b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_079.S
index 28952f0..09c085a 100644
--- a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_079.S
+++ b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_079.S
@@ -8,7 +8,7 @@
 b__MA7naqebvq14NhqvbCnenzrgreP1REXAF_7Fgevat8R:
 nop
 .text
-.globl b__MAFg3__16irpgbeV14nhqvb_fbhepr_gAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVEXF1_RRiBG_
+.weak b__MAFg3__16irpgbeV14nhqvb_fbhepr_gAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVEXF1_RRiBG_
 .type b__MAFg3__16irpgbeV14nhqvb_fbhepr_gAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVEXF1_RRiBG_,%function
 b__MAFg3__16irpgbeV14nhqvb_fbhepr_gAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVEXF1_RRiBG_:
 nop
@@ -18,7 +18,7 @@
 b__MA7naqebvq14NhqvbCnenzrgre16xrlQrivprPbaarpgR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq13GlcrPbairegreVAF_13QrsnhygGenvgfV19nhqvb_fgernz_glcr_gRRR12znfxGbFgevatRwEAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRRCXp
+.weak b__MA7naqebvq13GlcrPbairegreVAF_13QrsnhygGenvgfV19nhqvb_fgernz_glcr_gRRR12znfxGbFgevatRwEAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRRCXp
 .type b__MA7naqebvq13GlcrPbairegreVAF_13QrsnhygGenvgfV19nhqvb_fgernz_glcr_gRRR12znfxGbFgevatRwEAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRRCXp,%function
 b__MA7naqebvq13GlcrPbairegreVAF_13QrsnhygGenvgfV19nhqvb_fgernz_glcr_gRRR12znfxGbFgevatRwEAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRRCXp:
 nop
@@ -28,12 +28,12 @@
 b__MA7naqebvq13GlcrPbairegreVAF_17VachgQrivprGenvgfRR6zGnoyrR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq13GlcrPbairegreVAF_18PunaaryVaqrkGenvgfRR10sebzFgevatREXAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRREw
+.weak b__MA7naqebvq13GlcrPbairegreVAF_18PunaaryVaqrkGenvgfRR10sebzFgevatREXAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRREw
 .type b__MA7naqebvq13GlcrPbairegreVAF_18PunaaryVaqrkGenvgfRR10sebzFgevatREXAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRREw,%function
 b__MA7naqebvq13GlcrPbairegreVAF_18PunaaryVaqrkGenvgfRR10sebzFgevatREXAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRREw:
 nop
 .text
-.globl b__MA7naqebvq13GlcrPbairegreVAF_18BhgchgQrivprGenvgfRR20pbyyrpgvbaSebzFgevatREXAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRREAF3_6irpgbeVwAF7_VwRRRRCXp
+.weak b__MA7naqebvq13GlcrPbairegreVAF_18BhgchgQrivprGenvgfRR20pbyyrpgvbaSebzFgevatREXAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRREAF3_6irpgbeVwAF7_VwRRRRCXp
 .type b__MA7naqebvq13GlcrPbairegreVAF_18BhgchgQrivprGenvgfRR20pbyyrpgvbaSebzFgevatREXAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRREAF3_6irpgbeVwAF7_VwRRRRCXp,%function
 b__MA7naqebvq13GlcrPbairegreVAF_18BhgchgQrivprGenvgfRR20pbyyrpgvbaSebzFgevatREXAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRREAF3_6irpgbeVwAF7_VwRRRRCXp:
 nop
@@ -43,17 +43,17 @@
 b__MAX7naqebvq14NhqvbCnenzrgre5trgNgRzEAF_7Fgevat8R:
 nop
 .text
-.globl b__MA7naqebvq13GlcrPbairegreVAF_13QrsnhygGenvgfV19nhqvb_fgernz_glcr_gRRR8gbFgevatREXF2_EAFg3__112onfvp_fgevatVpAF7_11pune_genvgfVpRRAF7_9nyybpngbeVpRRRR
+.weak b__MA7naqebvq13GlcrPbairegreVAF_13QrsnhygGenvgfV19nhqvb_fgernz_glcr_gRRR8gbFgevatREXF2_EAFg3__112onfvp_fgevatVpAF7_11pune_genvgfVpRRAF7_9nyybpngbeVpRRRR
 .type b__MA7naqebvq13GlcrPbairegreVAF_13QrsnhygGenvgfV19nhqvb_fgernz_glcr_gRRR8gbFgevatREXF2_EAFg3__112onfvp_fgevatVpAF7_11pune_genvgfVpRRAF7_9nyybpngbeVpRRRR,%function
 b__MA7naqebvq13GlcrPbairegreVAF_13QrsnhygGenvgfV19nhqvb_fgernz_glcr_gRRR8gbFgevatREXF2_EAFg3__112onfvp_fgevatVpAF7_11pune_genvgfVpRRAF7_9nyybpngbeVpRRRR:
 nop
 .text
-.globl b__MA7naqebvq13GlcrPbairegreVAF_18PunaaryVaqrkGenvgfRR20pbyyrpgvbaSebzFgevatREXAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRREAF3_3frgVwAF3_4yrffVwRRAF7_VwRRRRCXp
+.weak b__MA7naqebvq13GlcrPbairegreVAF_18PunaaryVaqrkGenvgfRR20pbyyrpgvbaSebzFgevatREXAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRREAF3_3frgVwAF3_4yrffVwRRAF7_VwRRRRCXp
 .type b__MA7naqebvq13GlcrPbairegreVAF_18PunaaryVaqrkGenvgfRR20pbyyrpgvbaSebzFgevatREXAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRREAF3_3frgVwAF3_4yrffVwRRAF7_VwRRRRCXp,%function
 b__MA7naqebvq13GlcrPbairegreVAF_18PunaaryVaqrkGenvgfRR20pbyyrpgvbaSebzFgevatREXAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRREAF3_3frgVwAF3_4yrffVwRRAF7_VwRRRRCXp:
 nop
 .text
-.globl b__MA7naqebvq13GlcrPbairegreVAF_18BhgchgQrivprGenvgfRR8gbFgevatREXwEAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRR
+.weak b__MA7naqebvq13GlcrPbairegreVAF_18BhgchgQrivprGenvgfRR8gbFgevatREXwEAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRR
 .type b__MA7naqebvq13GlcrPbairegreVAF_18BhgchgQrivprGenvgfRR8gbFgevatREXwEAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRR,%function
 b__MA7naqebvq13GlcrPbairegreVAF_18BhgchgQrivprGenvgfRR8gbFgevatREXwEAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRR:
 nop
@@ -63,7 +63,7 @@
 b__MA7naqebvq14NhqvbCnenzrgre9xrlOgAerpR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR7qb_pbclRCiCXiz:
 nop
@@ -73,7 +73,7 @@
 b__MGIA7naqebvq14NhqvbCnenzrgreR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq13GlcrPbairegreVAF_13QrsnhygGenvgfV19nhqvb_vachg_syntf_gRRR8gbFgevatREXF2_EAFg3__112onfvp_fgevatVpAF7_11pune_genvgfVpRRAF7_9nyybpngbeVpRRRR
+.weak b__MA7naqebvq13GlcrPbairegreVAF_13QrsnhygGenvgfV19nhqvb_vachg_syntf_gRRR8gbFgevatREXF2_EAFg3__112onfvp_fgevatVpAF7_11pune_genvgfVpRRAF7_9nyybpngbeVpRRRR
 .type b__MA7naqebvq13GlcrPbairegreVAF_13QrsnhygGenvgfV19nhqvb_vachg_syntf_gRRR8gbFgevatREXF2_EAFg3__112onfvp_fgevatVpAF7_11pune_genvgfVpRRAF7_9nyybpngbeVpRRRR,%function
 b__MA7naqebvq13GlcrPbairegreVAF_13QrsnhygGenvgfV19nhqvb_vachg_syntf_gRRR8gbFgevatREXF2_EAFg3__112onfvp_fgevatVpAF7_11pune_genvgfVpRRAF7_9nyybpngbeVpRRRR:
 nop
@@ -88,17 +88,17 @@
 b__MA7naqebvq28bhgchgPunaaryZnfxfSebzFgevatREXAFg3__112onfvp_fgevatVpAF0_11pune_genvgfVpRRAF0_9nyybpngbeVpRRRRCXp:
 nop
 .text
-.globl b__MA7naqebvq13GlcrPbairegreVAF_13QrsnhygGenvgfV13nhqvb_hfntr_gRRR8gbFgevatREXF2_EAFg3__112onfvp_fgevatVpAF7_11pune_genvgfVpRRAF7_9nyybpngbeVpRRRR
+.weak b__MA7naqebvq13GlcrPbairegreVAF_13QrsnhygGenvgfV13nhqvb_hfntr_gRRR8gbFgevatREXF2_EAFg3__112onfvp_fgevatVpAF7_11pune_genvgfVpRRAF7_9nyybpngbeVpRRRR
 .type b__MA7naqebvq13GlcrPbairegreVAF_13QrsnhygGenvgfV13nhqvb_hfntr_gRRR8gbFgevatREXF2_EAFg3__112onfvp_fgevatVpAF7_11pune_genvgfVpRRAF7_9nyybpngbeVpRRRR,%function
 b__MA7naqebvq13GlcrPbairegreVAF_13QrsnhygGenvgfV13nhqvb_hfntr_gRRR8gbFgevatREXF2_EAFg3__112onfvp_fgevatVpAF7_11pune_genvgfVpRRAF7_9nyybpngbeVpRRRR:
 nop
 .text
-.globl b__MA7naqebvq13GlcrPbairegreVAF_13QrsnhygGenvgfV14nhqvb_sbezng_gRRR20pbyyrpgvbaSebzFgevatREXAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRREAF5_6irpgbeVF2_AF9_VF2_RRRRCXp
+.weak b__MA7naqebvq13GlcrPbairegreVAF_13QrsnhygGenvgfV14nhqvb_sbezng_gRRR20pbyyrpgvbaSebzFgevatREXAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRREAF5_6irpgbeVF2_AF9_VF2_RRRRCXp
 .type b__MA7naqebvq13GlcrPbairegreVAF_13QrsnhygGenvgfV14nhqvb_sbezng_gRRR20pbyyrpgvbaSebzFgevatREXAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRREAF5_6irpgbeVF2_AF9_VF2_RRRRCXp,%function
 b__MA7naqebvq13GlcrPbairegreVAF_13QrsnhygGenvgfV14nhqvb_sbezng_gRRR20pbyyrpgvbaSebzFgevatREXAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRREAF5_6irpgbeVF2_AF9_VF2_RRRRCXp:
 nop
 .text
-.globl b__MA7naqebvq13GlcrPbairegreVAF_13QrsnhygGenvgfV20nhqvb_bhgchg_syntf_gRRR8gbFgevatREXF2_EAFg3__112onfvp_fgevatVpAF7_11pune_genvgfVpRRAF7_9nyybpngbeVpRRRR
+.weak b__MA7naqebvq13GlcrPbairegreVAF_13QrsnhygGenvgfV20nhqvb_bhgchg_syntf_gRRR8gbFgevatREXF2_EAFg3__112onfvp_fgevatVpAF7_11pune_genvgfVpRRAF7_9nyybpngbeVpRRRR
 .type b__MA7naqebvq13GlcrPbairegreVAF_13QrsnhygGenvgfV20nhqvb_bhgchg_syntf_gRRR8gbFgevatREXF2_EAFg3__112onfvp_fgevatVpAF7_11pune_genvgfVpRRAF7_9nyybpngbeVpRRRR,%function
 b__MA7naqebvq13GlcrPbairegreVAF_13QrsnhygGenvgfV20nhqvb_bhgchg_syntf_gRRR8gbFgevatREXF2_EAFg3__112onfvp_fgevatVpAF7_11pune_genvgfVpRRAF7_9nyybpngbeVpRRRR:
 nop
@@ -113,7 +113,7 @@
 b__MA7naqebvq13GlcrPbairegreVAF_18VachgPunaaryGenvgfRR6zGnoyrR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq13GlcrPbairegreVAF_19BhgchgPunaaryGenvgfRR14znfxSebzFgevatREXAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRRCXp
+.weak b__MA7naqebvq13GlcrPbairegreVAF_19BhgchgPunaaryGenvgfRR14znfxSebzFgevatREXAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRRCXp
 .type b__MA7naqebvq13GlcrPbairegreVAF_19BhgchgPunaaryGenvgfRR14znfxSebzFgevatREXAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRRCXp,%function
 b__MA7naqebvq13GlcrPbairegreVAF_19BhgchgPunaaryGenvgfRR14znfxSebzFgevatREXAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRRCXp:
 nop
@@ -128,27 +128,27 @@
 b__MA7naqebvq13GlcrPbairegreVAF_13QrsnhygGenvgfV14nhqvb_sbezng_gRRR6zGnoyrR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
+.weak b__MGIAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
 .type b__MGIAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR,%object
 b__MGIAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq13GlcrPbairegreVAF_18PunaaryVaqrkGenvgfRR12znfxGbFgevatRwEAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRRCXp
+.weak b__MA7naqebvq13GlcrPbairegreVAF_18PunaaryVaqrkGenvgfRR12znfxGbFgevatRwEAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRRCXp
 .type b__MA7naqebvq13GlcrPbairegreVAF_18PunaaryVaqrkGenvgfRR12znfxGbFgevatRwEAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRRCXp,%function
 b__MA7naqebvq13GlcrPbairegreVAF_18PunaaryVaqrkGenvgfRR12znfxGbFgevatRwEAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRRCXp:
 nop
 .text
-.globl b__MA7naqebvq13GlcrPbairegreVAF_18BhgchgQrivprGenvgfRR10sebzFgevatREXAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRREw
+.weak b__MA7naqebvq13GlcrPbairegreVAF_18BhgchgQrivprGenvgfRR10sebzFgevatREXAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRREw
 .type b__MA7naqebvq13GlcrPbairegreVAF_18BhgchgQrivprGenvgfRR10sebzFgevatREXAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRREw,%function
 b__MA7naqebvq13GlcrPbairegreVAF_18BhgchgQrivprGenvgfRR10sebzFgevatREXAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRREw:
 nop
 .text
-.globl b__MA7naqebvq13GlcrPbairegreVAF_18BhgchgQrivprGenvgfRR14znfxSebzFgevatREXAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRRCXp
+.weak b__MA7naqebvq13GlcrPbairegreVAF_18BhgchgQrivprGenvgfRR14znfxSebzFgevatREXAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRRCXp
 .type b__MA7naqebvq13GlcrPbairegreVAF_18BhgchgQrivprGenvgfRR14znfxSebzFgevatREXAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRRCXp,%function
 b__MA7naqebvq13GlcrPbairegreVAF_18BhgchgQrivprGenvgfRR14znfxSebzFgevatREXAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRRCXp:
 nop
 .data
-.globl b__MGIAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
+.weak b__MGIAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
 .type b__MGIAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR,%object
 b__MGIAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR:
 .space __SIZEOF_POINTER__
@@ -158,27 +158,27 @@
 b__MA7naqebvq14NhqvbCnenzrgre25xrlFgernzFhccbegrqSbezngfR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR15qb_zbir_sbejneqRCiCXiz:
 nop
 .text
-.globl b__MA7naqebvq13GlcrPbairegreVAF_13QrsnhygGenvgfV12nhqvb_zbqr_gRRR12znfxGbFgevatRwEAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRRCXp
+.weak b__MA7naqebvq13GlcrPbairegreVAF_13QrsnhygGenvgfV12nhqvb_zbqr_gRRR12znfxGbFgevatRwEAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRRCXp
 .type b__MA7naqebvq13GlcrPbairegreVAF_13QrsnhygGenvgfV12nhqvb_zbqr_gRRR12znfxGbFgevatRwEAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRRCXp,%function
 b__MA7naqebvq13GlcrPbairegreVAF_13QrsnhygGenvgfV12nhqvb_zbqr_gRRR12znfxGbFgevatRwEAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRRCXp:
 nop
 .text
-.globl b__MA7naqebvq13GlcrPbairegreVAF_13QrsnhygGenvgfV13nhqvb_hfntr_gRRR12znfxGbFgevatRwEAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRRCXp
+.weak b__MA7naqebvq13GlcrPbairegreVAF_13QrsnhygGenvgfV13nhqvb_hfntr_gRRR12znfxGbFgevatRwEAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRRCXp
 .type b__MA7naqebvq13GlcrPbairegreVAF_13QrsnhygGenvgfV13nhqvb_hfntr_gRRR12znfxGbFgevatRwEAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRRCXp,%function
 b__MA7naqebvq13GlcrPbairegreVAF_13QrsnhygGenvgfV13nhqvb_hfntr_gRRR12znfxGbFgevatRwEAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRRCXp:
 nop
 .text
-.globl b__MA7naqebvq13GlcrPbairegreVAF_13QrsnhygGenvgfVwRRR20pbyyrpgvbaSebzFgevatREXAFg3__112onfvp_fgevatVpAF4_11pune_genvgfVpRRAF4_9nyybpngbeVpRRRREAF4_6irpgbeVwAF8_VwRRRRCXp
+.weak b__MA7naqebvq13GlcrPbairegreVAF_13QrsnhygGenvgfVwRRR20pbyyrpgvbaSebzFgevatREXAFg3__112onfvp_fgevatVpAF4_11pune_genvgfVpRRAF4_9nyybpngbeVpRRRREAF4_6irpgbeVwAF8_VwRRRRCXp
 .type b__MA7naqebvq13GlcrPbairegreVAF_13QrsnhygGenvgfVwRRR20pbyyrpgvbaSebzFgevatREXAFg3__112onfvp_fgevatVpAF4_11pune_genvgfVpRRAF4_9nyybpngbeVpRRRREAF4_6irpgbeVwAF8_VwRRRRCXp,%function
 b__MA7naqebvq13GlcrPbairegreVAF_13QrsnhygGenvgfVwRRR20pbyyrpgvbaSebzFgevatREXAFg3__112onfvp_fgevatVpAF4_11pune_genvgfVpRRAF4_9nyybpngbeVpRRRREAF4_6irpgbeVwAF8_VwRRRRCXp:
 nop
 .text
-.globl b__MAFg3__16irpgbeV19nhqvb_fgernz_glcr_gAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVEXF1_RRiBG_
+.weak b__MAFg3__16irpgbeV19nhqvb_fgernz_glcr_gAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVEXF1_RRiBG_
 .type b__MAFg3__16irpgbeV19nhqvb_fgernz_glcr_gAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVEXF1_RRiBG_,%function
 b__MAFg3__16irpgbeV19nhqvb_fgernz_glcr_gAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVEXF1_RRiBG_:
 nop
@@ -198,17 +198,17 @@
 b__MA7naqebvq14NhqvbCnenzrgre19xrlQrivprQvfpbaarpgR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq13GlcrPbairegreVAF_13QrsnhygGenvgfV19nhqvb_fgernz_glcr_gRRR14znfxSebzFgevatREXAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRRCXp
+.weak b__MA7naqebvq13GlcrPbairegreVAF_13QrsnhygGenvgfV19nhqvb_fgernz_glcr_gRRR14znfxSebzFgevatREXAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRRCXp
 .type b__MA7naqebvq13GlcrPbairegreVAF_13QrsnhygGenvgfV19nhqvb_fgernz_glcr_gRRR14znfxSebzFgevatREXAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRRCXp,%function
 b__MA7naqebvq13GlcrPbairegreVAF_13QrsnhygGenvgfV19nhqvb_fgernz_glcr_gRRR14znfxSebzFgevatREXAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRRCXp:
 nop
 .text
-.globl b__MA7naqebvq13GlcrPbairegreVAF_17VachgQrivprGenvgfRR8gbFgevatREXwEAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRR
+.weak b__MA7naqebvq13GlcrPbairegreVAF_17VachgQrivprGenvgfRR8gbFgevatREXwEAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRR
 .type b__MA7naqebvq13GlcrPbairegreVAF_17VachgQrivprGenvgfRR8gbFgevatREXwEAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRR,%function
 b__MA7naqebvq13GlcrPbairegreVAF_17VachgQrivprGenvgfRR8gbFgevatREXwEAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRR:
 nop
 .text
-.globl b__MA7naqebvq13GlcrPbairegreVAF_18VachgPunaaryGenvgfRR14znfxSebzFgevatREXAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRRCXp
+.weak b__MA7naqebvq13GlcrPbairegreVAF_18VachgPunaaryGenvgfRR14znfxSebzFgevatREXAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRRCXp
 .type b__MA7naqebvq13GlcrPbairegreVAF_18VachgPunaaryGenvgfRR14znfxSebzFgevatREXAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRRCXp,%function
 b__MA7naqebvq13GlcrPbairegreVAF_18VachgPunaaryGenvgfRR14znfxSebzFgevatREXAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRRCXp:
 nop
@@ -233,17 +233,17 @@
 b__MA7naqebvq13GlcrPbairegreVAF_15NhqvbSyntGenvgfRR6zGnoyrR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__16irpgbeV19nhqvb_vachg_syntf_gAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVEXF1_RRiBG_
+.weak b__MAFg3__16irpgbeV19nhqvb_vachg_syntf_gAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVEXF1_RRiBG_
 .type b__MAFg3__16irpgbeV19nhqvb_vachg_syntf_gAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVEXF1_RRiBG_,%function
 b__MAFg3__16irpgbeV19nhqvb_vachg_syntf_gAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVEXF1_RRiBG_:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR8qb_fcyngRCiCXiz:
 nop
 .text
-.globl b__MA7naqebvq13GlcrPbairegreVAF_13QrsnhygGenvgfV14nhqvb_sbezng_gRRR14znfxSebzFgevatREXAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRRCXp
+.weak b__MA7naqebvq13GlcrPbairegreVAF_13QrsnhygGenvgfV14nhqvb_sbezng_gRRR14znfxSebzFgevatREXAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRRCXp
 .type b__MA7naqebvq13GlcrPbairegreVAF_13QrsnhygGenvgfV14nhqvb_sbezng_gRRR14znfxSebzFgevatREXAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRRCXp,%function
 b__MA7naqebvq13GlcrPbairegreVAF_13QrsnhygGenvgfV14nhqvb_sbezng_gRRR14znfxSebzFgevatREXAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRRCXp:
 nop
@@ -253,7 +253,7 @@
 b__MA7naqebvq13GlcrPbairegreVAF_19BhgchgPunaaryGenvgfRR6zGnoyrR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9haqresybjRi
+.weak b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9haqresybjRi
 .type b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9haqresybjRi,%function
 b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9haqresybjRi:
 nop
@@ -263,7 +263,7 @@
 b__MAX7naqebvq14NhqvbCnenzrgre5trgNgRzEAF_7Fgevat8RF2_:
 nop
 .text
-.globl b__MA7naqebvq13GlcrPbairegreVAF_15NhqvbSyntGenvgfRR10sebzFgevatREXAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRREw
+.weak b__MA7naqebvq13GlcrPbairegreVAF_15NhqvbSyntGenvgfRR10sebzFgevatREXAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRREw
 .type b__MA7naqebvq13GlcrPbairegreVAF_15NhqvbSyntGenvgfRR10sebzFgevatREXAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRREw,%function
 b__MA7naqebvq13GlcrPbairegreVAF_15NhqvbSyntGenvgfRR10sebzFgevatREXAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRREw:
 nop
@@ -283,22 +283,22 @@
 b__MA7naqebvq14NhqvbCnenzrgre6nqqVagREXAF_7Fgevat8Rv:
 nop
 .text
-.globl b__MA7naqebvq13GlcrPbairegreVAF_13QrsnhygGenvgfV13nhqvb_hfntr_gRRR10sebzFgevatREXAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRREF2_
+.weak b__MA7naqebvq13GlcrPbairegreVAF_13QrsnhygGenvgfV13nhqvb_hfntr_gRRR10sebzFgevatREXAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRREF2_
 .type b__MA7naqebvq13GlcrPbairegreVAF_13QrsnhygGenvgfV13nhqvb_hfntr_gRRR10sebzFgevatREXAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRREF2_,%function
 b__MA7naqebvq13GlcrPbairegreVAF_13QrsnhygGenvgfV13nhqvb_hfntr_gRRR10sebzFgevatREXAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRREF2_:
 nop
 .text
-.globl b__MA7naqebvq13GlcrPbairegreVAF_13QrsnhygGenvgfV13nhqvb_hfntr_gRRR20pbyyrpgvbaSebzFgevatREXAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRREAF5_6irpgbeVF2_AF9_VF2_RRRRCXp
+.weak b__MA7naqebvq13GlcrPbairegreVAF_13QrsnhygGenvgfV13nhqvb_hfntr_gRRR20pbyyrpgvbaSebzFgevatREXAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRREAF5_6irpgbeVF2_AF9_VF2_RRRRCXp
 .type b__MA7naqebvq13GlcrPbairegreVAF_13QrsnhygGenvgfV13nhqvb_hfntr_gRRR20pbyyrpgvbaSebzFgevatREXAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRREAF5_6irpgbeVF2_AF9_VF2_RRRRCXp,%function
 b__MA7naqebvq13GlcrPbairegreVAF_13QrsnhygGenvgfV13nhqvb_hfntr_gRRR20pbyyrpgvbaSebzFgevatREXAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRREAF5_6irpgbeVF2_AF9_VF2_RRRRCXp:
 nop
 .text
-.globl b__MA7naqebvq13GlcrPbairegreVAF_13QrsnhygGenvgfV19nhqvb_vachg_syntf_gRRR10sebzFgevatREXAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRREF2_
+.weak b__MA7naqebvq13GlcrPbairegreVAF_13QrsnhygGenvgfV19nhqvb_vachg_syntf_gRRR10sebzFgevatREXAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRREF2_
 .type b__MA7naqebvq13GlcrPbairegreVAF_13QrsnhygGenvgfV19nhqvb_vachg_syntf_gRRR10sebzFgevatREXAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRREF2_,%function
 b__MA7naqebvq13GlcrPbairegreVAF_13QrsnhygGenvgfV19nhqvb_vachg_syntf_gRRR10sebzFgevatREXAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRREF2_:
 nop
 .text
-.globl b__MA7naqebvq13GlcrPbairegreVAF_13QrsnhygGenvgfVwRRR10sebzFgevatREXAFg3__112onfvp_fgevatVpAF4_11pune_genvgfVpRRAF4_9nyybpngbeVpRRRREw
+.weak b__MA7naqebvq13GlcrPbairegreVAF_13QrsnhygGenvgfVwRRR10sebzFgevatREXAFg3__112onfvp_fgevatVpAF4_11pune_genvgfVpRRAF4_9nyybpngbeVpRRRREw
 .type b__MA7naqebvq13GlcrPbairegreVAF_13QrsnhygGenvgfVwRRR10sebzFgevatREXAFg3__112onfvp_fgevatVpAF4_11pune_genvgfVpRRAF4_9nyybpngbeVpRRRREw,%function
 b__MA7naqebvq13GlcrPbairegreVAF_13QrsnhygGenvgfVwRRR10sebzFgevatREXAFg3__112onfvp_fgevatVpAF4_11pune_genvgfVpRRAF4_9nyybpngbeVpRRRREw:
 nop
@@ -308,22 +308,22 @@
 b__MA7naqebvq16qrivprSebzFgevatREXAFg3__112onfvp_fgevatVpAF0_11pune_genvgfVpRRAF0_9nyybpngbeVpRRRREw:
 nop
 .text
-.globl b__MA7naqebvq13GlcrPbairegreVAF_13QrsnhygGenvgfV14nhqvb_fbhepr_gRRR10sebzFgevatREXAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRREF2_
+.weak b__MA7naqebvq13GlcrPbairegreVAF_13QrsnhygGenvgfV14nhqvb_fbhepr_gRRR10sebzFgevatREXAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRREF2_
 .type b__MA7naqebvq13GlcrPbairegreVAF_13QrsnhygGenvgfV14nhqvb_fbhepr_gRRR10sebzFgevatREXAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRREF2_,%function
 b__MA7naqebvq13GlcrPbairegreVAF_13QrsnhygGenvgfV14nhqvb_fbhepr_gRRR10sebzFgevatREXAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRREF2_:
 nop
 .text
-.globl b__MA7naqebvq13GlcrPbairegreVAF_15NhqvbSyntGenvgfRR14znfxSebzFgevatREXAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRRCXp
+.weak b__MA7naqebvq13GlcrPbairegreVAF_15NhqvbSyntGenvgfRR14znfxSebzFgevatREXAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRRCXp
 .type b__MA7naqebvq13GlcrPbairegreVAF_15NhqvbSyntGenvgfRR14znfxSebzFgevatREXAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRRCXp,%function
 b__MA7naqebvq13GlcrPbairegreVAF_15NhqvbSyntGenvgfRR14znfxSebzFgevatREXAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRRCXp:
 nop
 .text
-.globl b__MA7naqebvq13GlcrPbairegreVAF_15NhqvbSyntGenvgfRR20pbyyrpgvbaSebzFgevatREXAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRREAF3_6irpgbeVwAF7_VwRRRRCXp
+.weak b__MA7naqebvq13GlcrPbairegreVAF_15NhqvbSyntGenvgfRR20pbyyrpgvbaSebzFgevatREXAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRREAF3_6irpgbeVwAF7_VwRRRRCXp
 .type b__MA7naqebvq13GlcrPbairegreVAF_15NhqvbSyntGenvgfRR20pbyyrpgvbaSebzFgevatREXAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRREAF3_6irpgbeVwAF7_VwRRRRCXp,%function
 b__MA7naqebvq13GlcrPbairegreVAF_15NhqvbSyntGenvgfRR20pbyyrpgvbaSebzFgevatREXAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRREAF3_6irpgbeVwAF7_VwRRRRCXp:
 nop
 .text
-.globl b__MA7naqebvq13GlcrPbairegreVAF_18VachgPunaaryGenvgfRR8gbFgevatREXwEAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRR
+.weak b__MA7naqebvq13GlcrPbairegreVAF_18VachgPunaaryGenvgfRR8gbFgevatREXwEAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRR
 .type b__MA7naqebvq13GlcrPbairegreVAF_18VachgPunaaryGenvgfRR8gbFgevatREXwEAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRR,%function
 b__MA7naqebvq13GlcrPbairegreVAF_18VachgPunaaryGenvgfRR8gbFgevatREXwEAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRR:
 nop
@@ -333,7 +333,7 @@
 b__MA7naqebvq14NhqvbCnenzrgreQ2Ri:
 nop
 .text
-.globl b__MA7naqebvq13GlcrPbairegreVAF_13QrsnhygGenvgfVwRRR14znfxSebzFgevatREXAFg3__112onfvp_fgevatVpAF4_11pune_genvgfVpRRAF4_9nyybpngbeVpRRRRCXp
+.weak b__MA7naqebvq13GlcrPbairegreVAF_13QrsnhygGenvgfVwRRR14znfxSebzFgevatREXAFg3__112onfvp_fgevatVpAF4_11pune_genvgfVpRRAF4_9nyybpngbeVpRRRRCXp
 .type b__MA7naqebvq13GlcrPbairegreVAF_13QrsnhygGenvgfVwRRR14znfxSebzFgevatREXAFg3__112onfvp_fgevatVpAF4_11pune_genvgfVpRRAF4_9nyybpngbeVpRRRRCXp,%function
 b__MA7naqebvq13GlcrPbairegreVAF_13QrsnhygGenvgfVwRRR14znfxSebzFgevatREXAFg3__112onfvp_fgevatVpAF4_11pune_genvgfVpRRAF4_9nyybpngbeVpRRRRCXp:
 nop
@@ -348,32 +348,32 @@
 b__MA7naqebvq21punaaryZnfxSebzFgevatREXAFg3__112onfvp_fgevatVpAF0_11pune_genvgfVpRRAF0_9nyybpngbeVpRRRR:
 nop
 .text
-.globl b__MA7naqebvq13GlcrPbairegreVAF_13QrsnhygGenvgfV19nhqvb_fgernz_glcr_gRRR20pbyyrpgvbaSebzFgevatREXAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRREAF5_6irpgbeVF2_AF9_VF2_RRRRCXp
+.weak b__MA7naqebvq13GlcrPbairegreVAF_13QrsnhygGenvgfV19nhqvb_fgernz_glcr_gRRR20pbyyrpgvbaSebzFgevatREXAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRREAF5_6irpgbeVF2_AF9_VF2_RRRRCXp
 .type b__MA7naqebvq13GlcrPbairegreVAF_13QrsnhygGenvgfV19nhqvb_fgernz_glcr_gRRR20pbyyrpgvbaSebzFgevatREXAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRREAF5_6irpgbeVF2_AF9_VF2_RRRRCXp,%function
 b__MA7naqebvq13GlcrPbairegreVAF_13QrsnhygGenvgfV19nhqvb_fgernz_glcr_gRRR20pbyyrpgvbaSebzFgevatREXAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRREAF5_6irpgbeVF2_AF9_VF2_RRRRCXp:
 nop
 .text
-.globl b__MA7naqebvq13GlcrPbairegreVAF_17VachgQrivprGenvgfRR20pbyyrpgvbaSebzFgevatREXAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRREAF3_6irpgbeVwAF7_VwRRRRCXp
+.weak b__MA7naqebvq13GlcrPbairegreVAF_17VachgQrivprGenvgfRR20pbyyrpgvbaSebzFgevatREXAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRREAF3_6irpgbeVwAF7_VwRRRRCXp
 .type b__MA7naqebvq13GlcrPbairegreVAF_17VachgQrivprGenvgfRR20pbyyrpgvbaSebzFgevatREXAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRREAF3_6irpgbeVwAF7_VwRRRRCXp,%function
 b__MA7naqebvq13GlcrPbairegreVAF_17VachgQrivprGenvgfRR20pbyyrpgvbaSebzFgevatREXAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRREAF3_6irpgbeVwAF7_VwRRRRCXp:
 nop
 .text
-.globl b__MA7naqebvq13GlcrPbairegreVAF_18PunaaryVaqrkGenvgfRR14znfxSebzFgevatREXAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRRCXp
+.weak b__MA7naqebvq13GlcrPbairegreVAF_18PunaaryVaqrkGenvgfRR14znfxSebzFgevatREXAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRRCXp
 .type b__MA7naqebvq13GlcrPbairegreVAF_18PunaaryVaqrkGenvgfRR14znfxSebzFgevatREXAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRRCXp,%function
 b__MA7naqebvq13GlcrPbairegreVAF_18PunaaryVaqrkGenvgfRR14znfxSebzFgevatREXAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRRCXp:
 nop
 .text
-.globl b__MA7naqebvq13GlcrPbairegreVAF_18VachgPunaaryGenvgfRR10sebzFgevatREXAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRREw
+.weak b__MA7naqebvq13GlcrPbairegreVAF_18VachgPunaaryGenvgfRR10sebzFgevatREXAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRREw
 .type b__MA7naqebvq13GlcrPbairegreVAF_18VachgPunaaryGenvgfRR10sebzFgevatREXAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRREw,%function
 b__MA7naqebvq13GlcrPbairegreVAF_18VachgPunaaryGenvgfRR10sebzFgevatREXAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRREw:
 nop
 .text
-.globl b__MA7naqebvq13GlcrPbairegreVAF_19BhgchgPunaaryGenvgfRR12znfxGbFgevatRwEAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRRCXp
+.weak b__MA7naqebvq13GlcrPbairegreVAF_19BhgchgPunaaryGenvgfRR12znfxGbFgevatRwEAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRRCXp
 .type b__MA7naqebvq13GlcrPbairegreVAF_19BhgchgPunaaryGenvgfRR12znfxGbFgevatRwEAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRRCXp,%function
 b__MA7naqebvq13GlcrPbairegreVAF_19BhgchgPunaaryGenvgfRR12znfxGbFgevatRwEAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRRCXp:
 nop
 .text
-.globl b__MAFg3__16irpgbeV12nhqvb_zbqr_gAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVEXF1_RRiBG_
+.weak b__MAFg3__16irpgbeV12nhqvb_zbqr_gAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVEXF1_RRiBG_
 .type b__MAFg3__16irpgbeV12nhqvb_zbqr_gAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVEXF1_RRiBG_,%function
 b__MAFg3__16irpgbeV12nhqvb_zbqr_gAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVEXF1_RRiBG_:
 nop
@@ -393,12 +393,12 @@
 b__MA7naqebvq13GlcrPbairegreVAF_13QrsnhygGenvgfV14nhqvb_fbhepr_gRRR6zGnoyrR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq13GlcrPbairegreVAF_13QrsnhygGenvgfV20nhqvb_bhgchg_syntf_gRRR14znfxSebzFgevatREXAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRRCXp
+.weak b__MA7naqebvq13GlcrPbairegreVAF_13QrsnhygGenvgfV20nhqvb_bhgchg_syntf_gRRR14znfxSebzFgevatREXAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRRCXp
 .type b__MA7naqebvq13GlcrPbairegreVAF_13QrsnhygGenvgfV20nhqvb_bhgchg_syntf_gRRR14znfxSebzFgevatREXAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRRCXp,%function
 b__MA7naqebvq13GlcrPbairegreVAF_13QrsnhygGenvgfV20nhqvb_bhgchg_syntf_gRRR14znfxSebzFgevatREXAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRRCXp:
 nop
 .text
-.globl b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
+.weak b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
 .type b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_,%function
 b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_:
 nop
@@ -408,7 +408,7 @@
 b__MA7naqebvq14NhqvbCnenzrgre16xrlFgernzPbaarpgR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq13GlcrPbairegreVAF_13QrsnhygGenvgfV14nhqvb_fbhepr_gRRR8gbFgevatREXF2_EAFg3__112onfvp_fgevatVpAF7_11pune_genvgfVpRRAF7_9nyybpngbeVpRRRR
+.weak b__MA7naqebvq13GlcrPbairegreVAF_13QrsnhygGenvgfV14nhqvb_fbhepr_gRRR8gbFgevatREXF2_EAFg3__112onfvp_fgevatVpAF7_11pune_genvgfVpRRAF7_9nyybpngbeVpRRRR
 .type b__MA7naqebvq13GlcrPbairegreVAF_13QrsnhygGenvgfV14nhqvb_fbhepr_gRRR8gbFgevatREXF2_EAFg3__112onfvp_fgevatVpAF7_11pune_genvgfVpRRAF7_9nyybpngbeVpRRRR,%function
 b__MA7naqebvq13GlcrPbairegreVAF_13QrsnhygGenvgfV14nhqvb_fbhepr_gRRR8gbFgevatREXF2_EAFg3__112onfvp_fgevatVpAF7_11pune_genvgfVpRRAF7_9nyybpngbeVpRRRR:
 nop
@@ -418,7 +418,7 @@
 b__MA7naqebvq27vachgPunaaryZnfxfSebzFgevatREXAFg3__112onfvp_fgevatVpAF0_11pune_genvgfVpRRAF0_9nyybpngbeVpRRRRCXp:
 nop
 .text
-.globl b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR3fgeREXAF_12onfvp_fgevatVpF2_F4_RR
+.weak b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR3fgeREXAF_12onfvp_fgevatVpF2_F4_RR
 .type b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR3fgeREXAF_12onfvp_fgevatVpF2_F4_RR,%function
 b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR3fgeREXAF_12onfvp_fgevatVpF2_F4_RR:
 nop
@@ -428,17 +428,17 @@
 b__MA7naqebvq14NhqvbCnenzrgre11xrlUjNiFlapR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR10qb_pbzcnerRCXiF6_
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR10qb_pbzcnerRCXiF6_
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR10qb_pbzcnerRCXiF6_,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR10qb_pbzcnerRCXiF6_:
 nop
 .text
-.globl b__MA7naqebvq13GlcrPbairegreVAF_13QrsnhygGenvgfV12nhqvb_zbqr_gRRR20pbyyrpgvbaSebzFgevatREXAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRREAF5_6irpgbeVF2_AF9_VF2_RRRRCXp
+.weak b__MA7naqebvq13GlcrPbairegreVAF_13QrsnhygGenvgfV12nhqvb_zbqr_gRRR20pbyyrpgvbaSebzFgevatREXAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRREAF5_6irpgbeVF2_AF9_VF2_RRRRCXp
 .type b__MA7naqebvq13GlcrPbairegreVAF_13QrsnhygGenvgfV12nhqvb_zbqr_gRRR20pbyyrpgvbaSebzFgevatREXAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRREAF5_6irpgbeVF2_AF9_VF2_RRRRCXp,%function
 b__MA7naqebvq13GlcrPbairegreVAF_13QrsnhygGenvgfV12nhqvb_zbqr_gRRR20pbyyrpgvbaSebzFgevatREXAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRREAF5_6irpgbeVF2_AF9_VF2_RRRRCXp:
 nop
 .text
-.globl b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR7frrxbssRkAF_8vbf_onfr7frrxqveRw
+.weak b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR7frrxbssRkAF_8vbf_onfr7frrxqveRw
 .type b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR7frrxbssRkAF_8vbf_onfr7frrxqveRw,%function
 b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR7frrxbssRkAF_8vbf_onfr7frrxqveRw:
 nop
@@ -453,12 +453,12 @@
 b__MA7naqebvq13GlcrPbairegreVAF_13QrsnhygGenvgfVwRRR6zGnoyrR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq13GlcrPbairegreVAF_19BhgchgPunaaryGenvgfRR8gbFgevatREXwEAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRR
+.weak b__MA7naqebvq13GlcrPbairegreVAF_19BhgchgPunaaryGenvgfRR8gbFgevatREXwEAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRR
 .type b__MA7naqebvq13GlcrPbairegreVAF_19BhgchgPunaaryGenvgfRR8gbFgevatREXwEAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRR,%function
 b__MA7naqebvq13GlcrPbairegreVAF_19BhgchgPunaaryGenvgfRR8gbFgevatREXwEAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRR:
 nop
 .text
-.globl b__MAFg3__16irpgbeV20nhqvb_bhgchg_syntf_gAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVEXF1_RRiBG_
+.weak b__MAFg3__16irpgbeV20nhqvb_bhgchg_syntf_gAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVEXF1_RRiBG_
 .type b__MAFg3__16irpgbeV20nhqvb_bhgchg_syntf_gAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVEXF1_RRiBG_,%function
 b__MAFg3__16irpgbeV20nhqvb_bhgchg_syntf_gAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVEXF1_RRiBG_:
 nop
@@ -478,17 +478,17 @@
 b__MA7naqebvq14NhqvbCnenzrgre26xrlFgernzFhccbegrqPunaaryfR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRRR
+.weak b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRRR
 .type b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRRR,%object
 b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq13GlcrPbairegreVAF_17VachgQrivprGenvgfRR10sebzFgevatREXAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRREw
+.weak b__MA7naqebvq13GlcrPbairegreVAF_17VachgQrivprGenvgfRR10sebzFgevatREXAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRREw
 .type b__MA7naqebvq13GlcrPbairegreVAF_17VachgQrivprGenvgfRR10sebzFgevatREXAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRREw,%function
 b__MA7naqebvq13GlcrPbairegreVAF_17VachgQrivprGenvgfRR10sebzFgevatREXAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRREw:
 nop
 .data
-.globl b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR16_AF_13onfvp_bfgernzVpF2_RR
+.weak b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR16_AF_13onfvp_bfgernzVpF2_RR
 .type b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR16_AF_13onfvp_bfgernzVpF2_RR,%object
 b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR16_AF_13onfvp_bfgernzVpF2_RR:
 .space __SIZEOF_POINTER__
@@ -508,22 +508,22 @@
 b__MAX7naqebvq14NhqvbCnenzrgre6trgVagREXAF_7Fgevat8REv:
 nop
 .text
-.globl b__MA7naqebvq13GlcrPbairegreVAF_13QrsnhygGenvgfV12nhqvb_zbqr_gRRR8gbFgevatREXF2_EAFg3__112onfvp_fgevatVpAF7_11pune_genvgfVpRRAF7_9nyybpngbeVpRRRR
+.weak b__MA7naqebvq13GlcrPbairegreVAF_13QrsnhygGenvgfV12nhqvb_zbqr_gRRR8gbFgevatREXF2_EAFg3__112onfvp_fgevatVpAF7_11pune_genvgfVpRRAF7_9nyybpngbeVpRRRR
 .type b__MA7naqebvq13GlcrPbairegreVAF_13QrsnhygGenvgfV12nhqvb_zbqr_gRRR8gbFgevatREXF2_EAFg3__112onfvp_fgevatVpAF7_11pune_genvgfVpRRAF7_9nyybpngbeVpRRRR,%function
 b__MA7naqebvq13GlcrPbairegreVAF_13QrsnhygGenvgfV12nhqvb_zbqr_gRRR8gbFgevatREXF2_EAFg3__112onfvp_fgevatVpAF7_11pune_genvgfVpRRAF7_9nyybpngbeVpRRRR:
 nop
 .text
-.globl b__MA7naqebvq13GlcrPbairegreVAF_13QrsnhygGenvgfV19nhqvb_vachg_syntf_gRRR20pbyyrpgvbaSebzFgevatREXAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRREAF5_6irpgbeVF2_AF9_VF2_RRRRCXp
+.weak b__MA7naqebvq13GlcrPbairegreVAF_13QrsnhygGenvgfV19nhqvb_vachg_syntf_gRRR20pbyyrpgvbaSebzFgevatREXAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRREAF5_6irpgbeVF2_AF9_VF2_RRRRCXp
 .type b__MA7naqebvq13GlcrPbairegreVAF_13QrsnhygGenvgfV19nhqvb_vachg_syntf_gRRR20pbyyrpgvbaSebzFgevatREXAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRREAF5_6irpgbeVF2_AF9_VF2_RRRRCXp,%function
 b__MA7naqebvq13GlcrPbairegreVAF_13QrsnhygGenvgfV19nhqvb_vachg_syntf_gRRR20pbyyrpgvbaSebzFgevatREXAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRREAF5_6irpgbeVF2_AF9_VF2_RRRRCXp:
 nop
 .text
-.globl b__MA7naqebvq13GlcrPbairegreVAF_13QrsnhygGenvgfV20nhqvb_bhgchg_syntf_gRRR12znfxGbFgevatRwEAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRRCXp
+.weak b__MA7naqebvq13GlcrPbairegreVAF_13QrsnhygGenvgfV20nhqvb_bhgchg_syntf_gRRR12znfxGbFgevatRwEAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRRCXp
 .type b__MA7naqebvq13GlcrPbairegreVAF_13QrsnhygGenvgfV20nhqvb_bhgchg_syntf_gRRR12znfxGbFgevatRwEAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRRCXp,%function
 b__MA7naqebvq13GlcrPbairegreVAF_13QrsnhygGenvgfV20nhqvb_bhgchg_syntf_gRRR12znfxGbFgevatRwEAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRRCXp:
 nop
 .text
-.globl b__MA7naqebvq13GlcrPbairegreVAF_18PunaaryVaqrkGenvgfRR8gbFgevatREXwEAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRR
+.weak b__MA7naqebvq13GlcrPbairegreVAF_18PunaaryVaqrkGenvgfRR8gbFgevatREXwEAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRR
 .type b__MA7naqebvq13GlcrPbairegreVAF_18PunaaryVaqrkGenvgfRR8gbFgevatREXwEAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRR,%function
 b__MA7naqebvq13GlcrPbairegreVAF_18PunaaryVaqrkGenvgfRR8gbFgevatREXwEAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRR:
 nop
@@ -533,17 +533,17 @@
 b__MA7naqebvq14NhqvbCnenzrgre24xrlErpbasvtN2qcFhccbegrqR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq13GlcrPbairegreVAF_13QrsnhygGenvgfV14nhqvb_fbhepr_gRRR20pbyyrpgvbaSebzFgevatREXAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRREAF5_6irpgbeVF2_AF9_VF2_RRRRCXp
+.weak b__MA7naqebvq13GlcrPbairegreVAF_13QrsnhygGenvgfV14nhqvb_fbhepr_gRRR20pbyyrpgvbaSebzFgevatREXAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRREAF5_6irpgbeVF2_AF9_VF2_RRRRCXp
 .type b__MA7naqebvq13GlcrPbairegreVAF_13QrsnhygGenvgfV14nhqvb_fbhepr_gRRR20pbyyrpgvbaSebzFgevatREXAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRREAF5_6irpgbeVF2_AF9_VF2_RRRRCXp,%function
 b__MA7naqebvq13GlcrPbairegreVAF_13QrsnhygGenvgfV14nhqvb_fbhepr_gRRR20pbyyrpgvbaSebzFgevatREXAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRREAF5_6irpgbeVF2_AF9_VF2_RRRRCXp:
 nop
 .text
-.globl b__MA7naqebvq13GlcrPbairegreVAF_13QrsnhygGenvgfV20nhqvb_bhgchg_syntf_gRRR20pbyyrpgvbaSebzFgevatREXAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRREAF5_6irpgbeVF2_AF9_VF2_RRRRCXp
+.weak b__MA7naqebvq13GlcrPbairegreVAF_13QrsnhygGenvgfV20nhqvb_bhgchg_syntf_gRRR20pbyyrpgvbaSebzFgevatREXAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRREAF5_6irpgbeVF2_AF9_VF2_RRRRCXp
 .type b__MA7naqebvq13GlcrPbairegreVAF_13QrsnhygGenvgfV20nhqvb_bhgchg_syntf_gRRR20pbyyrpgvbaSebzFgevatREXAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRREAF5_6irpgbeVF2_AF9_VF2_RRRRCXp,%function
 b__MA7naqebvq13GlcrPbairegreVAF_13QrsnhygGenvgfV20nhqvb_bhgchg_syntf_gRRR20pbyyrpgvbaSebzFgevatREXAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRREAF5_6irpgbeVF2_AF9_VF2_RRRRCXp:
 nop
 .text
-.globl b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9conpxsnvyRv
+.weak b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9conpxsnvyRv
 .type b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9conpxsnvyRv,%function
 b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9conpxsnvyRv:
 nop
@@ -558,7 +558,7 @@
 b__MA7naqebvq13GlcrPbairegreVAF_13QrsnhygGenvgfV20nhqvb_bhgchg_syntf_gRRR6zGnoyrR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_13onfvp_vfgernzVpF2_RR
+.weak b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_13onfvp_vfgernzVpF2_RR
 .type b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_13onfvp_vfgernzVpF2_RR,%object
 b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_13onfvp_vfgernzVpF2_RR:
 .space __SIZEOF_POINTER__
@@ -573,22 +573,22 @@
 b__MAX7naqebvq14NhqvbCnenzrgre8trgSybngREXAF_7Fgevat8REs:
 nop
 .text
-.globl b__MA7naqebvq13GlcrPbairegreVAF_13QrsnhygGenvgfV12nhqvb_zbqr_gRRR10sebzFgevatREXAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRREF2_
+.weak b__MA7naqebvq13GlcrPbairegreVAF_13QrsnhygGenvgfV12nhqvb_zbqr_gRRR10sebzFgevatREXAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRREF2_
 .type b__MA7naqebvq13GlcrPbairegreVAF_13QrsnhygGenvgfV12nhqvb_zbqr_gRRR10sebzFgevatREXAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRREF2_,%function
 b__MA7naqebvq13GlcrPbairegreVAF_13QrsnhygGenvgfV12nhqvb_zbqr_gRRR10sebzFgevatREXAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRREF2_:
 nop
 .text
-.globl b__MA7naqebvq13GlcrPbairegreVAF_13QrsnhygGenvgfV19nhqvb_vachg_syntf_gRRR12znfxGbFgevatRwEAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRRCXp
+.weak b__MA7naqebvq13GlcrPbairegreVAF_13QrsnhygGenvgfV19nhqvb_vachg_syntf_gRRR12znfxGbFgevatRwEAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRRCXp
 .type b__MA7naqebvq13GlcrPbairegreVAF_13QrsnhygGenvgfV19nhqvb_vachg_syntf_gRRR12znfxGbFgevatRwEAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRRCXp,%function
 b__MA7naqebvq13GlcrPbairegreVAF_13QrsnhygGenvgfV19nhqvb_vachg_syntf_gRRR12znfxGbFgevatRwEAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRRCXp:
 nop
 .text
-.globl b__MA7naqebvq13GlcrPbairegreVAF_13QrsnhygGenvgfV19nhqvb_vachg_syntf_gRRR14znfxSebzFgevatREXAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRRCXp
+.weak b__MA7naqebvq13GlcrPbairegreVAF_13QrsnhygGenvgfV19nhqvb_vachg_syntf_gRRR14znfxSebzFgevatREXAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRRCXp
 .type b__MA7naqebvq13GlcrPbairegreVAF_13QrsnhygGenvgfV19nhqvb_vachg_syntf_gRRR14znfxSebzFgevatREXAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRRCXp,%function
 b__MA7naqebvq13GlcrPbairegreVAF_13QrsnhygGenvgfV19nhqvb_vachg_syntf_gRRR14znfxSebzFgevatREXAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRRCXp:
 nop
 .text
-.globl b__MA7naqebvq13GlcrPbairegreVAF_15NhqvbSyntGenvgfRR8gbFgevatREXwEAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRR
+.weak b__MA7naqebvq13GlcrPbairegreVAF_15NhqvbSyntGenvgfRR8gbFgevatREXwEAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRR
 .type b__MA7naqebvq13GlcrPbairegreVAF_15NhqvbSyntGenvgfRR8gbFgevatREXwEAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRR,%function
 b__MA7naqebvq13GlcrPbairegreVAF_15NhqvbSyntGenvgfRR8gbFgevatREXwEAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRR:
 nop
@@ -603,12 +603,12 @@
 b__MA7naqebvq14NhqvbCnenzrgre15xrlFnzcyvatEngrR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq13GlcrPbairegreVAF_13QrsnhygGenvgfV14nhqvb_sbezng_gRRR8gbFgevatREXF2_EAFg3__112onfvp_fgevatVpAF7_11pune_genvgfVpRRAF7_9nyybpngbeVpRRRR
+.weak b__MA7naqebvq13GlcrPbairegreVAF_13QrsnhygGenvgfV14nhqvb_sbezng_gRRR8gbFgevatREXF2_EAFg3__112onfvp_fgevatVpAF7_11pune_genvgfVpRRAF7_9nyybpngbeVpRRRR
 .type b__MA7naqebvq13GlcrPbairegreVAF_13QrsnhygGenvgfV14nhqvb_sbezng_gRRR8gbFgevatREXF2_EAFg3__112onfvp_fgevatVpAF7_11pune_genvgfVpRRAF7_9nyybpngbeVpRRRR,%function
 b__MA7naqebvq13GlcrPbairegreVAF_13QrsnhygGenvgfV14nhqvb_sbezng_gRRR8gbFgevatREXF2_EAFg3__112onfvp_fgevatVpAF7_11pune_genvgfVpRRAF7_9nyybpngbeVpRRRR:
 nop
 .text
-.globl b__MA7naqebvq13GlcrPbairegreVAF_13QrsnhygGenvgfV14nhqvb_fbhepr_gRRR14znfxSebzFgevatREXAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRRCXp
+.weak b__MA7naqebvq13GlcrPbairegreVAF_13QrsnhygGenvgfV14nhqvb_fbhepr_gRRR14znfxSebzFgevatREXAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRRCXp
 .type b__MA7naqebvq13GlcrPbairegreVAF_13QrsnhygGenvgfV14nhqvb_fbhepr_gRRR14znfxSebzFgevatREXAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRRCXp,%function
 b__MA7naqebvq13GlcrPbairegreVAF_13QrsnhygGenvgfV14nhqvb_fbhepr_gRRR14znfxSebzFgevatREXAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRRCXp:
 nop
@@ -618,17 +618,17 @@
 b__MA7naqebvq13GlcrPbairegreVAF_13QrsnhygGenvgfV19nhqvb_vachg_syntf_gRRR6zGnoyrR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq13GlcrPbairegreVAF_17VachgQrivprGenvgfRR12znfxGbFgevatRwEAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRRCXp
+.weak b__MA7naqebvq13GlcrPbairegreVAF_17VachgQrivprGenvgfRR12znfxGbFgevatRwEAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRRCXp
 .type b__MA7naqebvq13GlcrPbairegreVAF_17VachgQrivprGenvgfRR12znfxGbFgevatRwEAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRRCXp,%function
 b__MA7naqebvq13GlcrPbairegreVAF_17VachgQrivprGenvgfRR12znfxGbFgevatRwEAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRRCXp:
 nop
 .text
-.globl b__MA7naqebvq13GlcrPbairegreVAF_19BhgchgPunaaryGenvgfRR10sebzFgevatREXAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRREw
+.weak b__MA7naqebvq13GlcrPbairegreVAF_19BhgchgPunaaryGenvgfRR10sebzFgevatREXAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRREw
 .type b__MA7naqebvq13GlcrPbairegreVAF_19BhgchgPunaaryGenvgfRR10sebzFgevatREXAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRREw,%function
 b__MA7naqebvq13GlcrPbairegreVAF_19BhgchgPunaaryGenvgfRR10sebzFgevatREXAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRREw:
 nop
 .text
-.globl b__MAFg3__16irpgbeV14nhqvb_sbezng_gAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVEXF1_RRiBG_
+.weak b__MAFg3__16irpgbeV14nhqvb_sbezng_gAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVEXF1_RRiBG_
 .type b__MAFg3__16irpgbeV14nhqvb_sbezng_gAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVEXF1_RRiBG_,%function
 b__MAFg3__16irpgbeV14nhqvb_sbezng_gAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVEXF1_RRiBG_:
 nop
@@ -653,12 +653,12 @@
 b__MA7naqebvq14NhqvbCnenzrgre18inyhrYvfgFrcnengbeR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq13GlcrPbairegreVAF_13QrsnhygGenvgfV20nhqvb_bhgchg_syntf_gRRR10sebzFgevatREXAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRREF2_
+.weak b__MA7naqebvq13GlcrPbairegreVAF_13QrsnhygGenvgfV20nhqvb_bhgchg_syntf_gRRR10sebzFgevatREXAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRREF2_
 .type b__MA7naqebvq13GlcrPbairegreVAF_13QrsnhygGenvgfV20nhqvb_bhgchg_syntf_gRRR10sebzFgevatREXAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRREF2_,%function
 b__MA7naqebvq13GlcrPbairegreVAF_13QrsnhygGenvgfV20nhqvb_bhgchg_syntf_gRRR10sebzFgevatREXAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRREF2_:
 nop
 .text
-.globl b__MA7naqebvq13GlcrPbairegreVAF_18VachgPunaaryGenvgfRR12znfxGbFgevatRwEAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRRCXp
+.weak b__MA7naqebvq13GlcrPbairegreVAF_18VachgPunaaryGenvgfRR12znfxGbFgevatRwEAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRRCXp
 .type b__MA7naqebvq13GlcrPbairegreVAF_18VachgPunaaryGenvgfRR12znfxGbFgevatRwEAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRRCXp,%function
 b__MA7naqebvq13GlcrPbairegreVAF_18VachgPunaaryGenvgfRR12znfxGbFgevatRwEAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRRCXp:
 nop
@@ -668,7 +668,7 @@
 b__MA7naqebvq14NhqvbCnenzrgre31xrlFgernzFhccbegrqFnzcyvatEngrfR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR12qb_pbafgehpgRCiz:
 nop
@@ -678,12 +678,12 @@
 b__MAX7naqebvq14NhqvbCnenzrgre12gbFgevatVzcyRo:
 nop
 .text
-.globl b__MA7naqebvq13GlcrPbairegreVAF_13QrsnhygGenvgfV12nhqvb_zbqr_gRRR14znfxSebzFgevatREXAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRRCXp
+.weak b__MA7naqebvq13GlcrPbairegreVAF_13QrsnhygGenvgfV12nhqvb_zbqr_gRRR14znfxSebzFgevatREXAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRRCXp
 .type b__MA7naqebvq13GlcrPbairegreVAF_13QrsnhygGenvgfV12nhqvb_zbqr_gRRR14znfxSebzFgevatREXAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRRCXp,%function
 b__MA7naqebvq13GlcrPbairegreVAF_13QrsnhygGenvgfV12nhqvb_zbqr_gRRR14znfxSebzFgevatREXAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRRCXp:
 nop
 .text
-.globl b__MA7naqebvq13GlcrPbairegreVAF_13QrsnhygGenvgfV13nhqvb_hfntr_gRRR14znfxSebzFgevatREXAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRRCXp
+.weak b__MA7naqebvq13GlcrPbairegreVAF_13QrsnhygGenvgfV13nhqvb_hfntr_gRRR14znfxSebzFgevatREXAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRRCXp
 .type b__MA7naqebvq13GlcrPbairegreVAF_13QrsnhygGenvgfV13nhqvb_hfntr_gRRR14znfxSebzFgevatREXAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRRCXp,%function
 b__MA7naqebvq13GlcrPbairegreVAF_13QrsnhygGenvgfV13nhqvb_hfntr_gRRR14znfxSebzFgevatREXAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRRCXp:
 nop
@@ -703,17 +703,17 @@
 b__MA7naqebvq14NhqvbCnenzrgre8nqqSybngREXAF_7Fgevat8Rs:
 nop
 .text
-.globl b__MA7naqebvq13GlcrPbairegreVAF_13QrsnhygGenvgfV14nhqvb_fbhepr_gRRR12znfxGbFgevatRwEAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRRCXp
+.weak b__MA7naqebvq13GlcrPbairegreVAF_13QrsnhygGenvgfV14nhqvb_fbhepr_gRRR12znfxGbFgevatRwEAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRRCXp
 .type b__MA7naqebvq13GlcrPbairegreVAF_13QrsnhygGenvgfV14nhqvb_fbhepr_gRRR12znfxGbFgevatRwEAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRRCXp,%function
 b__MA7naqebvq13GlcrPbairegreVAF_13QrsnhygGenvgfV14nhqvb_fbhepr_gRRR12znfxGbFgevatRwEAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRRCXp:
 nop
 .text
-.globl b__MA7naqebvq13GlcrPbairegreVAF_15NhqvbSyntGenvgfRR12znfxGbFgevatRwEAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRRCXp
+.weak b__MA7naqebvq13GlcrPbairegreVAF_15NhqvbSyntGenvgfRR12znfxGbFgevatRwEAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRRCXp
 .type b__MA7naqebvq13GlcrPbairegreVAF_15NhqvbSyntGenvgfRR12znfxGbFgevatRwEAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRRCXp,%function
 b__MA7naqebvq13GlcrPbairegreVAF_15NhqvbSyntGenvgfRR12znfxGbFgevatRwEAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRRCXp:
 nop
 .text
-.globl b__MA7naqebvq13GlcrPbairegreVAF_18VachgPunaaryGenvgfRR20pbyyrpgvbaSebzFgevatREXAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRREAF3_3frgVwAF3_4yrffVwRRAF7_VwRRRRCXp
+.weak b__MA7naqebvq13GlcrPbairegreVAF_18VachgPunaaryGenvgfRR20pbyyrpgvbaSebzFgevatREXAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRREAF3_3frgVwAF3_4yrffVwRRAF7_VwRRRRCXp
 .type b__MA7naqebvq13GlcrPbairegreVAF_18VachgPunaaryGenvgfRR20pbyyrpgvbaSebzFgevatREXAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRREAF3_3frgVwAF3_4yrffVwRRAF7_VwRRRRCXp,%function
 b__MA7naqebvq13GlcrPbairegreVAF_18VachgPunaaryGenvgfRR20pbyyrpgvbaSebzFgevatREXAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRREAF3_3frgVwAF3_4yrffVwRRAF7_VwRRRRCXp:
 nop
@@ -723,12 +723,12 @@
 b__MA7naqebvq14NhqvbCnenzrgreQ1Ri:
 nop
 .text
-.globl b__MA7naqebvq13GlcrPbairegreVAF_13QrsnhygGenvgfVwRRR12znfxGbFgevatRwEAFg3__112onfvp_fgevatVpAF4_11pune_genvgfVpRRAF4_9nyybpngbeVpRRRRCXp
+.weak b__MA7naqebvq13GlcrPbairegreVAF_13QrsnhygGenvgfVwRRR12znfxGbFgevatRwEAFg3__112onfvp_fgevatVpAF4_11pune_genvgfVpRRAF4_9nyybpngbeVpRRRRCXp
 .type b__MA7naqebvq13GlcrPbairegreVAF_13QrsnhygGenvgfVwRRR12znfxGbFgevatRwEAFg3__112onfvp_fgevatVpAF4_11pune_genvgfVpRRAF4_9nyybpngbeVpRRRRCXp,%function
 b__MA7naqebvq13GlcrPbairegreVAF_13QrsnhygGenvgfVwRRR12znfxGbFgevatRwEAFg3__112onfvp_fgevatVpAF4_11pune_genvgfVpRRAF4_9nyybpngbeVpRRRRCXp:
 nop
 .text
-.globl b__MA7naqebvq13GlcrPbairegreVAF_17VachgQrivprGenvgfRR14znfxSebzFgevatREXAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRRCXp
+.weak b__MA7naqebvq13GlcrPbairegreVAF_17VachgQrivprGenvgfRR14znfxSebzFgevatREXAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRRCXp
 .type b__MA7naqebvq13GlcrPbairegreVAF_17VachgQrivprGenvgfRR14znfxSebzFgevatREXAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRRCXp,%function
 b__MA7naqebvq13GlcrPbairegreVAF_17VachgQrivprGenvgfRR14znfxSebzFgevatREXAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRRCXp:
 nop
@@ -748,17 +748,17 @@
 b__MA7naqebvq13GlcrPbairegreVAF_13QrsnhygGenvgfV13nhqvb_hfntr_gRRR6zGnoyrR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__16irpgbeVwAF_9nyybpngbeVwRRR21__chfu_onpx_fybj_cnguVEXwRRiBG_
+.weak b__MAFg3__16irpgbeVwAF_9nyybpngbeVwRRR21__chfu_onpx_fybj_cnguVEXwRRiBG_
 .type b__MAFg3__16irpgbeVwAF_9nyybpngbeVwRRR21__chfu_onpx_fybj_cnguVEXwRRiBG_,%function
 b__MAFg3__16irpgbeVwAF_9nyybpngbeVwRRR21__chfu_onpx_fybj_cnguVEXwRRiBG_:
 nop
 .text
-.globl b__MA7naqebvq13GlcrPbairegreVAF_18BhgchgQrivprGenvgfRR12znfxGbFgevatRwEAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRRCXp
+.weak b__MA7naqebvq13GlcrPbairegreVAF_18BhgchgQrivprGenvgfRR12znfxGbFgevatRwEAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRRCXp
 .type b__MA7naqebvq13GlcrPbairegreVAF_18BhgchgQrivprGenvgfRR12znfxGbFgevatRwEAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRRCXp,%function
 b__MA7naqebvq13GlcrPbairegreVAF_18BhgchgQrivprGenvgfRR12znfxGbFgevatRwEAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRRCXp:
 nop
 .data
-.globl b__MGGAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
+.weak b__MGGAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
 .type b__MGGAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR,%object
 b__MGGAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR:
 .space __SIZEOF_POINTER__
@@ -768,47 +768,47 @@
 b__MA7naqebvq14NhqvbCnenzrgre17xrlCerfragngvbaVqR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq13GlcrPbairegreVAF_13QrsnhygGenvgfV14nhqvb_sbezng_gRRR12znfxGbFgevatRwEAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRRCXp
+.weak b__MA7naqebvq13GlcrPbairegreVAF_13QrsnhygGenvgfV14nhqvb_sbezng_gRRR12znfxGbFgevatRwEAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRRCXp
 .type b__MA7naqebvq13GlcrPbairegreVAF_13QrsnhygGenvgfV14nhqvb_sbezng_gRRR12znfxGbFgevatRwEAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRRCXp,%function
 b__MA7naqebvq13GlcrPbairegreVAF_13QrsnhygGenvgfV14nhqvb_sbezng_gRRR12znfxGbFgevatRwEAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRRCXp:
 nop
 .text
-.globl b__MA7naqebvq13GlcrPbairegreVAF_13QrsnhygGenvgfVwRRR8gbFgevatREXwEAFg3__112onfvp_fgevatVpAF6_11pune_genvgfVpRRAF6_9nyybpngbeVpRRRR
+.weak b__MA7naqebvq13GlcrPbairegreVAF_13QrsnhygGenvgfVwRRR8gbFgevatREXwEAFg3__112onfvp_fgevatVpAF6_11pune_genvgfVpRRAF6_9nyybpngbeVpRRRR
 .type b__MA7naqebvq13GlcrPbairegreVAF_13QrsnhygGenvgfVwRRR8gbFgevatREXwEAFg3__112onfvp_fgevatVpAF6_11pune_genvgfVpRRAF6_9nyybpngbeVpRRRR,%function
 b__MA7naqebvq13GlcrPbairegreVAF_13QrsnhygGenvgfVwRRR8gbFgevatREXwEAFg3__112onfvp_fgevatVpAF6_11pune_genvgfVpRRAF6_9nyybpngbeVpRRRR:
 nop
 .text
-.globl b__MAFg3__16irpgbeV13nhqvb_hfntr_gAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVEXF1_RRiBG_
+.weak b__MAFg3__16irpgbeV13nhqvb_hfntr_gAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVEXF1_RRiBG_
 .type b__MAFg3__16irpgbeV13nhqvb_hfntr_gAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVEXF1_RRiBG_,%function
 b__MAFg3__16irpgbeV13nhqvb_hfntr_gAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVEXF1_RRiBG_:
 nop
 .data
-.globl b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_14onfvp_vbfgernzVpF2_RR
+.weak b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_14onfvp_vbfgernzVpF2_RR
 .type b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_14onfvp_vbfgernzVpF2_RR,%object
 b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_14onfvp_vbfgernzVpF2_RR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR10qb_qrfgeblRCiz:
 nop
 .text
-.globl b__MA7naqebvq13GlcrPbairegreVAF_13QrsnhygGenvgfV19nhqvb_fgernz_glcr_gRRR10sebzFgevatREXAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRREF2_
+.weak b__MA7naqebvq13GlcrPbairegreVAF_13QrsnhygGenvgfV19nhqvb_fgernz_glcr_gRRR10sebzFgevatREXAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRREF2_
 .type b__MA7naqebvq13GlcrPbairegreVAF_13QrsnhygGenvgfV19nhqvb_fgernz_glcr_gRRR10sebzFgevatREXAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRREF2_,%function
 b__MA7naqebvq13GlcrPbairegreVAF_13QrsnhygGenvgfV19nhqvb_fgernz_glcr_gRRR10sebzFgevatREXAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRREF2_:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR16qb_zbir_onpxjneqRCiCXiz:
 nop
 .text
-.globl b__MA7naqebvq13GlcrPbairegreVAF_13QrsnhygGenvgfV14nhqvb_sbezng_gRRR10sebzFgevatREXAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRREF2_
+.weak b__MA7naqebvq13GlcrPbairegreVAF_13QrsnhygGenvgfV14nhqvb_sbezng_gRRR10sebzFgevatREXAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRREF2_
 .type b__MA7naqebvq13GlcrPbairegreVAF_13QrsnhygGenvgfV14nhqvb_sbezng_gRRR10sebzFgevatREXAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRREF2_,%function
 b__MA7naqebvq13GlcrPbairegreVAF_13QrsnhygGenvgfV14nhqvb_sbezng_gRRR10sebzFgevatREXAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRREF2_:
 nop
 .text
-.globl b__MA7naqebvq13GlcrPbairegreVAF_19BhgchgPunaaryGenvgfRR20pbyyrpgvbaSebzFgevatREXAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRREAF3_3frgVwAF3_4yrffVwRRAF7_VwRRRRCXp
+.weak b__MA7naqebvq13GlcrPbairegreVAF_19BhgchgPunaaryGenvgfRR20pbyyrpgvbaSebzFgevatREXAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRREAF3_3frgVwAF3_4yrffVwRRAF7_VwRRRRCXp
 .type b__MA7naqebvq13GlcrPbairegreVAF_19BhgchgPunaaryGenvgfRR20pbyyrpgvbaSebzFgevatREXAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRREAF3_3frgVwAF3_4yrffVwRRAF7_VwRRRRCXp,%function
 b__MA7naqebvq13GlcrPbairegreVAF_19BhgchgPunaaryGenvgfRR20pbyyrpgvbaSebzFgevatREXAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRREAF3_3frgVwAF3_4yrffVwRRAF7_VwRRRRCXp:
 nop
@@ -818,7 +818,7 @@
 b__MA7naqebvq17sbezngfSebzFgevatREXAFg3__112onfvp_fgevatVpAF0_11pune_genvgfVpRRAF0_9nyybpngbeVpRRRRCXp:
 nop
 .text
-.globl b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR8biresybjRv
+.weak b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR8biresybjRv
 .type b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR8biresybjRv,%function
 b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR8biresybjRv:
 nop
diff --git a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_080.S b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_080.S
index 6f44a1b..0ba831d 100644
--- a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_080.S
+++ b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_080.S
@@ -8,12 +8,12 @@
 b__MA7naqebvq18ZrqvnNanylgvpfVgrz8svaqCebcRCXp:
 nop
 .text
-.globl b__MA7naqebvq2fcVAF_25ZrqvnZrgevpfQrnguAbgvsvreRRnFRCF1_
+.weak b__MA7naqebvq2fcVAF_25ZrqvnZrgevpfQrnguAbgvsvreRRnFRCF1_
 .type b__MA7naqebvq2fcVAF_25ZrqvnZrgevpfQrnguAbgvsvreRRnFRCF1_,%function
 b__MA7naqebvq2fcVAF_25ZrqvnZrgevpfQrnguAbgvsvreRRnFRCF1_:
 nop
 .data
-.globl b__MGGA7naqebvq23OcZrqvnNanylgvpfFreivprR
+.weak b__MGGA7naqebvq23OcZrqvnNanylgvpfFreivprR
 .type b__MGGA7naqebvq23OcZrqvnNanylgvpfFreivprR,%object
 b__MGGA7naqebvq23OcZrqvnNanylgvpfFreivprR:
 .space __SIZEOF_POINTER__
@@ -33,17 +33,17 @@
 b_zrqvnzrgevpf_frgVag64:
 nop
 .data
-.globl b__MGIA7naqebvq25ZrqvnZrgevpfQrnguAbgvsvreR
+.weak b__MGIA7naqebvq25ZrqvnZrgevpfQrnguAbgvsvreR
 .type b__MGIA7naqebvq25ZrqvnZrgevpfQrnguAbgvsvreR,%object
 b__MGIA7naqebvq25ZrqvnZrgevpfQrnguAbgvsvreR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGPA7naqebvq23OcZrqvnNanylgvpfFreivprR8_AF_9OcErsOnfrR
+.weak b__MGPA7naqebvq23OcZrqvnNanylgvpfFreivprR8_AF_9OcErsOnfrR
 .type b__MGPA7naqebvq23OcZrqvnNanylgvpfFreivprR8_AF_9OcErsOnfrR,%object
 b__MGPA7naqebvq23OcZrqvnNanylgvpfFreivprR8_AF_9OcErsOnfrR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIA7naqebvq23OcZrqvnNanylgvpfFreivprR
+.weak b__MGIA7naqebvq23OcZrqvnNanylgvpfFreivprR
 .type b__MGIA7naqebvq23OcZrqvnNanylgvpfFreivprR,%object
 b__MGIA7naqebvq23OcZrqvnNanylgvpfFreivprR:
 .space __SIZEOF_POINTER__
@@ -183,7 +183,7 @@
 b__MGPA7naqebvq23OaZrqvnNanylgvpfFreivprR0_AF_10VVagresnprR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGPA7naqebvq23OcZrqvnNanylgvpfFreivprR0_AF_10VVagresnprR
+.weak b__MGPA7naqebvq23OcZrqvnNanylgvpfFreivprR0_AF_10VVagresnprR
 .type b__MGPA7naqebvq23OcZrqvnNanylgvpfFreivprR0_AF_10VVagresnprR,%object
 b__MGPA7naqebvq23OcZrqvnNanylgvpfFreivprR0_AF_10VVagresnprR:
 .space __SIZEOF_POINTER__
@@ -333,7 +333,7 @@
 b__MA7naqebvq18ZrqvnNanylgvpfVgrz7frgEngrRCXpyy:
 nop
 .text
-.globl b__MA7naqebvq2fcVAF_22VZrqvnNanylgvpfFreivprRRQ2Ri
+.weak b__MA7naqebvq2fcVAF_22VZrqvnNanylgvpfFreivprRRQ2Ri
 .type b__MA7naqebvq2fcVAF_22VZrqvnNanylgvpfFreivprRRQ2Ri,%function
 b__MA7naqebvq2fcVAF_22VZrqvnNanylgvpfFreivprRRQ2Ri:
 nop
@@ -438,12 +438,12 @@
 b__MA7naqebvq18ZrqvnNanylgvpfVgrz9frgQbhoyrRCXpq:
 nop
 .text
-.globl b__MA7naqebvq2fcVAF_25ZrqvnZrgevpfQrnguAbgvsvreRRQ2Ri
+.weak b__MA7naqebvq2fcVAF_25ZrqvnZrgevpfQrnguAbgvsvreRRQ2Ri
 .type b__MA7naqebvq2fcVAF_25ZrqvnZrgevpfQrnguAbgvsvreRRQ2Ri,%function
 b__MA7naqebvq2fcVAF_25ZrqvnZrgevpfQrnguAbgvsvreRRQ2Ri:
 nop
 .data
-.globl b__MGPA7naqebvq23OcZrqvnNanylgvpfFreivprR0_AF_11OcVagresnprVAF_22VZrqvnNanylgvpfFreivprRRR
+.weak b__MGPA7naqebvq23OcZrqvnNanylgvpfFreivprR0_AF_11OcVagresnprVAF_22VZrqvnNanylgvpfFreivprRRR
 .type b__MGPA7naqebvq23OcZrqvnNanylgvpfFreivprR0_AF_11OcVagresnprVAF_22VZrqvnNanylgvpfFreivprRRR,%object
 b__MGPA7naqebvq23OcZrqvnNanylgvpfFreivprR0_AF_11OcVagresnprVAF_22VZrqvnNanylgvpfFreivprRRR:
 .space __SIZEOF_POINTER__
@@ -603,7 +603,7 @@
 b__MA7naqebvq22VZrqvnNanylgvpfFreivpr11nfVagresnprREXAF_2fcVAF_7VOvaqreRRR:
 nop
 .data
-.globl b__MGPA7naqebvq23OcZrqvnNanylgvpfFreivprR0_AF_22VZrqvnNanylgvpfFreivprR
+.weak b__MGPA7naqebvq23OcZrqvnNanylgvpfFreivprR0_AF_22VZrqvnNanylgvpfFreivprR
 .type b__MGPA7naqebvq23OcZrqvnNanylgvpfFreivprR0_AF_22VZrqvnNanylgvpfFreivprR,%object
 b__MGPA7naqebvq23OcZrqvnNanylgvpfFreivprR0_AF_22VZrqvnNanylgvpfFreivprR:
 .space __SIZEOF_POINTER__
@@ -623,7 +623,7 @@
 b_zrqvnzrgevpf_trgQbhoyr:
 nop
 .text
-.globl b__MA7naqebvq11OaVagresnprVAF_22VZrqvnNanylgvpfFreivprRR10baNfOvaqreRi
+.weak b__MA7naqebvq11OaVagresnprVAF_22VZrqvnNanylgvpfFreivprRR10baNfOvaqreRi
 .type b__MA7naqebvq11OaVagresnprVAF_22VZrqvnNanylgvpfFreivprRR10baNfOvaqreRi,%function
 b__MA7naqebvq11OaVagresnprVAF_22VZrqvnNanylgvpfFreivprRR10baNfOvaqreRi:
 nop
diff --git a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_081.S b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_081.S
index 410c57a..2d9342a 100644
--- a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_081.S
+++ b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_081.S
@@ -28,7 +28,7 @@
 b__MA7naqebvq7zrzvasb18SbeRnpuIznSebzSvyrREXAFg3__112onfvp_fgevatVpAF1_11pune_genvgfVpRRAF1_9nyybpngbeVpRRRREXAF1_8shapgvbaVSiEXAF0_3IznRRRR:
 nop
 .text
-.globl b__MAFg3__1yfVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRREAF_13onfvp_bfgernzVG_G0_RRF9_EXAF_12onfvp_fgevatVF6_F7_G1_RR
+.weak b__MAFg3__1yfVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRREAF_13onfvp_bfgernzVG_G0_RRF9_EXAF_12onfvp_fgevatVF6_F7_G1_RR
 .type b__MAFg3__1yfVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRREAF_13onfvp_bfgernzVG_G0_RRF9_EXAF_12onfvp_fgevatVF6_F7_G1_RR,%function
 b__MAFg3__1yfVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRREAF_13onfvp_bfgernzVG_G0_RRF9_EXAF_12onfvp_fgevatVF6_F7_G1_RR:
 nop
@@ -68,7 +68,7 @@
 b__MA7naqebvq7zrzvasb21FzncfBeEbyyhcSebzSvyrREXAFg3__112onfvp_fgevatVpAF1_11pune_genvgfVpRRAF1_9nyybpngbeVpRRRRCAF0_8ZrzHfntrR:
 nop
 .text
-.globl b__MA7naqebvq8cebpvasb18ErnqZncSvyrPbagragVAFg3__18shapgvbaVSizzgzzCXpRRRRRoCpEXG_
+.weak b__MA7naqebvq8cebpvasb18ErnqZncSvyrPbagragVAFg3__18shapgvbaVSizzgzzCXpRRRRRoCpEXG_
 .type b__MA7naqebvq8cebpvasb18ErnqZncSvyrPbagragVAFg3__18shapgvbaVSizzgzzCXpRRRRRoCpEXG_,%function
 b__MA7naqebvq8cebpvasb18ErnqZncSvyrPbagragVAFg3__18shapgvbaVSizzgzzCXpRRRRRoCpEXG_:
 nop
@@ -93,12 +93,12 @@
 b__MA7naqebvq7zrzvasb11CebpZrzVasb5FzncfREXAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRR:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRzRRAF_19__znc_inyhr_pbzcnerVF7_F8_AF_4yrffVF7_RRYo1RRRAF5_VF8_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVCiRRECAF_15__gerr_raq_abqrVFW_RREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRzRRAF_19__znc_inyhr_pbzcnerVF7_F8_AF_4yrffVF7_RRYo1RRRAF5_VF8_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVCiRRECAF_15__gerr_raq_abqrVFW_RREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRzRRAF_19__znc_inyhr_pbzcnerVF7_F8_AF_4yrffVF7_RRYo1RRRAF5_VF8_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVCiRRECAF_15__gerr_raq_abqrVFW_RREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRzRRAF_19__znc_inyhr_pbzcnerVF7_F8_AF_4yrffVF7_RRYo1RRRAF5_VF8_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVCiRRECAF_15__gerr_raq_abqrVFW_RREXG_:
 nop
 .data
-.globl b__MTIMA7naqebvq7zrzvasb8CntrNppg8VafgnaprRiR8vafgnapr
+.weak b__MTIMA7naqebvq7zrzvasb8CntrNppg8VafgnaprRiR8vafgnapr
 .type b__MTIMA7naqebvq7zrzvasb8CntrNppg8VafgnaprRiR8vafgnapr,%object
 b__MTIMA7naqebvq7zrzvasb8CntrNppg8VafgnaprRiR8vafgnapr:
 .space __SIZEOF_POINTER__
@@ -133,7 +133,7 @@
 b__MA7naqebvq7zrzvasb10FlfZrzVasb11ErnqZrzVasbREXAFg3__16irpgbeVAF2_12onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRAF7_VF9_RRRRCAF3_VzAF7_VzRRRREXF9_:
 nop
 .text
-.globl b__MAFg3__124__chg_punenpgre_frdhraprVpAF_11pune_genvgfVpRRRREAF_13onfvp_bfgernzVG_G0_RRF7_CXF4_z
+.weak b__MAFg3__124__chg_punenpgre_frdhraprVpAF_11pune_genvgfVpRRRREAF_13onfvp_bfgernzVG_G0_RRF7_CXF4_z
 .type b__MAFg3__124__chg_punenpgre_frdhraprVpAF_11pune_genvgfVpRRRREAF_13onfvp_bfgernzVG_G0_RRF7_CXF4_z,%function
 b__MAFg3__124__chg_punenpgre_frdhraprVpAF_11pune_genvgfVpRRRREAF_13onfvp_bfgernzVG_G0_RRF7_CXF4_z:
 nop
@@ -153,7 +153,7 @@
 b__MA7naqebvq7zrzvasb24FzncfBeEbyyhcCffSebzSvyrREXAFg3__112onfvp_fgevatVpAF1_11pune_genvgfVpRRAF1_9nyybpngbeVpRRRRCz:
 nop
 .data
-.globl b__MMA7naqebvq7zrzvasb8CntrNppg8VafgnaprRiR8vafgnapr
+.weak b__MMA7naqebvq7zrzvasb8CntrNppg8VafgnaprRiR8vafgnapr
 .type b__MMA7naqebvq7zrzvasb8CntrNppg8VafgnaprRiR8vafgnapr,%object
 b__MMA7naqebvq7zrzvasb8CntrNppg8VafgnaprRiR8vafgnapr:
 .space __SIZEOF_POINTER__
@@ -168,7 +168,7 @@
 b__MA7naqebvq7zrzvasb11CebpZrzVasb15ErfrgJbexvatFrgRv:
 nop
 .text
-.globl b__MAFg3__16irpgbeVgAF_9nyybpngbeVgRRR24__rzcynpr_onpx_fybj_cnguVWlRRRiQcBG_
+.weak b__MAFg3__16irpgbeVgAF_9nyybpngbeVgRRR24__rzcynpr_onpx_fybj_cnguVWlRRRiQcBG_
 .type b__MAFg3__16irpgbeVgAF_9nyybpngbeVgRRR24__rzcynpr_onpx_fybj_cnguVWlRRRiQcBG_,%function
 b__MAFg3__16irpgbeVgAF_9nyybpngbeVgRRR24__rzcynpr_onpx_fybj_cnguVWlRRRiQcBG_:
 nop
@@ -203,7 +203,7 @@
 b__MAX7naqebvq7zrzvasb11CebpZrzVasb16FzncfBeEbyyhcCffRCz:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq7zrzvasb3IznRAF_9nyybpngbeVF3_RRR24__rzcynpr_onpx_fybj_cnguVWF3_RRRiQcBG_
+.weak b__MAFg3__16irpgbeVA7naqebvq7zrzvasb3IznRAF_9nyybpngbeVF3_RRR24__rzcynpr_onpx_fybj_cnguVWF3_RRRiQcBG_
 .type b__MAFg3__16irpgbeVA7naqebvq7zrzvasb3IznRAF_9nyybpngbeVF3_RRR24__rzcynpr_onpx_fybj_cnguVWF3_RRRiQcBG_,%function
 b__MAFg3__16irpgbeVA7naqebvq7zrzvasb3IznRAF_9nyybpngbeVF3_RRR24__rzcynpr_onpx_fybj_cnguVWF3_RRRiQcBG_:
 nop
@@ -213,7 +213,7 @@
 b__MA7naqebvq7zrzvasb8cntrfvmrRi:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq7zrzvasb3IznRAF_9nyybpngbeVF3_RRR24__rzcynpr_onpx_fybj_cnguVWEXF3_RRRiQcBG_
+.weak b__MAFg3__16irpgbeVA7naqebvq7zrzvasb3IznRAF_9nyybpngbeVF3_RRR24__rzcynpr_onpx_fybj_cnguVWEXF3_RRRiQcBG_
 .type b__MAFg3__16irpgbeVA7naqebvq7zrzvasb3IznRAF_9nyybpngbeVF3_RRR24__rzcynpr_onpx_fybj_cnguVWEXF3_RRRiQcBG_,%function
 b__MAFg3__16irpgbeVA7naqebvq7zrzvasb3IznRAF_9nyybpngbeVF3_RRR24__rzcynpr_onpx_fybj_cnguVWEXF3_RRRiQcBG_:
 nop
@@ -228,7 +228,7 @@
 b__MA7naqebvq7zrzvasb15ErnqIznyybpVasbREXAFg3__112onfvp_fgevatVpAF1_11pune_genvgfVpRRAF1_9nyybpngbeVpRRRR:
 nop
 .text
-.globl b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
+.weak b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
 .type b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_,%function
 b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_:
 nop
@@ -248,7 +248,7 @@
 b__MAX7naqebvq7zrzvasb11CebpZrzVasb13FzncfBeEbyyhcRCAF0_8ZrzHfntrR:
 nop
 .text
-.globl b__MAFg3__16irpgbeVzAF_9nyybpngbeVzRRR8__nccraqRz
+.weak b__MAFg3__16irpgbeVzAF_9nyybpngbeVzRRR8__nccraqRz
 .type b__MAFg3__16irpgbeVzAF_9nyybpngbeVzRRR8__nccraqRz,%function
 b__MAFg3__16irpgbeVzAF_9nyybpngbeVzRRR8__nccraqRz:
 nop
@@ -272,11 +272,9 @@
 CALL(b__MA7naqebvq4onfr10YbtZrffntrQ1Ri)
 CALL(__stack_chk_fail)
 CALL(b__MA7naqebvq7zrzvasb8CntrNppg12VavgCntrNppgRo)
-CALL(pread64)
 CALL(b__MAFg3__113onfvp_bfgernzVpAF_11pune_genvgfVpRRRyfRz)
 CALL(b__MAX7naqebvq7zrzvasb8CntrNppg12ZnexCntrVqyrRz)
 CALL(b__MAX7naqebvq7zrzvasb8CntrNppg11TrgCntrVqyrRz)
-CALL(pwrite64)
 CALL(b__MAFg3__113onfvp_bfgernzVpAF_11pune_genvgfVpRRR6fragelP1REF3_)
 CALL(b__MAXFg3__18vbf_onfr6trgybpRi)
 CALL(b__MAXFg3__16ybpnyr9hfr_snprgREAF0_2vqR)
diff --git a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_082.S b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_082.S
index 0702a21..2376c27 100644
--- a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_082.S
+++ b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_082.S
@@ -3,7 +3,7 @@
 .data
 .p2align 4
 .text
-.globl b__MAXFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR3fgeRi
+.weak b__MAXFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR3fgeRi
 .type b__MAXFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR3fgeRi,%function
 b__MAXFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR3fgeRi:
 nop
@@ -33,7 +33,7 @@
 b__MAX7naqebvq9NhqvbTnva6rdhnyfREXAF_2fcVF0_RR:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_9NhqvbTnvaRRRAF_9nyybpngbeVF4_RRR8__nccraqRz
+.weak b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_9NhqvbTnvaRRRAF_9nyybpngbeVF4_RRR8__nccraqRz
 .type b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_9NhqvbTnvaRRRAF_9nyybpngbeVF4_RRR8__nccraqRz,%function
 b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_9NhqvbTnvaRRRAF_9nyybpngbeVF4_RRR8__nccraqRz:
 nop
@@ -63,7 +63,7 @@
 b__MGua16_A7naqebvq12NhqvbCebsvyr14ernqSebzCnepryRCXAF_6CnepryR:
 nop
 .text
-.globl b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR8biresybjRv
+.weak b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR8biresybjRv
 .type b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR8biresybjRv,%function
 b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR8biresybjRv:
 nop
@@ -93,7 +93,7 @@
 b__MAX7naqebvq18NhqvbCebsvyrIrpgbe19trgFhccbegrqSbezngfRi:
 nop
 .text
-.globl b__MAFg3__16irpgbeV14nhqvb_sbezng_gAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_
+.weak b__MAFg3__16irpgbeV14nhqvb_sbezng_gAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_
 .type b__MAFg3__16irpgbeV14nhqvb_sbezng_gAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_,%function
 b__MAFg3__16irpgbeV14nhqvb_sbezng_gAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_:
 nop
@@ -108,7 +108,7 @@
 b__MGua104_A7naqebvq20QrivprQrfpevcgbeOnfr14ernqSebzCnepryRCXAF_6CnepryR:
 nop
 .text
-.globl b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
+.weak b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
 .type b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_,%function
 b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_:
 nop
@@ -138,12 +138,12 @@
 b__MA7naqebvq8gbFgevatREXAFg3__16irpgbeVAF_2fcVAF_20QrivprQrfpevcgbeOnfrRRRAF0_9nyybpngbeVF4_RRRR:
 nop
 .text
-.globl b__MAFg3__16__gerrVwAF_4yrffVwRRAF_9nyybpngbeVwRRR12__svaq_rdhnyVwRRECAF_16__gerr_abqr_onfrVCiRRAF_21__gerr_pbafg_vgrengbeVwCAF_11__gerr_abqrVwF8_RRyRRECAF_15__gerr_raq_abqrVFN_RRFO_EXG_
+.weak b__MAFg3__16__gerrVwAF_4yrffVwRRAF_9nyybpngbeVwRRR12__svaq_rdhnyVwRRECAF_16__gerr_abqr_onfrVCiRRAF_21__gerr_pbafg_vgrengbeVwCAF_11__gerr_abqrVwF8_RRyRRECAF_15__gerr_raq_abqrVFN_RRFO_EXG_
 .type b__MAFg3__16__gerrVwAF_4yrffVwRRAF_9nyybpngbeVwRRR12__svaq_rdhnyVwRRECAF_16__gerr_abqr_onfrVCiRRAF_21__gerr_pbafg_vgrengbeVwCAF_11__gerr_abqrVwF8_RRyRRECAF_15__gerr_raq_abqrVFN_RRFO_EXG_,%function
 b__MAFg3__16__gerrVwAF_4yrffVwRRAF_9nyybpngbeVwRRR12__svaq_rdhnyVwRRECAF_16__gerr_abqr_onfrVCiRRAF_21__gerr_pbafg_vgrengbeVwCAF_11__gerr_abqrVwF8_RRyRRECAF_15__gerr_raq_abqrVFN_RRFO_EXG_:
 nop
 .data
-.globl b__MGIAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
+.weak b__MGIAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
 .type b__MGIAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR,%object
 b__MGIAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR:
 .space __SIZEOF_POINTER__
@@ -153,7 +153,7 @@
 b__MAX7naqebvq18NhqvbCebsvyrIrpgbe17unfQlanzvpEngrSbeR14nhqvb_sbezng_g:
 nop
 .data
-.globl b__MGGAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
+.weak b__MGGAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
 .type b__MGGAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR,%object
 b__MGGAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR:
 .space __SIZEOF_POINTER__
@@ -163,7 +163,7 @@
 b__MA7naqebvq30qrivprGlcrNqqefSebzQrfpevcgbefREXAFg3__16irpgbeVAF_2fcVAF_20QrivprQrfpevcgbeOnfrRRRAF0_9nyybpngbeVF4_RRRR:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq19NhqvbQrivprGlcrNqqeRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVEXF2_RRiBG_
+.weak b__MAFg3__16irpgbeVA7naqebvq19NhqvbQrivprGlcrNqqeRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVEXF2_RRiBG_
 .type b__MAFg3__16irpgbeVA7naqebvq19NhqvbQrivprGlcrNqqeRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVEXF2_RRiBG_,%function
 b__MAFg3__16irpgbeVA7naqebvq19NhqvbQrivprGlcrNqqeRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVEXF2_RRiBG_:
 nop
@@ -173,7 +173,7 @@
 b__MGIA7naqebvq20QrivprQrfpevcgbeOnfrR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
+.weak b__MGIAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
 .type b__MGIAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR,%object
 b__MGIAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR:
 .space __SIZEOF_POINTER__
@@ -223,7 +223,7 @@
 b__MA7naqebvq20QrivprQrfpevcgbeOnfrP2RwEXAFg3__112onfvp_fgevatVpAF1_11pune_genvgfVpRRAF1_9nyybpngbeVpRRRR:
 nop
 .text
-.globl b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9conpxsnvyRv
+.weak b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9conpxsnvyRv
 .type b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9conpxsnvyRv,%function
 b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9conpxsnvyRv:
 nop
@@ -258,7 +258,7 @@
 b__MAX7naqebvq18NhqvbCebsvyrIrpgbe4qhzcRCAFg3__112onfvp_fgevatVpAF1_11pune_genvgfVpRRAF1_9nyybpngbeVpRRRRv:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_12NhqvbCebsvyrRRRAF_9nyybpngbeVF4_RRR21__chfu_onpx_fybj_cnguVEXF4_RRiBG_
+.weak b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_12NhqvbCebsvyrRRRAF_9nyybpngbeVF4_RRR21__chfu_onpx_fybj_cnguVEXF4_RRiBG_
 .type b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_12NhqvbCebsvyrRRRAF_9nyybpngbeVF4_RRR21__chfu_onpx_fybj_cnguVEXF4_RRiBG_,%function
 b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_12NhqvbCebsvyrRRRAF_9nyybpngbeVF4_RRR21__chfu_onpx_fybj_cnguVEXF4_RRiBG_:
 nop
@@ -268,7 +268,7 @@
 b__MAX7naqebvq20QrivprQrfpevcgbeOnfr3ybtRi:
 nop
 .text
-.globl b__MAFg3__16__gerrVwAF_4yrffVwRRAF_9nyybpngbeVwRRR14__nffvta_zhygvVAF_21__gerr_pbafg_vgrengbeVwCAF_11__gerr_abqrVwCiRRyRRRRiG_FQ_
+.weak b__MAFg3__16__gerrVwAF_4yrffVwRRAF_9nyybpngbeVwRRR14__nffvta_zhygvVAF_21__gerr_pbafg_vgrengbeVwCAF_11__gerr_abqrVwCiRRyRRRRiG_FQ_
 .type b__MAFg3__16__gerrVwAF_4yrffVwRRAF_9nyybpngbeVwRRR14__nffvta_zhygvVAF_21__gerr_pbafg_vgrengbeVwCAF_11__gerr_abqrVwCiRRyRRRRiG_FQ_,%function
 b__MAFg3__16__gerrVwAF_4yrffVwRRAF_9nyybpngbeVwRRR14__nffvta_zhygvVAF_21__gerr_pbafg_vgrengbeVwCAF_11__gerr_abqrVwCiRRyRRRRiG_FQ_:
 nop
@@ -283,7 +283,7 @@
 b__MGua104_AX7naqebvq20QrivprQrfpevcgbeOnfr17gbNhqvbCbegPbasvtRC17nhqvb_cbeg_pbasvtCXF1_:
 nop
 .text
-.globl b__MAFg3__124__chg_punenpgre_frdhraprVpAF_11pune_genvgfVpRRRREAF_13onfvp_bfgernzVG_G0_RRF7_CXF4_z
+.weak b__MAFg3__124__chg_punenpgre_frdhraprVpAF_11pune_genvgfVpRRRREAF_13onfvp_bfgernzVG_G0_RRF7_CXF4_z
 .type b__MAFg3__124__chg_punenpgre_frdhraprVpAF_11pune_genvgfVpRRRREAF_13onfvp_bfgernzVG_G0_RRF7_CXF4_z,%function
 b__MAFg3__124__chg_punenpgre_frdhraprVpAF_11pune_genvgfVpRRRREAF_13onfvp_bfgernzVG_G0_RRF7_CXF4_z:
 nop
@@ -308,12 +308,12 @@
 b__MGua104_AX7naqebvq20QrivprQrfpevcgbeOnfr13jevgrGbCnepryRCAF_6CnepryR:
 nop
 .data
-.globl b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_13onfvp_vfgernzVpF2_RR
+.weak b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_13onfvp_vfgernzVpF2_RR
 .type b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_13onfvp_vfgernzVpF2_RR,%object
 b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_13onfvp_vfgernzVpF2_RR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_14onfvp_vbfgernzVpF2_RR
+.weak b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_14onfvp_vbfgernzVpF2_RR
 .type b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_14onfvp_vbfgernzVpF2_RR,%object
 b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_14onfvp_vbfgernzVpF2_RR:
 .space __SIZEOF_POINTER__
@@ -468,7 +468,7 @@
 b__MA7naqebvq26trgNhqvbQrivprBhgNyyHfoFrgRi:
 nop
 .text
-.globl b__MAFg3__16irpgbeVvAF_9nyybpngbeVvRRRP2VCXvRRG_AF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVF7_RR5inyhrfe16vf_pbafgehpgvoyrVvAF_15vgrengbe_genvgfVF7_R9ersreraprRRR5inyhrRF7_R4glcrR
+.weak b__MAFg3__16irpgbeVvAF_9nyybpngbeVvRRRP2VCXvRRG_AF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVF7_RR5inyhrfe16vf_pbafgehpgvoyrVvAF_15vgrengbe_genvgfVF7_R9ersreraprRRR5inyhrRF7_R4glcrR
 .type b__MAFg3__16irpgbeVvAF_9nyybpngbeVvRRRP2VCXvRRG_AF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVF7_RR5inyhrfe16vf_pbafgehpgvoyrVvAF_15vgrengbe_genvgfVF7_R9ersreraprRRR5inyhrRF7_R4glcrR,%function
 b__MAFg3__16irpgbeVvAF_9nyybpngbeVvRRRP2VCXvRRG_AF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVF7_RR5inyhrfe16vf_pbafgehpgvoyrVvAF_15vgrengbe_genvgfVF7_R9ersreraprRRR5inyhrRF7_R4glcrR:
 nop
@@ -488,7 +488,7 @@
 b__MA7naqebvq12NhqvbCebsvyrP1R14nhqvb_sbezng_gEXAFg3__13frgVwAF2_4yrffVwRRAF2_9nyybpngbeVwRRRRFN_:
 nop
 .data
-.globl b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR16_AF_13onfvp_bfgernzVpF2_RR
+.weak b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR16_AF_13onfvp_bfgernzVpF2_RR
 .type b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR16_AF_13onfvp_bfgernzVpF2_RR,%object
 b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR16_AF_13onfvp_bfgernzVpF2_RR:
 .space __SIZEOF_POINTER__
@@ -518,7 +518,7 @@
 b__MGIA7naqebvq18NhqvbCebsvyrIrpgbeR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR7frrxbssRkAF_8vbf_onfr7frrxqveRw
+.weak b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR7frrxbssRkAF_8vbf_onfr7frrxqveRw
 .type b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR7frrxbssRkAF_8vbf_onfr7frrxqveRw,%function
 b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR7frrxbssRkAF_8vbf_onfr7frrxqveRw:
 nop
@@ -563,7 +563,7 @@
 b__MA7naqebvq18NhqvbCebsvyrIrpgbe14ernqSebzCnepryRCXAF_6CnepryR:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_12NhqvbCebsvyrRRRAF_9nyybpngbeVF4_RRR8__nccraqRz
+.weak b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_12NhqvbCebsvyrRRRAF_9nyybpngbeVF4_RRR8__nccraqRz
 .type b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_12NhqvbCebsvyrRRRAF_9nyybpngbeVF4_RRR8__nccraqRz,%function
 b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_12NhqvbCebsvyrRRRAF_9nyybpngbeVF4_RRR8__nccraqRz:
 nop
@@ -573,7 +573,7 @@
 b__MGua16_AX7naqebvq12NhqvbCebsvyr13jevgrGbCnepryRCAF_6CnepryR:
 nop
 .text
-.globl b__MAFg3__16__gerrVwAF_4yrffVwRRAF_9nyybpngbeVwRRR7qrfgeblRCAF_11__gerr_abqrVwCiRR
+.weak b__MAFg3__16__gerrVwAF_4yrffVwRRAF_9nyybpngbeVwRRR7qrfgeblRCAF_11__gerr_abqrVwCiRR
 .type b__MAFg3__16__gerrVwAF_4yrffVwRRAF_9nyybpngbeVwRRR7qrfgeblRCAF_11__gerr_abqrVwCiRR,%function
 b__MAFg3__16__gerrVwAF_4yrffVwRRAF_9nyybpngbeVwRRR7qrfgeblRCAF_11__gerr_abqrVwCiRR:
 nop
@@ -593,7 +593,7 @@
 b__MAX7naqebvq20QrivprQrfpevcgbeOnfr4qhzcRCAFg3__112onfvp_fgevatVpAF1_11pune_genvgfVpRRAF1_9nyybpngbeVpRRRRvvCXpo:
 nop
 .data
-.globl b__MGIA7naqebvq10CneprynoyrR
+.weak b__MGIA7naqebvq10CneprynoyrR
 .type b__MGIA7naqebvq10CneprynoyrR,%object
 b__MGIA7naqebvq10CneprynoyrR:
 .space __SIZEOF_POINTER__
@@ -603,7 +603,7 @@
 b__MA7naqebvq23trgNhqvbQrivprBhgNyyFrgRi:
 nop
 .text
-.globl b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9haqresybjRi
+.weak b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9haqresybjRi
 .type b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9haqresybjRi,%function
 b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9haqresybjRi:
 nop
@@ -613,7 +613,7 @@
 b__MAX7naqebvq12NhqvbCebsvyr6rdhnyfREXAF_2fcVF0_RR:
 nop
 .text
-.globl b__MAFg3__16irpgbeVvAF_9nyybpngbeVvRRR6nffvtaVAF_21__gerr_pbafg_vgrengbeVwCAF_11__gerr_abqrVwCiRRyRRRRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVvAF_15vgrengbe_genvgfVFP_R9ersreraprRRR5inyhrRiR4glcrRFP_FP_
+.weak b__MAFg3__16irpgbeVvAF_9nyybpngbeVvRRR6nffvtaVAF_21__gerr_pbafg_vgrengbeVwCAF_11__gerr_abqrVwCiRRyRRRRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVvAF_15vgrengbe_genvgfVFP_R9ersreraprRRR5inyhrRiR4glcrRFP_FP_
 .type b__MAFg3__16irpgbeVvAF_9nyybpngbeVvRRR6nffvtaVAF_21__gerr_pbafg_vgrengbeVwCAF_11__gerr_abqrVwCiRRyRRRRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVvAF_15vgrengbe_genvgfVFP_R9ersreraprRRR5inyhrRiR4glcrRFP_FP_,%function
 b__MAFg3__16irpgbeVvAF_9nyybpngbeVvRRR6nffvtaVAF_21__gerr_pbafg_vgrengbeVwCAF_11__gerr_abqrVwCiRRyRRRRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVvAF_15vgrengbe_genvgfVFP_R9ersreraprRRR5inyhrRiR4glcrRFP_FP_:
 nop
@@ -638,7 +638,7 @@
 b__MGGA7naqebvq9NhqvbCbegR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__16irpgbeVvAF_9nyybpngbeVvRRRP2VAF_21__gerr_pbafg_vgrengbeVwCAF_11__gerr_abqrVwCiRRyRRRRG_AF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVFO_RR5inyhrfe16vf_pbafgehpgvoyrVvAF_15vgrengbe_genvgfVFO_R9ersreraprRRR5inyhrRFO_R4glcrR
+.weak b__MAFg3__16irpgbeVvAF_9nyybpngbeVvRRRP2VAF_21__gerr_pbafg_vgrengbeVwCAF_11__gerr_abqrVwCiRRyRRRRG_AF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVFO_RR5inyhrfe16vf_pbafgehpgvoyrVvAF_15vgrengbe_genvgfVFO_R9ersreraprRRR5inyhrRFO_R4glcrR
 .type b__MAFg3__16irpgbeVvAF_9nyybpngbeVvRRRP2VAF_21__gerr_pbafg_vgrengbeVwCAF_11__gerr_abqrVwCiRRyRRRRG_AF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVFO_RR5inyhrfe16vf_pbafgehpgvoyrVvAF_15vgrengbe_genvgfVFO_R9ersreraprRRR5inyhrRFO_R4glcrR,%function
 b__MAFg3__16irpgbeVvAF_9nyybpngbeVvRRRP2VAF_21__gerr_pbafg_vgrengbeVwCAF_11__gerr_abqrVwCiRRyRRRRG_AF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVFO_RR5inyhrfe16vf_pbafgehpgvoyrVvAF_15vgrengbe_genvgfVFO_R9ersreraprRRR5inyhrRFO_R4glcrR:
 nop
@@ -653,12 +653,12 @@
 b__MGIA7naqebvq19NhqvbQrivprGlcrNqqeR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__16__gerrV14nhqvb_sbezng_gAF_4yrffVF1_RRAF_9nyybpngbeVF1_RRR7qrfgeblRCAF_11__gerr_abqrVF1_CiRR
+.weak b__MAFg3__16__gerrV14nhqvb_sbezng_gAF_4yrffVF1_RRAF_9nyybpngbeVF1_RRR7qrfgeblRCAF_11__gerr_abqrVF1_CiRR
 .type b__MAFg3__16__gerrV14nhqvb_sbezng_gAF_4yrffVF1_RRAF_9nyybpngbeVF1_RRR7qrfgeblRCAF_11__gerr_abqrVF1_CiRR,%function
 b__MAFg3__16__gerrV14nhqvb_sbezng_gAF_4yrffVF1_RRAF_9nyybpngbeVF1_RRR7qrfgeblRCAF_11__gerr_abqrVF1_CiRR:
 nop
 .text
-.globl b__MAFg3__16__gerrVwAF_4yrffVwRRAF_9nyybpngbeVwRRR26__rzcynpr_uvag_havdhr_vzcyVWEvRRRAF_15__gerr_vgrengbeVwCAF_11__gerr_abqrVwCiRRyRRAF_21__gerr_pbafg_vgrengbeVwFP_yRRQcBG_
+.weak b__MAFg3__16__gerrVwAF_4yrffVwRRAF_9nyybpngbeVwRRR26__rzcynpr_uvag_havdhr_vzcyVWEvRRRAF_15__gerr_vgrengbeVwCAF_11__gerr_abqrVwCiRRyRRAF_21__gerr_pbafg_vgrengbeVwFP_yRRQcBG_
 .type b__MAFg3__16__gerrVwAF_4yrffVwRRAF_9nyybpngbeVwRRR26__rzcynpr_uvag_havdhr_vzcyVWEvRRRAF_15__gerr_vgrengbeVwCAF_11__gerr_abqrVwCiRRyRRAF_21__gerr_pbafg_vgrengbeVwFP_yRRQcBG_,%function
 b__MAFg3__16__gerrVwAF_4yrffVwRRAF_9nyybpngbeVwRRR26__rzcynpr_uvag_havdhr_vzcyVWEvRRRAF_15__gerr_vgrengbeVwCAF_11__gerr_abqrVwCiRRyRRAF_21__gerr_pbafg_vgrengbeVwFP_yRRQcBG_:
 nop
diff --git a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_083.S b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_083.S
index 121c6aa..9c65444 100644
--- a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_083.S
+++ b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_083.S
@@ -83,7 +83,7 @@
 b__MA7naqebvq20NhqvbCebqhpgFgengrtl17nggevohgrfZngpurfR18nhqvb_nggevohgrf_gF1_:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq15NhqvbNggevohgrfRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVEXF2_RRiBG_
+.weak b__MAFg3__16irpgbeVA7naqebvq15NhqvbNggevohgrfRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVEXF2_RRiBG_
 .type b__MAFg3__16irpgbeVA7naqebvq15NhqvbNggevohgrfRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVEXF2_RRiBG_,%function
 b__MAFg3__16irpgbeVA7naqebvq15NhqvbNggevohgrfRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVEXF2_RRiBG_:
 nop
@@ -108,12 +108,12 @@
 b__MGIA7naqebvq20NhqvbCebqhpgFgengrtlR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__16irpgbeV18nhqvb_nggevohgrf_gAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_
+.weak b__MAFg3__16irpgbeV18nhqvb_nggevohgrf_gAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_
 .type b__MAFg3__16irpgbeV18nhqvb_nggevohgrf_gAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_,%function
 b__MAFg3__16irpgbeV18nhqvb_nggevohgrf_gAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_:
 nop
 .text
-.globl b__MAFg3__16irpgbeV19nhqvb_fgernz_glcr_gAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVEXF1_RRiBG_
+.weak b__MAFg3__16irpgbeV19nhqvb_fgernz_glcr_gAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVEXF1_RRiBG_
 .type b__MAFg3__16irpgbeV19nhqvb_fgernz_glcr_gAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVEXF1_RRiBG_,%function
 b__MAFg3__16irpgbeV19nhqvb_fgernz_glcr_gAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVEXF1_RRiBG_:
 nop
diff --git a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_087.S b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_087.S
index b9285aa..67c70d9 100644
--- a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_087.S
+++ b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_087.S
@@ -138,7 +138,7 @@
 b__M13TrgAnzrSebzGGCXuww:
 nop
 .text
-.globl b__MAX5skpeg18FgevatIvrjGrzcyngrVpRrdREXF1_
+.weak b__MAX5skpeg18FgevatIvrjGrzcyngrVpRrdREXF1_
 .type b__MAX5skpeg18FgevatIvrjGrzcyngrVpRrdREXF1_,%function
 b__MAX5skpeg18FgevatIvrjGrzcyngrVpRrdREXF1_:
 nop
@@ -183,7 +183,7 @@
 b__MAX5skpeg10JvqrFgevatygREXF0_:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA5skpeg10BofreinoyrV13PCQSFQX_NaabgR11BofreirqCgeRAF_9nyybpngbeVF5_RRR24__rzcynpr_onpx_fybj_cnguVWEC14PCQSFQX_JvqtrgRRRiQcBG_
+.weak b__MAFg3__16irpgbeVA5skpeg10BofreinoyrV13PCQSFQX_NaabgR11BofreirqCgeRAF_9nyybpngbeVF5_RRR24__rzcynpr_onpx_fybj_cnguVWEC14PCQSFQX_JvqtrgRRRiQcBG_
 .type b__MAFg3__16irpgbeVA5skpeg10BofreinoyrV13PCQSFQX_NaabgR11BofreirqCgeRAF_9nyybpngbeVF5_RRR24__rzcynpr_onpx_fybj_cnguVWEC14PCQSFQX_JvqtrgRRRiQcBG_,%function
 b__MAFg3__16irpgbeVA5skpeg10BofreinoyrV13PCQSFQX_NaabgR11BofreirqCgeRAF_9nyybpngbeVF5_RRR24__rzcynpr_onpx_fybj_cnguVWEC14PCQSFQX_JvqtrgRRRiQcBG_:
 nop
@@ -338,7 +338,7 @@
 b__MA16PSK_PGGTFHOGnoyr10GFhoGnoyr2Q0Ri:
 nop
 .text
-.globl b__MA6cqsvhz10ZnxrHavdhrV11PCQS_FgernzWAFg3__110havdhr_cgeVu13SkSerrQryrgreRREyAF3_V15PCQS_QvpgvbanelAF2_14qrsnhyg_qryrgrVF7_RRRRRRRAF_8vagreany16ZnxrHavdhrErfhygVG_R6FpnyneRQcBG0_
+.weak b__MA6cqsvhz10ZnxrHavdhrV11PCQS_FgernzWAFg3__110havdhr_cgeVu13SkSerrQryrgreRREyAF3_V15PCQS_QvpgvbanelAF2_14qrsnhyg_qryrgrVF7_RRRRRRRAF_8vagreany16ZnxrHavdhrErfhygVG_R6FpnyneRQcBG0_
 .type b__MA6cqsvhz10ZnxrHavdhrV11PCQS_FgernzWAFg3__110havdhr_cgeVu13SkSerrQryrgreRREyAF3_V15PCQS_QvpgvbanelAF2_14qrsnhyg_qryrgrVF7_RRRRRRRAF_8vagreany16ZnxrHavdhrErfhygVG_R6FpnyneRQcBG0_,%function
 b__MA6cqsvhz10ZnxrHavdhrV11PCQS_FgernzWAFg3__110havdhr_cgeVu13SkSerrQryrgreRREyAF3_V15PCQS_QvpgvbanelAF2_14qrsnhyg_qryrgrVF7_RRRRRRRAF_8vagreany16ZnxrHavdhrErfhygVG_R6FpnyneRQcBG0_:
 nop
@@ -363,12 +363,12 @@
 b__MA22PCQSFQX_ONNaabgUnaqyre15BaEOhggbaQoyPyxRC16PCQSFQX_CntrIvrjCA5skpeg10BofreinoyrV13PCQSFQX_NaabgR11BofreirqCgeRwEX13PSK_CGrzcyngrVsR:
 nop
 .text
-.globl b__MAFg3__16irpgbeV13PSK_SybngErpgAF_9nyybpngbeVF1_RRR24__rzcynpr_onpx_fybj_cnguVWF1_RRRiQcBG_
+.weak b__MAFg3__16irpgbeV13PSK_SybngErpgAF_9nyybpngbeVF1_RRR24__rzcynpr_onpx_fybj_cnguVWF1_RRRiQcBG_
 .type b__MAFg3__16irpgbeV13PSK_SybngErpgAF_9nyybpngbeVF1_RRR24__rzcynpr_onpx_fybj_cnguVWF1_RRRiQcBG_,%function
 b__MAFg3__16irpgbeV13PSK_SybngErpgAF_9nyybpngbeVF1_RRR24__rzcynpr_onpx_fybj_cnguVWF1_RRRiQcBG_:
 nop
 .text
-.globl b__MAFg3__16irpgbeVC8PCJY_JaqAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVEXF2_RRiBG_
+.weak b__MAFg3__16irpgbeVC8PCJY_JaqAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVEXF2_RRiBG_
 .type b__MAFg3__16irpgbeVC8PCJY_JaqAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVEXF2_RRiBG_,%function
 b__MAFg3__16irpgbeVC8PCJY_JaqAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVEXF2_RRiBG_:
 nop
@@ -563,7 +563,7 @@
 b__MA11PCQS_Bowrpg9NfObbyrnaRi:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVwA11PCQS_Cnefre10BowrpgVasbRRRAF_19__znc_inyhr_pbzcnerVwF4_AF_4yrffVwRRYo1RRRAF_9nyybpngbeVF4_RRR7qrfgeblRCAF_11__gerr_abqrVF4_CiRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVwA11PCQS_Cnefre10BowrpgVasbRRRAF_19__znc_inyhr_pbzcnerVwF4_AF_4yrffVwRRYo1RRRAF_9nyybpngbeVF4_RRR7qrfgeblRCAF_11__gerr_abqrVF4_CiRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVwA11PCQS_Cnefre10BowrpgVasbRRRAF_19__znc_inyhr_pbzcnerVwF4_AF_4yrffVwRRYo1RRRAF_9nyybpngbeVF4_RRR7qrfgeblRCAF_11__gerr_abqrVF4_CiRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVwA11PCQS_Cnefre10BowrpgVasbRRRAF_19__znc_inyhr_pbzcnerVwF4_AF_4yrffVwRRYo1RRRAF_9nyybpngbeVF4_RRR7qrfgeblRCAF_11__gerr_abqrVF4_CiRR:
 nop
@@ -583,7 +583,7 @@
 b__MA13PSCS_FxvnSbag13TrgTylcuVaqrkRj:
 nop
 .text
-.globl b__MA5skpeg18FgevatQngnGrzcyngrVpR6PerngrRCXpz
+.weak b__MA5skpeg18FgevatQngnGrzcyngrVpR6PerngrRCXpz
 .type b__MA5skpeg18FgevatQngnGrzcyngrVpR6PerngrRCXpz,%function
 b__MA5skpeg18FgevatQngnGrzcyngrVpR6PerngrRCXpz:
 nop
@@ -643,7 +643,7 @@
 b__MAX14PCJY_FpebyyOne17TrgFpebyyOneJvqguRi:
 nop
 .text
-.globl b__MAX5skpeg18FgevatIvrjGrzcyngrVpR4YrsgRz
+.weak b__MAX5skpeg18FgevatIvrjGrzcyngrVpR4YrsgRz
 .type b__MAX5skpeg18FgevatIvrjGrzcyngrVpR4YrsgRz,%function
 b__MAX5skpeg18FgevatIvrjGrzcyngrVpR4YrsgRz:
 nop
@@ -653,7 +653,7 @@
 b__M13SK_HGS8RapbqrEXA5skpeg18FgevatIvrjGrzcyngrVjRR:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVCX11PCQS_BowrpgC18PCQS_PbhagrqBowrpgV15PCQS_PbybeFcnprRRRAF_19__znc_inyhr_pbzcnerVF4_F9_AF_4yrffVF4_RRYo1RRRAF_9nyybpngbeVF9_RRR7qrfgeblRCAF_11__gerr_abqrVF9_CiRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVCX11PCQS_BowrpgC18PCQS_PbhagrqBowrpgV15PCQS_PbybeFcnprRRRAF_19__znc_inyhr_pbzcnerVF4_F9_AF_4yrffVF4_RRYo1RRRAF_9nyybpngbeVF9_RRR7qrfgeblRCAF_11__gerr_abqrVF9_CiRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVCX11PCQS_BowrpgC18PCQS_PbhagrqBowrpgV15PCQS_PbybeFcnprRRRAF_19__znc_inyhr_pbzcnerVF4_F9_AF_4yrffVF4_RRYo1RRRAF_9nyybpngbeVF9_RRR7qrfgeblRCAF_11__gerr_abqrVF9_CiRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVCX11PCQS_BowrpgC18PCQS_PbhagrqBowrpgV15PCQS_PbybeFcnprRRRAF_19__znc_inyhr_pbzcnerVF4_F9_AF_4yrffVF4_RRYo1RRRAF_9nyybpngbeVF9_RRR7qrfgeblRCAF_11__gerr_abqrVF9_CiRR:
 nop
@@ -728,7 +728,7 @@
 b__MA9PCJY_Rqvg8BaQryrgrREX14PCIG_JbeqCynprF2_:
 nop
 .text
-.globl b__MAFg3__114__fcyvg_ohssreVCAF_10havdhr_cgeV17VSK_Rqvg_HaqbVgrzAF_14qrsnhyg_qryrgrVF2_RRRRAF_9nyybpngbeVF6_RRR9chfu_onpxRBF6_
+.weak b__MAFg3__114__fcyvg_ohssreVCAF_10havdhr_cgeV17VSK_Rqvg_HaqbVgrzAF_14qrsnhyg_qryrgrVF2_RRRRAF_9nyybpngbeVF6_RRR9chfu_onpxRBF6_
 .type b__MAFg3__114__fcyvg_ohssreVCAF_10havdhr_cgeV17VSK_Rqvg_HaqbVgrzAF_14qrsnhyg_qryrgrVF2_RRRRAF_9nyybpngbeVF6_RRR9chfu_onpxRBF6_,%function
 b__MAFg3__114__fcyvg_ohssreVCAF_10havdhr_cgeV17VSK_Rqvg_HaqbVgrzAF_14qrsnhyg_qryrgrVF2_RRRRAF_9nyybpngbeVF6_RRR9chfu_onpxRBF6_:
 nop
@@ -753,7 +753,7 @@
 b__pzfJevgrNyvtazrag:
 nop
 .text
-.globl b__MAFg3__16__gerrVC15PCQS_QvpgvbanelAF_4yrffVF2_RRAF_9nyybpngbeVF2_RRR12__svaq_rdhnyVF2_RRECAF_16__gerr_abqr_onfrVCiRRAF_21__gerr_pbafg_vgrengbeVF2_CAF_11__gerr_abqrVF2_FN_RRyRRECAF_15__gerr_raq_abqrVFP_RRFQ_EXG_
+.weak b__MAFg3__16__gerrVC15PCQS_QvpgvbanelAF_4yrffVF2_RRAF_9nyybpngbeVF2_RRR12__svaq_rdhnyVF2_RRECAF_16__gerr_abqr_onfrVCiRRAF_21__gerr_pbafg_vgrengbeVF2_CAF_11__gerr_abqrVF2_FN_RRyRRECAF_15__gerr_raq_abqrVFP_RRFQ_EXG_
 .type b__MAFg3__16__gerrVC15PCQS_QvpgvbanelAF_4yrffVF2_RRAF_9nyybpngbeVF2_RRR12__svaq_rdhnyVF2_RRECAF_16__gerr_abqr_onfrVCiRRAF_21__gerr_pbafg_vgrengbeVF2_CAF_11__gerr_abqrVF2_FN_RRyRRECAF_15__gerr_raq_abqrVFP_RRFQ_EXG_,%function
 b__MAFg3__16__gerrVC15PCQS_QvpgvbanelAF_4yrffVF2_RRAF_9nyybpngbeVF2_RRR12__svaq_rdhnyVF2_RRECAF_16__gerr_abqr_onfrVCiRRAF_21__gerr_pbafg_vgrengbeVF2_CAF_11__gerr_abqrVF2_FN_RRyRRECAF_15__gerr_raq_abqrVFP_RRFQ_EXG_:
 nop
@@ -813,7 +813,7 @@
 b__MA9PCQS_AnzrP1RA5skpeg7JrnxCgeVAF0_18FgevatCbbyGrzcyngrVAF0_10OlgrFgevatRRRAFg3__114qrsnhyg_qryrgrVF4_RRRREXF3_:
 nop
 .text
-.globl b__MA6cqsvhz10ZnxrHavdhrV9PCQS_AnzrWEA5skpeg7JrnxCgeVAF2_18FgevatCbbyGrzcyngrVAF2_10OlgrFgevatRRRAFg3__114qrsnhyg_qryrgrVF6_RRRREN17_XpRRRAF_8vagreany16ZnxrHavdhrErfhygVG_R6FpnyneRQcBG0_
+.weak b__MA6cqsvhz10ZnxrHavdhrV9PCQS_AnzrWEA5skpeg7JrnxCgeVAF2_18FgevatCbbyGrzcyngrVAF2_10OlgrFgevatRRRAFg3__114qrsnhyg_qryrgrVF6_RRRREN17_XpRRRAF_8vagreany16ZnxrHavdhrErfhygVG_R6FpnyneRQcBG0_
 .type b__MA6cqsvhz10ZnxrHavdhrV9PCQS_AnzrWEA5skpeg7JrnxCgeVAF2_18FgevatCbbyGrzcyngrVAF2_10OlgrFgevatRRRAFg3__114qrsnhyg_qryrgrVF6_RRRREN17_XpRRRAF_8vagreany16ZnxrHavdhrErfhygVG_R6FpnyneRQcBG0_,%function
 b__MA6cqsvhz10ZnxrHavdhrV9PCQS_AnzrWEA5skpeg7JrnxCgeVAF2_18FgevatCbbyGrzcyngrVAF2_10OlgrFgevatRRRAFg3__114qrsnhyg_qryrgrVF6_RRRREN17_XpRRRAF_8vagreany16ZnxrHavdhrErfhygVG_R6FpnyneRQcBG0_:
 nop
@@ -863,7 +863,7 @@
 b__MAX9PCQS_Anzr9TrgFgevatRi:
 nop
 .text
-.globl b__MAFg3__113zbir_onpxjneqV13CNTRPUNE_VASBCF1_EF1_CF2_yYy56RF1_F2_F3_F4_yYy56RRRAF_16__qrdhr_vgrengbeVG5_G6_G7_G8_G9_KG10_RRRAF5_VG_G0_G1_G2_G3_KG4_RRRFU_FO_
+.weak b__MAFg3__113zbir_onpxjneqV13CNTRPUNE_VASBCF1_EF1_CF2_yYy56RF1_F2_F3_F4_yYy56RRRAF_16__qrdhr_vgrengbeVG5_G6_G7_G8_G9_KG10_RRRAF5_VG_G0_G1_G2_G3_KG4_RRRFU_FO_
 .type b__MAFg3__113zbir_onpxjneqV13CNTRPUNE_VASBCF1_EF1_CF2_yYy56RF1_F2_F3_F4_yYy56RRRAF_16__qrdhr_vgrengbeVG5_G6_G7_G8_G9_KG10_RRRAF5_VG_G0_G1_G2_G3_KG4_RRRFU_FO_,%function
 b__MAFg3__113zbir_onpxjneqV13CNTRPUNE_VASBCF1_EF1_CF2_yYy56RF1_F2_F3_F4_yYy56RRRAF_16__qrdhr_vgrengbeVG5_G6_G7_G8_G9_KG10_RRRAF5_VG_G0_G1_G2_G3_KG4_RRRFU_FO_:
 nop
@@ -933,12 +933,12 @@
 b__MA20PSK_VzntrGenafsbezre9PnypPbybeREXAF_8PnypQngnR12SKQVO_Sbezngv:
 nop
 .text
-.globl b__MA5skpeg18FgevatIvrjGrzcyngrVjRP1RCXjz
+.weak b__MA5skpeg18FgevatIvrjGrzcyngrVjRP1RCXjz
 .type b__MA5skpeg18FgevatIvrjGrzcyngrVjRP1RCXjz,%function
 b__MA5skpeg18FgevatIvrjGrzcyngrVjRP1RCXjz:
 nop
 .text
-.globl b__MAFg3__16irpgbeVC13PCQSFQX_NaabgAF_9nyybpngbeVF2_RRRP2REXF5_
+.weak b__MAFg3__16irpgbeVC13PCQSFQX_NaabgAF_9nyybpngbeVF2_RRRP2REXF5_
 .type b__MAFg3__16irpgbeVC13PCQSFQX_NaabgAF_9nyybpngbeVF2_RRRP2REXF5_,%function
 b__MAFg3__16irpgbeVC13PCQSFQX_NaabgAF_9nyybpngbeVF2_RRRP2REXF5_:
 nop
@@ -993,12 +993,12 @@
 b__MA5skpeg10OlgrFgevatP2RBF0_:
 nop
 .text
-.globl b__MA5skpeg18FgevatQngnGrzcyngrVjR6PerngrRz
+.weak b__MA5skpeg18FgevatQngnGrzcyngrVjR6PerngrRz
 .type b__MA5skpeg18FgevatQngnGrzcyngrVjR6PerngrRz,%function
 b__MA5skpeg18FgevatQngnGrzcyngrVjR6PerngrRz:
 nop
 .data
-.globl b__MGFAFg3__117onq_shapgvba_pnyyR
+.weak b__MGFAFg3__117onq_shapgvba_pnyyR
 .type b__MGFAFg3__117onq_shapgvba_pnyyR,%object
 b__MGFAFg3__117onq_shapgvba_pnyyR:
 .space __SIZEOF_POINTER__
@@ -1058,7 +1058,7 @@
 b__MA11PCQS_AhzoreQ1Ri:
 nop
 .text
-.globl b__MAFg3__16irpgbeVCuAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_
+.weak b__MAFg3__16irpgbeVCuAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_
 .type b__MAFg3__16irpgbeVCuAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_,%function
 b__MAFg3__16irpgbeVCuAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_:
 nop
@@ -1238,7 +1238,7 @@
 b__MA14PSK_TencuFgngrP2REXF_:
 nop
 .text
-.globl b__MAFg3__118__vafregvba_fbeg_3VECSoCX13PCQSFQX_NaabgF3_RCCF1_RRiG0_F9_G_
+.weak b__MAFg3__118__vafregvba_fbeg_3VECSoCX13PCQSFQX_NaabgF3_RCCF1_RRiG0_F9_G_
 .type b__MAFg3__118__vafregvba_fbeg_3VECSoCX13PCQSFQX_NaabgF3_RCCF1_RRiG0_F9_G_,%function
 b__MAFg3__118__vafregvba_fbeg_3VECSoCX13PCQSFQX_NaabgF3_RCCF1_RRiG0_F9_G_:
 nop
@@ -1258,7 +1258,7 @@
 b__MA24PCQS_FgernzPbagragCnefre19Unaqyr_PbapngZngevkRi:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA5skpeg10OlgrFgevatRAF_9nyybpngbeVF2_RRRP2Rz
+.weak b__MAFg3__16irpgbeVA5skpeg10OlgrFgevatRAF_9nyybpngbeVF2_RRRP2Rz
 .type b__MAFg3__16irpgbeVA5skpeg10OlgrFgevatRAF_9nyybpngbeVF2_RRRP2Rz,%function
 b__MAFg3__16irpgbeVA5skpeg10OlgrFgevatRAF_9nyybpngbeVF2_RRRP2Rz:
 nop
@@ -1298,7 +1298,7 @@
 b__MA3ntt10iptra_qnfuP1Ri:
 nop
 .text
-.globl b__MAX5skpeg18FgevatIvrjGrzcyngrVjR4YrsgRz
+.weak b__MAX5skpeg18FgevatIvrjGrzcyngrVjR4YrsgRz
 .type b__MAX5skpeg18FgevatIvrjGrzcyngrVjR4YrsgRz,%function
 b__MAX5skpeg18FgevatIvrjGrzcyngrVjR4YrsgRz:
 nop
@@ -1383,7 +1383,7 @@
 b__MA14PCQS_BPPbagrkg18PurpxBowrpgIvfvoyrRCX15PCQS_CntrBowrpg:
 nop
 .text
-.globl b__MA6cqsvhz10ZnxrHavdhrV11PCQS_FgevatWEA5skpeg7JrnxCgeVAF2_18FgevatCbbyGrzcyngrVAF2_10OlgrFgevatRRRAFg3__114qrsnhyg_qryrgrVF6_RRRREN7_XjRRRAF_8vagreany16ZnxrHavdhrErfhygVG_R6FpnyneRQcBG0_
+.weak b__MA6cqsvhz10ZnxrHavdhrV11PCQS_FgevatWEA5skpeg7JrnxCgeVAF2_18FgevatCbbyGrzcyngrVAF2_10OlgrFgevatRRRAFg3__114qrsnhyg_qryrgrVF6_RRRREN7_XjRRRAF_8vagreany16ZnxrHavdhrErfhygVG_R6FpnyneRQcBG0_
 .type b__MA6cqsvhz10ZnxrHavdhrV11PCQS_FgevatWEA5skpeg7JrnxCgeVAF2_18FgevatCbbyGrzcyngrVAF2_10OlgrFgevatRRRAFg3__114qrsnhyg_qryrgrVF6_RRRREN7_XjRRRAF_8vagreany16ZnxrHavdhrErfhygVG_R6FpnyneRQcBG0_,%function
 b__MA6cqsvhz10ZnxrHavdhrV11PCQS_FgevatWEA5skpeg7JrnxCgeVAF2_18FgevatCbbyGrzcyngrVAF2_10OlgrFgevatRRRAFg3__114qrsnhyg_qryrgrVF6_RRRREN7_XjRRRAF_8vagreany16ZnxrHavdhrErfhygVG_R6FpnyneRQcBG0_:
 nop
@@ -1398,7 +1398,7 @@
 b__MAX15PCQS_CntrBowrpg6VfCnguRi:
 nop
 .text
-.globl b__MAFg3__114__fcyvg_ohssreVCyEAF_9nyybpngbeVF1_RRR10chfu_sebagREXF1_
+.weak b__MAFg3__114__fcyvg_ohssreVCyEAF_9nyybpngbeVF1_RRR10chfu_sebagREXF1_
 .type b__MAFg3__114__fcyvg_ohssreVCyEAF_9nyybpngbeVF1_RRR10chfu_sebagREXF1_,%function
 b__MAFg3__114__fcyvg_ohssreVCyEAF_9nyybpngbeVF1_RRR10chfu_sebagREXF1_:
 nop
@@ -1483,7 +1483,7 @@
 b__MA14PCQS_FgehpgXvqQ1Ri:
 nop
 .data
-.globl b__MGVFg11ybtvp_reebe
+.weak b__MGVFg11ybtvp_reebe
 .type b__MGVFg11ybtvp_reebe,%object
 b__MGVFg11ybtvp_reebe:
 .space __SIZEOF_POINTER__
@@ -1683,7 +1683,7 @@
 b__MAX15PCQS_Qvpgvbanel13TrgVagrtreSbeREXA5skpeg10OlgrFgevatR:
 nop
 .text
-.globl b__MAFg3__114__fcyvg_ohssreVCwAF_9nyybpngbeVF1_RRR9chfu_onpxRBF1_
+.weak b__MAFg3__114__fcyvg_ohssreVCwAF_9nyybpngbeVF1_RRR9chfu_onpxRBF1_
 .type b__MAFg3__114__fcyvg_ohssreVCwAF_9nyybpngbeVF1_RRR9chfu_onpxRBF1_,%function
 b__MAFg3__114__fcyvg_ohssreVCwAF_9nyybpngbeVF1_RRR9chfu_onpxRBF1_:
 nop
@@ -1973,7 +1973,7 @@
 b__MA16PCQSFQX_CntrIvrj12YbnqSKNaabgfRi:
 nop
 .data
-.globl b__MGIA8PCJY_Jaq13CebivqreVsnprR
+.weak b__MGIA8PCJY_Jaq13CebivqreVsnprR
 .type b__MGIA8PCJY_Jaq13CebivqreVsnprR,%object
 b__MGIA8PCJY_Jaq13CebivqreVsnprR:
 .space __SIZEOF_POINTER__
@@ -2468,7 +2468,7 @@
 b__MA21PCQSFQX_JvqtrgUnaqyre11BaZbhfrZbirRC16PCQSFQX_CntrIvrjCA5skpeg10BofreinoyrV13PCQSFQX_NaabgR11BofreirqCgeRwEX13PSK_CGrzcyngrVsR:
 nop
 .text
-.globl b__MAFg3__15qrdhrVAF_10havdhr_cgeV15PCQS_CntrBowrpgAF_14qrsnhyg_qryrgrVF2_RRRRAF_9nyybpngbeVF5_RRR19__nqq_onpx_pncnpvglRi
+.weak b__MAFg3__15qrdhrVAF_10havdhr_cgeV15PCQS_CntrBowrpgAF_14qrsnhyg_qryrgrVF2_RRRRAF_9nyybpngbeVF5_RRR19__nqq_onpx_pncnpvglRi
 .type b__MAFg3__15qrdhrVAF_10havdhr_cgeV15PCQS_CntrBowrpgAF_14qrsnhyg_qryrgrVF2_RRRRAF_9nyybpngbeVF5_RRR19__nqq_onpx_pncnpvglRi,%function
 b__MAFg3__15qrdhrVAF_10havdhr_cgeV15PCQS_CntrBowrpgAF_14qrsnhyg_qryrgrVF2_RRRRAF_9nyybpngbeVF5_RRR19__nqq_onpx_pncnpvglRi:
 nop
@@ -2828,7 +2828,7 @@
 b__MA21WOvt2_QbphzragPbagrkgQ1Ri:
 nop
 .text
-.globl b__MAFg3__114__fcyvg_ohssreVCAF_10havdhr_cgeV17VSK_Rqvg_HaqbVgrzAF_14qrsnhyg_qryrgrVF2_RRRRAF_9nyybpngbeVF6_RRR10chfu_sebagRBF6_
+.weak b__MAFg3__114__fcyvg_ohssreVCAF_10havdhr_cgeV17VSK_Rqvg_HaqbVgrzAF_14qrsnhyg_qryrgrVF2_RRRRAF_9nyybpngbeVF6_RRR10chfu_sebagRBF6_
 .type b__MAFg3__114__fcyvg_ohssreVCAF_10havdhr_cgeV17VSK_Rqvg_HaqbVgrzAF_14qrsnhyg_qryrgrVF2_RRRRAF_9nyybpngbeVF6_RRR10chfu_sebagRBF6_,%function
 b__MAFg3__114__fcyvg_ohssreVCAF_10havdhr_cgeV17VSK_Rqvg_HaqbVgrzAF_14qrsnhyg_qryrgrVF2_RRRRAF_9nyybpngbeVF6_RRR10chfu_sebagRBF6_:
 nop
@@ -3228,7 +3228,7 @@
 b__MA22CJY_FPEBYY_CEVINGRQNGN14FrgPyvragJvqguRs:
 nop
 .text
-.globl b__MA6cqsvhz10ZnxrHavdhrV9PCQS_AnzrWEA5skpeg7JrnxCgeVAF2_18FgevatCbbyGrzcyngrVAF2_10OlgrFgevatRRRAFg3__114qrsnhyg_qryrgrVF6_RRRREXF5_RRRAF_8vagreany16ZnxrHavdhrErfhygVG_R6FpnyneRQcBG0_
+.weak b__MA6cqsvhz10ZnxrHavdhrV9PCQS_AnzrWEA5skpeg7JrnxCgeVAF2_18FgevatCbbyGrzcyngrVAF2_10OlgrFgevatRRRAFg3__114qrsnhyg_qryrgrVF6_RRRREXF5_RRRAF_8vagreany16ZnxrHavdhrErfhygVG_R6FpnyneRQcBG0_
 .type b__MA6cqsvhz10ZnxrHavdhrV9PCQS_AnzrWEA5skpeg7JrnxCgeVAF2_18FgevatCbbyGrzcyngrVAF2_10OlgrFgevatRRRAFg3__114qrsnhyg_qryrgrVF6_RRRREXF5_RRRAF_8vagreany16ZnxrHavdhrErfhygVG_R6FpnyneRQcBG0_,%function
 b__MA6cqsvhz10ZnxrHavdhrV9PCQS_AnzrWEA5skpeg7JrnxCgeVAF2_18FgevatCbbyGrzcyngrVAF2_10OlgrFgevatRRRAFg3__114qrsnhyg_qryrgrVF6_RRRREXF5_RRRAF_8vagreany16ZnxrHavdhrErfhygVG_R6FpnyneRQcBG0_:
 nop
@@ -3258,7 +3258,7 @@
 b__M14CQS_QrpbqrGrkgCXuw:
 nop
 .text
-.globl b__MAFg3__114__fcyvg_ohssreVCAF_10havdhr_cgeV17VSK_Rqvg_HaqbVgrzAF_14qrsnhyg_qryrgrVF2_RRRREAF_9nyybpngbeVF6_RRR9chfu_onpxRBF6_
+.weak b__MAFg3__114__fcyvg_ohssreVCAF_10havdhr_cgeV17VSK_Rqvg_HaqbVgrzAF_14qrsnhyg_qryrgrVF2_RRRREAF_9nyybpngbeVF6_RRR9chfu_onpxRBF6_
 .type b__MAFg3__114__fcyvg_ohssreVCAF_10havdhr_cgeV17VSK_Rqvg_HaqbVgrzAF_14qrsnhyg_qryrgrVF2_RRRREAF_9nyybpngbeVF6_RRR9chfu_onpxRBF6_,%function
 b__MAFg3__114__fcyvg_ohssreVCAF_10havdhr_cgeV17VSK_Rqvg_HaqbVgrzAF_14qrsnhyg_qryrgrVF2_RRRREAF_9nyybpngbeVF6_RRR9chfu_onpxRBF6_:
 nop
@@ -3278,7 +3278,7 @@
 b__MA14PCQS_QngnNinvy9PurpxCntrRi:
 nop
 .text
-.globl b__MAX5skpeg18FgevatIvrjGrzcyngrVpR4eraqRi
+.weak b__MAX5skpeg18FgevatIvrjGrzcyngrVpR4eraqRi
 .type b__MAX5skpeg18FgevatIvrjGrzcyngrVpR4eraqRi,%function
 b__MAX5skpeg18FgevatIvrjGrzcyngrVpR4eraqRi:
 nop
@@ -3408,7 +3408,7 @@
 b__MA17PCQS_InevnoyrGrkgQ2Ri:
 nop
 .text
-.globl b__MAX5skpeg18FgevatIvrjGrzcyngrVjRrdRCXj
+.weak b__MAX5skpeg18FgevatIvrjGrzcyngrVjRrdRCXj
 .type b__MAX5skpeg18FgevatIvrjGrzcyngrVjRrdRCXj,%function
 b__MAX5skpeg18FgevatIvrjGrzcyngrVjRrdRCXj:
 nop
@@ -3543,7 +3543,7 @@
 b__MA15PWOvt2_TEEQCebp22qrpbqr_Grzcyngr0_habcgRC19PWOvt2_NevguQrpbqreC13WOvt2NevguPgk:
 nop
 .text
-.globl b__MAX5skpeg18FgevatIvrjGrzcyngrVpR6eortvaRi
+.weak b__MAX5skpeg18FgevatIvrjGrzcyngrVpR6eortvaRi
 .type b__MAX5skpeg18FgevatIvrjGrzcyngrVpR6eortvaRi,%function
 b__MAX5skpeg18FgevatIvrjGrzcyngrVpR6eortvaRi:
 nop
@@ -3593,7 +3593,7 @@
 b__MAX12PSK_CnguQngn14TrgObhaqvatObkRss:
 nop
 .text
-.globl b__MAFg3__15qrdhrVwAF_9nyybpngbeVwRRR13__zbir_nffvtaREF3_AF_17vagrteny_pbafgnagVoYo1RRR
+.weak b__MAFg3__15qrdhrVwAF_9nyybpngbeVwRRR13__zbir_nffvtaREF3_AF_17vagrteny_pbafgnagVoYo1RRR
 .type b__MAFg3__15qrdhrVwAF_9nyybpngbeVwRRR13__zbir_nffvtaREF3_AF_17vagrteny_pbafgnagVoYo1RRR,%function
 b__MAFg3__15qrdhrVwAF_9nyybpngbeVwRRR13__zbir_nffvtaREF3_AF_17vagrteny_pbafgnagVoYo1RRR:
 nop
@@ -3678,7 +3678,7 @@
 b__M13SK_BcraSbyqreCXp:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVA5skpeg10JvqrFgevatRAF_4unfuVF2_RRAF_8rdhny_gbVF2_RRAF_9nyybpngbeVF2_RRR8__erunfuRz
+.weak b__MAFg3__112__unfu_gnoyrVA5skpeg10JvqrFgevatRAF_4unfuVF2_RRAF_8rdhny_gbVF2_RRAF_9nyybpngbeVF2_RRR8__erunfuRz
 .type b__MAFg3__112__unfu_gnoyrVA5skpeg10JvqrFgevatRAF_4unfuVF2_RRAF_8rdhny_gbVF2_RRAF_9nyybpngbeVF2_RRR8__erunfuRz,%function
 b__MAFg3__112__unfu_gnoyrVA5skpeg10JvqrFgevatRAF_4unfuVF2_RRAF_8rdhny_gbVF2_RRAF_9nyybpngbeVF2_RRR8__erunfuRz:
 nop
@@ -3733,7 +3733,7 @@
 b_pzfBcraCebsvyrSebzZrz:
 nop
 .text
-.globl b__MA3ntt9cbq_qrdhrVAF_15iregrk_qvfg_pzqRYw6RR14nyybpngr_oybpxRw
+.weak b__MA3ntt9cbq_qrdhrVAF_15iregrk_qvfg_pzqRYw6RR14nyybpngr_oybpxRw
 .type b__MA3ntt9cbq_qrdhrVAF_15iregrk_qvfg_pzqRYw6RR14nyybpngr_oybpxRw,%function
 b__MA3ntt9cbq_qrdhrVAF_15iregrk_qvfg_pzqRYw6RR14nyybpngr_oybpxRw:
 nop
@@ -3853,7 +3853,7 @@
 b__MA16PCQS_SbezPbageby8TrgPbybeREvEXA5skpeg10OlgrFgevatR:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_10havdhr_cgeV10PCQS_NaabgAF_14qrsnhyg_qryrgrVF2_RRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_
+.weak b__MAFg3__16irpgbeVAF_10havdhr_cgeV10PCQS_NaabgAF_14qrsnhyg_qryrgrVF2_RRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_
 .type b__MAFg3__16irpgbeVAF_10havdhr_cgeV10PCQS_NaabgAF_14qrsnhyg_qryrgrVF2_RRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_,%function
 b__MAFg3__16irpgbeVAF_10havdhr_cgeV10PCQS_NaabgAF_14qrsnhyg_qryrgrVF2_RRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_:
 nop
@@ -3863,7 +3863,7 @@
 b__MA13PCJY_YvfgPgey10FrgGbcVgrzRv:
 nop
 .text
-.globl b__MA3ntt15iregrk_frdhraprVAF_11iregrk_qvfgRYw6RR5pybfrRo
+.weak b__MA3ntt15iregrk_frdhraprVAF_11iregrk_qvfgRYw6RR5pybfrRo
 .type b__MA3ntt15iregrk_frdhraprVAF_11iregrk_qvfgRYw6RR5pybfrRo,%function
 b__MA3ntt15iregrk_frdhraprVAF_11iregrk_qvfgRYw6RR5pybfrRo:
 nop
@@ -3923,12 +3923,12 @@
 b__MA23PSK_QrsnhygEraqreQrivprQ2Ri:
 nop
 .text
-.globl b__MAX5skpeg18FgevatIvrjGrzcyngrVpR3ZvqRzz
+.weak b__MAX5skpeg18FgevatIvrjGrzcyngrVpR3ZvqRzz
 .type b__MAX5skpeg18FgevatIvrjGrzcyngrVpR3ZvqRzz,%function
 b__MAX5skpeg18FgevatIvrjGrzcyngrVpR3ZvqRzz:
 nop
 .text
-.globl b__MAX5skpeg18FgevatIvrjGrzcyngrVjR4eraqRi
+.weak b__MAX5skpeg18FgevatIvrjGrzcyngrVjR4eraqRi
 .type b__MAX5skpeg18FgevatIvrjGrzcyngrVjR4eraqRi,%function
 b__MAX5skpeg18FgevatIvrjGrzcyngrVjR4eraqRi:
 nop
@@ -4153,7 +4153,7 @@
 b__MA10PCQS_VzntrP1RC13PCQS_Qbphzrag:
 nop
 .text
-.globl b__MAX5skpeg18FgevatIvrjGrzcyngrVjRygREXF1_
+.weak b__MAX5skpeg18FgevatIvrjGrzcyngrVjRygREXF1_
 .type b__MAX5skpeg18FgevatIvrjGrzcyngrVjRygREXF1_,%function
 b__MAX5skpeg18FgevatIvrjGrzcyngrVjRygREXF1_:
 nop
@@ -4198,12 +4198,12 @@
 b__MAX13PCJY_RqvgPgey12TrgPnergVasbRC13PSK_CGrzcyngrVsRF2_:
 nop
 .text
-.globl b__MA5skpeg18FgevatQngnGrzcyngrVjRP1Rzz
+.weak b__MA5skpeg18FgevatQngnGrzcyngrVjRP1Rzz
 .type b__MA5skpeg18FgevatQngnGrzcyngrVjRP1Rzz,%function
 b__MA5skpeg18FgevatQngnGrzcyngrVjRP1Rzz:
 nop
 .text
-.globl b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9haqresybjRi
+.weak b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9haqresybjRi
 .type b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9haqresybjRi,%function
 b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9haqresybjRi:
 nop
@@ -4253,7 +4253,7 @@
 b__MA14PCQS_QngnNinvy11YbnqQbpCntrRw:
 nop
 .text
-.globl b__MAFg3__114__fcyvg_ohssreVAF_10havdhr_cgeV8PFrpgvbaAF_14qrsnhyg_qryrgrVF2_RRRREAF_9nyybpngbeVF5_RRR9chfu_onpxRBF5_
+.weak b__MAFg3__114__fcyvg_ohssreVAF_10havdhr_cgeV8PFrpgvbaAF_14qrsnhyg_qryrgrVF2_RRRREAF_9nyybpngbeVF5_RRR9chfu_onpxRBF5_
 .type b__MAFg3__114__fcyvg_ohssreVAF_10havdhr_cgeV8PFrpgvbaAF_14qrsnhyg_qryrgrVF2_RRRREAF_9nyybpngbeVF5_RRR9chfu_onpxRBF5_,%function
 b__MAFg3__114__fcyvg_ohssreVAF_10havdhr_cgeV8PFrpgvbaAF_14qrsnhyg_qryrgrVF2_RRRREAF_9nyybpngbeVF5_RRR9chfu_onpxRBF5_:
 nop
@@ -4263,7 +4263,7 @@
 b__MA13PCJY_YvfgPgey16FpebyyGbYvfgVgrzRv:
 nop
 .text
-.globl b__MAX5skpeg18FgevatIvrjGrzcyngrVpR4SvaqRp
+.weak b__MAX5skpeg18FgevatIvrjGrzcyngrVpR4SvaqRp
 .type b__MAX5skpeg18FgevatIvrjGrzcyngrVpR4SvaqRp,%function
 b__MAX5skpeg18FgevatIvrjGrzcyngrVpR4SvaqRp:
 nop
@@ -4278,7 +4278,7 @@
 b__M14CQS_AnzrQrpbqrEXA5skpeg10OlgrFgevatR:
 nop
 .text
-.globl b__MAFg3__112__qrdhr_onfrVAF_10havdhr_cgeVA17PCQS_BowrpgJnyxre17FhobowrpgVgrengbeRAF_14qrsnhyg_qryrgrVF3_RRRRAF_9nyybpngbeVF6_RRR5pyrneRi
+.weak b__MAFg3__112__qrdhr_onfrVAF_10havdhr_cgeVA17PCQS_BowrpgJnyxre17FhobowrpgVgrengbeRAF_14qrsnhyg_qryrgrVF3_RRRRAF_9nyybpngbeVF6_RRR5pyrneRi
 .type b__MAFg3__112__qrdhr_onfrVAF_10havdhr_cgeVA17PCQS_BowrpgJnyxre17FhobowrpgVgrengbeRAF_14qrsnhyg_qryrgrVF3_RRRRAF_9nyybpngbeVF6_RRR5pyrneRi,%function
 b__MAFg3__112__qrdhr_onfrVAF_10havdhr_cgeVA17PCQS_BowrpgJnyxre17FhobowrpgVgrengbeRAF_14qrsnhyg_qryrgrVF3_RRRRAF_9nyybpngbeVF6_RRR5pyrneRi:
 nop
@@ -4308,7 +4308,7 @@
 b__MA8PCJY_Jaq15BaYOhggbaQoyPyxREX13PSK_CGrzcyngrVsRw:
 nop
 .text
-.globl b__MAX5skpeg18FgevatIvrjGrzcyngrVjRarRCXj
+.weak b__MAX5skpeg18FgevatIvrjGrzcyngrVjRarRCXj
 .type b__MAX5skpeg18FgevatIvrjGrzcyngrVjRarRCXj,%function
 b__MAX5skpeg18FgevatIvrjGrzcyngrVjRarRCXj:
 nop
@@ -4378,7 +4378,7 @@
 b__MA16PPbqrp_SnkZbqhyr13PerngrQrpbqreRCXuwvvvooovv:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA5skpeg10HabjarqCgeV16PCQS_SbezPbagebyRRAF_9nyybpngbeVF4_RRR24__rzcynpr_onpx_fybj_cnguVWECF3_RRRiQcBG_
+.weak b__MAFg3__16irpgbeVA5skpeg10HabjarqCgeV16PCQS_SbezPbagebyRRAF_9nyybpngbeVF4_RRR24__rzcynpr_onpx_fybj_cnguVWECF3_RRRiQcBG_
 .type b__MAFg3__16irpgbeVA5skpeg10HabjarqCgeV16PCQS_SbezPbagebyRRAF_9nyybpngbeVF4_RRR24__rzcynpr_onpx_fybj_cnguVWECF3_RRRiQcBG_,%function
 b__MAFg3__16irpgbeVA5skpeg10HabjarqCgeV16PCQS_SbezPbagebyRRAF_9nyybpngbeVF4_RRR24__rzcynpr_onpx_fybj_cnguVWECF3_RRRiQcBG_:
 nop
@@ -4468,7 +4468,7 @@
 b__MA18PCQS_FgehpgRyrzragQ0Ri:
 nop
 .text
-.globl b__MA5skpeg18FgevatIvrjGrzcyngrVpRP2REp
+.weak b__MA5skpeg18FgevatIvrjGrzcyngrVpRP2REp
 .type b__MA5skpeg18FgevatIvrjGrzcyngrVpRP2REp,%function
 b__MA5skpeg18FgevatIvrjGrzcyngrVpRP2REp:
 nop
@@ -4583,7 +4583,7 @@
 b__MA14PCQS_QVOFbhepr19PbagvahrYbnqZnfxQVORC18VSK_CnhfrVaqvpngbe:
 nop
 .text
-.globl b__MAFg3__16irpgbeVC14PCQS_SbezSvryqAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVF2_RRiBG_
+.weak b__MAFg3__16irpgbeVC14PCQS_SbezSvryqAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVF2_RRiBG_
 .type b__MAFg3__16irpgbeVC14PCQS_SbezSvryqAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVF2_RRiBG_,%function
 b__MAFg3__16irpgbeVC14PCQS_SbezSvryqAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVF2_RRiBG_:
 nop
@@ -4638,7 +4638,7 @@
 b__MAX11PCQS_Bowrpg7VfNeenlRi:
 nop
 .text
-.globl b__MA3ntt15iregrk_frdhraprVAF_15iregrk_qvfg_pzqRYw6RR5pybfrRo
+.weak b__MA3ntt15iregrk_frdhraprVAF_15iregrk_qvfg_pzqRYw6RR5pybfrRo
 .type b__MA3ntt15iregrk_frdhraprVAF_15iregrk_qvfg_pzqRYw6RR5pybfrRo,%function
 b__MA3ntt15iregrk_frdhraprVAF_15iregrk_qvfg_pzqRYw6RR5pybfrRo:
 nop
@@ -4653,7 +4653,7 @@
 b__pzfPbzcvyrCebsvyrFrdhrapr:
 nop
 .text
-.globl b__MAX5skpeg18FgevatIvrjGrzcyngrVjR3ZvqRzz
+.weak b__MAX5skpeg18FgevatIvrjGrzcyngrVjR3ZvqRzz
 .type b__MAX5skpeg18FgevatIvrjGrzcyngrVjR3ZvqRzz,%function
 b__MAX5skpeg18FgevatIvrjGrzcyngrVjR3ZvqRzz:
 nop
@@ -4723,7 +4723,7 @@
 b__MAX14PCQS_VagreSbez19PurpxErdhverqSvryqfRCXAFg3__16irpgbeVC14PCQS_SbezSvryqAF0_9nyybpngbeVF3_RRRRo:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_4cnveVwwRRAF_6irpgbeVwAF_9nyybpngbeVwRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR7qrfgeblRCAF_11__gerr_abqrVF8_CiRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_4cnveVwwRRAF_6irpgbeVwAF_9nyybpngbeVwRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR7qrfgeblRCAF_11__gerr_abqrVF8_CiRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_4cnveVwwRRAF_6irpgbeVwAF_9nyybpngbeVwRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR7qrfgeblRCAF_11__gerr_abqrVF8_CiRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_4cnveVwwRRAF_6irpgbeVwAF_9nyybpngbeVwRRRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF5_VF8_RRR7qrfgeblRCAF_11__gerr_abqrVF8_CiRR:
 nop
@@ -4833,7 +4833,7 @@
 b_xSKGrkgYnlbhgOvqvZveebe:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA6cqsvhz10ZnxrHavdhrV9PCQS_AnzrWEA5skpeg7JrnxCgeVAF2_18FgevatCbbyGrzcyngrVAF2_10OlgrFgevatRRRAFg3__114qrsnhyg_qryrgrVF6_RRRREN8_XpRRRAF_8vagreany16ZnxrHavdhrErfhygVG_R6FpnyneRQcBG0_
+.weak b__MA6cqsvhz10ZnxrHavdhrV9PCQS_AnzrWEA5skpeg7JrnxCgeVAF2_18FgevatCbbyGrzcyngrVAF2_10OlgrFgevatRRRAFg3__114qrsnhyg_qryrgrVF6_RRRREN8_XpRRRAF_8vagreany16ZnxrHavdhrErfhygVG_R6FpnyneRQcBG0_
 .type b__MA6cqsvhz10ZnxrHavdhrV9PCQS_AnzrWEA5skpeg7JrnxCgeVAF2_18FgevatCbbyGrzcyngrVAF2_10OlgrFgevatRRRAFg3__114qrsnhyg_qryrgrVF6_RRRREN8_XpRRRAF_8vagreany16ZnxrHavdhrErfhygVG_R6FpnyneRQcBG0_,%function
 b__MA6cqsvhz10ZnxrHavdhrV9PCQS_AnzrWEA5skpeg7JrnxCgeVAF2_18FgevatCbbyGrzcyngrVAF2_10OlgrFgevatRRRAFg3__114qrsnhyg_qryrgrVF6_RRRREN8_XpRRRAF_8vagreany16ZnxrHavdhrErfhygVG_R6FpnyneRQcBG0_:
 nop
@@ -4873,7 +4873,7 @@
 b__MA10PCQS_Naabg14QenjNccrnenaprRC9PCQS_CntrC16PSK_EraqreQrivprEX10PSK_ZngevkAF_14NccrnenaprZbqrRCX18PCQS_EraqreBcgvbaf:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVwAF_10havdhr_cgeV14PCQS_Glcr3PuneAF_14qrsnhyg_qryrgrVF3_RRRRRRAF_19__znc_inyhr_pbzcnerVwF7_AF_4yrffVwRRYo1RRRAF_9nyybpngbeVF7_RRR7qrfgeblRCAF_11__gerr_abqrVF7_CiRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVwAF_10havdhr_cgeV14PCQS_Glcr3PuneAF_14qrsnhyg_qryrgrVF3_RRRRRRAF_19__znc_inyhr_pbzcnerVwF7_AF_4yrffVwRRYo1RRRAF_9nyybpngbeVF7_RRR7qrfgeblRCAF_11__gerr_abqrVF7_CiRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVwAF_10havdhr_cgeV14PCQS_Glcr3PuneAF_14qrsnhyg_qryrgrVF3_RRRRRRAF_19__znc_inyhr_pbzcnerVwF7_AF_4yrffVwRRYo1RRRAF_9nyybpngbeVF7_RRR7qrfgeblRCAF_11__gerr_abqrVF7_CiRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVwAF_10havdhr_cgeV14PCQS_Glcr3PuneAF_14qrsnhyg_qryrgrVF3_RRRRRRAF_19__znc_inyhr_pbzcnerVwF7_AF_4yrffVwRRYo1RRRAF_9nyybpngbeVF7_RRR7qrfgeblRCAF_11__gerr_abqrVF7_CiRR:
 nop
@@ -4883,7 +4883,7 @@
 b__MA14PFgergpuRatvar12PJrvtugGnoyr4PnypRvvvvvvv:
 nop
 .text
-.globl b__MA5skpeg18FgevatCbbyGrzcyngrVAF_10OlgrFgevatRR6VagreaREXF1_
+.weak b__MA5skpeg18FgevatCbbyGrzcyngrVAF_10OlgrFgevatRR6VagreaREXF1_
 .type b__MA5skpeg18FgevatCbbyGrzcyngrVAF_10OlgrFgevatRR6VagreaREXF1_,%function
 b__MA5skpeg18FgevatCbbyGrzcyngrVAF_10OlgrFgevatRR6VagreaREXF1_:
 nop
@@ -4938,7 +4938,7 @@
 b__MA14PCQS_BPPbagrkg8TrgBPTIRRC10PCQS_Neenlv:
 nop
 .text
-.globl b__MAFg3__16irpgbeV14PCQS_FgehpgXvqAF_9nyybpngbeVF1_RRR8__nccraqRz
+.weak b__MAFg3__16irpgbeV14PCQS_FgehpgXvqAF_9nyybpngbeVF1_RRR8__nccraqRz
 .type b__MAFg3__16irpgbeV14PCQS_FgehpgXvqAF_9nyybpngbeVF1_RRR8__nccraqRz,%function
 b__MAFg3__16irpgbeV14PCQS_FgehpgXvqAF_9nyybpngbeVF1_RRR8__nccraqRz:
 nop
@@ -5013,7 +5013,7 @@
 b__MA5skpeg10OlgrFgevatP1RBF0_:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA16PCQS_FnzcyrqShap16FnzcyrQrpbqrVasbRAF_9nyybpngbeVF2_RRR8__nccraqRz
+.weak b__MAFg3__16irpgbeVA16PCQS_FnzcyrqShap16FnzcyrQrpbqrVasbRAF_9nyybpngbeVF2_RRR8__nccraqRz
 .type b__MAFg3__16irpgbeVA16PCQS_FnzcyrqShap16FnzcyrQrpbqrVasbRAF_9nyybpngbeVF2_RRR8__nccraqRz,%function
 b__MAFg3__16irpgbeVA16PCQS_FnzcyrqShap16FnzcyrQrpbqrVasbRAF_9nyybpngbeVF2_RRR8__nccraqRz:
 nop
@@ -5093,7 +5093,7 @@
 b__MA13PCJY_RqvgVzcy15CnvagVafregGrkgREX14PCIG_JbeqCynprF2_:
 nop
 .text
-.globl b__MAX5skpeg18FgevatIvrjGrzcyngrVpR9TrgYratguRi
+.weak b__MAX5skpeg18FgevatIvrjGrzcyngrVpR9TrgYratguRi
 .type b__MAX5skpeg18FgevatIvrjGrzcyngrVpR9TrgYratguRi,%function
 b__MAX5skpeg18FgevatIvrjGrzcyngrVpR9TrgYratguRi:
 nop
@@ -5103,7 +5103,7 @@
 b__MA10PCQS_Pbybe13EryrnfrOhssreRi:
 nop
 .text
-.globl b__MA6cqsvhz10ZnxrHavdhrV9PCQS_AnzrWA5skpeg7JrnxCgeVAF2_18FgevatCbbyGrzcyngrVAF2_10OlgrFgevatRRRAFg3__114qrsnhyg_qryrgrVF6_RRRRF5_RRRAF_8vagreany16ZnxrHavdhrErfhygVG_R6FpnyneRQcBG0_
+.weak b__MA6cqsvhz10ZnxrHavdhrV9PCQS_AnzrWA5skpeg7JrnxCgeVAF2_18FgevatCbbyGrzcyngrVAF2_10OlgrFgevatRRRAFg3__114qrsnhyg_qryrgrVF6_RRRRF5_RRRAF_8vagreany16ZnxrHavdhrErfhygVG_R6FpnyneRQcBG0_
 .type b__MA6cqsvhz10ZnxrHavdhrV9PCQS_AnzrWA5skpeg7JrnxCgeVAF2_18FgevatCbbyGrzcyngrVAF2_10OlgrFgevatRRRAFg3__114qrsnhyg_qryrgrVF6_RRRRF5_RRRAF_8vagreany16ZnxrHavdhrErfhygVG_R6FpnyneRQcBG0_,%function
 b__MA6cqsvhz10ZnxrHavdhrV9PCQS_AnzrWA5skpeg7JrnxCgeVAF2_18FgevatCbbyGrzcyngrVAF2_10OlgrFgevatRRRAFg3__114qrsnhyg_qryrgrVF6_RRRRF5_RRRAF_8vagreany16ZnxrHavdhrErfhygVG_R6FpnyneRQcBG0_:
 nop
@@ -5133,7 +5133,7 @@
 b__MA26PSSY_VagrenpgvirSbezSvyyre13BaYOhggbaQbjaRC16PCQSFQX_CntrIvrjCA5skpeg10BofreinoyrV13PCQSFQX_NaabgR11BofreirqCgeRwEX13PSK_CGrzcyngrVsR:
 nop
 .text
-.globl b__MA6cqsvhz10ZnxrHavdhrV9PCQS_AnzrWEA5skpeg7JrnxCgeVAF2_18FgevatCbbyGrzcyngrVAF2_10OlgrFgevatRRRAFg3__114qrsnhyg_qryrgrVF6_RRRREN6_XpRRRAF_8vagreany16ZnxrHavdhrErfhygVG_R6FpnyneRQcBG0_
+.weak b__MA6cqsvhz10ZnxrHavdhrV9PCQS_AnzrWEA5skpeg7JrnxCgeVAF2_18FgevatCbbyGrzcyngrVAF2_10OlgrFgevatRRRAFg3__114qrsnhyg_qryrgrVF6_RRRREN6_XpRRRAF_8vagreany16ZnxrHavdhrErfhygVG_R6FpnyneRQcBG0_
 .type b__MA6cqsvhz10ZnxrHavdhrV9PCQS_AnzrWEA5skpeg7JrnxCgeVAF2_18FgevatCbbyGrzcyngrVAF2_10OlgrFgevatRRRAFg3__114qrsnhyg_qryrgrVF6_RRRREN6_XpRRRAF_8vagreany16ZnxrHavdhrErfhygVG_R6FpnyneRQcBG0_,%function
 b__MA6cqsvhz10ZnxrHavdhrV9PCQS_AnzrWEA5skpeg7JrnxCgeVAF2_18FgevatCbbyGrzcyngrVAF2_10OlgrFgevatRRRAFg3__114qrsnhyg_qryrgrVF6_RRRREN6_XpRRRAF_8vagreany16ZnxrHavdhrErfhygVG_R6FpnyneRQcBG0_:
 nop
@@ -5148,7 +5148,7 @@
 b__MA24PCQS_FgernzPbagragCnefre15Unaqyr_FubjGrkgRi:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_10havdhr_cgeV8PSK_SbagAF_14qrsnhyg_qryrgrVF2_RRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_
+.weak b__MAFg3__16irpgbeVAF_10havdhr_cgeV8PSK_SbagAF_14qrsnhyg_qryrgrVF2_RRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_
 .type b__MAFg3__16irpgbeVAF_10havdhr_cgeV8PSK_SbagAF_14qrsnhyg_qryrgrVF2_RRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_,%function
 b__MAFg3__16irpgbeVAF_10havdhr_cgeV8PSK_SbagAF_14qrsnhyg_qryrgrVF2_RRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_:
 nop
@@ -5178,7 +5178,7 @@
 b__MA16PSK_PGGTFHOGnoyr20TrgIregvpnyTylcuFho2RwCwCAF_7GYbbxhcR:
 nop
 .text
-.globl b__MA5skpeg18FgevatQngnGrzcyngrVjR7EryrnfrRi
+.weak b__MA5skpeg18FgevatQngnGrzcyngrVjR7EryrnfrRi
 .type b__MA5skpeg18FgevatQngnGrzcyngrVjR7EryrnfrRi,%function
 b__MA5skpeg18FgevatQngnGrzcyngrVjR7EryrnfrRi:
 nop
@@ -5278,7 +5278,7 @@
 b__MA17PCQS_GehrGlcrSbagP2Ri:
 nop
 .text
-.globl b__MAFg3__114__fcyvg_ohssreVC13CNTRPUNE_VASBEAF_9nyybpngbeVF2_RRR9chfu_onpxRBF2_
+.weak b__MAFg3__114__fcyvg_ohssreVC13CNTRPUNE_VASBEAF_9nyybpngbeVF2_RRR9chfu_onpxRBF2_
 .type b__MAFg3__114__fcyvg_ohssreVC13CNTRPUNE_VASBEAF_9nyybpngbeVF2_RRR9chfu_onpxRBF2_,%function
 b__MAFg3__114__fcyvg_ohssreVC13CNTRPUNE_VASBEAF_9nyybpngbeVF2_RRR9chfu_onpxRBF2_:
 nop
@@ -5298,7 +5298,7 @@
 b__MA21PWOvt2_UhssznaQrpbqreQ1Ri:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_5ghcyrVWwvvvoRRRAF_10havdhr_cgeV12PSK_CnguQngnAF_14qrsnhyg_qryrgrVF5_RRRRRRAF_19__znc_inyhr_pbzcnerVF3_F9_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF9_RRR7qrfgeblRCAF_11__gerr_abqrVF9_CiRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_5ghcyrVWwvvvoRRRAF_10havdhr_cgeV12PSK_CnguQngnAF_14qrsnhyg_qryrgrVF5_RRRRRRAF_19__znc_inyhr_pbzcnerVF3_F9_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF9_RRR7qrfgeblRCAF_11__gerr_abqrVF9_CiRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_5ghcyrVWwvvvoRRRAF_10havdhr_cgeV12PSK_CnguQngnAF_14qrsnhyg_qryrgrVF5_RRRRRRAF_19__znc_inyhr_pbzcnerVF3_F9_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF9_RRR7qrfgeblRCAF_11__gerr_abqrVF9_CiRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_5ghcyrVWwvvvoRRRAF_10havdhr_cgeV12PSK_CnguQngnAF_14qrsnhyg_qryrgrVF5_RRRRRRAF_19__znc_inyhr_pbzcnerVF3_F9_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF9_RRR7qrfgeblRCAF_11__gerr_abqrVF9_CiRR:
 nop
@@ -5373,7 +5373,7 @@
 b__MAX12PKZY_Ryrzrag10TrgRyrzragREXA5skpeg18FgevatIvrjGrzcyngrVpRRF4_z:
 nop
 .text
-.globl b__MAFg3__114__fcyvg_ohssreVCAF_10havdhr_cgeV15PCQS_CntrBowrpgAF_14qrsnhyg_qryrgrVF2_RRRRAF_9nyybpngbeVF6_RRR9chfu_onpxRBF6_
+.weak b__MAFg3__114__fcyvg_ohssreVCAF_10havdhr_cgeV15PCQS_CntrBowrpgAF_14qrsnhyg_qryrgrVF2_RRRRAF_9nyybpngbeVF6_RRR9chfu_onpxRBF6_
 .type b__MAFg3__114__fcyvg_ohssreVCAF_10havdhr_cgeV15PCQS_CntrBowrpgAF_14qrsnhyg_qryrgrVF2_RRRRAF_9nyybpngbeVF6_RRR9chfu_onpxRBF6_,%function
 b__MAFg3__114__fcyvg_ohssreVCAF_10havdhr_cgeV15PCQS_CntrBowrpgAF_14qrsnhyg_qryrgrVF2_RRRRAF_9nyybpngbeVF6_RRR9chfu_onpxRBF6_:
 nop
@@ -5433,7 +5433,7 @@
 b__MA22PCJY_RqvgVzcy_Cebivqre19TrgQrsnhygSbagVaqrkRi:
 nop
 .text
-.globl b__MAX5skpeg18FgevatIvrjGrzcyngrVjR4SvaqRj
+.weak b__MAX5skpeg18FgevatIvrjGrzcyngrVjR4SvaqRj
 .type b__MAX5skpeg18FgevatIvrjGrzcyngrVjR4SvaqRj,%function
 b__MAX5skpeg18FgevatIvrjGrzcyngrVjR4SvaqRj:
 nop
@@ -5463,7 +5463,7 @@
 b__MA16PCQSFQX_CntrIvrj14TrgCQSQbphzragRi:
 nop
 .text
-.globl b__MAFg3__16irpgbeVC15PCQS_QvpgvbanelAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVEXF2_RRiBG_
+.weak b__MAFg3__16irpgbeVC15PCQS_QvpgvbanelAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVEXF2_RRiBG_
 .type b__MAFg3__16irpgbeVC15PCQS_QvpgvbanelAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVEXF2_RRiBG_,%function
 b__MAFg3__16irpgbeVC15PCQS_QvpgvbanelAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVEXF2_RRiBG_:
 nop
@@ -5478,7 +5478,7 @@
 b__MA14PWOvt2_Pbagrkg21qrpbqrEnaqbzSvefgCntrRC18VSK_CnhfrVaqvpngbe:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA14PSK_SbagZnccre8SnprQngnRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVF2_RRiBG_
+.weak b__MAFg3__16irpgbeVA14PSK_SbagZnccre8SnprQngnRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVF2_RRiBG_
 .type b__MAFg3__16irpgbeVA14PSK_SbagZnccre8SnprQngnRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVF2_RRiBG_,%function
 b__MAFg3__16irpgbeVA14PSK_SbagZnccre8SnprQngnRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVF2_RRiBG_:
 nop
@@ -5493,7 +5493,7 @@
 b__MA11PKZY_Cnefre20CnefrRyrzragVagreanyRC12PKZY_Ryrzragov:
 nop
 .text
-.globl b__MAFg3__16irpgbeVC14PCQS_SbezSvryqAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVEXF2_RRiBG_
+.weak b__MAFg3__16irpgbeVC14PCQS_SbezSvryqAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVEXF2_RRiBG_
 .type b__MAFg3__16irpgbeVC14PCQS_SbezSvryqAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVEXF2_RRiBG_,%function
 b__MAFg3__16irpgbeVC14PCQS_SbezSvryqAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVEXF2_RRiBG_:
 nop
@@ -5523,7 +5523,7 @@
 b__MA15PSSY_SbezSvyyre13BaEOhggbaQbjaRC16PCQSFQX_CntrIvrjC13PCQSFQX_NaabgwEX13PSK_CGrzcyngrVsR:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_10havdhr_cgeV15PCQS_GrkgBowrpgAF_14qrsnhyg_qryrgrVF2_RRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_
+.weak b__MAFg3__16irpgbeVAF_10havdhr_cgeV15PCQS_GrkgBowrpgAF_14qrsnhyg_qryrgrVF2_RRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_
 .type b__MAFg3__16irpgbeVAF_10havdhr_cgeV15PCQS_GrkgBowrpgAF_14qrsnhyg_qryrgrVF2_RRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_,%function
 b__MAFg3__16irpgbeVAF_10havdhr_cgeV15PCQS_GrkgBowrpgAF_14qrsnhyg_qryrgrVF2_RRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_:
 nop
@@ -5578,7 +5578,7 @@
 b__MAX8PCJY_Jaq13TrgIFpebyyOneRi:
 nop
 .text
-.globl b__MAFg3__114__fcyvg_ohssreVCwAF_9nyybpngbeVF1_RRR13fuevax_gb_svgRi
+.weak b__MAFg3__114__fcyvg_ohssreVCwAF_9nyybpngbeVF1_RRR13fuevax_gb_svgRi
 .type b__MAFg3__114__fcyvg_ohssreVCwAF_9nyybpngbeVF1_RRR13fuevax_gb_svgRi,%function
 b__MAFg3__114__fcyvg_ohssreVCwAF_9nyybpngbeVF1_RRR13fuevax_gb_svgRi:
 nop
@@ -5708,7 +5708,7 @@
 b__MA14PWOvt2_Pbagrkg12qrpbqrEnaqbzRC18VSK_CnhfrVaqvpngbe:
 nop
 .data
-.globl b__MGIAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
+.weak b__MGIAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
 .type b__MGIAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR,%object
 b__MGIAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR:
 .space __SIZEOF_POINTER__
@@ -5783,7 +5783,7 @@
 b__M16SCQS_TrgShyyAnzrC15PCQS_Qvpgvbanel:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_10havdhr_cgeV19PCJY_SbagZnc_AngvirAF_14qrsnhyg_qryrgrVF2_RRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_
+.weak b__MAFg3__16irpgbeVAF_10havdhr_cgeV19PCJY_SbagZnc_AngvirAF_14qrsnhyg_qryrgrVF2_RRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_
 .type b__MAFg3__16irpgbeVAF_10havdhr_cgeV19PCJY_SbagZnc_AngvirAF_14qrsnhyg_qryrgrVF2_RRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_,%function
 b__MAFg3__16irpgbeVAF_10havdhr_cgeV19PCJY_SbagZnc_AngvirAF_14qrsnhyg_qryrgrVF2_RRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_:
 nop
@@ -5828,7 +5828,7 @@
 b__MA18PPbqrp_SyngrZbqhyr16SyngrBeYMJQrpbqrRoCXuwovvvvwCCuCw:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVA5skpeg10OlgrFgevatRAF_10havdhr_cgeV16PCQS_Glcr3TylcufAF_14qrsnhyg_qryrgrVF5_RRRRRRAF_19__znc_inyhr_pbzcnerVF3_F9_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF9_RRR7qrfgeblRCAF_11__gerr_abqrVF9_CiRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVA5skpeg10OlgrFgevatRAF_10havdhr_cgeV16PCQS_Glcr3TylcufAF_14qrsnhyg_qryrgrVF5_RRRRRRAF_19__znc_inyhr_pbzcnerVF3_F9_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF9_RRR7qrfgeblRCAF_11__gerr_abqrVF9_CiRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVA5skpeg10OlgrFgevatRAF_10havdhr_cgeV16PCQS_Glcr3TylcufAF_14qrsnhyg_qryrgrVF5_RRRRRRAF_19__znc_inyhr_pbzcnerVF3_F9_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF9_RRR7qrfgeblRCAF_11__gerr_abqrVF9_CiRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVA5skpeg10OlgrFgevatRAF_10havdhr_cgeV16PCQS_Glcr3TylcufAF_14qrsnhyg_qryrgrVF5_RRRRRRAF_19__znc_inyhr_pbzcnerVF3_F9_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF9_RRR7qrfgeblRCAF_11__gerr_abqrVF9_CiRR:
 nop
@@ -5878,7 +5878,7 @@
 b__MAX17PCQS_InevnoyrGrkg8Vgrengbe7TrgJbeqRE9PCIG_Jbeq:
 nop
 .text
-.globl b__MAFg3__16irpgbeV11CQSGRKG_BowAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVEXF1_RRiBG_
+.weak b__MAFg3__16irpgbeV11CQSGRKG_BowAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVEXF1_RRiBG_
 .type b__MAFg3__16irpgbeV11CQSGRKG_BowAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVEXF1_RRiBG_,%function
 b__MAFg3__16irpgbeV11CQSGRKG_BowAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVEXF1_RRiBG_:
 nop
@@ -6188,7 +6188,7 @@
 b__MA3ntt12cngu_fgbentrQ1Ri:
 nop
 .text
-.globl b__MAX5skpeg18FgevatIvrjGrzcyngrVjRvkRz
+.weak b__MAX5skpeg18FgevatIvrjGrzcyngrVjRvkRz
 .type b__MAX5skpeg18FgevatIvrjGrzcyngrVjRvkRz,%function
 b__MAX5skpeg18FgevatIvrjGrzcyngrVjRvkRz:
 nop
@@ -6198,7 +6198,7 @@
 b_bcw_jevgr_qbhoyr_YR:
 nop
 .text
-.globl b__MA6cqsvhz10ZnxrHavdhrV9PCQS_AnzrWEA5skpeg7JrnxCgeVAF2_18FgevatCbbyGrzcyngrVAF2_10OlgrFgevatRRRAFg3__114qrsnhyg_qryrgrVF6_RRRREN15_XpRRRAF_8vagreany16ZnxrHavdhrErfhygVG_R6FpnyneRQcBG0_
+.weak b__MA6cqsvhz10ZnxrHavdhrV9PCQS_AnzrWEA5skpeg7JrnxCgeVAF2_18FgevatCbbyGrzcyngrVAF2_10OlgrFgevatRRRAFg3__114qrsnhyg_qryrgrVF6_RRRREN15_XpRRRAF_8vagreany16ZnxrHavdhrErfhygVG_R6FpnyneRQcBG0_
 .type b__MA6cqsvhz10ZnxrHavdhrV9PCQS_AnzrWEA5skpeg7JrnxCgeVAF2_18FgevatCbbyGrzcyngrVAF2_10OlgrFgevatRRRAFg3__114qrsnhyg_qryrgrVF6_RRRREN15_XpRRRAF_8vagreany16ZnxrHavdhrErfhygVG_R6FpnyneRQcBG0_,%function
 b__MA6cqsvhz10ZnxrHavdhrV9PCQS_AnzrWEA5skpeg7JrnxCgeVAF2_18FgevatCbbyGrzcyngrVAF2_10OlgrFgevatRRRAFg3__114qrsnhyg_qryrgrVF6_RRRREN15_XpRRRAF_8vagreany16ZnxrHavdhrErfhygVG_R6FpnyneRQcBG0_:
 nop
@@ -6298,7 +6298,7 @@
 b__MA8PSK_Sbag9YbnqFhofgREXA5skpeg10OlgrFgevatRowvvvo:
 nop
 .text
-.globl b__MAFg3__14zbirVAF_10havdhr_cgeV15PCQS_CntrBowrpgAF_14qrsnhyg_qryrgrVF2_RRRRCF5_EF5_CF6_yYy512RF5_F6_F7_F8_yYy512RRRAF_16__qrdhr_vgrengbeVG5_G6_G7_G8_G9_KG10_RRRAF9_VG_G0_G1_G2_G3_KG4_RRRFY_FS_
+.weak b__MAFg3__14zbirVAF_10havdhr_cgeV15PCQS_CntrBowrpgAF_14qrsnhyg_qryrgrVF2_RRRRCF5_EF5_CF6_yYy512RF5_F6_F7_F8_yYy512RRRAF_16__qrdhr_vgrengbeVG5_G6_G7_G8_G9_KG10_RRRAF9_VG_G0_G1_G2_G3_KG4_RRRFY_FS_
 .type b__MAFg3__14zbirVAF_10havdhr_cgeV15PCQS_CntrBowrpgAF_14qrsnhyg_qryrgrVF2_RRRRCF5_EF5_CF6_yYy512RF5_F6_F7_F8_yYy512RRRAF_16__qrdhr_vgrengbeVG5_G6_G7_G8_G9_KG10_RRRAF9_VG_G0_G1_G2_G3_KG4_RRRFY_FS_,%function
 b__MAFg3__14zbirVAF_10havdhr_cgeV15PCQS_CntrBowrpgAF_14qrsnhyg_qryrgrVF2_RRRRCF5_EF5_CF6_yYy512RF5_F6_F7_F8_yYy512RRRAF_16__qrdhr_vgrengbeVG5_G6_G7_G8_G9_KG10_RRRAF9_VG_G0_G1_G2_G3_KG4_RRRFY_FS_:
 nop
@@ -6323,7 +6323,7 @@
 b__MAX14PCQS_SbezSvryq19TrgNqqvgvbanyNpgvbaRi:
 nop
 .text
-.globl b__MA6cqsvhz10ZnxrHavdhrV11PCQS_FgernzWAFg3__110havdhr_cgeVu13SkSerrQryrgreRREXzAF3_V15PCQS_QvpgvbanelAF2_14qrsnhyg_qryrgrVF8_RRRRRRRAF_8vagreany16ZnxrHavdhrErfhygVG_R6FpnyneRQcBG0_
+.weak b__MA6cqsvhz10ZnxrHavdhrV11PCQS_FgernzWAFg3__110havdhr_cgeVu13SkSerrQryrgreRREXzAF3_V15PCQS_QvpgvbanelAF2_14qrsnhyg_qryrgrVF8_RRRRRRRAF_8vagreany16ZnxrHavdhrErfhygVG_R6FpnyneRQcBG0_
 .type b__MA6cqsvhz10ZnxrHavdhrV11PCQS_FgernzWAFg3__110havdhr_cgeVu13SkSerrQryrgreRREXzAF3_V15PCQS_QvpgvbanelAF2_14qrsnhyg_qryrgrVF8_RRRRRRRAF_8vagreany16ZnxrHavdhrErfhygVG_R6FpnyneRQcBG0_,%function
 b__MA6cqsvhz10ZnxrHavdhrV11PCQS_FgernzWAFg3__110havdhr_cgeVu13SkSerrQryrgreRREXzAF3_V15PCQS_QvpgvbanelAF2_14qrsnhyg_qryrgrVF8_RRRRRRRAF_8vagreany16ZnxrHavdhrErfhygVG_R6FpnyneRQcBG0_:
 nop
@@ -6413,7 +6413,7 @@
 b__MA3ntt10iptra_qnfu6erjvaqRw:
 nop
 .text
-.globl b__MA5skpeg18FgevatIvrjGrzcyngrVpRP1Ri
+.weak b__MA5skpeg18FgevatIvrjGrzcyngrVpRP1Ri
 .type b__MA5skpeg18FgevatIvrjGrzcyngrVpRP1Ri,%function
 b__MA5skpeg18FgevatIvrjGrzcyngrVpRP1Ri:
 nop
@@ -6433,7 +6433,7 @@
 b__MA17PCQSFQX_VagreSbez17OrsberInyhrPunatrRC14PCQS_SbezSvryqEXA5skpeg10JvqrFgevatR:
 nop
 .text
-.globl b__MA6cqsvhz10ZnxrHavdhrV9PCQS_AnzrWEA5skpeg7JrnxCgeVAF2_18FgevatCbbyGrzcyngrVAF2_10OlgrFgevatRRRAFg3__114qrsnhyg_qryrgrVF6_RRRREN13_XpRRRAF_8vagreany16ZnxrHavdhrErfhygVG_R6FpnyneRQcBG0_
+.weak b__MA6cqsvhz10ZnxrHavdhrV9PCQS_AnzrWEA5skpeg7JrnxCgeVAF2_18FgevatCbbyGrzcyngrVAF2_10OlgrFgevatRRRAFg3__114qrsnhyg_qryrgrVF6_RRRREN13_XpRRRAF_8vagreany16ZnxrHavdhrErfhygVG_R6FpnyneRQcBG0_
 .type b__MA6cqsvhz10ZnxrHavdhrV9PCQS_AnzrWEA5skpeg7JrnxCgeVAF2_18FgevatCbbyGrzcyngrVAF2_10OlgrFgevatRRRAFg3__114qrsnhyg_qryrgrVF6_RRRREN13_XpRRRAF_8vagreany16ZnxrHavdhrErfhygVG_R6FpnyneRQcBG0_,%function
 b__MA6cqsvhz10ZnxrHavdhrV9PCQS_AnzrWEA5skpeg7JrnxCgeVAF2_18FgevatCbbyGrzcyngrVAF2_10OlgrFgevatRRRAFg3__114qrsnhyg_qryrgrVF6_RRRREN13_XpRRRAF_8vagreany16ZnxrHavdhrErfhygVG_R6FpnyneRQcBG0_:
 nop
@@ -6463,7 +6463,7 @@
 b__MA15PCQS_ZrfuIregrkP2REXF_:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVCX11PCQS_BowrpgAF_10havdhr_cgeV20PCQS_CntrBowrpgNinvyAF_14qrsnhyg_qryrgrVF6_RRRRRRAF_19__znc_inyhr_pbzcnerVF4_FN_AF_4yrffVF4_RRYo1RRRAF_9nyybpngbeVFN_RRR7qrfgeblRCAF_11__gerr_abqrVFN_CiRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVCX11PCQS_BowrpgAF_10havdhr_cgeV20PCQS_CntrBowrpgNinvyAF_14qrsnhyg_qryrgrVF6_RRRRRRAF_19__znc_inyhr_pbzcnerVF4_FN_AF_4yrffVF4_RRYo1RRRAF_9nyybpngbeVFN_RRR7qrfgeblRCAF_11__gerr_abqrVFN_CiRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVCX11PCQS_BowrpgAF_10havdhr_cgeV20PCQS_CntrBowrpgNinvyAF_14qrsnhyg_qryrgrVF6_RRRRRRAF_19__znc_inyhr_pbzcnerVF4_FN_AF_4yrffVF4_RRYo1RRRAF_9nyybpngbeVFN_RRR7qrfgeblRCAF_11__gerr_abqrVFN_CiRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVCX11PCQS_BowrpgAF_10havdhr_cgeV20PCQS_CntrBowrpgNinvyAF_14qrsnhyg_qryrgrVF6_RRRRRRAF_19__znc_inyhr_pbzcnerVF4_FN_AF_4yrffVF4_RRYo1RRRAF_9nyybpngbeVFN_RRR7qrfgeblRCAF_11__gerr_abqrVFN_CiRR:
 nop
@@ -6478,7 +6478,7 @@
 b__MAX13PCJY_YvfgPgey7VfInyvqRv:
 nop
 .text
-.globl b__MAFg3__16irpgbeV13PSK_SybngErpgAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_
+.weak b__MAFg3__16irpgbeV13PSK_SybngErpgAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_
 .type b__MAFg3__16irpgbeV13PSK_SybngErpgAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_,%function
 b__MAFg3__16irpgbeV13PSK_SybngErpgAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_:
 nop
@@ -6608,7 +6608,7 @@
 b__MA13PCJY_RqvgVzcy12FrgFryrpgvbaRvv:
 nop
 .text
-.globl b__MAFg3__16__gerrVCA5skpeg10BofreinoyrV8PCJY_JaqR11BofreirqCgeRAF_4yrffVF6_RRAF_9nyybpngbeVF6_RRR7qrfgeblRCAF_11__gerr_abqrVF6_CiRR
+.weak b__MAFg3__16__gerrVCA5skpeg10BofreinoyrV8PCJY_JaqR11BofreirqCgeRAF_4yrffVF6_RRAF_9nyybpngbeVF6_RRR7qrfgeblRCAF_11__gerr_abqrVF6_CiRR
 .type b__MAFg3__16__gerrVCA5skpeg10BofreinoyrV8PCJY_JaqR11BofreirqCgeRAF_4yrffVF6_RRAF_9nyybpngbeVF6_RRR7qrfgeblRCAF_11__gerr_abqrVF6_CiRR,%function
 b__MAFg3__16__gerrVCA5skpeg10BofreinoyrV8PCJY_JaqR11BofreirqCgeRAF_4yrffVF6_RRAF_9nyybpngbeVF6_RRR7qrfgeblRCAF_11__gerr_abqrVF6_CiRR:
 nop
@@ -6698,7 +6698,7 @@
 b__MA3ntt10bhgyvar_nn14nyybpngr_oybpxRi:
 nop
 .data
-.globl b__MGVFg12yratgu_reebe
+.weak b__MGVFg12yratgu_reebe
 .type b__MGVFg12yratgu_reebe,%object
 b__MGVFg12yratgu_reebe:
 .space __SIZEOF_POINTER__
@@ -6723,7 +6723,7 @@
 b_bcw_w2x_rapbqr:
 nop
 .text
-.globl b__MAFg3__114__fcyvg_ohssreVCAF_10havdhr_cgeVA17PCQS_BowrpgJnyxre17FhobowrpgVgrengbeRAF_14qrsnhyg_qryrgrVF3_RRRRAF_9nyybpngbeVF7_RRR9chfu_onpxRBF7_
+.weak b__MAFg3__114__fcyvg_ohssreVCAF_10havdhr_cgeVA17PCQS_BowrpgJnyxre17FhobowrpgVgrengbeRAF_14qrsnhyg_qryrgrVF3_RRRRAF_9nyybpngbeVF7_RRR9chfu_onpxRBF7_
 .type b__MAFg3__114__fcyvg_ohssreVCAF_10havdhr_cgeVA17PCQS_BowrpgJnyxre17FhobowrpgVgrengbeRAF_14qrsnhyg_qryrgrVF3_RRRRAF_9nyybpngbeVF7_RRR9chfu_onpxRBF7_,%function
 b__MAFg3__114__fcyvg_ohssreVCAF_10havdhr_cgeVA17PCQS_BowrpgJnyxre17FhobowrpgVgrengbeRAF_14qrsnhyg_qryrgrVF3_RRRRAF_9nyybpngbeVF7_RRR9chfu_onpxRBF7_:
 nop
@@ -6758,7 +6758,7 @@
 b__MGI14PCQS_Glcr1Sbag:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA5skpeg18FgevatQngnGrzcyngrVpR6ErgnvaRi
+.weak b__MA5skpeg18FgevatQngnGrzcyngrVpR6ErgnvaRi
 .type b__MA5skpeg18FgevatQngnGrzcyngrVpR6ErgnvaRi,%function
 b__MA5skpeg18FgevatQngnGrzcyngrVpR6ErgnvaRi:
 nop
@@ -6793,7 +6793,7 @@
 b__M27GrkgEraqrevatZbqrVfPyvcZbqrEX17GrkgEraqrevatZbqr:
 nop
 .text
-.globl b__MAFg3__15qrdhrVAF_10havdhr_cgeVA17PCQS_BowrpgJnyxre17FhobowrpgVgrengbeRAF_14qrsnhyg_qryrgrVF3_RRRRAF_9nyybpngbeVF6_RRR19__nqq_onpx_pncnpvglRi
+.weak b__MAFg3__15qrdhrVAF_10havdhr_cgeVA17PCQS_BowrpgJnyxre17FhobowrpgVgrengbeRAF_14qrsnhyg_qryrgrVF3_RRRRAF_9nyybpngbeVF6_RRR19__nqq_onpx_pncnpvglRi
 .type b__MAFg3__15qrdhrVAF_10havdhr_cgeVA17PCQS_BowrpgJnyxre17FhobowrpgVgrengbeRAF_14qrsnhyg_qryrgrVF3_RRRRAF_9nyybpngbeVF6_RRR19__nqq_onpx_pncnpvglRi,%function
 b__MAFg3__15qrdhrVAF_10havdhr_cgeVA17PCQS_BowrpgJnyxre17FhobowrpgVgrengbeRAF_14qrsnhyg_qryrgrVF3_RRRRAF_9nyybpngbeVF6_RRR19__nqq_onpx_pncnpvglRi:
 nop
@@ -6808,7 +6808,7 @@
 b__MA16PCQS_QbpCntrQngn8TrgVzntrRw:
 nop
 .text
-.globl b__MAFg3__16__gerrVyAF_4yrffVyRRAF_9nyybpngbeVyRRR7qrfgeblRCAF_11__gerr_abqrVyCiRR
+.weak b__MAFg3__16__gerrVyAF_4yrffVyRRAF_9nyybpngbeVyRRR7qrfgeblRCAF_11__gerr_abqrVyCiRR
 .type b__MAFg3__16__gerrVyAF_4yrffVyRRAF_9nyybpngbeVyRRR7qrfgeblRCAF_11__gerr_abqrVyCiRR,%function
 b__MAFg3__16__gerrVyAF_4yrffVyRRAF_9nyybpngbeVyRRR7qrfgeblRCAF_11__gerr_abqrVyCiRR:
 nop
@@ -6828,7 +6828,7 @@
 b__MAX16PCQS_SbezPbageby5TrgZXRi:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVC16PCQS_SbezPbagebyC14PCQSFQX_JvqtrgRRAF_19__znc_inyhr_pbzcnerVF3_F6_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF6_RRR7qrfgeblRCAF_11__gerr_abqrVF6_CiRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVC16PCQS_SbezPbagebyC14PCQSFQX_JvqtrgRRAF_19__znc_inyhr_pbzcnerVF3_F6_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF6_RRR7qrfgeblRCAF_11__gerr_abqrVF6_CiRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVC16PCQS_SbezPbagebyC14PCQSFQX_JvqtrgRRAF_19__znc_inyhr_pbzcnerVF3_F6_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF6_RRR7qrfgeblRCAF_11__gerr_abqrVF6_CiRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVC16PCQS_SbezPbagebyC14PCQSFQX_JvqtrgRRAF_19__znc_inyhr_pbzcnerVF3_F6_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF6_RRR7qrfgeblRCAF_11__gerr_abqrVF6_CiRR:
 nop
@@ -6853,7 +6853,7 @@
 b__MA15PCQS_SbezBowrpgQ0Ri:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVwC13PSCS_FxvnSbagRRAF_19__znc_inyhr_pbzcnerVwF4_AF_4yrffVwRRYo1RRRAF_9nyybpngbeVF4_RRR7qrfgeblRCAF_11__gerr_abqrVF4_CiRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVwC13PSCS_FxvnSbagRRAF_19__znc_inyhr_pbzcnerVwF4_AF_4yrffVwRRYo1RRRAF_9nyybpngbeVF4_RRR7qrfgeblRCAF_11__gerr_abqrVF4_CiRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVwC13PSCS_FxvnSbagRRAF_19__znc_inyhr_pbzcnerVwF4_AF_4yrffVwRRYo1RRRAF_9nyybpngbeVF4_RRR7qrfgeblRCAF_11__gerr_abqrVF4_CiRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVwC13PSCS_FxvnSbagRRAF_19__znc_inyhr_pbzcnerVwF4_AF_4yrffVwRRYo1RRRAF_9nyybpngbeVF4_RRR7qrfgeblRCAF_11__gerr_abqrVF4_CiRR:
 nop
@@ -6968,7 +6968,7 @@
 b__MA3ntt10bhgyvar_nnQ1Ri:
 nop
 .text
-.globl b__MAX5skpeg18FgevatIvrjGrzcyngrVpR3raqRi
+.weak b__MAX5skpeg18FgevatIvrjGrzcyngrVpR3raqRi
 .type b__MAX5skpeg18FgevatIvrjGrzcyngrVpR3raqRi,%function
 b__MAX5skpeg18FgevatIvrjGrzcyngrVpR3raqRi:
 nop
@@ -7048,7 +7048,7 @@
 b__MAX14PCQS_Ersrerapr9TrgAhzoreRi:
 nop
 .text
-.globl b__MAFg3__16__gerrVCX11PCQS_BowrpgAF_4yrffVF3_RRAF_9nyybpngbeVF3_RRR7qrfgeblRCAF_11__gerr_abqrVF3_CiRR
+.weak b__MAFg3__16__gerrVCX11PCQS_BowrpgAF_4yrffVF3_RRAF_9nyybpngbeVF3_RRR7qrfgeblRCAF_11__gerr_abqrVF3_CiRR
 .type b__MAFg3__16__gerrVCX11PCQS_BowrpgAF_4yrffVF3_RRAF_9nyybpngbeVF3_RRR7qrfgeblRCAF_11__gerr_abqrVF3_CiRR,%function
 b__MAFg3__16__gerrVCX11PCQS_BowrpgAF_4yrffVF3_RRAF_9nyybpngbeVF3_RRR7qrfgeblRCAF_11__gerr_abqrVF3_CiRR:
 nop
@@ -7378,7 +7378,7 @@
 b__MA3ntt10iptra_qnfu6iregrkRCsF1_:
 nop
 .text
-.globl b__MAX5skpeg18FgevatIvrjGrzcyngrVpRarREXF1_
+.weak b__MAX5skpeg18FgevatIvrjGrzcyngrVpRarREXF1_
 .type b__MAX5skpeg18FgevatIvrjGrzcyngrVpRarREXF1_,%function
 b__MAX5skpeg18FgevatIvrjGrzcyngrVpRarREXF1_:
 nop
@@ -7418,12 +7418,12 @@
 b__MA22CJY_FPEBYY_CEVINGRQNGN6FrgCbfRs:
 nop
 .text
-.globl b__MAX5skpeg18FgevatIvrjGrzcyngrVpR12VfInyvqVaqrkRz
+.weak b__MAX5skpeg18FgevatIvrjGrzcyngrVpR12VfInyvqVaqrkRz
 .type b__MAX5skpeg18FgevatIvrjGrzcyngrVpR12VfInyvqVaqrkRz,%function
 b__MAX5skpeg18FgevatIvrjGrzcyngrVpR12VfInyvqVaqrkRz:
 nop
 .text
-.globl b__MA5skpeg18FgevatIvrjGrzcyngrVjRP2Ri
+.weak b__MA5skpeg18FgevatIvrjGrzcyngrVjRP2Ri
 .type b__MA5skpeg18FgevatIvrjGrzcyngrVjRP2Ri,%function
 b__MA5skpeg18FgevatIvrjGrzcyngrVjRP2Ri:
 nop
@@ -7453,7 +7453,7 @@
 b__MA11PCQS_FgernzQ0Ri:
 nop
 .text
-.globl b__MAFg3__16irpgbeV13WOvt2NevguPgkAF_9nyybpngbeVF1_RRR8__nccraqRz
+.weak b__MAFg3__16irpgbeV13WOvt2NevguPgkAF_9nyybpngbeVF1_RRR8__nccraqRz
 .type b__MAFg3__16irpgbeV13WOvt2NevguPgkAF_9nyybpngbeVF1_RRR8__nccraqRz,%function
 b__MAFg3__16irpgbeV13WOvt2NevguPgkAF_9nyybpngbeVF1_RRR8__nccraqRz:
 nop
@@ -7503,7 +7503,7 @@
 b__MA17PCQS_GrkgEraqrere12QenjGrkgCnguRC16PSK_EraqreQrivprEXAFg3__16irpgbeVwAF2_9nyybpngbeVwRRRREXAF3_VsAF4_VsRRRRC9PCQS_SbagsCX10PSK_ZngevkFU_CX18PSK_TencuFgngrQngnwwC12PSK_CnguQngnv:
 nop
 .text
-.globl b__MAFg3__16__gerrVC15PCQS_QvpgvbanelAF_4yrffVF2_RRAF_9nyybpngbeVF2_RRR7qrfgeblRCAF_11__gerr_abqrVF2_CiRR
+.weak b__MAFg3__16__gerrVC15PCQS_QvpgvbanelAF_4yrffVF2_RRAF_9nyybpngbeVF2_RRR7qrfgeblRCAF_11__gerr_abqrVF2_CiRR
 .type b__MAFg3__16__gerrVC15PCQS_QvpgvbanelAF_4yrffVF2_RRAF_9nyybpngbeVF2_RRR7qrfgeblRCAF_11__gerr_abqrVF2_CiRR,%function
 b__MAFg3__16__gerrVC15PCQS_QvpgvbanelAF_4yrffVF2_RRAF_9nyybpngbeVF2_RRR7qrfgeblRCAF_11__gerr_abqrVF2_CiRR:
 nop
@@ -7563,7 +7563,7 @@
 b__MA17PCQS_TrarenyFgngr13FrgFzbbguarffRs:
 nop
 .text
-.globl b__MAFg3__16irpgbeVuAF_9nyybpngbeVuRRR8__nccraqRzEXu
+.weak b__MAFg3__16irpgbeVuAF_9nyybpngbeVuRRR8__nccraqRzEXu
 .type b__MAFg3__16irpgbeVuAF_9nyybpngbeVuRRR8__nccraqRzEXu,%function
 b__MAFg3__16irpgbeVuAF_9nyybpngbeVuRRR8__nccraqRzEXu:
 nop
@@ -7643,7 +7643,7 @@
 b__MA9PCQS_Cngu6NccraqREXF_CX10PSK_Zngevk:
 nop
 .text
-.globl b__MA6cqsvhz10ZnxrHavdhrV11PCQS_FgevatWEA5skpeg7JrnxCgeVAF2_18FgevatCbbyGrzcyngrVAF2_10OlgrFgevatRRRAFg3__114qrsnhyg_qryrgrVF6_RRRREXAF2_10JvqrFgevatRRRRAF_8vagreany16ZnxrHavdhrErfhygVG_R6FpnyneRQcBG0_
+.weak b__MA6cqsvhz10ZnxrHavdhrV11PCQS_FgevatWEA5skpeg7JrnxCgeVAF2_18FgevatCbbyGrzcyngrVAF2_10OlgrFgevatRRRAFg3__114qrsnhyg_qryrgrVF6_RRRREXAF2_10JvqrFgevatRRRRAF_8vagreany16ZnxrHavdhrErfhygVG_R6FpnyneRQcBG0_
 .type b__MA6cqsvhz10ZnxrHavdhrV11PCQS_FgevatWEA5skpeg7JrnxCgeVAF2_18FgevatCbbyGrzcyngrVAF2_10OlgrFgevatRRRAFg3__114qrsnhyg_qryrgrVF6_RRRREXAF2_10JvqrFgevatRRRRAF_8vagreany16ZnxrHavdhrErfhygVG_R6FpnyneRQcBG0_,%function
 b__MA6cqsvhz10ZnxrHavdhrV11PCQS_FgevatWEA5skpeg7JrnxCgeVAF2_18FgevatCbbyGrzcyngrVAF2_10OlgrFgevatRRRAFg3__114qrsnhyg_qryrgrVF6_RRRREXAF2_10JvqrFgevatRRRRAF_8vagreany16ZnxrHavdhrErfhygVG_R6FpnyneRQcBG0_:
 nop
@@ -7713,7 +7713,7 @@
 b__pzfErnqHVag16Ahzore:
 nop
 .text
-.globl b__MA6cqsvhz10ZnxrHavdhrV9PCQS_AnzrWEA5skpeg7JrnxCgeVAF2_18FgevatCbbyGrzcyngrVAF2_10OlgrFgevatRRRAFg3__114qrsnhyg_qryrgrVF6_RRRRF5_RRRAF_8vagreany16ZnxrHavdhrErfhygVG_R6FpnyneRQcBG0_
+.weak b__MA6cqsvhz10ZnxrHavdhrV9PCQS_AnzrWEA5skpeg7JrnxCgeVAF2_18FgevatCbbyGrzcyngrVAF2_10OlgrFgevatRRRAFg3__114qrsnhyg_qryrgrVF6_RRRRF5_RRRAF_8vagreany16ZnxrHavdhrErfhygVG_R6FpnyneRQcBG0_
 .type b__MA6cqsvhz10ZnxrHavdhrV9PCQS_AnzrWEA5skpeg7JrnxCgeVAF2_18FgevatCbbyGrzcyngrVAF2_10OlgrFgevatRRRAFg3__114qrsnhyg_qryrgrVF6_RRRRF5_RRRAF_8vagreany16ZnxrHavdhrErfhygVG_R6FpnyneRQcBG0_,%function
 b__MA6cqsvhz10ZnxrHavdhrV9PCQS_AnzrWEA5skpeg7JrnxCgeVAF2_18FgevatCbbyGrzcyngrVAF2_10OlgrFgevatRRRAFg3__114qrsnhyg_qryrgrVF6_RRRRF5_RRRAF_8vagreany16ZnxrHavdhrErfhygVG_R6FpnyneRQcBG0_:
 nop
@@ -7748,7 +7748,7 @@
 b_pzfPunatrOhssrefSbezng:
 nop
 .data
-.globl b__MGFFg11ybtvp_reebe
+.weak b__MGFFg11ybtvp_reebe
 .type b__MGFFg11ybtvp_reebe,%object
 b__MGFFg11ybtvp_reebe:
 .space __SIZEOF_POINTER__
@@ -7808,7 +7808,7 @@
 b__MA15PCQS_PZncCnefre19PunefrgSebzBeqrevatREXA5skpeg18FgevatIvrjGrzcyngrVpRR:
 nop
 .text
-.globl b__MAFg3__16irpgbeVC14PCQS_Glcr3SbagAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVEXF2_RRiBG_
+.weak b__MAFg3__16irpgbeVC14PCQS_Glcr3SbagAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVEXF2_RRiBG_
 .type b__MAFg3__16irpgbeVC14PCQS_Glcr3SbagAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVEXF2_RRiBG_,%function
 b__MAFg3__16irpgbeVC14PCQS_Glcr3SbagAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVEXF2_RRiBG_:
 nop
@@ -7893,7 +7893,7 @@
 b_SCQSCnguFrtzrag_TrgPybfr:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVC13PCQS_QbphzragAF_10havdhr_cgeV18PSK_FgbpxSbagNeenlAF_14qrsnhyg_qryrgrVF5_RRRRRRAF_19__znc_inyhr_pbzcnerVF3_F9_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF9_RRR7qrfgeblRCAF_11__gerr_abqrVF9_CiRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVC13PCQS_QbphzragAF_10havdhr_cgeV18PSK_FgbpxSbagNeenlAF_14qrsnhyg_qryrgrVF5_RRRRRRAF_19__znc_inyhr_pbzcnerVF3_F9_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF9_RRR7qrfgeblRCAF_11__gerr_abqrVF9_CiRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVC13PCQS_QbphzragAF_10havdhr_cgeV18PSK_FgbpxSbagNeenlAF_14qrsnhyg_qryrgrVF5_RRRRRRAF_19__znc_inyhr_pbzcnerVF3_F9_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF9_RRR7qrfgeblRCAF_11__gerr_abqrVF9_CiRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVC13PCQS_QbphzragAF_10havdhr_cgeV18PSK_FgbpxSbagNeenlAF_14qrsnhyg_qryrgrVF5_RRRRRRAF_19__znc_inyhr_pbzcnerVF3_F9_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF9_RRR7qrfgeblRCAF_11__gerr_abqrVF9_CiRR:
 nop
@@ -8023,7 +8023,7 @@
 b__MA11PCQS_Fgevat8NfFgevatRi:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVA5skpeg10OlgrFgevatRAF_3zncVwAF_10havdhr_cgeV15PSK_TylcuOvgzncAF_14qrsnhyg_qryrgrVF6_RRRRAF_4yrffVwRRAF_9nyybpngbeVAF_4cnveVXwF9_RRRRRRRRAF_19__znc_inyhr_pbzcnerVF3_FV_AFN_VF3_RRYo1RRRAFP_VFV_RRR25__rzcynpr_havdhr_xrl_netfVF3_WEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXF3_RRRAFF_VWRRRRRRAFQ_VAF_15__gerr_vgrengbeVFV_CAF_11__gerr_abqrVFV_CiRRyRRoRREXG_QcBG0_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVA5skpeg10OlgrFgevatRAF_3zncVwAF_10havdhr_cgeV15PSK_TylcuOvgzncAF_14qrsnhyg_qryrgrVF6_RRRRAF_4yrffVwRRAF_9nyybpngbeVAF_4cnveVXwF9_RRRRRRRRAF_19__znc_inyhr_pbzcnerVF3_FV_AFN_VF3_RRYo1RRRAFP_VFV_RRR25__rzcynpr_havdhr_xrl_netfVF3_WEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXF3_RRRAFF_VWRRRRRRAFQ_VAF_15__gerr_vgrengbeVFV_CAF_11__gerr_abqrVFV_CiRRyRRoRREXG_QcBG0_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVA5skpeg10OlgrFgevatRAF_3zncVwAF_10havdhr_cgeV15PSK_TylcuOvgzncAF_14qrsnhyg_qryrgrVF6_RRRRAF_4yrffVwRRAF_9nyybpngbeVAF_4cnveVXwF9_RRRRRRRRAF_19__znc_inyhr_pbzcnerVF3_FV_AFN_VF3_RRYo1RRRAFP_VFV_RRR25__rzcynpr_havdhr_xrl_netfVF3_WEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXF3_RRRAFF_VWRRRRRRAFQ_VAF_15__gerr_vgrengbeVFV_CAF_11__gerr_abqrVFV_CiRRyRRoRREXG_QcBG0_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVA5skpeg10OlgrFgevatRAF_3zncVwAF_10havdhr_cgeV15PSK_TylcuOvgzncAF_14qrsnhyg_qryrgrVF6_RRRRAF_4yrffVwRRAF_9nyybpngbeVAF_4cnveVXwF9_RRRRRRRRAF_19__znc_inyhr_pbzcnerVF3_FV_AFN_VF3_RRYo1RRRAFP_VFV_RRR25__rzcynpr_havdhr_xrl_netfVF3_WEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXF3_RRRAFF_VWRRRRRRAFQ_VAF_15__gerr_vgrengbeVFV_CAF_11__gerr_abqrVFV_CiRRyRRoRREXG_QcBG0_:
 nop
@@ -8083,7 +8083,7 @@
 b_pzfWbvaGbarPheir:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVA5skpeg10OlgrFgevatRAF2_9ErgnvaCgeV9PCQS_PZncRRRRAF_19__znc_inyhr_pbzcnerVF3_F7_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF7_RRR7qrfgeblRCAF_11__gerr_abqrVF7_CiRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVA5skpeg10OlgrFgevatRAF2_9ErgnvaCgeV9PCQS_PZncRRRRAF_19__znc_inyhr_pbzcnerVF3_F7_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF7_RRR7qrfgeblRCAF_11__gerr_abqrVF7_CiRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVA5skpeg10OlgrFgevatRAF2_9ErgnvaCgeV9PCQS_PZncRRRRAF_19__znc_inyhr_pbzcnerVF3_F7_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF7_RRR7qrfgeblRCAF_11__gerr_abqrVF7_CiRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVA5skpeg10OlgrFgevatRAF2_9ErgnvaCgeV9PCQS_PZncRRRRAF_19__znc_inyhr_pbzcnerVF3_F7_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF7_RRR7qrfgeblRCAF_11__gerr_abqrVF7_CiRR:
 nop
@@ -8108,7 +8108,7 @@
 b__MA19PSK_NaqebvqSbagVasb14TrgSbagPunefrgRCiCv:
 nop
 .text
-.globl b__MAFg3__15qrdhrVAF_10havdhr_cgeV17VSK_Rqvg_HaqbVgrzAF_14qrsnhyg_qryrgrVF2_RRRRAF_9nyybpngbeVF5_RRR19__nqq_onpx_pncnpvglRi
+.weak b__MAFg3__15qrdhrVAF_10havdhr_cgeV17VSK_Rqvg_HaqbVgrzAF_14qrsnhyg_qryrgrVF2_RRRRAF_9nyybpngbeVF5_RRR19__nqq_onpx_pncnpvglRi
 .type b__MAFg3__15qrdhrVAF_10havdhr_cgeV17VSK_Rqvg_HaqbVgrzAF_14qrsnhyg_qryrgrVF2_RRRRAF_9nyybpngbeVF5_RRR19__nqq_onpx_pncnpvglRi,%function
 b__MAFg3__15qrdhrVAF_10havdhr_cgeV17VSK_Rqvg_HaqbVgrzAF_14qrsnhyg_qryrgrVF2_RRRRAF_9nyybpngbeVF5_RRR19__nqq_onpx_pncnpvglRi:
 nop
@@ -8118,7 +8118,7 @@
 b_SCQS_EraqreCntr_Pbagvahr:
 nop
 .text
-.globl b__MAFg3__114__fcyvg_ohssreVwEAF_9nyybpngbeVwRRR9chfu_onpxRBw
+.weak b__MAFg3__114__fcyvg_ohssreVwEAF_9nyybpngbeVwRRR9chfu_onpxRBw
 .type b__MAFg3__114__fcyvg_ohssreVwEAF_9nyybpngbeVwRRR9chfu_onpxRBw,%function
 b__MAFg3__114__fcyvg_ohssreVwEAF_9nyybpngbeVwRRR9chfu_onpxRBw:
 nop
@@ -8163,7 +8163,7 @@
 b__MAX15PSK_SvygrerqQVO18QbjaFnzcyrFpnayvarRvCuvvovv:
 nop
 .text
-.globl b__MAX5skpeg18FgevatIvrjGrzcyngrVjR5SvefgRi
+.weak b__MAX5skpeg18FgevatIvrjGrzcyngrVjR5SvefgRi
 .type b__MAX5skpeg18FgevatIvrjGrzcyngrVjR5SvefgRi,%function
 b__MAX5skpeg18FgevatIvrjGrzcyngrVjR5SvefgRi:
 nop
@@ -8528,7 +8528,7 @@
 b_bcw_ovb_syhfu:
 nop
 .text
-.globl b__MAFg3__113zbir_onpxjneqVAF_10havdhr_cgeV15PCQS_CntrBowrpgAF_14qrsnhyg_qryrgrVF2_RRRRCF5_EF5_CF6_yYy512RF5_F6_F7_F8_yYy512RRRAF_16__qrdhr_vgrengbeVG5_G6_G7_G8_G9_KG10_RRRAF9_VG_G0_G1_G2_G3_KG4_RRRFY_FS_
+.weak b__MAFg3__113zbir_onpxjneqVAF_10havdhr_cgeV15PCQS_CntrBowrpgAF_14qrsnhyg_qryrgrVF2_RRRRCF5_EF5_CF6_yYy512RF5_F6_F7_F8_yYy512RRRAF_16__qrdhr_vgrengbeVG5_G6_G7_G8_G9_KG10_RRRAF9_VG_G0_G1_G2_G3_KG4_RRRFY_FS_
 .type b__MAFg3__113zbir_onpxjneqVAF_10havdhr_cgeV15PCQS_CntrBowrpgAF_14qrsnhyg_qryrgrVF2_RRRRCF5_EF5_CF6_yYy512RF5_F6_F7_F8_yYy512RRRAF_16__qrdhr_vgrengbeVG5_G6_G7_G8_G9_KG10_RRRAF9_VG_G0_G1_G2_G3_KG4_RRRFY_FS_,%function
 b__MAFg3__113zbir_onpxjneqVAF_10havdhr_cgeV15PCQS_CntrBowrpgAF_14qrsnhyg_qryrgrVF2_RRRRCF5_EF5_CF6_yYy512RF5_F6_F7_F8_yYy512RRRAF_16__qrdhr_vgrengbeVG5_G6_G7_G8_G9_KG10_RRRAF9_VG_G0_G1_G2_G3_KG4_RRRFY_FS_:
 nop
@@ -8563,7 +8563,7 @@
 b__MA14PCQS_VagreSbez9ErfrgSbezRo:
 nop
 .text
-.globl b__MAX5skpeg18FgevatIvrjGrzcyngrVjRrdREXF1_
+.weak b__MAX5skpeg18FgevatIvrjGrzcyngrVjRrdREXF1_
 .type b__MAX5skpeg18FgevatIvrjGrzcyngrVjRrdREXF1_,%function
 b__MAX5skpeg18FgevatIvrjGrzcyngrVjRrdREXF1_:
 nop
@@ -8598,12 +8598,12 @@
 b_bcw_gyf_frg:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVC13PCQSFQX_NaabgAF_10havdhr_cgeV15PSSY_SbezSvyyreAF_14qrsnhyg_qryrgrVF5_RRRRRRAF_19__znc_inyhr_pbzcnerVF3_F9_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF9_RRR7qrfgeblRCAF_11__gerr_abqrVF9_CiRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVC13PCQSFQX_NaabgAF_10havdhr_cgeV15PSSY_SbezSvyyreAF_14qrsnhyg_qryrgrVF5_RRRRRRAF_19__znc_inyhr_pbzcnerVF3_F9_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF9_RRR7qrfgeblRCAF_11__gerr_abqrVF9_CiRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVC13PCQSFQX_NaabgAF_10havdhr_cgeV15PSSY_SbezSvyyreAF_14qrsnhyg_qryrgrVF5_RRRRRRAF_19__znc_inyhr_pbzcnerVF3_F9_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF9_RRR7qrfgeblRCAF_11__gerr_abqrVF9_CiRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVC13PCQSFQX_NaabgAF_10havdhr_cgeV15PSSY_SbezSvyyreAF_14qrsnhyg_qryrgrVF5_RRRRRRAF_19__znc_inyhr_pbzcnerVF3_F9_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF9_RRR7qrfgeblRCAF_11__gerr_abqrVF9_CiRR:
 nop
 .text
-.globl b__MAFg3__16irpgbeV20PCQS_PbagragZnexVgrzAF_9nyybpngbeVF1_RRRP2REXF4_
+.weak b__MAFg3__16irpgbeV20PCQS_PbagragZnexVgrzAF_9nyybpngbeVF1_RRRP2REXF4_
 .type b__MAFg3__16irpgbeV20PCQS_PbagragZnexVgrzAF_9nyybpngbeVF1_RRRP2REXF4_,%function
 b__MAFg3__16irpgbeV20PCQS_PbagragZnexVgrzAF_9nyybpngbeVF1_RRRP2REXF4_:
 nop
@@ -8668,7 +8668,7 @@
 b__MA13PSCS_FxvnSbag13TrgSnzvylAnzrRi:
 nop
 .text
-.globl b__MAX5skpeg18FgevatIvrjGrzcyngrVpR13VfInyvqYratguRz
+.weak b__MAX5skpeg18FgevatIvrjGrzcyngrVpR13VfInyvqYratguRz
 .type b__MAX5skpeg18FgevatIvrjGrzcyngrVpR13VfInyvqYratguRz,%function
 b__MAX5skpeg18FgevatIvrjGrzcyngrVpR13VfInyvqYratguRz:
 nop
@@ -8708,7 +8708,7 @@
 b__MA13PCQS_PyvcCngu11NccraqGrkgfRCAFg3__16irpgbeVAF0_10havdhr_cgeV15PCQS_GrkgBowrpgAF0_14qrsnhyg_qryrgrVF3_RRRRAF0_9nyybpngbeVF6_RRRR:
 nop
 .text
-.globl b__MAFg3__114__fcyvg_ohssreVCAF_10havdhr_cgeVA17PCQS_BowrpgJnyxre17FhobowrpgVgrengbeRAF_14qrsnhyg_qryrgrVF3_RRRREAF_9nyybpngbeVF7_RRR10chfu_sebagREXF7_
+.weak b__MAFg3__114__fcyvg_ohssreVCAF_10havdhr_cgeVA17PCQS_BowrpgJnyxre17FhobowrpgVgrengbeRAF_14qrsnhyg_qryrgrVF3_RRRREAF_9nyybpngbeVF7_RRR10chfu_sebagREXF7_
 .type b__MAFg3__114__fcyvg_ohssreVCAF_10havdhr_cgeVA17PCQS_BowrpgJnyxre17FhobowrpgVgrengbeRAF_14qrsnhyg_qryrgrVF3_RRRREAF_9nyybpngbeVF7_RRR10chfu_sebagREXF7_,%function
 b__MAFg3__114__fcyvg_ohssreVCAF_10havdhr_cgeVA17PCQS_BowrpgJnyxre17FhobowrpgVgrengbeRAF_14qrsnhyg_qryrgrVF3_RRRREAF_9nyybpngbeVF7_RRR10chfu_sebagREXF7_:
 nop
@@ -8788,7 +8788,7 @@
 b__MA13PSK_QVOFbhepr14TrgBireyncErpgREvF0_F0_F0_vvF0_F0_CX11PSK_PyvcEta:
 nop
 .text
-.globl b__MAFg3__16irpgbeVsAF_9nyybpngbeVsRRR8__nccraqRz
+.weak b__MAFg3__16irpgbeVsAF_9nyybpngbeVsRRR8__nccraqRz
 .type b__MAFg3__16irpgbeVsAF_9nyybpngbeVsRRR8__nccraqRz,%function
 b__MAFg3__16irpgbeVsAF_9nyybpngbeVsRRR8__nccraqRz:
 nop
@@ -8923,7 +8923,7 @@
 b__M18OvtBeqre64OvgfZbq3Cu:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVA5skpeg10OlgrFgevatRAF_10havdhr_cgeV11PGGSbagQrfpAF_14qrsnhyg_qryrgrVF5_RRRRRRAF_19__znc_inyhr_pbzcnerVF3_F9_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF9_RRR25__rzcynpr_havdhr_xrl_netfVF3_WEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWBF3_RRRAFY_VWRRRRRRAF_4cnveVAF_15__gerr_vgrengbeVF9_CAF_11__gerr_abqrVF9_CiRRyRRoRREXG_QcBG0_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVA5skpeg10OlgrFgevatRAF_10havdhr_cgeV11PGGSbagQrfpAF_14qrsnhyg_qryrgrVF5_RRRRRRAF_19__znc_inyhr_pbzcnerVF3_F9_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF9_RRR25__rzcynpr_havdhr_xrl_netfVF3_WEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWBF3_RRRAFY_VWRRRRRRAF_4cnveVAF_15__gerr_vgrengbeVF9_CAF_11__gerr_abqrVF9_CiRRyRRoRREXG_QcBG0_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVA5skpeg10OlgrFgevatRAF_10havdhr_cgeV11PGGSbagQrfpAF_14qrsnhyg_qryrgrVF5_RRRRRRAF_19__znc_inyhr_pbzcnerVF3_F9_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF9_RRR25__rzcynpr_havdhr_xrl_netfVF3_WEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWBF3_RRRAFY_VWRRRRRRAF_4cnveVAF_15__gerr_vgrengbeVF9_CAF_11__gerr_abqrVF9_CiRRyRRoRREXG_QcBG0_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVA5skpeg10OlgrFgevatRAF_10havdhr_cgeV11PGGSbagQrfpAF_14qrsnhyg_qryrgrVF5_RRRRRRAF_19__znc_inyhr_pbzcnerVF3_F9_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF9_RRR25__rzcynpr_havdhr_xrl_netfVF3_WEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWBF3_RRRAFY_VWRRRRRRAF_4cnveVAF_15__gerr_vgrengbeVF9_CAF_11__gerr_abqrVF9_CiRRyRRoRREXG_QcBG0_:
 nop
@@ -8958,7 +8958,7 @@
 b__MAX14PCQS_QVOFbhepr9GenafZnfxRi:
 nop
 .text
-.globl b__MAFg3__16irpgbeV12SK_CNGUCBVAGAF_9nyybpngbeVF1_RRR6vafregVAF_11__jenc_vgreVCXF1_RRRRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF1_AF_15vgrengbe_genvgfVFO_R9ersreraprRRR5inyhrRAF6_VCF1_RRR4glcrRF9_FO_FO_
+.weak b__MAFg3__16irpgbeV12SK_CNGUCBVAGAF_9nyybpngbeVF1_RRR6vafregVAF_11__jenc_vgreVCXF1_RRRRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF1_AF_15vgrengbe_genvgfVFO_R9ersreraprRRR5inyhrRAF6_VCF1_RRR4glcrRF9_FO_FO_
 .type b__MAFg3__16irpgbeV12SK_CNGUCBVAGAF_9nyybpngbeVF1_RRR6vafregVAF_11__jenc_vgreVCXF1_RRRRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF1_AF_15vgrengbe_genvgfVFO_R9ersreraprRRR5inyhrRAF6_VCF1_RRR4glcrRF9_FO_FO_,%function
 b__MAFg3__16irpgbeV12SK_CNGUCBVAGAF_9nyybpngbeVF1_RRR6vafregVAF_11__jenc_vgreVCXF1_RRRRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF1_AF_15vgrengbe_genvgfVFO_R9ersreraprRRR5inyhrRAF6_VCF1_RRR4glcrRF9_FO_FO_:
 nop
@@ -9033,7 +9033,7 @@
 b__pzfNqwhfgRaqvnarff16:
 nop
 .text
-.globl b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
+.weak b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
 .type b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_,%function
 b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_:
 nop
@@ -9203,7 +9203,7 @@
 b__MA15PSSY_SbezSvyyreQ2Ri:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVCX15PCQS_QvpgvbanelC18PCQS_PbhagrqBowrpgV9PCQS_SbagRRRAF_19__znc_inyhr_pbzcnerVF4_F9_AF_4yrffVF4_RRYo1RRRAF_9nyybpngbeVF9_RRR7qrfgeblRCAF_11__gerr_abqrVF9_CiRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVCX15PCQS_QvpgvbanelC18PCQS_PbhagrqBowrpgV9PCQS_SbagRRRAF_19__znc_inyhr_pbzcnerVF4_F9_AF_4yrffVF4_RRYo1RRRAF_9nyybpngbeVF9_RRR7qrfgeblRCAF_11__gerr_abqrVF9_CiRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVCX15PCQS_QvpgvbanelC18PCQS_PbhagrqBowrpgV9PCQS_SbagRRRAF_19__znc_inyhr_pbzcnerVF4_F9_AF_4yrffVF4_RRYo1RRRAF_9nyybpngbeVF9_RRR7qrfgeblRCAF_11__gerr_abqrVF9_CiRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVCX15PCQS_QvpgvbanelC18PCQS_PbhagrqBowrpgV9PCQS_SbagRRRAF_19__znc_inyhr_pbzcnerVF4_F9_AF_4yrffVF4_RRYo1RRRAF_9nyybpngbeVF9_RRR7qrfgeblRCAF_11__gerr_abqrVF9_CiRR:
 nop
@@ -9238,7 +9238,7 @@
 b__MA24PCQS_FgernzPbagragCnefre12PbagragCnenzP2Ri:
 nop
 .text
-.globl b__MAFg3__16irpgbeVuAF_9nyybpngbeVuRRR6vafregVCXuRRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVuAF_15vgrengbe_genvgfVF8_R9ersreraprRRR5inyhrRAF_11__jenc_vgreVCuRRR4glcrRAFP_VF6_RRF8_F8_
+.weak b__MAFg3__16irpgbeVuAF_9nyybpngbeVuRRR6vafregVCXuRRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVuAF_15vgrengbe_genvgfVF8_R9ersreraprRRR5inyhrRAF_11__jenc_vgreVCuRRR4glcrRAFP_VF6_RRF8_F8_
 .type b__MAFg3__16irpgbeVuAF_9nyybpngbeVuRRR6vafregVCXuRRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVuAF_15vgrengbe_genvgfVF8_R9ersreraprRRR5inyhrRAF_11__jenc_vgreVCuRRR4glcrRAFP_VF6_RRF8_F8_,%function
 b__MAFg3__16irpgbeVuAF_9nyybpngbeVuRRR6vafregVCXuRRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVuAF_15vgrengbe_genvgfVF8_R9ersreraprRRR5inyhrRAF_11__jenc_vgreVCuRRR4glcrRAFP_VF6_RRF8_F8_:
 nop
@@ -9283,7 +9283,7 @@
 b__MA16PSK_PGGTFHOGnoyr13GFpevcgErpbeqQ2Ri:
 nop
 .text
-.globl b__MAX5skpeg18FgevatIvrjGrzcyngrVjR3raqRi
+.weak b__MAX5skpeg18FgevatIvrjGrzcyngrVjR3raqRi
 .type b__MAX5skpeg18FgevatIvrjGrzcyngrVjR3raqRi,%function
 b__MAX5skpeg18FgevatIvrjGrzcyngrVjR3raqRi:
 nop
@@ -9463,7 +9463,7 @@
 b__MA21PCQSFQX_NpgvbaUnaqyre19QbNpgvba_VzcbegQngnREX11PCQS_NpgvbaC27PCQSFQX_SbezSvyyRaivebazrag:
 nop
 .text
-.globl b__MA6cqsvhz10ZnxrHavdhrV11PCQS_FgernzWAFg3__110havdhr_cgeVu13SkSerrQryrgreRREwAF3_V15PCQS_QvpgvbanelAF2_14qrsnhyg_qryrgrVF7_RRRRRRRAF_8vagreany16ZnxrHavdhrErfhygVG_R6FpnyneRQcBG0_
+.weak b__MA6cqsvhz10ZnxrHavdhrV11PCQS_FgernzWAFg3__110havdhr_cgeVu13SkSerrQryrgreRREwAF3_V15PCQS_QvpgvbanelAF2_14qrsnhyg_qryrgrVF7_RRRRRRRAF_8vagreany16ZnxrHavdhrErfhygVG_R6FpnyneRQcBG0_
 .type b__MA6cqsvhz10ZnxrHavdhrV11PCQS_FgernzWAFg3__110havdhr_cgeVu13SkSerrQryrgreRREwAF3_V15PCQS_QvpgvbanelAF2_14qrsnhyg_qryrgrVF7_RRRRRRRAF_8vagreany16ZnxrHavdhrErfhygVG_R6FpnyneRQcBG0_,%function
 b__MA6cqsvhz10ZnxrHavdhrV11PCQS_FgernzWAFg3__110havdhr_cgeVu13SkSerrQryrgreRREwAF3_V15PCQS_QvpgvbanelAF2_14qrsnhyg_qryrgrVF7_RRRRRRRAF_8vagreany16ZnxrHavdhrErfhygVG_R6FpnyneRQcBG0_:
 nop
@@ -9678,7 +9678,7 @@
 b__MA15PCQS_SbezBowrpgP2RAFg3__110havdhr_cgeV9PCQS_SbezAF0_14qrsnhyg_qryrgrVF2_RRRREX10PSK_Zngevk:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVwAF_10havdhr_cgeV11PCQS_BowrpgAF_14qrsnhyg_qryrgrVF3_RRRRRRAF_19__znc_inyhr_pbzcnerVwF7_AF_4yrffVwRRYo1RRRAF_9nyybpngbeVF7_RRR7qrfgeblRCAF_11__gerr_abqrVF7_CiRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVwAF_10havdhr_cgeV11PCQS_BowrpgAF_14qrsnhyg_qryrgrVF3_RRRRRRAF_19__znc_inyhr_pbzcnerVwF7_AF_4yrffVwRRYo1RRRAF_9nyybpngbeVF7_RRR7qrfgeblRCAF_11__gerr_abqrVF7_CiRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVwAF_10havdhr_cgeV11PCQS_BowrpgAF_14qrsnhyg_qryrgrVF3_RRRRRRAF_19__znc_inyhr_pbzcnerVwF7_AF_4yrffVwRRYo1RRRAF_9nyybpngbeVF7_RRR7qrfgeblRCAF_11__gerr_abqrVF7_CiRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVwAF_10havdhr_cgeV11PCQS_BowrpgAF_14qrsnhyg_qryrgrVF3_RRRRRRAF_19__znc_inyhr_pbzcnerVwF7_AF_4yrffVwRRYo1RRRAF_9nyybpngbeVF7_RRR7qrfgeblRCAF_11__gerr_abqrVF7_CiRR:
 nop
@@ -9688,7 +9688,7 @@
 b__MA13PCQS_GrkgCntr13VfPbagebyPuneREX13CNTRPUNE_VASB:
 nop
 .text
-.globl b__MA5skpeg18FgevatCbbyGrzcyngrVAF_10JvqrFgevatRR5PyrneRi
+.weak b__MA5skpeg18FgevatCbbyGrzcyngrVAF_10JvqrFgevatRR5PyrneRi
 .type b__MA5skpeg18FgevatCbbyGrzcyngrVAF_10JvqrFgevatRR5PyrneRi,%function
 b__MA5skpeg18FgevatCbbyGrzcyngrVAF_10JvqrFgevatRR5PyrneRi:
 nop
@@ -9753,7 +9753,7 @@
 b__MA13PCJY_PurpxObkP2Ri:
 nop
 .text
-.globl b__MAFg3__114__fcyvg_ohssreVAF_10havdhr_cgeV11PCQS_BowrpgAF_14qrsnhyg_qryrgrVF2_RRRREAF_9nyybpngbeVF5_RRR9chfu_onpxRBF5_
+.weak b__MAFg3__114__fcyvg_ohssreVAF_10havdhr_cgeV11PCQS_BowrpgAF_14qrsnhyg_qryrgrVF2_RRRREAF_9nyybpngbeVF5_RRR9chfu_onpxRBF5_
 .type b__MAFg3__114__fcyvg_ohssreVAF_10havdhr_cgeV11PCQS_BowrpgAF_14qrsnhyg_qryrgrVF2_RRRREAF_9nyybpngbeVF5_RRR9chfu_onpxRBF5_,%function
 b__MAFg3__114__fcyvg_ohssreVAF_10havdhr_cgeV11PCQS_BowrpgAF_14qrsnhyg_qryrgrVF2_RRRREAF_9nyybpngbeVF5_RRR9chfu_onpxRBF5_:
 nop
@@ -9763,12 +9763,12 @@
 b__MAX12PCJY_YvfgObk14TrgPbagragErpgRi:
 nop
 .text
-.globl b__MA5skpeg18FgevatCbbyGrzcyngrVAF_10JvqrFgevatRR6VagreaREXF1_
+.weak b__MA5skpeg18FgevatCbbyGrzcyngrVAF_10JvqrFgevatRR6VagreaREXF1_
 .type b__MA5skpeg18FgevatCbbyGrzcyngrVAF_10JvqrFgevatRR6VagreaREXF1_,%function
 b__MA5skpeg18FgevatCbbyGrzcyngrVAF_10JvqrFgevatRR6VagreaREXF1_:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_10havdhr_cgeV14PWOvt2_FrtzragAF_14qrsnhyg_qryrgrVF2_RRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_
+.weak b__MAFg3__16irpgbeVAF_10havdhr_cgeV14PWOvt2_FrtzragAF_14qrsnhyg_qryrgrVF2_RRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_
 .type b__MAFg3__16irpgbeVAF_10havdhr_cgeV14PWOvt2_FrtzragAF_14qrsnhyg_qryrgrVF2_RRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_,%function
 b__MAFg3__16irpgbeVAF_10havdhr_cgeV14PWOvt2_FrtzragAF_14qrsnhyg_qryrgrVF2_RRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_:
 nop
@@ -9793,7 +9793,7 @@
 b__MAX17PCQS_InevnoyrGrkg15TrgRaqJbeqCynprRi:
 nop
 .text
-.globl b__MAFg3__16irpgbeV13PSK_SybngErpgAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVEXF1_RRiBG_
+.weak b__MAFg3__16irpgbeV13PSK_SybngErpgAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVEXF1_RRiBG_
 .type b__MAFg3__16irpgbeV13PSK_SybngErpgAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVEXF1_RRiBG_,%function
 b__MAFg3__16irpgbeV13PSK_SybngErpgAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVEXF1_RRiBG_:
 nop
@@ -9898,7 +9898,7 @@
 b__MA18PCQS_GvyvatCnggreaP2RC13PCQS_QbphzragC11PCQS_BowrpgEX10PSK_Zngevk:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVA5skpeg10OlgrFgevatRAF_10havdhr_cgeV11PCQS_BowrpgAF_14qrsnhyg_qryrgrVF5_RRRRRRAF_19__znc_inyhr_pbzcnerVF3_F9_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF9_RRR14__renfr_havdhrVF3_RRzEXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVA5skpeg10OlgrFgevatRAF_10havdhr_cgeV11PCQS_BowrpgAF_14qrsnhyg_qryrgrVF5_RRRRRRAF_19__znc_inyhr_pbzcnerVF3_F9_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF9_RRR14__renfr_havdhrVF3_RRzEXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVA5skpeg10OlgrFgevatRAF_10havdhr_cgeV11PCQS_BowrpgAF_14qrsnhyg_qryrgrVF5_RRRRRRAF_19__znc_inyhr_pbzcnerVF3_F9_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF9_RRR14__renfr_havdhrVF3_RRzEXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVA5skpeg10OlgrFgevatRAF_10havdhr_cgeV11PCQS_BowrpgAF_14qrsnhyg_qryrgrVF5_RRRRRRAF_19__znc_inyhr_pbzcnerVF3_F9_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF9_RRR14__renfr_havdhrVF3_RRzEXG_:
 nop
@@ -9958,7 +9958,7 @@
 b__MA14PCQS_FgehpgXvqP2Ri:
 nop
 .text
-.globl b__MAFg3__14zbirV13CNTRPUNE_VASBCF1_EF1_CF2_yYy56RF1_F2_F3_F4_yYy56RRRAF_16__qrdhr_vgrengbeVG5_G6_G7_G8_G9_KG10_RRRAF5_VG_G0_G1_G2_G3_KG4_RRRFU_FO_
+.weak b__MAFg3__14zbirV13CNTRPUNE_VASBCF1_EF1_CF2_yYy56RF1_F2_F3_F4_yYy56RRRAF_16__qrdhr_vgrengbeVG5_G6_G7_G8_G9_KG10_RRRAF5_VG_G0_G1_G2_G3_KG4_RRRFU_FO_
 .type b__MAFg3__14zbirV13CNTRPUNE_VASBCF1_EF1_CF2_yYy56RF1_F2_F3_F4_yYy56RRRAF_16__qrdhr_vgrengbeVG5_G6_G7_G8_G9_KG10_RRRAF5_VG_G0_G1_G2_G3_KG4_RRRFU_FO_,%function
 b__MAFg3__14zbirV13CNTRPUNE_VASBCF1_EF1_CF2_yYy56RF1_F2_F3_F4_yYy56RRRAF_16__qrdhr_vgrengbeVG5_G6_G7_G8_G9_KG10_RRRAF5_VG_G0_G1_G2_G3_KG4_RRRFU_FO_:
 nop
@@ -9968,7 +9968,7 @@
 b_pzfPVR2000QrygnR:
 nop
 .text
-.globl b__MAFg3__16irpgbeVwAF_9nyybpngbeVwRRR6vafregRAF_11__jenc_vgreVCXwRREF5_
+.weak b__MAFg3__16irpgbeVwAF_9nyybpngbeVwRRR6vafregRAF_11__jenc_vgreVCXwRREF5_
 .type b__MAFg3__16irpgbeVwAF_9nyybpngbeVwRRR6vafregRAF_11__jenc_vgreVCXwRREF5_,%function
 b__MAFg3__16irpgbeVwAF_9nyybpngbeVwRRR6vafregRAF_11__jenc_vgreVCXwRREF5_:
 nop
@@ -9983,7 +9983,7 @@
 b__MA15PCQS_CntrBowrpg6NfSbezRi:
 nop
 .text
-.globl b__MAFg3__16irpgbeVwAF_9nyybpngbeVwRRR6vafregRAF_11__jenc_vgreVCXwRRBw
+.weak b__MAFg3__16irpgbeVwAF_9nyybpngbeVwRRR6vafregRAF_11__jenc_vgreVCXwRRBw
 .type b__MAFg3__16irpgbeVwAF_9nyybpngbeVwRRR6vafregRAF_11__jenc_vgreVCXwRRBw,%function
 b__MAFg3__16irpgbeVwAF_9nyybpngbeVwRRR6vafregRAF_11__jenc_vgreVCXwRRBw:
 nop
@@ -10003,7 +10003,7 @@
 b__MA16PSSY_EnqvbOhggba14TrgEnqvbOhggbaRC16PCQSFQX_CntrIvrjo:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVCX11PCQS_FgernzA5skpeg9ErgnvaCgeV14PCQS_FgernzNppRRRRAF_19__znc_inyhr_pbzcnerVF4_F9_AF_4yrffVF4_RRYo1RRRAF_9nyybpngbeVF9_RRR7qrfgeblRCAF_11__gerr_abqrVF9_CiRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVCX11PCQS_FgernzA5skpeg9ErgnvaCgeV14PCQS_FgernzNppRRRRAF_19__znc_inyhr_pbzcnerVF4_F9_AF_4yrffVF4_RRYo1RRRAF_9nyybpngbeVF9_RRR7qrfgeblRCAF_11__gerr_abqrVF9_CiRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVCX11PCQS_FgernzA5skpeg9ErgnvaCgeV14PCQS_FgernzNppRRRRAF_19__znc_inyhr_pbzcnerVF4_F9_AF_4yrffVF4_RRYo1RRRAF_9nyybpngbeVF9_RRR7qrfgeblRCAF_11__gerr_abqrVF9_CiRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVCX11PCQS_FgernzA5skpeg9ErgnvaCgeV14PCQS_FgernzNppRRRRAF_19__znc_inyhr_pbzcnerVF4_F9_AF_4yrffVF4_RRYo1RRRAF_9nyybpngbeVF9_RRR7qrfgeblRCAF_11__gerr_abqrVF9_CiRR:
 nop
@@ -10073,7 +10073,7 @@
 b__MA11PCQS_Cnefre16IrevslPebffErsI4Ri:
 nop
 .text
-.globl b__MAFg3__16irpgbeVC11PCQS_BowrpgAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVEXF2_RRiBG_
+.weak b__MAFg3__16irpgbeVC11PCQS_BowrpgAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVEXF2_RRiBG_
 .type b__MAFg3__16irpgbeVC11PCQS_BowrpgAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVEXF2_RRiBG_,%function
 b__MAFg3__16irpgbeVC11PCQS_BowrpgAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVEXF2_RRiBG_:
 nop
@@ -10188,7 +10188,7 @@
 b__MGI10PCQS_Neenl:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__16irpgbeVA9PCQS_PZnc9PbqrEnatrRAF_9nyybpngbeVF2_RRRP2REXF5_
+.weak b__MAFg3__16irpgbeVA9PCQS_PZnc9PbqrEnatrRAF_9nyybpngbeVF2_RRRP2REXF5_
 .type b__MAFg3__16irpgbeVA9PCQS_PZnc9PbqrEnatrRAF_9nyybpngbeVF2_RRRP2REXF5_,%function
 b__MAFg3__16irpgbeVA9PCQS_PZnc9PbqrEnatrRAF_9nyybpngbeVF2_RRRP2REXF5_:
 nop
@@ -10218,7 +10218,7 @@
 b__MAX15PCQS_FvzcyrSbag19HavpbqrSebzPunePbqrRw:
 nop
 .text
-.globl b__MAFg3__114__fcyvg_ohssreVC13CNTRPUNE_VASBAF_9nyybpngbeVF2_RRR10chfu_sebagRBF2_
+.weak b__MAFg3__114__fcyvg_ohssreVC13CNTRPUNE_VASBAF_9nyybpngbeVF2_RRR10chfu_sebagRBF2_
 .type b__MAFg3__114__fcyvg_ohssreVC13CNTRPUNE_VASBAF_9nyybpngbeVF2_RRR10chfu_sebagRBF2_,%function
 b__MAFg3__114__fcyvg_ohssreVC13CNTRPUNE_VASBAF_9nyybpngbeVF2_RRR10chfu_sebagRBF2_:
 nop
@@ -10233,7 +10233,7 @@
 b__MA14PCJY_FpebyyOneQ0Ri:
 nop
 .text
-.globl b__MA5skpeg18FgevatIvrjGrzcyngrVpRnFREXF1_
+.weak b__MA5skpeg18FgevatIvrjGrzcyngrVpRnFREXF1_
 .type b__MA5skpeg18FgevatIvrjGrzcyngrVpRnFREXF1_,%function
 b__MA5skpeg18FgevatIvrjGrzcyngrVpRnFREXF1_:
 nop
@@ -10253,7 +10253,7 @@
 b__MA18PSK_VzntrFgergpure5FgnegRi:
 nop
 .text
-.globl b__MAX5skpeg18FgevatIvrjGrzcyngrVjR6PuneNgRz
+.weak b__MAX5skpeg18FgevatIvrjGrzcyngrVjR6PuneNgRz
 .type b__MAX5skpeg18FgevatIvrjGrzcyngrVjR6PuneNgRz,%function
 b__MAX5skpeg18FgevatIvrjGrzcyngrVjR6PuneNgRz:
 nop
@@ -10263,7 +10263,7 @@
 b__MA18PCQS_EraqrePbagrkg13TrgOnpxtebhaqREXA5skpeg9ErgnvaCgeV12PSK_QVOvgzncRRCX15PCQS_CntrBowrpgCX18PCQS_EraqreBcgvbafC10PSK_Zngevk:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVA5skpeg10JvqrFgevatRAF_4unfuVF2_RRAF_8rdhny_gbVF2_RRAF_9nyybpngbeVF2_RRR6erunfuRz
+.weak b__MAFg3__112__unfu_gnoyrVA5skpeg10JvqrFgevatRAF_4unfuVF2_RRAF_8rdhny_gbVF2_RRAF_9nyybpngbeVF2_RRR6erunfuRz
 .type b__MAFg3__112__unfu_gnoyrVA5skpeg10JvqrFgevatRAF_4unfuVF2_RRAF_8rdhny_gbVF2_RRAF_9nyybpngbeVF2_RRR6erunfuRz,%function
 b__MAFg3__112__unfu_gnoyrVA5skpeg10JvqrFgevatRAF_4unfuVF2_RRAF_8rdhny_gbVF2_RRAF_9nyybpngbeVF2_RRR6erunfuRz:
 nop
@@ -10278,7 +10278,7 @@
 b__pzfIRP3vavg:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVCX15PCQS_QvpgvbaneloRRAF_19__znc_inyhr_pbzcnerVF4_F5_AF_4yrffVF4_RRYo1RRRAF_9nyybpngbeVF5_RRR7qrfgeblRCAF_11__gerr_abqrVF5_CiRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVCX15PCQS_QvpgvbaneloRRAF_19__znc_inyhr_pbzcnerVF4_F5_AF_4yrffVF4_RRYo1RRRAF_9nyybpngbeVF5_RRR7qrfgeblRCAF_11__gerr_abqrVF5_CiRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVCX15PCQS_QvpgvbaneloRRAF_19__znc_inyhr_pbzcnerVF4_F5_AF_4yrffVF4_RRYo1RRRAF_9nyybpngbeVF5_RRR7qrfgeblRCAF_11__gerr_abqrVF5_CiRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVCX15PCQS_QvpgvbaneloRRAF_19__znc_inyhr_pbzcnerVF4_F5_AF_4yrffVF4_RRYo1RRRAF_9nyybpngbeVF5_RRR7qrfgeblRCAF_11__gerr_abqrVF5_CiRR:
 nop
@@ -10288,7 +10288,7 @@
 b_SCQS_FgehpgRyrzrag_TrgZnexrqPbagragVQ:
 nop
 .text
-.globl b__MAFg3__16irpgbeVgAF_9nyybpngbeVgRRR21__chfu_onpx_fybj_cnguVEXgRRiBG_
+.weak b__MAFg3__16irpgbeVgAF_9nyybpngbeVgRRR21__chfu_onpx_fybj_cnguVEXgRRiBG_
 .type b__MAFg3__16irpgbeVgAF_9nyybpngbeVgRRR21__chfu_onpx_fybj_cnguVEXgRRiBG_,%function
 b__MAFg3__16irpgbeVgAF_9nyybpngbeVgRRR21__chfu_onpx_fybj_cnguVEXgRRiBG_:
 nop
@@ -10378,7 +10378,7 @@
 b__M18PELCG_FUN512SvavfuC18PELCG_fun2_pbagrkgCu:
 nop
 .text
-.globl b__MA6cqsvhz10ZnxrHavdhrV9PCQS_AnzrWEA5skpeg7JrnxCgeVAF2_18FgevatCbbyGrzcyngrVAF2_10OlgrFgevatRRRAFg3__114qrsnhyg_qryrgrVF6_RRRREN4_XpRRRAF_8vagreany16ZnxrHavdhrErfhygVG_R6FpnyneRQcBG0_
+.weak b__MA6cqsvhz10ZnxrHavdhrV9PCQS_AnzrWEA5skpeg7JrnxCgeVAF2_18FgevatCbbyGrzcyngrVAF2_10OlgrFgevatRRRAFg3__114qrsnhyg_qryrgrVF6_RRRREN4_XpRRRAF_8vagreany16ZnxrHavdhrErfhygVG_R6FpnyneRQcBG0_
 .type b__MA6cqsvhz10ZnxrHavdhrV9PCQS_AnzrWEA5skpeg7JrnxCgeVAF2_18FgevatCbbyGrzcyngrVAF2_10OlgrFgevatRRRAFg3__114qrsnhyg_qryrgrVF6_RRRREN4_XpRRRAF_8vagreany16ZnxrHavdhrErfhygVG_R6FpnyneRQcBG0_,%function
 b__MA6cqsvhz10ZnxrHavdhrV9PCQS_AnzrWEA5skpeg7JrnxCgeVAF2_18FgevatCbbyGrzcyngrVAF2_10OlgrFgevatRRRAFg3__114qrsnhyg_qryrgrVF6_RRRREN4_XpRRRAF_8vagreany16ZnxrHavdhrErfhygVG_R6FpnyneRQcBG0_:
 nop
@@ -10453,7 +10453,7 @@
 b__MA13PCJY_RqvgVzcy10VafregJbeqRgvoo:
 nop
 .text
-.globl b__MAX5skpeg18FgevatIvrjGrzcyngrVjR9TrgYratguRi
+.weak b__MAX5skpeg18FgevatIvrjGrzcyngrVjR9TrgYratguRi
 .type b__MAX5skpeg18FgevatIvrjGrzcyngrVjR9TrgYratguRi,%function
 b__MAX5skpeg18FgevatIvrjGrzcyngrVjR9TrgYratguRi:
 nop
@@ -10473,12 +10473,12 @@
 b__MGI14PCQS_NyyFgngrf:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__112__unfu_gnoyrVA5skpeg10OlgrFgevatRAF_4unfuVF2_RRAF_8rdhny_gbVF2_RRAF_9nyybpngbeVF2_RRR8__erunfuRz
+.weak b__MAFg3__112__unfu_gnoyrVA5skpeg10OlgrFgevatRAF_4unfuVF2_RRAF_8rdhny_gbVF2_RRAF_9nyybpngbeVF2_RRR8__erunfuRz
 .type b__MAFg3__112__unfu_gnoyrVA5skpeg10OlgrFgevatRAF_4unfuVF2_RRAF_8rdhny_gbVF2_RRAF_9nyybpngbeVF2_RRR8__erunfuRz,%function
 b__MAFg3__112__unfu_gnoyrVA5skpeg10OlgrFgevatRAF_4unfuVF2_RRAF_8rdhny_gbVF2_RRAF_9nyybpngbeVF2_RRR8__erunfuRz:
 nop
 .text
-.globl b__MAX5skpeg18FgevatIvrjGrzcyngrVpR12GevzzrqEvtugRp
+.weak b__MAX5skpeg18FgevatIvrjGrzcyngrVpR12GevzzrqEvtugRp
 .type b__MAX5skpeg18FgevatIvrjGrzcyngrVpR12GevzzrqEvtugRp,%function
 b__MAX5skpeg18FgevatIvrjGrzcyngrVpR12GevzzrqEvtugRp:
 nop
@@ -10508,7 +10508,7 @@
 b_SKFLF_jpfvpzc:
 nop
 .text
-.globl b__MAX5skpeg18FgevatIvrjGrzcyngrVjRarREXF1_
+.weak b__MAX5skpeg18FgevatIvrjGrzcyngrVjRarREXF1_
 .type b__MAX5skpeg18FgevatIvrjGrzcyngrVjRarREXF1_,%function
 b__MAX5skpeg18FgevatIvrjGrzcyngrVjRarREXF1_:
 nop
@@ -10523,7 +10523,7 @@
 b__MA17PCQS_GbHavpbqrZncP2Ri:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_10havdhr_cgeV11PCQS_BowrpgAF_14qrsnhyg_qryrgrVF2_RRRRAF_9nyybpngbeVF5_RRR8__nccraqRz
+.weak b__MAFg3__16irpgbeVAF_10havdhr_cgeV11PCQS_BowrpgAF_14qrsnhyg_qryrgrVF2_RRRRAF_9nyybpngbeVF5_RRR8__nccraqRz
 .type b__MAFg3__16irpgbeVAF_10havdhr_cgeV11PCQS_BowrpgAF_14qrsnhyg_qryrgrVF2_RRRRAF_9nyybpngbeVF5_RRR8__nccraqRz,%function
 b__MAFg3__16irpgbeVAF_10havdhr_cgeV11PCQS_BowrpgAF_14qrsnhyg_qryrgrVF2_RRRRAF_9nyybpngbeVF5_RRR8__nccraqRz:
 nop
@@ -10558,7 +10558,7 @@
 b__MA18PCQS_FgehpgRyrzragP1RC15PCQS_FgehpgGerrCF_C15PCQS_Qvpgvbanel:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVA5skpeg10JvqrFgevatRAF_4unfuVF2_RRAF_8rdhny_gbVF2_RRAF_9nyybpngbeVF2_RRR25__rzcynpr_havdhr_xrl_netfVF2_WEXF2_RRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF2_CiRRRRoRREXG_QcBG0_
+.weak b__MAFg3__112__unfu_gnoyrVA5skpeg10JvqrFgevatRAF_4unfuVF2_RRAF_8rdhny_gbVF2_RRAF_9nyybpngbeVF2_RRR25__rzcynpr_havdhr_xrl_netfVF2_WEXF2_RRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF2_CiRRRRoRREXG_QcBG0_
 .type b__MAFg3__112__unfu_gnoyrVA5skpeg10JvqrFgevatRAF_4unfuVF2_RRAF_8rdhny_gbVF2_RRAF_9nyybpngbeVF2_RRR25__rzcynpr_havdhr_xrl_netfVF2_WEXF2_RRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF2_CiRRRRoRREXG_QcBG0_,%function
 b__MAFg3__112__unfu_gnoyrVA5skpeg10JvqrFgevatRAF_4unfuVF2_RRAF_8rdhny_gbVF2_RRAF_9nyybpngbeVF2_RRR25__rzcynpr_havdhr_xrl_netfVF2_WEXF2_RRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF2_CiRRRRoRREXG_QcBG0_:
 nop
@@ -10598,7 +10598,7 @@
 b__MA26PSSY_VagrenpgvirSbezSvyyre9VfIvfvoyrRC14PCQSFQX_Jvqtrg:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrV8SbagQngnA5skpeg10OlgrFgevatRRRAF_19__znc_inyhr_pbzcnerVF2_F5_AF_4yrffVF2_RRYo1RRRAF_9nyybpngbeVF5_RRR16__pbafgehpg_abqrVWEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXF2_RRRAFU_VWRRRRRRAF_10havdhr_cgeVAF_11__gerr_abqrVF5_CiRRAF_22__gerr_abqr_qrfgehpgbeVAFN_VFC_RRRRRRQcBG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrV8SbagQngnA5skpeg10OlgrFgevatRRRAF_19__znc_inyhr_pbzcnerVF2_F5_AF_4yrffVF2_RRYo1RRRAF_9nyybpngbeVF5_RRR16__pbafgehpg_abqrVWEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXF2_RRRAFU_VWRRRRRRAF_10havdhr_cgeVAF_11__gerr_abqrVF5_CiRRAF_22__gerr_abqr_qrfgehpgbeVAFN_VFC_RRRRRRQcBG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrV8SbagQngnA5skpeg10OlgrFgevatRRRAF_19__znc_inyhr_pbzcnerVF2_F5_AF_4yrffVF2_RRYo1RRRAF_9nyybpngbeVF5_RRR16__pbafgehpg_abqrVWEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXF2_RRRAFU_VWRRRRRRAF_10havdhr_cgeVAF_11__gerr_abqrVF5_CiRRAF_22__gerr_abqr_qrfgehpgbeVAFN_VFC_RRRRRRQcBG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrV8SbagQngnA5skpeg10OlgrFgevatRRRAF_19__znc_inyhr_pbzcnerVF2_F5_AF_4yrffVF2_RRYo1RRRAF_9nyybpngbeVF5_RRR16__pbafgehpg_abqrVWEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXF2_RRRAFU_VWRRRRRRAF_10havdhr_cgeVAF_11__gerr_abqrVF5_CiRRAF_22__gerr_abqr_qrfgehpgbeVAFN_VFC_RRRRRRQcBG_:
 nop
@@ -10663,7 +10663,7 @@
 b__MA12PCIG_SbagZnc15TrgCQSSbagNyvnfRv:
 nop
 .data
-.globl b__MGI15PWF_EhagvzrFgho
+.weak b__MGI15PWF_EhagvzrFgho
 .type b__MGI15PWF_EhagvzrFgho,%object
 b__MGI15PWF_EhagvzrFgho:
 .space __SIZEOF_POINTER__
@@ -10703,7 +10703,7 @@
 b__MA17PSK_VzntrEraqrereP1REXA5skpeg9ErgnvaCgeV12PSK_QVOvgzncRRCX11PSK_PyvcEtaEXAF1_V13PSK_QVOFbheprRRvwCX10PSK_Zngevkwo:
 nop
 .text
-.globl b__MA5skpeg18FgevatQngnGrzcyngrVpR7EryrnfrRi
+.weak b__MA5skpeg18FgevatQngnGrzcyngrVpR7EryrnfrRi
 .type b__MA5skpeg18FgevatQngnGrzcyngrVpR7EryrnfrRi,%function
 b__MA5skpeg18FgevatQngnGrzcyngrVpR7EryrnfrRi:
 nop
@@ -10823,7 +10823,7 @@
 b__MA18PWOvt2_CnggreaQvpgQ1Ri:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_10havdhr_cgeV11PSK_PyvcEtaAF_14qrsnhyg_qryrgrVF2_RRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_
+.weak b__MAFg3__16irpgbeVAF_10havdhr_cgeV11PSK_PyvcEtaAF_14qrsnhyg_qryrgrVF2_RRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_
 .type b__MAFg3__16irpgbeVAF_10havdhr_cgeV11PSK_PyvcEtaAF_14qrsnhyg_qryrgrVF2_RRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_,%function
 b__MAFg3__16irpgbeVAF_10havdhr_cgeV11PSK_PyvcEtaAF_14qrsnhyg_qryrgrVF2_RRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_:
 nop
@@ -11068,7 +11068,7 @@
 b__MA27PPbqrp_SyngrFpnayvarQrpbqreQ0Ri:
 nop
 .text
-.globl b__MAFg3__116__pbcl_hanyvtarqVAF_6irpgbeVoAF_9nyybpngbeVoRRRRYo0RRRAF_14__ovg_vgrengbeVG_Yo0RKYv0RRRRAF5_VF6_KG0_RKYv0RRRRF8_F7_
+.weak b__MAFg3__116__pbcl_hanyvtarqVAF_6irpgbeVoAF_9nyybpngbeVoRRRRYo0RRRAF_14__ovg_vgrengbeVG_Yo0RKYv0RRRRAF5_VF6_KG0_RKYv0RRRRF8_F7_
 .type b__MAFg3__116__pbcl_hanyvtarqVAF_6irpgbeVoAF_9nyybpngbeVoRRRRYo0RRRAF_14__ovg_vgrengbeVG_Yo0RKYv0RRRRAF5_VF6_KG0_RKYv0RRRRF8_F7_,%function
 b__MAFg3__116__pbcl_hanyvtarqVAF_6irpgbeVoAF_9nyybpngbeVoRRRRYo0RRRAF_14__ovg_vgrengbeVG_Yo0RKYv0RRRRAF5_VF6_KG0_RKYv0RRRRF8_F7_:
 nop
@@ -11103,7 +11103,7 @@
 b__MA19PWOvt2_NevguQrpbqreQ2Ri:
 nop
 .text
-.globl b__MA6cqsvhz10ZnxrHavdhrV11PCQS_FgevatWEA5skpeg7JrnxCgeVAF2_18FgevatCbbyGrzcyngrVAF2_10OlgrFgevatRRRAFg3__114qrsnhyg_qryrgrVF6_RRRREAF2_10JvqrFgevatRRRRAF_8vagreany16ZnxrHavdhrErfhygVG_R6FpnyneRQcBG0_
+.weak b__MA6cqsvhz10ZnxrHavdhrV11PCQS_FgevatWEA5skpeg7JrnxCgeVAF2_18FgevatCbbyGrzcyngrVAF2_10OlgrFgevatRRRAFg3__114qrsnhyg_qryrgrVF6_RRRREAF2_10JvqrFgevatRRRRAF_8vagreany16ZnxrHavdhrErfhygVG_R6FpnyneRQcBG0_
 .type b__MA6cqsvhz10ZnxrHavdhrV11PCQS_FgevatWEA5skpeg7JrnxCgeVAF2_18FgevatCbbyGrzcyngrVAF2_10OlgrFgevatRRRAFg3__114qrsnhyg_qryrgrVF6_RRRREAF2_10JvqrFgevatRRRRAF_8vagreany16ZnxrHavdhrErfhygVG_R6FpnyneRQcBG0_,%function
 b__MA6cqsvhz10ZnxrHavdhrV11PCQS_FgevatWEA5skpeg7JrnxCgeVAF2_18FgevatCbbyGrzcyngrVAF2_10OlgrFgevatRRRAFg3__114qrsnhyg_qryrgrVF6_RRRREAF2_10JvqrFgevatRRRRAF_8vagreany16ZnxrHavdhrErfhygVG_R6FpnyneRQcBG0_:
 nop
@@ -11338,7 +11338,7 @@
 b__MA9PCQS_QrfgQ2Ri:
 nop
 .text
-.globl b__MAFg3__16irpgbeVoAF_9nyybpngbeVoRRR7erfreirRz
+.weak b__MAFg3__16irpgbeVoAF_9nyybpngbeVoRRR7erfreirRz
 .type b__MAFg3__16irpgbeVoAF_9nyybpngbeVoRRR7erfreirRz,%function
 b__MAFg3__16irpgbeVoAF_9nyybpngbeVoRRR7erfreirRz:
 nop
@@ -11378,7 +11378,7 @@
 b__MA21PCQSFQX_NpgvbaUnaqyre24QbNpgvba_SvryqWninFpevcgREX11PCQS_NpgvbaA12PCQS_NNpgvba11NNpgvbaGlcrRC27PCQSFQX_SbezSvyyRaivebazragC14PCQS_SbezSvryqE18CQSFQX_SvryqNpgvba:
 nop
 .data
-.globl b__MGPAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_13onfvp_bfgernzVpF2_RR
+.weak b__MGPAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_13onfvp_bfgernzVpF2_RR
 .type b__MGPAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_13onfvp_bfgernzVpF2_RR,%object
 b__MGPAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_13onfvp_bfgernzVpF2_RR:
 .space __SIZEOF_POINTER__
@@ -11448,7 +11448,7 @@
 b__MA14PCQS_QVOFbhepr18PbagvahrGbYbnqZnfxRi:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVC9PCQS_SbagA5skpeg9ErgnvaCgeV15PCQS_Glcr3PnpurRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF8_RRR7qrfgeblRCAF_11__gerr_abqrVF8_CiRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVC9PCQS_SbagA5skpeg9ErgnvaCgeV15PCQS_Glcr3PnpurRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF8_RRR7qrfgeblRCAF_11__gerr_abqrVF8_CiRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVC9PCQS_SbagA5skpeg9ErgnvaCgeV15PCQS_Glcr3PnpurRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF8_RRR7qrfgeblRCAF_11__gerr_abqrVF8_CiRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVC9PCQS_SbagA5skpeg9ErgnvaCgeV15PCQS_Glcr3PnpurRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF8_RRR7qrfgeblRCAF_11__gerr_abqrVF8_CiRR:
 nop
@@ -11523,7 +11523,7 @@
 b__MAX13PSK_SybngErpg14TrgPybfrfgErpgRi:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA9PCQS_PZnc8PVQEnatrRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVF2_RRiBG_
+.weak b__MAFg3__16irpgbeVA9PCQS_PZnc8PVQEnatrRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVF2_RRiBG_
 .type b__MAFg3__16irpgbeVA9PCQS_PZnc8PVQEnatrRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVF2_RRiBG_,%function
 b__MAFg3__16irpgbeVA9PCQS_PZnc8PVQEnatrRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVF2_RRiBG_:
 nop
@@ -11598,7 +11598,7 @@
 b__MA12PCQS_PVQSbag16YbnqZrgevpfNeenlRC10PCQS_NeenlCAFg3__16irpgbeVwAF2_9nyybpngbeVwRRRRv:
 nop
 .text
-.globl b__MA6cqsvhz10ZnxrHavdhrV9PCQS_AnzrWEA5skpeg7JrnxCgeVAF2_18FgevatCbbyGrzcyngrVAF2_10OlgrFgevatRRRAFg3__114qrsnhyg_qryrgrVF6_RRRREN11_XpRRRAF_8vagreany16ZnxrHavdhrErfhygVG_R6FpnyneRQcBG0_
+.weak b__MA6cqsvhz10ZnxrHavdhrV9PCQS_AnzrWEA5skpeg7JrnxCgeVAF2_18FgevatCbbyGrzcyngrVAF2_10OlgrFgevatRRRAFg3__114qrsnhyg_qryrgrVF6_RRRREN11_XpRRRAF_8vagreany16ZnxrHavdhrErfhygVG_R6FpnyneRQcBG0_
 .type b__MA6cqsvhz10ZnxrHavdhrV9PCQS_AnzrWEA5skpeg7JrnxCgeVAF2_18FgevatCbbyGrzcyngrVAF2_10OlgrFgevatRRRAFg3__114qrsnhyg_qryrgrVF6_RRRREN11_XpRRRAF_8vagreany16ZnxrHavdhrErfhygVG_R6FpnyneRQcBG0_,%function
 b__MA6cqsvhz10ZnxrHavdhrV9PCQS_AnzrWEA5skpeg7JrnxCgeVAF2_18FgevatCbbyGrzcyngrVAF2_10OlgrFgevatRRRAFg3__114qrsnhyg_qryrgrVF6_RRRREN11_XpRRRAF_8vagreany16ZnxrHavdhrErfhygVG_R6FpnyneRQcBG0_:
 nop
@@ -11748,7 +11748,7 @@
 b__MA17PCQS_GehrGlcrSbag14NfGehrGlcrSbagRi:
 nop
 .data
-.globl b__MGVAFg3__117onq_shapgvba_pnyyR
+.weak b__MGVAFg3__117onq_shapgvba_pnyyR
 .type b__MGVAFg3__117onq_shapgvba_pnyyR,%object
 b__MGVAFg3__117onq_shapgvba_pnyyR:
 .space __SIZEOF_POINTER__
@@ -11793,7 +11793,7 @@
 b__MA16PSCS_FxvnSbagZte10PerngrSbagREXA5skpeg18FgevatIvrjGrzcyngrVpRRuww:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_5ghcyrVWwvvvoRRRAF_10havdhr_cgeV12PSK_CnguQngnAF_14qrsnhyg_qryrgrVF5_RRRRRRAF_19__znc_inyhr_pbzcnerVF3_F9_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF9_RRR25__rzcynpr_havdhr_xrl_netfVF3_WEXAF_21cvrprjvfr_pbafgehpg_gRAF2_VWEXF3_RRRAF2_VWRRRRRRAF_4cnveVAF_15__gerr_vgrengbeVF9_CAF_11__gerr_abqrVF9_CiRRyRRoRREXG_QcBG0_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_5ghcyrVWwvvvoRRRAF_10havdhr_cgeV12PSK_CnguQngnAF_14qrsnhyg_qryrgrVF5_RRRRRRAF_19__znc_inyhr_pbzcnerVF3_F9_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF9_RRR25__rzcynpr_havdhr_xrl_netfVF3_WEXAF_21cvrprjvfr_pbafgehpg_gRAF2_VWEXF3_RRRAF2_VWRRRRRRAF_4cnveVAF_15__gerr_vgrengbeVF9_CAF_11__gerr_abqrVF9_CiRRyRRoRREXG_QcBG0_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_5ghcyrVWwvvvoRRRAF_10havdhr_cgeV12PSK_CnguQngnAF_14qrsnhyg_qryrgrVF5_RRRRRRAF_19__znc_inyhr_pbzcnerVF3_F9_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF9_RRR25__rzcynpr_havdhr_xrl_netfVF3_WEXAF_21cvrprjvfr_pbafgehpg_gRAF2_VWEXF3_RRRAF2_VWRRRRRRAF_4cnveVAF_15__gerr_vgrengbeVF9_CAF_11__gerr_abqrVF9_CiRRyRRoRREXG_QcBG0_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_5ghcyrVWwvvvoRRRAF_10havdhr_cgeV12PSK_CnguQngnAF_14qrsnhyg_qryrgrVF5_RRRRRRAF_19__znc_inyhr_pbzcnerVF3_F9_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF9_RRR25__rzcynpr_havdhr_xrl_netfVF3_WEXAF_21cvrprjvfr_pbafgehpg_gRAF2_VWEXF3_RRRAF2_VWRRRRRRAF_4cnveVAF_15__gerr_vgrengbeVF9_CAF_11__gerr_abqrVF9_CiRRyRRoRREXG_QcBG0_:
 nop
@@ -11903,12 +11903,12 @@
 b_pzfQvpgArkgRagel:
 nop
 .text
-.globl b__MAFg3__17__fbeg4VECSoCX13PCQSFQX_NaabgF3_RCCF1_RRwG0_F9_F9_F9_G_
+.weak b__MAFg3__17__fbeg4VECSoCX13PCQSFQX_NaabgF3_RCCF1_RRwG0_F9_F9_F9_G_
 .type b__MAFg3__17__fbeg4VECSoCX13PCQSFQX_NaabgF3_RCCF1_RRwG0_F9_F9_F9_G_,%function
 b__MAFg3__17__fbeg4VECSoCX13PCQSFQX_NaabgF3_RCCF1_RRwG0_F9_F9_F9_G_:
 nop
 .text
-.globl b__MAFg3__114__fcyvg_ohssreVCAF_10havdhr_cgeV15PCQS_CntrBowrpgAF_14qrsnhyg_qryrgrVF2_RRRRAF_9nyybpngbeVF6_RRR10chfu_sebagRBF6_
+.weak b__MAFg3__114__fcyvg_ohssreVCAF_10havdhr_cgeV15PCQS_CntrBowrpgAF_14qrsnhyg_qryrgrVF2_RRRRAF_9nyybpngbeVF6_RRR10chfu_sebagRBF6_
 .type b__MAFg3__114__fcyvg_ohssreVCAF_10havdhr_cgeV15PCQS_CntrBowrpgAF_14qrsnhyg_qryrgrVF2_RRRRAF_9nyybpngbeVF6_RRR10chfu_sebagRBF6_,%function
 b__MAFg3__114__fcyvg_ohssreVCAF_10havdhr_cgeV15PCQS_CntrBowrpgAF_14qrsnhyg_qryrgrVF2_RRRRAF_9nyybpngbeVF6_RRR10chfu_sebagRBF6_:
 nop
@@ -12003,7 +12003,7 @@
 b__MA16PSK_EraqreQrivprP1Ri:
 nop
 .text
-.globl b__MA5skpeg18FgevatQngnGrzcyngrVpRP1Rzz
+.weak b__MA5skpeg18FgevatQngnGrzcyngrVpRP1Rzz
 .type b__MA5skpeg18FgevatQngnGrzcyngrVpRP1Rzz,%function
 b__MA5skpeg18FgevatQngnGrzcyngrVpRP1Rzz:
 nop
@@ -12078,7 +12078,7 @@
 b_SBEZ_BaXrlQbja:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVA5skpeg10OlgrFgevatRAF_4unfuVF2_RRAF_8rdhny_gbVF2_RRAF_9nyybpngbeVF2_RRR6erunfuRz
+.weak b__MAFg3__112__unfu_gnoyrVA5skpeg10OlgrFgevatRAF_4unfuVF2_RRAF_8rdhny_gbVF2_RRAF_9nyybpngbeVF2_RRR6erunfuRz
 .type b__MAFg3__112__unfu_gnoyrVA5skpeg10OlgrFgevatRAF_4unfuVF2_RRAF_8rdhny_gbVF2_RRAF_9nyybpngbeVF2_RRR6erunfuRz,%function
 b__MAFg3__112__unfu_gnoyrVA5skpeg10OlgrFgevatRAF_4unfuVF2_RRAF_8rdhny_gbVF2_RRAF_9nyybpngbeVF2_RRR6erunfuRz:
 nop
@@ -12168,7 +12168,7 @@
 b__MA14PCQS_Glcr1Sbag20TylcuSebzPunePbqrRkgRw:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVCX11PCQS_FgernzA5skpeg9ErgnvaCgeV15PCQS_VppCebsvyrRRRRAF_19__znc_inyhr_pbzcnerVF4_F9_AF_4yrffVF4_RRYo1RRRAF_9nyybpngbeVF9_RRR7qrfgeblRCAF_11__gerr_abqrVF9_CiRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVCX11PCQS_FgernzA5skpeg9ErgnvaCgeV15PCQS_VppCebsvyrRRRRAF_19__znc_inyhr_pbzcnerVF4_F9_AF_4yrffVF4_RRYo1RRRAF_9nyybpngbeVF9_RRR7qrfgeblRCAF_11__gerr_abqrVF9_CiRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVCX11PCQS_FgernzA5skpeg9ErgnvaCgeV15PCQS_VppCebsvyrRRRRAF_19__znc_inyhr_pbzcnerVF4_F9_AF_4yrffVF4_RRYo1RRRAF_9nyybpngbeVF9_RRR7qrfgeblRCAF_11__gerr_abqrVF9_CiRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVCX11PCQS_FgernzA5skpeg9ErgnvaCgeV15PCQS_VppCebsvyrRRRRAF_19__znc_inyhr_pbzcnerVF4_F9_AF_4yrffVF4_RRYo1RRRAF_9nyybpngbeVF9_RRR7qrfgeblRCAF_11__gerr_abqrVF9_CiRR:
 nop
@@ -12303,7 +12303,7 @@
 b__MA15PCQS_GrkgBowrpg11FrgFrtzragfRCXA5skpeg10OlgrFgevatRCXsv:
 nop
 .text
-.globl b__MAX5skpeg18FgevatIvrjGrzcyngrVjR13VfInyvqYratguRz
+.weak b__MAX5skpeg18FgevatIvrjGrzcyngrVjR13VfInyvqYratguRz
 .type b__MAX5skpeg18FgevatIvrjGrzcyngrVjR13VfInyvqYratguRz,%function
 b__MAX5skpeg18FgevatIvrjGrzcyngrVjR13VfInyvqYratguRz:
 nop
@@ -12368,7 +12368,7 @@
 b__M18PELCG_FUN1TrarengrCXuwCu:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVA5skpeg10OlgrFgevatRAF_4unfuVF2_RRAF_8rdhny_gbVF2_RRAF_9nyybpngbeVF2_RRR25__rzcynpr_havdhr_xrl_netfVF2_WEXF2_RRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF2_CiRRRRoRREXG_QcBG0_
+.weak b__MAFg3__112__unfu_gnoyrVA5skpeg10OlgrFgevatRAF_4unfuVF2_RRAF_8rdhny_gbVF2_RRAF_9nyybpngbeVF2_RRR25__rzcynpr_havdhr_xrl_netfVF2_WEXF2_RRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF2_CiRRRRoRREXG_QcBG0_
 .type b__MAFg3__112__unfu_gnoyrVA5skpeg10OlgrFgevatRAF_4unfuVF2_RRAF_8rdhny_gbVF2_RRAF_9nyybpngbeVF2_RRR25__rzcynpr_havdhr_xrl_netfVF2_WEXF2_RRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF2_CiRRRRoRREXG_QcBG0_,%function
 b__MAFg3__112__unfu_gnoyrVA5skpeg10OlgrFgevatRAF_4unfuVF2_RRAF_8rdhny_gbVF2_RRAF_9nyybpngbeVF2_RRR25__rzcynpr_havdhr_xrl_netfVF2_WEXF2_RRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF2_CiRRRRoRREXG_QcBG0_:
 nop
@@ -12383,7 +12383,7 @@
 b__MA22VSK_EraqreQrivprQevire12RaqEraqrevatRi:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVvA12PCYFG_Fryrpg5FgngrRRRAF_19__znc_inyhr_pbzcnerVvF4_AF_4yrffVvRRYo1RRRAF_9nyybpngbeVF4_RRR7qrfgeblRCAF_11__gerr_abqrVF4_CiRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVvA12PCYFG_Fryrpg5FgngrRRRAF_19__znc_inyhr_pbzcnerVvF4_AF_4yrffVvRRYo1RRRAF_9nyybpngbeVF4_RRR7qrfgeblRCAF_11__gerr_abqrVF4_CiRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVvA12PCYFG_Fryrpg5FgngrRRRAF_19__znc_inyhr_pbzcnerVvF4_AF_4yrffVvRRYo1RRRAF_9nyybpngbeVF4_RRR7qrfgeblRCAF_11__gerr_abqrVF4_CiRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVvA12PCYFG_Fryrpg5FgngrRRRAF_19__znc_inyhr_pbzcnerVvF4_AF_4yrffVvRRYo1RRRAF_9nyybpngbeVF4_RRR7qrfgeblRCAF_11__gerr_abqrVF4_CiRR:
 nop
@@ -12443,7 +12443,7 @@
 b__MA16PSK_OvgzncFgbere7FrgVasbRvv12SKQVO_SbezngCw:
 nop
 .text
-.globl b__MA5skpeg18FgevatIvrjGrzcyngrVpRajRz
+.weak b__MA5skpeg18FgevatIvrjGrzcyngrVpRajRz
 .type b__MA5skpeg18FgevatIvrjGrzcyngrVpRajRz,%function
 b__MA5skpeg18FgevatIvrjGrzcyngrVpRajRz:
 nop
@@ -12453,7 +12453,7 @@
 b_SCQSVzntrBow_YbnqWcrtSvyr:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVC11SG_SnprErp_AF_10havdhr_cgeVA13PSK_SbagPnpur16PbhagrqSnprPnpurRAF_14qrsnhyg_qryrgrVF6_RRRRRRAF_19__znc_inyhr_pbzcnerVF3_FN_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVFN_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFN_CAF_11__gerr_abqrVFN_CiRRyRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVC11SG_SnprErp_AF_10havdhr_cgeVA13PSK_SbagPnpur16PbhagrqSnprPnpurRAF_14qrsnhyg_qryrgrVF6_RRRRRRAF_19__znc_inyhr_pbzcnerVF3_FN_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVFN_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFN_CAF_11__gerr_abqrVFN_CiRRyRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVC11SG_SnprErp_AF_10havdhr_cgeVA13PSK_SbagPnpur16PbhagrqSnprPnpurRAF_14qrsnhyg_qryrgrVF6_RRRRRRAF_19__znc_inyhr_pbzcnerVF3_FN_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVFN_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFN_CAF_11__gerr_abqrVFN_CiRRyRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVC11SG_SnprErp_AF_10havdhr_cgeVA13PSK_SbagPnpur16PbhagrqSnprPnpurRAF_14qrsnhyg_qryrgrVF6_RRRRRRAF_19__znc_inyhr_pbzcnerVF3_FN_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVFN_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFN_CAF_11__gerr_abqrVFN_CiRRyRR:
 nop
@@ -12648,7 +12648,7 @@
 b__MA18PCQS_PebffErsNinvyP2RC17PCQS_FlagnkCnefrey:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVwAF_10havdhr_cgeV20PCQS_CntrBowrpgNinvyAF_14qrsnhyg_qryrgrVF3_RRRRRRAF_19__znc_inyhr_pbzcnerVwF7_AF_4yrffVwRRYo1RRRAF_9nyybpngbeVF7_RRR7qrfgeblRCAF_11__gerr_abqrVF7_CiRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVwAF_10havdhr_cgeV20PCQS_CntrBowrpgNinvyAF_14qrsnhyg_qryrgrVF3_RRRRRRAF_19__znc_inyhr_pbzcnerVwF7_AF_4yrffVwRRYo1RRRAF_9nyybpngbeVF7_RRR7qrfgeblRCAF_11__gerr_abqrVF7_CiRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVwAF_10havdhr_cgeV20PCQS_CntrBowrpgNinvyAF_14qrsnhyg_qryrgrVF3_RRRRRRAF_19__znc_inyhr_pbzcnerVwF7_AF_4yrffVwRRYo1RRRAF_9nyybpngbeVF7_RRR7qrfgeblRCAF_11__gerr_abqrVF7_CiRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVwAF_10havdhr_cgeV20PCQS_CntrBowrpgNinvyAF_14qrsnhyg_qryrgrVF3_RRRRRRAF_19__znc_inyhr_pbzcnerVwF7_AF_4yrffVwRRYo1RRRAF_9nyybpngbeVF7_RRR7qrfgeblRCAF_11__gerr_abqrVF7_CiRR:
 nop
@@ -12738,7 +12738,7 @@
 b__MA14PCJY_FpebyyOne17AbgvslYOhggbaQbjaRC8PCJY_JaqEX13PSK_CGrzcyngrVsR:
 nop
 .text
-.globl b__MA5skpeg18FgevatQngnGrzcyngrVjR14PbclPbagragfNgRzCXjz
+.weak b__MA5skpeg18FgevatQngnGrzcyngrVjR14PbclPbagragfNgRzCXjz
 .type b__MA5skpeg18FgevatQngnGrzcyngrVjR14PbclPbagragfNgRzCXjz,%function
 b__MA5skpeg18FgevatQngnGrzcyngrVjR14PbclPbagragfNgRzCXjz:
 nop
@@ -12758,7 +12758,7 @@
 b__MGIA16PSK_PGGTFHOGnoyr16GPbirentrSbezng2R:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA5skpeg18FgevatIvrjGrzcyngrVpRP2RCXp
+.weak b__MA5skpeg18FgevatIvrjGrzcyngrVpRP2RCXp
 .type b__MA5skpeg18FgevatIvrjGrzcyngrVpRP2RCXp,%function
 b__MA5skpeg18FgevatIvrjGrzcyngrVpRP2RCXp:
 nop
@@ -12858,7 +12858,7 @@
 b__MA22PCQS_CntrEraqrePbagrkgQ2Ri:
 nop
 .text
-.globl b__MAFg3__114__pbcl_nyvtarqVAF_6irpgbeVoAF_9nyybpngbeVoRRRRYo1RRRAF_14__ovg_vgrengbeVG_Yo0RKYv0RRRRAF5_VF6_KG0_RKYv0RRRRF8_F7_
+.weak b__MAFg3__114__pbcl_nyvtarqVAF_6irpgbeVoAF_9nyybpngbeVoRRRRYo1RRRAF_14__ovg_vgrengbeVG_Yo0RKYv0RRRRAF5_VF6_KG0_RKYv0RRRRF8_F7_
 .type b__MAFg3__114__pbcl_nyvtarqVAF_6irpgbeVoAF_9nyybpngbeVoRRRRYo1RRRAF_14__ovg_vgrengbeVG_Yo0RKYv0RRRRAF5_VF6_KG0_RKYv0RRRRF8_F7_,%function
 b__MAFg3__114__pbcl_nyvtarqVAF_6irpgbeVoAF_9nyybpngbeVoRRRRYo1RRRAF_14__ovg_vgrengbeVG_Yo0RKYv0RRRRAF5_VF6_KG0_RKYv0RRRRF8_F7_:
 nop
@@ -12873,7 +12873,7 @@
 b__MAX9PCQS_CFBC13TrgSybngInyhrRi:
 nop
 .text
-.globl b__MAFg3__114__fcyvg_ohssreVAF_10havdhr_cgeV13PCIG_JbeqVasbAF_14qrsnhyg_qryrgrVF2_RRRREAF_9nyybpngbeVF5_RRR9chfu_onpxRBF5_
+.weak b__MAFg3__114__fcyvg_ohssreVAF_10havdhr_cgeV13PCIG_JbeqVasbAF_14qrsnhyg_qryrgrVF2_RRRREAF_9nyybpngbeVF5_RRR9chfu_onpxRBF5_
 .type b__MAFg3__114__fcyvg_ohssreVAF_10havdhr_cgeV13PCIG_JbeqVasbAF_14qrsnhyg_qryrgrVF2_RRRREAF_9nyybpngbeVF5_RRR9chfu_onpxRBF5_,%function
 b__MAFg3__114__fcyvg_ohssreVAF_10havdhr_cgeV13PCIG_JbeqVasbAF_14qrsnhyg_qryrgrVF2_RRRREAF_9nyybpngbeVF5_RRR9chfu_onpxRBF5_:
 nop
@@ -13113,7 +13113,7 @@
 b__MGI15PCQS_FvzcyrSbag:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX5skpeg18FgevatIvrjGrzcyngrVpRtgREXF1_
+.weak b__MAX5skpeg18FgevatIvrjGrzcyngrVpRtgREXF1_
 .type b__MAX5skpeg18FgevatIvrjGrzcyngrVpRtgREXF1_,%function
 b__MAX5skpeg18FgevatIvrjGrzcyngrVpRtgREXF1_:
 nop
@@ -13208,7 +13208,7 @@
 b__MA15PCQS_FvzcyrSbagP2Ri:
 nop
 .text
-.globl b__MA6cqsvhz10ZnxrHavdhrV11PCQS_FgevatWEA5skpeg7JrnxCgeVAF2_18FgevatCbbyGrzcyngrVAF2_10OlgrFgevatRRRAFg3__114qrsnhyg_qryrgrVF6_RRRREN10_XpoRRRAF_8vagreany16ZnxrHavdhrErfhygVG_R6FpnyneRQcBG0_
+.weak b__MA6cqsvhz10ZnxrHavdhrV11PCQS_FgevatWEA5skpeg7JrnxCgeVAF2_18FgevatCbbyGrzcyngrVAF2_10OlgrFgevatRRRAFg3__114qrsnhyg_qryrgrVF6_RRRREN10_XpoRRRAF_8vagreany16ZnxrHavdhrErfhygVG_R6FpnyneRQcBG0_
 .type b__MA6cqsvhz10ZnxrHavdhrV11PCQS_FgevatWEA5skpeg7JrnxCgeVAF2_18FgevatCbbyGrzcyngrVAF2_10OlgrFgevatRRRAFg3__114qrsnhyg_qryrgrVF6_RRRREN10_XpoRRRAF_8vagreany16ZnxrHavdhrErfhygVG_R6FpnyneRQcBG0_,%function
 b__MA6cqsvhz10ZnxrHavdhrV11PCQS_FgevatWEA5skpeg7JrnxCgeVAF2_18FgevatCbbyGrzcyngrVAF2_10OlgrFgevatRRRAFg3__114qrsnhyg_qryrgrVF6_RRRREN10_XpoRRRAF_8vagreany16ZnxrHavdhrErfhygVG_R6FpnyneRQcBG0_:
 nop
@@ -13313,7 +13313,7 @@
 b__MA16PSK_EraqreQrivprQ2Ri:
 nop
 .text
-.globl b__MAFg3__114__fcyvg_ohssreVCwAF_9nyybpngbeVF1_RRR10chfu_sebagRBF1_
+.weak b__MAFg3__114__fcyvg_ohssreVCwAF_9nyybpngbeVF1_RRR10chfu_sebagRBF1_
 .type b__MAFg3__114__fcyvg_ohssreVCwAF_9nyybpngbeVF1_RRR10chfu_sebagRBF1_,%function
 b__MAFg3__114__fcyvg_ohssreVCwAF_9nyybpngbeVF1_RRR10chfu_sebagRBF1_:
 nop
@@ -13383,7 +13383,7 @@
 b_pzfCyhtva:
 nop
 .text
-.globl b__MA5skpeg18FgevatIvrjGrzcyngrVpRP1REXAFg3__16irpgbeVuAF2_9nyybpngbeVuRRRR
+.weak b__MA5skpeg18FgevatIvrjGrzcyngrVpRP1REXAFg3__16irpgbeVuAF2_9nyybpngbeVuRRRR
 .type b__MA5skpeg18FgevatIvrjGrzcyngrVpRP1REXAFg3__16irpgbeVuAF2_9nyybpngbeVuRRRR,%function
 b__MA5skpeg18FgevatIvrjGrzcyngrVpRP1REXAFg3__16irpgbeVuAF2_9nyybpngbeVuRRRR:
 nop
@@ -13483,7 +13483,7 @@
 b__MA10PCQS_Naabg18TrarengrNCVsArrqrqRi:
 nop
 .text
-.globl b__MA5skpeg18FgevatIvrjGrzcyngrVjRnFREXF1_
+.weak b__MA5skpeg18FgevatIvrjGrzcyngrVjRnFREXF1_
 .type b__MA5skpeg18FgevatIvrjGrzcyngrVjRnFREXF1_,%function
 b__MA5skpeg18FgevatIvrjGrzcyngrVjRnFREXF1_:
 nop
@@ -13633,7 +13633,7 @@
 b_pzfAnzrqPbybeVaqrk:
 nop
 .text
-.globl b__MA6cqsvhz10ZnxrHavdhrV11PCQS_FgevatWEA5skpeg7JrnxCgeVAF2_18FgevatCbbyGrzcyngrVAF2_10OlgrFgevatRRRAFg3__114qrsnhyg_qryrgrVF6_RRRRF5_oRRRAF_8vagreany16ZnxrHavdhrErfhygVG_R6FpnyneRQcBG0_
+.weak b__MA6cqsvhz10ZnxrHavdhrV11PCQS_FgevatWEA5skpeg7JrnxCgeVAF2_18FgevatCbbyGrzcyngrVAF2_10OlgrFgevatRRRAFg3__114qrsnhyg_qryrgrVF6_RRRRF5_oRRRAF_8vagreany16ZnxrHavdhrErfhygVG_R6FpnyneRQcBG0_
 .type b__MA6cqsvhz10ZnxrHavdhrV11PCQS_FgevatWEA5skpeg7JrnxCgeVAF2_18FgevatCbbyGrzcyngrVAF2_10OlgrFgevatRRRAFg3__114qrsnhyg_qryrgrVF6_RRRRF5_oRRRAF_8vagreany16ZnxrHavdhrErfhygVG_R6FpnyneRQcBG0_,%function
 b__MA6cqsvhz10ZnxrHavdhrV11PCQS_FgevatWEA5skpeg7JrnxCgeVAF2_18FgevatCbbyGrzcyngrVAF2_10OlgrFgevatRRRAFg3__114qrsnhyg_qryrgrVF6_RRRRF5_oRRRAF_8vagreany16ZnxrHavdhrErfhygVG_R6FpnyneRQcBG0_:
 nop
@@ -13693,12 +13693,12 @@
 b_SCQSGrkg_TrgErpg:
 nop
 .text
-.globl b__MAFg3__16__gerrVC11PCQS_BowrpgAF_4yrffVF2_RRAF_9nyybpngbeVF2_RRR7qrfgeblRCAF_11__gerr_abqrVF2_CiRR
+.weak b__MAFg3__16__gerrVC11PCQS_BowrpgAF_4yrffVF2_RRAF_9nyybpngbeVF2_RRR7qrfgeblRCAF_11__gerr_abqrVF2_CiRR
 .type b__MAFg3__16__gerrVC11PCQS_BowrpgAF_4yrffVF2_RRAF_9nyybpngbeVF2_RRR7qrfgeblRCAF_11__gerr_abqrVF2_CiRR,%function
 b__MAFg3__16__gerrVC11PCQS_BowrpgAF_4yrffVF2_RRAF_9nyybpngbeVF2_RRR7qrfgeblRCAF_11__gerr_abqrVF2_CiRR:
 nop
 .text
-.globl b__MAFg3__114__fcyvg_ohssreVCwEAF_9nyybpngbeVF1_RRR9chfu_onpxRBF1_
+.weak b__MAFg3__114__fcyvg_ohssreVCwEAF_9nyybpngbeVF1_RRR9chfu_onpxRBF1_
 .type b__MAFg3__114__fcyvg_ohssreVCwEAF_9nyybpngbeVF1_RRR9chfu_onpxRBF1_,%function
 b__MAFg3__114__fcyvg_ohssreVCwEAF_9nyybpngbeVF1_RRR9chfu_onpxRBF1_:
 nop
@@ -13813,7 +13813,7 @@
 b__MA5skpeg10OlgrFgevatP2RCXp:
 nop
 .text
-.globl b__MAFg3__16irpgbeV13PKZY_NggeVgrzAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_
+.weak b__MAFg3__16irpgbeV13PKZY_NggeVgrzAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_
 .type b__MAFg3__16irpgbeV13PKZY_NggeVgrzAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_,%function
 b__MAFg3__16irpgbeV13PKZY_NggeVgrzAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_:
 nop
@@ -13878,7 +13878,7 @@
 b__MA11PKZY_CnefreQ2Ri:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA5skpeg10BofreinoyrV13PCQSFQX_NaabgR11BofreirqCgeRAF_9nyybpngbeVF5_RRR26__fjnc_bhg_pvephyne_ohssreREAF_14__fcyvg_ohssreVF5_EF7_RR
+.weak b__MAFg3__16irpgbeVA5skpeg10BofreinoyrV13PCQSFQX_NaabgR11BofreirqCgeRAF_9nyybpngbeVF5_RRR26__fjnc_bhg_pvephyne_ohssreREAF_14__fcyvg_ohssreVF5_EF7_RR
 .type b__MAFg3__16irpgbeVA5skpeg10BofreinoyrV13PCQSFQX_NaabgR11BofreirqCgeRAF_9nyybpngbeVF5_RRR26__fjnc_bhg_pvephyne_ohssreREAF_14__fcyvg_ohssreVF5_EF7_RR,%function
 b__MAFg3__16irpgbeVA5skpeg10BofreinoyrV13PCQSFQX_NaabgR11BofreirqCgeRAF_9nyybpngbeVF5_RRR26__fjnc_bhg_pvephyne_ohssreREAF_14__fcyvg_ohssreVF5_EF7_RR:
 nop
@@ -13888,12 +13888,12 @@
 b__MAX11PCQS_Npgvba12TrgFhoNpgvbaRz:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVwA5skpeg9ErgnvaCgeV14PCQS_FgernzNppRRRRAF_19__znc_inyhr_pbzcnerVwF6_AF_4yrffVwRRYo1RRRAF_9nyybpngbeVF6_RRR7qrfgeblRCAF_11__gerr_abqrVF6_CiRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVwA5skpeg9ErgnvaCgeV14PCQS_FgernzNppRRRRAF_19__znc_inyhr_pbzcnerVwF6_AF_4yrffVwRRYo1RRRAF_9nyybpngbeVF6_RRR7qrfgeblRCAF_11__gerr_abqrVF6_CiRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVwA5skpeg9ErgnvaCgeV14PCQS_FgernzNppRRRRAF_19__znc_inyhr_pbzcnerVwF6_AF_4yrffVwRRYo1RRRAF_9nyybpngbeVF6_RRR7qrfgeblRCAF_11__gerr_abqrVF6_CiRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVwA5skpeg9ErgnvaCgeV14PCQS_FgernzNppRRRRAF_19__znc_inyhr_pbzcnerVwF6_AF_4yrffVwRRYo1RRRAF_9nyybpngbeVF6_RRR7qrfgeblRCAF_11__gerr_abqrVF6_CiRR:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVA5skpeg10OlgrFgevatRAF_3zncVwAF_10havdhr_cgeV15PSK_TylcuOvgzncAF_14qrsnhyg_qryrgrVF6_RRRRAF_4yrffVwRRAF_9nyybpngbeVAF_4cnveVXwF9_RRRRRRRRAF_19__znc_inyhr_pbzcnerVF3_FV_AFN_VF3_RRYo1RRRAFP_VFV_RRR7qrfgeblRCAF_11__gerr_abqrVFV_CiRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVA5skpeg10OlgrFgevatRAF_3zncVwAF_10havdhr_cgeV15PSK_TylcuOvgzncAF_14qrsnhyg_qryrgrVF6_RRRRAF_4yrffVwRRAF_9nyybpngbeVAF_4cnveVXwF9_RRRRRRRRAF_19__znc_inyhr_pbzcnerVF3_FV_AFN_VF3_RRYo1RRRAFP_VFV_RRR7qrfgeblRCAF_11__gerr_abqrVFV_CiRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVA5skpeg10OlgrFgevatRAF_3zncVwAF_10havdhr_cgeV15PSK_TylcuOvgzncAF_14qrsnhyg_qryrgrVF6_RRRRAF_4yrffVwRRAF_9nyybpngbeVAF_4cnveVXwF9_RRRRRRRRAF_19__znc_inyhr_pbzcnerVF3_FV_AFN_VF3_RRYo1RRRAFP_VFV_RRR7qrfgeblRCAF_11__gerr_abqrVFV_CiRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVA5skpeg10OlgrFgevatRAF_3zncVwAF_10havdhr_cgeV15PSK_TylcuOvgzncAF_14qrsnhyg_qryrgrVF6_RRRRAF_4yrffVwRRAF_9nyybpngbeVAF_4cnveVXwF9_RRRRRRRRAF_19__znc_inyhr_pbzcnerVF3_FV_AFN_VF3_RRYo1RRRAFP_VFV_RRR7qrfgeblRCAF_11__gerr_abqrVFV_CiRR:
 nop
@@ -13913,7 +13913,7 @@
 b__MA11PCQS_AhzoreP2REXA5skpeg18FgevatIvrjGrzcyngrVpRR:
 nop
 .text
-.globl b__MA5skpeg18FgevatQngnGrzcyngrVjR6PerngrRCXjz
+.weak b__MA5skpeg18FgevatQngnGrzcyngrVjR6PerngrRCXjz
 .type b__MA5skpeg18FgevatQngnGrzcyngrVjR6PerngrRCXjz,%function
 b__MA5skpeg18FgevatQngnGrzcyngrVjR6PerngrRCXjz:
 nop
@@ -14048,7 +14048,7 @@
 b__MAX14PCQSFQX_Jvqtrg12TrgSvyyPbybeREw:
 nop
 .text
-.globl b__MA6cqsvhz10ZnxrHavdhrV13PCQS_QbphzragWQaRRRAF_8vagreany16ZnxrHavdhrErfhygVG_R6FpnyneRQcBG0_
+.weak b__MA6cqsvhz10ZnxrHavdhrV13PCQS_QbphzragWQaRRRAF_8vagreany16ZnxrHavdhrErfhygVG_R6FpnyneRQcBG0_
 .type b__MA6cqsvhz10ZnxrHavdhrV13PCQS_QbphzragWQaRRRAF_8vagreany16ZnxrHavdhrErfhygVG_R6FpnyneRQcBG0_,%function
 b__MA6cqsvhz10ZnxrHavdhrV13PCQS_QbphzragWQaRRRAF_8vagreany16ZnxrHavdhrErfhygVG_R6FpnyneRQcBG0_:
 nop
@@ -14248,7 +14248,7 @@
 b__MAX8PCJY_Jaq15TrgCneragJvaqbjRi:
 nop
 .text
-.globl b__MA5skpeg18FgevatIvrjGrzcyngrVjRP1REXAFg3__16irpgbeVwAF2_9nyybpngbeVwRRRR
+.weak b__MA5skpeg18FgevatIvrjGrzcyngrVjRP1REXAFg3__16irpgbeVwAF2_9nyybpngbeVwRRRR
 .type b__MA5skpeg18FgevatIvrjGrzcyngrVjRP1REXAFg3__16irpgbeVwAF2_9nyybpngbeVwRRRR,%function
 b__MA5skpeg18FgevatIvrjGrzcyngrVjRP1REXAFg3__16irpgbeVwAF2_9nyybpngbeVwRRRR:
 nop
@@ -14373,7 +14373,7 @@
 b__MA8PSK_Sbag7TrgOObkRE7SK_ERPG:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA16PSK_PGGTFHOGnoyr14GSrngherErpbeqRAF_9nyybpngbeVF2_RRRP2Rz
+.weak b__MAFg3__16irpgbeVA16PSK_PGGTFHOGnoyr14GSrngherErpbeqRAF_9nyybpngbeVF2_RRRP2Rz
 .type b__MAFg3__16irpgbeVA16PSK_PGGTFHOGnoyr14GSrngherErpbeqRAF_9nyybpngbeVF2_RRRP2Rz,%function
 b__MAFg3__16irpgbeVA16PSK_PGGTFHOGnoyr14GSrngherErpbeqRAF_9nyybpngbeVF2_RRRP2Rz:
 nop
@@ -14498,7 +14498,7 @@
 b__MAX14PCQS_SbezSvryq14TrgBcgvbaYnoryRv:
 nop
 .data
-.globl b__MGGAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
+.weak b__MGGAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
 .type b__MGGAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR,%object
 b__MGGAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR:
 .space __SIZEOF_POINTER__
@@ -14508,7 +14508,7 @@
 b_t_SKPZNC_XFP_RHP_U_0:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVwA5skpeg9ErgnvaCgeV10PCQS_VzntrRRRRAF_19__znc_inyhr_pbzcnerVwF6_AF_4yrffVwRRYo1RRRAF_9nyybpngbeVF6_RRR7qrfgeblRCAF_11__gerr_abqrVF6_CiRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVwA5skpeg9ErgnvaCgeV10PCQS_VzntrRRRRAF_19__znc_inyhr_pbzcnerVwF6_AF_4yrffVwRRYo1RRRAF_9nyybpngbeVF6_RRR7qrfgeblRCAF_11__gerr_abqrVF6_CiRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVwA5skpeg9ErgnvaCgeV10PCQS_VzntrRRRRAF_19__znc_inyhr_pbzcnerVwF6_AF_4yrffVwRRYo1RRRAF_9nyybpngbeVF6_RRR7qrfgeblRCAF_11__gerr_abqrVF6_CiRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVwA5skpeg9ErgnvaCgeV10PCQS_VzntrRRRRAF_19__znc_inyhr_pbzcnerVwF6_AF_4yrffVwRRYo1RRRAF_9nyybpngbeVF6_RRR7qrfgeblRCAF_11__gerr_abqrVF6_CiRR:
 nop
@@ -14663,7 +14663,7 @@
 b__MAX15PCQS_NcFrggvatf11TrgEbgngvbaRi:
 nop
 .text
-.globl b__MAFg3__114__fcyvg_ohssreVCyEAF_9nyybpngbeVF1_RRR9chfu_onpxRBF1_
+.weak b__MAFg3__114__fcyvg_ohssreVCyEAF_9nyybpngbeVF1_RRR9chfu_onpxRBF1_
 .type b__MAFg3__114__fcyvg_ohssreVCyEAF_9nyybpngbeVF1_RRR9chfu_onpxRBF1_,%function
 b__MAFg3__114__fcyvg_ohssreVCyEAF_9nyybpngbeVF1_RRR9chfu_onpxRBF1_:
 nop
@@ -14728,12 +14728,12 @@
 b__MA14PCQSFQX_Jvqtrg14TrgSbezPbagebyRC14PCQS_VagreSbezCX15PCQS_Qvpgvbanel:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVA5skpeg10OlgrFgevatRC11PCQS_FgernzRRAF_19__znc_inyhr_pbzcnerVF3_F6_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF6_RRR25__rzcynpr_havdhr_xrl_netfVF3_WEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXF3_RRRAFV_VWRRRRRRAF_4cnveVAF_15__gerr_vgrengbeVF6_CAF_11__gerr_abqrVF6_CiRRyRRoRREXG_QcBG0_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVA5skpeg10OlgrFgevatRC11PCQS_FgernzRRAF_19__znc_inyhr_pbzcnerVF3_F6_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF6_RRR25__rzcynpr_havdhr_xrl_netfVF3_WEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXF3_RRRAFV_VWRRRRRRAF_4cnveVAF_15__gerr_vgrengbeVF6_CAF_11__gerr_abqrVF6_CiRRyRRoRREXG_QcBG0_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVA5skpeg10OlgrFgevatRC11PCQS_FgernzRRAF_19__znc_inyhr_pbzcnerVF3_F6_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF6_RRR25__rzcynpr_havdhr_xrl_netfVF3_WEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXF3_RRRAFV_VWRRRRRRAF_4cnveVAF_15__gerr_vgrengbeVF6_CAF_11__gerr_abqrVF6_CiRRyRRoRREXG_QcBG0_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVA5skpeg10OlgrFgevatRC11PCQS_FgernzRRAF_19__znc_inyhr_pbzcnerVF3_F6_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF6_RRR25__rzcynpr_havdhr_xrl_netfVF3_WEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXF3_RRRAFV_VWRRRRRRAF_4cnveVAF_15__gerr_vgrengbeVF6_CAF_11__gerr_abqrVF6_CiRRyRRoRREXG_QcBG0_:
 nop
 .text
-.globl b__MAFg3__16irpgbeVuAF_9nyybpngbeVuRRR6vafregVCuRRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVuAF_15vgrengbe_genvgfVF7_R9ersreraprRRR5inyhrRAF_11__jenc_vgreVF5_RRR4glcrRAFO_VCXuRRF7_F7_
+.weak b__MAFg3__16irpgbeVuAF_9nyybpngbeVuRRR6vafregVCuRRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVuAF_15vgrengbe_genvgfVF7_R9ersreraprRRR5inyhrRAF_11__jenc_vgreVF5_RRR4glcrRAFO_VCXuRRF7_F7_
 .type b__MAFg3__16irpgbeVuAF_9nyybpngbeVuRRR6vafregVCuRRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVuAF_15vgrengbe_genvgfVF7_R9ersreraprRRR5inyhrRAF_11__jenc_vgreVF5_RRR4glcrRAFO_VCXuRRF7_F7_,%function
 b__MAFg3__16irpgbeVuAF_9nyybpngbeVuRRR6vafregVCuRRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVuAF_15vgrengbe_genvgfVF7_R9ersreraprRRR5inyhrRAF_11__jenc_vgreVF5_RRR4glcrRAFO_VCXuRRF7_F7_:
 nop
@@ -14763,7 +14763,7 @@
 b__MAX15PCQSFQX_ONNaabg7TrgErpgRi:
 nop
 .text
-.globl b__MAFg3__114__fcyvg_ohssreVCAF_10havdhr_cgeV15PCQS_CntrBowrpgAF_14qrsnhyg_qryrgrVF2_RRRREAF_9nyybpngbeVF6_RRR10chfu_sebagREXF6_
+.weak b__MAFg3__114__fcyvg_ohssreVCAF_10havdhr_cgeV15PCQS_CntrBowrpgAF_14qrsnhyg_qryrgrVF2_RRRREAF_9nyybpngbeVF6_RRR10chfu_sebagREXF6_
 .type b__MAFg3__114__fcyvg_ohssreVCAF_10havdhr_cgeV15PCQS_CntrBowrpgAF_14qrsnhyg_qryrgrVF2_RRRREAF_9nyybpngbeVF6_RRR10chfu_sebagREXF6_,%function
 b__MAFg3__114__fcyvg_ohssreVCAF_10havdhr_cgeV15PCQS_CntrBowrpgAF_14qrsnhyg_qryrgrVF2_RRRREAF_9nyybpngbeVF6_RRR10chfu_sebagREXF6_:
 nop
@@ -14818,7 +14818,7 @@
 b__MAX5PYvar17TrgOrtvaJbeqCynprRi:
 nop
 .text
-.globl b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9conpxsnvyRv
+.weak b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9conpxsnvyRv
 .type b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9conpxsnvyRv,%function
 b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9conpxsnvyRv:
 nop
@@ -14863,7 +14863,7 @@
 b__MA13PCIG_JbeqVasbP2Rgvv:
 nop
 .text
-.globl b__MAFg3__113zbir_onpxjneqVC13CNTRPUNE_VASBF1_F2_EF1_CF2_yYy56RRRAF_16__qrdhr_vgrengbeVG0_G1_G2_G3_G4_KG5_RRRG_FP_FO_CAF_9ranoyr_vsVKfe27__vf_enaqbz_npprff_vgrengbeVFP_RR5inyhrRiR4glcrR
+.weak b__MAFg3__113zbir_onpxjneqVC13CNTRPUNE_VASBF1_F2_EF1_CF2_yYy56RRRAF_16__qrdhr_vgrengbeVG0_G1_G2_G3_G4_KG5_RRRG_FP_FO_CAF_9ranoyr_vsVKfe27__vf_enaqbz_npprff_vgrengbeVFP_RR5inyhrRiR4glcrR
 .type b__MAFg3__113zbir_onpxjneqVC13CNTRPUNE_VASBF1_F2_EF1_CF2_yYy56RRRAF_16__qrdhr_vgrengbeVG0_G1_G2_G3_G4_KG5_RRRG_FP_FO_CAF_9ranoyr_vsVKfe27__vf_enaqbz_npprff_vgrengbeVFP_RR5inyhrRiR4glcrR,%function
 b__MAFg3__113zbir_onpxjneqVC13CNTRPUNE_VASBF1_F2_EF1_CF2_yYy56RRRAF_16__qrdhr_vgrengbeVG0_G1_G2_G3_G4_KG5_RRRG_FP_FO_CAF_9ranoyr_vsVKfe27__vf_enaqbz_npprff_vgrengbeVFP_RR5inyhrRiR4glcrR:
 nop
@@ -14883,7 +14883,7 @@
 b__pzfErnqHVag8Ahzore:
 nop
 .text
-.globl b__MAFg3__16__gerrVCA5skpeg10BofreinoyrV13PCQSFQX_NaabgR11BofreirqCgeRAF_4yrffVF6_RRAF_9nyybpngbeVF6_RRR7qrfgeblRCAF_11__gerr_abqrVF6_CiRR
+.weak b__MAFg3__16__gerrVCA5skpeg10BofreinoyrV13PCQSFQX_NaabgR11BofreirqCgeRAF_4yrffVF6_RRAF_9nyybpngbeVF6_RRR7qrfgeblRCAF_11__gerr_abqrVF6_CiRR
 .type b__MAFg3__16__gerrVCA5skpeg10BofreinoyrV13PCQSFQX_NaabgR11BofreirqCgeRAF_4yrffVF6_RRAF_9nyybpngbeVF6_RRR7qrfgeblRCAF_11__gerr_abqrVF6_CiRR,%function
 b__MAFg3__16__gerrVCA5skpeg10BofreinoyrV13PCQSFQX_NaabgR11BofreirqCgeRAF_4yrffVF6_RRAF_9nyybpngbeVF6_RRR7qrfgeblRCAF_11__gerr_abqrVF6_CiRR:
 nop
@@ -14993,7 +14993,7 @@
 b__MAX13PCJY_RqvgVzcy8TrgPnergRi:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVwwRRAF_19__znc_inyhr_pbzcnerVwF2_AF_4yrffVwRRYo1RRRAF_9nyybpngbeVF2_RRR7qrfgeblRCAF_11__gerr_abqrVF2_CiRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVwwRRAF_19__znc_inyhr_pbzcnerVwF2_AF_4yrffVwRRYo1RRRAF_9nyybpngbeVF2_RRR7qrfgeblRCAF_11__gerr_abqrVF2_CiRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVwwRRAF_19__znc_inyhr_pbzcnerVwF2_AF_4yrffVwRRYo1RRRAF_9nyybpngbeVF2_RRR7qrfgeblRCAF_11__gerr_abqrVF2_CiRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVwwRRAF_19__znc_inyhr_pbzcnerVwF2_AF_4yrffVwRRYo1RRRAF_9nyybpngbeVF2_RRR7qrfgeblRCAF_11__gerr_abqrVF2_CiRR:
 nop
@@ -15013,7 +15013,7 @@
 b__MA17PCQS_InevnoyrGrkgQ1Ri:
 nop
 .text
-.globl b__MA5skpeg18FgevatQngnGrzcyngrVpR6PerngrRz
+.weak b__MA5skpeg18FgevatQngnGrzcyngrVpR6PerngrRz
 .type b__MA5skpeg18FgevatQngnGrzcyngrVpR6PerngrRz,%function
 b__MA5skpeg18FgevatQngnGrzcyngrVpR6PerngrRz:
 nop
@@ -15408,7 +15408,7 @@
 b_bcw_ovb_vavg_rap:
 nop
 .data
-.globl b__MGI20PSK_RkgreanySbagVasb
+.weak b__MGI20PSK_RkgreanySbagVasb
 .type b__MGI20PSK_RkgreanySbagVasb,%object
 b__MGI20PSK_RkgreanySbagVasb:
 .space __SIZEOF_POINTER__
@@ -15493,7 +15493,7 @@
 b__MA16PSK_ZrzbelFgernzP2Ro:
 nop
 .text
-.globl b__MA5skpeg18FgevatQngnGrzcyngrVjR12PbclPbagragfREXF1_
+.weak b__MA5skpeg18FgevatQngnGrzcyngrVjR12PbclPbagragfREXF1_
 .type b__MA5skpeg18FgevatQngnGrzcyngrVjR12PbclPbagragfREXF1_,%function
 b__MA5skpeg18FgevatQngnGrzcyngrVjR12PbclPbagragfREXF1_:
 nop
@@ -15583,7 +15583,7 @@
 b__MAX13PCQSFQX_Naabg7TrgErpgRi:
 nop
 .text
-.globl b__MAFg3__16irpgbeVuAF_9nyybpngbeVuRRR8__nccraqRz
+.weak b__MAFg3__16irpgbeVuAF_9nyybpngbeVuRRR8__nccraqRz
 .type b__MAFg3__16irpgbeVuAF_9nyybpngbeVuRRR8__nccraqRz,%function
 b__MAFg3__16irpgbeVuAF_9nyybpngbeVuRRR8__nccraqRz:
 nop
@@ -15718,7 +15718,7 @@
 b_UhssznaGnoyr_O1_Fvmr:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA6cqsvhz10ZnxrHavdhrV9PCQS_AnzrWEA5skpeg7JrnxCgeVAF2_18FgevatCbbyGrzcyngrVAF2_10OlgrFgevatRRRAFg3__114qrsnhyg_qryrgrVF6_RRRREN2_XpRRRAF_8vagreany16ZnxrHavdhrErfhygVG_R6FpnyneRQcBG0_
+.weak b__MA6cqsvhz10ZnxrHavdhrV9PCQS_AnzrWEA5skpeg7JrnxCgeVAF2_18FgevatCbbyGrzcyngrVAF2_10OlgrFgevatRRRAFg3__114qrsnhyg_qryrgrVF6_RRRREN2_XpRRRAF_8vagreany16ZnxrHavdhrErfhygVG_R6FpnyneRQcBG0_
 .type b__MA6cqsvhz10ZnxrHavdhrV9PCQS_AnzrWEA5skpeg7JrnxCgeVAF2_18FgevatCbbyGrzcyngrVAF2_10OlgrFgevatRRRAFg3__114qrsnhyg_qryrgrVF6_RRRREN2_XpRRRAF_8vagreany16ZnxrHavdhrErfhygVG_R6FpnyneRQcBG0_,%function
 b__MA6cqsvhz10ZnxrHavdhrV9PCQS_AnzrWEA5skpeg7JrnxCgeVAF2_18FgevatCbbyGrzcyngrVAF2_10OlgrFgevatRRRAFg3__114qrsnhyg_qryrgrVF6_RRRREN2_XpRRRAF_8vagreany16ZnxrHavdhrErfhygVG_R6FpnyneRQcBG0_:
 nop
@@ -15778,7 +15778,7 @@
 b__MA8PCJY_Jaq16PerngrZftPbagebyRi:
 nop
 .text
-.globl b__MAX5skpeg18FgevatIvrjGrzcyngrVpR5EvtugRz
+.weak b__MAX5skpeg18FgevatIvrjGrzcyngrVpR5EvtugRz
 .type b__MAX5skpeg18FgevatIvrjGrzcyngrVpR5EvtugRz,%function
 b__MAX5skpeg18FgevatIvrjGrzcyngrVpR5EvtugRz:
 nop
@@ -15868,7 +15868,7 @@
 b__MA18PCQS_GvyvatCnggreaQ0Ri:
 nop
 .text
-.globl b__MA3ntt15fgebxr_pnyp_nepVAF_9cbq_qrdhrVAF_10cbvag_glcrRYw6RRRRRiEG_ssssssss
+.weak b__MA3ntt15fgebxr_pnyp_nepVAF_9cbq_qrdhrVAF_10cbvag_glcrRYw6RRRRRiEG_ssssssss
 .type b__MA3ntt15fgebxr_pnyp_nepVAF_9cbq_qrdhrVAF_10cbvag_glcrRYw6RRRRRiEG_ssssssss,%function
 b__MA3ntt15fgebxr_pnyp_nepVAF_9cbq_qrdhrVAF_10cbvag_glcrRYw6RRRRRiEG_ssssssss:
 nop
@@ -15883,7 +15883,7 @@
 b__MA15PSSY_GrkgBowrpg14ErfrgCQSJvaqbjRC16PCQSFQX_CntrIvrjo:
 nop
 .text
-.globl b__MAFg3__114__fcyvg_ohssreVCyAF_9nyybpngbeVF1_RRR9chfu_onpxRBF1_
+.weak b__MAFg3__114__fcyvg_ohssreVCyAF_9nyybpngbeVF1_RRR9chfu_onpxRBF1_
 .type b__MAFg3__114__fcyvg_ohssreVCyAF_9nyybpngbeVF1_RRR9chfu_onpxRBF1_,%function
 b__MAFg3__114__fcyvg_ohssreVCyAF_9nyybpngbeVF1_RRR9chfu_onpxRBF1_:
 nop
@@ -15898,7 +15898,7 @@
 b__MA18PSK_VzntrFgergpure17FgnegDhvpxFgergpuRi:
 nop
 .text
-.globl b__MA5skpeg18FgevatIvrjGrzcyngrVpRP1RCXp
+.weak b__MA5skpeg18FgevatIvrjGrzcyngrVpRP1RCXp
 .type b__MA5skpeg18FgevatIvrjGrzcyngrVpRP1RCXp,%function
 b__MA5skpeg18FgevatIvrjGrzcyngrVpRP1RCXp:
 nop
@@ -15913,7 +15913,7 @@
 b__MAX8PSK_Sbag10TrgQrfpragRi:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVA5skpeg10OlgrFgevatRAF_10havdhr_cgeV11PCQS_BowrpgAF_14qrsnhyg_qryrgrVF5_RRRRRRAF_19__znc_inyhr_pbzcnerVF3_F9_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF9_RRR7qrfgeblRCAF_11__gerr_abqrVF9_CiRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVA5skpeg10OlgrFgevatRAF_10havdhr_cgeV11PCQS_BowrpgAF_14qrsnhyg_qryrgrVF5_RRRRRRAF_19__znc_inyhr_pbzcnerVF3_F9_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF9_RRR7qrfgeblRCAF_11__gerr_abqrVF9_CiRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVA5skpeg10OlgrFgevatRAF_10havdhr_cgeV11PCQS_BowrpgAF_14qrsnhyg_qryrgrVF5_RRRRRRAF_19__znc_inyhr_pbzcnerVF3_F9_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF9_RRR7qrfgeblRCAF_11__gerr_abqrVF9_CiRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVA5skpeg10OlgrFgevatRAF_10havdhr_cgeV11PCQS_BowrpgAF_14qrsnhyg_qryrgrVF5_RRRRRRAF_19__znc_inyhr_pbzcnerVF3_F9_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF9_RRR7qrfgeblRCAF_11__gerr_abqrVF9_CiRR:
 nop
@@ -15983,7 +15983,7 @@
 b__MA12PCQS_PVQSbag11TrgPuneOObkRw:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_10havdhr_cgeV12PWOvt2_VzntrAF_14qrsnhyg_qryrgrVF2_RRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_
+.weak b__MAFg3__16irpgbeVAF_10havdhr_cgeV12PWOvt2_VzntrAF_14qrsnhyg_qryrgrVF2_RRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_
 .type b__MAFg3__16irpgbeVAF_10havdhr_cgeV12PWOvt2_VzntrAF_14qrsnhyg_qryrgrVF2_RRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_,%function
 b__MAFg3__16irpgbeVAF_10havdhr_cgeV12PWOvt2_VzntrAF_14qrsnhyg_qryrgrVF2_RRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_:
 nop
@@ -16003,7 +16003,7 @@
 b__MA17PON_NaabgVgrengbeP2RC16PCQSFQX_CntrIvrjA10PCQS_Naabg7FhoglcrR:
 nop
 .text
-.globl b__MAFg3__112__qrdhr_onfrV13CNTRPUNE_VASBAF_9nyybpngbeVF1_RRRQ2Ri
+.weak b__MAFg3__112__qrdhr_onfrV13CNTRPUNE_VASBAF_9nyybpngbeVF1_RRRQ2Ri
 .type b__MAFg3__112__qrdhr_onfrV13CNTRPUNE_VASBAF_9nyybpngbeVF1_RRRQ2Ri,%function
 b__MAFg3__112__qrdhr_onfrV13CNTRPUNE_VASBAF_9nyybpngbeVF1_RRRQ2Ri:
 nop
@@ -16023,7 +16023,7 @@
 b__MAX5skpeg10JvqrFgevat10TrgVagrtreRi:
 nop
 .text
-.globl b__MAX5skpeg18FgevatIvrjGrzcyngrVpR4YnfgRi
+.weak b__MAX5skpeg18FgevatIvrjGrzcyngrVpR4YnfgRi
 .type b__MAX5skpeg18FgevatIvrjGrzcyngrVpR4YnfgRi,%function
 b__MAX5skpeg18FgevatIvrjGrzcyngrVpR4YnfgRi:
 nop
@@ -16108,7 +16108,7 @@
 b_SCQSYvax_TrgYvaxMBeqreNgCbvag:
 nop
 .text
-.globl b__MA5skpeg18FgevatIvrjGrzcyngrVpRP2RCXpz
+.weak b__MA5skpeg18FgevatIvrjGrzcyngrVpRP2RCXpz
 .type b__MA5skpeg18FgevatIvrjGrzcyngrVpRP2RCXpz,%function
 b__MA5skpeg18FgevatIvrjGrzcyngrVpRP2RCXpz:
 nop
@@ -16118,7 +16118,7 @@
 b__MAX11PKZY_Bowrpg9NfRyrzragRi:
 nop
 .text
-.globl b__MAFg3__16__gerrVCA5skpeg10BofreinoyrVA8PCJY_Jaq13CebivqreVsnprRR11BofreirqCgeRAF_4yrffVF7_RRAF_9nyybpngbeVF7_RRR7qrfgeblRCAF_11__gerr_abqrVF7_CiRR
+.weak b__MAFg3__16__gerrVCA5skpeg10BofreinoyrVA8PCJY_Jaq13CebivqreVsnprRR11BofreirqCgeRAF_4yrffVF7_RRAF_9nyybpngbeVF7_RRR7qrfgeblRCAF_11__gerr_abqrVF7_CiRR
 .type b__MAFg3__16__gerrVCA5skpeg10BofreinoyrVA8PCJY_Jaq13CebivqreVsnprRR11BofreirqCgeRAF_4yrffVF7_RRAF_9nyybpngbeVF7_RRR7qrfgeblRCAF_11__gerr_abqrVF7_CiRR,%function
 b__MAFg3__16__gerrVCA5skpeg10BofreinoyrVA8PCJY_Jaq13CebivqreVsnprRR11BofreirqCgeRAF_4yrffVF7_RRAF_9nyybpngbeVF7_RRR7qrfgeblRCAF_11__gerr_abqrVF7_CiRR:
 nop
@@ -16143,7 +16143,7 @@
 b__MA16PSK_EraqreQrivpr13HcqngrPyvcObkRi:
 nop
 .text
-.globl b__MAX5skpeg18FgevatQngnGrzcyngrVjR17PnaBcrengrVaCynprRz
+.weak b__MAX5skpeg18FgevatQngnGrzcyngrVjR17PnaBcrengrVaCynprRz
 .type b__MAX5skpeg18FgevatQngnGrzcyngrVjR17PnaBcrengrVaCynprRz,%function
 b__MAX5skpeg18FgevatQngnGrzcyngrVjR17PnaBcrengrVaCynprRz:
 nop
@@ -16283,7 +16283,7 @@
 b__MA15PCQS_FvzcyrSbagQ0Ri:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVA5skpeg10OlgrFgevatRC11PCQS_FgernzRRAF_19__znc_inyhr_pbzcnerVF3_F6_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF6_RRR7qrfgeblRCAF_11__gerr_abqrVF6_CiRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVA5skpeg10OlgrFgevatRC11PCQS_FgernzRRAF_19__znc_inyhr_pbzcnerVF3_F6_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF6_RRR7qrfgeblRCAF_11__gerr_abqrVF6_CiRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVA5skpeg10OlgrFgevatRC11PCQS_FgernzRRAF_19__znc_inyhr_pbzcnerVF3_F6_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF6_RRR7qrfgeblRCAF_11__gerr_abqrVF6_CiRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVA5skpeg10OlgrFgevatRC11PCQS_FgernzRRAF_19__znc_inyhr_pbzcnerVF3_F6_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF6_RRR7qrfgeblRCAF_11__gerr_abqrVF6_CiRR:
 nop
@@ -16328,7 +16328,7 @@
 b__MA12PCJY_SbagZnc8SvaqSbagREXA5skpeg10OlgrFgevatRv:
 nop
 .text
-.globl b__MAX5skpeg18FgevatIvrjGrzcyngrVjRtgREXF1_
+.weak b__MAX5skpeg18FgevatIvrjGrzcyngrVjRtgREXF1_
 .type b__MAX5skpeg18FgevatIvrjGrzcyngrVjRtgREXF1_,%function
 b__MAX5skpeg18FgevatIvrjGrzcyngrVjRtgREXF1_:
 nop
@@ -16428,7 +16428,7 @@
 b__MA14PSSY_GrkgSvryqQ1Ri:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA9PCQS_PZnc9PbqrEnatrRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVEXF2_RRiBG_
+.weak b__MAFg3__16irpgbeVA9PCQS_PZnc9PbqrEnatrRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVEXF2_RRiBG_
 .type b__MAFg3__16irpgbeVA9PCQS_PZnc9PbqrEnatrRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVEXF2_RRiBG_,%function
 b__MAFg3__16irpgbeVA9PCQS_PZnc9PbqrEnatrRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVEXF2_RRiBG_:
 nop
@@ -16473,7 +16473,7 @@
 b__MA15PSK_JvqrGrkgOhsyfRq:
 nop
 .text
-.globl b__MA6cqsvhz10ZnxrHavdhrV9PCQS_AnzrWEA5skpeg7JrnxCgeVAF2_18FgevatCbbyGrzcyngrVAF2_10OlgrFgevatRRRAFg3__114qrsnhyg_qryrgrVF6_RRRREF5_RRRAF_8vagreany16ZnxrHavdhrErfhygVG_R6FpnyneRQcBG0_
+.weak b__MA6cqsvhz10ZnxrHavdhrV9PCQS_AnzrWEA5skpeg7JrnxCgeVAF2_18FgevatCbbyGrzcyngrVAF2_10OlgrFgevatRRRAFg3__114qrsnhyg_qryrgrVF6_RRRREF5_RRRAF_8vagreany16ZnxrHavdhrErfhygVG_R6FpnyneRQcBG0_
 .type b__MA6cqsvhz10ZnxrHavdhrV9PCQS_AnzrWEA5skpeg7JrnxCgeVAF2_18FgevatCbbyGrzcyngrVAF2_10OlgrFgevatRRRAFg3__114qrsnhyg_qryrgrVF6_RRRREF5_RRRAF_8vagreany16ZnxrHavdhrErfhygVG_R6FpnyneRQcBG0_,%function
 b__MA6cqsvhz10ZnxrHavdhrV9PCQS_AnzrWEA5skpeg7JrnxCgeVAF2_18FgevatCbbyGrzcyngrVAF2_10OlgrFgevatRRRAFg3__114qrsnhyg_qryrgrVF6_RRRREF5_RRRAF_8vagreany16ZnxrHavdhrErfhygVG_R6FpnyneRQcBG0_:
 nop
@@ -16523,7 +16523,7 @@
 b_bcw_qjg_pnyp_rkcyvpvg_fgrcfvmrf:
 nop
 .text
-.globl b__MAFg3__16irpgbeVC13PCQSFQX_NaabgAF_9nyybpngbeVF2_RRR6vafregRAF_11__jenc_vgreVCXF2_RREF7_
+.weak b__MAFg3__16irpgbeVC13PCQSFQX_NaabgAF_9nyybpngbeVF2_RRR6vafregRAF_11__jenc_vgreVCXF2_RREF7_
 .type b__MAFg3__16irpgbeVC13PCQSFQX_NaabgAF_9nyybpngbeVF2_RRR6vafregRAF_11__jenc_vgreVCXF2_RREF7_,%function
 b__MAFg3__16irpgbeVC13PCQSFQX_NaabgAF_9nyybpngbeVF2_RRR6vafregRAF_11__jenc_vgreVCXF2_RREF7_:
 nop
@@ -16548,7 +16548,7 @@
 b__MA11PCQS_CFCebp7RkrphgrRC13PCQS_CFRatvar:
 nop
 .text
-.globl b__MAX5skpeg18FgevatIvrjGrzcyngrVpR18hagrezvangrq_p_fgeRi
+.weak b__MAX5skpeg18FgevatIvrjGrzcyngrVpR18hagrezvangrq_p_fgeRi
 .type b__MAX5skpeg18FgevatIvrjGrzcyngrVpR18hagrezvangrq_p_fgeRi,%function
 b__MAX5skpeg18FgevatIvrjGrzcyngrVpR18hagrezvangrq_p_fgeRi:
 nop
@@ -16603,12 +16603,12 @@
 b__MA12PKZY_RyrzragQ0Ri:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA5skpeg10BofreinoyrV13PCQSFQX_NaabgR11BofreirqCgeRAF_9nyybpngbeVF5_RRR7erfreirRz
+.weak b__MAFg3__16irpgbeVA5skpeg10BofreinoyrV13PCQSFQX_NaabgR11BofreirqCgeRAF_9nyybpngbeVF5_RRR7erfreirRz
 .type b__MAFg3__16irpgbeVA5skpeg10BofreinoyrV13PCQSFQX_NaabgR11BofreirqCgeRAF_9nyybpngbeVF5_RRR7erfreirRz,%function
 b__MAFg3__16irpgbeVA5skpeg10BofreinoyrV13PCQSFQX_NaabgR11BofreirqCgeRAF_9nyybpngbeVF5_RRR7erfreirRz:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_4cnveV9PCQS_CnguuRRAF_9nyybpngbeVF3_RRR21__chfu_onpx_fybj_cnguVF3_RRiBG_
+.weak b__MAFg3__16irpgbeVAF_4cnveV9PCQS_CnguuRRAF_9nyybpngbeVF3_RRR21__chfu_onpx_fybj_cnguVF3_RRiBG_
 .type b__MAFg3__16irpgbeVAF_4cnveV9PCQS_CnguuRRAF_9nyybpngbeVF3_RRR21__chfu_onpx_fybj_cnguVF3_RRiBG_,%function
 b__MAFg3__16irpgbeVAF_4cnveV9PCQS_CnguuRRAF_9nyybpngbeVF3_RRR21__chfu_onpx_fybj_cnguVF3_RRiBG_:
 nop
@@ -16653,7 +16653,7 @@
 b__MGI9PCQS_PZnc:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVCX15PCQS_QvpgvbanelAF_10havdhr_cgeV16PCQS_SbezPbagebyAF_14qrsnhyg_qryrgrVF6_RRRRRRAF_19__znc_inyhr_pbzcnerVF4_FN_AF_4yrffVF4_RRYo1RRRAF_9nyybpngbeVFN_RRR7qrfgeblRCAF_11__gerr_abqrVFN_CiRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVCX15PCQS_QvpgvbanelAF_10havdhr_cgeV16PCQS_SbezPbagebyAF_14qrsnhyg_qryrgrVF6_RRRRRRAF_19__znc_inyhr_pbzcnerVF4_FN_AF_4yrffVF4_RRYo1RRRAF_9nyybpngbeVFN_RRR7qrfgeblRCAF_11__gerr_abqrVFN_CiRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVCX15PCQS_QvpgvbanelAF_10havdhr_cgeV16PCQS_SbezPbagebyAF_14qrsnhyg_qryrgrVF6_RRRRRRAF_19__znc_inyhr_pbzcnerVF4_FN_AF_4yrffVF4_RRYo1RRRAF_9nyybpngbeVFN_RRR7qrfgeblRCAF_11__gerr_abqrVFN_CiRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVCX15PCQS_QvpgvbanelAF_10havdhr_cgeV16PCQS_SbezPbagebyAF_14qrsnhyg_qryrgrVF6_RRRRRRAF_19__znc_inyhr_pbzcnerVF4_FN_AF_4yrffVF4_RRYo1RRRAF_9nyybpngbeVFN_RRR7qrfgeblRCAF_11__gerr_abqrVFN_CiRR:
 nop
@@ -16743,7 +16743,7 @@
 b__MAX8PFrpgvba16TrgArkgJbeqCynprREX14PCIG_JbeqCynpr:
 nop
 .text
-.globl b__MAX5skpeg18FgevatIvrjGrzcyngrVjR4YnfgRi
+.weak b__MAX5skpeg18FgevatIvrjGrzcyngrVjR4YnfgRi
 .type b__MAX5skpeg18FgevatIvrjGrzcyngrVjR4YnfgRi,%function
 b__MAX5skpeg18FgevatIvrjGrzcyngrVjR4YnfgRi:
 nop
@@ -16763,7 +16763,7 @@
 b__MA17PCQS_InevnoyrGrkg13TrgJbeqNfpragREX13PCIG_JbeqVasb:
 nop
 .text
-.globl b__MAX5skpeg18FgevatIvrjGrzcyngrVjR7enj_fgeRi
+.weak b__MAX5skpeg18FgevatIvrjGrzcyngrVjR7enj_fgeRi
 .type b__MAX5skpeg18FgevatIvrjGrzcyngrVjR7enj_fgeRi,%function
 b__MAX5skpeg18FgevatIvrjGrzcyngrVjR7enj_fgeRi:
 nop
@@ -17053,7 +17053,7 @@
 b__MA9PCJY_VpbaP2Ri:
 nop
 .text
-.globl b__MA5skpeg18FgevatQngnGrzcyngrVjR12PbclPbagragfRCXjz
+.weak b__MA5skpeg18FgevatQngnGrzcyngrVjR12PbclPbagragfRCXjz
 .type b__MA5skpeg18FgevatQngnGrzcyngrVjR12PbclPbagragfRCXjz,%function
 b__MA5skpeg18FgevatQngnGrzcyngrVjR12PbclPbagragfRCXjz:
 nop
@@ -17088,7 +17088,7 @@
 b__MAX5skpeg10OlgrFgevat11ErirefrSvaqRp:
 nop
 .text
-.globl b__MA5skpeg18FgevatIvrjGrzcyngrVjRP1REj
+.weak b__MA5skpeg18FgevatIvrjGrzcyngrVjRP1REj
 .type b__MA5skpeg18FgevatIvrjGrzcyngrVjRP1REj,%function
 b__MA5skpeg18FgevatIvrjGrzcyngrVjRP1REj:
 nop
@@ -17123,7 +17123,7 @@
 b__MA16PCJY_EnqvbOhggba6BaPuneRgw:
 nop
 .text
-.globl b__MA5skpeg18FgevatQngnGrzcyngrVjRP2Rzz
+.weak b__MA5skpeg18FgevatQngnGrzcyngrVjRP2Rzz
 .type b__MA5skpeg18FgevatQngnGrzcyngrVjRP2Rzz,%function
 b__MA5skpeg18FgevatQngnGrzcyngrVjRP2Rzz:
 nop
@@ -17163,7 +17163,7 @@
 b__MAX12PCQS_NNpgvba9TrgNpgvbaRAF_11NNpgvbaGlcrR:
 nop
 .text
-.globl b__MAFg3__16irpgbeVoAF_9nyybpngbeVoRRR6erfvmrRzo
+.weak b__MAFg3__16irpgbeVoAF_9nyybpngbeVoRRR6erfvmrRzo
 .type b__MAFg3__16irpgbeVoAF_9nyybpngbeVoRRR6erfvmrRzo,%function
 b__MAFg3__16irpgbeVoAF_9nyybpngbeVoRRR6erfvmrRzo:
 nop
@@ -17468,7 +17468,7 @@
 b__MA18PCQS_PelcgbUnaqyre11CbchyngrXrlRwwCu:
 nop
 .text
-.globl b__MA3ntt16eraqre_fpnayvarfVAF_22enfgrevmre_fpnayvar_nnRAF_10fpnayvar_hVuRRAF_27eraqrere_fpnayvar_nn_bssfrgVAF_13eraqrere_onfrVAF_18cvkry_sbezngf_tenlVAF_12oyraqre_tenlVAF_5tenl8RRRYw1RYw0RRRRRRRRRiEG_EG0_EG1_o
+.weak b__MA3ntt16eraqre_fpnayvarfVAF_22enfgrevmre_fpnayvar_nnRAF_10fpnayvar_hVuRRAF_27eraqrere_fpnayvar_nn_bssfrgVAF_13eraqrere_onfrVAF_18cvkry_sbezngf_tenlVAF_12oyraqre_tenlVAF_5tenl8RRRYw1RYw0RRRRRRRRRiEG_EG0_EG1_o
 .type b__MA3ntt16eraqre_fpnayvarfVAF_22enfgrevmre_fpnayvar_nnRAF_10fpnayvar_hVuRRAF_27eraqrere_fpnayvar_nn_bssfrgVAF_13eraqrere_onfrVAF_18cvkry_sbezngf_tenlVAF_12oyraqre_tenlVAF_5tenl8RRRYw1RYw0RRRRRRRRRiEG_EG0_EG1_o,%function
 b__MA3ntt16eraqre_fpnayvarfVAF_22enfgrevmre_fpnayvar_nnRAF_10fpnayvar_hVuRRAF_27eraqrere_fpnayvar_nn_bssfrgVAF_13eraqrere_onfrVAF_18cvkry_sbezngf_tenlVAF_12oyraqre_tenlVAF_5tenl8RRRYw1RYw0RRRRRRRRRiEG_EG0_EG1_o:
 nop
@@ -17563,7 +17563,7 @@
 b__MA21PCQSFQX_JvqtrgUnaqyre11TrgIvrjOObkRC16PCQSFQX_CntrIvrjC13PCQSFQX_Naabg:
 nop
 .text
-.globl b__MAFg3__16irpgbeVwAF_9nyybpngbeVwRRR6nffvtaVCwRRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVwAF_15vgrengbe_genvgfVF7_R9ersreraprRRR5inyhrRiR4glcrRF7_F7_
+.weak b__MAFg3__16irpgbeVwAF_9nyybpngbeVwRRR6nffvtaVCwRRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVwAF_15vgrengbe_genvgfVF7_R9ersreraprRRR5inyhrRiR4glcrRF7_F7_
 .type b__MAFg3__16irpgbeVwAF_9nyybpngbeVwRRR6nffvtaVCwRRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVwAF_15vgrengbe_genvgfVF7_R9ersreraprRRR5inyhrRiR4glcrRF7_F7_,%function
 b__MAFg3__16irpgbeVwAF_9nyybpngbeVwRRR6nffvtaVCwRRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVwAF_15vgrengbe_genvgfVF7_R9ersreraprRRR5inyhrRiR4glcrRF7_F7_:
 nop
@@ -17593,7 +17593,7 @@
 b__MA15PCQSFQX_ONNaabg10TrgNNpgvbaRA12PCQS_NNpgvba11NNpgvbaGlcrR:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVA5skpeg10OlgrFgevatRAF_10havdhr_cgeV11PCQS_BowrpgAF_14qrsnhyg_qryrgrVF5_RRRRRRAF_19__znc_inyhr_pbzcnerVF3_F9_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF9_RRR25__rzcynpr_havdhr_xrl_netfVF3_WAF_4cnveVF3_F8_RRRRRAFV_VAF_15__gerr_vgrengbeVF9_CAF_11__gerr_abqrVF9_CiRRyRRoRREXG_QcBG0_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVA5skpeg10OlgrFgevatRAF_10havdhr_cgeV11PCQS_BowrpgAF_14qrsnhyg_qryrgrVF5_RRRRRRAF_19__znc_inyhr_pbzcnerVF3_F9_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF9_RRR25__rzcynpr_havdhr_xrl_netfVF3_WAF_4cnveVF3_F8_RRRRRAFV_VAF_15__gerr_vgrengbeVF9_CAF_11__gerr_abqrVF9_CiRRyRRoRREXG_QcBG0_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVA5skpeg10OlgrFgevatRAF_10havdhr_cgeV11PCQS_BowrpgAF_14qrsnhyg_qryrgrVF5_RRRRRRAF_19__znc_inyhr_pbzcnerVF3_F9_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF9_RRR25__rzcynpr_havdhr_xrl_netfVF3_WAF_4cnveVF3_F8_RRRRRAFV_VAF_15__gerr_vgrengbeVF9_CAF_11__gerr_abqrVF9_CiRRyRRoRREXG_QcBG0_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVA5skpeg10OlgrFgevatRAF_10havdhr_cgeV11PCQS_BowrpgAF_14qrsnhyg_qryrgrVF5_RRRRRRAF_19__znc_inyhr_pbzcnerVF3_F9_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF9_RRR25__rzcynpr_havdhr_xrl_netfVF3_WAF_4cnveVF3_F8_RRRRRAFV_VAF_15__gerr_vgrengbeVF9_CAF_11__gerr_abqrVF9_CiRRyRRoRREXG_QcBG0_:
 nop
@@ -17613,7 +17613,7 @@
 b__MA16PCQS_PbagragZnexP1REXF_:
 nop
 .text
-.globl b__MAFg3__16irpgbeVwAF_9nyybpngbeVwRRR8__nccraqRz
+.weak b__MAFg3__16irpgbeVwAF_9nyybpngbeVwRRR8__nccraqRz
 .type b__MAFg3__16irpgbeVwAF_9nyybpngbeVwRRR8__nccraqRz,%function
 b__MAFg3__16irpgbeVwAF_9nyybpngbeVwRRR8__nccraqRz:
 nop
@@ -17753,7 +17753,7 @@
 b__MA24PCQS_FgernzPbagragCnefre18Unaqyr_FrgGrkgEvfrRi:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA18PCQS_EraqrePbagrkg5YnlreRAF_9nyybpngbeVF2_RRR24__rzcynpr_onpx_fybj_cnguVWRRRiQcBG_
+.weak b__MAFg3__16irpgbeVA18PCQS_EraqrePbagrkg5YnlreRAF_9nyybpngbeVF2_RRR24__rzcynpr_onpx_fybj_cnguVWRRRiQcBG_
 .type b__MAFg3__16irpgbeVA18PCQS_EraqrePbagrkg5YnlreRAF_9nyybpngbeVF2_RRR24__rzcynpr_onpx_fybj_cnguVWRRRiQcBG_,%function
 b__MAFg3__16irpgbeVA18PCQS_EraqrePbagrkg5YnlreRAF_9nyybpngbeVF2_RRR24__rzcynpr_onpx_fybj_cnguVWRRRiQcBG_:
 nop
@@ -17858,7 +17858,7 @@
 b__MA13PSSY_PbzobObk19VfNpgvbaQngnPunatrqRA12PCQS_NNpgvba11NNpgvbaGlcrREX18CQSFQX_SvryqNpgvbaF4_:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_4cnveV9PCQS_CnguuRRAF_9nyybpngbeVF3_RRR6nffvtaVCF3_RRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF3_AF_15vgrengbe_genvgfVFN_R9ersreraprRRR5inyhrRiR4glcrRFN_FN_
+.weak b__MAFg3__16irpgbeVAF_4cnveV9PCQS_CnguuRRAF_9nyybpngbeVF3_RRR6nffvtaVCF3_RRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF3_AF_15vgrengbe_genvgfVFN_R9ersreraprRRR5inyhrRiR4glcrRFN_FN_
 .type b__MAFg3__16irpgbeVAF_4cnveV9PCQS_CnguuRRAF_9nyybpngbeVF3_RRR6nffvtaVCF3_RRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF3_AF_15vgrengbe_genvgfVFN_R9ersreraprRRR5inyhrRiR4glcrRFN_FN_,%function
 b__MAFg3__16irpgbeVAF_4cnveV9PCQS_CnguuRRAF_9nyybpngbeVF3_RRR6nffvtaVCF3_RRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF3_AF_15vgrengbe_genvgfVFN_R9ersreraprRRR5inyhrRiR4glcrRFN_FN_:
 nop
@@ -18053,7 +18053,7 @@
 b__MAX16PCQS_SbezPbageby16VfQrsnhygPurpxrqRi:
 nop
 .text
-.globl b__MAFg3__16irpgbeVC10PCQS_NeenlAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVF2_RRiBG_
+.weak b__MAFg3__16irpgbeVC10PCQS_NeenlAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVF2_RRiBG_
 .type b__MAFg3__16irpgbeVC10PCQS_NeenlAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVF2_RRiBG_,%function
 b__MAFg3__16irpgbeVC10PCQS_NeenlAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVF2_RRiBG_:
 nop
@@ -18083,7 +18083,7 @@
 b__MA22PCJY_RqvgVzcy_CebivqreP1RC12VCIG_SbagZnc:
 nop
 .text
-.globl b__MAFg3__114__fcyvg_ohssreVyEAF_9nyybpngbeVyRRR9chfu_onpxRBy
+.weak b__MAFg3__114__fcyvg_ohssreVyEAF_9nyybpngbeVyRRR9chfu_onpxRBy
 .type b__MAFg3__114__fcyvg_ohssreVyEAF_9nyybpngbeVyRRR9chfu_onpxRBy,%function
 b__MAFg3__114__fcyvg_ohssreVyEAF_9nyybpngbeVyRRR9chfu_onpxRBy:
 nop
@@ -18093,7 +18093,7 @@
 b__MA14PCQS_VagreSbez23TrarengrArjErfbheprAnzrRCX15PCQS_QvpgvbanelCXpvF4_:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_10havdhr_cgeV8PFrpgvbaAF_14qrsnhyg_qryrgrVF2_RRRRAF_9nyybpngbeVF5_RRR6vafregRAF_11__jenc_vgreVCXF5_RRBF5_
+.weak b__MAFg3__16irpgbeVAF_10havdhr_cgeV8PFrpgvbaAF_14qrsnhyg_qryrgrVF2_RRRRAF_9nyybpngbeVF5_RRR6vafregRAF_11__jenc_vgreVCXF5_RRBF5_
 .type b__MAFg3__16irpgbeVAF_10havdhr_cgeV8PFrpgvbaAF_14qrsnhyg_qryrgrVF2_RRRRAF_9nyybpngbeVF5_RRR6vafregRAF_11__jenc_vgreVCXF5_RRBF5_,%function
 b__MAFg3__16irpgbeVAF_10havdhr_cgeV8PFrpgvbaAF_14qrsnhyg_qryrgrVF2_RRRRAF_9nyybpngbeVF5_RRR6vafregRAF_11__jenc_vgreVCXF5_RRBF5_:
 nop
@@ -18293,7 +18293,7 @@
 b__MAX13PCJY_RqvgVzcy7PnaErqbRi:
 nop
 .text
-.globl b__MAFg3__114__fcyvg_ohssreVCyAF_9nyybpngbeVF1_RRR10chfu_sebagRBF1_
+.weak b__MAFg3__114__fcyvg_ohssreVCyAF_9nyybpngbeVF1_RRR10chfu_sebagRBF1_
 .type b__MAFg3__114__fcyvg_ohssreVCyAF_9nyybpngbeVF1_RRR10chfu_sebagRBF1_,%function
 b__MAFg3__114__fcyvg_ohssreVCyAF_9nyybpngbeVF1_RRR10chfu_sebagRBF1_:
 nop
@@ -18413,7 +18413,7 @@
 b__MAX23PSCS_FxvnSbagQrfpevcgbe7TrgGlcrRi:
 nop
 .text
-.globl b__MAX5skpeg18FgevatIvrjGrzcyngrVjR7VfRzcglRi
+.weak b__MAX5skpeg18FgevatIvrjGrzcyngrVjR7VfRzcglRi
 .type b__MAX5skpeg18FgevatIvrjGrzcyngrVjR7VfRzcglRi,%function
 b__MAX5skpeg18FgevatIvrjGrzcyngrVjR7VfRzcglRi:
 nop
@@ -18463,7 +18463,7 @@
 b__MAX9PCQS_Sbag9PbhagPuneRCXpv:
 nop
 .text
-.globl b__MAFg3__16irpgbeV11CQSGRKG_BowAF_9nyybpngbeVF1_RRR6vafregRAF_11__jenc_vgreVCXF1_RREF6_
+.weak b__MAFg3__16irpgbeV11CQSGRKG_BowAF_9nyybpngbeVF1_RRR6vafregRAF_11__jenc_vgreVCXF1_RREF6_
 .type b__MAFg3__16irpgbeV11CQSGRKG_BowAF_9nyybpngbeVF1_RRR6vafregRAF_11__jenc_vgreVCXF1_RREF6_,%function
 b__MAFg3__16irpgbeV11CQSGRKG_BowAF_9nyybpngbeVF1_RRR6vafregRAF_11__jenc_vgreVCXF1_RREF6_:
 nop
@@ -18508,7 +18508,7 @@
 b__MA13PSCS_FxvnSbag12TrgTylcuOObkRvE7SK_ERPG:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_10havdhr_cgeV17PCJY_SbagZnc_QngnAF_14qrsnhyg_qryrgrVF2_RRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_
+.weak b__MAFg3__16irpgbeVAF_10havdhr_cgeV17PCJY_SbagZnc_QngnAF_14qrsnhyg_qryrgrVF2_RRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_
 .type b__MAFg3__16irpgbeVAF_10havdhr_cgeV17PCJY_SbagZnc_QngnAF_14qrsnhyg_qryrgrVF2_RRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_,%function
 b__MAFg3__16irpgbeVAF_10havdhr_cgeV17PCJY_SbagZnc_QngnAF_14qrsnhyg_qryrgrVF2_RRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_:
 nop
@@ -18613,12 +18613,12 @@
 b_SCQS_EraqreCntr_Pybfr:
 nop
 .text
-.globl b__MA6cqsvhz10ZnxrHavdhrV9PCQS_AnzrWEA5skpeg7JrnxCgeVAF2_18FgevatCbbyGrzcyngrVAF2_10OlgrFgevatRRRAFg3__114qrsnhyg_qryrgrVF6_RRRREN9_XpRRRAF_8vagreany16ZnxrHavdhrErfhygVG_R6FpnyneRQcBG0_
+.weak b__MA6cqsvhz10ZnxrHavdhrV9PCQS_AnzrWEA5skpeg7JrnxCgeVAF2_18FgevatCbbyGrzcyngrVAF2_10OlgrFgevatRRRAFg3__114qrsnhyg_qryrgrVF6_RRRREN9_XpRRRAF_8vagreany16ZnxrHavdhrErfhygVG_R6FpnyneRQcBG0_
 .type b__MA6cqsvhz10ZnxrHavdhrV9PCQS_AnzrWEA5skpeg7JrnxCgeVAF2_18FgevatCbbyGrzcyngrVAF2_10OlgrFgevatRRRAFg3__114qrsnhyg_qryrgrVF6_RRRREN9_XpRRRAF_8vagreany16ZnxrHavdhrErfhygVG_R6FpnyneRQcBG0_,%function
 b__MA6cqsvhz10ZnxrHavdhrV9PCQS_AnzrWEA5skpeg7JrnxCgeVAF2_18FgevatCbbyGrzcyngrVAF2_10OlgrFgevatRRRAFg3__114qrsnhyg_qryrgrVF6_RRRREN9_XpRRRAF_8vagreany16ZnxrHavdhrErfhygVG_R6FpnyneRQcBG0_:
 nop
 .text
-.globl b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR3fgeREXAF_12onfvp_fgevatVpF2_F4_RR
+.weak b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR3fgeREXAF_12onfvp_fgevatVpF2_F4_RR
 .type b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR3fgeREXAF_12onfvp_fgevatVpF2_F4_RR,%function
 b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR3fgeREXAF_12onfvp_fgevatVpF2_F4_RR:
 nop
@@ -18638,7 +18638,7 @@
 b__MA15PSSY_SbezSvyyre9GvzreCebpRi:
 nop
 .text
-.globl b__MA5skpeg18FgevatIvrjGrzcyngrVpRnFRCXp
+.weak b__MA5skpeg18FgevatIvrjGrzcyngrVpRnFRCXp
 .type b__MA5skpeg18FgevatIvrjGrzcyngrVpRnFRCXp,%function
 b__MA5skpeg18FgevatIvrjGrzcyngrVpRnFRCXp:
 nop
@@ -18648,7 +18648,7 @@
 b__MA23PCQSFQX_NaabgUnaqyreZte17Naabg_BaYOhggbaHcRC16PCQSFQX_CntrIvrjCA5skpeg10BofreinoyrV13PCQSFQX_NaabgR11BofreirqCgeRwEX13PSK_CGrzcyngrVsR:
 nop
 .text
-.globl b__MAFg3__15qrdhrV13CNTRPUNE_VASBAF_9nyybpngbeVF1_RRR5renfrRAF_16__qrdhr_vgrengbeVF1_CXF1_EF6_CXF7_yYy56RRR
+.weak b__MAFg3__15qrdhrV13CNTRPUNE_VASBAF_9nyybpngbeVF1_RRR5renfrRAF_16__qrdhr_vgrengbeVF1_CXF1_EF6_CXF7_yYy56RRR
 .type b__MAFg3__15qrdhrV13CNTRPUNE_VASBAF_9nyybpngbeVF1_RRR5renfrRAF_16__qrdhr_vgrengbeVF1_CXF1_EF6_CXF7_yYy56RRR,%function
 b__MAFg3__15qrdhrV13CNTRPUNE_VASBAF_9nyybpngbeVF1_RRR5renfrRAF_16__qrdhr_vgrengbeVF1_CXF1_EF6_CXF7_yYy56RRR:
 nop
@@ -18733,7 +18733,7 @@
 b__MA13PSQS_Qbphzrag11CnefrZrzbelRCuw:
 nop
 .text
-.globl b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR7frrxbssRkAF_8vbf_onfr7frrxqveRw
+.weak b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR7frrxbssRkAF_8vbf_onfr7frrxqveRw
 .type b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR7frrxbssRkAF_8vbf_onfr7frrxqveRw,%function
 b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR7frrxbssRkAF_8vbf_onfr7frrxqveRw:
 nop
@@ -18863,7 +18863,7 @@
 b__MAX14PCQS_SbezSvryq16VfBcgvbaFryrpgrqRv:
 nop
 .text
-.globl b__MA5skpeg18FgevatIvrjGrzcyngrVjRP1Ri
+.weak b__MA5skpeg18FgevatIvrjGrzcyngrVjRP1Ri
 .type b__MA5skpeg18FgevatIvrjGrzcyngrVjRP1Ri,%function
 b__MA5skpeg18FgevatIvrjGrzcyngrVjRP1Ri:
 nop
@@ -18878,7 +18878,7 @@
 b_t_SKPZNC_TO_RHP_U_0:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__16irpgbeVoAF_9nyybpngbeVoRRRP2Rz
+.weak b__MAFg3__16irpgbeVoAF_9nyybpngbeVoRRRP2Rz
 .type b__MAFg3__16irpgbeVoAF_9nyybpngbeVoRRRP2Rz,%function
 b__MAFg3__16irpgbeVoAF_9nyybpngbeVoRRRP2Rz:
 nop
@@ -18903,7 +18903,7 @@
 b_SKFLF_jgbv:
 nop
 .text
-.globl b__MAX5skpeg18FgevatIvrjGrzcyngrVjR5EvtugRz
+.weak b__MAX5skpeg18FgevatIvrjGrzcyngrVjR5EvtugRz
 .type b__MAX5skpeg18FgevatIvrjGrzcyngrVjR5EvtugRz,%function
 b__MAX5skpeg18FgevatIvrjGrzcyngrVjR5EvtugRz:
 nop
@@ -19008,7 +19008,7 @@
 b__MA21PCQSFQX_JvqtrgUnaqyre15BaYOhggbaQoyPyxRC16PCQSFQX_CntrIvrjCA5skpeg10BofreinoyrV13PCQSFQX_NaabgR11BofreirqCgeRwEX13PSK_CGrzcyngrVsR:
 nop
 .text
-.globl b__MAX5skpeg18FgevatIvrjGrzcyngrVpR8PbagnvafRp
+.weak b__MAX5skpeg18FgevatIvrjGrzcyngrVpR8PbagnvafRp
 .type b__MAX5skpeg18FgevatIvrjGrzcyngrVpR8PbagnvafRp,%function
 b__MAX5skpeg18FgevatIvrjGrzcyngrVpR8PbagnvafRp:
 nop
@@ -19033,7 +19033,7 @@
 b__MA17PCQS_TrarenyFgngr9FgngrQngnP1REXF0_:
 nop
 .text
-.globl b__MAFg3__16irpgbeVvAF_9nyybpngbeVvRRR8__nccraqRz
+.weak b__MAFg3__16irpgbeVvAF_9nyybpngbeVvRRR8__nccraqRz
 .type b__MAFg3__16irpgbeVvAF_9nyybpngbeVvRRR8__nccraqRz,%function
 b__MAFg3__16irpgbeVvAF_9nyybpngbeVvRRR8__nccraqRz:
 nop
@@ -19218,7 +19218,7 @@
 b__MA13PSCS_FxvnSbag13TrgTylcuJvqguRv:
 nop
 .text
-.globl b__MAFg3__16irpgbeV12SK_CNGUCBVAGAF_9nyybpngbeVF1_RRR8__nccraqRz
+.weak b__MAFg3__16irpgbeV12SK_CNGUCBVAGAF_9nyybpngbeVF1_RRR8__nccraqRz
 .type b__MAFg3__16irpgbeV12SK_CNGUCBVAGAF_9nyybpngbeVF1_RRR8__nccraqRz,%function
 b__MAFg3__16irpgbeV12SK_CNGUCBVAGAF_9nyybpngbeVF1_RRR8__nccraqRz:
 nop
@@ -19238,7 +19238,7 @@
 b__MA12PCJY_YvfgObk11FrgSbagFvmrRs:
 nop
 .text
-.globl b__MAFg3__16irpgbeVCuAF_9nyybpngbeVF1_RRR8__nccraqRz
+.weak b__MAFg3__16irpgbeVCuAF_9nyybpngbeVF1_RRR8__nccraqRz
 .type b__MAFg3__16irpgbeVCuAF_9nyybpngbeVF1_RRR8__nccraqRz,%function
 b__MAFg3__16irpgbeVCuAF_9nyybpngbeVF1_RRR8__nccraqRz:
 nop
@@ -19268,7 +19268,7 @@
 b_pzfFgntrNyybpPYhgSybng:
 nop
 .text
-.globl b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
+.weak b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
 .type b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_,%function
 b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_:
 nop
@@ -19438,7 +19438,7 @@
 b__MA12PCQS_PVQSbagP1Ri:
 nop
 .data
-.globl b__MGI8PZrzSvyr
+.weak b__MGI8PZrzSvyr
 .type b__MGI8PZrzSvyr,%object
 b__MGI8PZrzSvyr:
 .space __SIZEOF_POINTER__
@@ -19543,7 +19543,7 @@
 b_bcw_ernq_olgrf_OR:
 nop
 .text
-.globl b__MA6cqsvhz10ZnxrHavdhrV9PCQS_AnzrWEA5skpeg7JrnxCgeVAF2_18FgevatCbbyGrzcyngrVAF2_10OlgrFgevatRRRAFg3__114qrsnhyg_qryrgrVF6_RRRREN18_XpRRRAF_8vagreany16ZnxrHavdhrErfhygVG_R6FpnyneRQcBG0_
+.weak b__MA6cqsvhz10ZnxrHavdhrV9PCQS_AnzrWEA5skpeg7JrnxCgeVAF2_18FgevatCbbyGrzcyngrVAF2_10OlgrFgevatRRRAFg3__114qrsnhyg_qryrgrVF6_RRRREN18_XpRRRAF_8vagreany16ZnxrHavdhrErfhygVG_R6FpnyneRQcBG0_
 .type b__MA6cqsvhz10ZnxrHavdhrV9PCQS_AnzrWEA5skpeg7JrnxCgeVAF2_18FgevatCbbyGrzcyngrVAF2_10OlgrFgevatRRRAFg3__114qrsnhyg_qryrgrVF6_RRRREN18_XpRRRAF_8vagreany16ZnxrHavdhrErfhygVG_R6FpnyneRQcBG0_,%function
 b__MA6cqsvhz10ZnxrHavdhrV9PCQS_AnzrWEA5skpeg7JrnxCgeVAF2_18FgevatCbbyGrzcyngrVAF2_10OlgrFgevatRRRAFg3__114qrsnhyg_qryrgrVF6_RRRREN18_XpRRRAF_8vagreany16ZnxrHavdhrErfhygVG_R6FpnyneRQcBG0_:
 nop
@@ -19583,7 +19583,7 @@
 b__MA14PWOvt2_TEQCebp12qrpbqr_NevguRC18VSK_CnhfrVaqvpngbeC19PWOvt2_NevguQrpbqre:
 nop
 .text
-.globl b__MA3ntt18pbai_nqncgbe_iptraVAF_9pbai_qnfuVAF_12cngu_fgbentrRAF_12ahyy_znexrefRRRAF_12iptra_fgebxrRF3_R6iregrkRCsF7_
+.weak b__MA3ntt18pbai_nqncgbe_iptraVAF_9pbai_qnfuVAF_12cngu_fgbentrRAF_12ahyy_znexrefRRRAF_12iptra_fgebxrRF3_R6iregrkRCsF7_
 .type b__MA3ntt18pbai_nqncgbe_iptraVAF_9pbai_qnfuVAF_12cngu_fgbentrRAF_12ahyy_znexrefRRRAF_12iptra_fgebxrRF3_R6iregrkRCsF7_,%function
 b__MA3ntt18pbai_nqncgbe_iptraVAF_9pbai_qnfuVAF_12cngu_fgbentrRAF_12ahyy_znexrefRRRAF_12iptra_fgebxrRF3_R6iregrkRCsF7_:
 nop
@@ -19638,7 +19638,7 @@
 b__MA16PSK_PGGTFHOGnoyr23CnefrFvatyrFhofgSbezng1RCXuCAF_10GFhoGnoyr1R:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_4cnveVC15PCQS_QvpgvbanelzRRAF_9nyybpngbeVF4_RRR21__chfu_onpx_fybj_cnguVF4_RRiBG_
+.weak b__MAFg3__16irpgbeVAF_4cnveVC15PCQS_QvpgvbanelzRRAF_9nyybpngbeVF4_RRR21__chfu_onpx_fybj_cnguVF4_RRiBG_
 .type b__MAFg3__16irpgbeVAF_4cnveVC15PCQS_QvpgvbanelzRRAF_9nyybpngbeVF4_RRR21__chfu_onpx_fybj_cnguVF4_RRiBG_,%function
 b__MAFg3__16irpgbeVAF_4cnveVC15PCQS_QvpgvbanelzRRAF_9nyybpngbeVF4_RRR21__chfu_onpx_fybj_cnguVF4_RRiBG_:
 nop
@@ -19653,7 +19653,7 @@
 b__MAX13PCJY_RqvgPgey11TrgSbagFvmrRi:
 nop
 .text
-.globl b__MA6cqsvhz10ZnxrHavdhrV9PCQS_AnzrWEA5skpeg7JrnxCgeVAF2_18FgevatCbbyGrzcyngrVAF2_10OlgrFgevatRRRAFg3__114qrsnhyg_qryrgrVF6_RRRRCXpRRRAF_8vagreany16ZnxrHavdhrErfhygVG_R6FpnyneRQcBG0_
+.weak b__MA6cqsvhz10ZnxrHavdhrV9PCQS_AnzrWEA5skpeg7JrnxCgeVAF2_18FgevatCbbyGrzcyngrVAF2_10OlgrFgevatRRRAFg3__114qrsnhyg_qryrgrVF6_RRRRCXpRRRAF_8vagreany16ZnxrHavdhrErfhygVG_R6FpnyneRQcBG0_
 .type b__MA6cqsvhz10ZnxrHavdhrV9PCQS_AnzrWEA5skpeg7JrnxCgeVAF2_18FgevatCbbyGrzcyngrVAF2_10OlgrFgevatRRRAFg3__114qrsnhyg_qryrgrVF6_RRRRCXpRRRAF_8vagreany16ZnxrHavdhrErfhygVG_R6FpnyneRQcBG0_,%function
 b__MA6cqsvhz10ZnxrHavdhrV9PCQS_AnzrWEA5skpeg7JrnxCgeVAF2_18FgevatCbbyGrzcyngrVAF2_10OlgrFgevatRRRAFg3__114qrsnhyg_qryrgrVF6_RRRRCXpRRRAF_8vagreany16ZnxrHavdhrErfhygVG_R6FpnyneRQcBG0_:
 nop
@@ -19753,7 +19753,7 @@
 b__MA8PCJY_Jaq11FrgPyvcErpgREX13PSK_SybngErpg:
 nop
 .text
-.globl b__MAFg3__114__fcyvg_ohssreVCAF_10havdhr_cgeV17VSK_Rqvg_HaqbVgrzAF_14qrsnhyg_qryrgrVF2_RRRREAF_9nyybpngbeVF6_RRR10chfu_sebagREXF6_
+.weak b__MAFg3__114__fcyvg_ohssreVCAF_10havdhr_cgeV17VSK_Rqvg_HaqbVgrzAF_14qrsnhyg_qryrgrVF2_RRRREAF_9nyybpngbeVF6_RRR10chfu_sebagREXF6_
 .type b__MAFg3__114__fcyvg_ohssreVCAF_10havdhr_cgeV17VSK_Rqvg_HaqbVgrzAF_14qrsnhyg_qryrgrVF2_RRRREAF_9nyybpngbeVF6_RRR10chfu_sebagREXF6_,%function
 b__MAFg3__114__fcyvg_ohssreVCAF_10havdhr_cgeV17VSK_Rqvg_HaqbVgrzAF_14qrsnhyg_qryrgrVF2_RRRREAF_9nyybpngbeVF6_RRR10chfu_sebagREXF6_:
 nop
@@ -19768,7 +19768,7 @@
 b__MA13PSSY_PurpxObkQ1Ri:
 nop
 .text
-.globl b__MAFg3__16irpgbeVyAF_9nyybpngbeVyRRR6vafregRAF_11__jenc_vgreVCXyRREF5_
+.weak b__MAFg3__16irpgbeVyAF_9nyybpngbeVyRRR6vafregRAF_11__jenc_vgreVCXyRREF5_
 .type b__MAFg3__16irpgbeVyAF_9nyybpngbeVyRRR6vafregRAF_11__jenc_vgreVCXyRREF5_,%function
 b__MAFg3__16irpgbeVyAF_9nyybpngbeVyRRR6vafregRAF_11__jenc_vgreVCXyRREF5_:
 nop
@@ -19778,7 +19778,7 @@
 b__MA15PCQSFQX_ONNaabg15FrgFgehpgCneragRv:
 nop
 .text
-.globl b__MA6cqsvhz10ZnxrHavdhrV11PCQS_FgevatWEA5skpeg7JrnxCgeVAF2_18FgevatCbbyGrzcyngrVAF2_10OlgrFgevatRRRAFg3__114qrsnhyg_qryrgrVF6_RRRREXF5_oRRRAF_8vagreany16ZnxrHavdhrErfhygVG_R6FpnyneRQcBG0_
+.weak b__MA6cqsvhz10ZnxrHavdhrV11PCQS_FgevatWEA5skpeg7JrnxCgeVAF2_18FgevatCbbyGrzcyngrVAF2_10OlgrFgevatRRRAFg3__114qrsnhyg_qryrgrVF6_RRRREXF5_oRRRAF_8vagreany16ZnxrHavdhrErfhygVG_R6FpnyneRQcBG0_
 .type b__MA6cqsvhz10ZnxrHavdhrV11PCQS_FgevatWEA5skpeg7JrnxCgeVAF2_18FgevatCbbyGrzcyngrVAF2_10OlgrFgevatRRRAFg3__114qrsnhyg_qryrgrVF6_RRRREXF5_oRRRAF_8vagreany16ZnxrHavdhrErfhygVG_R6FpnyneRQcBG0_,%function
 b__MA6cqsvhz10ZnxrHavdhrV11PCQS_FgevatWEA5skpeg7JrnxCgeVAF2_18FgevatCbbyGrzcyngrVAF2_10OlgrFgevatRRRAFg3__114qrsnhyg_qryrgrVF6_RRRREXF5_oRRRAF_8vagreany16ZnxrHavdhrErfhygVG_R6FpnyneRQcBG0_:
 nop
@@ -19808,7 +19808,7 @@
 b__pzfTrgGntGlcrUnaqyre:
 nop
 .text
-.globl b__MA6cqsvhz10ZnxrHavdhrV9PCQS_AnzrWEA5skpeg7JrnxCgeVAF2_18FgevatCbbyGrzcyngrVAF2_10OlgrFgevatRRRAFg3__114qrsnhyg_qryrgrVF6_RRRREN16_XpRRRAF_8vagreany16ZnxrHavdhrErfhygVG_R6FpnyneRQcBG0_
+.weak b__MA6cqsvhz10ZnxrHavdhrV9PCQS_AnzrWEA5skpeg7JrnxCgeVAF2_18FgevatCbbyGrzcyngrVAF2_10OlgrFgevatRRRAFg3__114qrsnhyg_qryrgrVF6_RRRREN16_XpRRRAF_8vagreany16ZnxrHavdhrErfhygVG_R6FpnyneRQcBG0_
 .type b__MA6cqsvhz10ZnxrHavdhrV9PCQS_AnzrWEA5skpeg7JrnxCgeVAF2_18FgevatCbbyGrzcyngrVAF2_10OlgrFgevatRRRAFg3__114qrsnhyg_qryrgrVF6_RRRREN16_XpRRRAF_8vagreany16ZnxrHavdhrErfhygVG_R6FpnyneRQcBG0_,%function
 b__MA6cqsvhz10ZnxrHavdhrV9PCQS_AnzrWEA5skpeg7JrnxCgeVAF2_18FgevatCbbyGrzcyngrVAF2_10OlgrFgevatRRRAFg3__114qrsnhyg_qryrgrVF6_RRRREN16_XpRRRAF_8vagreany16ZnxrHavdhrErfhygVG_R6FpnyneRQcBG0_:
 nop
@@ -19848,12 +19848,12 @@
 b__MA11PCQS_Bowrpg7NfNeenlRi:
 nop
 .text
-.globl b__MAFg3__16__gerrVCA5skpeg10BofreinoyrV15PCJY_ZftPbagebyR11BofreirqCgeRAF_4yrffVF6_RRAF_9nyybpngbeVF6_RRR7qrfgeblRCAF_11__gerr_abqrVF6_CiRR
+.weak b__MAFg3__16__gerrVCA5skpeg10BofreinoyrV15PCJY_ZftPbagebyR11BofreirqCgeRAF_4yrffVF6_RRAF_9nyybpngbeVF6_RRR7qrfgeblRCAF_11__gerr_abqrVF6_CiRR
 .type b__MAFg3__16__gerrVCA5skpeg10BofreinoyrV15PCJY_ZftPbagebyR11BofreirqCgeRAF_4yrffVF6_RRAF_9nyybpngbeVF6_RRR7qrfgeblRCAF_11__gerr_abqrVF6_CiRR,%function
 b__MAFg3__16__gerrVCA5skpeg10BofreinoyrV15PCJY_ZftPbagebyR11BofreirqCgeRAF_4yrffVF6_RRAF_9nyybpngbeVF6_RRR7qrfgeblRCAF_11__gerr_abqrVF6_CiRR:
 nop
 .text
-.globl b__MA3ntt16fgebxr_pnyp_wbvaVAF_9cbq_qrdhrVAF_10cbvag_glcrRYw6RRRRRiEG_EXAF_11iregrk_qvfgRF8_F8_sssAF_11yvar_wbva_rRAF_12vaare_wbva_rRsss
+.weak b__MA3ntt16fgebxr_pnyp_wbvaVAF_9cbq_qrdhrVAF_10cbvag_glcrRYw6RRRRRiEG_EXAF_11iregrk_qvfgRF8_F8_sssAF_11yvar_wbva_rRAF_12vaare_wbva_rRsss
 .type b__MA3ntt16fgebxr_pnyp_wbvaVAF_9cbq_qrdhrVAF_10cbvag_glcrRYw6RRRRRiEG_EXAF_11iregrk_qvfgRF8_F8_sssAF_11yvar_wbva_rRAF_12vaare_wbva_rRsss,%function
 b__MA3ntt16fgebxr_pnyp_wbvaVAF_9cbq_qrdhrVAF_10cbvag_glcrRYw6RRRRRiEG_EXAF_11iregrk_qvfgRF8_F8_sssAF_11yvar_wbva_rRAF_12vaare_wbva_rRsss:
 nop
@@ -19973,7 +19973,7 @@
 b__pzfTrgPbagrkg:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrV12TencuvpfQngnA5skpeg10OlgrFgevatRRRAF_19__znc_inyhr_pbzcnerVF2_F5_AF_4yrffVF2_RRYo1RRRAF_9nyybpngbeVF5_RRR7qrfgeblRCAF_11__gerr_abqrVF5_CiRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrV12TencuvpfQngnA5skpeg10OlgrFgevatRRRAF_19__znc_inyhr_pbzcnerVF2_F5_AF_4yrffVF2_RRYo1RRRAF_9nyybpngbeVF5_RRR7qrfgeblRCAF_11__gerr_abqrVF5_CiRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrV12TencuvpfQngnA5skpeg10OlgrFgevatRRRAF_19__znc_inyhr_pbzcnerVF2_F5_AF_4yrffVF2_RRYo1RRRAF_9nyybpngbeVF5_RRR7qrfgeblRCAF_11__gerr_abqrVF5_CiRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrV12TencuvpfQngnA5skpeg10OlgrFgevatRRRAF_19__znc_inyhr_pbzcnerVF2_F5_AF_4yrffVF2_RRYo1RRRAF_9nyybpngbeVF5_RRR7qrfgeblRCAF_11__gerr_abqrVF5_CiRR:
 nop
@@ -20008,7 +20008,7 @@
 b__MA5skpeg10OlgrFgevat6SbezngRCXpm:
 nop
 .text
-.globl b__MAFg3__16irpgbeVCuAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVEXF1_RRiBG_
+.weak b__MAFg3__16irpgbeVCuAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVEXF1_RRiBG_
 .type b__MAFg3__16irpgbeVCuAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVEXF1_RRiBG_,%function
 b__MAFg3__16irpgbeVCuAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVEXF1_RRiBG_:
 nop
@@ -20108,7 +20108,7 @@
 b__MA22CJY_FPEBYY_CEVINGRQNGN12FrgFznyyFgrcRs:
 nop
 .text
-.globl b__MA5skpeg18FgevatIvrjGrzcyngrVpRP1RCXpz
+.weak b__MA5skpeg18FgevatIvrjGrzcyngrVpRP1RCXpz
 .type b__MA5skpeg18FgevatIvrjGrzcyngrVpRP1RCXpz,%function
 b__MA5skpeg18FgevatIvrjGrzcyngrVpRP1RCXpz:
 nop
@@ -20168,7 +20168,7 @@
 b__MA17PCQS_GehrGlcrSbag4YbnqRi:
 nop
 .text
-.globl b__MAFg3__16irpgbeV15PCQS_ZrfuIregrkAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_
+.weak b__MAFg3__16irpgbeV15PCQS_ZrfuIregrkAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_
 .type b__MAFg3__16irpgbeV15PCQS_ZrfuIregrkAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_,%function
 b__MAFg3__16irpgbeV15PCQS_ZrfuIregrkAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_:
 nop
@@ -20178,7 +20178,7 @@
 b__MA21PCQS_YvarnevmrqUrnqre5CnefrRC17PCQS_FlagnkCnefre:
 nop
 .text
-.globl b__MA5skpeg18FgevatIvrjGrzcyngrVpRP2REXAFg3__16irpgbeVuAF2_9nyybpngbeVuRRRR
+.weak b__MA5skpeg18FgevatIvrjGrzcyngrVpRP2REXAFg3__16irpgbeVuAF2_9nyybpngbeVuRRRR
 .type b__MA5skpeg18FgevatIvrjGrzcyngrVpRP2REXAFg3__16irpgbeVuAF2_9nyybpngbeVuRRRR,%function
 b__MA5skpeg18FgevatIvrjGrzcyngrVpRP2REXAFg3__16irpgbeVuAF2_9nyybpngbeVuRRRR:
 nop
@@ -20233,7 +20233,7 @@
 b__MAX5skpeg10OlgrFgevat7PbzcnerREXAF_18FgevatIvrjGrzcyngrVpRR:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_10havdhr_cgeV13PCQS_ShapgvbaAF_14qrsnhyg_qryrgrVF2_RRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_
+.weak b__MAFg3__16irpgbeVAF_10havdhr_cgeV13PCQS_ShapgvbaAF_14qrsnhyg_qryrgrVF2_RRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_
 .type b__MAFg3__16irpgbeVAF_10havdhr_cgeV13PCQS_ShapgvbaAF_14qrsnhyg_qryrgrVF2_RRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_,%function
 b__MAFg3__16irpgbeVAF_10havdhr_cgeV13PCQS_ShapgvbaAF_14qrsnhyg_qryrgrVF2_RRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_:
 nop
@@ -20263,7 +20263,7 @@
 b_SCQSNaabg_FrgSyntf:
 nop
 .text
-.globl b__MAFg3__16irpgbeVvAF_9nyybpngbeVvRRR21__chfu_onpx_fybj_cnguVEXvRRiBG_
+.weak b__MAFg3__16irpgbeVvAF_9nyybpngbeVvRRR21__chfu_onpx_fybj_cnguVEXvRRiBG_
 .type b__MAFg3__16irpgbeVvAF_9nyybpngbeVvRRR21__chfu_onpx_fybj_cnguVEXvRRiBG_,%function
 b__MAFg3__16irpgbeVvAF_9nyybpngbeVvRRR21__chfu_onpx_fybj_cnguVEXvRRiBG_:
 nop
@@ -20318,7 +20318,7 @@
 b__MA19PCQS_FunqvatCnggrea16NfFunqvatCnggreaRi:
 nop
 .text
-.globl b__MA5skpeg18FgevatIvrjGrzcyngrVjRP2RCXj
+.weak b__MA5skpeg18FgevatIvrjGrzcyngrVjRP2RCXj
 .type b__MA5skpeg18FgevatIvrjGrzcyngrVjRP2RCXj,%function
 b__MA5skpeg18FgevatIvrjGrzcyngrVjRP2RCXj:
 nop
@@ -20378,7 +20378,7 @@
 b__MAX13PCQS_AnzrGerr11YbbxhcInyhrREXA5skpeg10JvqrFgevatR:
 nop
 .text
-.globl b__MAFg3__16irpgbeVuAF_9nyybpngbeVuRRR6nffvtaVCuRRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVuAF_15vgrengbe_genvgfVF7_R9ersreraprRRR5inyhrRiR4glcrRF7_F7_
+.weak b__MAFg3__16irpgbeVuAF_9nyybpngbeVuRRR6nffvtaVCuRRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVuAF_15vgrengbe_genvgfVF7_R9ersreraprRRR5inyhrRiR4glcrRF7_F7_
 .type b__MAFg3__16irpgbeVuAF_9nyybpngbeVuRRR6nffvtaVCuRRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVuAF_15vgrengbe_genvgfVF7_R9ersreraprRRR5inyhrRiR4glcrRF7_F7_,%function
 b__MAFg3__16irpgbeVuAF_9nyybpngbeVuRRR6nffvtaVCuRRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVuAF_15vgrengbe_genvgfVF7_R9ersreraprRRR5inyhrRiR4glcrRF7_F7_:
 nop
@@ -20408,7 +20408,7 @@
 b__M14CQS_AnzrQrpbqrEXA5skpeg18FgevatIvrjGrzcyngrVpRR:
 nop
 .text
-.globl b__MAFg3__114__fcyvg_ohssreVCwEAF_9nyybpngbeVF1_RRR10chfu_sebagREXF1_
+.weak b__MAFg3__114__fcyvg_ohssreVCwEAF_9nyybpngbeVF1_RRR10chfu_sebagREXF1_
 .type b__MAFg3__114__fcyvg_ohssreVCwEAF_9nyybpngbeVF1_RRR10chfu_sebagREXF1_,%function
 b__MAFg3__114__fcyvg_ohssreVCwEAF_9nyybpngbeVF1_RRR10chfu_sebagREXF1_:
 nop
@@ -20653,7 +20653,7 @@
 b__MA11PCQS_AhzoreP1Rs:
 nop
 .text
-.globl b__MA6cqsvhz10ZnxrHavdhrV11PCQS_FgernzWQavAFg3__110havdhr_cgeV15PCQS_QvpgvbanelAF2_14qrsnhyg_qryrgrVF4_RRRRRRRAF_8vagreany16ZnxrHavdhrErfhygVG_R6FpnyneRQcBG0_
+.weak b__MA6cqsvhz10ZnxrHavdhrV11PCQS_FgernzWQavAFg3__110havdhr_cgeV15PCQS_QvpgvbanelAF2_14qrsnhyg_qryrgrVF4_RRRRRRRAF_8vagreany16ZnxrHavdhrErfhygVG_R6FpnyneRQcBG0_
 .type b__MA6cqsvhz10ZnxrHavdhrV11PCQS_FgernzWQavAFg3__110havdhr_cgeV15PCQS_QvpgvbanelAF2_14qrsnhyg_qryrgrVF4_RRRRRRRAF_8vagreany16ZnxrHavdhrErfhygVG_R6FpnyneRQcBG0_,%function
 b__MA6cqsvhz10ZnxrHavdhrV11PCQS_FgernzWQavAFg3__110havdhr_cgeV15PCQS_QvpgvbanelAF2_14qrsnhyg_qryrgrVF4_RRRRRRRAF_8vagreany16ZnxrHavdhrErfhygVG_R6FpnyneRQcBG0_:
 nop
@@ -20663,7 +20663,7 @@
 b__MA12PCQS_Perngbe15JevgrQbp_Fgntr2Ri:
 nop
 .text
-.globl b__MAX5skpeg18FgevatQngnGrzcyngrVpR17PnaBcrengrVaCynprRz
+.weak b__MAX5skpeg18FgevatQngnGrzcyngrVpR17PnaBcrengrVaCynprRz
 .type b__MAX5skpeg18FgevatQngnGrzcyngrVpR17PnaBcrengrVaCynprRz,%function
 b__MAX5skpeg18FgevatQngnGrzcyngrVpR17PnaBcrengrVaCynprRz:
 nop
@@ -20883,7 +20883,7 @@
 b__MA26PSSY_VagrenpgvirSbezSvyyre13Naabg_UvgGrfgRC16PCQSFQX_CntrIvrjC13PCQSFQX_NaabgEX13PSK_CGrzcyngrVsR:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA16PSK_PGGTFHOGnoyr14GYnatFlfErpbeqRAF_9nyybpngbeVF2_RRRP2Rz
+.weak b__MAFg3__16irpgbeVA16PSK_PGGTFHOGnoyr14GYnatFlfErpbeqRAF_9nyybpngbeVF2_RRRP2Rz
 .type b__MAFg3__16irpgbeVA16PSK_PGGTFHOGnoyr14GYnatFlfErpbeqRAF_9nyybpngbeVF2_RRRP2Rz,%function
 b__MAFg3__16irpgbeVA16PSK_PGGTFHOGnoyr14GYnatFlfErpbeqRAF_9nyybpngbeVF2_RRRP2Rz:
 nop
@@ -20898,7 +20898,7 @@
 b__MA5skpeg10OlgrFgevatP1REXF0_:
 nop
 .text
-.globl b__MAFg3__113zbir_onpxjneqVCAF_10havdhr_cgeV15PCQS_CntrBowrpgAF_14qrsnhyg_qryrgrVF2_RRRRF5_F6_EF5_CF6_yYy512RRRAF_16__qrdhr_vgrengbeVG0_G1_G2_G3_G4_KG5_RRRG_FT_FS_CAF_9ranoyr_vsVKfe27__vf_enaqbz_npprff_vgrengbeVFT_RR5inyhrRiR4glcrR
+.weak b__MAFg3__113zbir_onpxjneqVCAF_10havdhr_cgeV15PCQS_CntrBowrpgAF_14qrsnhyg_qryrgrVF2_RRRRF5_F6_EF5_CF6_yYy512RRRAF_16__qrdhr_vgrengbeVG0_G1_G2_G3_G4_KG5_RRRG_FT_FS_CAF_9ranoyr_vsVKfe27__vf_enaqbz_npprff_vgrengbeVFT_RR5inyhrRiR4glcrR
 .type b__MAFg3__113zbir_onpxjneqVCAF_10havdhr_cgeV15PCQS_CntrBowrpgAF_14qrsnhyg_qryrgrVF2_RRRRF5_F6_EF5_CF6_yYy512RRRAF_16__qrdhr_vgrengbeVG0_G1_G2_G3_G4_KG5_RRRG_FT_FS_CAF_9ranoyr_vsVKfe27__vf_enaqbz_npprff_vgrengbeVFT_RR5inyhrRiR4glcrR,%function
 b__MAFg3__113zbir_onpxjneqVCAF_10havdhr_cgeV15PCQS_CntrBowrpgAF_14qrsnhyg_qryrgrVF2_RRRRF5_F6_EF5_CF6_yYy512RRRAF_16__qrdhr_vgrengbeVG0_G1_G2_G3_G4_KG5_RRRG_FT_FS_CAF_9ranoyr_vsVKfe27__vf_enaqbz_npprff_vgrengbeVFT_RR5inyhrRiR4glcrR:
 nop
@@ -20953,7 +20953,7 @@
 b__MGI13PSK_OvanelOhs:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__16__fbegVECSoCX13PCQSFQX_NaabgF3_RCCF1_RRiG0_F9_G_
+.weak b__MAFg3__16__fbegVECSoCX13PCQSFQX_NaabgF3_RCCF1_RRiG0_F9_G_
 .type b__MAFg3__16__fbegVECSoCX13PCQSFQX_NaabgF3_RCCF1_RRiG0_F9_G_,%function
 b__MAFg3__16__fbegVECSoCX13PCQSFQX_NaabgF3_RCCF1_RRiG0_F9_G_:
 nop
@@ -20998,7 +20998,7 @@
 b__MA17PCQS_FgernzCnefreP2RCXuw:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_10havdhr_cgeV15PCQS_GrkgBowrpgAF_14qrsnhyg_qryrgrVF2_RRRRAF_9nyybpngbeVF5_RRR8__nccraqRz
+.weak b__MAFg3__16irpgbeVAF_10havdhr_cgeV15PCQS_GrkgBowrpgAF_14qrsnhyg_qryrgrVF2_RRRRAF_9nyybpngbeVF5_RRR8__nccraqRz
 .type b__MAFg3__16irpgbeVAF_10havdhr_cgeV15PCQS_GrkgBowrpgAF_14qrsnhyg_qryrgrVF2_RRRRAF_9nyybpngbeVF5_RRR8__nccraqRz,%function
 b__MAFg3__16irpgbeVAF_10havdhr_cgeV15PCQS_GrkgBowrpgAF_14qrsnhyg_qryrgrVF2_RRRRAF_9nyybpngbeVF5_RRR8__nccraqRz:
 nop
@@ -21008,7 +21008,7 @@
 b__MA15PCQS_PbybeFcnpr4YbnqRC13PCQS_QbphzragC11PCQS_BowrpgCAFg3__13frgVF3_AF4_4yrffVF3_RRAF4_9nyybpngbeVF3_RRRR:
 nop
 .text
-.globl b__MA5skpeg18FgevatIvrjGrzcyngrVjRP2REXAFg3__16irpgbeVwAF2_9nyybpngbeVwRRRR
+.weak b__MA5skpeg18FgevatIvrjGrzcyngrVjRP2REXAFg3__16irpgbeVwAF2_9nyybpngbeVwRRRR
 .type b__MA5skpeg18FgevatIvrjGrzcyngrVjRP2REXAFg3__16irpgbeVwAF2_9nyybpngbeVwRRRR,%function
 b__MA5skpeg18FgevatIvrjGrzcyngrVjRP2REXAFg3__16irpgbeVwAF2_9nyybpngbeVwRRRR:
 nop
@@ -21238,7 +21238,7 @@
 b__MA21PCQS_CntrBowrpgUbyqreQ2Ri:
 nop
 .text
-.globl b__MAX5skpeg18FgevatIvrjGrzcyngrVpRvkRz
+.weak b__MAX5skpeg18FgevatIvrjGrzcyngrVpRvkRz
 .type b__MAX5skpeg18FgevatIvrjGrzcyngrVpRvkRz,%function
 b__MAX5skpeg18FgevatIvrjGrzcyngrVpRvkRz:
 nop
@@ -21483,7 +21483,7 @@
 b__MA22PSK_FpnayvarPbzcbfvgbe21PbzcbfvgrOlgrZnfxYvarRCuCXuvF2_F0_:
 nop
 .data
-.globl b__MGVFg9rkprcgvba
+.weak b__MGVFg9rkprcgvba
 .type b__MGVFg9rkprcgvba,%object
 b__MGVFg9rkprcgvba:
 .space __SIZEOF_POINTER__
@@ -21493,7 +21493,7 @@
 b_SCQSCntr_TrgZrqvnObk:
 nop
 .text
-.globl b__MAFg3__15qrdhrVyAF_9nyybpngbeVyRRR19__nqq_onpx_pncnpvglRi
+.weak b__MAFg3__15qrdhrVyAF_9nyybpngbeVyRRR19__nqq_onpx_pncnpvglRi
 .type b__MAFg3__15qrdhrVyAF_9nyybpngbeVyRRR19__nqq_onpx_pncnpvglRi,%function
 b__MAFg3__15qrdhrVyAF_9nyybpngbeVyRRR19__nqq_onpx_pncnpvglRi:
 nop
@@ -21513,7 +21513,7 @@
 b__MAX16PCQS_QbpCntrQngn14SvaqCnggreaCgeRC11PCQS_Bowrpg:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_10havdhr_cgeV11PCQS_BowrpgAF_14qrsnhyg_qryrgrVF2_RRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_
+.weak b__MAFg3__16irpgbeVAF_10havdhr_cgeV11PCQS_BowrpgAF_14qrsnhyg_qryrgrVF2_RRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_
 .type b__MAFg3__16irpgbeVAF_10havdhr_cgeV11PCQS_BowrpgAF_14qrsnhyg_qryrgrVF2_RRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_,%function
 b__MAFg3__16irpgbeVAF_10havdhr_cgeV11PCQS_BowrpgAF_14qrsnhyg_qryrgrVF2_RRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_:
 nop
@@ -21593,7 +21593,7 @@
 b__MA14PWOvt2_TEQCebp27qrpbqr_Nevgu_Grzcyngr2_bcg3RC12PWOvt2_VzntrC19PWOvt2_NevguQrpbqreC13WOvt2NevguPgkC18VSK_CnhfrVaqvpngbe:
 nop
 .text
-.globl b__MAFg3__16irpgbeV22PCJY_RqvgVzcy_YvarErpgAF_9nyybpngbeVF1_RRR24__rzcynpr_onpx_fybj_cnguVWF1_RRRiQcBG_
+.weak b__MAFg3__16irpgbeV22PCJY_RqvgVzcy_YvarErpgAF_9nyybpngbeVF1_RRR24__rzcynpr_onpx_fybj_cnguVWF1_RRRiQcBG_
 .type b__MAFg3__16irpgbeV22PCJY_RqvgVzcy_YvarErpgAF_9nyybpngbeVF1_RRR24__rzcynpr_onpx_fybj_cnguVWF1_RRRiQcBG_,%function
 b__MAFg3__16irpgbeV22PCJY_RqvgVzcy_YvarErpgAF_9nyybpngbeVF1_RRR24__rzcynpr_onpx_fybj_cnguVWF1_RRRiQcBG_:
 nop
@@ -21608,7 +21608,7 @@
 b__MA15PCQS_Qvpgvbanel9ErzbirSbeREXA5skpeg10OlgrFgevatR:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA9PCQS_PZnc9PbqrEnatrRAF_9nyybpngbeVF2_RRR6nffvtaVCF2_RRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF2_AF_15vgrengbe_genvgfVF9_R9ersreraprRRR5inyhrRiR4glcrRF9_F9_
+.weak b__MAFg3__16irpgbeVA9PCQS_PZnc9PbqrEnatrRAF_9nyybpngbeVF2_RRR6nffvtaVCF2_RRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF2_AF_15vgrengbe_genvgfVF9_R9ersreraprRRR5inyhrRiR4glcrRF9_F9_
 .type b__MAFg3__16irpgbeVA9PCQS_PZnc9PbqrEnatrRAF_9nyybpngbeVF2_RRR6nffvtaVCF2_RRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF2_AF_15vgrengbe_genvgfVF9_R9ersreraprRRR5inyhrRiR4glcrRF9_F9_,%function
 b__MAFg3__16irpgbeVA9PCQS_PZnc9PbqrEnatrRAF_9nyybpngbeVF2_RRR6nffvtaVCF2_RRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF2_AF_15vgrengbe_genvgfVF9_R9ersreraprRRR5inyhrRiR4glcrRF9_F9_:
 nop
@@ -21638,7 +21638,7 @@
 b__MA16PSK_EraqreQrivpr18FrgPyvc_CnguFgebxrRCX12PSK_CnguQngnCX10PSK_ZngevkCX18PSK_TencuFgngrQngn:
 nop
 .text
-.globl b__MAX5skpeg18FgevatIvrjGrzcyngrVpR5ortvaRi
+.weak b__MAX5skpeg18FgevatIvrjGrzcyngrVpR5ortvaRi
 .type b__MAX5skpeg18FgevatIvrjGrzcyngrVpR5ortvaRi,%function
 b__MAX5skpeg18FgevatIvrjGrzcyngrVpR5ortvaRi:
 nop
@@ -21738,7 +21738,7 @@
 b__MA11PSK_SbagZte11EryrnfrSnprRC11SG_SnprErp_:
 nop
 .text
-.globl b__MAFg3__15qrdhrVAF_10havdhr_cgeV15PCQS_CntrBowrpgAF_14qrsnhyg_qryrgrVF2_RRRRAF_9nyybpngbeVF5_RRR5renfrRAF_16__qrdhr_vgrengbeVF5_CXF5_EFN_CXFO_yYy512RRR
+.weak b__MAFg3__15qrdhrVAF_10havdhr_cgeV15PCQS_CntrBowrpgAF_14qrsnhyg_qryrgrVF2_RRRRAF_9nyybpngbeVF5_RRR5renfrRAF_16__qrdhr_vgrengbeVF5_CXF5_EFN_CXFO_yYy512RRR
 .type b__MAFg3__15qrdhrVAF_10havdhr_cgeV15PCQS_CntrBowrpgAF_14qrsnhyg_qryrgrVF2_RRRRAF_9nyybpngbeVF5_RRR5renfrRAF_16__qrdhr_vgrengbeVF5_CXF5_EFN_CXFO_yYy512RRR,%function
 b__MAFg3__15qrdhrVAF_10havdhr_cgeV15PCQS_CntrBowrpgAF_14qrsnhyg_qryrgrVF2_RRRRAF_9nyybpngbeVF5_RRR5renfrRAF_16__qrdhr_vgrengbeVF5_CXF5_EFN_CXFO_yYy512RRR:
 nop
@@ -21783,7 +21783,7 @@
 b__MA16PCQSFQX_QngrGvzr7NqqQnlfRf:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA5skpeg10HabjarqCgeV15PCQS_CntrBowrpgRRAF_9nyybpngbeVF4_RRR24__rzcynpr_onpx_fybj_cnguVWCF3_RRRiQcBG_
+.weak b__MAFg3__16irpgbeVA5skpeg10HabjarqCgeV15PCQS_CntrBowrpgRRAF_9nyybpngbeVF4_RRR24__rzcynpr_onpx_fybj_cnguVWCF3_RRRiQcBG_
 .type b__MAFg3__16irpgbeVA5skpeg10HabjarqCgeV15PCQS_CntrBowrpgRRAF_9nyybpngbeVF4_RRR24__rzcynpr_onpx_fybj_cnguVWCF3_RRRiQcBG_,%function
 b__MAFg3__16irpgbeVA5skpeg10HabjarqCgeV15PCQS_CntrBowrpgRRAF_9nyybpngbeVF4_RRR24__rzcynpr_onpx_fybj_cnguVWCF3_RRRiQcBG_:
 nop
@@ -21828,7 +21828,7 @@
 b__MA18PSK_TencuFgngrQngn12FrgQnfuPbhagRv:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrV8SbagQngnA5skpeg10OlgrFgevatRRRAF_19__znc_inyhr_pbzcnerVF2_F5_AF_4yrffVF2_RRYo1RRRAF_9nyybpngbeVF5_RRR7qrfgeblRCAF_11__gerr_abqrVF5_CiRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrV8SbagQngnA5skpeg10OlgrFgevatRRRAF_19__znc_inyhr_pbzcnerVF2_F5_AF_4yrffVF2_RRYo1RRRAF_9nyybpngbeVF5_RRR7qrfgeblRCAF_11__gerr_abqrVF5_CiRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrV8SbagQngnA5skpeg10OlgrFgevatRRRAF_19__znc_inyhr_pbzcnerVF2_F5_AF_4yrffVF2_RRYo1RRRAF_9nyybpngbeVF5_RRR7qrfgeblRCAF_11__gerr_abqrVF5_CiRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrV8SbagQngnA5skpeg10OlgrFgevatRRRAF_19__znc_inyhr_pbzcnerVF2_F5_AF_4yrffVF2_RRYo1RRRAF_9nyybpngbeVF5_RRR7qrfgeblRCAF_11__gerr_abqrVF5_CiRR:
 nop
@@ -21938,7 +21938,7 @@
 b__MA14PCQS_QVOFbhepr10QrgnpuZnfxRi:
 nop
 .text
-.globl b__MAFg3__16irpgbeVC23PSCS_FxvnSbagQrfpevcgbeAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVF2_RRiBG_
+.weak b__MAFg3__16irpgbeVC23PSCS_FxvnSbagQrfpevcgbeAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVF2_RRiBG_
 .type b__MAFg3__16irpgbeVC23PSCS_FxvnSbagQrfpevcgbeAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVF2_RRiBG_,%function
 b__MAFg3__16irpgbeVC23PSCS_FxvnSbagQrfpevcgbeAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVF2_RRiBG_:
 nop
@@ -21948,7 +21948,7 @@
 b__MA17PCQS_FgernzCnefre11TrgArkgJbeqREo:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_10havdhr_cgeVA14PCQS_QngnNinvy8CntrAbqrRAF_14qrsnhyg_qryrgrVF3_RRRRAF_9nyybpngbeVF6_RRR21__chfu_onpx_fybj_cnguVF6_RRiBG_
+.weak b__MAFg3__16irpgbeVAF_10havdhr_cgeVA14PCQS_QngnNinvy8CntrAbqrRAF_14qrsnhyg_qryrgrVF3_RRRRAF_9nyybpngbeVF6_RRR21__chfu_onpx_fybj_cnguVF6_RRiBG_
 .type b__MAFg3__16irpgbeVAF_10havdhr_cgeVA14PCQS_QngnNinvy8CntrAbqrRAF_14qrsnhyg_qryrgrVF3_RRRRAF_9nyybpngbeVF6_RRR21__chfu_onpx_fybj_cnguVF6_RRiBG_,%function
 b__MAFg3__16irpgbeVAF_10havdhr_cgeVA14PCQS_QngnNinvy8CntrAbqrRAF_14qrsnhyg_qryrgrVF3_RRRRAF_9nyybpngbeVF6_RRR21__chfu_onpx_fybj_cnguVF6_RRiBG_:
 nop
@@ -21963,7 +21963,7 @@
 b__MGI11PCQS_Ahzore:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__15qrdhrVwAF_9nyybpngbeVwRRR13fuevax_gb_svgRi
+.weak b__MAFg3__15qrdhrVwAF_9nyybpngbeVwRRR13fuevax_gb_svgRi
 .type b__MAFg3__15qrdhrVwAF_9nyybpngbeVwRRR13fuevax_gb_svgRi,%function
 b__MAFg3__15qrdhrVwAF_9nyybpngbeVwRRR13fuevax_gb_svgRi:
 nop
@@ -22063,7 +22063,7 @@
 b__M23PELCG_NepSbhePelcgOybpxCuwCXuw:
 nop
 .text
-.globl b__MAFg3__16irpgbeVC14PCQS_Glcr3SbagAF_9nyybpngbeVF2_RRR6nffvtaVCF2_RRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF2_AF_15vgrengbe_genvgfVF9_R9ersreraprRRR5inyhrRiR4glcrRF9_F9_
+.weak b__MAFg3__16irpgbeVC14PCQS_Glcr3SbagAF_9nyybpngbeVF2_RRR6nffvtaVCF2_RRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF2_AF_15vgrengbe_genvgfVF9_R9ersreraprRRR5inyhrRiR4glcrRF9_F9_
 .type b__MAFg3__16irpgbeVC14PCQS_Glcr3SbagAF_9nyybpngbeVF2_RRR6nffvtaVCF2_RRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF2_AF_15vgrengbe_genvgfVF9_R9ersreraprRRR5inyhrRiR4glcrRF9_F9_,%function
 b__MAFg3__16irpgbeVC14PCQS_Glcr3SbagAF_9nyybpngbeVF2_RRR6nffvtaVCF2_RRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF2_AF_15vgrengbe_genvgfVF9_R9ersreraprRRR5inyhrRiR4glcrRF9_F9_:
 nop
@@ -22338,7 +22338,7 @@
 b__MA8PCJY_Jaq10FrgPncgherRi:
 nop
 .text
-.globl b__MA5skpeg18FgevatQngnGrzcyngrVpR6PerngrREXF1_
+.weak b__MA5skpeg18FgevatQngnGrzcyngrVpR6PerngrREXF1_
 .type b__MA5skpeg18FgevatQngnGrzcyngrVpR6PerngrREXF1_,%function
 b__MA5skpeg18FgevatQngnGrzcyngrVpR6PerngrREXF1_:
 nop
@@ -22378,7 +22378,7 @@
 b__MA17PSK_VzntrEraqrereQ2Ri:
 nop
 .text
-.globl b__MAX5skpeg18FgevatIvrjGrzcyngrVpR7enj_fgeRi
+.weak b__MAX5skpeg18FgevatIvrjGrzcyngrVpR7enj_fgeRi
 .type b__MAX5skpeg18FgevatIvrjGrzcyngrVpR7enj_fgeRi,%function
 b__MAX5skpeg18FgevatIvrjGrzcyngrVpR7enj_fgeRi:
 nop
@@ -22473,7 +22473,7 @@
 b__MA13PCIG_JbeqVasbQ1Ri:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVA5skpeg10OlgrFgevatRAF_10havdhr_cgeV11PGGSbagQrfpAF_14qrsnhyg_qryrgrVF5_RRRRRRAF_19__znc_inyhr_pbzcnerVF3_F9_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF9_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVF9_CAF_11__gerr_abqrVF9_CiRRyRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVA5skpeg10OlgrFgevatRAF_10havdhr_cgeV11PGGSbagQrfpAF_14qrsnhyg_qryrgrVF5_RRRRRRAF_19__znc_inyhr_pbzcnerVF3_F9_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF9_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVF9_CAF_11__gerr_abqrVF9_CiRRyRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVA5skpeg10OlgrFgevatRAF_10havdhr_cgeV11PGGSbagQrfpAF_14qrsnhyg_qryrgrVF5_RRRRRRAF_19__znc_inyhr_pbzcnerVF3_F9_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF9_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVF9_CAF_11__gerr_abqrVF9_CiRRyRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVA5skpeg10OlgrFgevatRAF_10havdhr_cgeV11PGGSbagQrfpAF_14qrsnhyg_qryrgrVF5_RRRRRRAF_19__znc_inyhr_pbzcnerVF3_F9_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF9_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVF9_CAF_11__gerr_abqrVF9_CiRRyRR:
 nop
@@ -22603,7 +22603,7 @@
 b__MA13PCJY_RqvgVzcy12FrgCyngrErpgREX13PSK_SybngErpg:
 nop
 .text
-.globl b__MA5skpeg18FgevatIvrjGrzcyngrVpRP2REXF1_
+.weak b__MA5skpeg18FgevatIvrjGrzcyngrVpRP2REXF1_
 .type b__MA5skpeg18FgevatIvrjGrzcyngrVpRP2REXF1_,%function
 b__MA5skpeg18FgevatIvrjGrzcyngrVpRP2REXF1_:
 nop
@@ -22913,7 +22913,7 @@
 b__MA13PSK_FhofgSbagP2Ri:
 nop
 .text
-.globl b__MAX5skpeg18FgevatIvrjGrzcyngrVpR5TrgVQRi
+.weak b__MAX5skpeg18FgevatIvrjGrzcyngrVpR5TrgVQRi
 .type b__MAX5skpeg18FgevatIvrjGrzcyngrVpR5TrgVQRi,%function
 b__MAX5skpeg18FgevatIvrjGrzcyngrVpR5TrgVQRi:
 nop
@@ -22923,7 +22923,7 @@
 b_t_SKPZNC_Rkg_EXFW_I_2:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__16irpgbeVAF_10havdhr_cgeV13PCQS_ShapgvbaAF_14qrsnhyg_qryrgrVF2_RRRRAF_9nyybpngbeVF5_RRR8__nccraqRz
+.weak b__MAFg3__16irpgbeVAF_10havdhr_cgeV13PCQS_ShapgvbaAF_14qrsnhyg_qryrgrVF2_RRRRAF_9nyybpngbeVF5_RRR8__nccraqRz
 .type b__MAFg3__16irpgbeVAF_10havdhr_cgeV13PCQS_ShapgvbaAF_14qrsnhyg_qryrgrVF2_RRRRAF_9nyybpngbeVF5_RRR8__nccraqRz,%function
 b__MAFg3__16irpgbeVAF_10havdhr_cgeV13PCQS_ShapgvbaAF_14qrsnhyg_qryrgrVF2_RRRRAF_9nyybpngbeVF5_RRR8__nccraqRz:
 nop
@@ -22998,7 +22998,7 @@
 b__MA11PSKRH_PyrneP1RC13PCJY_RqvgVzcyEX14PCIG_JbeqEnatrEXA5skpeg10JvqrFgevatR:
 nop
 .text
-.globl b__MAX5skpeg18FgevatIvrjGrzcyngrVjR18hagrezvangrq_p_fgeRi
+.weak b__MAX5skpeg18FgevatIvrjGrzcyngrVjR18hagrezvangrq_p_fgeRi
 .type b__MAX5skpeg18FgevatIvrjGrzcyngrVjR18hagrezvangrq_p_fgeRi,%function
 b__MAX5skpeg18FgevatIvrjGrzcyngrVjR18hagrezvangrq_p_fgeRi:
 nop
@@ -23108,7 +23108,7 @@
 b__MA17PCQS_EraqreFgnghfP1Ri:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA12PSK_OvqvPune7FrtzragRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVF2_RRiBG_
+.weak b__MAFg3__16irpgbeVA12PSK_OvqvPune7FrtzragRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVF2_RRiBG_
 .type b__MAFg3__16irpgbeVA12PSK_OvqvPune7FrtzragRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVF2_RRiBG_,%function
 b__MAFg3__16irpgbeVA12PSK_OvqvPune7FrtzragRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVF2_RRiBG_:
 nop
@@ -23143,7 +23143,7 @@
 b__MA14PCQS_CnggreaPF22VavgvnyvmrFgbpxCnggreaRi:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_10havdhr_cgeV14PCQS_NyyFgngrfAF_14qrsnhyg_qryrgrVF2_RRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_
+.weak b__MAFg3__16irpgbeVAF_10havdhr_cgeV14PCQS_NyyFgngrfAF_14qrsnhyg_qryrgrVF2_RRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_
 .type b__MAFg3__16irpgbeVAF_10havdhr_cgeV14PCQS_NyyFgngrfAF_14qrsnhyg_qryrgrVF2_RRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_,%function
 b__MAFg3__16irpgbeVAF_10havdhr_cgeV14PCQS_NyyFgngrfAF_14qrsnhyg_qryrgrVF2_RRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_:
 nop
@@ -23273,7 +23273,7 @@
 b__MGI26PSSY_VagrenpgvirSbezSvyyre:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVC15PCQS_QvpgvbanelA5skpeg9ErgnvaCgeV18PCQS_FgehpgRyrzragRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF8_RRR14__renfr_havdhrVF3_RRzEXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVC15PCQS_QvpgvbanelA5skpeg9ErgnvaCgeV18PCQS_FgehpgRyrzragRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF8_RRR14__renfr_havdhrVF3_RRzEXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVC15PCQS_QvpgvbanelA5skpeg9ErgnvaCgeV18PCQS_FgehpgRyrzragRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF8_RRR14__renfr_havdhrVF3_RRzEXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVC15PCQS_QvpgvbanelA5skpeg9ErgnvaCgeV18PCQS_FgehpgRyrzragRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF8_RRR14__renfr_havdhrVF3_RRzEXG_:
 nop
@@ -23533,7 +23533,7 @@
 b__MAX13PCQS_GrkgCntr12TrgPuneJvqguRwC9PCQS_Sbag:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA5skpeg10OlgrFgevatRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVEXF2_RRiBG_
+.weak b__MAFg3__16irpgbeVA5skpeg10OlgrFgevatRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVEXF2_RRiBG_
 .type b__MAFg3__16irpgbeVA5skpeg10OlgrFgevatRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVEXF2_RRiBG_,%function
 b__MAFg3__16irpgbeVA5skpeg10OlgrFgevatRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVEXF2_RRiBG_:
 nop
@@ -23543,7 +23543,7 @@
 b__MA17PCQS_TrarenyFgngr9FrgBCZbqrRv:
 nop
 .text
-.globl b__MAFg3__16irpgbeVyAF_9nyybpngbeVyRRR21__chfu_onpx_fybj_cnguVEXyRRiBG_
+.weak b__MAFg3__16irpgbeVyAF_9nyybpngbeVyRRR21__chfu_onpx_fybj_cnguVEXyRRiBG_
 .type b__MAFg3__16irpgbeVyAF_9nyybpngbeVyRRR21__chfu_onpx_fybj_cnguVEXyRRiBG_,%function
 b__MAFg3__16irpgbeVyAF_9nyybpngbeVyRRR21__chfu_onpx_fybj_cnguVEXyRRiBG_:
 nop
@@ -23623,7 +23623,7 @@
 b__MA13PSSY_PbzobObkP2RC27PCQSFQX_SbezSvyyRaivebazragC14PCQSFQX_Jvqtrg:
 nop
 .text
-.globl b__MAFg3__16irpgbeVsAF_9nyybpngbeVsRRR6nffvtaVCsRRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVsAF_15vgrengbe_genvgfVF7_R9ersreraprRRR5inyhrRiR4glcrRF7_F7_
+.weak b__MAFg3__16irpgbeVsAF_9nyybpngbeVsRRR6nffvtaVCsRRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVsAF_15vgrengbe_genvgfVF7_R9ersreraprRRR5inyhrRiR4glcrRF7_F7_
 .type b__MAFg3__16irpgbeVsAF_9nyybpngbeVsRRR6nffvtaVCsRRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVsAF_15vgrengbe_genvgfVF7_R9ersreraprRRR5inyhrRiR4glcrRF7_F7_,%function
 b__MAFg3__16irpgbeVsAF_9nyybpngbeVsRRR6nffvtaVCsRRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVsAF_15vgrengbe_genvgfVF7_R9ersreraprRRR5inyhrRiR4glcrRF7_F7_:
 nop
@@ -23713,7 +23713,7 @@
 b__MA17PPbqrp_WcrtZbqhyr13TrgNinvyVachgRCAF_7PbagrkgRCCu:
 nop
 .text
-.globl b__MA5skpeg18FgevatIvrjGrzcyngrVjRP1RCXj
+.weak b__MA5skpeg18FgevatIvrjGrzcyngrVjRP1RCXj
 .type b__MA5skpeg18FgevatIvrjGrzcyngrVjRP1RCXj,%function
 b__MA5skpeg18FgevatIvrjGrzcyngrVjRP1RCXj:
 nop
@@ -23753,7 +23753,7 @@
 b__MA15PCQS_NcFrggvatfQ2Ri:
 nop
 .text
-.globl b__MAFg3__16irpgbeV13PSK_CGrzcyngrVsRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVF2_RRiBG_
+.weak b__MAFg3__16irpgbeV13PSK_CGrzcyngrVsRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVF2_RRiBG_
 .type b__MAFg3__16irpgbeV13PSK_CGrzcyngrVsRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVF2_RRiBG_,%function
 b__MAFg3__16irpgbeV13PSK_CGrzcyngrVsRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVF2_RRiBG_:
 nop
@@ -23768,7 +23768,7 @@
 b__MA12PCQS_PerngbeP1RC13PCQS_QbphzragEXA5skpeg9ErgnvaCgeV15VSK_JevgrFgernzRR:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_4cnveVvvRRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVF2_RRiBG_
+.weak b__MAFg3__16irpgbeVAF_4cnveVvvRRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVF2_RRiBG_
 .type b__MAFg3__16irpgbeVAF_4cnveVvvRRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVF2_RRiBG_,%function
 b__MAFg3__16irpgbeVAF_4cnveVvvRRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVF2_RRiBG_:
 nop
@@ -23898,7 +23898,7 @@
 b__MA15PSSY_SbezSvyyre16FrgSbphfSbeNaabgRC13PCQSFQX_Naabgw:
 nop
 .text
-.globl b__MA6cqsvhz10ZnxrHavdhrV11PCQS_FgernzWAFg3__110havdhr_cgeVu13SkSerrQryrgreRRvAF3_V15PCQS_QvpgvbanelAF2_14qrsnhyg_qryrgrVF6_RRRRRRRAF_8vagreany16ZnxrHavdhrErfhygVG_R6FpnyneRQcBG0_
+.weak b__MA6cqsvhz10ZnxrHavdhrV11PCQS_FgernzWAFg3__110havdhr_cgeVu13SkSerrQryrgreRRvAF3_V15PCQS_QvpgvbanelAF2_14qrsnhyg_qryrgrVF6_RRRRRRRAF_8vagreany16ZnxrHavdhrErfhygVG_R6FpnyneRQcBG0_
 .type b__MA6cqsvhz10ZnxrHavdhrV11PCQS_FgernzWAFg3__110havdhr_cgeVu13SkSerrQryrgreRRvAF3_V15PCQS_QvpgvbanelAF2_14qrsnhyg_qryrgrVF6_RRRRRRRAF_8vagreany16ZnxrHavdhrErfhygVG_R6FpnyneRQcBG0_,%function
 b__MA6cqsvhz10ZnxrHavdhrV11PCQS_FgernzWAFg3__110havdhr_cgeVu13SkSerrQryrgreRRvAF3_V15PCQS_QvpgvbanelAF2_14qrsnhyg_qryrgrVF6_RRRRRRRAF_8vagreany16ZnxrHavdhrErfhygVG_R6FpnyneRQcBG0_:
 nop
@@ -24108,7 +24108,7 @@
 b__MA13PSCS_FxvnSbag6ErgnvaRi:
 nop
 .text
-.globl b__MAFg3__16irpgbeV15SKGRKG_TYLCUCBFAF_9nyybpngbeVF1_RRRP2Rz
+.weak b__MAFg3__16irpgbeV15SKGRKG_TYLCUCBFAF_9nyybpngbeVF1_RRRP2Rz
 .type b__MAFg3__16irpgbeV15SKGRKG_TYLCUCBFAF_9nyybpngbeVF1_RRRP2Rz,%function
 b__MAFg3__16irpgbeV15SKGRKG_TYLCUCBFAF_9nyybpngbeVF1_RRRP2Rz:
 nop
@@ -24118,7 +24118,7 @@
 b__MA14PCQSFQX_JvqtrgP1RC10PCQS_NaabgC16PCQSFQX_CntrIvrjC17PCQSFQX_VagreSbez:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrV8SbagQngnA5skpeg10OlgrFgevatRRRAF_19__znc_inyhr_pbzcnerVF2_F5_AF_4yrffVF2_RRYo1RRRAF_9nyybpngbeVF5_RRR25__rzcynpr_havdhr_xrl_netfVF2_WEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXF2_RRRAFU_VWRRRRRRAF_4cnveVAF_15__gerr_vgrengbeVF5_CAF_11__gerr_abqrVF5_CiRRyRRoRREXG_QcBG0_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrV8SbagQngnA5skpeg10OlgrFgevatRRRAF_19__znc_inyhr_pbzcnerVF2_F5_AF_4yrffVF2_RRYo1RRRAF_9nyybpngbeVF5_RRR25__rzcynpr_havdhr_xrl_netfVF2_WEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXF2_RRRAFU_VWRRRRRRAF_4cnveVAF_15__gerr_vgrengbeVF5_CAF_11__gerr_abqrVF5_CiRRyRRoRREXG_QcBG0_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrV8SbagQngnA5skpeg10OlgrFgevatRRRAF_19__znc_inyhr_pbzcnerVF2_F5_AF_4yrffVF2_RRYo1RRRAF_9nyybpngbeVF5_RRR25__rzcynpr_havdhr_xrl_netfVF2_WEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXF2_RRRAFU_VWRRRRRRAF_4cnveVAF_15__gerr_vgrengbeVF5_CAF_11__gerr_abqrVF5_CiRRyRRoRREXG_QcBG0_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrV8SbagQngnA5skpeg10OlgrFgevatRRRAF_19__znc_inyhr_pbzcnerVF2_F5_AF_4yrffVF2_RRYo1RRRAF_9nyybpngbeVF5_RRR25__rzcynpr_havdhr_xrl_netfVF2_WEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXF2_RRRAFU_VWRRRRRRAF_4cnveVAF_15__gerr_vgrengbeVF5_CAF_11__gerr_abqrVF5_CiRRyRRoRREXG_QcBG0_:
 nop
@@ -24148,7 +24148,7 @@
 b__MA23PCQSFQX_NaabgUnaqyreZteQ2Ri:
 nop
 .text
-.globl b__MA6cqsvhz10ZnxrHavdhrV9PCQS_AnzrWEA5skpeg7JrnxCgeVAF2_18FgevatCbbyGrzcyngrVAF2_10OlgrFgevatRRRAFg3__114qrsnhyg_qryrgrVF6_RRRREN7_XpRRRAF_8vagreany16ZnxrHavdhrErfhygVG_R6FpnyneRQcBG0_
+.weak b__MA6cqsvhz10ZnxrHavdhrV9PCQS_AnzrWEA5skpeg7JrnxCgeVAF2_18FgevatCbbyGrzcyngrVAF2_10OlgrFgevatRRRAFg3__114qrsnhyg_qryrgrVF6_RRRREN7_XpRRRAF_8vagreany16ZnxrHavdhrErfhygVG_R6FpnyneRQcBG0_
 .type b__MA6cqsvhz10ZnxrHavdhrV9PCQS_AnzrWEA5skpeg7JrnxCgeVAF2_18FgevatCbbyGrzcyngrVAF2_10OlgrFgevatRRRAFg3__114qrsnhyg_qryrgrVF6_RRRREN7_XpRRRAF_8vagreany16ZnxrHavdhrErfhygVG_R6FpnyneRQcBG0_,%function
 b__MA6cqsvhz10ZnxrHavdhrV9PCQS_AnzrWEA5skpeg7JrnxCgeVAF2_18FgevatCbbyGrzcyngrVAF2_10OlgrFgevatRRRAFg3__114qrsnhyg_qryrgrVF6_RRRREN7_XpRRRAF_8vagreany16ZnxrHavdhrErfhygVG_R6FpnyneRQcBG0_:
 nop
@@ -24243,7 +24243,7 @@
 b__MA24PCQS_FgernzPbagragCnefre13Unaqyr_RBPyvcRi:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVC11PCQS_BowrpgA5skpeg9ErgnvaCgeV17PCQS_GenafsreShapRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF8_RRR7qrfgeblRCAF_11__gerr_abqrVF8_CiRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVC11PCQS_BowrpgA5skpeg9ErgnvaCgeV17PCQS_GenafsreShapRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF8_RRR7qrfgeblRCAF_11__gerr_abqrVF8_CiRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVC11PCQS_BowrpgA5skpeg9ErgnvaCgeV17PCQS_GenafsreShapRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF8_RRR7qrfgeblRCAF_11__gerr_abqrVF8_CiRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVC11PCQS_BowrpgA5skpeg9ErgnvaCgeV17PCQS_GenafsreShapRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF8_RRR7qrfgeblRCAF_11__gerr_abqrVF8_CiRR:
 nop
@@ -24253,7 +24253,7 @@
 b__MA11CQSGRKG_BowQ2Ri:
 nop
 .text
-.globl b__MAX5skpeg18FgevatIvrjGrzcyngrVpR7VfRzcglRi
+.weak b__MAX5skpeg18FgevatIvrjGrzcyngrVpR7VfRzcglRi
 .type b__MAX5skpeg18FgevatIvrjGrzcyngrVpR7VfRzcglRi,%function
 b__MAX5skpeg18FgevatIvrjGrzcyngrVpR7VfRzcglRi:
 nop
@@ -24368,7 +24368,7 @@
 b__MA19PWOvt2_NevguQrpbqreP2RC16PWOvt2_OvgFgernz:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_10havdhr_cgeV12PWOvt2_VzntrAF_14qrsnhyg_qryrgrVF2_RRRRAF_9nyybpngbeVF5_RRRP2Rz
+.weak b__MAFg3__16irpgbeVAF_10havdhr_cgeV12PWOvt2_VzntrAF_14qrsnhyg_qryrgrVF2_RRRRAF_9nyybpngbeVF5_RRRP2Rz
 .type b__MAFg3__16irpgbeVAF_10havdhr_cgeV12PWOvt2_VzntrAF_14qrsnhyg_qryrgrVF2_RRRRAF_9nyybpngbeVF5_RRRP2Rz,%function
 b__MAFg3__16irpgbeVAF_10havdhr_cgeV12PWOvt2_VzntrAF_14qrsnhyg_qryrgrVF2_RRRRAF_9nyybpngbeVF5_RRRP2Rz:
 nop
@@ -24408,12 +24408,12 @@
 b__MA21WOvt2_QbphzragPbagrkgQ2Ri:
 nop
 .text
-.globl b__MA6cqsvhz10ZnxrHavdhrV9PCQS_AnzrWEA5skpeg7JrnxCgeVAF2_18FgevatCbbyGrzcyngrVAF2_10OlgrFgevatRRRAFg3__114qrsnhyg_qryrgrVF6_RRRREN5_XpRRRAF_8vagreany16ZnxrHavdhrErfhygVG_R6FpnyneRQcBG0_
+.weak b__MA6cqsvhz10ZnxrHavdhrV9PCQS_AnzrWEA5skpeg7JrnxCgeVAF2_18FgevatCbbyGrzcyngrVAF2_10OlgrFgevatRRRAFg3__114qrsnhyg_qryrgrVF6_RRRREN5_XpRRRAF_8vagreany16ZnxrHavdhrErfhygVG_R6FpnyneRQcBG0_
 .type b__MA6cqsvhz10ZnxrHavdhrV9PCQS_AnzrWEA5skpeg7JrnxCgeVAF2_18FgevatCbbyGrzcyngrVAF2_10OlgrFgevatRRRAFg3__114qrsnhyg_qryrgrVF6_RRRREN5_XpRRRAF_8vagreany16ZnxrHavdhrErfhygVG_R6FpnyneRQcBG0_,%function
 b__MA6cqsvhz10ZnxrHavdhrV9PCQS_AnzrWEA5skpeg7JrnxCgeVAF2_18FgevatCbbyGrzcyngrVAF2_10OlgrFgevatRRRAFg3__114qrsnhyg_qryrgrVF6_RRRREN5_XpRRRAF_8vagreany16ZnxrHavdhrErfhygVG_R6FpnyneRQcBG0_:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_10havdhr_cgeV11PKZY_BowrpgAF_14qrsnhyg_qryrgrVF2_RRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_
+.weak b__MAFg3__16irpgbeVAF_10havdhr_cgeV11PKZY_BowrpgAF_14qrsnhyg_qryrgrVF2_RRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_
 .type b__MAFg3__16irpgbeVAF_10havdhr_cgeV11PKZY_BowrpgAF_14qrsnhyg_qryrgrVF2_RRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_,%function
 b__MAFg3__16irpgbeVAF_10havdhr_cgeV11PKZY_BowrpgAF_14qrsnhyg_qryrgrVF2_RRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_:
 nop
@@ -24503,7 +24503,7 @@
 b_SCQSNaabg_FrgNggnpuzragCbvagf:
 nop
 .text
-.globl b__MAFg3__15qrdhrVwAF_9nyybpngbeVwRRR19__nqq_onpx_pncnpvglRi
+.weak b__MAFg3__15qrdhrVwAF_9nyybpngbeVwRRR19__nqq_onpx_pncnpvglRi
 .type b__MAFg3__15qrdhrVwAF_9nyybpngbeVwRRR19__nqq_onpx_pncnpvglRi,%function
 b__MAFg3__15qrdhrVwAF_9nyybpngbeVwRRR19__nqq_onpx_pncnpvglRi:
 nop
@@ -24513,7 +24513,7 @@
 b__MA14PCQS_QVOFbhepr13FgnegYbnqZnfxRi:
 nop
 .text
-.globl b__MAFg3__14zbirVC13CNTRPUNE_VASBF1_F2_EF1_CF2_yYy56RRRAF_16__qrdhr_vgrengbeVG0_G1_G2_G3_G4_KG5_RRRG_FP_FO_CAF_9ranoyr_vsVKfe27__vf_enaqbz_npprff_vgrengbeVFP_RR5inyhrRiR4glcrR
+.weak b__MAFg3__14zbirVC13CNTRPUNE_VASBF1_F2_EF1_CF2_yYy56RRRAF_16__qrdhr_vgrengbeVG0_G1_G2_G3_G4_KG5_RRRG_FP_FO_CAF_9ranoyr_vsVKfe27__vf_enaqbz_npprff_vgrengbeVFP_RR5inyhrRiR4glcrR
 .type b__MAFg3__14zbirVC13CNTRPUNE_VASBF1_F2_EF1_CF2_yYy56RRRAF_16__qrdhr_vgrengbeVG0_G1_G2_G3_G4_KG5_RRRG_FP_FO_CAF_9ranoyr_vsVKfe27__vf_enaqbz_npprff_vgrengbeVFP_RR5inyhrRiR4glcrR,%function
 b__MAFg3__14zbirVC13CNTRPUNE_VASBF1_F2_EF1_CF2_yYy56RRRAF_16__qrdhr_vgrengbeVG0_G1_G2_G3_G4_KG5_RRRG_FP_FO_CAF_9ranoyr_vsVKfe27__vf_enaqbz_npprff_vgrengbeVFP_RR5inyhrRiR4glcrR:
 nop
@@ -24528,7 +24528,7 @@
 b__MAX9PSK_Pbybe9GbSKPbybeRv:
 nop
 .text
-.globl b__MAX5skpeg18FgevatIvrjGrzcyngrVpR6PuneNgRz
+.weak b__MAX5skpeg18FgevatIvrjGrzcyngrVpR6PuneNgRz
 .type b__MAX5skpeg18FgevatIvrjGrzcyngrVpR6PuneNgRz,%function
 b__MAX5skpeg18FgevatIvrjGrzcyngrVpR6PuneNgRz:
 nop
@@ -24563,7 +24563,7 @@
 b__MA9PCQS_YvaxP2REXF_:
 nop
 .text
-.globl b__MAFg3__112__qrdhr_onfrVAF_10havdhr_cgeV17VSK_Rqvg_HaqbVgrzAF_14qrsnhyg_qryrgrVF2_RRRRAF_9nyybpngbeVF5_RRR5pyrneRi
+.weak b__MAFg3__112__qrdhr_onfrVAF_10havdhr_cgeV17VSK_Rqvg_HaqbVgrzAF_14qrsnhyg_qryrgrVF2_RRRRAF_9nyybpngbeVF5_RRR5pyrneRi
 .type b__MAFg3__112__qrdhr_onfrVAF_10havdhr_cgeV17VSK_Rqvg_HaqbVgrzAF_14qrsnhyg_qryrgrVF2_RRRRAF_9nyybpngbeVF5_RRR5pyrneRi,%function
 b__MAFg3__112__qrdhr_onfrVAF_10havdhr_cgeV17VSK_Rqvg_HaqbVgrzAF_14qrsnhyg_qryrgrVF2_RRRRAF_9nyybpngbeVF5_RRR5pyrneRi:
 nop
@@ -24593,12 +24593,12 @@
 b__MA15PCQS_FgvgpuShapP2Ri:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_10havdhr_cgeV12PWOvt2_VzntrAF_14qrsnhyg_qryrgrVF2_RRRRAF_9nyybpngbeVF5_RRR8__nccraqRz
+.weak b__MAFg3__16irpgbeVAF_10havdhr_cgeV12PWOvt2_VzntrAF_14qrsnhyg_qryrgrVF2_RRRRAF_9nyybpngbeVF5_RRR8__nccraqRz
 .type b__MAFg3__16irpgbeVAF_10havdhr_cgeV12PWOvt2_VzntrAF_14qrsnhyg_qryrgrVF2_RRRRAF_9nyybpngbeVF5_RRR8__nccraqRz,%function
 b__MAFg3__16irpgbeVAF_10havdhr_cgeV12PWOvt2_VzntrAF_14qrsnhyg_qryrgrVF2_RRRRAF_9nyybpngbeVF5_RRR8__nccraqRz:
 nop
 .text
-.globl b__MAFg3__124__chg_punenpgre_frdhraprVpAF_11pune_genvgfVpRRRREAF_13onfvp_bfgernzVG_G0_RRF7_CXF4_z
+.weak b__MAFg3__124__chg_punenpgre_frdhraprVpAF_11pune_genvgfVpRRRREAF_13onfvp_bfgernzVG_G0_RRF7_CXF4_z
 .type b__MAFg3__124__chg_punenpgre_frdhraprVpAF_11pune_genvgfVpRRRREAF_13onfvp_bfgernzVG_G0_RRF7_CXF4_z,%function
 b__MAFg3__124__chg_punenpgre_frdhraprVpAF_11pune_genvgfVpRRRREAF_13onfvp_bfgernzVG_G0_RRF7_CXF4_z:
 nop
@@ -24733,7 +24733,7 @@
 b__MA20PCQS_VzntrPnpurRagel20FgnegTrgPnpurqOvgzncRC15PCQS_QvpgvbanelF1_owoC17PCQS_EraqreFgnghf:
 nop
 .text
-.globl b__MA5skpeg18FgevatIvrjGrzcyngrVpRP1REp
+.weak b__MA5skpeg18FgevatIvrjGrzcyngrVpRP1REp
 .type b__MA5skpeg18FgevatIvrjGrzcyngrVpRP1REp,%function
 b__MA5skpeg18FgevatIvrjGrzcyngrVpRP1REp:
 nop
@@ -24753,7 +24753,7 @@
 b__MA26PSSY_VagrenpgvirSbezSvyyreP2RC27PCQSFQX_SbezSvyyRaivebazrag:
 nop
 .text
-.globl b__MAFg3__15qrdhrV13CNTRPUNE_VASBAF_9nyybpngbeVF1_RRR19__nqq_onpx_pncnpvglRi
+.weak b__MAFg3__15qrdhrV13CNTRPUNE_VASBAF_9nyybpngbeVF1_RRR19__nqq_onpx_pncnpvglRi
 .type b__MAFg3__15qrdhrV13CNTRPUNE_VASBAF_9nyybpngbeVF1_RRR19__nqq_onpx_pncnpvglRi,%function
 b__MAFg3__15qrdhrV13CNTRPUNE_VASBAF_9nyybpngbeVF1_RRR19__nqq_onpx_pncnpvglRi:
 nop
@@ -24778,7 +24778,7 @@
 b__MA15PCQS_PbybeFgngr9PbybeQngnP2Ri:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_10havdhr_cgeV11PCQS_BowrpgAF_14qrsnhyg_qryrgrVF2_RRRRAF_9nyybpngbeVF5_RRR6vafregRAF_11__jenc_vgreVCXF5_RRBF5_
+.weak b__MAFg3__16irpgbeVAF_10havdhr_cgeV11PCQS_BowrpgAF_14qrsnhyg_qryrgrVF2_RRRRAF_9nyybpngbeVF5_RRR6vafregRAF_11__jenc_vgreVCXF5_RRBF5_
 .type b__MAFg3__16irpgbeVAF_10havdhr_cgeV11PCQS_BowrpgAF_14qrsnhyg_qryrgrVF2_RRRRAF_9nyybpngbeVF5_RRR6vafregRAF_11__jenc_vgreVCXF5_RRBF5_,%function
 b__MAFg3__16irpgbeVAF_10havdhr_cgeV11PCQS_BowrpgAF_14qrsnhyg_qryrgrVF2_RRRRAF_9nyybpngbeVF5_RRR6vafregRAF_11__jenc_vgreVCXF5_RRBF5_:
 nop
@@ -24998,12 +24998,12 @@
 b_SCQSObbxznex_Svaq:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVwAF_10havdhr_cgeV15PSK_TylcuOvgzncAF_14qrsnhyg_qryrgrVF3_RRRRRRAF_19__znc_inyhr_pbzcnerVwF7_AF_4yrffVwRRYo1RRRAF_9nyybpngbeVF7_RRR7qrfgeblRCAF_11__gerr_abqrVF7_CiRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVwAF_10havdhr_cgeV15PSK_TylcuOvgzncAF_14qrsnhyg_qryrgrVF3_RRRRRRAF_19__znc_inyhr_pbzcnerVwF7_AF_4yrffVwRRYo1RRRAF_9nyybpngbeVF7_RRR7qrfgeblRCAF_11__gerr_abqrVF7_CiRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVwAF_10havdhr_cgeV15PSK_TylcuOvgzncAF_14qrsnhyg_qryrgrVF3_RRRRRRAF_19__znc_inyhr_pbzcnerVwF7_AF_4yrffVwRRYo1RRRAF_9nyybpngbeVF7_RRR7qrfgeblRCAF_11__gerr_abqrVF7_CiRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVwAF_10havdhr_cgeV15PSK_TylcuOvgzncAF_14qrsnhyg_qryrgrVF3_RRRRRRAF_19__znc_inyhr_pbzcnerVwF7_AF_4yrffVwRRYo1RRRAF_9nyybpngbeVF7_RRR7qrfgeblRCAF_11__gerr_abqrVF7_CiRR:
 nop
 .text
-.globl b__MA5skpeg18FgevatQngnGrzcyngrVpR12PbclPbagragfRCXpz
+.weak b__MA5skpeg18FgevatQngnGrzcyngrVpR12PbclPbagragfRCXpz
 .type b__MA5skpeg18FgevatQngnGrzcyngrVpR12PbclPbagragfRCXpz,%function
 b__MA5skpeg18FgevatQngnGrzcyngrVpR12PbclPbagragfRCXpz:
 nop
@@ -25168,7 +25168,7 @@
 b__MA14PCQS_Glcr3Sbag11TrgPuneOObkRw:
 nop
 .data
-.globl b__MGIAFg3__117onq_shapgvba_pnyyR
+.weak b__MGIAFg3__117onq_shapgvba_pnyyR
 .type b__MGIAFg3__117onq_shapgvba_pnyyR,%object
 b__MGIAFg3__117onq_shapgvba_pnyyR:
 .space __SIZEOF_POINTER__
@@ -25193,7 +25193,7 @@
 b__MA13PCJY_RqvgPgey17FrgFpebyyCbfvgvbaRs:
 nop
 .text
-.globl b__MA5skpeg18FgevatQngnGrzcyngrVpRP2Rzz
+.weak b__MA5skpeg18FgevatQngnGrzcyngrVpRP2Rzz
 .type b__MA5skpeg18FgevatQngnGrzcyngrVpRP2Rzz,%function
 b__MA5skpeg18FgevatQngnGrzcyngrVpRP2Rzz:
 nop
@@ -25238,7 +25238,7 @@
 b__MA18PCQS_FunqvatBowrpgQ0Ri:
 nop
 .text
-.globl b__MA3ntt18pbai_nqncgbe_iptraVAF_12cngu_fgbentrRAF_10iptra_qnfuRAF_12ahyy_znexrefRR6iregrkRCsF5_
+.weak b__MA3ntt18pbai_nqncgbe_iptraVAF_12cngu_fgbentrRAF_10iptra_qnfuRAF_12ahyy_znexrefRR6iregrkRCsF5_
 .type b__MA3ntt18pbai_nqncgbe_iptraVAF_12cngu_fgbentrRAF_10iptra_qnfuRAF_12ahyy_znexrefRR6iregrkRCsF5_,%function
 b__MA3ntt18pbai_nqncgbe_iptraVAF_12cngu_fgbentrRAF_10iptra_qnfuRAF_12ahyy_znexrefRR6iregrkRCsF5_:
 nop
@@ -25263,7 +25263,7 @@
 b__MA14PCQS_QVOFbhepr13PerngrQrpbqreRi:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVC9PCQS_CntrAF_10havdhr_cgeV16PCQSFQX_CntrIvrjAF_14qrsnhyg_qryrgrVF5_RRRRRRAF_19__znc_inyhr_pbzcnerVF3_F9_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF9_RRR7qrfgeblRCAF_11__gerr_abqrVF9_CiRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVC9PCQS_CntrAF_10havdhr_cgeV16PCQSFQX_CntrIvrjAF_14qrsnhyg_qryrgrVF5_RRRRRRAF_19__znc_inyhr_pbzcnerVF3_F9_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF9_RRR7qrfgeblRCAF_11__gerr_abqrVF9_CiRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVC9PCQS_CntrAF_10havdhr_cgeV16PCQSFQX_CntrIvrjAF_14qrsnhyg_qryrgrVF5_RRRRRRAF_19__znc_inyhr_pbzcnerVF3_F9_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF9_RRR7qrfgeblRCAF_11__gerr_abqrVF9_CiRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVC9PCQS_CntrAF_10havdhr_cgeV16PCQSFQX_CntrIvrjAF_14qrsnhyg_qryrgrVF5_RRRRRRAF_19__znc_inyhr_pbzcnerVF3_F9_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF9_RRR7qrfgeblRCAF_11__gerr_abqrVF9_CiRR:
 nop
@@ -25378,7 +25378,7 @@
 b__MA14PCJY_FpebyyOne13BaYOhggbaQbjaREX13PSK_CGrzcyngrVsRw:
 nop
 .text
-.globl b__MA5skpeg18FgevatIvrjGrzcyngrVjRajRz
+.weak b__MA5skpeg18FgevatIvrjGrzcyngrVjRajRz
 .type b__MA5skpeg18FgevatIvrjGrzcyngrVjRajRz,%function
 b__MA5skpeg18FgevatIvrjGrzcyngrVjRajRz:
 nop
@@ -25583,7 +25583,7 @@
 b__M24PSCS_TrgFxvnQrivprZbqhyri:
 nop
 .text
-.globl b__MAFg3__127__vafregvba_fbeg_vapbzcyrgrVECSoCX13PCQSFQX_NaabgF3_RCCF1_RRoG0_F9_G_
+.weak b__MAFg3__127__vafregvba_fbeg_vapbzcyrgrVECSoCX13PCQSFQX_NaabgF3_RCCF1_RRoG0_F9_G_
 .type b__MAFg3__127__vafregvba_fbeg_vapbzcyrgrVECSoCX13PCQSFQX_NaabgF3_RCCF1_RRoG0_F9_G_,%function
 b__MAFg3__127__vafregvba_fbeg_vapbzcyrgrVECSoCX13PCQSFQX_NaabgF3_RCCF1_RRoG0_F9_G_:
 nop
@@ -25608,7 +25608,7 @@
 b__MAX17PCQSFQX_VagreSbez23TrgCntrVaqrkOlNaabgQvpgRC13PCQS_QbphzragC15PCQS_Qvpgvbanel:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA5skpeg10OlgrFgevatRAF_9nyybpngbeVF2_RRR8__nccraqRz
+.weak b__MAFg3__16irpgbeVA5skpeg10OlgrFgevatRAF_9nyybpngbeVF2_RRR8__nccraqRz
 .type b__MAFg3__16irpgbeVA5skpeg10OlgrFgevatRAF_9nyybpngbeVF2_RRR8__nccraqRz,%function
 b__MAFg3__16irpgbeVA5skpeg10OlgrFgevatRAF_9nyybpngbeVF2_RRR8__nccraqRz:
 nop
@@ -25743,7 +25743,7 @@
 b__MA21PCQSFQX_JvqtrgUnaqyreP2RC27PCQSFQX_SbezSvyyRaivebazrag:
 nop
 .text
-.globl b__MA6cqsvhz10ZnxrHavdhrV9PCQS_AnzrWEA5skpeg7JrnxCgeVAF2_18FgevatCbbyGrzcyngrVAF2_10OlgrFgevatRRRAFg3__114qrsnhyg_qryrgrVF6_RRRREN12_XpRRRAF_8vagreany16ZnxrHavdhrErfhygVG_R6FpnyneRQcBG0_
+.weak b__MA6cqsvhz10ZnxrHavdhrV9PCQS_AnzrWEA5skpeg7JrnxCgeVAF2_18FgevatCbbyGrzcyngrVAF2_10OlgrFgevatRRRAFg3__114qrsnhyg_qryrgrVF6_RRRREN12_XpRRRAF_8vagreany16ZnxrHavdhrErfhygVG_R6FpnyneRQcBG0_
 .type b__MA6cqsvhz10ZnxrHavdhrV9PCQS_AnzrWEA5skpeg7JrnxCgeVAF2_18FgevatCbbyGrzcyngrVAF2_10OlgrFgevatRRRAFg3__114qrsnhyg_qryrgrVF6_RRRREN12_XpRRRAF_8vagreany16ZnxrHavdhrErfhygVG_R6FpnyneRQcBG0_,%function
 b__MA6cqsvhz10ZnxrHavdhrV9PCQS_AnzrWEA5skpeg7JrnxCgeVAF2_18FgevatCbbyGrzcyngrVAF2_10OlgrFgevatRRRAFg3__114qrsnhyg_qryrgrVF6_RRRREN12_XpRRRAF_8vagreany16ZnxrHavdhrErfhygVG_R6FpnyneRQcBG0_:
 nop
@@ -25798,7 +25798,7 @@
 b__MA25PCQS_VaqverpgBowrpgUbyqre19CnefrVaqverpgBowrpgRw:
 nop
 .text
-.globl b__MA6cqsvhz10ZnxrHavdhrV11PCQS_FgevatWEA5skpeg7JrnxCgeVAF2_18FgevatCbbyGrzcyngrVAF2_10OlgrFgevatRRRAFg3__114qrsnhyg_qryrgrVF6_RRRREN5_XpoRRRAF_8vagreany16ZnxrHavdhrErfhygVG_R6FpnyneRQcBG0_
+.weak b__MA6cqsvhz10ZnxrHavdhrV11PCQS_FgevatWEA5skpeg7JrnxCgeVAF2_18FgevatCbbyGrzcyngrVAF2_10OlgrFgevatRRRAFg3__114qrsnhyg_qryrgrVF6_RRRREN5_XpoRRRAF_8vagreany16ZnxrHavdhrErfhygVG_R6FpnyneRQcBG0_
 .type b__MA6cqsvhz10ZnxrHavdhrV11PCQS_FgevatWEA5skpeg7JrnxCgeVAF2_18FgevatCbbyGrzcyngrVAF2_10OlgrFgevatRRRAFg3__114qrsnhyg_qryrgrVF6_RRRREN5_XpoRRRAF_8vagreany16ZnxrHavdhrErfhygVG_R6FpnyneRQcBG0_,%function
 b__MA6cqsvhz10ZnxrHavdhrV11PCQS_FgevatWEA5skpeg7JrnxCgeVAF2_18FgevatCbbyGrzcyngrVAF2_10OlgrFgevatRRRAFg3__114qrsnhyg_qryrgrVF6_RRRREN5_XpoRRRAF_8vagreany16ZnxrHavdhrErfhygVG_R6FpnyneRQcBG0_:
 nop
@@ -25903,7 +25903,7 @@
 b__MA14PFgergpuRatvarQ1Ri:
 nop
 .text
-.globl b__MA5skpeg18FgevatQngnGrzcyngrVjR6ErgnvaRi
+.weak b__MA5skpeg18FgevatQngnGrzcyngrVjR6ErgnvaRi
 .type b__MA5skpeg18FgevatQngnGrzcyngrVjR6ErgnvaRi,%function
 b__MA5skpeg18FgevatQngnGrzcyngrVjR6ErgnvaRi:
 nop
@@ -26048,7 +26048,7 @@
 b__MA18PCQS_FgehpgRyrzragQ1Ri:
 nop
 .text
-.globl b__MA5skpeg18FgevatQngnGrzcyngrVpR12PbclPbagragfREXF1_
+.weak b__MA5skpeg18FgevatQngnGrzcyngrVpR12PbclPbagragfREXF1_
 .type b__MA5skpeg18FgevatQngnGrzcyngrVpR12PbclPbagragfREXF1_,%function
 b__MA5skpeg18FgevatQngnGrzcyngrVpR12PbclPbagragfREXF1_:
 nop
@@ -26163,7 +26163,7 @@
 b__MA16PCQS_SbezPbageby20TrgQrsnhygNccrnenaprRi:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVA5skpeg10OlgrFgevatRAF_10havdhr_cgeV16PCQS_Glcr3TylcufAF_14qrsnhyg_qryrgrVF5_RRRRRRAF_19__znc_inyhr_pbzcnerVF3_F9_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF9_RRR25__rzcynpr_havdhr_xrl_netfVF3_WEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXF3_RRRAFY_VWRRRRRRAF_4cnveVAF_15__gerr_vgrengbeVF9_CAF_11__gerr_abqrVF9_CiRRyRRoRREXG_QcBG0_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVA5skpeg10OlgrFgevatRAF_10havdhr_cgeV16PCQS_Glcr3TylcufAF_14qrsnhyg_qryrgrVF5_RRRRRRAF_19__znc_inyhr_pbzcnerVF3_F9_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF9_RRR25__rzcynpr_havdhr_xrl_netfVF3_WEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXF3_RRRAFY_VWRRRRRRAF_4cnveVAF_15__gerr_vgrengbeVF9_CAF_11__gerr_abqrVF9_CiRRyRRoRREXG_QcBG0_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVA5skpeg10OlgrFgevatRAF_10havdhr_cgeV16PCQS_Glcr3TylcufAF_14qrsnhyg_qryrgrVF5_RRRRRRAF_19__znc_inyhr_pbzcnerVF3_F9_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF9_RRR25__rzcynpr_havdhr_xrl_netfVF3_WEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXF3_RRRAFY_VWRRRRRRAF_4cnveVAF_15__gerr_vgrengbeVF9_CAF_11__gerr_abqrVF9_CiRRyRRoRREXG_QcBG0_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVA5skpeg10OlgrFgevatRAF_10havdhr_cgeV16PCQS_Glcr3TylcufAF_14qrsnhyg_qryrgrVF5_RRRRRRAF_19__znc_inyhr_pbzcnerVF3_F9_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF9_RRR25__rzcynpr_havdhr_xrl_netfVF3_WEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXF3_RRRAFY_VWRRRRRRAF_4cnveVAF_15__gerr_vgrengbeVF9_CAF_11__gerr_abqrVF9_CiRRyRRoRREXG_QcBG0_:
 nop
@@ -26173,7 +26173,7 @@
 b__MGI18PSK_OvgzncPbzcbfre:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA3ntt12fubegra_cnguVAF_15iregrk_frdhraprVAF_11iregrk_qvfgRYw6RRRRRiEG_sw
+.weak b__MA3ntt12fubegra_cnguVAF_15iregrk_frdhraprVAF_11iregrk_qvfgRYw6RRRRRiEG_sw
 .type b__MA3ntt12fubegra_cnguVAF_15iregrk_frdhraprVAF_11iregrk_qvfgRYw6RRRRRiEG_sw,%function
 b__MA3ntt12fubegra_cnguVAF_15iregrk_frdhraprVAF_11iregrk_qvfgRYw6RRRRRiEG_sw:
 nop
@@ -26398,7 +26398,7 @@
 b__MAX18PCQS_ErnqInyvqngbe20VfQngnEnatrNinvynoyrRyz:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA5skpeg9ErgnvaCgeV18PCQS_FgehpgRyrzragRRAF_9nyybpngbeVF4_RRR8__nccraqRz
+.weak b__MAFg3__16irpgbeVA5skpeg9ErgnvaCgeV18PCQS_FgehpgRyrzragRRAF_9nyybpngbeVF4_RRR8__nccraqRz
 .type b__MAFg3__16irpgbeVA5skpeg9ErgnvaCgeV18PCQS_FgehpgRyrzragRRAF_9nyybpngbeVF4_RRR8__nccraqRz,%function
 b__MAFg3__16irpgbeVA5skpeg9ErgnvaCgeV18PCQS_FgehpgRyrzragRRAF_9nyybpngbeVF4_RRR8__nccraqRz:
 nop
@@ -26528,12 +26528,12 @@
 b__MA14PCQS_ZbqhyrZte3TrgRi:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrV12TencuvpfQngnA5skpeg10OlgrFgevatRRRAF_19__znc_inyhr_pbzcnerVF2_F5_AF_4yrffVF2_RRYo1RRRAF_9nyybpngbeVF5_RRR25__rzcynpr_havdhr_xrl_netfVF2_WEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXF2_RRRAFU_VWRRRRRRAF_4cnveVAF_15__gerr_vgrengbeVF5_CAF_11__gerr_abqrVF5_CiRRyRRoRREXG_QcBG0_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrV12TencuvpfQngnA5skpeg10OlgrFgevatRRRAF_19__znc_inyhr_pbzcnerVF2_F5_AF_4yrffVF2_RRYo1RRRAF_9nyybpngbeVF5_RRR25__rzcynpr_havdhr_xrl_netfVF2_WEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXF2_RRRAFU_VWRRRRRRAF_4cnveVAF_15__gerr_vgrengbeVF5_CAF_11__gerr_abqrVF5_CiRRyRRoRREXG_QcBG0_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrV12TencuvpfQngnA5skpeg10OlgrFgevatRRRAF_19__znc_inyhr_pbzcnerVF2_F5_AF_4yrffVF2_RRYo1RRRAF_9nyybpngbeVF5_RRR25__rzcynpr_havdhr_xrl_netfVF2_WEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXF2_RRRAFU_VWRRRRRRAF_4cnveVAF_15__gerr_vgrengbeVF5_CAF_11__gerr_abqrVF5_CiRRyRRoRREXG_QcBG0_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrV12TencuvpfQngnA5skpeg10OlgrFgevatRRRAF_19__znc_inyhr_pbzcnerVF2_F5_AF_4yrffVF2_RRYo1RRRAF_9nyybpngbeVF5_RRR25__rzcynpr_havdhr_xrl_netfVF2_WEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXF2_RRRAFU_VWRRRRRRAF_4cnveVAF_15__gerr_vgrengbeVF5_CAF_11__gerr_abqrVF5_CiRRyRRoRREXG_QcBG0_:
 nop
 .text
-.globl b__MAFg3__114__fcyvg_ohssreVC13CNTRPUNE_VASBAF_9nyybpngbeVF2_RRR9chfu_onpxRBF2_
+.weak b__MAFg3__114__fcyvg_ohssreVC13CNTRPUNE_VASBAF_9nyybpngbeVF2_RRR9chfu_onpxRBF2_
 .type b__MAFg3__114__fcyvg_ohssreVC13CNTRPUNE_VASBAF_9nyybpngbeVF2_RRR9chfu_onpxRBF2_,%function
 b__MAFg3__114__fcyvg_ohssreVC13CNTRPUNE_VASBAF_9nyybpngbeVF2_RRR9chfu_onpxRBF2_:
 nop
@@ -26708,12 +26708,12 @@
 b__MA18PCQS_PelcgbUnaqyreP2RvCXuv:
 nop
 .text
-.globl b__MA5skpeg18FgevatQngnGrzcyngrVpR14PbclPbagragfNgRzCXpz
+.weak b__MA5skpeg18FgevatQngnGrzcyngrVpR14PbclPbagragfNgRzCXpz
 .type b__MA5skpeg18FgevatQngnGrzcyngrVpR14PbclPbagragfNgRzCXpz,%function
 b__MA5skpeg18FgevatQngnGrzcyngrVpR14PbclPbagragfNgRzCXpz:
 nop
 .text
-.globl b__MA5skpeg18FgevatIvrjGrzcyngrVjRnFRCXj
+.weak b__MA5skpeg18FgevatIvrjGrzcyngrVjRnFRCXj
 .type b__MA5skpeg18FgevatIvrjGrzcyngrVjRnFRCXj,%function
 b__MA5skpeg18FgevatIvrjGrzcyngrVjRnFRCXj:
 nop
@@ -26808,7 +26808,7 @@
 b__MA9PCQS_Cntr10FgnegCnefrRi:
 nop
 .text
-.globl b__MAFg3__16irpgbeVC12PWOvt2_VzntrAF_9nyybpngbeVF2_RRR8__nccraqRz
+.weak b__MAFg3__16irpgbeVC12PWOvt2_VzntrAF_9nyybpngbeVF2_RRR8__nccraqRz
 .type b__MAFg3__16irpgbeVC12PWOvt2_VzntrAF_9nyybpngbeVF2_RRR8__nccraqRz,%function
 b__MAFg3__16irpgbeVC12PWOvt2_VzntrAF_9nyybpngbeVF2_RRR8__nccraqRz:
 nop
@@ -27168,7 +27168,7 @@
 b__MAX13PKZY_NggeVgrz7ZngpurfREXA5skpeg10OlgrFgevatRF3_:
 nop
 .text
-.globl b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR8biresybjRv
+.weak b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR8biresybjRv
 .type b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR8biresybjRv,%function
 b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR8biresybjRv:
 nop
@@ -27263,12 +27263,12 @@
 b__MAX16PCQS_VzntrBowrpg7NfVzntrRi:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA11PCQS_Cnefre15PebffErsBowQngnRAF_9nyybpngbeVF2_RRR8__nccraqRz
+.weak b__MAFg3__16irpgbeVA11PCQS_Cnefre15PebffErsBowQngnRAF_9nyybpngbeVF2_RRR8__nccraqRz
 .type b__MAFg3__16irpgbeVA11PCQS_Cnefre15PebffErsBowQngnRAF_9nyybpngbeVF2_RRR8__nccraqRz,%function
 b__MAFg3__16irpgbeVA11PCQS_Cnefre15PebffErsBowQngnRAF_9nyybpngbeVF2_RRR8__nccraqRz:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA5skpeg10JvqrFgevatRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVF2_RRiBG_
+.weak b__MAFg3__16irpgbeVA5skpeg10JvqrFgevatRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVF2_RRiBG_
 .type b__MAFg3__16irpgbeVA5skpeg10JvqrFgevatRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVF2_RRiBG_,%function
 b__MAFg3__16irpgbeVA5skpeg10JvqrFgevatRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVF2_RRiBG_:
 nop
@@ -27403,7 +27403,7 @@
 b__MA14PCQS_QngnNinvy9PurpxVasbRi:
 nop
 .text
-.globl b__MAFg3__114__fcyvg_ohssreVCAF_10havdhr_cgeVA17PCQS_BowrpgJnyxre17FhobowrpgVgrengbeRAF_14qrsnhyg_qryrgrVF3_RRRRAF_9nyybpngbeVF7_RRR10chfu_sebagRBF7_
+.weak b__MAFg3__114__fcyvg_ohssreVCAF_10havdhr_cgeVA17PCQS_BowrpgJnyxre17FhobowrpgVgrengbeRAF_14qrsnhyg_qryrgrVF3_RRRRAF_9nyybpngbeVF7_RRR10chfu_sebagRBF7_
 .type b__MAFg3__114__fcyvg_ohssreVCAF_10havdhr_cgeVA17PCQS_BowrpgJnyxre17FhobowrpgVgrengbeRAF_14qrsnhyg_qryrgrVF3_RRRRAF_9nyybpngbeVF7_RRR10chfu_sebagRBF7_,%function
 b__MAFg3__114__fcyvg_ohssreVCAF_10havdhr_cgeVA17PCQS_BowrpgJnyxre17FhobowrpgVgrengbeRAF_14qrsnhyg_qryrgrVF3_RRRRAF_9nyybpngbeVF7_RRR10chfu_sebagRBF7_:
 nop
@@ -27458,7 +27458,7 @@
 b_pzfNyybpAnzrqPbybeYvfg:
 nop
 .data
-.globl b__MGFFg9rkprcgvba
+.weak b__MGFFg9rkprcgvba
 .type b__MGFFg9rkprcgvba,%object
 b__MGFFg9rkprcgvba:
 .space __SIZEOF_POINTER__
@@ -27543,7 +27543,7 @@
 b__MA5skpeg10JvqrFgevatP1REXAF_18FgevatIvrjGrzcyngrVjRRF4_:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_10havdhr_cgeV5PYvarAF_14qrsnhyg_qryrgrVF2_RRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_
+.weak b__MAFg3__16irpgbeVAF_10havdhr_cgeV5PYvarAF_14qrsnhyg_qryrgrVF2_RRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_
 .type b__MAFg3__16irpgbeVAF_10havdhr_cgeV5PYvarAF_14qrsnhyg_qryrgrVF2_RRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_,%function
 b__MAFg3__16irpgbeVAF_10havdhr_cgeV5PYvarAF_14qrsnhyg_qryrgrVF2_RRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_:
 nop
@@ -27628,7 +27628,7 @@
 b_bcw_fgernz_jevgr_frrx:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVC11PCQS_FgernzAF_10havdhr_cgeV9PCQS_SbezAF_14qrsnhyg_qryrgrVF5_RRRRRRAF_19__znc_inyhr_pbzcnerVF3_F9_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF9_RRR7qrfgeblRCAF_11__gerr_abqrVF9_CiRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVC11PCQS_FgernzAF_10havdhr_cgeV9PCQS_SbezAF_14qrsnhyg_qryrgrVF5_RRRRRRAF_19__znc_inyhr_pbzcnerVF3_F9_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF9_RRR7qrfgeblRCAF_11__gerr_abqrVF9_CiRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVC11PCQS_FgernzAF_10havdhr_cgeV9PCQS_SbezAF_14qrsnhyg_qryrgrVF5_RRRRRRAF_19__znc_inyhr_pbzcnerVF3_F9_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF9_RRR7qrfgeblRCAF_11__gerr_abqrVF9_CiRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVC11PCQS_FgernzAF_10havdhr_cgeV9PCQS_SbezAF_14qrsnhyg_qryrgrVF5_RRRRRRAF_19__znc_inyhr_pbzcnerVF3_F9_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF9_RRR7qrfgeblRCAF_11__gerr_abqrVF9_CiRR:
 nop
@@ -27848,7 +27848,7 @@
 b__MAX20PSK_VzntrGenafsbezre12NqwhfgPbbeqfRCvF0_:
 nop
 .text
-.globl b__MAX5skpeg18FgevatIvrjGrzcyngrVjR6eortvaRi
+.weak b__MAX5skpeg18FgevatIvrjGrzcyngrVjR6eortvaRi
 .type b__MAX5skpeg18FgevatIvrjGrzcyngrVjR6eortvaRi,%function
 b__MAX5skpeg18FgevatIvrjGrzcyngrVjR6eortvaRi:
 nop
@@ -28018,12 +28018,12 @@
 b__MA16PSK_OvgzncFgbereQ2Ri:
 nop
 .text
-.globl b__MA5skpeg18FgevatIvrjGrzcyngrVpRP2Ri
+.weak b__MA5skpeg18FgevatIvrjGrzcyngrVpRP2Ri
 .type b__MA5skpeg18FgevatIvrjGrzcyngrVpRP2Ri,%function
 b__MA5skpeg18FgevatIvrjGrzcyngrVpRP2Ri:
 nop
 .text
-.globl b__MAFg3__16irpgbeVgAF_9nyybpngbeVgRRR21__chfu_onpx_fybj_cnguVgRRiBG_
+.weak b__MAFg3__16irpgbeVgAF_9nyybpngbeVgRRR21__chfu_onpx_fybj_cnguVgRRiBG_
 .type b__MAFg3__16irpgbeVgAF_9nyybpngbeVgRRR21__chfu_onpx_fybj_cnguVgRRiBG_,%function
 b__MAFg3__16irpgbeVgAF_9nyybpngbeVgRRR21__chfu_onpx_fybj_cnguVgRRiBG_:
 nop
@@ -28068,12 +28068,12 @@
 b__MAX14PCQS_QngnNinvy15TrgFlagnkCnefreRi:
 nop
 .text
-.globl b__MA6cqsvhz10ZnxrHavdhrV11PCQS_FgevatWEA5skpeg7JrnxCgeVAF2_18FgevatCbbyGrzcyngrVAF2_10OlgrFgevatRRRAFg3__114qrsnhyg_qryrgrVF6_RRRREN6_XpoRRRAF_8vagreany16ZnxrHavdhrErfhygVG_R6FpnyneRQcBG0_
+.weak b__MA6cqsvhz10ZnxrHavdhrV11PCQS_FgevatWEA5skpeg7JrnxCgeVAF2_18FgevatCbbyGrzcyngrVAF2_10OlgrFgevatRRRAFg3__114qrsnhyg_qryrgrVF6_RRRREN6_XpoRRRAF_8vagreany16ZnxrHavdhrErfhygVG_R6FpnyneRQcBG0_
 .type b__MA6cqsvhz10ZnxrHavdhrV11PCQS_FgevatWEA5skpeg7JrnxCgeVAF2_18FgevatCbbyGrzcyngrVAF2_10OlgrFgevatRRRAFg3__114qrsnhyg_qryrgrVF6_RRRREN6_XpoRRRAF_8vagreany16ZnxrHavdhrErfhygVG_R6FpnyneRQcBG0_,%function
 b__MA6cqsvhz10ZnxrHavdhrV11PCQS_FgevatWEA5skpeg7JrnxCgeVAF2_18FgevatCbbyGrzcyngrVAF2_10OlgrFgevatRRRAFg3__114qrsnhyg_qryrgrVF6_RRRREN6_XpoRRRAF_8vagreany16ZnxrHavdhrErfhygVG_R6FpnyneRQcBG0_:
 nop
 .text
-.globl b__MAFg3__114__fcyvg_ohssreVCAF_10havdhr_cgeVA17PCQS_BowrpgJnyxre17FhobowrpgVgrengbeRAF_14qrsnhyg_qryrgrVF3_RRRREAF_9nyybpngbeVF7_RRR9chfu_onpxRBF7_
+.weak b__MAFg3__114__fcyvg_ohssreVCAF_10havdhr_cgeVA17PCQS_BowrpgJnyxre17FhobowrpgVgrengbeRAF_14qrsnhyg_qryrgrVF3_RRRREAF_9nyybpngbeVF7_RRR9chfu_onpxRBF7_
 .type b__MAFg3__114__fcyvg_ohssreVCAF_10havdhr_cgeVA17PCQS_BowrpgJnyxre17FhobowrpgVgrengbeRAF_14qrsnhyg_qryrgrVF3_RRRREAF_9nyybpngbeVF7_RRR9chfu_onpxRBF7_,%function
 b__MAFg3__114__fcyvg_ohssreVCAF_10havdhr_cgeVA17PCQS_BowrpgJnyxre17FhobowrpgVgrengbeRAF_14qrsnhyg_qryrgrVF3_RRRREAF_9nyybpngbeVF7_RRR9chfu_onpxRBF7_:
 nop
@@ -28238,7 +28238,7 @@
 b__M18SK_Enaqbz_ZG_Fgnegw:
 nop
 .text
-.globl b__MA6cqsvhz10ZnxrHavdhrV11PCQS_FgernzWAFg3__110havdhr_cgeVu13SkSerrQryrgreRREvAF3_V15PCQS_QvpgvbanelAF2_14qrsnhyg_qryrgrVF7_RRRRRRRAF_8vagreany16ZnxrHavdhrErfhygVG_R6FpnyneRQcBG0_
+.weak b__MA6cqsvhz10ZnxrHavdhrV11PCQS_FgernzWAFg3__110havdhr_cgeVu13SkSerrQryrgreRREvAF3_V15PCQS_QvpgvbanelAF2_14qrsnhyg_qryrgrVF7_RRRRRRRAF_8vagreany16ZnxrHavdhrErfhygVG_R6FpnyneRQcBG0_
 .type b__MA6cqsvhz10ZnxrHavdhrV11PCQS_FgernzWAFg3__110havdhr_cgeVu13SkSerrQryrgreRREvAF3_V15PCQS_QvpgvbanelAF2_14qrsnhyg_qryrgrVF7_RRRRRRRAF_8vagreany16ZnxrHavdhrErfhygVG_R6FpnyneRQcBG0_,%function
 b__MA6cqsvhz10ZnxrHavdhrV11PCQS_FgernzWAFg3__110havdhr_cgeVu13SkSerrQryrgreRREvAF3_V15PCQS_QvpgvbanelAF2_14qrsnhyg_qryrgrVF7_RRRRRRRAF_8vagreany16ZnxrHavdhrErfhygVG_R6FpnyneRQcBG0_:
 nop
@@ -28353,7 +28353,7 @@
 b__MA21PCJY_RqvgVzcy_Erserfu3NqqREX13PSK_SybngErpg:
 nop
 .text
-.globl b__MA3ntt9cbq_qrdhrVAF_10cbvag_glcrRYw6RR14nyybpngr_oybpxRw
+.weak b__MA3ntt9cbq_qrdhrVAF_10cbvag_glcrRYw6RR14nyybpngr_oybpxRw
 .type b__MA3ntt9cbq_qrdhrVAF_10cbvag_glcrRYw6RR14nyybpngr_oybpxRw,%function
 b__MA3ntt9cbq_qrdhrVAF_10cbvag_glcrRYw6RR14nyybpngr_oybpxRw:
 nop
@@ -28678,7 +28678,7 @@
 b__MA18VSK_FrrxnoyrFgernz18PerngrSebzSvyranzrRCXpw:
 nop
 .text
-.globl b__MAFg3__16irpgbeVwAF_9nyybpngbeVwRRR21__chfu_onpx_fybj_cnguVwRRiBG_
+.weak b__MAFg3__16irpgbeVwAF_9nyybpngbeVwRRR21__chfu_onpx_fybj_cnguVwRRiBG_
 .type b__MAFg3__16irpgbeVwAF_9nyybpngbeVwRRR21__chfu_onpx_fybj_cnguVwRRiBG_,%function
 b__MAFg3__16irpgbeVwAF_9nyybpngbeVwRRR21__chfu_onpx_fybj_cnguVwRRiBG_:
 nop
@@ -28698,7 +28698,7 @@
 b__MA18PCQS_TencuvpFgngrfQ2Ri:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVwZ24PCQS_FgernzPbagragCnefreSiiRRRAF_19__znc_inyhr_pbzcnerVwF5_AF_4yrffVwRRYo1RRRAF_9nyybpngbeVF5_RRR12__svaq_rdhnyVwRRECAF_16__gerr_abqr_onfrVCiRRAF_21__gerr_pbafg_vgrengbeVF5_CAF_11__gerr_abqrVF5_FS_RRyRRECAF_15__gerr_raq_abqrVFU_RRFV_EXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVwZ24PCQS_FgernzPbagragCnefreSiiRRRAF_19__znc_inyhr_pbzcnerVwF5_AF_4yrffVwRRYo1RRRAF_9nyybpngbeVF5_RRR12__svaq_rdhnyVwRRECAF_16__gerr_abqr_onfrVCiRRAF_21__gerr_pbafg_vgrengbeVF5_CAF_11__gerr_abqrVF5_FS_RRyRRECAF_15__gerr_raq_abqrVFU_RRFV_EXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVwZ24PCQS_FgernzPbagragCnefreSiiRRRAF_19__znc_inyhr_pbzcnerVwF5_AF_4yrffVwRRYo1RRRAF_9nyybpngbeVF5_RRR12__svaq_rdhnyVwRRECAF_16__gerr_abqr_onfrVCiRRAF_21__gerr_pbafg_vgrengbeVF5_CAF_11__gerr_abqrVF5_FS_RRyRRECAF_15__gerr_raq_abqrVFU_RRFV_EXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVwZ24PCQS_FgernzPbagragCnefreSiiRRRAF_19__znc_inyhr_pbzcnerVwF5_AF_4yrffVwRRYo1RRRAF_9nyybpngbeVF5_RRR12__svaq_rdhnyVwRRECAF_16__gerr_abqr_onfrVCiRRAF_21__gerr_pbafg_vgrengbeVF5_CAF_11__gerr_abqrVF5_FS_RRyRRECAF_15__gerr_raq_abqrVFU_RRFV_EXG_:
 nop
@@ -28798,7 +28798,7 @@
 b__MA14PCQS_QngnNinvy12YbnqQbpCntrfRi:
 nop
 .text
-.globl b__MAX5skpeg18FgevatIvrjGrzcyngrVjR12VfInyvqVaqrkRz
+.weak b__MAX5skpeg18FgevatIvrjGrzcyngrVjR12VfInyvqVaqrkRz
 .type b__MAX5skpeg18FgevatIvrjGrzcyngrVjR12VfInyvqVaqrkRz,%function
 b__MAX5skpeg18FgevatIvrjGrzcyngrVjR12VfInyvqVaqrkRz:
 nop
@@ -28893,7 +28893,7 @@
 b__MA22PCJY_RqvgVzcy_CebivqreP2RC12VCIG_SbagZnc:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVC16PCQSFQX_CntrIvrjC8PCJY_JaqRRAF_19__znc_inyhr_pbzcnerVF3_F6_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF6_RRR7qrfgeblRCAF_11__gerr_abqrVF6_CiRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVC16PCQSFQX_CntrIvrjC8PCJY_JaqRRAF_19__znc_inyhr_pbzcnerVF3_F6_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF6_RRR7qrfgeblRCAF_11__gerr_abqrVF6_CiRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVC16PCQSFQX_CntrIvrjC8PCJY_JaqRRAF_19__znc_inyhr_pbzcnerVF3_F6_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF6_RRR7qrfgeblRCAF_11__gerr_abqrVF6_CiRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVC16PCQSFQX_CntrIvrjC8PCJY_JaqRRAF_19__znc_inyhr_pbzcnerVF3_F6_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF6_RRR7qrfgeblRCAF_11__gerr_abqrVF6_CiRR:
 nop
@@ -28923,7 +28923,7 @@
 b__MA6cqsvhz4onfr10NyybpCntrfRCizzAF0_30CntrNpprffvovyvglPbasvthengvbaR:
 nop
 .text
-.globl b__MA6cqsvhz10ZnxrHavdhrV9PCQS_AnzrWEA5skpeg7JrnxCgeVAF2_18FgevatCbbyGrzcyngrVAF2_10OlgrFgevatRRRAFg3__114qrsnhyg_qryrgrVF6_RRRRECXpRRRAF_8vagreany16ZnxrHavdhrErfhygVG_R6FpnyneRQcBG0_
+.weak b__MA6cqsvhz10ZnxrHavdhrV9PCQS_AnzrWEA5skpeg7JrnxCgeVAF2_18FgevatCbbyGrzcyngrVAF2_10OlgrFgevatRRRAFg3__114qrsnhyg_qryrgrVF6_RRRRECXpRRRAF_8vagreany16ZnxrHavdhrErfhygVG_R6FpnyneRQcBG0_
 .type b__MA6cqsvhz10ZnxrHavdhrV9PCQS_AnzrWEA5skpeg7JrnxCgeVAF2_18FgevatCbbyGrzcyngrVAF2_10OlgrFgevatRRRAFg3__114qrsnhyg_qryrgrVF6_RRRRECXpRRRAF_8vagreany16ZnxrHavdhrErfhygVG_R6FpnyneRQcBG0_,%function
 b__MA6cqsvhz10ZnxrHavdhrV9PCQS_AnzrWEA5skpeg7JrnxCgeVAF2_18FgevatCbbyGrzcyngrVAF2_10OlgrFgevatRRRAFg3__114qrsnhyg_qryrgrVF6_RRRRECXpRRRAF_8vagreany16ZnxrHavdhrErfhygVG_R6FpnyneRQcBG0_:
 nop
@@ -28953,7 +28953,7 @@
 b__MA9PCQS_CntrQ1Ri:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA16PCQS_YvaxRkgenpg4YvaxRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVF2_RRiBG_
+.weak b__MAFg3__16irpgbeVA16PCQS_YvaxRkgenpg4YvaxRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVF2_RRiBG_
 .type b__MAFg3__16irpgbeVA16PCQS_YvaxRkgenpg4YvaxRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVF2_RRiBG_,%function
 b__MAFg3__16irpgbeVA16PCQS_YvaxRkgenpg4YvaxRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVF2_RRiBG_:
 nop
@@ -28983,7 +28983,7 @@
 b__MA16PCQS_SbezPbageby21TrgQrsnhygPbagebySbagRi:
 nop
 .text
-.globl b__MAFg3__16irpgbeVoAF_9nyybpngbeVoRRR18__pbafgehpg_ng_raqVAF_14__ovg_vgrengbeVF3_Yo0RYz0RRRRRAF_9ranoyr_vsVKfe21__vf_sbejneq_vgrengbeVG_RR5inyhrRiR4glcrRF8_F8_
+.weak b__MAFg3__16irpgbeVoAF_9nyybpngbeVoRRR18__pbafgehpg_ng_raqVAF_14__ovg_vgrengbeVF3_Yo0RYz0RRRRRAF_9ranoyr_vsVKfe21__vf_sbejneq_vgrengbeVG_RR5inyhrRiR4glcrRF8_F8_
 .type b__MAFg3__16irpgbeVoAF_9nyybpngbeVoRRR18__pbafgehpg_ng_raqVAF_14__ovg_vgrengbeVF3_Yo0RYz0RRRRRAF_9ranoyr_vsVKfe21__vf_sbejneq_vgrengbeVG_RR5inyhrRiR4glcrRF8_F8_,%function
 b__MAFg3__16irpgbeVoAF_9nyybpngbeVoRRR18__pbafgehpg_ng_raqVAF_14__ovg_vgrengbeVF3_Yo0RYz0RRRRRAF_9ranoyr_vsVKfe21__vf_sbejneq_vgrengbeVG_RR5inyhrRiR4glcrRF8_F8_:
 nop
@@ -29023,7 +29023,7 @@
 b_pzfPerngrYvarnevmngvbaQrivprYvaxGUE:
 nop
 .text
-.globl b__MAFg3__16irpgbeV12SK_CNGUCBVAGAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_
+.weak b__MAFg3__16irpgbeV12SK_CNGUCBVAGAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_
 .type b__MAFg3__16irpgbeV12SK_CNGUCBVAGAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_,%function
 b__MAFg3__16irpgbeV12SK_CNGUCBVAGAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_:
 nop
@@ -29078,7 +29078,7 @@
 b__M14Erivfvba6_UnfuEXA5skpeg10OlgrFgevatRCXuF4_Cu:
 nop
 .text
-.globl b__MAX5skpeg18FgevatIvrjGrzcyngrVpRrdRCXp
+.weak b__MAX5skpeg18FgevatIvrjGrzcyngrVpRrdRCXp
 .type b__MAX5skpeg18FgevatIvrjGrzcyngrVpRrdRCXp,%function
 b__MAX5skpeg18FgevatIvrjGrzcyngrVpRrdRCXp:
 nop
@@ -29198,7 +29198,7 @@
 b__MAX11PCQS_Ahzore10TrgVagrtreRi:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_4cnveVA5skpeg10OlgrFgevatRC11PCQS_BowrpgRRAF_9nyybpngbeVF6_RRR21__chfu_onpx_fybj_cnguVF6_RRiBG_
+.weak b__MAFg3__16irpgbeVAF_4cnveVA5skpeg10OlgrFgevatRC11PCQS_BowrpgRRAF_9nyybpngbeVF6_RRR21__chfu_onpx_fybj_cnguVF6_RRiBG_
 .type b__MAFg3__16irpgbeVAF_4cnveVA5skpeg10OlgrFgevatRC11PCQS_BowrpgRRAF_9nyybpngbeVF6_RRR21__chfu_onpx_fybj_cnguVF6_RRiBG_,%function
 b__MAFg3__16irpgbeVAF_4cnveVA5skpeg10OlgrFgevatRC11PCQS_BowrpgRRAF_9nyybpngbeVF6_RRR21__chfu_onpx_fybj_cnguVF6_RRiBG_:
 nop
@@ -29308,7 +29308,7 @@
 b__MA23PCQSFQX_NaabgUnaqyreZte12EryrnfrNaabgRC13PCQSFQX_Naabg:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_10havdhr_cgeVA10PSvryqGerr4AbqrRAF_14qrsnhyg_qryrgrVF3_RRRRAF_9nyybpngbeVF6_RRR21__chfu_onpx_fybj_cnguVF6_RRiBG_
+.weak b__MAFg3__16irpgbeVAF_10havdhr_cgeVA10PSvryqGerr4AbqrRAF_14qrsnhyg_qryrgrVF3_RRRRAF_9nyybpngbeVF6_RRR21__chfu_onpx_fybj_cnguVF6_RRiBG_
 .type b__MAFg3__16irpgbeVAF_10havdhr_cgeVA10PSvryqGerr4AbqrRAF_14qrsnhyg_qryrgrVF3_RRRRAF_9nyybpngbeVF6_RRR21__chfu_onpx_fybj_cnguVF6_RRiBG_,%function
 b__MAFg3__16irpgbeVAF_10havdhr_cgeVA10PSvryqGerr4AbqrRAF_14qrsnhyg_qryrgrVF3_RRRRAF_9nyybpngbeVF6_RRR21__chfu_onpx_fybj_cnguVF6_RRiBG_:
 nop
@@ -29353,7 +29353,7 @@
 b__MA21PCQSFQX_JvqtrgUnaqyre11BaXvyySbphfRCA5skpeg10BofreinoyrV13PCQSFQX_NaabgR11BofreirqCgeRw:
 nop
 .text
-.globl b__MAFg3__114__fcyvg_ohssreVCAF_10havdhr_cgeV15PCQS_CntrBowrpgAF_14qrsnhyg_qryrgrVF2_RRRREAF_9nyybpngbeVF6_RRR9chfu_onpxRBF6_
+.weak b__MAFg3__114__fcyvg_ohssreVCAF_10havdhr_cgeV15PCQS_CntrBowrpgAF_14qrsnhyg_qryrgrVF2_RRRREAF_9nyybpngbeVF6_RRR9chfu_onpxRBF6_
 .type b__MAFg3__114__fcyvg_ohssreVCAF_10havdhr_cgeV15PCQS_CntrBowrpgAF_14qrsnhyg_qryrgrVF2_RRRREAF_9nyybpngbeVF6_RRR9chfu_onpxRBF6_,%function
 b__MAFg3__114__fcyvg_ohssreVCAF_10havdhr_cgeV15PCQS_CntrBowrpgAF_14qrsnhyg_qryrgrVF2_RRRREAF_9nyybpngbeVF6_RRR9chfu_onpxRBF6_:
 nop
@@ -29363,7 +29363,7 @@
 b__MA9PCQS_Sbag14TrgFgevatJvqguRCXpv:
 nop
 .text
-.globl b__MAX5skpeg18FgevatIvrjGrzcyngrVpRygREXF1_
+.weak b__MAX5skpeg18FgevatIvrjGrzcyngrVpRygREXF1_
 .type b__MAX5skpeg18FgevatIvrjGrzcyngrVpRygREXF1_,%function
 b__MAX5skpeg18FgevatIvrjGrzcyngrVpRygREXF1_:
 nop
@@ -29383,7 +29383,7 @@
 b__MAX13PCJY_RqvgPgey7TrgGrkgRi:
 nop
 .text
-.globl b__MAFg3__16__gerrVCX11PCQS_BowrpgAF_4yrffVF3_RRAF_9nyybpngbeVF3_RRR12__svaq_rdhnyVF3_RRECAF_16__gerr_abqr_onfrVCiRRAF_21__gerr_pbafg_vgrengbeVF3_CAF_11__gerr_abqrVF3_FO_RRyRRECAF_15__gerr_raq_abqrVFQ_RRFR_EXG_
+.weak b__MAFg3__16__gerrVCX11PCQS_BowrpgAF_4yrffVF3_RRAF_9nyybpngbeVF3_RRR12__svaq_rdhnyVF3_RRECAF_16__gerr_abqr_onfrVCiRRAF_21__gerr_pbafg_vgrengbeVF3_CAF_11__gerr_abqrVF3_FO_RRyRRECAF_15__gerr_raq_abqrVFQ_RRFR_EXG_
 .type b__MAFg3__16__gerrVCX11PCQS_BowrpgAF_4yrffVF3_RRAF_9nyybpngbeVF3_RRR12__svaq_rdhnyVF3_RRECAF_16__gerr_abqr_onfrVCiRRAF_21__gerr_pbafg_vgrengbeVF3_CAF_11__gerr_abqrVF3_FO_RRyRRECAF_15__gerr_raq_abqrVFQ_RRFR_EXG_,%function
 b__MAFg3__16__gerrVCX11PCQS_BowrpgAF_4yrffVF3_RRAF_9nyybpngbeVF3_RRR12__svaq_rdhnyVF3_RRECAF_16__gerr_abqr_onfrVCiRRAF_21__gerr_pbafg_vgrengbeVF3_CAF_11__gerr_abqrVF3_FO_RRyRRECAF_15__gerr_raq_abqrVFQ_RRFR_EXG_:
 nop
@@ -29488,7 +29488,7 @@
 b__MAX15PCQSFQX_ONNaabg9TrgNCQvpgRi:
 nop
 .text
-.globl b__MA3ntt17fgebxr_pnyp_zvgreVAF_9cbq_qrdhrVAF_10cbvag_glcrRYw6RRRRRiEG_EXAF_11iregrk_qvfgRF8_F8_sssssAF_11yvar_wbva_rRss
+.weak b__MA3ntt17fgebxr_pnyp_zvgreVAF_9cbq_qrdhrVAF_10cbvag_glcrRYw6RRRRRiEG_EXAF_11iregrk_qvfgRF8_F8_sssssAF_11yvar_wbva_rRss
 .type b__MA3ntt17fgebxr_pnyp_zvgreVAF_9cbq_qrdhrVAF_10cbvag_glcrRYw6RRRRRiEG_EXAF_11iregrk_qvfgRF8_F8_sssssAF_11yvar_wbva_rRss,%function
 b__MA3ntt17fgebxr_pnyp_zvgreVAF_9cbq_qrdhrVAF_10cbvag_glcrRYw6RRRRRiEG_EXAF_11iregrk_qvfgRF8_F8_sssssAF_11yvar_wbva_rRss:
 nop
@@ -29678,7 +29678,7 @@
 b__MAX14PCQS_VagreSbez11PbhagSvryqfREXA5skpeg10JvqrFgevatR:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVC11SG_SnprErp_AF_10havdhr_cgeVA13PSK_SbagPnpur16PbhagrqSnprPnpurRAF_14qrsnhyg_qryrgrVF6_RRRRRRAF_19__znc_inyhr_pbzcnerVF3_FN_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVFN_RRR7qrfgeblRCAF_11__gerr_abqrVFN_CiRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVC11SG_SnprErp_AF_10havdhr_cgeVA13PSK_SbagPnpur16PbhagrqSnprPnpurRAF_14qrsnhyg_qryrgrVF6_RRRRRRAF_19__znc_inyhr_pbzcnerVF3_FN_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVFN_RRR7qrfgeblRCAF_11__gerr_abqrVFN_CiRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVC11SG_SnprErp_AF_10havdhr_cgeVA13PSK_SbagPnpur16PbhagrqSnprPnpurRAF_14qrsnhyg_qryrgrVF6_RRRRRRAF_19__znc_inyhr_pbzcnerVF3_FN_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVFN_RRR7qrfgeblRCAF_11__gerr_abqrVFN_CiRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVC11SG_SnprErp_AF_10havdhr_cgeVA13PSK_SbagPnpur16PbhagrqSnprPnpurRAF_14qrsnhyg_qryrgrVF6_RRRRRRAF_19__znc_inyhr_pbzcnerVF3_FN_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVFN_RRR7qrfgeblRCAF_11__gerr_abqrVFN_CiRR:
 nop
@@ -29788,7 +29788,7 @@
 b__MAX10PCQS_Neenl7TrgGlcrRi:
 nop
 .text
-.globl b__MAFg3__114__fcyvg_ohssreVC13CNTRPUNE_VASBEAF_9nyybpngbeVF2_RRR10chfu_sebagREXF2_
+.weak b__MAFg3__114__fcyvg_ohssreVC13CNTRPUNE_VASBEAF_9nyybpngbeVF2_RRR10chfu_sebagREXF2_
 .type b__MAFg3__114__fcyvg_ohssreVC13CNTRPUNE_VASBEAF_9nyybpngbeVF2_RRR10chfu_sebagREXF2_,%function
 b__MAFg3__114__fcyvg_ohssreVC13CNTRPUNE_VASBEAF_9nyybpngbeVF2_RRR10chfu_sebagREXF2_:
 nop
@@ -29903,7 +29903,7 @@
 b_t_SKPZNC_HavWVF_HPF2_UJ_I_4:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVwyRRAF_19__znc_inyhr_pbzcnerVwF2_AF_4yrffVwRRYo1RRRAF_9nyybpngbeVF2_RRR7qrfgeblRCAF_11__gerr_abqrVF2_CiRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVwyRRAF_19__znc_inyhr_pbzcnerVwF2_AF_4yrffVwRRYo1RRRAF_9nyybpngbeVF2_RRR7qrfgeblRCAF_11__gerr_abqrVF2_CiRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVwyRRAF_19__znc_inyhr_pbzcnerVwF2_AF_4yrffVwRRYo1RRRAF_9nyybpngbeVF2_RRR7qrfgeblRCAF_11__gerr_abqrVF2_CiRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVwyRRAF_19__znc_inyhr_pbzcnerVwF2_AF_4yrffVwRRYo1RRRAF_9nyybpngbeVF2_RRR7qrfgeblRCAF_11__gerr_abqrVF2_CiRR:
 nop
@@ -29918,7 +29918,7 @@
 b__MA22VSK_EraqreQrivprQevire11QenjFunqvatRCX19PCQS_FunqvatCnggreaCX10PSK_ZngevkEX7SK_ERPGvo:
 nop
 .text
-.globl b__MAFg3__16irpgbeVuAF_9nyybpngbeVuRRR21__chfu_onpx_fybj_cnguVuRRiBG_
+.weak b__MAFg3__16irpgbeVuAF_9nyybpngbeVuRRR21__chfu_onpx_fybj_cnguVuRRiBG_
 .type b__MAFg3__16irpgbeVuAF_9nyybpngbeVuRRR21__chfu_onpx_fybj_cnguVuRRiBG_,%function
 b__MAFg3__16irpgbeVuAF_9nyybpngbeVuRRR21__chfu_onpx_fybj_cnguVuRRiBG_:
 nop
@@ -29973,7 +29973,7 @@
 b_pzfYPu2Yno:
 nop
 .text
-.globl b__MAX5skpeg18FgevatIvrjGrzcyngrVpRarRCXp
+.weak b__MAX5skpeg18FgevatIvrjGrzcyngrVpRarRCXp
 .type b__MAX5skpeg18FgevatIvrjGrzcyngrVpRarRCXp,%function
 b__MAX5skpeg18FgevatIvrjGrzcyngrVpRarRCXp:
 nop
@@ -29993,7 +29993,7 @@
 b__MA12PCJY_YvfgObk9BaPerngrqRi:
 nop
 .text
-.globl b__MA5skpeg18FgevatQngnGrzcyngrVjR6PerngrREXF1_
+.weak b__MA5skpeg18FgevatQngnGrzcyngrVjR6PerngrREXF1_
 .type b__MA5skpeg18FgevatQngnGrzcyngrVjR6PerngrREXF1_,%function
 b__MA5skpeg18FgevatQngnGrzcyngrVjR6PerngrREXF1_:
 nop
@@ -30038,7 +30038,7 @@
 b__MGI11PON_SbagZnc:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__16irpgbeVAF_4cnveVA5skpeg10OlgrFgevatRF3_RRAF_9nyybpngbeVF4_RRR21__chfu_onpx_fybj_cnguVF4_RRiBG_
+.weak b__MAFg3__16irpgbeVAF_4cnveVA5skpeg10OlgrFgevatRF3_RRAF_9nyybpngbeVF4_RRR21__chfu_onpx_fybj_cnguVF4_RRiBG_
 .type b__MAFg3__16irpgbeVAF_4cnveVA5skpeg10OlgrFgevatRF3_RRAF_9nyybpngbeVF4_RRR21__chfu_onpx_fybj_cnguVF4_RRiBG_,%function
 b__MAFg3__16irpgbeVAF_4cnveVA5skpeg10OlgrFgevatRF3_RRAF_9nyybpngbeVF4_RRR21__chfu_onpx_fybj_cnguVF4_RRiBG_:
 nop
@@ -30133,7 +30133,7 @@
 b__MA15PCQS_AhzoreGerrP1RC15PCQS_Qvpgvbanel:
 nop
 .text
-.globl b__MAFg3__16irpgbeV13WOvt2NevguPgkAF_9nyybpngbeVF1_RRR6nffvtaVCF1_RRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF1_AF_15vgrengbe_genvgfVF8_R9ersreraprRRR5inyhrRiR4glcrRF8_F8_
+.weak b__MAFg3__16irpgbeV13WOvt2NevguPgkAF_9nyybpngbeVF1_RRR6nffvtaVCF1_RRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF1_AF_15vgrengbe_genvgfVF8_R9ersreraprRRR5inyhrRiR4glcrRF8_F8_
 .type b__MAFg3__16irpgbeV13WOvt2NevguPgkAF_9nyybpngbeVF1_RRR6nffvtaVCF1_RRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF1_AF_15vgrengbe_genvgfVF8_R9ersreraprRRR5inyhrRiR4glcrRF8_F8_,%function
 b__MAFg3__16irpgbeV13WOvt2NevguPgkAF_9nyybpngbeVF1_RRR6nffvtaVCF1_RRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF1_AF_15vgrengbe_genvgfVF8_R9ersreraprRRR5inyhrRiR4glcrRF8_F8_:
 nop
@@ -30148,7 +30148,7 @@
 b__MA14PCQS_SbezSvryq12PurpxPbagebyRvoo:
 nop
 .text
-.globl b__MA5skpeg18FgevatIvrjGrzcyngrVpRP1REXF1_
+.weak b__MA5skpeg18FgevatIvrjGrzcyngrVpRP1REXF1_
 .type b__MA5skpeg18FgevatIvrjGrzcyngrVpRP1REXF1_,%function
 b__MA5skpeg18FgevatIvrjGrzcyngrVpRP1REXF1_:
 nop
@@ -30203,7 +30203,7 @@
 b_bcw_gpq_perngr:
 nop
 .data
-.globl b__MGIAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
+.weak b__MGIAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
 .type b__MGIAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR,%object
 b__MGIAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR:
 .space __SIZEOF_POINTER__
@@ -30218,17 +30218,17 @@
 b_bcw_wc2_qrpbqr:
 nop
 .text
-.globl b__MA5skpeg18FgevatIvrjGrzcyngrVjRP2RCXjz
+.weak b__MA5skpeg18FgevatIvrjGrzcyngrVjRP2RCXjz
 .type b__MA5skpeg18FgevatIvrjGrzcyngrVjRP2RCXjz,%function
 b__MA5skpeg18FgevatIvrjGrzcyngrVjRP2RCXjz:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVA5skpeg10OlgrFgevatRAF_10havdhr_cgeV11PCQS_BowrpgAF_14qrsnhyg_qryrgrVF5_RRRRRRAF_19__znc_inyhr_pbzcnerVF3_F9_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF9_RRR25__rzcynpr_havdhr_xrl_netfVF3_WEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWBF3_RRRAFY_VWRRRRRRAF_4cnveVAF_15__gerr_vgrengbeVF9_CAF_11__gerr_abqrVF9_CiRRyRRoRREXG_QcBG0_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVA5skpeg10OlgrFgevatRAF_10havdhr_cgeV11PCQS_BowrpgAF_14qrsnhyg_qryrgrVF5_RRRRRRAF_19__znc_inyhr_pbzcnerVF3_F9_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF9_RRR25__rzcynpr_havdhr_xrl_netfVF3_WEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWBF3_RRRAFY_VWRRRRRRAF_4cnveVAF_15__gerr_vgrengbeVF9_CAF_11__gerr_abqrVF9_CiRRyRRoRREXG_QcBG0_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVA5skpeg10OlgrFgevatRAF_10havdhr_cgeV11PCQS_BowrpgAF_14qrsnhyg_qryrgrVF5_RRRRRRAF_19__znc_inyhr_pbzcnerVF3_F9_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF9_RRR25__rzcynpr_havdhr_xrl_netfVF3_WEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWBF3_RRRAFY_VWRRRRRRAF_4cnveVAF_15__gerr_vgrengbeVF9_CAF_11__gerr_abqrVF9_CiRRyRRoRREXG_QcBG0_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVA5skpeg10OlgrFgevatRAF_10havdhr_cgeV11PCQS_BowrpgAF_14qrsnhyg_qryrgrVF5_RRRRRRAF_19__znc_inyhr_pbzcnerVF3_F9_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF9_RRR25__rzcynpr_havdhr_xrl_netfVF3_WEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWBF3_RRRAFY_VWRRRRRRAF_4cnveVAF_15__gerr_vgrengbeVF9_CAF_11__gerr_abqrVF9_CiRRyRRoRREXG_QcBG0_:
 nop
 .text
-.globl b__MA6cqsvhz10ZnxrHavdhrV9PCQS_AnzrWEA5skpeg7JrnxCgeVAF2_18FgevatCbbyGrzcyngrVAF2_10OlgrFgevatRRRAFg3__114qrsnhyg_qryrgrVF6_RRRREN1_XpRRRAF_8vagreany16ZnxrHavdhrErfhygVG_R6FpnyneRQcBG0_
+.weak b__MA6cqsvhz10ZnxrHavdhrV9PCQS_AnzrWEA5skpeg7JrnxCgeVAF2_18FgevatCbbyGrzcyngrVAF2_10OlgrFgevatRRRAFg3__114qrsnhyg_qryrgrVF6_RRRREN1_XpRRRAF_8vagreany16ZnxrHavdhrErfhygVG_R6FpnyneRQcBG0_
 .type b__MA6cqsvhz10ZnxrHavdhrV9PCQS_AnzrWEA5skpeg7JrnxCgeVAF2_18FgevatCbbyGrzcyngrVAF2_10OlgrFgevatRRRAFg3__114qrsnhyg_qryrgrVF6_RRRREN1_XpRRRAF_8vagreany16ZnxrHavdhrErfhygVG_R6FpnyneRQcBG0_,%function
 b__MA6cqsvhz10ZnxrHavdhrV9PCQS_AnzrWEA5skpeg7JrnxCgeVAF2_18FgevatCbbyGrzcyngrVAF2_10OlgrFgevatRRRAFg3__114qrsnhyg_qryrgrVF6_RRRREN1_XpRRRAF_8vagreany16ZnxrHavdhrErfhygVG_R6FpnyneRQcBG0_:
 nop
@@ -30263,7 +30263,7 @@
 b__M14FgevatGbSKNETOEXA5skpeg18FgevatIvrjGrzcyngrVjRR:
 nop
 .text
-.globl b__MA3ntt18pbai_nqncgbe_iptraVAF_12cngu_fgbentrRAF_12iptra_fgebxrRAF_12ahyy_znexrefRR6iregrkRCsF5_
+.weak b__MA3ntt18pbai_nqncgbe_iptraVAF_12cngu_fgbentrRAF_12iptra_fgebxrRAF_12ahyy_znexrefRR6iregrkRCsF5_
 .type b__MA3ntt18pbai_nqncgbe_iptraVAF_12cngu_fgbentrRAF_12iptra_fgebxrRAF_12ahyy_znexrefRR6iregrkRCsF5_,%function
 b__MA3ntt18pbai_nqncgbe_iptraVAF_12cngu_fgbentrRAF_12iptra_fgebxrRAF_12ahyy_znexrefRR6iregrkRCsF5_:
 nop
@@ -30408,7 +30408,7 @@
 b__MA9PCJY_VpbaQ2Ri:
 nop
 .text
-.globl b__MAX5skpeg18FgevatIvrjGrzcyngrVjR5ortvaRi
+.weak b__MAX5skpeg18FgevatIvrjGrzcyngrVjR5ortvaRi
 .type b__MAX5skpeg18FgevatIvrjGrzcyngrVjR5ortvaRi,%function
 b__MAX5skpeg18FgevatIvrjGrzcyngrVjR5ortvaRi:
 nop
@@ -30423,7 +30423,7 @@
 b__MA14PCQS_QngnNinvy13CnefrQbphzragRCXp:
 nop
 .text
-.globl b__MA6cqsvhz10ZnxrHavdhrV11PCQS_FgevatWEA5skpeg7JrnxCgeVAF2_18FgevatCbbyGrzcyngrVAF2_10OlgrFgevatRRRAFg3__114qrsnhyg_qryrgrVF6_RRRREN7_XpoRRRAF_8vagreany16ZnxrHavdhrErfhygVG_R6FpnyneRQcBG0_
+.weak b__MA6cqsvhz10ZnxrHavdhrV11PCQS_FgevatWEA5skpeg7JrnxCgeVAF2_18FgevatCbbyGrzcyngrVAF2_10OlgrFgevatRRRAFg3__114qrsnhyg_qryrgrVF6_RRRREN7_XpoRRRAF_8vagreany16ZnxrHavdhrErfhygVG_R6FpnyneRQcBG0_
 .type b__MA6cqsvhz10ZnxrHavdhrV11PCQS_FgevatWEA5skpeg7JrnxCgeVAF2_18FgevatCbbyGrzcyngrVAF2_10OlgrFgevatRRRAFg3__114qrsnhyg_qryrgrVF6_RRRREN7_XpoRRRAF_8vagreany16ZnxrHavdhrErfhygVG_R6FpnyneRQcBG0_,%function
 b__MA6cqsvhz10ZnxrHavdhrV11PCQS_FgevatWEA5skpeg7JrnxCgeVAF2_18FgevatCbbyGrzcyngrVAF2_10OlgrFgevatRRRAFg3__114qrsnhyg_qryrgrVF6_RRRREN7_XpoRRRAF_8vagreany16ZnxrHavdhrErfhygVG_R6FpnyneRQcBG0_:
 nop
@@ -30463,7 +30463,7 @@
 b__MA12PCJY_YvfgObk18QenjGuvfNccrnenaprRC16PSK_EraqreQrivprEX10PSK_Zngevk:
 nop
 .text
-.globl b__MA5skpeg18FgevatIvrjGrzcyngrVjRP2REj
+.weak b__MA5skpeg18FgevatIvrjGrzcyngrVjRP2REj
 .type b__MA5skpeg18FgevatIvrjGrzcyngrVjRP2REj,%function
 b__MA5skpeg18FgevatIvrjGrzcyngrVjRP2REj:
 nop
@@ -30803,7 +30803,7 @@
 b_UhssznaGnoyr_O13:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA3ntt9cbq_qrdhrVAF_11iregrk_qvfgRYw6RR14nyybpngr_oybpxRw
+.weak b__MA3ntt9cbq_qrdhrVAF_11iregrk_qvfgRYw6RR14nyybpngr_oybpxRw
 .type b__MA3ntt9cbq_qrdhrVAF_11iregrk_qvfgRYw6RR14nyybpngr_oybpxRw,%function
 b__MA3ntt9cbq_qrdhrVAF_11iregrk_qvfgRYw6RR14nyybpngr_oybpxRw:
 nop
@@ -30813,7 +30813,7 @@
 b__MAX9PCQS_Sbag14VfGehrGlcrSbagRi:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA16PCQS_FnzcyrqShap16FnzcyrRapbqrVasbRAF_9nyybpngbeVF2_RRR8__nccraqRz
+.weak b__MAFg3__16irpgbeVA16PCQS_FnzcyrqShap16FnzcyrRapbqrVasbRAF_9nyybpngbeVF2_RRR8__nccraqRz
 .type b__MAFg3__16irpgbeVA16PCQS_FnzcyrqShap16FnzcyrRapbqrVasbRAF_9nyybpngbeVF2_RRR8__nccraqRz,%function
 b__MAFg3__16irpgbeVA16PCQS_FnzcyrqShap16FnzcyrRapbqrVasbRAF_9nyybpngbeVF2_RRR8__nccraqRz:
 nop
@@ -30833,7 +30833,7 @@
 b_pzfSerrCebsvyrFrdhraprQrfpevcgvba:
 nop
 .text
-.globl b__MAFg3__16irpgbeVzAF_9nyybpngbeVzRRR21__chfu_onpx_fybj_cnguVEXzRRiBG_
+.weak b__MAFg3__16irpgbeVzAF_9nyybpngbeVzRRR21__chfu_onpx_fybj_cnguVEXzRRiBG_
 .type b__MAFg3__16irpgbeVzAF_9nyybpngbeVzRRR21__chfu_onpx_fybj_cnguVEXzRRiBG_,%function
 b__MAFg3__16irpgbeVzAF_9nyybpngbeVzRRR21__chfu_onpx_fybj_cnguVEXzRRiBG_:
 nop
@@ -30848,7 +30848,7 @@
 b_UhssznaGnoyr_O15:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA3ntt15fgebxr_pnyp_pncVAF_9cbq_qrdhrVAF_10cbvag_glcrRYw6RRRRRiEG_EXAF_11iregrk_qvfgRF8_sAF_10yvar_pnc_rRss
+.weak b__MA3ntt15fgebxr_pnyp_pncVAF_9cbq_qrdhrVAF_10cbvag_glcrRYw6RRRRRiEG_EXAF_11iregrk_qvfgRF8_sAF_10yvar_pnc_rRss
 .type b__MA3ntt15fgebxr_pnyp_pncVAF_9cbq_qrdhrVAF_10cbvag_glcrRYw6RRRRRiEG_EXAF_11iregrk_qvfgRF8_sAF_10yvar_pnc_rRss,%function
 b__MA3ntt15fgebxr_pnyp_pncVAF_9cbq_qrdhrVAF_10cbvag_glcrRYw6RRRRRiEG_EXAF_11iregrk_qvfgRF8_sAF_10yvar_pnc_rRss:
 nop
@@ -30938,7 +30938,7 @@
 b__MA16PSKRH_VafregJbeqQ1Ri:
 nop
 .text
-.globl b__MAXFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR3fgeRi
+.weak b__MAXFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR3fgeRi
 .type b__MAXFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR3fgeRi,%function
 b__MAXFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR3fgeRi:
 nop
@@ -31023,7 +31023,7 @@
 b__MA19FpbcrqSbagGenafsbezP2RC11SG_SnprErp_C10SG_Zngevk_:
 nop
 .text
-.globl b__MAX5skpeg18FgevatIvrjGrzcyngrVjR8PbagnvafRj
+.weak b__MAX5skpeg18FgevatIvrjGrzcyngrVjR8PbagnvafRj
 .type b__MAX5skpeg18FgevatIvrjGrzcyngrVjR8PbagnvafRj,%function
 b__MAX5skpeg18FgevatIvrjGrzcyngrVjR8PbagnvafRj:
 nop
@@ -31093,7 +31093,7 @@
 b__MAX14PCQS_VagreSbez17TrgPbagebyNgCbvagRC9PCQS_CntrEX13PSK_CGrzcyngrVsRCv:
 nop
 .text
-.globl b__MAFg3__16irpgbeVsAF_9nyybpngbeVsRRR21__chfu_onpx_fybj_cnguVsRRiBG_
+.weak b__MAFg3__16irpgbeVsAF_9nyybpngbeVsRRR21__chfu_onpx_fybj_cnguVsRRiBG_
 .type b__MAFg3__16irpgbeVsAF_9nyybpngbeVsRRR21__chfu_onpx_fybj_cnguVsRRiBG_,%function
 b__MAFg3__16irpgbeVsAF_9nyybpngbeVsRRR21__chfu_onpx_fybj_cnguVsRRiBG_:
 nop
@@ -31168,12 +31168,12 @@
 b__MA22PCQSFQX_ONNaabgUnaqyre12EryrnfrNaabgRC13PCQSFQX_Naabg:
 nop
 .text
-.globl b__MAFg3__16__gerrVvAF_4yrffVvRRAF_9nyybpngbeVvRRR7qrfgeblRCAF_11__gerr_abqrVvCiRR
+.weak b__MAFg3__16__gerrVvAF_4yrffVvRRAF_9nyybpngbeVvRRR7qrfgeblRCAF_11__gerr_abqrVvCiRR
 .type b__MAFg3__16__gerrVvAF_4yrffVvRRAF_9nyybpngbeVvRRR7qrfgeblRCAF_11__gerr_abqrVvCiRR,%function
 b__MAFg3__16__gerrVvAF_4yrffVvRRAF_9nyybpngbeVvRRR7qrfgeblRCAF_11__gerr_abqrVvCiRR:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVC15PCQS_QvpgvbanelA5skpeg9ErgnvaCgeV18PCQS_FgehpgRyrzragRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF8_RRR7qrfgeblRCAF_11__gerr_abqrVF8_CiRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVC15PCQS_QvpgvbanelA5skpeg9ErgnvaCgeV18PCQS_FgehpgRyrzragRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF8_RRR7qrfgeblRCAF_11__gerr_abqrVF8_CiRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVC15PCQS_QvpgvbanelA5skpeg9ErgnvaCgeV18PCQS_FgehpgRyrzragRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF8_RRR7qrfgeblRCAF_11__gerr_abqrVF8_CiRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVC15PCQS_QvpgvbanelA5skpeg9ErgnvaCgeV18PCQS_FgehpgRyrzragRRRRAF_19__znc_inyhr_pbzcnerVF3_F8_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF8_RRR7qrfgeblRCAF_11__gerr_abqrVF8_CiRR:
 nop
@@ -31253,12 +31253,12 @@
 b__MAX16PCQS_PbagragZnex8ZnexQngn18TrgZnexrqPbagragVQRi:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVCX11PCQS_BowrpgC18PCQS_PbhagrqBowrpgV12PCQS_CnggreaRRRAF_19__znc_inyhr_pbzcnerVF4_F9_AF_4yrffVF4_RRYo1RRRAF_9nyybpngbeVF9_RRR7qrfgeblRCAF_11__gerr_abqrVF9_CiRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVCX11PCQS_BowrpgC18PCQS_PbhagrqBowrpgV12PCQS_CnggreaRRRAF_19__znc_inyhr_pbzcnerVF4_F9_AF_4yrffVF4_RRYo1RRRAF_9nyybpngbeVF9_RRR7qrfgeblRCAF_11__gerr_abqrVF9_CiRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVCX11PCQS_BowrpgC18PCQS_PbhagrqBowrpgV12PCQS_CnggreaRRRAF_19__znc_inyhr_pbzcnerVF4_F9_AF_4yrffVF4_RRYo1RRRAF_9nyybpngbeVF9_RRR7qrfgeblRCAF_11__gerr_abqrVF9_CiRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVCX11PCQS_BowrpgC18PCQS_PbhagrqBowrpgV12PCQS_CnggreaRRRAF_19__znc_inyhr_pbzcnerVF4_F9_AF_4yrffVF4_RRYo1RRRAF_9nyybpngbeVF9_RRR7qrfgeblRCAF_11__gerr_abqrVF9_CiRR:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_10havdhr_cgeV9PCQS_CFBCAF_14qrsnhyg_qryrgrVF2_RRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_
+.weak b__MAFg3__16irpgbeVAF_10havdhr_cgeV9PCQS_CFBCAF_14qrsnhyg_qryrgrVF2_RRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_
 .type b__MAFg3__16irpgbeVAF_10havdhr_cgeV9PCQS_CFBCAF_14qrsnhyg_qryrgrVF2_RRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_,%function
 b__MAFg3__16irpgbeVAF_10havdhr_cgeV9PCQS_CFBCAF_14qrsnhyg_qryrgrVF2_RRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_:
 nop
@@ -31283,12 +31283,12 @@
 b__MA14PCQSFQX_Jvqtrg16PyrneNccZbqvsvrqRi:
 nop
 .text
-.globl b__MAFg3__16irpgbeV20PCQS_PbagragZnexVgrzAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_
+.weak b__MAFg3__16irpgbeV20PCQS_PbagragZnexVgrzAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_
 .type b__MAFg3__16irpgbeV20PCQS_PbagragZnexVgrzAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_,%function
 b__MAFg3__16irpgbeV20PCQS_PbagragZnexVgrzAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_:
 nop
 .text
-.globl b__MA6cqsvhz10ZnxrHavdhrV9PCQS_AnzrWEA5skpeg7JrnxCgeVAF2_18FgevatCbbyGrzcyngrVAF2_10OlgrFgevatRRRAFg3__114qrsnhyg_qryrgrVF6_RRRREN10_XpRRRAF_8vagreany16ZnxrHavdhrErfhygVG_R6FpnyneRQcBG0_
+.weak b__MA6cqsvhz10ZnxrHavdhrV9PCQS_AnzrWEA5skpeg7JrnxCgeVAF2_18FgevatCbbyGrzcyngrVAF2_10OlgrFgevatRRRAFg3__114qrsnhyg_qryrgrVF6_RRRREN10_XpRRRAF_8vagreany16ZnxrHavdhrErfhygVG_R6FpnyneRQcBG0_
 .type b__MA6cqsvhz10ZnxrHavdhrV9PCQS_AnzrWEA5skpeg7JrnxCgeVAF2_18FgevatCbbyGrzcyngrVAF2_10OlgrFgevatRRRAFg3__114qrsnhyg_qryrgrVF6_RRRREN10_XpRRRAF_8vagreany16ZnxrHavdhrErfhygVG_R6FpnyneRQcBG0_,%function
 b__MA6cqsvhz10ZnxrHavdhrV9PCQS_AnzrWEA5skpeg7JrnxCgeVAF2_18FgevatCbbyGrzcyngrVAF2_10OlgrFgevatRRRAFg3__114qrsnhyg_qryrgrVF6_RRRREN10_XpRRRAF_8vagreany16ZnxrHavdhrErfhygVG_R6FpnyneRQcBG0_:
 nop
@@ -31298,7 +31298,7 @@
 b__MA11PSKRH_PyrneQ0Ri:
 nop
 .text
-.globl b__MA5skpeg18FgevatIvrjGrzcyngrVjRP2REXF1_
+.weak b__MA5skpeg18FgevatIvrjGrzcyngrVjRP2REXF1_
 .type b__MA5skpeg18FgevatIvrjGrzcyngrVjRP2REXF1_,%function
 b__MA5skpeg18FgevatIvrjGrzcyngrVjRP2REXF1_:
 nop
@@ -31393,7 +31393,7 @@
 b__MA15PCQS_CntrBowrpg6NfCnguRi:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVwZ24PCQS_FgernzPbagragCnefreSiiRRRAF_19__znc_inyhr_pbzcnerVwF5_AF_4yrffVwRRYo1RRRAF_9nyybpngbeVF5_RRR7qrfgeblRCAF_11__gerr_abqrVF5_CiRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVwZ24PCQS_FgernzPbagragCnefreSiiRRRAF_19__znc_inyhr_pbzcnerVwF5_AF_4yrffVwRRYo1RRRAF_9nyybpngbeVF5_RRR7qrfgeblRCAF_11__gerr_abqrVF5_CiRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVwZ24PCQS_FgernzPbagragCnefreSiiRRRAF_19__znc_inyhr_pbzcnerVwF5_AF_4yrffVwRRYo1RRRAF_9nyybpngbeVF5_RRR7qrfgeblRCAF_11__gerr_abqrVF5_CiRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVwZ24PCQS_FgernzPbagragCnefreSiiRRRAF_19__znc_inyhr_pbzcnerVwF5_AF_4yrffVwRRYo1RRRAF_9nyybpngbeVF5_RRR7qrfgeblRCAF_11__gerr_abqrVF5_CiRR:
 nop
@@ -31408,7 +31408,7 @@
 b__MA11PSKRH_Pyrne4HaqbRi:
 nop
 .text
-.globl b__MA5skpeg18FgevatCbbyGrzcyngrVAF_10OlgrFgevatRR5PyrneRi
+.weak b__MA5skpeg18FgevatCbbyGrzcyngrVAF_10OlgrFgevatRR5PyrneRi
 .type b__MA5skpeg18FgevatCbbyGrzcyngrVAF_10OlgrFgevatRR5PyrneRi,%function
 b__MA5skpeg18FgevatCbbyGrzcyngrVAF_10OlgrFgevatRR5PyrneRi:
 nop
@@ -31423,7 +31423,7 @@
 b__M14QrsnhygTrgSbagC17_SCQS_FLFSBAGVASBCXp:
 nop
 .text
-.globl b__MAFg3__16irpgbeVC15PCQS_QvpgvbanelAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVF2_RRiBG_
+.weak b__MAFg3__16irpgbeVC15PCQS_QvpgvbanelAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVF2_RRiBG_
 .type b__MAFg3__16irpgbeVC15PCQS_QvpgvbanelAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVF2_RRiBG_,%function
 b__MAFg3__16irpgbeVC15PCQS_QvpgvbanelAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVF2_RRiBG_:
 nop
@@ -31513,7 +31513,7 @@
 b__MA14SCQS_PUNE_VASBQ2Ri:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA5skpeg10JvqrFgevatRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVEXF2_RRiBG_
+.weak b__MAFg3__16irpgbeVA5skpeg10JvqrFgevatRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVEXF2_RRiBG_
 .type b__MAFg3__16irpgbeVA5skpeg10JvqrFgevatRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVEXF2_RRiBG_,%function
 b__MAFg3__16irpgbeVA5skpeg10JvqrFgevatRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVEXF2_RRiBG_:
 nop
@@ -31558,7 +31558,7 @@
 b__MA19PCQS_GrkgBowrpgVgrzP1Ri:
 nop
 .text
-.globl b__MAX5skpeg18FgevatIvrjGrzcyngrVjR5TrgVQRi
+.weak b__MAX5skpeg18FgevatIvrjGrzcyngrVjR5TrgVQRi
 .type b__MAX5skpeg18FgevatIvrjGrzcyngrVjR5TrgVQRi,%function
 b__MAX5skpeg18FgevatIvrjGrzcyngrVjR5TrgVQRi:
 nop
@@ -31633,7 +31633,7 @@
 b__MA5skpegyfREAFg3__113onfvp_bfgernzVpAF0_11pune_genvgfVpRRRREXAF_18FgevatIvrjGrzcyngrVpRR:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA5skpeg9ErgnvaCgeV14PCQS_FgernzNppRRAF_9nyybpngbeVF4_RRR8__nccraqRz
+.weak b__MAFg3__16irpgbeVA5skpeg9ErgnvaCgeV14PCQS_FgernzNppRRAF_9nyybpngbeVF4_RRR8__nccraqRz
 .type b__MAFg3__16irpgbeVA5skpeg9ErgnvaCgeV14PCQS_FgernzNppRRAF_9nyybpngbeVF4_RRR8__nccraqRz,%function
 b__MAFg3__16irpgbeVA5skpeg9ErgnvaCgeV14PCQS_FgernzNppRRAF_9nyybpngbeVF4_RRR8__nccraqRz:
 nop
@@ -31953,7 +31953,7 @@
 b__MA13PCQS_ObbxznexQ2Ri:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_10havdhr_cgeV13PCIG_JbeqVasbAF_14qrsnhyg_qryrgrVF2_RRRRAF_9nyybpngbeVF5_RRR6vafregRAF_11__jenc_vgreVCXF5_RRBF5_
+.weak b__MAFg3__16irpgbeVAF_10havdhr_cgeV13PCIG_JbeqVasbAF_14qrsnhyg_qryrgrVF2_RRRRAF_9nyybpngbeVF5_RRR6vafregRAF_11__jenc_vgreVCXF5_RRBF5_
 .type b__MAFg3__16irpgbeVAF_10havdhr_cgeV13PCIG_JbeqVasbAF_14qrsnhyg_qryrgrVF2_RRRRAF_9nyybpngbeVF5_RRR6vafregRAF_11__jenc_vgreVCXF5_RRBF5_,%function
 b__MAFg3__16irpgbeVAF_10havdhr_cgeV13PCIG_JbeqVasbAF_14qrsnhyg_qryrgrVF2_RRRRAF_9nyybpngbeVF5_RRR6vafregRAF_11__jenc_vgreVCXF5_RRBF5_:
 nop
@@ -31963,12 +31963,12 @@
 b__MA10PCJY_GvzreQ1Ri:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_4cnveVwwRRwRRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR7qrfgeblRCAF_11__gerr_abqrVF4_CiRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_4cnveVwwRRwRRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR7qrfgeblRCAF_11__gerr_abqrVF4_CiRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_4cnveVwwRRwRRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR7qrfgeblRCAF_11__gerr_abqrVF4_CiRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_4cnveVwwRRwRRAF_19__znc_inyhr_pbzcnerVF3_F4_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR7qrfgeblRCAF_11__gerr_abqrVF4_CiRR:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVA5skpeg10OlgrFgevatRAF2_9ErgnvaCgeV9PCQS_PZncRRRRAF_19__znc_inyhr_pbzcnerVF3_F7_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF7_RRR25__rzcynpr_havdhr_xrl_netfVF3_WEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXF3_RRRAFW_VWRRRRRRAF_4cnveVAF_15__gerr_vgrengbeVF7_CAF_11__gerr_abqrVF7_CiRRyRRoRREXG_QcBG0_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVA5skpeg10OlgrFgevatRAF2_9ErgnvaCgeV9PCQS_PZncRRRRAF_19__znc_inyhr_pbzcnerVF3_F7_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF7_RRR25__rzcynpr_havdhr_xrl_netfVF3_WEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXF3_RRRAFW_VWRRRRRRAF_4cnveVAF_15__gerr_vgrengbeVF7_CAF_11__gerr_abqrVF7_CiRRyRRoRREXG_QcBG0_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVA5skpeg10OlgrFgevatRAF2_9ErgnvaCgeV9PCQS_PZncRRRRAF_19__znc_inyhr_pbzcnerVF3_F7_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF7_RRR25__rzcynpr_havdhr_xrl_netfVF3_WEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXF3_RRRAFW_VWRRRRRRAF_4cnveVAF_15__gerr_vgrengbeVF7_CAF_11__gerr_abqrVF7_CiRRyRRoRREXG_QcBG0_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVA5skpeg10OlgrFgevatRAF2_9ErgnvaCgeV9PCQS_PZncRRRRAF_19__znc_inyhr_pbzcnerVF3_F7_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF7_RRR25__rzcynpr_havdhr_xrl_netfVF3_WEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXF3_RRRAFW_VWRRRRRRAF_4cnveVAF_15__gerr_vgrengbeVF7_CAF_11__gerr_abqrVF7_CiRRyRRoRREXG_QcBG0_:
 nop
@@ -32023,7 +32023,7 @@
 b__MA13PCJY_PbzobObk15FrgSvyyreAbgvslRC18VCJY_Svyyre_Abgvsl:
 nop
 .text
-.globl b__MAFg3__112__qrdhr_onfrVAF_10havdhr_cgeV15PCQS_CntrBowrpgAF_14qrsnhyg_qryrgrVF2_RRRRAF_9nyybpngbeVF5_RRR5pyrneRi
+.weak b__MAFg3__112__qrdhr_onfrVAF_10havdhr_cgeV15PCQS_CntrBowrpgAF_14qrsnhyg_qryrgrVF2_RRRRAF_9nyybpngbeVF5_RRR5pyrneRi
 .type b__MAFg3__112__qrdhr_onfrVAF_10havdhr_cgeV15PCQS_CntrBowrpgAF_14qrsnhyg_qryrgrVF2_RRRRAF_9nyybpngbeVF5_RRR5pyrneRi,%function
 b__MAFg3__112__qrdhr_onfrVAF_10havdhr_cgeV15PCQS_CntrBowrpgAF_14qrsnhyg_qryrgrVF2_RRRRAF_9nyybpngbeVF5_RRR5pyrneRi:
 nop
@@ -32133,7 +32133,7 @@
 b_pzfCvcryvarNyybp:
 nop
 .data
-.globl b__MGFFg12yratgu_reebe
+.weak b__MGFFg12yratgu_reebe
 .type b__MGFFg12yratgu_reebe,%object
 b__MGFFg12yratgu_reebe:
 .space __SIZEOF_POINTER__
@@ -32148,7 +32148,7 @@
 b__MA18PCQS_PelcgbUnaqyre11PelcgSvavfuRCiE13PSK_OvanelOhso:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVA5skpeg9ErgnvaCgeV14PCQS_FgernzNppRRAF_3zncVwwAF_4yrffVwRRAF_9nyybpngbeVAF_4cnveVXwwRRRRRRRRAF_19__znc_inyhr_pbzcnerVF5_FS_AF7_VF5_RRYo1RRRAF9_VFS_RRR7qrfgeblRCAF_11__gerr_abqrVFS_CiRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVA5skpeg9ErgnvaCgeV14PCQS_FgernzNppRRAF_3zncVwwAF_4yrffVwRRAF_9nyybpngbeVAF_4cnveVXwwRRRRRRRRAF_19__znc_inyhr_pbzcnerVF5_FS_AF7_VF5_RRYo1RRRAF9_VFS_RRR7qrfgeblRCAF_11__gerr_abqrVFS_CiRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVA5skpeg9ErgnvaCgeV14PCQS_FgernzNppRRAF_3zncVwwAF_4yrffVwRRAF_9nyybpngbeVAF_4cnveVXwwRRRRRRRRAF_19__znc_inyhr_pbzcnerVF5_FS_AF7_VF5_RRYo1RRRAF9_VFS_RRR7qrfgeblRCAF_11__gerr_abqrVFS_CiRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVA5skpeg9ErgnvaCgeV14PCQS_FgernzNppRRAF_3zncVwwAF_4yrffVwRRAF_9nyybpngbeVAF_4cnveVXwwRRRRRRRRAF_19__znc_inyhr_pbzcnerVF5_FS_AF7_VF5_RRYo1RRRAF9_VFS_RRR7qrfgeblRCAF_11__gerr_abqrVFS_CiRR:
 nop
@@ -32188,7 +32188,7 @@
 b_w2x_qhzc_vzntr_urnqre:
 nop
 .text
-.globl b__MAFg3__16irpgbeVC13PCQSFQX_NaabgAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVEXF2_RRiBG_
+.weak b__MAFg3__16irpgbeVC13PCQSFQX_NaabgAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVEXF2_RRiBG_
 .type b__MAFg3__16irpgbeVC13PCQSFQX_NaabgAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVEXF2_RRiBG_,%function
 b__MAFg3__16irpgbeVC13PCQSFQX_NaabgAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVEXF2_RRiBG_:
 nop
@@ -32573,7 +32573,7 @@
 b__MA13PSK_SnprPnpur17YbbxHcTylcuOvgzncRCX8PSK_SbagCX10PSK_ZngevkEXA5skpeg10OlgrFgevatRwovv:
 nop
 .text
-.globl b__MAFg3__16__gerrVwAF_4yrffVwRRAF_9nyybpngbeVwRRR7qrfgeblRCAF_11__gerr_abqrVwCiRR
+.weak b__MAFg3__16__gerrVwAF_4yrffVwRRAF_9nyybpngbeVwRRR7qrfgeblRCAF_11__gerr_abqrVwCiRR
 .type b__MAFg3__16__gerrVwAF_4yrffVwRRAF_9nyybpngbeVwRRR7qrfgeblRCAF_11__gerr_abqrVwCiRR,%function
 b__MAFg3__16__gerrVwAF_4yrffVwRRAF_9nyybpngbeVwRRR7qrfgeblRCAF_11__gerr_abqrVwCiRR:
 nop
@@ -32598,7 +32598,7 @@
 b__MA19PSK_NttQrivprQevire18FrgPyvc_CnguFgebxrRCX12PSK_CnguQngnCX10PSK_ZngevkCX18PSK_TencuFgngrQngn:
 nop
 .text
-.globl b__MAX5skpeg18FgevatIvrjGrzcyngrVjR12GevzzrqEvtugRj
+.weak b__MAX5skpeg18FgevatIvrjGrzcyngrVjR12GevzzrqEvtugRj
 .type b__MAX5skpeg18FgevatIvrjGrzcyngrVjR12GevzzrqEvtugRj,%function
 b__MAX5skpeg18FgevatIvrjGrzcyngrVjR12GevzzrqEvtugRj:
 nop
@@ -32638,7 +32638,7 @@
 b__M23PSKSybngErpgSebzSFERPGSEX10_SF_ERPGS_:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_10havdhr_cgeV13WOvt2CntrVasbAF_14qrsnhyg_qryrgrVF2_RRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_
+.weak b__MAFg3__16irpgbeVAF_10havdhr_cgeV13WOvt2CntrVasbAF_14qrsnhyg_qryrgrVF2_RRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_
 .type b__MAFg3__16irpgbeVAF_10havdhr_cgeV13WOvt2CntrVasbAF_14qrsnhyg_qryrgrVF2_RRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_,%function
 b__MAFg3__16irpgbeVAF_10havdhr_cgeV13WOvt2CntrVasbAF_14qrsnhyg_qryrgrVF2_RRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_:
 nop
@@ -32778,7 +32778,7 @@
 b__MA16PCQS_QbpCntrQngn15TrgFgnaqneqSbagREXA5skpeg10OlgrFgevatRC17PCQS_SbagRapbqvat:
 nop
 .text
-.globl b__MAFg3__16irpgbeVyAF_9nyybpngbeVyRRR21__chfu_onpx_fybj_cnguVyRRiBG_
+.weak b__MAFg3__16irpgbeVyAF_9nyybpngbeVyRRR21__chfu_onpx_fybj_cnguVyRRiBG_
 .type b__MAFg3__16irpgbeVyAF_9nyybpngbeVyRRR21__chfu_onpx_fybj_cnguVyRRiBG_,%function
 b__MAFg3__16irpgbeVyAF_9nyybpngbeVyRRR21__chfu_onpx_fybj_cnguVyRRiBG_:
 nop
@@ -32798,7 +32798,7 @@
 b__MA14PCQS_NyyFgngrf12CebprffRkgTFRC15PCQS_QvpgvbanelC24PCQS_FgernzPbagragCnefre:
 nop
 .text
-.globl b__MAFg3__16irpgbeV15SKGRKG_TYLCUCBFAF_9nyybpngbeVF1_RRR8__nccraqRz
+.weak b__MAFg3__16irpgbeV15SKGRKG_TYLCUCBFAF_9nyybpngbeVF1_RRR8__nccraqRz
 .type b__MAFg3__16irpgbeV15SKGRKG_TYLCUCBFAF_9nyybpngbeVF1_RRR8__nccraqRz,%function
 b__MAFg3__16irpgbeV15SKGRKG_TYLCUCBFAF_9nyybpngbeVF1_RRR8__nccraqRz:
 nop
@@ -32903,7 +32903,7 @@
 b_pzfPerngrYno2Cebsvyr:
 nop
 .text
-.globl b__MA6cqsvhz10ZnxrHavdhrV13PCQS_QbphzragWAFg3__110havdhr_cgeV11PCQS_CnefreAF2_14qrsnhyg_qryrgrVF4_RRRRRRRAF_8vagreany16ZnxrHavdhrErfhygVG_R6FpnyneRQcBG0_
+.weak b__MA6cqsvhz10ZnxrHavdhrV13PCQS_QbphzragWAFg3__110havdhr_cgeV11PCQS_CnefreAF2_14qrsnhyg_qryrgrVF4_RRRRRRRAF_8vagreany16ZnxrHavdhrErfhygVG_R6FpnyneRQcBG0_
 .type b__MA6cqsvhz10ZnxrHavdhrV13PCQS_QbphzragWAFg3__110havdhr_cgeV11PCQS_CnefreAF2_14qrsnhyg_qryrgrVF4_RRRRRRRAF_8vagreany16ZnxrHavdhrErfhygVG_R6FpnyneRQcBG0_,%function
 b__MA6cqsvhz10ZnxrHavdhrV13PCQS_QbphzragWAFg3__110havdhr_cgeV11PCQS_CnefreAF2_14qrsnhyg_qryrgrVF4_RRRRRRRAF_8vagreany16ZnxrHavdhrErfhygVG_R6FpnyneRQcBG0_:
 nop
@@ -32923,7 +32923,7 @@
 b__MAX5skpeg10OlgrFgevat4SvaqREXAF_18FgevatIvrjGrzcyngrVpRRz:
 nop
 .text
-.globl b__MAFg3__16irpgbeVwAF_9nyybpngbeVwRRR21__chfu_onpx_fybj_cnguVEXwRRiBG_
+.weak b__MAFg3__16irpgbeVwAF_9nyybpngbeVwRRR21__chfu_onpx_fybj_cnguVEXwRRiBG_
 .type b__MAFg3__16irpgbeVwAF_9nyybpngbeVwRRR21__chfu_onpx_fybj_cnguVEXwRRiBG_,%function
 b__MAFg3__16irpgbeVwAF_9nyybpngbeVwRRR21__chfu_onpx_fybj_cnguVEXwRRiBG_:
 nop
@@ -32988,7 +32988,7 @@
 b__MA27PPbqrp_SyngrFpnayvarQrpbqreQ1Ri:
 nop
 .text
-.globl b__MAFg3__16__gerrVCXuAF_4yrffVF2_RRAF_9nyybpngbeVF2_RRR7qrfgeblRCAF_11__gerr_abqrVF2_CiRR
+.weak b__MAFg3__16__gerrVCXuAF_4yrffVF2_RRAF_9nyybpngbeVF2_RRR7qrfgeblRCAF_11__gerr_abqrVF2_CiRR
 .type b__MAFg3__16__gerrVCXuAF_4yrffVF2_RRAF_9nyybpngbeVF2_RRR7qrfgeblRCAF_11__gerr_abqrVF2_CiRR,%function
 b__MAFg3__16__gerrVCXuAF_4yrffVF2_RRAF_9nyybpngbeVF2_RRR7qrfgeblRCAF_11__gerr_abqrVF2_CiRR:
 nop
@@ -32998,7 +32998,7 @@
 b__MA14PCQS_QngnNinvy21CnefrVaqverpgBowrpgNgRywC25PCQS_VaqverpgBowrpgUbyqre:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVwAF_6irpgbeVC15PCQS_QvpgvbanelAF_9nyybpngbeVF4_RRRRRRAF_19__znc_inyhr_pbzcnerVwF8_AF_4yrffVwRRYo1RRRAF5_VF8_RRR7qrfgeblRCAF_11__gerr_abqrVF8_CiRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVwAF_6irpgbeVC15PCQS_QvpgvbanelAF_9nyybpngbeVF4_RRRRRRAF_19__znc_inyhr_pbzcnerVwF8_AF_4yrffVwRRYo1RRRAF5_VF8_RRR7qrfgeblRCAF_11__gerr_abqrVF8_CiRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVwAF_6irpgbeVC15PCQS_QvpgvbanelAF_9nyybpngbeVF4_RRRRRRAF_19__znc_inyhr_pbzcnerVwF8_AF_4yrffVwRRYo1RRRAF5_VF8_RRR7qrfgeblRCAF_11__gerr_abqrVF8_CiRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVwAF_6irpgbeVC15PCQS_QvpgvbanelAF_9nyybpngbeVF4_RRRRRRAF_19__znc_inyhr_pbzcnerVwF8_AF_4yrffVwRRYo1RRRAF5_VF8_RRR7qrfgeblRCAF_11__gerr_abqrVF8_CiRR:
 nop
@@ -33018,17 +33018,17 @@
 b__MGI20PCQS_QVOGenafsreShap:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVA5skpeg10OlgrFgevatRAF_10havdhr_cgeV11PGGSbagQrfpAF_14qrsnhyg_qryrgrVF5_RRRRRRAF_19__znc_inyhr_pbzcnerVF3_F9_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF9_RRR7qrfgeblRCAF_11__gerr_abqrVF9_CiRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVA5skpeg10OlgrFgevatRAF_10havdhr_cgeV11PGGSbagQrfpAF_14qrsnhyg_qryrgrVF5_RRRRRRAF_19__znc_inyhr_pbzcnerVF3_F9_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF9_RRR7qrfgeblRCAF_11__gerr_abqrVF9_CiRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVA5skpeg10OlgrFgevatRAF_10havdhr_cgeV11PGGSbagQrfpAF_14qrsnhyg_qryrgrVF5_RRRRRRAF_19__znc_inyhr_pbzcnerVF3_F9_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF9_RRR7qrfgeblRCAF_11__gerr_abqrVF9_CiRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVA5skpeg10OlgrFgevatRAF_10havdhr_cgeV11PGGSbagQrfpAF_14qrsnhyg_qryrgrVF5_RRRRRRAF_19__znc_inyhr_pbzcnerVF3_F9_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF9_RRR7qrfgeblRCAF_11__gerr_abqrVF9_CiRR:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA5skpeg10BofreinoyrV13PCQSFQX_NaabgR11BofreirqCgeRAF_9nyybpngbeVF5_RRR24__rzcynpr_onpx_fybj_cnguVWECF3_RRRiQcBG_
+.weak b__MAFg3__16irpgbeVA5skpeg10BofreinoyrV13PCQSFQX_NaabgR11BofreirqCgeRAF_9nyybpngbeVF5_RRR24__rzcynpr_onpx_fybj_cnguVWECF3_RRRiQcBG_
 .type b__MAFg3__16irpgbeVA5skpeg10BofreinoyrV13PCQSFQX_NaabgR11BofreirqCgeRAF_9nyybpngbeVF5_RRR24__rzcynpr_onpx_fybj_cnguVWECF3_RRRiQcBG_,%function
 b__MAFg3__16irpgbeVA5skpeg10BofreinoyrV13PCQSFQX_NaabgR11BofreirqCgeRAF_9nyybpngbeVF5_RRR24__rzcynpr_onpx_fybj_cnguVWECF3_RRRiQcBG_:
 nop
 .text
-.globl b__MA6cqsvhz10ZnxrHavdhrV11PCQS_FgevatWEA5skpeg7JrnxCgeVAF2_18FgevatCbbyGrzcyngrVAF2_10OlgrFgevatRRRAFg3__114qrsnhyg_qryrgrVF6_RRRREF5_oRRRAF_8vagreany16ZnxrHavdhrErfhygVG_R6FpnyneRQcBG0_
+.weak b__MA6cqsvhz10ZnxrHavdhrV11PCQS_FgevatWEA5skpeg7JrnxCgeVAF2_18FgevatCbbyGrzcyngrVAF2_10OlgrFgevatRRRAFg3__114qrsnhyg_qryrgrVF6_RRRREF5_oRRRAF_8vagreany16ZnxrHavdhrErfhygVG_R6FpnyneRQcBG0_
 .type b__MA6cqsvhz10ZnxrHavdhrV11PCQS_FgevatWEA5skpeg7JrnxCgeVAF2_18FgevatCbbyGrzcyngrVAF2_10OlgrFgevatRRRAFg3__114qrsnhyg_qryrgrVF6_RRRREF5_oRRRAF_8vagreany16ZnxrHavdhrErfhygVG_R6FpnyneRQcBG0_,%function
 b__MA6cqsvhz10ZnxrHavdhrV11PCQS_FgevatWEA5skpeg7JrnxCgeVAF2_18FgevatCbbyGrzcyngrVAF2_10OlgrFgevatRRRAFg3__114qrsnhyg_qryrgrVF6_RRRREF5_oRRRAF_8vagreany16ZnxrHavdhrErfhygVG_R6FpnyneRQcBG0_:
 nop
@@ -33083,7 +33083,7 @@
 b__MA14PCQS_ErsreraprP1RC25PCQS_VaqverpgBowrpgUbyqrew:
 nop
 .text
-.globl b__MA6cqsvhz10ZnxrHavdhrV11PCQS_FgevatWEA5skpeg7JrnxCgeVAF2_18FgevatCbbyGrzcyngrVAF2_10OlgrFgevatRRRAFg3__114qrsnhyg_qryrgrVF6_RRRREF5_EoRRRAF_8vagreany16ZnxrHavdhrErfhygVG_R6FpnyneRQcBG0_
+.weak b__MA6cqsvhz10ZnxrHavdhrV11PCQS_FgevatWEA5skpeg7JrnxCgeVAF2_18FgevatCbbyGrzcyngrVAF2_10OlgrFgevatRRRAFg3__114qrsnhyg_qryrgrVF6_RRRREF5_EoRRRAF_8vagreany16ZnxrHavdhrErfhygVG_R6FpnyneRQcBG0_
 .type b__MA6cqsvhz10ZnxrHavdhrV11PCQS_FgevatWEA5skpeg7JrnxCgeVAF2_18FgevatCbbyGrzcyngrVAF2_10OlgrFgevatRRRAFg3__114qrsnhyg_qryrgrVF6_RRRREF5_EoRRRAF_8vagreany16ZnxrHavdhrErfhygVG_R6FpnyneRQcBG0_,%function
 b__MA6cqsvhz10ZnxrHavdhrV11PCQS_FgevatWEA5skpeg7JrnxCgeVAF2_18FgevatCbbyGrzcyngrVAF2_10OlgrFgevatRRRAFg3__114qrsnhyg_qryrgrVF6_RRRREF5_EoRRRAF_8vagreany16ZnxrHavdhrErfhygVG_R6FpnyneRQcBG0_:
 nop
@@ -33098,7 +33098,7 @@
 b__MA12PCYFG_Fryrpg4QbarRi:
 nop
 .text
-.globl b__MAFg3__16__gerrVCA5skpeg10BofreinoyrV27PCQSFQX_SbezSvyyRaivebazragR11BofreirqCgeRAF_4yrffVF6_RRAF_9nyybpngbeVF6_RRR7qrfgeblRCAF_11__gerr_abqrVF6_CiRR
+.weak b__MAFg3__16__gerrVCA5skpeg10BofreinoyrV27PCQSFQX_SbezSvyyRaivebazragR11BofreirqCgeRAF_4yrffVF6_RRAF_9nyybpngbeVF6_RRR7qrfgeblRCAF_11__gerr_abqrVF6_CiRR
 .type b__MAFg3__16__gerrVCA5skpeg10BofreinoyrV27PCQSFQX_SbezSvyyRaivebazragR11BofreirqCgeRAF_4yrffVF6_RRAF_9nyybpngbeVF6_RRR7qrfgeblRCAF_11__gerr_abqrVF6_CiRR,%function
 b__MAFg3__16__gerrVCA5skpeg10BofreinoyrV27PCQSFQX_SbezSvyyRaivebazragR11BofreirqCgeRAF_4yrffVF6_RRAF_9nyybpngbeVF6_RRR7qrfgeblRCAF_11__gerr_abqrVF6_CiRR:
 nop
@@ -33118,7 +33118,7 @@
 b__MA15PCQS_GrkgBowrpgP2Ri:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVC11PCQS_FgernzC20PCQS_VzntrPnpurRagelRRAF_19__znc_inyhr_pbzcnerVF3_F6_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF6_RRR7qrfgeblRCAF_11__gerr_abqrVF6_CiRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVC11PCQS_FgernzC20PCQS_VzntrPnpurRagelRRAF_19__znc_inyhr_pbzcnerVF3_F6_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF6_RRR7qrfgeblRCAF_11__gerr_abqrVF6_CiRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVC11PCQS_FgernzC20PCQS_VzntrPnpurRagelRRAF_19__znc_inyhr_pbzcnerVF3_F6_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF6_RRR7qrfgeblRCAF_11__gerr_abqrVF6_CiRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVC11PCQS_FgernzC20PCQS_VzntrPnpurRagelRRAF_19__znc_inyhr_pbzcnerVF3_F6_AF_4yrffVF3_RRYo1RRRAF_9nyybpngbeVF6_RRR7qrfgeblRCAF_11__gerr_abqrVF6_CiRR:
 nop
@@ -33328,7 +33328,7 @@
 b__MAX9PCQS_Anzr7JevgrGbRC17VSK_NepuvirFgernz:
 nop
 .text
-.globl b__MAFg3__16irpgbeVyAF_9nyybpngbeVyRRR6vafregRAF_11__jenc_vgreVCXyRRBy
+.weak b__MAFg3__16irpgbeVyAF_9nyybpngbeVyRRR6vafregRAF_11__jenc_vgreVCXyRRBy
 .type b__MAFg3__16irpgbeVyAF_9nyybpngbeVyRRR6vafregRAF_11__jenc_vgreVCXyRRBy,%function
 b__MAFg3__16irpgbeVyAF_9nyybpngbeVyRRR6vafregRAF_11__jenc_vgreVCXyRRBy:
 nop
@@ -33338,7 +33338,7 @@
 b__MGI16PSKRH_VafregGrkg:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX5skpeg18FgevatIvrjGrzcyngrVpR5SvefgRi
+.weak b__MAX5skpeg18FgevatIvrjGrzcyngrVpR5SvefgRi
 .type b__MAX5skpeg18FgevatIvrjGrzcyngrVpR5SvefgRi,%function
 b__MAX5skpeg18FgevatIvrjGrzcyngrVpR5SvefgRi:
 nop
@@ -33473,7 +33473,7 @@
 b__MAX13PCJY_RqvgVzcy12TrgEnatrGrkgREX14PCIG_JbeqEnatr:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_10havdhr_cgeVA13PCJY_YvfgPgey4VgrzRAF_14qrsnhyg_qryrgrVF3_RRRRAF_9nyybpngbeVF6_RRR21__chfu_onpx_fybj_cnguVF6_RRiBG_
+.weak b__MAFg3__16irpgbeVAF_10havdhr_cgeVA13PCJY_YvfgPgey4VgrzRAF_14qrsnhyg_qryrgrVF3_RRRRAF_9nyybpngbeVF6_RRR21__chfu_onpx_fybj_cnguVF6_RRiBG_
 .type b__MAFg3__16irpgbeVAF_10havdhr_cgeVA13PCJY_YvfgPgey4VgrzRAF_14qrsnhyg_qryrgrVF3_RRRRAF_9nyybpngbeVF6_RRR21__chfu_onpx_fybj_cnguVF6_RRiBG_,%function
 b__MAFg3__16irpgbeVAF_10havdhr_cgeVA13PCJY_YvfgPgey4VgrzRAF_14qrsnhyg_qryrgrVF3_RRRRAF_9nyybpngbeVF6_RRR21__chfu_onpx_fybj_cnguVF6_RRiBG_:
 nop
@@ -33553,7 +33553,7 @@
 b__MA13PSK_SybngErpgP2REX7SK_ERPG:
 nop
 .text
-.globl b__MA5skpeg18FgevatIvrjGrzcyngrVjRP1REXF1_
+.weak b__MA5skpeg18FgevatIvrjGrzcyngrVjRP1REXF1_
 .type b__MA5skpeg18FgevatIvrjGrzcyngrVjRP1REXF1_,%function
 b__MA5skpeg18FgevatIvrjGrzcyngrVjRP1REXF1_:
 nop
diff --git a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_088.S b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_088.S
index 8311e94..0dd8d59 100644
--- a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_088.S
+++ b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_088.S
@@ -33,7 +33,7 @@
 b__MA7naqebvq9vzt_hgvyf12RaqvnaBhgchg5jevgrRCXvzz:
 nop
 .text
-.globl b__MA7naqebvq9vzt_hgvyf10GvssJevgre19hapurpxrqOhvyqRagelVwRRAF_2fcVAF0_9GvssRagelRRRgAF0_7GntGlcrRwAF0_10RaqvnaarffRCXG_
+.weak b__MA7naqebvq9vzt_hgvyf10GvssJevgre19hapurpxrqOhvyqRagelVwRRAF_2fcVAF0_9GvssRagelRRRgAF0_7GntGlcrRwAF0_10RaqvnaarffRCXG_
 .type b__MA7naqebvq9vzt_hgvyf10GvssJevgre19hapurpxrqOhvyqRagelVwRRAF_2fcVAF0_9GvssRagelRRRgAF0_7GntGlcrRwAF0_10RaqvnaarffRCXG_,%function
 b__MA7naqebvq9vzt_hgvyf10GvssJevgre19hapurpxrqOhvyqRagelVwRRAF_2fcVAF0_9GvssRagelRRRgAF0_7GntGlcrRwAF0_10RaqvnaarffRCXG_:
 nop
diff --git a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_090.S b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_090.S
index 26e4e1a..b19c79e 100644
--- a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_090.S
+++ b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_090.S
@@ -28,7 +28,7 @@
 b__MGPA7naqebvq14OaFbhaqGevttreR0_AF_10VVagresnprR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGGA7naqebvq20OcFbhaqGevttrePyvragR
+.weak b__MGGA7naqebvq20OcFbhaqGevttrePyvragR
 .type b__MGGA7naqebvq20OcFbhaqGevttrePyvragR,%object
 b__MGGA7naqebvq20OcFbhaqGevttrePyvragR:
 .space __SIZEOF_POINTER__
@@ -83,7 +83,7 @@
 b__MGPA7naqebvq12FbhaqGevttreR0_AF_19VFbhaqGevttrePyvragR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGPA7naqebvq14OcFbhaqGevttreR0_AF_10VVagresnprR
+.weak b__MGPA7naqebvq14OcFbhaqGevttreR0_AF_10VVagresnprR
 .type b__MGPA7naqebvq14OcFbhaqGevttreR0_AF_10VVagresnprR,%object
 b__MGPA7naqebvq14OcFbhaqGevttreR0_AF_10VVagresnprR:
 .space __SIZEOF_POINTER__
@@ -93,7 +93,7 @@
 b__MGGA7naqebvq14OaFbhaqGevttreR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIA7naqebvq20OcFbhaqGevttrePyvragR
+.weak b__MGIA7naqebvq20OcFbhaqGevttrePyvragR
 .type b__MGIA7naqebvq20OcFbhaqGevttrePyvragR,%object
 b__MGIA7naqebvq20OcFbhaqGevttrePyvragR:
 .space __SIZEOF_POINTER__
@@ -103,7 +103,7 @@
 b__MA7naqebvq22VFbhaqGevttreUjFreivpr10qrfpevcgbeR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGPA7naqebvq23OcFbhaqGevttreUjFreivprR8_AF_9OcErsOnfrR
+.weak b__MGPA7naqebvq23OcFbhaqGevttreUjFreivprR8_AF_9OcErsOnfrR
 .type b__MGPA7naqebvq23OcFbhaqGevttreUjFreivprR8_AF_9OcErsOnfrR,%object
 b__MGPA7naqebvq23OcFbhaqGevttreUjFreivprR8_AF_9OcErsOnfrR:
 .space __SIZEOF_POINTER__
@@ -128,7 +128,7 @@
 b__MA7naqebvq12FbhaqGevttre11yvfgZbqhyrfREXAF_8Fgevat16RC31fbhaq_gevttre_zbqhyr_qrfpevcgbeCw:
 nop
 .text
-.globl b__MA7naqebvq11OaVagresnprVAF_13VFbhaqGevttreRR10baNfOvaqreRi
+.weak b__MA7naqebvq11OaVagresnprVAF_13VFbhaqGevttreRR10baNfOvaqreRi
 .type b__MA7naqebvq11OaVagresnprVAF_13VFbhaqGevttreRR10baNfOvaqreRi,%function
 b__MA7naqebvq11OaVagresnprVAF_13VFbhaqGevttreRR10baNfOvaqreRi:
 nop
@@ -138,7 +138,7 @@
 b__MA7naqebvq13VFbhaqGevttre14trgQrsnhygVzcyRi:
 nop
 .data
-.globl b__MGGA7naqebvq14OcFbhaqGevttreR
+.weak b__MGGA7naqebvq14OcFbhaqGevttreR
 .type b__MGGA7naqebvq14OcFbhaqGevttreR,%object
 b__MGGA7naqebvq14OcFbhaqGevttreR:
 .space __SIZEOF_POINTER__
@@ -168,7 +168,7 @@
 b__MA7naqebvq12FbhaqGevttre12thvqGbFgevatRCX12nhqvb_hhvq_fCpz:
 nop
 .data
-.globl b__MGIA7naqebvq14OcFbhaqGevttreR
+.weak b__MGIA7naqebvq14OcFbhaqGevttreR
 .type b__MGIA7naqebvq14OcFbhaqGevttreR,%object
 b__MGIA7naqebvq14OcFbhaqGevttreR:
 .space __SIZEOF_POINTER__
@@ -208,12 +208,12 @@
 b__MGPA7naqebvq22VFbhaqGevttreUjFreivprR0_AF_10VVagresnprR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq11OaVagresnprVAF_19VFbhaqGevttrePyvragRR10baNfOvaqreRi
+.weak b__MA7naqebvq11OaVagresnprVAF_19VFbhaqGevttrePyvragRR10baNfOvaqreRi
 .type b__MA7naqebvq11OaVagresnprVAF_19VFbhaqGevttrePyvragRR10baNfOvaqreRi,%function
 b__MA7naqebvq11OaVagresnprVAF_19VFbhaqGevttrePyvragRR10baNfOvaqreRi:
 nop
 .data
-.globl b__MGPA7naqebvq14OcFbhaqGevttreR0_AF_11OcVagresnprVAF_13VFbhaqGevttreRRR
+.weak b__MGPA7naqebvq14OcFbhaqGevttreR0_AF_11OcVagresnprVAF_13VFbhaqGevttreRRR
 .type b__MGPA7naqebvq14OcFbhaqGevttreR0_AF_11OcVagresnprVAF_13VFbhaqGevttreRRR,%object
 b__MGPA7naqebvq14OcFbhaqGevttreR0_AF_11OcVagresnprVAF_13VFbhaqGevttreRRR:
 .space __SIZEOF_POINTER__
@@ -228,7 +228,7 @@
 b__MA7naqebvq19VFbhaqGevttrePyvrag14trgQrsnhygVzcyRi:
 nop
 .data
-.globl b__MGPA7naqebvq23OcFbhaqGevttreUjFreivprR0_AF_11OcVagresnprVAF_22VFbhaqGevttreUjFreivprRRR
+.weak b__MGPA7naqebvq23OcFbhaqGevttreUjFreivprR0_AF_11OcVagresnprVAF_22VFbhaqGevttreUjFreivprRRR
 .type b__MGPA7naqebvq23OcFbhaqGevttreUjFreivprR0_AF_11OcVagresnprVAF_22VFbhaqGevttreUjFreivprRRR,%object
 b__MGPA7naqebvq23OcFbhaqGevttreUjFreivprR0_AF_11OcVagresnprVAF_22VFbhaqGevttreUjFreivprRRR:
 .space __SIZEOF_POINTER__
@@ -253,7 +253,7 @@
 b__MGPA7naqebvq12FbhaqGevttreR32_AF_7VOvaqre14QrnguErpvcvragR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGPA7naqebvq20OcFbhaqGevttrePyvragR0_AF_11OcVagresnprVAF_19VFbhaqGevttrePyvragRRR
+.weak b__MGPA7naqebvq20OcFbhaqGevttrePyvragR0_AF_11OcVagresnprVAF_19VFbhaqGevttrePyvragRRR
 .type b__MGPA7naqebvq20OcFbhaqGevttrePyvragR0_AF_11OcVagresnprVAF_19VFbhaqGevttrePyvragRRR,%object
 b__MGPA7naqebvq20OcFbhaqGevttrePyvragR0_AF_11OcVagresnprVAF_19VFbhaqGevttrePyvragRRR:
 .space __SIZEOF_POINTER__
@@ -328,7 +328,7 @@
 b__MA7naqebvq14OaFbhaqGevttre10baGenafnpgRwEXAF_6CnepryRCF1_w:
 nop
 .data
-.globl b__MGPA7naqebvq20OcFbhaqGevttrePyvragR8_AF_9OcErsOnfrR
+.weak b__MGPA7naqebvq20OcFbhaqGevttrePyvragR8_AF_9OcErsOnfrR
 .type b__MGPA7naqebvq20OcFbhaqGevttrePyvragR8_AF_9OcErsOnfrR,%object
 b__MGPA7naqebvq20OcFbhaqGevttrePyvragR8_AF_9OcErsOnfrR:
 .space __SIZEOF_POINTER__
@@ -388,7 +388,7 @@
 b__MA7naqebvq12FbhaqGevttre24trgFbhaqGevttreUjFreivprRi:
 nop
 .data
-.globl b__MGPA7naqebvq14OcFbhaqGevttreR0_AF_13VFbhaqGevttreR
+.weak b__MGPA7naqebvq14OcFbhaqGevttreR0_AF_13VFbhaqGevttreR
 .type b__MGPA7naqebvq14OcFbhaqGevttreR0_AF_13VFbhaqGevttreR,%object
 b__MGPA7naqebvq14OcFbhaqGevttreR0_AF_13VFbhaqGevttreR:
 .space __SIZEOF_POINTER__
@@ -398,7 +398,7 @@
 b__MGPA7naqebvq23OaFbhaqGevttreUjFreivprR8_AF_7VOvaqreR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGPA7naqebvq23OcFbhaqGevttreUjFreivprR0_AF_22VFbhaqGevttreUjFreivprR
+.weak b__MGPA7naqebvq23OcFbhaqGevttreUjFreivprR0_AF_22VFbhaqGevttreUjFreivprR
 .type b__MGPA7naqebvq23OcFbhaqGevttreUjFreivprR0_AF_22VFbhaqGevttreUjFreivprR,%object
 b__MGPA7naqebvq23OcFbhaqGevttreUjFreivprR0_AF_22VFbhaqGevttreUjFreivprR:
 .space __SIZEOF_POINTER__
@@ -418,17 +418,17 @@
 b__MA7naqebvq13VFbhaqGevttre10qrfpevcgbeR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGPA7naqebvq14OcFbhaqGevttreR8_AF_9OcErsOnfrR
+.weak b__MGPA7naqebvq14OcFbhaqGevttreR8_AF_9OcErsOnfrR
 .type b__MGPA7naqebvq14OcFbhaqGevttreR8_AF_9OcErsOnfrR,%object
 b__MGPA7naqebvq14OcFbhaqGevttreR8_AF_9OcErsOnfrR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGPA7naqebvq20OcFbhaqGevttrePyvragR0_AF_19VFbhaqGevttrePyvragR
+.weak b__MGPA7naqebvq20OcFbhaqGevttrePyvragR0_AF_19VFbhaqGevttrePyvragR
 .type b__MGPA7naqebvq20OcFbhaqGevttrePyvragR0_AF_19VFbhaqGevttrePyvragR,%object
 b__MGPA7naqebvq20OcFbhaqGevttrePyvragR0_AF_19VFbhaqGevttrePyvragR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGPA7naqebvq23OcFbhaqGevttreUjFreivprR0_AF_10VVagresnprR
+.weak b__MGPA7naqebvq23OcFbhaqGevttreUjFreivprR0_AF_10VVagresnprR
 .type b__MGPA7naqebvq23OcFbhaqGevttreUjFreivprR0_AF_10VVagresnprR,%object
 b__MGPA7naqebvq23OcFbhaqGevttreUjFreivprR0_AF_10VVagresnprR:
 .space __SIZEOF_POINTER__
@@ -463,7 +463,7 @@
 b__MGua8_A7naqebvq12FbhaqGevttreQ1Ri:
 nop
 .text
-.globl b__MA7naqebvq11OaVagresnprVAF_22VFbhaqGevttreUjFreivprRR10baNfOvaqreRi
+.weak b__MA7naqebvq11OaVagresnprVAF_22VFbhaqGevttreUjFreivprRR10baNfOvaqreRi
 .type b__MA7naqebvq11OaVagresnprVAF_22VFbhaqGevttreUjFreivprRR10baNfOvaqreRi,%function
 b__MA7naqebvq11OaVagresnprVAF_22VFbhaqGevttreUjFreivprRR10baNfOvaqreRi:
 nop
@@ -473,7 +473,7 @@
 b__MA7naqebvq22VFbhaqGevttreUjFreivpr14trgQrsnhygVzcyRi:
 nop
 .data
-.globl b__MGGA7naqebvq23OcFbhaqGevttreUjFreivprR
+.weak b__MGGA7naqebvq23OcFbhaqGevttreUjFreivprR
 .type b__MGGA7naqebvq23OcFbhaqGevttreUjFreivprR,%object
 b__MGGA7naqebvq23OcFbhaqGevttreUjFreivprR:
 .space __SIZEOF_POINTER__
@@ -498,7 +498,7 @@
 b__MA7naqebvq13VFbhaqGevttre14frgQrsnhygVzcyRAFg3__110havdhr_cgeVF0_AF1_14qrsnhyg_qryrgrVF0_RRRR:
 nop
 .text
-.globl b__MA7naqebvq2fcVAF_22VFbhaqGevttreUjFreivprRRQ2Ri
+.weak b__MA7naqebvq2fcVAF_22VFbhaqGevttreUjFreivprRRQ2Ri
 .type b__MA7naqebvq2fcVAF_22VFbhaqGevttreUjFreivprRRQ2Ri,%function
 b__MA7naqebvq2fcVAF_22VFbhaqGevttreUjFreivprRRQ2Ri:
 nop
@@ -508,7 +508,7 @@
 b__MGPA7naqebvq20OaFbhaqGevttrePyvragR8_AF_7OOvaqreR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIA7naqebvq23OcFbhaqGevttreUjFreivprR
+.weak b__MGIA7naqebvq23OcFbhaqGevttreUjFreivprR
 .type b__MGIA7naqebvq23OcFbhaqGevttreUjFreivprR,%object
 b__MGIA7naqebvq23OcFbhaqGevttreUjFreivprR:
 .space __SIZEOF_POINTER__
@@ -643,7 +643,7 @@
 b__MA7naqebvq13VFbhaqGevttreQ2Ri:
 nop
 .data
-.globl b__MGPA7naqebvq20OcFbhaqGevttrePyvragR0_AF_10VVagresnprR
+.weak b__MGPA7naqebvq20OcFbhaqGevttrePyvragR0_AF_10VVagresnprR
 .type b__MGPA7naqebvq20OcFbhaqGevttrePyvragR0_AF_10VVagresnprR,%object
 b__MGPA7naqebvq20OcFbhaqGevttrePyvragR0_AF_10VVagresnprR:
 .space __SIZEOF_POINTER__
diff --git a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_091.S b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_091.S
index 30107ba..dca915a 100644
--- a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_091.S
+++ b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_091.S
@@ -3,7 +3,7 @@
 .data
 .p2align 4
 .text
-.globl b__MAFg3__112__unfu_gnoyrVCA7naqebvq8YehPnpurVA7zvavxva14YnlbhgPnpurXrlRCAF3_11YnlbhgCvrprRR10XrlrqRagelRAF7_12UnfuSbeRagelRAF7_24RdhnyvglSbeUnfurqRagevrfRAF_9nyybpngbeVF9_RRR6erunfuRz
+.weak b__MAFg3__112__unfu_gnoyrVCA7naqebvq8YehPnpurVA7zvavxva14YnlbhgPnpurXrlRCAF3_11YnlbhgCvrprRR10XrlrqRagelRAF7_12UnfuSbeRagelRAF7_24RdhnyvglSbeUnfurqRagevrfRAF_9nyybpngbeVF9_RRR6erunfuRz
 .type b__MAFg3__112__unfu_gnoyrVCA7naqebvq8YehPnpurVA7zvavxva14YnlbhgPnpurXrlRCAF3_11YnlbhgCvrprRR10XrlrqRagelRAF7_12UnfuSbeRagelRAF7_24RdhnyvglSbeUnfurqRagevrfRAF_9nyybpngbeVF9_RRR6erunfuRz,%function
 b__MAFg3__112__unfu_gnoyrVCA7naqebvq8YehPnpurVA7zvavxva14YnlbhgPnpurXrlRCAF3_11YnlbhgCvrprRR10XrlrqRagelRAF7_12UnfuSbeRagelRAF7_24RdhnyvglSbeUnfurqRagevrfRAF_9nyybpngbeVF9_RRR6erunfuRz:
 nop
@@ -23,12 +23,12 @@
 b__MAX7zvavxva14SbagPbyyrpgvba7vgrzvmrRAF_14H16FgevatCvrprRAF_9SbagFglyrRwAF_13SnzvylInevnagRw:
 nop
 .text
-.globl b__MA7naqebvq8YehPnpurVA7zvavxva14YnlbhgPnpurXrlRCAF1_11YnlbhgCvrprRRQ0Ri
+.weak b__MA7naqebvq8YehPnpurVA7zvavxva14YnlbhgPnpurXrlRCAF1_11YnlbhgCvrprRRQ0Ri
 .type b__MA7naqebvq8YehPnpurVA7zvavxva14YnlbhgPnpurXrlRCAF1_11YnlbhgCvrprRRQ0Ri,%function
 b__MA7naqebvq8YehPnpurVA7zvavxva14YnlbhgPnpurXrlRCAF1_11YnlbhgCvrprRRQ0Ri:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVA7zvavxva12ZvavxvaCnvagRwRRAF_22__habeqrerq_znc_unfureVF3_F4_AF2_12YnlbhgCvrprf11CnvagUnfureRYo1RRRAF_21__habeqrerq_znc_rdhnyVF3_F4_AF_8rdhny_gbVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR25__rzcynpr_havdhr_xrl_netfVF3_WAF_4cnveVF3_wRRRRRAFU_VAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF4_CiRRRRoRREXG_QcBG0_
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVA7zvavxva12ZvavxvaCnvagRwRRAF_22__habeqrerq_znc_unfureVF3_F4_AF2_12YnlbhgCvrprf11CnvagUnfureRYo1RRRAF_21__habeqrerq_znc_rdhnyVF3_F4_AF_8rdhny_gbVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR25__rzcynpr_havdhr_xrl_netfVF3_WAF_4cnveVF3_wRRRRRAFU_VAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF4_CiRRRRoRREXG_QcBG0_
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVA7zvavxva12ZvavxvaCnvagRwRRAF_22__habeqrerq_znc_unfureVF3_F4_AF2_12YnlbhgCvrprf11CnvagUnfureRYo1RRRAF_21__habeqrerq_znc_rdhnyVF3_F4_AF_8rdhny_gbVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR25__rzcynpr_havdhr_xrl_netfVF3_WAF_4cnveVF3_wRRRRRAFU_VAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF4_CiRRRRoRREXG_QcBG0_,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVA7zvavxva12ZvavxvaCnvagRwRRAF_22__habeqrerq_znc_unfureVF3_F4_AF2_12YnlbhgCvrprf11CnvagUnfureRYo1RRRAF_21__habeqrerq_znc_rdhnyVF3_F4_AF_8rdhny_gbVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR25__rzcynpr_havdhr_xrl_netfVF3_WAF_4cnveVF3_wRRRRRAFU_VAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF4_CiRRRRoRREXG_QcBG0_:
 nop
@@ -48,22 +48,22 @@
 b__MA7zvavxva17rzbwvOvqvBireevqrRCXiv:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVCXA7zvavxva4SbagRwRRAF_22__habeqrerq_znc_unfureVF5_F6_AF_4unfuVF5_RRYo1RRRAF_21__habeqrerq_znc_rdhnyVF5_F6_AF_8rdhny_gbVF5_RRYo1RRRAF_9nyybpngbeVF6_RRR25__rzcynpr_havdhr_xrl_netfVF5_WAF_4cnveVF5_uRRRRRAFW_VAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF6_CiRRRRoRREXG_QcBG0_
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVCXA7zvavxva4SbagRwRRAF_22__habeqrerq_znc_unfureVF5_F6_AF_4unfuVF5_RRYo1RRRAF_21__habeqrerq_znc_rdhnyVF5_F6_AF_8rdhny_gbVF5_RRYo1RRRAF_9nyybpngbeVF6_RRR25__rzcynpr_havdhr_xrl_netfVF5_WAF_4cnveVF5_uRRRRRAFW_VAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF6_CiRRRRoRREXG_QcBG0_
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVCXA7zvavxva4SbagRwRRAF_22__habeqrerq_znc_unfureVF5_F6_AF_4unfuVF5_RRYo1RRRAF_21__habeqrerq_znc_rdhnyVF5_F6_AF_8rdhny_gbVF5_RRYo1RRRAF_9nyybpngbeVF6_RRR25__rzcynpr_havdhr_xrl_netfVF5_WAF_4cnveVF5_uRRRRRAFW_VAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF6_CiRRRRoRREXG_QcBG0_,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVCXA7zvavxva4SbagRwRRAF_22__habeqrerq_znc_unfureVF5_F6_AF_4unfuVF5_RRYo1RRRAF_21__habeqrerq_znc_rdhnyVF5_F6_AF_8rdhny_gbVF5_RRYo1RRRAF_9nyybpngbeVF6_RRR25__rzcynpr_havdhr_xrl_netfVF5_WAF_4cnveVF5_uRRRRRAFW_VAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF6_CiRRRRoRREXG_QcBG0_:
 nop
 .text
-.globl b__MAFg3__120__funerq_cge_cbvagreVCA7zvavxva10SbagSnzvylRAF_14qrsnhyg_qryrgrVF2_RRAF_9nyybpngbeVF2_RRR16__ba_mreb_funerqRi
+.weak b__MAFg3__120__funerq_cge_cbvagreVCA7zvavxva10SbagSnzvylRAF_14qrsnhyg_qryrgrVF2_RRAF_9nyybpngbeVF2_RRR16__ba_mreb_funerqRi
 .type b__MAFg3__120__funerq_cge_cbvagreVCA7zvavxva10SbagSnzvylRAF_14qrsnhyg_qryrgrVF2_RRAF_9nyybpngbeVF2_RRR16__ba_mreb_funerqRi,%function
 b__MAFg3__120__funerq_cge_cbvagreVCA7zvavxva10SbagSnzvylRAF_14qrsnhyg_qryrgrVF2_RRAF_9nyybpngbeVF2_RRR16__ba_mreb_funerqRi:
 nop
 .text
-.globl b__MAFg3__16irpgbeV14uo_inevngvba_gAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_
+.weak b__MAFg3__16irpgbeV14uo_inevngvba_gAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_
 .type b__MAFg3__16irpgbeV14uo_inevngvba_gAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_,%function
 b__MAFg3__16irpgbeV14uo_inevngvba_gAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRwRRAF_22__habeqrerq_znc_unfureVF7_F8_AF_4unfuVF7_RRYo1RRRAF_21__habeqrerq_znc_rdhnyVF7_F8_AF_8rdhny_gbVF7_RRYo1RRRAF5_VF8_RRR6erunfuRz
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRwRRAF_22__habeqrerq_znc_unfureVF7_F8_AF_4unfuVF7_RRYo1RRRAF_21__habeqrerq_znc_rdhnyVF7_F8_AF_8rdhny_gbVF7_RRYo1RRRAF5_VF8_RRR6erunfuRz
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRwRRAF_22__habeqrerq_znc_unfureVF7_F8_AF_4unfuVF7_RRYo1RRRAF_21__habeqrerq_znc_rdhnyVF7_F8_AF_8rdhny_gbVF7_RRYo1RRRAF5_VF8_RRR6erunfuRz,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRwRRAF_22__habeqrerq_znc_unfureVF7_F8_AF_4unfuVF7_RRYo1RRRAF_21__habeqrerq_znc_rdhnyVF7_F8_AF_8rdhny_gbVF7_RRYo1RRRAF5_VF8_RRR6erunfuRz:
 nop
@@ -88,12 +88,12 @@
 b__MA7zvavxva15YbpnyrYvfgPnpur12xRzcglYvfgVqR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRwRRAF_22__habeqrerq_znc_unfureVF7_F8_AF_4unfuVF7_RRYo1RRRAF_21__habeqrerq_znc_rdhnyVF7_F8_AF_8rdhny_gbVF7_RRYo1RRRAF5_VF8_RRR21__rzcynpr_havdhr_vzcyVWAF_4cnveVCXpwRRRRRAFX_VAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF8_CiRRRRoRRQcBG_
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRwRRAF_22__habeqrerq_znc_unfureVF7_F8_AF_4unfuVF7_RRYo1RRRAF_21__habeqrerq_znc_rdhnyVF7_F8_AF_8rdhny_gbVF7_RRYo1RRRAF5_VF8_RRR21__rzcynpr_havdhr_vzcyVWAF_4cnveVCXpwRRRRRAFX_VAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF8_CiRRRRoRRQcBG_
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRwRRAF_22__habeqrerq_znc_unfureVF7_F8_AF_4unfuVF7_RRYo1RRRAF_21__habeqrerq_znc_rdhnyVF7_F8_AF_8rdhny_gbVF7_RRYo1RRRAF5_VF8_RRR21__rzcynpr_havdhr_vzcyVWAF_4cnveVCXpwRRRRRAFX_VAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF8_CiRRRRoRRQcBG_,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRwRRAF_22__habeqrerq_znc_unfureVF7_F8_AF_4unfuVF7_RRYo1RRRAF_21__habeqrerq_znc_rdhnyVF7_F8_AF_8rdhny_gbVF7_RRYo1RRRAF5_VF8_RRR21__rzcynpr_havdhr_vzcyVWAF_4cnveVCXpwRRRRRAFX_VAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF8_CiRRRRoRRQcBG_:
 nop
 .data
-.globl b__MGIAFg3__120__funerq_cge_cbvagreVCA7zvavxva10SbagSnzvylRAF_14qrsnhyg_qryrgrVF2_RRAF_9nyybpngbeVF2_RRRR
+.weak b__MGIAFg3__120__funerq_cge_cbvagreVCA7zvavxva10SbagSnzvylRAF_14qrsnhyg_qryrgrVF2_RRAF_9nyybpngbeVF2_RRRR
 .type b__MGIAFg3__120__funerq_cge_cbvagreVCA7zvavxva10SbagSnzvylRAF_14qrsnhyg_qryrgrVF2_RRAF_9nyybpngbeVF2_RRRR,%object
 b__MGIAFg3__120__funerq_cge_cbvagreVCA7zvavxva10SbagSnzvylRAF_14qrsnhyg_qryrgrVF2_RRAF_9nyybpngbeVF2_RRRR:
 .space __SIZEOF_POINTER__
@@ -128,22 +128,22 @@
 b__MA7zvavxva16oernxYvarBcgvznyREXAF_14H16FgevatCvrprREXAF_12ZrnfherqGrkgREXAF_9YvarJvqguRAF_13OernxFgengrtlRAF_20UlcurangvbaSerdhraplRo:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVwAF_4unfuVwRRAF_8rdhny_gbVwRRAF_9nyybpngbeVwRRR8__erunfuRz
+.weak b__MAFg3__112__unfu_gnoyrVwAF_4unfuVwRRAF_8rdhny_gbVwRRAF_9nyybpngbeVwRRR8__erunfuRz
 .type b__MAFg3__112__unfu_gnoyrVwAF_4unfuVwRRAF_8rdhny_gbVwRRAF_9nyybpngbeVwRRR8__erunfuRz,%function
 b__MAFg3__112__unfu_gnoyrVwAF_4unfuVwRRAF_8rdhny_gbVwRRAF_9nyybpngbeVwRRR8__erunfuRz:
 nop
 .text
-.globl b__MA7naqebvq8YehPnpurVA7zvavxva14YnlbhgPnpurXrlRCAF1_11YnlbhgCvrprRR6erzbirREXF2_
+.weak b__MA7naqebvq8YehPnpurVA7zvavxva14YnlbhgPnpurXrlRCAF1_11YnlbhgCvrprRR6erzbirREXF2_
 .type b__MA7naqebvq8YehPnpurVA7zvavxva14YnlbhgPnpurXrlRCAF1_11YnlbhgCvrprRR6erzbirREXF2_,%function
 b__MA7naqebvq8YehPnpurVA7zvavxva14YnlbhgPnpurXrlRCAF1_11YnlbhgCvrprRR6erzbirREXF2_:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7zvavxva11YnlbhgTylcuRAF_9nyybpngbeVF2_RRR24__rzcynpr_onpx_fybj_cnguVWEXAF1_9SnxrqSbagRwsEXsRRRiQcBG_
+.weak b__MAFg3__16irpgbeVA7zvavxva11YnlbhgTylcuRAF_9nyybpngbeVF2_RRR24__rzcynpr_onpx_fybj_cnguVWEXAF1_9SnxrqSbagRwsEXsRRRiQcBG_
 .type b__MAFg3__16irpgbeVA7zvavxva11YnlbhgTylcuRAF_9nyybpngbeVF2_RRR24__rzcynpr_onpx_fybj_cnguVWEXAF1_9SnxrqSbagRwsEXsRRRiQcBG_,%function
 b__MAFg3__16irpgbeVA7zvavxva11YnlbhgTylcuRAF_9nyybpngbeVF2_RRR24__rzcynpr_onpx_fybj_cnguVWEXAF1_9SnxrqSbagRwsEXsRRRiQcBG_:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_10havdhr_cgeVA7zvavxva12FcnefrOvgFrgRAF_14qrsnhyg_qryrgrVF3_RRRRAF_9nyybpngbeVF6_RRR8__nccraqRz
+.weak b__MAFg3__16irpgbeVAF_10havdhr_cgeVA7zvavxva12FcnefrOvgFrgRAF_14qrsnhyg_qryrgrVF3_RRRRAF_9nyybpngbeVF6_RRR8__nccraqRz
 .type b__MAFg3__16irpgbeVAF_10havdhr_cgeVA7zvavxva12FcnefrOvgFrgRAF_14qrsnhyg_qryrgrVF3_RRRRAF_9nyybpngbeVF6_RRR8__nccraqRz,%function
 b__MAFg3__16irpgbeVAF_10havdhr_cgeVA7zvavxva12FcnefrOvgFrgRAF_14qrsnhyg_qryrgrVF3_RRRRAF_9nyybpngbeVF6_RRR8__nccraqRz:
 nop
@@ -158,12 +158,12 @@
 b__MA7zvavxva6Ybpnyr17erfbyirRzbwvFglyrRCXpz:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7zvavxva11UlcuraOernxRAF_9nyybpngbeVF2_RRR24__rzcynpr_onpx_fybj_cnguVWEwEXAF1_15UlcurangvbaGlcrREXsFP_RRRiQcBG_
+.weak b__MAFg3__16irpgbeVA7zvavxva11UlcuraOernxRAF_9nyybpngbeVF2_RRR24__rzcynpr_onpx_fybj_cnguVWEwEXAF1_15UlcurangvbaGlcrREXsFP_RRRiQcBG_
 .type b__MAFg3__16irpgbeVA7zvavxva11UlcuraOernxRAF_9nyybpngbeVF2_RRR24__rzcynpr_onpx_fybj_cnguVWEwEXAF1_15UlcurangvbaGlcrREXsFP_RRRiQcBG_,%function
 b__MAFg3__16irpgbeVA7zvavxva11UlcuraOernxRAF_9nyybpngbeVF2_RRR24__rzcynpr_onpx_fybj_cnguVWEwEXAF1_15UlcurangvbaGlcrREXsFP_RRRiQcBG_:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7zvavxva9SnxrqSbagRAF_9nyybpngbeVF2_RRRP2REXF5_
+.weak b__MAFg3__16irpgbeVA7zvavxva9SnxrqSbagRAF_9nyybpngbeVF2_RRRP2REXF5_
 .type b__MAFg3__16irpgbeVA7zvavxva9SnxrqSbagRAF_9nyybpngbeVF2_RRRP2REXF5_,%function
 b__MAFg3__16irpgbeVA7zvavxva9SnxrqSbagRAF_9nyybpngbeVF2_RRRP2REXF5_:
 nop
@@ -178,7 +178,7 @@
 b__MA7zvavxva10SbagSnzvylP2RAF_13SnzvylInevnagRBAFg3__16irpgbeVAF_4SbagRAF2_9nyybpngbeVF4_RRRR:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7zvavxva9SnxrqSbagRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVEXF2_RRiBG_
+.weak b__MAFg3__16irpgbeVA7zvavxva9SnxrqSbagRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVEXF2_RRiBG_
 .type b__MAFg3__16irpgbeVA7zvavxva9SnxrqSbagRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVEXF2_RRiBG_,%function
 b__MAFg3__16irpgbeVA7zvavxva9SnxrqSbagRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVEXF2_RRiBG_:
 nop
@@ -213,12 +213,12 @@
 b__MA7zvavxva10UlcurangbeP2RCXuzzAF0_17UlcurangvbaYbpnyrR:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVCA7naqebvq8YehPnpurVA7zvavxva14YnlbhgPnpurXrlRCAF3_11YnlbhgCvrprRR10XrlrqRagelRAF7_12UnfuSbeRagelRAF7_24RdhnyvglSbeUnfurqRagevrfRAF_9nyybpngbeVF9_RRR25__rzcynpr_havdhr_xrl_netfVF9_WF9_RRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF9_CiRRRRoRREXG_QcBG0_
+.weak b__MAFg3__112__unfu_gnoyrVCA7naqebvq8YehPnpurVA7zvavxva14YnlbhgPnpurXrlRCAF3_11YnlbhgCvrprRR10XrlrqRagelRAF7_12UnfuSbeRagelRAF7_24RdhnyvglSbeUnfurqRagevrfRAF_9nyybpngbeVF9_RRR25__rzcynpr_havdhr_xrl_netfVF9_WF9_RRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF9_CiRRRRoRREXG_QcBG0_
 .type b__MAFg3__112__unfu_gnoyrVCA7naqebvq8YehPnpurVA7zvavxva14YnlbhgPnpurXrlRCAF3_11YnlbhgCvrprRR10XrlrqRagelRAF7_12UnfuSbeRagelRAF7_24RdhnyvglSbeUnfurqRagevrfRAF_9nyybpngbeVF9_RRR25__rzcynpr_havdhr_xrl_netfVF9_WF9_RRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF9_CiRRRRoRREXG_QcBG0_,%function
 b__MAFg3__112__unfu_gnoyrVCA7naqebvq8YehPnpurVA7zvavxva14YnlbhgPnpurXrlRCAF3_11YnlbhgCvrprRR10XrlrqRagelRAF7_12UnfuSbeRagelRAF7_24RdhnyvglSbeUnfurqRagevrfRAF_9nyybpngbeVF9_RRR25__rzcynpr_havdhr_xrl_netfVF9_WF9_RRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF9_CiRRRRoRREXG_QcBG0_:
 nop
 .text
-.globl b__MAFg3__16irpgbeVsAF_9nyybpngbeVsRRR8__nccraqRzEXs
+.weak b__MAFg3__16irpgbeVsAF_9nyybpngbeVsRRR8__nccraqRzEXs
 .type b__MAFg3__16irpgbeVsAF_9nyybpngbeVsRRR8__nccraqRzEXs,%function
 b__MAFg3__16irpgbeVsAF_9nyybpngbeVsRRR8__nccraqRzEXs:
 nop
@@ -243,7 +243,7 @@
 b__MA7zvavxva10YbpnyrYvfgP2RBAFg3__16irpgbeVAF_6YbpnyrRAF1_9nyybpngbeVF3_RRRR:
 nop
 .text
-.globl b__MAXFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVA7zvavxva12YnlbhgCvrprf3XrlRAF2_11YnlbhgCvrprRRRAF_22__habeqrerq_znc_unfureVF4_F6_AF3_9XrlUnfureRYo1RRRAF_21__habeqrerq_znc_rdhnyVF4_F6_AF_8rdhny_gbVF4_RRYo1RRRAF_9nyybpngbeVF6_RRR4svaqVF4_RRAF_21__unfu_pbafg_vgrengbeVCAF_11__unfu_abqrVF6_CiRRRREXG_
+.weak b__MAXFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVA7zvavxva12YnlbhgCvrprf3XrlRAF2_11YnlbhgCvrprRRRAF_22__habeqrerq_znc_unfureVF4_F6_AF3_9XrlUnfureRYo1RRRAF_21__habeqrerq_znc_rdhnyVF4_F6_AF_8rdhny_gbVF4_RRYo1RRRAF_9nyybpngbeVF6_RRR4svaqVF4_RRAF_21__unfu_pbafg_vgrengbeVCAF_11__unfu_abqrVF6_CiRRRREXG_
 .type b__MAXFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVA7zvavxva12YnlbhgCvrprf3XrlRAF2_11YnlbhgCvrprRRRAF_22__habeqrerq_znc_unfureVF4_F6_AF3_9XrlUnfureRYo1RRRAF_21__habeqrerq_znc_rdhnyVF4_F6_AF_8rdhny_gbVF4_RRYo1RRRAF_9nyybpngbeVF6_RRR4svaqVF4_RRAF_21__unfu_pbafg_vgrengbeVCAF_11__unfu_abqrVF6_CiRRRREXG_,%function
 b__MAXFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVA7zvavxva12YnlbhgCvrprf3XrlRAF2_11YnlbhgCvrprRRRAF_22__habeqrerq_znc_unfureVF4_F6_AF3_9XrlUnfureRYo1RRRAF_21__habeqrerq_znc_rdhnyVF4_F6_AF_8rdhny_gbVF4_RRYo1RRRAF_9nyybpngbeVF6_RRR4svaqVF4_RRAF_21__unfu_pbafg_vgrengbeVCAF_11__unfu_abqrVF6_CiRRRREXG_:
 nop
@@ -268,17 +268,17 @@
 b__MA7zvavxva18nqqUlcurangbeNyvnfREXAFg3__112onfvp_fgevatVpAF0_11pune_genvgfVpRRAF0_9nyybpngbeVpRRRRF8_:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7zvavxva11YnlbhgTylcuRAF_9nyybpngbeVF2_RRR7erfreirRz
+.weak b__MAFg3__16irpgbeVA7zvavxva11YnlbhgTylcuRAF_9nyybpngbeVF2_RRR7erfreirRz
 .type b__MAFg3__16irpgbeVA7zvavxva11YnlbhgTylcuRAF_9nyybpngbeVF2_RRR7erfreirRz,%function
 b__MAFg3__16irpgbeVA7zvavxva11YnlbhgTylcuRAF_9nyybpngbeVF2_RRR7erfreirRz:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRwRRAF_22__habeqrerq_znc_unfureVF7_F8_AF_4unfuVF7_RRYo1RRRAF_21__habeqrerq_znc_rdhnyVF7_F8_AF_8rdhny_gbVF7_RRYo1RRRAF5_VF8_RRR8__erunfuRz
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRwRRAF_22__habeqrerq_znc_unfureVF7_F8_AF_4unfuVF7_RRYo1RRRAF_21__habeqrerq_znc_rdhnyVF7_F8_AF_8rdhny_gbVF7_RRYo1RRRAF5_VF8_RRR8__erunfuRz
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRwRRAF_22__habeqrerq_znc_unfureVF7_F8_AF_4unfuVF7_RRYo1RRRAF_21__habeqrerq_znc_rdhnyVF7_F8_AF_8rdhny_gbVF7_RRYo1RRRAF5_VF8_RRR8__erunfuRz,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRwRRAF_22__habeqrerq_znc_unfureVF7_F8_AF_4unfuVF7_RRYo1RRRAF_21__habeqrerq_znc_rdhnyVF7_F8_AF_8rdhny_gbVF7_RRYo1RRRAF5_VF8_RRR8__erunfuRz:
 nop
 .text
-.globl b__MAFg3__16irpgbeVwAF_9nyybpngbeVwRRR7erfreirRz
+.weak b__MAFg3__16irpgbeVwAF_9nyybpngbeVwRRR7erfreirRz
 .type b__MAFg3__16irpgbeVwAF_9nyybpngbeVwRRR7erfreirRz,%function
 b__MAFg3__16irpgbeVwAF_9nyybpngbeVwRRR7erfreirRz:
 nop
@@ -328,22 +328,22 @@
 b__MAX7zvavxva10Ulcurangbe9ulcurangrREXAF_14H16FgevatCvrprRCAF_15UlcurangvbaGlcrR:
 nop
 .text
-.globl b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
+.weak b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
 .type b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_,%function
 b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_:
 nop
 .text
-.globl b__MAFg3__16irpgbeVCX18uo_ynathntr_vzcy_gAF_9nyybpngbeVF3_RRR7erfreirRz
+.weak b__MAFg3__16irpgbeVCX18uo_ynathntr_vzcy_gAF_9nyybpngbeVF3_RRR7erfreirRz
 .type b__MAFg3__16irpgbeVCX18uo_ynathntr_vzcy_gAF_9nyybpngbeVF3_RRR7erfreirRz,%function
 b__MAFg3__16irpgbeVCX18uo_ynathntr_vzcy_gAF_9nyybpngbeVF3_RRR7erfreirRz:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7zvavxva6YbpnyrRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVEXF2_RRiBG_
+.weak b__MAFg3__16irpgbeVA7zvavxva6YbpnyrRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVEXF2_RRiBG_
 .type b__MAFg3__16irpgbeVA7zvavxva6YbpnyrRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVEXF2_RRiBG_,%function
 b__MAFg3__16irpgbeVA7zvavxva6YbpnyrRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVEXF2_RRiBG_:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_10funerq_cgeVA7zvavxva14SbagPbyyrpgvbaRRRRRAF_19__znc_inyhr_pbzcnerVF7_FP_AF_4yrffVF7_RRYo1RRRAF5_VFP_RRR7qrfgeblRCAF_11__gerr_abqrVFP_CiRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_10funerq_cgeVA7zvavxva14SbagPbyyrpgvbaRRRRRAF_19__znc_inyhr_pbzcnerVF7_FP_AF_4yrffVF7_RRYo1RRRAF5_VFP_RRR7qrfgeblRCAF_11__gerr_abqrVFP_CiRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_10funerq_cgeVA7zvavxva14SbagPbyyrpgvbaRRRRRAF_19__znc_inyhr_pbzcnerVF7_FP_AF_4yrffVF7_RRYo1RRRAF5_VFP_RRR7qrfgeblRCAF_11__gerr_abqrVFP_CiRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_10funerq_cgeVA7zvavxva14SbagPbyyrpgvbaRRRRRAF_19__znc_inyhr_pbzcnerVF7_FP_AF_4yrffVF7_RRYo1RRRAF5_VFP_RRR7qrfgeblRCAF_11__gerr_abqrVFP_CiRR:
 nop
@@ -353,17 +353,17 @@
 b__MAX7zvavxva13UlcurangbeZnc18ybbxhcOlVqragvsvreRz:
 nop
 .text
-.globl b__MAFg3__16irpgbeV12uo_srngher_gAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVEXF1_RRiBG_
+.weak b__MAFg3__16irpgbeV12uo_srngher_gAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVEXF1_RRiBG_
 .type b__MAFg3__16irpgbeV12uo_srngher_gAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVEXF1_RRiBG_,%function
 b__MAFg3__16irpgbeV12uo_srngher_gAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVEXF1_RRiBG_:
 nop
 .text
-.globl b__MAFg3__16irpgbeVsAF_9nyybpngbeVsRRR21__chfu_onpx_fybj_cnguVsRRiBG_
+.weak b__MAFg3__16irpgbeVsAF_9nyybpngbeVsRRR21__chfu_onpx_fybj_cnguVsRRiBG_
 .type b__MAFg3__16irpgbeVsAF_9nyybpngbeVsRRR21__chfu_onpx_fybj_cnguVsRRiBG_,%function
 b__MAFg3__16irpgbeVsAF_9nyybpngbeVsRRR21__chfu_onpx_fybj_cnguVsRRiBG_:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7zvavxva5CbvagRAF_9nyybpngbeVF2_RRR13fuevax_gb_svgRi
+.weak b__MAFg3__16irpgbeVA7zvavxva5CbvagRAF_9nyybpngbeVF2_RRR13fuevax_gb_svgRi
 .type b__MAFg3__16irpgbeVA7zvavxva5CbvagRAF_9nyybpngbeVF2_RRR13fuevax_gb_svgRi,%function
 b__MAFg3__16irpgbeVA7zvavxva5CbvagRAF_9nyybpngbeVF2_RRR13fuevax_gb_svgRi:
 nop
@@ -383,12 +383,12 @@
 b__MA7zvavxva28gnvyberqTencurzrPyhfgreOernxRw:
 nop
 .text
-.globl b__MAFg3__16irpgbeVsAF_9nyybpngbeVsRRR21__chfu_onpx_fybj_cnguVEXsRRiBG_
+.weak b__MAFg3__16irpgbeVsAF_9nyybpngbeVsRRR21__chfu_onpx_fybj_cnguVEXsRRiBG_
 .type b__MAFg3__16irpgbeVsAF_9nyybpngbeVsRRR21__chfu_onpx_fybj_cnguVEXsRRiBG_,%function
 b__MAFg3__16irpgbeVsAF_9nyybpngbeVsRRR21__chfu_onpx_fybj_cnguVEXsRRiBG_:
 nop
 .text
-.globl b__MAFg3__16irpgbeVsAF_9nyybpngbeVsRRRP2REXF3_
+.weak b__MAFg3__16irpgbeVsAF_9nyybpngbeVsRRRP2REXF3_
 .type b__MAFg3__16irpgbeVsAF_9nyybpngbeVsRRRP2REXF3_,%function
 b__MAFg3__16irpgbeVsAF_9nyybpngbeVsRRRP2REXF3_:
 nop
@@ -428,7 +428,7 @@
 b__MAX7zvavxva14SbagPbyyrpgvba20unfInevngvbaFryrpgbeRww:
 nop
 .text
-.globl b__MAFg3__16irpgbeVuAF_9nyybpngbeVuRRR21__chfu_onpx_fybj_cnguVuRRiBG_
+.weak b__MAFg3__16irpgbeVuAF_9nyybpngbeVuRRR21__chfu_onpx_fybj_cnguVuRRiBG_
 .type b__MAFg3__16irpgbeVuAF_9nyybpngbeVuRRR21__chfu_onpx_fybj_cnguVuRRiBG_,%function
 b__MAFg3__16irpgbeVuAF_9nyybpngbeVuRRR21__chfu_onpx_fybj_cnguVuRRiBG_:
 nop
@@ -438,7 +438,7 @@
 b__MAX7zvavxva6Ybpnyr16fhccbegfUoFpevcgR11uo_fpevcg_g:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRwRRAF_22__habeqrerq_znc_unfureVF7_F8_AF_4unfuVF7_RRYo1RRRAF_21__habeqrerq_znc_rdhnyVF7_F8_AF_8rdhny_gbVF7_RRYo1RRRAF5_VF8_RRR25__rzcynpr_havdhr_xrl_netfVF7_WAF_4cnveVF7_wRRRRRAFX_VAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF8_CiRRRRoRREXG_QcBG0_
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRwRRAF_22__habeqrerq_znc_unfureVF7_F8_AF_4unfuVF7_RRYo1RRRAF_21__habeqrerq_znc_rdhnyVF7_F8_AF_8rdhny_gbVF7_RRYo1RRRAF5_VF8_RRR25__rzcynpr_havdhr_xrl_netfVF7_WAF_4cnveVF7_wRRRRRAFX_VAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF8_CiRRRRoRREXG_QcBG0_
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRwRRAF_22__habeqrerq_znc_unfureVF7_F8_AF_4unfuVF7_RRYo1RRRAF_21__habeqrerq_znc_rdhnyVF7_F8_AF_8rdhny_gbVF7_RRYo1RRRAF5_VF8_RRR25__rzcynpr_havdhr_xrl_netfVF7_WAF_4cnveVF7_wRRRRRAFX_VAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF8_CiRRRRoRREXG_QcBG0_,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRwRRAF_22__habeqrerq_znc_unfureVF7_F8_AF_4unfuVF7_RRYo1RRRAF_21__habeqrerq_znc_rdhnyVF7_F8_AF_8rdhny_gbVF7_RRYo1RRRAF5_VF8_RRR25__rzcynpr_havdhr_xrl_netfVF7_WAF_4cnveVF7_wRRRRRAFX_VAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF8_CiRRRRoRREXG_QcBG0_:
 nop
@@ -458,12 +458,12 @@
 b__MA7zvavxva10SbagSnzvylP2RwAF_13SnzvylInevnagRBAFg3__16irpgbeVAF_4SbagRAF2_9nyybpngbeVF4_RRRRo:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVCA7naqebvq8YehPnpurVA7zvavxva14YnlbhgPnpurXrlRCAF3_11YnlbhgCvrprRR10XrlrqRagelRAF7_12UnfuSbeRagelRAF7_24RdhnyvglSbeUnfurqRagevrfRAF_9nyybpngbeVF9_RRR6erzbirRAF_21__unfu_pbafg_vgrengbeVCAF_11__unfu_abqrVF9_CiRRRR
+.weak b__MAFg3__112__unfu_gnoyrVCA7naqebvq8YehPnpurVA7zvavxva14YnlbhgPnpurXrlRCAF3_11YnlbhgCvrprRR10XrlrqRagelRAF7_12UnfuSbeRagelRAF7_24RdhnyvglSbeUnfurqRagevrfRAF_9nyybpngbeVF9_RRR6erzbirRAF_21__unfu_pbafg_vgrengbeVCAF_11__unfu_abqrVF9_CiRRRR
 .type b__MAFg3__112__unfu_gnoyrVCA7naqebvq8YehPnpurVA7zvavxva14YnlbhgPnpurXrlRCAF3_11YnlbhgCvrprRR10XrlrqRagelRAF7_12UnfuSbeRagelRAF7_24RdhnyvglSbeUnfurqRagevrfRAF_9nyybpngbeVF9_RRR6erzbirRAF_21__unfu_pbafg_vgrengbeVCAF_11__unfu_abqrVF9_CiRRRR,%function
 b__MAFg3__112__unfu_gnoyrVCA7naqebvq8YehPnpurVA7zvavxva14YnlbhgPnpurXrlRCAF3_11YnlbhgCvrprRR10XrlrqRagelRAF7_12UnfuSbeRagelRAF7_24RdhnyvglSbeUnfurqRagevrfRAF_9nyybpngbeVF9_RRR6erzbirRAF_21__unfu_pbafg_vgrengbeVCAF_11__unfu_abqrVF9_CiRRRR:
 nop
 .data
-.globl b__MGIA7naqebvq8YehPnpurVA7zvavxva14YnlbhgPnpurXrlRCAF1_11YnlbhgCvrprRR5RagelR
+.weak b__MGIA7naqebvq8YehPnpurVA7zvavxva14YnlbhgPnpurXrlRCAF1_11YnlbhgCvrprRR5RagelR
 .type b__MGIA7naqebvq8YehPnpurVA7zvavxva14YnlbhgPnpurXrlRCAF1_11YnlbhgCvrprRR5RagelR,%object
 b__MGIA7naqebvq8YehPnpurVA7zvavxva14YnlbhgPnpurXrlRCAF1_11YnlbhgCvrprRR5RagelR:
 .space __SIZEOF_POINTER__
@@ -483,17 +483,17 @@
 b__MAX7zvavxva6Ybpnyr16trgCnegvnyYbpnyrRAF_10FhogntOvgfR:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_10havdhr_cgeV9uo_sbag_gA7zvavxva13UoSbagQryrgreRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_
+.weak b__MAFg3__16irpgbeVAF_10havdhr_cgeV9uo_sbag_gA7zvavxva13UoSbagQryrgreRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_
 .type b__MAFg3__16irpgbeVAF_10havdhr_cgeV9uo_sbag_gA7zvavxva13UoSbagQryrgreRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_,%function
 b__MAFg3__16irpgbeVAF_10havdhr_cgeV9uo_sbag_gA7zvavxva13UoSbagQryrgreRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7zvavxva15UlcurangvbaGlcrRAF_9nyybpngbeVF2_RRR6vafregRAF_11__jenc_vgreVCXF2_RRzEF7_
+.weak b__MAFg3__16irpgbeVA7zvavxva15UlcurangvbaGlcrRAF_9nyybpngbeVF2_RRR6vafregRAF_11__jenc_vgreVCXF2_RRzEF7_
 .type b__MAFg3__16irpgbeVA7zvavxva15UlcurangvbaGlcrRAF_9nyybpngbeVF2_RRR6vafregRAF_11__jenc_vgreVCXF2_RRzEF7_,%function
 b__MAFg3__16irpgbeVA7zvavxva15UlcurangvbaGlcrRAF_9nyybpngbeVF2_RRR6vafregRAF_11__jenc_vgreVCXF2_RRzEF7_:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVA7zvavxva12YnlbhgCvrprf3XrlRAF2_11YnlbhgCvrprRRRAF_22__habeqrerq_znc_unfureVF4_F6_AF3_9XrlUnfureRYo1RRRAF_21__habeqrerq_znc_rdhnyVF4_F6_AF_8rdhny_gbVF4_RRYo1RRRAF_9nyybpngbeVF6_RRR6erunfuRz
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVA7zvavxva12YnlbhgCvrprf3XrlRAF2_11YnlbhgCvrprRRRAF_22__habeqrerq_znc_unfureVF4_F6_AF3_9XrlUnfureRYo1RRRAF_21__habeqrerq_znc_rdhnyVF4_F6_AF_8rdhny_gbVF4_RRYo1RRRAF_9nyybpngbeVF6_RRR6erunfuRz
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVA7zvavxva12YnlbhgCvrprf3XrlRAF2_11YnlbhgCvrprRRRAF_22__habeqrerq_znc_unfureVF4_F6_AF3_9XrlUnfureRYo1RRRAF_21__habeqrerq_znc_rdhnyVF4_F6_AF_8rdhny_gbVF4_RRYo1RRRAF_9nyybpngbeVF6_RRR6erunfuRz,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVA7zvavxva12YnlbhgCvrprf3XrlRAF2_11YnlbhgCvrprRRRAF_22__habeqrerq_znc_unfureVF4_F6_AF3_9XrlUnfureRYo1RRRAF_21__habeqrerq_znc_rdhnyVF4_F6_AF_8rdhny_gbVF4_RRYo1RRRAF_9nyybpngbeVF6_RRR6erunfuRz:
 nop
@@ -503,7 +503,7 @@
 b__MA7zvavxva10SbagSnzvyl15pbzchgrPbirentrRi:
 nop
 .data
-.globl b__MGIA7zvavxva11YnlbhgPnpurR
+.weak b__MGIA7zvavxva11YnlbhgPnpurR
 .type b__MGIA7zvavxva11YnlbhgPnpurR,%object
 b__MGIA7zvavxva11YnlbhgPnpurR:
 .space __SIZEOF_POINTER__
@@ -523,7 +523,7 @@
 b__MA7zvavxva14SbagPbyyrpgvbaP2RBAFg3__110funerq_cgeVAF_10SbagSnzvylRRR:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7zvavxva5CbvagRAF_9nyybpngbeVF2_RRR7erfreirRz
+.weak b__MAFg3__16irpgbeVA7zvavxva5CbvagRAF_9nyybpngbeVF2_RRR7erfreirRz
 .type b__MAFg3__16irpgbeVA7zvavxva5CbvagRAF_9nyybpngbeVF2_RRR7erfreirRz,%function
 b__MAFg3__16irpgbeVA7zvavxva5CbvagRAF_9nyybpngbeVF2_RRR7erfreirRz:
 nop
@@ -533,12 +533,12 @@
 b__MA7zvavxva8OvqvGrkgP1REXAF_14H16FgevatCvrprREXAF_5EnatrRAF_4OvqvR:
 nop
 .text
-.globl b__MAFg3__16irpgbeVwAF_9nyybpngbeVwRRR21__chfu_onpx_fybj_cnguVwRRiBG_
+.weak b__MAFg3__16irpgbeVwAF_9nyybpngbeVwRRR21__chfu_onpx_fybj_cnguVwRRiBG_
 .type b__MAFg3__16irpgbeVwAF_9nyybpngbeVwRRR21__chfu_onpx_fybj_cnguVwRRiBG_,%function
 b__MAFg3__16irpgbeVwAF_9nyybpngbeVwRRR21__chfu_onpx_fybj_cnguVwRRiBG_:
 nop
 .data
-.globl b__MGIAFg3__120__funerq_cge_cbvagreVCA7zvavxva14SbagPbyyrpgvbaRAF_14qrsnhyg_qryrgrVF2_RRAF_9nyybpngbeVF2_RRRR
+.weak b__MGIAFg3__120__funerq_cge_cbvagreVCA7zvavxva14SbagPbyyrpgvbaRAF_14qrsnhyg_qryrgrVF2_RRAF_9nyybpngbeVF2_RRRR
 .type b__MGIAFg3__120__funerq_cge_cbvagreVCA7zvavxva14SbagPbyyrpgvbaRAF_14qrsnhyg_qryrgrVF2_RRAF_9nyybpngbeVF2_RRRR,%object
 b__MGIAFg3__120__funerq_cge_cbvagreVCA7zvavxva14SbagPbyyrpgvbaRAF_14qrsnhyg_qryrgrVF2_RRAF_9nyybpngbeVF2_RRRR:
 .space __SIZEOF_POINTER__
@@ -558,27 +558,27 @@
 b__MA7zvavxva6Ybpnyr21erfbyirYvarOernxFglyrRCXpz:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVzAF_4unfuVzRRAF_8rdhny_gbVzRRAF_9nyybpngbeVzRRR6erunfuRz
+.weak b__MAFg3__112__unfu_gnoyrVzAF_4unfuVzRRAF_8rdhny_gbVzRRAF_9nyybpngbeVzRRR6erunfuRz
 .type b__MAFg3__112__unfu_gnoyrVzAF_4unfuVzRRAF_8rdhny_gbVzRRAF_9nyybpngbeVzRRR6erunfuRz,%function
 b__MAFg3__112__unfu_gnoyrVzAF_4unfuVzRRAF_8rdhny_gbVzRRAF_9nyybpngbeVzRRR6erunfuRz:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVwAF_4unfuVwRRAF_8rdhny_gbVwRRAF_9nyybpngbeVwRRR25__rzcynpr_havdhr_xrl_netfVwWEXwRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVwCiRRRRoRREXG_QcBG0_
+.weak b__MAFg3__112__unfu_gnoyrVwAF_4unfuVwRRAF_8rdhny_gbVwRRAF_9nyybpngbeVwRRR25__rzcynpr_havdhr_xrl_netfVwWEXwRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVwCiRRRRoRREXG_QcBG0_
 .type b__MAFg3__112__unfu_gnoyrVwAF_4unfuVwRRAF_8rdhny_gbVwRRAF_9nyybpngbeVwRRR25__rzcynpr_havdhr_xrl_netfVwWEXwRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVwCiRRRRoRREXG_QcBG0_,%function
 b__MAFg3__112__unfu_gnoyrVwAF_4unfuVwRRAF_8rdhny_gbVwRRAF_9nyybpngbeVwRRR25__rzcynpr_havdhr_xrl_netfVwWEXwRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVwCiRRRRoRREXG_QcBG0_:
 nop
 .data
-.globl b__MGIA7zvavxva11JbeqOernxreR
+.weak b__MGIA7zvavxva11JbeqOernxreR
 .type b__MGIA7zvavxva11JbeqOernxreR,%object
 b__MGIA7zvavxva11JbeqOernxreR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MMA7zvavxva11YnlbhgPnpur11trgVafgnaprRiR5pnpur
+.weak b__MMA7zvavxva11YnlbhgPnpur11trgVafgnaprRiR5pnpur
 .type b__MMA7zvavxva11YnlbhgPnpur11trgVafgnaprRiR5pnpur,%object
 b__MMA7zvavxva11YnlbhgPnpur11trgVafgnaprRiR5pnpur:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__16irpgbeVAF_10havdhr_cgeVA7zvavxva12FcnefrOvgFrgRAF_14qrsnhyg_qryrgrVF3_RRRRAF_9nyybpngbeVF6_RRR13fuevax_gb_svgRi
+.weak b__MAFg3__16irpgbeVAF_10havdhr_cgeVA7zvavxva12FcnefrOvgFrgRAF_14qrsnhyg_qryrgrVF3_RRRRAF_9nyybpngbeVF6_RRR13fuevax_gb_svgRi
 .type b__MAFg3__16irpgbeVAF_10havdhr_cgeVA7zvavxva12FcnefrOvgFrgRAF_14qrsnhyg_qryrgrVF3_RRRRAF_9nyybpngbeVF6_RRR13fuevax_gb_svgRi,%function
 b__MAFg3__16irpgbeVAF_10havdhr_cgeVA7zvavxva12FcnefrOvgFrgRAF_14qrsnhyg_qryrgrVF3_RRRRAF_9nyybpngbeVF6_RRR13fuevax_gb_svgRi:
 nop
@@ -593,7 +593,7 @@
 b__MA7zvavxva12vfCherXvyyreRw:
 nop
 .text
-.globl b__MAFg3__114__fcyvg_ohssreVA7zvavxva10YbpnyrYvfgREAF_9nyybpngbeVF2_RRRQ2Ri
+.weak b__MAFg3__114__fcyvg_ohssreVA7zvavxva10YbpnyrYvfgREAF_9nyybpngbeVF2_RRRQ2Ri
 .type b__MAFg3__114__fcyvg_ohssreVA7zvavxva10YbpnyrYvfgREAF_9nyybpngbeVF2_RRRQ2Ri,%function
 b__MAFg3__114__fcyvg_ohssreVA7zvavxva10YbpnyrYvfgREAF_9nyybpngbeVF2_RRRQ2Ri:
 nop
@@ -608,7 +608,7 @@
 b__MA7zvavxva6Ynlbhg12nccraqYnlbhgREXAF_11YnlbhgCvrprRzs:
 nop
 .data
-.globl b__MGIA7zvavxva11FlfgrzSbagfR
+.weak b__MGIA7zvavxva11FlfgrzSbagfR
 .type b__MGIA7zvavxva11FlfgrzSbagfR,%object
 b__MGIA7zvavxva11FlfgrzSbagfR:
 .space __SIZEOF_POINTER__
@@ -623,7 +623,7 @@
 b__MAX7zvavxva6Ybpnyr13vfRdhnyFpevcgREXF0_:
 nop
 .text
-.globl b__MA7naqebvq8YehPnpurVA7zvavxva14YnlbhgPnpurXrlRCAF1_11YnlbhgCvrprRR5pyrneRi
+.weak b__MA7naqebvq8YehPnpurVA7zvavxva14YnlbhgPnpurXrlRCAF1_11YnlbhgCvrprRR5pyrneRi
 .type b__MA7naqebvq8YehPnpurVA7zvavxva14YnlbhgPnpurXrlRCAF1_11YnlbhgCvrprRR5pyrneRi,%function
 b__MA7naqebvq8YehPnpurVA7zvavxva14YnlbhgPnpurXrlRCAF1_11YnlbhgCvrprRR5pyrneRi:
 nop
@@ -633,52 +633,52 @@
 b__MAX7zvavxva8FglyrEha9trgObhaqfREXAF_14H16FgevatCvrprREXAF_5EnatrREXAF_12YnlbhgCvrprfR:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVA7zvavxva12ZvavxvaCnvagRwRRAF_22__habeqrerq_znc_unfureVF3_F4_AF2_12YnlbhgCvrprf11CnvagUnfureRYo1RRRAF_21__habeqrerq_znc_rdhnyVF3_F4_AF_8rdhny_gbVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR6erunfuRz
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVA7zvavxva12ZvavxvaCnvagRwRRAF_22__habeqrerq_znc_unfureVF3_F4_AF2_12YnlbhgCvrprf11CnvagUnfureRYo1RRRAF_21__habeqrerq_znc_rdhnyVF3_F4_AF_8rdhny_gbVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR6erunfuRz
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVA7zvavxva12ZvavxvaCnvagRwRRAF_22__habeqrerq_znc_unfureVF3_F4_AF2_12YnlbhgCvrprf11CnvagUnfureRYo1RRRAF_21__habeqrerq_znc_rdhnyVF3_F4_AF_8rdhny_gbVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR6erunfuRz,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVA7zvavxva12ZvavxvaCnvagRwRRAF_22__habeqrerq_znc_unfureVF3_F4_AF2_12YnlbhgCvrprf11CnvagUnfureRYo1RRRAF_21__habeqrerq_znc_rdhnyVF3_F4_AF_8rdhny_gbVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR6erunfuRz:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVA7zvavxva12ZvavxvaCnvagRwRRAF_22__habeqrerq_znc_unfureVF3_F4_AF2_12YnlbhgCvrprf11CnvagUnfureRYo1RRRAF_21__habeqrerq_znc_rdhnyVF3_F4_AF_8rdhny_gbVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR8__erunfuRz
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVA7zvavxva12ZvavxvaCnvagRwRRAF_22__habeqrerq_znc_unfureVF3_F4_AF2_12YnlbhgCvrprf11CnvagUnfureRYo1RRRAF_21__habeqrerq_znc_rdhnyVF3_F4_AF_8rdhny_gbVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR8__erunfuRz
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVA7zvavxva12ZvavxvaCnvagRwRRAF_22__habeqrerq_znc_unfureVF3_F4_AF2_12YnlbhgCvrprf11CnvagUnfureRYo1RRRAF_21__habeqrerq_znc_rdhnyVF3_F4_AF_8rdhny_gbVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR8__erunfuRz,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVA7zvavxva12ZvavxvaCnvagRwRRAF_22__habeqrerq_znc_unfureVF3_F4_AF2_12YnlbhgCvrprf11CnvagUnfureRYo1RRRAF_21__habeqrerq_znc_rdhnyVF3_F4_AF_8rdhny_gbVF3_RRYo1RRRAF_9nyybpngbeVF4_RRR8__erunfuRz:
 nop
 .text
-.globl b__MAXFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_10funerq_cgeVA7zvavxva14SbagPbyyrpgvbaRRRRRAF_19__znc_inyhr_pbzcnerVF7_FP_AF_4yrffVF7_RRYo1RRRAF5_VFP_RRR4svaqVF7_RRAF_21__gerr_pbafg_vgrengbeVFP_CAF_11__gerr_abqrVFP_CiRRyRREXG_
+.weak b__MAXFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_10funerq_cgeVA7zvavxva14SbagPbyyrpgvbaRRRRRAF_19__znc_inyhr_pbzcnerVF7_FP_AF_4yrffVF7_RRYo1RRRAF5_VFP_RRR4svaqVF7_RRAF_21__gerr_pbafg_vgrengbeVFP_CAF_11__gerr_abqrVFP_CiRRyRREXG_
 .type b__MAXFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_10funerq_cgeVA7zvavxva14SbagPbyyrpgvbaRRRRRAF_19__znc_inyhr_pbzcnerVF7_FP_AF_4yrffVF7_RRYo1RRRAF5_VFP_RRR4svaqVF7_RRAF_21__gerr_pbafg_vgrengbeVFP_CAF_11__gerr_abqrVFP_CiRRyRREXG_,%function
 b__MAXFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_10funerq_cgeVA7zvavxva14SbagPbyyrpgvbaRRRRRAF_19__znc_inyhr_pbzcnerVF7_FP_AF_4yrffVF7_RRYo1RRRAF5_VFP_RRR4svaqVF7_RRAF_21__gerr_pbafg_vgrengbeVFP_CAF_11__gerr_abqrVFP_CiRRyRREXG_:
 nop
 .text
-.globl b__MAFg3__120__funerq_cge_cbvagreVCA7zvavxva14SbagPbyyrpgvbaRAF_14qrsnhyg_qryrgrVF2_RRAF_9nyybpngbeVF2_RRR21__ba_mreb_funerq_jrnxRi
+.weak b__MAFg3__120__funerq_cge_cbvagreVCA7zvavxva14SbagPbyyrpgvbaRAF_14qrsnhyg_qryrgrVF2_RRAF_9nyybpngbeVF2_RRR21__ba_mreb_funerq_jrnxRi
 .type b__MAFg3__120__funerq_cge_cbvagreVCA7zvavxva14SbagPbyyrpgvbaRAF_14qrsnhyg_qryrgrVF2_RRAF_9nyybpngbeVF2_RRR21__ba_mreb_funerq_jrnxRi,%function
 b__MAFg3__120__funerq_cge_cbvagreVCA7zvavxva14SbagPbyyrpgvbaRAF_14qrsnhyg_qryrgrVF2_RRAF_9nyybpngbeVF2_RRR21__ba_mreb_funerq_jrnxRi:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_10funerq_cgeVA7zvavxva10SbagSnzvylRRRAF_9nyybpngbeVF4_RRR21__chfu_onpx_fybj_cnguVEXF4_RRiBG_
+.weak b__MAFg3__16irpgbeVAF_10funerq_cgeVA7zvavxva10SbagSnzvylRRRAF_9nyybpngbeVF4_RRR21__chfu_onpx_fybj_cnguVEXF4_RRiBG_
 .type b__MAFg3__16irpgbeVAF_10funerq_cgeVA7zvavxva10SbagSnzvylRRRAF_9nyybpngbeVF4_RRR21__chfu_onpx_fybj_cnguVEXF4_RRiBG_,%function
 b__MAFg3__16irpgbeVAF_10funerq_cgeVA7zvavxva10SbagSnzvylRRRAF_9nyybpngbeVF4_RRR21__chfu_onpx_fybj_cnguVEXF4_RRiBG_:
 nop
 .text
-.globl b__MAFg3__16irpgbeVuAF_9nyybpngbeVuRRR21__chfu_onpx_fybj_cnguVEXuRRiBG_
+.weak b__MAFg3__16irpgbeVuAF_9nyybpngbeVuRRR21__chfu_onpx_fybj_cnguVEXuRRiBG_
 .type b__MAFg3__16irpgbeVuAF_9nyybpngbeVuRRR21__chfu_onpx_fybj_cnguVEXuRRiBG_,%function
 b__MAFg3__16irpgbeVuAF_9nyybpngbeVuRRR21__chfu_onpx_fybj_cnguVEXuRRiBG_:
 nop
 .text
-.globl b__MAFg3__16irpgbeVwAF_9nyybpngbeVwRRR13fuevax_gb_svgRi
+.weak b__MAFg3__16irpgbeVwAF_9nyybpngbeVwRRR13fuevax_gb_svgRi
 .type b__MAFg3__16irpgbeVwAF_9nyybpngbeVwRRR13fuevax_gb_svgRi,%function
 b__MAFg3__16irpgbeVwAF_9nyybpngbeVwRRR13fuevax_gb_svgRi:
 nop
 .text
-.globl b__MAFg3__120__funerq_cge_cbvagreVCA7zvavxva14SbagPbyyrpgvbaRAF_14qrsnhyg_qryrgrVF2_RRAF_9nyybpngbeVF2_RRR16__ba_mreb_funerqRi
+.weak b__MAFg3__120__funerq_cge_cbvagreVCA7zvavxva14SbagPbyyrpgvbaRAF_14qrsnhyg_qryrgrVF2_RRAF_9nyybpngbeVF2_RRR16__ba_mreb_funerqRi
 .type b__MAFg3__120__funerq_cge_cbvagreVCA7zvavxva14SbagPbyyrpgvbaRAF_14qrsnhyg_qryrgrVF2_RRAF_9nyybpngbeVF2_RRR16__ba_mreb_funerqRi,%function
 b__MAFg3__120__funerq_cge_cbvagreVCA7zvavxva14SbagPbyyrpgvbaRAF_14qrsnhyg_qryrgrVF2_RRAF_9nyybpngbeVF2_RRR16__ba_mreb_funerqRi:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7zvavxva14SbagPbyyrpgvba5EnatrRAF_9nyybpngbeVF3_RRR21__chfu_onpx_fybj_cnguVEXF3_RRiBG_
+.weak b__MAFg3__16irpgbeVA7zvavxva14SbagPbyyrpgvba5EnatrRAF_9nyybpngbeVF3_RRR21__chfu_onpx_fybj_cnguVEXF3_RRiBG_
 .type b__MAFg3__16irpgbeVA7zvavxva14SbagPbyyrpgvba5EnatrRAF_9nyybpngbeVF3_RRR21__chfu_onpx_fybj_cnguVEXF3_RRiBG_,%function
 b__MAFg3__16irpgbeVA7zvavxva14SbagPbyyrpgvba5EnatrRAF_9nyybpngbeVF3_RRR21__chfu_onpx_fybj_cnguVEXF3_RRiBG_:
 nop
 .data
-.globl b__MTIMA7zvavxva22VPHYvarOernxreCbbyVzcy11trgVafgnaprRiR4cbby
+.weak b__MTIMA7zvavxva22VPHYvarOernxreCbbyVzcy11trgVafgnaprRiR4cbby
 .type b__MTIMA7zvavxva22VPHYvarOernxreCbbyVzcy11trgVafgnaprRiR4cbby,%object
 b__MTIMA7zvavxva22VPHYvarOernxreCbbyVzcy11trgVafgnaprRiR4cbby:
 .space __SIZEOF_POINTER__
@@ -698,12 +698,12 @@
 b__MA7zvavxva13UlcurangbeZnc16nqqNyvnfVagreanyREXAFg3__112onfvp_fgevatVpAF1_11pune_genvgfVpRRAF1_9nyybpngbeVpRRRRF9_:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7zvavxva5CbvagRAF_9nyybpngbeVF2_RRR24__rzcynpr_onpx_fybj_cnguVWssRRRiQcBG_
+.weak b__MAFg3__16irpgbeVA7zvavxva5CbvagRAF_9nyybpngbeVF2_RRR24__rzcynpr_onpx_fybj_cnguVWssRRRiQcBG_
 .type b__MAFg3__16irpgbeVA7zvavxva5CbvagRAF_9nyybpngbeVF2_RRR24__rzcynpr_onpx_fybj_cnguVWssRRRiQcBG_,%function
 b__MAFg3__16irpgbeVA7zvavxva5CbvagRAF_9nyybpngbeVF2_RRR24__rzcynpr_onpx_fybj_cnguVWssRRRiQcBG_:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRwRRAF_22__habeqrerq_znc_unfureVF7_F8_AF_4unfuVF7_RRYo1RRRAF_21__habeqrerq_znc_rdhnyVF7_F8_AF_8rdhny_gbVF7_RRYo1RRRAF5_VF8_RRR4svaqVF7_RRAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF8_CiRRRREXG_
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRwRRAF_22__habeqrerq_znc_unfureVF7_F8_AF_4unfuVF7_RRYo1RRRAF_21__habeqrerq_znc_rdhnyVF7_F8_AF_8rdhny_gbVF7_RRYo1RRRAF5_VF8_RRR4svaqVF7_RRAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF8_CiRRRREXG_
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRwRRAF_22__habeqrerq_znc_unfureVF7_F8_AF_4unfuVF7_RRYo1RRRAF_21__habeqrerq_znc_rdhnyVF7_F8_AF_8rdhny_gbVF7_RRYo1RRRAF5_VF8_RRR4svaqVF7_RRAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF8_CiRRRREXG_,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRwRRAF_22__habeqrerq_znc_unfureVF7_F8_AF_4unfuVF7_RRYo1RRRAF_21__habeqrerq_znc_rdhnyVF7_F8_AF_8rdhny_gbVF7_RRYo1RRRAF5_VF8_RRR4svaqVF7_RRAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF8_CiRRRREXG_:
 nop
@@ -738,7 +738,7 @@
 b__MA7zvavxva13UlcurangbeZnc13pyrneVagreanyRi:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7zvavxva10YbpnyrYvfgRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVF2_RRiBG_
+.weak b__MAFg3__16irpgbeVA7zvavxva10YbpnyrYvfgRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVF2_RRiBG_
 .type b__MAFg3__16irpgbeVA7zvavxva10YbpnyrYvfgRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVF2_RRiBG_,%function
 b__MAFg3__16irpgbeVA7zvavxva10YbpnyrYvfgRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVF2_RRiBG_:
 nop
@@ -748,7 +748,7 @@
 b__MA7zvavxva19trgBssfrgSbeNqinaprRCXsCXgzzs:
 nop
 .text
-.globl b__MAFg3__16irpgbeVwAF_9nyybpngbeVwRRR21__chfu_onpx_fybj_cnguVEXwRRiBG_
+.weak b__MAFg3__16irpgbeVwAF_9nyybpngbeVwRRR21__chfu_onpx_fybj_cnguVEXwRRiBG_
 .type b__MAFg3__16irpgbeVwAF_9nyybpngbeVwRRR21__chfu_onpx_fybj_cnguVEXwRRiBG_,%function
 b__MAFg3__16irpgbeVwAF_9nyybpngbeVwRRR21__chfu_onpx_fybj_cnguVEXwRRiBG_:
 nop
@@ -768,7 +768,7 @@
 b__MA7zvavxva10trgIfVaqrkRw:
 nop
 .data
-.globl b__MTIMA7zvavxva15YbpnyrYvfgPnpur11trgVafgnaprRiR8vafgnapr
+.weak b__MTIMA7zvavxva15YbpnyrYvfgPnpur11trgVafgnaprRiR8vafgnapr
 .type b__MTIMA7zvavxva15YbpnyrYvfgPnpur11trgVafgnaprRiR8vafgnapr,%object
 b__MTIMA7zvavxva15YbpnyrYvfgPnpur11trgVafgnaprRiR8vafgnapr:
 .space __SIZEOF_POINTER__
@@ -788,12 +788,12 @@
 b__MAX7zvavxva11JbeqOernxre7jbeqRaqRi:
 nop
 .data
-.globl b__MMA7zvavxva22VPHYvarOernxreCbbyVzcy11trgVafgnaprRiR4cbby
+.weak b__MMA7zvavxva22VPHYvarOernxreCbbyVzcy11trgVafgnaprRiR4cbby
 .type b__MMA7zvavxva22VPHYvarOernxreCbbyVzcy11trgVafgnaprRiR4cbby,%object
 b__MMA7zvavxva22VPHYvarOernxreCbbyVzcy11trgVafgnaprRiR4cbby:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq8YehPnpurVA7zvavxva14YnlbhgPnpurXrlRCAF1_11YnlbhgCvrprRR3chgREXF2_EXF4_
+.weak b__MA7naqebvq8YehPnpurVA7zvavxva14YnlbhgPnpurXrlRCAF1_11YnlbhgCvrprRR3chgREXF2_EXF4_
 .type b__MA7naqebvq8YehPnpurVA7zvavxva14YnlbhgPnpurXrlRCAF1_11YnlbhgCvrprRR3chgREXF2_EXF4_,%function
 b__MA7naqebvq8YehPnpurVA7zvavxva14YnlbhgPnpurXrlRCAF1_11YnlbhgCvrprRR3chgREXF2_EXF4_:
 nop
@@ -808,7 +808,7 @@
 b__MA7zvavxva6Ybpnyr14fhccbegfFpevcgRuu:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVzAF_4unfuVzRRAF_8rdhny_gbVzRRAF_9nyybpngbeVzRRR8__erunfuRz
+.weak b__MAFg3__112__unfu_gnoyrVzAF_4unfuVzRRAF_8rdhny_gbVzRRAF_9nyybpngbeVzRRR8__erunfuRz
 .type b__MAFg3__112__unfu_gnoyrVzAF_4unfuVzRRAF_8rdhny_gbVzRRAF_9nyybpngbeVzRRR8__erunfuRz,%function
 b__MAFg3__112__unfu_gnoyrVzAF_4unfuVzRRAF_8rdhny_gbVzRRAF_9nyybpngbeVzRRR8__erunfuRz:
 nop
@@ -828,7 +828,7 @@
 b__MA7zvavxva13TencurzrOernx15vfTencurzrOernxRCXsCXgzzz:
 nop
 .data
-.globl b__MMA7zvavxva13UlcurangbeZnc11trgVafgnaprRiR3znc
+.weak b__MMA7zvavxva13UlcurangbeZnc11trgVafgnaprRiR3znc
 .type b__MMA7zvavxva13UlcurangbeZnc11trgVafgnaprRiR3znc,%object
 b__MMA7zvavxva13UlcurangbeZnc11trgVafgnaprRiR3znc:
 .space __SIZEOF_POINTER__
@@ -848,12 +848,12 @@
 b__MA7zvavxva11JbeqOernxre6svavfuRi:
 nop
 .text
-.globl b__MAFg3__16irpgbeVCX18uo_ynathntr_vzcy_gAF_9nyybpngbeVF3_RRR21__chfu_onpx_fybj_cnguVF3_RRiBG_
+.weak b__MAFg3__16irpgbeVCX18uo_ynathntr_vzcy_gAF_9nyybpngbeVF3_RRR21__chfu_onpx_fybj_cnguVF3_RRiBG_
 .type b__MAFg3__16irpgbeVCX18uo_ynathntr_vzcy_gAF_9nyybpngbeVF3_RRR21__chfu_onpx_fybj_cnguVF3_RRiBG_,%function
 b__MAFg3__16irpgbeVCX18uo_ynathntr_vzcy_gAF_9nyybpngbeVF3_RRR21__chfu_onpx_fybj_cnguVF3_RRiBG_:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVzAF_4unfuVzRRAF_8rdhny_gbVzRRAF_9nyybpngbeVzRRR25__rzcynpr_havdhr_xrl_netfVzWzRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVzCiRRRRoRREXG_QcBG0_
+.weak b__MAFg3__112__unfu_gnoyrVzAF_4unfuVzRRAF_8rdhny_gbVzRRAF_9nyybpngbeVzRRR25__rzcynpr_havdhr_xrl_netfVzWzRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVzCiRRRRoRREXG_QcBG0_
 .type b__MAFg3__112__unfu_gnoyrVzAF_4unfuVzRRAF_8rdhny_gbVzRRAF_9nyybpngbeVzRRR25__rzcynpr_havdhr_xrl_netfVzWzRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVzCiRRRRoRREXG_QcBG0_,%function
 b__MAFg3__112__unfu_gnoyrVzAF_4unfuVzRRAF_8rdhny_gbVzRRAF_9nyybpngbeVzRRR25__rzcynpr_havdhr_xrl_netfVzWzRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVzCiRRRRoRREXG_QcBG0_:
 nop
@@ -868,7 +868,7 @@
 b__MA7zvavxva4Sbag11cercnerSbagREXAFg3__110funerq_cgeVAF_11ZvavxvaSbagRRR:
 nop
 .text
-.globl b__MAFg3__120__funerq_cge_cbvagreVCA7zvavxva10SbagSnzvylRAF_14qrsnhyg_qryrgrVF2_RRAF_9nyybpngbeVF2_RRR21__ba_mreb_funerq_jrnxRi
+.weak b__MAFg3__120__funerq_cge_cbvagreVCA7zvavxva10SbagSnzvylRAF_14qrsnhyg_qryrgrVF2_RRAF_9nyybpngbeVF2_RRR21__ba_mreb_funerq_jrnxRi
 .type b__MAFg3__120__funerq_cge_cbvagreVCA7zvavxva10SbagSnzvylRAF_14qrsnhyg_qryrgrVF2_RRAF_9nyybpngbeVF2_RRR21__ba_mreb_funerq_jrnxRi,%function
 b__MAFg3__120__funerq_cge_cbvagreVCA7zvavxva10SbagSnzvylRAF_14qrsnhyg_qryrgrVF2_RRAF_9nyybpngbeVF2_RRR21__ba_mreb_funerq_jrnxRi:
 nop
@@ -878,7 +878,7 @@
 b__MA7zvavxva11YnlbhgCvrprP1REXAF_14H16FgevatCvrprREXAF_5EnatrRoEXAF_12ZvavxvaCnvagRAF_15FgnegUlcuraRqvgRAF_13RaqUlcuraRqvgR:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7zvavxva4SbagRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVF2_RRiBG_
+.weak b__MAFg3__16irpgbeVA7zvavxva4SbagRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVF2_RRiBG_
 .type b__MAFg3__16irpgbeVA7zvavxva4SbagRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVF2_RRiBG_,%function
 b__MAFg3__16irpgbeVA7zvavxva4SbagRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVF2_RRiBG_:
 nop
@@ -888,17 +888,17 @@
 b__MA7zvavxva13UlcurangbeZnc14ybbxhcVagreanyREXAF_6YbpnyrR:
 nop
 .data
-.globl b__MGIA7naqebvq8YehPnpurVA7zvavxva14YnlbhgPnpurXrlRCAF1_11YnlbhgCvrprRRR
+.weak b__MGIA7naqebvq8YehPnpurVA7zvavxva14YnlbhgPnpurXrlRCAF1_11YnlbhgCvrprRRR
 .type b__MGIA7naqebvq8YehPnpurVA7zvavxva14YnlbhgPnpurXrlRCAF1_11YnlbhgCvrprRRR,%object
 b__MGIA7naqebvq8YehPnpurVA7zvavxva14YnlbhgPnpurXrlRCAF1_11YnlbhgCvrprRRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__114__fcyvg_ohssreVAF_10havdhr_cgeVA7zvavxva12FcnefrOvgFrgRAF_14qrsnhyg_qryrgrVF3_RRRREAF_9nyybpngbeVF6_RRRQ2Ri
+.weak b__MAFg3__114__fcyvg_ohssreVAF_10havdhr_cgeVA7zvavxva12FcnefrOvgFrgRAF_14qrsnhyg_qryrgrVF3_RRRREAF_9nyybpngbeVF6_RRRQ2Ri
 .type b__MAFg3__114__fcyvg_ohssreVAF_10havdhr_cgeVA7zvavxva12FcnefrOvgFrgRAF_14qrsnhyg_qryrgrVF3_RRRREAF_9nyybpngbeVF6_RRRQ2Ri,%function
 b__MAFg3__114__fcyvg_ohssreVAF_10havdhr_cgeVA7zvavxva12FcnefrOvgFrgRAF_14qrsnhyg_qryrgrVF3_RRRREAF_9nyybpngbeVF6_RRRQ2Ri:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7zvavxva10YbpnyrYvfgRAF_9nyybpngbeVF2_RRR24__rzcynpr_onpx_fybj_cnguVWRRRiQcBG_
+.weak b__MAFg3__16irpgbeVA7zvavxva10YbpnyrYvfgRAF_9nyybpngbeVF2_RRR24__rzcynpr_onpx_fybj_cnguVWRRRiQcBG_
 .type b__MAFg3__16irpgbeVA7zvavxva10YbpnyrYvfgRAF_9nyybpngbeVF2_RRR24__rzcynpr_onpx_fybj_cnguVWRRRiQcBG_,%function
 b__MAFg3__16irpgbeVA7zvavxva10YbpnyrYvfgRAF_9nyybpngbeVF2_RRR24__rzcynpr_onpx_fybj_cnguVWRRRiQcBG_:
 nop
@@ -908,7 +908,7 @@
 b__MA7zvavxva11JbeqOernxreP1RCAF_18VPHYvarOernxreCbbyR:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVzCXA7zvavxva10UlcurangbeRRRAF_19__znc_inyhr_pbzcnerVzF6_AF_4yrffVzRRYo1RRRAF_9nyybpngbeVF6_RRR7qrfgeblRCAF_11__gerr_abqrVF6_CiRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVzCXA7zvavxva10UlcurangbeRRRAF_19__znc_inyhr_pbzcnerVzF6_AF_4yrffVzRRYo1RRRAF_9nyybpngbeVF6_RRR7qrfgeblRCAF_11__gerr_abqrVF6_CiRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVzCXA7zvavxva10UlcurangbeRRRAF_19__znc_inyhr_pbzcnerVzF6_AF_4yrffVzRRYo1RRRAF_9nyybpngbeVF6_RRR7qrfgeblRCAF_11__gerr_abqrVF6_CiRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVzCXA7zvavxva10UlcurangbeRRRAF_19__znc_inyhr_pbzcnerVzF6_AF_4yrffVzRRYo1RRRAF_9nyybpngbeVF6_RRR7qrfgeblRCAF_11__gerr_abqrVF6_CiRR:
 nop
@@ -918,7 +918,7 @@
 b__MAX7zvavxva10Ulcurangbe23ulcurangrJvguAbCnggreafREXAF_14H16FgevatCvrprRCAF_15UlcurangvbaGlcrR:
 nop
 .data
-.globl b__MTIMA7zvavxva11YnlbhgPnpur11trgVafgnaprRiR5pnpur
+.weak b__MTIMA7zvavxva11YnlbhgPnpur11trgVafgnaprRiR5pnpur
 .type b__MTIMA7zvavxva11YnlbhgPnpur11trgVafgnaprRiR5pnpur,%object
 b__MTIMA7zvavxva11YnlbhgPnpur11trgVafgnaprRiR5pnpur:
 .space __SIZEOF_POINTER__
@@ -933,12 +933,12 @@
 b__MAX7zvavxva8FglyrEha9trgRkgragREXAF_14H16FgevatCvrprREXAF_5EnatrREXAF_12YnlbhgCvrprfR:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7zvavxva14SbagPbyyrpgvba3EhaRAF_9nyybpngbeVF3_RRR21__chfu_onpx_fybj_cnguVF3_RRiBG_
+.weak b__MAFg3__16irpgbeVA7zvavxva14SbagPbyyrpgvba3EhaRAF_9nyybpngbeVF3_RRR21__chfu_onpx_fybj_cnguVF3_RRiBG_
 .type b__MAFg3__16irpgbeVA7zvavxva14SbagPbyyrpgvba3EhaRAF_9nyybpngbeVF3_RRR21__chfu_onpx_fybj_cnguVF3_RRiBG_,%function
 b__MAFg3__16irpgbeVA7zvavxva14SbagPbyyrpgvba3EhaRAF_9nyybpngbeVF3_RRR21__chfu_onpx_fybj_cnguVF3_RRiBG_:
 nop
 .text
-.globl b__MAFg3__16irpgbeV14uo_inevngvba_gAF_9nyybpngbeVF1_RRR7erfreirRz
+.weak b__MAFg3__16irpgbeV14uo_inevngvba_gAF_9nyybpngbeVF1_RRR7erfreirRz
 .type b__MAFg3__16irpgbeV14uo_inevngvba_gAF_9nyybpngbeVF1_RRR7erfreirRz,%function
 b__MAFg3__16irpgbeV14uo_inevngvba_gAF_9nyybpngbeVF1_RRR7erfreirRz:
 nop
@@ -973,7 +973,7 @@
 b__MA7zvavxva6YbpnyrP2REXAF_11FgevatCvrprR:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7zvavxva5CbvagRAF_9nyybpngbeVF2_RRRP2REXF5_
+.weak b__MAFg3__16irpgbeVA7zvavxva5CbvagRAF_9nyybpngbeVF2_RRRP2REXF5_
 .type b__MAFg3__16irpgbeVA7zvavxva5CbvagRAF_9nyybpngbeVF2_RRRP2REXF5_,%function
 b__MAFg3__16irpgbeVA7zvavxva5CbvagRAF_9nyybpngbeVF2_RRRP2REXF5_:
 nop
@@ -993,7 +993,7 @@
 b__MA7zvavxva14SbagPbyyrpgvba24pnypInevnagZngpuvatFpberRAF_13SnzvylInevnagREXAF_10SbagSnzvylR:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVwAF_4unfuVwRRAF_8rdhny_gbVwRRAF_9nyybpngbeVwRRR6erunfuRz
+.weak b__MAFg3__112__unfu_gnoyrVwAF_4unfuVwRRAF_8rdhny_gbVwRRAF_9nyybpngbeVwRRR6erunfuRz
 .type b__MAFg3__112__unfu_gnoyrVwAF_4unfuVwRRAF_8rdhny_gbVwRRAF_9nyybpngbeVwRRR6erunfuRz,%function
 b__MAFg3__112__unfu_gnoyrVwAF_4unfuVwRRAF_8rdhny_gbVwRRAF_9nyybpngbeVwRRR6erunfuRz:
 nop
@@ -1013,7 +1013,7 @@
 b__MA7zvavxva10Ulcurangbe20vfYvarOernxvatUlcuraRw:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVCA7naqebvq8YehPnpurVA7zvavxva14YnlbhgPnpurXrlRCAF3_11YnlbhgCvrprRR10XrlrqRagelRAF7_12UnfuSbeRagelRAF7_24RdhnyvglSbeUnfurqRagevrfRAF_9nyybpngbeVF9_RRR4svaqVF9_RRAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF9_CiRRRREXG_
+.weak b__MAFg3__112__unfu_gnoyrVCA7naqebvq8YehPnpurVA7zvavxva14YnlbhgPnpurXrlRCAF3_11YnlbhgCvrprRR10XrlrqRagelRAF7_12UnfuSbeRagelRAF7_24RdhnyvglSbeUnfurqRagevrfRAF_9nyybpngbeVF9_RRR4svaqVF9_RRAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF9_CiRRRREXG_
 .type b__MAFg3__112__unfu_gnoyrVCA7naqebvq8YehPnpurVA7zvavxva14YnlbhgPnpurXrlRCAF3_11YnlbhgCvrprRR10XrlrqRagelRAF7_12UnfuSbeRagelRAF7_24RdhnyvglSbeUnfurqRagevrfRAF_9nyybpngbeVF9_RRR4svaqVF9_RRAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF9_CiRRRREXG_,%function
 b__MAFg3__112__unfu_gnoyrVCA7naqebvq8YehPnpurVA7zvavxva14YnlbhgPnpurXrlRCAF3_11YnlbhgCvrprRR10XrlrqRagelRAF7_12UnfuSbeRagelRAF7_24RdhnyvglSbeUnfurqRagevrfRAF_9nyybpngbeVF9_RRR4svaqVF9_RRAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF9_CiRRRREXG_:
 nop
@@ -1038,12 +1038,12 @@
 b__MA7zvavxva6Ynlbhg11zrnfherGrkgREXAF_14H16FgevatCvrprREXAF_5EnatrRAF_4OvqvREXAF_12ZvavxvaCnvagRAF_15FgnegUlcuraRqvgRAF_13RaqUlcuraRqvgRCs:
 nop
 .data
-.globl b__MGIA7naqebvq8YehPnpurVA7zvavxva14YnlbhgPnpurXrlRCAF1_11YnlbhgCvrprRR14RagelSbeFrnepuR
+.weak b__MGIA7naqebvq8YehPnpurVA7zvavxva14YnlbhgPnpurXrlRCAF1_11YnlbhgCvrprRR14RagelSbeFrnepuR
 .type b__MGIA7naqebvq8YehPnpurVA7zvavxva14YnlbhgPnpurXrlRCAF1_11YnlbhgCvrprRR14RagelSbeFrnepuR,%object
 b__MGIA7naqebvq8YehPnpurVA7zvavxva14YnlbhgPnpurXrlRCAF1_11YnlbhgCvrprRR14RagelSbeFrnepuR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__16irpgbeVA7zvavxva15UlcurangvbaGlcrRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVF2_RRiBG_
+.weak b__MAFg3__16irpgbeVA7zvavxva15UlcurangvbaGlcrRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVF2_RRiBG_
 .type b__MAFg3__16irpgbeVA7zvavxva15UlcurangvbaGlcrRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVF2_RRiBG_,%function
 b__MAFg3__16irpgbeVA7zvavxva15UlcurangvbaGlcrRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVF2_RRiBG_:
 nop
@@ -1053,7 +1053,7 @@
 b__MAX7zvavxva8FglyrEha10trgZrgevpfREXAF_14H16FgevatCvrprRCAFg3__16irpgbeVsAF4_9nyybpngbeVsRRRRCAF_12YnlbhgCvrprfRFO_:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVA7zvavxva12YnlbhgCvrprf3XrlRAF2_11YnlbhgCvrprRRRAF_22__habeqrerq_znc_unfureVF4_F6_AF3_9XrlUnfureRYo1RRRAF_21__habeqrerq_znc_rdhnyVF4_F6_AF_8rdhny_gbVF4_RRYo1RRRAF_9nyybpngbeVF6_RRR8__erunfuRz
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVA7zvavxva12YnlbhgCvrprf3XrlRAF2_11YnlbhgCvrprRRRAF_22__habeqrerq_znc_unfureVF4_F6_AF3_9XrlUnfureRYo1RRRAF_21__habeqrerq_znc_rdhnyVF4_F6_AF_8rdhny_gbVF4_RRYo1RRRAF_9nyybpngbeVF6_RRR8__erunfuRz
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVA7zvavxva12YnlbhgCvrprf3XrlRAF2_11YnlbhgCvrprRRRAF_22__habeqrerq_znc_unfureVF4_F6_AF3_9XrlUnfureRYo1RRRAF_21__habeqrerq_znc_rdhnyVF4_F6_AF_8rdhny_gbVF4_RRYo1RRRAF_9nyybpngbeVF6_RRR8__erunfuRz,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVA7zvavxva12YnlbhgCvrprf3XrlRAF2_11YnlbhgCvrprRRRAF_22__habeqrerq_znc_unfureVF4_F6_AF3_9XrlUnfureRYo1RRRAF_21__habeqrerq_znc_rdhnyVF4_F6_AF_8rdhny_gbVF4_RRYo1RRRAF_9nyybpngbeVF6_RRR8__erunfuRz:
 nop
@@ -1063,7 +1063,7 @@
 b__MA7zvavxva22VPHYvarOernxreCbbyVzcy7eryrnfrRBAF_18VPHYvarOernxreCbby4FybgR:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVCXA7zvavxva4SbagRwRRAF_22__habeqrerq_znc_unfureVF5_F6_AF_4unfuVF5_RRYo1RRRAF_21__habeqrerq_znc_rdhnyVF5_F6_AF_8rdhny_gbVF5_RRYo1RRRAF_9nyybpngbeVF6_RRR6erunfuRz
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVCXA7zvavxva4SbagRwRRAF_22__habeqrerq_znc_unfureVF5_F6_AF_4unfuVF5_RRYo1RRRAF_21__habeqrerq_znc_rdhnyVF5_F6_AF_8rdhny_gbVF5_RRYo1RRRAF_9nyybpngbeVF6_RRR6erunfuRz
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVCXA7zvavxva4SbagRwRRAF_22__habeqrerq_znc_unfureVF5_F6_AF_4unfuVF5_RRYo1RRRAF_21__habeqrerq_znc_rdhnyVF5_F6_AF_8rdhny_gbVF5_RRYo1RRRAF_9nyybpngbeVF6_RRR6erunfuRz,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVCXA7zvavxva4SbagRwRRAF_22__habeqrerq_znc_unfureVF5_F6_AF_4unfuVF5_RRYo1RRRAF_21__habeqrerq_znc_rdhnyVF5_F6_AF_8rdhny_gbVF5_RRYo1RRRAF_9nyybpngbeVF6_RRR6erunfuRz:
 nop
@@ -1088,7 +1088,7 @@
 b__MA7zvavxva15oernxYvarTerrqlREXAF_14H16FgevatCvrprREXAF_12ZrnfherqGrkgREXAF_9YvarJvqguREXAF_8GnoFgbcfRo:
 nop
 .text
-.globl b__MAFg3__16irpgbeVvAF_9nyybpngbeVvRRR21__chfu_onpx_fybj_cnguVvRRiBG_
+.weak b__MAFg3__16irpgbeVvAF_9nyybpngbeVvRRR21__chfu_onpx_fybj_cnguVvRRiBG_
 .type b__MAFg3__16irpgbeVvAF_9nyybpngbeVvRRR21__chfu_onpx_fybj_cnguVvRRiBG_,%function
 b__MAFg3__16irpgbeVvAF_9nyybpngbeVvRRR21__chfu_onpx_fybj_cnguVvRRiBG_:
 nop
@@ -1098,7 +1098,7 @@
 b__MA7zvavxva6Ynlbhg12qbYnlbhgJbeqRCXgzzzoEXAF_12ZvavxvaCnvagRzAF_15FgnegUlcuraRqvgRAF_13RaqUlcuraRqvgRCF0_Cs:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVCA7naqebvq8YehPnpurVA7zvavxva14YnlbhgPnpurXrlRCAF3_11YnlbhgCvrprRR10XrlrqRagelRAF7_12UnfuSbeRagelRAF7_24RdhnyvglSbeUnfurqRagevrfRAF_9nyybpngbeVF9_RRR8__erunfuRz
+.weak b__MAFg3__112__unfu_gnoyrVCA7naqebvq8YehPnpurVA7zvavxva14YnlbhgPnpurXrlRCAF3_11YnlbhgCvrprRR10XrlrqRagelRAF7_12UnfuSbeRagelRAF7_24RdhnyvglSbeUnfurqRagevrfRAF_9nyybpngbeVF9_RRR8__erunfuRz
 .type b__MAFg3__112__unfu_gnoyrVCA7naqebvq8YehPnpurVA7zvavxva14YnlbhgPnpurXrlRCAF3_11YnlbhgCvrprRR10XrlrqRagelRAF7_12UnfuSbeRagelRAF7_24RdhnyvglSbeUnfurqRagevrfRAF_9nyybpngbeVF9_RRR8__erunfuRz,%function
 b__MAFg3__112__unfu_gnoyrVCA7naqebvq8YehPnpurVA7zvavxva14YnlbhgPnpurXrlRCAF3_11YnlbhgCvrprRR10XrlrqRagelRAF7_12UnfuSbeRagelRAF7_24RdhnyvglSbeUnfurqRagevrfRAF_9nyybpngbeVF9_RRR8__erunfuRz:
 nop
@@ -1108,12 +1108,12 @@
 b__MA7zvavxva14oernxVagbYvarfREXAF_14H16FgevatCvrprRAF_13OernxFgengrtlRAF_20UlcurangvbaSerdhraplRoEXAF_12ZrnfherqGrkgREXAF_9YvarJvqguREXAF_8GnoFgbcfR:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7zvavxva15UlcurangvbaGlcrRAF_9nyybpngbeVF2_RRR8__nccraqRz
+.weak b__MAFg3__16irpgbeVA7zvavxva15UlcurangvbaGlcrRAF_9nyybpngbeVF2_RRR8__nccraqRz
 .type b__MAFg3__16irpgbeVA7zvavxva15UlcurangvbaGlcrRAF_9nyybpngbeVF2_RRR8__nccraqRz,%function
 b__MAFg3__16irpgbeVA7zvavxva15UlcurangvbaGlcrRAF_9nyybpngbeVF2_RRR8__nccraqRz:
 nop
 .text
-.globl b__MAFg3__16irpgbeVwAF_9nyybpngbeVwRRRP2REXF3_
+.weak b__MAFg3__16irpgbeVwAF_9nyybpngbeVwRRRP2REXF3_
 .type b__MAFg3__16irpgbeVwAF_9nyybpngbeVwRRRP2REXF3_,%function
 b__MAFg3__16irpgbeVwAF_9nyybpngbeVwRRRP2REXF3_:
 nop
@@ -1128,7 +1128,7 @@
 b__MAX7zvavxva10Ulcurangbe14nycunorgYbbxhcRCgEXAF_14H16FgevatCvrprR:
 nop
 .text
-.globl b__MA7naqebvq8YehPnpurVA7zvavxva14YnlbhgPnpurXrlRCAF1_11YnlbhgCvrprRRQ2Ri
+.weak b__MA7naqebvq8YehPnpurVA7zvavxva14YnlbhgPnpurXrlRCAF1_11YnlbhgCvrprRRQ2Ri
 .type b__MA7naqebvq8YehPnpurVA7zvavxva14YnlbhgPnpurXrlRCAF1_11YnlbhgCvrprRRQ2Ri,%function
 b__MA7naqebvq8YehPnpurVA7zvavxva14YnlbhgPnpurXrlRCAF1_11YnlbhgCvrprRRQ2Ri:
 nop
@@ -1143,7 +1143,7 @@
 b__MA7zvavxva11JbeqOernxre25svaqArkgOernxVaRznvyBeHeyRi:
 nop
 .data
-.globl b__MMA7zvavxva15YbpnyrYvfgPnpur11trgVafgnaprRiR8vafgnapr
+.weak b__MMA7zvavxva15YbpnyrYvfgPnpur11trgVafgnaprRiR8vafgnapr
 .type b__MMA7zvavxva15YbpnyrYvfgPnpur11trgVafgnaprRiR8vafgnapr,%object
 b__MMA7zvavxva15YbpnyrYvfgPnpur11trgVafgnaprRiR8vafgnapr:
 .space __SIZEOF_POINTER__
@@ -1158,7 +1158,7 @@
 b__MAX7zvavxva12ZrnfherqGrkg9trgRkgragREXAF_14H16FgevatCvrprREXAF_5EnatrR:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVCXA7zvavxva4SbagRwRRAF_22__habeqrerq_znc_unfureVF5_F6_AF_4unfuVF5_RRYo1RRRAF_21__habeqrerq_znc_rdhnyVF5_F6_AF_8rdhny_gbVF5_RRYo1RRRAF_9nyybpngbeVF6_RRR8__erunfuRz
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVCXA7zvavxva4SbagRwRRAF_22__habeqrerq_znc_unfureVF5_F6_AF_4unfuVF5_RRYo1RRRAF_21__habeqrerq_znc_rdhnyVF5_F6_AF_8rdhny_gbVF5_RRYo1RRRAF_9nyybpngbeVF6_RRR8__erunfuRz
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVCXA7zvavxva4SbagRwRRAF_22__habeqrerq_znc_unfureVF5_F6_AF_4unfuVF5_RRYo1RRRAF_21__habeqrerq_znc_rdhnyVF5_F6_AF_8rdhny_gbVF5_RRYo1RRRAF_9nyybpngbeVF6_RRR8__erunfuRz,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVCXA7zvavxva4SbagRwRRAF_22__habeqrerq_znc_unfureVF5_F6_AF_4unfuVF5_RRYo1RRRAF_21__habeqrerq_znc_rdhnyVF5_F6_AF_8rdhny_gbVF5_RRYo1RRRAF_9nyybpngbeVF6_RRR8__erunfuRz:
 nop
@@ -1168,7 +1168,7 @@
 b__MAX7zvavxva14SbagPbyyrpgvba15pnypSnzvylFpberRwwAF_13SnzvylInevnagRwEXAFg3__110funerq_cgeVAF_10SbagSnzvylRRR:
 nop
 .data
-.globl b__MTIMA7zvavxva13UlcurangbeZnc11trgVafgnaprRiR3znc
+.weak b__MTIMA7zvavxva13UlcurangbeZnc11trgVafgnaprRiR3znc
 .type b__MTIMA7zvavxva13UlcurangbeZnc11trgVafgnaprRiR3znc,%object
 b__MTIMA7zvavxva13UlcurangbeZnc11trgVafgnaprRiR3znc:
 .space __SIZEOF_POINTER__
diff --git a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_092.S b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_092.S
index edafa55..955b96a 100644
--- a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_092.S
+++ b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_092.S
@@ -3,7 +3,7 @@
 .data
 .p2align 4
 .text
-.globl b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR16__cnefr_rpzn_rkcVCXpRRG_F7_F7_
+.weak b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR16__cnefr_rpzn_rkcVCXpRRG_F7_F7_
 .type b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR16__cnefr_rpzn_rkcVCXpRRG_F7_F7_,%function
 b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR16__cnefr_rpzn_rkcVCXpRRG_F7_F7_:
 nop
@@ -18,12 +18,12 @@
 b__MAX4Wfba5Inyhr9nfPFgevatRi:
 nop
 .text
-.globl b__MAXFg3__111__zngpu_nalVpR6__rkrpREAF_7__fgngrVpRR
+.weak b__MAXFg3__111__zngpu_nalVpR6__rkrpREAF_7__fgngrVpRR
 .type b__MAXFg3__111__zngpu_nalVpR6__rkrpREAF_7__fgngrVpRR,%function
 b__MAXFg3__111__zngpu_nalVpR6__rkrpREAF_7__fgngrVpRR:
 nop
 .text
-.globl b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR18__cnefr_abaqhcy_ERVCXpRRG_F7_F7_
+.weak b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR18__cnefr_abaqhcy_ERVCXpRRG_F7_F7_
 .type b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR18__cnefr_abaqhcy_ERVCXpRRG_F7_F7_,%function
 b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR18__cnefr_abaqhcy_ERVCXpRRG_F7_F7_:
 nop
@@ -43,12 +43,12 @@
 b__MAX4Wfba5Inyhr7pbzcnerREXF0_:
 nop
 .text
-.globl b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR18__cnefr_njx_rfpncrVCXpRRG_F7_F7_CAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
+.weak b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR18__cnefr_njx_rfpncrVCXpRRG_F7_F7_CAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
 .type b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR18__cnefr_njx_rfpncrVCXpRRG_F7_F7_CAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR,%function
 b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR18__cnefr_njx_rfpncrVCXpRRG_F7_F7_CAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR:
 nop
 .text
-.globl b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR20__cnefr_BEQ_PUNE_RERVCXpRRG_F7_F7_
+.weak b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR20__cnefr_BEQ_PUNE_RERVCXpRRG_F7_F7_
 .type b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR20__cnefr_BEQ_PUNE_RERVCXpRRG_F7_F7_,%function
 b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR20__cnefr_BEQ_PUNE_RERVCXpRRG_F7_F7_:
 nop
@@ -68,7 +68,7 @@
 b__MA4Wfba12FglyrqJevgre5jevgrREXAF_5InyhrR:
 nop
 .text
-.globl b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR25__cnefr_cnggrea_punenpgreVCXpRRG_F7_F7_
+.weak b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR25__cnefr_cnggrea_punenpgreVCXpRRG_F7_F7_
 .type b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR25__cnefr_cnggrea_punenpgreVCXpRRG_F7_F7_,%function
 b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR25__cnefr_cnggrea_punenpgreVCXpRRG_F7_F7_:
 nop
@@ -88,7 +88,7 @@
 b__MA4Wfba18FglyrqFgernzJevgreP1RAFg3__112onfvp_fgevatVpAF1_11pune_genvgfVpRRAF1_9nyybpngbeVpRRRR:
 nop
 .text
-.globl b__MAXFg3__110__onpx_ersVpR6__rkrpREAF_7__fgngrVpRR
+.weak b__MAXFg3__110__onpx_ersVpR6__rkrpREAF_7__fgngrVpRR
 .type b__MAXFg3__110__onpx_ersVpR6__rkrpREAF_7__fgngrVpRR,%function
 b__MAXFg3__110__onpx_ersVpR6__rkrpREAF_7__fgngrVpRR:
 nop
@@ -113,17 +113,17 @@
 b__MAX4Wfba17InyhrVgrengbeOnfr7vfRdhnyREXF0_:
 nop
 .text
-.globl b__MAXFg3__110__y_napubeVpR6__rkrpREAF_7__fgngrVpRR
+.weak b__MAXFg3__110__y_napubeVpR6__rkrpREAF_7__fgngrVpRR
 .type b__MAXFg3__110__y_napubeVpR6__rkrpREAF_7__fgngrVpRR,%function
 b__MAXFg3__110__y_napubeVpR6__rkrpREAF_7__fgngrVpRR:
 nop
 .text
-.globl b__MAFg3__117__bjaf_gjb_fgngrfVpRQ2Ri
+.weak b__MAFg3__117__bjaf_gjb_fgngrfVpRQ2Ri
 .type b__MAFg3__117__bjaf_gjb_fgngrfVpRQ2Ri,%function
 b__MAFg3__117__bjaf_gjb_fgngrfVpRQ2Ri:
 nop
 .data
-.globl b__MGIAFg3__117__bjaf_gjb_fgngrfVpRR
+.weak b__MGIAFg3__117__bjaf_gjb_fgngrfVpRR
 .type b__MGIAFg3__117__bjaf_gjb_fgngrfVpRR,%object
 b__MGIAFg3__117__bjaf_gjb_fgngrfVpRR:
 .space __SIZEOF_POINTER__
@@ -138,7 +138,7 @@
 b__MA4Wfba6Ernqre8nqqReebeREXAFg3__112onfvp_fgevatVpAF1_11pune_genvgfVpRRAF1_9nyybpngbeVpRRRREAF0_5GbxraRCXp:
 nop
 .text
-.globl b__MAFg3__15qrdhrVA4Wfba6Ernqre9ReebeVasbRAF_9nyybpngbeVF3_RRR6erfvmrRz
+.weak b__MAFg3__15qrdhrVA4Wfba6Ernqre9ReebeVasbRAF_9nyybpngbeVF3_RRR6erfvmrRz
 .type b__MAFg3__15qrdhrVA4Wfba6Ernqre9ReebeVasbRAF_9nyybpngbeVF3_RRR6erfvmrRz,%function
 b__MAFg3__15qrdhrVA4Wfba6Ernqre9ReebeVasbRAF_9nyybpngbeVF3_RRR6erfvmrRz:
 nop
@@ -158,17 +158,17 @@
 b__MA4Wfba5Inyhr4fjncREF0_:
 nop
 .text
-.globl b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR15__chfu_onpx_ersRv
+.weak b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR15__chfu_onpx_ersRv
 .type b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR15__chfu_onpx_ersRv,%function
 b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR15__chfu_onpx_ersRv:
 nop
 .text
-.globl b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR24__cnefr_pbyyngvat_flzobyVCXpRRG_F7_F7_EAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
+.weak b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR24__cnefr_pbyyngvat_flzobyVCXpRRG_F7_F7_EAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
 .type b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR24__cnefr_pbyyngvat_flzobyVCXpRRG_F7_F7_EAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR,%function
 b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR24__cnefr_pbyyngvat_flzobyVCXpRRG_F7_F7_EAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR:
 nop
 .data
-.globl b__MGIAFg3__118__onpx_ers_pbyyngrVpAF_12ertrk_genvgfVpRRRR
+.weak b__MGIAFg3__118__onpx_ers_pbyyngrVpAF_12ertrk_genvgfVpRRRR
 .type b__MGIAFg3__118__onpx_ers_pbyyngrVpAF_12ertrk_genvgfVpRRRR,%object
 b__MGIAFg3__118__onpx_ers_pbyyngrVpAF_12ertrk_genvgfVpRRRR:
 .space __SIZEOF_POINTER__
@@ -193,7 +193,7 @@
 b__MAX4Wfba5Inyhr8nfQbhoyrRi:
 nop
 .text
-.globl b__MAFg3__16irpgbeVpAF_9nyybpngbeVpRRR21__chfu_onpx_fybj_cnguVEXpRRiBG_
+.weak b__MAFg3__16irpgbeVpAF_9nyybpngbeVpRRR21__chfu_onpx_fybj_cnguVEXpRRiBG_
 .type b__MAFg3__16irpgbeVpAF_9nyybpngbeVpRRR21__chfu_onpx_fybj_cnguVEXpRRiBG_,%function
 b__MAFg3__16irpgbeVpAF_9nyybpngbeVpRRR21__chfu_onpx_fybj_cnguVEXpRRiBG_:
 nop
@@ -228,12 +228,12 @@
 b__MAX11GnfxCebsvyr17RkrphgrSbeCebprffRwv:
 nop
 .text
-.globl b__MAXFg3__118__zngpu_pune_vpnfrVpAF_12ertrk_genvgfVpRRR6__rkrpREAF_7__fgngrVpRR
+.weak b__MAXFg3__118__zngpu_pune_vpnfrVpAF_12ertrk_genvgfVpRRR6__rkrpREAF_7__fgngrVpRR
 .type b__MAXFg3__118__zngpu_pune_vpnfrVpAF_12ertrk_genvgfVpRRR6__rkrpREAF_7__fgngrVpRR,%function
 b__MAXFg3__118__zngpu_pune_vpnfrVpAF_12ertrk_genvgfVpRRR6__rkrpREAF_7__fgngrVpRR:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_7__fgngrVpRRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVF2_RRiBG_
+.weak b__MAFg3__16irpgbeVAF_7__fgngrVpRRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVF2_RRiBG_
 .type b__MAFg3__16irpgbeVAF_7__fgngrVpRRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVF2_RRiBG_,%function
 b__MAFg3__16irpgbeVAF_7__fgngrVpRRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVF2_RRiBG_:
 nop
@@ -248,17 +248,17 @@
 b__MAX9PtebhcZnc5CevagRi:
 nop
 .text
-.globl b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR17__cnefr_nffregvbaVCXpRRG_F7_F7_
+.weak b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR17__cnefr_nffregvbaVCXpRRG_F7_F7_
 .type b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR17__cnefr_nffregvbaVCXpRRG_F7_F7_,%function
 b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR17__cnefr_nffregvbaVCXpRRG_F7_F7_:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF6_RRR21__chfu_onpx_fybj_cnguVEXF6_RRiBG_
+.weak b__MAFg3__16irpgbeVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF6_RRR21__chfu_onpx_fybj_cnguVEXF6_RRiBG_
 .type b__MAFg3__16irpgbeVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF6_RRR21__chfu_onpx_fybj_cnguVEXF6_RRiBG_,%function
 b__MAFg3__16irpgbeVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF6_RRR21__chfu_onpx_fybj_cnguVEXF6_RRiBG_:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_9fho_zngpuVCXpRRAF_9nyybpngbeVF4_RRR6nffvtaVCF4_RRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF4_AF_15vgrengbe_genvgfVFO_R9ersreraprRRR5inyhrRiR4glcrRFO_FO_
+.weak b__MAFg3__16irpgbeVAF_9fho_zngpuVCXpRRAF_9nyybpngbeVF4_RRR6nffvtaVCF4_RRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF4_AF_15vgrengbe_genvgfVFO_R9ersreraprRRR5inyhrRiR4glcrRFO_FO_
 .type b__MAFg3__16irpgbeVAF_9fho_zngpuVCXpRRAF_9nyybpngbeVF4_RRR6nffvtaVCF4_RRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF4_AF_15vgrengbe_genvgfVFO_R9ersreraprRRR5inyhrRiR4glcrRFO_FO_,%function
 b__MAFg3__16irpgbeVAF_9fho_zngpuVCXpRRAF_9nyybpngbeVF4_RRR6nffvtaVCF4_RRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF4_AF_15vgrengbe_genvgfVFO_R9ersreraprRRR5inyhrRiR4glcrRFO_FO_:
 nop
@@ -283,7 +283,7 @@
 b__MAX4Wfba5Inyhr14gbFglyrqFgevatRi:
 nop
 .text
-.globl b__MAFg3__116__bjaf_bar_fgngrVpRQ0Ri
+.weak b__MAFg3__116__bjaf_bar_fgngrVpRQ0Ri
 .type b__MAFg3__116__bjaf_bar_fgngrVpRQ0Ri,%function
 b__MAFg3__116__bjaf_bar_fgngrVpRQ0Ri:
 nop
@@ -308,7 +308,7 @@
 b__MA4Wfba5Inyhr8PMFgevatP1REXF1_:
 nop
 .text
-.globl b__MAFg3__17trgyvarVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRREAF_13onfvp_vfgernzVG_G0_RRF9_EAF_12onfvp_fgevatVF6_F7_G1_RRF6_
+.weak b__MAFg3__17trgyvarVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRREAF_13onfvp_vfgernzVG_G0_RRF9_EAF_12onfvp_fgevatVF6_F7_G1_RRF6_
 .type b__MAFg3__17trgyvarVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRREAF_13onfvp_vfgernzVG_G0_RRF9_EAF_12onfvp_fgevatVF6_F7_G1_RRF6_,%function
 b__MAFg3__17trgyvarVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRREAF_13onfvp_vfgernzVG_G0_RRF9_EAF_12onfvp_fgevatVF6_F7_G1_RRF6_:
 nop
@@ -318,7 +318,7 @@
 b__MA4Wfba18InyhrPbafgVgrengbeP1Ri:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA4Wfba12CnguNethzragRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVEXF2_RRiBG_
+.weak b__MAFg3__16irpgbeVA4Wfba12CnguNethzragRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVEXF2_RRiBG_
 .type b__MAFg3__16irpgbeVA4Wfba12CnguNethzragRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVEXF2_RRiBG_,%function
 b__MAFg3__16irpgbeVA4Wfba12CnguNethzragRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVEXF2_RRiBG_:
 nop
@@ -353,7 +353,7 @@
 b__MAX4Wfba5Inyhr8PMFgevat5vaqrkRi:
 nop
 .data
-.globl b__MGIAFg3__111__raq_fgngrVpRR
+.weak b__MGIAFg3__111__raq_fgngrVpRR
 .type b__MGIAFg3__111__raq_fgngrVpRR,%object
 b__MGIAFg3__111__raq_fgngrVpRR:
 .space __SIZEOF_POINTER__
@@ -368,12 +368,12 @@
 b__MGIA4Wfba10SnfgJevgreR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIAFg3__123__zngpu_nal_ohg_arjyvarVpRR
+.weak b__MGIAFg3__123__zngpu_nal_ohg_arjyvarVpRR
 .type b__MGIAFg3__123__zngpu_nal_ohg_arjyvarVpRR,%object
 b__MGIAFg3__123__zngpu_nal_ohg_arjyvarVpRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
+.weak b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
 .type b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_,%function
 b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_:
 nop
@@ -398,27 +398,27 @@
 b__MAX4Wfba17InyhrVgrengbeOnfr15pbzchgrQvfgnaprREXF0_:
 nop
 .text
-.globl b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR32__cnefr_bar_pune_be_pbyy_ryrz_ERVCXpRRG_F7_F7_
+.weak b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR32__cnefr_bar_pune_be_pbyy_ryrz_ERVCXpRRG_F7_F7_
 .type b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR32__cnefr_bar_pune_be_pbyy_ryrz_ERVCXpRRG_F7_F7_,%function
 b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR32__cnefr_bar_pune_be_pbyy_ryrz_ERVCXpRRG_F7_F7_:
 nop
 .text
-.globl b__MAFg3__114__fcyvg_ohssreVCAF_7__fgngrVpRREAF_9nyybpngbeVF3_RRR9chfu_onpxRBF3_
+.weak b__MAFg3__114__fcyvg_ohssreVCAF_7__fgngrVpRREAF_9nyybpngbeVF3_RRR9chfu_onpxRBF3_
 .type b__MAFg3__114__fcyvg_ohssreVCAF_7__fgngrVpRREAF_9nyybpngbeVF3_RRR9chfu_onpxRBF3_,%function
 b__MAFg3__114__fcyvg_ohssreVCAF_7__fgngrVpRREAF_9nyybpngbeVF3_RRR9chfu_onpxRBF3_:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_4cnveVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRF7_RRAF5_VF8_RRR21__chfu_onpx_fybj_cnguVF8_RRiBG_
+.weak b__MAFg3__16irpgbeVAF_4cnveVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRF7_RRAF5_VF8_RRR21__chfu_onpx_fybj_cnguVF8_RRiBG_
 .type b__MAFg3__16irpgbeVAF_4cnveVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRF7_RRAF5_VF8_RRR21__chfu_onpx_fybj_cnguVF8_RRiBG_,%function
 b__MAFg3__16irpgbeVAF_4cnveVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRF7_RRAF5_VF8_RRR21__chfu_onpx_fybj_cnguVF8_RRiBG_:
 nop
 .data
-.globl b__MGIAFg3__113__rzcgl_fgngrVpRR
+.weak b__MGIAFg3__113__rzcgl_fgngrVpRR
 .type b__MGIAFg3__113__rzcgl_fgngrVpRR,%object
 b__MGIAFg3__113__rzcgl_fgngrVpRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAXFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_10havdhr_cgeV16CebsvyrNggevohgrAF_14qrsnhyg_qryrgrVF9_RRRRRRAF_19__znc_inyhr_pbzcnerVF7_FQ_AF_4yrffVF7_RRYo1RRRAF5_VFQ_RRR4svaqVF7_RRAF_21__gerr_pbafg_vgrengbeVFQ_CAF_11__gerr_abqrVFQ_CiRRyRREXG_
+.weak b__MAXFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_10havdhr_cgeV16CebsvyrNggevohgrAF_14qrsnhyg_qryrgrVF9_RRRRRRAF_19__znc_inyhr_pbzcnerVF7_FQ_AF_4yrffVF7_RRYo1RRRAF5_VFQ_RRR4svaqVF7_RRAF_21__gerr_pbafg_vgrengbeVFQ_CAF_11__gerr_abqrVFQ_CiRRyRREXG_
 .type b__MAXFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_10havdhr_cgeV16CebsvyrNggevohgrAF_14qrsnhyg_qryrgrVF9_RRRRRRAF_19__znc_inyhr_pbzcnerVF7_FQ_AF_4yrffVF7_RRYo1RRRAF5_VFQ_RRR4svaqVF7_RRAF_21__gerr_pbafg_vgrengbeVFQ_CAF_11__gerr_abqrVFQ_CiRRyRREXG_,%function
 b__MAXFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_10havdhr_cgeV16CebsvyrNggevohgrAF_14qrsnhyg_qryrgrVF9_RRRRRRAF_19__znc_inyhr_pbzcnerVF7_FQ_AF_4yrffVF7_RRYo1RRRAF5_VFQ_RRR4svaqVF7_RRAF_21__gerr_pbafg_vgrengbeVFQ_CAF_11__gerr_abqrVFQ_CiRRyRREXG_:
 nop
@@ -433,17 +433,17 @@
 b__MAX4Wfba5Inyhr3trgRCXpEXF0_:
 nop
 .text
-.globl b__MAXFg3__126__raq_znexrq_fhorkcerffvbaVpR6__rkrpREAF_7__fgngrVpRR
+.weak b__MAXFg3__126__raq_znexrq_fhorkcerffvbaVpR6__rkrpREAF_7__fgngrVpRR
 .type b__MAXFg3__126__raq_znexrq_fhorkcerffvbaVpR6__rkrpREAF_7__fgngrVpRR,%function
 b__MAXFg3__126__raq_znexrq_fhorkcerffvbaVpR6__rkrpREAF_7__fgngrVpRR:
 nop
 .text
-.globl b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR22__cnefr_ER_qhcy_flzobyVCXpRRG_F7_F7_CAF_16__bjaf_bar_fgngrVpRRww
+.weak b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR22__cnefr_ER_qhcy_flzobyVCXpRRG_F7_F7_CAF_16__bjaf_bar_fgngrVpRRww
 .type b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR22__cnefr_ER_qhcy_flzobyVCXpRRG_F7_F7_CAF_16__bjaf_bar_fgngrVpRRww,%function
 b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR22__cnefr_ER_qhcy_flzobyVCXpRRG_F7_F7_CAF_16__bjaf_bar_fgngrVpRRww:
 nop
 .text
-.globl b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR24__cnefr_rkgraqrq_ert_rkcVCXpRRG_F7_F7_
+.weak b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR24__cnefr_rkgraqrq_ert_rkcVCXpRRG_F7_F7_
 .type b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR24__cnefr_rkgraqrq_ert_rkcVCXpRRG_F7_F7_,%function
 b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR24__cnefr_rkgraqrq_ert_rkcVCXpRRG_F7_F7_:
 nop
@@ -453,7 +453,7 @@
 b__MAX4Wfba5Inyhr8PMFgevatygREXF1_:
 nop
 .text
-.globl b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR22__cnefr_qrpvzny_rfpncrVCXpRRG_F7_F7_
+.weak b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR22__cnefr_qrpvzny_rfpncrVCXpRRG_F7_F7_
 .type b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR22__cnefr_qrpvzny_rfpncrVCXpRRG_F7_F7_,%function
 b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR22__cnefr_qrpvzny_rfpncrVCXpRRG_F7_F7_:
 nop
@@ -473,7 +473,7 @@
 b__MA4Wfba5Inyhr8PMFgevatP1RCXpAF1_17QhcyvpngvbaCbyvplR:
 nop
 .text
-.globl b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR23__cnefr_punenpgre_pynffVCXpRRG_F7_F7_CAF_20__oenpxrg_rkcerffvbaVpF2_RR
+.weak b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR23__cnefr_punenpgre_pynffVCXpRRG_F7_F7_CAF_20__oenpxrg_rkcerffvbaVpF2_RR
 .type b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR23__cnefr_punenpgre_pynffVCXpRRG_F7_F7_CAF_20__oenpxrg_rkcerffvbaVpF2_RR,%function
 b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR23__cnefr_punenpgre_pynffVCXpRRG_F7_F7_CAF_20__oenpxrg_rkcerffvbaVpF2_RR:
 nop
@@ -498,7 +498,7 @@
 b__MAX4Wfba5InyhrygREXF0_:
 nop
 .text
-.globl b__MAFg3__120__funerq_cge_cbvagreVCAF_13__rzcgl_fgngrVpRRAF_14qrsnhyg_qryrgrVF2_RRAF_9nyybpngbeVF2_RRR21__ba_mreb_funerq_jrnxRi
+.weak b__MAFg3__120__funerq_cge_cbvagreVCAF_13__rzcgl_fgngrVpRRAF_14qrsnhyg_qryrgrVF2_RRAF_9nyybpngbeVF2_RRR21__ba_mreb_funerq_jrnxRi
 .type b__MAFg3__120__funerq_cge_cbvagreVCAF_13__rzcgl_fgngrVpRRAF_14qrsnhyg_qryrgrVF2_RRAF_9nyybpngbeVF2_RRR21__ba_mreb_funerq_jrnxRi,%function
 b__MAFg3__120__funerq_cge_cbvagreVCAF_13__rzcgl_fgngrVpRRAF_14qrsnhyg_qryrgrVF2_RRAF_9nyybpngbeVF2_RRR21__ba_mreb_funerq_jrnxRi:
 nop
@@ -533,12 +533,12 @@
 b__MA4Wfba5InyhrP2Rw:
 nop
 .text
-.globl b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR12__cnefr_ngbzVCXpRRG_F7_F7_
+.weak b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR12__cnefr_ngbzVCXpRRG_F7_F7_
 .type b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR12__cnefr_ngbzVCXpRRG_F7_F7_,%function
 b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR12__cnefr_ngbzVCXpRRG_F7_F7_:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_9fho_zngpuVCXpRRAF_9nyybpngbeVF4_RRRP2REXF7_
+.weak b__MAFg3__16irpgbeVAF_9fho_zngpuVCXpRRAF_9nyybpngbeVF4_RRRP2REXF7_
 .type b__MAFg3__16irpgbeVAF_9fho_zngpuVCXpRRAF_9nyybpngbeVF4_RRRP2REXF7_,%function
 b__MAFg3__16irpgbeVAF_9fho_zngpuVCXpRRAF_9nyybpngbeVF4_RRRP2REXF7_:
 nop
@@ -558,7 +558,7 @@
 b__MA4Wfba12FglyrqJevgre8havaqragRi:
 nop
 .text
-.globl b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR30__cnefr_punenpgre_pynff_rfpncrVCXpRRG_F7_F7_
+.weak b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR30__cnefr_punenpgre_pynff_rfpncrVCXpRRG_F7_F7_
 .type b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR30__cnefr_punenpgre_pynff_rfpncrVCXpRRG_F7_F7_,%function
 b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR30__cnefr_punenpgre_pynff_rfpncrVCXpRRG_F7_F7_:
 nop
@@ -623,7 +623,7 @@
 b__MAX4Wfba5InyhrvkRv:
 nop
 .text
-.globl b__MAXFg3__115__jbeq_obhaqnelVpAF_12ertrk_genvgfVpRRR6__rkrpREAF_7__fgngrVpRR
+.weak b__MAXFg3__115__jbeq_obhaqnelVpAF_12ertrk_genvgfVpRRR6__rkrpREAF_7__fgngrVpRR
 .type b__MAXFg3__115__jbeq_obhaqnelVpAF_12ertrk_genvgfVpRRR6__rkrpREAF_7__fgngrVpRR,%function
 b__MAXFg3__115__jbeq_obhaqnelVpAF_12ertrk_genvgfVpRRR6__rkrpREAF_7__fgngrVpRR:
 nop
@@ -638,7 +638,7 @@
 b__MA4Wfba5Inyhr8PMFgevatP2REXF1_:
 nop
 .text
-.globl b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR24__cnefr_punenpgre_rfpncrVCXpRRG_F7_F7_CAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
+.weak b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR24__cnefr_punenpgre_rfpncrVCXpRRG_F7_F7_CAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
 .type b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR24__cnefr_punenpgre_rfpncrVCXpRRG_F7_F7_CAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR,%function
 b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR24__cnefr_punenpgre_rfpncrVCXpRRG_F7_F7_CAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR:
 nop
@@ -653,7 +653,7 @@
 b_PtebhcTrgPbagebyyreCngu:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_10havdhr_cgeV13CebsvyrNpgvbaAF_14qrsnhyg_qryrgrVF2_RRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_
+.weak b__MAFg3__16irpgbeVAF_10havdhr_cgeV13CebsvyrNpgvbaAF_14qrsnhyg_qryrgrVF2_RRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_
 .type b__MAFg3__16irpgbeVAF_10havdhr_cgeV13CebsvyrNpgvbaAF_14qrsnhyg_qryrgrVF2_RRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_,%function
 b__MAFg3__16irpgbeVAF_10havdhr_cgeV13CebsvyrNpgvbaAF_14qrsnhyg_qryrgrVF2_RRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_:
 nop
@@ -663,7 +663,7 @@
 b__MA4Wfba5Inyhr6znkVagR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__15qrdhrVA4Wfba6Ernqre9ReebeVasbRAF_9nyybpngbeVF3_RRR19__nqq_onpx_pncnpvglRz
+.weak b__MAFg3__15qrdhrVA4Wfba6Ernqre9ReebeVasbRAF_9nyybpngbeVF3_RRR19__nqq_onpx_pncnpvglRz
 .type b__MAFg3__15qrdhrVA4Wfba6Ernqre9ReebeVasbRAF_9nyybpngbeVF3_RRR19__nqq_onpx_pncnpvglRz,%function
 b__MAFg3__15qrdhrVA4Wfba6Ernqre9ReebeVasbRAF_9nyybpngbeVF3_RRR19__nqq_onpx_pncnpvglRz:
 nop
@@ -678,7 +678,7 @@
 b__MA4Wfba5Inyhr6zvaVagR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIAFg3__115__jbeq_obhaqnelVpAF_12ertrk_genvgfVpRRRR
+.weak b__MGIAFg3__115__jbeq_obhaqnelVpAF_12ertrk_genvgfVpRRRR
 .type b__MGIAFg3__115__jbeq_obhaqnelVpAF_12ertrk_genvgfVpRRRR,%object
 b__MGIAFg3__115__jbeq_obhaqnelVpAF_12ertrk_genvgfVpRRRR:
 .space __SIZEOF_POINTER__
@@ -693,12 +693,12 @@
 b__MAX4Wfba5Inyhr6nfObbyRi:
 nop
 .text
-.globl b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR23__cnefr_DHBGRQ_PUNE_RERVCXpRRG_F7_F7_
+.weak b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR23__cnefr_DHBGRQ_PUNE_RERVCXpRRG_F7_F7_
 .type b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR23__cnefr_DHBGRQ_PUNE_RERVCXpRRG_F7_F7_,%function
 b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR23__cnefr_DHBGRQ_PUNE_RERVCXpRRG_F7_F7_:
 nop
 .text
-.globl b__MAFg3__116__bjaf_bar_fgngrVpRQ2Ri
+.weak b__MAFg3__116__bjaf_bar_fgngrVpRQ2Ri
 .type b__MAFg3__116__bjaf_bar_fgngrVpRQ2Ri,%function
 b__MAFg3__116__bjaf_bar_fgngrVpRQ2Ri:
 nop
@@ -733,22 +733,22 @@
 b__MAX4Wfba5Inyhr8vfZrzoreRCXp:
 nop
 .text
-.globl b__MAXFg3__111__raq_fgngrVpR6__rkrpREAF_7__fgngrVpRR
+.weak b__MAXFg3__111__raq_fgngrVpR6__rkrpREAF_7__fgngrVpRR
 .type b__MAXFg3__111__raq_fgngrVpR6__rkrpREAF_7__fgngrVpRR,%function
 b__MAXFg3__111__raq_fgngrVpR6__rkrpREAF_7__fgngrVpRR:
 nop
 .text
-.globl b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR22__cnefr_RER_rkcerffvbaVCXpRRG_F7_F7_
+.weak b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR22__cnefr_RER_rkcerffvbaVCXpRRG_F7_F7_
 .type b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR22__cnefr_RER_rkcerffvbaVCXpRRG_F7_F7_,%function
 b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR22__cnefr_RER_rkcerffvbaVCXpRRG_F7_F7_:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_4cnveVzCXpRRAF_9nyybpngbeVF4_RRR6nffvtaVCF4_RRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF4_AF_15vgrengbe_genvgfVFO_R9ersreraprRRR5inyhrRiR4glcrRFO_FO_
+.weak b__MAFg3__16irpgbeVAF_4cnveVzCXpRRAF_9nyybpngbeVF4_RRR6nffvtaVCF4_RRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF4_AF_15vgrengbe_genvgfVFO_R9ersreraprRRR5inyhrRiR4glcrRFO_FO_
 .type b__MAFg3__16irpgbeVAF_4cnveVzCXpRRAF_9nyybpngbeVF4_RRR6nffvtaVCF4_RRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF4_AF_15vgrengbe_genvgfVFO_R9ersreraprRRR5inyhrRiR4glcrRFO_FO_,%function
 b__MAFg3__16irpgbeVAF_4cnveVzCXpRRAF_9nyybpngbeVF4_RRR6nffvtaVCF4_RRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF4_AF_15vgrengbe_genvgfVFO_R9ersreraprRRR5inyhrRiR4glcrRFO_FO_:
 nop
 .data
-.globl b__MGIAFg3__120__zngpu_pune_pbyyngrVpAF_12ertrk_genvgfVpRRRR
+.weak b__MGIAFg3__120__zngpu_pune_pbyyngrVpAF_12ertrk_genvgfVpRRRR
 .type b__MGIAFg3__120__zngpu_pune_pbyyngrVpAF_12ertrk_genvgfVpRRRR,%object
 b__MGIAFg3__120__zngpu_pune_pbyyngrVpAF_12ertrk_genvgfVpRRRR:
 .space __SIZEOF_POINTER__
@@ -768,12 +768,12 @@
 b__MAX4Wfba6Ernqre24trgSbezngrqReebeZrffntrfRi:
 nop
 .text
-.globl b__MAFg3__114__fcyvg_ohssreVCCA4Wfba5InyhrRAF_9nyybpngbeVF4_RRR10chfu_sebagRBF4_
+.weak b__MAFg3__114__fcyvg_ohssreVCCA4Wfba5InyhrRAF_9nyybpngbeVF4_RRR10chfu_sebagRBF4_
 .type b__MAFg3__114__fcyvg_ohssreVCCA4Wfba5InyhrRAF_9nyybpngbeVF4_RRR10chfu_sebagRBF4_,%function
 b__MAFg3__114__fcyvg_ohssreVCCA4Wfba5InyhrRAF_9nyybpngbeVF4_RRR10chfu_sebagRBF4_:
 nop
 .text
-.globl b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR23__cnefr_rkcerffvba_grezVCXpRRG_F7_F7_CAF_20__oenpxrg_rkcerffvbaVpF2_RR
+.weak b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR23__cnefr_rkcerffvba_grezVCXpRRG_F7_F7_CAF_20__oenpxrg_rkcerffvbaVpF2_RR
 .type b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR23__cnefr_rkcerffvba_grezVCXpRRG_F7_F7_CAF_20__oenpxrg_rkcerffvbaVpF2_RR,%function
 b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR23__cnefr_rkcerffvba_grezVCXpRRG_F7_F7_CAF_20__oenpxrg_rkcerffvbaVpF2_RR:
 nop
@@ -798,12 +798,12 @@
 b__MA4Wfba12FglyrqJevgre18unfPbzzragSbeInyhrREXAF_5InyhrR:
 nop
 .data
-.globl b__MGIAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
+.weak b__MGIAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
 .type b__MGIAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR,%object
 b__MGIAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAXFg3__111__ybbxnurnqVpAF_12ertrk_genvgfVpRRR6__rkrpREAF_7__fgngrVpRR
+.weak b__MAXFg3__111__ybbxnurnqVpAF_12ertrk_genvgfVpRRR6__rkrpREAF_7__fgngrVpRR
 .type b__MAXFg3__111__ybbxnurnqVpAF_12ertrk_genvgfVpRRR6__rkrpREAF_7__fgngrVpRR,%function
 b__MAXFg3__111__ybbxnurnqVpAF_12ertrk_genvgfVpRRR6__rkrpREAF_7__fgngrVpRR:
 nop
@@ -828,17 +828,17 @@
 b__MAX4Wfba5InyhrtrREXF0_:
 nop
 .text
-.globl b__MAFg3__114__fcyvg_ohssreVCAF_7__fgngrVpRREAF_9nyybpngbeVF3_RRR10chfu_sebagREXF3_
+.weak b__MAFg3__114__fcyvg_ohssreVCAF_7__fgngrVpRREAF_9nyybpngbeVF3_RRR10chfu_sebagREXF3_
 .type b__MAFg3__114__fcyvg_ohssreVCAF_7__fgngrVpRREAF_9nyybpngbeVF3_RRR10chfu_sebagREXF3_,%function
 b__MAFg3__114__fcyvg_ohssreVCAF_7__fgngrVpRREAF_9nyybpngbeVF3_RRR10chfu_sebagREXF3_:
 nop
 .text
-.globl b__MAFg3__15qrdhrVA4Wfba6Ernqre9ReebeVasbRAF_9nyybpngbeVF3_RRR19__nqq_onpx_pncnpvglRi
+.weak b__MAFg3__15qrdhrVA4Wfba6Ernqre9ReebeVasbRAF_9nyybpngbeVF3_RRR19__nqq_onpx_pncnpvglRi
 .type b__MAFg3__15qrdhrVA4Wfba6Ernqre9ReebeVasbRAF_9nyybpngbeVF3_RRR19__nqq_onpx_pncnpvglRi,%function
 b__MAFg3__15qrdhrVA4Wfba6Ernqre9ReebeVasbRAF_9nyybpngbeVF3_RRR19__nqq_onpx_pncnpvglRi:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVA4Wfba5Inyhr8PMFgevatRF3_RRAF_19__znc_inyhr_pbzcnerVF4_F5_AF_4yrffVF4_RRYo1RRRAF_9nyybpngbeVF5_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVF5_CAF_11__gerr_abqrVF5_CiRRyRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVA4Wfba5Inyhr8PMFgevatRF3_RRAF_19__znc_inyhr_pbzcnerVF4_F5_AF_4yrffVF4_RRYo1RRRAF_9nyybpngbeVF5_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVF5_CAF_11__gerr_abqrVF5_CiRRyRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVA4Wfba5Inyhr8PMFgevatRF3_RRAF_19__znc_inyhr_pbzcnerVF4_F5_AF_4yrffVF4_RRYo1RRRAF_9nyybpngbeVF5_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVF5_CAF_11__gerr_abqrVF5_CiRRyRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVA4Wfba5Inyhr8PMFgevatRF3_RRAF_19__znc_inyhr_pbzcnerVF4_F5_AF_4yrffVF4_RRYo1RRRAF_9nyybpngbeVF5_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVF5_CAF_11__gerr_abqrVF5_CiRRyRR:
 nop
@@ -868,7 +868,7 @@
 b__MAX18FrgNggevohgrNpgvba14RkrphgrSbeGnfxRv:
 nop
 .data
-.globl b__MGIAFg3__120__funerq_cge_rzcynprV11GnfxCebsvyrAF_9nyybpngbeVF1_RRRR
+.weak b__MGIAFg3__120__funerq_cge_rzcynprV11GnfxCebsvyrAF_9nyybpngbeVF1_RRRR
 .type b__MGIAFg3__120__funerq_cge_rzcynprV11GnfxCebsvyrAF_9nyybpngbeVF1_RRRR,%object
 b__MGIAFg3__120__funerq_cge_rzcynprV11GnfxCebsvyrAF_9nyybpngbeVF1_RRRR:
 .space __SIZEOF_POINTER__
@@ -903,7 +903,7 @@
 b__MAX9PtebhcZnc14SvaqPbagebyyreREXAFg3__112onfvp_fgevatVpAF0_11pune_genvgfVpRRAF0_9nyybpngbeVpRRRR:
 nop
 .data
-.globl b__MGIAFg3__112__zngpu_puneVpRR
+.weak b__MGIAFg3__112__zngpu_puneVpRR
 .type b__MGIAFg3__112__zngpu_puneVpRR,%object
 b__MGIAFg3__112__zngpu_puneVpRR:
 .space __SIZEOF_POINTER__
@@ -923,7 +923,7 @@
 b__MA4Wfba12FglyrqJevgre12abeznyvmrRBYREXAFg3__112onfvp_fgevatVpAF1_11pune_genvgfVpRRAF1_9nyybpngbeVpRRRR:
 nop
 .text
-.globl b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR16__chfu_ybbxnurnqREXF3_ow
+.weak b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR16__chfu_ybbxnurnqREXF3_ow
 .type b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR16__chfu_ybbxnurnqREXF3_ow,%function
 b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR16__chfu_ybbxnurnqREXF3_ow:
 nop
@@ -943,17 +943,17 @@
 b__MAX4Wfba5Inyhr7nfSybngRi:
 nop
 .text
-.globl b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR21__cnefr_onfvp_ert_rkcVCXpRRG_F7_F7_
+.weak b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR21__cnefr_onfvp_ert_rkcVCXpRRG_F7_F7_
 .type b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR21__cnefr_onfvp_ert_rkcVCXpRRG_F7_F7_,%function
 b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR21__cnefr_onfvp_ert_rkcVCXpRRG_F7_F7_:
 nop
 .text
-.globl b__MAFg3__112__qrdhr_onfrVAF_7__fgngrVpRRAF_9nyybpngbeVF2_RRR5pyrneRi
+.weak b__MAFg3__112__qrdhr_onfrVAF_7__fgngrVpRRAF_9nyybpngbeVF2_RRR5pyrneRi
 .type b__MAFg3__112__qrdhr_onfrVAF_7__fgngrVpRRAF_9nyybpngbeVF2_RRR5pyrneRi,%function
 b__MAFg3__112__qrdhr_onfrVAF_7__fgngrVpRRAF_9nyybpngbeVF2_RRR5pyrneRi:
 nop
 .text
-.globl b__MAFg3__16__gerrVvAF_4yrffVvRRAF_9nyybpngbeVvRRR7qrfgeblRCAF_11__gerr_abqrVvCiRR
+.weak b__MAFg3__16__gerrVvAF_4yrffVvRRAF_9nyybpngbeVvRRR7qrfgeblRCAF_11__gerr_abqrVvCiRR
 .type b__MAFg3__16__gerrVvAF_4yrffVvRRAF_9nyybpngbeVvRRR7qrfgeblRCAF_11__gerr_abqrVvCiRR,%function
 b__MAFg3__16__gerrVvAF_4yrffVvRRAF_9nyybpngbeVvRRR7qrfgeblRCAF_11__gerr_abqrVvCiRR:
 nop
@@ -963,12 +963,12 @@
 b__MA4Wfba17InyhrVgrengbeOnfr9vaperzragRi:
 nop
 .text
-.globl b__MAXFg3__16__ybbcVpR12__rkrp_fcyvgRoEAF_7__fgngrVpRR
+.weak b__MAXFg3__16__ybbcVpR12__rkrp_fcyvgRoEAF_7__fgngrVpRR
 .type b__MAXFg3__16__ybbcVpR12__rkrp_fcyvgRoEAF_7__fgngrVpRR,%function
 b__MAXFg3__16__ybbcVpR12__rkrp_fcyvgRoEAF_7__fgngrVpRR:
 nop
 .text
-.globl b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR11__chfu_puneRp
+.weak b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR11__chfu_puneRp
 .type b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR11__chfu_puneRp,%function
 b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR11__chfu_puneRp:
 nop
@@ -983,7 +983,7 @@
 b__MA4Wfba8xAhyyErsR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR20__cnefr_pynff_rfpncrVCXpRRG_F7_F7_EAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRCAF_20__oenpxrg_rkcerffvbaVpF2_RR
+.weak b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR20__cnefr_pynff_rfpncrVCXpRRG_F7_F7_EAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRCAF_20__oenpxrg_rkcerffvbaVpF2_RR
 .type b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR20__cnefr_pynff_rfpncrVCXpRRG_F7_F7_EAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRCAF_20__oenpxrg_rkcerffvbaVpF2_RR,%function
 b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR20__cnefr_pynff_rfpncrVCXpRRG_F7_F7_EAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRCAF_20__oenpxrg_rkcerffvbaVpF2_RR:
 nop
@@ -998,12 +998,12 @@
 b__MAX4Wfba5Inyhr7nfVag64Ri:
 nop
 .text
-.globl b__MAXFg3__112ertrk_genvgfVpR9genafsbezVAF_11__jenc_vgreVCpRRRRAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRG_FP_
+.weak b__MAXFg3__112ertrk_genvgfVpR9genafsbezVAF_11__jenc_vgreVCpRRRRAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRG_FP_
 .type b__MAXFg3__112ertrk_genvgfVpR9genafsbezVAF_11__jenc_vgreVCpRRRRAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRG_FP_,%function
 b__MAXFg3__112ertrk_genvgfVpR9genafsbezVAF_11__jenc_vgreVCpRRRRAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRG_FP_:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_4cnveVppRRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVF2_RRiBG_
+.weak b__MAFg3__16irpgbeVAF_4cnveVppRRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVF2_RRiBG_
 .type b__MAFg3__16irpgbeVAF_4cnveVppRRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVF2_RRiBG_,%function
 b__MAFg3__16irpgbeVAF_4cnveVppRRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVF2_RRiBG_:
 nop
@@ -1033,7 +1033,7 @@
 b__MA4Wfba12FglyrqJevgre9chfuInyhrREXAFg3__112onfvp_fgevatVpAF1_11pune_genvgfVpRRAF1_9nyybpngbeVpRRRR:
 nop
 .text
-.globl b__MAXFg3__117__ercrng_bar_ybbcVpR6__rkrpREAF_7__fgngrVpRR
+.weak b__MAXFg3__117__ercrng_bar_ybbcVpR6__rkrpREAF_7__fgngrVpRR
 .type b__MAXFg3__117__ercrng_bar_ybbcVpR6__rkrpREAF_7__fgngrVpRR,%function
 b__MAXFg3__117__ercrng_bar_ybbcVpR6__rkrpREAF_7__fgngrVpRR:
 nop
@@ -1048,7 +1048,7 @@
 b__MAX4Wfba6Ernqre25trgSbeznggrqReebeZrffntrfRi:
 nop
 .text
-.globl b__MAFg3__125__yrkvpbtencuvpny_pbzcnerVEAF_6__yrffVAF_4cnveVXA4Wfba5Inyhr8PMFgevatRF4_RRF7_RRAF_20__znc_pbafg_vgrengbeVAF_21__gerr_pbafg_vgrengbeVAF_12__inyhr_glcrVF5_F4_RRCAF_11__gerr_abqrVFQ_CiRRyRRRRFW_RRoG0_FX_G1_FY_G_
+.weak b__MAFg3__125__yrkvpbtencuvpny_pbzcnerVEAF_6__yrffVAF_4cnveVXA4Wfba5Inyhr8PMFgevatRF4_RRF7_RRAF_20__znc_pbafg_vgrengbeVAF_21__gerr_pbafg_vgrengbeVAF_12__inyhr_glcrVF5_F4_RRCAF_11__gerr_abqrVFQ_CiRRyRRRRFW_RRoG0_FX_G1_FY_G_
 .type b__MAFg3__125__yrkvpbtencuvpny_pbzcnerVEAF_6__yrffVAF_4cnveVXA4Wfba5Inyhr8PMFgevatRF4_RRF7_RRAF_20__znc_pbafg_vgrengbeVAF_21__gerr_pbafg_vgrengbeVAF_12__inyhr_glcrVF5_F4_RRCAF_11__gerr_abqrVFQ_CiRRyRRRRFW_RRoG0_FX_G1_FY_G_,%function
 b__MAFg3__125__yrkvpbtencuvpny_pbzcnerVEAF_6__yrffVAF_4cnveVXA4Wfba5Inyhr8PMFgevatRF4_RRF7_RRAF_20__znc_pbafg_vgrengbeVAF_21__gerr_pbafg_vgrengbeVAF_12__inyhr_glcrVF5_F4_RRCAF_11__gerr_abqrVFQ_CiRRyRRRRFW_RRoG0_FX_G1_FY_G_:
 nop
@@ -1063,7 +1063,7 @@
 b__MA4Wfba18FglyrqFgernzJevgre15jevgrNeenlInyhrREXAF_5InyhrR:
 nop
 .text
-.globl b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR8biresybjRv
+.weak b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR8biresybjRv
 .type b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR8biresybjRv,%function
 b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR8biresybjRv:
 nop
@@ -1078,17 +1078,17 @@
 b__MAX16PtebhcPbagebyyre4anzrRi:
 nop
 .text
-.globl b__MAXFg3__121__rzcgl_aba_bja_fgngrVpR6__rkrpREAF_7__fgngrVpRR
+.weak b__MAXFg3__121__rzcgl_aba_bja_fgngrVpR6__rkrpREAF_7__fgngrVpRR
 .type b__MAXFg3__121__rzcgl_aba_bja_fgngrVpR6__rkrpREAF_7__fgngrVpRR,%function
 b__MAXFg3__121__rzcgl_aba_bja_fgngrVpR6__rkrpREAF_7__fgngrVpRR:
 nop
 .text
-.globl b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR13__cnefr_rtercVCXpRRG_F7_F7_
+.weak b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR13__cnefr_rtercVCXpRRG_F7_F7_
 .type b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR13__cnefr_rtercVCXpRRG_F7_F7_,%function
 b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR13__cnefr_rtercVCXpRRG_F7_F7_:
 nop
 .data
-.globl b__MGIAFg3__111__nygreangrVpRR
+.weak b__MGIAFg3__111__nygreangrVpRR
 .type b__MGIAFg3__111__nygreangrVpRR,%object
 b__MGIAFg3__111__nygreangrVpRR:
 .space __SIZEOF_POINTER__
@@ -1118,7 +1118,7 @@
 b__MGIA4Wfba6JevgreR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
+.weak b__MGIAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
 .type b__MGIAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR,%object
 b__MGIAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR:
 .space __SIZEOF_POINTER__
@@ -1148,7 +1148,7 @@
 b__MAX4Wfba5Inyhr6vfObbyRi:
 nop
 .data
-.globl b__MGIAFg3__120__funerq_cge_cbvagreVCAF_13__rzcgl_fgngrVpRRAF_14qrsnhyg_qryrgrVF2_RRAF_9nyybpngbeVF2_RRRR
+.weak b__MGIAFg3__120__funerq_cge_cbvagreVCAF_13__rzcgl_fgngrVpRRAF_14qrsnhyg_qryrgrVF2_RRAF_9nyybpngbeVF2_RRRR
 .type b__MGIAFg3__120__funerq_cge_cbvagreVCAF_13__rzcgl_fgngrVpRRAF_14qrsnhyg_qryrgrVF2_RRAF_9nyybpngbeVF2_RRRR,%object
 b__MGIAFg3__120__funerq_cge_cbvagreVCAF_13__rzcgl_fgngrVpRRAF_14qrsnhyg_qryrgrVF2_RRAF_9nyybpngbeVF2_RRRR:
 .space __SIZEOF_POINTER__
@@ -1188,7 +1188,7 @@
 b__MA4Wfba5Inyhr8PMFgevatP2Rw:
 nop
 .text
-.globl b__MAXFg3__112ertrk_genvgfVpR19__genafsbez_cevznelVCpRRAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRG_FN_p
+.weak b__MAXFg3__112ertrk_genvgfVpR19__genafsbez_cevznelVCpRRAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRG_FN_p
 .type b__MAXFg3__112ertrk_genvgfVpR19__genafsbez_cevznelVCpRRAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRG_FN_p,%function
 b__MAXFg3__112ertrk_genvgfVpR19__genafsbez_cevznelVCpRRAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRG_FN_p:
 nop
@@ -1203,12 +1203,12 @@
 b__MA4Wfba5Inyhr16erfbyirErsreraprRCXpo:
 nop
 .text
-.globl b__MAXFg3__116__onpx_ers_vpnfrVpAF_12ertrk_genvgfVpRRR6__rkrpREAF_7__fgngrVpRR
+.weak b__MAXFg3__116__onpx_ers_vpnfrVpAF_12ertrk_genvgfVpRRR6__rkrpREAF_7__fgngrVpRR
 .type b__MAXFg3__116__onpx_ers_vpnfrVpAF_12ertrk_genvgfVpRRR6__rkrpREAF_7__fgngrVpRR,%function
 b__MAXFg3__116__onpx_ers_vpnfrVpAF_12ertrk_genvgfVpRRR6__rkrpREAF_7__fgngrVpRR:
 nop
 .text
-.globl b__MAFg3__16irpgbeVpAF_9nyybpngbeVpRRR21__chfu_onpx_fybj_cnguVpRRiBG_
+.weak b__MAFg3__16irpgbeVpAF_9nyybpngbeVpRRR21__chfu_onpx_fybj_cnguVpRRiBG_
 .type b__MAFg3__16irpgbeVpAF_9nyybpngbeVpRRR21__chfu_onpx_fybj_cnguVpRRiBG_,%function
 b__MAFg3__16irpgbeVpAF_9nyybpngbeVpRRR21__chfu_onpx_fybj_cnguVpRRiBG_:
 nop
@@ -1223,12 +1223,12 @@
 b__MA4WfbayfREAFg3__113onfvp_bfgernzVpAF0_11pune_genvgfVpRRRREXAF_5InyhrR:
 nop
 .text
-.globl b__MAFg3__114__fcyvg_ohssreVCAF_7__fgngrVpRRAF_9nyybpngbeVF3_RRR10chfu_sebagREXF3_
+.weak b__MAFg3__114__fcyvg_ohssreVCAF_7__fgngrVpRRAF_9nyybpngbeVF3_RRR10chfu_sebagREXF3_
 .type b__MAFg3__114__fcyvg_ohssreVCAF_7__fgngrVpRRAF_9nyybpngbeVF3_RRR10chfu_sebagREXF3_,%function
 b__MAFg3__114__fcyvg_ohssreVCAF_7__fgngrVpRRAF_9nyybpngbeVF3_RRR10chfu_sebagREXF3_:
 nop
 .text
-.globl b__MAFg3__120__funerq_cge_rzcynprV11GnfxCebsvyrAF_9nyybpngbeVF1_RRR21__ba_mreb_funerq_jrnxRi
+.weak b__MAFg3__120__funerq_cge_rzcynprV11GnfxCebsvyrAF_9nyybpngbeVF1_RRR21__ba_mreb_funerq_jrnxRi
 .type b__MAFg3__120__funerq_cge_rzcynprV11GnfxCebsvyrAF_9nyybpngbeVF1_RRR21__ba_mreb_funerq_jrnxRi,%function
 b__MAFg3__120__funerq_cge_rzcynprV11GnfxCebsvyrAF_9nyybpngbeVF1_RRR21__ba_mreb_funerq_jrnxRi:
 nop
@@ -1263,7 +1263,7 @@
 b_trg_pchfrg_cbyvpl_cebsvyr_anzr:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_10havdhr_cgeV16CebsvyrNggevohgrAF_14qrsnhyg_qryrgrVF9_RRRRRRAF_19__znc_inyhr_pbzcnerVF7_FQ_AF_4yrffVF7_RRYo1RRRAF5_VFQ_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVCiRRECAF_15__gerr_raq_abqrVFB_RREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_10havdhr_cgeV16CebsvyrNggevohgrAF_14qrsnhyg_qryrgrVF9_RRRRRRAF_19__znc_inyhr_pbzcnerVF7_FQ_AF_4yrffVF7_RRYo1RRRAF5_VFQ_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVCiRRECAF_15__gerr_raq_abqrVFB_RREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_10havdhr_cgeV16CebsvyrNggevohgrAF_14qrsnhyg_qryrgrVF9_RRRRRRAF_19__znc_inyhr_pbzcnerVF7_FQ_AF_4yrffVF7_RRYo1RRRAF5_VFQ_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVCiRRECAF_15__gerr_raq_abqrVFB_RREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_10havdhr_cgeV16CebsvyrNggevohgrAF_14qrsnhyg_qryrgrVF9_RRRRRRAF_19__znc_inyhr_pbzcnerVF7_FQ_AF_4yrffVF7_RRYo1RRRAF5_VFQ_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVCiRRECAF_15__gerr_raq_abqrVFB_RREXG_:
 nop
@@ -1278,17 +1278,17 @@
 b__MAX4Wfba5Inyhr5ortvaRi:
 nop
 .text
-.globl b__MAXFg3__120__zngpu_pune_pbyyngrVpAF_12ertrk_genvgfVpRRR6__rkrpREAF_7__fgngrVpRR
+.weak b__MAXFg3__120__zngpu_pune_pbyyngrVpAF_12ertrk_genvgfVpRRR6__rkrpREAF_7__fgngrVpRR
 .type b__MAXFg3__120__zngpu_pune_pbyyngrVpAF_12ertrk_genvgfVpRRR6__rkrpREAF_7__fgngrVpRR,%function
 b__MAXFg3__120__zngpu_pune_pbyyngrVpAF_12ertrk_genvgfVpRRR6__rkrpREAF_7__fgngrVpRR:
 nop
 .text
-.globl b__MAFg3__113ertrk_ercynprVAF_20onpx_vafreg_vgrengbeVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRRRAF_11__jenc_vgreVCXpRRAF_12ertrk_genvgfVpRRpRRG_FS_G0_FT_EXAF_11onfvp_ertrkVG2_G1_RRCXFV_AF_15ertrk_pbafgnagf15zngpu_synt_glcrR
+.weak b__MAFg3__113ertrk_ercynprVAF_20onpx_vafreg_vgrengbeVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRRRAF_11__jenc_vgreVCXpRRAF_12ertrk_genvgfVpRRpRRG_FS_G0_FT_EXAF_11onfvp_ertrkVG2_G1_RRCXFV_AF_15ertrk_pbafgnagf15zngpu_synt_glcrR
 .type b__MAFg3__113ertrk_ercynprVAF_20onpx_vafreg_vgrengbeVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRRRAF_11__jenc_vgreVCXpRRAF_12ertrk_genvgfVpRRpRRG_FS_G0_FT_EXAF_11onfvp_ertrkVG2_G1_RRCXFV_AF_15ertrk_pbafgnagf15zngpu_synt_glcrR,%function
 b__MAFg3__113ertrk_ercynprVAF_20onpx_vafreg_vgrengbeVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRRRAF_11__jenc_vgreVCXpRRAF_12ertrk_genvgfVpRRpRRG_FS_G0_FT_EXAF_11onfvp_ertrkVG2_G1_RRCXFV_AF_15ertrk_pbafgnagf15zngpu_synt_glcrR:
 nop
 .data
-.globl b__MGIAFg3__111__ybbxnurnqVpAF_12ertrk_genvgfVpRRRR
+.weak b__MGIAFg3__111__ybbxnurnqVpAF_12ertrk_genvgfVpRRRR
 .type b__MGIAFg3__111__ybbxnurnqVpAF_12ertrk_genvgfVpRRRR,%object
 b__MGIAFg3__111__ybbxnurnqVpAF_12ertrk_genvgfVpRRRR:
 .space __SIZEOF_POINTER__
@@ -1298,17 +1298,17 @@
 b__MA4Wfba5InyhrvkRCXp:
 nop
 .text
-.globl b__MAFg3__114__fcyvg_ohssreVCA4Wfba6Ernqre9ReebeVasbREAF_9nyybpngbeVF4_RRR10chfu_sebagREXF4_
+.weak b__MAFg3__114__fcyvg_ohssreVCA4Wfba6Ernqre9ReebeVasbREAF_9nyybpngbeVF4_RRR10chfu_sebagREXF4_
 .type b__MAFg3__114__fcyvg_ohssreVCA4Wfba6Ernqre9ReebeVasbREAF_9nyybpngbeVF4_RRR10chfu_sebagREXF4_,%function
 b__MAFg3__114__fcyvg_ohssreVCA4Wfba6Ernqre9ReebeVasbREAF_9nyybpngbeVF4_RRR10chfu_sebagREXF4_:
 nop
 .data
-.globl b__MGIAFg3__110__y_napubeVpRR
+.weak b__MGIAFg3__110__y_napubeVpRR
 .type b__MGIAFg3__110__y_napubeVpRR,%object
 b__MGIAFg3__110__y_napubeVpRR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIAFg3__120__oenpxrg_rkcerffvbaVpAF_12ertrk_genvgfVpRRRR
+.weak b__MGIAFg3__120__oenpxrg_rkcerffvbaVpAF_12ertrk_genvgfVpRRRR
 .type b__MGIAFg3__120__oenpxrg_rkcerffvbaVpAF_12ertrk_genvgfVpRRRR,%object
 b__MGIAFg3__120__oenpxrg_rkcerffvbaVpAF_12ertrk_genvgfVpRRRR:
 .space __SIZEOF_POINTER__
@@ -1333,12 +1333,12 @@
 b__MA4Wfba18FglyrqFgernzJevgre32jevgrPbzzragNsgreInyhrBaFnzrYvarREXAF_5InyhrR:
 nop
 .text
-.globl b__MAXFg3__111__nygreangrVpR6__rkrpREAF_7__fgngrVpRR
+.weak b__MAXFg3__111__nygreangrVpR6__rkrpREAF_7__fgngrVpRR
 .type b__MAXFg3__111__nygreangrVpR6__rkrpREAF_7__fgngrVpRR,%function
 b__MAXFg3__111__nygreangrVpR6__rkrpREAF_7__fgngrVpRR:
 nop
 .text
-.globl b__MAXFg3__112ertrk_genvgfVpR19__genafsbez_cevznelVAF_11__jenc_vgreVCpRRRRAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRG_FP_p
+.weak b__MAXFg3__112ertrk_genvgfVpR19__genafsbez_cevznelVAF_11__jenc_vgreVCpRRRRAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRG_FP_p
 .type b__MAXFg3__112ertrk_genvgfVpR19__genafsbez_cevznelVAF_11__jenc_vgreVCpRRRRAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRG_FP_p,%function
 b__MAXFg3__112ertrk_genvgfVpR19__genafsbez_cevznelVAF_11__jenc_vgreVCpRRRRAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRG_FP_p:
 nop
@@ -1368,7 +1368,7 @@
 b__MAX4Wfba5Inyhr12vfInyvqVaqrkRw:
 nop
 .text
-.globl b__MAXFg3__113zngpu_erfhygfVAF_11__jenc_vgreVCXpRRAF_9nyybpngbeVAF_9fho_zngpuVF4_RRRRR6sbezngVAF_20onpx_vafreg_vgrengbeVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF5_VpRRRRRRRRG_FV_F3_F3_AF_15ertrk_pbafgnagf15zngpu_synt_glcrR
+.weak b__MAXFg3__113zngpu_erfhygfVAF_11__jenc_vgreVCXpRRAF_9nyybpngbeVAF_9fho_zngpuVF4_RRRRR6sbezngVAF_20onpx_vafreg_vgrengbeVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF5_VpRRRRRRRRG_FV_F3_F3_AF_15ertrk_pbafgnagf15zngpu_synt_glcrR
 .type b__MAXFg3__113zngpu_erfhygfVAF_11__jenc_vgreVCXpRRAF_9nyybpngbeVAF_9fho_zngpuVF4_RRRRR6sbezngVAF_20onpx_vafreg_vgrengbeVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF5_VpRRRRRRRRG_FV_F3_F3_AF_15ertrk_pbafgnagf15zngpu_synt_glcrR,%function
 b__MAXFg3__113zngpu_erfhygfVAF_11__jenc_vgreVCXpRRAF_9nyybpngbeVAF_9fho_zngpuVF4_RRRRR6sbezngVAF_20onpx_vafreg_vgrengbeVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF5_VpRRRRRRRRG_FV_F3_F3_AF_15ertrk_pbafgnagf15zngpu_synt_glcrR:
 nop
@@ -1383,7 +1383,7 @@
 b__MA9PtebhcZnc10YbnqEpSvyrRi:
 nop
 .text
-.globl b__MAXFg3__128__ortva_znexrq_fhorkcerffvbaVpR6__rkrpREAF_7__fgngrVpRR
+.weak b__MAXFg3__128__ortva_znexrq_fhorkcerffvbaVpR6__rkrpREAF_7__fgngrVpRR
 .type b__MAXFg3__128__ortva_znexrq_fhorkcerffvbaVpR6__rkrpREAF_7__fgngrVpRR,%function
 b__MAXFg3__128__ortva_znexrq_fhorkcerffvbaVpR6__rkrpREAF_7__fgngrVpRR:
 nop
@@ -1398,7 +1398,7 @@
 b_xvyyCebprffTebhc:
 nop
 .text
-.globl b__MAFg3__112__qrdhr_onfrVA4Wfba6Ernqre9ReebeVasbRAF_9nyybpngbeVF3_RRR5pyrneRi
+.weak b__MAFg3__112__qrdhr_onfrVA4Wfba6Ernqre9ReebeVasbRAF_9nyybpngbeVF3_RRR5pyrneRi
 .type b__MAFg3__112__qrdhr_onfrVA4Wfba6Ernqre9ReebeVasbRAF_9nyybpngbeVF3_RRR5pyrneRi,%function
 b__MAFg3__112__qrdhr_onfrVA4Wfba6Ernqre9ReebeVasbRAF_9nyybpngbeVF3_RRR5pyrneRi:
 nop
@@ -1413,22 +1413,22 @@
 b__MA4Wfba13InyhrVgrengbeP2REXAFg3__114__znc_vgrengbeVAF1_15__gerr_vgrengbeVAF1_12__inyhr_glcrVAF_5Inyhr8PMFgevatRF5_RRCAF1_11__gerr_abqrVF7_CiRRyRRRR:
 nop
 .text
-.globl b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR23__cnefr_RER_qhcy_flzobyVCXpRRG_F7_F7_CAF_16__bjaf_bar_fgngrVpRRww
+.weak b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR23__cnefr_RER_qhcy_flzobyVCXpRRG_F7_F7_CAF_16__bjaf_bar_fgngrVpRRww
 .type b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR23__cnefr_RER_qhcy_flzobyVCXpRRG_F7_F7_CAF_16__bjaf_bar_fgngrVpRRww,%function
 b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR23__cnefr_RER_qhcy_flzobyVCXpRRG_F7_F7_CAF_16__bjaf_bar_fgngrVpRRww:
 nop
 .data
-.globl b__MGIAFg3__111__zngpu_nalVpRR
+.weak b__MGIAFg3__111__zngpu_nalVpRR
 .type b__MGIAFg3__111__zngpu_nalVpRR,%object
 b__MGIAFg3__111__zngpu_nalVpRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR12__cnefr_tercVCXpRRG_F7_F7_
+.weak b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR12__cnefr_tercVCXpRRG_F7_F7_
 .type b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR12__cnefr_tercVCXpRRG_F7_F7_,%function
 b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR12__cnefr_tercVCXpRRG_F7_F7_:
 nop
 .text
-.globl b__MAFg3__15qrdhrVAF_7__fgngrVpRRAF_9nyybpngbeVF2_RRR20__nqq_sebag_pncnpvglRi
+.weak b__MAFg3__15qrdhrVAF_7__fgngrVpRRAF_9nyybpngbeVF2_RRR20__nqq_sebag_pncnpvglRi
 .type b__MAFg3__15qrdhrVAF_7__fgngrVpRRAF_9nyybpngbeVF2_RRR20__nqq_sebag_pncnpvglRi,%function
 b__MAFg3__15qrdhrVAF_7__fgngrVpRRAF_9nyybpngbeVF2_RRR20__nqq_sebag_pncnpvglRi:
 nop
@@ -1438,7 +1438,7 @@
 b__MA4Wfba5InyhrP1Ro:
 nop
 .text
-.globl b__MAFg3__114__fcyvg_ohssreVCAF_7__fgngrVpRRAF_9nyybpngbeVF3_RRR9chfu_onpxRBF3_
+.weak b__MAFg3__114__fcyvg_ohssreVCAF_7__fgngrVpRRAF_9nyybpngbeVF3_RRR9chfu_onpxRBF3_
 .type b__MAFg3__114__fcyvg_ohssreVCAF_7__fgngrVpRRAF_9nyybpngbeVF3_RRR9chfu_onpxRBF3_,%function
 b__MAFg3__114__fcyvg_ohssreVCAF_7__fgngrVpRRAF_9nyybpngbeVF3_RRR9chfu_onpxRBF3_:
 nop
@@ -1453,22 +1453,22 @@
 b__MA4Wfba6Ernqre16erpbireSebzReebeRAF0_9GbxraGlcrR:
 nop
 .text
-.globl b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9conpxsnvyRv
+.weak b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9conpxsnvyRv
 .type b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9conpxsnvyRv,%function
 b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9conpxsnvyRv:
 nop
 .data
-.globl b__MGPAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_13onfvp_bfgernzVpF2_RR
+.weak b__MGPAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_13onfvp_bfgernzVpF2_RR
 .type b__MGPAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_13onfvp_bfgernzVpF2_RR,%object
 b__MGPAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_13onfvp_bfgernzVpF2_RR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR7__cnefrVCXpRRG_F7_F7_
+.weak b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR7__cnefrVCXpRRG_F7_F7_
 .type b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR7__cnefrVCXpRRG_F7_F7_,%function
 b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR7__cnefrVCXpRRG_F7_F7_:
 nop
 .data
-.globl b__MGIAFg3__118__zngpu_pune_vpnfrVpAF_12ertrk_genvgfVpRRRR
+.weak b__MGIAFg3__118__zngpu_pune_vpnfrVpAF_12ertrk_genvgfVpRRRR
 .type b__MGIAFg3__118__zngpu_pune_vpnfrVpAF_12ertrk_genvgfVpRRRR,%object
 b__MGIAFg3__118__zngpu_pune_vpnfrVpAF_12ertrk_genvgfVpRRRR:
 .space __SIZEOF_POINTER__
@@ -1528,12 +1528,12 @@
 b__MA4Wfba5InyhrP1REXF0_:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_9fho_zngpuVAF_11__jenc_vgreVCXpRRRRAF_9nyybpngbeVF6_RRR8__nccraqRz
+.weak b__MAFg3__16irpgbeVAF_9fho_zngpuVAF_11__jenc_vgreVCXpRRRRAF_9nyybpngbeVF6_RRR8__nccraqRz
 .type b__MAFg3__16irpgbeVAF_9fho_zngpuVAF_11__jenc_vgreVCXpRRRRAF_9nyybpngbeVF6_RRR8__nccraqRz,%function
 b__MAFg3__16irpgbeVAF_9fho_zngpuVAF_11__jenc_vgreVCXpRRRRAF_9nyybpngbeVF6_RRR8__nccraqRz:
 nop
 .text
-.globl b__MAFg3__15qrdhrVA4Wfba6Ernqre9ReebeVasbRAF_9nyybpngbeVF3_RRR14__renfr_gb_raqRAF_16__qrdhr_vgrengbeVF3_CXF3_EF8_CXF9_yYy73RRR
+.weak b__MAFg3__15qrdhrVA4Wfba6Ernqre9ReebeVasbRAF_9nyybpngbeVF3_RRR14__renfr_gb_raqRAF_16__qrdhr_vgrengbeVF3_CXF3_EF8_CXF9_yYy73RRR
 .type b__MAFg3__15qrdhrVA4Wfba6Ernqre9ReebeVasbRAF_9nyybpngbeVF3_RRR14__renfr_gb_raqRAF_16__qrdhr_vgrengbeVF3_CXF3_EF8_CXF9_yYy73RRR,%function
 b__MAFg3__15qrdhrVA4Wfba6Ernqre9ReebeVasbRAF_9nyybpngbeVF3_RRR14__renfr_gb_raqRAF_16__qrdhr_vgrengbeVF3_CXF3_EF8_CXF9_yYy73RRR:
 nop
@@ -1543,12 +1543,12 @@
 b__MA4Wfba5InyhrP2REXAFg3__112onfvp_fgevatVpAF1_11pune_genvgfVpRRAF1_9nyybpngbeVpRRRR:
 nop
 .data
-.globl b__MGIAFg3__116__bjaf_bar_fgngrVpRR
+.weak b__MGIAFg3__116__bjaf_bar_fgngrVpRR
 .type b__MGIAFg3__116__bjaf_bar_fgngrVpRR,%object
 b__MGIAFg3__116__bjaf_bar_fgngrVpRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAXFg3__118__onpx_ers_pbyyngrVpAF_12ertrk_genvgfVpRRR6__rkrpREAF_7__fgngrVpRR
+.weak b__MAXFg3__118__onpx_ers_pbyyngrVpAF_12ertrk_genvgfVpRRR6__rkrpREAF_7__fgngrVpRR
 .type b__MAXFg3__118__onpx_ers_pbyyngrVpAF_12ertrk_genvgfVpRRR6__rkrpREAF_7__fgngrVpRR,%function
 b__MAXFg3__118__onpx_ers_pbyyngrVpAF_12ertrk_genvgfVpRRR6__rkrpREAF_7__fgngrVpRR:
 nop
@@ -1578,7 +1578,7 @@
 b__MA9PtebhcZncP1Ri:
 nop
 .text
-.globl b__MAXFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR27__zngpu_ng_fgneg_cbfvk_fhofVAF_9nyybpngbeVAF_9fho_zngpuVCXpRRRRRRoF8_F8_EAF_13zngpu_erfhygfVF8_G_RRAF_15ertrk_pbafgnagf15zngpu_synt_glcrRo
+.weak b__MAXFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR27__zngpu_ng_fgneg_cbfvk_fhofVAF_9nyybpngbeVAF_9fho_zngpuVCXpRRRRRRoF8_F8_EAF_13zngpu_erfhygfVF8_G_RRAF_15ertrk_pbafgnagf15zngpu_synt_glcrRo
 .type b__MAXFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR27__zngpu_ng_fgneg_cbfvk_fhofVAF_9nyybpngbeVAF_9fho_zngpuVCXpRRRRRRoF8_F8_EAF_13zngpu_erfhygfVF8_G_RRAF_15ertrk_pbafgnagf15zngpu_synt_glcrRo,%function
 b__MAXFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR27__zngpu_ng_fgneg_cbfvk_fhofVAF_9nyybpngbeVAF_9fho_zngpuVCXpRRRRRRoF8_F8_EAF_13zngpu_erfhygfVF8_G_RRAF_15ertrk_pbafgnagf15zngpu_synt_glcrRo:
 nop
@@ -1598,12 +1598,12 @@
 b__MA4Wfba5InyhrP1Rv:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVA4Wfba5Inyhr8PMFgevatRF3_RRAF_19__znc_inyhr_pbzcnerVF4_F5_AF_4yrffVF4_RRYo1RRRAF_9nyybpngbeVF5_RRR7qrfgeblRCAF_11__gerr_abqrVF5_CiRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVA4Wfba5Inyhr8PMFgevatRF3_RRAF_19__znc_inyhr_pbzcnerVF4_F5_AF_4yrffVF4_RRYo1RRRAF_9nyybpngbeVF5_RRR7qrfgeblRCAF_11__gerr_abqrVF5_CiRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVA4Wfba5Inyhr8PMFgevatRF3_RRAF_19__znc_inyhr_pbzcnerVF4_F5_AF_4yrffVF4_RRYo1RRRAF_9nyybpngbeVF5_RRR7qrfgeblRCAF_11__gerr_abqrVF5_CiRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVA4Wfba5Inyhr8PMFgevatRF3_RRAF_19__znc_inyhr_pbzcnerVF4_F5_AF_4yrffVF4_RRYo1RRRAF_9nyybpngbeVF5_RRR7qrfgeblRCAF_11__gerr_abqrVF5_CiRR:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_10funerq_cgeV11GnfxCebsvyrRRRRAF_19__znc_inyhr_pbzcnerVF7_FO_AF_4yrffVF7_RRYo1RRRAF5_VFO_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVCiRRECAF_15__gerr_raq_abqrVFZ_RREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_10funerq_cgeV11GnfxCebsvyrRRRRAF_19__znc_inyhr_pbzcnerVF7_FO_AF_4yrffVF7_RRYo1RRRAF5_VFO_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVCiRRECAF_15__gerr_raq_abqrVFZ_RREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_10funerq_cgeV11GnfxCebsvyrRRRRAF_19__znc_inyhr_pbzcnerVF7_FO_AF_4yrffVF7_RRYo1RRRAF5_VFO_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVCiRRECAF_15__gerr_raq_abqrVFZ_RREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_10funerq_cgeV11GnfxCebsvyrRRRRAF_19__znc_inyhr_pbzcnerVF7_FO_AF_4yrffVF7_RRYo1RRRAF5_VFO_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVCiRRECAF_15__gerr_raq_abqrVFZ_RREXG_:
 nop
@@ -1633,7 +1633,7 @@
 b__MA4Wfba18FglyrqFgernzJevgre18unfPbzzragSbeInyhrREXAF_5InyhrR:
 nop
 .text
-.globl b__MAFg3__114__fcyvg_ohssreVCCA4Wfba5InyhrREAF_9nyybpngbeVF4_RRR10chfu_sebagREXF4_
+.weak b__MAFg3__114__fcyvg_ohssreVCCA4Wfba5InyhrREAF_9nyybpngbeVF4_RRR10chfu_sebagREXF4_
 .type b__MAFg3__114__fcyvg_ohssreVCCA4Wfba5InyhrREAF_9nyybpngbeVF4_RRR10chfu_sebagREXF4_,%function
 b__MAFg3__114__fcyvg_ohssreVCCA4Wfba5InyhrREAF_9nyybpngbeVF4_RRR10chfu_sebagREXF4_:
 nop
@@ -1643,7 +1643,7 @@
 b__MA4Wfba6JevgreQ2Ri:
 nop
 .text
-.globl b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR26__cnefr_oenpxrg_rkcerffvbaVCXpRRG_F7_F7_
+.weak b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR26__cnefr_oenpxrg_rkcerffvbaVCXpRRG_F7_F7_
 .type b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR26__cnefr_oenpxrg_rkcerffvbaVCXpRRG_F7_F7_,%function
 b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR26__cnefr_oenpxrg_rkcerffvbaVCXpRRG_F7_F7_:
 nop
@@ -1693,7 +1693,7 @@
 b__MAX4Wfba5Inyhr5nfVagRi:
 nop
 .text
-.globl b__MAXFg3__16__ybbcVpR6__rkrpREAF_7__fgngrVpRR
+.weak b__MAXFg3__16__ybbcVpR6__rkrpREAF_7__fgngrVpRR
 .type b__MAXFg3__16__ybbcVpR6__rkrpREAF_7__fgngrVpRR,%function
 b__MAXFg3__16__ybbcVpR6__rkrpREAF_7__fgngrVpRR:
 nop
@@ -1703,7 +1703,7 @@
 b__MAX4Wfba5InyhrrdREXF0_:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_10havdhr_cgeV16CebsvyrNggevohgrAF_14qrsnhyg_qryrgrVF9_RRRRRRAF_19__znc_inyhr_pbzcnerVF7_FQ_AF_4yrffVF7_RRYo1RRRAF5_VFQ_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFQ_CAF_11__gerr_abqrVFQ_CiRRyRREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_10havdhr_cgeV16CebsvyrNggevohgrAF_14qrsnhyg_qryrgrVF9_RRRRRRAF_19__znc_inyhr_pbzcnerVF7_FQ_AF_4yrffVF7_RRYo1RRRAF5_VFQ_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFQ_CAF_11__gerr_abqrVFQ_CiRRyRREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_10havdhr_cgeV16CebsvyrNggevohgrAF_14qrsnhyg_qryrgrVF9_RRRRRRAF_19__znc_inyhr_pbzcnerVF7_FQ_AF_4yrffVF7_RRYo1RRRAF5_VFQ_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFQ_CAF_11__gerr_abqrVFQ_CiRRyRREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_10havdhr_cgeV16CebsvyrNggevohgrAF_14qrsnhyg_qryrgrVF9_RRRRRRAF_19__znc_inyhr_pbzcnerVF7_FQ_AF_4yrffVF7_RRYo1RRRAF5_VFQ_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFQ_CAF_11__gerr_abqrVFQ_CiRRyRREXG_:
 nop
@@ -1723,12 +1723,12 @@
 b__MA4Wfba13inyhrGbFgevatRo:
 nop
 .text
-.globl b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR7frrxbssRkAF_8vbf_onfr7frrxqveRw
+.weak b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR7frrxbssRkAF_8vbf_onfr7frrxqveRw
 .type b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR7frrxbssRkAF_8vbf_onfr7frrxqveRw,%function
 b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR7frrxbssRkAF_8vbf_onfr7frrxqveRw:
 nop
 .text
-.globl b__MAXFg3__112ertrk_genvgfVpR18__ybbxhc_pynffanzrVCXpRRgG_F5_op
+.weak b__MAXFg3__112ertrk_genvgfVpR18__ybbxhc_pynffanzrVCXpRRgG_F5_op
 .type b__MAXFg3__112ertrk_genvgfVpR18__ybbxhc_pynffanzrVCXpRRgG_F5_op,%function
 b__MAXFg3__112ertrk_genvgfVpR18__ybbxhc_pynffanzrVCXpRRgG_F5_op:
 nop
@@ -1753,12 +1753,12 @@
 b__MA4Wfba10SnfgJevgre23ranoyrLNZYPbzcngvovyvglRi:
 nop
 .text
-.globl b__MAXFg3__112ertrk_genvgfVpR20__ybbxhc_pbyyngranzrVCXpRRAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRG_FO_p
+.weak b__MAXFg3__112ertrk_genvgfVpR20__ybbxhc_pbyyngranzrVCXpRRAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRG_FO_p
 .type b__MAXFg3__112ertrk_genvgfVpR20__ybbxhc_pbyyngranzrVCXpRRAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRG_FO_p,%function
 b__MAXFg3__112ertrk_genvgfVpR20__ybbxhc_pbyyngranzrVCXpRRAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRG_FO_p:
 nop
 .data
-.globl b__MGIAFg3__121__rzcgl_aba_bja_fgngrVpRR
+.weak b__MGIAFg3__121__rzcgl_aba_bja_fgngrVpRR
 .type b__MGIAFg3__121__rzcgl_aba_bja_fgngrVpRR,%object
 b__MGIAFg3__121__rzcgl_aba_bja_fgngrVpRR:
 .space __SIZEOF_POINTER__
@@ -1783,7 +1783,7 @@
 b__MA4Wfba13inyhrGbFgevatRq:
 nop
 .text
-.globl b__MAFg3__16irpgbeVCXA4Wfba12CnguNethzragRAF_9nyybpngbeVF4_RRR21__chfu_onpx_fybj_cnguVF4_RRiBG_
+.weak b__MAFg3__16irpgbeVCXA4Wfba12CnguNethzragRAF_9nyybpngbeVF4_RRR21__chfu_onpx_fybj_cnguVF4_RRiBG_
 .type b__MAFg3__16irpgbeVCXA4Wfba12CnguNethzragRAF_9nyybpngbeVF4_RRR21__chfu_onpx_fybj_cnguVF4_RRiBG_,%function
 b__MAFg3__16irpgbeVCXA4Wfba12CnguNethzragRAF_9nyybpngbeVF4_RRR21__chfu_onpx_fybj_cnguVF4_RRiBG_:
 nop
@@ -1808,7 +1808,7 @@
 b__MAX15FrgPynzcfNpgvba17RkrphgrSbeCebprffRwv:
 nop
 .text
-.globl b__MAXFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR29__zngpu_ng_fgneg_cbfvk_abfhofVAF_9nyybpngbeVAF_9fho_zngpuVCXpRRRRRRoF8_F8_EAF_13zngpu_erfhygfVF8_G_RRAF_15ertrk_pbafgnagf15zngpu_synt_glcrRo
+.weak b__MAXFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR29__zngpu_ng_fgneg_cbfvk_abfhofVAF_9nyybpngbeVAF_9fho_zngpuVCXpRRRRRRoF8_F8_EAF_13zngpu_erfhygfVF8_G_RRAF_15ertrk_pbafgnagf15zngpu_synt_glcrRo
 .type b__MAXFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR29__zngpu_ng_fgneg_cbfvk_abfhofVAF_9nyybpngbeVAF_9fho_zngpuVCXpRRRRRRoF8_F8_EAF_13zngpu_erfhygfVF8_G_RRAF_15ertrk_pbafgnagf15zngpu_synt_glcrRo,%function
 b__MAXFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR29__zngpu_ng_fgneg_cbfvk_abfhofVAF_9nyybpngbeVAF_9fho_zngpuVCXpRRRRRRoF8_F8_EAF_13zngpu_erfhygfVF8_G_RRAF_15ertrk_pbafgnagf15zngpu_synt_glcrRo:
 nop
@@ -1843,7 +1843,7 @@
 b__MAX16PtebhcPbagebyyre16TrgCebpfSvyrCnguREXAFg3__112onfvp_fgevatVpAF0_11pune_genvgfVpRRAF0_9nyybpngbeVpRRRRwv:
 nop
 .text
-.globl b__MAFg3__15qrdhrVAF_7__fgngrVpRRAF_9nyybpngbeVF2_RRR19__nqq_onpx_pncnpvglRi
+.weak b__MAFg3__15qrdhrVAF_7__fgngrVpRRAF_9nyybpngbeVF2_RRR19__nqq_onpx_pncnpvglRi
 .type b__MAFg3__15qrdhrVAF_7__fgngrVpRRAF_9nyybpngbeVF2_RRR19__nqq_onpx_pncnpvglRi,%function
 b__MAFg3__15qrdhrVAF_7__fgngrVpRRAF_9nyybpngbeVF2_RRR19__nqq_onpx_pncnpvglRi:
 nop
@@ -1863,12 +1863,12 @@
 b__MAX4Wfba5Inyhr6vfAhyyRi:
 nop
 .text
-.globl b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR25__cnefr_rdhvinyrapr_pynffVCXpRRG_F7_F7_CAF_20__oenpxrg_rkcerffvbaVpF2_RR
+.weak b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR25__cnefr_rdhvinyrapr_pynffVCXpRRG_F7_F7_CAF_20__oenpxrg_rkcerffvbaVpF2_RR
 .type b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR25__cnefr_rdhvinyrapr_pynffVCXpRRG_F7_F7_CAF_20__oenpxrg_rkcerffvbaVpF2_RR,%function
 b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR25__cnefr_rdhvinyrapr_pynffVCXpRRG_F7_F7_CAF_20__oenpxrg_rkcerffvbaVpF2_RR:
 nop
 .text
-.globl b__MAFg3__124__chg_punenpgre_frdhraprVpAF_11pune_genvgfVpRRRREAF_13onfvp_bfgernzVG_G0_RRF7_CXF4_z
+.weak b__MAFg3__124__chg_punenpgre_frdhraprVpAF_11pune_genvgfVpRRRREAF_13onfvp_bfgernzVG_G0_RRF7_CXF4_z
 .type b__MAFg3__124__chg_punenpgre_frdhraprVpAF_11pune_genvgfVpRRRREAF_13onfvp_bfgernzVG_G0_RRF7_CXF4_z,%function
 b__MAFg3__124__chg_punenpgre_frdhraprVpAF_11pune_genvgfVpRRRREAF_13onfvp_bfgernzVG_G0_RRF7_CXF4_z:
 nop
@@ -1893,7 +1893,7 @@
 b__MA4Wfba18FglyrqFgernzJevgre11jevgrVaqragRi:
 nop
 .data
-.globl b__MGIAFg3__116__onpx_ers_vpnfrVpAF_12ertrk_genvgfVpRRRR
+.weak b__MGIAFg3__116__onpx_ers_vpnfrVpAF_12ertrk_genvgfVpRRRR
 .type b__MGIAFg3__116__onpx_ers_vpnfrVpAF_12ertrk_genvgfVpRRRR,%object
 b__MGIAFg3__116__onpx_ers_vpnfrVpAF_12ertrk_genvgfVpRRRR:
 .space __SIZEOF_POINTER__
@@ -1913,7 +1913,7 @@
 b__MA4Wfba8Srngherf3nyyRi:
 nop
 .text
-.globl b__MAFg3__114__fcyvg_ohssreVCCA4Wfba5InyhrREAF_9nyybpngbeVF4_RRR9chfu_onpxRBF4_
+.weak b__MAFg3__114__fcyvg_ohssreVCCA4Wfba5InyhrREAF_9nyybpngbeVF4_RRR9chfu_onpxRBF4_
 .type b__MAFg3__114__fcyvg_ohssreVCCA4Wfba5InyhrREAF_9nyybpngbeVF4_RRR9chfu_onpxRBF4_,%function
 b__MAFg3__114__fcyvg_ohssreVCCA4Wfba5InyhrREAF_9nyybpngbeVF4_RRR9chfu_onpxRBF4_:
 nop
@@ -1938,17 +1938,17 @@
 b__MAX16PtebhcPbagebyyre7irefvbaRi:
 nop
 .text
-.globl b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR11__chfu_ybbcRzzCAF_16__bjaf_bar_fgngrVpRRzzo
+.weak b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR11__chfu_ybbcRzzCAF_16__bjaf_bar_fgngrVpRRzzo
 .type b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR11__chfu_ybbcRzzCAF_16__bjaf_bar_fgngrVpRRzzo,%function
 b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR11__chfu_ybbcRzzCAF_16__bjaf_bar_fgngrVpRRzzo:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_4cnveVzCXpRRAF_9nyybpngbeVF4_RRR8__nccraqRz
+.weak b__MAFg3__16irpgbeVAF_4cnveVzCXpRRAF_9nyybpngbeVF4_RRR8__nccraqRz
 .type b__MAFg3__16irpgbeVAF_4cnveVzCXpRRAF_9nyybpngbeVF4_RRR8__nccraqRz,%function
 b__MAFg3__16irpgbeVAF_4cnveVzCXpRRAF_9nyybpngbeVF4_RRR8__nccraqRz:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_10funerq_cgeV11GnfxCebsvyrRRRRAF_19__znc_inyhr_pbzcnerVF7_FO_AF_4yrffVF7_RRYo1RRRAF5_VFO_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFO_CAF_11__gerr_abqrVFO_CiRRyRREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_10funerq_cgeV11GnfxCebsvyrRRRRAF_19__znc_inyhr_pbzcnerVF7_FO_AF_4yrffVF7_RRYo1RRRAF5_VFO_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFO_CAF_11__gerr_abqrVFO_CiRRyRREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_10funerq_cgeV11GnfxCebsvyrRRRRAF_19__znc_inyhr_pbzcnerVF7_FO_AF_4yrffVF7_RRYo1RRRAF5_VFO_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFO_CAF_11__gerr_abqrVFO_CiRRyRREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_10funerq_cgeV11GnfxCebsvyrRRRRAF_19__znc_inyhr_pbzcnerVF7_FO_AF_4yrffVF7_RRYo1RRRAF5_VFO_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFO_CAF_11__gerr_abqrVFO_CiRRyRREXG_:
 nop
@@ -1963,7 +1963,7 @@
 b__MA4Wfba5Inyhr6erfvmrRw:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF6_RRR21__chfu_onpx_fybj_cnguVF6_RRiBG_
+.weak b__MAFg3__16irpgbeVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF6_RRR21__chfu_onpx_fybj_cnguVF6_RRiBG_
 .type b__MAFg3__16irpgbeVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF6_RRR21__chfu_onpx_fybj_cnguVF6_RRiBG_,%function
 b__MAFg3__16irpgbeVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF6_RRR21__chfu_onpx_fybj_cnguVF6_RRiBG_:
 nop
@@ -1988,17 +1988,17 @@
 b__MA4Wfba18FglyrqFgernzJevgre6vaqragRi:
 nop
 .text
-.globl b__MAXFg3__112__zngpu_puneVpR6__rkrpREAF_7__fgngrVpRR
+.weak b__MAXFg3__112__zngpu_puneVpR6__rkrpREAF_7__fgngrVpRR
 .type b__MAXFg3__112__zngpu_puneVpR6__rkrpREAF_7__fgngrVpRR,%function
 b__MAXFg3__112__zngpu_puneVpR6__rkrpREAF_7__fgngrVpRR:
 nop
 .text
-.globl b__MAFg3__120__funerq_cge_cbvagreVCAF_13__rzcgl_fgngrVpRRAF_14qrsnhyg_qryrgrVF2_RRAF_9nyybpngbeVF2_RRR16__ba_mreb_funerqRi
+.weak b__MAFg3__120__funerq_cge_cbvagreVCAF_13__rzcgl_fgngrVpRRAF_14qrsnhyg_qryrgrVF2_RRAF_9nyybpngbeVF2_RRR16__ba_mreb_funerqRi
 .type b__MAFg3__120__funerq_cge_cbvagreVCAF_13__rzcgl_fgngrVpRRAF_14qrsnhyg_qryrgrVF2_RRAF_9nyybpngbeVF2_RRR16__ba_mreb_funerqRi,%function
 b__MAFg3__120__funerq_cge_cbvagreVCAF_13__rzcgl_fgngrVpRRAF_14qrsnhyg_qryrgrVF2_RRAF_9nyybpngbeVF2_RRR16__ba_mreb_funerqRi:
 nop
 .data
-.globl b__MGIAFg3__117__ercrng_bar_ybbcVpRR
+.weak b__MGIAFg3__117__ercrng_bar_ybbcVpRR
 .type b__MGIAFg3__117__ercrng_bar_ybbcVpRR,%object
 b__MGIAFg3__117__ercrng_bar_ybbcVpRR:
 .space __SIZEOF_POINTER__
@@ -2018,22 +2018,22 @@
 b__MA4Wfba4CnguP2REXAFg3__112onfvp_fgevatVpAF1_11pune_genvgfVpRRAF1_9nyybpngbeVpRRRREXAF_12CnguNethzragRFP_FP_FP_FP_:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA4Wfba12CnguNethzragRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVF2_RRiBG_
+.weak b__MAFg3__16irpgbeVA4Wfba12CnguNethzragRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVF2_RRiBG_
 .type b__MAFg3__16irpgbeVA4Wfba12CnguNethzragRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVF2_RRiBG_,%function
 b__MAFg3__16irpgbeVA4Wfba12CnguNethzragRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVF2_RRiBG_:
 nop
 .text
-.globl b__MAXFg3__110__e_napubeVpR6__rkrpREAF_7__fgngrVpRR
+.weak b__MAXFg3__110__e_napubeVpR6__rkrpREAF_7__fgngrVpRR
 .type b__MAXFg3__110__e_napubeVpR6__rkrpREAF_7__fgngrVpRR,%function
 b__MAXFg3__110__e_napubeVpR6__rkrpREAF_7__fgngrVpRR:
 nop
 .text
-.globl b__MAXFg3__113__rzcgl_fgngrVpR6__rkrpREAF_7__fgngrVpRR
+.weak b__MAXFg3__113__rzcgl_fgngrVpR6__rkrpREAF_7__fgngrVpRR
 .type b__MAXFg3__113__rzcgl_fgngrVpR6__rkrpREAF_7__fgngrVpRR,%function
 b__MAXFg3__113__rzcgl_fgngrVpR6__rkrpREAF_7__fgngrVpRR:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_10funerq_cgeV11GnfxCebsvyrRRAF_9nyybpngbeVF3_RRR21__chfu_onpx_fybj_cnguVEXF3_RRiBG_
+.weak b__MAFg3__16irpgbeVAF_10funerq_cgeV11GnfxCebsvyrRRAF_9nyybpngbeVF3_RRR21__chfu_onpx_fybj_cnguVEXF3_RRiBG_
 .type b__MAFg3__16irpgbeVAF_10funerq_cgeV11GnfxCebsvyrRRAF_9nyybpngbeVF3_RRR21__chfu_onpx_fybj_cnguVEXF3_RRiBG_,%function
 b__MAFg3__16irpgbeVAF_10funerq_cgeV11GnfxCebsvyrRRAF_9nyybpngbeVF3_RRR21__chfu_onpx_fybj_cnguVEXF3_RRiBG_:
 nop
@@ -2048,12 +2048,12 @@
 b__MA4Wfba4Cngu11vainyvqCnguREXAFg3__112onfvp_fgevatVpAF1_11pune_genvgfVpRRAF1_9nyybpngbeVpRRRRv:
 nop
 .text
-.globl b__MAFg3__1yfVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRREAF_13onfvp_bfgernzVG_G0_RRF9_EXAF_12onfvp_fgevatVF6_F7_G1_RR
+.weak b__MAFg3__1yfVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRREAF_13onfvp_bfgernzVG_G0_RRF9_EXAF_12onfvp_fgevatVF6_F7_G1_RR
 .type b__MAFg3__1yfVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRREAF_13onfvp_bfgernzVG_G0_RRF9_EXAF_12onfvp_fgevatVF6_F7_G1_RR,%function
 b__MAFg3__1yfVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRREAF_13onfvp_bfgernzVG_G0_RRF9_EXAF_12onfvp_fgevatVF6_F7_G1_RR:
 nop
 .data
-.globl b__MGIAFg3__126__raq_znexrq_fhorkcerffvbaVpRR
+.weak b__MGIAFg3__126__raq_znexrq_fhorkcerffvbaVpRR
 .type b__MGIAFg3__126__raq_znexrq_fhorkcerffvbaVpRR,%object
 b__MGIAFg3__126__raq_znexrq_fhorkcerffvbaVpRR:
 .space __SIZEOF_POINTER__
@@ -2073,7 +2073,7 @@
 b__MA15FrgPtebhcNpgvba18VfNccQrcraqragCnguREXAFg3__112onfvp_fgevatVpAF0_11pune_genvgfVpRRAF0_9nyybpngbeVpRRRR:
 nop
 .text
-.globl b__MAFg3__114__fcyvg_ohssreVCA4Wfba6Ernqre9ReebeVasbREAF_9nyybpngbeVF4_RRR9chfu_onpxRBF4_
+.weak b__MAFg3__114__fcyvg_ohssreVCA4Wfba6Ernqre9ReebeVasbREAF_9nyybpngbeVF4_RRR9chfu_onpxRBF4_
 .type b__MAFg3__114__fcyvg_ohssreVCA4Wfba6Ernqre9ReebeVasbREAF_9nyybpngbeVF4_RRR9chfu_onpxRBF4_,%function
 b__MAFg3__114__fcyvg_ohssreVCA4Wfba6Ernqre9ReebeVasbREAF_9nyybpngbeVF4_RRR9chfu_onpxRBF4_:
 nop
@@ -2103,7 +2103,7 @@
 b__MA4Wfba10SnfgJevgreP2Ri:
 nop
 .text
-.globl b__MAXFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR21__zngpu_ng_fgneg_rpznVAF_9nyybpngbeVAF_9fho_zngpuVCXpRRRRRRoF8_F8_EAF_13zngpu_erfhygfVF8_G_RRAF_15ertrk_pbafgnagf15zngpu_synt_glcrRo
+.weak b__MAXFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR21__zngpu_ng_fgneg_rpznVAF_9nyybpngbeVAF_9fho_zngpuVCXpRRRRRRoF8_F8_EAF_13zngpu_erfhygfVF8_G_RRAF_15ertrk_pbafgnagf15zngpu_synt_glcrRo
 .type b__MAXFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR21__zngpu_ng_fgneg_rpznVAF_9nyybpngbeVAF_9fho_zngpuVCXpRRRRRRoF8_F8_EAF_13zngpu_erfhygfVF8_G_RRAF_15ertrk_pbafgnagf15zngpu_synt_glcrRo,%function
 b__MAXFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR21__zngpu_ng_fgneg_rpznVAF_9nyybpngbeVAF_9fho_zngpuVCXpRRRRRRoF8_F8_EAF_13zngpu_erfhygfVF8_G_RRAF_15ertrk_pbafgnagf15zngpu_synt_glcrRo:
 nop
@@ -2128,17 +2128,17 @@
 b__MA4Wfba5InyhrP1REXAF_12FgngvpFgevatR:
 nop
 .text
-.globl b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9haqresybjRi
+.weak b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9haqresybjRi
 .type b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9haqresybjRi,%function
 b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9haqresybjRi:
 nop
 .data
-.globl b__MGIAFg3__110__e_napubeVpRR
+.weak b__MGIAFg3__110__e_napubeVpRR
 .type b__MGIAFg3__110__e_napubeVpRR,%object
 b__MGIAFg3__110__e_napubeVpRR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIAFg3__16__ybbcVpRR
+.weak b__MGIAFg3__16__ybbcVpRR
 .type b__MGIAFg3__16__ybbcVpRR,%object
 b__MGIAFg3__16__ybbcVpRR:
 .space __SIZEOF_POINTER__
@@ -2148,12 +2148,12 @@
 b__MA4Wfba18FglyrqFgernzJevgre14vfZhygvarNeenlREXAF_5InyhrR:
 nop
 .text
-.globl b__MAXFg3__111__nygreangrVpR12__rkrp_fcyvgRoEAF_7__fgngrVpRR
+.weak b__MAXFg3__111__nygreangrVpR12__rkrp_fcyvgRoEAF_7__fgngrVpRR
 .type b__MAXFg3__111__nygreangrVpR12__rkrp_fcyvgRoEAF_7__fgngrVpRR,%function
 b__MAXFg3__111__nygreangrVpR12__rkrp_fcyvgRoEAF_7__fgngrVpRR:
 nop
 .text
-.globl b__MAXFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR8__frnepuVAF_9nyybpngbeVAF_9fho_zngpuVCXpRRRRRRoF8_F8_EAF_13zngpu_erfhygfVF8_G_RRAF_15ertrk_pbafgnagf15zngpu_synt_glcrR
+.weak b__MAXFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR8__frnepuVAF_9nyybpngbeVAF_9fho_zngpuVCXpRRRRRRoF8_F8_EAF_13zngpu_erfhygfVF8_G_RRAF_15ertrk_pbafgnagf15zngpu_synt_glcrR
 .type b__MAXFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR8__frnepuVAF_9nyybpngbeVAF_9fho_zngpuVCXpRRRRRRoF8_F8_EAF_13zngpu_erfhygfVF8_G_RRAF_15ertrk_pbafgnagf15zngpu_synt_glcrR,%function
 b__MAXFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR8__frnepuVAF_9nyybpngbeVAF_9fho_zngpuVCXpRRRRRRoF8_F8_EAF_13zngpu_erfhygfVF8_G_RRAF_15ertrk_pbafgnagf15zngpu_synt_glcrR:
 nop
@@ -2168,7 +2168,7 @@
 b__MAX16PtebhcPbagebyyre12TrgGnfxTebhcRvCAFg3__112onfvp_fgevatVpAF0_11pune_genvgfVpRRAF0_9nyybpngbeVpRRRR:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_9fho_zngpuVCXpRRAF_9nyybpngbeVF4_RRR8__nccraqRzEXF4_
+.weak b__MAFg3__16irpgbeVAF_9fho_zngpuVCXpRRAF_9nyybpngbeVF4_RRR8__nccraqRzEXF4_
 .type b__MAFg3__16irpgbeVAF_9fho_zngpuVCXpRRAF_9nyybpngbeVF4_RRR8__nccraqRzEXF4_,%function
 b__MAFg3__16irpgbeVAF_9fho_zngpuVCXpRRAF_9nyybpngbeVF4_RRR8__nccraqRzEXF4_:
 nop
@@ -2208,7 +2208,7 @@
 b__MA4Wfba13inyhrGbFgevatRl:
 nop
 .text
-.globl b__MAXFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR3fgeRi
+.weak b__MAXFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR3fgeRi
 .type b__MAXFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR3fgeRi,%function
 b__MAXFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR3fgeRi:
 nop
@@ -2238,12 +2238,12 @@
 b__MA4Wfba6ErnqreP1REXAF_8SrngherfR:
 nop
 .data
-.globl b__MGGAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
+.weak b__MGGAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
 .type b__MGGAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR,%object
 b__MGGAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__114ertrk_vgrengbeVAF_11__jenc_vgreVCXpRRpAF_12ertrk_genvgfVpRRRccRi
+.weak b__MAFg3__114ertrk_vgrengbeVAF_11__jenc_vgreVCXpRRpAF_12ertrk_genvgfVpRRRccRi
 .type b__MAFg3__114ertrk_vgrengbeVAF_11__jenc_vgreVCXpRRpAF_12ertrk_genvgfVpRRRccRi,%function
 b__MAFg3__114ertrk_vgrengbeVAF_11__jenc_vgreVCXpRRpAF_12ertrk_genvgfVpRRRccRi:
 nop
@@ -2263,12 +2263,12 @@
 b__MAX16PtebhcPbagebyyre8UnfInyhrRi:
 nop
 .text
-.globl b__MAFg3__117__bjaf_gjb_fgngrfVpRQ0Ri
+.weak b__MAFg3__117__bjaf_gjb_fgngrfVpRQ0Ri
 .type b__MAFg3__117__bjaf_gjb_fgngrfVpRQ0Ri,%function
 b__MAFg3__117__bjaf_gjb_fgngrfVpRQ0Ri:
 nop
 .text
-.globl b__MAFg3__120__funerq_cge_rzcynprV11GnfxCebsvyrAF_9nyybpngbeVF1_RRR16__ba_mreb_funerqRi
+.weak b__MAFg3__120__funerq_cge_rzcynprV11GnfxCebsvyrAF_9nyybpngbeVF1_RRR16__ba_mreb_funerqRi
 .type b__MAFg3__120__funerq_cge_rzcynprV11GnfxCebsvyrAF_9nyybpngbeVF1_RRR16__ba_mreb_funerqRi,%function
 b__MAFg3__120__funerq_cge_rzcynprV11GnfxCebsvyrAF_9nyybpngbeVF1_RRR16__ba_mreb_funerqRi:
 nop
@@ -2288,12 +2288,12 @@
 b__MAX4Wfba6Ernqre4tbbqRi:
 nop
 .text
-.globl b__MAFg3__114__fcyvg_ohssreVCCA4Wfba5InyhrRAF_9nyybpngbeVF4_RRR9chfu_onpxRBF4_
+.weak b__MAFg3__114__fcyvg_ohssreVCCA4Wfba5InyhrRAF_9nyybpngbeVF4_RRR9chfu_onpxRBF4_
 .type b__MAFg3__114__fcyvg_ohssreVCCA4Wfba5InyhrRAF_9nyybpngbeVF4_RRR9chfu_onpxRBF4_,%function
 b__MAFg3__114__fcyvg_ohssreVCCA4Wfba5InyhrRAF_9nyybpngbeVF4_RRR9chfu_onpxRBF4_:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVA4Wfba5Inyhr8PMFgevatRF3_RRAF_19__znc_inyhr_pbzcnerVF4_F5_AF_4yrffVF4_RRYo1RRRAF_9nyybpngbeVF5_RRR30__rzcynpr_uvag_havdhr_xrl_netfVF4_WEXAF_4cnveVXF4_F3_RRRRRAF_15__gerr_vgrengbeVF5_CAF_11__gerr_abqrVF5_CiRRyRRAF_21__gerr_pbafg_vgrengbeVF5_FA_yRREXG_QcBG0_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVA4Wfba5Inyhr8PMFgevatRF3_RRAF_19__znc_inyhr_pbzcnerVF4_F5_AF_4yrffVF4_RRYo1RRRAF_9nyybpngbeVF5_RRR30__rzcynpr_uvag_havdhr_xrl_netfVF4_WEXAF_4cnveVXF4_F3_RRRRRAF_15__gerr_vgrengbeVF5_CAF_11__gerr_abqrVF5_CiRRyRRAF_21__gerr_pbafg_vgrengbeVF5_FA_yRREXG_QcBG0_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVA4Wfba5Inyhr8PMFgevatRF3_RRAF_19__znc_inyhr_pbzcnerVF4_F5_AF_4yrffVF4_RRYo1RRRAF_9nyybpngbeVF5_RRR30__rzcynpr_uvag_havdhr_xrl_netfVF4_WEXAF_4cnveVXF4_F3_RRRRRAF_15__gerr_vgrengbeVF5_CAF_11__gerr_abqrVF5_CiRRyRRAF_21__gerr_pbafg_vgrengbeVF5_FA_yRREXG_QcBG0_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVA4Wfba5Inyhr8PMFgevatRF3_RRAF_19__znc_inyhr_pbzcnerVF4_F5_AF_4yrffVF4_RRYo1RRRAF_9nyybpngbeVF5_RRR30__rzcynpr_uvag_havdhr_xrl_netfVF4_WEXAF_4cnveVXF4_F3_RRRRRAF_15__gerr_vgrengbeVF5_CAF_11__gerr_abqrVF5_CiRRyRRAF_21__gerr_pbafg_vgrengbeVF5_FA_yRREXG_QcBG0_:
 nop
@@ -2303,7 +2303,7 @@
 b__MA4Wfba12FglyrqJevgre11jevgrVaqragRi:
 nop
 .text
-.globl b__MAXFg3__120__oenpxrg_rkcerffvbaVpAF_12ertrk_genvgfVpRRR6__rkrpREAF_7__fgngrVpRR
+.weak b__MAXFg3__120__oenpxrg_rkcerffvbaVpAF_12ertrk_genvgfVpRRR6__rkrpREAF_7__fgngrVpRR
 .type b__MAXFg3__120__oenpxrg_rkcerffvbaVpAF_12ertrk_genvgfVpRRR6__rkrpREAF_7__fgngrVpRR,%function
 b__MAXFg3__120__oenpxrg_rkcerffvbaVpAF_12ertrk_genvgfVpRRR6__rkrpREAF_7__fgngrVpRR:
 nop
@@ -2338,12 +2338,12 @@
 b__MA4Wfba18FglyrqFgernzJevgre12abeznyvmrRBYREXAFg3__112onfvp_fgevatVpAF1_11pune_genvgfVpRRAF1_9nyybpngbeVpRRRR:
 nop
 .text
-.globl b__MAXFg3__112ertrk_genvgfVpR20__ybbxhc_pbyyngranzrVCpRRAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRG_FN_p
+.weak b__MAXFg3__112ertrk_genvgfVpR20__ybbxhc_pbyyngranzrVCpRRAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRG_FN_p
 .type b__MAXFg3__112ertrk_genvgfVpR20__ybbxhc_pbyyngranzrVCpRRAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRG_FN_p,%function
 b__MAXFg3__112ertrk_genvgfVpR20__ybbxhc_pbyyngranzrVCpRRAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRG_FN_p:
 nop
 .text
-.globl b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
+.weak b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
 .type b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_,%function
 b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_:
 nop
@@ -2353,7 +2353,7 @@
 b__MAX4Wfba5Inyhr7vfVag64Ri:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF6_RRR7erfreirRz
+.weak b__MAFg3__16irpgbeVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF6_RRR7erfreirRz
 .type b__MAFg3__16irpgbeVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF6_RRR7erfreirRz,%function
 b__MAFg3__16irpgbeVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF6_RRR7erfreirRz:
 nop
@@ -2368,7 +2368,7 @@
 b__MA11GnfxCebsvyr21RanoyrErfbheprPnpuvatRi:
 nop
 .text
-.globl b__MAFg3__114__fcyvg_ohssreVCAF_7__fgngrVpRRAF_9nyybpngbeVF3_RRR10chfu_sebagRBF3_
+.weak b__MAFg3__114__fcyvg_ohssreVCAF_7__fgngrVpRRAF_9nyybpngbeVF3_RRR10chfu_sebagRBF3_
 .type b__MAFg3__114__fcyvg_ohssreVCAF_7__fgngrVpRRAF_9nyybpngbeVF3_RRR10chfu_sebagRBF3_,%function
 b__MAFg3__114__fcyvg_ohssreVCAF_7__fgngrVpRRAF_9nyybpngbeVF3_RRR10chfu_sebagRBF3_:
 nop
@@ -2388,7 +2388,7 @@
 b__MAX4Wfba5Inyhr12nfYnetrfgVagRi:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVA4Wfba5Inyhr8PMFgevatRF3_RRAF_19__znc_inyhr_pbzcnerVF4_F5_AF_4yrffVF4_RRYo1RRRAF_9nyybpngbeVF5_RRR12__svaq_rdhnyVF4_RRECAF_16__gerr_abqr_onfrVCiRRAF_21__gerr_pbafg_vgrengbeVF5_CAF_11__gerr_abqrVF5_FS_RRyRRECAF_15__gerr_raq_abqrVFU_RRFV_EXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVA4Wfba5Inyhr8PMFgevatRF3_RRAF_19__znc_inyhr_pbzcnerVF4_F5_AF_4yrffVF4_RRYo1RRRAF_9nyybpngbeVF5_RRR12__svaq_rdhnyVF4_RRECAF_16__gerr_abqr_onfrVCiRRAF_21__gerr_pbafg_vgrengbeVF5_CAF_11__gerr_abqrVF5_FS_RRyRRECAF_15__gerr_raq_abqrVFU_RRFV_EXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVA4Wfba5Inyhr8PMFgevatRF3_RRAF_19__znc_inyhr_pbzcnerVF4_F5_AF_4yrffVF4_RRYo1RRRAF_9nyybpngbeVF5_RRR12__svaq_rdhnyVF4_RRECAF_16__gerr_abqr_onfrVCiRRAF_21__gerr_pbafg_vgrengbeVF5_CAF_11__gerr_abqrVF5_FS_RRyRRECAF_15__gerr_raq_abqrVFU_RRFV_EXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVA4Wfba5Inyhr8PMFgevatRF3_RRAF_19__znc_inyhr_pbzcnerVF4_F5_AF_4yrffVF4_RRYo1RRRAF_9nyybpngbeVF5_RRR12__svaq_rdhnyVF4_RRECAF_16__gerr_abqr_onfrVCiRRAF_21__gerr_pbafg_vgrengbeVF5_CAF_11__gerr_abqrVF5_FS_RRyRRECAF_15__gerr_raq_abqrVFU_RRFV_EXG_:
 nop
@@ -2398,12 +2398,12 @@
 b_FrgGnfxCebsvyrf:
 nop
 .text
-.globl b__MAFg3__114__fcyvg_ohssreVCA4Wfba6Ernqre9ReebeVasbRAF_9nyybpngbeVF4_RRR9chfu_onpxRBF4_
+.weak b__MAFg3__114__fcyvg_ohssreVCA4Wfba6Ernqre9ReebeVasbRAF_9nyybpngbeVF4_RRR9chfu_onpxRBF4_
 .type b__MAFg3__114__fcyvg_ohssreVCA4Wfba6Ernqre9ReebeVasbRAF_9nyybpngbeVF4_RRR9chfu_onpxRBF4_,%function
 b__MAFg3__114__fcyvg_ohssreVCA4Wfba6Ernqre9ReebeVasbRAF_9nyybpngbeVF4_RRR9chfu_onpxRBF4_:
 nop
 .text
-.globl b__MAFg3__15qrdhrVCA4Wfba5InyhrRAF_9nyybpngbeVF3_RRR19__nqq_onpx_pncnpvglRi
+.weak b__MAFg3__15qrdhrVCA4Wfba5InyhrRAF_9nyybpngbeVF3_RRR19__nqq_onpx_pncnpvglRi
 .type b__MAFg3__15qrdhrVCA4Wfba5InyhrRAF_9nyybpngbeVF3_RRR19__nqq_onpx_pncnpvglRi,%function
 b__MAFg3__15qrdhrVCA4Wfba5InyhrRAF_9nyybpngbeVF3_RRR19__nqq_onpx_pncnpvglRi:
 nop
@@ -2453,7 +2453,7 @@
 b__MA15FrgPtebhcNpgvbaP2REX16PtebhcPbagebyyreEXAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRR:
 nop
 .text
-.globl b__MAXFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_10funerq_cgeV11GnfxCebsvyrRRRRAF_19__znc_inyhr_pbzcnerVF7_FO_AF_4yrffVF7_RRYo1RRRAF5_VFO_RRR4svaqVF7_RRAF_21__gerr_pbafg_vgrengbeVFO_CAF_11__gerr_abqrVFO_CiRRyRREXG_
+.weak b__MAXFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_10funerq_cgeV11GnfxCebsvyrRRRRAF_19__znc_inyhr_pbzcnerVF7_FO_AF_4yrffVF7_RRYo1RRRAF5_VFO_RRR4svaqVF7_RRAF_21__gerr_pbafg_vgrengbeVFO_CAF_11__gerr_abqrVFO_CiRRyRREXG_
 .type b__MAXFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_10funerq_cgeV11GnfxCebsvyrRRRRAF_19__znc_inyhr_pbzcnerVF7_FO_AF_4yrffVF7_RRYo1RRRAF5_VFO_RRR4svaqVF7_RRAF_21__gerr_pbafg_vgrengbeVFO_CAF_11__gerr_abqrVFO_CiRRyRREXG_,%function
 b__MAXFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_10funerq_cgeV11GnfxCebsvyrRRRRAF_19__znc_inyhr_pbzcnerVF7_FO_AF_4yrffVF7_RRYo1RRRAF5_VFO_RRR4svaqVF7_RRAF_21__gerr_pbafg_vgrengbeVFO_CAF_11__gerr_abqrVFO_CiRRyRREXG_:
 nop
@@ -2463,7 +2463,7 @@
 b__MA4Wfba8Srngherf10fgevpgZbqrRi:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA4Wfba6Ernqre15FgehpgherqReebeRAF_9nyybpngbeVF3_RRR21__chfu_onpx_fybj_cnguVEXF3_RRiBG_
+.weak b__MAFg3__16irpgbeVA4Wfba6Ernqre15FgehpgherqReebeRAF_9nyybpngbeVF3_RRR21__chfu_onpx_fybj_cnguVEXF3_RRiBG_
 .type b__MAFg3__16irpgbeVA4Wfba6Ernqre15FgehpgherqReebeRAF_9nyybpngbeVF3_RRR21__chfu_onpx_fybj_cnguVEXF3_RRiBG_,%function
 b__MAFg3__16irpgbeVA4Wfba6Ernqre15FgehpgherqReebeRAF_9nyybpngbeVF3_RRR21__chfu_onpx_fybj_cnguVEXF3_RRiBG_:
 nop
@@ -2498,12 +2498,12 @@
 b__MA4Wfba12FglyrqJevgreP2Ri:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_9fho_zngpuVCXpRRAF_9nyybpngbeVF4_RRR6nffvtaRzEXF4_
+.weak b__MAFg3__16irpgbeVAF_9fho_zngpuVCXpRRAF_9nyybpngbeVF4_RRR6nffvtaRzEXF4_
 .type b__MAFg3__16irpgbeVAF_9fho_zngpuVCXpRRAF_9nyybpngbeVF4_RRR6nffvtaRzEXF4_,%function
 b__MAFg3__16irpgbeVAF_9fho_zngpuVCXpRRAF_9nyybpngbeVF4_RRR6nffvtaRzEXF4_:
 nop
 .data
-.globl b__MGIAFg3__110__onpx_ersVpRR
+.weak b__MGIAFg3__110__onpx_ersVpRR
 .type b__MGIAFg3__110__onpx_ersVpRR,%object
 b__MGIAFg3__110__onpx_ersVpRR:
 .space __SIZEOF_POINTER__
@@ -2528,12 +2528,12 @@
 b__MAX4Wfba5Inyhr8vfHVag64Ri:
 nop
 .data
-.globl b__MGIAFg3__128__ortva_znexrq_fhorkcerffvbaVpRR
+.weak b__MGIAFg3__128__ortva_znexrq_fhorkcerffvbaVpRR
 .type b__MGIAFg3__128__ortva_znexrq_fhorkcerffvbaVpRR,%object
 b__MGIAFg3__128__ortva_znexrq_fhorkcerffvbaVpRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__114__fcyvg_ohssreVCA4Wfba6Ernqre9ReebeVasbRAF_9nyybpngbeVF4_RRR10chfu_sebagRBF4_
+.weak b__MAFg3__114__fcyvg_ohssreVCA4Wfba6Ernqre9ReebeVasbRAF_9nyybpngbeVF4_RRR10chfu_sebagRBF4_
 .type b__MAFg3__114__fcyvg_ohssreVCA4Wfba6Ernqre9ReebeVasbRAF_9nyybpngbeVF4_RRR10chfu_sebagRBF4_,%function
 b__MAFg3__114__fcyvg_ohssreVCA4Wfba6Ernqre9ReebeVasbRAF_9nyybpngbeVF4_RRR10chfu_sebagRBF4_:
 nop
diff --git a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_096.S b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_096.S
index 8d1e00e..2db402f 100644
--- a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_096.S
+++ b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_096.S
@@ -8,12 +8,12 @@
 b__MA7naqebvq5ivags17tIrefvbaPbairegreR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__1yfVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRREAF_13onfvp_bfgernzVG_G0_RRF9_EXAF_12onfvp_fgevatVF6_F7_G1_RR
+.weak b__MAFg3__1yfVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRREAF_13onfvp_bfgernzVG_G0_RRF9_EXAF_12onfvp_fgevatVF6_F7_G1_RR
 .type b__MAFg3__1yfVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRREAF_13onfvp_bfgernzVG_G0_RRF9_EXAF_12onfvp_fgevatVF6_F7_G1_RR,%function
 b__MAFg3__1yfVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRREAF_13onfvp_bfgernzVG_G0_RRF9_EXAF_12onfvp_fgevatVF6_F7_G1_RR:
 nop
 .data
-.globl b__MGIA7naqebvq5ivags16KzyAbqrPbairegreVAF0_15ZnavsrfgKzySvyrRRR
+.weak b__MGIA7naqebvq5ivags16KzyAbqrPbairegreVAF0_15ZnavsrfgKzySvyrRRR
 .type b__MGIA7naqebvq5ivags16KzyAbqrPbairegreVAF0_15ZnavsrfgKzySvyrRRR,%object
 b__MGIA7naqebvq5ivags16KzyAbqrPbairegreVAF0_15ZnavsrfgKzySvyrRRR:
 .space __SIZEOF_POINTER__
@@ -28,12 +28,12 @@
 b__MA7naqebvq5ivags22XrearyPbasvtGlcrqInyhrP1RAF0_8GevfgngrR:
 nop
 .text
-.globl b__MAXFg3__120__zngpu_pune_pbyyngrVpAF_12ertrk_genvgfVpRRR6__rkrpREAF_7__fgngrVpRR
+.weak b__MAXFg3__120__zngpu_pune_pbyyngrVpAF_12ertrk_genvgfVpRRR6__rkrpREAF_7__fgngrVpRR
 .type b__MAXFg3__120__zngpu_pune_pbyyngrVpAF_12ertrk_genvgfVpRRR6__rkrpREAF_7__fgngrVpRR,%function
 b__MAXFg3__120__zngpu_pune_pbyyngrVpAF_12ertrk_genvgfVpRRR6__rkrpREAF_7__fgngrVpRR:
 nop
 .text
-.globl b__MAFg3__16irpgbeV5AnzrqVA7naqebvq5ivags19PbzcngvovyvglZngevkRRAF_9nyybpngbeVF5_RRR24__rzcynpr_onpx_fybj_cnguVWF5_RRRiQcBG_
+.weak b__MAFg3__16irpgbeV5AnzrqVA7naqebvq5ivags19PbzcngvovyvglZngevkRRAF_9nyybpngbeVF5_RRR24__rzcynpr_onpx_fybj_cnguVWF5_RRRiQcBG_
 .type b__MAFg3__16irpgbeV5AnzrqVA7naqebvq5ivags19PbzcngvovyvglZngevkRRAF_9nyybpngbeVF5_RRR24__rzcynpr_onpx_fybj_cnguVWF5_RRRiQcBG_,%function
 b__MAFg3__16irpgbeV5AnzrqVA7naqebvq5ivags19PbzcngvovyvglZngevkRRAF_9nyybpngbeVF5_RRR24__rzcynpr_onpx_fybj_cnguVWF5_RRRiQcBG_:
 nop
@@ -43,17 +43,17 @@
 b__MA7naqebvq5ivags10cnefrEnatrREXAFg3__112onfvp_fgevatVpAF1_11pune_genvgfVpRRAF1_9nyybpngbeVpRRRRCAF1_4cnveVzzRR:
 nop
 .text
-.globl b__MAXFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRA7naqebvq5ivags13ZngevkKzySvyrRRRAF_19__znc_inyhr_pbzcnerVF7_FO_AF_4yrffVF7_RRYo1RRRAF5_VFO_RRR19__rdhny_enatr_zhygvVF7_RRAF_4cnveVAF_21__gerr_pbafg_vgrengbeVFO_CAF_11__gerr_abqrVFO_CiRRyRRFC_RREXG_
+.weak b__MAXFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRA7naqebvq5ivags13ZngevkKzySvyrRRRAF_19__znc_inyhr_pbzcnerVF7_FO_AF_4yrffVF7_RRYo1RRRAF5_VFO_RRR19__rdhny_enatr_zhygvVF7_RRAF_4cnveVAF_21__gerr_pbafg_vgrengbeVFO_CAF_11__gerr_abqrVFO_CiRRyRRFC_RREXG_
 .type b__MAXFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRA7naqebvq5ivags13ZngevkKzySvyrRRRAF_19__znc_inyhr_pbzcnerVF7_FO_AF_4yrffVF7_RRYo1RRRAF5_VFO_RRR19__rdhny_enatr_zhygvVF7_RRAF_4cnveVAF_21__gerr_pbafg_vgrengbeVFO_CAF_11__gerr_abqrVFO_CiRRyRRFC_RREXG_,%function
 b__MAXFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRA7naqebvq5ivags13ZngevkKzySvyrRRRAF_19__znc_inyhr_pbzcnerVF7_FO_AF_4yrffVF7_RRYo1RRRAF5_VFO_RRR19__rdhny_enatr_zhygvVF7_RRAF_4cnveVAF_21__gerr_pbafg_vgrengbeVFO_CAF_11__gerr_abqrVFO_CiRRyRRFC_RREXG_:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRA7naqebvq5ivags9ZngevkUnyRRRAF_19__znc_inyhr_pbzcnerVF7_FO_AF_4yrffVF7_RRYo1RRRAF5_VFO_RRR20__rzcynpr_uvag_zhygvVWEXAF_4cnveVXF7_FN_RRRRRAF_15__gerr_vgrengbeVFO_CAF_11__gerr_abqrVFO_CiRRyRRAF_21__gerr_pbafg_vgrengbeVFO_FF_yRRQcBG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRA7naqebvq5ivags9ZngevkUnyRRRAF_19__znc_inyhr_pbzcnerVF7_FO_AF_4yrffVF7_RRYo1RRRAF5_VFO_RRR20__rzcynpr_uvag_zhygvVWEXAF_4cnveVXF7_FN_RRRRRAF_15__gerr_vgrengbeVFO_CAF_11__gerr_abqrVFO_CiRRyRRAF_21__gerr_pbafg_vgrengbeVFO_FF_yRRQcBG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRA7naqebvq5ivags9ZngevkUnyRRRAF_19__znc_inyhr_pbzcnerVF7_FO_AF_4yrffVF7_RRYo1RRRAF5_VFO_RRR20__rzcynpr_uvag_zhygvVWEXAF_4cnveVXF7_FN_RRRRRAF_15__gerr_vgrengbeVFO_CAF_11__gerr_abqrVFO_CiRRyRRAF_21__gerr_pbafg_vgrengbeVFO_FF_yRRQcBG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRA7naqebvq5ivags9ZngevkUnyRRRAF_19__znc_inyhr_pbzcnerVF7_FO_AF_4yrffVF7_RRYo1RRRAF5_VFO_RRR20__rzcynpr_uvag_zhygvVWEXAF_4cnveVXF7_FN_RRRRRAF_15__gerr_vgrengbeVFO_CAF_11__gerr_abqrVFO_CiRRyRRAF_21__gerr_pbafg_vgrengbeVFO_FF_yRRQcBG_:
 nop
 .data
-.globl b__MGIA7naqebvq5ivags16KzyAbqrPbairegreVAF0_9IraqbeAqxRRR
+.weak b__MGIA7naqebvq5ivags16KzyAbqrPbairegreVAF0_9IraqbeAqxRRR
 .type b__MGIA7naqebvq5ivags16KzyAbqrPbairegreVAF0_9IraqbeAqxRRR,%object
 b__MGIA7naqebvq5ivags16KzyAbqrPbairegreVAF0_9IraqbeAqxRRR:
 .space __SIZEOF_POINTER__
@@ -63,7 +63,7 @@
 b__MAX7naqebvq5ivags11UnyZnavsrfg4glcrRi:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF6_RRR6vafregRAF_11__jenc_vgreVCXF6_RRBF6_
+.weak b__MAFg3__16irpgbeVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF6_RRR6vafregRAF_11__jenc_vgreVCXF6_RRBF6_
 .type b__MAFg3__16irpgbeVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF6_RRR6vafregRAF_11__jenc_vgreVCXF6_RRBF6_,%function
 b__MAFg3__16irpgbeVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF6_RRR6vafregRAF_11__jenc_vgreVCXF6_RRBF6_:
 nop
@@ -93,12 +93,12 @@
 b__MAX7naqebvq5ivags14ZngevkVafgnapr7vfErtrkRi:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_4yrffVF6_RRAF4_VF6_RRR7qrfgeblRCAF_11__gerr_abqrVF6_CiRR
+.weak b__MAFg3__16__gerrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_4yrffVF6_RRAF4_VF6_RRR7qrfgeblRCAF_11__gerr_abqrVF6_CiRR
 .type b__MAFg3__16__gerrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_4yrffVF6_RRAF4_VF6_RRR7qrfgeblRCAF_11__gerr_abqrVF6_CiRR,%function
 b__MAFg3__16__gerrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_4yrffVF6_RRAF4_VF6_RRR7qrfgeblRCAF_11__gerr_abqrVF6_CiRR:
 nop
 .data
-.globl b__MGIA7naqebvq5ivags16KzyAbqrPbairegreVAFg3__14cnveVAF0_15XrearyPbasvtXrlRAF0_22XrearyPbasvtGlcrqInyhrRRRRR
+.weak b__MGIA7naqebvq5ivags16KzyAbqrPbairegreVAFg3__14cnveVAF0_15XrearyPbasvtXrlRAF0_22XrearyPbasvtGlcrqInyhrRRRRR
 .type b__MGIA7naqebvq5ivags16KzyAbqrPbairegreVAFg3__14cnveVAF0_15XrearyPbasvtXrlRAF0_22XrearyPbasvtGlcrqInyhrRRRRR,%object
 b__MGIA7naqebvq5ivags16KzyAbqrPbairegreVAFg3__14cnveVAF0_15XrearyPbasvtXrlRAF0_22XrearyPbasvtGlcrqInyhrRRRRR:
 .space __SIZEOF_POINTER__
@@ -108,7 +108,7 @@
 b__MAX7naqebvq5ivags7qrgnvyf19SvyrFlfgrzHaqreCngu5srgpuREXAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRRCF9_FP_:
 nop
 .text
-.globl b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR23__cnefr_DHBGRQ_PUNE_RERVCXpRRG_F7_F7_
+.weak b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR23__cnefr_DHBGRQ_PUNE_RERVCXpRRG_F7_F7_
 .type b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR23__cnefr_DHBGRQ_PUNE_RERVCXpRRG_F7_F7_,%function
 b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR23__cnefr_DHBGRQ_PUNE_RERVCXpRRG_F7_F7_:
 nop
@@ -118,7 +118,7 @@
 b__MA7naqebvq5ivags20cnefrXrearyPbasvtVagREXAFg3__112onfvp_fgevatVpAF1_11pune_genvgfVpRRAF1_9nyybpngbeVpRRRRCz:
 nop
 .text
-.globl b__MAXFg3__111__raq_fgngrVpR6__rkrpREAF_7__fgngrVpRR
+.weak b__MAXFg3__111__raq_fgngrVpR6__rkrpREAF_7__fgngrVpRR
 .type b__MAXFg3__111__raq_fgngrVpR6__rkrpREAF_7__fgngrVpRR,%function
 b__MAXFg3__111__raq_fgngrVpR6__rkrpREAF_7__fgngrVpRR:
 nop
@@ -133,7 +133,7 @@
 b__MA7naqebvq5ivagsyfREAFg3__113onfvp_bfgernzVpAF1_11pune_genvgfVpRRRRAF0_9GenafcbegR:
 nop
 .data
-.globl b__MGIA7naqebvq5ivags18IraqbeAqxPbairegreR
+.weak b__MGIA7naqebvq5ivags18IraqbeAqxPbairegreR
 .type b__MGIA7naqebvq5ivags18IraqbeAqxPbairegreR,%object
 b__MGIA7naqebvq5ivags18IraqbeAqxPbairegreR:
 .space __SIZEOF_POINTER__
@@ -143,22 +143,22 @@
 b__MA7naqebvq5ivags9ZngevkUny19vafregIrefvbaEnatrfREXAFg3__16irpgbeVAF0_12IrefvbaEnatrRAF2_9nyybpngbeVF4_RRRR:
 nop
 .text
-.globl b__MAXFg3__16__ybbcVpR6__rkrpREAF_7__fgngrVpRR
+.weak b__MAXFg3__16__ybbcVpR6__rkrpREAF_7__fgngrVpRR
 .type b__MAXFg3__16__ybbcVpR6__rkrpREAF_7__fgngrVpRR,%function
 b__MAXFg3__16__ybbcVpR6__rkrpREAF_7__fgngrVpRR:
 nop
 .text
-.globl b__MAXFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRF7_RRAF_19__znc_inyhr_pbzcnerVF7_F8_AF_4yrffVF7_RRYo1RRRAF5_VF8_RRR4svaqVF7_RRAF_21__gerr_pbafg_vgrengbeVF8_CAF_11__gerr_abqrVF8_CiRRyRREXG_
+.weak b__MAXFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRF7_RRAF_19__znc_inyhr_pbzcnerVF7_F8_AF_4yrffVF7_RRYo1RRRAF5_VF8_RRR4svaqVF7_RRAF_21__gerr_pbafg_vgrengbeVF8_CAF_11__gerr_abqrVF8_CiRRyRREXG_
 .type b__MAXFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRF7_RRAF_19__znc_inyhr_pbzcnerVF7_F8_AF_4yrffVF7_RRYo1RRRAF5_VF8_RRR4svaqVF7_RRAF_21__gerr_pbafg_vgrengbeVF8_CAF_11__gerr_abqrVF8_CiRRyRREXG_,%function
 b__MAXFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRF7_RRAF_19__znc_inyhr_pbzcnerVF7_F8_AF_4yrffVF7_RRYo1RRRAF5_VF8_RRR4svaqVF7_RRAF_21__gerr_pbafg_vgrengbeVF8_CAF_11__gerr_abqrVF8_CiRRyRREXG_:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVzAF_4unfuVzRRAF_8rdhny_gbVzRRAF_9nyybpngbeVzRRR6erunfuRz
+.weak b__MAFg3__112__unfu_gnoyrVzAF_4unfuVzRRAF_8rdhny_gbVzRRAF_9nyybpngbeVzRRR6erunfuRz
 .type b__MAFg3__112__unfu_gnoyrVzAF_4unfuVzRRAF_8rdhny_gbVzRRAF_9nyybpngbeVzRRR6erunfuRz,%function
 b__MAFg3__112__unfu_gnoyrVzAF_4unfuVzRRAF_8rdhny_gbVzRRAF_9nyybpngbeVzRRR6erunfuRz:
 nop
 .text
-.globl b__MAFg3__113__irpgbe_onfrVA7naqebvq5ivags15ZnavsrfgKzySvyrRAF_9nyybpngbeVF3_RRRQ2Ri
+.weak b__MAFg3__113__irpgbe_onfrVA7naqebvq5ivags15ZnavsrfgKzySvyrRAF_9nyybpngbeVF3_RRRQ2Ri
 .type b__MAFg3__113__irpgbe_onfrVA7naqebvq5ivags15ZnavsrfgKzySvyrRAF_9nyybpngbeVF3_RRRQ2Ri,%function
 b__MAFg3__113__irpgbe_onfrVA7naqebvq5ivags15ZnavsrfgKzySvyrRAF_9nyybpngbeVF3_RRRQ2Ri:
 nop
@@ -168,22 +168,22 @@
 b__MGIA7naqebvq5ivags19PbzcngvovyvglZngevkR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAXFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR29__zngpu_ng_fgneg_cbfvk_abfhofVAF_9nyybpngbeVAF_9fho_zngpuVCXpRRRRRRoF8_F8_EAF_13zngpu_erfhygfVF8_G_RRAF_15ertrk_pbafgnagf15zngpu_synt_glcrRo
+.weak b__MAXFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR29__zngpu_ng_fgneg_cbfvk_abfhofVAF_9nyybpngbeVAF_9fho_zngpuVCXpRRRRRRoF8_F8_EAF_13zngpu_erfhygfVF8_G_RRAF_15ertrk_pbafgnagf15zngpu_synt_glcrRo
 .type b__MAXFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR29__zngpu_ng_fgneg_cbfvk_abfhofVAF_9nyybpngbeVAF_9fho_zngpuVCXpRRRRRRoF8_F8_EAF_13zngpu_erfhygfVF8_G_RRAF_15ertrk_pbafgnagf15zngpu_synt_glcrRo,%function
 b__MAXFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR29__zngpu_ng_fgneg_cbfvk_abfhofVAF_9nyybpngbeVAF_9fho_zngpuVCXpRRRRRRoF8_F8_EAF_13zngpu_erfhygfVF8_G_RRAF_15ertrk_pbafgnagf15zngpu_synt_glcrRo:
 nop
 .text
-.globl b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR7__cnefrVCXpRRG_F7_F7_
+.weak b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR7__cnefrVCXpRRG_F7_F7_
 .type b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR7__cnefrVCXpRRG_F7_F7_,%function
 b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR7__cnefrVCXpRRG_F7_F7_:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRA7naqebvq5ivags12UnyVagresnprRRRAF_19__znc_inyhr_pbzcnerVF7_FO_AF_4yrffVF7_RRYo1RRRAF5_VFO_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFO_CAF_11__gerr_abqrVFO_CiRRyRREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRA7naqebvq5ivags12UnyVagresnprRRRAF_19__znc_inyhr_pbzcnerVF7_FO_AF_4yrffVF7_RRYo1RRRAF5_VFO_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFO_CAF_11__gerr_abqrVFO_CiRRyRREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRA7naqebvq5ivags12UnyVagresnprRRRAF_19__znc_inyhr_pbzcnerVF7_FO_AF_4yrffVF7_RRYo1RRRAF5_VFO_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFO_CAF_11__gerr_abqrVFO_CiRRyRREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRA7naqebvq5ivags12UnyVagresnprRRRAF_19__znc_inyhr_pbzcnerVF7_FO_AF_4yrffVF7_RRYo1RRRAF5_VFO_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFO_CAF_11__gerr_abqrVFO_CiRRyRREXG_:
 nop
 .data
-.globl b__MGIA7naqebvq5ivags8UnyTebhcVAF0_9ZngevkUnyRRR
+.weak b__MGIA7naqebvq5ivags8UnyTebhcVAF0_9ZngevkUnyRRR
 .type b__MGIA7naqebvq5ivags8UnyTebhcVAF0_9ZngevkUnyRRR,%object
 b__MGIA7naqebvq5ivags8UnyTebhcVAF0_9ZngevkUnyRRR:
 .space __SIZEOF_POINTER__
@@ -213,22 +213,22 @@
 b__MA7naqebvq5ivags16ZnavsrfgVafgnaprP2RBAF_10SdVafgnaprRBAF0_13GenafcbegNepuRAF0_9UnySbezngR:
 nop
 .data
-.globl b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_14onfvp_vbfgernzVpF2_RR
+.weak b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_14onfvp_vbfgernzVpF2_RR
 .type b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_14onfvp_vbfgernzVpF2_RR,%object
 b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_14onfvp_vbfgernzVpF2_RR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq5ivags9gb_fgevatVAF0_22XrearyPbasvtGlcrqInyhrRRRAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRREXG_
+.weak b__MA7naqebvq5ivags9gb_fgevatVAF0_22XrearyPbasvtGlcrqInyhrRRRAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRREXG_
 .type b__MA7naqebvq5ivags9gb_fgevatVAF0_22XrearyPbasvtGlcrqInyhrRRRAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRREXG_,%function
 b__MA7naqebvq5ivags9gb_fgevatVAF0_22XrearyPbasvtGlcrqInyhrRRRAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRREXG_:
 nop
 .data
-.globl b__MGIA7naqebvq5ivags16KzyAbqrPbairegreVAF0_12IrefvbaEnatrRRR
+.weak b__MGIA7naqebvq5ivags16KzyAbqrPbairegreVAF0_12IrefvbaEnatrRRR
 .type b__MGIA7naqebvq5ivags16KzyAbqrPbairegreVAF0_12IrefvbaEnatrRRR,%object
 b__MGIA7naqebvq5ivags16KzyAbqrPbairegreVAF0_12IrefvbaEnatrRRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq4onfr4WbvaVAFg3__13frgVAF2_12onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRAF2_4yrffVF9_RRAF7_VF9_RRRRCXpRRF9_EXG_G0_
+.weak b__MA7naqebvq4onfr4WbvaVAFg3__13frgVAF2_12onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRAF2_4yrffVF9_RRAF7_VF9_RRRRCXpRRF9_EXG_G0_
 .type b__MA7naqebvq4onfr4WbvaVAFg3__13frgVAF2_12onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRAF2_4yrffVF9_RRAF7_VF9_RRRRCXpRRF9_EXG_G0_,%function
 b__MA7naqebvq4onfr4WbvaVAFg3__13frgVAF2_12onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRAF2_4yrffVF9_RRAF7_VF9_RRRRCXpRRF9_EXG_G0_:
 nop
@@ -238,7 +238,7 @@
 b__MAX7naqebvq5ivags16ZnavsrfgVafgnapr9genafcbegRi:
 nop
 .text
-.globl b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR19__cnefr_nygreangvirVCXpRRG_F7_F7_
+.weak b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR19__cnefr_nygreangvirVCXpRRG_F7_F7_
 .type b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR19__cnefr_nygreangvirVCXpRRG_F7_F7_,%function
 b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR19__cnefr_nygreangvirVCXpRRG_F7_F7_:
 nop
@@ -253,22 +253,22 @@
 b__MAX7naqebvq5ivags11EhagvzrVasb13xrearyPbasvtfRi:
 nop
 .data
-.globl b__MGIA7naqebvq5ivags21ZngevkXrearyPbairegreR
+.weak b__MGIA7naqebvq5ivags21ZngevkXrearyPbairegreR
 .type b__MGIA7naqebvq5ivags21ZngevkXrearyPbairegreR,%object
 b__MGIA7naqebvq5ivags21ZngevkXrearyPbairegreR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRR4flapRi
+.weak b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRR4flapRi
 .type b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRR4flapRi,%function
 b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRR4flapRi:
 nop
 .text
-.globl b__MAXFg3__126__raq_znexrq_fhorkcerffvbaVpR6__rkrpREAF_7__fgngrVpRR
+.weak b__MAXFg3__126__raq_znexrq_fhorkcerffvbaVpR6__rkrpREAF_7__fgngrVpRR
 .type b__MAXFg3__126__raq_znexrq_fhorkcerffvbaVpR6__rkrpREAF_7__fgngrVpRR,%function
 b__MAXFg3__126__raq_znexrq_fhorkcerffvbaVpR6__rkrpREAF_7__fgngrVpRR:
 nop
 .text
-.globl b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR17__cnefr_nffregvbaVCXpRRG_F7_F7_
+.weak b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR17__cnefr_nffregvbaVCXpRRG_F7_F7_
 .type b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR17__cnefr_nffregvbaVCXpRRG_F7_F7_,%function
 b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR17__cnefr_nffregvbaVCXpRRG_F7_F7_:
 nop
@@ -283,17 +283,17 @@
 b__MA7naqebvq5ivagsyfREAFg3__113onfvp_bfgernzVpAF1_11pune_genvgfVpRRRREXAF0_13XrearyIrefvbaR:
 nop
 .text
-.globl b__MA7naqebvq5ivags15zhygvyvarVaqragVAFg3__13frgVAF2_12onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRAF2_4yrffVF9_RRAF7_VF9_RRRRRRiEAF2_13onfvp_bfgernzVpF6_RRzEXG_
+.weak b__MA7naqebvq5ivags15zhygvyvarVaqragVAFg3__13frgVAF2_12onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRAF2_4yrffVF9_RRAF7_VF9_RRRRRRiEAF2_13onfvp_bfgernzVpF6_RRzEXG_
 .type b__MA7naqebvq5ivags15zhygvyvarVaqragVAFg3__13frgVAF2_12onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRAF2_4yrffVF9_RRAF7_VF9_RRRRRRiEAF2_13onfvp_bfgernzVpF6_RRzEXG_,%function
 b__MA7naqebvq5ivags15zhygvyvarVaqragVAFg3__13frgVAF2_12onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRAF2_4yrffVF9_RRAF7_VF9_RRRRRRiEAF2_13onfvp_bfgernzVpF6_RRzEXG_:
 nop
 .text
-.globl b__MAXFg3__111__nygreangrVpR6__rkrpREAF_7__fgngrVpRR
+.weak b__MAXFg3__111__nygreangrVpR6__rkrpREAF_7__fgngrVpRR
 .type b__MAXFg3__111__nygreangrVpR6__rkrpREAF_7__fgngrVpRR,%function
 b__MAXFg3__111__nygreangrVpR6__rkrpREAF_7__fgngrVpRR:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_4cnveVzCXpRRAF_9nyybpngbeVF4_RRR8__nccraqRz
+.weak b__MAFg3__16irpgbeVAF_4cnveVzCXpRRAF_9nyybpngbeVF4_RRR8__nccraqRz
 .type b__MAFg3__16irpgbeVAF_4cnveVzCXpRRAF_9nyybpngbeVF4_RRR8__nccraqRz,%function
 b__MAFg3__16irpgbeVAF_4cnveVzCXpRRAF_9nyybpngbeVF4_RRR8__nccraqRz:
 nop
@@ -308,12 +308,12 @@
 b__MA7naqebvq5ivags11IvagsBowrpg18purpxPbzcngvovyvglRCAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRAF0_10PurpxSyntf4GlcrR:
 nop
 .data
-.globl b__MGIA7naqebvq5ivags16KzyAbqrPbairegreVAF0_10XrearyVasbRRR
+.weak b__MGIA7naqebvq5ivags16KzyAbqrPbairegreVAF0_10XrearyVasbRRR
 .type b__MGIA7naqebvq5ivags16KzyAbqrPbairegreVAF0_10XrearyVasbRRR,%object
 b__MGIA7naqebvq5ivags16KzyAbqrPbairegreVAF0_10XrearyVasbRRR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIA7naqebvq5ivags16KzyAbqrPbairegreVAF0_9FlfgrzFqxRRR
+.weak b__MGIA7naqebvq5ivags16KzyAbqrPbairegreVAF0_9FlfgrzFqxRRR
 .type b__MGIA7naqebvq5ivags16KzyAbqrPbairegreVAF0_9FlfgrzFqxRRR,%object
 b__MGIA7naqebvq5ivags16KzyAbqrPbairegreVAF0_9FlfgrzFqxRRR:
 .space __SIZEOF_POINTER__
@@ -323,12 +323,12 @@
 b__MA7naqebvq5ivags19PbzcngvovyvglZngevk9nqqXrearyRBAF0_12ZngevkXrearyRCAFg3__112onfvp_fgevatVpAF4_11pune_genvgfVpRRAF4_9nyybpngbeVpRRRR:
 nop
 .text
-.globl b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRR5vzohrREXAF_6ybpnyrR
+.weak b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRR5vzohrREXAF_6ybpnyrR
 .type b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRR5vzohrREXAF_6ybpnyrR,%function
 b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRR5vzohrREXAF_6ybpnyrR:
 nop
 .text
-.globl b__MAFg3__114__fcyvg_ohssreVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRREAF4_VF6_RRR9chfu_onpxRBF6_
+.weak b__MAFg3__114__fcyvg_ohssreVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRREAF4_VF6_RRR9chfu_onpxRBF6_
 .type b__MAFg3__114__fcyvg_ohssreVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRREAF4_VF6_RRR9chfu_onpxRBF6_,%function
 b__MAFg3__114__fcyvg_ohssreVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRREAF4_VF6_RRR9chfu_onpxRBF6_:
 nop
@@ -338,7 +338,7 @@
 b__MAX7naqebvq5ivags12UnyVagresnpr15sbeRnpuVafgnaprREXAFg3__18shapgvbaVSoEXAF2_12onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRFO_oRRR:
 nop
 .text
-.globl b__MAFg3__116__bjaf_bar_fgngrVpRQ0Ri
+.weak b__MAFg3__116__bjaf_bar_fgngrVpRQ0Ri
 .type b__MAFg3__116__bjaf_bar_fgngrVpRQ0Ri,%function
 b__MAFg3__116__bjaf_bar_fgngrVpRQ0Ri:
 nop
@@ -358,7 +358,7 @@
 b__MA7naqebvq5ivags25iaqxIrefvbaEnatrPbairegreR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq5ivags4IaqxRAF_9nyybpngbeVF3_RRR8__nccraqRz
+.weak b__MAFg3__16irpgbeVA7naqebvq5ivags4IaqxRAF_9nyybpngbeVF3_RRR8__nccraqRz
 .type b__MAFg3__16irpgbeVA7naqebvq5ivags4IaqxRAF_9nyybpngbeVF3_RRR8__nccraqRz,%function
 b__MAFg3__16irpgbeVA7naqebvq5ivags4IaqxRAF_9nyybpngbeVF3_RRR8__nccraqRz:
 nop
@@ -368,12 +368,12 @@
 b__MAX7naqebvq5ivags19PbzcngvovyvglZngevk24sbeRnpuVafgnaprBsIrefvbaRAF0_9UnySbezngREXAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRREXAF0_7IrefvbaREXAF3_8shapgvbaVSoEXAF0_14ZngevkVafgnaprRRRR:
 nop
 .text
-.globl b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRR9haqresybjRi
+.weak b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRR9haqresybjRi
 .type b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRR9haqresybjRi,%function
 b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRR9haqresybjRi:
 nop
 .text
-.globl b__MAXFg3__113__rzcgl_fgngrVpR6__rkrpREAF_7__fgngrVpRR
+.weak b__MAXFg3__113__rzcgl_fgngrVpR6__rkrpREAF_7__fgngrVpRR
 .type b__MAXFg3__113__rzcgl_fgngrVpR6__rkrpREAF_7__fgngrVpRR,%function
 b__MAXFg3__113__rzcgl_fgngrVpR6__rkrpREAF_7__fgngrVpRR:
 nop
@@ -418,22 +418,22 @@
 b__MA7naqebvq5ivags7qrgnvyf12qhzcSvyrYvfgRi:
 nop
 .text
-.globl b__MAFg3__16__gerrVA7naqebvq10SdVafgnaprRAF_4yrffVF2_RRAF_9nyybpngbeVF2_RRR25__rzcynpr_havdhr_xrl_netfVF2_WXF2_RRRAF_4cnveVAF_15__gerr_vgrengbeVF2_CAF_11__gerr_abqrVF2_CiRRyRRoRREXG_QcBG0_
+.weak b__MAFg3__16__gerrVA7naqebvq10SdVafgnaprRAF_4yrffVF2_RRAF_9nyybpngbeVF2_RRR25__rzcynpr_havdhr_xrl_netfVF2_WXF2_RRRAF_4cnveVAF_15__gerr_vgrengbeVF2_CAF_11__gerr_abqrVF2_CiRRyRRoRREXG_QcBG0_
 .type b__MAFg3__16__gerrVA7naqebvq10SdVafgnaprRAF_4yrffVF2_RRAF_9nyybpngbeVF2_RRR25__rzcynpr_havdhr_xrl_netfVF2_WXF2_RRRAF_4cnveVAF_15__gerr_vgrengbeVF2_CAF_11__gerr_abqrVF2_CiRRyRRoRREXG_QcBG0_,%function
 b__MAFg3__16__gerrVA7naqebvq10SdVafgnaprRAF_4yrffVF2_RRAF_9nyybpngbeVF2_RRR25__rzcynpr_havdhr_xrl_netfVF2_WXF2_RRRAF_4cnveVAF_15__gerr_vgrengbeVF2_CAF_11__gerr_abqrVF2_CiRRyRRoRREXG_QcBG0_:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq5ivags11ZnavsrfgUnyRAF_9nyybpngbeVF3_RRR26__fjnc_bhg_pvephyne_ohssreREAF_14__fcyvg_ohssreVF3_EF5_RR
+.weak b__MAFg3__16irpgbeVA7naqebvq5ivags11ZnavsrfgUnyRAF_9nyybpngbeVF3_RRR26__fjnc_bhg_pvephyne_ohssreREAF_14__fcyvg_ohssreVF3_EF5_RR
 .type b__MAFg3__16irpgbeVA7naqebvq5ivags11ZnavsrfgUnyRAF_9nyybpngbeVF3_RRR26__fjnc_bhg_pvephyne_ohssreREAF_14__fcyvg_ohssreVF3_EF5_RR,%function
 b__MAFg3__16irpgbeVA7naqebvq5ivags11ZnavsrfgUnyRAF_9nyybpngbeVF3_RRR26__fjnc_bhg_pvephyne_ohssreREAF_14__fcyvg_ohssreVF3_EF5_RR:
 nop
 .data
-.globl b__MGGAFg3__114onfvp_vsfgernzVpAF_11pune_genvgfVpRRRR
+.weak b__MGGAFg3__114onfvp_vsfgernzVpAF_11pune_genvgfVpRRRR
 .type b__MGGAFg3__114onfvp_vsfgernzVpAF_11pune_genvgfVpRRRR,%object
 b__MGGAFg3__114onfvp_vsfgernzVpAF_11pune_genvgfVpRRRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAXFg3__128__ortva_znexrq_fhorkcerffvbaVpR6__rkrpREAF_7__fgngrVpRR
+.weak b__MAXFg3__128__ortva_znexrq_fhorkcerffvbaVpR6__rkrpREAF_7__fgngrVpRR
 .type b__MAXFg3__128__ortva_znexrq_fhorkcerffvbaVpR6__rkrpREAF_7__fgngrVpRR,%function
 b__MAXFg3__128__ortva_znexrq_fhorkcerffvbaVpR6__rkrpREAF_7__fgngrVpRR:
 nop
@@ -443,7 +443,7 @@
 b__MA7naqebvq5ivagsyfREAFg3__113onfvp_bfgernzVpAF1_11pune_genvgfVpRRRRAF0_8GevfgngrR:
 nop
 .text
-.globl b__MAFg3__16__gerrVA7naqebvq10SdVafgnaprRAF_4yrffVF2_RRAF_9nyybpngbeVF2_RRR25__rzcynpr_havdhr_xrl_netfVF2_WF2_RRRAF_4cnveVAF_15__gerr_vgrengbeVF2_CAF_11__gerr_abqrVF2_CiRRyRRoRREXG_QcBG0_
+.weak b__MAFg3__16__gerrVA7naqebvq10SdVafgnaprRAF_4yrffVF2_RRAF_9nyybpngbeVF2_RRR25__rzcynpr_havdhr_xrl_netfVF2_WF2_RRRAF_4cnveVAF_15__gerr_vgrengbeVF2_CAF_11__gerr_abqrVF2_CiRRyRRoRREXG_QcBG0_
 .type b__MAFg3__16__gerrVA7naqebvq10SdVafgnaprRAF_4yrffVF2_RRAF_9nyybpngbeVF2_RRR25__rzcynpr_havdhr_xrl_netfVF2_WF2_RRRAF_4cnveVAF_15__gerr_vgrengbeVF2_CAF_11__gerr_abqrVF2_CiRRyRRoRREXG_QcBG0_,%function
 b__MAFg3__16__gerrVA7naqebvq10SdVafgnaprRAF_4yrffVF2_RRAF_9nyybpngbeVF2_RRR25__rzcynpr_havdhr_xrl_netfVF2_WF2_RRRAF_4cnveVAF_15__gerr_vgrengbeVF2_CAF_11__gerr_abqrVF2_CiRRyRRoRREXG_QcBG0_:
 nop
@@ -453,7 +453,7 @@
 b__MA7naqebvq5ivags19PbzcngvovyvglZngevk13nqqNyyXrearyfRCF1_CAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRR:
 nop
 .text
-.globl b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRRQ0Ri
+.weak b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRRQ0Ri
 .type b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRRQ0Ri,%function
 b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRRQ0Ri:
 nop
@@ -463,12 +463,12 @@
 b__MAX7naqebvq5ivags11UnyZnavsrfg16trgUvqyGenafcbegREXAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRREXAF0_7IrefvbaRFN_FN_:
 nop
 .text
-.globl b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRR9conpxsnvyRv
+.weak b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRR9conpxsnvyRv
 .type b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRR9conpxsnvyRv,%function
 b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRR9conpxsnvyRv:
 nop
 .data
-.globl b__MGIAFg3__112__zngpu_puneVpRR
+.weak b__MGIAFg3__112__zngpu_puneVpRR
 .type b__MGIAFg3__112__zngpu_puneVpRR,%object
 b__MGIAFg3__112__zngpu_puneVpRR:
 .space __SIZEOF_POINTER__
@@ -483,27 +483,27 @@
 b__MA7naqebvq5ivags7qrgnvyf5ErtrkQ2Ri:
 nop
 .text
-.globl b__MAFg3__120__funerq_cge_rzcynprVA7naqebvq5ivags19PbzcngvovyvglZngevkRAF_9nyybpngbeVF3_RRR21__ba_mreb_funerq_jrnxRi
+.weak b__MAFg3__120__funerq_cge_rzcynprVA7naqebvq5ivags19PbzcngvovyvglZngevkRAF_9nyybpngbeVF3_RRR21__ba_mreb_funerq_jrnxRi
 .type b__MAFg3__120__funerq_cge_rzcynprVA7naqebvq5ivags19PbzcngvovyvglZngevkRAF_9nyybpngbeVF3_RRR21__ba_mreb_funerq_jrnxRi,%function
 b__MAFg3__120__funerq_cge_rzcynprVA7naqebvq5ivags19PbzcngvovyvglZngevkRAF_9nyybpngbeVF3_RRR21__ba_mreb_funerq_jrnxRi:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRA7naqebvq5ivags15ZnavsrfgKzySvyrRRRAF_19__znc_inyhr_pbzcnerVF7_FO_AF_4yrffVF7_RRYo1RRRAF5_VFO_RRR15__rzcynpr_zhygvVWF7_FN_RRRAF_15__gerr_vgrengbeVFO_CAF_11__gerr_abqrVFO_CiRRyRRQcBG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRA7naqebvq5ivags15ZnavsrfgKzySvyrRRRAF_19__znc_inyhr_pbzcnerVF7_FO_AF_4yrffVF7_RRYo1RRRAF5_VFO_RRR15__rzcynpr_zhygvVWF7_FN_RRRAF_15__gerr_vgrengbeVFO_CAF_11__gerr_abqrVFO_CiRRyRRQcBG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRA7naqebvq5ivags15ZnavsrfgKzySvyrRRRAF_19__znc_inyhr_pbzcnerVF7_FO_AF_4yrffVF7_RRYo1RRRAF5_VFO_RRR15__rzcynpr_zhygvVWF7_FN_RRRAF_15__gerr_vgrengbeVFO_CAF_11__gerr_abqrVFO_CiRRyRRQcBG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRA7naqebvq5ivags15ZnavsrfgKzySvyrRRRAF_19__znc_inyhr_pbzcnerVF7_FO_AF_4yrffVF7_RRYo1RRRAF5_VFO_RRR15__rzcynpr_zhygvVWF7_FN_RRRAF_15__gerr_vgrengbeVFO_CAF_11__gerr_abqrVFO_CiRRyRRQcBG_:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF6_RRR21__chfu_onpx_fybj_cnguVF6_RRiBG_
+.weak b__MAFg3__16irpgbeVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF6_RRR21__chfu_onpx_fybj_cnguVF6_RRiBG_
 .type b__MAFg3__16irpgbeVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF6_RRR21__chfu_onpx_fybj_cnguVF6_RRiBG_,%function
 b__MAFg3__16irpgbeVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF6_RRR21__chfu_onpx_fybj_cnguVF6_RRiBG_:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_4cnveVA7naqebvq5ivags15XrearyPbasvtXrlRAF3_22XrearyPbasvtGlcrqInyhrRRRAF_9nyybpngbeVF6_RRR6vafregVAF_11__jenc_vgreVCXF6_RRRRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF6_AF_15vgrengbe_genvgfVFT_R9ersreraprRRR5inyhrRAFO_VCF6_RRR4glcrRFR_FT_FT_
+.weak b__MAFg3__16irpgbeVAF_4cnveVA7naqebvq5ivags15XrearyPbasvtXrlRAF3_22XrearyPbasvtGlcrqInyhrRRRAF_9nyybpngbeVF6_RRR6vafregVAF_11__jenc_vgreVCXF6_RRRRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF6_AF_15vgrengbe_genvgfVFT_R9ersreraprRRR5inyhrRAFO_VCF6_RRR4glcrRFR_FT_FT_
 .type b__MAFg3__16irpgbeVAF_4cnveVA7naqebvq5ivags15XrearyPbasvtXrlRAF3_22XrearyPbasvtGlcrqInyhrRRRAF_9nyybpngbeVF6_RRR6vafregVAF_11__jenc_vgreVCXF6_RRRRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF6_AF_15vgrengbe_genvgfVFT_R9ersreraprRRR5inyhrRAFO_VCF6_RRR4glcrRFR_FT_FT_,%function
 b__MAFg3__16irpgbeVAF_4cnveVA7naqebvq5ivags15XrearyPbasvtXrlRAF3_22XrearyPbasvtGlcrqInyhrRRRAF_9nyybpngbeVF6_RRR6vafregVAF_11__jenc_vgreVCXF6_RRRRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF6_AF_15vgrengbe_genvgfVFT_R9ersreraprRRR5inyhrRAFO_VCF6_RRR4glcrRFR_FT_FT_:
 nop
 .data
-.globl b__MGIA7naqebvq5ivags8UnyTebhcVAF0_11ZnavsrfgUnyRRR
+.weak b__MGIA7naqebvq5ivags8UnyTebhcVAF0_11ZnavsrfgUnyRRR
 .type b__MGIA7naqebvq5ivags8UnyTebhcVAF0_11ZnavsrfgUnyRRR,%object
 b__MGIA7naqebvq5ivags8UnyTebhcVAF0_11ZnavsrfgUnyRRR:
 .space __SIZEOF_POINTER__
@@ -528,7 +528,7 @@
 b__MA7naqebvq5ivags5cnefrREXAFg3__112onfvp_fgevatVpAF1_11pune_genvgfVpRRAF1_9nyybpngbeVpRRRRCAF0_13GenafcbegNepuR:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRA7naqebvq5ivags9ZngevkUnyRRRAF_19__znc_inyhr_pbzcnerVF7_FO_AF_4yrffVF7_RRYo1RRRAF5_VFO_RRR14__nffvta_zhygvVAF_21__gerr_pbafg_vgrengbeVFO_CAF_11__gerr_abqrVFO_CiRRyRRRRiG_FC_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRA7naqebvq5ivags9ZngevkUnyRRRAF_19__znc_inyhr_pbzcnerVF7_FO_AF_4yrffVF7_RRYo1RRRAF5_VFO_RRR14__nffvta_zhygvVAF_21__gerr_pbafg_vgrengbeVFO_CAF_11__gerr_abqrVFO_CiRRyRRRRiG_FC_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRA7naqebvq5ivags9ZngevkUnyRRRAF_19__znc_inyhr_pbzcnerVF7_FO_AF_4yrffVF7_RRYo1RRRAF5_VFO_RRR14__nffvta_zhygvVAF_21__gerr_pbafg_vgrengbeVFO_CAF_11__gerr_abqrVFO_CiRRyRRRRiG_FC_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRA7naqebvq5ivags9ZngevkUnyRRRAF_19__znc_inyhr_pbzcnerVF7_FO_AF_4yrffVF7_RRYo1RRRAF5_VFO_RRR14__nffvta_zhygvVAF_21__gerr_pbafg_vgrengbeVFO_CAF_11__gerr_abqrVFO_CiRRyRRRRiG_FC_:
 nop
@@ -543,7 +543,7 @@
 b__MA7naqebvq5ivags11UnyZnavsrfg6nqqNyyRCF1_CAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRR:
 nop
 .data
-.globl b__MGIAFg3__120__funerq_cge_rzcynprVA7naqebvq5ivags19PbzcngvovyvglZngevkRAF_9nyybpngbeVF3_RRRR
+.weak b__MGIAFg3__120__funerq_cge_rzcynprVA7naqebvq5ivags19PbzcngvovyvglZngevkRAF_9nyybpngbeVF3_RRRR
 .type b__MGIAFg3__120__funerq_cge_rzcynprVA7naqebvq5ivags19PbzcngvovyvglZngevkRAF_9nyybpngbeVF3_RRRR,%object
 b__MGIAFg3__120__funerq_cge_rzcynprVA7naqebvq5ivags19PbzcngvovyvglZngevkRAF_9nyybpngbeVF3_RRRR:
 .space __SIZEOF_POINTER__
@@ -563,7 +563,7 @@
 b__MA7naqebvq5ivags11IvagsBowrpg14TrgEhagvzrVasbRow:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq5ivags7IrefvbaRAF_9nyybpngbeVF3_RRR6nffvtaVCF3_RRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF3_AF_15vgrengbe_genvgfVFN_R9ersreraprRRR5inyhrRiR4glcrRFN_FN_
+.weak b__MAFg3__16irpgbeVA7naqebvq5ivags7IrefvbaRAF_9nyybpngbeVF3_RRR6nffvtaVCF3_RRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF3_AF_15vgrengbe_genvgfVFN_R9ersreraprRRR5inyhrRiR4glcrRFN_FN_
 .type b__MAFg3__16irpgbeVA7naqebvq5ivags7IrefvbaRAF_9nyybpngbeVF3_RRR6nffvtaVCF3_RRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF3_AF_15vgrengbe_genvgfVFN_R9ersreraprRRR5inyhrRiR4glcrRFN_FN_,%function
 b__MAFg3__16irpgbeVA7naqebvq5ivags7IrefvbaRAF_9nyybpngbeVF3_RRR6nffvtaVCF3_RRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF3_AF_15vgrengbe_genvgfVFN_R9ersreraprRRR5inyhrRiR4glcrRFN_FN_:
 nop
@@ -578,12 +578,12 @@
 b__MA7naqebvq5ivags25flfgrzFqxIrefvbaPbairegreR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq5ivags9gb_fgevatVAF0_9UnySbezngRRRAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRREXG_
+.weak b__MA7naqebvq5ivags9gb_fgevatVAF0_9UnySbezngRRRAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRREXG_
 .type b__MA7naqebvq5ivags9gb_fgevatVAF0_9UnySbezngRRRAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRREXG_,%function
 b__MA7naqebvq5ivags9gb_fgevatVAF0_9UnySbezngRRRAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRREXG_:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_4cnveVA7naqebvq5ivags15XrearyPbasvtXrlRAF3_22XrearyPbasvtGlcrqInyhrRRRAF_9nyybpngbeVF6_RRR8__nccraqRz
+.weak b__MAFg3__16irpgbeVAF_4cnveVA7naqebvq5ivags15XrearyPbasvtXrlRAF3_22XrearyPbasvtGlcrqInyhrRRRAF_9nyybpngbeVF6_RRR8__nccraqRz
 .type b__MAFg3__16irpgbeVAF_4cnveVA7naqebvq5ivags15XrearyPbasvtXrlRAF3_22XrearyPbasvtGlcrqInyhrRRRAF_9nyybpngbeVF6_RRR8__nccraqRz,%function
 b__MAFg3__16irpgbeVAF_4cnveVA7naqebvq5ivags15XrearyPbasvtXrlRAF3_22XrearyPbasvtGlcrqInyhrRRRAF_9nyybpngbeVF6_RRR8__nccraqRz:
 nop
@@ -593,12 +593,12 @@
 b__MA7naqebvq5ivags7qrgnvyf19xIraqbeYrtnplZngevkR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__16__gerrVA7naqebvq10SdVafgnaprRAF_4yrffVF2_RRAF_9nyybpngbeVF2_RRR7qrfgeblRCAF_11__gerr_abqrVF2_CiRR
+.weak b__MAFg3__16__gerrVA7naqebvq10SdVafgnaprRAF_4yrffVF2_RRAF_9nyybpngbeVF2_RRR7qrfgeblRCAF_11__gerr_abqrVF2_CiRR
 .type b__MAFg3__16__gerrVA7naqebvq10SdVafgnaprRAF_4yrffVF2_RRAF_9nyybpngbeVF2_RRR7qrfgeblRCAF_11__gerr_abqrVF2_CiRR,%function
 b__MAFg3__16__gerrVA7naqebvq10SdVafgnaprRAF_4yrffVF2_RRAF_9nyybpngbeVF2_RRR7qrfgeblRCAF_11__gerr_abqrVF2_CiRR:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRA7naqebvq5ivags13ZngevkKzySvyrRRRAF_19__znc_inyhr_pbzcnerVF7_FO_AF_4yrffVF7_RRYo1RRRAF5_VFO_RRR7qrfgeblRCAF_11__gerr_abqrVFO_CiRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRA7naqebvq5ivags13ZngevkKzySvyrRRRAF_19__znc_inyhr_pbzcnerVF7_FO_AF_4yrffVF7_RRYo1RRRAF5_VFO_RRR7qrfgeblRCAF_11__gerr_abqrVFO_CiRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRA7naqebvq5ivags13ZngevkKzySvyrRRRAF_19__znc_inyhr_pbzcnerVF7_FO_AF_4yrffVF7_RRYo1RRRAF5_VFO_RRR7qrfgeblRCAF_11__gerr_abqrVFO_CiRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRA7naqebvq5ivags13ZngevkKzySvyrRRRAF_19__znc_inyhr_pbzcnerVF7_FO_AF_4yrffVF7_RRYo1RRRAF5_VFO_RRR7qrfgeblRCAF_11__gerr_abqrVFO_CiRR:
 nop
@@ -613,7 +613,7 @@
 b__MAX7naqebvq5ivags11UnyZnavsrfg24trarengrPbzcngvoyrZngevkRi:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_4yrffVF6_RRAF4_VF6_RRR14__nffvta_zhygvVAF_21__gerr_pbafg_vgrengbeVF6_CAF_11__gerr_abqrVF6_CiRRyRRRRiG_FV_
+.weak b__MAFg3__16__gerrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_4yrffVF6_RRAF4_VF6_RRR14__nffvta_zhygvVAF_21__gerr_pbafg_vgrengbeVF6_CAF_11__gerr_abqrVF6_CiRRyRRRRiG_FV_
 .type b__MAFg3__16__gerrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_4yrffVF6_RRAF4_VF6_RRR14__nffvta_zhygvVAF_21__gerr_pbafg_vgrengbeVF6_CAF_11__gerr_abqrVF6_CiRRyRRRRiG_FV_,%function
 b__MAFg3__16__gerrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_4yrffVF6_RRAF4_VF6_RRR14__nffvta_zhygvVAF_21__gerr_pbafg_vgrengbeVF6_CAF_11__gerr_abqrVF6_CiRRyRRRRiG_FV_:
 nop
@@ -638,7 +638,7 @@
 b__MA7naqebvq5ivags18EhagvzrVasbSrgpure23srgpuXrearyFrcbyvplIrefRi:
 nop
 .data
-.globl b__MGIA7naqebvq5ivags24ZnavsrfgKzySvyrPbairegreR
+.weak b__MGIA7naqebvq5ivags24ZnavsrfgKzySvyrPbairegreR
 .type b__MGIA7naqebvq5ivags24ZnavsrfgKzySvyrPbairegreR,%object
 b__MGIA7naqebvq5ivags24ZnavsrfgKzySvyrPbairegreR:
 .space __SIZEOF_POINTER__
@@ -648,7 +648,7 @@
 b__MAX7naqebvq5ivags11UnyZnavsrfg15purpxHahfrqUnyfREXAF0_19PbzcngvovyvglZngevkR:
 nop
 .text
-.globl b__MA7naqebvq4onfr9CnefrHvagVzRRoCXpCG_F4_o
+.weak b__MA7naqebvq4onfr9CnefrHvagVzRRoCXpCG_F4_o
 .type b__MA7naqebvq4onfr9CnefrHvagVzRRoCXpCG_F4_o,%function
 b__MA7naqebvq4onfr9CnefrHvagVzRRoCXpCG_F4_o:
 nop
@@ -658,17 +658,17 @@
 b__MA7naqebvq5ivags18zngevkUnyPbairegreR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRA7naqebvq5ivags15ZnavsrfgKzySvyrRRRAF_19__znc_inyhr_pbzcnerVF7_FO_AF_4yrffVF7_RRYo1RRRAF5_VFO_RRR7qrfgeblRCAF_11__gerr_abqrVFO_CiRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRA7naqebvq5ivags15ZnavsrfgKzySvyrRRRAF_19__znc_inyhr_pbzcnerVF7_FO_AF_4yrffVF7_RRYo1RRRAF5_VFO_RRR7qrfgeblRCAF_11__gerr_abqrVFO_CiRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRA7naqebvq5ivags15ZnavsrfgKzySvyrRRRAF_19__znc_inyhr_pbzcnerVF7_FO_AF_4yrffVF7_RRYo1RRRAF5_VFO_RRR7qrfgeblRCAF_11__gerr_abqrVFO_CiRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRA7naqebvq5ivags15ZnavsrfgKzySvyrRRRAF_19__znc_inyhr_pbzcnerVF7_FO_AF_4yrffVF7_RRYo1RRRAF5_VFO_RRR7qrfgeblRCAF_11__gerr_abqrVFO_CiRR:
 nop
 .text
-.globl b__MAFg3__117__bjaf_gjb_fgngrfVpRQ2Ri
+.weak b__MAFg3__117__bjaf_gjb_fgngrfVpRQ2Ri
 .type b__MAFg3__117__bjaf_gjb_fgngrfVpRQ2Ri,%function
 b__MAFg3__117__bjaf_gjb_fgngrfVpRQ2Ri:
 nop
 .data
-.globl b__MGIAFg3__117__bjaf_gjb_fgngrfVpRR
+.weak b__MGIAFg3__117__bjaf_gjb_fgngrfVpRR
 .type b__MGIAFg3__117__bjaf_gjb_fgngrfVpRR,%object
 b__MGIAFg3__117__bjaf_gjb_fgngrfVpRR:
 .space __SIZEOF_POINTER__
@@ -683,7 +683,7 @@
 b__MA7naqebvq5ivags5cnefrREXAFg3__112onfvp_fgevatVpAF1_11pune_genvgfVpRRAF1_9nyybpngbeVpRRRRCAF0_8GevfgngrR:
 nop
 .data
-.globl b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR16_AF_13onfvp_bfgernzVpF2_RR
+.weak b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR16_AF_13onfvp_bfgernzVpF2_RR
 .type b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR16_AF_13onfvp_bfgernzVpF2_RR,%object
 b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR16_AF_13onfvp_bfgernzVpF2_RR:
 .space __SIZEOF_POINTER__
@@ -693,12 +693,12 @@
 b__MA7naqebvq5ivags20iaqxYvoenelPbairegreR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIA7naqebvq5ivags12NioPbairegreR
+.weak b__MGIA7naqebvq5ivags12NioPbairegreR
 .type b__MGIA7naqebvq5ivags12NioPbairegreR,%object
 b__MGIA7naqebvq5ivags12NioPbairegreR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIA7naqebvq5ivags16KzyGrkgPbairegreVAF0_21XrearyFrcbyvplIrefvbaRRR
+.weak b__MGIA7naqebvq5ivags16KzyGrkgPbairegreVAF0_21XrearyFrcbyvplIrefvbaRRR
 .type b__MGIA7naqebvq5ivags16KzyGrkgPbairegreVAF0_21XrearyFrcbyvplIrefvbaRRR,%object
 b__MGIA7naqebvq5ivags16KzyGrkgPbairegreVAF0_21XrearyFrcbyvplIrefvbaRRR:
 .space __SIZEOF_POINTER__
@@ -713,7 +713,7 @@
 b__MAX7naqebvq5ivags13GenafcbegNepu7vfInyvqRi:
 nop
 .text
-.globl b__MAXFg3__121__rzcgl_aba_bja_fgngrVpR6__rkrpREAF_7__fgngrVpRR
+.weak b__MAXFg3__121__rzcgl_aba_bja_fgngrVpR6__rkrpREAF_7__fgngrVpRR
 .type b__MAXFg3__121__rzcgl_aba_bja_fgngrVpR6__rkrpREAF_7__fgngrVpRR,%function
 b__MAXFg3__121__rzcgl_aba_bja_fgngrVpR6__rkrpREAF_7__fgngrVpRR:
 nop
@@ -723,7 +723,7 @@
 b__MA7naqebvq5ivags11IvagsBowrpg11TrgVafgnaprRi:
 nop
 .data
-.globl b__MGIA7naqebvq5ivags20UnyZnavsrfgPbairegreR
+.weak b__MGIA7naqebvq5ivags20UnyZnavsrfgPbairegreR
 .type b__MGIA7naqebvq5ivags20UnyZnavsrfgPbairegreR,%object
 b__MGIA7naqebvq5ivags20UnyZnavsrfgPbairegreR:
 .space __SIZEOF_POINTER__
@@ -743,17 +743,17 @@
 b__MA7naqebvq5ivags7qrgnvyf18xBqzYrtnplZnavsrfgR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIA7naqebvq5ivags16KzyAbqrPbairegreVAF0_16IaqxIrefvbaEnatrRRR
+.weak b__MGIA7naqebvq5ivags16KzyAbqrPbairegreVAF0_16IaqxIrefvbaEnatrRRR
 .type b__MGIA7naqebvq5ivags16KzyAbqrPbairegreVAF0_16IaqxIrefvbaEnatrRRR,%object
 b__MGIA7naqebvq5ivags16KzyAbqrPbairegreVAF0_16IaqxIrefvbaEnatrRRR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIA7naqebvq5ivags16KzyAbqrPbairegreVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRRR
+.weak b__MGIA7naqebvq5ivags16KzyAbqrPbairegreVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRRR
 .type b__MGIA7naqebvq5ivags16KzyAbqrPbairegreVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRRR,%object
 b__MGIA7naqebvq5ivags16KzyAbqrPbairegreVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRA7naqebvq5ivags9ZngevkUnyRRRAF_19__znc_inyhr_pbzcnerVF7_FO_AF_4yrffVF7_RRYo1RRRAF5_VFO_RRR7qrfgeblRCAF_11__gerr_abqrVFO_CiRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRA7naqebvq5ivags9ZngevkUnyRRRAF_19__znc_inyhr_pbzcnerVF7_FO_AF_4yrffVF7_RRYo1RRRAF5_VFO_RRR7qrfgeblRCAF_11__gerr_abqrVFO_CiRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRA7naqebvq5ivags9ZngevkUnyRRRAF_19__znc_inyhr_pbzcnerVF7_FO_AF_4yrffVF7_RRYo1RRRAF5_VFO_RRR7qrfgeblRCAF_11__gerr_abqrVFO_CiRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRA7naqebvq5ivags9ZngevkUnyRRRAF_19__znc_inyhr_pbzcnerVF7_FO_AF_4yrffVF7_RRYo1RRRAF5_VFO_RRR7qrfgeblRCAF_11__gerr_abqrVFO_CiRR:
 nop
@@ -763,12 +763,12 @@
 b__MAX7naqebvq5ivags7qrgnvyf19SvyrFlfgrzHaqreCngu10trgEbbgQveRi:
 nop
 .text
-.globl b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR13__cnefr_rtercVCXpRRG_F7_F7_
+.weak b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR13__cnefr_rtercVCXpRRG_F7_F7_
 .type b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR13__cnefr_rtercVCXpRRG_F7_F7_,%function
 b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR13__cnefr_rtercVCXpRRG_F7_F7_:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRA7naqebvq5ivags15ZnavsrfgKzySvyrRRRAF_19__znc_inyhr_pbzcnerVF7_FO_AF_4yrffVF7_RRYo1RRRAF5_VFO_RRR14__nffvta_zhygvVAF_21__gerr_pbafg_vgrengbeVFO_CAF_11__gerr_abqrVFO_CiRRyRRRRiG_FC_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRA7naqebvq5ivags15ZnavsrfgKzySvyrRRRAF_19__znc_inyhr_pbzcnerVF7_FO_AF_4yrffVF7_RRYo1RRRAF5_VFO_RRR14__nffvta_zhygvVAF_21__gerr_pbafg_vgrengbeVFO_CAF_11__gerr_abqrVFO_CiRRyRRRRiG_FC_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRA7naqebvq5ivags15ZnavsrfgKzySvyrRRRAF_19__znc_inyhr_pbzcnerVF7_FO_AF_4yrffVF7_RRYo1RRRAF5_VFO_RRR14__nffvta_zhygvVAF_21__gerr_pbafg_vgrengbeVFO_CAF_11__gerr_abqrVFO_CiRRyRRRRiG_FC_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRA7naqebvq5ivags15ZnavsrfgKzySvyrRRRAF_19__znc_inyhr_pbzcnerVF7_FO_AF_4yrffVF7_RRYo1RRRAF5_VFO_RRR14__nffvta_zhygvVAF_21__gerr_pbafg_vgrengbeVFO_CAF_11__gerr_abqrVFO_CiRRyRRRRiG_FC_:
 nop
@@ -778,7 +778,7 @@
 b__MA7naqebvq5ivags14gbSDAnzrFgevatREXAF0_12IrefvbaEnatrREXAFg3__112onfvp_fgevatVpAF4_11pune_genvgfVpRRAF4_9nyybpngbeVpRRRRFP_:
 nop
 .text
-.globl b__MA7naqebvq5ivags9gb_fgevatVzRRAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRREXG_
+.weak b__MA7naqebvq5ivags9gb_fgevatVzRRAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRREXG_
 .type b__MA7naqebvq5ivags9gb_fgevatVzRRAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRREXG_,%function
 b__MA7naqebvq5ivags9gb_fgevatVzRRAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRREXG_:
 nop
@@ -793,7 +793,7 @@
 b__MAX7naqebvq5ivags11EhagvzrVasb21xrearyFrcbyvplIrefvbaRi:
 nop
 .text
-.globl b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR23__cnefr_punenpgre_pynffVCXpRRG_F7_F7_CAF_20__oenpxrg_rkcerffvbaVpF2_RR
+.weak b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR23__cnefr_punenpgre_pynffVCXpRRG_F7_F7_CAF_20__oenpxrg_rkcerffvbaVpF2_RR
 .type b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR23__cnefr_punenpgre_pynffVCXpRRG_F7_F7_CAF_20__oenpxrg_rkcerffvbaVpF2_RR,%function
 b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR23__cnefr_punenpgre_pynffVCXpRRG_F7_F7_CAF_20__oenpxrg_rkcerffvbaVpF2_RR:
 nop
@@ -808,7 +808,7 @@
 b__MA7naqebvq5ivags12UnyVagresnpr14erzbirVafgnaprREXAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRo:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRF7_RRAF_19__znc_inyhr_pbzcnerVF7_F8_AF_4yrffVF7_RRYo1RRRAF5_VF8_RRR12__svaq_rdhnyVF8_RRECAF_16__gerr_abqr_onfrVCiRRECAF_15__gerr_raq_abqrVFW_RREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRF7_RRAF_19__znc_inyhr_pbzcnerVF7_F8_AF_4yrffVF7_RRYo1RRRAF5_VF8_RRR12__svaq_rdhnyVF8_RRECAF_16__gerr_abqr_onfrVCiRRECAF_15__gerr_raq_abqrVFW_RREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRF7_RRAF_19__znc_inyhr_pbzcnerVF7_F8_AF_4yrffVF7_RRYo1RRRAF5_VF8_RRR12__svaq_rdhnyVF8_RRECAF_16__gerr_abqr_onfrVCiRRECAF_15__gerr_raq_abqrVFW_RREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRF7_RRAF_19__znc_inyhr_pbzcnerVF7_F8_AF_4yrffVF7_RRYo1RRRAF5_VF8_RRR12__svaq_rdhnyVF8_RRECAF_16__gerr_abqr_onfrVCiRRECAF_15__gerr_raq_abqrVFW_RREXG_:
 nop
@@ -818,7 +818,7 @@
 b__MA7naqebvq5ivags14gbSDAnzrFgevatREXAFg3__112onfvp_fgevatVpAF1_11pune_genvgfVpRRAF1_9nyybpngbeVpRRRRF9_:
 nop
 .data
-.globl b__MGPAFg3__114onfvp_vsfgernzVpAF_11pune_genvgfVpRRRR0_AF_13onfvp_vfgernzVpF2_RR
+.weak b__MGPAFg3__114onfvp_vsfgernzVpAF_11pune_genvgfVpRRRR0_AF_13onfvp_vfgernzVpF2_RR
 .type b__MGPAFg3__114onfvp_vsfgernzVpAF_11pune_genvgfVpRRRR0_AF_13onfvp_vfgernzVpF2_RR,%object
 b__MGPAFg3__114onfvp_vsfgernzVpAF_11pune_genvgfVpRRRR0_AF_13onfvp_vfgernzVpF2_RR:
 .space __SIZEOF_POINTER__
@@ -828,12 +828,12 @@
 b__MA7naqebvq5ivags14gbSDAnzrFgevatREXAFg3__112onfvp_fgevatVpAF1_11pune_genvgfVpRRAF1_9nyybpngbeVpRRRREXAF0_12IrefvbaEnatrRF9_F9_:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRA7naqebvq5ivags12UnyVagresnprRRRAF_19__znc_inyhr_pbzcnerVF7_FO_AF_4yrffVF7_RRYo1RRRAF5_VFO_RRR7qrfgeblRCAF_11__gerr_abqrVFO_CiRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRA7naqebvq5ivags12UnyVagresnprRRRAF_19__znc_inyhr_pbzcnerVF7_FO_AF_4yrffVF7_RRYo1RRRAF5_VFO_RRR7qrfgeblRCAF_11__gerr_abqrVFO_CiRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRA7naqebvq5ivags12UnyVagresnprRRRAF_19__znc_inyhr_pbzcnerVF7_FO_AF_4yrffVF7_RRYo1RRRAF5_VFO_RRR7qrfgeblRCAF_11__gerr_abqrVFO_CiRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRA7naqebvq5ivags12UnyVagresnprRRRAF_19__znc_inyhr_pbzcnerVF7_FO_AF_4yrffVF7_RRYo1RRRAF5_VFO_RRR7qrfgeblRCAF_11__gerr_abqrVFO_CiRR:
 nop
 .data
-.globl b__MGIAFg3__123__zngpu_nal_ohg_arjyvarVpRR
+.weak b__MGIAFg3__123__zngpu_nal_ohg_arjyvarVpRR
 .type b__MGIAFg3__123__zngpu_nal_ohg_arjyvarVpRR,%object
 b__MGIAFg3__123__zngpu_nal_ohg_arjyvarVpRR:
 .space __SIZEOF_POINTER__
@@ -843,7 +843,7 @@
 b__MAX7naqebvq5ivags11EhagvzrVasb11xrearyYriryRi:
 nop
 .text
-.globl b__MAFg3__16__gerrVA7naqebvq5ivags16ZnavsrfgVafgnaprRAF_4yrffVF3_RRAF_9nyybpngbeVF3_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVF3_CAF_11__gerr_abqrVF3_CiRRyRR
+.weak b__MAFg3__16__gerrVA7naqebvq5ivags16ZnavsrfgVafgnaprRAF_4yrffVF3_RRAF_9nyybpngbeVF3_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVF3_CAF_11__gerr_abqrVF3_CiRRyRR
 .type b__MAFg3__16__gerrVA7naqebvq5ivags16ZnavsrfgVafgnaprRAF_4yrffVF3_RRAF_9nyybpngbeVF3_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVF3_CAF_11__gerr_abqrVF3_CiRRyRR,%function
 b__MAFg3__16__gerrVA7naqebvq5ivags16ZnavsrfgVafgnaprRAF_4yrffVF3_RRAF_9nyybpngbeVF3_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVF3_CAF_11__gerr_abqrVF3_CiRRyRR:
 nop
@@ -853,12 +853,12 @@
 b__MA7naqebvq5ivags9ZngevkUny14erzbirVafgnaprREXAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRFN_o:
 nop
 .data
-.globl b__MGIAFg3__118__zngpu_pune_vpnfrVpAF_12ertrk_genvgfVpRRRR
+.weak b__MGIAFg3__118__zngpu_pune_vpnfrVpAF_12ertrk_genvgfVpRRRR
 .type b__MGIAFg3__118__zngpu_pune_vpnfrVpAF_12ertrk_genvgfVpRRRR,%object
 b__MGIAFg3__118__zngpu_pune_vpnfrVpAF_12ertrk_genvgfVpRRRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq5ivags5YriryRAF_6irpgbeVCXAF3_12ZngevkXrearyRAF_9nyybpngbeVF8_RRRRRRAF_19__znc_inyhr_pbzcnerVF4_FP_AF_4yrffVF4_RRYo1RRRAF9_VFP_RRR7qrfgeblRCAF_11__gerr_abqrVFP_CiRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq5ivags5YriryRAF_6irpgbeVCXAF3_12ZngevkXrearyRAF_9nyybpngbeVF8_RRRRRRAF_19__znc_inyhr_pbzcnerVF4_FP_AF_4yrffVF4_RRYo1RRRAF9_VFP_RRR7qrfgeblRCAF_11__gerr_abqrVFP_CiRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq5ivags5YriryRAF_6irpgbeVCXAF3_12ZngevkXrearyRAF_9nyybpngbeVF8_RRRRRRAF_19__znc_inyhr_pbzcnerVF4_FP_AF_4yrffVF4_RRYo1RRRAF9_VFP_RRR7qrfgeblRCAF_11__gerr_abqrVFP_CiRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVA7naqebvq5ivags5YriryRAF_6irpgbeVCXAF3_12ZngevkXrearyRAF_9nyybpngbeVF8_RRRRRRAF_19__znc_inyhr_pbzcnerVF4_FP_AF_4yrffVF4_RRYo1RRRAF9_VFP_RRR7qrfgeblRCAF_11__gerr_abqrVFP_CiRR:
 nop
@@ -883,7 +883,7 @@
 b__MA7naqebvq5ivags11UnyZnavsrfg3nqqRBAF0_11ZnavsrfgUnyR:
 nop
 .text
-.globl b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR23__cnefr_rkcerffvba_grezVCXpRRG_F7_F7_CAF_20__oenpxrg_rkcerffvbaVpF2_RR
+.weak b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR23__cnefr_rkcerffvba_grezVCXpRRG_F7_F7_CAF_20__oenpxrg_rkcerffvbaVpF2_RR
 .type b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR23__cnefr_rkcerffvba_grezVCXpRRG_F7_F7_CAF_20__oenpxrg_rkcerffvbaVpF2_RR,%function
 b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR23__cnefr_rkcerffvba_grezVCXpRRG_F7_F7_CAF_20__oenpxrg_rkcerffvbaVpF2_RR:
 nop
@@ -913,7 +913,7 @@
 b__MA7naqebvq5ivags11FcyvgFgevatREXAFg3__112onfvp_fgevatVpAF1_11pune_genvgfVpRRAF1_9nyybpngbeVpRRRRp:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRA7naqebvq5ivags12UnyVagresnprRRRAF_19__znc_inyhr_pbzcnerVF7_FO_AF_4yrffVF7_RRYo1RRRAF5_VFO_RRR25__rzcynpr_havdhr_xrl_netfVF7_WEXF7_FN_RRRAF_4cnveVAF_15__gerr_vgrengbeVFO_CAF_11__gerr_abqrVFO_CiRRyRRoRREXG_QcBG0_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRA7naqebvq5ivags12UnyVagresnprRRRAF_19__znc_inyhr_pbzcnerVF7_FO_AF_4yrffVF7_RRYo1RRRAF5_VFO_RRR25__rzcynpr_havdhr_xrl_netfVF7_WEXF7_FN_RRRAF_4cnveVAF_15__gerr_vgrengbeVFO_CAF_11__gerr_abqrVFO_CiRRyRRoRREXG_QcBG0_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRA7naqebvq5ivags12UnyVagresnprRRRAF_19__znc_inyhr_pbzcnerVF7_FO_AF_4yrffVF7_RRYo1RRRAF5_VFO_RRR25__rzcynpr_havdhr_xrl_netfVF7_WEXF7_FN_RRRAF_4cnveVAF_15__gerr_vgrengbeVFO_CAF_11__gerr_abqrVFO_CiRRyRRoRREXG_QcBG0_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRA7naqebvq5ivags12UnyVagresnprRRRAF_19__znc_inyhr_pbzcnerVF7_FO_AF_4yrffVF7_RRYo1RRRAF5_VFO_RRR25__rzcynpr_havdhr_xrl_netfVF7_WEXF7_FN_RRRAF_4cnveVAF_15__gerr_vgrengbeVFO_CAF_11__gerr_abqrVFO_CiRRyRRoRREXG_QcBG0_:
 nop
@@ -923,7 +923,7 @@
 b__MA7naqebvq5ivags19PbzcngvovyvglZngevk12nqqIraqbeAqxRCF1_CAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRR:
 nop
 .data
-.globl b__MGIAFg3__111__raq_fgngrVpRR
+.weak b__MGIAFg3__111__raq_fgngrVpRR
 .type b__MGIAFg3__111__raq_fgngrVpRR,%object
 b__MGIAFg3__111__raq_fgngrVpRR:
 .space __SIZEOF_POINTER__
@@ -938,7 +938,7 @@
 b__MA7naqebvq5ivags19xrearyVasbPbairegreR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIA7naqebvq5ivags16KzyAbqrPbairegreVAF0_11ZnavsrfgUnyRRR
+.weak b__MGIA7naqebvq5ivags16KzyAbqrPbairegreVAF0_11ZnavsrfgUnyRRR
 .type b__MGIA7naqebvq5ivags16KzyAbqrPbairegreVAF0_11ZnavsrfgUnyRRR,%object
 b__MGIA7naqebvq5ivags16KzyAbqrPbairegreVAF0_11ZnavsrfgUnyRRR:
 .space __SIZEOF_POINTER__
@@ -948,7 +948,7 @@
 b__MGIA7naqebvq5ivags7qrgnvyf14SvyrFlfgrzVzcyR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAXFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR21__zngpu_ng_fgneg_rpznVAF_9nyybpngbeVAF_9fho_zngpuVCXpRRRRRRoF8_F8_EAF_13zngpu_erfhygfVF8_G_RRAF_15ertrk_pbafgnagf15zngpu_synt_glcrRo
+.weak b__MAXFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR21__zngpu_ng_fgneg_rpznVAF_9nyybpngbeVAF_9fho_zngpuVCXpRRRRRRoF8_F8_EAF_13zngpu_erfhygfVF8_G_RRAF_15ertrk_pbafgnagf15zngpu_synt_glcrRo
 .type b__MAXFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR21__zngpu_ng_fgneg_rpznVAF_9nyybpngbeVAF_9fho_zngpuVCXpRRRRRRoF8_F8_EAF_13zngpu_erfhygfVF8_G_RRAF_15ertrk_pbafgnagf15zngpu_synt_glcrRo,%function
 b__MAXFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR21__zngpu_ng_fgneg_rpznVAF_9nyybpngbeVAF_9fho_zngpuVCXpRRRRRRoF8_F8_EAF_13zngpu_erfhygfVF8_G_RRAF_15ertrk_pbafgnagf15zngpu_synt_glcrRo:
 nop
@@ -963,12 +963,12 @@
 b__MA7naqebvq5ivags14ZngevkVafgnaprP1RAF0_9UnySbezngRBAF_10SdVafgnaprRBAF0_12IrefvbaEnatrRoo:
 nop
 .text
-.globl b__MA7naqebvq5ivags15zhygvyvarVaqragVAFg3__16irpgbeVAF2_12onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRAF7_VF9_RRRRRRiEAF2_13onfvp_bfgernzVpF6_RRzEXG_
+.weak b__MA7naqebvq5ivags15zhygvyvarVaqragVAFg3__16irpgbeVAF2_12onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRAF7_VF9_RRRRRRiEAF2_13onfvp_bfgernzVpF6_RRzEXG_
 .type b__MA7naqebvq5ivags15zhygvyvarVaqragVAFg3__16irpgbeVAF2_12onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRAF7_VF9_RRRRRRiEAF2_13onfvp_bfgernzVpF6_RRzEXG_,%function
 b__MA7naqebvq5ivags15zhygvyvarVaqragVAFg3__16irpgbeVAF2_12onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRAF7_VF9_RRRRRRiEAF2_13onfvp_bfgernzVpF6_RRzEXG_:
 nop
 .data
-.globl b__MGIAFg3__116__bjaf_bar_fgngrVpRR
+.weak b__MGIAFg3__116__bjaf_bar_fgngrVpRR
 .type b__MGIAFg3__116__bjaf_bar_fgngrVpRR,%object
 b__MGIAFg3__116__bjaf_bar_fgngrVpRR:
 .space __SIZEOF_POINTER__
@@ -983,22 +983,22 @@
 b__MA7naqebvq5ivags18EhagvzrVasbSrgpure12srgpuPchVasbRi:
 nop
 .text
-.globl b__MAXFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR3fgeRi
+.weak b__MAXFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR3fgeRi
 .type b__MAXFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR3fgeRi,%function
 b__MAXFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR3fgeRi:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq5ivags12IrefvbaEnatrRAF_9nyybpngbeVF3_RRR8__nccraqRz
+.weak b__MAFg3__16irpgbeVA7naqebvq5ivags12IrefvbaEnatrRAF_9nyybpngbeVF3_RRR8__nccraqRz
 .type b__MAFg3__16irpgbeVA7naqebvq5ivags12IrefvbaEnatrRAF_9nyybpngbeVF3_RRR8__nccraqRz,%function
 b__MAFg3__16irpgbeVA7naqebvq5ivags12IrefvbaEnatrRAF_9nyybpngbeVF3_RRR8__nccraqRz:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRA7naqebvq5ivags9ZngevkUnyRRRAF_19__znc_inyhr_pbzcnerVF7_FO_AF_4yrffVF7_RRYo1RRRAF5_VFO_RRR15__rzcynpr_zhygvVWEXAF_4cnveVXF7_FN_RRRRRAF_15__gerr_vgrengbeVFO_CAF_11__gerr_abqrVFO_CiRRyRRQcBG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRA7naqebvq5ivags9ZngevkUnyRRRAF_19__znc_inyhr_pbzcnerVF7_FO_AF_4yrffVF7_RRYo1RRRAF5_VFO_RRR15__rzcynpr_zhygvVWEXAF_4cnveVXF7_FN_RRRRRAF_15__gerr_vgrengbeVFO_CAF_11__gerr_abqrVFO_CiRRyRRQcBG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRA7naqebvq5ivags9ZngevkUnyRRRAF_19__znc_inyhr_pbzcnerVF7_FO_AF_4yrffVF7_RRYo1RRRAF5_VFO_RRR15__rzcynpr_zhygvVWEXAF_4cnveVXF7_FN_RRRRRAF_15__gerr_vgrengbeVFO_CAF_11__gerr_abqrVFO_CiRRyRRQcBG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRA7naqebvq5ivags9ZngevkUnyRRRAF_19__znc_inyhr_pbzcnerVF7_FO_AF_4yrffVF7_RRYo1RRRAF5_VFO_RRR15__rzcynpr_zhygvVWEXAF_4cnveVXF7_FN_RRRRRAF_15__gerr_vgrengbeVFO_CAF_11__gerr_abqrVFO_CiRRyRRQcBG_:
 nop
 .text
-.globl b__MAFg3__16irpgbeVpAF_9nyybpngbeVpRRR21__chfu_onpx_fybj_cnguVEXpRRiBG_
+.weak b__MAFg3__16irpgbeVpAF_9nyybpngbeVpRRR21__chfu_onpx_fybj_cnguVEXpRRiBG_
 .type b__MAFg3__16irpgbeVpAF_9nyybpngbeVpRRR21__chfu_onpx_fybj_cnguVEXpRRiBG_,%function
 b__MAFg3__16irpgbeVpAF_9nyybpngbeVpRRR21__chfu_onpx_fybj_cnguVEXpRRiBG_:
 nop
@@ -1008,22 +1008,22 @@
 b__MAX7naqebvq5ivags14ZngevkVafgnapr8bcgvbanyRi:
 nop
 .data
-.globl b__MGPAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_13onfvp_bfgernzVpF2_RR
+.weak b__MGPAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_13onfvp_bfgernzVpF2_RR
 .type b__MGPAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_13onfvp_bfgernzVpF2_RR,%object
 b__MGPAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_13onfvp_bfgernzVpF2_RR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
+.weak b__MGIAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
 .type b__MGIAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR,%object
 b__MGIAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIA7naqebvq5ivags16KzyAbqrPbairegreVAF0_11UnyZnavsrfgRRR
+.weak b__MGIA7naqebvq5ivags16KzyAbqrPbairegreVAF0_11UnyZnavsrfgRRR
 .type b__MGIA7naqebvq5ivags16KzyAbqrPbairegreVAF0_11UnyZnavsrfgRRR,%object
 b__MGIA7naqebvq5ivags16KzyAbqrPbairegreVAF0_11UnyZnavsrfgRRR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIA7naqebvq5ivags16KzyGrkgPbairegreVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRRR
+.weak b__MGIA7naqebvq5ivags16KzyGrkgPbairegreVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRRR
 .type b__MGIA7naqebvq5ivags16KzyGrkgPbairegreVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRRR,%object
 b__MGIA7naqebvq5ivags16KzyGrkgPbairegreVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRRR:
 .space __SIZEOF_POINTER__
@@ -1043,17 +1043,17 @@
 b__MA7naqebvq5ivags7qrgnvyf26xFlfgrzZnavsrfgSentzragQveR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR22__cnefr_RER_rkcerffvbaVCXpRRG_F7_F7_
+.weak b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR22__cnefr_RER_rkcerffvbaVCXpRRG_F7_F7_
 .type b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR22__cnefr_RER_rkcerffvbaVCXpRRG_F7_F7_,%function
 b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR22__cnefr_RER_rkcerffvbaVCXpRRG_F7_F7_:
 nop
 .data
-.globl b__MGGAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
+.weak b__MGGAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
 .type b__MGGAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR,%object
 b__MGGAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRA7naqebvq5ivags13ZngevkKzySvyrRRRAF_19__znc_inyhr_pbzcnerVF7_FO_AF_4yrffVF7_RRYo1RRRAF5_VFO_RRR15__rzcynpr_zhygvVWEXAF_4cnveVXF7_FN_RRRRRAF_15__gerr_vgrengbeVFO_CAF_11__gerr_abqrVFO_CiRRyRRQcBG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRA7naqebvq5ivags13ZngevkKzySvyrRRRAF_19__znc_inyhr_pbzcnerVF7_FO_AF_4yrffVF7_RRYo1RRRAF5_VFO_RRR15__rzcynpr_zhygvVWEXAF_4cnveVXF7_FN_RRRRRAF_15__gerr_vgrengbeVFO_CAF_11__gerr_abqrVFO_CiRRyRRQcBG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRA7naqebvq5ivags13ZngevkKzySvyrRRRAF_19__znc_inyhr_pbzcnerVF7_FO_AF_4yrffVF7_RRYo1RRRAF5_VFO_RRR15__rzcynpr_zhygvVWEXAF_4cnveVXF7_FN_RRRRRAF_15__gerr_vgrengbeVFO_CAF_11__gerr_abqrVFO_CiRRyRRQcBG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRA7naqebvq5ivags13ZngevkKzySvyrRRRAF_19__znc_inyhr_pbzcnerVF7_FO_AF_4yrffVF7_RRYo1RRRAF5_VFO_RRR15__rzcynpr_zhygvVWEXAF_4cnveVXF7_FN_RRRRRAF_15__gerr_vgrengbeVFO_CAF_11__gerr_abqrVFO_CiRRyRRQcBG_:
 nop
@@ -1078,12 +1078,12 @@
 b__MA7naqebvq5ivagsyfREAFg3__113onfvp_bfgernzVpAF1_11pune_genvgfVpRRRREXAF0_7IrefvbaR:
 nop
 .text
-.globl b__MAFg3__16irpgbeVCXA7naqebvq5ivags11ZnavsrfgUnyRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_
+.weak b__MAFg3__16irpgbeVCXA7naqebvq5ivags11ZnavsrfgUnyRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_
 .type b__MAFg3__16irpgbeVCXA7naqebvq5ivags11ZnavsrfgUnyRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_,%function
 b__MAFg3__16irpgbeVCXA7naqebvq5ivags11ZnavsrfgUnyRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_:
 nop
 .text
-.globl b__MAFg3__120__funerq_cge_rzcynprVA7naqebvq5ivags19PbzcngvovyvglZngevkRAF_9nyybpngbeVF3_RRR16__ba_mreb_funerqRi
+.weak b__MAFg3__120__funerq_cge_rzcynprVA7naqebvq5ivags19PbzcngvovyvglZngevkRAF_9nyybpngbeVF3_RRR16__ba_mreb_funerqRi
 .type b__MAFg3__120__funerq_cge_rzcynprVA7naqebvq5ivags19PbzcngvovyvglZngevkRAF_9nyybpngbeVF3_RRR16__ba_mreb_funerqRi,%function
 b__MAFg3__120__funerq_cge_rzcynprVA7naqebvq5ivags19PbzcngvovyvglZngevkRAF_9nyybpngbeVF3_RRR16__ba_mreb_funerqRi:
 nop
@@ -1093,7 +1093,7 @@
 b__MA7naqebvq5ivags14gbSDAnzrFgevatREXAFg3__112onfvp_fgevatVpAF1_11pune_genvgfVpRRAF1_9nyybpngbeVpRRRRF9_F9_F9_:
 nop
 .text
-.globl b__MA7naqebvq5ivags5cnefrVAF0_7IrefvbaRRRoEXAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRRCAF3_6irpgbeVG_AF7_VFQ_RRRR
+.weak b__MA7naqebvq5ivags5cnefrVAF0_7IrefvbaRRRoEXAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRRCAF3_6irpgbeVG_AF7_VFQ_RRRR
 .type b__MA7naqebvq5ivags5cnefrVAF0_7IrefvbaRRRoEXAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRRCAF3_6irpgbeVG_AF7_VFQ_RRRR,%function
 b__MA7naqebvq5ivags5cnefrVAF0_7IrefvbaRRRoEXAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRRCAF3_6irpgbeVG_AF7_VFQ_RRRR:
 nop
@@ -1103,7 +1103,7 @@
 b__MA7naqebvq5ivags12UnyVagresnpr14vafregVafgnaprREXAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRo:
 nop
 .data
-.globl b__MGIA7naqebvq5ivags16KzyGrkgPbairegreVAF0_7IrefvbaRRR
+.weak b__MGIA7naqebvq5ivags16KzyGrkgPbairegreVAF0_7IrefvbaRRR
 .type b__MGIA7naqebvq5ivags16KzyGrkgPbairegreVAF0_7IrefvbaRRR,%object
 b__MGIA7naqebvq5ivags16KzyGrkgPbairegreVAF0_7IrefvbaRRR:
 .space __SIZEOF_POINTER__
@@ -1113,12 +1113,12 @@
 b__MA7naqebvq5ivags11IvagsBowrpg15VfUnyQrcerpngrqREXAF0_9ZngevkUnyREXAF0_19PbzcngvovyvglZngevkREXAFg3__18shapgvbaVSAF8_6irpgbeVAF8_4cnveVAF8_12onfvp_fgevatVpAF8_11pune_genvgfVpRRAF8_9nyybpngbeVpRRRRAF0_7IrefvbaRRRAFS_VFW_RRRREXFU_FV_FA_EXAFN_VFU_AFS_VFU_RRRRRRRCFU_:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq5ivags12ZngevkXrearyRAF_9nyybpngbeVF3_RRR21__chfu_onpx_fybj_cnguVF3_RRiBG_
+.weak b__MAFg3__16irpgbeVA7naqebvq5ivags12ZngevkXrearyRAF_9nyybpngbeVF3_RRR21__chfu_onpx_fybj_cnguVF3_RRiBG_
 .type b__MAFg3__16irpgbeVA7naqebvq5ivags12ZngevkXrearyRAF_9nyybpngbeVF3_RRR21__chfu_onpx_fybj_cnguVF3_RRiBG_,%function
 b__MAFg3__16irpgbeVA7naqebvq5ivags12ZngevkXrearyRAF_9nyybpngbeVF3_RRR21__chfu_onpx_fybj_cnguVF3_RRiBG_:
 nop
 .text
-.globl b__MAFg3__16__gerrVA7naqebvq5ivags16ZnavsrfgVafgnaprRAF_4yrffVF3_RRAF_9nyybpngbeVF3_RRR15__rzcynpr_zhygvVWEXF3_RRRAF_15__gerr_vgrengbeVF3_CAF_11__gerr_abqrVF3_CiRRyRRQcBG_
+.weak b__MAFg3__16__gerrVA7naqebvq5ivags16ZnavsrfgVafgnaprRAF_4yrffVF3_RRAF_9nyybpngbeVF3_RRR15__rzcynpr_zhygvVWEXF3_RRRAF_15__gerr_vgrengbeVF3_CAF_11__gerr_abqrVF3_CiRRyRRQcBG_
 .type b__MAFg3__16__gerrVA7naqebvq5ivags16ZnavsrfgVafgnaprRAF_4yrffVF3_RRAF_9nyybpngbeVF3_RRR15__rzcynpr_zhygvVWEXF3_RRRAF_15__gerr_vgrengbeVF3_CAF_11__gerr_abqrVF3_CiRRyRRQcBG_,%function
 b__MAFg3__16__gerrVA7naqebvq5ivags16ZnavsrfgVafgnaprRAF_4yrffVF3_RRAF_9nyybpngbeVF3_RRR15__rzcynpr_zhygvVWEXF3_RRRAF_15__gerr_vgrengbeVF3_CAF_11__gerr_abqrVF3_CiRRyRRQcBG_:
 nop
@@ -1128,12 +1128,12 @@
 b__MA7naqebvq5ivags14ZngevkVafgnaprP1REXF1_:
 nop
 .text
-.globl b__MA7naqebvq5ivags9gb_fgevatVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRRRF8_EXG_
+.weak b__MA7naqebvq5ivags9gb_fgevatVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRRRF8_EXG_
 .type b__MA7naqebvq5ivags9gb_fgevatVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRRRF8_EXG_,%function
 b__MA7naqebvq5ivags9gb_fgevatVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRRRF8_EXG_:
 nop
 .data
-.globl b__MGIA7naqebvq5ivags31ZngevkXrearyPbaqvgvbafPbairegreR
+.weak b__MGIA7naqebvq5ivags31ZngevkXrearyPbaqvgvbafPbairegreR
 .type b__MGIA7naqebvq5ivags31ZngevkXrearyPbaqvgvbafPbairegreR,%object
 b__MGIA7naqebvq5ivags31ZngevkXrearyPbaqvgvbafPbairegreR:
 .space __SIZEOF_POINTER__
@@ -1148,7 +1148,7 @@
 b__MA7naqebvq5ivags14ZngevkVafgnaprP2RAF0_9UnySbezngRAF_10SdVafgnaprREXAF0_12IrefvbaEnatrRoo:
 nop
 .data
-.globl b__MGIA7naqebvq5ivags16KzyAbqrPbairegreVAF0_15XrearyPbasvtXrlRRR
+.weak b__MGIA7naqebvq5ivags16KzyAbqrPbairegreVAF0_15XrearyPbasvtXrlRRR
 .type b__MGIA7naqebvq5ivags16KzyAbqrPbairegreVAF0_15XrearyPbasvtXrlRRR,%object
 b__MGIA7naqebvq5ivags16KzyAbqrPbairegreVAF0_15XrearyPbasvtXrlRRR:
 .space __SIZEOF_POINTER__
@@ -1163,37 +1163,37 @@
 b__MA7naqebvq5ivags11EhagvzrVasb19srgpuNyyVasbezngvbaRw:
 nop
 .text
-.globl b__MA7naqebvq5ivags9gb_fgevatVAF_10SdVafgnaprRRRAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRREXG_
+.weak b__MA7naqebvq5ivags9gb_fgevatVAF_10SdVafgnaprRRRAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRREXG_
 .type b__MA7naqebvq5ivags9gb_fgevatVAF_10SdVafgnaprRRRAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRREXG_,%function
 b__MA7naqebvq5ivags9gb_fgevatVAF_10SdVafgnaprRRRAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRREXG_:
 nop
 .data
-.globl b__MGIA7naqebvq5ivags16KzyCnvePbairegreVAFg3__14cnveVAF0_15XrearyPbasvtXrlRAF0_22XrearyPbasvtGlcrqInyhrRRRRR
+.weak b__MGIA7naqebvq5ivags16KzyCnvePbairegreVAFg3__14cnveVAF0_15XrearyPbasvtXrlRAF0_22XrearyPbasvtGlcrqInyhrRRRRR
 .type b__MGIA7naqebvq5ivags16KzyCnvePbairegreVAFg3__14cnveVAF0_15XrearyPbasvtXrlRAF0_22XrearyPbasvtGlcrqInyhrRRRRR,%object
 b__MGIA7naqebvq5ivags16KzyCnvePbairegreVAFg3__14cnveVAF0_15XrearyPbasvtXrlRAF0_22XrearyPbasvtGlcrqInyhrRRRRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRR7frrxbssRkAF_8vbf_onfr7frrxqveRw
+.weak b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRR7frrxbssRkAF_8vbf_onfr7frrxqveRw
 .type b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRR7frrxbssRkAF_8vbf_onfr7frrxqveRw,%function
 b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRR7frrxbssRkAF_8vbf_onfr7frrxqveRw:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRA7naqebvq5ivags11ZnavsrfgUnyRRRAF_19__znc_inyhr_pbzcnerVF7_FO_AF_4yrffVF7_RRYo1RRRAF5_VFO_RRR19__rdhny_enatr_zhygvVF7_RRAF_4cnveVAF_15__gerr_vgrengbeVFO_CAF_11__gerr_abqrVFO_CiRRyRRFC_RREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRA7naqebvq5ivags11ZnavsrfgUnyRRRAF_19__znc_inyhr_pbzcnerVF7_FO_AF_4yrffVF7_RRYo1RRRAF5_VFO_RRR19__rdhny_enatr_zhygvVF7_RRAF_4cnveVAF_15__gerr_vgrengbeVFO_CAF_11__gerr_abqrVFO_CiRRyRRFC_RREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRA7naqebvq5ivags11ZnavsrfgUnyRRRAF_19__znc_inyhr_pbzcnerVF7_FO_AF_4yrffVF7_RRYo1RRRAF5_VFO_RRR19__rdhny_enatr_zhygvVF7_RRAF_4cnveVAF_15__gerr_vgrengbeVFO_CAF_11__gerr_abqrVFO_CiRRyRRFC_RREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRA7naqebvq5ivags11ZnavsrfgUnyRRRAF_19__znc_inyhr_pbzcnerVF7_FO_AF_4yrffVF7_RRYo1RRRAF5_VFO_RRR19__rdhny_enatr_zhygvVF7_RRAF_4cnveVAF_15__gerr_vgrengbeVFO_CAF_11__gerr_abqrVFO_CiRRyRRFC_RREXG_:
 nop
 .text
-.globl b__MAXFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR27__zngpu_ng_fgneg_cbfvk_fhofVAF_9nyybpngbeVAF_9fho_zngpuVCXpRRRRRRoF8_F8_EAF_13zngpu_erfhygfVF8_G_RRAF_15ertrk_pbafgnagf15zngpu_synt_glcrRo
+.weak b__MAXFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR27__zngpu_ng_fgneg_cbfvk_fhofVAF_9nyybpngbeVAF_9fho_zngpuVCXpRRRRRRoF8_F8_EAF_13zngpu_erfhygfVF8_G_RRAF_15ertrk_pbafgnagf15zngpu_synt_glcrRo
 .type b__MAXFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR27__zngpu_ng_fgneg_cbfvk_fhofVAF_9nyybpngbeVAF_9fho_zngpuVCXpRRRRRRoF8_F8_EAF_13zngpu_erfhygfVF8_G_RRAF_15ertrk_pbafgnagf15zngpu_synt_glcrRo,%function
 b__MAXFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR27__zngpu_ng_fgneg_cbfvk_fhofVAF_9nyybpngbeVAF_9fho_zngpuVCXpRRRRRRoF8_F8_EAF_13zngpu_erfhygfVF8_G_RRAF_15ertrk_pbafgnagf15zngpu_synt_glcrRo:
 nop
 .text
-.globl b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR11__chfu_puneRp
+.weak b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR11__chfu_puneRp
 .type b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR11__chfu_puneRp,%function
 b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR11__chfu_puneRp:
 nop
 .text
-.globl b__MA7naqebvq5ivags9gb_fgevatVAF0_8GevfgngrRRRAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRREXG_
+.weak b__MA7naqebvq5ivags9gb_fgevatVAF0_8GevfgngrRRRAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRREXG_
 .type b__MA7naqebvq5ivags9gb_fgevatVAF0_8GevfgngrRRRAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRREXG_,%function
 b__MA7naqebvq5ivags9gb_fgevatVAF0_8GevfgngrRRRAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRREXG_:
 nop
@@ -1203,7 +1203,7 @@
 b__MA7naqebvq5ivagsyfREAFg3__113onfvp_bfgernzVpAF1_11pune_genvgfVpRRRREXAF0_11ZnavsrfgUnyR:
 nop
 .text
-.globl b__MA7naqebvq5ivags9gb_fgevatVAF0_10FpurznGlcrRRRAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRREXG_
+.weak b__MA7naqebvq5ivags9gb_fgevatVAF0_10FpurznGlcrRRRAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRREXG_
 .type b__MA7naqebvq5ivags9gb_fgevatVAF0_10FpurznGlcrRRRAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRREXG_,%function
 b__MA7naqebvq5ivags9gb_fgevatVAF0_10FpurznGlcrRRRAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRREXG_:
 nop
@@ -1213,7 +1213,7 @@
 b__MAX7naqebvq5ivags16ZnavsrfgVafgnapr8vafgnaprRi:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRF7_RRAF_19__znc_inyhr_pbzcnerVF7_F8_AF_4yrffVF7_RRYo1RRRAF5_VF8_RRR21__rzcynpr_havdhr_vzcyVWEXAF_9fho_zngpuVAF_11__jenc_vgreVCXpRRRRF7_RRRAF_4cnveVAF_15__gerr_vgrengbeVF8_CAF_11__gerr_abqrVF8_CiRRyRRoRRQcBG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRF7_RRAF_19__znc_inyhr_pbzcnerVF7_F8_AF_4yrffVF7_RRYo1RRRAF5_VF8_RRR21__rzcynpr_havdhr_vzcyVWEXAF_9fho_zngpuVAF_11__jenc_vgreVCXpRRRRF7_RRRAF_4cnveVAF_15__gerr_vgrengbeVF8_CAF_11__gerr_abqrVF8_CiRRyRRoRRQcBG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRF7_RRAF_19__znc_inyhr_pbzcnerVF7_F8_AF_4yrffVF7_RRYo1RRRAF5_VF8_RRR21__rzcynpr_havdhr_vzcyVWEXAF_9fho_zngpuVAF_11__jenc_vgreVCXpRRRRF7_RRRAF_4cnveVAF_15__gerr_vgrengbeVF8_CAF_11__gerr_abqrVF8_CiRRyRRoRRQcBG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRF7_RRAF_19__znc_inyhr_pbzcnerVF7_F8_AF_4yrffVF7_RRYo1RRRAF5_VF8_RRR21__rzcynpr_havdhr_vzcyVWEXAF_9fho_zngpuVAF_11__jenc_vgreVCXpRRRRF7_RRRAF_4cnveVAF_15__gerr_vgrengbeVF8_CAF_11__gerr_abqrVF8_CiRRyRRoRRQcBG_:
 nop
@@ -1238,12 +1238,12 @@
 b__MA7naqebvq5ivags21irefvbaEnatrPbairegreR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIA7naqebvq5ivags16KzyGrkgPbairegreVAF0_12IrefvbaEnatrRRR
+.weak b__MGIA7naqebvq5ivags16KzyGrkgPbairegreVAF0_12IrefvbaEnatrRRR
 .type b__MGIA7naqebvq5ivags16KzyGrkgPbairegreVAF0_12IrefvbaEnatrRRR,%object
 b__MGIA7naqebvq5ivags16KzyGrkgPbairegreVAF0_12IrefvbaEnatrRRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRR6frgohsRCpy
+.weak b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRR6frgohsRCpy
 .type b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRR6frgohsRCpy,%function
 b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRR6frgohsRCpy:
 nop
@@ -1263,17 +1263,17 @@
 b__MAX7naqebvq5ivags13GenafcbegNepu5rzcglRi:
 nop
 .data
-.globl b__MGIA7naqebvq5ivags20ZnavsrfgUnyPbairegreR
+.weak b__MGIA7naqebvq5ivags20ZnavsrfgUnyPbairegreR
 .type b__MGIA7naqebvq5ivags20ZnavsrfgUnyPbairegreR,%object
 b__MGIA7naqebvq5ivags20ZnavsrfgUnyPbairegreR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIA7naqebvq5ivags18ZngevkUnyPbairegreR
+.weak b__MGIA7naqebvq5ivags18ZngevkUnyPbairegreR
 .type b__MGIA7naqebvq5ivags18ZngevkUnyPbairegreR,%object
 b__MGIA7naqebvq5ivags18ZngevkUnyPbairegreR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIAFg3__120__funerq_cge_cbvagreVCA7naqebvq5ivags19PbzcngvovyvglZngevkRAF_14qrsnhyg_qryrgrVF3_RRAF_9nyybpngbeVF3_RRRR
+.weak b__MGIAFg3__120__funerq_cge_cbvagreVCA7naqebvq5ivags19PbzcngvovyvglZngevkRAF_14qrsnhyg_qryrgrVF3_RRAF_9nyybpngbeVF3_RRRR
 .type b__MGIAFg3__120__funerq_cge_cbvagreVCA7naqebvq5ivags19PbzcngvovyvglZngevkRAF_14qrsnhyg_qryrgrVF3_RRAF_9nyybpngbeVF3_RRRR,%object
 b__MGIAFg3__120__funerq_cge_cbvagreVCA7naqebvq5ivags19PbzcngvovyvglZngevkRAF_14qrsnhyg_qryrgrVF3_RRAF_9nyybpngbeVF3_RRRR:
 .space __SIZEOF_POINTER__
@@ -1288,12 +1288,12 @@
 b__MA7naqebvq5ivags24znavsrfgKzySvyrPbairegreR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq5ivags9gb_fgevatVAF0_15KzyFpurznSbezngRRRAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRREXG_
+.weak b__MA7naqebvq5ivags9gb_fgevatVAF0_15KzyFpurznSbezngRRRAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRREXG_
 .type b__MA7naqebvq5ivags9gb_fgevatVAF0_15KzyFpurznSbezngRRRAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRREXG_,%function
 b__MA7naqebvq5ivags9gb_fgevatVAF0_15KzyFpurznSbezngRRRAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRREXG_:
 nop
 .data
-.globl b__MGIA7naqebvq5ivags16KzyAbqrPbairegreVAF0_4IaqxRRR
+.weak b__MGIA7naqebvq5ivags16KzyAbqrPbairegreVAF0_4IaqxRRR
 .type b__MGIA7naqebvq5ivags16KzyAbqrPbairegreVAF0_4IaqxRRR,%object
 b__MGIA7naqebvq5ivags16KzyAbqrPbairegreVAF0_4IaqxRRR:
 .space __SIZEOF_POINTER__
@@ -1308,22 +1308,22 @@
 b__MA7naqebvq5ivags11UnyZnavsrfg19srgpuNyyVasbezngvbaRCXAF0_10SvyrFlfgrzREXAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRRCFO_:
 nop
 .data
-.globl b__MGIAFg3__111__zngpu_nalVpRR
+.weak b__MGIAFg3__111__zngpu_nalVpRR
 .type b__MGIAFg3__111__zngpu_nalVpRR,%object
 b__MGIAFg3__111__zngpu_nalVpRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__120__funerq_cge_rzcynprVA7naqebvq5ivags11UnyZnavsrfgRAF_9nyybpngbeVF3_RRR21__ba_mreb_funerq_jrnxRi
+.weak b__MAFg3__120__funerq_cge_rzcynprVA7naqebvq5ivags11UnyZnavsrfgRAF_9nyybpngbeVF3_RRR21__ba_mreb_funerq_jrnxRi
 .type b__MAFg3__120__funerq_cge_rzcynprVA7naqebvq5ivags11UnyZnavsrfgRAF_9nyybpngbeVF3_RRR21__ba_mreb_funerq_jrnxRi,%function
 b__MAFg3__120__funerq_cge_rzcynprVA7naqebvq5ivags11UnyZnavsrfgRAF_9nyybpngbeVF3_RRR21__ba_mreb_funerq_jrnxRi:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF6_RRR8__nccraqRz
+.weak b__MAFg3__16irpgbeVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF6_RRR8__nccraqRz
 .type b__MAFg3__16irpgbeVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF6_RRR8__nccraqRz,%function
 b__MAFg3__16irpgbeVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF6_RRR8__nccraqRz:
 nop
 .data
-.globl b__MGIAFg3__110__e_napubeVpRR
+.weak b__MGIAFg3__110__e_napubeVpRR
 .type b__MGIAFg3__110__e_napubeVpRR,%object
 b__MGIAFg3__110__e_napubeVpRR:
 .space __SIZEOF_POINTER__
@@ -1353,32 +1353,32 @@
 b__MAX7naqebvq5ivags12ZngevkXrearyrdREXF1_:
 nop
 .text
-.globl b__MAFg3__16irpgbeVCA7naqebvq5ivags9ZngevkUnyRAF_9nyybpngbeVF4_RRR21__chfu_onpx_fybj_cnguVF4_RRiBG_
+.weak b__MAFg3__16irpgbeVCA7naqebvq5ivags9ZngevkUnyRAF_9nyybpngbeVF4_RRR21__chfu_onpx_fybj_cnguVF4_RRiBG_
 .type b__MAFg3__16irpgbeVCA7naqebvq5ivags9ZngevkUnyRAF_9nyybpngbeVF4_RRR21__chfu_onpx_fybj_cnguVF4_RRiBG_,%function
 b__MAFg3__16irpgbeVCA7naqebvq5ivags9ZngevkUnyRAF_9nyybpngbeVF4_RRR21__chfu_onpx_fybj_cnguVF4_RRiBG_:
 nop
 .text
-.globl b__MAFg3__114__fcyvg_ohssreVCAF_7__fgngrVpRREAF_9nyybpngbeVF3_RRR9chfu_onpxRBF3_
+.weak b__MAFg3__114__fcyvg_ohssreVCAF_7__fgngrVpRREAF_9nyybpngbeVF3_RRR9chfu_onpxRBF3_
 .type b__MAFg3__114__fcyvg_ohssreVCAF_7__fgngrVpRREAF_9nyybpngbeVF3_RRR9chfu_onpxRBF3_,%function
 b__MAFg3__114__fcyvg_ohssreVCAF_7__fgngrVpRREAF_9nyybpngbeVF3_RRR9chfu_onpxRBF3_:
 nop
 .data
-.globl b__MGIAFg3__120__funerq_cge_cbvagreVCA7naqebvq5ivags11IvagsBowrpgRAF_14qrsnhyg_qryrgrVF3_RRAF_9nyybpngbeVF3_RRRR
+.weak b__MGIAFg3__120__funerq_cge_cbvagreVCA7naqebvq5ivags11IvagsBowrpgRAF_14qrsnhyg_qryrgrVF3_RRAF_9nyybpngbeVF3_RRRR
 .type b__MGIAFg3__120__funerq_cge_cbvagreVCA7naqebvq5ivags11IvagsBowrpgRAF_14qrsnhyg_qryrgrVF3_RRAF_9nyybpngbeVF3_RRRR,%object
 b__MGIAFg3__120__funerq_cge_cbvagreVCA7naqebvq5ivags11IvagsBowrpgRAF_14qrsnhyg_qryrgrVF3_RRAF_9nyybpngbeVF3_RRRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR11__chfu_ybbcRzzCAF_16__bjaf_bar_fgngrVpRRzzo
+.weak b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR11__chfu_ybbcRzzCAF_16__bjaf_bar_fgngrVpRRzzo
 .type b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR11__chfu_ybbcRzzCAF_16__bjaf_bar_fgngrVpRRzzo,%function
 b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR11__chfu_ybbcRzzCAF_16__bjaf_bar_fgngrVpRRzzo:
 nop
 .text
-.globl b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR12__cnefr_tercVCXpRRG_F7_F7_
+.weak b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR12__cnefr_tercVCXpRRG_F7_F7_
 .type b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR12__cnefr_tercVCXpRRG_F7_F7_,%function
 b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR12__cnefr_tercVCXpRRG_F7_F7_:
 nop
 .text
-.globl b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR16__chfu_ybbxnurnqREXF3_ow
+.weak b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR16__chfu_ybbxnurnqREXF3_ow
 .type b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR16__chfu_ybbxnurnqREXF3_ow,%function
 b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR16__chfu_ybbxnurnqREXF3_ow:
 nop
@@ -1388,27 +1388,27 @@
 b__MA7naqebvq5ivags11IvagsBowrpg19srgpuBarUnyZnavsrfgREXAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRCAF0_11UnyZnavsrfgRCF8_:
 nop
 .text
-.globl b__MAFg3__124__chg_punenpgre_frdhraprVpAF_11pune_genvgfVpRRRREAF_13onfvp_bfgernzVG_G0_RRF7_CXF4_z
+.weak b__MAFg3__124__chg_punenpgre_frdhraprVpAF_11pune_genvgfVpRRRREAF_13onfvp_bfgernzVG_G0_RRF7_CXF4_z
 .type b__MAFg3__124__chg_punenpgre_frdhraprVpAF_11pune_genvgfVpRRRREAF_13onfvp_bfgernzVG_G0_RRF7_CXF4_z,%function
 b__MAFg3__124__chg_punenpgre_frdhraprVpAF_11pune_genvgfVpRRRREAF_13onfvp_bfgernzVG_G0_RRF7_CXF4_z:
 nop
 .text
-.globl b__MAFg3__112__qrdhr_onfrVAF_7__fgngrVpRRAF_9nyybpngbeVF2_RRR5pyrneRi
+.weak b__MAFg3__112__qrdhr_onfrVAF_7__fgngrVpRRAF_9nyybpngbeVF2_RRR5pyrneRi
 .type b__MAFg3__112__qrdhr_onfrVAF_7__fgngrVpRRAF_9nyybpngbeVF2_RRR5pyrneRi,%function
 b__MAFg3__112__qrdhr_onfrVAF_7__fgngrVpRRAF_9nyybpngbeVF2_RRR5pyrneRi:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRA7naqebvq5ivags12UnyVagresnprRRRAF_19__znc_inyhr_pbzcnerVF7_FO_AF_4yrffVF7_RRYo1RRRAF5_VFO_RRR25__rzcynpr_havdhr_xrl_netfVF7_WF7_FN_RRRAF_4cnveVAF_15__gerr_vgrengbeVFO_CAF_11__gerr_abqrVFO_CiRRyRRoRREXG_QcBG0_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRA7naqebvq5ivags12UnyVagresnprRRRAF_19__znc_inyhr_pbzcnerVF7_FO_AF_4yrffVF7_RRYo1RRRAF5_VFO_RRR25__rzcynpr_havdhr_xrl_netfVF7_WF7_FN_RRRAF_4cnveVAF_15__gerr_vgrengbeVFO_CAF_11__gerr_abqrVFO_CiRRyRRoRREXG_QcBG0_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRA7naqebvq5ivags12UnyVagresnprRRRAF_19__znc_inyhr_pbzcnerVF7_FO_AF_4yrffVF7_RRYo1RRRAF5_VFO_RRR25__rzcynpr_havdhr_xrl_netfVF7_WF7_FN_RRRAF_4cnveVAF_15__gerr_vgrengbeVFO_CAF_11__gerr_abqrVFO_CiRRyRRoRREXG_QcBG0_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRA7naqebvq5ivags12UnyVagresnprRRRAF_19__znc_inyhr_pbzcnerVF7_FO_AF_4yrffVF7_RRYo1RRRAF5_VFO_RRR25__rzcynpr_havdhr_xrl_netfVF7_WF7_FN_RRRAF_4cnveVAF_15__gerr_vgrengbeVFO_CAF_11__gerr_abqrVFO_CiRRyRRoRREXG_QcBG0_:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq5ivags12IrefvbaEnatrRAF_9nyybpngbeVF3_RRR21__chfu_onpx_fybj_cnguVEXF3_RRiBG_
+.weak b__MAFg3__16irpgbeVA7naqebvq5ivags12IrefvbaEnatrRAF_9nyybpngbeVF3_RRR21__chfu_onpx_fybj_cnguVEXF3_RRiBG_
 .type b__MAFg3__16irpgbeVA7naqebvq5ivags12IrefvbaEnatrRAF_9nyybpngbeVF3_RRR21__chfu_onpx_fybj_cnguVEXF3_RRiBG_,%function
 b__MAFg3__16irpgbeVA7naqebvq5ivags12IrefvbaEnatrRAF_9nyybpngbeVF3_RRR21__chfu_onpx_fybj_cnguVEXF3_RRiBG_:
 nop
 .text
-.globl b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRR7frrxcbfRAF_4scbfV9zofgngr_gRRw
+.weak b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRR7frrxcbfRAF_4scbfV9zofgngr_gRRw
 .type b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRR7frrxcbfRAF_4scbfV9zofgngr_gRRw,%function
 b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRR7frrxcbfRAF_4scbfV9zofgngr_gRRw:
 nop
@@ -1418,7 +1418,7 @@
 b__MA7naqebvq5ivags14ZngevkVafgnaprP2Ri:
 nop
 .text
-.globl b__MA7naqebvq5ivags9gb_fgevatVAF0_4NepuRRRAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRREXG_
+.weak b__MA7naqebvq5ivags9gb_fgevatVAF0_4NepuRRRAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRREXG_
 .type b__MA7naqebvq5ivags9gb_fgevatVAF0_4NepuRRRAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRREXG_,%function
 b__MA7naqebvq5ivags9gb_fgevatVAF0_4NepuRRRAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRREXG_:
 nop
@@ -1428,22 +1428,22 @@
 b__MA7naqebvq5ivags19PbzcngvovyvglZngevk7pbzovarRAF0_5YriryRCAFg3__16irpgbeV5AnzrqVF1_RAF3_9nyybpngbeVF6_RRRRCAF3_12onfvp_fgevatVpAF3_11pune_genvgfVpRRAF7_VpRRRR:
 nop
 .text
-.globl b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR20__cnefr_pynff_rfpncrVCXpRRG_F7_F7_EAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRCAF_20__oenpxrg_rkcerffvbaVpF2_RR
+.weak b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR20__cnefr_pynff_rfpncrVCXpRRG_F7_F7_EAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRCAF_20__oenpxrg_rkcerffvbaVpF2_RR
 .type b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR20__cnefr_pynff_rfpncrVCXpRRG_F7_F7_EAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRCAF_20__oenpxrg_rkcerffvbaVpF2_RR,%function
 b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR20__cnefr_pynff_rfpncrVCXpRRG_F7_F7_EAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRCAF_20__oenpxrg_rkcerffvbaVpF2_RR:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRF7_RRAF_19__znc_inyhr_pbzcnerVF7_F8_AF_4yrffVF7_RRYo1RRRAF5_VF8_RRR30__rzcynpr_uvag_havdhr_xrl_netfVF7_WEAF_4cnveVF7_F7_RRRRRAF_15__gerr_vgrengbeVF8_CAF_11__gerr_abqrVF8_CiRRyRRAF_21__gerr_pbafg_vgrengbeVF8_FA_yRREXG_QcBG0_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRF7_RRAF_19__znc_inyhr_pbzcnerVF7_F8_AF_4yrffVF7_RRYo1RRRAF5_VF8_RRR30__rzcynpr_uvag_havdhr_xrl_netfVF7_WEAF_4cnveVF7_F7_RRRRRAF_15__gerr_vgrengbeVF8_CAF_11__gerr_abqrVF8_CiRRyRRAF_21__gerr_pbafg_vgrengbeVF8_FA_yRREXG_QcBG0_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRF7_RRAF_19__znc_inyhr_pbzcnerVF7_F8_AF_4yrffVF7_RRYo1RRRAF5_VF8_RRR30__rzcynpr_uvag_havdhr_xrl_netfVF7_WEAF_4cnveVF7_F7_RRRRRAF_15__gerr_vgrengbeVF8_CAF_11__gerr_abqrVF8_CiRRyRRAF_21__gerr_pbafg_vgrengbeVF8_FA_yRREXG_QcBG0_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRF7_RRAF_19__znc_inyhr_pbzcnerVF7_F8_AF_4yrffVF7_RRYo1RRRAF5_VF8_RRR30__rzcynpr_uvag_havdhr_xrl_netfVF7_WEAF_4cnveVF7_F7_RRRRRAF_15__gerr_vgrengbeVF8_CAF_11__gerr_abqrVF8_CiRRyRRAF_21__gerr_pbafg_vgrengbeVF8_FA_yRREXG_QcBG0_:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq5ivags12IrefvbaEnatrRAF_9nyybpngbeVF3_RRR6nffvtaVCF3_RRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF3_AF_15vgrengbe_genvgfVFN_R9ersreraprRRR5inyhrRiR4glcrRFN_FN_
+.weak b__MAFg3__16irpgbeVA7naqebvq5ivags12IrefvbaEnatrRAF_9nyybpngbeVF3_RRR6nffvtaVCF3_RRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF3_AF_15vgrengbe_genvgfVFN_R9ersreraprRRR5inyhrRiR4glcrRFN_FN_
 .type b__MAFg3__16irpgbeVA7naqebvq5ivags12IrefvbaEnatrRAF_9nyybpngbeVF3_RRR6nffvtaVCF3_RRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF3_AF_15vgrengbe_genvgfVFN_R9ersreraprRRR5inyhrRiR4glcrRFN_FN_,%function
 b__MAFg3__16irpgbeVA7naqebvq5ivags12IrefvbaEnatrRAF_9nyybpngbeVF3_RRR6nffvtaVCF3_RRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF3_AF_15vgrengbe_genvgfVFN_R9ersreraprRRR5inyhrRiR4glcrRFN_FN_:
 nop
 .text
-.globl b__MA7naqebvq5ivags7qrgnvyf19srgpuNyyVasbezngvbaVAF0_11UnyZnavsrfgRRRvCXAF0_10SvyrFlfgrzREXAFg3__112onfvp_fgevatVpAF7_11pune_genvgfVpRRAF7_9nyybpngbeVpRRRREXAF0_12KzyPbairegreVG_RRCFU_CFQ_
+.weak b__MA7naqebvq5ivags7qrgnvyf19srgpuNyyVasbezngvbaVAF0_11UnyZnavsrfgRRRvCXAF0_10SvyrFlfgrzREXAFg3__112onfvp_fgevatVpAF7_11pune_genvgfVpRRAF7_9nyybpngbeVpRRRREXAF0_12KzyPbairegreVG_RRCFU_CFQ_
 .type b__MA7naqebvq5ivags7qrgnvyf19srgpuNyyVasbezngvbaVAF0_11UnyZnavsrfgRRRvCXAF0_10SvyrFlfgrzREXAFg3__112onfvp_fgevatVpAF7_11pune_genvgfVpRRAF7_9nyybpngbeVpRRRREXAF0_12KzyPbairegreVG_RRCFU_CFQ_,%function
 b__MA7naqebvq5ivags7qrgnvyf19srgpuNyyVasbezngvbaVAF0_11UnyZnavsrfgRRRvCXAF0_10SvyrFlfgrzREXAFg3__112onfvp_fgevatVpAF7_11pune_genvgfVpRRAF7_9nyybpngbeVpRRRREXAF0_12KzyPbairegreVG_RRCFU_CFQ_:
 nop
@@ -1463,12 +1463,12 @@
 b__MA7naqebvq5ivagsyfREAFg3__113onfvp_bfgernzVpAF1_11pune_genvgfVpRRRRAF0_5YriryR:
 nop
 .data
-.globl b__MGIA7naqebvq5ivags16KzyAbqrPbairegreVAF0_13ZngevkKzySvyrRRR
+.weak b__MGIA7naqebvq5ivags16KzyAbqrPbairegreVAF0_13ZngevkKzySvyrRRR
 .type b__MGIA7naqebvq5ivags16KzyAbqrPbairegreVAF0_13ZngevkKzySvyrRRR,%object
 b__MGIA7naqebvq5ivags16KzyAbqrPbairegreVAF0_13ZngevkKzySvyrRRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR8biresybjRv
+.weak b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR8biresybjRv
 .type b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR8biresybjRv,%function
 b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR8biresybjRv:
 nop
@@ -1478,7 +1478,7 @@
 b__MA7naqebvq5ivags31zngevkXrearyPbaqvgvbafPbairegreR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__114__fcyvg_ohssreVCAF_7__fgngrVpRRAF_9nyybpngbeVF3_RRR10chfu_sebagREXF3_
+.weak b__MAFg3__114__fcyvg_ohssreVCAF_7__fgngrVpRRAF_9nyybpngbeVF3_RRR10chfu_sebagREXF3_
 .type b__MAFg3__114__fcyvg_ohssreVCAF_7__fgngrVpRRAF_9nyybpngbeVF3_RRR10chfu_sebagREXF3_,%function
 b__MAFg3__114__fcyvg_ohssreVCAF_7__fgngrVpRRAF_9nyybpngbeVF3_RRR10chfu_sebagREXF3_:
 nop
@@ -1488,7 +1488,7 @@
 b__MA7naqebvq5ivags5cnefrREXAFg3__112onfvp_fgevatVpAF1_11pune_genvgfVpRRAF1_9nyybpngbeVpRRRRCAF0_5YriryR:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq5ivags9ZngevkUnyRAF_9nyybpngbeVF3_RRR8__nccraqRz
+.weak b__MAFg3__16irpgbeVA7naqebvq5ivags9ZngevkUnyRAF_9nyybpngbeVF3_RRR8__nccraqRz
 .type b__MAFg3__16irpgbeVA7naqebvq5ivags9ZngevkUnyRAF_9nyybpngbeVF3_RRR8__nccraqRz,%function
 b__MAFg3__16irpgbeVA7naqebvq5ivags9ZngevkUnyRAF_9nyybpngbeVF3_RRR8__nccraqRz:
 nop
@@ -1503,47 +1503,47 @@
 b__MA7naqebvq5ivags21tUnyZnavsrfgPbairegreR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIA7naqebvq5ivags12KzySvyrTebhcVAF0_13ZngevkKzySvyrRRR
+.weak b__MGIA7naqebvq5ivags12KzySvyrTebhcVAF0_13ZngevkKzySvyrRRR
 .type b__MGIA7naqebvq5ivags12KzySvyrTebhcVAF0_13ZngevkKzySvyrRRR,%object
 b__MGIA7naqebvq5ivags12KzySvyrTebhcVAF0_13ZngevkKzySvyrRRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__16__gerrVA7naqebvq5ivags16ZnavsrfgVafgnaprRAF_4yrffVF3_RRAF_9nyybpngbeVF3_RRR21__rzcynpr_havdhr_vzcyVWAF1_10SdVafgnaprREAF2_13GenafcbegNepuREAF2_9UnySbezngRRRRAF_4cnveVAF_15__gerr_vgrengbeVF3_CAF_11__gerr_abqrVF3_CiRRyRRoRRQcBG_
+.weak b__MAFg3__16__gerrVA7naqebvq5ivags16ZnavsrfgVafgnaprRAF_4yrffVF3_RRAF_9nyybpngbeVF3_RRR21__rzcynpr_havdhr_vzcyVWAF1_10SdVafgnaprREAF2_13GenafcbegNepuREAF2_9UnySbezngRRRRAF_4cnveVAF_15__gerr_vgrengbeVF3_CAF_11__gerr_abqrVF3_CiRRyRRoRRQcBG_
 .type b__MAFg3__16__gerrVA7naqebvq5ivags16ZnavsrfgVafgnaprRAF_4yrffVF3_RRAF_9nyybpngbeVF3_RRR21__rzcynpr_havdhr_vzcyVWAF1_10SdVafgnaprREAF2_13GenafcbegNepuREAF2_9UnySbezngRRRRAF_4cnveVAF_15__gerr_vgrengbeVF3_CAF_11__gerr_abqrVF3_CiRRyRRoRRQcBG_,%function
 b__MAFg3__16__gerrVA7naqebvq5ivags16ZnavsrfgVafgnaprRAF_4yrffVF3_RRAF_9nyybpngbeVF3_RRR21__rzcynpr_havdhr_vzcyVWAF1_10SdVafgnaprREAF2_13GenafcbegNepuREAF2_9UnySbezngRRRRAF_4cnveVAF_15__gerr_vgrengbeVF3_CAF_11__gerr_abqrVF3_CiRRyRRoRRQcBG_:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_4yrffVF6_RRAF4_VF6_RRR12__svaq_rdhnyVF6_RRECAF_16__gerr_abqr_onfrVCiRRAF_21__gerr_pbafg_vgrengbeVF6_CAF_11__gerr_abqrVF6_FQ_RRyRRECAF_15__gerr_raq_abqrVFS_RRFT_EXG_
+.weak b__MAFg3__16__gerrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_4yrffVF6_RRAF4_VF6_RRR12__svaq_rdhnyVF6_RRECAF_16__gerr_abqr_onfrVCiRRAF_21__gerr_pbafg_vgrengbeVF6_CAF_11__gerr_abqrVF6_FQ_RRyRRECAF_15__gerr_raq_abqrVFS_RRFT_EXG_
 .type b__MAFg3__16__gerrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_4yrffVF6_RRAF4_VF6_RRR12__svaq_rdhnyVF6_RRECAF_16__gerr_abqr_onfrVCiRRAF_21__gerr_pbafg_vgrengbeVF6_CAF_11__gerr_abqrVF6_FQ_RRyRRECAF_15__gerr_raq_abqrVFS_RRFT_EXG_,%function
 b__MAFg3__16__gerrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_4yrffVF6_RRAF4_VF6_RRR12__svaq_rdhnyVF6_RRECAF_16__gerr_abqr_onfrVCiRRAF_21__gerr_pbafg_vgrengbeVF6_CAF_11__gerr_abqrVF6_FQ_RRyRRECAF_15__gerr_raq_abqrVFS_RRFT_EXG_:
 nop
 .text
-.globl b__MAXFg3__110__y_napubeVpR6__rkrpREAF_7__fgngrVpRR
+.weak b__MAXFg3__110__y_napubeVpR6__rkrpREAF_7__fgngrVpRR
 .type b__MAXFg3__110__y_napubeVpR6__rkrpREAF_7__fgngrVpRR,%function
 b__MAXFg3__110__y_napubeVpR6__rkrpREAF_7__fgngrVpRR:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRA7naqebvq5ivags11ZnavsrfgUnyRRRAF_19__znc_inyhr_pbzcnerVF7_FO_AF_4yrffVF7_RRYo1RRRAF5_VFO_RRR15__rzcynpr_zhygvVWEXAF_4cnveVXF7_FN_RRRRRAF_15__gerr_vgrengbeVFO_CAF_11__gerr_abqrVFO_CiRRyRRQcBG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRA7naqebvq5ivags11ZnavsrfgUnyRRRAF_19__znc_inyhr_pbzcnerVF7_FO_AF_4yrffVF7_RRYo1RRRAF5_VFO_RRR15__rzcynpr_zhygvVWEXAF_4cnveVXF7_FN_RRRRRAF_15__gerr_vgrengbeVFO_CAF_11__gerr_abqrVFO_CiRRyRRQcBG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRA7naqebvq5ivags11ZnavsrfgUnyRRRAF_19__znc_inyhr_pbzcnerVF7_FO_AF_4yrffVF7_RRYo1RRRAF5_VFO_RRR15__rzcynpr_zhygvVWEXAF_4cnveVXF7_FN_RRRRRAF_15__gerr_vgrengbeVFO_CAF_11__gerr_abqrVFO_CiRRyRRQcBG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRA7naqebvq5ivags11ZnavsrfgUnyRRRAF_19__znc_inyhr_pbzcnerVF7_FO_AF_4yrffVF7_RRYo1RRRAF5_VFO_RRR15__rzcynpr_zhygvVWEXAF_4cnveVXF7_FN_RRRRRAF_15__gerr_vgrengbeVFO_CAF_11__gerr_abqrVFO_CiRRyRRQcBG_:
 nop
 .data
-.globl b__MGIA7naqebvq5ivags16KzyAbqrPbairegreVAF0_12UnyVagresnprRRR
+.weak b__MGIA7naqebvq5ivags16KzyAbqrPbairegreVAF0_12UnyVagresnprRRR
 .type b__MGIA7naqebvq5ivags16KzyAbqrPbairegreVAF0_12UnyVagresnprRRR,%object
 b__MGIA7naqebvq5ivags16KzyAbqrPbairegreVAF0_12UnyVagresnprRRR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIA7naqebvq5ivags16KzyAbqrPbairegreVAF0_12ZngevkXrearyRRR
+.weak b__MGIA7naqebvq5ivags16KzyAbqrPbairegreVAF0_12ZngevkXrearyRRR
 .type b__MGIA7naqebvq5ivags16KzyAbqrPbairegreVAF0_12ZngevkXrearyRRR,%object
 b__MGIA7naqebvq5ivags16KzyAbqrPbairegreVAF0_12ZngevkXrearyRRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR25__cnefr_rdhvinyrapr_pynffVCXpRRG_F7_F7_CAF_20__oenpxrg_rkcerffvbaVpF2_RR
+.weak b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR25__cnefr_rdhvinyrapr_pynffVCXpRRG_F7_F7_CAF_20__oenpxrg_rkcerffvbaVpF2_RR
 .type b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR25__cnefr_rdhvinyrapr_pynffVCXpRRG_F7_F7_CAF_20__oenpxrg_rkcerffvbaVpF2_RR,%function
 b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR25__cnefr_rdhvinyrapr_pynffVCXpRRG_F7_F7_CAF_20__oenpxrg_rkcerffvbaVpF2_RR:
 nop
 .text
-.globl b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR32__cnefr_bar_pune_be_pbyy_ryrz_ERVCXpRRG_F7_F7_
+.weak b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR32__cnefr_bar_pune_be_pbyy_ryrz_ERVCXpRRG_F7_F7_
 .type b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR32__cnefr_bar_pune_be_pbyy_ryrz_ERVCXpRRG_F7_F7_,%function
 b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR32__cnefr_bar_pune_be_pbyy_ryrz_ERVCXpRRG_F7_F7_:
 nop
@@ -1553,22 +1553,22 @@
 b__MA7naqebvq5ivags21zngevkXrearyPbairegreR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRA7naqebvq5ivags9ZngevkUnyRRRAF_19__znc_inyhr_pbzcnerVF7_FO_AF_4yrffVF7_RRYo1RRRAF5_VFO_RRR19__rdhny_enatr_zhygvVF7_RRAF_4cnveVAF_15__gerr_vgrengbeVFO_CAF_11__gerr_abqrVFO_CiRRyRRFC_RREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRA7naqebvq5ivags9ZngevkUnyRRRAF_19__znc_inyhr_pbzcnerVF7_FO_AF_4yrffVF7_RRYo1RRRAF5_VFO_RRR19__rdhny_enatr_zhygvVF7_RRAF_4cnveVAF_15__gerr_vgrengbeVFO_CAF_11__gerr_abqrVFO_CiRRyRRFC_RREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRA7naqebvq5ivags9ZngevkUnyRRRAF_19__znc_inyhr_pbzcnerVF7_FO_AF_4yrffVF7_RRYo1RRRAF5_VFO_RRR19__rdhny_enatr_zhygvVF7_RRAF_4cnveVAF_15__gerr_vgrengbeVFO_CAF_11__gerr_abqrVFO_CiRRyRRFC_RREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRA7naqebvq5ivags9ZngevkUnyRRRAF_19__znc_inyhr_pbzcnerVF7_FO_AF_4yrffVF7_RRYo1RRRAF5_VFO_RRR19__rdhny_enatr_zhygvVF7_RRAF_4cnveVAF_15__gerr_vgrengbeVFO_CAF_11__gerr_abqrVFO_CiRRyRRFC_RREXG_:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF6_RRR21__chfu_onpx_fybj_cnguVEXF6_RRiBG_
+.weak b__MAFg3__16irpgbeVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF6_RRR21__chfu_onpx_fybj_cnguVEXF6_RRiBG_
 .type b__MAFg3__16irpgbeVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF6_RRR21__chfu_onpx_fybj_cnguVEXF6_RRiBG_,%function
 b__MAFg3__16irpgbeVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF6_RRR21__chfu_onpx_fybj_cnguVEXF6_RRiBG_:
 nop
 .text
-.globl b__MA7naqebvq5ivags9gb_fgevatVAF0_15XrearyPbasvtXrlRRRAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRREXG_
+.weak b__MA7naqebvq5ivags9gb_fgevatVAF0_15XrearyPbasvtXrlRRRAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRREXG_
 .type b__MA7naqebvq5ivags9gb_fgevatVAF0_15XrearyPbasvtXrlRRRAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRREXG_,%function
 b__MA7naqebvq5ivags9gb_fgevatVAF0_15XrearyPbasvtXrlRRRAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRREXG_:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRA7naqebvq5ivags12UnyVagresnprRRRAF_19__znc_inyhr_pbzcnerVF7_FO_AF_4yrffVF7_RRYo1RRRAF5_VFO_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVCiRRAF_21__gerr_pbafg_vgrengbeVFO_CAF_11__gerr_abqrVFO_FX_RRyRRECAF_15__gerr_raq_abqrVFZ_RRFA_EXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRA7naqebvq5ivags12UnyVagresnprRRRAF_19__znc_inyhr_pbzcnerVF7_FO_AF_4yrffVF7_RRYo1RRRAF5_VFO_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVCiRRAF_21__gerr_pbafg_vgrengbeVFO_CAF_11__gerr_abqrVFO_FX_RRyRRECAF_15__gerr_raq_abqrVFZ_RRFA_EXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRA7naqebvq5ivags12UnyVagresnprRRRAF_19__znc_inyhr_pbzcnerVF7_FO_AF_4yrffVF7_RRYo1RRRAF5_VFO_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVCiRRAF_21__gerr_pbafg_vgrengbeVFO_CAF_11__gerr_abqrVFO_FX_RRyRRECAF_15__gerr_raq_abqrVFZ_RRFA_EXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRA7naqebvq5ivags12UnyVagresnprRRRAF_19__znc_inyhr_pbzcnerVF7_FO_AF_4yrffVF7_RRYo1RRRAF5_VFO_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVCiRRAF_21__gerr_pbafg_vgrengbeVFO_CAF_11__gerr_abqrVFO_FX_RRyRRECAF_15__gerr_raq_abqrVFZ_RRFA_EXG_:
 nop
@@ -1588,7 +1588,7 @@
 b__MA7naqebvq5ivags22XrearyPbasvtGlcrqInyhrP2RBAFg3__14cnveVzzRR:
 nop
 .text
-.globl b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR18__cnefr_njx_rfpncrVCXpRRG_F7_F7_CAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
+.weak b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR18__cnefr_njx_rfpncrVCXpRRG_F7_F7_CAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
 .type b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR18__cnefr_njx_rfpncrVCXpRRG_F7_F7_CAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR,%function
 b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR18__cnefr_njx_rfpncrVCXpRRG_F7_F7_CAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR:
 nop
@@ -1603,7 +1603,7 @@
 b__MA7naqebvq5ivags15rkcnaqVafgnaprfREXAF0_9ZngevkUnyREXAF0_12IrefvbaEnatrRo:
 nop
 .data
-.globl b__MGIA7naqebvq5ivags16KzyAbqrPbairegreVAF0_22XrearyPbasvtGlcrqInyhrRRR
+.weak b__MGIA7naqebvq5ivags16KzyAbqrPbairegreVAF0_22XrearyPbasvtGlcrqInyhrRRR
 .type b__MGIA7naqebvq5ivags16KzyAbqrPbairegreVAF0_22XrearyPbasvtGlcrqInyhrRRR,%object
 b__MGIA7naqebvq5ivags16KzyAbqrPbairegreVAF0_22XrearyPbasvtGlcrqInyhrRRR:
 .space __SIZEOF_POINTER__
@@ -1613,12 +1613,12 @@
 b__MAX7naqebvq5ivags7qrgnvyf14SvyrFlfgrzAbBc9yvfgSvyrfREXAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRRCAF3_6irpgbeVF9_AF7_VF9_RRRRCF9_:
 nop
 .text
-.globl b__MAFg3__117__bjaf_gjb_fgngrfVpRQ0Ri
+.weak b__MAFg3__117__bjaf_gjb_fgngrfVpRQ0Ri
 .type b__MAFg3__117__bjaf_gjb_fgngrfVpRQ0Ri,%function
 b__MAFg3__117__bjaf_gjb_fgngrfVpRQ0Ri:
 nop
 .data
-.globl b__MGIAFg3__115__jbeq_obhaqnelVpAF_12ertrk_genvgfVpRRRR
+.weak b__MGIAFg3__115__jbeq_obhaqnelVpAF_12ertrk_genvgfVpRRRR
 .type b__MGIAFg3__115__jbeq_obhaqnelVpAF_12ertrk_genvgfVpRRRR,%object
 b__MGIAFg3__115__jbeq_obhaqnelVpAF_12ertrk_genvgfVpRRRR:
 .space __SIZEOF_POINTER__
@@ -1628,12 +1628,12 @@
 b__MA7naqebvq5ivags16ZnavsrfgVafgnaprP1RBF1_:
 nop
 .text
-.globl b__MA7naqebvq5ivags9gb_fgevatVAF0_7IrefvbaRRRAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRREXG_
+.weak b__MA7naqebvq5ivags9gb_fgevatVAF0_7IrefvbaRRRAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRREXG_
 .type b__MA7naqebvq5ivags9gb_fgevatVAF0_7IrefvbaRRRAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRREXG_,%function
 b__MA7naqebvq5ivags9gb_fgevatVAF0_7IrefvbaRRRAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRREXG_:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRA7naqebvq5ivags12UnyVagresnprRRRAF_19__znc_inyhr_pbzcnerVF7_FO_AF_4yrffVF7_RRYo1RRRAF5_VFO_RRR15__rzcynpr_zhygvVWEXAF_4cnveVXF7_FN_RRRRRAF_15__gerr_vgrengbeVFO_CAF_11__gerr_abqrVFO_CiRRyRRQcBG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRA7naqebvq5ivags12UnyVagresnprRRRAF_19__znc_inyhr_pbzcnerVF7_FO_AF_4yrffVF7_RRYo1RRRAF5_VFO_RRR15__rzcynpr_zhygvVWEXAF_4cnveVXF7_FN_RRRRRAF_15__gerr_vgrengbeVFO_CAF_11__gerr_abqrVFO_CiRRyRRQcBG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRA7naqebvq5ivags12UnyVagresnprRRRAF_19__znc_inyhr_pbzcnerVF7_FO_AF_4yrffVF7_RRYo1RRRAF5_VFO_RRR15__rzcynpr_zhygvVWEXAF_4cnveVXF7_FN_RRRRRAF_15__gerr_vgrengbeVFO_CAF_11__gerr_abqrVFO_CiRRyRRQcBG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRA7naqebvq5ivags12UnyVagresnprRRRAF_19__znc_inyhr_pbzcnerVF7_FO_AF_4yrffVF7_RRYo1RRRAF5_VFO_RRR15__rzcynpr_zhygvVWEXAF_4cnveVXF7_FN_RRRRRAF_15__gerr_vgrengbeVFO_CAF_11__gerr_abqrVFO_CiRRyRRQcBG_:
 nop
@@ -1643,7 +1643,7 @@
 b__MA7naqebvq5ivags22XrearyPbasvtGlcrqInyhrP2RBAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRR:
 nop
 .text
-.globl b__MAFg3__114__fcyvg_ohssreVCAF_7__fgngrVpRREAF_9nyybpngbeVF3_RRR10chfu_sebagREXF3_
+.weak b__MAFg3__114__fcyvg_ohssreVCAF_7__fgngrVpRREAF_9nyybpngbeVF3_RRR10chfu_sebagREXF3_
 .type b__MAFg3__114__fcyvg_ohssreVCAF_7__fgngrVpRREAF_9nyybpngbeVF3_RRR10chfu_sebagREXF3_,%function
 b__MAFg3__114__fcyvg_ohssreVCAF_7__fgngrVpRREAF_9nyybpngbeVF3_RRR10chfu_sebagREXF3_:
 nop
@@ -1653,17 +1653,17 @@
 b__MA7naqebvq5ivags5cnefrREXAFg3__112onfvp_fgevatVpAF1_11pune_genvgfVpRRAF1_9nyybpngbeVpRRRRCAF0_9ZngevkUnyR:
 nop
 .text
-.globl b__MAFg3__16__gerrVA7naqebvq10SdVafgnaprRAF_4yrffVF2_RRAF_9nyybpngbeVF2_RRR12__svaq_rdhnyVF2_RRECAF_16__gerr_abqr_onfrVCiRRAF_21__gerr_pbafg_vgrengbeVF2_CAF_11__gerr_abqrVF2_FN_RRyRRECAF_15__gerr_raq_abqrVFP_RRFQ_EXG_
+.weak b__MAFg3__16__gerrVA7naqebvq10SdVafgnaprRAF_4yrffVF2_RRAF_9nyybpngbeVF2_RRR12__svaq_rdhnyVF2_RRECAF_16__gerr_abqr_onfrVCiRRAF_21__gerr_pbafg_vgrengbeVF2_CAF_11__gerr_abqrVF2_FN_RRyRRECAF_15__gerr_raq_abqrVFP_RRFQ_EXG_
 .type b__MAFg3__16__gerrVA7naqebvq10SdVafgnaprRAF_4yrffVF2_RRAF_9nyybpngbeVF2_RRR12__svaq_rdhnyVF2_RRECAF_16__gerr_abqr_onfrVCiRRAF_21__gerr_pbafg_vgrengbeVF2_CAF_11__gerr_abqrVF2_FN_RRyRRECAF_15__gerr_raq_abqrVFP_RRFQ_EXG_,%function
 b__MAFg3__16__gerrVA7naqebvq10SdVafgnaprRAF_4yrffVF2_RRAF_9nyybpngbeVF2_RRR12__svaq_rdhnyVF2_RRECAF_16__gerr_abqr_onfrVCiRRAF_21__gerr_pbafg_vgrengbeVF2_CAF_11__gerr_abqrVF2_FN_RRyRRECAF_15__gerr_raq_abqrVFP_RRFQ_EXG_:
 nop
 .text
-.globl b__MAFg3__16irpgbeVCXA7naqebvq5ivags9ZngevkUnyRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_
+.weak b__MAFg3__16irpgbeVCXA7naqebvq5ivags9ZngevkUnyRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_
 .type b__MAFg3__16irpgbeVCXA7naqebvq5ivags9ZngevkUnyRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_,%function
 b__MAFg3__16irpgbeVCXA7naqebvq5ivags9ZngevkUnyRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_:
 nop
 .text
-.globl b__MAFg3__16irpgbeVCXA7naqebvq5ivags12ZngevkXrearyRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_
+.weak b__MAFg3__16irpgbeVCXA7naqebvq5ivags12ZngevkXrearyRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_
 .type b__MAFg3__16irpgbeVCXA7naqebvq5ivags12ZngevkXrearyRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_,%function
 b__MAFg3__16irpgbeVCXA7naqebvq5ivags12ZngevkXrearyRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_:
 nop
@@ -1673,7 +1673,7 @@
 b__MGIA7naqebvq5ivags7qrgnvyf19CebcreglSrgpureVzcyR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__120__funerq_cge_cbvagreVCA7naqebvq5ivags11IvagsBowrpgRAF_14qrsnhyg_qryrgrVF3_RRAF_9nyybpngbeVF3_RRR16__ba_mreb_funerqRi
+.weak b__MAFg3__120__funerq_cge_cbvagreVCA7naqebvq5ivags11IvagsBowrpgRAF_14qrsnhyg_qryrgrVF3_RRAF_9nyybpngbeVF3_RRR16__ba_mreb_funerqRi
 .type b__MAFg3__120__funerq_cge_cbvagreVCA7naqebvq5ivags11IvagsBowrpgRAF_14qrsnhyg_qryrgrVF3_RRAF_9nyybpngbeVF3_RRR16__ba_mreb_funerqRi,%function
 b__MAFg3__120__funerq_cge_cbvagreVCA7naqebvq5ivags11IvagsBowrpgRAF_14qrsnhyg_qryrgrVF3_RRAF_9nyybpngbeVF3_RRR16__ba_mreb_funerqRi:
 nop
@@ -1683,7 +1683,7 @@
 b__MA7naqebvq5ivags19PbzcngvovyvglZngevk6nqqNyyRC5AnzrqVF1_RCAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRR:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRA7naqebvq5ivags9ZngevkUnyRRRAF_19__znc_inyhr_pbzcnerVF7_FO_AF_4yrffVF7_RRYo1RRRAF5_VFO_RRR11__svaq_yrnsRAF_21__gerr_pbafg_vgrengbeVFO_CAF_11__gerr_abqrVFO_CiRRyRRECAF_15__gerr_raq_abqrVCAF_16__gerr_abqr_onfrVFX_RRRREXF7_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRA7naqebvq5ivags9ZngevkUnyRRRAF_19__znc_inyhr_pbzcnerVF7_FO_AF_4yrffVF7_RRYo1RRRAF5_VFO_RRR11__svaq_yrnsRAF_21__gerr_pbafg_vgrengbeVFO_CAF_11__gerr_abqrVFO_CiRRyRRECAF_15__gerr_raq_abqrVCAF_16__gerr_abqr_onfrVFX_RRRREXF7_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRA7naqebvq5ivags9ZngevkUnyRRRAF_19__znc_inyhr_pbzcnerVF7_FO_AF_4yrffVF7_RRYo1RRRAF5_VFO_RRR11__svaq_yrnsRAF_21__gerr_pbafg_vgrengbeVFO_CAF_11__gerr_abqrVFO_CiRRyRRECAF_15__gerr_raq_abqrVCAF_16__gerr_abqr_onfrVFX_RRRREXF7_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRA7naqebvq5ivags9ZngevkUnyRRRAF_19__znc_inyhr_pbzcnerVF7_FO_AF_4yrffVF7_RRYo1RRRAF5_VFO_RRR11__svaq_yrnsRAF_21__gerr_pbafg_vgrengbeVFO_CAF_11__gerr_abqrVFO_CiRRyRRECAF_15__gerr_raq_abqrVCAF_16__gerr_abqr_onfrVFX_RRRREXF7_:
 nop
@@ -1693,32 +1693,32 @@
 b__MA7naqebvq5ivags18XrearyPbasvtCnefre16cebprffNaqSvavfuREXAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRR:
 nop
 .data
-.globl b__MGIAFg3__120__funerq_cge_cbvagreVCAF_13__rzcgl_fgngrVpRRAF_14qrsnhyg_qryrgrVF2_RRAF_9nyybpngbeVF2_RRRR
+.weak b__MGIAFg3__120__funerq_cge_cbvagreVCAF_13__rzcgl_fgngrVpRRAF_14qrsnhyg_qryrgrVF2_RRAF_9nyybpngbeVF2_RRRR
 .type b__MGIAFg3__120__funerq_cge_cbvagreVCAF_13__rzcgl_fgngrVpRRAF_14qrsnhyg_qryrgrVF2_RRAF_9nyybpngbeVF2_RRRR,%object
 b__MGIAFg3__120__funerq_cge_cbvagreVCAF_13__rzcgl_fgngrVpRRAF_14qrsnhyg_qryrgrVF2_RRAF_9nyybpngbeVF2_RRRR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIA7naqebvq5ivags19XrearyVasbPbairegreR
+.weak b__MGIA7naqebvq5ivags19XrearyVasbPbairegreR
 .type b__MGIA7naqebvq5ivags19XrearyVasbPbairegreR,%object
 b__MGIA7naqebvq5ivags19XrearyVasbPbairegreR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRA7naqebvq5ivags12UnyVagresnprRRRAF_19__znc_inyhr_pbzcnerVF7_FO_AF_4yrffVF7_RRYo1RRRAF5_VFO_RRR14__nffvta_zhygvVAF_21__gerr_pbafg_vgrengbeVFO_CAF_11__gerr_abqrVFO_CiRRyRRRRiG_FC_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRA7naqebvq5ivags12UnyVagresnprRRRAF_19__znc_inyhr_pbzcnerVF7_FO_AF_4yrffVF7_RRYo1RRRAF5_VFO_RRR14__nffvta_zhygvVAF_21__gerr_pbafg_vgrengbeVFO_CAF_11__gerr_abqrVFO_CiRRyRRRRiG_FC_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRA7naqebvq5ivags12UnyVagresnprRRRAF_19__znc_inyhr_pbzcnerVF7_FO_AF_4yrffVF7_RRYo1RRRAF5_VFO_RRR14__nffvta_zhygvVAF_21__gerr_pbafg_vgrengbeVFO_CAF_11__gerr_abqrVFO_CiRRyRRRRiG_FC_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRA7naqebvq5ivags12UnyVagresnprRRRAF_19__znc_inyhr_pbzcnerVF7_FO_AF_4yrffVF7_RRYo1RRRAF5_VFO_RRR14__nffvta_zhygvVAF_21__gerr_pbafg_vgrengbeVFO_CAF_11__gerr_abqrVFO_CiRRyRRRRiG_FC_:
 nop
 .text
-.globl b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR12__cnefr_ngbzVCXpRRG_F7_F7_
+.weak b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR12__cnefr_ngbzVCXpRRG_F7_F7_
 .type b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR12__cnefr_ngbzVCXpRRG_F7_F7_,%function
 b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR12__cnefr_ngbzVCXpRRG_F7_F7_:
 nop
 .data
-.globl b__MGIA7naqebvq5ivags16KzyCnvePbairegreVAFg3__14cnveVAF2_12onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRF9_RRRR
+.weak b__MGIA7naqebvq5ivags16KzyCnvePbairegreVAFg3__14cnveVAF2_12onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRF9_RRRR
 .type b__MGIA7naqebvq5ivags16KzyCnvePbairegreVAFg3__14cnveVAF2_12onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRF9_RRRR,%object
 b__MGIA7naqebvq5ivags16KzyCnvePbairegreVAFg3__14cnveVAF2_12onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRF9_RRRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRA7naqebvq5ivags13ZngevkKzySvyrRRRAF_19__znc_inyhr_pbzcnerVF7_FO_AF_4yrffVF7_RRYo1RRRAF5_VFO_RRR14__nffvta_zhygvVAF_21__gerr_pbafg_vgrengbeVFO_CAF_11__gerr_abqrVFO_CiRRyRRRRiG_FC_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRA7naqebvq5ivags13ZngevkKzySvyrRRRAF_19__znc_inyhr_pbzcnerVF7_FO_AF_4yrffVF7_RRYo1RRRAF5_VFO_RRR14__nffvta_zhygvVAF_21__gerr_pbafg_vgrengbeVFO_CAF_11__gerr_abqrVFO_CiRRyRRRRiG_FC_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRA7naqebvq5ivags13ZngevkKzySvyrRRRAF_19__znc_inyhr_pbzcnerVF7_FO_AF_4yrffVF7_RRYo1RRRAF5_VFO_RRR14__nffvta_zhygvVAF_21__gerr_pbafg_vgrengbeVFO_CAF_11__gerr_abqrVFO_CiRRyRRRRiG_FC_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRA7naqebvq5ivags13ZngevkKzySvyrRRRAF_19__znc_inyhr_pbzcnerVF7_FO_AF_4yrffVF7_RRYo1RRRAF5_VFO_RRR14__nffvta_zhygvVAF_21__gerr_pbafg_vgrengbeVFO_CAF_11__gerr_abqrVFO_CiRRyRRRRiG_FC_:
 nop
@@ -1728,7 +1728,7 @@
 b__MAX7naqebvq5ivags11UnyZnavsrfg5yriryRi:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq5ivags9IraqbeAqxRAF_9nyybpngbeVF3_RRR6vafregVAF_11__jenc_vgreVCF3_RRRRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF3_AF_15vgrengbe_genvgfVFP_R9ersreraprRRR5inyhrRFN_R4glcrRAF8_VCXF3_RRFP_FP_
+.weak b__MAFg3__16irpgbeVA7naqebvq5ivags9IraqbeAqxRAF_9nyybpngbeVF3_RRR6vafregVAF_11__jenc_vgreVCF3_RRRRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF3_AF_15vgrengbe_genvgfVFP_R9ersreraprRRR5inyhrRFN_R4glcrRAF8_VCXF3_RRFP_FP_
 .type b__MAFg3__16irpgbeVA7naqebvq5ivags9IraqbeAqxRAF_9nyybpngbeVF3_RRR6vafregVAF_11__jenc_vgreVCF3_RRRRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF3_AF_15vgrengbe_genvgfVFP_R9ersreraprRRR5inyhrRFN_R4glcrRAF8_VCXF3_RRFP_FP_,%function
 b__MAFg3__16irpgbeVA7naqebvq5ivags9IraqbeAqxRAF_9nyybpngbeVF3_RRR6vafregVAF_11__jenc_vgreVCF3_RRRRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF3_AF_15vgrengbe_genvgfVFP_R9ersreraprRRR5inyhrRFN_R4glcrRAF8_VCXF3_RRFP_FP_:
 nop
@@ -1743,7 +1743,7 @@
 b__MA7naqebvq5ivags14ZngevkVafgnaprP2REXF1_:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq5ivags4IaqxRAF_9nyybpngbeVF3_RRR6vafregVAF_11__jenc_vgreVCF3_RRRRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF3_AF_15vgrengbe_genvgfVFP_R9ersreraprRRR5inyhrRFN_R4glcrRAF8_VCXF3_RRFP_FP_
+.weak b__MAFg3__16irpgbeVA7naqebvq5ivags4IaqxRAF_9nyybpngbeVF3_RRR6vafregVAF_11__jenc_vgreVCF3_RRRRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF3_AF_15vgrengbe_genvgfVFP_R9ersreraprRRR5inyhrRFN_R4glcrRAF8_VCXF3_RRFP_FP_
 .type b__MAFg3__16irpgbeVA7naqebvq5ivags4IaqxRAF_9nyybpngbeVF3_RRR6vafregVAF_11__jenc_vgreVCF3_RRRRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF3_AF_15vgrengbe_genvgfVFP_R9ersreraprRRR5inyhrRFN_R4glcrRAF8_VCXF3_RRFP_FP_,%function
 b__MAFg3__16irpgbeVA7naqebvq5ivags4IaqxRAF_9nyybpngbeVF3_RRR6vafregVAF_11__jenc_vgreVCF3_RRRRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF3_AF_15vgrengbe_genvgfVFP_R9ersreraprRRR5inyhrRFN_R4glcrRAF8_VCXF3_RRFP_FP_:
 nop
@@ -1753,17 +1753,17 @@
 b__MAX7naqebvq5ivags14ZngevkVafgnapr20vagresnprQrfpevcgvbaRAF0_7IrefvbaR:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_4cnveVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRF7_RRAF5_VF8_RRR21__chfu_onpx_fybj_cnguVF8_RRiBG_
+.weak b__MAFg3__16irpgbeVAF_4cnveVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRF7_RRAF5_VF8_RRR21__chfu_onpx_fybj_cnguVF8_RRiBG_
 .type b__MAFg3__16irpgbeVAF_4cnveVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRF7_RRAF5_VF8_RRR21__chfu_onpx_fybj_cnguVF8_RRiBG_,%function
 b__MAFg3__16irpgbeVAF_4cnveVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRF7_RRAF5_VF8_RRR21__chfu_onpx_fybj_cnguVF8_RRiBG_:
 nop
 .data
-.globl b__MGIA7naqebvq5ivags13BowrpgSnpgbelVAF0_11EhagvzrVasbRRR
+.weak b__MGIA7naqebvq5ivags13BowrpgSnpgbelVAF0_11EhagvzrVasbRRR
 .type b__MGIA7naqebvq5ivags13BowrpgSnpgbelVAF0_11EhagvzrVasbRRR,%object
 b__MGIA7naqebvq5ivags13BowrpgSnpgbelVAF0_11EhagvzrVasbRRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq5ivags9gb_fgevatVAF0_12IrefvbaEnatrRRRAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRREXG_
+.weak b__MA7naqebvq5ivags9gb_fgevatVAF0_12IrefvbaEnatrRRRAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRREXG_
 .type b__MA7naqebvq5ivags9gb_fgevatVAF0_12IrefvbaEnatrRRRAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRREXG_,%function
 b__MA7naqebvq5ivags9gb_fgevatVAF0_12IrefvbaEnatrRRRAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRREXG_:
 nop
@@ -1778,17 +1778,17 @@
 b__MAX7naqebvq5ivags9ZngevkUny12vfPbzcngvoyrREXAFg3__13frgVAF_10SdVafgnaprRAF2_4yrffVF4_RRAF2_9nyybpngbeVF4_RRRREXAF3_VAF0_7IrefvbaRAF5_VFP_RRAF7_VFP_RRRR:
 nop
 .text
-.globl b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR15__chfu_onpx_ersRv
+.weak b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR15__chfu_onpx_ersRv
 .type b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR15__chfu_onpx_ersRv,%function
 b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR15__chfu_onpx_ersRv:
 nop
 .text
-.globl b__MAFg3__16__gerrVA7naqebvq5ivags7IrefvbaRAF_4yrffVF3_RRAF_9nyybpngbeVF3_RRR7qrfgeblRCAF_11__gerr_abqrVF3_CiRR
+.weak b__MAFg3__16__gerrVA7naqebvq5ivags7IrefvbaRAF_4yrffVF3_RRAF_9nyybpngbeVF3_RRR7qrfgeblRCAF_11__gerr_abqrVF3_CiRR
 .type b__MAFg3__16__gerrVA7naqebvq5ivags7IrefvbaRAF_4yrffVF3_RRAF_9nyybpngbeVF3_RRR7qrfgeblRCAF_11__gerr_abqrVF3_CiRR,%function
 b__MAFg3__16__gerrVA7naqebvq5ivags7IrefvbaRAF_4yrffVF3_RRAF_9nyybpngbeVF3_RRR7qrfgeblRCAF_11__gerr_abqrVF3_CiRR:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRA7naqebvq5ivags13ZngevkKzySvyrRRRAF_19__znc_inyhr_pbzcnerVF7_FO_AF_4yrffVF7_RRYo1RRRAF5_VFO_RRR15__rzcynpr_zhygvVWF7_FN_RRRAF_15__gerr_vgrengbeVFO_CAF_11__gerr_abqrVFO_CiRRyRRQcBG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRA7naqebvq5ivags13ZngevkKzySvyrRRRAF_19__znc_inyhr_pbzcnerVF7_FO_AF_4yrffVF7_RRYo1RRRAF5_VFO_RRR15__rzcynpr_zhygvVWF7_FN_RRRAF_15__gerr_vgrengbeVFO_CAF_11__gerr_abqrVFO_CiRRyRRQcBG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRA7naqebvq5ivags13ZngevkKzySvyrRRRAF_19__znc_inyhr_pbzcnerVF7_FO_AF_4yrffVF7_RRYo1RRRAF5_VFO_RRR15__rzcynpr_zhygvVWF7_FN_RRRAF_15__gerr_vgrengbeVFO_CAF_11__gerr_abqrVFO_CiRRyRRQcBG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRA7naqebvq5ivags13ZngevkKzySvyrRRRAF_19__znc_inyhr_pbzcnerVF7_FO_AF_4yrffVF7_RRYo1RRRAF5_VFO_RRR15__rzcynpr_zhygvVWF7_FN_RRRAF_15__gerr_vgrengbeVFO_CAF_11__gerr_abqrVFO_CiRRyRRQcBG_:
 nop
@@ -1798,27 +1798,27 @@
 b__MA7naqebvq5ivags22XrearyPbasvtGlcrqInyhr14tZvffvatPbasvtR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR12__cnefr_grezVCXpRRG_F7_F7_
+.weak b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR12__cnefr_grezVCXpRRG_F7_F7_
 .type b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR12__cnefr_grezVCXpRRG_F7_F7_,%function
 b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR12__cnefr_grezVCXpRRG_F7_F7_:
 nop
 .text
-.globl b__MAFg3__114__fcyvg_ohssreVCAF_7__fgngrVpRRAF_9nyybpngbeVF3_RRR9chfu_onpxRBF3_
+.weak b__MAFg3__114__fcyvg_ohssreVCAF_7__fgngrVpRRAF_9nyybpngbeVF3_RRR9chfu_onpxRBF3_
 .type b__MAFg3__114__fcyvg_ohssreVCAF_7__fgngrVpRRAF_9nyybpngbeVF3_RRR9chfu_onpxRBF3_,%function
 b__MAFg3__114__fcyvg_ohssreVCAF_7__fgngrVpRRAF_9nyybpngbeVF3_RRR9chfu_onpxRBF3_:
 nop
 .data
-.globl b__MGGAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
+.weak b__MGGAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
 .type b__MGGAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR,%object
 b__MGGAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__16__gerrVA7naqebvq10SdVafgnaprRAF_4yrffVF2_RRAF_9nyybpngbeVF2_RRR30__rzcynpr_uvag_havdhr_xrl_netfVF2_WEXF2_RRRAF_15__gerr_vgrengbeVF2_CAF_11__gerr_abqrVF2_CiRRyRRAF_21__gerr_pbafg_vgrengbeVF2_FS_yRREXG_QcBG0_
+.weak b__MAFg3__16__gerrVA7naqebvq10SdVafgnaprRAF_4yrffVF2_RRAF_9nyybpngbeVF2_RRR30__rzcynpr_uvag_havdhr_xrl_netfVF2_WEXF2_RRRAF_15__gerr_vgrengbeVF2_CAF_11__gerr_abqrVF2_CiRRyRRAF_21__gerr_pbafg_vgrengbeVF2_FS_yRREXG_QcBG0_
 .type b__MAFg3__16__gerrVA7naqebvq10SdVafgnaprRAF_4yrffVF2_RRAF_9nyybpngbeVF2_RRR30__rzcynpr_uvag_havdhr_xrl_netfVF2_WEXF2_RRRAF_15__gerr_vgrengbeVF2_CAF_11__gerr_abqrVF2_CiRRyRRAF_21__gerr_pbafg_vgrengbeVF2_FS_yRREXG_QcBG0_,%function
 b__MAFg3__16__gerrVA7naqebvq10SdVafgnaprRAF_4yrffVF2_RRAF_9nyybpngbeVF2_RRR30__rzcynpr_uvag_havdhr_xrl_netfVF2_WEXF2_RRRAF_15__gerr_vgrengbeVF2_CAF_11__gerr_abqrVF2_CiRRyRRAF_21__gerr_pbafg_vgrengbeVF2_FS_yRREXG_QcBG0_:
 nop
 .text
-.globl b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRR8biresybjRv
+.weak b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRR8biresybjRv
 .type b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRR8biresybjRv,%function
 b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRR8biresybjRv:
 nop
@@ -1833,12 +1833,12 @@
 b__MA7naqebvq5ivags5cnefrREXAFg3__112onfvp_fgevatVpAF1_11pune_genvgfVpRRAF1_9nyybpngbeVpRRRRCAF0_4NepuR:
 nop
 .data
-.globl b__MGIAFg3__111__nygreangrVpRR
+.weak b__MGIAFg3__111__nygreangrVpRR
 .type b__MGIAFg3__111__nygreangrVpRR,%object
 b__MGIAFg3__111__nygreangrVpRR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIA7naqebvq5ivags7qrgnvyf22IvagsBowrpgNsgreHcqngrR
+.weak b__MGIA7naqebvq5ivags7qrgnvyf22IvagsBowrpgNsgreHcqngrR
 .type b__MGIA7naqebvq5ivags7qrgnvyf22IvagsBowrpgNsgreHcqngrR,%object
 b__MGIA7naqebvq5ivags7qrgnvyf22IvagsBowrpgNsgreHcqngrR:
 .space __SIZEOF_POINTER__
@@ -1848,17 +1848,17 @@
 b__MAX7naqebvq5ivags11EhagvzrVasb10uneqjnerVqRi:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq5ivags12ZngevkXrearyRAF_9nyybpngbeVF3_RRR8__nccraqRz
+.weak b__MAFg3__16irpgbeVA7naqebvq5ivags12ZngevkXrearyRAF_9nyybpngbeVF3_RRR8__nccraqRz
 .type b__MAFg3__16irpgbeVA7naqebvq5ivags12ZngevkXrearyRAF_9nyybpngbeVF3_RRR8__nccraqRz,%function
 b__MAFg3__16irpgbeVA7naqebvq5ivags12ZngevkXrearyRAF_9nyybpngbeVF3_RRR8__nccraqRz:
 nop
 .text
-.globl b__MAFg3__16irpgbeVpAF_9nyybpngbeVpRRR21__chfu_onpx_fybj_cnguVpRRiBG_
+.weak b__MAFg3__16irpgbeVpAF_9nyybpngbeVpRRR21__chfu_onpx_fybj_cnguVpRRiBG_
 .type b__MAFg3__16irpgbeVpAF_9nyybpngbeVpRRR21__chfu_onpx_fybj_cnguVpRRiBG_,%function
 b__MAFg3__16irpgbeVpAF_9nyybpngbeVpRRR21__chfu_onpx_fybj_cnguVpRRiBG_:
 nop
 .data
-.globl b__MGIAFg3__117__ercrng_bar_ybbcVpRR
+.weak b__MGIAFg3__117__ercrng_bar_ybbcVpRR
 .type b__MGIAFg3__117__ercrng_bar_ybbcVpRR,%object
 b__MGIAFg3__117__ercrng_bar_ybbcVpRR:
 .space __SIZEOF_POINTER__
@@ -1873,12 +1873,12 @@
 b__MA7naqebvq5ivags18EhagvzrVasbSrgpure18cnefrXrearyIrefvbaRi:
 nop
 .text
-.globl b__MAFg3__120__funerq_cge_cbvagreVCA7naqebvq5ivags11UnyZnavsrfgRAF_14qrsnhyg_qryrgrVF3_RRAF_9nyybpngbeVF3_RRR21__ba_mreb_funerq_jrnxRi
+.weak b__MAFg3__120__funerq_cge_cbvagreVCA7naqebvq5ivags11UnyZnavsrfgRAF_14qrsnhyg_qryrgrVF3_RRAF_9nyybpngbeVF3_RRR21__ba_mreb_funerq_jrnxRi
 .type b__MAFg3__120__funerq_cge_cbvagreVCA7naqebvq5ivags11UnyZnavsrfgRAF_14qrsnhyg_qryrgrVF3_RRAF_9nyybpngbeVF3_RRR21__ba_mreb_funerq_jrnxRi,%function
 b__MAFg3__120__funerq_cge_cbvagreVCA7naqebvq5ivags11UnyZnavsrfgRAF_14qrsnhyg_qryrgrVF3_RRAF_9nyybpngbeVF3_RRR21__ba_mreb_funerq_jrnxRi:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq5ivags12UnyVagresnprRAF_9nyybpngbeVF3_RRR8__nccraqRz
+.weak b__MAFg3__16irpgbeVA7naqebvq5ivags12UnyVagresnprRAF_9nyybpngbeVF3_RRR8__nccraqRz
 .type b__MAFg3__16irpgbeVA7naqebvq5ivags12UnyVagresnprRAF_9nyybpngbeVF3_RRR8__nccraqRz,%function
 b__MAFg3__16irpgbeVA7naqebvq5ivags12UnyVagresnprRAF_9nyybpngbeVF3_RRR8__nccraqRz:
 nop
@@ -1913,12 +1913,12 @@
 b__MA7naqebvq5ivagsyfREAFg3__113onfvp_bfgernzVpAF1_11pune_genvgfVpRRRRAF0_9UnySbezngR:
 nop
 .data
-.globl b__MGIA7naqebvq5ivags13IaqxPbairegreR
+.weak b__MGIA7naqebvq5ivags13IaqxPbairegreR
 .type b__MGIA7naqebvq5ivags13IaqxPbairegreR,%object
 b__MGIA7naqebvq5ivags13IaqxPbairegreR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__16__gerrVA7naqebvq10SdVafgnaprRAF_4yrffVF2_RRAF_9nyybpngbeVF2_RRR25__rzcynpr_havdhr_xrl_netfVF2_WEXF2_RRRAF_4cnveVAF_15__gerr_vgrengbeVF2_CAF_11__gerr_abqrVF2_CiRRyRRoRREXG_QcBG0_
+.weak b__MAFg3__16__gerrVA7naqebvq10SdVafgnaprRAF_4yrffVF2_RRAF_9nyybpngbeVF2_RRR25__rzcynpr_havdhr_xrl_netfVF2_WEXF2_RRRAF_4cnveVAF_15__gerr_vgrengbeVF2_CAF_11__gerr_abqrVF2_CiRRyRRoRREXG_QcBG0_
 .type b__MAFg3__16__gerrVA7naqebvq10SdVafgnaprRAF_4yrffVF2_RRAF_9nyybpngbeVF2_RRR25__rzcynpr_havdhr_xrl_netfVF2_WEXF2_RRRAF_4cnveVAF_15__gerr_vgrengbeVF2_CAF_11__gerr_abqrVF2_CiRRyRRoRREXG_QcBG0_,%function
 b__MAFg3__16__gerrVA7naqebvq10SdVafgnaprRAF_4yrffVF2_RRAF_9nyybpngbeVF2_RRR25__rzcynpr_havdhr_xrl_netfVF2_WEXF2_RRRAF_4cnveVAF_15__gerr_vgrengbeVF2_CAF_11__gerr_abqrVF2_CiRRyRRoRREXG_QcBG0_:
 nop
@@ -1938,12 +1938,12 @@
 b__MA7naqebvq5ivags7qrgnvyf21xIraqbeYrtnplZnavsrfgR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIA7naqebvq5ivags16KzyGrkgPbairegreVAF0_15XrearyPbasvtXrlRRR
+.weak b__MGIA7naqebvq5ivags16KzyGrkgPbairegreVAF0_15XrearyPbasvtXrlRRR
 .type b__MGIA7naqebvq5ivags16KzyGrkgPbairegreVAF0_15XrearyPbasvtXrlRRR,%object
 b__MGIA7naqebvq5ivags16KzyGrkgPbairegreVAF0_15XrearyPbasvtXrlRRR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIA7naqebvq5ivags31XrearyPbasvtGlcrqInyhrPbairegreR
+.weak b__MGIA7naqebvq5ivags31XrearyPbasvtGlcrqInyhrPbairegreR
 .type b__MGIA7naqebvq5ivags31XrearyPbasvtGlcrqInyhrPbairegreR,%object
 b__MGIA7naqebvq5ivags31XrearyPbasvtGlcrqInyhrPbairegreR:
 .space __SIZEOF_POINTER__
@@ -1963,12 +1963,12 @@
 b__MA7naqebvq5ivags18XrearyPbasvtCnefre16cebprffNaqSvavfuRCXpz:
 nop
 .text
-.globl b__MAXFg3__16__ybbcVpR12__rkrp_fcyvgRoEAF_7__fgngrVpRR
+.weak b__MAXFg3__16__ybbcVpR12__rkrp_fcyvgRoEAF_7__fgngrVpRR
 .type b__MAXFg3__16__ybbcVpR12__rkrp_fcyvgRoEAF_7__fgngrVpRR,%function
 b__MAXFg3__16__ybbcVpR12__rkrp_fcyvgRoEAF_7__fgngrVpRR:
 nop
 .text
-.globl b__MAFg3__114__fcyvg_ohssreVCAF_7__fgngrVpRRAF_9nyybpngbeVF3_RRR10chfu_sebagRBF3_
+.weak b__MAFg3__114__fcyvg_ohssreVCAF_7__fgngrVpRRAF_9nyybpngbeVF3_RRR10chfu_sebagRBF3_
 .type b__MAFg3__114__fcyvg_ohssreVCAF_7__fgngrVpRRAF_9nyybpngbeVF3_RRR10chfu_sebagRBF3_,%function
 b__MAFg3__114__fcyvg_ohssreVCAF_7__fgngrVpRRAF_9nyybpngbeVF3_RRR10chfu_sebagRBF3_:
 nop
@@ -1983,7 +1983,7 @@
 b__MA7naqebvq5ivags7qrgnvyf26xIraqbeZnavsrfgSentzragQveR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__113__irpgbe_onfrVA7naqebvq5ivags13ZngevkKzySvyrRAF_9nyybpngbeVF3_RRRQ2Ri
+.weak b__MAFg3__113__irpgbe_onfrVA7naqebvq5ivags13ZngevkKzySvyrRAF_9nyybpngbeVF3_RRRQ2Ri
 .type b__MAFg3__113__irpgbe_onfrVA7naqebvq5ivags13ZngevkKzySvyrRAF_9nyybpngbeVF3_RRRQ2Ri,%function
 b__MAFg3__113__irpgbe_onfrVA7naqebvq5ivags13ZngevkKzySvyrRAF_9nyybpngbeVF3_RRRQ2Ri:
 nop
@@ -1998,12 +1998,12 @@
 b__MAX7naqebvq5ivags10XrearyVasb28trgZngpurqXrearyErdhverzragfREXAFg3__16irpgbeVAF0_12ZngevkXrearyRAF2_9nyybpngbeVF4_RRRRAF0_5YriryRCAF2_12onfvp_fgevatVpAF2_11pune_genvgfVpRRAF5_VpRRRR:
 nop
 .text
-.globl b__MAXFg3__118__zngpu_pune_vpnfrVpAF_12ertrk_genvgfVpRRR6__rkrpREAF_7__fgngrVpRR
+.weak b__MAXFg3__118__zngpu_pune_vpnfrVpAF_12ertrk_genvgfVpRRR6__rkrpREAF_7__fgngrVpRR
 .type b__MAXFg3__118__zngpu_pune_vpnfrVpAF_12ertrk_genvgfVpRRR6__rkrpREAF_7__fgngrVpRR,%function
 b__MAXFg3__118__zngpu_pune_vpnfrVpAF_12ertrk_genvgfVpRRR6__rkrpREAF_7__fgngrVpRR:
 nop
 .text
-.globl b__MAFg3__120__funerq_cge_rzcynprVA7naqebvq5ivags11EhagvzrVasbRAF_9nyybpngbeVF3_RRR16__ba_mreb_funerqRi
+.weak b__MAFg3__120__funerq_cge_rzcynprVA7naqebvq5ivags11EhagvzrVasbRAF_9nyybpngbeVF3_RRR16__ba_mreb_funerqRi
 .type b__MAFg3__120__funerq_cge_rzcynprVA7naqebvq5ivags11EhagvzrVasbRAF_9nyybpngbeVF3_RRR16__ba_mreb_funerqRi,%function
 b__MAFg3__120__funerq_cge_rzcynprVA7naqebvq5ivags11EhagvzrVasbRAF_9nyybpngbeVF3_RRR16__ba_mreb_funerqRi:
 nop
@@ -2018,7 +2018,7 @@
 b__MAX7naqebvq5ivags7qrgnvyf19CebcreglSrgpureAbBc15trgHvagCebcreglREXAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRRzz:
 nop
 .text
-.globl b__MAFg3__120__funerq_cge_cbvagreVCA7naqebvq5ivags19PbzcngvovyvglZngevkRAF_14qrsnhyg_qryrgrVF3_RRAF_9nyybpngbeVF3_RRR16__ba_mreb_funerqRi
+.weak b__MAFg3__120__funerq_cge_cbvagreVCA7naqebvq5ivags19PbzcngvovyvglZngevkRAF_14qrsnhyg_qryrgrVF3_RRAF_9nyybpngbeVF3_RRR16__ba_mreb_funerqRi
 .type b__MAFg3__120__funerq_cge_cbvagreVCA7naqebvq5ivags19PbzcngvovyvglZngevkRAF_14qrsnhyg_qryrgrVF3_RRAF_9nyybpngbeVF3_RRR16__ba_mreb_funerqRi,%function
 b__MAFg3__120__funerq_cge_cbvagreVCA7naqebvq5ivags19PbzcngvovyvglZngevkRAF_14qrsnhyg_qryrgrVF3_RRAF_9nyybpngbeVF3_RRR16__ba_mreb_funerqRi:
 nop
@@ -2038,7 +2038,7 @@
 b__MAX7naqebvq5ivags14ZngevkVafgnapr13rknpgVafgnaprRi:
 nop
 .text
-.globl b__MA7naqebvq5ivags9gb_fgevatVAF0_5YriryRRRAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRREXG_
+.weak b__MA7naqebvq5ivags9gb_fgevatVAF0_5YriryRRRAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRREXG_
 .type b__MA7naqebvq5ivags9gb_fgevatVAF0_5YriryRRRAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRREXG_,%function
 b__MA7naqebvq5ivags9gb_fgevatVAF0_5YriryRRRAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRREXG_:
 nop
@@ -2048,7 +2048,7 @@
 b__MAX7naqebvq5ivags12ZngevkXreary20trgFbheprZngevkYriryRi:
 nop
 .data
-.globl b__MGIA7naqebvq5ivags17FrcbyvplPbairegreR
+.weak b__MGIA7naqebvq5ivags17FrcbyvplPbairegreR
 .type b__MGIA7naqebvq5ivags17FrcbyvplPbairegreR,%object
 b__MGIA7naqebvq5ivags17FrcbyvplPbairegreR:
 .space __SIZEOF_POINTER__
@@ -2063,7 +2063,7 @@
 b__MA7naqebvq5ivags11UnyZnavsrfg7frgGlcrRAF0_10FpurznGlcrR:
 nop
 .text
-.globl b__MA7naqebvq5ivags15zhygvyvarVaqragVAFg3__13frgVAF0_7IrefvbaRAF2_4yrffVF4_RRAF2_9nyybpngbeVF4_RRRRRRiEAF2_13onfvp_bfgernzVpAF2_11pune_genvgfVpRRRRzEXG_
+.weak b__MA7naqebvq5ivags15zhygvyvarVaqragVAFg3__13frgVAF0_7IrefvbaRAF2_4yrffVF4_RRAF2_9nyybpngbeVF4_RRRRRRiEAF2_13onfvp_bfgernzVpAF2_11pune_genvgfVpRRRRzEXG_
 .type b__MA7naqebvq5ivags15zhygvyvarVaqragVAFg3__13frgVAF0_7IrefvbaRAF2_4yrffVF4_RRAF2_9nyybpngbeVF4_RRRRRRiEAF2_13onfvp_bfgernzVpAF2_11pune_genvgfVpRRRRzEXG_,%function
 b__MA7naqebvq5ivags15zhygvyvarVaqragVAFg3__13frgVAF0_7IrefvbaRAF2_4yrffVF4_RRAF2_9nyybpngbeVF4_RRRRRRiEAF2_13onfvp_bfgernzVpAF2_11pune_genvgfVpRRRRzEXG_:
 nop
@@ -2078,12 +2078,12 @@
 b__MAX7naqebvq5ivags11UnyZnavsrfg16trgNvqyVafgnaprfREXAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRFN_:
 nop
 .text
-.globl b__MAXFg3__116__onpx_ers_vpnfrVpAF_12ertrk_genvgfVpRRR6__rkrpREAF_7__fgngrVpRR
+.weak b__MAXFg3__116__onpx_ers_vpnfrVpAF_12ertrk_genvgfVpRRR6__rkrpREAF_7__fgngrVpRR
 .type b__MAXFg3__116__onpx_ers_vpnfrVpAF_12ertrk_genvgfVpRRR6__rkrpREAF_7__fgngrVpRR,%function
 b__MAXFg3__116__onpx_ers_vpnfrVpAF_12ertrk_genvgfVpRRR6__rkrpREAF_7__fgngrVpRR:
 nop
 .data
-.globl b__MGIAFg3__111__ybbxnurnqVpAF_12ertrk_genvgfVpRRRR
+.weak b__MGIAFg3__111__ybbxnurnqVpAF_12ertrk_genvgfVpRRRR
 .type b__MGIAFg3__111__ybbxnurnqVpAF_12ertrk_genvgfVpRRRR,%object
 b__MGIAFg3__111__ybbxnurnqVpAF_12ertrk_genvgfVpRRRR:
 .space __SIZEOF_POINTER__
@@ -2093,7 +2093,7 @@
 b__MA7naqebvq5ivags7qrgnvyf16xCebqhpgIvagsQveR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIAFg3__126__raq_znexrq_fhorkcerffvbaVpRR
+.weak b__MGIAFg3__126__raq_znexrq_fhorkcerffvbaVpRR
 .type b__MGIAFg3__126__raq_znexrq_fhorkcerffvbaVpRR,%object
 b__MGIAFg3__126__raq_znexrq_fhorkcerffvbaVpRR:
 .space __SIZEOF_POINTER__
@@ -2108,17 +2108,17 @@
 b__MA7naqebvq5ivags21tZnavsrfgUnyPbairegreR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIA7naqebvq5ivags16KzyAbqrPbairegreVAF0_13GenafcbegNepuRRR
+.weak b__MGIA7naqebvq5ivags16KzyAbqrPbairegreVAF0_13GenafcbegNepuRRR
 .type b__MGIA7naqebvq5ivags16KzyAbqrPbairegreVAF0_13GenafcbegNepuRRR,%object
 b__MGIA7naqebvq5ivags16KzyAbqrPbairegreVAF0_13GenafcbegNepuRRR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIA7naqebvq5ivags28UnyZnavsrfgFrcbyvplPbairegreR
+.weak b__MGIA7naqebvq5ivags28UnyZnavsrfgFrcbyvplPbairegreR
 .type b__MGIA7naqebvq5ivags28UnyZnavsrfgFrcbyvplPbairegreR,%object
 b__MGIA7naqebvq5ivags28UnyZnavsrfgFrcbyvplPbairegreR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR26__cnefr_oenpxrg_rkcerffvbaVCXpRRG_F7_F7_
+.weak b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR26__cnefr_oenpxrg_rkcerffvbaVCXpRRG_F7_F7_
 .type b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR26__cnefr_oenpxrg_rkcerffvbaVCXpRRG_F7_F7_,%function
 b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR26__cnefr_oenpxrg_rkcerffvbaVCXpRRG_F7_F7_:
 nop
@@ -2138,27 +2138,27 @@
 b__MA7naqebvq5ivags15rkcnaqVafgnaprfREXAF0_9ZngevkUnyR:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF6_RRR6vafregRAF_11__jenc_vgreVCXF6_RREFN_
+.weak b__MAFg3__16irpgbeVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF6_RRR6vafregRAF_11__jenc_vgreVCXF6_RREFN_
 .type b__MAFg3__16irpgbeVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF6_RRR6vafregRAF_11__jenc_vgreVCXF6_RREFN_,%function
 b__MAFg3__16irpgbeVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF6_RRR6vafregRAF_11__jenc_vgreVCXF6_RREFN_:
 nop
 .text
-.globl b__MAXFg3__117__ercrng_bar_ybbcVpR6__rkrpREAF_7__fgngrVpRR
+.weak b__MAXFg3__117__ercrng_bar_ybbcVpR6__rkrpREAF_7__fgngrVpRR
 .type b__MAXFg3__117__ercrng_bar_ybbcVpR6__rkrpREAF_7__fgngrVpRR,%function
 b__MAXFg3__117__ercrng_bar_ybbcVpR6__rkrpREAF_7__fgngrVpRR:
 nop
 .text
-.globl b__MAFg3__120__funerq_cge_cbvagreVCA7naqebvq5ivags11UnyZnavsrfgRAF_14qrsnhyg_qryrgrVF3_RRAF_9nyybpngbeVF3_RRR16__ba_mreb_funerqRi
+.weak b__MAFg3__120__funerq_cge_cbvagreVCA7naqebvq5ivags11UnyZnavsrfgRAF_14qrsnhyg_qryrgrVF3_RRAF_9nyybpngbeVF3_RRR16__ba_mreb_funerqRi
 .type b__MAFg3__120__funerq_cge_cbvagreVCA7naqebvq5ivags11UnyZnavsrfgRAF_14qrsnhyg_qryrgrVF3_RRAF_9nyybpngbeVF3_RRR16__ba_mreb_funerqRi,%function
 b__MAFg3__120__funerq_cge_cbvagreVCA7naqebvq5ivags11UnyZnavsrfgRAF_14qrsnhyg_qryrgrVF3_RRAF_9nyybpngbeVF3_RRR16__ba_mreb_funerqRi:
 nop
 .data
-.globl b__MGIA7naqebvq5ivags16KzyAbqrPbairegreVAF0_9ZngevkUnyRRR
+.weak b__MGIA7naqebvq5ivags16KzyAbqrPbairegreVAF0_9ZngevkUnyRRR
 .type b__MGIA7naqebvq5ivags16KzyAbqrPbairegreVAF0_9ZngevkUnyRRR,%object
 b__MGIA7naqebvq5ivags16KzyAbqrPbairegreVAF0_9ZngevkUnyRRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq4onfr4WbvaVAFg3__16irpgbeVAF2_12onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRAF7_VF9_RRRRCXpRRF9_EXG_G0_
+.weak b__MA7naqebvq4onfr4WbvaVAFg3__16irpgbeVAF2_12onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRAF7_VF9_RRRRCXpRRF9_EXG_G0_
 .type b__MA7naqebvq4onfr4WbvaVAFg3__16irpgbeVAF2_12onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRAF7_VF9_RRRRCXpRRF9_EXG_G0_,%function
 b__MA7naqebvq4onfr4WbvaVAFg3__16irpgbeVAF2_12onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRAF7_VF9_RRRRCXpRRF9_EXG_G0_:
 nop
@@ -2168,7 +2168,7 @@
 b__MAX7naqebvq5ivags16ZnavsrfgVafgnaprrdREXF1_:
 nop
 .text
-.globl b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRRP2Ri
+.weak b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRRP2Ri
 .type b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRRP2Ri,%function
 b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRRP2Ri:
 nop
@@ -2193,17 +2193,17 @@
 b__MA7naqebvq5ivags11UnyZnavsrfg14vafregVafgnaprREXAF_10SdVafgnaprRAF0_9GenafcbegRAF0_4NepuRAF0_9UnySbezngRCAFg3__112onfvp_fgevatVpAF8_11pune_genvgfVpRRAF8_9nyybpngbeVpRRRR:
 nop
 .text
-.globl b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR25__cnefr_cnggrea_punenpgreVCXpRRG_F7_F7_
+.weak b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR25__cnefr_cnggrea_punenpgreVCXpRRG_F7_F7_
 .type b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR25__cnefr_cnggrea_punenpgreVCXpRRG_F7_F7_,%function
 b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR25__cnefr_cnggrea_punenpgreVCXpRRG_F7_F7_:
 nop
 .data
-.globl b__MGIAFg3__110__onpx_ersVpRR
+.weak b__MGIAFg3__110__onpx_ersVpRR
 .type b__MGIAFg3__110__onpx_ersVpRR,%object
 b__MGIAFg3__110__onpx_ersVpRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__120__funerq_cge_cbvagreVCA7naqebvq5ivags11IvagsBowrpgRAF_14qrsnhyg_qryrgrVF3_RRAF_9nyybpngbeVF3_RRR21__ba_mreb_funerq_jrnxRi
+.weak b__MAFg3__120__funerq_cge_cbvagreVCA7naqebvq5ivags11IvagsBowrpgRAF_14qrsnhyg_qryrgrVF3_RRAF_9nyybpngbeVF3_RRR21__ba_mreb_funerq_jrnxRi
 .type b__MAFg3__120__funerq_cge_cbvagreVCA7naqebvq5ivags11IvagsBowrpgRAF_14qrsnhyg_qryrgrVF3_RRAF_9nyybpngbeVF3_RRR21__ba_mreb_funerq_jrnxRi,%function
 b__MAFg3__120__funerq_cge_cbvagreVCA7naqebvq5ivags11IvagsBowrpgRAF_14qrsnhyg_qryrgrVF3_RRAF_9nyybpngbeVF3_RRR21__ba_mreb_funerq_jrnxRi:
 nop
@@ -2213,7 +2213,7 @@
 b__MAX7naqebvq5ivags13ZngevkKzySvyrrdREXF1_:
 nop
 .text
-.globl b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR24__cnefr_punenpgre_rfpncrVCXpRRG_F7_F7_CAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
+.weak b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR24__cnefr_punenpgre_rfpncrVCXpRRG_F7_F7_CAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
 .type b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR24__cnefr_punenpgre_rfpncrVCXpRRG_F7_F7_CAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR,%function
 b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR24__cnefr_punenpgre_rfpncrVCXpRRG_F7_F7_CAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR:
 nop
@@ -2228,7 +2228,7 @@
 b__MA7naqebvq5ivags11IvagsBowrpg28TrgQrivprPbzcngvovyvglZngevkRo:
 nop
 .text
-.globl b__MAFg3__120__funerq_cge_rzcynprVA7naqebvq5ivags11UnyZnavsrfgRAF_9nyybpngbeVF3_RRR16__ba_mreb_funerqRi
+.weak b__MAFg3__120__funerq_cge_rzcynprVA7naqebvq5ivags11UnyZnavsrfgRAF_9nyybpngbeVF3_RRR16__ba_mreb_funerqRi
 .type b__MAFg3__120__funerq_cge_rzcynprVA7naqebvq5ivags11UnyZnavsrfgRAF_9nyybpngbeVF3_RRR16__ba_mreb_funerqRi,%function
 b__MAFg3__120__funerq_cge_rzcynprVA7naqebvq5ivags11UnyZnavsrfgRAF_9nyybpngbeVF3_RRR16__ba_mreb_funerqRi:
 nop
@@ -2238,12 +2238,12 @@
 b__MAX7naqebvq5ivags11EhagvzrVasb7pchVasbRi:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq10SdVafgnaprRAF_9nyybpngbeVF2_RRR8__nccraqRz
+.weak b__MAFg3__16irpgbeVA7naqebvq10SdVafgnaprRAF_9nyybpngbeVF2_RRR8__nccraqRz
 .type b__MAFg3__16irpgbeVA7naqebvq10SdVafgnaprRAF_9nyybpngbeVF2_RRR8__nccraqRz,%function
 b__MAFg3__16irpgbeVA7naqebvq10SdVafgnaprRAF_9nyybpngbeVF2_RRR8__nccraqRz:
 nop
 .data
-.globl b__MGIA7naqebvq5ivags16KzyAbqrPbairegreVAF0_19PbzcngvovyvglZngevkRRR
+.weak b__MGIA7naqebvq5ivags16KzyAbqrPbairegreVAF0_19PbzcngvovyvglZngevkRRR
 .type b__MGIA7naqebvq5ivags16KzyAbqrPbairegreVAF0_19PbzcngvovyvglZngevkRRR,%object
 b__MGIA7naqebvq5ivags16KzyAbqrPbairegreVAF0_19PbzcngvovyvglZngevkRRR:
 .space __SIZEOF_POINTER__
@@ -2253,7 +2253,7 @@
 b__MAX7naqebvq5ivags16ZnavsrfgVafgnapr4nepuRi:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_4cnveVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRF7_RRAF_4yrffVF8_RRAF5_VF8_RRR7qrfgeblRCAF_11__gerr_abqrVF8_CiRR
+.weak b__MAFg3__16__gerrVAF_4cnveVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRF7_RRAF_4yrffVF8_RRAF5_VF8_RRR7qrfgeblRCAF_11__gerr_abqrVF8_CiRR
 .type b__MAFg3__16__gerrVAF_4cnveVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRF7_RRAF_4yrffVF8_RRAF5_VF8_RRR7qrfgeblRCAF_11__gerr_abqrVF8_CiRR,%function
 b__MAFg3__16__gerrVAF_4cnveVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRF7_RRAF_4yrffVF8_RRAF5_VF8_RRR7qrfgeblRCAF_11__gerr_abqrVF8_CiRR:
 nop
@@ -2263,7 +2263,7 @@
 b__MAX7naqebvq5ivags11UnyZnavsrfg15frcbyvplIrefvbaRi:
 nop
 .text
-.globl b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
+.weak b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
 .type b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_,%function
 b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_:
 nop
@@ -2278,12 +2278,12 @@
 b__MA7naqebvq5ivags11IvagsBowrpg28trgQrivprPbzcngvovyvglZngevkRo:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRA7naqebvq5ivags15ZnavsrfgKzySvyrRRRAF_19__znc_inyhr_pbzcnerVF7_FO_AF_4yrffVF7_RRYo1RRRAF5_VFO_RRR15__rzcynpr_zhygvVWEXAF_4cnveVXF7_FN_RRRRRAF_15__gerr_vgrengbeVFO_CAF_11__gerr_abqrVFO_CiRRyRRQcBG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRA7naqebvq5ivags15ZnavsrfgKzySvyrRRRAF_19__znc_inyhr_pbzcnerVF7_FO_AF_4yrffVF7_RRYo1RRRAF5_VFO_RRR15__rzcynpr_zhygvVWEXAF_4cnveVXF7_FN_RRRRRAF_15__gerr_vgrengbeVFO_CAF_11__gerr_abqrVFO_CiRRyRRQcBG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRA7naqebvq5ivags15ZnavsrfgKzySvyrRRRAF_19__znc_inyhr_pbzcnerVF7_FO_AF_4yrffVF7_RRYo1RRRAF5_VFO_RRR15__rzcynpr_zhygvVWEXAF_4cnveVXF7_FN_RRRRRAF_15__gerr_vgrengbeVFO_CAF_11__gerr_abqrVFO_CiRRyRRQcBG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRA7naqebvq5ivags15ZnavsrfgKzySvyrRRRAF_19__znc_inyhr_pbzcnerVF7_FO_AF_4yrffVF7_RRYo1RRRAF5_VFO_RRR15__rzcynpr_zhygvVWEXAF_4cnveVXF7_FN_RRRRRAF_15__gerr_vgrengbeVFO_CAF_11__gerr_abqrVFO_CiRRyRRQcBG_:
 nop
 .text
-.globl b__MA7naqebvq5ivags5cnefrVAF0_12IrefvbaEnatrRRRoEXAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRRCAF3_6irpgbeVG_AF7_VFQ_RRRR
+.weak b__MA7naqebvq5ivags5cnefrVAF0_12IrefvbaEnatrRRRoEXAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRRCAF3_6irpgbeVG_AF7_VFQ_RRRR
 .type b__MA7naqebvq5ivags5cnefrVAF0_12IrefvbaEnatrRRRoEXAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRRCAF3_6irpgbeVG_AF7_VFQ_RRRR,%function
 b__MA7naqebvq5ivags5cnefrVAF0_12IrefvbaEnatrRRRoEXAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRRCAF3_6irpgbeVG_AF7_VFQ_RRRR:
 nop
@@ -2298,17 +2298,17 @@
 b__MA7naqebvq5ivags32tXrearyPbasvtGlcrqInyhrPbairegreR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRF7_RRAF_19__znc_inyhr_pbzcnerVF7_F8_AF_4yrffVF7_RRYo1RRRAF5_VF8_RRR16__pbafgehpg_abqrVWEXAF_9fho_zngpuVAF_11__jenc_vgreVCXpRRRREN2_FV_RRRAF_10havdhr_cgeVAF_11__gerr_abqrVF8_CiRRAF_22__gerr_abqr_qrfgehpgbeVAF5_VFG_RRRRRRQcBG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRF7_RRAF_19__znc_inyhr_pbzcnerVF7_F8_AF_4yrffVF7_RRYo1RRRAF5_VF8_RRR16__pbafgehpg_abqrVWEXAF_9fho_zngpuVAF_11__jenc_vgreVCXpRRRREN2_FV_RRRAF_10havdhr_cgeVAF_11__gerr_abqrVF8_CiRRAF_22__gerr_abqr_qrfgehpgbeVAF5_VFG_RRRRRRQcBG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRF7_RRAF_19__znc_inyhr_pbzcnerVF7_F8_AF_4yrffVF7_RRYo1RRRAF5_VF8_RRR16__pbafgehpg_abqrVWEXAF_9fho_zngpuVAF_11__jenc_vgreVCXpRRRREN2_FV_RRRAF_10havdhr_cgeVAF_11__gerr_abqrVF8_CiRRAF_22__gerr_abqr_qrfgehpgbeVAF5_VFG_RRRRRRQcBG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRF7_RRAF_19__znc_inyhr_pbzcnerVF7_F8_AF_4yrffVF7_RRYo1RRRAF5_VF8_RRR16__pbafgehpg_abqrVWEXAF_9fho_zngpuVAF_11__jenc_vgreVCXpRRRREN2_FV_RRRAF_10havdhr_cgeVAF_11__gerr_abqrVF8_CiRRAF_22__gerr_abqr_qrfgehpgbeVAF5_VFG_RRRRRRQcBG_:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_9fho_zngpuVCXpRRAF_9nyybpngbeVF4_RRRP2REXF7_
+.weak b__MAFg3__16irpgbeVAF_9fho_zngpuVCXpRRAF_9nyybpngbeVF4_RRRP2REXF7_
 .type b__MAFg3__16irpgbeVAF_9fho_zngpuVCXpRRAF_9nyybpngbeVF4_RRRP2REXF7_,%function
 b__MAFg3__16irpgbeVAF_9fho_zngpuVCXpRRAF_9nyybpngbeVF4_RRRP2REXF7_:
 nop
 .text
-.globl b__MAFg3__16irpgbeVCXA7naqebvq5ivags12ZngevkXrearyRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVEXF5_RRiBG_
+.weak b__MAFg3__16irpgbeVCXA7naqebvq5ivags12ZngevkXrearyRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVEXF5_RRiBG_
 .type b__MAFg3__16irpgbeVCXA7naqebvq5ivags12ZngevkXrearyRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVEXF5_RRiBG_,%function
 b__MAFg3__16irpgbeVCXA7naqebvq5ivags12ZngevkXrearyRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVEXF5_RRiBG_:
 nop
@@ -2328,7 +2328,7 @@
 b__MA7naqebvq5ivags13iaqxPbairegreR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRA7naqebvq5ivags13ZngevkKzySvyrRRRAF_19__znc_inyhr_pbzcnerVF7_FO_AF_4yrffVF7_RRYo1RRRAF5_VFO_RRR20__rzcynpr_uvag_zhygvVWEXAF_4cnveVXF7_FN_RRRRRAF_15__gerr_vgrengbeVFO_CAF_11__gerr_abqrVFO_CiRRyRRAF_21__gerr_pbafg_vgrengbeVFO_FF_yRRQcBG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRA7naqebvq5ivags13ZngevkKzySvyrRRRAF_19__znc_inyhr_pbzcnerVF7_FO_AF_4yrffVF7_RRYo1RRRAF5_VFO_RRR20__rzcynpr_uvag_zhygvVWEXAF_4cnveVXF7_FN_RRRRRAF_15__gerr_vgrengbeVFO_CAF_11__gerr_abqrVFO_CiRRyRRAF_21__gerr_pbafg_vgrengbeVFO_FF_yRRQcBG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRA7naqebvq5ivags13ZngevkKzySvyrRRRAF_19__znc_inyhr_pbzcnerVF7_FO_AF_4yrffVF7_RRYo1RRRAF5_VFO_RRR20__rzcynpr_uvag_zhygvVWEXAF_4cnveVXF7_FN_RRRRRAF_15__gerr_vgrengbeVFO_CAF_11__gerr_abqrVFO_CiRRyRRAF_21__gerr_pbafg_vgrengbeVFO_FF_yRRQcBG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRA7naqebvq5ivags13ZngevkKzySvyrRRRAF_19__znc_inyhr_pbzcnerVF7_FO_AF_4yrffVF7_RRYo1RRRAF5_VFO_RRR20__rzcynpr_uvag_zhygvVWEXAF_4cnveVXF7_FN_RRRRRAF_15__gerr_vgrengbeVFO_CAF_11__gerr_abqrVFO_CiRRyRRAF_21__gerr_pbafg_vgrengbeVFO_FF_yRRQcBG_:
 nop
@@ -2338,7 +2338,7 @@
 b__MAX7naqebvq5ivags11ZnavsrfgUny17nccraqNyyIrefvbafRCAFg3__13frgVAF0_7IrefvbaRAF2_4yrffVF4_RRAF2_9nyybpngbeVF4_RRRR:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_4cnveVppRRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVF2_RRiBG_
+.weak b__MAFg3__16irpgbeVAF_4cnveVppRRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVF2_RRiBG_
 .type b__MAFg3__16irpgbeVAF_4cnveVppRRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVF2_RRiBG_,%function
 b__MAFg3__16irpgbeVAF_4cnveVppRRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVF2_RRiBG_:
 nop
@@ -2353,22 +2353,22 @@
 b__MA7naqebvq5ivags11ZnavsrfgUny15vafregVafgnaprfREXAFg3__13frgVAF_10SdVafgnaprRAF2_4yrffVF4_RRAF2_9nyybpngbeVF4_RRRRCAF2_12onfvp_fgevatVpAF2_11pune_genvgfVpRRAF7_VpRRRR:
 nop
 .text
-.globl b__MAFg3__1cyVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_12onfvp_fgevatVG_G0_G1_RREXF9_FO_
+.weak b__MAFg3__1cyVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_12onfvp_fgevatVG_G0_G1_RREXF9_FO_
 .type b__MAFg3__1cyVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_12onfvp_fgevatVG_G0_G1_RREXF9_FO_,%function
 b__MAFg3__1cyVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_12onfvp_fgevatVG_G0_G1_RREXF9_FO_:
 nop
 .text
-.globl b__MAXFg3__112ertrk_genvgfVpR20__ybbxhc_pbyyngranzrVCpRRAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRG_FN_p
+.weak b__MAXFg3__112ertrk_genvgfVpR20__ybbxhc_pbyyngranzrVCpRRAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRG_FN_p
 .type b__MAXFg3__112ertrk_genvgfVpR20__ybbxhc_pbyyngranzrVCpRRAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRG_FN_p,%function
 b__MAXFg3__112ertrk_genvgfVpR20__ybbxhc_pbyyngranzrVCpRRAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRG_FN_p:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_9fho_zngpuVAF_11__jenc_vgreVCXpRRRRAF_9nyybpngbeVF6_RRR8__nccraqRz
+.weak b__MAFg3__16irpgbeVAF_9fho_zngpuVAF_11__jenc_vgreVCXpRRRRAF_9nyybpngbeVF6_RRR8__nccraqRz
 .type b__MAFg3__16irpgbeVAF_9fho_zngpuVAF_11__jenc_vgreVCXpRRRRAF_9nyybpngbeVF6_RRR8__nccraqRz,%function
 b__MAFg3__16irpgbeVAF_9fho_zngpuVAF_11__jenc_vgreVCXpRRRRAF_9nyybpngbeVF6_RRR8__nccraqRz:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRA7naqebvq5ivags11ZnavsrfgUnyRRRAF_19__znc_inyhr_pbzcnerVF7_FO_AF_4yrffVF7_RRYo1RRRAF5_VFO_RRR14__nffvta_zhygvVAF_21__gerr_pbafg_vgrengbeVFO_CAF_11__gerr_abqrVFO_CiRRyRRRRiG_FC_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRA7naqebvq5ivags11ZnavsrfgUnyRRRAF_19__znc_inyhr_pbzcnerVF7_FO_AF_4yrffVF7_RRYo1RRRAF5_VFO_RRR14__nffvta_zhygvVAF_21__gerr_pbafg_vgrengbeVFO_CAF_11__gerr_abqrVFO_CiRRyRRRRiG_FC_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRA7naqebvq5ivags11ZnavsrfgUnyRRRAF_19__znc_inyhr_pbzcnerVF7_FO_AF_4yrffVF7_RRYo1RRRAF5_VFO_RRR14__nffvta_zhygvVAF_21__gerr_pbafg_vgrengbeVFO_CAF_11__gerr_abqrVFO_CiRRyRRRRiG_FC_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRA7naqebvq5ivags11ZnavsrfgUnyRRRAF_19__znc_inyhr_pbzcnerVF7_FO_AF_4yrffVF7_RRYo1RRRAF5_VFO_RRR14__nffvta_zhygvVAF_21__gerr_pbafg_vgrengbeVFO_CAF_11__gerr_abqrVFO_CiRRyRRRRiG_FC_:
 nop
@@ -2378,7 +2378,7 @@
 b__MAX7naqebvq5ivags16ZnavsrfgVafgnapr6sbezngRi:
 nop
 .data
-.globl b__MGIAFg3__121__rzcgl_aba_bja_fgngrVpRR
+.weak b__MGIAFg3__121__rzcgl_aba_bja_fgngrVpRR
 .type b__MGIAFg3__121__rzcgl_aba_bja_fgngrVpRR,%object
 b__MGIAFg3__121__rzcgl_aba_bja_fgngrVpRR:
 .space __SIZEOF_POINTER__
@@ -2393,7 +2393,7 @@
 b__MAX7naqebvq5ivags11EhagvzrVasb9bfIrefvbaRi:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_4yrffVF6_RRAF4_VF6_RRR4svaqVF6_RRAF_15__gerr_vgrengbeVF6_CAF_11__gerr_abqrVF6_CiRRyRREXG_
+.weak b__MAFg3__16__gerrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_4yrffVF6_RRAF4_VF6_RRR4svaqVF6_RRAF_15__gerr_vgrengbeVF6_CAF_11__gerr_abqrVF6_CiRRyRREXG_
 .type b__MAFg3__16__gerrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_4yrffVF6_RRAF4_VF6_RRR4svaqVF6_RRAF_15__gerr_vgrengbeVF6_CAF_11__gerr_abqrVF6_CiRRyRREXG_,%function
 b__MAFg3__16__gerrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_4yrffVF6_RRAF4_VF6_RRR4svaqVF6_RRAF_15__gerr_vgrengbeVF6_CAF_11__gerr_abqrVF6_CiRRyRREXG_:
 nop
@@ -2403,7 +2403,7 @@
 b__MA7naqebvq5ivags19PbzcngvovyvglZngevk20nqqNyyUnyfNfBcgvbanyRCF1_CAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRR:
 nop
 .text
-.globl b__MAXFg3__111__zngpu_nalVpR6__rkrpREAF_7__fgngrVpRR
+.weak b__MAXFg3__111__zngpu_nalVpR6__rkrpREAF_7__fgngrVpRR
 .type b__MAXFg3__111__zngpu_nalVpR6__rkrpREAF_7__fgngrVpRR,%function
 b__MAXFg3__111__zngpu_nalVpR6__rkrpREAF_7__fgngrVpRR:
 nop
@@ -2418,7 +2418,7 @@
 b__MA7naqebvq5ivags22genafcbegNepuPbairegreR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRA7naqebvq5ivags9ZngevkUnyRRRAF_19__znc_inyhr_pbzcnerVF7_FO_AF_4yrffVF7_RRYo1RRRAF5_VFO_RRR15__rzcynpr_zhygvVWF7_FN_RRRAF_15__gerr_vgrengbeVFO_CAF_11__gerr_abqrVFO_CiRRyRRQcBG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRA7naqebvq5ivags9ZngevkUnyRRRAF_19__znc_inyhr_pbzcnerVF7_FO_AF_4yrffVF7_RRYo1RRRAF5_VFO_RRR15__rzcynpr_zhygvVWF7_FN_RRRAF_15__gerr_vgrengbeVFO_CAF_11__gerr_abqrVFO_CiRRyRRQcBG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRA7naqebvq5ivags9ZngevkUnyRRRAF_19__znc_inyhr_pbzcnerVF7_FO_AF_4yrffVF7_RRYo1RRRAF5_VFO_RRR15__rzcynpr_zhygvVWF7_FN_RRRAF_15__gerr_vgrengbeVFO_CAF_11__gerr_abqrVFO_CiRRyRRQcBG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRA7naqebvq5ivags9ZngevkUnyRRRAF_19__znc_inyhr_pbzcnerVF7_FO_AF_4yrffVF7_RRYo1RRRAF5_VFO_RRR15__rzcynpr_zhygvVWF7_FN_RRRAF_15__gerr_vgrengbeVFO_CAF_11__gerr_abqrVFO_CiRRyRRQcBG_:
 nop
@@ -2438,7 +2438,7 @@
 b__MGIA7naqebvq5ivags11UnyZnavsrfgR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAXFg3__112ertrk_genvgfVpR9genafsbezVAF_11__jenc_vgreVCpRRRRAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRG_FP_
+.weak b__MAXFg3__112ertrk_genvgfVpR9genafsbezVAF_11__jenc_vgreVCpRRRRAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRG_FP_
 .type b__MAXFg3__112ertrk_genvgfVpR9genafsbezVAF_11__jenc_vgreVCpRRRRAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRG_FP_,%function
 b__MAXFg3__112ertrk_genvgfVpR9genafsbezVAF_11__jenc_vgreVCpRRRRAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRG_FP_:
 nop
@@ -2448,27 +2448,27 @@
 b__MA7naqebvq5ivags14gbSDAnzrFgevatREXAFg3__112onfvp_fgevatVpAF1_11pune_genvgfVpRRAF1_9nyybpngbeVpRRRREXAF0_7IrefvbaRF9_F9_:
 nop
 .text
-.globl b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR7frrxbssRkAF_8vbf_onfr7frrxqveRw
+.weak b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR7frrxbssRkAF_8vbf_onfr7frrxqveRw
 .type b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR7frrxbssRkAF_8vbf_onfr7frrxqveRw,%function
 b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR7frrxbssRkAF_8vbf_onfr7frrxqveRw:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq5ivags7IrefvbaRAF_9nyybpngbeVF3_RRR8__nccraqRz
+.weak b__MAFg3__16irpgbeVA7naqebvq5ivags7IrefvbaRAF_9nyybpngbeVF3_RRR8__nccraqRz
 .type b__MAFg3__16irpgbeVA7naqebvq5ivags7IrefvbaRAF_9nyybpngbeVF3_RRR8__nccraqRz,%function
 b__MAFg3__16irpgbeVA7naqebvq5ivags7IrefvbaRAF_9nyybpngbeVF3_RRR8__nccraqRz:
 nop
 .text
-.globl b__MAXFg3__112__zngpu_puneVpR6__rkrpREAF_7__fgngrVpRR
+.weak b__MAXFg3__112__zngpu_puneVpR6__rkrpREAF_7__fgngrVpRR
 .type b__MAXFg3__112__zngpu_puneVpR6__rkrpREAF_7__fgngrVpRR,%function
 b__MAXFg3__112__zngpu_puneVpR6__rkrpREAF_7__fgngrVpRR:
 nop
 .text
-.globl b__MAXFg3__120__oenpxrg_rkcerffvbaVpAF_12ertrk_genvgfVpRRR6__rkrpREAF_7__fgngrVpRR
+.weak b__MAXFg3__120__oenpxrg_rkcerffvbaVpAF_12ertrk_genvgfVpRRR6__rkrpREAF_7__fgngrVpRR
 .type b__MAXFg3__120__oenpxrg_rkcerffvbaVpAF_12ertrk_genvgfVpRRR6__rkrpREAF_7__fgngrVpRR,%function
 b__MAXFg3__120__oenpxrg_rkcerffvbaVpAF_12ertrk_genvgfVpRRR6__rkrpREAF_7__fgngrVpRR:
 nop
 .text
-.globl b__MAFg3__15qrdhrVAF_7__fgngrVpRRAF_9nyybpngbeVF2_RRR19__nqq_onpx_pncnpvglRi
+.weak b__MAFg3__15qrdhrVAF_7__fgngrVpRRAF_9nyybpngbeVF2_RRR19__nqq_onpx_pncnpvglRi
 .type b__MAFg3__15qrdhrVAF_7__fgngrVpRRAF_9nyybpngbeVF2_RRR19__nqq_onpx_pncnpvglRi,%function
 b__MAFg3__15qrdhrVAF_7__fgngrVpRRAF_9nyybpngbeVF2_RRR19__nqq_onpx_pncnpvglRi:
 nop
@@ -2498,7 +2498,7 @@
 b__MA7naqebvq5ivags10XrearyVasb5zretrRCF1_CAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRR:
 nop
 .text
-.globl b__MA7naqebvq5ivags9gb_fgevatVAF0_21XrearyFrcbyvplIrefvbaRRRAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRREXG_
+.weak b__MA7naqebvq5ivags9gb_fgevatVAF0_21XrearyFrcbyvplIrefvbaRRRAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRREXG_
 .type b__MA7naqebvq5ivags9gb_fgevatVAF0_21XrearyFrcbyvplIrefvbaRRRAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRREXG_,%function
 b__MA7naqebvq5ivags9gb_fgevatVAF0_21XrearyFrcbyvplIrefvbaRRRAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRREXG_:
 nop
@@ -2523,12 +2523,12 @@
 b__MA7naqebvq5ivagsyfREAFg3__113onfvp_bfgernzVpAF1_11pune_genvgfVpRRRREXAF0_16IaqxIrefvbaEnatrR:
 nop
 .data
-.globl b__MGIA7naqebvq5ivags16KzyAbqrPbairegreVAF0_7IrefvbaRRR
+.weak b__MGIA7naqebvq5ivags16KzyAbqrPbairegreVAF0_7IrefvbaRRR
 .type b__MGIA7naqebvq5ivags16KzyAbqrPbairegreVAF0_7IrefvbaRRR,%object
 b__MGIA7naqebvq5ivags16KzyAbqrPbairegreVAF0_7IrefvbaRRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAXFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRA7naqebvq5ivags15ZnavsrfgKzySvyrRRRAF_19__znc_inyhr_pbzcnerVF7_FO_AF_4yrffVF7_RRYo1RRRAF5_VFO_RRR19__rdhny_enatr_zhygvVF7_RRAF_4cnveVAF_21__gerr_pbafg_vgrengbeVFO_CAF_11__gerr_abqrVFO_CiRRyRRFC_RREXG_
+.weak b__MAXFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRA7naqebvq5ivags15ZnavsrfgKzySvyrRRRAF_19__znc_inyhr_pbzcnerVF7_FO_AF_4yrffVF7_RRYo1RRRAF5_VFO_RRR19__rdhny_enatr_zhygvVF7_RRAF_4cnveVAF_21__gerr_pbafg_vgrengbeVFO_CAF_11__gerr_abqrVFO_CiRRyRRFC_RREXG_
 .type b__MAXFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRA7naqebvq5ivags15ZnavsrfgKzySvyrRRRAF_19__znc_inyhr_pbzcnerVF7_FO_AF_4yrffVF7_RRYo1RRRAF5_VFO_RRR19__rdhny_enatr_zhygvVF7_RRAF_4cnveVAF_21__gerr_pbafg_vgrengbeVFO_CAF_11__gerr_abqrVFO_CiRRyRRFC_RREXG_,%function
 b__MAXFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRA7naqebvq5ivags15ZnavsrfgKzySvyrRRRAF_19__znc_inyhr_pbzcnerVF7_FO_AF_4yrffVF7_RRYo1RRRAF5_VFO_RRR19__rdhny_enatr_zhygvVF7_RRAF_4cnveVAF_21__gerr_pbafg_vgrengbeVFO_CAF_11__gerr_abqrVFO_CiRRyRRFC_RREXG_:
 nop
@@ -2538,7 +2538,7 @@
 b__MA7naqebvq5ivags29tPbzcngvovyvglZngevkPbairegreR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIA7naqebvq5ivags22GenafcbegNepuPbairegreR
+.weak b__MGIA7naqebvq5ivags22GenafcbegNepuPbairegreR
 .type b__MGIA7naqebvq5ivags22GenafcbegNepuPbairegreR,%object
 b__MGIA7naqebvq5ivags22GenafcbegNepuPbairegreR:
 .space __SIZEOF_POINTER__
@@ -2548,7 +2548,7 @@
 b__MAX7naqebvq5ivags9ZngevkUny15sbeRnpuVafgnaprREXAFg3__18shapgvbaVSoEXAF2_6irpgbeVAF0_12IrefvbaEnatrRAF2_9nyybpngbeVF5_RRRREXAF2_12onfvp_fgevatVpAF2_11pune_genvgfVpRRAF6_VpRRRRFU_oRRR:
 nop
 .text
-.globl b__MAFg3__120__funerq_cge_cbvagreVCAF_13__rzcgl_fgngrVpRRAF_14qrsnhyg_qryrgrVF2_RRAF_9nyybpngbeVF2_RRR16__ba_mreb_funerqRi
+.weak b__MAFg3__120__funerq_cge_cbvagreVCAF_13__rzcgl_fgngrVpRRAF_14qrsnhyg_qryrgrVF2_RRAF_9nyybpngbeVF2_RRR16__ba_mreb_funerqRi
 .type b__MAFg3__120__funerq_cge_cbvagreVCAF_13__rzcgl_fgngrVpRRAF_14qrsnhyg_qryrgrVF2_RRAF_9nyybpngbeVF2_RRR16__ba_mreb_funerqRi,%function
 b__MAFg3__120__funerq_cge_cbvagreVCAF_13__rzcgl_fgngrVpRRAF_14qrsnhyg_qryrgrVF2_RRAF_9nyybpngbeVF2_RRR16__ba_mreb_funerqRi:
 nop
@@ -2563,7 +2563,7 @@
 b__MA7naqebvq5ivags11IvagsBowrpg18trgCebcreglSrgpureRi:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_4cnveVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRA7naqebvq5ivags7IrefvbaRRRAF5_VFO_RRR21__chfu_onpx_fybj_cnguVFO_RRiBG_
+.weak b__MAFg3__16irpgbeVAF_4cnveVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRA7naqebvq5ivags7IrefvbaRRRAF5_VFO_RRR21__chfu_onpx_fybj_cnguVFO_RRiBG_
 .type b__MAFg3__16irpgbeVAF_4cnveVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRA7naqebvq5ivags7IrefvbaRRRAF5_VFO_RRR21__chfu_onpx_fybj_cnguVFO_RRiBG_,%function
 b__MAFg3__16irpgbeVAF_4cnveVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRA7naqebvq5ivags7IrefvbaRRRAF5_VFO_RRR21__chfu_onpx_fybj_cnguVFO_RRiBG_:
 nop
@@ -2608,12 +2608,12 @@
 b__MA7naqebvq5ivags7qrgnvyf5Ertrk7pbzcvyrREXAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRR:
 nop
 .text
-.globl b__MAXFg3__111__ybbxnurnqVpAF_12ertrk_genvgfVpRRR6__rkrpREAF_7__fgngrVpRR
+.weak b__MAXFg3__111__ybbxnurnqVpAF_12ertrk_genvgfVpRRR6__rkrpREAF_7__fgngrVpRR
 .type b__MAXFg3__111__ybbxnurnqVpAF_12ertrk_genvgfVpRRR6__rkrpREAF_7__fgngrVpRR,%function
 b__MAXFg3__111__ybbxnurnqVpAF_12ertrk_genvgfVpRRR6__rkrpREAF_7__fgngrVpRR:
 nop
 .data
-.globl b__MGIA7naqebvq5ivags28PbzcngvovyvglZngevkPbairegreR
+.weak b__MGIA7naqebvq5ivags28PbzcngvovyvglZngevkPbairegreR
 .type b__MGIA7naqebvq5ivags28PbzcngvovyvglZngevkPbairegreR,%object
 b__MGIA7naqebvq5ivags28PbzcngvovyvglZngevkPbairegreR:
 .space __SIZEOF_POINTER__
@@ -2623,7 +2623,7 @@
 b__MAX7naqebvq5ivags11UnyZnavsrfg15unfUvqyVafgnaprREXAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRREXAF0_7IrefvbaRFN_FN_:
 nop
 .text
-.globl b__MAXFg3__110__e_napubeVpR6__rkrpREAF_7__fgngrVpRR
+.weak b__MAXFg3__110__e_napubeVpR6__rkrpREAF_7__fgngrVpRR
 .type b__MAXFg3__110__e_napubeVpR6__rkrpREAF_7__fgngrVpRR,%function
 b__MAXFg3__110__e_napubeVpR6__rkrpREAF_7__fgngrVpRR:
 nop
@@ -2648,7 +2648,7 @@
 b__MA7naqebvq5ivags28unyZnavsrfgFrcbyvplPbairegreR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIA7naqebvq5ivags16KzyAbqrPbairegreVAFg3__16irpgbeVAF2_4cnveVAF0_15XrearyPbasvtXrlRAF0_22XrearyPbasvtGlcrqInyhrRRRAF2_9nyybpngbeVF7_RRRRRR
+.weak b__MGIA7naqebvq5ivags16KzyAbqrPbairegreVAFg3__16irpgbeVAF2_4cnveVAF0_15XrearyPbasvtXrlRAF0_22XrearyPbasvtGlcrqInyhrRRRAF2_9nyybpngbeVF7_RRRRRR
 .type b__MGIA7naqebvq5ivags16KzyAbqrPbairegreVAFg3__16irpgbeVAF2_4cnveVAF0_15XrearyPbasvtXrlRAF0_22XrearyPbasvtGlcrqInyhrRRRAF2_9nyybpngbeVF7_RRRRRR,%object
 b__MGIA7naqebvq5ivags16KzyAbqrPbairegreVAFg3__16irpgbeVAF2_4cnveVAF0_15XrearyPbasvtXrlRAF0_22XrearyPbasvtGlcrqInyhrRRRAF2_9nyybpngbeVF7_RRRRRR:
 .space __SIZEOF_POINTER__
@@ -2658,7 +2658,7 @@
 b__MAX7naqebvq5ivags9ZngevkUny15sbeRnpuVafgnaprREXAFg3__18shapgvbaVSoEXAF0_14ZngevkVafgnaprRRRR:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_4yrffVF6_RRAF4_VF6_RRR15__rzcynpr_zhygvVWEXF6_RRRAF_15__gerr_vgrengbeVF6_CAF_11__gerr_abqrVF6_CiRRyRRQcBG_
+.weak b__MAFg3__16__gerrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_4yrffVF6_RRAF4_VF6_RRR15__rzcynpr_zhygvVWEXF6_RRRAF_15__gerr_vgrengbeVF6_CAF_11__gerr_abqrVF6_CiRRyRRQcBG_
 .type b__MAFg3__16__gerrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_4yrffVF6_RRAF4_VF6_RRR15__rzcynpr_zhygvVWEXF6_RRRAF_15__gerr_vgrengbeVF6_CAF_11__gerr_abqrVF6_CiRRyRRQcBG_,%function
 b__MAFg3__16__gerrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_4yrffVF6_RRAF4_VF6_RRR15__rzcynpr_zhygvVWEXF6_RRRAF_15__gerr_vgrengbeVF6_CAF_11__gerr_abqrVF6_CiRRyRRQcBG_:
 nop
@@ -2668,12 +2668,12 @@
 b__MAX7naqebvq5ivags11UnyZnavsrfg12trgVafgnaprfRAF0_9UnySbezngREXAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRREXAF0_7IrefvbaRFO_:
 nop
 .text
-.globl b__MAXFg3__110__onpx_ersVpR6__rkrpREAF_7__fgngrVpRR
+.weak b__MAXFg3__110__onpx_ersVpR6__rkrpREAF_7__fgngrVpRR
 .type b__MAXFg3__110__onpx_ersVpR6__rkrpREAF_7__fgngrVpRR,%function
 b__MAXFg3__110__onpx_ersVpR6__rkrpREAF_7__fgngrVpRR:
 nop
 .text
-.globl b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR18__cnefr_abaqhcy_ERVCXpRRG_F7_F7_
+.weak b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR18__cnefr_abaqhcy_ERVCXpRRG_F7_F7_
 .type b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR18__cnefr_abaqhcy_ERVCXpRRG_F7_F7_,%function
 b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR18__cnefr_abaqhcy_ERVCXpRRG_F7_F7_:
 nop
@@ -2723,7 +2723,7 @@
 b__MAX7naqebvq5ivags11UnyZnavsrfg9fubhyqNqqREXAF0_11ZnavsrfgUnyR:
 nop
 .text
-.globl b__MAFg3__116__frg_qvssreraprVEAF_6__yrffVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRF7_RRAF_21__gerr_pbafg_vgrengbeVF7_CAF_11__gerr_abqrVF7_CiRRyRRFS_AF_15vafreg_vgrengbeVAF_6irpgbeVF7_AF5_VF7_RRRRRRRRG2_G0_FZ_G1_FA_FY_G_
+.weak b__MAFg3__116__frg_qvssreraprVEAF_6__yrffVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRF7_RRAF_21__gerr_pbafg_vgrengbeVF7_CAF_11__gerr_abqrVF7_CiRRyRRFS_AF_15vafreg_vgrengbeVAF_6irpgbeVF7_AF5_VF7_RRRRRRRRG2_G0_FZ_G1_FA_FY_G_
 .type b__MAFg3__116__frg_qvssreraprVEAF_6__yrffVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRF7_RRAF_21__gerr_pbafg_vgrengbeVF7_CAF_11__gerr_abqrVF7_CiRRyRRFS_AF_15vafreg_vgrengbeVAF_6irpgbeVF7_AF5_VF7_RRRRRRRRG2_G0_FZ_G1_FA_FY_G_,%function
 b__MAFg3__116__frg_qvssreraprVEAF_6__yrffVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRF7_RRAF_21__gerr_pbafg_vgrengbeVF7_CAF_11__gerr_abqrVF7_CiRRyRRFS_AF_15vafreg_vgrengbeVAF_6irpgbeVF7_AF5_VF7_RRRRRRRRG2_G0_FZ_G1_FA_FY_G_:
 nop
@@ -2738,22 +2738,22 @@
 b__MGIA7naqebvq5ivags7qrgnvyf19SvyrFlfgrzHaqreCnguR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__15qrdhrVAF_7__fgngrVpRRAF_9nyybpngbeVF2_RRR20__nqq_sebag_pncnpvglRi
+.weak b__MAFg3__15qrdhrVAF_7__fgngrVpRRAF_9nyybpngbeVF2_RRR20__nqq_sebag_pncnpvglRi
 .type b__MAFg3__15qrdhrVAF_7__fgngrVpRRAF_9nyybpngbeVF2_RRR20__nqq_sebag_pncnpvglRi,%function
 b__MAFg3__15qrdhrVAF_7__fgngrVpRRAF_9nyybpngbeVF2_RRR20__nqq_sebag_pncnpvglRi:
 nop
 .text
-.globl b__MA7naqebvq5ivags9gb_fgevatVAF0_13XrearyIrefvbaRRRAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRREXG_
+.weak b__MA7naqebvq5ivags9gb_fgevatVAF0_13XrearyIrefvbaRRRAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRREXG_
 .type b__MA7naqebvq5ivags9gb_fgevatVAF0_13XrearyIrefvbaRRRAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRREXG_,%function
 b__MA7naqebvq5ivags9gb_fgevatVAF0_13XrearyIrefvbaRRRAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRREXG_:
 nop
 .text
-.globl b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR22__cnefr_qrpvzny_rfpncrVCXpRRG_F7_F7_
+.weak b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR22__cnefr_qrpvzny_rfpncrVCXpRRG_F7_F7_
 .type b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR22__cnefr_qrpvzny_rfpncrVCXpRRG_F7_F7_,%function
 b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR22__cnefr_qrpvzny_rfpncrVCXpRRG_F7_F7_:
 nop
 .text
-.globl b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR24__cnefr_pbyyngvat_flzobyVCXpRRG_F7_F7_EAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
+.weak b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR24__cnefr_pbyyngvat_flzobyVCXpRRG_F7_F7_EAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
 .type b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR24__cnefr_pbyyngvat_flzobyVCXpRRG_F7_F7_EAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR,%function
 b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR24__cnefr_pbyyngvat_flzobyVCXpRRG_F7_F7_EAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR:
 nop
@@ -2763,7 +2763,7 @@
 b__MGIA7naqebvq5ivags11EhagvzrVasbR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__16__gerrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_4yrffVF6_RRAF4_VF6_RRR12__svaq_rdhnyVF6_RRECAF_16__gerr_abqr_onfrVCiRRECAF_15__gerr_raq_abqrVFS_RREXG_
+.weak b__MAFg3__16__gerrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_4yrffVF6_RRAF4_VF6_RRR12__svaq_rdhnyVF6_RRECAF_16__gerr_abqr_onfrVCiRRECAF_15__gerr_raq_abqrVFS_RREXG_
 .type b__MAFg3__16__gerrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_4yrffVF6_RRAF4_VF6_RRR12__svaq_rdhnyVF6_RRECAF_16__gerr_abqr_onfrVCiRRECAF_15__gerr_raq_abqrVFS_RREXG_,%function
 b__MAFg3__16__gerrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_4yrffVF6_RRAF4_VF6_RRR12__svaq_rdhnyVF6_RRECAF_16__gerr_abqr_onfrVCiRRECAF_15__gerr_raq_abqrVFS_RREXG_:
 nop
@@ -2783,12 +2783,12 @@
 b__MGua32_AX7naqebvq5ivags11UnyZnavsrfg16fubhyqNqqKzySvyrREXAF0_15ZnavsrfgKzySvyrR:
 nop
 .text
-.globl b__MAXFg3__112ertrk_genvgfVpR19__genafsbez_cevznelVCpRRAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRG_FN_p
+.weak b__MAXFg3__112ertrk_genvgfVpR19__genafsbez_cevznelVCpRRAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRG_FN_p
 .type b__MAXFg3__112ertrk_genvgfVpR19__genafsbez_cevznelVCpRRAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRG_FN_p,%function
 b__MAXFg3__112ertrk_genvgfVpR19__genafsbez_cevznelVCpRRAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRG_FN_p:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRF7_RRAF_19__znc_inyhr_pbzcnerVF7_F8_AF_4yrffVF7_RRYo1RRRAF5_VF8_RRR14__nffvta_zhygvVAF_21__gerr_pbafg_vgrengbeVF8_CAF_11__gerr_abqrVF8_CiRRyRRRRiG_FZ_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRF7_RRAF_19__znc_inyhr_pbzcnerVF7_F8_AF_4yrffVF7_RRYo1RRRAF5_VF8_RRR14__nffvta_zhygvVAF_21__gerr_pbafg_vgrengbeVF8_CAF_11__gerr_abqrVF8_CiRRyRRRRiG_FZ_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRF7_RRAF_19__znc_inyhr_pbzcnerVF7_F8_AF_4yrffVF7_RRYo1RRRAF5_VF8_RRR14__nffvta_zhygvVAF_21__gerr_pbafg_vgrengbeVF8_CAF_11__gerr_abqrVF8_CiRRyRRRRiG_FZ_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRF7_RRAF_19__znc_inyhr_pbzcnerVF7_F8_AF_4yrffVF7_RRYo1RRRAF5_VF8_RRR14__nffvta_zhygvVAF_21__gerr_pbafg_vgrengbeVF8_CAF_11__gerr_abqrVF8_CiRRyRRRRiG_FZ_:
 nop
@@ -2803,7 +2803,7 @@
 b__MA7naqebvq5ivagsyfREAFg3__113onfvp_bfgernzVpAF1_11pune_genvgfVpRRRRAF0_16XrearyPbasvtGlcrR:
 nop
 .data
-.globl b__MGIA7naqebvq5ivags22ZngevkKzySvyrPbairegreR
+.weak b__MGIA7naqebvq5ivags22ZngevkKzySvyrPbairegreR
 .type b__MGIA7naqebvq5ivags22ZngevkKzySvyrPbairegreR,%object
 b__MGIA7naqebvq5ivags22ZngevkKzySvyrPbairegreR:
 .space __SIZEOF_POINTER__
@@ -2843,12 +2843,12 @@
 b__MAX7naqebvq5ivags18XrearyPbasvtCnefre7pbasvtfRi:
 nop
 .text
-.globl b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR16__cnefr_rpzn_rkcVCXpRRG_F7_F7_
+.weak b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR16__cnefr_rpzn_rkcVCXpRRG_F7_F7_
 .type b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR16__cnefr_rpzn_rkcVCXpRRG_F7_F7_,%function
 b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR16__cnefr_rpzn_rkcVCXpRRG_F7_F7_:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVzAF_4unfuVzRRAF_8rdhny_gbVzRRAF_9nyybpngbeVzRRR8__erunfuRz
+.weak b__MAFg3__112__unfu_gnoyrVzAF_4unfuVzRRAF_8rdhny_gbVzRRAF_9nyybpngbeVzRRR8__erunfuRz
 .type b__MAFg3__112__unfu_gnoyrVzAF_4unfuVzRRAF_8rdhny_gbVzRRAF_9nyybpngbeVzRRR8__erunfuRz,%function
 b__MAFg3__112__unfu_gnoyrVzAF_4unfuVzRRAF_8rdhny_gbVzRRAF_9nyybpngbeVzRRR8__erunfuRz:
 nop
@@ -2858,22 +2858,22 @@
 b__MA7naqebvq5ivags7qrgnvyf12xBqzZnavsrfgR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq5ivags9gb_fgevatVAF0_9GenafcbegRRRAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRREXG_
+.weak b__MA7naqebvq5ivags9gb_fgevatVAF0_9GenafcbegRRRAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRREXG_
 .type b__MA7naqebvq5ivags9gb_fgevatVAF0_9GenafcbegRRRAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRREXG_,%function
 b__MA7naqebvq5ivags9gb_fgevatVAF0_9GenafcbegRRRAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRREXG_:
 nop
 .data
-.globl b__MGIAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
+.weak b__MGIAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
 .type b__MGIAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR,%object
 b__MGIAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRF7_RRAF_19__znc_inyhr_pbzcnerVF7_F8_AF_4yrffVF7_RRYo1RRRAF5_VF8_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVCiRRAF_21__gerr_pbafg_vgrengbeVF8_CAF_11__gerr_abqrVF8_FU_RRyRRECAF_15__gerr_raq_abqrVFW_RRFX_EXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRF7_RRAF_19__znc_inyhr_pbzcnerVF7_F8_AF_4yrffVF7_RRYo1RRRAF5_VF8_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVCiRRAF_21__gerr_pbafg_vgrengbeVF8_CAF_11__gerr_abqrVF8_FU_RRyRRECAF_15__gerr_raq_abqrVFW_RRFX_EXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRF7_RRAF_19__znc_inyhr_pbzcnerVF7_F8_AF_4yrffVF7_RRYo1RRRAF5_VF8_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVCiRRAF_21__gerr_pbafg_vgrengbeVF8_CAF_11__gerr_abqrVF8_FU_RRyRRECAF_15__gerr_raq_abqrVFW_RRFX_EXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRF7_RRAF_19__znc_inyhr_pbzcnerVF7_F8_AF_4yrffVF7_RRYo1RRRAF5_VF8_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVCiRRAF_21__gerr_pbafg_vgrengbeVF8_CAF_11__gerr_abqrVF8_FU_RRyRRECAF_15__gerr_raq_abqrVFW_RRFX_EXG_:
 nop
 .data
-.globl b__MGIA7naqebvq5ivags16KzyAbqrPbairegreVAF0_8FrcbyvplRRR
+.weak b__MGIA7naqebvq5ivags16KzyAbqrPbairegreVAF0_8FrcbyvplRRR
 .type b__MGIA7naqebvq5ivags16KzyAbqrPbairegreVAF0_8FrcbyvplRRR,%object
 b__MGIA7naqebvq5ivags16KzyAbqrPbairegreVAF0_8FrcbyvplRRR:
 .space __SIZEOF_POINTER__
@@ -2888,12 +2888,12 @@
 b__MA7naqebvq5ivags19PbzcngvovyvglZngevk16nqqNyyNfBcgvbanyRC5AnzrqVF1_RCAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRR:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_9fho_zngpuVCXpRRAF_9nyybpngbeVF4_RRR8__nccraqRzEXF4_
+.weak b__MAFg3__16irpgbeVAF_9fho_zngpuVCXpRRAF_9nyybpngbeVF4_RRR8__nccraqRzEXF4_
 .type b__MAFg3__16irpgbeVAF_9fho_zngpuVCXpRRAF_9nyybpngbeVF4_RRR8__nccraqRzEXF4_,%function
 b__MAFg3__16irpgbeVAF_9fho_zngpuVCXpRRAF_9nyybpngbeVF4_RRR8__nccraqRzEXF4_:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRA7naqebvq5ivags12UnyVagresnprRRRAF_19__znc_inyhr_pbzcnerVF7_FO_AF_4yrffVF7_RRYo1RRRAF5_VFO_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFO_CAF_11__gerr_abqrVFO_CiRRyRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRA7naqebvq5ivags12UnyVagresnprRRRAF_19__znc_inyhr_pbzcnerVF7_FO_AF_4yrffVF7_RRYo1RRRAF5_VFO_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFO_CAF_11__gerr_abqrVFO_CiRRyRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRA7naqebvq5ivags12UnyVagresnprRRRAF_19__znc_inyhr_pbzcnerVF7_FO_AF_4yrffVF7_RRYo1RRRAF5_VFO_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFO_CAF_11__gerr_abqrVFO_CiRRyRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRA7naqebvq5ivags12UnyVagresnprRRRAF_19__znc_inyhr_pbzcnerVF7_FO_AF_4yrffVF7_RRYo1RRRAF5_VFO_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFO_CAF_11__gerr_abqrVFO_CiRRyRR:
 nop
@@ -2913,7 +2913,7 @@
 b__MAX7naqebvq5ivags11UnyZnavsrfg21purpxVapbzcngvoyrUnyfREXAF0_19PbzcngvovyvglZngevkR:
 nop
 .text
-.globl b__MAFg3__120__funerq_cge_cbvagreVCAF_13__rzcgl_fgngrVpRRAF_14qrsnhyg_qryrgrVF2_RRAF_9nyybpngbeVF2_RRR21__ba_mreb_funerq_jrnxRi
+.weak b__MAFg3__120__funerq_cge_cbvagreVCAF_13__rzcgl_fgngrVpRRAF_14qrsnhyg_qryrgrVF2_RRAF_9nyybpngbeVF2_RRR21__ba_mreb_funerq_jrnxRi
 .type b__MAFg3__120__funerq_cge_cbvagreVCAF_13__rzcgl_fgngrVpRRAF_14qrsnhyg_qryrgrVF2_RRAF_9nyybpngbeVF2_RRR21__ba_mreb_funerq_jrnxRi,%function
 b__MAFg3__120__funerq_cge_cbvagreVCAF_13__rzcgl_fgngrVpRRAF_14qrsnhyg_qryrgrVF2_RRAF_9nyybpngbeVF2_RRR21__ba_mreb_funerq_jrnxRi:
 nop
@@ -2933,7 +2933,7 @@
 b__MAX7naqebvq5ivags10XrearyVasbrdREXF1_:
 nop
 .data
-.globl b__MGIAFg3__120__zngpu_pune_pbyyngrVpAF_12ertrk_genvgfVpRRRR
+.weak b__MGIAFg3__120__zngpu_pune_pbyyngrVpAF_12ertrk_genvgfVpRRRR
 .type b__MGIAFg3__120__zngpu_pune_pbyyngrVpAF_12ertrk_genvgfVpRRRR,%object
 b__MGIAFg3__120__zngpu_pune_pbyyngrVpAF_12ertrk_genvgfVpRRRR:
 .space __SIZEOF_POINTER__
@@ -2948,22 +2948,22 @@
 b__MA7naqebvq5ivags11EhagvzrVasb14frgXrearyYriryRAF0_5YriryR:
 nop
 .data
-.globl b__MGIAFg3__120__funerq_cge_cbvagreVCA7naqebvq5ivags11UnyZnavsrfgRAF_14qrsnhyg_qryrgrVF3_RRAF_9nyybpngbeVF3_RRRR
+.weak b__MGIAFg3__120__funerq_cge_cbvagreVCA7naqebvq5ivags11UnyZnavsrfgRAF_14qrsnhyg_qryrgrVF3_RRAF_9nyybpngbeVF3_RRRR
 .type b__MGIAFg3__120__funerq_cge_cbvagreVCA7naqebvq5ivags11UnyZnavsrfgRAF_14qrsnhyg_qryrgrVF3_RRAF_9nyybpngbeVF3_RRRR,%object
 b__MGIAFg3__120__funerq_cge_cbvagreVCA7naqebvq5ivags11UnyZnavsrfgRAF_14qrsnhyg_qryrgrVF3_RRAF_9nyybpngbeVF3_RRRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRA7naqebvq5ivags12UnyVagresnprRRRAF_19__znc_inyhr_pbzcnerVF7_FO_AF_4yrffVF7_RRYo1RRRAF5_VFO_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVCiRRECAF_15__gerr_raq_abqrVFZ_RREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRA7naqebvq5ivags12UnyVagresnprRRRAF_19__znc_inyhr_pbzcnerVF7_FO_AF_4yrffVF7_RRYo1RRRAF5_VFO_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVCiRRECAF_15__gerr_raq_abqrVFZ_RREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRA7naqebvq5ivags12UnyVagresnprRRRAF_19__znc_inyhr_pbzcnerVF7_FO_AF_4yrffVF7_RRYo1RRRAF5_VFO_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVCiRRECAF_15__gerr_raq_abqrVFZ_RREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRA7naqebvq5ivags12UnyVagresnprRRRAF_19__znc_inyhr_pbzcnerVF7_FO_AF_4yrffVF7_RRYo1RRRAF5_VFO_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVCiRRECAF_15__gerr_raq_abqrVFZ_RREXG_:
 nop
 .text
-.globl b__MAFg3__116__bjaf_bar_fgngrVpRQ2Ri
+.weak b__MAFg3__116__bjaf_bar_fgngrVpRQ2Ri
 .type b__MAFg3__116__bjaf_bar_fgngrVpRQ2Ri,%function
 b__MAFg3__116__bjaf_bar_fgngrVpRQ2Ri:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRF7_RRAF_19__znc_inyhr_pbzcnerVF7_F8_AF_4yrffVF7_RRYo1RRRAF5_VF8_RRR21__rzcynpr_havdhr_vzcyVWEXAF_9fho_zngpuVAF_11__jenc_vgreVCXpRRRREN2_FV_RRRAF_4cnveVAF_15__gerr_vgrengbeVF8_CAF_11__gerr_abqrVF8_CiRRyRRoRRQcBG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRF7_RRAF_19__znc_inyhr_pbzcnerVF7_F8_AF_4yrffVF7_RRYo1RRRAF5_VF8_RRR21__rzcynpr_havdhr_vzcyVWEXAF_9fho_zngpuVAF_11__jenc_vgreVCXpRRRREN2_FV_RRRAF_4cnveVAF_15__gerr_vgrengbeVF8_CAF_11__gerr_abqrVF8_CiRRyRRoRRQcBG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRF7_RRAF_19__znc_inyhr_pbzcnerVF7_F8_AF_4yrffVF7_RRYo1RRRAF5_VF8_RRR21__rzcynpr_havdhr_vzcyVWEXAF_9fho_zngpuVAF_11__jenc_vgreVCXpRRRREN2_FV_RRRAF_4cnveVAF_15__gerr_vgrengbeVF8_CAF_11__gerr_abqrVF8_CiRRyRRoRRQcBG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRF7_RRAF_19__znc_inyhr_pbzcnerVF7_F8_AF_4yrffVF7_RRYo1RRRAF5_VF8_RRR21__rzcynpr_havdhr_vzcyVWEXAF_9fho_zngpuVAF_11__jenc_vgreVCXpRRRREN2_FV_RRRAF_4cnveVAF_15__gerr_vgrengbeVF8_CAF_11__gerr_abqrVF8_CiRRyRRoRRQcBG_:
 nop
@@ -2973,7 +2973,7 @@
 b__MAX7naqebvq5ivags16ZnavsrfgVafgnapr19trgFvzcyrSdVafgnaprRi:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq5ivags11ZnavsrfgUnyRAF_9nyybpngbeVF3_RRR8__nccraqRz
+.weak b__MAFg3__16irpgbeVA7naqebvq5ivags11ZnavsrfgUnyRAF_9nyybpngbeVF3_RRR8__nccraqRz
 .type b__MAFg3__16irpgbeVA7naqebvq5ivags11ZnavsrfgUnyRAF_9nyybpngbeVF3_RRR8__nccraqRz,%function
 b__MAFg3__16irpgbeVA7naqebvq5ivags11ZnavsrfgUnyRAF_9nyybpngbeVF3_RRR8__nccraqRz:
 nop
@@ -2988,17 +2988,17 @@
 b__MA7naqebvq5ivags11IvagsBowrpg25srgpuSenzrjbexUnyZnavsrfgRCAF0_11UnyZnavsrfgRCAFg3__112onfvp_fgevatVpAF4_11pune_genvgfVpRRAF4_9nyybpngbeVpRRRR:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRF7_RRAF_19__znc_inyhr_pbzcnerVF7_F8_AF_4yrffVF7_RRYo1RRRAF5_VF8_RRR15__rzcynpr_zhygvVWEXAF_4cnveVXF7_F7_RRRRRAF_15__gerr_vgrengbeVF8_CAF_11__gerr_abqrVF8_CiRRyRRQcBG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRF7_RRAF_19__znc_inyhr_pbzcnerVF7_F8_AF_4yrffVF7_RRYo1RRRAF5_VF8_RRR15__rzcynpr_zhygvVWEXAF_4cnveVXF7_F7_RRRRRAF_15__gerr_vgrengbeVF8_CAF_11__gerr_abqrVF8_CiRRyRRQcBG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRF7_RRAF_19__znc_inyhr_pbzcnerVF7_F8_AF_4yrffVF7_RRYo1RRRAF5_VF8_RRR15__rzcynpr_zhygvVWEXAF_4cnveVXF7_F7_RRRRRAF_15__gerr_vgrengbeVF8_CAF_11__gerr_abqrVF8_CiRRyRRQcBG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRF7_RRAF_19__znc_inyhr_pbzcnerVF7_F8_AF_4yrffVF7_RRYo1RRRAF5_VF8_RRR15__rzcynpr_zhygvVWEXAF_4cnveVXF7_F7_RRRRRAF_15__gerr_vgrengbeVF8_CAF_11__gerr_abqrVF8_CiRRyRRQcBG_:
 nop
 .text
-.globl b__MAFg3__16__gerrVA7naqebvq5ivags7IrefvbaRAF_4yrffVF3_RRAF_9nyybpngbeVF3_RRR12__svaq_rdhnyVF3_RRECAF_16__gerr_abqr_onfrVCiRRAF_21__gerr_pbafg_vgrengbeVF3_CAF_11__gerr_abqrVF3_FO_RRyRRECAF_15__gerr_raq_abqrVFQ_RRFR_EXG_
+.weak b__MAFg3__16__gerrVA7naqebvq5ivags7IrefvbaRAF_4yrffVF3_RRAF_9nyybpngbeVF3_RRR12__svaq_rdhnyVF3_RRECAF_16__gerr_abqr_onfrVCiRRAF_21__gerr_pbafg_vgrengbeVF3_CAF_11__gerr_abqrVF3_FO_RRyRRECAF_15__gerr_raq_abqrVFQ_RRFR_EXG_
 .type b__MAFg3__16__gerrVA7naqebvq5ivags7IrefvbaRAF_4yrffVF3_RRAF_9nyybpngbeVF3_RRR12__svaq_rdhnyVF3_RRECAF_16__gerr_abqr_onfrVCiRRAF_21__gerr_pbafg_vgrengbeVF3_CAF_11__gerr_abqrVF3_FO_RRyRRECAF_15__gerr_raq_abqrVFQ_RRFR_EXG_,%function
 b__MAFg3__16__gerrVA7naqebvq5ivags7IrefvbaRAF_4yrffVF3_RRAF_9nyybpngbeVF3_RRR12__svaq_rdhnyVF3_RRECAF_16__gerr_abqr_onfrVCiRRAF_21__gerr_pbafg_vgrengbeVF3_CAF_11__gerr_abqrVF3_FO_RRyRRECAF_15__gerr_raq_abqrVFQ_RRFR_EXG_:
 nop
 .text
-.globl b__MA7naqebvq5ivags9gb_fgevatVyRRAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRREXG_
+.weak b__MA7naqebvq5ivags9gb_fgevatVyRRAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRREXG_
 .type b__MA7naqebvq5ivags9gb_fgevatVyRRAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRREXG_,%function
 b__MA7naqebvq5ivags9gb_fgevatVyRRAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRREXG_:
 nop
@@ -3018,7 +3018,7 @@
 b__MAX7naqebvq5ivags12UnyVagresnpr14unfNalVafgnaprRi:
 nop
 .text
-.globl b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR22__cnefr_ER_qhcy_flzobyVCXpRRG_F7_F7_CAF_16__bjaf_bar_fgngrVpRRww
+.weak b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR22__cnefr_ER_qhcy_flzobyVCXpRRG_F7_F7_CAF_16__bjaf_bar_fgngrVpRRww
 .type b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR22__cnefr_ER_qhcy_flzobyVCXpRRG_F7_F7_CAF_16__bjaf_bar_fgngrVpRRww,%function
 b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR22__cnefr_ER_qhcy_flzobyVCXpRRG_F7_F7_CAF_16__bjaf_bar_fgngrVpRRww:
 nop
@@ -3028,12 +3028,12 @@
 b__MA7naqebvq5ivags16ZnavsrfgVafgnaprP2RBF1_:
 nop
 .text
-.globl b__MAFg3__120__funerq_cge_rzcynprVA7naqebvq5ivags11EhagvzrVasbRAF_9nyybpngbeVF3_RRR21__ba_mreb_funerq_jrnxRi
+.weak b__MAFg3__120__funerq_cge_rzcynprVA7naqebvq5ivags11EhagvzrVasbRAF_9nyybpngbeVF3_RRR21__ba_mreb_funerq_jrnxRi
 .type b__MAFg3__120__funerq_cge_rzcynprVA7naqebvq5ivags11EhagvzrVasbRAF_9nyybpngbeVF3_RRR21__ba_mreb_funerq_jrnxRi,%function
 b__MAFg3__120__funerq_cge_rzcynprVA7naqebvq5ivags11EhagvzrVasbRAF_9nyybpngbeVF3_RRR21__ba_mreb_funerq_jrnxRi:
 nop
 .data
-.globl b__MGIAFg3__114onfvp_vsfgernzVpAF_11pune_genvgfVpRRRR
+.weak b__MGIAFg3__114onfvp_vsfgernzVpAF_11pune_genvgfVpRRRR
 .type b__MGIAFg3__114onfvp_vsfgernzVpAF_11pune_genvgfVpRRRR,%object
 b__MGIAFg3__114onfvp_vsfgernzVpAF_11pune_genvgfVpRRRR:
 .space __SIZEOF_POINTER__
@@ -3043,7 +3043,7 @@
 b__MA7naqebvq5ivags22XrearyPbasvtGlcrqInyhrP2Ri:
 nop
 .data
-.globl b__MGIAFg3__110__y_napubeVpRR
+.weak b__MGIAFg3__110__y_napubeVpRR
 .type b__MGIAFg3__110__y_napubeVpRR,%object
 b__MGIAFg3__110__y_napubeVpRR:
 .space __SIZEOF_POINTER__
@@ -3058,17 +3058,17 @@
 b__MA7naqebvq5ivags11IvagsBowrpg20VfVafgnaprQrcerpngrqREXAF0_14ZngevkVafgnaprREXAF0_19PbzcngvovyvglZngevkREXAFg3__18shapgvbaVSAF8_6irpgbeVAF8_4cnveVAF8_12onfvp_fgevatVpAF8_11pune_genvgfVpRRAF8_9nyybpngbeVpRRRRAF0_7IrefvbaRRRAFS_VFW_RRRREXFU_FV_FA_EXAFN_VFU_AFS_VFU_RRRRRRRCFU_:
 nop
 .text
-.globl b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRRQ2Ri
+.weak b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRRQ2Ri
 .type b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRRQ2Ri,%function
 b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRRQ2Ri:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVzAF_4unfuVzRRAF_8rdhny_gbVzRRAF_9nyybpngbeVzRRR25__rzcynpr_havdhr_xrl_netfVzWEXzRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVzCiRRRRoRREXG_QcBG0_
+.weak b__MAFg3__112__unfu_gnoyrVzAF_4unfuVzRRAF_8rdhny_gbVzRRAF_9nyybpngbeVzRRR25__rzcynpr_havdhr_xrl_netfVzWEXzRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVzCiRRRRoRREXG_QcBG0_
 .type b__MAFg3__112__unfu_gnoyrVzAF_4unfuVzRRAF_8rdhny_gbVzRRAF_9nyybpngbeVzRRR25__rzcynpr_havdhr_xrl_netfVzWEXzRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVzCiRRRRoRREXG_QcBG0_,%function
 b__MAFg3__112__unfu_gnoyrVzAF_4unfuVzRRAF_8rdhny_gbVzRRAF_9nyybpngbeVzRRR25__rzcynpr_havdhr_xrl_netfVzWEXzRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVzCiRRRRoRREXG_QcBG0_:
 nop
 .data
-.globl b__MGIA7naqebvq5ivags21UnyVagresnprPbairegreR
+.weak b__MGIA7naqebvq5ivags21UnyVagresnprPbairegreR
 .type b__MGIA7naqebvq5ivags21UnyVagresnprPbairegreR,%object
 b__MGIA7naqebvq5ivags21UnyVagresnprPbairegreR:
 .space __SIZEOF_POINTER__
@@ -3078,7 +3078,7 @@
 b__MAX7naqebvq5ivags9FlfgrzFqx14erzbirIrefvbafREXF1_:
 nop
 .text
-.globl b__MAFg3__116__frg_qvssreraprVEAF_6__yrffVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRF7_RRAF_21__gerr_pbafg_vgrengbeVF7_CAF_11__gerr_abqrVF7_CiRRyRRFS_AF_15vafreg_vgrengbeVAF_3frgVF7_AF_4yrffVF7_RRAF5_VF7_RRRRRRRRG2_G0_FB_G1_FC_FA_G_
+.weak b__MAFg3__116__frg_qvssreraprVEAF_6__yrffVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRF7_RRAF_21__gerr_pbafg_vgrengbeVF7_CAF_11__gerr_abqrVF7_CiRRyRRFS_AF_15vafreg_vgrengbeVAF_3frgVF7_AF_4yrffVF7_RRAF5_VF7_RRRRRRRRG2_G0_FB_G1_FC_FA_G_
 .type b__MAFg3__116__frg_qvssreraprVEAF_6__yrffVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRF7_RRAF_21__gerr_pbafg_vgrengbeVF7_CAF_11__gerr_abqrVF7_CiRRyRRFS_AF_15vafreg_vgrengbeVAF_3frgVF7_AF_4yrffVF7_RRAF5_VF7_RRRRRRRRG2_G0_FB_G1_FC_FA_G_,%function
 b__MAFg3__116__frg_qvssreraprVEAF_6__yrffVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRF7_RRAF_21__gerr_pbafg_vgrengbeVF7_CAF_11__gerr_abqrVF7_CiRRyRRFS_AF_15vafreg_vgrengbeVAF_3frgVF7_AF_4yrffVF7_RRAF5_VF7_RRRRRRRRG2_G0_FB_G1_FC_FA_G_:
 nop
@@ -3093,17 +3093,17 @@
 b__MA7naqebvq5ivags18iraqbeAqxPbairegreR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq5ivags13ZngevkKzySvyrRAF_9nyybpngbeVF3_RRR8__nccraqRz
+.weak b__MAFg3__16irpgbeVA7naqebvq5ivags13ZngevkKzySvyrRAF_9nyybpngbeVF3_RRR8__nccraqRz
 .type b__MAFg3__16irpgbeVA7naqebvq5ivags13ZngevkKzySvyrRAF_9nyybpngbeVF3_RRR8__nccraqRz,%function
 b__MAFg3__16irpgbeVA7naqebvq5ivags13ZngevkKzySvyrRAF_9nyybpngbeVF3_RRR8__nccraqRz:
 nop
 .text
-.globl b__MAXFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRA7naqebvq5ivags11ZnavsrfgUnyRRRAF_19__znc_inyhr_pbzcnerVF7_FO_AF_4yrffVF7_RRYo1RRRAF5_VFO_RRR19__rdhny_enatr_zhygvVF7_RRAF_4cnveVAF_21__gerr_pbafg_vgrengbeVFO_CAF_11__gerr_abqrVFO_CiRRyRRFC_RREXG_
+.weak b__MAXFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRA7naqebvq5ivags11ZnavsrfgUnyRRRAF_19__znc_inyhr_pbzcnerVF7_FO_AF_4yrffVF7_RRYo1RRRAF5_VFO_RRR19__rdhny_enatr_zhygvVF7_RRAF_4cnveVAF_21__gerr_pbafg_vgrengbeVFO_CAF_11__gerr_abqrVFO_CiRRyRRFC_RREXG_
 .type b__MAXFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRA7naqebvq5ivags11ZnavsrfgUnyRRRAF_19__znc_inyhr_pbzcnerVF7_FO_AF_4yrffVF7_RRYo1RRRAF5_VFO_RRR19__rdhny_enatr_zhygvVF7_RRAF_4cnveVAF_21__gerr_pbafg_vgrengbeVFO_CAF_11__gerr_abqrVFO_CiRRyRRFC_RREXG_,%function
 b__MAXFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRA7naqebvq5ivags11ZnavsrfgUnyRRRAF_19__znc_inyhr_pbzcnerVF7_FO_AF_4yrffVF7_RRYo1RRRAF5_VFO_RRR19__rdhny_enatr_zhygvVF7_RRAF_4cnveVAF_21__gerr_pbafg_vgrengbeVFO_CAF_11__gerr_abqrVFO_CiRRyRRFC_RREXG_:
 nop
 .text
-.globl b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR23__cnefr_RER_qhcy_flzobyVCXpRRG_F7_F7_CAF_16__bjaf_bar_fgngrVpRRww
+.weak b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR23__cnefr_RER_qhcy_flzobyVCXpRRG_F7_F7_CAF_16__bjaf_bar_fgngrVpRRww
 .type b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR23__cnefr_RER_qhcy_flzobyVCXpRRG_F7_F7_CAF_16__bjaf_bar_fgngrVpRRww,%function
 b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR23__cnefr_RER_qhcy_flzobyVCXpRRG_F7_F7_CAF_16__bjaf_bar_fgngrVpRRww:
 nop
@@ -3123,12 +3123,12 @@
 b__MA7naqebvq5ivags11IvagsBowrpg16PurpxQrcerpngvbaRCAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRR:
 nop
 .data
-.globl b__MGIA7naqebvq5ivags16KzyAbqrPbairegreVAFg3__14cnveVAF2_12onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRF9_RRRR
+.weak b__MGIA7naqebvq5ivags16KzyAbqrPbairegreVAFg3__14cnveVAF2_12onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRF9_RRRR
 .type b__MGIA7naqebvq5ivags16KzyAbqrPbairegreVAFg3__14cnveVAF2_12onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRF9_RRRR,%object
 b__MGIA7naqebvq5ivags16KzyAbqrPbairegreVAFg3__14cnveVAF2_12onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRF9_RRRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR30__cnefr_punenpgre_pynff_rfpncrVCXpRRG_F7_F7_
+.weak b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR30__cnefr_punenpgre_pynff_rfpncrVCXpRRG_F7_F7_
 .type b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR30__cnefr_punenpgre_pynff_rfpncrVCXpRRG_F7_F7_,%function
 b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR30__cnefr_punenpgre_pynff_rfpncrVCXpRRG_F7_F7_:
 nop
@@ -3158,7 +3158,7 @@
 b__MAX7naqebvq5ivags14ZngevkVafgnapr11qrfpevcgvbaRAF0_7IrefvbaR:
 nop
 .data
-.globl b__MGIA7naqebvq5ivags16KzyGrkgPbairegreVAF0_16IaqxIrefvbaEnatrRRR
+.weak b__MGIA7naqebvq5ivags16KzyGrkgPbairegreVAF0_16IaqxIrefvbaEnatrRRR
 .type b__MGIA7naqebvq5ivags16KzyGrkgPbairegreVAF0_16IaqxIrefvbaEnatrRRR,%object
 b__MGIA7naqebvq5ivags16KzyGrkgPbairegreVAF0_16IaqxIrefvbaEnatrRRR:
 .space __SIZEOF_POINTER__
@@ -3173,17 +3173,17 @@
 b__MAX7naqebvq5ivags14ZngevkVafgnapr13zngpuVafgnaprREXAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRR:
 nop
 .text
-.globl b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR21__cnefr_onfvp_ert_rkcVCXpRRG_F7_F7_
+.weak b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR21__cnefr_onfvp_ert_rkcVCXpRRG_F7_F7_
 .type b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR21__cnefr_onfvp_ert_rkcVCXpRRG_F7_F7_,%function
 b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR21__cnefr_onfvp_ert_rkcVCXpRRG_F7_F7_:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_9fho_zngpuVCXpRRAF_9nyybpngbeVF4_RRR6nffvtaVCF4_RRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF4_AF_15vgrengbe_genvgfVFO_R9ersreraprRRR5inyhrRiR4glcrRFO_FO_
+.weak b__MAFg3__16irpgbeVAF_9fho_zngpuVCXpRRAF_9nyybpngbeVF4_RRR6nffvtaVCF4_RRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF4_AF_15vgrengbe_genvgfVFO_R9ersreraprRRR5inyhrRiR4glcrRFO_FO_
 .type b__MAFg3__16irpgbeVAF_9fho_zngpuVCXpRRAF_9nyybpngbeVF4_RRR6nffvtaVCF4_RRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF4_AF_15vgrengbe_genvgfVFO_R9ersreraprRRR5inyhrRiR4glcrRFO_FO_,%function
 b__MAFg3__16irpgbeVAF_9fho_zngpuVCXpRRAF_9nyybpngbeVF4_RRR6nffvtaVCF4_RRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF4_AF_15vgrengbe_genvgfVFO_R9ersreraprRRR5inyhrRiR4glcrRFO_FO_:
 nop
 .data
-.globl b__MGIAFg3__128__ortva_znexrq_fhorkcerffvbaVpRR
+.weak b__MGIAFg3__128__ortva_znexrq_fhorkcerffvbaVpRR
 .type b__MGIAFg3__128__ortva_znexrq_fhorkcerffvbaVpRR,%object
 b__MGIAFg3__128__ortva_znexrq_fhorkcerffvbaVpRR:
 .space __SIZEOF_POINTER__
@@ -3203,7 +3203,7 @@
 b__MGIA7naqebvq5ivags11IvagsBowrpgR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIAFg3__120__funerq_cge_rzcynprVA7naqebvq5ivags11UnyZnavsrfgRAF_9nyybpngbeVF3_RRRR
+.weak b__MGIAFg3__120__funerq_cge_rzcynprVA7naqebvq5ivags11UnyZnavsrfgRAF_9nyybpngbeVF3_RRRR
 .type b__MGIAFg3__120__funerq_cge_rzcynprVA7naqebvq5ivags11UnyZnavsrfgRAF_9nyybpngbeVF3_RRRR,%object
 b__MGIAFg3__120__funerq_cge_rzcynprVA7naqebvq5ivags11UnyZnavsrfgRAF_9nyybpngbeVF3_RRRR:
 .space __SIZEOF_POINTER__
@@ -3218,17 +3218,17 @@
 b__MAX7naqebvq5ivags16ZnavsrfgVafgnapr7irefvbaRi:
 nop
 .text
-.globl b__MAXFg3__112ertrk_genvgfVpR18__ybbxhc_pynffanzrVCXpRRgG_F5_op
+.weak b__MAXFg3__112ertrk_genvgfVpR18__ybbxhc_pynffanzrVCXpRRgG_F5_op
 .type b__MAXFg3__112ertrk_genvgfVpR18__ybbxhc_pynffanzrVCXpRRgG_F5_op,%function
 b__MAXFg3__112ertrk_genvgfVpR18__ybbxhc_pynffanzrVCXpRRgG_F5_op:
 nop
 .data
-.globl b__MGIAFg3__113__rzcgl_fgngrVpRR
+.weak b__MGIAFg3__113__rzcgl_fgngrVpRR
 .type b__MGIAFg3__113__rzcgl_fgngrVpRR,%object
 b__MGIAFg3__113__rzcgl_fgngrVpRR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIAFg3__118__onpx_ers_pbyyngrVpAF_12ertrk_genvgfVpRRRR
+.weak b__MGIAFg3__118__onpx_ers_pbyyngrVpAF_12ertrk_genvgfVpRRRR
 .type b__MGIAFg3__118__onpx_ers_pbyyngrVpAF_12ertrk_genvgfVpRRRR,%object
 b__MGIAFg3__118__onpx_ers_pbyyngrVpAF_12ertrk_genvgfVpRRRR:
 .space __SIZEOF_POINTER__
@@ -3248,7 +3248,7 @@
 b__MA7naqebvq5ivags11IvagsBowrpg20trgQrivprUnyZnavsrfgRo:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_4cnveVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRF7_RRAF_4yrffVF8_RRAF5_VF8_RRR25__rzcynpr_havdhr_xrl_netfVF8_WF8_RRRAF1_VAF_15__gerr_vgrengbeVF8_CAF_11__gerr_abqrVF8_CiRRyRRoRREXG_QcBG0_
+.weak b__MAFg3__16__gerrVAF_4cnveVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRF7_RRAF_4yrffVF8_RRAF5_VF8_RRR25__rzcynpr_havdhr_xrl_netfVF8_WF8_RRRAF1_VAF_15__gerr_vgrengbeVF8_CAF_11__gerr_abqrVF8_CiRRyRRoRREXG_QcBG0_
 .type b__MAFg3__16__gerrVAF_4cnveVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRF7_RRAF_4yrffVF8_RRAF5_VF8_RRR25__rzcynpr_havdhr_xrl_netfVF8_WF8_RRRAF1_VAF_15__gerr_vgrengbeVF8_CAF_11__gerr_abqrVF8_CiRRyRRoRREXG_QcBG0_,%function
 b__MAFg3__16__gerrVAF_4cnveVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRF7_RRAF_4yrffVF8_RRAF5_VF8_RRR25__rzcynpr_havdhr_xrl_netfVF8_WF8_RRRAF1_VAF_15__gerr_vgrengbeVF8_CAF_11__gerr_abqrVF8_CiRRyRRoRREXG_QcBG0_:
 nop
@@ -3258,7 +3258,7 @@
 b__MAX7naqebvq5ivags11UnyZnavsrfg15unfNvqyVafgnaprREXAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRFN_FN_:
 nop
 .text
-.globl b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR24__cnefr_rkgraqrq_ert_rkcVCXpRRG_F7_F7_
+.weak b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR24__cnefr_rkgraqrq_ert_rkcVCXpRRG_F7_F7_
 .type b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR24__cnefr_rkgraqrq_ert_rkcVCXpRRG_F7_F7_,%function
 b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR24__cnefr_rkgraqrq_ert_rkcVCXpRRG_F7_F7_:
 nop
@@ -3268,12 +3268,12 @@
 b__MA7naqebvq5ivags11IvagsBowrpg14trgEhagvzrVasbRow:
 nop
 .text
-.globl b__MA7naqebvq5ivags9gb_fgevatVAF0_16IaqxIrefvbaEnatrRRRAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRREXG_
+.weak b__MA7naqebvq5ivags9gb_fgevatVAF0_16IaqxIrefvbaEnatrRRRAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRREXG_
 .type b__MA7naqebvq5ivags9gb_fgevatVAF0_16IaqxIrefvbaEnatrRRRAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRREXG_,%function
 b__MA7naqebvq5ivags9gb_fgevatVAF0_16IaqxIrefvbaEnatrRRRAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRREXG_:
 nop
 .text
-.globl b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR20__cnefr_BEQ_PUNE_RERVCXpRRG_F7_F7_
+.weak b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR20__cnefr_BEQ_PUNE_RERVCXpRRG_F7_F7_
 .type b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR20__cnefr_BEQ_PUNE_RERVCXpRRG_F7_F7_,%function
 b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR20__cnefr_BEQ_PUNE_RERVCXpRRG_F7_F7_:
 nop
@@ -3283,12 +3283,12 @@
 b__MAX7naqebvq5ivags7qrgnvyf19CebcreglSrgpureVzcy11trgCebcreglREXAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRRFO_:
 nop
 .data
-.globl b__MGIAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
+.weak b__MGIAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
 .type b__MGIAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR,%object
 b__MGIAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq5ivags9gb_fgevatVAF0_16XrearyPbasvtGlcrRRRAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRREXG_
+.weak b__MA7naqebvq5ivags9gb_fgevatVAF0_16XrearyPbasvtGlcrRRRAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRREXG_
 .type b__MA7naqebvq5ivags9gb_fgevatVAF0_16XrearyPbasvtGlcrRRRAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRREXG_,%function
 b__MA7naqebvq5ivags9gb_fgevatVAF0_16XrearyPbasvtGlcrRRRAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRREXG_:
 nop
@@ -3298,12 +3298,12 @@
 b__MAX7naqebvq5ivags11UnyZnavsrfg14trgZrgnIrefvbaRi:
 nop
 .data
-.globl b__MGIA7naqebvq5ivags16KzyGrkgPbairegreVAF_10SdVafgnaprRRR
+.weak b__MGIA7naqebvq5ivags16KzyGrkgPbairegreVAF_10SdVafgnaprRRR
 .type b__MGIA7naqebvq5ivags16KzyGrkgPbairegreVAF_10SdVafgnaprRRR,%object
 b__MGIA7naqebvq5ivags16KzyGrkgPbairegreVAF_10SdVafgnaprRRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq5ivags7qrgnvyf19srgpuNyyVasbezngvbaVAF0_19PbzcngvovyvglZngevkRRRvCXAF0_10SvyrFlfgrzREXAFg3__112onfvp_fgevatVpAF7_11pune_genvgfVpRRAF7_9nyybpngbeVpRRRREXAF0_12KzyPbairegreVG_RRCFU_CFQ_
+.weak b__MA7naqebvq5ivags7qrgnvyf19srgpuNyyVasbezngvbaVAF0_19PbzcngvovyvglZngevkRRRvCXAF0_10SvyrFlfgrzREXAFg3__112onfvp_fgevatVpAF7_11pune_genvgfVpRRAF7_9nyybpngbeVpRRRREXAF0_12KzyPbairegreVG_RRCFU_CFQ_
 .type b__MA7naqebvq5ivags7qrgnvyf19srgpuNyyVasbezngvbaVAF0_19PbzcngvovyvglZngevkRRRvCXAF0_10SvyrFlfgrzREXAFg3__112onfvp_fgevatVpAF7_11pune_genvgfVpRRAF7_9nyybpngbeVpRRRREXAF0_12KzyPbairegreVG_RRCFU_CFQ_,%function
 b__MA7naqebvq5ivags7qrgnvyf19srgpuNyyVasbezngvbaVAF0_19PbzcngvovyvglZngevkRRRvCXAF0_10SvyrFlfgrzREXAFg3__112onfvp_fgevatVpAF7_11pune_genvgfVpRRAF7_9nyybpngbeVpRRRREXAF0_12KzyPbairegreVG_RRCFU_CFQ_:
 nop
@@ -3313,12 +3313,12 @@
 b__MA7naqebvq5ivags11UnyZnavsrfg10erzbirUnyfREXAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRz:
 nop
 .text
-.globl b__MAXFg3__112ertrk_genvgfVpR19__genafsbez_cevznelVAF_11__jenc_vgreVCpRRRRAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRG_FP_p
+.weak b__MAXFg3__112ertrk_genvgfVpR19__genafsbez_cevznelVAF_11__jenc_vgreVCpRRRRAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRG_FP_p
 .type b__MAXFg3__112ertrk_genvgfVpR19__genafsbez_cevznelVAF_11__jenc_vgreVCpRRRRAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRG_FP_p,%function
 b__MAXFg3__112ertrk_genvgfVpR19__genafsbez_cevznelVAF_11__jenc_vgreVCpRRRRAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRG_FP_p:
 nop
 .data
-.globl b__MGIA7naqebvq5ivags18FlfgrzFqxPbairegreR
+.weak b__MGIA7naqebvq5ivags18FlfgrzFqxPbairegreR
 .type b__MGIA7naqebvq5ivags18FlfgrzFqxPbairegreR,%object
 b__MGIA7naqebvq5ivags18FlfgrzFqxPbairegreR:
 .space __SIZEOF_POINTER__
@@ -3328,42 +3328,42 @@
 b__MAX7naqebvq5ivags19PbzcngvovyvglZngevk13zngpuVafgnaprRAF0_9UnySbezngREXAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRREXAF0_7IrefvbaRFO_FO_:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRA7naqebvq5ivags12UnyVagresnprRRRAF_19__znc_inyhr_pbzcnerVF7_FO_AF_4yrffVF7_RRYo1RRRAF5_VFO_RRR30__rzcynpr_uvag_havdhr_xrl_netfVF7_WEXAF_4cnveVXF7_FN_RRRRRAF_15__gerr_vgrengbeVFO_CAF_11__gerr_abqrVFO_CiRRyRRAF_21__gerr_pbafg_vgrengbeVFO_FF_yRREXG_QcBG0_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRA7naqebvq5ivags12UnyVagresnprRRRAF_19__znc_inyhr_pbzcnerVF7_FO_AF_4yrffVF7_RRYo1RRRAF5_VFO_RRR30__rzcynpr_uvag_havdhr_xrl_netfVF7_WEXAF_4cnveVXF7_FN_RRRRRAF_15__gerr_vgrengbeVFO_CAF_11__gerr_abqrVFO_CiRRyRRAF_21__gerr_pbafg_vgrengbeVFO_FF_yRREXG_QcBG0_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRA7naqebvq5ivags12UnyVagresnprRRRAF_19__znc_inyhr_pbzcnerVF7_FO_AF_4yrffVF7_RRYo1RRRAF5_VFO_RRR30__rzcynpr_uvag_havdhr_xrl_netfVF7_WEXAF_4cnveVXF7_FN_RRRRRAF_15__gerr_vgrengbeVFO_CAF_11__gerr_abqrVFO_CiRRyRRAF_21__gerr_pbafg_vgrengbeVFO_FF_yRREXG_QcBG0_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRA7naqebvq5ivags12UnyVagresnprRRRAF_19__znc_inyhr_pbzcnerVF7_FO_AF_4yrffVF7_RRYo1RRRAF5_VFO_RRR30__rzcynpr_uvag_havdhr_xrl_netfVF7_WEXAF_4cnveVXF7_FN_RRRRRAF_15__gerr_vgrengbeVFO_CAF_11__gerr_abqrVFO_CiRRyRRAF_21__gerr_pbafg_vgrengbeVFO_FF_yRREXG_QcBG0_:
 nop
 .data
-.globl b__MGIA7naqebvq5ivags12KzySvyrTebhcVAF0_15ZnavsrfgKzySvyrRRR
+.weak b__MGIA7naqebvq5ivags12KzySvyrTebhcVAF0_15ZnavsrfgKzySvyrRRR
 .type b__MGIA7naqebvq5ivags12KzySvyrTebhcVAF0_15ZnavsrfgKzySvyrRRR,%object
 b__MGIA7naqebvq5ivags12KzySvyrTebhcVAF0_15ZnavsrfgKzySvyrRRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAXFg3__112ertrk_genvgfVpR20__ybbxhc_pbyyngranzrVCXpRRAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRG_FO_p
+.weak b__MAXFg3__112ertrk_genvgfVpR20__ybbxhc_pbyyngranzrVCXpRRAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRG_FO_p
 .type b__MAXFg3__112ertrk_genvgfVpR20__ybbxhc_pbyyngranzrVCXpRRAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRG_FO_p,%function
 b__MAXFg3__112ertrk_genvgfVpR20__ybbxhc_pbyyngranzrVCXpRRAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRG_FO_p:
 nop
 .text
-.globl b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
+.weak b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
 .type b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_,%function
 b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_:
 nop
 .text
-.globl b__MAXFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRA7naqebvq5ivags9ZngevkUnyRRRAF_19__znc_inyhr_pbzcnerVF7_FO_AF_4yrffVF7_RRYo1RRRAF5_VFO_RRR19__rdhny_enatr_zhygvVF7_RRAF_4cnveVAF_21__gerr_pbafg_vgrengbeVFO_CAF_11__gerr_abqrVFO_CiRRyRRFC_RREXG_
+.weak b__MAXFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRA7naqebvq5ivags9ZngevkUnyRRRAF_19__znc_inyhr_pbzcnerVF7_FO_AF_4yrffVF7_RRYo1RRRAF5_VFO_RRR19__rdhny_enatr_zhygvVF7_RRAF_4cnveVAF_21__gerr_pbafg_vgrengbeVFO_CAF_11__gerr_abqrVFO_CiRRyRRFC_RREXG_
 .type b__MAXFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRA7naqebvq5ivags9ZngevkUnyRRRAF_19__znc_inyhr_pbzcnerVF7_FO_AF_4yrffVF7_RRYo1RRRAF5_VFO_RRR19__rdhny_enatr_zhygvVF7_RRAF_4cnveVAF_21__gerr_pbafg_vgrengbeVFO_CAF_11__gerr_abqrVFO_CiRRyRRFC_RREXG_,%function
 b__MAXFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRA7naqebvq5ivags9ZngevkUnyRRRAF_19__znc_inyhr_pbzcnerVF7_FO_AF_4yrffVF7_RRYo1RRRAF5_VFO_RRR19__rdhny_enatr_zhygvVF7_RRAF_4cnveVAF_21__gerr_pbafg_vgrengbeVFO_CAF_11__gerr_abqrVFO_CiRRyRRFC_RREXG_:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_4cnveVzCXpRRAF_9nyybpngbeVF4_RRR6nffvtaVCF4_RRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF4_AF_15vgrengbe_genvgfVFO_R9ersreraprRRR5inyhrRiR4glcrRFO_FO_
+.weak b__MAFg3__16irpgbeVAF_4cnveVzCXpRRAF_9nyybpngbeVF4_RRR6nffvtaVCF4_RRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF4_AF_15vgrengbe_genvgfVFO_R9ersreraprRRR5inyhrRiR4glcrRFO_FO_
 .type b__MAFg3__16irpgbeVAF_4cnveVzCXpRRAF_9nyybpngbeVF4_RRR6nffvtaVCF4_RRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF4_AF_15vgrengbe_genvgfVFO_R9ersreraprRRR5inyhrRiR4glcrRFO_FO_,%function
 b__MAFg3__16irpgbeVAF_4cnveVzCXpRRAF_9nyybpngbeVF4_RRR6nffvtaVCF4_RRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF4_AF_15vgrengbe_genvgfVFO_R9ersreraprRRR5inyhrRiR4glcrRFO_FO_:
 nop
 .data
-.globl b__MGIAFg3__120__oenpxrg_rkcerffvbaVpAF_12ertrk_genvgfVpRRRR
+.weak b__MGIAFg3__120__oenpxrg_rkcerffvbaVpAF_12ertrk_genvgfVpRRRR
 .type b__MGIAFg3__120__oenpxrg_rkcerffvbaVpAF_12ertrk_genvgfVpRRRR,%object
 b__MGIAFg3__120__oenpxrg_rkcerffvbaVpAF_12ertrk_genvgfVpRRRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__16__gerrVA7naqebvq5ivags16ZnavsrfgVafgnaprRAF_4yrffVF3_RRAF_9nyybpngbeVF3_RRR12__svaq_rdhnyVF3_RRECAF_16__gerr_abqr_onfrVCiRRAF_21__gerr_pbafg_vgrengbeVF3_CAF_11__gerr_abqrVF3_FO_RRyRRECAF_15__gerr_raq_abqrVFQ_RRFR_EXG_
+.weak b__MAFg3__16__gerrVA7naqebvq5ivags16ZnavsrfgVafgnaprRAF_4yrffVF3_RRAF_9nyybpngbeVF3_RRR12__svaq_rdhnyVF3_RRECAF_16__gerr_abqr_onfrVCiRRAF_21__gerr_pbafg_vgrengbeVF3_CAF_11__gerr_abqrVF3_FO_RRyRRECAF_15__gerr_raq_abqrVFQ_RRFR_EXG_
 .type b__MAFg3__16__gerrVA7naqebvq5ivags16ZnavsrfgVafgnaprRAF_4yrffVF3_RRAF_9nyybpngbeVF3_RRR12__svaq_rdhnyVF3_RRECAF_16__gerr_abqr_onfrVCiRRAF_21__gerr_pbafg_vgrengbeVF3_CAF_11__gerr_abqrVF3_FO_RRyRRECAF_15__gerr_raq_abqrVFQ_RRFR_EXG_,%function
 b__MAFg3__16__gerrVA7naqebvq5ivags16ZnavsrfgVafgnaprRAF_4yrffVF3_RRAF_9nyybpngbeVF3_RRR12__svaq_rdhnyVF3_RRECAF_16__gerr_abqr_onfrVCiRRAF_21__gerr_pbafg_vgrengbeVF3_CAF_11__gerr_abqrVF3_FO_RRyRRECAF_15__gerr_raq_abqrVFQ_RRFR_EXG_:
 nop
@@ -3373,12 +3373,12 @@
 b__MAX7naqebvq5ivags11EhagvzrVasb8abqrAnzrRi:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_4cnveVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRF7_RRAF5_VF8_RRR8__nccraqRz
+.weak b__MAFg3__16irpgbeVAF_4cnveVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRF7_RRAF5_VF8_RRR8__nccraqRz
 .type b__MAFg3__16irpgbeVAF_4cnveVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRF7_RRAF5_VF8_RRR8__nccraqRz,%function
 b__MAFg3__16irpgbeVAF_4cnveVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRF7_RRAF5_VF8_RRR8__nccraqRz:
 nop
 .data
-.globl b__MGIA7naqebvq5ivags16KzyAbqrPbairegreVAF_10SdVafgnaprRRR
+.weak b__MGIA7naqebvq5ivags16KzyAbqrPbairegreVAF_10SdVafgnaprRRR
 .type b__MGIA7naqebvq5ivags16KzyAbqrPbairegreVAF_10SdVafgnaprRRR,%object
 b__MGIA7naqebvq5ivags16KzyAbqrPbairegreVAF_10SdVafgnaprRRR:
 .space __SIZEOF_POINTER__
@@ -3393,7 +3393,7 @@
 b__MA7naqebvq5ivags16ZnavsrfgVafgnaprP2REXAF_10SdVafgnaprREXAF0_13GenafcbegNepuRAF0_9UnySbezngR:
 nop
 .data
-.globl b__MGIAFg3__120__funerq_cge_rzcynprVA7naqebvq5ivags11EhagvzrVasbRAF_9nyybpngbeVF3_RRRR
+.weak b__MGIAFg3__120__funerq_cge_rzcynprVA7naqebvq5ivags11EhagvzrVasbRAF_9nyybpngbeVF3_RRRR
 .type b__MGIAFg3__120__funerq_cge_rzcynprVA7naqebvq5ivags11EhagvzrVasbRAF_9nyybpngbeVF3_RRRR,%object
 b__MGIAFg3__120__funerq_cge_rzcynprVA7naqebvq5ivags11EhagvzrVasbRAF_9nyybpngbeVF3_RRRR:
 .space __SIZEOF_POINTER__
@@ -3403,12 +3403,12 @@
 b__MAX7naqebvq5ivags15ZnavsrfgKzySvyrrdREXF1_:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRA7naqebvq5ivags11ZnavsrfgUnyRRRAF_19__znc_inyhr_pbzcnerVF7_FO_AF_4yrffVF7_RRYo1RRRAF5_VFO_RRR7qrfgeblRCAF_11__gerr_abqrVFO_CiRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRA7naqebvq5ivags11ZnavsrfgUnyRRRAF_19__znc_inyhr_pbzcnerVF7_FO_AF_4yrffVF7_RRYo1RRRAF5_VFO_RRR7qrfgeblRCAF_11__gerr_abqrVFO_CiRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRA7naqebvq5ivags11ZnavsrfgUnyRRRAF_19__znc_inyhr_pbzcnerVF7_FO_AF_4yrffVF7_RRYo1RRRAF5_VFO_RRR7qrfgeblRCAF_11__gerr_abqrVFO_CiRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRA7naqebvq5ivags11ZnavsrfgUnyRRRAF_19__znc_inyhr_pbzcnerVF7_FO_AF_4yrffVF7_RRYo1RRRAF5_VFO_RRR7qrfgeblRCAF_11__gerr_abqrVFO_CiRR:
 nop
 .text
-.globl b__MAFg3__120__funerq_cge_cbvagreVCA7naqebvq5ivags19PbzcngvovyvglZngevkRAF_14qrsnhyg_qryrgrVF3_RRAF_9nyybpngbeVF3_RRR21__ba_mreb_funerq_jrnxRi
+.weak b__MAFg3__120__funerq_cge_cbvagreVCA7naqebvq5ivags19PbzcngvovyvglZngevkRAF_14qrsnhyg_qryrgrVF3_RRAF_9nyybpngbeVF3_RRR21__ba_mreb_funerq_jrnxRi
 .type b__MAFg3__120__funerq_cge_cbvagreVCA7naqebvq5ivags19PbzcngvovyvglZngevkRAF_14qrsnhyg_qryrgrVF3_RRAF_9nyybpngbeVF3_RRR21__ba_mreb_funerq_jrnxRi,%function
 b__MAFg3__120__funerq_cge_cbvagreVCA7naqebvq5ivags19PbzcngvovyvglZngevkRAF_14qrsnhyg_qryrgrVF3_RRAF_9nyybpngbeVF3_RRR21__ba_mreb_funerq_jrnxRi:
 nop
@@ -3418,7 +3418,7 @@
 b__MA7naqebvq5ivags5cnefrREXAFg3__112onfvp_fgevatVpAF1_11pune_genvgfVpRRAF1_9nyybpngbeVpRRRRCAF0_10FpurznGlcrR:
 nop
 .text
-.globl b__MAFg3__16__gerrVA7naqebvq5ivags16ZnavsrfgVafgnaprRAF_4yrffVF3_RRAF_9nyybpngbeVF3_RRR7qrfgeblRCAF_11__gerr_abqrVF3_CiRR
+.weak b__MAFg3__16__gerrVA7naqebvq5ivags16ZnavsrfgVafgnaprRAF_4yrffVF3_RRAF_9nyybpngbeVF3_RRR7qrfgeblRCAF_11__gerr_abqrVF3_CiRR
 .type b__MAFg3__16__gerrVA7naqebvq5ivags16ZnavsrfgVafgnaprRAF_4yrffVF3_RRAF_9nyybpngbeVF3_RRR7qrfgeblRCAF_11__gerr_abqrVF3_CiRR,%function
 b__MAFg3__16__gerrVA7naqebvq5ivags16ZnavsrfgVafgnaprRAF_4yrffVF3_RRAF_9nyybpngbeVF3_RRR7qrfgeblRCAF_11__gerr_abqrVF3_CiRR:
 nop
@@ -3428,7 +3428,7 @@
 b__MA7naqebvq5ivags19PbzcngvovyvglZngevk13fcyvgVafgnaprRCAF0_9ZngevkUnyREXAFg3__112onfvp_fgevatVpAF4_11pune_genvgfVpRRAF4_9nyybpngbeVpRRRRFP_o:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRA7naqebvq5ivags11ZnavsrfgUnyRRRAF_19__znc_inyhr_pbzcnerVF7_FO_AF_4yrffVF7_RRYo1RRRAF5_VFO_RRR15__rzcynpr_zhygvVWF7_FN_RRRAF_15__gerr_vgrengbeVFO_CAF_11__gerr_abqrVFO_CiRRyRRQcBG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRA7naqebvq5ivags11ZnavsrfgUnyRRRAF_19__znc_inyhr_pbzcnerVF7_FO_AF_4yrffVF7_RRYo1RRRAF5_VFO_RRR15__rzcynpr_zhygvVWF7_FN_RRRAF_15__gerr_vgrengbeVFO_CAF_11__gerr_abqrVFO_CiRRyRRQcBG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRA7naqebvq5ivags11ZnavsrfgUnyRRRAF_19__znc_inyhr_pbzcnerVF7_FO_AF_4yrffVF7_RRYo1RRRAF5_VFO_RRR15__rzcynpr_zhygvVWF7_FN_RRRAF_15__gerr_vgrengbeVFO_CAF_11__gerr_abqrVFO_CiRRyRRQcBG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRA7naqebvq5ivags11ZnavsrfgUnyRRRAF_19__znc_inyhr_pbzcnerVF7_FO_AF_4yrffVF7_RRYo1RRRAF5_VFO_RRR15__rzcynpr_zhygvVWF7_FN_RRRAF_15__gerr_vgrengbeVFO_CAF_11__gerr_abqrVFO_CiRRyRRQcBG_:
 nop
@@ -3438,7 +3438,7 @@
 b__MAX7naqebvq5ivags7qrgnvyf19CebcreglSrgpureAbBc11trgCebcreglREXAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRRFO_:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRA7naqebvq5ivags13ZngevkKzySvyrRRRAF_19__znc_inyhr_pbzcnerVF7_FO_AF_4yrffVF7_RRYo1RRRAF5_VFO_RRR11__svaq_yrnsRAF_21__gerr_pbafg_vgrengbeVFO_CAF_11__gerr_abqrVFO_CiRRyRRECAF_15__gerr_raq_abqrVCAF_16__gerr_abqr_onfrVFX_RRRREXF7_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRA7naqebvq5ivags13ZngevkKzySvyrRRRAF_19__znc_inyhr_pbzcnerVF7_FO_AF_4yrffVF7_RRYo1RRRAF5_VFO_RRR11__svaq_yrnsRAF_21__gerr_pbafg_vgrengbeVFO_CAF_11__gerr_abqrVFO_CiRRyRRECAF_15__gerr_raq_abqrVCAF_16__gerr_abqr_onfrVFX_RRRREXF7_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRA7naqebvq5ivags13ZngevkKzySvyrRRRAF_19__znc_inyhr_pbzcnerVF7_FO_AF_4yrffVF7_RRYo1RRRAF5_VFO_RRR11__svaq_yrnsRAF_21__gerr_pbafg_vgrengbeVFO_CAF_11__gerr_abqrVFO_CiRRyRRECAF_15__gerr_raq_abqrVCAF_16__gerr_abqr_onfrVFX_RRRREXF7_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRA7naqebvq5ivags13ZngevkKzySvyrRRRAF_19__znc_inyhr_pbzcnerVF7_FO_AF_4yrffVF7_RRYo1RRRAF5_VFO_RRR11__svaq_yrnsRAF_21__gerr_pbafg_vgrengbeVFO_CAF_11__gerr_abqrVFO_CiRRyRRECAF_15__gerr_raq_abqrVCAF_16__gerr_abqr_onfrVFX_RRRREXF7_:
 nop
@@ -3453,7 +3453,7 @@
 b__MAX7naqebvq5ivags11ZnavsrfgUnyrdREXF1_:
 nop
 .text
-.globl b__MAFg3__16__gerrVzAF_4yrffVzRRAF_9nyybpngbeVzRRR7qrfgeblRCAF_11__gerr_abqrVzCiRR
+.weak b__MAFg3__16__gerrVzAF_4yrffVzRRAF_9nyybpngbeVzRRR7qrfgeblRCAF_11__gerr_abqrVzCiRR
 .type b__MAFg3__16__gerrVzAF_4yrffVzRRAF_9nyybpngbeVzRRR7qrfgeblRCAF_11__gerr_abqrVzCiRR,%function
 b__MAFg3__16__gerrVzAF_4yrffVzRRAF_9nyybpngbeVzRRR7qrfgeblRCAF_11__gerr_abqrVzCiRR:
 nop
@@ -3463,12 +3463,12 @@
 b__MA7naqebvq5ivags7qrgnvyf14xCebqhpgZngevkR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq5ivags15ZnavsrfgKzySvyrRAF_9nyybpngbeVF3_RRR8__nccraqRz
+.weak b__MAFg3__16irpgbeVA7naqebvq5ivags15ZnavsrfgKzySvyrRAF_9nyybpngbeVF3_RRR8__nccraqRz
 .type b__MAFg3__16irpgbeVA7naqebvq5ivags15ZnavsrfgKzySvyrRAF_9nyybpngbeVF3_RRR8__nccraqRz,%function
 b__MAFg3__16irpgbeVA7naqebvq5ivags15ZnavsrfgKzySvyrRAF_9nyybpngbeVF3_RRR8__nccraqRz:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq5ivags12IrefvbaEnatrRAF_9nyybpngbeVF3_RRRP2REXF6_
+.weak b__MAFg3__16irpgbeVA7naqebvq5ivags12IrefvbaEnatrRAF_9nyybpngbeVF3_RRRP2REXF6_
 .type b__MAFg3__16irpgbeVA7naqebvq5ivags12IrefvbaEnatrRAF_9nyybpngbeVF3_RRRP2REXF6_,%function
 b__MAFg3__16irpgbeVA7naqebvq5ivags12IrefvbaEnatrRAF_9nyybpngbeVF3_RRRP2REXF6_:
 nop
@@ -3478,17 +3478,17 @@
 b__MA7naqebvq5ivags19nioIrefvbaPbairegreR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRF7_RRAF_19__znc_inyhr_pbzcnerVF7_F8_AF_4yrffVF7_RRYo1RRRAF5_VF8_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVCiRRECAF_15__gerr_raq_abqrVFW_RREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRF7_RRAF_19__znc_inyhr_pbzcnerVF7_F8_AF_4yrffVF7_RRYo1RRRAF5_VF8_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVCiRRECAF_15__gerr_raq_abqrVFW_RREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRF7_RRAF_19__znc_inyhr_pbzcnerVF7_F8_AF_4yrffVF7_RRYo1RRRAF5_VF8_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVCiRRECAF_15__gerr_raq_abqrVFW_RREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRF7_RRAF_19__znc_inyhr_pbzcnerVF7_F8_AF_4yrffVF7_RRYo1RRRAF5_VF8_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVCiRRECAF_15__gerr_raq_abqrVFW_RREXG_:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq5ivags12UnyVagresnprRAF_9nyybpngbeVF3_RRR6erfvmrRz
+.weak b__MAFg3__16irpgbeVA7naqebvq5ivags12UnyVagresnprRAF_9nyybpngbeVF3_RRR6erfvmrRz
 .type b__MAFg3__16irpgbeVA7naqebvq5ivags12UnyVagresnprRAF_9nyybpngbeVF3_RRR6erfvmrRz,%function
 b__MAFg3__16irpgbeVA7naqebvq5ivags12UnyVagresnprRAF_9nyybpngbeVF3_RRR6erfvmrRz:
 nop
 .text
-.globl b__MAXFg3__118__onpx_ers_pbyyngrVpAF_12ertrk_genvgfVpRRR6__rkrpREAF_7__fgngrVpRR
+.weak b__MAXFg3__118__onpx_ers_pbyyngrVpAF_12ertrk_genvgfVpRRR6__rkrpREAF_7__fgngrVpRR
 .type b__MAXFg3__118__onpx_ers_pbyyngrVpAF_12ertrk_genvgfVpRRR6__rkrpREAF_7__fgngrVpRR,%function
 b__MAXFg3__118__onpx_ers_pbyyngrVpAF_12ertrk_genvgfVpRRR6__rkrpREAF_7__fgngrVpRR:
 nop
@@ -3498,7 +3498,7 @@
 b__MA7naqebvq5ivags11IvagsBowrpg16PurpxQrcerpngvbaREXAFg3__18shapgvbaVSAF2_6irpgbeVAF2_4cnveVAF2_12onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRAF0_7IrefvbaRRRAF9_VFQ_RRRREXFO_FP_FU_EXAF4_VFO_AF9_VFO_RRRRRRRCFO_:
 nop
 .text
-.globl b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9haqresybjRi
+.weak b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9haqresybjRi
 .type b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9haqresybjRi,%function
 b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9haqresybjRi:
 nop
@@ -3508,12 +3508,12 @@
 b__MA7naqebvq5ivags20unyZnavsrfgPbairegreR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAXFg3__111__nygreangrVpR12__rkrp_fcyvgRoEAF_7__fgngrVpRR
+.weak b__MAXFg3__111__nygreangrVpR12__rkrp_fcyvgRoEAF_7__fgngrVpRR
 .type b__MAXFg3__111__nygreangrVpR12__rkrp_fcyvgRoEAF_7__fgngrVpRR,%function
 b__MAXFg3__111__nygreangrVpR12__rkrp_fcyvgRoEAF_7__fgngrVpRR:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_9fho_zngpuVCXpRRAF_9nyybpngbeVF4_RRR6nffvtaRzEXF4_
+.weak b__MAFg3__16irpgbeVAF_9fho_zngpuVCXpRRAF_9nyybpngbeVF4_RRR6nffvtaRzEXF4_
 .type b__MAFg3__16irpgbeVAF_9fho_zngpuVCXpRRAF_9nyybpngbeVF4_RRR6nffvtaRzEXF4_,%function
 b__MAFg3__16irpgbeVAF_9fho_zngpuVCXpRRAF_9nyybpngbeVF4_RRR6nffvtaRzEXF4_:
 nop
@@ -3528,7 +3528,7 @@
 b__MA7naqebvq5ivags9FlfgrzFqx6nqqNyyRCF1_:
 nop
 .text
-.globl b__MAXFg3__115__jbeq_obhaqnelVpAF_12ertrk_genvgfVpRRR6__rkrpREAF_7__fgngrVpRR
+.weak b__MAXFg3__115__jbeq_obhaqnelVpAF_12ertrk_genvgfVpRRR6__rkrpREAF_7__fgngrVpRR
 .type b__MAXFg3__115__jbeq_obhaqnelVpAF_12ertrk_genvgfVpRRR6__rkrpREAF_7__fgngrVpRR,%function
 b__MAXFg3__115__jbeq_obhaqnelVpAF_12ertrk_genvgfVpRRR6__rkrpREAF_7__fgngrVpRR:
 nop
@@ -3538,12 +3538,12 @@
 b__MA7naqebvq5ivags14ZngevkVafgnaprP1RAF0_9UnySbezngRAF_10SdVafgnaprREXAF0_12IrefvbaEnatrRoo:
 nop
 .text
-.globl b__MAFg3__16__gerrVA7naqebvq5ivags16ZnavsrfgVafgnaprRAF_4yrffVF3_RRAF_9nyybpngbeVF3_RRR14__nffvta_zhygvVAF_21__gerr_pbafg_vgrengbeVF3_CAF_11__gerr_abqrVF3_CiRRyRRRRiG_FT_
+.weak b__MAFg3__16__gerrVA7naqebvq5ivags16ZnavsrfgVafgnaprRAF_4yrffVF3_RRAF_9nyybpngbeVF3_RRR14__nffvta_zhygvVAF_21__gerr_pbafg_vgrengbeVF3_CAF_11__gerr_abqrVF3_CiRRyRRRRiG_FT_
 .type b__MAFg3__16__gerrVA7naqebvq5ivags16ZnavsrfgVafgnaprRAF_4yrffVF3_RRAF_9nyybpngbeVF3_RRR14__nffvta_zhygvVAF_21__gerr_pbafg_vgrengbeVF3_CAF_11__gerr_abqrVF3_CiRRyRRRRiG_FT_,%function
 b__MAFg3__16__gerrVA7naqebvq5ivags16ZnavsrfgVafgnaprRAF_4yrffVF3_RRAF_9nyybpngbeVF3_RRR14__nffvta_zhygvVAF_21__gerr_pbafg_vgrengbeVF3_CAF_11__gerr_abqrVF3_CiRRyRRRRiG_FT_:
 nop
 .data
-.globl b__MGIAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRRR
+.weak b__MGIAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRRR
 .type b__MGIAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRRR,%object
 b__MGIAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRRR:
 .space __SIZEOF_POINTER__
@@ -3553,17 +3553,17 @@
 b__MAX7naqebvq5ivags11UnyZnavsrfg16trgUvqyVafgnaprfREXAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRREXAF0_7IrefvbaRFN_:
 nop
 .data
-.globl b__MGIAFg3__116__onpx_ers_vpnfrVpAF_12ertrk_genvgfVpRRRR
+.weak b__MGIAFg3__116__onpx_ers_vpnfrVpAF_12ertrk_genvgfVpRRRR
 .type b__MGIAFg3__116__onpx_ers_vpnfrVpAF_12ertrk_genvgfVpRRRR,%object
 b__MGIAFg3__116__onpx_ers_vpnfrVpAF_12ertrk_genvgfVpRRRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq5ivags7IrefvbaRAF_9nyybpngbeVF3_RRR21__chfu_onpx_fybj_cnguVEXF3_RRiBG_
+.weak b__MAFg3__16irpgbeVA7naqebvq5ivags7IrefvbaRAF_9nyybpngbeVF3_RRR21__chfu_onpx_fybj_cnguVEXF3_RRiBG_
 .type b__MAFg3__16irpgbeVA7naqebvq5ivags7IrefvbaRAF_9nyybpngbeVF3_RRR21__chfu_onpx_fybj_cnguVEXF3_RRiBG_,%function
 b__MAFg3__16irpgbeVA7naqebvq5ivags7IrefvbaRAF_9nyybpngbeVF3_RRR21__chfu_onpx_fybj_cnguVEXF3_RRiBG_:
 nop
 .text
-.globl b__MAFg3__16irpgbeVCA8gvalkzy210KZYRyrzragRAF_9nyybpngbeVF3_RRR21__chfu_onpx_fybj_cnguVEXF3_RRiBG_
+.weak b__MAFg3__16irpgbeVCA8gvalkzy210KZYRyrzragRAF_9nyybpngbeVF3_RRR21__chfu_onpx_fybj_cnguVEXF3_RRiBG_
 .type b__MAFg3__16irpgbeVCA8gvalkzy210KZYRyrzragRAF_9nyybpngbeVF3_RRR21__chfu_onpx_fybj_cnguVEXF3_RRiBG_,%function
 b__MAFg3__16irpgbeVCA8gvalkzy210KZYRyrzragRAF_9nyybpngbeVF3_RRR21__chfu_onpx_fybj_cnguVEXF3_RRiBG_:
 nop
@@ -3583,7 +3583,7 @@
 b__MA7naqebvq5ivags11IvagsBowrpg16purpxQrcerpngvbaRCAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRR:
 nop
 .text
-.globl b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9conpxsnvyRv
+.weak b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9conpxsnvyRv
 .type b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9conpxsnvyRv,%function
 b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9conpxsnvyRv:
 nop
@@ -3603,12 +3603,12 @@
 b__MA7naqebvq5ivags5cnefrREXAFg3__112onfvp_fgevatVpAF1_11pune_genvgfVpRRAF1_9nyybpngbeVpRRRRCAF0_13XrearyIrefvbaR:
 nop
 .data
-.globl b__MGIA7naqebvq5ivags16KzyAbqrPbairegreVAF0_21XrearyFrcbyvplIrefvbaRRR
+.weak b__MGIA7naqebvq5ivags16KzyAbqrPbairegreVAF0_21XrearyFrcbyvplIrefvbaRRR
 .type b__MGIA7naqebvq5ivags16KzyAbqrPbairegreVAF0_21XrearyFrcbyvplIrefvbaRRR,%object
 b__MGIA7naqebvq5ivags16KzyAbqrPbairegreVAF0_21XrearyFrcbyvplIrefvbaRRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAXFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR8__frnepuVAF_9nyybpngbeVAF_9fho_zngpuVCXpRRRRRRoF8_F8_EAF_13zngpu_erfhygfVF8_G_RRAF_15ertrk_pbafgnagf15zngpu_synt_glcrR
+.weak b__MAXFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR8__frnepuVAF_9nyybpngbeVAF_9fho_zngpuVCXpRRRRRRoF8_F8_EAF_13zngpu_erfhygfVF8_G_RRAF_15ertrk_pbafgnagf15zngpu_synt_glcrR
 .type b__MAXFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR8__frnepuVAF_9nyybpngbeVAF_9fho_zngpuVCXpRRRRRRoF8_F8_EAF_13zngpu_erfhygfVF8_G_RRAF_15ertrk_pbafgnagf15zngpu_synt_glcrR,%function
 b__MAXFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR8__frnepuVAF_9nyybpngbeVAF_9fho_zngpuVCXpRRRRRRoF8_F8_EAF_13zngpu_erfhygfVF8_G_RRAF_15ertrk_pbafgnagf15zngpu_synt_glcrR:
 nop
@@ -3623,12 +3623,12 @@
 b__MA7naqebvq5ivags11ZnavsrfgUny14vafregVafgnaprREXAF_10SdVafgnaprRCAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRR:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_7__fgngrVpRRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVF2_RRiBG_
+.weak b__MAFg3__16irpgbeVAF_7__fgngrVpRRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVF2_RRiBG_
 .type b__MAFg3__16irpgbeVAF_7__fgngrVpRRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVF2_RRiBG_,%function
 b__MAFg3__16irpgbeVAF_7__fgngrVpRRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVF2_RRiBG_:
 nop
 .data
-.globl b__MGIAFg3__16__ybbcVpRR
+.weak b__MGIAFg3__16__ybbcVpRR
 .type b__MGIAFg3__16__ybbcVpRR,%object
 b__MGIAFg3__16__ybbcVpRR:
 .space __SIZEOF_POINTER__
@@ -3673,7 +3673,7 @@
 b__MA7naqebvq5ivags27cnefrXrearyPbasvtGlcrqInyhrREXAFg3__112onfvp_fgevatVpAF1_11pune_genvgfVpRRAF1_9nyybpngbeVpRRRRCAF0_22XrearyPbasvtGlcrqInyhrR:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq5ivags9IraqbeAqxRAF_9nyybpngbeVF3_RRR8__nccraqRz
+.weak b__MAFg3__16irpgbeVA7naqebvq5ivags9IraqbeAqxRAF_9nyybpngbeVF3_RRR8__nccraqRz
 .type b__MAFg3__16irpgbeVA7naqebvq5ivags9IraqbeAqxRAF_9nyybpngbeVF3_RRR8__nccraqRz,%function
 b__MAFg3__16irpgbeVA7naqebvq5ivags9IraqbeAqxRAF_9nyybpngbeVF3_RRR8__nccraqRz:
 nop
@@ -3688,7 +3688,7 @@
 b__MAX7naqebvq5ivags11EhagvzrVasb9bfEryrnfrRi:
 nop
 .data
-.globl b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_13onfvp_vfgernzVpF2_RR
+.weak b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_13onfvp_vfgernzVpF2_RR
 .type b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_13onfvp_vfgernzVpF2_RR,%object
 b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_13onfvp_vfgernzVpF2_RR:
 .space __SIZEOF_POINTER__
@@ -3698,7 +3698,7 @@
 b__MAX7naqebvq5ivags11ZnavsrfgUny15sbeRnpuVafgnaprREXAFg3__18shapgvbaVSoEXAF0_16ZnavsrfgVafgnaprRRRR:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRF7_RRAF_19__znc_inyhr_pbzcnerVF7_F8_AF_4yrffVF7_RRYo1RRRAF5_VF8_RRR7qrfgeblRCAF_11__gerr_abqrVF8_CiRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRF7_RRAF_19__znc_inyhr_pbzcnerVF7_F8_AF_4yrffVF7_RRYo1RRRAF5_VF8_RRR7qrfgeblRCAF_11__gerr_abqrVF8_CiRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRF7_RRAF_19__znc_inyhr_pbzcnerVF7_F8_AF_4yrffVF7_RRYo1RRRAF5_VF8_RRR7qrfgeblRCAF_11__gerr_abqrVF8_CiRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRF7_RRAF_19__znc_inyhr_pbzcnerVF7_F8_AF_4yrffVF7_RRYo1RRRAF5_VF8_RRR7qrfgeblRCAF_11__gerr_abqrVF8_CiRR:
 nop
diff --git a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_098.S b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_098.S
index 9cc9c2b..34c81be 100644
--- a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_098.S
+++ b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_098.S
@@ -23,7 +23,7 @@
 b__MA7naqebvq4hgvy15gel_fgngf_jevgrRvvCXpy:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVvAF_6irpgbeVvAF_9nyybpngbeVvRRRRRRAF_19__znc_inyhr_pbzcnerVvF6_AF_4yrffVvRRYo1RRRAF3_VF6_RRR7qrfgeblRCAF_11__gerr_abqrVF6_CiRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVvAF_6irpgbeVvAF_9nyybpngbeVvRRRRRRAF_19__znc_inyhr_pbzcnerVvF6_AF_4yrffVvRRYo1RRRAF3_VF6_RRR7qrfgeblRCAF_11__gerr_abqrVF6_CiRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVvAF_6irpgbeVvAF_9nyybpngbeVvRRRRRRAF_19__znc_inyhr_pbzcnerVvF6_AF_4yrffVvRRYo1RRRAF3_VF6_RRR7qrfgeblRCAF_11__gerr_abqrVF6_CiRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVvAF_6irpgbeVvAF_9nyybpngbeVvRRRRRRAF_19__znc_inyhr_pbzcnerVvF6_AF_4yrffVvRRYo1RRRAF3_VF6_RRR7qrfgeblRCAF_11__gerr_abqrVF6_CiRR:
 nop
@@ -63,12 +63,12 @@
 b__MA7naqebvq4hgvy11fgngf_jevgrRvEXAF0_10OlgrfSvryqRyv:
 nop
 .text
-.globl b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
+.weak b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
 .type b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_,%function
 b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_:
 nop
 .text
-.globl b__MAFg3__16irpgbeVvAF_9nyybpngbeVvRRR21__chfu_onpx_fybj_cnguVvRRiBG_
+.weak b__MAFg3__16irpgbeVvAF_9nyybpngbeVvRRR21__chfu_onpx_fybj_cnguVvRRiBG_
 .type b__MAFg3__16irpgbeVvAF_9nyybpngbeVvRRR21__chfu_onpx_fybj_cnguVvRRiBG_,%function
 b__MAFg3__16irpgbeVvAF_9nyybpngbeVvRRR21__chfu_onpx_fybj_cnguVvRRiBG_:
 nop
@@ -173,7 +173,7 @@
 b__MA7naqebvq4hgvy27gel_fgngf_jevgr_aba_punvarqRvvCXpv:
 nop
 .text
-.globl b__MAFg3__16__gerrVvAF_4yrffVvRRAF_9nyybpngbeVvRRR12__svaq_rdhnyVvRRECAF_16__gerr_abqr_onfrVCiRRAF_21__gerr_pbafg_vgrengbeVvCAF_11__gerr_abqrVvF8_RRyRRECAF_15__gerr_raq_abqrVFN_RRFO_EXG_
+.weak b__MAFg3__16__gerrVvAF_4yrffVvRRAF_9nyybpngbeVvRRR12__svaq_rdhnyVvRRECAF_16__gerr_abqr_onfrVCiRRAF_21__gerr_pbafg_vgrengbeVvCAF_11__gerr_abqrVvF8_RRyRRECAF_15__gerr_raq_abqrVFN_RRFO_EXG_
 .type b__MAFg3__16__gerrVvAF_4yrffVvRRAF_9nyybpngbeVvRRR12__svaq_rdhnyVvRRECAF_16__gerr_abqr_onfrVCiRRAF_21__gerr_pbafg_vgrengbeVvCAF_11__gerr_abqrVvF8_RRyRRECAF_15__gerr_raq_abqrVFN_RRFO_EXG_,%function
 b__MAFg3__16__gerrVvAF_4yrffVvRRAF_9nyybpngbeVvRRR12__svaq_rdhnyVvRRECAF_16__gerr_abqr_onfrVCiRRAF_21__gerr_pbafg_vgrengbeVvCAF_11__gerr_abqrVvF8_RRyRRECAF_15__gerr_raq_abqrVFN_RRFO_EXG_:
 nop
@@ -438,7 +438,7 @@
 b__MA7naqebvq4hgvy15gel_fgngf_jevgrRvEXAF0_10OlgrfSvryqRvvvvvy:
 nop
 .text
-.globl b__MAFg3__16__gerrVvAF_4yrffVvRRAF_9nyybpngbeVvRRR7qrfgeblRCAF_11__gerr_abqrVvCiRR
+.weak b__MAFg3__16__gerrVvAF_4yrffVvRRAF_9nyybpngbeVvRRR7qrfgeblRCAF_11__gerr_abqrVvCiRR
 .type b__MAFg3__16__gerrVvAF_4yrffVvRRAF_9nyybpngbeVvRRR7qrfgeblRCAF_11__gerr_abqrVvCiRR,%function
 b__MAFg3__16__gerrVvAF_4yrffVvRRAF_9nyybpngbeVvRRR7qrfgeblRCAF_11__gerr_abqrVvCiRR:
 nop
@@ -1178,7 +1178,7 @@
 b__MA7naqebvq4hgvy15gel_fgngf_jevgrRvvvyo:
 nop
 .text
-.globl b__MAFg3__16irpgbeVvAF_9nyybpngbeVvRRR6nffvtaVCvRRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVvAF_15vgrengbe_genvgfVF7_R9ersreraprRRR5inyhrRiR4glcrRF7_F7_
+.weak b__MAFg3__16irpgbeVvAF_9nyybpngbeVvRRR6nffvtaVCvRRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVvAF_15vgrengbe_genvgfVF7_R9ersreraprRRR5inyhrRiR4glcrRF7_F7_
 .type b__MAFg3__16irpgbeVvAF_9nyybpngbeVvRRR6nffvtaVCvRRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVvAF_15vgrengbe_genvgfVF7_R9ersreraprRRR5inyhrRiR4glcrRF7_F7_,%function
 b__MAFg3__16irpgbeVvAF_9nyybpngbeVvRRR6nffvtaVCvRRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVvAF_15vgrengbe_genvgfVF7_R9ersreraprRRR5inyhrRiR4glcrRF7_F7_:
 nop
@@ -1308,7 +1308,7 @@
 b__MA7naqebvq4hgvy9NgbzfVasb17xJuvgryvfgrqNgbzfR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVvA7naqebvq4hgvy21FgngrNgbzSvryqBcgvbafRRRAF_19__znc_inyhr_pbzcnerVvF5_AF_4yrffVvRRYo1RRRAF_9nyybpngbeVF5_RRR7qrfgeblRCAF_11__gerr_abqrVF5_CiRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVvA7naqebvq4hgvy21FgngrNgbzSvryqBcgvbafRRRAF_19__znc_inyhr_pbzcnerVvF5_AF_4yrffVvRRYo1RRRAF_9nyybpngbeVF5_RRR7qrfgeblRCAF_11__gerr_abqrVF5_CiRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVvA7naqebvq4hgvy21FgngrNgbzSvryqBcgvbafRRRAF_19__znc_inyhr_pbzcnerVvF5_AF_4yrffVvRRYo1RRRAF_9nyybpngbeVF5_RRR7qrfgeblRCAF_11__gerr_abqrVF5_CiRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVvA7naqebvq4hgvy21FgngrNgbzSvryqBcgvbafRRRAF_19__znc_inyhr_pbzcnerVvF5_AF_4yrffVvRRYo1RRRAF_9nyybpngbeVF5_RRR7qrfgeblRCAF_11__gerr_abqrVF5_CiRR:
 nop
@@ -1368,7 +1368,7 @@
 b__MA7naqebvq4hgvy15gel_fgngf_jevgrRvvCXpv:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVvvRRAF_19__znc_inyhr_pbzcnerVvF2_AF_4yrffVvRRYo1RRRAF_9nyybpngbeVF2_RRR7qrfgeblRCAF_11__gerr_abqrVF2_CiRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVvvRRAF_19__znc_inyhr_pbzcnerVvF2_AF_4yrffVvRRYo1RRRAF_9nyybpngbeVF2_RRR7qrfgeblRCAF_11__gerr_abqrVF2_CiRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVvvRRAF_19__znc_inyhr_pbzcnerVvF2_AF_4yrffVvRRYo1RRRAF_9nyybpngbeVF2_RRR7qrfgeblRCAF_11__gerr_abqrVF2_CiRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVvvRRAF_19__znc_inyhr_pbzcnerVvF2_AF_4yrffVvRRYo1RRRAF_9nyybpngbeVF2_RRR7qrfgeblRCAF_11__gerr_abqrVF2_CiRR:
 nop
diff --git a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_099.S b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_099.S
index dc3951a..2bc83a1 100644
--- a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_099.S
+++ b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_099.S
@@ -13,12 +13,12 @@
 b__MA25freire_pbasvthenoyr_syntf28FreirePbasvthenoyrSyntfErfrgRAF_9ErfrgZbqrR:
 nop
 .text
-.globl b__MAFg3__124__chg_punenpgre_frdhraprVpAF_11pune_genvgfVpRRRREAF_13onfvp_bfgernzVG_G0_RRF7_CXF4_z
+.weak b__MAFg3__124__chg_punenpgre_frdhraprVpAF_11pune_genvgfVpRRRREAF_13onfvp_bfgernzVG_G0_RRF7_CXF4_z
 .type b__MAFg3__124__chg_punenpgre_frdhraprVpAF_11pune_genvgfVpRRRREAF_13onfvp_bfgernzVG_G0_RRF7_CXF4_z,%function
 b__MAFg3__124__chg_punenpgre_frdhraprVpAF_11pune_genvgfVpRRRREAF_13onfvp_bfgernzVG_G0_RRF7_CXF4_z:
 nop
 .text
-.globl b__MAFg3__1yfVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRREAF_13onfvp_bfgernzVG_G0_RRF9_EXAF_12onfvp_fgevatVF6_F7_G1_RR
+.weak b__MAFg3__1yfVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRREAF_13onfvp_bfgernzVG_G0_RRF9_EXAF_12onfvp_fgevatVF6_F7_G1_RR
 .type b__MAFg3__1yfVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRREAF_13onfvp_bfgernzVG_G0_RRF9_EXAF_12onfvp_fgevatVF6_F7_G1_RR,%function
 b__MAFg3__1yfVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRREAF_13onfvp_bfgernzVG_G0_RRF9_EXAF_12onfvp_fgevatVF6_F7_G1_RR:
 nop
diff --git a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_100.S b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_100.S
index b78c5c6..415b964 100644
--- a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_100.S
+++ b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_100.S
@@ -63,7 +63,7 @@
 b_svkrq_ssg_erny:
 nop
 .data
-.globl b__MGIAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
+.weak b__MGIAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
 .type b__MGIAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR,%object
 b__MGIAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR:
 .space __SIZEOF_POINTER__
@@ -133,7 +133,7 @@
 b_qbjazvk_gb_zbab_v16_sebz_fgrerb_v16:
 nop
 .data
-.globl b__MGGAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
+.weak b__MGGAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
 .type b__MGGAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR,%object
 b__MGGAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR:
 .space __SIZEOF_POINTER__
@@ -168,7 +168,7 @@
 b_zrzpcl_gb_v32_sebz_sybng:
 nop
 .text
-.globl b__MAFg3__16irpgbeVvAF_9nyybpngbeVvRRR8__nccraqRz
+.weak b__MAFg3__16irpgbeVvAF_9nyybpngbeVvRRR8__nccraqRz
 .type b__MAFg3__16irpgbeVvAF_9nyybpngbeVvRRR8__nccraqRz,%function
 b__MAFg3__16irpgbeVvAF_9nyybpngbeVvRRR8__nccraqRz:
 nop
@@ -238,7 +238,7 @@
 b_tnva_sebz_sybng:
 nop
 .text
-.globl b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR8biresybjRv
+.weak b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR8biresybjRv
 .type b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR8biresybjRv,%function
 b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR8biresybjRv:
 nop
@@ -263,7 +263,7 @@
 b__MAX7naqebvq11nhqvb_hgvyf7Onynapr20pbzchgrFgrerbOnynaprRsCsF2_:
 nop
 .data
-.globl b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR16_AF_13onfvp_bfgernzVpF2_RR
+.weak b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR16_AF_13onfvp_bfgernzVpF2_RR
 .type b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR16_AF_13onfvp_bfgernzVpF2_RR,%object
 b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR16_AF_13onfvp_bfgernzVpF2_RR:
 .space __SIZEOF_POINTER__
@@ -288,7 +288,7 @@
 b__MA40ErsVaqrkQrsreerqFgberEryrnfrQrsreerqJnxrQ1Ri:
 nop
 .data
-.globl b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_14onfvp_vbfgernzVpF2_RR
+.weak b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_14onfvp_vbfgernzVpF2_RR
 .type b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_14onfvp_vbfgernzVpF2_RR,%object
 b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_14onfvp_vbfgernzVpF2_RR:
 .space __SIZEOF_POINTER__
@@ -358,12 +358,12 @@
 b__MA7naqebvq11nhqvb_hgvyf7Onynapr14frgPunaaryZnfxRw:
 nop
 .text
-.globl b__MAFg3__124__chg_punenpgre_frdhraprVpAF_11pune_genvgfVpRRRREAF_13onfvp_bfgernzVG_G0_RRF7_CXF4_z
+.weak b__MAFg3__124__chg_punenpgre_frdhraprVpAF_11pune_genvgfVpRRRREAF_13onfvp_bfgernzVG_G0_RRF7_CXF4_z
 .type b__MAFg3__124__chg_punenpgre_frdhraprVpAF_11pune_genvgfVpRRRREAF_13onfvp_bfgernzVG_G0_RRF7_CXF4_z,%function
 b__MAFg3__124__chg_punenpgre_frdhraprVpAF_11pune_genvgfVpRRRREAF_13onfvp_bfgernzVG_G0_RRF7_CXF4_z:
 nop
 .data
-.globl b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_13onfvp_vfgernzVpF2_RR
+.weak b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_13onfvp_vfgernzVpF2_RR
 .type b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_13onfvp_vfgernzVpF2_RR,%object
 b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_13onfvp_vfgernzVpF2_RR:
 .space __SIZEOF_POINTER__
@@ -408,7 +408,7 @@
 b_perngr_erfnzcyre:
 nop
 .text
-.globl b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR7frrxbssRkAF_8vbf_onfr7frrxqveRw
+.weak b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR7frrxbssRkAF_8vbf_onfr7frrxqveRw
 .type b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR7frrxbssRkAF_8vbf_onfr7frrxqveRw,%function
 b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR7frrxbssRkAF_8vbf_onfr7frrxqveRw:
 nop
@@ -433,7 +433,7 @@
 b_abaMrebZbab16:
 nop
 .text
-.globl b__MAXFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR3fgeRi
+.weak b__MAXFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR3fgeRi
 .type b__MAXFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR3fgeRi,%function
 b__MAXFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR3fgeRi:
 nop
@@ -463,7 +463,7 @@
 b_npphzhyngr_sybng:
 nop
 .text
-.globl b__MAFg3__16irpgbeVsAF_9nyybpngbeVsRRR6nffvtaVCsRRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVsAF_15vgrengbe_genvgfVF7_R9ersreraprRRR5inyhrRiR4glcrRF7_F7_
+.weak b__MAFg3__16irpgbeVsAF_9nyybpngbeVsRRR6nffvtaVCsRRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVsAF_15vgrengbe_genvgfVF7_R9ersreraprRRR5inyhrRiR4glcrRF7_F7_
 .type b__MAFg3__16irpgbeVsAF_9nyybpngbeVsRRR6nffvtaVCsRRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVsAF_15vgrengbe_genvgfVF7_R9ersreraprRRR5inyhrRiR4glcrRF7_F7_,%function
 b__MAFg3__16irpgbeVsAF_9nyybpngbeVsRRR6nffvtaVCsRRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVsAF_15vgrengbe_genvgfVF7_R9ersreraprRRR5inyhrRiR4glcrRF7_F7_:
 nop
@@ -598,7 +598,7 @@
 b__MA40ErsVaqrkQrsreerqFgberEryrnfrQrsreerqJnxrP1RE22nhqvb_hgvyf_svsb_vaqrk:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_4cnveVsoRRAF_9nyybpngbeVF2_RRR24__rzcynpr_onpx_fybj_cnguVWEXsoRRRiQcBG_
+.weak b__MAFg3__16irpgbeVAF_4cnveVsoRRAF_9nyybpngbeVF2_RRR24__rzcynpr_onpx_fybj_cnguVWEXsoRRRiQcBG_
 .type b__MAFg3__16irpgbeVAF_4cnveVsoRRAF_9nyybpngbeVF2_RRR24__rzcynpr_onpx_fybj_cnguVWEXsoRRRiQcBG_,%function
 b__MAFg3__16irpgbeVAF_4cnveVsoRRAF_9nyybpngbeVF2_RRR24__rzcynpr_onpx_fybj_cnguVWEXsoRRRiQcBG_:
 nop
@@ -683,7 +683,7 @@
 b_zrzpcl_gb_sybng_sebz_v16:
 nop
 .data
-.globl b__MGIAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
+.weak b__MGIAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
 .type b__MGIAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR,%object
 b__MGIAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR:
 .space __SIZEOF_POINTER__
@@ -703,7 +703,7 @@
 b_zrzpcl_gb_sybng_sebz_d4_27:
 nop
 .text
-.globl b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9conpxsnvyRv
+.weak b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9conpxsnvyRv
 .type b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9conpxsnvyRv,%function
 b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9conpxsnvyRv:
 nop
@@ -743,17 +743,17 @@
 b__MA23nhqvb_hgvyf_svsb_jevgreQ1Ri:
 nop
 .text
-.globl b__M20nhqvb_hgvyf_ybt_cybgVAFg3__111__jenc_vgreVCAF0_4cnveVsoRRRRRAF0_12onfvp_fgevatVpAF0_11pune_genvgfVpRRAF0_9nyybpngbeVpRRRRG_FP_
+.weak b__M20nhqvb_hgvyf_ybt_cybgVAFg3__111__jenc_vgreVCAF0_4cnveVsoRRRRRAF0_12onfvp_fgevatVpAF0_11pune_genvgfVpRRAF0_9nyybpngbeVpRRRRG_FP_
 .type b__M20nhqvb_hgvyf_ybt_cybgVAFg3__111__jenc_vgreVCAF0_4cnveVsoRRRRRAF0_12onfvp_fgevatVpAF0_11pune_genvgfVpRRAF0_9nyybpngbeVpRRRRG_FP_,%function
 b__M20nhqvb_hgvyf_ybt_cybgVAFg3__111__jenc_vgreVCAF0_4cnveVsoRRRRRAF0_12onfvp_fgevatVpAF0_11pune_genvgfVpRRAF0_9nyybpngbeVpRRRRG_FP_:
 nop
 .text
-.globl b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9haqresybjRi
+.weak b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9haqresybjRi
 .type b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9haqresybjRi,%function
 b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9haqresybjRi:
 nop
 .text
-.globl b__MAFg3__16irpgbeVsAF_9nyybpngbeVsRRR8__nccraqRz
+.weak b__MAFg3__16irpgbeVsAF_9nyybpngbeVsRRR8__nccraqRz
 .type b__MAFg3__16irpgbeVsAF_9nyybpngbeVsRRR8__nccraqRz,%function
 b__MAFg3__16irpgbeVsAF_9nyybpngbeVsRRR8__nccraqRz:
 nop
@@ -833,7 +833,7 @@
 b__MA37ErsVaqrkPnpurqYbnqNpdhverQrsreerqJnvg3trgRi:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_4cnveVsoRRAF_9nyybpngbeVF2_RRR24__rzcynpr_onpx_fybj_cnguVWEsoRRRiQcBG_
+.weak b__MAFg3__16irpgbeVAF_4cnveVsoRRAF_9nyybpngbeVF2_RRR24__rzcynpr_onpx_fybj_cnguVWEsoRRRiQcBG_
 .type b__MAFg3__16irpgbeVAF_4cnveVsoRRAF_9nyybpngbeVF2_RRR24__rzcynpr_onpx_fybj_cnguVWEsoRRRiQcBG_,%function
 b__MAFg3__16irpgbeVAF_4cnveVsoRRAF_9nyybpngbeVF2_RRR24__rzcynpr_onpx_fybj_cnguVWEsoRRRiQcBG_:
 nop
diff --git a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_101.S b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_101.S
index b5bcd54..93b951b 100644
--- a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_101.S
+++ b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_101.S
@@ -13,7 +13,7 @@
 b__MA7naqebvq13VNhqvbZnantreQ2Ri:
 nop
 .data
-.globl b__MGIA7naqebvq14OcNhqvbZnantreR
+.weak b__MGIA7naqebvq14OcNhqvbZnantreR
 .type b__MGIA7naqebvq14OcNhqvbZnantreR,%object
 b__MGIA7naqebvq14OcNhqvbZnantreR:
 .space __SIZEOF_POINTER__
@@ -28,7 +28,7 @@
 b__MA7naqebvq13VNhqvbZnantreQ1Ri:
 nop
 .data
-.globl b__MGPA7naqebvq14OcNhqvbZnantreR0_AF_13VNhqvbZnantreR
+.weak b__MGPA7naqebvq14OcNhqvbZnantreR0_AF_13VNhqvbZnantreR
 .type b__MGPA7naqebvq14OcNhqvbZnantreR0_AF_13VNhqvbZnantreR,%object
 b__MGPA7naqebvq14OcNhqvbZnantreR0_AF_13VNhqvbZnantreR:
 .space __SIZEOF_POINTER__
@@ -78,17 +78,17 @@
 b__MGPA7naqebvq13VNhqvbZnantreR0_AF_10VVagresnprR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGPA7naqebvq14OcNhqvbZnantreR0_AF_10VVagresnprR
+.weak b__MGPA7naqebvq14OcNhqvbZnantreR0_AF_10VVagresnprR
 .type b__MGPA7naqebvq14OcNhqvbZnantreR0_AF_10VVagresnprR,%object
 b__MGPA7naqebvq14OcNhqvbZnantreR0_AF_10VVagresnprR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGPA7naqebvq14OcNhqvbZnantreR0_AF_11OcVagresnprVAF_13VNhqvbZnantreRRR
+.weak b__MGPA7naqebvq14OcNhqvbZnantreR0_AF_11OcVagresnprVAF_13VNhqvbZnantreRRR
 .type b__MGPA7naqebvq14OcNhqvbZnantreR0_AF_11OcVagresnprVAF_13VNhqvbZnantreRRR,%object
 b__MGPA7naqebvq14OcNhqvbZnantreR0_AF_11OcVagresnprVAF_13VNhqvbZnantreRRR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGPA7naqebvq14OcNhqvbZnantreR8_AF_9OcErsOnfrR
+.weak b__MGPA7naqebvq14OcNhqvbZnantreR8_AF_9OcErsOnfrR
 .type b__MGPA7naqebvq14OcNhqvbZnantreR8_AF_9OcErsOnfrR,%object
 b__MGPA7naqebvq14OcNhqvbZnantreR8_AF_9OcErsOnfrR:
 .space __SIZEOF_POINTER__
@@ -98,7 +98,7 @@
 b__MGGA7naqebvq13VNhqvbZnantreR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGGA7naqebvq14OcNhqvbZnantreR
+.weak b__MGGA7naqebvq14OcNhqvbZnantreR
 .type b__MGGA7naqebvq14OcNhqvbZnantreR,%object
 b__MGGA7naqebvq14OcNhqvbZnantreR:
 .space __SIZEOF_POINTER__
diff --git a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_102.S b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_102.S
index 599a318..0e33b57 100644
--- a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_102.S
+++ b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_102.S
@@ -18,7 +18,7 @@
 b__MGIA7naqebvq11CebprffVasbR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_8Fgevat16RR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_8Fgevat16RR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_8Fgevat16RR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_8Fgevat16RR8qb_fcyngRCiCXiz:
 nop
@@ -58,7 +58,7 @@
 b__MA7naqebvq19ZrqvnCnpxntrZnantre22ergervirCnpxntrZnantreRi:
 nop
 .text
-.globl b__MA7naqebvq9FvatyrgbaVAF_15OnggrelAbgvsvreRR11unfVafgnaprRi
+.weak b__MA7naqebvq9FvatyrgbaVAF_15OnggrelAbgvsvreRR11unfVafgnaprRi
 .type b__MA7naqebvq9FvatyrgbaVAF_15OnggrelAbgvsvreRR11unfVafgnaprRi,%function
 b__MA7naqebvq9FvatyrgbaVAF_15OnggrelAbgvsvreRR11unfVafgnaprRi:
 nop
@@ -68,7 +68,7 @@
 b__MA7naqebvq9FvatyrgbaVAF_15OnggrelAbgvsvreRR9fVafgnaprR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVwvRRAF_19__znc_inyhr_pbzcnerVwF2_AF_4yrffVwRRYo1RRRAF_9nyybpngbeVF2_RRR7qrfgeblRCAF_11__gerr_abqrVF2_CiRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVwvRRAF_19__znc_inyhr_pbzcnerVwF2_AF_4yrffVwRRYo1RRRAF_9nyybpngbeVF2_RRR7qrfgeblRCAF_11__gerr_abqrVF2_CiRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVwvRRAF_19__znc_inyhr_pbzcnerVwF2_AF_4yrffVwRRYo1RRRAF_9nyybpngbeVF2_RRR7qrfgeblRCAF_11__gerr_abqrVF2_CiRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVwvRRAF_19__znc_inyhr_pbzcnerVwF2_AF_4yrffVwRRYo1RRRAF_9nyybpngbeVF2_RRR7qrfgeblRCAF_11__gerr_abqrVF2_CiRR:
 nop
@@ -78,7 +78,7 @@
 b__MA7naqebvq24VFpurqhyvatCbyvplFreivpr14frgQrsnhygVzcyRAFg3__110havdhr_cgeVF0_AF1_14qrsnhyg_qryrgrVF0_RRRR:
 nop
 .text
-.globl b__MAFg3__124__chg_punenpgre_frdhraprVpAF_11pune_genvgfVpRRRREAF_13onfvp_bfgernzVG_G0_RRF7_CXF4_z
+.weak b__MAFg3__124__chg_punenpgre_frdhraprVpAF_11pune_genvgfVpRRRREAF_13onfvp_bfgernzVG_G0_RRF7_CXF4_z
 .type b__MAFg3__124__chg_punenpgre_frdhraprVpAF_11pune_genvgfVpRRRREAF_13onfvp_bfgernzVG_G0_RRF7_CXF4_z,%function
 b__MAFg3__124__chg_punenpgre_frdhraprVpAF_11pune_genvgfVpRRRREAF_13onfvp_bfgernzVG_G0_RRF7_CXF4_z:
 nop
@@ -88,7 +88,7 @@
 b_nflap_fnsr_sbezng_ybt:
 nop
 .text
-.globl b__MA7naqebvq9FvatyrgbaVAF_15OnggrelAbgvsvreRRP1Ri
+.weak b__MA7naqebvq9FvatyrgbaVAF_15OnggrelAbgvsvreRRP1Ri
 .type b__MA7naqebvq9FvatyrgbaVAF_15OnggrelAbgvsvreRRP1Ri,%function
 b__MA7naqebvq9FvatyrgbaVAF_15OnggrelAbgvsvreRRP1Ri:
 nop
@@ -98,7 +98,7 @@
 b__MA7naqebvq24VFpurqhyvatCbyvplFreivprQ2Ri:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_8Fgevat16RR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq6IrpgbeVAF_8Fgevat16RR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq6IrpgbeVAF_8Fgevat16RR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq6IrpgbeVAF_8Fgevat16RR12qb_pbafgehpgRCiz:
 nop
@@ -173,12 +173,12 @@
 b__MGi0_a24_A7naqebvq24VFpurqhyvatCbyvplFreivprQ1Ri:
 nop
 .data
-.globl b__MGIAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
+.weak b__MGIAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
 .type b__MGIAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR,%object
 b__MGIAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_8Fgevat16RR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_8Fgevat16RR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_8Fgevat16RR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_8Fgevat16RR7qb_pbclRCiCXiz:
 nop
@@ -188,12 +188,12 @@
 b__MA7naqebvq9GvzrPurpx15GvzrPurpxGuernqQ2Ri:
 nop
 .data
-.globl b__MGPA7naqebvq25OcFpurqhyvatCbyvplFreivprR8_AF_9OcErsOnfrR
+.weak b__MGPA7naqebvq25OcFpurqhyvatCbyvplFreivprR8_AF_9OcErsOnfrR
 .type b__MGPA7naqebvq25OcFpurqhyvatCbyvplFreivprR8_AF_9OcErsOnfrR,%object
 b__MGPA7naqebvq25OcFpurqhyvatCbyvplFreivprR8_AF_9OcErsOnfrR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR8biresybjRv
+.weak b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR8biresybjRv
 .type b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR8biresybjRv,%function
 b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR8biresybjRv:
 nop
@@ -203,7 +203,7 @@
 b__MA7naqebvq9GvzrPurpx15GvzrPurpxGuernq14fgbcZbavgbevatRy:
 nop
 .text
-.globl b__MAFg3__16irpgbeVvAF_9nyybpngbeVvRRR6nffvtaVCvRRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVvAF_15vgrengbe_genvgfVF7_R9ersreraprRRR5inyhrRiR4glcrRF7_F7_
+.weak b__MAFg3__16irpgbeVvAF_9nyybpngbeVvRRR6nffvtaVCvRRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVvAF_15vgrengbe_genvgfVF7_R9ersreraprRRR5inyhrRiR4glcrRF7_F7_
 .type b__MAFg3__16irpgbeVvAF_9nyybpngbeVvRRR6nffvtaVCvRRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVvAF_15vgrengbe_genvgfVF7_R9ersreraprRRR5inyhrRiR4glcrRF7_F7_,%function
 b__MAFg3__16irpgbeVvAF_9nyybpngbeVvRRR6nffvtaVCvRRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVvAF_15vgrengbe_genvgfVF7_R9ersreraprRRR5inyhrRiR4glcrRF7_F7_:
 nop
@@ -233,7 +233,7 @@
 b__MA7naqebvq15OnggrelAbgvsvre19trgOnggrelFreivpr_yRi:
 nop
 .data
-.globl b__MGGA7naqebvq25OcFpurqhyvatCbyvplFreivprR
+.weak b__MGGA7naqebvq25OcFpurqhyvatCbyvplFreivprR
 .type b__MGGA7naqebvq25OcFpurqhyvatCbyvplFreivprR,%object
 b__MGGA7naqebvq25OcFpurqhyvatCbyvplFreivprR:
 .space __SIZEOF_POINTER__
@@ -253,7 +253,7 @@
 b_nflap_fnsr_sngny_in_yvfg:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVyCXpRRR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVyCXpRRR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVyCXpRRR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVyCXpRRR16qb_zbir_onpxjneqRCiCXiz:
 nop
@@ -298,12 +298,12 @@
 b__MA7naqebvq15OnggrelAbgvsvreP1Ri:
 nop
 .text
-.globl b__MA7naqebvq9FvatyrgbaVAF_15OnggrelAbgvsvreRRP2Ri
+.weak b__MA7naqebvq9FvatyrgbaVAF_15OnggrelAbgvsvreRRP2Ri
 .type b__MA7naqebvq9FvatyrgbaVAF_15OnggrelAbgvsvreRRP2Ri,%function
 b__MA7naqebvq9FvatyrgbaVAF_15OnggrelAbgvsvreRRP2Ri:
 nop
 .text
-.globl b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
+.weak b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
 .type b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_,%function
 b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_:
 nop
@@ -313,7 +313,7 @@
 b__MA7naqebvq24VFpurqhyvatCbyvplFreivpr11nfVagresnprREXAF_2fcVAF_7VOvaqreRRR:
 nop
 .data
-.globl b__MGGAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
+.weak b__MGGAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
 .type b__MGGAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR,%object
 b__MGGAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR:
 .space __SIZEOF_POINTER__
@@ -338,7 +338,7 @@
 b__MA7naqebvq18erdhrfgPchfrgObbfgRoEXAF_2fcVAF_10VVagresnprRRR:
 nop
 .data
-.globl b__MGIA7naqebvq6IrpgbeVAF_8Fgevat16RRR
+.weak b__MGIA7naqebvq6IrpgbeVAF_8Fgevat16RRR
 .type b__MGIA7naqebvq6IrpgbeVAF_8Fgevat16RRR,%object
 b__MGIA7naqebvq6IrpgbeVAF_8Fgevat16RRR:
 .space __SIZEOF_POINTER__
@@ -348,7 +348,7 @@
 b__MA7naqebvq15OnggrelAbgvsvre14abgrFgbcPnzrenREXAF_7Fgevat8Rw:
 nop
 .text
-.globl b__MA7naqebvq9FvatyrgbaVAF_15OnggrelAbgvsvreRR11trgVafgnaprRi
+.weak b__MA7naqebvq9FvatyrgbaVAF_15OnggrelAbgvsvreRR11trgVafgnaprRi
 .type b__MA7naqebvq9FvatyrgbaVAF_15OnggrelAbgvsvreRR11trgVafgnaprRi,%function
 b__MA7naqebvq9FvatyrgbaVAF_15OnggrelAbgvsvreRR11trgVafgnaprRi:
 nop
@@ -358,7 +358,7 @@
 b__MGPA7naqebvq25OaFpurqhyvatCbyvplFreivprR8_AF_7VOvaqreR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_8Fgevat16RR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq6IrpgbeVAF_8Fgevat16RR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq6IrpgbeVAF_8Fgevat16RR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq6IrpgbeVAF_8Fgevat16RR10qb_qrfgeblRCiz:
 nop
@@ -383,7 +383,7 @@
 b__MGGA7naqebvq24VFpurqhyvatCbyvplFreivprR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9haqresybjRi
+.weak b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9haqresybjRi
 .type b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9haqresybjRi,%function
 b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9haqresybjRi:
 nop
@@ -418,7 +418,7 @@
 b__MA7naqebvq9FvatyrgbaVAF_15OnggrelAbgvsvreRR5fYbpxR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGPA7naqebvq25OcFpurqhyvatCbyvplFreivprR0_AF_24VFpurqhyvatCbyvplFreivprR
+.weak b__MGPA7naqebvq25OcFpurqhyvatCbyvplFreivprR0_AF_24VFpurqhyvatCbyvplFreivprR
 .type b__MGPA7naqebvq25OcFpurqhyvatCbyvplFreivprR0_AF_24VFpurqhyvatCbyvplFreivprR,%object
 b__MGPA7naqebvq25OcFpurqhyvatCbyvplFreivprR0_AF_24VFpurqhyvatCbyvplFreivprR:
 .space __SIZEOF_POINTER__
@@ -433,7 +433,7 @@
 b__MA7naqebvq21pncgherUbgjbeqNyybjrqREXAF_8Fgevat16Rvw:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVyCXpRRR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVyCXpRRR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVyCXpRRR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVyCXpRRR8qb_fcyngRCiCXiz:
 nop
@@ -448,7 +448,7 @@
 b__MA7naqebvq9GvzrPurpxP1RCXpw:
 nop
 .text
-.globl b__MA7naqebvq9FvatyrgbaVAF_15OnggrelAbgvsvreRRQ1Ri
+.weak b__MA7naqebvq9FvatyrgbaVAF_15OnggrelAbgvsvreRRQ1Ri
 .type b__MA7naqebvq9FvatyrgbaVAF_15OnggrelAbgvsvreRRQ1Ri,%function
 b__MA7naqebvq9FvatyrgbaVAF_15OnggrelAbgvsvreRRQ1Ri:
 nop
@@ -458,7 +458,7 @@
 b__MAX7naqebvq24VFpurqhyvatCbyvplFreivpr22trgVagresnprQrfpevcgbeRi:
 nop
 .data
-.globl b__MGPAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_13onfvp_bfgernzVpF2_RR
+.weak b__MGPAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_13onfvp_bfgernzVpF2_RR
 .type b__MGPAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_13onfvp_bfgernzVpF2_RR,%object
 b__MGPAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_13onfvp_bfgernzVpF2_RR:
 .space __SIZEOF_POINTER__
@@ -483,12 +483,12 @@
 b__MA7naqebvq19ZrqvnCnpxntrZnantre11qbVfNyybjrqRw:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_8Fgevat16RR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_8Fgevat16RR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_8Fgevat16RR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_8Fgevat16RR15qb_zbir_sbejneqRCiCXiz:
 nop
 .text
-.globl b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
+.weak b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
 .type b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_,%function
 b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_:
 nop
@@ -498,12 +498,12 @@
 b__MA7naqebvq9GvzrPurpx18npprffNhqvbUnyCvqfRCAFg3__16irpgbeVvAF1_9nyybpngbeVvRRRRo:
 nop
 .text
-.globl b__MAFg3__16__gerrVC8ZncRagel15pbzcner_ragevrfAF_9nyybpngbeVF2_RRR7qrfgeblRCAF_11__gerr_abqrVF2_CiRR
+.weak b__MAFg3__16__gerrVC8ZncRagel15pbzcner_ragevrfAF_9nyybpngbeVF2_RRR7qrfgeblRCAF_11__gerr_abqrVF2_CiRR
 .type b__MAFg3__16__gerrVC8ZncRagel15pbzcner_ragevrfAF_9nyybpngbeVF2_RRR7qrfgeblRCAF_11__gerr_abqrVF2_CiRR,%function
 b__MAFg3__16__gerrVC8ZncRagel15pbzcner_ragevrfAF_9nyybpngbeVF2_RRR7qrfgeblRCAF_11__gerr_abqrVF2_CiRR:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVyCXpRRR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVyCXpRRR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVyCXpRRR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVyCXpRRR15qb_zbir_sbejneqRCiCXiz:
 nop
@@ -533,7 +533,7 @@
 b__MA7naqebvq24VFpurqhyvatCbyvplFreivprP2Ri:
 nop
 .data
-.globl b__MGPA7naqebvq25OcFpurqhyvatCbyvplFreivprR0_AF_11OcVagresnprVAF_24VFpurqhyvatCbyvplFreivprRRR
+.weak b__MGPA7naqebvq25OcFpurqhyvatCbyvplFreivprR0_AF_11OcVagresnprVAF_24VFpurqhyvatCbyvplFreivprRRR
 .type b__MGPA7naqebvq25OcFpurqhyvatCbyvplFreivprR0_AF_11OcVagresnprVAF_24VFpurqhyvatCbyvplFreivprRRR,%object
 b__MGPA7naqebvq25OcFpurqhyvatCbyvplFreivprR0_AF_11OcVagresnprVAF_24VFpurqhyvatCbyvplFreivprRRR:
 .space __SIZEOF_POINTER__
@@ -558,7 +558,7 @@
 b__MA7naqebvq15OnggrelAbgvsvre13abgrFgbcIvqrbRw:
 nop
 .data
-.globl b__MGIA7naqebvq25OcFpurqhyvatCbyvplFreivprR
+.weak b__MGIA7naqebvq25OcFpurqhyvatCbyvplFreivprR
 .type b__MGIA7naqebvq25OcFpurqhyvatCbyvplFreivprR,%object
 b__MGIA7naqebvq25OcFpurqhyvatCbyvplFreivprR:
 .space __SIZEOF_POINTER__
@@ -598,17 +598,17 @@
 b__MA7naqebvq15OnggrelAbgvsvreQ1Ri:
 nop
 .text
-.globl b__MA7naqebvq9FvatyrgbaVAF_15OnggrelAbgvsvreRRQ2Ri
+.weak b__MA7naqebvq9FvatyrgbaVAF_15OnggrelAbgvsvreRRQ2Ri
 .type b__MA7naqebvq9FvatyrgbaVAF_15OnggrelAbgvsvreRRQ2Ri,%function
 b__MA7naqebvq9FvatyrgbaVAF_15OnggrelAbgvsvreRRQ2Ri:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_4cnveVA7naqebvq7Fgevat8RwRRoRRAF_19__znc_inyhr_pbzcnerVF5_F6_AF_4yrffVF5_RRYo1RRRAF_9nyybpngbeVF6_RRR7qrfgeblRCAF_11__gerr_abqrVF6_CiRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_4cnveVA7naqebvq7Fgevat8RwRRoRRAF_19__znc_inyhr_pbzcnerVF5_F6_AF_4yrffVF5_RRYo1RRRAF_9nyybpngbeVF6_RRR7qrfgeblRCAF_11__gerr_abqrVF6_CiRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_4cnveVA7naqebvq7Fgevat8RwRRoRRAF_19__znc_inyhr_pbzcnerVF5_F6_AF_4yrffVF5_RRYo1RRRAF_9nyybpngbeVF6_RRR7qrfgeblRCAF_11__gerr_abqrVF6_CiRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_4cnveVA7naqebvq7Fgevat8RwRRoRRAF_19__znc_inyhr_pbzcnerVF5_F6_AF_4yrffVF5_RRYo1RRRAF_9nyybpngbeVF6_RRR7qrfgeblRCAF_11__gerr_abqrVF6_CiRR:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq19ZrqvnCnpxntrZnantre7CnpxntrRAF_9nyybpngbeVF3_RRR8__nccraqRz
+.weak b__MAFg3__16irpgbeVA7naqebvq19ZrqvnCnpxntrZnantre7CnpxntrRAF_9nyybpngbeVF3_RRR8__nccraqRz
 .type b__MAFg3__16irpgbeVA7naqebvq19ZrqvnCnpxntrZnantre7CnpxntrRAF_9nyybpngbeVF3_RRR8__nccraqRz,%function
 b__MAFg3__16irpgbeVA7naqebvq19ZrqvnCnpxntrZnantre7CnpxntrRAF_9nyybpngbeVF3_RRR8__nccraqRz:
 nop
@@ -623,7 +623,7 @@
 b__MA7naqebvq15frggvatfNyybjrqRi:
 nop
 .text
-.globl b__MA7naqebvq2fcVAF_9GvzrPurpx15GvzrPurpxGuernqRRQ2Ri
+.weak b__MA7naqebvq2fcVAF_9GvzrPurpx15GvzrPurpxGuernqRRQ2Ri
 .type b__MA7naqebvq2fcVAF_9GvzrPurpx15GvzrPurpxGuernqRRQ2Ri,%function
 b__MA7naqebvq2fcVAF_9GvzrPurpx15GvzrPurpxGuernqRRQ2Ri:
 nop
@@ -633,7 +633,7 @@
 b__MGGA7naqebvq25OaFpurqhyvatCbyvplFreivprR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAXFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR3fgeRi
+.weak b__MAXFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR3fgeRi
 .type b__MAXFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR3fgeRi,%function
 b__MAXFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR3fgeRi:
 nop
@@ -663,17 +663,17 @@
 b__MA7naqebvq25zbqvslNhqvbEbhgvatNyybjrqRi:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_8Fgevat16RR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_8Fgevat16RR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_8Fgevat16RR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_8Fgevat16RR16qb_zbir_onpxjneqRCiCXiz:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVyCXpRRR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVyCXpRRR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVyCXpRRR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVyCXpRRR10qb_qrfgeblRCiz:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVyCXpRRR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVyCXpRRR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVyCXpRRR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVyCXpRRR7qb_pbclRCiCXiz:
 nop
@@ -688,12 +688,12 @@
 b__MA7naqebvq15OnggrelAbgvsvre24baOnggrelFgngFreivprQvrqRi:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_4cnveVA7naqebvq7Fgevat8RwRRoRRAF_19__znc_inyhr_pbzcnerVF5_F6_AF_4yrffVF5_RRYo1RRRAF_9nyybpngbeVF6_RRR25__rzcynpr_havdhr_xrl_netfVF5_WEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXF5_RRRAFV_VWRRRRRRAF2_VAF_15__gerr_vgrengbeVF6_CAF_11__gerr_abqrVF6_CiRRyRRoRREXG_QcBG0_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_4cnveVA7naqebvq7Fgevat8RwRRoRRAF_19__znc_inyhr_pbzcnerVF5_F6_AF_4yrffVF5_RRYo1RRRAF_9nyybpngbeVF6_RRR25__rzcynpr_havdhr_xrl_netfVF5_WEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXF5_RRRAFV_VWRRRRRRAF2_VAF_15__gerr_vgrengbeVF6_CAF_11__gerr_abqrVF6_CiRRyRRoRREXG_QcBG0_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_4cnveVA7naqebvq7Fgevat8RwRRoRRAF_19__znc_inyhr_pbzcnerVF5_F6_AF_4yrffVF5_RRYo1RRRAF_9nyybpngbeVF6_RRR25__rzcynpr_havdhr_xrl_netfVF5_WEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXF5_RRRAFV_VWRRRRRRAF2_VAF_15__gerr_vgrengbeVF6_CAF_11__gerr_abqrVF6_CiRRyRRoRREXG_QcBG0_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_4cnveVA7naqebvq7Fgevat8RwRRoRRAF_19__znc_inyhr_pbzcnerVF5_F6_AF_4yrffVF5_RRYo1RRRAF_9nyybpngbeVF6_RRR25__rzcynpr_havdhr_xrl_netfVF5_WEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXF5_RRRAFV_VWRRRRRRAF2_VAF_15__gerr_vgrengbeVF6_CAF_11__gerr_abqrVF6_CiRRyRRoRREXG_QcBG0_:
 nop
 .text
-.globl b__MA7naqebvq11OaVagresnprVAF_24VFpurqhyvatCbyvplFreivprRR10baNfOvaqreRi
+.weak b__MA7naqebvq11OaVagresnprVAF_24VFpurqhyvatCbyvplFreivprRR10baNfOvaqreRi
 .type b__MA7naqebvq11OaVagresnprVAF_24VFpurqhyvatCbyvplFreivprRR10baNfOvaqreRi,%function
 b__MA7naqebvq11OaVagresnprVAF_24VFpurqhyvatCbyvplFreivprRR10baNfOvaqreRi:
 nop
@@ -703,7 +703,7 @@
 b__MGIA7naqebvq25OaFpurqhyvatCbyvplFreivprR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9conpxsnvyRv
+.weak b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9conpxsnvyRv
 .type b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9conpxsnvyRv,%function
 b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9conpxsnvyRv:
 nop
@@ -718,12 +718,12 @@
 b__MA7naqebvq9GvzrPurpxQ1Ri:
 nop
 .text
-.globl b__MA7naqebvq2fcVAF_24VFpurqhyvatCbyvplFreivprRRQ2Ri
+.weak b__MA7naqebvq2fcVAF_24VFpurqhyvatCbyvplFreivprRRQ2Ri
 .type b__MA7naqebvq2fcVAF_24VFpurqhyvatCbyvplFreivprRRQ2Ri,%function
 b__MA7naqebvq2fcVAF_24VFpurqhyvatCbyvplFreivprRRQ2Ri:
 nop
 .text
-.globl b__MA7naqebvq2fcVAF_9GvzrPurpx15GvzrPurpxGuernqRRP2RCF2_
+.weak b__MA7naqebvq2fcVAF_9GvzrPurpx15GvzrPurpxGuernqRRP2RCF2_
 .type b__MA7naqebvq2fcVAF_9GvzrPurpx15GvzrPurpxGuernqRRP2RCF2_,%function
 b__MA7naqebvq2fcVAF_9GvzrPurpx15GvzrPurpxGuernqRRP2RCF2_:
 nop
@@ -738,7 +738,7 @@
 b_nflap_fnsr_sngny_ab_nobeg:
 nop
 .data
-.globl b__MGIAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
+.weak b__MGIAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
 .type b__MGIAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR,%object
 b__MGIAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR:
 .space __SIZEOF_POINTER__
@@ -748,7 +748,7 @@
 b__MA7naqebvq11CebprffVasb11trgCevbevglRvCv:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVyCXpRRR10qb_pbzcnerRCXiF7_
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVyCXpRRR10qb_pbzcnerRCXiF7_
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVyCXpRRR10qb_pbzcnerRCXiF7_,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVyCXpRRR10qb_pbzcnerRCXiF7_:
 nop
@@ -768,7 +768,7 @@
 b__MA7naqebvq9GvzrPurpx15GvzrPurpxGuernqQ1Ri:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVyCXpRRR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVyCXpRRR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVyCXpRRR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVyCXpRRR12qb_pbafgehpgRCiz:
 nop
@@ -788,7 +788,7 @@
 b__MGPA7naqebvq25OaFpurqhyvatCbyvplFreivprR0_AF_11OaVagresnprVAF_24VFpurqhyvatCbyvplFreivprRRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR7frrxbssRkAF_8vbf_onfr7frrxqveRw
+.weak b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR7frrxbssRkAF_8vbf_onfr7frrxqveRw
 .type b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR7frrxbssRkAF_8vbf_onfr7frrxqveRw,%function
 b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR7frrxbssRkAF_8vbf_onfr7frrxqveRw:
 nop
@@ -803,7 +803,7 @@
 b__MGPA7naqebvq25OaFpurqhyvatCbyvplFreivprR8_AF_7OOvaqreR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGPA7naqebvq25OcFpurqhyvatCbyvplFreivprR0_AF_10VVagresnprR
+.weak b__MGPA7naqebvq25OcFpurqhyvatCbyvplFreivprR0_AF_10VVagresnprR
 .type b__MGPA7naqebvq25OcFpurqhyvatCbyvplFreivprR0_AF_10VVagresnprR,%object
 b__MGPA7naqebvq25OcFpurqhyvatCbyvplFreivprR0_AF_10VVagresnprR:
 .space __SIZEOF_POINTER__
@@ -813,7 +813,7 @@
 b__MA7naqebvq15svavfuErpbeqvatREXAF_8Fgevat16Rw:
 nop
 .data
-.globl b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVyCXpRRRR
+.weak b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVyCXpRRRR
 .type b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVyCXpRRRR,%object
 b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVyCXpRRRR:
 .space __SIZEOF_POINTER__
diff --git a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_103.S b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_103.S
index 2b5dbed..fa824d2 100644
--- a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_103.S
+++ b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_103.S
@@ -8,7 +8,7 @@
 b__MA7naqebvq17ErcbegCresbeznapr4qhzcRvvEAFg3__13zncVvAF2_VzAF0_19CresbeznaprNanylfvfRAF1_4yrffVzRRAF1_9nyybpngbeVAF1_4cnveVXzF3_RRRRRRAF4_VvRRAF6_VAF7_VXvFO_RRRRRR:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVvAF_3zncVzA7naqebvq17ErcbegCresbeznapr19CresbeznaprNanylfvfRAF_4yrffVzRRAF_9nyybpngbeVAF_4cnveVXzF5_RRRRRRRRAF_19__znc_inyhr_pbzcnerVvFR_AF6_VvRRYo1RRRAF8_VFR_RRR7qrfgeblRCAF_11__gerr_abqrVFR_CiRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVvAF_3zncVzA7naqebvq17ErcbegCresbeznapr19CresbeznaprNanylfvfRAF_4yrffVzRRAF_9nyybpngbeVAF_4cnveVXzF5_RRRRRRRRAF_19__znc_inyhr_pbzcnerVvFR_AF6_VvRRYo1RRRAF8_VFR_RRR7qrfgeblRCAF_11__gerr_abqrVFR_CiRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVvAF_3zncVzA7naqebvq17ErcbegCresbeznapr19CresbeznaprNanylfvfRAF_4yrffVzRRAF_9nyybpngbeVAF_4cnveVXzF5_RRRRRRRRAF_19__znc_inyhr_pbzcnerVvFR_AF6_VvRRYo1RRRAF8_VFR_RRR7qrfgeblRCAF_11__gerr_abqrVFR_CiRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVvAF_3zncVzA7naqebvq17ErcbegCresbeznapr19CresbeznaprNanylfvfRAF_4yrffVzRRAF_9nyybpngbeVAF_4cnveVXzF5_RRRRRRRRAF_19__znc_inyhr_pbzcnerVvFR_AF6_VvRRYo1RRRAF8_VFR_RRR7qrfgeblRCAF_11__gerr_abqrVFR_CiRR:
 nop
@@ -28,17 +28,17 @@
 b__MAX4Wfba5Inyhr12nfYnetrfgVagRi:
 nop
 .text
-.globl b__MAFg3__15qrdhrVAF_4cnveVyAF_3zncVvvAF_4yrffVvRRAF_9nyybpngbeVAF1_VXvvRRRRRRRRAF5_VFN_RRR19__nqq_onpx_pncnpvglRz
+.weak b__MAFg3__15qrdhrVAF_4cnveVyAF_3zncVvvAF_4yrffVvRRAF_9nyybpngbeVAF1_VXvvRRRRRRRRAF5_VFN_RRR19__nqq_onpx_pncnpvglRz
 .type b__MAFg3__15qrdhrVAF_4cnveVyAF_3zncVvvAF_4yrffVvRRAF_9nyybpngbeVAF1_VXvvRRRRRRRRAF5_VFN_RRR19__nqq_onpx_pncnpvglRz,%function
 b__MAFg3__15qrdhrVAF_4cnveVyAF_3zncVvvAF_4yrffVvRRAF_9nyybpngbeVAF1_VXvvRRRRRRRRAF5_VFN_RRR19__nqq_onpx_pncnpvglRz:
 nop
 .text
-.globl b__MAFg3__15qrdhrVyAF_9nyybpngbeVyRRR6erfvmrRz
+.weak b__MAFg3__15qrdhrVyAF_9nyybpngbeVyRRR6erfvmrRz
 .type b__MAFg3__15qrdhrVyAF_9nyybpngbeVyRRR6erfvmrRz,%function
 b__MAFg3__15qrdhrVyAF_9nyybpngbeVyRRR6erfvmrRz:
 nop
 .text
-.globl b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRR6frgohsRCpy
+.weak b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRR6frgohsRCpy
 .type b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRR6frgohsRCpy,%function
 b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRR6frgohsRCpy:
 nop
@@ -73,7 +73,7 @@
 b__MA7naqebvq5AOYbt11ZretrGuernqP1REAF0_6ZretreREAF0_11ZretrErnqreR:
 nop
 .text
-.globl b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRRQ2Ri
+.weak b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRRQ2Ri
 .type b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRRQ2Ri,%function
 b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRRQ2Ri:
 nop
@@ -98,7 +98,7 @@
 b__MAX7naqebvq17ErcbegCresbeznapr9Uvfgbtenz8gbFgevatRi:
 nop
 .text
-.globl b__MAFg3__114__fcyvg_ohssreVCyAF_9nyybpngbeVF1_RRR10chfu_sebagRBF1_
+.weak b__MAFg3__114__fcyvg_ohssreVCyAF_9nyybpngbeVF1_RRR10chfu_sebagRBF1_
 .type b__MAFg3__114__fcyvg_ohssreVCyAF_9nyybpngbeVF1_RRR10chfu_sebagRBF1_,%function
 b__MAFg3__114__fcyvg_ohssreVCyAF_9nyybpngbeVF1_RRR10chfu_sebagRBF1_:
 nop
@@ -143,7 +143,7 @@
 b__MA4Wfba18FglyrqFgernzJevgre11jevgrVaqragRi:
 nop
 .text
-.globl b__MAFg3__15qrdhrVAF_4cnveVqyRRAF_9nyybpngbeVF2_RRR14__renfr_gb_raqRAF_16__qrdhr_vgrengbeVF2_CXF2_EF7_CXF8_yYy256RRR
+.weak b__MAFg3__15qrdhrVAF_4cnveVqyRRAF_9nyybpngbeVF2_RRR14__renfr_gb_raqRAF_16__qrdhr_vgrengbeVF2_CXF2_EF7_CXF8_yYy256RRR
 .type b__MAFg3__15qrdhrVAF_4cnveVqyRRAF_9nyybpngbeVF2_RRR14__renfr_gb_raqRAF_16__qrdhr_vgrengbeVF2_CXF2_EF7_CXF8_yYy256RRR,%function
 b__MAFg3__15qrdhrVAF_4cnveVqyRRAF_9nyybpngbeVF2_RRR14__renfr_gb_raqRAF_16__qrdhr_vgrengbeVF2_CXF2_EF7_CXF8_yYy256RRR:
 nop
@@ -193,7 +193,7 @@
 b__MA7naqebvq5AOYbt6Ernqre11trgFancfubgRo:
 nop
 .text
-.globl b__MAXFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR3fgeRi
+.weak b__MAXFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR3fgeRi
 .type b__MAXFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR3fgeRi,%function
 b__MAXFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR3fgeRi:
 nop
@@ -208,17 +208,17 @@
 b__MA7naqebvq5AOYbt13NofgenpgRagel10ohvyqRagelRCXu:
 nop
 .data
-.globl b__MM26nhqvb_hgvyf_cybg_uvfgbtenzEXAFg3__13zncVqvAF_4yrffVqRRAF_9nyybpngbeVAF_4cnveVXqvRRRRRRCXpFP_vR11haqrefpberf
+.weak b__MM26nhqvb_hgvyf_cybg_uvfgbtenzEXAFg3__13zncVqvAF_4yrffVqRRAF_9nyybpngbeVAF_4cnveVXqvRRRRRRCXpFP_vR11haqrefpberf
 .type b__MM26nhqvb_hgvyf_cybg_uvfgbtenzEXAFg3__13zncVqvAF_4yrffVqRRAF_9nyybpngbeVAF_4cnveVXqvRRRRRRCXpFP_vR11haqrefpberf,%object
 b__MM26nhqvb_hgvyf_cybg_uvfgbtenzEXAFg3__13zncVqvAF_4yrffVqRRAF_9nyybpngbeVAF_4cnveVXqvRRRRRRCXpFP_vR11haqrefpberf:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVA4Wfba5Inyhr8PMFgevatRF3_RRAF_19__znc_inyhr_pbzcnerVF4_F5_AF_4yrffVF4_RRYo1RRRAF_9nyybpngbeVF5_RRR7qrfgeblRCAF_11__gerr_abqrVF5_CiRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVA4Wfba5Inyhr8PMFgevatRF3_RRAF_19__znc_inyhr_pbzcnerVF4_F5_AF_4yrffVF4_RRYo1RRRAF_9nyybpngbeVF5_RRR7qrfgeblRCAF_11__gerr_abqrVF5_CiRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVA4Wfba5Inyhr8PMFgevatRF3_RRAF_19__znc_inyhr_pbzcnerVF4_F5_AF_4yrffVF4_RRYo1RRRAF_9nyybpngbeVF5_RRR7qrfgeblRCAF_11__gerr_abqrVF5_CiRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVA4Wfba5Inyhr8PMFgevatRF3_RRAF_19__znc_inyhr_pbzcnerVF4_F5_AF_4yrffVF4_RRYo1RRRAF_9nyybpngbeVF5_RRR7qrfgeblRCAF_11__gerr_abqrVF5_CiRR:
 nop
 .text
-.globl b__MAFg3__114__fcyvg_ohssreVCAF_4cnveVyAF_3zncVvvAF_4yrffVvRRAF_9nyybpngbeVAF1_VXvvRRRRRRRRAF5_VFO_RRR10chfu_sebagREXFO_
+.weak b__MAFg3__114__fcyvg_ohssreVCAF_4cnveVyAF_3zncVvvAF_4yrffVvRRAF_9nyybpngbeVAF1_VXvvRRRRRRRRAF5_VFO_RRR10chfu_sebagREXFO_
 .type b__MAFg3__114__fcyvg_ohssreVCAF_4cnveVyAF_3zncVvvAF_4yrffVvRRAF_9nyybpngbeVAF1_VXvvRRRRRRRRAF5_VFO_RRR10chfu_sebagREXFO_,%function
 b__MAFg3__114__fcyvg_ohssreVCAF_4cnveVyAF_3zncVvvAF_4yrffVvRRAF_9nyybpngbeVAF1_VXvvRRRRRRRRAF5_VFO_RRR10chfu_sebagREXFO_:
 nop
@@ -233,7 +233,7 @@
 b__MA4Wfba5InyhrP2REXAF_12FgngvpFgevatR:
 nop
 .text
-.globl b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRR7frrxbssRkAF_8vbf_onfr7frrxqveRw
+.weak b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRR7frrxbssRkAF_8vbf_onfr7frrxqveRw
 .type b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRR7frrxbssRkAF_8vbf_onfr7frrxqveRw,%function
 b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRR7frrxbssRkAF_8vbf_onfr7frrxqveRw:
 nop
@@ -288,17 +288,17 @@
 b__MA4Wfba8xAhyyErsR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MTIM26nhqvb_hgvyf_cybg_uvfgbtenzEXAFg3__13zncVqvAF_4yrffVqRRAF_9nyybpngbeVAF_4cnveVXqvRRRRRRCXpFP_vR6fcnprf
+.weak b__MTIM26nhqvb_hgvyf_cybg_uvfgbtenzEXAFg3__13zncVqvAF_4yrffVqRRAF_9nyybpngbeVAF_4cnveVXqvRRRRRRCXpFP_vR6fcnprf
 .type b__MTIM26nhqvb_hgvyf_cybg_uvfgbtenzEXAFg3__13zncVqvAF_4yrffVqRRAF_9nyybpngbeVAF_4cnveVXqvRRRRRRCXpFP_vR6fcnprf,%object
 b__MTIM26nhqvb_hgvyf_cybg_uvfgbtenzEXAFg3__13zncVqvAF_4yrffVqRRAF_9nyybpngbeVAF_4cnveVXqvRRRRRRCXpFP_vR6fcnprf:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__15qrdhrVAF_4cnveVyAF_3zncVvvAF_4yrffVvRRAF_9nyybpngbeVAF1_VXvvRRRRRRRRAF5_VFN_RRR6erfvmrRz
+.weak b__MAFg3__15qrdhrVAF_4cnveVyAF_3zncVvvAF_4yrffVvRRAF_9nyybpngbeVAF1_VXvvRRRRRRRRAF5_VFN_RRR6erfvmrRz
 .type b__MAFg3__15qrdhrVAF_4cnveVyAF_3zncVvvAF_4yrffVvRRAF_9nyybpngbeVAF1_VXvvRRRRRRRRAF5_VFN_RRR6erfvmrRz,%function
 b__MAFg3__15qrdhrVAF_4cnveVyAF_3zncVvvAF_4yrffVvRRAF_9nyybpngbeVAF1_VXvvRRRRRRRRAF5_VFN_RRR6erfvmrRz:
 nop
 .text
-.globl b__MAFg3__15qrdhrVyAF_9nyybpngbeVyRRR19__nqq_onpx_pncnpvglRz
+.weak b__MAFg3__15qrdhrVyAF_9nyybpngbeVyRRR19__nqq_onpx_pncnpvglRz
 .type b__MAFg3__15qrdhrVyAF_9nyybpngbeVyRRR19__nqq_onpx_pncnpvglRz,%function
 b__MAFg3__15qrdhrVyAF_9nyybpngbeVyRRR19__nqq_onpx_pncnpvglRz:
 nop
@@ -323,7 +323,7 @@
 b__MAX7naqebvq5AOYbt14UvfgbtenzRagel14pbclJvguNhgubeREAFg3__110havdhr_cgeV23nhqvb_hgvyf_svsb_jevgreAF2_14qrsnhyg_qryrgrVF4_RRRRv:
 nop
 .text
-.globl b__MAFg3__112__qrdhr_onfrVAF_4cnveVyAF_3zncVvvAF_4yrffVvRRAF_9nyybpngbeVAF1_VXvvRRRRRRRRAF5_VFN_RRR5pyrneRi
+.weak b__MAFg3__112__qrdhr_onfrVAF_4cnveVyAF_3zncVvvAF_4yrffVvRRAF_9nyybpngbeVAF1_VXvvRRRRRRRRAF5_VFN_RRR5pyrneRi
 .type b__MAFg3__112__qrdhr_onfrVAF_4cnveVyAF_3zncVvvAF_4yrffVvRRAF_9nyybpngbeVAF1_VXvvRRRRRRRRAF5_VFN_RRR5pyrneRi,%function
 b__MAFg3__112__qrdhr_onfrVAF_4cnveVyAF_3zncVvvAF_4yrffVvRRAF_9nyybpngbeVAF1_VXvvRRRRRRRRAF5_VFN_RRR5pyrneRi:
 nop
@@ -333,7 +333,7 @@
 b__MA7naqebvq17ErcbegCresbeznapr19CresbeznaprNanylfvf18qrgrpgNaqFgberCrnxRqy:
 nop
 .text
-.globl b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRR5vzohrREXAF_6ybpnyrR
+.weak b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRR5vzohrREXAF_6ybpnyrR
 .type b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRR5vzohrREXAF_6ybpnyrR,%function
 b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRR5vzohrREXAF_6ybpnyrR:
 nop
@@ -403,7 +403,7 @@
 b__MAX4Wfba5Inyhr6nfObbyRi:
 nop
 .text
-.globl b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9conpxsnvyRv
+.weak b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9conpxsnvyRv
 .type b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9conpxsnvyRv,%function
 b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9conpxsnvyRv:
 nop
@@ -438,12 +438,12 @@
 b__MAX7naqebvq17ErcbegCresbeznapr9Uvfgbtenz10gbgnyPbhagRi:
 nop
 .text
-.globl b__MAFg3__114__fcyvg_ohssreVCyEAF_9nyybpngbeVF1_RRR9chfu_onpxRBF1_
+.weak b__MAFg3__114__fcyvg_ohssreVCyEAF_9nyybpngbeVF1_RRR9chfu_onpxRBF1_
 .type b__MAFg3__114__fcyvg_ohssreVCyEAF_9nyybpngbeVF1_RRR9chfu_onpxRBF1_,%function
 b__MAFg3__114__fcyvg_ohssreVCyEAF_9nyybpngbeVF1_RRR9chfu_onpxRBF1_:
 nop
 .text
-.globl b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRRQ0Ri
+.weak b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRRQ0Ri
 .type b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRRQ0Ri,%function
 b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRRQ0Ri:
 nop
@@ -458,7 +458,7 @@
 b__MAX7naqebvq5AOYbt13RagelVgrengbearREXF1_:
 nop
 .data
-.globl b__MM26nhqvb_hgvyf_cybg_uvfgbtenzEXAFg3__13zncVqvAF_4yrffVqRRAF_9nyybpngbeVAF_4cnveVXqvRRRRRRCXpFP_vR6fcnprf
+.weak b__MM26nhqvb_hgvyf_cybg_uvfgbtenzEXAFg3__13zncVqvAF_4yrffVqRRAF_9nyybpngbeVAF_4cnveVXqvRRRRRRCXpFP_vR6fcnprf
 .type b__MM26nhqvb_hgvyf_cybg_uvfgbtenzEXAFg3__13zncVqvAF_4yrffVqRRAF_9nyybpngbeVAF_4cnveVXqvRRRRRRCXpFP_vR6fcnprf,%object
 b__MM26nhqvb_hgvyf_cybg_uvfgbtenzEXAFg3__13zncVqvAF_4yrffVqRRAF_9nyybpngbeVAF_4cnveVXqvRRRRRRCXpFP_vR6fcnprf:
 .space __SIZEOF_POINTER__
@@ -473,7 +473,7 @@
 b__MAX4Wfba5Inyhr8PMFgevatrdREXF1_:
 nop
 .data
-.globl b__MGIAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
+.weak b__MGIAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
 .type b__MGIAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR,%object
 b__MGIAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR:
 .space __SIZEOF_POINTER__
@@ -483,7 +483,7 @@
 b__MA7naqebvq5AOYbt11ZretrGuernq12frgGvzrbhgHfRv:
 nop
 .text
-.globl b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR8biresybjRv
+.weak b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR8biresybjRv
 .type b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR8biresybjRv,%function
 b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR8biresybjRv:
 nop
@@ -573,7 +573,7 @@
 b__MA4Wfba13inyhrGbFgevatRo:
 nop
 .data
-.globl b__MGPAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_13onfvp_bfgernzVpF2_RR
+.weak b__MGPAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_13onfvp_bfgernzVpF2_RR
 .type b__MGPAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_13onfvp_bfgernzVpF2_RR,%object
 b__MGPAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_13onfvp_bfgernzVpF2_RR:
 .space __SIZEOF_POINTER__
@@ -653,7 +653,7 @@
 b__MA4Wfba5Inyhr8PMFgevatQ2Ri:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_5AOYbt6ErnqreRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVEXF5_RRiBG_
+.weak b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_5AOYbt6ErnqreRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVEXF5_RRiBG_
 .type b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_5AOYbt6ErnqreRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVEXF5_RRiBG_,%function
 b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_5AOYbt6ErnqreRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVEXF5_RRiBG_:
 nop
@@ -673,17 +673,17 @@
 b__MA7naqebvq5AOYbt11ZretrErnqre12unaqyrNhgubeREXAF0_13NofgenpgRagelRCAF_7Fgevat8R:
 nop
 .text
-.globl b__MAFg3__114__fcyvg_ohssreVCAF_4cnveVyAF_3zncVvvAF_4yrffVvRRAF_9nyybpngbeVAF1_VXvvRRRRRRRRAF5_VFO_RRR10chfu_sebagRBFO_
+.weak b__MAFg3__114__fcyvg_ohssreVCAF_4cnveVyAF_3zncVvvAF_4yrffVvRRAF_9nyybpngbeVAF1_VXvvRRRRRRRRAF5_VFO_RRR10chfu_sebagRBFO_
 .type b__MAFg3__114__fcyvg_ohssreVCAF_4cnveVyAF_3zncVvvAF_4yrffVvRRAF_9nyybpngbeVAF1_VXvvRRRRRRRRAF5_VFO_RRR10chfu_sebagRBFO_,%function
 b__MAFg3__114__fcyvg_ohssreVCAF_4cnveVyAF_3zncVvvAF_4yrffVvRRAF_9nyybpngbeVAF1_VXvvRRRRRRRRAF5_VFO_RRR10chfu_sebagRBFO_:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVqvRRAF_19__znc_inyhr_pbzcnerVqF2_AF_4yrffVqRRYo1RRRAF_9nyybpngbeVF2_RRR7qrfgeblRCAF_11__gerr_abqrVF2_CiRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVqvRRAF_19__znc_inyhr_pbzcnerVqF2_AF_4yrffVqRRYo1RRRAF_9nyybpngbeVF2_RRR7qrfgeblRCAF_11__gerr_abqrVF2_CiRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVqvRRAF_19__znc_inyhr_pbzcnerVqF2_AF_4yrffVqRRYo1RRRAF_9nyybpngbeVF2_RRR7qrfgeblRCAF_11__gerr_abqrVF2_CiRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVqvRRAF_19__znc_inyhr_pbzcnerVqF2_AF_4yrffVqRRYo1RRRAF_9nyybpngbeVF2_RRR7qrfgeblRCAF_11__gerr_abqrVF2_CiRR:
 nop
 .text
-.globl b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRRP2Ri
+.weak b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRRP2Ri
 .type b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRRP2Ri,%function
 b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRRP2Ri:
 nop
@@ -698,7 +698,7 @@
 b__MA7naqebvq5AOYbt6Jevgre10ybtISbezngRCXpzFg9__in_yvfg:
 nop
 .text
-.globl b__MAFg3__15qrdhrVAF_4cnveVyAF_3zncVvvAF_4yrffVvRRAF_9nyybpngbeVAF1_VXvvRRRRRRRRAF5_VFN_RRR14__renfr_gb_raqRAF_16__qrdhr_vgrengbeVFN_CXFN_EFR_CXFS_yYy128RRR
+.weak b__MAFg3__15qrdhrVAF_4cnveVyAF_3zncVvvAF_4yrffVvRRAF_9nyybpngbeVAF1_VXvvRRRRRRRRAF5_VFN_RRR14__renfr_gb_raqRAF_16__qrdhr_vgrengbeVFN_CXFN_EFR_CXFS_yYy128RRR
 .type b__MAFg3__15qrdhrVAF_4cnveVyAF_3zncVvvAF_4yrffVvRRAF_9nyybpngbeVAF1_VXvvRRRRRRRRAF5_VFN_RRR14__renfr_gb_raqRAF_16__qrdhr_vgrengbeVFN_CXFN_EFR_CXFS_yYy128RRR,%function
 b__MAFg3__15qrdhrVAF_4cnveVyAF_3zncVvvAF_4yrffVvRRAF_9nyybpngbeVAF1_VXvvRRRRRRRRAF5_VFN_RRR14__renfr_gb_raqRAF_16__qrdhr_vgrengbeVFN_CXFN_EFR_CXFS_yYy128RRR:
 nop
@@ -768,7 +768,7 @@
 b__MA4Wfba5InyhrP1Ro:
 nop
 .data
-.globl b__MGGAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
+.weak b__MGGAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
 .type b__MGGAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR,%object
 b__MGGAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR:
 .space __SIZEOF_POINTER__
@@ -793,7 +793,7 @@
 b__MA4Wfba5Inyhr6znkVagR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
+.weak b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
 .type b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_,%function
 b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_:
 nop
@@ -833,12 +833,12 @@
 b__MA4WfbayfREAFg3__113onfvp_bfgernzVpAF0_11pune_genvgfVpRRRREXAF_5InyhrR:
 nop
 .text
-.globl b__MAFg3__114__fcyvg_ohssreVCAF_4cnveVyAF_3zncVvvAF_4yrffVvRRAF_9nyybpngbeVAF1_VXvvRRRRRRRRAF5_VFO_RRR9chfu_onpxRBFO_
+.weak b__MAFg3__114__fcyvg_ohssreVCAF_4cnveVyAF_3zncVvvAF_4yrffVvRRAF_9nyybpngbeVAF1_VXvvRRRRRRRRAF5_VFO_RRR9chfu_onpxRBFO_
 .type b__MAFg3__114__fcyvg_ohssreVCAF_4cnveVyAF_3zncVvvAF_4yrffVvRRAF_9nyybpngbeVAF1_VXvvRRRRRRRRAF5_VFO_RRR9chfu_onpxRBFO_,%function
 b__MAFg3__114__fcyvg_ohssreVCAF_4cnveVyAF_3zncVvvAF_4yrffVvRRAF_9nyybpngbeVAF1_VXvvRRRRRRRRAF5_VFO_RRR9chfu_onpxRBFO_:
 nop
 .text
-.globl b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRR9haqresybjRi
+.weak b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRR9haqresybjRi
 .type b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRR9haqresybjRi,%function
 b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRR9haqresybjRi:
 nop
@@ -863,7 +863,7 @@
 b__MAX4Wfba5Inyhr8PMFgevat5p_fgeRi:
 nop
 .text
-.globl b__MAFg3__15qrdhrVAF_4cnveVA7naqebvq5AOYbt5RiragRyRRAF_9nyybpngbeVF5_RRR20__nqq_sebag_pncnpvglRi
+.weak b__MAFg3__15qrdhrVAF_4cnveVA7naqebvq5AOYbt5RiragRyRRAF_9nyybpngbeVF5_RRR20__nqq_sebag_pncnpvglRi
 .type b__MAFg3__15qrdhrVAF_4cnveVA7naqebvq5AOYbt5RiragRyRRAF_9nyybpngbeVF5_RRR20__nqq_sebag_pncnpvglRi,%function
 b__MAFg3__15qrdhrVAF_4cnveVA7naqebvq5AOYbt5RiragRyRRAF_9nyybpngbeVF5_RRR20__nqq_sebag_pncnpvglRi:
 nop
@@ -878,7 +878,7 @@
 b__MAX4Wfba5InyhrrdREXF0_:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVA4Wfba5Inyhr8PMFgevatRF3_RRAF_19__znc_inyhr_pbzcnerVF4_F5_AF_4yrffVF4_RRYo1RRRAF_9nyybpngbeVF5_RRR30__rzcynpr_uvag_havdhr_xrl_netfVF4_WEXAF_4cnveVXF4_F3_RRRRRAF_15__gerr_vgrengbeVF5_CAF_11__gerr_abqrVF5_CiRRyRRAF_21__gerr_pbafg_vgrengbeVF5_FA_yRREXG_QcBG0_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVA4Wfba5Inyhr8PMFgevatRF3_RRAF_19__znc_inyhr_pbzcnerVF4_F5_AF_4yrffVF4_RRYo1RRRAF_9nyybpngbeVF5_RRR30__rzcynpr_uvag_havdhr_xrl_netfVF4_WEXAF_4cnveVXF4_F3_RRRRRAF_15__gerr_vgrengbeVF5_CAF_11__gerr_abqrVF5_CiRRyRRAF_21__gerr_pbafg_vgrengbeVF5_FA_yRREXG_QcBG0_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVA4Wfba5Inyhr8PMFgevatRF3_RRAF_19__znc_inyhr_pbzcnerVF4_F5_AF_4yrffVF4_RRYo1RRRAF_9nyybpngbeVF5_RRR30__rzcynpr_uvag_havdhr_xrl_netfVF4_WEXAF_4cnveVXF4_F3_RRRRRAF_15__gerr_vgrengbeVF5_CAF_11__gerr_abqrVF5_CiRRyRRAF_21__gerr_pbafg_vgrengbeVF5_FA_yRREXG_QcBG0_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVA4Wfba5Inyhr8PMFgevatRF3_RRAF_19__znc_inyhr_pbzcnerVF4_F5_AF_4yrffVF4_RRYo1RRRAF_9nyybpngbeVF5_RRR30__rzcynpr_uvag_havdhr_xrl_netfVF4_WEXAF_4cnveVXF4_F3_RRRRRAF_15__gerr_vgrengbeVF5_CAF_11__gerr_abqrVF5_CiRRyRRAF_21__gerr_pbafg_vgrengbeVF5_FA_yRREXG_QcBG0_:
 nop
@@ -888,12 +888,12 @@
 b__MAX7naqebvq5AOYbt11SbezngRagel4unfuRi:
 nop
 .text
-.globl b__MAFg3__114__fcyvg_ohssreVCAF_4cnveVqyRRAF_9nyybpngbeVF3_RRR10chfu_sebagRBF3_
+.weak b__MAFg3__114__fcyvg_ohssreVCAF_4cnveVqyRRAF_9nyybpngbeVF3_RRR10chfu_sebagRBF3_
 .type b__MAFg3__114__fcyvg_ohssreVCAF_4cnveVqyRRAF_9nyybpngbeVF3_RRR10chfu_sebagRBF3_,%function
 b__MAFg3__114__fcyvg_ohssreVCAF_4cnveVqyRRAF_9nyybpngbeVF3_RRR10chfu_sebagRBF3_:
 nop
 .text
-.globl b__MAFg3__114__fcyvg_ohssreVCAF_4cnveVqyRRAF_9nyybpngbeVF3_RRR9chfu_onpxRBF3_
+.weak b__MAFg3__114__fcyvg_ohssreVCAF_4cnveVqyRRAF_9nyybpngbeVF3_RRR9chfu_onpxRBF3_
 .type b__MAFg3__114__fcyvg_ohssreVCAF_4cnveVqyRRAF_9nyybpngbeVF3_RRR9chfu_onpxRBF3_,%function
 b__MAFg3__114__fcyvg_ohssreVCAF_4cnveVqyRRAF_9nyybpngbeVF3_RRR9chfu_onpxRBF3_:
 nop
@@ -913,7 +913,7 @@
 b__MAX4Wfba5Inyhr8vfQbhoyrRi:
 nop
 .text
-.globl b__MAFg3__125__yrkvpbtencuvpny_pbzcnerVEAF_6__yrffVAF_4cnveVXA4Wfba5Inyhr8PMFgevatRF4_RRF7_RRAF_20__znc_pbafg_vgrengbeVAF_21__gerr_pbafg_vgrengbeVAF_12__inyhr_glcrVF5_F4_RRCAF_11__gerr_abqrVFQ_CiRRyRRRRFW_RRoG0_FX_G1_FY_G_
+.weak b__MAFg3__125__yrkvpbtencuvpny_pbzcnerVEAF_6__yrffVAF_4cnveVXA4Wfba5Inyhr8PMFgevatRF4_RRF7_RRAF_20__znc_pbafg_vgrengbeVAF_21__gerr_pbafg_vgrengbeVAF_12__inyhr_glcrVF5_F4_RRCAF_11__gerr_abqrVFQ_CiRRyRRRRFW_RRoG0_FX_G1_FY_G_
 .type b__MAFg3__125__yrkvpbtencuvpny_pbzcnerVEAF_6__yrffVAF_4cnveVXA4Wfba5Inyhr8PMFgevatRF4_RRF7_RRAF_20__znc_pbafg_vgrengbeVAF_21__gerr_pbafg_vgrengbeVAF_12__inyhr_glcrVF5_F4_RRCAF_11__gerr_abqrVFQ_CiRRyRRRRFW_RRoG0_FX_G1_FY_G_,%function
 b__MAFg3__125__yrkvpbtencuvpny_pbzcnerVEAF_6__yrffVAF_4cnveVXA4Wfba5Inyhr8PMFgevatRF4_RRF7_RRAF_20__znc_pbafg_vgrengbeVAF_21__gerr_pbafg_vgrengbeVAF_12__inyhr_glcrVF5_F4_RRCAF_11__gerr_abqrVFQ_CiRRyRRRRFW_RRoG0_FX_G1_FY_G_:
 nop
@@ -938,7 +938,7 @@
 b__MA4Wfba18FglyrqFgernzJevgre14vfZhygvarNeenlREXAF_5InyhrR:
 nop
 .data
-.globl b__MGIAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRRR
+.weak b__MGIAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRRR
 .type b__MGIAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRRR,%object
 b__MGIAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRRR:
 .space __SIZEOF_POINTER__
@@ -958,12 +958,12 @@
 b__MA7naqebvq5AOYbt6ZretreP1RCXiz:
 nop
 .text
-.globl b__MAFg3__114__fcyvg_ohssreVCAF_4cnveVyAF_3zncVvvAF_4yrffVvRRAF_9nyybpngbeVAF1_VXvvRRRRRRRREAF5_VFO_RRR10chfu_sebagREXFO_
+.weak b__MAFg3__114__fcyvg_ohssreVCAF_4cnveVyAF_3zncVvvAF_4yrffVvRRAF_9nyybpngbeVAF1_VXvvRRRRRRRREAF5_VFO_RRR10chfu_sebagREXFO_
 .type b__MAFg3__114__fcyvg_ohssreVCAF_4cnveVyAF_3zncVvvAF_4yrffVvRRAF_9nyybpngbeVAF1_VXvvRRRRRRRREAF5_VFO_RRR10chfu_sebagREXFO_,%function
 b__MAFg3__114__fcyvg_ohssreVCAF_4cnveVyAF_3zncVvvAF_4yrffVvRRAF_9nyybpngbeVAF1_VXvvRRRRRRRREAF5_VFO_RRR10chfu_sebagREXFO_:
 nop
 .text
-.globl b__MAFg3__15qrdhrVAF_4cnveVqyRRAF_9nyybpngbeVF2_RRR6erfvmrRz
+.weak b__MAFg3__15qrdhrVAF_4cnveVqyRRAF_9nyybpngbeVF2_RRR6erfvmrRz
 .type b__MAFg3__15qrdhrVAF_4cnveVqyRRAF_9nyybpngbeVF2_RRR6erfvmrRz,%function
 b__MAFg3__15qrdhrVAF_4cnveVqyRRAF_9nyybpngbeVF2_RRR6erfvmrRz:
 nop
@@ -1008,7 +1008,7 @@
 b__MAX7naqebvq5AOYbt13RagelVgrengbe4arkgRi:
 nop
 .data
-.globl b__MGIAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
+.weak b__MGIAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
 .type b__MGIAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR,%object
 b__MGIAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR:
 .space __SIZEOF_POINTER__
@@ -1113,7 +1113,7 @@
 b__MAX7naqebvq5AOYbt11SbezngRagel4netfRi:
 nop
 .text
-.globl b__MAFg3__114__fcyvg_ohssreVCAF_4cnveVA7naqebvq5AOYbt5RiragRyRRAF_9nyybpngbeVF6_RRR10chfu_sebagRBF6_
+.weak b__MAFg3__114__fcyvg_ohssreVCAF_4cnveVA7naqebvq5AOYbt5RiragRyRRAF_9nyybpngbeVF6_RRR10chfu_sebagRBF6_
 .type b__MAFg3__114__fcyvg_ohssreVCAF_4cnveVA7naqebvq5AOYbt5RiragRyRRAF_9nyybpngbeVF6_RRR10chfu_sebagRBF6_,%function
 b__MAFg3__114__fcyvg_ohssreVCAF_4cnveVA7naqebvq5AOYbt5RiragRyRRAF_9nyybpngbeVF6_RRR10chfu_sebagRBF6_:
 nop
@@ -1128,12 +1128,12 @@
 b__MA7naqebvq17ErcbegCresbeznapr18fraqGbZrqvnZrgevpfREXAF0_15CresbeznaprQngnR:
 nop
 .text
-.globl b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR7frrxbssRkAF_8vbf_onfr7frrxqveRw
+.weak b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR7frrxbssRkAF_8vbf_onfr7frrxqveRw
 .type b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR7frrxbssRkAF_8vbf_onfr7frrxqveRw,%function
 b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR7frrxbssRkAF_8vbf_onfr7frrxqveRw:
 nop
 .text
-.globl b__MAFg3__15qrdhrVyAF_9nyybpngbeVyRRR14__renfr_gb_raqRAF_16__qrdhr_vgrengbeVyCXyEF5_CXF6_yYy512RRR
+.weak b__MAFg3__15qrdhrVyAF_9nyybpngbeVyRRR14__renfr_gb_raqRAF_16__qrdhr_vgrengbeVyCXyEF5_CXF6_yYy512RRR
 .type b__MAFg3__15qrdhrVyAF_9nyybpngbeVyRRR14__renfr_gb_raqRAF_16__qrdhr_vgrengbeVyCXyEF5_CXF6_yYy512RRR,%function
 b__MAFg3__15qrdhrVyAF_9nyybpngbeVyRRR14__renfr_gb_raqRAF_16__qrdhr_vgrengbeVyCXyEF5_CXF6_yYy512RRR:
 nop
@@ -1148,17 +1148,17 @@
 b__MA4Wfba12FglyrqJevgre15jevgrJvguVaqragREXAFg3__112onfvp_fgevatVpAF1_11pune_genvgfVpRRAF1_9nyybpngbeVpRRRR:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF6_RRR21__chfu_onpx_fybj_cnguVEXF6_RRiBG_
+.weak b__MAFg3__16irpgbeVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF6_RRR21__chfu_onpx_fybj_cnguVEXF6_RRiBG_
 .type b__MAFg3__16irpgbeVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF6_RRR21__chfu_onpx_fybj_cnguVEXF6_RRiBG_,%function
 b__MAFg3__16irpgbeVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF6_RRR21__chfu_onpx_fybj_cnguVEXF6_RRiBG_:
 nop
 .data
-.globl b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_14onfvp_vbfgernzVpF2_RR
+.weak b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_14onfvp_vbfgernzVpF2_RR
 .type b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_14onfvp_vbfgernzVpF2_RR,%object
 b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_14onfvp_vbfgernzVpF2_RR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__114onfvp_bsfgernzVpAF_11pune_genvgfVpRRR4bcraREXAF_12onfvp_fgevatVpF2_AF_9nyybpngbeVpRRRRw
+.weak b__MAFg3__114onfvp_bsfgernzVpAF_11pune_genvgfVpRRR4bcraREXAF_12onfvp_fgevatVpF2_AF_9nyybpngbeVpRRRRw
 .type b__MAFg3__114onfvp_bsfgernzVpAF_11pune_genvgfVpRRR4bcraREXAF_12onfvp_fgevatVpF2_AF_9nyybpngbeVpRRRRw,%function
 b__MAFg3__114onfvp_bsfgernzVpAF_11pune_genvgfVpRRR4bcraREXAF_12onfvp_fgevatVpF2_AF_9nyybpngbeVpRRRRw:
 nop
@@ -1203,7 +1203,7 @@
 b__MA7naqebvq17ErcbegCresbeznapr9qhzcCybgfRvEXAFg3__13zncVvAF0_15CresbeznaprQngnRAF1_4yrffVvRRAF1_9nyybpngbeVAF1_4cnveVXvF3_RRRRRR:
 nop
 .text
-.globl b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
+.weak b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
 .type b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_,%function
 b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_:
 nop
@@ -1248,7 +1248,7 @@
 b__MA7naqebvq17ErcbegCresbeznapr19CresbeznaprNanylfvf17unaqyrFgngrPunatrRi:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVvA7naqebvq17ErcbegCresbeznapr15CresbeznaprQngnRRRAF_19__znc_inyhr_pbzcnerVvF5_AF_4yrffVvRRYo1RRRAF_9nyybpngbeVF5_RRR25__rzcynpr_havdhr_xrl_netfVvWEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXvRRRAFU_VWRRRRRRAF_4cnveVAF_15__gerr_vgrengbeVF5_CAF_11__gerr_abqrVF5_CiRRyRRoRREXG_QcBG0_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVvA7naqebvq17ErcbegCresbeznapr15CresbeznaprQngnRRRAF_19__znc_inyhr_pbzcnerVvF5_AF_4yrffVvRRYo1RRRAF_9nyybpngbeVF5_RRR25__rzcynpr_havdhr_xrl_netfVvWEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXvRRRAFU_VWRRRRRRAF_4cnveVAF_15__gerr_vgrengbeVF5_CAF_11__gerr_abqrVF5_CiRRyRRoRREXG_QcBG0_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVvA7naqebvq17ErcbegCresbeznapr15CresbeznaprQngnRRRAF_19__znc_inyhr_pbzcnerVvF5_AF_4yrffVvRRYo1RRRAF_9nyybpngbeVF5_RRR25__rzcynpr_havdhr_xrl_netfVvWEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXvRRRAFU_VWRRRRRRAF_4cnveVAF_15__gerr_vgrengbeVF5_CAF_11__gerr_abqrVF5_CiRRyRRoRREXG_QcBG0_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVvA7naqebvq17ErcbegCresbeznapr15CresbeznaprQngnRRRAF_19__znc_inyhr_pbzcnerVvF5_AF_4yrffVvRRYo1RRRAF_9nyybpngbeVF5_RRR25__rzcynpr_havdhr_xrl_netfVvWEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXvRRRAFU_VWRRRRRRAF_4cnveVAF_15__gerr_vgrengbeVF5_CAF_11__gerr_abqrVF5_CiRRyRRoRREXG_QcBG0_:
 nop
@@ -1308,7 +1308,7 @@
 b__MAX4Wfba5Inyhr4fvmrRi:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA4Wfba12CnguNethzragRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVF2_RRiBG_
+.weak b__MAFg3__16irpgbeVA4Wfba12CnguNethzragRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVF2_RRiBG_
 .type b__MAFg3__16irpgbeVA4Wfba12CnguNethzragRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVF2_RRiBG_,%function
 b__MAFg3__16irpgbeVA4Wfba12CnguNethzragRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVF2_RRiBG_:
 nop
@@ -1323,7 +1323,7 @@
 b__MA4Wfba5InyhrP1RAF_9InyhrGlcrR:
 nop
 .data
-.globl b__MGPAFg3__114onfvp_bsfgernzVpAF_11pune_genvgfVpRRRR0_AF_13onfvp_bfgernzVpF2_RR
+.weak b__MGPAFg3__114onfvp_bsfgernzVpAF_11pune_genvgfVpRRRR0_AF_13onfvp_bfgernzVpF2_RR
 .type b__MGPAFg3__114onfvp_bsfgernzVpAF_11pune_genvgfVpRRRR0_AF_13onfvp_bfgernzVpF2_RR,%object
 b__MGPAFg3__114onfvp_bsfgernzVpAF_11pune_genvgfVpRRRR0_AF_13onfvp_bfgernzVpF2_RR:
 .space __SIZEOF_POINTER__
@@ -1348,12 +1348,12 @@
 b__MAX4Wfba17InyhrVgrengbeOnfr3xrlRi:
 nop
 .text
-.globl b__MAFg3__114__fcyvg_ohssreVCyAF_9nyybpngbeVF1_RRR9chfu_onpxRBF1_
+.weak b__MAFg3__114__fcyvg_ohssreVCyAF_9nyybpngbeVF1_RRR9chfu_onpxRBF1_
 .type b__MAFg3__114__fcyvg_ohssreVCyAF_9nyybpngbeVF1_RRR9chfu_onpxRBF1_,%function
 b__MAFg3__114__fcyvg_ohssreVCyAF_9nyybpngbeVF1_RRR9chfu_onpxRBF1_:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVA7naqebvq5AOYbt5RiragRAF_4unfuVF3_RRAF_8rdhny_gbVF3_RRAF_9nyybpngbeVF3_RRR25__rzcynpr_havdhr_xrl_netfVF3_WEXF3_RRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF3_CiRRRRoRREXG_QcBG0_
+.weak b__MAFg3__112__unfu_gnoyrVA7naqebvq5AOYbt5RiragRAF_4unfuVF3_RRAF_8rdhny_gbVF3_RRAF_9nyybpngbeVF3_RRR25__rzcynpr_havdhr_xrl_netfVF3_WEXF3_RRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF3_CiRRRRoRREXG_QcBG0_
 .type b__MAFg3__112__unfu_gnoyrVA7naqebvq5AOYbt5RiragRAF_4unfuVF3_RRAF_8rdhny_gbVF3_RRAF_9nyybpngbeVF3_RRR25__rzcynpr_havdhr_xrl_netfVF3_WEXF3_RRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF3_CiRRRRoRREXG_QcBG0_,%function
 b__MAFg3__112__unfu_gnoyrVA7naqebvq5AOYbt5RiragRAF_4unfuVF3_RRAF_8rdhny_gbVF3_RRAF_9nyybpngbeVF3_RRR25__rzcynpr_havdhr_xrl_netfVF3_WEXF3_RRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF3_CiRRRRoRREXG_QcBG0_:
 nop
@@ -1363,7 +1363,7 @@
 b__MAX4Wfba4Cngu4znxrREAF_5InyhrR:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVA4Wfba5Inyhr8PMFgevatRF3_RRAF_19__znc_inyhr_pbzcnerVF4_F5_AF_4yrffVF4_RRYo1RRRAF_9nyybpngbeVF5_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVF5_CAF_11__gerr_abqrVF5_CiRRyRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVA4Wfba5Inyhr8PMFgevatRF3_RRAF_19__znc_inyhr_pbzcnerVF4_F5_AF_4yrffVF4_RRYo1RRRAF_9nyybpngbeVF5_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVF5_CAF_11__gerr_abqrVF5_CiRRyRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVA4Wfba5Inyhr8PMFgevatRF3_RRAF_19__znc_inyhr_pbzcnerVF4_F5_AF_4yrffVF4_RRYo1RRRAF_9nyybpngbeVF5_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVF5_CAF_11__gerr_abqrVF5_CiRRyRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVA4Wfba5Inyhr8PMFgevatRF3_RRAF_19__znc_inyhr_pbzcnerVF4_F5_AF_4yrffVF4_RRYo1RRRAF_9nyybpngbeVF5_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVF5_CAF_11__gerr_abqrVF5_CiRRyRR:
 nop
@@ -1403,12 +1403,12 @@
 b__MAX4Wfba5Inyhr5rzcglRi:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA4Wfba12CnguNethzragRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVEXF2_RRiBG_
+.weak b__MAFg3__16irpgbeVA4Wfba12CnguNethzragRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVEXF2_RRiBG_
 .type b__MAFg3__16irpgbeVA4Wfba12CnguNethzragRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVEXF2_RRiBG_,%function
 b__MAFg3__16irpgbeVA4Wfba12CnguNethzragRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVEXF2_RRiBG_:
 nop
 .text
-.globl b__MAFg3__16irpgbeVCXA4Wfba12CnguNethzragRAF_9nyybpngbeVF4_RRR21__chfu_onpx_fybj_cnguVF4_RRiBG_
+.weak b__MAFg3__16irpgbeVCXA4Wfba12CnguNethzragRAF_9nyybpngbeVF4_RRR21__chfu_onpx_fybj_cnguVF4_RRiBG_
 .type b__MAFg3__16irpgbeVCXA4Wfba12CnguNethzragRAF_9nyybpngbeVF4_RRR21__chfu_onpx_fybj_cnguVF4_RRiBG_,%function
 b__MAFg3__16irpgbeVCXA4Wfba12CnguNethzragRAF_9nyybpngbeVF4_RRR21__chfu_onpx_fybj_cnguVF4_RRiBG_:
 nop
@@ -1423,17 +1423,17 @@
 b__MA7naqebvq5AOYbt6JevgreP1REXAF_2fcVAF_7VZrzbelRRRz:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVzA7naqebvq17ErcbegCresbeznapr19CresbeznaprNanylfvfRRRAF_19__znc_inyhr_pbzcnerVzF5_AF_4yrffVzRRYo1RRRAF_9nyybpngbeVF5_RRR7qrfgeblRCAF_11__gerr_abqrVF5_CiRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVzA7naqebvq17ErcbegCresbeznapr19CresbeznaprNanylfvfRRRAF_19__znc_inyhr_pbzcnerVzF5_AF_4yrffVzRRYo1RRRAF_9nyybpngbeVF5_RRR7qrfgeblRCAF_11__gerr_abqrVF5_CiRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVzA7naqebvq17ErcbegCresbeznapr19CresbeznaprNanylfvfRRRAF_19__znc_inyhr_pbzcnerVzF5_AF_4yrffVzRRYo1RRRAF_9nyybpngbeVF5_RRR7qrfgeblRCAF_11__gerr_abqrVF5_CiRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVzA7naqebvq17ErcbegCresbeznapr19CresbeznaprNanylfvfRRRAF_19__znc_inyhr_pbzcnerVzF5_AF_4yrffVzRRYo1RRRAF_9nyybpngbeVF5_RRR7qrfgeblRCAF_11__gerr_abqrVF5_CiRR:
 nop
 .text
-.globl b__MAFg3__114__fcyvg_ohssreVCAF_4cnveVqyRRAF_9nyybpngbeVF3_RRR10chfu_sebagREXF3_
+.weak b__MAFg3__114__fcyvg_ohssreVCAF_4cnveVqyRRAF_9nyybpngbeVF3_RRR10chfu_sebagREXF3_
 .type b__MAFg3__114__fcyvg_ohssreVCAF_4cnveVqyRRAF_9nyybpngbeVF3_RRR10chfu_sebagREXF3_,%function
 b__MAFg3__114__fcyvg_ohssreVCAF_4cnveVqyRRAF_9nyybpngbeVF3_RRR10chfu_sebagREXF3_:
 nop
 .data
-.globl b__MGGAFg3__114onfvp_bsfgernzVpAF_11pune_genvgfVpRRRR
+.weak b__MGGAFg3__114onfvp_bsfgernzVpAF_11pune_genvgfVpRRRR
 .type b__MGGAFg3__114onfvp_bsfgernzVpAF_11pune_genvgfVpRRRR,%object
 b__MGGAFg3__114onfvp_bsfgernzVpAF_11pune_genvgfVpRRRR:
 .space __SIZEOF_POINTER__
@@ -1453,7 +1453,7 @@
 b__MA7naqebvq17ErcbegCresbeznapr9qhzcErgebRvEXAFg3__13zncVvAF0_15CresbeznaprQngnRAF1_4yrffVvRRAF1_9nyybpngbeVAF1_4cnveVXvF3_RRRRRR:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVzA7naqebvq17ErcbegCresbeznapr19CresbeznaprNanylfvfRRRAF_19__znc_inyhr_pbzcnerVzF5_AF_4yrffVzRRYo1RRRAF_9nyybpngbeVF5_RRR25__rzcynpr_havdhr_xrl_netfVzWEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWBzRRRAFU_VWRRRRRRAF_4cnveVAF_15__gerr_vgrengbeVF5_CAF_11__gerr_abqrVF5_CiRRyRRoRREXG_QcBG0_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVzA7naqebvq17ErcbegCresbeznapr19CresbeznaprNanylfvfRRRAF_19__znc_inyhr_pbzcnerVzF5_AF_4yrffVzRRYo1RRRAF_9nyybpngbeVF5_RRR25__rzcynpr_havdhr_xrl_netfVzWEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWBzRRRAFU_VWRRRRRRAF_4cnveVAF_15__gerr_vgrengbeVF5_CAF_11__gerr_abqrVF5_CiRRyRRoRREXG_QcBG0_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVzA7naqebvq17ErcbegCresbeznapr19CresbeznaprNanylfvfRRRAF_19__znc_inyhr_pbzcnerVzF5_AF_4yrffVzRRYo1RRRAF_9nyybpngbeVF5_RRR25__rzcynpr_havdhr_xrl_netfVzWEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWBzRRRAFU_VWRRRRRRAF_4cnveVAF_15__gerr_vgrengbeVF5_CAF_11__gerr_abqrVF5_CiRRyRRoRREXG_QcBG0_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVzA7naqebvq17ErcbegCresbeznapr19CresbeznaprNanylfvfRRRAF_19__znc_inyhr_pbzcnerVzF5_AF_4yrffVzRRYo1RRRAF_9nyybpngbeVF5_RRR25__rzcynpr_havdhr_xrl_netfVzWEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWBzRRRAFU_VWRRRRRRAF_4cnveVAF_15__gerr_vgrengbeVF5_CAF_11__gerr_abqrVF5_CiRRyRRoRREXG_QcBG0_:
 nop
@@ -1483,7 +1483,7 @@
 b__MA4Wfba18FglyrqFgernzJevgre10jevgrInyhrREXAF_5InyhrR:
 nop
 .data
-.globl b__MGIAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
+.weak b__MGIAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
 .type b__MGIAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR,%object
 b__MGIAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR:
 .space __SIZEOF_POINTER__
@@ -1528,17 +1528,17 @@
 b__MAX7naqebvq17ErcbegCresbeznapr9Uvfgbtenz14nfpvvNegFgevatRz:
 nop
 .data
-.globl b__MGIAFg3__114onfvp_bsfgernzVpAF_11pune_genvgfVpRRRR
+.weak b__MGIAFg3__114onfvp_bsfgernzVpAF_11pune_genvgfVpRRRR
 .type b__MGIAFg3__114onfvp_bsfgernzVpAF_11pune_genvgfVpRRRR,%object
 b__MGIAFg3__114onfvp_bsfgernzVpAF_11pune_genvgfVpRRRR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MTIM26nhqvb_hgvyf_cybg_uvfgbtenzEXAFg3__13zncVqvAF_4yrffVqRRAF_9nyybpngbeVAF_4cnveVXqvRRRRRRCXpFP_vR11haqrefpberf
+.weak b__MTIM26nhqvb_hgvyf_cybg_uvfgbtenzEXAFg3__13zncVqvAF_4yrffVqRRAF_9nyybpngbeVAF_4cnveVXqvRRRRRRCXpFP_vR11haqrefpberf
 .type b__MTIM26nhqvb_hgvyf_cybg_uvfgbtenzEXAFg3__13zncVqvAF_4yrffVqRRAF_9nyybpngbeVAF_4cnveVXqvRRRRRRCXpFP_vR11haqrefpberf,%object
 b__MTIM26nhqvb_hgvyf_cybg_uvfgbtenzEXAFg3__13zncVqvAF_4yrffVqRRAF_9nyybpngbeVAF_4cnveVXqvRRRRRRCXpFP_vR11haqrefpberf:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRR7frrxcbfRAF_4scbfV9zofgngr_gRRw
+.weak b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRR7frrxcbfRAF_4scbfV9zofgngr_gRRw
 .type b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRR7frrxcbfRAF_4scbfV9zofgngr_gRRw,%function
 b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRR7frrxcbfRAF_4scbfV9zofgngr_gRRw:
 nop
@@ -1568,7 +1568,7 @@
 b__MA7naqebvq5AOYbt10QhzcErnqre12unaqyrSbezngREXAF0_11SbezngRagelRCAF_7Fgevat8RF6_:
 nop
 .text
-.globl b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRR8biresybjRv
+.weak b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRR8biresybjRv
 .type b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRR8biresybjRv,%function
 b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRR8biresybjRv:
 nop
@@ -1608,7 +1608,7 @@
 b__MA4Wfba18FglyrqFgernzJevgre12abeznyvmrRBYREXAFg3__112onfvp_fgevatVpAF1_11pune_genvgfVpRRAF1_9nyybpngbeVpRRRR:
 nop
 .data
-.globl b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_13onfvp_vfgernzVpF2_RR
+.weak b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_13onfvp_vfgernzVpF2_RR
 .type b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_13onfvp_vfgernzVpF2_RR,%object
 b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_13onfvp_vfgernzVpF2_RR:
 .space __SIZEOF_POINTER__
@@ -1618,7 +1618,7 @@
 b__MAX7naqebvq5AOYbt6Ernqre9vfVZrzbelREXAF_2fcVAF_7VZrzbelRRR:
 nop
 .text
-.globl b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRR9conpxsnvyRv
+.weak b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRR9conpxsnvyRv
 .type b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRR9conpxsnvyRv,%function
 b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRR9conpxsnvyRv:
 nop
@@ -1628,7 +1628,7 @@
 b__MA4Wfba12FglyrqJevgre14vfZhygvarNeenlREXAF_5InyhrR:
 nop
 .data
-.globl b__MGGAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
+.weak b__MGGAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
 .type b__MGGAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR,%object
 b__MGGAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR:
 .space __SIZEOF_POINTER__
@@ -1703,7 +1703,7 @@
 b__MAX7naqebvq5AOYbt11SbezngRagel18sbezngFgevatYratguRi:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVA7naqebvq5AOYbt5RiragRAF_4unfuVF3_RRAF_8rdhny_gbVF3_RRAF_9nyybpngbeVF3_RRR6erunfuRz
+.weak b__MAFg3__112__unfu_gnoyrVA7naqebvq5AOYbt5RiragRAF_4unfuVF3_RRAF_8rdhny_gbVF3_RRAF_9nyybpngbeVF3_RRR6erunfuRz
 .type b__MAFg3__112__unfu_gnoyrVA7naqebvq5AOYbt5RiragRAF_4unfuVF3_RRAF_8rdhny_gbVF3_RRAF_9nyybpngbeVF3_RRR6erunfuRz,%function
 b__MAFg3__112__unfu_gnoyrVA7naqebvq5AOYbt5RiragRAF_4unfuVF3_RRAF_8rdhny_gbVF3_RRAF_9nyybpngbeVF3_RRR6erunfuRz:
 nop
@@ -1743,12 +1743,12 @@
 b__MA4Wfba5Inyhr12erzbirZrzoreRCXp:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVA4Wfba5Inyhr8PMFgevatRF3_RRAF_19__znc_inyhr_pbzcnerVF4_F5_AF_4yrffVF4_RRYo1RRRAF_9nyybpngbeVF5_RRR12__svaq_rdhnyVF4_RRECAF_16__gerr_abqr_onfrVCiRRAF_21__gerr_pbafg_vgrengbeVF5_CAF_11__gerr_abqrVF5_FS_RRyRRECAF_15__gerr_raq_abqrVFU_RRFV_EXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVA4Wfba5Inyhr8PMFgevatRF3_RRAF_19__znc_inyhr_pbzcnerVF4_F5_AF_4yrffVF4_RRYo1RRRAF_9nyybpngbeVF5_RRR12__svaq_rdhnyVF4_RRECAF_16__gerr_abqr_onfrVCiRRAF_21__gerr_pbafg_vgrengbeVF5_CAF_11__gerr_abqrVF5_FS_RRyRRECAF_15__gerr_raq_abqrVFU_RRFV_EXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVA4Wfba5Inyhr8PMFgevatRF3_RRAF_19__znc_inyhr_pbzcnerVF4_F5_AF_4yrffVF4_RRYo1RRRAF_9nyybpngbeVF5_RRR12__svaq_rdhnyVF4_RRECAF_16__gerr_abqr_onfrVCiRRAF_21__gerr_pbafg_vgrengbeVF5_CAF_11__gerr_abqrVF5_FS_RRyRRECAF_15__gerr_raq_abqrVFU_RRFV_EXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVA4Wfba5Inyhr8PMFgevatRF3_RRAF_19__znc_inyhr_pbzcnerVF4_F5_AF_4yrffVF4_RRYo1RRRAF_9nyybpngbeVF5_RRR12__svaq_rdhnyVF4_RRECAF_16__gerr_abqr_onfrVCiRRAF_21__gerr_pbafg_vgrengbeVF5_CAF_11__gerr_abqrVF5_FS_RRyRRECAF_15__gerr_raq_abqrVFU_RRFV_EXG_:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF6_RRR21__chfu_onpx_fybj_cnguVF6_RRiBG_
+.weak b__MAFg3__16irpgbeVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF6_RRR21__chfu_onpx_fybj_cnguVF6_RRiBG_
 .type b__MAFg3__16irpgbeVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF6_RRR21__chfu_onpx_fybj_cnguVF6_RRiBG_,%function
 b__MAFg3__16irpgbeVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF6_RRR21__chfu_onpx_fybj_cnguVF6_RRiBG_:
 nop
@@ -1823,7 +1823,7 @@
 b__MAX4Wfba5Inyhr8vfHVag64Ri:
 nop
 .text
-.globl b__MAFg3__114__fcyvg_ohssreVCyEAF_9nyybpngbeVF1_RRR10chfu_sebagREXF1_
+.weak b__MAFg3__114__fcyvg_ohssreVCyEAF_9nyybpngbeVF1_RRR10chfu_sebagREXF1_
 .type b__MAFg3__114__fcyvg_ohssreVCyEAF_9nyybpngbeVF1_RRR10chfu_sebagREXF1_,%function
 b__MAFg3__114__fcyvg_ohssreVCyEAF_9nyybpngbeVF1_RRR10chfu_sebagREXF1_:
 nop
@@ -1838,7 +1838,7 @@
 b__MA7naqebvq5AOYbt11ZretrErnqre23purpxChfuGbZrqvnZrgevpfRi:
 nop
 .text
-.globl b__MAFg3__124__chg_punenpgre_frdhraprVpAF_11pune_genvgfVpRRRREAF_13onfvp_bfgernzVG_G0_RRF7_CXF4_z
+.weak b__MAFg3__124__chg_punenpgre_frdhraprVpAF_11pune_genvgfVpRRRREAF_13onfvp_bfgernzVG_G0_RRF7_CXF4_z
 .type b__MAFg3__124__chg_punenpgre_frdhraprVpAF_11pune_genvgfVpRRRREAF_13onfvp_bfgernzVG_G0_RRF7_CXF4_z,%function
 b__MAFg3__124__chg_punenpgre_frdhraprVpAF_11pune_genvgfVpRRRREAF_13onfvp_bfgernzVG_G0_RRF7_CXF4_z:
 nop
@@ -1858,7 +1858,7 @@
 b__MAX4Wfba5Inyhr3trgRwEXF0_:
 nop
 .text
-.globl b__MAFg3__114__fcyvg_ohssreVCyAF_9nyybpngbeVF1_RRR10chfu_sebagREXF1_
+.weak b__MAFg3__114__fcyvg_ohssreVCyAF_9nyybpngbeVF1_RRR10chfu_sebagREXF1_
 .type b__MAFg3__114__fcyvg_ohssreVCyAF_9nyybpngbeVF1_RRR10chfu_sebagREXF1_,%function
 b__MAFg3__114__fcyvg_ohssreVCyAF_9nyybpngbeVF1_RRR10chfu_sebagREXF1_:
 nop
@@ -1868,12 +1868,12 @@
 b__MA4Wfba18InyhrPbafgVgrengbeP1REXAFg3__114__znc_vgrengbeVAF1_15__gerr_vgrengbeVAF1_12__inyhr_glcrVAF_5Inyhr8PMFgevatRF5_RRCAF1_11__gerr_abqrVF7_CiRRyRRRR:
 nop
 .data
-.globl b__MGIA7naqebvq5AOYbt6ZretreR
+.weak b__MGIA7naqebvq5AOYbt6ZretreR
 .type b__MGIA7naqebvq5AOYbt6ZretreR,%object
 b__MGIA7naqebvq5AOYbt6ZretreR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__114__fcyvg_ohssreVCAF_4cnveVqyRREAF_9nyybpngbeVF3_RRR9chfu_onpxRBF3_
+.weak b__MAFg3__114__fcyvg_ohssreVCAF_4cnveVqyRREAF_9nyybpngbeVF3_RRR9chfu_onpxRBF3_
 .type b__MAFg3__114__fcyvg_ohssreVCAF_4cnveVqyRREAF_9nyybpngbeVF3_RRR9chfu_onpxRBF3_,%function
 b__MAFg3__114__fcyvg_ohssreVCAF_4cnveVqyRREAF_9nyybpngbeVF3_RRR9chfu_onpxRBF3_:
 nop
@@ -1883,7 +1883,7 @@
 b__MA7naqebvq5AOYbt10QhzcErnqre15nccraqGvzrfgnzcRCAF_7Fgevat8RCXi:
 nop
 .text
-.globl b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRR4flapRi
+.weak b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRR4flapRi
 .type b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRR4flapRi,%function
 b__MAFg3__113onfvp_svyrohsVpAF_11pune_genvgfVpRRR4flapRi:
 nop
@@ -1908,7 +1908,7 @@
 b__MA7naqebvq5AOYbt11ZretrGuernqQ1Ri:
 nop
 .text
-.globl b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9haqresybjRi
+.weak b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9haqresybjRi
 .type b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9haqresybjRi,%function
 b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9haqresybjRi:
 nop
@@ -1918,7 +1918,7 @@
 b__MAX4Wfba5Inyhr7nfSybngRi:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF6_RRR7erfreirRz
+.weak b__MAFg3__16irpgbeVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF6_RRR7erfreirRz
 .type b__MAFg3__16irpgbeVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF6_RRR7erfreirRz,%function
 b__MAFg3__16irpgbeVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF6_RRR7erfreirRz:
 nop
@@ -1928,7 +1928,7 @@
 b__MAX7naqebvq5AOYbt13RagelVgrengbe4ceriRi:
 nop
 .text
-.globl b__MAFg3__114__fcyvg_ohssreVCAF_4cnveVA7naqebvq5AOYbt5RiragRyRRAF_9nyybpngbeVF6_RRR9chfu_onpxRBF6_
+.weak b__MAFg3__114__fcyvg_ohssreVCAF_4cnveVA7naqebvq5AOYbt5RiragRyRRAF_9nyybpngbeVF6_RRR9chfu_onpxRBF6_
 .type b__MAFg3__114__fcyvg_ohssreVCAF_4cnveVA7naqebvq5AOYbt5RiragRyRRAF_9nyybpngbeVF6_RRR9chfu_onpxRBF6_,%function
 b__MAFg3__114__fcyvg_ohssreVCAF_4cnveVA7naqebvq5AOYbt5RiragRyRRAF_9nyybpngbeVF6_RRR9chfu_onpxRBF6_:
 nop
@@ -1948,7 +1948,7 @@
 b__MAX4Wfba5Inyhr8vfZrzoreREXAFg3__112onfvp_fgevatVpAF1_11pune_genvgfVpRRAF1_9nyybpngbeVpRRRR:
 nop
 .text
-.globl b__MAFg3__15qrdhrVAF_4cnveVyAF_3zncVvvAF_4yrffVvRRAF_9nyybpngbeVAF1_VXvvRRRRRRRRAF5_VFN_RRR20__nqq_sebag_pncnpvglRi
+.weak b__MAFg3__15qrdhrVAF_4cnveVyAF_3zncVvvAF_4yrffVvRRAF_9nyybpngbeVAF1_VXvvRRRRRRRRAF5_VFN_RRR20__nqq_sebag_pncnpvglRi
 .type b__MAFg3__15qrdhrVAF_4cnveVyAF_3zncVvvAF_4yrffVvRRAF_9nyybpngbeVAF1_VXvvRRRRRRRRAF5_VFN_RRR20__nqq_sebag_pncnpvglRi,%function
 b__MAFg3__15qrdhrVAF_4cnveVyAF_3zncVvvAF_4yrffVvRRAF_9nyybpngbeVAF1_VXvvRRRRRRRRAF5_VFN_RRR20__nqq_sebag_pncnpvglRi:
 nop
@@ -1963,12 +1963,12 @@
 b__MAX4Wfba5Inyhr6vfObbyRi:
 nop
 .data
-.globl b__MGIA7naqebvq5AOYbt11ZretrErnqreR
+.weak b__MGIA7naqebvq5AOYbt11ZretrErnqreR
 .type b__MGIA7naqebvq5AOYbt11ZretrErnqreR,%object
 b__MGIA7naqebvq5AOYbt11ZretrErnqreR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__15qrdhrVAF_4cnveVqyRRAF_9nyybpngbeVF2_RRR20__nqq_sebag_pncnpvglRi
+.weak b__MAFg3__15qrdhrVAF_4cnveVqyRRAF_9nyybpngbeVF2_RRR20__nqq_sebag_pncnpvglRi
 .type b__MAFg3__15qrdhrVAF_4cnveVqyRRAF_9nyybpngbeVF2_RRR20__nqq_sebag_pncnpvglRi,%function
 b__MAFg3__15qrdhrVAF_4cnveVqyRRAF_9nyybpngbeVF2_RRR20__nqq_sebag_pncnpvglRi:
 nop
@@ -1988,12 +1988,12 @@
 b__MA4Wfba18FglyrqFgernzJevgre8havaqragRi:
 nop
 .text
-.globl b__MAFg3__114__fcyvg_ohssreVCAF_4cnveVqyRREAF_9nyybpngbeVF3_RRR10chfu_sebagREXF3_
+.weak b__MAFg3__114__fcyvg_ohssreVCAF_4cnveVqyRREAF_9nyybpngbeVF3_RRR10chfu_sebagREXF3_
 .type b__MAFg3__114__fcyvg_ohssreVCAF_4cnveVqyRREAF_9nyybpngbeVF3_RRR10chfu_sebagREXF3_,%function
 b__MAFg3__114__fcyvg_ohssreVCAF_4cnveVqyRREAF_9nyybpngbeVF3_RRR10chfu_sebagREXF3_:
 nop
 .text
-.globl b__MAFg3__15qrdhrVAF_4cnveVqyRRAF_9nyybpngbeVF2_RRR19__nqq_onpx_pncnpvglRz
+.weak b__MAFg3__15qrdhrVAF_4cnveVqyRRAF_9nyybpngbeVF2_RRR19__nqq_onpx_pncnpvglRz
 .type b__MAFg3__15qrdhrVAF_4cnveVqyRRAF_9nyybpngbeVF2_RRR19__nqq_onpx_pncnpvglRz,%function
 b__MAFg3__15qrdhrVAF_4cnveVqyRRAF_9nyybpngbeVF2_RRR19__nqq_onpx_pncnpvglRz:
 nop
@@ -2013,7 +2013,7 @@
 b__MAX4Wfba5InyhryrREXF0_:
 nop
 .data
-.globl b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR16_AF_13onfvp_bfgernzVpF2_RR
+.weak b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR16_AF_13onfvp_bfgernzVpF2_RR
 .type b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR16_AF_13onfvp_bfgernzVpF2_RR,%object
 b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR16_AF_13onfvp_bfgernzVpF2_RR:
 .space __SIZEOF_POINTER__
@@ -2033,7 +2033,7 @@
 b__MAX4Wfba5Inyhr13nfYnetrfgHVagRi:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVA7naqebvq5AOYbt5RiragRAF_4unfuVF3_RRAF_8rdhny_gbVF3_RRAF_9nyybpngbeVF3_RRR8__erunfuRz
+.weak b__MAFg3__112__unfu_gnoyrVA7naqebvq5AOYbt5RiragRAF_4unfuVF3_RRAF_8rdhny_gbVF3_RRAF_9nyybpngbeVF3_RRR8__erunfuRz
 .type b__MAFg3__112__unfu_gnoyrVA7naqebvq5AOYbt5RiragRAF_4unfuVF3_RRAF_8rdhny_gbVF3_RRAF_9nyybpngbeVF3_RRR8__erunfuRz,%function
 b__MAFg3__112__unfu_gnoyrVA7naqebvq5AOYbt5RiragRAF_4unfuVF3_RRAF_8rdhny_gbVF3_RRAF_9nyybpngbeVF3_RRR8__erunfuRz:
 nop
@@ -2053,7 +2053,7 @@
 b__MA4Wfba5InyhrvkRv:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVvA7naqebvq17ErcbegCresbeznapr15CresbeznaprQngnRRRAF_19__znc_inyhr_pbzcnerVvF5_AF_4yrffVvRRYo1RRRAF_9nyybpngbeVF5_RRR7qrfgeblRCAF_11__gerr_abqrVF5_CiRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVvA7naqebvq17ErcbegCresbeznapr15CresbeznaprQngnRRRAF_19__znc_inyhr_pbzcnerVvF5_AF_4yrffVvRRYo1RRRAF_9nyybpngbeVF5_RRR7qrfgeblRCAF_11__gerr_abqrVF5_CiRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVvA7naqebvq17ErcbegCresbeznapr15CresbeznaprQngnRRRAF_19__znc_inyhr_pbzcnerVvF5_AF_4yrffVvRRYo1RRRAF_9nyybpngbeVF5_RRR7qrfgeblRCAF_11__gerr_abqrVF5_CiRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVvA7naqebvq17ErcbegCresbeznapr15CresbeznaprQngnRRRAF_19__znc_inyhr_pbzcnerVvF5_AF_4yrffVvRRYo1RRRAF_9nyybpngbeVF5_RRR7qrfgeblRCAF_11__gerr_abqrVF5_CiRR:
 nop
@@ -2158,22 +2158,22 @@
 b__MA4Wfba10SnfgJevgreP2Ri:
 nop
 .text
-.globl b__MAFg3__114__fcyvg_ohssreVCAF_4cnveVA7naqebvq5AOYbt5RiragRyRREAF_9nyybpngbeVF6_RRR9chfu_onpxRBF6_
+.weak b__MAFg3__114__fcyvg_ohssreVCAF_4cnveVA7naqebvq5AOYbt5RiragRyRREAF_9nyybpngbeVF6_RRR9chfu_onpxRBF6_
 .type b__MAFg3__114__fcyvg_ohssreVCAF_4cnveVA7naqebvq5AOYbt5RiragRyRREAF_9nyybpngbeVF6_RRR9chfu_onpxRBF6_,%function
 b__MAFg3__114__fcyvg_ohssreVCAF_4cnveVA7naqebvq5AOYbt5RiragRyRREAF_9nyybpngbeVF6_RRR9chfu_onpxRBF6_:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVvvRRAF_19__znc_inyhr_pbzcnerVvF2_AF_4yrffVvRRYo1RRRAF_9nyybpngbeVF2_RRR7qrfgeblRCAF_11__gerr_abqrVF2_CiRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVvvRRAF_19__znc_inyhr_pbzcnerVvF2_AF_4yrffVvRRYo1RRRAF_9nyybpngbeVF2_RRR7qrfgeblRCAF_11__gerr_abqrVF2_CiRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVvvRRAF_19__znc_inyhr_pbzcnerVvF2_AF_4yrffVvRRYo1RRRAF_9nyybpngbeVF2_RRR7qrfgeblRCAF_11__gerr_abqrVF2_CiRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVvvRRAF_19__znc_inyhr_pbzcnerVvF2_AF_4yrffVvRRYo1RRRAF_9nyybpngbeVF2_RRR7qrfgeblRCAF_11__gerr_abqrVF2_CiRR:
 nop
 .text
-.globl b__MAFg3__114__fcyvg_ohssreVCAF_4cnveVyAF_3zncVvvAF_4yrffVvRRAF_9nyybpngbeVAF1_VXvvRRRRRRRREAF5_VFO_RRR9chfu_onpxRBFO_
+.weak b__MAFg3__114__fcyvg_ohssreVCAF_4cnveVyAF_3zncVvvAF_4yrffVvRRAF_9nyybpngbeVAF1_VXvvRRRRRRRREAF5_VFO_RRR9chfu_onpxRBFO_
 .type b__MAFg3__114__fcyvg_ohssreVCAF_4cnveVyAF_3zncVvvAF_4yrffVvRRAF_9nyybpngbeVAF1_VXvvRRRRRRRREAF5_VFO_RRR9chfu_onpxRBFO_,%function
 b__MAFg3__114__fcyvg_ohssreVCAF_4cnveVyAF_3zncVvvAF_4yrffVvRRAF_9nyybpngbeVAF1_VXvvRRRRRRRREAF5_VFO_RRR9chfu_onpxRBFO_:
 nop
 .text
-.globl b__MAFg3__15qrdhrVyAF_9nyybpngbeVyRRR20__nqq_sebag_pncnpvglRi
+.weak b__MAFg3__15qrdhrVyAF_9nyybpngbeVyRRR20__nqq_sebag_pncnpvglRi
 .type b__MAFg3__15qrdhrVyAF_9nyybpngbeVyRRR20__nqq_sebag_pncnpvglRi,%function
 b__MAFg3__15qrdhrVyAF_9nyybpngbeVyRRR20__nqq_sebag_pncnpvglRi:
 nop
@@ -2188,7 +2188,7 @@
 b__MA4Wfba5InyhrP1REXF0_:
 nop
 .text
-.globl b__MAFg3__114__fcyvg_ohssreVCAF_4cnveVA7naqebvq5AOYbt5RiragRyRRAF_9nyybpngbeVF6_RRR10chfu_sebagREXF6_
+.weak b__MAFg3__114__fcyvg_ohssreVCAF_4cnveVA7naqebvq5AOYbt5RiragRyRRAF_9nyybpngbeVF6_RRR10chfu_sebagREXF6_
 .type b__MAFg3__114__fcyvg_ohssreVCAF_4cnveVA7naqebvq5AOYbt5RiragRyRRAF_9nyybpngbeVF6_RRR10chfu_sebagREXF6_,%function
 b__MAFg3__114__fcyvg_ohssreVCAF_4cnveVA7naqebvq5AOYbt5RiragRyRRAF_9nyybpngbeVF6_RRR10chfu_sebagREXF6_:
 nop
diff --git a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_104.S b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_104.S
index 5dc9a61..a4cc55e 100644
--- a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_104.S
+++ b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_104.S
@@ -113,7 +113,7 @@
 b__MGPA7naqebvq2bf31VRkgreanyIvoengbeFreivprQrsnhygR0_AF_10VVagresnprR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq11OaVagresnprVAF_2bf28VRkgreanyIvoengvbaPbagebyyreRR10baNfOvaqreRi
+.weak b__MA7naqebvq11OaVagresnprVAF_2bf28VRkgreanyIvoengvbaPbagebyyreRR10baNfOvaqreRi
 .type b__MA7naqebvq11OaVagresnprVAF_2bf28VRkgreanyIvoengvbaPbagebyyreRR10baNfOvaqreRi,%function
 b__MA7naqebvq11OaVagresnprVAF_2bf28VRkgreanyIvoengvbaPbagebyyreRR10baNfOvaqreRi:
 nop
@@ -253,7 +253,7 @@
 b__MGGA7naqebvq2bf25OcRkgreanyIvoengbeFreivprR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIA7naqebvq10CneprynoyrR
+.weak b__MGIA7naqebvq10CneprynoyrR
 .type b__MGIA7naqebvq10CneprynoyrR,%object
 b__MGIA7naqebvq10CneprynoyrR:
 .space __SIZEOF_POINTER__
@@ -468,7 +468,7 @@
 b__MA7naqebvq2bf29OaRkgreanyIvoengvbaPbagebyyre10baGenafnpgRwEXAF_6CnepryRCF2_w:
 nop
 .text
-.globl b__MA7naqebvq11OaVagresnprVAF_2bf24VRkgreanyIvoengbeFreivprRR10baNfOvaqreRi
+.weak b__MA7naqebvq11OaVagresnprVAF_2bf24VRkgreanyIvoengbeFreivprRR10baNfOvaqreRi
 .type b__MA7naqebvq11OaVagresnprVAF_2bf24VRkgreanyIvoengbeFreivprRR10baNfOvaqreRi,%function
 b__MA7naqebvq11OaVagresnprVAF_2bf24VRkgreanyIvoengbeFreivprRR10baNfOvaqreRi:
 nop
diff --git a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_105.S b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_105.S
index 4878f2e..6c72e89 100644
--- a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_105.S
+++ b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_105.S
@@ -23,17 +23,17 @@
 b__MA7naqebvq18VCPGuernqFgngrOnfrP2Ri:
 nop
 .text
-.globl b__MAFg3__112__qrdhr_onfrVA7naqebvq18VCPGuernqFgngrOnfr9PnyyFgngrRAF_9nyybpngbeVF3_RRR5pyrneRi
+.weak b__MAFg3__112__qrdhr_onfrVA7naqebvq18VCPGuernqFgngrOnfr9PnyyFgngrRAF_9nyybpngbeVF3_RRR5pyrneRi
 .type b__MAFg3__112__qrdhr_onfrVA7naqebvq18VCPGuernqFgngrOnfr9PnyyFgngrRAF_9nyybpngbeVF3_RRR5pyrneRi,%function
 b__MAFg3__112__qrdhr_onfrVA7naqebvq18VCPGuernqFgngrOnfr9PnyyFgngrRAF_9nyybpngbeVF3_RRR5pyrneRi:
 nop
 .text
-.globl b__MAFg3__114__fcyvg_ohssreVCA7naqebvq18VCPGuernqFgngrOnfr9PnyyFgngrRAF_9nyybpngbeVF4_RRR9chfu_onpxRBF4_
+.weak b__MAFg3__114__fcyvg_ohssreVCA7naqebvq18VCPGuernqFgngrOnfr9PnyyFgngrRAF_9nyybpngbeVF4_RRR9chfu_onpxRBF4_
 .type b__MAFg3__114__fcyvg_ohssreVCA7naqebvq18VCPGuernqFgngrOnfr9PnyyFgngrRAF_9nyybpngbeVF4_RRR9chfu_onpxRBF4_,%function
 b__MAFg3__114__fcyvg_ohssreVCA7naqebvq18VCPGuernqFgngrOnfr9PnyyFgngrRAF_9nyybpngbeVF4_RRR9chfu_onpxRBF4_:
 nop
 .text
-.globl b__MAFg3__15qrdhrVA7naqebvq18VCPGuernqFgngrOnfr9PnyyFgngrRAF_9nyybpngbeVF3_RRR19__nqq_onpx_pncnpvglRi
+.weak b__MAFg3__15qrdhrVA7naqebvq18VCPGuernqFgngrOnfr9PnyyFgngrRAF_9nyybpngbeVF3_RRR19__nqq_onpx_pncnpvglRi
 .type b__MAFg3__15qrdhrVA7naqebvq18VCPGuernqFgngrOnfr9PnyyFgngrRAF_9nyybpngbeVF3_RRR19__nqq_onpx_pncnpvglRi,%function
 b__MAFg3__15qrdhrVA7naqebvq18VCPGuernqFgngrOnfr9PnyyFgngrRAF_9nyybpngbeVF3_RRR19__nqq_onpx_pncnpvglRi:
 nop
@@ -53,22 +53,22 @@
 b__MA7naqebvq18VCPGuernqFgngrOnfr4frysRi:
 nop
 .text
-.globl b__MAFg3__114__fcyvg_ohssreVCA7naqebvq18VCPGuernqFgngrOnfr9PnyyFgngrREAF_9nyybpngbeVF4_RRR10chfu_sebagREXF4_
+.weak b__MAFg3__114__fcyvg_ohssreVCA7naqebvq18VCPGuernqFgngrOnfr9PnyyFgngrREAF_9nyybpngbeVF4_RRR10chfu_sebagREXF4_
 .type b__MAFg3__114__fcyvg_ohssreVCA7naqebvq18VCPGuernqFgngrOnfr9PnyyFgngrREAF_9nyybpngbeVF4_RRR10chfu_sebagREXF4_,%function
 b__MAFg3__114__fcyvg_ohssreVCA7naqebvq18VCPGuernqFgngrOnfr9PnyyFgngrREAF_9nyybpngbeVF4_RRR10chfu_sebagREXF4_:
 nop
 .text
-.globl b__MAFg3__114__fcyvg_ohssreVCA7naqebvq18VCPGuernqFgngrOnfr9PnyyFgngrREAF_9nyybpngbeVF4_RRR9chfu_onpxRBF4_
+.weak b__MAFg3__114__fcyvg_ohssreVCA7naqebvq18VCPGuernqFgngrOnfr9PnyyFgngrREAF_9nyybpngbeVF4_RRR9chfu_onpxRBF4_
 .type b__MAFg3__114__fcyvg_ohssreVCA7naqebvq18VCPGuernqFgngrOnfr9PnyyFgngrREAF_9nyybpngbeVF4_RRR9chfu_onpxRBF4_,%function
 b__MAFg3__114__fcyvg_ohssreVCA7naqebvq18VCPGuernqFgngrOnfr9PnyyFgngrREAF_9nyybpngbeVF4_RRR9chfu_onpxRBF4_:
 nop
 .text
-.globl b__MAFg3__114__fcyvg_ohssreVCA7naqebvq18VCPGuernqFgngrOnfr9PnyyFgngrRAF_9nyybpngbeVF4_RRR10chfu_sebagRBF4_
+.weak b__MAFg3__114__fcyvg_ohssreVCA7naqebvq18VCPGuernqFgngrOnfr9PnyyFgngrRAF_9nyybpngbeVF4_RRR10chfu_sebagRBF4_
 .type b__MAFg3__114__fcyvg_ohssreVCA7naqebvq18VCPGuernqFgngrOnfr9PnyyFgngrRAF_9nyybpngbeVF4_RRR10chfu_sebagRBF4_,%function
 b__MAFg3__114__fcyvg_ohssreVCA7naqebvq18VCPGuernqFgngrOnfr9PnyyFgngrRAF_9nyybpngbeVF4_RRR10chfu_sebagRBF4_:
 nop
 .text
-.globl b__MAFg3__15qrdhrVA7naqebvq18VCPGuernqFgngrOnfr9PnyyFgngrRAF_9nyybpngbeVF3_RRR12rzcynpr_onpxVWEF3_RRRF8_QcBG_
+.weak b__MAFg3__15qrdhrVA7naqebvq18VCPGuernqFgngrOnfr9PnyyFgngrRAF_9nyybpngbeVF3_RRR12rzcynpr_onpxVWEF3_RRRF8_QcBG_
 .type b__MAFg3__15qrdhrVA7naqebvq18VCPGuernqFgngrOnfr9PnyyFgngrRAF_9nyybpngbeVF3_RRR12rzcynpr_onpxVWEF3_RRRF8_QcBG_,%function
 b__MAFg3__15qrdhrVA7naqebvq18VCPGuernqFgngrOnfr9PnyyFgngrRAF_9nyybpngbeVF3_RRR12rzcynpr_onpxVWEF3_RRRF8_QcBG_:
 nop
diff --git a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_107.S b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_107.S
index 099c3b9..1d6117f 100644
--- a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_107.S
+++ b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_107.S
@@ -53,7 +53,7 @@
 b__MA7naqebvq8uneqjner9xrlznfgre4I4_019OcUjXrlznfgreQrivpr9qryrgrXrlREXAF0_8uvqy_irpVuRR:
 nop
 .text
-.globl b__MAFg3__16irpgbeVCiAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_
+.weak b__MAFg3__16irpgbeVCiAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_
 .type b__MAFg3__16irpgbeVCiAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_,%function
 b__MAFg3__16irpgbeVCiAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_:
 nop
@@ -113,12 +113,12 @@
 b__MA7naqebvq8uneqjner9xrlznfgre4I4_021jevgrRzorqqrqGbCnepryREXAF2_17UneqjnerNhguGbxraRCAF0_6CnepryRzz:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRR:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_8uneqjner27uvqy_ovaqre_qrngu_erpvcvragRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_
+.weak b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_8uneqjner27uvqy_ovaqre_qrngu_erpvcvragRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_
 .type b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_8uneqjner27uvqy_ovaqre_qrngu_erpvcvragRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_,%function
 b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_8uneqjner27uvqy_ovaqre_qrngu_erpvcvragRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_:
 nop
@@ -193,7 +193,7 @@
 b__MGua16_A7naqebvq8uneqjner9xrlznfgre4I4_019OcUjXrlznfgreQrivpr15baYnfgFgebatErsRCXi:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_9xrlznfgre4I4_019OcUjXrlznfgreQrivprRAF4_16VXrlznfgreQrivprRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_9xrlznfgre4I4_019OcUjXrlznfgreQrivprRAF4_16VXrlznfgreQrivprRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo
 .type b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_9xrlznfgre4I4_019OcUjXrlznfgreQrivprRAF4_16VXrlznfgreQrivprRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_9xrlznfgre4I4_019OcUjXrlznfgreQrivprRAF4_16VXrlznfgreQrivprRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo:
 nop
@@ -218,12 +218,12 @@
 b__MA7naqebvq8uneqjner9xrlznfgre4I4_019OcUjXrlznfgreQrivpr15_uvqy_nggrfgXrlRCAF0_10VVagresnprRCAF0_7qrgnvyf16UvqyVafgehzragbeREXAF0_8uvqy_irpVuRREXAF9_VAF2_12XrlCnenzrgreRRRAFg3__18shapgvbaVSiAF2_9ReebePbqrREXAF9_VFN_RRRRR:
 nop
 .text
-.globl b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
+.weak b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
 .type b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_,%function
 b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_:
 nop
 .data
-.globl b__MGPA7naqebvq8uneqjner9xrlznfgre4I4_017OfXrlznfgreQrivprR0_AF2_16VXrlznfgreQrivprR
+.weak b__MGPA7naqebvq8uneqjner9xrlznfgre4I4_017OfXrlznfgreQrivprR0_AF2_16VXrlznfgreQrivprR
 .type b__MGPA7naqebvq8uneqjner9xrlznfgre4I4_017OfXrlznfgreQrivprR0_AF2_16VXrlznfgreQrivprR,%object
 b__MGPA7naqebvq8uneqjner9xrlznfgre4I4_017OfXrlznfgreQrivprR0_AF2_16VXrlznfgreQrivprR:
 .space __SIZEOF_POINTER__
@@ -273,12 +273,12 @@
 b__MA7naqebvq8uneqjner9xrlznfgre4I4_019OcUjXrlznfgreQrivprP1REXAF_2fcVAF0_7VOvaqreRRR:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRP2REXFU_
+.weak b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRP2REXFU_
 .type b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRP2REXFU_,%function
 b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRP2REXFU_:
 nop
@@ -398,7 +398,7 @@
 b__MA7naqebvq8uneqjner9xrlznfgre4I4_019OcUjXrlznfgreQrivpr15_uvqy_qryrgrXrlRCAF0_10VVagresnprRCAF0_7qrgnvyf16UvqyVafgehzragbeREXAF0_8uvqy_irpVuRR:
 nop
 .text
-.globl b__MAXFg3__18shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF7_F7_F7_CAF_6irpgbeVCiAF_9nyybpngbeVF9_RRRRRRpyRF5_F7_F7_F7_F7_FQ_
+.weak b__MAXFg3__18shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF7_F7_F7_CAF_6irpgbeVCiAF_9nyybpngbeVF9_RRRRRRpyRF5_F7_F7_F7_F7_FQ_
 .type b__MAXFg3__18shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF7_F7_F7_CAF_6irpgbeVCiAF_9nyybpngbeVF9_RRRRRRpyRF5_F7_F7_F7_F7_FQ_,%function
 b__MAXFg3__18shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF7_F7_F7_CAF_6irpgbeVCiAF_9nyybpngbeVF9_RRRRRRpyRF5_F7_F7_F7_F7_FQ_:
 nop
@@ -418,7 +418,7 @@
 b__MA7naqebvq8uneqjner9xrlznfgre4I4_019OcUjXrlznfgreQrivpr17pbzchgrFunerqUznpREXAF0_8uvqy_irpVAF2_21UznpFunevatCnenzrgrefRRRAFg3__18shapgvbaVSiAF2_9ReebePbqrREXAF4_VuRRRRR:
 nop
 .data
-.globl b__MGIA7naqebvq8uneqjner9xrlznfgre4I4_017OfXrlznfgreQrivprR
+.weak b__MGIA7naqebvq8uneqjner9xrlznfgre4I4_017OfXrlznfgreQrivprR
 .type b__MGIA7naqebvq8uneqjner9xrlznfgre4I4_017OfXrlznfgreQrivprR,%object
 b__MGIA7naqebvq8uneqjner9xrlznfgre4I4_017OfXrlznfgreQrivprR:
 .space __SIZEOF_POINTER__
@@ -463,12 +463,12 @@
 b__MA7naqebvq8uneqjner9xrlznfgre4I4_019OcUjXrlznfgreQrivpr19irevslNhgubevmngvbaRzEXAF0_8uvqy_irpVAF2_12XrlCnenzrgreRRREXAF2_17UneqjnerNhguGbxraRAFg3__18shapgvbaVSiAF2_9ReebePbqrREXAF2_17IrevsvpngvbaGbxraRRRR:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRR:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_9xrlznfgre4I4_016VXrlznfgreQrivprRAF_4uvqy4onfr4I1_05VOnfrRAF4_19OcUjXrlznfgreQrivprRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_9xrlznfgre4I4_016VXrlznfgreQrivprRAF_4uvqy4onfr4I1_05VOnfrRAF4_19OcUjXrlznfgreQrivprRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo
 .type b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_9xrlznfgre4I4_016VXrlznfgreQrivprRAF_4uvqy4onfr4I1_05VOnfrRAF4_19OcUjXrlznfgreQrivprRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_9xrlznfgre4I4_016VXrlznfgreQrivprRAF_4uvqy4onfr4I1_05VOnfrRAF4_19OcUjXrlznfgreQrivprRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo:
 nop
@@ -558,7 +558,7 @@
 b__MA7naqebvq8uneqjner9xrlznfgre4I4_019OaUjXrlznfgreQrivpr25_uvqy_irevslNhgubevmngvbaRCAF_4uvqy4onfr4I1_08OaUjOnfrREXAF0_6CnepryRCF9_AFg3__18shapgvbaVSiEF9_RRR:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_:
 nop
@@ -593,7 +593,7 @@
 b__MA7naqebvq8uneqjner9xrlznfgre4I4_019OcUjXrlznfgreQrivpr19_uvqy_qryrgrNyyXrlfRCAF0_10VVagresnprRCAF0_7qrgnvyf16UvqyVafgehzragbeR:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFT_RRECAF_15__gerr_raq_abqrVFG_RREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFT_RRECAF_15__gerr_raq_abqrVFG_RREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFT_RRECAF_15__gerr_raq_abqrVFG_RREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFT_RRECAF_15__gerr_raq_abqrVFG_RREXG_:
 nop
@@ -683,7 +683,7 @@
 b__MA7naqebvq8uneqjner9xrlznfgre4I4_019OaUjXrlznfgreQrivpr4cvatRi:
 nop
 .text
-.globl b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
+.weak b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
 .type b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_,%function
 b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_:
 nop
@@ -713,7 +713,7 @@
 b__MA7naqebvq8uneqjner9xrlznfgre4I4_021jevgrRzorqqrqGbCnepryREXAF2_18XrlPunenpgrevfgvpfRCAF0_6CnepryRzz:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFR_RRECAF_15__gerr_raq_abqrVFE_RREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFR_RRECAF_15__gerr_raq_abqrVFE_RREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFR_RRECAF_15__gerr_raq_abqrVFE_RREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFR_RRECAF_15__gerr_raq_abqrVFE_RREXG_:
 nop
diff --git a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_108.S b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_108.S
index d3676c3..6434cf5 100644
--- a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_108.S
+++ b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_108.S
@@ -23,7 +23,7 @@
 b__MA7naqebvq8uneqjner9xrlznfgre4I4_023NhgubevmngvbaFrgOhvyqre10FvtavatXrlRi:
 nop
 .data
-.globl b__MGGAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
+.weak b__MGGAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
 .type b__MGGAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR,%object
 b__MGGAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR:
 .space __SIZEOF_POINTER__
@@ -53,12 +53,12 @@
 b__MA7naqebvq8uneqjner9xrlznfgre4I4_023XZ_XRL_QRFPEVCGVBA_serrRCAF2_18xz_xrl_qrfpevcgvbaR:
 nop
 .text
-.globl b__MAFg3__1yfVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRREAF_13onfvp_bfgernzVG_G0_RRF9_EXAF_12onfvp_fgevatVF6_F7_G1_RR
+.weak b__MAFg3__1yfVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRREAF_13onfvp_bfgernzVG_G0_RRF9_EXAF_12onfvp_fgevatVF6_F7_G1_RR
 .type b__MAFg3__1yfVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRREAF_13onfvp_bfgernzVG_G0_RRF9_EXAF_12onfvp_fgevatVF6_F7_G1_RR,%function
 b__MAFg3__1yfVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRREAF_13onfvp_bfgernzVG_G0_RRF9_EXAF_12onfvp_fgevatVF6_F7_G1_RR:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq8uneqjner9xrlznfgre4I4_012XrlCnenzrgreRAF_9nyybpngbeVF5_RRR12__zbir_enatrRCF5_F9_F9_
+.weak b__MAFg3__16irpgbeVA7naqebvq8uneqjner9xrlznfgre4I4_012XrlCnenzrgreRAF_9nyybpngbeVF5_RRR12__zbir_enatrRCF5_F9_F9_
 .type b__MAFg3__16irpgbeVA7naqebvq8uneqjner9xrlznfgre4I4_012XrlCnenzrgreRAF_9nyybpngbeVF5_RRR12__zbir_enatrRCF5_F9_F9_,%function
 b__MAFg3__16irpgbeVA7naqebvq8uneqjner9xrlznfgre4I4_012XrlCnenzrgreRAF_9nyybpngbeVF5_RRR12__zbir_enatrRCF5_F9_F9_:
 nop
@@ -78,7 +78,7 @@
 b__MA7naqebvq8uneqjner9xrlznfgre4I4_07fhccbeg10Xrlznfgre36hcqngrRzEXAF0_8uvqy_irpVAF2_12XrlCnenzrgreRRREXAF5_VuRREXAF2_17UneqjnerNhguGbxraREXAF2_17IrevsvpngvbaGbxraRAFg3__18shapgvbaVSiAF2_9ReebePbqrRwF9_FP_RRR:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner9xrlznfgre4I4_011pbclNhguGntVYAF2_3GntR536870918RRRiCX21fgnpx_fg_NFA1_VAGRTREAF2_8GlcrqGntVYAF2_7GntGlcrR536870912RKG_RRRCAF2_16NhgubevmngvbaFrgR
+.weak b__MA7naqebvq8uneqjner9xrlznfgre4I4_011pbclNhguGntVYAF2_3GntR536870918RRRiCX21fgnpx_fg_NFA1_VAGRTREAF2_8GlcrqGntVYAF2_7GntGlcrR536870912RKG_RRRCAF2_16NhgubevmngvbaFrgR
 .type b__MA7naqebvq8uneqjner9xrlznfgre4I4_011pbclNhguGntVYAF2_3GntR536870918RRRiCX21fgnpx_fg_NFA1_VAGRTREAF2_8GlcrqGntVYAF2_7GntGlcrR536870912RKG_RRRCAF2_16NhgubevmngvbaFrgR,%function
 b__MA7naqebvq8uneqjner9xrlznfgre4I4_011pbclNhguGntVYAF2_3GntR536870918RRRiCX21fgnpx_fg_NFA1_VAGRTREAF2_8GlcrqGntVYAF2_7GntGlcrR536870912RKG_RRRCAF2_16NhgubevmngvbaFrgR:
 nop
@@ -93,7 +93,7 @@
 b__MA7naqebvq8uneqjner9xrlznfgre4I4_07fhccbeg10Xrlznfgre310hctenqrXrlREXAF0_8uvqy_irpVuRREXAF5_VAF2_12XrlCnenzrgreRRRAFg3__18shapgvbaVSiAF2_9ReebePbqrRF8_RRR:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq8uneqjner9xrlznfgre4I4_021UznpFunevatCnenzrgrefRAF_9nyybpngbeVF5_RRR7erfreirRz
+.weak b__MAFg3__16irpgbeVA7naqebvq8uneqjner9xrlznfgre4I4_021UznpFunevatCnenzrgrefRAF_9nyybpngbeVF5_RRR7erfreirRz
 .type b__MAFg3__16irpgbeVA7naqebvq8uneqjner9xrlznfgre4I4_021UznpFunevatCnenzrgrefRAF_9nyybpngbeVF5_RRR7erfreirRz,%function
 b__MAFg3__16irpgbeVA7naqebvq8uneqjner9xrlznfgre4I4_021UznpFunevatCnenzrgrefRAF_9nyybpngbeVF5_RRR7erfreirRz:
 nop
@@ -113,7 +113,7 @@
 b__MA7naqebvq8uneqjneryfREAFg3__113onfvp_bfgernzVpAF1_11pune_genvgfVpRRRREXAF0_8uvqy_irpVuRR:
 nop
 .text
-.globl b__MAFg3__110__shapgvba6__shapVMA7naqebvq8uneqjner9xrlznfgre4I4_07fhccbeg16rahzrengrQrivprfVAF6_10Xrlznfgre4RRRAF_6irpgbeVAF_10havdhr_cgeVAF6_9XrlznfgreRAF_14qrsnhyg_qryrgrVFO_RRRRAF_9nyybpngbeVFR_RRRREXAF2_2fcVAF2_4uvqy7znantre4I1_215VFreivprZnantreRRRRHyEXAF3_8uvqy_irpVAF3_11uvqy_fgevatRRRR_AFS_VFI_RRSiFH_RR7qrfgeblRi
+.weak b__MAFg3__110__shapgvba6__shapVMA7naqebvq8uneqjner9xrlznfgre4I4_07fhccbeg16rahzrengrQrivprfVAF6_10Xrlznfgre4RRRAF_6irpgbeVAF_10havdhr_cgeVAF6_9XrlznfgreRAF_14qrsnhyg_qryrgrVFO_RRRRAF_9nyybpngbeVFR_RRRREXAF2_2fcVAF2_4uvqy7znantre4I1_215VFreivprZnantreRRRRHyEXAF3_8uvqy_irpVAF3_11uvqy_fgevatRRRR_AFS_VFI_RRSiFH_RR7qrfgeblRi
 .type b__MAFg3__110__shapgvba6__shapVMA7naqebvq8uneqjner9xrlznfgre4I4_07fhccbeg16rahzrengrQrivprfVAF6_10Xrlznfgre4RRRAF_6irpgbeVAF_10havdhr_cgeVAF6_9XrlznfgreRAF_14qrsnhyg_qryrgrVFO_RRRRAF_9nyybpngbeVFR_RRRREXAF2_2fcVAF2_4uvqy7znantre4I1_215VFreivprZnantreRRRRHyEXAF3_8uvqy_irpVAF3_11uvqy_fgevatRRRR_AFS_VFI_RRSiFH_RR7qrfgeblRi,%function
 b__MAFg3__110__shapgvba6__shapVMA7naqebvq8uneqjner9xrlznfgre4I4_07fhccbeg16rahzrengrQrivprfVAF6_10Xrlznfgre4RRRAF_6irpgbeVAF_10havdhr_cgeVAF6_9XrlznfgreRAF_14qrsnhyg_qryrgrVFO_RRRRAF_9nyybpngbeVFR_RRRREXAF2_2fcVAF2_4uvqy7znantre4I1_215VFreivprZnantreRRRRHyEXAF3_8uvqy_irpVAF3_11uvqy_fgevatRRRR_AFS_VFI_RRSiFH_RR7qrfgeblRi:
 nop
@@ -128,27 +128,27 @@
 b__MA7naqebvq8uneqjner9xrlznfgre4I4_07fhccbeg10Xrlznfgre39rkcbegXrlRAF2_9XrlSbezngREXAF0_8uvqy_irpVuRRF9_F9_AFg3__18shapgvbaVSiAF2_9ReebePbqrRF9_RRR:
 nop
 .text
-.globl b__MAFg3__110__shapgvba6__shapVMA7naqebvq8uneqjner9xrlznfgre4I4_07fhccbeg16rahzrengrQrivprfVAF6_10Xrlznfgre3RRRAF_6irpgbeVAF_10havdhr_cgeVAF6_9XrlznfgreRAF_14qrsnhyg_qryrgrVFO_RRRRAF_9nyybpngbeVFR_RRRREXAF2_2fcVAF2_4uvqy7znantre4I1_215VFreivprZnantreRRRRHyEXAF3_8uvqy_irpVAF3_11uvqy_fgevatRRRR_AFS_VFI_RRSiFH_RR7qrfgeblRi
+.weak b__MAFg3__110__shapgvba6__shapVMA7naqebvq8uneqjner9xrlznfgre4I4_07fhccbeg16rahzrengrQrivprfVAF6_10Xrlznfgre3RRRAF_6irpgbeVAF_10havdhr_cgeVAF6_9XrlznfgreRAF_14qrsnhyg_qryrgrVFO_RRRRAF_9nyybpngbeVFR_RRRREXAF2_2fcVAF2_4uvqy7znantre4I1_215VFreivprZnantreRRRRHyEXAF3_8uvqy_irpVAF3_11uvqy_fgevatRRRR_AFS_VFI_RRSiFH_RR7qrfgeblRi
 .type b__MAFg3__110__shapgvba6__shapVMA7naqebvq8uneqjner9xrlznfgre4I4_07fhccbeg16rahzrengrQrivprfVAF6_10Xrlznfgre3RRRAF_6irpgbeVAF_10havdhr_cgeVAF6_9XrlznfgreRAF_14qrsnhyg_qryrgrVFO_RRRRAF_9nyybpngbeVFR_RRRREXAF2_2fcVAF2_4uvqy7znantre4I1_215VFreivprZnantreRRRRHyEXAF3_8uvqy_irpVAF3_11uvqy_fgevatRRRR_AFS_VFI_RRSiFH_RR7qrfgeblRi,%function
 b__MAFg3__110__shapgvba6__shapVMA7naqebvq8uneqjner9xrlznfgre4I4_07fhccbeg16rahzrengrQrivprfVAF6_10Xrlznfgre3RRRAF_6irpgbeVAF_10havdhr_cgeVAF6_9XrlznfgreRAF_14qrsnhyg_qryrgrVFO_RRRRAF_9nyybpngbeVFR_RRRREXAF2_2fcVAF2_4uvqy7znantre4I1_215VFreivprZnantreRRRRHyEXAF3_8uvqy_irpVAF3_11uvqy_fgevatRRRR_AFS_VFI_RRSiFH_RR7qrfgeblRi:
 nop
 .text
-.globl b__MAFg3__110__shapgvba6__shapVMA7naqebvq8uneqjner9xrlznfgre4I4_07fhccbeg16rahzrengrQrivprfVAF6_10Xrlznfgre4RRRAF_6irpgbeVAF_10havdhr_cgeVAF6_9XrlznfgreRAF_14qrsnhyg_qryrgrVFO_RRRRAF_9nyybpngbeVFR_RRRREXAF2_2fcVAF2_4uvqy7znantre4I1_215VFreivprZnantreRRRRHyEXAF3_8uvqy_irpVAF3_11uvqy_fgevatRRRR_AFS_VFI_RRSiFH_RR18qrfgebl_qrnyybpngrRi
+.weak b__MAFg3__110__shapgvba6__shapVMA7naqebvq8uneqjner9xrlznfgre4I4_07fhccbeg16rahzrengrQrivprfVAF6_10Xrlznfgre4RRRAF_6irpgbeVAF_10havdhr_cgeVAF6_9XrlznfgreRAF_14qrsnhyg_qryrgrVFO_RRRRAF_9nyybpngbeVFR_RRRREXAF2_2fcVAF2_4uvqy7znantre4I1_215VFreivprZnantreRRRRHyEXAF3_8uvqy_irpVAF3_11uvqy_fgevatRRRR_AFS_VFI_RRSiFH_RR18qrfgebl_qrnyybpngrRi
 .type b__MAFg3__110__shapgvba6__shapVMA7naqebvq8uneqjner9xrlznfgre4I4_07fhccbeg16rahzrengrQrivprfVAF6_10Xrlznfgre4RRRAF_6irpgbeVAF_10havdhr_cgeVAF6_9XrlznfgreRAF_14qrsnhyg_qryrgrVFO_RRRRAF_9nyybpngbeVFR_RRRREXAF2_2fcVAF2_4uvqy7znantre4I1_215VFreivprZnantreRRRRHyEXAF3_8uvqy_irpVAF3_11uvqy_fgevatRRRR_AFS_VFI_RRSiFH_RR18qrfgebl_qrnyybpngrRi,%function
 b__MAFg3__110__shapgvba6__shapVMA7naqebvq8uneqjner9xrlznfgre4I4_07fhccbeg16rahzrengrQrivprfVAF6_10Xrlznfgre4RRRAF_6irpgbeVAF_10havdhr_cgeVAF6_9XrlznfgreRAF_14qrsnhyg_qryrgrVFO_RRRRAF_9nyybpngbeVFR_RRRREXAF2_2fcVAF2_4uvqy7znantre4I1_215VFreivprZnantreRRRRHyEXAF3_8uvqy_irpVAF3_11uvqy_fgevatRRRR_AFS_VFI_RRSiFH_RR18qrfgebl_qrnyybpngrRi:
 nop
 .text
-.globl b__MAFg3__127__vafregvba_fbeg_vapbzcyrgrVEAF_6__yrffVA7naqebvq8uneqjner9xrlznfgre4I4_021UznpFunevatCnenzrgrefRF6_RRCF6_RRoG0_FN_G_
+.weak b__MAFg3__127__vafregvba_fbeg_vapbzcyrgrVEAF_6__yrffVA7naqebvq8uneqjner9xrlznfgre4I4_021UznpFunevatCnenzrgrefRF6_RRCF6_RRoG0_FN_G_
 .type b__MAFg3__127__vafregvba_fbeg_vapbzcyrgrVEAF_6__yrffVA7naqebvq8uneqjner9xrlznfgre4I4_021UznpFunevatCnenzrgrefRF6_RRCF6_RRoG0_FN_G_,%function
 b__MAFg3__127__vafregvba_fbeg_vapbzcyrgrVEAF_6__yrffVA7naqebvq8uneqjner9xrlznfgre4I4_021UznpFunevatCnenzrgrefRF6_RRCF6_RRoG0_FN_G_:
 nop
 .data
-.globl b__MGIAFg3__110__shapgvba6__shapVMA7naqebvq8uneqjner9xrlznfgre4I4_07fhccbeg16rahzrengrQrivprfVAF6_10Xrlznfgre4RRRAF_6irpgbeVAF_10havdhr_cgeVAF6_9XrlznfgreRAF_14qrsnhyg_qryrgrVFO_RRRRAF_9nyybpngbeVFR_RRRREXAF2_2fcVAF2_4uvqy7znantre4I1_215VFreivprZnantreRRRRHyEXAF3_8uvqy_irpVAF3_11uvqy_fgevatRRRR_AFS_VFI_RRSiFH_RRR
+.weak b__MGIAFg3__110__shapgvba6__shapVMA7naqebvq8uneqjner9xrlznfgre4I4_07fhccbeg16rahzrengrQrivprfVAF6_10Xrlznfgre4RRRAF_6irpgbeVAF_10havdhr_cgeVAF6_9XrlznfgreRAF_14qrsnhyg_qryrgrVFO_RRRRAF_9nyybpngbeVFR_RRRREXAF2_2fcVAF2_4uvqy7znantre4I1_215VFreivprZnantreRRRRHyEXAF3_8uvqy_irpVAF3_11uvqy_fgevatRRRR_AFS_VFI_RRSiFH_RRR
 .type b__MGIAFg3__110__shapgvba6__shapVMA7naqebvq8uneqjner9xrlznfgre4I4_07fhccbeg16rahzrengrQrivprfVAF6_10Xrlznfgre4RRRAF_6irpgbeVAF_10havdhr_cgeVAF6_9XrlznfgreRAF_14qrsnhyg_qryrgrVFO_RRRRAF_9nyybpngbeVFR_RRRREXAF2_2fcVAF2_4uvqy7znantre4I1_215VFreivprZnantreRRRRHyEXAF3_8uvqy_irpVAF3_11uvqy_fgevatRRRR_AFS_VFI_RRSiFH_RRR,%object
 b__MGIAFg3__110__shapgvba6__shapVMA7naqebvq8uneqjner9xrlznfgre4I4_07fhccbeg16rahzrengrQrivprfVAF6_10Xrlznfgre4RRRAF_6irpgbeVAF_10havdhr_cgeVAF6_9XrlznfgreRAF_14qrsnhyg_qryrgrVFO_RRRRAF_9nyybpngbeVFR_RRRREXAF2_2fcVAF2_4uvqy7znantre4I1_215VFreivprZnantreRRRRHyEXAF3_8uvqy_irpVAF3_11uvqy_fgevatRRRR_AFS_VFI_RRSiFH_RRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq8uneqjner9xrlznfgre4I4_011pbclNhguGntVYAF2_3GntR1610613137RRRiCX14nfa1_fgevat_fgAF2_8GlcrqGntVYAF2_7GntGlcrR1610612736RKG_RRRCAF2_16NhgubevmngvbaFrgR
+.weak b__MA7naqebvq8uneqjner9xrlznfgre4I4_011pbclNhguGntVYAF2_3GntR1610613137RRRiCX14nfa1_fgevat_fgAF2_8GlcrqGntVYAF2_7GntGlcrR1610612736RKG_RRRCAF2_16NhgubevmngvbaFrgR
 .type b__MA7naqebvq8uneqjner9xrlznfgre4I4_011pbclNhguGntVYAF2_3GntR1610613137RRRiCX14nfa1_fgevat_fgAF2_8GlcrqGntVYAF2_7GntGlcrR1610612736RKG_RRRCAF2_16NhgubevmngvbaFrgR,%function
 b__MA7naqebvq8uneqjner9xrlznfgre4I4_011pbclNhguGntVYAF2_3GntR1610613137RRRiCX14nfa1_fgevat_fgAF2_8GlcrqGntVYAF2_7GntGlcrR1610612736RKG_RRRCAF2_16NhgubevmngvbaFrgR:
 nop
@@ -163,7 +163,7 @@
 b__MA7naqebvq8uneqjner9xrlznfgre4I4_016NhgubevmngvbaFrg5renfrRv:
 nop
 .text
-.globl b__MAFg3__118__vafregvba_fbeg_3VEAF_6__yrffVA7naqebvq8uneqjner9xrlznfgre4I4_021UznpFunevatCnenzrgrefRF6_RRCF6_RRiG0_FN_G_
+.weak b__MAFg3__118__vafregvba_fbeg_3VEAF_6__yrffVA7naqebvq8uneqjner9xrlznfgre4I4_021UznpFunevatCnenzrgrefRF6_RRCF6_RRiG0_FN_G_
 .type b__MAFg3__118__vafregvba_fbeg_3VEAF_6__yrffVA7naqebvq8uneqjner9xrlznfgre4I4_021UznpFunevatCnenzrgrefRF6_RRCF6_RRiG0_FN_G_,%function
 b__MAFg3__118__vafregvba_fbeg_3VEAF_6__yrffVA7naqebvq8uneqjner9xrlznfgre4I4_021UznpFunevatCnenzrgrefRF6_RRCF6_RRiG0_FN_G_:
 nop
@@ -183,7 +183,7 @@
 b__MA7naqebvq8uneqjner9xrlznfgre4I4_023NhgubevmngvbaFrgOhvyqre8RpqfnXrlRAF2_7RpPheirR:
 nop
 .text
-.globl b__MAXFg3__110__shapgvba6__shapVMA7naqebvq8uneqjner9xrlznfgre4I4_07fhccbeg16rahzrengrQrivprfVAF6_10Xrlznfgre3RRRAF_6irpgbeVAF_10havdhr_cgeVAF6_9XrlznfgreRAF_14qrsnhyg_qryrgrVFO_RRRRAF_9nyybpngbeVFR_RRRREXAF2_2fcVAF2_4uvqy7znantre4I1_215VFreivprZnantreRRRRHyEXAF3_8uvqy_irpVAF3_11uvqy_fgevatRRRR_AFS_VFI_RRSiFH_RR7__pybarRi
+.weak b__MAXFg3__110__shapgvba6__shapVMA7naqebvq8uneqjner9xrlznfgre4I4_07fhccbeg16rahzrengrQrivprfVAF6_10Xrlznfgre3RRRAF_6irpgbeVAF_10havdhr_cgeVAF6_9XrlznfgreRAF_14qrsnhyg_qryrgrVFO_RRRRAF_9nyybpngbeVFR_RRRREXAF2_2fcVAF2_4uvqy7znantre4I1_215VFreivprZnantreRRRRHyEXAF3_8uvqy_irpVAF3_11uvqy_fgevatRRRR_AFS_VFI_RRSiFH_RR7__pybarRi
 .type b__MAXFg3__110__shapgvba6__shapVMA7naqebvq8uneqjner9xrlznfgre4I4_07fhccbeg16rahzrengrQrivprfVAF6_10Xrlznfgre3RRRAF_6irpgbeVAF_10havdhr_cgeVAF6_9XrlznfgreRAF_14qrsnhyg_qryrgrVFO_RRRRAF_9nyybpngbeVFR_RRRREXAF2_2fcVAF2_4uvqy7znantre4I1_215VFreivprZnantreRRRRHyEXAF3_8uvqy_irpVAF3_11uvqy_fgevatRRRR_AFS_VFI_RRSiFH_RR7__pybarRi,%function
 b__MAXFg3__110__shapgvba6__shapVMA7naqebvq8uneqjner9xrlznfgre4I4_07fhccbeg16rahzrengrQrivprfVAF6_10Xrlznfgre3RRRAF_6irpgbeVAF_10havdhr_cgeVAF6_9XrlznfgreRAF_14qrsnhyg_qryrgrVFO_RRRRAF_9nyybpngbeVFR_RRRREXAF2_2fcVAF2_4uvqy7znantre4I1_215VFreivprZnantreRRRRHyEXAF3_8uvqy_irpVAF3_11uvqy_fgevatRRRR_AFS_VFI_RRSiFH_RR7__pybarRi:
 nop
@@ -198,12 +198,12 @@
 b__MA7naqebvq8uneqjner9xrlznfgre4I4_016NhgubevmngvbaFrgvkRv:
 nop
 .text
-.globl b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR7frrxbssRkAF_8vbf_onfr7frrxqveRw
+.weak b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR7frrxbssRkAF_8vbf_onfr7frrxqveRw
 .type b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR7frrxbssRkAF_8vbf_onfr7frrxqveRw,%function
 b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR7frrxbssRkAF_8vbf_onfr7frrxqveRw:
 nop
 .data
-.globl b__MGGAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
+.weak b__MGGAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
 .type b__MGGAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR,%object
 b__MGGAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR:
 .space __SIZEOF_POINTER__
@@ -228,17 +228,17 @@
 b__MAX7naqebvq8uneqjner9xrlznfgre4I4_016NhgubevmngvbaFrgvkRv:
 nop
 .text
-.globl b__MAFg3__17__fbeg3VECSoEXA7naqebvq8uneqjner9xrlznfgre4I4_012XrlCnenzrgreRF7_RCF5_RRwG0_FP_FP_G_
+.weak b__MAFg3__17__fbeg3VECSoEXA7naqebvq8uneqjner9xrlznfgre4I4_012XrlCnenzrgreRF7_RCF5_RRwG0_FP_FP_G_
 .type b__MAFg3__17__fbeg3VECSoEXA7naqebvq8uneqjner9xrlznfgre4I4_012XrlCnenzrgreRF7_RCF5_RRwG0_FP_FP_G_,%function
 b__MAFg3__17__fbeg3VECSoEXA7naqebvq8uneqjner9xrlznfgre4I4_012XrlCnenzrgreRF7_RCF5_RRwG0_FP_FP_G_:
 nop
 .text
-.globl b__MAXFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR3fgeRi
+.weak b__MAXFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR3fgeRi
 .type b__MAXFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR3fgeRi,%function
 b__MAXFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR3fgeRi:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_10havdhr_cgeVA7naqebvq8uneqjner9xrlznfgre4I4_07fhccbeg9XrlznfgreRAF_14qrsnhyg_qryrgrVF7_RRRRAF_9nyybpngbeVFN_RRR6vafregVAF_13zbir_vgrengbeVAF_11__jenc_vgreVCFN_RRRRRRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVFN_AF_15vgrengbe_genvgfVFY_R9ersreraprRRR5inyhrRFV_R4glcrRAFT_VCXFN_RRFY_FY_
+.weak b__MAFg3__16irpgbeVAF_10havdhr_cgeVA7naqebvq8uneqjner9xrlznfgre4I4_07fhccbeg9XrlznfgreRAF_14qrsnhyg_qryrgrVF7_RRRRAF_9nyybpngbeVFN_RRR6vafregVAF_13zbir_vgrengbeVAF_11__jenc_vgreVCFN_RRRRRRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVFN_AF_15vgrengbe_genvgfVFY_R9ersreraprRRR5inyhrRFV_R4glcrRAFT_VCXFN_RRFY_FY_
 .type b__MAFg3__16irpgbeVAF_10havdhr_cgeVA7naqebvq8uneqjner9xrlznfgre4I4_07fhccbeg9XrlznfgreRAF_14qrsnhyg_qryrgrVF7_RRRRAF_9nyybpngbeVFN_RRR6vafregVAF_13zbir_vgrengbeVAF_11__jenc_vgreVCFN_RRRRRRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVFN_AF_15vgrengbe_genvgfVFY_R9ersreraprRRR5inyhrRFV_R4glcrRAFT_VCXFN_RRFY_FY_,%function
 b__MAFg3__16irpgbeVAF_10havdhr_cgeVA7naqebvq8uneqjner9xrlznfgre4I4_07fhccbeg9XrlznfgreRAF_14qrsnhyg_qryrgrVF7_RRRRAF_9nyybpngbeVFN_RRR6vafregVAF_13zbir_vgrengbeVAF_11__jenc_vgreVCFN_RRRRRRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVFN_AF_15vgrengbe_genvgfVFY_R9ersreraprRRR5inyhrRFV_R4glcrRAFT_VCXFN_RRFY_FY_:
 nop
@@ -263,22 +263,22 @@
 b__MAX7naqebvq8uneqjner9xrlznfgre4I4_016NhgubevmngvbaFrg11TrgGntPbhagRAF2_3GntR:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner9xrlznfgre4I4_011pbclNhguGntVYAF2_3GntR536870913RRRiCX21fgnpx_fg_NFA1_VAGRTREAF2_8GlcrqGntVYAF2_7GntGlcrR536870912RKG_RRRCAF2_16NhgubevmngvbaFrgR
+.weak b__MA7naqebvq8uneqjner9xrlznfgre4I4_011pbclNhguGntVYAF2_3GntR536870913RRRiCX21fgnpx_fg_NFA1_VAGRTREAF2_8GlcrqGntVYAF2_7GntGlcrR536870912RKG_RRRCAF2_16NhgubevmngvbaFrgR
 .type b__MA7naqebvq8uneqjner9xrlznfgre4I4_011pbclNhguGntVYAF2_3GntR536870913RRRiCX21fgnpx_fg_NFA1_VAGRTREAF2_8GlcrqGntVYAF2_7GntGlcrR536870912RKG_RRRCAF2_16NhgubevmngvbaFrgR,%function
 b__MA7naqebvq8uneqjner9xrlznfgre4I4_011pbclNhguGntVYAF2_3GntR536870913RRRiCX21fgnpx_fg_NFA1_VAGRTREAF2_8GlcrqGntVYAF2_7GntGlcrR536870912RKG_RRRCAF2_16NhgubevmngvbaFrgR:
 nop
 .text
-.globl b__MAFg3__118__vafregvba_fbeg_3VECSoEXA7naqebvq8uneqjner9xrlznfgre4I4_012XrlCnenzrgreRF7_RCF5_RRiG0_FP_G_
+.weak b__MAFg3__118__vafregvba_fbeg_3VECSoEXA7naqebvq8uneqjner9xrlznfgre4I4_012XrlCnenzrgreRF7_RCF5_RRiG0_FP_G_
 .type b__MAFg3__118__vafregvba_fbeg_3VECSoEXA7naqebvq8uneqjner9xrlznfgre4I4_012XrlCnenzrgreRF7_RCF5_RRiG0_FP_G_,%function
 b__MAFg3__118__vafregvba_fbeg_3VECSoEXA7naqebvq8uneqjner9xrlznfgre4I4_012XrlCnenzrgreRF7_RCF5_RRiG0_FP_G_:
 nop
 .text
-.globl b__MAFg3__110__shapgvba6__shapVMA7naqebvq8uneqjner9xrlznfgre4I4_07fhccbeg16rahzrengrQrivprfVAF6_10Xrlznfgre4RRRAF_6irpgbeVAF_10havdhr_cgeVAF6_9XrlznfgreRAF_14qrsnhyg_qryrgrVFO_RRRRAF_9nyybpngbeVFR_RRRREXAF2_2fcVAF2_4uvqy7znantre4I1_215VFreivprZnantreRRRRHyEXAF3_8uvqy_irpVAF3_11uvqy_fgevatRRRR_AFS_VFI_RRSiFH_RRpyRFH_
+.weak b__MAFg3__110__shapgvba6__shapVMA7naqebvq8uneqjner9xrlznfgre4I4_07fhccbeg16rahzrengrQrivprfVAF6_10Xrlznfgre4RRRAF_6irpgbeVAF_10havdhr_cgeVAF6_9XrlznfgreRAF_14qrsnhyg_qryrgrVFO_RRRRAF_9nyybpngbeVFR_RRRREXAF2_2fcVAF2_4uvqy7znantre4I1_215VFreivprZnantreRRRRHyEXAF3_8uvqy_irpVAF3_11uvqy_fgevatRRRR_AFS_VFI_RRSiFH_RRpyRFH_
 .type b__MAFg3__110__shapgvba6__shapVMA7naqebvq8uneqjner9xrlznfgre4I4_07fhccbeg16rahzrengrQrivprfVAF6_10Xrlznfgre4RRRAF_6irpgbeVAF_10havdhr_cgeVAF6_9XrlznfgreRAF_14qrsnhyg_qryrgrVFO_RRRRAF_9nyybpngbeVFR_RRRREXAF2_2fcVAF2_4uvqy7znantre4I1_215VFreivprZnantreRRRRHyEXAF3_8uvqy_irpVAF3_11uvqy_fgevatRRRR_AFS_VFI_RRSiFH_RRpyRFH_,%function
 b__MAFg3__110__shapgvba6__shapVMA7naqebvq8uneqjner9xrlznfgre4I4_07fhccbeg16rahzrengrQrivprfVAF6_10Xrlznfgre4RRRAF_6irpgbeVAF_10havdhr_cgeVAF6_9XrlznfgreRAF_14qrsnhyg_qryrgrVFO_RRRRAF_9nyybpngbeVFR_RRRREXAF2_2fcVAF2_4uvqy7znantre4I1_215VFreivprZnantreRRRRHyEXAF3_8uvqy_irpVAF3_11uvqy_fgevatRRRR_AFS_VFI_RRSiFH_RRpyRFH_:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_10havdhr_cgeVA7naqebvq8uneqjner9xrlznfgre4I4_07fhccbeg9XrlznfgreRAF_14qrsnhyg_qryrgrVF7_RRRRAF_9nyybpngbeVFN_RRR21__chfu_onpx_fybj_cnguVFN_RRiBG_
+.weak b__MAFg3__16irpgbeVAF_10havdhr_cgeVA7naqebvq8uneqjner9xrlznfgre4I4_07fhccbeg9XrlznfgreRAF_14qrsnhyg_qryrgrVF7_RRRRAF_9nyybpngbeVFN_RRR21__chfu_onpx_fybj_cnguVFN_RRiBG_
 .type b__MAFg3__16irpgbeVAF_10havdhr_cgeVA7naqebvq8uneqjner9xrlznfgre4I4_07fhccbeg9XrlznfgreRAF_14qrsnhyg_qryrgrVF7_RRRRAF_9nyybpngbeVFN_RRR21__chfu_onpx_fybj_cnguVFN_RRiBG_,%function
 b__MAFg3__16irpgbeVAF_10havdhr_cgeVA7naqebvq8uneqjner9xrlznfgre4I4_07fhccbeg9XrlznfgreRAF_14qrsnhyg_qryrgrVF7_RRRRAF_9nyybpngbeVFN_RRR21__chfu_onpx_fybj_cnguVFN_RRiBG_:
 nop
@@ -308,12 +308,12 @@
 b__MA7naqebvq8uneqjner9xrlznfgre4I4_016NhgubevmngvbaFrg11QrfrevnyvmrRCAFg3__113onfvp_vfgernzVpAF4_11pune_genvgfVpRRRR:
 nop
 .text
-.globl b__MAXFg3__110__shapgvba6__shapVMA7naqebvq8uneqjner9xrlznfgre4I4_07fhccbeg16rahzrengrQrivprfVAF6_10Xrlznfgre4RRRAF_6irpgbeVAF_10havdhr_cgeVAF6_9XrlznfgreRAF_14qrsnhyg_qryrgrVFO_RRRRAF_9nyybpngbeVFR_RRRREXAF2_2fcVAF2_4uvqy7znantre4I1_215VFreivprZnantreRRRRHyEXAF3_8uvqy_irpVAF3_11uvqy_fgevatRRRR_AFS_VFI_RRSiFH_RR7__pybarRi
+.weak b__MAXFg3__110__shapgvba6__shapVMA7naqebvq8uneqjner9xrlznfgre4I4_07fhccbeg16rahzrengrQrivprfVAF6_10Xrlznfgre4RRRAF_6irpgbeVAF_10havdhr_cgeVAF6_9XrlznfgreRAF_14qrsnhyg_qryrgrVFO_RRRRAF_9nyybpngbeVFR_RRRREXAF2_2fcVAF2_4uvqy7znantre4I1_215VFreivprZnantreRRRRHyEXAF3_8uvqy_irpVAF3_11uvqy_fgevatRRRR_AFS_VFI_RRSiFH_RR7__pybarRi
 .type b__MAXFg3__110__shapgvba6__shapVMA7naqebvq8uneqjner9xrlznfgre4I4_07fhccbeg16rahzrengrQrivprfVAF6_10Xrlznfgre4RRRAF_6irpgbeVAF_10havdhr_cgeVAF6_9XrlznfgreRAF_14qrsnhyg_qryrgrVFO_RRRRAF_9nyybpngbeVFR_RRRREXAF2_2fcVAF2_4uvqy7znantre4I1_215VFreivprZnantreRRRRHyEXAF3_8uvqy_irpVAF3_11uvqy_fgevatRRRR_AFS_VFI_RRSiFH_RR7__pybarRi,%function
 b__MAXFg3__110__shapgvba6__shapVMA7naqebvq8uneqjner9xrlznfgre4I4_07fhccbeg16rahzrengrQrivprfVAF6_10Xrlznfgre4RRRAF_6irpgbeVAF_10havdhr_cgeVAF6_9XrlznfgreRAF_14qrsnhyg_qryrgrVFO_RRRRAF_9nyybpngbeVFR_RRRREXAF2_2fcVAF2_4uvqy7znantre4I1_215VFreivprZnantreRRRRHyEXAF3_8uvqy_irpVAF3_11uvqy_fgevatRRRR_AFS_VFI_RRSiFH_RR7__pybarRi:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq8uneqjner9xrlznfgre4I4_021UznpFunevatCnenzrgrefRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVEXF5_RRiBG_
+.weak b__MAFg3__16irpgbeVA7naqebvq8uneqjner9xrlznfgre4I4_021UznpFunevatCnenzrgrefRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVEXF5_RRiBG_
 .type b__MAFg3__16irpgbeVA7naqebvq8uneqjner9xrlznfgre4I4_021UznpFunevatCnenzrgrefRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVEXF5_RRiBG_,%function
 b__MAFg3__16irpgbeVA7naqebvq8uneqjner9xrlznfgre4I4_021UznpFunevatCnenzrgrefRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVEXF5_RRiBG_:
 nop
@@ -338,7 +338,7 @@
 b__MA7naqebvq8uneqjner9xrlznfgre4I4_023NhgubevmngvbaFrgOhvyqre22GevcyrQrfRapelcgvbaXrlRw:
 nop
 .data
-.globl b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR16_AF_13onfvp_bfgernzVpF2_RR
+.weak b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR16_AF_13onfvp_bfgernzVpF2_RR
 .type b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR16_AF_13onfvp_bfgernzVpF2_RR,%object
 b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR16_AF_13onfvp_bfgernzVpF2_RR:
 .space __SIZEOF_POINTER__
@@ -378,12 +378,12 @@
 b__MA7naqebvq8uneqjner9xrlznfgre4I4_07fhccbeg10Xrlznfgre313qryrgrNyyXrlfRi:
 nop
 .data
-.globl b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_13onfvp_vfgernzVpF2_RR
+.weak b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_13onfvp_vfgernzVpF2_RR
 .type b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_13onfvp_vfgernzVpF2_RR,%object
 b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_13onfvp_vfgernzVpF2_RR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_14onfvp_vbfgernzVpF2_RR
+.weak b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_14onfvp_vbfgernzVpF2_RR
 .type b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_14onfvp_vbfgernzVpF2_RR,%object
 b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_14onfvp_vbfgernzVpF2_RR:
 .space __SIZEOF_POINTER__
@@ -398,7 +398,7 @@
 b__MA7naqebvq8uneqjner9xrlznfgre4I4_023NhgubevmngvbaFrgOhvyqre12GevcyrQrfXrlRw:
 nop
 .text
-.globl b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR8biresybjRv
+.weak b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR8biresybjRv
 .type b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR8biresybjRv,%function
 b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR8biresybjRv:
 nop
@@ -408,17 +408,17 @@
 b__MA7naqebvq8uneqjner9xrlznfgre4I4_07fhccbegyfREAFg3__113onfvp_bfgernzVpAF4_11pune_genvgfVpRRRREXAF3_9XrlznfgreR:
 nop
 .text
-.globl b__MAFg3__16__fbegVEAF_6__yrffVA7naqebvq8uneqjner9xrlznfgre4I4_021UznpFunevatCnenzrgrefRF6_RRCF6_RRiG0_FN_G_
+.weak b__MAFg3__16__fbegVEAF_6__yrffVA7naqebvq8uneqjner9xrlznfgre4I4_021UznpFunevatCnenzrgrefRF6_RRCF6_RRiG0_FN_G_
 .type b__MAFg3__16__fbegVEAF_6__yrffVA7naqebvq8uneqjner9xrlznfgre4I4_021UznpFunevatCnenzrgrefRF6_RRCF6_RRiG0_FN_G_,%function
 b__MAFg3__16__fbegVEAF_6__yrffVA7naqebvq8uneqjner9xrlznfgre4I4_021UznpFunevatCnenzrgrefRF6_RRCF6_RRiG0_FN_G_:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner9xrlznfgre4I4_07fhccbeg16rahzrengrQrivprfVAF3_10Xrlznfgre3RRRAFg3__16irpgbeVAF6_10havdhr_cgeVAF3_9XrlznfgreRAF6_14qrsnhyg_qryrgrVF9_RRRRAF6_9nyybpngbeVFP_RRRREXAF_2fcVAF_4uvqy7znantre4I1_215VFreivprZnantreRRR
+.weak b__MA7naqebvq8uneqjner9xrlznfgre4I4_07fhccbeg16rahzrengrQrivprfVAF3_10Xrlznfgre3RRRAFg3__16irpgbeVAF6_10havdhr_cgeVAF3_9XrlznfgreRAF6_14qrsnhyg_qryrgrVF9_RRRRAF6_9nyybpngbeVFP_RRRREXAF_2fcVAF_4uvqy7znantre4I1_215VFreivprZnantreRRR
 .type b__MA7naqebvq8uneqjner9xrlznfgre4I4_07fhccbeg16rahzrengrQrivprfVAF3_10Xrlznfgre3RRRAFg3__16irpgbeVAF6_10havdhr_cgeVAF3_9XrlznfgreRAF6_14qrsnhyg_qryrgrVF9_RRRRAF6_9nyybpngbeVFP_RRRREXAF_2fcVAF_4uvqy7znantre4I1_215VFreivprZnantreRRR,%function
 b__MA7naqebvq8uneqjner9xrlznfgre4I4_07fhccbeg16rahzrengrQrivprfVAF3_10Xrlznfgre3RRRAFg3__16irpgbeVAF6_10havdhr_cgeVAF3_9XrlznfgreRAF6_14qrsnhyg_qryrgrVF9_RRRRAF6_9nyybpngbeVFP_RRRREXAF_2fcVAF_4uvqy7znantre4I1_215VFreivprZnantreRRR:
 nop
 .text
-.globl b__MAFg3__110__shapgvba6__shapVMA7naqebvq8uneqjner9xrlznfgre4I4_07fhccbeg16rahzrengrQrivprfVAF6_10Xrlznfgre3RRRAF_6irpgbeVAF_10havdhr_cgeVAF6_9XrlznfgreRAF_14qrsnhyg_qryrgrVFO_RRRRAF_9nyybpngbeVFR_RRRREXAF2_2fcVAF2_4uvqy7znantre4I1_215VFreivprZnantreRRRRHyEXAF3_8uvqy_irpVAF3_11uvqy_fgevatRRRR_AFS_VFI_RRSiFH_RRpyRFH_
+.weak b__MAFg3__110__shapgvba6__shapVMA7naqebvq8uneqjner9xrlznfgre4I4_07fhccbeg16rahzrengrQrivprfVAF6_10Xrlznfgre3RRRAF_6irpgbeVAF_10havdhr_cgeVAF6_9XrlznfgreRAF_14qrsnhyg_qryrgrVFO_RRRRAF_9nyybpngbeVFR_RRRREXAF2_2fcVAF2_4uvqy7znantre4I1_215VFreivprZnantreRRRRHyEXAF3_8uvqy_irpVAF3_11uvqy_fgevatRRRR_AFS_VFI_RRSiFH_RRpyRFH_
 .type b__MAFg3__110__shapgvba6__shapVMA7naqebvq8uneqjner9xrlznfgre4I4_07fhccbeg16rahzrengrQrivprfVAF6_10Xrlznfgre3RRRAF_6irpgbeVAF_10havdhr_cgeVAF6_9XrlznfgreRAF_14qrsnhyg_qryrgrVFO_RRRRAF_9nyybpngbeVFR_RRRREXAF2_2fcVAF2_4uvqy7znantre4I1_215VFreivprZnantreRRRRHyEXAF3_8uvqy_irpVAF3_11uvqy_fgevatRRRR_AFS_VFI_RRSiFH_RRpyRFH_,%function
 b__MAFg3__110__shapgvba6__shapVMA7naqebvq8uneqjner9xrlznfgre4I4_07fhccbeg16rahzrengrQrivprfVAF6_10Xrlznfgre3RRRAF_6irpgbeVAF_10havdhr_cgeVAF6_9XrlznfgreRAF_14qrsnhyg_qryrgrVFO_RRRRAF_9nyybpngbeVFR_RRRREXAF2_2fcVAF2_4uvqy7znantre4I1_215VFreivprZnantreRRRRHyEXAF3_8uvqy_irpVAF3_11uvqy_fgevatRRRR_AFS_VFI_RRSiFH_RRpyRFH_:
 nop
@@ -433,12 +433,12 @@
 b__MA7naqebvq8uneqjner9xrlznfgre4I4_019cnefr_ebbg_bs_gehfgRCXuzCAF0_8uvqy_irpVuRRCAF2_25xrlznfgre_irevsvrq_obbg_gRCoF7_:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq8uneqjner9xrlznfgre4I4_012XrlCnenzrgreRAF_9nyybpngbeVF5_RRR8__nccraqRz
+.weak b__MAFg3__16irpgbeVA7naqebvq8uneqjner9xrlznfgre4I4_012XrlCnenzrgreRAF_9nyybpngbeVF5_RRR8__nccraqRz
 .type b__MAFg3__16irpgbeVA7naqebvq8uneqjner9xrlznfgre4I4_012XrlCnenzrgreRAF_9nyybpngbeVF5_RRR8__nccraqRz,%function
 b__MAFg3__16irpgbeVA7naqebvq8uneqjner9xrlznfgre4I4_012XrlCnenzrgreRAF_9nyybpngbeVF5_RRR8__nccraqRz:
 nop
 .data
-.globl b__MGIA7naqebvq8uneqjner9xrlznfgre4I4_07fhccbeg10Xrlznfgre4R
+.weak b__MGIA7naqebvq8uneqjner9xrlznfgre4I4_07fhccbeg10Xrlznfgre4R
 .type b__MGIA7naqebvq8uneqjner9xrlznfgre4I4_07fhccbeg10Xrlznfgre4R,%object
 b__MGIA7naqebvq8uneqjner9xrlznfgre4I4_07fhccbeg10Xrlznfgre4R:
 .space __SIZEOF_POINTER__
@@ -458,17 +458,17 @@
 b__MA7naqebvq8uneqjner9xrlznfgre4I4_09frevnyvmrREAF2_10BhgFgernzfREXAF2_12XrlCnenzrgreR:
 nop
 .text
-.globl b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9conpxsnvyRv
+.weak b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9conpxsnvyRv
 .type b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9conpxsnvyRv,%function
 b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9conpxsnvyRv:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq8uneqjner9xrlznfgre4I4_012XrlCnenzrgreRAF_9nyybpngbeVF5_RRR26__fjnc_bhg_pvephyne_ohssreREAF_14__fcyvg_ohssreVF5_EF7_RRCF5_
+.weak b__MAFg3__16irpgbeVA7naqebvq8uneqjner9xrlznfgre4I4_012XrlCnenzrgreRAF_9nyybpngbeVF5_RRR26__fjnc_bhg_pvephyne_ohssreREAF_14__fcyvg_ohssreVF5_EF7_RRCF5_
 .type b__MAFg3__16irpgbeVA7naqebvq8uneqjner9xrlznfgre4I4_012XrlCnenzrgreRAF_9nyybpngbeVF5_RRR26__fjnc_bhg_pvephyne_ohssreREAF_14__fcyvg_ohssreVF5_EF7_RRCF5_,%function
 b__MAFg3__16irpgbeVA7naqebvq8uneqjner9xrlznfgre4I4_012XrlCnenzrgreRAF_9nyybpngbeVF5_RRR26__fjnc_bhg_pvephyne_ohssreREAF_14__fcyvg_ohssreVF5_EF7_RRCF5_:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq8uneqjner9xrlznfgre4I4_012XrlCnenzrgreRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_
+.weak b__MAFg3__16irpgbeVA7naqebvq8uneqjner9xrlznfgre4I4_012XrlCnenzrgreRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_
 .type b__MAFg3__16irpgbeVA7naqebvq8uneqjner9xrlznfgre4I4_012XrlCnenzrgreRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_,%function
 b__MAFg3__16irpgbeVA7naqebvq8uneqjner9xrlznfgre4I4_012XrlCnenzrgreRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_:
 nop
@@ -478,17 +478,17 @@
 b__MA7naqebvq8uneqjner9xrlznfgre4I4_09frevnyvmrREAFg3__113onfvp_bfgernzVpAF3_11pune_genvgfVpRRRREXAF3_6irpgbeVAF2_12XrlCnenzrgreRAF3_9nyybpngbeVFN_RRRR:
 nop
 .text
-.globl b__MAFg3__127__vafregvba_fbeg_vapbzcyrgrVECSoEXA7naqebvq8uneqjner9xrlznfgre4I4_012XrlCnenzrgreRF7_RCF5_RRoG0_FP_G_
+.weak b__MAFg3__127__vafregvba_fbeg_vapbzcyrgrVECSoEXA7naqebvq8uneqjner9xrlznfgre4I4_012XrlCnenzrgreRF7_RCF5_RRoG0_FP_G_
 .type b__MAFg3__127__vafregvba_fbeg_vapbzcyrgrVECSoEXA7naqebvq8uneqjner9xrlznfgre4I4_012XrlCnenzrgreRF7_RCF5_RRoG0_FP_G_,%function
 b__MAFg3__127__vafregvba_fbeg_vapbzcyrgrVECSoEXA7naqebvq8uneqjner9xrlznfgre4I4_012XrlCnenzrgreRF7_RCF5_RRoG0_FP_G_:
 nop
 .data
-.globl b__MGPAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_13onfvp_bfgernzVpF2_RR
+.weak b__MGPAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_13onfvp_bfgernzVpF2_RR
 .type b__MGPAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_13onfvp_bfgernzVpF2_RR,%object
 b__MGPAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_13onfvp_bfgernzVpF2_RR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
+.weak b__MGIAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
 .type b__MGIAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR,%object
 b__MGIAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR:
 .space __SIZEOF_POINTER__
@@ -528,17 +528,17 @@
 b__MA7naqebvq8uneqjner9xrlznfgre4I4_023NhgubevmngvbaFrgOhvyqre16TpzZbqrZvaZnpYraRw:
 nop
 .data
-.globl b__MGPA7naqebvq8uneqjner9xrlznfgre4I4_07fhccbeg10Xrlznfgre4R0_AF3_9XrlznfgreR
+.weak b__MGPA7naqebvq8uneqjner9xrlznfgre4I4_07fhccbeg10Xrlznfgre4R0_AF3_9XrlznfgreR
 .type b__MGPA7naqebvq8uneqjner9xrlznfgre4I4_07fhccbeg10Xrlznfgre4R0_AF3_9XrlznfgreR,%object
 b__MGPA7naqebvq8uneqjner9xrlznfgre4I4_07fhccbeg10Xrlznfgre4R0_AF3_9XrlznfgreR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq8uneqjner9xrlznfgre4I4_011pbclNhguGntVYAF2_3GntR1610613136RRRiCX14nfa1_fgevat_fgAF2_8GlcrqGntVYAF2_7GntGlcrR1610612736RKG_RRRCAF2_16NhgubevmngvbaFrgR
+.weak b__MA7naqebvq8uneqjner9xrlznfgre4I4_011pbclNhguGntVYAF2_3GntR1610613136RRRiCX14nfa1_fgevat_fgAF2_8GlcrqGntVYAF2_7GntGlcrR1610612736RKG_RRRCAF2_16NhgubevmngvbaFrgR
 .type b__MA7naqebvq8uneqjner9xrlznfgre4I4_011pbclNhguGntVYAF2_3GntR1610613136RRRiCX14nfa1_fgevat_fgAF2_8GlcrqGntVYAF2_7GntGlcrR1610612736RKG_RRRCAF2_16NhgubevmngvbaFrgR,%function
 b__MA7naqebvq8uneqjner9xrlznfgre4I4_011pbclNhguGntVYAF2_3GntR1610613136RRRiCX14nfa1_fgevat_fgAF2_8GlcrqGntVYAF2_7GntGlcrR1610612736RKG_RRRCAF2_16NhgubevmngvbaFrgR:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner9xrlznfgre4I4_011pbclNhguGntVYAF2_3GntR1610613138RRRiCX14nfa1_fgevat_fgAF2_8GlcrqGntVYAF2_7GntGlcrR1610612736RKG_RRRCAF2_16NhgubevmngvbaFrgR
+.weak b__MA7naqebvq8uneqjner9xrlznfgre4I4_011pbclNhguGntVYAF2_3GntR1610613138RRRiCX14nfa1_fgevat_fgAF2_8GlcrqGntVYAF2_7GntGlcrR1610612736RKG_RRRCAF2_16NhgubevmngvbaFrgR
 .type b__MA7naqebvq8uneqjner9xrlznfgre4I4_011pbclNhguGntVYAF2_3GntR1610613138RRRiCX14nfa1_fgevat_fgAF2_8GlcrqGntVYAF2_7GntGlcrR1610612736RKG_RRRCAF2_16NhgubevmngvbaFrgR,%function
 b__MA7naqebvq8uneqjner9xrlznfgre4I4_011pbclNhguGntVYAF2_3GntR1610613138RRRiCX14nfa1_fgevat_fgAF2_8GlcrqGntVYAF2_7GntGlcrR1610612736RKG_RRRCAF2_16NhgubevmngvbaFrgR:
 nop
@@ -548,7 +548,7 @@
 b__MA7naqebvq8uneqjner9xrlznfgre4I4_023NhgubevmngvbaFrgOhvyqre6NrfXrlRw:
 nop
 .text
-.globl b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9haqresybjRi
+.weak b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9haqresybjRi
 .type b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9haqresybjRi,%function
 b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9haqresybjRi:
 nop
@@ -568,7 +568,7 @@
 b__MGPA7naqebvq8uneqjner9xrlznfgre4I4_07fhccbeg10Xrlznfgre3R0_AF3_9XrlznfgreR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq8uneqjner9xrlznfgre4I4_011pbclNhguGntVYAF2_3GntR1342177480RRRiCX14nfa1_fgevat_fgAF2_8GlcrqGntVYAF2_7GntGlcrR1342177280RKG_RRRCAF2_16NhgubevmngvbaFrgR
+.weak b__MA7naqebvq8uneqjner9xrlznfgre4I4_011pbclNhguGntVYAF2_3GntR1342177480RRRiCX14nfa1_fgevat_fgAF2_8GlcrqGntVYAF2_7GntGlcrR1342177280RKG_RRRCAF2_16NhgubevmngvbaFrgR
 .type b__MA7naqebvq8uneqjner9xrlznfgre4I4_011pbclNhguGntVYAF2_3GntR1342177480RRRiCX14nfa1_fgevat_fgAF2_8GlcrqGntVYAF2_7GntGlcrR1342177280RKG_RRRCAF2_16NhgubevmngvbaFrgR,%function
 b__MA7naqebvq8uneqjner9xrlznfgre4I4_011pbclNhguGntVYAF2_3GntR1342177480RRRiCX14nfa1_fgevat_fgAF2_8GlcrqGntVYAF2_7GntGlcrR1342177280RKG_RRRCAF2_16NhgubevmngvbaFrgR:
 nop
@@ -578,7 +578,7 @@
 b__MA7naqebvq8uneqjner9xrlznfgre4I4_016XZ_NHGU_YVFG_arjRi:
 nop
 .text
-.globl b__MAFg3__124__chg_punenpgre_frdhraprVpAF_11pune_genvgfVpRRRREAF_13onfvp_bfgernzVG_G0_RRF7_CXF4_z
+.weak b__MAFg3__124__chg_punenpgre_frdhraprVpAF_11pune_genvgfVpRRRREAF_13onfvp_bfgernzVG_G0_RRF7_CXF4_z
 .type b__MAFg3__124__chg_punenpgre_frdhraprVpAF_11pune_genvgfVpRRRREAF_13onfvp_bfgernzVG_G0_RRF7_CXF4_z,%function
 b__MAFg3__124__chg_punenpgre_frdhraprVpAF_11pune_genvgfVpRRRREAF_13onfvp_bfgernzVG_G0_RRF7_CXF4_z:
 nop
@@ -593,22 +593,22 @@
 b__MA7naqebvq8uneqjner9xrlznfgre4I4_023NhgubevmngvbaFrgOhvyqre15RpqfnFvtavatXrlRAF2_7RpPheirR:
 nop
 .text
-.globl b__MAFg3__16__fbegVECSoEXA7naqebvq8uneqjner9xrlznfgre4I4_012XrlCnenzrgreRF7_RCF5_RRiG0_FP_G_
+.weak b__MAFg3__16__fbegVECSoEXA7naqebvq8uneqjner9xrlznfgre4I4_012XrlCnenzrgreRF7_RCF5_RRiG0_FP_G_
 .type b__MAFg3__16__fbegVECSoEXA7naqebvq8uneqjner9xrlznfgre4I4_012XrlCnenzrgreRF7_RCF5_RRiG0_FP_G_,%function
 b__MAFg3__16__fbegVECSoEXA7naqebvq8uneqjner9xrlznfgre4I4_012XrlCnenzrgreRF7_RCF5_RRiG0_FP_G_:
 nop
 .data
-.globl b__MGIAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
+.weak b__MGIAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
 .type b__MGIAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR,%object
 b__MGIAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
+.weak b__MGIAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
 .type b__MGIAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR,%object
 b__MGIAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__110__shapgvba6__shapVMA7naqebvq8uneqjner9xrlznfgre4I4_07fhccbeg16rahzrengrQrivprfVAF6_10Xrlznfgre3RRRAF_6irpgbeVAF_10havdhr_cgeVAF6_9XrlznfgreRAF_14qrsnhyg_qryrgrVFO_RRRRAF_9nyybpngbeVFR_RRRREXAF2_2fcVAF2_4uvqy7znantre4I1_215VFreivprZnantreRRRRHyEXAF3_8uvqy_irpVAF3_11uvqy_fgevatRRRR_AFS_VFI_RRSiFH_RR18qrfgebl_qrnyybpngrRi
+.weak b__MAFg3__110__shapgvba6__shapVMA7naqebvq8uneqjner9xrlznfgre4I4_07fhccbeg16rahzrengrQrivprfVAF6_10Xrlznfgre3RRRAF_6irpgbeVAF_10havdhr_cgeVAF6_9XrlznfgreRAF_14qrsnhyg_qryrgrVFO_RRRRAF_9nyybpngbeVFR_RRRREXAF2_2fcVAF2_4uvqy7znantre4I1_215VFreivprZnantreRRRRHyEXAF3_8uvqy_irpVAF3_11uvqy_fgevatRRRR_AFS_VFI_RRSiFH_RR18qrfgebl_qrnyybpngrRi
 .type b__MAFg3__110__shapgvba6__shapVMA7naqebvq8uneqjner9xrlznfgre4I4_07fhccbeg16rahzrengrQrivprfVAF6_10Xrlznfgre3RRRAF_6irpgbeVAF_10havdhr_cgeVAF6_9XrlznfgreRAF_14qrsnhyg_qryrgrVFO_RRRRAF_9nyybpngbeVFR_RRRREXAF2_2fcVAF2_4uvqy7znantre4I1_215VFreivprZnantreRRRRHyEXAF3_8uvqy_irpVAF3_11uvqy_fgevatRRRR_AFS_VFI_RRSiFH_RR18qrfgebl_qrnyybpngrRi,%function
 b__MAFg3__110__shapgvba6__shapVMA7naqebvq8uneqjner9xrlznfgre4I4_07fhccbeg16rahzrengrQrivprfVAF6_10Xrlznfgre3RRRAF_6irpgbeVAF_10havdhr_cgeVAF6_9XrlznfgreRAF_14qrsnhyg_qryrgrVFO_RRRRAF_9nyybpngbeVFR_RRRREXAF2_2fcVAF2_4uvqy7znantre4I1_215VFreivprZnantreRRRRHyEXAF3_8uvqy_irpVAF3_11uvqy_fgevatRRRR_AFS_VFI_RRSiFH_RR18qrfgebl_qrnyybpngrRi:
 nop
@@ -628,7 +628,7 @@
 b__MAX7naqebvq8uneqjner9xrlznfgre4I4_016NhgubevmngvbaFrg8TrgRagelRAF2_3GntR:
 nop
 .text
-.globl b__MAFg3__17__fbeg4VECSoEXA7naqebvq8uneqjner9xrlznfgre4I4_012XrlCnenzrgreRF7_RCF5_RRwG0_FP_FP_FP_G_
+.weak b__MAFg3__17__fbeg4VECSoEXA7naqebvq8uneqjner9xrlznfgre4I4_012XrlCnenzrgreRF7_RCF5_RRwG0_FP_FP_FP_G_
 .type b__MAFg3__17__fbeg4VECSoEXA7naqebvq8uneqjner9xrlznfgre4I4_012XrlCnenzrgreRF7_RCF5_RRwG0_FP_FP_FP_G_,%function
 b__MAFg3__17__fbeg4VECSoEXA7naqebvq8uneqjner9xrlznfgre4I4_012XrlCnenzrgreRF7_RCF5_RRwG0_FP_FP_FP_G_:
 nop
@@ -638,12 +638,12 @@
 b__MA7naqebvq8uneqjner9xrlznfgre4I4_023NhgubevmngvbaFrgOhvyqre7UznpXrlRw:
 nop
 .text
-.globl b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR3fgeREXAF_12onfvp_fgevatVpF2_F4_RR
+.weak b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR3fgeREXAF_12onfvp_fgevatVpF2_F4_RR
 .type b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR3fgeREXAF_12onfvp_fgevatVpF2_F4_RR,%function
 b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR3fgeREXAF_12onfvp_fgevatVpF2_F4_RR:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq8uneqjner9xrlznfgre4I4_012XrlCnenzrgreRAF_9nyybpngbeVF5_RRR6vafregVAF_11__jenc_vgreVCXF5_RRRRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF5_AF_15vgrengbe_genvgfVFS_R9ersreraprRRR5inyhrRAFN_VCF5_RRR4glcrRFQ_FS_FS_
+.weak b__MAFg3__16irpgbeVA7naqebvq8uneqjner9xrlznfgre4I4_012XrlCnenzrgreRAF_9nyybpngbeVF5_RRR6vafregVAF_11__jenc_vgreVCXF5_RRRRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF5_AF_15vgrengbe_genvgfVFS_R9ersreraprRRR5inyhrRAFN_VCF5_RRR4glcrRFQ_FS_FS_
 .type b__MAFg3__16irpgbeVA7naqebvq8uneqjner9xrlznfgre4I4_012XrlCnenzrgreRAF_9nyybpngbeVF5_RRR6vafregVAF_11__jenc_vgreVCXF5_RRRRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF5_AF_15vgrengbe_genvgfVFS_R9ersreraprRRR5inyhrRAFN_VCF5_RRR4glcrRFQ_FS_FS_,%function
 b__MAFg3__16irpgbeVA7naqebvq8uneqjner9xrlznfgre4I4_012XrlCnenzrgreRAF_9nyybpngbeVF5_RRR6vafregVAF_11__jenc_vgreVCXF5_RRRRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF5_AF_15vgrengbe_genvgfVFS_R9ersreraprRRR5inyhrRAFN_VCF5_RRR4glcrRFQ_FS_FS_:
 nop
@@ -658,27 +658,27 @@
 b__MA7naqebvq8uneqjner9xrlznfgre4I4_07fhccbeg17uvqyIrp2NhguGbxraREXAF0_8uvqy_irpVuRR:
 nop
 .text
-.globl b__MA7naqebvq8uneqjneryfVAF0_9xrlznfgre4I4_021UznpFunevatCnenzrgrefRRREAFg3__113onfvp_bfgernzVpAF5_11pune_genvgfVpRRRRFN_EXAF0_8uvqy_irpVG_RR
+.weak b__MA7naqebvq8uneqjneryfVAF0_9xrlznfgre4I4_021UznpFunevatCnenzrgrefRRREAFg3__113onfvp_bfgernzVpAF5_11pune_genvgfVpRRRRFN_EXAF0_8uvqy_irpVG_RR
 .type b__MA7naqebvq8uneqjneryfVAF0_9xrlznfgre4I4_021UznpFunevatCnenzrgrefRRREAFg3__113onfvp_bfgernzVpAF5_11pune_genvgfVpRRRRFN_EXAF0_8uvqy_irpVG_RR,%function
 b__MA7naqebvq8uneqjneryfVAF0_9xrlznfgre4I4_021UznpFunevatCnenzrgrefRRREAFg3__113onfvp_bfgernzVpAF5_11pune_genvgfVpRRRRFN_EXAF0_8uvqy_irpVG_RR:
 nop
 .text
-.globl b__MAFg3__17__fbeg4VEAF_6__yrffVA7naqebvq8uneqjner9xrlznfgre4I4_021UznpFunevatCnenzrgrefRF6_RRCF6_RRwG0_FN_FN_FN_G_
+.weak b__MAFg3__17__fbeg4VEAF_6__yrffVA7naqebvq8uneqjner9xrlznfgre4I4_021UznpFunevatCnenzrgrefRF6_RRCF6_RRwG0_FN_FN_FN_G_
 .type b__MAFg3__17__fbeg4VEAF_6__yrffVA7naqebvq8uneqjner9xrlznfgre4I4_021UznpFunevatCnenzrgrefRF6_RRCF6_RRwG0_FN_FN_FN_G_,%function
 b__MAFg3__17__fbeg4VEAF_6__yrffVA7naqebvq8uneqjner9xrlznfgre4I4_021UznpFunevatCnenzrgrefRF6_RRCF6_RRwG0_FN_FN_FN_G_:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner9xrlznfgre4I4_011pbclNhguGntVYAF2_3GntR536870917RRRiCX21fgnpx_fg_NFA1_VAGRTREAF2_8GlcrqGntVYAF2_7GntGlcrR536870912RKG_RRRCAF2_16NhgubevmngvbaFrgR
+.weak b__MA7naqebvq8uneqjner9xrlznfgre4I4_011pbclNhguGntVYAF2_3GntR536870917RRRiCX21fgnpx_fg_NFA1_VAGRTREAF2_8GlcrqGntVYAF2_7GntGlcrR536870912RKG_RRRCAF2_16NhgubevmngvbaFrgR
 .type b__MA7naqebvq8uneqjner9xrlznfgre4I4_011pbclNhguGntVYAF2_3GntR536870917RRRiCX21fgnpx_fg_NFA1_VAGRTREAF2_8GlcrqGntVYAF2_7GntGlcrR536870912RKG_RRRCAF2_16NhgubevmngvbaFrgR,%function
 b__MA7naqebvq8uneqjner9xrlznfgre4I4_011pbclNhguGntVYAF2_3GntR536870917RRRiCX21fgnpx_fg_NFA1_VAGRTREAF2_8GlcrqGntVYAF2_7GntGlcrR536870912RKG_RRRCAF2_16NhgubevmngvbaFrgR:
 nop
 .text
-.globl b__MAXFg3__110__shapgvba6__shapVMA7naqebvq8uneqjner9xrlznfgre4I4_07fhccbeg16rahzrengrQrivprfVAF6_10Xrlznfgre3RRRAF_6irpgbeVAF_10havdhr_cgeVAF6_9XrlznfgreRAF_14qrsnhyg_qryrgrVFO_RRRRAF_9nyybpngbeVFR_RRRREXAF2_2fcVAF2_4uvqy7znantre4I1_215VFreivprZnantreRRRRHyEXAF3_8uvqy_irpVAF3_11uvqy_fgevatRRRR_AFS_VFI_RRSiFH_RR7__pybarRCAF0_6__onfrVFK_RR
+.weak b__MAXFg3__110__shapgvba6__shapVMA7naqebvq8uneqjner9xrlznfgre4I4_07fhccbeg16rahzrengrQrivprfVAF6_10Xrlznfgre3RRRAF_6irpgbeVAF_10havdhr_cgeVAF6_9XrlznfgreRAF_14qrsnhyg_qryrgrVFO_RRRRAF_9nyybpngbeVFR_RRRREXAF2_2fcVAF2_4uvqy7znantre4I1_215VFreivprZnantreRRRRHyEXAF3_8uvqy_irpVAF3_11uvqy_fgevatRRRR_AFS_VFI_RRSiFH_RR7__pybarRCAF0_6__onfrVFK_RR
 .type b__MAXFg3__110__shapgvba6__shapVMA7naqebvq8uneqjner9xrlznfgre4I4_07fhccbeg16rahzrengrQrivprfVAF6_10Xrlznfgre3RRRAF_6irpgbeVAF_10havdhr_cgeVAF6_9XrlznfgreRAF_14qrsnhyg_qryrgrVFO_RRRRAF_9nyybpngbeVFR_RRRREXAF2_2fcVAF2_4uvqy7znantre4I1_215VFreivprZnantreRRRRHyEXAF3_8uvqy_irpVAF3_11uvqy_fgevatRRRR_AFS_VFI_RRSiFH_RR7__pybarRCAF0_6__onfrVFK_RR,%function
 b__MAXFg3__110__shapgvba6__shapVMA7naqebvq8uneqjner9xrlznfgre4I4_07fhccbeg16rahzrengrQrivprfVAF6_10Xrlznfgre3RRRAF_6irpgbeVAF_10havdhr_cgeVAF6_9XrlznfgreRAF_14qrsnhyg_qryrgrVFO_RRRRAF_9nyybpngbeVFR_RRRREXAF2_2fcVAF2_4uvqy7znantre4I1_215VFreivprZnantreRRRRHyEXAF3_8uvqy_irpVAF3_11uvqy_fgevatRRRR_AFS_VFI_RRSiFH_RR7__pybarRCAF0_6__onfrVFK_RR:
 nop
 .text
-.globl b__MAXFg3__110__shapgvba6__shapVMA7naqebvq8uneqjner9xrlznfgre4I4_07fhccbeg16rahzrengrQrivprfVAF6_10Xrlznfgre4RRRAF_6irpgbeVAF_10havdhr_cgeVAF6_9XrlznfgreRAF_14qrsnhyg_qryrgrVFO_RRRRAF_9nyybpngbeVFR_RRRREXAF2_2fcVAF2_4uvqy7znantre4I1_215VFreivprZnantreRRRRHyEXAF3_8uvqy_irpVAF3_11uvqy_fgevatRRRR_AFS_VFI_RRSiFH_RR7__pybarRCAF0_6__onfrVFK_RR
+.weak b__MAXFg3__110__shapgvba6__shapVMA7naqebvq8uneqjner9xrlznfgre4I4_07fhccbeg16rahzrengrQrivprfVAF6_10Xrlznfgre4RRRAF_6irpgbeVAF_10havdhr_cgeVAF6_9XrlznfgreRAF_14qrsnhyg_qryrgrVFO_RRRRAF_9nyybpngbeVFR_RRRREXAF2_2fcVAF2_4uvqy7znantre4I1_215VFreivprZnantreRRRRHyEXAF3_8uvqy_irpVAF3_11uvqy_fgevatRRRR_AFS_VFI_RRSiFH_RR7__pybarRCAF0_6__onfrVFK_RR
 .type b__MAXFg3__110__shapgvba6__shapVMA7naqebvq8uneqjner9xrlznfgre4I4_07fhccbeg16rahzrengrQrivprfVAF6_10Xrlznfgre4RRRAF_6irpgbeVAF_10havdhr_cgeVAF6_9XrlznfgreRAF_14qrsnhyg_qryrgrVFO_RRRRAF_9nyybpngbeVFR_RRRREXAF2_2fcVAF2_4uvqy7znantre4I1_215VFreivprZnantreRRRRHyEXAF3_8uvqy_irpVAF3_11uvqy_fgevatRRRR_AFS_VFI_RRSiFH_RR7__pybarRCAF0_6__onfrVFK_RR,%function
 b__MAXFg3__110__shapgvba6__shapVMA7naqebvq8uneqjner9xrlznfgre4I4_07fhccbeg16rahzrengrQrivprfVAF6_10Xrlznfgre4RRRAF_6irpgbeVAF_10havdhr_cgeVAF6_9XrlznfgreRAF_14qrsnhyg_qryrgrVFO_RRRRAF_9nyybpngbeVFR_RRRREXAF2_2fcVAF2_4uvqy7znantre4I1_215VFreivprZnantreRRRRHyEXAF3_8uvqy_irpVAF3_11uvqy_fgevatRRRR_AFS_VFI_RRSiFH_RR7__pybarRCAF0_6__onfrVFK_RR:
 nop
@@ -703,7 +703,7 @@
 b__MA7naqebvq8uneqjner9xrlznfgre4I4_07fhccbeg10Xrlznfgre35ortvaRAF2_10XrlChecbfrREXAF0_8uvqy_irpVuRREXAF6_VAF2_12XrlCnenzrgreRRREXAF2_17UneqjnerNhguGbxraRAFg3__18shapgvbaVSiAF2_9ReebePbqrRFQ_zRRR:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner9xrlznfgre4I4_011pbclNhguGntVYAF2_3GntR1610613437RRRiCX14nfa1_fgevat_fgAF2_8GlcrqGntVYAF2_7GntGlcrR1610612736RKG_RRRCAF2_16NhgubevmngvbaFrgR
+.weak b__MA7naqebvq8uneqjner9xrlznfgre4I4_011pbclNhguGntVYAF2_3GntR1610613437RRRiCX14nfa1_fgevat_fgAF2_8GlcrqGntVYAF2_7GntGlcrR1610612736RKG_RRRCAF2_16NhgubevmngvbaFrgR
 .type b__MA7naqebvq8uneqjner9xrlznfgre4I4_011pbclNhguGntVYAF2_3GntR1610613437RRRiCX14nfa1_fgevat_fgAF2_8GlcrqGntVYAF2_7GntGlcrR1610612736RKG_RRRCAF2_16NhgubevmngvbaFrgR,%function
 b__MA7naqebvq8uneqjner9xrlznfgre4I4_011pbclNhguGntVYAF2_3GntR1610613437RRRiCX14nfa1_fgevat_fgAF2_8GlcrqGntVYAF2_7GntGlcrR1610612736RKG_RRRCAF2_16NhgubevmngvbaFrgR:
 nop
@@ -728,7 +728,7 @@
 b__MAX7naqebvq8uneqjner9xrlznfgre4I4_016NhgubevmngvbaFrg9FrevnyvmrRCAFg3__113onfvp_bfgernzVpAF4_11pune_genvgfVpRRRR:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner9xrlznfgre4I4_07fhccbeg16rahzrengrQrivprfVAF3_10Xrlznfgre4RRRAFg3__16irpgbeVAF6_10havdhr_cgeVAF3_9XrlznfgreRAF6_14qrsnhyg_qryrgrVF9_RRRRAF6_9nyybpngbeVFP_RRRREXAF_2fcVAF_4uvqy7znantre4I1_215VFreivprZnantreRRR
+.weak b__MA7naqebvq8uneqjner9xrlznfgre4I4_07fhccbeg16rahzrengrQrivprfVAF3_10Xrlznfgre4RRRAFg3__16irpgbeVAF6_10havdhr_cgeVAF3_9XrlznfgreRAF6_14qrsnhyg_qryrgrVF9_RRRRAF6_9nyybpngbeVFP_RRRREXAF_2fcVAF_4uvqy7znantre4I1_215VFreivprZnantreRRR
 .type b__MA7naqebvq8uneqjner9xrlznfgre4I4_07fhccbeg16rahzrengrQrivprfVAF3_10Xrlznfgre4RRRAFg3__16irpgbeVAF6_10havdhr_cgeVAF3_9XrlznfgreRAF6_14qrsnhyg_qryrgrVF9_RRRRAF6_9nyybpngbeVFP_RRRREXAF_2fcVAF_4uvqy7znantre4I1_215VFreivprZnantreRRR,%function
 b__MA7naqebvq8uneqjner9xrlznfgre4I4_07fhccbeg16rahzrengrQrivprfVAF3_10Xrlznfgre4RRRAFg3__16irpgbeVAF6_10havdhr_cgeVAF3_9XrlznfgreRAF6_14qrsnhyg_qryrgrVF9_RRRRAF6_9nyybpngbeVFP_RRRREXAF_2fcVAF_4uvqy7znantre4I1_215VFreivprZnantreRRR:
 nop
@@ -743,12 +743,12 @@
 b__MA7naqebvq8uneqjner9xrlznfgre4I4_023NhgubevmngvbaFrgOhvyqre17AbQvtrfgBeCnqqvatRi:
 nop
 .text
-.globl b__MAFg3__17__fbeg3VEAF_6__yrffVA7naqebvq8uneqjner9xrlznfgre4I4_021UznpFunevatCnenzrgrefRF6_RRCF6_RRwG0_FN_FN_G_
+.weak b__MAFg3__17__fbeg3VEAF_6__yrffVA7naqebvq8uneqjner9xrlznfgre4I4_021UznpFunevatCnenzrgrefRF6_RRCF6_RRwG0_FN_FN_G_
 .type b__MAFg3__17__fbeg3VEAF_6__yrffVA7naqebvq8uneqjner9xrlznfgre4I4_021UznpFunevatCnenzrgrefRF6_RRCF6_RRwG0_FN_FN_G_,%function
 b__MAFg3__17__fbeg3VEAF_6__yrffVA7naqebvq8uneqjner9xrlznfgre4I4_021UznpFunevatCnenzrgrefRF6_RRCF6_RRwG0_FN_FN_G_:
 nop
 .data
-.globl b__MGIAFg3__110__shapgvba6__shapVMA7naqebvq8uneqjner9xrlznfgre4I4_07fhccbeg16rahzrengrQrivprfVAF6_10Xrlznfgre3RRRAF_6irpgbeVAF_10havdhr_cgeVAF6_9XrlznfgreRAF_14qrsnhyg_qryrgrVFO_RRRRAF_9nyybpngbeVFR_RRRREXAF2_2fcVAF2_4uvqy7znantre4I1_215VFreivprZnantreRRRRHyEXAF3_8uvqy_irpVAF3_11uvqy_fgevatRRRR_AFS_VFI_RRSiFH_RRR
+.weak b__MGIAFg3__110__shapgvba6__shapVMA7naqebvq8uneqjner9xrlznfgre4I4_07fhccbeg16rahzrengrQrivprfVAF6_10Xrlznfgre3RRRAF_6irpgbeVAF_10havdhr_cgeVAF6_9XrlznfgreRAF_14qrsnhyg_qryrgrVFO_RRRRAF_9nyybpngbeVFR_RRRREXAF2_2fcVAF2_4uvqy7znantre4I1_215VFreivprZnantreRRRRHyEXAF3_8uvqy_irpVAF3_11uvqy_fgevatRRRR_AFS_VFI_RRSiFH_RRR
 .type b__MGIAFg3__110__shapgvba6__shapVMA7naqebvq8uneqjner9xrlznfgre4I4_07fhccbeg16rahzrengrQrivprfVAF6_10Xrlznfgre3RRRAF_6irpgbeVAF_10havdhr_cgeVAF6_9XrlznfgreRAF_14qrsnhyg_qryrgrVFO_RRRRAF_9nyybpngbeVFR_RRRREXAF2_2fcVAF2_4uvqy7znantre4I1_215VFreivprZnantreRRRRHyEXAF3_8uvqy_irpVAF3_11uvqy_fgevatRRRR_AFS_VFI_RRSiFH_RRR,%object
 b__MGIAFg3__110__shapgvba6__shapVMA7naqebvq8uneqjner9xrlznfgre4I4_07fhccbeg16rahzrengrQrivprfVAF6_10Xrlznfgre3RRRAF_6irpgbeVAF_10havdhr_cgeVAF6_9XrlznfgreRAF_14qrsnhyg_qryrgrVFO_RRRRAF_9nyybpngbeVFR_RRRREXAF2_2fcVAF2_4uvqy7znantre4I1_215VFreivprZnantreRRRRHyEXAF3_8uvqy_irpVAF3_11uvqy_fgevatRRRR_AFS_VFI_RRSiFH_RRR:
 .space __SIZEOF_POINTER__
diff --git a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_110.S b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_110.S
index 1e1e0f5..9fb772a 100644
--- a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_110.S
+++ b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_110.S
@@ -103,7 +103,7 @@
 b__MA7naqebvq8frphevgl9xrlznfgre12RkcbegErfhygP1Ri:
 nop
 .text
-.globl b__MAX7naqebvq6Cnepry14ernqCneprynoyrVAF_8frphevgl9xrlznfgre25XrlNggrfgngvbaCnpxntrVasbRRRvCAFg3__110havdhr_cgeVG_AF5_14qrsnhyg_qryrgrVF7_RRRR
+.weak b__MAX7naqebvq6Cnepry14ernqCneprynoyrVAF_8frphevgl9xrlznfgre25XrlNggrfgngvbaCnpxntrVasbRRRvCAFg3__110havdhr_cgeVG_AF5_14qrsnhyg_qryrgrVF7_RRRR
 .type b__MAX7naqebvq6Cnepry14ernqCneprynoyrVAF_8frphevgl9xrlznfgre25XrlNggrfgngvbaCnpxntrVasbRRRvCAFg3__110havdhr_cgeVG_AF5_14qrsnhyg_qryrgrVF7_RRRR,%function
 b__MAX7naqebvq6Cnepry14ernqCneprynoyrVAF_8frphevgl9xrlznfgre25XrlNggrfgngvbaCnpxntrVasbRRRvCAFg3__110havdhr_cgeVG_AF5_14qrsnhyg_qryrgrVF7_RRRR:
 nop
@@ -223,7 +223,7 @@
 b__MA7naqebvq8frphevgl9xrlznfgre27XrlNggrfgngvbaNccyvpngvbaVqP1RAFg3__110havdhr_cgeVAF1_25XrlNggrfgngvbaCnpxntrVasbRAF3_14qrsnhyg_qryrgrVF5_RRRR:
 nop
 .text
-.globl b__MAX7naqebvq6Cnepry14ernqCneprynoyrVAF_7pbagrag2cz9FvtangherRRRvCAFg3__110havdhr_cgeVG_AF5_14qrsnhyg_qryrgrVF7_RRRR
+.weak b__MAX7naqebvq6Cnepry14ernqCneprynoyrVAF_7pbagrag2cz9FvtangherRRRvCAFg3__110havdhr_cgeVG_AF5_14qrsnhyg_qryrgrVF7_RRRR
 .type b__MAX7naqebvq6Cnepry14ernqCneprynoyrVAF_7pbagrag2cz9FvtangherRRRvCAFg3__110havdhr_cgeVG_AF5_14qrsnhyg_qryrgrVF7_RRRR,%function
 b__MAX7naqebvq6Cnepry14ernqCneprynoyrVAF_7pbagrag2cz9FvtangherRRRvCAFg3__110havdhr_cgeVG_AF5_14qrsnhyg_qryrgrVF7_RRRR:
 nop
diff --git a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_111.S b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_111.S
index a7e22f1..ace2448 100644
--- a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_111.S
+++ b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_111.S
@@ -3,7 +3,7 @@
 .data
 .p2align 4
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoR7ErfreirRv
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoR7ErfreirRv
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoR7ErfreirRv,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoR7ErfreirRv:
 nop
@@ -13,22 +13,22 @@
 b__MAX6tbbtyr8cebgbohs8vagreany12RkgrafvbaFrg8OlgrFvmrRi:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR7ErfreirRv
+.weak b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR7ErfreirRv
 .type b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR7ErfreirRv,%function
 b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR7ErfreirRv:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsR15HafnsrNeranFjncRCF2_
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsR15HafnsrNeranFjncRCF2_
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsR15HafnsrNeranFjncRCF2_,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsR15HafnsrNeranFjncRCF2_:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvR4eraqRi
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvR4eraqRi
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvR4eraqRi,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvR4eraqRi:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzR18VagreanyQrnyybpngrRCAF2_3ErcRv
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzR18VagreanyQrnyybpngrRCAF2_3ErcRv
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzR18VagreanyQrnyybpngrRCAF2_3ErcRv,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzR18VagreanyQrnyybpngrRCAF2_3ErcRv:
 nop
@@ -38,7 +38,7 @@
 b__MA6tbbtyr8cebgbohs8vagreany20ErcrngrqCgeSvryqOnfr7NqqJrnxRCXAF0_11ZrffntrYvgrR:
 nop
 .text
-.globl b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVyR8TrgNeranRi
+.weak b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVyR8TrgNeranRi
 .type b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVyR8TrgNeranRi,%function
 b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVyR8TrgNeranRi:
 nop
@@ -48,7 +48,7 @@
 b__MAX6tbbtyr8cebgbohs11ZrffntrYvgr17FrevnyvmrGbFgevatRCAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRR:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsR7ErfreirRv
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsR7ErfreirRv
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsR7ErfreirRv,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsR7ErfreirRv:
 nop
@@ -68,22 +68,22 @@
 b__MA6tbbtyr8cebgbohs2vb15SvyrVachgFgernz22PbclvatSvyrVachgFgernz4FxvcRv:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsR5renfrRCXs
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsR5renfrRCXs
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsR5renfrRCXs,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsR5renfrRCXs:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwR6eortvaRi
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwR6eortvaRi
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwR6eortvaRi,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwR6eortvaRi:
 nop
 .text
-.globl b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVzRvkRv
+.weak b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVzRvkRv
 .type b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVzRvkRv,%function
 b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVzRvkRv:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqR7ErfreirRv
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqR7ErfreirRv
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqR7ErfreirRv,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqR7ErfreirRv:
 nop
@@ -93,12 +93,12 @@
 b__MA6tbbtyr8cebgbohs2vb16NeenlVachgFgernzP1RCXivv:
 nop
 .text
-.globl b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVsR6eortvaRi
+.weak b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVsR6eortvaRi
 .type b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVsR6eortvaRi,%function
 b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVsR6eortvaRi:
 nop
 .text
-.globl b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVsR8ryrzragfRi
+.weak b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVsR8ryrzragfRi
 .type b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVsR8ryrzragfRi,%function
 b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVsR8ryrzragfRi:
 nop
@@ -118,12 +118,12 @@
 b__MA6tbbtyr8cebgbohs8vagreany23TrgBjarqZrffntrVagreanyRCAF0_5NeranRCAF0_11ZrffntrYvgrRF3_:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqR18VagreanyQrnyybpngrRCAF2_3ErcRv
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqR18VagreanyQrnyybpngrRCAF2_3ErcRv
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqR18VagreanyQrnyybpngrRCAF2_3ErcRv,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqR18VagreanyQrnyybpngrRCAF2_3ErcRv:
 nop
 .text
-.globl b__MAXFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR3fgeRi
+.weak b__MAXFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR3fgeRi
 .type b__MAXFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR3fgeRi,%function
 b__MAXFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR3fgeRi:
 nop
@@ -138,27 +138,27 @@
 b__MA6tbbtyr8cebgbohs8vagreany32vzcyvpvg_jrnx_zrffntr_bapr_vavg_R:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzR9PbclNeenlRCzCXzv
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzR9PbclNeenlRCzCXzv
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzR9PbclNeenlRCzCXzv,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzR9PbclNeenlRCzCXzv:
 nop
 .data
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsR14xErcUrnqreFvmrR
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsR14xErcUrnqreFvmrR
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsR14xErcUrnqreFvmrR,%object
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsR14xErcUrnqreFvmrR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVzR5rzcglRi
+.weak b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVzR5rzcglRi
 .type b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVzR5rzcglRi,%function
 b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVzR5rzcglRi:
 nop
 .data
-.globl b__MTIMA6tbbtyr8cebgbohs8vagreany12FuhgqbjaQngn3trgRiR4qngn
+.weak b__MTIMA6tbbtyr8cebgbohs8vagreany12FuhgqbjaQngn3trgRiR4qngn
 .type b__MTIMA6tbbtyr8cebgbohs8vagreany12FuhgqbjaQngn3trgRiR4qngn,%object
 b__MTIMA6tbbtyr8cebgbohs8vagreany12FuhgqbjaQngn3trgRiR4qngn:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyR7ErfreirRv
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyR7ErfreirRv
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyR7ErfreirRv,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyR7ErfreirRv:
 nop
@@ -183,12 +183,12 @@
 b__MA6tbbtyr8cebgbohs2vb15SvyrVachgFgernz4ArkgRCCXiCv:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR5renfrRAF0_8vagreany19ErcrngrqCgeVgrengbeVXF8_RR
+.weak b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR5renfrRAF0_8vagreany19ErcrngrqCgeVgrengbeVXF8_RR
 .type b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR5renfrRAF0_8vagreany19ErcrngrqCgeVgrengbeVXF8_RR,%function
 b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR5renfrRAF0_8vagreany19ErcrngrqCgeVgrengbeVXF8_RR:
 nop
 .text
-.globl b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVyR5rzcglRi
+.weak b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVyR5rzcglRi
 .type b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVyR5rzcglRi,%function
 b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVyR5rzcglRi:
 nop
@@ -213,7 +213,7 @@
 b__MA6tbbtyr8cebgbohs8vagreany11NalZrgnqngnP1RCAF1_14NeranFgevatCgeRF4_:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwR7ErfreirRv
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwR7ErfreirRv
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwR7ErfreirRv,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwR7ErfreirRv:
 nop
@@ -223,22 +223,22 @@
 b__MAX6tbbtyr8cebgbohs8vagreany12RkgrafvbaFrg20SvaqBeAhyyVaYnetrZncRv:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsR3NqqRi
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsR3NqqRi
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsR3NqqRi,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsR3NqqRi:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwR5renfrRCXw
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwR5renfrRCXw
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwR5renfrRCXw,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwR5renfrRCXw:
 nop
 .text
-.globl b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVzR8ryrzragfRi
+.weak b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVzR8ryrzragfRi
 .type b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVzR8ryrzragfRi,%function
 b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVzR8ryrzragfRi:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs18fnsr_hvag_vagreanyVwRRoAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRCG_
+.weak b__MA6tbbtyr8cebgbohs18fnsr_hvag_vagreanyVwRRoAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRCG_
 .type b__MA6tbbtyr8cebgbohs18fnsr_hvag_vagreanyVwRRoAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRCG_,%function
 b__MA6tbbtyr8cebgbohs18fnsr_hvag_vagreanyVwRRoAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRCG_:
 nop
@@ -263,12 +263,12 @@
 b__MA6tbbtyr8cebgbohs8vagreany16ErnqFvmrSnyyonpxRCXpw:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsR9ZbirNeenlRCsF3_v
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsR9ZbirNeenlRCsF3_v
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsR9ZbirNeenlRCsF3_v,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsR9ZbirNeenlRCsF3_v:
 nop
 .text
-.globl b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVwR5rzcglRi
+.weak b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVwR5rzcglRi
 .type b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVwR5rzcglRi,%function
 b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVwR5rzcglRi:
 nop
@@ -283,12 +283,12 @@
 b__MA6tbbtyr8cebgbohs8vagreany12RkgrafvbaFrg7FrgRahzRvuvCXAF0_15SvryqQrfpevcgbeR:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvR5renfrRCXvF4_
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvR5renfrRCXvF4_
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvR5renfrRCXvF4_,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvR5renfrRCXvF4_:
 nop
 .text
-.globl b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVvR5rzcglRi
+.weak b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVvR5rzcglRi
 .type b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVvR5rzcglRi,%function
 b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVvR5rzcglRi:
 nop
@@ -318,12 +318,12 @@
 b__MA6tbbtyr8cebgbohs2vb26PbclvatBhgchgFgernzNqncgbeP2RCAF1_19PbclvatBhgchgFgernzRv:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsR6ErfvmrRvEXs
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsR6ErfvmrRvEXs
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsR6ErfvmrRvEXs,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsR6ErfvmrRvEXs:
 nop
 .text
-.globl b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVoRvkRv
+.weak b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVoRvkRv
 .type b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVoRvkRv,%function
 b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVoRvkRv:
 nop
@@ -343,12 +343,12 @@
 b__MA6tbbtyr8cebgbohs2vb25PbclvatVachgFgernzNqncgbeQ0Ri:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs8vagreany20ZretrCnegvnySebzVzcyVYo1RRRoCAF0_2vb19MrebPbclVachgFgernzRCAF0_11ZrffntrYvgrR
+.weak b__MA6tbbtyr8cebgbohs8vagreany20ZretrCnegvnySebzVzcyVYo1RRRoCAF0_2vb19MrebPbclVachgFgernzRCAF0_11ZrffntrYvgrR
 .type b__MA6tbbtyr8cebgbohs8vagreany20ZretrCnegvnySebzVzcyVYo1RRRoCAF0_2vb19MrebPbclVachgFgernzRCAF0_11ZrffntrYvgrR,%function
 b__MA6tbbtyr8cebgbohs8vagreany20ZretrCnegvnySebzVzcyVYo1RRRoCAF0_2vb19MrebPbclVachgFgernzRCAF0_11ZrffntrYvgrR:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR4FjncRCF9_
+.weak b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR4FjncRCF9_
 .type b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR4FjncRCF9_,%function
 b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR4FjncRCF9_:
 nop
@@ -373,12 +373,12 @@
 b__MA6tbbtyr8cebgbohs2vb17NeenlBhgchgFgernz6OnpxHcRv:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyR5renfrRCXy
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyR5renfrRCXy
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyR5renfrRCXy,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyR5renfrRCXy:
 nop
 .text
-.globl b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVsR5rzcglRi
+.weak b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVsR5rzcglRi
 .type b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVsR5rzcglRi,%function
 b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVsR5rzcglRi:
 nop
@@ -393,22 +393,22 @@
 b__MA6tbbtyr8cebgbohs2vb19BfgernzBhgchgFgernzP1RCAFg3__113onfvp_bfgernzVpAF3_11pune_genvgfVpRRRRv:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsR8GehapngrRv
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsR8GehapngrRv
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsR8GehapngrRv,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsR8GehapngrRv:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR5renfrRAF0_8vagreany19ErcrngrqCgeVgrengbeVXF8_RRFQ_
+.weak b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR5renfrRAF0_8vagreany19ErcrngrqCgeVgrengbeVXF8_RRFQ_
 .type b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR5renfrRAF0_8vagreany19ErcrngrqCgeVgrengbeVXF8_RRFQ_,%function
 b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR5renfrRAF0_8vagreany19ErcrngrqCgeVgrengbeVXF8_RRFQ_:
 nop
 .text
-.globl b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVzR4praqRi
+.weak b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVzR4praqRi
 .type b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVzR4praqRi,%function
 b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVzR4praqRi:
 nop
 .text
-.globl b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVzR4qngnRi
+.weak b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVzR4qngnRi
 .type b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVzR4qngnRi,%function
 b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVzR4qngnRi:
 nop
@@ -428,12 +428,12 @@
 b__MA6tbbtyr8cebgbohs8vagreany20ErcrngrqCgeSvryqOnfr8PybfrTncRvv:
 nop
 .text
-.globl b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVqR5rzcglRi
+.weak b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVqR5rzcglRi
 .type b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVqR5rzcglRi,%function
 b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVqR5rzcglRi:
 nop
 .text
-.globl b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVvR3ercRi
+.weak b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVvR3ercRi
 .type b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVvR3ercRi,%function
 b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVvR3ercRi:
 nop
@@ -448,17 +448,17 @@
 b__MA6tbbtyr8cebgbohs15FgevcJuvgrfcnprRCAFg3__112onfvp_fgevatVpAF1_11pune_genvgfVpRRAF1_9nyybpngbeVpRRRR:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs8vagreany20ErcrngrqCgeSvryqOnfr18ZretrSebzVaareYbbcVAF0_16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRRR11GlcrUnaqyreRRRiCCiFS_vv
+.weak b__MA6tbbtyr8cebgbohs8vagreany20ErcrngrqCgeSvryqOnfr18ZretrSebzVaareYbbcVAF0_16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRRR11GlcrUnaqyreRRRiCCiFS_vv
 .type b__MA6tbbtyr8cebgbohs8vagreany20ErcrngrqCgeSvryqOnfr18ZretrSebzVaareYbbcVAF0_16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRRR11GlcrUnaqyreRRRiCCiFS_vv,%function
 b__MA6tbbtyr8cebgbohs8vagreany20ErcrngrqCgeSvryqOnfr18ZretrSebzVaareYbbcVAF0_16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRRR11GlcrUnaqyreRRRiCCiFS_vv:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR5PyrneRi
+.weak b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR5PyrneRi
 .type b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR5PyrneRi,%function
 b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR5PyrneRi:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwRQ1Ri
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwRQ1Ri
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwRQ1Ri,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwRQ1Ri:
 nop
@@ -468,7 +468,7 @@
 b__MA6tbbtyr8cebgbohs8vagreany18TrarevpGlcrUnaqyreVAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRRR5ZretrREXF9_CF9_:
 nop
 .text
-.globl b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVoR5rzcglRi
+.weak b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVoR5rzcglRi
 .type b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVoR5rzcglRi,%function
 b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVoR5rzcglRi:
 nop
@@ -483,7 +483,7 @@
 b__MA6tbbtyr8cebgbohs8vagreany18TrarevpGlcrUnaqyreVAF0_11ZrffntrYvgrRR5ZretrREXF3_CF3_:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzR5PyrneRi
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzR5PyrneRi
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzR5PyrneRi,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzR5PyrneRi:
 nop
@@ -503,17 +503,17 @@
 b__MGIA6tbbtyr8cebgbohs2vb25PbclvatVachgFgernzNqncgbeR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyR18NqqNyernqlErfreirqREXy
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyR18NqqNyernqlErfreirqREXy
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyR18NqqNyernqlErfreirqREXy,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyR18NqqNyernqlErfreirqREXy:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyR5PyrneRi
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyR5PyrneRi
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyR5PyrneRi,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyR5PyrneRi:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzR8GehapngrRv
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzR8GehapngrRv
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzR8GehapngrRv,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzR8GehapngrRv:
 nop
@@ -533,7 +533,7 @@
 b__MA6tbbtyr8cebgbohs2vb25PbclvatVachgFgernzNqncgbe6OnpxHcRv:
 nop
 .text
-.globl b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVyR4eraqRi
+.weak b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVyR4eraqRi
 .type b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVyR4eraqRi,%function
 b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVyR4eraqRi:
 nop
@@ -548,17 +548,17 @@
 b__MA6tbbtyr8cebgbohs2vb16SvyrBhgchgFgernz23PbclvatSvyrBhgchgFgernzQ0Ri:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqRP2RCAF0_5NeranR
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqRP2RCAF0_5NeranR
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqRP2RCAF0_5NeranR,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqRP2RCAF0_5NeranR:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwR5PyrneRi
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwR5PyrneRi
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwR5PyrneRi,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwR5PyrneRi:
 nop
 .text
-.globl b__MAX6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR3raqRi
+.weak b__MAX6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR3raqRi
 .type b__MAX6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR3raqRi,%function
 b__MAX6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR3raqRi:
 nop
@@ -573,7 +573,7 @@
 b__MA6tbbtyr8cebgbohs11ZrffntrYvgr37ZretrCnegvnySebzObhaqrqMrebPbclFgernzRCAF0_2vb19MrebPbclVachgFgernzRv:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvR5PyrneRi
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvR5PyrneRi
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvR5PyrneRi,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvR5PyrneRi:
 nop
@@ -583,7 +583,7 @@
 b__MA6tbbtyr8cebgbohs8vagreany17CevagHGS8ReebeYbtRCXpF3_o:
 nop
 .text
-.globl b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVwR8PncnpvglRi
+.weak b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVwR8PncnpvglRi
 .type b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVwR8PncnpvglRi,%function
 b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVwR8PncnpvglRi:
 nop
@@ -618,7 +618,7 @@
 b__MGIA6tbbtyr8cebgbohs2vb19BfgernzBhgchgFgernz26PbclvatBfgernzBhgchgFgernzR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRRvkRv
+.weak b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRRvkRv
 .type b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRRvkRv,%function
 b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRRvkRv:
 nop
@@ -638,7 +638,7 @@
 b__MA6tbbtyr8cebgbohs2vb15SvyrVachgFgernz6OnpxHcRv:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsR5PyrneRi
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsR5PyrneRi
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsR5PyrneRi,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsR5PyrneRi:
 nop
@@ -663,22 +663,22 @@
 b__MA6tbbtyr8cebgbohs8vagreany17FrevnyvmrVagreanyRCXuCXAF1_13SvryqZrgnqngnRvCAF0_2vb17PbqrqBhgchgFgernzR:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqRP1RBF2_
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqRP1RBF2_
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqRP1RBF2_,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqRP1RBF2_:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsR3raqRi
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsR3raqRi
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsR3raqRi,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsR3raqRi:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsRQ2Ri
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsRQ2Ri
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsRQ2Ri,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsRQ2Ri:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRRP2RBF9_
+.weak b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRRP2RBF9_
 .type b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRRP2RBF9_,%function
 b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRRP2RBF9_:
 nop
@@ -693,17 +693,17 @@
 b__MA6tbbtyr8cebgbohs2vb25PbclvatVachgFgernzNqncgbeP1RCAF1_18PbclvatVachgFgernzRv:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqR5PyrneRi
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqR5PyrneRi
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqR5PyrneRi,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqR5PyrneRi:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqR8PbclSebzREXF2_
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqR8PbclSebzREXF2_
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqR8PbclSebzREXF2_,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqR8PbclSebzREXF2_:
 nop
 .text
-.globl b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVwR2ngRv
+.weak b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVwR2ngRv
 .type b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVwR2ngRv,%function
 b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVwR2ngRv:
 nop
@@ -713,7 +713,7 @@
 b__MAX6tbbtyr8cebgbohs11FgevatCvrpr17svaq_svefg_abg_bsRpz:
 nop
 .data
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwR14xErcUrnqreFvmrR
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwR14xErcUrnqreFvmrR
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwR14xErcUrnqreFvmrR,%object
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwR14xErcUrnqreFvmrR:
 .space __SIZEOF_POINTER__
@@ -733,7 +733,7 @@
 b__MA6tbbtyr8cebgbohs2vb15SvyrVachgFgernz4FxvcRv:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoR5PyrneRi
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoR5PyrneRi
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoR5PyrneRi,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoR5PyrneRi:
 nop
@@ -743,17 +743,17 @@
 b__MA6tbbtyr8cebgbohs7fgevatf8NycunAhzP1RAF1_3UrkR:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs8vagreany11SvryqCnefreVAF1_28HaxabjaSvryqYvgrCnefreUrycreRRRCXpzEG_F5_CAF1_12CnefrPbagrkgR
+.weak b__MA6tbbtyr8cebgbohs8vagreany11SvryqCnefreVAF1_28HaxabjaSvryqYvgrCnefreUrycreRRRCXpzEG_F5_CAF1_12CnefrPbagrkgR
 .type b__MA6tbbtyr8cebgbohs8vagreany11SvryqCnefreVAF1_28HaxabjaSvryqYvgrCnefreUrycreRRRCXpzEG_F5_CAF1_12CnefrPbagrkgR,%function
 b__MA6tbbtyr8cebgbohs8vagreany11SvryqCnefreVAF1_28HaxabjaSvryqYvgrCnefreUrycreRRRCXpzEG_F5_CAF1_12CnefrPbagrkgR:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsR15RkgenpgFhoenatrRvvCs
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsR15RkgenpgFhoenatrRvvCs
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsR15RkgenpgFhoenatrRvvCs,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsR15RkgenpgFhoenatrRvvCs:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyR3FrgRvEXy
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyR3FrgRvEXy
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyR3FrgRvEXy,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyR3FrgRvEXy:
 nop
@@ -763,7 +763,7 @@
 b__MA6tbbtyr8cebgbohs8vagreany9NeranVzcy5OybpxP2RzCF3_:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs8vagreany18RcfPbclVachgFgernz16ErnqCnpxrqInevagVMAF1_12InevagCnefreVwYo0RRRCXpCiF6_CAF1_12CnefrPbagrkgRRHyzR_RRF6_F6_G_
+.weak b__MA6tbbtyr8cebgbohs8vagreany18RcfPbclVachgFgernz16ErnqCnpxrqInevagVMAF1_12InevagCnefreVwYo0RRRCXpCiF6_CAF1_12CnefrPbagrkgRRHyzR_RRF6_F6_G_
 .type b__MA6tbbtyr8cebgbohs8vagreany18RcfPbclVachgFgernz16ErnqCnpxrqInevagVMAF1_12InevagCnefreVwYo0RRRCXpCiF6_CAF1_12CnefrPbagrkgRRHyzR_RRF6_F6_G_,%function
 b__MA6tbbtyr8cebgbohs8vagreany18RcfPbclVachgFgernz16ErnqCnpxrqInevagVMAF1_12InevagCnefreVwYo0RRRCXpCiF6_CAF1_12CnefrPbagrkgRRHyzR_RRF6_F6_G_:
 nop
@@ -788,37 +788,37 @@
 b__MA6tbbtyr8cebgbohs2vb24PbapngrangvatVachgFgernzP2RCXCAF1_19MrebPbclVachgFgernzRv:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsR12VagreanyFjncRCF2_
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsR12VagreanyFjncRCF2_
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsR12VagreanyFjncRCF2_,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsR12VagreanyFjncRCF2_:
 nop
 .text
-.globl b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVqR3ercRi
+.weak b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVqR3ercRi
 .type b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVqR3ercRi,%function
 b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVqR3ercRi:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvR12FjncRyrzragfRvv
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvR12FjncRyrzragfRvv
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvR12FjncRyrzragfRvv,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvR12FjncRyrzragfRvv:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs8vagreany21neran_qrfgehpg_bowrpgVAF0_13ErcrngrqSvryqVwRRRRiCi
+.weak b__MA6tbbtyr8cebgbohs8vagreany21neran_qrfgehpg_bowrpgVAF0_13ErcrngrqSvryqVwRRRRiCi
 .type b__MA6tbbtyr8cebgbohs8vagreany21neran_qrfgehpg_bowrpgVAF0_13ErcrngrqSvryqVwRRRRiCi,%function
 b__MA6tbbtyr8cebgbohs8vagreany21neran_qrfgehpg_bowrpgVAF0_13ErcrngrqSvryqVwRRRRiCi:
 nop
 .text
-.globl b__MAFg3__117__pnyy_bapr_cebklVAF_5ghcyrVWESiiRRRRRRiCi
+.weak b__MAFg3__117__pnyy_bapr_cebklVAF_5ghcyrVWESiiRRRRRRiCi
 .type b__MAFg3__117__pnyy_bapr_cebklVAF_5ghcyrVWESiiRRRRRRiCi,%function
 b__MAFg3__117__pnyy_bapr_cebklVAF_5ghcyrVWESiiRRRRRRiCi:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs8vagreany19neran_qryrgr_bowrpgVAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRRRRiCi
+.weak b__MA6tbbtyr8cebgbohs8vagreany19neran_qryrgr_bowrpgVAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRRRRiCi
 .type b__MA6tbbtyr8cebgbohs8vagreany19neran_qryrgr_bowrpgVAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRRRRiCi,%function
 b__MA6tbbtyr8cebgbohs8vagreany19neran_qryrgr_bowrpgVAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRRRRiCi:
 nop
 .text
-.globl b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVyR22FcnprHfrqRkpyhqvatFrysRi
+.weak b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVyR22FcnprHfrqRkpyhqvatFrysRi
 .type b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVyR22FcnprHfrqRkpyhqvatFrysRi,%function
 b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVyR22FcnprHfrqRkpyhqvatFrysRi:
 nop
@@ -843,7 +843,7 @@
 b__MAX6tbbtyr8cebgbohs11ZrffntrYvgr18FrevnyvmrGbBfgernzRCAFg3__113onfvp_bfgernzVpAF2_11pune_genvgfVpRRRR:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzR12zhgnoyr_qngnRi
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzR12zhgnoyr_qngnRi
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzR12zhgnoyr_qngnRi,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzR12zhgnoyr_qngnRi:
 nop
@@ -858,7 +858,7 @@
 b__MA6tbbtyr8cebgbohs2vb18PbclvatVachgFgernz4FxvcRv:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR10NqqPyrnerqRCF8_
+.weak b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR10NqqPyrnerqRCF8_
 .type b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR10NqqPyrnerqRCF8_,%function
 b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR10NqqPyrnerqRCF8_:
 nop
@@ -868,7 +868,7 @@
 b__MA6tbbtyr8cebgbohs11FgevatCvrpr7PbafhzrRF1_:
 nop
 .text
-.globl b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
+.weak b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
 .type b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_,%function
 b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_:
 nop
@@ -878,17 +878,17 @@
 b__MA6tbbtyr8cebgbohs8vagreany21VavgvnyvmrRahzFgevatfRCXAF1_9RahzRagelRCXvzCAF1_21RkcyvpvgylPbafgehpgrqVAFg3__112onfvp_fgevatVpAF8_11pune_genvgfVpRRAF8_9nyybpngbeVpRRRRRR:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvR9ZbirNeenlRCvF3_v
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvR9ZbirNeenlRCvF3_v
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvR9ZbirNeenlRCvF3_v,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvR9ZbirNeenlRCvF3_v:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzR10ErzbirYnfgRi
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzR10ErzbirYnfgRi
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzR10ErzbirYnfgRi,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzR10ErzbirYnfgRi:
 nop
 .text
-.globl b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVwR3TrgRv
+.weak b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVwR3TrgRv
 .type b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVwR3TrgRv,%function
 b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVwR3TrgRv:
 nop
@@ -908,12 +908,12 @@
 b__MAX6tbbtyr8cebgbohs2vb24PbapngrangvatVachgFgernz9OlgrPbhagRi:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyRP1Ri
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyRP1Ri
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyRP1Ri,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyRP1Ri:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRRP2Ri
+.weak b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRRP2Ri
 .type b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRRP2Ri,%function
 b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRRP2Ri:
 nop
@@ -923,7 +923,7 @@
 b__MA6tbbtyr8cebgbohs8vagreany12RkgrafvbaFrg7FrgObbyRvuoCXAF0_15SvryqQrfpevcgbeR:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsR2ngRv
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsR2ngRv
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsR2ngRv,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsR2ngRv:
 nop
@@ -943,7 +943,7 @@
 b__MA6tbbtyr8cebgbohs8vagreany38VavgVzcyvpvgJrnxZrffntrQrsnhygVafgnaprRi:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvR6eortvaRi
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvR6eortvaRi
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvR6eortvaRi,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvR6eortvaRi:
 nop
@@ -953,7 +953,7 @@
 b__MA6tbbtyr8cebgbohs8vagreany14JverSbezngYvgr13JevgrFSvkrq64RvyCAF0_2vb17PbqrqBhgchgFgernzR:
 nop
 .text
-.globl b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVsR4fvmrRi
+.weak b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVsR4fvmrRi
 .type b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVsR4fvmrRi,%function
 b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVsR4fvmrRi:
 nop
@@ -973,12 +973,12 @@
 b__MGIA6tbbtyr8cebgbohs2vb19BfgernzBhgchgFgernzR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyR14xErcUrnqreFvmrR
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyR14xErcUrnqreFvmrR
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyR14xErcUrnqreFvmrR,%object
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyR14xErcUrnqreFvmrR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVvR17TrgNeranAbIveghnyRi
+.weak b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVvR17TrgNeranAbIveghnyRi
 .type b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVvR17TrgNeranAbIveghnyRi,%function
 b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVvR17TrgNeranAbIveghnyRi:
 nop
@@ -1013,7 +1013,7 @@
 b__MA6tbbtyr8cebgbohs8vagreany19RkgrafvbaFrevnyvmreRCXuwwwCAF0_2vb17PbqrqBhgchgFgernzR:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoR3FrgRvEXo
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoR3FrgRvEXo
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoR3FrgRvEXo,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoR3FrgRvEXo:
 nop
@@ -1028,17 +1028,17 @@
 b__MA6tbbtyr8cebgbohs8vagreany17CnpxrqVag32CnefreRCiCXpCAF1_12CnefrPbagrkgR:
 nop
 .text
-.globl b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVqR4praqRi
+.weak b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVqR4praqRi
 .type b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVqR4praqRi,%function
 b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVqR4praqRi:
 nop
 .text
-.globl b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVqR4qngnRi
+.weak b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVqR4qngnRi
 .type b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVqR4qngnRi,%function
 b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVqR4qngnRi:
 nop
 .text
-.globl b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVwR22FcnprHfrqRkpyhqvatFrysRi
+.weak b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVwR22FcnprHfrqRkpyhqvatFrysRi
 .type b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVwR22FcnprHfrqRkpyhqvatFrysRi,%function
 b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVwR22FcnprHfrqRkpyhqvatFrysRi:
 nop
@@ -1053,7 +1053,7 @@
 b__MA6tbbtyr8cebgbohs11ZrffntrYvgr20CnefrSebzPbqrqFgernzRCAF0_2vb16PbqrqVachgFgernzR:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR13cbvagre_ortvaRi
+.weak b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR13cbvagre_ortvaRi
 .type b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR13cbvagre_ortvaRi,%function
 b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR13cbvagre_ortvaRi:
 nop
@@ -1068,12 +1068,12 @@
 b__MA6tbbtyr8cebgbohs2vb24PbapngrangvatVachgFgernz4ArkgRCCXiCv:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR2ngRv
+.weak b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR2ngRv
 .type b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR2ngRv,%function
 b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR2ngRv:
 nop
 .text
-.globl b__MAX6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR6portvaRi
+.weak b__MAX6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR6portvaRi
 .type b__MAX6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR6portvaRi,%function
 b__MAX6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR6portvaRi:
 nop
@@ -1093,17 +1093,17 @@
 b__MA6tbbtyr8cebgbohs8vagreany18CnpxrqHVag32CnefreRCiCXpCAF1_12CnefrPbagrkgR:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqRP1RCAF0_5NeranR
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqRP1RCAF0_5NeranR
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqRP1RCAF0_5NeranR,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqRP1RCAF0_5NeranR:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvRP1RBF2_
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvRP1RBF2_
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvRP1RBF2_,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvRP1RBF2_:
 nop
 .text
-.globl b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR7frrxbssRkAF_8vbf_onfr7frrxqveRw
+.weak b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR7frrxbssRkAF_8vbf_onfr7frrxqveRw
 .type b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR7frrxbssRkAF_8vbf_onfr7frrxqveRw,%function
 b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR7frrxbssRkAF_8vbf_onfr7frrxqveRw:
 nop
@@ -1133,17 +1133,17 @@
 b__MA6tbbtyr8cebgbohs2vb16PbqrqVachgFgernz7ErnqEnjRCiv:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyR3NqqRi
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyR3NqqRi
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyR3NqqRi,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyR3NqqRi:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzR15HafnsrNeranFjncRCF2_
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzR15HafnsrNeranFjncRCF2_
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzR15HafnsrNeranFjncRCF2_,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzR15HafnsrNeranFjncRCF2_:
 nop
 .data
-.globl b__MMA6tbbtyr8cebgbohs8vagreany12FuhgqbjaQngn3trgRiR4qngn
+.weak b__MMA6tbbtyr8cebgbohs8vagreany12FuhgqbjaQngn3trgRiR4qngn
 .type b__MMA6tbbtyr8cebgbohs8vagreany12FuhgqbjaQngn3trgRiR4qngn,%object
 b__MMA6tbbtyr8cebgbohs8vagreany12FuhgqbjaQngn3trgRiR4qngn:
 .space __SIZEOF_POINTER__
@@ -1173,7 +1173,7 @@
 b__MAX6tbbtyr8cebgbohs11ZrffntrYvgr23FrevnyvmrCnegvnyGbNeenlRCiv:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqR12zhgnoyr_qngnRi
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqR12zhgnoyr_qngnRi
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqR12zhgnoyr_qngnRi,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqR12zhgnoyr_qngnRi:
 nop
@@ -1188,12 +1188,12 @@
 b__MA6tbbtyr8cebgbohs24HarfpncrPRfpncrFrdhraprfRCXpCpCAFg3__16irpgbeVAF4_12onfvp_fgevatVpAF4_11pune_genvgfVpRRAF4_9nyybpngbeVpRRRRAF9_VFO_RRRR:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqRQ1Ri
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqRQ1Ri
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqRQ1Ri,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqRQ1Ri:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvR18NqqNyernqlErfreirqREXv
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvR18NqqNyernqlErfreirqREXv
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvR18NqqNyernqlErfreirqREXv,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvR18NqqNyernqlErfreirqREXv:
 nop
@@ -1223,7 +1223,7 @@
 b__MAX6tbbtyr8cebgbohs11ZrffntrYvgr24FrevnyvmrCnegvnyNfFgevatRi:
 nop
 .text
-.globl b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVvR2ngRv
+.weak b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVvR2ngRv
 .type b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVvR2ngRv,%function
 b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVvR2ngRv:
 nop
@@ -1238,7 +1238,7 @@
 b__MA6tbbtyr8cebgbohs7fgevatf8OlgrFvax5SyhfuRi:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzRnFRBF2_
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzRnFRBF2_
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzRnFRBF2_,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzRnFRBF2_:
 nop
@@ -1248,7 +1248,7 @@
 b__MA6tbbtyr8cebgbohs23FuhgqbjaCebgbohsYvoenelRi:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs8vagreany21neran_qrfgehpg_bowrpgVAF0_16ErcrngrqCgeSvryqVAF0_11ZrffntrYvgrRRRRRiCi
+.weak b__MA6tbbtyr8cebgbohs8vagreany21neran_qrfgehpg_bowrpgVAF0_16ErcrngrqCgeSvryqVAF0_11ZrffntrYvgrRRRRRiCi
 .type b__MA6tbbtyr8cebgbohs8vagreany21neran_qrfgehpg_bowrpgVAF0_16ErcrngrqCgeSvryqVAF0_11ZrffntrYvgrRRRRRiCi,%function
 b__MA6tbbtyr8cebgbohs8vagreany21neran_qrfgehpg_bowrpgVAF0_16ErcrngrqCgeSvryqVAF0_11ZrffntrYvgrRRRRRiCi:
 nop
@@ -1268,12 +1268,12 @@
 b__MGIA6tbbtyr8cebgbohs2vb19YvzvgvatVachgFgernzR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvR9ZretrSebzREXF2_
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvR9ZretrSebzREXF2_
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvR9ZretrSebzREXF2_,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvR9ZretrSebzREXF2_:
 nop
 .text
-.globl b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVsR3raqRi
+.weak b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVsR3raqRi
 .type b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVsR3raqRi,%function
 b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVsR3raqRi:
 nop
@@ -1298,17 +1298,17 @@
 b__MA6tbbtyr8cebgbohs11ZrffntrYvgr23CnefrCnegvnySebzVfgernzRCAFg3__113onfvp_vfgernzVpAF2_11pune_genvgfVpRRRR:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwRP2RBF2_
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwRP2RBF2_
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwRP2RBF2_,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwRP2RBF2_:
 nop
 .text
-.globl b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVvR26FcnprHfrqRkpyhqvatFrysYbatRi
+.weak b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVvR26FcnprHfrqRkpyhqvatFrysYbatRi
 .type b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVvR26FcnprHfrqRkpyhqvatFrysYbatRi,%function
 b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVvR26FcnprHfrqRkpyhqvatFrysYbatRi:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzR12FjncRyrzragfRvv
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzR12FjncRyrzragfRvv
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzR12FjncRyrzragfRvv,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzR12FjncRyrzragfRvv:
 nop
@@ -1328,22 +1328,22 @@
 b__MAX6tbbtyr8cebgbohs8vagreany12RkgrafvbaFrg16TrgErcrngrqVag32Rvv:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvR9PbclNeenlRCvCXvv
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvR9PbclNeenlRCvCXvv
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvR9PbclNeenlRCvCXvv,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvR9PbclNeenlRCvCXvv:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzRvkRv
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzRvkRv
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzRvkRv,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzRvkRv:
 nop
 .text
-.globl b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVwR15hafnsr_ryrzragfRi
+.weak b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVwR15hafnsr_ryrzragfRi
 .type b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVwR15hafnsr_ryrzragfRi,%function
 b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVwR15hafnsr_ryrzragfRi:
 nop
 .text
-.globl b__MAX6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR4eraqRi
+.weak b__MAX6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR4eraqRi
 .type b__MAX6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR4eraqRi,%function
 b__MAX6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR4eraqRi:
 nop
@@ -1378,27 +1378,27 @@
 b__MAX6tbbtyr8cebgbohs2vb16SvyrBhgchgFgernz9OlgrPbhagRi:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyRP2RCAF0_5NeranR
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyRP2RCAF0_5NeranR
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyRP2RCAF0_5NeranR,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyRP2RCAF0_5NeranR:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR23HafnsrNeranNqqNyybpngrqRCF8_
+.weak b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR23HafnsrNeranNqqNyybpngrqRCF8_
 .type b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR23HafnsrNeranNqqNyybpngrqRCF8_,%function
 b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR23HafnsrNeranNqqNyybpngrqRCF8_:
 nop
 .text
-.globl b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVsR6portvaRi
+.weak b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVsR6portvaRi
 .type b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVsR6portvaRi,%function
 b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVsR6portvaRi:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyR9ZbirNeenlRCyF3_v
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyR9ZbirNeenlRCyF3_v
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyR9ZbirNeenlRCyF3_v,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyR9ZbirNeenlRCyF3_v:
 nop
 .text
-.globl b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVyRvkRv
+.weak b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVyRvkRv
 .type b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVyRvkRv,%function
 b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVyRvkRv:
 nop
@@ -1413,7 +1413,7 @@
 b__MA6tbbtyr8cebgbohs8vagreany12SvryqFxvccre11FxvcZrffntrRCAF0_2vb16PbqrqVachgFgernzR:
 nop
 .text
-.globl b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVoR15hafnsr_ryrzragfRi
+.weak b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVoR15hafnsr_ryrzragfRi
 .type b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVoR15hafnsr_ryrzragfRi,%function
 b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVoR15hafnsr_ryrzragfRi:
 nop
@@ -1428,17 +1428,17 @@
 b__MA6tbbtyr8cebgbohs8vagreany17HaxabjaSvryqCnefrRwCAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRCXpCAF1_12CnefrPbagrkgR:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqR6ErfvmrRvEXq
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqR6ErfvmrRvEXq
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqR6ErfvmrRvEXq,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqR6ErfvmrRvEXq:
 nop
 .text
-.globl b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVvR4praqRi
+.weak b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVvR4praqRi
 .type b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVvR4praqRi,%function
 b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVvR4praqRi:
 nop
 .text
-.globl b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVvR4qngnRi
+.weak b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVvR4qngnRi
 .type b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVvR4qngnRi,%function
 b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVvR4qngnRi:
 nop
@@ -1458,7 +1458,7 @@
 b__MAX6tbbtyr8cebgbohs8vagreany12RkgrafvbaFrg17TrgErcrngrqHVag32Rvv:
 nop
 .data
-.globl b__MA6tbbtyr8cebgbohs8vagreany12RkgrafvbaFrg20xZnkvzhzSyngPncnpvglR
+.weak b__MA6tbbtyr8cebgbohs8vagreany12RkgrafvbaFrg20xZnkvzhzSyngPncnpvglR
 .type b__MA6tbbtyr8cebgbohs8vagreany12RkgrafvbaFrg20xZnkvzhzSyngPncnpvglR,%object
 b__MA6tbbtyr8cebgbohs8vagreany12RkgrafvbaFrg20xZnkvzhzSyngPncnpvglR:
 .space __SIZEOF_POINTER__
@@ -1473,7 +1473,7 @@
 b__MA6tbbtyr8cebgbohs8vagreany12RkgrafvbaFrg8FrgSybngRvusCXAF0_15SvryqQrfpevcgbeR:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyR3raqRi
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyR3raqRi
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyR3raqRi,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyR3raqRi:
 nop
@@ -1483,7 +1483,7 @@
 b__MA6tbbtyr8cebgbohs8vagreany14JverSbezngYvgr21xJverGlcrSbeSvryqGlcrR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVvA6tbbtyr8cebgbohs8vagreany12RkgrafvbaFrg9RkgrafvbaRRRAF_19__znc_inyhr_pbzcnerVvF7_AF_4yrffVvRRYo1RRRAF_9nyybpngbeVF7_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVF7_CAF_11__gerr_abqrVF7_CiRRyRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVvA6tbbtyr8cebgbohs8vagreany12RkgrafvbaFrg9RkgrafvbaRRRAF_19__znc_inyhr_pbzcnerVvF7_AF_4yrffVvRRYo1RRRAF_9nyybpngbeVF7_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVF7_CAF_11__gerr_abqrVF7_CiRRyRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVvA6tbbtyr8cebgbohs8vagreany12RkgrafvbaFrg9RkgrafvbaRRRAF_19__znc_inyhr_pbzcnerVvF7_AF_4yrffVvRRYo1RRRAF_9nyybpngbeVF7_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVF7_CAF_11__gerr_abqrVF7_CiRRyRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVvA6tbbtyr8cebgbohs8vagreany12RkgrafvbaFrg9RkgrafvbaRRRAF_19__znc_inyhr_pbzcnerVvF7_AF_4yrffVvRRYo1RRRAF_9nyybpngbeVF7_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVF7_CAF_11__gerr_abqrVF7_CiRRyRR:
 nop
@@ -1493,22 +1493,22 @@
 b__MA6tbbtyr8cebgbohs8vagreany26HaxabjaSvryqFrevnyvmreYvgrRCXuwwwCAF0_2vb17PbqrqBhgchgFgernzR:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoRvkRv
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoRvkRv
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoRvkRv,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoRvkRv:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyR8PbclSebzREXF2_
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyR8PbclSebzREXF2_
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyR8PbclSebzREXF2_,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyR8PbclSebzREXF2_:
 nop
 .text
-.globl b__MAX6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR17TrgNeranAbIveghnyRi
+.weak b__MAX6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR17TrgNeranAbIveghnyRi
 .type b__MAX6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR17TrgNeranAbIveghnyRi,%function
 b__MAX6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR17TrgNeranAbIveghnyRi:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs17fnsr_vag_vagreanyVvRRoAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRCG_
+.weak b__MA6tbbtyr8cebgbohs17fnsr_vag_vagreanyVvRRoAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRCG_
 .type b__MA6tbbtyr8cebgbohs17fnsr_vag_vagreanyVvRRoAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRCG_,%function
 b__MA6tbbtyr8cebgbohs17fnsr_vag_vagreanyVvRRoAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRCG_:
 nop
@@ -1528,7 +1528,7 @@
 b__MAX6tbbtyr8cebgbohs2vb18FgevatBhgchgFgernz9OlgrPbhagRi:
 nop
 .text
-.globl b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVwR17TrgNeranAbIveghnyRi
+.weak b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVwR17TrgNeranAbIveghnyRi
 .type b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVwR17TrgNeranAbIveghnyRi,%function
 b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVwR17TrgNeranAbIveghnyRi:
 nop
@@ -1538,17 +1538,17 @@
 b__MAX6tbbtyr8cebgbohs11ZrffntrYvgr32FrevnyvmrCnegvnyGbSvyrQrfpevcgbeRv:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsR10ErzbirYnfgRi
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsR10ErzbirYnfgRi
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsR10ErzbirYnfgRi,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsR10ErzbirYnfgRi:
 nop
 .text
-.globl b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVsR22FcnprHfrqRkpyhqvatFrysRi
+.weak b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVsR22FcnprHfrqRkpyhqvatFrysRi
 .type b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVsR22FcnprHfrqRkpyhqvatFrysRi,%function
 b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVsR22FcnprHfrqRkpyhqvatFrysRi:
 nop
 .text
-.globl b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVyR8PncnpvglRi
+.weak b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVyR8PncnpvglRi
 .type b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVyR8PncnpvglRi,%function
 b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVyR8PncnpvglRi:
 nop
@@ -1558,17 +1558,17 @@
 b__MA6tbbtyr8cebgbohs8vagreany12RkgrafvbaFrg13QryrgrSyngZncRCXAF2_8XrlInyhrRg:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsRP1Ri
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsRP1Ri
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsRP1Ri,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsRP1Ri:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvR12VagreanyFjncRCF2_
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvR12VagreanyFjncRCF2_
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvR12VagreanyFjncRCF2_,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvR12VagreanyFjncRCF2_:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzRP2Ri
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzRP2Ri
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzRP2Ri,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzRP2Ri:
 nop
@@ -1583,12 +1583,12 @@
 b__MA6tbbtyr8cebgbohs2vb18VfgernzVachgFgernz4FxvcRv:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwR4eraqRi
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwR4eraqRi
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwR4eraqRi,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwR4eraqRi:
 nop
 .text
-.globl b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVqR6eortvaRi
+.weak b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVqR6eortvaRi
 .type b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVqR6eortvaRi,%function
 b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVqR6eortvaRi:
 nop
@@ -1603,7 +1603,7 @@
 b__MA6tbbtyr8cebgbohs2vb19YvzvgvatVachgFgernz4ArkgRCCXiCv:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyR18VagreanyQrnyybpngrRCAF2_3ErcRv
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyR18VagreanyQrnyybpngrRCAF2_3ErcRv
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyR18VagreanyQrnyybpngrRCAF2_3ErcRv,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyR18VagreanyQrnyybpngrRCAF2_3ErcRv:
 nop
@@ -1618,7 +1618,7 @@
 b__MA6tbbtyr8cebgbohs6tugbayRw:
 nop
 .text
-.globl b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9haqresybjRi
+.weak b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9haqresybjRi
 .type b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9haqresybjRi,%function
 b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9haqresybjRi:
 nop
@@ -1628,12 +1628,12 @@
 b__MA6tbbtyr8cebgbohs9FgeNccraqRCAFg3__112onfvp_fgevatVpAF1_11pune_genvgfVpRRAF1_9nyybpngbeVpRRRREXAF0_7fgevatf8NycunAhzR:
 nop
 .text
-.globl b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVwR3ercRi
+.weak b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVwR3ercRi
 .type b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVwR3ercRi,%function
 b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVwR3ercRi:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvRQ1Ri
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvRQ1Ri
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvRQ1Ri,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvRQ1Ri:
 nop
@@ -1643,7 +1643,7 @@
 b__MA6tbbtyr8cebgbohs2vb16SvyrBhgchgFgernz4ArkgRCCiCv:
 nop
 .text
-.globl b__MAX6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR8TrgNeranRi
+.weak b__MAX6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR8TrgNeranRi
 .type b__MAX6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR8TrgNeranRi,%function
 b__MAX6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR8TrgNeranRi:
 nop
@@ -1653,12 +1653,12 @@
 b__MA6tbbtyr8cebgbohs2vb16SvyrBhgchgFgernzQ2Ri:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqR15HafnsrNeranFjncRCF2_
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqR15HafnsrNeranFjncRCF2_
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqR15HafnsrNeranFjncRCF2_,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqR15HafnsrNeranFjncRCF2_:
 nop
 .text
-.globl b__MAX6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR3TrgRv
+.weak b__MAX6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR3TrgRv
 .type b__MAX6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR3TrgRv,%function
 b__MAX6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR3TrgRv:
 nop
@@ -1678,12 +1678,12 @@
 b__MAX6tbbtyr8cebgbohs8vagreany12RkgrafvbaFrg10TrgZrffntrRvEXAF0_11ZrffntrYvgrR:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs8vagreany20ZretrCnegvnySebzVzcyVYo1RRRoAF1_11ObhaqrqMPVFRCAF0_11ZrffntrYvgrR
+.weak b__MA6tbbtyr8cebgbohs8vagreany20ZretrCnegvnySebzVzcyVYo1RRRoAF1_11ObhaqrqMPVFRCAF0_11ZrffntrYvgrR
 .type b__MA6tbbtyr8cebgbohs8vagreany20ZretrCnegvnySebzVzcyVYo1RRRoAF1_11ObhaqrqMPVFRCAF0_11ZrffntrYvgrR,%function
 b__MA6tbbtyr8cebgbohs8vagreany20ZretrCnegvnySebzVzcyVYo1RRRoAF1_11ObhaqrqMPVFRCAF0_11ZrffntrYvgrR:
 nop
 .text
-.globl b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVqR26FcnprHfrqRkpyhqvatFrysYbatRi
+.weak b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVqR26FcnprHfrqRkpyhqvatFrysYbatRi
 .type b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVqR26FcnprHfrqRkpyhqvatFrysYbatRi,%function
 b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVqR26FcnprHfrqRkpyhqvatFrysYbatRi:
 nop
@@ -1713,22 +1713,22 @@
 b__MAX6tbbtyr8cebgbohs2vb26PbclvatBhgchgFgernzNqncgbe9OlgrPbhagRi:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs8vagreany18RcfPbclVachgFgernz15ErnqCnpxrqSvkrqVzRRCXpF5_vCAF0_13ErcrngrqSvryqVG_RR
+.weak b__MA6tbbtyr8cebgbohs8vagreany18RcfPbclVachgFgernz15ErnqCnpxrqSvkrqVzRRCXpF5_vCAF0_13ErcrngrqSvryqVG_RR
 .type b__MA6tbbtyr8cebgbohs8vagreany18RcfPbclVachgFgernz15ErnqCnpxrqSvkrqVzRRCXpF5_vCAF0_13ErcrngrqSvryqVG_RR,%function
 b__MA6tbbtyr8cebgbohs8vagreany18RcfPbclVachgFgernz15ErnqCnpxrqSvkrqVzRRCXpF5_vCAF0_13ErcrngrqSvryqVG_RR:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoRP2Ri
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoRP2Ri
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoRP2Ri,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoRP2Ri:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsR18NqqNyernqlErfreirqREXs
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsR18NqqNyernqlErfreirqREXs
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsR18NqqNyernqlErfreirqREXs,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsR18NqqNyernqlErfreirqREXs:
 nop
 .text
-.globl b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVqR22FcnprHfrqRkpyhqvatFrysRi
+.weak b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVqR22FcnprHfrqRkpyhqvatFrysRi
 .type b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVqR22FcnprHfrqRkpyhqvatFrysRi,%function
 b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVqR22FcnprHfrqRkpyhqvatFrysRi:
 nop
@@ -1738,7 +1738,7 @@
 b__MAX6tbbtyr8cebgbohs2vb25PbclvatVachgFgernzNqncgbe9OlgrPbhagRi:
 nop
 .data
-.globl b__MGIAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
+.weak b__MGIAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
 .type b__MGIAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR,%object
 b__MGIAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR:
 .space __SIZEOF_POINTER__
@@ -1748,7 +1748,7 @@
 b__MA6tbbtyr8cebgbohs8vagreany12RkgrafvbaFrg20SvaqBeAhyyVaYnetrZncRv:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR23RkgenpgFhoenatrVagreanyRvvCCF8_AF2_17vagrteny_pbafgnagVoYo1RRR
+.weak b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR23RkgenpgFhoenatrVagreanyRvvCCF8_AF2_17vagrteny_pbafgnagVoYo1RRR
 .type b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR23RkgenpgFhoenatrVagreanyRvvCCF8_AF2_17vagrteny_pbafgnagVoYo1RRR,%function
 b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR23RkgenpgFhoenatrVagreanyRvvCCF8_AF2_17vagrteny_pbafgnagVoYo1RRR:
 nop
@@ -1778,7 +1778,7 @@
 b__MA6tbbtyr8cebgbohs8vagreany20JevgrYratguQryvzvgrqRwAF0_11FgevatCvrprRCAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRR:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqRnFRBF2_
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqRnFRBF2_
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqRnFRBF2_,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqRnFRBF2_:
 nop
@@ -1793,7 +1793,7 @@
 b__MA6tbbtyr8cebgbohs2vb16PbqrqVachgFgernz22ErnqYratguNaqChfuYvzvgRi:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvRP2RCAF0_5NeranR
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvRP2RCAF0_5NeranR
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvRP2RCAF0_5NeranR,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvRP2RCAF0_5NeranR:
 nop
@@ -1803,17 +1803,17 @@
 b__MA6tbbtyr8cebgbohs8vagreany12RkgrafvbaFrg32SvaqRkgrafvbaVasbSebzSvryqAhzoreRvvCAF1_15RkgrafvbaSvaqreRCAF1_13RkgrafvbaVasbRCo:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoR3NqqRi
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoR3NqqRi
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoR3NqqRi,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoR3NqqRi:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRRP1RBF9_
+.weak b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRRP1RBF9_
 .type b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRRP1RBF9_,%function
 b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRRP1RBF9_:
 nop
 .text
-.globl b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVzR6eortvaRi
+.weak b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVzR6eortvaRi
 .type b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVzR6eortvaRi,%function
 b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVzR6eortvaRi:
 nop
@@ -1843,7 +1843,7 @@
 b__MA6tbbtyr8cebgbohs2vb16PbqrqVachgFgernzQ1Ri:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyRP1RCAF0_5NeranR
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyRP1RCAF0_5NeranR
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyRP1RCAF0_5NeranR,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyRP1RCAF0_5NeranR:
 nop
@@ -1853,22 +1853,22 @@
 b__MA6tbbtyr8cebgbohs21HarfpncrPRfpncrFgevatREXAFg3__112onfvp_fgevatVpAF1_11pune_genvgfVpRRAF1_9nyybpngbeVpRRRRCF7_:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsR18NqqNyernqlErfreirqRi
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsR18NqqNyernqlErfreirqRi
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsR18NqqNyernqlErfreirqRi,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsR18NqqNyernqlErfreirqRi:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzR15RkgenpgFhoenatrRvvCz
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzR15RkgenpgFhoenatrRvvCz
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzR15RkgenpgFhoenatrRvvCz,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzR15RkgenpgFhoenatrRvvCz:
 nop
 .text
-.globl b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVoR8TrgNeranRi
+.weak b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVoR8TrgNeranRi
 .type b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVoR8TrgNeranRi,%function
 b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVoR8TrgNeranRi:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyR15HafnsrNeranFjncRCF2_
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyR15HafnsrNeranFjncRCF2_
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyR15HafnsrNeranFjncRCF2_,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyR15HafnsrNeranFjncRCF2_:
 nop
@@ -1888,7 +1888,7 @@
 b__MAX6tbbtyr8cebgbohs11ZrffntrYvgr11QrohtFgevatRi:
 nop
 .text
-.globl b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVoR4fvmrRi
+.weak b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVoR4fvmrRi
 .type b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVoR4fvmrRi,%function
 b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVoR4fvmrRi:
 nop
@@ -1898,22 +1898,22 @@
 b__MA6tbbtyr8cebgbohs7fgevatf20TebjvatNeenlOlgrFvaxP1Rz:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvR8PbclSebzREXF2_
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvR8PbclSebzREXF2_
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvR8PbclSebzREXF2_,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvR8PbclSebzREXF2_:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwR9ZretrSebzREXF2_
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwR9ZretrSebzREXF2_
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwR9ZretrSebzREXF2_,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwR9ZretrSebzREXF2_:
 nop
 .text
-.globl b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVoR22FcnprHfrqRkpyhqvatFrysRi
+.weak b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVoR22FcnprHfrqRkpyhqvatFrysRi
 .type b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVoR22FcnprHfrqRkpyhqvatFrysRi,%function
 b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVoR22FcnprHfrqRkpyhqvatFrysRi:
 nop
 .text
-.globl b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVzR4eraqRi
+.weak b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVzR4eraqRi
 .type b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVzR4eraqRi,%function
 b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVzR4eraqRi:
 nop
@@ -1928,7 +1928,7 @@
 b__MA6tbbtyr8cebgbohs7PRfpncrREXAFg3__112onfvp_fgevatVpAF1_11pune_genvgfVpRRAF1_9nyybpngbeVpRRRR:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs8vagreany19neran_qryrgr_bowrpgVAF0_11ZrffntrYvgrRRRiCi
+.weak b__MA6tbbtyr8cebgbohs8vagreany19neran_qryrgr_bowrpgVAF0_11ZrffntrYvgrRRRiCi
 .type b__MA6tbbtyr8cebgbohs8vagreany19neran_qryrgr_bowrpgVAF0_11ZrffntrYvgrRRRiCi,%function
 b__MA6tbbtyr8cebgbohs8vagreany19neran_qryrgr_bowrpgVAF0_11ZrffntrYvgrRRRiCi:
 nop
@@ -1948,7 +1948,7 @@
 b__MA6tbbtyr8cebgbohs2vb26PbclvatBhgchgFgernzNqncgbe5SyhfuRi:
 nop
 .text
-.globl b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVvR8TrgNeranRi
+.weak b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVvR8TrgNeranRi
 .type b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVvR8TrgNeranRi,%function
 b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVvR8TrgNeranRi:
 nop
@@ -1973,7 +1973,7 @@
 b__MA6tbbtyr8cebgbohs2vb18VfgernzVachgFgernz25PbclvatVfgernzVachgFgernzP2RCAFg3__113onfvp_vfgernzVpAF4_11pune_genvgfVpRRRR:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs8vagreany20ZretrCnegvnySebzVzcyVYo1RRRoAF0_11FgevatCvrprRCAF0_11ZrffntrYvgrR
+.weak b__MA6tbbtyr8cebgbohs8vagreany20ZretrCnegvnySebzVzcyVYo1RRRoAF0_11FgevatCvrprRCAF0_11ZrffntrYvgrR
 .type b__MA6tbbtyr8cebgbohs8vagreany20ZretrCnegvnySebzVzcyVYo1RRRoAF0_11FgevatCvrprRCAF0_11ZrffntrYvgrR,%function
 b__MA6tbbtyr8cebgbohs8vagreany20ZretrCnegvnySebzVzcyVYo1RRRoAF0_11FgevatCvrprRCAF0_11ZrffntrYvgrR:
 nop
@@ -1993,7 +1993,7 @@
 b__MA6tbbtyr8cebgbohs8vagreany14QrfgeblZrffntrRCXi:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqR2ngRv
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqR2ngRv
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqR2ngRv,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqR2ngRv:
 nop
@@ -2013,7 +2013,7 @@
 b__MA6tbbtyr8cebgbohs2vb19BfgernzBhgchgFgernz26PbclvatBfgernzBhgchgFgernzP1RCAFg3__113onfvp_bfgernzVpAF4_11pune_genvgfVpRRRR:
 nop
 .data
-.globl b__MMA6tbbtyr8cebgbohs8vagreany17QrsnhygYbtUnaqyreRAF0_8YbtYriryRCXpvEXAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRRR18naqebvq_ybt_yriryf
+.weak b__MMA6tbbtyr8cebgbohs8vagreany17QrsnhygYbtUnaqyreRAF0_8YbtYriryRCXpvEXAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRRR18naqebvq_ybt_yriryf
 .type b__MMA6tbbtyr8cebgbohs8vagreany17QrsnhygYbtUnaqyreRAF0_8YbtYriryRCXpvEXAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRRR18naqebvq_ybt_yriryf,%object
 b__MMA6tbbtyr8cebgbohs8vagreany17QrsnhygYbtUnaqyreRAF0_8YbtYriryRCXpvEXAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRRR18naqebvq_ybt_yriryf:
 .space __SIZEOF_POINTER__
@@ -2028,12 +2028,12 @@
 b__MA6tbbtyr8cebgbohs11ZrffntrYvgr27CnefrCnegvnySebzPbqrqFgernzRCAF0_2vb16PbqrqVachgFgernzR:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwR3FrgRvEXw
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwR3FrgRvEXw
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwR3FrgRvEXw,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwR3FrgRvEXw:
 nop
 .text
-.globl b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVsRvkRv
+.weak b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVsRvkRv
 .type b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVsRvkRv,%function
 b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVsRvkRv:
 nop
@@ -2043,12 +2043,12 @@
 b__MA6tbbtyr8cebgbohs4hgvy6Fgnghf9PNAPRYYRQR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVzR15hafnsr_ryrzragfRi
+.weak b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVzR15hafnsr_ryrzragfRi
 .type b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVzR15hafnsr_ryrzragfRi,%function
 b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVzR15hafnsr_ryrzragfRi:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqR9ZbirNeenlRCqF3_v
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqR9ZbirNeenlRCqF3_v
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqR9ZbirNeenlRCqF3_v,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqR9ZbirNeenlRCqF3_v:
 nop
@@ -2058,7 +2058,7 @@
 b__MA6tbbtyr8cebgbohs8vagreany12RkgrafvbaFrg8FrgVag32RvuvCXAF0_15SvryqQrfpevcgbeR:
 nop
 .text
-.globl b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVwR8ryrzragfRi
+.weak b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVwR8ryrzragfRi
 .type b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVwR8ryrzragfRi,%function
 b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVwR8ryrzragfRi:
 nop
@@ -2088,7 +2088,7 @@
 b__MA6tbbtyr8cebgbohs8vagreany12RkgrafvbaFrg24SvaqRkgrafvbaVasbSebzGntRwCAF1_15RkgrafvbaSvaqreRCvCAF1_13RkgrafvbaVasbRCo:
 nop
 .text
-.globl b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVyR3raqRi
+.weak b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVyR3raqRi
 .type b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVyR3raqRi,%function
 b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVyR3raqRi:
 nop
@@ -2143,7 +2143,7 @@
 b__MA6tbbtyr8cebgbohs2vb24PbapngrangvatVachgFgernzP1RCXCAF1_19MrebPbclVachgFgernzRv:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoR3raqRi
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoR3raqRi
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoR3raqRi,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoR3raqRi:
 nop
@@ -2173,7 +2173,7 @@
 b__MA6tbbtyr8cebgbohs2vb15SvyrVachgFgernzP1Rvv:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvRnFRBF2_
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvRnFRBF2_
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvRnFRBF2_,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvRnFRBF2_:
 nop
@@ -2193,12 +2193,12 @@
 b__MA6tbbtyr8cebgbohs2vb25PbclvatVachgFgernzNqncgbeQ1Ri:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwR8GehapngrRv
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwR8GehapngrRv
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwR8GehapngrRv,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwR8GehapngrRv:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRRnFREXF9_
+.weak b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRRnFREXF9_
 .type b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRRnFREXF9_,%function
 b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRRnFREXF9_:
 nop
@@ -2213,12 +2213,12 @@
 b__MA6tbbtyr8cebgbohs2vb16PbqrqVachgFgernz8CbcYvzvgRv:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsRP2RBF2_
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsRP2RBF2_
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsRP2RBF2_,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsRP2RBF2_:
 nop
 .text
-.globl b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVzR26FcnprHfrqRkpyhqvatFrysYbatRi
+.weak b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVzR26FcnprHfrqRkpyhqvatFrysYbatRi
 .type b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVzR26FcnprHfrqRkpyhqvatFrysYbatRi,%function
 b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVzR26FcnprHfrqRkpyhqvatFrysYbatRi:
 nop
@@ -2233,7 +2233,7 @@
 b__MA6tbbtyr8cebgbohs8vagreany9NeranVzcy12guernq_pnpurRi:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqR15RkgenpgFhoenatrRvvCq
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqR15RkgenpgFhoenatrRvvCq
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqR15RkgenpgFhoenatrRvvCq,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqR15RkgenpgFhoenatrRvvCq:
 nop
@@ -2253,7 +2253,7 @@
 b__MA6tbbtyr8cebgbohs8vagreany20CnpxrqFSvkrq32CnefreRCiCXpCAF1_12CnefrPbagrkgR:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzR3NqqRi
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzR3NqqRi
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzR3NqqRi,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzR3NqqRi:
 nop
@@ -2268,7 +2268,7 @@
 b__MA6tbbtyr8cebgbohs8vagreany14JverSbezngYvgr9FxvcSvryqRCAF0_2vb16PbqrqVachgFgernzRw:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs8vagreany21neran_qrfgehpg_bowrpgVAF0_13ErcrngrqSvryqVsRRRRiCi
+.weak b__MA6tbbtyr8cebgbohs8vagreany21neran_qrfgehpg_bowrpgVAF0_13ErcrngrqSvryqVsRRRRiCi
 .type b__MA6tbbtyr8cebgbohs8vagreany21neran_qrfgehpg_bowrpgVAF0_13ErcrngrqSvryqVsRRRRiCi,%function
 b__MA6tbbtyr8cebgbohs8vagreany21neran_qrfgehpg_bowrpgVAF0_13ErcrngrqSvryqVsRRRRiCi:
 nop
@@ -2278,12 +2278,12 @@
 b__MA6tbbtyr8cebgbohs2vb16SvyrBhgchgFgernzP1Rvv:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoR4FjncRCF2_
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoR4FjncRCF2_
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoR4FjncRCF2_,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoR4FjncRCF2_:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyR12VagreanyFjncRCF2_
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyR12VagreanyFjncRCF2_
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyR12VagreanyFjncRCF2_,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyR12VagreanyFjncRCF2_:
 nop
@@ -2308,37 +2308,37 @@
 b__MAX6tbbtyr8cebgbohs11ZrffntrYvgr25FrevnyvmrGbMrebPbclFgernzRCAF0_2vb20MrebPbclBhgchgFgernzR:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqR12VagreanyFjncRCF2_
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqR12VagreanyFjncRCF2_
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqR12VagreanyFjncRCF2_,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqR12VagreanyFjncRCF2_:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwRQ2Ri
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwRQ2Ri
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwRQ2Ri,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwRQ2Ri:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs8vagreany18RcfPbclVachgFgernz15ErnqCnpxrqSvkrqVwRRCXpF5_vCAF0_13ErcrngrqSvryqVG_RR
+.weak b__MA6tbbtyr8cebgbohs8vagreany18RcfPbclVachgFgernz15ErnqCnpxrqSvkrqVwRRCXpF5_vCAF0_13ErcrngrqSvryqVG_RR
 .type b__MA6tbbtyr8cebgbohs8vagreany18RcfPbclVachgFgernz15ErnqCnpxrqSvkrqVwRRCXpF5_vCAF0_13ErcrngrqSvryqVG_RR,%function
 b__MA6tbbtyr8cebgbohs8vagreany18RcfPbclVachgFgernz15ErnqCnpxrqSvkrqVwRRCXpF5_vCAF0_13ErcrngrqSvryqVG_RR:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsRP2RCAF0_5NeranR
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsRP2RCAF0_5NeranR
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsRP2RCAF0_5NeranR,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsRP2RCAF0_5NeranR:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoR6ErfvmrRvEXo
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoR6ErfvmrRvEXo
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoR6ErfvmrRvEXo,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoR6ErfvmrRvEXo:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqR4FjncRCF2_
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqR4FjncRCF2_
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqR4FjncRCF2_,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqR4FjncRCF2_:
 nop
 .text
-.globl b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVsR3TrgRv
+.weak b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVsR3TrgRv
 .type b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVsR3TrgRv,%function
 b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVsR3TrgRv:
 nop
@@ -2348,7 +2348,7 @@
 b__MA6tbbtyr8cebgbohs2vb17PbqrqBhgchgFgernz26JevgrFgevatJvguFvmrGbNeenlREXAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRRCu:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvRP1RCAF0_5NeranR
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvRP1RCAF0_5NeranR
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvRP1RCAF0_5NeranR,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvRP1RCAF0_5NeranR:
 nop
@@ -2358,7 +2358,7 @@
 b__MA6tbbtyr8cebgbohs8vagreany14JverSbezngYvgr21xZrffntrFrgZrffntrGntR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA6tbbtyr8cebgbohs8vagreany21neran_qrfgehpg_bowrpgVAFg3__13zncVvAF1_12RkgrafvbaFrg9RkgrafvbaRAF3_4yrffVvRRAF3_9nyybpngbeVAF3_4cnveVXvF6_RRRRRRRRiCi
+.weak b__MA6tbbtyr8cebgbohs8vagreany21neran_qrfgehpg_bowrpgVAFg3__13zncVvAF1_12RkgrafvbaFrg9RkgrafvbaRAF3_4yrffVvRRAF3_9nyybpngbeVAF3_4cnveVXvF6_RRRRRRRRiCi
 .type b__MA6tbbtyr8cebgbohs8vagreany21neran_qrfgehpg_bowrpgVAFg3__13zncVvAF1_12RkgrafvbaFrg9RkgrafvbaRAF3_4yrffVvRRAF3_9nyybpngbeVAF3_4cnveVXvF6_RRRRRRRRiCi,%function
 b__MA6tbbtyr8cebgbohs8vagreany21neran_qrfgehpg_bowrpgVAFg3__13zncVvAF1_12RkgrafvbaFrg9RkgrafvbaRAF3_4yrffVvRRAF3_9nyybpngbeVAF3_4cnveVXvF6_RRRRRRRRiCi:
 nop
@@ -2378,7 +2378,7 @@
 b__MA6tbbtyr8cebgbohs8vagreany12RkgrafvbaFrg13ZhgnoyrFgevatRvuCXAF0_15SvryqQrfpevcgbeR:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsR4FjncRCF2_
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsR4FjncRCF2_
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsR4FjncRCF2_,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsR4FjncRCF2_:
 nop
@@ -2393,7 +2393,7 @@
 b__MA6tbbtyr8cebgbohs8vagreany11JevgrInevagRwzCAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRR:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwRP1RBF2_
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwRP1RBF2_
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwRP1RBF2_,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwRP1RBF2_:
 nop
@@ -2413,7 +2413,7 @@
 b__MA6tbbtyr8cebgbohs2vb19YvzvgvatVachgFgernzQ0Ri:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs8vagreany16JverSbezngCnefreVAF1_28HaxabjaSvryqYvgrCnefreUrycreRRRCXpEG_F5_CAF1_12CnefrPbagrkgR
+.weak b__MA6tbbtyr8cebgbohs8vagreany16JverSbezngCnefreVAF1_28HaxabjaSvryqYvgrCnefreUrycreRRRCXpEG_F5_CAF1_12CnefrPbagrkgR
 .type b__MA6tbbtyr8cebgbohs8vagreany16JverSbezngCnefreVAF1_28HaxabjaSvryqYvgrCnefreUrycreRRRCXpEG_F5_CAF1_12CnefrPbagrkgR,%function
 b__MA6tbbtyr8cebgbohs8vagreany16JverSbezngCnefreVAF1_28HaxabjaSvryqYvgrCnefreUrycreRRRCXpEG_F5_CAF1_12CnefrPbagrkgR:
 nop
@@ -2423,27 +2423,27 @@
 b__MA6tbbtyr8cebgbohs8vagreany28VayvarTerrqlFgevatCnefreHGS8RCAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRCXpCAF1_12CnefrPbagrkgRFO_:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsR12zhgnoyr_qngnRi
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsR12zhgnoyr_qngnRi
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsR12zhgnoyr_qngnRi,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsR12zhgnoyr_qngnRi:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsR4eraqRi
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsR4eraqRi
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsR4eraqRi,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsR4eraqRi:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsR8PbclSebzREXF2_
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsR8PbclSebzREXF2_
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsR8PbclSebzREXF2_,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsR8PbclSebzREXF2_:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwR4FjncRCF2_
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwR4FjncRCF2_
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwR4FjncRCF2_,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwR4FjncRCF2_:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyRvkRv
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyRvkRv
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyRvkRv,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyRvkRv:
 nop
@@ -2478,7 +2478,7 @@
 b__MA6tbbtyr8cebgbohs8vagreany18RcfPbclVachgFgernz12FxvcSnyyonpxRCXpv:
 nop
 .text
-.globl b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVqR4eraqRi
+.weak b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVqR4eraqRi
 .type b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVqR4eraqRi,%function
 b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVqR4eraqRi:
 nop
@@ -2493,12 +2493,12 @@
 b__MA6tbbtyr8cebgbohs2vb16SvyrBhgchgFgernz23PbclvatSvyrBhgchgFgernz5JevgrRCXiv:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsR5renfrRCXsF4_
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsR5renfrRCXsF4_
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsR5renfrRCXsF4_,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsR5renfrRCXsF4_:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyR4FjncRCF2_
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyR4FjncRCF2_
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyR4FjncRCF2_,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyR4FjncRCF2_:
 nop
@@ -2508,7 +2508,7 @@
 b__MA6tbbtyr8cebgbohs2vb16PbqrqVachgFgernz28OnpxHcVachgGbPheeragCbfvgvbaRi:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs8vagreany18RcfPbclVachgFgernz16ErnqCnpxrqInevagVMAF1_12InevagCnefreVyYo1RRRCXpCiF6_CAF1_12CnefrPbagrkgRRHyzR_RRF6_F6_G_
+.weak b__MA6tbbtyr8cebgbohs8vagreany18RcfPbclVachgFgernz16ErnqCnpxrqInevagVMAF1_12InevagCnefreVyYo1RRRCXpCiF6_CAF1_12CnefrPbagrkgRRHyzR_RRF6_F6_G_
 .type b__MA6tbbtyr8cebgbohs8vagreany18RcfPbclVachgFgernz16ErnqCnpxrqInevagVMAF1_12InevagCnefreVyYo1RRRCXpCiF6_CAF1_12CnefrPbagrkgRRHyzR_RRF6_F6_G_,%function
 b__MA6tbbtyr8cebgbohs8vagreany18RcfPbclVachgFgernz16ErnqCnpxrqInevagVMAF1_12InevagCnefreVyYo1RRRCXpCiF6_CAF1_12CnefrPbagrkgRRHyzR_RRF6_F6_G_:
 nop
@@ -2518,7 +2518,7 @@
 b__MA6tbbtyr8cebgbohs8vagreany23VfFgehpghenyylInyvqHGS8RCXpv:
 nop
 .text
-.globl b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVyR6eortvaRi
+.weak b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVyR6eortvaRi
 .type b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVyR6eortvaRi,%function
 b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVyR6eortvaRi:
 nop
@@ -2583,27 +2583,27 @@
 b__MAX6tbbtyr8cebgbohs11FgevatCvrpr4svaqRpz:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs8vagreany18FrevnyvmrZrffntrGbVAF0_2vb17PbqrqBhgchgFgernzRRRiCXAF0_11ZrffntrYvgrRCXiCG_
+.weak b__MA6tbbtyr8cebgbohs8vagreany18FrevnyvmrZrffntrGbVAF0_2vb17PbqrqBhgchgFgernzRRRiCXAF0_11ZrffntrYvgrRCXiCG_
 .type b__MA6tbbtyr8cebgbohs8vagreany18FrevnyvmrZrffntrGbVAF0_2vb17PbqrqBhgchgFgernzRRRiCXAF0_11ZrffntrYvgrRCXiCG_,%function
 b__MA6tbbtyr8cebgbohs8vagreany18FrevnyvmrZrffntrGbVAF0_2vb17PbqrqBhgchgFgernzRRRiCXAF0_11ZrffntrYvgrRCXiCG_:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyR15RkgenpgFhoenatrRvvCy
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyR15RkgenpgFhoenatrRvvCy
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyR15RkgenpgFhoenatrRvvCy,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyR15RkgenpgFhoenatrRvvCy:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzR3raqRi
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzR3raqRi
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzR3raqRi,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzR3raqRi:
 nop
 .text
-.globl b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVyR17TrgNeranAbIveghnyRi
+.weak b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVyR17TrgNeranAbIveghnyRi
 .type b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVyR17TrgNeranAbIveghnyRi,%function
 b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVyR17TrgNeranAbIveghnyRi:
 nop
 .text
-.globl b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVyR4fvmrRi
+.weak b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVyR4fvmrRi
 .type b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVyR4fvmrRi,%function
 b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVyR4fvmrRi:
 nop
@@ -2618,7 +2618,7 @@
 b__MA6tbbtyr8cebgbohs9FgeNccraqRCAFg3__112onfvp_fgevatVpAF1_11pune_genvgfVpRRAF1_9nyybpngbeVpRRRREXAF0_7fgevatf8NycunAhzRFP_:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRRQ1Ri
+.weak b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRRQ1Ri
 .type b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRRQ1Ri,%function
 b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRRQ1Ri:
 nop
@@ -2653,7 +2653,7 @@
 b__MA6tbbtyr8cebgbohs8vagreany18CnpxrqHVag64CnefreRCiCXpCAF1_12CnefrPbagrkgR:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqR10ErzbirYnfgRi
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqR10ErzbirYnfgRi
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqR10ErzbirYnfgRi,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqR10ErzbirYnfgRi:
 nop
@@ -2678,7 +2678,7 @@
 b__MGIA6tbbtyr8cebgbohs11ZrffntrYvgrR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVqR6portvaRi
+.weak b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVqR6portvaRi
 .type b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVqR6portvaRi,%function
 b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVqR6portvaRi:
 nop
@@ -2688,17 +2688,17 @@
 b__MA6tbbtyr8cebgbohs7fgevatf20TebjvatNeenlOlgrFvax9TrgOhssreRCz:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyRP2Ri
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyRP2Ri
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyRP2Ri,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyRP2Ri:
 nop
 .text
-.globl b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVwR4praqRi
+.weak b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVwR4praqRi
 .type b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVwR4praqRi,%function
 b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVwR4praqRi:
 nop
 .text
-.globl b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVwR4qngnRi
+.weak b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVwR4qngnRi
 .type b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVwR4qngnRi,%function
 b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVwR4qngnRi:
 nop
@@ -2713,17 +2713,17 @@
 b__MA6tbbtyr8cebgbohs2vb16PbqrqVachgFgernz10ErnqFgevatRCAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRRv:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoR7ZhgnoyrRv
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoR7ZhgnoyrRv
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoR7ZhgnoyrRv,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoR7ZhgnoyrRv:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvR3FrgRvEXv
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvR3FrgRvEXv
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvR3FrgRvEXv,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvR3FrgRvEXv:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR7ZhgnoyrRv
+.weak b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR7ZhgnoyrRv
 .type b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR7ZhgnoyrRv,%function
 b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR7ZhgnoyrRv:
 nop
@@ -2778,7 +2778,7 @@
 b__MA6tbbtyr8cebgbohs2vb18VfgernzVachgFgernz25PbclvatVfgernzVachgFgernzQ0Ri:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqR7ZhgnoyrRv
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqR7ZhgnoyrRv
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqR7ZhgnoyrRv,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqR7ZhgnoyrRv:
 nop
@@ -2808,37 +2808,37 @@
 b__MA6tbbtyr8cebgbohs8vagreany14JverSbezngYvgr17JevgrSvkrq64NeenlRCXzvCAF0_2vb17PbqrqBhgchgFgernzR:
 nop
 .text
-.globl b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVsR2ngRv
+.weak b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVsR2ngRv
 .type b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVsR2ngRv,%function
 b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVsR2ngRv:
 nop
 .text
-.globl b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVvR4eraqRi
+.weak b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVvR4eraqRi
 .type b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVvR4eraqRi,%function
 b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVvR4eraqRi:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsR7ZhgnoyrRv
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsR7ZhgnoyrRv
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsR7ZhgnoyrRv,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsR7ZhgnoyrRv:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsRP1RCAF0_5NeranR
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsRP1RCAF0_5NeranR
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsRP1RCAF0_5NeranR,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsRP1RCAF0_5NeranR:
 nop
 .text
-.globl b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVoR3raqRi
+.weak b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVoR3raqRi
 .type b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVoR3raqRi,%function
 b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVoR3raqRi:
 nop
 .text
-.globl b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVqR8TrgNeranRi
+.weak b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVqR8TrgNeranRi
 .type b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVqR8TrgNeranRi,%function
 b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVqR8TrgNeranRi:
 nop
 .text
-.globl b__MAX6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR22FcnprHfrqRkpyhqvatFrysRi
+.weak b__MAX6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR22FcnprHfrqRkpyhqvatFrysRi
 .type b__MAX6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR22FcnprHfrqRkpyhqvatFrysRi,%function
 b__MAX6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR22FcnprHfrqRkpyhqvatFrysRi:
 nop
@@ -2853,7 +2853,7 @@
 b__MA6tbbtyr8cebgbohs2vb17PbqrqBhgchgFgernzP2RCAF1_20MrebPbclBhgchgFgernzRo:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs11ZrffntrYvgr9CnefrSebzVYAF1_10CnefrSyntfR3RAFg3__112onfvp_fgevatVpAF4_11pune_genvgfVpRRAF4_9nyybpngbeVpRRRRRRoEXG0_
+.weak b__MA6tbbtyr8cebgbohs11ZrffntrYvgr9CnefrSebzVYAF1_10CnefrSyntfR3RAFg3__112onfvp_fgevatVpAF4_11pune_genvgfVpRRAF4_9nyybpngbeVpRRRRRRoEXG0_
 .type b__MA6tbbtyr8cebgbohs11ZrffntrYvgr9CnefrSebzVYAF1_10CnefrSyntfR3RAFg3__112onfvp_fgevatVpAF4_11pune_genvgfVpRRAF4_9nyybpngbeVpRRRRRRoEXG0_,%function
 b__MA6tbbtyr8cebgbohs11ZrffntrYvgr9CnefrSebzVYAF1_10CnefrSyntfR3RAFg3__112onfvp_fgevatVpAF4_11pune_genvgfVpRRAF4_9nyybpngbeVpRRRRRRoEXG0_:
 nop
@@ -2863,17 +2863,17 @@
 b__MAX6tbbtyr8cebgbohs11ZrffntrYvgr16FrevnyvmrGbNeenlRCiv:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyR7ZhgnoyrRv
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyR7ZhgnoyrRv
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyR7ZhgnoyrRv,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyR7ZhgnoyrRv:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzR18NqqNyernqlErfreirqRi
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzR18NqqNyernqlErfreirqRi
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzR18NqqNyernqlErfreirqRi,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzR18NqqNyernqlErfreirqRi:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR4eraqRi
+.weak b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR4eraqRi
 .type b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR4eraqRi,%function
 b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR4eraqRi:
 nop
@@ -2888,7 +2888,7 @@
 b__MA6tbbtyr8cebgbohs11ZrffntrYvgr15ZretrSebzFgevatREXAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRR:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwR7ZhgnoyrRv
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwR7ZhgnoyrRv
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwR7ZhgnoyrRv,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwR7ZhgnoyrRv:
 nop
@@ -2898,12 +2898,12 @@
 b__MA6tbbtyr8cebgbohs2vb26PbclvatBhgchgFgernzNqncgbeQ1Ri:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoR9ZretrSebzREXF2_
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoR9ZretrSebzREXF2_
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoR9ZretrSebzREXF2_,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoR9ZretrSebzREXF2_:
 nop
 .text
-.globl b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVoR6eortvaRi
+.weak b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVoR6eortvaRi
 .type b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVoR6eortvaRi,%function
 b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVoR6eortvaRi:
 nop
@@ -2913,7 +2913,7 @@
 b__MA6tbbtyr8cebgbohs8vagreany12RkgrafvbaFrg25HafnsrNeranEryrnfrZrffntrRvEXAF0_11ZrffntrYvgrR:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR6eortvaRi
+.weak b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR6eortvaRi
 .type b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR6eortvaRi,%function
 b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR6eortvaRi:
 nop
@@ -2928,7 +2928,7 @@
 b__MGIA6tbbtyr8cebgbohs2vb20MrebPbclBhgchgFgernzR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR5ortvaRi
+.weak b__MAX6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR5ortvaRi
 .type b__MAX6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR5ortvaRi,%function
 b__MAX6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR5ortvaRi:
 nop
@@ -2948,22 +2948,22 @@
 b__MAX6tbbtyr8cebgbohs11ZrffntrYvgr25FrevnyvmrCnegvnyGbBfgernzRCAFg3__113onfvp_bfgernzVpAF2_11pune_genvgfVpRRRR:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsR6eortvaRi
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsR6eortvaRi
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsR6eortvaRi,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsR6eortvaRi:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRRnFRBF9_
+.weak b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRRnFRBF9_
 .type b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRRnFRBF9_,%function
 b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRRnFRBF9_:
 nop
 .text
-.globl b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVzR6portvaRi
+.weak b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVzR6portvaRi
 .type b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVzR6portvaRi,%function
 b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVzR6portvaRi:
 nop
 .text
-.globl b__MAX6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR8PncnpvglRi
+.weak b__MAX6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR8PncnpvglRi
 .type b__MAX6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR8PncnpvglRi,%function
 b__MAX6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR8PncnpvglRi:
 nop
@@ -2993,12 +2993,12 @@
 b__MA6tbbtyr8cebgbohs2vb19BfgernzBhgchgFgernz6OnpxHcRv:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqRQ2Ri
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqRQ2Ri
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqRQ2Ri,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqRQ2Ri:
 nop
 .text
-.globl b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVyR8ryrzragfRi
+.weak b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVyR8ryrzragfRi
 .type b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVyR8ryrzragfRi,%function
 b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVyR8ryrzragfRi:
 nop
@@ -3028,17 +3028,17 @@
 b__MA6tbbtyr8cebgbohs8vagreany13IrevslIrefvbaRvvCXp:
 nop
 .text
-.globl b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9conpxsnvyRv
+.weak b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9conpxsnvyRv
 .type b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9conpxsnvyRv,%function
 b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9conpxsnvyRv:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoR2ngRv
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoR2ngRv
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoR2ngRv,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoR2ngRv:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvR10ErzbirYnfgRi
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvR10ErzbirYnfgRi
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvR10ErzbirYnfgRi,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvR10ErzbirYnfgRi:
 nop
@@ -3058,7 +3058,7 @@
 b__MA6tbbtyr8cebgbohs21FcyvgFgevatNyybjRzcglREXAFg3__112onfvp_fgevatVpAF1_11pune_genvgfVpRRAF1_9nyybpngbeVpRRRRCXpCAF1_6irpgbeVF7_AF5_VF7_RRRR:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF6_RRR21__chfu_onpx_fybj_cnguVF6_RRiBG_
+.weak b__MAFg3__16irpgbeVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF6_RRR21__chfu_onpx_fybj_cnguVF6_RRiBG_
 .type b__MAFg3__16irpgbeVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF6_RRR21__chfu_onpx_fybj_cnguVF6_RRiBG_,%function
 b__MAFg3__16irpgbeVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF6_RRR21__chfu_onpx_fybj_cnguVF6_RRiBG_:
 nop
@@ -3068,12 +3068,12 @@
 b__MA6tbbtyr8cebgbohs2vb17PbqrqBhgchgFgernz14RanoyrNyvnfvatRo:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoR18VagreanyQrnyybpngrRCAF2_3ErcRv
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoR18VagreanyQrnyybpngrRCAF2_3ErcRv
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoR18VagreanyQrnyybpngrRCAF2_3ErcRv,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoR18VagreanyQrnyybpngrRCAF2_3ErcRv:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwR9ZbirNeenlRCwF3_v
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwR9ZbirNeenlRCwF3_v
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwR9ZbirNeenlRCwF3_v,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwR9ZbirNeenlRCwF3_v:
 nop
@@ -3103,7 +3103,7 @@
 b__MGIA6tbbtyr8cebgbohs8vagreany15RkgrafvbaSvaqreR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsRvkRv
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsRvkRv
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsRvkRv,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsRvkRv:
 nop
@@ -3113,17 +3113,17 @@
 b__MA6tbbtyr8cebgbohs8vagreany12RkgrafvbaFrg10CnefrSvryqRwCAF0_2vb16PbqrqVachgFgernzRCXAF0_11ZrffntrYvgrRCAF3_17PbqrqBhgchgFgernzR:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoRP2RBF2_
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoRP2RBF2_
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoRP2RBF2_,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoRP2RBF2_:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR15HafnsrNeranFjncRCF9_
+.weak b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR15HafnsrNeranFjncRCF9_
 .type b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR15HafnsrNeranFjncRCF9_,%function
 b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR15HafnsrNeranFjncRCF9_:
 nop
 .text
-.globl b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVsR3ercRi
+.weak b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVsR3ercRi
 .type b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVsR3ercRi,%function
 b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVsR3ercRi:
 nop
@@ -3133,7 +3133,7 @@
 b__MA6tbbtyr8cebgbohs4hgvy6Fgnghf7HAXABJAR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA6tbbtyr8cebgbohs8vagreany21neran_qrfgehpg_bowrpgVAF0_13ErcrngrqSvryqVyRRRRiCi
+.weak b__MA6tbbtyr8cebgbohs8vagreany21neran_qrfgehpg_bowrpgVAF0_13ErcrngrqSvryqVyRRRRiCi
 .type b__MA6tbbtyr8cebgbohs8vagreany21neran_qrfgehpg_bowrpgVAF0_13ErcrngrqSvryqVyRRRRiCi,%function
 b__MA6tbbtyr8cebgbohs8vagreany21neran_qrfgehpg_bowrpgVAF0_13ErcrngrqSvryqVyRRRRiCi:
 nop
@@ -3148,12 +3148,12 @@
 b__MA6tbbtyr8cebgbohs8vagreany16CnpxrqRahzCnefreRCiCXpCAF1_12CnefrPbagrkgRCSovRCAF1_29VagreanyZrgnqngnJvguNeranYvgrRv:
 nop
 .text
-.globl b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVzR17TrgNeranAbIveghnyRi
+.weak b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVzR17TrgNeranAbIveghnyRi
 .type b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVzR17TrgNeranAbIveghnyRi,%function
 b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVzR17TrgNeranAbIveghnyRi:
 nop
 .text
-.globl b__MAX6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR11cbvagre_raqRi
+.weak b__MAX6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR11cbvagre_raqRi
 .type b__MAX6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR11cbvagre_raqRi,%function
 b__MAX6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR11cbvagre_raqRi:
 nop
@@ -3163,12 +3163,12 @@
 b__MA6tbbtyr8cebgbohs8vagreany9NeranVzcy14TrgFrevnyNeranRi:
 nop
 .text
-.globl b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVoR8PncnpvglRi
+.weak b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVoR8PncnpvglRi
 .type b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVoR8PncnpvglRi,%function
 b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVoR8PncnpvglRi:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoR12FjncRyrzragfRvv
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoR12FjncRyrzragfRvv
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoR12FjncRyrzragfRvv,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoR12FjncRyrzragfRvv:
 nop
@@ -3178,12 +3178,12 @@
 b__MGIA6tbbtyr8cebgbohs2vb18VfgernzVachgFgernz25PbclvatVfgernzVachgFgernzR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwRP1Ri
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwRP1Ri
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwRP1Ri,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwRP1Ri:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyR8GehapngrRv
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyR8GehapngrRv
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyR8GehapngrRv,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyR8GehapngrRv:
 nop
@@ -3198,12 +3198,12 @@
 b__MA6tbbtyr8cebgbohs8vagreany15CnefrNalGlcrHeyREXAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRCF8_:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRRP2REXF9_
+.weak b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRRP2REXF9_
 .type b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRRP2REXF9_,%function
 b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRRP2REXF9_:
 nop
 .text
-.globl b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVyR3TrgRv
+.weak b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVyR3TrgRv
 .type b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVyR3TrgRv,%function
 b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVyR3TrgRv:
 nop
@@ -3218,7 +3218,7 @@
 b__MGIA6tbbtyr8cebgbohs2vb24PbapngrangvatVachgFgernzR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoR15HafnsrNeranFjncRCF2_
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoR15HafnsrNeranFjncRCF2_
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoR15HafnsrNeranFjncRCF2_,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoR15HafnsrNeranFjncRCF2_:
 nop
@@ -3228,12 +3228,12 @@
 b__MA6tbbtyr8cebgbohs6FgePngREXAF0_7fgevatf8NycunAhzRF4_F4_F4_F4_:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzR6ErfvmrRvEXz
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzR6ErfvmrRvEXz
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzR6ErfvmrRvEXz,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzR6ErfvmrRvEXz:
 nop
 .text
-.globl b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVvR8PncnpvglRi
+.weak b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVvR8PncnpvglRi
 .type b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVvR8PncnpvglRi,%function
 b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVvR8PncnpvglRi:
 nop
@@ -3248,12 +3248,12 @@
 b__MA6tbbtyr8cebgbohs2vb16PbqrqVachgFgernz18ErnqFgevatSnyyonpxRCAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRRv:
 nop
 .text
-.globl b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVzR3raqRi
+.weak b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVzR3raqRi
 .type b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVzR3raqRi,%function
 b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVzR3raqRi:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzRQ1Ri
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzRQ1Ri
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzRQ1Ri,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzRQ1Ri:
 nop
@@ -3263,7 +3263,7 @@
 b__MA6tbbtyr8cebgbohs8vagreany24VayvarTerrqlFgevatCnefreRCAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRCXpCAF1_12CnefrPbagrkgR:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyR9ZretrSebzREXF2_
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyR9ZretrSebzREXF2_
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyR9ZretrSebzREXF2_,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyR9ZretrSebzREXF2_:
 nop
@@ -3273,22 +3273,22 @@
 b__MA6tbbtyr8cebgbohs2vb18VfgernzVachgFgernz6OnpxHcRv:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs8vagreany20ZretrCnegvnySebzVzcyVYo0RRRoAF1_11ObhaqrqMPVFRCAF0_11ZrffntrYvgrR
+.weak b__MA6tbbtyr8cebgbohs8vagreany20ZretrCnegvnySebzVzcyVYo0RRRoAF1_11ObhaqrqMPVFRCAF0_11ZrffntrYvgrR
 .type b__MA6tbbtyr8cebgbohs8vagreany20ZretrCnegvnySebzVzcyVYo0RRRoAF1_11ObhaqrqMPVFRCAF0_11ZrffntrYvgrR,%function
 b__MA6tbbtyr8cebgbohs8vagreany20ZretrCnegvnySebzVzcyVYo0RRRoAF1_11ObhaqrqMPVFRCAF0_11ZrffntrYvgrR:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsRP2Ri
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsRP2Ri
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsRP2Ri,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsRP2Ri:
 nop
 .text
-.globl b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVoR17TrgNeranAbIveghnyRi
+.weak b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVoR17TrgNeranAbIveghnyRi
 .type b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVoR17TrgNeranAbIveghnyRi,%function
 b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVoR17TrgNeranAbIveghnyRi:
 nop
 .text
-.globl b__MAX6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR4fvmrRi
+.weak b__MAX6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR4fvmrRi
 .type b__MAX6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR4fvmrRi,%function
 b__MAX6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR4fvmrRi:
 nop
@@ -3308,7 +3308,7 @@
 b__MA6tbbtyr8cebgbohs8vagreany14JverSbezngYvgr9FxvcSvryqRCAF0_2vb16PbqrqVachgFgernzRwCAF3_17PbqrqBhgchgFgernzR:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsRP1RBF2_
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsRP1RBF2_
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsRP1RBF2_,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsRP1RBF2_:
 nop
@@ -3318,22 +3318,22 @@
 b__MA6tbbtyr8cebgbohs11ZrffntrYvgr30CnefrCnegvnySebzMrebPbclFgernzRCAF0_2vb19MrebPbclVachgFgernzR:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoR4eraqRi
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoR4eraqRi
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoR4eraqRi,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoR4eraqRi:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqR18NqqNyernqlErfreirqRi
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqR18NqqNyernqlErfreirqRi
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqR18NqqNyernqlErfreirqRi,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqR18NqqNyernqlErfreirqRi:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvR5renfrRCXv
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvR5renfrRCXv
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvR5renfrRCXv,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvR5renfrRCXv:
 nop
 .data
-.globl b__MGPAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_13onfvp_bfgernzVpF2_RR
+.weak b__MGPAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_13onfvp_bfgernzVpF2_RR
 .type b__MGPAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_13onfvp_bfgernzVpF2_RR,%object
 b__MGPAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_13onfvp_bfgernzVpF2_RR:
 .space __SIZEOF_POINTER__
@@ -3353,12 +3353,12 @@
 b__MA6tbbtyr8cebgbohs11ZrffntrYvgr15CnefrSebzFgevatREXAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRR:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqR12FjncRyrzragfRvv
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqR12FjncRyrzragfRvv
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqR12FjncRyrzragfRvv,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqR12FjncRyrzragfRvv:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvR7ErfreirRv
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvR7ErfreirRv
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvR7ErfreirRv,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvR7ErfreirRv:
 nop
@@ -3373,12 +3373,12 @@
 b__MA6tbbtyr8cebgbohs8vagreany14JverSbezngYvgr12JevgrSvkrq32RvwCAF0_2vb17PbqrqBhgchgFgernzR:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwR15HafnsrNeranFjncRCF2_
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwR15HafnsrNeranFjncRCF2_
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwR15HafnsrNeranFjncRCF2_,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwR15HafnsrNeranFjncRCF2_:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzR2ngRv
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzR2ngRv
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzR2ngRv,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzR2ngRv:
 nop
@@ -3413,12 +3413,12 @@
 b__MA6tbbtyr8cebgbohs4hgvy6FgnghfnFREXF2_:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoRQ1Ri
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoRQ1Ri
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoRQ1Ri,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoRQ1Ri:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzR7ErfreirRv
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzR7ErfreirRv
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzR7ErfreirRv,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzR7ErfreirRv:
 nop
@@ -3428,12 +3428,12 @@
 b__MGIA6tbbtyr8cebgbohs2vb16SvyrBhgchgFgernz23PbclvatSvyrBhgchgFgernzR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvRQ2Ri
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvRQ2Ri
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvRQ2Ri,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvRQ2Ri:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwRnFRBF2_
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwRnFRBF2_
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwRnFRBF2_,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwRnFRBF2_:
 nop
@@ -3463,7 +3463,7 @@
 b__MA6tbbtyr8cebgbohs2vb17PbqrqBhgchgFgernz4FxvcRv:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs8vagreany18RcfPbclVachgFgernz15ErnqCnpxrqSvkrqVqRRCXpF5_vCAF0_13ErcrngrqSvryqVG_RR
+.weak b__MA6tbbtyr8cebgbohs8vagreany18RcfPbclVachgFgernz15ErnqCnpxrqSvkrqVqRRCXpF5_vCAF0_13ErcrngrqSvryqVG_RR
 .type b__MA6tbbtyr8cebgbohs8vagreany18RcfPbclVachgFgernz15ErnqCnpxrqSvkrqVqRRCXpF5_vCAF0_13ErcrngrqSvryqVG_RR,%function
 b__MA6tbbtyr8cebgbohs8vagreany18RcfPbclVachgFgernz15ErnqCnpxrqSvkrqVqRRCXpF5_vCAF0_13ErcrngrqSvryqVG_RR:
 nop
@@ -3483,7 +3483,7 @@
 b__MA6tbbtyr8cebgbohs8vagreany12RkgrafvbaFrg9FrgHVag64RvuzCXAF0_15SvryqQrfpevcgbeR:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVvA6tbbtyr8cebgbohs8vagreany12RkgrafvbaFrg9RkgrafvbaRRRAF_19__znc_inyhr_pbzcnerVvF7_AF_4yrffVvRRYo1RRRAF_9nyybpngbeVF7_RRR14__renfr_havdhrVvRRzEXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVvA6tbbtyr8cebgbohs8vagreany12RkgrafvbaFrg9RkgrafvbaRRRAF_19__znc_inyhr_pbzcnerVvF7_AF_4yrffVvRRYo1RRRAF_9nyybpngbeVF7_RRR14__renfr_havdhrVvRRzEXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVvA6tbbtyr8cebgbohs8vagreany12RkgrafvbaFrg9RkgrafvbaRRRAF_19__znc_inyhr_pbzcnerVvF7_AF_4yrffVvRRYo1RRRAF_9nyybpngbeVF7_RRR14__renfr_havdhrVvRRzEXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVvA6tbbtyr8cebgbohs8vagreany12RkgrafvbaFrg9RkgrafvbaRRRAF_19__znc_inyhr_pbzcnerVvF7_AF_4yrffVvRRYo1RRRAF_9nyybpngbeVF7_RRR14__renfr_havdhrVvRRzEXG_:
 nop
@@ -3498,12 +3498,12 @@
 b__MA6tbbtyr8cebgbohs8vagreany21HaxabjaTebhcYvgrCnefrRCAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRCXpCAF1_12CnefrPbagrkgR:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyR18NqqNyernqlErfreirqRi
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyR18NqqNyernqlErfreirqRi
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyR18NqqNyernqlErfreirqRi,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyR18NqqNyernqlErfreirqRi:
 nop
 .text
-.globl b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVyR26FcnprHfrqRkpyhqvatFrysYbatRi
+.weak b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVyR26FcnprHfrqRkpyhqvatFrysYbatRi
 .type b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVyR26FcnprHfrqRkpyhqvatFrysYbatRi,%function
 b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVyR26FcnprHfrqRkpyhqvatFrysYbatRi:
 nop
@@ -3528,7 +3528,7 @@
 b__MA6tbbtyr8cebgbohs11ZrffntrYvgr21CnefrCnegvnySebzNeenlRCXiv:
 nop
 .text
-.globl b__MAX6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR2ngRv
+.weak b__MAX6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR2ngRv
 .type b__MAX6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR2ngRv,%function
 b__MAX6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR2ngRv:
 nop
@@ -3558,17 +3558,17 @@
 b__MA6tbbtyr8cebgbohs8vagreany16CnpxrqRahzCnefreRCiCXpCAF1_12CnefrPbagrkgR:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyR9PbclNeenlRCyCXyv
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyR9PbclNeenlRCyCXyv
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyR9PbclNeenlRCyCXyv,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyR9PbclNeenlRCyCXyv:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzR5renfrRCXz
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzR5renfrRCXz
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzR5renfrRCXz,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzR5renfrRCXz:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzR9ZbirNeenlRCzF3_v
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzR9ZbirNeenlRCzF3_v
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzR9ZbirNeenlRCzF3_v,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzR9ZbirNeenlRCzF3_v:
 nop
@@ -3588,7 +3588,7 @@
 b__MAX6tbbtyr8cebgbohs8vagreany12RkgrafvbaFrg19TrgEnjErcrngrqSvryqRvCXi:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs8vagreany20ZretrCnegvnySebzVzcyVYo0RRRoAF0_11FgevatCvrprRCAF0_11ZrffntrYvgrR
+.weak b__MA6tbbtyr8cebgbohs8vagreany20ZretrCnegvnySebzVzcyVYo0RRRoAF0_11FgevatCvrprRCAF0_11ZrffntrYvgrR
 .type b__MA6tbbtyr8cebgbohs8vagreany20ZretrCnegvnySebzVzcyVYo0RRRoAF0_11FgevatCvrprRCAF0_11ZrffntrYvgrR,%function
 b__MA6tbbtyr8cebgbohs8vagreany20ZretrCnegvnySebzVzcyVYo0RRRoAF0_11FgevatCvrprRCAF0_11ZrffntrYvgrR:
 nop
@@ -3613,7 +3613,7 @@
 b__MA6tbbtyr8cebgbohs8vagreany19CnpxrqSvkrq64CnefreRCiCXpCAF1_12CnefrPbagrkgR:
 nop
 .text
-.globl b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVyR6portvaRi
+.weak b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVyR6portvaRi
 .type b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVyR6portvaRi,%function
 b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVyR6portvaRi:
 nop
@@ -3648,17 +3648,17 @@
 b__MA6tbbtyr8cebgbohs2vb16PbqrqVachgFgernzQ2Ri:
 nop
 .text
-.globl b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVsR4praqRi
+.weak b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVsR4praqRi
 .type b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVsR4praqRi,%function
 b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVsR4praqRi:
 nop
 .text
-.globl b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVsR4qngnRi
+.weak b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVsR4qngnRi
 .type b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVsR4qngnRi,%function
 b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVsR4qngnRi:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsR12FjncRyrzragfRvv
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsR12FjncRyrzragfRvv
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsR12FjncRyrzragfRvv,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsR12FjncRyrzragfRvv:
 nop
@@ -3673,7 +3673,7 @@
 b__MA6tbbtyr8cebgbohs2vb18VfgernzVachgFgernz25PbclvatVfgernzVachgFgernzP1RCAFg3__113onfvp_vfgernzVpAF4_11pune_genvgfVpRRRR:
 nop
 .text
-.globl b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVwRvkRv
+.weak b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVwRvkRv
 .type b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVwRvkRv,%function
 b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVwRvkRv:
 nop
@@ -3703,17 +3703,17 @@
 b__MA6tbbtyr8cebgbohs2vb17FnsrQbhoyrGbSybngRq:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRRP1REXF9_
+.weak b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRRP1REXF9_
 .type b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRRP1REXF9_,%function
 b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRRP1REXF9_:
 nop
 .text
-.globl b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVsR8TrgNeranRi
+.weak b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVsR8TrgNeranRi
 .type b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVsR8TrgNeranRi,%function
 b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVsR8TrgNeranRi:
 nop
 .text
-.globl b__MAX6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR13cbvagre_ortvaRi
+.weak b__MAX6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR13cbvagre_ortvaRi
 .type b__MAX6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR13cbvagre_ortvaRi,%function
 b__MAX6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR13cbvagre_ortvaRi:
 nop
@@ -3728,12 +3728,12 @@
 b__MA6tbbtyr8cebgbohs8vagreany14JverSbezngYvgr15JevgrSybngNeenlRCXsvCAF0_2vb17PbqrqBhgchgFgernzR:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoR10ErzbirYnfgRi
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoR10ErzbirYnfgRi
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoR10ErzbirYnfgRi,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoR10ErzbirYnfgRi:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyR6ErfvmrRvEXy
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyR6ErfvmrRvEXy
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyR6ErfvmrRvEXy,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyR6ErfvmrRvEXy:
 nop
@@ -3753,17 +3753,17 @@
 b__MA6tbbtyr8cebgbohs8vagreany14JverSbezngYvgr12JevgrZrffntrRvEXAF0_11ZrffntrYvgrRCAF0_2vb17PbqrqBhgchgFgernzR:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsR18VagreanyQrnyybpngrRCAF2_3ErcRv
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsR18VagreanyQrnyybpngrRCAF2_3ErcRv
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsR18VagreanyQrnyybpngrRCAF2_3ErcRv,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsR18VagreanyQrnyybpngrRCAF2_3ErcRv:
 nop
 .data
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvR14xErcUrnqreFvmrR
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvR14xErcUrnqreFvmrR
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvR14xErcUrnqreFvmrR,%object
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvR14xErcUrnqreFvmrR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzR5renfrRCXzF4_
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzR5renfrRCXzF4_
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzR5renfrRCXzF4_,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzR5renfrRCXzF4_:
 nop
@@ -3783,7 +3783,7 @@
 b__MA6tbbtyr8cebgbohs2vb17PbqrqBhgchgFgernz22TrgQverpgOhssreCbvagreRCCiCv:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoR15RkgenpgFhoenatrRvvCo
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoR15RkgenpgFhoenatrRvvCo
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoR15RkgenpgFhoenatrRvvCo,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoR15RkgenpgFhoenatrRvvCo:
 nop
@@ -3808,12 +3808,12 @@
 b__MAX6tbbtyr8cebgbohs8vagreany12RkgrafvbaFrg8TrgVag64Rvy:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs8vagreany18RcfPbclVachgFgernz16ErnqCnpxrqInevagVMAF1_12InevagCnefreVvYo1RRRCXpCiF6_CAF1_12CnefrPbagrkgRRHyzR_RRF6_F6_G_
+.weak b__MA6tbbtyr8cebgbohs8vagreany18RcfPbclVachgFgernz16ErnqCnpxrqInevagVMAF1_12InevagCnefreVvYo1RRRCXpCiF6_CAF1_12CnefrPbagrkgRRHyzR_RRF6_F6_G_
 .type b__MA6tbbtyr8cebgbohs8vagreany18RcfPbclVachgFgernz16ErnqCnpxrqInevagVMAF1_12InevagCnefreVvYo1RRRCXpCiF6_CAF1_12CnefrPbagrkgRRHyzR_RRF6_F6_G_,%function
 b__MA6tbbtyr8cebgbohs8vagreany18RcfPbclVachgFgernz16ErnqCnpxrqInevagVMAF1_12InevagCnefreVvYo1RRRCXpCiF6_CAF1_12CnefrPbagrkgRRHyzR_RRF6_F6_G_:
 nop
 .text
-.globl b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVzR8TrgNeranRi
+.weak b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVzR8TrgNeranRi
 .type b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVzR8TrgNeranRi,%function
 b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVzR8TrgNeranRi:
 nop
@@ -3833,12 +3833,12 @@
 b__MA6tbbtyr8cebgbohs2vb17NeenlBhgchgFgernzP2RCivv:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwR12VagreanyFjncRCF2_
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwR12VagreanyFjncRCF2_
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwR12VagreanyFjncRCF2_,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwR12VagreanyFjncRCF2_:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR8PbclSebzREXF9_
+.weak b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR8PbclSebzREXF9_
 .type b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR8PbclSebzREXF9_,%function
 b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR8PbclSebzREXF9_:
 nop
@@ -3848,22 +3848,22 @@
 b__MA6tbbtyr8cebgbohs7fgevatf20TebjvatNeenlOlgrFvaxQ0Ri:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqRP1Ri
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqRP1Ri
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqRP1Ri,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqRP1Ri:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvR3NqqRi
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvR3NqqRi
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvR3NqqRi,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvR3NqqRi:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR12FjncRyrzragfRvv
+.weak b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR12FjncRyrzragfRvv
 .type b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR12FjncRyrzragfRvv,%function
 b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR12FjncRyrzragfRvv:
 nop
 .text
-.globl b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVwR6eortvaRi
+.weak b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVwR6eortvaRi
 .type b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVwR6eortvaRi,%function
 b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVwR6eortvaRi:
 nop
@@ -3873,7 +3873,7 @@
 b__MA6tbbtyr8cebgbohs2vb18FgevatBhgchgFgernzP1RCAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRR:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs8vagreany21neran_qrfgehpg_bowrpgVAF0_13ErcrngrqSvryqVoRRRRiCi
+.weak b__MA6tbbtyr8cebgbohs8vagreany21neran_qrfgehpg_bowrpgVAF0_13ErcrngrqSvryqVoRRRRiCi
 .type b__MA6tbbtyr8cebgbohs8vagreany21neran_qrfgehpg_bowrpgVAF0_13ErcrngrqSvryqVoRRRRiCi,%function
 b__MA6tbbtyr8cebgbohs8vagreany21neran_qrfgehpg_bowrpgVAF0_13ErcrngrqSvryqVoRRRRiCi:
 nop
@@ -3888,12 +3888,12 @@
 b__MA6tbbtyr8cebgbohs11ZrffntrYvgr30CnefrCnegvnySebzSvyrQrfpevcgbeRv:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoR9ZbirNeenlRCoF3_v
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoR9ZbirNeenlRCoF3_v
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoR9ZbirNeenlRCoF3_v,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoR9ZbirNeenlRCoF3_v:
 nop
 .text
-.globl b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVzR22FcnprHfrqRkpyhqvatFrysRi
+.weak b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVzR22FcnprHfrqRkpyhqvatFrysRi
 .type b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVzR22FcnprHfrqRkpyhqvatFrysRi,%function
 b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVzR22FcnprHfrqRkpyhqvatFrysRi:
 nop
@@ -3913,12 +3913,12 @@
 b__MA6tbbtyr8cebgbohs11YbtFvyrapreQ1Ri:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqR5renfrRCXqF4_
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqR5renfrRCXqF4_
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqR5renfrRCXqF4_,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqR5renfrRCXqF4_:
 nop
 .text
-.globl b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVqR2ngRv
+.weak b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVqR2ngRv
 .type b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVqR2ngRv,%function
 b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVqR2ngRv:
 nop
@@ -3933,17 +3933,17 @@
 b__MA6tbbtyr8cebgbohs2vb16PbqrqVachgFgernz9ChfuYvzvgRv:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoR12VagreanyFjncRCF2_
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoR12VagreanyFjncRCF2_
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoR12VagreanyFjncRCF2_,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoR12VagreanyFjncRCF2_:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyRP2RBF2_
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyRP2RBF2_
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyRP2RBF2_,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyRP2RBF2_:
 nop
 .text
-.globl b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVoR3TrgRv
+.weak b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVoR3TrgRv
 .type b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVoR3TrgRv,%function
 b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVoR3TrgRv:
 nop
@@ -3953,7 +3953,7 @@
 b__MA6tbbtyr8cebgbohs8vagreany12RkgrafvbaFrg9Rkgrafvba5PyrneRi:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs8vagreany21neran_qrfgehpg_bowrpgVAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRRRRiCi
+.weak b__MA6tbbtyr8cebgbohs8vagreany21neran_qrfgehpg_bowrpgVAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRRRRiCi
 .type b__MA6tbbtyr8cebgbohs8vagreany21neran_qrfgehpg_bowrpgVAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRRRRiCi,%function
 b__MA6tbbtyr8cebgbohs8vagreany21neran_qrfgehpg_bowrpgVAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRRRRiCi:
 nop
@@ -3973,7 +3973,7 @@
 b__MA6tbbtyr8cebgbohs8vagreany20CnpxrqFSvkrq64CnefreRCiCXpCAF1_12CnefrPbagrkgR:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyR2ngRv
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyR2ngRv
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyR2ngRv,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyR2ngRv:
 nop
@@ -3993,27 +3993,27 @@
 b__MA6tbbtyr8cebgbohs2vb16SvyrBhgchgFgernz5PybfrRi:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs8vagreany21neran_qrfgehpg_bowrpgVAF1_29VagreanyZrgnqngnJvguNeranOnfrVAFg3__112onfvp_fgevatVpAF4_11pune_genvgfVpRRAF4_9nyybpngbeVpRRRRAF1_29VagreanyZrgnqngnJvguNeranYvgrRR9PbagnvareRRRiCi
+.weak b__MA6tbbtyr8cebgbohs8vagreany21neran_qrfgehpg_bowrpgVAF1_29VagreanyZrgnqngnJvguNeranOnfrVAFg3__112onfvp_fgevatVpAF4_11pune_genvgfVpRRAF4_9nyybpngbeVpRRRRAF1_29VagreanyZrgnqngnJvguNeranYvgrRR9PbagnvareRRRiCi
 .type b__MA6tbbtyr8cebgbohs8vagreany21neran_qrfgehpg_bowrpgVAF1_29VagreanyZrgnqngnJvguNeranOnfrVAFg3__112onfvp_fgevatVpAF4_11pune_genvgfVpRRAF4_9nyybpngbeVpRRRRAF1_29VagreanyZrgnqngnJvguNeranYvgrRR9PbagnvareRRRiCi,%function
 b__MA6tbbtyr8cebgbohs8vagreany21neran_qrfgehpg_bowrpgVAF1_29VagreanyZrgnqngnJvguNeranOnfrVAFg3__112onfvp_fgevatVpAF4_11pune_genvgfVpRRAF4_9nyybpngbeVpRRRRAF1_29VagreanyZrgnqngnJvguNeranYvgrRR9PbagnvareRRRiCi:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs8vagreany18RcfPbclVachgFgernz15ErnqCnpxrqSvkrqVyRRCXpF5_vCAF0_13ErcrngrqSvryqVG_RR
+.weak b__MA6tbbtyr8cebgbohs8vagreany18RcfPbclVachgFgernz15ErnqCnpxrqSvkrqVyRRCXpF5_vCAF0_13ErcrngrqSvryqVG_RR
 .type b__MA6tbbtyr8cebgbohs8vagreany18RcfPbclVachgFgernz15ErnqCnpxrqSvkrqVyRRCXpF5_vCAF0_13ErcrngrqSvryqVG_RR,%function
 b__MA6tbbtyr8cebgbohs8vagreany18RcfPbclVachgFgernz15ErnqCnpxrqSvkrqVyRRCXpF5_vCAF0_13ErcrngrqSvryqVG_RR:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzR9ZretrSebzREXF2_
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzR9ZretrSebzREXF2_
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzR9ZretrSebzREXF2_,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzR9ZretrSebzREXF2_:
 nop
 .text
-.globl b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVyR3ercRi
+.weak b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVyR3ercRi
 .type b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVyR3ercRi,%function
 b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVyR3ercRi:
 nop
 .text
-.globl b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVzR4fvmrRi
+.weak b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVzR4fvmrRi
 .type b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVzR4fvmrRi,%function
 b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVzR4fvmrRi:
 nop
@@ -4023,7 +4023,7 @@
 b__MA6tbbtyr8cebgbohs7fgevatf10OlgrFbhepr6PbclGbRCAF1_8OlgrFvaxRz:
 nop
 .data
-.globl b__MGIAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
+.weak b__MGIAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
 .type b__MGIAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR,%object
 b__MGIAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR:
 .space __SIZEOF_POINTER__
@@ -4038,7 +4038,7 @@
 b__MA6tbbtyr8cebgbohs8vagreany12RkgrafvbaFrg9ZretrSebzREXF2_:
 nop
 .text
-.globl b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVoR6portvaRi
+.weak b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVoR6portvaRi
 .type b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVoR6portvaRi,%function
 b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVoR6portvaRi:
 nop
@@ -4073,7 +4073,7 @@
 b__MAX6tbbtyr8cebgbohs8vagreany12RkgrafvbaFrg9Rkgrafvba8OlgrFvmrRv:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwR15RkgenpgFhoenatrRvvCw
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwR15RkgenpgFhoenatrRvvCw
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwR15RkgenpgFhoenatrRvvCw,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwR15RkgenpgFhoenatrRvvCw:
 nop
@@ -4088,7 +4088,7 @@
 b__MA6tbbtyr8cebgbohs8vagreany24TrarengrqRkgrafvbaSvaqre4SvaqRvCAF1_13RkgrafvbaVasbR:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwR12FjncRyrzragfRvv
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwR12FjncRyrzragfRvv
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwR12FjncRyrzragfRvv,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwR12FjncRyrzragfRvv:
 nop
@@ -4103,7 +4103,7 @@
 b__MA6tbbtyr8cebgbohs2vb18FgevatBhgchgFgernzP2RCAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRR:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR26HafnsrNeranRkgenpgFhoenatrRvvCCF8_
+.weak b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR26HafnsrNeranRkgenpgFhoenatrRvvCCF8_
 .type b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR26HafnsrNeranRkgenpgFhoenatrRvvCCF8_,%function
 b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR26HafnsrNeranRkgenpgFhoenatrRvvCCF8_:
 nop
@@ -4113,7 +4113,7 @@
 b__MGIA6tbbtyr8cebgbohs7fgevatf22HapurpxrqNeenlOlgrFvaxR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__124__chg_punenpgre_frdhraprVpAF_11pune_genvgfVpRRRREAF_13onfvp_bfgernzVG_G0_RRF7_CXF4_z
+.weak b__MAFg3__124__chg_punenpgre_frdhraprVpAF_11pune_genvgfVpRRRREAF_13onfvp_bfgernzVG_G0_RRF7_CXF4_z
 .type b__MAFg3__124__chg_punenpgre_frdhraprVpAF_11pune_genvgfVpRRRREAF_13onfvp_bfgernzVG_G0_RRF7_CXF4_z,%function
 b__MAFg3__124__chg_punenpgre_frdhraprVpAF_11pune_genvgfVpRRRREAF_13onfvp_bfgernzVG_G0_RRF7_CXF4_z:
 nop
@@ -4123,17 +4123,17 @@
 b__MA6tbbtyr8cebgbohs8vagreany15RkgrafvbaSvaqreQ1Ri:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs8vagreany18RcfPbclVachgFgernz16ErnqCnpxrqInevagVMAF1_12InevagCnefreVyYo0RRRCXpCiF6_CAF1_12CnefrPbagrkgRRHyzR_RRF6_F6_G_
+.weak b__MA6tbbtyr8cebgbohs8vagreany18RcfPbclVachgFgernz16ErnqCnpxrqInevagVMAF1_12InevagCnefreVyYo0RRRCXpCiF6_CAF1_12CnefrPbagrkgRRHyzR_RRF6_F6_G_
 .type b__MA6tbbtyr8cebgbohs8vagreany18RcfPbclVachgFgernz16ErnqCnpxrqInevagVMAF1_12InevagCnefreVyYo0RRRCXpCiF6_CAF1_12CnefrPbagrkgRRHyzR_RRF6_F6_G_,%function
 b__MA6tbbtyr8cebgbohs8vagreany18RcfPbclVachgFgernz16ErnqCnpxrqInevagVMAF1_12InevagCnefreVyYo0RRRCXpCiF6_CAF1_12CnefrPbagrkgRRHyzR_RRF6_F6_G_:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvR15HafnsrNeranFjncRCF2_
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvR15HafnsrNeranFjncRCF2_
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvR15HafnsrNeranFjncRCF2_,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvR15HafnsrNeranFjncRCF2_:
 nop
 .text
-.globl b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVqR8PncnpvglRi
+.weak b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVqR8PncnpvglRi
 .type b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVqR8PncnpvglRi,%function
 b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVqR8PncnpvglRi:
 nop
@@ -4148,12 +4148,12 @@
 b__MA6tbbtyr8cebgbohs23VagreanySnfgUrkGbOhssreRzCpv:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwR9PbclNeenlRCwCXwv
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwR9PbclNeenlRCwCXwv
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwR9PbclNeenlRCwCXwv,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwR9PbclNeenlRCwCXwv:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzRnFREXF2_
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzRnFREXF2_
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzRnFREXF2_,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzRnFREXF2_:
 nop
@@ -4178,22 +4178,22 @@
 b__MA6tbbtyr8cebgbohs2vb19YvzvgvatVachgFgernzP1RCAF1_19MrebPbclVachgFgernzRy:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs11ZrffntrYvgr9CnefrSebzVYAF1_10CnefrSyntfR1RAFg3__112onfvp_fgevatVpAF4_11pune_genvgfVpRRAF4_9nyybpngbeVpRRRRRRoEXG0_
+.weak b__MA6tbbtyr8cebgbohs11ZrffntrYvgr9CnefrSebzVYAF1_10CnefrSyntfR1RAFg3__112onfvp_fgevatVpAF4_11pune_genvgfVpRRAF4_9nyybpngbeVpRRRRRRoEXG0_
 .type b__MA6tbbtyr8cebgbohs11ZrffntrYvgr9CnefrSebzVYAF1_10CnefrSyntfR1RAFg3__112onfvp_fgevatVpAF4_11pune_genvgfVpRRAF4_9nyybpngbeVpRRRRRRoEXG0_,%function
 b__MA6tbbtyr8cebgbohs11ZrffntrYvgr9CnefrSebzVYAF1_10CnefrSyntfR1RAFg3__112onfvp_fgevatVpAF4_11pune_genvgfVpRRAF4_9nyybpngbeVpRRRRRRoEXG0_:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyRnFREXF2_
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyRnFREXF2_
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyRnFREXF2_,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyRnFREXF2_:
 nop
 .data
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzR14xErcUrnqreFvmrR
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzR14xErcUrnqreFvmrR
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzR14xErcUrnqreFvmrR,%object
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzR14xErcUrnqreFvmrR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVwR4eraqRi
+.weak b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVwR4eraqRi
 .type b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVwR4eraqRi,%function
 b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVwR4eraqRi:
 nop
@@ -4213,7 +4213,7 @@
 b__MA6tbbtyr8cebgbohs8vagreany17HaxabjaSvryqCnefrRwCAF1_29VagreanyZrgnqngnJvguNeranYvgrRCXpCAF1_12CnefrPbagrkgR:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvR3raqRi
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvR3raqRi
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvR3raqRi,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvR3raqRi:
 nop
@@ -4223,17 +4223,17 @@
 b__MA6tbbtyr8cebgbohs2vb16SvyrBhgchgFgernz23PbclvatSvyrBhgchgFgernzQ2Ri:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqR9ZretrSebzREXF2_
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqR9ZretrSebzREXF2_
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqR9ZretrSebzREXF2_,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqR9ZretrSebzREXF2_:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwRnFREXF2_
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwRnFREXF2_
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwRnFREXF2_,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwRnFREXF2_:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyR4eraqRi
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyR4eraqRi
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyR4eraqRi,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyR4eraqRi:
 nop
@@ -4243,7 +4243,7 @@
 b__MA6tbbtyr8cebgbohs6FgePngREXAF0_7fgevatf8NycunAhzRF4_F4_:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvRnFREXF2_
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvRnFREXF2_
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvRnFREXF2_,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvRnFREXF2_:
 nop
@@ -4253,12 +4253,12 @@
 b__MA6tbbtyr8cebgbohs8vagreany12RkgrafvbaFrgQ1Ri:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs8vagreany20ErcrngrqCgeSvryqOnfr23HafnsrNeranNqqNyybpngrqVAF0_16ErcrngrqCgeSvryqVAF0_11ZrffntrYvgrRR11GlcrUnaqyreRRRiCAG_4GlcrR
+.weak b__MA6tbbtyr8cebgbohs8vagreany20ErcrngrqCgeSvryqOnfr23HafnsrNeranNqqNyybpngrqVAF0_16ErcrngrqCgeSvryqVAF0_11ZrffntrYvgrRR11GlcrUnaqyreRRRiCAG_4GlcrR
 .type b__MA6tbbtyr8cebgbohs8vagreany20ErcrngrqCgeSvryqOnfr23HafnsrNeranNqqNyybpngrqVAF0_16ErcrngrqCgeSvryqVAF0_11ZrffntrYvgrRR11GlcrUnaqyreRRRiCAG_4GlcrR,%function
 b__MA6tbbtyr8cebgbohs8vagreany20ErcrngrqCgeSvryqOnfr23HafnsrNeranNqqNyybpngrqVAF0_16ErcrngrqCgeSvryqVAF0_11ZrffntrYvgrRR11GlcrUnaqyreRRRiCAG_4GlcrR:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqR3NqqRi
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqR3NqqRi
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqR3NqqRi,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqR3NqqRi:
 nop
@@ -4268,7 +4268,7 @@
 b__MA6tbbtyr8cebgbohs16RapbqrNfHGS8PuneRwCp:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyR12FjncRyrzragfRvv
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyR12FjncRyrzragfRvv
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyR12FjncRyrzragfRvv,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyR12FjncRyrzragfRvv:
 nop
@@ -4288,22 +4288,22 @@
 b__MA6tbbtyr8cebgbohs2vb19YvzvgvatVachgFgernzQ1Ri:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqR6eortvaRi
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqR6eortvaRi
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqR6eortvaRi,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqR6eortvaRi:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoRP1RBF2_
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoRP1RBF2_
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoRP1RBF2_,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoRP1RBF2_:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsRnFREXF2_
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsRnFREXF2_
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsRnFREXF2_,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsRnFREXF2_:
 nop
 .text
-.globl b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVvR22FcnprHfrqRkpyhqvatFrysRi
+.weak b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVvR22FcnprHfrqRkpyhqvatFrysRi
 .type b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVvR22FcnprHfrqRkpyhqvatFrysRi,%function
 b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVvR22FcnprHfrqRkpyhqvatFrysRi:
 nop
@@ -4323,12 +4323,12 @@
 b__MA6tbbtyr8cebgbohs8vagreany18RcfPbclVachgFgernz18ErnqFgevatSnyyonpxRCXpvCAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRR:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs8vagreany21neran_qrfgehpg_bowrpgVAF0_13ErcrngrqSvryqVzRRRRiCi
+.weak b__MA6tbbtyr8cebgbohs8vagreany21neran_qrfgehpg_bowrpgVAF0_13ErcrngrqSvryqVzRRRRiCi
 .type b__MA6tbbtyr8cebgbohs8vagreany21neran_qrfgehpg_bowrpgVAF0_13ErcrngrqSvryqVzRRRRiCi,%function
 b__MA6tbbtyr8cebgbohs8vagreany21neran_qrfgehpg_bowrpgVAF0_13ErcrngrqSvryqVzRRRRiCi:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqRnFREXF2_
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqRnFREXF2_
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqRnFREXF2_,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqRnFREXF2_:
 nop
@@ -4338,12 +4338,12 @@
 b__MA6tbbtyr8cebgbohs7fgevatf20TebjvatNeenlOlgrFvax11FuevaxGbSvgRi:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvRP1Ri
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvRP1Ri
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvRP1Ri,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvRP1Ri:
 nop
 .text
-.globl b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVqRvkRv
+.weak b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVqRvkRv
 .type b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVqRvkRv,%function
 b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVqRvkRv:
 nop
@@ -4353,7 +4353,7 @@
 b__MA6tbbtyr8cebgbohs8vagreany14JverSbezngYvgr11JevgrHVag32RvwCAF0_2vb17PbqrqBhgchgFgernzR:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoRnFREXF2_
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoRnFREXF2_
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoRnFREXF2_,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoRnFREXF2_:
 nop
@@ -4363,7 +4363,7 @@
 b__MA6tbbtyr8cebgbohs10FvzcyrQgbnRq:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs18fnsr_hvag_vagreanyVzRRoAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRCG_
+.weak b__MA6tbbtyr8cebgbohs18fnsr_hvag_vagreanyVzRRoAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRCG_
 .type b__MA6tbbtyr8cebgbohs18fnsr_hvag_vagreanyVzRRoAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRCG_,%function
 b__MA6tbbtyr8cebgbohs18fnsr_hvag_vagreanyVzRRoAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRCG_:
 nop
@@ -4383,12 +4383,12 @@
 b__MA6tbbtyr8cebgbohs11ZrffntrYvgr23CnefrSebzMrebPbclFgernzRCAF0_2vb19MrebPbclVachgFgernzR:
 nop
 .text
-.globl b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVoR26FcnprHfrqRkpyhqvatFrysYbatRi
+.weak b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVoR26FcnprHfrqRkpyhqvatFrysYbatRi
 .type b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVoR26FcnprHfrqRkpyhqvatFrysYbatRi,%function
 b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVoR26FcnprHfrqRkpyhqvatFrysYbatRi:
 nop
 .text
-.globl b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVzR3TrgRv
+.weak b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVzR3TrgRv
 .type b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVzR3TrgRv,%function
 b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVzR3TrgRv:
 nop
@@ -4408,7 +4408,7 @@
 b__MA6tbbtyr8cebgbohs8vagreany11YbtSvavfurenFREAF1_10YbtZrffntrR:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_4cnveVCSiCXiRF3_RRAF_9nyybpngbeVF6_RRR21__chfu_onpx_fybj_cnguVF6_RRiBG_
+.weak b__MAFg3__16irpgbeVAF_4cnveVCSiCXiRF3_RRAF_9nyybpngbeVF6_RRR21__chfu_onpx_fybj_cnguVF6_RRiBG_
 .type b__MAFg3__16irpgbeVAF_4cnveVCSiCXiRF3_RRAF_9nyybpngbeVF6_RRR21__chfu_onpx_fybj_cnguVF6_RRiBG_,%function
 b__MAFg3__16irpgbeVAF_4cnveVCSiCXiRF3_RRAF_9nyybpngbeVF6_RRR21__chfu_onpx_fybj_cnguVF6_RRiBG_:
 nop
@@ -4418,7 +4418,7 @@
 b__MA6tbbtyr8cebgbohs8vagreany9NeranVzcy10SerrOybpxfRi:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwR18VagreanyQrnyybpngrRCAF2_3ErcRv
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwR18VagreanyQrnyybpngrRCAF2_3ErcRv
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwR18VagreanyQrnyybpngrRCAF2_3ErcRv,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwR18VagreanyQrnyybpngrRCAF2_3ErcRv:
 nop
@@ -4433,17 +4433,17 @@
 b__MAX6tbbtyr8cebgbohs2vb19BfgernzBhgchgFgernz9OlgrPbhagRi:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsRnFRBF2_
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsRnFRBF2_
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsRnFRBF2_,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsRnFRBF2_:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvR12zhgnoyr_qngnRi
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvR12zhgnoyr_qngnRi
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvR12zhgnoyr_qngnRi,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvR12zhgnoyr_qngnRi:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR23RkgenpgFhoenatrVagreanyRvvCCF8_AF2_17vagrteny_pbafgnagVoYo0RRR
+.weak b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR23RkgenpgFhoenatrVagreanyRvvCCF8_AF2_17vagrteny_pbafgnagVoYo0RRR
 .type b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR23RkgenpgFhoenatrVagreanyRvvCCF8_AF2_17vagrteny_pbafgnagVoYo0RRR,%function
 b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR23RkgenpgFhoenatrVagreanyRvvCCF8_AF2_17vagrteny_pbafgnagVoYo0RRR:
 nop
@@ -4463,12 +4463,12 @@
 b__MA6tbbtyr8cebgbohs8vagreany14JverSbezngYvgr10FVag32FvmrREXAF0_13ErcrngrqSvryqVvRR:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyRQ1Ri
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyRQ1Ri
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyRQ1Ri,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyRQ1Ri:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRRQ2Ri
+.weak b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRRQ2Ri
 .type b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRRQ2Ri,%function
 b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRRQ2Ri:
 nop
@@ -4488,7 +4488,7 @@
 b__MA6tbbtyr8cebgbohs2vb16PbqrqVachgFgernz25CevagGbgnyOlgrfYvzvgReebeRi:
 nop
 .text
-.globl b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVvR6eortvaRi
+.weak b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVvR6eortvaRi
 .type b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVvR6eortvaRi,%function
 b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVvR6eortvaRi:
 nop
@@ -4508,17 +4508,17 @@
 b__MA6tbbtyr8cebgbohs8vagreany25ErcrngrqCevzvgvirQrsnhygf16qrsnhyg_vafgnaprRi:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyR5renfrRCXyF4_
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyR5renfrRCXyF4_
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyR5renfrRCXyF4_,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyR5renfrRCXyF4_:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR10ErzbirYnfgRi
+.weak b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR10ErzbirYnfgRi
 .type b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR10ErzbirYnfgRi,%function
 b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR10ErzbirYnfgRi:
 nop
 .text
-.globl b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVqR17TrgNeranAbIveghnyRi
+.weak b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVqR17TrgNeranAbIveghnyRi
 .type b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVqR17TrgNeranAbIveghnyRi,%function
 b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVqR17TrgNeranAbIveghnyRi:
 nop
@@ -4533,17 +4533,17 @@
 b__MGIA6tbbtyr8cebgbohs2vb18PbclvatVachgFgernzR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVsR15hafnsr_ryrzragfRi
+.weak b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVsR15hafnsr_ryrzragfRi
 .type b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVsR15hafnsr_ryrzragfRi,%function
 b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVsR15hafnsr_ryrzragfRi:
 nop
 .text
-.globl b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVzR5ortvaRi
+.weak b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVzR5ortvaRi
 .type b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVzR5ortvaRi,%function
 b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVzR5ortvaRi:
 nop
 .text
-.globl b__MAX6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRRvkRv
+.weak b__MAX6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRRvkRv
 .type b__MAX6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRRvkRv,%function
 b__MAX6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRRvkRv:
 nop
@@ -4553,27 +4553,27 @@
 b__MA6tbbtyr8cebgbohs24HarfpncrPRfpncrFrdhraprfRCXpCp:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyR10ErzbirYnfgRi
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyR10ErzbirYnfgRi
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyR10ErzbirYnfgRi,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyR10ErzbirYnfgRi:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzR18NqqNyernqlErfreirqREXz
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzR18NqqNyernqlErfreirqREXz
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzR18NqqNyernqlErfreirqREXz,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzR18NqqNyernqlErfreirqREXz:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzR6eortvaRi
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzR6eortvaRi
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzR6eortvaRi,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzR6eortvaRi:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR12zhgnoyr_qngnRi
+.weak b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR12zhgnoyr_qngnRi
 .type b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR12zhgnoyr_qngnRi,%function
 b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR12zhgnoyr_qngnRi:
 nop
 .text
-.globl b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVyR5ortvaRi
+.weak b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVyR5ortvaRi
 .type b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVyR5ortvaRi,%function
 b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVyR5ortvaRi:
 nop
@@ -4583,12 +4583,12 @@
 b__MA6tbbtyr8cebgbohs4hgvy6FgnghfP2RAF1_5reebe4PbqrRAF0_11FgevatCvrprR:
 nop
 .text
-.globl b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVqR4fvmrRi
+.weak b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVqR4fvmrRi
 .type b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVqR4fvmrRi,%function
 b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVqR4fvmrRi:
 nop
 .text
-.globl b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVwR5ortvaRi
+.weak b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVwR5ortvaRi
 .type b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVwR5ortvaRi,%function
 b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVwR5ortvaRi:
 nop
@@ -4618,12 +4618,12 @@
 b__MA6tbbtyr8cebgbohs2vb26PbclvatBhgchgFgernzNqncgbe10SerrOhssreRi:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqR3raqRi
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqR3raqRi
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqR3raqRi,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqR3raqRi:
 nop
 .text
-.globl b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVvR5ortvaRi
+.weak b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVvR5ortvaRi
 .type b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVvR5ortvaRi,%function
 b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVvR5ortvaRi:
 nop
@@ -4638,12 +4638,12 @@
 b__MA6tbbtyr8cebgbohs8vagreany12RkgrafvbaFrg10SvaqBeAhyyRv:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs8vagreany18RcfPbclVachgFgernz15ErnqCnpxrqSvkrqVvRRCXpF5_vCAF0_13ErcrngrqSvryqVG_RR
+.weak b__MA6tbbtyr8cebgbohs8vagreany18RcfPbclVachgFgernz15ErnqCnpxrqSvkrqVvRRCXpF5_vCAF0_13ErcrngrqSvryqVG_RR
 .type b__MA6tbbtyr8cebgbohs8vagreany18RcfPbclVachgFgernz15ErnqCnpxrqSvkrqVvRRCXpF5_vCAF0_13ErcrngrqSvryqVG_RR,%function
 b__MA6tbbtyr8cebgbohs8vagreany18RcfPbclVachgFgernz15ErnqCnpxrqSvkrqVvRRCXpF5_vCAF0_13ErcrngrqSvryqVG_RR:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoR18NqqNyernqlErfreirqREXo
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoR18NqqNyernqlErfreirqREXo
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoR18NqqNyernqlErfreirqREXo,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoR18NqqNyernqlErfreirqREXo:
 nop
@@ -4663,17 +4663,17 @@
 b__MA6tbbtyr8cebgbohs2vb16NeenlVachgFgernz6OnpxHcRv:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs11ZrffntrYvgr9CnefrSebzVYAF1_10CnefrSyntfR3RAF0_8vagreany11ObhaqrqMPVFRRRoEXG0_
+.weak b__MA6tbbtyr8cebgbohs11ZrffntrYvgr9CnefrSebzVYAF1_10CnefrSyntfR3RAF0_8vagreany11ObhaqrqMPVFRRRoEXG0_
 .type b__MA6tbbtyr8cebgbohs11ZrffntrYvgr9CnefrSebzVYAF1_10CnefrSyntfR3RAF0_8vagreany11ObhaqrqMPVFRRRoEXG0_,%function
 b__MA6tbbtyr8cebgbohs11ZrffntrYvgr9CnefrSebzVYAF1_10CnefrSyntfR3RAF0_8vagreany11ObhaqrqMPVFRRRoEXG0_:
 nop
 .text
-.globl b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVoR4praqRi
+.weak b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVoR4praqRi
 .type b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVoR4praqRi,%function
 b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVoR4praqRi:
 nop
 .text
-.globl b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVoR4qngnRi
+.weak b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVoR4qngnRi
 .type b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVoR4qngnRi,%function
 b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVoR4qngnRi:
 nop
@@ -4688,12 +4688,12 @@
 b__MA6tbbtyr8cebgbohs2vb16PbqrqVachgFgernz20ErnqInevag64SnyyonpxRi:
 nop
 .text
-.globl b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVoR8ryrzragfRi
+.weak b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVoR8ryrzragfRi
 .type b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVoR8ryrzragfRi,%function
 b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVoR8ryrzragfRi:
 nop
 .text
-.globl b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVsR5ortvaRi
+.weak b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVsR5ortvaRi
 .type b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVsR5ortvaRi,%function
 b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVsR5ortvaRi:
 nop
@@ -4713,7 +4713,7 @@
 b__MA6tbbtyr8cebgbohs2vb25PbclvatVachgFgernzNqncgbe10SerrOhssreRi:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzR12VagreanyFjncRCF2_
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzR12VagreanyFjncRCF2_
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzR12VagreanyFjncRCF2_,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzR12VagreanyFjncRCF2_:
 nop
@@ -4728,12 +4728,12 @@
 b__MAX6tbbtyr8cebgbohs8vagreany12RkgrafvbaFrg15TrgErcrngrqObbyRvv:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsR3FrgRvEXs
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsR3FrgRvEXs
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsR3FrgRvEXs,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsR3FrgRvEXs:
 nop
 .text
-.globl b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVqR5ortvaRi
+.weak b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVqR5ortvaRi
 .type b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVqR5ortvaRi,%function
 b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVqR5ortvaRi:
 nop
@@ -4758,7 +4758,7 @@
 b__MA6tbbtyr8cebgbohs2vb26PbclvatBhgchgFgernzNqncgbeQ2Ri:
 nop
 .text
-.globl b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVoR3ercRi
+.weak b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVoR3ercRi
 .type b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVoR3ercRi,%function
 b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVoR3ercRi:
 nop
@@ -4773,12 +4773,12 @@
 b__MAX6tbbtyr8cebgbohs11ZrffntrYvgr32FrevnyvmrCnegvnyGbMrebPbclFgernzRCAF0_2vb20MrebPbclBhgchgFgernzR:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzR19NqqANyernqlErfreirqRv
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzR19NqqANyernqlErfreirqRv
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzR19NqqANyernqlErfreirqRv,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzR19NqqANyernqlErfreirqRv:
 nop
 .text
-.globl b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVoR5ortvaRi
+.weak b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVoR5ortvaRi
 .type b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVoR5ortvaRi,%function
 b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVoR5ortvaRi:
 nop
@@ -4788,17 +4788,17 @@
 b__MAX6tbbtyr8cebgbohs2vb17NeenlBhgchgFgernz9OlgrPbhagRi:
 nop
 .text
-.globl b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVvR8ryrzragfRi
+.weak b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVvR8ryrzragfRi
 .type b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVvR8ryrzragfRi,%function
 b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVvR8ryrzragfRi:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwR6ErfvmrRvEXw
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwR6ErfvmrRvEXw
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwR6ErfvmrRvEXw,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwR6ErfvmrRvEXw:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwRvkRv
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwRvkRv
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwRvkRv,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwRvkRv:
 nop
@@ -4833,7 +4833,7 @@
 b__MA6tbbtyr8cebgbohs8vagreany16CnpxrqObbyCnefreRCiCXpCAF1_12CnefrPbagrkgR:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR14QryrgrFhoenatrRvv
+.weak b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR14QryrgrFhoenatrRvv
 .type b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR14QryrgrFhoenatrRvv,%function
 b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR14QryrgrFhoenatrRvv:
 nop
@@ -4848,12 +4848,12 @@
 b__MAX6tbbtyr8cebgbohs11ZrffntrYvgr17FrevnyvmrNfFgevatRi:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvR15RkgenpgFhoenatrRvvCv
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvR15RkgenpgFhoenatrRvvCv
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvR15RkgenpgFhoenatrRvvCv,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvR15RkgenpgFhoenatrRvvCv:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyR19NqqANyernqlErfreirqRv
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyR19NqqANyernqlErfreirqRv
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyR19NqqANyernqlErfreirqRv,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyR19NqqANyernqlErfreirqRv:
 nop
@@ -4863,7 +4863,7 @@
 b__MA6tbbtyr8cebgbohs2vb16SvyrBhgchgFgernz23PbclvatSvyrBhgchgFgernzP1Rv:
 nop
 .text
-.globl b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVvRvkRv
+.weak b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVvRvkRv
 .type b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVvRvkRv,%function
 b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVvRvkRv:
 nop
@@ -4878,12 +4878,12 @@
 b__MA6tbbtyr8cebgbohs8vagreany26QhcyvpngrVsAbaAhyyVagreanyRCAF0_11ZrffntrYvgrR:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoR8GehapngrRv
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoR8GehapngrRv
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoR8GehapngrRv,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoR8GehapngrRv:
 nop
 .text
-.globl b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVvR3raqRi
+.weak b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVvR3raqRi
 .type b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVvR3raqRi,%function
 b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVvR3raqRi:
 nop
@@ -4898,12 +4898,12 @@
 b__MA6tbbtyr8cebgbohs2vb16PbqrqVachgFgernz12FxvcSnyyonpxRvv:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs11ZrffntrYvgr9CnefrSebzVYAF1_10CnefrSyntfR0RAFg3__112onfvp_fgevatVpAF4_11pune_genvgfVpRRAF4_9nyybpngbeVpRRRRRRoEXG0_
+.weak b__MA6tbbtyr8cebgbohs11ZrffntrYvgr9CnefrSebzVYAF1_10CnefrSyntfR0RAFg3__112onfvp_fgevatVpAF4_11pune_genvgfVpRRAF4_9nyybpngbeVpRRRRRRoEXG0_
 .type b__MA6tbbtyr8cebgbohs11ZrffntrYvgr9CnefrSebzVYAF1_10CnefrSyntfR0RAFg3__112onfvp_fgevatVpAF4_11pune_genvgfVpRRAF4_9nyybpngbeVpRRRRRRoEXG0_,%function
 b__MA6tbbtyr8cebgbohs11ZrffntrYvgr9CnefrSebzVYAF1_10CnefrSyntfR0RAFg3__112onfvp_fgevatVpAF4_11pune_genvgfVpRRAF4_9nyybpngbeVpRRRRRRoEXG0_:
 nop
 .text
-.globl b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVvR4fvmrRi
+.weak b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVvR4fvmrRi
 .type b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVvR4fvmrRi,%function
 b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVvR4fvmrRi:
 nop
@@ -4933,7 +4933,7 @@
 b__MA6tbbtyr8cebgbohs2vb15SvyrVachgFgernz22PbclvatSvyrVachgFgernzP1Rv:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR14EryrnfrPyrnerqRi
+.weak b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR14EryrnfrPyrnerqRi
 .type b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR14EryrnfrPyrnerqRi,%function
 b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR14EryrnfrPyrnerqRi:
 nop
@@ -4963,12 +4963,12 @@
 b__MGIA6tbbtyr8cebgbohs8vagreany19VzcyvpvgJrnxZrffntrR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwR19NqqANyernqlErfreirqRv
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwR19NqqANyernqlErfreirqRv
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwR19NqqANyernqlErfreirqRv,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwR19NqqANyernqlErfreirqRv:
 nop
 .text
-.globl b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVoR2ngRv
+.weak b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVoR2ngRv
 .type b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVoR2ngRv,%function
 b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVoR2ngRv:
 nop
@@ -4983,7 +4983,7 @@
 b__MA6tbbtyr8cebgbohs8vagreany12RkgrafvbaFrg10ErzbirYnfgRv:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvR8GehapngrRv
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvR8GehapngrRv
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvR8GehapngrRv,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvR8GehapngrRv:
 nop
@@ -5023,17 +5023,17 @@
 b__MA6tbbtyr8cebgbohs2vb19BfgernzBhgchgFgernzQ1Ri:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoR18NqqNyernqlErfreirqRi
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoR18NqqNyernqlErfreirqRi
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoR18NqqNyernqlErfreirqRi,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoR18NqqNyernqlErfreirqRi:
 nop
 .text
-.globl b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVwR6portvaRi
+.weak b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVwR6portvaRi
 .type b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVwR6portvaRi,%function
 b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVwR6portvaRi:
 nop
 .text
-.globl b__MAX6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR5rzcglRi
+.weak b__MAX6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR5rzcglRi
 .type b__MAX6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR5rzcglRi,%function
 b__MAX6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR5rzcglRi:
 nop
@@ -5073,7 +5073,7 @@
 b__MA6tbbtyr8cebgbohs8vagreany12RkgrafvbaFrg12FjncRyrzragfRvvv:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwRP2Ri
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwRP2Ri
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwRP2Ri,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwRP2Ri:
 nop
@@ -5093,22 +5093,22 @@
 b__MA6tbbtyr8cebgbohs2vb19YvzvgvatVachgFgernz4FxvcRv:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvR19NqqANyernqlErfreirqRv
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvR19NqqANyernqlErfreirqRv
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvR19NqqANyernqlErfreirqRv,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvR19NqqANyernqlErfreirqRv:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwR3NqqRi
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwR3NqqRi
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwR3NqqRi,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwR3NqqRi:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR12NqqNyybpngrqRCF8_
+.weak b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR12NqqNyybpngrqRCF8_
 .type b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR12NqqNyybpngrqRCF8_,%function
 b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR12NqqNyybpngrqRCF8_:
 nop
 .text
-.globl b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVsR8PncnpvglRi
+.weak b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVsR8PncnpvglRi
 .type b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVsR8PncnpvglRi,%function
 b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVsR8PncnpvglRi:
 nop
@@ -5133,62 +5133,62 @@
 b__MA6tbbtyr8cebgbohs8vagreany9NeranVzcy23NyybpngrNyvtarqSnyyonpxRz:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVvA6tbbtyr8cebgbohs8vagreany12RkgrafvbaFrg9RkgrafvbaRRRAF_19__znc_inyhr_pbzcnerVvF7_AF_4yrffVvRRYo1RRRAF_9nyybpngbeVF7_RRR12__svaq_rdhnyVvRRECAF_16__gerr_abqr_onfrVCiRRAF_21__gerr_pbafg_vgrengbeVF7_CAF_11__gerr_abqrVF7_FU_RRyRRECAF_15__gerr_raq_abqrVFW_RRFX_EXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVvA6tbbtyr8cebgbohs8vagreany12RkgrafvbaFrg9RkgrafvbaRRRAF_19__znc_inyhr_pbzcnerVvF7_AF_4yrffVvRRYo1RRRAF_9nyybpngbeVF7_RRR12__svaq_rdhnyVvRRECAF_16__gerr_abqr_onfrVCiRRAF_21__gerr_pbafg_vgrengbeVF7_CAF_11__gerr_abqrVF7_FU_RRyRRECAF_15__gerr_raq_abqrVFW_RRFX_EXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVvA6tbbtyr8cebgbohs8vagreany12RkgrafvbaFrg9RkgrafvbaRRRAF_19__znc_inyhr_pbzcnerVvF7_AF_4yrffVvRRYo1RRRAF_9nyybpngbeVF7_RRR12__svaq_rdhnyVvRRECAF_16__gerr_abqr_onfrVCiRRAF_21__gerr_pbafg_vgrengbeVF7_CAF_11__gerr_abqrVF7_FU_RRyRRECAF_15__gerr_raq_abqrVFW_RRFX_EXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVvA6tbbtyr8cebgbohs8vagreany12RkgrafvbaFrg9RkgrafvbaRRRAF_19__znc_inyhr_pbzcnerVvF7_AF_4yrffVvRRYo1RRRAF_9nyybpngbeVF7_RRR12__svaq_rdhnyVvRRECAF_16__gerr_abqr_onfrVCiRRAF_21__gerr_pbafg_vgrengbeVF7_CAF_11__gerr_abqrVF7_FU_RRyRRECAF_15__gerr_raq_abqrVFW_RRFX_EXG_:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoR3NqqREXo
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoR3NqqREXo
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoR3NqqREXo,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoR3NqqREXo:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqR3NqqREXq
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqR3NqqREXq
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqR3NqqREXq,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqR3NqqREXq:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsR3NqqREXs
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsR3NqqREXs
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsR3NqqREXs,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsR3NqqREXs:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvR3NqqREXv
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvR3NqqREXv
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvR3NqqREXv,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvR3NqqREXv:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwR2ngRv
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwR2ngRv
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwR2ngRv,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwR2ngRv:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwR3NqqREXw
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwR3NqqREXw
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwR3NqqREXw,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwR3NqqREXw:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyR3NqqREXy
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyR3NqqREXy
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyR3NqqREXy,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyR3NqqREXy:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzR3NqqREXz
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzR3NqqREXz
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzR3NqqREXz,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzR3NqqREXz:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoRP2RCAF0_5NeranR
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoRP2RCAF0_5NeranR
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoRP2RCAF0_5NeranR,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoRP2RCAF0_5NeranR:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyRP1RBF2_
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyRP1RBF2_
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyRP1RBF2_,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyRP1RBF2_:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR5ortvaRi
+.weak b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR5ortvaRi
 .type b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR5ortvaRi,%function
 b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR5ortvaRi:
 nop
@@ -5208,32 +5208,32 @@
 b__MA6tbbtyr8cebgbohs8vagreany12RkgrafvbaFrg9Rkgrafvba4SerrRi:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwR12zhgnoyr_qngnRi
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwR12zhgnoyr_qngnRi
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwR12zhgnoyr_qngnRi,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwR12zhgnoyr_qngnRi:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwR18NqqNyernqlErfreirqRi
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwR18NqqNyernqlErfreirqRi
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwR18NqqNyernqlErfreirqRi,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwR18NqqNyernqlErfreirqRi:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsRQ1Ri
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsRQ1Ri
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsRQ1Ri,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsRQ1Ri:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzR5ortvaRi
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzR5ortvaRi
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzR5ortvaRi,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzR5ortvaRi:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzRQ2Ri
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzRQ2Ri
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzRQ2Ri,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzRQ2Ri:
 nop
 .text
-.globl b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVzR8PncnpvglRi
+.weak b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVzR8PncnpvglRi
 .type b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVzR8PncnpvglRi,%function
 b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVzR8PncnpvglRi:
 nop
@@ -5248,12 +5248,12 @@
 b__MA6tbbtyr8cebgbohs2vb18VfgernzVachgFgernzP1RCAFg3__113onfvp_vfgernzVpAF3_11pune_genvgfVpRRRRv:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzRP2REXF2_
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzRP2REXF2_
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzRP2REXF2_,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzRP2REXF2_:
 nop
 .text
-.globl b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVsR4eraqRi
+.weak b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVsR4eraqRi
 .type b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVsR4eraqRi,%function
 b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVsR4eraqRi:
 nop
@@ -5263,22 +5263,22 @@
 b__MA6tbbtyr8cebgbohs21HarfpncrPRfpncrFgevatREXAFg3__112onfvp_fgevatVpAF1_11pune_genvgfVpRRAF1_9nyybpngbeVpRRRRCF7_CAF1_6irpgbeVF7_AF5_VF7_RRRR:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwR18NqqNyernqlErfreirqREXw
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwR18NqqNyernqlErfreirqREXw
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwR18NqqNyernqlErfreirqREXw,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwR18NqqNyernqlErfreirqREXw:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyR6eortvaRi
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyR6eortvaRi
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyR6eortvaRi,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyR6eortvaRi:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyRP2REXF2_
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyRP2REXF2_
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyRP2REXF2_,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyRP2REXF2_:
 nop
 .text
-.globl b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVzR3ercRi
+.weak b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVzR3ercRi
 .type b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVzR3ercRi,%function
 b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVzR3ercRi:
 nop
@@ -5288,12 +5288,12 @@
 b__MA6tbbtyr8cebgbohs2vb18VfgernzVachgFgernz4ArkgRCCXiCv:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsR9PbclNeenlRCsCXsv
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsR9PbclNeenlRCsCXsv
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsR9PbclNeenlRCsCXsv,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsR9PbclNeenlRCsCXsv:
 nop
 .text
-.globl b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVqR3raqRi
+.weak b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVqR3raqRi
 .type b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVqR3raqRi,%function
 b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVqR3raqRi:
 nop
@@ -5313,17 +5313,17 @@
 b__MA6tbbtyr8cebgbohs8vagreany12RkgrafvbaFrg21ErtvfgreRahzRkgrafvbaRCXAF0_11ZrffntrYvgrRvuooCSovR:
 nop
 .text
-.globl b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
+.weak b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
 .type b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_,%function
 b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoR8PbclSebzREXF2_
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoR8PbclSebzREXF2_
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoR8PbclSebzREXF2_,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoR8PbclSebzREXF2_:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwRP2REXF2_
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwRP2REXF2_
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwRP2REXF2_,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwRP2REXF2_:
 nop
@@ -5348,32 +5348,32 @@
 b__MA6tbbtyr8cebgbohs8vagreany18RcfPbclVachgFgernz4ArkgRvv:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvRP2REXF2_
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvRP2REXF2_
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvRP2REXF2_,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvRP2REXF2_:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyR5ortvaRi
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyR5ortvaRi
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyR5ortvaRi,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyR5ortvaRi:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzRP2RBF2_
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzRP2RBF2_
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzRP2RBF2_,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzRP2RBF2_:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs8vagreany18RcfPbclVachgFgernz15ErnqCnpxrqSvkrqVsRRCXpF5_vCAF0_13ErcrngrqSvryqVG_RR
+.weak b__MA6tbbtyr8cebgbohs8vagreany18RcfPbclVachgFgernz15ErnqCnpxrqSvkrqVsRRCXpF5_vCAF0_13ErcrngrqSvryqVG_RR
 .type b__MA6tbbtyr8cebgbohs8vagreany18RcfPbclVachgFgernz15ErnqCnpxrqSvkrqVsRRCXpF5_vCAF0_13ErcrngrqSvryqVG_RR,%function
 b__MA6tbbtyr8cebgbohs8vagreany18RcfPbclVachgFgernz15ErnqCnpxrqSvkrqVsRRCXpF5_vCAF0_13ErcrngrqSvryqVG_RR:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsR19NqqANyernqlErfreirqRv
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsR19NqqANyernqlErfreirqRv
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsR19NqqANyernqlErfreirqRv,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsR19NqqANyernqlErfreirqRv:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvR6ErfvmrRvEXv
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvR6ErfvmrRvEXv
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvR6ErfvmrRvEXv,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvR6ErfvmrRvEXv:
 nop
@@ -5393,7 +5393,7 @@
 b__MA6tbbtyr8cebgbohs11ZrffntrYvgr20ZretrSebzPbqrqFgernzRCAF0_2vb16PbqrqVachgFgernzR:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwR5ortvaRi
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwR5ortvaRi
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwR5ortvaRi,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwR5ortvaRi:
 nop
@@ -5403,27 +5403,27 @@
 b__MA6tbbtyr8cebgbohs10FvzcyrVgbnRl:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs8vagreany21neran_qrfgehpg_bowrpgVAF0_16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF4_11pune_genvgfVpRRAF4_9nyybpngbeVpRRRRRRRRiCi
+.weak b__MA6tbbtyr8cebgbohs8vagreany21neran_qrfgehpg_bowrpgVAF0_16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF4_11pune_genvgfVpRRAF4_9nyybpngbeVpRRRRRRRRiCi
 .type b__MA6tbbtyr8cebgbohs8vagreany21neran_qrfgehpg_bowrpgVAF0_16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF4_11pune_genvgfVpRRAF4_9nyybpngbeVpRRRRRRRRiCi,%function
 b__MA6tbbtyr8cebgbohs8vagreany21neran_qrfgehpg_bowrpgVAF0_16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF4_11pune_genvgfVpRRAF4_9nyybpngbeVpRRRRRRRRiCi:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsRP2REXF2_
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsRP2REXF2_
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsRP2REXF2_,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsRP2REXF2_:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvR5ortvaRi
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvR5ortvaRi
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvR5ortvaRi,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvR5ortvaRi:
 nop
 .text
-.globl b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVsR26FcnprHfrqRkpyhqvatFrysYbatRi
+.weak b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVsR26FcnprHfrqRkpyhqvatFrysYbatRi
 .type b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVsR26FcnprHfrqRkpyhqvatFrysYbatRi,%function
 b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVsR26FcnprHfrqRkpyhqvatFrysYbatRi:
 nop
 .text
-.globl b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVvR15hafnsr_ryrzragfRi
+.weak b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVvR15hafnsr_ryrzragfRi
 .type b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVvR15hafnsr_ryrzragfRi,%function
 b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVvR15hafnsr_ryrzragfRi:
 nop
@@ -5438,7 +5438,7 @@
 b__MA6tbbtyr8cebgbohs8vagreany20ErcrngrqCgeSvryqOnfr7ErfreirRv:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoRQ2Ri
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoRQ2Ri
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoRQ2Ri,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoRQ2Ri:
 nop
@@ -5448,12 +5448,12 @@
 b__MA6tbbtyr8cebgbohs8vagreany18RcfPbclVachgFgernz20NccraqFgevatSnyyonpxRCXpvCAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRR:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoR5renfrRCXoF4_
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoR5renfrRCXoF4_
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoR5renfrRCXoF4_,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoR5renfrRCXoF4_:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqRP2REXF2_
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqRP2REXF2_
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqRP2REXF2_,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqRP2REXF2_:
 nop
@@ -5468,17 +5468,17 @@
 b__MA6tbbtyr8cebgbohs8vagreany12RkgrafvbaFrg9NqqHVag32RvuowCXAF0_15SvryqQrfpevcgbeR:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsR5ortvaRi
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsR5ortvaRi
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsR5ortvaRi,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsR5ortvaRi:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzRP2RCAF0_5NeranR
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzRP2RCAF0_5NeranR
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzRP2RCAF0_5NeranR,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzRP2RCAF0_5NeranR:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRRP1Ri
+.weak b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRRP1Ri
 .type b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRRP1Ri,%function
 b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRRP1Ri:
 nop
@@ -5493,42 +5493,42 @@
 b__MAX6tbbtyr8cebgbohs8vagreany12RkgrafvbaFrg9TrgHVag64Rvz:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVvA6tbbtyr8cebgbohs8vagreany12RkgrafvbaFrg9RkgrafvbaRRRAF_19__znc_inyhr_pbzcnerVvF7_AF_4yrffVvRRYo1RRRAF_9nyybpngbeVF7_RRR7qrfgeblRCAF_11__gerr_abqrVF7_CiRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVvA6tbbtyr8cebgbohs8vagreany12RkgrafvbaFrg9RkgrafvbaRRRAF_19__znc_inyhr_pbzcnerVvF7_AF_4yrffVvRRYo1RRRAF_9nyybpngbeVF7_RRR7qrfgeblRCAF_11__gerr_abqrVF7_CiRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVvA6tbbtyr8cebgbohs8vagreany12RkgrafvbaFrg9RkgrafvbaRRRAF_19__znc_inyhr_pbzcnerVvF7_AF_4yrffVvRRYo1RRRAF_9nyybpngbeVF7_RRR7qrfgeblRCAF_11__gerr_abqrVF7_CiRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVvA6tbbtyr8cebgbohs8vagreany12RkgrafvbaFrg9RkgrafvbaRRRAF_19__znc_inyhr_pbzcnerVvF7_AF_4yrffVvRRYo1RRRAF_9nyybpngbeVF7_RRR7qrfgeblRCAF_11__gerr_abqrVF7_CiRR:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs8vagreany20ZretrCnegvnySebzVzcyVYo0RRRoCAF0_2vb19MrebPbclVachgFgernzRCAF0_11ZrffntrYvgrR
+.weak b__MA6tbbtyr8cebgbohs8vagreany20ZretrCnegvnySebzVzcyVYo0RRRoCAF0_2vb19MrebPbclVachgFgernzRCAF0_11ZrffntrYvgrR
 .type b__MA6tbbtyr8cebgbohs8vagreany20ZretrCnegvnySebzVzcyVYo0RRRoCAF0_2vb19MrebPbclVachgFgernzRCAF0_11ZrffntrYvgrR,%function
 b__MA6tbbtyr8cebgbohs8vagreany20ZretrCnegvnySebzVzcyVYo0RRRoCAF0_2vb19MrebPbclVachgFgernzRCAF0_11ZrffntrYvgrR:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoRP2REXF2_
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoRP2REXF2_
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoRP2REXF2_,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoRP2REXF2_:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqR19NqqANyernqlErfreirqRv
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqR19NqqANyernqlErfreirqRv
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqR19NqqANyernqlErfreirqRv,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqR19NqqANyernqlErfreirqRv:
 nop
 .text
-.globl b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVyR4praqRi
+.weak b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVyR4praqRi
 .type b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVyR4praqRi,%function
 b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVyR4praqRi:
 nop
 .text
-.globl b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVyR4qngnRi
+.weak b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVyR4qngnRi
 .type b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVyR4qngnRi,%function
 b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVyR4qngnRi:
 nop
 .text
-.globl b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVzR2ngRv
+.weak b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVzR2ngRv
 .type b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVzR2ngRv,%function
 b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVzR2ngRv:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs8vagreany21neran_qrfgehpg_bowrpgVAF1_19VzcyvpvgJrnxZrffntrRRRiCi
+.weak b__MA6tbbtyr8cebgbohs8vagreany21neran_qrfgehpg_bowrpgVAF1_19VzcyvpvgJrnxZrffntrRRRiCi
 .type b__MA6tbbtyr8cebgbohs8vagreany21neran_qrfgehpg_bowrpgVAF1_19VzcyvpvgJrnxZrffntrRRRiCi,%function
 b__MA6tbbtyr8cebgbohs8vagreany21neran_qrfgehpg_bowrpgVAF1_19VzcyvpvgJrnxZrffntrRRRiCi:
 nop
@@ -5538,12 +5538,12 @@
 b__MA6tbbtyr8cebgbohs2vb16PbqrqVachgFgernz23ErnqInevagFvmrNfVagFybjRi:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqR5ortvaRi
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqR5ortvaRi
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqR5ortvaRi,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqR5ortvaRi:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwR3raqRi
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwR3raqRi
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwR3raqRi,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwR3raqRi:
 nop
@@ -5563,17 +5563,17 @@
 b__MGIA6tbbtyr8cebgbohs2vb17NeenlBhgchgFgernzR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoR5ortvaRi
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoR5ortvaRi
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoR5ortvaRi,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoR5ortvaRi:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoRnFRBF2_
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoRnFRBF2_
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoRnFRBF2_,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoRnFRBF2_:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR11EryrnfrYnfgRi
+.weak b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR11EryrnfrYnfgRi
 .type b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR11EryrnfrYnfgRi,%function
 b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR11EryrnfrYnfgRi:
 nop
@@ -5598,22 +5598,22 @@
 b__MAX6tbbtyr8cebgbohs11ZrffntrYvgr22FrevnyvmrGbPbqrqFgernzRCAF0_2vb17PbqrqBhgchgFgernzR:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs8vagreany18RcfPbclVachgFgernz16ErnqCnpxrqInevagVMAF1_12InevagCnefreVvYo0RRRCXpCiF6_CAF1_12CnefrPbagrkgRRHyzR_RRF6_F6_G_
+.weak b__MA6tbbtyr8cebgbohs8vagreany18RcfPbclVachgFgernz16ErnqCnpxrqInevagVMAF1_12InevagCnefreVvYo0RRRCXpCiF6_CAF1_12CnefrPbagrkgRRHyzR_RRF6_F6_G_
 .type b__MA6tbbtyr8cebgbohs8vagreany18RcfPbclVachgFgernz16ErnqCnpxrqInevagVMAF1_12InevagCnefreVvYo0RRRCXpCiF6_CAF1_12CnefrPbagrkgRRHyzR_RRF6_F6_G_,%function
 b__MA6tbbtyr8cebgbohs8vagreany18RcfPbclVachgFgernz16ErnqCnpxrqInevagVMAF1_12InevagCnefreVvYo0RRRCXpCiF6_CAF1_12CnefrPbagrkgRRHyzR_RRF6_F6_G_:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqRvkRv
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqRvkRv
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqRvkRv,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqRvkRv:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR22HafnsrNeranEryrnfrYnfgRi
+.weak b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR22HafnsrNeranEryrnfrYnfgRi
 .type b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR22HafnsrNeranEryrnfrYnfgRi,%function
 b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR22HafnsrNeranEryrnfrYnfgRi:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzR8PbclSebzREXF2_
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzR8PbclSebzREXF2_
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzR8PbclSebzREXF2_,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzR8PbclSebzREXF2_:
 nop
@@ -5623,7 +5623,7 @@
 b__MA6tbbtyr8cebgbohs2vb17PbqrqBhgchgFgernz19JevgrYvggyrRaqvna32Rw:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoR19NqqANyernqlErfreirqRv
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoR19NqqANyernqlErfreirqRv
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoR19NqqANyernqlErfreirqRv,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoR19NqqANyernqlErfreirqRv:
 nop
@@ -5663,12 +5663,12 @@
 b__MA6tbbtyr8cebgbohs8vagreany18TrarevpGlcrUnaqyreVAF0_11ZrffntrYvgrRR16ArjSebzCebgbglcrRCXF3_CAF0_5NeranR:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzR4eraqRi
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzR4eraqRi
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzR4eraqRi,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzR4eraqRi:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs17fnsr_vag_vagreanyVyRRoAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRCG_
+.weak b__MA6tbbtyr8cebgbohs17fnsr_vag_vagreanyVyRRoAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRCG_
 .type b__MA6tbbtyr8cebgbohs17fnsr_vag_vagreanyVyRRoAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRCG_,%function
 b__MA6tbbtyr8cebgbohs17fnsr_vag_vagreanyVyRRoAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRCG_:
 nop
@@ -5683,7 +5683,7 @@
 b__MA6tbbtyr8cebgbohs8vagreany14JverSbezngYvgr10HVag32FvmrREXAF0_13ErcrngrqSvryqVwRR:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsR9ZretrSebzREXF2_
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsR9ZretrSebzREXF2_
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsR9ZretrSebzREXF2_,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsR9ZretrSebzREXF2_:
 nop
@@ -5698,17 +5698,17 @@
 b__MA6tbbtyr8cebgbohs8vagreany18CnpxrqQbhoyrCnefreRCiCXpCAF1_12CnefrPbagrkgR:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvR2ngRv
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvR2ngRv
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvR2ngRv,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvR2ngRv:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvR4FjncRCF2_
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvR4FjncRCF2_
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvR4FjncRCF2_,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvR4FjncRCF2_:
 nop
 .text
-.globl b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVsR17TrgNeranAbIveghnyRi
+.weak b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVsR17TrgNeranAbIveghnyRi
 .type b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVsR17TrgNeranAbIveghnyRi,%function
 b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVsR17TrgNeranAbIveghnyRi:
 nop
@@ -5718,7 +5718,7 @@
 b__MAX6tbbtyr8cebgbohs8vagreany11NalZrgnqngn10VagreanyVfRAF0_11FgevatCvrprR:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs8vagreany18FrevnyvmrZrffntrGbVAF1_11NeenlBhgchgRRRiCXAF0_11ZrffntrYvgrRCXiCG_
+.weak b__MA6tbbtyr8cebgbohs8vagreany18FrevnyvmrZrffntrGbVAF1_11NeenlBhgchgRRRiCXAF0_11ZrffntrYvgrRCXiCG_
 .type b__MA6tbbtyr8cebgbohs8vagreany18FrevnyvmrZrffntrGbVAF1_11NeenlBhgchgRRRiCXAF0_11ZrffntrYvgrRCXiCG_,%function
 b__MA6tbbtyr8cebgbohs8vagreany18FrevnyvmrZrffntrGbVAF1_11NeenlBhgchgRRRiCXAF0_11ZrffntrYvgrRCXiCG_:
 nop
@@ -5728,7 +5728,7 @@
 b__MA6tbbtyr8cebgbohs2vb19BfgernzBhgchgFgernz26PbclvatBfgernzBhgchgFgernzQ0Ri:
 nop
 .text
-.globl b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVwR8TrgNeranRi
+.weak b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVwR8TrgNeranRi
 .type b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVwR8TrgNeranRi,%function
 b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVwR8TrgNeranRi:
 nop
@@ -5738,17 +5738,17 @@
 b__MA6tbbtyr8cebgbohs14QbhoyrGbOhssreRqCp:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoR6eortvaRi
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoR6eortvaRi
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoR6eortvaRi,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoR6eortvaRi:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzR4FjncRCF2_
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzR4FjncRCF2_
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzR4FjncRCF2_,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzR4FjncRCF2_:
 nop
 .text
-.globl b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVvR6portvaRi
+.weak b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVvR6portvaRi
 .type b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVvR6portvaRi,%function
 b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVvR6portvaRi:
 nop
@@ -5763,17 +5763,17 @@
 b__MA6tbbtyr8cebgbohs8vagreany12RkgrafvbaFrg9FrgHVag32RvuwCXAF0_15SvryqQrfpevcgbeR:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwR10ErzbirYnfgRi
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwR10ErzbirYnfgRi
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwR10ErzbirYnfgRi,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwR10ErzbirYnfgRi:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRRP2RCAF0_5NeranR
+.weak b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRRP2RCAF0_5NeranR
 .type b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRRP2RCAF0_5NeranR,%function
 b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRRP2RCAF0_5NeranR:
 nop
 .text
-.globl b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVqR8ryrzragfRi
+.weak b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVqR8ryrzragfRi
 .type b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVqR8ryrzragfRi,%function
 b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVqR8ryrzragfRi:
 nop
@@ -5793,17 +5793,17 @@
 b__MA6tbbtyr8cebgbohs2vb26PbclvatBhgchgFgernzNqncgbe11JevgrOhssreRi:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoRP1RCAF0_5NeranR
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoRP1RCAF0_5NeranR
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoRP1RCAF0_5NeranR,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoRP1RCAF0_5NeranR:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqR9PbclNeenlRCqCXqv
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqR9PbclNeenlRCqCXqv
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqR9PbclNeenlRCqCXqv,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqR9PbclNeenlRCqCXqv:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs8vagreany20ErcrngrqCgeSvryqOnfr12FjncSnyyonpxVAF0_16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRRR11GlcrUnaqyreRRRiCF2_
+.weak b__MA6tbbtyr8cebgbohs8vagreany20ErcrngrqCgeSvryqOnfr12FjncSnyyonpxVAF0_16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRRR11GlcrUnaqyreRRRiCF2_
 .type b__MA6tbbtyr8cebgbohs8vagreany20ErcrngrqCgeSvryqOnfr12FjncSnyyonpxVAF0_16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRRR11GlcrUnaqyreRRRiCF2_,%function
 b__MA6tbbtyr8cebgbohs8vagreany20ErcrngrqCgeSvryqOnfr12FjncSnyyonpxVAF0_16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRRR11GlcrUnaqyreRRRiCF2_:
 nop
@@ -5818,12 +5818,12 @@
 b__MA6tbbtyr8cebgbohs8vagreany14JverSbezngYvgr22JevgrOlgrfZnlorNyvnfrqRvEXAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRRCAF0_2vb17PbqrqBhgchgFgernzR:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqRP2Ri
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqRP2Ri
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqRP2Ri,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqRP2Ri:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs8vagreany20ErcrngrqCgeSvryqOnfr24NqqNyybpngrqFybjJvguPbclVAF0_16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRRR11GlcrUnaqyreRRRiCAG_4GlcrRCAF0_5NeranRFV_
+.weak b__MA6tbbtyr8cebgbohs8vagreany20ErcrngrqCgeSvryqOnfr24NqqNyybpngrqFybjJvguPbclVAF0_16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRRR11GlcrUnaqyreRRRiCAG_4GlcrRCAF0_5NeranRFV_
 .type b__MA6tbbtyr8cebgbohs8vagreany20ErcrngrqCgeSvryqOnfr24NqqNyybpngrqFybjJvguPbclVAF0_16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRRR11GlcrUnaqyreRRRiCAG_4GlcrRCAF0_5NeranRFV_,%function
 b__MA6tbbtyr8cebgbohs8vagreany20ErcrngrqCgeSvryqOnfr24NqqNyybpngrqFybjJvguPbclVAF0_16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRRR11GlcrUnaqyreRRRiCAG_4GlcrRCAF0_5NeranRFV_:
 nop
@@ -5838,7 +5838,7 @@
 b__MA6tbbtyr8cebgbohs8vagreany18RcfPbclVachgFgernz8VavgSebzRCAF0_2vb19MrebPbclVachgFgernzR:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs8vagreany20ErcrngrqCgeSvryqOnfr23HafnsrNeranNqqNyybpngrqVAF0_16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRRR11GlcrUnaqyreRRRiCAG_4GlcrR
+.weak b__MA6tbbtyr8cebgbohs8vagreany20ErcrngrqCgeSvryqOnfr23HafnsrNeranNqqNyybpngrqVAF0_16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRRR11GlcrUnaqyreRRRiCAG_4GlcrR
 .type b__MA6tbbtyr8cebgbohs8vagreany20ErcrngrqCgeSvryqOnfr23HafnsrNeranNqqNyybpngrqVAF0_16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRRR11GlcrUnaqyreRRRiCAG_4GlcrR,%function
 b__MA6tbbtyr8cebgbohs8vagreany20ErcrngrqCgeSvryqOnfr23HafnsrNeranNqqNyybpngrqVAF0_16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRRR11GlcrUnaqyreRRRiCAG_4GlcrR:
 nop
@@ -5873,17 +5873,17 @@
 b__MAX6tbbtyr8cebgbohs8vagreany12RkgrafvbaFrg8TrgSybngRvs:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzRP1REXF2_
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzRP1REXF2_
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzRP1REXF2_,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzRP1REXF2_:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR9ZretrSebzREXF9_
+.weak b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR9ZretrSebzREXF9_
 .type b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR9ZretrSebzREXF9_,%function
 b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR9ZretrSebzREXF9_:
 nop
 .text
-.globl b__MAX6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR12PyrnerqPbhagRi
+.weak b__MAX6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR12PyrnerqPbhagRi
 .type b__MAX6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR12PyrnerqPbhagRi,%function
 b__MAX6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR12PyrnerqPbhagRi:
 nop
@@ -5898,17 +5898,17 @@
 b__MA6tbbtyr8cebgbohs2vb25PbclvatVachgFgernzNqncgbe22NyybpngrOhssreVsArrqrqRi:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqR8GehapngrRv
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqR8GehapngrRv
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqR8GehapngrRv,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqR8GehapngrRv:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyRP1REXF2_
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyRP1REXF2_
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyRP1REXF2_,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyRP1REXF2_:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR3NqqRBF8_
+.weak b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR3NqqRBF8_
 .type b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR3NqqRBF8_,%function
 b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR3NqqRBF8_:
 nop
@@ -5948,17 +5948,17 @@
 b__MA6tbbtyr8cebgbohs8vagreany10YbtZrffntryfRv:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqRP2RBF2_
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqRP2RBF2_
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqRP2RBF2_,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqRP2RBF2_:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwRP1REXF2_
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwRP1REXF2_
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwRP1REXF2_,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwRP1REXF2_:
 nop
 .text
-.globl b__MAX6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR26FcnprHfrqRkpyhqvatFrysYbatRi
+.weak b__MAX6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR26FcnprHfrqRkpyhqvatFrysYbatRi
 .type b__MAX6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR26FcnprHfrqRkpyhqvatFrysYbatRi,%function
 b__MAX6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR26FcnprHfrqRkpyhqvatFrysYbatRi:
 nop
@@ -5968,12 +5968,12 @@
 b__MA6tbbtyr8cebgbohs8vagreany10YbtZrffntryfRw:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvR18VagreanyQrnyybpngrRCAF2_3ErcRv
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvR18VagreanyQrnyybpngrRCAF2_3ErcRv
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvR18VagreanyQrnyybpngrRCAF2_3ErcRv,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvR18VagreanyQrnyybpngrRCAF2_3ErcRv:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvRP1REXF2_
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvRP1REXF2_
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvRP1REXF2_,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvRP1REXF2_:
 nop
@@ -5988,12 +5988,12 @@
 b__MAX6tbbtyr8cebgbohs8vagreany12RkgrafvbaFrg8TrgVag32Rvv:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs8vagreany18RcfPbclVachgFgernz16ErnqCnpxrqInevagVMAF1_12InevagCnefreVzYo0RRRCXpCiF6_CAF1_12CnefrPbagrkgRRHyzR_RRF6_F6_G_
+.weak b__MA6tbbtyr8cebgbohs8vagreany18RcfPbclVachgFgernz16ErnqCnpxrqInevagVMAF1_12InevagCnefreVzYo0RRRCXpCiF6_CAF1_12CnefrPbagrkgRRHyzR_RRF6_F6_G_
 .type b__MA6tbbtyr8cebgbohs8vagreany18RcfPbclVachgFgernz16ErnqCnpxrqInevagVMAF1_12InevagCnefreVzYo0RRRCXpCiF6_CAF1_12CnefrPbagrkgRRHyzR_RRF6_F6_G_,%function
 b__MA6tbbtyr8cebgbohs8vagreany18RcfPbclVachgFgernz16ErnqCnpxrqInevagVMAF1_12InevagCnefreVzYo0RRRCXpCiF6_CAF1_12CnefrPbagrkgRRHyzR_RRF6_F6_G_:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzRP1RCAF0_5NeranR
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzRP1RCAF0_5NeranR
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzRP1RCAF0_5NeranR,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzRP1RCAF0_5NeranR:
 nop
@@ -6033,22 +6033,22 @@
 b__MA6tbbtyr8cebgbohs8vagreany10YbtZrffntryfRz:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsRP1REXF2_
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsRP1REXF2_
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsRP1REXF2_,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVsRP1REXF2_:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwRP2RCAF0_5NeranR
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwRP2RCAF0_5NeranR
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwRP2RCAF0_5NeranR,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwRP2RCAF0_5NeranR:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR3NqqRi
+.weak b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR3NqqRi
 .type b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR3NqqRi,%function
 b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR3NqqRi:
 nop
 .text
-.globl b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVyR2ngRv
+.weak b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVyR2ngRv
 .type b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVyR2ngRv,%function
 b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVyR2ngRv:
 nop
@@ -6068,22 +6068,22 @@
 b__MA6tbbtyr8cebgbohs2vb16SvyrBhgchgFgernzP2Rvv:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvR18NqqNyernqlErfreirqRi
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvR18NqqNyernqlErfreirqRi
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvR18NqqNyernqlErfreirqRi,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvR18NqqNyernqlErfreirqRi:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs8vagreany21neran_qrfgehpg_bowrpgVAF0_13ErcrngrqSvryqVvRRRRiCi
+.weak b__MA6tbbtyr8cebgbohs8vagreany21neran_qrfgehpg_bowrpgVAF0_13ErcrngrqSvryqVvRRRRiCi
 .type b__MA6tbbtyr8cebgbohs8vagreany21neran_qrfgehpg_bowrpgVAF0_13ErcrngrqSvryqVvRRRRiCi,%function
 b__MA6tbbtyr8cebgbohs8vagreany21neran_qrfgehpg_bowrpgVAF0_13ErcrngrqSvryqVvRRRRiCi:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqRP1REXF2_
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqRP1REXF2_
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqRP1REXF2_,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqRP1REXF2_:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwR5renfrRCXwF4_
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwR5renfrRCXwF4_
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwR5renfrRCXwF4_,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwR5renfrRCXwF4_:
 nop
@@ -6098,7 +6098,7 @@
 b__MA6tbbtyr8cebgbohs8vagreany15ErnqGntSnyyonpxRCXpw:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvRvkRv
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvRvkRv
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvRvkRv,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvRvkRv:
 nop
@@ -6113,7 +6113,7 @@
 b__MAX6tbbtyr8cebgbohs8vagreany12RkgrafvbaFrg24FrevnyvmrJvguPnpurqFvmrfRvvCAF0_2vb17PbqrqBhgchgFgernzR:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoRP1REXF2_
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoRP1REXF2_
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoRP1REXF2_,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoRP1REXF2_:
 nop
@@ -6128,22 +6128,22 @@
 b__MGIA6tbbtyr8cebgbohs2vb26PbclvatBhgchgFgernzNqncgbeR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVvR3TrgRv
+.weak b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVvR3TrgRv
 .type b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVvR3TrgRv,%function
 b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVvR3TrgRv:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqR3FrgRvEXq
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqR3FrgRvEXq
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqR3FrgRvEXq,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqR3FrgRvEXq:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvR7ZhgnoyrRv
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvR7ZhgnoyrRv
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvR7ZhgnoyrRv,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvR7ZhgnoyrRv:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwR8PbclSebzREXF2_
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwR8PbclSebzREXF2_
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwR8PbclSebzREXF2_,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwR8PbclSebzREXF2_:
 nop
@@ -6153,7 +6153,7 @@
 b__MA6tbbtyr8cebgbohs2vb16NeenlVachgFgernzP2RCXivv:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzRP1Ri
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzRP1Ri
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzRP1Ri,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzRP1Ri:
 nop
@@ -6168,7 +6168,7 @@
 b__MGIA6tbbtyr8cebgbohs7fgevatf8OlgrFvaxR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MMA6tbbtyr8cebgbohs8vagreany17QrsnhygYbtUnaqyreRAF0_8YbtYriryRCXpvEXAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRRR11yriry_anzrf
+.weak b__MMA6tbbtyr8cebgbohs8vagreany17QrsnhygYbtUnaqyreRAF0_8YbtYriryRCXpvEXAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRRR11yriry_anzrf
 .type b__MMA6tbbtyr8cebgbohs8vagreany17QrsnhygYbtUnaqyreRAF0_8YbtYriryRCXpvEXAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRRR11yriry_anzrf,%object
 b__MMA6tbbtyr8cebgbohs8vagreany17QrsnhygYbtUnaqyreRAF0_8YbtYriryRCXpvEXAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRRR11yriry_anzrf:
 .space __SIZEOF_POINTER__
@@ -6183,7 +6183,7 @@
 b__MA6tbbtyr8cebgbohs8vagreany9NeranVzcy8ArjOybpxRCAF2_5OybpxRz:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzR7ZhgnoyrRv
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzR7ZhgnoyrRv
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzR7ZhgnoyrRv,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzR7ZhgnoyrRv:
 nop
@@ -6198,17 +6198,17 @@
 b__MA6tbbtyr8cebgbohs8vagreany24xGlcrTbbtyrNcvfPbzCersvkR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVwR3raqRi
+.weak b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVwR3raqRi
 .type b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVwR3raqRi,%function
 b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVwR3raqRi:
 nop
 .text
-.globl b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVyR15hafnsr_ryrzragfRi
+.weak b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVyR15hafnsr_ryrzragfRi
 .type b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVyR15hafnsr_ryrzragfRi,%function
 b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVyR15hafnsr_ryrzragfRi:
 nop
 .text
-.globl b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR8biresybjRv
+.weak b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR8biresybjRv
 .type b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR8biresybjRv,%function
 b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR8biresybjRv:
 nop
@@ -6218,7 +6218,7 @@
 b__MA6tbbtyr8cebgbohs2vb18FgevatBhgchgFgernz4ArkgRCCiCv:
 nop
 .text
-.globl b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVqR15hafnsr_ryrzragfRi
+.weak b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVqR15hafnsr_ryrzragfRi
 .type b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVqR15hafnsr_ryrzragfRi,%function
 b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVqR15hafnsr_ryrzragfRi:
 nop
@@ -6228,12 +6228,12 @@
 b__MA6tbbtyr8cebgbohs8vagreany12RkgrafvbaFrgQ2Ri:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoR12zhgnoyr_qngnRi
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoR12zhgnoyr_qngnRi
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoR12zhgnoyr_qngnRi,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoR12zhgnoyr_qngnRi:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqR4eraqRi
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqR4eraqRi
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqR4eraqRi,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqR4eraqRi:
 nop
@@ -6258,12 +6258,12 @@
 b__MA6tbbtyr8cebgbohs2vb19YvzvgvatVachgFgernzQ2Ri:
 nop
 .text
-.globl b__MAX6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR4praqRi
+.weak b__MAX6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR4praqRi
 .type b__MAX6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR4praqRi,%function
 b__MAX6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR4praqRi:
 nop
 .text
-.globl b__MAX6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR4qngnRi
+.weak b__MAX6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR4qngnRi
 .type b__MAX6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR4qngnRi,%function
 b__MAX6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR4qngnRi:
 nop
@@ -6283,12 +6283,12 @@
 b__MA6tbbtyr8cebgbohs8vagreany9NeranVzcy11FrevnyNeran18NqqPyrnahcSnyyonpxRCiCSiF4_R:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRRP1RCAF0_5NeranR
+.weak b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRRP1RCAF0_5NeranR
 .type b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRRP1RCAF0_5NeranR,%function
 b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRRP1RCAF0_5NeranR:
 nop
 .text
-.globl b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVoR4eraqRi
+.weak b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVoR4eraqRi
 .type b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVoR4eraqRi,%function
 b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVoR4eraqRi:
 nop
@@ -6318,12 +6318,12 @@
 b__MAX6tbbtyr8cebgbohs11ZrffntrYvgr25FrevnyvmrGbSvyrQrfpevcgbeRv:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoR9PbclNeenlRCoCXov
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoR9PbclNeenlRCoCXov
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoR9PbclNeenlRCoCXov,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoR9PbclNeenlRCoCXov:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyRnFRBF2_
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyRnFRBF2_
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyRnFRBF2_,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyRnFRBF2_:
 nop
@@ -6348,17 +6348,17 @@
 b__MAX6tbbtyr8cebgbohs11ZrffntrYvgr3ArjRCAF0_5NeranR:
 nop
 .data
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoR14xErcUrnqreFvmrR
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoR14xErcUrnqreFvmrR
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoR14xErcUrnqreFvmrR,%object
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoR14xErcUrnqreFvmrR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoRP1Ri
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoRP1Ri
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoRP1Ri,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoRP1Ri:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvRP2Ri
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvRP2Ri
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvRP2Ri,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvRP2Ri:
 nop
@@ -6378,7 +6378,7 @@
 b__MAX6tbbtyr8cebgbohs2vb15SvyrVachgFgernz9OlgrPbhagRi:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvRP2RBF2_
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvRP2RBF2_
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvRP2RBF2_,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVvRP2RBF2_:
 nop
@@ -6388,12 +6388,12 @@
 b__MA6tbbtyr8cebgbohs2vb19YvzvgvatVachgFgernz6OnpxHcRv:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR3raqRi
+.weak b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR3raqRi
 .type b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR3raqRi,%function
 b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR3raqRi:
 nop
 .text
-.globl b__MAX6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR6eortvaRi
+.weak b__MAX6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR6eortvaRi
 .type b__MAX6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR6eortvaRi,%function
 b__MAX6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR6eortvaRi:
 nop
@@ -6408,7 +6408,7 @@
 b__MA6tbbtyr8cebgbohs8vagreany9NeranVzcy28NyybpngrNyvtarqNaqNqqPyrnahcRzCSiCiR:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs8vagreany21neran_qrfgehpg_bowrpgVAF0_13ErcrngrqSvryqVqRRRRiCi
+.weak b__MA6tbbtyr8cebgbohs8vagreany21neran_qrfgehpg_bowrpgVAF0_13ErcrngrqSvryqVqRRRRiCi
 .type b__MA6tbbtyr8cebgbohs8vagreany21neran_qrfgehpg_bowrpgVAF0_13ErcrngrqSvryqVqRRRRiCi,%function
 b__MA6tbbtyr8cebgbohs8vagreany21neran_qrfgehpg_bowrpgVAF0_13ErcrngrqSvryqVqRRRRiCi:
 nop
@@ -6418,17 +6418,17 @@
 b__MA6tbbtyr8cebgbohs8vagreany12RkgrafvbaFrg7NqqObbyRvuooCXAF0_15SvryqQrfpevcgbeR:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs8vagreany18RcfPbclVachgFgernz16ErnqCnpxrqInevagVMAF1_12InevagCnefreVoYo0RRRCXpCiF6_CAF1_12CnefrPbagrkgRRHyzR_RRF6_F6_G_
+.weak b__MA6tbbtyr8cebgbohs8vagreany18RcfPbclVachgFgernz16ErnqCnpxrqInevagVMAF1_12InevagCnefreVoYo0RRRCXpCiF6_CAF1_12CnefrPbagrkgRRHyzR_RRF6_F6_G_
 .type b__MA6tbbtyr8cebgbohs8vagreany18RcfPbclVachgFgernz16ErnqCnpxrqInevagVMAF1_12InevagCnefreVoYo0RRRCXpCiF6_CAF1_12CnefrPbagrkgRRHyzR_RRF6_F6_G_,%function
 b__MA6tbbtyr8cebgbohs8vagreany18RcfPbclVachgFgernz16ErnqCnpxrqInevagVMAF1_12InevagCnefreVoYo0RRRCXpCiF6_CAF1_12CnefrPbagrkgRRHyzR_RRF6_F6_G_:
 nop
 .text
-.globl b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVwR26FcnprHfrqRkpyhqvatFrysYbatRi
+.weak b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVwR26FcnprHfrqRkpyhqvatFrysYbatRi
 .type b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVwR26FcnprHfrqRkpyhqvatFrysYbatRi,%function
 b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVwR26FcnprHfrqRkpyhqvatFrysYbatRi:
 nop
 .text
-.globl b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVwR4fvmrRi
+.weak b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVwR4fvmrRi
 .type b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVwR4fvmrRi,%function
 b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVwR4fvmrRi:
 nop
@@ -6448,12 +6448,12 @@
 b__MA6tbbtyr8cebgbohs8vagreany11TrarevpFjncRCAF0_11ZrffntrYvgrRF3_:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyRQ2Ri
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyRQ2Ri
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyRQ2Ri,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyRQ2Ri:
 nop
 .text
-.globl b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVqR3TrgRv
+.weak b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVqR3TrgRv
 .type b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVqR3TrgRv,%function
 b__MAX6tbbtyr8cebgbohs13ErcrngrqSvryqVqR3TrgRv:
 nop
@@ -6508,12 +6508,12 @@
 b__MAX6tbbtyr8cebgbohs8vagreany12RkgrafvbaFrg7TrgObbyRvo:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqR18NqqNyernqlErfreirqREXq
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqR18NqqNyernqlErfreirqREXq
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqR18NqqNyernqlErfreirqREXq,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqR18NqqNyernqlErfreirqREXq:
 nop
 .data
-.globl b__MGGAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
+.weak b__MGGAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
 .type b__MGGAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR,%object
 b__MGGAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR:
 .space __SIZEOF_POINTER__
@@ -6528,12 +6528,12 @@
 b__MAX6tbbtyr8cebgbohs11ZrffntrYvgr29YbtVavgvnyvmngvbaReebeZrffntrRi:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwRP1RCAF0_5NeranR
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwRP1RCAF0_5NeranR
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwRP1RCAF0_5NeranR,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVwRP1RCAF0_5NeranR:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR15RkgenpgFhoenatrRvvCCF8_
+.weak b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR15RkgenpgFhoenatrRvvCCF8_
 .type b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR15RkgenpgFhoenatrRvvCCF8_,%function
 b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR15RkgenpgFhoenatrRvvCCF8_:
 nop
@@ -6568,12 +6568,12 @@
 b__MA6tbbtyr8cebgbohs8vagreany19CnpxrqRahzCnefreNetRCiCXpCAF1_12CnefrPbagrkgRCSoCXivRF8_CAF1_29VagreanyZrgnqngnJvguNeranYvgrRv:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoR5renfrRCXo
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoR5renfrRCXo
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoR5renfrRCXo,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVoR5renfrRCXo:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzRP1RBF2_
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzRP1RBF2_
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzRP1RBF2_,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzRP1RBF2_:
 nop
@@ -6583,12 +6583,12 @@
 b__MA6tbbtyr8cebgbohs8vagreany12RkgrafvbaFrg16FrgErcrngrqSybngRvvs:
 nop
 .data
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqR14xErcUrnqreFvmrR
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqR14xErcUrnqreFvmrR
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqR14xErcUrnqreFvmrR,%object
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqR14xErcUrnqreFvmrR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqR5renfrRCXq
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqR5renfrRCXq
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqR5renfrRCXq,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVqR5renfrRCXq:
 nop
@@ -6608,7 +6608,7 @@
 b__MA6tbbtyr8cebgbohs2vb18VfgernzVachgFgernz25PbclvatVfgernzVachgFgernzQ2Ri:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzR3FrgRvEXz
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzR3FrgRvEXz
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzR3FrgRvEXz,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVzR3FrgRvEXz:
 nop
@@ -6618,12 +6618,12 @@
 b__MA6tbbtyr8cebgbohs12fnsr_fgegb64REXAFg3__112onfvp_fgevatVpAF1_11pune_genvgfVpRRAF1_9nyybpngbeVpRRRRCy:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyR12zhgnoyr_qngnRi
+.weak b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyR12zhgnoyr_qngnRi
 .type b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyR12zhgnoyr_qngnRi,%function
 b__MA6tbbtyr8cebgbohs13ErcrngrqSvryqVyR12zhgnoyr_qngnRi:
 nop
 .text
-.globl b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR11cbvagre_raqRi
+.weak b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR11cbvagre_raqRi
 .type b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR11cbvagre_raqRi,%function
 b__MA6tbbtyr8cebgbohs16ErcrngrqCgeSvryqVAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRR11cbvagre_raqRi:
 nop
diff --git a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_113.S b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_113.S
index ec4a6d0..34cb66b 100644
--- a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_113.S
+++ b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_113.S
@@ -28,7 +28,7 @@
 b__MGFl:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MqnCiEXFg9abguebj_g
+.weak b__MqnCiEXFg9abguebj_g
 .type b__MqnCiEXFg9abguebj_g,%function
 b__MqnCiEXFg9abguebj_g:
 nop
@@ -43,7 +43,7 @@
 b__MGVCa:
 .space __SIZEOF_POINTER__
 .text
-.globl b___fnavgvmre_pbi_genpr_pbafg_pzc1
+.weak b___fnavgvmre_pbi_genpr_pbafg_pzc1
 .type b___fnavgvmre_pbi_genpr_pbafg_pzc1,%function
 b___fnavgvmre_pbi_genpr_pbafg_pzc1:
 nop
@@ -68,7 +68,7 @@
 b___pkn_pnyy_harkcrpgrq:
 nop
 .text
-.globl b___fnavgvmre_pbi_genpr_pbafg_pzc2
+.weak b___fnavgvmre_pbi_genpr_pbafg_pzc2
 .type b___fnavgvmre_pbi_genpr_pbafg_pzc2,%function
 b___fnavgvmre_pbi_genpr_pbafg_pzc2:
 nop
@@ -78,7 +78,7 @@
 b__MAFg10onq_glcrvqP2Ri:
 nop
 .text
-.globl b___fnavgvmre_pbi_genpr_pbafg_pzc4
+.weak b___fnavgvmre_pbi_genpr_pbafg_pzc4
 .type b___fnavgvmre_pbi_genpr_pbafg_pzc4,%function
 b___fnavgvmre_pbi_genpr_pbafg_pzc4:
 nop
@@ -153,7 +153,7 @@
 b__MGFA10__pkknovi116__fuvz_glcr_vasbR:
 .space __SIZEOF_POINTER__
 .text
-.globl b___fnavgvmre_pbi_genpr_pzc1
+.weak b___fnavgvmre_pbi_genpr_pzc1
 .type b___fnavgvmre_pbi_genpr_pzc1,%function
 b___fnavgvmre_pbi_genpr_pzc1:
 nop
@@ -163,12 +163,12 @@
 b___hofna_unaqyr_glcr_zvfzngpu_i1_nobeg:
 nop
 .text
-.globl b___fnavgvmre_pbi_genpr_pzc2
+.weak b___fnavgvmre_pbi_genpr_pzc2
 .type b___fnavgvmre_pbi_genpr_pzc2,%function
 b___fnavgvmre_pbi_genpr_pzc2:
 nop
 .text
-.globl b___fnavgvmre_pbi_genpr_pbafg_pzc8
+.weak b___fnavgvmre_pbi_genpr_pbafg_pzc8
 .type b___fnavgvmre_pbi_genpr_pbafg_pzc8,%function
 b___fnavgvmre_pbi_genpr_pbafg_pzc8:
 nop
@@ -233,7 +233,7 @@
 b__MGFA10__pkknovi117__neenl_glcr_vasbR:
 .space __SIZEOF_POINTER__
 .text
-.globl b___fnavgvmre_pbi_genpr_pzc4
+.weak b___fnavgvmre_pbi_genpr_pzc4
 .type b___fnavgvmre_pbi_genpr_pzc4,%function
 b___fnavgvmre_pbi_genpr_pzc4:
 nop
@@ -248,7 +248,7 @@
 b__MGVCk:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MqnCizFg11nyvta_iny_g
+.weak b__MqnCizFg11nyvta_iny_g
 .type b__MqnCizFg11nyvta_iny_g,%function
 b__MqnCizFg11nyvta_iny_g:
 nop
@@ -268,7 +268,7 @@
 b__MGVCl:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MqnCi
+.weak b__MqnCi
 .type b__MqnCi,%function
 b__MqnCi:
 nop
@@ -288,7 +288,7 @@
 b__MGVCXq:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MqnCiFg11nyvta_iny_g
+.weak b__MqnCiFg11nyvta_iny_g
 .type b__MqnCiFg11nyvta_iny_g,%function
 b__MqnCiFg11nyvta_iny_g:
 nop
@@ -303,7 +303,7 @@
 b__MGVCXr:
 .space __SIZEOF_POINTER__
 .text
-.globl b___fnavgvmre_pbi_genpr_pzc8
+.weak b___fnavgvmre_pbi_genpr_pzc8
 .type b___fnavgvmre_pbi_genpr_pzc8,%function
 b___fnavgvmre_pbi_genpr_pzc8:
 nop
@@ -363,7 +363,7 @@
 b__MGVCXv:
 .space __SIZEOF_POINTER__
 .text
-.globl b___fnavgvmre_pbi_genpr_cp_thneq_vavg
+.weak b___fnavgvmre_pbi_genpr_cp_thneq_vavg
 .type b___fnavgvmre_pbi_genpr_cp_thneq_vavg,%function
 b___fnavgvmre_pbi_genpr_cp_thneq_vavg:
 nop
@@ -413,7 +413,7 @@
 b___hofna_unaqyr_qlanzvp_glcr_pnpur_zvff:
 nop
 .text
-.globl b__MqyCi
+.weak b__MqyCi
 .type b__MqyCi,%function
 b__MqyCi:
 nop
@@ -423,7 +423,7 @@
 b__MGVCXy:
 .space __SIZEOF_POINTER__
 .text
-.globl b__ManzEXFg9abguebj_g
+.weak b__ManzEXFg9abguebj_g
 .type b__ManzEXFg9abguebj_g,%function
 b__ManzEXFg9abguebj_g:
 nop
@@ -448,7 +448,7 @@
 b___fnavgvmre_frg_ercbeg_sq:
 nop
 .text
-.globl b___fnavgvmre_pbi_genpr_cp_vaqve
+.weak b___fnavgvmre_pbi_genpr_cp_vaqve
 .type b___fnavgvmre_pbi_genpr_cp_vaqve,%function
 b___fnavgvmre_pbi_genpr_cp_vaqve:
 nop
@@ -468,7 +468,7 @@
 b___fnavgvmre_vafgnyy_znyybp_naq_serr_ubbxf:
 nop
 .text
-.globl b___fnavgvmre_fnaqobk_ba_abgvsl
+.weak b___fnavgvmre_fnaqobk_ba_abgvsl
 .type b___fnavgvmre_fnaqobk_ba_abgvsl,%function
 b___fnavgvmre_fnaqobk_ba_abgvsl:
 nop
@@ -658,7 +658,7 @@
 b__MGVA10__pkknovi123__shaqnzragny_glcr_vasbR:
 .space __SIZEOF_POINTER__
 .text
-.globl b___fnavgvmre_pbi_cpf_vavg
+.weak b___fnavgvmre_pbi_cpf_vavg
 .type b___fnavgvmre_pbi_cpf_vavg,%function
 b___fnavgvmre_pbi_cpf_vavg:
 nop
@@ -838,17 +838,17 @@
 b__MAFg9glcr_vasbQ1Ri:
 nop
 .text
-.globl b__MqyCiz
+.weak b__MqyCiz
 .type b__MqyCiz,%function
 b__MqyCiz:
 nop
 .text
-.globl b__ManzFg11nyvta_iny_gEXFg9abguebj_g
+.weak b__ManzFg11nyvta_iny_gEXFg9abguebj_g
 .type b__ManzFg11nyvta_iny_gEXFg9abguebj_g,%function
 b__ManzFg11nyvta_iny_gEXFg9abguebj_g:
 nop
 .text
-.globl b__MAFg13onq_rkprcgvbaP2REXF_
+.weak b__MAFg13onq_rkprcgvbaP2REXF_
 .type b__MAFg13onq_rkprcgvbaP2REXF_,%function
 b__MAFg13onq_rkprcgvbaP2REXF_:
 nop
@@ -888,7 +888,7 @@
 b__MA10__pkknovi119__trgRkprcgvbaPynffRCX17_Hajvaq_Rkprcgvba:
 nop
 .text
-.globl b___fnavgvmre_ercbeg_reebe_fhzznel
+.weak b___fnavgvmre_ercbeg_reebe_fhzznel
 .type b___fnavgvmre_ercbeg_reebe_fhzznel,%function
 b___fnavgvmre_ercbeg_reebe_fhzznel:
 nop
@@ -903,7 +903,7 @@
 b__MGIFg10onq_glcrvq:
 .space __SIZEOF_POINTER__
 .text
-.globl b___fnavgvmre_pbi_8ovg_pbhagref_vavg
+.weak b___fnavgvmre_pbi_8ovg_pbhagref_vavg
 .type b___fnavgvmre_pbi_8ovg_pbhagref_vavg,%function
 b___fnavgvmre_pbi_8ovg_pbhagref_vavg:
 nop
@@ -998,7 +998,7 @@
 b___fnavgvmre_frg_ercbeg_cngu:
 nop
 .text
-.globl b___fnavgvmre_pbi_genpr_fjvgpu
+.weak b___fnavgvmre_pbi_genpr_fjvgpu
 .type b___fnavgvmre_pbi_genpr_fjvgpu,%function
 b___fnavgvmre_pbi_genpr_fjvgpu:
 nop
@@ -1048,7 +1048,7 @@
 b__MGFCo:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MqyCiEXFg9abguebj_g
+.weak b__MqyCiEXFg9abguebj_g
 .type b__MqyCiEXFg9abguebj_g,%function
 b__MqyCiEXFg9abguebj_g:
 nop
@@ -1073,12 +1073,12 @@
 b__MGFCq:
 .space __SIZEOF_POINTER__
 .text
-.globl b___fnapbi_qrsnhyg_bcgvbaf
+.weak b___fnapbi_qrsnhyg_bcgvbaf
 .type b___fnapbi_qrsnhyg_bcgvbaf,%function
 b___fnapbi_qrsnhyg_bcgvbaf:
 nop
 .text
-.globl b___fnavgvmre_pbi_genpr_cp_thneq
+.weak b___fnavgvmre_pbi_genpr_cp_thneq
 .type b___fnavgvmre_pbi_genpr_cp_thneq,%function
 b___fnavgvmre_pbi_genpr_cp_thneq:
 nop
@@ -1193,7 +1193,7 @@
 b__MGFCu:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MqnCiz
+.weak b__MqnCiz
 .type b__MqnCiz,%function
 b__MqnCiz:
 nop
@@ -1288,7 +1288,7 @@
 b__MGFCy:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MajzEXFg9abguebj_g
+.weak b__MajzEXFg9abguebj_g
 .type b__MajzEXFg9abguebj_g,%function
 b__MajzEXFg9abguebj_g:
 nop
@@ -1313,7 +1313,7 @@
 b__MGFCz:
 .space __SIZEOF_POINTER__
 .text
-.globl b__ManzFg11nyvta_iny_g
+.weak b__ManzFg11nyvta_iny_g
 .type b__ManzFg11nyvta_iny_g,%function
 b__ManzFg11nyvta_iny_g:
 nop
@@ -1428,12 +1428,12 @@
 b___qrertvfgre_senzr_vasb:
 nop
 .data
-.globl b___rzhgyf_i.__fnapbi_ybjrfg_fgnpx
+.weak b___rzhgyf_i.__fnapbi_ybjrfg_fgnpx
 .type b___rzhgyf_i.__fnapbi_ybjrfg_fgnpx,%object
 b___rzhgyf_i.__fnapbi_ybjrfg_fgnpx:
 .space __SIZEOF_POINTER__
 .text
-.globl b___fnavgvmre_pbi_genpr_qvi4
+.weak b___fnavgvmre_pbi_genpr_qvi4
 .type b___fnavgvmre_pbi_genpr_qvi4,%function
 b___fnavgvmre_pbi_genpr_qvi4:
 nop
@@ -1483,7 +1483,7 @@
 b__MGFn:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MqyCiFg11nyvta_iny_gEXFg9abguebj_g
+.weak b__MqyCiFg11nyvta_iny_gEXFg9abguebj_g
 .type b__MqyCiFg11nyvta_iny_gEXFg9abguebj_g,%function
 b__MqyCiFg11nyvta_iny_gEXFg9abguebj_g:
 nop
@@ -1518,7 +1518,7 @@
 b__MGFp:
 .space __SIZEOF_POINTER__
 .text
-.globl b___fnavgvmre_pbi_genpr_qvi8
+.weak b___fnavgvmre_pbi_genpr_qvi8
 .type b___fnavgvmre_pbi_genpr_qvi8,%function
 b___fnavgvmre_pbi_genpr_qvi8:
 nop
@@ -1568,7 +1568,7 @@
 b__MGFq:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MqyCizFg11nyvta_iny_g
+.weak b__MqyCizFg11nyvta_iny_g
 .type b__MqyCizFg11nyvta_iny_g,%function
 b__MqyCizFg11nyvta_iny_g:
 nop
@@ -1608,7 +1608,7 @@
 b__MGFs:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MqnCiFg11nyvta_iny_gEXFg9abguebj_g
+.weak b__MqnCiFg11nyvta_iny_gEXFg9abguebj_g
 .type b__MqnCiFg11nyvta_iny_gEXFg9abguebj_g,%function
 b__MqnCiFg11nyvta_iny_gEXFg9abguebj_g:
 nop
@@ -1638,7 +1638,7 @@
 b__MGFt:
 .space __SIZEOF_POINTER__
 .text
-.globl b_BaCevag
+.weak b_BaCevag
 .type b_BaCevag,%function
 b_BaCevag:
 nop
@@ -1708,12 +1708,12 @@
 b__MGFw:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MqyCiFg11nyvta_iny_g
+.weak b__MqyCiFg11nyvta_iny_g
 .type b__MqyCiFg11nyvta_iny_g,%function
 b__MqyCiFg11nyvta_iny_g:
 nop
 .text
-.globl b__Majz
+.weak b__Majz
 .type b__Majz,%function
 b__Majz:
 nop
@@ -1758,7 +1758,7 @@
 b__MGIA10__pkknovi129__cbvagre_gb_zrzore_glcr_vasbR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg9rkprcgvbaP2REXF_
+.weak b__MAFg9rkprcgvbaP2REXF_
 .type b__MAFg9rkprcgvbaP2REXF_,%function
 b__MAFg9rkprcgvbaP2REXF_:
 nop
@@ -1928,7 +1928,7 @@
 b__MGFA10__pkknovi121__izv_pynff_glcr_vasbR:
 .space __SIZEOF_POINTER__
 .text
-.globl b___hofna_ba_ercbeg
+.weak b___hofna_ba_ercbeg
 .type b___hofna_ba_ercbeg,%function
 b___hofna_ba_ercbeg:
 nop
@@ -1948,7 +1948,7 @@
 b__MGVCs:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MajzFg11nyvta_iny_g
+.weak b__MajzFg11nyvta_iny_g
 .type b__MajzFg11nyvta_iny_g,%function
 b__MajzFg11nyvta_iny_g:
 nop
@@ -1983,12 +1983,12 @@
 b__MGFf:
 .space __SIZEOF_POINTER__
 .text
-.globl b__Manz
+.weak b__Manz
 .type b__Manz,%function
 b__Manz:
 nop
 .text
-.globl b__MajzFg11nyvta_iny_gEXFg9abguebj_g
+.weak b__MajzFg11nyvta_iny_gEXFg9abguebj_g
 .type b__MajzFg11nyvta_iny_gEXFg9abguebj_g,%function
 b__MajzFg11nyvta_iny_gEXFg9abguebj_g:
 nop
@@ -1998,7 +1998,7 @@
 b___ertvfgre_senzr_vasb:
 nop
 .text
-.globl b___fnavgvmre_pbi_genpr_trc
+.weak b___fnavgvmre_pbi_genpr_trc
 .type b___fnavgvmre_pbi_genpr_trc,%function
 b___fnavgvmre_pbi_genpr_trc:
 nop
@@ -2058,7 +2058,7 @@
 b__MGFi:
 .space __SIZEOF_POINTER__
 .text
-.globl b___fnavgvmre_pbi_genpr_pzc
+.weak b___fnavgvmre_pbi_genpr_pzc
 .type b___fnavgvmre_pbi_genpr_pzc,%function
 b___fnavgvmre_pbi_genpr_pzc:
 nop
@@ -2073,7 +2073,7 @@
 b__MGFj:
 .space __SIZEOF_POINTER__
 .text
-.globl b___hofna_qrsnhyg_bcgvbaf
+.weak b___hofna_qrsnhyg_bcgvbaf
 .type b___hofna_qrsnhyg_bcgvbaf,%function
 b___hofna_qrsnhyg_bcgvbaf:
 nop
diff --git a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_114.S b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_114.S
index c30289c..16b16a8 100644
--- a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_114.S
+++ b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_114.S
@@ -3,7 +3,7 @@
 .data
 .p2align 4
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_:
 nop
@@ -33,7 +33,7 @@
 b__MA7naqebvq10senzrjbexf9ohssreuho4I1_016OcUjOhssrePyvragP2REXAF_2fcVAF_8uneqjner7VOvaqreRRR:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_:
 nop
@@ -73,7 +73,7 @@
 b__MA7naqebvq10senzrjbexf9ohssreuho4I1_014OfOhssrePyvragP2RAF_2fcVAF2_13VOhssrePyvragRRR:
 nop
 .data
-.globl b__MGIA7naqebvq10senzrjbexf9ohssreuho4I1_014OfOhssrePyvragR
+.weak b__MGIA7naqebvq10senzrjbexf9ohssreuho4I1_014OfOhssrePyvragR
 .type b__MGIA7naqebvq10senzrjbexf9ohssreuho4I1_014OfOhssrePyvragR,%object
 b__MGIA7naqebvq10senzrjbexf9ohssreuho4I1_014OfOhssrePyvragR:
 .space __SIZEOF_POINTER__
@@ -88,7 +88,7 @@
 b__MA7naqebvq10senzrjbexf9ohssreuho4I1_013VOhssrePyvrag11yvaxGbQrnguREXAF_2fcVAF_8uneqjner20uvqy_qrngu_erpvcvragRRRz:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRR:
 nop
@@ -113,7 +113,7 @@
 b__MA7naqebvq10senzrjbexf9ohssreuho4I1_013OcUjOhssreUhoP1REXAF_2fcVAF_8uneqjner7VOvaqreRRR:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner10sebzOvaqreVAF_10senzrjbexf9ohssreuho4I1_013VOhssrePyvragRAF4_16OcUjOhssrePyvragRAF4_16OaUjOhssrePyvragRRRAF_2fcVG_RREXAF8_VAF0_7VOvaqreRRR
+.weak b__MA7naqebvq8uneqjner10sebzOvaqreVAF_10senzrjbexf9ohssreuho4I1_013VOhssrePyvragRAF4_16OcUjOhssrePyvragRAF4_16OaUjOhssrePyvragRRRAF_2fcVG_RREXAF8_VAF0_7VOvaqreRRR
 .type b__MA7naqebvq8uneqjner10sebzOvaqreVAF_10senzrjbexf9ohssreuho4I1_013VOhssrePyvragRAF4_16OcUjOhssrePyvragRAF4_16OaUjOhssrePyvragRRRAF_2fcVG_RREXAF8_VAF0_7VOvaqreRRR,%function
 b__MA7naqebvq8uneqjner10sebzOvaqreVAF_10senzrjbexf9ohssreuho4I1_013VOhssrePyvragRAF4_16OcUjOhssrePyvragRAF4_16OaUjOhssrePyvragRRRAF_2fcVG_RREXAF8_VAF0_7VOvaqreRRR:
 nop
@@ -168,7 +168,7 @@
 b__MA7naqebvq10senzrjbexf9ohssreuho4I1_016OcUjOhssrePyvrag13hayvaxGbQrnguREXAF_2fcVAF_8uneqjner20uvqy_qrngu_erpvcvragRRR:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRP2REXFU_
+.weak b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRP2REXFU_
 .type b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRP2REXFU_,%function
 b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRP2REXFU_:
 nop
@@ -218,7 +218,7 @@
 b__MA7naqebvq10senzrjbexf9ohssreuho4I1_010VOhssreUho4cvatRi:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFT_RRECAF_15__gerr_raq_abqrVFG_RREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFT_RRECAF_15__gerr_raq_abqrVFG_RREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFT_RRECAF_15__gerr_raq_abqrVFG_RREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFT_RRECAF_15__gerr_raq_abqrVFG_RREXG_:
 nop
@@ -243,12 +243,12 @@
 b__MA7naqebvq10senzrjbexf9ohssreuho4I1_016OcUjOhssrePyvrag19vagresnprQrfpevcgbeRAFg3__18shapgvbaVSiEXAF_8uneqjner11uvqy_fgevatRRRR:
 nop
 .text
-.globl b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
+.weak b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
 .type b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_,%function
 b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRR:
 nop
@@ -278,7 +278,7 @@
 b__MA7naqebvq10senzrjbexf9ohssreuho4I1_016OcUjOhssrePyvrag11_uvqy_pybfrRCAF_8uneqjner10VVagresnprRCAF4_7qrgnvyf16UvqyVafgehzragbeR:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF_10senzrjbexf9ohssreuho4I1_016OcUjOhssrePyvragRAF5_13VOhssrePyvragRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFO_11pune_genvgfVpRRAFO_9nyybpngbeVpRRRRoo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF_10senzrjbexf9ohssreuho4I1_016OcUjOhssrePyvragRAF5_13VOhssrePyvragRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFO_11pune_genvgfVpRRAFO_9nyybpngbeVpRRRRoo
 .type b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF_10senzrjbexf9ohssreuho4I1_016OcUjOhssrePyvragRAF5_13VOhssrePyvragRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFO_11pune_genvgfVpRRAFO_9nyybpngbeVpRRRRoo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF_10senzrjbexf9ohssreuho4I1_016OcUjOhssrePyvragRAF5_13VOhssrePyvragRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFO_11pune_genvgfVpRRAFO_9nyybpngbeVpRRRRoo:
 nop
@@ -328,7 +328,7 @@
 b__MA7naqebvq10senzrjbexf9ohssreuho4I1_013OaUjOhssreUhoP2REXAF_2fcVAF2_10VOhssreUhoRRR:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF_10senzrjbexf9ohssreuho4I1_013OcUjOhssreUhoRAF5_10VOhssreUhoRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFO_11pune_genvgfVpRRAFO_9nyybpngbeVpRRRRoo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF_10senzrjbexf9ohssreuho4I1_013OcUjOhssreUhoRAF5_10VOhssreUhoRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFO_11pune_genvgfVpRRAFO_9nyybpngbeVpRRRRoo
 .type b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF_10senzrjbexf9ohssreuho4I1_013OcUjOhssreUhoRAF5_10VOhssreUhoRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFO_11pune_genvgfVpRRAFO_9nyybpngbeVpRRRRoo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF_10senzrjbexf9ohssreuho4I1_013OcUjOhssreUhoRAF5_10VOhssreUhoRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFO_11pune_genvgfVpRRAFO_9nyybpngbeVpRRRRoo:
 nop
@@ -368,7 +368,7 @@
 b__MGPA7naqebvq10senzrjbexf9ohssreuho4I1_016OaUjOhssrePyvragR0_AF_4uvqy4onfr4I1_08OaUjOnfrR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIA7naqebvq10senzrjbexf9ohssreuho4I1_011OfOhssreUhoR
+.weak b__MGIA7naqebvq10senzrjbexf9ohssreuho4I1_011OfOhssreUhoR
 .type b__MGIA7naqebvq10senzrjbexf9ohssreuho4I1_011OfOhssreUhoR,%object
 b__MGIA7naqebvq10senzrjbexf9ohssreuho4I1_011OfOhssreUhoR:
 .space __SIZEOF_POINTER__
@@ -428,7 +428,7 @@
 b__MA7naqebvq10senzrjbexf9ohssreuho4I1_016OcUjOhssrePyvrag9qhcyvpngrRAFg3__18shapgvbaVSiEXAF_8uneqjner11uvqy_unaqyrRAF2_15OhssreUhoFgnghfRRRR:
 nop
 .data
-.globl b__MGPA7naqebvq10senzrjbexf9ohssreuho4I1_014OfOhssrePyvragR0_AF2_13VOhssrePyvragR
+.weak b__MGPA7naqebvq10senzrjbexf9ohssreuho4I1_014OfOhssrePyvragR0_AF2_13VOhssrePyvragR
 .type b__MGPA7naqebvq10senzrjbexf9ohssreuho4I1_014OfOhssrePyvragR0_AF2_13VOhssrePyvragR,%object
 b__MGPA7naqebvq10senzrjbexf9ohssreuho4I1_014OfOhssrePyvragR0_AF2_13VOhssrePyvragR:
 .space __SIZEOF_POINTER__
@@ -443,12 +443,12 @@
 b__MA7naqebvq10senzrjbexf9ohssreuho4I1_016OcUjOhssrePyvrag5qrohtREXAF_8uneqjner11uvqy_unaqyrREXAF4_8uvqy_irpVAF4_11uvqy_fgevatRRR:
 nop
 .text
-.globl b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
+.weak b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
 .type b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_,%function
 b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFR_RRECAF_15__gerr_raq_abqrVFE_RREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFR_RRECAF_15__gerr_raq_abqrVFE_RREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFR_RRECAF_15__gerr_raq_abqrVFE_RREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFR_RRECAF_15__gerr_raq_abqrVFE_RREXG_:
 nop
@@ -478,12 +478,12 @@
 b__MA7naqebvq10senzrjbexf9ohssreuho4I1_013OaUjOhssreUhoQ2Ri:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF_10senzrjbexf9ohssreuho4I1_013VOhssrePyvragRiRRAF_2fcVG_RRF9_
+.weak b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF_10senzrjbexf9ohssreuho4I1_013VOhssrePyvragRiRRAF_2fcVG_RRF9_
 .type b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF_10senzrjbexf9ohssreuho4I1_013VOhssrePyvragRiRRAF_2fcVG_RRF9_,%function
 b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF_10senzrjbexf9ohssreuho4I1_013VOhssrePyvragRiRRAF_2fcVG_RRF9_:
 nop
 .data
-.globl b__MGPA7naqebvq10senzrjbexf9ohssreuho4I1_011OfOhssreUhoR0_AF2_10VOhssreUhoR
+.weak b__MGPA7naqebvq10senzrjbexf9ohssreuho4I1_011OfOhssreUhoR0_AF2_10VOhssreUhoR
 .type b__MGPA7naqebvq10senzrjbexf9ohssreuho4I1_011OfOhssreUhoR0_AF2_10VOhssreUhoR,%object
 b__MGPA7naqebvq10senzrjbexf9ohssreuho4I1_011OfOhssreUhoR0_AF2_10VOhssreUhoR:
 .space __SIZEOF_POINTER__
@@ -518,7 +518,7 @@
 b__MA7naqebvq10senzrjbexf9ohssreuho4I1_016OcUjOhssrePyvrag5pybfrRi:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_8uneqjner27uvqy_ovaqre_qrngu_erpvcvragRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_
+.weak b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_8uneqjner27uvqy_ovaqre_qrngu_erpvcvragRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_
 .type b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_8uneqjner27uvqy_ovaqre_qrngu_erpvcvragRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_,%function
 b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_8uneqjner27uvqy_ovaqre_qrngu_erpvcvragRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_:
 nop
@@ -593,7 +593,7 @@
 b__MA7naqebvq10senzrjbexf9ohssreuho4I1_016OcUjOhssrePyvrag15_uvqy_qhcyvpngrRCAF_8uneqjner10VVagresnprRCAF4_7qrgnvyf16UvqyVafgehzragbeRAFg3__18shapgvbaVSiEXAF4_11uvqy_unaqyrRAF2_15OhssreUhoFgnghfRRRR:
 nop
 .text
-.globl b__MAXFg3__18shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF7_F7_F7_CAF_6irpgbeVCiAF_9nyybpngbeVF9_RRRRRRpyRF5_F7_F7_F7_F7_FQ_
+.weak b__MAXFg3__18shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF7_F7_F7_CAF_6irpgbeVCiAF_9nyybpngbeVF9_RRRRRRpyRF5_F7_F7_F7_F7_FQ_
 .type b__MAXFg3__18shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF7_F7_F7_CAF_6irpgbeVCiAF_9nyybpngbeVF9_RRRRRRpyRF5_F7_F7_F7_F7_FQ_,%function
 b__MAXFg3__18shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF7_F7_F7_CAF_6irpgbeVCiAF_9nyybpngbeVF9_RRRRRRpyRF5_F7_F7_F7_F7_FQ_:
 nop
@@ -668,7 +668,7 @@
 b__MA7naqebvq10senzrjbexf9ohssreuho4I1_016OcUjOhssrePyvrag11yvaxGbQrnguREXAF_2fcVAF_8uneqjner20uvqy_qrngu_erpvcvragRRRz:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF_10senzrjbexf9ohssreuho4I1_013VOhssrePyvragRAF_4uvqy4onfr4I1_05VOnfrRAF5_16OcUjOhssrePyvragRRRAF0_6ErgheaVAF_2fcVG_RRRRAFQ_VG0_RRCXpo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF_10senzrjbexf9ohssreuho4I1_013VOhssrePyvragRAF_4uvqy4onfr4I1_05VOnfrRAF5_16OcUjOhssrePyvragRRRAF0_6ErgheaVAF_2fcVG_RRRRAFQ_VG0_RRCXpo
 .type b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF_10senzrjbexf9ohssreuho4I1_013VOhssrePyvragRAF_4uvqy4onfr4I1_05VOnfrRAF5_16OcUjOhssrePyvragRRRAF0_6ErgheaVAF_2fcVG_RRRRAFQ_VG0_RRCXpo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF_10senzrjbexf9ohssreuho4I1_013VOhssrePyvragRAF_4uvqy4onfr4I1_05VOnfrRAF5_16OcUjOhssrePyvragRRRAF0_6ErgheaVAF_2fcVG_RRRRAFQ_VG0_RRCXpo:
 nop
@@ -678,7 +678,7 @@
 b__MA7naqebvq10senzrjbexf9ohssreuho4I1_013VOhssrePyvrag19vagresnprQrfpevcgbeRAFg3__18shapgvbaVSiEXAF_8uneqjner11uvqy_fgevatRRRR:
 nop
 .text
-.globl b__MAFg3__16irpgbeVCiAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_
+.weak b__MAFg3__16irpgbeVCiAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_
 .type b__MAFg3__16irpgbeVCiAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_,%function
 b__MAFg3__16irpgbeVCiAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_:
 nop
@@ -693,7 +693,7 @@
 b__MGua16_A7naqebvq10senzrjbexf9ohssreuho4I1_016OcUjOhssrePyvrag15baYnfgFgebatErsRCXi:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF_10senzrjbexf9ohssreuho4I1_010VOhssreUhoRAF_4uvqy4onfr4I1_05VOnfrRAF5_13OcUjOhssreUhoRRRAF0_6ErgheaVAF_2fcVG_RRRRAFQ_VG0_RRCXpo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF_10senzrjbexf9ohssreuho4I1_010VOhssreUhoRAF_4uvqy4onfr4I1_05VOnfrRAF5_13OcUjOhssreUhoRRRAF0_6ErgheaVAF_2fcVG_RRRRAFQ_VG0_RRCXpo
 .type b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF_10senzrjbexf9ohssreuho4I1_010VOhssreUhoRAF_4uvqy4onfr4I1_05VOnfrRAF5_13OcUjOhssreUhoRRRAF0_6ErgheaVAF_2fcVG_RRRRAFQ_VG0_RRCXpo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF_10senzrjbexf9ohssreuho4I1_010VOhssreUhoRAF_4uvqy4onfr4I1_05VOnfrRAF5_13OcUjOhssreUhoRRRAF0_6ErgheaVAF_2fcVG_RRRRAFQ_VG0_RRCXpo:
 nop
diff --git a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_115.S b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_115.S
index 2159432..6af1277 100644
--- a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_115.S
+++ b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_115.S
@@ -13,7 +13,7 @@
 b__MA7naqebvq8uneqjner8tencuvpf9nyybpngbe4I2_013OcUjNyybpngbe5qrohtREXAF0_11uvqy_unaqyrREXAF0_8uvqy_irpVAF0_11uvqy_fgevatRRR:
 nop
 .text
-.globl b__MAFg3__16irpgbeVCiAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_
+.weak b__MAFg3__16irpgbeVCiAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_
 .type b__MAFg3__16irpgbeVCiAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_,%function
 b__MAFg3__16irpgbeVCiAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_:
 nop
@@ -58,7 +58,7 @@
 b__MGPA7naqebvq8uneqjner8tencuvpf9nyybpngbe4I2_010VNyybpngbeR0_AF_4uvqy4onfr4I1_05VOnfrR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFR_RRECAF_15__gerr_raq_abqrVFE_RREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFR_RRECAF_15__gerr_raq_abqrVFE_RREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFR_RRECAF_15__gerr_raq_abqrVFE_RREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFR_RRECAF_15__gerr_raq_abqrVFE_RREXG_:
 nop
@@ -68,12 +68,12 @@
 b__MA7naqebvq8uneqjner8tencuvpf9nyybpngbe4I2_011OfNyybpngbe13nqqBarjnlGnfxRAFg3__18shapgvbaVSiiRRR:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_8uneqjner27uvqy_ovaqre_qrngu_erpvcvragRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_
+.weak b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_8uneqjner27uvqy_ovaqre_qrngu_erpvcvragRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_
 .type b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_8uneqjner27uvqy_ovaqre_qrngu_erpvcvragRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_,%function
 b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_8uneqjner27uvqy_ovaqre_qrngu_erpvcvragRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_8tencuvpf9nyybpngbe4I2_010VNyybpngbeRAF_4uvqy4onfr4I1_05VOnfrRAF5_13OcUjNyybpngbeRRRAF0_6ErgheaVAF_2fcVG_RRRRAFQ_VG0_RRCXpo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_8tencuvpf9nyybpngbe4I2_010VNyybpngbeRAF_4uvqy4onfr4I1_05VOnfrRAF5_13OcUjNyybpngbeRRRAF0_6ErgheaVAF_2fcVG_RRRRAFQ_VG0_RRCXpo
 .type b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_8tencuvpf9nyybpngbe4I2_010VNyybpngbeRAF_4uvqy4onfr4I1_05VOnfrRAF5_13OcUjNyybpngbeRRRAF0_6ErgheaVAF_2fcVG_RRRRAFQ_VG0_RRCXpo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_8tencuvpf9nyybpngbe4I2_010VNyybpngbeRAF_4uvqy4onfr4I1_05VOnfrRAF5_13OcUjNyybpngbeRRRAF0_6ErgheaVAF_2fcVG_RRRRAFQ_VG0_RRCXpo:
 nop
@@ -108,7 +108,7 @@
 b__MA7naqebvq8uneqjner8tencuvpf9nyybpngbe4I2_013OcUjNyybpngbeP1REXAF_2fcVAF0_7VOvaqreRRR:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFT_RRECAF_15__gerr_raq_abqrVFG_RREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFT_RRECAF_15__gerr_raq_abqrVFG_RREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFT_RRECAF_15__gerr_raq_abqrVFG_RREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFT_RRECAF_15__gerr_raq_abqrVFG_RREXG_:
 nop
@@ -133,7 +133,7 @@
 b__MA7naqebvq8uneqjner8tencuvpf9nyybpngbe4I2_013OcUjNyybpngbe15baYnfgFgebatErsRCXi:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_:
 nop
@@ -153,7 +153,7 @@
 b__MA7naqebvq8uneqjner8tencuvpf9nyybpngbe4I2_013OcUjNyybpngbe13qhzcQrohtVasbRAFg3__18shapgvbaVSiEXAF0_11uvqy_fgevatRRRR:
 nop
 .text
-.globl b__MAXFg3__18shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF7_F7_F7_CAF_6irpgbeVCiAF_9nyybpngbeVF9_RRRRRRpyRF5_F7_F7_F7_F7_FQ_
+.weak b__MAXFg3__18shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF7_F7_F7_CAF_6irpgbeVCiAF_9nyybpngbeVF9_RRRRRRpyRF5_F7_F7_F7_F7_FQ_
 .type b__MAXFg3__18shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF7_F7_F7_CAF_6irpgbeVCiAF_9nyybpngbeVF9_RRRRRRpyRF5_F7_F7_F7_F7_FQ_,%function
 b__MAXFg3__18shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF7_F7_F7_CAF_6irpgbeVCiAF_9nyybpngbeVF9_RRRRRRpyRF5_F7_F7_F7_F7_FQ_:
 nop
@@ -168,7 +168,7 @@
 b__MA7naqebvq8uneqjner8tencuvpf9nyybpngbe4I2_010VNyybpngbe12trgQrohtVasbRAFg3__18shapgvbaVSiEXAF_4uvqy4onfr4I1_09QrohtVasbRRRR:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_:
 nop
@@ -213,12 +213,12 @@
 b__MA7naqebvq8uneqjner8tencuvpf9nyybpngbe4I2_011OfNyybpngbeP1RAF_2fcVAF3_10VNyybpngbeRRR:
 nop
 .text
-.globl b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
+.weak b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
 .type b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_,%function
 b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_:
 nop
 .data
-.globl b__MGPA7naqebvq8uneqjner8tencuvpf9nyybpngbe4I2_011OfNyybpngbeR0_AF3_10VNyybpngbeR
+.weak b__MGPA7naqebvq8uneqjner8tencuvpf9nyybpngbe4I2_011OfNyybpngbeR0_AF3_10VNyybpngbeR
 .type b__MGPA7naqebvq8uneqjner8tencuvpf9nyybpngbe4I2_011OfNyybpngbeR0_AF3_10VNyybpngbeR,%object
 b__MGPA7naqebvq8uneqjner8tencuvpf9nyybpngbe4I2_011OfNyybpngbeR0_AF3_10VNyybpngbeR:
 .space __SIZEOF_POINTER__
@@ -298,7 +298,7 @@
 b__MGPA7naqebvq8uneqjner8tencuvpf9nyybpngbe4I2_013OcUjNyybpngbeR0_AF0_11OcVagresnprVAF3_10VNyybpngbeRRR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIA7naqebvq8uneqjner8tencuvpf9nyybpngbe4I2_011OfNyybpngbeR
+.weak b__MGIA7naqebvq8uneqjner8tencuvpf9nyybpngbe4I2_011OfNyybpngbeR
 .type b__MGIA7naqebvq8uneqjner8tencuvpf9nyybpngbe4I2_011OfNyybpngbeR,%object
 b__MGIA7naqebvq8uneqjner8tencuvpf9nyybpngbe4I2_011OfNyybpngbeR:
 .space __SIZEOF_POINTER__
@@ -338,7 +338,7 @@
 b__MA7naqebvq8uneqjner8tencuvpf9nyybpngbe4I2_013OaUjNyybpngbeQ0Ri:
 nop
 .text
-.globl b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
+.weak b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
 .type b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_,%function
 b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_:
 nop
@@ -388,12 +388,12 @@
 b__MGIA7naqebvq8uneqjner8tencuvpf9nyybpngbe4I2_010VNyybpngbeR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_8tencuvpf9nyybpngbe4I2_013OcUjNyybpngbeRAF5_10VNyybpngbeRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFO_11pune_genvgfVpRRAFO_9nyybpngbeVpRRRRoo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_8tencuvpf9nyybpngbe4I2_013OcUjNyybpngbeRAF5_10VNyybpngbeRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFO_11pune_genvgfVpRRAFO_9nyybpngbeVpRRRRoo
 .type b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_8tencuvpf9nyybpngbe4I2_013OcUjNyybpngbeRAF5_10VNyybpngbeRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFO_11pune_genvgfVpRRAFO_9nyybpngbeVpRRRRoo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_8tencuvpf9nyybpngbe4I2_013OcUjNyybpngbeRAF5_10VNyybpngbeRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFO_11pune_genvgfVpRRAFO_9nyybpngbeVpRRRRoo:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRP2REXFU_
+.weak b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRP2REXFU_
 .type b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRP2REXFU_,%function
 b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRP2REXFU_:
 nop
@@ -413,12 +413,12 @@
 b__MA7naqebvq8uneqjner8tencuvpf9nyybpngbe4I2_013OcUjNyybpngbe12trgQrohtVasbRAFg3__18shapgvbaVSiEXAF_4uvqy4onfr4I1_09QrohtVasbRRRR:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRR:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRR:
 nop
diff --git a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_116.S b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_116.S
index 3d98b83..67e6223 100644
--- a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_116.S
+++ b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_116.S
@@ -33,7 +33,7 @@
 b__MA7naqebvq8uneqjner8tencuvpf9nyybpngbe4I3_013OaUjNyybpngbe4cvatRi:
 nop
 .text
-.globl b__MAFg3__16irpgbeVCiAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_
+.weak b__MAFg3__16irpgbeVCiAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_
 .type b__MAFg3__16irpgbeVCiAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_,%function
 b__MAFg3__16irpgbeVCiAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_:
 nop
@@ -43,7 +43,7 @@
 b__MGPA7naqebvq8uneqjner8tencuvpf9nyybpngbe4I3_013OcUjNyybpngbeR0_AF_4uvqy4onfr4I1_05VOnfrR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIA7naqebvq8uneqjner8tencuvpf9nyybpngbe4I3_011OfNyybpngbeR
+.weak b__MGIA7naqebvq8uneqjner8tencuvpf9nyybpngbe4I3_011OfNyybpngbeR
 .type b__MGIA7naqebvq8uneqjner8tencuvpf9nyybpngbe4I3_011OfNyybpngbeR,%object
 b__MGIA7naqebvq8uneqjner8tencuvpf9nyybpngbe4I3_011OfNyybpngbeR:
 .space __SIZEOF_POINTER__
@@ -58,7 +58,7 @@
 b__MGua16_A7naqebvq8uneqjner8tencuvpf9nyybpngbe4I3_013OcUjNyybpngbe15baYnfgFgebatErsRCXi:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_8tencuvpf9nyybpngbe4I3_010VNyybpngbeRAF_4uvqy4onfr4I1_05VOnfrRAF5_13OcUjNyybpngbeRRRAF0_6ErgheaVAF_2fcVG_RRRRAFQ_VG0_RRCXpo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_8tencuvpf9nyybpngbe4I3_010VNyybpngbeRAF_4uvqy4onfr4I1_05VOnfrRAF5_13OcUjNyybpngbeRRRAF0_6ErgheaVAF_2fcVG_RRRRAFQ_VG0_RRCXpo
 .type b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_8tencuvpf9nyybpngbe4I3_010VNyybpngbeRAF_4uvqy4onfr4I1_05VOnfrRAF5_13OcUjNyybpngbeRRRAF0_6ErgheaVAF_2fcVG_RRRRAFQ_VG0_RRCXpo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_8tencuvpf9nyybpngbe4I3_010VNyybpngbeRAF_4uvqy4onfr4I1_05VOnfrRAF5_13OcUjNyybpngbeRRRAF0_6ErgheaVAF_2fcVG_RRRRAFQ_VG0_RRCXpo:
 nop
@@ -73,17 +73,17 @@
 b__MA7naqebvq8uneqjner8tencuvpf9nyybpngbe4I3_013OcUjNyybpngbe15baYnfgFgebatErsRCXi:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFR_RRECAF_15__gerr_raq_abqrVFE_RREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFR_RRECAF_15__gerr_raq_abqrVFE_RREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFR_RRECAF_15__gerr_raq_abqrVFE_RREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFR_RRECAF_15__gerr_raq_abqrVFE_RREXG_:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_8uneqjner27uvqy_ovaqre_qrngu_erpvcvragRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_
+.weak b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_8uneqjner27uvqy_ovaqre_qrngu_erpvcvragRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_
 .type b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_8uneqjner27uvqy_ovaqre_qrngu_erpvcvragRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_,%function
 b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_8uneqjner27uvqy_ovaqre_qrngu_erpvcvragRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_8tencuvpf9nyybpngbe4I3_013OcUjNyybpngbeRAF5_10VNyybpngbeRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFO_11pune_genvgfVpRRAFO_9nyybpngbeVpRRRRoo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_8tencuvpf9nyybpngbe4I3_013OcUjNyybpngbeRAF5_10VNyybpngbeRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFO_11pune_genvgfVpRRAFO_9nyybpngbeVpRRRRoo
 .type b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_8tencuvpf9nyybpngbe4I3_013OcUjNyybpngbeRAF5_10VNyybpngbeRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFO_11pune_genvgfVpRRAFO_9nyybpngbeVpRRRRoo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_8tencuvpf9nyybpngbe4I3_013OcUjNyybpngbeRAF5_10VNyybpngbeRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFO_11pune_genvgfVpRRAFO_9nyybpngbeVpRRRRoo:
 nop
@@ -103,7 +103,7 @@
 b__MA7naqebvq8uneqjner8tencuvpf9nyybpngbe4I3_010VNyybpngbe5qrohtREXAF0_11uvqy_unaqyrREXAF0_8uvqy_irpVAF0_11uvqy_fgevatRRR:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFT_RRECAF_15__gerr_raq_abqrVFG_RREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFT_RRECAF_15__gerr_raq_abqrVFG_RREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFT_RRECAF_15__gerr_raq_abqrVFG_RREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFT_RRECAF_15__gerr_raq_abqrVFG_RREXG_:
 nop
@@ -113,7 +113,7 @@
 b__MA7naqebvq8uneqjner8tencuvpf9nyybpngbe4I3_013OaUjNyybpngbeP1REXAF_2fcVAF3_10VNyybpngbeRRR:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_:
 nop
@@ -138,7 +138,7 @@
 b__MA7naqebvq8uneqjner8tencuvpf9nyybpngbe4I3_011OfNyybpngbeP2RAF_2fcVAF3_10VNyybpngbeRRR:
 nop
 .text
-.globl b__MAXFg3__18shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF7_F7_F7_CAF_6irpgbeVCiAF_9nyybpngbeVF9_RRRRRRpyRF5_F7_F7_F7_F7_FQ_
+.weak b__MAXFg3__18shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF7_F7_F7_CAF_6irpgbeVCiAF_9nyybpngbeVF9_RRRRRRpyRF5_F7_F7_F7_F7_FQ_
 .type b__MAXFg3__18shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF7_F7_F7_CAF_6irpgbeVCiAF_9nyybpngbeVF9_RRRRRRpyRF5_F7_F7_F7_F7_FQ_,%function
 b__MAXFg3__18shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF7_F7_F7_CAF_6irpgbeVCiAF_9nyybpngbeVF9_RRRRRRpyRF5_F7_F7_F7_F7_FQ_:
 nop
@@ -173,7 +173,7 @@
 b__MA7naqebvq8uneqjner8tencuvpf9nyybpngbe4I3_013OcUjNyybpngbe13qhzcQrohtVasbRAFg3__18shapgvbaVSiEXAF0_11uvqy_fgevatRRRR:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_:
 nop
@@ -198,7 +198,7 @@
 b__MA7naqebvq8uneqjner8tencuvpf9nyybpngbe4I3_013OaUjNyybpngbeQ2Ri:
 nop
 .text
-.globl b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
+.weak b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
 .type b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_,%function
 b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_:
 nop
@@ -293,7 +293,7 @@
 b__MA7naqebvq8uneqjner8tencuvpf9nyybpngbe4I3_010VNyybpngbe13hayvaxGbQrnguREXAF_2fcVAF0_20uvqy_qrngu_erpvcvragRRR:
 nop
 .data
-.globl b__MGPA7naqebvq8uneqjner8tencuvpf9nyybpngbe4I3_011OfNyybpngbeR0_AF3_10VNyybpngbeR
+.weak b__MGPA7naqebvq8uneqjner8tencuvpf9nyybpngbe4I3_011OfNyybpngbeR0_AF3_10VNyybpngbeR
 .type b__MGPA7naqebvq8uneqjner8tencuvpf9nyybpngbe4I3_011OfNyybpngbeR0_AF3_10VNyybpngbeR,%object
 b__MGPA7naqebvq8uneqjner8tencuvpf9nyybpngbe4I3_011OfNyybpngbeR0_AF3_10VNyybpngbeR:
 .space __SIZEOF_POINTER__
@@ -318,7 +318,7 @@
 b__MA7naqebvq8uneqjner8tencuvpf9nyybpngbe4I3_013OaUjNyybpngbe19_uvqy_qhzcQrohtVasbRCAF_4uvqy4onfr4I1_08OaUjOnfrREXAF0_6CnepryRCFN_AFg3__18shapgvbaVSiEFN_RRR:
 nop
 .text
-.globl b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
+.weak b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
 .type b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_,%function
 b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_:
 nop
@@ -368,7 +368,7 @@
 b__MA7naqebvq8uneqjner8tencuvpf9nyybpngbe4I3_013OcUjNyybpngbe5qrohtREXAF0_11uvqy_unaqyrREXAF0_8uvqy_irpVAF0_11uvqy_fgevatRRR:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRP2REXFU_
+.weak b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRP2REXFU_
 .type b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRP2REXFU_,%function
 b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRP2REXFU_:
 nop
@@ -413,12 +413,12 @@
 b__MA7naqebvq8uneqjner8tencuvpf9nyybpngbe4I3_013OcUjNyybpngbe14vagresnprPunvaRAFg3__18shapgvbaVSiEXAF0_8uvqy_irpVAF0_11uvqy_fgevatRRRRRR:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRR:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRR:
 nop
diff --git a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_118.S b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_118.S
index 5e29de3..59d1470 100644
--- a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_118.S
+++ b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_118.S
@@ -13,12 +13,12 @@
 b__MA7naqebvq8uneqjner8tencuvpf6znccre4I2_010OcUjZnccre22_uvqy_perngrQrfpevcgbeRCAF0_10VVagresnprRCAF0_7qrgnvyf16UvqyVafgehzragbeREXAF3_7VZnccre20OhssreQrfpevcgbeVasbRAFg3__18shapgvbaVSiAF3_5ReebeREXAF0_8uvqy_irpVwRRRRR:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRP2REXFU_
+.weak b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRP2REXFU_
 .type b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRP2REXFU_,%function
 b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRP2REXFU_:
 nop
@@ -48,12 +48,12 @@
 b__MA7naqebvq8uneqjner8tencuvpf6znccre4I2_08OfZnccreP1RAF_2fcVAF3_7VZnccreRRR:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_:
 nop
 .text
-.globl b__MAFg3__16irpgbeVCiAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_
+.weak b__MAFg3__16irpgbeVCiAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_
 .type b__MAFg3__16irpgbeVCiAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_,%function
 b__MAFg3__16irpgbeVCiAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_:
 nop
@@ -78,7 +78,7 @@
 b__MGPA7naqebvq8uneqjner8tencuvpf6znccre4I2_010OcUjZnccreR16_AF0_11OcUjErsOnfrR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIA7naqebvq8uneqjner8tencuvpf6znccre4I2_08OfZnccreR
+.weak b__MGIA7naqebvq8uneqjner8tencuvpf6znccre4I2_08OfZnccreR
 .type b__MGIA7naqebvq8uneqjner8tencuvpf6znccre4I2_08OfZnccreR,%object
 b__MGIA7naqebvq8uneqjner8tencuvpf6znccre4I2_08OfZnccreR:
 .space __SIZEOF_POINTER__
@@ -108,7 +108,7 @@
 b__MA7naqebvq8uneqjner8tencuvpf6znccre4I2_07VZnccre10qrfpevcgbeR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFT_RRECAF_15__gerr_raq_abqrVFG_RREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFT_RRECAF_15__gerr_raq_abqrVFG_RREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFT_RRECAF_15__gerr_raq_abqrVFG_RREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFT_RRECAF_15__gerr_raq_abqrVFG_RREXG_:
 nop
@@ -168,12 +168,12 @@
 b__MA7naqebvq8uneqjner8tencuvpf6znccre4I2_07VZnccre13hayvaxGbQrnguREXAF_2fcVAF0_20uvqy_qrngu_erpvcvragRRR:
 nop
 .text
-.globl b__MAXFg3__18shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF7_F7_F7_CAF_6irpgbeVCiAF_9nyybpngbeVF9_RRRRRRpyRF5_F7_F7_F7_F7_FQ_
+.weak b__MAXFg3__18shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF7_F7_F7_CAF_6irpgbeVCiAF_9nyybpngbeVF9_RRRRRRpyRF5_F7_F7_F7_F7_FQ_
 .type b__MAXFg3__18shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF7_F7_F7_CAF_6irpgbeVCiAF_9nyybpngbeVF9_RRRRRRpyRF5_F7_F7_F7_F7_FQ_,%function
 b__MAXFg3__18shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF7_F7_F7_CAF_6irpgbeVCiAF_9nyybpngbeVF9_RRRRRRpyRF5_F7_F7_F7_F7_FQ_:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRR:
 nop
@@ -188,7 +188,7 @@
 b__MGIA7naqebvq8uneqjner8tencuvpf6znccre4I2_07VZnccreR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_8tencuvpf6znccre4I2_07VZnccreRAF_4uvqy4onfr4I1_05VOnfrRAF5_10OcUjZnccreRRRAF0_6ErgheaVAF_2fcVG_RRRRAFQ_VG0_RRCXpo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_8tencuvpf6znccre4I2_07VZnccreRAF_4uvqy4onfr4I1_05VOnfrRAF5_10OcUjZnccreRRRAF0_6ErgheaVAF_2fcVG_RRRRAFQ_VG0_RRCXpo
 .type b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_8tencuvpf6znccre4I2_07VZnccreRAF_4uvqy4onfr4I1_05VOnfrRAF5_10OcUjZnccreRRRAF0_6ErgheaVAF_2fcVG_RRRRAFQ_VG0_RRCXpo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_8tencuvpf6znccre4I2_07VZnccreRAF_4uvqy4onfr4I1_05VOnfrRAF5_10OcUjZnccreRRRAF0_6ErgheaVAF_2fcVG_RRRRAFQ_VG0_RRCXpo:
 nop
@@ -288,7 +288,7 @@
 b__MGi0_a24_A7naqebvq8uneqjner8tencuvpf6znccre4I2_010OaUjZnccreQ1Ri:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_8tencuvpf6znccre4I2_010OcUjZnccreRAF5_7VZnccreRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFO_11pune_genvgfVpRRAFO_9nyybpngbeVpRRRRoo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_8tencuvpf6znccre4I2_010OcUjZnccreRAF5_7VZnccreRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFO_11pune_genvgfVpRRAFO_9nyybpngbeVpRRRRoo
 .type b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_8tencuvpf6znccre4I2_010OcUjZnccreRAF5_7VZnccreRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFO_11pune_genvgfVpRRAFO_9nyybpngbeVpRRRRoo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_8tencuvpf6znccre4I2_010OcUjZnccreRAF5_7VZnccreRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFO_11pune_genvgfVpRRAFO_9nyybpngbeVpRRRRoo:
 nop
@@ -393,7 +393,7 @@
 b__MA7naqebvq8uneqjner8tencuvpf6znccre4I2_07VZnccre19vagresnprQrfpevcgbeRAFg3__18shapgvbaVSiEXAF0_11uvqy_fgevatRRRR:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_8uneqjner27uvqy_ovaqre_qrngu_erpvcvragRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_
+.weak b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_8uneqjner27uvqy_ovaqre_qrngu_erpvcvragRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_
 .type b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_8uneqjner27uvqy_ovaqre_qrngu_erpvcvragRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_,%function
 b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_8uneqjner27uvqy_ovaqre_qrngu_erpvcvragRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_:
 nop
@@ -418,7 +418,7 @@
 b__MA7naqebvq8uneqjner8tencuvpf6znccre4I2_07VZnccre5qrohtREXAF0_11uvqy_unaqyrREXAF0_8uvqy_irpVAF0_11uvqy_fgevatRRR:
 nop
 .data
-.globl b__MGPA7naqebvq8uneqjner8tencuvpf6znccre4I2_08OfZnccreR0_AF3_7VZnccreR
+.weak b__MGPA7naqebvq8uneqjner8tencuvpf6znccre4I2_08OfZnccreR0_AF3_7VZnccreR
 .type b__MGPA7naqebvq8uneqjner8tencuvpf6znccre4I2_08OfZnccreR0_AF3_7VZnccreR,%object
 b__MGPA7naqebvq8uneqjner8tencuvpf6znccre4I2_08OfZnccreR0_AF3_7VZnccreR:
 .space __SIZEOF_POINTER__
@@ -438,12 +438,12 @@
 b__MA7naqebvq8uneqjner8tencuvpf6znccre4I2_010OcUjZnccre21abgvslFlfcebcfPunatrqRi:
 nop
 .text
-.globl b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
+.weak b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
 .type b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_,%function
 b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRR:
 nop
@@ -468,12 +468,12 @@
 b__MA7naqebvq8uneqjner8tencuvpf6znccre4I2_07VZnccre12trgQrohtVasbRAFg3__18shapgvbaVSiEXAF_4uvqy4onfr4I1_09QrohtVasbRRRR:
 nop
 .text
-.globl b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
+.weak b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
 .type b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_,%function
 b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFR_RRECAF_15__gerr_raq_abqrVFE_RREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFR_RRECAF_15__gerr_raq_abqrVFE_RREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFR_RRECAF_15__gerr_raq_abqrVFE_RREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFR_RRECAF_15__gerr_raq_abqrVFE_RREXG_:
 nop
diff --git a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_119.S b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_119.S
index b9d083e..cb1d6f7 100644
--- a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_119.S
+++ b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_119.S
@@ -18,12 +18,12 @@
 b__MA7naqebvq8uneqjner8tencuvpf6znccre4I2_110OcUjZnccre6haybpxRCiAFg3__18shapgvbaVSiAF2_4I2_05ReebeREXAF0_11uvqy_unaqyrRRRR:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRP2REXFU_
+.weak b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRP2REXFU_
 .type b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRP2REXFU_,%function
 b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRP2REXFU_:
 nop
@@ -58,12 +58,12 @@
 b__MA7naqebvq8uneqjner8tencuvpf6znccre4I2_17VZnccre24ertvfgreSbeAbgvsvpngvbafREXAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRREXAF_2fcVAF_4uvqy7znantre4I1_020VFreivprAbgvsvpngvbaRRR:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_:
 nop
 .text
-.globl b__MAFg3__16irpgbeVCiAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_
+.weak b__MAFg3__16irpgbeVCiAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_
 .type b__MAFg3__16irpgbeVCiAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_,%function
 b__MAFg3__16irpgbeVCiAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_:
 nop
@@ -103,7 +103,7 @@
 b__MA7naqebvq8uneqjner8tencuvpf6znccre4I2_17VZnccre10trgFreivprREXAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRRo:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFT_RRECAF_15__gerr_raq_abqrVFG_RREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFT_RRECAF_15__gerr_raq_abqrVFG_RREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFT_RRECAF_15__gerr_raq_abqrVFG_RREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFT_RRECAF_15__gerr_raq_abqrVFG_RREXG_:
 nop
@@ -113,7 +113,7 @@
 b__MGi0_a24_A7naqebvq8uneqjner8tencuvpf6znccre4I2_110OaUjZnccreQ1Ri:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_8tencuvpf6znccre4I2_110OcUjZnccreRAF5_7VZnccreRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFO_11pune_genvgfVpRRAFO_9nyybpngbeVpRRRRoo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_8tencuvpf6znccre4I2_110OcUjZnccreRAF5_7VZnccreRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFO_11pune_genvgfVpRRAFO_9nyybpngbeVpRRRRoo
 .type b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_8tencuvpf6znccre4I2_110OcUjZnccreRAF5_7VZnccreRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFO_11pune_genvgfVpRRAFO_9nyybpngbeVpRRRRoo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_8tencuvpf6znccre4I2_110OcUjZnccreRAF5_7VZnccreRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFO_11pune_genvgfVpRRAFO_9nyybpngbeVpRRRRoo:
 nop
@@ -143,12 +143,12 @@
 b__MA7naqebvq8uneqjner8tencuvpf6znccre4I2_17VZnccre13gelTrgFreivprREXAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRRo:
 nop
 .text
-.globl b__MAXFg3__18shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF7_F7_F7_CAF_6irpgbeVCiAF_9nyybpngbeVF9_RRRRRRpyRF5_F7_F7_F7_F7_FQ_
+.weak b__MAXFg3__18shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF7_F7_F7_CAF_6irpgbeVCiAF_9nyybpngbeVF9_RRRRRRpyRF5_F7_F7_F7_F7_FQ_
 .type b__MAXFg3__18shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF7_F7_F7_CAF_6irpgbeVCiAF_9nyybpngbeVF9_RRRRRRpyRF5_F7_F7_F7_F7_FQ_,%function
 b__MAXFg3__18shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF7_F7_F7_CAF_6irpgbeVCiAF_9nyybpngbeVF9_RRRRRRpyRF5_F7_F7_F7_F7_FQ_:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRR:
 nop
@@ -293,7 +293,7 @@
 b__MGIA7naqebvq8uneqjner8tencuvpf6znccre4I2_17VZnccreR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_8tencuvpf6znccre4I2_17VZnccreRAF_4uvqy4onfr4I1_05VOnfrRAF5_10OcUjZnccreRRRAF0_6ErgheaVAF_2fcVG_RRRRAFQ_VG0_RRCXpo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_8tencuvpf6znccre4I2_17VZnccreRAF_4uvqy4onfr4I1_05VOnfrRAF5_10OcUjZnccreRRRAF0_6ErgheaVAF_2fcVG_RRRRAFQ_VG0_RRCXpo
 .type b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_8tencuvpf6znccre4I2_17VZnccreRAF_4uvqy4onfr4I1_05VOnfrRAF5_10OcUjZnccreRRRAF0_6ErgheaVAF_2fcVG_RRRRAFQ_VG0_RRCXpo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_8tencuvpf6znccre4I2_17VZnccreRAF_4uvqy4onfr4I1_05VOnfrRAF5_10OcUjZnccreRRRAF0_6ErgheaVAF_2fcVG_RRRRAFQ_VG0_RRCXpo:
 nop
@@ -338,12 +338,12 @@
 b__MA7naqebvq8uneqjner8tencuvpf6znccre4I2_17VZnccre8pnfgSebzREXAF_2fcVAF2_4I2_07VZnccreRRRo:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_8uneqjner27uvqy_ovaqre_qrngu_erpvcvragRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_
+.weak b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_8uneqjner27uvqy_ovaqre_qrngu_erpvcvragRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_
 .type b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_8uneqjner27uvqy_ovaqre_qrngu_erpvcvragRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_,%function
 b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_8uneqjner27uvqy_ovaqre_qrngu_erpvcvragRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_8tencuvpf6znccre4I2_17VZnccreRAF4_4I2_07VZnccreRAF5_10OcUjZnccreRRRAF0_6ErgheaVAF_2fcVG_RRRRAFO_VG0_RRCXpo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_8tencuvpf6znccre4I2_17VZnccreRAF4_4I2_07VZnccreRAF5_10OcUjZnccreRRRAF0_6ErgheaVAF_2fcVG_RRRRAFO_VG0_RRCXpo
 .type b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_8tencuvpf6znccre4I2_17VZnccreRAF4_4I2_07VZnccreRAF5_10OcUjZnccreRRRAF0_6ErgheaVAF_2fcVG_RRRRAFO_VG0_RRCXpo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_8tencuvpf6znccre4I2_17VZnccreRAF4_4I2_07VZnccreRAF5_10OcUjZnccreRRRAF0_6ErgheaVAF_2fcVG_RRRRAFO_VG0_RRCXpo:
 nop
@@ -383,7 +383,7 @@
 b__MGPA7naqebvq8uneqjner8tencuvpf6znccre4I2_110OcUjZnccreR16_AF0_11OcUjErsOnfrR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIA7naqebvq8uneqjner8tencuvpf6znccre4I2_18OfZnccreR
+.weak b__MGIA7naqebvq8uneqjner8tencuvpf6znccre4I2_18OfZnccreR
 .type b__MGIA7naqebvq8uneqjner8tencuvpf6znccre4I2_18OfZnccreR,%object
 b__MGIA7naqebvq8uneqjner8tencuvpf6znccre4I2_18OfZnccreR:
 .space __SIZEOF_POINTER__
@@ -413,12 +413,12 @@
 b__MA7naqebvq8uneqjner8tencuvpf6znccre4I2_17VZnccre5qrohtREXAF0_11uvqy_unaqyrREXAF0_8uvqy_irpVAF0_11uvqy_fgevatRRR:
 nop
 .text
-.globl b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
+.weak b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
 .type b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_,%function
 b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRR:
 nop
@@ -428,7 +428,7 @@
 b__MGPA7naqebvq8uneqjner8tencuvpf6znccre4I2_110OcUjZnccreR8_AF0_10VVagresnprR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGPA7naqebvq8uneqjner8tencuvpf6znccre4I2_18OfZnccreR0_AF3_7VZnccreR
+.weak b__MGPA7naqebvq8uneqjner8tencuvpf6znccre4I2_18OfZnccreR0_AF3_7VZnccreR
 .type b__MGPA7naqebvq8uneqjner8tencuvpf6znccre4I2_18OfZnccreR0_AF3_7VZnccreR,%object
 b__MGPA7naqebvq8uneqjner8tencuvpf6znccre4I2_18OfZnccreR0_AF3_7VZnccreR:
 .space __SIZEOF_POINTER__
@@ -458,12 +458,12 @@
 b__MA7naqebvq8uneqjner8tencuvpf6znccre4I2_17VZnccre13hayvaxGbQrnguREXAF_2fcVAF0_20uvqy_qrngu_erpvcvragRRR:
 nop
 .text
-.globl b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
+.weak b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
 .type b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_,%function
 b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFR_RRECAF_15__gerr_raq_abqrVFE_RREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFR_RRECAF_15__gerr_raq_abqrVFE_RREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFR_RRECAF_15__gerr_raq_abqrVFE_RREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFR_RRECAF_15__gerr_raq_abqrVFE_RREXG_:
 nop
diff --git a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_120.S b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_120.S
index e55c6cf..61ada37 100644
--- a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_120.S
+++ b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_120.S
@@ -3,7 +3,7 @@
 .data
 .p2align 4
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_8tencuvpf6znccre4I3_010OcUjZnccreRAF5_7VZnccreRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFO_11pune_genvgfVpRRAFO_9nyybpngbeVpRRRRoo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_8tencuvpf6znccre4I3_010OcUjZnccreRAF5_7VZnccreRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFO_11pune_genvgfVpRRAFO_9nyybpngbeVpRRRRoo
 .type b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_8tencuvpf6znccre4I3_010OcUjZnccreRAF5_7VZnccreRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFO_11pune_genvgfVpRRAFO_9nyybpngbeVpRRRRoo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_8tencuvpf6znccre4I3_010OcUjZnccreRAF5_7VZnccreRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFO_11pune_genvgfVpRRAFO_9nyybpngbeVpRRRRoo:
 nop
@@ -23,12 +23,12 @@
 b__MA7naqebvq8uneqjner8tencuvpf6znccre4I3_010OcUjZnccre11vfFhccbegrqREXAF3_7VZnccre20OhssreQrfpevcgbeVasbRAFg3__18shapgvbaVSiAF3_5ReebeRoRRR:
 nop
 .text
-.globl b__MAXFg3__18shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF7_F7_F7_CAF_6irpgbeVCiAF_9nyybpngbeVF9_RRRRRRpyRF5_F7_F7_F7_F7_FQ_
+.weak b__MAXFg3__18shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF7_F7_F7_CAF_6irpgbeVCiAF_9nyybpngbeVF9_RRRRRRpyRF5_F7_F7_F7_F7_FQ_
 .type b__MAXFg3__18shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF7_F7_F7_CAF_6irpgbeVCiAF_9nyybpngbeVF9_RRRRRRpyRF5_F7_F7_F7_F7_FQ_,%function
 b__MAXFg3__18shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF7_F7_F7_CAF_6irpgbeVCiAF_9nyybpngbeVF9_RRRRRRpyRF5_F7_F7_F7_F7_FQ_:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFT_RRECAF_15__gerr_raq_abqrVFG_RREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFT_RRECAF_15__gerr_raq_abqrVFG_RREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFT_RRECAF_15__gerr_raq_abqrVFG_RREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFT_RRECAF_15__gerr_raq_abqrVFG_RREXG_:
 nop
@@ -53,7 +53,7 @@
 b__MA7naqebvq8uneqjner8tencuvpf6znccre4I3_07VZnccre13hayvaxGbQrnguREXAF_2fcVAF0_20uvqy_qrngu_erpvcvragRRR:
 nop
 .text
-.globl b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
+.weak b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
 .type b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_,%function
 b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_:
 nop
@@ -153,7 +153,7 @@
 b__MGPA7naqebvq8uneqjner8tencuvpf6znccre4I3_010OcUjZnccreR0_AF_4uvqy4onfr4I1_05VOnfrR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_8tencuvpf6znccre4I3_07VZnccreRAF_4uvqy4onfr4I1_05VOnfrRAF5_10OcUjZnccreRRRAF0_6ErgheaVAF_2fcVG_RRRRAFQ_VG0_RRCXpo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_8tencuvpf6znccre4I3_07VZnccreRAF_4uvqy4onfr4I1_05VOnfrRAF5_10OcUjZnccreRRRAF0_6ErgheaVAF_2fcVG_RRRRAFQ_VG0_RRCXpo
 .type b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_8tencuvpf6znccre4I3_07VZnccreRAF_4uvqy4onfr4I1_05VOnfrRAF5_10OcUjZnccreRRRAF0_6ErgheaVAF_2fcVG_RRRRAFQ_VG0_RRCXpo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_8tencuvpf6znccre4I3_07VZnccreRAF_4uvqy4onfr4I1_05VOnfrRAF5_10OcUjZnccreRRRAF0_6ErgheaVAF_2fcVG_RRRRAFQ_VG0_RRCXpo:
 nop
@@ -243,7 +243,7 @@
 b__MA7naqebvq8uneqjner8tencuvpf6znccre4I3_07VZnccre17ertvfgreNfFreivprREXAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRR:
 nop
 .text
-.globl b__MAFg3__16irpgbeVCiAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_
+.weak b__MAFg3__16irpgbeVCiAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_
 .type b__MAFg3__16irpgbeVCiAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_,%function
 b__MAFg3__16irpgbeVCiAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_:
 nop
@@ -283,7 +283,7 @@
 b__MA7naqebvq8uneqjner8tencuvpf6znccre4I3_07VZnccre21frgUNYVafgehzragngvbaRi:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRR:
 nop
@@ -308,7 +308,7 @@
 b__MA7naqebvq8uneqjner8tencuvpf6znccre4I3_07VZnccre24ertvfgreSbeAbgvsvpngvbafREXAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRREXAF_2fcVAF_4uvqy7znantre4I1_020VFreivprAbgvsvpngvbaRRR:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRR:
 nop
@@ -338,12 +338,12 @@
 b__MA7naqebvq8uneqjner8tencuvpf6znccre4I3_07VZnccre10qrfpevcgbeR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFR_RRECAF_15__gerr_raq_abqrVFE_RREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFR_RRECAF_15__gerr_raq_abqrVFE_RREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFR_RRECAF_15__gerr_raq_abqrVFE_RREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFR_RRECAF_15__gerr_raq_abqrVFE_RREXG_:
 nop
@@ -368,7 +368,7 @@
 b__MA7naqebvq8uneqjner8tencuvpf6znccre4I3_07VZnccre8pnfgSebzREXAF_2fcVAF_4uvqy4onfr4I1_05VOnfrRRRo:
 nop
 .data
-.globl b__MGPA7naqebvq8uneqjner8tencuvpf6znccre4I3_08OfZnccreR0_AF3_7VZnccreR
+.weak b__MGPA7naqebvq8uneqjner8tencuvpf6znccre4I3_08OfZnccreR0_AF3_7VZnccreR
 .type b__MGPA7naqebvq8uneqjner8tencuvpf6znccre4I3_08OfZnccreR0_AF3_7VZnccreR,%object
 b__MGPA7naqebvq8uneqjner8tencuvpf6znccre4I3_08OfZnccreR0_AF3_7VZnccreR:
 .space __SIZEOF_POINTER__
@@ -398,7 +398,7 @@
 b__MA7naqebvq8uneqjner8tencuvpf6znccre4I3_010OcUjZnccreP2REXAF_2fcVAF0_7VOvaqreRRR:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_8uneqjner27uvqy_ovaqre_qrngu_erpvcvragRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_
+.weak b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_8uneqjner27uvqy_ovaqre_qrngu_erpvcvragRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_
 .type b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_8uneqjner27uvqy_ovaqre_qrngu_erpvcvragRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_,%function
 b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_8uneqjner27uvqy_ovaqre_qrngu_erpvcvragRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_:
 nop
@@ -413,7 +413,7 @@
 b__MA7naqebvq8uneqjner8tencuvpf6znccre4I3_07VZnccre12trgUnfuPunvaRAFg3__18shapgvbaVSiEXAF0_8uvqy_irpVAF0_10uvqy_neenlVuYz32RWRRRRRRRR:
 nop
 .text
-.globl b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
+.weak b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
 .type b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_,%function
 b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_:
 nop
@@ -448,7 +448,7 @@
 b__MA7naqebvq8uneqjner8tencuvpf6znccre4I3_07VZnccre4cvatRi:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRP2REXFU_
+.weak b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRP2REXFU_
 .type b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRP2REXFU_,%function
 b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRP2REXFU_:
 nop
@@ -468,12 +468,12 @@
 b__MA7naqebvq8uneqjner8tencuvpf6znccre4I3_010OcUjZnccre18inyvqngrOhssreFvmrRCiEXAF3_7VZnccre20OhssreQrfpevcgbeVasbRw:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_:
 nop
 .data
-.globl b__MGIA7naqebvq8uneqjner8tencuvpf6znccre4I3_08OfZnccreR
+.weak b__MGIA7naqebvq8uneqjner8tencuvpf6znccre4I3_08OfZnccreR
 .type b__MGIA7naqebvq8uneqjner8tencuvpf6znccre4I3_08OfZnccreR,%object
 b__MGIA7naqebvq8uneqjner8tencuvpf6znccre4I3_08OfZnccreR:
 .space __SIZEOF_POINTER__
diff --git a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_123.S b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_123.S
index 5cf6c9e..824565c 100644
--- a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_123.S
+++ b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_123.S
@@ -23,7 +23,7 @@
 b__MA7naqebvq11VachgErnqre7ivoengrRvCXyzyv:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq15GbhpuIvqrbSenzrRAF_9nyybpngbeVF2_RRR6nffvtaVCXF2_RRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF2_AF_15vgrengbe_genvgfVFN_R9ersreraprRRR5inyhrRiR4glcrRFN_FN_
+.weak b__MAFg3__16irpgbeVA7naqebvq15GbhpuIvqrbSenzrRAF_9nyybpngbeVF2_RRR6nffvtaVCXF2_RRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF2_AF_15vgrengbe_genvgfVFN_R9ersreraprRRR5inyhrRiR4glcrRFN_FN_
 .type b__MAFg3__16irpgbeVA7naqebvq15GbhpuIvqrbSenzrRAF_9nyybpngbeVF2_RRR6nffvtaVCXF2_RRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF2_AF_15vgrengbe_genvgfVFN_R9ersreraprRRR5inyhrRiR4glcrRFN_FN_,%function
 b__MAFg3__16irpgbeVA7naqebvq15GbhpuIvqrbSenzrRAF_9nyybpngbeVF2_RRR6nffvtaVCXF2_RRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF2_AF_15vgrengbe_genvgfVFN_R9ersreraprRRR5inyhrRiR4glcrRFN_FN_:
 nop
@@ -43,7 +43,7 @@
 b__MA7naqebvq16GbhpuVachgZnccre25hcqngrRkgreanyFglyhfFgngrREXAF_11FglyhfFgngrR:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq15VachgQrivprVasbRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVEXF2_RRiBG_
+.weak b__MAFg3__16irpgbeVA7naqebvq15VachgQrivprVasbRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVEXF2_RRiBG_
 .type b__MAFg3__16irpgbeVA7naqebvq15VachgQrivprVasbRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVEXF2_RRiBG_,%function
 b__MAFg3__16irpgbeVA7naqebvq15VachgQrivprVasbRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVEXF2_RRiBG_:
 nop
@@ -108,7 +108,7 @@
 b__MA7naqebvq11VachgErnqre14trgFgngrYbpxrqRvwvZAF_11VachgQrivprRSvwvR:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq15GbhpuIvqrbSenzrRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVF2_RRiBG_
+.weak b__MAFg3__16irpgbeVA7naqebvq15GbhpuIvqrbSenzrRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVF2_RRiBG_
 .type b__MAFg3__16irpgbeVA7naqebvq15GbhpuIvqrbSenzrRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVF2_RRiBG_,%function
 b__MAFg3__16irpgbeVA7naqebvq15GbhpuIvqrbSenzrRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVF2_RRiBG_:
 nop
@@ -208,7 +208,7 @@
 b__MA7naqebvq27ZhygvGbhpuZbgvbaNpphzhyngbe4FybgP1Ri:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRuRRAF_22__habeqrerq_znc_unfureVF7_F8_AF_4unfuVF7_RRYo1RRRAF_21__habeqrerq_znc_rdhnyVF7_F8_AF_8rdhny_gbVF7_RRYo1RRRAF5_VF8_RRR14__nffvta_zhygvVAF_21__unfu_pbafg_vgrengbeVCAF_11__unfu_abqrVF8_CiRRRRRRiG_FD_
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRuRRAF_22__habeqrerq_znc_unfureVF7_F8_AF_4unfuVF7_RRYo1RRRAF_21__habeqrerq_znc_rdhnyVF7_F8_AF_8rdhny_gbVF7_RRYo1RRRAF5_VF8_RRR14__nffvta_zhygvVAF_21__unfu_pbafg_vgrengbeVCAF_11__unfu_abqrVF8_CiRRRRRRiG_FD_
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRuRRAF_22__habeqrerq_znc_unfureVF7_F8_AF_4unfuVF7_RRYo1RRRAF_21__habeqrerq_znc_rdhnyVF7_F8_AF_8rdhny_gbVF7_RRYo1RRRAF5_VF8_RRR14__nffvta_zhygvVAF_21__unfu_pbafg_vgrengbeVCAF_11__unfu_abqrVF8_CiRRRRRRiG_FD_,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRuRRAF_22__habeqrerq_znc_unfureVF7_F8_AF_4unfuVF7_RRYo1RRRAF_21__habeqrerq_znc_rdhnyVF7_F8_AF_8rdhny_gbVF7_RRYo1RRRAF5_VF8_RRR14__nffvta_zhygvVAF_21__unfu_pbafg_vgrengbeVCAF_11__unfu_abqrVF8_CiRRRRRRiG_FD_:
 nop
@@ -233,7 +233,7 @@
 b__MA7naqebvq21ZhygvGbhpuVachgZnccre7cebprffRCXAF_8EnjRiragR:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVvR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVvR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVvR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVvR12qb_pbafgehpgRCiz:
 nop
@@ -248,7 +248,7 @@
 b__MA7naqebvq11VachgErnqreQ1Ri:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_10havdhr_cgeVA7naqebvq16GbhpuIvqrbQrivprRAF_14qrsnhyg_qryrgrVF3_RRRRAF_9nyybpngbeVF6_RRR5renfrRAF_11__jenc_vgreVCXF6_RRFQ_
+.weak b__MAFg3__16irpgbeVAF_10havdhr_cgeVA7naqebvq16GbhpuIvqrbQrivprRAF_14qrsnhyg_qryrgrVF3_RRRRAF_9nyybpngbeVF6_RRR5renfrRAF_11__jenc_vgreVCXF6_RRFQ_
 .type b__MAFg3__16irpgbeVAF_10havdhr_cgeVA7naqebvq16GbhpuIvqrbQrivprRAF_14qrsnhyg_qryrgrVF3_RRRRAF_9nyybpngbeVF6_RRR5renfrRAF_11__jenc_vgreVCXF6_RRFQ_,%function
 b__MAFg3__16irpgbeVAF_10havdhr_cgeVA7naqebvq16GbhpuIvqrbQrivprRAF_14qrsnhyg_qryrgrVF3_RRRRAF_9nyybpngbeVF6_RRR5renfrRAF_11__jenc_vgreVCXF6_RRFQ_:
 nop
@@ -258,7 +258,7 @@
 b__MA7naqebvq19XrlobneqVachgZnccre10cebprffXrlRyovv:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVvR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVvR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVvR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVvR8qb_fcyngRCiCXiz:
 nop
@@ -433,7 +433,7 @@
 b__MA7naqebvq16GbhpuVachgZnccre11pnapryGbhpuRy:
 nop
 .data
-.globl b__MGIA7naqebvq12FbegrqIrpgbeVvRR
+.weak b__MGIA7naqebvq12FbegrqIrpgbeVvRR
 .type b__MGIA7naqebvq12FbegrqIrpgbeVvRR,%object
 b__MGIA7naqebvq12FbegrqIrpgbeVvRR:
 .space __SIZEOF_POINTER__
@@ -468,7 +468,7 @@
 b__MA7naqebvq19IvoengbeVachgZnccre13fgbcIvoengvatRi:
 nop
 .text
-.globl b__MAFg3__16irpgbeVfAF_9nyybpngbeVfRRR6nffvtaVCfRRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVfAF_15vgrengbe_genvgfVF7_R9ersreraprRRR5inyhrRiR4glcrRF7_F7_
+.weak b__MAFg3__16irpgbeVfAF_9nyybpngbeVfRRR6nffvtaVCfRRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVfAF_15vgrengbe_genvgfVF7_R9ersreraprRRR5inyhrRiR4glcrRF7_F7_
 .type b__MAFg3__16irpgbeVfAF_9nyybpngbeVfRRR6nffvtaVCfRRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVfAF_15vgrengbe_genvgfVF7_R9ersreraprRRR5inyhrRiR4glcrRF7_F7_,%function
 b__MAFg3__16irpgbeVfAF_9nyybpngbeVfRRR6nffvtaVCfRRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVfAF_15vgrengbe_genvgfVF7_R9ersreraprRRR5inyhrRiR4glcrRF7_F7_:
 nop
@@ -613,7 +613,7 @@
 b__MA7naqebvq17PbbxrqCbvagreQngn8pbclSebzREXF0_:
 nop
 .data
-.globl b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvCAF_11VachgQrivprRRRRR
+.weak b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvCAF_11VachgQrivprRRRRR
 .type b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvCAF_11VachgQrivprRRRRR,%object
 b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvCAF_11VachgQrivprRRRRR:
 .space __SIZEOF_POINTER__
@@ -678,7 +678,7 @@
 b__MA7naqebvq22FvatyrGbhpuVachgZnccre5erfrgRy:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRuRRAF_22__habeqrerq_znc_unfureVF7_F8_AF_4unfuVF7_RRYo1RRRAF_21__habeqrerq_znc_rdhnyVF7_F8_AF_8rdhny_gbVF7_RRYo1RRRAF5_VF8_RRR6erunfuRz
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRuRRAF_22__habeqrerq_znc_unfureVF7_F8_AF_4unfuVF7_RRYo1RRRAF_21__habeqrerq_znc_rdhnyVF7_F8_AF_8rdhny_gbVF7_RRYo1RRRAF5_VF8_RRR6erunfuRz
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRuRRAF_22__habeqrerq_znc_unfureVF7_F8_AF_4unfuVF7_RRYo1RRRAF_21__habeqrerq_znc_rdhnyVF7_F8_AF_8rdhny_gbVF7_RRYo1RRRAF5_VF8_RRR6erunfuRz,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRuRRAF_22__habeqrerq_znc_unfureVF7_F8_AF_4unfuVF7_RRYo1RRRAF_21__habeqrerq_znc_rdhnyVF7_F8_AF_8rdhny_gbVF7_RRYo1RRRAF5_VF8_RRR6erunfuRz:
 nop
@@ -688,7 +688,7 @@
 b__MA7naqebvq8RiragUhoP1Ri:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvCAF_8RiragUho6QrivprRRRR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvCAF_8RiragUho6QrivprRRRR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvCAF_8RiragUho6QrivprRRRR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvCAF_8RiragUho6QrivprRRRR12qb_pbafgehpgRCiz:
 nop
@@ -698,7 +698,7 @@
 b__MA7naqebvq11VachgQrivpr9nqqZnccreRCAF_11VachgZnccreR:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVvR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVvR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVvR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVvR7qb_pbclRCiCXiz:
 nop
@@ -818,7 +818,7 @@
 b__MA7naqebvq22FvatyrGbhpuVachgZnccreP1RCAF_11VachgQrivprR:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVvR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVvR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVvR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVvR16qb_zbir_onpxjneqRCiCXiz:
 nop
@@ -828,7 +828,7 @@
 b__MA7naqebvq28FvatyrGbhpuZbgvbaNpphzhyngbeP2Ri:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_19WblfgvpxVachgZnccre4NkvfRRRR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_19WblfgvpxVachgZnccre4NkvfRRRR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_19WblfgvpxVachgZnccre4NkvfRRRR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_19WblfgvpxVachgZnccre4NkvfRRRR15qb_zbir_sbejneqRCiCXiz:
 nop
@@ -863,7 +863,7 @@
 b__MGIA7naqebvq25RkgreanyFglyhfVachgZnccreR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvCAF_11VachgQrivprRRRR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvCAF_11VachgQrivprRRRR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvCAF_11VachgQrivprRRRR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvCAF_11VachgQrivprRRRR16qb_zbir_onpxjneqRCiCXiz:
 nop
@@ -918,7 +918,7 @@
 b__MA7naqebvq16GbhpuVachgZnccre25qvfcngpuUbireRagreNaqZbirRyw:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRuRRAF_22__habeqrerq_znc_unfureVF7_F8_AF_4unfuVF7_RRYo1RRRAF_21__habeqrerq_znc_rdhnyVF7_F8_AF_8rdhny_gbVF7_RRYo1RRRAF5_VF8_RRR8__erunfuRz
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRuRRAF_22__habeqrerq_znc_unfureVF7_F8_AF_4unfuVF7_RRYo1RRRAF_21__habeqrerq_znc_rdhnyVF7_F8_AF_8rdhny_gbVF7_RRYo1RRRAF5_VF8_RRR8__erunfuRz
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRuRRAF_22__habeqrerq_znc_unfureVF7_F8_AF_4unfuVF7_RRYo1RRRAF_21__habeqrerq_znc_rdhnyVF7_F8_AF_8rdhny_gbVF7_RRYo1RRRAF5_VF8_RRR8__erunfuRz,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRuRRAF_22__habeqrerq_znc_unfureVF7_F8_AF_4unfuVF7_RRYo1RRRAF_21__habeqrerq_znc_rdhnyVF7_F8_AF_8rdhny_gbVF7_RRYo1RRRAF5_VF8_RRR8__erunfuRz:
 nop
@@ -943,7 +943,7 @@
 b__MA7naqebvq16GbhpuVachgZnccre17svaqIveghnyXrlUvgRvv:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq15QvfcynlIvrjcbegRAF_9nyybpngbeVF2_RRR6nffvtaVCF2_RRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF2_AF_15vgrengbe_genvgfVF9_R9ersreraprRRR5inyhrRiR4glcrRF9_F9_
+.weak b__MAFg3__16irpgbeVA7naqebvq15QvfcynlIvrjcbegRAF_9nyybpngbeVF2_RRR6nffvtaVCF2_RRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF2_AF_15vgrengbe_genvgfVF9_R9ersreraprRRR5inyhrRiR4glcrRF9_F9_
 .type b__MAFg3__16irpgbeVA7naqebvq15QvfcynlIvrjcbegRAF_9nyybpngbeVF2_RRR6nffvtaVCF2_RRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF2_AF_15vgrengbe_genvgfVF9_R9ersreraprRRR5inyhrRiR4glcrRF9_F9_,%function
 b__MAFg3__16irpgbeVA7naqebvq15QvfcynlIvrjcbegRAF_9nyybpngbeVF2_RRR6nffvtaVCF2_RRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF2_AF_15vgrengbe_genvgfVF9_R9ersreraprRRR5inyhrRiR4glcrRF9_F9_:
 nop
@@ -988,7 +988,7 @@
 b__MA7naqebvq11VachgErnqre24trgTybonyZrgnFgngrYbpxrqRi:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvCAF_11VachgQrivprRRRR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvCAF_11VachgQrivprRRRR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvCAF_11VachgQrivprRRRR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvCAF_11VachgQrivprRRRR15qb_zbir_sbejneqRCiCXiz:
 nop
@@ -1083,7 +1083,7 @@
 b__MA7naqebvq11VachgZnccre23qhzcEnjNofbyhgrNkvfVasbREAFg3__112onfvp_fgevatVpAF1_11pune_genvgfVpRRAF1_9nyybpngbeVpRRRREXAF_19EnjNofbyhgrNkvfVasbRCXp:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVvR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVvR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVvR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVvR15qb_zbir_sbejneqRCiCXiz:
 nop
@@ -1093,7 +1093,7 @@
 b__MA7naqebvq19IvoengbeVachgZnccre7cebprffRCXAF_8EnjRiragR:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvCAF_8RiragUho6QrivprRRRR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvCAF_8RiragUho6QrivprRRRR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvCAF_8RiragUho6QrivprRRRR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvCAF_8RiragUho6QrivprRRRR15qb_zbir_sbejneqRCiCXiz:
 nop
@@ -1158,7 +1158,7 @@
 b__MA7naqebvq11VachgQrivpr13trgQrivprVasbRCAF_15VachgQrivprVasbR:
 nop
 .text
-.globl b__MAFg3__16irpgbeVCA7naqebvq11VachgZnccreRAF_9nyybpngbeVF3_RRR21__chfu_onpx_fybj_cnguVEXF3_RRiBG_
+.weak b__MAFg3__16irpgbeVCA7naqebvq11VachgZnccreRAF_9nyybpngbeVF3_RRR21__chfu_onpx_fybj_cnguVEXF3_RRiBG_
 .type b__MAFg3__16irpgbeVCA7naqebvq11VachgZnccreRAF_9nyybpngbeVF3_RRR21__chfu_onpx_fybj_cnguVEXF3_RRiBG_,%function
 b__MAFg3__16irpgbeVCA7naqebvq11VachgZnccreRAF_9nyybpngbeVF3_RRR21__chfu_onpx_fybj_cnguVEXF3_RRiBG_:
 nop
@@ -1188,7 +1188,7 @@
 b__MA7naqebvq11VachgErnqre19gbttyrPncfYbpxFgngrRv:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvCAF_8RiragUho6QrivprRRRR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvCAF_8RiragUho6QrivprRRRR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvCAF_8RiragUho6QrivprRRRR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvCAF_8RiragUho6QrivprRRRR10qb_qrfgeblRCiz:
 nop
@@ -1308,7 +1308,7 @@
 b__MA7naqebvq8RiragUho17fpnaQrivprfYbpxrqRi:
 nop
 .data
-.globl b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvCAF_8RiragUho6QrivprRRRRR
+.weak b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvCAF_8RiragUho6QrivprRRRRR
 .type b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvCAF_8RiragUho6QrivprRRRRR,%object
 b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvCAF_8RiragUho6QrivprRRRRR:
 .space __SIZEOF_POINTER__
@@ -1323,7 +1323,7 @@
 b__MA7naqebvq16GbhpuVachgZnccre16pbasvtherFhesnprRyCo:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvCAF_11VachgQrivprRRRR10qb_pbzcnerRCXiF7_
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvCAF_11VachgQrivprRRRR10qb_pbzcnerRCXiF7_
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvCAF_11VachgQrivprRRRR10qb_pbzcnerRCXiF7_,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvCAF_11VachgQrivprRRRR10qb_pbzcnerRCXiF7_:
 nop
@@ -1368,7 +1368,7 @@
 b__MA7naqebvq8RiragUho23pybfrQrivprOlCnguYbpxrqRCXp:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvCAF_8RiragUho6QrivprRRRR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvCAF_8RiragUho6QrivprRRRR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvCAF_8RiragUho6QrivprRRRR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvCAF_8RiragUho6QrivprRRRR7qb_pbclRCiCXiz:
 nop
@@ -1393,17 +1393,17 @@
 b__MA7naqebvq27ZhygvGbhpuZbgvbaNpphzhyngbe7cebprffRCXAF_8EnjRiragR:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvCAF_11VachgQrivprRRRR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvCAF_11VachgQrivprRRRR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvCAF_11VachgQrivprRRRR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvCAF_11VachgQrivprRRRR10qb_qrfgeblRCiz:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvCAF_11VachgQrivprRRRR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvCAF_11VachgQrivprRRRR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvCAF_11VachgQrivprRRRR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvCAF_11VachgQrivprRRRR8qb_fcyngRCiCXiz:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_10havdhr_cgeVA7naqebvq16GbhpuIvqrbQrivprRAF_14qrsnhyg_qryrgrVF3_RRRRAF_9nyybpngbeVF6_RRR21__chfu_onpx_fybj_cnguVF6_RRiBG_
+.weak b__MAFg3__16irpgbeVAF_10havdhr_cgeVA7naqebvq16GbhpuIvqrbQrivprRAF_14qrsnhyg_qryrgrVF3_RRRRAF_9nyybpngbeVF6_RRR21__chfu_onpx_fybj_cnguVF6_RRiBG_
 .type b__MAFg3__16irpgbeVAF_10havdhr_cgeVA7naqebvq16GbhpuIvqrbQrivprRAF_14qrsnhyg_qryrgrVF3_RRRRAF_9nyybpngbeVF6_RRR21__chfu_onpx_fybj_cnguVF6_RRiBG_,%function
 b__MAFg3__16irpgbeVAF_10havdhr_cgeVA7naqebvq16GbhpuIvqrbQrivprRAF_14qrsnhyg_qryrgrVF3_RRRRAF_9nyybpngbeVF6_RRR21__chfu_onpx_fybj_cnguVF6_RRiBG_:
 nop
@@ -1453,7 +1453,7 @@
 b__MA7naqebvq11VachgQrivprQ2Ri:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_19WblfgvpxVachgZnccre4NkvfRRRR10qb_pbzcnerRCXiF7_
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_19WblfgvpxVachgZnccre4NkvfRRRR10qb_pbzcnerRCXiF7_
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_19WblfgvpxVachgZnccre4NkvfRRRR10qb_pbzcnerRCXiF7_,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_19WblfgvpxVachgZnccre4NkvfRRRR10qb_pbzcnerRCXiF7_:
 nop
@@ -1488,7 +1488,7 @@
 b__MA7naqebvq11VachgZnccre11snqrCbvagreRi:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq19XrlobneqVachgZnccre7XrlQbjaRAF_9nyybpngbeVF3_RRR21__chfu_onpx_fybj_cnguVEXF3_RRiBG_
+.weak b__MAFg3__16irpgbeVA7naqebvq19XrlobneqVachgZnccre7XrlQbjaRAF_9nyybpngbeVF3_RRR21__chfu_onpx_fybj_cnguVEXF3_RRiBG_
 .type b__MAFg3__16irpgbeVA7naqebvq19XrlobneqVachgZnccre7XrlQbjaRAF_9nyybpngbeVF3_RRR21__chfu_onpx_fybj_cnguVEXF3_RRiBG_,%function
 b__MAFg3__16irpgbeVA7naqebvq19XrlobneqVachgZnccre7XrlQbjaRAF_9nyybpngbeVF3_RRR21__chfu_onpx_fybj_cnguVEXF3_RRiBG_:
 nop
@@ -1528,7 +1528,7 @@
 b__MA7naqebvq11VachgErnqre26fubhyqQebcIveghnyXrlYbpxrqRyCAF_11VachgQrivprRvv:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvCAF_11VachgQrivprRRRR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvCAF_11VachgQrivprRRRR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvCAF_11VachgQrivprRRRR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvCAF_11VachgQrivprRRRR12qb_pbafgehpgRCiz:
 nop
@@ -1553,7 +1553,7 @@
 b__MA7naqebvq19IvoengbeVachgZnccreP1RCAF_11VachgQrivprR:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvCAF_8RiragUho6QrivprRRRR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvCAF_8RiragUho6QrivprRRRR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvCAF_8RiragUho6QrivprRRRR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvCAF_8RiragUho6QrivprRRRR16qb_zbir_onpxjneqRCiCXiz:
 nop
@@ -1658,7 +1658,7 @@
 b__MA7naqebvq24EbgnelRapbqreVachgZnccreQ2Ri:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq16GbhpuVachgZnccre10IveghnyXrlRAF_9nyybpngbeVF3_RRR21__chfu_onpx_fybj_cnguVEXF3_RRiBG_
+.weak b__MAFg3__16irpgbeVA7naqebvq16GbhpuVachgZnccre10IveghnyXrlRAF_9nyybpngbeVF3_RRR21__chfu_onpx_fybj_cnguVEXF3_RRiBG_
 .type b__MAFg3__16irpgbeVA7naqebvq16GbhpuVachgZnccre10IveghnyXrlRAF_9nyybpngbeVF3_RRR21__chfu_onpx_fybj_cnguVEXF3_RRiBG_,%function
 b__MAFg3__16irpgbeVA7naqebvq16GbhpuVachgZnccre10IveghnyXrlRAF_9nyybpngbeVF3_RRR21__chfu_onpx_fybj_cnguVEXF3_RRiBG_:
 nop
@@ -1688,7 +1688,7 @@
 b__MA7naqebvq8RiragUho17frgYrqFgngrYbpxrqRCAF0_6QrivprRvo:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvCAF_8RiragUho6QrivprRRRR10qb_pbzcnerRCXiF8_
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvCAF_8RiragUho6QrivprRRRR10qb_pbzcnerRCXiF8_
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvCAF_8RiragUho6QrivprRRRR10qb_pbzcnerRCXiF8_,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvCAF_8RiragUho6QrivprRRRR10qb_pbzcnerRCXiF8_:
 nop
@@ -1793,12 +1793,12 @@
 b__MA7naqebvq23PhefbeZbgvbaNpphzhyngbeP1Ri:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvCAF_8RiragUho6QrivprRRRR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvCAF_8RiragUho6QrivprRRRR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvCAF_8RiragUho6QrivprRRRR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvCAF_8RiragUho6QrivprRRRR8qb_fcyngRCiCXiz:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq20IveghnyXrlQrsvavgvbaRAF_9nyybpngbeVF2_RRRP2REXF5_
+.weak b__MAFg3__16irpgbeVA7naqebvq20IveghnyXrlQrsvavgvbaRAF_9nyybpngbeVF2_RRRP2REXF5_
 .type b__MAFg3__16irpgbeVA7naqebvq20IveghnyXrlQrsvavgvbaRAF_9nyybpngbeVF2_RRRP2REXF5_,%function
 b__MAFg3__16irpgbeVA7naqebvq20IveghnyXrlQrsvavgvbaRAF_9nyybpngbeVF2_RRRP2REXF5_:
 nop
@@ -1903,7 +1903,7 @@
 b__MA7naqebvq8RiragUho13fpnaQveYbpxrqRCXp:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_19WblfgvpxVachgZnccre4NkvfRRRR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_19WblfgvpxVachgZnccre4NkvfRRRR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_19WblfgvpxVachgZnccre4NkvfRRRR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_19WblfgvpxVachgZnccre4NkvfRRRR7qb_pbclRCiCXiz:
 nop
@@ -2063,12 +2063,12 @@
 b__MA7naqebvq19WblfgvpxVachgZnccre8unirNkvfRv:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVvR10qb_pbzcnerRCXiF3_
+.weak b__MAX7naqebvq12FbegrqIrpgbeVvR10qb_pbzcnerRCXiF3_
 .type b__MAX7naqebvq12FbegrqIrpgbeVvR10qb_pbzcnerRCXiF3_,%function
 b__MAX7naqebvq12FbegrqIrpgbeVvR10qb_pbzcnerRCXiF3_:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq16GbhpuVachgZnccre8EnjFgngrRAF_9nyybpngbeVF3_RRR24__rzcynpr_onpx_fybj_cnguVWRRRiQcBG_
+.weak b__MAFg3__16irpgbeVA7naqebvq16GbhpuVachgZnccre8EnjFgngrRAF_9nyybpngbeVF3_RRR24__rzcynpr_onpx_fybj_cnguVWRRRiQcBG_
 .type b__MAFg3__16irpgbeVA7naqebvq16GbhpuVachgZnccre8EnjFgngrRAF_9nyybpngbeVF3_RRR24__rzcynpr_onpx_fybj_cnguVWRRRiQcBG_,%function
 b__MAFg3__16irpgbeVA7naqebvq16GbhpuVachgZnccre8EnjFgngrRAF_9nyybpngbeVF3_RRR24__rzcynpr_onpx_fybj_cnguVWRRRiQcBG_:
 nop
@@ -2078,7 +2078,7 @@
 b__MA7naqebvq8RiragUho27perngrIveghnyXrlobneqYbpxrqRi:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq20IveghnyXrlQrsvavgvbaRAF_9nyybpngbeVF2_RRR6vafregVAF_11__jenc_vgreVCXF2_RRRRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF2_AF_15vgrengbe_genvgfVFP_R9ersreraprRRR5inyhrRAF7_VCF2_RRR4glcrRFN_FP_FP_
+.weak b__MAFg3__16irpgbeVA7naqebvq20IveghnyXrlQrsvavgvbaRAF_9nyybpngbeVF2_RRR6vafregVAF_11__jenc_vgreVCXF2_RRRRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF2_AF_15vgrengbe_genvgfVFP_R9ersreraprRRR5inyhrRAF7_VCF2_RRR4glcrRFN_FP_FP_
 .type b__MAFg3__16irpgbeVA7naqebvq20IveghnyXrlQrsvavgvbaRAF_9nyybpngbeVF2_RRR6vafregVAF_11__jenc_vgreVCXF2_RRRRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF2_AF_15vgrengbe_genvgfVFP_R9ersreraprRRR5inyhrRAF7_VCF2_RRR4glcrRFN_FP_FP_,%function
 b__MAFg3__16irpgbeVA7naqebvq20IveghnyXrlQrsvavgvbaRAF_9nyybpngbeVF2_RRR6vafregVAF_11__jenc_vgreVCXF2_RRRRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF2_AF_15vgrengbe_genvgfVFP_R9ersreraprRRR5inyhrRAF7_VCF2_RRR4glcrRFN_FP_FP_:
 nop
@@ -2113,12 +2113,12 @@
 b__MA7naqebvq16GbhpuIvqrbQrivprP2RvBAFg3__112onfvp_fgevatVpAF1_11pune_genvgfVpRRAF1_9nyybpngbeVpRRRRF8_wwEXAF1_5neenlVCXfYz3RRR:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_19WblfgvpxVachgZnccre4NkvfRRRR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_19WblfgvpxVachgZnccre4NkvfRRRR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_19WblfgvpxVachgZnccre4NkvfRRRR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_19WblfgvpxVachgZnccre4NkvfRRRR10qb_qrfgeblRCiz:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_19WblfgvpxVachgZnccre4NkvfRRRR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_19WblfgvpxVachgZnccre4NkvfRRRR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_19WblfgvpxVachgZnccre4NkvfRRRR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_19WblfgvpxVachgZnccre4NkvfRRRR8qb_fcyngRCiCXiz:
 nop
@@ -2168,7 +2168,7 @@
 b__MA7naqebvq8RiragUho14trgIvqrbSenzrfRv:
 nop
 .data
-.globl b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_19WblfgvpxVachgZnccre4NkvfRRRRR
+.weak b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_19WblfgvpxVachgZnccre4NkvfRRRRR
 .type b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_19WblfgvpxVachgZnccre4NkvfRRRRR,%object
 b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_19WblfgvpxVachgZnccre4NkvfRRRRR:
 .space __SIZEOF_POINTER__
@@ -2213,12 +2213,12 @@
 b__MA7naqebvq11VachgZnccreQ2Ri:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVvR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVvR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVvR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVvR10qb_qrfgeblRCiz:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvCAF_11VachgQrivprRRRR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvCAF_11VachgQrivprRRRR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvCAF_11VachgQrivprRRRR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvCAF_11VachgQrivprRRRR7qb_pbclRCiCXiz:
 nop
@@ -2238,7 +2238,7 @@
 b__MA7naqebvq16GbhpuVachgZnccre20pbasvtherIveghnyXrlfRi:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_19WblfgvpxVachgZnccre4NkvfRRRR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_19WblfgvpxVachgZnccre4NkvfRRRR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_19WblfgvpxVachgZnccre4NkvfRRRR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_19WblfgvpxVachgZnccre4NkvfRRRR16qb_zbir_onpxjneqRCiCXiz:
 nop
@@ -2253,12 +2253,12 @@
 b__MA7naqebvq11VachgErnqre26erdhrfgGvzrbhgNgGvzrYbpxrqRy:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq15GbhpuIvqrbSenzrRAF_9nyybpngbeVF2_RRR6vafregVAF_13zbir_vgrengbeVAF_11__jenc_vgreVCF2_RRRRRRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF2_AF_15vgrengbe_genvgfVFQ_R9ersreraprRRR5inyhrRFN_R4glcrRAF8_VCXF2_RRFQ_FQ_
+.weak b__MAFg3__16irpgbeVA7naqebvq15GbhpuIvqrbSenzrRAF_9nyybpngbeVF2_RRR6vafregVAF_13zbir_vgrengbeVAF_11__jenc_vgreVCF2_RRRRRRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF2_AF_15vgrengbe_genvgfVFQ_R9ersreraprRRR5inyhrRFN_R4glcrRAF8_VCXF2_RRFQ_FQ_
 .type b__MAFg3__16irpgbeVA7naqebvq15GbhpuIvqrbSenzrRAF_9nyybpngbeVF2_RRR6vafregVAF_13zbir_vgrengbeVAF_11__jenc_vgreVCF2_RRRRRRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF2_AF_15vgrengbe_genvgfVFQ_R9ersreraprRRR5inyhrRFN_R4glcrRAF8_VCXF2_RRFQ_FQ_,%function
 b__MAFg3__16irpgbeVA7naqebvq15GbhpuIvqrbSenzrRAF_9nyybpngbeVF2_RRR6vafregVAF_13zbir_vgrengbeVAF_11__jenc_vgreVCF2_RRRRRRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF2_AF_15vgrengbe_genvgfVFQ_R9ersreraprRRR5inyhrRFN_R4glcrRAF8_VCXF2_RRFQ_FQ_:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq15GbhpuIvqrbSenzrRAF_9nyybpngbeVF2_RRR7erfreirRz
+.weak b__MAFg3__16irpgbeVA7naqebvq15GbhpuIvqrbSenzrRAF_9nyybpngbeVF2_RRR7erfreirRz
 .type b__MAFg3__16irpgbeVA7naqebvq15GbhpuIvqrbSenzrRAF_9nyybpngbeVF2_RRR7erfreirRz,%function
 b__MAFg3__16irpgbeVA7naqebvq15GbhpuIvqrbSenzrRAF_9nyybpngbeVF2_RRR7erfreirRz:
 nop
@@ -2413,7 +2413,7 @@
 b__MA7naqebvq8RiragUho4qhzcREAFg3__112onfvp_fgevatVpAF1_11pune_genvgfVpRRAF1_9nyybpngbeVpRRRR:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF6_RRR6nffvtaVCF6_RRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF6_AF_15vgrengbe_genvgfVFP_R9ersreraprRRR5inyhrRiR4glcrRFP_FP_
+.weak b__MAFg3__16irpgbeVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF6_RRR6nffvtaVCF6_RRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF6_AF_15vgrengbe_genvgfVFP_R9ersreraprRRR5inyhrRiR4glcrRFP_FP_
 .type b__MAFg3__16irpgbeVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF6_RRR6nffvtaVCF6_RRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF6_AF_15vgrengbe_genvgfVFP_R9ersreraprRRR5inyhrRiR4glcrRFP_FP_,%function
 b__MAFg3__16irpgbeVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF6_RRR6nffvtaVCF6_RRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF6_AF_15vgrengbe_genvgfVFP_R9ersreraprRRR5inyhrRiR4glcrRFP_FP_:
 nop
@@ -2438,7 +2438,7 @@
 b__MA7naqebvq8RiragUho6Qrivpr5pybfrRi:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_19WblfgvpxVachgZnccre4NkvfRRRR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_19WblfgvpxVachgZnccre4NkvfRRRR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_19WblfgvpxVachgZnccre4NkvfRRRR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_19WblfgvpxVachgZnccre4NkvfRRRR12qb_pbafgehpgRCiz:
 nop
@@ -2483,7 +2483,7 @@
 b__MA7naqebvq11VachgQrivpr21znexFhccbegrqXrlPbqrfRwzCXvCu:
 nop
 .text
-.globl b__MAXFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRuRRAF_22__habeqrerq_znc_unfureVF7_F8_AF_4unfuVF7_RRYo1RRRAF_21__habeqrerq_znc_rdhnyVF7_F8_AF_8rdhny_gbVF7_RRYo1RRRAF5_VF8_RRR4svaqVF7_RRAF_21__unfu_pbafg_vgrengbeVCAF_11__unfu_abqrVF8_CiRRRREXG_
+.weak b__MAXFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRuRRAF_22__habeqrerq_znc_unfureVF7_F8_AF_4unfuVF7_RRYo1RRRAF_21__habeqrerq_znc_rdhnyVF7_F8_AF_8rdhny_gbVF7_RRYo1RRRAF5_VF8_RRR4svaqVF7_RRAF_21__unfu_pbafg_vgrengbeVCAF_11__unfu_abqrVF8_CiRRRREXG_
 .type b__MAXFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRuRRAF_22__habeqrerq_znc_unfureVF7_F8_AF_4unfuVF7_RRYo1RRRAF_21__habeqrerq_znc_rdhnyVF7_F8_AF_8rdhny_gbVF7_RRYo1RRRAF5_VF8_RRR4svaqVF7_RRAF_21__unfu_pbafg_vgrengbeVCAF_11__unfu_abqrVF8_CiRRRREXG_,%function
 b__MAXFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRuRRAF_22__habeqrerq_znc_unfureVF7_F8_AF_4unfuVF7_RRYo1RRRAF_21__habeqrerq_znc_rdhnyVF7_F8_AF_8rdhny_gbVF7_RRYo1RRRAF5_VF8_RRR4svaqVF7_RRAF_21__unfu_pbafg_vgrengbeVCAF_11__unfu_abqrVF8_CiRRRREXG_:
 nop
diff --git a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_124.S b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_124.S
index cb4129e..dfa2511 100644
--- a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_124.S
+++ b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_124.S
@@ -13,7 +13,7 @@
 b__MGPA7naqebvq8uneqjner23OaFrafbeCevinplYvfgrareR0_AF0_22VFrafbeCevinplYvfgrareR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq11OaVagresnprVAF_8uneqjner21VFrafbeCevinplZnantreRR10baNfOvaqreRi
+.weak b__MA7naqebvq11OaVagresnprVAF_8uneqjner21VFrafbeCevinplZnantreRR10baNfOvaqreRi
 .type b__MA7naqebvq11OaVagresnprVAF_8uneqjner21VFrafbeCevinplZnantreRR10baNfOvaqreRi,%function
 b__MA7naqebvq11OaVagresnprVAF_8uneqjner21VFrafbeCevinplZnantreRR10baNfOvaqreRi:
 nop
@@ -248,7 +248,7 @@
 b__MA7naqebvq8uneqjner22OcFrafbeCevinplZnantreP2REXAF_2fcVAF_7VOvaqreRRR:
 nop
 .text
-.globl b__MA7naqebvq11OaVagresnprVAF_8uneqjner22VFrafbeCevinplYvfgrareRR10baNfOvaqreRi
+.weak b__MA7naqebvq11OaVagresnprVAF_8uneqjner22VFrafbeCevinplYvfgrareRR10baNfOvaqreRi
 .type b__MA7naqebvq11OaVagresnprVAF_8uneqjner22VFrafbeCevinplYvfgrareRR10baNfOvaqreRi,%function
 b__MA7naqebvq11OaVagresnprVAF_8uneqjner22VFrafbeCevinplYvfgrareRR10baNfOvaqreRi:
 nop
@@ -293,7 +293,7 @@
 b__MA7naqebvq8uneqjner22OcFrafbeCevinplZnantre22vfFrafbeCevinplRanoyrqRCo:
 nop
 .text
-.globl b__MAX7naqebvq6Cnepry16ernqFgebatOvaqreVAF_8uneqjner22VFrafbeCevinplYvfgrareRRRvCAF_2fcVG_RR
+.weak b__MAX7naqebvq6Cnepry16ernqFgebatOvaqreVAF_8uneqjner22VFrafbeCevinplYvfgrareRRRvCAF_2fcVG_RR
 .type b__MAX7naqebvq6Cnepry16ernqFgebatOvaqreVAF_8uneqjner22VFrafbeCevinplYvfgrareRRRvCAF_2fcVG_RR,%function
 b__MAX7naqebvq6Cnepry16ernqFgebatOvaqreVAF_8uneqjner22VFrafbeCevinplYvfgrareRRRvCAF_2fcVG_RR:
 nop
diff --git a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_125.S b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_125.S
index 2f40b2b..c3e0645 100644
--- a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_125.S
+++ b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_125.S
@@ -23,7 +23,7 @@
 b__MA7naqebvq8uneqjner9RiragSyntQ2Ri:
 nop
 .text
-.globl b__MAFg3__1yfVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRREAF_13onfvp_bfgernzVG_G0_RRF9_EXAF_12onfvp_fgevatVF6_F7_G1_RR
+.weak b__MAFg3__1yfVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRREAF_13onfvp_bfgernzVG_G0_RRF9_EXAF_12onfvp_fgevatVF6_F7_G1_RR
 .type b__MAFg3__1yfVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRREAF_13onfvp_bfgernzVG_G0_RRF9_EXAF_12onfvp_fgevatVF6_F7_G1_RR,%function
 b__MAFg3__1yfVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRREAF_13onfvp_bfgernzVG_G0_RRF9_EXAF_12onfvp_fgevatVF6_F7_G1_RR:
 nop
@@ -63,7 +63,7 @@
 b__MA7naqebvq8uneqjner9RiragSyntP1RvyCv:
 nop
 .text
-.globl b__MAFg3__124__chg_punenpgre_frdhraprVpAF_11pune_genvgfVpRRRREAF_13onfvp_bfgernzVG_G0_RRF7_CXF4_z
+.weak b__MAFg3__124__chg_punenpgre_frdhraprVpAF_11pune_genvgfVpRRRREAF_13onfvp_bfgernzVG_G0_RRF7_CXF4_z
 .type b__MAFg3__124__chg_punenpgre_frdhraprVpAF_11pune_genvgfVpRRRREAF_13onfvp_bfgernzVG_G0_RRF7_CXF4_z,%function
 b__MAFg3__124__chg_punenpgre_frdhraprVpAF_11pune_genvgfVpRRRREAF_13onfvp_bfgernzVG_G0_RRF7_CXF4_z:
 nop
diff --git a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_126.S b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_126.S
index de6624a..50a683f 100644
--- a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_126.S
+++ b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_126.S
@@ -18,12 +18,12 @@
 b__MA7naqebvq8uneqjner7frafbef4I1_08VFrafbef8pnfgSebzREXAF_2fcVAF_4uvqy4onfr4I1_05VOnfrRRRo:
 nop
 .text
-.globl b__MAXFg3__18shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF7_F7_F7_CAF_6irpgbeVCiAF_9nyybpngbeVF9_RRRRRRpyRF5_F7_F7_F7_F7_FQ_
+.weak b__MAXFg3__18shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF7_F7_F7_CAF_6irpgbeVCiAF_9nyybpngbeVF9_RRRRRRpyRF5_F7_F7_F7_F7_FQ_
 .type b__MAXFg3__18shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF7_F7_F7_CAF_6irpgbeVCiAF_9nyybpngbeVF9_RRRRRRpyRF5_F7_F7_F7_F7_FQ_,%function
 b__MAXFg3__18shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF7_F7_F7_CAF_6irpgbeVCiAF_9nyybpngbeVF9_RRRRRRpyRF5_F7_F7_F7_F7_FQ_:
 nop
 .text
-.globl b__MAFg3__16irpgbeVCiAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_
+.weak b__MAFg3__16irpgbeVCiAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_
 .type b__MAFg3__16irpgbeVCiAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_,%function
 b__MAFg3__16irpgbeVCiAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_:
 nop
@@ -63,7 +63,7 @@
 b__MA7naqebvq8uneqjner7frafbef4I1_09OfFrafbef13nqqBarjnlGnfxRAFg3__18shapgvbaVSiiRRR:
 nop
 .text
-.globl b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
+.weak b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
 .type b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_,%function
 b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_:
 nop
@@ -113,17 +113,17 @@
 b__MA7naqebvq8uneqjner7frafbef4I1_011OcUjFrafbef22_uvqy_vawrpgFrafbeQngnRCAF0_10VVagresnprRCAF0_7qrgnvyf16UvqyVafgehzragbeREXAF2_5RiragR:
 nop
 .text
-.globl b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
+.weak b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
 .type b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_,%function
 b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRP2REXFU_
+.weak b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRP2REXFU_
 .type b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRP2REXFU_,%function
 b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRP2REXFU_:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_7frafbef4I1_011OcUjFrafbefRAF4_8VFrafbefRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_7frafbef4I1_011OcUjFrafbefRAF4_8VFrafbefRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo
 .type b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_7frafbef4I1_011OcUjFrafbefRAF4_8VFrafbefRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_7frafbef4I1_011OcUjFrafbefRAF4_8VFrafbefRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo:
 nop
@@ -148,7 +148,7 @@
 b__MA7naqebvq8uneqjner7frafbef4I1_011OcUjFrafbef5syhfuRv:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_8uneqjner27uvqy_ovaqre_qrngu_erpvcvragRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_
+.weak b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_8uneqjner27uvqy_ovaqre_qrngu_erpvcvragRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_
 .type b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_8uneqjner27uvqy_ovaqre_qrngu_erpvcvragRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_,%function
 b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_8uneqjner27uvqy_ovaqre_qrngu_erpvcvragRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_:
 nop
@@ -213,7 +213,7 @@
 b__MGua32_A7naqebvq8uneqjner7frafbef4I1_011OaUjFrafbefQ1Ri:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_7frafbef4I1_08VFrafbefRAF_4uvqy4onfr4I1_05VOnfrRAF4_11OcUjFrafbefRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_7frafbef4I1_08VFrafbefRAF_4uvqy4onfr4I1_05VOnfrRAF4_11OcUjFrafbefRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo
 .type b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_7frafbef4I1_08VFrafbefRAF_4uvqy4onfr4I1_05VOnfrRAF4_11OcUjFrafbefRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_7frafbef4I1_08VFrafbefRAF_4uvqy4onfr4I1_05VOnfrRAF4_11OcUjFrafbefRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo:
 nop
@@ -313,7 +313,7 @@
 b__MA7naqebvq8uneqjner7frafbef4I1_011OcUjFrafbef14_uvqy_npgvingrRCAF0_10VVagresnprRCAF0_7qrgnvyf16UvqyVafgehzragbeRvo:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRR:
 nop
@@ -353,7 +353,7 @@
 b__MGPA7naqebvq8uneqjner7frafbef4I1_011OaUjFrafbefR0_AF0_7VOvaqreR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIA7naqebvq8uneqjner7frafbef4I1_09OfFrafbefR
+.weak b__MGIA7naqebvq8uneqjner7frafbef4I1_09OfFrafbefR
 .type b__MGIA7naqebvq8uneqjner7frafbef4I1_09OfFrafbefR,%object
 b__MGIA7naqebvq8uneqjner7frafbef4I1_09OfFrafbefR:
 .space __SIZEOF_POINTER__
@@ -368,7 +368,7 @@
 b__MA7naqebvq8uneqjner7frafbef4I1_011OcUjFrafbefP2REXAF_2fcVAF0_7VOvaqreRRR:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_:
 nop
@@ -418,7 +418,7 @@
 b__MGPA7naqebvq8uneqjner7frafbef4I1_08VFrafbefR0_AF_4uvqy4onfr4I1_05VOnfrR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFR_RRECAF_15__gerr_raq_abqrVFE_RREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFR_RRECAF_15__gerr_raq_abqrVFE_RREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFR_RRECAF_15__gerr_raq_abqrVFE_RREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFR_RRECAF_15__gerr_raq_abqrVFE_RREXG_:
 nop
@@ -448,7 +448,7 @@
 b__MGGA7naqebvq8uneqjner7frafbef4I1_08VFrafbefR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRR:
 nop
@@ -468,7 +468,7 @@
 b__MA7naqebvq8uneqjner7frafbef4I1_08VFrafbef14vagresnprPunvaRAFg3__18shapgvbaVSiEXAF0_8uvqy_irpVAF0_11uvqy_fgevatRRRRRR:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_:
 nop
@@ -548,12 +548,12 @@
 b__MA7naqebvq8uneqjner7frafbef4I1_011OcUjFrafbefP1REXAF_2fcVAF0_7VOvaqreRRR:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFT_RRECAF_15__gerr_raq_abqrVFG_RREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFT_RRECAF_15__gerr_raq_abqrVFG_RREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFT_RRECAF_15__gerr_raq_abqrVFG_RREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFT_RRECAF_15__gerr_raq_abqrVFG_RREXG_:
 nop
 .data
-.globl b__MGPA7naqebvq8uneqjner7frafbef4I1_09OfFrafbefR0_AF2_8VFrafbefR
+.weak b__MGPA7naqebvq8uneqjner7frafbef4I1_09OfFrafbefR0_AF2_8VFrafbefR
 .type b__MGPA7naqebvq8uneqjner7frafbef4I1_09OfFrafbefR0_AF2_8VFrafbefR,%object
 b__MGPA7naqebvq8uneqjner7frafbef4I1_09OfFrafbefR0_AF2_8VFrafbefR:
 .space __SIZEOF_POINTER__
diff --git a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_127.S b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_127.S
index cd66acf..cc4e289 100644
--- a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_127.S
+++ b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_127.S
@@ -78,7 +78,7 @@
 b__MA7naqebvq8uneqjner7frafbef4I2_011OcUjFrafbef18pbasvtQverpgErcbegRvvAF1_4I1_09EngrYriryRAFg3__18shapgvbaVSiAF4_6ErfhygRvRRR:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRR:
 nop
@@ -88,12 +88,12 @@
 b__MA7naqebvq8uneqjner7frafbef4I2_019OcUjFrafbefPnyyonpx19vagresnprQrfpevcgbeRAFg3__18shapgvbaVSiEXAF0_11uvqy_fgevatRRRR:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_7frafbef4I2_08VFrafbefRAF_4uvqy4onfr4I1_05VOnfrRAF4_11OcUjFrafbefRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_7frafbef4I2_08VFrafbefRAF_4uvqy4onfr4I1_05VOnfrRAF4_11OcUjFrafbefRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo
 .type b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_7frafbef4I2_08VFrafbefRAF_4uvqy4onfr4I1_05VOnfrRAF4_11OcUjFrafbefRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_7frafbef4I2_08VFrafbefRAF_4uvqy4onfr4I1_05VOnfrRAF4_11OcUjFrafbefRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_7frafbef4I2_011OcUjFrafbefRAF4_8VFrafbefRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_7frafbef4I2_011OcUjFrafbefRAF4_8VFrafbefRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo
 .type b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_7frafbef4I2_011OcUjFrafbefRAF4_8VFrafbefRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_7frafbef4I2_011OcUjFrafbefRAF4_8VFrafbefRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo:
 nop
@@ -283,7 +283,7 @@
 b__MA7naqebvq8uneqjner7frafbef4I2_08VFrafbef10trgFreivprREXAFg3__112onfvp_fgevatVpAF4_11pune_genvgfVpRRAF4_9nyybpngbeVpRRRRo:
 nop
 .text
-.globl b__MAFg3__16irpgbeVCiAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_
+.weak b__MAFg3__16irpgbeVCiAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_
 .type b__MAFg3__16irpgbeVCiAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_,%function
 b__MAFg3__16irpgbeVCiAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_:
 nop
@@ -303,7 +303,7 @@
 b__MGi0_a40_A7naqebvq8uneqjner7frafbef4I2_019OcUjFrafbefPnyyonpx15baYnfgFgebatErsRCXi:
 nop
 .data
-.globl b__MGPA7naqebvq8uneqjner7frafbef4I2_09OfFrafbefR0_AF2_8VFrafbefR
+.weak b__MGPA7naqebvq8uneqjner7frafbef4I2_09OfFrafbefR0_AF2_8VFrafbefR
 .type b__MGPA7naqebvq8uneqjner7frafbef4I2_09OfFrafbefR0_AF2_8VFrafbefR,%object
 b__MGPA7naqebvq8uneqjner7frafbef4I2_09OfFrafbefR0_AF2_8VFrafbefR:
 .space __SIZEOF_POINTER__
@@ -338,7 +338,7 @@
 b__MA7naqebvq8uneqjner7frafbef4I2_08VFrafbef5qrohtREXAF0_11uvqy_unaqyrREXAF0_8uvqy_irpVAF0_11uvqy_fgevatRRR:
 nop
 .text
-.globl b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
+.weak b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
 .type b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_,%function
 b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_:
 nop
@@ -358,7 +358,7 @@
 b__MGPA7naqebvq8uneqjner7frafbef4I2_019OaUjFrafbefPnyyonpxR0_AF0_9OUjOvaqreR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_7frafbef4I2_016VFrafbefPnyyonpxRAF3_19OcUjFrafbefPnyyonpxRAF3_19OaUjFrafbefPnyyonpxRRRAF_2fcVG_RREXAF7_VAF0_7VOvaqreRRR
+.weak b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_7frafbef4I2_016VFrafbefPnyyonpxRAF3_19OcUjFrafbefPnyyonpxRAF3_19OaUjFrafbefPnyyonpxRRRAF_2fcVG_RREXAF7_VAF0_7VOvaqreRRR
 .type b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_7frafbef4I2_016VFrafbefPnyyonpxRAF3_19OcUjFrafbefPnyyonpxRAF3_19OaUjFrafbefPnyyonpxRRRAF_2fcVG_RREXAF7_VAF0_7VOvaqreRRR,%function
 b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_7frafbef4I2_016VFrafbefPnyyonpxRAF3_19OcUjFrafbefPnyyonpxRAF3_19OaUjFrafbefPnyyonpxRRRAF_2fcVG_RREXAF7_VAF0_7VOvaqreRRR:
 nop
@@ -393,12 +393,12 @@
 b__MA7naqebvq8uneqjner7frafbef4I2_08VFrafbef21abgvslFlfcebcfPunatrqRi:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_8uneqjner27uvqy_ovaqre_qrngu_erpvcvragRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_
+.weak b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_8uneqjner27uvqy_ovaqre_qrngu_erpvcvragRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_
 .type b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_8uneqjner27uvqy_ovaqre_qrngu_erpvcvragRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_,%function
 b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_8uneqjner27uvqy_ovaqre_qrngu_erpvcvragRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_7frafbef4I2_016VFrafbefPnyyonpxRAF_4uvqy4onfr4I1_05VOnfrRAF4_19OcUjFrafbefPnyyonpxRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_7frafbef4I2_016VFrafbefPnyyonpxRAF_4uvqy4onfr4I1_05VOnfrRAF4_19OcUjFrafbefPnyyonpxRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo
 .type b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_7frafbef4I2_016VFrafbefPnyyonpxRAF_4uvqy4onfr4I1_05VOnfrRAF4_19OcUjFrafbefPnyyonpxRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_7frafbef4I2_016VFrafbefPnyyonpxRAF_4uvqy4onfr4I1_05VOnfrRAF4_19OcUjFrafbefPnyyonpxRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo:
 nop
@@ -493,7 +493,7 @@
 b__MA7naqebvq8uneqjner7frafbef4I2_019OaUjFrafbefPnyyonpx34_uvqy_baQlanzvpFrafbefQvfpbaarpgrqRCAF_4uvqy4onfr4I1_08OaUjOnfrREXAF0_6CnepryRCF9_AFg3__18shapgvbaVSiEF9_RRR:
 nop
 .data
-.globl b__MGPA7naqebvq8uneqjner7frafbef4I2_017OfFrafbefPnyyonpxR0_AF2_16VFrafbefPnyyonpxR
+.weak b__MGPA7naqebvq8uneqjner7frafbef4I2_017OfFrafbefPnyyonpxR0_AF2_16VFrafbefPnyyonpxR
 .type b__MGPA7naqebvq8uneqjner7frafbef4I2_017OfFrafbefPnyyonpxR0_AF2_16VFrafbefPnyyonpxR,%object
 b__MGPA7naqebvq8uneqjner7frafbef4I2_017OfFrafbefPnyyonpxR0_AF2_16VFrafbefPnyyonpxR:
 .space __SIZEOF_POINTER__
@@ -508,7 +508,7 @@
 b__MA7naqebvq8uneqjner7frafbef4I2_011OaUjFrafbef20_uvqy_trgFrafbefYvfgRCAF_4uvqy4onfr4I1_08OaUjOnfrREXAF0_6CnepryRCF9_AFg3__18shapgvbaVSiEF9_RRR:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFT_RRECAF_15__gerr_raq_abqrVFG_RREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFT_RRECAF_15__gerr_raq_abqrVFG_RREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFT_RRECAF_15__gerr_raq_abqrVFG_RREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFT_RRECAF_15__gerr_raq_abqrVFG_RREXG_:
 nop
@@ -523,7 +523,7 @@
 b__MGPA7naqebvq8uneqjner7frafbef4I2_019OcUjFrafbefPnyyonpxR0_AF_4uvqy4onfr4I1_05VOnfrR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq8uneqjner21jevgrRzorqqrqGbCnepryVwYAF0_8ZDSynibeR1RRRvEXAF0_12ZDQrfpevcgbeVG_KG0_RRRCAF0_6CnepryRzz
+.weak b__MA7naqebvq8uneqjner21jevgrRzorqqrqGbCnepryVwYAF0_8ZDSynibeR1RRRvEXAF0_12ZDQrfpevcgbeVG_KG0_RRRCAF0_6CnepryRzz
 .type b__MA7naqebvq8uneqjner21jevgrRzorqqrqGbCnepryVwYAF0_8ZDSynibeR1RRRvEXAF0_12ZDQrfpevcgbeVG_KG0_RRRCAF0_6CnepryRzz,%function
 b__MA7naqebvq8uneqjner21jevgrRzorqqrqGbCnepryVwYAF0_8ZDSynibeR1RRRvEXAF0_12ZDQrfpevcgbeVG_KG0_RRRCAF0_6CnepryRzz:
 nop
@@ -543,7 +543,7 @@
 b__MA7naqebvq8uneqjner7frafbef4I2_011OcUjFrafbef20_uvqy_trgFrafbefYvfgRCAF0_10VVagresnprRCAF0_7qrgnvyf16UvqyVafgehzragbeRAFg3__18shapgvbaVSiEXAF0_8uvqy_irpVAF1_4I1_010FrafbeVasbRRRRRR:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRP2REXFU_
+.weak b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRP2REXFU_
 .type b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRP2REXFU_,%function
 b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRP2REXFU_:
 nop
@@ -558,7 +558,7 @@
 b__MA7naqebvq8uneqjner7frafbef4I2_011OcUjFrafbef16frgBcrengvbaZbqrRAF1_4I1_013BcrengvbaZbqrR:
 nop
 .text
-.globl b__MAXFg3__18shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF7_F7_F7_CAF_6irpgbeVCiAF_9nyybpngbeVF9_RRRRRRpyRF5_F7_F7_F7_F7_FQ_
+.weak b__MAXFg3__18shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF7_F7_F7_CAF_6irpgbeVCiAF_9nyybpngbeVF9_RRRRRRpyRF5_F7_F7_F7_F7_FQ_
 .type b__MAXFg3__18shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF7_F7_F7_CAF_6irpgbeVCiAF_9nyybpngbeVF9_RRRRRRpyRF5_F7_F7_F7_F7_FQ_,%function
 b__MAXFg3__18shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF7_F7_F7_CAF_6irpgbeVCiAF_9nyybpngbeVF9_RRRRRRpyRF5_F7_F7_F7_F7_FQ_:
 nop
@@ -598,7 +598,7 @@
 b__MA7naqebvq8uneqjner7frafbef4I2_019OcUjFrafbefPnyyonpxP1REXAF_2fcVAF0_7VOvaqreRRR:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_:
 nop
@@ -633,7 +633,7 @@
 b__MA7naqebvq8uneqjner7frafbef4I2_011OcUjFrafbef4cvatRi:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_:
 nop
@@ -668,12 +668,12 @@
 b__MA7naqebvq8uneqjner7frafbef4I2_08VFrafbef17ertvfgreNfFreivprREXAFg3__112onfvp_fgevatVpAF4_11pune_genvgfVpRRAF4_9nyybpngbeVpRRRR:
 nop
 .data
-.globl b__MGIA7naqebvq8uneqjner7frafbef4I2_09OfFrafbefR
+.weak b__MGIA7naqebvq8uneqjner7frafbef4I2_09OfFrafbefR
 .type b__MGIA7naqebvq8uneqjner7frafbef4I2_09OfFrafbefR,%object
 b__MGIA7naqebvq8uneqjner7frafbef4I2_09OfFrafbefR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFR_RRECAF_15__gerr_raq_abqrVFE_RREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFR_RRECAF_15__gerr_raq_abqrVFE_RREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFR_RRECAF_15__gerr_raq_abqrVFE_RREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFR_RRECAF_15__gerr_raq_abqrVFE_RREXG_:
 nop
@@ -688,7 +688,7 @@
 b__MGGA7naqebvq8uneqjner7frafbef4I2_019OaUjFrafbefPnyyonpxR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIA7naqebvq8uneqjner7frafbef4I2_017OfFrafbefPnyyonpxR
+.weak b__MGIA7naqebvq8uneqjner7frafbef4I2_017OfFrafbefPnyyonpxR
 .type b__MGIA7naqebvq8uneqjner7frafbef4I2_017OfFrafbefPnyyonpxR,%object
 b__MGIA7naqebvq8uneqjner7frafbef4I2_017OfFrafbefPnyyonpxR:
 .space __SIZEOF_POINTER__
@@ -703,7 +703,7 @@
 b__MA7naqebvq8uneqjner7frafbef4I2_08VFrafbef12trgUnfuPunvaRAFg3__18shapgvbaVSiEXAF0_8uvqy_irpVAF0_10uvqy_neenlVuYz32RWRRRRRRRR:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRR:
 nop
@@ -743,7 +743,7 @@
 b__MGPA7naqebvq8uneqjner7frafbef4I2_016VFrafbefPnyyonpxR0_AF_4uvqy4onfr4I1_05VOnfrR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_7frafbef4I2_016VFrafbefPnyyonpxRiRRAF_2fcVG_RRF8_
+.weak b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_7frafbef4I2_016VFrafbefPnyyonpxRiRRAF_2fcVG_RRF8_
 .type b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_7frafbef4I2_016VFrafbefPnyyonpxRiRRAF_2fcVG_RRF8_,%function
 b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_7frafbef4I2_016VFrafbefPnyyonpxRiRRAF_2fcVG_RRF8_:
 nop
@@ -818,7 +818,7 @@
 b__MGi0_a24_A7naqebvq8uneqjner7frafbef4I2_019OaUjFrafbefPnyyonpxQ0Ri:
 nop
 .text
-.globl b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
+.weak b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
 .type b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_,%function
 b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_:
 nop
@@ -863,7 +863,7 @@
 b__MA7naqebvq8uneqjner7frafbef4I2_019OaUjFrafbefPnyyonpx31_uvqy_baQlanzvpFrafbefPbaarpgrqRCAF_4uvqy4onfr4I1_08OaUjOnfrREXAF0_6CnepryRCF9_AFg3__18shapgvbaVSiEF9_RRR:
 nop
 .text
-.globl b__MA7naqebvq2fcVAF_8uneqjner7frafbef4I2_016VFrafbefPnyyonpxRRnFRBF5_
+.weak b__MA7naqebvq2fcVAF_8uneqjner7frafbef4I2_016VFrafbefPnyyonpxRRnFRBF5_
 .type b__MA7naqebvq2fcVAF_8uneqjner7frafbef4I2_016VFrafbefPnyyonpxRRnFRBF5_,%function
 b__MA7naqebvq2fcVAF_8uneqjner7frafbef4I2_016VFrafbefPnyyonpxRRnFRBF5_:
 nop
@@ -908,7 +908,7 @@
 b__MGPA7naqebvq8uneqjner7frafbef4I2_011OcUjFrafbefR0_AF2_8VFrafbefR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_7frafbef4I2_019OcUjFrafbefPnyyonpxRAF4_16VFrafbefPnyyonpxRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_7frafbef4I2_019OcUjFrafbefPnyyonpxRAF4_16VFrafbefPnyyonpxRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo
 .type b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_7frafbef4I2_019OcUjFrafbefPnyyonpxRAF4_16VFrafbefPnyyonpxRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_7frafbef4I2_019OcUjFrafbefPnyyonpxRAF4_16VFrafbefPnyyonpxRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo:
 nop
diff --git a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_128.S b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_128.S
index 761f752..2335a41 100644
--- a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_128.S
+++ b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_128.S
@@ -3,7 +3,7 @@
 .data
 .p2align 4
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_8tencuvpf11ohssredhrhr4I1_022VTencuvpOhssreCebqhpreRAF_4uvqy4onfr4I1_05VOnfrRAF5_25OcUjTencuvpOhssreCebqhpreRRRAF0_6ErgheaVAF_2fcVG_RRRRAFQ_VG0_RRCXpo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_8tencuvpf11ohssredhrhr4I1_022VTencuvpOhssreCebqhpreRAF_4uvqy4onfr4I1_05VOnfrRAF5_25OcUjTencuvpOhssreCebqhpreRRRAF0_6ErgheaVAF_2fcVG_RRRRAFQ_VG0_RRCXpo
 .type b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_8tencuvpf11ohssredhrhr4I1_022VTencuvpOhssreCebqhpreRAF_4uvqy4onfr4I1_05VOnfrRAF5_25OcUjTencuvpOhssreCebqhpreRRRAF0_6ErgheaVAF_2fcVG_RRRRAFQ_VG0_RRCXpo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_8tencuvpf11ohssredhrhr4I1_022VTencuvpOhssreCebqhpreRAF_4uvqy4onfr4I1_05VOnfrRAF5_25OcUjTencuvpOhssreCebqhpreRRRAF0_6ErgheaVAF_2fcVG_RRRRAFQ_VG0_RRCXpo:
 nop
@@ -83,7 +83,7 @@
 b__MA7naqebvq8uneqjner8tencuvpf11ohssredhrhr4I1_025OcUjTencuvpOhssreCebqhpre17frgFvqronaqFgernzREXAF0_11uvqy_unaqyrR:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRP2REXFU_
+.weak b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRP2REXFU_
 .type b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRP2REXFU_,%function
 b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRP2REXFU_:
 nop
@@ -113,7 +113,7 @@
 b__MGIA7naqebvq8uneqjner8tencuvpf11ohssredhrhr4I1_020OcUjCebqhpreYvfgrareR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_8tencuvpf11ohssredhrhr4I1_025OcUjTencuvpOhssreCebqhpreRAF5_22VTencuvpOhssreCebqhpreRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFO_11pune_genvgfVpRRAFO_9nyybpngbeVpRRRRoo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_8tencuvpf11ohssredhrhr4I1_025OcUjTencuvpOhssreCebqhpreRAF5_22VTencuvpOhssreCebqhpreRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFO_11pune_genvgfVpRRAFO_9nyybpngbeVpRRRRoo
 .type b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_8tencuvpf11ohssredhrhr4I1_025OcUjTencuvpOhssreCebqhpreRAF5_22VTencuvpOhssreCebqhpreRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFO_11pune_genvgfVpRRAFO_9nyybpngbeVpRRRRoo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_8tencuvpf11ohssredhrhr4I1_025OcUjTencuvpOhssreCebqhpreRAF5_22VTencuvpOhssreCebqhpreRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFO_11pune_genvgfVpRRAFO_9nyybpngbeVpRRRRoo:
 nop
@@ -178,7 +178,7 @@
 b__MA7naqebvq8uneqjner8tencuvpf11ohssredhrhr4I1_025OcUjTencuvpOhssreCebqhpre7pbaarpgREXAF_2fcVAF3_17VCebqhpreYvfgrareRRRvoAFg3__18shapgvbaVSivEXAF3_22VTencuvpOhssreCebqhpre17DhrhrOhssreBhgchgRRRR:
 nop
 .text
-.globl b__MAXFg3__18shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF7_F7_F7_CAF_6irpgbeVCiAF_9nyybpngbeVF9_RRRRRRpyRF5_F7_F7_F7_F7_FQ_
+.weak b__MAXFg3__18shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF7_F7_F7_CAF_6irpgbeVCiAF_9nyybpngbeVF9_RRRRRRpyRF5_F7_F7_F7_F7_FQ_
 .type b__MAXFg3__18shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF7_F7_F7_CAF_6irpgbeVCiAF_9nyybpngbeVF9_RRRRRRpyRF5_F7_F7_F7_F7_FQ_,%function
 b__MAXFg3__18shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF7_F7_F7_CAF_6irpgbeVCiAF_9nyybpngbeVF9_RRRRRRpyRF5_F7_F7_F7_F7_FQ_:
 nop
@@ -208,7 +208,7 @@
 b__MA7naqebvq8uneqjner8tencuvpf11ohssredhrhr4I1_025OcUjTencuvpOhssreCebqhpre12frgNflapZbqrRo:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFR_RRECAF_15__gerr_raq_abqrVFE_RREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFR_RRECAF_15__gerr_raq_abqrVFE_RREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFR_RRECAF_15__gerr_raq_abqrVFE_RREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFR_RRECAF_15__gerr_raq_abqrVFE_RREXG_:
 nop
@@ -233,17 +233,17 @@
 b__MA7naqebvq8uneqjner8tencuvpf11ohssredhrhr4I1_025OcUjTencuvpOhssreCebqhpre25_uvqy_trgYnfgDhrhrqOhssreRCAF0_10VVagresnprRCAF0_7qrgnvyf16UvqyVafgehzragbeRAFg3__18shapgvbaVSivEXAF0_5zrqvn4I1_09NajOhssreREXAF0_11uvqy_unaqyrREXAF0_10uvqy_neenlVsYz16RWRRRRRR:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRR:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRR:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_8uneqjner27uvqy_ovaqre_qrngu_erpvcvragRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_
+.weak b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_8uneqjner27uvqy_ovaqre_qrngu_erpvcvragRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_
 .type b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_8uneqjner27uvqy_ovaqre_qrngu_erpvcvragRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_,%function
 b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_8uneqjner27uvqy_ovaqre_qrngu_erpvcvragRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_:
 nop
@@ -273,7 +273,7 @@
 b__MA7naqebvq8uneqjner8tencuvpf11ohssredhrhr4I1_025OcUjTencuvpOhssreCebqhpre23_uvqy_frgFvqronaqFgernzRCAF0_10VVagresnprRCAF0_7qrgnvyf16UvqyVafgehzragbeREXAF0_11uvqy_unaqyrR:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFT_RRECAF_15__gerr_raq_abqrVFG_RREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFT_RRECAF_15__gerr_raq_abqrVFG_RREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFT_RRECAF_15__gerr_raq_abqrVFG_RREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFT_RRECAF_15__gerr_raq_abqrVFG_RREXG_:
 nop
@@ -373,7 +373,7 @@
 b__MA7naqebvq8uneqjner8tencuvpf11ohssredhrhr4I1_025OaUjTencuvpOhssreCebqhpre21_uvqy_trgPbafhzreAnzrRCAF_4uvqy4onfr4I1_08OaUjOnfrREXAF0_6CnepryRCFN_AFg3__18shapgvbaVSiEFN_RRR:
 nop
 .data
-.globl b__MGPA7naqebvq8uneqjner8tencuvpf11ohssredhrhr4I1_018OfCebqhpreYvfgrareR0_AF3_17VCebqhpreYvfgrareR
+.weak b__MGPA7naqebvq8uneqjner8tencuvpf11ohssredhrhr4I1_018OfCebqhpreYvfgrareR0_AF3_17VCebqhpreYvfgrareR
 .type b__MGPA7naqebvq8uneqjner8tencuvpf11ohssredhrhr4I1_018OfCebqhpreYvfgrareR0_AF3_17VCebqhpreYvfgrareR,%object
 b__MGPA7naqebvq8uneqjner8tencuvpf11ohssredhrhr4I1_018OfCebqhpreYvfgrareR0_AF3_17VCebqhpreYvfgrareR:
 .space __SIZEOF_POINTER__
@@ -388,7 +388,7 @@
 b__MA7naqebvq8uneqjner8tencuvpf11ohssredhrhr4I1_022VTencuvpOhssreCebqhpre14vagresnprPunvaRAFg3__18shapgvbaVSiEXAF0_8uvqy_irpVAF0_11uvqy_fgevatRRRRRR:
 nop
 .text
-.globl b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
+.weak b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
 .type b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_,%function
 b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_:
 nop
@@ -413,7 +413,7 @@
 b__MA7naqebvq8uneqjner8tencuvpf11ohssredhrhr4I1_025OcUjTencuvpOhssreCebqhpreP1REXAF_2fcVAF0_7VOvaqreRRR:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_:
 nop
@@ -523,7 +523,7 @@
 b__MA7naqebvq8uneqjner8tencuvpf11ohssredhrhr4I1_020OaUjCebqhpreYvfgrareQ2Ri:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_8tencuvpf11ohssredhrhr4I1_017VCebqhpreYvfgrareRAF4_20OcUjCebqhpreYvfgrareRAF4_20OaUjCebqhpreYvfgrareRRRAF_2fcVG_RREXAF8_VAF0_7VOvaqreRRR
+.weak b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_8tencuvpf11ohssredhrhr4I1_017VCebqhpreYvfgrareRAF4_20OcUjCebqhpreYvfgrareRAF4_20OaUjCebqhpreYvfgrareRRRAF_2fcVG_RREXAF8_VAF0_7VOvaqreRRR
 .type b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_8tencuvpf11ohssredhrhr4I1_017VCebqhpreYvfgrareRAF4_20OcUjCebqhpreYvfgrareRAF4_20OaUjCebqhpreYvfgrareRRRAF_2fcVG_RREXAF8_VAF0_7VOvaqreRRR,%function
 b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_8tencuvpf11ohssredhrhr4I1_017VCebqhpreYvfgrareRAF4_20OcUjCebqhpreYvfgrareRAF4_20OaUjCebqhpreYvfgrareRRRAF_2fcVG_RREXAF8_VAF0_7VOvaqreRRR:
 nop
@@ -543,7 +543,7 @@
 b__MA7naqebvq8uneqjner8tencuvpf11ohssredhrhr4I1_025OcUjTencuvpOhssreCebqhpre21frgUNYVafgehzragngvbaRi:
 nop
 .data
-.globl b__MGIA7naqebvq8uneqjner8tencuvpf11ohssredhrhr4I1_023OfTencuvpOhssreCebqhpreR
+.weak b__MGIA7naqebvq8uneqjner8tencuvpf11ohssredhrhr4I1_023OfTencuvpOhssreCebqhpreR
 .type b__MGIA7naqebvq8uneqjner8tencuvpf11ohssredhrhr4I1_023OfTencuvpOhssreCebqhpreR,%object
 b__MGIA7naqebvq8uneqjner8tencuvpf11ohssredhrhr4I1_023OfTencuvpOhssreCebqhpreR:
 .space __SIZEOF_POINTER__
@@ -733,7 +733,7 @@
 b__MA7naqebvq8uneqjner8tencuvpf11ohssredhrhr4I1_025OcUjTencuvpOhssreCebqhpre12trgUnfuPunvaRAFg3__18shapgvbaVSiEXAF0_8uvqy_irpVAF0_10uvqy_neenlVuYz32RWRRRRRRRR:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_:
 nop
@@ -828,7 +828,7 @@
 b__MA7naqebvq8uneqjner8tencuvpf11ohssredhrhr4I1_025OaUjTencuvpOhssreCebqhpre21_uvqy_nyybjNyybpngvbaRCAF_4uvqy4onfr4I1_08OaUjOnfrREXAF0_6CnepryRCFN_AFg3__18shapgvbaVSiEFN_RRR:
 nop
 .text
-.globl b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
+.weak b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
 .type b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_,%function
 b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_:
 nop
@@ -958,7 +958,7 @@
 b__MA7naqebvq8uneqjner8tencuvpf11ohssredhrhr4I1_020OaUjCebqhpreYvfgrare4cvatRi:
 nop
 .data
-.globl b__MGIA7naqebvq8uneqjner8tencuvpf11ohssredhrhr4I1_018OfCebqhpreYvfgrareR
+.weak b__MGIA7naqebvq8uneqjner8tencuvpf11ohssredhrhr4I1_018OfCebqhpreYvfgrareR
 .type b__MGIA7naqebvq8uneqjner8tencuvpf11ohssredhrhr4I1_018OfCebqhpreYvfgrareR,%object
 b__MGIA7naqebvq8uneqjner8tencuvpf11ohssredhrhr4I1_018OfCebqhpreYvfgrareR:
 .space __SIZEOF_POINTER__
@@ -1028,7 +1028,7 @@
 b__MA7naqebvq8uneqjner8tencuvpf11ohssredhrhr4I1_025OcUjTencuvpOhssreCebqhpre19_uvqy_qrdhrhrOhssreRCAF0_10VVagresnprRCAF0_7qrgnvyf16UvqyVafgehzragbeRwwAF1_6pbzzba4I1_011CvkrySbezngRwoAFg3__18shapgvbaVSivvEXAF0_11uvqy_unaqyrREXAF3_22VTencuvpOhssreCebqhpre22SenzrRiragUvfgbelQrygnRRRR:
 nop
 .data
-.globl b__MGPA7naqebvq8uneqjner8tencuvpf11ohssredhrhr4I1_023OfTencuvpOhssreCebqhpreR0_AF3_22VTencuvpOhssreCebqhpreR
+.weak b__MGPA7naqebvq8uneqjner8tencuvpf11ohssredhrhr4I1_023OfTencuvpOhssreCebqhpreR0_AF3_22VTencuvpOhssreCebqhpreR
 .type b__MGPA7naqebvq8uneqjner8tencuvpf11ohssredhrhr4I1_023OfTencuvpOhssreCebqhpreR0_AF3_22VTencuvpOhssreCebqhpreR,%object
 b__MGPA7naqebvq8uneqjner8tencuvpf11ohssredhrhr4I1_023OfTencuvpOhssreCebqhpreR0_AF3_22VTencuvpOhssreCebqhpreR:
 .space __SIZEOF_POINTER__
@@ -1068,7 +1068,7 @@
 b__MA7naqebvq8uneqjner8tencuvpf11ohssredhrhr4I1_025OcUjTencuvpOhssreCebqhpre12pnapryOhssreRvEXAF0_11uvqy_unaqyrR:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_8tencuvpf11ohssredhrhr4I1_017VCebqhpreYvfgrareRAF_4uvqy4onfr4I1_05VOnfrRAF5_20OcUjCebqhpreYvfgrareRRRAF0_6ErgheaVAF_2fcVG_RRRRAFQ_VG0_RRCXpo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_8tencuvpf11ohssredhrhr4I1_017VCebqhpreYvfgrareRAF_4uvqy4onfr4I1_05VOnfrRAF5_20OcUjCebqhpreYvfgrareRRRAF0_6ErgheaVAF_2fcVG_RRRRAFQ_VG0_RRCXpo
 .type b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_8tencuvpf11ohssredhrhr4I1_017VCebqhpreYvfgrareRAF_4uvqy4onfr4I1_05VOnfrRAF5_20OcUjCebqhpreYvfgrareRRRAF0_6ErgheaVAF_2fcVG_RRRRAFQ_VG0_RRCXpo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_8tencuvpf11ohssredhrhr4I1_017VCebqhpreYvfgrareRAF_4uvqy4onfr4I1_05VOnfrRAF5_20OcUjCebqhpreYvfgrareRRRAF0_6ErgheaVAF_2fcVG_RRRRAFQ_VG0_RRCXpo:
 nop
@@ -1118,7 +1118,7 @@
 b__MA7naqebvq8uneqjner8tencuvpf11ohssredhrhr4I1_020OcUjCebqhpreYvfgrare16baOhssreEryrnfrqRi:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_8tencuvpf11ohssredhrhr4I1_017VCebqhpreYvfgrareRiRRAF_2fcVG_RRF9_
+.weak b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_8tencuvpf11ohssredhrhr4I1_017VCebqhpreYvfgrareRiRRAF_2fcVG_RRF9_
 .type b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_8tencuvpf11ohssredhrhr4I1_017VCebqhpreYvfgrareRiRRAF_2fcVG_RRF9_,%function
 b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_8tencuvpf11ohssredhrhr4I1_017VCebqhpreYvfgrareRiRRAF_2fcVG_RRF9_:
 nop
@@ -1128,12 +1128,12 @@
 b__MA7naqebvq8uneqjner8tencuvpf11ohssredhrhr4I1_025OcUjTencuvpOhssreCebqhpre17frgQrdhrhrGvzrbhgRy:
 nop
 .text
-.globl b__MAFg3__16irpgbeVCiAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_
+.weak b__MAFg3__16irpgbeVCiAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_
 .type b__MAFg3__16irpgbeVCiAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_,%function
 b__MAFg3__16irpgbeVCiAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_8tencuvpf11ohssredhrhr4I1_020OcUjCebqhpreYvfgrareRAF5_17VCebqhpreYvfgrareRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFO_11pune_genvgfVpRRAFO_9nyybpngbeVpRRRRoo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_8tencuvpf11ohssredhrhr4I1_020OcUjCebqhpreYvfgrareRAF5_17VCebqhpreYvfgrareRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFO_11pune_genvgfVpRRAFO_9nyybpngbeVpRRRRoo
 .type b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_8tencuvpf11ohssredhrhr4I1_020OcUjCebqhpreYvfgrareRAF5_17VCebqhpreYvfgrareRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFO_11pune_genvgfVpRRAFO_9nyybpngbeVpRRRRoo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_8tencuvpf11ohssredhrhr4I1_020OcUjCebqhpreYvfgrareRAF5_17VCebqhpreYvfgrareRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFO_11pune_genvgfVpRRAFO_9nyybpngbeVpRRRRoo:
 nop
diff --git a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_129.S b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_129.S
index c53dc29..6557a32 100644
--- a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_129.S
+++ b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_129.S
@@ -3,7 +3,7 @@
 .data
 .p2align 4
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_8tencuvpf11ohssredhrhr4I2_025OcUjTencuvpOhssreCebqhpreRAF5_22VTencuvpOhssreCebqhpreRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFO_11pune_genvgfVpRRAFO_9nyybpngbeVpRRRRoo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_8tencuvpf11ohssredhrhr4I2_025OcUjTencuvpOhssreCebqhpreRAF5_22VTencuvpOhssreCebqhpreRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFO_11pune_genvgfVpRRAFO_9nyybpngbeVpRRRRoo
 .type b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_8tencuvpf11ohssredhrhr4I2_025OcUjTencuvpOhssreCebqhpreRAF5_22VTencuvpOhssreCebqhpreRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFO_11pune_genvgfVpRRAFO_9nyybpngbeVpRRRRoo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_8tencuvpf11ohssredhrhr4I2_025OcUjTencuvpOhssreCebqhpreRAF5_22VTencuvpOhssreCebqhpreRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFO_11pune_genvgfVpRRAFO_9nyybpngbeVpRRRRoo:
 nop
@@ -63,7 +63,7 @@
 b__MA7naqebvq8uneqjner8tencuvpf11ohssredhrhr4I2_017VCebqhpreYvfgrare19vagresnprQrfpevcgbeRAFg3__18shapgvbaVSiEXAF0_11uvqy_fgevatRRRR:
 nop
 .data
-.globl b__MGIA7naqebvq8uneqjner8tencuvpf11ohssredhrhr4I2_018OfCebqhpreYvfgrareR
+.weak b__MGIA7naqebvq8uneqjner8tencuvpf11ohssredhrhr4I2_018OfCebqhpreYvfgrareR
 .type b__MGIA7naqebvq8uneqjner8tencuvpf11ohssredhrhr4I2_018OfCebqhpreYvfgrareR,%object
 b__MGIA7naqebvq8uneqjner8tencuvpf11ohssredhrhr4I2_018OfCebqhpreYvfgrareR:
 .space __SIZEOF_POINTER__
@@ -173,7 +173,7 @@
 b__MA7naqebvq8uneqjner8tencuvpf11ohssredhrhr4I2_025OcUjTencuvpOhssreCebqhpre5dhrelRvAFg3__18shapgvbaVSivvRRR:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_8tencuvpf11ohssredhrhr4I2_020OcUjCebqhpreYvfgrareRAF5_17VCebqhpreYvfgrareRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFO_11pune_genvgfVpRRAFO_9nyybpngbeVpRRRRoo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_8tencuvpf11ohssredhrhr4I2_020OcUjCebqhpreYvfgrareRAF5_17VCebqhpreYvfgrareRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFO_11pune_genvgfVpRRAFO_9nyybpngbeVpRRRRoo
 .type b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_8tencuvpf11ohssredhrhr4I2_020OcUjCebqhpreYvfgrareRAF5_17VCebqhpreYvfgrareRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFO_11pune_genvgfVpRRAFO_9nyybpngbeVpRRRRoo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_8tencuvpf11ohssredhrhr4I2_020OcUjCebqhpreYvfgrareRAF5_17VCebqhpreYvfgrareRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFO_11pune_genvgfVpRRAFO_9nyybpngbeVpRRRRoo:
 nop
@@ -263,7 +263,7 @@
 b__MA7naqebvq8uneqjner8tencuvpf11ohssredhrhr4I2_020OcUjCebqhpreYvfgrare15baYnfgFgebatErsRCXi:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_8tencuvpf11ohssredhrhr4I2_017VCebqhpreYvfgrareRiRRAF_2fcVG_RRF9_
+.weak b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_8tencuvpf11ohssredhrhr4I2_017VCebqhpreYvfgrareRiRRAF_2fcVG_RRF9_
 .type b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_8tencuvpf11ohssredhrhr4I2_017VCebqhpreYvfgrareRiRRAF_2fcVG_RRF9_,%function
 b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_8tencuvpf11ohssredhrhr4I2_017VCebqhpreYvfgrareRiRRAF_2fcVG_RRF9_:
 nop
@@ -273,7 +273,7 @@
 b__MA7naqebvq8uneqjner8tencuvpf11ohssredhrhr4I2_025OcUjTencuvpOhssreCebqhpre23_uvqy_frgQrdhrhrGvzrbhgRCAF0_10VVagresnprRCAF0_7qrgnvyf16UvqyVafgehzragbeRy:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFT_RRECAF_15__gerr_raq_abqrVFG_RREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFT_RRECAF_15__gerr_raq_abqrVFG_RREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFT_RRECAF_15__gerr_raq_abqrVFG_RREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFT_RRECAF_15__gerr_raq_abqrVFG_RREXG_:
 nop
@@ -348,7 +348,7 @@
 b__MA7naqebvq8uneqjner8tencuvpf11ohssredhrhr4I2_020OcUjCebqhpreYvfgrare21frgUNYVafgehzragngvbaRi:
 nop
 .text
-.globl b__MAFg3__16irpgbeVCiAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_
+.weak b__MAFg3__16irpgbeVCiAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_
 .type b__MAFg3__16irpgbeVCiAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_,%function
 b__MAFg3__16irpgbeVCiAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_:
 nop
@@ -358,7 +358,7 @@
 b__MGGA7naqebvq8uneqjner8tencuvpf11ohssredhrhr4I2_025OaUjTencuvpOhssreCebqhpreR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIA7naqebvq8uneqjner8tencuvpf11ohssredhrhr4I2_023OfTencuvpOhssreCebqhpreR
+.weak b__MGIA7naqebvq8uneqjner8tencuvpf11ohssredhrhr4I2_023OfTencuvpOhssreCebqhpreR
 .type b__MGIA7naqebvq8uneqjner8tencuvpf11ohssredhrhr4I2_023OfTencuvpOhssreCebqhpreR,%object
 b__MGIA7naqebvq8uneqjner8tencuvpf11ohssredhrhr4I2_023OfTencuvpOhssreCebqhpreR:
 .space __SIZEOF_POINTER__
@@ -373,7 +373,7 @@
 b__MA7naqebvq8uneqjner8tencuvpf11ohssredhrhr4I2_022VTencuvpOhssreCebqhpre5qrohtREXAF0_11uvqy_unaqyrREXAF0_8uvqy_irpVAF0_11uvqy_fgevatRRR:
 nop
 .data
-.globl b__MGPA7naqebvq8uneqjner8tencuvpf11ohssredhrhr4I2_023OfTencuvpOhssreCebqhpreR0_AF3_22VTencuvpOhssreCebqhpreR
+.weak b__MGPA7naqebvq8uneqjner8tencuvpf11ohssredhrhr4I2_023OfTencuvpOhssreCebqhpreR0_AF3_22VTencuvpOhssreCebqhpreR
 .type b__MGPA7naqebvq8uneqjner8tencuvpf11ohssredhrhr4I2_023OfTencuvpOhssreCebqhpreR0_AF3_22VTencuvpOhssreCebqhpreR,%object
 b__MGPA7naqebvq8uneqjner8tencuvpf11ohssredhrhr4I2_023OfTencuvpOhssreCebqhpreR0_AF3_22VTencuvpOhssreCebqhpreR:
 .space __SIZEOF_POINTER__
@@ -433,7 +433,7 @@
 b__MA7naqebvq8uneqjner8tencuvpf11ohssredhrhr4I2_025OcUjTencuvpOhssreCebqhpre22_uvqy_qrgnpuArkgOhssreRCAF0_10VVagresnprRCAF0_7qrgnvyf16UvqyVafgehzragbeRAFg3__18shapgvbaVSiAF3_6FgnghfREXAF1_6pbzzba4I1_214UneqjnerOhssreREXAF0_11uvqy_unaqyrRRRR:
 nop
 .text
-.globl b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
+.weak b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
 .type b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_,%function
 b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_:
 nop
@@ -443,7 +443,7 @@
 b__MGi0_a40_A7naqebvq8uneqjner8tencuvpf11ohssredhrhr4I2_025OcUjTencuvpOhssreCebqhpre15baYnfgFgebatErsRCXi:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_8tencuvpf11ohssredhrhr4I2_017VCebqhpreYvfgrareRAF_4uvqy4onfr4I1_05VOnfrRAF5_20OcUjCebqhpreYvfgrareRRRAF0_6ErgheaVAF_2fcVG_RRRRAFQ_VG0_RRCXpo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_8tencuvpf11ohssredhrhr4I2_017VCebqhpreYvfgrareRAF_4uvqy4onfr4I1_05VOnfrRAF5_20OcUjCebqhpreYvfgrareRRRAF0_6ErgheaVAF_2fcVG_RRRRAFQ_VG0_RRCXpo
 .type b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_8tencuvpf11ohssredhrhr4I2_017VCebqhpreYvfgrareRAF_4uvqy4onfr4I1_05VOnfrRAF5_20OcUjCebqhpreYvfgrareRRRAF0_6ErgheaVAF_2fcVG_RRRRAFQ_VG0_RRCXpo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_8tencuvpf11ohssredhrhr4I2_017VCebqhpreYvfgrareRAF_4uvqy4onfr4I1_05VOnfrRAF5_20OcUjCebqhpreYvfgrareRRRAF0_6ErgheaVAF_2fcVG_RRRRAFQ_VG0_RRCXpo:
 nop
@@ -483,7 +483,7 @@
 b__MA7naqebvq8uneqjner8tencuvpf11ohssredhrhr4I2_025OaUjTencuvpOhssreCebqhpre21_uvqy_trgPbafhzreAnzrRCAF_4uvqy4onfr4I1_08OaUjOnfrREXAF0_6CnepryRCFN_AFg3__18shapgvbaVSiEFN_RRR:
 nop
 .data
-.globl b__MGPA7naqebvq8uneqjner8tencuvpf11ohssredhrhr4I2_018OfCebqhpreYvfgrareR0_AF3_17VCebqhpreYvfgrareR
+.weak b__MGPA7naqebvq8uneqjner8tencuvpf11ohssredhrhr4I2_018OfCebqhpreYvfgrareR0_AF3_17VCebqhpreYvfgrareR
 .type b__MGPA7naqebvq8uneqjner8tencuvpf11ohssredhrhr4I2_018OfCebqhpreYvfgrareR0_AF3_17VCebqhpreYvfgrareR,%object
 b__MGPA7naqebvq8uneqjner8tencuvpf11ohssredhrhr4I2_018OfCebqhpreYvfgrareR0_AF3_17VCebqhpreYvfgrareR:
 .space __SIZEOF_POINTER__
@@ -598,7 +598,7 @@
 b__MA7naqebvq8uneqjner8tencuvpf11ohssredhrhr4I2_025OcUjTencuvpOhssreCebqhpre19frgTrarengvbaAhzoreRw:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRP2REXFU_
+.weak b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRP2REXFU_
 .type b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRP2REXFU_,%function
 b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRP2REXFU_:
 nop
@@ -633,7 +633,7 @@
 b__MA7naqebvq8uneqjner8tencuvpf11ohssredhrhr4I2_018OfCebqhpreYvfgrareP1RAF_2fcVAF3_17VCebqhpreYvfgrareRRR:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_8tencuvpf11ohssredhrhr4I2_022VTencuvpOhssreCebqhpreRAF_4uvqy4onfr4I1_05VOnfrRAF5_25OcUjTencuvpOhssreCebqhpreRRRAF0_6ErgheaVAF_2fcVG_RRRRAFQ_VG0_RRCXpo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_8tencuvpf11ohssredhrhr4I2_022VTencuvpOhssreCebqhpreRAF_4uvqy4onfr4I1_05VOnfrRAF5_25OcUjTencuvpOhssreCebqhpreRRRAF0_6ErgheaVAF_2fcVG_RRRRAFQ_VG0_RRCXpo
 .type b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_8tencuvpf11ohssredhrhr4I2_022VTencuvpOhssreCebqhpreRAF_4uvqy4onfr4I1_05VOnfrRAF5_25OcUjTencuvpOhssreCebqhpreRRRAF0_6ErgheaVAF_2fcVG_RRRRAFQ_VG0_RRCXpo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_8tencuvpf11ohssredhrhr4I2_022VTencuvpOhssreCebqhpreRAF_4uvqy4onfr4I1_05VOnfrRAF5_25OcUjTencuvpOhssreCebqhpreRRRAF0_6ErgheaVAF_2fcVG_RRRRAFQ_VG0_RRCXpo:
 nop
@@ -728,7 +728,7 @@
 b__MA7naqebvq8uneqjner8tencuvpf11ohssredhrhr4I2_025OcUjTencuvpOhssreCebqhpre21frgUNYVafgehzragngvbaRi:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_8tencuvpf11ohssredhrhr4I2_017VCebqhpreYvfgrareRAF4_20OcUjCebqhpreYvfgrareRAF4_20OaUjCebqhpreYvfgrareRRRAF_2fcVG_RREXAF8_VAF0_7VOvaqreRRR
+.weak b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_8tencuvpf11ohssredhrhr4I2_017VCebqhpreYvfgrareRAF4_20OcUjCebqhpreYvfgrareRAF4_20OaUjCebqhpreYvfgrareRRRAF_2fcVG_RREXAF8_VAF0_7VOvaqreRRR
 .type b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_8tencuvpf11ohssredhrhr4I2_017VCebqhpreYvfgrareRAF4_20OcUjCebqhpreYvfgrareRAF4_20OaUjCebqhpreYvfgrareRRRAF_2fcVG_RREXAF8_VAF0_7VOvaqreRRR,%function
 b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_8tencuvpf11ohssredhrhr4I2_017VCebqhpreYvfgrareRAF4_20OcUjCebqhpreYvfgrareRAF4_20OaUjCebqhpreYvfgrareRRRAF_2fcVG_RREXAF8_VAF0_7VOvaqreRRR:
 nop
@@ -753,7 +753,7 @@
 b__MA7naqebvq8uneqjner8tencuvpf11ohssredhrhr4I2_025OcUjTencuvpOhssreCebqhpre16qrgnpuArkgOhssreRAFg3__18shapgvbaVSiAF3_6FgnghfREXAF1_6pbzzba4I1_214UneqjnerOhssreREXAF0_11uvqy_unaqyrRRRR:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_8uneqjner27uvqy_ovaqre_qrngu_erpvcvragRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_
+.weak b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_8uneqjner27uvqy_ovaqre_qrngu_erpvcvragRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_
 .type b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_8uneqjner27uvqy_ovaqre_qrngu_erpvcvragRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_,%function
 b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_8uneqjner27uvqy_ovaqre_qrngu_erpvcvragRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_:
 nop
@@ -853,12 +853,12 @@
 b__MA7naqebvq8uneqjner8tencuvpf11ohssredhrhr4I2_025OcUjTencuvpOhssreCebqhpre17_uvqy_dhrhrOhssreRCAF0_10VVagresnprRCAF0_7qrgnvyf16UvqyVafgehzragbeRvEXAF3_22VTencuvpOhssreCebqhpre16DhrhrOhssreVachgRAFg3__18shapgvbaVSiAF3_6FgnghfREXAFN_17DhrhrOhssreBhgchgRRRR:
 nop
 .text
-.globl b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
+.weak b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
 .type b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_,%function
 b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_:
 nop
@@ -868,17 +868,17 @@
 b__MA7naqebvq8uneqjner8tencuvpf11ohssredhrhr4I2_025OcUjTencuvpOhssreCebqhpre18_uvqy_qrgnpuOhssreRCAF0_10VVagresnprRCAF0_7qrgnvyf16UvqyVafgehzragbeRv:
 nop
 .text
-.globl b__MAXFg3__18shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF7_F7_F7_CAF_6irpgbeVCiAF_9nyybpngbeVF9_RRRRRRpyRF5_F7_F7_F7_F7_FQ_
+.weak b__MAXFg3__18shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF7_F7_F7_CAF_6irpgbeVCiAF_9nyybpngbeVF9_RRRRRRpyRF5_F7_F7_F7_F7_FQ_
 .type b__MAXFg3__18shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF7_F7_F7_CAF_6irpgbeVCiAF_9nyybpngbeVF9_RRRRRRpyRF5_F7_F7_F7_F7_FQ_,%function
 b__MAXFg3__18shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF7_F7_F7_CAF_6irpgbeVCiAF_9nyybpngbeVF9_RRRRRRpyRF5_F7_F7_F7_F7_FQ_:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRR:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRR:
 nop
@@ -953,7 +953,7 @@
 b__MA7naqebvq8uneqjner8tencuvpf11ohssredhrhr4I2_022ernqRzorqqrqSebzCnepryREXAF3_22VTencuvpOhssreCebqhpre19QrdhrhrOhssreBhgchgREXAF0_6CnepryRzz:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFR_RRECAF_15__gerr_raq_abqrVFE_RREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFR_RRECAF_15__gerr_raq_abqrVFE_RREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFR_RRECAF_15__gerr_raq_abqrVFE_RREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFR_RRECAF_15__gerr_raq_abqrVFE_RREXG_:
 nop
@@ -983,7 +983,7 @@
 b__MA7naqebvq8uneqjner8tencuvpf11ohssredhrhr4I2_023OfTencuvpOhssreCebqhpreP1RAF_2fcVAF3_22VTencuvpOhssreCebqhpreRRR:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_:
 nop
diff --git a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_131.S b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_131.S
index f3253f6..292efbe 100644
--- a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_131.S
+++ b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_131.S
@@ -18,7 +18,7 @@
 b__MA7naqebvq20ergevrirUnyVagresnprREXAF_8uneqjner8uvqy_irpVuRR:
 nop
 .text
-.globl b__MA7naqebvq2fcVAF_4uvqy5gbxra4I1_013VGbxraZnantreRRQ2Ri
+.weak b__MA7naqebvq2fcVAF_4uvqy5gbxra4I1_013VGbxraZnantreRRQ2Ri
 .type b__MA7naqebvq2fcVAF_4uvqy5gbxra4I1_013VGbxraZnantreRRQ2Ri,%function
 b__MA7naqebvq2fcVAF_4uvqy5gbxra4I1_013VGbxraZnantreRRQ2Ri:
 nop
diff --git a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_132.S b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_132.S
index 2135ad0..9154d06 100644
--- a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_132.S
+++ b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_132.S
@@ -28,7 +28,7 @@
 b__MA7naqebvq3qie9VbaOhssre6HaybpxRi:
 nop
 .data
-.globl b___rzhgyf_g._MA7naqebvq3cqk3ecp17GuernqYbpnyOhssreVuAF1_30QrsnhygVavgvnyvmngvbaNyybpngbeVuAFg3__19nyybpngbeVuRRRRYz4096RAF1_20GuernqYbpnyVaqrkFybgVYz2RRRR7ohssre_R
+.weak b___rzhgyf_g._MA7naqebvq3cqk3ecp17GuernqYbpnyOhssreVuAF1_30QrsnhygVavgvnyvmngvbaNyybpngbeVuAFg3__19nyybpngbeVuRRRRYz4096RAF1_20GuernqYbpnyVaqrkFybgVYz2RRRR7ohssre_R
 .type b___rzhgyf_g._MA7naqebvq3cqk3ecp17GuernqYbpnyOhssreVuAF1_30QrsnhygVavgvnyvmngvbaNyybpngbeVuAFg3__19nyybpngbeVuRRRRYz4096RAF1_20GuernqYbpnyVaqrkFybgVYz2RRRR7ohssre_R,%object
 b___rzhgyf_g._MA7naqebvq3cqk3ecp17GuernqYbpnyOhssreVuAF1_30QrsnhygVavgvnyvmngvbaNyybpngbeVuAFg3__19nyybpngbeVuRRRRYz4096RAF1_20GuernqYbpnyVaqrkFybgVYz2RRRR7ohssre_R:
 .space __SIZEOF_POINTER__
@@ -53,7 +53,7 @@
 b__MA7naqebvq3qie14CebqhpreOhssreP2RAF_3cqk13PunaaryUnaqyrVYAF2_17PunaaryUnaqyrZbqrR0RRR:
 nop
 .data
-.globl b__MGIA7naqebvq3qie14CebqhpreOhssreR
+.weak b__MGIA7naqebvq3qie14CebqhpreOhssreR
 .type b__MGIA7naqebvq3qie14CebqhpreOhssreR,%object
 b__MGIA7naqebvq3qie14CebqhpreOhssreR:
 .space __SIZEOF_POINTER__
@@ -63,12 +63,12 @@
 b__MGIA7naqebvq3qie13OhssreUhoOnfrR:
 .space __SIZEOF_POINTER__
 .data
-.globl b___rzhgyf_i._MTIMA7naqebvq3cqk3ecp17GuernqYbpnyOhssreVuAF1_30QrsnhygVavgvnyvmngvbaNyybpngbeVuAFg3__19nyybpngbeVuRRRRYz4096RAF1_20GuernqYbpnyVaqrkFybgVYz2RRRR14TrgOhssreThneqRiR12ohssre_thneq
+.weak b___rzhgyf_i._MTIMA7naqebvq3cqk3ecp17GuernqYbpnyOhssreVuAF1_30QrsnhygVavgvnyvmngvbaNyybpngbeVuAFg3__19nyybpngbeVuRRRRYz4096RAF1_20GuernqYbpnyVaqrkFybgVYz2RRRR14TrgOhssreThneqRiR12ohssre_thneq
 .type b___rzhgyf_i._MTIMA7naqebvq3cqk3ecp17GuernqYbpnyOhssreVuAF1_30QrsnhygVavgvnyvmngvbaNyybpngbeVuAFg3__19nyybpngbeVuRRRRYz4096RAF1_20GuernqYbpnyVaqrkFybgVYz2RRRR14TrgOhssreThneqRiR12ohssre_thneq,%object
 b___rzhgyf_i._MTIMA7naqebvq3cqk3ecp17GuernqYbpnyOhssreVuAF1_30QrsnhygVavgvnyvmngvbaNyybpngbeVuAFg3__19nyybpngbeVuRRRRYz4096RAF1_20GuernqYbpnyVaqrkFybgVYz2RRRR14TrgOhssreThneqRiR12ohssre_thneq:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MA7naqebvq3qie12OhssreUhoECP11xPyvragCnguR
+.weak b__MA7naqebvq3qie12OhssreUhoECP11xPyvragCnguR
 .type b__MA7naqebvq3qie12OhssreUhoECP11xPyvragCnguR,%object
 b__MA7naqebvq3qie12OhssreUhoECP11xPyvragCnguR:
 .space __SIZEOF_POINTER__
@@ -93,12 +93,12 @@
 b__MA7naqebvq3qie9VbaOhssreQ1Ri:
 nop
 .data
-.globl b__MGIA7naqebvq3cqk3ecp13PyvragCnlybnqVAF1_20GuernqYbpnyVaqrkFybgVYz2RRRRR
+.weak b__MGIA7naqebvq3cqk3ecp13PyvragCnlybnqVAF1_20GuernqYbpnyVaqrkFybgVYz2RRRRR
 .type b__MGIA7naqebvq3cqk3ecp13PyvragCnlybnqVAF1_20GuernqYbpnyVaqrkFybgVYz2RRRRR,%object
 b__MGIA7naqebvq3cqk3ecp13PyvragCnlybnqVAF1_20GuernqYbpnyVaqrkFybgVYz2RRRRR:
 .space __SIZEOF_POINTER__
 .data
-.globl b___rzhgyf_i._MTIMA7naqebvq3cqk3ecp17GuernqYbpnyOhssreVuAF1_30QrsnhygVavgvnyvmngvbaNyybpngbeVuAFg3__19nyybpngbeVuRRRRYz4096RAF1_20GuernqYbpnyVaqrkFybgVYz0RRRR14TrgOhssreThneqRiR12ohssre_thneq
+.weak b___rzhgyf_i._MTIMA7naqebvq3cqk3ecp17GuernqYbpnyOhssreVuAF1_30QrsnhygVavgvnyvmngvbaNyybpngbeVuAFg3__19nyybpngbeVuRRRRYz4096RAF1_20GuernqYbpnyVaqrkFybgVYz0RRRR14TrgOhssreThneqRiR12ohssre_thneq
 .type b___rzhgyf_i._MTIMA7naqebvq3cqk3ecp17GuernqYbpnyOhssreVuAF1_30QrsnhygVavgvnyvmngvbaNyybpngbeVuAFg3__19nyybpngbeVuRRRRYz4096RAF1_20GuernqYbpnyVaqrkFybgVYz0RRRR14TrgOhssreThneqRiR12ohssre_thneq,%object
 b___rzhgyf_i._MTIMA7naqebvq3cqk3ecp17GuernqYbpnyOhssreVuAF1_30QrsnhygVavgvnyvmngvbaNyybpngbeVuAFg3__19nyybpngbeVuRRRRYz4096RAF1_20GuernqYbpnyVaqrkFybgVYz0RRRR14TrgOhssreThneqRiR12ohssre_thneq:
 .space __SIZEOF_POINTER__
@@ -123,7 +123,7 @@
 b__MA7naqebvq3qie14PbafhzreOhssreP2RAF_3cqk13PunaaryUnaqyrVYAF2_17PunaaryUnaqyrZbqrR0RRR:
 nop
 .data
-.globl b__MGIA7naqebvq3cqk10PyvragOnfrVAF_3qie14PbafhzreOhssreRAF2_13OhssreUhoOnfrRRR
+.weak b__MGIA7naqebvq3cqk10PyvragOnfrVAF_3qie14PbafhzreOhssreRAF2_13OhssreUhoOnfrRRR
 .type b__MGIA7naqebvq3cqk10PyvragOnfrVAF_3qie14PbafhzreOhssreRAF2_13OhssreUhoOnfrRRR,%object
 b__MGIA7naqebvq3cqk10PyvragOnfrVAF_3qie14PbafhzreOhssreRAF2_13OhssreUhoOnfrRRR:
 .space __SIZEOF_POINTER__
@@ -183,7 +183,7 @@
 b__MA7naqebvq3qie14CebqhpreOhssre9CbfgNflapRCX23QieAngvirOhssreZrgnqngnEXAF_3cqk10SvyrUnaqyrVYAF5_14SvyrUnaqyrZbqrR0RRR:
 nop
 .text
-.globl b__MAFg3__16irpgbeVuA7naqebvq3cqk3ecp30QrsnhygVavgvnyvmngvbaNyybpngbeVuAF_9nyybpngbeVuRRRRR6erfvmrRz
+.weak b__MAFg3__16irpgbeVuA7naqebvq3cqk3ecp30QrsnhygVavgvnyvmngvbaNyybpngbeVuAF_9nyybpngbeVuRRRRR6erfvmrRz
 .type b__MAFg3__16irpgbeVuA7naqebvq3cqk3ecp30QrsnhygVavgvnyvmngvbaNyybpngbeVuAF_9nyybpngbeVuRRRRR6erfvmrRz,%function
 b__MAFg3__16irpgbeVuA7naqebvq3cqk3ecp30QrsnhygVavgvnyvmngvbaNyybpngbeVuAF_9nyybpngbeVuRRRRR6erfvmrRz:
 nop
@@ -228,12 +228,12 @@
 b__MA7naqebvq3qie13OhssreUhoOnfrP1REXAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRR:
 nop
 .data
-.globl b___rzhgyf_i._MA7naqebvq3cqk3ecp17GuernqYbpnyOhssreVuAF1_30QrsnhygVavgvnyvmngvbaNyybpngbeVuAFg3__19nyybpngbeVuRRRRYz4096RAF1_20GuernqYbpnyVaqrkFybgVYz0RRRR7ohssre_R
+.weak b___rzhgyf_i._MA7naqebvq3cqk3ecp17GuernqYbpnyOhssreVuAF1_30QrsnhygVavgvnyvmngvbaNyybpngbeVuAFg3__19nyybpngbeVuRRRRYz4096RAF1_20GuernqYbpnyVaqrkFybgVYz0RRRR7ohssre_R
 .type b___rzhgyf_i._MA7naqebvq3cqk3ecp17GuernqYbpnyOhssreVuAF1_30QrsnhygVavgvnyvmngvbaNyybpngbeVuAFg3__19nyybpngbeVuRRRRYz4096RAF1_20GuernqYbpnyVaqrkFybgVYz0RRRR7ohssre_R,%object
 b___rzhgyf_i._MA7naqebvq3cqk3ecp17GuernqYbpnyOhssreVuAF1_30QrsnhygVavgvnyvmngvbaNyybpngbeVuAFg3__19nyybpngbeVuRRRRYz4096RAF1_20GuernqYbpnyVaqrkFybgVYz0RRRR7ohssre_R:
 .space __SIZEOF_POINTER__
 .data
-.globl b___rzhgyf_i._MMA7naqebvq3cqk3ecp17GuernqYbpnyOhssreVuAF1_30QrsnhygVavgvnyvmngvbaNyybpngbeVuAFg3__19nyybpngbeVuRRRRYz4096RAF1_20GuernqYbpnyVaqrkFybgVYz2RRRR14TrgOhssreThneqRiR12ohssre_thneq
+.weak b___rzhgyf_i._MMA7naqebvq3cqk3ecp17GuernqYbpnyOhssreVuAF1_30QrsnhygVavgvnyvmngvbaNyybpngbeVuAFg3__19nyybpngbeVuRRRRYz4096RAF1_20GuernqYbpnyVaqrkFybgVYz2RRRR14TrgOhssreThneqRiR12ohssre_thneq
 .type b___rzhgyf_i._MMA7naqebvq3cqk3ecp17GuernqYbpnyOhssreVuAF1_30QrsnhygVavgvnyvmngvbaNyybpngbeVuAFg3__19nyybpngbeVuRRRRYz4096RAF1_20GuernqYbpnyVaqrkFybgVYz2RRRR14TrgOhssreThneqRiR12ohssre_thneq,%object
 b___rzhgyf_i._MMA7naqebvq3cqk3ecp17GuernqYbpnyOhssreVuAF1_30QrsnhygVavgvnyvmngvbaNyybpngbeVuAFg3__19nyybpngbeVuRRRRYz4096RAF1_20GuernqYbpnyVaqrkFybgVYz2RRRR14TrgOhssreThneqRiR12ohssre_thneq:
 .space __SIZEOF_POINTER__
@@ -243,7 +243,7 @@
 b__MA7naqebvq3qie14PbafhzreOhssre7EryrnfrREXAF_3cqk10SvyrUnaqyrVYAF2_14SvyrUnaqyrZbqrR0RRR:
 nop
 .data
-.globl b__MGIA7naqebvq3qie14PbafhzreOhssreR
+.weak b__MGIA7naqebvq3qie14PbafhzreOhssreR
 .type b__MGIA7naqebvq3qie14PbafhzreOhssreR,%object
 b__MGIA7naqebvq3qie14PbafhzreOhssreR:
 .space __SIZEOF_POINTER__
@@ -283,12 +283,12 @@
 b__MAX7naqebvq3qie13OhssreUhoOnfr13PurpxZrgnqngnRz:
 nop
 .data
-.globl b___rzhgyf_i._MA7naqebvq3cqk3ecp17GuernqYbpnyOhssreVuAF1_30QrsnhygVavgvnyvmngvbaNyybpngbeVuAFg3__19nyybpngbeVuRRRRYz4096RAF1_20GuernqYbpnyVaqrkFybgVYz2RRRR7ohssre_R
+.weak b___rzhgyf_i._MA7naqebvq3cqk3ecp17GuernqYbpnyOhssreVuAF1_30QrsnhygVavgvnyvmngvbaNyybpngbeVuAFg3__19nyybpngbeVuRRRRYz4096RAF1_20GuernqYbpnyVaqrkFybgVYz2RRRR7ohssre_R
 .type b___rzhgyf_i._MA7naqebvq3cqk3ecp17GuernqYbpnyOhssreVuAF1_30QrsnhygVavgvnyvmngvbaNyybpngbeVuAFg3__19nyybpngbeVuRRRRYz4096RAF1_20GuernqYbpnyVaqrkFybgVYz2RRRR7ohssre_R,%object
 b___rzhgyf_i._MA7naqebvq3cqk3ecp17GuernqYbpnyOhssreVuAF1_30QrsnhygVavgvnyvmngvbaNyybpngbeVuAFg3__19nyybpngbeVuRRRRYz4096RAF1_20GuernqYbpnyVaqrkFybgVYz2RRRR7ohssre_R:
 .space __SIZEOF_POINTER__
 .data
-.globl b___rzhgyf_i._MMA7naqebvq3cqk3ecp17GuernqYbpnyOhssreVuAF1_30QrsnhygVavgvnyvmngvbaNyybpngbeVuAFg3__19nyybpngbeVuRRRRYz4096RAF1_20GuernqYbpnyVaqrkFybgVYz0RRRR14TrgOhssreThneqRiR12ohssre_thneq
+.weak b___rzhgyf_i._MMA7naqebvq3cqk3ecp17GuernqYbpnyOhssreVuAF1_30QrsnhygVavgvnyvmngvbaNyybpngbeVuAFg3__19nyybpngbeVuRRRRYz4096RAF1_20GuernqYbpnyVaqrkFybgVYz0RRRR14TrgOhssreThneqRiR12ohssre_thneq
 .type b___rzhgyf_i._MMA7naqebvq3cqk3ecp17GuernqYbpnyOhssreVuAF1_30QrsnhygVavgvnyvmngvbaNyybpngbeVuAFg3__19nyybpngbeVuRRRRYz4096RAF1_20GuernqYbpnyVaqrkFybgVYz0RRRR14TrgOhssreThneqRiR12ohssre_thneq,%object
 b___rzhgyf_i._MMA7naqebvq3cqk3ecp17GuernqYbpnyOhssreVuAF1_30QrsnhygVavgvnyvmngvbaNyybpngbeVuAFg3__19nyybpngbeVuRRRRYz4096RAF1_20GuernqYbpnyVaqrkFybgVYz0RRRR14TrgOhssreThneqRiR12ohssre_thneq:
 .space __SIZEOF_POINTER__
@@ -298,7 +298,7 @@
 b__MA7naqebvq3qie13OhssreUhoOnfr6HaybpxRi:
 nop
 .text
-.globl b__MAFg3__16irpgbeVvAF_9nyybpngbeVvRRR21__chfu_onpx_fybj_cnguVvRRiBG_
+.weak b__MAFg3__16irpgbeVvAF_9nyybpngbeVvRRR21__chfu_onpx_fybj_cnguVvRRiBG_
 .type b__MAFg3__16irpgbeVvAF_9nyybpngbeVvRRR21__chfu_onpx_fybj_cnguVvRRiBG_,%function
 b__MAFg3__16irpgbeVvAF_9nyybpngbeVvRRR21__chfu_onpx_fybj_cnguVvRRiBG_:
 nop
@@ -333,7 +333,7 @@
 b__MA7naqebvq3qie14CebqhpreOhssreP1Rzz:
 nop
 .data
-.globl b__MGIA7naqebvq3cqk10PyvragOnfrVAF_3qie14CebqhpreOhssreRAF2_13OhssreUhoOnfrRRR
+.weak b__MGIA7naqebvq3cqk10PyvragOnfrVAF_3qie14CebqhpreOhssreRAF2_13OhssreUhoOnfrRRR
 .type b__MGIA7naqebvq3cqk10PyvragOnfrVAF_3qie14CebqhpreOhssreRAF2_13OhssreUhoOnfrRRR,%object
 b__MGIA7naqebvq3cqk10PyvragOnfrVAF_3qie14CebqhpreOhssreRAF2_13OhssreUhoOnfrRRR:
 .space __SIZEOF_POINTER__
@@ -358,7 +358,7 @@
 b__MA7naqebvq3qie9VbaOhssrenFRBF1_:
 nop
 .data
-.globl b___rzhgyf_g._MA7naqebvq3cqk3ecp17GuernqYbpnyOhssreVuAF1_30QrsnhygVavgvnyvmngvbaNyybpngbeVuAFg3__19nyybpngbeVuRRRRYz4096RAF1_20GuernqYbpnyVaqrkFybgVYz0RRRR7ohssre_R
+.weak b___rzhgyf_g._MA7naqebvq3cqk3ecp17GuernqYbpnyOhssreVuAF1_30QrsnhygVavgvnyvmngvbaNyybpngbeVuAFg3__19nyybpngbeVuRRRRYz4096RAF1_20GuernqYbpnyVaqrkFybgVYz0RRRR7ohssre_R
 .type b___rzhgyf_g._MA7naqebvq3cqk3ecp17GuernqYbpnyOhssreVuAF1_30QrsnhygVavgvnyvmngvbaNyybpngbeVuAFg3__19nyybpngbeVuRRRRYz4096RAF1_20GuernqYbpnyVaqrkFybgVYz0RRRR7ohssre_R,%object
 b___rzhgyf_g._MA7naqebvq3cqk3ecp17GuernqYbpnyOhssreVuAF1_30QrsnhygVavgvnyvmngvbaNyybpngbeVuAFg3__19nyybpngbeVuRRRRYz4096RAF1_20GuernqYbpnyVaqrkFybgVYz0RRRR7ohssre_R:
 .space __SIZEOF_POINTER__
@@ -408,7 +408,7 @@
 b__MA7naqebvq3qie13OhssreUhoOnfrQ0Ri:
 nop
 .data
-.globl b__MGIA7naqebvq3cqk3ecp13PyvragCnlybnqVAF1_20GuernqYbpnyVaqrkFybgVYz0RRRRR
+.weak b__MGIA7naqebvq3cqk3ecp13PyvragCnlybnqVAF1_20GuernqYbpnyVaqrkFybgVYz0RRRRR
 .type b__MGIA7naqebvq3cqk3ecp13PyvragCnlybnqVAF1_20GuernqYbpnyVaqrkFybgVYz0RRRRR,%object
 b__MGIA7naqebvq3cqk3ecp13PyvragCnlybnqVAF1_20GuernqYbpnyVaqrkFybgVYz0RRRRR:
 .space __SIZEOF_POINTER__
diff --git a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_133.S b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_133.S
index 82bb55d..99854c3 100644
--- a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_133.S
+++ b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_133.S
@@ -3,12 +3,12 @@
 .data
 .p2align 4
 .data
-.globl b__MGIA7naqebvq3cqk3ecp13PyvragCnlybnqVAF1_20GuernqYbpnyVaqrkFybgVYz2RRRRR
+.weak b__MGIA7naqebvq3cqk3ecp13PyvragCnlybnqVAF1_20GuernqYbpnyVaqrkFybgVYz2RRRRR
 .type b__MGIA7naqebvq3cqk3ecp13PyvragCnlybnqVAF1_20GuernqYbpnyVaqrkFybgVYz2RRRRR,%object
 b__MGIA7naqebvq3cqk3ecp13PyvragCnlybnqVAF1_20GuernqYbpnyVaqrkFybgVYz2RRRRR:
 .space __SIZEOF_POINTER__
 .data
-.globl b___rzhgyf_i._MTIMA7naqebvq3cqk3ecp17GuernqYbpnyOhssreVuAF1_30QrsnhygVavgvnyvmngvbaNyybpngbeVuAFg3__19nyybpngbeVuRRRRYz4096RAF1_20GuernqYbpnyVaqrkFybgVYz0RRRR14TrgOhssreThneqRiR12ohssre_thneq
+.weak b___rzhgyf_i._MTIMA7naqebvq3cqk3ecp17GuernqYbpnyOhssreVuAF1_30QrsnhygVavgvnyvmngvbaNyybpngbeVuAFg3__19nyybpngbeVuRRRRYz4096RAF1_20GuernqYbpnyVaqrkFybgVYz0RRRR14TrgOhssreThneqRiR12ohssre_thneq
 .type b___rzhgyf_i._MTIMA7naqebvq3cqk3ecp17GuernqYbpnyOhssreVuAF1_30QrsnhygVavgvnyvmngvbaNyybpngbeVuAFg3__19nyybpngbeVuRRRRYz4096RAF1_20GuernqYbpnyVaqrkFybgVYz0RRRR14TrgOhssreThneqRiR12ohssre_thneq,%object
 b___rzhgyf_i._MTIMA7naqebvq3cqk3ecp17GuernqYbpnyOhssreVuAF1_30QrsnhygVavgvnyvmngvbaNyybpngbeVuAFg3__19nyybpngbeVuRRRRYz4096RAF1_20GuernqYbpnyVaqrkFybgVYz0RRRR14TrgOhssreThneqRiR12ohssre_thneq:
 .space __SIZEOF_POINTER__
@@ -23,12 +23,12 @@
 b__MA7naqebvq3qie14OhssreUhoDhrhrP2RAF_3cqk13PunaaryUnaqyrVYAF2_17PunaaryUnaqyrZbqrR0RRR:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq3qie14OhssreUhoDhrhr5RagelRAF_9nyybpngbeVF4_RRR21__chfu_onpx_fybj_cnguVF4_RRiBG_
+.weak b__MAFg3__16irpgbeVA7naqebvq3qie14OhssreUhoDhrhr5RagelRAF_9nyybpngbeVF4_RRR21__chfu_onpx_fybj_cnguVF4_RRiBG_
 .type b__MAFg3__16irpgbeVA7naqebvq3qie14OhssreUhoDhrhr5RagelRAF_9nyybpngbeVF4_RRR21__chfu_onpx_fybj_cnguVF4_RRiBG_,%function
 b__MAFg3__16irpgbeVA7naqebvq3qie14OhssreUhoDhrhr5RagelRAF_9nyybpngbeVF4_RRR21__chfu_onpx_fybj_cnguVF4_RRiBG_:
 nop
 .data
-.globl b___rzhgyf_g._MA7naqebvq3cqk3ecp17GuernqYbpnyOhssreVuAF1_30QrsnhygVavgvnyvmngvbaNyybpngbeVuAFg3__19nyybpngbeVuRRRRYz4096RAF1_20GuernqYbpnyVaqrkFybgVYz0RRRR7ohssre_R
+.weak b___rzhgyf_g._MA7naqebvq3cqk3ecp17GuernqYbpnyOhssreVuAF1_30QrsnhygVavgvnyvmngvbaNyybpngbeVuAFg3__19nyybpngbeVuRRRRYz4096RAF1_20GuernqYbpnyVaqrkFybgVYz0RRRR7ohssre_R
 .type b___rzhgyf_g._MA7naqebvq3cqk3ecp17GuernqYbpnyOhssreVuAF1_30QrsnhygVavgvnyvmngvbaNyybpngbeVuAFg3__19nyybpngbeVuRRRRYz4096RAF1_20GuernqYbpnyVaqrkFybgVYz0RRRR7ohssre_R,%object
 b___rzhgyf_g._MA7naqebvq3cqk3ecp17GuernqYbpnyOhssreVuAF1_30QrsnhygVavgvnyvmngvbaNyybpngbeVuAFg3__19nyybpngbeVuRRRRYz4096RAF1_20GuernqYbpnyVaqrkFybgVYz0RRRR7ohssre_R:
 .space __SIZEOF_POINTER__
@@ -48,12 +48,12 @@
 b__MA7naqebvq3qie14OhssreUhoDhrhr7QrdhrhrRvCz:
 nop
 .text
-.globl b__MAFg3__120__funerq_cge_cbvagreVCA7naqebvq3qie14PbafhzreOhssreRAF_14qrsnhyg_qryrgrVF3_RRAF_9nyybpngbeVF3_RRR16__ba_mreb_funerqRi
+.weak b__MAFg3__120__funerq_cge_cbvagreVCA7naqebvq3qie14PbafhzreOhssreRAF_14qrsnhyg_qryrgrVF3_RRAF_9nyybpngbeVF3_RRR16__ba_mreb_funerqRi
 .type b__MAFg3__120__funerq_cge_cbvagreVCA7naqebvq3qie14PbafhzreOhssreRAF_14qrsnhyg_qryrgrVF3_RRAF_9nyybpngbeVF3_RRR16__ba_mreb_funerqRi,%function
 b__MAFg3__120__funerq_cge_cbvagreVCA7naqebvq3qie14PbafhzreOhssreRAF_14qrsnhyg_qryrgrVF3_RRAF_9nyybpngbeVF3_RRR16__ba_mreb_funerqRi:
 nop
 .text
-.globl b__MAFg3__120__funerq_cge_cbvagreVCA7naqebvq3qie14CebqhpreOhssreRAF_14qrsnhyg_qryrgrVF3_RRAF_9nyybpngbeVF3_RRR16__ba_mreb_funerqRi
+.weak b__MAFg3__120__funerq_cge_cbvagreVCA7naqebvq3qie14CebqhpreOhssreRAF_14qrsnhyg_qryrgrVF3_RRAF_9nyybpngbeVF3_RRR16__ba_mreb_funerqRi
 .type b__MAFg3__120__funerq_cge_cbvagreVCA7naqebvq3qie14CebqhpreOhssreRAF_14qrsnhyg_qryrgrVF3_RRAF_9nyybpngbeVF3_RRR16__ba_mreb_funerqRi,%function
 b__MAFg3__120__funerq_cge_cbvagreVCA7naqebvq3qie14CebqhpreOhssreRAF_14qrsnhyg_qryrgrVF3_RRAF_9nyybpngbeVF3_RRR16__ba_mreb_funerqRi:
 nop
@@ -78,7 +78,7 @@
 b__MA7naqebvq3qie9VbaOhssreP2RCX13angvir_unaqyrwwwwz:
 nop
 .data
-.globl b__MGIA7naqebvq3qie14PbafhzreOhssreR
+.weak b__MGIA7naqebvq3qie14PbafhzreOhssreR
 .type b__MGIA7naqebvq3qie14PbafhzreOhssreR,%object
 b__MGIA7naqebvq3qie14PbafhzreOhssreR:
 .space __SIZEOF_POINTER__
@@ -98,17 +98,17 @@
 b__MA7naqebvq3qie14OhssreUhoDhrhrP1REXAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRR:
 nop
 .text
-.globl b__MAFg3__16irpgbeVuA7naqebvq3cqk3ecp30QrsnhygVavgvnyvmngvbaNyybpngbeVuAF_9nyybpngbeVuRRRRR6erfvmrRz
+.weak b__MAFg3__16irpgbeVuA7naqebvq3cqk3ecp30QrsnhygVavgvnyvmngvbaNyybpngbeVuAF_9nyybpngbeVuRRRRR6erfvmrRz
 .type b__MAFg3__16irpgbeVuA7naqebvq3cqk3ecp30QrsnhygVavgvnyvmngvbaNyybpngbeVuAF_9nyybpngbeVuRRRRR6erfvmrRz,%function
 b__MAFg3__16irpgbeVuA7naqebvq3cqk3ecp30QrsnhygVavgvnyvmngvbaNyybpngbeVuAF_9nyybpngbeVuRRRRR6erfvmrRz:
 nop
 .data
-.globl b__MGIA7naqebvq3cqk10PyvragOnfrVAF_3qie13CebqhpreDhrhrRAF2_14OhssreUhoDhrhrRRR
+.weak b__MGIA7naqebvq3cqk10PyvragOnfrVAF_3qie13CebqhpreDhrhrRAF2_14OhssreUhoDhrhrRRR
 .type b__MGIA7naqebvq3cqk10PyvragOnfrVAF_3qie13CebqhpreDhrhrRAF2_14OhssreUhoDhrhrRRR,%object
 b__MGIA7naqebvq3cqk10PyvragOnfrVAF_3qie13CebqhpreDhrhrRAF2_14OhssreUhoDhrhrRRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq3qie24OhssreUhoDhrhrCneprynoyrVYAF0_29OhssreUhoDhrhrCneprynoyrZntvpR1651011939RRP2RAFg3__110havdhr_cgeVAF_3cqk17PunaaryCneprynoyrRAF4_14qrsnhyg_qryrgrVF7_RRRR
+.weak b__MA7naqebvq3qie24OhssreUhoDhrhrCneprynoyrVYAF0_29OhssreUhoDhrhrCneprynoyrZntvpR1651011939RRP2RAFg3__110havdhr_cgeVAF_3cqk17PunaaryCneprynoyrRAF4_14qrsnhyg_qryrgrVF7_RRRR
 .type b__MA7naqebvq3qie24OhssreUhoDhrhrCneprynoyrVYAF0_29OhssreUhoDhrhrCneprynoyrZntvpR1651011939RRP2RAFg3__110havdhr_cgeVAF_3cqk17PunaaryCneprynoyrRAF4_14qrsnhyg_qryrgrVF7_RRRR,%function
 b__MA7naqebvq3qie24OhssreUhoDhrhrCneprynoyrVYAF0_29OhssreUhoDhrhrCneprynoyrZntvpR1651011939RRP2RAFg3__110havdhr_cgeVAF_3cqk17PunaaryCneprynoyrRAF4_14qrsnhyg_qryrgrVF7_RRRR:
 nop
@@ -133,7 +133,7 @@
 b__MA7naqebvq3qie14OhssreUhoDhrhrP2REXAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRR:
 nop
 .text
-.globl b__MA7naqebvq3qie24OhssreUhoDhrhrCneprynoyrVYAF0_29OhssreUhoDhrhrCneprynoyrZntvpR1651011939RR14ernqSebzCnepryRCXAF_6CnepryR
+.weak b__MA7naqebvq3qie24OhssreUhoDhrhrCneprynoyrVYAF0_29OhssreUhoDhrhrCneprynoyrZntvpR1651011939RR14ernqSebzCnepryRCXAF_6CnepryR
 .type b__MA7naqebvq3qie24OhssreUhoDhrhrCneprynoyrVYAF0_29OhssreUhoDhrhrCneprynoyrZntvpR1651011939RR14ernqSebzCnepryRCXAF_6CnepryR,%function
 b__MA7naqebvq3qie24OhssreUhoDhrhrCneprynoyrVYAF0_29OhssreUhoDhrhrCneprynoyrZntvpR1651011939RR14ernqSebzCnepryRCXAF_6CnepryR:
 nop
@@ -158,7 +158,7 @@
 b__MA7naqebvq3qie13CebqhpreDhrhrP1REXAF0_19CebqhpreDhrhrPbasvtREXAF0_11HfntrCbyvplR:
 nop
 .text
-.globl b__MAFg3__16irpgbeVzAF_9nyybpngbeVzRRR21__chfu_onpx_fybj_cnguVEXzRRiBG_
+.weak b__MAFg3__16irpgbeVzAF_9nyybpngbeVzRRR21__chfu_onpx_fybj_cnguVEXzRRiBG_
 .type b__MAFg3__16irpgbeVzAF_9nyybpngbeVzRRR21__chfu_onpx_fybj_cnguVEXzRRiBG_,%function
 b__MAFg3__16irpgbeVzAF_9nyybpngbeVzRRR21__chfu_onpx_fybj_cnguVEXzRRiBG_:
 nop
@@ -208,7 +208,7 @@
 b__MA7naqebvq3qie14CebqhpreOhssre9TnvaNflapRC23QieAngvirOhssreZrgnqngnCAF_3cqk10SvyrUnaqyrVYAF4_14SvyrUnaqyrZbqrR0RRRo:
 nop
 .text
-.globl b__MAFg3__111__fvsg_qbjaVEA7naqebvq3qie14OhssreUhoDhrhr15RagelPbzcnengbeRAF_11__jenc_vgreVCAF3_5RagelRRRRRiG0_FN_G_AF_15vgrengbe_genvgfVFN_R15qvssrerapr_glcrRFN_
+.weak b__MAFg3__111__fvsg_qbjaVEA7naqebvq3qie14OhssreUhoDhrhr15RagelPbzcnengbeRAF_11__jenc_vgreVCAF3_5RagelRRRRRiG0_FN_G_AF_15vgrengbe_genvgfVFN_R15qvssrerapr_glcrRFN_
 .type b__MAFg3__111__fvsg_qbjaVEA7naqebvq3qie14OhssreUhoDhrhr15RagelPbzcnengbeRAF_11__jenc_vgreVCAF3_5RagelRRRRRiG0_FN_G_AF_15vgrengbe_genvgfVFN_R15qvssrerapr_glcrRFN_,%function
 b__MAFg3__111__fvsg_qbjaVEA7naqebvq3qie14OhssreUhoDhrhr15RagelPbzcnengbeRAF_11__jenc_vgreVCAF3_5RagelRRRRRiG0_FN_G_AF_15vgrengbe_genvgfVFN_R15qvssrerapr_glcrRFN_:
 nop
@@ -303,7 +303,7 @@
 b__MGIA7naqebvq3qie13CebqhpreDhrhrR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq3qie24OhssreUhoDhrhrCneprynoyrVYAF0_29OhssreUhoDhrhrCneprynoyrZntvpR1651011939RRP1RAFg3__110havdhr_cgeVAF_3cqk17PunaaryCneprynoyrRAF4_14qrsnhyg_qryrgrVF7_RRRR
+.weak b__MA7naqebvq3qie24OhssreUhoDhrhrCneprynoyrVYAF0_29OhssreUhoDhrhrCneprynoyrZntvpR1651011939RRP1RAFg3__110havdhr_cgeVAF_3cqk17PunaaryCneprynoyrRAF4_14qrsnhyg_qryrgrVF7_RRRR
 .type b__MA7naqebvq3qie24OhssreUhoDhrhrCneprynoyrVYAF0_29OhssreUhoDhrhrCneprynoyrZntvpR1651011939RRP1RAFg3__110havdhr_cgeVAF_3cqk17PunaaryCneprynoyrRAF4_14qrsnhyg_qryrgrVF7_RRRR,%function
 b__MA7naqebvq3qie24OhssreUhoDhrhrCneprynoyrVYAF0_29OhssreUhoDhrhrCneprynoyrZntvpR1651011939RRP1RAFg3__110havdhr_cgeVAF_3cqk17PunaaryCneprynoyrRAF4_14qrsnhyg_qryrgrVF7_RRRR:
 nop
@@ -343,7 +343,7 @@
 b__MA7naqebvq3qie14OhssreUhoDhrhr9NqqOhssreREXAFg3__110funerq_cgeVAF0_13OhssreUhoOnfrRRRz:
 nop
 .text
-.globl b__MAX7naqebvq3qie24OhssreUhoDhrhrCneprynoyrVYAF0_29OhssreUhoDhrhrCneprynoyrZntvpR1651011952RR7VfInyvqRi
+.weak b__MAX7naqebvq3qie24OhssreUhoDhrhrCneprynoyrVYAF0_29OhssreUhoDhrhrCneprynoyrZntvpR1651011952RR7VfInyvqRi
 .type b__MAX7naqebvq3qie24OhssreUhoDhrhrCneprynoyrVYAF0_29OhssreUhoDhrhrCneprynoyrZntvpR1651011952RR7VfInyvqRi,%function
 b__MAX7naqebvq3qie24OhssreUhoDhrhrCneprynoyrVYAF0_29OhssreUhoDhrhrCneprynoyrZntvpR1651011952RR7VfInyvqRi:
 nop
@@ -358,12 +358,12 @@
 b__MA7naqebvq3qie13CebqhpreDhrhrP1RAF_3cqk13PunaaryUnaqyrVYAF2_17PunaaryUnaqyrZbqrR0RRR:
 nop
 .text
-.globl b__MAFg3__19__fvsg_hcVEA7naqebvq3qie14OhssreUhoDhrhr15RagelPbzcnengbeRAF_11__jenc_vgreVCAF3_5RagelRRRRRiG0_FN_G_AF_15vgrengbe_genvgfVFN_R15qvssrerapr_glcrR
+.weak b__MAFg3__19__fvsg_hcVEA7naqebvq3qie14OhssreUhoDhrhr15RagelPbzcnengbeRAF_11__jenc_vgreVCAF3_5RagelRRRRRiG0_FN_G_AF_15vgrengbe_genvgfVFN_R15qvssrerapr_glcrR
 .type b__MAFg3__19__fvsg_hcVEA7naqebvq3qie14OhssreUhoDhrhr15RagelPbzcnengbeRAF_11__jenc_vgreVCAF3_5RagelRRRRRiG0_FN_G_AF_15vgrengbe_genvgfVFN_R15qvssrerapr_glcrR,%function
 b__MAFg3__19__fvsg_hcVEA7naqebvq3qie14OhssreUhoDhrhr15RagelPbzcnengbeRAF_11__jenc_vgreVCAF3_5RagelRRRRRiG0_FN_G_AF_15vgrengbe_genvgfVFN_R15qvssrerapr_glcrR:
 nop
 .data
-.globl b__MGIA7naqebvq3cqk3ecp13PyvragCnlybnqVAF1_20GuernqYbpnyVaqrkFybgVYz0RRRRR
+.weak b__MGIA7naqebvq3cqk3ecp13PyvragCnlybnqVAF1_20GuernqYbpnyVaqrkFybgVYz0RRRRR
 .type b__MGIA7naqebvq3cqk3ecp13PyvragCnlybnqVAF1_20GuernqYbpnyVaqrkFybgVYz0RRRRR,%object
 b__MGIA7naqebvq3cqk3ecp13PyvragCnlybnqVAF1_20GuernqYbpnyVaqrkFybgVYz0RRRRR:
 .space __SIZEOF_POINTER__
@@ -378,12 +378,12 @@
 b__MA7naqebvq3qie14OhssreUhoDhrhr7RadhrhrRAF1_5RagelR:
 nop
 .data
-.globl b__MGIA7naqebvq3qie24OhssreUhoDhrhrCneprynoyrVYAF0_29OhssreUhoDhrhrCneprynoyrZntvpR1651011952RRR
+.weak b__MGIA7naqebvq3qie24OhssreUhoDhrhrCneprynoyrVYAF0_29OhssreUhoDhrhrCneprynoyrZntvpR1651011952RRR
 .type b__MGIA7naqebvq3qie24OhssreUhoDhrhrCneprynoyrVYAF0_29OhssreUhoDhrhrCneprynoyrZntvpR1651011952RRR,%object
 b__MGIA7naqebvq3qie24OhssreUhoDhrhrCneprynoyrVYAF0_29OhssreUhoDhrhrCneprynoyrZntvpR1651011952RRR:
 .space __SIZEOF_POINTER__
 .data
-.globl b___rzhgyf_i._MMA7naqebvq3cqk3ecp17GuernqYbpnyOhssreVuAF1_30QrsnhygVavgvnyvmngvbaNyybpngbeVuAFg3__19nyybpngbeVuRRRRYz4096RAF1_20GuernqYbpnyVaqrkFybgVYz2RRRR14TrgOhssreThneqRiR12ohssre_thneq
+.weak b___rzhgyf_i._MMA7naqebvq3cqk3ecp17GuernqYbpnyOhssreVuAF1_30QrsnhygVavgvnyvmngvbaNyybpngbeVuAFg3__19nyybpngbeVuRRRRYz4096RAF1_20GuernqYbpnyVaqrkFybgVYz2RRRR14TrgOhssreThneqRiR12ohssre_thneq
 .type b___rzhgyf_i._MMA7naqebvq3cqk3ecp17GuernqYbpnyOhssreVuAF1_30QrsnhygVavgvnyvmngvbaNyybpngbeVuAFg3__19nyybpngbeVuRRRRYz4096RAF1_20GuernqYbpnyVaqrkFybgVYz2RRRR14TrgOhssreThneqRiR12ohssre_thneq,%object
 b___rzhgyf_i._MMA7naqebvq3cqk3ecp17GuernqYbpnyOhssreVuAF1_30QrsnhygVavgvnyvmngvbaNyybpngbeVuAFg3__19nyybpngbeVuRRRRYz4096RAF1_20GuernqYbpnyVaqrkFybgVYz2RRRR14TrgOhssreThneqRiR12ohssre_thneq:
 .space __SIZEOF_POINTER__
@@ -408,7 +408,7 @@
 b__MA7naqebvq3qie14CebqhpreOhssre9TnvaNflapRi:
 nop
 .data
-.globl b__MGIA7naqebvq3qie24OhssreUhoDhrhrCneprynoyrVYAF0_29OhssreUhoDhrhrCneprynoyrZntvpR1651011939RRR
+.weak b__MGIA7naqebvq3qie24OhssreUhoDhrhrCneprynoyrVYAF0_29OhssreUhoDhrhrCneprynoyrZntvpR1651011939RRR
 .type b__MGIA7naqebvq3qie24OhssreUhoDhrhrCneprynoyrVYAF0_29OhssreUhoDhrhrCneprynoyrZntvpR1651011939RRR,%object
 b__MGIA7naqebvq3qie24OhssreUhoDhrhrCneprynoyrVYAF0_29OhssreUhoDhrhrCneprynoyrZntvpR1651011939RRR:
 .space __SIZEOF_POINTER__
@@ -433,12 +433,12 @@
 b__MA7naqebvq3qie13PbafhzreDhrhr7QrdhrhrRvCzC23QieAngvirOhssreZrgnqngnCAF_3cqk10SvyrUnaqyrVYAF5_14SvyrUnaqyrZbqrR0RRR:
 nop
 .data
-.globl b___rzhgyf_i._MA7naqebvq3cqk3ecp17GuernqYbpnyOhssreVuAF1_30QrsnhygVavgvnyvmngvbaNyybpngbeVuAFg3__19nyybpngbeVuRRRRYz4096RAF1_20GuernqYbpnyVaqrkFybgVYz0RRRR7ohssre_R
+.weak b___rzhgyf_i._MA7naqebvq3cqk3ecp17GuernqYbpnyOhssreVuAF1_30QrsnhygVavgvnyvmngvbaNyybpngbeVuAFg3__19nyybpngbeVuRRRRYz4096RAF1_20GuernqYbpnyVaqrkFybgVYz0RRRR7ohssre_R
 .type b___rzhgyf_i._MA7naqebvq3cqk3ecp17GuernqYbpnyOhssreVuAF1_30QrsnhygVavgvnyvmngvbaNyybpngbeVuAFg3__19nyybpngbeVuRRRRYz4096RAF1_20GuernqYbpnyVaqrkFybgVYz0RRRR7ohssre_R,%object
 b___rzhgyf_i._MA7naqebvq3cqk3ecp17GuernqYbpnyOhssreVuAF1_30QrsnhygVavgvnyvmngvbaNyybpngbeVuAFg3__19nyybpngbeVuRRRRYz4096RAF1_20GuernqYbpnyVaqrkFybgVYz0RRRR7ohssre_R:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq3qie24OhssreUhoDhrhrCneprynoyrVYAF0_29OhssreUhoDhrhrCneprynoyrZntvpR1651011952RRnFRBF3_
+.weak b__MA7naqebvq3qie24OhssreUhoDhrhrCneprynoyrVYAF0_29OhssreUhoDhrhrCneprynoyrZntvpR1651011952RRnFRBF3_
 .type b__MA7naqebvq3qie24OhssreUhoDhrhrCneprynoyrVYAF0_29OhssreUhoDhrhrCneprynoyrZntvpR1651011952RRnFRBF3_,%function
 b__MA7naqebvq3qie24OhssreUhoDhrhrCneprynoyrVYAF0_29OhssreUhoDhrhrCneprynoyrZntvpR1651011952RRnFRBF3_:
 nop
@@ -463,7 +463,7 @@
 b__MA7naqebvq3qie14PbafhzreOhssre12NpdhverNflapRC23QieAngvirOhssreZrgnqngnCAF_3cqk10SvyrUnaqyrVYAF4_14SvyrUnaqyrZbqrR0RRR:
 nop
 .data
-.globl b___rzhgyf_i._MTIMA7naqebvq3cqk3ecp17GuernqYbpnyOhssreVuAF1_30QrsnhygVavgvnyvmngvbaNyybpngbeVuAFg3__19nyybpngbeVuRRRRYz4096RAF1_20GuernqYbpnyVaqrkFybgVYz2RRRR14TrgOhssreThneqRiR12ohssre_thneq
+.weak b___rzhgyf_i._MTIMA7naqebvq3cqk3ecp17GuernqYbpnyOhssreVuAF1_30QrsnhygVavgvnyvmngvbaNyybpngbeVuAFg3__19nyybpngbeVuRRRRYz4096RAF1_20GuernqYbpnyVaqrkFybgVYz2RRRR14TrgOhssreThneqRiR12ohssre_thneq
 .type b___rzhgyf_i._MTIMA7naqebvq3cqk3ecp17GuernqYbpnyOhssreVuAF1_30QrsnhygVavgvnyvmngvbaNyybpngbeVuAFg3__19nyybpngbeVuRRRRYz4096RAF1_20GuernqYbpnyVaqrkFybgVYz2RRRR14TrgOhssreThneqRiR12ohssre_thneq,%object
 b___rzhgyf_i._MTIMA7naqebvq3cqk3ecp17GuernqYbpnyOhssreVuAF1_30QrsnhygVavgvnyvmngvbaNyybpngbeVuAFg3__19nyybpngbeVuRRRRYz4096RAF1_20GuernqYbpnyVaqrkFybgVYz2RRRR14TrgOhssreThneqRiR12ohssre_thneq:
 .space __SIZEOF_POINTER__
@@ -483,12 +483,12 @@
 b__MGIA7naqebvq3qie13PbafhzreDhrhrR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIAFg3__120__funerq_cge_cbvagreVCA7naqebvq3qie14PbafhzreOhssreRAF_14qrsnhyg_qryrgrVF3_RRAF_9nyybpngbeVF3_RRRR
+.weak b__MGIAFg3__120__funerq_cge_cbvagreVCA7naqebvq3qie14PbafhzreOhssreRAF_14qrsnhyg_qryrgrVF3_RRAF_9nyybpngbeVF3_RRRR
 .type b__MGIAFg3__120__funerq_cge_cbvagreVCA7naqebvq3qie14PbafhzreOhssreRAF_14qrsnhyg_qryrgrVF3_RRAF_9nyybpngbeVF3_RRRR,%object
 b__MGIAFg3__120__funerq_cge_cbvagreVCA7naqebvq3qie14PbafhzreOhssreRAF_14qrsnhyg_qryrgrVF3_RRAF_9nyybpngbeVF3_RRRR:
 .space __SIZEOF_POINTER__
 .data
-.globl b___rzhgyf_i._MA7naqebvq3cqk3ecp17GuernqYbpnyOhssreVuAF1_30QrsnhygVavgvnyvmngvbaNyybpngbeVuAFg3__19nyybpngbeVuRRRRYz4096RAF1_20GuernqYbpnyVaqrkFybgVYz2RRRR7ohssre_R
+.weak b___rzhgyf_i._MA7naqebvq3cqk3ecp17GuernqYbpnyOhssreVuAF1_30QrsnhygVavgvnyvmngvbaNyybpngbeVuAFg3__19nyybpngbeVuRRRRYz4096RAF1_20GuernqYbpnyVaqrkFybgVYz2RRRR7ohssre_R
 .type b___rzhgyf_i._MA7naqebvq3cqk3ecp17GuernqYbpnyOhssreVuAF1_30QrsnhygVavgvnyvmngvbaNyybpngbeVuAFg3__19nyybpngbeVuRRRRYz4096RAF1_20GuernqYbpnyVaqrkFybgVYz2RRRR7ohssre_R,%object
 b___rzhgyf_i._MA7naqebvq3cqk3ecp17GuernqYbpnyOhssreVuAF1_30QrsnhygVavgvnyvmngvbaNyybpngbeVuAFg3__19nyybpngbeVuRRRRYz4096RAF1_20GuernqYbpnyVaqrkFybgVYz2RRRR7ohssre_R:
 .space __SIZEOF_POINTER__
@@ -503,12 +503,12 @@
 b__MA7naqebvq3qie14PbafhzreOhssre12YbpnyEryrnfrRCX23QieAngvirOhssreZrgnqngnEXAF_3cqk10SvyrUnaqyrVYAF5_14SvyrUnaqyrZbqrR0RRR:
 nop
 .data
-.globl b__MGIA7naqebvq3qie14CebqhpreOhssreR
+.weak b__MGIA7naqebvq3qie14CebqhpreOhssreR
 .type b__MGIA7naqebvq3qie14CebqhpreOhssreR,%object
 b__MGIA7naqebvq3qie14CebqhpreOhssreR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIA7naqebvq3cqk10PyvragOnfrVAF_3qie14CebqhpreOhssreRAF2_13OhssreUhoOnfrRRR
+.weak b__MGIA7naqebvq3cqk10PyvragOnfrVAF_3qie14CebqhpreOhssreRAF2_13OhssreUhoOnfrRRR
 .type b__MGIA7naqebvq3cqk10PyvragOnfrVAF_3qie14CebqhpreOhssreRAF2_13OhssreUhoOnfrRRR,%object
 b__MGIA7naqebvq3cqk10PyvragOnfrVAF_3qie14CebqhpreOhssreRAF2_13OhssreUhoOnfrRRR:
 .space __SIZEOF_POINTER__
@@ -523,7 +523,7 @@
 b__MA7naqebvq3qie14OhssreUhoDhrhr16UnaqyrDhrhrRiragRv:
 nop
 .text
-.globl b__MA7naqebvq3qie24OhssreUhoDhrhrCneprynoyrVYAF0_29OhssreUhoDhrhrCneprynoyrZntvpR1651011952RR14ernqSebzCnepryRCXAF_6CnepryR
+.weak b__MA7naqebvq3qie24OhssreUhoDhrhrCneprynoyrVYAF0_29OhssreUhoDhrhrCneprynoyrZntvpR1651011952RR14ernqSebzCnepryRCXAF_6CnepryR
 .type b__MA7naqebvq3qie24OhssreUhoDhrhrCneprynoyrVYAF0_29OhssreUhoDhrhrCneprynoyrZntvpR1651011952RR14ernqSebzCnepryRCXAF_6CnepryR,%function
 b__MA7naqebvq3qie24OhssreUhoDhrhrCneprynoyrVYAF0_29OhssreUhoDhrhrCneprynoyrZntvpR1651011952RR14ernqSebzCnepryRCXAF_6CnepryR:
 nop
@@ -533,7 +533,7 @@
 b__MA7naqebvq3qie13OhssreUhoOnfr17HcqngrFunerqSraprREXAF_3cqk10SvyrUnaqyrVYAF2_14SvyrUnaqyrZbqrR0RRRF7_:
 nop
 .data
-.globl b__MGIAFg3__120__funerq_cge_cbvagreVCA7naqebvq3qie14CebqhpreOhssreRAF_14qrsnhyg_qryrgrVF3_RRAF_9nyybpngbeVF3_RRRR
+.weak b__MGIAFg3__120__funerq_cge_cbvagreVCA7naqebvq3qie14CebqhpreOhssreRAF_14qrsnhyg_qryrgrVF3_RRAF_9nyybpngbeVF3_RRRR
 .type b__MGIAFg3__120__funerq_cge_cbvagreVCA7naqebvq3qie14CebqhpreOhssreRAF_14qrsnhyg_qryrgrVF3_RRAF_9nyybpngbeVF3_RRRR,%object
 b__MGIAFg3__120__funerq_cge_cbvagreVCA7naqebvq3qie14CebqhpreOhssreRAF_14qrsnhyg_qryrgrVF3_RRAF_9nyybpngbeVF3_RRRR:
 .space __SIZEOF_POINTER__
@@ -573,7 +573,7 @@
 b__MA7naqebvq3qie14OhssreUhoDhrhr14SerrNyyOhssrefRi:
 nop
 .text
-.globl b__MA7naqebvq3qie24OhssreUhoDhrhrCneprynoyrVYAF0_29OhssreUhoDhrhrCneprynoyrZntvpR1651011939RRnFRBF3_
+.weak b__MA7naqebvq3qie24OhssreUhoDhrhrCneprynoyrVYAF0_29OhssreUhoDhrhrCneprynoyrZntvpR1651011939RRnFRBF3_
 .type b__MA7naqebvq3qie24OhssreUhoDhrhrCneprynoyrVYAF0_29OhssreUhoDhrhrCneprynoyrZntvpR1651011939RRnFRBF3_,%function
 b__MA7naqebvq3qie24OhssreUhoDhrhrCneprynoyrVYAF0_29OhssreUhoDhrhrCneprynoyrZntvpR1651011939RRnFRBF3_:
 nop
@@ -588,12 +588,12 @@
 b__MA7naqebvq3qie14PbafhzreOhssre7NpdhverRCAF_3cqk10SvyrUnaqyrVYAF2_14SvyrUnaqyrZbqrR0RRRCiz:
 nop
 .text
-.globl b__MAFg3__120__funerq_cge_cbvagreVCA7naqebvq3qie14PbafhzreOhssreRAF_14qrsnhyg_qryrgrVF3_RRAF_9nyybpngbeVF3_RRR21__ba_mreb_funerq_jrnxRi
+.weak b__MAFg3__120__funerq_cge_cbvagreVCA7naqebvq3qie14PbafhzreOhssreRAF_14qrsnhyg_qryrgrVF3_RRAF_9nyybpngbeVF3_RRR21__ba_mreb_funerq_jrnxRi
 .type b__MAFg3__120__funerq_cge_cbvagreVCA7naqebvq3qie14PbafhzreOhssreRAF_14qrsnhyg_qryrgrVF3_RRAF_9nyybpngbeVF3_RRR21__ba_mreb_funerq_jrnxRi,%function
 b__MAFg3__120__funerq_cge_cbvagreVCA7naqebvq3qie14PbafhzreOhssreRAF_14qrsnhyg_qryrgrVF3_RRAF_9nyybpngbeVF3_RRR21__ba_mreb_funerq_jrnxRi:
 nop
 .text
-.globl b__MA7naqebvq3qie24OhssreUhoDhrhrCneprynoyrVYAF0_29OhssreUhoDhrhrCneprynoyrZntvpR1651011952RRP2RAFg3__110havdhr_cgeVAF_3cqk17PunaaryCneprynoyrRAF4_14qrsnhyg_qryrgrVF7_RRRR
+.weak b__MA7naqebvq3qie24OhssreUhoDhrhrCneprynoyrVYAF0_29OhssreUhoDhrhrCneprynoyrZntvpR1651011952RRP2RAFg3__110havdhr_cgeVAF_3cqk17PunaaryCneprynoyrRAF4_14qrsnhyg_qryrgrVF7_RRRR
 .type b__MA7naqebvq3qie24OhssreUhoDhrhrCneprynoyrVYAF0_29OhssreUhoDhrhrCneprynoyrZntvpR1651011952RRP2RAFg3__110havdhr_cgeVAF_3cqk17PunaaryCneprynoyrRAF4_14qrsnhyg_qryrgrVF7_RRRR,%function
 b__MA7naqebvq3qie24OhssreUhoDhrhrCneprynoyrVYAF0_29OhssreUhoDhrhrCneprynoyrZntvpR1651011952RRP2RAFg3__110havdhr_cgeVAF_3cqk17PunaaryCneprynoyrRAF4_14qrsnhyg_qryrgrVF7_RRRR:
 nop
@@ -603,7 +603,7 @@
 b__MA7naqebvq3qie13CebqhpreDhrhr9NqqOhssreREXAFg3__110funerq_cgeVAF0_14CebqhpreOhssreRRRz:
 nop
 .text
-.globl b__MAX7naqebvq3qie24OhssreUhoDhrhrCneprynoyrVYAF0_29OhssreUhoDhrhrCneprynoyrZntvpR1651011939RR7VfInyvqRi
+.weak b__MAX7naqebvq3qie24OhssreUhoDhrhrCneprynoyrVYAF0_29OhssreUhoDhrhrCneprynoyrZntvpR1651011939RR7VfInyvqRi
 .type b__MAX7naqebvq3qie24OhssreUhoDhrhrCneprynoyrVYAF0_29OhssreUhoDhrhrCneprynoyrZntvpR1651011939RR7VfInyvqRi,%function
 b__MAX7naqebvq3qie24OhssreUhoDhrhrCneprynoyrVYAF0_29OhssreUhoDhrhrCneprynoyrZntvpR1651011939RR7VfInyvqRi:
 nop
@@ -623,7 +623,7 @@
 b__MA7naqebvq3qie14PbafhzreOhssre6VzcbegRAF_3cqk13PunaaryUnaqyrVYAF2_17PunaaryUnaqyrZbqrR0RRR:
 nop
 .text
-.globl b__MA7naqebvq3qie24OhssreUhoDhrhrCneprynoyrVYAF0_29OhssreUhoDhrhrCneprynoyrZntvpR1651011952RR17GnxrPunaaryUnaqyrRi
+.weak b__MA7naqebvq3qie24OhssreUhoDhrhrCneprynoyrVYAF0_29OhssreUhoDhrhrCneprynoyrZntvpR1651011952RR17GnxrPunaaryUnaqyrRi
 .type b__MA7naqebvq3qie24OhssreUhoDhrhrCneprynoyrVYAF0_29OhssreUhoDhrhrCneprynoyrZntvpR1651011952RR17GnxrPunaaryUnaqyrRi,%function
 b__MA7naqebvq3qie24OhssreUhoDhrhrCneprynoyrVYAF0_29OhssreUhoDhrhrCneprynoyrZntvpR1651011952RR17GnxrPunaaryUnaqyrRi:
 nop
@@ -633,7 +633,7 @@
 b__MA7naqebvq3qie13OhssreUhoOnfr23TrgOyboErnqJevgrCbvagreRzCCi:
 nop
 .data
-.globl b__MA7naqebvq3qie12OhssreUhoECP11xPyvragCnguR
+.weak b__MA7naqebvq3qie12OhssreUhoECP11xPyvragCnguR
 .type b__MA7naqebvq3qie12OhssreUhoECP11xPyvragCnguR,%object
 b__MA7naqebvq3qie12OhssreUhoECP11xPyvragCnguR:
 .space __SIZEOF_POINTER__
@@ -643,7 +643,7 @@
 b__MA7naqebvq3qie14OhssreUhoDhrhr10FrghcDhrhrREXAF0_9DhrhrVasbR:
 nop
 .text
-.globl b__MAFg3__16irpgbeVvAF_9nyybpngbeVvRRR21__chfu_onpx_fybj_cnguVvRRiBG_
+.weak b__MAFg3__16irpgbeVvAF_9nyybpngbeVvRRR21__chfu_onpx_fybj_cnguVvRRiBG_
 .type b__MAFg3__16irpgbeVvAF_9nyybpngbeVvRRR21__chfu_onpx_fybj_cnguVvRRiBG_,%function
 b__MAFg3__16irpgbeVvAF_9nyybpngbeVvRRR21__chfu_onpx_fybj_cnguVvRRiBG_:
 nop
@@ -658,12 +658,12 @@
 b__MA7naqebvq3qie14CebqhpreOhssre6VzcbegRAF_3cqk6FgnghfVAF2_13PunaaryUnaqyrVYAF2_17PunaaryUnaqyrZbqrR0RRRRR:
 nop
 .text
-.globl b__MAFg3__120__funerq_cge_cbvagreVCA7naqebvq3qie14CebqhpreOhssreRAF_14qrsnhyg_qryrgrVF3_RRAF_9nyybpngbeVF3_RRR21__ba_mreb_funerq_jrnxRi
+.weak b__MAFg3__120__funerq_cge_cbvagreVCA7naqebvq3qie14CebqhpreOhssreRAF_14qrsnhyg_qryrgrVF3_RRAF_9nyybpngbeVF3_RRR21__ba_mreb_funerq_jrnxRi
 .type b__MAFg3__120__funerq_cge_cbvagreVCA7naqebvq3qie14CebqhpreOhssreRAF_14qrsnhyg_qryrgrVF3_RRAF_9nyybpngbeVF3_RRR21__ba_mreb_funerq_jrnxRi,%function
 b__MAFg3__120__funerq_cge_cbvagreVCA7naqebvq3qie14CebqhpreOhssreRAF_14qrsnhyg_qryrgrVF3_RRAF_9nyybpngbeVF3_RRR21__ba_mreb_funerq_jrnxRi:
 nop
 .data
-.globl b___rzhgyf_i._MMA7naqebvq3cqk3ecp17GuernqYbpnyOhssreVuAF1_30QrsnhygVavgvnyvmngvbaNyybpngbeVuAFg3__19nyybpngbeVuRRRRYz4096RAF1_20GuernqYbpnyVaqrkFybgVYz0RRRR14TrgOhssreThneqRiR12ohssre_thneq
+.weak b___rzhgyf_i._MMA7naqebvq3cqk3ecp17GuernqYbpnyOhssreVuAF1_30QrsnhygVavgvnyvmngvbaNyybpngbeVuAFg3__19nyybpngbeVuRRRRYz4096RAF1_20GuernqYbpnyVaqrkFybgVYz0RRRR14TrgOhssreThneqRiR12ohssre_thneq
 .type b___rzhgyf_i._MMA7naqebvq3cqk3ecp17GuernqYbpnyOhssreVuAF1_30QrsnhygVavgvnyvmngvbaNyybpngbeVuAFg3__19nyybpngbeVuRRRRYz4096RAF1_20GuernqYbpnyVaqrkFybgVYz0RRRR14TrgOhssreThneqRiR12ohssre_thneq,%object
 b___rzhgyf_i._MMA7naqebvq3cqk3ecp17GuernqYbpnyOhssreVuAF1_30QrsnhygVavgvnyvmngvbaNyybpngbeVuAFg3__19nyybpngbeVuRRRRYz4096RAF1_20GuernqYbpnyVaqrkFybgVYz0RRRR14TrgOhssreThneqRiR12ohssre_thneq:
 .space __SIZEOF_POINTER__
@@ -678,12 +678,12 @@
 b__MA7naqebvq3qie14OhssreUhoDhrhr14JnvgSbeOhssrefRv:
 nop
 .text
-.globl b__MAX7naqebvq3qie24OhssreUhoDhrhrCneprynoyrVYAF0_29OhssreUhoDhrhrCneprynoyrZntvpR1651011939RR13jevgrGbCnepryRCAF_6CnepryR
+.weak b__MAX7naqebvq3qie24OhssreUhoDhrhrCneprynoyrVYAF0_29OhssreUhoDhrhrCneprynoyrZntvpR1651011939RR13jevgrGbCnepryRCAF_6CnepryR
 .type b__MAX7naqebvq3qie24OhssreUhoDhrhrCneprynoyrVYAF0_29OhssreUhoDhrhrCneprynoyrZntvpR1651011939RR13jevgrGbCnepryRCAF_6CnepryR,%function
 b__MAX7naqebvq3qie24OhssreUhoDhrhrCneprynoyrVYAF0_29OhssreUhoDhrhrCneprynoyrZntvpR1651011939RR13jevgrGbCnepryRCAF_6CnepryR:
 nop
 .text
-.globl b__MA7naqebvq3qie24OhssreUhoDhrhrCneprynoyrVYAF0_29OhssreUhoDhrhrCneprynoyrZntvpR1651011952RRP1RAFg3__110havdhr_cgeVAF_3cqk17PunaaryCneprynoyrRAF4_14qrsnhyg_qryrgrVF7_RRRR
+.weak b__MA7naqebvq3qie24OhssreUhoDhrhrCneprynoyrVYAF0_29OhssreUhoDhrhrCneprynoyrZntvpR1651011952RRP1RAFg3__110havdhr_cgeVAF_3cqk17PunaaryCneprynoyrRAF4_14qrsnhyg_qryrgrVF7_RRRR
 .type b__MA7naqebvq3qie24OhssreUhoDhrhrCneprynoyrVYAF0_29OhssreUhoDhrhrCneprynoyrZntvpR1651011952RRP1RAFg3__110havdhr_cgeVAF_3cqk17PunaaryCneprynoyrRAF4_14qrsnhyg_qryrgrVF7_RRRR,%function
 b__MA7naqebvq3qie24OhssreUhoDhrhrCneprynoyrVYAF0_29OhssreUhoDhrhrCneprynoyrZntvpR1651011952RRP1RAFg3__110havdhr_cgeVAF_3cqk17PunaaryCneprynoyrRAF4_14qrsnhyg_qryrgrVF7_RRRR:
 nop
@@ -703,17 +703,17 @@
 b__MA7naqebvq3qie14CebqhpreOhssre6VzcbegRAF_3cqk13PunaaryUnaqyrVYAF2_17PunaaryUnaqyrZbqrR0RRR:
 nop
 .text
-.globl b__MAX7naqebvq3qie24OhssreUhoDhrhrCneprynoyrVYAF0_29OhssreUhoDhrhrCneprynoyrZntvpR1651011952RR13jevgrGbCnepryRCAF_6CnepryR
+.weak b__MAX7naqebvq3qie24OhssreUhoDhrhrCneprynoyrVYAF0_29OhssreUhoDhrhrCneprynoyrZntvpR1651011952RR13jevgrGbCnepryRCAF_6CnepryR
 .type b__MAX7naqebvq3qie24OhssreUhoDhrhrCneprynoyrVYAF0_29OhssreUhoDhrhrCneprynoyrZntvpR1651011952RR13jevgrGbCnepryRCAF_6CnepryR,%function
 b__MAX7naqebvq3qie24OhssreUhoDhrhrCneprynoyrVYAF0_29OhssreUhoDhrhrCneprynoyrZntvpR1651011952RR13jevgrGbCnepryRCAF_6CnepryR:
 nop
 .data
-.globl b___rzhgyf_g._MA7naqebvq3cqk3ecp17GuernqYbpnyOhssreVuAF1_30QrsnhygVavgvnyvmngvbaNyybpngbeVuAFg3__19nyybpngbeVuRRRRYz4096RAF1_20GuernqYbpnyVaqrkFybgVYz2RRRR7ohssre_R
+.weak b___rzhgyf_g._MA7naqebvq3cqk3ecp17GuernqYbpnyOhssreVuAF1_30QrsnhygVavgvnyvmngvbaNyybpngbeVuAFg3__19nyybpngbeVuRRRRYz4096RAF1_20GuernqYbpnyVaqrkFybgVYz2RRRR7ohssre_R
 .type b___rzhgyf_g._MA7naqebvq3cqk3ecp17GuernqYbpnyOhssreVuAF1_30QrsnhygVavgvnyvmngvbaNyybpngbeVuAFg3__19nyybpngbeVuRRRRYz4096RAF1_20GuernqYbpnyVaqrkFybgVYz2RRRR7ohssre_R,%object
 b___rzhgyf_g._MA7naqebvq3cqk3ecp17GuernqYbpnyOhssreVuAF1_30QrsnhygVavgvnyvmngvbaNyybpngbeVuAFg3__19nyybpngbeVuRRRRYz4096RAF1_20GuernqYbpnyVaqrkFybgVYz2RRRR7ohssre_R:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIA7naqebvq3cqk10PyvragOnfrVAF_3qie14PbafhzreOhssreRAF2_13OhssreUhoOnfrRRR
+.weak b__MGIA7naqebvq3cqk10PyvragOnfrVAF_3qie14PbafhzreOhssreRAF2_13OhssreUhoOnfrRRR
 .type b__MGIA7naqebvq3cqk10PyvragOnfrVAF_3qie14PbafhzreOhssreRAF2_13OhssreUhoOnfrRRR,%object
 b__MGIA7naqebvq3cqk10PyvragOnfrVAF_3qie14PbafhzreOhssreRAF2_13OhssreUhoOnfrRRR:
 .space __SIZEOF_POINTER__
@@ -733,7 +733,7 @@
 b__MA7naqebvq3qie13CebqhpreDhrhr23QrdhrhrHanpdhverqOhssreRCz:
 nop
 .text
-.globl b__MA7naqebvq3qie24OhssreUhoDhrhrCneprynoyrVYAF0_29OhssreUhoDhrhrCneprynoyrZntvpR1651011939RR17GnxrPunaaryUnaqyrRi
+.weak b__MA7naqebvq3qie24OhssreUhoDhrhrCneprynoyrVYAF0_29OhssreUhoDhrhrCneprynoyrZntvpR1651011939RR17GnxrPunaaryUnaqyrRi
 .type b__MA7naqebvq3qie24OhssreUhoDhrhrCneprynoyrVYAF0_29OhssreUhoDhrhrCneprynoyrZntvpR1651011939RR17GnxrPunaaryUnaqyrRi,%function
 b__MA7naqebvq3qie24OhssreUhoDhrhrCneprynoyrVYAF0_29OhssreUhoDhrhrCneprynoyrZntvpR1651011939RR17GnxrPunaaryUnaqyrRi:
 nop
diff --git a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_134.S b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_134.S
index 95f285a..ef16173 100644
--- a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_134.S
+++ b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_134.S
@@ -43,7 +43,7 @@
 b__MA7naqebvq3cqk3hqf8Raqcbvag12ZrffntrErcylRCAF0_7ZrffntrRv:
 nop
 .text
-.globl b__MAFg3__1yfVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRREAF_13onfvp_bfgernzVG_G0_RRF9_EXAF_12onfvp_fgevatVF6_F7_G1_RR
+.weak b__MAFg3__1yfVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRREAF_13onfvp_bfgernzVG_G0_RRF9_EXAF_12onfvp_fgevatVF6_F7_G1_RR
 .type b__MAFg3__1yfVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRREAF_13onfvp_bfgernzVG_G0_RRF9_EXAF_12onfvp_fgevatVF6_F7_G1_RR,%function
 b__MAFg3__1yfVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRREAF_13onfvp_bfgernzVG_G0_RRF9_EXAF_12onfvp_fgevatVF6_F7_G1_RR:
 nop
@@ -83,7 +83,7 @@
 b__MA7naqebvq3cqk7FreivprQ1Ri:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_10funerq_cgeVA7naqebvq3cqk7FreivprRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVEXF5_RRiBG_
+.weak b__MAFg3__16irpgbeVAF_10funerq_cgeVA7naqebvq3cqk7FreivprRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVEXF5_RRiBG_
 .type b__MAFg3__16irpgbeVAF_10funerq_cgeVA7naqebvq3cqk7FreivprRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVEXF5_RRiBG_,%function
 b__MAFg3__16irpgbeVAF_10funerq_cgeVA7naqebvq3cqk7FreivprRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVEXF5_RRiBG_:
 nop
@@ -148,7 +148,7 @@
 b__MAX7naqebvq3cqk3hqf20PyvragPunaarySnpgbel7PbaarpgRy:
 nop
 .text
-.globl b__MAFg3__16irpgbeVuAF_9nyybpngbeVuRRR8__nccraqRz
+.weak b__MAFg3__16irpgbeVuAF_9nyybpngbeVuRRR8__nccraqRz
 .type b__MAFg3__16irpgbeVuAF_9nyybpngbeVuRRR8__nccraqRz,%function
 b__MAFg3__16irpgbeVuAF_9nyybpngbeVuRRR8__nccraqRz:
 nop
@@ -178,7 +178,7 @@
 b__MA7naqebvq3cqk3hqf8Raqcbvag11ChfuPunaaryRCAF0_7ZrffntrRvCAF0_7PunaaryRCv:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvAF_10funerq_cgeVA7naqebvq3cqk7PunaaryRRRRRAF_22__habeqrerq_znc_unfureVvF7_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF7_AF_8rdhny_gbVvRRYo1RRRAF_9nyybpngbeVF7_RRR6erunfuRz
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvAF_10funerq_cgeVA7naqebvq3cqk7PunaaryRRRRRAF_22__habeqrerq_znc_unfureVvF7_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF7_AF_8rdhny_gbVvRRYo1RRRAF_9nyybpngbeVF7_RRR6erunfuRz
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvAF_10funerq_cgeVA7naqebvq3cqk7PunaaryRRRRRAF_22__habeqrerq_znc_unfureVvF7_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF7_AF_8rdhny_gbVvRRYo1RRRAF_9nyybpngbeVF7_RRR6erunfuRz,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvAF_10funerq_cgeVA7naqebvq3cqk7PunaaryRRRRRAF_22__habeqrerq_znc_unfureVvF7_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF7_AF_8rdhny_gbVvRRYo1RRRAF_9nyybpngbeVF7_RRR6erunfuRz:
 nop
@@ -333,7 +333,7 @@
 b__MA7naqebvq3cqk3hqf20PyvragPunaarySnpgbel6PerngrRAF0_10SvyrUnaqyrVYAF0_14SvyrUnaqyrZbqrR0RRR:
 nop
 .text
-.globl b__MAFg3__16irpgbeV5vbirpAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVEXF1_RRiBG_
+.weak b__MAFg3__16irpgbeV5vbirpAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVEXF1_RRiBG_
 .type b__MAFg3__16irpgbeV5vbirpAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVEXF1_RRiBG_,%function
 b__MAFg3__16irpgbeV5vbirpAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVEXF1_RRiBG_:
 nop
@@ -363,7 +363,7 @@
 b__MA7naqebvq3cqk3hqf13PyvragPunaary21FraqJvguPunaaryUnaqyrRCivCX5vbirpzF6_z:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq3cqk10SvyrUnaqyrVYAF2_14SvyrUnaqyrZbqrR2RRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_
+.weak b__MAFg3__16irpgbeVA7naqebvq3cqk10SvyrUnaqyrVYAF2_14SvyrUnaqyrZbqrR2RRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_
 .type b__MAFg3__16irpgbeVA7naqebvq3cqk10SvyrUnaqyrVYAF2_14SvyrUnaqyrZbqrR2RRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_,%function
 b__MAFg3__16irpgbeVA7naqebvq3cqk10SvyrUnaqyrVYAF2_14SvyrUnaqyrZbqrR2RRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_:
 nop
@@ -378,7 +378,7 @@
 b__MA7naqebvq3cqk3hqf8Raqcbvag20NyybpngrZrffntrFgngrRi:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvAF_10funerq_cgeVA7naqebvq3cqk7PunaaryRRRRRAF_22__habeqrerq_znc_unfureVvF7_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF7_AF_8rdhny_gbVvRRYo1RRRAF_9nyybpngbeVF7_RRR6erzbirRAF_21__unfu_pbafg_vgrengbeVCAF_11__unfu_abqrVF7_CiRRRR
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvAF_10funerq_cgeVA7naqebvq3cqk7PunaaryRRRRRAF_22__habeqrerq_znc_unfureVvF7_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF7_AF_8rdhny_gbVvRRYo1RRRAF_9nyybpngbeVF7_RRR6erzbirRAF_21__unfu_pbafg_vgrengbeVCAF_11__unfu_abqrVF7_CiRRRR
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvAF_10funerq_cgeVA7naqebvq3cqk7PunaaryRRRRRAF_22__habeqrerq_znc_unfureVvF7_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF7_AF_8rdhny_gbVvRRYo1RRRAF_9nyybpngbeVF7_RRR6erzbirRAF_21__unfu_pbafg_vgrengbeVCAF_11__unfu_abqrVF7_CiRRRR,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvAF_10funerq_cgeVA7naqebvq3cqk7PunaaryRRRRRAF_22__habeqrerq_znc_unfureVvF7_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF7_AF_8rdhny_gbVvRRYo1RRRAF_9nyybpngbeVF7_RRR6erzbirRAF_21__unfu_pbafg_vgrengbeVCAF_11__unfu_abqrVF7_CiRRRR:
 nop
@@ -388,7 +388,7 @@
 b__MGua8_A7naqebvq3cqk7Zrffntr13TrgSvyrUnaqyrRfCAF0_10SvyrUnaqyrVYAF0_14SvyrUnaqyrZbqrR0RRR:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvA7naqebvq3cqk3hqf20PunaaryRiragErprvireRRRAF_22__habeqrerq_znc_unfureVvF6_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF6_AF_8rdhny_gbVvRRYo1RRRAF_9nyybpngbeVF6_RRR6erzbirRAF_21__unfu_pbafg_vgrengbeVCAF_11__unfu_abqrVF6_CiRRRR
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvA7naqebvq3cqk3hqf20PunaaryRiragErprvireRRRAF_22__habeqrerq_znc_unfureVvF6_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF6_AF_8rdhny_gbVvRRYo1RRRAF_9nyybpngbeVF6_RRR6erzbirRAF_21__unfu_pbafg_vgrengbeVCAF_11__unfu_abqrVF6_CiRRRR
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvA7naqebvq3cqk3hqf20PunaaryRiragErprvireRRRAF_22__habeqrerq_znc_unfureVvF6_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF6_AF_8rdhny_gbVvRRYo1RRRAF_9nyybpngbeVF6_RRR6erzbirRAF_21__unfu_pbafg_vgrengbeVCAF_11__unfu_abqrVF6_CiRRRR,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvA7naqebvq3cqk3hqf20PunaaryRiragErprvireRRRAF_22__habeqrerq_znc_unfureVvF6_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF6_AF_8rdhny_gbVvRRYo1RRRAF_9nyybpngbeVF6_RRR6erzbirRAF_21__unfu_pbafg_vgrengbeVCAF_11__unfu_abqrVF6_CiRRRR:
 nop
@@ -398,7 +398,7 @@
 b__MGIA7naqebvq3cqk11GenafnpgvbaR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__16irpgbeVzAF_9nyybpngbeVzRRR21__chfu_onpx_fybj_cnguVzRRiBG_
+.weak b__MAFg3__16irpgbeVzAF_9nyybpngbeVzRRR21__chfu_onpx_fybj_cnguVzRRiBG_
 .type b__MAFg3__16irpgbeVzAF_9nyybpngbeVzRRR21__chfu_onpx_fybj_cnguVzRRiBG_,%function
 b__MAFg3__16irpgbeVzAF_9nyybpngbeVzRRR21__chfu_onpx_fybj_cnguVzRRiBG_:
 nop
@@ -478,7 +478,7 @@
 b__MA7naqebvq3cqk7Zrffntr7QrfgeblRi:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvA7naqebvq3cqk3hqf20PunaaryRiragErprvireRRRAF_22__habeqrerq_znc_unfureVvF6_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF6_AF_8rdhny_gbVvRRYo1RRRAF_9nyybpngbeVF6_RRR8__erunfuRz
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvA7naqebvq3cqk3hqf20PunaaryRiragErprvireRRRAF_22__habeqrerq_znc_unfureVvF6_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF6_AF_8rdhny_gbVvRRYo1RRRAF_9nyybpngbeVF6_RRR8__erunfuRz
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvA7naqebvq3cqk3hqf20PunaaryRiragErprvireRRRAF_22__habeqrerq_znc_unfureVvF6_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF6_AF_8rdhny_gbVvRRYo1RRRAF_9nyybpngbeVF6_RRR8__erunfuRz,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvA7naqebvq3cqk3hqf20PunaaryRiragErprvireRRRAF_22__habeqrerq_znc_unfureVvF6_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF6_AF_8rdhny_gbVvRRYo1RRRAF_9nyybpngbeVF6_RRR8__erunfuRz:
 nop
@@ -498,7 +498,7 @@
 b__MA7naqebvq3cqk3hqf14PunaaryZnantre12PerngrUnaqyrRAF0_10SvyrUnaqyrVYAF0_14SvyrUnaqyrZbqrR0RRRF5_F5_:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvA7naqebvq3cqk3hqf20PunaaryRiragErprvireRRRAF_22__habeqrerq_znc_unfureVvF6_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF6_AF_8rdhny_gbVvRRYo1RRRAF_9nyybpngbeVF6_RRR25__rzcynpr_havdhr_xrl_netfVvWEXvF5_RRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF6_CiRRRRoRREXG_QcBG0_
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvA7naqebvq3cqk3hqf20PunaaryRiragErprvireRRRAF_22__habeqrerq_znc_unfureVvF6_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF6_AF_8rdhny_gbVvRRYo1RRRAF_9nyybpngbeVF6_RRR25__rzcynpr_havdhr_xrl_netfVvWEXvF5_RRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF6_CiRRRRoRREXG_QcBG0_
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvA7naqebvq3cqk3hqf20PunaaryRiragErprvireRRRAF_22__habeqrerq_znc_unfureVvF6_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF6_AF_8rdhny_gbVvRRYo1RRRAF_9nyybpngbeVF6_RRR25__rzcynpr_havdhr_xrl_netfVvWEXvF5_RRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF6_CiRRRRoRREXG_QcBG0_,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvA7naqebvq3cqk3hqf20PunaaryRiragErprvireRRRAF_22__habeqrerq_znc_unfureVvF6_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF6_AF_8rdhny_gbVvRRYo1RRRAF_9nyybpngbeVF6_RRR25__rzcynpr_havdhr_xrl_netfVvWEXvF5_RRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF6_CiRRRRoRREXG_QcBG0_:
 nop
@@ -543,7 +543,7 @@
 b__MA7naqebvq3cqk3hqf8Raqcbvag16SerrZrffntrFgngrRCi:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVvA7naqebvq3cqk3hqf8Raqcbvag11PunaaryQngnRRRAF_19__znc_inyhr_pbzcnerVvF7_AF_4yrffVvRRYo1RRRAF_9nyybpngbeVF7_RRR7qrfgeblRCAF_11__gerr_abqrVF7_CiRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVvA7naqebvq3cqk3hqf8Raqcbvag11PunaaryQngnRRRAF_19__znc_inyhr_pbzcnerVvF7_AF_4yrffVvRRYo1RRRAF_9nyybpngbeVF7_RRR7qrfgeblRCAF_11__gerr_abqrVF7_CiRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVvA7naqebvq3cqk3hqf8Raqcbvag11PunaaryQngnRRRAF_19__znc_inyhr_pbzcnerVvF7_AF_4yrffVvRRYo1RRRAF_9nyybpngbeVF7_RRR7qrfgeblRCAF_11__gerr_abqrVF7_CiRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVvA7naqebvq3cqk3hqf8Raqcbvag11PunaaryQngnRRRAF_19__znc_inyhr_pbzcnerVvF7_AF_4yrffVvRRYo1RRRAF_9nyybpngbeVF7_RRR7qrfgeblRCAF_11__gerr_abqrVF7_CiRR:
 nop
@@ -553,7 +553,7 @@
 b__MA7naqebvq3cqk17FreivprQvfcngpure17RagreQvfcngpuYbbcRi:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvA7naqebvq3cqk3hqf20PunaaryRiragErprvireRRRAF_22__habeqrerq_znc_unfureVvF6_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF6_AF_8rdhny_gbVvRRYo1RRRAF_9nyybpngbeVF6_RRR6erunfuRz
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvA7naqebvq3cqk3hqf20PunaaryRiragErprvireRRRAF_22__habeqrerq_znc_unfureVvF6_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF6_AF_8rdhny_gbVvRRYo1RRRAF_9nyybpngbeVF6_RRR6erunfuRz
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvA7naqebvq3cqk3hqf20PunaaryRiragErprvireRRRAF_22__habeqrerq_znc_unfureVvF6_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF6_AF_8rdhny_gbVvRRYo1RRRAF_9nyybpngbeVF6_RRR6erunfuRz,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvA7naqebvq3cqk3hqf20PunaaryRiragErprvireRRRAF_22__habeqrerq_znc_unfureVvF6_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF6_AF_8rdhny_gbVvRRYo1RRRAF_9nyybpngbeVF6_RRR6erunfuRz:
 nop
@@ -578,7 +578,7 @@
 b__MA7naqebvq3cqk3hqf17PunaaryCneprynoyr14ernqSebzCnepryRCXAF_6CnepryR:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq3cqk3hqf11PunaaryVasbVAF2_10SvyrUnaqyrVYAF2_14SvyrUnaqyrZbqrR2RRRRRAF_9nyybpngbeVF8_RRR21__chfu_onpx_fybj_cnguVF8_RRiBG_
+.weak b__MAFg3__16irpgbeVA7naqebvq3cqk3hqf11PunaaryVasbVAF2_10SvyrUnaqyrVYAF2_14SvyrUnaqyrZbqrR2RRRRRAF_9nyybpngbeVF8_RRR21__chfu_onpx_fybj_cnguVF8_RRiBG_
 .type b__MAFg3__16irpgbeVA7naqebvq3cqk3hqf11PunaaryVasbVAF2_10SvyrUnaqyrVYAF2_14SvyrUnaqyrZbqrR2RRRRRAF_9nyybpngbeVF8_RRR21__chfu_onpx_fybj_cnguVF8_RRiBG_,%function
 b__MAFg3__16irpgbeVA7naqebvq3cqk3hqf11PunaaryVasbVAF2_10SvyrUnaqyrVYAF2_14SvyrUnaqyrZbqrR2RRRRRAF_9nyybpngbeVF8_RRR21__chfu_onpx_fybj_cnguVF8_RRiBG_:
 nop
@@ -658,7 +658,7 @@
 b__MA7naqebvq3cqk3hqf13PyvragPunaaryQ2Ri:
 nop
 .text
-.globl b__MAFg3__16irpgbeVvAF_9nyybpngbeVvRRR21__chfu_onpx_fybj_cnguVvRRiBG_
+.weak b__MAFg3__16irpgbeVvAF_9nyybpngbeVvRRR21__chfu_onpx_fybj_cnguVvRRiBG_
 .type b__MAFg3__16irpgbeVvAF_9nyybpngbeVvRRR21__chfu_onpx_fybj_cnguVvRRiBG_,%function
 b__MAFg3__16irpgbeVvAF_9nyybpngbeVvRRR21__chfu_onpx_fybj_cnguVvRRiBG_:
 nop
@@ -683,7 +683,7 @@
 b__MA7naqebvq3cqk3hqf14ErprvirCnlybnq28PbafhzrErnqOhssreFrpgvbaQngnRCXi:
 nop
 .text
-.globl b__MAFg3__16irpgbeVuAF_9nyybpngbeVuRRR6vafregVCXuRRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVuAF_15vgrengbe_genvgfVF8_R9ersreraprRRR5inyhrRAF_11__jenc_vgreVCuRRR4glcrRAFP_VF6_RRF8_F8_
+.weak b__MAFg3__16irpgbeVuAF_9nyybpngbeVuRRR6vafregVCXuRRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVuAF_15vgrengbe_genvgfVF8_R9ersreraprRRR5inyhrRAF_11__jenc_vgreVCuRRR4glcrRAFP_VF6_RRF8_F8_
 .type b__MAFg3__16irpgbeVuAF_9nyybpngbeVuRRR6vafregVCXuRRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVuAF_15vgrengbe_genvgfVF8_R9ersreraprRRR5inyhrRAF_11__jenc_vgreVCuRRR4glcrRAFP_VF6_RRF8_F8_,%function
 b__MAFg3__16irpgbeVuAF_9nyybpngbeVuRRR6vafregVCXuRRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVuAF_15vgrengbe_genvgfVF8_R9ersreraprRRR5inyhrRAF_11__jenc_vgreVCuRRR4glcrRAFP_VF6_RRF8_F8_:
 nop
@@ -798,7 +798,7 @@
 b__MA7naqebvq3cqk11GenafnpgvbaQ1Ri:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq3cqk10SvyrUnaqyrVYAF2_14SvyrUnaqyrZbqrR0RRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_
+.weak b__MAFg3__16irpgbeVA7naqebvq3cqk10SvyrUnaqyrVYAF2_14SvyrUnaqyrZbqrR0RRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_
 .type b__MAFg3__16irpgbeVA7naqebvq3cqk10SvyrUnaqyrVYAF2_14SvyrUnaqyrZbqrR0RRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_,%function
 b__MAFg3__16irpgbeVA7naqebvq3cqk10SvyrUnaqyrVYAF2_14SvyrUnaqyrZbqrR0RRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_:
 nop
@@ -878,7 +878,7 @@
 b__MA7naqebvq3cqk7Freivpr18TrgSebzZrffntrVasbREXAF0_11ZrffntrVasbR:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvAF_10funerq_cgeVA7naqebvq3cqk7PunaaryRRRRRAF_22__habeqrerq_znc_unfureVvF7_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF7_AF_8rdhny_gbVvRRYo1RRRAF_9nyybpngbeVF7_RRR25__rzcynpr_havdhr_xrl_netfVvWEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXvRRRAFA_VWRRRRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF7_CiRRRRoRREXG_QcBG0_
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvAF_10funerq_cgeVA7naqebvq3cqk7PunaaryRRRRRAF_22__habeqrerq_znc_unfureVvF7_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF7_AF_8rdhny_gbVvRRYo1RRRAF_9nyybpngbeVF7_RRR25__rzcynpr_havdhr_xrl_netfVvWEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXvRRRAFA_VWRRRRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF7_CiRRRRoRREXG_QcBG0_
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvAF_10funerq_cgeVA7naqebvq3cqk7PunaaryRRRRRAF_22__habeqrerq_znc_unfureVvF7_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF7_AF_8rdhny_gbVvRRYo1RRRAF_9nyybpngbeVF7_RRR25__rzcynpr_havdhr_xrl_netfVvWEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXvRRRAFA_VWRRRRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF7_CiRRRRoRREXG_QcBG0_,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvAF_10funerq_cgeVA7naqebvq3cqk7PunaaryRRRRRAF_22__habeqrerq_znc_unfureVvF7_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF7_AF_8rdhny_gbVvRRYo1RRRAF_9nyybpngbeVF7_RRR25__rzcynpr_havdhr_xrl_netfVvWEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXvRRRAFA_VWRRRRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF7_CiRRRRoRREXG_QcBG0_:
 nop
@@ -898,7 +898,7 @@
 b__MA7naqebvq3cqk7FreivprP2REXAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRAF2_10havdhr_cgeVAF0_8RaqcbvagRAF2_14qrsnhyg_qryrgrVFP_RRRR:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVvA7naqebvq3cqk3hqf8Raqcbvag11PunaaryQngnRRRAF_19__znc_inyhr_pbzcnerVvF7_AF_4yrffVvRRYo1RRRAF_9nyybpngbeVF7_RRR12__svaq_rdhnyVvRRECAF_16__gerr_abqr_onfrVCiRRAF_21__gerr_pbafg_vgrengbeVF7_CAF_11__gerr_abqrVF7_FU_RRyRRECAF_15__gerr_raq_abqrVFW_RRFX_EXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVvA7naqebvq3cqk3hqf8Raqcbvag11PunaaryQngnRRRAF_19__znc_inyhr_pbzcnerVvF7_AF_4yrffVvRRYo1RRRAF_9nyybpngbeVF7_RRR12__svaq_rdhnyVvRRECAF_16__gerr_abqr_onfrVCiRRAF_21__gerr_pbafg_vgrengbeVF7_CAF_11__gerr_abqrVF7_FU_RRyRRECAF_15__gerr_raq_abqrVFW_RRFX_EXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVvA7naqebvq3cqk3hqf8Raqcbvag11PunaaryQngnRRRAF_19__znc_inyhr_pbzcnerVvF7_AF_4yrffVvRRYo1RRRAF_9nyybpngbeVF7_RRR12__svaq_rdhnyVvRRECAF_16__gerr_abqr_onfrVCiRRAF_21__gerr_pbafg_vgrengbeVF7_CAF_11__gerr_abqrVF7_FU_RRyRRECAF_15__gerr_raq_abqrVFW_RRFX_EXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVvA7naqebvq3cqk3hqf8Raqcbvag11PunaaryQngnRRRAF_19__znc_inyhr_pbzcnerVvF7_AF_4yrffVvRRYo1RRRAF_9nyybpngbeVF7_RRR12__svaq_rdhnyVvRRECAF_16__gerr_abqr_onfrVCiRRAF_21__gerr_pbafg_vgrengbeVF7_CAF_11__gerr_abqrVF7_FU_RRyRRECAF_15__gerr_raq_abqrVFW_RRFX_EXG_:
 nop
@@ -938,7 +938,7 @@
 b__MA7naqebvq3cqk3hqf14FraqQngnIrpgbeREXAF0_10SvyrUnaqyrVYAF0_14SvyrUnaqyrZbqrR2RRRCX5vbirpz:
 nop
 .text
-.globl b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
+.weak b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
 .type b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_,%function
 b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_:
 nop
@@ -983,7 +983,7 @@
 b__MA7naqebvq3cqk3hqf8Raqcbvag4VavgRAF0_10SvyrUnaqyrVYAF0_14SvyrUnaqyrZbqrR0RRR:
 nop
 .text
-.globl b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
+.weak b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
 .type b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_,%function
 b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_:
 nop
@@ -1018,7 +1018,7 @@
 b__MA7naqebvq3cqk3hqf15PunaaryRiragFrgP2Ri:
 nop
 .text
-.globl b__MAFg3__16irpgbeVzAF_9nyybpngbeVzRRR21__chfu_onpx_fybj_cnguVEXzRRiBG_
+.weak b__MAFg3__16irpgbeVzAF_9nyybpngbeVzRRR21__chfu_onpx_fybj_cnguVEXzRRiBG_
 .type b__MAFg3__16irpgbeVzAF_9nyybpngbeVzRRR21__chfu_onpx_fybj_cnguVEXzRRiBG_,%function
 b__MAFg3__16irpgbeVzAF_9nyybpngbeVzRRR21__chfu_onpx_fybj_cnguVEXzRRiBG_:
 nop
@@ -1093,7 +1093,7 @@
 b__MA7naqebvq3cqk17FreivprQvfcngpureQ1Ri:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq3cqk10SvyrUnaqyrVYAF2_14SvyrUnaqyrZbqrR0RRRAF_9nyybpngbeVF5_RRR7erfreirRz
+.weak b__MAFg3__16irpgbeVA7naqebvq3cqk10SvyrUnaqyrVYAF2_14SvyrUnaqyrZbqrR0RRRAF_9nyybpngbeVF5_RRR7erfreirRz
 .type b__MAFg3__16irpgbeVA7naqebvq3cqk10SvyrUnaqyrVYAF2_14SvyrUnaqyrZbqrR0RRRAF_9nyybpngbeVF5_RRR7erfreirRz,%function
 b__MAFg3__16irpgbeVA7naqebvq3cqk10SvyrUnaqyrVYAF2_14SvyrUnaqyrZbqrR0RRRAF_9nyybpngbeVF5_RRR7erfreirRz:
 nop
@@ -1153,7 +1153,7 @@
 b__MA7naqebvq3cqk3hqf8Raqcbvag15ErnqZrffntrQngnRCAF0_7ZrffntrRCX5vbirpz:
 nop
 .text
-.globl b__MAFg3__124__chg_punenpgre_frdhraprVpAF_11pune_genvgfVpRRRREAF_13onfvp_bfgernzVG_G0_RRF7_CXF4_z
+.weak b__MAFg3__124__chg_punenpgre_frdhraprVpAF_11pune_genvgfVpRRRREAF_13onfvp_bfgernzVG_G0_RRF7_CXF4_z
 .type b__MAFg3__124__chg_punenpgre_frdhraprVpAF_11pune_genvgfVpRRRREAF_13onfvp_bfgernzVG_G0_RRF7_CXF4_z,%function
 b__MAFg3__124__chg_punenpgre_frdhraprVpAF_11pune_genvgfVpRRRREAF_13onfvp_bfgernzVG_G0_RRF7_CXF4_z:
 nop
@@ -1193,7 +1193,7 @@
 b__MA7naqebvq3cqk3hqf20PyvragPunaarySnpgbelP1RAF0_10SvyrUnaqyrVYAF0_14SvyrUnaqyrZbqrR0RRR:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVvA7naqebvq3cqk3hqf8Raqcbvag11PunaaryQngnRRRAF_19__znc_inyhr_pbzcnerVvF7_AF_4yrffVvRRYo1RRRAF_9nyybpngbeVF7_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVF7_CAF_11__gerr_abqrVF7_CiRRyRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVvA7naqebvq3cqk3hqf8Raqcbvag11PunaaryQngnRRRAF_19__znc_inyhr_pbzcnerVvF7_AF_4yrffVvRRYo1RRRAF_9nyybpngbeVF7_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVF7_CAF_11__gerr_abqrVF7_CiRRyRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVvA7naqebvq3cqk3hqf8Raqcbvag11PunaaryQngnRRRAF_19__znc_inyhr_pbzcnerVvF7_AF_4yrffVvRRYo1RRRAF_9nyybpngbeVF7_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVF7_CAF_11__gerr_abqrVF7_CiRRyRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVvA7naqebvq3cqk3hqf8Raqcbvag11PunaaryQngnRRRAF_19__znc_inyhr_pbzcnerVvF7_AF_4yrffVvRRYo1RRRAF_9nyybpngbeVF7_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVF7_CAF_11__gerr_abqrVF7_CiRRyRR:
 nop
@@ -1318,7 +1318,7 @@
 b__MA7naqebvq3cqk7Zrffntr5ErcylREXAF0_10SvyrUnaqyrVYAF0_14SvyrUnaqyrZbqrR1RRR:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_10funerq_cgeVA7naqebvq3cqk7FreivprRRRAF_9nyybpngbeVF5_RRR5renfrRAF_11__jenc_vgreVCXF5_RRFP_
+.weak b__MAFg3__16irpgbeVAF_10funerq_cgeVA7naqebvq3cqk7FreivprRRRAF_9nyybpngbeVF5_RRR5renfrRAF_11__jenc_vgreVCXF5_RRFP_
 .type b__MAFg3__16irpgbeVAF_10funerq_cgeVA7naqebvq3cqk7FreivprRRRAF_9nyybpngbeVF5_RRR5renfrRAF_11__jenc_vgreVCXF5_RRFP_,%function
 b__MAFg3__16irpgbeVAF_10funerq_cgeVA7naqebvq3cqk7FreivprRRRAF_9nyybpngbeVF5_RRR5renfrRAF_11__jenc_vgreVCXF5_RRFP_:
 nop
@@ -1388,7 +1388,7 @@
 b__MA7naqebvq3cqk11Genafnpgvba13TrgSvyrUnaqyrRfCAF0_10SvyrUnaqyrVYAF0_14SvyrUnaqyrZbqrR0RRR:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvAF_10funerq_cgeVA7naqebvq3cqk7PunaaryRRRRRAF_22__habeqrerq_znc_unfureVvF7_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF7_AF_8rdhny_gbVvRRYo1RRRAF_9nyybpngbeVF7_RRR14__renfr_havdhrVvRRzEXG_
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvAF_10funerq_cgeVA7naqebvq3cqk7PunaaryRRRRRAF_22__habeqrerq_znc_unfureVvF7_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF7_AF_8rdhny_gbVvRRYo1RRRAF_9nyybpngbeVF7_RRR14__renfr_havdhrVvRRzEXG_
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvAF_10funerq_cgeVA7naqebvq3cqk7PunaaryRRRRRAF_22__habeqrerq_znc_unfureVvF7_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF7_AF_8rdhny_gbVvRRYo1RRRAF_9nyybpngbeVF7_RRR14__renfr_havdhrVvRRzEXG_,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvAF_10funerq_cgeVA7naqebvq3cqk7PunaaryRRRRRAF_22__habeqrerq_znc_unfureVvF7_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF7_AF_8rdhny_gbVvRRYo1RRRAF_9nyybpngbeVF7_RRR14__renfr_havdhrVvRRzEXG_:
 nop
@@ -1508,12 +1508,12 @@
 b__MA7naqebvq3cqk7ZrffntrP1REXAF0_11ZrffntrVasbR:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVvvRRAF_19__znc_inyhr_pbzcnerVvF2_AF_4yrffVvRRYo1RRRAF_9nyybpngbeVF2_RRR7qrfgeblRCAF_11__gerr_abqrVF2_CiRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVvvRRAF_19__znc_inyhr_pbzcnerVvF2_AF_4yrffVvRRYo1RRRAF_9nyybpngbeVF2_RRR7qrfgeblRCAF_11__gerr_abqrVF2_CiRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVvvRRAF_19__znc_inyhr_pbzcnerVvF2_AF_4yrffVvRRYo1RRRAF_9nyybpngbeVF2_RRR7qrfgeblRCAF_11__gerr_abqrVF2_CiRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVvvRRAF_19__znc_inyhr_pbzcnerVvF2_AF_4yrffVvRRYo1RRRAF_9nyybpngbeVF2_RRR7qrfgeblRCAF_11__gerr_abqrVF2_CiRR:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvAF_10funerq_cgeVA7naqebvq3cqk7PunaaryRRRRRAF_22__habeqrerq_znc_unfureVvF7_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF7_AF_8rdhny_gbVvRRYo1RRRAF_9nyybpngbeVF7_RRR8__erunfuRz
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvAF_10funerq_cgeVA7naqebvq3cqk7PunaaryRRRRRAF_22__habeqrerq_znc_unfureVvF7_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF7_AF_8rdhny_gbVvRRYo1RRRAF_9nyybpngbeVF7_RRR8__erunfuRz
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvAF_10funerq_cgeVA7naqebvq3cqk7PunaaryRRRRRAF_22__habeqrerq_znc_unfureVvF7_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF7_AF_8rdhny_gbVvRRYo1RRRAF_9nyybpngbeVF7_RRR8__erunfuRz,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVvAF_10funerq_cgeVA7naqebvq3cqk7PunaaryRRRRRAF_22__habeqrerq_znc_unfureVvF7_AF_4unfuVvRRYo1RRRAF_21__habeqrerq_znc_rdhnyVvF7_AF_8rdhny_gbVvRRYo1RRRAF_9nyybpngbeVF7_RRR8__erunfuRz:
 nop
diff --git a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_135.S b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_135.S
index 5e427e9..1f7ac17 100644
--- a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_135.S
+++ b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_135.S
@@ -28,7 +28,7 @@
 b_nflap_fnsr_sngny_in_yvfg:
 nop
 .text
-.globl b__MAFg3__15qrdhrV15onpxgenpr_znc_gAF_9nyybpngbeVF1_RRR19__nqq_onpx_pncnpvglRz
+.weak b__MAFg3__15qrdhrV15onpxgenpr_znc_gAF_9nyybpngbeVF1_RRR19__nqq_onpx_pncnpvglRz
 .type b__MAFg3__15qrdhrV15onpxgenpr_znc_gAF_9nyybpngbeVF1_RRR19__nqq_onpx_pncnpvglRz,%function
 b__MAFg3__15qrdhrV15onpxgenpr_znc_gAF_9nyybpngbeVF1_RRR19__nqq_onpx_pncnpvglRz:
 nop
@@ -73,7 +73,7 @@
 b_nflap_fnsr_sbezng_ybt:
 nop
 .text
-.globl b__MAFg3__114__fcyvg_ohssreVC15onpxgenpr_znc_gEAF_9nyybpngbeVF2_RRR10chfu_sebagREXF2_
+.weak b__MAFg3__114__fcyvg_ohssreVC15onpxgenpr_znc_gEAF_9nyybpngbeVF2_RRR10chfu_sebagREXF2_
 .type b__MAFg3__114__fcyvg_ohssreVC15onpxgenpr_znc_gEAF_9nyybpngbeVF2_RRR10chfu_sebagREXF2_,%function
 b__MAFg3__114__fcyvg_ohssreVC15onpxgenpr_znc_gEAF_9nyybpngbeVF2_RRR10chfu_sebagREXF2_:
 nop
@@ -98,7 +98,7 @@
 b__MA17HajvaqFgnpxCgenpr4ErnqRzCuz:
 nop
 .data
-.globl b__MGIA11hajvaqfgnpx8HajvaqreR
+.weak b__MGIA11hajvaqfgnpx8HajvaqreR
 .type b__MGIA11hajvaqfgnpx8HajvaqreR,%object
 b__MGIA11hajvaqfgnpx8HajvaqreR:
 .space __SIZEOF_POINTER__
@@ -143,7 +143,7 @@
 b__MA18HajvaqFgnpxPheerag18TrgShapgvbaAnzrEnjRzCz:
 nop
 .text
-.globl b__MAFg3__114__fcyvg_ohssreVC15onpxgenpr_znc_gAF_9nyybpngbeVF2_RRR10chfu_sebagRBF2_
+.weak b__MAFg3__114__fcyvg_ohssreVC15onpxgenpr_znc_gAF_9nyybpngbeVF2_RRR10chfu_sebagRBF2_
 .type b__MAFg3__114__fcyvg_ohssreVC15onpxgenpr_znc_gAF_9nyybpngbeVF2_RRR10chfu_sebagRBF2_,%function
 b__MAFg3__114__fcyvg_ohssreVC15onpxgenpr_znc_gAF_9nyybpngbeVF2_RRR10chfu_sebagRBF2_:
 nop
@@ -198,12 +198,12 @@
 b__MGI17HajvaqFgnpxCgenpr:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__15qrdhrV15onpxgenpr_znc_gAF_9nyybpngbeVF1_RRR19__nqq_onpx_pncnpvglRi
+.weak b__MAFg3__15qrdhrV15onpxgenpr_znc_gAF_9nyybpngbeVF1_RRR19__nqq_onpx_pncnpvglRi
 .type b__MAFg3__15qrdhrV15onpxgenpr_znc_gAF_9nyybpngbeVF1_RRR19__nqq_onpx_pncnpvglRi,%function
 b__MAFg3__15qrdhrV15onpxgenpr_znc_gAF_9nyybpngbeVF1_RRR19__nqq_onpx_pncnpvglRi:
 nop
 .text
-.globl b__MAFg3__15qrdhrV15onpxgenpr_znc_gAF_9nyybpngbeVF1_RRR6erfvmrRz
+.weak b__MAFg3__15qrdhrV15onpxgenpr_znc_gAF_9nyybpngbeVF1_RRR6erfvmrRz
 .type b__MAFg3__15qrdhrV15onpxgenpr_znc_gAF_9nyybpngbeVF1_RRR6erfvmrRz,%function
 b__MAFg3__15qrdhrV15onpxgenpr_znc_gAF_9nyybpngbeVF1_RRR6erfvmrRz:
 nop
@@ -228,12 +228,12 @@
 b__MA14HajvaqFgnpxZnc5OhvyqRi:
 nop
 .text
-.globl b__MAFg3__114__fcyvg_ohssreVC15onpxgenpr_znc_gAF_9nyybpngbeVF2_RRR9chfu_onpxRBF2_
+.weak b__MAFg3__114__fcyvg_ohssreVC15onpxgenpr_znc_gAF_9nyybpngbeVF2_RRR9chfu_onpxRBF2_
 .type b__MAFg3__114__fcyvg_ohssreVC15onpxgenpr_znc_gAF_9nyybpngbeVF2_RRR9chfu_onpxRBF2_,%function
 b__MAFg3__114__fcyvg_ohssreVC15onpxgenpr_znc_gAF_9nyybpngbeVF2_RRR9chfu_onpxRBF2_:
 nop
 .text
-.globl b__MAFg3__114__fcyvg_ohssreVC15onpxgenpr_znc_gEAF_9nyybpngbeVF2_RRR9chfu_onpxRBF2_
+.weak b__MAFg3__114__fcyvg_ohssreVC15onpxgenpr_znc_gEAF_9nyybpngbeVF2_RRR9chfu_onpxRBF2_
 .type b__MAFg3__114__fcyvg_ohssreVC15onpxgenpr_znc_gEAF_9nyybpngbeVF2_RRR9chfu_onpxRBF2_,%function
 b__MAFg3__114__fcyvg_ohssreVC15onpxgenpr_znc_gEAF_9nyybpngbeVF2_RRR9chfu_onpxRBF2_:
 nop
@@ -278,7 +278,7 @@
 b__MA17HajvaqFgnpxCgenprP2RvvC12OnpxgenprZnc:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA11hajvaqfgnpx9SenzrQngnRAF_9nyybpngbeVF2_RRR7erfreirRz
+.weak b__MAFg3__16irpgbeVA11hajvaqfgnpx9SenzrQngnRAF_9nyybpngbeVF2_RRR7erfreirRz
 .type b__MAFg3__16irpgbeVA11hajvaqfgnpx9SenzrQngnRAF_9nyybpngbeVF2_RRR7erfreirRz,%function
 b__MAFg3__16irpgbeVA11hajvaqfgnpx9SenzrQngnRAF_9nyybpngbeVF2_RRR7erfreirRz:
 nop
@@ -288,12 +288,12 @@
 b_nflap_fnsr_sbezng_ohssre_in_yvfg:
 nop
 .text
-.globl b__MA7naqebvq8cebpvasb18ErnqZncSvyrPbagragVAFg3__18shapgvbaVSizzgzzCXpRRRRRoCpEXG_
+.weak b__MA7naqebvq8cebpvasb18ErnqZncSvyrPbagragVAFg3__18shapgvbaVSizzgzzCXpRRRRRoCpEXG_
 .type b__MA7naqebvq8cebpvasb18ErnqZncSvyrPbagragVAFg3__18shapgvbaVSizzgzzCXpRRRRRoCpEXG_,%function
 b__MA7naqebvq8cebpvasb18ErnqZncSvyrPbagragVAFg3__18shapgvbaVSizzgzzCXpRRRRRoCpEXG_:
 nop
 .text
-.globl b__MAFg3__112__qrdhr_onfrV15onpxgenpr_znc_gAF_9nyybpngbeVF1_RRR5pyrneRi
+.weak b__MAFg3__112__qrdhr_onfrV15onpxgenpr_znc_gAF_9nyybpngbeVF1_RRR5pyrneRi
 .type b__MAFg3__112__qrdhr_onfrV15onpxgenpr_znc_gAF_9nyybpngbeVF1_RRR5pyrneRi,%function
 b__MAFg3__112__qrdhr_onfrV15onpxgenpr_znc_gAF_9nyybpngbeVF1_RRR5pyrneRi:
 nop
@@ -368,7 +368,7 @@
 b__MA11GuernqRagelQ2Ri:
 nop
 .text
-.globl b__MAFg3__16irpgbeV22onpxgenpr_senzr_qngn_gAF_9nyybpngbeVF1_RRR8__nccraqRz
+.weak b__MAFg3__16irpgbeV22onpxgenpr_senzr_qngn_gAF_9nyybpngbeVF1_RRR8__nccraqRz
 .type b__MAFg3__16irpgbeV22onpxgenpr_senzr_qngn_gAF_9nyybpngbeVF1_RRR8__nccraqRz,%function
 b__MAFg3__16irpgbeV22onpxgenpr_senzr_qngn_gAF_9nyybpngbeVF1_RRR8__nccraqRz:
 nop
@@ -393,7 +393,7 @@
 b__MA12OnpxgenprZncP1Rv:
 nop
 .text
-.globl b__MAFg3__15qrdhrV15onpxgenpr_znc_gAF_9nyybpngbeVF1_RRR14__renfr_gb_raqRAF_16__qrdhr_vgrengbeVF1_CXF1_EF6_CXF7_yYy64RRR
+.weak b__MAFg3__15qrdhrV15onpxgenpr_znc_gAF_9nyybpngbeVF1_RRR14__renfr_gb_raqRAF_16__qrdhr_vgrengbeVF1_CXF1_EF6_CXF7_yYy64RRR
 .type b__MAFg3__15qrdhrV15onpxgenpr_znc_gAF_9nyybpngbeVF1_RRR14__renfr_gb_raqRAF_16__qrdhr_vgrengbeVF1_CXF1_EF6_CXF7_yYy64RRR,%function
 b__MAFg3__15qrdhrV15onpxgenpr_znc_gAF_9nyybpngbeVF1_RRR14__renfr_gb_raqRAF_16__qrdhr_vgrengbeVF1_CXF1_EF6_CXF7_yYy64RRR:
 nop
@@ -418,7 +418,7 @@
 b__MGI14HajvaqFgnpxZnc:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIA11hajvaqfgnpx9YbpnyZncfR
+.weak b__MGIA11hajvaqfgnpx9YbpnyZncfR
 .type b__MGIA11hajvaqfgnpx9YbpnyZncfR,%object
 b__MGIA11hajvaqfgnpx9YbpnyZncfR:
 .space __SIZEOF_POINTER__
diff --git a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_136.S b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_136.S
index eabb341..6b62b0f 100644
--- a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_136.S
+++ b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_136.S
@@ -33,7 +33,7 @@
 b__MA7naqebvq8uneqjner11pbasvtfgber4I1_025OcUjFhesnprSyvatrePbasvtf19_uvqy_unfUQEQvfcynlRCAF0_10VVagresnprRCAF0_7qrgnvyf16UvqyVafgehzragbeRAFg3__18shapgvbaVSiEXAF2_12BcgvbanyObbyRRRR:
 nop
 .text
-.globl b__MAXFg3__18shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF7_F7_F7_CAF_6irpgbeVCiAF_9nyybpngbeVF9_RRRRRRpyRF5_F7_F7_F7_F7_FQ_
+.weak b__MAXFg3__18shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF7_F7_F7_CAF_6irpgbeVCiAF_9nyybpngbeVF9_RRRRRRpyRF5_F7_F7_F7_F7_FQ_
 .type b__MAXFg3__18shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF7_F7_F7_CAF_6irpgbeVCiAF_9nyybpngbeVF9_RRRRRRpyRF5_F7_F7_F7_F7_FQ_,%function
 b__MAXFg3__18shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF7_F7_F7_CAF_6irpgbeVCiAF_9nyybpngbeVF9_RRRRRRpyRF5_F7_F7_F7_F7_FQ_:
 nop
@@ -103,7 +103,7 @@
 b__MA7naqebvq8uneqjner11pbasvtfgber4I1_025OaUjFhesnprSyvatrePbasvtf31_uvqy_iflapFsRiragCunfrBssfrgAfRCAF_4uvqy4onfr4I1_08OaUjOnfrREXAF0_6CnepryRCF9_AFg3__18shapgvbaVSiEF9_RRR:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_:
 nop
@@ -128,12 +128,12 @@
 b__MA7naqebvq8uneqjner11pbasvtfgber4I1_025OcUjFhesnprSyvatrePbasvtf5qrohtREXAF0_11uvqy_unaqyrREXAF0_8uvqy_irpVAF0_11uvqy_fgevatRRR:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_11pbasvtfgber4I1_022VFhesnprSyvatrePbasvtfRAF_4uvqy4onfr4I1_05VOnfrRAF4_25OcUjFhesnprSyvatrePbasvtfRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_11pbasvtfgber4I1_022VFhesnprSyvatrePbasvtfRAF_4uvqy4onfr4I1_05VOnfrRAF4_25OcUjFhesnprSyvatrePbasvtfRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo
 .type b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_11pbasvtfgber4I1_022VFhesnprSyvatrePbasvtfRAF_4uvqy4onfr4I1_05VOnfrRAF4_25OcUjFhesnprSyvatrePbasvtfRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_11pbasvtfgber4I1_022VFhesnprSyvatrePbasvtfRAF_4uvqy4onfr4I1_05VOnfrRAF4_25OcUjFhesnprSyvatrePbasvtfRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRR:
 nop
@@ -168,7 +168,7 @@
 b__MA7naqebvq8uneqjner11pbasvtfgber4I1_025OcUjFhesnprSyvatrePbasvtf27_uvqy_znkIveghnyQvfcynlFvmrRCAF0_10VVagresnprRCAF0_7qrgnvyf16UvqyVafgehzragbeRAFg3__18shapgvbaVSiEXAF2_14BcgvbanyHVag64RRRR:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRP2REXFU_
+.weak b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRP2REXFU_
 .type b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRP2REXFU_,%function
 b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRP2REXFU_:
 nop
@@ -213,7 +213,7 @@
 b__MA7naqebvq8uneqjner11pbasvtfgber4I1_025OcUjFhesnprSyvatrePbasvtf22_uvqy_unfFlapSenzrjbexRCAF0_10VVagresnprRCAF0_7qrgnvyf16UvqyVafgehzragbeRAFg3__18shapgvbaVSiEXAF2_12BcgvbanyObbyRRRR:
 nop
 .text
-.globl b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
+.weak b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
 .type b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_,%function
 b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_:
 nop
@@ -233,7 +233,7 @@
 b__MA7naqebvq8uneqjner11pbasvtfgber4I1_025OcUjFhesnprSyvatrePbasvtf12trgUnfuPunvaRAFg3__18shapgvbaVSiEXAF0_8uvqy_irpVAF0_10uvqy_neenlVuYz32RWRRRRRRRR:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_8uneqjner27uvqy_ovaqre_qrngu_erpvcvragRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_
+.weak b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_8uneqjner27uvqy_ovaqre_qrngu_erpvcvragRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_
 .type b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_8uneqjner27uvqy_ovaqre_qrngu_erpvcvragRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_,%function
 b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_8uneqjner27uvqy_ovaqre_qrngu_erpvcvragRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_:
 nop
@@ -243,7 +243,7 @@
 b__MA7naqebvq8uneqjner11pbasvtfgber4I1_025OaUjFhesnprSyvatrePbasvtf22_uvqy_unfFlapSenzrjbexRCAF_4uvqy4onfr4I1_08OaUjOnfrREXAF0_6CnepryRCF9_AFg3__18shapgvbaVSiEF9_RRR:
 nop
 .data
-.globl b__MGPA7naqebvq8uneqjner11pbasvtfgber4I1_023OfFhesnprSyvatrePbasvtfR0_AF2_22VFhesnprSyvatrePbasvtfR
+.weak b__MGPA7naqebvq8uneqjner11pbasvtfgber4I1_023OfFhesnprSyvatrePbasvtfR0_AF2_22VFhesnprSyvatrePbasvtfR
 .type b__MGPA7naqebvq8uneqjner11pbasvtfgber4I1_023OfFhesnprSyvatrePbasvtfR0_AF2_22VFhesnprSyvatrePbasvtfR,%object
 b__MGPA7naqebvq8uneqjner11pbasvtfgber4I1_023OfFhesnprSyvatrePbasvtfR0_AF2_22VFhesnprSyvatrePbasvtfR:
 .space __SIZEOF_POINTER__
@@ -328,7 +328,7 @@
 b__MA7naqebvq8uneqjner11pbasvtfgber4I1_025OcUjFhesnprSyvatrePbasvtf29fgnegTencuvpfNyybpngbeFreivprRAFg3__18shapgvbaVSiEXAF2_12BcgvbanyObbyRRRR:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFT_RRECAF_15__gerr_raq_abqrVFG_RREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFT_RRECAF_15__gerr_raq_abqrVFG_RREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFT_RRECAF_15__gerr_raq_abqrVFG_RREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFT_RRECAF_15__gerr_raq_abqrVFG_RREXG_:
 nop
@@ -403,7 +403,7 @@
 b__MA7naqebvq8uneqjner11pbasvtfgber4I1_025OcUjFhesnprSyvatrePbasvtfP2REXAF_2fcVAF0_7VOvaqreRRR:
 nop
 .text
-.globl b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
+.weak b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
 .type b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_,%function
 b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_:
 nop
@@ -428,12 +428,12 @@
 b__MA7naqebvq8uneqjner11pbasvtfgber4I1_025OcUjFhesnprSyvatrePbasvtf31_uvqy_iflapFsRiragCunfrBssfrgAfRCAF0_10VVagresnprRCAF0_7qrgnvyf16UvqyVafgehzragbeRAFg3__18shapgvbaVSiEXAF2_13BcgvbanyVag64RRRR:
 nop
 .text
-.globl b__MAFg3__16irpgbeVCiAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_
+.weak b__MAFg3__16irpgbeVCiAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_
 .type b__MAFg3__16irpgbeVCiAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_,%function
 b__MAFg3__16irpgbeVCiAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_11pbasvtfgber4I1_025OcUjFhesnprSyvatrePbasvtfRAF4_22VFhesnprSyvatrePbasvtfRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_11pbasvtfgber4I1_025OcUjFhesnprSyvatrePbasvtfRAF4_22VFhesnprSyvatrePbasvtfRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo
 .type b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_11pbasvtfgber4I1_025OcUjFhesnprSyvatrePbasvtfRAF4_22VFhesnprSyvatrePbasvtfRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_11pbasvtfgber4I1_025OcUjFhesnprSyvatrePbasvtfRAF4_22VFhesnprSyvatrePbasvtfRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo:
 nop
@@ -513,12 +513,12 @@
 b__MA7naqebvq8uneqjner11pbasvtfgber4I1_025OcUjFhesnprSyvatrePbasvtf13unfUQEQvfcynlRAFg3__18shapgvbaVSiEXAF2_12BcgvbanyObbyRRRR:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFR_RRECAF_15__gerr_raq_abqrVFE_RREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFR_RRECAF_15__gerr_raq_abqrVFE_RREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFR_RRECAF_15__gerr_raq_abqrVFE_RREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFR_RRECAF_15__gerr_raq_abqrVFE_RREXG_:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_:
 nop
@@ -543,7 +543,7 @@
 b__MA7naqebvq8uneqjner11pbasvtfgber4I1_025OcUjFhesnprSyvatrePbasvtf19vagresnprQrfpevcgbeRAFg3__18shapgvbaVSiEXAF0_11uvqy_fgevatRRRR:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRR:
 nop
@@ -568,7 +568,7 @@
 b__MA7naqebvq8uneqjner11pbasvtfgber4I1_025OcUjFhesnprSyvatrePbasvtf24_uvqy_hfrPbagrkgCevbevglRCAF0_10VVagresnprRCAF0_7qrgnvyf16UvqyVafgehzragbeRAFg3__18shapgvbaVSiEXAF2_12BcgvbanyObbyRRRR:
 nop
 .data
-.globl b__MGIA7naqebvq8uneqjner11pbasvtfgber4I1_023OfFhesnprSyvatrePbasvtfR
+.weak b__MGIA7naqebvq8uneqjner11pbasvtfgber4I1_023OfFhesnprSyvatrePbasvtfR
 .type b__MGIA7naqebvq8uneqjner11pbasvtfgber4I1_023OfFhesnprSyvatrePbasvtfR,%object
 b__MGIA7naqebvq8uneqjner11pbasvtfgber4I1_023OfFhesnprSyvatrePbasvtfR:
 .space __SIZEOF_POINTER__
diff --git a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_137.S b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_137.S
index 5e3aa7f..2f88dfe 100644
--- a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_137.S
+++ b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_137.S
@@ -18,12 +18,12 @@
 b__MA7naqebvq8uneqjner7qrgnvyf16ybtNyjnlfIreobfrREXAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRR:
 nop
 .text
-.globl b__MAFg3__124__chg_punenpgre_frdhraprVpAF_11pune_genvgfVpRRRREAF_13onfvp_bfgernzVG_G0_RRF7_CXF4_z
+.weak b__MAFg3__124__chg_punenpgre_frdhraprVpAF_11pune_genvgfVpRRRREAF_13onfvp_bfgernzVG_G0_RRF7_CXF4_z
 .type b__MAFg3__124__chg_punenpgre_frdhraprVpAF_11pune_genvgfVpRRRREAF_13onfvp_bfgernzVG_G0_RRF7_CXF4_z,%function
 b__MAFg3__124__chg_punenpgre_frdhraprVpAF_11pune_genvgfVpRRRREAF_13onfvp_bfgernzVG_G0_RRF7_CXF4_z:
 nop
 .text
-.globl b__MAFg3__1yfVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRREAF_13onfvp_bfgernzVG_G0_RRF9_EXAF_12onfvp_fgevatVF6_F7_G1_RR
+.weak b__MAFg3__1yfVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRREAF_13onfvp_bfgernzVG_G0_RRF9_EXAF_12onfvp_fgevatVF6_F7_G1_RR
 .type b__MAFg3__1yfVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRREAF_13onfvp_bfgernzVG_G0_RRF9_EXAF_12onfvp_fgevatVF6_F7_G1_RR,%function
 b__MAFg3__1yfVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRREAF_13onfvp_bfgernzVG_G0_RRF9_EXAF_12onfvp_fgevatVF6_F7_G1_RR:
 nop
diff --git a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_138.S b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_138.S
index 8d98095..5c8da90 100644
--- a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_138.S
+++ b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_138.S
@@ -48,7 +48,7 @@
 b__MGV8qat_rkvs:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__114__fcyvg_ohssreV23qat_pnzren_cebsvyr_vasbE17qat_fgq_nyybpngbeVF1_RRQ2Ri
+.weak b__MAFg3__114__fcyvg_ohssreV23qat_pnzren_cebsvyr_vasbE17qat_fgq_nyybpngbeVF1_RRQ2Ri
 .type b__MAFg3__114__fcyvg_ohssreV23qat_pnzren_cebsvyr_vasbE17qat_fgq_nyybpngbeVF1_RRQ2Ri,%function
 b__MAFg3__114__fcyvg_ohssreV23qat_pnzren_cebsvyr_vasbE17qat_fgq_nyybpngbeVF1_RRQ2Ri:
 nop
@@ -98,7 +98,7 @@
 b__MAX15qat_pbybe_fcnpr10VPPCebsvyrREwECXu:
 nop
 .data
-.globl b__MGV10gnt_hvag16
+.weak b__MGV10gnt_hvag16
 .type b__MGV10gnt_hvag16,%object
 b__MGV10gnt_hvag16:
 .space __SIZEOF_POINTER__
@@ -158,7 +158,7 @@
 b__MAX27qat_jnec_cnenzf_erpgvyvarne4QhzcRi:
 nop
 .data
-.globl b__MGV23qat_vacynpr_bcpbqr_gnfx
+.weak b__MGV23qat_vacynpr_bcpbqr_gnfx
 .type b__MGV23qat_vacynpr_bcpbqr_gnfx,%object
 b__MGV23qat_vacynpr_bcpbqr_gnfx:
 .space __SIZEOF_POINTER__
@@ -233,7 +233,7 @@
 b__MA8qat_rkvs15Cnefr_vsq0_rkvsRE10qat_fgernzE10qat_funerqwwwwz:
 nop
 .text
-.globl b__MAFg3__16irpgbeVq17qat_fgq_nyybpngbeVqRR8__nccraqRz
+.weak b__MAFg3__16irpgbeVq17qat_fgq_nyybpngbeVqRR8__nccraqRz
 .type b__MAFg3__16irpgbeVq17qat_fgq_nyybpngbeVqRR8__nccraqRz,%function
 b__MAFg3__16irpgbeVq17qat_fgq_nyybpngbeVqRR8__nccraqRz:
 nop
@@ -243,7 +243,7 @@
 b__MAX10qat_fgevat7VfRzcglRi:
 nop
 .data
-.globl b__MGF17gnt_fengvbany_cge
+.weak b__MGF17gnt_fengvbany_cge
 .type b__MGF17gnt_fengvbany_cge,%object
 b__MGF17gnt_fengvbany_cge:
 .space __SIZEOF_POINTER__
@@ -253,7 +253,7 @@
 b__M13ErsPbclNern32CXwCwwwwvvvvvv:
 nop
 .data
-.globl b__MGF16GrzcYvggyrRaqvna
+.weak b__MGF16GrzcYvggyrRaqvna
 .type b__MGF16GrzcYvggyrRaqvna,%object
 b__MGF16GrzcYvggyrRaqvna:
 .space __SIZEOF_POINTER__
@@ -273,7 +273,7 @@
 b__MA24qat_wcrt_cerivrj_gnt_frgQ1Ri:
 nop
 .text
-.globl b__MAFg3__16irpgbeV18qat_abvfr_shapgvba17qat_fgq_nyybpngbeVF1_RR21__chfu_onpx_fybj_cnguVF1_RRiBG_
+.weak b__MAFg3__16irpgbeV18qat_abvfr_shapgvba17qat_fgq_nyybpngbeVF1_RR21__chfu_onpx_fybj_cnguVF1_RRiBG_
 .type b__MAFg3__16irpgbeV18qat_abvfr_shapgvba17qat_fgq_nyybpngbeVF1_RR21__chfu_onpx_fybj_cnguVF1_RRiBG_,%function
 b__MAFg3__16irpgbeV18qat_abvfr_shapgvba17qat_fgq_nyybpngbeVF1_RR21__chfu_onpx_fybj_cnguVF1_RRiBG_:
 nop
@@ -298,7 +298,7 @@
 b__MA16qat_cvkry_ohssre13ErcrngFhoNernR8qat_erpgww:
 nop
 .text
-.globl b__MAFg3__16irpgbeV9qat_cbvag17qat_fgq_nyybpngbeVF1_RR21__chfu_onpx_fybj_cnguVEXF1_RRiBG_
+.weak b__MAFg3__16irpgbeV9qat_cbvag17qat_fgq_nyybpngbeVF1_RR21__chfu_onpx_fybj_cnguVEXF1_RRiBG_
 .type b__MAFg3__16irpgbeV9qat_cbvag17qat_fgq_nyybpngbeVF1_RR21__chfu_onpx_fybj_cnguVEXF1_RRiBG_,%function
 b__MAFg3__16irpgbeV9qat_cbvag17qat_fgq_nyybpngbeVF1_RR21__chfu_onpx_fybj_cnguVEXF1_RRiBG_:
 nop
@@ -308,7 +308,7 @@
 b__M19ErsOnfryvarNOPgbETOCXsF0_F0_CsF1_F1_wEX10qat_irpgbeEX10qat_zngevk:
 nop
 .data
-.globl b__MGI17qat_fcnpr_snxrETO
+.weak b__MGI17qat_fcnpr_snxrETO
 .type b__MGI17qat_fcnpr_snxrETO,%object
 b__MGI17qat_fcnpr_snxrETO:
 .space __SIZEOF_POINTER__
@@ -383,7 +383,7 @@
 b__MA17qat_vzntr_fcbbyreP1RE8qat_ubfgEX7qat_vsqE9qat_vzntrEX8qat_erpgwwE16qat_zrzbel_oybpxE7NhgbCgeVFN_R:
 nop
 .data
-.globl b__MGV10qat_irpgbe
+.weak b__MGV10qat_irpgbe
 .type b__MGV10qat_irpgbe,%object
 b__MGV10qat_irpgbe:
 .space __SIZEOF_POINTER__
@@ -523,7 +523,7 @@
 b__M14ErsErcrngNern8CXuCuwwwvvvwwww:
 nop
 .data
-.globl b__MGF31qat_wcrt_vzntr_svaq_qvtrfg_gnfx
+.weak b__MGF31qat_wcrt_vzntr_svaq_qvtrfg_gnfx
 .type b__MGF31qat_wcrt_vzntr_svaq_qvtrfg_gnfx,%object
 b__MGF31qat_wcrt_vzntr_svaq_qvtrfg_gnfx:
 .space __SIZEOF_POINTER__
@@ -553,7 +553,7 @@
 b__MA15qat_bcpbqr_yvfg5NccylRE8qat_ubfgE12qat_artngvirE7NhgbCgeV9qat_vzntrR:
 nop
 .text
-.globl b__MAFg3__16irpgbeV23qat_pnzren_cebsvyr_vasb17qat_fgq_nyybpngbeVF1_RR21__chfu_onpx_fybj_cnguVEXF1_RRiBG_
+.weak b__MAFg3__16irpgbeV23qat_pnzren_cebsvyr_vasb17qat_fgq_nyybpngbeVF1_RR21__chfu_onpx_fybj_cnguVEXF1_RRiBG_
 .type b__MAFg3__16irpgbeV23qat_pnzren_cebsvyr_vasb17qat_fgq_nyybpngbeVF1_RR21__chfu_onpx_fybj_cnguVEXF1_RRiBG_,%function
 b__MAFg3__16irpgbeV23qat_pnzren_cebsvyr_vasb17qat_fgq_nyybpngbeVF1_RR21__chfu_onpx_fybj_cnguVEXF1_RRiBG_:
 nop
@@ -658,7 +658,7 @@
 b__MA15qat_zbfnvp_vasbP1Ri:
 nop
 .data
-.globl b__MGV17gnt_fengvbany_cge
+.weak b__MGV17gnt_fengvbany_cge
 .type b__MGV17gnt_fengvbany_cge,%object
 b__MGV17gnt_fengvbany_cge:
 .space __SIZEOF_POINTER__
@@ -748,7 +748,7 @@
 b__MA18qat_pnzren_cebsvyr4FghoRi:
 nop
 .data
-.globl b__MGF22qat_zq5_cevagre_fgernz
+.weak b__MGF22qat_zq5_cevagre_fgernz
 .type b__MGF22qat_zq5_cevagre_fgernz,%object
 b__MGF22qat_zq5_cevagre_fgernz:
 .space __SIZEOF_POINTER__
@@ -818,7 +818,7 @@
 b__MA18qat_onq_cvkry_yvfgP2Ri:
 nop
 .data
-.globl b__MGI22qat_zq5_cevagre_fgernz
+.weak b__MGI22qat_zq5_cevagre_fgernz
 .type b__MGI22qat_zq5_cevagre_fgernz,%object
 b__MGI22qat_zq5_cevagre_fgernz:
 .space __SIZEOF_POINTER__
@@ -848,7 +848,7 @@
 b__MA26qat_qngr_gvzr_fgbentr_vasbP2Ri:
 nop
 .data
-.globl b__MGF18qat_abvfr_shapgvba
+.weak b__MGF18qat_abvfr_shapgvba
 .type b__MGF18qat_abvfr_shapgvba,%object
 b__MGF18qat_abvfr_shapgvba:
 .space __SIZEOF_POINTER__
@@ -898,7 +898,7 @@
 b__M13FnsrVag32Zhygvv:
 nop
 .data
-.globl b__MGI31qat_wcrt_vzntr_svaq_qvtrfg_gnfx
+.weak b__MGI31qat_wcrt_vzntr_svaq_qvtrfg_gnfx
 .type b__MGI31qat_wcrt_vzntr_svaq_qvtrfg_gnfx,%object
 b__MGI31qat_wcrt_vzntr_svaq_qvtrfg_gnfx:
 .space __SIZEOF_POINTER__
@@ -923,7 +923,7 @@
 b__MA10qat_fgernz15FrgErnqCbfvgvbaRz:
 nop
 .data
-.globl b__MGF13qat_rkprcgvba
+.weak b__MGF13qat_rkprcgvba
 .type b__MGF13qat_rkprcgvba,%object
 b__MGF13qat_rkprcgvba:
 .space __SIZEOF_POINTER__
@@ -1073,7 +1073,7 @@
 b__MA17qat_zrzbel_fgernz12PbclGbFgernzRE10qat_fgernzz:
 nop
 .data
-.globl b__MGI9gnt_hvag8
+.weak b__MGI9gnt_hvag8
 .type b__MGI9gnt_hvag8,%object
 b__MGI9gnt_hvag8:
 .space __SIZEOF_POINTER__
@@ -1153,7 +1153,7 @@
 b__MAX22qat_yvarnevmngvba_vasb13ZnkOynpxYriryRw:
 nop
 .data
-.globl b__MGV10gnt_erny64
+.weak b__MGV10gnt_erny64
 .type b__MGV10gnt_erny64,%object
 b__MGV10gnt_erny64:
 .space __SIZEOF_POINTER__
@@ -1253,7 +1253,7 @@
 b__MGF12qat_1q_gnoyr:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGF31gvss_qat_rkgraqrq_pbybe_cebsvyr
+.weak b__MGF31gvss_qat_rkgraqrq_pbybe_cebsvyr
 .type b__MGF31gvss_qat_rkgraqrq_pbybe_cebsvyr,%object
 b__MGF31gvss_qat_rkgraqrq_pbybe_cebsvyr:
 .space __SIZEOF_POINTER__
@@ -1298,12 +1298,12 @@
 b__MGF18qat_vacynpr_bcpbqr:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGI15qat_zngevk_4ol3
+.weak b__MGI15qat_zngevk_4ol3
 .type b__MGI15qat_zngevk_4ol3,%object
 b__MGI15qat_zngevk_4ol3:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7NhgbCgeV14qat_wcrt_vzntrRQ2Ri
+.weak b__MA7NhgbCgeV14qat_wcrt_vzntrRQ2Ri
 .type b__MA7NhgbCgeV14qat_wcrt_vzntrRQ2Ri,%function
 b__MA7NhgbCgeV14qat_wcrt_vzntrRQ2Ri:
 nop
@@ -1353,7 +1353,7 @@
 b__MA17qat_abvfr_cebsvyrP1Ri:
 nop
 .text
-.globl b__MAFg3__16irpgbeV15qat_svatrecevag17qat_fgq_nyybpngbeVF1_RRP2Rz
+.weak b__MAFg3__16irpgbeV15qat_svatrecevag17qat_fgq_nyybpngbeVF1_RRP2Rz
 .type b__MAFg3__16irpgbeV15qat_svatrecevag17qat_fgq_nyybpngbeVF1_RRP2Rz,%function
 b__MAFg3__16irpgbeV15qat_svatrecevag17qat_fgq_nyybpngbeVF1_RRP2Rz:
 nop
@@ -1393,7 +1393,7 @@
 b__MA16qat_vzntr_jevgreQ2Ri:
 nop
 .data
-.globl b__MGF8gvss_gnt
+.weak b__MGF8gvss_gnt
 .type b__MGF8gvss_gnt,%object
 b__MGF8gvss_gnt:
 .space __SIZEOF_POINTER__
@@ -1428,7 +1428,7 @@
 b__MA21gnt_qat_abvfr_cebsvyrP1REX17qat_abvfr_cebsvyr:
 nop
 .data
-.globl b__MGV10gnt_hvag32
+.weak b__MGV10gnt_hvag32
 .type b__MGV10gnt_hvag32,%object
 b__MGV10gnt_hvag32:
 .space __SIZEOF_POINTER__
@@ -1448,12 +1448,12 @@
 b__MA10qat_irpgbeP1Ri:
 nop
 .data
-.globl b__MGV13gnt_hvag8_cge
+.weak b__MGV13gnt_hvag8_cge
 .type b__MGV13gnt_hvag8_cge,%object
 b__MGV13gnt_hvag8_cge:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGF13gnt_fengvbany
+.weak b__MGF13gnt_fengvbany
 .type b__MGF13gnt_fengvbany,%object
 b__MGF13gnt_fengvbany:
 .space __SIZEOF_POINTER__
@@ -1528,7 +1528,7 @@
 b__MAX25qat_bcpbqr_QrygnCrePbyhza7ChgQngnRE10qat_fgernz:
 nop
 .data
-.globl b__MGV22qat_svygre_bcpbqr_gnfx
+.weak b__MGV22qat_svygre_bcpbqr_gnfx
 .type b__MGV22qat_svygre_bcpbqr_gnfx,%object
 b__MGV22qat_svygre_bcpbqr_gnfx:
 .space __SIZEOF_POINTER__
@@ -1648,7 +1648,7 @@
 b__MGF16qat_znyybp_oybpx:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__16irpgbeVC10qat_bcpbqr17qat_fgq_nyybpngbeVF2_RR21__chfu_onpx_fybj_cnguVF2_RRiBG_
+.weak b__MAFg3__16irpgbeVC10qat_bcpbqr17qat_fgq_nyybpngbeVF2_RR21__chfu_onpx_fybj_cnguVF2_RRiBG_
 .type b__MAFg3__16irpgbeVC10qat_bcpbqr17qat_fgq_nyybpngbeVF2_RR21__chfu_onpx_fybj_cnguVF2_RRiBG_,%function
 b__MAFg3__16irpgbeVC10qat_bcpbqr17qat_fgq_nyybpngbeVF2_RR21__chfu_onpx_fybj_cnguVF2_RRiBG_:
 nop
@@ -1658,7 +1658,7 @@
 b__MAX20qat_fcnpr_PbybeZngpu10VPPCebsvyrREwECXu:
 nop
 .data
-.globl b__MGI31gvss_qat_rkgraqrq_pbybe_cebsvyr
+.weak b__MGI31gvss_qat_rkgraqrq_pbybe_cebsvyr
 .type b__MGI31gvss_qat_rkgraqrq_pbybe_cebsvyr,%object
 b__MGI31gvss_qat_rkgraqrq_pbybe_cebsvyr:
 .space __SIZEOF_POINTER__
@@ -1703,7 +1703,7 @@
 b__MA15qat_bcpbqr_yvfgQ2Ri:
 nop
 .data
-.globl b__MGF14gnt_hvag32_cge
+.weak b__MGF14gnt_hvag32_cge
 .type b__MGF14gnt_hvag32_cge,%object
 b__MGF14gnt_hvag32_cge:
 .space __SIZEOF_POINTER__
@@ -1768,7 +1768,7 @@
 b__MAX12qat_artngvir13NanybtOnynaprRw:
 nop
 .data
-.globl b__MGV7gnt_kzc
+.weak b__MGV7gnt_kzc
 .type b__MGV7gnt_kzc,%object
 b__MGV7gnt_kzc:
 .space __SIZEOF_POINTER__
@@ -1788,7 +1788,7 @@
 b__MAX15qat_jnec_cnenzf8VfABCNyyRi:
 nop
 .data
-.globl b__MGI16GrzcYvggyrRaqvna
+.weak b__MGI16GrzcYvggyrRaqvna
 .type b__MGI16GrzcYvggyrRaqvna,%object
 b__MGI16GrzcYvggyrRaqvna:
 .space __SIZEOF_POINTER__
@@ -1883,7 +1883,7 @@
 b__MAX16qat_wcrt_cerivrj9NqqGntFrgRE18qat_gvss_qverpgbel:
 nop
 .data
-.globl b__MGI19qat_ernq_gvyrf_gnfx
+.weak b__MGI19qat_ernq_gvyrf_gnfx
 .type b__MGI19qat_ernq_gvyrf_gnfx,%object
 b__MGI19qat_ernq_gvyrf_gnfx:
 .space __SIZEOF_POINTER__
@@ -1898,7 +1898,7 @@
 b__MA8qat_ubfg9NyybpngbeRi:
 nop
 .data
-.globl b__MGF15gnt_vpp_cebsvyr
+.weak b__MGF15gnt_vpp_cebsvyr
 .type b__MGF15gnt_vpp_cebsvyr,%object
 b__MGF15gnt_vpp_cebsvyr:
 .space __SIZEOF_POINTER__
@@ -1908,7 +1908,7 @@
 b__MA20qat_ybffyrff_qrpbqre9FgnegErnqREwF0_F0_:
 nop
 .data
-.globl b__MGV16qat_zrzbel_oybpx
+.weak b__MGV16qat_zrzbel_oybpx
 .type b__MGV16qat_zrzbel_oybpx,%object
 b__MGV16qat_zrzbel_oybpx:
 .space __SIZEOF_POINTER__
@@ -2048,7 +2048,7 @@
 b__MA23qat_pnzren_cebsvyr_vasbP1Ri:
 nop
 .data
-.globl b__MGV22qat_tnzzn_rapbqr_cebkl
+.weak b__MGV22qat_tnzzn_rapbqr_cebkl
 .type b__MGV22qat_tnzzn_rapbqr_cebkl,%object
 b__MGV22qat_tnzzn_rapbqr_cebkl:
 .space __SIZEOF_POINTER__
@@ -2153,7 +2153,7 @@
 b__MA16qat_haybpx_zhgrkQ2Ri:
 nop
 .data
-.globl b__MGV21qat_erfnzcyr_shapgvba
+.weak b__MGV21qat_erfnzcyr_shapgvba
 .type b__MGV21qat_erfnzcyr_shapgvba,%object
 b__MGV21qat_erfnzcyr_shapgvba:
 .space __SIZEOF_POINTER__
@@ -2183,7 +2183,7 @@
 b__MAX13qat_nern_fcrp7BireyncREX8qat_erpg:
 nop
 .data
-.globl b__MGI18qat_abvfr_shapgvba
+.weak b__MGI18qat_abvfr_shapgvba
 .type b__MGI18qat_abvfr_shapgvba,%object
 b__MGI18qat_abvfr_shapgvba:
 .space __SIZEOF_POINTER__
@@ -2333,7 +2333,7 @@
 b__MA26qat_bcpbqr_JnecErpgvyvarneP1REX27qat_jnec_cnenzf_erpgvyvarnew:
 nop
 .data
-.globl b__MGF15qat_zngevk_3ol3
+.weak b__MGF15qat_zngevk_3ol3
 .type b__MGF15qat_zngevk_3ol3,%object
 b__MGF15qat_zngevk_3ol3:
 .space __SIZEOF_POINTER__
@@ -2368,7 +2368,7 @@
 b__M13ErfnzcyrVzntrE8qat_ubfgEX9qat_vzntrEF1_EX8qat_erpgF7_EX21qat_erfnzcyr_shapgvba:
 nop
 .data
-.globl b__MGF10gnt_zngevk
+.weak b__MGF10gnt_zngevk
 .type b__MGF10gnt_zngevk,%object
 b__MGF10gnt_zngevk:
 .space __SIZEOF_POINTER__
@@ -2378,7 +2378,7 @@
 b__MA25qat_bcpbqr_QrygnCrePbyhza14ZbqvsvrqObhaqfREX8qat_erpg:
 nop
 .data
-.globl b__MGV18qat_abvfr_shapgvba
+.weak b__MGV18qat_abvfr_shapgvba
 .type b__MGV18qat_abvfr_shapgvba,%object
 b__MGV18qat_abvfr_shapgvba:
 .space __SIZEOF_POINTER__
@@ -2418,7 +2418,7 @@
 b__MA28qat_bcpbqr_SvkIvtarggrEnqvnyP2REX26qat_ivtarggr_enqvny_cnenzfw:
 nop
 .data
-.globl b__MGF11qat_fcbbyre
+.weak b__MGF11qat_fcbbyre
 .type b__MGF11qat_fcbbyre,%object
 b__MGF11qat_fcbbyre:
 .space __SIZEOF_POINTER__
@@ -2448,7 +2448,7 @@
 b__MAX15qat_bcpbqr_yvfg10ZvaIrefvbaRo:
 nop
 .data
-.globl b__MGV20qat_jevgr_gvyrf_gnfx
+.weak b__MGV20qat_jevgr_gvyrf_gnfx
 .type b__MGV20qat_jevgr_gvyrf_gnfx,%object
 b__MGV20qat_jevgr_gvyrf_gnfx:
 .space __SIZEOF_POINTER__
@@ -2468,7 +2468,7 @@
 b__MA15qat_zbfnvp_vasbQ1Ri:
 nop
 .data
-.globl b__MGV15gnt_vpp_cebsvyr
+.weak b__MGV15gnt_vpp_cebsvyr
 .type b__MGV15gnt_vpp_cebsvyr,%object
 b__MGV15gnt_vpp_cebsvyr:
 .space __SIZEOF_POINTER__
@@ -2573,12 +2573,12 @@
 b__MA15qat_zngevk_4ol3P2REX10qat_zngevk:
 nop
 .data
-.globl b__MGI14qat_pbybe_fcrp
+.weak b__MGI14qat_pbybe_fcrp
 .type b__MGI14qat_pbybe_fcrp,%object
 b__MGI14qat_pbybe_fcrp:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGV16GrzcYvggyrRaqvna
+.weak b__MGV16GrzcYvggyrRaqvna
 .type b__MGV16GrzcYvggyrRaqvna,%object
 b__MGV16GrzcYvggyrRaqvna:
 .space __SIZEOF_POINTER__
@@ -2693,7 +2693,7 @@
 b__MA15qat_jnec_cnenzfQ2Ri:
 nop
 .data
-.globl b__MGV34qat_svaq_arj_enj_vzntr_qvtrfg_gnfx
+.weak b__MGV34qat_svaq_arj_enj_vzntr_qvtrfg_gnfx
 .type b__MGV34qat_svaq_arj_enj_vzntr_qvtrfg_gnfx,%object
 b__MGV34qat_svaq_arj_enj_vzntr_qvtrfg_gnfx:
 .space __SIZEOF_POINTER__
@@ -2713,7 +2713,7 @@
 b__MGI8qat_rkvs:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGV28qat_ivtarggr_enqvny_shapgvba
+.weak b__MGV28qat_ivtarggr_enqvny_shapgvba
 .type b__MGV28qat_ivtarggr_enqvny_shapgvba,%object
 b__MGV28qat_ivtarggr_enqvny_shapgvba:
 .space __SIZEOF_POINTER__
@@ -2758,7 +2758,7 @@
 b__MA16qat_vzntr_jevgre17RapbqrWCRTCerivrjRE8qat_ubfgEX9qat_vzntrE16qat_wcrt_cerivrjv:
 nop
 .data
-.globl b__MGV10qat_zngevk
+.weak b__MGV10qat_zngevk
 .type b__MGV10qat_zngevk,%object
 b__MGV10qat_zngevk:
 .space __SIZEOF_POINTER__
@@ -2808,7 +2808,7 @@
 b__MAX15gnt_psn_cnggrea3ChgRE10qat_fgernz:
 nop
 .data
-.globl b__MGV8gvss_gnt
+.weak b__MGV8gvss_gnt
 .type b__MGV8gvss_gnt,%object
 b__MGV8gvss_gnt:
 .space __SIZEOF_POINTER__
@@ -2843,7 +2843,7 @@
 b__MA20qat_ybffyrff_qrpbqre10ArkgZnexreRi:
 nop
 .data
-.globl b__MGV15qat_zngevk_3ol3
+.weak b__MGV15qat_zngevk_3ol3
 .type b__MGV15qat_zngevk_3ol3,%object
 b__MGV15qat_zngevk_3ol3:
 .space __SIZEOF_POINTER__
@@ -2948,7 +2948,7 @@
 b__MA8qat_ubfgQ0Ri:
 nop
 .data
-.globl b__MGF18qat_gvss_qverpgbel
+.weak b__MGF18qat_gvss_qverpgbel
 .type b__MGF18qat_gvss_qverpgbel,%object
 b__MGF18qat_gvss_qverpgbel:
 .space __SIZEOF_POINTER__
@@ -3038,7 +3038,7 @@
 b__MAX15qat_1q_vqragvgl15RinyhngrVairefrRq:
 nop
 .text
-.globl b__MAFg3__127__vafregvba_fbeg_vapbzcyrgrVECSoEX9qat_cbvagF3_RCF1_RRoG0_F8_G_
+.weak b__MAFg3__127__vafregvba_fbeg_vapbzcyrgrVECSoEX9qat_cbvagF3_RCF1_RRoG0_F8_G_
 .type b__MAFg3__127__vafregvba_fbeg_vapbzcyrgrVECSoEX9qat_cbvagF3_RCF1_RRoG0_F8_G_,%function
 b__MAFg3__127__vafregvba_fbeg_vapbzcyrgrVECSoEX9qat_cbvagF3_RCF1_RRoG0_F8_G_:
 nop
@@ -3153,7 +3153,7 @@
 b__MA16qat_fvzcyr_vzntrP1REX8qat_erpgwwE20qat_zrzbel_nyybpngbe:
 nop
 .text
-.globl b__MA7NhgbCgeV15cebsvyr_gnt_frgRQ2Ri
+.weak b__MA7NhgbCgeV15cebsvyr_gnt_frgRQ2Ri
 .type b__MA7NhgbCgeV15cebsvyr_gnt_frgRQ2Ri,%function
 b__MA7NhgbCgeV15cebsvyr_gnt_frgRQ2Ri:
 nop
@@ -3313,7 +3313,7 @@
 b__MA21qat_snfg_vagrecbyngbeP1REX15qat_zbfnvp_vasbEX9qat_vzntrEF3_EX9qat_cbvagw:
 nop
 .data
-.globl b__MGF21gnt_qat_abvfr_cebsvyr
+.weak b__MGF21gnt_qat_abvfr_cebsvyr
 .type b__MGF21gnt_qat_abvfr_cebsvyr,%object
 b__MGF21gnt_qat_abvfr_cebsvyr:
 .space __SIZEOF_POINTER__
@@ -3353,7 +3353,7 @@
 b__MAX9qat_vzntr10CvkryEnatrRi:
 nop
 .data
-.globl b__MGI13gnt_hvag8_cge
+.weak b__MGI13gnt_hvag8_cge
 .type b__MGI13gnt_hvag8_cge,%object
 b__MGI13gnt_hvag8_cge:
 .space __SIZEOF_POINTER__
@@ -3608,7 +3608,7 @@
 b__M12ErsZncNern16CgwwwvvvCXg:
 nop
 .data
-.globl b__MGF18gnt_rkvs_qngr_gvzr
+.weak b__MGF18gnt_rkvs_qngr_gvzr
 .type b__MGF18gnt_rkvs_qngr_gvzr,%object
 b__MGF18gnt_rkvs_qngr_gvzr:
 .space __SIZEOF_POINTER__
@@ -3718,7 +3718,7 @@
 b__MA8qat_vasb20CnefrFbalCevingrQngnRE8qat_ubfgE10qat_fgernzzzz:
 nop
 .data
-.globl b__MGF26qat_wcrt_vzntr_rapbqr_gnfx
+.weak b__MGF26qat_wcrt_vzntr_rapbqr_gnfx
 .type b__MGF26qat_wcrt_vzntr_rapbqr_gnfx,%object
 b__MGF26qat_wcrt_vzntr_rapbqr_gnfx:
 .space __SIZEOF_POINTER__
@@ -3828,7 +3828,7 @@
 b__MA22qat_bcpbqr_QrygnCreEbj15OhssreCvkryGlcrRw:
 nop
 .text
-.globl b__MAFg3__127__vafregvba_fbeg_vapbzcyrgrVECSoEX8qat_erpgF3_RCF1_RRoG0_F8_G_
+.weak b__MAFg3__127__vafregvba_fbeg_vapbzcyrgrVECSoEX8qat_erpgF3_RCF1_RRoG0_F8_G_
 .type b__MAFg3__127__vafregvba_fbeg_vapbzcyrgrVECSoEX8qat_erpgF3_RCF1_RRoG0_F8_G_,%function
 b__MAFg3__127__vafregvba_fbeg_vapbzcyrgrVECSoEX8qat_erpgF3_RCF1_RRoG0_F8_G_:
 nop
@@ -3848,7 +3848,7 @@
 b__MGF15gnt_psn_cnggrea:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGI17gnt_hengvbany_cge
+.weak b__MGI17gnt_hengvbany_cge
 .type b__MGI17gnt_hengvbany_cge,%object
 b__MGI17gnt_hengvbany_cge:
 .space __SIZEOF_POINTER__
@@ -3893,7 +3893,7 @@
 b__MA20qat_cevbevgl_znantre4JnvgR12qat_cevbevgl:
 nop
 .data
-.globl b__MGV14qat_pbybe_fcrp
+.weak b__MGV14qat_pbybe_fcrp
 .type b__MGV14qat_pbybe_fcrp,%object
 b__MGV14qat_pbybe_fcrp:
 .space __SIZEOF_POINTER__
@@ -3943,12 +3943,12 @@
 b__MA10qat_fgernz18GntInyhr_hengvbanyRw:
 nop
 .data
-.globl b__MGF10gnt_hvag16
+.weak b__MGF10gnt_hvag16
 .type b__MGF10gnt_hvag16,%object
 b__MGF10gnt_hvag16:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGI14gnt_hvag16_cge
+.weak b__MGI14gnt_hvag16_cge
 .type b__MGI14gnt_hvag16_cge,%object
 b__MGI14gnt_hvag16_cge:
 .space __SIZEOF_POINTER__
@@ -3983,7 +3983,7 @@
 b__M16ErsPbclNernE32_8CXsCuwwwvvvvvvw:
 nop
 .data
-.globl b__MGI26qat_wcrt_vzntr_rapbqr_gnfx
+.weak b__MGI26qat_wcrt_vzntr_rapbqr_gnfx
 .type b__MGI26qat_wcrt_vzntr_rapbqr_gnfx,%object
 b__MGI26qat_wcrt_vzntr_rapbqr_gnfx:
 .space __SIZEOF_POINTER__
@@ -3993,7 +3993,7 @@
 b__MA20qat_ybffyrff_rapbqre16JevgrSvyrGenvyreRi:
 nop
 .text
-.globl b__MAFg3__16irpgbeVC18qat_pnzren_cebsvyr17qat_fgq_nyybpngbeVF2_RR21__chfu_onpx_fybj_cnguVF2_RRiBG_
+.weak b__MAFg3__16irpgbeVC18qat_pnzren_cebsvyr17qat_fgq_nyybpngbeVF2_RR21__chfu_onpx_fybj_cnguVF2_RRiBG_
 .type b__MAFg3__16irpgbeVC18qat_pnzren_cebsvyr17qat_fgq_nyybpngbeVF2_RR21__chfu_onpx_fybj_cnguVF2_RRiBG_,%function
 b__MAFg3__16irpgbeVC18qat_pnzren_cebsvyr17qat_fgq_nyybpngbeVF2_RR21__chfu_onpx_fybj_cnguVF2_RRiBG_:
 nop
@@ -4073,7 +4073,7 @@
 b__MA23qat_jnec_cnenzf_svfurlrP1Ri:
 nop
 .data
-.globl b__MGF15qat_zngevk_4ol3
+.weak b__MGF15qat_zngevk_4ol3
 .type b__MGF15qat_zngevk_4ol3,%object
 b__MGF15qat_zngevk_4ol3:
 .space __SIZEOF_POINTER__
@@ -4208,7 +4208,7 @@
 b__MA10qat_irpgbe5PyrneRi:
 nop
 .data
-.globl b__MGF10qat_irpgbe
+.weak b__MGF10qat_irpgbe
 .type b__MGF10qat_irpgbe,%object
 b__MGF10qat_irpgbe:
 .space __SIZEOF_POINTER__
@@ -4223,7 +4223,7 @@
 b__MAX10gnt_fgevat3ChgRE10qat_fgernz:
 nop
 .data
-.globl b__MGI18qat_gvss_qverpgbel
+.weak b__MGI18qat_gvss_qverpgbel
 .type b__MGI18qat_gvss_qverpgbel,%object
 b__MGI18qat_gvss_qverpgbel:
 .space __SIZEOF_POINTER__
@@ -4243,7 +4243,7 @@
 b__MAX15qat_zbfnvp_vasb16FvmrSbeQbjaFpnyrREX9qat_cbvag:
 nop
 .text
-.globl b__MAFg3__113__irpgbe_onfrV23qat_pnzren_cebsvyr_vasb17qat_fgq_nyybpngbeVF1_RRQ2Ri
+.weak b__MAFg3__113__irpgbe_onfrV23qat_pnzren_cebsvyr_vasb17qat_fgq_nyybpngbeVF1_RRQ2Ri
 .type b__MAFg3__113__irpgbe_onfrV23qat_pnzren_cebsvyr_vasb17qat_fgq_nyybpngbeVF1_RRQ2Ri,%function
 b__MAFg3__113__irpgbe_onfrV23qat_pnzren_cebsvyr_vasb17qat_fgq_nyybpngbeVF1_RRQ2Ri:
 nop
@@ -4358,7 +4358,7 @@
 b__MA21qat_ers_pbhagrq_oybpxnFREXF_:
 nop
 .data
-.globl b__MGF13gnt_hengvbany
+.weak b__MGF13gnt_hengvbany
 .type b__MGF13gnt_hengvbany,%object
 b__MGF13gnt_hengvbany:
 .space __SIZEOF_POINTER__
@@ -4398,7 +4398,7 @@
 b__MA15qat_zq5_cevagre7CebprffRCXiw:
 nop
 .data
-.globl b__MGV18qat_gvss_qverpgbel
+.weak b__MGV18qat_gvss_qverpgbel
 .type b__MGV18qat_gvss_qverpgbel,%object
 b__MGV18qat_gvss_qverpgbel:
 .space __SIZEOF_POINTER__
@@ -4423,12 +4423,12 @@
 b__MA10qat_fgernzQ2Ri:
 nop
 .data
-.globl b__MGF17qat_fcnpr_snxrETO
+.weak b__MGF17qat_fcnpr_snxrETO
 .type b__MGF17qat_fcnpr_snxrETO,%object
 b__MGF17qat_fcnpr_snxrETO:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGI23qat_vacynpr_bcpbqr_gnfx
+.weak b__MGI23qat_vacynpr_bcpbqr_gnfx
 .type b__MGI23qat_vacynpr_bcpbqr_gnfx,%object
 b__MGI23qat_vacynpr_bcpbqr_gnfx:
 .space __SIZEOF_POINTER__
@@ -4453,7 +4453,7 @@
 b__MAX22qat_bcpbqr_QrygnCreEbj7ChgQngnRE10qat_fgernz:
 nop
 .text
-.globl b__MAFg3__16irpgbeV15qat_svatrecevag17qat_fgq_nyybpngbeVF1_RR11__inyybpngrRz
+.weak b__MAFg3__16irpgbeV15qat_svatrecevag17qat_fgq_nyybpngbeVF1_RR11__inyybpngrRz
 .type b__MAFg3__16irpgbeV15qat_svatrecevag17qat_fgq_nyybpngbeVF1_RR11__inyybpngrRz,%function
 b__MAFg3__16irpgbeV15qat_svatrecevag17qat_fgq_nyybpngbeVF1_RR11__inyybpngrRz:
 nop
@@ -4558,7 +4558,7 @@
 b__MGV18qat_pnzren_cebsvyr:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGV22qat_zq5_cevagre_fgernz
+.weak b__MGV22qat_zq5_cevagre_fgernz
 .type b__MGV22qat_zq5_cevagre_fgernz,%object
 b__MGV22qat_zq5_cevagre_fgernz:
 .space __SIZEOF_POINTER__
@@ -4603,7 +4603,7 @@
 b__MA14qat_wcrt_vzntrP2Ri:
 nop
 .data
-.globl b__MGV15qat_zngevk_4ol3
+.weak b__MGV15qat_zngevk_4ol3
 .type b__MGV15qat_zngevk_4ol3,%object
 b__MGV15qat_zngevk_4ol3:
 .space __SIZEOF_POINTER__
@@ -4653,7 +4653,7 @@
 b__MGF16qat_vzntr_jevgre:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGF17qat_onfvp_gnt_frg
+.weak b__MGF17qat_onfvp_gnt_frg
 .type b__MGF17qat_onfvp_gnt_frg,%object
 b__MGF17qat_onfvp_gnt_frg:
 .space __SIZEOF_POINTER__
@@ -4663,7 +4663,7 @@
 b__MA25qat_bcpbqr_QrygnCrePbyhzaP2REX13qat_nern_fcrpE7NhgbCgeV16qat_zrzbel_oybpxR:
 nop
 .data
-.globl b__MGF23qat_vacynpr_bcpbqr_gnfx
+.weak b__MGF23qat_vacynpr_bcpbqr_gnfx
 .type b__MGF23qat_vacynpr_bcpbqr_gnfx,%object
 b__MGF23qat_vacynpr_bcpbqr_gnfx:
 .space __SIZEOF_POINTER__
@@ -4778,7 +4778,7 @@
 b__MGF26qat_shapgvba_rkcbfher_enzc:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__16__fbegVECSoEX9qat_cbvagF3_RCF1_RRiG0_F8_G_
+.weak b__MAFg3__16__fbegVECSoEX9qat_cbvagF3_RCF1_RRiG0_F8_G_
 .type b__MAFg3__16__fbegVECSoEX9qat_cbvagF3_RCF1_RRiG0_F8_G_,%function
 b__MAFg3__16__fbegVECSoEX9qat_cbvagF3_RCF1_RRiG0_F8_G_:
 nop
@@ -4793,7 +4793,7 @@
 b__MA14qat_pbybe_fcrp15SvaqKLMgbPnzrenREX12qat_kl_pbbeqC10qat_zngevkF4_F4_:
 nop
 .data
-.globl b__MGV26qat_wcrt_vzntr_rapbqr_gnfx
+.weak b__MGV26qat_wcrt_vzntr_rapbqr_gnfx
 .type b__MGV26qat_wcrt_vzntr_rapbqr_gnfx,%object
 b__MGV26qat_wcrt_vzntr_rapbqr_gnfx:
 .space __SIZEOF_POINTER__
@@ -4828,7 +4828,7 @@
 b__MGV20qat_erfnzcyr_jrvtugf:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__17__fbeg4VECSoEX8qat_erpgF3_RCF1_RRwG0_F8_F8_F8_G_
+.weak b__MAFg3__17__fbeg4VECSoEX8qat_erpgF3_RCF1_RRwG0_F8_F8_F8_G_
 .type b__MAFg3__17__fbeg4VECSoEX8qat_erpgF3_RCF1_RRwG0_F8_F8_F8_G_,%function
 b__MAFg3__17__fbeg4VECSoEX8qat_erpgF3_RCF1_RRwG0_F8_F8_F8_G_:
 nop
@@ -4838,7 +4838,7 @@
 b__MA18qat_pnzren_cebsvyr16FrgUhrFngQrygnf1REX15qat_uhr_fng_znc:
 nop
 .data
-.globl b__MGI15qat_zq5_cevagre
+.weak b__MGI15qat_zq5_cevagre
 .type b__MGI15qat_zq5_cevagre,%object
 b__MGI15qat_zq5_cevagre:
 .space __SIZEOF_POINTER__
@@ -4853,7 +4853,7 @@
 b__MGI21qat_snfg_vagrecbyngbe:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGV17qat_fcnpr_snxrETO
+.weak b__MGV17qat_fcnpr_snxrETO
 .type b__MGV17qat_fcnpr_snxrETO,%object
 b__MGV17qat_fcnpr_snxrETO:
 .space __SIZEOF_POINTER__
@@ -4933,7 +4933,7 @@
 b__MA9qat_vzntrQ2Ri:
 nop
 .data
-.globl b__MGI18gnt_rkvs_qngr_gvzr
+.weak b__MGI18gnt_rkvs_qngr_gvzr
 .type b__MGI18gnt_rkvs_qngr_gvzr,%object
 b__MGI18gnt_rkvs_qngr_gvzr:
 .space __SIZEOF_POINTER__
@@ -4973,7 +4973,7 @@
 b__MA16qat_cerivrj_yvfg6NccraqRE7NhgbCgeV11qat_cerivrjR:
 nop
 .data
-.globl b__MGF10gnt_erny64
+.weak b__MGF10gnt_erny64
 .type b__MGF10gnt_erny64,%object
 b__MGF10gnt_erny64:
 .space __SIZEOF_POINTER__
@@ -5073,7 +5073,7 @@
 b__M18YvzvgSybngOvgQrcguE8qat_ubfgEX9qat_vzntrEF1_ws:
 nop
 .data
-.globl b__MGV17qat_onfvp_gnt_frg
+.weak b__MGV17qat_onfvp_gnt_frg
 .type b__MGV17qat_onfvp_gnt_frg,%object
 b__MGV17qat_onfvp_gnt_frg:
 .space __SIZEOF_POINTER__
@@ -5093,7 +5093,7 @@
 b__MA16qat_ymj_rkcnaqreP1Ri:
 nop
 .data
-.globl b__MGV18gnt_rkvs_qngr_gvzr
+.weak b__MGV18gnt_rkvs_qngr_gvzr
 .type b__MGV18gnt_rkvs_qngr_gvzr,%object
 b__MGV18gnt_rkvs_qngr_gvzr:
 .space __SIZEOF_POINTER__
@@ -5198,7 +5198,7 @@
 b__MGI16qat_cvkry_ohssre:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGI10gnt_zngevk
+.weak b__MGI10gnt_zngevk
 .type b__MGI10gnt_zngevk,%object
 b__MGI10gnt_zngevk:
 .space __SIZEOF_POINTER__
@@ -5228,7 +5228,7 @@
 b__MA18qat_bcpbqr_TnvaZncP2REX13qat_nern_fcrpE7NhgbCgeV12qat_tnva_zncR:
 nop
 .data
-.globl b__MGF10gnt_hvag32
+.weak b__MGF10gnt_hvag32
 .type b__MGF10gnt_hvag32,%object
 b__MGF10gnt_hvag32:
 .space __SIZEOF_POINTER__
@@ -5283,7 +5283,7 @@
 b__MA15qat_zrzbel_qngnP2Rw:
 nop
 .data
-.globl b__MGV14gnt_hvag16_cge
+.weak b__MGV14gnt_hvag16_cge
 .type b__MGV14gnt_hvag16_cge,%object
 b__MGV14gnt_hvag16_cge:
 .space __SIZEOF_POINTER__
@@ -5318,7 +5318,7 @@
 b__MGI21qat_pbafg_gvyr_ohssre:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGI12qat_irpgbe_3
+.weak b__MGI12qat_irpgbe_3
 .type b__MGI12qat_irpgbe_3,%object
 b__MGI12qat_irpgbe_3:
 .space __SIZEOF_POINTER__
@@ -5353,7 +5353,7 @@
 b__MA16qat_cvkry_ohssreQ2Ri:
 nop
 .data
-.globl b__MGI12qat_irpgbe_4
+.weak b__MGI12qat_irpgbe_4
 .type b__MGI12qat_irpgbe_4,%object
 b__MGI12qat_irpgbe_4:
 .space __SIZEOF_POINTER__
@@ -5618,7 +5618,7 @@
 b__MA19qat_yvarnevmr_cynarQ2Ri:
 nop
 .text
-.globl b__MAFg3__16irpgbeV18qat_abvfr_shapgvba17qat_fgq_nyybpngbeVF1_RR6nffvtaVCF1_RRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF1_AF_15vgrengbe_genvgfVF8_R9ersreraprRRR5inyhrRiR4glcrRF8_F8_
+.weak b__MAFg3__16irpgbeV18qat_abvfr_shapgvba17qat_fgq_nyybpngbeVF1_RR6nffvtaVCF1_RRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF1_AF_15vgrengbe_genvgfVF8_R9ersreraprRRR5inyhrRiR4glcrRF8_F8_
 .type b__MAFg3__16irpgbeV18qat_abvfr_shapgvba17qat_fgq_nyybpngbeVF1_RR6nffvtaVCF1_RRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF1_AF_15vgrengbe_genvgfVF8_R9ersreraprRRR5inyhrRiR4glcrRF8_F8_,%function
 b__MAFg3__16irpgbeV18qat_abvfr_shapgvba17qat_fgq_nyybpngbeVF1_RR6nffvtaVCF1_RRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF1_AF_15vgrengbe_genvgfVF8_R9ersreraprRRR5inyhrRiR4glcrRF8_F8_:
 nop
@@ -5758,7 +5758,7 @@
 b__MA8qat_vasb10VfInyvqQATRi:
 nop
 .text
-.globl b__MAFg3__16irpgbeVq17qat_fgq_nyybpngbeVqRRP2REXF3_
+.weak b__MAFg3__16irpgbeVq17qat_fgq_nyybpngbeVqRRP2REXF3_
 .type b__MAFg3__16irpgbeVq17qat_fgq_nyybpngbeVqRRP2REXF3_,%function
 b__MAFg3__16irpgbeVq17qat_fgq_nyybpngbeVqRRP2REXF3_:
 nop
@@ -5783,7 +5783,7 @@
 b__MA27qat_bcpbqr_SvkOnqCvkryfYvfgP2RE7NhgbCgeV18qat_onq_cvkry_yvfgRw:
 nop
 .data
-.globl b__MGV12qat_irpgbe_3
+.weak b__MGV12qat_irpgbe_3
 .type b__MGV12qat_irpgbe_3,%object
 b__MGV12qat_irpgbe_3:
 .space __SIZEOF_POINTER__
@@ -5808,7 +5808,7 @@
 b__MA21qat_pbafg_gvyr_ohssreQ1Ri:
 nop
 .data
-.globl b__MGV12qat_irpgbe_4
+.weak b__MGV12qat_irpgbe_4
 .type b__MGV12qat_irpgbe_4,%object
 b__MGV12qat_irpgbe_4:
 .space __SIZEOF_POINTER__
@@ -5833,7 +5833,7 @@
 b__MA13GrzcOvtRaqvnaP1RE10qat_fgernzo:
 nop
 .data
-.globl b__MGI13qat_rkprcgvba
+.weak b__MGI13qat_rkprcgvba
 .type b__MGI13qat_rkprcgvba,%object
 b__MGI13qat_rkprcgvba:
 .space __SIZEOF_POINTER__
@@ -5873,12 +5873,12 @@
 b__MA16qat_znyybp_oybpxQ0Ri:
 nop
 .data
-.globl b__MGV21gnt_qat_abvfr_cebsvyr
+.weak b__MGV21gnt_qat_abvfr_cebsvyr
 .type b__MGV21gnt_qat_abvfr_cebsvyr,%object
 b__MGV21gnt_qat_abvfr_cebsvyr:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGI17gnt_fengvbany_cge
+.weak b__MGI17gnt_fengvbany_cge
 .type b__MGI17gnt_fengvbany_cge,%object
 b__MGI17gnt_fengvbany_cge:
 .space __SIZEOF_POINTER__
@@ -5913,7 +5913,7 @@
 b__MA12qat_artngvir16FrgNanybtOnynaprREX10qat_irpgbe:
 nop
 .data
-.globl b__MGF19qat_ernq_gvyrf_gnfx
+.weak b__MGF19qat_ernq_gvyrf_gnfx
 .type b__MGF19qat_ernq_gvyrf_gnfx,%object
 b__MGF19qat_ernq_gvyrf_gnfx:
 .space __SIZEOF_POINTER__
@@ -5928,7 +5928,7 @@
 b__MAX14qat_gbar_pheirrdREXF_:
 nop
 .data
-.globl b__MGV31qat_wcrt_vzntr_svaq_qvtrfg_gnfx
+.weak b__MGV31qat_wcrt_vzntr_svaq_qvtrfg_gnfx
 .type b__MGV31qat_wcrt_vzntr_svaq_qvtrfg_gnfx,%object
 b__MGV31qat_wcrt_vzntr_svaq_qvtrfg_gnfx:
 .space __SIZEOF_POINTER__
@@ -6108,7 +6108,7 @@
 b__MAX9qat_zhgrk9ZhgrkAnzrRi:
 nop
 .data
-.globl b__MGV13qat_rkprcgvba
+.weak b__MGV13qat_rkprcgvba
 .type b__MGV13qat_rkprcgvba,%object
 b__MGV13qat_rkprcgvba:
 .space __SIZEOF_POINTER__
@@ -6178,7 +6178,7 @@
 b__MA15qat_zngevk_3ol3P1REX10qat_zngevk:
 nop
 .data
-.globl b__MGF14qat_pbybe_fcrp
+.weak b__MGF14qat_pbybe_fcrp
 .type b__MGF14qat_pbybe_fcrp,%object
 b__MGF14qat_pbybe_fcrp:
 .space __SIZEOF_POINTER__
@@ -6308,7 +6308,7 @@
 b__MGV21qat_qvegl_gvyr_ohssre:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGI13gnt_fengvbany
+.weak b__MGI13gnt_fengvbany
 .type b__MGI13gnt_fengvbany,%object
 b__MGI13gnt_fengvbany:
 .space __SIZEOF_POINTER__
@@ -6348,7 +6348,7 @@
 b__M14CnefrFgevatGntE10qat_fgernzwwwE10qat_fgevato:
 nop
 .text
-.globl b__MA7NhgbCgeV12qat_tnva_zncRQ2Ri
+.weak b__MA7NhgbCgeV12qat_tnva_zncRQ2Ri
 .type b__MA7NhgbCgeV12qat_tnva_zncRQ2Ri,%function
 b__MA7NhgbCgeV12qat_tnva_zncRQ2Ri:
 nop
@@ -6418,7 +6418,7 @@
 b__MA10qat_fgernz13NfZrzbelOybpxRE20qat_zrzbel_nyybpngbe:
 nop
 .text
-.globl b__MAFg3__113__irpgbe_onfrV7NhgbCgeV16qat_zrzbel_oybpxR17qat_fgq_nyybpngbeVF3_RRQ2Ri
+.weak b__MAFg3__113__irpgbe_onfrV7NhgbCgeV16qat_zrzbel_oybpxR17qat_fgq_nyybpngbeVF3_RRQ2Ri
 .type b__MAFg3__113__irpgbe_onfrV7NhgbCgeV16qat_zrzbel_oybpxR17qat_fgq_nyybpngbeVF3_RRQ2Ri,%function
 b__MAFg3__113__irpgbe_onfrV7NhgbCgeV16qat_zrzbel_oybpxR17qat_fgq_nyybpngbeVF3_RRQ2Ri:
 nop
@@ -6433,7 +6433,7 @@
 b__M14QrpbqrHavkGvzrwE13qat_qngr_gvzr:
 nop
 .text
-.globl b__MA7NhgbCgeV13pbybe_gnt_frgRQ2Ri
+.weak b__MA7NhgbCgeV13pbybe_gnt_frgRQ2Ri
 .type b__MA7NhgbCgeV13pbybe_gnt_frgRQ2Ri,%function
 b__MA7NhgbCgeV13pbybe_gnt_frgRQ2Ri:
 nop
@@ -6553,12 +6553,12 @@
 b__MA16qat_vzntr_jevgreP1Ri:
 nop
 .data
-.globl b__MGV13gnt_fengvbany
+.weak b__MGV13gnt_fengvbany
 .type b__MGV13gnt_fengvbany,%object
 b__MGV13gnt_fengvbany:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGF10qat_zngevk
+.weak b__MGF10qat_zngevk
 .type b__MGF10qat_zngevk,%object
 b__MGF10qat_zngevk:
 .space __SIZEOF_POINTER__
@@ -6638,7 +6638,7 @@
 b__MAX13qat_gvzr_mbar15Rapbqr_VFB_8601Ri:
 nop
 .data
-.globl b__MGV31gvss_qat_rkgraqrq_pbybe_cebsvyr
+.weak b__MGV31gvss_qat_rkgraqrq_pbybe_cebsvyr
 .type b__MGV31gvss_qat_rkgraqrq_pbybe_cebsvyr,%object
 b__MGV31gvss_qat_rkgraqrq_pbybe_cebsvyr:
 .space __SIZEOF_POINTER__
@@ -6668,7 +6668,7 @@
 b__MA9qat_vzntr4GevzREX8qat_erpg:
 nop
 .text
-.globl b__MAFg3__16irpgbeVw17qat_fgq_nyybpngbeVwRR21__chfu_onpx_fybj_cnguVEXwRRiBG_
+.weak b__MAFg3__16irpgbeVw17qat_fgq_nyybpngbeVwRR21__chfu_onpx_fybj_cnguVEXwRRiBG_
 .type b__MAFg3__16irpgbeVw17qat_fgq_nyybpngbeVwRR21__chfu_onpx_fybj_cnguVEXwRRiBG_,%function
 b__MAFg3__16irpgbeVw17qat_fgq_nyybpngbeVwRR21__chfu_onpx_fybj_cnguVEXwRRiBG_:
 nop
@@ -6768,7 +6768,7 @@
 b__MAX12qat_artngvir19SvaqEnjQngnHavdhrVQRE8qat_ubfg:
 nop
 .data
-.globl b__MGI10gnt_hvag16
+.weak b__MGI10gnt_hvag16
 .type b__MGI10gnt_hvag16,%object
 b__MGI10gnt_hvag16:
 .space __SIZEOF_POINTER__
@@ -6823,7 +6823,7 @@
 b__MA8qat_rkvs13RapbqrSAhzoreRq:
 nop
 .data
-.globl b__MGF7gnt_kzc
+.weak b__MGF7gnt_kzc
 .type b__MGF7gnt_kzc,%object
 b__MGF7gnt_kzc:
 .space __SIZEOF_POINTER__
@@ -7018,12 +7018,12 @@
 b__MA31qat_bcpbqr_SvkOnqCvkryfPbafgnagP1RE10qat_fgernz:
 nop
 .text
-.globl b__MAFg3__16irpgbeV16qat_cbvag_erny6417qat_fgq_nyybpngbeVF1_RR8__nccraqRz
+.weak b__MAFg3__16irpgbeV16qat_cbvag_erny6417qat_fgq_nyybpngbeVF1_RR8__nccraqRz
 .type b__MAFg3__16irpgbeV16qat_cbvag_erny6417qat_fgq_nyybpngbeVF1_RR8__nccraqRz,%function
 b__MAFg3__16irpgbeV16qat_cbvag_erny6417qat_fgq_nyybpngbeVF1_RR8__nccraqRz:
 nop
 .data
-.globl b__MGI21gnt_qat_abvfr_cebsvyr
+.weak b__MGI21gnt_qat_abvfr_cebsvyr
 .type b__MGI21gnt_qat_abvfr_cebsvyr,%object
 b__MGI21gnt_qat_abvfr_cebsvyr:
 .space __SIZEOF_POINTER__
@@ -7033,7 +7033,7 @@
 b__MA20qat_ybffyrff_rapbqre15JevgrSvyrUrnqreRi:
 nop
 .data
-.globl b__MGI10qat_irpgbe
+.weak b__MGI10qat_irpgbe
 .type b__MGI10qat_irpgbe,%object
 b__MGI10qat_irpgbe:
 .space __SIZEOF_POINTER__
@@ -7043,7 +7043,7 @@
 b__MA12qat_artngvir4ZnxrRE8qat_ubfg:
 nop
 .data
-.globl b__MGF9gnt_hvag8
+.weak b__MGF9gnt_hvag8
 .type b__MGF9gnt_hvag8,%object
 b__MGF9gnt_hvag8:
 .space __SIZEOF_POINTER__
@@ -7063,7 +7063,7 @@
 b__MA18qat_ymj_pbzcerffbe8NqqGnoyrRvv:
 nop
 .data
-.globl b__MGF28qat_ivtarggr_enqvny_shapgvba
+.weak b__MGF28qat_ivtarggr_enqvny_shapgvba
 .type b__MGF28qat_ivtarggr_enqvny_shapgvba,%object
 b__MGF28qat_ivtarggr_enqvny_shapgvba:
 .space __SIZEOF_POINTER__
@@ -7103,7 +7103,7 @@
 b__MGV22qat_bcpbqr_QrygnCreEbj:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGV19qat_ernq_gvyrf_gnfx
+.weak b__MGV19qat_ernq_gvyrf_gnfx
 .type b__MGV19qat_ernq_gvyrf_gnfx,%object
 b__MGV19qat_ernq_gvyrf_gnfx:
 .space __SIZEOF_POINTER__
@@ -7258,7 +7258,7 @@
 b__MAX10qat_fgevat3TrgRi:
 nop
 .data
-.globl b__MGI20qat_jevgr_gvyrf_gnfx
+.weak b__MGI20qat_jevgr_gvyrf_gnfx
 .type b__MGI20qat_jevgr_gvyrf_gnfx,%object
 b__MGI20qat_jevgr_gvyrf_gnfx:
 .space __SIZEOF_POINTER__
@@ -7368,7 +7368,7 @@
 b__MAX12qat_tnva_znc9ChgFgernzRE10qat_fgernz:
 nop
 .data
-.globl b__MGF22qat_svygre_bcpbqr_gnfx
+.weak b__MGF22qat_svygre_bcpbqr_gnfx
 .type b__MGF22qat_svygre_bcpbqr_gnfx,%object
 b__MGF22qat_svygre_bcpbqr_gnfx:
 .space __SIZEOF_POINTER__
@@ -7428,7 +7428,7 @@
 b__MA12qat_artngvir12FrgEbjOynpxfRCXqw:
 nop
 .data
-.globl b__MGI22qat_svygre_bcpbqr_gnfx
+.weak b__MGI22qat_svygre_bcpbqr_gnfx
 .type b__MGI22qat_svygre_bcpbqr_gnfx,%object
 b__MGI22qat_svygre_bcpbqr_gnfx:
 .space __SIZEOF_POINTER__
@@ -7478,7 +7478,7 @@
 b__MA23qat_erfnzcyr_jrvtugf_2qP2Ri:
 nop
 .text
-.globl b__MAFg3__113__irpgbe_onfrV18qat_abvfr_shapgvba17qat_fgq_nyybpngbeVF1_RRQ2Ri
+.weak b__MAFg3__113__irpgbe_onfrV18qat_abvfr_shapgvba17qat_fgq_nyybpngbeVF1_RRQ2Ri
 .type b__MAFg3__113__irpgbe_onfrV18qat_abvfr_shapgvba17qat_fgq_nyybpngbeVF1_RRQ2Ri,%function
 b__MAFg3__113__irpgbe_onfrV18qat_abvfr_shapgvba17qat_fgq_nyybpngbeVF1_RRQ2Ri:
 nop
@@ -7538,17 +7538,17 @@
 b__MAX15qat_bevragngvba5SyvcURi:
 nop
 .text
-.globl b__MA7NhgbCgeV18qat_onq_cvkry_yvfgRQ2Ri
+.weak b__MA7NhgbCgeV18qat_onq_cvkry_yvfgRQ2Ri
 .type b__MA7NhgbCgeV18qat_onq_cvkry_yvfgRQ2Ri,%function
 b__MA7NhgbCgeV18qat_onq_cvkry_yvfgRQ2Ri:
 nop
 .data
-.globl b__MGF14gnt_hvag16_cge
+.weak b__MGF14gnt_hvag16_cge
 .type b__MGF14gnt_hvag16_cge,%object
 b__MGF14gnt_hvag16_cge:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGI7gnt_kzc
+.weak b__MGI7gnt_kzc
 .type b__MGI7gnt_kzc,%object
 b__MGI7gnt_kzc:
 .space __SIZEOF_POINTER__
@@ -7563,7 +7563,7 @@
 b__MAX15qat_grzcrengher12Trg_kl_pbbeqRi:
 nop
 .data
-.globl b__MGF15qat_zq5_cevagre
+.weak b__MGF15qat_zq5_cevagre
 .type b__MGF15qat_zq5_cevagre,%object
 b__MGF15qat_zq5_cevagre:
 .space __SIZEOF_POINTER__
@@ -7618,7 +7618,7 @@
 b__MA16qat_vzntr_jevgre9JevgrGvyrRE8qat_ubfgEX7qat_vsqE10qat_fgernzEX9qat_vzntrEX8qat_erpgwE7NhgbCgeV16qat_zrzbel_oybpxRFT_FT_FT_:
 nop
 .text
-.globl b__MAFg3__16irpgbeVq17qat_fgq_nyybpngbeVqRR21__chfu_onpx_fybj_cnguVEXqRRiBG_
+.weak b__MAFg3__16irpgbeVq17qat_fgq_nyybpngbeVqRR21__chfu_onpx_fybj_cnguVEXqRRiBG_
 .type b__MAFg3__16irpgbeVq17qat_fgq_nyybpngbeVqRR21__chfu_onpx_fybj_cnguVEXqRRiBG_,%function
 b__MAFg3__16irpgbeVq17qat_fgq_nyybpngbeVqRR21__chfu_onpx_fybj_cnguVEXqRRiBG_:
 nop
@@ -7678,12 +7678,12 @@
 b__M8CPFgbKLMi:
 nop
 .data
-.globl b__MGF20qat_jevgr_gvyrf_gnfx
+.weak b__MGF20qat_jevgr_gvyrf_gnfx
 .type b__MGF20qat_jevgr_gvyrf_gnfx,%object
 b__MGF20qat_jevgr_gvyrf_gnfx:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGI14gnt_hvag32_cge
+.weak b__MGI14gnt_hvag32_cge
 .type b__MGI14gnt_hvag32_cge,%object
 b__MGI14gnt_hvag32_cge:
 .space __SIZEOF_POINTER__
@@ -7773,7 +7773,7 @@
 b__MA20qat_ybffyrff_qrpbqre7TrgNcc0Ri:
 nop
 .data
-.globl b__MGI10gnt_erny64
+.weak b__MGI10gnt_erny64
 .type b__MGI10gnt_erny64,%object
 b__MGI10gnt_erny64:
 .space __SIZEOF_POINTER__
@@ -7908,7 +7908,7 @@
 b__MA14qat_ernq_vzntr7PnaErnqREX7qat_vsq:
 nop
 .data
-.globl b__MGF17gnt_hengvbany_cge
+.weak b__MGF17gnt_hengvbany_cge
 .type b__MGF17gnt_hengvbany_cge,%object
 b__MGF17gnt_hengvbany_cge:
 .space __SIZEOF_POINTER__
@@ -7918,7 +7918,7 @@
 b__MA17GrzcFgernzFavssreQ0Ri:
 nop
 .text
-.globl b__MA7NhgbCgeV19qat_yvarnevmr_cynarRQ2Ri
+.weak b__MA7NhgbCgeV19qat_yvarnevmr_cynarRQ2Ri
 .type b__MA7NhgbCgeV19qat_yvarnevmr_cynarRQ2Ri,%function
 b__MA7NhgbCgeV19qat_yvarnevmr_cynarRQ2Ri:
 nop
@@ -7943,7 +7943,7 @@
 b__MAX26qat_qngr_gvzr_fgbentr_vasb7VfInyvqRi:
 nop
 .data
-.globl b__MGF22qat_tnzzn_rapbqr_cebkl
+.weak b__MGF22qat_tnzzn_rapbqr_cebkl
 .type b__MGF22qat_tnzzn_rapbqr_cebkl,%object
 b__MGF22qat_tnzzn_rapbqr_cebkl:
 .space __SIZEOF_POINTER__
@@ -7978,7 +7978,7 @@
 b__MA19qat_yvarnevmr_cynarP2RE8qat_ubfgE22qat_yvarnevmngvba_vasbEX9qat_vzntrEF4_w:
 nop
 .data
-.globl b__MGF12qat_irpgbe_3
+.weak b__MGF12qat_irpgbe_3
 .type b__MGF12qat_irpgbe_3,%object
 b__MGF12qat_irpgbe_3:
 .space __SIZEOF_POINTER__
@@ -7988,7 +7988,7 @@
 b__MA15qat_bevragngvba7FrgGVSSRw:
 nop
 .data
-.globl b__MGI22qat_tnzzn_rapbqr_cebkl
+.weak b__MGI22qat_tnzzn_rapbqr_cebkl
 .type b__MGI22qat_tnzzn_rapbqr_cebkl,%object
 b__MGI22qat_tnzzn_rapbqr_cebkl:
 .space __SIZEOF_POINTER__
@@ -8003,12 +8003,12 @@
 b__MA15qat_svygre_gnfxQ1Ri:
 nop
 .data
-.globl b__MGI17qat_onfvp_gnt_frg
+.weak b__MGI17qat_onfvp_gnt_frg
 .type b__MGI17qat_onfvp_gnt_frg,%object
 b__MGI17qat_onfvp_gnt_frg:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGF12qat_irpgbe_4
+.weak b__MGF12qat_irpgbe_4
 .type b__MGF12qat_irpgbe_4,%object
 b__MGF12qat_irpgbe_4:
 .space __SIZEOF_POINTER__
@@ -8023,7 +8023,7 @@
 b__MAX18qat_onq_cvkry_yvfg15VfCbvagVfbyngrqRww:
 nop
 .data
-.globl b__MGI10gnt_hvag32
+.weak b__MGI10gnt_hvag32
 .type b__MGI10gnt_hvag32,%object
 b__MGI10gnt_hvag32:
 .space __SIZEOF_POINTER__
@@ -8083,12 +8083,12 @@
 b__MA7qat_vsq10VfInyvqQATRE10qat_funerqw:
 nop
 .data
-.globl b__MGF13gnt_hvag8_cge
+.weak b__MGF13gnt_hvag8_cge
 .type b__MGF13gnt_hvag8_cge,%object
 b__MGF13gnt_hvag8_cge:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGV15qat_zq5_cevagre
+.weak b__MGV15qat_zq5_cevagre
 .type b__MGV15qat_zq5_cevagre,%object
 b__MGV15qat_zq5_cevagre:
 .space __SIZEOF_POINTER__
@@ -8143,7 +8143,7 @@
 b__MA21qat_fcnpr_TenlTnzzn18P1Ri:
 nop
 .data
-.globl b__MGV10gnt_zngevk
+.weak b__MGV10gnt_zngevk
 .type b__MGV10gnt_zngevk,%object
 b__MGV10gnt_zngevk:
 .space __SIZEOF_POINTER__
@@ -8218,7 +8218,7 @@
 b__MA10qat_fgernz15GntInyhr_hvag32Rw:
 nop
 .data
-.globl b__MGV9gnt_hvag8
+.weak b__MGV9gnt_hvag8
 .type b__MGV9gnt_hvag8,%object
 b__MGV9gnt_hvag8:
 .space __SIZEOF_POINTER__
@@ -8268,7 +8268,7 @@
 b__MA14qat_ernq_vzntrP2Ri:
 nop
 .data
-.globl b__MGV17gnt_hengvbany_cge
+.weak b__MGV17gnt_hengvbany_cge
 .type b__MGV17gnt_hengvbany_cge,%object
 b__MGV17gnt_hengvbany_cge:
 .space __SIZEOF_POINTER__
@@ -8293,7 +8293,7 @@
 b__MA8qat_ubfgQ2Ri:
 nop
 .data
-.globl b__MGI28qat_ivtarggr_enqvny_shapgvba
+.weak b__MGI28qat_ivtarggr_enqvny_shapgvba
 .type b__MGI28qat_ivtarggr_enqvny_shapgvba,%object
 b__MGI28qat_ivtarggr_enqvny_shapgvba:
 .space __SIZEOF_POINTER__
@@ -8358,7 +8358,7 @@
 b__MGV13qat_nern_gnfx:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__118__vafregvba_fbeg_3VECSoEX9qat_cbvagF3_RCF1_RRiG0_F8_G_
+.weak b__MAFg3__118__vafregvba_fbeg_3VECSoEX9qat_cbvagF3_RCF1_RRiG0_F8_G_
 .type b__MAFg3__118__vafregvba_fbeg_3VECSoEX9qat_cbvagF3_RCF1_RRiG0_F8_G_,%function
 b__MAFg3__118__vafregvba_fbeg_3VECSoEX9qat_cbvagF3_RCF1_RRiG0_F8_G_:
 nop
@@ -8593,7 +8593,7 @@
 b__MA17qat_fcyvar_fbyireQ0Ri:
 nop
 .text
-.globl b__MAFg3__118__vafregvba_fbeg_3VECSoEX8qat_erpgF3_RCF1_RRiG0_F8_G_
+.weak b__MAFg3__118__vafregvba_fbeg_3VECSoEX8qat_erpgF3_RCF1_RRiG0_F8_G_
 .type b__MAFg3__118__vafregvba_fbeg_3VECSoEX8qat_erpgF3_RCF1_RRiG0_F8_G_,%function
 b__MAFg3__118__vafregvba_fbeg_3VECSoEX8qat_erpgF3_RCF1_RRiG0_F8_G_:
 nop
@@ -8728,7 +8728,7 @@
 b__MA15qat_zq5_cevagre12ZQ5GenafsbezRCwCXu:
 nop
 .data
-.globl b__MGI15gnt_vpp_cebsvyr
+.weak b__MGI15gnt_vpp_cebsvyr
 .type b__MGI15gnt_vpp_cebsvyr,%object
 b__MGI15gnt_vpp_cebsvyr:
 .space __SIZEOF_POINTER__
@@ -8758,7 +8758,7 @@
 b__MAX15qat_enj_cerivrj9NqqGntFrgRE18qat_gvss_qverpgbel:
 nop
 .text
-.globl b__MAFg3__16__fbegVECSoEX8qat_erpgF3_RCF1_RRiG0_F8_G_
+.weak b__MAFg3__16__fbegVECSoEX8qat_erpgF3_RCF1_RRiG0_F8_G_
 .type b__MAFg3__16__fbegVECSoEX8qat_erpgF3_RCF1_RRiG0_F8_G_,%function
 b__MAFg3__16__fbegVECSoEX8qat_erpgF3_RCF1_RRiG0_F8_G_:
 nop
@@ -8928,7 +8928,7 @@
 b__MA21qat_pbafg_gvyr_ohssreP2REX9qat_vzntrEX8qat_erpg:
 nop
 .data
-.globl b__MGF34qat_svaq_arj_enj_vzntr_qvtrfg_gnfx
+.weak b__MGF34qat_svaq_arj_enj_vzntr_qvtrfg_gnfx
 .type b__MGF34qat_svaq_arj_enj_vzntr_qvtrfg_gnfx,%object
 b__MGF34qat_svaq_arj_enj_vzntr_qvtrfg_gnfx:
 .space __SIZEOF_POINTER__
@@ -8943,7 +8943,7 @@
 b__MA10qat_zngevk11FrgVqragvglRw:
 nop
 .data
-.globl b__MGV14gnt_hvag32_cge
+.weak b__MGV14gnt_hvag32_cge
 .type b__MGV14gnt_hvag32_cge,%object
 b__MGV14gnt_hvag32_cge:
 .space __SIZEOF_POINTER__
@@ -9073,17 +9073,17 @@
 b__MA9qat_vzntrQ0Ri:
 nop
 .data
-.globl b__MGI15qat_zngevk_3ol3
+.weak b__MGI15qat_zngevk_3ol3
 .type b__MGI15qat_zngevk_3ol3,%object
 b__MGI15qat_zngevk_3ol3:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGI34qat_svaq_arj_enj_vzntr_qvtrfg_gnfx
+.weak b__MGI34qat_svaq_arj_enj_vzntr_qvtrfg_gnfx
 .type b__MGI34qat_svaq_arj_enj_vzntr_qvtrfg_gnfx,%object
 b__MGI34qat_svaq_arj_enj_vzntr_qvtrfg_gnfx:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__16irpgbeV8qat_erpg17qat_fgq_nyybpngbeVF1_RR21__chfu_onpx_fybj_cnguVEXF1_RRiBG_
+.weak b__MAFg3__16irpgbeV8qat_erpg17qat_fgq_nyybpngbeVF1_RR21__chfu_onpx_fybj_cnguVEXF1_RRiBG_
 .type b__MAFg3__16irpgbeV8qat_erpg17qat_fgq_nyybpngbeVF1_RR21__chfu_onpx_fybj_cnguVEXF1_RRiBG_,%function
 b__MAFg3__16irpgbeV8qat_erpg17qat_fgq_nyybpngbeVF1_RR21__chfu_onpx_fybj_cnguVEXF1_RRiBG_:
 nop
@@ -9118,7 +9118,7 @@
 b__MA10qat_fgernz10Chg_hvag32Rw:
 nop
 .text
-.globl b__MAFg3__17__fbeg4VECSoEX9qat_cbvagF3_RCF1_RRwG0_F8_F8_F8_G_
+.weak b__MAFg3__17__fbeg4VECSoEX9qat_cbvagF3_RCF1_RRwG0_F8_F8_F8_G_
 .type b__MAFg3__17__fbeg4VECSoEX9qat_cbvagF3_RCF1_RRwG0_F8_F8_F8_G_,%function
 b__MAFg3__17__fbeg4VECSoEX9qat_cbvagF3_RCF1_RRwG0_F8_F8_F8_G_:
 nop
@@ -9133,7 +9133,7 @@
 b__MA23qat_erfnzcyr_jrvtugf_2qQ2Ri:
 nop
 .data
-.globl b__MGF21qat_erfnzcyr_shapgvba
+.weak b__MGF21qat_erfnzcyr_shapgvba
 .type b__MGF21qat_erfnzcyr_shapgvba,%object
 b__MGF21qat_erfnzcyr_shapgvba:
 .space __SIZEOF_POINTER__
@@ -9153,7 +9153,7 @@
 b__MA16qat_znyybp_oybpxP2Rw:
 nop
 .data
-.globl b__MGV11qat_fcbbyre
+.weak b__MGV11qat_fcbbyre
 .type b__MGV11qat_fcbbyre,%object
 b__MGV11qat_fcbbyre:
 .space __SIZEOF_POINTER__
@@ -9168,7 +9168,7 @@
 b__MA16qat_vzntr_jevgreP2Ri:
 nop
 .data
-.globl b__MGI13gnt_hengvbany
+.weak b__MGI13gnt_hengvbany
 .type b__MGI13gnt_hengvbany,%object
 b__MGI13gnt_hengvbany:
 .space __SIZEOF_POINTER__
@@ -9178,7 +9178,7 @@
 b__MA27qat_jnec_cnenzf_erpgvyvarneP2RwCX10qat_irpgbeF2_EX16qat_cbvag_erny64:
 nop
 .data
-.globl b__MGF16qat_zrzbel_oybpx
+.weak b__MGF16qat_zrzbel_oybpx
 .type b__MGF16qat_zrzbel_oybpx,%object
 b__MGF16qat_zrzbel_oybpx:
 .space __SIZEOF_POINTER__
@@ -9298,7 +9298,7 @@
 b__MA26qat_ivtarggr_enqvny_cnenzfP1REXAFg3__16irpgbeVq17qat_fgq_nyybpngbeVqRRREX16qat_cbvag_erny64:
 nop
 .data
-.globl b__MGI10qat_zngevk
+.weak b__MGI10qat_zngevk
 .type b__MGI10qat_zngevk,%object
 b__MGI10qat_zngevk:
 .space __SIZEOF_POINTER__
@@ -9393,7 +9393,7 @@
 b__MGV7qat_vsq:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGV13gnt_hengvbany
+.weak b__MGV13gnt_hengvbany
 .type b__MGV13gnt_hengvbany,%object
 b__MGV13gnt_hengvbany:
 .space __SIZEOF_POINTER__
@@ -9428,7 +9428,7 @@
 b__MA17qat_fcyvar_fbyireP1Ri:
 nop
 .text
-.globl b__MAFg3__16irpgbeV23qat_pnzren_cebsvyr_vasb17qat_fgq_nyybpngbeVF1_RR7erfreirRz
+.weak b__MAFg3__16irpgbeV23qat_pnzren_cebsvyr_vasb17qat_fgq_nyybpngbeVF1_RR7erfreirRz
 .type b__MAFg3__16irpgbeV23qat_pnzren_cebsvyr_vasb17qat_fgq_nyybpngbeVF1_RR7erfreirRz,%function
 b__MAFg3__16irpgbeV23qat_pnzren_cebsvyr_vasb17qat_fgq_nyybpngbeVF1_RR7erfreirRz:
 nop
diff --git a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_140.S b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_140.S
index afc12cc..8333641 100644
--- a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_140.S
+++ b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_140.S
@@ -63,7 +63,7 @@
 b__MAX4cvrk14gvss_qverpgbel13GvssQverpgbel17TrgFhoQverpgbevrfRi:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA4cvrk14gvss_qverpgbel13GvssQverpgbelRAF_9nyybpngbeVF3_RRR21__chfu_onpx_fybj_cnguVEXF3_RRiBG_
+.weak b__MAFg3__16irpgbeVA4cvrk14gvss_qverpgbel13GvssQverpgbelRAF_9nyybpngbeVF3_RRR21__chfu_onpx_fybj_cnguVEXF3_RRiBG_
 .type b__MAFg3__16irpgbeVA4cvrk14gvss_qverpgbel13GvssQverpgbelRAF_9nyybpngbeVF3_RRR21__chfu_onpx_fybj_cnguVEXF3_RRiBG_,%function
 b__MAFg3__16irpgbeVA4cvrk14gvss_qverpgbel13GvssQverpgbelRAF_9nyybpngbeVF3_RRR21__chfu_onpx_fybj_cnguVEXF3_RRiBG_:
 nop
@@ -73,7 +73,7 @@
 b__MAX4cvrk14gvss_qverpgbel13GvssQverpgbel4SvaqRw:
 nop
 .text
-.globl b__MAFg3__16irpgbeVuAF_9nyybpngbeVuRRR21__chfu_onpx_fybj_cnguVuRRiBG_
+.weak b__MAFg3__16irpgbeVuAF_9nyybpngbeVuRRR21__chfu_onpx_fybj_cnguVuRRiBG_
 .type b__MAFg3__16irpgbeVuAF_9nyybpngbeVuRRR21__chfu_onpx_fybj_cnguVuRRiBG_,%function
 b__MAFg3__16irpgbeVuAF_9nyybpngbeVuRRR21__chfu_onpx_fybj_cnguVuRRiBG_:
 nop
@@ -88,7 +88,7 @@
 b__MA4cvrk10GvssCnefreP1RCAF_15FgernzVagresnprR:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVwA4cvrk14gvss_qverpgbel13GvssQverpgbel14QverpgbelRagelRRRAF_19__znc_inyhr_pbzcnerVwF6_AF_4yrffVwRRYo1RRRAF_9nyybpngbeVF6_RRR7qrfgeblRCAF_11__gerr_abqrVF6_CiRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVwA4cvrk14gvss_qverpgbel13GvssQverpgbel14QverpgbelRagelRRRAF_19__znc_inyhr_pbzcnerVwF6_AF_4yrffVwRRYo1RRRAF_9nyybpngbeVF6_RRR7qrfgeblRCAF_11__gerr_abqrVF6_CiRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVwA4cvrk14gvss_qverpgbel13GvssQverpgbel14QverpgbelRagelRRRAF_19__znc_inyhr_pbzcnerVwF6_AF_4yrffVwRRYo1RRRAF_9nyybpngbeVF6_RRR7qrfgeblRCAF_11__gerr_abqrVF6_CiRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVwA4cvrk14gvss_qverpgbel13GvssQverpgbel14QverpgbelRagelRRRAF_19__znc_inyhr_pbzcnerVwF6_AF_4yrffVwRRYo1RRRAF_9nyybpngbeVF6_RRR7qrfgeblRCAF_11__gerr_abqrVF6_CiRR:
 nop
@@ -103,7 +103,7 @@
 b__MAX4cvrk12ovanel_cnefr19EnatrPurpxrqOlgrCge13bssfrgVaNeenlRi:
 nop
 .text
-.globl b__MAFg3__16__gerrVwAF_4yrffVwRRAF_9nyybpngbeVwRRR7qrfgeblRCAF_11__gerr_abqrVwCiRR
+.weak b__MAFg3__16__gerrVwAF_4yrffVwRRAF_9nyybpngbeVwRRR7qrfgeblRCAF_11__gerr_abqrVwCiRR
 .type b__MAFg3__16__gerrVwAF_4yrffVwRRAF_9nyybpngbeVwRRR7qrfgeblRCAF_11__gerr_abqrVwCiRR,%function
 b__MAFg3__16__gerrVwAF_4yrffVwRRAF_9nyybpngbeVwRRR7qrfgeblRCAF_11__gerr_abqrVwCiRR:
 nop
@@ -123,7 +123,7 @@
 b__MA4cvrk22vzntr_glcr_erpbtavgvba8VfBsGlcrREXAF_12ovanel_cnefr19EnatrPurpxrqOlgrCgeRAF0_13EnjVzntrGlcrfR:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA4cvrk14gvss_qverpgbel8EngvbanyRAF_9nyybpngbeVF3_RRR6nffvtaVCF3_RRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF3_AF_15vgrengbe_genvgfVFN_R9ersreraprRRR5inyhrRiR4glcrRFN_FN_
+.weak b__MAFg3__16irpgbeVA4cvrk14gvss_qverpgbel8EngvbanyRAF_9nyybpngbeVF3_RRR6nffvtaVCF3_RRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF3_AF_15vgrengbe_genvgfVFN_R9ersreraprRRR5inyhrRiR4glcrRFN_FN_
 .type b__MAFg3__16irpgbeVA4cvrk14gvss_qverpgbel8EngvbanyRAF_9nyybpngbeVF3_RRR6nffvtaVCF3_RRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF3_AF_15vgrengbe_genvgfVFN_R9ersreraprRRR5inyhrRiR4glcrRFN_FN_,%function
 b__MAFg3__16irpgbeVA4cvrk14gvss_qverpgbel8EngvbanyRAF_9nyybpngbeVF3_RRR6nffvtaVCF3_RRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF3_AF_15vgrengbe_genvgfVFN_R9ersreraprRRR5inyhrRiR4glcrRFN_FN_:
 nop
@@ -143,12 +143,12 @@
 b__MA4cvrk14gvss_qverpgbel13GvssQverpgbel8NqqRagelRwwwwEXAFg3__16irpgbeVuAF2_9nyybpngbeVuRRRR:
 nop
 .text
-.globl b__MAFg3__16irpgbeVuAF_9nyybpngbeVuRRR8__nccraqRz
+.weak b__MAFg3__16irpgbeVuAF_9nyybpngbeVuRRR8__nccraqRz
 .type b__MAFg3__16irpgbeVuAF_9nyybpngbeVuRRR8__nccraqRz,%function
 b__MAFg3__16irpgbeVuAF_9nyybpngbeVuRRR8__nccraqRz:
 nop
 .text
-.globl b__MAFg3__16irpgbeVwAF_9nyybpngbeVwRRRP2REXF3_
+.weak b__MAFg3__16irpgbeVwAF_9nyybpngbeVwRRRP2REXF3_
 .type b__MAFg3__16irpgbeVwAF_9nyybpngbeVwRRRP2REXF3_,%function
 b__MAFg3__16irpgbeVwAF_9nyybpngbeVwRRRP2REXF3_:
 nop
@@ -178,7 +178,7 @@
 b__MA4cvrk12ovanel_cnefr6Trg32fREXAF0_19EnatrPurpxrqOlgrCgeRoCAF0_12ZrzbelFgnghfR:
 nop
 .text
-.globl b__MAFg3__16irpgbeVwAF_9nyybpngbeVwRRR21__chfu_onpx_fybj_cnguVEXwRRiBG_
+.weak b__MAFg3__16irpgbeVwAF_9nyybpngbeVwRRR21__chfu_onpx_fybj_cnguVEXwRRiBG_
 .type b__MAFg3__16irpgbeVwAF_9nyybpngbeVwRRR21__chfu_onpx_fybj_cnguVEXwRRiBG_,%function
 b__MAFg3__16irpgbeVwAF_9nyybpngbeVwRRR21__chfu_onpx_fybj_cnguVEXwRRiBG_:
 nop
@@ -228,7 +228,7 @@
 b__MAX4cvrk12ovanel_cnefr19EnatrPurpxrqOlgrCge12rkgenpgOlgrfRzz:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVwA4cvrk14gvss_qverpgbel13GvssQverpgbel14QverpgbelRagelRRRAF_19__znc_inyhr_pbzcnerVwF6_AF_4yrffVwRRYo1RRRAF_9nyybpngbeVF6_RRR12__svaq_rdhnyVwRRECAF_16__gerr_abqr_onfrVCiRRAF_21__gerr_pbafg_vgrengbeVF6_CAF_11__gerr_abqrVF6_FT_RRyRRECAF_15__gerr_raq_abqrVFV_RRFW_EXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVwA4cvrk14gvss_qverpgbel13GvssQverpgbel14QverpgbelRagelRRRAF_19__znc_inyhr_pbzcnerVwF6_AF_4yrffVwRRYo1RRRAF_9nyybpngbeVF6_RRR12__svaq_rdhnyVwRRECAF_16__gerr_abqr_onfrVCiRRAF_21__gerr_pbafg_vgrengbeVF6_CAF_11__gerr_abqrVF6_FT_RRyRRECAF_15__gerr_raq_abqrVFV_RRFW_EXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVwA4cvrk14gvss_qverpgbel13GvssQverpgbel14QverpgbelRagelRRRAF_19__znc_inyhr_pbzcnerVwF6_AF_4yrffVwRRYo1RRRAF_9nyybpngbeVF6_RRR12__svaq_rdhnyVwRRECAF_16__gerr_abqr_onfrVCiRRAF_21__gerr_pbafg_vgrengbeVF6_CAF_11__gerr_abqrVF6_FT_RRyRRECAF_15__gerr_raq_abqrVFV_RRFW_EXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVwA4cvrk14gvss_qverpgbel13GvssQverpgbel14QverpgbelRagelRRRAF_19__znc_inyhr_pbzcnerVwF6_AF_4yrffVwRRYo1RRRAF_9nyybpngbeVF6_RRR12__svaq_rdhnyVwRRECAF_16__gerr_abqr_onfrVCiRRAF_21__gerr_pbafg_vgrengbeVF6_CAF_11__gerr_abqrVF6_FT_RRyRRECAF_15__gerr_raq_abqrVFV_RRFW_EXG_:
 nop
@@ -353,7 +353,7 @@
 b__MAX4cvrk12ovanel_cnefr19EnatrPurpxrqOlgrCge17cbvagreGbFhoNeenlRzz:
 nop
 .text
-.globl b__MAFg3__16irpgbeVwAF_9nyybpngbeVwRRR6nffvtaVCwRRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVwAF_15vgrengbe_genvgfVF7_R9ersreraprRRR5inyhrRiR4glcrRF7_F7_
+.weak b__MAFg3__16irpgbeVwAF_9nyybpngbeVwRRR6nffvtaVCwRRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVwAF_15vgrengbe_genvgfVF7_R9ersreraprRRR5inyhrRiR4glcrRF7_F7_
 .type b__MAFg3__16irpgbeVwAF_9nyybpngbeVwRRR6nffvtaVCwRRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVwAF_15vgrengbe_genvgfVF7_R9ersreraprRRR5inyhrRiR4glcrRF7_F7_,%function
 b__MAFg3__16irpgbeVwAF_9nyybpngbeVwRRR6nffvtaVCwRRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVwAF_15vgrengbe_genvgfVF7_R9ersreraprRRR5inyhrRiR4glcrRF7_F7_:
 nop
@@ -368,7 +368,7 @@
 b__MA4cvrk6Trg32hRCAF_15FgernzVagresnprRwEXAF_14gvss_qverpgbel6RaqvnaRCw:
 nop
 .text
-.globl b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
+.weak b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
 .type b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_,%function
 b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_:
 nop
@@ -388,7 +388,7 @@
 b__MAX4cvrk14gvss_qverpgbel13GvssQverpgbel3UnfRw:
 nop
 .text
-.globl b__MAFg3__16__gerrVwAF_4yrffVwRRAF_9nyybpngbeVwRRR12__svaq_rdhnyVwRRECAF_16__gerr_abqr_onfrVCiRRAF_21__gerr_pbafg_vgrengbeVwCAF_11__gerr_abqrVwF8_RRyRRECAF_15__gerr_raq_abqrVFN_RRFO_EXG_
+.weak b__MAFg3__16__gerrVwAF_4yrffVwRRAF_9nyybpngbeVwRRR12__svaq_rdhnyVwRRECAF_16__gerr_abqr_onfrVCiRRAF_21__gerr_pbafg_vgrengbeVwCAF_11__gerr_abqrVwF8_RRyRRECAF_15__gerr_raq_abqrVFN_RRFO_EXG_
 .type b__MAFg3__16__gerrVwAF_4yrffVwRRAF_9nyybpngbeVwRRR12__svaq_rdhnyVwRRECAF_16__gerr_abqr_onfrVCiRRAF_21__gerr_pbafg_vgrengbeVwCAF_11__gerr_abqrVwF8_RRyRRECAF_15__gerr_raq_abqrVFN_RRFO_EXG_,%function
 b__MAFg3__16__gerrVwAF_4yrffVwRRAF_9nyybpngbeVwRRR12__svaq_rdhnyVwRRECAF_16__gerr_abqr_onfrVCiRRAF_21__gerr_pbafg_vgrengbeVwCAF_11__gerr_abqrVwF8_RRyRRECAF_15__gerr_raq_abqrVFN_RRFO_EXG_:
 nop
@@ -398,7 +398,7 @@
 b__MA4cvrk19TrgCerivrjVzntrQngnRCAF_15FgernzVagresnprRCAF_16CerivrjVzntrQngnR:
 nop
 .text
-.globl b__MAFg3__16irpgbeVuAF_9nyybpngbeVuRRR6nffvtaVCuRRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVuAF_15vgrengbe_genvgfVF7_R9ersreraprRRR5inyhrRiR4glcrRF7_F7_
+.weak b__MAFg3__16irpgbeVuAF_9nyybpngbeVuRRR6nffvtaVCuRRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVuAF_15vgrengbe_genvgfVF7_R9ersreraprRRR5inyhrRiR4glcrRF7_F7_
 .type b__MAFg3__16irpgbeVuAF_9nyybpngbeVuRRR6nffvtaVCuRRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVuAF_15vgrengbe_genvgfVF7_R9ersreraprRRR5inyhrRiR4glcrRF7_F7_,%function
 b__MAFg3__16irpgbeVuAF_9nyybpngbeVuRRR6nffvtaVCuRRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVuAF_15vgrengbe_genvgfVF7_R9ersreraprRRR5inyhrRiR4glcrRF7_F7_:
 nop
@@ -418,7 +418,7 @@
 b__MA4cvrk20TrgShyyPebcQvzrafvbaREXAF_14gvss_qverpgbel13GvssQverpgbelRCwF4_:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVwA4cvrk14gvss_qverpgbel13GvssQverpgbel14QverpgbelRagelRRRAF_19__znc_inyhr_pbzcnerVwF6_AF_4yrffVwRRYo1RRRAF_9nyybpngbeVF6_RRR16__pbafgehpg_abqrVWEXAF_4cnveVXwF5_RRRRRAF_10havdhr_cgeVAF_11__gerr_abqrVF6_CiRRAF_22__gerr_abqr_qrfgehpgbeVAFO_VFA_RRRRRRQcBG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVwA4cvrk14gvss_qverpgbel13GvssQverpgbel14QverpgbelRagelRRRAF_19__znc_inyhr_pbzcnerVwF6_AF_4yrffVwRRYo1RRRAF_9nyybpngbeVF6_RRR16__pbafgehpg_abqrVWEXAF_4cnveVXwF5_RRRRRAF_10havdhr_cgeVAF_11__gerr_abqrVF6_CiRRAF_22__gerr_abqr_qrfgehpgbeVAFO_VFA_RRRRRRQcBG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVwA4cvrk14gvss_qverpgbel13GvssQverpgbel14QverpgbelRagelRRRAF_19__znc_inyhr_pbzcnerVwF6_AF_4yrffVwRRYo1RRRAF_9nyybpngbeVF6_RRR16__pbafgehpg_abqrVWEXAF_4cnveVXwF5_RRRRRAF_10havdhr_cgeVAF_11__gerr_abqrVF6_CiRRAF_22__gerr_abqr_qrfgehpgbeVAFO_VFA_RRRRRRQcBG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVwA4cvrk14gvss_qverpgbel13GvssQverpgbel14QverpgbelRagelRRRAF_19__znc_inyhr_pbzcnerVwF6_AF_4yrffVwRRYo1RRRAF_9nyybpngbeVF6_RRR16__pbafgehpg_abqrVWEXAF_4cnveVXwF5_RRRRRAF_10havdhr_cgeVAF_11__gerr_abqrVF6_CiRRAF_22__gerr_abqr_qrfgehpgbeVAFO_VFA_RRRRRRQcBG_:
 nop
@@ -438,7 +438,7 @@
 b__MA4cvrk13TrgRaqvnaarffRwCAF_15FgernzVagresnprRCAF_14gvss_qverpgbel6RaqvnaR:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA4cvrk14gvss_qverpgbel9FEngvbanyRAF_9nyybpngbeVF3_RRR6nffvtaVCF3_RRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF3_AF_15vgrengbe_genvgfVFN_R9ersreraprRRR5inyhrRiR4glcrRFN_FN_
+.weak b__MAFg3__16irpgbeVA4cvrk14gvss_qverpgbel9FEngvbanyRAF_9nyybpngbeVF3_RRR6nffvtaVCF3_RRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF3_AF_15vgrengbe_genvgfVFN_R9ersreraprRRR5inyhrRiR4glcrRFN_FN_
 .type b__MAFg3__16irpgbeVA4cvrk14gvss_qverpgbel9FEngvbanyRAF_9nyybpngbeVF3_RRR6nffvtaVCF3_RRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF3_AF_15vgrengbe_genvgfVFN_R9ersreraprRRR5inyhrRiR4glcrRFN_FN_,%function
 b__MAFg3__16irpgbeVA4cvrk14gvss_qverpgbel9FEngvbanyRAF_9nyybpngbeVF3_RRR6nffvtaVCF3_RRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF3_AF_15vgrengbe_genvgfVFN_R9ersreraprRRR5inyhrRiR4glcrRFN_FN_:
 nop
diff --git a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_143.S b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_143.S
index 9ff873a..71a8f1e 100644
--- a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_143.S
+++ b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_143.S
@@ -28,7 +28,7 @@
 b__M17perngrUrvsQrpbqrei:
 nop
 .text
-.globl b__MA7naqebvq11OaVagresnprVAF_11VQngnFbheprRR10baNfOvaqreRi
+.weak b__MA7naqebvq11OaVagresnprVAF_11VQngnFbheprRR10baNfOvaqreRi
 .type b__MA7naqebvq11OaVagresnprVAF_11VQngnFbheprRR10baNfOvaqreRi,%function
 b__MA7naqebvq11OaVagresnprVAF_11VQngnFbheprRR10baNfOvaqreRi:
 nop
diff --git a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_146.S b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_146.S
index 43b2ff0..b8bcbb4 100644
--- a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_146.S
+++ b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_146.S
@@ -3,7 +3,7 @@
 .data
 .p2align 4
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_:
 nop
@@ -23,7 +23,7 @@
 b__MA7naqebvq8uneqjner8zrzgenpx4I1_09VZrzgenpx21frgUNYVafgehzragngvbaRi:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_:
 nop
@@ -58,12 +58,12 @@
 b__MA7naqebvq8uneqjner8zrzgenpx4I1_09VZrzgenpx24ertvfgreSbeAbgvsvpngvbafREXAFg3__112onfvp_fgevatVpAF4_11pune_genvgfVpRRAF4_9nyybpngbeVpRRRREXAF_2fcVAF_4uvqy7znantre4I1_020VFreivprAbgvsvpngvbaRRR:
 nop
 .text
-.globl b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
+.weak b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
 .type b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_,%function
 b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFR_RRECAF_15__gerr_raq_abqrVFE_RREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFR_RRECAF_15__gerr_raq_abqrVFE_RREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFR_RRECAF_15__gerr_raq_abqrVFE_RREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFR_RRECAF_15__gerr_raq_abqrVFE_RREXG_:
 nop
@@ -93,7 +93,7 @@
 b__MA7naqebvq8uneqjner8zrzgenpx4I1_012OcUjZrzgenpxP2REXAF_2fcVAF0_7VOvaqreRRR:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_8zrzgenpx4I1_09VZrzgenpxRAF_4uvqy4onfr4I1_05VOnfrRAF4_12OcUjZrzgenpxRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_8zrzgenpx4I1_09VZrzgenpxRAF_4uvqy4onfr4I1_05VOnfrRAF4_12OcUjZrzgenpxRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo
 .type b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_8zrzgenpx4I1_09VZrzgenpxRAF_4uvqy4onfr4I1_05VOnfrRAF4_12OcUjZrzgenpxRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_8zrzgenpx4I1_09VZrzgenpxRAF_4uvqy4onfr4I1_05VOnfrRAF4_12OcUjZrzgenpxRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo:
 nop
@@ -108,12 +108,12 @@
 b__MA7naqebvq8uneqjner8zrzgenpx4I1_09VZrzgenpx8pnfgSebzREXAF_2fcVAF_4uvqy4onfr4I1_05VOnfrRRRo:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRR:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_8uneqjner27uvqy_ovaqre_qrngu_erpvcvragRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_
+.weak b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_8uneqjner27uvqy_ovaqre_qrngu_erpvcvragRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_
 .type b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_8uneqjner27uvqy_ovaqre_qrngu_erpvcvragRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_,%function
 b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_8uneqjner27uvqy_ovaqre_qrngu_erpvcvragRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_:
 nop
@@ -133,7 +133,7 @@
 b__MA7naqebvq8uneqjner8zrzgenpx4I1_09VZrzgenpx21abgvslFlfcebcfPunatrqRi:
 nop
 .data
-.globl b__MGPA7naqebvq8uneqjner8zrzgenpx4I1_010OfZrzgenpxR0_AF2_9VZrzgenpxR
+.weak b__MGPA7naqebvq8uneqjner8zrzgenpx4I1_010OfZrzgenpxR0_AF2_9VZrzgenpxR
 .type b__MGPA7naqebvq8uneqjner8zrzgenpx4I1_010OfZrzgenpxR0_AF2_9VZrzgenpxR,%object
 b__MGPA7naqebvq8uneqjner8zrzgenpx4I1_010OfZrzgenpxR0_AF2_9VZrzgenpxR:
 .space __SIZEOF_POINTER__
@@ -168,7 +168,7 @@
 b__MA7naqebvq8uneqjner8zrzgenpx4I1_012OcUjZrzgenpx12trgQrohtVasbRAFg3__18shapgvbaVSiEXAF_4uvqy4onfr4I1_09QrohtVasbRRRR:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRP2REXFU_
+.weak b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRP2REXFU_
 .type b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRP2REXFU_,%function
 b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRP2REXFU_:
 nop
@@ -188,7 +188,7 @@
 b__MA7naqebvq8uneqjner8zrzgenpx4I1_09VZrzgenpx11yvaxGbQrnguREXAF_2fcVAF0_20uvqy_qrngu_erpvcvragRRRz:
 nop
 .text
-.globl b__MAXFg3__18shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF7_F7_F7_CAF_6irpgbeVCiAF_9nyybpngbeVF9_RRRRRRpyRF5_F7_F7_F7_F7_FQ_
+.weak b__MAXFg3__18shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF7_F7_F7_CAF_6irpgbeVCiAF_9nyybpngbeVF9_RRRRRRpyRF5_F7_F7_F7_F7_FQ_
 .type b__MAXFg3__18shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF7_F7_F7_CAF_6irpgbeVCiAF_9nyybpngbeVF9_RRRRRRpyRF5_F7_F7_F7_F7_FQ_,%function
 b__MAXFg3__18shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF7_F7_F7_CAF_6irpgbeVCiAF_9nyybpngbeVF9_RRRRRRpyRF5_F7_F7_F7_F7_FQ_:
 nop
@@ -238,7 +238,7 @@
 b__MA7naqebvq8uneqjner8zrzgenpx4I1_09VZrzgenpx5qrohtREXAF0_11uvqy_unaqyrREXAF0_8uvqy_irpVAF0_11uvqy_fgevatRRR:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFT_RRECAF_15__gerr_raq_abqrVFG_RREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFT_RRECAF_15__gerr_raq_abqrVFG_RREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFT_RRECAF_15__gerr_raq_abqrVFG_RREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFT_RRECAF_15__gerr_raq_abqrVFG_RREXG_:
 nop
@@ -248,12 +248,12 @@
 b__MA7naqebvq8uneqjner8zrzgenpx4I1_010OfZrzgenpxP1RAF_2fcVAF2_9VZrzgenpxRRR:
 nop
 .text
-.globl b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
+.weak b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
 .type b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_,%function
 b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRR:
 nop
@@ -283,7 +283,7 @@
 b__MA7naqebvq8uneqjner8zrzgenpx4I1_09VZrzgenpx12trgUnfuPunvaRAFg3__18shapgvbaVSiEXAF0_8uvqy_irpVAF0_10uvqy_neenlVuYz32RWRRRRRRRR:
 nop
 .text
-.globl b__MAFg3__16irpgbeVCiAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_
+.weak b__MAFg3__16irpgbeVCiAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_
 .type b__MAFg3__16irpgbeVCiAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_,%function
 b__MAFg3__16irpgbeVCiAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_:
 nop
@@ -338,7 +338,7 @@
 b__MGPA7naqebvq8uneqjner8zrzgenpx4I1_012OaUjZrzgenpxR0_AF0_9OUjOvaqreR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_8zrzgenpx4I1_012OcUjZrzgenpxRAF4_9VZrzgenpxRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_8zrzgenpx4I1_012OcUjZrzgenpxRAF4_9VZrzgenpxRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo
 .type b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_8zrzgenpx4I1_012OcUjZrzgenpxRAF4_9VZrzgenpxRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_8zrzgenpx4I1_012OcUjZrzgenpxRAF4_9VZrzgenpxRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo:
 nop
@@ -363,7 +363,7 @@
 b__MGGA7naqebvq8uneqjner8zrzgenpx4I1_012OcUjZrzgenpxR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIA7naqebvq8uneqjner8zrzgenpx4I1_010OfZrzgenpxR
+.weak b__MGIA7naqebvq8uneqjner8zrzgenpx4I1_010OfZrzgenpxR
 .type b__MGIA7naqebvq8uneqjner8zrzgenpx4I1_010OfZrzgenpxR,%object
 b__MGIA7naqebvq8uneqjner8zrzgenpx4I1_010OfZrzgenpxR:
 .space __SIZEOF_POINTER__
diff --git a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_147.S b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_147.S
index 3844c06..845c2b7 100644
--- a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_147.S
+++ b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_147.S
@@ -13,12 +13,12 @@
 b__MA7naqebvq8cebpvasb27TrgCebprffVasbSebzCebpCvqSqRvCAF0_11CebprffVasbRCAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRR:
 nop
 .text
-.globl b__MAFg3__124__chg_punenpgre_frdhraprVpAF_11pune_genvgfVpRRRREAF_13onfvp_bfgernzVG_G0_RRF7_CXF4_z
+.weak b__MAFg3__124__chg_punenpgre_frdhraprVpAF_11pune_genvgfVpRRRREAF_13onfvp_bfgernzVG_G0_RRF7_CXF4_z
 .type b__MAFg3__124__chg_punenpgre_frdhraprVpAF_11pune_genvgfVpRRRREAF_13onfvp_bfgernzVG_G0_RRF7_CXF4_z,%function
 b__MAFg3__124__chg_punenpgre_frdhraprVpAF_11pune_genvgfVpRRRREAF_13onfvp_bfgernzVG_G0_RRF7_CXF4_z:
 nop
 .text
-.globl b__MA7naqebvq8cebpvasb18ErnqZncSvyrPbagragVAFg3__18shapgvbaVSizzgzzCXpRRRRRoCpEXG_
+.weak b__MA7naqebvq8cebpvasb18ErnqZncSvyrPbagragVAFg3__18shapgvbaVSizzgzzCXpRRRRRoCpEXG_
 .type b__MA7naqebvq8cebpvasb18ErnqZncSvyrPbagragVAFg3__18shapgvbaVSizzgzzCXpRRRRRoCpEXG_,%function
 b__MA7naqebvq8cebpvasb18ErnqZncSvyrPbagragVAFg3__18shapgvbaVSizzgzzCXpRRRRRoCpEXG_:
 nop
diff --git a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_151.S b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_151.S
index db720dc..5116124 100644
--- a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_151.S
+++ b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_151.S
@@ -1093,7 +1093,7 @@
 b_h_zrzepue32_64:
 nop
 .text
-.globl b__MA6vph_6415ZnlorFgnpxNeenlVpYv40RRvkRy
+.weak b__MA6vph_6415ZnlorFgnpxNeenlVpYv40RRvkRy
 .type b__MA6vph_6415ZnlorFgnpxNeenlVpYv40RRvkRy,%function
 b__MA6vph_6415ZnlorFgnpxNeenlVpYv40RRvkRy:
 nop
@@ -1653,7 +1653,7 @@
 b__MAX6vph_6410HavpbqrFrg11pbagnvafNyyREXAF_13HavpbqrFgevatR:
 nop
 .text
-.globl b__MA6vph_6415ZnlorFgnpxNeenlVpYv40RRnFRBF1_
+.weak b__MA6vph_6415ZnlorFgnpxNeenlVpYv40RRnFRBF1_
 .type b__MA6vph_6415ZnlorFgnpxNeenlVpYv40RRnFRBF1_,%function
 b__MA6vph_6415ZnlorFgnpxNeenlVpYv40RRnFRBF1_:
 nop
@@ -2188,7 +2188,7 @@
 b__MAX6vph_6413HavpbqrFgevat9trgYratguRi:
 nop
 .text
-.globl b__MA6vph_6415ZnlorFgnpxNeenlVpYv40RRP2RBF1_
+.weak b__MA6vph_6415ZnlorFgnpxNeenlVpYv40RRP2RBF1_
 .type b__MA6vph_6415ZnlorFgnpxNeenlVpYv40RRP2RBF1_,%function
 b__MA6vph_6415ZnlorFgnpxNeenlVpYv40RRP2RBF1_:
 nop
@@ -2253,7 +2253,7 @@
 b__MA6vph_6410HavpbqrFrg10perngrSebzREXAF_13HavpbqrFgevatR:
 nop
 .data
-.globl b__MGVA6vph_647HZrzbelR
+.weak b__MGVA6vph_647HZrzbelR
 .type b__MGVA6vph_647HZrzbelR,%object
 b__MGVA6vph_647HZrzbelR:
 .space __SIZEOF_POINTER__
@@ -3098,7 +3098,7 @@
 b_hyqa_ynathntrQvfcynlAnzr_64:
 nop
 .text
-.globl b__MA6vph_6415ZnlorFgnpxNeenlVpYv40RRarREXF1_
+.weak b__MA6vph_6415ZnlorFgnpxNeenlVpYv40RRarREXF1_
 .type b__MA6vph_6415ZnlorFgnpxNeenlVpYv40RRarREXF1_,%function
 b__MA6vph_6415ZnlorFgnpxNeenlVpYv40RRarREXF1_:
 nop
@@ -3648,7 +3648,7 @@
 b_hfrg_vfRzcgl_64:
 nop
 .text
-.globl b__MAX6vph_6415ZnlorFgnpxNeenlVpYv40RR11trgPncnpvglRi
+.weak b__MAX6vph_6415ZnlorFgnpxNeenlVpYv40RR11trgPncnpvglRi
 .type b__MAX6vph_6415ZnlorFgnpxNeenlVpYv40RR11trgPncnpvglRi,%function
 b__MAX6vph_6415ZnlorFgnpxNeenlVpYv40RR11trgPncnpvglRi:
 nop
@@ -4073,7 +4073,7 @@
 b_hgevr_rahz_64:
 nop
 .text
-.globl b__MAX6vph_6415ZnlorFgnpxNeenlVpYv40RR13trgNeenlYvzvgRi
+.weak b__MAX6vph_6415ZnlorFgnpxNeenlVpYv40RR13trgNeenlYvzvgRi
 .type b__MAX6vph_6415ZnlorFgnpxNeenlVpYv40RR13trgNeenlYvzvgRi,%function
 b__MAX6vph_6415ZnlorFgnpxNeenlVpYv40RR13trgNeenlYvzvgRi:
 nop
@@ -4883,7 +4883,7 @@
 b_hybp_bcraXrljbeqYvfg_64:
 nop
 .text
-.globl b__MA6vph_6415ZnlorFgnpxNeenlVpYv40RRQ1Ri
+.weak b__MA6vph_6415ZnlorFgnpxNeenlVpYv40RRQ1Ri
 .type b__MA6vph_6415ZnlorFgnpxNeenlVpYv40RRQ1Ri,%function
 b__MA6vph_6415ZnlorFgnpxNeenlVpYv40RRQ1Ri:
 nop
@@ -5643,7 +5643,7 @@
 b__MA6vph_649HIrpgbe64P1RE10HReebePbqr:
 nop
 .text
-.globl b__MA6vph_6415ZnlorFgnpxNeenlVpYv40RRP2REXF1_
+.weak b__MA6vph_6415ZnlorFgnpxNeenlVpYv40RRP2REXF1_
 .type b__MA6vph_6415ZnlorFgnpxNeenlVpYv40RRP2REXF1_,%function
 b__MA6vph_6415ZnlorFgnpxNeenlVpYv40RRP2REXF1_:
 nop
@@ -6258,7 +6258,7 @@
 b__MA6vph_646HFgnpxQ0Ri:
 nop
 .text
-.globl b__MA6vph_6415ZnlorFgnpxNeenlVpYv40RRP1REXF1_
+.weak b__MA6vph_6415ZnlorFgnpxNeenlVpYv40RRP1REXF1_
 .type b__MA6vph_6415ZnlorFgnpxNeenlVpYv40RRP1REXF1_,%function
 b__MA6vph_6415ZnlorFgnpxNeenlVpYv40RRP1REXF1_:
 nop
@@ -6433,7 +6433,7 @@
 b__MAX6vph_644VQAN18ynoryGbHavpbqrHGS8RAF_11FgevatCvrprREAF_8OlgrFvaxREAF_8VQANVasbRE10HReebePbqr:
 nop
 .text
-.globl b__MA6vph_6415ZnlorFgnpxNeenlVpYv40RRP2Rv
+.weak b__MA6vph_6415ZnlorFgnpxNeenlVpYv40RRP2Rv
 .type b__MA6vph_6415ZnlorFgnpxNeenlVpYv40RRP2Rv,%function
 b__MA6vph_6415ZnlorFgnpxNeenlVpYv40RRP2Rv:
 nop
@@ -6658,7 +6658,7 @@
 b_hpai_trgNyvnf_64:
 nop
 .text
-.globl b__MA6vph_6415ZnlorFgnpxNeenlVpYv40RRP2Ri
+.weak b__MA6vph_6415ZnlorFgnpxNeenlVpYv40RRP2Ri
 .type b__MA6vph_6415ZnlorFgnpxNeenlVpYv40RRP2Ri,%function
 b__MA6vph_6415ZnlorFgnpxNeenlVpYv40RRP2Ri:
 nop
@@ -7518,7 +7518,7 @@
 b__MA6vph_6422EhyrOnfrqOernxVgrengbe10unaqyrArkgRi:
 nop
 .data
-.globl b__MGVA6vph_6417FgevatGevrOhvyqre10OenapuAbqrR
+.weak b__MGVA6vph_6417FgevatGevrOhvyqre10OenapuAbqrR
 .type b__MGVA6vph_6417FgevatGevrOhvyqre10OenapuAbqrR,%object
 b__MGVA6vph_6417FgevatGevrOhvyqre10OenapuAbqrR:
 .space __SIZEOF_POINTER__
@@ -7578,7 +7578,7 @@
 b__MA6vph_649HIrpgbe64P2RE10HReebePbqr:
 nop
 .text
-.globl b__MA6vph_6415ZnlorFgnpxNeenlVpYv40RRrdREXF1_
+.weak b__MA6vph_6415ZnlorFgnpxNeenlVpYv40RRrdREXF1_
 .type b__MA6vph_6415ZnlorFgnpxNeenlVpYv40RRrdREXF1_,%function
 b__MA6vph_6415ZnlorFgnpxNeenlVpYv40RRrdREXF1_:
 nop
@@ -7663,7 +7663,7 @@
 b__MGIA6vph_649HIrpgbe32R:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA6vph_6415ZnlorFgnpxNeenlVpYv40RR12eryrnfrNeenlRi
+.weak b__MA6vph_6415ZnlorFgnpxNeenlVpYv40RR12eryrnfrNeenlRi
 .type b__MA6vph_6415ZnlorFgnpxNeenlVpYv40RR12eryrnfrNeenlRi,%function
 b__MA6vph_6415ZnlorFgnpxNeenlVpYv40RR12eryrnfrNeenlRi:
 nop
@@ -8203,7 +8203,7 @@
 b__MA6vph_646Ybpnyr9trgTreznaRi:
 nop
 .text
-.globl b__MAX6vph_6415ZnlorFgnpxNeenlVpYv40RRvkRy
+.weak b__MAX6vph_6415ZnlorFgnpxNeenlVpYv40RRvkRy
 .type b__MAX6vph_6415ZnlorFgnpxNeenlVpYv40RRvkRy,%function
 b__MAX6vph_6415ZnlorFgnpxNeenlVpYv40RRvkRy:
 nop
@@ -8868,7 +8868,7 @@
 b__MA6vph_6422FvzcyrYbpnyrXrlSnpgbelQ2Ri:
 nop
 .data
-.globl b__MGFA6vph_647HZrzbelR
+.weak b__MGFA6vph_647HZrzbelR
 .type b__MGFA6vph_647HZrzbelR,%object
 b__MGFA6vph_647HZrzbelR:
 .space __SIZEOF_POINTER__
@@ -9143,7 +9143,7 @@
 b_h_frgNgbzvpVapQrpShapgvbaf_64:
 nop
 .text
-.globl b__MA6vph_6415ZnlorFgnpxNeenlVpYv40RR13becunaBePybarRvEv
+.weak b__MA6vph_6415ZnlorFgnpxNeenlVpYv40RR13becunaBePybarRvEv
 .type b__MA6vph_6415ZnlorFgnpxNeenlVpYv40RR13becunaBePybarRvEv,%function
 b__MA6vph_6415ZnlorFgnpxNeenlVpYv40RR13becunaBePybarRvEv:
 nop
@@ -9173,7 +9173,7 @@
 b__MA6vph_6410Nccraqnoyr21erfreirNccraqPncnpvglRv:
 nop
 .text
-.globl b__MAX6vph_6415ZnlorFgnpxNeenlVpYv40RR8trgNyvnfRi
+.weak b__MAX6vph_6415ZnlorFgnpxNeenlVpYv40RR8trgNyvnfRi
 .type b__MAX6vph_6415ZnlorFgnpxNeenlVpYv40RR8trgNyvnfRi,%function
 b__MAX6vph_6415ZnlorFgnpxNeenlVpYv40RR8trgNyvnfRi:
 nop
@@ -9408,7 +9408,7 @@
 b__MA6vph_6413HavpbqrFgevatP2REXF0_vv:
 nop
 .text
-.globl b__MA6vph_6415ZnlorFgnpxNeenlVpYv40RR12nyvnfVafgrnqRCpv
+.weak b__MA6vph_6415ZnlorFgnpxNeenlVpYv40RR12nyvnfVafgrnqRCpv
 .type b__MA6vph_6415ZnlorFgnpxNeenlVpYv40RR12nyvnfVafgrnqRCpv,%function
 b__MA6vph_6415ZnlorFgnpxNeenlVpYv40RR12nyvnfVafgrnqRCpv:
 nop
@@ -11578,7 +11578,7 @@
 b__MA6vph_6417FgevatRahzrengvbaQ1Ri:
 nop
 .text
-.globl b__MA6vph_6415ZnlorFgnpxNeenlVpYv40RR6erfvmrRvv
+.weak b__MA6vph_6415ZnlorFgnpxNeenlVpYv40RR6erfvmrRvv
 .type b__MA6vph_6415ZnlorFgnpxNeenlVpYv40RR6erfvmrRvv,%function
 b__MA6vph_6415ZnlorFgnpxNeenlVpYv40RR6erfvmrRvv:
 nop
@@ -11643,7 +11643,7 @@
 b_h_fgeapnfrpzc_64:
 nop
 .text
-.globl b__MA6vph_6415ZnlorFgnpxNeenlVpYv40RRP1Rv
+.weak b__MA6vph_6415ZnlorFgnpxNeenlVpYv40RRP1Rv
 .type b__MA6vph_6415ZnlorFgnpxNeenlVpYv40RRP1Rv,%function
 b__MA6vph_6415ZnlorFgnpxNeenlVpYv40RRP1Rv:
 nop
@@ -11853,7 +11853,7 @@
 b__MAX6vph_6413HavpbqrFgevat9qbVaqrkBsRvvv:
 nop
 .text
-.globl b__MA6vph_6415ZnlorFgnpxNeenlVpYv40RRP1Ri
+.weak b__MA6vph_6415ZnlorFgnpxNeenlVpYv40RRP1Ri
 .type b__MA6vph_6415ZnlorFgnpxNeenlVpYv40RRP1Ri,%function
 b__MA6vph_6415ZnlorFgnpxNeenlVpYv40RRP1Ri:
 nop
@@ -12268,7 +12268,7 @@
 b__MAX6vph_6413HavpbqrFgevat9qbRkgenpgRvvCQfv:
 nop
 .data
-.globl b__MGFA6vph_6417FgevatGevrOhvyqre10OenapuAbqrR
+.weak b__MGFA6vph_6417FgevatGevrOhvyqre10OenapuAbqrR
 .type b__MGFA6vph_6417FgevatGevrOhvyqre10OenapuAbqrR,%object
 b__MGFA6vph_6417FgevatGevrOhvyqre10OenapuAbqrR:
 .space __SIZEOF_POINTER__
@@ -12838,7 +12838,7 @@
 b_hpnfrznc_gbGvgyr_64:
 nop
 .text
-.globl b__MA6vph_6415ZnlorFgnpxNeenlVpYv40RR17erfrgGbFgnpxNeenlRi
+.weak b__MA6vph_6415ZnlorFgnpxNeenlVpYv40RR17erfrgGbFgnpxNeenlRi
 .type b__MA6vph_6415ZnlorFgnpxNeenlVpYv40RR17erfrgGbFgnpxNeenlRi,%function
 b__MA6vph_6415ZnlorFgnpxNeenlVpYv40RR17erfrgGbFgnpxNeenlRi:
 nop
@@ -13123,7 +13123,7 @@
 b__MA6vph_6423HavpbqrFgevatNccraqnoyr21erfreirNccraqPncnpvglRv:
 nop
 .text
-.globl b__MA6vph_6415ZnlorFgnpxNeenlVpYv40RRP1RBF1_
+.weak b__MA6vph_6415ZnlorFgnpxNeenlVpYv40RRP1RBF1_
 .type b__MA6vph_6415ZnlorFgnpxNeenlVpYv40RRP1RBF1_,%function
 b__MA6vph_6415ZnlorFgnpxNeenlVpYv40RRP1RBF1_:
 nop
@@ -13233,7 +13233,7 @@
 b__MA6vph_6410HavpbqrFrgP1REXAF_13HavpbqrFgevatRwCXAF_11FlzobyGnoyrRE10HReebePbqr:
 nop
 .text
-.globl b__MA6vph_6415ZnlorFgnpxNeenlVpYv40RRQ2Ri
+.weak b__MA6vph_6415ZnlorFgnpxNeenlVpYv40RRQ2Ri
 .type b__MA6vph_6415ZnlorFgnpxNeenlVpYv40RRQ2Ri,%function
 b__MA6vph_6415ZnlorFgnpxNeenlVpYv40RRQ2Ri:
 nop
@@ -13403,7 +13403,7 @@
 b__MA6vph_6411VPH_Hgvyvgl12nccraqGbEhyrREAF_13HavpbqrFgevatREXF1_nnF2_:
 nop
 .text
-.globl b__MA6vph_6415ZnlorFgnpxNeenlVpYv40RRnFREXF1_
+.weak b__MA6vph_6415ZnlorFgnpxNeenlVpYv40RRnFREXF1_
 .type b__MA6vph_6415ZnlorFgnpxNeenlVpYv40RRnFREXF1_,%function
 b__MA6vph_6415ZnlorFgnpxNeenlVpYv40RRnFREXF1_:
 nop
diff --git a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_152.S b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_152.S
index d113124..fe6d01a 100644
--- a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_152.S
+++ b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_152.S
@@ -403,7 +403,7 @@
 b__MA6vph_6411ZrnfherHavg12trgNinvynoyrRCXpCF0_vE10HReebePbqr:
 nop
 .text
-.globl b__MAB6vph_646ahzore28AhzoreEnatrSbeznggreFrggvatfVAF0_29YbpnyvmrqAhzoreEnatrSbeznggreRR20ahzoreSbeznggreSvefgRBAF0_26HaybpnyvmrqAhzoreSbeznggreR
+.weak b__MAB6vph_646ahzore28AhzoreEnatrSbeznggreFrggvatfVAF0_29YbpnyvmrqAhzoreEnatrSbeznggreRR20ahzoreSbeznggreSvefgRBAF0_26HaybpnyvmrqAhzoreSbeznggreR
 .type b__MAB6vph_646ahzore28AhzoreEnatrSbeznggreFrggvatfVAF0_29YbpnyvmrqAhzoreEnatrSbeznggreRR20ahzoreSbeznggreSvefgRBAF0_26HaybpnyvmrqAhzoreSbeznggreR,%function
 b__MAB6vph_646ahzore28AhzoreEnatrSbeznggreFrggvatfVAF0_29YbpnyvmrqAhzoreEnatrSbeznggreRR20ahzoreSbeznggreSvefgRBAF0_26HaybpnyvmrqAhzoreSbeznggreR:
 nop
@@ -448,12 +448,12 @@
 b__MGIA6vph_6413YvfgSbeznggre16YvfgCnggreafFvaxR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAXE6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_26HaybpnyvmrqAhzoreSbeznggreRR8tebhcvatR23HAhzoreTebhcvatFgengrtl
+.weak b__MAXE6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_26HaybpnyvmrqAhzoreSbeznggreRR8tebhcvatR23HAhzoreTebhcvatFgengrtl
 .type b__MAXE6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_26HaybpnyvmrqAhzoreSbeznggreRR8tebhcvatR23HAhzoreTebhcvatFgengrtl,%function
 b__MAXE6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_26HaybpnyvmrqAhzoreSbeznggreRR8tebhcvatR23HAhzoreTebhcvatFgengrtl:
 nop
 .text
-.globl b__MAB6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_26HaybpnyvmrqAhzoreSbeznggreRR9nqbcgHavgRCAF_11ZrnfherHavgR
+.weak b__MAB6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_26HaybpnyvmrqAhzoreSbeznggreRR9nqbcgHavgRCAF_11ZrnfherHavgR
 .type b__MAB6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_26HaybpnyvmrqAhzoreSbeznggreRR9nqbcgHavgRCAF_11ZrnfherHavgR,%function
 b__MAB6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_26HaybpnyvmrqAhzoreSbeznggreRR9nqbcgHavgRCAF_11ZrnfherHavgR:
 nop
@@ -603,7 +603,7 @@
 b_hfcbbs_trgErfgevpgvbaYriry_64:
 nop
 .text
-.globl b__MAX6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_24YbpnyvmrqAhzoreSbeznggreRR10gbFxryrgbaRE10HReebePbqr
+.weak b__MAX6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_24YbpnyvmrqAhzoreSbeznggreRR10gbFxryrgbaRE10HReebePbqr
 .type b__MAX6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_24YbpnyvmrqAhzoreSbeznggreRR10gbFxryrgbaRE10HReebePbqr,%function
 b__MAX6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_24YbpnyvmrqAhzoreSbeznggreRR10gbFxryrgbaRE10HReebePbqr:
 nop
@@ -798,7 +798,7 @@
 b__MA6vph_6411ZrnfherHavg11perngrDhnegRE10HReebePbqr:
 nop
 .text
-.globl b__MAB6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_24YbpnyvmrqAhzoreSbeznggreRR9guerfubyqRv
+.weak b__MAB6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_24YbpnyvmrqAhzoreSbeznggreRR9guerfubyqRv
 .type b__MAB6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_24YbpnyvmrqAhzoreSbeznggreRR9guerfubyqRv,%function
 b__MAB6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_24YbpnyvmrqAhzoreSbeznggreRR9guerfubyqRv:
 nop
@@ -868,7 +868,7 @@
 b__MAX6vph_646ahzore24YbpnyvmrqAhzoreSbeznggre10sbezngVzcyRCAF0_4vzcy20HSbeznggrqAhzoreQngnRE10HReebePbqr:
 nop
 .text
-.globl b__MAXE6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_24YbpnyvmrqAhzoreSbeznggreRR7qrpvznyR30HAhzoreQrpvznyFrcnengbeQvfcynl
+.weak b__MAXE6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_24YbpnyvmrqAhzoreSbeznggreRR7qrpvznyR30HAhzoreQrpvznyFrcnengbeQvfcynl
 .type b__MAXE6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_24YbpnyvmrqAhzoreSbeznggreRR7qrpvznyR30HAhzoreQrpvznyFrcnengbeQvfcynl,%function
 b__MAXE6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_24YbpnyvmrqAhzoreSbeznggreRR7qrpvznyR30HAhzoreQrpvznyFrcnengbeQvfcynl:
 nop
@@ -958,7 +958,7 @@
 b__MA6vph_6411ZrnfherHavg24trgZvyyvtenzCreQrpvyvgreRi:
 nop
 .data
-.globl b__MGVA6vph_648ahzcnefr4vzcy24ZhgnoyrZngpurePbyyrpgvbaR
+.weak b__MGVA6vph_648ahzcnefr4vzcy24ZhgnoyrZngpurePbyyrpgvbaR
 .type b__MGVA6vph_648ahzcnefr4vzcy24ZhgnoyrZngpurePbyyrpgvbaR,%object
 b__MGVA6vph_648ahzcnefr4vzcy24ZhgnoyrZngpurePbyyrpgvbaR:
 .space __SIZEOF_POINTER__
@@ -1118,7 +1118,7 @@
 b__MGIA6vph_646ahzore4vzcy20NssvkCnggreaCebivqreR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAXE6vph_646ahzore28AhzoreEnatrSbeznggreFrggvatfVAF0_29YbpnyvmrqAhzoreEnatrSbeznggreRR20ahzoreSbeznggreSvefgRBAF0_26HaybpnyvmrqAhzoreSbeznggreR
+.weak b__MAXE6vph_646ahzore28AhzoreEnatrSbeznggreFrggvatfVAF0_29YbpnyvmrqAhzoreEnatrSbeznggreRR20ahzoreSbeznggreSvefgRBAF0_26HaybpnyvmrqAhzoreSbeznggreR
 .type b__MAXE6vph_646ahzore28AhzoreEnatrSbeznggreFrggvatfVAF0_29YbpnyvmrqAhzoreEnatrSbeznggreRR20ahzoreSbeznggreSvefgRBAF0_26HaybpnyvmrqAhzoreSbeznggreR,%function
 b__MAXE6vph_646ahzore28AhzoreEnatrSbeznggreFrggvatfVAF0_29YbpnyvmrqAhzoreEnatrSbeznggreRR20ahzoreSbeznggreSvefgRBAF0_26HaybpnyvmrqAhzoreSbeznggreR:
 nop
@@ -1228,7 +1228,7 @@
 b__MA6vph_6417QngrSbezngFlzobyf11frgJrrxqnlfRCXAF_13HavpbqrFgevatRv:
 nop
 .text
-.globl b__MAB6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_26HaybpnyvmrqAhzoreSbeznggreRR5fpnyrREXAF0_5FpnyrR
+.weak b__MAB6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_26HaybpnyvmrqAhzoreSbeznggreRR5fpnyrREXAF0_5FpnyrR
 .type b__MAB6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_26HaybpnyvmrqAhzoreSbeznggreRR5fpnyrREXAF0_5FpnyrR,%function
 b__MAB6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_26HaybpnyvmrqAhzoreSbeznggreRR5fpnyrREXAF0_5FpnyrR:
 nop
@@ -1623,7 +1623,7 @@
 b_hahzs_pybfrErfhyg_64:
 nop
 .text
-.globl b__MAX6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_26HaybpnyvmrqAhzoreSbeznggreRR11pbclReebeGbRE10HReebePbqr
+.weak b__MAX6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_26HaybpnyvmrqAhzoreSbeznggreRR11pbclReebeGbRE10HReebePbqr
 .type b__MAX6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_26HaybpnyvmrqAhzoreSbeznggreRR11pbclReebeGbRE10HReebePbqr,%function
 b__MAX6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_26HaybpnyvmrqAhzoreSbeznggreRR11pbclReebeGbRE10HReebePbqr:
 nop
@@ -1843,7 +1843,7 @@
 b__MAX6vph_6414VaqvnaPnyraqne23qrsnhygPraghelFgnegLrneRi:
 nop
 .text
-.globl b__MAXE6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_26HaybpnyvmrqAhzoreSbeznggreRR12nqbcgFlzobyfRCAF_15AhzorevatFlfgrzR
+.weak b__MAXE6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_26HaybpnyvmrqAhzoreSbeznggreRR12nqbcgFlzobyfRCAF_15AhzorevatFlfgrzR
 .type b__MAXE6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_26HaybpnyvmrqAhzoreSbeznggreRR12nqbcgFlzobyfRCAF_15AhzorevatFlfgrzR,%function
 b__MAXE6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_26HaybpnyvmrqAhzoreSbeznggreRR12nqbcgFlzobyfRCAF_15AhzorevatFlfgrzR:
 nop
@@ -2053,7 +2053,7 @@
 b__MA6vph_6411ZrnfherHavg6trgQnlRi:
 nop
 .text
-.globl b__MAB6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_26HaybpnyvmrqAhzoreSbeznggreRR4havgREXAF_11ZrnfherHavgR
+.weak b__MAB6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_26HaybpnyvmrqAhzoreSbeznggreRR4havgREXAF_11ZrnfherHavgR
 .type b__MAB6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_26HaybpnyvmrqAhzoreSbeznggreRR4havgREXAF_11ZrnfherHavgR,%function
 b__MAB6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_26HaybpnyvmrqAhzoreSbeznggreRR4havgREXAF_11ZrnfherHavgR:
 nop
@@ -2063,7 +2063,7 @@
 b__MAX6vph_648ahzcnefr4vzcy17VtabenoyrfZngpure8gbFgevatRi:
 nop
 .text
-.globl b__MAB6vph_646ahzore28AhzoreEnatrSbeznggreFrggvatfVAF0_29YbpnyvmrqAhzoreEnatrSbeznggreRR19ahzoreSbeznggreObguREXAF0_26HaybpnyvmrqAhzoreSbeznggreR
+.weak b__MAB6vph_646ahzore28AhzoreEnatrSbeznggreFrggvatfVAF0_29YbpnyvmrqAhzoreEnatrSbeznggreRR19ahzoreSbeznggreObguREXAF0_26HaybpnyvmrqAhzoreSbeznggreR
 .type b__MAB6vph_646ahzore28AhzoreEnatrSbeznggreFrggvatfVAF0_29YbpnyvmrqAhzoreEnatrSbeznggreRR19ahzoreSbeznggreObguREXAF0_26HaybpnyvmrqAhzoreSbeznggreR,%function
 b__MAB6vph_646ahzore28AhzoreEnatrSbeznggreFrggvatfVAF0_29YbpnyvmrqAhzoreEnatrSbeznggreRR19ahzoreSbeznggreObguREXAF0_26HaybpnyvmrqAhzoreSbeznggreR:
 nop
@@ -2453,7 +2453,7 @@
 b__MAX6vph_6413ZrnfherSbezng13sbezngAhzrevpRCXAF_11SbeznggnoyrRvEAF_13HavpbqrFgevatRE10HReebePbqr:
 nop
 .text
-.globl b__MAX6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_26HaybpnyvmrqAhzoreSbeznggreRR10gbFxryrgbaRE10HReebePbqr
+.weak b__MAX6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_26HaybpnyvmrqAhzoreSbeznggreRR10gbFxryrgbaRE10HReebePbqr
 .type b__MAX6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_26HaybpnyvmrqAhzoreSbeznggreRR10gbFxryrgbaRE10HReebePbqr,%function
 b__MAX6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_26HaybpnyvmrqAhzoreSbeznggreRR10gbFxryrgbaRE10HReebePbqr:
 nop
@@ -2533,7 +2533,7 @@
 b__MA6vph_646ahzore29YbpnyvmrqAhzoreEnatrSbeznggreP2RBF1_:
 nop
 .text
-.globl b__MAB6vph_646ahzore28AhzoreEnatrSbeznggreFrggvatfVAF0_31HaybpnyvmrqAhzoreEnatrSbeznggreRR21ahzoreSbeznggreFrpbaqREXAF0_26HaybpnyvmrqAhzoreSbeznggreR
+.weak b__MAB6vph_646ahzore28AhzoreEnatrSbeznggreFrggvatfVAF0_31HaybpnyvmrqAhzoreEnatrSbeznggreRR21ahzoreSbeznggreFrpbaqREXAF0_26HaybpnyvmrqAhzoreSbeznggreR
 .type b__MAB6vph_646ahzore28AhzoreEnatrSbeznggreFrggvatfVAF0_31HaybpnyvmrqAhzoreEnatrSbeznggreRR21ahzoreSbeznggreFrpbaqREXAF0_26HaybpnyvmrqAhzoreSbeznggreR,%function
 b__MAB6vph_646ahzore28AhzoreEnatrSbeznggreFrggvatfVAF0_31HaybpnyvmrqAhzoreEnatrSbeznggreRR21ahzoreSbeznggreFrpbaqREXAF0_26HaybpnyvmrqAhzoreSbeznggreR:
 nop
@@ -2703,7 +2703,7 @@
 b__MGIA6vph_6413SbeznggrqYvfgR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_24YbpnyvmrqAhzoreSbeznggreRR11pbclReebeGbRE10HReebePbqr
+.weak b__MAX6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_24YbpnyvmrqAhzoreSbeznggreRR11pbclReebeGbRE10HReebePbqr
 .type b__MAX6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_24YbpnyvmrqAhzoreSbeznggreRR11pbclReebeGbRE10HReebePbqr,%function
 b__MAX6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_24YbpnyvmrqAhzoreSbeznggreRR11pbclReebeGbRE10HReebePbqr:
 nop
@@ -2748,7 +2748,7 @@
 b__MA6vph_6421SbeznggrqQngrVagreinyQ2Ri:
 nop
 .text
-.globl b__MAB6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_24YbpnyvmrqAhzoreSbeznggreRR8abgngvbaREXAF0_8AbgngvbaR
+.weak b__MAB6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_24YbpnyvmrqAhzoreSbeznggreRR8abgngvbaREXAF0_8AbgngvbaR
 .type b__MAB6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_24YbpnyvmrqAhzoreSbeznggreRR8abgngvbaREXAF0_8AbgngvbaR,%function
 b__MAB6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_24YbpnyvmrqAhzoreSbeznggreRR8abgngvbaREXAF0_8AbgngvbaR:
 nop
@@ -2813,7 +2813,7 @@
 b__MAX6vph_6413ZrffntrSbezng19perngrVagrtreSbezngREXAF_6YbpnyrRE10HReebePbqr:
 nop
 .text
-.globl b__MAXE6vph_646ahzore28AhzoreEnatrSbeznggreFrggvatfVAF0_31HaybpnyvmrqAhzoreEnatrSbeznggreRR5pybarRi
+.weak b__MAXE6vph_646ahzore28AhzoreEnatrSbeznggreFrggvatfVAF0_31HaybpnyvmrqAhzoreEnatrSbeznggreRR5pybarRi
 .type b__MAXE6vph_646ahzore28AhzoreEnatrSbeznggreFrggvatfVAF0_31HaybpnyvmrqAhzoreEnatrSbeznggreRR5pybarRi,%function
 b__MAXE6vph_646ahzore28AhzoreEnatrSbeznggreFrggvatfVAF0_31HaybpnyvmrqAhzoreEnatrSbeznggreRR5pybarRi:
 nop
@@ -2893,12 +2893,12 @@
 b__MA6vph_646ahzore9Cerpvfvba9vaperzragRq:
 nop
 .text
-.globl b__MAXE6vph_646ahzore28AhzoreEnatrSbeznggreFrggvatfVAF0_29YbpnyvmrqAhzoreEnatrSbeznggreRR19ahzoreSbeznggreObguREXAF0_26HaybpnyvmrqAhzoreSbeznggreR
+.weak b__MAXE6vph_646ahzore28AhzoreEnatrSbeznggreFrggvatfVAF0_29YbpnyvmrqAhzoreEnatrSbeznggreRR19ahzoreSbeznggreObguREXAF0_26HaybpnyvmrqAhzoreSbeznggreR
 .type b__MAXE6vph_646ahzore28AhzoreEnatrSbeznggreFrggvatfVAF0_29YbpnyvmrqAhzoreEnatrSbeznggreRR19ahzoreSbeznggreObguREXAF0_26HaybpnyvmrqAhzoreSbeznggreR,%function
 b__MAXE6vph_646ahzore28AhzoreEnatrSbeznggreFrggvatfVAF0_29YbpnyvmrqAhzoreEnatrSbeznggreRR19ahzoreSbeznggreObguREXAF0_26HaybpnyvmrqAhzoreSbeznggreR:
 nop
 .text
-.globl b__MAXE6vph_646ahzore28AhzoreEnatrSbeznggreFrggvatfVAF0_31HaybpnyvmrqAhzoreEnatrSbeznggreRR20ahzoreSbeznggreSvefgRBAF0_26HaybpnyvmrqAhzoreSbeznggreR
+.weak b__MAXE6vph_646ahzore28AhzoreEnatrSbeznggreFrggvatfVAF0_31HaybpnyvmrqAhzoreEnatrSbeznggreRR20ahzoreSbeznggreSvefgRBAF0_26HaybpnyvmrqAhzoreSbeznggreR
 .type b__MAXE6vph_646ahzore28AhzoreEnatrSbeznggreFrggvatfVAF0_31HaybpnyvmrqAhzoreEnatrSbeznggreRR20ahzoreSbeznggreSvefgRBAF0_26HaybpnyvmrqAhzoreSbeznggreR,%function
 b__MAXE6vph_646ahzore28AhzoreEnatrSbeznggreFrggvatfVAF0_31HaybpnyvmrqAhzoreEnatrSbeznggreRR20ahzoreSbeznggreSvefgRBAF0_26HaybpnyvmrqAhzoreSbeznggreR:
 nop
@@ -3048,7 +3048,7 @@
 b__MA6vph_6417TertbevnaPnyraqne18frgTertbevnaPunatrRqE10HReebePbqr:
 nop
 .text
-.globl b__MAXE6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_24YbpnyvmrqAhzoreSbeznggreRR4fvtaR18HAhzoreFvtaQvfcynl
+.weak b__MAXE6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_24YbpnyvmrqAhzoreSbeznggreRR4fvtaR18HAhzoreFvtaQvfcynl
 .type b__MAXE6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_24YbpnyvmrqAhzoreSbeznggreRR4fvtaR18HAhzoreFvtaQvfcynl,%function
 b__MAXE6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_24YbpnyvmrqAhzoreSbeznggreRR4fvtaR18HAhzoreFvtaQvfcynl:
 nop
@@ -3558,7 +3558,7 @@
 b__MA6vph_6411ZrnfherHavg16perngrXvybcnfpnyRE10HReebePbqr:
 nop
 .text
-.globl b__MAXE6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_26HaybpnyvmrqAhzoreSbeznggreRR9nqbcgHavgRCAF_11ZrnfherHavgR
+.weak b__MAXE6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_26HaybpnyvmrqAhzoreSbeznggreRR9nqbcgHavgRCAF_11ZrnfherHavgR
 .type b__MAXE6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_26HaybpnyvmrqAhzoreSbeznggreRR9nqbcgHavgRCAF_11ZrnfherHavgR,%function
 b__MAXE6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_26HaybpnyvmrqAhzoreSbeznggreRR9nqbcgHavgRCAF_11ZrnfherHavgR:
 nop
@@ -4343,7 +4343,7 @@
 b__MA6vph_6411ZrnfherHavg19trgFdhnerPragvzrgreRi:
 nop
 .text
-.globl b__MAB6vph_646ahzore28AhzoreEnatrSbeznggreFrggvatfVAF0_31HaybpnyvmrqAhzoreEnatrSbeznggreRR5pybarRi
+.weak b__MAB6vph_646ahzore28AhzoreEnatrSbeznggreFrggvatfVAF0_31HaybpnyvmrqAhzoreEnatrSbeznggreRR5pybarRi
 .type b__MAB6vph_646ahzore28AhzoreEnatrSbeznggreFrggvatfVAF0_31HaybpnyvmrqAhzoreEnatrSbeznggreRR5pybarRi,%function
 b__MAB6vph_646ahzore28AhzoreEnatrSbeznggreFrggvatfVAF0_31HaybpnyvmrqAhzoreEnatrSbeznggreRR5pybarRi:
 nop
@@ -4558,7 +4558,7 @@
 b__MA6vph_646ahzore24YbpnyvmrqAhzoreSbeznggreP2RBF1_:
 nop
 .text
-.globl b__MAXE6vph_646ahzore28AhzoreEnatrSbeznggreFrggvatfVAF0_31HaybpnyvmrqAhzoreEnatrSbeznggreRR19ahzoreSbeznggreObguREXAF0_26HaybpnyvmrqAhzoreSbeznggreR
+.weak b__MAXE6vph_646ahzore28AhzoreEnatrSbeznggreFrggvatfVAF0_31HaybpnyvmrqAhzoreEnatrSbeznggreRR19ahzoreSbeznggreObguREXAF0_26HaybpnyvmrqAhzoreSbeznggreR
 .type b__MAXE6vph_646ahzore28AhzoreEnatrSbeznggreFrggvatfVAF0_31HaybpnyvmrqAhzoreEnatrSbeznggreRR19ahzoreSbeznggreObguREXAF0_26HaybpnyvmrqAhzoreSbeznggreR,%function
 b__MAXE6vph_646ahzore28AhzoreEnatrSbeznggreFrggvatfVAF0_31HaybpnyvmrqAhzoreEnatrSbeznggreRR19ahzoreSbeznggreObguREXAF0_26HaybpnyvmrqAhzoreSbeznggreR:
 nop
@@ -4753,7 +4753,7 @@
 b__MGIA6vph_6413ZrnfherSbezngR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAB6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_26HaybpnyvmrqAhzoreSbeznggreRR9cerpvfvbaREXAF0_9CerpvfvbaR
+.weak b__MAB6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_26HaybpnyvmrqAhzoreSbeznggreRR9cerpvfvbaREXAF0_9CerpvfvbaR
 .type b__MAB6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_26HaybpnyvmrqAhzoreSbeznggreRR9cerpvfvbaREXAF0_9CerpvfvbaR,%function
 b__MAB6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_26HaybpnyvmrqAhzoreSbeznggreRR9cerpvfvbaREXAF0_9CerpvfvbaR:
 nop
@@ -5533,7 +5533,7 @@
 b__MA6vph_648Pbyyngbe25trgXrljbeqInyhrfSbeYbpnyrRCXpEXAF_6YbpnyrRnE10HReebePbqr:
 nop
 .text
-.globl b__MAXE6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_26HaybpnyvmrqAhzoreSbeznggreRR9cerpvfvbaREXAF0_9CerpvfvbaR
+.weak b__MAXE6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_26HaybpnyvmrqAhzoreSbeznggreRR9cerpvfvbaREXAF0_9CerpvfvbaR
 .type b__MAXE6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_26HaybpnyvmrqAhzoreSbeznggreRR9cerpvfvbaREXAF0_9CerpvfvbaR,%function
 b__MAXE6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_26HaybpnyvmrqAhzoreSbeznggreRR9cerpvfvbaREXAF0_9CerpvfvbaR:
 nop
@@ -5568,7 +5568,7 @@
 b__MA6vph_6411ZrnfherHavg12trgCvpbzrgreRi:
 nop
 .text
-.globl b__MAXE6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_26HaybpnyvmrqAhzoreSbeznggreRR5fpnyrREXAF0_5FpnyrR
+.weak b__MAXE6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_26HaybpnyvmrqAhzoreSbeznggreRR5fpnyrREXAF0_5FpnyrR
 .type b__MAXE6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_26HaybpnyvmrqAhzoreSbeznggreRR5fpnyrREXAF0_5FpnyrR,%function
 b__MAXE6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_26HaybpnyvmrqAhzoreSbeznggreRR5fpnyrREXAF0_5FpnyrR:
 nop
@@ -5668,7 +5668,7 @@
 b__MA6vph_6411ZrnfherHavg12perngrZvahgrRE10HReebePbqr:
 nop
 .text
-.globl b__MAB6vph_646ahzore28AhzoreEnatrSbeznggreFrggvatfVAF0_31HaybpnyvmrqAhzoreEnatrSbeznggreRR20ahzoreSbeznggreSvefgRBAF0_26HaybpnyvmrqAhzoreSbeznggreR
+.weak b__MAB6vph_646ahzore28AhzoreEnatrSbeznggreFrggvatfVAF0_31HaybpnyvmrqAhzoreEnatrSbeznggreRR20ahzoreSbeznggreSvefgRBAF0_26HaybpnyvmrqAhzoreSbeznggreR
 .type b__MAB6vph_646ahzore28AhzoreEnatrSbeznggreFrggvatfVAF0_31HaybpnyvmrqAhzoreEnatrSbeznggreRR20ahzoreSbeznggreSvefgRBAF0_26HaybpnyvmrqAhzoreSbeznggreR,%function
 b__MAB6vph_646ahzore28AhzoreEnatrSbeznggreFrggvatfVAF0_31HaybpnyvmrqAhzoreEnatrSbeznggreRR20ahzoreSbeznggreSvefgRBAF0_26HaybpnyvmrqAhzoreSbeznggreR:
 nop
@@ -5838,7 +5838,7 @@
 b__MAX6vph_6411CyhenyEhyrf6fryrpgRq:
 nop
 .text
-.globl b__MAB6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_24YbpnyvmrqAhzoreSbeznggreRR7flzobyfREXAF_20QrpvznySbezngFlzobyfR
+.weak b__MAB6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_24YbpnyvmrqAhzoreSbeznggreRR7flzobyfREXAF_20QrpvznySbezngFlzobyfR
 .type b__MAB6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_24YbpnyvmrqAhzoreSbeznggreRR7flzobyfREXAF_20QrpvznySbezngFlzobyfR,%function
 b__MAB6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_24YbpnyvmrqAhzoreSbeznggreRR7flzobyfREXAF_20QrpvznySbezngFlzobyfR:
 nop
@@ -5858,7 +5858,7 @@
 b__MA6vph_646ahzore4vzcy22ZhgnoyrCnggreaZbqvsvre14frgCnggreaVasbRCXAF1_20NssvkCnggreaCebivqreRu:
 nop
 .text
-.globl b__MAB6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_26HaybpnyvmrqAhzoreSbeznggreRR4fvtaR18HAhzoreFvtaQvfcynl
+.weak b__MAB6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_26HaybpnyvmrqAhzoreSbeznggreRR4fvtaR18HAhzoreFvtaQvfcynl
 .type b__MAB6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_26HaybpnyvmrqAhzoreSbeznggreRR4fvtaR18HAhzoreFvtaQvfcynl,%function
 b__MAB6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_26HaybpnyvmrqAhzoreSbeznggreRR4fvtaR18HAhzoreFvtaQvfcynl:
 nop
@@ -5968,7 +5968,7 @@
 b__MAX6vph_6413QrpvznySbezng6sbezngRvEAF_13HavpbqrFgevatREAF_13SvryqCbfvgvbaRE10HReebePbqr:
 nop
 .text
-.globl b__MAB6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_26HaybpnyvmrqAhzoreSbeznggreRR7cnqqvatREXAF0_4vzcy6CnqqreR
+.weak b__MAB6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_26HaybpnyvmrqAhzoreSbeznggreRR7cnqqvatREXAF0_4vzcy6CnqqreR
 .type b__MAB6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_26HaybpnyvmrqAhzoreSbeznggreRR7cnqqvatREXAF0_4vzcy6CnqqreR,%function
 b__MAB6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_26HaybpnyvmrqAhzoreSbeznggreRR7cnqqvatREXAF0_4vzcy6CnqqreR:
 nop
@@ -6448,7 +6448,7 @@
 b__MA6vph_646ahzore24YbpnyvmrqAhzoreSbeznggreP1RBAF0_23AhzoreSbeznggreFrggvatfVF1_RR:
 nop
 .text
-.globl b__MAB6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_26HaybpnyvmrqAhzoreSbeznggreRR12nqbcgFlzobyfRCAF_15AhzorevatFlfgrzR
+.weak b__MAB6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_26HaybpnyvmrqAhzoreSbeznggreRR12nqbcgFlzobyfRCAF_15AhzorevatFlfgrzR
 .type b__MAB6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_26HaybpnyvmrqAhzoreSbeznggreRR12nqbcgFlzobyfRCAF_15AhzorevatFlfgrzR,%function
 b__MAB6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_26HaybpnyvmrqAhzoreSbeznggreRR12nqbcgFlzobyfRCAF_15AhzorevatFlfgrzR:
 nop
@@ -6953,7 +6953,7 @@
 b__MAX6vph_6414GvzrMbarSbezng16cnefrFubegMbarVQREXAF_13HavpbqrFgevatREAF_13CnefrCbfvgvbaREF1_:
 nop
 .text
-.globl b__MAB6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_24YbpnyvmrqAhzoreSbeznggreRR9havgJvqguR16HAhzoreHavgJvqgu
+.weak b__MAB6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_24YbpnyvmrqAhzoreSbeznggreRR9havgJvqguR16HAhzoreHavgJvqgu
 .type b__MAB6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_24YbpnyvmrqAhzoreSbeznggreRR9havgJvqguR16HAhzoreHavgJvqgu,%function
 b__MAB6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_24YbpnyvmrqAhzoreSbeznggreRR9havgJvqguR16HAhzoreHavgJvqgu:
 nop
@@ -7308,7 +7308,7 @@
 b__MA6vph_646ahzore24YbpnyvmrqAhzoreSbeznggreP1RBF1_:
 nop
 .text
-.globl b__MAB6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_24YbpnyvmrqAhzoreSbeznggreRR12nqbcgCreHavgRCAF_11ZrnfherHavgR
+.weak b__MAB6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_24YbpnyvmrqAhzoreSbeznggreRR12nqbcgCreHavgRCAF_11ZrnfherHavgR
 .type b__MAB6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_24YbpnyvmrqAhzoreSbeznggreRR12nqbcgCreHavgRCAF_11ZrnfherHavgR,%function
 b__MAB6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_24YbpnyvmrqAhzoreSbeznggreRR12nqbcgCreHavgRCAF_11ZrnfherHavgR:
 nop
@@ -7448,7 +7448,7 @@
 b__MA6vph_6411ZrnfherHavg9perngrOvgRE10HReebePbqr:
 nop
 .text
-.globl b__MAXE6vph_646ahzore28AhzoreEnatrSbeznggreFrggvatfVAF0_29YbpnyvmrqAhzoreEnatrSbeznggreRR19ahzoreSbeznggreObguRBAF0_26HaybpnyvmrqAhzoreSbeznggreR
+.weak b__MAXE6vph_646ahzore28AhzoreEnatrSbeznggreFrggvatfVAF0_29YbpnyvmrqAhzoreEnatrSbeznggreRR19ahzoreSbeznggreObguRBAF0_26HaybpnyvmrqAhzoreSbeznggreR
 .type b__MAXE6vph_646ahzore28AhzoreEnatrSbeznggreFrggvatfVAF0_29YbpnyvmrqAhzoreEnatrSbeznggreRR19ahzoreSbeznggreObguRBAF0_26HaybpnyvmrqAhzoreSbeznggreR,%function
 b__MAXE6vph_646ahzore28AhzoreEnatrSbeznggreFrggvatfVAF0_29YbpnyvmrqAhzoreEnatrSbeznggreRR19ahzoreSbeznggreObguRBAF0_26HaybpnyvmrqAhzoreSbeznggreR:
 nop
@@ -7558,7 +7558,7 @@
 b__MAX6vph_6417EhyrOnfrqPbyyngbe9trgYbpnyrR18HYbpQngnYbpnyrGlcrE10HReebePbqr:
 nop
 .text
-.globl b__MAXE6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_26HaybpnyvmrqAhzoreSbeznggreRR7cnqqvatREXAF0_4vzcy6CnqqreR
+.weak b__MAXE6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_26HaybpnyvmrqAhzoreSbeznggreRR7cnqqvatREXAF0_4vzcy6CnqqreR
 .type b__MAXE6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_26HaybpnyvmrqAhzoreSbeznggreRR7cnqqvatREXAF0_4vzcy6CnqqreR,%function
 b__MAXE6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_26HaybpnyvmrqAhzoreSbeznggreRR7cnqqvatREXAF0_4vzcy6CnqqreR:
 nop
@@ -7923,7 +7923,7 @@
 b__MAX6vph_646ahzore15SbeznggrqAhzore24trgNyySvryqCbfvgvbafVzcyREAF_28SvryqCbfvgvbaVgrengbeUnaqyreRE10HReebePbqr:
 nop
 .data
-.globl b__MGIA6vph_646ahzore4vzcy13RzcglZbqvsvreR
+.weak b__MGIA6vph_646ahzore4vzcy13RzcglZbqvsvreR
 .type b__MGIA6vph_646ahzore4vzcy13RzcglZbqvsvreR,%object
 b__MGIA6vph_646ahzore4vzcy13RzcglZbqvsvreR:
 .space __SIZEOF_POINTER__
@@ -8063,7 +8063,7 @@
 b__MAX6vph_646ahzore4vzcy19AhzoreFgevatOhvyqre17arkgSvryqCbfvgvbaREAF_13SvryqCbfvgvbaRE10HReebePbqr:
 nop
 .text
-.globl b__MAB6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_26HaybpnyvmrqAhzoreSbeznggreRR7creHavgREXAF_11ZrnfherHavgR
+.weak b__MAB6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_26HaybpnyvmrqAhzoreSbeznggreRR7creHavgREXAF_11ZrnfherHavgR
 .type b__MAB6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_26HaybpnyvmrqAhzoreSbeznggreRR7creHavgREXAF_11ZrnfherHavgR,%function
 b__MAB6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_26HaybpnyvmrqAhzoreSbeznggreRR7creHavgREXAF_11ZrnfherHavgR:
 nop
@@ -8168,7 +8168,7 @@
 b_hszg_trgBowrpg_64:
 nop
 .text
-.globl b__MAXE6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_24YbpnyvmrqAhzoreSbeznggreRR9guerfubyqRv
+.weak b__MAXE6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_24YbpnyvmrqAhzoreSbeznggreRR9guerfubyqRv
 .type b__MAXE6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_24YbpnyvmrqAhzoreSbeznggreRR9guerfubyqRv,%function
 b__MAXE6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_24YbpnyvmrqAhzoreSbeznggreRR9guerfubyqRv:
 nop
@@ -8193,7 +8193,7 @@
 b_hqngct_trgFxryrgba_64:
 nop
 .text
-.globl b__MAB6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_24YbpnyvmrqAhzoreSbeznggreRR6znpebfREXAF0_4vzcy10ZnpebCebcfR
+.weak b__MAB6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_24YbpnyvmrqAhzoreSbeznggreRR6znpebfREXAF0_4vzcy10ZnpebCebcfR
 .type b__MAB6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_24YbpnyvmrqAhzoreSbeznggreRR6znpebfREXAF0_4vzcy10ZnpebCebcfR,%function
 b__MAB6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_24YbpnyvmrqAhzoreSbeznggreRR6znpebfREXAF0_4vzcy10ZnpebCebcfR:
 nop
@@ -8328,7 +8328,7 @@
 b__MA6vph_6411ZrnfherHavg8trgQhanzRi:
 nop
 .text
-.globl b__MAB6vph_646ahzore28AhzoreEnatrSbeznggreFrggvatfVAF0_31HaybpnyvmrqAhzoreEnatrSbeznggreRR19ahzoreSbeznggreObguREXAF0_26HaybpnyvmrqAhzoreSbeznggreR
+.weak b__MAB6vph_646ahzore28AhzoreEnatrSbeznggreFrggvatfVAF0_31HaybpnyvmrqAhzoreEnatrSbeznggreRR19ahzoreSbeznggreObguREXAF0_26HaybpnyvmrqAhzoreSbeznggreR
 .type b__MAB6vph_646ahzore28AhzoreEnatrSbeznggreFrggvatfVAF0_31HaybpnyvmrqAhzoreEnatrSbeznggreRR19ahzoreSbeznggreObguREXAF0_26HaybpnyvmrqAhzoreSbeznggreR,%function
 b__MAB6vph_646ahzore28AhzoreEnatrSbeznggreFrggvatfVAF0_31HaybpnyvmrqAhzoreEnatrSbeznggreRR19ahzoreSbeznggreObguREXAF0_26HaybpnyvmrqAhzoreSbeznggreR:
 nop
@@ -8403,7 +8403,7 @@
 b__MA6vph_6411ZrnfherHavg13trgZrtncnfpnyRi:
 nop
 .text
-.globl b__MAB6vph_646ahzore28AhzoreEnatrSbeznggreFrggvatfVAF0_31HaybpnyvmrqAhzoreEnatrSbeznggreRR19ahzoreSbeznggreObguRBAF0_26HaybpnyvmrqAhzoreSbeznggreR
+.weak b__MAB6vph_646ahzore28AhzoreEnatrSbeznggreFrggvatfVAF0_31HaybpnyvmrqAhzoreEnatrSbeznggreRR19ahzoreSbeznggreObguRBAF0_26HaybpnyvmrqAhzoreSbeznggreR
 .type b__MAB6vph_646ahzore28AhzoreEnatrSbeznggreFrggvatfVAF0_31HaybpnyvmrqAhzoreEnatrSbeznggreRR19ahzoreSbeznggreObguRBAF0_26HaybpnyvmrqAhzoreSbeznggreR,%function
 b__MAB6vph_646ahzore28AhzoreEnatrSbeznggreFrggvatfVAF0_31HaybpnyvmrqAhzoreEnatrSbeznggreRR19ahzoreSbeznggreObguRBAF0_26HaybpnyvmrqAhzoreSbeznggreR:
 nop
@@ -8493,7 +8493,7 @@
 b__MGIA6vph_6413YvfgSbeznggreR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAXE6vph_646ahzore28AhzoreEnatrSbeznggreFrggvatfVAF0_29YbpnyvmrqAhzoreEnatrSbeznggreRR20ahzoreSbeznggreSvefgREXAF0_26HaybpnyvmrqAhzoreSbeznggreR
+.weak b__MAXE6vph_646ahzore28AhzoreEnatrSbeznggreFrggvatfVAF0_29YbpnyvmrqAhzoreEnatrSbeznggreRR20ahzoreSbeznggreSvefgREXAF0_26HaybpnyvmrqAhzoreSbeznggreR
 .type b__MAXE6vph_646ahzore28AhzoreEnatrSbeznggreFrggvatfVAF0_29YbpnyvmrqAhzoreEnatrSbeznggreRR20ahzoreSbeznggreSvefgREXAF0_26HaybpnyvmrqAhzoreSbeznggreR,%function
 b__MAXE6vph_646ahzore28AhzoreEnatrSbeznggreFrggvatfVAF0_29YbpnyvmrqAhzoreEnatrSbeznggreRR20ahzoreSbeznggreSvefgREXAF0_26HaybpnyvmrqAhzoreSbeznggreR:
 nop
@@ -8613,12 +8613,12 @@
 b__MAX6vph_6418QngrVagreinySbezng13sbezngGbInyhrREXAF_12QngrVagreinyRE10HReebePbqr:
 nop
 .text
-.globl b__MAXE6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_26HaybpnyvmrqAhzoreSbeznggreRR6znpebfREXAF0_4vzcy10ZnpebCebcfR
+.weak b__MAXE6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_26HaybpnyvmrqAhzoreSbeznggreRR6znpebfREXAF0_4vzcy10ZnpebCebcfR
 .type b__MAXE6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_26HaybpnyvmrqAhzoreSbeznggreRR6znpebfREXAF0_4vzcy10ZnpebCebcfR,%function
 b__MAXE6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_26HaybpnyvmrqAhzoreSbeznggreRR6znpebfREXAF0_4vzcy10ZnpebCebcfR:
 nop
 .text
-.globl b__MAB6vph_646ahzore28AhzoreEnatrSbeznggreFrggvatfVAF0_31HaybpnyvmrqAhzoreEnatrSbeznggreRR20ahzoreSbeznggreSvefgREXAF0_26HaybpnyvmrqAhzoreSbeznggreR
+.weak b__MAB6vph_646ahzore28AhzoreEnatrSbeznggreFrggvatfVAF0_31HaybpnyvmrqAhzoreEnatrSbeznggreRR20ahzoreSbeznggreSvefgREXAF0_26HaybpnyvmrqAhzoreSbeznggreR
 .type b__MAB6vph_646ahzore28AhzoreEnatrSbeznggreFrggvatfVAF0_31HaybpnyvmrqAhzoreEnatrSbeznggreRR20ahzoreSbeznggreSvefgREXAF0_26HaybpnyvmrqAhzoreSbeznggreR,%function
 b__MAB6vph_646ahzore28AhzoreEnatrSbeznggreFrggvatfVAF0_31HaybpnyvmrqAhzoreEnatrSbeznggreRR20ahzoreSbeznggreSvefgREXAF0_26HaybpnyvmrqAhzoreSbeznggreR:
 nop
@@ -8973,7 +8973,7 @@
 b__MA6vph_6414Genafyvgrengbe22_pbhagNinvynoyrGnetrgfREXAF_13HavpbqrFgevatR:
 nop
 .data
-.globl b__MGFA6vph_6425FpvragvsvpAhzoreSbeznggre5FglyrR
+.weak b__MGFA6vph_6425FpvragvsvpAhzoreSbeznggre5FglyrR
 .type b__MGFA6vph_6425FpvragvsvpAhzoreSbeznggre5FglyrR,%object
 b__MGFA6vph_6425FpvragvsvpAhzoreSbeznggre5FglyrR:
 .space __SIZEOF_POINTER__
@@ -9178,7 +9178,7 @@
 b__MAX6vph_6414Genafyvgrengbe13genafyvgrengrREAF_11ErcynprnoyrRE14HGenafCbfvgvbaEXAF_13HavpbqrFgevatRE10HReebePbqr:
 nop
 .text
-.globl b__MAXE6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_26HaybpnyvmrqAhzoreSbeznggreRR6znpebfRBAF0_4vzcy10ZnpebCebcfR
+.weak b__MAXE6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_26HaybpnyvmrqAhzoreSbeznggreRR6znpebfRBAF0_4vzcy10ZnpebCebcfR
 .type b__MAXE6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_26HaybpnyvmrqAhzoreSbeznggreRR6znpebfRBAF0_4vzcy10ZnpebCebcfR,%function
 b__MAXE6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_26HaybpnyvmrqAhzoreSbeznggreRR6znpebfRBAF0_4vzcy10ZnpebCebcfR:
 nop
@@ -9583,7 +9583,7 @@
 b__MAX6vph_646ahzore4vzcy18FpvragvsvpZbqvsvre5nccylREAF1_19AhzoreFgevatOhvyqreRvvE10HReebePbqr:
 nop
 .text
-.globl b__MAX6vph_646ahzore28AhzoreEnatrSbeznggreFrggvatfVAF0_29YbpnyvmrqAhzoreEnatrSbeznggreRR11pbclReebeGbRE10HReebePbqr
+.weak b__MAX6vph_646ahzore28AhzoreEnatrSbeznggreFrggvatfVAF0_29YbpnyvmrqAhzoreEnatrSbeznggreRR11pbclReebeGbRE10HReebePbqr
 .type b__MAX6vph_646ahzore28AhzoreEnatrSbeznggreFrggvatfVAF0_29YbpnyvmrqAhzoreEnatrSbeznggreRR11pbclReebeGbRE10HReebePbqr,%function
 b__MAX6vph_646ahzore28AhzoreEnatrSbeznggreFrggvatfVAF0_29YbpnyvmrqAhzoreEnatrSbeznggreRR11pbclReebeGbRE10HReebePbqr:
 nop
@@ -9703,7 +9703,7 @@
 b__MA6vph_646ahzore24YbpnyvmrqAhzoreSbeznggreP1REXF1_:
 nop
 .text
-.globl b__MAXE6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_26HaybpnyvmrqAhzoreSbeznggreRR7creHavgREXAF_11ZrnfherHavgR
+.weak b__MAXE6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_26HaybpnyvmrqAhzoreSbeznggreRR7creHavgREXAF_11ZrnfherHavgR
 .type b__MAXE6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_26HaybpnyvmrqAhzoreSbeznggreRR7creHavgREXAF_11ZrnfherHavgR,%function
 b__MAXE6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_26HaybpnyvmrqAhzoreSbeznggreRR7creHavgREXAF_11ZrnfherHavgR:
 nop
@@ -9788,7 +9788,7 @@
 b__MAX6vph_649IGvzrMbararREXAF_8GvzrMbarR:
 nop
 .text
-.globl b__MAB6vph_646ahzore28AhzoreEnatrSbeznggreFrggvatfVAF0_29YbpnyvmrqAhzoreEnatrSbeznggreRR19ahzoreSbeznggreObguRBAF0_26HaybpnyvmrqAhzoreSbeznggreR
+.weak b__MAB6vph_646ahzore28AhzoreEnatrSbeznggreFrggvatfVAF0_29YbpnyvmrqAhzoreEnatrSbeznggreRR19ahzoreSbeznggreObguRBAF0_26HaybpnyvmrqAhzoreSbeznggreR
 .type b__MAB6vph_646ahzore28AhzoreEnatrSbeznggreFrggvatfVAF0_29YbpnyvmrqAhzoreEnatrSbeznggreRR19ahzoreSbeznggreObguRBAF0_26HaybpnyvmrqAhzoreSbeznggreR,%function
 b__MAB6vph_646ahzore28AhzoreEnatrSbeznggreFrggvatfVAF0_29YbpnyvmrqAhzoreEnatrSbeznggreRR19ahzoreSbeznggreObguRBAF0_26HaybpnyvmrqAhzoreSbeznggreR:
 nop
@@ -9828,7 +9828,7 @@
 b__MA6vph_6411SbeznggnoyrP1RCAF_13HavpbqrFgevatR:
 nop
 .text
-.globl b__MAXE6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_24YbpnyvmrqAhzoreSbeznggreRR5fpnyrREXAF0_5FpnyrR
+.weak b__MAXE6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_24YbpnyvmrqAhzoreSbeznggreRR5fpnyrREXAF0_5FpnyrR
 .type b__MAXE6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_24YbpnyvmrqAhzoreSbeznggreRR5fpnyrREXAF0_5FpnyrR,%function
 b__MAXE6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_24YbpnyvmrqAhzoreSbeznggreRR5fpnyrREXAF0_5FpnyrR:
 nop
@@ -9958,7 +9958,7 @@
 b__MA6vph_6411ZrnfherHavg7trgLrneRi:
 nop
 .text
-.globl b__MAXE6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_24YbpnyvmrqAhzoreSbeznggreRR9cerpvfvbaREXAF0_9CerpvfvbaR
+.weak b__MAXE6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_24YbpnyvmrqAhzoreSbeznggreRR9cerpvfvbaREXAF0_9CerpvfvbaR
 .type b__MAXE6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_24YbpnyvmrqAhzoreSbeznggreRR9cerpvfvbaREXAF0_9CerpvfvbaR,%function
 b__MAXE6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_24YbpnyvmrqAhzoreSbeznggreRR9cerpvfvbaREXAF0_9CerpvfvbaR:
 nop
@@ -10088,7 +10088,7 @@
 b__MA6vph_6411ZrnfherHavg17perngrXvybpnybevrRE10HReebePbqr:
 nop
 .data
-.globl b__MGFA6vph_648ahzcnefr4vzcy19NssvkCnggreaZngpureR
+.weak b__MGFA6vph_648ahzcnefr4vzcy19NssvkCnggreaZngpureR
 .type b__MGFA6vph_648ahzcnefr4vzcy19NssvkCnggreaZngpureR,%object
 b__MGFA6vph_648ahzcnefr4vzcy19NssvkCnggreaZngpureR:
 .space __SIZEOF_POINTER__
@@ -10128,7 +10128,7 @@
 b__MGVA6vph_6412CyhenySbezng14CyhenyFryrpgbeR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAXE6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_26HaybpnyvmrqAhzoreSbeznggreRR8abgngvbaREXAF0_8AbgngvbaR
+.weak b__MAXE6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_26HaybpnyvmrqAhzoreSbeznggreRR8abgngvbaREXAF0_8AbgngvbaR
 .type b__MAXE6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_26HaybpnyvmrqAhzoreSbeznggreRR8abgngvbaREXAF0_8AbgngvbaR,%function
 b__MAXE6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_26HaybpnyvmrqAhzoreSbeznggreRR8abgngvbaREXAF0_8AbgngvbaR:
 nop
@@ -10553,7 +10553,7 @@
 b__MA6vph_646ahzore24YbpnyvmrqAhzoreSbeznggreP1RBAF0_4vzcy10ZnpebCebcfREXAF_6YbpnyrR:
 nop
 .text
-.globl b__MAB6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_26HaybpnyvmrqAhzoreSbeznggreRR12vagrtreJvqguREXAF0_12VagrtreJvqguR
+.weak b__MAB6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_26HaybpnyvmrqAhzoreSbeznggreRR12vagrtreJvqguREXAF0_12VagrtreJvqguR
 .type b__MAB6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_26HaybpnyvmrqAhzoreSbeznggreRR12vagrtreJvqguREXAF0_12VagrtreJvqguR,%function
 b__MAB6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_26HaybpnyvmrqAhzoreSbeznggreRR12vagrtreJvqguREXAF0_12VagrtreJvqguR:
 nop
@@ -11013,7 +11013,7 @@
 b__MA6vph_6413VSvkrqQrpvznyQ1Ri:
 nop
 .text
-.globl b__MAXE6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_24YbpnyvmrqAhzoreSbeznggreRR7cnqqvatREXAF0_4vzcy6CnqqreR
+.weak b__MAXE6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_24YbpnyvmrqAhzoreSbeznggreRR7cnqqvatREXAF0_4vzcy6CnqqreR
 .type b__MAXE6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_24YbpnyvmrqAhzoreSbeznggreRR7cnqqvatREXAF0_4vzcy6CnqqreR,%function
 b__MAXE6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_24YbpnyvmrqAhzoreSbeznggreRR7cnqqvatREXAF0_4vzcy6CnqqreR:
 nop
@@ -11378,7 +11378,7 @@
 b__MA6vph_6421SvryqCbfvgvbaVgrengbeQ2Ri:
 nop
 .text
-.globl b__MAB6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_24YbpnyvmrqAhzoreSbeznggreRR6znpebfRBAF0_4vzcy10ZnpebCebcfR
+.weak b__MAB6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_24YbpnyvmrqAhzoreSbeznggreRR6znpebfRBAF0_4vzcy10ZnpebCebcfR
 .type b__MAB6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_24YbpnyvmrqAhzoreSbeznggreRR6znpebfRBAF0_4vzcy10ZnpebCebcfR,%function
 b__MAB6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_24YbpnyvmrqAhzoreSbeznggreRR6znpebfRBAF0_4vzcy10ZnpebCebcfR:
 nop
@@ -11428,7 +11428,7 @@
 b__MA6vph_646ahzore4vzcy10NssvkHgvyf9arkgGbxraRAF1_8NssvkGntREXAF_13HavpbqrFgevatRE10HReebePbqr:
 nop
 .text
-.globl b__MAB6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_24YbpnyvmrqAhzoreSbeznggreRR5fpnyrREXAF0_5FpnyrR
+.weak b__MAB6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_24YbpnyvmrqAhzoreSbeznggreRR5fpnyrREXAF0_5FpnyrR
 .type b__MAB6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_24YbpnyvmrqAhzoreSbeznggreRR5fpnyrREXAF0_5FpnyrR,%function
 b__MAB6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_24YbpnyvmrqAhzoreSbeznggreRR5fpnyrREXAF0_5FpnyrR:
 nop
@@ -11973,12 +11973,12 @@
 b__MA6vph_646ahzore24YbpnyvmrqAhzoreSbeznggreQ2Ri:
 nop
 .text
-.globl b__MAB6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_24YbpnyvmrqAhzoreSbeznggreRR12ebhaqvatZbqrR25HAhzoreSbezngEbhaqvatZbqr
+.weak b__MAB6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_24YbpnyvmrqAhzoreSbeznggreRR12ebhaqvatZbqrR25HAhzoreSbezngEbhaqvatZbqr
 .type b__MAB6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_24YbpnyvmrqAhzoreSbeznggreRR12ebhaqvatZbqrR25HAhzoreSbezngEbhaqvatZbqr,%function
 b__MAB6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_24YbpnyvmrqAhzoreSbeznggreRR12ebhaqvatZbqrR25HAhzoreSbezngEbhaqvatZbqr:
 nop
 .text
-.globl b__MAB6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_24YbpnyvmrqAhzoreSbeznggreRR8tebhcvatR23HAhzoreTebhcvatFgengrtl
+.weak b__MAB6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_24YbpnyvmrqAhzoreSbeznggreRR8tebhcvatR23HAhzoreTebhcvatFgengrtl
 .type b__MAB6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_24YbpnyvmrqAhzoreSbeznggreRR8tebhcvatR23HAhzoreTebhcvatFgengrtl,%function
 b__MAB6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_24YbpnyvmrqAhzoreSbeznggreRR8tebhcvatR23HAhzoreTebhcvatFgengrtl:
 nop
@@ -12023,7 +12023,7 @@
 b__MGVA6vph_646ahzore4vzcy26PbafgnagZhygvSvryqZbqvsvreR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAXE6vph_646ahzore28AhzoreEnatrSbeznggreFrggvatfVAF0_29YbpnyvmrqAhzoreEnatrSbeznggreRR16vqragvglSnyyonpxR28HAhzoreEnatrVqragvglSnyyonpx
+.weak b__MAXE6vph_646ahzore28AhzoreEnatrSbeznggreFrggvatfVAF0_29YbpnyvmrqAhzoreEnatrSbeznggreRR16vqragvglSnyyonpxR28HAhzoreEnatrVqragvglSnyyonpx
 .type b__MAXE6vph_646ahzore28AhzoreEnatrSbeznggreFrggvatfVAF0_29YbpnyvmrqAhzoreEnatrSbeznggreRR16vqragvglSnyyonpxR28HAhzoreEnatrVqragvglSnyyonpx,%function
 b__MAXE6vph_646ahzore28AhzoreEnatrSbeznggreFrggvatfVAF0_29YbpnyvmrqAhzoreEnatrSbeznggreRR16vqragvglSnyyonpxR28HAhzoreEnatrVqragvglSnyyonpx:
 nop
@@ -12933,7 +12933,7 @@
 b__MA6vph_647ZrnfherP1Ri:
 nop
 .text
-.globl b__MAXE6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_24YbpnyvmrqAhzoreSbeznggreRR7creHavgREXAF_11ZrnfherHavgR
+.weak b__MAXE6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_24YbpnyvmrqAhzoreSbeznggreRR7creHavgREXAF_11ZrnfherHavgR
 .type b__MAXE6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_24YbpnyvmrqAhzoreSbeznggreRR7creHavgREXAF_11ZrnfherHavgR,%function
 b__MAXE6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_24YbpnyvmrqAhzoreSbeznggreRR7creHavgREXAF_11ZrnfherHavgR:
 nop
@@ -13343,7 +13343,7 @@
 b__MA6vph_6411ZrnfherHavg11perngrQhanzRE10HReebePbqr:
 nop
 .text
-.globl b__MAXE6vph_646ahzore28AhzoreEnatrSbeznggreFrggvatfVAF0_29YbpnyvmrqAhzoreEnatrSbeznggreRR21ahzoreSbeznggreFrpbaqRBAF0_26HaybpnyvmrqAhzoreSbeznggreR
+.weak b__MAXE6vph_646ahzore28AhzoreEnatrSbeznggreFrggvatfVAF0_29YbpnyvmrqAhzoreEnatrSbeznggreRR21ahzoreSbeznggreFrpbaqRBAF0_26HaybpnyvmrqAhzoreSbeznggreR
 .type b__MAXE6vph_646ahzore28AhzoreEnatrSbeznggreFrggvatfVAF0_29YbpnyvmrqAhzoreEnatrSbeznggreRR21ahzoreSbeznggreFrpbaqRBAF0_26HaybpnyvmrqAhzoreSbeznggreR,%function
 b__MAXE6vph_646ahzore28AhzoreEnatrSbeznggreFrggvatfVAF0_29YbpnyvmrqAhzoreEnatrSbeznggreRR21ahzoreSbeznggreFrpbaqRBAF0_26HaybpnyvmrqAhzoreSbeznggreR:
 nop
@@ -13488,7 +13488,7 @@
 b__MA6vph_6416FvzcyrQngrSbezngP1REXAF_13HavpbqrFgevatREXAF_6YbpnyrRE10HReebePbqr:
 nop
 .text
-.globl b__MAB6vph_646ahzore28AhzoreEnatrSbeznggreFrggvatfVAF0_31HaybpnyvmrqAhzoreEnatrSbeznggreRR21ahzoreSbeznggreFrpbaqRBAF0_26HaybpnyvmrqAhzoreSbeznggreR
+.weak b__MAB6vph_646ahzore28AhzoreEnatrSbeznggreFrggvatfVAF0_31HaybpnyvmrqAhzoreEnatrSbeznggreRR21ahzoreSbeznggreFrpbaqRBAF0_26HaybpnyvmrqAhzoreSbeznggreR
 .type b__MAB6vph_646ahzore28AhzoreEnatrSbeznggreFrggvatfVAF0_31HaybpnyvmrqAhzoreEnatrSbeznggreRR21ahzoreSbeznggreFrpbaqRBAF0_26HaybpnyvmrqAhzoreSbeznggreR,%function
 b__MAB6vph_646ahzore28AhzoreEnatrSbeznggreFrggvatfVAF0_31HaybpnyvmrqAhzoreEnatrSbeznggreRR21ahzoreSbeznggreFrpbaqRBAF0_26HaybpnyvmrqAhzoreSbeznggreR:
 nop
@@ -13683,7 +13683,7 @@
 b_hahzs_bcraSbeFxryrgbaNaqYbpnyrJvguReebe_64:
 nop
 .text
-.globl b__MAXE6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_24YbpnyvmrqAhzoreSbeznggreRR6znpebfRBAF0_4vzcy10ZnpebCebcfR
+.weak b__MAXE6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_24YbpnyvmrqAhzoreSbeznggreRR6znpebfRBAF0_4vzcy10ZnpebCebcfR
 .type b__MAXE6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_24YbpnyvmrqAhzoreSbeznggreRR6znpebfRBAF0_4vzcy10ZnpebCebcfR,%function
 b__MAXE6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_24YbpnyvmrqAhzoreSbeznggreRR6znpebfRBAF0_4vzcy10ZnpebCebcfR:
 nop
@@ -13713,7 +13713,7 @@
 b_hcei_qrpAhzoreErznvaqre_64:
 nop
 .text
-.globl b__MAXE6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_24YbpnyvmrqAhzoreSbeznggreRR8tebhcvatR23HAhzoreTebhcvatFgengrtl
+.weak b__MAXE6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_24YbpnyvmrqAhzoreSbeznggreRR8tebhcvatR23HAhzoreTebhcvatFgengrtl
 .type b__MAXE6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_24YbpnyvmrqAhzoreSbeznggreRR8tebhcvatR23HAhzoreTebhcvatFgengrtl,%function
 b__MAXE6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_24YbpnyvmrqAhzoreSbeznggreRR8tebhcvatR23HAhzoreTebhcvatFgengrtl:
 nop
@@ -14038,7 +14038,7 @@
 b__MA6vph_6416QngrVagreinyVasbQ1Ri:
 nop
 .data
-.globl b__MGFA6vph_648ahzcnefr4vzcy24ZhgnoyrZngpurePbyyrpgvbaR
+.weak b__MGFA6vph_648ahzcnefr4vzcy24ZhgnoyrZngpurePbyyrpgvbaR
 .type b__MGFA6vph_648ahzcnefr4vzcy24ZhgnoyrZngpurePbyyrpgvbaR,%object
 b__MGFA6vph_648ahzcnefr4vzcy24ZhgnoyrZngpurePbyyrpgvbaR:
 .space __SIZEOF_POINTER__
@@ -14053,7 +14053,7 @@
 b_hertvba_trgErtvbaPbqr_64:
 nop
 .data
-.globl b__MGFA6vph_646ahzore4vzcy13RzcglZbqvsvreR
+.weak b__MGFA6vph_646ahzore4vzcy13RzcglZbqvsvreR
 .type b__MGFA6vph_646ahzore4vzcy13RzcglZbqvsvreR,%object
 b__MGFA6vph_646ahzore4vzcy13RzcglZbqvsvreR:
 .space __SIZEOF_POINTER__
@@ -14243,7 +14243,7 @@
 b__MA6vph_6425FvzcyrAhzoreSbezngSnpgbelQ1Ri:
 nop
 .text
-.globl b__MAB6vph_646ahzore28AhzoreEnatrSbeznggreFrggvatfVAF0_31HaybpnyvmrqAhzoreEnatrSbeznggreRR16vqragvglSnyyonpxR28HAhzoreEnatrVqragvglSnyyonpx
+.weak b__MAB6vph_646ahzore28AhzoreEnatrSbeznggreFrggvatfVAF0_31HaybpnyvmrqAhzoreEnatrSbeznggreRR16vqragvglSnyyonpxR28HAhzoreEnatrVqragvglSnyyonpx
 .type b__MAB6vph_646ahzore28AhzoreEnatrSbeznggreFrggvatfVAF0_31HaybpnyvmrqAhzoreEnatrSbeznggreRR16vqragvglSnyyonpxR28HAhzoreEnatrVqragvglSnyyonpx,%function
 b__MAB6vph_646ahzore28AhzoreEnatrSbeznggreFrggvatfVAF0_31HaybpnyvmrqAhzoreEnatrSbeznggreRR16vqragvglSnyyonpxR28HAhzoreEnatrVqragvglSnyyonpx:
 nop
@@ -14263,7 +14263,7 @@
 b__MAX6vph_6413QrpvznySbezng9trgCnefreRE10HReebePbqr:
 nop
 .text
-.globl b__MAB6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_26HaybpnyvmrqAhzoreSbeznggreRR5pybarRi
+.weak b__MAB6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_26HaybpnyvmrqAhzoreSbeznggreRR5pybarRi
 .type b__MAB6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_26HaybpnyvmrqAhzoreSbeznggreRR5pybarRi,%function
 b__MAB6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_26HaybpnyvmrqAhzoreSbeznggreRR5pybarRi:
 nop
@@ -14718,7 +14718,7 @@
 b__MAX6vph_648Pnyraqne11trgYbpnyrVQR18HYbpQngnYbpnyrGlcrE10HReebePbqr:
 nop
 .text
-.globl b__MAB6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_24YbpnyvmrqAhzoreSbeznggreRR9nqbcgHavgRCAF_11ZrnfherHavgR
+.weak b__MAB6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_24YbpnyvmrqAhzoreSbeznggreRR9nqbcgHavgRCAF_11ZrnfherHavgR
 .type b__MAB6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_24YbpnyvmrqAhzoreSbeznggreRR9nqbcgHavgRCAF_11ZrnfherHavgR,%function
 b__MAB6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_24YbpnyvmrqAhzoreSbeznggreRR9nqbcgHavgRCAF_11ZrnfherHavgR:
 nop
@@ -15033,7 +15033,7 @@
 b__MAX6vph_6413ZrffntrSbezng23sbezngPbzcyrkFhoZrffntrRvCXiCXAF_11SbeznggnoyrRCXAF_13HavpbqrFgevatRvEAF_17NccraqnoyrJenccreRE10HReebePbqr:
 nop
 .text
-.globl b__MAXE6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_24YbpnyvmrqAhzoreSbeznggreRR7flzobyfREXAF_20QrpvznySbezngFlzobyfR
+.weak b__MAXE6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_24YbpnyvmrqAhzoreSbeznggreRR7flzobyfREXAF_20QrpvznySbezngFlzobyfR
 .type b__MAXE6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_24YbpnyvmrqAhzoreSbeznggreRR7flzobyfREXAF_20QrpvznySbezngFlzobyfR,%function
 b__MAXE6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_24YbpnyvmrqAhzoreSbeznggreRR7flzobyfREXAF_20QrpvznySbezngFlzobyfR:
 nop
@@ -15148,7 +15148,7 @@
 b__MA6vph_6411ZrnfherHavg13trgNgzbfcurerRi:
 nop
 .text
-.globl b__MAXE6vph_646ahzore28AhzoreEnatrSbeznggreFrggvatfVAF0_31HaybpnyvmrqAhzoreEnatrSbeznggreRR21ahzoreSbeznggreFrpbaqREXAF0_26HaybpnyvmrqAhzoreSbeznggreR
+.weak b__MAXE6vph_646ahzore28AhzoreEnatrSbeznggreFrggvatfVAF0_31HaybpnyvmrqAhzoreEnatrSbeznggreRR21ahzoreSbeznggreFrpbaqREXAF0_26HaybpnyvmrqAhzoreSbeznggreR
 .type b__MAXE6vph_646ahzore28AhzoreEnatrSbeznggreFrggvatfVAF0_31HaybpnyvmrqAhzoreEnatrSbeznggreRR21ahzoreSbeznggreFrpbaqREXAF0_26HaybpnyvmrqAhzoreSbeznggreR,%function
 b__MAXE6vph_646ahzore28AhzoreEnatrSbeznggreFrggvatfVAF0_31HaybpnyvmrqAhzoreEnatrSbeznggreRR21ahzoreSbeznggreFrpbaqREXAF0_26HaybpnyvmrqAhzoreSbeznggreR:
 nop
@@ -15393,7 +15393,7 @@
 b__MAX6vph_6417TertbevnaPnyraqne23qrsnhygPraghelFgnegLrneRi:
 nop
 .text
-.globl b__MAB6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_26HaybpnyvmrqAhzoreSbeznggreRR7qrpvznyR30HAhzoreQrpvznyFrcnengbeQvfcynl
+.weak b__MAB6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_26HaybpnyvmrqAhzoreSbeznggreRR7qrpvznyR30HAhzoreQrpvznyFrcnengbeQvfcynl
 .type b__MAB6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_26HaybpnyvmrqAhzoreSbeznggreRR7qrpvznyR30HAhzoreQrpvznyFrcnengbeQvfcynl,%function
 b__MAB6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_26HaybpnyvmrqAhzoreSbeznggreRR7qrpvznyR30HAhzoreQrpvznyFrcnengbeQvfcynl:
 nop
@@ -15418,7 +15418,7 @@
 b__MA6vph_6424QngrGvzrCnggreaTrarengbe14trgOrfgCnggreaREXAF_13HavpbqrFgevatRE10HReebePbqr:
 nop
 .text
-.globl b__MAXE6vph_646ahzore28AhzoreEnatrSbeznggreFrggvatfVAF0_31HaybpnyvmrqAhzoreEnatrSbeznggreRR20ahzoreSbeznggreSvefgREXAF0_26HaybpnyvmrqAhzoreSbeznggreR
+.weak b__MAXE6vph_646ahzore28AhzoreEnatrSbeznggreFrggvatfVAF0_31HaybpnyvmrqAhzoreEnatrSbeznggreRR20ahzoreSbeznggreSvefgREXAF0_26HaybpnyvmrqAhzoreSbeznggreR
 .type b__MAXE6vph_646ahzore28AhzoreEnatrSbeznggreFrggvatfVAF0_31HaybpnyvmrqAhzoreEnatrSbeznggreRR20ahzoreSbeznggreSvefgREXAF0_26HaybpnyvmrqAhzoreSbeznggreR,%function
 b__MAXE6vph_646ahzore28AhzoreEnatrSbeznggreFrggvatfVAF0_31HaybpnyvmrqAhzoreEnatrSbeznggreRR20ahzoreSbeznggreSvefgREXAF0_26HaybpnyvmrqAhzoreSbeznggreR:
 nop
@@ -15458,7 +15458,7 @@
 b__MA6vph_646ahzore4vzcy15QrpvznyDhnagvgl12ernqVagGbOpqRv:
 nop
 .text
-.globl b__MAB6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_24YbpnyvmrqAhzoreSbeznggreRR12nqbcgFlzobyfRCAF_15AhzorevatFlfgrzR
+.weak b__MAB6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_24YbpnyvmrqAhzoreSbeznggreRR12nqbcgFlzobyfRCAF_15AhzorevatFlfgrzR
 .type b__MAB6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_24YbpnyvmrqAhzoreSbeznggreRR12nqbcgFlzobyfRCAF_15AhzorevatFlfgrzR,%function
 b__MAB6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_24YbpnyvmrqAhzoreSbeznggreRR12nqbcgFlzobyfRCAF_15AhzorevatFlfgrzR:
 nop
@@ -15773,7 +15773,7 @@
 b__MA6vph_6412FryrpgSbezngP2REXAF_13HavpbqrFgevatRE10HReebePbqr:
 nop
 .text
-.globl b__MAXE6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_24YbpnyvmrqAhzoreSbeznggreRR6znpebfREXAF0_4vzcy10ZnpebCebcfR
+.weak b__MAXE6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_24YbpnyvmrqAhzoreSbeznggreRR6znpebfREXAF0_4vzcy10ZnpebCebcfR
 .type b__MAXE6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_24YbpnyvmrqAhzoreSbeznggreRR6znpebfREXAF0_4vzcy10ZnpebCebcfR,%function
 b__MAXE6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_24YbpnyvmrqAhzoreSbeznggreRR6znpebfREXAF0_4vzcy10ZnpebCebcfR:
 nop
@@ -15988,7 +15988,7 @@
 b__MA6vph_6417TertbevnaPnyraqneP1RvvvvvE10HReebePbqr:
 nop
 .text
-.globl b__MAB6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_24YbpnyvmrqAhzoreSbeznggreRR4fvtaR18HAhzoreFvtaQvfcynl
+.weak b__MAB6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_24YbpnyvmrqAhzoreSbeznggreRR4fvtaR18HAhzoreFvtaQvfcynl
 .type b__MAB6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_24YbpnyvmrqAhzoreSbeznggreRR4fvtaR18HAhzoreFvtaQvfcynl,%function
 b__MAB6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_24YbpnyvmrqAhzoreSbeznggreRR4fvtaR18HAhzoreFvtaQvfcynl:
 nop
@@ -16028,7 +16028,7 @@
 b__MA6vph_6410TraqreVasbQ1Ri:
 nop
 .text
-.globl b__MAXE6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_24YbpnyvmrqAhzoreSbeznggreRR5pybarRi
+.weak b__MAXE6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_24YbpnyvmrqAhzoreSbeznggreRR5pybarRi
 .type b__MAXE6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_24YbpnyvmrqAhzoreSbeznggreRR5pybarRi,%function
 b__MAXE6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_24YbpnyvmrqAhzoreSbeznggreRR5pybarRi:
 nop
@@ -16128,7 +16128,7 @@
 b__MA6vph_6413VSvkrqQrpvznyQ0Ri:
 nop
 .text
-.globl b__MAXE6vph_646ahzore28AhzoreEnatrSbeznggreFrggvatfVAF0_29YbpnyvmrqAhzoreEnatrSbeznggreRR5pybarRi
+.weak b__MAXE6vph_646ahzore28AhzoreEnatrSbeznggreFrggvatfVAF0_29YbpnyvmrqAhzoreEnatrSbeznggreRR5pybarRi
 .type b__MAXE6vph_646ahzore28AhzoreEnatrSbeznggreFrggvatfVAF0_29YbpnyvmrqAhzoreEnatrSbeznggreRR5pybarRi,%function
 b__MAXE6vph_646ahzore28AhzoreEnatrSbeznggreFrggvatfVAF0_29YbpnyvmrqAhzoreEnatrSbeznggreRR5pybarRi:
 nop
@@ -16198,7 +16198,7 @@
 b__MA6vph_6419PbyyngvbaEhyrCnefre11cnefrFgevatRvEAF_13HavpbqrFgevatRE10HReebePbqr:
 nop
 .text
-.globl b__MAXE6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_24YbpnyvmrqAhzoreSbeznggreRR8abgngvbaREXAF0_8AbgngvbaR
+.weak b__MAXE6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_24YbpnyvmrqAhzoreSbeznggreRR8abgngvbaREXAF0_8AbgngvbaR
 .type b__MAXE6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_24YbpnyvmrqAhzoreSbeznggreRR8abgngvbaREXAF0_8AbgngvbaR,%function
 b__MAXE6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_24YbpnyvmrqAhzoreSbeznggreRR8abgngvbaREXAF0_8AbgngvbaR:
 nop
@@ -16363,7 +16363,7 @@
 b__MA6vph_646ahzore4vzcy30PheeraplFcnpvatRanoyrqZbqvsvre20nccylPheeraplFcnpvatREAF1_19AhzoreFgevatOhvyqreRvvvvEXAF_20QrpvznySbezngFlzobyfRE10HReebePbqr:
 nop
 .data
-.globl b__MGVA6vph_648ahzcnefr4vzcy19NssvkCnggreaZngpureR
+.weak b__MGVA6vph_648ahzcnefr4vzcy19NssvkCnggreaZngpureR
 .type b__MGVA6vph_648ahzcnefr4vzcy19NssvkCnggreaZngpureR,%object
 b__MGVA6vph_648ahzcnefr4vzcy19NssvkCnggreaZngpureR:
 .space __SIZEOF_POINTER__
@@ -16493,7 +16493,7 @@
 b__MA6vph_6413ZrnfherSbezngQ1Ri:
 nop
 .data
-.globl b__MGVA6vph_646ahzore4vzcy13RzcglZbqvsvreR
+.weak b__MGVA6vph_646ahzore4vzcy13RzcglZbqvsvreR
 .type b__MGVA6vph_646ahzore4vzcy13RzcglZbqvsvreR,%object
 b__MGVA6vph_646ahzore4vzcy13RzcglZbqvsvreR:
 .space __SIZEOF_POINTER__
@@ -16558,7 +16558,7 @@
 b__MA6vph_646ahzore4vzcy17CnefrqCnggreaVasb14pbafhzrCnqqvatR24HAhzoreSbezngCnqCbfvgvbaE10HReebePbqr:
 nop
 .text
-.globl b__MAB6vph_646ahzore28AhzoreEnatrSbeznggreFrggvatfVAF0_29YbpnyvmrqAhzoreEnatrSbeznggreRR8pbyyncfrR20HAhzoreEnatrPbyyncfr
+.weak b__MAB6vph_646ahzore28AhzoreEnatrSbeznggreFrggvatfVAF0_29YbpnyvmrqAhzoreEnatrSbeznggreRR8pbyyncfrR20HAhzoreEnatrPbyyncfr
 .type b__MAB6vph_646ahzore28AhzoreEnatrSbeznggreFrggvatfVAF0_29YbpnyvmrqAhzoreEnatrSbeznggreRR8pbyyncfrR20HAhzoreEnatrPbyyncfr,%function
 b__MAB6vph_646ahzore28AhzoreEnatrSbeznggreFrggvatfVAF0_29YbpnyvmrqAhzoreEnatrSbeznggreRR8pbyyncfrR20HAhzoreEnatrPbyyncfr:
 nop
@@ -16978,7 +16978,7 @@
 b_hszg_trgQbhoyr_64:
 nop
 .text
-.globl b__MAXE6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_24YbpnyvmrqAhzoreSbeznggreRR12ebhaqvatZbqrR25HAhzoreSbezngEbhaqvatZbqr
+.weak b__MAXE6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_24YbpnyvmrqAhzoreSbeznggreRR12ebhaqvatZbqrR25HAhzoreSbezngEbhaqvatZbqr
 .type b__MAXE6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_24YbpnyvmrqAhzoreSbeznggreRR12ebhaqvatZbqrR25HAhzoreSbezngEbhaqvatZbqr,%function
 b__MAXE6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_24YbpnyvmrqAhzoreSbeznggreRR12ebhaqvatZbqrR25HAhzoreSbezngEbhaqvatZbqr:
 nop
@@ -17173,7 +17173,7 @@
 b__MAX6vph_6413QrpvznySbezng20vfCnefrPnfrFrafvgvirRi:
 nop
 .text
-.globl b__MAXE6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_24YbpnyvmrqAhzoreSbeznggreRR9havgJvqguR16HAhzoreHavgJvqgu
+.weak b__MAXE6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_24YbpnyvmrqAhzoreSbeznggreRR9havgJvqguR16HAhzoreHavgJvqgu
 .type b__MAXE6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_24YbpnyvmrqAhzoreSbeznggreRR9havgJvqguR16HAhzoreHavgJvqgu,%function
 b__MAXE6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_24YbpnyvmrqAhzoreSbeznggreRR9havgJvqguR16HAhzoreHavgJvqgu:
 nop
@@ -17233,7 +17233,7 @@
 b__MA6vph_6417QngrSbezngFlzobyf20frgYbpnyCnggreaPunefREXAF_13HavpbqrFgevatR:
 nop
 .text
-.globl b__MAB6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_24YbpnyvmrqAhzoreSbeznggreRR4havgREXAF_11ZrnfherHavgR
+.weak b__MAB6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_24YbpnyvmrqAhzoreSbeznggreRR4havgREXAF_11ZrnfherHavgR
 .type b__MAB6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_24YbpnyvmrqAhzoreSbeznggreRR4havgREXAF_11ZrnfherHavgR,%function
 b__MAB6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_24YbpnyvmrqAhzoreSbeznggreRR4havgREXAF_11ZrnfherHavgR:
 nop
@@ -18383,7 +18383,7 @@
 b__MA6vph_6412AhzoreSbezng20perngrFunerqVafgnaprREXAF_6YbpnyrR18HAhzoreSbezngFglyrE10HReebePbqr:
 nop
 .text
-.globl b__MAB6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_26HaybpnyvmrqAhzoreSbeznggreRR8tebhcvatR23HAhzoreTebhcvatFgengrtl
+.weak b__MAB6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_26HaybpnyvmrqAhzoreSbeznggreRR8tebhcvatR23HAhzoreTebhcvatFgengrtl
 .type b__MAB6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_26HaybpnyvmrqAhzoreSbeznggreRR8tebhcvatR23HAhzoreTebhcvatFgengrtl,%function
 b__MAB6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_26HaybpnyvmrqAhzoreSbeznggreRR8tebhcvatR23HAhzoreTebhcvatFgengrtl:
 nop
@@ -18523,7 +18523,7 @@
 b__MA6vph_6413ZrffntrSbezng22CyhenyFryrpgbeCebivqreQ2Ri:
 nop
 .text
-.globl b__MAXE6vph_646ahzore28AhzoreEnatrSbeznggreFrggvatfVAF0_31HaybpnyvmrqAhzoreEnatrSbeznggreRR8pbyyncfrR20HAhzoreEnatrPbyyncfr
+.weak b__MAXE6vph_646ahzore28AhzoreEnatrSbeznggreFrggvatfVAF0_31HaybpnyvmrqAhzoreEnatrSbeznggreRR8pbyyncfrR20HAhzoreEnatrPbyyncfr
 .type b__MAXE6vph_646ahzore28AhzoreEnatrSbeznggreFrggvatfVAF0_31HaybpnyvmrqAhzoreEnatrSbeznggreRR8pbyyncfrR20HAhzoreEnatrPbyyncfr,%function
 b__MAXE6vph_646ahzore28AhzoreEnatrSbeznggreFrggvatfVAF0_31HaybpnyvmrqAhzoreEnatrSbeznggreRR8pbyyncfrR20HAhzoreEnatrPbyyncfr:
 nop
@@ -18698,7 +18698,7 @@
 b__MA6vph_646ahzore5FpnyrQ2Ri:
 nop
 .text
-.globl b__MAB6vph_646ahzore28AhzoreEnatrSbeznggreFrggvatfVAF0_29YbpnyvmrqAhzoreEnatrSbeznggreRR16vqragvglSnyyonpxR28HAhzoreEnatrVqragvglSnyyonpx
+.weak b__MAB6vph_646ahzore28AhzoreEnatrSbeznggreFrggvatfVAF0_29YbpnyvmrqAhzoreEnatrSbeznggreRR16vqragvglSnyyonpxR28HAhzoreEnatrVqragvglSnyyonpx
 .type b__MAB6vph_646ahzore28AhzoreEnatrSbeznggreFrggvatfVAF0_29YbpnyvmrqAhzoreEnatrSbeznggreRR16vqragvglSnyyonpxR28HAhzoreEnatrVqragvglSnyyonpx,%function
 b__MAB6vph_646ahzore28AhzoreEnatrSbeznggreFrggvatfVAF0_29YbpnyvmrqAhzoreEnatrSbeznggreRR16vqragvglSnyyonpxR28HAhzoreEnatrVqragvglSnyyonpx:
 nop
@@ -19133,7 +19133,7 @@
 b__MA6vph_6411ZrnfherHavg14trgUrpgbcnfpnyRi:
 nop
 .text
-.globl b__MAB6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_26HaybpnyvmrqAhzoreSbeznggreRR9havgJvqguR16HAhzoreHavgJvqgu
+.weak b__MAB6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_26HaybpnyvmrqAhzoreSbeznggreRR9havgJvqguR16HAhzoreHavgJvqgu
 .type b__MAB6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_26HaybpnyvmrqAhzoreSbeznggreRR9havgJvqguR16HAhzoreHavgJvqgu,%function
 b__MAB6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_26HaybpnyvmrqAhzoreSbeznggreRR9havgJvqguR16HAhzoreHavgJvqgu:
 nop
@@ -19418,7 +19418,7 @@
 b__MA6vph_6410QngrSbezng18frgPnyraqneYravragRn:
 nop
 .text
-.globl b__MAXE6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_26HaybpnyvmrqAhzoreSbeznggreRR7flzobyfREXAF_20QrpvznySbezngFlzobyfR
+.weak b__MAXE6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_26HaybpnyvmrqAhzoreSbeznggreRR7flzobyfREXAF_20QrpvznySbezngFlzobyfR
 .type b__MAXE6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_26HaybpnyvmrqAhzoreSbeznggreRR7flzobyfREXAF_20QrpvznySbezngFlzobyfR,%function
 b__MAXE6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_26HaybpnyvmrqAhzoreSbeznggreRR7flzobyfREXAF_20QrpvznySbezngFlzobyfR:
 nop
@@ -19553,7 +19553,7 @@
 b_hahzs_pybfr_64:
 nop
 .text
-.globl b__MAB6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_24YbpnyvmrqAhzoreSbeznggreRR9cerpvfvbaREXAF0_9CerpvfvbaR
+.weak b__MAB6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_24YbpnyvmrqAhzoreSbeznggreRR9cerpvfvbaREXAF0_9CerpvfvbaR
 .type b__MAB6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_24YbpnyvmrqAhzoreSbeznggreRR9cerpvfvbaREXAF0_9CerpvfvbaR,%function
 b__MAB6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_24YbpnyvmrqAhzoreSbeznggreRR9cerpvfvbaREXAF0_9CerpvfvbaR:
 nop
@@ -19698,7 +19698,7 @@
 b__MAX6vph_6412GvzrMbarEhyrrdREXF0_:
 nop
 .text
-.globl b__MAB6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_26HaybpnyvmrqAhzoreSbeznggreRR8abgngvbaREXAF0_8AbgngvbaR
+.weak b__MAB6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_26HaybpnyvmrqAhzoreSbeznggreRR8abgngvbaREXAF0_8AbgngvbaR
 .type b__MAB6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_26HaybpnyvmrqAhzoreSbeznggreRR8abgngvbaREXAF0_8AbgngvbaR,%function
 b__MAB6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_26HaybpnyvmrqAhzoreSbeznggreRR8abgngvbaREXAF0_8AbgngvbaR:
 nop
@@ -19933,7 +19933,7 @@
 b__MA6vph_6418PnyraqneNfgebabzre10trgZbbaNtrRi:
 nop
 .text
-.globl b__MAB6vph_646ahzore28AhzoreEnatrSbeznggreFrggvatfVAF0_31HaybpnyvmrqAhzoreEnatrSbeznggreRR8pbyyncfrR20HAhzoreEnatrPbyyncfr
+.weak b__MAB6vph_646ahzore28AhzoreEnatrSbeznggreFrggvatfVAF0_31HaybpnyvmrqAhzoreEnatrSbeznggreRR8pbyyncfrR20HAhzoreEnatrPbyyncfr
 .type b__MAB6vph_646ahzore28AhzoreEnatrSbeznggreFrggvatfVAF0_31HaybpnyvmrqAhzoreEnatrSbeznggreRR8pbyyncfrR20HAhzoreEnatrPbyyncfr,%function
 b__MAB6vph_646ahzore28AhzoreEnatrSbeznggreFrggvatfVAF0_31HaybpnyvmrqAhzoreEnatrSbeznggreRR8pbyyncfrR20HAhzoreEnatrPbyyncfr:
 nop
@@ -20088,7 +20088,7 @@
 b__MA6vph_646ahzore26HaybpnyvmrqAhzoreSbeznggreP2RBF1_:
 nop
 .text
-.globl b__MAXE6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_26HaybpnyvmrqAhzoreSbeznggreRR7qrpvznyR30HAhzoreQrpvznyFrcnengbeQvfcynl
+.weak b__MAXE6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_26HaybpnyvmrqAhzoreSbeznggreRR7qrpvznyR30HAhzoreQrpvznyFrcnengbeQvfcynl
 .type b__MAXE6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_26HaybpnyvmrqAhzoreSbeznggreRR7qrpvznyR30HAhzoreQrpvznyFrcnengbeQvfcynl,%function
 b__MAXE6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_26HaybpnyvmrqAhzoreSbeznggreRR7qrpvznyR30HAhzoreQrpvznyFrcnengbeQvfcynl:
 nop
@@ -20198,7 +20198,7 @@
 b__MA6vph_6425AnzrHavpbqrGenafyvgrengbe16trgFgngvpPynffVQRi:
 nop
 .text
-.globl b__MAB6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_26HaybpnyvmrqAhzoreSbeznggreRR6znpebfREXAF0_4vzcy10ZnpebCebcfR
+.weak b__MAB6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_26HaybpnyvmrqAhzoreSbeznggreRR6znpebfREXAF0_4vzcy10ZnpebCebcfR
 .type b__MAB6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_26HaybpnyvmrqAhzoreSbeznggreRR6znpebfREXAF0_4vzcy10ZnpebCebcfR,%function
 b__MAB6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_26HaybpnyvmrqAhzoreSbeznggreRR6znpebfREXAF0_4vzcy10ZnpebCebcfR:
 nop
@@ -20263,7 +20263,7 @@
 b__MA6vph_6411ZrnfherHavg17trgTnyybaVzcrevnyRi:
 nop
 .text
-.globl b__MAXE6vph_646ahzore28AhzoreEnatrSbeznggreFrggvatfVAF0_31HaybpnyvmrqAhzoreEnatrSbeznggreRR21ahzoreSbeznggreFrpbaqRBAF0_26HaybpnyvmrqAhzoreSbeznggreR
+.weak b__MAXE6vph_646ahzore28AhzoreEnatrSbeznggreFrggvatfVAF0_31HaybpnyvmrqAhzoreEnatrSbeznggreRR21ahzoreSbeznggreFrpbaqRBAF0_26HaybpnyvmrqAhzoreSbeznggreR
 .type b__MAXE6vph_646ahzore28AhzoreEnatrSbeznggreFrggvatfVAF0_31HaybpnyvmrqAhzoreEnatrSbeznggreRR21ahzoreSbeznggreFrpbaqRBAF0_26HaybpnyvmrqAhzoreSbeznggreR,%function
 b__MAXE6vph_646ahzore28AhzoreEnatrSbeznggreFrggvatfVAF0_31HaybpnyvmrqAhzoreEnatrSbeznggreRR21ahzoreSbeznggreFrpbaqRBAF0_26HaybpnyvmrqAhzoreSbeznggreR:
 nop
@@ -20443,7 +20443,7 @@
 b__MA6vph_6422PbzcbhaqGenafyvgrengbeQ2Ri:
 nop
 .text
-.globl b__MAXE6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_24YbpnyvmrqAhzoreSbeznggreRR4havgREXAF_11ZrnfherHavgR
+.weak b__MAXE6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_24YbpnyvmrqAhzoreSbeznggreRR4havgREXAF_11ZrnfherHavgR
 .type b__MAXE6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_24YbpnyvmrqAhzoreSbeznggreRR4havgREXAF_11ZrnfherHavgR,%function
 b__MAXE6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_24YbpnyvmrqAhzoreSbeznggreRR4havgREXAF_11ZrnfherHavgR:
 nop
@@ -20513,7 +20513,7 @@
 b__MAX6vph_648ahzcnefr4vzcy16ZvahfFvtaZngpure6npprcgREAF1_13FgevatFrtzragREAF1_12CnefrqAhzoreR:
 nop
 .text
-.globl b__MAXE6vph_646ahzore28AhzoreEnatrSbeznggreFrggvatfVAF0_31HaybpnyvmrqAhzoreEnatrSbeznggreRR16vqragvglSnyyonpxR28HAhzoreEnatrVqragvglSnyyonpx
+.weak b__MAXE6vph_646ahzore28AhzoreEnatrSbeznggreFrggvatfVAF0_31HaybpnyvmrqAhzoreEnatrSbeznggreRR16vqragvglSnyyonpxR28HAhzoreEnatrVqragvglSnyyonpx
 .type b__MAXE6vph_646ahzore28AhzoreEnatrSbeznggreFrggvatfVAF0_31HaybpnyvmrqAhzoreEnatrSbeznggreRR16vqragvglSnyyonpxR28HAhzoreEnatrVqragvglSnyyonpx,%function
 b__MAXE6vph_646ahzore28AhzoreEnatrSbeznggreFrggvatfVAF0_31HaybpnyvmrqAhzoreEnatrSbeznggreRR16vqragvglSnyyonpxR28HAhzoreEnatrVqragvglSnyyonpx:
 nop
@@ -20553,7 +20553,7 @@
 b__MA6vph_6412AhzoreSbezng16vfFglyrFhccbegrqR18HAhzoreSbezngFglyr:
 nop
 .text
-.globl b__MAXE6vph_646ahzore28AhzoreEnatrSbeznggreFrggvatfVAF0_29YbpnyvmrqAhzoreEnatrSbeznggreRR21ahzoreSbeznggreFrpbaqREXAF0_26HaybpnyvmrqAhzoreSbeznggreR
+.weak b__MAXE6vph_646ahzore28AhzoreEnatrSbeznggreFrggvatfVAF0_29YbpnyvmrqAhzoreEnatrSbeznggreRR21ahzoreSbeznggreFrpbaqREXAF0_26HaybpnyvmrqAhzoreSbeznggreR
 .type b__MAXE6vph_646ahzore28AhzoreEnatrSbeznggreFrggvatfVAF0_29YbpnyvmrqAhzoreEnatrSbeznggreRR21ahzoreSbeznggreFrpbaqREXAF0_26HaybpnyvmrqAhzoreSbeznggreR,%function
 b__MAXE6vph_646ahzore28AhzoreEnatrSbeznggreFrggvatfVAF0_29YbpnyvmrqAhzoreEnatrSbeznggreRR21ahzoreSbeznggreFrpbaqREXAF0_26HaybpnyvmrqAhzoreSbeznggreR:
 nop
@@ -20708,7 +20708,7 @@
 b__MA6vph_6418PheeraplCyhenyVasb14frgCyhenyEhyrfREXAF_13HavpbqrFgevatRE10HReebePbqr:
 nop
 .text
-.globl b__MAB6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_24YbpnyvmrqAhzoreSbeznggreRR7cnqqvatREXAF0_4vzcy6CnqqreR
+.weak b__MAB6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_24YbpnyvmrqAhzoreSbeznggreRR7cnqqvatREXAF0_4vzcy6CnqqreR
 .type b__MAB6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_24YbpnyvmrqAhzoreSbeznggreRR7cnqqvatREXAF0_4vzcy6CnqqreR,%function
 b__MAB6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_24YbpnyvmrqAhzoreSbeznggreRR7cnqqvatREXAF0_4vzcy6CnqqreR:
 nop
@@ -20983,7 +20983,7 @@
 b__MA6vph_6424QngrGvzrCnggreaTrarengbeP1REXF0_:
 nop
 .text
-.globl b__MAB6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_24YbpnyvmrqAhzoreSbeznggreRR7qrpvznyR30HAhzoreQrpvznyFrcnengbeQvfcynl
+.weak b__MAB6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_24YbpnyvmrqAhzoreSbeznggreRR7qrpvznyR30HAhzoreQrpvznyFrcnengbeQvfcynl
 .type b__MAB6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_24YbpnyvmrqAhzoreSbeznggreRR7qrpvznyR30HAhzoreQrpvznyFrcnengbeQvfcynl,%function
 b__MAB6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_24YbpnyvmrqAhzoreSbeznggreRR7qrpvznyR30HAhzoreQrpvznyFrcnengbeQvfcynl:
 nop
@@ -21023,7 +21023,7 @@
 b__MA6vph_646ahzore4vzcy17CnefrqCnggreaVasb20pbafhzrVagrtreSbezngRE10HReebePbqr:
 nop
 .text
-.globl b__MAXE6vph_646ahzore28AhzoreEnatrSbeznggreFrggvatfVAF0_29YbpnyvmrqAhzoreEnatrSbeznggreRR8pbyyncfrR20HAhzoreEnatrPbyyncfr
+.weak b__MAXE6vph_646ahzore28AhzoreEnatrSbeznggreFrggvatfVAF0_29YbpnyvmrqAhzoreEnatrSbeznggreRR8pbyyncfrR20HAhzoreEnatrPbyyncfr
 .type b__MAXE6vph_646ahzore28AhzoreEnatrSbeznggreFrggvatfVAF0_29YbpnyvmrqAhzoreEnatrSbeznggreRR8pbyyncfrR20HAhzoreEnatrPbyyncfr,%function
 b__MAXE6vph_646ahzore28AhzoreEnatrSbeznggreFrggvatfVAF0_29YbpnyvmrqAhzoreEnatrSbeznggreRR8pbyyncfrR20HAhzoreEnatrPbyyncfr:
 nop
@@ -21088,7 +21088,7 @@
 b__MA6vph_6411ZrnfherHavg8trgCbhaqRi:
 nop
 .text
-.globl b__MAB6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_24YbpnyvmrqAhzoreSbeznggreRR5pybarRi
+.weak b__MAB6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_24YbpnyvmrqAhzoreSbeznggreRR5pybarRi
 .type b__MAB6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_24YbpnyvmrqAhzoreSbeznggreRR5pybarRi,%function
 b__MAB6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_24YbpnyvmrqAhzoreSbeznggreRR5pybarRi:
 nop
@@ -21158,7 +21158,7 @@
 b__MA6vph_6417QngrSbezngFlzobyfP2REXAF_6YbpnyrRCXpE10HReebePbqr:
 nop
 .text
-.globl b__MAB6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_26HaybpnyvmrqAhzoreSbeznggreRR6znpebfRBAF0_4vzcy10ZnpebCebcfR
+.weak b__MAB6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_26HaybpnyvmrqAhzoreSbeznggreRR6znpebfRBAF0_4vzcy10ZnpebCebcfR
 .type b__MAB6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_26HaybpnyvmrqAhzoreSbeznggreRR6znpebfRBAF0_4vzcy10ZnpebCebcfR,%function
 b__MAB6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_26HaybpnyvmrqAhzoreSbeznggreRR6znpebfRBAF0_4vzcy10ZnpebCebcfR:
 nop
@@ -21233,7 +21233,7 @@
 b__MA6vph_6411ZrnfherHavg22perngrZvyrFpnaqvanivnaRE10HReebePbqr:
 nop
 .text
-.globl b__MAB6vph_646ahzore28AhzoreEnatrSbeznggreFrggvatfVAF0_29YbpnyvmrqAhzoreEnatrSbeznggreRR5pybarRi
+.weak b__MAB6vph_646ahzore28AhzoreEnatrSbeznggreFrggvatfVAF0_29YbpnyvmrqAhzoreEnatrSbeznggreRR5pybarRi
 .type b__MAB6vph_646ahzore28AhzoreEnatrSbeznggreFrggvatfVAF0_29YbpnyvmrqAhzoreEnatrSbeznggreRR5pybarRi,%function
 b__MAB6vph_646ahzore28AhzoreEnatrSbeznggreFrggvatfVAF0_29YbpnyvmrqAhzoreEnatrSbeznggreRR5pybarRi:
 nop
@@ -21483,7 +21483,7 @@
 b__MA6vph_6412CyhenySbezngQ0Ri:
 nop
 .data
-.globl b__MGVA6vph_6425FpvragvsvpAhzoreSbeznggre5FglyrR
+.weak b__MGVA6vph_6425FpvragvsvpAhzoreSbeznggre5FglyrR
 .type b__MGVA6vph_6425FpvragvsvpAhzoreSbeznggre5FglyrR,%object
 b__MGVA6vph_6425FpvragvsvpAhzoreSbeznggre5FglyrR:
 .space __SIZEOF_POINTER__
@@ -21503,12 +21503,12 @@
 b_hcei_qrpAhzoreYbtO_64:
 nop
 .text
-.globl b__MAXE6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_24YbpnyvmrqAhzoreSbeznggreRR12nqbcgCreHavgRCAF_11ZrnfherHavgR
+.weak b__MAXE6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_24YbpnyvmrqAhzoreSbeznggreRR12nqbcgCreHavgRCAF_11ZrnfherHavgR
 .type b__MAXE6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_24YbpnyvmrqAhzoreSbeznggreRR12nqbcgCreHavgRCAF_11ZrnfherHavgR,%function
 b__MAXE6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_24YbpnyvmrqAhzoreSbeznggreRR12nqbcgCreHavgRCAF_11ZrnfherHavgR:
 nop
 .text
-.globl b__MAB6vph_646ahzore28AhzoreEnatrSbeznggreFrggvatfVAF0_29YbpnyvmrqAhzoreEnatrSbeznggreRR20ahzoreSbeznggreSvefgREXAF0_26HaybpnyvmrqAhzoreSbeznggreR
+.weak b__MAB6vph_646ahzore28AhzoreEnatrSbeznggreFrggvatfVAF0_29YbpnyvmrqAhzoreEnatrSbeznggreRR20ahzoreSbeznggreSvefgREXAF0_26HaybpnyvmrqAhzoreSbeznggreR
 .type b__MAB6vph_646ahzore28AhzoreEnatrSbeznggreFrggvatfVAF0_29YbpnyvmrqAhzoreEnatrSbeznggreRR20ahzoreSbeznggreSvefgREXAF0_26HaybpnyvmrqAhzoreSbeznggreR,%function
 b__MAB6vph_646ahzore28AhzoreEnatrSbeznggreFrggvatfVAF0_29YbpnyvmrqAhzoreEnatrSbeznggreRR20ahzoreSbeznggreSvefgREXAF0_26HaybpnyvmrqAhzoreSbeznggreR:
 nop
@@ -21893,7 +21893,7 @@
 b__MA6vph_6413ZrffntrSbezng11nqbcgSbezngRvCAF_6SbezngR:
 nop
 .text
-.globl b__MAB6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_26HaybpnyvmrqAhzoreSbeznggreRR12nqbcgCreHavgRCAF_11ZrnfherHavgR
+.weak b__MAB6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_26HaybpnyvmrqAhzoreSbeznggreRR12nqbcgCreHavgRCAF_11ZrnfherHavgR
 .type b__MAB6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_26HaybpnyvmrqAhzoreSbeznggreRR12nqbcgCreHavgRCAF_11ZrnfherHavgR,%function
 b__MAB6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_26HaybpnyvmrqAhzoreSbeznggreRR12nqbcgCreHavgRCAF_11ZrnfherHavgR:
 nop
@@ -22268,7 +22268,7 @@
 b__MAX6vph_648ahzcnefr4vzcy18NeenlFrevrfZngpure5ortvaRi:
 nop
 .text
-.globl b__MAXE6vph_646ahzore28AhzoreEnatrSbeznggreFrggvatfVAF0_31HaybpnyvmrqAhzoreEnatrSbeznggreRR19ahzoreSbeznggreObguRBAF0_26HaybpnyvmrqAhzoreSbeznggreR
+.weak b__MAXE6vph_646ahzore28AhzoreEnatrSbeznggreFrggvatfVAF0_31HaybpnyvmrqAhzoreEnatrSbeznggreRR19ahzoreSbeznggreObguRBAF0_26HaybpnyvmrqAhzoreSbeznggreR
 .type b__MAXE6vph_646ahzore28AhzoreEnatrSbeznggreFrggvatfVAF0_31HaybpnyvmrqAhzoreEnatrSbeznggreRR19ahzoreSbeznggreObguRBAF0_26HaybpnyvmrqAhzoreSbeznggreR,%function
 b__MAXE6vph_646ahzore28AhzoreEnatrSbeznggreFrggvatfVAF0_31HaybpnyvmrqAhzoreEnatrSbeznggreRR19ahzoreSbeznggreObguRBAF0_26HaybpnyvmrqAhzoreSbeznggreR:
 nop
@@ -22408,7 +22408,7 @@
 b__MAX6vph_646ahzore4vzcy15QrpvznyDhnagvgl10svgfVaYbatRo:
 nop
 .text
-.globl b__MAXE6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_26HaybpnyvmrqAhzoreSbeznggreRR9havgJvqguR16HAhzoreHavgJvqgu
+.weak b__MAXE6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_26HaybpnyvmrqAhzoreSbeznggreRR9havgJvqguR16HAhzoreHavgJvqgu
 .type b__MAXE6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_26HaybpnyvmrqAhzoreSbeznggreRR9havgJvqguR16HAhzoreHavgJvqgu,%function
 b__MAXE6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_26HaybpnyvmrqAhzoreSbeznggreRR9havgJvqguR16HAhzoreHavgJvqgu:
 nop
@@ -22708,7 +22708,7 @@
 b__MGIA6vph_646ahzore4vzcy26PbafgnagZhygvSvryqZbqvsvreR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAB6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_24YbpnyvmrqAhzoreSbeznggreRR7creHavgREXAF_11ZrnfherHavgR
+.weak b__MAB6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_24YbpnyvmrqAhzoreSbeznggreRR7creHavgREXAF_11ZrnfherHavgR
 .type b__MAB6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_24YbpnyvmrqAhzoreSbeznggreRR7creHavgREXAF_11ZrnfherHavgR,%function
 b__MAB6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_24YbpnyvmrqAhzoreSbeznggreRR7creHavgREXAF_11ZrnfherHavgR:
 nop
@@ -22948,7 +22948,7 @@
 b__MA6vph_6411ZrnfherHavg19trgNfgebabzvpnyHavgRi:
 nop
 .text
-.globl b__MAXE6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_26HaybpnyvmrqAhzoreSbeznggreRR9guerfubyqRv
+.weak b__MAXE6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_26HaybpnyvmrqAhzoreSbeznggreRR9guerfubyqRv
 .type b__MAXE6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_26HaybpnyvmrqAhzoreSbeznggreRR9guerfubyqRv,%function
 b__MAXE6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_26HaybpnyvmrqAhzoreSbeznggreRR9guerfubyqRv:
 nop
@@ -23063,7 +23063,7 @@
 b__MA6vph_6413GvzrMbarAnzrfQ1Ri:
 nop
 .data
-.globl b__MGFA6vph_648ahzcnefr4vzcy18PbzcbfvgvbaZngpureR
+.weak b__MGFA6vph_648ahzcnefr4vzcy18PbzcbfvgvbaZngpureR
 .type b__MGFA6vph_648ahzcnefr4vzcy18PbzcbfvgvbaZngpureR,%object
 b__MGFA6vph_648ahzcnefr4vzcy18PbzcbfvgvbaZngpureR:
 .space __SIZEOF_POINTER__
@@ -23168,7 +23168,7 @@
 b__MA6vph_646ahzore4vzcy14FlzobyfJenccre5frgGbREXAF_20QrpvznySbezngFlzobyfR:
 nop
 .text
-.globl b__MAB6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_24YbpnyvmrqAhzoreSbeznggreRR12vagrtreJvqguREXAF0_12VagrtreJvqguR
+.weak b__MAB6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_24YbpnyvmrqAhzoreSbeznggreRR12vagrtreJvqguREXAF0_12VagrtreJvqguR
 .type b__MAB6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_24YbpnyvmrqAhzoreSbeznggreRR12vagrtreJvqguREXAF0_12VagrtreJvqguR,%function
 b__MAB6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_24YbpnyvmrqAhzoreSbeznggreRR12vagrtreJvqguREXAF0_12VagrtreJvqguR:
 nop
@@ -23333,7 +23333,7 @@
 b_hpscbf_trgPngrtbel_64:
 nop
 .text
-.globl b__MAB6vph_646ahzore28AhzoreEnatrSbeznggreFrggvatfVAF0_29YbpnyvmrqAhzoreEnatrSbeznggreRR21ahzoreSbeznggreFrpbaqREXAF0_26HaybpnyvmrqAhzoreSbeznggreR
+.weak b__MAB6vph_646ahzore28AhzoreEnatrSbeznggreFrggvatfVAF0_29YbpnyvmrqAhzoreEnatrSbeznggreRR21ahzoreSbeznggreFrpbaqREXAF0_26HaybpnyvmrqAhzoreSbeznggreR
 .type b__MAB6vph_646ahzore28AhzoreEnatrSbeznggreFrggvatfVAF0_29YbpnyvmrqAhzoreEnatrSbeznggreRR21ahzoreSbeznggreFrpbaqREXAF0_26HaybpnyvmrqAhzoreSbeznggreR,%function
 b__MAB6vph_646ahzore28AhzoreEnatrSbeznggreFrggvatfVAF0_29YbpnyvmrqAhzoreEnatrSbeznggreRR21ahzoreSbeznggreFrpbaqREXAF0_26HaybpnyvmrqAhzoreSbeznggreR:
 nop
@@ -23603,7 +23603,7 @@
 b__MA6vph_646ahzore4vzcy15QrpvznyDhnagvgl11cbcSebzYrsgRv:
 nop
 .text
-.globl b__MAXE6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_26HaybpnyvmrqAhzoreSbeznggreRR12nqbcgCreHavgRCAF_11ZrnfherHavgR
+.weak b__MAXE6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_26HaybpnyvmrqAhzoreSbeznggreRR12nqbcgCreHavgRCAF_11ZrnfherHavgR
 .type b__MAXE6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_26HaybpnyvmrqAhzoreSbeznggreRR12nqbcgCreHavgRCAF_11ZrnfherHavgR,%function
 b__MAXE6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_26HaybpnyvmrqAhzoreSbeznggreRR12nqbcgCreHavgRCAF_11ZrnfherHavgR:
 nop
@@ -23693,7 +23693,7 @@
 b__MA6vph_6414UroerjPnyraqne11fgnegBsLrneRvE10HReebePbqr:
 nop
 .text
-.globl b__MAXE6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_26HaybpnyvmrqAhzoreSbeznggreRR5pybarRi
+.weak b__MAXE6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_26HaybpnyvmrqAhzoreSbeznggreRR5pybarRi
 .type b__MAXE6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_26HaybpnyvmrqAhzoreSbeznggreRR5pybarRi,%function
 b__MAXE6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_26HaybpnyvmrqAhzoreSbeznggreRR5pybarRi:
 nop
@@ -23843,7 +23843,7 @@
 b__MA6vph_646ahzore4vzcy10NssvkHgvyf15trgSvryqSbeGlcrRAF1_16NssvkCnggreaGlcrR:
 nop
 .text
-.globl b__MAXE6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_26HaybpnyvmrqAhzoreSbeznggreRR4fvtaR18HAhzoreFvtaQvfcynl
+.weak b__MAXE6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_26HaybpnyvmrqAhzoreSbeznggreRR4fvtaR18HAhzoreFvtaQvfcynl
 .type b__MAXE6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_26HaybpnyvmrqAhzoreSbeznggreRR4fvtaR18HAhzoreFvtaQvfcynl,%function
 b__MAXE6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_26HaybpnyvmrqAhzoreSbeznggreRR4fvtaR18HAhzoreFvtaQvfcynl:
 nop
@@ -23893,7 +23893,7 @@
 b__MA6vph_646ahzore4vzcy19AhzoreFgevatOhvyqreP2Ri:
 nop
 .data
-.globl b__MGVA6vph_648ahzcnefr4vzcy18PbzcbfvgvbaZngpureR
+.weak b__MGVA6vph_648ahzcnefr4vzcy18PbzcbfvgvbaZngpureR
 .type b__MGVA6vph_648ahzcnefr4vzcy18PbzcbfvgvbaZngpureR,%object
 b__MGVA6vph_648ahzcnefr4vzcy18PbzcbfvgvbaZngpureR:
 .space __SIZEOF_POINTER__
@@ -23998,7 +23998,7 @@
 b__MA6vph_646ahzore4vzcy15QrpvznyDhnagvgl16ebhaqGbVaperzragRq25HAhzoreSbezngEbhaqvatZbqrE10HReebePbqr:
 nop
 .text
-.globl b__MAB6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_26HaybpnyvmrqAhzoreSbeznggreRR7flzobyfREXAF_20QrpvznySbezngFlzobyfR
+.weak b__MAB6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_26HaybpnyvmrqAhzoreSbeznggreRR7flzobyfREXAF_20QrpvznySbezngFlzobyfR
 .type b__MAB6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_26HaybpnyvmrqAhzoreSbeznggreRR7flzobyfREXAF_20QrpvznySbezngFlzobyfR,%function
 b__MAB6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_26HaybpnyvmrqAhzoreSbeznggreRR7flzobyfREXAF_20QrpvznySbezngFlzobyfR:
 nop
@@ -24248,7 +24248,7 @@
 b__MA6vph_6413SbeznggrqYvfgQ0Ri:
 nop
 .data
-.globl b__MGIA6vph_648ahzcnefr4vzcy19NssvkCnggreaZngpureR
+.weak b__MGIA6vph_648ahzcnefr4vzcy19NssvkCnggreaZngpureR
 .type b__MGIA6vph_648ahzcnefr4vzcy19NssvkCnggreaZngpureR,%object
 b__MGIA6vph_648ahzcnefr4vzcy19NssvkCnggreaZngpureR:
 .space __SIZEOF_POINTER__
@@ -24823,7 +24823,7 @@
 b__MA6vph_6417EhyrOnfrqPbyyngbeP1REXAF_13HavpbqrFgevatRE11HCnefrReebeEF1_E10HReebePbqr:
 nop
 .text
-.globl b__MAXE6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_26HaybpnyvmrqAhzoreSbeznggreRR4havgREXAF_11ZrnfherHavgR
+.weak b__MAXE6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_26HaybpnyvmrqAhzoreSbeznggreRR4havgREXAF_11ZrnfherHavgR
 .type b__MAXE6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_26HaybpnyvmrqAhzoreSbeznggreRR4havgREXAF_11ZrnfherHavgR,%function
 b__MAXE6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_26HaybpnyvmrqAhzoreSbeznggreRR4havgREXAF_11ZrnfherHavgR:
 nop
@@ -25333,7 +25333,7 @@
 b__MA6vph_647ZrnfhernFREXF0_:
 nop
 .text
-.globl b__MAXE6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_24YbpnyvmrqAhzoreSbeznggreRR12nqbcgFlzobyfRCAF_15AhzorevatFlfgrzR
+.weak b__MAXE6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_24YbpnyvmrqAhzoreSbeznggreRR12nqbcgFlzobyfRCAF_15AhzorevatFlfgrzR
 .type b__MAXE6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_24YbpnyvmrqAhzoreSbeznggreRR12nqbcgFlzobyfRCAF_15AhzorevatFlfgrzR,%function
 b__MAXE6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_24YbpnyvmrqAhzoreSbeznggreRR12nqbcgFlzobyfRCAF_15AhzorevatFlfgrzR:
 nop
@@ -25613,7 +25613,7 @@
 b__MA6vph_6411ZrnfherHavg16perngrFdhnerSbbgRE10HReebePbqr:
 nop
 .text
-.globl b__MAXE6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_24YbpnyvmrqAhzoreSbeznggreRR9nqbcgHavgRCAF_11ZrnfherHavgR
+.weak b__MAXE6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_24YbpnyvmrqAhzoreSbeznggreRR9nqbcgHavgRCAF_11ZrnfherHavgR
 .type b__MAXE6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_24YbpnyvmrqAhzoreSbeznggreRR9nqbcgHavgRCAF_11ZrnfherHavgR,%function
 b__MAXE6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_24YbpnyvmrqAhzoreSbeznggreRR9nqbcgHavgRCAF_11ZrnfherHavgR:
 nop
@@ -25713,7 +25713,7 @@
 b__MGVA6vph_648ahzcnefr4vzcy16ZvahfFvtaZngpureR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX6vph_646ahzore28AhzoreEnatrSbeznggreFrggvatfVAF0_31HaybpnyvmrqAhzoreEnatrSbeznggreRR11pbclReebeGbRE10HReebePbqr
+.weak b__MAX6vph_646ahzore28AhzoreEnatrSbeznggreFrggvatfVAF0_31HaybpnyvmrqAhzoreEnatrSbeznggreRR11pbclReebeGbRE10HReebePbqr
 .type b__MAX6vph_646ahzore28AhzoreEnatrSbeznggreFrggvatfVAF0_31HaybpnyvmrqAhzoreEnatrSbeznggreRR11pbclReebeGbRE10HReebePbqr,%function
 b__MAX6vph_646ahzore28AhzoreEnatrSbeznggreFrggvatfVAF0_31HaybpnyvmrqAhzoreEnatrSbeznggreRR11pbclReebeGbRE10HReebePbqr:
 nop
@@ -26168,7 +26168,7 @@
 b__MGFA6vph_6421QngrSzgOrfgCnggreaXrlR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAXE6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_26HaybpnyvmrqAhzoreSbeznggreRR12ebhaqvatZbqrR25HAhzoreSbezngEbhaqvatZbqr
+.weak b__MAXE6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_26HaybpnyvmrqAhzoreSbeznggreRR12ebhaqvatZbqrR25HAhzoreSbezngEbhaqvatZbqr
 .type b__MAXE6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_26HaybpnyvmrqAhzoreSbeznggreRR12ebhaqvatZbqrR25HAhzoreSbezngEbhaqvatZbqr,%function
 b__MAXE6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_26HaybpnyvmrqAhzoreSbeznggreRR12ebhaqvatZbqrR25HAhzoreSbezngEbhaqvatZbqr:
 nop
@@ -26253,12 +26253,12 @@
 b__MAX6vph_6421EhyrOnfrqAhzoreSbezng17trgQrsnhygAnAEhyrRi:
 nop
 .text
-.globl b__MAXE6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_24YbpnyvmrqAhzoreSbeznggreRR12vagrtreJvqguREXAF0_12VagrtreJvqguR
+.weak b__MAXE6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_24YbpnyvmrqAhzoreSbeznggreRR12vagrtreJvqguREXAF0_12VagrtreJvqguR
 .type b__MAXE6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_24YbpnyvmrqAhzoreSbeznggreRR12vagrtreJvqguREXAF0_12VagrtreJvqguR,%function
 b__MAXE6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_24YbpnyvmrqAhzoreSbeznggreRR12vagrtreJvqguREXAF0_12VagrtreJvqguR:
 nop
 .text
-.globl b__MAXE6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_26HaybpnyvmrqAhzoreSbeznggreRR12vagrtreJvqguREXAF0_12VagrtreJvqguR
+.weak b__MAXE6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_26HaybpnyvmrqAhzoreSbeznggreRR12vagrtreJvqguREXAF0_12VagrtreJvqguR
 .type b__MAXE6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_26HaybpnyvmrqAhzoreSbeznggreRR12vagrtreJvqguREXAF0_12VagrtreJvqguR,%function
 b__MAXE6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_26HaybpnyvmrqAhzoreSbeznggreRR12vagrtreJvqguREXAF0_12VagrtreJvqguR:
 nop
@@ -26303,7 +26303,7 @@
 b__MAX6vph_6421EhyrOnfrqAhzoreSbezng18perngrCyhenySbezngR11HCyhenyGlcrEXAF_13HavpbqrFgevatRE10HReebePbqr:
 nop
 .text
-.globl b__MAB6vph_646ahzore28AhzoreEnatrSbeznggreFrggvatfVAF0_29YbpnyvmrqAhzoreEnatrSbeznggreRR21ahzoreSbeznggreFrpbaqRBAF0_26HaybpnyvmrqAhzoreSbeznggreR
+.weak b__MAB6vph_646ahzore28AhzoreEnatrSbeznggreFrggvatfVAF0_29YbpnyvmrqAhzoreEnatrSbeznggreRR21ahzoreSbeznggreFrpbaqRBAF0_26HaybpnyvmrqAhzoreSbeznggreR
 .type b__MAB6vph_646ahzore28AhzoreEnatrSbeznggreFrggvatfVAF0_29YbpnyvmrqAhzoreEnatrSbeznggreRR21ahzoreSbeznggreFrpbaqRBAF0_26HaybpnyvmrqAhzoreSbeznggreR,%function
 b__MAB6vph_646ahzore28AhzoreEnatrSbeznggreFrggvatfVAF0_29YbpnyvmrqAhzoreEnatrSbeznggreRR21ahzoreSbeznggreFrpbaqRBAF0_26HaybpnyvmrqAhzoreSbeznggreR:
 nop
@@ -26498,7 +26498,7 @@
 b__MAX6vph_6413ZrffntrSbezng6sbezngRCXAF_11SbeznggnoyrRCXAF_13HavpbqrFgevatRvEF4_CAF_13SvryqCbfvgvbaRE10HReebePbqr:
 nop
 .text
-.globl b__MAB6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_26HaybpnyvmrqAhzoreSbeznggreRR9guerfubyqRv
+.weak b__MAB6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_26HaybpnyvmrqAhzoreSbeznggreRR9guerfubyqRv
 .type b__MAB6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_26HaybpnyvmrqAhzoreSbeznggreRR9guerfubyqRv,%function
 b__MAB6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_26HaybpnyvmrqAhzoreSbeznggreRR9guerfubyqRv:
 nop
@@ -26858,7 +26858,7 @@
 b__MA6vph_6412ErtrkZngpure10erfrgFgnpxRi:
 nop
 .text
-.globl b__MAB6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_26HaybpnyvmrqAhzoreSbeznggreRR12ebhaqvatZbqrR25HAhzoreSbezngEbhaqvatZbqr
+.weak b__MAB6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_26HaybpnyvmrqAhzoreSbeznggreRR12ebhaqvatZbqrR25HAhzoreSbezngEbhaqvatZbqr
 .type b__MAB6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_26HaybpnyvmrqAhzoreSbeznggreRR12ebhaqvatZbqrR25HAhzoreSbezngEbhaqvatZbqr,%function
 b__MAB6vph_646ahzore23AhzoreSbeznggreFrggvatfVAF0_26HaybpnyvmrqAhzoreSbeznggreRR12ebhaqvatZbqrR25HAhzoreSbezngEbhaqvatZbqr:
 nop
diff --git a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_154.S b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_154.S
index 129e0a8..ae7b648 100644
--- a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_154.S
+++ b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_154.S
@@ -48,7 +48,7 @@
 b__MA7naqebvq16ZrqvnOhssreTebhc14npdhver_ohssreRCCAF_15ZrqvnOhssreOnfrRoz:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_2fcVAF_7NYbbcreRRRR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_2fcVAF_7NYbbcreRRRR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_2fcVAF_7NYbbcreRRRR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_2fcVAF_7NYbbcreRRRR15qb_zbir_sbejneqRCiCXiz:
 nop
@@ -103,7 +103,7 @@
 b__MA7naqebvq7NFgevat6nccraqRw:
 nop
 .data
-.globl b__MGPA7naqebvq7NYbbcre12YbbcreGuernqR0_AF_6GuernqR
+.weak b__MGPA7naqebvq7NYbbcre12YbbcreGuernqR0_AF_6GuernqR
 .type b__MGPA7naqebvq7NYbbcre12YbbcreGuernqR0_AF_6GuernqR,%object
 b__MGPA7naqebvq7NYbbcre12YbbcreGuernqR0_AF_6GuernqR:
 .space __SIZEOF_POINTER__
@@ -188,7 +188,7 @@
 b__MA7naqebvq13NYbbcreEbfgre23haertvfgreFgnyrUnaqyrefRi:
 nop
 .data
-.globl b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_13NYbbcreEbfgre11UnaqyreVasbRRRRR
+.weak b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_13NYbbcreEbfgre11UnaqyreVasbRRRRR
 .type b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_13NYbbcreEbfgre11UnaqyreVasbRRRRR,%object
 b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_13NYbbcreEbfgre11UnaqyreVasbRRRRR:
 .space __SIZEOF_POINTER__
@@ -248,7 +248,7 @@
 b__MAX7naqebvq12ZrgnQngnOnfr10glcrq_qngn7trgQngnRCwCCXiCz:
 nop
 .text
-.globl b__MA7naqebvq7NYbbxhcVAF_10PbybeHgvyf13PbybeFgnaqneqRwRP2RFg16vavgvnyvmre_yvfgVAFg3__14cnveVF2_wRRR
+.weak b__MA7naqebvq7NYbbxhcVAF_10PbybeHgvyf13PbybeFgnaqneqRwRP2RFg16vavgvnyvmre_yvfgVAFg3__14cnveVF2_wRRR
 .type b__MA7naqebvq7NYbbxhcVAF_10PbybeHgvyf13PbybeFgnaqneqRwRP2RFg16vavgvnyvmre_yvfgVAFg3__14cnveVF2_wRRR,%function
 b__MA7naqebvq7NYbbxhcVAF_10PbybeHgvyf13PbybeFgnaqneqRwRP2RFg16vavgvnyvmre_yvfgVAFg3__14cnveVF2_wRRR:
 nop
@@ -303,7 +303,7 @@
 b__MA7naqebvq8NZrffntr10frgRagelNgRzEXAF_5NQngnVWvyzsqAF0_4ErpgRAF_7NFgevatRCiAF_2fcVF0_RRAF5_VAF_7NOhssreRRRAF5_VAF_7ErsOnfrRRRRR6PhfgbzVAFO_7synttreVwRRRR:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRF7_RRAF_19__znc_inyhr_pbzcnerVF7_F8_AF_4yrffVF7_RRYo1RRRAF5_VF8_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVCiRRECAF_15__gerr_raq_abqrVFW_RREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRF7_RRAF_19__znc_inyhr_pbzcnerVF7_F8_AF_4yrffVF7_RRYo1RRRAF5_VF8_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVCiRRECAF_15__gerr_raq_abqrVFW_RREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRF7_RRAF_19__znc_inyhr_pbzcnerVF7_F8_AF_4yrffVF7_RRYo1RRRAF5_VF8_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVCiRRECAF_15__gerr_raq_abqrVFW_RREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRF7_RRAF_19__znc_inyhr_pbzcnerVF7_F8_AF_4yrffVF7_RRYo1RRRAF5_VF8_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVCiRRECAF_15__gerr_raq_abqrVFW_RREXG_:
 nop
@@ -408,7 +408,7 @@
 b__MA7naqebvq7NFgevatP1REXF0_:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_2fcVAF_7NYbbcreRRRR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_2fcVAF_7NYbbcreRRRR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_2fcVAF_7NYbbcreRRRR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_2fcVAF_7NYbbcreRRRR8qb_fcyngRCiCXiz:
 nop
@@ -518,7 +518,7 @@
 b__MA7naqebvq7NFgevat6vafregRCXpzz:
 nop
 .text
-.globl b__MA7naqebvq7NYbbxhcVAF_10PbybeHgvyf13PbybeFgnaqneqRAF_12PbybeNfcrpgf9CevznevrfRRP2RFg16vavgvnyvmre_yvfgVAFg3__14cnveVF2_F4_RRR
+.weak b__MA7naqebvq7NYbbxhcVAF_10PbybeHgvyf13PbybeFgnaqneqRAF_12PbybeNfcrpgf9CevznevrfRRP2RFg16vavgvnyvmre_yvfgVAFg3__14cnveVF2_F4_RRR
 .type b__MA7naqebvq7NYbbxhcVAF_10PbybeHgvyf13PbybeFgnaqneqRAF_12PbybeNfcrpgf9CevznevrfRRP2RFg16vavgvnyvmre_yvfgVAFg3__14cnveVF2_F4_RRR,%function
 b__MA7naqebvq7NYbbxhcVAF_10PbybeHgvyf13PbybeFgnaqneqRAF_12PbybeNfcrpgf9CevznevrfRRP2RFg16vavgvnyvmre_yvfgVAFg3__14cnveVF2_F4_RRR:
 nop
@@ -533,7 +533,7 @@
 b__MA7naqebvq7NYbbcre8TrgAbjHfRi:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_13NYbbcreEbfgre11UnaqyreVasbRRRR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_13NYbbcreEbfgre11UnaqyreVasbRRRR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_13NYbbcreEbfgre11UnaqyreVasbRRRR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_13NYbbcreEbfgre11UnaqyreVasbRRRR12qb_pbafgehpgRCiz:
 nop
@@ -578,7 +578,7 @@
 b__MA7naqebvq6H16_NGRCXu:
 nop
 .text
-.globl b__MA7naqebvq7NYbbxhcVAF_10PbybeHgvyf13PbybeGenafsreRwRP2RFg16vavgvnyvmre_yvfgVAFg3__14cnveVF2_wRRR
+.weak b__MA7naqebvq7NYbbxhcVAF_10PbybeHgvyf13PbybeGenafsreRwRP2RFg16vavgvnyvmre_yvfgVAFg3__14cnveVF2_wRRR
 .type b__MA7naqebvq7NYbbxhcVAF_10PbybeHgvyf13PbybeGenafsreRwRP2RFg16vavgvnyvmre_yvfgVAFg3__14cnveVF2_wRRR,%function
 b__MA7naqebvq7NYbbxhcVAF_10PbybeHgvyf13PbybeGenafsreRwRP2RFg16vavgvnyvmre_yvfgVAFg3__14cnveVF2_wRRR:
 nop
@@ -613,7 +613,7 @@
 b__MA7naqebvq8NZrffntr7frgErpgRCXpvvvv:
 nop
 .text
-.globl b__MA7naqebvq7NYbbxhcVAF_10PbybeHgvyf13PbybeGenafsreRAF_12PbybeNfcrpgf8GenafsreRRP2RFg16vavgvnyvmre_yvfgVAFg3__14cnveVF2_F4_RRR
+.weak b__MA7naqebvq7NYbbxhcVAF_10PbybeHgvyf13PbybeGenafsreRAF_12PbybeNfcrpgf8GenafsreRRP2RFg16vavgvnyvmre_yvfgVAFg3__14cnveVF2_F4_RRR
 .type b__MA7naqebvq7NYbbxhcVAF_10PbybeHgvyf13PbybeGenafsreRAF_12PbybeNfcrpgf8GenafsreRRP2RFg16vavgvnyvmre_yvfgVAFg3__14cnveVF2_F4_RRR,%function
 b__MA7naqebvq7NYbbxhcVAF_10PbybeHgvyf13PbybeGenafsreRAF_12PbybeNfcrpgf8GenafsreRRP2RFg16vavgvnyvmre_yvfgVAFg3__14cnveVF2_F4_RRR:
 nop
@@ -628,7 +628,7 @@
 b__MAX7naqebvq8NZrffntr14trgRagelAnzrNgRzCAF0_4GlcrR:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR10qb_qrfgeblRCiz:
 nop
@@ -643,7 +643,7 @@
 b__MA7naqebvq8NZrffntrP2RwEXAF_2fcVXAF_8NUnaqyreRRR:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR15qb_zbir_sbejneqRCiCXiz:
 nop
@@ -658,7 +658,7 @@
 b__MAX7naqebvq12ZrgnQngnOnfr11svaqCbvagreRwCCi:
 nop
 .data
-.globl b__MGIA7naqebvq6IrpgbeVAF_4YvfgVAF_7NFgevatRRRRR
+.weak b__MGIA7naqebvq6IrpgbeVAF_4YvfgVAF_7NFgevatRRRRR
 .type b__MGIA7naqebvq6IrpgbeVAF_4YvfgVAF_7NFgevatRRRRR,%object
 b__MGIA7naqebvq6IrpgbeVAF_4YvfgVAF_7NFgevatRRRRR:
 .space __SIZEOF_POINTER__
@@ -703,12 +703,12 @@
 b__MA7naqebvq10NOvgErnqre13svyyErfreibveRi:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_2fcVAF_7NYbbcreRRRR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq6IrpgbeVAF_2fcVAF_7NYbbcreRRRR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq6IrpgbeVAF_2fcVAF_7NYbbcreRRRR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq6IrpgbeVAF_2fcVAF_7NYbbcreRRRR12qb_pbafgehpgRCiz:
 nop
 .text
-.globl b__MA7naqebvq7NYbbxhcV19naqebvq_qngnfcnpr_gF1_RP2RFg16vavgvnyvmre_yvfgVAFg3__14cnveVF1_F1_RRR
+.weak b__MA7naqebvq7NYbbxhcV19naqebvq_qngnfcnpr_gF1_RP2RFg16vavgvnyvmre_yvfgVAFg3__14cnveVF1_F1_RRR
 .type b__MA7naqebvq7NYbbxhcV19naqebvq_qngnfcnpr_gF1_RP2RFg16vavgvnyvmre_yvfgVAFg3__14cnveVF1_F1_RRR,%function
 b__MA7naqebvq7NYbbxhcV19naqebvq_qngnfcnpr_gF1_RP2RFg16vavgvnyvmre_yvfgVAFg3__14cnveVF1_F1_RRR:
 nop
@@ -718,7 +718,7 @@
 b__MA7naqebvq12ZrgnQngnOnfr10glcrq_qngn11serrFgbentrRi:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_4YvfgVAF_7NFgevatRRRR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_4YvfgVAF_7NFgevatRRRR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_4YvfgVAF_7NFgevatRRRR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_4YvfgVAF_7NFgevatRRRR15qb_zbir_sbejneqRCiCXiz:
 nop
@@ -793,7 +793,7 @@
 b__MA7naqebvq10NOvgErnqre7chgOvgfRwz:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_13NYbbcreEbfgre11UnaqyreVasbRRRR10qb_pbzcnerRCXiF7_
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_13NYbbcreEbfgre11UnaqyreVasbRRRR10qb_pbzcnerRCXiF7_
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_13NYbbcreEbfgre11UnaqyreVasbRRRR10qb_pbzcnerRCXiF7_,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_13NYbbcreEbfgre11UnaqyreVasbRRRR10qb_pbzcnerRCXiF7_:
 nop
@@ -803,7 +803,7 @@
 b__MA7naqebvq7NFgevatP2REXAF_7Fgevat8R:
 nop
 .data
-.globl b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRRR
+.weak b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRRR
 .type b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRRR,%object
 b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRRR:
 .space __SIZEOF_POINTER__
@@ -833,12 +833,12 @@
 b__MA7naqebvq7NOhssreQ2Ri:
 nop
 .data
-.globl b__MGIA7naqebvq7NYbbcre12YbbcreGuernqR
+.weak b__MGIA7naqebvq7NYbbcre12YbbcreGuernqR
 .type b__MGIA7naqebvq7NYbbcre12YbbcreGuernqR,%object
 b__MGIA7naqebvq7NYbbcre12YbbcreGuernqR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
+.weak b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
 .type b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_,%function
 b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_:
 nop
@@ -893,7 +893,7 @@
 b__MAX7naqebvq12ANYOvgErnqre18ngYrnfgAhzOvgfYrsgRz:
 nop
 .data
-.globl b__MGIA7naqebvq6IrpgbeVAF_2fcVAF_7NYbbcreRRRRR
+.weak b__MGIA7naqebvq6IrpgbeVAF_2fcVAF_7NYbbcreRRRRR
 .type b__MGIA7naqebvq6IrpgbeVAF_2fcVAF_7NYbbcreRRRRR,%object
 b__MGIA7naqebvq6IrpgbeVAF_2fcVAF_7NYbbcreRRRRR:
 .space __SIZEOF_POINTER__
@@ -908,7 +908,7 @@
 b__MAX7naqebvq7NFgevat4fvmrRi:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq17NhqvbCerfragngvbaRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVF2_RRiBG_
+.weak b__MAFg3__16irpgbeVA7naqebvq17NhqvbCerfragngvbaRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVF2_RRiBG_
 .type b__MAFg3__16irpgbeVA7naqebvq17NhqvbCerfragngvbaRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVF2_RRiBG_,%function
 b__MAFg3__16irpgbeVA7naqebvq17NhqvbCerfragngvbaRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVF2_RRiBG_:
 nop
@@ -973,7 +973,7 @@
 b__MAX7naqebvq8NZrffntr10svaqBowrpgRCXpCAF_2fcVAF_7ErsOnfrRRR:
 nop
 .data
-.globl b__MA7naqebvq7NFgevat12xRzcglFgevatR
+.weak b__MA7naqebvq7NFgevat12xRzcglFgevatR
 .type b__MA7naqebvq7NFgevat12xRzcglFgevatR,%object
 b__MA7naqebvq7NFgevat12xRzcglFgevatR:
 .space __SIZEOF_POINTER__
@@ -1008,7 +1008,7 @@
 b__MA7naqebvq8ZrgnQngnQ1Ri:
 nop
 .data
-.globl b__MGGA7naqebvq7NYbbcre12YbbcreGuernqR
+.weak b__MGGA7naqebvq7NYbbcre12YbbcreGuernqR
 .type b__MGGA7naqebvq7NYbbcre12YbbcreGuernqR,%object
 b__MGGA7naqebvq7NYbbcre12YbbcreGuernqR:
 .space __SIZEOF_POINTER__
@@ -1048,7 +1048,7 @@
 b__MA7naqebvq11ZrqvnOhssre9frg_enatrRzz:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR8qb_fcyngRCiCXiz:
 nop
@@ -1058,7 +1058,7 @@
 b__MAX7naqebvq8NZrffntr11qrohtFgevatRv:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwAF_12ZrgnQngnOnfr10glcrq_qngnRRRR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwAF_12ZrgnQngnOnfr10glcrq_qngnRRRR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwAF_12ZrgnQngnOnfr10glcrq_qngnRRRR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwAF_12ZrgnQngnOnfr10glcrq_qngnRRRR15qb_zbir_sbejneqRCiCXiz:
 nop
@@ -1108,12 +1108,12 @@
 b__MA7naqebvq7NFgevat11znxrZhgnoyrRi:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwAF_12ZrgnQngnOnfr10glcrq_qngnRRRR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwAF_12ZrgnQngnOnfr10glcrq_qngnRRRR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwAF_12ZrgnQngnOnfr10glcrq_qngnRRRR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwAF_12ZrgnQngnOnfr10glcrq_qngnRRRR10qb_qrfgeblRCiz:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_4YvfgVAF_7NFgevatRRRR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_4YvfgVAF_7NFgevatRRRR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_4YvfgVAF_7NFgevatRRRR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_4YvfgVAF_7NFgevatRRRR7qb_pbclRCiCXiz:
 nop
@@ -1128,7 +1128,7 @@
 b__MA7naqebvq7NYbbcre9cbfgErcylREXAF_2fcVAF_11NErcylGbxraRRREXAF1_VAF_8NZrffntrRRR:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRF7_RRAF_19__znc_inyhr_pbzcnerVF7_F8_AF_4yrffVF7_RRYo1RRRAF5_VF8_RRR7qrfgeblRCAF_11__gerr_abqrVF8_CiRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRF7_RRAF_19__znc_inyhr_pbzcnerVF7_F8_AF_4yrffVF7_RRYo1RRRAF5_VF8_RRR7qrfgeblRCAF_11__gerr_abqrVF8_CiRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRF7_RRAF_19__znc_inyhr_pbzcnerVF7_F8_AF_4yrffVF7_RRYo1RRRAF5_VF8_RRR7qrfgeblRCAF_11__gerr_abqrVF8_CiRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRF7_RRAF_19__znc_inyhr_pbzcnerVF7_F8_AF_4yrffVF7_RRYo1RRRAF5_VF8_RRR7qrfgeblRCAF_11__gerr_abqrVF8_CiRR:
 nop
@@ -1138,7 +1138,7 @@
 b__MA7naqebvq13NYbbcreEbfgreP1Ri:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_13NYbbcreEbfgre11UnaqyreVasbRRRR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_13NYbbcreEbfgre11UnaqyreVasbRRRR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_13NYbbcreEbfgre11UnaqyreVasbRRRR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_13NYbbcreEbfgre11UnaqyreVasbRRRR15qb_zbir_sbejneqRCiCXiz:
 nop
@@ -1148,7 +1148,7 @@
 b__MA7naqebvq6agbu64Rz:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwAF_12ZrgnQngnOnfr10glcrq_qngnRRRR10qb_pbzcnerRCXiF7_
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwAF_12ZrgnQngnOnfr10glcrq_qngnRRRR10qb_pbzcnerRCXiF7_
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwAF_12ZrgnQngnOnfr10glcrq_qngnRRRR10qb_pbzcnerRCXiF7_,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwAF_12ZrgnQngnOnfr10glcrq_qngnRRRR10qb_pbzcnerRCXiF7_:
 nop
@@ -1168,7 +1168,7 @@
 b__MA7naqebvq10PbybeHgvyf33jencPbybeNfcrpgfVagbPbybeFgnaqneqRAF_12PbybeNfcrpgf9CevznevrfRAF1_12ZngevkPbrssfR:
 nop
 .text
-.globl b__MA7naqebvq7NYbbxhcVvAF_12PbybeNfcrpgf8GenafsreRRP2RFg16vavgvnyvmre_yvfgVAFg3__14cnveVvF2_RRR
+.weak b__MA7naqebvq7NYbbxhcVvAF_12PbybeNfcrpgf8GenafsreRRP2RFg16vavgvnyvmre_yvfgVAFg3__14cnveVvF2_RRR
 .type b__MA7naqebvq7NYbbxhcVvAF_12PbybeNfcrpgf8GenafsreRRP2RFg16vavgvnyvmre_yvfgVAFg3__14cnveVvF2_RRR,%function
 b__MA7naqebvq7NYbbxhcVvAF_12PbybeNfcrpgf8GenafsreRRP2RFg16vavgvnyvmre_yvfgVAFg3__14cnveVvF2_RRR:
 nop
@@ -1313,7 +1313,7 @@
 b__MA7naqebvq12rapbqrOnfr64RCXizCAF_7NFgevatR:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_2fcVAF_7NYbbcreRRRR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_2fcVAF_7NYbbcreRRRR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_2fcVAF_7NYbbcreRRRR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_2fcVAF_7NYbbcreRRRR7qb_pbclRCiCXiz:
 nop
@@ -1323,12 +1323,12 @@
 b__MA7naqebvq12ZrgnQngnOnfrP1Ri:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR10qb_pbzcnerRCXiF6_
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR10qb_pbzcnerRCXiF6_
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR10qb_pbzcnerRCXiF6_,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR10qb_pbzcnerRCXiF6_:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR16qb_zbir_onpxjneqRCiCXiz:
 nop
@@ -1338,12 +1338,12 @@
 b__MA7naqebvq12ZrgnQngnOnfr7frgQngnRwwCXiz:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_4YvfgVAF_7NFgevatRRRR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq6IrpgbeVAF_4YvfgVAF_7NFgevatRRRR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq6IrpgbeVAF_4YvfgVAF_7NFgevatRRRR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq6IrpgbeVAF_4YvfgVAF_7NFgevatRRRR10qb_qrfgeblRCiz:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_4YvfgVAF_7NFgevatRRRR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq6IrpgbeVAF_4YvfgVAF_7NFgevatRRRR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq6IrpgbeVAF_4YvfgVAF_7NFgevatRRRR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq6IrpgbeVAF_4YvfgVAF_7NFgevatRRRR12qb_pbafgehpgRCiz:
 nop
@@ -1353,7 +1353,7 @@
 b__MA7naqebvq7NYbbcreQ0Ri:
 nop
 .text
-.globl b__MA7naqebvq7NYbbxhcVAF_10PbybeHgvyf10PbybeEnatrRwRP2RFg16vavgvnyvmre_yvfgVAFg3__14cnveVF2_wRRR
+.weak b__MA7naqebvq7NYbbxhcVAF_10PbybeHgvyf10PbybeEnatrRwRP2RFg16vavgvnyvmre_yvfgVAFg3__14cnveVF2_wRRR
 .type b__MA7naqebvq7NYbbxhcVAF_10PbybeHgvyf10PbybeEnatrRwRP2RFg16vavgvnyvmre_yvfgVAFg3__14cnveVF2_wRRR,%function
 b__MA7naqebvq7NYbbxhcVAF_10PbybeHgvyf10PbybeEnatrRwRP2RFg16vavgvnyvmre_yvfgVAFg3__14cnveVF2_wRRR:
 nop
@@ -1373,7 +1373,7 @@
 b__MA7naqebvq10PbybeHgvyf35hajencPbybeNfcrpgfSebzPbybeGenafsreRvCAF_12PbybeNfcrpgf8GenafsreR:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_4YvfgVAF_7NFgevatRRRR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_4YvfgVAF_7NFgevatRRRR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_4YvfgVAF_7NFgevatRRRR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_4YvfgVAF_7NFgevatRRRR16qb_zbir_onpxjneqRCiCXiz:
 nop
@@ -1388,12 +1388,12 @@
 b__MA7naqebvq12ZrgnQngnOnfrQ0Ri:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwAF_12ZrgnQngnOnfr10glcrq_qngnRRRR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwAF_12ZrgnQngnOnfr10glcrq_qngnRRRR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwAF_12ZrgnQngnOnfr10glcrq_qngnRRRR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwAF_12ZrgnQngnOnfr10glcrq_qngnRRRR16qb_zbir_onpxjneqRCiCXiz:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_13NYbbcreEbfgre11UnaqyreVasbRRRR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_13NYbbcreEbfgre11UnaqyreVasbRRRR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_13NYbbcreEbfgre11UnaqyreVasbRRRR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_13NYbbcreEbfgre11UnaqyreVasbRRRR7qb_pbclRCiCXiz:
 nop
@@ -1443,7 +1443,7 @@
 b__MA7naqebvq8NZrffntr9frgQbhoyrRCXpq:
 nop
 .text
-.globl b__MA7naqebvq7NYbbxhcVAF_10PbybeHgvyf13PbybeFgnaqneqRAFg3__14cnveVAF_12PbybeNfcrpgf9CevznevrfRAF5_12ZngevkPbrssfRRRRP2RFg16vavgvnyvmre_yvfgVAF4_VF2_F8_RRR
+.weak b__MA7naqebvq7NYbbxhcVAF_10PbybeHgvyf13PbybeFgnaqneqRAFg3__14cnveVAF_12PbybeNfcrpgf9CevznevrfRAF5_12ZngevkPbrssfRRRRP2RFg16vavgvnyvmre_yvfgVAF4_VF2_F8_RRR
 .type b__MA7naqebvq7NYbbxhcVAF_10PbybeHgvyf13PbybeFgnaqneqRAFg3__14cnveVAF_12PbybeNfcrpgf9CevznevrfRAF5_12ZngevkPbrssfRRRRP2RFg16vavgvnyvmre_yvfgVAF4_VF2_F8_RRR,%function
 b__MA7naqebvq7NYbbxhcVAF_10PbybeHgvyf13PbybeFgnaqneqRAFg3__14cnveVAF_12PbybeNfcrpgf9CevznevrfRAF5_12ZngevkPbrssfRRRRP2RFg16vavgvnyvmre_yvfgVAF4_VF2_F8_RRR:
 nop
@@ -1523,7 +1523,7 @@
 b__MA7naqebvq10PbybeHgvyf20pbairegQngnFcnprGbI0RE19naqebvq_qngnfcnpr_g:
 nop
 .data
-.globl b__MGIA7naqebvq15ZrqvnOhssreOnfrR
+.weak b__MGIA7naqebvq15ZrqvnOhssreOnfrR
 .type b__MGIA7naqebvq15ZrqvnOhssreOnfrR,%object
 b__MGIA7naqebvq15ZrqvnOhssreOnfrR:
 .space __SIZEOF_POINTER__
@@ -1533,12 +1533,12 @@
 b__MA7naqebvq14SvaqNIPYnlreVqRCXuz:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_13NYbbcreEbfgre11UnaqyreVasbRRRR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_13NYbbcreEbfgre11UnaqyreVasbRRRR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_13NYbbcreEbfgre11UnaqyreVasbRRRR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_13NYbbcreEbfgre11UnaqyreVasbRRRR10qb_qrfgeblRCiz:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_2fcVAF_7NYbbcreRRRR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq6IrpgbeVAF_2fcVAF_7NYbbcreRRRR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq6IrpgbeVAF_2fcVAF_7NYbbcreRRRR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq6IrpgbeVAF_2fcVAF_7NYbbcreRRRR10qb_qrfgeblRCiz:
 nop
@@ -1548,7 +1548,7 @@
 b__MA7naqebvq11ZrqvnOhssre11frgBofreireRCAF_19ZrqvnOhssreBofreireR:
 nop
 .data
-.globl b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwAF_12ZrgnQngnOnfr10glcrq_qngnRRRRR
+.weak b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwAF_12ZrgnQngnOnfr10glcrq_qngnRRRRR
 .type b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwAF_12ZrgnQngnOnfr10glcrq_qngnRRRRR,%object
 b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwAF_12ZrgnQngnOnfr10glcrq_qngnRRRRR:
 .space __SIZEOF_POINTER__
@@ -1648,7 +1648,7 @@
 b__MA7naqebvq6NQroht17trgRkcrevzragSyntRoCXpzzzz:
 nop
 .text
-.globl b__MA7naqebvq7NYbbxhcVAF_10PbybeHgvyf10PbybeEnatrRAF_12PbybeNfcrpgf5EnatrRRP2RFg16vavgvnyvmre_yvfgVAFg3__14cnveVF2_F4_RRR
+.weak b__MA7naqebvq7NYbbxhcVAF_10PbybeHgvyf10PbybeEnatrRAF_12PbybeNfcrpgf5EnatrRRP2RFg16vavgvnyvmre_yvfgVAFg3__14cnveVF2_F4_RRR
 .type b__MA7naqebvq7NYbbxhcVAF_10PbybeHgvyf10PbybeEnatrRAF_12PbybeNfcrpgf5EnatrRRP2RFg16vavgvnyvmre_yvfgVAFg3__14cnveVF2_F4_RRR,%function
 b__MA7naqebvq7NYbbxhcVAF_10PbybeHgvyf10PbybeEnatrRAF_12PbybeNfcrpgf5EnatrRRP2RFg16vavgvnyvmre_yvfgVAFg3__14cnveVF2_F4_RRR:
 nop
@@ -1668,7 +1668,7 @@
 b__MA7naqebvq8H16YR_NGRCXu:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR7qb_pbclRCiCXiz:
 nop
@@ -1708,7 +1708,7 @@
 b__MAX7naqebvq12ZrgnQngnOnfr8gbFgevatRi:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_4YvfgVAF_7NFgevatRRRR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_4YvfgVAF_7NFgevatRRRR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_4YvfgVAF_7NFgevatRRRR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_4YvfgVAF_7NFgevatRRRR8qb_fcyngRCiCXiz:
 nop
@@ -1803,7 +1803,7 @@
 b__MA7naqebvq7NFgevatP1RCXp:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_2fcVAF_7NYbbcreRRRR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_2fcVAF_7NYbbcreRRRR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_2fcVAF_7NYbbcreRRRR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_2fcVAF_7NYbbcreRRRR16qb_zbir_onpxjneqRCiCXiz:
 nop
@@ -1813,7 +1813,7 @@
 b__MA7naqebvq8NZrffntr10frgZrffntrRCXpEXAF_2fcVF0_RR:
 nop
 .text
-.globl b__MA7naqebvq7NYbbxhcVvAF_12PbybeNfcrpgf9CevznevrfRRP2RFg16vavgvnyvmre_yvfgVAFg3__14cnveVvF2_RRR
+.weak b__MA7naqebvq7NYbbxhcVvAF_12PbybeNfcrpgf9CevznevrfRRP2RFg16vavgvnyvmre_yvfgVAFg3__14cnveVvF2_RRR
 .type b__MA7naqebvq7NYbbxhcVvAF_12PbybeNfcrpgf9CevznevrfRRP2RFg16vavgvnyvmre_yvfgVAFg3__14cnveVvF2_RRR,%function
 b__MA7naqebvq7NYbbxhcVvAF_12PbybeNfcrpgf9CevznevrfRRP2RFg16vavgvnyvmre_yvfgVAFg3__14cnveVvF2_RRR:
 nop
@@ -1888,7 +1888,7 @@
 b__MA7naqebvq25ZRQVN_ZVZRGLCR_NHQVB_RNP3R:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIA7naqebvq4YvfgVAF_7NYbbcre5RiragRRR
+.weak b__MGIA7naqebvq4YvfgVAF_7NYbbcre5RiragRRR
 .type b__MGIA7naqebvq4YvfgVAF_7NYbbcre5RiragRRR,%object
 b__MGIA7naqebvq4YvfgVAF_7NYbbcre5RiragRRR:
 .space __SIZEOF_POINTER__
@@ -1908,7 +1908,7 @@
 b__MA7naqebvq24ZRQVN_ZVZRGLCR_NHQVB_JZNR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIA7naqebvq4YvfgVAF_7NFgevatRRR
+.weak b__MGIA7naqebvq4YvfgVAF_7NFgevatRRR
 .type b__MGIA7naqebvq4YvfgVAF_7NFgevatRRR,%object
 b__MGIA7naqebvq4YvfgVAF_7NFgevatRRR:
 .space __SIZEOF_POINTER__
@@ -1918,7 +1918,7 @@
 b__MA7naqebvq7NYbbcre16perngrErcylGbxraRi:
 nop
 .data
-.globl b__MGIA7naqebvq11NErcylGbxraR
+.weak b__MGIA7naqebvq11NErcylGbxraR
 .type b__MGIA7naqebvq11NErcylGbxraR,%object
 b__MGIA7naqebvq11NErcylGbxraR:
 .space __SIZEOF_POINTER__
@@ -1928,7 +1928,7 @@
 b__MA7naqebvq7NYbbcre4ybbcRi:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_13NYbbcreEbfgre11UnaqyreVasbRRRR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_13NYbbcreEbfgre11UnaqyreVasbRRRR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_13NYbbcreEbfgre11UnaqyreVasbRRRR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_13NYbbcreEbfgre11UnaqyreVasbRRRR16qb_zbir_onpxjneqRCiCXiz:
 nop
@@ -1988,7 +1988,7 @@
 b__MA7naqebvq24ZRQVN_ZVZRGLCR_NHQVB_NNPR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_13NYbbcreEbfgre11UnaqyreVasbRRRR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_13NYbbcreEbfgre11UnaqyreVasbRRRR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_13NYbbcreEbfgre11UnaqyreVasbRRRR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_13NYbbcreEbfgre11UnaqyreVasbRRRR8qb_fcyngRCiCXiz:
 nop
@@ -2058,7 +2058,7 @@
 b__MAX7naqebvq8NZrffntr10svaqFgevatRCXpCAF_7NFgevatR:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwAF_12ZrgnQngnOnfr10glcrq_qngnRRRR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwAF_12ZrgnQngnOnfr10glcrq_qngnRRRR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwAF_12ZrgnQngnOnfr10glcrq_qngnRRRR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwAF_12ZrgnQngnOnfr10glcrq_qngnRRRR7qb_pbclRCiCXiz:
 nop
@@ -2208,7 +2208,7 @@
 b__MA7naqebvq12ZrgnQngnOnfr7frgErpgRwvvvv:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwAF_12ZrgnQngnOnfr10glcrq_qngnRRRR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwAF_12ZrgnQngnOnfr10glcrq_qngnRRRR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwAF_12ZrgnQngnOnfr10glcrq_qngnRRRR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwAF_12ZrgnQngnOnfr10glcrq_qngnRRRR8qb_fcyngRCiCXiz:
 nop
@@ -2228,7 +2228,7 @@
 b__MA7naqebvq6ugba64Rz:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7Fgevat8RF2_RRR12qb_pbafgehpgRCiz:
 nop
@@ -2268,7 +2268,7 @@
 b__MA7naqebvq10PbybeHgvyf35hajencPbybeNfcrpgfSebzPbybeFgnaqneqRvCAF_12PbybeNfcrpgf9CevznevrfRCAF1_12ZngevkPbrssfR:
 nop
 .text
-.globl b__MA7naqebvq7NYbbxhcVvAF_12PbybeNfcrpgf12ZngevkPbrssfRRP2RFg16vavgvnyvmre_yvfgVAFg3__14cnveVvF2_RRR
+.weak b__MA7naqebvq7NYbbxhcVvAF_12PbybeNfcrpgf12ZngevkPbrssfRRP2RFg16vavgvnyvmre_yvfgVAFg3__14cnveVvF2_RRR
 .type b__MA7naqebvq7NYbbxhcVvAF_12PbybeNfcrpgf12ZngevkPbrssfRRP2RFg16vavgvnyvmre_yvfgVAFg3__14cnveVvF2_RRR,%function
 b__MA7naqebvq7NYbbxhcVvAF_12PbybeNfcrpgf12ZngevkPbrssfRRP2RFg16vavgvnyvmre_yvfgVAFg3__14cnveVvF2_RRR:
 nop
@@ -2278,7 +2278,7 @@
 b__MA7naqebvq12ZrgnQngnOnfrnFREXF0_:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwAF_12ZrgnQngnOnfr10glcrq_qngnRRRR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwAF_12ZrgnQngnOnfr10glcrq_qngnRRRR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwAF_12ZrgnQngnOnfr10glcrq_qngnRRRR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVwAF_12ZrgnQngnOnfr10glcrq_qngnRRRR12qb_pbafgehpgRCiz:
 nop
diff --git a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_155.S b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_155.S
index cac969e..7007026 100644
--- a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_155.S
+++ b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_155.S
@@ -8,12 +8,12 @@
 b__MGPA7naqebvq16OaZrqvnPbqrpYvfgR0_AF_10VVagresnprR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGPA7naqebvq16OcZrqvnPbqrpYvfgR8_AF_9OcErsOnfrR
+.weak b__MGPA7naqebvq16OcZrqvnPbqrpYvfgR8_AF_9OcErsOnfrR
 .type b__MGPA7naqebvq16OcZrqvnPbqrpYvfgR8_AF_9OcErsOnfrR,%object
 b__MGPA7naqebvq16OcZrqvnPbqrpYvfgR8_AF_9OcErsOnfrR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIA7naqebvq16OcZrqvnPbqrpYvfgR
+.weak b__MGIA7naqebvq16OcZrqvnPbqrpYvfgR
 .type b__MGIA7naqebvq16OcZrqvnPbqrpYvfgR,%object
 b__MGIA7naqebvq16OcZrqvnPbqrpYvfgR:
 .space __SIZEOF_POINTER__
@@ -23,12 +23,12 @@
 b__MA7naqebvq15VZrqvnPbqrpYvfgP2Ri:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_14ZrqvnPbqrpVasb12CebsvyrYriryRR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq6IrpgbeVAF_14ZrqvnPbqrpVasb12CebsvyrYriryRR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq6IrpgbeVAF_14ZrqvnPbqrpVasb12CebsvyrYriryRR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq6IrpgbeVAF_14ZrqvnPbqrpVasb12CebsvyrYriryRR10qb_qrfgeblRCiz:
 nop
 .data
-.globl b__MGIA7naqebvq14ZrqvnPbqrpVasb12PncnovyvgvrfR
+.weak b__MGIA7naqebvq14ZrqvnPbqrpVasb12PncnovyvgvrfR
 .type b__MGIA7naqebvq14ZrqvnPbqrpVasb12PncnovyvgvrfR,%object
 b__MGIA7naqebvq14ZrqvnPbqrpVasb12PncnovyvgvrfR:
 .space __SIZEOF_POINTER__
@@ -43,17 +43,17 @@
 b__MAX7naqebvq14ZrqvnPbqrpVasb18trgPncnovyvglVaqrkRCXp:
 nop
 .data
-.globl b__MGIA7naqebvq12FbegrqIrpgbeVAF_14ZrqvnPbqrpVasb12CebsvyrYriryRRR
+.weak b__MGIA7naqebvq12FbegrqIrpgbeVAF_14ZrqvnPbqrpVasb12CebsvyrYriryRRR
 .type b__MGIA7naqebvq12FbegrqIrpgbeVAF_14ZrqvnPbqrpVasb12CebsvyrYriryRRR,%object
 b__MGIA7naqebvq12FbegrqIrpgbeVAF_14ZrqvnPbqrpVasb12CebsvyrYriryRRR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MA7naqebvq14ZrqvnPbqrpVasb12Pncnovyvgvrf25SRNGHER_QLANZVP_GVZRFGNZCR
+.weak b__MA7naqebvq14ZrqvnPbqrpVasb12Pncnovyvgvrf25SRNGHER_QLANZVP_GVZRFGNZCR
 .type b__MA7naqebvq14ZrqvnPbqrpVasb12Pncnovyvgvrf25SRNGHER_QLANZVP_GVZRFGNZCR,%object
 b__MA7naqebvq14ZrqvnPbqrpVasb12Pncnovyvgvrf25SRNGHER_QLANZVP_GVZRFGNZCR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_14ZrqvnPbqrpVasb12CebsvyrYriryRR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_14ZrqvnPbqrpVasb12CebsvyrYriryRR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_14ZrqvnPbqrpVasb12CebsvyrYriryRR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_14ZrqvnPbqrpVasb12CebsvyrYriryRR7qb_pbclRCiCXiz:
 nop
@@ -63,7 +63,7 @@
 b__MAX7naqebvq14ZrqvnPbqrpVasb18trgPncnovyvgvrfSbeRCXp:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_14ZrqvnPbqrpVasb12CebsvyrYriryRR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_14ZrqvnPbqrpVasb12CebsvyrYriryRR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_14ZrqvnPbqrpVasb12CebsvyrYriryRR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_14ZrqvnPbqrpVasb12CebsvyrYriryRR7qb_pbclRCiCXiz:
 nop
@@ -78,12 +78,12 @@
 b__MGGA7naqebvq15VZrqvnPbqrpYvfgR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq6IrpgbeVwR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVwR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVwR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVwR15qb_zbir_sbejneqRCiCXiz:
 nop
 .data
-.globl b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7NFgevatRAF_2fcVAF_14ZrqvnPbqrpVasb12PncnovyvgvrfRRRRRRR
+.weak b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7NFgevatRAF_2fcVAF_14ZrqvnPbqrpVasb12PncnovyvgvrfRRRRRRR
 .type b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7NFgevatRAF_2fcVAF_14ZrqvnPbqrpVasb12PncnovyvgvrfRRRRRRR,%object
 b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7NFgevatRAF_2fcVAF_14ZrqvnPbqrpVasb12PncnovyvgvrfRRRRRRR:
 .space __SIZEOF_POINTER__
@@ -93,12 +93,12 @@
 b__MA7naqebvq15VZrqvnPbqrpYvfg11nfVagresnprREXAF_2fcVAF_7VOvaqreRRR:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_7NFgevatRR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_7NFgevatRR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_7NFgevatRR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_7NFgevatRR7qb_pbclRCiCXiz:
 nop
 .data
-.globl b__MGGA7naqebvq16OcZrqvnPbqrpYvfgR
+.weak b__MGGA7naqebvq16OcZrqvnPbqrpYvfgR
 .type b__MGGA7naqebvq16OcZrqvnPbqrpYvfgR,%object
 b__MGGA7naqebvq16OcZrqvnPbqrpYvfgR:
 .space __SIZEOF_POINTER__
@@ -118,17 +118,17 @@
 b__MA7naqebvq20ZrqvnPbqrpVasbJevgreP1RCAF_14ZrqvnPbqrpVasbR:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7NFgevatRAF_2fcVAF_14ZrqvnPbqrpVasb12PncnovyvgvrfRRRRRR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7NFgevatRAF_2fcVAF_14ZrqvnPbqrpVasb12PncnovyvgvrfRRRRRR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7NFgevatRAF_2fcVAF_14ZrqvnPbqrpVasb12PncnovyvgvrfRRRRRR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7NFgevatRAF_2fcVAF_14ZrqvnPbqrpVasb12PncnovyvgvrfRRRRRR12qb_pbafgehpgRCiz:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_14ZrqvnPbqrpVasb12CebsvyrYriryRR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq6IrpgbeVAF_14ZrqvnPbqrpVasb12CebsvyrYriryRR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq6IrpgbeVAF_14ZrqvnPbqrpVasb12CebsvyrYriryRR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq6IrpgbeVAF_14ZrqvnPbqrpVasb12CebsvyrYriryRR12qb_pbafgehpgRCiz:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7NFgevatRAF_2fcVAF_14ZrqvnPbqrpVasb12PncnovyvgvrfRRRRRR10qb_pbzcnerRCXiFN_
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7NFgevatRAF_2fcVAF_14ZrqvnPbqrpVasb12PncnovyvgvrfRRRRRR10qb_pbzcnerRCXiFN_
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7NFgevatRAF_2fcVAF_14ZrqvnPbqrpVasb12PncnovyvgvrfRRRRRR10qb_pbzcnerRCXiFN_,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7NFgevatRAF_2fcVAF_14ZrqvnPbqrpVasb12PncnovyvgvrfRRRRRR10qb_pbzcnerRCXiFN_:
 nop
@@ -138,7 +138,7 @@
 b__MA7naqebvq14ZrqvnPbqrpVasb12PncnovyvgvrfP2Ri:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7NFgevatRAF_2fcVAF_14ZrqvnPbqrpVasb12PncnovyvgvrfRRRRRR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7NFgevatRAF_2fcVAF_14ZrqvnPbqrpVasb12PncnovyvgvrfRRRRRR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7NFgevatRAF_2fcVAF_14ZrqvnPbqrpVasb12PncnovyvgvrfRRRRRR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7NFgevatRAF_2fcVAF_14ZrqvnPbqrpVasb12PncnovyvgvrfRRRRRR15qb_zbir_sbejneqRCiCXiz:
 nop
@@ -148,12 +148,12 @@
 b__MAX7naqebvq14ZrqvnPbqrpVasb13trgNggevohgrfRi:
 nop
 .data
-.globl b__MGIA7naqebvq14ZrqvnPbqrpVasbR
+.weak b__MGIA7naqebvq14ZrqvnPbqrpVasbR
 .type b__MGIA7naqebvq14ZrqvnPbqrpVasbR,%object
 b__MGIA7naqebvq14ZrqvnPbqrpVasbR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIA7naqebvq6IrpgbeVAF_14ZrqvnPbqrpVasb12CebsvyrYriryRRR
+.weak b__MGIA7naqebvq6IrpgbeVAF_14ZrqvnPbqrpVasb12CebsvyrYriryRRR
 .type b__MGIA7naqebvq6IrpgbeVAF_14ZrqvnPbqrpVasb12CebsvyrYriryRRR,%object
 b__MGIA7naqebvq6IrpgbeVAF_14ZrqvnPbqrpVasb12CebsvyrYriryRRR:
 .space __SIZEOF_POINTER__
@@ -163,12 +163,12 @@
 b__MA7naqebvq20ZrqvnPbqrpVasbJevgreP2RCAF_14ZrqvnPbqrpVasbR:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7NFgevatRAF_2fcVAF_14ZrqvnPbqrpVasb12PncnovyvgvrfRRRRRR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7NFgevatRAF_2fcVAF_14ZrqvnPbqrpVasb12PncnovyvgvrfRRRRRR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7NFgevatRAF_2fcVAF_14ZrqvnPbqrpVasb12PncnovyvgvrfRRRRRR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7NFgevatRAF_2fcVAF_14ZrqvnPbqrpVasb12PncnovyvgvrfRRRRRR8qb_fcyngRCiCXiz:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_7NFgevatRR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_7NFgevatRR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_7NFgevatRR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_7NFgevatRR16qb_zbir_onpxjneqRCiCXiz:
 nop
@@ -183,7 +183,7 @@
 b__MGi0_a24_A7naqebvq15VZrqvnPbqrpYvfgQ0Ri:
 nop
 .data
-.globl b__MA7naqebvq14ZrqvnPbqrpVasb12Pncnovyvgvrf23SRNGHER_ZHYGVCYR_SENZRFR
+.weak b__MA7naqebvq14ZrqvnPbqrpVasb12Pncnovyvgvrf23SRNGHER_ZHYGVCYR_SENZRFR
 .type b__MA7naqebvq14ZrqvnPbqrpVasb12Pncnovyvgvrf23SRNGHER_ZHYGVCYR_SENZRFR,%object
 b__MA7naqebvq14ZrqvnPbqrpVasb12Pncnovyvgvrf23SRNGHER_ZHYGVCYR_SENZRFR:
 .space __SIZEOF_POINTER__
@@ -203,7 +203,7 @@
 b__MGPA7naqebvq16OaZrqvnPbqrpYvfgR8_AF_7VOvaqreR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_14ZrqvnPbqrpVasb12CebsvyrYriryRR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_14ZrqvnPbqrpVasb12CebsvyrYriryRR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_14ZrqvnPbqrpVasb12CebsvyrYriryRR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_14ZrqvnPbqrpVasb12CebsvyrYriryRR8qb_fcyngRCiCXiz:
 nop
@@ -213,7 +213,7 @@
 b__MAX7naqebvq14ZrqvnPbqrpVasb12Pncnovyvgvrf24trgFhccbegrqPbybeSbezngfRCAF_6IrpgbeVwRR:
 nop
 .text
-.globl b__MA7naqebvq11OaVagresnprVAF_15VZrqvnPbqrpYvfgRR10baNfOvaqreRi
+.weak b__MA7naqebvq11OaVagresnprVAF_15VZrqvnPbqrpYvfgRR10baNfOvaqreRi
 .type b__MA7naqebvq11OaVagresnprVAF_15VZrqvnPbqrpYvfgRR10baNfOvaqreRi,%function
 b__MA7naqebvq11OaVagresnprVAF_15VZrqvnPbqrpYvfgRR10baNfOvaqreRi:
 nop
@@ -233,42 +233,42 @@
 b__MA7naqebvq20ZrqvnPbqrpVasbJevgre7frgAnzrRCXp:
 nop
 .data
-.globl b__MGIA7naqebvq6IrpgbeVAF_7NFgevatRRR
+.weak b__MGIA7naqebvq6IrpgbeVAF_7NFgevatRRR
 .type b__MGIA7naqebvq6IrpgbeVAF_7NFgevatRRR,%object
 b__MGIA7naqebvq6IrpgbeVAF_7NFgevatRRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_14ZrqvnPbqrpVasb12CebsvyrYriryRR10qb_pbzcnerRCXiF5_
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_14ZrqvnPbqrpVasb12CebsvyrYriryRR10qb_pbzcnerRCXiF5_
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_14ZrqvnPbqrpVasb12CebsvyrYriryRR10qb_pbzcnerRCXiF5_,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_14ZrqvnPbqrpVasb12CebsvyrYriryRR10qb_pbzcnerRCXiF5_:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_14ZrqvnPbqrpVasb12CebsvyrYriryRR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_14ZrqvnPbqrpVasb12CebsvyrYriryRR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_14ZrqvnPbqrpVasb12CebsvyrYriryRR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_14ZrqvnPbqrpVasb12CebsvyrYriryRR16qb_zbir_onpxjneqRCiCXiz:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_14ZrqvnPbqrpVasb12CebsvyrYriryRR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_14ZrqvnPbqrpVasb12CebsvyrYriryRR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_14ZrqvnPbqrpVasb12CebsvyrYriryRR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_14ZrqvnPbqrpVasb12CebsvyrYriryRR16qb_zbir_onpxjneqRCiCXiz:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_7NFgevatRR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq6IrpgbeVAF_7NFgevatRR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq6IrpgbeVAF_7NFgevatRR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq6IrpgbeVAF_7NFgevatRR10qb_qrfgeblRCiz:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVwR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVwR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVwR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVwR8qb_fcyngRCiCXiz:
 nop
 .data
-.globl b__MGPA7naqebvq16OcZrqvnPbqrpYvfgR0_AF_11OcVagresnprVAF_15VZrqvnPbqrpYvfgRRR
+.weak b__MGPA7naqebvq16OcZrqvnPbqrpYvfgR0_AF_11OcVagresnprVAF_15VZrqvnPbqrpYvfgRRR
 .type b__MGPA7naqebvq16OcZrqvnPbqrpYvfgR0_AF_11OcVagresnprVAF_15VZrqvnPbqrpYvfgRRR,%object
 b__MGPA7naqebvq16OcZrqvnPbqrpYvfgR0_AF_11OcVagresnprVAF_15VZrqvnPbqrpYvfgRRR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MA7naqebvq14ZrqvnPbqrpVasb12Pncnovyvgvrf25SRNGHER_GHAARYRQ_CYNLONPXR
+.weak b__MA7naqebvq14ZrqvnPbqrpVasb12Pncnovyvgvrf25SRNGHER_GHAARYRQ_CYNLONPXR
 .type b__MA7naqebvq14ZrqvnPbqrpVasb12Pncnovyvgvrf25SRNGHER_GHAARYRQ_CYNLONPXR,%object
 b__MA7naqebvq14ZrqvnPbqrpVasb12Pncnovyvgvrf25SRNGHER_GHAARYRQ_CYNLONPXR:
 .space __SIZEOF_POINTER__
@@ -283,12 +283,12 @@
 b__MA7naqebvq14ZrqvnPbqrpVasbP2Ri:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVwR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVwR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVwR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVwR10qb_qrfgeblRCiz:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVwR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVwR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVwR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVwR8qb_fcyngRCiCXiz:
 nop
@@ -298,7 +298,7 @@
 b__MA7naqebvq14ZrqvnPbqrpVasb18PncnovyvgvrfJevgre9nqqQrgnvyRCXpF3_:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_14ZrqvnPbqrpVasb12CebsvyrYriryRR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_14ZrqvnPbqrpVasb12CebsvyrYriryRR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_14ZrqvnPbqrpVasb12CebsvyrYriryRR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_14ZrqvnPbqrpVasb12CebsvyrYriryRR12qb_pbafgehpgRCiz:
 nop
@@ -308,12 +308,12 @@
 b__MAX7naqebvq14ZrqvnPbqrpVasb12trgBjareAnzrRi:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_7NFgevatRR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_7NFgevatRR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_7NFgevatRR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_7NFgevatRR15qb_zbir_sbejneqRCiCXiz:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVwR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq6IrpgbeVwR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq6IrpgbeVwR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq6IrpgbeVwR12qb_pbafgehpgRCiz:
 nop
@@ -323,17 +323,17 @@
 b__MA7naqebvq15VZrqvnPbqrpYvfg14frgQrsnhygVzcyRAFg3__110havdhr_cgeVF0_AF1_14qrsnhyg_qryrgrVF0_RRRR:
 nop
 .data
-.globl b__MA7naqebvq14ZrqvnPbqrpVasb12Pncnovyvgvrf21SRNGHER_VAGEN_ERSERFUR
+.weak b__MA7naqebvq14ZrqvnPbqrpVasb12Pncnovyvgvrf21SRNGHER_VAGEN_ERSERFUR
 .type b__MA7naqebvq14ZrqvnPbqrpVasb12Pncnovyvgvrf21SRNGHER_VAGEN_ERSERFUR,%object
 b__MA7naqebvq14ZrqvnPbqrpVasb12Pncnovyvgvrf21SRNGHER_VAGEN_ERSERFUR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVwR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVwR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVwR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVwR16qb_zbir_onpxjneqRCiCXiz:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_14ZrqvnPbqrpVasb12CebsvyrYriryRR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_14ZrqvnPbqrpVasb12CebsvyrYriryRR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_14ZrqvnPbqrpVasb12CebsvyrYriryRR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_14ZrqvnPbqrpVasb12CebsvyrYriryRR8qb_fcyngRCiCXiz:
 nop
@@ -343,7 +343,7 @@
 b__MA7naqebvq16OaZrqvnPbqrpYvfg10baGenafnpgRwEXAF_6CnepryRCF1_w:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_7NFgevatRR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq6IrpgbeVAF_7NFgevatRR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq6IrpgbeVAF_7NFgevatRR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq6IrpgbeVAF_7NFgevatRR12qb_pbafgehpgRCiz:
 nop
@@ -373,7 +373,7 @@
 b__MA7naqebvq20ZrqvnPbqrpVasbJevgre7frgEnaxRw:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVwR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVwR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVwR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVwR7qb_pbclRCiCXiz:
 nop
@@ -383,17 +383,17 @@
 b__MGPA7naqebvq16OaZrqvnPbqrpYvfgR0_AF_15VZrqvnPbqrpYvfgR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGPA7naqebvq16OcZrqvnPbqrpYvfgR0_AF_10VVagresnprR
+.weak b__MGPA7naqebvq16OcZrqvnPbqrpYvfgR0_AF_10VVagresnprR
 .type b__MGPA7naqebvq16OcZrqvnPbqrpYvfgR0_AF_10VVagresnprR,%object
 b__MGPA7naqebvq16OcZrqvnPbqrpYvfgR0_AF_10VVagresnprR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGPA7naqebvq16OcZrqvnPbqrpYvfgR0_AF_15VZrqvnPbqrpYvfgR
+.weak b__MGPA7naqebvq16OcZrqvnPbqrpYvfgR0_AF_15VZrqvnPbqrpYvfgR
 .type b__MGPA7naqebvq16OcZrqvnPbqrpYvfgR0_AF_15VZrqvnPbqrpYvfgR,%object
 b__MGPA7naqebvq16OcZrqvnPbqrpYvfgR0_AF_15VZrqvnPbqrpYvfgR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_14ZrqvnPbqrpVasb12CebsvyrYriryRR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_14ZrqvnPbqrpVasb12CebsvyrYriryRR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_14ZrqvnPbqrpVasb12CebsvyrYriryRR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_14ZrqvnPbqrpVasb12CebsvyrYriryRR15qb_zbir_sbejneqRCiCXiz:
 nop
@@ -413,7 +413,7 @@
 b__MA7naqebvq14ZrqvnPbqrpVasb12Pncnovyvgvrf10SebzCnepryREXAF_6CnepryR:
 nop
 .data
-.globl b__MA7naqebvq14ZrqvnPbqrpVasb12Pncnovyvgvrf23SRNGHER_FRPHER_CYNLONPXR
+.weak b__MA7naqebvq14ZrqvnPbqrpVasb12Pncnovyvgvrf23SRNGHER_FRPHER_CYNLONPXR
 .type b__MA7naqebvq14ZrqvnPbqrpVasb12Pncnovyvgvrf23SRNGHER_FRPHER_CYNLONPXR,%object
 b__MA7naqebvq14ZrqvnPbqrpVasb12Pncnovyvgvrf23SRNGHER_FRPHER_CYNLONPXR:
 .space __SIZEOF_POINTER__
@@ -423,12 +423,12 @@
 b__MA7naqebvq20ZrqvnPbqrpVasbJevgre12nqqZrqvnGlcrRCXp:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVwR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVwR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVwR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVwR15qb_zbir_sbejneqRCiCXiz:
 nop
 .data
-.globl b__MGIA7naqebvq6IrpgbeVwRR
+.weak b__MGIA7naqebvq6IrpgbeVwRR
 .type b__MGIA7naqebvq6IrpgbeVwRR,%object
 b__MGIA7naqebvq6IrpgbeVwRR:
 .space __SIZEOF_POINTER__
@@ -443,7 +443,7 @@
 b__MGua8_A7naqebvq16OaZrqvnPbqrpYvfg10baGenafnpgRwEXAF_6CnepryRCF1_w:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7NFgevatRAF_2fcVAF_14ZrqvnPbqrpVasb12PncnovyvgvrfRRRRRR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7NFgevatRAF_2fcVAF_14ZrqvnPbqrpVasb12PncnovyvgvrfRRRRRR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7NFgevatRAF_2fcVAF_14ZrqvnPbqrpVasb12PncnovyvgvrfRRRRRR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7NFgevatRAF_2fcVAF_14ZrqvnPbqrpVasb12PncnovyvgvrfRRRRRR10qb_qrfgeblRCiz:
 nop
@@ -478,17 +478,17 @@
 b__MAX7naqebvq14ZrqvnPbqrpVasb7trgEnaxRi:
 nop
 .data
-.globl b__MGIA7naqebvq12FbegrqIrpgbeVwRR
+.weak b__MGIA7naqebvq12FbegrqIrpgbeVwRR
 .type b__MGIA7naqebvq12FbegrqIrpgbeVwRR,%object
 b__MGIA7naqebvq12FbegrqIrpgbeVwRR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MA7naqebvq14ZrqvnPbqrpVasb12Pncnovyvgvrf21SRNGHER_SENZR_CNEFVATR
+.weak b__MA7naqebvq14ZrqvnPbqrpVasb12Pncnovyvgvrf21SRNGHER_SENZR_CNEFVATR
 .type b__MA7naqebvq14ZrqvnPbqrpVasb12Pncnovyvgvrf21SRNGHER_SENZR_CNEFVATR,%object
 b__MA7naqebvq14ZrqvnPbqrpVasb12Pncnovyvgvrf21SRNGHER_SENZR_CNEFVATR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MA7naqebvq14ZrqvnPbqrpVasb12Pncnovyvgvrf25SRNGHER_NQNCGVIR_CYNLONPXR
+.weak b__MA7naqebvq14ZrqvnPbqrpVasb12Pncnovyvgvrf25SRNGHER_NQNCGVIR_CYNLONPXR
 .type b__MA7naqebvq14ZrqvnPbqrpVasb12Pncnovyvgvrf25SRNGHER_NQNCGVIR_CYNLONPXR,%object
 b__MA7naqebvq14ZrqvnPbqrpVasb12Pncnovyvgvrf25SRNGHER_NQNCGVIR_CYNLONPXR:
 .space __SIZEOF_POINTER__
@@ -498,22 +498,22 @@
 b__MA7naqebvq20ZrqvnPbqrpVasbJevgre8frgBjareRCXp:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_14ZrqvnPbqrpVasb12CebsvyrYriryRR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_14ZrqvnPbqrpVasb12CebsvyrYriryRR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_14ZrqvnPbqrpVasb12CebsvyrYriryRR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_14ZrqvnPbqrpVasb12CebsvyrYriryRR10qb_qrfgeblRCiz:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7NFgevatRAF_2fcVAF_14ZrqvnPbqrpVasb12PncnovyvgvrfRRRRRR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7NFgevatRAF_2fcVAF_14ZrqvnPbqrpVasb12PncnovyvgvrfRRRRRR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7NFgevatRAF_2fcVAF_14ZrqvnPbqrpVasb12PncnovyvgvrfRRRRRR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7NFgevatRAF_2fcVAF_14ZrqvnPbqrpVasb12PncnovyvgvrfRRRRRR16qb_zbir_onpxjneqRCiCXiz:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7NFgevatRAF_2fcVAF_14ZrqvnPbqrpVasb12PncnovyvgvrfRRRRRR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7NFgevatRAF_2fcVAF_14ZrqvnPbqrpVasb12PncnovyvgvrfRRRRRR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7NFgevatRAF_2fcVAF_14ZrqvnPbqrpVasb12PncnovyvgvrfRRRRRR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVAF_7NFgevatRAF_2fcVAF_14ZrqvnPbqrpVasb12PncnovyvgvrfRRRRRR7qb_pbclRCiCXiz:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVwR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVwR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVwR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVwR7qb_pbclRCiCXiz:
 nop
@@ -533,7 +533,7 @@
 b__MA7naqebvq20ZrqvnPbqrpVasbJevgre8nqqNyvnfRCXp:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVwR10qb_pbzcnerRCXiF3_
+.weak b__MAX7naqebvq12FbegrqIrpgbeVwR10qb_pbzcnerRCXiF3_
 .type b__MAX7naqebvq12FbegrqIrpgbeVwR10qb_pbzcnerRCXiF3_,%function
 b__MAX7naqebvq12FbegrqIrpgbeVwR10qb_pbzcnerRCXiF3_:
 nop
@@ -543,7 +543,7 @@
 b__MAX7naqebvq14ZrqvnPbqrpVasb12Pncnovyvgvrf13jevgrGbCnepryRCAF_6CnepryR:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVwR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq6IrpgbeVwR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq6IrpgbeVwR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq6IrpgbeVwR10qb_qrfgeblRCiz:
 nop
@@ -568,12 +568,12 @@
 b__MA7naqebvq14ZrqvnPbqrpVasb18PncnovyvgvrfJevgre12erzbirQrgnvyRCXp:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVwR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVwR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVwR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVwR12qb_pbafgehpgRCiz:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_14ZrqvnPbqrpVasb12CebsvyrYriryRR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_14ZrqvnPbqrpVasb12CebsvyrYriryRR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_14ZrqvnPbqrpVasb12CebsvyrYriryRR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_14ZrqvnPbqrpVasb12CebsvyrYriryRR15qb_zbir_sbejneqRCiCXiz:
 nop
@@ -593,12 +593,12 @@
 b__MAX7naqebvq14ZrqvnPbqrpVasb12trgPbqrpAnzrRi:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVAF_7NFgevatRR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVAF_7NFgevatRR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVAF_7NFgevatRR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVAF_7NFgevatRR8qb_fcyngRCiCXiz:
 nop
 .text
-.globl b__MAX7naqebvq6IrpgbeVwR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq6IrpgbeVwR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq6IrpgbeVwR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq6IrpgbeVwR16qb_zbir_onpxjneqRCiCXiz:
 nop
diff --git a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_156.S b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_156.S
index c1a0ab8..c5b03f6 100644
--- a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_156.S
+++ b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_156.S
@@ -188,7 +188,7 @@
 b__MGGA7naqebvq20VTencuvpOhssreFbheprR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGPA7naqebvq13OcBZKBofreireR0_AF_10VVagresnprR
+.weak b__MGPA7naqebvq13OcBZKBofreireR0_AF_10VVagresnprR
 .type b__MGPA7naqebvq13OcBZKBofreireR0_AF_10VVagresnprR,%object
 b__MGPA7naqebvq13OcBZKBofreireR0_AF_10VVagresnprR:
 .space __SIZEOF_POINTER__
@@ -203,7 +203,7 @@
 b__MA7naqebvq20VTencuvpOhssreFbhepr11nfVagresnprREXAF_2fcVAF_7VOvaqreRRR:
 nop
 .data
-.globl b__MGIA7naqebvq9UcBZKAbqrR
+.weak b__MGIA7naqebvq9UcBZKAbqrR
 .type b__MGIA7naqebvq9UcBZKAbqrR,%object
 b__MGIA7naqebvq9UcBZKAbqrR:
 .space __SIZEOF_POINTER__
@@ -248,7 +248,7 @@
 b__MGPA7naqebvq8uneqjner5zrqvn3bzk4I1_05hgvyf21YJTencuvpOhssreFbheprR0_AF_10VVagresnprR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq12U2OPbairegreVAF_8uneqjner5zrqvn3bzk4I1_08VBzkAbqrRAF_9OaBZKAbqrRR13hayvaxGbQrnguREXAF_2jcVAF_7VOvaqre14QrnguErpvcvragRRRCiwCFO_
+.weak b__MA7naqebvq12U2OPbairegreVAF_8uneqjner5zrqvn3bzk4I1_08VBzkAbqrRAF_9OaBZKAbqrRR13hayvaxGbQrnguREXAF_2jcVAF_7VOvaqre14QrnguErpvcvragRRRCiwCFO_
 .type b__MA7naqebvq12U2OPbairegreVAF_8uneqjner5zrqvn3bzk4I1_08VBzkAbqrRAF_9OaBZKAbqrRR13hayvaxGbQrnguREXAF_2jcVAF_7VOvaqre14QrnguErpvcvragRRRCiwCFO_,%function
 b__MA7naqebvq12U2OPbairegreVAF_8uneqjner5zrqvn3bzk4I1_08VBzkAbqrRAF_9OaBZKAbqrRR13hayvaxGbQrnguREXAF_2jcVAF_7VOvaqre14QrnguErpvcvragRRRCiwCFO_:
 nop
@@ -308,7 +308,7 @@
 b__MGPA7naqebvq13OaBZKBofreireR8_AF_7VOvaqreR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGPA7naqebvq9OcBZKAbqrR0_AF_10VVagresnprR
+.weak b__MGPA7naqebvq9OcBZKAbqrR0_AF_10VVagresnprR
 .type b__MGPA7naqebvq9OcBZKAbqrR0_AF_10VVagresnprR,%object
 b__MGPA7naqebvq9OcBZKAbqrR0_AF_10VVagresnprR:
 .space __SIZEOF_POINTER__
@@ -383,7 +383,7 @@
 b__MGPA7naqebvq8uneqjner5zrqvn3bzk4I1_05hgvyf17YJBzkOhssreFbheprR0_AF_17OaBZKOhssreFbheprR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGPA7naqebvq9OcBZKAbqrR0_AF_8VBZKAbqrR
+.weak b__MGPA7naqebvq9OcBZKAbqrR0_AF_8VBZKAbqrR
 .type b__MGPA7naqebvq9OcBZKAbqrR0_AF_8VBZKAbqrR,%object
 b__MGPA7naqebvq9OcBZKAbqrR0_AF_8VBZKAbqrR:
 .space __SIZEOF_POINTER__
@@ -423,12 +423,12 @@
 b__MA7naqebvq27VTencuvpOhssreFbheprQrsnhyg10frgFhfcraqRoy:
 nop
 .data
-.globl b__MGPA7naqebvq9UcBZKAbqrR0_AF_10VVagresnprR
+.weak b__MGPA7naqebvq9UcBZKAbqrR0_AF_10VVagresnprR
 .type b__MGPA7naqebvq9UcBZKAbqrR0_AF_10VVagresnprR,%object
 b__MGPA7naqebvq9UcBZKAbqrR0_AF_10VVagresnprR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGPA7naqebvq9UcBZKAbqrR0_AF_11UcVagresnprVAF_9OcBZKAbqrRAF_8uneqjner5zrqvn3bzk4I1_05hgvyf9YJBzkAbqrRWRRR
+.weak b__MGPA7naqebvq9UcBZKAbqrR0_AF_11UcVagresnprVAF_9OcBZKAbqrRAF_8uneqjner5zrqvn3bzk4I1_05hgvyf9YJBzkAbqrRWRRR
 .type b__MGPA7naqebvq9UcBZKAbqrR0_AF_11UcVagresnprVAF_9OcBZKAbqrRAF_8uneqjner5zrqvn3bzk4I1_05hgvyf9YJBzkAbqrRWRRR,%object
 b__MGPA7naqebvq9UcBZKAbqrR0_AF_11UcVagresnprVAF_9OcBZKAbqrRAF_8uneqjner5zrqvn3bzk4I1_05hgvyf9YJBzkAbqrRWRRR:
 .space __SIZEOF_POINTER__
@@ -438,7 +438,7 @@
 b__MA7naqebvq8uneqjner5zrqvn3bzk4I1_05hgvyf9GJBzkAbqr9trgPbasvtRwEXAF0_8uvqy_irpVuRRAFg3__18shapgvbaVSiAF3_6FgnghfRF9_RRR:
 nop
 .data
-.globl b__MGGA7naqebvq13OcBZKBofreireR
+.weak b__MGGA7naqebvq13OcBZKBofreireR
 .type b__MGGA7naqebvq13OcBZKBofreireR,%object
 b__MGGA7naqebvq13OcBZKBofreireR:
 .space __SIZEOF_POINTER__
@@ -483,12 +483,12 @@
 b__MA7naqebvq23VBZKOhssreFbheprQrsnhyg20baVachgOhssreRzcgvrqRvEXAF_18BZKSraprCneprynoyrR:
 nop
 .data
-.globl b__MGPA7naqebvq9OcBZKAbqrR0_AF_11OcVagresnprVAF_8VBZKAbqrRRR
+.weak b__MGPA7naqebvq9OcBZKAbqrR0_AF_11OcVagresnprVAF_8VBZKAbqrRRR
 .type b__MGPA7naqebvq9OcBZKAbqrR0_AF_11OcVagresnprVAF_8VBZKAbqrRRR,%object
 b__MGPA7naqebvq9OcBZKAbqrR0_AF_11OcVagresnprVAF_8VBZKAbqrRRR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGGA7naqebvq9UcBZKAbqrR
+.weak b__MGGA7naqebvq9UcBZKAbqrR
 .type b__MGGA7naqebvq9UcBZKAbqrR,%object
 b__MGGA7naqebvq9UcBZKAbqrR:
 .space __SIZEOF_POINTER__
@@ -518,7 +518,7 @@
 b__MA7naqebvq8uneqjner5zrqvn3bzk4I1_05hgvyf9YJBzkAbqr12trgCnenzrgreR13BZK_VAQRKGLCRCiz:
 nop
 .text
-.globl b__MA7naqebvq11OaVagresnprVAF_16VBZKOhssreFbheprRR10baNfOvaqreRi
+.weak b__MA7naqebvq11OaVagresnprVAF_16VBZKOhssreFbheprRR10baNfOvaqreRi
 .type b__MA7naqebvq11OaVagresnprVAF_16VBZKOhssreFbheprRR10baNfOvaqreRi,%function
 b__MA7naqebvq11OaVagresnprVAF_16VBZKOhssreFbheprRR10baNfOvaqreRi:
 nop
@@ -603,7 +603,7 @@
 b__MAX7naqebvq12VBZKBofreire22trgVagresnprQrfpevcgbeRi:
 nop
 .text
-.globl b__MA7naqebvq2fcVAF_13TencuvpOhssreRRnFREXF2_
+.weak b__MA7naqebvq2fcVAF_13TencuvpOhssreRRnFREXF2_
 .type b__MA7naqebvq2fcVAF_13TencuvpOhssreRRnFREXF2_,%function
 b__MA7naqebvq2fcVAF_13TencuvpOhssreRRnFREXF2_:
 nop
@@ -618,17 +618,17 @@
 b__MGPA7naqebvq8uneqjner5zrqvn3bzk4I1_05hgvyf21YJTencuvpOhssreFbheprR8_AF_7OOvaqreR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MGua8_A7naqebvq12U2OPbairegreVAF_8uneqjner5zrqvn3bzk4I1_08VBzkAbqrRAF_9OaBZKAbqrRR10baGenafnpgRwEXAF_6CnepryRCF8_w
+.weak b__MGua8_A7naqebvq12U2OPbairegreVAF_8uneqjner5zrqvn3bzk4I1_08VBzkAbqrRAF_9OaBZKAbqrRR10baGenafnpgRwEXAF_6CnepryRCF8_w
 .type b__MGua8_A7naqebvq12U2OPbairegreVAF_8uneqjner5zrqvn3bzk4I1_08VBzkAbqrRAF_9OaBZKAbqrRR10baGenafnpgRwEXAF_6CnepryRCF8_w,%function
 b__MGua8_A7naqebvq12U2OPbairegreVAF_8uneqjner5zrqvn3bzk4I1_08VBzkAbqrRAF_9OaBZKAbqrRR10baGenafnpgRwEXAF_6CnepryRCF8_w:
 nop
 .text
-.globl b__MAX7naqebvq6Cnepry16ernqFgebatOvaqreVAF_8VBZKAbqrRRRvCAF_2fcVG_RR
+.weak b__MAX7naqebvq6Cnepry16ernqFgebatOvaqreVAF_8VBZKAbqrRRRvCAF_2fcVG_RR
 .type b__MAX7naqebvq6Cnepry16ernqFgebatOvaqreVAF_8VBZKAbqrRRRvCAF_2fcVG_RR,%function
 b__MAX7naqebvq6Cnepry16ernqFgebatOvaqreVAF_8VBZKAbqrRRRvCAF_2fcVG_RR:
 nop
 .text
-.globl b__MA7naqebvq11UcVagresnprVAF_9OcBZKAbqrRAF_8uneqjner5zrqvn3bzk4I1_05hgvyf9YJBzkAbqrRWRRP2REXAF_2fcVAF_7VOvaqreRRR
+.weak b__MA7naqebvq11UcVagresnprVAF_9OcBZKAbqrRAF_8uneqjner5zrqvn3bzk4I1_05hgvyf9YJBzkAbqrRWRRP2REXAF_2fcVAF_7VOvaqreRRR
 .type b__MA7naqebvq11UcVagresnprVAF_9OcBZKAbqrRAF_8uneqjner5zrqvn3bzk4I1_05hgvyf9YJBzkAbqrRWRRP2REXAF_2fcVAF_7VOvaqreRRR,%function
 b__MA7naqebvq11UcVagresnprVAF_9OcBZKAbqrRAF_8uneqjner5zrqvn3bzk4I1_05hgvyf9YJBzkAbqrRWRRP2REXAF_2fcVAF_7VOvaqreRRR:
 nop
@@ -743,7 +743,7 @@
 b__MA7naqebvq9BZKOhssreP2REXAF_2fcVAF_12AngvirUnaqyrRRR:
 nop
 .data
-.globl b__MGIA7naqebvq6Cnepry17SynggranoyrUrycreVAF_13TencuvpOhssreRRR
+.weak b__MGIA7naqebvq6Cnepry17SynggranoyrUrycreVAF_13TencuvpOhssreRRR
 .type b__MGIA7naqebvq6Cnepry17SynggranoyrUrycreVAF_13TencuvpOhssreRRR,%object
 b__MGIA7naqebvq6Cnepry17SynggranoyrUrycreVAF_13TencuvpOhssreRRR:
 .space __SIZEOF_POINTER__
@@ -888,7 +888,7 @@
 b__MA7naqebvq12VBZKBofreireQ1Ri:
 nop
 .data
-.globl b__MGPA7naqebvq9OcBZKAbqrR8_AF_9OcErsOnfrR
+.weak b__MGPA7naqebvq9OcBZKAbqrR8_AF_9OcErsOnfrR
 .type b__MGPA7naqebvq9OcBZKAbqrR8_AF_9OcErsOnfrR,%object
 b__MGPA7naqebvq9OcBZKAbqrR8_AF_9OcErsOnfrR:
 .space __SIZEOF_POINTER__
@@ -933,12 +933,12 @@
 b__MGIA7naqebvq17OaBZKOhssreFbheprR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGPA7naqebvq13OcBZKBofreireR0_AF_12VBZKBofreireR
+.weak b__MGPA7naqebvq13OcBZKBofreireR0_AF_12VBZKBofreireR
 .type b__MGPA7naqebvq13OcBZKBofreireR0_AF_12VBZKBofreireR,%object
 b__MGPA7naqebvq13OcBZKBofreireR0_AF_12VBZKBofreireR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGPA7naqebvq9UcBZKAbqrR0_AF_8VBZKAbqrR
+.weak b__MGPA7naqebvq9UcBZKAbqrR0_AF_8VBZKAbqrR
 .type b__MGPA7naqebvq9UcBZKAbqrR0_AF_8VBZKAbqrR,%object
 b__MGPA7naqebvq9UcBZKAbqrR0_AF_8VBZKAbqrR:
 .space __SIZEOF_POINTER__
@@ -988,7 +988,7 @@
 b__MGPA7naqebvq17OaBZKOhssreFbheprR0_AF_11OaVagresnprVAF_16VBZKOhssreFbheprRRR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIA7naqebvq18BZKSraprCneprynoyrR
+.weak b__MGIA7naqebvq18BZKSraprCneprynoyrR
 .type b__MGIA7naqebvq18BZKSraprCneprynoyrR,%object
 b__MGIA7naqebvq18BZKSraprCneprynoyrR:
 .space __SIZEOF_POINTER__
@@ -1063,7 +1063,7 @@
 b__MA7naqebvq21OcTencuvpOhssreFbhepr10frgFhfcraqRoy:
 nop
 .data
-.globl b__MGIA7naqebvq9OcBZKAbqrR
+.weak b__MGIA7naqebvq9OcBZKAbqrR
 .type b__MGIA7naqebvq9OcBZKAbqrR,%object
 b__MGIA7naqebvq9OcBZKAbqrR:
 .space __SIZEOF_POINTER__
@@ -1078,7 +1078,7 @@
 b__MA7naqebvq9BZKOhssre14ernqSebzCnepryRCXAF_6CnepryR:
 nop
 .data
-.globl b__MGPA7naqebvq13OcBZKBofreireR8_AF_9OcErsOnfrR
+.weak b__MGPA7naqebvq13OcBZKBofreireR8_AF_9OcErsOnfrR
 .type b__MGPA7naqebvq13OcBZKBofreireR8_AF_9OcErsOnfrR,%object
 b__MGPA7naqebvq13OcBZKBofreireR8_AF_9OcErsOnfrR:
 .space __SIZEOF_POINTER__
@@ -1183,7 +1183,7 @@
 b__MA7naqebvq16VBZKOhssreFbhepr11nfVagresnprREXAF_2fcVAF_7VOvaqreRRR:
 nop
 .data
-.globl b__MGIA7naqebvq13OcBZKBofreireR
+.weak b__MGIA7naqebvq13OcBZKBofreireR
 .type b__MGIA7naqebvq13OcBZKBofreireR,%object
 b__MGIA7naqebvq13OcBZKBofreireR:
 .space __SIZEOF_POINTER__
@@ -1358,7 +1358,7 @@
 b__MA7naqebvq8uneqjner5zrqvn3bzk4I1_05hgvyf13GJBzkBofreireP2REXAF_2fcVAF_12VBZKBofreireRRR:
 nop
 .data
-.globl b__MGGA7naqebvq9OcBZKAbqrR
+.weak b__MGGA7naqebvq9OcBZKAbqrR
 .type b__MGGA7naqebvq9OcBZKAbqrR,%object
 b__MGGA7naqebvq9OcBZKAbqrR:
 .space __SIZEOF_POINTER__
@@ -1378,7 +1378,7 @@
 b__MA7naqebvq27VTencuvpOhssreFbheprQrsnhyg9frgZnkScfRs:
 nop
 .text
-.globl b__MA7naqebvq11OaVagresnprVAF_12VBZKBofreireRR10baNfOvaqreRi
+.weak b__MA7naqebvq11OaVagresnprVAF_12VBZKBofreireRR10baNfOvaqreRi
 .type b__MA7naqebvq11OaVagresnprVAF_12VBZKBofreireRR10baNfOvaqreRi,%function
 b__MA7naqebvq11OaVagresnprVAF_12VBZKBofreireRR10baNfOvaqreRi:
 nop
@@ -1453,7 +1453,7 @@
 b__MA7naqebvq8uneqjner5zrqvn3bzk4I1_05hgvyf17GJBzkOhssreFbheprP1REXAF_2fcVAF_16VBZKOhssreFbheprRRR:
 nop
 .data
-.globl b__MA7naqebvq8VBZKAbqr27fTrgUnyGbxraGenafnpgvbaPbqrR
+.weak b__MA7naqebvq8VBZKAbqr27fTrgUnyGbxraGenafnpgvbaPbqrR
 .type b__MA7naqebvq8VBZKAbqr27fTrgUnyGbxraGenafnpgvbaPbqrR,%object
 b__MA7naqebvq8VBZKAbqr27fTrgUnyGbxraGenafnpgvbaPbqrR:
 .space __SIZEOF_POINTER__
@@ -1488,7 +1488,7 @@
 b__MA7naqebvq8uneqjner5zrqvn3bzk4I1_05hgvyf17GJBzkOhssreFbhepr20baVachgOhssreRzcgvrqRwEXAF0_11uvqy_unaqyrR:
 nop
 .text
-.globl b__MGua8_A7naqebvq12U2OPbairegreVAF_8uneqjner5zrqvn3bzk4I1_08VBzkAbqrRAF_9OaBZKAbqrRR11yvaxGbQrnguREXAF_2fcVAF_7VOvaqre14QrnguErpvcvragRRRCiw
+.weak b__MGua8_A7naqebvq12U2OPbairegreVAF_8uneqjner5zrqvn3bzk4I1_08VBzkAbqrRAF_9OaBZKAbqrRR11yvaxGbQrnguREXAF_2fcVAF_7VOvaqre14QrnguErpvcvragRRRCiw
 .type b__MGua8_A7naqebvq12U2OPbairegreVAF_8uneqjner5zrqvn3bzk4I1_08VBzkAbqrRAF_9OaBZKAbqrRR11yvaxGbQrnguREXAF_2fcVAF_7VOvaqre14QrnguErpvcvragRRRCiw,%function
 b__MGua8_A7naqebvq12U2OPbairegreVAF_8uneqjner5zrqvn3bzk4I1_08VBzkAbqrRAF_9OaBZKAbqrRR11yvaxGbQrnguREXAF_2fcVAF_7VOvaqre14QrnguErpvcvragRRRCiw:
 nop
@@ -1513,7 +1513,7 @@
 b__MA7naqebvq8uneqjner5zrqvn3bzk4I1_05hgvyf9GJBzkAbqr15qvfcngpuZrffntrREXAF3_7ZrffntrR:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_12U2OPbairegreVAF1_8uneqjner5zrqvn3bzk4I1_08VBzkAbqrRAF1_9OaBZKAbqrRR8BovghnelRRRAF_9nyybpngbeVFP_RRR21__chfu_onpx_fybj_cnguVFP_RRiBG_
+.weak b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_12U2OPbairegreVAF1_8uneqjner5zrqvn3bzk4I1_08VBzkAbqrRAF1_9OaBZKAbqrRR8BovghnelRRRAF_9nyybpngbeVFP_RRR21__chfu_onpx_fybj_cnguVFP_RRiBG_
 .type b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_12U2OPbairegreVAF1_8uneqjner5zrqvn3bzk4I1_08VBzkAbqrRAF1_9OaBZKAbqrRR8BovghnelRRRAF_9nyybpngbeVFP_RRR21__chfu_onpx_fybj_cnguVFP_RRiBG_,%function
 b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_12U2OPbairegreVAF1_8uneqjner5zrqvn3bzk4I1_08VBzkAbqrRAF1_9OaBZKAbqrRR8BovghnelRRRAF_9nyybpngbeVFP_RRR21__chfu_onpx_fybj_cnguVFP_RRiBG_:
 nop
@@ -1523,7 +1523,7 @@
 b__MGPA7naqebvq16VBZKOhssreFbheprR0_AF_10VVagresnprR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq11OaVagresnprVAF_8VBZKAbqrRR10baNfOvaqreRi
+.weak b__MA7naqebvq11OaVagresnprVAF_8VBZKAbqrRR10baNfOvaqreRi
 .type b__MA7naqebvq11OaVagresnprVAF_8VBZKAbqrRR10baNfOvaqreRi,%function
 b__MA7naqebvq11OaVagresnprVAF_8VBZKAbqrRR10baNfOvaqreRi:
 nop
@@ -1553,7 +1553,7 @@
 b__MA7naqebvq8uneqjner5zrqvn3bzk4I1_05hgvyf13GJBzkBofreire10baZrffntrfREXAF0_8uvqy_irpVAF3_7ZrffntrRRR:
 nop
 .text
-.globl b__MA7naqebvq11OaVagresnprVAF_20VTencuvpOhssreFbheprRR10baNfOvaqreRi
+.weak b__MA7naqebvq11OaVagresnprVAF_20VTencuvpOhssreFbheprRR10baNfOvaqreRi
 .type b__MA7naqebvq11OaVagresnprVAF_20VTencuvpOhssreFbheprRR10baNfOvaqreRi,%function
 b__MA7naqebvq11OaVagresnprVAF_20VTencuvpOhssreFbheprRR10baNfOvaqreRi:
 nop
@@ -1623,12 +1623,12 @@
 b__MGIA7naqebvq8uneqjner5zrqvn3bzk4I1_05hgvyf21YJTencuvpOhssreFbheprR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq12U2OPbairegreVAF_8uneqjner5zrqvn3bzk4I1_08VBzkAbqrRAF_9OaBZKAbqrRR10baGenafnpgRwEXAF_6CnepryRCF8_w
+.weak b__MA7naqebvq12U2OPbairegreVAF_8uneqjner5zrqvn3bzk4I1_08VBzkAbqrRAF_9OaBZKAbqrRR10baGenafnpgRwEXAF_6CnepryRCF8_w
 .type b__MA7naqebvq12U2OPbairegreVAF_8uneqjner5zrqvn3bzk4I1_08VBzkAbqrRAF_9OaBZKAbqrRR10baGenafnpgRwEXAF_6CnepryRCF8_w,%function
 b__MA7naqebvq12U2OPbairegreVAF_8uneqjner5zrqvn3bzk4I1_08VBzkAbqrRAF_9OaBZKAbqrRR10baGenafnpgRwEXAF_6CnepryRCF8_w:
 nop
 .text
-.globl b__MGua8_A7naqebvq12U2OPbairegreVAF_8uneqjner5zrqvn3bzk4I1_08VBzkAbqrRAF_9OaBZKAbqrRR13hayvaxGbQrnguREXAF_2jcVAF_7VOvaqre14QrnguErpvcvragRRRCiwCFO_
+.weak b__MGua8_A7naqebvq12U2OPbairegreVAF_8uneqjner5zrqvn3bzk4I1_08VBzkAbqrRAF_9OaBZKAbqrRR13hayvaxGbQrnguREXAF_2jcVAF_7VOvaqre14QrnguErpvcvragRRRCiwCFO_
 .type b__MGua8_A7naqebvq12U2OPbairegreVAF_8uneqjner5zrqvn3bzk4I1_08VBzkAbqrRAF_9OaBZKAbqrRR13hayvaxGbQrnguREXAF_2jcVAF_7VOvaqre14QrnguErpvcvragRRRCiwCFO_,%function
 b__MGua8_A7naqebvq12U2OPbairegreVAF_8uneqjner5zrqvn3bzk4I1_08VBzkAbqrRAF_9OaBZKAbqrRR13hayvaxGbQrnguREXAF_2jcVAF_7VOvaqre14QrnguErpvcvragRRRCiwCFO_:
 nop
@@ -1668,7 +1668,7 @@
 b__MA7naqebvq21OcTencuvpOhssreFbheprP2REXAF_2fcVAF_7VOvaqreRRR:
 nop
 .data
-.globl b__MGPA7naqebvq13OcBZKBofreireR0_AF_11OcVagresnprVAF_12VBZKBofreireRRR
+.weak b__MGPA7naqebvq13OcBZKBofreireR0_AF_11OcVagresnprVAF_12VBZKBofreireRRR
 .type b__MGPA7naqebvq13OcBZKBofreireR0_AF_11OcVagresnprVAF_12VBZKBofreireRRR,%object
 b__MGPA7naqebvq13OcBZKBofreireR0_AF_11OcVagresnprVAF_12VBZKBofreireRRR:
 .space __SIZEOF_POINTER__
@@ -1683,12 +1683,12 @@
 b__MA7naqebvq12VBZKBofreire14trgQrsnhygVzcyRi:
 nop
 .text
-.globl b__MA7naqebvq12U2OPbairegreVAF_8uneqjner5zrqvn3bzk4I1_08VBzkAbqrRAF_9OaBZKAbqrRR11yvaxGbQrnguREXAF_2fcVAF_7VOvaqre14QrnguErpvcvragRRRCiw
+.weak b__MA7naqebvq12U2OPbairegreVAF_8uneqjner5zrqvn3bzk4I1_08VBzkAbqrRAF_9OaBZKAbqrRR11yvaxGbQrnguREXAF_2fcVAF_7VOvaqre14QrnguErpvcvragRRRCiw
 .type b__MA7naqebvq12U2OPbairegreVAF_8uneqjner5zrqvn3bzk4I1_08VBzkAbqrRAF_9OaBZKAbqrRR11yvaxGbQrnguREXAF_2fcVAF_7VOvaqre14QrnguErpvcvragRRRCiw,%function
 b__MA7naqebvq12U2OPbairegreVAF_8uneqjner5zrqvn3bzk4I1_08VBzkAbqrRAF_9OaBZKAbqrRR11yvaxGbQrnguREXAF_2fcVAF_7VOvaqre14QrnguErpvcvragRRRCiw:
 nop
 .data
-.globl b__MGIA7naqebvq12U2OPbairegreVAF_8uneqjner5zrqvn3bzk4I1_08VBzkAbqrRAF_9OaBZKAbqrRR8BovghnelR
+.weak b__MGIA7naqebvq12U2OPbairegreVAF_8uneqjner5zrqvn3bzk4I1_08VBzkAbqrRAF_9OaBZKAbqrRR8BovghnelR
 .type b__MGIA7naqebvq12U2OPbairegreVAF_8uneqjner5zrqvn3bzk4I1_08VBzkAbqrRAF_9OaBZKAbqrRR8BovghnelR,%object
 b__MGIA7naqebvq12U2OPbairegreVAF_8uneqjner5zrqvn3bzk4I1_08VBzkAbqrRAF_9OaBZKAbqrRR8BovghnelR:
 .space __SIZEOF_POINTER__
diff --git a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_158.S b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_158.S
index 2d6d0b1..cd5ae33 100644
--- a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_158.S
+++ b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_158.S
@@ -3,12 +3,12 @@
 .data
 .p2align 4
 .text
-.globl b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR12__cnefr_ngbzVCXpRRG_F7_F7_
+.weak b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR12__cnefr_ngbzVCXpRRG_F7_F7_
 .type b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR12__cnefr_ngbzVCXpRRG_F7_F7_,%function
 b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR12__cnefr_ngbzVCXpRRG_F7_F7_:
 nop
 .data
-.globl b__MGPAFg3__119onfvp_vfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_13onfvp_vfgernzVpF2_RR
+.weak b__MGPAFg3__119onfvp_vfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_13onfvp_vfgernzVpF2_RR
 .type b__MGPAFg3__119onfvp_vfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_13onfvp_vfgernzVpF2_RR,%object
 b__MGPAFg3__119onfvp_vfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_13onfvp_vfgernzVpF2_RR:
 .space __SIZEOF_POINTER__
@@ -18,12 +18,12 @@
 b__MA7naqebvq10SdVafgnapr5frgGbREXAFg3__112onfvp_fgevatVpAF1_11pune_genvgfVpRRAF1_9nyybpngbeVpRRRRF9_:
 nop
 .text
-.globl b__MA7naqebvq4onfr4WbvaVAFg3__16irpgbeVAF2_12onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRAF7_VF9_RRRRCXpRRF9_EXG_G0_
+.weak b__MA7naqebvq4onfr4WbvaVAFg3__16irpgbeVAF2_12onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRAF7_VF9_RRRRCXpRRF9_EXG_G0_
 .type b__MA7naqebvq4onfr4WbvaVAFg3__16irpgbeVAF2_12onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRAF7_VF9_RRRRCXpRRF9_EXG_G0_,%function
 b__MA7naqebvq4onfr4WbvaVAFg3__16irpgbeVAF2_12onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRAF7_VF9_RRRRCXpRRF9_EXG_G0_:
 nop
 .data
-.globl b__MGIAFg3__111__zngpu_nalVpRR
+.weak b__MGIAFg3__111__zngpu_nalVpRR
 .type b__MGIAFg3__111__zngpu_nalVpRR,%object
 b__MGIAFg3__111__zngpu_nalVpRR:
 .space __SIZEOF_POINTER__
@@ -48,12 +48,12 @@
 b__MAX7naqebvq6SDAnzr30trgCnpxntrNaqIrefvbaPbzcbaragfRo:
 nop
 .data
-.globl b__MGIAFg3__116__bjaf_bar_fgngrVpRR
+.weak b__MGIAFg3__116__bjaf_bar_fgngrVpRR
 .type b__MGIAFg3__116__bjaf_bar_fgngrVpRR,%object
 b__MGIAFg3__116__bjaf_bar_fgngrVpRR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIAFg3__121__rzcgl_aba_bja_fgngrVpRR
+.weak b__MGIAFg3__121__rzcgl_aba_bja_fgngrVpRR
 .type b__MGIAFg3__121__rzcgl_aba_bja_fgngrVpRR,%object
 b__MGIAFg3__121__rzcgl_aba_bja_fgngrVpRR:
 .space __SIZEOF_POINTER__
@@ -63,7 +63,7 @@
 b__MAX7naqebvq10SdVafgnapr10unfIrefvbaRi:
 nop
 .text
-.globl b__MAXFg3__16__ybbcVpR6__rkrpREAF_7__fgngrVpRR
+.weak b__MAXFg3__16__ybbcVpR6__rkrpREAF_7__fgngrVpRR
 .type b__MAXFg3__16__ybbcVpR6__rkrpREAF_7__fgngrVpRR,%function
 b__MAXFg3__16__ybbcVpR6__rkrpREAF_7__fgngrVpRR:
 nop
@@ -83,37 +83,37 @@
 b__MAX7naqebvq6SDAnzr7qbjaEriRi:
 nop
 .text
-.globl b__MAXFg3__111__raq_fgngrVpR6__rkrpREAF_7__fgngrVpRR
+.weak b__MAXFg3__111__raq_fgngrVpR6__rkrpREAF_7__fgngrVpRR
 .type b__MAXFg3__111__raq_fgngrVpR6__rkrpREAF_7__fgngrVpRR,%function
 b__MAXFg3__111__raq_fgngrVpR6__rkrpREAF_7__fgngrVpRR:
 nop
 .data
-.globl b__MGGAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
+.weak b__MGGAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
 .type b__MGGAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR,%object
 b__MGGAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
+.weak b__MGIAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
 .type b__MGIAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR,%object
 b__MGIAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAXFg3__111__nygreangrVpR6__rkrpREAF_7__fgngrVpRR
+.weak b__MAXFg3__111__nygreangrVpR6__rkrpREAF_7__fgngrVpRR
 .type b__MAXFg3__111__nygreangrVpR6__rkrpREAF_7__fgngrVpRR,%function
 b__MAXFg3__111__nygreangrVpR6__rkrpREAF_7__fgngrVpRR:
 nop
 .text
-.globl b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR11__chfu_ybbcRzzCAF_16__bjaf_bar_fgngrVpRRzzo
+.weak b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR11__chfu_ybbcRzzCAF_16__bjaf_bar_fgngrVpRRzzo
 .type b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR11__chfu_ybbcRzzCAF_16__bjaf_bar_fgngrVpRRzzo,%function
 b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR11__chfu_ybbcRzzCAF_16__bjaf_bar_fgngrVpRRzzo:
 nop
 .text
-.globl b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR12__cnefr_tercVCXpRRG_F7_F7_
+.weak b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR12__cnefr_tercVCXpRRG_F7_F7_
 .type b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR12__cnefr_tercVCXpRRG_F7_F7_,%function
 b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR12__cnefr_tercVCXpRRG_F7_F7_:
 nop
 .text
-.globl b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR16__cnefr_rpzn_rkcVCXpRRG_F7_F7_
+.weak b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR16__cnefr_rpzn_rkcVCXpRRG_F7_F7_
 .type b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR16__cnefr_rpzn_rkcVCXpRRG_F7_F7_,%function
 b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR16__cnefr_rpzn_rkcVCXpRRG_F7_F7_:
 nop
@@ -128,22 +128,22 @@
 b__MA7naqebvq6SDAnzr5frgGbREXAFg3__112onfvp_fgevatVpAF1_11pune_genvgfVpRRAF1_9nyybpngbeVpRRRRzzF9_F9_:
 nop
 .text
-.globl b__MAXFg3__128__ortva_znexrq_fhorkcerffvbaVpR6__rkrpREAF_7__fgngrVpRR
+.weak b__MAXFg3__128__ortva_znexrq_fhorkcerffvbaVpR6__rkrpREAF_7__fgngrVpRR
 .type b__MAXFg3__128__ortva_znexrq_fhorkcerffvbaVpR6__rkrpREAF_7__fgngrVpRR,%function
 b__MAXFg3__128__ortva_znexrq_fhorkcerffvbaVpR6__rkrpREAF_7__fgngrVpRR:
 nop
 .text
-.globl b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR7frrxbssRkAF_8vbf_onfr7frrxqveRw
+.weak b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR7frrxbssRkAF_8vbf_onfr7frrxqveRw
 .type b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR7frrxbssRkAF_8vbf_onfr7frrxqveRw,%function
 b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR7frrxbssRkAF_8vbf_onfr7frrxqveRw:
 nop
 .data
-.globl b__MGIAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
+.weak b__MGIAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
 .type b__MGIAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR,%object
 b__MGIAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIAFg3__128__ortva_znexrq_fhorkcerffvbaVpRR
+.weak b__MGIAFg3__128__ortva_znexrq_fhorkcerffvbaVpRR
 .type b__MGIAFg3__128__ortva_znexrq_fhorkcerffvbaVpRR,%object
 b__MGIAFg3__128__ortva_znexrq_fhorkcerffvbaVpRR:
 .space __SIZEOF_POINTER__
@@ -183,52 +183,52 @@
 b__MAX7naqebvq6SDAnzr16trgVagresnprAnzrRi:
 nop
 .text
-.globl b__MAFg3__114__fcyvg_ohssreVCAF_7__fgngrVpRRAF_9nyybpngbeVF3_RRR10chfu_sebagREXF3_
+.weak b__MAFg3__114__fcyvg_ohssreVCAF_7__fgngrVpRRAF_9nyybpngbeVF3_RRR10chfu_sebagREXF3_
 .type b__MAFg3__114__fcyvg_ohssreVCAF_7__fgngrVpRRAF_9nyybpngbeVF3_RRR10chfu_sebagREXF3_,%function
 b__MAFg3__114__fcyvg_ohssreVCAF_7__fgngrVpRRAF_9nyybpngbeVF3_RRR10chfu_sebagREXF3_:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_7__fgngrVpRRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVF2_RRiBG_
+.weak b__MAFg3__16irpgbeVAF_7__fgngrVpRRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVF2_RRiBG_
 .type b__MAFg3__16irpgbeVAF_7__fgngrVpRRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVF2_RRiBG_,%function
 b__MAFg3__16irpgbeVAF_7__fgngrVpRRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVF2_RRiBG_:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_9fho_zngpuVAF_11__jenc_vgreVCXpRRRRAF_9nyybpngbeVF6_RRR8__nccraqRz
+.weak b__MAFg3__16irpgbeVAF_9fho_zngpuVAF_11__jenc_vgreVCXpRRRRAF_9nyybpngbeVF6_RRR8__nccraqRz
 .type b__MAFg3__16irpgbeVAF_9fho_zngpuVAF_11__jenc_vgreVCXpRRRRAF_9nyybpngbeVF6_RRR8__nccraqRz,%function
 b__MAFg3__16irpgbeVAF_9fho_zngpuVAF_11__jenc_vgreVCXpRRRRAF_9nyybpngbeVF6_RRR8__nccraqRz:
 nop
 .text
-.globl b__MAXFg3__110__y_napubeVpR6__rkrpREAF_7__fgngrVpRR
+.weak b__MAXFg3__110__y_napubeVpR6__rkrpREAF_7__fgngrVpRR
 .type b__MAXFg3__110__y_napubeVpR6__rkrpREAF_7__fgngrVpRR,%function
 b__MAXFg3__110__y_napubeVpR6__rkrpREAF_7__fgngrVpRR:
 nop
 .text
-.globl b__MAXFg3__115__jbeq_obhaqnelVpAF_12ertrk_genvgfVpRRR6__rkrpREAF_7__fgngrVpRR
+.weak b__MAXFg3__115__jbeq_obhaqnelVpAF_12ertrk_genvgfVpRRR6__rkrpREAF_7__fgngrVpRR
 .type b__MAXFg3__115__jbeq_obhaqnelVpAF_12ertrk_genvgfVpRRR6__rkrpREAF_7__fgngrVpRR,%function
 b__MAXFg3__115__jbeq_obhaqnelVpAF_12ertrk_genvgfVpRRR6__rkrpREAF_7__fgngrVpRR:
 nop
 .text
-.globl b__MAXFg3__121__rzcgl_aba_bja_fgngrVpR6__rkrpREAF_7__fgngrVpRR
+.weak b__MAXFg3__121__rzcgl_aba_bja_fgngrVpR6__rkrpREAF_7__fgngrVpRR
 .type b__MAXFg3__121__rzcgl_aba_bja_fgngrVpR6__rkrpREAF_7__fgngrVpRR,%function
 b__MAXFg3__121__rzcgl_aba_bja_fgngrVpR6__rkrpREAF_7__fgngrVpRR:
 nop
 .text
-.globl b__MAFg3__124__chg_punenpgre_frdhraprVpAF_11pune_genvgfVpRRRREAF_13onfvp_bfgernzVG_G0_RRF7_CXF4_z
+.weak b__MAFg3__124__chg_punenpgre_frdhraprVpAF_11pune_genvgfVpRRRREAF_13onfvp_bfgernzVG_G0_RRF7_CXF4_z
 .type b__MAFg3__124__chg_punenpgre_frdhraprVpAF_11pune_genvgfVpRRRREAF_13onfvp_bfgernzVG_G0_RRF7_CXF4_z,%function
 b__MAFg3__124__chg_punenpgre_frdhraprVpAF_11pune_genvgfVpRRRREAF_13onfvp_bfgernzVG_G0_RRF7_CXF4_z:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_9fho_zngpuVCXpRRAF_9nyybpngbeVF4_RRR8__nccraqRzEXF4_
+.weak b__MAFg3__16irpgbeVAF_9fho_zngpuVCXpRRAF_9nyybpngbeVF4_RRR8__nccraqRzEXF4_
 .type b__MAFg3__16irpgbeVAF_9fho_zngpuVCXpRRAF_9nyybpngbeVF4_RRR8__nccraqRzEXF4_,%function
 b__MAFg3__16irpgbeVAF_9fho_zngpuVCXpRRAF_9nyybpngbeVF4_RRR8__nccraqRzEXF4_:
 nop
 .data
-.globl b__MGIAFg3__110__y_napubeVpRR
+.weak b__MGIAFg3__110__y_napubeVpRR
 .type b__MGIAFg3__110__y_napubeVpRR,%object
 b__MGIAFg3__110__y_napubeVpRR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIAFg3__120__oenpxrg_rkcerffvbaVpAF_12ertrk_genvgfVpRRRR
+.weak b__MGIAFg3__120__oenpxrg_rkcerffvbaVpAF_12ertrk_genvgfVpRRRR
 .type b__MGIAFg3__120__oenpxrg_rkcerffvbaVpAF_12ertrk_genvgfVpRRRR,%object
 b__MGIAFg3__120__oenpxrg_rkcerffvbaVpAF_12ertrk_genvgfVpRRRR:
 .space __SIZEOF_POINTER__
@@ -248,32 +248,32 @@
 b__MAX7naqebvq6SDAnzr8glcrAnzrRi:
 nop
 .text
-.globl b__MAXFg3__112ertrk_genvgfVpR20__ybbxhc_pbyyngranzrVCXpRRAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRG_FO_p
+.weak b__MAXFg3__112ertrk_genvgfVpR20__ybbxhc_pbyyngranzrVCXpRRAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRG_FO_p
 .type b__MAXFg3__112ertrk_genvgfVpR20__ybbxhc_pbyyngranzrVCXpRRAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRG_FO_p,%function
 b__MAXFg3__112ertrk_genvgfVpR20__ybbxhc_pbyyngranzrVCXpRRAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRG_FO_p:
 nop
 .text
-.globl b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR24__cnefr_pbyyngvat_flzobyVCXpRRG_F7_F7_EAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
+.weak b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR24__cnefr_pbyyngvat_flzobyVCXpRRG_F7_F7_EAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
 .type b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR24__cnefr_pbyyngvat_flzobyVCXpRRG_F7_F7_EAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR,%function
 b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR24__cnefr_pbyyngvat_flzobyVCXpRRG_F7_F7_EAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR:
 nop
 .text
-.globl b__MAFg3__114__fcyvg_ohssreVCAF_7__fgngrVpRRAF_9nyybpngbeVF3_RRR10chfu_sebagRBF3_
+.weak b__MAFg3__114__fcyvg_ohssreVCAF_7__fgngrVpRRAF_9nyybpngbeVF3_RRR10chfu_sebagRBF3_
 .type b__MAFg3__114__fcyvg_ohssreVCAF_7__fgngrVpRRAF_9nyybpngbeVF3_RRR10chfu_sebagRBF3_,%function
 b__MAFg3__114__fcyvg_ohssreVCAF_7__fgngrVpRRAF_9nyybpngbeVF3_RRR10chfu_sebagRBF3_:
 nop
 .text
-.globl b__MAFg3__17trgyvarVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRREAF_13onfvp_vfgernzVG_G0_RRF9_EAF_12onfvp_fgevatVF6_F7_G1_RRF6_
+.weak b__MAFg3__17trgyvarVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRREAF_13onfvp_vfgernzVG_G0_RRF9_EAF_12onfvp_fgevatVF6_F7_G1_RRF6_
 .type b__MAFg3__17trgyvarVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRREAF_13onfvp_vfgernzVG_G0_RRF9_EAF_12onfvp_fgevatVF6_F7_G1_RRF6_,%function
 b__MAFg3__17trgyvarVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRREAF_13onfvp_vfgernzVG_G0_RRF9_EAF_12onfvp_fgevatVF6_F7_G1_RRF6_:
 nop
 .text
-.globl b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR24__cnefr_rkgraqrq_ert_rkcVCXpRRG_F7_F7_
+.weak b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR24__cnefr_rkgraqrq_ert_rkcVCXpRRG_F7_F7_
 .type b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR24__cnefr_rkgraqrq_ert_rkcVCXpRRG_F7_F7_,%function
 b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR24__cnefr_rkgraqrq_ert_rkcVCXpRRG_F7_F7_:
 nop
 .text
-.globl b__MAFg3__116__bjaf_bar_fgngrVpRQ2Ri
+.weak b__MAFg3__116__bjaf_bar_fgngrVpRQ2Ri
 .type b__MAFg3__116__bjaf_bar_fgngrVpRQ2Ri,%function
 b__MAFg3__116__bjaf_bar_fgngrVpRQ2Ri:
 nop
@@ -303,22 +303,22 @@
 b__MAX7naqebvq6SDAnzr6fgevatRi:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_4cnveVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRF7_RRAF5_VF8_RRR21__chfu_onpx_fybj_cnguVF8_RRiBG_
+.weak b__MAFg3__16irpgbeVAF_4cnveVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRF7_RRAF5_VF8_RRR21__chfu_onpx_fybj_cnguVF8_RRiBG_
 .type b__MAFg3__16irpgbeVAF_4cnveVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRF7_RRAF5_VF8_RRR21__chfu_onpx_fybj_cnguVF8_RRiBG_,%function
 b__MAFg3__16irpgbeVAF_4cnveVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRF7_RRAF5_VF8_RRR21__chfu_onpx_fybj_cnguVF8_RRiBG_:
 nop
 .data
-.globl b__MGIAFg3__116__onpx_ers_vpnfrVpAF_12ertrk_genvgfVpRRRR
+.weak b__MGIAFg3__116__onpx_ers_vpnfrVpAF_12ertrk_genvgfVpRRRR
 .type b__MGIAFg3__116__onpx_ers_vpnfrVpAF_12ertrk_genvgfVpRRRR,%object
 b__MGIAFg3__116__onpx_ers_vpnfrVpAF_12ertrk_genvgfVpRRRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAXFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR29__zngpu_ng_fgneg_cbfvk_abfhofVAF_9nyybpngbeVAF_9fho_zngpuVCXpRRRRRRoF8_F8_EAF_13zngpu_erfhygfVF8_G_RRAF_15ertrk_pbafgnagf15zngpu_synt_glcrRo
+.weak b__MAXFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR29__zngpu_ng_fgneg_cbfvk_abfhofVAF_9nyybpngbeVAF_9fho_zngpuVCXpRRRRRRoF8_F8_EAF_13zngpu_erfhygfVF8_G_RRAF_15ertrk_pbafgnagf15zngpu_synt_glcrRo
 .type b__MAXFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR29__zngpu_ng_fgneg_cbfvk_abfhofVAF_9nyybpngbeVAF_9fho_zngpuVCXpRRRRRRoF8_F8_EAF_13zngpu_erfhygfVF8_G_RRAF_15ertrk_pbafgnagf15zngpu_synt_glcrRo,%function
 b__MAXFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR29__zngpu_ng_fgneg_cbfvk_abfhofVAF_9nyybpngbeVAF_9fho_zngpuVCXpRRRRRRoF8_F8_EAF_13zngpu_erfhygfVF8_G_RRAF_15ertrk_pbafgnagf15zngpu_synt_glcrRo:
 nop
 .text
-.globl b__MAXFg3__113__rzcgl_fgngrVpR6__rkrpREAF_7__fgngrVpRR
+.weak b__MAXFg3__113__rzcgl_fgngrVpR6__rkrpREAF_7__fgngrVpRR
 .type b__MAXFg3__113__rzcgl_fgngrVpR6__rkrpREAF_7__fgngrVpRR,%function
 b__MAXFg3__113__rzcgl_fgngrVpR6__rkrpREAF_7__fgngrVpRR:
 nop
@@ -328,7 +328,7 @@
 b__MA7naqebvq6SDAnzr12pyrneIrefvbaRCzF1_:
 nop
 .text
-.globl b__MAXFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR27__zngpu_ng_fgneg_cbfvk_fhofVAF_9nyybpngbeVAF_9fho_zngpuVCXpRRRRRRoF8_F8_EAF_13zngpu_erfhygfVF8_G_RRAF_15ertrk_pbafgnagf15zngpu_synt_glcrRo
+.weak b__MAXFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR27__zngpu_ng_fgneg_cbfvk_fhofVAF_9nyybpngbeVAF_9fho_zngpuVCXpRRRRRRoF8_F8_EAF_13zngpu_erfhygfVF8_G_RRAF_15ertrk_pbafgnagf15zngpu_synt_glcrRo
 .type b__MAXFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR27__zngpu_ng_fgneg_cbfvk_fhofVAF_9nyybpngbeVAF_9fho_zngpuVCXpRRRRRRoF8_F8_EAF_13zngpu_erfhygfVF8_G_RRAF_15ertrk_pbafgnagf15zngpu_synt_glcrRo,%function
 b__MAXFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR27__zngpu_ng_fgneg_cbfvk_fhofVAF_9nyybpngbeVAF_9fho_zngpuVCXpRRRRRRoF8_F8_EAF_13zngpu_erfhygfVF8_G_RRAF_15ertrk_pbafgnagf15zngpu_synt_glcrRo:
 nop
@@ -338,22 +338,22 @@
 b__MAX7naqebvq6SDAnzr11jvguIrefvbaRzz:
 nop
 .text
-.globl b__MAXFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR21__zngpu_ng_fgneg_rpznVAF_9nyybpngbeVAF_9fho_zngpuVCXpRRRRRRoF8_F8_EAF_13zngpu_erfhygfVF8_G_RRAF_15ertrk_pbafgnagf15zngpu_synt_glcrRo
+.weak b__MAXFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR21__zngpu_ng_fgneg_rpznVAF_9nyybpngbeVAF_9fho_zngpuVCXpRRRRRRoF8_F8_EAF_13zngpu_erfhygfVF8_G_RRAF_15ertrk_pbafgnagf15zngpu_synt_glcrRo
 .type b__MAXFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR21__zngpu_ng_fgneg_rpznVAF_9nyybpngbeVAF_9fho_zngpuVCXpRRRRRRoF8_F8_EAF_13zngpu_erfhygfVF8_G_RRAF_15ertrk_pbafgnagf15zngpu_synt_glcrRo,%function
 b__MAXFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR21__zngpu_ng_fgneg_rpznVAF_9nyybpngbeVAF_9fho_zngpuVCXpRRRRRRoF8_F8_EAF_13zngpu_erfhygfVF8_G_RRAF_15ertrk_pbafgnagf15zngpu_synt_glcrRo:
 nop
 .data
-.globl b__MGIAFg3__112__zngpu_puneVpRR
+.weak b__MGIAFg3__112__zngpu_puneVpRR
 .type b__MGIAFg3__112__zngpu_puneVpRR,%object
 b__MGIAFg3__112__zngpu_puneVpRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAXFg3__110__onpx_ersVpR6__rkrpREAF_7__fgngrVpRR
+.weak b__MAXFg3__110__onpx_ersVpR6__rkrpREAF_7__fgngrVpRR
 .type b__MAXFg3__110__onpx_ersVpR6__rkrpREAF_7__fgngrVpRR,%function
 b__MAXFg3__110__onpx_ersVpR6__rkrpREAF_7__fgngrVpRR:
 nop
 .text
-.globl b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR30__cnefr_punenpgre_pynff_rfpncrVCXpRRG_F7_F7_
+.weak b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR30__cnefr_punenpgre_pynff_rfpncrVCXpRRG_F7_F7_
 .type b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR30__cnefr_punenpgre_pynff_rfpncrVCXpRRG_F7_F7_,%function
 b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR30__cnefr_punenpgre_pynff_rfpncrVCXpRRG_F7_F7_:
 nop
@@ -363,12 +363,12 @@
 b__MAX7naqebvq6SDAnzr18trgVagresnprUjAnzrRi:
 nop
 .text
-.globl b__MAXFg3__120__oenpxrg_rkcerffvbaVpAF_12ertrk_genvgfVpRRR6__rkrpREAF_7__fgngrVpRR
+.weak b__MAXFg3__120__oenpxrg_rkcerffvbaVpAF_12ertrk_genvgfVpRRR6__rkrpREAF_7__fgngrVpRR
 .type b__MAXFg3__120__oenpxrg_rkcerffvbaVpAF_12ertrk_genvgfVpRRR6__rkrpREAF_7__fgngrVpRR,%function
 b__MAXFg3__120__oenpxrg_rkcerffvbaVpAF_12ertrk_genvgfVpRRR6__rkrpREAF_7__fgngrVpRR:
 nop
 .text
-.globl b__MAFg3__116__bjaf_bar_fgngrVpRQ0Ri
+.weak b__MAFg3__116__bjaf_bar_fgngrVpRQ0Ri
 .type b__MAFg3__116__bjaf_bar_fgngrVpRQ0Ri,%function
 b__MAFg3__116__bjaf_bar_fgngrVpRQ0Ri:
 nop
@@ -388,12 +388,12 @@
 b__MAX7naqebvq6SDAnzr9ngIrefvbaRi:
 nop
 .text
-.globl b__MAXFg3__120__zngpu_pune_pbyyngrVpAF_12ertrk_genvgfVpRRR6__rkrpREAF_7__fgngrVpRR
+.weak b__MAXFg3__120__zngpu_pune_pbyyngrVpAF_12ertrk_genvgfVpRRR6__rkrpREAF_7__fgngrVpRR
 .type b__MAXFg3__120__zngpu_pune_pbyyngrVpAF_12ertrk_genvgfVpRRR6__rkrpREAF_7__fgngrVpRR,%function
 b__MAXFg3__120__zngpu_pune_pbyyngrVpAF_12ertrk_genvgfVpRRR6__rkrpREAF_7__fgngrVpRR:
 nop
 .data
-.globl b__MGPAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_13onfvp_bfgernzVpF2_RR
+.weak b__MGPAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_13onfvp_bfgernzVpF2_RR
 .type b__MGPAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_13onfvp_bfgernzVpF2_RR,%object
 b__MGPAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_13onfvp_bfgernzVpF2_RR:
 .space __SIZEOF_POINTER__
@@ -403,22 +403,22 @@
 b__MA7naqebvq6SDAnzr10frgIrefvbaREXAFg3__112onfvp_fgevatVpAF1_11pune_genvgfVpRRAF1_9nyybpngbeVpRRRR:
 nop
 .text
-.globl b__MAXFg3__16__ybbcVpR12__rkrp_fcyvgRoEAF_7__fgngrVpRR
+.weak b__MAXFg3__16__ybbcVpR12__rkrp_fcyvgRoEAF_7__fgngrVpRR
 .type b__MAXFg3__16__ybbcVpR12__rkrp_fcyvgRoEAF_7__fgngrVpRR,%function
 b__MAXFg3__16__ybbcVpR12__rkrp_fcyvgRoEAF_7__fgngrVpRR:
 nop
 .text
-.globl b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR19__cnefr_nygreangvirVCXpRRG_F7_F7_
+.weak b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR19__cnefr_nygreangvirVCXpRRG_F7_F7_
 .type b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR19__cnefr_nygreangvirVCXpRRG_F7_F7_,%function
 b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR19__cnefr_nygreangvirVCXpRRG_F7_F7_:
 nop
 .text
-.globl b__MAFg3__114__fcyvg_ohssreVCAF_7__fgngrVpRREAF_9nyybpngbeVF3_RRR9chfu_onpxRBF3_
+.weak b__MAFg3__114__fcyvg_ohssreVCAF_7__fgngrVpRREAF_9nyybpngbeVF3_RRR9chfu_onpxRBF3_
 .type b__MAFg3__114__fcyvg_ohssreVCAF_7__fgngrVpRREAF_9nyybpngbeVF3_RRR9chfu_onpxRBF3_,%function
 b__MAFg3__114__fcyvg_ohssreVCAF_7__fgngrVpRREAF_9nyybpngbeVF3_RRR9chfu_onpxRBF3_:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_4cnveVzCXpRRAF_9nyybpngbeVF4_RRR8__nccraqRz
+.weak b__MAFg3__16irpgbeVAF_4cnveVzCXpRRAF_9nyybpngbeVF4_RRR8__nccraqRz
 .type b__MAFg3__16irpgbeVAF_4cnveVzCXpRRAF_9nyybpngbeVF4_RRR8__nccraqRz,%function
 b__MAFg3__16irpgbeVAF_4cnveVzCXpRRAF_9nyybpngbeVF4_RRR8__nccraqRz:
 nop
@@ -428,27 +428,27 @@
 b__MA7naqebvq10SdVafgnapr5frgGbREXAFg3__112onfvp_fgevatVpAF1_11pune_genvgfVpRRAF1_9nyybpngbeVpRRRR:
 nop
 .text
-.globl b__MAXFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR8__frnepuVAF_9nyybpngbeVAF_9fho_zngpuVCXpRRRRRRoF8_F8_EAF_13zngpu_erfhygfVF8_G_RRAF_15ertrk_pbafgnagf15zngpu_synt_glcrR
+.weak b__MAXFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR8__frnepuVAF_9nyybpngbeVAF_9fho_zngpuVCXpRRRRRRoF8_F8_EAF_13zngpu_erfhygfVF8_G_RRAF_15ertrk_pbafgnagf15zngpu_synt_glcrR
 .type b__MAXFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR8__frnepuVAF_9nyybpngbeVAF_9fho_zngpuVCXpRRRRRRoF8_F8_EAF_13zngpu_erfhygfVF8_G_RRAF_15ertrk_pbafgnagf15zngpu_synt_glcrR,%function
 b__MAXFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR8__frnepuVAF_9nyybpngbeVAF_9fho_zngpuVCXpRRRRRRoF8_F8_EAF_13zngpu_erfhygfVF8_G_RRAF_15ertrk_pbafgnagf15zngpu_synt_glcrR:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_4cnveVppRRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVF2_RRiBG_
+.weak b__MAFg3__16irpgbeVAF_4cnveVppRRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVF2_RRiBG_
 .type b__MAFg3__16irpgbeVAF_4cnveVppRRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVF2_RRiBG_,%function
 b__MAFg3__16irpgbeVAF_4cnveVppRRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVF2_RRiBG_:
 nop
 .text
-.globl b__MAFg3__16irpgbeVpAF_9nyybpngbeVpRRR21__chfu_onpx_fybj_cnguVpRRiBG_
+.weak b__MAFg3__16irpgbeVpAF_9nyybpngbeVpRRR21__chfu_onpx_fybj_cnguVpRRiBG_
 .type b__MAFg3__16irpgbeVpAF_9nyybpngbeVpRRR21__chfu_onpx_fybj_cnguVpRRiBG_,%function
 b__MAFg3__16irpgbeVpAF_9nyybpngbeVpRRR21__chfu_onpx_fybj_cnguVpRRiBG_:
 nop
 .data
-.globl b__MGIAFg3__118__onpx_ers_pbyyngrVpAF_12ertrk_genvgfVpRRRR
+.weak b__MGIAFg3__118__onpx_ers_pbyyngrVpAF_12ertrk_genvgfVpRRRR
 .type b__MGIAFg3__118__onpx_ers_pbyyngrVpAF_12ertrk_genvgfVpRRRR,%object
 b__MGIAFg3__118__onpx_ers_pbyyngrVpAF_12ertrk_genvgfVpRRRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR8biresybjRv
+.weak b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR8biresybjRv
 .type b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR8biresybjRv,%function
 b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR8biresybjRv:
 nop
@@ -473,17 +473,17 @@
 b__MAX7naqebvq6SDAnzr9vaCnpxntrREXAFg3__112onfvp_fgevatVpAF1_11pune_genvgfVpRRAF1_9nyybpngbeVpRRRR:
 nop
 .text
-.globl b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9conpxsnvyRv
+.weak b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9conpxsnvyRv
 .type b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9conpxsnvyRv,%function
 b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9conpxsnvyRv:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF6_RRR21__chfu_onpx_fybj_cnguVEXF6_RRiBG_
+.weak b__MAFg3__16irpgbeVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF6_RRR21__chfu_onpx_fybj_cnguVEXF6_RRiBG_
 .type b__MAFg3__16irpgbeVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF6_RRR21__chfu_onpx_fybj_cnguVEXF6_RRiBG_,%function
 b__MAFg3__16irpgbeVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF6_RRR21__chfu_onpx_fybj_cnguVEXF6_RRiBG_:
 nop
 .data
-.globl b__MGIAFg3__110__onpx_ersVpRR
+.weak b__MGIAFg3__110__onpx_ersVpRR
 .type b__MGIAFg3__110__onpx_ersVpRR,%object
 b__MGIAFg3__110__onpx_ersVpRR:
 .space __SIZEOF_POINTER__
@@ -493,17 +493,17 @@
 b__MAX7naqebvq10SdVafgnapr11unfVafgnaprRi:
 nop
 .text
-.globl b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR13__cnefr_rtercVCXpRRG_F7_F7_
+.weak b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR13__cnefr_rtercVCXpRRG_F7_F7_
 .type b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR13__cnefr_rtercVCXpRRG_F7_F7_,%function
 b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR13__cnefr_rtercVCXpRRG_F7_F7_:
 nop
 .text
-.globl b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR22__cnefr_RER_rkcerffvbaVCXpRRG_F7_F7_
+.weak b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR22__cnefr_RER_rkcerffvbaVCXpRRG_F7_F7_
 .type b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR22__cnefr_RER_rkcerffvbaVCXpRRG_F7_F7_,%function
 b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR22__cnefr_RER_rkcerffvbaVCXpRRG_F7_F7_:
 nop
 .text
-.globl b__MAFg3__114__fcyvg_ohssreVCAF_7__fgngrVpRRAF_9nyybpngbeVF3_RRR9chfu_onpxRBF3_
+.weak b__MAFg3__114__fcyvg_ohssreVCAF_7__fgngrVpRRAF_9nyybpngbeVF3_RRR9chfu_onpxRBF3_
 .type b__MAFg3__114__fcyvg_ohssreVCAF_7__fgngrVpRRAF_9nyybpngbeVF3_RRR9chfu_onpxRBF3_,%function
 b__MAFg3__114__fcyvg_ohssreVCAF_7__fgngrVpRRAF_9nyybpngbeVF3_RRR9chfu_onpxRBF3_:
 nop
@@ -513,27 +513,27 @@
 b__MA7naqebvq6SDAnzr5cnefrREXAFg3__112onfvp_fgevatVpAF1_11pune_genvgfVpRRAF1_9nyybpngbeVpRRRRCF0_:
 nop
 .text
-.globl b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR16__chfu_ybbxnurnqREXF3_ow
+.weak b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR16__chfu_ybbxnurnqREXF3_ow
 .type b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR16__chfu_ybbxnurnqREXF3_ow,%function
 b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR16__chfu_ybbxnurnqREXF3_ow:
 nop
 .data
-.globl b__MGIAFg3__111__nygreangrVpRR
+.weak b__MGIAFg3__111__nygreangrVpRR
 .type b__MGIAFg3__111__nygreangrVpRR,%object
 b__MGIAFg3__111__nygreangrVpRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAXFg3__118__onpx_ers_pbyyngrVpAF_12ertrk_genvgfVpRRR6__rkrpREAF_7__fgngrVpRR
+.weak b__MAXFg3__118__onpx_ers_pbyyngrVpAF_12ertrk_genvgfVpRRR6__rkrpREAF_7__fgngrVpRR
 .type b__MAXFg3__118__onpx_ers_pbyyngrVpAF_12ertrk_genvgfVpRRR6__rkrpREAF_7__fgngrVpRR,%function
 b__MAXFg3__118__onpx_ers_pbyyngrVpAF_12ertrk_genvgfVpRRR6__rkrpREAF_7__fgngrVpRR:
 nop
 .text
-.globl b__MAXFg3__126__raq_znexrq_fhorkcerffvbaVpR6__rkrpREAF_7__fgngrVpRR
+.weak b__MAXFg3__126__raq_znexrq_fhorkcerffvbaVpR6__rkrpREAF_7__fgngrVpRR
 .type b__MAXFg3__126__raq_znexrq_fhorkcerffvbaVpR6__rkrpREAF_7__fgngrVpRR,%function
 b__MAXFg3__126__raq_znexrq_fhorkcerffvbaVpR6__rkrpREAF_7__fgngrVpRR:
 nop
 .data
-.globl b__MGIAFg3__117__ercrng_bar_ybbcVpRR
+.weak b__MGIAFg3__117__ercrng_bar_ybbcVpRR
 .type b__MGIAFg3__117__ercrng_bar_ybbcVpRR,%object
 b__MGIAFg3__117__ercrng_bar_ybbcVpRR:
 .space __SIZEOF_POINTER__
@@ -558,17 +558,17 @@
 b__MAX7naqebvq6SDAnzr8raqfJvguREXF0_:
 nop
 .text
-.globl b__MAXFg3__111__nygreangrVpR12__rkrp_fcyvgRoEAF_7__fgngrVpRR
+.weak b__MAXFg3__111__nygreangrVpR12__rkrp_fcyvgRoEAF_7__fgngrVpRR
 .type b__MAXFg3__111__nygreangrVpR12__rkrp_fcyvgRoEAF_7__fgngrVpRR,%function
 b__MAXFg3__111__nygreangrVpR12__rkrp_fcyvgRoEAF_7__fgngrVpRR:
 nop
 .text
-.globl b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR22__cnefr_ER_qhcy_flzobyVCXpRRG_F7_F7_CAF_16__bjaf_bar_fgngrVpRRww
+.weak b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR22__cnefr_ER_qhcy_flzobyVCXpRRG_F7_F7_CAF_16__bjaf_bar_fgngrVpRRww
 .type b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR22__cnefr_ER_qhcy_flzobyVCXpRRG_F7_F7_CAF_16__bjaf_bar_fgngrVpRRww,%function
 b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR22__cnefr_ER_qhcy_flzobyVCXpRRG_F7_F7_CAF_16__bjaf_bar_fgngrVpRRww:
 nop
 .text
-.globl b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR25__cnefr_rdhvinyrapr_pynffVCXpRRG_F7_F7_CAF_20__oenpxrg_rkcerffvbaVpF2_RR
+.weak b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR25__cnefr_rdhvinyrapr_pynffVCXpRRG_F7_F7_CAF_20__oenpxrg_rkcerffvbaVpF2_RR
 .type b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR25__cnefr_rdhvinyrapr_pynffVCXpRRG_F7_F7_CAF_20__oenpxrg_rkcerffvbaVpF2_RR,%function
 b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR25__cnefr_rdhvinyrapr_pynffVCXpRRG_F7_F7_CAF_20__oenpxrg_rkcerffvbaVpF2_RR:
 nop
@@ -578,17 +578,17 @@
 b__MAX7naqebvq6SDAnzr23trgVagresnprNqncgreAnzrRi:
 nop
 .text
-.globl b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR20__cnefr_pynff_rfpncrVCXpRRG_F7_F7_EAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRCAF_20__oenpxrg_rkcerffvbaVpF2_RR
+.weak b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR20__cnefr_pynff_rfpncrVCXpRRG_F7_F7_EAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRCAF_20__oenpxrg_rkcerffvbaVpF2_RR
 .type b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR20__cnefr_pynff_rfpncrVCXpRRG_F7_F7_EAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRCAF_20__oenpxrg_rkcerffvbaVpF2_RR,%function
 b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR20__cnefr_pynff_rfpncrVCXpRRG_F7_F7_EAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRCAF_20__oenpxrg_rkcerffvbaVpF2_RR:
 nop
 .text
-.globl b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR23__cnefr_punenpgre_pynffVCXpRRG_F7_F7_CAF_20__oenpxrg_rkcerffvbaVpF2_RR
+.weak b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR23__cnefr_punenpgre_pynffVCXpRRG_F7_F7_CAF_20__oenpxrg_rkcerffvbaVpF2_RR
 .type b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR23__cnefr_punenpgre_pynffVCXpRRG_F7_F7_CAF_20__oenpxrg_rkcerffvbaVpF2_RR,%function
 b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR23__cnefr_punenpgre_pynffVCXpRRG_F7_F7_CAF_20__oenpxrg_rkcerffvbaVpF2_RR:
 nop
 .data
-.globl b__MGIAFg3__110__e_napubeVpRR
+.weak b__MGIAFg3__110__e_napubeVpRR
 .type b__MGIAFg3__110__e_napubeVpRR,%object
 b__MGIAFg3__110__e_napubeVpRR:
 .space __SIZEOF_POINTER__
@@ -613,7 +613,7 @@
 b__MAX7naqebvq6SDAnzrygREXF0_:
 nop
 .text
-.globl b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR32__cnefr_bar_pune_be_pbyy_ryrz_ERVCXpRRG_F7_F7_
+.weak b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR32__cnefr_bar_pune_be_pbyy_ryrz_ERVCXpRRG_F7_F7_
 .type b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR32__cnefr_bar_pune_be_pbyy_ryrz_ERVCXpRRG_F7_F7_,%function
 b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR32__cnefr_bar_pune_be_pbyy_ryrz_ERVCXpRRG_F7_F7_:
 nop
@@ -628,7 +628,7 @@
 b__MAX7naqebvq6SDAnzr12pccYbpnyAnzrRi:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF6_RRR6vafregVAF_11__jenc_vgreVCF6_RRRRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF6_AF_15vgrengbe_genvgfVFR_R9ersreraprRRR5inyhrRFP_R4glcrRAFN_VCXF6_RRFR_FR_
+.weak b__MAFg3__16irpgbeVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF6_RRR6vafregVAF_11__jenc_vgreVCF6_RRRRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF6_AF_15vgrengbe_genvgfVFR_R9ersreraprRRR5inyhrRFP_R4glcrRAFN_VCXF6_RRFR_FR_
 .type b__MAFg3__16irpgbeVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF6_RRR6vafregVAF_11__jenc_vgreVCF6_RRRRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF6_AF_15vgrengbe_genvgfVFR_R9ersreraprRRR5inyhrRFP_R4glcrRAFN_VCXF6_RRFR_FR_,%function
 b__MAFg3__16irpgbeVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF6_RRR6vafregVAF_11__jenc_vgreVCF6_RRRRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF6_AF_15vgrengbe_genvgfVFR_R9ersreraprRRR5inyhrRFP_R4glcrRAFN_VCXF6_RRFR_FR_:
 nop
@@ -653,12 +653,12 @@
 b__MAX7naqebvq6SDAnzr9gbxraAnzrRi:
 nop
 .text
-.globl b__MAFg3__16irpgbeVpAF_9nyybpngbeVpRRR21__chfu_onpx_fybj_cnguVEXpRRiBG_
+.weak b__MAFg3__16irpgbeVpAF_9nyybpngbeVpRRR21__chfu_onpx_fybj_cnguVEXpRRiBG_
 .type b__MAFg3__16irpgbeVpAF_9nyybpngbeVpRRR21__chfu_onpx_fybj_cnguVEXpRRiBG_,%function
 b__MAFg3__16irpgbeVpAF_9nyybpngbeVpRRR21__chfu_onpx_fybj_cnguVEXpRRiBG_:
 nop
 .data
-.globl b__MGIAFg3__16__ybbcVpRR
+.weak b__MGIAFg3__16__ybbcVpRR
 .type b__MGIAFg3__16__ybbcVpRR,%object
 b__MGIAFg3__16__ybbcVpRR:
 .space __SIZEOF_POINTER__
@@ -668,27 +668,27 @@
 b__MA7naqebvq10SdVafgnapr5frgGbREXAF_6SDAnzrREXAFg3__112onfvp_fgevatVpAF4_11pune_genvgfVpRRAF4_9nyybpngbeVpRRRR:
 nop
 .text
-.globl b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR15__chfu_onpx_ersRv
+.weak b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR15__chfu_onpx_ersRv
 .type b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR15__chfu_onpx_ersRv,%function
 b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR15__chfu_onpx_ersRv:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF6_RRR21__chfu_onpx_fybj_cnguVF6_RRiBG_
+.weak b__MAFg3__16irpgbeVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF6_RRR21__chfu_onpx_fybj_cnguVF6_RRiBG_
 .type b__MAFg3__16irpgbeVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF6_RRR21__chfu_onpx_fybj_cnguVF6_RRiBG_,%function
 b__MAFg3__16irpgbeVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF6_RRR21__chfu_onpx_fybj_cnguVF6_RRiBG_:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_4cnveVzCXpRRAF_9nyybpngbeVF4_RRR6nffvtaVCF4_RRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF4_AF_15vgrengbe_genvgfVFO_R9ersreraprRRR5inyhrRiR4glcrRFO_FO_
+.weak b__MAFg3__16irpgbeVAF_4cnveVzCXpRRAF_9nyybpngbeVF4_RRR6nffvtaVCF4_RRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF4_AF_15vgrengbe_genvgfVFO_R9ersreraprRRR5inyhrRiR4glcrRFO_FO_
 .type b__MAFg3__16irpgbeVAF_4cnveVzCXpRRAF_9nyybpngbeVF4_RRR6nffvtaVCF4_RRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF4_AF_15vgrengbe_genvgfVFO_R9ersreraprRRR5inyhrRiR4glcrRFO_FO_,%function
 b__MAFg3__16irpgbeVAF_4cnveVzCXpRRAF_9nyybpngbeVF4_RRR6nffvtaVCF4_RRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF4_AF_15vgrengbe_genvgfVFO_R9ersreraprRRR5inyhrRiR4glcrRFO_FO_:
 nop
 .data
-.globl b__MGIAFg3__120__zngpu_pune_pbyyngrVpAF_12ertrk_genvgfVpRRRR
+.weak b__MGIAFg3__120__zngpu_pune_pbyyngrVpAF_12ertrk_genvgfVpRRRR
 .type b__MGIAFg3__120__zngpu_pune_pbyyngrVpAF_12ertrk_genvgfVpRRRR,%object
 b__MGIAFg3__120__zngpu_pune_pbyyngrVpAF_12ertrk_genvgfVpRRRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR23__cnefr_RER_qhcy_flzobyVCXpRRG_F7_F7_CAF_16__bjaf_bar_fgngrVpRRww
+.weak b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR23__cnefr_RER_qhcy_flzobyVCXpRRG_F7_F7_CAF_16__bjaf_bar_fgngrVpRRww
 .type b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR23__cnefr_RER_qhcy_flzobyVCXpRRG_F7_F7_CAF_16__bjaf_bar_fgngrVpRRww,%function
 b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR23__cnefr_RER_qhcy_flzobyVCXpRRG_F7_F7_CAF_16__bjaf_bar_fgngrVpRRww:
 nop
@@ -703,12 +703,12 @@
 b__MA7naqebvq6SDAnzr5frgGbREXAFg3__112onfvp_fgevatVpAF1_11pune_genvgfVpRRAF1_9nyybpngbeVpRRRR:
 nop
 .data
-.globl b__MGGAFg3__119onfvp_vfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
+.weak b__MGGAFg3__119onfvp_vfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
 .type b__MGGAFg3__119onfvp_vfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR,%object
 b__MGGAFg3__119onfvp_vfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIAFg3__117__bjaf_gjb_fgngrfVpRR
+.weak b__MGIAFg3__117__bjaf_gjb_fgngrfVpRR
 .type b__MGIAFg3__117__bjaf_gjb_fgngrfVpRR,%object
 b__MGIAFg3__117__bjaf_gjb_fgngrfVpRR:
 .space __SIZEOF_POINTER__
@@ -723,17 +723,17 @@
 b__MAX7naqebvq6SDAnzr9inyhrAnzrRi:
 nop
 .text
-.globl b__MAXFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR3fgeRi
+.weak b__MAXFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR3fgeRi
 .type b__MAXFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR3fgeRi,%function
 b__MAXFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR3fgeRi:
 nop
 .text
-.globl b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR22__cnefr_qrpvzny_rfpncrVCXpRRG_F7_F7_
+.weak b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR22__cnefr_qrpvzny_rfpncrVCXpRRG_F7_F7_
 .type b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR22__cnefr_qrpvzny_rfpncrVCXpRRG_F7_F7_,%function
 b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR22__cnefr_qrpvzny_rfpncrVCXpRRG_F7_F7_:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_9fho_zngpuVCXpRRAF_9nyybpngbeVF4_RRR6nffvtaRzEXF4_
+.weak b__MAFg3__16irpgbeVAF_9fho_zngpuVCXpRRAF_9nyybpngbeVF4_RRR6nffvtaRzEXF4_
 .type b__MAFg3__16irpgbeVAF_9fho_zngpuVCXpRRAF_9nyybpngbeVF4_RRR6nffvtaRzEXF4_,%function
 b__MAFg3__16irpgbeVAF_9fho_zngpuVCXpRRAF_9nyybpngbeVF4_RRR6nffvtaRzEXF4_:
 nop
@@ -748,17 +748,17 @@
 b__MAX7naqebvq6SDAnzr16fnavgvmrqIrefvbaRi:
 nop
 .text
-.globl b__MAXFg3__112ertrk_genvgfVpR18__ybbxhc_pynffanzrVCXpRRgG_F5_op
+.weak b__MAXFg3__112ertrk_genvgfVpR18__ybbxhc_pynffanzrVCXpRRgG_F5_op
 .type b__MAXFg3__112ertrk_genvgfVpR18__ybbxhc_pynffanzrVCXpRRgG_F5_op,%function
 b__MAXFg3__112ertrk_genvgfVpR18__ybbxhc_pynffanzrVCXpRRgG_F5_op:
 nop
 .text
-.globl b__MAFg3__117__bjaf_gjb_fgngrfVpRQ2Ri
+.weak b__MAFg3__117__bjaf_gjb_fgngrfVpRQ2Ri
 .type b__MAFg3__117__bjaf_gjb_fgngrfVpRQ2Ri,%function
 b__MAFg3__117__bjaf_gjb_fgngrfVpRQ2Ri:
 nop
 .data
-.globl b__MGIAFg3__119onfvp_vfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
+.weak b__MGIAFg3__119onfvp_vfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
 .type b__MGIAFg3__119onfvp_vfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR,%object
 b__MGIAFg3__119onfvp_vfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR:
 .space __SIZEOF_POINTER__
@@ -778,17 +778,17 @@
 b__MA7naqebvq6SDAnzr5pyrneRi:
 nop
 .text
-.globl b__MAXFg3__111__zngpu_nalVpR6__rkrpREAF_7__fgngrVpRR
+.weak b__MAXFg3__111__zngpu_nalVpR6__rkrpREAF_7__fgngrVpRR
 .type b__MAXFg3__111__zngpu_nalVpR6__rkrpREAF_7__fgngrVpRR,%function
 b__MAXFg3__111__zngpu_nalVpR6__rkrpREAF_7__fgngrVpRR:
 nop
 .data
-.globl b__MGIAFg3__120__funerq_cge_cbvagreVCAF_13__rzcgl_fgngrVpRRAF_14qrsnhyg_qryrgrVF2_RRAF_9nyybpngbeVF2_RRRR
+.weak b__MGIAFg3__120__funerq_cge_cbvagreVCAF_13__rzcgl_fgngrVpRRAF_14qrsnhyg_qryrgrVF2_RRAF_9nyybpngbeVF2_RRRR
 .type b__MGIAFg3__120__funerq_cge_cbvagreVCAF_13__rzcgl_fgngrVpRRAF_14qrsnhyg_qryrgrVF2_RRAF_9nyybpngbeVF2_RRRR,%object
 b__MGIAFg3__120__funerq_cge_cbvagreVCAF_13__rzcgl_fgngrVpRRAF_14qrsnhyg_qryrgrVF2_RRAF_9nyybpngbeVF2_RRRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq4onfr9CnefrHvagVzRRoCXpCG_F4_o
+.weak b__MA7naqebvq4onfr9CnefrHvagVzRRoCXpCG_F4_o
 .type b__MA7naqebvq4onfr9CnefrHvagVzRRoCXpCG_F4_o,%function
 b__MA7naqebvq4onfr9CnefrHvagVzRRoCXpCG_F4_o:
 nop
@@ -798,22 +798,22 @@
 b__MAX7naqebvq6SDAnzr20trgVagresnprFghoAnzrRi:
 nop
 .text
-.globl b__MAXFg3__112ertrk_genvgfVpR19__genafsbez_cevznelVAF_11__jenc_vgreVCpRRRRAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRG_FP_p
+.weak b__MAXFg3__112ertrk_genvgfVpR19__genafsbez_cevznelVAF_11__jenc_vgreVCpRRRRAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRG_FP_p
 .type b__MAXFg3__112ertrk_genvgfVpR19__genafsbez_cevznelVAF_11__jenc_vgreVCpRRRRAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRG_FP_p,%function
 b__MAXFg3__112ertrk_genvgfVpR19__genafsbez_cevznelVAF_11__jenc_vgreVCpRRRRAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRG_FP_p:
 nop
 .text
-.globl b__MAFg3__15qrdhrVAF_7__fgngrVpRRAF_9nyybpngbeVF2_RRR19__nqq_onpx_pncnpvglRi
+.weak b__MAFg3__15qrdhrVAF_7__fgngrVpRRAF_9nyybpngbeVF2_RRR19__nqq_onpx_pncnpvglRi
 .type b__MAFg3__15qrdhrVAF_7__fgngrVpRRAF_9nyybpngbeVF2_RRR19__nqq_onpx_pncnpvglRi,%function
 b__MAFg3__15qrdhrVAF_7__fgngrVpRRAF_9nyybpngbeVF2_RRR19__nqq_onpx_pncnpvglRi:
 nop
 .text
-.globl b__MAFg3__15qrdhrVAF_7__fgngrVpRRAF_9nyybpngbeVF2_RRR20__nqq_sebag_pncnpvglRi
+.weak b__MAFg3__15qrdhrVAF_7__fgngrVpRRAF_9nyybpngbeVF2_RRR20__nqq_sebag_pncnpvglRi
 .type b__MAFg3__15qrdhrVAF_7__fgngrVpRRAF_9nyybpngbeVF2_RRR20__nqq_sebag_pncnpvglRi,%function
 b__MAFg3__15qrdhrVAF_7__fgngrVpRRAF_9nyybpngbeVF2_RRR20__nqq_sebag_pncnpvglRi:
 nop
 .text
-.globl b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR20__cnefr_BEQ_PUNE_RERVCXpRRG_F7_F7_
+.weak b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR20__cnefr_BEQ_PUNE_RERVCXpRRG_F7_F7_
 .type b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR20__cnefr_BEQ_PUNE_RERVCXpRRG_F7_F7_,%function
 b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR20__cnefr_BEQ_PUNE_RERVCXpRRG_F7_F7_:
 nop
@@ -823,7 +823,7 @@
 b__MAX7naqebvq6SDAnzr29trgVagresnprCnffguebhtuSdAnzrRi:
 nop
 .text
-.globl b__MAFg3__1yfVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRREAF_13onfvp_bfgernzVG_G0_RRF9_EXAF_12onfvp_fgevatVF6_F7_G1_RR
+.weak b__MAFg3__1yfVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRREAF_13onfvp_bfgernzVG_G0_RRF9_EXAF_12onfvp_fgevatVF6_F7_G1_RR
 .type b__MAFg3__1yfVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRREAF_13onfvp_bfgernzVG_G0_RRF9_EXAF_12onfvp_fgevatVF6_F7_G1_RR,%function
 b__MAFg3__1yfVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRREAF_13onfvp_bfgernzVG_G0_RRF9_EXAF_12onfvp_fgevatVF6_F7_G1_RR:
 nop
@@ -838,17 +838,17 @@
 b__MAX7naqebvq6SDAnzr7irefvbaRi:
 nop
 .text
-.globl b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR18__cnefr_njx_rfpncrVCXpRRG_F7_F7_CAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
+.weak b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR18__cnefr_njx_rfpncrVCXpRRG_F7_F7_CAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
 .type b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR18__cnefr_njx_rfpncrVCXpRRG_F7_F7_CAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR,%function
 b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR18__cnefr_njx_rfpncrVCXpRRG_F7_F7_CAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR:
 nop
 .text
-.globl b__MAFg3__112__qrdhr_onfrVAF_7__fgngrVpRRAF_9nyybpngbeVF2_RRR5pyrneRi
+.weak b__MAFg3__112__qrdhr_onfrVAF_7__fgngrVpRRAF_9nyybpngbeVF2_RRR5pyrneRi
 .type b__MAFg3__112__qrdhr_onfrVAF_7__fgngrVpRRAF_9nyybpngbeVF2_RRR5pyrneRi,%function
 b__MAFg3__112__qrdhr_onfrVAF_7__fgngrVpRRAF_9nyybpngbeVF2_RRR5pyrneRi:
 nop
 .text
-.globl b__MAFg3__117__bjaf_gjb_fgngrfVpRQ0Ri
+.weak b__MAFg3__117__bjaf_gjb_fgngrfVpRQ0Ri
 .type b__MAFg3__117__bjaf_gjb_fgngrfVpRQ0Ri,%function
 b__MAFg3__117__bjaf_gjb_fgngrfVpRQ0Ri:
 nop
@@ -858,27 +858,27 @@
 b__MA7naqebvq12tVOnfrSdAnzrR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR12__cnefr_grezVCXpRRG_F7_F7_
+.weak b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR12__cnefr_grezVCXpRRG_F7_F7_
 .type b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR12__cnefr_grezVCXpRRG_F7_F7_,%function
 b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR12__cnefr_grezVCXpRRG_F7_F7_:
 nop
 .text
-.globl b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9haqresybjRi
+.weak b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9haqresybjRi
 .type b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9haqresybjRi,%function
 b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9haqresybjRi:
 nop
 .text
-.globl b__MAFg3__120__funerq_cge_cbvagreVCAF_13__rzcgl_fgngrVpRRAF_14qrsnhyg_qryrgrVF2_RRAF_9nyybpngbeVF2_RRR21__ba_mreb_funerq_jrnxRi
+.weak b__MAFg3__120__funerq_cge_cbvagreVCAF_13__rzcgl_fgngrVpRRAF_14qrsnhyg_qryrgrVF2_RRAF_9nyybpngbeVF2_RRR21__ba_mreb_funerq_jrnxRi
 .type b__MAFg3__120__funerq_cge_cbvagreVCAF_13__rzcgl_fgngrVpRRAF_14qrsnhyg_qryrgrVF2_RRAF_9nyybpngbeVF2_RRR21__ba_mreb_funerq_jrnxRi,%function
 b__MAFg3__120__funerq_cge_cbvagreVCAF_13__rzcgl_fgngrVpRRAF_14qrsnhyg_qryrgrVF2_RRAF_9nyybpngbeVF2_RRR21__ba_mreb_funerq_jrnxRi:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_9fho_zngpuVCXpRRAF_9nyybpngbeVF4_RRRP2REXF7_
+.weak b__MAFg3__16irpgbeVAF_9fho_zngpuVCXpRRAF_9nyybpngbeVF4_RRRP2REXF7_
 .type b__MAFg3__16irpgbeVAF_9fho_zngpuVCXpRRAF_9nyybpngbeVF4_RRRP2REXF7_,%function
 b__MAFg3__16irpgbeVAF_9fho_zngpuVCXpRRAF_9nyybpngbeVF4_RRRP2REXF7_:
 nop
 .data
-.globl b__MGIAFg3__123__zngpu_nal_ohg_arjyvarVpRR
+.weak b__MGIAFg3__123__zngpu_nal_ohg_arjyvarVpRR
 .type b__MGIAFg3__123__zngpu_nal_ohg_arjyvarVpRR,%object
 b__MGIAFg3__123__zngpu_nal_ohg_arjyvarVpRR:
 .space __SIZEOF_POINTER__
@@ -888,17 +888,17 @@
 b__MA7naqebvq6SDAnzrP2REXAFg3__112onfvp_fgevatVpAF1_11pune_genvgfVpRRAF1_9nyybpngbeVpRRRRF9_F9_F9_:
 nop
 .text
-.globl b__MAXFg3__110__e_napubeVpR6__rkrpREAF_7__fgngrVpRR
+.weak b__MAXFg3__110__e_napubeVpR6__rkrpREAF_7__fgngrVpRR
 .type b__MAXFg3__110__e_napubeVpR6__rkrpREAF_7__fgngrVpRR,%function
 b__MAXFg3__110__e_napubeVpR6__rkrpREAF_7__fgngrVpRR:
 nop
 .text
-.globl b__MAXFg3__112__zngpu_puneVpR6__rkrpREAF_7__fgngrVpRR
+.weak b__MAXFg3__112__zngpu_puneVpR6__rkrpREAF_7__fgngrVpRR
 .type b__MAXFg3__112__zngpu_puneVpR6__rkrpREAF_7__fgngrVpRR,%function
 b__MAXFg3__112__zngpu_puneVpR6__rkrpREAF_7__fgngrVpRR:
 nop
 .text
-.globl b__MAXFg3__112ertrk_genvgfVpR19__genafsbez_cevznelVCpRRAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRG_FN_p
+.weak b__MAXFg3__112ertrk_genvgfVpR19__genafsbez_cevznelVCpRRAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRG_FN_p
 .type b__MAXFg3__112ertrk_genvgfVpR19__genafsbez_cevznelVCpRRAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRG_FN_p,%function
 b__MAXFg3__112ertrk_genvgfVpR19__genafsbez_cevznelVCpRRAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRG_FN_p:
 nop
@@ -908,12 +908,12 @@
 b__MAX7naqebvq6SDAnzr16vfInyvqInyhrAnzrRi:
 nop
 .text
-.globl b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR21__cnefr_onfvp_ert_rkcVCXpRRG_F7_F7_
+.weak b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR21__cnefr_onfvp_ert_rkcVCXpRRG_F7_F7_
 .type b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR21__cnefr_onfvp_ert_rkcVCXpRRG_F7_F7_,%function
 b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR21__cnefr_onfvp_ert_rkcVCXpRRG_F7_F7_:
 nop
 .data
-.globl b__MGIAFg3__115__jbeq_obhaqnelVpAF_12ertrk_genvgfVpRRRR
+.weak b__MGIAFg3__115__jbeq_obhaqnelVpAF_12ertrk_genvgfVpRRRR
 .type b__MGIAFg3__115__jbeq_obhaqnelVpAF_12ertrk_genvgfVpRRRR,%object
 b__MGIAFg3__115__jbeq_obhaqnelVpAF_12ertrk_genvgfVpRRRR:
 .space __SIZEOF_POINTER__
@@ -953,22 +953,22 @@
 b__MAX7naqebvq6SDAnzr8wninAnzrRi:
 nop
 .text
-.globl b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR11__chfu_puneRp
+.weak b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR11__chfu_puneRp
 .type b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR11__chfu_puneRp,%function
 b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR11__chfu_puneRp:
 nop
 .text
-.globl b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR18__cnefr_abaqhcy_ERVCXpRRG_F7_F7_
+.weak b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR18__cnefr_abaqhcy_ERVCXpRRG_F7_F7_
 .type b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR18__cnefr_abaqhcy_ERVCXpRRG_F7_F7_,%function
 b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR18__cnefr_abaqhcy_ERVCXpRRG_F7_F7_:
 nop
 .text
-.globl b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR23__cnefr_DHBGRQ_PUNE_RERVCXpRRG_F7_F7_
+.weak b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR23__cnefr_DHBGRQ_PUNE_RERVCXpRRG_F7_F7_
 .type b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR23__cnefr_DHBGRQ_PUNE_RERVCXpRRG_F7_F7_,%function
 b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR23__cnefr_DHBGRQ_PUNE_RERVCXpRRG_F7_F7_:
 nop
 .text
-.globl b__MAFg3__114__fcyvg_ohssreVCAF_7__fgngrVpRREAF_9nyybpngbeVF3_RRR10chfu_sebagREXF3_
+.weak b__MAFg3__114__fcyvg_ohssreVCAF_7__fgngrVpRREAF_9nyybpngbeVF3_RRR10chfu_sebagREXF3_
 .type b__MAFg3__114__fcyvg_ohssreVCAF_7__fgngrVpRREAF_9nyybpngbeVF3_RRR10chfu_sebagREXF3_,%function
 b__MAFg3__114__fcyvg_ohssreVCAF_7__fgngrVpRREAF_9nyybpngbeVF3_RRR10chfu_sebagREXF3_:
 nop
@@ -983,37 +983,37 @@
 b__MAX7naqebvq6SDAnzrarREXF0_:
 nop
 .text
-.globl b__MAXFg3__118__zngpu_pune_vpnfrVpAF_12ertrk_genvgfVpRRR6__rkrpREAF_7__fgngrVpRR
+.weak b__MAXFg3__118__zngpu_pune_vpnfrVpAF_12ertrk_genvgfVpRRR6__rkrpREAF_7__fgngrVpRR
 .type b__MAXFg3__118__zngpu_pune_vpnfrVpAF_12ertrk_genvgfVpRRR6__rkrpREAF_7__fgngrVpRR,%function
 b__MAXFg3__118__zngpu_pune_vpnfrVpAF_12ertrk_genvgfVpRRR6__rkrpREAF_7__fgngrVpRR:
 nop
 .text
-.globl b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR17__cnefr_nffregvbaVCXpRRG_F7_F7_
+.weak b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR17__cnefr_nffregvbaVCXpRRG_F7_F7_
 .type b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR17__cnefr_nffregvbaVCXpRRG_F7_F7_,%function
 b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR17__cnefr_nffregvbaVCXpRRG_F7_F7_:
 nop
 .text
-.globl b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR24__cnefr_punenpgre_rfpncrVCXpRRG_F7_F7_CAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
+.weak b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR24__cnefr_punenpgre_rfpncrVCXpRRG_F7_F7_CAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
 .type b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR24__cnefr_punenpgre_rfpncrVCXpRRG_F7_F7_CAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR,%function
 b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR24__cnefr_punenpgre_rfpncrVCXpRRG_F7_F7_CAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR:
 nop
 .text
-.globl b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR7__cnefrVCXpRRG_F7_F7_
+.weak b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR7__cnefrVCXpRRG_F7_F7_
 .type b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR7__cnefrVCXpRRG_F7_F7_,%function
 b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR7__cnefrVCXpRRG_F7_F7_:
 nop
 .text
-.globl b__MAFg3__120__funerq_cge_cbvagreVCAF_13__rzcgl_fgngrVpRRAF_14qrsnhyg_qryrgrVF2_RRAF_9nyybpngbeVF2_RRR16__ba_mreb_funerqRi
+.weak b__MAFg3__120__funerq_cge_cbvagreVCAF_13__rzcgl_fgngrVpRRAF_14qrsnhyg_qryrgrVF2_RRAF_9nyybpngbeVF2_RRR16__ba_mreb_funerqRi
 .type b__MAFg3__120__funerq_cge_cbvagreVCAF_13__rzcgl_fgngrVpRRAF_14qrsnhyg_qryrgrVF2_RRAF_9nyybpngbeVF2_RRR16__ba_mreb_funerqRi,%function
 b__MAFg3__120__funerq_cge_cbvagreVCAF_13__rzcgl_fgngrVpRRAF_14qrsnhyg_qryrgrVF2_RRAF_9nyybpngbeVF2_RRR16__ba_mreb_funerqRi:
 nop
 .data
-.globl b__MGIAFg3__111__raq_fgngrVpRR
+.weak b__MGIAFg3__111__raq_fgngrVpRR
 .type b__MGIAFg3__111__raq_fgngrVpRR,%object
 b__MGIAFg3__111__raq_fgngrVpRR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIAFg3__118__zngpu_pune_vpnfrVpAF_12ertrk_genvgfVpRRRR
+.weak b__MGIAFg3__118__zngpu_pune_vpnfrVpAF_12ertrk_genvgfVpRRRR
 .type b__MGIAFg3__118__zngpu_pune_vpnfrVpAF_12ertrk_genvgfVpRRRR,%object
 b__MGIAFg3__118__zngpu_pune_vpnfrVpAF_12ertrk_genvgfVpRRRR:
 .space __SIZEOF_POINTER__
@@ -1023,47 +1023,47 @@
 b__MAX7naqebvq6SDAnzr4anzrRi:
 nop
 .text
-.globl b__MAXFg3__112ertrk_genvgfVpR9genafsbezVAF_11__jenc_vgreVCpRRRRAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRG_FP_
+.weak b__MAXFg3__112ertrk_genvgfVpR9genafsbezVAF_11__jenc_vgreVCpRRRRAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRG_FP_
 .type b__MAXFg3__112ertrk_genvgfVpR9genafsbezVAF_11__jenc_vgreVCpRRRRAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRG_FP_,%function
 b__MAXFg3__112ertrk_genvgfVpR9genafsbezVAF_11__jenc_vgreVCpRRRRAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRG_FP_:
 nop
 .text
-.globl b__MAXFg3__116__onpx_ers_vpnfrVpAF_12ertrk_genvgfVpRRR6__rkrpREAF_7__fgngrVpRR
+.weak b__MAXFg3__116__onpx_ers_vpnfrVpAF_12ertrk_genvgfVpRRR6__rkrpREAF_7__fgngrVpRR
 .type b__MAXFg3__116__onpx_ers_vpnfrVpAF_12ertrk_genvgfVpRRR6__rkrpREAF_7__fgngrVpRR,%function
 b__MAXFg3__116__onpx_ers_vpnfrVpAF_12ertrk_genvgfVpRRR6__rkrpREAF_7__fgngrVpRR:
 nop
 .text
-.globl b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR23__cnefr_rkcerffvba_grezVCXpRRG_F7_F7_CAF_20__oenpxrg_rkcerffvbaVpF2_RR
+.weak b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR23__cnefr_rkcerffvba_grezVCXpRRG_F7_F7_CAF_20__oenpxrg_rkcerffvbaVpF2_RR
 .type b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR23__cnefr_rkcerffvba_grezVCXpRRG_F7_F7_CAF_20__oenpxrg_rkcerffvbaVpF2_RR,%function
 b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR23__cnefr_rkcerffvba_grezVCXpRRG_F7_F7_CAF_20__oenpxrg_rkcerffvbaVpF2_RR:
 nop
 .text
-.globl b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR25__cnefr_cnggrea_punenpgreVCXpRRG_F7_F7_
+.weak b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR25__cnefr_cnggrea_punenpgreVCXpRRG_F7_F7_
 .type b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR25__cnefr_cnggrea_punenpgreVCXpRRG_F7_F7_,%function
 b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR25__cnefr_cnggrea_punenpgreVCXpRRG_F7_F7_:
 nop
 .text
-.globl b__MAXFg3__117__ercrng_bar_ybbcVpR6__rkrpREAF_7__fgngrVpRR
+.weak b__MAXFg3__117__ercrng_bar_ybbcVpR6__rkrpREAF_7__fgngrVpRR
 .type b__MAXFg3__117__ercrng_bar_ybbcVpR6__rkrpREAF_7__fgngrVpRR,%function
 b__MAXFg3__117__ercrng_bar_ybbcVpR6__rkrpREAF_7__fgngrVpRR:
 nop
 .text
-.globl b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR3fgeREXAF_12onfvp_fgevatVpF2_F4_RR
+.weak b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR3fgeREXAF_12onfvp_fgevatVpF2_F4_RR
 .type b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR3fgeREXAF_12onfvp_fgevatVpF2_F4_RR,%function
 b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR3fgeREXAF_12onfvp_fgevatVpF2_F4_RR:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_9fho_zngpuVCXpRRAF_9nyybpngbeVF4_RRR6nffvtaVCF4_RRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF4_AF_15vgrengbe_genvgfVFO_R9ersreraprRRR5inyhrRiR4glcrRFO_FO_
+.weak b__MAFg3__16irpgbeVAF_9fho_zngpuVCXpRRAF_9nyybpngbeVF4_RRR6nffvtaVCF4_RRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF4_AF_15vgrengbe_genvgfVFO_R9ersreraprRRR5inyhrRiR4glcrRFO_FO_
 .type b__MAFg3__16irpgbeVAF_9fho_zngpuVCXpRRAF_9nyybpngbeVF4_RRR6nffvtaVCF4_RRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF4_AF_15vgrengbe_genvgfVFO_R9ersreraprRRR5inyhrRiR4glcrRFO_FO_,%function
 b__MAFg3__16irpgbeVAF_9fho_zngpuVCXpRRAF_9nyybpngbeVF4_RRR6nffvtaVCF4_RRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF4_AF_15vgrengbe_genvgfVFO_R9ersreraprRRR5inyhrRiR4glcrRFO_FO_:
 nop
 .data
-.globl b__MGIAFg3__113__rzcgl_fgngrVpRR
+.weak b__MGIAFg3__113__rzcgl_fgngrVpRR
 .type b__MGIAFg3__113__rzcgl_fgngrVpRR,%object
 b__MGIAFg3__113__rzcgl_fgngrVpRR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIAFg3__126__raq_znexrq_fhorkcerffvbaVpRR
+.weak b__MGIAFg3__126__raq_znexrq_fhorkcerffvbaVpRR
 .type b__MGIAFg3__126__raq_znexrq_fhorkcerffvbaVpRR,%object
 b__MGIAFg3__126__raq_znexrq_fhorkcerffvbaVpRR:
 .space __SIZEOF_POINTER__
@@ -1098,22 +1098,22 @@
 b__MAX7naqebvq6SDAnzrrdREXF0_:
 nop
 .text
-.globl b__MAXFg3__111__ybbxnurnqVpAF_12ertrk_genvgfVpRRR6__rkrpREAF_7__fgngrVpRR
+.weak b__MAXFg3__111__ybbxnurnqVpAF_12ertrk_genvgfVpRRR6__rkrpREAF_7__fgngrVpRR
 .type b__MAXFg3__111__ybbxnurnqVpAF_12ertrk_genvgfVpRRR6__rkrpREAF_7__fgngrVpRR,%function
 b__MAXFg3__111__ybbxnurnqVpAF_12ertrk_genvgfVpRRR6__rkrpREAF_7__fgngrVpRR:
 nop
 .text
-.globl b__MAXFg3__112ertrk_genvgfVpR20__ybbxhc_pbyyngranzrVCpRRAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRG_FN_p
+.weak b__MAXFg3__112ertrk_genvgfVpR20__ybbxhc_pbyyngranzrVCpRRAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRG_FN_p
 .type b__MAXFg3__112ertrk_genvgfVpR20__ybbxhc_pbyyngranzrVCpRRAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRG_FN_p,%function
 b__MAXFg3__112ertrk_genvgfVpR20__ybbxhc_pbyyngranzrVCpRRAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRG_FN_p:
 nop
 .text
-.globl b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR26__cnefr_oenpxrg_rkcerffvbaVCXpRRG_F7_F7_
+.weak b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR26__cnefr_oenpxrg_rkcerffvbaVCXpRRG_F7_F7_
 .type b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR26__cnefr_oenpxrg_rkcerffvbaVCXpRRG_F7_F7_,%function
 b__MAFg3__111onfvp_ertrkVpAF_12ertrk_genvgfVpRRR26__cnefr_oenpxrg_rkcerffvbaVCXpRRG_F7_F7_:
 nop
 .data
-.globl b__MGIAFg3__111__ybbxnurnqVpAF_12ertrk_genvgfVpRRRR
+.weak b__MGIAFg3__111__ybbxnurnqVpAF_12ertrk_genvgfVpRRRR
 .type b__MGIAFg3__111__ybbxnurnqVpAF_12ertrk_genvgfVpRRRR,%object
 b__MGIAFg3__111__ybbxnurnqVpAF_12ertrk_genvgfVpRRRR:
 .space __SIZEOF_POINTER__
diff --git a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_159.S b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_159.S
index 0839095..58d5846 100644
--- a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_159.S
+++ b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_159.S
@@ -63,7 +63,7 @@
 b__MGIA8gvalkzy210KZYPbzzragR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIA8gvalkzy28ZrzCbbyGVYv112RRR
+.weak b__MGIA8gvalkzy28ZrzCbbyGVYv112RRR
 .type b__MGIA8gvalkzy28ZrzCbbyGVYv112RRR,%object
 b__MGIA8gvalkzy28ZrzCbbyGVYv112RRR:
 .space __SIZEOF_POINTER__
@@ -558,7 +558,7 @@
 b__MAX8gvalkzy210KZYRyrzrag12HafvtarqGrkgRw:
 nop
 .data
-.globl b__MGIA8gvalkzy212KZYNggevohgrR
+.weak b__MGIA8gvalkzy212KZYNggevohgrR
 .type b__MGIA8gvalkzy212KZYNggevohgrR,%object
 b__MGIA8gvalkzy212KZYNggevohgrR:
 .space __SIZEOF_POINTER__
@@ -608,12 +608,12 @@
 b__MAX8gvalkzy214KZYQrpynengvba12FunyybjPybarRCAF_11KZYQbphzragR:
 nop
 .data
-.globl b__MGIA8gvalkzy28ZrzCbbyGVYv104RRR
+.weak b__MGIA8gvalkzy28ZrzCbbyGVYv104RRR
 .type b__MGIA8gvalkzy28ZrzCbbyGVYv104RRR,%object
 b__MGIA8gvalkzy28ZrzCbbyGVYv104RRR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIA8gvalkzy28ZrzCbbyGVYv120RRR
+.weak b__MGIA8gvalkzy28ZrzCbbyGVYv120RRR
 .type b__MGIA8gvalkzy28ZrzCbbyGVYv120RRR,%object
 b__MGIA8gvalkzy28ZrzCbbyGVYv120RRR:
 .space __SIZEOF_POINTER__
@@ -828,7 +828,7 @@
 b__MA8gvalkzy27KZYHgvy5GbFgeRyCpv:
 nop
 .data
-.globl b__MGIA8gvalkzy28ZrzCbbyGVYv80RRR
+.weak b__MGIA8gvalkzy28ZrzCbbyGVYv80RRR
 .type b__MGIA8gvalkzy28ZrzCbbyGVYv80RRR,%object
 b__MGIA8gvalkzy28ZrzCbbyGVYv80RRR:
 .space __SIZEOF_POINTER__
diff --git a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_161.S b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_161.S
index 1726855..8d1b882 100644
--- a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_161.S
+++ b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_161.S
@@ -13,7 +13,7 @@
 b__MA7naqebvq8uneqjner9xrlznfgre4I3_019OcUjXrlznfgreQrivpr17_uvqy_trarengrXrlRCAF0_10VVagresnprRCAF0_7qrgnvyf16UvqyVafgehzragbeREXAF0_8uvqy_irpVAF2_12XrlCnenzrgreRRRAFg3__18shapgvbaVSiAF2_9ReebePbqrREXAF9_VuRREXAF2_18XrlPunenpgrevfgvpfRRRR:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_8uneqjner27uvqy_ovaqre_qrngu_erpvcvragRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_
+.weak b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_8uneqjner27uvqy_ovaqre_qrngu_erpvcvragRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_
 .type b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_8uneqjner27uvqy_ovaqre_qrngu_erpvcvragRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_,%function
 b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_8uneqjner27uvqy_ovaqre_qrngu_erpvcvragRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_:
 nop
@@ -108,7 +108,7 @@
 b__MA7naqebvq8uneqjner9xrlznfgre4I3_019OcUjXrlznfgreQrivpr10hctenqrXrlREXAF0_8uvqy_irpVuRREXAF4_VAF2_12XrlCnenzrgreRRRAFg3__18shapgvbaVSiAF2_9ReebePbqrRF7_RRR:
 nop
 .data
-.globl b__MGIA7naqebvq8uneqjner9xrlznfgre4I3_017OfXrlznfgreQrivprR
+.weak b__MGIA7naqebvq8uneqjner9xrlznfgre4I3_017OfXrlznfgreQrivprR
 .type b__MGIA7naqebvq8uneqjner9xrlznfgre4I3_017OfXrlznfgreQrivprR,%object
 b__MGIA7naqebvq8uneqjner9xrlznfgre4I3_017OfXrlznfgreQrivprR:
 .space __SIZEOF_POINTER__
@@ -128,7 +128,7 @@
 b__MA7naqebvq8uneqjner9xrlznfgre4I3_022ernqRzorqqrqSebzCnepryREXAF2_12XrlCnenzrgreREXAF0_6CnepryRzz:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_:
 nop
@@ -153,7 +153,7 @@
 b__MA7naqebvq8uneqjner9xrlznfgre4I3_019OcUjXrlznfgreQrivpr19trgUneqjnerSrngherfRAFg3__18shapgvbaVSioooooEXAF0_11uvqy_fgevatRF8_RRR:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_9xrlznfgre4I3_016VXrlznfgreQrivprRAF_4uvqy4onfr4I1_05VOnfrRAF4_19OcUjXrlznfgreQrivprRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_9xrlznfgre4I3_016VXrlznfgreQrivprRAF_4uvqy4onfr4I1_05VOnfrRAF4_19OcUjXrlznfgreQrivprRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo
 .type b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_9xrlznfgre4I3_016VXrlznfgreQrivprRAF_4uvqy4onfr4I1_05VOnfrRAF4_19OcUjXrlznfgreQrivprRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_9xrlznfgre4I3_016VXrlznfgreQrivprRAF_4uvqy4onfr4I1_05VOnfrRAF4_19OcUjXrlznfgreQrivprRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo:
 nop
@@ -178,7 +178,7 @@
 b__MA7naqebvq8uneqjner9xrlznfgre4I3_016VXrlznfgreQrivpr11yvaxGbQrnguREXAF_2fcVAF0_20uvqy_qrngu_erpvcvragRRRz:
 nop
 .text
-.globl b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
+.weak b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
 .type b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_,%function
 b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_:
 nop
@@ -223,7 +223,7 @@
 b__MA7naqebvq8uneqjner9xrlznfgre4I3_019OcUjXrlznfgreQrivpr25_uvqy_trgUneqjnerSrngherfRCAF0_10VVagresnprRCAF0_7qrgnvyf16UvqyVafgehzragbeRAFg3__18shapgvbaVSioooooEXAF0_11uvqy_fgevatRFQ_RRR:
 nop
 .data
-.globl b__MGPA7naqebvq8uneqjner9xrlznfgre4I3_017OfXrlznfgreQrivprR0_AF2_16VXrlznfgreQrivprR
+.weak b__MGPA7naqebvq8uneqjner9xrlznfgre4I3_017OfXrlznfgreQrivprR0_AF2_16VXrlznfgreQrivprR
 .type b__MGPA7naqebvq8uneqjner9xrlznfgre4I3_017OfXrlznfgreQrivprR0_AF2_16VXrlznfgreQrivprR,%object
 b__MGPA7naqebvq8uneqjner9xrlznfgre4I3_017OfXrlznfgreQrivprR0_AF2_16VXrlznfgreQrivprR:
 .space __SIZEOF_POINTER__
@@ -248,7 +248,7 @@
 b__MA7naqebvq8uneqjner9xrlznfgre4I3_019OcUjXrlznfgreQrivpr13nqqEatRagebclREXAF0_8uvqy_irpVuRR:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFT_RRECAF_15__gerr_raq_abqrVFG_RREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFT_RRECAF_15__gerr_raq_abqrVFG_RREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFT_RRECAF_15__gerr_raq_abqrVFG_RREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFT_RRECAF_15__gerr_raq_abqrVFG_RREXG_:
 nop
@@ -268,7 +268,7 @@
 b__MA7naqebvq8uneqjner9xrlznfgre4I3_019OcUjXrlznfgreQrivpr5ortvaRAF2_10XrlChecbfrREXAF0_8uvqy_irpVuRREXAF5_VAF2_12XrlCnenzrgreRRRAFg3__18shapgvbaVSiAF2_9ReebePbqrRFP_zRRR:
 nop
 .text
-.globl b__MAXFg3__18shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF7_F7_F7_CAF_6irpgbeVCiAF_9nyybpngbeVF9_RRRRRRpyRF5_F7_F7_F7_F7_FQ_
+.weak b__MAXFg3__18shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF7_F7_F7_CAF_6irpgbeVCiAF_9nyybpngbeVF9_RRRRRRpyRF5_F7_F7_F7_F7_FQ_
 .type b__MAXFg3__18shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF7_F7_F7_CAF_6irpgbeVCiAF_9nyybpngbeVF9_RRRRRRpyRF5_F7_F7_F7_F7_FQ_,%function
 b__MAXFg3__18shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF7_F7_F7_CAF_6irpgbeVCiAF_9nyybpngbeVF9_RRRRRRpyRF5_F7_F7_F7_F7_FQ_:
 nop
@@ -373,7 +373,7 @@
 b__MA7naqebvq8uneqjner9xrlznfgre4I3_016VXrlznfgreQrivpr8pnfgSebzREXAF_2fcVAF_4uvqy4onfr4I1_05VOnfrRRRo:
 nop
 .text
-.globl b__MAFg3__16irpgbeVCiAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_
+.weak b__MAFg3__16irpgbeVCiAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_
 .type b__MAFg3__16irpgbeVCiAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_,%function
 b__MAFg3__16irpgbeVCiAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_:
 nop
@@ -408,7 +408,7 @@
 b__MGua16_A7naqebvq8uneqjner9xrlznfgre4I3_019OcUjXrlznfgreQrivpr15baYnfgFgebatErsRCXi:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_9xrlznfgre4I3_019OcUjXrlznfgreQrivprRAF4_16VXrlznfgreQrivprRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_9xrlznfgre4I3_019OcUjXrlznfgreQrivprRAF4_16VXrlznfgreQrivprRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo
 .type b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_9xrlznfgre4I3_019OcUjXrlznfgreQrivprRAF4_16VXrlznfgreQrivprRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_9xrlznfgre4I3_019OcUjXrlznfgreQrivprRAF4_16VXrlznfgreQrivprRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo:
 nop
@@ -433,12 +433,12 @@
 b__MA7naqebvq8uneqjner9xrlznfgre4I3_019OcUjXrlznfgreQrivpr6svavfuRzEXAF0_8uvqy_irpVAF2_12XrlCnenzrgreRRREXAF4_VuRRFO_AFg3__18shapgvbaVSiAF2_9ReebePbqrRF8_FO_RRR:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRR:
 nop
 .text
-.globl b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
+.weak b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
 .type b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_,%function
 b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_:
 nop
@@ -463,7 +463,7 @@
 b__MA7naqebvq8uneqjner9xrlznfgre4I3_019OaUjXrlznfgreQrivpr25_uvqy_trgUneqjnerSrngherfRCAF_4uvqy4onfr4I1_08OaUjOnfrREXAF0_6CnepryRCF9_AFg3__18shapgvbaVSiEF9_RRR:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRP2REXFU_
+.weak b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRP2REXFU_
 .type b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRP2REXFU_,%function
 b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRP2REXFU_:
 nop
@@ -498,12 +498,12 @@
 b__MA7naqebvq8uneqjner9xrlznfgre4I3_019OcUjXrlznfgreQrivpr9qryrgrXrlREXAF0_8uvqy_irpVuRR:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFR_RRECAF_15__gerr_raq_abqrVFE_RREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFR_RRECAF_15__gerr_raq_abqrVFE_RREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFR_RRECAF_15__gerr_raq_abqrVFE_RREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFR_RRECAF_15__gerr_raq_abqrVFE_RREXG_:
 nop
@@ -573,7 +573,7 @@
 b__MA7naqebvq8uneqjner9xrlznfgre4I3_019OcUjXrlznfgreQrivpr9vzcbegXrlREXAF0_8uvqy_irpVAF2_12XrlCnenzrgreRRRAF2_9XrlSbezngREXAF4_VuRRAFg3__18shapgvbaVSiAF2_9ReebePbqrRFP_EXAF2_18XrlPunenpgrevfgvpfRRRR:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRR:
 nop
diff --git a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_163.S b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_163.S
index f40252e..f73561b 100644
--- a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_163.S
+++ b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_163.S
@@ -13,7 +13,7 @@
 b__MA7naqebvq4uvqy5gbxra4I1_016OcUjGbxraZnantre16_uvqy_haertvfgreRCAF_8uneqjner10VVagresnprRCAF4_7qrgnvyf16UvqyVafgehzragbeREXAF4_8uvqy_irpVuRR:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF_4uvqy4onfr4I1_05VOnfrRiRRAF_2fcVG_RRF9_
+.weak b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF_4uvqy4onfr4I1_05VOnfrRiRRAF_2fcVG_RRF9_
 .type b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF_4uvqy4onfr4I1_05VOnfrRiRRAF_2fcVG_RRF9_,%function
 b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF_4uvqy4onfr4I1_05VOnfrRiRRAF_2fcVG_RRF9_:
 nop
@@ -68,7 +68,7 @@
 b__MA7naqebvq4uvqy5gbxra4I1_013VGbxraZnantre14vagresnprPunvaRAFg3__18shapgvbaVSiEXAF_8uneqjner8uvqy_irpVAF6_11uvqy_fgevatRRRRRR:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_8uneqjner27uvqy_ovaqre_qrngu_erpvcvragRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_
+.weak b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_8uneqjner27uvqy_ovaqre_qrngu_erpvcvragRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_
 .type b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_8uneqjner27uvqy_ovaqre_qrngu_erpvcvragRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_,%function
 b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_8uneqjner27uvqy_ovaqre_qrngu_erpvcvragRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_:
 nop
@@ -108,7 +108,7 @@
 b__MA7naqebvq4uvqy5gbxra4I1_016OcUjGbxraZnantre21abgvslFlfcebcfPunatrqRi:
 nop
 .text
-.globl b__MAFg3__16irpgbeVCiAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_
+.weak b__MAFg3__16irpgbeVCiAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_
 .type b__MAFg3__16irpgbeVCiAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_,%function
 b__MAFg3__16irpgbeVCiAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_:
 nop
@@ -133,17 +133,17 @@
 b__MA7naqebvq4uvqy5gbxra4I1_016OaUjGbxraZnantreQ2Ri:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner10sebzOvaqreVAF_4uvqy4onfr4I1_05VOnfrRAF4_8OcUjOnfrRAF4_8OaUjOnfrRRRAF_2fcVG_RREXAF8_VAF0_7VOvaqreRRR
+.weak b__MA7naqebvq8uneqjner10sebzOvaqreVAF_4uvqy4onfr4I1_05VOnfrRAF4_8OcUjOnfrRAF4_8OaUjOnfrRRRAF_2fcVG_RREXAF8_VAF0_7VOvaqreRRR
 .type b__MA7naqebvq8uneqjner10sebzOvaqreVAF_4uvqy4onfr4I1_05VOnfrRAF4_8OcUjOnfrRAF4_8OaUjOnfrRRRAF_2fcVG_RREXAF8_VAF0_7VOvaqreRRR,%function
 b__MA7naqebvq8uneqjner10sebzOvaqreVAF_4uvqy4onfr4I1_05VOnfrRAF4_8OcUjOnfrRAF4_8OaUjOnfrRRRAF_2fcVG_RREXAF8_VAF0_7VOvaqreRRR:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF_4uvqy5gbxra4I1_016OcUjGbxraZnantreRAF5_13VGbxraZnantreRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFO_11pune_genvgfVpRRAFO_9nyybpngbeVpRRRRoo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF_4uvqy5gbxra4I1_016OcUjGbxraZnantreRAF5_13VGbxraZnantreRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFO_11pune_genvgfVpRRAFO_9nyybpngbeVpRRRRoo
 .type b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF_4uvqy5gbxra4I1_016OcUjGbxraZnantreRAF5_13VGbxraZnantreRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFO_11pune_genvgfVpRRAFO_9nyybpngbeVpRRRRoo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF_4uvqy5gbxra4I1_016OcUjGbxraZnantreRAF5_13VGbxraZnantreRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFO_11pune_genvgfVpRRAFO_9nyybpngbeVpRRRRoo:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFR_RRECAF_15__gerr_raq_abqrVFE_RREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFR_RRECAF_15__gerr_raq_abqrVFE_RREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFR_RRECAF_15__gerr_raq_abqrVFE_RREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFR_RRECAF_15__gerr_raq_abqrVFE_RREXG_:
 nop
@@ -168,17 +168,17 @@
 b__MA7naqebvq4uvqy5gbxra4I1_016OaUjGbxraZnantreP1REXAF_2fcVAF2_13VGbxraZnantreRRR:
 nop
 .text
-.globl b__MAXFg3__18shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF7_F7_F7_CAF_6irpgbeVCiAF_9nyybpngbeVF9_RRRRRRpyRF5_F7_F7_F7_F7_FQ_
+.weak b__MAXFg3__18shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF7_F7_F7_CAF_6irpgbeVCiAF_9nyybpngbeVF9_RRRRRRpyRF5_F7_F7_F7_F7_FQ_
 .type b__MAXFg3__18shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF7_F7_F7_CAF_6irpgbeVCiAF_9nyybpngbeVF9_RRRRRRpyRF5_F7_F7_F7_F7_FQ_,%function
 b__MAXFg3__18shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF7_F7_F7_CAF_6irpgbeVCiAF_9nyybpngbeVF9_RRRRRRpyRF5_F7_F7_F7_F7_FQ_:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFT_RRECAF_15__gerr_raq_abqrVFG_RREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFT_RRECAF_15__gerr_raq_abqrVFG_RREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFT_RRECAF_15__gerr_raq_abqrVFG_RREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFT_RRECAF_15__gerr_raq_abqrVFG_RREXG_:
 nop
 .text
-.globl b__MA7naqebvq2fcVAF_4uvqy4onfr4I1_05VOnfrRRnFRBF5_
+.weak b__MA7naqebvq2fcVAF_4uvqy4onfr4I1_05VOnfrRRnFRBF5_
 .type b__MA7naqebvq2fcVAF_4uvqy4onfr4I1_05VOnfrRRnFRBF5_,%function
 b__MA7naqebvq2fcVAF_4uvqy4onfr4I1_05VOnfrRRnFRBF5_:
 nop
@@ -198,17 +198,17 @@
 b__MA7naqebvq4uvqy5gbxra4I1_016OcUjGbxraZnantre19vagresnprQrfpevcgbeRAFg3__18shapgvbaVSiEXAF_8uneqjner11uvqy_fgevatRRRR:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRP2REXFU_
+.weak b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRP2REXFU_
 .type b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRP2REXFU_,%function
 b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRP2REXFU_:
 nop
 .data
-.globl b__MGPA7naqebvq4uvqy5gbxra4I1_014OfGbxraZnantreR0_AF2_13VGbxraZnantreR
+.weak b__MGPA7naqebvq4uvqy5gbxra4I1_014OfGbxraZnantreR0_AF2_13VGbxraZnantreR
 .type b__MGPA7naqebvq4uvqy5gbxra4I1_014OfGbxraZnantreR0_AF2_13VGbxraZnantreR,%object
 b__MGPA7naqebvq4uvqy5gbxra4I1_014OfGbxraZnantreR0_AF2_13VGbxraZnantreR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIA7naqebvq4uvqy5gbxra4I1_014OfGbxraZnantreR
+.weak b__MGIA7naqebvq4uvqy5gbxra4I1_014OfGbxraZnantreR
 .type b__MGIA7naqebvq4uvqy5gbxra4I1_014OfGbxraZnantreR,%object
 b__MGIA7naqebvq4uvqy5gbxra4I1_014OfGbxraZnantreR:
 .space __SIZEOF_POINTER__
@@ -243,7 +243,7 @@
 b__MA7naqebvq4uvqy5gbxra4I1_016OcUjGbxraZnantre10haertvfgreREXAF_8uneqjner8uvqy_irpVuRR:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_:
 nop
@@ -273,12 +273,12 @@
 b__MA7naqebvq4uvqy5gbxra4I1_016OcUjGbxraZnantre4cvatRi:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRR:
 nop
@@ -293,7 +293,7 @@
 b__MA7naqebvq4uvqy5gbxra4I1_016OcUjGbxraZnantre11yvaxGbQrnguREXAF_2fcVAF_8uneqjner20uvqy_qrngu_erpvcvragRRRz:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF_4uvqy5gbxra4I1_013VGbxraZnantreRAF3_4onfr4I1_05VOnfrRAF5_16OcUjGbxraZnantreRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF_4uvqy5gbxra4I1_013VGbxraZnantreRAF3_4onfr4I1_05VOnfrRAF5_16OcUjGbxraZnantreRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo
 .type b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF_4uvqy5gbxra4I1_013VGbxraZnantreRAF3_4onfr4I1_05VOnfrRAF5_16OcUjGbxraZnantreRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF_4uvqy5gbxra4I1_013VGbxraZnantreRAF3_4onfr4I1_05VOnfrRAF5_16OcUjGbxraZnantreRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo:
 nop
@@ -333,7 +333,7 @@
 b__MA7naqebvq4uvqy5gbxra4I1_016OaUjGbxraZnantreQ1Ri:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRR:
 nop
@@ -353,7 +353,7 @@
 b__MA7naqebvq4uvqy5gbxra4I1_016OcUjGbxraZnantre9_uvqy_trgRCAF_8uneqjner10VVagresnprRCAF4_7qrgnvyf16UvqyVafgehzragbeREXAF4_8uvqy_irpVuRR:
 nop
 .text
-.globl b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
+.weak b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
 .type b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_,%function
 b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_:
 nop
@@ -418,7 +418,7 @@
 b__MA7naqebvq4uvqy5gbxra4I1_016OcUjGbxraZnantre5qrohtREXAF_8uneqjner11uvqy_unaqyrREXAF4_8uvqy_irpVAF4_11uvqy_fgevatRRR:
 nop
 .text
-.globl b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
+.weak b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
 .type b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_,%function
 b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_:
 nop
diff --git a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_164.S b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_164.S
index e77720d..4a345d3 100644
--- a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_164.S
+++ b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_164.S
@@ -3,37 +3,37 @@
 .data
 .p2align 4
 .text
-.globl b__MA11hajvaqfgnpx16QjnesFrpgvbaVzcyVzR9SvyyVaPvrRCAF_8QjnesPvrR
+.weak b__MA11hajvaqfgnpx16QjnesFrpgvbaVzcyVzR9SvyyVaPvrRCAF_8QjnesPvrR
 .type b__MA11hajvaqfgnpx16QjnesFrpgvbaVzcyVzR9SvyyVaPvrRCAF_8QjnesPvrR,%function
 b__MA11hajvaqfgnpx16QjnesFrpgvbaVzcyVzR9SvyyVaPvrRCAF_8QjnesPvrR:
 nop
 .text
-.globl b__MA11hajvaqfgnpx7QjnesBcVwR6bc_abgRi
+.weak b__MA11hajvaqfgnpx7QjnesBcVwR6bc_abgRi
 .type b__MA11hajvaqfgnpx7QjnesBcVwR6bc_abgRi,%function
 b__MA11hajvaqfgnpx7QjnesBcVwR6bc_abgRi:
 nop
 .text
-.globl b__MAFg3__114__fcyvg_ohssreVCA11hajvaqfgnpx14QjnesYbpngvbafRAF_9nyybpngbeVF3_RRR10chfu_sebagRBF3_
+.weak b__MAFg3__114__fcyvg_ohssreVCA11hajvaqfgnpx14QjnesYbpngvbafRAF_9nyybpngbeVF3_RRR10chfu_sebagRBF3_
 .type b__MAFg3__114__fcyvg_ohssreVCA11hajvaqfgnpx14QjnesYbpngvbafRAF_9nyybpngbeVF3_RRR10chfu_sebagRBF3_,%function
 b__MAFg3__114__fcyvg_ohssreVCA11hajvaqfgnpx14QjnesYbpngvbafRAF_9nyybpngbeVF3_RRR10chfu_sebagRBF3_:
 nop
 .text
-.globl b__MA11hajvaqfgnpx16QjnesFrpgvbaVzcyVwR3YbtRuzCXAF_8QjnesSqrR
+.weak b__MA11hajvaqfgnpx16QjnesFrpgvbaVzcyVwR3YbtRuzCXAF_8QjnesSqrR
 .type b__MA11hajvaqfgnpx16QjnesFrpgvbaVzcyVwR3YbtRuzCXAF_8QjnesSqrR,%function
 b__MA11hajvaqfgnpx16QjnesFrpgvbaVzcyVwR3YbtRuzCXAF_8QjnesSqrR:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzA11hajvaqfgnpx19QjnesRuSenzrJvguUqeVzR7SqrVasbRRRAF_22__habeqrerq_znc_unfureVzF6_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF6_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF6_RRR14__renfr_havdhrVzRRzEXG_
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzA11hajvaqfgnpx19QjnesRuSenzrJvguUqeVzR7SqrVasbRRRAF_22__habeqrerq_znc_unfureVzF6_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF6_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF6_RRR14__renfr_havdhrVzRRzEXG_
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzA11hajvaqfgnpx19QjnesRuSenzrJvguUqeVzR7SqrVasbRRRAF_22__habeqrerq_znc_unfureVzF6_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF6_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF6_RRR14__renfr_havdhrVzRRzEXG_,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzA11hajvaqfgnpx19QjnesRuSenzrJvguUqeVzR7SqrVasbRRRAF_22__habeqrerq_znc_unfureVzF6_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF6_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF6_RRR14__renfr_havdhrVzRRzEXG_:
 nop
 .text
-.globl b__MA11hajvaqfgnpx7QjnesBcVzR5bc_ygRi
+.weak b__MA11hajvaqfgnpx7QjnesBcVzR5bc_ygRi
 .type b__MA11hajvaqfgnpx7QjnesBcVzR5bc_ygRi,%function
 b__MA11hajvaqfgnpx7QjnesBcVzR5bc_ygRi:
 nop
 .text
-.globl b__MA11hajvaqfgnpx7QjnesBcVzR7bc_cyhfRi
+.weak b__MA11hajvaqfgnpx7QjnesBcVzR7bc_cyhfRi
 .type b__MA11hajvaqfgnpx7QjnesBcVzR7bc_cyhfRi,%function
 b__MA11hajvaqfgnpx7QjnesBcVzR7bc_cyhfRi:
 nop
@@ -48,57 +48,57 @@
 b__MA11hajvaqfgnpx7Flzobyf16TrgVasbSebzPnpurRz:
 nop
 .text
-.globl b__MA11hajvaqfgnpx11QjnesZrzbel16ErnqRapbqrqInyhrVwRRouCz
+.weak b__MA11hajvaqfgnpx11QjnesZrzbel16ErnqRapbqrqInyhrVwRRouCz
 .type b__MA11hajvaqfgnpx11QjnesZrzbel16ErnqRapbqrqInyhrVwRRouCz,%function
 b__MA11hajvaqfgnpx11QjnesZrzbel16ErnqRapbqrqInyhrVwRRouCz:
 nop
 .data
-.globl b__MGIA11hajvaqfgnpx19QjnesRuSenzrJvguUqeVwRR
+.weak b__MGIA11hajvaqfgnpx19QjnesRuSenzrJvguUqeVwRR
 .type b__MGIA11hajvaqfgnpx19QjnesRuSenzrJvguUqeVwRR,%object
 b__MGIA11hajvaqfgnpx19QjnesRuSenzrJvguUqeVwRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA11hajvaqfgnpx7QjnesBcVzR6QrpbqrRi
+.weak b__MA11hajvaqfgnpx7QjnesBcVzR6QrpbqrRi
 .type b__MA11hajvaqfgnpx7QjnesBcVzR6QrpbqrRi,%function
 b__MA11hajvaqfgnpx7QjnesBcVzR6QrpbqrRi:
 nop
 .text
-.globl b__MAFg3__114__fcyvg_ohssreVCzEAF_9nyybpngbeVF1_RRR9chfu_onpxRBF1_
+.weak b__MAFg3__114__fcyvg_ohssreVCzEAF_9nyybpngbeVF1_RRR9chfu_onpxRBF1_
 .type b__MAFg3__114__fcyvg_ohssreVCzEAF_9nyybpngbeVF1_RRR9chfu_onpxRBF1_,%function
 b__MAFg3__114__fcyvg_ohssreVCzEAF_9nyybpngbeVF1_RRR9chfu_onpxRBF1_:
 nop
 .text
-.globl b__MA11hajvaqfgnpx16QjnesFrpgvbaVzcyVzR15SvyyVaSqrUrnqreRCAF_8QjnesSqrR
+.weak b__MA11hajvaqfgnpx16QjnesFrpgvbaVzcyVzR15SvyyVaSqrUrnqreRCAF_8QjnesSqrR
 .type b__MA11hajvaqfgnpx16QjnesFrpgvbaVzcyVzR15SvyyVaSqrUrnqreRCAF_8QjnesSqrR,%function
 b__MA11hajvaqfgnpx16QjnesFrpgvbaVzcyVzR15SvyyVaSqrUrnqreRCAF_8QjnesSqrR:
 nop
 .text
-.globl b__MAFg3__112__qrdhr_onfrVA11hajvaqfgnpx14QjnesYbpngvbafRAF_9nyybpngbeVF2_RRR5pyrneRi
+.weak b__MAFg3__112__qrdhr_onfrVA11hajvaqfgnpx14QjnesYbpngvbafRAF_9nyybpngbeVF2_RRR5pyrneRi
 .type b__MAFg3__112__qrdhr_onfrVA11hajvaqfgnpx14QjnesYbpngvbafRAF_9nyybpngbeVF2_RRR5pyrneRi,%function
 b__MAFg3__112__qrdhr_onfrVA11hajvaqfgnpx14QjnesYbpngvbafRAF_9nyybpngbeVF2_RRR5pyrneRi:
 nop
 .text
-.globl b__MA11hajvaqfgnpx16QjnesFrpgvbaVzcyVzR16TrgSqrSebzBssfrgRz
+.weak b__MA11hajvaqfgnpx16QjnesFrpgvbaVzcyVzR16TrgSqrSebzBssfrgRz
 .type b__MA11hajvaqfgnpx16QjnesFrpgvbaVzcyVzR16TrgSqrSebzBssfrgRz,%function
 b__MA11hajvaqfgnpx16QjnesFrpgvbaVzcyVzR16TrgSqrSebzBssfrgRz:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzA11hajvaqfgnpx19QjnesRuSenzrJvguUqeVwR7SqrVasbRRRAF_22__habeqrerq_znc_unfureVzF6_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF6_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF6_RRR14__renfr_havdhrVzRRzEXG_
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzA11hajvaqfgnpx19QjnesRuSenzrJvguUqeVwR7SqrVasbRRRAF_22__habeqrerq_znc_unfureVzF6_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF6_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF6_RRR14__renfr_havdhrVzRRzEXG_
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzA11hajvaqfgnpx19QjnesRuSenzrJvguUqeVwR7SqrVasbRRRAF_22__habeqrerq_znc_unfureVzF6_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF6_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF6_RRR14__renfr_havdhrVzRRzEXG_,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzA11hajvaqfgnpx19QjnesRuSenzrJvguUqeVwR7SqrVasbRRRAF_22__habeqrerq_znc_unfureVzF6_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF6_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF6_RRR14__renfr_havdhrVzRRzEXG_:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzA11hajvaqfgnpx14QjnesYbpngvbafRRRAF_22__habeqrerq_znc_unfureVzF4_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF4_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF4_RRR6erunfuRz
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzA11hajvaqfgnpx14QjnesYbpngvbafRRRAF_22__habeqrerq_znc_unfureVzF4_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF4_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF4_RRR6erunfuRz
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzA11hajvaqfgnpx14QjnesYbpngvbafRRRAF_22__habeqrerq_znc_unfureVzF4_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF4_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF4_RRR6erunfuRz,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzA11hajvaqfgnpx14QjnesYbpngvbafRRRAF_22__habeqrerq_znc_unfureVzF4_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF4_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF4_RRR6erunfuRz:
 nop
 .text
-.globl b__MA11hajvaqfgnpx12QjnesRuSenzrVzRP1RCAF_6ZrzbelR
+.weak b__MA11hajvaqfgnpx12QjnesRuSenzrVzRP1RCAF_6ZrzbelR
 .type b__MA11hajvaqfgnpx12QjnesRuSenzrVzRP1RCAF_6ZrzbelR,%function
 b__MA11hajvaqfgnpx12QjnesRuSenzrVzRP1RCAF_6ZrzbelR:
 nop
 .text
-.globl b__MA11hajvaqfgnpx12RysVagresnpr21TrgFbanzrJvguGrzcyngrV9Rys64_QlaRRAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRRi
+.weak b__MA11hajvaqfgnpx12RysVagresnpr21TrgFbanzrJvguGrzcyngrV9Rys64_QlaRRAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRRi
 .type b__MA11hajvaqfgnpx12RysVagresnpr21TrgFbanzrJvguGrzcyngrV9Rys64_QlaRRAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRRi,%function
 b__MA11hajvaqfgnpx12RysVagresnpr21TrgFbanzrJvguGrzcyngrV9Rys64_QlaRRAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRRi:
 nop
@@ -108,22 +108,22 @@
 b__MA11hajvaqfgnpx7ErtfK862fcRi:
 nop
 .text
-.globl b__MA11hajvaqfgnpx8QjnesPsnVwR6phe_cpRi
+.weak b__MA11hajvaqfgnpx8QjnesPsnVwR6phe_cpRi
 .type b__MA11hajvaqfgnpx8QjnesPsnVwR6phe_cpRi,%function
 b__MA11hajvaqfgnpx8QjnesPsnVwR6phe_cpRi:
 nop
 .text
-.globl b__MA11hajvaqfgnpx7QjnesBcVwR14erthyne_zrzbelRi
+.weak b__MA11hajvaqfgnpx7QjnesBcVwR14erthyne_zrzbelRi
 .type b__MA11hajvaqfgnpx7QjnesBcVwR14erthyne_zrzbelRi,%function
 b__MA11hajvaqfgnpx7QjnesBcVwR14erthyne_zrzbelRi:
 nop
 .text
-.globl b__MA11hajvaqfgnpx7QjnesBcVwR18obby_gb_qjnes_obbyRo
+.weak b__MA11hajvaqfgnpx7QjnesBcVwR18obby_gb_qjnes_obbyRo
 .type b__MA11hajvaqfgnpx7QjnesBcVwR18obby_gb_qjnes_obbyRo,%function
 b__MA11hajvaqfgnpx7QjnesBcVwR18obby_gb_qjnes_obbyRo:
 nop
 .text
-.globl b__MA11hajvaqfgnpx16QjnesFrpgvbaVzcyVzR15SvyyVaPvrUrnqreRCAF_8QjnesPvrR
+.weak b__MA11hajvaqfgnpx16QjnesFrpgvbaVzcyVzR15SvyyVaPvrUrnqreRCAF_8QjnesPvrR
 .type b__MA11hajvaqfgnpx16QjnesFrpgvbaVzcyVzR15SvyyVaPvrUrnqreRCAF_8QjnesPvrR,%function
 b__MA11hajvaqfgnpx16QjnesFrpgvbaVzcyVzR15SvyyVaPvrUrnqreRCAF_8QjnesPvrR:
 nop
@@ -138,17 +138,17 @@
 b__MA11hajvaqfgnpx6Zrzbel25PerngrCebprffZrzbelPnpurqRv:
 nop
 .text
-.globl b__MA11hajvaqfgnpx7QjnesBcVzR6bc_nofRi
+.weak b__MA11hajvaqfgnpx7QjnesBcVzR6bc_nofRi
 .type b__MA11hajvaqfgnpx7QjnesBcVzR6bc_nofRi,%function
 b__MA11hajvaqfgnpx7QjnesBcVzR6bc_nofRi:
 nop
 .text
-.globl b__MA11hajvaqfgnpx7QjnesBcVzR6bc_zhyRi
+.weak b__MA11hajvaqfgnpx7QjnesBcVzR6bc_zhyRi
 .type b__MA11hajvaqfgnpx7QjnesBcVzR6bc_zhyRi,%function
 b__MA11hajvaqfgnpx7QjnesBcVzR6bc_zhyRi:
 nop
 .text
-.globl b__MAFg3__114__fcyvg_ohssreVCA11hajvaqfgnpx14QjnesYbpngvbafRAF_9nyybpngbeVF3_RRR9chfu_onpxRBF3_
+.weak b__MAFg3__114__fcyvg_ohssreVCA11hajvaqfgnpx14QjnesYbpngvbafRAF_9nyybpngbeVF3_RRR9chfu_onpxRBF3_
 .type b__MAFg3__114__fcyvg_ohssreVCA11hajvaqfgnpx14QjnesYbpngvbafRAF_9nyybpngbeVF3_RRR9chfu_onpxRBF3_,%function
 b__MAFg3__114__fcyvg_ohssreVCA11hajvaqfgnpx14QjnesYbpngvbafRAF_9nyybpngbeVF3_RRR9chfu_onpxRBF3_:
 nop
@@ -163,32 +163,32 @@
 b__MA11hajvaqfgnpx8QrkSvyrf11CebprffNepuRi:
 nop
 .text
-.globl b__MA11hajvaqfgnpx7QjnesBcVwR6bc_fueRi
+.weak b__MA11hajvaqfgnpx7QjnesBcVwR6bc_fueRi
 .type b__MA11hajvaqfgnpx7QjnesBcVwR6bc_fueRi,%function
 b__MA11hajvaqfgnpx7QjnesBcVwR6bc_fueRi:
 nop
 .text
-.globl b__MA11hajvaqfgnpx7Flzobyf7TrgAnzrV9rys64_flzRRozCAF_6ZrzbelRCAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRRCz
+.weak b__MA11hajvaqfgnpx7Flzobyf7TrgAnzrV9rys64_flzRRozCAF_6ZrzbelRCAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRRCz
 .type b__MA11hajvaqfgnpx7Flzobyf7TrgAnzrV9rys64_flzRRozCAF_6ZrzbelRCAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRRCz,%function
 b__MA11hajvaqfgnpx7Flzobyf7TrgAnzrV9rys64_flzRRozCAF_6ZrzbelRCAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRRCz:
 nop
 .data
-.globl b__MGIAFg3__120__funerq_cge_cbvagreVCA11hajvaqfgnpx11ZrzbelYbpnyRAF_14qrsnhyg_qryrgrVF2_RRAF_9nyybpngbeVF2_RRRR
+.weak b__MGIAFg3__120__funerq_cge_cbvagreVCA11hajvaqfgnpx11ZrzbelYbpnyRAF_14qrsnhyg_qryrgrVF2_RRAF_9nyybpngbeVF2_RRRR
 .type b__MGIAFg3__120__funerq_cge_cbvagreVCA11hajvaqfgnpx11ZrzbelYbpnyRAF_14qrsnhyg_qryrgrVF2_RRAF_9nyybpngbeVF2_RRRR,%object
 b__MGIAFg3__120__funerq_cge_cbvagreVCA11hajvaqfgnpx11ZrzbelYbpnyRAF_14qrsnhyg_qryrgrVF2_RRAF_9nyybpngbeVF2_RRRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA11hajvaqfgnpx8QjnesPsnVwR18psn_qrs_psn_bssfrgRCAF_14QjnesYbpngvbafR
+.weak b__MA11hajvaqfgnpx8QjnesPsnVwR18psn_qrs_psn_bssfrgRCAF_14QjnesYbpngvbafR
 .type b__MA11hajvaqfgnpx8QjnesPsnVwR18psn_qrs_psn_bssfrgRCAF_14QjnesYbpngvbafR,%function
 b__MA11hajvaqfgnpx8QjnesPsnVwR18psn_qrs_psn_bssfrgRCAF_14QjnesYbpngvbafR:
 nop
 .text
-.globl b__MA11hajvaqfgnpx7QjnesBcVwR12BcrenaqfFvmrRi
+.weak b__MA11hajvaqfgnpx7QjnesBcVwR12BcrenaqfFvmrRi
 .type b__MA11hajvaqfgnpx7QjnesBcVwR12BcrenaqfFvmrRi,%function
 b__MA11hajvaqfgnpx7QjnesBcVwR12BcrenaqfFvmrRi:
 nop
 .text
-.globl b__MA11hajvaqfgnpx7QjnesBcVzR6bc_kbeRi
+.weak b__MA11hajvaqfgnpx7QjnesBcVzR6bc_kbeRi
 .type b__MA11hajvaqfgnpx7QjnesBcVzR6bc_kbeRi,%function
 b__MA11hajvaqfgnpx7QjnesBcVzR6bc_kbeRi:
 nop
@@ -203,17 +203,17 @@
 b__MAX11hajvaqfgnpx18YbpnyHcqngnoyrZncf11TrgZncfSvyrRi:
 nop
 .data
-.globl b__MGIA11hajvaqfgnpx15QrkSvyrSebzSvyrR
+.weak b__MGIA11hajvaqfgnpx15QrkSvyrSebzSvyrR
 .type b__MGIA11hajvaqfgnpx15QrkSvyrSebzSvyrR,%object
 b__MGIA11hajvaqfgnpx15QrkSvyrSebzSvyrR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVzA11hajvaqfgnpx14QjnesYbpngvbafRRRAF_19__znc_inyhr_pbzcnerVzF4_AF_4yrffVzRRYo1RRRAF_9nyybpngbeVF4_RRR7qrfgeblRCAF_11__gerr_abqrVF4_CiRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVzA11hajvaqfgnpx14QjnesYbpngvbafRRRAF_19__znc_inyhr_pbzcnerVzF4_AF_4yrffVzRRYo1RRRAF_9nyybpngbeVF4_RRR7qrfgeblRCAF_11__gerr_abqrVF4_CiRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVzA11hajvaqfgnpx14QjnesYbpngvbafRRRAF_19__znc_inyhr_pbzcnerVzF4_AF_4yrffVzRRYo1RRRAF_9nyybpngbeVF4_RRR7qrfgeblRCAF_11__gerr_abqrVF4_CiRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVzA11hajvaqfgnpx14QjnesYbpngvbafRRRAF_19__znc_inyhr_pbzcnerVzF4_AF_4yrffVzRRYo1RRRAF_9nyybpngbeVF4_RRR7qrfgeblRCAF_11__gerr_abqrVF4_CiRR:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVzA11hajvaqfgnpx14QjnesYbpngvbafRRRAF_19__znc_inyhr_pbzcnerVzF4_AF_4yrffVzRRYo1RRRAF_9nyybpngbeVF4_RRR25__rzcynpr_havdhr_xrl_netfVzWEzF3_RRRAF_4cnveVAF_15__gerr_vgrengbeVF4_CAF_11__gerr_abqrVF4_CiRRyRRoRREXG_QcBG0_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVzA11hajvaqfgnpx14QjnesYbpngvbafRRRAF_19__znc_inyhr_pbzcnerVzF4_AF_4yrffVzRRYo1RRRAF_9nyybpngbeVF4_RRR25__rzcynpr_havdhr_xrl_netfVzWEzF3_RRRAF_4cnveVAF_15__gerr_vgrengbeVF4_CAF_11__gerr_abqrVF4_CiRRyRRoRREXG_QcBG0_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVzA11hajvaqfgnpx14QjnesYbpngvbafRRRAF_19__znc_inyhr_pbzcnerVzF4_AF_4yrffVzRRYo1RRRAF_9nyybpngbeVF4_RRR25__rzcynpr_havdhr_xrl_netfVzWEzF3_RRRAF_4cnveVAF_15__gerr_vgrengbeVF4_CAF_11__gerr_abqrVF4_CiRRyRRoRREXG_QcBG0_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVzA11hajvaqfgnpx14QjnesYbpngvbafRRRAF_19__znc_inyhr_pbzcnerVzF4_AF_4yrffVzRRYo1RRRAF_9nyybpngbeVF4_RRR25__rzcynpr_havdhr_xrl_netfVzWEzF3_RRRAF_4cnveVAF_15__gerr_vgrengbeVF4_CAF_11__gerr_abqrVF4_CiRRyRRoRREXG_QcBG0_:
 nop
@@ -223,7 +223,7 @@
 b__MA11hajvaqfgnpx8ErtfZvcfP2Ri:
 nop
 .text
-.globl b__MA11hajvaqfgnpx15QjnesQrohtSenzrVwRP2RCAF_6ZrzbelR
+.weak b__MA11hajvaqfgnpx15QjnesQrohtSenzrVwRP2RCAF_6ZrzbelR
 .type b__MA11hajvaqfgnpx15QjnesQrohtSenzrVwRP2RCAF_6ZrzbelR,%function
 b__MA11hajvaqfgnpx15QjnesQrohtSenzrVwRP2RCAF_6ZrzbelR:
 nop
@@ -238,17 +238,17 @@
 b__MGIA11hajvaqfgnpx10ErtfK86_64R:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA11hajvaqfgnpx8QjnesPsnVzR13YnfgReebePbqrRi
+.weak b__MA11hajvaqfgnpx8QjnesPsnVzR13YnfgReebePbqrRi
 .type b__MA11hajvaqfgnpx8QjnesPsnVzR13YnfgReebePbqrRi,%function
 b__MA11hajvaqfgnpx8QjnesPsnVzR13YnfgReebePbqrRi:
 nop
 .text
-.globl b__MA11hajvaqfgnpx7QjnesBcVzR7bc_qebcRi
+.weak b__MA11hajvaqfgnpx7QjnesBcVzR7bc_qebcRi
 .type b__MA11hajvaqfgnpx7QjnesBcVzR7bc_qebcRi,%function
 b__MA11hajvaqfgnpx7QjnesBcVzR7bc_qebcRi:
 nop
 .text
-.globl b__MA11hajvaqfgnpx7QjnesBcVzR8bc_oertkRi
+.weak b__MA11hajvaqfgnpx7QjnesBcVzR8bc_oertkRi
 .type b__MA11hajvaqfgnpx7QjnesBcVzR8bc_oertkRi,%function
 b__MA11hajvaqfgnpx7QjnesBcVzR8bc_oertkRi:
 nop
@@ -258,27 +258,27 @@
 b__MA11hajvaqfgnpx3Rys7TrgVasbRCAF_6ZrzbelRCz:
 nop
 .text
-.globl b__MA11hajvaqfgnpx7Flzobyf9TrgTybonyV9rys64_flzRRoCAF_6ZrzbelREXAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRRCz
+.weak b__MA11hajvaqfgnpx7Flzobyf9TrgTybonyV9rys64_flzRRoCAF_6ZrzbelREXAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRRCz
 .type b__MA11hajvaqfgnpx7Flzobyf9TrgTybonyV9rys64_flzRRoCAF_6ZrzbelREXAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRRCz,%function
 b__MA11hajvaqfgnpx7Flzobyf9TrgTybonyV9rys64_flzRRoCAF_6ZrzbelREXAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRRCz:
 nop
 .text
-.globl b__MA11hajvaqfgnpx8QjnesPsnVzR7psn_abcRCAF_14QjnesYbpngvbafR
+.weak b__MA11hajvaqfgnpx8QjnesPsnVzR7psn_abcRCAF_14QjnesYbpngvbafR
 .type b__MA11hajvaqfgnpx8QjnesPsnVzR7psn_abcRCAF_14QjnesYbpngvbafR,%function
 b__MA11hajvaqfgnpx8QjnesPsnVzR7psn_abcRCAF_14QjnesYbpngvbafR:
 nop
 .text
-.globl b__MA11hajvaqfgnpx16QjnesFrpgvbaVzcyVwR4RinyRCXAF_8QjnesPvrRCAF_6ZrzbelREXAF_14QjnesYbpngvbafRCAF_4ErtfRCo
+.weak b__MA11hajvaqfgnpx16QjnesFrpgvbaVzcyVwR4RinyRCXAF_8QjnesPvrRCAF_6ZrzbelREXAF_14QjnesYbpngvbafRCAF_4ErtfRCo
 .type b__MA11hajvaqfgnpx16QjnesFrpgvbaVzcyVwR4RinyRCXAF_8QjnesPvrRCAF_6ZrzbelREXAF_14QjnesYbpngvbafRCAF_4ErtfRCo,%function
 b__MA11hajvaqfgnpx16QjnesFrpgvbaVzcyVwR4RinyRCXAF_8QjnesPvrRCAF_6ZrzbelREXAF_14QjnesYbpngvbafRCAF_4ErtfRCo:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzA11hajvaqfgnpx8QjnesPvrRRRAF_22__habeqrerq_znc_unfureVzF4_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF4_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF4_RRR6erunfuRz
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzA11hajvaqfgnpx8QjnesPvrRRRAF_22__habeqrerq_znc_unfureVzF4_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF4_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF4_RRR6erunfuRz
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzA11hajvaqfgnpx8QjnesPvrRRRAF_22__habeqrerq_znc_unfureVzF4_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF4_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF4_RRR6erunfuRz,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzA11hajvaqfgnpx8QjnesPvrRRRAF_22__habeqrerq_znc_unfureVzF4_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF4_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF4_RRR6erunfuRz:
 nop
 .text
-.globl b__MAFg3__16irpgbeVpAF_9nyybpngbeVpRRR21__chfu_onpx_fybj_cnguVEXpRRiBG_
+.weak b__MAFg3__16irpgbeVpAF_9nyybpngbeVpRRR21__chfu_onpx_fybj_cnguVEXpRRiBG_
 .type b__MAFg3__16irpgbeVpAF_9nyybpngbeVpRRR21__chfu_onpx_fybj_cnguVEXpRRiBG_,%function
 b__MAFg3__16irpgbeVpAF_9nyybpngbeVpRRR21__chfu_onpx_fybj_cnguVEXpRRiBG_:
 nop
@@ -288,7 +288,7 @@
 b__MA11hajvaqfgnpx9ErtfNez6415TrgCpNqwhfgzragRzCAF_3RysR:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA11hajvaqfgnpx9SenzrQngnRAF_9nyybpngbeVF2_RRR8__nccraqRz
+.weak b__MAFg3__16irpgbeVA11hajvaqfgnpx9SenzrQngnRAF_9nyybpngbeVF2_RRR8__nccraqRz
 .type b__MAFg3__16irpgbeVA11hajvaqfgnpx9SenzrQngnRAF_9nyybpngbeVF2_RRR8__nccraqRz,%function
 b__MAFg3__16irpgbeVA11hajvaqfgnpx9SenzrQngnRAF_9nyybpngbeVF2_RRR8__nccraqRz:
 nop
@@ -298,12 +298,12 @@
 b__MA11hajvaqfgnpx7QrkSvyr20TrgZrgubqVasbezngvbaRzCAFg3__112onfvp_fgevatVpAF1_11pune_genvgfVpRRAF1_9nyybpngbeVpRRRRCz:
 nop
 .text
-.globl b__MA11hajvaqfgnpx7QjnesBcVwR14bc_cyhf_hpbafgRi
+.weak b__MA11hajvaqfgnpx7QjnesBcVwR14bc_cyhf_hpbafgRi
 .type b__MA11hajvaqfgnpx7QjnesBcVwR14bc_cyhf_hpbafgRi,%function
 b__MA11hajvaqfgnpx7QjnesBcVwR14bc_cyhf_hpbafgRi:
 nop
 .text
-.globl b__MA11hajvaqfgnpx16QjnesFrpgvbaVzcyVzR9VafregSqrRCXAF_8QjnesSqrR
+.weak b__MA11hajvaqfgnpx16QjnesFrpgvbaVzcyVzR9VafregSqrRCXAF_8QjnesSqrR
 .type b__MA11hajvaqfgnpx16QjnesFrpgvbaVzcyVzR9VafregSqrRCXAF_8QjnesSqrR,%function
 b__MA11hajvaqfgnpx16QjnesFrpgvbaVzcyVzR9VafregSqrRCXAF_8QjnesSqrR:
 nop
@@ -318,7 +318,7 @@
 b__MA11hajvaqfgnpx10ErtfK86_644NepuRi:
 nop
 .text
-.globl b__MA11hajvaqfgnpx7QjnesBcVzR6bc_qviRi
+.weak b__MA11hajvaqfgnpx7QjnesBcVzR6bc_qviRi
 .type b__MA11hajvaqfgnpx7QjnesBcVzR6bc_qviRi,%function
 b__MA11hajvaqfgnpx7QjnesBcVzR6bc_qviRi:
 nop
@@ -338,17 +338,17 @@
 b__MA11hajvaqfgnpx8WvgQroht14ErnqRagel32CnqRCzF1_:
 nop
 .text
-.globl b__MAFg3__16irpgbeVCA11hajvaqfgnpx3RysRAF_9nyybpngbeVF3_RRR21__chfu_onpx_fybj_cnguVEXF3_RRiBG_
+.weak b__MAFg3__16irpgbeVCA11hajvaqfgnpx3RysRAF_9nyybpngbeVF3_RRR21__chfu_onpx_fybj_cnguVEXF3_RRiBG_
 .type b__MAFg3__16irpgbeVCA11hajvaqfgnpx3RysRAF_9nyybpngbeVF3_RRR21__chfu_onpx_fybj_cnguVEXF3_RRiBG_,%function
 b__MAFg3__16irpgbeVCA11hajvaqfgnpx3RysRAF_9nyybpngbeVF3_RRR21__chfu_onpx_fybj_cnguVEXF3_RRiBG_:
 nop
 .text
-.globl b__MA11hajvaqfgnpx8QjnesPsnVwRP2RCAF_11QjnesZrzbelRCXAF_8QjnesSqrR
+.weak b__MA11hajvaqfgnpx8QjnesPsnVwRP2RCAF_11QjnesZrzbelRCXAF_8QjnesSqrR
 .type b__MA11hajvaqfgnpx8QjnesPsnVwRP2RCAF_11QjnesZrzbelRCXAF_8QjnesSqrR,%function
 b__MA11hajvaqfgnpx8QjnesPsnVwRP2RCAF_11QjnesZrzbelRCXAF_8QjnesSqrR:
 nop
 .text
-.globl b__MA11hajvaqfgnpx7QjnesBcVwR8bc_qrersRi
+.weak b__MA11hajvaqfgnpx7QjnesBcVwR8bc_qrersRi
 .type b__MA11hajvaqfgnpx7QjnesBcVwR8bc_qrersRi,%function
 b__MA11hajvaqfgnpx7QjnesBcVwR8bc_qrersRi:
 nop
@@ -368,17 +368,17 @@
 b__MA11hajvaqfgnpx7ErtfK8619FgrcVsFvtanyUnaqyreRzCAF_3RysRCAF_6ZrzbelR:
 nop
 .text
-.globl b__MA11hajvaqfgnpx8QjnesPsnVzR20psn_qrs_psn_ertvfgreRCAF_14QjnesYbpngvbafR
+.weak b__MA11hajvaqfgnpx8QjnesPsnVzR20psn_qrs_psn_ertvfgreRCAF_14QjnesYbpngvbafR
 .type b__MA11hajvaqfgnpx8QjnesPsnVzR20psn_qrs_psn_ertvfgreRCAF_14QjnesYbpngvbafR,%function
 b__MA11hajvaqfgnpx8QjnesPsnVzR20psn_qrs_psn_ertvfgreRCAF_14QjnesYbpngvbafR:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzA11hajvaqfgnpx19QjnesRuSenzrJvguUqeVzR7SqrVasbRRRAF_22__habeqrerq_znc_unfureVzF6_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF6_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF6_RRR6erzbirRAF_21__unfu_pbafg_vgrengbeVCAF_11__unfu_abqrVF6_CiRRRR
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzA11hajvaqfgnpx19QjnesRuSenzrJvguUqeVzR7SqrVasbRRRAF_22__habeqrerq_znc_unfureVzF6_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF6_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF6_RRR6erzbirRAF_21__unfu_pbafg_vgrengbeVCAF_11__unfu_abqrVF6_CiRRRR
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzA11hajvaqfgnpx19QjnesRuSenzrJvguUqeVzR7SqrVasbRRRAF_22__habeqrerq_znc_unfureVzF6_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF6_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF6_RRR6erzbirRAF_21__unfu_pbafg_vgrengbeVCAF_11__unfu_abqrVF6_CiRRRR,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzA11hajvaqfgnpx19QjnesRuSenzrJvguUqeVzR7SqrVasbRRRAF_22__habeqrerq_znc_unfureVzF6_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF6_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF6_RRR6erzbirRAF_21__unfu_pbafg_vgrengbeVCAF_11__unfu_abqrVF6_CiRRRR:
 nop
 .text
-.globl b__MA11hajvaqfgnpx12RysVagresnpr22TrgZnkFvmrJvguGrzcyngrV9rys64_uqeRRiCAF_6ZrzbelRCz
+.weak b__MA11hajvaqfgnpx12RysVagresnpr22TrgZnkFvmrJvguGrzcyngrV9rys64_uqeRRiCAF_6ZrzbelRCz
 .type b__MA11hajvaqfgnpx12RysVagresnpr22TrgZnkFvmrJvguGrzcyngrV9rys64_uqeRRiCAF_6ZrzbelRCz,%function
 b__MA11hajvaqfgnpx12RysVagresnpr22TrgZnkFvmrJvguGrzcyngrV9rys64_uqeRRiCAF_6ZrzbelRCz:
 nop
@@ -403,17 +403,17 @@
 b__MGIA11hajvaqfgnpx10ErtfZvcf64R:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__114__fcyvg_ohssreVCuAF_9nyybpngbeVF1_RRR9chfu_onpxRBF1_
+.weak b__MAFg3__114__fcyvg_ohssreVCuAF_9nyybpngbeVF1_RRR9chfu_onpxRBF1_
 .type b__MAFg3__114__fcyvg_ohssreVCuAF_9nyybpngbeVF1_RRR9chfu_onpxRBF1_,%function
 b__MAFg3__114__fcyvg_ohssreVCuAF_9nyybpngbeVF1_RRR9chfu_onpxRBF1_:
 nop
 .text
-.globl b__MA11hajvaqfgnpx16QjnesFrpgvbaVzcyVwR4VavgRzzy
+.weak b__MA11hajvaqfgnpx16QjnesFrpgvbaVzcyVwR4VavgRzzy
 .type b__MA11hajvaqfgnpx16QjnesFrpgvbaVzcyVwR4VavgRzzy,%function
 b__MA11hajvaqfgnpx16QjnesFrpgvbaVzcyVwR4VavgRzzy:
 nop
 .text
-.globl b__MA11hajvaqfgnpx7QjnesBcVwR7FgnpxNgRz
+.weak b__MA11hajvaqfgnpx7QjnesBcVwR7FgnpxNgRz
 .type b__MA11hajvaqfgnpx7QjnesBcVwR7FgnpxNgRz,%function
 b__MA11hajvaqfgnpx7QjnesBcVwR7FgnpxNgRz:
 nop
@@ -423,12 +423,12 @@
 b__MA11hajvaqfgnpx4Zncf3NqqRzzzzEXAFg3__112onfvp_fgevatVpAF1_11pune_genvgfVpRRAF1_9nyybpngbeVpRRRRz:
 nop
 .text
-.globl b__MA11hajvaqfgnpx7QjnesBcVwR8FgnpxCbcRi
+.weak b__MA11hajvaqfgnpx7QjnesBcVwR8FgnpxCbcRi
 .type b__MA11hajvaqfgnpx7QjnesBcVwR8FgnpxCbcRi,%function
 b__MA11hajvaqfgnpx7QjnesBcVwR8FgnpxCbcRi:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzA11hajvaqfgnpx8YbnqVasbRRRAF_22__habeqrerq_znc_unfureVzF4_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF4_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF4_RRR6erunfuRz
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzA11hajvaqfgnpx8YbnqVasbRRRAF_22__habeqrerq_znc_unfureVzF4_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF4_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF4_RRR6erunfuRz
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzA11hajvaqfgnpx8YbnqVasbRRRAF_22__habeqrerq_znc_unfureVzF4_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF4_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF4_RRR6erunfuRz,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzA11hajvaqfgnpx8YbnqVasbRRRAF_22__habeqrerq_znc_unfureVzF4_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF4_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF4_RRR6erunfuRz:
 nop
@@ -438,47 +438,47 @@
 b__MA11hajvaqfgnpx10ErtfZvcf6416VgrengrErtvfgrefRAFg3__18shapgvbaVSiCXpzRRR:
 nop
 .text
-.globl b__MA11hajvaqfgnpx12RysVagresnpr21TrgFbanzrJvguGrzcyngrV7qlanzvpRRAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRRi
+.weak b__MA11hajvaqfgnpx12RysVagresnpr21TrgFbanzrJvguGrzcyngrV7qlanzvpRRAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRRi
 .type b__MA11hajvaqfgnpx12RysVagresnpr21TrgFbanzrJvguGrzcyngrV7qlanzvpRRAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRRi,%function
 b__MA11hajvaqfgnpx12RysVagresnpr21TrgFbanzrJvguGrzcyngrV7qlanzvpRRAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRRi:
 nop
 .text
-.globl b__MAFg3__120__funerq_cge_cbvagreVCA11hajvaqfgnpx11ZrzbelYbpnyRAF_14qrsnhyg_qryrgrVF2_RRAF_9nyybpngbeVF2_RRR21__ba_mreb_funerq_jrnxRi
+.weak b__MAFg3__120__funerq_cge_cbvagreVCA11hajvaqfgnpx11ZrzbelYbpnyRAF_14qrsnhyg_qryrgrVF2_RRAF_9nyybpngbeVF2_RRR21__ba_mreb_funerq_jrnxRi
 .type b__MAFg3__120__funerq_cge_cbvagreVCA11hajvaqfgnpx11ZrzbelYbpnyRAF_14qrsnhyg_qryrgrVF2_RRAF_9nyybpngbeVF2_RRR21__ba_mreb_funerq_jrnxRi,%function
 b__MAFg3__120__funerq_cge_cbvagreVCA11hajvaqfgnpx11ZrzbelYbpnyRAF_14qrsnhyg_qryrgrVF2_RRAF_9nyybpngbeVF2_RRR21__ba_mreb_funerq_jrnxRi:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzAF_10havdhr_cgeVA11hajvaqfgnpx7QrkSvyrRAF_14qrsnhyg_qryrgrVF4_RRRRRRAF_22__habeqrerq_znc_unfureVzF8_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF8_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF8_RRR8__erunfuRz
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzAF_10havdhr_cgeVA11hajvaqfgnpx7QrkSvyrRAF_14qrsnhyg_qryrgrVF4_RRRRRRAF_22__habeqrerq_znc_unfureVzF8_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF8_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF8_RRR8__erunfuRz
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzAF_10havdhr_cgeVA11hajvaqfgnpx7QrkSvyrRAF_14qrsnhyg_qryrgrVF4_RRRRRRAF_22__habeqrerq_znc_unfureVzF8_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF8_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF8_RRR8__erunfuRz,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzAF_10havdhr_cgeVA11hajvaqfgnpx7QrkSvyrRAF_14qrsnhyg_qryrgrVF4_RRRRRRAF_22__habeqrerq_znc_unfureVzF8_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF8_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF8_RRR8__erunfuRz:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwA11hajvaqfgnpx13QjnesYbpngvbaRRRAF_22__habeqrerq_znc_unfureVwF4_AF_4unfuVwRRYo1RRRAF_21__habeqrerq_znc_rdhnyVwF4_AF_8rdhny_gbVwRRYo1RRRAF_9nyybpngbeVF4_RRR25__rzcynpr_havdhr_xrl_netfVwWEXAF_4cnveVXwF3_RRRRRAFU_VAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF4_CiRRRRoRREXG_QcBG0_
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwA11hajvaqfgnpx13QjnesYbpngvbaRRRAF_22__habeqrerq_znc_unfureVwF4_AF_4unfuVwRRYo1RRRAF_21__habeqrerq_znc_rdhnyVwF4_AF_8rdhny_gbVwRRYo1RRRAF_9nyybpngbeVF4_RRR25__rzcynpr_havdhr_xrl_netfVwWEXAF_4cnveVXwF3_RRRRRAFU_VAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF4_CiRRRRoRREXG_QcBG0_
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwA11hajvaqfgnpx13QjnesYbpngvbaRRRAF_22__habeqrerq_znc_unfureVwF4_AF_4unfuVwRRYo1RRRAF_21__habeqrerq_znc_rdhnyVwF4_AF_8rdhny_gbVwRRYo1RRRAF_9nyybpngbeVF4_RRR25__rzcynpr_havdhr_xrl_netfVwWEXAF_4cnveVXwF3_RRRRRAFU_VAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF4_CiRRRRoRREXG_QcBG0_,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwA11hajvaqfgnpx13QjnesYbpngvbaRRRAF_22__habeqrerq_znc_unfureVwF4_AF_4unfuVwRRYo1RRRAF_21__habeqrerq_znc_rdhnyVwF4_AF_8rdhny_gbVwRRYo1RRRAF_9nyybpngbeVF4_RRR25__rzcynpr_havdhr_xrl_netfVwWEXAF_4cnveVXwF3_RRRRRAFU_VAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF4_CiRRRRoRREXG_QcBG0_:
 nop
 .text
-.globl b__MA11hajvaqfgnpx7QjnesBcVwR5bc_ygRi
+.weak b__MA11hajvaqfgnpx7QjnesBcVwR5bc_ygRi
 .type b__MA11hajvaqfgnpx7QjnesBcVwR5bc_ygRi,%function
 b__MA11hajvaqfgnpx7QjnesBcVwR5bc_ygRi:
 nop
 .text
-.globl b__MA11hajvaqfgnpx8QjnesPsnVzR13psn_haqrsvarqRCAF_14QjnesYbpngvbafR
+.weak b__MA11hajvaqfgnpx8QjnesPsnVzR13psn_haqrsvarqRCAF_14QjnesYbpngvbafR
 .type b__MA11hajvaqfgnpx8QjnesPsnVzR13psn_haqrsvarqRCAF_14QjnesYbpngvbafR,%function
 b__MA11hajvaqfgnpx8QjnesPsnVzR13psn_haqrsvarqRCAF_14QjnesYbpngvbafR:
 nop
 .text
-.globl b__MA11hajvaqfgnpx8QjnesPsnVwR22psn_qrs_psn_rkcerffvbaRCAF_14QjnesYbpngvbafR
+.weak b__MA11hajvaqfgnpx8QjnesPsnVwR22psn_qrs_psn_rkcerffvbaRCAF_14QjnesYbpngvbafR
 .type b__MA11hajvaqfgnpx8QjnesPsnVwR22psn_qrs_psn_rkcerffvbaRCAF_14QjnesYbpngvbafR,%function
 b__MA11hajvaqfgnpx8QjnesPsnVwR22psn_qrs_psn_rkcerffvbaRCAF_14QjnesYbpngvbafR:
 nop
 .text
-.globl b__MAFg3__15qrdhrVA11hajvaqfgnpx14QjnesYbpngvbafRAF_9nyybpngbeVF2_RRR8cbc_onpxRi
+.weak b__MAFg3__15qrdhrVA11hajvaqfgnpx14QjnesYbpngvbafRAF_9nyybpngbeVF2_RRR8cbc_onpxRi
 .type b__MAFg3__15qrdhrVA11hajvaqfgnpx14QjnesYbpngvbafRAF_9nyybpngbeVF2_RRR8cbc_onpxRi,%function
 b__MAFg3__15qrdhrVA11hajvaqfgnpx14QjnesYbpngvbafRAF_9nyybpngbeVF2_RRR8cbc_onpxRi:
 nop
 .text
-.globl b__MA11hajvaqfgnpx7QjnesBcVwR6bc_fuyRi
+.weak b__MA11hajvaqfgnpx7QjnesBcVwR6bc_fuyRi
 .type b__MA11hajvaqfgnpx7QjnesBcVwR6bc_fuyRi,%function
 b__MA11hajvaqfgnpx7QjnesBcVwR6bc_fuyRi:
 nop
@@ -498,17 +498,17 @@
 b__MGIA11hajvaqfgnpx19ZrzbelBssyvarOhssreR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA11hajvaqfgnpx8QjnesPsnVwR16YnfgReebeNqqerffRi
+.weak b__MA11hajvaqfgnpx8QjnesPsnVwR16YnfgReebeNqqerffRi
 .type b__MA11hajvaqfgnpx8QjnesPsnVwR16YnfgReebeNqqerffRi,%function
 b__MA11hajvaqfgnpx8QjnesPsnVwR16YnfgReebeNqqerffRi:
 nop
 .text
-.globl b__MA11hajvaqfgnpx19QjnesRuSenzrJvguUqeVzRP1RCAF_6ZrzbelR
+.weak b__MA11hajvaqfgnpx19QjnesRuSenzrJvguUqeVzRP1RCAF_6ZrzbelR
 .type b__MA11hajvaqfgnpx19QjnesRuSenzrJvguUqeVzRP1RCAF_6ZrzbelR,%function
 b__MA11hajvaqfgnpx19QjnesRuSenzrJvguUqeVzRP1RCAF_6ZrzbelR:
 nop
 .text
-.globl b__MA11hajvaqfgnpx12RysVagresnpr14ErnqNyyUrnqrefV9rys64_uqe10rys64_cuqe10rys64_fuqeRRoCy
+.weak b__MA11hajvaqfgnpx12RysVagresnpr14ErnqNyyUrnqrefV9rys64_uqe10rys64_cuqe10rys64_fuqeRRoCy
 .type b__MA11hajvaqfgnpx12RysVagresnpr14ErnqNyyUrnqrefV9rys64_uqe10rys64_cuqe10rys64_fuqeRRoCy,%function
 b__MA11hajvaqfgnpx12RysVagresnpr14ErnqNyyUrnqrefV9rys64_uqe10rys64_cuqe10rys64_fuqeRRoCy:
 nop
@@ -523,12 +523,12 @@
 b__MA11hajvaqfgnpx8QrkSvyrf11ErnqRagel32Ri:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzA11hajvaqfgnpx19QjnesRuSenzrJvguUqeVwR7SqrVasbRRRAF_22__habeqrerq_znc_unfureVzF6_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF6_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF6_RRR8__erunfuRz
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzA11hajvaqfgnpx19QjnesRuSenzrJvguUqeVwR7SqrVasbRRRAF_22__habeqrerq_znc_unfureVzF6_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF6_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF6_RRR8__erunfuRz
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzA11hajvaqfgnpx19QjnesRuSenzrJvguUqeVwR7SqrVasbRRRAF_22__habeqrerq_znc_unfureVzF6_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF6_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF6_RRR8__erunfuRz,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzA11hajvaqfgnpx19QjnesRuSenzrJvguUqeVwR7SqrVasbRRRAF_22__habeqrerq_znc_unfureVzF6_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF6_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF6_RRR8__erunfuRz:
 nop
 .text
-.globl b__MA11hajvaqfgnpx7QjnesBcVwR7bc_ertkRi
+.weak b__MA11hajvaqfgnpx7QjnesBcVwR7bc_ertkRi
 .type b__MA11hajvaqfgnpx7QjnesBcVwR7bc_ertkRi,%function
 b__MA11hajvaqfgnpx7QjnesBcVwR7bc_ertkRi:
 nop
@@ -538,22 +538,22 @@
 b__MA11hajvaqfgnpx8ErtfZvcf4NepuRi:
 nop
 .text
-.globl b__MA11hajvaqfgnpx8QjnesPsnVwR14psn_qrs_psn_fsRCAF_14QjnesYbpngvbafR
+.weak b__MA11hajvaqfgnpx8QjnesPsnVwR14psn_qrs_psn_fsRCAF_14QjnesYbpngvbafR
 .type b__MA11hajvaqfgnpx8QjnesPsnVwR14psn_qrs_psn_fsRCAF_14QjnesYbpngvbafR,%function
 b__MA11hajvaqfgnpx8QjnesPsnVwR14psn_qrs_psn_fsRCAF_14QjnesYbpngvbafR:
 nop
 .text
-.globl b__MA11hajvaqfgnpx7QjnesBcVwR16YnfgReebeNqqerffRi
+.weak b__MA11hajvaqfgnpx7QjnesBcVwR16YnfgReebeNqqerffRi
 .type b__MA11hajvaqfgnpx7QjnesBcVwR16YnfgReebeNqqerffRi,%function
 b__MA11hajvaqfgnpx7QjnesBcVwR16YnfgReebeNqqerffRi:
 nop
 .text
-.globl b__MA11hajvaqfgnpx7QjnesBcVwR6bc_ertRi
+.weak b__MA11hajvaqfgnpx7QjnesBcVwR6bc_ertRi
 .type b__MA11hajvaqfgnpx7QjnesBcVwR6bc_ertRi,%function
 b__MA11hajvaqfgnpx7QjnesBcVwR6bc_ertRi:
 nop
 .text
-.globl b__MAFg3__120__funerq_cge_rzcynprVA11hajvaqfgnpx18ZrzbelSvyrNgBssfrgRAF_9nyybpngbeVF2_RRR16__ba_mreb_funerqRi
+.weak b__MAFg3__120__funerq_cge_rzcynprVA11hajvaqfgnpx18ZrzbelSvyrNgBssfrgRAF_9nyybpngbeVF2_RRR16__ba_mreb_funerqRi
 .type b__MAFg3__120__funerq_cge_rzcynprVA11hajvaqfgnpx18ZrzbelSvyrNgBssfrgRAF_9nyybpngbeVF2_RRR16__ba_mreb_funerqRi,%function
 b__MAFg3__120__funerq_cge_rzcynprVA11hajvaqfgnpx18ZrzbelSvyrNgBssfrgRAF_9nyybpngbeVF2_RRR16__ba_mreb_funerqRi:
 nop
@@ -563,12 +563,12 @@
 b__MA11hajvaqfgnpx11QjnesZrzbel11ErnqHYRO128RCz:
 nop
 .text
-.globl b__MA11hajvaqfgnpx19QjnesRuSenzrJvguUqeVzR18TrgSqrBssfrgSebzCpRzCz
+.weak b__MA11hajvaqfgnpx19QjnesRuSenzrJvguUqeVzR18TrgSqrBssfrgSebzCpRzCz
 .type b__MA11hajvaqfgnpx19QjnesRuSenzrJvguUqeVzR18TrgSqrBssfrgSebzCpRzCz,%function
 b__MA11hajvaqfgnpx19QjnesRuSenzrJvguUqeVzR18TrgSqrBssfrgSebzCpRzCz:
 nop
 .text
-.globl b__MA11hajvaqfgnpx7QjnesBcVzR6bc_naqRi
+.weak b__MA11hajvaqfgnpx7QjnesBcVzR6bc_naqRi
 .type b__MA11hajvaqfgnpx7QjnesBcVzR6bc_naqRi,%function
 b__MA11hajvaqfgnpx7QjnesBcVzR6bc_naqRi:
 nop
@@ -583,12 +583,12 @@
 b__MA11hajvaqfgnpx8QrkSvyrf16ErnqInevnoyrQngnRz:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwA11hajvaqfgnpx13QjnesYbpngvbaRRRAF_22__habeqrerq_znc_unfureVwF4_AF_4unfuVwRRYo1RRRAF_21__habeqrerq_znc_rdhnyVwF4_AF_8rdhny_gbVwRRYo1RRRAF_9nyybpngbeVF4_RRR14__nffvta_zhygvVAF_21__unfu_pbafg_vgrengbeVCAF_11__unfu_abqrVF4_CiRRRRRRiG_FA_
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwA11hajvaqfgnpx13QjnesYbpngvbaRRRAF_22__habeqrerq_znc_unfureVwF4_AF_4unfuVwRRYo1RRRAF_21__habeqrerq_znc_rdhnyVwF4_AF_8rdhny_gbVwRRYo1RRRAF_9nyybpngbeVF4_RRR14__nffvta_zhygvVAF_21__unfu_pbafg_vgrengbeVCAF_11__unfu_abqrVF4_CiRRRRRRiG_FA_
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwA11hajvaqfgnpx13QjnesYbpngvbaRRRAF_22__habeqrerq_znc_unfureVwF4_AF_4unfuVwRRYo1RRRAF_21__habeqrerq_znc_rdhnyVwF4_AF_8rdhny_gbVwRRYo1RRRAF_9nyybpngbeVF4_RRR14__nffvta_zhygvVAF_21__unfu_pbafg_vgrengbeVCAF_11__unfu_abqrVF4_CiRRRRRRiG_FA_,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwA11hajvaqfgnpx13QjnesYbpngvbaRRRAF_22__habeqrerq_znc_unfureVwF4_AF_4unfuVwRRYo1RRRAF_21__habeqrerq_znc_rdhnyVwF4_AF_8rdhny_gbVwRRYo1RRRAF_9nyybpngbeVF4_RRR14__nffvta_zhygvVAF_21__unfu_pbafg_vgrengbeVCAF_11__unfu_abqrVF4_CiRRRRRRiG_FA_:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzA11hajvaqfgnpx8QjnesPvrRRRAF_22__habeqrerq_znc_unfureVzF4_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF4_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF4_RRR8__erunfuRz
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzA11hajvaqfgnpx8QjnesPvrRRRAF_22__habeqrerq_znc_unfureVzF4_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF4_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF4_RRR8__erunfuRz
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzA11hajvaqfgnpx8QjnesPvrRRRAF_22__habeqrerq_znc_unfureVzF4_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF4_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF4_RRR8__erunfuRz,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzA11hajvaqfgnpx8QjnesPvrRRRAF_22__habeqrerq_znc_unfureVzF4_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF4_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF4_RRR8__erunfuRz:
 nop
@@ -603,7 +603,7 @@
 b__MA11hajvaqfgnpx7ErtfK8615FrgSebzHpbagrkgRCAF_14k86_hpbagrkg_gR:
 nop
 .text
-.globl b__MA11hajvaqfgnpx7QjnesBcVzR6bc_abgRi
+.weak b__MA11hajvaqfgnpx7QjnesBcVzR6bc_abgRi
 .type b__MA11hajvaqfgnpx7QjnesBcVzR6bc_abgRi,%function
 b__MA11hajvaqfgnpx7QjnesBcVzR6bc_abgRi:
 nop
@@ -613,17 +613,17 @@
 b__MA11hajvaqfgnpx8QrkSvyrf4VavgRCAF_4ZncfR:
 nop
 .text
-.globl b__MA11hajvaqfgnpx8QjnesPsnVwR17psn_iny_bssfrg_fsRCAF_14QjnesYbpngvbafR
+.weak b__MA11hajvaqfgnpx8QjnesPsnVwR17psn_iny_bssfrg_fsRCAF_14QjnesYbpngvbafR
 .type b__MA11hajvaqfgnpx8QjnesPsnVwR17psn_iny_bssfrg_fsRCAF_14QjnesYbpngvbafR,%function
 b__MA11hajvaqfgnpx8QjnesPsnVwR17psn_iny_bssfrg_fsRCAF_14QjnesYbpngvbafR:
 nop
 .text
-.globl b__MA11hajvaqfgnpx7QjnesBcVwR7bc_chfuRi
+.weak b__MA11hajvaqfgnpx7QjnesBcVwR7bc_chfuRi
 .type b__MA11hajvaqfgnpx7QjnesBcVwR7bc_chfuRi,%function
 b__MA11hajvaqfgnpx7QjnesBcVwR7bc_chfuRi:
 nop
 .text
-.globl b__MA11hajvaqfgnpx12RysVagresnpr21ErnqOhvyqVQSebzZrzbelV9rys64_uqe10rys64_fuqe10rys64_abgrRRAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRRCAF_6ZrzbelR
+.weak b__MA11hajvaqfgnpx12RysVagresnpr21ErnqOhvyqVQSebzZrzbelV9rys64_uqe10rys64_fuqe10rys64_abgrRRAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRRCAF_6ZrzbelR
 .type b__MA11hajvaqfgnpx12RysVagresnpr21ErnqOhvyqVQSebzZrzbelV9rys64_uqe10rys64_fuqe10rys64_abgrRRAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRRCAF_6ZrzbelR,%function
 b__MA11hajvaqfgnpx12RysVagresnpr21ErnqOhvyqVQSebzZrzbelV9rys64_uqe10rys64_fuqe10rys64_abgrRRAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRRCAF_6ZrzbelR:
 nop
@@ -638,17 +638,17 @@
 b__MA11hajvaqfgnpx6Zrzbel19PerngrCebprffZrzbelRv:
 nop
 .text
-.globl b__MA11hajvaqfgnpx8QjnesPsnVzR16TrgBcrenaqFgevatRuzCz
+.weak b__MA11hajvaqfgnpx8QjnesPsnVzR16TrgBcrenaqFgevatRuzCz
 .type b__MA11hajvaqfgnpx8QjnesPsnVzR16TrgBcrenaqFgevatRuzCz,%function
 b__MA11hajvaqfgnpx8QjnesPsnVzR16TrgBcrenaqFgevatRuzCz:
 nop
 .text
-.globl b__MA11hajvaqfgnpx7QjnesBcVwR6phe_bcRi
+.weak b__MA11hajvaqfgnpx7QjnesBcVwR6phe_bcRi
 .type b__MA11hajvaqfgnpx7QjnesBcVwR6phe_bcRi,%function
 b__MA11hajvaqfgnpx7QjnesBcVwR6phe_bcRi:
 nop
 .data
-.globl b__MGIA11hajvaqfgnpx15QjnesQrohtSenzrVwRR
+.weak b__MGIA11hajvaqfgnpx15QjnesQrohtSenzrVwRR
 .type b__MGIA11hajvaqfgnpx15QjnesQrohtSenzrVwRR,%object
 b__MGIA11hajvaqfgnpx15QjnesQrohtSenzrVwRR:
 .space __SIZEOF_POINTER__
@@ -668,27 +668,27 @@
 b__MGIA11hajvaqfgnpx12RysVagresnprR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__120__funerq_cge_cbvagreVCA11hajvaqfgnpx11ZrzbelPnpurRAF_14qrsnhyg_qryrgrVF2_RRAF_9nyybpngbeVF2_RRR16__ba_mreb_funerqRi
+.weak b__MAFg3__120__funerq_cge_cbvagreVCA11hajvaqfgnpx11ZrzbelPnpurRAF_14qrsnhyg_qryrgrVF2_RRAF_9nyybpngbeVF2_RRR16__ba_mreb_funerqRi
 .type b__MAFg3__120__funerq_cge_cbvagreVCA11hajvaqfgnpx11ZrzbelPnpurRAF_14qrsnhyg_qryrgrVF2_RRAF_9nyybpngbeVF2_RRR16__ba_mreb_funerqRi,%function
 b__MAFg3__120__funerq_cge_cbvagreVCA11hajvaqfgnpx11ZrzbelPnpurRAF_14qrsnhyg_qryrgrVF2_RRAF_9nyybpngbeVF2_RRR16__ba_mreb_funerqRi:
 nop
 .text
-.globl b__MAFg3__17__fbeg4VEMA11hajvaqfgnpx7Flzobyf7TrgAnzrV9rys32_flzRRozCAF1_6ZrzbelRCAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRCzRHyEXAF2_4VasbRFU_R_CFS_RRwG0_FY_FY_FY_G_
+.weak b__MAFg3__17__fbeg4VEMA11hajvaqfgnpx7Flzobyf7TrgAnzrV9rys32_flzRRozCAF1_6ZrzbelRCAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRCzRHyEXAF2_4VasbRFU_R_CFS_RRwG0_FY_FY_FY_G_
 .type b__MAFg3__17__fbeg4VEMA11hajvaqfgnpx7Flzobyf7TrgAnzrV9rys32_flzRRozCAF1_6ZrzbelRCAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRCzRHyEXAF2_4VasbRFU_R_CFS_RRwG0_FY_FY_FY_G_,%function
 b__MAFg3__17__fbeg4VEMA11hajvaqfgnpx7Flzobyf7TrgAnzrV9rys32_flzRRozCAF1_6ZrzbelRCAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRCzRHyEXAF2_4VasbRFU_R_CFS_RRwG0_FY_FY_FY_G_:
 nop
 .text
-.globl b__MA11hajvaqfgnpx8QjnesPsnVwR16TrgBcrenaqFgevatRuzCz
+.weak b__MA11hajvaqfgnpx8QjnesPsnVwR16TrgBcrenaqFgevatRuzCz
 .type b__MA11hajvaqfgnpx8QjnesPsnVwR16TrgBcrenaqFgevatRuzCz,%function
 b__MA11hajvaqfgnpx8QjnesPsnVwR16TrgBcrenaqFgevatRuzCz:
 nop
 .text
-.globl b__MA11hajvaqfgnpx11QjnesZrzbel14TrgRapbqrqFvmrVwRRzu
+.weak b__MA11hajvaqfgnpx11QjnesZrzbel14TrgRapbqrqFvmrVwRRzu
 .type b__MA11hajvaqfgnpx11QjnesZrzbel14TrgRapbqrqFvmrVwRRzu,%function
 b__MA11hajvaqfgnpx11QjnesZrzbel14TrgRapbqrqFvmrVwRRzu:
 nop
 .text
-.globl b__MAFg3__16irpgbeVuAF_9nyybpngbeVuRRR8__nccraqRz
+.weak b__MAFg3__16irpgbeVuAF_9nyybpngbeVuRRR8__nccraqRz
 .type b__MAFg3__16irpgbeVuAF_9nyybpngbeVuRRR8__nccraqRz,%function
 b__MAFg3__16irpgbeVuAF_9nyybpngbeVuRRR8__nccraqRz:
 nop
@@ -698,27 +698,27 @@
 b__MA11hajvaqfgnpx7ErtfK8615TrgCpNqwhfgzragRzCAF_3RysR:
 nop
 .text
-.globl b__MA11hajvaqfgnpx8QjnesPsnVwR12psn_ertvfgreRCAF_14QjnesYbpngvbafR
+.weak b__MA11hajvaqfgnpx8QjnesPsnVwR12psn_ertvfgreRCAF_14QjnesYbpngvbafR
 .type b__MA11hajvaqfgnpx8QjnesPsnVwR12psn_ertvfgreRCAF_14QjnesYbpngvbafR,%function
 b__MA11hajvaqfgnpx8QjnesPsnVwR12psn_ertvfgreRCAF_14QjnesYbpngvbafR:
 nop
 .text
-.globl b__MA11hajvaqfgnpx8QjnesPsnVzR6phe_cpRi
+.weak b__MA11hajvaqfgnpx8QjnesPsnVzR6phe_cpRi
 .type b__MA11hajvaqfgnpx8QjnesPsnVzR6phe_cpRi,%function
 b__MA11hajvaqfgnpx8QjnesPsnVzR6phe_cpRi:
 nop
 .text
-.globl b__MA11hajvaqfgnpx11QjnesZrzbel10ErnqFvtarqVvRRoCz
+.weak b__MA11hajvaqfgnpx11QjnesZrzbel10ErnqFvtarqVvRRoCz
 .type b__MA11hajvaqfgnpx11QjnesZrzbel10ErnqFvtarqVvRRoCz,%function
 b__MA11hajvaqfgnpx11QjnesZrzbel10ErnqFvtarqVvRRoCz:
 nop
 .text
-.globl b__MA11hajvaqfgnpx7QjnesBcVzR7FgnpxNgRz
+.weak b__MA11hajvaqfgnpx7QjnesBcVzR7FgnpxNgRz
 .type b__MA11hajvaqfgnpx7QjnesBcVzR7FgnpxNgRz,%function
 b__MA11hajvaqfgnpx7QjnesBcVzR7FgnpxNgRz:
 nop
 .text
-.globl b__MA11hajvaqfgnpx16QjnesFrpgvbaVzcyVwR9SvyyVaSqrRCAF_8QjnesSqrR
+.weak b__MA11hajvaqfgnpx16QjnesFrpgvbaVzcyVwR9SvyyVaSqrRCAF_8QjnesSqrR
 .type b__MA11hajvaqfgnpx16QjnesFrpgvbaVzcyVwR9SvyyVaSqrRCAF_8QjnesSqrR,%function
 b__MA11hajvaqfgnpx16QjnesFrpgvbaVzcyVwR9SvyyVaSqrRCAF_8QjnesSqrR:
 nop
@@ -733,12 +733,12 @@
 b__MA11hajvaqfgnpx7ZncVasb11TrgYbnqOvnfREXAFg3__110funerq_cgeVAF_6ZrzbelRRR:
 nop
 .text
-.globl b__MAFg3__16__fbegVEMA11hajvaqfgnpx7Flzobyf7TrgAnzrV9rys32_flzRRozCAF1_6ZrzbelRCAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRCzRHyEXAF2_4VasbRFU_R_CFS_RRiG0_FY_G_
+.weak b__MAFg3__16__fbegVEMA11hajvaqfgnpx7Flzobyf7TrgAnzrV9rys32_flzRRozCAF1_6ZrzbelRCAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRCzRHyEXAF2_4VasbRFU_R_CFS_RRiG0_FY_G_
 .type b__MAFg3__16__fbegVEMA11hajvaqfgnpx7Flzobyf7TrgAnzrV9rys32_flzRRozCAF1_6ZrzbelRCAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRCzRHyEXAF2_4VasbRFU_R_CFS_RRiG0_FY_G_,%function
 b__MAFg3__16__fbegVEMA11hajvaqfgnpx7Flzobyf7TrgAnzrV9rys32_flzRRozCAF1_6ZrzbelRCAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRCzRHyEXAF2_4VasbRFU_R_CFS_RRiG0_FY_G_:
 nop
 .text
-.globl b__MA11hajvaqfgnpx16QjnesFrpgvbaVzcyVwR12RinyErtvfgreRCXAF_13QjnesYbpngvbaRwCwCi
+.weak b__MA11hajvaqfgnpx16QjnesFrpgvbaVzcyVwR12RinyErtvfgreRCXAF_13QjnesYbpngvbaRwCwCi
 .type b__MA11hajvaqfgnpx16QjnesFrpgvbaVzcyVwR12RinyErtvfgreRCXAF_13QjnesYbpngvbaRwCwCi,%function
 b__MA11hajvaqfgnpx16QjnesFrpgvbaVzcyVwR12RinyErtvfgreRCXAF_13QjnesYbpngvbaRwCwCi:
 nop
@@ -748,17 +748,17 @@
 b__MA11hajvaqfgnpx7ErtfNez2cpRi:
 nop
 .text
-.globl b__MAFg3__15qrdhrVuAF_9nyybpngbeVuRRR19__nqq_onpx_pncnpvglRi
+.weak b__MAFg3__15qrdhrVuAF_9nyybpngbeVuRRR19__nqq_onpx_pncnpvglRi
 .type b__MAFg3__15qrdhrVuAF_9nyybpngbeVuRRR19__nqq_onpx_pncnpvglRi,%function
 b__MAFg3__15qrdhrVuAF_9nyybpngbeVuRRR19__nqq_onpx_pncnpvglRi:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzA11hajvaqfgnpx14QjnesYbpngvbafRRRAF_22__habeqrerq_znc_unfureVzF4_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF4_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF4_RRR25__rzcynpr_havdhr_xrl_netfVzWEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXzRRRAFX_VWRRRRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF4_CiRRRRoRREXG_QcBG0_
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzA11hajvaqfgnpx14QjnesYbpngvbafRRRAF_22__habeqrerq_znc_unfureVzF4_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF4_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF4_RRR25__rzcynpr_havdhr_xrl_netfVzWEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXzRRRAFX_VWRRRRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF4_CiRRRRoRREXG_QcBG0_
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzA11hajvaqfgnpx14QjnesYbpngvbafRRRAF_22__habeqrerq_znc_unfureVzF4_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF4_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF4_RRR25__rzcynpr_havdhr_xrl_netfVzWEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXzRRRAFX_VWRRRRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF4_CiRRRRoRREXG_QcBG0_,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzA11hajvaqfgnpx14QjnesYbpngvbafRRRAF_22__habeqrerq_znc_unfureVzF4_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF4_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF4_RRR25__rzcynpr_havdhr_xrl_netfVzWEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXzRRRAFX_VWRRRRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF4_CiRRRRoRREXG_QcBG0_:
 nop
 .text
-.globl b__MAFg3__120__funerq_cge_cbvagreVCA11hajvaqfgnpx3RysRAF_14qrsnhyg_qryrgrVF2_RRAF_9nyybpngbeVF2_RRR21__ba_mreb_funerq_jrnxRi
+.weak b__MAFg3__120__funerq_cge_cbvagreVCA11hajvaqfgnpx3RysRAF_14qrsnhyg_qryrgrVF2_RRAF_9nyybpngbeVF2_RRR21__ba_mreb_funerq_jrnxRi
 .type b__MAFg3__120__funerq_cge_cbvagreVCA11hajvaqfgnpx3RysRAF_14qrsnhyg_qryrgrVF2_RRAF_9nyybpngbeVF2_RRR21__ba_mreb_funerq_jrnxRi,%function
 b__MAFg3__120__funerq_cge_cbvagreVCA11hajvaqfgnpx3RysRAF_14qrsnhyg_qryrgrVF2_RRAF_9nyybpngbeVF2_RRR21__ba_mreb_funerq_jrnxRi:
 nop
@@ -768,17 +768,17 @@
 b__MA11hajvaqfgnpx9ErtfNez6422FrgCpSebzErgheaNqqerffRCAF_6ZrzbelR:
 nop
 .text
-.globl b__MA11hajvaqfgnpx7QjnesBcVwR13bc_qrers_fvmrRi
+.weak b__MA11hajvaqfgnpx7QjnesBcVwR13bc_qrers_fvmrRi
 .type b__MA11hajvaqfgnpx7QjnesBcVwR13bc_qrers_fvmrRi,%function
 b__MA11hajvaqfgnpx7QjnesBcVwR13bc_qrers_fvmrRi:
 nop
 .text
-.globl b__MA11hajvaqfgnpx7QjnesBcVzR6bc_fueRi
+.weak b__MA11hajvaqfgnpx7QjnesBcVzR6bc_fueRi
 .type b__MA11hajvaqfgnpx7QjnesBcVzR6bc_fueRi,%function
 b__MA11hajvaqfgnpx7QjnesBcVzR6bc_fueRi:
 nop
 .text
-.globl b__MA11hajvaqfgnpx16QjnesFrpgvbaVzcyVzR14RinyRkcerffvbaREXAF_13QjnesYbpngvbaRCAF_6ZrzbelRCzCAF_8ErtfVasbVzRRCo
+.weak b__MA11hajvaqfgnpx16QjnesFrpgvbaVzcyVzR14RinyRkcerffvbaREXAF_13QjnesYbpngvbaRCAF_6ZrzbelRCzCAF_8ErtfVasbVzRRCo
 .type b__MA11hajvaqfgnpx16QjnesFrpgvbaVzcyVzR14RinyRkcerffvbaREXAF_13QjnesYbpngvbaRCAF_6ZrzbelRCzCAF_8ErtfVasbVzRRCo,%function
 b__MA11hajvaqfgnpx16QjnesFrpgvbaVzcyVzR14RinyRkcerffvbaREXAF_13QjnesYbpngvbaRCAF_6ZrzbelRCzCAF_8ErtfVasbVzRRCo:
 nop
@@ -793,7 +793,7 @@
 b__MA11hajvaqfgnpx7ErtfK8622FrgCpSebzErgheaNqqerffRCAF_6ZrzbelR:
 nop
 .text
-.globl b__MA11hajvaqfgnpx8QjnesPsnVzR15TrgYbpngvbaVasbRzzzCAF_14QjnesYbpngvbafR
+.weak b__MA11hajvaqfgnpx8QjnesPsnVzR15TrgYbpngvbaVasbRzzzCAF_14QjnesYbpngvbafR
 .type b__MA11hajvaqfgnpx8QjnesPsnVzR15TrgYbpngvbaVasbRzzzCAF_14QjnesYbpngvbafR,%function
 b__MA11hajvaqfgnpx8QjnesPsnVzR15TrgYbpngvbaVasbRzzzCAF_14QjnesYbpngvbafR:
 nop
@@ -813,7 +813,7 @@
 b__MA11hajvaqfgnpx6TybonyP2REAFg3__110funerq_cgeVAF_6ZrzbelRRREAF1_6irpgbeVAF1_12onfvp_fgevatVpAF1_11pune_genvgfVpRRAF1_9nyybpngbeVpRRRRAFN_VFP_RRRR:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_4cnveVAF_10funerq_cgeVA11hajvaqfgnpx3RysRRRoRRRRAF_22__habeqrerq_znc_unfureVF7_FR_AF_4unfuVF7_RRYo1RRRAF_21__habeqrerq_znc_rdhnyVF7_FR_AF_8rdhny_gbVF7_RRYo1RRRAF5_VFR_RRRQ2Ri
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_4cnveVAF_10funerq_cgeVA11hajvaqfgnpx3RysRRRoRRRRAF_22__habeqrerq_znc_unfureVF7_FR_AF_4unfuVF7_RRYo1RRRAF_21__habeqrerq_znc_rdhnyVF7_FR_AF_8rdhny_gbVF7_RRYo1RRRAF5_VFR_RRRQ2Ri
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_4cnveVAF_10funerq_cgeVA11hajvaqfgnpx3RysRRRoRRRRAF_22__habeqrerq_znc_unfureVF7_FR_AF_4unfuVF7_RRYo1RRRAF_21__habeqrerq_znc_rdhnyVF7_FR_AF_8rdhny_gbVF7_RRYo1RRRAF5_VFR_RRRQ2Ri,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_4cnveVAF_10funerq_cgeVA11hajvaqfgnpx3RysRRRoRRRRAF_22__habeqrerq_znc_unfureVF7_FR_AF_4unfuVF7_RRYo1RRRAF_21__habeqrerq_znc_rdhnyVF7_FR_AF_8rdhny_gbVF7_RRYo1RRRAF5_VFR_RRRQ2Ri:
 nop
@@ -828,12 +828,12 @@
 b__MA11hajvaqfgnpx6Zrzbel10ErnqFgevatRzCAFg3__112onfvp_fgevatVpAF1_11pune_genvgfVpRRAF1_9nyybpngbeVpRRRRz:
 nop
 .text
-.globl b__MA11hajvaqfgnpx7QjnesBcVzR9FgnpxFvmrRi
+.weak b__MA11hajvaqfgnpx7QjnesBcVzR9FgnpxFvmrRi
 .type b__MA11hajvaqfgnpx7QjnesBcVzR9FgnpxFvmrRi,%function
 b__MA11hajvaqfgnpx7QjnesBcVzR9FgnpxFvmrRi:
 nop
 .text
-.globl b__MA11hajvaqfgnpx12RysVagresnpr27TrgShapgvbaAnzrJvguGrzcyngrV9rys64_flzRRozCAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRRCz
+.weak b__MA11hajvaqfgnpx12RysVagresnpr27TrgShapgvbaAnzrJvguGrzcyngrV9rys64_flzRRozCAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRRCz
 .type b__MA11hajvaqfgnpx12RysVagresnpr27TrgShapgvbaAnzrJvguGrzcyngrV9rys64_flzRRozCAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRRCz,%function
 b__MA11hajvaqfgnpx12RysVagresnpr27TrgShapgvbaAnzrJvguGrzcyngrV9rys64_flzRRozCAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRRCz:
 nop
@@ -863,12 +863,12 @@
 b__MAX11hajvaqfgnpx8Hajvaqre11SbezngSenzrREXAF_9SenzrQngnR:
 nop
 .text
-.globl b__MA11hajvaqfgnpx7QjnesBcVwRP1RCAF_11QjnesZrzbelRCAF_6ZrzbelR
+.weak b__MA11hajvaqfgnpx7QjnesBcVwRP1RCAF_11QjnesZrzbelRCAF_6ZrzbelR
 .type b__MA11hajvaqfgnpx7QjnesBcVwRP1RCAF_11QjnesZrzbelRCAF_6ZrzbelR,%function
 b__MA11hajvaqfgnpx7QjnesBcVwRP1RCAF_11QjnesZrzbelRCAF_6ZrzbelR:
 nop
 .text
-.globl b__MA11hajvaqfgnpx16QjnesFrpgvbaVzcyVwR15TrgArkgPvrBeSqrRCCXAF_8QjnesSqrR
+.weak b__MA11hajvaqfgnpx16QjnesFrpgvbaVzcyVwR15TrgArkgPvrBeSqrRCCXAF_8QjnesSqrR
 .type b__MA11hajvaqfgnpx16QjnesFrpgvbaVzcyVwR15TrgArkgPvrBeSqrRCCXAF_8QjnesSqrR,%function
 b__MA11hajvaqfgnpx16QjnesFrpgvbaVzcyVwR15TrgArkgPvrBeSqrRCCXAF_8QjnesSqrR:
 nop
@@ -883,7 +883,7 @@
 b__MA11hajvaqfgnpx7ErtfK86P2Ri:
 nop
 .text
-.globl b__MA11hajvaqfgnpx8QjnesPsnVwR13psn_haqrsvarqRCAF_14QjnesYbpngvbafR
+.weak b__MA11hajvaqfgnpx8QjnesPsnVwR13psn_haqrsvarqRCAF_14QjnesYbpngvbafR
 .type b__MA11hajvaqfgnpx8QjnesPsnVwR13psn_haqrsvarqRCAF_14QjnesYbpngvbafR,%function
 b__MA11hajvaqfgnpx8QjnesPsnVwR13psn_haqrsvarqRCAF_14QjnesYbpngvbafR:
 nop
@@ -898,22 +898,22 @@
 b__MA11hajvaqfgnpx12RysVagresnprQ0Ri:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzA11hajvaqfgnpx19QjnesRuSenzrJvguUqeVzR7SqrVasbRRRAF_22__habeqrerq_znc_unfureVzF6_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF6_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF6_RRR8__erunfuRz
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzA11hajvaqfgnpx19QjnesRuSenzrJvguUqeVzR7SqrVasbRRRAF_22__habeqrerq_znc_unfureVzF6_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF6_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF6_RRR8__erunfuRz
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzA11hajvaqfgnpx19QjnesRuSenzrJvguUqeVzR7SqrVasbRRRAF_22__habeqrerq_znc_unfureVzF6_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF6_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF6_RRR8__erunfuRz,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzA11hajvaqfgnpx19QjnesRuSenzrJvguUqeVzR7SqrVasbRRRAF_22__habeqrerq_znc_unfureVzF6_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF6_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF6_RRR8__erunfuRz:
 nop
 .text
-.globl b__MA11hajvaqfgnpx15QjnesQrohtSenzrVzRP1RCAF_6ZrzbelR
+.weak b__MA11hajvaqfgnpx15QjnesQrohtSenzrVzRP1RCAF_6ZrzbelR
 .type b__MA11hajvaqfgnpx15QjnesQrohtSenzrVzRP1RCAF_6ZrzbelR,%function
 b__MA11hajvaqfgnpx15QjnesQrohtSenzrVzRP1RCAF_6ZrzbelR:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzA11hajvaqfgnpx8QjnesPvrRRRAF_22__habeqrerq_znc_unfureVzF4_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF4_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF4_RRR14__renfr_havdhrVzRRzEXG_
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzA11hajvaqfgnpx8QjnesPvrRRRAF_22__habeqrerq_znc_unfureVzF4_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF4_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF4_RRR14__renfr_havdhrVzRRzEXG_
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzA11hajvaqfgnpx8QjnesPvrRRRAF_22__habeqrerq_znc_unfureVzF4_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF4_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF4_RRR14__renfr_havdhrVzRRzEXG_,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzA11hajvaqfgnpx8QjnesPvrRRRAF_22__habeqrerq_znc_unfureVzF4_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF4_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF4_RRR14__renfr_havdhrVzRRzEXG_:
 nop
 .text
-.globl b__MA11hajvaqfgnpx12RysVagresnpr18ErnqFrpgvbaUrnqrefV9rys32_uqe10rys32_fuqeRRiEXG_
+.weak b__MA11hajvaqfgnpx12RysVagresnpr18ErnqFrpgvbaUrnqrefV9rys32_uqe10rys32_fuqeRRiEXG_
 .type b__MA11hajvaqfgnpx12RysVagresnpr18ErnqFrpgvbaUrnqrefV9rys32_uqe10rys32_fuqeRRiEXG_,%function
 b__MA11hajvaqfgnpx12RysVagresnpr18ErnqFrpgvbaUrnqrefV9rys32_uqe10rys32_fuqeRRiEXG_:
 nop
@@ -928,7 +928,7 @@
 b__MA11hajvaqfgnpx8Hajvaqre6HajvaqRCXAFg3__16irpgbeVAF1_12onfvp_fgevatVpAF1_11pune_genvgfVpRRAF1_9nyybpngbeVpRRRRAF6_VF8_RRRRFP_:
 nop
 .text
-.globl b__MA11hajvaqfgnpx8QjnesPsnVzR14psn_qrs_psn_fsRCAF_14QjnesYbpngvbafR
+.weak b__MA11hajvaqfgnpx8QjnesPsnVzR14psn_qrs_psn_fsRCAF_14QjnesYbpngvbafR
 .type b__MA11hajvaqfgnpx8QjnesPsnVzR14psn_qrs_psn_fsRCAF_14QjnesYbpngvbafR,%function
 b__MA11hajvaqfgnpx8QjnesPsnVzR14psn_qrs_psn_fsRCAF_14QjnesYbpngvbafR:
 nop
@@ -938,12 +938,12 @@
 b__MA11hajvaqfgnpx6Tybony7FrgNepuRAF_8NepuRahzR:
 nop
 .text
-.globl b__MA7naqebvq8cebpvasb18ErnqZncSvyrPbagragVAFg3__18shapgvbaVSizzgzzCXpRRRRRoCpEXG_
+.weak b__MA7naqebvq8cebpvasb18ErnqZncSvyrPbagragVAFg3__18shapgvbaVSizzgzzCXpRRRRRoCpEXG_
 .type b__MA7naqebvq8cebpvasb18ErnqZncSvyrPbagragVAFg3__18shapgvbaVSizzgzzCXpRRRRRoCpEXG_,%function
 b__MA7naqebvq8cebpvasb18ErnqZncSvyrPbagragVAFg3__18shapgvbaVSizzgzzCXpRRRRRoCpEXG_:
 nop
 .data
-.globl b__MGIA11hajvaqfgnpx8ErtfVzcyVwRR
+.weak b__MGIA11hajvaqfgnpx8ErtfVzcyVwRR
 .type b__MGIA11hajvaqfgnpx8ErtfVzcyVwRR,%object
 b__MGIA11hajvaqfgnpx8ErtfVzcyVwRR:
 .space __SIZEOF_POINTER__
@@ -953,37 +953,37 @@
 b__MA11hajvaqfgnpx10ErtfK86_645PybarRi:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzN4096_uRRAF_22__habeqrerq_znc_unfureVzF3_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF3_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF3_RRR25__rzcynpr_havdhr_xrl_netfVzWEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXzRRRAFW_VWRRRRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF3_CiRRRRoRREXG_QcBG0_
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzN4096_uRRAF_22__habeqrerq_znc_unfureVzF3_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF3_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF3_RRR25__rzcynpr_havdhr_xrl_netfVzWEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXzRRRAFW_VWRRRRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF3_CiRRRRoRREXG_QcBG0_
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzN4096_uRRAF_22__habeqrerq_znc_unfureVzF3_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF3_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF3_RRR25__rzcynpr_havdhr_xrl_netfVzWEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXzRRRAFW_VWRRRRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF3_CiRRRRoRREXG_QcBG0_,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzN4096_uRRAF_22__habeqrerq_znc_unfureVzF3_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF3_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF3_RRR25__rzcynpr_havdhr_xrl_netfVzWEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXzRRRAFW_VWRRRRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF3_CiRRRRoRREXG_QcBG0_:
 nop
 .text
-.globl b__MAFg3__16irpgbeVzAF_9nyybpngbeVzRRR21__chfu_onpx_fybj_cnguVEXzRRiBG_
+.weak b__MAFg3__16irpgbeVzAF_9nyybpngbeVzRRR21__chfu_onpx_fybj_cnguVEXzRRiBG_
 .type b__MAFg3__16irpgbeVzAF_9nyybpngbeVzRRR21__chfu_onpx_fybj_cnguVEXzRRiBG_,%function
 b__MAFg3__16irpgbeVzAF_9nyybpngbeVzRRR21__chfu_onpx_fybj_cnguVEXzRRiBG_:
 nop
 .text
-.globl b__MA11hajvaqfgnpx8QjnesPsnVwR14psn_fnzr_inyhrRCAF_14QjnesYbpngvbafR
+.weak b__MA11hajvaqfgnpx8QjnesPsnVwR14psn_fnzr_inyhrRCAF_14QjnesYbpngvbafR
 .type b__MA11hajvaqfgnpx8QjnesPsnVwR14psn_fnzr_inyhrRCAF_14QjnesYbpngvbafR,%function
 b__MA11hajvaqfgnpx8QjnesPsnVwR14psn_fnzr_inyhrRCAF_14QjnesYbpngvbafR:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwA11hajvaqfgnpx13QjnesYbpngvbaRRRAF_22__habeqrerq_znc_unfureVwF4_AF_4unfuVwRRYo1RRRAF_21__habeqrerq_znc_rdhnyVwF4_AF_8rdhny_gbVwRRYo1RRRAF_9nyybpngbeVF4_RRR25__rzcynpr_havdhr_xrl_netfVwWEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWBwRRRAFX_VWRRRRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF4_CiRRRRoRREXG_QcBG0_
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwA11hajvaqfgnpx13QjnesYbpngvbaRRRAF_22__habeqrerq_znc_unfureVwF4_AF_4unfuVwRRYo1RRRAF_21__habeqrerq_znc_rdhnyVwF4_AF_8rdhny_gbVwRRYo1RRRAF_9nyybpngbeVF4_RRR25__rzcynpr_havdhr_xrl_netfVwWEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWBwRRRAFX_VWRRRRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF4_CiRRRRoRREXG_QcBG0_
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwA11hajvaqfgnpx13QjnesYbpngvbaRRRAF_22__habeqrerq_znc_unfureVwF4_AF_4unfuVwRRYo1RRRAF_21__habeqrerq_znc_rdhnyVwF4_AF_8rdhny_gbVwRRYo1RRRAF_9nyybpngbeVF4_RRR25__rzcynpr_havdhr_xrl_netfVwWEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWBwRRRAFX_VWRRRRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF4_CiRRRRoRREXG_QcBG0_,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwA11hajvaqfgnpx13QjnesYbpngvbaRRRAF_22__habeqrerq_znc_unfureVwF4_AF_4unfuVwRRYo1RRRAF_21__habeqrerq_znc_rdhnyVwF4_AF_8rdhny_gbVwRRYo1RRRAF_9nyybpngbeVF4_RRR25__rzcynpr_havdhr_xrl_netfVwWEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWBwRRRAFX_VWRRRRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF4_CiRRRRoRREXG_QcBG0_:
 nop
 .data
-.globl b__MGIA11hajvaqfgnpx7QjnesBcVwRR
+.weak b__MGIA11hajvaqfgnpx7QjnesBcVwRR
 .type b__MGIA11hajvaqfgnpx7QjnesBcVwRR,%object
 b__MGIA11hajvaqfgnpx7QjnesBcVwRR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIA11hajvaqfgnpx8QjnesPsnVwRR
+.weak b__MGIA11hajvaqfgnpx8QjnesPsnVwRR
 .type b__MGIA11hajvaqfgnpx8QjnesPsnVwRR,%object
 b__MGIA11hajvaqfgnpx8QjnesPsnVwRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA11hajvaqfgnpx16QjnesFrpgvbaVzcyVzR4VavgRzzy
+.weak b__MA11hajvaqfgnpx16QjnesFrpgvbaVzcyVzR4VavgRzzy
 .type b__MA11hajvaqfgnpx16QjnesFrpgvbaVzcyVzR4VavgRzzy,%function
 b__MA11hajvaqfgnpx16QjnesFrpgvbaVzcyVzR4VavgRzzy:
 nop
@@ -993,27 +993,27 @@
 b__MA11hajvaqfgnpx11QjnesZrzbel18NqwhfgRapbqrqInyhrRuCz:
 nop
 .text
-.globl b__MA11hajvaqfgnpx7QjnesBcVwR7bc_fuenRi
+.weak b__MA11hajvaqfgnpx7QjnesBcVwR7bc_fuenRi
 .type b__MA11hajvaqfgnpx7QjnesBcVwR7bc_fuenRi,%function
 b__MA11hajvaqfgnpx7QjnesBcVwR7bc_fuenRi:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzA11hajvaqfgnpx8QjnesSqrRRRAF_22__habeqrerq_znc_unfureVzF4_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF4_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF4_RRR6erzbirRAF_21__unfu_pbafg_vgrengbeVCAF_11__unfu_abqrVF4_CiRRRR
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzA11hajvaqfgnpx8QjnesSqrRRRAF_22__habeqrerq_znc_unfureVzF4_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF4_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF4_RRR6erzbirRAF_21__unfu_pbafg_vgrengbeVCAF_11__unfu_abqrVF4_CiRRRR
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzA11hajvaqfgnpx8QjnesSqrRRRAF_22__habeqrerq_znc_unfureVzF4_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF4_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF4_RRR6erzbirRAF_21__unfu_pbafg_vgrengbeVCAF_11__unfu_abqrVF4_CiRRRR,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzA11hajvaqfgnpx8QjnesSqrRRRAF_22__habeqrerq_znc_unfureVzF4_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF4_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF4_RRR6erzbirRAF_21__unfu_pbafg_vgrengbeVCAF_11__unfu_abqrVF4_CiRRRR:
 nop
 .text
-.globl b__MA11hajvaqfgnpx12RysVagresnpr23VavgUrnqrefJvguGrzcyngrVwRRii
+.weak b__MA11hajvaqfgnpx12RysVagresnpr23VavgUrnqrefJvguGrzcyngrVwRRii
 .type b__MA11hajvaqfgnpx12RysVagresnpr23VavgUrnqrefJvguGrzcyngrVwRRii,%function
 b__MA11hajvaqfgnpx12RysVagresnpr23VavgUrnqrefJvguGrzcyngrVwRRii:
 nop
 .text
-.globl b__MA11hajvaqfgnpx8QjnesPsnVwR18psn_erzrzore_fgngrRCAF_14QjnesYbpngvbafR
+.weak b__MA11hajvaqfgnpx8QjnesPsnVwR18psn_erzrzore_fgngrRCAF_14QjnesYbpngvbafR
 .type b__MA11hajvaqfgnpx8QjnesPsnVwR18psn_erzrzore_fgngrRCAF_14QjnesYbpngvbafR,%function
 b__MA11hajvaqfgnpx8QjnesPsnVwR18psn_erzrzore_fgngrRCAF_14QjnesYbpngvbafR:
 nop
 .text
-.globl b__MAFg3__114__fcyvg_ohssreVCwAF_9nyybpngbeVF1_RRR9chfu_onpxRBF1_
+.weak b__MAFg3__114__fcyvg_ohssreVCwAF_9nyybpngbeVF1_RRR9chfu_onpxRBF1_
 .type b__MAFg3__114__fcyvg_ohssreVCwAF_9nyybpngbeVF1_RRR9chfu_onpxRBF1_,%function
 b__MAFg3__114__fcyvg_ohssreVCwAF_9nyybpngbeVF1_RRR9chfu_onpxRBF1_:
 nop
@@ -1028,7 +1028,7 @@
 b__MA11hajvaqfgnpx15HajvaqreSebzCvq4VavgRAF_8NepuRahzR:
 nop
 .text
-.globl b__MA11hajvaqfgnpx7QjnesBcVzR7bc_ertkRi
+.weak b__MA11hajvaqfgnpx7QjnesBcVzR7bc_ertkRi
 .type b__MA11hajvaqfgnpx7QjnesBcVzR7bc_ertkRi,%function
 b__MA11hajvaqfgnpx7QjnesBcVzR7bc_ertkRi:
 nop
@@ -1038,17 +1038,17 @@
 b__MA11hajvaqfgnpx3Rys8PnpurNqqRCAF_7ZncVasbR:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzAF_10havdhr_cgeVA11hajvaqfgnpx7QrkSvyrRAF_14qrsnhyg_qryrgrVF4_RRRRRRAF_22__habeqrerq_znc_unfureVzF8_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF8_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF8_RRR25__rzcynpr_havdhr_xrl_netfVzWEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXzRRRAFB_VWRRRRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF8_CiRRRRoRREXG_QcBG0_
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzAF_10havdhr_cgeVA11hajvaqfgnpx7QrkSvyrRAF_14qrsnhyg_qryrgrVF4_RRRRRRAF_22__habeqrerq_znc_unfureVzF8_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF8_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF8_RRR25__rzcynpr_havdhr_xrl_netfVzWEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXzRRRAFB_VWRRRRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF8_CiRRRRoRREXG_QcBG0_
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzAF_10havdhr_cgeVA11hajvaqfgnpx7QrkSvyrRAF_14qrsnhyg_qryrgrVF4_RRRRRRAF_22__habeqrerq_znc_unfureVzF8_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF8_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF8_RRR25__rzcynpr_havdhr_xrl_netfVzWEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXzRRRAFB_VWRRRRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF8_CiRRRRoRREXG_QcBG0_,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzAF_10havdhr_cgeVA11hajvaqfgnpx7QrkSvyrRAF_14qrsnhyg_qryrgrVF4_RRRRRRAF_22__habeqrerq_znc_unfureVzF8_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF8_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF8_RRR25__rzcynpr_havdhr_xrl_netfVzWEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXzRRRAFB_VWRRRRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF8_CiRRRRoRREXG_QcBG0_:
 nop
 .text
-.globl b__MA11hajvaqfgnpx8QjnesPsnVwR23YbtBssfrgErtvfgreFgevatRwzu
+.weak b__MA11hajvaqfgnpx8QjnesPsnVwR23YbtBssfrgErtvfgreFgevatRwzu
 .type b__MA11hajvaqfgnpx8QjnesPsnVwR23YbtBssfrgErtvfgreFgevatRwzu,%function
 b__MA11hajvaqfgnpx8QjnesPsnVwR23YbtBssfrgErtvfgreFgevatRwzu:
 nop
 .text
-.globl b__MA11hajvaqfgnpx7QjnesBcVwR9FgnpxFvmrRi
+.weak b__MA11hajvaqfgnpx7QjnesBcVwR9FgnpxFvmrRi
 .type b__MA11hajvaqfgnpx7QjnesBcVwR9FgnpxFvmrRi,%function
 b__MA11hajvaqfgnpx7QjnesBcVwR9FgnpxFvmrRi:
 nop
@@ -1078,17 +1078,17 @@
 b__MA11hajvaqfgnpx4Ertf11PheeragNepuRi:
 nop
 .text
-.globl b__MA11hajvaqfgnpx7QjnesBcVzR5bc_rdRi
+.weak b__MA11hajvaqfgnpx7QjnesBcVzR5bc_rdRi
 .type b__MA11hajvaqfgnpx7QjnesBcVzR5bc_rdRi,%function
 b__MA11hajvaqfgnpx7QjnesBcVzR5bc_rdRi:
 nop
 .text
-.globl b__MA11hajvaqfgnpx7QjnesBcVzR6bc_fuyRi
+.weak b__MA11hajvaqfgnpx7QjnesBcVzR6bc_fuyRi
 .type b__MA11hajvaqfgnpx7QjnesBcVzR6bc_fuyRi,%function
 b__MA11hajvaqfgnpx7QjnesBcVzR6bc_fuyRi:
 nop
 .text
-.globl b__MA11hajvaqfgnpx7QjnesBcVzR8bc_qrersRi
+.weak b__MA11hajvaqfgnpx7QjnesBcVzR8bc_qrersRi
 .type b__MA11hajvaqfgnpx7QjnesBcVzR8bc_qrersRi,%function
 b__MA11hajvaqfgnpx7QjnesBcVzR8bc_qrersRi:
 nop
@@ -1098,27 +1098,27 @@
 b__MA11hajvaqfgnpx3Rys19TrgYnfgReebeNqqerffRi:
 nop
 .data
-.globl b__MGIA11hajvaqfgnpx8NezRkvqkR
+.weak b__MGIA11hajvaqfgnpx8NezRkvqkR
 .type b__MGIA11hajvaqfgnpx8NezRkvqkR,%object
 b__MGIA11hajvaqfgnpx8NezRkvqkR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__16irpgbeVA11hajvaqfgnpx7Flzobyf4VasbRAF_9nyybpngbeVF3_RRR24__rzcynpr_onpx_fybj_cnguVWEzF8_zRRRiQcBG_
+.weak b__MAFg3__16irpgbeVA11hajvaqfgnpx7Flzobyf4VasbRAF_9nyybpngbeVF3_RRR24__rzcynpr_onpx_fybj_cnguVWEzF8_zRRRiQcBG_
 .type b__MAFg3__16irpgbeVA11hajvaqfgnpx7Flzobyf4VasbRAF_9nyybpngbeVF3_RRR24__rzcynpr_onpx_fybj_cnguVWEzF8_zRRRiQcBG_,%function
 b__MAFg3__16irpgbeVA11hajvaqfgnpx7Flzobyf4VasbRAF_9nyybpngbeVF3_RRR24__rzcynpr_onpx_fybj_cnguVWEzF8_zRRRiQcBG_:
 nop
 .text
-.globl b__MA11hajvaqfgnpx8QjnesPsnVwR32psn_tah_artngvir_bssfrg_rkgraqrqRCAF_14QjnesYbpngvbafR
+.weak b__MA11hajvaqfgnpx8QjnesPsnVwR32psn_tah_artngvir_bssfrg_rkgraqrqRCAF_14QjnesYbpngvbafR
 .type b__MA11hajvaqfgnpx8QjnesPsnVwR32psn_tah_artngvir_bssfrg_rkgraqrqRCAF_14QjnesYbpngvbafR,%function
 b__MA11hajvaqfgnpx8QjnesPsnVwR32psn_tah_artngvir_bssfrg_rkgraqrqRCAF_14QjnesYbpngvbafR:
 nop
 .text
-.globl b__MA11hajvaqfgnpx8QjnesPsnVzR15psn_nqinapr_ybpRCAF_14QjnesYbpngvbafR
+.weak b__MA11hajvaqfgnpx8QjnesPsnVzR15psn_nqinapr_ybpRCAF_14QjnesYbpngvbafR
 .type b__MA11hajvaqfgnpx8QjnesPsnVzR15psn_nqinapr_ybpRCAF_14QjnesYbpngvbafR,%function
 b__MA11hajvaqfgnpx8QjnesPsnVzR15psn_nqinapr_ybpRCAF_14QjnesYbpngvbafR:
 nop
 .text
-.globl b__MA11hajvaqfgnpx7QjnesBcVzR6phe_bcRi
+.weak b__MA11hajvaqfgnpx7QjnesBcVzR6phe_bcRi
 .type b__MA11hajvaqfgnpx7QjnesBcVzR6phe_bcRi,%function
 b__MA11hajvaqfgnpx7QjnesBcVzR6phe_bcRi:
 nop
@@ -1133,47 +1133,47 @@
 b__MAX11hajvaqfgnpx10ErzbgrZncf11TrgZncfSvyrRi:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_10havdhr_cgeVA11hajvaqfgnpx7ZncVasbRAF_14qrsnhyg_qryrgrVF3_RRRRAF_9nyybpngbeVF6_RRR24__rzcynpr_onpx_fybj_cnguVWF6_RRRiQcBG_
+.weak b__MAFg3__16irpgbeVAF_10havdhr_cgeVA11hajvaqfgnpx7ZncVasbRAF_14qrsnhyg_qryrgrVF3_RRRRAF_9nyybpngbeVF6_RRR24__rzcynpr_onpx_fybj_cnguVWF6_RRRiQcBG_
 .type b__MAFg3__16irpgbeVAF_10havdhr_cgeVA11hajvaqfgnpx7ZncVasbRAF_14qrsnhyg_qryrgrVF3_RRRRAF_9nyybpngbeVF6_RRR24__rzcynpr_onpx_fybj_cnguVWF6_RRRiQcBG_,%function
 b__MAFg3__16irpgbeVAF_10havdhr_cgeVA11hajvaqfgnpx7ZncVasbRAF_14qrsnhyg_qryrgrVF3_RRRRAF_9nyybpngbeVF6_RRR24__rzcynpr_onpx_fybj_cnguVWF6_RRRiQcBG_:
 nop
 .text
-.globl b__MA11hajvaqfgnpx19QjnesRuSenzrJvguUqeVwR12TrgSqrSebzCpRz
+.weak b__MA11hajvaqfgnpx19QjnesRuSenzrJvguUqeVwR12TrgSqrSebzCpRz
 .type b__MA11hajvaqfgnpx19QjnesRuSenzrJvguUqeVwR12TrgSqrSebzCpRz,%function
 b__MA11hajvaqfgnpx19QjnesRuSenzrJvguUqeVwR12TrgSqrSebzCpRz:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF6_RRR21__chfu_onpx_fybj_cnguVF6_RRiBG_
+.weak b__MAFg3__16irpgbeVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF6_RRR21__chfu_onpx_fybj_cnguVF6_RRiBG_
 .type b__MAFg3__16irpgbeVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF6_RRR21__chfu_onpx_fybj_cnguVF6_RRiBG_,%function
 b__MAFg3__16irpgbeVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF6_RRR21__chfu_onpx_fybj_cnguVF6_RRiBG_:
 nop
 .data
-.globl b__MGIA11hajvaqfgnpx11QjnesZrzbelR
+.weak b__MGIA11hajvaqfgnpx11QjnesZrzbelR
 .type b__MGIA11hajvaqfgnpx11QjnesZrzbelR,%object
 b__MGIA11hajvaqfgnpx11QjnesZrzbelR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzAF_10havdhr_cgeVA11hajvaqfgnpx7QrkSvyrRAF_14qrsnhyg_qryrgrVF4_RRRRRRAF_22__habeqrerq_znc_unfureVzF8_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF8_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF8_RRR6erunfuRz
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzAF_10havdhr_cgeVA11hajvaqfgnpx7QrkSvyrRAF_14qrsnhyg_qryrgrVF4_RRRRRRAF_22__habeqrerq_znc_unfureVzF8_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF8_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF8_RRR6erunfuRz
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzAF_10havdhr_cgeVA11hajvaqfgnpx7QrkSvyrRAF_14qrsnhyg_qryrgrVF4_RRRRRRAF_22__habeqrerq_znc_unfureVzF8_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF8_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF8_RRR6erunfuRz,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzAF_10havdhr_cgeVA11hajvaqfgnpx7QrkSvyrRAF_14qrsnhyg_qryrgrVF4_RRRRRRAF_22__habeqrerq_znc_unfureVzF8_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF8_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF8_RRR6erunfuRz:
 nop
 .text
-.globl b__MA11hajvaqfgnpx7QjnesBcVzR6bc_ertRi
+.weak b__MA11hajvaqfgnpx7QjnesBcVzR6bc_ertRi
 .type b__MA11hajvaqfgnpx7QjnesBcVzR6bc_ertRi,%function
 b__MA11hajvaqfgnpx7QjnesBcVzR6bc_ertRi:
 nop
 .text
-.globl b__MA11hajvaqfgnpx7QjnesBcVzR7bc_chfuRi
+.weak b__MA11hajvaqfgnpx7QjnesBcVzR7bc_chfuRi
 .type b__MA11hajvaqfgnpx7QjnesBcVzR7bc_chfuRi,%function
 b__MA11hajvaqfgnpx7QjnesBcVzR7bc_chfuRi:
 nop
 .text
-.globl b__MA11hajvaqfgnpx7QjnesBcVzR8FgnpxCbcRi
+.weak b__MA11hajvaqfgnpx7QjnesBcVzR8FgnpxCbcRi
 .type b__MA11hajvaqfgnpx7QjnesBcVzR8FgnpxCbcRi,%function
 b__MA11hajvaqfgnpx7QjnesBcVzR8FgnpxCbcRi:
 nop
 .text
-.globl b__MA11hajvaqfgnpx16QjnesFrpgvbaVzcyVzR16TrgPvrSebzBssfrgRz
+.weak b__MA11hajvaqfgnpx16QjnesFrpgvbaVzcyVzR16TrgPvrSebzBssfrgRz
 .type b__MA11hajvaqfgnpx16QjnesFrpgvbaVzcyVzR16TrgPvrSebzBssfrgRz,%function
 b__MA11hajvaqfgnpx16QjnesFrpgvbaVzcyVzR16TrgPvrSebzBssfrgRz:
 nop
@@ -1203,7 +1203,7 @@
 b__MA11hajvaqfgnpx10ErtfZvcf64P1Ri:
 nop
 .data
-.globl b__MGIA11hajvaqfgnpx9YbpnyZncfR
+.weak b__MGIA11hajvaqfgnpx9YbpnyZncfR
 .type b__MGIA11hajvaqfgnpx9YbpnyZncfR,%object
 b__MGIA11hajvaqfgnpx9YbpnyZncfR:
 .space __SIZEOF_POINTER__
@@ -1213,12 +1213,12 @@
 b__MA11hajvaqfgnpx12QjnesPsnVasb6xGnoyrR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA11hajvaqfgnpx8QjnesPsnVwR20psn_qrs_psn_ertvfgreRCAF_14QjnesYbpngvbafR
+.weak b__MA11hajvaqfgnpx8QjnesPsnVwR20psn_qrs_psn_ertvfgreRCAF_14QjnesYbpngvbafR
 .type b__MA11hajvaqfgnpx8QjnesPsnVwR20psn_qrs_psn_ertvfgreRCAF_14QjnesYbpngvbafR,%function
 b__MA11hajvaqfgnpx8QjnesPsnVwR20psn_qrs_psn_ertvfgreRCAF_14QjnesYbpngvbafR:
 nop
 .text
-.globl b__MA11hajvaqfgnpx8QjnesPsnVzRP1RCAF_11QjnesZrzbelRCXAF_8QjnesSqrR
+.weak b__MA11hajvaqfgnpx8QjnesPsnVzRP1RCAF_11QjnesZrzbelRCXAF_8QjnesSqrR
 .type b__MA11hajvaqfgnpx8QjnesPsnVzRP1RCAF_11QjnesZrzbelRCXAF_8QjnesSqrR,%function
 b__MA11hajvaqfgnpx8QjnesPsnVzRP1RCAF_11QjnesZrzbelRCXAF_8QjnesSqrR:
 nop
@@ -1228,7 +1228,7 @@
 b__MA11hajvaqfgnpx12QjnesFrpgvbaP2RCAF_6ZrzbelR:
 nop
 .text
-.globl b__MAFg3__120__funerq_cge_cbvagreVCA11hajvaqfgnpx11ZrzbelYbpnyRAF_14qrsnhyg_qryrgrVF2_RRAF_9nyybpngbeVF2_RRR16__ba_mreb_funerqRi
+.weak b__MAFg3__120__funerq_cge_cbvagreVCA11hajvaqfgnpx11ZrzbelYbpnyRAF_14qrsnhyg_qryrgrVF2_RRAF_9nyybpngbeVF2_RRR16__ba_mreb_funerqRi
 .type b__MAFg3__120__funerq_cge_cbvagreVCA11hajvaqfgnpx11ZrzbelYbpnyRAF_14qrsnhyg_qryrgrVF2_RRAF_9nyybpngbeVF2_RRR16__ba_mreb_funerqRi,%function
 b__MAFg3__120__funerq_cge_cbvagreVCA11hajvaqfgnpx11ZrzbelYbpnyRAF_14qrsnhyg_qryrgrVF2_RRAF_9nyybpngbeVF2_RRR16__ba_mreb_funerqRi:
 nop
@@ -1243,22 +1243,22 @@
 b__MA11hajvaqfgnpx8NezRkvqk10YbtEnjQngnRi:
 nop
 .text
-.globl b__MAFg3__15qrdhrVuAF_9nyybpngbeVuRRR9chfu_onpxRBu
+.weak b__MAFg3__15qrdhrVuAF_9nyybpngbeVuRRR9chfu_onpxRBu
 .type b__MAFg3__15qrdhrVuAF_9nyybpngbeVuRRR9chfu_onpxRBu,%function
 b__MAFg3__15qrdhrVuAF_9nyybpngbeVuRRR9chfu_onpxRBu:
 nop
 .text
-.globl b__MA11hajvaqfgnpx8QjnesPsnVzR17psn_erfgber_fgngrRCAF_14QjnesYbpngvbafR
+.weak b__MA11hajvaqfgnpx8QjnesPsnVzR17psn_erfgber_fgngrRCAF_14QjnesYbpngvbafR
 .type b__MA11hajvaqfgnpx8QjnesPsnVzR17psn_erfgber_fgngrRCAF_14QjnesYbpngvbafR,%function
 b__MA11hajvaqfgnpx8QjnesPsnVzR17psn_erfgber_fgngrRCAF_14QjnesYbpngvbafR:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzA11hajvaqfgnpx19QjnesRuSenzrJvguUqeVzR7SqrVasbRRRAF_22__habeqrerq_znc_unfureVzF6_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF6_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF6_RRR25__rzcynpr_havdhr_xrl_netfVzWEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXzRRRAFZ_VWRRRRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF6_CiRRRRoRREXG_QcBG0_
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzA11hajvaqfgnpx19QjnesRuSenzrJvguUqeVzR7SqrVasbRRRAF_22__habeqrerq_znc_unfureVzF6_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF6_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF6_RRR25__rzcynpr_havdhr_xrl_netfVzWEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXzRRRAFZ_VWRRRRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF6_CiRRRRoRREXG_QcBG0_
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzA11hajvaqfgnpx19QjnesRuSenzrJvguUqeVzR7SqrVasbRRRAF_22__habeqrerq_znc_unfureVzF6_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF6_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF6_RRR25__rzcynpr_havdhr_xrl_netfVzWEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXzRRRAFZ_VWRRRRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF6_CiRRRRoRREXG_QcBG0_,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzA11hajvaqfgnpx19QjnesRuSenzrJvguUqeVzR7SqrVasbRRRAF_22__habeqrerq_znc_unfureVzF6_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF6_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF6_RRR25__rzcynpr_havdhr_xrl_netfVzWEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXzRRRAFZ_VWRRRRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF6_CiRRRRoRREXG_QcBG0_:
 nop
 .text
-.globl b__MA11hajvaqfgnpx12QjnesRuSenzrVzRP2RCAF_6ZrzbelR
+.weak b__MA11hajvaqfgnpx12QjnesRuSenzrVzRP2RCAF_6ZrzbelR
 .type b__MA11hajvaqfgnpx12QjnesRuSenzrVzRP2RCAF_6ZrzbelR,%function
 b__MA11hajvaqfgnpx12QjnesRuSenzrVzRP2RCAF_6ZrzbelR:
 nop
@@ -1283,17 +1283,17 @@
 b__MA11hajvaqfgnpx8Hajvaqre11SvyyVaSenzrRCAF_7ZncVasbRCAF_3RysRzz:
 nop
 .text
-.globl b__MAFg3__15qrdhrVA11hajvaqfgnpx14QjnesYbpngvbafRAF_9nyybpngbeVF2_RRR9chfu_onpxREXF2_
+.weak b__MAFg3__15qrdhrVA11hajvaqfgnpx14QjnesYbpngvbafRAF_9nyybpngbeVF2_RRR9chfu_onpxREXF2_
 .type b__MAFg3__15qrdhrVA11hajvaqfgnpx14QjnesYbpngvbafRAF_9nyybpngbeVF2_RRR9chfu_onpxREXF2_,%function
 b__MAFg3__15qrdhrVA11hajvaqfgnpx14QjnesYbpngvbafRAF_9nyybpngbeVF2_RRR9chfu_onpxREXF2_:
 nop
 .text
-.globl b__MA11hajvaqfgnpx11QjnesZrzbel10ErnqFvtarqVfRRoCz
+.weak b__MA11hajvaqfgnpx11QjnesZrzbel10ErnqFvtarqVfRRoCz
 .type b__MA11hajvaqfgnpx11QjnesZrzbel10ErnqFvtarqVfRRoCz,%function
 b__MA11hajvaqfgnpx11QjnesZrzbel10ErnqFvtarqVfRRoCz:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_4cnveVAF_10funerq_cgeVA11hajvaqfgnpx3RysRRRoRRRRAF_22__habeqrerq_znc_unfureVF7_FR_AF_4unfuVF7_RRYo1RRRAF_21__habeqrerq_znc_rdhnyVF7_FR_AF_8rdhny_gbVF7_RRYo1RRRAF5_VFR_RRR6erunfuRz
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_4cnveVAF_10funerq_cgeVA11hajvaqfgnpx3RysRRRoRRRRAF_22__habeqrerq_znc_unfureVF7_FR_AF_4unfuVF7_RRYo1RRRAF_21__habeqrerq_znc_rdhnyVF7_FR_AF_8rdhny_gbVF7_RRYo1RRRAF5_VFR_RRR6erunfuRz
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_4cnveVAF_10funerq_cgeVA11hajvaqfgnpx3RysRRRoRRRRAF_22__habeqrerq_znc_unfureVF7_FR_AF_4unfuVF7_RRYo1RRRAF_21__habeqrerq_znc_rdhnyVF7_FR_AF_8rdhny_gbVF7_RRYo1RRRAF5_VFR_RRR6erunfuRz,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_4cnveVAF_10funerq_cgeVA11hajvaqfgnpx3RysRRRoRRRRAF_22__habeqrerq_znc_unfureVF7_FR_AF_4unfuVF7_RRYo1RRRAF_21__habeqrerq_znc_rdhnyVF7_FR_AF_8rdhny_gbVF7_RRYo1RRRAF5_VFR_RRR6erunfuRz:
 nop
@@ -1303,12 +1303,12 @@
 b__MA11hajvaqfgnpx6Zrzbel9ErnqShyylRzCiz:
 nop
 .text
-.globl b__MAFg3__114__fcyvg_ohssreVCuEAF_9nyybpngbeVF1_RRR10chfu_sebagREXF1_
+.weak b__MAFg3__114__fcyvg_ohssreVCuEAF_9nyybpngbeVF1_RRR10chfu_sebagREXF1_
 .type b__MAFg3__114__fcyvg_ohssreVCuEAF_9nyybpngbeVF1_RRR10chfu_sebagREXF1_,%function
 b__MAFg3__114__fcyvg_ohssreVCuEAF_9nyybpngbeVF1_RRR10chfu_sebagREXF1_:
 nop
 .text
-.globl b__MA11hajvaqfgnpx7QjnesBcVzR13bc_qrers_fvmrRi
+.weak b__MA11hajvaqfgnpx7QjnesBcVzR13bc_qrers_fvmrRi
 .type b__MA11hajvaqfgnpx7QjnesBcVzR13bc_qrers_fvmrRi,%function
 b__MA11hajvaqfgnpx7QjnesBcVzR13bc_qrers_fvmrRi:
 nop
@@ -1318,17 +1318,17 @@
 b__MA11hajvaqfgnpx3Rys10TrgOhvyqVQRCAF_6ZrzbelR:
 nop
 .text
-.globl b__MA11hajvaqfgnpx16QjnesFrpgvbaVzcyVzR12TrgSqrSebzCpRz
+.weak b__MA11hajvaqfgnpx16QjnesFrpgvbaVzcyVzR12TrgSqrSebzCpRz
 .type b__MA11hajvaqfgnpx16QjnesFrpgvbaVzcyVzR12TrgSqrSebzCpRz,%function
 b__MA11hajvaqfgnpx16QjnesFrpgvbaVzcyVzR12TrgSqrSebzCpRz:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA11hajvaqfgnpx14YbpnySenzrQngnRAF_9nyybpngbeVF2_RRR24__rzcynpr_onpx_fybj_cnguVWECAF1_7ZncVasbRzzEN1_XpvRRRiQcBG_
+.weak b__MAFg3__16irpgbeVA11hajvaqfgnpx14YbpnySenzrQngnRAF_9nyybpngbeVF2_RRR24__rzcynpr_onpx_fybj_cnguVWECAF1_7ZncVasbRzzEN1_XpvRRRiQcBG_
 .type b__MAFg3__16irpgbeVA11hajvaqfgnpx14YbpnySenzrQngnRAF_9nyybpngbeVF2_RRR24__rzcynpr_onpx_fybj_cnguVWECAF1_7ZncVasbRzzEN1_XpvRRRiQcBG_,%function
 b__MAFg3__16irpgbeVA11hajvaqfgnpx14YbpnySenzrQngnRAF_9nyybpngbeVF2_RRR24__rzcynpr_onpx_fybj_cnguVWECAF1_7ZncVasbRzzEN1_XpvRRRiQcBG_:
 nop
 .text
-.globl b__MA11hajvaqfgnpx8QjnesPsnVzR18psn_qrs_psn_bssfrgRCAF_14QjnesYbpngvbafR
+.weak b__MA11hajvaqfgnpx8QjnesPsnVzR18psn_qrs_psn_bssfrgRCAF_14QjnesYbpngvbafR
 .type b__MA11hajvaqfgnpx8QjnesPsnVzR18psn_qrs_psn_bssfrgRCAF_14QjnesYbpngvbafR,%function
 b__MA11hajvaqfgnpx8QjnesPsnVzR18psn_qrs_psn_bssfrgRCAF_14QjnesYbpngvbafR:
 nop
@@ -1338,7 +1338,7 @@
 b__MA11hajvaqfgnpx3Rys25PerngrVagresnprSebzZrzbelRCAF_6ZrzbelR:
 nop
 .text
-.globl b__MAFg3__1cyVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_12onfvp_fgevatVG_G0_G1_RREXF9_F6_
+.weak b__MAFg3__1cyVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_12onfvp_fgevatVG_G0_G1_RREXF9_F6_
 .type b__MAFg3__1cyVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_12onfvp_fgevatVG_G0_G1_RREXF9_F6_,%function
 b__MAFg3__1cyVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_12onfvp_fgevatVG_G0_G1_RREXF9_F6_:
 nop
@@ -1348,7 +1348,7 @@
 b__MA11hajvaqfgnpx8WvgQroht6TrgRysRCAF_4ZncfRz:
 nop
 .text
-.globl b__MAFg3__120__funerq_cge_cbvagreVCA11hajvaqfgnpx12ZrzbelErzbgrRAF_14qrsnhyg_qryrgrVF2_RRAF_9nyybpngbeVF2_RRR21__ba_mreb_funerq_jrnxRi
+.weak b__MAFg3__120__funerq_cge_cbvagreVCA11hajvaqfgnpx12ZrzbelErzbgrRAF_14qrsnhyg_qryrgrVF2_RRAF_9nyybpngbeVF2_RRR21__ba_mreb_funerq_jrnxRi
 .type b__MAFg3__120__funerq_cge_cbvagreVCA11hajvaqfgnpx12ZrzbelErzbgrRAF_14qrsnhyg_qryrgrVF2_RRAF_9nyybpngbeVF2_RRR21__ba_mreb_funerq_jrnxRi,%function
 b__MAFg3__120__funerq_cge_cbvagreVCA11hajvaqfgnpx12ZrzbelErzbgrRAF_14qrsnhyg_qryrgrVF2_RRAF_9nyybpngbeVF2_RRR21__ba_mreb_funerq_jrnxRi:
 nop
@@ -1373,12 +1373,12 @@
 b__MA11hajvaqfgnpx15QrkSvyrSebzSvyr6PerngrRzEXAFg3__112onfvp_fgevatVpAF1_11pune_genvgfVpRRAF1_9nyybpngbeVpRRRR:
 nop
 .text
-.globl b__MA11hajvaqfgnpx16QjnesFrpgvbaVzcyVzR4RinyRCXAF_8QjnesPvrRCAF_6ZrzbelREXAF_14QjnesYbpngvbafRCAF_4ErtfRCo
+.weak b__MA11hajvaqfgnpx16QjnesFrpgvbaVzcyVzR4RinyRCXAF_8QjnesPvrRCAF_6ZrzbelREXAF_14QjnesYbpngvbafRCAF_4ErtfRCo
 .type b__MA11hajvaqfgnpx16QjnesFrpgvbaVzcyVzR4RinyRCXAF_8QjnesPvrRCAF_6ZrzbelREXAF_14QjnesYbpngvbafRCAF_4ErtfRCo,%function
 b__MA11hajvaqfgnpx16QjnesFrpgvbaVzcyVzR4RinyRCXAF_8QjnesPvrRCAF_6ZrzbelREXAF_14QjnesYbpngvbafRCAF_4ErtfRCo:
 nop
 .text
-.globl b__MA11hajvaqfgnpx7QjnesBcVwR7bc_oertRi
+.weak b__MA11hajvaqfgnpx7QjnesBcVwR7bc_oertRi
 .type b__MA11hajvaqfgnpx7QjnesBcVwR7bc_oertRi,%function
 b__MA11hajvaqfgnpx7QjnesBcVwR7bc_oertRi:
 nop
@@ -1398,17 +1398,17 @@
 b__MA11hajvaqfgnpx7QrkSvyr6PerngrRzCAF_6ZrzbelRCAF_7ZncVasbR:
 nop
 .data
-.globl b__MGIA11hajvaqfgnpx6TybonyR
+.weak b__MGIA11hajvaqfgnpx6TybonyR
 .type b__MGIA11hajvaqfgnpx6TybonyR,%object
 b__MGIA11hajvaqfgnpx6TybonyR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzA11hajvaqfgnpx19QjnesRuSenzrJvguUqeVzR7SqrVasbRRRAF_22__habeqrerq_znc_unfureVzF6_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF6_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF6_RRR6erunfuRz
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzA11hajvaqfgnpx19QjnesRuSenzrJvguUqeVzR7SqrVasbRRRAF_22__habeqrerq_znc_unfureVzF6_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF6_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF6_RRR6erunfuRz
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzA11hajvaqfgnpx19QjnesRuSenzrJvguUqeVzR7SqrVasbRRRAF_22__habeqrerq_znc_unfureVzF6_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF6_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF6_RRR6erunfuRz,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzA11hajvaqfgnpx19QjnesRuSenzrJvguUqeVzR7SqrVasbRRRAF_22__habeqrerq_znc_unfureVzF6_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF6_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF6_RRR6erunfuRz:
 nop
 .text
-.globl b__MA11hajvaqfgnpx7QjnesBcVwR6bc_abcRi
+.weak b__MA11hajvaqfgnpx7QjnesBcVwR6bc_abcRi
 .type b__MA11hajvaqfgnpx7QjnesBcVwR6bc_abcRi,%function
 b__MA11hajvaqfgnpx7QjnesBcVwR6bc_abcRi:
 nop
@@ -1418,7 +1418,7 @@
 b__MA11hajvaqfgnpx8QrkSvyrf20TrgZrgubqVasbezngvbaRCAF_4ZncfRCAF_7ZncVasbRzCAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRRCz:
 nop
 .text
-.globl b__MA11hajvaqfgnpx12RysVagresnpr29TrgTybonyInevnoyrJvguGrzcyngrV9rys64_flzRRoEXAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRRCz
+.weak b__MA11hajvaqfgnpx12RysVagresnpr29TrgTybonyInevnoyrJvguGrzcyngrV9rys64_flzRRoEXAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRRCz
 .type b__MA11hajvaqfgnpx12RysVagresnpr29TrgTybonyInevnoyrJvguGrzcyngrV9rys64_flzRRoEXAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRRCz,%function
 b__MA11hajvaqfgnpx12RysVagresnpr29TrgTybonyInevnoyrJvguGrzcyngrV9rys64_flzRRoEXAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRRCz:
 nop
@@ -1428,22 +1428,22 @@
 b__MA11hajvaqfgnpx10ErtfZvcf642cpRi:
 nop
 .text
-.globl b__MA11hajvaqfgnpx8QjnesPsnVwR15psn_nqinapr_ybpRCAF_14QjnesYbpngvbafR
+.weak b__MA11hajvaqfgnpx8QjnesPsnVwR15psn_nqinapr_ybpRCAF_14QjnesYbpngvbafR
 .type b__MA11hajvaqfgnpx8QjnesPsnVwR15psn_nqinapr_ybpRCAF_14QjnesYbpngvbafR,%function
 b__MA11hajvaqfgnpx8QjnesPsnVwR15psn_nqinapr_ybpRCAF_14QjnesYbpngvbafR:
 nop
 .text
-.globl b__MA11hajvaqfgnpx8QjnesPsnVzR14psn_fnzr_inyhrRCAF_14QjnesYbpngvbafR
+.weak b__MA11hajvaqfgnpx8QjnesPsnVzR14psn_fnzr_inyhrRCAF_14QjnesYbpngvbafR
 .type b__MA11hajvaqfgnpx8QjnesPsnVzR14psn_fnzr_inyhrRCAF_14QjnesYbpngvbafR,%function
 b__MA11hajvaqfgnpx8QjnesPsnVzR14psn_fnzr_inyhrRCAF_14QjnesYbpngvbafR:
 nop
 .data
-.globl b__MGIA11hajvaqfgnpx16QjnesFrpgvbaVzcyVwRR
+.weak b__MGIA11hajvaqfgnpx16QjnesFrpgvbaVzcyVwRR
 .type b__MGIA11hajvaqfgnpx16QjnesFrpgvbaVzcyVwRR,%object
 b__MGIA11hajvaqfgnpx16QjnesFrpgvbaVzcyVwRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA11hajvaqfgnpx12RysVagresnpr11ErnqOhvyqVQV10rys64_abgrRRAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRRi
+.weak b__MA11hajvaqfgnpx12RysVagresnpr11ErnqOhvyqVQV10rys64_abgrRRAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRRi
 .type b__MA11hajvaqfgnpx12RysVagresnpr11ErnqOhvyqVQV10rys64_abgrRRAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRRi,%function
 b__MA11hajvaqfgnpx12RysVagresnpr11ErnqOhvyqVQV10rys64_abgrRRAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRRi:
 nop
@@ -1453,7 +1453,7 @@
 b__MA11hajvaqfgnpx18ZrzbelBssyvarCnegfQ1Ri:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzN4096_uRRAF_22__habeqrerq_znc_unfureVzF3_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF3_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF3_RRR8__erunfuRz
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzN4096_uRRAF_22__habeqrerq_znc_unfureVzF3_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF3_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF3_RRR8__erunfuRz
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzN4096_uRRAF_22__habeqrerq_znc_unfureVzF3_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF3_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF3_RRR8__erunfuRz,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzN4096_uRRAF_22__habeqrerq_znc_unfureVzF3_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF3_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF3_RRR8__erunfuRz:
 nop
@@ -1463,12 +1463,12 @@
 b__MA11hajvaqfgnpx10ErtfK86_642cpRi:
 nop
 .text
-.globl b__MA11hajvaqfgnpx8QjnesPsnVwR11psn_frg_ybpRCAF_14QjnesYbpngvbafR
+.weak b__MA11hajvaqfgnpx8QjnesPsnVwR11psn_frg_ybpRCAF_14QjnesYbpngvbafR
 .type b__MA11hajvaqfgnpx8QjnesPsnVwR11psn_frg_ybpRCAF_14QjnesYbpngvbafR,%function
 b__MA11hajvaqfgnpx8QjnesPsnVwR11psn_frg_ybpRCAF_14QjnesYbpngvbafR:
 nop
 .text
-.globl b__MA11hajvaqfgnpx7QjnesBcVwR6bc_qhcRi
+.weak b__MA11hajvaqfgnpx7QjnesBcVwR6bc_qhcRi
 .type b__MA11hajvaqfgnpx7QjnesBcVwR6bc_qhcRi,%function
 b__MA11hajvaqfgnpx7QjnesBcVwR6bc_qhcRi:
 nop
@@ -1488,12 +1488,12 @@
 b__MA11hajvaqfgnpx10ErtfZvcf6415TrgCpNqwhfgzragRzCAF_3RysR:
 nop
 .text
-.globl b__MAFg3__15qrdhrVuAF_9nyybpngbeVuRRR9chfu_onpxREXu
+.weak b__MAFg3__15qrdhrVuAF_9nyybpngbeVuRRR9chfu_onpxREXu
 .type b__MAFg3__15qrdhrVuAF_9nyybpngbeVuRRR9chfu_onpxREXu,%function
 b__MAFg3__15qrdhrVuAF_9nyybpngbeVuRRR9chfu_onpxREXu:
 nop
 .text
-.globl b__MA11hajvaqfgnpx8QjnesPsnVzR21psn_qrs_psn_bssfrg_fsRCAF_14QjnesYbpngvbafR
+.weak b__MA11hajvaqfgnpx8QjnesPsnVzR21psn_qrs_psn_bssfrg_fsRCAF_14QjnesYbpngvbafR
 .type b__MA11hajvaqfgnpx8QjnesPsnVzR21psn_qrs_psn_bssfrg_fsRCAF_14QjnesYbpngvbafR,%function
 b__MA11hajvaqfgnpx8QjnesPsnVzR21psn_qrs_psn_bssfrg_fsRCAF_14QjnesYbpngvbafR:
 nop
@@ -1513,12 +1513,12 @@
 b__MA11hajvaqfgnpx19ZrzbelBssyvarOhssreP1RCXuzz:
 nop
 .text
-.globl b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
+.weak b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
 .type b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_,%function
 b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_:
 nop
 .text
-.globl b__MA11hajvaqfgnpx16QjnesFrpgvbaVzcyVwRP2RCAF_6ZrzbelR
+.weak b__MA11hajvaqfgnpx16QjnesFrpgvbaVzcyVwRP2RCAF_6ZrzbelR
 .type b__MA11hajvaqfgnpx16QjnesFrpgvbaVzcyVwRP2RCAF_6ZrzbelR,%function
 b__MA11hajvaqfgnpx16QjnesFrpgvbaVzcyVwRP2RCAF_6ZrzbelR:
 nop
@@ -1538,52 +1538,52 @@
 b__MA11hajvaqfgnpx7ErtfNez6frg_cpRz:
 nop
 .text
-.globl b__MA11hajvaqfgnpx16QjnesFrpgvbaVzcyVwR16TrgSqrSebzBssfrgRz
+.weak b__MA11hajvaqfgnpx16QjnesFrpgvbaVzcyVwR16TrgSqrSebzBssfrgRz
 .type b__MA11hajvaqfgnpx16QjnesFrpgvbaVzcyVwR16TrgSqrSebzBssfrgRz,%function
 b__MA11hajvaqfgnpx16QjnesFrpgvbaVzcyVwR16TrgSqrSebzBssfrgRz:
 nop
 .text
-.globl b__MA11hajvaqfgnpx7QjnesBcVwR5bc_rdRi
+.weak b__MA11hajvaqfgnpx7QjnesBcVwR5bc_rdRi
 .type b__MA11hajvaqfgnpx7QjnesBcVwR5bc_rdRi,%function
 b__MA11hajvaqfgnpx7QjnesBcVwR5bc_rdRi:
 nop
 .text
-.globl b__MA11hajvaqfgnpx7QjnesBcVzR7bc_fuenRi
+.weak b__MA11hajvaqfgnpx7QjnesBcVzR7bc_fuenRi
 .type b__MA11hajvaqfgnpx7QjnesBcVzR7bc_fuenRi,%function
 b__MA11hajvaqfgnpx7QjnesBcVzR7bc_fuenRi:
 nop
 .text
-.globl b__MA11hajvaqfgnpx12RysVagresnpr21ErnqOhvyqVQSebzZrzbelV9rys32_uqe10rys32_fuqe10rys32_abgrRRAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRRCAF_6ZrzbelR
+.weak b__MA11hajvaqfgnpx12RysVagresnpr21ErnqOhvyqVQSebzZrzbelV9rys32_uqe10rys32_fuqe10rys32_abgrRRAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRRCAF_6ZrzbelR
 .type b__MA11hajvaqfgnpx12RysVagresnpr21ErnqOhvyqVQSebzZrzbelV9rys32_uqe10rys32_fuqe10rys32_abgrRRAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRRCAF_6ZrzbelR,%function
 b__MA11hajvaqfgnpx12RysVagresnpr21ErnqOhvyqVQSebzZrzbelV9rys32_uqe10rys32_fuqe10rys32_abgrRRAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRRCAF_6ZrzbelR:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_4cnveVAF_10funerq_cgeVA11hajvaqfgnpx3RysRRRoRRRRAF_22__habeqrerq_znc_unfureVF7_FR_AF_4unfuVF7_RRYo1RRRAF_21__habeqrerq_znc_rdhnyVF7_FR_AF_8rdhny_gbVF7_RRYo1RRRAF5_VFR_RRR25__rzcynpr_havdhr_xrl_netfVF7_WEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXF7_RRRAFG_VWRRRRRRAF8_VAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVFR_CiRRRRoRREXG_QcBG0_
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_4cnveVAF_10funerq_cgeVA11hajvaqfgnpx3RysRRRoRRRRAF_22__habeqrerq_znc_unfureVF7_FR_AF_4unfuVF7_RRYo1RRRAF_21__habeqrerq_znc_rdhnyVF7_FR_AF_8rdhny_gbVF7_RRYo1RRRAF5_VFR_RRR25__rzcynpr_havdhr_xrl_netfVF7_WEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXF7_RRRAFG_VWRRRRRRAF8_VAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVFR_CiRRRRoRREXG_QcBG0_
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_4cnveVAF_10funerq_cgeVA11hajvaqfgnpx3RysRRRoRRRRAF_22__habeqrerq_znc_unfureVF7_FR_AF_4unfuVF7_RRYo1RRRAF_21__habeqrerq_znc_rdhnyVF7_FR_AF_8rdhny_gbVF7_RRYo1RRRAF5_VFR_RRR25__rzcynpr_havdhr_xrl_netfVF7_WEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXF7_RRRAFG_VWRRRRRRAF8_VAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVFR_CiRRRRoRREXG_QcBG0_,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_4cnveVAF_10funerq_cgeVA11hajvaqfgnpx3RysRRRoRRRRAF_22__habeqrerq_znc_unfureVF7_FR_AF_4unfuVF7_RRYo1RRRAF_21__habeqrerq_znc_rdhnyVF7_FR_AF_8rdhny_gbVF7_RRYo1RRRAF5_VFR_RRR25__rzcynpr_havdhr_xrl_netfVF7_WEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXF7_RRRAFG_VWRRRRRRAF8_VAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVFR_CiRRRRoRREXG_QcBG0_:
 nop
 .text
-.globl b__MA11hajvaqfgnpx7QjnesBcVwR7bc_bireRi
+.weak b__MA11hajvaqfgnpx7QjnesBcVwR7bc_bireRi
 .type b__MA11hajvaqfgnpx7QjnesBcVwR7bc_bireRi,%function
 b__MA11hajvaqfgnpx7QjnesBcVwR7bc_bireRi:
 nop
 .data
-.globl b__MGIA11hajvaqfgnpx12QjnesRuSenzrVzRR
+.weak b__MGIA11hajvaqfgnpx12QjnesRuSenzrVzRR
 .type b__MGIA11hajvaqfgnpx12QjnesRuSenzrVzRR,%object
 b__MGIA11hajvaqfgnpx12QjnesRuSenzrVzRR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIA11hajvaqfgnpx14RysVagresnpr64R
+.weak b__MGIA11hajvaqfgnpx14RysVagresnpr64R
 .type b__MGIA11hajvaqfgnpx14RysVagresnpr64R,%object
 b__MGIA11hajvaqfgnpx14RysVagresnpr64R:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzN4096_uRRAF_22__habeqrerq_znc_unfureVzF3_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF3_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF3_RRR14__renfr_havdhrVzRRzEXG_
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzN4096_uRRAF_22__habeqrerq_znc_unfureVzF3_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF3_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF3_RRR14__renfr_havdhrVzRRzEXG_
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzN4096_uRRAF_22__habeqrerq_znc_unfureVzF3_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF3_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF3_RRR14__renfr_havdhrVzRRzEXG_,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzN4096_uRRAF_22__habeqrerq_znc_unfureVzF3_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF3_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF3_RRR14__renfr_havdhrVzRRzEXG_:
 nop
 .text
-.globl b__MAFg3__127__vafregvba_fbeg_vapbzcyrgrVEMA11hajvaqfgnpx7Flzobyf7TrgAnzrV9rys32_flzRRozCAF1_6ZrzbelRCAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRCzRHyEXAF2_4VasbRFU_R_CFS_RRoG0_FY_G_
+.weak b__MAFg3__127__vafregvba_fbeg_vapbzcyrgrVEMA11hajvaqfgnpx7Flzobyf7TrgAnzrV9rys32_flzRRozCAF1_6ZrzbelRCAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRCzRHyEXAF2_4VasbRFU_R_CFS_RRoG0_FY_G_
 .type b__MAFg3__127__vafregvba_fbeg_vapbzcyrgrVEMA11hajvaqfgnpx7Flzobyf7TrgAnzrV9rys32_flzRRozCAF1_6ZrzbelRCAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRCzRHyEXAF2_4VasbRFU_R_CFS_RRoG0_FY_G_,%function
 b__MAFg3__127__vafregvba_fbeg_vapbzcyrgrVEMA11hajvaqfgnpx7Flzobyf7TrgAnzrV9rys32_flzRRozCAF1_6ZrzbelRCAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRCzRHyEXAF2_4VasbRFU_R_CFS_RRoG0_FY_G_:
 nop
@@ -1598,12 +1598,12 @@
 b__MA11hajvaqfgnpx8QrkSvyrfQ0Ri:
 nop
 .text
-.globl b__MA11hajvaqfgnpx8QjnesPsnVwR10psn_bssfrgRCAF_14QjnesYbpngvbafR
+.weak b__MA11hajvaqfgnpx8QjnesPsnVwR10psn_bssfrgRCAF_14QjnesYbpngvbafR
 .type b__MA11hajvaqfgnpx8QjnesPsnVwR10psn_bssfrgRCAF_14QjnesYbpngvbafR,%function
 b__MA11hajvaqfgnpx8QjnesPsnVwR10psn_bssfrgRCAF_14QjnesYbpngvbafR:
 nop
 .text
-.globl b__MA11hajvaqfgnpx7QjnesBcVwR6bc_zbqRi
+.weak b__MA11hajvaqfgnpx7QjnesBcVwR6bc_zbqRi
 .type b__MA11hajvaqfgnpx7QjnesBcVwR6bc_zbqRi,%function
 b__MA11hajvaqfgnpx7QjnesBcVwR6bc_zbqRi:
 nop
@@ -1613,7 +1613,7 @@
 b__MA11hajvaqfgnpx3Rys4FgrcRzCAF_4ErtfRCAF_6ZrzbelRCo:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_4cnveVAF_10funerq_cgeVA11hajvaqfgnpx3RysRRRoRRRRAF_22__habeqrerq_znc_unfureVF7_FR_AF_4unfuVF7_RRYo1RRRAF_21__habeqrerq_znc_rdhnyVF7_FR_AF_8rdhny_gbVF7_RRYo1RRRAF5_VFR_RRR8__erunfuRz
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_4cnveVAF_10funerq_cgeVA11hajvaqfgnpx3RysRRRoRRRRAF_22__habeqrerq_znc_unfureVF7_FR_AF_4unfuVF7_RRYo1RRRAF_21__habeqrerq_znc_rdhnyVF7_FR_AF_8rdhny_gbVF7_RRYo1RRRAF5_VFR_RRR8__erunfuRz
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_4cnveVAF_10funerq_cgeVA11hajvaqfgnpx3RysRRRoRRRRAF_22__habeqrerq_znc_unfureVF7_FR_AF_4unfuVF7_RRYo1RRRAF_21__habeqrerq_znc_rdhnyVF7_FR_AF_8rdhny_gbVF7_RRYo1RRRAF5_VFR_RRR8__erunfuRz,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_4cnveVAF_10funerq_cgeVA11hajvaqfgnpx3RysRRRoRRRRAF_22__habeqrerq_znc_unfureVF7_FR_AF_4unfuVF7_RRYo1RRRAF_21__habeqrerq_znc_rdhnyVF7_FR_AF_8rdhny_gbVF7_RRYo1RRRAF5_VFR_RRR8__erunfuRz:
 nop
@@ -1623,17 +1623,17 @@
 b__MA11hajvaqfgnpx11ZrzbelYbpny4ErnqRzCiz:
 nop
 .data
-.globl b__MGIA11hajvaqfgnpx7FlzobyfR
+.weak b__MGIA11hajvaqfgnpx7FlzobyfR
 .type b__MGIA11hajvaqfgnpx7FlzobyfR,%object
 b__MGIA11hajvaqfgnpx7FlzobyfR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA11hajvaqfgnpx8QjnesPsnVzR11psn_frg_ybpRCAF_14QjnesYbpngvbafR
+.weak b__MA11hajvaqfgnpx8QjnesPsnVzR11psn_frg_ybpRCAF_14QjnesYbpngvbafR
 .type b__MA11hajvaqfgnpx8QjnesPsnVzR11psn_frg_ybpRCAF_14QjnesYbpngvbafR,%function
 b__MA11hajvaqfgnpx8QjnesPsnVzR11psn_frg_ybpRCAF_14QjnesYbpngvbafR:
 nop
 .text
-.globl b__MA11hajvaqfgnpx8QjnesPsnVzRP2RCAF_11QjnesZrzbelRCXAF_8QjnesSqrR
+.weak b__MA11hajvaqfgnpx8QjnesPsnVzRP2RCAF_11QjnesZrzbelRCXAF_8QjnesSqrR
 .type b__MA11hajvaqfgnpx8QjnesPsnVzRP2RCAF_11QjnesZrzbelRCXAF_8QjnesSqrR,%function
 b__MA11hajvaqfgnpx8QjnesPsnVzRP2RCAF_11QjnesZrzbelRCXAF_8QjnesSqrR:
 nop
@@ -1643,7 +1643,7 @@
 b__MA11hajvaqfgnpx8WvgQroht11CebprffNepuRi:
 nop
 .text
-.globl b__MA11hajvaqfgnpx16QjnesFrpgvbaVzcyVwR18TrgPsnYbpngvbaVasbRzCXAF_8QjnesSqrRCAF_14QjnesYbpngvbafR
+.weak b__MA11hajvaqfgnpx16QjnesFrpgvbaVzcyVwR18TrgPsnYbpngvbaVasbRzCXAF_8QjnesSqrRCAF_14QjnesYbpngvbafR
 .type b__MA11hajvaqfgnpx16QjnesFrpgvbaVzcyVwR18TrgPsnYbpngvbaVasbRzCXAF_8QjnesSqrRCAF_14QjnesYbpngvbafR,%function
 b__MA11hajvaqfgnpx16QjnesFrpgvbaVzcyVwR18TrgPsnYbpngvbaVasbRzCXAF_8QjnesSqrRCAF_14QjnesYbpngvbafR:
 nop
@@ -1653,17 +1653,17 @@
 b__MA11hajvaqfgnpx3Rys10VainyvqngrRi:
 nop
 .text
-.globl b__MA11hajvaqfgnpx19QjnesRuSenzrJvguUqeVzRP2RCAF_6ZrzbelR
+.weak b__MA11hajvaqfgnpx19QjnesRuSenzrJvguUqeVzRP2RCAF_6ZrzbelR
 .type b__MA11hajvaqfgnpx19QjnesRuSenzrJvguUqeVzRP2RCAF_6ZrzbelR,%function
 b__MA11hajvaqfgnpx19QjnesRuSenzrJvguUqeVzRP2RCAF_6ZrzbelR:
 nop
 .text
-.globl b__MA11hajvaqfgnpx7QjnesBcVwRP2RCAF_11QjnesZrzbelRCAF_6ZrzbelR
+.weak b__MA11hajvaqfgnpx7QjnesBcVwRP2RCAF_11QjnesZrzbelRCAF_6ZrzbelR
 .type b__MA11hajvaqfgnpx7QjnesBcVwRP2RCAF_11QjnesZrzbelRCAF_6ZrzbelR,%function
 b__MA11hajvaqfgnpx7QjnesBcVwRP2RCAF_11QjnesZrzbelRCAF_6ZrzbelR:
 nop
 .text
-.globl b__MAFg3__114__fcyvg_ohssreVCA11hajvaqfgnpx14QjnesYbpngvbafREAF_9nyybpngbeVF3_RRR9chfu_onpxRBF3_
+.weak b__MAFg3__114__fcyvg_ohssreVCA11hajvaqfgnpx14QjnesYbpngvbafREAF_9nyybpngbeVF3_RRR9chfu_onpxRBF3_
 .type b__MAFg3__114__fcyvg_ohssreVCA11hajvaqfgnpx14QjnesYbpngvbafREAF_9nyybpngbeVF3_RRR9chfu_onpxRBF3_,%function
 b__MAFg3__114__fcyvg_ohssreVCA11hajvaqfgnpx14QjnesYbpngvbafREAF_9nyybpngbeVF3_RRR9chfu_onpxRBF3_:
 nop
@@ -1673,22 +1673,22 @@
 b__MA11hajvaqfgnpx3Rys10VfInyvqRysRCAF_6ZrzbelR:
 nop
 .text
-.globl b__MAFg3__120__funerq_cge_cbvagreVCA11hajvaqfgnpx12ZrzbelErzbgrRAF_14qrsnhyg_qryrgrVF2_RRAF_9nyybpngbeVF2_RRR16__ba_mreb_funerqRi
+.weak b__MAFg3__120__funerq_cge_cbvagreVCA11hajvaqfgnpx12ZrzbelErzbgrRAF_14qrsnhyg_qryrgrVF2_RRAF_9nyybpngbeVF2_RRR16__ba_mreb_funerqRi
 .type b__MAFg3__120__funerq_cge_cbvagreVCA11hajvaqfgnpx12ZrzbelErzbgrRAF_14qrsnhyg_qryrgrVF2_RRAF_9nyybpngbeVF2_RRR16__ba_mreb_funerqRi,%function
 b__MAFg3__120__funerq_cge_cbvagreVCA11hajvaqfgnpx12ZrzbelErzbgrRAF_14qrsnhyg_qryrgrVF2_RRAF_9nyybpngbeVF2_RRR16__ba_mreb_funerqRi:
 nop
 .data
-.globl b__MGIA11hajvaqfgnpx19QjnesRuSenzrJvguUqeVzRR
+.weak b__MGIA11hajvaqfgnpx19QjnesRuSenzrJvguUqeVzRR
 .type b__MGIA11hajvaqfgnpx19QjnesRuSenzrJvguUqeVzRR,%object
 b__MGIA11hajvaqfgnpx19QjnesRuSenzrJvguUqeVzRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA11hajvaqfgnpx7QjnesBcVwR6bc_ebgRi
+.weak b__MA11hajvaqfgnpx7QjnesBcVwR6bc_ebgRi
 .type b__MA11hajvaqfgnpx7QjnesBcVwR6bc_ebgRi,%function
 b__MA11hajvaqfgnpx7QjnesBcVwR6bc_ebgRi:
 nop
 .text
-.globl b__MA11hajvaqfgnpx12RysVagresnpr11TrgYbnqOvnfV9rys32_uqe10rys32_cuqeRRyCAF_6ZrzbelR
+.weak b__MA11hajvaqfgnpx12RysVagresnpr11TrgYbnqOvnfV9rys32_uqe10rys32_cuqeRRyCAF_6ZrzbelR
 .type b__MA11hajvaqfgnpx12RysVagresnpr11TrgYbnqOvnfV9rys32_uqe10rys32_cuqeRRyCAF_6ZrzbelR,%function
 b__MA11hajvaqfgnpx12RysVagresnpr11TrgYbnqOvnfV9rys32_uqe10rys32_cuqeRRyCAF_6ZrzbelR:
 nop
@@ -1698,12 +1698,12 @@
 b__MA11hajvaqfgnpx17QrkSvyrSebzZrzbel6PerngrRzCAF_6ZrzbelREXAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRR:
 nop
 .text
-.globl b__MA11hajvaqfgnpx7QjnesBcVzR11vf_ertvfgreRi
+.weak b__MA11hajvaqfgnpx7QjnesBcVzR11vf_ertvfgreRi
 .type b__MA11hajvaqfgnpx7QjnesBcVzR11vf_ertvfgreRi,%function
 b__MA11hajvaqfgnpx7QjnesBcVzR11vf_ertvfgreRi:
 nop
 .text
-.globl b__MAFg3__114__fcyvg_ohssreVCwAF_9nyybpngbeVF1_RRR10chfu_sebagRBF1_
+.weak b__MAFg3__114__fcyvg_ohssreVCwAF_9nyybpngbeVF1_RRR10chfu_sebagRBF1_
 .type b__MAFg3__114__fcyvg_ohssreVCwAF_9nyybpngbeVF1_RRR10chfu_sebagRBF1_,%function
 b__MAFg3__114__fcyvg_ohssreVCwAF_9nyybpngbeVF1_RRR10chfu_sebagRBF1_:
 nop
@@ -1738,12 +1738,12 @@
 b__MA11hajvaqfgnpx10ErtfZvcf64P2Ri:
 nop
 .text
-.globl b__MAFg3__16irpgbeVwAF_9nyybpngbeVwRRR21__chfu_onpx_fybj_cnguVwRRiBG_
+.weak b__MAFg3__16irpgbeVwAF_9nyybpngbeVwRRR21__chfu_onpx_fybj_cnguVwRRiBG_
 .type b__MAFg3__16irpgbeVwAF_9nyybpngbeVwRRR21__chfu_onpx_fybj_cnguVwRRiBG_,%function
 b__MAFg3__16irpgbeVwAF_9nyybpngbeVwRRR21__chfu_onpx_fybj_cnguVwRRiBG_:
 nop
 .text
-.globl b__MA11hajvaqfgnpx16QjnesFrpgvbaVzcyVwR9SvyyVaPvrRCAF_8QjnesPvrR
+.weak b__MA11hajvaqfgnpx16QjnesFrpgvbaVzcyVwR9SvyyVaPvrRCAF_8QjnesPvrR
 .type b__MA11hajvaqfgnpx16QjnesFrpgvbaVzcyVwR9SvyyVaPvrRCAF_8QjnesPvrR,%function
 b__MA11hajvaqfgnpx16QjnesFrpgvbaVzcyVwR9SvyyVaPvrRCAF_8QjnesPvrR:
 nop
@@ -1763,12 +1763,12 @@
 b__MA11hajvaqfgnpx8QrkSvyrfP1REAFg3__110funerq_cgeVAF_6ZrzbelRRR:
 nop
 .text
-.globl b__MA11hajvaqfgnpx16QjnesFrpgvbaVzcyVzR12RinyErtvfgreRCXAF_13QjnesYbpngvbaRwCzCi
+.weak b__MA11hajvaqfgnpx16QjnesFrpgvbaVzcyVzR12RinyErtvfgreRCXAF_13QjnesYbpngvbaRwCzCi
 .type b__MA11hajvaqfgnpx16QjnesFrpgvbaVzcyVzR12RinyErtvfgreRCXAF_13QjnesYbpngvbaRwCzCi,%function
 b__MA11hajvaqfgnpx16QjnesFrpgvbaVzcyVzR12RinyErtvfgreRCXAF_13QjnesYbpngvbaRwCzCi:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzwRRAF_22__habeqrerq_znc_unfureVzF2_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF2_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF2_RRR8__erunfuRz
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzwRRAF_22__habeqrerq_znc_unfureVzF2_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF2_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF2_RRR8__erunfuRz
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzwRRAF_22__habeqrerq_znc_unfureVzF2_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF2_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF2_RRR8__erunfuRz,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzwRRAF_22__habeqrerq_znc_unfureVzF2_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF2_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF2_RRR8__erunfuRz:
 nop
@@ -1778,12 +1778,12 @@
 b__MA11hajvaqfgnpx8ErtfZvcf5PybarRi:
 nop
 .text
-.globl b__MAFg3__16__fbegVEMA11hajvaqfgnpx7Flzobyf7TrgAnzrV9rys64_flzRRozCAF1_6ZrzbelRCAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRCzRHyEXAF2_4VasbRFU_R_CFS_RRiG0_FY_G_
+.weak b__MAFg3__16__fbegVEMA11hajvaqfgnpx7Flzobyf7TrgAnzrV9rys64_flzRRozCAF1_6ZrzbelRCAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRCzRHyEXAF2_4VasbRFU_R_CFS_RRiG0_FY_G_
 .type b__MAFg3__16__fbegVEMA11hajvaqfgnpx7Flzobyf7TrgAnzrV9rys64_flzRRozCAF1_6ZrzbelRCAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRCzRHyEXAF2_4VasbRFU_R_CFS_RRiG0_FY_G_,%function
 b__MAFg3__16__fbegVEMA11hajvaqfgnpx7Flzobyf7TrgAnzrV9rys64_flzRRozCAF1_6ZrzbelRCAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRCzRHyEXAF2_4VasbRFU_R_CFS_RRiG0_FY_G_:
 nop
 .data
-.globl b__MGIAFg3__120__funerq_cge_cbvagreVCA11hajvaqfgnpx3RysRAF_14qrsnhyg_qryrgrVF2_RRAF_9nyybpngbeVF2_RRRR
+.weak b__MGIAFg3__120__funerq_cge_cbvagreVCA11hajvaqfgnpx3RysRAF_14qrsnhyg_qryrgrVF2_RRAF_9nyybpngbeVF2_RRRR
 .type b__MGIAFg3__120__funerq_cge_cbvagreVCA11hajvaqfgnpx3RysRAF_14qrsnhyg_qryrgrVF2_RRAF_9nyybpngbeVF2_RRRR,%object
 b__MGIAFg3__120__funerq_cge_cbvagreVCA11hajvaqfgnpx3RysRAF_14qrsnhyg_qryrgrVF2_RRAF_9nyybpngbeVF2_RRRR:
 .space __SIZEOF_POINTER__
@@ -1798,12 +1798,12 @@
 b__MA11hajvaqfgnpx7ErtfNez6frg_fcRz:
 nop
 .text
-.globl b__MA11hajvaqfgnpx8QjnesPsnVwR17psn_erfgber_fgngrRCAF_14QjnesYbpngvbafR
+.weak b__MA11hajvaqfgnpx8QjnesPsnVwR17psn_erfgber_fgngrRCAF_14QjnesYbpngvbafR
 .type b__MA11hajvaqfgnpx8QjnesPsnVwR17psn_erfgber_fgngrRCAF_14QjnesYbpngvbafR,%function
 b__MA11hajvaqfgnpx8QjnesPsnVwR17psn_erfgber_fgngrRCAF_14QjnesYbpngvbafR:
 nop
 .text
-.globl b__MA11hajvaqfgnpx12RysVagresnpr18ErnqCebtenzUrnqrefV9rys64_uqe10rys64_cuqeRRiEXG_Cy
+.weak b__MA11hajvaqfgnpx12RysVagresnpr18ErnqCebtenzUrnqrefV9rys64_uqe10rys64_cuqeRRiEXG_Cy
 .type b__MA11hajvaqfgnpx12RysVagresnpr18ErnqCebtenzUrnqrefV9rys64_uqe10rys64_cuqeRRiEXG_Cy,%function
 b__MA11hajvaqfgnpx12RysVagresnpr18ErnqCebtenzUrnqrefV9rys64_uqe10rys64_cuqeRRiEXG_Cy:
 nop
@@ -1823,7 +1823,7 @@
 b__MA11hajvaqfgnpx8Hajvaqre11FrgWvgQrohtRCAF_8WvgQrohtRAF_8NepuRahzR:
 nop
 .data
-.globl b__MA11hajvaqfgnpx7QjnesBcVzR17xBcUnaqyrShapYvfgR
+.weak b__MA11hajvaqfgnpx7QjnesBcVzR17xBcUnaqyrShapYvfgR
 .type b__MA11hajvaqfgnpx7QjnesBcVzR17xBcUnaqyrShapYvfgR,%object
 b__MA11hajvaqfgnpx7QjnesBcVzR17xBcUnaqyrShapYvfgR:
 .space __SIZEOF_POINTER__
@@ -1833,27 +1833,27 @@
 b__MA11hajvaqfgnpx7ErtfK866frg_cpRz:
 nop
 .text
-.globl b__MA11hajvaqfgnpx8QjnesPsnVwR11psn_erfgberRCAF_14QjnesYbpngvbafR
+.weak b__MA11hajvaqfgnpx8QjnesPsnVwR11psn_erfgberRCAF_14QjnesYbpngvbafR
 .type b__MA11hajvaqfgnpx8QjnesPsnVwR11psn_erfgberRCAF_14QjnesYbpngvbafR,%function
 b__MA11hajvaqfgnpx8QjnesPsnVwR11psn_erfgberRCAF_14QjnesYbpngvbafR:
 nop
 .text
-.globl b__MA11hajvaqfgnpx8QjnesPsnVwR18psn_iny_rkcerffvbaRCAF_14QjnesYbpngvbafR
+.weak b__MA11hajvaqfgnpx8QjnesPsnVwR18psn_iny_rkcerffvbaRCAF_14QjnesYbpngvbafR
 .type b__MA11hajvaqfgnpx8QjnesPsnVwR18psn_iny_rkcerffvbaRCAF_14QjnesYbpngvbafR,%function
 b__MA11hajvaqfgnpx8QjnesPsnVwR18psn_iny_rkcerffvbaRCAF_14QjnesYbpngvbafR:
 nop
 .text
-.globl b__MA11hajvaqfgnpx16QjnesFrpgvbaVzcyVzR15TrgArkgPvrBeSqrRCCXAF_8QjnesSqrR
+.weak b__MA11hajvaqfgnpx16QjnesFrpgvbaVzcyVzR15TrgArkgPvrBeSqrRCCXAF_8QjnesSqrR
 .type b__MA11hajvaqfgnpx16QjnesFrpgvbaVzcyVzR15TrgArkgPvrBeSqrRCCXAF_8QjnesSqrR,%function
 b__MA11hajvaqfgnpx16QjnesFrpgvbaVzcyVzR15TrgArkgPvrBeSqrRCCXAF_8QjnesSqrR:
 nop
 .text
-.globl b__MA11hajvaqfgnpx19QjnesRuSenzrJvguUqeVwR18TrgSqrBssfrgSebzCpRzCz
+.weak b__MA11hajvaqfgnpx19QjnesRuSenzrJvguUqeVwR18TrgSqrBssfrgSebzCpRzCz
 .type b__MA11hajvaqfgnpx19QjnesRuSenzrJvguUqeVwR18TrgSqrBssfrgSebzCpRzCz,%function
 b__MA11hajvaqfgnpx19QjnesRuSenzrJvguUqeVwR18TrgSqrBssfrgSebzCpRzCz:
 nop
 .text
-.globl b__MA11hajvaqfgnpx7QjnesBcVzR7bc_oertRi
+.weak b__MA11hajvaqfgnpx7QjnesBcVzR7bc_oertRi
 .type b__MA11hajvaqfgnpx7QjnesBcVzR7bc_oertRi,%function
 b__MA11hajvaqfgnpx7QjnesBcVzR7bc_oertRi:
 nop
@@ -1863,7 +1863,7 @@
 b__MA11hajvaqfgnpx7ZncVasb19TrgCevagnoyrOhvyqVQRi:
 nop
 .text
-.globl b__MAFg3__114__fcyvg_ohssreVCzAF_9nyybpngbeVF1_RRR10chfu_sebagREXF1_
+.weak b__MAFg3__114__fcyvg_ohssreVCzAF_9nyybpngbeVF1_RRR10chfu_sebagREXF1_
 .type b__MAFg3__114__fcyvg_ohssreVCzAF_9nyybpngbeVF1_RRR10chfu_sebagREXF1_,%function
 b__MAFg3__114__fcyvg_ohssreVCzAF_9nyybpngbeVF1_RRR10chfu_sebagREXF1_:
 nop
@@ -1873,12 +1873,12 @@
 b__MA11hajvaqfgnpx3ybtRuCXpm:
 nop
 .text
-.globl b__MA11hajvaqfgnpx8QjnesPsnVzR14YbtVafgehpgvbaRwzuCz
+.weak b__MA11hajvaqfgnpx8QjnesPsnVzR14YbtVafgehpgvbaRwzuCz
 .type b__MA11hajvaqfgnpx8QjnesPsnVzR14YbtVafgehpgvbaRwzuCz,%function
 b__MA11hajvaqfgnpx8QjnesPsnVzR14YbtVafgehpgvbaRwzuCz:
 nop
 .text
-.globl b__MAFg3__15qrdhrVzAF_9nyybpngbeVzRRR20__nqq_sebag_pncnpvglRi
+.weak b__MAFg3__15qrdhrVzAF_9nyybpngbeVzRRR20__nqq_sebag_pncnpvglRi
 .type b__MAFg3__15qrdhrVzAF_9nyybpngbeVzRRR20__nqq_sebag_pncnpvglRi,%function
 b__MAFg3__15qrdhrVzAF_9nyybpngbeVzRRR20__nqq_sebag_pncnpvglRi:
 nop
@@ -1893,12 +1893,12 @@
 b__MA11hajvaqfgnpx7ErtfK864ErnqRCi:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVzAF_4cnveVzCXA11hajvaqfgnpx8QjnesSqrRRRRRAF_19__znc_inyhr_pbzcnerVzF8_AF_4yrffVzRRYo1RRRAF_9nyybpngbeVF8_RRR7qrfgeblRCAF_11__gerr_abqrVF8_CiRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVzAF_4cnveVzCXA11hajvaqfgnpx8QjnesSqrRRRRRAF_19__znc_inyhr_pbzcnerVzF8_AF_4yrffVzRRYo1RRRAF_9nyybpngbeVF8_RRR7qrfgeblRCAF_11__gerr_abqrVF8_CiRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVzAF_4cnveVzCXA11hajvaqfgnpx8QjnesSqrRRRRRAF_19__znc_inyhr_pbzcnerVzF8_AF_4yrffVzRRYo1RRRAF_9nyybpngbeVF8_RRR7qrfgeblRCAF_11__gerr_abqrVF8_CiRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVzAF_4cnveVzCXA11hajvaqfgnpx8QjnesSqrRRRRRAF_19__znc_inyhr_pbzcnerVzF8_AF_4yrffVzRRYo1RRRAF_9nyybpngbeVF8_RRR7qrfgeblRCAF_11__gerr_abqrVF8_CiRR:
 nop
 .text
-.globl b__MA11hajvaqfgnpx7QjnesBcVzR5bc_trRi
+.weak b__MA11hajvaqfgnpx7QjnesBcVzR5bc_trRi
 .type b__MA11hajvaqfgnpx7QjnesBcVzR5bc_trRi,%function
 b__MA11hajvaqfgnpx7QjnesBcVzR5bc_trRi:
 nop
@@ -1913,7 +1913,7 @@
 b__MA11hajvaqfgnpx7ZncVasbQ1Ri:
 nop
 .data
-.globl b__MGIA11hajvaqfgnpx17QrkSvyrSebzZrzbelR
+.weak b__MGIA11hajvaqfgnpx17QrkSvyrSebzZrzbelR
 .type b__MGIA11hajvaqfgnpx17QrkSvyrSebzZrzbelR,%object
 b__MGIA11hajvaqfgnpx17QrkSvyrSebzZrzbelR:
 .space __SIZEOF_POINTER__
@@ -1923,7 +1923,7 @@
 b__MA11hajvaqfgnpx8QrkSvyrf11ErnqRagel64Ri:
 nop
 .text
-.globl b__MA11hajvaqfgnpx11QjnesZrzbel14TrgRapbqrqFvmrVzRRzu
+.weak b__MA11hajvaqfgnpx11QjnesZrzbel14TrgRapbqrqFvmrVzRRzu
 .type b__MA11hajvaqfgnpx11QjnesZrzbel14TrgRapbqrqFvmrVzRRzu,%function
 b__MA11hajvaqfgnpx11QjnesZrzbel14TrgRapbqrqFvmrVzRRzu:
 nop
@@ -1933,27 +1933,27 @@
 b__MA11hajvaqfgnpx18ZrzbelBssyvarCnegfQ2Ri:
 nop
 .text
-.globl b__MA11hajvaqfgnpx8QjnesPsnVwR11psn_qrs_psnRCAF_14QjnesYbpngvbafR
+.weak b__MA11hajvaqfgnpx8QjnesPsnVwR11psn_qrs_psnRCAF_14QjnesYbpngvbafR
 .type b__MA11hajvaqfgnpx8QjnesPsnVwR11psn_qrs_psnRCAF_14QjnesYbpngvbafR,%function
 b__MA11hajvaqfgnpx8QjnesPsnVwR11psn_qrs_psnRCAF_14QjnesYbpngvbafR:
 nop
 .text
-.globl b__MA11hajvaqfgnpx8QjnesPsnVwR7psn_abcRCAF_14QjnesYbpngvbafR
+.weak b__MA11hajvaqfgnpx8QjnesPsnVwR7psn_abcRCAF_14QjnesYbpngvbafR
 .type b__MA11hajvaqfgnpx8QjnesPsnVwR7psn_abcRCAF_14QjnesYbpngvbafR,%function
 b__MA11hajvaqfgnpx8QjnesPsnVwR7psn_abcRCAF_14QjnesYbpngvbafR:
 nop
 .text
-.globl b__MA11hajvaqfgnpx7QjnesBcVwR6bc_yvgRi
+.weak b__MA11hajvaqfgnpx7QjnesBcVwR6bc_yvgRi
 .type b__MA11hajvaqfgnpx7QjnesBcVwR6bc_yvgRi,%function
 b__MA11hajvaqfgnpx7QjnesBcVwR6bc_yvgRi:
 nop
 .text
-.globl b__MAFg3__114__fcyvg_ohssreVCzAF_9nyybpngbeVF1_RRR9chfu_onpxRBF1_
+.weak b__MAFg3__114__fcyvg_ohssreVCzAF_9nyybpngbeVF1_RRR9chfu_onpxRBF1_
 .type b__MAFg3__114__fcyvg_ohssreVCzAF_9nyybpngbeVF1_RRR9chfu_onpxRBF1_,%function
 b__MAFg3__114__fcyvg_ohssreVCzAF_9nyybpngbeVF1_RRR9chfu_onpxRBF1_:
 nop
 .text
-.globl b__MA11hajvaqfgnpx12QjnesRuSenzrVwRP1RCAF_6ZrzbelR
+.weak b__MA11hajvaqfgnpx12QjnesRuSenzrVwRP1RCAF_6ZrzbelR
 .type b__MA11hajvaqfgnpx12QjnesRuSenzrVwRP1RCAF_6ZrzbelR,%function
 b__MA11hajvaqfgnpx12QjnesRuSenzrVwRP1RCAF_6ZrzbelR:
 nop
@@ -1968,17 +1968,17 @@
 b__MA11hajvaqfgnpx8ErtfZvcf2cpRi:
 nop
 .text
-.globl b__MAFg3__114__fcyvg_ohssreVCuAF_9nyybpngbeVF1_RRR10chfu_sebagRBF1_
+.weak b__MAFg3__114__fcyvg_ohssreVCuAF_9nyybpngbeVF1_RRR10chfu_sebagRBF1_
 .type b__MAFg3__114__fcyvg_ohssreVCuAF_9nyybpngbeVF1_RRR10chfu_sebagRBF1_,%function
 b__MAFg3__114__fcyvg_ohssreVCuAF_9nyybpngbeVF1_RRR10chfu_sebagRBF1_:
 nop
 .text
-.globl b__MA11hajvaqfgnpx8QjnesPsnVzR11psn_erfgberRCAF_14QjnesYbpngvbafR
+.weak b__MA11hajvaqfgnpx8QjnesPsnVzR11psn_erfgberRCAF_14QjnesYbpngvbafR
 .type b__MA11hajvaqfgnpx8QjnesPsnVzR11psn_erfgberRCAF_14QjnesYbpngvbafR,%function
 b__MA11hajvaqfgnpx8QjnesPsnVzR11psn_erfgberRCAF_14QjnesYbpngvbafR:
 nop
 .text
-.globl b__MA11hajvaqfgnpx7QjnesBcVzR6bc_abcRi
+.weak b__MA11hajvaqfgnpx7QjnesBcVzR6bc_abcRi
 .type b__MA11hajvaqfgnpx7QjnesBcVzR6bc_abcRi,%function
 b__MA11hajvaqfgnpx7QjnesBcVzR6bc_abcRi:
 nop
@@ -1998,22 +1998,22 @@
 b__MGIA11hajvaqfgnpx10OhssreZncfR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA11hajvaqfgnpx8QjnesPsnVwR14psn_iny_bssfrgRCAF_14QjnesYbpngvbafR
+.weak b__MA11hajvaqfgnpx8QjnesPsnVwR14psn_iny_bssfrgRCAF_14QjnesYbpngvbafR
 .type b__MA11hajvaqfgnpx8QjnesPsnVwR14psn_iny_bssfrgRCAF_14QjnesYbpngvbafR,%function
 b__MA11hajvaqfgnpx8QjnesPsnVwR14psn_iny_bssfrgRCAF_14QjnesYbpngvbafR:
 nop
 .text
-.globl b__MA11hajvaqfgnpx7QjnesBcVzR12BcrenaqfFvmrRi
+.weak b__MA11hajvaqfgnpx7QjnesBcVzR12BcrenaqfFvmrRi
 .type b__MA11hajvaqfgnpx7QjnesBcVzR12BcrenaqfFvmrRi,%function
 b__MA11hajvaqfgnpx7QjnesBcVzR12BcrenaqfFvmrRi:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzA11hajvaqfgnpx8QjnesPvrRRRAF_22__habeqrerq_znc_unfureVzF4_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF4_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF4_RRR6erzbirRAF_21__unfu_pbafg_vgrengbeVCAF_11__unfu_abqrVF4_CiRRRR
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzA11hajvaqfgnpx8QjnesPvrRRRAF_22__habeqrerq_znc_unfureVzF4_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF4_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF4_RRR6erzbirRAF_21__unfu_pbafg_vgrengbeVCAF_11__unfu_abqrVF4_CiRRRR
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzA11hajvaqfgnpx8QjnesPvrRRRAF_22__habeqrerq_znc_unfureVzF4_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF4_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF4_RRR6erzbirRAF_21__unfu_pbafg_vgrengbeVCAF_11__unfu_abqrVF4_CiRRRR,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzA11hajvaqfgnpx8QjnesPvrRRRAF_22__habeqrerq_znc_unfureVzF4_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF4_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF4_RRR6erzbirRAF_21__unfu_pbafg_vgrengbeVCAF_11__unfu_abqrVF4_CiRRRR:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_4cnveVAF_10funerq_cgeVA11hajvaqfgnpx3RysRRRoRRRRAF_22__habeqrerq_znc_unfureVF7_FR_AF_4unfuVF7_RRYo1RRRAF_21__habeqrerq_znc_rdhnyVF7_FR_AF_8rdhny_gbVF7_RRYo1RRRAF5_VFR_RRR4svaqVF7_RRAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVFR_CiRRRREXG_
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_4cnveVAF_10funerq_cgeVA11hajvaqfgnpx3RysRRRoRRRRAF_22__habeqrerq_znc_unfureVF7_FR_AF_4unfuVF7_RRYo1RRRAF_21__habeqrerq_znc_rdhnyVF7_FR_AF_8rdhny_gbVF7_RRYo1RRRAF5_VFR_RRR4svaqVF7_RRAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVFR_CiRRRREXG_
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_4cnveVAF_10funerq_cgeVA11hajvaqfgnpx3RysRRRoRRRRAF_22__habeqrerq_znc_unfureVF7_FR_AF_4unfuVF7_RRYo1RRRAF_21__habeqrerq_znc_rdhnyVF7_FR_AF_8rdhny_gbVF7_RRYo1RRRAF5_VFR_RRR4svaqVF7_RRAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVFR_CiRRRREXG_,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_4cnveVAF_10funerq_cgeVA11hajvaqfgnpx3RysRRRoRRRRAF_22__habeqrerq_znc_unfureVF7_FR_AF_4unfuVF7_RRYo1RRRAF_21__habeqrerq_znc_rdhnyVF7_FR_AF_8rdhny_gbVF7_RRYo1RRRAF5_VFR_RRR4svaqVF7_RRAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVFR_CiRRRREXG_:
 nop
@@ -2033,22 +2033,22 @@
 b__MA11hajvaqfgnpx8NezRkvqk16RkgenpgRagelQngnRw:
 nop
 .text
-.globl b__MA11hajvaqfgnpx7QjnesBcVzR10ynfg_reebeRi
+.weak b__MA11hajvaqfgnpx7QjnesBcVzR10ynfg_reebeRi
 .type b__MA11hajvaqfgnpx7QjnesBcVzR10ynfg_reebeRi,%function
 b__MA11hajvaqfgnpx7QjnesBcVzR10ynfg_reebeRi:
 nop
 .text
-.globl b__MA11hajvaqfgnpx7QjnesBcVzR6bc_qhcRi
+.weak b__MA11hajvaqfgnpx7QjnesBcVzR6bc_qhcRi
 .type b__MA11hajvaqfgnpx7QjnesBcVzR6bc_qhcRi,%function
 b__MA11hajvaqfgnpx7QjnesBcVzR6bc_qhcRi:
 nop
 .text
-.globl b__MA11hajvaqfgnpx7QjnesBcVzR7bc_bireRi
+.weak b__MA11hajvaqfgnpx7QjnesBcVzR7bc_bireRi
 .type b__MA11hajvaqfgnpx7QjnesBcVzR7bc_bireRi,%function
 b__MA11hajvaqfgnpx7QjnesBcVzR7bc_bireRi:
 nop
 .text
-.globl b__MA11hajvaqfgnpx15QjnesQrohtSenzrVzRP2RCAF_6ZrzbelR
+.weak b__MA11hajvaqfgnpx15QjnesQrohtSenzrVzRP2RCAF_6ZrzbelR
 .type b__MA11hajvaqfgnpx15QjnesQrohtSenzrVzRP2RCAF_6ZrzbelR,%function
 b__MA11hajvaqfgnpx15QjnesQrohtSenzrVzRP2RCAF_6ZrzbelR:
 nop
@@ -2073,7 +2073,7 @@
 b__MA11hajvaqfgnpx8WvgQrohtP1REAFg3__110funerq_cgeVAF_6ZrzbelRRREAF1_6irpgbeVAF1_12onfvp_fgevatVpAF1_11pune_genvgfVpRRAF1_9nyybpngbeVpRRRRAFN_VFP_RRRR:
 nop
 .data
-.globl b__MGIAFg3__120__funerq_cge_cbvagreVCA11hajvaqfgnpx11ZrzbelPnpurRAF_14qrsnhyg_qryrgrVF2_RRAF_9nyybpngbeVF2_RRRR
+.weak b__MGIAFg3__120__funerq_cge_cbvagreVCA11hajvaqfgnpx11ZrzbelPnpurRAF_14qrsnhyg_qryrgrVF2_RRAF_9nyybpngbeVF2_RRRR
 .type b__MGIAFg3__120__funerq_cge_cbvagreVCA11hajvaqfgnpx11ZrzbelPnpurRAF_14qrsnhyg_qryrgrVF2_RRAF_9nyybpngbeVF2_RRRR,%object
 b__MGIAFg3__120__funerq_cge_cbvagreVCA11hajvaqfgnpx11ZrzbelPnpurRAF_14qrsnhyg_qryrgrVF2_RRAF_9nyybpngbeVF2_RRRR:
 .space __SIZEOF_POINTER__
@@ -2103,12 +2103,12 @@
 b__MA11hajvaqfgnpx8QrkSvyrfQ1Ri:
 nop
 .text
-.globl b__MA11hajvaqfgnpx8QjnesPsnVzR11psn_qrs_psnRCAF_14QjnesYbpngvbafR
+.weak b__MA11hajvaqfgnpx8QjnesPsnVzR11psn_qrs_psnRCAF_14QjnesYbpngvbafR
 .type b__MA11hajvaqfgnpx8QjnesPsnVzR11psn_qrs_psnRCAF_14QjnesYbpngvbafR,%function
 b__MA11hajvaqfgnpx8QjnesPsnVzR11psn_qrs_psnRCAF_14QjnesYbpngvbafR:
 nop
 .text
-.globl b__MA11hajvaqfgnpx8QjnesPsnVzR32psn_tah_artngvir_bssfrg_rkgraqrqRCAF_14QjnesYbpngvbafR
+.weak b__MA11hajvaqfgnpx8QjnesPsnVzR32psn_tah_artngvir_bssfrg_rkgraqrqRCAF_14QjnesYbpngvbafR
 .type b__MA11hajvaqfgnpx8QjnesPsnVzR32psn_tah_artngvir_bssfrg_rkgraqrqRCAF_14QjnesYbpngvbafR,%function
 b__MA11hajvaqfgnpx8QjnesPsnVzR32psn_tah_artngvir_bssfrg_rkgraqrqRCAF_14QjnesYbpngvbafR:
 nop
@@ -2118,17 +2118,17 @@
 b__MA11hajvaqfgnpx13ZrzbelBssyvar4ErnqRzCiz:
 nop
 .text
-.globl b__MA11hajvaqfgnpx7QjnesBcVwR10TrgYbtVasbRzzCAFg3__16irpgbeVAF2_12onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRAF7_VF9_RRRR
+.weak b__MA11hajvaqfgnpx7QjnesBcVwR10TrgYbtVasbRzzCAFg3__16irpgbeVAF2_12onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRAF7_VF9_RRRR
 .type b__MA11hajvaqfgnpx7QjnesBcVwR10TrgYbtVasbRzzCAFg3__16irpgbeVAF2_12onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRAF7_VF9_RRRR,%function
 b__MA11hajvaqfgnpx7QjnesBcVwR10TrgYbtVasbRzzCAFg3__16irpgbeVAF2_12onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRAF7_VF9_RRRR:
 nop
 .text
-.globl b__MA11hajvaqfgnpx8QjnesPsnVzR12psn_ertvfgreRCAF_14QjnesYbpngvbafR
+.weak b__MA11hajvaqfgnpx8QjnesPsnVzR12psn_ertvfgreRCAF_14QjnesYbpngvbafR
 .type b__MA11hajvaqfgnpx8QjnesPsnVzR12psn_ertvfgreRCAF_14QjnesYbpngvbafR,%function
 b__MA11hajvaqfgnpx8QjnesPsnVzR12psn_ertvfgreRCAF_14QjnesYbpngvbafR:
 nop
 .data
-.globl b__MGIA11hajvaqfgnpx14RysVagresnpr32R
+.weak b__MGIA11hajvaqfgnpx14RysVagresnpr32R
 .type b__MGIA11hajvaqfgnpx14RysVagresnpr32R,%object
 b__MGIA11hajvaqfgnpx14RysVagresnpr32R:
 .space __SIZEOF_POINTER__
@@ -2138,37 +2138,37 @@
 b__MA11hajvaqfgnpx7ErtfK866frg_fcRz:
 nop
 .text
-.globl b__MA11hajvaqfgnpx8QjnesPsnVzR18psn_erzrzore_fgngrRCAF_14QjnesYbpngvbafR
+.weak b__MA11hajvaqfgnpx8QjnesPsnVzR18psn_erzrzore_fgngrRCAF_14QjnesYbpngvbafR
 .type b__MA11hajvaqfgnpx8QjnesPsnVzR18psn_erzrzore_fgngrRCAF_14QjnesYbpngvbafR,%function
 b__MA11hajvaqfgnpx8QjnesPsnVzR18psn_erzrzore_fgngrRCAF_14QjnesYbpngvbafR:
 nop
 .text
-.globl b__MA11hajvaqfgnpx7QjnesBcVwR13YnfgReebePbqrRi
+.weak b__MA11hajvaqfgnpx7QjnesBcVwR13YnfgReebePbqrRi
 .type b__MA11hajvaqfgnpx7QjnesBcVwR13YnfgReebePbqrRi,%function
 b__MA11hajvaqfgnpx7QjnesBcVwR13YnfgReebePbqrRi:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVuvRRAF_19__znc_inyhr_pbzcnerVuF2_AF_4yrffVuRRYo1RRRAF_9nyybpngbeVF2_RRR7qrfgeblRCAF_11__gerr_abqrVF2_CiRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVuvRRAF_19__znc_inyhr_pbzcnerVuF2_AF_4yrffVuRRYo1RRRAF_9nyybpngbeVF2_RRR7qrfgeblRCAF_11__gerr_abqrVF2_CiRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVuvRRAF_19__znc_inyhr_pbzcnerVuF2_AF_4yrffVuRRYo1RRRAF_9nyybpngbeVF2_RRR7qrfgeblRCAF_11__gerr_abqrVF2_CiRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVuvRRAF_19__znc_inyhr_pbzcnerVuF2_AF_4yrffVuRRYo1RRRAF_9nyybpngbeVF2_RRR7qrfgeblRCAF_11__gerr_abqrVF2_CiRR:
 nop
 .text
-.globl b__MAFg3__114__fcyvg_ohssreVCA11hajvaqfgnpx14QjnesYbpngvbafREAF_9nyybpngbeVF3_RRR10chfu_sebagREXF3_
+.weak b__MAFg3__114__fcyvg_ohssreVCA11hajvaqfgnpx14QjnesYbpngvbafREAF_9nyybpngbeVF3_RRR10chfu_sebagREXF3_
 .type b__MAFg3__114__fcyvg_ohssreVCA11hajvaqfgnpx14QjnesYbpngvbafREAF_9nyybpngbeVF3_RRR10chfu_sebagREXF3_,%function
 b__MAFg3__114__fcyvg_ohssreVCA11hajvaqfgnpx14QjnesYbpngvbafREAF_9nyybpngbeVF3_RRR10chfu_sebagREXF3_:
 nop
 .text
-.globl b__MA11hajvaqfgnpx7QjnesBcVzR6bc_zbqRi
+.weak b__MA11hajvaqfgnpx7QjnesBcVzR6bc_zbqRi
 .type b__MA11hajvaqfgnpx7QjnesBcVzR6bc_zbqRi,%function
 b__MA11hajvaqfgnpx7QjnesBcVzR6bc_zbqRi:
 nop
 .text
-.globl b__MAFg3__15qrdhrVwAF_9nyybpngbeVwRRR20__nqq_sebag_pncnpvglRi
+.weak b__MAFg3__15qrdhrVwAF_9nyybpngbeVwRRR20__nqq_sebag_pncnpvglRi
 .type b__MAFg3__15qrdhrVwAF_9nyybpngbeVwRRR20__nqq_sebag_pncnpvglRi,%function
 b__MAFg3__15qrdhrVwAF_9nyybpngbeVwRRR20__nqq_sebag_pncnpvglRi:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzA11hajvaqfgnpx8QjnesPvrRRRAF_22__habeqrerq_znc_unfureVzF4_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF4_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF4_RRR25__rzcynpr_havdhr_xrl_netfVzWEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXzRRRAFX_VWRRRRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF4_CiRRRRoRREXG_QcBG0_
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzA11hajvaqfgnpx8QjnesPvrRRRAF_22__habeqrerq_znc_unfureVzF4_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF4_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF4_RRR25__rzcynpr_havdhr_xrl_netfVzWEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXzRRRAFX_VWRRRRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF4_CiRRRRoRREXG_QcBG0_
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzA11hajvaqfgnpx8QjnesPvrRRRAF_22__habeqrerq_znc_unfureVzF4_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF4_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF4_RRR25__rzcynpr_havdhr_xrl_netfVzWEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXzRRRAFX_VWRRRRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF4_CiRRRRoRREXG_QcBG0_,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzA11hajvaqfgnpx8QjnesPvrRRRAF_22__habeqrerq_znc_unfureVzF4_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF4_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF4_RRR25__rzcynpr_havdhr_xrl_netfVzWEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXzRRRAFX_VWRRRRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF4_CiRRRRoRREXG_QcBG0_:
 nop
@@ -2183,7 +2183,7 @@
 b__MA11hajvaqfgnpx7ZncVasb10TrgOhvyqVQRi:
 nop
 .text
-.globl b__MA11hajvaqfgnpx7QjnesBcVwR7bc_fxvcRi
+.weak b__MA11hajvaqfgnpx7QjnesBcVwR7bc_fxvcRi
 .type b__MA11hajvaqfgnpx7QjnesBcVwR7bc_fxvcRi,%function
 b__MA11hajvaqfgnpx7QjnesBcVwR7bc_fxvcRi:
 nop
@@ -2198,7 +2198,7 @@
 b__MA11hajvaqfgnpx12ZrzbelEnatrf6VafregRCAF_11ZrzbelEnatrR:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_10havdhr_cgeVA11hajvaqfgnpx7ZncVasbRAF_14qrsnhyg_qryrgrVF3_RRRRAF_9nyybpngbeVF6_RRR8__nccraqRz
+.weak b__MAFg3__16irpgbeVAF_10havdhr_cgeVA11hajvaqfgnpx7ZncVasbRAF_14qrsnhyg_qryrgrVF3_RRRRAF_9nyybpngbeVF6_RRR8__nccraqRz
 .type b__MAFg3__16irpgbeVAF_10havdhr_cgeVA11hajvaqfgnpx7ZncVasbRAF_14qrsnhyg_qryrgrVF3_RRRRAF_9nyybpngbeVF6_RRR8__nccraqRz,%function
 b__MAFg3__16irpgbeVAF_10havdhr_cgeVA11hajvaqfgnpx7ZncVasbRAF_14qrsnhyg_qryrgrVF3_RRRRAF_9nyybpngbeVF6_RRR8__nccraqRz:
 nop
@@ -2208,22 +2208,22 @@
 b__MA11hajvaqfgnpx19ZrzbelBssyvarOhssreP2RCXuzz:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwA11hajvaqfgnpx13QjnesYbpngvbaRRRAF_22__habeqrerq_znc_unfureVwF4_AF_4unfuVwRRYo1RRRAF_21__habeqrerq_znc_rdhnyVwF4_AF_8rdhny_gbVwRRYo1RRRAF_9nyybpngbeVF4_RRR14__renfr_havdhrVwRRzEXG_
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwA11hajvaqfgnpx13QjnesYbpngvbaRRRAF_22__habeqrerq_znc_unfureVwF4_AF_4unfuVwRRYo1RRRAF_21__habeqrerq_znc_rdhnyVwF4_AF_8rdhny_gbVwRRYo1RRRAF_9nyybpngbeVF4_RRR14__renfr_havdhrVwRRzEXG_
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwA11hajvaqfgnpx13QjnesYbpngvbaRRRAF_22__habeqrerq_znc_unfureVwF4_AF_4unfuVwRRYo1RRRAF_21__habeqrerq_znc_rdhnyVwF4_AF_8rdhny_gbVwRRYo1RRRAF_9nyybpngbeVF4_RRR14__renfr_havdhrVwRRzEXG_,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwA11hajvaqfgnpx13QjnesYbpngvbaRRRAF_22__habeqrerq_znc_unfureVwF4_AF_4unfuVwRRYo1RRRAF_21__habeqrerq_znc_rdhnyVwF4_AF_8rdhny_gbVwRRYo1RRRAF_9nyybpngbeVF4_RRR14__renfr_havdhrVwRRzEXG_:
 nop
 .text
-.globl b__MAFg3__16irpgbeVCXA11hajvaqfgnpx8QjnesSqrRAF_9nyybpngbeVF4_RRR21__chfu_onpx_fybj_cnguVEXF4_RRiBG_
+.weak b__MAFg3__16irpgbeVCXA11hajvaqfgnpx8QjnesSqrRAF_9nyybpngbeVF4_RRR21__chfu_onpx_fybj_cnguVEXF4_RRiBG_
 .type b__MAFg3__16irpgbeVCXA11hajvaqfgnpx8QjnesSqrRAF_9nyybpngbeVF4_RRR21__chfu_onpx_fybj_cnguVEXF4_RRiBG_,%function
 b__MAFg3__16irpgbeVCXA11hajvaqfgnpx8QjnesSqrRAF_9nyybpngbeVF4_RRR21__chfu_onpx_fybj_cnguVEXF4_RRiBG_:
 nop
 .text
-.globl b__MA11hajvaqfgnpx7QjnesBcVzRP1RCAF_11QjnesZrzbelRCAF_6ZrzbelR
+.weak b__MA11hajvaqfgnpx7QjnesBcVzRP1RCAF_11QjnesZrzbelRCAF_6ZrzbelR
 .type b__MA11hajvaqfgnpx7QjnesBcVzRP1RCAF_11QjnesZrzbelRCAF_6ZrzbelR,%function
 b__MA11hajvaqfgnpx7QjnesBcVzRP1RCAF_11QjnesZrzbelRCAF_6ZrzbelR:
 nop
 .text
-.globl b__MA11hajvaqfgnpx12RysVagresnpr23VavgUrnqrefJvguGrzcyngrVzRRii
+.weak b__MA11hajvaqfgnpx12RysVagresnpr23VavgUrnqrefJvguGrzcyngrVzRRii
 .type b__MA11hajvaqfgnpx12RysVagresnpr23VavgUrnqrefJvguGrzcyngrVzRRii,%function
 b__MA11hajvaqfgnpx12RysVagresnpr23VavgUrnqrefJvguGrzcyngrVzRRii:
 nop
@@ -2238,22 +2238,22 @@
 b__MA11hajvaqfgnpx7ZncVasb15TrgShapgvbaAnzrRzCAFg3__112onfvp_fgevatVpAF1_11pune_genvgfVpRRAF1_9nyybpngbeVpRRRRCz:
 nop
 .data
-.globl b__MA11hajvaqfgnpx8QjnesPsnVwR14xPnyyonpxGnoyrR
+.weak b__MA11hajvaqfgnpx8QjnesPsnVwR14xPnyyonpxGnoyrR
 .type b__MA11hajvaqfgnpx8QjnesPsnVwR14xPnyyonpxGnoyrR,%object
 b__MA11hajvaqfgnpx8QjnesPsnVwR14xPnyyonpxGnoyrR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzA11hajvaqfgnpx19QjnesRuSenzrJvguUqeVwR7SqrVasbRRRAF_22__habeqrerq_znc_unfureVzF6_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF6_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF6_RRR6erzbirRAF_21__unfu_pbafg_vgrengbeVCAF_11__unfu_abqrVF6_CiRRRR
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzA11hajvaqfgnpx19QjnesRuSenzrJvguUqeVwR7SqrVasbRRRAF_22__habeqrerq_znc_unfureVzF6_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF6_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF6_RRR6erzbirRAF_21__unfu_pbafg_vgrengbeVCAF_11__unfu_abqrVF6_CiRRRR
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzA11hajvaqfgnpx19QjnesRuSenzrJvguUqeVwR7SqrVasbRRRAF_22__habeqrerq_znc_unfureVzF6_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF6_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF6_RRR6erzbirRAF_21__unfu_pbafg_vgrengbeVCAF_11__unfu_abqrVF6_CiRRRR,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzA11hajvaqfgnpx19QjnesRuSenzrJvguUqeVwR7SqrVasbRRRAF_22__habeqrerq_znc_unfureVzF6_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF6_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF6_RRR6erzbirRAF_21__unfu_pbafg_vgrengbeVCAF_11__unfu_abqrVF6_CiRRRR:
 nop
 .text
-.globl b__MAFg3__16irpgbeVCXA11hajvaqfgnpx8QjnesSqrRAF_9nyybpngbeVF4_RRR21__chfu_onpx_fybj_cnguVF4_RRiBG_
+.weak b__MAFg3__16irpgbeVCXA11hajvaqfgnpx8QjnesSqrRAF_9nyybpngbeVF4_RRR21__chfu_onpx_fybj_cnguVF4_RRiBG_
 .type b__MAFg3__16irpgbeVCXA11hajvaqfgnpx8QjnesSqrRAF_9nyybpngbeVF4_RRR21__chfu_onpx_fybj_cnguVF4_RRiBG_,%function
 b__MAFg3__16irpgbeVCXA11hajvaqfgnpx8QjnesSqrRAF_9nyybpngbeVF4_RRR21__chfu_onpx_fybj_cnguVF4_RRiBG_:
 nop
 .data
-.globl b__MGIA11hajvaqfgnpx15QjnesQrohtSenzrVzRR
+.weak b__MGIA11hajvaqfgnpx15QjnesQrohtSenzrVzRR
 .type b__MGIA11hajvaqfgnpx15QjnesQrohtSenzrVzRR,%object
 b__MGIA11hajvaqfgnpx15QjnesQrohtSenzrVzRR:
 .space __SIZEOF_POINTER__
@@ -2268,12 +2268,12 @@
 b__MA11hajvaqfgnpx10ErtfZvcf644NepuRi:
 nop
 .text
-.globl b__MA11hajvaqfgnpx7QjnesBcVzR6bc_ebgRi
+.weak b__MA11hajvaqfgnpx7QjnesBcVzR6bc_ebgRi
 .type b__MA11hajvaqfgnpx7QjnesBcVzR6bc_ebgRi,%function
 b__MA11hajvaqfgnpx7QjnesBcVzR6bc_ebgRi:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_4cnveVzzRRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVF2_RRiBG_
+.weak b__MAFg3__16irpgbeVAF_4cnveVzzRRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVF2_RRiBG_
 .type b__MAFg3__16irpgbeVAF_4cnveVzzRRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVF2_RRiBG_,%function
 b__MAFg3__16irpgbeVAF_4cnveVzzRRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVF2_RRiBG_:
 nop
@@ -2293,7 +2293,7 @@
 b__MA11hajvaqfgnpx8QrkSvyrfP2REAFg3__110funerq_cgeVAF_6ZrzbelRRREAF1_6irpgbeVAF1_12onfvp_fgevatVpAF1_11pune_genvgfVpRRAF1_9nyybpngbeVpRRRRAFN_VFP_RRRR:
 nop
 .text
-.globl b__MA11hajvaqfgnpx19QjnesRuSenzrJvguUqeVzR19TrgSqrVasbSebzVaqrkRz
+.weak b__MA11hajvaqfgnpx19QjnesRuSenzrJvguUqeVzR19TrgSqrVasbSebzVaqrkRz
 .type b__MA11hajvaqfgnpx19QjnesRuSenzrJvguUqeVzR19TrgSqrVasbSebzVaqrkRz,%function
 b__MA11hajvaqfgnpx19QjnesRuSenzrJvguUqeVzR19TrgSqrVasbSebzVaqrkRz:
 nop
@@ -2303,17 +2303,17 @@
 b__MA11hajvaqfgnpx7ErtfK8616VgrengrErtvfgrefRAFg3__18shapgvbaVSiCXpzRRR:
 nop
 .text
-.globl b__MA11hajvaqfgnpx8QjnesPsnVzR22psn_bssfrg_rkgraqrq_fsRCAF_14QjnesYbpngvbafR
+.weak b__MA11hajvaqfgnpx8QjnesPsnVzR22psn_bssfrg_rkgraqrq_fsRCAF_14QjnesYbpngvbafR
 .type b__MA11hajvaqfgnpx8QjnesPsnVzR22psn_bssfrg_rkgraqrq_fsRCAF_14QjnesYbpngvbafR,%function
 b__MA11hajvaqfgnpx8QjnesPsnVzR22psn_bssfrg_rkgraqrq_fsRCAF_14QjnesYbpngvbafR:
 nop
 .text
-.globl b__MA11hajvaqfgnpx8QjnesPsnVzR23YbtBssfrgErtvfgreFgevatRwzu
+.weak b__MA11hajvaqfgnpx8QjnesPsnVzR23YbtBssfrgErtvfgreFgevatRwzu
 .type b__MA11hajvaqfgnpx8QjnesPsnVzR23YbtBssfrgErtvfgreFgevatRwzu,%function
 b__MA11hajvaqfgnpx8QjnesPsnVzR23YbtBssfrgErtvfgreFgevatRwzu:
 nop
 .text
-.globl b__MA11hajvaqfgnpx12RysVagresnpr14ErnqNyyUrnqrefV9rys32_uqe10rys32_cuqe10rys32_fuqeRRoCy
+.weak b__MA11hajvaqfgnpx12RysVagresnpr14ErnqNyyUrnqrefV9rys32_uqe10rys32_cuqe10rys32_fuqeRRoCy
 .type b__MA11hajvaqfgnpx12RysVagresnpr14ErnqNyyUrnqrefV9rys32_uqe10rys32_cuqe10rys32_fuqeRRoCy,%function
 b__MA11hajvaqfgnpx12RysVagresnpr14ErnqNyyUrnqrefV9rys32_uqe10rys32_cuqe10rys32_fuqeRRoCy:
 nop
@@ -2338,22 +2338,22 @@
 b__MA11hajvaqfgnpx6Zrzbel16PerngrSvyrZrzbelREXAFg3__112onfvp_fgevatVpAF1_11pune_genvgfVpRRAF1_9nyybpngbeVpRRRRz:
 nop
 .text
-.globl b__MA11hajvaqfgnpx11QjnesZrzbel16ErnqRapbqrqInyhrVzRRouCz
+.weak b__MA11hajvaqfgnpx11QjnesZrzbel16ErnqRapbqrqInyhrVzRRouCz
 .type b__MA11hajvaqfgnpx11QjnesZrzbel16ErnqRapbqrqInyhrVzRRouCz,%function
 b__MA11hajvaqfgnpx11QjnesZrzbel16ErnqRapbqrqInyhrVzRRouCz:
 nop
 .text
-.globl b__MA11hajvaqfgnpx19QjnesRuSenzrJvguUqeVwR19TrgSqrVasbSebzVaqrkRz
+.weak b__MA11hajvaqfgnpx19QjnesRuSenzrJvguUqeVwR19TrgSqrVasbSebzVaqrkRz
 .type b__MA11hajvaqfgnpx19QjnesRuSenzrJvguUqeVwR19TrgSqrVasbSebzVaqrkRz,%function
 b__MA11hajvaqfgnpx19QjnesRuSenzrJvguUqeVwR19TrgSqrVasbSebzVaqrkRz:
 nop
 .text
-.globl b__MA11hajvaqfgnpx7QjnesBcVwR5bc_trRi
+.weak b__MA11hajvaqfgnpx7QjnesBcVwR5bc_trRi
 .type b__MA11hajvaqfgnpx7QjnesBcVwR5bc_trRi,%function
 b__MA11hajvaqfgnpx7QjnesBcVwR5bc_trRi:
 nop
 .text
-.globl b__MAFg3__114__fcyvg_ohssreVCwAF_9nyybpngbeVF1_RRR10chfu_sebagREXF1_
+.weak b__MAFg3__114__fcyvg_ohssreVCwAF_9nyybpngbeVF1_RRR10chfu_sebagREXF1_
 .type b__MAFg3__114__fcyvg_ohssreVCwAF_9nyybpngbeVF1_RRR10chfu_sebagREXF1_,%function
 b__MAFg3__114__fcyvg_ohssreVCwAF_9nyybpngbeVF1_RRR10chfu_sebagREXF1_:
 nop
@@ -2363,7 +2363,7 @@
 b__MA11hajvaqfgnpx12RysVagresnpr24PerngrTahQrohtqngnZrzbelRi:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzA11hajvaqfgnpx8YbnqVasbRRRAF_22__habeqrerq_znc_unfureVzF4_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF4_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF4_RRR8__erunfuRz
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzA11hajvaqfgnpx8YbnqVasbRRRAF_22__habeqrerq_znc_unfureVzF4_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF4_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF4_RRR8__erunfuRz
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzA11hajvaqfgnpx8YbnqVasbRRRAF_22__habeqrerq_znc_unfureVzF4_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF4_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF4_RRR8__erunfuRz,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzA11hajvaqfgnpx8YbnqVasbRRRAF_22__habeqrerq_znc_unfureVzF4_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF4_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF4_RRR8__erunfuRz:
 nop
@@ -2373,12 +2373,12 @@
 b__MA11hajvaqfgnpx8QrkSvyrfP1REAFg3__110funerq_cgeVAF_6ZrzbelRRREAF1_6irpgbeVAF1_12onfvp_fgevatVpAF1_11pune_genvgfVpRRAF1_9nyybpngbeVpRRRRAFN_VFP_RRRR:
 nop
 .text
-.globl b__MA11hajvaqfgnpx19QjnesRuSenzrJvguUqeVwRP1RCAF_6ZrzbelR
+.weak b__MA11hajvaqfgnpx19QjnesRuSenzrJvguUqeVwRP1RCAF_6ZrzbelR
 .type b__MA11hajvaqfgnpx19QjnesRuSenzrJvguUqeVwRP1RCAF_6ZrzbelR,%function
 b__MA11hajvaqfgnpx19QjnesRuSenzrJvguUqeVwRP1RCAF_6ZrzbelR:
 nop
 .text
-.globl b__MA11hajvaqfgnpx7QjnesBcVwR7bc_cvpxRi
+.weak b__MA11hajvaqfgnpx7QjnesBcVwR7bc_cvpxRi
 .type b__MA11hajvaqfgnpx7QjnesBcVwR7bc_cvpxRi,%function
 b__MA11hajvaqfgnpx7QjnesBcVwR7bc_cvpxRi:
 nop
@@ -2393,7 +2393,7 @@
 b__MGIA11hajvaqfgnpx11ZrzbelEnatrR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIAFg3__120__funerq_cge_cbvagreVCA11hajvaqfgnpx19ZrzbelBssyvarOhssreRAF_14qrsnhyg_qryrgrVF2_RRAF_9nyybpngbeVF2_RRRR
+.weak b__MGIAFg3__120__funerq_cge_cbvagreVCA11hajvaqfgnpx19ZrzbelBssyvarOhssreRAF_14qrsnhyg_qryrgrVF2_RRAF_9nyybpngbeVF2_RRRR
 .type b__MGIAFg3__120__funerq_cge_cbvagreVCA11hajvaqfgnpx19ZrzbelBssyvarOhssreRAF_14qrsnhyg_qryrgrVF2_RRAF_9nyybpngbeVF2_RRRR,%object
 b__MGIAFg3__120__funerq_cge_cbvagreVCA11hajvaqfgnpx19ZrzbelBssyvarOhssreRAF_14qrsnhyg_qryrgrVF2_RRAF_9nyybpngbeVF2_RRRR:
 .space __SIZEOF_POINTER__
@@ -2403,17 +2403,17 @@
 b__MA11hajvaqfgnpx13YbpnyHajvaqre17FubhyqFxvcYvoenelREXAFg3__112onfvp_fgevatVpAF1_11pune_genvgfVpRRAF1_9nyybpngbeVpRRRR:
 nop
 .text
-.globl b__MA11hajvaqfgnpx7QjnesBcVwR6bc_artRi
+.weak b__MA11hajvaqfgnpx7QjnesBcVwR6bc_artRi
 .type b__MA11hajvaqfgnpx7QjnesBcVwR6bc_artRi,%function
 b__MA11hajvaqfgnpx7QjnesBcVwR6bc_artRi:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzA11hajvaqfgnpx8QjnesSqrRRRAF_22__habeqrerq_znc_unfureVzF4_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF4_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF4_RRR8__erunfuRz
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzA11hajvaqfgnpx8QjnesSqrRRRAF_22__habeqrerq_znc_unfureVzF4_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF4_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF4_RRR8__erunfuRz
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzA11hajvaqfgnpx8QjnesSqrRRRAF_22__habeqrerq_znc_unfureVzF4_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF4_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF4_RRR8__erunfuRz,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzA11hajvaqfgnpx8QjnesSqrRRRAF_22__habeqrerq_znc_unfureVzF4_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF4_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF4_RRR8__erunfuRz:
 nop
 .text
-.globl b__MA11hajvaqfgnpx14TrgOhvyqVQVasbV9rys64_uqe10rys64_fuqeRRoCAF_6ZrzbelRCzF5_
+.weak b__MA11hajvaqfgnpx14TrgOhvyqVQVasbV9rys64_uqe10rys64_fuqeRRoCAF_6ZrzbelRCzF5_
 .type b__MA11hajvaqfgnpx14TrgOhvyqVQVasbV9rys64_uqe10rys64_fuqeRRoCAF_6ZrzbelRCzF5_,%function
 b__MA11hajvaqfgnpx14TrgOhvyqVQVasbV9rys64_uqe10rys64_fuqeRRoCAF_6ZrzbelRCzF5_:
 nop
@@ -2423,7 +2423,7 @@
 b__MGIA11hajvaqfgnpx11ZrzbelPnpurR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIAFg3__120__funerq_cge_cbvagreVCA11hajvaqfgnpx12ZrzbelErzbgrRAF_14qrsnhyg_qryrgrVF2_RRAF_9nyybpngbeVF2_RRRR
+.weak b__MGIAFg3__120__funerq_cge_cbvagreVCA11hajvaqfgnpx12ZrzbelErzbgrRAF_14qrsnhyg_qryrgrVF2_RRAF_9nyybpngbeVF2_RRRR
 .type b__MGIAFg3__120__funerq_cge_cbvagreVCA11hajvaqfgnpx12ZrzbelErzbgrRAF_14qrsnhyg_qryrgrVF2_RRAF_9nyybpngbeVF2_RRRR,%object
 b__MGIAFg3__120__funerq_cge_cbvagreVCA11hajvaqfgnpx12ZrzbelErzbgrRAF_14qrsnhyg_qryrgrVF2_RRAF_9nyybpngbeVF2_RRRR:
 .space __SIZEOF_POINTER__
@@ -2433,12 +2433,12 @@
 b__MA11hajvaqfgnpx13YbpnyHajvaqre4VavgRi:
 nop
 .text
-.globl b__MA11hajvaqfgnpx8QjnesPsnVzR14psn_iny_bssfrgRCAF_14QjnesYbpngvbafR
+.weak b__MA11hajvaqfgnpx8QjnesPsnVzR14psn_iny_bssfrgRCAF_14QjnesYbpngvbafR
 .type b__MA11hajvaqfgnpx8QjnesPsnVzR14psn_iny_bssfrgRCAF_14QjnesYbpngvbafR,%function
 b__MA11hajvaqfgnpx8QjnesPsnVzR14psn_iny_bssfrgRCAF_14QjnesYbpngvbafR:
 nop
 .text
-.globl b__MAFg3__15qrdhrVA11hajvaqfgnpx14QjnesYbpngvbafRAF_9nyybpngbeVF2_RRR19__nqq_onpx_pncnpvglRi
+.weak b__MAFg3__15qrdhrVA11hajvaqfgnpx14QjnesYbpngvbafRAF_9nyybpngbeVF2_RRR19__nqq_onpx_pncnpvglRi
 .type b__MAFg3__15qrdhrVA11hajvaqfgnpx14QjnesYbpngvbafRAF_9nyybpngbeVF2_RRR19__nqq_onpx_pncnpvglRi,%function
 b__MAFg3__15qrdhrVA11hajvaqfgnpx14QjnesYbpngvbafRAF_9nyybpngbeVF2_RRR19__nqq_onpx_pncnpvglRi:
 nop
@@ -2448,7 +2448,7 @@
 b__MA11hajvaqfgnpx12ZrzbelEnatrf4ErnqRzCiz:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzN4096_uRRAF_22__habeqrerq_znc_unfureVzF3_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF3_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF3_RRR6erzbirRAF_21__unfu_pbafg_vgrengbeVCAF_11__unfu_abqrVF3_CiRRRR
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzN4096_uRRAF_22__habeqrerq_znc_unfureVzF3_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF3_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF3_RRR6erzbirRAF_21__unfu_pbafg_vgrengbeVCAF_11__unfu_abqrVF3_CiRRRR
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzN4096_uRRAF_22__habeqrerq_znc_unfureVzF3_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF3_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF3_RRR6erzbirRAF_21__unfu_pbafg_vgrengbeVCAF_11__unfu_abqrVF3_CiRRRR,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzN4096_uRRAF_22__habeqrerq_znc_unfureVzF3_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF3_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF3_RRR6erzbirRAF_21__unfu_pbafg_vgrengbeVCAF_11__unfu_abqrVF3_CiRRRR:
 nop
@@ -2458,17 +2458,17 @@
 b__MA11hajvaqfgnpx9ErtfNez644ErnqRCi:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwA11hajvaqfgnpx13QjnesYbpngvbaRRRAF_22__habeqrerq_znc_unfureVwF4_AF_4unfuVwRRYo1RRRAF_21__habeqrerq_znc_rdhnyVwF4_AF_8rdhny_gbVwRRYo1RRRAF_9nyybpngbeVF4_RRR6erzbirRAF_21__unfu_pbafg_vgrengbeVCAF_11__unfu_abqrVF4_CiRRRR
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwA11hajvaqfgnpx13QjnesYbpngvbaRRRAF_22__habeqrerq_znc_unfureVwF4_AF_4unfuVwRRYo1RRRAF_21__habeqrerq_znc_rdhnyVwF4_AF_8rdhny_gbVwRRYo1RRRAF_9nyybpngbeVF4_RRR6erzbirRAF_21__unfu_pbafg_vgrengbeVCAF_11__unfu_abqrVF4_CiRRRR
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwA11hajvaqfgnpx13QjnesYbpngvbaRRRAF_22__habeqrerq_znc_unfureVwF4_AF_4unfuVwRRYo1RRRAF_21__habeqrerq_znc_rdhnyVwF4_AF_8rdhny_gbVwRRYo1RRRAF_9nyybpngbeVF4_RRR6erzbirRAF_21__unfu_pbafg_vgrengbeVCAF_11__unfu_abqrVF4_CiRRRR,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwA11hajvaqfgnpx13QjnesYbpngvbaRRRAF_22__habeqrerq_znc_unfureVwF4_AF_4unfuVwRRYo1RRRAF_21__habeqrerq_znc_rdhnyVwF4_AF_8rdhny_gbVwRRYo1RRRAF_9nyybpngbeVF4_RRR6erzbirRAF_21__unfu_pbafg_vgrengbeVCAF_11__unfu_abqrVF4_CiRRRR:
 nop
 .text
-.globl b__MA11hajvaqfgnpx16QjnesFrpgvbaVzcyVwR16TrgPvrSebzBssfrgRz
+.weak b__MA11hajvaqfgnpx16QjnesFrpgvbaVzcyVwR16TrgPvrSebzBssfrgRz
 .type b__MA11hajvaqfgnpx16QjnesFrpgvbaVzcyVwR16TrgPvrSebzBssfrgRz,%function
 b__MA11hajvaqfgnpx16QjnesFrpgvbaVzcyVwR16TrgPvrSebzBssfrgRz:
 nop
 .text
-.globl b__MA11hajvaqfgnpx7Flzobyf7TrgAnzrV9rys32_flzRRozCAF_6ZrzbelRCAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRRCz
+.weak b__MA11hajvaqfgnpx7Flzobyf7TrgAnzrV9rys32_flzRRozCAF_6ZrzbelRCAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRRCz
 .type b__MA11hajvaqfgnpx7Flzobyf7TrgAnzrV9rys32_flzRRozCAF_6ZrzbelRCAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRRCz,%function
 b__MA11hajvaqfgnpx7Flzobyf7TrgAnzrV9rys32_flzRRozCAF_6ZrzbelRCAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRRCz:
 nop
@@ -2478,7 +2478,7 @@
 b__MGIA11hajvaqfgnpx12ZrzbelEnatrfR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwA11hajvaqfgnpx13QjnesYbpngvbaRRRAF_22__habeqrerq_znc_unfureVwF4_AF_4unfuVwRRYo1RRRAF_21__habeqrerq_znc_rdhnyVwF4_AF_8rdhny_gbVwRRYo1RRRAF_9nyybpngbeVF4_RRR6erunfuRz
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwA11hajvaqfgnpx13QjnesYbpngvbaRRRAF_22__habeqrerq_znc_unfureVwF4_AF_4unfuVwRRYo1RRRAF_21__habeqrerq_znc_rdhnyVwF4_AF_8rdhny_gbVwRRYo1RRRAF_9nyybpngbeVF4_RRR6erunfuRz
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwA11hajvaqfgnpx13QjnesYbpngvbaRRRAF_22__habeqrerq_znc_unfureVwF4_AF_4unfuVwRRYo1RRRAF_21__habeqrerq_znc_rdhnyVwF4_AF_8rdhny_gbVwRRYo1RRRAF_9nyybpngbeVF4_RRR6erunfuRz,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwA11hajvaqfgnpx13QjnesYbpngvbaRRRAF_22__habeqrerq_znc_unfureVwF4_AF_4unfuVwRRYo1RRRAF_21__habeqrerq_znc_rdhnyVwF4_AF_8rdhny_gbVwRRYo1RRRAF_9nyybpngbeVF4_RRR6erunfuRz:
 nop
@@ -2503,22 +2503,22 @@
 b__MA11hajvaqfgnpx18ZrzbelBssyvarCnegf4ErnqRzCiz:
 nop
 .text
-.globl b__MA11hajvaqfgnpx8QjnesPsnVzR10psn_bssfrgRCAF_14QjnesYbpngvbafR
+.weak b__MA11hajvaqfgnpx8QjnesPsnVzR10psn_bssfrgRCAF_14QjnesYbpngvbafR
 .type b__MA11hajvaqfgnpx8QjnesPsnVzR10psn_bssfrgRCAF_14QjnesYbpngvbafR,%function
 b__MA11hajvaqfgnpx8QjnesPsnVzR10psn_bssfrgRCAF_14QjnesYbpngvbafR:
 nop
 .text
-.globl b__MA11hajvaqfgnpx7QjnesBcVzR9BcrenaqNgRz
+.weak b__MA11hajvaqfgnpx7QjnesBcVzR9BcrenaqNgRz
 .type b__MA11hajvaqfgnpx7QjnesBcVzR9BcrenaqNgRz,%function
 b__MA11hajvaqfgnpx7QjnesBcVzR9BcrenaqNgRz:
 nop
 .text
-.globl b__MA11hajvaqfgnpx16QjnesFrpgvbaVzcyVwR15SvyyVaSqrUrnqreRCAF_8QjnesSqrR
+.weak b__MA11hajvaqfgnpx16QjnesFrpgvbaVzcyVwR15SvyyVaSqrUrnqreRCAF_8QjnesSqrR
 .type b__MA11hajvaqfgnpx16QjnesFrpgvbaVzcyVwR15SvyyVaSqrUrnqreRCAF_8QjnesSqrR,%function
 b__MA11hajvaqfgnpx16QjnesFrpgvbaVzcyVwR15SvyyVaSqrUrnqreRCAF_8QjnesSqrR:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzA11hajvaqfgnpx8QjnesSqrRRRAF_22__habeqrerq_znc_unfureVzF4_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF4_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF4_RRR25__rzcynpr_havdhr_xrl_netfVzWEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXzRRRAFX_VWRRRRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF4_CiRRRRoRREXG_QcBG0_
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzA11hajvaqfgnpx8QjnesSqrRRRAF_22__habeqrerq_znc_unfureVzF4_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF4_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF4_RRR25__rzcynpr_havdhr_xrl_netfVzWEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXzRRRAFX_VWRRRRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF4_CiRRRRoRREXG_QcBG0_
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzA11hajvaqfgnpx8QjnesSqrRRRAF_22__habeqrerq_znc_unfureVzF4_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF4_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF4_RRR25__rzcynpr_havdhr_xrl_netfVzWEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXzRRRAFX_VWRRRRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF4_CiRRRRoRREXG_QcBG0_,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzA11hajvaqfgnpx8QjnesSqrRRRAF_22__habeqrerq_znc_unfureVzF4_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF4_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF4_RRR25__rzcynpr_havdhr_xrl_netfVzWEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXzRRRAFX_VWRRRRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF4_CiRRRRoRREXG_QcBG0_:
 nop
@@ -2538,42 +2538,42 @@
 b__MA11hajvaqfgnpx8NezRkvqk4RinyRi:
 nop
 .text
-.globl b__MA11hajvaqfgnpx8QjnesPsnVwR14psn_rkcerffvbaRCAF_14QjnesYbpngvbafR
+.weak b__MA11hajvaqfgnpx8QjnesPsnVwR14psn_rkcerffvbaRCAF_14QjnesYbpngvbafR
 .type b__MA11hajvaqfgnpx8QjnesPsnVwR14psn_rkcerffvbaRCAF_14QjnesYbpngvbafR,%function
 b__MA11hajvaqfgnpx8QjnesPsnVwR14psn_rkcerffvbaRCAF_14QjnesYbpngvbafR:
 nop
 .text
-.globl b__MA11hajvaqfgnpx8QjnesPsnVwR3YbtRwzzz
+.weak b__MA11hajvaqfgnpx8QjnesPsnVwR3YbtRwzzz
 .type b__MA11hajvaqfgnpx8QjnesPsnVwR3YbtRwzzz,%function
 b__MA11hajvaqfgnpx8QjnesPsnVwR3YbtRwzzz:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzA11hajvaqfgnpx19QjnesRuSenzrJvguUqeVwR7SqrVasbRRRAF_22__habeqrerq_znc_unfureVzF6_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF6_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF6_RRR25__rzcynpr_havdhr_xrl_netfVzWEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXzRRRAFZ_VWRRRRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF6_CiRRRRoRREXG_QcBG0_
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzA11hajvaqfgnpx19QjnesRuSenzrJvguUqeVwR7SqrVasbRRRAF_22__habeqrerq_znc_unfureVzF6_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF6_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF6_RRR25__rzcynpr_havdhr_xrl_netfVzWEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXzRRRAFZ_VWRRRRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF6_CiRRRRoRREXG_QcBG0_
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzA11hajvaqfgnpx19QjnesRuSenzrJvguUqeVwR7SqrVasbRRRAF_22__habeqrerq_znc_unfureVzF6_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF6_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF6_RRR25__rzcynpr_havdhr_xrl_netfVzWEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXzRRRAFZ_VWRRRRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF6_CiRRRRoRREXG_QcBG0_,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzA11hajvaqfgnpx19QjnesRuSenzrJvguUqeVwR7SqrVasbRRRAF_22__habeqrerq_znc_unfureVzF6_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF6_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF6_RRR25__rzcynpr_havdhr_xrl_netfVzWEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXzRRRAFZ_VWRRRRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF6_CiRRRRoRREXG_QcBG0_:
 nop
 .text
-.globl b__MA11hajvaqfgnpx7QjnesBcVwR9BcrenaqNgRz
+.weak b__MA11hajvaqfgnpx7QjnesBcVwR9BcrenaqNgRz
 .type b__MA11hajvaqfgnpx7QjnesBcVwR9BcrenaqNgRz,%function
 b__MA11hajvaqfgnpx7QjnesBcVwR9BcrenaqNgRz:
 nop
 .text
-.globl b__MA11hajvaqfgnpx7QjnesBcVzR13frg_ertf_vasbRCAF_8ErtfVasbVzRR
+.weak b__MA11hajvaqfgnpx7QjnesBcVzR13frg_ertf_vasbRCAF_8ErtfVasbVzRR
 .type b__MA11hajvaqfgnpx7QjnesBcVzR13frg_ertf_vasbRCAF_8ErtfVasbVzRR,%function
 b__MA11hajvaqfgnpx7QjnesBcVzR13frg_ertf_vasbRCAF_8ErtfVasbVzRR:
 nop
 .text
-.globl b__MA11hajvaqfgnpx7QjnesBcVzR5bc_yrRi
+.weak b__MA11hajvaqfgnpx7QjnesBcVzR5bc_yrRi
 .type b__MA11hajvaqfgnpx7QjnesBcVzR5bc_yrRi,%function
 b__MA11hajvaqfgnpx7QjnesBcVzR5bc_yrRi:
 nop
 .text
-.globl b__MA11hajvaqfgnpx16QjnesFrpgvbaVzcyVzR9SvyyVaSqrRCAF_8QjnesSqrR
+.weak b__MA11hajvaqfgnpx16QjnesFrpgvbaVzcyVzR9SvyyVaSqrRCAF_8QjnesSqrR
 .type b__MA11hajvaqfgnpx16QjnesFrpgvbaVzcyVzR9SvyyVaSqrRCAF_8QjnesSqrR,%function
 b__MA11hajvaqfgnpx16QjnesFrpgvbaVzcyVzR9SvyyVaSqrRCAF_8QjnesSqrR:
 nop
 .text
-.globl b__MA11hajvaqfgnpx7Flzobyf9TrgTybonyV9rys32_flzRRoCAF_6ZrzbelREXAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRRCz
+.weak b__MA11hajvaqfgnpx7Flzobyf9TrgTybonyV9rys32_flzRRoCAF_6ZrzbelREXAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRRCz
 .type b__MA11hajvaqfgnpx7Flzobyf9TrgTybonyV9rys32_flzRRoCAF_6ZrzbelREXAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRRCz,%function
 b__MA11hajvaqfgnpx7Flzobyf9TrgTybonyV9rys32_flzRRoCAF_6ZrzbelREXAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRRCz:
 nop
@@ -2583,7 +2583,7 @@
 b__MA11hajvaqfgnpx7ErtfNezP1Ri:
 nop
 .text
-.globl b__MA11hajvaqfgnpx7QjnesBcVzR4RinyRzz
+.weak b__MA11hajvaqfgnpx7QjnesBcVzR4RinyRzz
 .type b__MA11hajvaqfgnpx7QjnesBcVzR4RinyRzz,%function
 b__MA11hajvaqfgnpx7QjnesBcVzR4RinyRzz:
 nop
@@ -2598,17 +2598,17 @@
 b___pkn_qrznatyr:
 nop
 .text
-.globl b__MA11hajvaqfgnpx8QjnesPsnVwR14YbtVafgehpgvbaRwzuCz
+.weak b__MA11hajvaqfgnpx8QjnesPsnVwR14YbtVafgehpgvbaRwzuCz
 .type b__MA11hajvaqfgnpx8QjnesPsnVwR14YbtVafgehpgvbaRwzuCz,%function
 b__MA11hajvaqfgnpx8QjnesPsnVwR14YbtVafgehpgvbaRwzuCz:
 nop
 .text
-.globl b__MA11hajvaqfgnpx8QjnesPsnVzR16YnfgReebeNqqerffRi
+.weak b__MA11hajvaqfgnpx8QjnesPsnVzR16YnfgReebeNqqerffRi
 .type b__MA11hajvaqfgnpx8QjnesPsnVzR16YnfgReebeNqqerffRi,%function
 b__MA11hajvaqfgnpx8QjnesPsnVzR16YnfgReebeNqqerffRi:
 nop
 .text
-.globl b__MA11hajvaqfgnpx12RysVagresnpr27TrgShapgvbaAnzrJvguGrzcyngrV9rys32_flzRRozCAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRRCz
+.weak b__MA11hajvaqfgnpx12RysVagresnpr27TrgShapgvbaAnzrJvguGrzcyngrV9rys32_flzRRozCAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRRCz
 .type b__MA11hajvaqfgnpx12RysVagresnpr27TrgShapgvbaAnzrJvguGrzcyngrV9rys32_flzRRozCAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRRCz,%function
 b__MA11hajvaqfgnpx12RysVagresnpr27TrgShapgvbaAnzrJvguGrzcyngrV9rys32_flzRRozCAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRRCz:
 nop
@@ -2618,7 +2618,7 @@
 b__MA11hajvaqfgnpx9ErtfNez646frg_cpRz:
 nop
 .data
-.globl b__MGIA11hajvaqfgnpx8ErtfVzcyVzRR
+.weak b__MGIA11hajvaqfgnpx8ErtfVzcyVzRR
 .type b__MGIA11hajvaqfgnpx8ErtfVzcyVzRR,%object
 b__MGIA11hajvaqfgnpx8ErtfVzcyVzRR:
 .space __SIZEOF_POINTER__
@@ -2628,7 +2628,7 @@
 b__MA11hajvaqfgnpx11QjnesZrzbel9ErnqOlgrfRCiz:
 nop
 .text
-.globl b__MA11hajvaqfgnpx7QjnesBcVzR6bc_yvgRi
+.weak b__MA11hajvaqfgnpx7QjnesBcVzR6bc_yvgRi
 .type b__MA11hajvaqfgnpx7QjnesBcVzR6bc_yvgRi,%function
 b__MA11hajvaqfgnpx7QjnesBcVzR6bc_yvgRi:
 nop
@@ -2638,22 +2638,22 @@
 b__MA11hajvaqfgnpx4Zncf4SvaqRz:
 nop
 .data
-.globl b__MGIA11hajvaqfgnpx7QjnesBcVzRR
+.weak b__MGIA11hajvaqfgnpx7QjnesBcVzRR
 .type b__MGIA11hajvaqfgnpx7QjnesBcVzRR,%object
 b__MGIA11hajvaqfgnpx7QjnesBcVzRR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIA11hajvaqfgnpx8QjnesPsnVzRR
+.weak b__MGIA11hajvaqfgnpx8QjnesPsnVzRR
 .type b__MGIA11hajvaqfgnpx8QjnesPsnVzRR,%object
 b__MGIA11hajvaqfgnpx8QjnesPsnVzRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA11hajvaqfgnpx7QjnesBcVzR16YnfgReebeNqqerffRi
+.weak b__MA11hajvaqfgnpx7QjnesBcVzR16YnfgReebeNqqerffRi
 .type b__MA11hajvaqfgnpx7QjnesBcVzR16YnfgReebeNqqerffRi,%function
 b__MA11hajvaqfgnpx7QjnesBcVzR16YnfgReebeNqqerffRi:
 nop
 .text
-.globl b__MA11hajvaqfgnpx7QjnesBcVzR18bc_abg_vzcyrzragrqRi
+.weak b__MA11hajvaqfgnpx7QjnesBcVzR18bc_abg_vzcyrzragrqRi
 .type b__MA11hajvaqfgnpx7QjnesBcVzR18bc_abg_vzcyrzragrqRi,%function
 b__MA11hajvaqfgnpx7QjnesBcVzR18bc_abg_vzcyrzragrqRi:
 nop
@@ -2683,12 +2683,12 @@
 b__MA11hajvaqfgnpx9ErtfNez6416VgrengrErtvfgrefRAFg3__18shapgvbaVSiCXpzRRR:
 nop
 .text
-.globl b__MA11hajvaqfgnpx7QjnesBcVzR13YnfgReebePbqrRi
+.weak b__MA11hajvaqfgnpx7QjnesBcVzR13YnfgReebePbqrRi
 .type b__MA11hajvaqfgnpx7QjnesBcVzR13YnfgReebePbqrRi,%function
 b__MA11hajvaqfgnpx7QjnesBcVzR13YnfgReebePbqrRi:
 nop
 .text
-.globl b__MA11hajvaqfgnpx15QjnesQrohtSenzrVwRP1RCAF_6ZrzbelR
+.weak b__MA11hajvaqfgnpx15QjnesQrohtSenzrVwRP1RCAF_6ZrzbelR
 .type b__MA11hajvaqfgnpx15QjnesQrohtSenzrVwRP1RCAF_6ZrzbelR,%function
 b__MA11hajvaqfgnpx15QjnesQrohtSenzrVwRP1RCAF_6ZrzbelR:
 nop
@@ -2703,27 +2703,27 @@
 b__MA11hajvaqfgnpx7ErtfNez19FgrcVsFvtanyUnaqyreRzCAF_3RysRCAF_6ZrzbelR:
 nop
 .text
-.globl b__MA11hajvaqfgnpx8QjnesPsnVzR10ynfg_reebeRi
+.weak b__MA11hajvaqfgnpx8QjnesPsnVzR10ynfg_reebeRi
 .type b__MA11hajvaqfgnpx8QjnesPsnVzR10ynfg_reebeRi,%function
 b__MA11hajvaqfgnpx8QjnesPsnVzR10ynfg_reebeRi:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzN4096_uRRAF_22__habeqrerq_znc_unfureVzF3_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF3_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF3_RRR6erunfuRz
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzN4096_uRRAF_22__habeqrerq_znc_unfureVzF3_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF3_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF3_RRR6erunfuRz
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzN4096_uRRAF_22__habeqrerq_znc_unfureVzF3_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF3_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF3_RRR6erunfuRz,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzN4096_uRRAF_22__habeqrerq_znc_unfureVzF3_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF3_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF3_RRR6erunfuRz:
 nop
 .text
-.globl b__MA11hajvaqfgnpx19QjnesRuSenzrJvguUqeVzR7TrgSqrfRCAFg3__16irpgbeVCXAF_8QjnesSqrRAF2_9nyybpngbeVF6_RRRR
+.weak b__MA11hajvaqfgnpx19QjnesRuSenzrJvguUqeVzR7TrgSqrfRCAFg3__16irpgbeVCXAF_8QjnesSqrRAF2_9nyybpngbeVF6_RRRR
 .type b__MA11hajvaqfgnpx19QjnesRuSenzrJvguUqeVzR7TrgSqrfRCAFg3__16irpgbeVCXAF_8QjnesSqrRAF2_9nyybpngbeVF6_RRRR,%function
 b__MA11hajvaqfgnpx19QjnesRuSenzrJvguUqeVzR7TrgSqrfRCAFg3__16irpgbeVCXAF_8QjnesSqrRAF2_9nyybpngbeVF6_RRRR:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzA11hajvaqfgnpx8QjnesSqrRRRAF_22__habeqrerq_znc_unfureVzF4_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF4_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF4_RRR6erunfuRz
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzA11hajvaqfgnpx8QjnesSqrRRRAF_22__habeqrerq_znc_unfureVzF4_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF4_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF4_RRR6erunfuRz
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzA11hajvaqfgnpx8QjnesSqrRRRAF_22__habeqrerq_znc_unfureVzF4_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF4_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF4_RRR6erunfuRz,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzA11hajvaqfgnpx8QjnesSqrRRRAF_22__habeqrerq_znc_unfureVzF4_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF4_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF4_RRR6erunfuRz:
 nop
 .text
-.globl b__MA11hajvaqfgnpx12RysVagresnpr22TrgZnkFvmrJvguGrzcyngrV9rys32_uqeRRiCAF_6ZrzbelRCz
+.weak b__MA11hajvaqfgnpx12RysVagresnpr22TrgZnkFvmrJvguGrzcyngrV9rys32_uqeRRiCAF_6ZrzbelRCz
 .type b__MA11hajvaqfgnpx12RysVagresnpr22TrgZnkFvmrJvguGrzcyngrV9rys32_uqeRRiCAF_6ZrzbelRCz,%function
 b__MA11hajvaqfgnpx12RysVagresnpr22TrgZnkFvmrJvguGrzcyngrV9rys32_uqeRRiCAF_6ZrzbelRCz:
 nop
@@ -2733,12 +2733,12 @@
 b__MA11hajvaqfgnpx4Ertf15PerngrSebzYbpnyRi:
 nop
 .text
-.globl b__MA11hajvaqfgnpx8QjnesPsnVzR16frg_pvr_ybp_ertfRCXAF_14QjnesYbpngvbafR
+.weak b__MA11hajvaqfgnpx8QjnesPsnVzR16frg_pvr_ybp_ertfRCXAF_14QjnesYbpngvbafR
 .type b__MA11hajvaqfgnpx8QjnesPsnVzR16frg_pvr_ybp_ertfRCXAF_14QjnesYbpngvbafR,%function
 b__MA11hajvaqfgnpx8QjnesPsnVzR16frg_pvr_ybp_ertfRCXAF_14QjnesYbpngvbafR:
 nop
 .text
-.globl b__MA11hajvaqfgnpx7QjnesBcVzR7bc_fxvcRi
+.weak b__MA11hajvaqfgnpx7QjnesBcVzR7bc_fxvcRi
 .type b__MA11hajvaqfgnpx7QjnesBcVzR7bc_fxvcRi,%function
 b__MA11hajvaqfgnpx7QjnesBcVzR7bc_fxvcRi:
 nop
@@ -2748,47 +2748,47 @@
 b__MA11hajvaqfgnpx10ErtfK86_6419FgrcVsFvtanyUnaqyreRzCAF_3RysRCAF_6ZrzbelR:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwA11hajvaqfgnpx13QjnesYbpngvbaRRRAF_22__habeqrerq_znc_unfureVwF4_AF_4unfuVwRRYo1RRRAF_21__habeqrerq_znc_rdhnyVwF4_AF_8rdhny_gbVwRRYo1RRRAF_9nyybpngbeVF4_RRR8__erunfuRz
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwA11hajvaqfgnpx13QjnesYbpngvbaRRRAF_22__habeqrerq_znc_unfureVwF4_AF_4unfuVwRRYo1RRRAF_21__habeqrerq_znc_rdhnyVwF4_AF_8rdhny_gbVwRRYo1RRRAF_9nyybpngbeVF4_RRR8__erunfuRz
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwA11hajvaqfgnpx13QjnesYbpngvbaRRRAF_22__habeqrerq_znc_unfureVwF4_AF_4unfuVwRRYo1RRRAF_21__habeqrerq_znc_rdhnyVwF4_AF_8rdhny_gbVwRRYo1RRRAF_9nyybpngbeVF4_RRR8__erunfuRz,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwA11hajvaqfgnpx13QjnesYbpngvbaRRRAF_22__habeqrerq_znc_unfureVwF4_AF_4unfuVwRRYo1RRRAF_21__habeqrerq_znc_rdhnyVwF4_AF_8rdhny_gbVwRRYo1RRRAF_9nyybpngbeVF4_RRR8__erunfuRz:
 nop
 .text
-.globl b__MA11hajvaqfgnpx16QjnesFrpgvbaVzcyVzR3YbtRuzCXAF_8QjnesSqrR
+.weak b__MA11hajvaqfgnpx16QjnesFrpgvbaVzcyVzR3YbtRuzCXAF_8QjnesSqrR
 .type b__MA11hajvaqfgnpx16QjnesFrpgvbaVzcyVzR3YbtRuzCXAF_8QjnesSqrR,%function
 b__MA11hajvaqfgnpx16QjnesFrpgvbaVzcyVzR3YbtRuzCXAF_8QjnesSqrR:
 nop
 .text
-.globl b__MA11hajvaqfgnpx7QjnesBcVwR7bc_fjncRi
+.weak b__MA11hajvaqfgnpx7QjnesBcVwR7bc_fjncRi
 .type b__MA11hajvaqfgnpx7QjnesBcVwR7bc_fjncRi,%function
 b__MA11hajvaqfgnpx7QjnesBcVwR7bc_fjncRi:
 nop
 .text
-.globl b__MA11hajvaqfgnpx7QjnesBcVwR8bc_zvahfRi
+.weak b__MA11hajvaqfgnpx7QjnesBcVwR8bc_zvahfRi
 .type b__MA11hajvaqfgnpx7QjnesBcVwR8bc_zvahfRi,%function
 b__MA11hajvaqfgnpx7QjnesBcVwR8bc_zvahfRi:
 nop
 .text
-.globl b__MA11hajvaqfgnpx7QjnesBcVzR10qrk_cp_frgRi
+.weak b__MA11hajvaqfgnpx7QjnesBcVzR10qrk_cp_frgRi
 .type b__MA11hajvaqfgnpx7QjnesBcVzR10qrk_cp_frgRi,%function
 b__MA11hajvaqfgnpx7QjnesBcVzR10qrk_cp_frgRi:
 nop
 .text
-.globl b__MAFg3__127__vafregvba_fbeg_vapbzcyrgrVEMA11hajvaqfgnpx7Flzobyf7TrgAnzrV9rys64_flzRRozCAF1_6ZrzbelRCAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRCzRHyEXAF2_4VasbRFU_R_CFS_RRoG0_FY_G_
+.weak b__MAFg3__127__vafregvba_fbeg_vapbzcyrgrVEMA11hajvaqfgnpx7Flzobyf7TrgAnzrV9rys64_flzRRozCAF1_6ZrzbelRCAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRCzRHyEXAF2_4VasbRFU_R_CFS_RRoG0_FY_G_
 .type b__MAFg3__127__vafregvba_fbeg_vapbzcyrgrVEMA11hajvaqfgnpx7Flzobyf7TrgAnzrV9rys64_flzRRozCAF1_6ZrzbelRCAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRCzRHyEXAF2_4VasbRFU_R_CFS_RRoG0_FY_G_,%function
 b__MAFg3__127__vafregvba_fbeg_vapbzcyrgrVEMA11hajvaqfgnpx7Flzobyf7TrgAnzrV9rys64_flzRRozCAF1_6ZrzbelRCAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRCzRHyEXAF2_4VasbRFU_R_CFS_RRoG0_FY_G_:
 nop
 .text
-.globl b__MA11hajvaqfgnpx19QjnesRuSenzrJvguUqeVwR11RuSenzrVavgRzzy
+.weak b__MA11hajvaqfgnpx19QjnesRuSenzrJvguUqeVwR11RuSenzrVavgRzzy
 .type b__MA11hajvaqfgnpx19QjnesRuSenzrJvguUqeVwR11RuSenzrVavgRzzy,%function
 b__MA11hajvaqfgnpx19QjnesRuSenzrJvguUqeVwR11RuSenzrVavgRzzy:
 nop
 .text
-.globl b__MA11hajvaqfgnpx7QjnesBcVwR6bc_oenRi
+.weak b__MA11hajvaqfgnpx7QjnesBcVwR6bc_oenRi
 .type b__MA11hajvaqfgnpx7QjnesBcVwR6bc_oenRi,%function
 b__MA11hajvaqfgnpx7QjnesBcVwR6bc_oenRi:
 nop
 .text
-.globl b__MA11hajvaqfgnpx16QjnesFrpgvbaVzcyVwR15SvyyVaPvrUrnqreRCAF_8QjnesPvrR
+.weak b__MA11hajvaqfgnpx16QjnesFrpgvbaVzcyVwR15SvyyVaPvrUrnqreRCAF_8QjnesPvrR
 .type b__MA11hajvaqfgnpx16QjnesFrpgvbaVzcyVwR15SvyyVaPvrUrnqreRCAF_8QjnesPvrR,%function
 b__MA11hajvaqfgnpx16QjnesFrpgvbaVzcyVwR15SvyyVaPvrUrnqreRCAF_8QjnesPvrR:
 nop
@@ -2798,32 +2798,32 @@
 b__MA11hajvaqfgnpx8WvgQrohtP1REAFg3__110funerq_cgeVAF_6ZrzbelRRR:
 nop
 .text
-.globl b__MAFg3__120__funerq_cge_cbvagreVCA11hajvaqfgnpx19ZrzbelBssyvarOhssreRAF_14qrsnhyg_qryrgrVF2_RRAF_9nyybpngbeVF2_RRR16__ba_mreb_funerqRi
+.weak b__MAFg3__120__funerq_cge_cbvagreVCA11hajvaqfgnpx19ZrzbelBssyvarOhssreRAF_14qrsnhyg_qryrgrVF2_RRAF_9nyybpngbeVF2_RRR16__ba_mreb_funerqRi
 .type b__MAFg3__120__funerq_cge_cbvagreVCA11hajvaqfgnpx19ZrzbelBssyvarOhssreRAF_14qrsnhyg_qryrgrVF2_RRAF_9nyybpngbeVF2_RRR16__ba_mreb_funerqRi,%function
 b__MAFg3__120__funerq_cge_cbvagreVCA11hajvaqfgnpx19ZrzbelBssyvarOhssreRAF_14qrsnhyg_qryrgrVF2_RRAF_9nyybpngbeVF2_RRR16__ba_mreb_funerqRi:
 nop
 .data
-.globl b__MA11hajvaqfgnpx8QjnesPsnVzR14xPnyyonpxGnoyrR
+.weak b__MA11hajvaqfgnpx8QjnesPsnVzR14xPnyyonpxGnoyrR
 .type b__MA11hajvaqfgnpx8QjnesPsnVzR14xPnyyonpxGnoyrR,%object
 b__MA11hajvaqfgnpx8QjnesPsnVzR14xPnyyonpxGnoyrR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA11hajvaqfgnpx19QjnesRuSenzrJvguUqeVwR4VavgRzzy
+.weak b__MA11hajvaqfgnpx19QjnesRuSenzrJvguUqeVwR4VavgRzzy
 .type b__MA11hajvaqfgnpx19QjnesRuSenzrJvguUqeVwR4VavgRzzy,%function
 b__MA11hajvaqfgnpx19QjnesRuSenzrJvguUqeVwR4VavgRzzy:
 nop
 .text
-.globl b__MA11hajvaqfgnpx7QjnesBcVwR10ynfg_reebeRi
+.weak b__MA11hajvaqfgnpx7QjnesBcVwR10ynfg_reebeRi
 .type b__MA11hajvaqfgnpx7QjnesBcVwR10ynfg_reebeRi,%function
 b__MA11hajvaqfgnpx7QjnesBcVwR10ynfg_reebeRi:
 nop
 .text
-.globl b__MA11hajvaqfgnpx7QjnesBcVzR5bc_arRi
+.weak b__MA11hajvaqfgnpx7QjnesBcVzR5bc_arRi
 .type b__MA11hajvaqfgnpx7QjnesBcVzR5bc_arRi,%function
 b__MA11hajvaqfgnpx7QjnesBcVzR5bc_arRi:
 nop
 .text
-.globl b__MA11hajvaqfgnpx12RysVagresnpr11TrgYbnqOvnfV9rys64_uqe10rys64_cuqeRRyCAF_6ZrzbelR
+.weak b__MA11hajvaqfgnpx12RysVagresnpr11TrgYbnqOvnfV9rys64_uqe10rys64_cuqeRRyCAF_6ZrzbelR
 .type b__MA11hajvaqfgnpx12RysVagresnpr11TrgYbnqOvnfV9rys64_uqe10rys64_cuqeRRyCAF_6ZrzbelR,%function
 b__MA11hajvaqfgnpx12RysVagresnpr11TrgYbnqOvnfV9rys64_uqe10rys64_cuqeRRyCAF_6ZrzbelR:
 nop
@@ -2833,7 +2833,7 @@
 b__MA11hajvaqfgnpx7ErtfK864NepuRi:
 nop
 .data
-.globl b__MGIA11hajvaqfgnpx12QjnesFrpgvbaR
+.weak b__MGIA11hajvaqfgnpx12QjnesFrpgvbaR
 .type b__MGIA11hajvaqfgnpx12QjnesFrpgvbaR,%object
 b__MGIA11hajvaqfgnpx12QjnesFrpgvbaR:
 .space __SIZEOF_POINTER__
@@ -2848,7 +2848,7 @@
 b__MA11hajvaqfgnpx11ZrzbelEnatrP2REXAFg3__110funerq_cgeVAF_6ZrzbelRRRzzz:
 nop
 .text
-.globl b__MAFg3__120__funerq_cge_cbvagreVCA11hajvaqfgnpx11ZrzbelPnpurRAF_14qrsnhyg_qryrgrVF2_RRAF_9nyybpngbeVF2_RRR21__ba_mreb_funerq_jrnxRi
+.weak b__MAFg3__120__funerq_cge_cbvagreVCA11hajvaqfgnpx11ZrzbelPnpurRAF_14qrsnhyg_qryrgrVF2_RRAF_9nyybpngbeVF2_RRR21__ba_mreb_funerq_jrnxRi
 .type b__MAFg3__120__funerq_cge_cbvagreVCA11hajvaqfgnpx11ZrzbelPnpurRAF_14qrsnhyg_qryrgrVF2_RRAF_9nyybpngbeVF2_RRR21__ba_mreb_funerq_jrnxRi,%function
 b__MAFg3__120__funerq_cge_cbvagreVCA11hajvaqfgnpx11ZrzbelPnpurRAF_14qrsnhyg_qryrgrVF2_RRAF_9nyybpngbeVF2_RRR21__ba_mreb_funerq_jrnxRi:
 nop
@@ -2863,12 +2863,12 @@
 b__MA11hajvaqfgnpx4Ertf18PerngrSebzHpbagrkgRAF_8NepuRahzRCi:
 nop
 .text
-.globl b__MA11hajvaqfgnpx7QjnesBcVwR4RinyRzz
+.weak b__MA11hajvaqfgnpx7QjnesBcVwR4RinyRzz
 .type b__MA11hajvaqfgnpx7QjnesBcVwR4RinyRzz,%function
 b__MA11hajvaqfgnpx7QjnesBcVwR4RinyRzz:
 nop
 .data
-.globl b__MGIAFg3__120__funerq_cge_rzcynprVA11hajvaqfgnpx18ZrzbelSvyrNgBssfrgRAF_9nyybpngbeVF2_RRRR
+.weak b__MGIAFg3__120__funerq_cge_rzcynprVA11hajvaqfgnpx18ZrzbelSvyrNgBssfrgRAF_9nyybpngbeVF2_RRRR
 .type b__MGIAFg3__120__funerq_cge_rzcynprVA11hajvaqfgnpx18ZrzbelSvyrNgBssfrgRAF_9nyybpngbeVF2_RRRR,%object
 b__MGIAFg3__120__funerq_cge_rzcynprVA11hajvaqfgnpx18ZrzbelSvyrNgBssfrgRAF_9nyybpngbeVF2_RRRR:
 .space __SIZEOF_POINTER__
@@ -2878,12 +2878,12 @@
 b__MA11hajvaqfgnpx10ErtfK86_646frg_cpRz:
 nop
 .text
-.globl b__MA11hajvaqfgnpx7QjnesBcVzR18obby_gb_qjnes_obbyRo
+.weak b__MA11hajvaqfgnpx7QjnesBcVzR18obby_gb_qjnes_obbyRo
 .type b__MA11hajvaqfgnpx7QjnesBcVzR18obby_gb_qjnes_obbyRo,%function
 b__MA11hajvaqfgnpx7QjnesBcVzR18obby_gb_qjnes_obbyRo:
 nop
 .text
-.globl b__MA11hajvaqfgnpx7QjnesBcVzR5bc_beRi
+.weak b__MA11hajvaqfgnpx7QjnesBcVzR5bc_beRi
 .type b__MA11hajvaqfgnpx7QjnesBcVzR5bc_beRi,%function
 b__MA11hajvaqfgnpx7QjnesBcVzR5bc_beRi:
 nop
@@ -2898,22 +2898,22 @@
 b__MA11hajvaqfgnpx8Hajvaqre11FrgQrkSvyrfRCAF_8QrkSvyrfRAF_8NepuRahzR:
 nop
 .text
-.globl b__MA11hajvaqfgnpx8QjnesPsnVzR22psn_qrs_psn_rkcerffvbaRCAF_14QjnesYbpngvbafR
+.weak b__MA11hajvaqfgnpx8QjnesPsnVzR22psn_qrs_psn_rkcerffvbaRCAF_14QjnesYbpngvbafR
 .type b__MA11hajvaqfgnpx8QjnesPsnVzR22psn_qrs_psn_rkcerffvbaRCAF_14QjnesYbpngvbafR,%function
 b__MA11hajvaqfgnpx8QjnesPsnVzR22psn_qrs_psn_rkcerffvbaRCAF_14QjnesYbpngvbafR:
 nop
 .text
-.globl b__MA11hajvaqfgnpx16QjnesFrpgvbaVzcyVwR12TrgSqrSebzCpRz
+.weak b__MA11hajvaqfgnpx16QjnesFrpgvbaVzcyVwR12TrgSqrSebzCpRz
 .type b__MA11hajvaqfgnpx16QjnesFrpgvbaVzcyVwR12TrgSqrSebzCpRz,%function
 b__MA11hajvaqfgnpx16QjnesFrpgvbaVzcyVwR12TrgSqrSebzCpRz:
 nop
 .text
-.globl b__MA11hajvaqfgnpx19QjnesRuSenzrJvguUqeVwR7TrgSqrfRCAFg3__16irpgbeVCXAF_8QjnesSqrRAF2_9nyybpngbeVF6_RRRR
+.weak b__MA11hajvaqfgnpx19QjnesRuSenzrJvguUqeVwR7TrgSqrfRCAFg3__16irpgbeVCXAF_8QjnesSqrRAF2_9nyybpngbeVF6_RRRR
 .type b__MA11hajvaqfgnpx19QjnesRuSenzrJvguUqeVwR7TrgSqrfRCAFg3__16irpgbeVCXAF_8QjnesSqrRAF2_9nyybpngbeVF6_RRRR,%function
 b__MA11hajvaqfgnpx19QjnesRuSenzrJvguUqeVwR7TrgSqrfRCAFg3__16irpgbeVCXAF_8QjnesSqrRAF2_9nyybpngbeVF6_RRRR:
 nop
 .text
-.globl b__MAFg3__120__funerq_cge_cbvagreVCA11hajvaqfgnpx19ZrzbelBssyvarOhssreRAF_14qrsnhyg_qryrgrVF2_RRAF_9nyybpngbeVF2_RRR21__ba_mreb_funerq_jrnxRi
+.weak b__MAFg3__120__funerq_cge_cbvagreVCA11hajvaqfgnpx19ZrzbelBssyvarOhssreRAF_14qrsnhyg_qryrgrVF2_RRAF_9nyybpngbeVF2_RRR21__ba_mreb_funerq_jrnxRi
 .type b__MAFg3__120__funerq_cge_cbvagreVCA11hajvaqfgnpx19ZrzbelBssyvarOhssreRAF_14qrsnhyg_qryrgrVF2_RRAF_9nyybpngbeVF2_RRR21__ba_mreb_funerq_jrnxRi,%function
 b__MAFg3__120__funerq_cge_cbvagreVCA11hajvaqfgnpx19ZrzbelBssyvarOhssreRAF_14qrsnhyg_qryrgrVF2_RRAF_9nyybpngbeVF2_RRR21__ba_mreb_funerq_jrnxRi:
 nop
@@ -2933,7 +2933,7 @@
 b__MA11hajvaqfgnpx10ErtfZvcf646frg_cpRz:
 nop
 .text
-.globl b__MA11hajvaqfgnpx7QjnesBcVzR7bc_cvpxRi
+.weak b__MA11hajvaqfgnpx7QjnesBcVzR7bc_cvpxRi
 .type b__MA11hajvaqfgnpx7QjnesBcVzR7bc_cvpxRi,%function
 b__MA11hajvaqfgnpx7QjnesBcVzR7bc_cvpxRi:
 nop
@@ -2948,17 +2948,17 @@
 b__MA11hajvaqfgnpx3Rys8PnpurTrgRCAF_7ZncVasbR:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwA11hajvaqfgnpx13QjnesYbpngvbaRRRAF_22__habeqrerq_znc_unfureVwF4_AF_4unfuVwRRYo1RRRAF_21__habeqrerq_znc_rdhnyVwF4_AF_8rdhny_gbVwRRYo1RRRAF_9nyybpngbeVF4_RRR25__rzcynpr_havdhr_xrl_netfVwWEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXwRRRAFX_VWRRRRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF4_CiRRRRoRREXG_QcBG0_
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwA11hajvaqfgnpx13QjnesYbpngvbaRRRAF_22__habeqrerq_znc_unfureVwF4_AF_4unfuVwRRYo1RRRAF_21__habeqrerq_znc_rdhnyVwF4_AF_8rdhny_gbVwRRYo1RRRAF_9nyybpngbeVF4_RRR25__rzcynpr_havdhr_xrl_netfVwWEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXwRRRAFX_VWRRRRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF4_CiRRRRoRREXG_QcBG0_
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwA11hajvaqfgnpx13QjnesYbpngvbaRRRAF_22__habeqrerq_znc_unfureVwF4_AF_4unfuVwRRYo1RRRAF_21__habeqrerq_znc_rdhnyVwF4_AF_8rdhny_gbVwRRYo1RRRAF_9nyybpngbeVF4_RRR25__rzcynpr_havdhr_xrl_netfVwWEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXwRRRAFX_VWRRRRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF4_CiRRRRoRREXG_QcBG0_,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwA11hajvaqfgnpx13QjnesYbpngvbaRRRAF_22__habeqrerq_znc_unfureVwF4_AF_4unfuVwRRYo1RRRAF_21__habeqrerq_znc_rdhnyVwF4_AF_8rdhny_gbVwRRYo1RRRAF_9nyybpngbeVF4_RRR25__rzcynpr_havdhr_xrl_netfVwWEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXwRRRAFX_VWRRRRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF4_CiRRRRoRREXG_QcBG0_:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzA11hajvaqfgnpx8YbnqVasbRRRAF_22__habeqrerq_znc_unfureVzF4_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF4_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF4_RRR25__rzcynpr_havdhr_xrl_netfVzWEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWBzRRRAFX_VWRRRRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF4_CiRRRRoRREXG_QcBG0_
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzA11hajvaqfgnpx8YbnqVasbRRRAF_22__habeqrerq_znc_unfureVzF4_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF4_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF4_RRR25__rzcynpr_havdhr_xrl_netfVzWEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWBzRRRAFX_VWRRRRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF4_CiRRRRoRREXG_QcBG0_
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzA11hajvaqfgnpx8YbnqVasbRRRAF_22__habeqrerq_znc_unfureVzF4_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF4_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF4_RRR25__rzcynpr_havdhr_xrl_netfVzWEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWBzRRRAFX_VWRRRRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF4_CiRRRRoRREXG_QcBG0_,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzA11hajvaqfgnpx8YbnqVasbRRRAF_22__habeqrerq_znc_unfureVzF4_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF4_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF4_RRR25__rzcynpr_havdhr_xrl_netfVzWEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWBzRRRAFX_VWRRRRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF4_CiRRRRoRREXG_QcBG0_:
 nop
 .text
-.globl b__MA11hajvaqfgnpx7QjnesBcVzR14erthyne_zrzbelRi
+.weak b__MA11hajvaqfgnpx7QjnesBcVzR14erthyne_zrzbelRi
 .type b__MA11hajvaqfgnpx7QjnesBcVzR14erthyne_zrzbelRi,%function
 b__MA11hajvaqfgnpx7QjnesBcVzR14erthyne_zrzbelRi:
 nop
@@ -2968,32 +2968,32 @@
 b__MGIA11hajvaqfgnpx8ErtfZvcfR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA11hajvaqfgnpx8QjnesPsnVzR14psn_rkcerffvbaRCAF_14QjnesYbpngvbafR
+.weak b__MA11hajvaqfgnpx8QjnesPsnVzR14psn_rkcerffvbaRCAF_14QjnesYbpngvbafR
 .type b__MA11hajvaqfgnpx8QjnesPsnVzR14psn_rkcerffvbaRCAF_14QjnesYbpngvbafR,%function
 b__MA11hajvaqfgnpx8QjnesPsnVzR14psn_rkcerffvbaRCAF_14QjnesYbpngvbafR:
 nop
 .text
-.globl b__MA11hajvaqfgnpx16QjnesFrpgvbaVzcyVzR7TrgSqrfRCAFg3__16irpgbeVCXAF_8QjnesSqrRAF2_9nyybpngbeVF6_RRRR
+.weak b__MA11hajvaqfgnpx16QjnesFrpgvbaVzcyVzR7TrgSqrfRCAFg3__16irpgbeVCXAF_8QjnesSqrRAF2_9nyybpngbeVF6_RRRR
 .type b__MA11hajvaqfgnpx16QjnesFrpgvbaVzcyVzR7TrgSqrfRCAFg3__16irpgbeVCXAF_8QjnesSqrRAF2_9nyybpngbeVF6_RRRR,%function
 b__MA11hajvaqfgnpx16QjnesFrpgvbaVzcyVzR7TrgSqrfRCAFg3__16irpgbeVCXAF_8QjnesSqrRAF2_9nyybpngbeVF6_RRRR:
 nop
 .text
-.globl b__MA11hajvaqfgnpx7QjnesBcVwR5bc_yrRi
+.weak b__MA11hajvaqfgnpx7QjnesBcVwR5bc_yrRi
 .type b__MA11hajvaqfgnpx7QjnesBcVwR5bc_yrRi,%function
 b__MA11hajvaqfgnpx7QjnesBcVwR5bc_yrRi:
 nop
 .text
-.globl b__MA11hajvaqfgnpx7QjnesBcVwR6QrpbqrRi
+.weak b__MA11hajvaqfgnpx7QjnesBcVwR6QrpbqrRi
 .type b__MA11hajvaqfgnpx7QjnesBcVwR6QrpbqrRi,%function
 b__MA11hajvaqfgnpx7QjnesBcVwR6QrpbqrRi:
 nop
 .text
-.globl b__MA11hajvaqfgnpx7QjnesBcVzR14bc_cyhf_hpbafgRi
+.weak b__MA11hajvaqfgnpx7QjnesBcVzR14bc_cyhf_hpbafgRi
 .type b__MA11hajvaqfgnpx7QjnesBcVzR14bc_cyhf_hpbafgRi,%function
 b__MA11hajvaqfgnpx7QjnesBcVzR14bc_cyhf_hpbafgRi:
 nop
 .text
-.globl b__MA11hajvaqfgnpx7QjnesBcVzR5bc_tgRi
+.weak b__MA11hajvaqfgnpx7QjnesBcVzR5bc_tgRi
 .type b__MA11hajvaqfgnpx7QjnesBcVzR5bc_tgRi,%function
 b__MA11hajvaqfgnpx7QjnesBcVzR5bc_tgRi:
 nop
@@ -3013,12 +3013,12 @@
 b__MA11hajvaqfgnpx18ZrzbelSvyrNgBssfrg4VavgREXAFg3__112onfvp_fgevatVpAF1_11pune_genvgfVpRRAF1_9nyybpngbeVpRRRRzz:
 nop
 .text
-.globl b__MA11hajvaqfgnpx7QjnesBcVzRP2RCAF_11QjnesZrzbelRCAF_6ZrzbelR
+.weak b__MA11hajvaqfgnpx7QjnesBcVzRP2RCAF_11QjnesZrzbelRCAF_6ZrzbelR
 .type b__MA11hajvaqfgnpx7QjnesBcVzRP2RCAF_11QjnesZrzbelRCAF_6ZrzbelR,%function
 b__MA11hajvaqfgnpx7QjnesBcVzRP2RCAF_11QjnesZrzbelRCAF_6ZrzbelR:
 nop
 .text
-.globl b__MA11hajvaqfgnpx16QjnesFrpgvbaVzcyVwR14RinyRkcerffvbaREXAF_13QjnesYbpngvbaRCAF_6ZrzbelRCwCAF_8ErtfVasbVwRRCo
+.weak b__MA11hajvaqfgnpx16QjnesFrpgvbaVzcyVwR14RinyRkcerffvbaREXAF_13QjnesYbpngvbaRCAF_6ZrzbelRCwCAF_8ErtfVasbVwRRCo
 .type b__MA11hajvaqfgnpx16QjnesFrpgvbaVzcyVwR14RinyRkcerffvbaREXAF_13QjnesYbpngvbaRCAF_6ZrzbelRCwCAF_8ErtfVasbVwRRCo,%function
 b__MA11hajvaqfgnpx16QjnesFrpgvbaVzcyVwR14RinyRkcerffvbaREXAF_13QjnesYbpngvbaRCAF_6ZrzbelRCwCAF_8ErtfVasbVwRRCo:
 nop
@@ -3028,17 +3028,17 @@
 b__MA11hajvaqfgnpx10ErtfK86_6416VgrengrErtvfgrefRAFg3__18shapgvbaVSiCXpzRRR:
 nop
 .text
-.globl b__MA11hajvaqfgnpx8QjnesPsnVzR18psn_iny_rkcerffvbaRCAF_14QjnesYbpngvbafR
+.weak b__MA11hajvaqfgnpx8QjnesPsnVzR18psn_iny_rkcerffvbaRCAF_14QjnesYbpngvbafR
 .type b__MA11hajvaqfgnpx8QjnesPsnVzR18psn_iny_rkcerffvbaRCAF_14QjnesYbpngvbafR,%function
 b__MA11hajvaqfgnpx8QjnesPsnVzR18psn_iny_rkcerffvbaRCAF_14QjnesYbpngvbafR:
 nop
 .text
-.globl b__MA11hajvaqfgnpx7QjnesBcVzR6bc_artRi
+.weak b__MA11hajvaqfgnpx7QjnesBcVzR6bc_artRi
 .type b__MA11hajvaqfgnpx7QjnesBcVzR6bc_artRi,%function
 b__MA11hajvaqfgnpx7QjnesBcVzR6bc_artRi:
 nop
 .text
-.globl b__MA11hajvaqfgnpx12RysVagresnpr18ErnqCebtenzUrnqrefV9rys32_uqe10rys32_cuqeRRiEXG_Cy
+.weak b__MA11hajvaqfgnpx12RysVagresnpr18ErnqCebtenzUrnqrefV9rys32_uqe10rys32_cuqeRRiEXG_Cy
 .type b__MA11hajvaqfgnpx12RysVagresnpr18ErnqCebtenzUrnqrefV9rys32_uqe10rys32_cuqeRRiEXG_Cy,%function
 b__MA11hajvaqfgnpx12RysVagresnpr18ErnqCebtenzUrnqrefV9rys32_uqe10rys32_cuqeRRiEXG_Cy:
 nop
@@ -3053,22 +3053,22 @@
 b__MA11hajvaqfgnpx8QrkSvyrf10TrgQrkSvyrRzCAF_7ZncVasbR:
 nop
 .data
-.globl b__MGIA11hajvaqfgnpx16QjnesFrpgvbaVzcyVzRR
+.weak b__MGIA11hajvaqfgnpx16QjnesFrpgvbaVzcyVzRR
 .type b__MGIA11hajvaqfgnpx16QjnesFrpgvbaVzcyVzRR,%object
 b__MGIA11hajvaqfgnpx16QjnesFrpgvbaVzcyVzRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA11hajvaqfgnpx7QjnesBcVwR7bc_cyhfRi
+.weak b__MA11hajvaqfgnpx7QjnesBcVwR7bc_cyhfRi
 .type b__MA11hajvaqfgnpx7QjnesBcVwR7bc_cyhfRi,%function
 b__MA11hajvaqfgnpx7QjnesBcVwR7bc_cyhfRi:
 nop
 .text
-.globl b__MA11hajvaqfgnpx7QjnesBcVwR8bc_oertkRi
+.weak b__MA11hajvaqfgnpx7QjnesBcVwR8bc_oertkRi
 .type b__MA11hajvaqfgnpx7QjnesBcVwR8bc_oertkRi,%function
 b__MA11hajvaqfgnpx7QjnesBcVwR8bc_oertkRi:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_4cnveVAF_10funerq_cgeVA11hajvaqfgnpx3RysRRRoRRRRAF_22__habeqrerq_znc_unfureVF7_FR_AF_4unfuVF7_RRYo1RRRAF_21__habeqrerq_znc_rdhnyVF7_FR_AF_8rdhny_gbVF7_RRYo1RRRAF5_VFR_RRR25__rzcynpr_havdhr_xrl_netfVF7_WEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWBF7_RRRAFG_VWRRRRRRAF8_VAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVFR_CiRRRRoRREXG_QcBG0_
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_4cnveVAF_10funerq_cgeVA11hajvaqfgnpx3RysRRRoRRRRAF_22__habeqrerq_znc_unfureVF7_FR_AF_4unfuVF7_RRYo1RRRAF_21__habeqrerq_znc_rdhnyVF7_FR_AF_8rdhny_gbVF7_RRYo1RRRAF5_VFR_RRR25__rzcynpr_havdhr_xrl_netfVF7_WEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWBF7_RRRAFG_VWRRRRRRAF8_VAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVFR_CiRRRRoRREXG_QcBG0_
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_4cnveVAF_10funerq_cgeVA11hajvaqfgnpx3RysRRRoRRRRAF_22__habeqrerq_znc_unfureVF7_FR_AF_4unfuVF7_RRYo1RRRAF_21__habeqrerq_znc_rdhnyVF7_FR_AF_8rdhny_gbVF7_RRYo1RRRAF5_VFR_RRR25__rzcynpr_havdhr_xrl_netfVF7_WEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWBF7_RRRAFG_VWRRRRRRAF8_VAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVFR_CiRRRRoRREXG_QcBG0_,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_4cnveVAF_10funerq_cgeVA11hajvaqfgnpx3RysRRRoRRRRAF_22__habeqrerq_znc_unfureVF7_FR_AF_4unfuVF7_RRYo1RRRAF_21__habeqrerq_znc_rdhnyVF7_FR_AF_8rdhny_gbVF7_RRYo1RRRAF5_VFR_RRR25__rzcynpr_havdhr_xrl_netfVF7_WEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWBF7_RRRAFG_VWRRRRRRAF8_VAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVFR_CiRRRRoRREXG_QcBG0_:
 nop
@@ -3078,17 +3078,17 @@
 b__MA11hajvaqfgnpx9ErtfNez645PybarRi:
 nop
 .text
-.globl b__MA11hajvaqfgnpx7QjnesBcVwR6bc_nofRi
+.weak b__MA11hajvaqfgnpx7QjnesBcVwR6bc_nofRi
 .type b__MA11hajvaqfgnpx7QjnesBcVwR6bc_nofRi,%function
 b__MA11hajvaqfgnpx7QjnesBcVwR6bc_nofRi:
 nop
 .text
-.globl b__MA11hajvaqfgnpx7QjnesBcVwR6bc_zhyRi
+.weak b__MA11hajvaqfgnpx7QjnesBcVwR6bc_zhyRi
 .type b__MA11hajvaqfgnpx7QjnesBcVwR6bc_zhyRi,%function
 b__MA11hajvaqfgnpx7QjnesBcVwR6bc_zhyRi:
 nop
 .text
-.globl b__MAFg3__16irpgbeVCA11hajvaqfgnpx7FlzobyfRAF_9nyybpngbeVF3_RRR21__chfu_onpx_fybj_cnguVF3_RRiBG_
+.weak b__MAFg3__16irpgbeVCA11hajvaqfgnpx7FlzobyfRAF_9nyybpngbeVF3_RRR21__chfu_onpx_fybj_cnguVF3_RRiBG_
 .type b__MAFg3__16irpgbeVCA11hajvaqfgnpx7FlzobyfRAF_9nyybpngbeVF3_RRR21__chfu_onpx_fybj_cnguVF3_RRiBG_,%function
 b__MAFg3__16irpgbeVCA11hajvaqfgnpx7FlzobyfRAF_9nyybpngbeVF3_RRR21__chfu_onpx_fybj_cnguVF3_RRiBG_:
 nop
@@ -3098,7 +3098,7 @@
 b__MA11hajvaqfgnpx15RysVagresnprNez13TrgCery31NqqeRwCw:
 nop
 .data
-.globl b__MGIA11hajvaqfgnpx3RysR
+.weak b__MGIA11hajvaqfgnpx3RysR
 .type b__MGIA11hajvaqfgnpx3RysR,%object
 b__MGIA11hajvaqfgnpx3RysR:
 .space __SIZEOF_POINTER__
@@ -3108,7 +3108,7 @@
 b__MA11hajvaqfgnpx19ZrzbelBssyvarOhssre4ErnqRzCiz:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzwRRAF_22__habeqrerq_znc_unfureVzF2_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF2_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF2_RRR6erunfuRz
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzwRRAF_22__habeqrerq_znc_unfureVzF2_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF2_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF2_RRR6erunfuRz
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzwRRAF_22__habeqrerq_znc_unfureVzF2_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF2_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF2_RRR6erunfuRz,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzwRRAF_22__habeqrerq_znc_unfureVzF2_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF2_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF2_RRR6erunfuRz:
 nop
@@ -3123,22 +3123,22 @@
 b__MA11hajvaqfgnpx7ErtfNezP2Ri:
 nop
 .text
-.globl b__MA11hajvaqfgnpx7QjnesBcVwR13frg_ertf_vasbRCAF_8ErtfVasbVwRR
+.weak b__MA11hajvaqfgnpx7QjnesBcVwR13frg_ertf_vasbRCAF_8ErtfVasbVwRR
 .type b__MA11hajvaqfgnpx7QjnesBcVwR13frg_ertf_vasbRCAF_8ErtfVasbVwRR,%function
 b__MA11hajvaqfgnpx7QjnesBcVwR13frg_ertf_vasbRCAF_8ErtfVasbVwRR:
 nop
 .text
-.globl b__MAFg3__114__fcyvg_ohssreVCzAF_9nyybpngbeVF1_RRR10chfu_sebagRBF1_
+.weak b__MAFg3__114__fcyvg_ohssreVCzAF_9nyybpngbeVF1_RRR10chfu_sebagRBF1_
 .type b__MAFg3__114__fcyvg_ohssreVCzAF_9nyybpngbeVF1_RRR10chfu_sebagRBF1_,%function
 b__MAFg3__114__fcyvg_ohssreVCzAF_9nyybpngbeVF1_RRR10chfu_sebagRBF1_:
 nop
 .text
-.globl b__MA11hajvaqfgnpx12QjnesRuSenzrVwRP2RCAF_6ZrzbelR
+.weak b__MA11hajvaqfgnpx12QjnesRuSenzrVwRP2RCAF_6ZrzbelR
 .type b__MA11hajvaqfgnpx12QjnesRuSenzrVwRP2RCAF_6ZrzbelR,%function
 b__MA11hajvaqfgnpx12QjnesRuSenzrVwRP2RCAF_6ZrzbelR:
 nop
 .text
-.globl b__MA11hajvaqfgnpx12RysVagresnpr29TrgTybonyInevnoyrJvguGrzcyngrV9rys32_flzRRoEXAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRRCz
+.weak b__MA11hajvaqfgnpx12RysVagresnpr29TrgTybonyInevnoyrJvguGrzcyngrV9rys32_flzRRoEXAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRRCz
 .type b__MA11hajvaqfgnpx12RysVagresnpr29TrgTybonyInevnoyrJvguGrzcyngrV9rys32_flzRRoEXAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRRCz,%function
 b__MA11hajvaqfgnpx12RysVagresnpr29TrgTybonyInevnoyrJvguGrzcyngrV9rys32_flzRRoEXAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRRCz:
 nop
@@ -3153,7 +3153,7 @@
 b__MGIA11hajvaqfgnpx18ZrzbelSvyrNgBssfrgR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__16irpgbeVAF_10havdhr_cgeVA11hajvaqfgnpx7ZncVasbRAF_14qrsnhyg_qryrgrVF3_RRRRAF_9nyybpngbeVF6_RRR24__rzcynpr_onpx_fybj_cnguVWCF3_RRRiQcBG_
+.weak b__MAFg3__16irpgbeVAF_10havdhr_cgeVA11hajvaqfgnpx7ZncVasbRAF_14qrsnhyg_qryrgrVF3_RRRRAF_9nyybpngbeVF6_RRR24__rzcynpr_onpx_fybj_cnguVWCF3_RRRiQcBG_
 .type b__MAFg3__16irpgbeVAF_10havdhr_cgeVA11hajvaqfgnpx7ZncVasbRAF_14qrsnhyg_qryrgrVF3_RRRRAF_9nyybpngbeVF6_RRR24__rzcynpr_onpx_fybj_cnguVWCF3_RRRiQcBG_,%function
 b__MAFg3__16irpgbeVAF_10havdhr_cgeVA11hajvaqfgnpx7ZncVasbRAF_14qrsnhyg_qryrgrVF3_RRRRAF_9nyybpngbeVF6_RRR24__rzcynpr_onpx_fybj_cnguVWCF3_RRRiQcBG_:
 nop
@@ -3163,17 +3163,17 @@
 b__MA11hajvaqfgnpx7ErtfK8618PerngrSebzHpbagrkgRCi:
 nop
 .text
-.globl b__MA11hajvaqfgnpx19QjnesRuSenzrJvguUqeVzR12TrgSqrSebzCpRz
+.weak b__MA11hajvaqfgnpx19QjnesRuSenzrJvguUqeVzR12TrgSqrSebzCpRz
 .type b__MA11hajvaqfgnpx19QjnesRuSenzrJvguUqeVzR12TrgSqrSebzCpRz,%function
 b__MA11hajvaqfgnpx19QjnesRuSenzrJvguUqeVzR12TrgSqrSebzCpRz:
 nop
 .text
-.globl b__MA11hajvaqfgnpx7QjnesBcVwR6bc_kbeRi
+.weak b__MA11hajvaqfgnpx7QjnesBcVwR6bc_kbeRi
 .type b__MA11hajvaqfgnpx7QjnesBcVwR6bc_kbeRi,%function
 b__MA11hajvaqfgnpx7QjnesBcVwR6bc_kbeRi:
 nop
 .text
-.globl b__MA11hajvaqfgnpx12RysVagresnpr11ErnqOhvyqVQV10rys32_abgrRRAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRRi
+.weak b__MA11hajvaqfgnpx12RysVagresnpr11ErnqOhvyqVQV10rys32_abgrRRAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRRi
 .type b__MA11hajvaqfgnpx12RysVagresnpr11ErnqOhvyqVQV10rys32_abgrRRAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRRi,%function
 b__MA11hajvaqfgnpx12RysVagresnpr11ErnqOhvyqVQV10rys32_abgrRRAFg3__112onfvp_fgevatVpAF3_11pune_genvgfVpRRAF3_9nyybpngbeVpRRRRi:
 nop
@@ -3183,22 +3183,22 @@
 b__MA11hajvaqfgnpx10ErtfK86_646frg_fcRz:
 nop
 .text
-.globl b__MA11hajvaqfgnpx16QjnesFrpgvbaVzcyVwR7TrgSqrfRCAFg3__16irpgbeVCXAF_8QjnesSqrRAF2_9nyybpngbeVF6_RRRR
+.weak b__MA11hajvaqfgnpx16QjnesFrpgvbaVzcyVwR7TrgSqrfRCAFg3__16irpgbeVCXAF_8QjnesSqrRAF2_9nyybpngbeVF6_RRRR
 .type b__MA11hajvaqfgnpx16QjnesFrpgvbaVzcyVwR7TrgSqrfRCAFg3__16irpgbeVCXAF_8QjnesSqrRAF2_9nyybpngbeVF6_RRRR,%function
 b__MA11hajvaqfgnpx16QjnesFrpgvbaVzcyVwR7TrgSqrfRCAFg3__16irpgbeVCXAF_8QjnesSqrRAF2_9nyybpngbeVF6_RRRR:
 nop
 .text
-.globl b__MA11hajvaqfgnpx11QjnesZrzbel10ErnqFvtarqVnRRoCz
+.weak b__MA11hajvaqfgnpx11QjnesZrzbel10ErnqFvtarqVnRRoCz
 .type b__MA11hajvaqfgnpx11QjnesZrzbel10ErnqFvtarqVnRRoCz,%function
 b__MA11hajvaqfgnpx11QjnesZrzbel10ErnqFvtarqVnRRoCz:
 nop
 .data
-.globl b__MA11hajvaqfgnpx7QjnesBcVwR17xBcUnaqyrShapYvfgR
+.weak b__MA11hajvaqfgnpx7QjnesBcVwR17xBcUnaqyrShapYvfgR
 .type b__MA11hajvaqfgnpx7QjnesBcVwR17xBcUnaqyrShapYvfgR,%object
 b__MA11hajvaqfgnpx7QjnesBcVwR17xBcUnaqyrShapYvfgR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzA11hajvaqfgnpx8QjnesSqrRRRAF_22__habeqrerq_znc_unfureVzF4_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF4_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF4_RRR14__renfr_havdhrVzRRzEXG_
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzA11hajvaqfgnpx8QjnesSqrRRRAF_22__habeqrerq_znc_unfureVzF4_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF4_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF4_RRR14__renfr_havdhrVzRRzEXG_
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzA11hajvaqfgnpx8QjnesSqrRRRAF_22__habeqrerq_znc_unfureVzF4_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF4_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF4_RRR14__renfr_havdhrVzRRzEXG_,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzA11hajvaqfgnpx8QjnesSqrRRRAF_22__habeqrerq_znc_unfureVzF4_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF4_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF4_RRR14__renfr_havdhrVzRRzEXG_:
 nop
@@ -3213,7 +3213,7 @@
 b__MA11hajvaqfgnpx8ErtfZvcf18PerngrSebzHpbagrkgRCi:
 nop
 .text
-.globl b__MA11hajvaqfgnpx8QjnesPsnVzR3YbtRwzzz
+.weak b__MA11hajvaqfgnpx8QjnesPsnVzR3YbtRwzzz
 .type b__MA11hajvaqfgnpx8QjnesPsnVzR3YbtRwzzz,%function
 b__MA11hajvaqfgnpx8QjnesPsnVzR3YbtRwzzz:
 nop
@@ -3233,7 +3233,7 @@
 b__MA11hajvaqfgnpx6Zrzbel19PerngrBssyvarZrzbelRCXuzz:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVzAF_10havdhr_cgeVA11hajvaqfgnpx11ZrzbelEnatrRAF_14qrsnhyg_qryrgrVF4_RRRRRRAF_19__znc_inyhr_pbzcnerVzF8_AF_4yrffVzRRYo1RRRAF_9nyybpngbeVF8_RRR7qrfgeblRCAF_11__gerr_abqrVF8_CiRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVzAF_10havdhr_cgeVA11hajvaqfgnpx11ZrzbelEnatrRAF_14qrsnhyg_qryrgrVF4_RRRRRRAF_19__znc_inyhr_pbzcnerVzF8_AF_4yrffVzRRYo1RRRAF_9nyybpngbeVF8_RRR7qrfgeblRCAF_11__gerr_abqrVF8_CiRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVzAF_10havdhr_cgeVA11hajvaqfgnpx11ZrzbelEnatrRAF_14qrsnhyg_qryrgrVF4_RRRRRRAF_19__znc_inyhr_pbzcnerVzF8_AF_4yrffVzRRYo1RRRAF_9nyybpngbeVF8_RRR7qrfgeblRCAF_11__gerr_abqrVF8_CiRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVzAF_10havdhr_cgeVA11hajvaqfgnpx11ZrzbelEnatrRAF_14qrsnhyg_qryrgrVF4_RRRRRRAF_19__znc_inyhr_pbzcnerVzF8_AF_4yrffVzRRYo1RRRAF_9nyybpngbeVF8_RRR7qrfgeblRCAF_11__gerr_abqrVF8_CiRR:
 nop
@@ -3243,7 +3243,7 @@
 b__MA11hajvaqfgnpx8QrkSvyrf14ErnqRagelCge32Rz:
 nop
 .text
-.globl b__MA11hajvaqfgnpx7QjnesBcVzR10TrgYbtVasbRzzCAFg3__16irpgbeVAF2_12onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRAF7_VF9_RRRR
+.weak b__MA11hajvaqfgnpx7QjnesBcVzR10TrgYbtVasbRzzCAFg3__16irpgbeVAF2_12onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRAF7_VF9_RRRR
 .type b__MA11hajvaqfgnpx7QjnesBcVzR10TrgYbtVasbRzzCAFg3__16irpgbeVAF2_12onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRAF7_VF9_RRRR,%function
 b__MA11hajvaqfgnpx7QjnesBcVzR10TrgYbtVasbRzzCAFg3__16irpgbeVAF2_12onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRRAF7_VF9_RRRR:
 nop
@@ -3258,7 +3258,7 @@
 b__MA11hajvaqfgnpx10ErtfZvcf646frg_fcRz:
 nop
 .text
-.globl b__MA11hajvaqfgnpx7QjnesBcVwR5bc_arRi
+.weak b__MA11hajvaqfgnpx7QjnesBcVwR5bc_arRi
 .type b__MA11hajvaqfgnpx7QjnesBcVwR5bc_arRi,%function
 b__MA11hajvaqfgnpx7QjnesBcVwR5bc_arRi:
 nop
@@ -3268,7 +3268,7 @@
 b__MA11hajvaqfgnpx3Rys12TrgYnfgReebeRCAF_9ReebeQngnR:
 nop
 .text
-.globl b__MA11hajvaqfgnpx12RysVagresnpr18ErnqFrpgvbaUrnqrefV9rys64_uqe10rys64_fuqeRRiEXG_
+.weak b__MA11hajvaqfgnpx12RysVagresnpr18ErnqFrpgvbaUrnqrefV9rys64_uqe10rys64_fuqeRRiEXG_
 .type b__MA11hajvaqfgnpx12RysVagresnpr18ErnqFrpgvbaUrnqrefV9rys64_uqe10rys64_fuqeRRiEXG_,%function
 b__MA11hajvaqfgnpx12RysVagresnpr18ErnqFrpgvbaUrnqrefV9rys64_uqe10rys64_fuqeRRiEXG_:
 nop
@@ -3278,17 +3278,17 @@
 b__MA11hajvaqfgnpx8WvgQrohtQ0Ri:
 nop
 .text
-.globl b__MA11hajvaqfgnpx8QjnesPsnVwR15TrgYbpngvbaVasbRzzzCAF_14QjnesYbpngvbafR
+.weak b__MA11hajvaqfgnpx8QjnesPsnVwR15TrgYbpngvbaVasbRzzzCAF_14QjnesYbpngvbafR
 .type b__MA11hajvaqfgnpx8QjnesPsnVwR15TrgYbpngvbaVasbRzzzCAF_14QjnesYbpngvbafR,%function
 b__MA11hajvaqfgnpx8QjnesPsnVwR15TrgYbpngvbaVasbRzzzCAF_14QjnesYbpngvbafR:
 nop
 .text
-.globl b__MA11hajvaqfgnpx16QjnesFrpgvbaVzcyVzR18TrgPsnYbpngvbaVasbRzCXAF_8QjnesSqrRCAF_14QjnesYbpngvbafR
+.weak b__MA11hajvaqfgnpx16QjnesFrpgvbaVzcyVzR18TrgPsnYbpngvbaVasbRzCXAF_8QjnesSqrRCAF_14QjnesYbpngvbafR
 .type b__MA11hajvaqfgnpx16QjnesFrpgvbaVzcyVzR18TrgPsnYbpngvbaVasbRzCXAF_8QjnesSqrRCAF_14QjnesYbpngvbafR,%function
 b__MA11hajvaqfgnpx16QjnesFrpgvbaVzcyVzR18TrgPsnYbpngvbaVasbRzCXAF_8QjnesSqrRCAF_14QjnesYbpngvbafR:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzA11hajvaqfgnpx14QjnesYbpngvbafRRRAF_22__habeqrerq_znc_unfureVzF4_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF4_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF4_RRR8__erunfuRz
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzA11hajvaqfgnpx14QjnesYbpngvbafRRRAF_22__habeqrerq_znc_unfureVzF4_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF4_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF4_RRR8__erunfuRz
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzA11hajvaqfgnpx14QjnesYbpngvbafRRRAF_22__habeqrerq_znc_unfureVzF4_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF4_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF4_RRR8__erunfuRz,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzA11hajvaqfgnpx14QjnesYbpngvbafRRRAF_22__habeqrerq_znc_unfureVzF4_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF4_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF4_RRR8__erunfuRz:
 nop
@@ -3308,42 +3308,42 @@
 b__MA11hajvaqfgnpx8ErtfZvcfP1Ri:
 nop
 .text
-.globl b__MAFg3__114__fcyvg_ohssreVCuEAF_9nyybpngbeVF1_RRR9chfu_onpxRBF1_
+.weak b__MAFg3__114__fcyvg_ohssreVCuEAF_9nyybpngbeVF1_RRR9chfu_onpxRBF1_
 .type b__MAFg3__114__fcyvg_ohssreVCuEAF_9nyybpngbeVF1_RRR9chfu_onpxRBF1_,%function
 b__MAFg3__114__fcyvg_ohssreVCuEAF_9nyybpngbeVF1_RRR9chfu_onpxRBF1_:
 nop
 .text
-.globl b__MA11hajvaqfgnpx8QjnesPsnVwR21psn_qrs_psn_bssfrg_fsRCAF_14QjnesYbpngvbafR
+.weak b__MA11hajvaqfgnpx8QjnesPsnVwR21psn_qrs_psn_bssfrg_fsRCAF_14QjnesYbpngvbafR
 .type b__MA11hajvaqfgnpx8QjnesPsnVwR21psn_qrs_psn_bssfrg_fsRCAF_14QjnesYbpngvbafR,%function
 b__MA11hajvaqfgnpx8QjnesPsnVwR21psn_qrs_psn_bssfrg_fsRCAF_14QjnesYbpngvbafR:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzA11hajvaqfgnpx19QjnesRuSenzrJvguUqeVwR7SqrVasbRRRAF_22__habeqrerq_znc_unfureVzF6_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF6_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF6_RRR6erunfuRz
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzA11hajvaqfgnpx19QjnesRuSenzrJvguUqeVwR7SqrVasbRRRAF_22__habeqrerq_znc_unfureVzF6_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF6_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF6_RRR6erunfuRz
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzA11hajvaqfgnpx19QjnesRuSenzrJvguUqeVwR7SqrVasbRRRAF_22__habeqrerq_znc_unfureVzF6_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF6_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF6_RRR6erunfuRz,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzA11hajvaqfgnpx19QjnesRuSenzrJvguUqeVwR7SqrVasbRRRAF_22__habeqrerq_znc_unfureVzF6_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF6_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF6_RRR6erunfuRz:
 nop
 .text
-.globl b__MA11hajvaqfgnpx7QjnesBcVwR6bc_qviRi
+.weak b__MA11hajvaqfgnpx7QjnesBcVwR6bc_qviRi
 .type b__MA11hajvaqfgnpx7QjnesBcVwR6bc_qviRi,%function
 b__MA11hajvaqfgnpx7QjnesBcVwR6bc_qviRi:
 nop
 .text
-.globl b__MA11hajvaqfgnpx19QjnesRuSenzrJvguUqeVzR11RuSenzrVavgRzzy
+.weak b__MA11hajvaqfgnpx19QjnesRuSenzrJvguUqeVzR11RuSenzrVavgRzzy
 .type b__MA11hajvaqfgnpx19QjnesRuSenzrJvguUqeVzR11RuSenzrVavgRzzy,%function
 b__MA11hajvaqfgnpx19QjnesRuSenzrJvguUqeVzR11RuSenzrVavgRzzy:
 nop
 .text
-.globl b__MA11hajvaqfgnpx7QjnesBcVwR5bc_beRi
+.weak b__MA11hajvaqfgnpx7QjnesBcVwR5bc_beRi
 .type b__MA11hajvaqfgnpx7QjnesBcVwR5bc_beRi,%function
 b__MA11hajvaqfgnpx7QjnesBcVwR5bc_beRi:
 nop
 .text
-.globl b__MA11hajvaqfgnpx7QjnesBcVzR7bc_fjncRi
+.weak b__MA11hajvaqfgnpx7QjnesBcVzR7bc_fjncRi
 .type b__MA11hajvaqfgnpx7QjnesBcVzR7bc_fjncRi,%function
 b__MA11hajvaqfgnpx7QjnesBcVzR7bc_fjncRi:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA11hajvaqfgnpx14YbpnySenzrQngnRAF_9nyybpngbeVF2_RRR24__rzcynpr_onpx_fybj_cnguVWECAF1_7ZncVasbRzzEAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF3_VpRRRREzRRRiQcBG_
+.weak b__MAFg3__16irpgbeVA11hajvaqfgnpx14YbpnySenzrQngnRAF_9nyybpngbeVF2_RRR24__rzcynpr_onpx_fybj_cnguVWECAF1_7ZncVasbRzzEAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF3_VpRRRREzRRRiQcBG_
 .type b__MAFg3__16irpgbeVA11hajvaqfgnpx14YbpnySenzrQngnRAF_9nyybpngbeVF2_RRR24__rzcynpr_onpx_fybj_cnguVWECAF1_7ZncVasbRzzEAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF3_VpRRRREzRRRiQcBG_,%function
 b__MAFg3__16irpgbeVA11hajvaqfgnpx14YbpnySenzrQngnRAF_9nyybpngbeVF2_RRR24__rzcynpr_onpx_fybj_cnguVWECAF1_7ZncVasbRzzEAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF3_VpRRRREzRRRiQcBG_:
 nop
@@ -3353,12 +3353,12 @@
 b__MA11hajvaqfgnpx10ErtfK86_6418PerngrSebzHpbagrkgRCi:
 nop
 .text
-.globl b__MA11hajvaqfgnpx7QjnesBcVwR18bc_abg_vzcyrzragrqRi
+.weak b__MA11hajvaqfgnpx7QjnesBcVwR18bc_abg_vzcyrzragrqRi
 .type b__MA11hajvaqfgnpx7QjnesBcVwR18bc_abg_vzcyrzragrqRi,%function
 b__MA11hajvaqfgnpx7QjnesBcVwR18bc_abg_vzcyrzragrqRi:
 nop
 .text
-.globl b__MA11hajvaqfgnpx7QjnesBcVwR7bc_qebcRi
+.weak b__MA11hajvaqfgnpx7QjnesBcVwR7bc_qebcRi
 .type b__MA11hajvaqfgnpx7QjnesBcVwR7bc_qebcRi,%function
 b__MA11hajvaqfgnpx7QjnesBcVwR7bc_qebcRi:
 nop
@@ -3373,17 +3373,17 @@
 b__MA11hajvaqfgnpx9ErtfNez6419FgrcVsFvtanyUnaqyreRzCAF_3RysRCAF_6ZrzbelR:
 nop
 .text
-.globl b__MA11hajvaqfgnpx8QjnesPsnVwR13YnfgReebePbqrRi
+.weak b__MA11hajvaqfgnpx8QjnesPsnVwR13YnfgReebePbqrRi
 .type b__MA11hajvaqfgnpx8QjnesPsnVwR13YnfgReebePbqrRi,%function
 b__MA11hajvaqfgnpx8QjnesPsnVwR13YnfgReebePbqrRi:
 nop
 .text
-.globl b__MA11hajvaqfgnpx8QjnesPsnVwRP1RCAF_11QjnesZrzbelRCXAF_8QjnesSqrR
+.weak b__MA11hajvaqfgnpx8QjnesPsnVwRP1RCAF_11QjnesZrzbelRCXAF_8QjnesSqrR
 .type b__MA11hajvaqfgnpx8QjnesPsnVwRP1RCAF_11QjnesZrzbelRCXAF_8QjnesSqrR,%function
 b__MA11hajvaqfgnpx8QjnesPsnVwRP1RCAF_11QjnesZrzbelRCXAF_8QjnesSqrR:
 nop
 .text
-.globl b__MA11hajvaqfgnpx16QjnesFrpgvbaVzcyVzRP2RCAF_6ZrzbelR
+.weak b__MA11hajvaqfgnpx16QjnesFrpgvbaVzcyVzRP2RCAF_6ZrzbelR
 .type b__MA11hajvaqfgnpx16QjnesFrpgvbaVzcyVzRP2RCAF_6ZrzbelR,%function
 b__MA11hajvaqfgnpx16QjnesFrpgvbaVzcyVzRP2RCAF_6ZrzbelR:
 nop
@@ -3393,27 +3393,27 @@
 b__MA11hajvaqfgnpx7ErtfK862cpRi:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzwRRAF_22__habeqrerq_znc_unfureVzF2_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF2_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF2_RRR25__rzcynpr_havdhr_xrl_netfVzWEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXzRRRAFV_VWRRRRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF2_CiRRRRoRREXG_QcBG0_
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzwRRAF_22__habeqrerq_znc_unfureVzF2_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF2_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF2_RRR25__rzcynpr_havdhr_xrl_netfVzWEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXzRRRAFV_VWRRRRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF2_CiRRRRoRREXG_QcBG0_
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzwRRAF_22__habeqrerq_znc_unfureVzF2_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF2_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF2_RRR25__rzcynpr_havdhr_xrl_netfVzWEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXzRRRAFV_VWRRRRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF2_CiRRRRoRREXG_QcBG0_,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVzwRRAF_22__habeqrerq_znc_unfureVzF2_AF_4unfuVzRRYo1RRRAF_21__habeqrerq_znc_rdhnyVzF2_AF_8rdhny_gbVzRRYo1RRRAF_9nyybpngbeVF2_RRR25__rzcynpr_havdhr_xrl_netfVzWEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXzRRRAFV_VWRRRRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF2_CiRRRRoRREXG_QcBG0_:
 nop
 .text
-.globl b__MAFg3__120__funerq_cge_rzcynprVA11hajvaqfgnpx18ZrzbelSvyrNgBssfrgRAF_9nyybpngbeVF2_RRR21__ba_mreb_funerq_jrnxRi
+.weak b__MAFg3__120__funerq_cge_rzcynprVA11hajvaqfgnpx18ZrzbelSvyrNgBssfrgRAF_9nyybpngbeVF2_RRR21__ba_mreb_funerq_jrnxRi
 .type b__MAFg3__120__funerq_cge_rzcynprVA11hajvaqfgnpx18ZrzbelSvyrNgBssfrgRAF_9nyybpngbeVF2_RRR21__ba_mreb_funerq_jrnxRi,%function
 b__MAFg3__120__funerq_cge_rzcynprVA11hajvaqfgnpx18ZrzbelSvyrNgBssfrgRAF_9nyybpngbeVF2_RRR21__ba_mreb_funerq_jrnxRi:
 nop
 .text
-.globl b__MA11hajvaqfgnpx11QjnesZrzbel10ErnqFvtarqVyRRoCz
+.weak b__MA11hajvaqfgnpx11QjnesZrzbel10ErnqFvtarqVyRRoCz
 .type b__MA11hajvaqfgnpx11QjnesZrzbel10ErnqFvtarqVyRRoCz,%function
 b__MA11hajvaqfgnpx11QjnesZrzbel10ErnqFvtarqVyRRoCz:
 nop
 .text
-.globl b__MA11hajvaqfgnpx7QjnesBcVwR5bc_tgRi
+.weak b__MA11hajvaqfgnpx7QjnesBcVwR5bc_tgRi
 .type b__MA11hajvaqfgnpx7QjnesBcVwR5bc_tgRi,%function
 b__MA11hajvaqfgnpx7QjnesBcVwR5bc_tgRi:
 nop
 .text
-.globl b__MA11hajvaqfgnpx7QjnesBcVzR6bc_oenRi
+.weak b__MA11hajvaqfgnpx7QjnesBcVzR6bc_oenRi
 .type b__MA11hajvaqfgnpx7QjnesBcVzR6bc_oenRi,%function
 b__MA11hajvaqfgnpx7QjnesBcVzR6bc_oenRi:
 nop
@@ -3423,7 +3423,7 @@
 b__MA11hajvaqfgnpx4Zncf5CnefrRi:
 nop
 .text
-.globl b__MAFg3__17__fbeg4VEMA11hajvaqfgnpx7Flzobyf7TrgAnzrV9rys64_flzRRozCAF1_6ZrzbelRCAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRCzRHyEXAF2_4VasbRFU_R_CFS_RRwG0_FY_FY_FY_G_
+.weak b__MAFg3__17__fbeg4VEMA11hajvaqfgnpx7Flzobyf7TrgAnzrV9rys64_flzRRozCAF1_6ZrzbelRCAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRCzRHyEXAF2_4VasbRFU_R_CFS_RRwG0_FY_FY_FY_G_
 .type b__MAFg3__17__fbeg4VEMA11hajvaqfgnpx7Flzobyf7TrgAnzrV9rys64_flzRRozCAF1_6ZrzbelRCAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRCzRHyEXAF2_4VasbRFU_R_CFS_RRwG0_FY_FY_FY_G_,%function
 b__MAFg3__17__fbeg4VEMA11hajvaqfgnpx7Flzobyf7TrgAnzrV9rys64_flzRRozCAF1_6ZrzbelRCAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRCzRHyEXAF2_4VasbRFU_R_CFS_RRwG0_FY_FY_FY_G_:
 nop
@@ -3433,12 +3433,12 @@
 b__MGIA11hajvaqfgnpx8QrkSvyrfR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA11hajvaqfgnpx8QjnesPsnVwR10ynfg_reebeRi
+.weak b__MA11hajvaqfgnpx8QjnesPsnVwR10ynfg_reebeRi
 .type b__MA11hajvaqfgnpx8QjnesPsnVwR10ynfg_reebeRi,%function
 b__MA11hajvaqfgnpx8QjnesPsnVwR10ynfg_reebeRi:
 nop
 .text
-.globl b__MA11hajvaqfgnpx19QjnesRuSenzrJvguUqeVzR4VavgRzzy
+.weak b__MA11hajvaqfgnpx19QjnesRuSenzrJvguUqeVzR4VavgRzzy
 .type b__MA11hajvaqfgnpx19QjnesRuSenzrJvguUqeVzR4VavgRzzy,%function
 b__MA11hajvaqfgnpx19QjnesRuSenzrJvguUqeVzR4VavgRzzy:
 nop
@@ -3458,17 +3458,17 @@
 b__MA11hajvaqfgnpx8QrkSvyrf7TrgNqqeRzCz:
 nop
 .text
-.globl b__MA11hajvaqfgnpx8QjnesPsnVzR17psn_iny_bssfrg_fsRCAF_14QjnesYbpngvbafR
+.weak b__MA11hajvaqfgnpx8QjnesPsnVzR17psn_iny_bssfrg_fsRCAF_14QjnesYbpngvbafR
 .type b__MA11hajvaqfgnpx8QjnesPsnVzR17psn_iny_bssfrg_fsRCAF_14QjnesYbpngvbafR,%function
 b__MA11hajvaqfgnpx8QjnesPsnVzR17psn_iny_bssfrg_fsRCAF_14QjnesYbpngvbafR:
 nop
 .text
-.globl b__MA11hajvaqfgnpx7QjnesBcVwR11vf_ertvfgreRi
+.weak b__MA11hajvaqfgnpx7QjnesBcVwR11vf_ertvfgreRi
 .type b__MA11hajvaqfgnpx7QjnesBcVwR11vf_ertvfgreRi,%function
 b__MA11hajvaqfgnpx7QjnesBcVwR11vf_ertvfgreRi:
 nop
 .text
-.globl b__MA11hajvaqfgnpx14TrgOhvyqVQVasbV9rys32_uqe10rys32_fuqeRRoCAF_6ZrzbelRCzF5_
+.weak b__MA11hajvaqfgnpx14TrgOhvyqVQVasbV9rys32_uqe10rys32_fuqeRRoCAF_6ZrzbelRCzF5_
 .type b__MA11hajvaqfgnpx14TrgOhvyqVQVasbV9rys32_uqe10rys32_fuqeRRoCAF_6ZrzbelRCzF5_,%function
 b__MA11hajvaqfgnpx14TrgOhvyqVQVasbV9rys32_uqe10rys32_fuqeRRoCAF_6ZrzbelRCzF5_:
 nop
@@ -3493,12 +3493,12 @@
 b__MA11hajvaqfgnpx8NezRkvqk8YbtOlErtRi:
 nop
 .text
-.globl b__MAFg3__114__fcyvg_ohssreVCwEAF_9nyybpngbeVF1_RRR9chfu_onpxRBF1_
+.weak b__MAFg3__114__fcyvg_ohssreVCwEAF_9nyybpngbeVF1_RRR9chfu_onpxRBF1_
 .type b__MAFg3__114__fcyvg_ohssreVCwEAF_9nyybpngbeVF1_RRR9chfu_onpxRBF1_,%function
 b__MAFg3__114__fcyvg_ohssreVCwEAF_9nyybpngbeVF1_RRR9chfu_onpxRBF1_:
 nop
 .text
-.globl b__MAFg3__120__funerq_cge_cbvagreVCA11hajvaqfgnpx3RysRAF_14qrsnhyg_qryrgrVF2_RRAF_9nyybpngbeVF2_RRR16__ba_mreb_funerqRi
+.weak b__MAFg3__120__funerq_cge_cbvagreVCA11hajvaqfgnpx3RysRAF_14qrsnhyg_qryrgrVF2_RRAF_9nyybpngbeVF2_RRR16__ba_mreb_funerqRi
 .type b__MAFg3__120__funerq_cge_cbvagreVCA11hajvaqfgnpx3RysRAF_14qrsnhyg_qryrgrVF2_RRAF_9nyybpngbeVF2_RRR16__ba_mreb_funerqRi,%function
 b__MAFg3__120__funerq_cge_cbvagreVCA11hajvaqfgnpx3RysRAF_14qrsnhyg_qryrgrVF2_RRAF_9nyybpngbeVF2_RRR16__ba_mreb_funerqRi:
 nop
@@ -3508,47 +3508,47 @@
 b__MA11hajvaqfgnpx4Zncf4FbegRi:
 nop
 .text
-.globl b__MA11hajvaqfgnpx7QjnesBcVwR10qrk_cp_frgRi
+.weak b__MA11hajvaqfgnpx7QjnesBcVwR10qrk_cp_frgRi
 .type b__MA11hajvaqfgnpx7QjnesBcVwR10qrk_cp_frgRi,%function
 b__MA11hajvaqfgnpx7QjnesBcVwR10qrk_cp_frgRi:
 nop
 .data
-.globl b__MGIA11hajvaqfgnpx12QjnesRuSenzrVwRR
+.weak b__MGIA11hajvaqfgnpx12QjnesRuSenzrVwRR
 .type b__MGIA11hajvaqfgnpx12QjnesRuSenzrVwRR,%object
 b__MGIA11hajvaqfgnpx12QjnesRuSenzrVwRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__16irpgbeVzAF_9nyybpngbeVzRRR21__chfu_onpx_fybj_cnguVzRRiBG_
+.weak b__MAFg3__16irpgbeVzAF_9nyybpngbeVzRRR21__chfu_onpx_fybj_cnguVzRRiBG_
 .type b__MAFg3__16irpgbeVzAF_9nyybpngbeVzRRR21__chfu_onpx_fybj_cnguVzRRiBG_,%function
 b__MAFg3__16irpgbeVzAF_9nyybpngbeVzRRR21__chfu_onpx_fybj_cnguVzRRiBG_:
 nop
 .text
-.globl b__MA11hajvaqfgnpx8QjnesPsnVwR16frg_pvr_ybp_ertfRCXAF_14QjnesYbpngvbafR
+.weak b__MA11hajvaqfgnpx8QjnesPsnVwR16frg_pvr_ybp_ertfRCXAF_14QjnesYbpngvbafR
 .type b__MA11hajvaqfgnpx8QjnesPsnVwR16frg_pvr_ybp_ertfRCXAF_14QjnesYbpngvbafR,%function
 b__MA11hajvaqfgnpx8QjnesPsnVwR16frg_pvr_ybp_ertfRCXAF_14QjnesYbpngvbafR:
 nop
 .text
-.globl b__MA11hajvaqfgnpx8QjnesPsnVwR22psn_bssfrg_rkgraqrq_fsRCAF_14QjnesYbpngvbafR
+.weak b__MA11hajvaqfgnpx8QjnesPsnVwR22psn_bssfrg_rkgraqrq_fsRCAF_14QjnesYbpngvbafR
 .type b__MA11hajvaqfgnpx8QjnesPsnVwR22psn_bssfrg_rkgraqrq_fsRCAF_14QjnesYbpngvbafR,%function
 b__MA11hajvaqfgnpx8QjnesPsnVwR22psn_bssfrg_rkgraqrq_fsRCAF_14QjnesYbpngvbafR:
 nop
 .text
-.globl b__MA11hajvaqfgnpx7QjnesBcVwR6bc_naqRi
+.weak b__MA11hajvaqfgnpx7QjnesBcVwR6bc_naqRi
 .type b__MA11hajvaqfgnpx7QjnesBcVwR6bc_naqRi,%function
 b__MA11hajvaqfgnpx7QjnesBcVwR6bc_naqRi:
 nop
 .text
-.globl b__MA11hajvaqfgnpx19QjnesRuSenzrJvguUqeVwRP2RCAF_6ZrzbelR
+.weak b__MA11hajvaqfgnpx19QjnesRuSenzrJvguUqeVwRP2RCAF_6ZrzbelR
 .type b__MA11hajvaqfgnpx19QjnesRuSenzrJvguUqeVwRP2RCAF_6ZrzbelR,%function
 b__MA11hajvaqfgnpx19QjnesRuSenzrJvguUqeVwRP2RCAF_6ZrzbelR:
 nop
 .text
-.globl b__MA11hajvaqfgnpx7QjnesBcVzR8bc_zvahfRi
+.weak b__MA11hajvaqfgnpx7QjnesBcVzR8bc_zvahfRi
 .type b__MA11hajvaqfgnpx7QjnesBcVzR8bc_zvahfRi,%function
 b__MA11hajvaqfgnpx7QjnesBcVzR8bc_zvahfRi:
 nop
 .text
-.globl b__MA11hajvaqfgnpx16QjnesFrpgvbaVzcyVwR9VafregSqrRCXAF_8QjnesSqrR
+.weak b__MA11hajvaqfgnpx16QjnesFrpgvbaVzcyVwR9VafregSqrRCXAF_8QjnesSqrR
 .type b__MA11hajvaqfgnpx16QjnesFrpgvbaVzcyVwR9VafregSqrRCXAF_8QjnesSqrR,%function
 b__MA11hajvaqfgnpx16QjnesFrpgvbaVzcyVwR9VafregSqrRCXAF_8QjnesSqrR:
 nop
diff --git a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_165.S b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_165.S
index 342c7c6..0b85ef9 100644
--- a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_165.S
+++ b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_165.S
@@ -13,17 +13,17 @@
 b__MA7naqebvq8uneqjner11pbasvtfgber4I1_125OcUjFhesnprSyvatrePbasvtf18hfrPbagrkgCevbevglRAFg3__18shapgvbaVSiEXAF1_4I1_012BcgvbanyObbyRRRR:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_11pbasvtfgber4I1_122VFhesnprSyvatrePbasvtfRAF_4uvqy4onfr4I1_05VOnfrRAF4_25OcUjFhesnprSyvatrePbasvtfRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_11pbasvtfgber4I1_122VFhesnprSyvatrePbasvtfRAF_4uvqy4onfr4I1_05VOnfrRAF4_25OcUjFhesnprSyvatrePbasvtfRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo
 .type b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_11pbasvtfgber4I1_122VFhesnprSyvatrePbasvtfRAF_4uvqy4onfr4I1_05VOnfrRAF4_25OcUjFhesnprSyvatrePbasvtfRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_11pbasvtfgber4I1_122VFhesnprSyvatrePbasvtfRAF_4uvqy4onfr4I1_05VOnfrRAF4_25OcUjFhesnprSyvatrePbasvtfRRRAF0_6ErgheaVAF_2fcVG_RRRRAFP_VG0_RRCXpo:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRP2REXFU_
+.weak b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRP2REXFU_
 .type b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRP2REXFU_,%function
 b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRP2REXFU_:
 nop
@@ -43,12 +43,12 @@
 b__MA7naqebvq8uneqjner11pbasvtfgber4I1_125OcUjFhesnprSyvatrePbasvtf16unfFlapSenzrjbexRAFg3__18shapgvbaVSiEXAF1_4I1_012BcgvbanyObbyRRRR:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_:
 nop
 .text
-.globl b__MAFg3__16irpgbeVCiAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_
+.weak b__MAFg3__16irpgbeVCiAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_
 .type b__MAFg3__16irpgbeVCiAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_,%function
 b__MAFg3__16irpgbeVCiAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_:
 nop
@@ -113,7 +113,7 @@
 b__MA7naqebvq8uneqjner11pbasvtfgber4I1_125OcUjFhesnprSyvatrePbasvtf25iflapFsRiragCunfrBssfrgAfRAFg3__18shapgvbaVSiEXAF1_4I1_013BcgvbanyVag64RRRR:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFT_RRECAF_15__gerr_raq_abqrVFG_RREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFT_RRECAF_15__gerr_raq_abqrVFG_RREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFT_RRECAF_15__gerr_raq_abqrVFG_RREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFT_RRECAF_15__gerr_raq_abqrVFG_RREXG_:
 nop
@@ -123,7 +123,7 @@
 b__MA7naqebvq8uneqjner11pbasvtfgber4I1_122VFhesnprSyvatrePbasvtf13gelTrgFreivprREXAFg3__112onfvp_fgevatVpAF4_11pune_genvgfVpRRAF4_9nyybpngbeVpRRRRo:
 nop
 .data
-.globl b__MGIA7naqebvq8uneqjner11pbasvtfgber4I1_123OfFhesnprSyvatrePbasvtfR
+.weak b__MGIA7naqebvq8uneqjner11pbasvtfgber4I1_123OfFhesnprSyvatrePbasvtfR
 .type b__MGIA7naqebvq8uneqjner11pbasvtfgber4I1_123OfFhesnprSyvatrePbasvtfR,%object
 b__MGIA7naqebvq8uneqjner11pbasvtfgber4I1_123OfFhesnprSyvatrePbasvtfR:
 .space __SIZEOF_POINTER__
@@ -133,12 +133,12 @@
 b__MGi0_a24_A7naqebvq8uneqjner11pbasvtfgber4I1_125OaUjFhesnprSyvatrePbasvtfQ0Ri:
 nop
 .text
-.globl b__MAXFg3__18shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF7_F7_F7_CAF_6irpgbeVCiAF_9nyybpngbeVF9_RRRRRRpyRF5_F7_F7_F7_F7_FQ_
+.weak b__MAXFg3__18shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF7_F7_F7_CAF_6irpgbeVCiAF_9nyybpngbeVF9_RRRRRRpyRF5_F7_F7_F7_F7_FQ_
 .type b__MAXFg3__18shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF7_F7_F7_CAF_6irpgbeVCiAF_9nyybpngbeVF9_RRRRRRpyRF5_F7_F7_F7_F7_FQ_,%function
 b__MAXFg3__18shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF7_F7_F7_CAF_6irpgbeVCiAF_9nyybpngbeVF9_RRRRRRpyRF5_F7_F7_F7_F7_FQ_:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRR:
 nop
@@ -323,7 +323,7 @@
 b__MA7naqebvq8uneqjner11pbasvtfgber4I1_125OaUjFhesnprSyvatrePbasvtfQ1Ri:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_8uneqjner27uvqy_ovaqre_qrngu_erpvcvragRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_
+.weak b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_8uneqjner27uvqy_ovaqre_qrngu_erpvcvragRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_
 .type b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_8uneqjner27uvqy_ovaqre_qrngu_erpvcvragRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_,%function
 b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_8uneqjner27uvqy_ovaqre_qrngu_erpvcvragRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_:
 nop
@@ -358,7 +358,7 @@
 b__MA7naqebvq8uneqjner11pbasvtfgber4I1_125OcUjFhesnprSyvatrePbasvtfP1REXAF_2fcVAF0_7VOvaqreRRR:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_11pbasvtfgber4I1_122VFhesnprSyvatrePbasvtfRAF3_4I1_022VFhesnprSyvatrePbasvtfRAF4_25OcUjFhesnprSyvatrePbasvtfRRRAF0_6ErgheaVAF_2fcVG_RRRRAFN_VG0_RRCXpo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_11pbasvtfgber4I1_122VFhesnprSyvatrePbasvtfRAF3_4I1_022VFhesnprSyvatrePbasvtfRAF4_25OcUjFhesnprSyvatrePbasvtfRRRAF0_6ErgheaVAF_2fcVG_RRRRAFN_VG0_RRCXpo
 .type b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_11pbasvtfgber4I1_122VFhesnprSyvatrePbasvtfRAF3_4I1_022VFhesnprSyvatrePbasvtfRAF4_25OcUjFhesnprSyvatrePbasvtfRRRAF0_6ErgheaVAF_2fcVG_RRRRAFN_VG0_RRCXpo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_11pbasvtfgber4I1_122VFhesnprSyvatrePbasvtfRAF3_4I1_022VFhesnprSyvatrePbasvtfRAF4_25OcUjFhesnprSyvatrePbasvtfRRRAF0_6ErgheaVAF_2fcVG_RRRRAFN_VG0_RRCXpo:
 nop
@@ -408,17 +408,17 @@
 b__MA7naqebvq8uneqjner11pbasvtfgber4I1_125OcUjFhesnprSyvatrePbasvtf21znkIveghnyQvfcynlFvmrRAFg3__18shapgvbaVSiEXAF1_4I1_014BcgvbanyHVag64RRRR:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_11pbasvtfgber4I1_125OcUjFhesnprSyvatrePbasvtfRAF4_22VFhesnprSyvatrePbasvtfRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_11pbasvtfgber4I1_125OcUjFhesnprSyvatrePbasvtfRAF4_22VFhesnprSyvatrePbasvtfRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo
 .type b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_11pbasvtfgber4I1_125OcUjFhesnprSyvatrePbasvtfRAF4_22VFhesnprSyvatrePbasvtfRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_11pbasvtfgber4I1_125OcUjFhesnprSyvatrePbasvtfRAF4_22VFhesnprSyvatrePbasvtfRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRRoo:
 nop
 .text
-.globl b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
+.weak b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
 .type b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_,%function
 b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRR:
 nop
@@ -448,7 +448,7 @@
 b__MA7naqebvq8uneqjner11pbasvtfgber4I1_125OaUjFhesnprSyvatrePbasvtfP2REXAF_2fcVAF2_22VFhesnprSyvatrePbasvtfRRR:
 nop
 .data
-.globl b__MGPA7naqebvq8uneqjner11pbasvtfgber4I1_123OfFhesnprSyvatrePbasvtfR0_AF2_22VFhesnprSyvatrePbasvtfR
+.weak b__MGPA7naqebvq8uneqjner11pbasvtfgber4I1_123OfFhesnprSyvatrePbasvtfR0_AF2_22VFhesnprSyvatrePbasvtfR
 .type b__MGPA7naqebvq8uneqjner11pbasvtfgber4I1_123OfFhesnprSyvatrePbasvtfR0_AF2_22VFhesnprSyvatrePbasvtfR,%object
 b__MGPA7naqebvq8uneqjner11pbasvtfgber4I1_123OfFhesnprSyvatrePbasvtfR0_AF2_22VFhesnprSyvatrePbasvtfR:
 .space __SIZEOF_POINTER__
@@ -473,12 +473,12 @@
 b__MA7naqebvq8uneqjner11pbasvtfgber4I1_125OcUjFhesnprSyvatrePbasvtf28cerfragGvzrBssfrgSebzIFlapAfRAFg3__18shapgvbaVSiEXAF1_4I1_013BcgvbanyVag64RRRR:
 nop
 .text
-.globl b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
+.weak b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
 .type b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_,%function
 b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFR_RRECAF_15__gerr_raq_abqrVFE_RREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFR_RRECAF_15__gerr_raq_abqrVFE_RREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFR_RRECAF_15__gerr_raq_abqrVFE_RREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFR_RRECAF_15__gerr_raq_abqrVFE_RREXG_:
 nop
diff --git a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_166.S b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_166.S
index eac79cf..6cf0d6e 100644
--- a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_166.S
+++ b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_166.S
@@ -3,7 +3,7 @@
 .data
 .p2align 4
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRREXG_:
 nop
@@ -188,12 +188,12 @@
 b__MA7naqebvq8uneqjner5zrqvn3bzk4I1_012OaUjBzkFgber27_uvqy_yvfgFreivprNggevohgrfRCAF_4uvqy4onfr4I1_08OaUjOnfrREXAF0_6CnepryRCFN_AFg3__18shapgvbaVSiEFN_RRR:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_5zrqvn3bzk4I1_020VTencuvpOhssreFbheprRAF_4uvqy4onfr4I1_05VOnfrRAF5_23OcUjTencuvpOhssreFbheprRRRAF0_6ErgheaVAF_2fcVG_RRRRAFQ_VG0_RRCXpo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_5zrqvn3bzk4I1_020VTencuvpOhssreFbheprRAF_4uvqy4onfr4I1_05VOnfrRAF5_23OcUjTencuvpOhssreFbheprRRRAF0_6ErgheaVAF_2fcVG_RRRRAFQ_VG0_RRCXpo
 .type b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_5zrqvn3bzk4I1_020VTencuvpOhssreFbheprRAF_4uvqy4onfr4I1_05VOnfrRAF5_23OcUjTencuvpOhssreFbheprRRRAF0_6ErgheaVAF_2fcVG_RRRRAFQ_VG0_RRCXpo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_5zrqvn3bzk4I1_020VTencuvpOhssreFbheprRAF_4uvqy4onfr4I1_05VOnfrRAF5_23OcUjTencuvpOhssreFbheprRRRAF0_6ErgheaVAF_2fcVG_RRRRAFQ_VG0_RRCXpo:
 nop
 .data
-.globl b__MGIA7naqebvq8uneqjner5zrqvn3bzk4I1_021OfTencuvpOhssreFbheprR
+.weak b__MGIA7naqebvq8uneqjner5zrqvn3bzk4I1_021OfTencuvpOhssreFbheprR
 .type b__MGIA7naqebvq8uneqjner5zrqvn3bzk4I1_021OfTencuvpOhssreFbheprR,%object
 b__MGIA7naqebvq8uneqjner5zrqvn3bzk4I1_021OfTencuvpOhssreFbheprR:
 .space __SIZEOF_POINTER__
@@ -233,7 +233,7 @@
 b__MA7naqebvq8uneqjner5zrqvn3bzk4I1_09VBzkFgber10qrfpevcgbeR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_5zrqvn3bzk4I1_09VBzkFgberRAF_4uvqy4onfr4I1_05VOnfrRAF5_12OcUjBzkFgberRRRAF0_6ErgheaVAF_2fcVG_RRRRAFQ_VG0_RRCXpo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_5zrqvn3bzk4I1_09VBzkFgberRAF_4uvqy4onfr4I1_05VOnfrRAF5_12OcUjBzkFgberRRRAF0_6ErgheaVAF_2fcVG_RRRRAFQ_VG0_RRCXpo
 .type b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_5zrqvn3bzk4I1_09VBzkFgberRAF_4uvqy4onfr4I1_05VOnfrRAF5_12OcUjBzkFgberRRRAF0_6ErgheaVAF_2fcVG_RRRRAFQ_VG0_RRCXpo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_5zrqvn3bzk4I1_09VBzkFgberRAF_4uvqy4onfr4I1_05VOnfrRAF5_12OcUjBzkFgberRRRAF0_6ErgheaVAF_2fcVG_RRRRAFQ_VG0_RRCXpo:
 nop
@@ -253,7 +253,7 @@
 b__MA7naqebvq8uneqjner5zrqvn3bzk4I1_08VBzkAbqr10trgFreivprREXAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRRo:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_5zrqvn3bzk4I1_04VBzkRAF4_7OcUjBzkRAF4_7OaUjBzkRRRAF_2fcVG_RREXAF8_VAF0_7VOvaqreRRR
+.weak b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_5zrqvn3bzk4I1_04VBzkRAF4_7OcUjBzkRAF4_7OaUjBzkRRRAF_2fcVG_RREXAF8_VAF0_7VOvaqreRRR
 .type b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_5zrqvn3bzk4I1_04VBzkRAF4_7OcUjBzkRAF4_7OaUjBzkRRRAF_2fcVG_RREXAF8_VAF0_7VOvaqreRRR,%function
 b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_5zrqvn3bzk4I1_04VBzkRAF4_7OcUjBzkRAF4_7OaUjBzkRRRAF_2fcVG_RREXAF8_VAF0_7VOvaqreRRR:
 nop
@@ -348,7 +348,7 @@
 b__MGIA7naqebvq8uneqjner5zrqvn3bzk4I1_023OcUjTencuvpOhssreFbheprR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGPA7naqebvq8uneqjner5zrqvn3bzk4I1_013OfBzkBofreireR0_AF3_12VBzkBofreireR
+.weak b__MGPA7naqebvq8uneqjner5zrqvn3bzk4I1_013OfBzkBofreireR0_AF3_12VBzkBofreireR
 .type b__MGPA7naqebvq8uneqjner5zrqvn3bzk4I1_013OfBzkBofreireR0_AF3_12VBzkBofreireR,%object
 b__MGPA7naqebvq8uneqjner5zrqvn3bzk4I1_013OfBzkBofreireR0_AF3_12VBzkBofreireR:
 .space __SIZEOF_POINTER__
@@ -533,7 +533,7 @@
 b__MA7naqebvq8uneqjner5zrqvn3bzk4I1_023OcUjTencuvpOhssreFbhepr14vagresnprPunvaRAFg3__18shapgvbaVSiEXAF0_8uvqy_irpVAF0_11uvqy_fgevatRRRRRR:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_5zrqvn3bzk4I1_019OcUjBzkOhssreFbheprRAF5_16VBzkOhssreFbheprRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFO_11pune_genvgfVpRRAFO_9nyybpngbeVpRRRRoo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_5zrqvn3bzk4I1_019OcUjBzkOhssreFbheprRAF5_16VBzkOhssreFbheprRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFO_11pune_genvgfVpRRAFO_9nyybpngbeVpRRRRoo
 .type b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_5zrqvn3bzk4I1_019OcUjBzkOhssreFbheprRAF5_16VBzkOhssreFbheprRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFO_11pune_genvgfVpRRAFO_9nyybpngbeVpRRRRoo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_5zrqvn3bzk4I1_019OcUjBzkOhssreFbheprRAF5_16VBzkOhssreFbheprRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFO_11pune_genvgfVpRRAFO_9nyybpngbeVpRRRRoo:
 nop
@@ -553,7 +553,7 @@
 b__MGi0_a24_A7naqebvq8uneqjner5zrqvn3bzk4I1_015OaUjBzkBofreireQ0Ri:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_8tencuvpf11ohssredhrhr4I1_022VTencuvpOhssreCebqhpreRAF4_25OcUjTencuvpOhssreCebqhpreRAF4_25OaUjTencuvpOhssreCebqhpreRRRAF_2fcVG_RREXAF8_VAF0_7VOvaqreRRR
+.weak b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_8tencuvpf11ohssredhrhr4I1_022VTencuvpOhssreCebqhpreRAF4_25OcUjTencuvpOhssreCebqhpreRAF4_25OaUjTencuvpOhssreCebqhpreRRRAF_2fcVG_RREXAF8_VAF0_7VOvaqreRRR
 .type b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_8tencuvpf11ohssredhrhr4I1_022VTencuvpOhssreCebqhpreRAF4_25OcUjTencuvpOhssreCebqhpreRAF4_25OaUjTencuvpOhssreCebqhpreRRRAF_2fcVG_RREXAF8_VAF0_7VOvaqreRRR,%function
 b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_8tencuvpf11ohssredhrhr4I1_022VTencuvpOhssreCebqhpreRAF4_25OcUjTencuvpOhssreCebqhpreRAF4_25OaUjTencuvpOhssreCebqhpreRRRAF_2fcVG_RREXAF8_VAF0_7VOvaqreRRR:
 nop
@@ -578,7 +578,7 @@
 b__MA7naqebvq8uneqjner5zrqvn3bzk4I1_012VBzkBofreire13gelTrgFreivprREXAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRRo:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_5zrqvn3bzk4I1_015OcUjBzkBofreireRAF5_12VBzkBofreireRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFO_11pune_genvgfVpRRAFO_9nyybpngbeVpRRRRoo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_5zrqvn3bzk4I1_015OcUjBzkBofreireRAF5_12VBzkBofreireRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFO_11pune_genvgfVpRRAFO_9nyybpngbeVpRRRRoo
 .type b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_5zrqvn3bzk4I1_015OcUjBzkBofreireRAF5_12VBzkBofreireRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFO_11pune_genvgfVpRRAFO_9nyybpngbeVpRRRRoo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_5zrqvn3bzk4I1_015OcUjBzkBofreireRAF5_12VBzkBofreireRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFO_11pune_genvgfVpRRAFO_9nyybpngbeVpRRRRoo:
 nop
@@ -643,7 +643,7 @@
 b__MGGA7naqebvq8uneqjner5zrqvn3bzk4I1_012OaUjBzkFgberR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__16irpgbeVCiAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_
+.weak b__MAFg3__16irpgbeVCiAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_
 .type b__MAFg3__16irpgbeVCiAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_,%function
 b__MAFg3__16irpgbeVCiAF_9nyybpngbeVF1_RRR21__chfu_onpx_fybj_cnguVF1_RRiBG_:
 nop
@@ -668,7 +668,7 @@
 b__MGGA7naqebvq8uneqjner5zrqvn3bzk4I1_023OcUjTencuvpOhssreFbheprR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_5zrqvn3bzk4I1_012OcUjBzkFgberRAF5_9VBzkFgberRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFO_11pune_genvgfVpRRAFO_9nyybpngbeVpRRRRoo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_5zrqvn3bzk4I1_012OcUjBzkFgberRAF5_9VBzkFgberRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFO_11pune_genvgfVpRRAFO_9nyybpngbeVpRRRRoo
 .type b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_5zrqvn3bzk4I1_012OcUjBzkFgberRAF5_9VBzkFgberRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFO_11pune_genvgfVpRRAFO_9nyybpngbeVpRRRRoo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_5zrqvn3bzk4I1_012OcUjBzkFgberRAF5_9VBzkFgberRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFO_11pune_genvgfVpRRAFO_9nyybpngbeVpRRRRoo:
 nop
@@ -833,7 +833,7 @@
 b__MA7naqebvq8uneqjner5zrqvn3bzk4I1_023OcUjTencuvpOhssreFbhepr35_uvqy_frgErcrngCerivbhfSenzrQrynlHfRCAF0_10VVagresnprRCAF0_7qrgnvyf16UvqyVafgehzragbeRy:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR4svaqVF7_RRAF_15__gerr_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRREXG_:
 nop
@@ -903,7 +903,7 @@
 b__MA7naqebvq8uneqjner5zrqvn3bzk4I1_07OcUjBzk13hayvaxGbQrnguREXAF_2fcVAF0_20uvqy_qrngu_erpvcvragRRR:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_5zrqvn3bzk4I1_020VTencuvpOhssreFbheprRiRRAF_2fcVG_RRF9_
+.weak b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_5zrqvn3bzk4I1_020VTencuvpOhssreFbheprRiRRAF_2fcVG_RRF9_
 .type b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_5zrqvn3bzk4I1_020VTencuvpOhssreFbheprRiRRAF_2fcVG_RRF9_,%function
 b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_5zrqvn3bzk4I1_020VTencuvpOhssreFbheprRiRRAF_2fcVG_RRF9_:
 nop
@@ -933,12 +933,12 @@
 b__MA7naqebvq8uneqjner5zrqvn3bzk4I1_023OcUjTencuvpOhssreFbhepr15_uvqy_frgZnkScfRCAF0_10VVagresnprRCAF0_7qrgnvyf16UvqyVafgehzragbeRs:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_5zrqvn3bzk4I1_020VTencuvpOhssreFbheprRAF4_23OcUjTencuvpOhssreFbheprRAF4_23OaUjTencuvpOhssreFbheprRRRAF_2fcVG_RREXAF8_VAF0_7VOvaqreRRR
+.weak b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_5zrqvn3bzk4I1_020VTencuvpOhssreFbheprRAF4_23OcUjTencuvpOhssreFbheprRAF4_23OaUjTencuvpOhssreFbheprRRRAF_2fcVG_RREXAF8_VAF0_7VOvaqreRRR
 .type b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_5zrqvn3bzk4I1_020VTencuvpOhssreFbheprRAF4_23OcUjTencuvpOhssreFbheprRAF4_23OaUjTencuvpOhssreFbheprRRRAF_2fcVG_RREXAF8_VAF0_7VOvaqreRRR,%function
 b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_5zrqvn3bzk4I1_020VTencuvpOhssreFbheprRAF4_23OcUjTencuvpOhssreFbheprRAF4_23OaUjTencuvpOhssreFbheprRRRAF_2fcVG_RREXAF8_VAF0_7VOvaqreRRR:
 nop
 .data
-.globl b__MGPA7naqebvq8uneqjner5zrqvn3bzk4I1_05OfBzkR0_AF3_4VBzkR
+.weak b__MGPA7naqebvq8uneqjner5zrqvn3bzk4I1_05OfBzkR0_AF3_4VBzkR
 .type b__MGPA7naqebvq8uneqjner5zrqvn3bzk4I1_05OfBzkR0_AF3_4VBzkR,%object
 b__MGPA7naqebvq8uneqjner5zrqvn3bzk4I1_05OfBzkR0_AF3_4VBzkR:
 .space __SIZEOF_POINTER__
@@ -958,12 +958,12 @@
 b__MA7naqebvq8uneqjner5zrqvn3bzk4I1_023OcUjTencuvpOhssreFbhepr10frgFhfcraqRoy:
 nop
 .text
-.globl b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
+.weak b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
 .type b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_,%function
 b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_:
 nop
 .text
-.globl b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
+.weak b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
 .type b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_,%function
 b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_:
 nop
@@ -1023,7 +1023,7 @@
 b__MA7naqebvq8uneqjner5zrqvn3bzk4I1_020VTencuvpOhssreFbhepr14vagresnprPunvaRAFg3__18shapgvbaVSiEXAF0_8uvqy_irpVAF0_11uvqy_fgevatRRRRRR:
 nop
 .data
-.globl b__MGPA7naqebvq8uneqjner5zrqvn3bzk4I1_021OfTencuvpOhssreFbheprR0_AF3_20VTencuvpOhssreFbheprR
+.weak b__MGPA7naqebvq8uneqjner5zrqvn3bzk4I1_021OfTencuvpOhssreFbheprR0_AF3_20VTencuvpOhssreFbheprR
 .type b__MGPA7naqebvq8uneqjner5zrqvn3bzk4I1_021OfTencuvpOhssreFbheprR0_AF3_20VTencuvpOhssreFbheprR,%object
 b__MGPA7naqebvq8uneqjner5zrqvn3bzk4I1_021OfTencuvpOhssreFbheprR0_AF3_20VTencuvpOhssreFbheprR:
 .space __SIZEOF_POINTER__
@@ -1103,7 +1103,7 @@
 b__MA7naqebvq8uneqjner5zrqvn3bzk4I1_021jevgrRzorqqrqGbCnepryREXAF3_9VBzkFgber8EbyrVasbRCAF0_6CnepryRzz:
 nop
 .text
-.globl b__MAXFg3__18shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF7_F7_F7_CAF_6irpgbeVCiAF_9nyybpngbeVF9_RRRRRRpyRF5_F7_F7_F7_F7_FQ_
+.weak b__MAXFg3__18shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF7_F7_F7_CAF_6irpgbeVCiAF_9nyybpngbeVF9_RRRRRRpyRF5_F7_F7_F7_F7_FQ_
 .type b__MAXFg3__18shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF7_F7_F7_CAF_6irpgbeVCiAF_9nyybpngbeVF9_RRRRRRpyRF5_F7_F7_F7_F7_FQ_,%function
 b__MAXFg3__18shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF7_F7_F7_CAF_6irpgbeVCiAF_9nyybpngbeVF9_RRRRRRpyRF5_F7_F7_F7_F7_FQ_:
 nop
@@ -1243,7 +1243,7 @@
 b__MA7naqebvq8uneqjner5zrqvn3bzk4I1_08VBzkAbqr19vagresnprQrfpevcgbeRAFg3__18shapgvbaVSiEXAF0_11uvqy_fgevatRRRR:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_5zrqvn3bzk4I1_08VBzkAbqrRAF_4uvqy4onfr4I1_05VOnfrRAF5_11OcUjBzkAbqrRRRAF0_6ErgheaVAF_2fcVG_RRRRAFQ_VG0_RRCXpo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_5zrqvn3bzk4I1_08VBzkAbqrRAF_4uvqy4onfr4I1_05VOnfrRAF5_11OcUjBzkAbqrRRRAF0_6ErgheaVAF_2fcVG_RRRRAFQ_VG0_RRCXpo
 .type b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_5zrqvn3bzk4I1_08VBzkAbqrRAF_4uvqy4onfr4I1_05VOnfrRAF5_11OcUjBzkAbqrRRRAF0_6ErgheaVAF_2fcVG_RRRRAFQ_VG0_RRCXpo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_5zrqvn3bzk4I1_08VBzkAbqrRAF_4uvqy4onfr4I1_05VOnfrRAF5_11OcUjBzkAbqrRRRAF0_6ErgheaVAF_2fcVG_RRRRAFQ_VG0_RRCXpo:
 nop
@@ -1253,7 +1253,7 @@
 b__MA7naqebvq8uneqjner5zrqvn3bzk4I1_012OcUjBzkFgber15baYnfgFgebatErsRCXi:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_5zrqvn3bzk4I1_023OcUjTencuvpOhssreFbheprRAF5_20VTencuvpOhssreFbheprRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFO_11pune_genvgfVpRRAFO_9nyybpngbeVpRRRRoo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_5zrqvn3bzk4I1_023OcUjTencuvpOhssreFbheprRAF5_20VTencuvpOhssreFbheprRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFO_11pune_genvgfVpRRAFO_9nyybpngbeVpRRRRoo
 .type b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_5zrqvn3bzk4I1_023OcUjTencuvpOhssreFbheprRAF5_20VTencuvpOhssreFbheprRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFO_11pune_genvgfVpRRAFO_9nyybpngbeVpRRRRoo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_5zrqvn3bzk4I1_023OcUjTencuvpOhssreFbheprRAF5_20VTencuvpOhssreFbheprRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFO_11pune_genvgfVpRRAFO_9nyybpngbeVpRRRRoo:
 nop
@@ -1263,7 +1263,7 @@
 b__MGPA7naqebvq8uneqjner5zrqvn3bzk4I1_011OcUjBzkAbqrR0_AF_4uvqy4onfr4I1_05VOnfrR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_5zrqvn3bzk4I1_08VBzkAbqrRAF4_11OcUjBzkAbqrRAF4_11OaUjBzkAbqrRRRAF_2fcVG_RREXAF8_VAF0_7VOvaqreRRR
+.weak b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_5zrqvn3bzk4I1_08VBzkAbqrRAF4_11OcUjBzkAbqrRAF4_11OaUjBzkAbqrRRRAF_2fcVG_RREXAF8_VAF0_7VOvaqreRRR
 .type b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_5zrqvn3bzk4I1_08VBzkAbqrRAF4_11OcUjBzkAbqrRAF4_11OaUjBzkAbqrRRRAF_2fcVG_RREXAF8_VAF0_7VOvaqreRRR,%function
 b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_5zrqvn3bzk4I1_08VBzkAbqrRAF4_11OcUjBzkAbqrRAF4_11OaUjBzkAbqrRRRAF_2fcVG_RREXAF8_VAF0_7VOvaqreRRR:
 nop
@@ -1308,7 +1308,7 @@
 b__MA7naqebvq8uneqjner5zrqvn3bzk4I1_012OcUjBzkFgber6trgBzkREXAF0_11uvqy_fgevatR:
 nop
 .data
-.globl b__MGIA7naqebvq8uneqjner5zrqvn3bzk4I1_010OfBzkFgberR
+.weak b__MGIA7naqebvq8uneqjner5zrqvn3bzk4I1_010OfBzkFgberR
 .type b__MGIA7naqebvq8uneqjner5zrqvn3bzk4I1_010OfBzkFgberR,%object
 b__MGIA7naqebvq8uneqjner5zrqvn3bzk4I1_010OfBzkFgberR:
 .space __SIZEOF_POINTER__
@@ -1348,12 +1348,12 @@
 b__MA7naqebvq8uneqjner5zrqvn3bzk4I1_019OaUjBzkOhssreFbheprQ2Ri:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFR_RRECAF_15__gerr_raq_abqrVFE_RREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFR_RRECAF_15__gerr_raq_abqrVFE_RREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFR_RRECAF_15__gerr_raq_abqrVFE_RREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFR_RRECAF_15__gerr_raq_abqrVFE_RREXG_:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_8tencuvpf11ohssredhrhr4I1_022VTencuvpOhssreCebqhpreRiRRAF_2fcVG_RRF9_
+.weak b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_8tencuvpf11ohssredhrhr4I1_022VTencuvpOhssreCebqhpreRiRRAF_2fcVG_RRF9_
 .type b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_8tencuvpf11ohssredhrhr4I1_022VTencuvpOhssreCebqhpreRiRRAF_2fcVG_RRF9_,%function
 b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_8tencuvpf11ohssredhrhr4I1_022VTencuvpOhssreCebqhpreRiRRAF_2fcVG_RRF9_:
 nop
@@ -1368,7 +1368,7 @@
 b__MGi0_a40_A7naqebvq8uneqjner5zrqvn3bzk4I1_07OcUjBzk15baYnfgFgebatErsRCXi:
 nop
 .data
-.globl b__MGIA7naqebvq8uneqjner5zrqvn3bzk4I1_013OfBzkBofreireR
+.weak b__MGIA7naqebvq8uneqjner5zrqvn3bzk4I1_013OfBzkBofreireR
 .type b__MGIA7naqebvq8uneqjner5zrqvn3bzk4I1_013OfBzkBofreireR,%object
 b__MGIA7naqebvq8uneqjner5zrqvn3bzk4I1_013OfBzkBofreireR:
 .space __SIZEOF_POINTER__
@@ -1498,7 +1498,7 @@
 b__MGIA7naqebvq8uneqjner5zrqvn3bzk4I1_08VBzkAbqrR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIA7naqebvq8uneqjner5zrqvn3bzk4I1_09OfBzkAbqrR
+.weak b__MGIA7naqebvq8uneqjner5zrqvn3bzk4I1_09OfBzkAbqrR
 .type b__MGIA7naqebvq8uneqjner5zrqvn3bzk4I1_09OfBzkAbqrR,%object
 b__MGIA7naqebvq8uneqjner5zrqvn3bzk4I1_09OfBzkAbqrR:
 .space __SIZEOF_POINTER__
@@ -1518,7 +1518,7 @@
 b__MA7naqebvq8uneqjner5zrqvn3bzk4I1_019OcUjBzkOhssreFbhepr4cvatRi:
 nop
 .data
-.globl b__MGPA7naqebvq8uneqjner5zrqvn3bzk4I1_09OfBzkAbqrR0_AF3_8VBzkAbqrR
+.weak b__MGPA7naqebvq8uneqjner5zrqvn3bzk4I1_09OfBzkAbqrR0_AF3_8VBzkAbqrR
 .type b__MGPA7naqebvq8uneqjner5zrqvn3bzk4I1_09OfBzkAbqrR0_AF3_8VBzkAbqrR,%object
 b__MGPA7naqebvq8uneqjner5zrqvn3bzk4I1_09OfBzkAbqrR0_AF3_8VBzkAbqrR:
 .space __SIZEOF_POINTER__
@@ -1588,7 +1588,7 @@
 b__MGPA7naqebvq8uneqjner5zrqvn3bzk4I1_023OcUjTencuvpOhssreFbheprR0_AF3_20VTencuvpOhssreFbheprR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_5zrqvn3bzk4I1_07OcUjBzkRAF5_4VBzkRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFO_11pune_genvgfVpRRAFO_9nyybpngbeVpRRRRoo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_5zrqvn3bzk4I1_07OcUjBzkRAF5_4VBzkRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFO_11pune_genvgfVpRRAFO_9nyybpngbeVpRRRRoo
 .type b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_5zrqvn3bzk4I1_07OcUjBzkRAF5_4VBzkRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFO_11pune_genvgfVpRRAFO_9nyybpngbeVpRRRRoo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_5zrqvn3bzk4I1_07OcUjBzkRAF5_4VBzkRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFO_11pune_genvgfVpRRAFO_9nyybpngbeVpRRRRoo:
 nop
@@ -1663,7 +1663,7 @@
 b__MA7naqebvq8uneqjner5zrqvn3bzk4I1_023OcUjTencuvpOhssreFbhepr12trgUnfuPunvaRAFg3__18shapgvbaVSiEXAF0_8uvqy_irpVAF0_10uvqy_neenlVuYz32RWRRRRRRRR:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_8uneqjner7VOvaqreRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FU_AF_4yrffVF7_RRYo1RRRAF5_VFU_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFU_CAF_11__gerr_abqrVFU_FR_RRyRR:
 nop
@@ -1673,7 +1673,7 @@
 b__MGIA7naqebvq8uneqjner5zrqvn3bzk4I1_020VTencuvpOhssreFbheprR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_5zrqvn3bzk4I1_012VBzkBofreireRAF4_15OcUjBzkBofreireRAF4_15OaUjBzkBofreireRRRAF_2fcVG_RREXAF8_VAF0_7VOvaqreRRR
+.weak b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_5zrqvn3bzk4I1_012VBzkBofreireRAF4_15OcUjBzkBofreireRAF4_15OaUjBzkBofreireRRRAF_2fcVG_RREXAF8_VAF0_7VOvaqreRRR
 .type b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_5zrqvn3bzk4I1_012VBzkBofreireRAF4_15OcUjBzkBofreireRAF4_15OaUjBzkBofreireRRRAF_2fcVG_RREXAF8_VAF0_7VOvaqreRRR,%function
 b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_5zrqvn3bzk4I1_012VBzkBofreireRAF4_15OcUjBzkBofreireRAF4_15OaUjBzkBofreireRRRAF_2fcVG_RREXAF8_VAF0_7VOvaqreRRR:
 nop
@@ -1688,7 +1688,7 @@
 b__MA7naqebvq8uneqjner5zrqvn3bzk4I1_012OaUjBzkFgberQ0Ri:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFT_RRECAF_15__gerr_raq_abqrVFG_RREXG_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFT_RRECAF_15__gerr_raq_abqrVFG_RREXG_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFT_RRECAF_15__gerr_raq_abqrVFG_RREXG_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR12__svaq_rdhnyVF7_RRECAF_16__gerr_abqr_onfrVFT_RRECAF_15__gerr_raq_abqrVFG_RREXG_:
 nop
@@ -1768,7 +1768,7 @@
 b__MA7naqebvq8uneqjner5zrqvn3bzk4I1_019OaUjBzkOhssreFbheprQ1Ri:
 nop
 .data
-.globl b__MGIA7naqebvq8uneqjner5zrqvn3bzk4I1_017OfBzkOhssreFbheprR
+.weak b__MGIA7naqebvq8uneqjner5zrqvn3bzk4I1_017OfBzkOhssreFbheprR
 .type b__MGIA7naqebvq8uneqjner5zrqvn3bzk4I1_017OfBzkOhssreFbheprR,%object
 b__MGIA7naqebvq8uneqjner5zrqvn3bzk4I1_017OfBzkOhssreFbheprR:
 .space __SIZEOF_POINTER__
@@ -1828,7 +1828,7 @@
 b__MA7naqebvq8uneqjner5zrqvn3bzk4I1_011OcUjBzkAbqr27_uvqy_trgTencuvpOhssreHfntrRCAF0_10VVagresnprRCAF0_7qrgnvyf16UvqyVafgehzragbeRwAFg3__18shapgvbaVSiAF3_6FgnghfRwRRR:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_5zrqvn3bzk4I1_011OcUjBzkAbqrRAF5_8VBzkAbqrRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFO_11pune_genvgfVpRRAFO_9nyybpngbeVpRRRRoo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_5zrqvn3bzk4I1_011OcUjBzkAbqrRAF5_8VBzkAbqrRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFO_11pune_genvgfVpRRAFO_9nyybpngbeVpRRRRoo
 .type b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_5zrqvn3bzk4I1_011OcUjBzkAbqrRAF5_8VBzkAbqrRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFO_11pune_genvgfVpRRAFO_9nyybpngbeVpRRRRoo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf18trgFreivprVagreanyVAF0_5zrqvn3bzk4I1_011OcUjBzkAbqrRAF5_8VBzkAbqrRiiRRAF_2fcVG0_RREXAFg3__112onfvp_fgevatVpAFO_11pune_genvgfVpRRAFO_9nyybpngbeVpRRRRoo:
 nop
@@ -1928,7 +1928,7 @@
 b__MA7naqebvq8uneqjner5zrqvn3bzk4I1_09VBzkFgber13hayvaxGbQrnguREXAF_2fcVAF0_20uvqy_qrngu_erpvcvragRRR:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_5zrqvn3bzk4I1_04VBzkRiRRAF_2fcVG_RRF9_
+.weak b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_5zrqvn3bzk4I1_04VBzkRiRRAF_2fcVG_RRF9_
 .type b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_5zrqvn3bzk4I1_04VBzkRiRRAF_2fcVG_RRF9_,%function
 b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_5zrqvn3bzk4I1_04VBzkRiRRAF_2fcVG_RRF9_:
 nop
@@ -2098,7 +2098,7 @@
 b__MA7naqebvq8uneqjner5zrqvn3bzk4I1_019OaUjBzkOhssreFbhepr24_uvqy_baVachgOhssreNqqrqRCAF_4uvqy4onfr4I1_08OaUjOnfrREXAF0_6CnepryRCFN_AFg3__18shapgvbaVSiEFN_RRR:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_5zrqvn3bzk4I1_016VBzkOhssreFbheprRiRRAF_2fcVG_RRF9_
+.weak b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_5zrqvn3bzk4I1_016VBzkOhssreFbheprRiRRAF_2fcVG_RRF9_
 .type b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_5zrqvn3bzk4I1_016VBzkOhssreFbheprRiRRAF_2fcVG_RRF9_,%function
 b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_5zrqvn3bzk4I1_016VBzkOhssreFbheprRiRRAF_2fcVG_RRF9_:
 nop
@@ -2143,7 +2143,7 @@
 b__MA7naqebvq8uneqjner5zrqvn3bzk4I1_019OcUjBzkOhssreFbhepr21frgUNYVafgehzragngvbaRi:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_5zrqvn3bzk4I1_016VBzkOhssreFbheprRAF4_19OcUjBzkOhssreFbheprRAF4_19OaUjBzkOhssreFbheprRRRAF_2fcVG_RREXAF8_VAF0_7VOvaqreRRR
+.weak b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_5zrqvn3bzk4I1_016VBzkOhssreFbheprRAF4_19OcUjBzkOhssreFbheprRAF4_19OaUjBzkOhssreFbheprRRRAF_2fcVG_RREXAF8_VAF0_7VOvaqreRRR
 .type b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_5zrqvn3bzk4I1_016VBzkOhssreFbheprRAF4_19OcUjBzkOhssreFbheprRAF4_19OaUjBzkOhssreFbheprRRRAF_2fcVG_RREXAF8_VAF0_7VOvaqreRRR,%function
 b__MA7naqebvq8uneqjner10sebzOvaqreVAF0_5zrqvn3bzk4I1_016VBzkOhssreFbheprRAF4_19OcUjBzkOhssreFbheprRAF4_19OaUjBzkOhssreFbheprRRRAF_2fcVG_RREXAF8_VAF0_7VOvaqreRRR:
 nop
@@ -2173,7 +2173,7 @@
 b__MA7naqebvq8uneqjner5zrqvn3bzk4I1_012OcUjBzkFgber12trgUnfuPunvaRAFg3__18shapgvbaVSiEXAF0_8uvqy_irpVAF0_10uvqy_neenlVuYz32RWRRRRRRRR:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_8shapgvbaVSA7naqebvq2fcVAF9_4uvqy4onfr4I1_05VOnfrRRRCiRRRRRAF_19__znc_inyhr_pbzcnerVF7_FW_AF_4yrffVF7_RRYo1RRRAF5_VFW_RRR5renfrRAF_21__gerr_pbafg_vgrengbeVFW_CAF_11__gerr_abqrVFW_FT_RRyRR:
 nop
@@ -2188,7 +2188,7 @@
 b__MA7naqebvq8uneqjner5zrqvn3bzk4I1_019OaUjBzkOhssreFbheprQ0Ri:
 nop
 .data
-.globl b__MGPA7naqebvq8uneqjner5zrqvn3bzk4I1_017OfBzkOhssreFbheprR0_AF3_16VBzkOhssreFbheprR
+.weak b__MGPA7naqebvq8uneqjner5zrqvn3bzk4I1_017OfBzkOhssreFbheprR0_AF3_16VBzkOhssreFbheprR
 .type b__MGPA7naqebvq8uneqjner5zrqvn3bzk4I1_017OfBzkOhssreFbheprR0_AF3_16VBzkOhssreFbheprR,%object
 b__MGPA7naqebvq8uneqjner5zrqvn3bzk4I1_017OfBzkOhssreFbheprR0_AF3_16VBzkOhssreFbheprR:
 .space __SIZEOF_POINTER__
@@ -2218,7 +2218,7 @@
 b__MA7naqebvq8uneqjner5zrqvn3bzk4I1_015OaUjBzkBofreire4cvatRi:
 nop
 .text
-.globl b__MA7naqebvq2fcVAF_8uneqjner5zrqvn3bzk4I1_04VBzkRRnFRBF6_
+.weak b__MA7naqebvq2fcVAF_8uneqjner5zrqvn3bzk4I1_04VBzkRRnFRBF6_
 .type b__MA7naqebvq2fcVAF_8uneqjner5zrqvn3bzk4I1_04VBzkRRnFRBF6_,%function
 b__MA7naqebvq2fcVAF_8uneqjner5zrqvn3bzk4I1_04VBzkRRnFRBF6_:
 nop
@@ -2273,7 +2273,7 @@
 b__MA7naqebvq8uneqjner5zrqvn3bzk4I1_015OcUjBzkBofreire13hayvaxGbQrnguREXAF_2fcVAF0_20uvqy_qrngu_erpvcvragRRR:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_5zrqvn3bzk4I1_012VBzkBofreireRAF_4uvqy4onfr4I1_05VOnfrRAF5_15OcUjBzkBofreireRRRAF0_6ErgheaVAF_2fcVG_RRRRAFQ_VG0_RRCXpo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_5zrqvn3bzk4I1_012VBzkBofreireRAF_4uvqy4onfr4I1_05VOnfrRAF5_15OcUjBzkBofreireRRRAF0_6ErgheaVAF_2fcVG_RRRRAFQ_VG0_RRCXpo
 .type b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_5zrqvn3bzk4I1_012VBzkBofreireRAF_4uvqy4onfr4I1_05VOnfrRAF5_15OcUjBzkBofreireRRRAF0_6ErgheaVAF_2fcVG_RRRRAFQ_VG0_RRCXpo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_5zrqvn3bzk4I1_012VBzkBofreireRAF_4uvqy4onfr4I1_05VOnfrRAF5_15OcUjBzkBofreireRRRAF0_6ErgheaVAF_2fcVG_RRRRAFQ_VG0_RRCXpo:
 nop
@@ -2283,7 +2283,7 @@
 b__MA7naqebvq8uneqjner5zrqvn3bzk4I1_023OaUjTencuvpOhssreFbhepr16_uvqy_frgFhfcraqRCAF_4uvqy4onfr4I1_08OaUjOnfrREXAF0_6CnepryRCFN_AFg3__18shapgvbaVSiEFN_RRR:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_5zrqvn3bzk4I1_012VBzkBofreireRiRRAF_2fcVG_RRF9_
+.weak b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_5zrqvn3bzk4I1_012VBzkBofreireRiRRAF_2fcVG_RRF9_
 .type b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_5zrqvn3bzk4I1_012VBzkBofreireRiRRAF_2fcVG_RRF9_,%function
 b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_5zrqvn3bzk4I1_012VBzkBofreireRiRRAF_2fcVG_RRF9_:
 nop
@@ -2363,7 +2363,7 @@
 b__MA7naqebvq8uneqjner5zrqvn3bzk4I1_09VBzkFgber4cvatRi:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_5zrqvn3bzk4I1_04VBzkRAF_4uvqy4onfr4I1_05VOnfrRAF5_7OcUjBzkRRRAF0_6ErgheaVAF_2fcVG_RRRRAFQ_VG0_RRCXpo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_5zrqvn3bzk4I1_04VBzkRAF_4uvqy4onfr4I1_05VOnfrRAF5_7OcUjBzkRRRAF0_6ErgheaVAF_2fcVG_RRRRAFQ_VG0_RRCXpo
 .type b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_5zrqvn3bzk4I1_04VBzkRAF_4uvqy4onfr4I1_05VOnfrRAF5_7OcUjBzkRRRAF0_6ErgheaVAF_2fcVG_RRRRAFQ_VG0_RRCXpo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_5zrqvn3bzk4I1_04VBzkRAF_4uvqy4onfr4I1_05VOnfrRAF5_7OcUjBzkRRRAF0_6ErgheaVAF_2fcVG_RRRRAFQ_VG0_RRCXpo:
 nop
@@ -2543,7 +2543,7 @@
 b__MA7naqebvq8uneqjner5zrqvn3bzk4I1_012OcUjBzkFgber12_uvqy_trgBzkRCAF0_10VVagresnprRCAF0_7qrgnvyf16UvqyVafgehzragbeREXAF0_11uvqy_fgevatR:
 nop
 .data
-.globl b__MGPA7naqebvq8uneqjner5zrqvn3bzk4I1_010OfBzkFgberR0_AF3_9VBzkFgberR
+.weak b__MGPA7naqebvq8uneqjner5zrqvn3bzk4I1_010OfBzkFgberR0_AF3_9VBzkFgberR
 .type b__MGPA7naqebvq8uneqjner5zrqvn3bzk4I1_010OfBzkFgberR0_AF3_9VBzkFgberR,%object
 b__MGPA7naqebvq8uneqjner5zrqvn3bzk4I1_010OfBzkFgberR0_AF3_9VBzkFgberR:
 .space __SIZEOF_POINTER__
@@ -2568,7 +2568,7 @@
 b__MGua16_A7naqebvq8uneqjner5zrqvn3bzk4I1_015OcUjBzkBofreire15baYnfgFgebatErsRCXi:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_8uneqjner27uvqy_ovaqre_qrngu_erpvcvragRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_
+.weak b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_8uneqjner27uvqy_ovaqre_qrngu_erpvcvragRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_
 .type b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_8uneqjner27uvqy_ovaqre_qrngu_erpvcvragRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_,%function
 b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_8uneqjner27uvqy_ovaqre_qrngu_erpvcvragRRRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_:
 nop
@@ -2628,7 +2628,7 @@
 b__MGPA7naqebvq8uneqjner5zrqvn3bzk4I1_07OcUjBzkR0_AF0_11OcVagresnprVAF3_4VBzkRRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRP2REXFU_
+.weak b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRP2REXFU_
 .type b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRP2REXFU_,%function
 b__MAFg3__16irpgbeVAF_8shapgvbaVSiA7naqebvq8uneqjner7qrgnvyf16UvqyVafgehzragbe20VafgehzragngvbaRiragRCXpF8_F8_F8_CAF0_VCiAF_9nyybpngbeVF9_RRRRRRRAFN_VFS_RRRP2REXFU_:
 nop
@@ -2693,7 +2693,7 @@
 b__MA7naqebvq8uneqjner5zrqvn3bzk4I1_023OaUjTencuvpOhssreFbhepr35_uvqy_frgErcrngCerivbhfSenzrQrynlHfRCAF_4uvqy4onfr4I1_08OaUjOnfrREXAF0_6CnepryRCFN_AFg3__18shapgvbaVSiEFN_RRR:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_5zrqvn3bzk4I1_08VBzkAbqrRiRRAF_2fcVG_RRF9_
+.weak b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_5zrqvn3bzk4I1_08VBzkAbqrRiRRAF_2fcVG_RRF9_
 .type b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_5zrqvn3bzk4I1_08VBzkAbqrRiRRAF_2fcVG_RRF9_,%function
 b__MA7naqebvq8uneqjner7qrgnvyf15jencCnffguebhtuVAF0_5zrqvn3bzk4I1_08VBzkAbqrRiRRAF_2fcVG_RRF9_:
 nop
@@ -2763,7 +2763,7 @@
 b__MGi0_a24_A7naqebvq8uneqjner5zrqvn3bzk4I1_012OaUjBzkFgberQ1Ri:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_5zrqvn3bzk4I1_016VBzkOhssreFbheprRAF_4uvqy4onfr4I1_05VOnfrRAF5_19OcUjBzkOhssreFbheprRRRAF0_6ErgheaVAF_2fcVG_RRRRAFQ_VG0_RRCXpo
+.weak b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_5zrqvn3bzk4I1_016VBzkOhssreFbheprRAF_4uvqy4onfr4I1_05VOnfrRAF5_19OcUjBzkOhssreFbheprRRRAF0_6ErgheaVAF_2fcVG_RRRRAFQ_VG0_RRCXpo
 .type b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_5zrqvn3bzk4I1_016VBzkOhssreFbheprRAF_4uvqy4onfr4I1_05VOnfrRAF5_19OcUjBzkOhssreFbheprRRRAF0_6ErgheaVAF_2fcVG_RRRRAFQ_VG0_RRCXpo,%function
 b__MA7naqebvq8uneqjner7qrgnvyf13pnfgVagresnprVAF0_5zrqvn3bzk4I1_016VBzkOhssreFbheprRAF_4uvqy4onfr4I1_05VOnfrRAF5_19OcUjBzkOhssreFbheprRRRAF0_6ErgheaVAF_2fcVG_RRRRAFQ_VG0_RRCXpo:
 nop
@@ -2783,7 +2783,7 @@
 b__MA7naqebvq8uneqjner5zrqvn3bzk4I1_07OcUjBzk18perngrVachgFhesnprRAFg3__18shapgvbaVSiAF3_6FgnghfREXAF_2fcVAF0_8tencuvpf11ohssredhrhr4I1_022VTencuvpOhssreCebqhpreRRREXAF8_VAF3_20VTencuvpOhssreFbheprRRRRRR:
 nop
 .data
-.globl b__MGIA7naqebvq8uneqjner5zrqvn3bzk4I1_05OfBzkR
+.weak b__MGIA7naqebvq8uneqjner5zrqvn3bzk4I1_05OfBzkR
 .type b__MGIA7naqebvq8uneqjner5zrqvn3bzk4I1_05OfBzkR,%object
 b__MGIA7naqebvq8uneqjner5zrqvn3bzk4I1_05OfBzkR:
 .space __SIZEOF_POINTER__
diff --git a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_167.S b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_167.S
index 4e31c79..a5aa75b 100644
--- a/benchmarks/linker_relocation/gen/liblinker_reloc_bench_167.S
+++ b/benchmarks/linker_relocation/gen/liblinker_reloc_bench_167.S
@@ -23,7 +23,7 @@
 b__MA7neg_ncv3qrk7QrkSvyrQ2Ri:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7neg_ncv3qrk10ZrgubqVasbRAF_9nyybpngbeVF3_RRR24__rzcynpr_onpx_fybj_cnguVWF3_RRRiQcBG_
+.weak b__MAFg3__16irpgbeVA7neg_ncv3qrk10ZrgubqVasbRAF_9nyybpngbeVF3_RRR24__rzcynpr_onpx_fybj_cnguVWF3_RRRiQcBG_
 .type b__MAFg3__16irpgbeVA7neg_ncv3qrk10ZrgubqVasbRAF_9nyybpngbeVF3_RRR24__rzcynpr_onpx_fybj_cnguVWF3_RRRiQcBG_,%function
 b__MAFg3__16irpgbeVA7neg_ncv3qrk10ZrgubqVasbRAF_9nyybpngbeVF3_RRR24__rzcynpr_onpx_fybj_cnguVWF3_RRRiQcBG_:
 nop
@@ -88,7 +88,7 @@
 b__MA7neg_ncv3qrk9QrkFgevat21t_RkgQrkSvyrTrgFgevatR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__16irpgbeVA7neg_ncv3qrk10ZrgubqVasbRAF_9nyybpngbeVF3_RRR26__fjnc_bhg_pvephyne_ohssreREAF_14__fcyvg_ohssreVF3_EF5_RR
+.weak b__MAFg3__16irpgbeVA7neg_ncv3qrk10ZrgubqVasbRAF_9nyybpngbeVF3_RRR26__fjnc_bhg_pvephyne_ohssreREAF_14__fcyvg_ohssreVF3_EF5_RR
 .type b__MAFg3__16irpgbeVA7neg_ncv3qrk10ZrgubqVasbRAF_9nyybpngbeVF3_RRR26__fjnc_bhg_pvephyne_ohssreREAF_14__fcyvg_ohssreVF3_EF5_RR,%function
 b__MAFg3__16irpgbeVA7neg_ncv3qrk10ZrgubqVasbRAF_9nyybpngbeVF3_RRR26__fjnc_bhg_pvephyne_ohssreREAF_14__fcyvg_ohssreVF3_EF5_RR:
 nop
diff --git a/benchmarks/linker_relocation/gen/linker_reloc_bench_main.S b/benchmarks/linker_relocation/gen/linker_reloc_bench_main.S
index 47ee62f..d697bfd 100644
--- a/benchmarks/linker_relocation/gen/linker_reloc_bench_main.S
+++ b/benchmarks/linker_relocation/gen/linker_reloc_bench_main.S
@@ -35,12 +35,12 @@
 b__MA7naqebvq6freire14OebnqpnfgEnqvb13GharePnyyonpx14AngvirPnyyonpxQ2Ri:
 nop
 .text
-.globl b__MAFg3__110__shapgvba6__shapVCSAF_10havdhr_cgeV8_wbowrpgAF_8shapgvbaVSiCF3_RRRRRC7_WAVRaiEXA7naqebvq6freire14OebnqpnfgEnqvb7ertvbaf18ErtvbanyOnaqPbasvtRRAF_9nyybpngbeVFW_RRFV_R7qrfgeblRi
+.weak b__MAFg3__110__shapgvba6__shapVCSAF_10havdhr_cgeV8_wbowrpgAF_8shapgvbaVSiCF3_RRRRRC7_WAVRaiEXA7naqebvq6freire14OebnqpnfgEnqvb7ertvbaf18ErtvbanyOnaqPbasvtRRAF_9nyybpngbeVFW_RRFV_R7qrfgeblRi
 .type b__MAFg3__110__shapgvba6__shapVCSAF_10havdhr_cgeV8_wbowrpgAF_8shapgvbaVSiCF3_RRRRRC7_WAVRaiEXA7naqebvq6freire14OebnqpnfgEnqvb7ertvbaf18ErtvbanyOnaqPbasvtRRAF_9nyybpngbeVFW_RRFV_R7qrfgeblRi,%function
 b__MAFg3__110__shapgvba6__shapVCSAF_10havdhr_cgeV8_wbowrpgAF_8shapgvbaVSiCF3_RRRRRC7_WAVRaiEXA7naqebvq6freire14OebnqpnfgEnqvb7ertvbaf18ErtvbanyOnaqPbasvtRRAF_9nyybpngbeVFW_RRFV_R7qrfgeblRi:
 nop
 .text
-.globl b__MAFg3__110__shapgvba6__shapVMA7naqebvq12znxr_wninersVC11_wybatNeenlRRAF_10havdhr_cgeVAF_14erzbir_cbvagreVG_R4glcrRAF_8shapgvbaVSiF8_RRRRRC7_WAVRaiF8_RHyF5_R_AF_9nyybpngbeVFU_RRSiF5_RRpyRBF5_
+.weak b__MAFg3__110__shapgvba6__shapVMA7naqebvq12znxr_wninersVC11_wybatNeenlRRAF_10havdhr_cgeVAF_14erzbir_cbvagreVG_R4glcrRAF_8shapgvbaVSiF8_RRRRRC7_WAVRaiF8_RHyF5_R_AF_9nyybpngbeVFU_RRSiF5_RRpyRBF5_
 .type b__MAFg3__110__shapgvba6__shapVMA7naqebvq12znxr_wninersVC11_wybatNeenlRRAF_10havdhr_cgeVAF_14erzbir_cbvagreVG_R4glcrRAF_8shapgvbaVSiF8_RRRRRC7_WAVRaiF8_RHyF5_R_AF_9nyybpngbeVFU_RRSiF5_RRpyRBF5_,%function
 b__MAFg3__110__shapgvba6__shapVMA7naqebvq12znxr_wninersVC11_wybatNeenlRRAF_10havdhr_cgeVAF_14erzbir_cbvagreVG_R4glcrRAF_8shapgvbaVSiF8_RRRRRC7_WAVRaiF8_RHyF5_R_AF_9nyybpngbeVFU_RRSiF5_RRpyRBF5_:
 nop
@@ -60,7 +60,7 @@
 b__MGPA7naqebvq23TaffZrnfherzragPnyyonpxR0_AF_8uneqjner4taff4I2_024VTaffZrnfherzragPnyyonpxR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIAFg3__110__shapgvba6__shapVMA7naqebvq12znxr_wninersVC13_wbowrpgNeenlRRAF_10havdhr_cgeVAF_14erzbir_cbvagreVG_R4glcrRAF_8shapgvbaVSiF8_RRRRRC7_WAVRaiF8_RHyF5_R_AF_9nyybpngbeVFU_RRSiF5_RRR
+.weak b__MGIAFg3__110__shapgvba6__shapVMA7naqebvq12znxr_wninersVC13_wbowrpgNeenlRRAF_10havdhr_cgeVAF_14erzbir_cbvagreVG_R4glcrRAF_8shapgvbaVSiF8_RRRRRC7_WAVRaiF8_RHyF5_R_AF_9nyybpngbeVFU_RRSiF5_RRR
 .type b__MGIAFg3__110__shapgvba6__shapVMA7naqebvq12znxr_wninersVC13_wbowrpgNeenlRRAF_10havdhr_cgeVAF_14erzbir_cbvagreVG_R4glcrRAF_8shapgvbaVSiF8_RRRRRC7_WAVRaiF8_RHyF5_R_AF_9nyybpngbeVFU_RRSiF5_RRR,%object
 b__MGIAFg3__110__shapgvba6__shapVMA7naqebvq12znxr_wninersVC13_wbowrpgNeenlRRAF_10havdhr_cgeVAF_14erzbir_cbvagreVG_R4glcrRAF_8shapgvbaVSiF8_RRRRRC7_WAVRaiF8_RHyF5_R_AF_9nyybpngbeVFU_RRSiF5_RRR:
 .space __SIZEOF_POINTER__
@@ -70,7 +70,7 @@
 b__MA7naqebvq18AngvirVachgZnantre19trgCbvagreQvfcynlVqRi:
 nop
 .text
-.globl b__MA7naqebvq2fcVAF_8uneqjner4taff18ivfvovyvgl_pbageby4I1_022VTaffIvfvovyvglPbagebyRRQ2Ri
+.weak b__MA7naqebvq2fcVAF_8uneqjner4taff18ivfvovyvgl_pbageby4I1_022VTaffIvfvovyvglPbagebyRRQ2Ri
 .type b__MA7naqebvq2fcVAF_8uneqjner4taff18ivfvovyvgl_pbageby4I1_022VTaffIvfvovyvglPbagebyRRQ2Ri,%function
 b__MA7naqebvq2fcVAF_8uneqjner4taff18ivfvovyvgl_pbageby4I1_022VTaffIvfvovyvglPbagebyRRQ2Ri:
 nop
@@ -90,12 +90,12 @@
 b__MA7naqebvq18qvfnoyrNhgbFhfcraqRi:
 nop
 .data
-.globl b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_11XrlrqIrpgbeVvAF_11WGiVachgUny10PbaarpgvbaRRRRRRR
+.weak b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_11XrlrqIrpgbeVvAF_11WGiVachgUny10PbaarpgvbaRRRRRRR
 .type b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_11XrlrqIrpgbeVvAF_11WGiVachgUny10PbaarpgvbaRRRRRRR,%object
 b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_11XrlrqIrpgbeVvAF_11WGiVachgUny10PbaarpgvbaRRRRRRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__110__shapgvba6__shapVMA7naqebvq12znxr_wninersVC13_wbowrpgNeenlRRAF_10havdhr_cgeVAF_14erzbir_cbvagreVG_R4glcrRAF_8shapgvbaVSiF8_RRRRRC7_WAVRaiF8_RHyF5_R_AF_9nyybpngbeVFU_RRSiF5_RRpyRBF5_
+.weak b__MAFg3__110__shapgvba6__shapVMA7naqebvq12znxr_wninersVC13_wbowrpgNeenlRRAF_10havdhr_cgeVAF_14erzbir_cbvagreVG_R4glcrRAF_8shapgvbaVSiF8_RRRRRC7_WAVRaiF8_RHyF5_R_AF_9nyybpngbeVFU_RRSiF5_RRpyRBF5_
 .type b__MAFg3__110__shapgvba6__shapVMA7naqebvq12znxr_wninersVC13_wbowrpgNeenlRRAF_10havdhr_cgeVAF_14erzbir_cbvagreVG_R4glcrRAF_8shapgvbaVSiF8_RRRRRC7_WAVRaiF8_RHyF5_R_AF_9nyybpngbeVFU_RRSiF5_RRpyRBF5_,%function
 b__MAFg3__110__shapgvba6__shapVMA7naqebvq12znxr_wninersVC13_wbowrpgNeenlRRAF_10havdhr_cgeVAF_14erzbir_cbvagreVG_R4glcrRAF_8shapgvbaVSiF8_RRRRRC7_WAVRaiF8_RHyF5_R_AF_9nyybpngbeVFU_RRSiF5_RRpyRBF5_:
 nop
@@ -115,7 +115,7 @@
 b__MA7naqebvq6freire14OebnqpnfgEnqvb7pbaireg23ZbqhyrCebcregvrfSebzUnyRC7_WAVRaiEXAF_8uneqjner14oebnqpnfgenqvb4I1_110CebcregvrfRvEXAFg3__112onfvp_fgevatVpAFO_11pune_genvgfVpRRAFO_9nyybpngbeVpRRRR:
 nop
 .text
-.globl b__MA7naqebvq20purpxQrpynerqFreivprVAF_8uneqjner8ivoengbe9VIvoengbeRRRAF_2fcVG_RREXAF_8Fgevat16R
+.weak b__MA7naqebvq20purpxQrpynerqFreivprVAF_8uneqjner8ivoengbe9VIvoengbeRRRAF_2fcVG_RREXAF_8Fgevat16R
 .type b__MA7naqebvq20purpxQrpynerqFreivprVAF_8uneqjner8ivoengbe9VIvoengbeRRRAF_2fcVG_RREXAF_8Fgevat16R,%function
 b__MA7naqebvq20purpxQrpynerqFreivprVAF_8uneqjner8ivoengbe9VIvoengbeRRRAF_2fcVG_RREXAF_8Fgevat16R:
 nop
@@ -145,7 +145,7 @@
 b__MGi0_a32_A7naqebvq18AngvirVachgZnantreQ1Ri:
 nop
 .text
-.globl b__MA7naqebvq2fcVAF_8uneqjner4taff4I2_06VNTaffRRQ2Ri
+.weak b__MA7naqebvq2fcVAF_8uneqjner4taff4I2_06VNTaffRRQ2Ri
 .type b__MA7naqebvq2fcVAF_8uneqjner4taff4I2_06VNTaffRRQ2Ri,%function
 b__MA7naqebvq2fcVAF_8uneqjner4taff4I2_06VNTaffRRQ2Ri:
 nop
@@ -155,7 +155,7 @@
 b__MA7naqebvq20OhssreCebqhpreGuernq10ernqlGbEhaRi:
 nop
 .data
-.globl b__MGPA7naqebvq20NvqyIvoengbePnyyonpxR8_AF_7OOvaqreR
+.weak b__MGPA7naqebvq20NvqyIvoengbePnyyonpxR8_AF_7OOvaqreR
 .type b__MGPA7naqebvq20NvqyIvoengbePnyyonpxR8_AF_7OOvaqreR,%object
 b__MGPA7naqebvq20NvqyIvoengbePnyyonpxR8_AF_7OOvaqreR:
 .space __SIZEOF_POINTER__
@@ -165,7 +165,7 @@
 b_WAV_BaYbnq:
 nop
 .text
-.globl b__MA7naqebvq12TaffPnyyonpx18taffFiFgnghfPoVzcyVAF_8uneqjner8uvqy_irpVAF2_4taff4I2_013VTaffPnyyonpx10TaffFiVasbRRRRRAF2_6ErgheaViRREXG_
+.weak b__MA7naqebvq12TaffPnyyonpx18taffFiFgnghfPoVzcyVAF_8uneqjner8uvqy_irpVAF2_4taff4I2_013VTaffPnyyonpx10TaffFiVasbRRRRRAF2_6ErgheaViRREXG_
 .type b__MA7naqebvq12TaffPnyyonpx18taffFiFgnghfPoVzcyVAF_8uneqjner8uvqy_irpVAF2_4taff4I2_013VTaffPnyyonpx10TaffFiVasbRRRRRAF2_6ErgheaViRREXG_,%function
 b__MA7naqebvq12TaffPnyyonpx18taffFiFgnghfPoVzcyVAF_8uneqjner8uvqy_irpVAF2_4taff4I2_013VTaffPnyyonpx10TaffFiVasbRRRRRAF2_6ErgheaViRREXG_:
 nop
@@ -195,7 +195,7 @@
 b__MA7naqebvq11WGiVachgUny13AbgvslUnaqyre13unaqyrZrffntrREXAF_7ZrffntrR:
 nop
 .data
-.globl b__MGPA7naqebvq14JnxrhcPnyyonpxR8_AF_7OOvaqreR
+.weak b__MGPA7naqebvq14JnxrhcPnyyonpxR8_AF_7OOvaqreR
 .type b__MGPA7naqebvq14JnxrhcPnyyonpxR8_AF_7OOvaqreR,%object
 b__MGPA7naqebvq14JnxrhcPnyyonpxR8_AF_7OOvaqreR:
 .space __SIZEOF_POINTER__
@@ -220,12 +220,12 @@
 b__MA7naqebvq8uneqjner14oebnqpnfgenqvb5hgvyf13znxr_fryrpgbeRAF1_4I1_04OnaqRww:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwAF_13habeqrerq_zncVwAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_4unfuVwRRAF_8rdhny_gbVwRRAF6_VAF_4cnveVXwF8_RRRRRRRRAF_22__habeqrerq_znc_unfureVwFV_FN_Yo1RRRAF_21__habeqrerq_znc_rdhnyVwFV_FP_Yo1RRRAF6_VFV_RRR6erunfuRz
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwAF_13habeqrerq_zncVwAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_4unfuVwRRAF_8rdhny_gbVwRRAF6_VAF_4cnveVXwF8_RRRRRRRRAF_22__habeqrerq_znc_unfureVwFV_FN_Yo1RRRAF_21__habeqrerq_znc_rdhnyVwFV_FP_Yo1RRRAF6_VFV_RRR6erunfuRz
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwAF_13habeqrerq_zncVwAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_4unfuVwRRAF_8rdhny_gbVwRRAF6_VAF_4cnveVXwF8_RRRRRRRRAF_22__habeqrerq_znc_unfureVwFV_FN_Yo1RRRAF_21__habeqrerq_znc_rdhnyVwFV_FP_Yo1RRRAF6_VFV_RRR6erunfuRz,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwAF_13habeqrerq_zncVwAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_4unfuVwRRAF_8rdhny_gbVwRRAF6_VAF_4cnveVXwF8_RRRRRRRRAF_22__habeqrerq_znc_unfureVwFV_FN_Yo1RRRAF_21__habeqrerq_znc_rdhnyVwFV_FP_Yo1RRRAF6_VFV_RRR6erunfuRz:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwAF_4cnveVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRF8_RRRRAF_22__habeqrerq_znc_unfureVwFN_AF_4unfuVwRRYo1RRRAF_21__habeqrerq_znc_rdhnyVwFN_AF_8rdhny_gbVwRRYo1RRRAF6_VFN_RRR8__erunfuRz
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwAF_4cnveVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRF8_RRRRAF_22__habeqrerq_znc_unfureVwFN_AF_4unfuVwRRYo1RRRAF_21__habeqrerq_znc_rdhnyVwFN_AF_8rdhny_gbVwRRYo1RRRAF6_VFN_RRR8__erunfuRz
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwAF_4cnveVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRF8_RRRRAF_22__habeqrerq_znc_unfureVwFN_AF_4unfuVwRRYo1RRRAF_21__habeqrerq_znc_rdhnyVwFN_AF_8rdhny_gbVwRRYo1RRRAF6_VFN_RRR8__erunfuRz,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwAF_4cnveVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRF8_RRRRAF_22__habeqrerq_znc_unfureVwFN_AF_4unfuVwRRYo1RRRAF_21__habeqrerq_znc_rdhnyVwFN_AF_8rdhny_gbVwRRYo1RRRAF6_VFN_RRR8__erunfuRz:
 nop
@@ -245,12 +245,12 @@
 b__MGi0_a136_A7naqebvq18AngvirVachgZnantre39purpxVawrpgRiragfCrezvffvbaAbaErragenagRvv:
 nop
 .text
-.globl b__MA7naqebvq2fcVAF_8uneqjner5cbjre4I1_16VCbjreRRQ2Ri
+.weak b__MA7naqebvq2fcVAF_8uneqjner5cbjre4I1_16VCbjreRRQ2Ri
 .type b__MA7naqebvq2fcVAF_8uneqjner5cbjre4I1_16VCbjreRRQ2Ri,%function
 b__MA7naqebvq2fcVAF_8uneqjner5cbjre4I1_16VCbjreRRQ2Ri:
 nop
 .text
-.globl b__MAXFg3__110__shapgvba6__shapVCSAF_10havdhr_cgeV8_wbowrpgAF_8shapgvbaVSiCF3_RRRRRC7_WAVRaiEXA7naqebvq8uneqjner14oebnqpnfgenqvb4I1_117CebtenzVqragvsvreRRAF_9nyybpngbeVFW_RRFV_R7__pybarRi
+.weak b__MAXFg3__110__shapgvba6__shapVCSAF_10havdhr_cgeV8_wbowrpgAF_8shapgvbaVSiCF3_RRRRRC7_WAVRaiEXA7naqebvq8uneqjner14oebnqpnfgenqvb4I1_117CebtenzVqragvsvreRRAF_9nyybpngbeVFW_RRFV_R7__pybarRi
 .type b__MAXFg3__110__shapgvba6__shapVCSAF_10havdhr_cgeV8_wbowrpgAF_8shapgvbaVSiCF3_RRRRRC7_WAVRaiEXA7naqebvq8uneqjner14oebnqpnfgenqvb4I1_117CebtenzVqragvsvreRRAF_9nyybpngbeVFW_RRFV_R7__pybarRi,%function
 b__MAXFg3__110__shapgvba6__shapVCSAF_10havdhr_cgeV8_wbowrpgAF_8shapgvbaVSiCF3_RRRRRC7_WAVRaiEXA7naqebvq8uneqjner14oebnqpnfgenqvb4I1_117CebtenzVqragvsvreRRAF_9nyybpngbeVFW_RRFV_R7__pybarRi:
 nop
@@ -260,7 +260,7 @@
 b__MA7naqebvq18AngvirVachgZnantre14trgQrivprNyvnfREXAF_21VachgQrivprVqragvsvreR:
 nop
 .text
-.globl b__MA7naqebvq22jnvgSbeQrpynerqFreivprVAF_8uneqjner8ivoengbe9VIvoengbeRRRAF_2fcVG_RREXAF_8Fgevat16R
+.weak b__MA7naqebvq22jnvgSbeQrpynerqFreivprVAF_8uneqjner8ivoengbe9VIvoengbeRRRAF_2fcVG_RREXAF_8Fgevat16R
 .type b__MA7naqebvq22jnvgSbeQrpynerqFreivprVAF_8uneqjner8ivoengbe9VIvoengbeRRRAF_2fcVG_RREXAF_8Fgevat16R,%function
 b__MA7naqebvq22jnvgSbeQrpynerqFreivprVAF_8uneqjner8ivoengbe9VIvoengbeRRRAF_2fcVG_RREXAF_8Fgevat16R:
 nop
@@ -270,12 +270,12 @@
 b__MA7naqebvq17jvcr_oybpx_qrivprRv:
 nop
 .text
-.globl b__MAXFg3__110__shapgvba6__shapVCSvC7_WAVRaiC8_wbowrpgRAF_9nyybpngbeVF7_RRF6_R7__pybarRCAF0_6__onfrVF6_RR
+.weak b__MAXFg3__110__shapgvba6__shapVCSvC7_WAVRaiC8_wbowrpgRAF_9nyybpngbeVF7_RRF6_R7__pybarRCAF0_6__onfrVF6_RR
 .type b__MAXFg3__110__shapgvba6__shapVCSvC7_WAVRaiC8_wbowrpgRAF_9nyybpngbeVF7_RRF6_R7__pybarRCAF0_6__onfrVF6_RR,%function
 b__MAXFg3__110__shapgvba6__shapVCSvC7_WAVRaiC8_wbowrpgRAF_9nyybpngbeVF7_RRF6_R7__pybarRCAF0_6__onfrVF6_RR:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwAF_13habeqrerq_zncVwAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_4unfuVwRRAF_8rdhny_gbVwRRAF6_VAF_4cnveVXwF8_RRRRRRRRAF_22__habeqrerq_znc_unfureVwFV_FN_Yo1RRRAF_21__habeqrerq_znc_rdhnyVwFV_FP_Yo1RRRAF6_VFV_RRRQ2Ri
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwAF_13habeqrerq_zncVwAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_4unfuVwRRAF_8rdhny_gbVwRRAF6_VAF_4cnveVXwF8_RRRRRRRRAF_22__habeqrerq_znc_unfureVwFV_FN_Yo1RRRAF_21__habeqrerq_znc_rdhnyVwFV_FP_Yo1RRRAF6_VFV_RRRQ2Ri
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwAF_13habeqrerq_zncVwAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_4unfuVwRRAF_8rdhny_gbVwRRAF6_VAF_4cnveVXwF8_RRRRRRRRAF_22__habeqrerq_znc_unfureVwFV_FN_Yo1RRRAF_21__habeqrerq_znc_rdhnyVwFV_FP_Yo1RRRAF6_VFV_RRRQ2Ri,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwAF_13habeqrerq_zncVwAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_4unfuVwRRAF_8rdhny_gbVwRRAF6_VAF_4cnveVXwF8_RRRRRRRRAF_22__habeqrerq_znc_unfureVwFV_FN_Yo1RRRAF_21__habeqrerq_znc_rdhnyVwFV_FP_Yo1RRRAF6_VFV_RRRQ2Ri:
 nop
@@ -290,12 +290,12 @@
 b__MA7naqebvq23TaffZrnfherzragPnyyonpx18genafyngrTaffPybpxVAF_8uneqjner4taff4I1_024VTaffZrnfherzragPnyyonpx9TaffPybpxRRRiEAF_10WninBowrpgREXG_:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_11WGiVachgUny10PbaarpgvbaRRRR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_11WGiVachgUny10PbaarpgvbaRRRR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_11WGiVachgUny10PbaarpgvbaRRRR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_11WGiVachgUny10PbaarpgvbaRRRR12qb_pbafgehpgRCiz:
 nop
 .text
-.globl b__MAXFg3__110__shapgvba6__shapVCSAF_10havdhr_cgeV8_wbowrpgAF_8shapgvbaVSiCF3_RRRRRC7_WAVRaiEXA7naqebvq6freire14OebnqpnfgEnqvb7ertvbaf18ErtvbanyOnaqPbasvtRRAF_9nyybpngbeVFW_RRFV_R7__pybarRi
+.weak b__MAXFg3__110__shapgvba6__shapVCSAF_10havdhr_cgeV8_wbowrpgAF_8shapgvbaVSiCF3_RRRRRC7_WAVRaiEXA7naqebvq6freire14OebnqpnfgEnqvb7ertvbaf18ErtvbanyOnaqPbasvtRRAF_9nyybpngbeVFW_RRFV_R7__pybarRi
 .type b__MAXFg3__110__shapgvba6__shapVCSAF_10havdhr_cgeV8_wbowrpgAF_8shapgvbaVSiCF3_RRRRRC7_WAVRaiEXA7naqebvq6freire14OebnqpnfgEnqvb7ertvbaf18ErtvbanyOnaqPbasvtRRAF_9nyybpngbeVFW_RRFV_R7__pybarRi,%function
 b__MAXFg3__110__shapgvba6__shapVCSAF_10havdhr_cgeV8_wbowrpgAF_8shapgvbaVSiCF3_RRRRRC7_WAVRaiEXA7naqebvq6freire14OebnqpnfgEnqvb7ertvbaf18ErtvbanyOnaqPbasvtRRAF_9nyybpngbeVFW_RRFV_R7__pybarRi:
 nop
@@ -305,7 +305,7 @@
 b__MA7naqebvq18tCbjreFgngfUnyI1_0R:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__110__shapgvba6__shapVCSiC7_WAVRaiC8_wbowrpgRAF_9nyybpngbeVF7_RRF6_RpyRBF3_BF5_
+.weak b__MAFg3__110__shapgvba6__shapVCSiC7_WAVRaiC8_wbowrpgRAF_9nyybpngbeVF7_RRF6_RpyRBF3_BF5_
 .type b__MAFg3__110__shapgvba6__shapVCSiC7_WAVRaiC8_wbowrpgRAF_9nyybpngbeVF7_RRF6_RpyRBF3_BF5_,%function
 b__MAFg3__110__shapgvba6__shapVCSiC7_WAVRaiC8_wbowrpgRAF_9nyybpngbeVF7_RRF6_RpyRBF3_BF5_:
 nop
@@ -315,7 +315,7 @@
 b__MA7naqebvq18AngvirVachgZnantre20ybnqCbvagreErfbheprfRCAF_16CbvagreErfbheprfRv:
 nop
 .text
-.globl b__MA7naqebvq2fcVAF_8uneqjner4taff4I2_010VTaffQrohtRRQ2Ri
+.weak b__MA7naqebvq2fcVAF_8uneqjner4taff4I2_010VTaffQrohtRRQ2Ri
 .type b__MA7naqebvq2fcVAF_8uneqjner4taff4I2_010VTaffQrohtRRQ2Ri,%function
 b__MA7naqebvq2fcVAF_8uneqjner4taff4I2_010VTaffQrohtRRQ2Ri:
 nop
@@ -340,7 +340,7 @@
 b__MA7naqebvq29TaffIvfvovyvglPbagebyPnyyonpx20vfVaRzretraplFrffvbaRi:
 nop
 .text
-.globl b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
+.weak b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
 .type b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_,%function
 b__MAFg3__113__gerr_erzbirVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_:
 nop
@@ -360,12 +360,12 @@
 b__MA7naqebvq20TaffTrbsraprPnyyonpx20taffTrbsraprErzbirPoRvAF_8uneqjner4taff4I1_021VTaffTrbsraprPnyyonpx14TrbsraprFgnghfR:
 nop
 .text
-.globl b__MA7naqebvq24TaffOngpuvatPnyyonpxHgvy23taffYbpngvbaOngpuPoVzcyVAF_8uneqjner4taff4I2_012TaffYbpngvbaRRRAF2_6ErgheaViRREXAF2_8uvqy_irpVG_RR
+.weak b__MA7naqebvq24TaffOngpuvatPnyyonpxHgvy23taffYbpngvbaOngpuPoVzcyVAF_8uneqjner4taff4I2_012TaffYbpngvbaRRRAF2_6ErgheaViRREXAF2_8uvqy_irpVG_RR
 .type b__MA7naqebvq24TaffOngpuvatPnyyonpxHgvy23taffYbpngvbaOngpuPoVzcyVAF_8uneqjner4taff4I2_012TaffYbpngvbaRRRAF2_6ErgheaViRREXAF2_8uvqy_irpVG_RR,%function
 b__MA7naqebvq24TaffOngpuvatPnyyonpxHgvy23taffYbpngvbaOngpuPoVzcyVAF_8uneqjner4taff4I2_012TaffYbpngvbaRRRAF2_6ErgheaViRREXAF2_8uvqy_irpVG_RR:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_11WGiVachgUny10PbaarpgvbaRRRR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_11WGiVachgUny10PbaarpgvbaRRRR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_11WGiVachgUny10PbaarpgvbaRRRR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_11WGiVachgUny10PbaarpgvbaRRRR16qb_zbir_onpxjneqRCiCXiz:
 nop
@@ -395,7 +395,7 @@
 b__MA7naqebvq6freire14OebnqpnfgEnqvb13GharePnyyonpx14AngvirPnyyonpxQ0Ri:
 nop
 .text
-.globl b__MA7naqebvq2fcVAF_8uneqjner4taff4I1_013VTaffOngpuvatRRQ2Ri
+.weak b__MA7naqebvq2fcVAF_8uneqjner4taff4I1_013VTaffOngpuvatRRQ2Ri
 .type b__MA7naqebvq2fcVAF_8uneqjner4taff4I1_013VTaffOngpuvatRRQ2Ri,%function
 b__MA7naqebvq2fcVAF_8uneqjner4taff4I1_013VTaffOngpuvatRRQ2Ri:
 nop
@@ -445,7 +445,7 @@
 b__MA7naqebvq12TaffPnyyonpx10taffAnzrPoREXAF_8uneqjner11uvqy_fgevatR:
 nop
 .data
-.globl b__MGPAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_13onfvp_bfgernzVpF2_RR
+.weak b__MGPAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_13onfvp_bfgernzVpF2_RR
 .type b__MGPAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_13onfvp_bfgernzVpF2_RR,%object
 b__MGPAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_13onfvp_bfgernzVpF2_RR:
 .space __SIZEOF_POINTER__
@@ -455,12 +455,12 @@
 b__MA7naqebvq23TaffZrnfherzragPnyyonpx21taffZrnfherzragPo_2_0REXAF_8uneqjner4taff4I2_024VTaffZrnfherzragPnyyonpx8TaffQngnR:
 nop
 .text
-.globl b__MA7naqebvq2fcVAF_8uneqjner4taff4I1_07VTaffAvRRQ2Ri
+.weak b__MA7naqebvq2fcVAF_8uneqjner4taff4I1_07VTaffAvRRQ2Ri
 .type b__MA7naqebvq2fcVAF_8uneqjner4taff4I1_07VTaffAvRRQ2Ri,%function
 b__MA7naqebvq2fcVAF_8uneqjner4taff4I1_07VTaffAvRRQ2Ri:
 nop
 .text
-.globl b__MA7naqebvq2fcVAF_8uneqjner4taff4I1_09VTaffKgenRRQ2Ri
+.weak b__MA7naqebvq2fcVAF_8uneqjner4taff4I1_09VTaffKgenRRQ2Ri
 .type b__MA7naqebvq2fcVAF_8uneqjner4taff4I1_09VTaffKgenRRQ2Ri,%function
 b__MA7naqebvq2fcVAF_8uneqjner4taff4I1_09VTaffKgenRRQ2Ri:
 nop
@@ -480,7 +480,7 @@
 b__MGGA7naqebvq11WGiVachgUny15GiVachgPnyyonpxR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq2fcVAF_8uneqjner2ie4I1_03VIeRRQ2Ri
+.weak b__MA7naqebvq2fcVAF_8uneqjner2ie4I1_03VIeRRQ2Ri
 .type b__MA7naqebvq2fcVAF_8uneqjner2ie4I1_03VIeRRQ2Ri,%function
 b__MA7naqebvq2fcVAF_8uneqjner2ie4I1_03VIeRRQ2Ri:
 nop
@@ -490,7 +490,7 @@
 b__MA7naqebvq6freire14OebnqpnfgEnqvb7pbaireg23ZbqhyrCebcregvrfSebzUnyRC7_WAVRaiEXAF_8uneqjner14oebnqpnfgenqvb4I1_010CebcregvrfRvEXAFg3__112onfvp_fgevatVpAFO_11pune_genvgfVpRRAFO_9nyybpngbeVpRRRR:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf13neenlGbFgevatVAF0_8uvqy_irpVAF0_14oebnqpnfgenqvb4I1_117CebtenzVqragvsvreRRRRRAFg3__112onfvp_fgevatVpAF8_11pune_genvgfVpRRAF8_9nyybpngbeVpRRRREXG_z
+.weak b__MA7naqebvq8uneqjner7qrgnvyf13neenlGbFgevatVAF0_8uvqy_irpVAF0_14oebnqpnfgenqvb4I1_117CebtenzVqragvsvreRRRRRAFg3__112onfvp_fgevatVpAF8_11pune_genvgfVpRRAF8_9nyybpngbeVpRRRREXG_z
 .type b__MA7naqebvq8uneqjner7qrgnvyf13neenlGbFgevatVAF0_8uvqy_irpVAF0_14oebnqpnfgenqvb4I1_117CebtenzVqragvsvreRRRRRAFg3__112onfvp_fgevatVpAF8_11pune_genvgfVpRRAF8_9nyybpngbeVpRRRREXG_z,%function
 b__MA7naqebvq8uneqjner7qrgnvyf13neenlGbFgevatVAF0_8uvqy_irpVAF0_14oebnqpnfgenqvb4I1_117CebtenzVqragvsvreRRRRRAFg3__112onfvp_fgevatVpAF8_11pune_genvgfVpRRAF8_9nyybpngbeVpRRRREXG_z:
 nop
@@ -515,17 +515,17 @@
 b__MA7naqebvq41ertvfgre_naqebvq_freire_PbafhzreVeFreivprRC7_WAVRai:
 nop
 .text
-.globl b__MAFg3__114__fcyvg_ohssreVCAF_8shapgvbaVSiC7_WAVRaiRRREAF_9nyybpngbeVF6_RRR10chfu_sebagREXF6_
+.weak b__MAFg3__114__fcyvg_ohssreVCAF_8shapgvbaVSiC7_WAVRaiRRREAF_9nyybpngbeVF6_RRR10chfu_sebagREXF6_
 .type b__MAFg3__114__fcyvg_ohssreVCAF_8shapgvbaVSiC7_WAVRaiRRREAF_9nyybpngbeVF6_RRR10chfu_sebagREXF6_,%function
 b__MAFg3__114__fcyvg_ohssreVCAF_8shapgvbaVSiC7_WAVRaiRRREAF_9nyybpngbeVF6_RRR10chfu_sebagREXF6_:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner8gbFgevatVuRRAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRREXAF0_8uvqy_irpVG_RR
+.weak b__MA7naqebvq8uneqjner8gbFgevatVuRRAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRREXAF0_8uvqy_irpVG_RR
 .type b__MA7naqebvq8uneqjner8gbFgevatVuRRAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRREXAF0_8uvqy_irpVG_RR,%function
 b__MA7naqebvq8uneqjner8gbFgevatVuRRAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRREXAF0_8uvqy_irpVG_RR:
 nop
 .text
-.globl b__MAXFg3__110__shapgvba6__shapVMA7naqebvq12znxr_wninersVC11_wybatNeenlRRAF_10havdhr_cgeVAF_14erzbir_cbvagreVG_R4glcrRAF_8shapgvbaVSiF8_RRRRRC7_WAVRaiF8_RHyF5_R_AF_9nyybpngbeVFU_RRSiF5_RR7__pybarRCAF0_6__onfrVFX_RR
+.weak b__MAXFg3__110__shapgvba6__shapVMA7naqebvq12znxr_wninersVC11_wybatNeenlRRAF_10havdhr_cgeVAF_14erzbir_cbvagreVG_R4glcrRAF_8shapgvbaVSiF8_RRRRRC7_WAVRaiF8_RHyF5_R_AF_9nyybpngbeVFU_RRSiF5_RR7__pybarRCAF0_6__onfrVFX_RR
 .type b__MAXFg3__110__shapgvba6__shapVMA7naqebvq12znxr_wninersVC11_wybatNeenlRRAF_10havdhr_cgeVAF_14erzbir_cbvagreVG_R4glcrRAF_8shapgvbaVSiF8_RRRRRC7_WAVRaiF8_RHyF5_R_AF_9nyybpngbeVFU_RRSiF5_RR7__pybarRCAF0_6__onfrVFX_RR,%function
 b__MAXFg3__110__shapgvba6__shapVMA7naqebvq12znxr_wninersVC11_wybatNeenlRRAF_10havdhr_cgeVAF_14erzbir_cbvagreVG_R4glcrRAF_8shapgvbaVSiF8_RRRRRC7_WAVRaiF8_RHyF5_R_AF_9nyybpngbeVFU_RRSiF5_RR7__pybarRCAF0_6__onfrVFX_RR:
 nop
@@ -570,7 +570,7 @@
 b__MA7naqebvq53ertvfgre_naqebvq_freire_ybpngvba_TaffYbpngvbaCebivqreRC7_WAVRai:
 nop
 .text
-.globl b__MAFg3__110__shapgvba6__shapVCSiC7_WAVRaiC8_wbowrpgRAF_9nyybpngbeVF7_RRF6_R18qrfgebl_qrnyybpngrRi
+.weak b__MAFg3__110__shapgvba6__shapVCSiC7_WAVRaiC8_wbowrpgRAF_9nyybpngbeVF7_RRF6_R18qrfgebl_qrnyybpngrRi
 .type b__MAFg3__110__shapgvba6__shapVCSiC7_WAVRaiC8_wbowrpgRAF_9nyybpngbeVF7_RRF6_R18qrfgebl_qrnyybpngrRi,%function
 b__MAFg3__110__shapgvba6__shapVCSiC7_WAVRaiC8_wbowrpgRAF_9nyybpngbeVF7_RRF6_R18qrfgebl_qrnyybpngrRi:
 nop
@@ -585,12 +585,12 @@
 b__MA7naqebvq39ertvfgre_naqebvq_freire_nz_NccPbzcnpgbeRC7_WAVRai:
 nop
 .text
-.globl b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR7frrxbssRkAF_8vbf_onfr7frrxqveRw
+.weak b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR7frrxbssRkAF_8vbf_onfr7frrxqveRw
 .type b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR7frrxbssRkAF_8vbf_onfr7frrxqveRw,%function
 b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR7frrxbssRkAF_8vbf_onfr7frrxqveRw:
 nop
 .data
-.globl b__MGPA7naqebvq14JnxrhcPnyyonpxR0_AF_6flfgrz7fhfcraq17OaFhfcraqPnyyonpxR
+.weak b__MGPA7naqebvq14JnxrhcPnyyonpxR0_AF_6flfgrz7fhfcraq17OaFhfcraqPnyyonpxR
 .type b__MGPA7naqebvq14JnxrhcPnyyonpxR0_AF_6flfgrz7fhfcraq17OaFhfcraqPnyyonpxR,%object
 b__MGPA7naqebvq14JnxrhcPnyyonpxR0_AF_6flfgrz7fhfcraq17OaFhfcraqPnyyonpxR:
 .space __SIZEOF_POINTER__
@@ -600,12 +600,12 @@
 b__MA7naqebvq18AngvirVachgZnantreQ2Ri:
 nop
 .text
-.globl b__MAFg3__16irpgbeVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF6_RRR21__chfu_onpx_fybj_cnguVEXF6_RRiBG_
+.weak b__MAFg3__16irpgbeVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF6_RRR21__chfu_onpx_fybj_cnguVEXF6_RRiBG_
 .type b__MAFg3__16irpgbeVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF6_RRR21__chfu_onpx_fybj_cnguVEXF6_RRiBG_,%function
 b__MAFg3__16irpgbeVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF6_RRR21__chfu_onpx_fybj_cnguVEXF6_RRiBG_:
 nop
 .text
-.globl b__MA7naqebvq15NTaffQvfcngpure9frgFreireVAF_8uneqjner4taff4I1_06VNTaffRAF4_14VNTaffPnyyonpxRRRiAF_2fcVG_RRC7_WAVRaivC8_wfgevatv
+.weak b__MA7naqebvq15NTaffQvfcngpure9frgFreireVAF_8uneqjner4taff4I1_06VNTaffRAF4_14VNTaffPnyyonpxRRRiAF_2fcVG_RRC7_WAVRaivC8_wfgevatv
 .type b__MA7naqebvq15NTaffQvfcngpure9frgFreireVAF_8uneqjner4taff4I1_06VNTaffRAF4_14VNTaffPnyyonpxRRRiAF_2fcVG_RRC7_WAVRaivC8_wfgevatv,%function
 b__MA7naqebvq15NTaffQvfcngpure9frgFreireVAF_8uneqjner4taff4I1_06VNTaffRAF4_14VNTaffPnyyonpxRRRiAF_2fcVG_RRC7_WAVRaivC8_wfgevatv:
 nop
@@ -615,7 +615,7 @@
 b__MA7naqebvq16WninZrgubqUrycreVfR10fvtangher_R:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq6freire14OebnqpnfgEnqvb7ertvbaf18ErtvbanyOnaqPbasvtRAF_9nyybpngbeVF5_RRR6vafregVAF_11__jenc_vgreVCF5_RRRRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF5_AF_15vgrengbe_genvgfVFR_R9ersreraprRRR5inyhrRFP_R4glcrRAFN_VCXF5_RRFR_FR_
+.weak b__MAFg3__16irpgbeVA7naqebvq6freire14OebnqpnfgEnqvb7ertvbaf18ErtvbanyOnaqPbasvtRAF_9nyybpngbeVF5_RRR6vafregVAF_11__jenc_vgreVCF5_RRRRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF5_AF_15vgrengbe_genvgfVFR_R9ersreraprRRR5inyhrRFP_R4glcrRAFN_VCXF5_RRFR_FR_
 .type b__MAFg3__16irpgbeVA7naqebvq6freire14OebnqpnfgEnqvb7ertvbaf18ErtvbanyOnaqPbasvtRAF_9nyybpngbeVF5_RRR6vafregVAF_11__jenc_vgreVCF5_RRRRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF5_AF_15vgrengbe_genvgfVFR_R9ersreraprRRR5inyhrRFP_R4glcrRAFN_VCXF5_RRFR_FR_,%function
 b__MAFg3__16irpgbeVA7naqebvq6freire14OebnqpnfgEnqvb7ertvbaf18ErtvbanyOnaqPbasvtRAF_9nyybpngbeVF5_RRR6vafregVAF_11__jenc_vgreVCF5_RRRRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF5_AF_15vgrengbe_genvgfVFR_R9ersreraprRRR5inyhrRFP_R4glcrRAFN_VCXF5_RRFR_FR_:
 nop
@@ -670,12 +670,12 @@
 b__MA7naqebvq39ertvfgre_naqebvq_freire_IvoengbeFreivprRC7_WAVRai:
 nop
 .text
-.globl b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR8biresybjRv
+.weak b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR8biresybjRv
 .type b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR8biresybjRv,%function
 b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR8biresybjRv:
 nop
 .text
-.globl b__MA7naqebvq11OaVagresnprVAF_8uneqjner8ivoengbe17VIvoengbePnyyonpxRR10baNfOvaqreRi
+.weak b__MA7naqebvq11OaVagresnprVAF_8uneqjner8ivoengbe17VIvoengbePnyyonpxRR10baNfOvaqreRi
 .type b__MA7naqebvq11OaVagresnprVAF_8uneqjner8ivoengbe17VIvoengbePnyyonpxRR10baNfOvaqreRi,%function
 b__MA7naqebvq11OaVagresnprVAF_8uneqjner8ivoengbe17VIvoengbePnyyonpxRR10baNfOvaqreRi:
 nop
@@ -690,7 +690,7 @@
 b__MA7naqebvq23TaffZrnfherzragPnyyonpx30genafyngrFvatyrTaffZrnfherzragVAF_8uneqjner4taff4I1_124VTaffZrnfherzragPnyyonpx15TaffZrnfherzragRRRiCXG_EAF_10WninBowrpgR:
 nop
 .text
-.globl b__MA7naqebvq2fcVAF_6flfgrz7fhfcraq22VFhfcraqPbagebyFreivprRRQ2Ri
+.weak b__MA7naqebvq2fcVAF_6flfgrz7fhfcraq22VFhfcraqPbagebyFreivprRRQ2Ri
 .type b__MA7naqebvq2fcVAF_6flfgrz7fhfcraq22VFhfcraqPbagebyFreivprRRQ2Ri,%function
 b__MA7naqebvq2fcVAF_6flfgrz7fhfcraq22VFhfcraqPbagebyFreivprRRQ2Ri:
 nop
@@ -700,7 +700,7 @@
 b__MA7naqebvq11WGiVachgUnyQ2Ri:
 nop
 .text
-.globl b__MAFg3__110__shapgvba6__shapVMA7naqebvq12znxr_wninersVC8_wbowrpgRRAF_10havdhr_cgeVAF_14erzbir_cbvagreVG_R4glcrRAF_8shapgvbaVSiF8_RRRRRC7_WAVRaiF8_RHyF5_R_AF_9nyybpngbeVFU_RRSiF5_RRpyRBF5_
+.weak b__MAFg3__110__shapgvba6__shapVMA7naqebvq12znxr_wninersVC8_wbowrpgRRAF_10havdhr_cgeVAF_14erzbir_cbvagreVG_R4glcrRAF_8shapgvbaVSiF8_RRRRRC7_WAVRaiF8_RHyF5_R_AF_9nyybpngbeVFU_RRSiF5_RRpyRBF5_
 .type b__MAFg3__110__shapgvba6__shapVMA7naqebvq12znxr_wninersVC8_wbowrpgRRAF_10havdhr_cgeVAF_14erzbir_cbvagreVG_R4glcrRAF_8shapgvbaVSiF8_RRRRRC7_WAVRaiF8_RHyF5_R_AF_9nyybpngbeVFU_RRSiF5_RRpyRBF5_,%function
 b__MAFg3__110__shapgvba6__shapVMA7naqebvq12znxr_wninersVC8_wbowrpgRRAF_10havdhr_cgeVAF_14erzbir_cbvagreVG_R4glcrRAF_8shapgvbaVSiF8_RRRRRC7_WAVRaiF8_RHyF5_R_AF_9nyybpngbeVFU_RRSiF5_RRpyRBF5_:
 nop
@@ -710,17 +710,17 @@
 b__MA7naqebvq6freire14OebnqpnfgEnqvb13GharePnyyonpx14AngvirPnyyonpx11arjZrgnqngnRwwEXAF_8uneqjner8uvqy_irpVAF4_14oebnqpnfgenqvb4I1_08ZrgnQngnRRR:
 nop
 .text
-.globl b__MAFg3__110__shapgvba6__shapVMA7naqebvq12znxr_wninersVC11_wybatNeenlRRAF_10havdhr_cgeVAF_14erzbir_cbvagreVG_R4glcrRAF_8shapgvbaVSiF8_RRRRRC7_WAVRaiF8_RHyF5_R_AF_9nyybpngbeVFU_RRSiF5_RR7qrfgeblRi
+.weak b__MAFg3__110__shapgvba6__shapVMA7naqebvq12znxr_wninersVC11_wybatNeenlRRAF_10havdhr_cgeVAF_14erzbir_cbvagreVG_R4glcrRAF_8shapgvbaVSiF8_RRRRRC7_WAVRaiF8_RHyF5_R_AF_9nyybpngbeVFU_RRSiF5_RR7qrfgeblRi
 .type b__MAFg3__110__shapgvba6__shapVMA7naqebvq12znxr_wninersVC11_wybatNeenlRRAF_10havdhr_cgeVAF_14erzbir_cbvagreVG_R4glcrRAF_8shapgvbaVSiF8_RRRRRC7_WAVRaiF8_RHyF5_R_AF_9nyybpngbeVFU_RRSiF5_RR7qrfgeblRi,%function
 b__MAFg3__110__shapgvba6__shapVMA7naqebvq12znxr_wninersVC11_wybatNeenlRRAF_10havdhr_cgeVAF_14erzbir_cbvagreVG_R4glcrRAF_8shapgvbaVSiF8_RRRRRC7_WAVRaiF8_RHyF5_R_AF_9nyybpngbeVFU_RRSiF5_RR7qrfgeblRi:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwAF_13habeqrerq_zncVwAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_4unfuVwRRAF_8rdhny_gbVwRRAF6_VAF_4cnveVXwF8_RRRRRRRRAF_22__habeqrerq_znc_unfureVwFV_FN_Yo1RRRAF_21__habeqrerq_znc_rdhnyVwFV_FP_Yo1RRRAF6_VFV_RRR25__rzcynpr_havdhr_xrl_netfVwWEwEFU_RRRAFQ_VAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVFV_CiRRRRoRREXG_QcBG0_
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwAF_13habeqrerq_zncVwAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_4unfuVwRRAF_8rdhny_gbVwRRAF6_VAF_4cnveVXwF8_RRRRRRRRAF_22__habeqrerq_znc_unfureVwFV_FN_Yo1RRRAF_21__habeqrerq_znc_rdhnyVwFV_FP_Yo1RRRAF6_VFV_RRR25__rzcynpr_havdhr_xrl_netfVwWEwEFU_RRRAFQ_VAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVFV_CiRRRRoRREXG_QcBG0_
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwAF_13habeqrerq_zncVwAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_4unfuVwRRAF_8rdhny_gbVwRRAF6_VAF_4cnveVXwF8_RRRRRRRRAF_22__habeqrerq_znc_unfureVwFV_FN_Yo1RRRAF_21__habeqrerq_znc_rdhnyVwFV_FP_Yo1RRRAF6_VFV_RRR25__rzcynpr_havdhr_xrl_netfVwWEwEFU_RRRAFQ_VAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVFV_CiRRRRoRREXG_QcBG0_,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwAF_13habeqrerq_zncVwAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_4unfuVwRRAF_8rdhny_gbVwRRAF6_VAF_4cnveVXwF8_RRRRRRRRAF_22__habeqrerq_znc_unfureVwFV_FN_Yo1RRRAF_21__habeqrerq_znc_rdhnyVwFV_FP_Yo1RRRAF6_VFV_RRR25__rzcynpr_havdhr_xrl_netfVwWEwEFU_RRRAFQ_VAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVFV_CiRRRRoRREXG_QcBG0_:
 nop
 .text
-.globl b__MA7naqebvq23TaffZrnfherzragPnyyonpx23genafyngrNaqFrgTaffQngnVAF_8uneqjner4taff4I1_024VTaffZrnfherzragPnyyonpx8TaffQngnRRRiEXG_
+.weak b__MA7naqebvq23TaffZrnfherzragPnyyonpx23genafyngrNaqFrgTaffQngnVAF_8uneqjner4taff4I1_024VTaffZrnfherzragPnyyonpx8TaffQngnRRRiEXG_
 .type b__MA7naqebvq23TaffZrnfherzragPnyyonpx23genafyngrNaqFrgTaffQngnVAF_8uneqjner4taff4I1_024VTaffZrnfherzragPnyyonpx8TaffQngnRRRiEXG_,%function
 b__MA7naqebvq23TaffZrnfherzragPnyyonpx23genafyngrNaqFrgTaffQngnVAF_8uneqjner4taff4I1_024VTaffZrnfherzragPnyyonpx8TaffQngnRRRiEXG_:
 nop
@@ -735,7 +735,7 @@
 b__MA7naqebvq11WGiVachgUny17baQrivprNinvynoyrREXAF_8uneqjner2gi5vachg4I1_017GiVachgQrivprVasbR:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_11XrlrqIrpgbeVvAF_11WGiVachgUny10PbaarpgvbaRRRRRR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_11XrlrqIrpgbeVvAF_11WGiVachgUny10PbaarpgvbaRRRRRR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_11XrlrqIrpgbeVvAF_11WGiVachgUny10PbaarpgvbaRRRRRR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_11XrlrqIrpgbeVvAF_11WGiVachgUny10PbaarpgvbaRRRRRR8qb_fcyngRCiCXiz:
 nop
@@ -755,12 +755,12 @@
 b__MA7naqebvq17UqzvPrpPbagebyyre11vfPbaarpgrqRv:
 nop
 .text
-.globl b__MAXFg3__110__shapgvba6__shapVMA7naqebvq12znxr_wninersVC11_wybatNeenlRRAF_10havdhr_cgeVAF_14erzbir_cbvagreVG_R4glcrRAF_8shapgvbaVSiF8_RRRRRC7_WAVRaiF8_RHyF5_R_AF_9nyybpngbeVFU_RRSiF5_RR7__pybarRi
+.weak b__MAXFg3__110__shapgvba6__shapVMA7naqebvq12znxr_wninersVC11_wybatNeenlRRAF_10havdhr_cgeVAF_14erzbir_cbvagreVG_R4glcrRAF_8shapgvbaVSiF8_RRRRRC7_WAVRaiF8_RHyF5_R_AF_9nyybpngbeVFU_RRSiF5_RR7__pybarRi
 .type b__MAXFg3__110__shapgvba6__shapVMA7naqebvq12znxr_wninersVC11_wybatNeenlRRAF_10havdhr_cgeVAF_14erzbir_cbvagreVG_R4glcrRAF_8shapgvbaVSiF8_RRRRRC7_WAVRaiF8_RHyF5_R_AF_9nyybpngbeVFU_RRSiF5_RR7__pybarRi,%function
 b__MAXFg3__110__shapgvba6__shapVMA7naqebvq12znxr_wninersVC11_wybatNeenlRRAF_10havdhr_cgeVAF_14erzbir_cbvagreVG_R4glcrRAF_8shapgvbaVSiF8_RRRRRC7_WAVRaiF8_RHyF5_R_AF_9nyybpngbeVFU_RRSiF5_RR7__pybarRi:
 nop
 .data
-.globl b__MGIAFg3__110__shapgvba6__shapVCSiC7_WAVRaiC8_wbowrpgRAF_9nyybpngbeVF7_RRF6_RR
+.weak b__MGIAFg3__110__shapgvba6__shapVCSiC7_WAVRaiC8_wbowrpgRAF_9nyybpngbeVF7_RRF6_RR
 .type b__MGIAFg3__110__shapgvba6__shapVCSiC7_WAVRaiC8_wbowrpgRAF_9nyybpngbeVF7_RRF6_RR,%object
 b__MGIAFg3__110__shapgvba6__shapVCSiC7_WAVRaiC8_wbowrpgRAF_9nyybpngbeVF7_RRF6_RR:
 .space __SIZEOF_POINTER__
@@ -770,7 +770,7 @@
 b_ntaffVsnpr_I2_0:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_11XrlrqIrpgbeVvAF_11WGiVachgUny10PbaarpgvbaRRRRRR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_11XrlrqIrpgbeVvAF_11WGiVachgUny10PbaarpgvbaRRRRRR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_11XrlrqIrpgbeVvAF_11WGiVachgUny10PbaarpgvbaRRRRRR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_11XrlrqIrpgbeVvAF_11WGiVachgUny10PbaarpgvbaRRRRRR7qb_pbclRCiCXiz:
 nop
@@ -785,7 +785,7 @@
 b__MA7naqebvq16WninZrgubqUrycreVC8_wfgevatR10fvtangher_R:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq2fcVAF_8uneqjner4taff4I2_016VTaffZrnfherzragRRQ2Ri
+.weak b__MA7naqebvq2fcVAF_8uneqjner4taff4I2_016VTaffZrnfherzragRRQ2Ri
 .type b__MA7naqebvq2fcVAF_8uneqjner4taff4I2_016VTaffZrnfherzragRRQ2Ri,%function
 b__MA7naqebvq2fcVAF_8uneqjner4taff4I2_016VTaffZrnfherzragRRQ2Ri:
 nop
@@ -810,7 +810,7 @@
 b__MGPA7naqebvq6freire14OebnqpnfgEnqvb13GharePnyyonpx14AngvirPnyyonpxR0_AF_8uneqjner14oebnqpnfgenqvb4I1_014VGharePnyyonpxR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__16irpgbeVwAF_9nyybpngbeVwRRR24__rzcynpr_onpx_fybj_cnguVWEwRRRiQcBG_
+.weak b__MAFg3__16irpgbeVwAF_9nyybpngbeVwRRR24__rzcynpr_onpx_fybj_cnguVWEwRRRiQcBG_
 .type b__MAFg3__16irpgbeVwAF_9nyybpngbeVwRRR24__rzcynpr_onpx_fybj_cnguVWEwRRRiQcBG_,%function
 b__MAFg3__16irpgbeVwAF_9nyybpngbeVwRRR24__rzcynpr_onpx_fybj_cnguVWEwRRRiQcBG_:
 nop
@@ -845,7 +845,7 @@
 b__MGPA7naqebvq14TaffAvPnyyonpxR0_AF_4uvqy4onfr4I1_05VOnfrR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIA7naqebvq20NvqyIvoengbePnyyonpxR
+.weak b__MGIA7naqebvq20NvqyIvoengbePnyyonpxR
 .type b__MGIA7naqebvq20NvqyIvoengbePnyyonpxR,%object
 b__MGIA7naqebvq20NvqyIvoengbePnyyonpxR:
 .space __SIZEOF_POINTER__
@@ -855,27 +855,27 @@
 b__MGGA7naqebvq12TaffPnyyonpxR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIAFg3__110__shapgvba6__shapVMA7naqebvq12znxr_wninersVC8_wfgevatRRAF_10havdhr_cgeVAF_14erzbir_cbvagreVG_R4glcrRAF_8shapgvbaVSiF8_RRRRRC7_WAVRaiF8_RHyF5_R_AF_9nyybpngbeVFU_RRSiF5_RRR
+.weak b__MGIAFg3__110__shapgvba6__shapVMA7naqebvq12znxr_wninersVC8_wfgevatRRAF_10havdhr_cgeVAF_14erzbir_cbvagreVG_R4glcrRAF_8shapgvbaVSiF8_RRRRRC7_WAVRaiF8_RHyF5_R_AF_9nyybpngbeVFU_RRSiF5_RRR
 .type b__MGIAFg3__110__shapgvba6__shapVMA7naqebvq12znxr_wninersVC8_wfgevatRRAF_10havdhr_cgeVAF_14erzbir_cbvagreVG_R4glcrRAF_8shapgvbaVSiF8_RRRRRC7_WAVRaiF8_RHyF5_R_AF_9nyybpngbeVFU_RRSiF5_RRR,%object
 b__MGIAFg3__110__shapgvba6__shapVMA7naqebvq12znxr_wninersVC8_wfgevatRRAF_10havdhr_cgeVAF_14erzbir_cbvagreVG_R4glcrRAF_8shapgvbaVSiF8_RRRRRC7_WAVRaiF8_RHyF5_R_AF_9nyybpngbeVFU_RRSiF5_RRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAXFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR3fgeRi
+.weak b__MAXFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR3fgeRi
 .type b__MAXFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR3fgeRi,%function
 b__MAXFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR3fgeRi:
 nop
 .text
-.globl b__MAFg3__110__shapgvba6__shapVMA7naqebvq12znxr_wninersVC8_wbowrpgRRAF_10havdhr_cgeVAF_14erzbir_cbvagreVG_R4glcrRAF_8shapgvbaVSiF8_RRRRRC7_WAVRaiF8_RHyF5_R_AF_9nyybpngbeVFU_RRSiF5_RR18qrfgebl_qrnyybpngrRi
+.weak b__MAFg3__110__shapgvba6__shapVMA7naqebvq12znxr_wninersVC8_wbowrpgRRAF_10havdhr_cgeVAF_14erzbir_cbvagreVG_R4glcrRAF_8shapgvbaVSiF8_RRRRRC7_WAVRaiF8_RHyF5_R_AF_9nyybpngbeVFU_RRSiF5_RR18qrfgebl_qrnyybpngrRi
 .type b__MAFg3__110__shapgvba6__shapVMA7naqebvq12znxr_wninersVC8_wbowrpgRRAF_10havdhr_cgeVAF_14erzbir_cbvagreVG_R4glcrRAF_8shapgvbaVSiF8_RRRRRC7_WAVRaiF8_RHyF5_R_AF_9nyybpngbeVFU_RRSiF5_RR18qrfgebl_qrnyybpngrRi,%function
 b__MAFg3__110__shapgvba6__shapVMA7naqebvq12znxr_wninersVC8_wbowrpgRRAF_10havdhr_cgeVAF_14erzbir_cbvagreVG_R4glcrRAF_8shapgvbaVSiF8_RRRRRC7_WAVRaiF8_RHyF5_R_AF_9nyybpngbeVFU_RRSiF5_RR18qrfgebl_qrnyybpngrRi:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf13neenlGbFgevatVAF0_8uvqy_irpVAF0_14oebnqpnfgenqvb4I1_08ZrgnQngnRRRRRAFg3__112onfvp_fgevatVpAF8_11pune_genvgfVpRRAF8_9nyybpngbeVpRRRREXG_z
+.weak b__MA7naqebvq8uneqjner7qrgnvyf13neenlGbFgevatVAF0_8uvqy_irpVAF0_14oebnqpnfgenqvb4I1_08ZrgnQngnRRRRRAFg3__112onfvp_fgevatVpAF8_11pune_genvgfVpRRAF8_9nyybpngbeVpRRRREXG_z
 .type b__MA7naqebvq8uneqjner7qrgnvyf13neenlGbFgevatVAF0_8uvqy_irpVAF0_14oebnqpnfgenqvb4I1_08ZrgnQngnRRRRRAFg3__112onfvp_fgevatVpAF8_11pune_genvgfVpRRAF8_9nyybpngbeVpRRRREXG_z,%function
 b__MA7naqebvq8uneqjner7qrgnvyf13neenlGbFgevatVAF0_8uvqy_irpVAF0_14oebnqpnfgenqvb4I1_08ZrgnQngnRRRRRAFg3__112onfvp_fgevatVpAF8_11pune_genvgfVpRRAF8_9nyybpngbeVpRRRREXG_z:
 nop
 .text
-.globl b__MAFg3__110__shapgvba6__shapVCSAF_10havdhr_cgeV8_wbowrpgAF_8shapgvbaVSiCF3_RRRRRC7_WAVRaiEXA7naqebvq6freire14OebnqpnfgEnqvb7ertvbaf18ErtvbanyOnaqPbasvtRRAF_9nyybpngbeVFW_RRFV_RpyRBFN_FU_
+.weak b__MAFg3__110__shapgvba6__shapVCSAF_10havdhr_cgeV8_wbowrpgAF_8shapgvbaVSiCF3_RRRRRC7_WAVRaiEXA7naqebvq6freire14OebnqpnfgEnqvb7ertvbaf18ErtvbanyOnaqPbasvtRRAF_9nyybpngbeVFW_RRFV_RpyRBFN_FU_
 .type b__MAFg3__110__shapgvba6__shapVCSAF_10havdhr_cgeV8_wbowrpgAF_8shapgvbaVSiCF3_RRRRRC7_WAVRaiEXA7naqebvq6freire14OebnqpnfgEnqvb7ertvbaf18ErtvbanyOnaqPbasvtRRAF_9nyybpngbeVFW_RRFV_RpyRBFN_FU_,%function
 b__MAFg3__110__shapgvba6__shapVCSAF_10havdhr_cgeV8_wbowrpgAF_8shapgvbaVSiCF3_RRRRRC7_WAVRaiEXA7naqebvq6freire14OebnqpnfgEnqvb7ertvbaf18ErtvbanyOnaqPbasvtRRAF_9nyybpngbeVFW_RRFV_RpyRBFN_FU_:
 nop
@@ -890,7 +890,7 @@
 b__MA7naqebvq29TaffIvfvovyvglPbagebyPnyyonpx11asjAbgvslPoREXAF_8uneqjner4taff18ivfvovyvgl_pbageby4I1_030VTaffIvfvovyvglPbagebyPnyyonpx15AsjAbgvsvpngvbaR:
 nop
 .text
-.globl b__MA7naqebvq2fcVAF_8uneqjner4taff4I1_05VTaffRRQ2Ri
+.weak b__MA7naqebvq2fcVAF_8uneqjner4taff4I1_05VTaffRRQ2Ri
 .type b__MA7naqebvq2fcVAF_8uneqjner4taff4I1_05VTaffRRQ2Ri,%function
 b__MA7naqebvq2fcVAF_8uneqjner4taff4I1_05VTaffRRQ2Ri:
 nop
@@ -910,27 +910,27 @@
 b__MGi0_a48_A7naqebvq18AngvirVachgZnantre23bognvaCbvagrePbagebyyreRv:
 nop
 .text
-.globl b__MA7naqebvq2fcVAF_8uneqjner4taff4I1_09VNTaffEvyRRQ2Ri
+.weak b__MA7naqebvq2fcVAF_8uneqjner4taff4I1_09VNTaffEvyRRQ2Ri
 .type b__MA7naqebvq2fcVAF_8uneqjner4taff4I1_09VNTaffEvyRRQ2Ri,%function
 b__MA7naqebvq2fcVAF_8uneqjner4taff4I1_09VNTaffEvyRRQ2Ri:
 nop
 .text
-.globl b__MA7naqebvq2fcVAF_8uneqjner4taff4I1_116VTaffZrnfherzragRRQ2Ri
+.weak b__MA7naqebvq2fcVAF_8uneqjner4taff4I1_116VTaffZrnfherzragRRQ2Ri
 .type b__MA7naqebvq2fcVAF_8uneqjner4taff4I1_116VTaffZrnfherzragRRQ2Ri,%function
 b__MA7naqebvq2fcVAF_8uneqjner4taff4I1_116VTaffZrnfherzragRRQ2Ri:
 nop
 .text
-.globl b__MAXFg3__110__shapgvba6__shapVMA7naqebvq12znxr_wninersVC8_wfgevatRRAF_10havdhr_cgeVAF_14erzbir_cbvagreVG_R4glcrRAF_8shapgvbaVSiF8_RRRRRC7_WAVRaiF8_RHyF5_R_AF_9nyybpngbeVFU_RRSiF5_RR7__pybarRi
+.weak b__MAXFg3__110__shapgvba6__shapVMA7naqebvq12znxr_wninersVC8_wfgevatRRAF_10havdhr_cgeVAF_14erzbir_cbvagreVG_R4glcrRAF_8shapgvbaVSiF8_RRRRRC7_WAVRaiF8_RHyF5_R_AF_9nyybpngbeVFU_RRSiF5_RR7__pybarRi
 .type b__MAXFg3__110__shapgvba6__shapVMA7naqebvq12znxr_wninersVC8_wfgevatRRAF_10havdhr_cgeVAF_14erzbir_cbvagreVG_R4glcrRAF_8shapgvbaVSiF8_RRRRRC7_WAVRaiF8_RHyF5_R_AF_9nyybpngbeVFU_RRSiF5_RR7__pybarRi,%function
 b__MAXFg3__110__shapgvba6__shapVMA7naqebvq12znxr_wninersVC8_wfgevatRRAF_10havdhr_cgeVAF_14erzbir_cbvagreVG_R4glcrRAF_8shapgvbaVSiF8_RRRRRC7_WAVRaiF8_RHyF5_R_AF_9nyybpngbeVFU_RRSiF5_RR7__pybarRi:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVvR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVvR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVvR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVvR7qb_pbclRCiCXiz:
 nop
 .data
-.globl b__MGGAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
+.weak b__MGGAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
 .type b__MGGAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR,%object
 b__MGGAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR:
 .space __SIZEOF_POINTER__
@@ -955,7 +955,7 @@
 b__MA7naqebvq8uneqjner14oebnqpnfgenqvb5hgvyf9vfQvtvgnyREXAF1_4I1_115CebtenzFryrpgbeR:
 nop
 .text
-.globl b__MAFg3__114__fcyvg_ohssreVCAF_8shapgvbaVSiC7_WAVRaiRRRAF_9nyybpngbeVF6_RRR9chfu_onpxRBF6_
+.weak b__MAFg3__114__fcyvg_ohssreVCAF_8shapgvbaVSiC7_WAVRaiRRRAF_9nyybpngbeVF6_RRR9chfu_onpxRBF6_
 .type b__MAFg3__114__fcyvg_ohssreVCAF_8shapgvbaVSiC7_WAVRaiRRRAF_9nyybpngbeVF6_RRR9chfu_onpxRBF6_,%function
 b__MAFg3__114__fcyvg_ohssreVCAF_8shapgvbaVSiC7_WAVRaiRRRAF_9nyybpngbeVF6_RRR9chfu_onpxRBF6_:
 nop
@@ -990,12 +990,12 @@
 b__MA7naqebvq9NynezVzcyQ1Ri:
 nop
 .text
-.globl b__MAXFg3__110__shapgvba6__shapVCSvC7_WAVRaiC8_wbowrpgRAF_9nyybpngbeVF7_RRF6_R7__pybarRi
+.weak b__MAXFg3__110__shapgvba6__shapVCSvC7_WAVRaiC8_wbowrpgRAF_9nyybpngbeVF7_RRF6_R7__pybarRi
 .type b__MAXFg3__110__shapgvba6__shapVCSvC7_WAVRaiC8_wbowrpgRAF_9nyybpngbeVF7_RRF6_R7__pybarRi,%function
 b__MAXFg3__110__shapgvba6__shapVCSvC7_WAVRaiC8_wbowrpgRAF_9nyybpngbeVF7_RRF6_R7__pybarRi:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRuRRAF_22__habeqrerq_znc_unfureVF7_F8_AF_4unfuVF7_RRYo1RRRAF_21__habeqrerq_znc_rdhnyVF7_F8_AF_8rdhny_gbVF7_RRYo1RRRAF5_VF8_RRR8__erunfuRz
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRuRRAF_22__habeqrerq_znc_unfureVF7_F8_AF_4unfuVF7_RRYo1RRRAF_21__habeqrerq_znc_rdhnyVF7_F8_AF_8rdhny_gbVF7_RRYo1RRRAF5_VF8_RRR8__erunfuRz
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRuRRAF_22__habeqrerq_znc_unfureVF7_F8_AF_4unfuVF7_RRYo1RRRAF_21__habeqrerq_znc_rdhnyVF7_F8_AF_8rdhny_gbVF7_RRYo1RRRAF5_VF8_RRR8__erunfuRz,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRuRRAF_22__habeqrerq_znc_unfureVF7_F8_AF_4unfuVF7_RRYo1RRRAF_21__habeqrerq_znc_rdhnyVF7_F8_AF_8rdhny_gbVF7_RRYo1RRRAF5_VF8_RRR8__erunfuRz:
 nop
@@ -1065,7 +1065,7 @@
 b__MA7naqebvq13gelTrgFreivprVAF_8uneqjner8ivoengbe9VIvoengbeRRRAF_2fcVG_RRi:
 nop
 .text
-.globl b__MAFg3__110__shapgvba6__shapVMA7naqebvq12znxr_wninersVC8_wfgevatRRAF_10havdhr_cgeVAF_14erzbir_cbvagreVG_R4glcrRAF_8shapgvbaVSiF8_RRRRRC7_WAVRaiF8_RHyF5_R_AF_9nyybpngbeVFU_RRSiF5_RR18qrfgebl_qrnyybpngrRi
+.weak b__MAFg3__110__shapgvba6__shapVMA7naqebvq12znxr_wninersVC8_wfgevatRRAF_10havdhr_cgeVAF_14erzbir_cbvagreVG_R4glcrRAF_8shapgvbaVSiF8_RRRRRC7_WAVRaiF8_RHyF5_R_AF_9nyybpngbeVFU_RRSiF5_RR18qrfgebl_qrnyybpngrRi
 .type b__MAFg3__110__shapgvba6__shapVMA7naqebvq12znxr_wninersVC8_wfgevatRRAF_10havdhr_cgeVAF_14erzbir_cbvagreVG_R4glcrRAF_8shapgvbaVSiF8_RRRRRC7_WAVRaiF8_RHyF5_R_AF_9nyybpngbeVFU_RRSiF5_RR18qrfgebl_qrnyybpngrRi,%function
 b__MAFg3__110__shapgvba6__shapVMA7naqebvq12znxr_wninersVC8_wfgevatRRAF_10havdhr_cgeVAF_14erzbir_cbvagreVG_R4glcrRAF_8shapgvbaVSiF8_RRRRRC7_WAVRaiF8_RHyF5_R_AF_9nyybpngbeVFU_RRSiF5_RR18qrfgebl_qrnyybpngrRi:
 nop
@@ -1075,7 +1075,7 @@
 b__MA7naqebvq16WninZrgubqUrycreVsR10fvtangher_R:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_11WGiVachgUny10PbaarpgvbaRRRR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_11WGiVachgUny10PbaarpgvbaRRRR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_11WGiVachgUny10PbaarpgvbaRRRR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_11WGiVachgUny10PbaarpgvbaRRRR8qb_fcyngRCiCXiz:
 nop
@@ -1090,7 +1090,7 @@
 b__MA7naqebvq6freire14OebnqpnfgEnqvb7pbaireg17IraqbeVasbSebzUnyRC7_WAVRaiEXAF_8uneqjner8uvqy_irpVAF5_14oebnqpnfgenqvb4I1_114IraqbeXrlInyhrRRR:
 nop
 .text
-.globl b__MA7naqebvq2fcVAF_22CbjreUnyQrnguErpvcvragRRQ2Ri
+.weak b__MA7naqebvq2fcVAF_22CbjreUnyQrnguErpvcvragRRQ2Ri
 .type b__MA7naqebvq2fcVAF_22CbjreUnyQrnguErpvcvragRRQ2Ri,%function
 b__MA7naqebvq2fcVAF_22CbjreUnyQrnguErpvcvragRRQ2Ri:
 nop
@@ -1105,7 +1105,7 @@
 b_taffUnyQrnguErpvcvrag:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGPA7naqebvq20NvqyIvoengbePnyyonpxR0_AF_8uneqjner8ivoengbe17VIvoengbePnyyonpxR
+.weak b__MGPA7naqebvq20NvqyIvoengbePnyyonpxR0_AF_8uneqjner8ivoengbe17VIvoengbePnyyonpxR
 .type b__MGPA7naqebvq20NvqyIvoengbePnyyonpxR0_AF_8uneqjner8ivoengbe17VIvoengbePnyyonpxR,%object
 b__MGPA7naqebvq20NvqyIvoengbePnyyonpxR0_AF_8uneqjner8ivoengbe17VIvoengbePnyyonpxR:
 .space __SIZEOF_POINTER__
@@ -1120,7 +1120,7 @@
 b__MA7naqebvq6freire14OebnqpnfgEnqvb13GharePnyyonpx14AngvirPnyyonpx12pbasvtPunatrRAF_8uneqjner14oebnqpnfgenqvb4I1_06ErfhygREXAF6_10OnaqPbasvtR:
 nop
 .data
-.globl b__MGIAFg3__110__shapgvba6__shapVMA7naqebvq12znxr_wninersVC11_wybatNeenlRRAF_10havdhr_cgeVAF_14erzbir_cbvagreVG_R4glcrRAF_8shapgvbaVSiF8_RRRRRC7_WAVRaiF8_RHyF5_R_AF_9nyybpngbeVFU_RRSiF5_RRR
+.weak b__MGIAFg3__110__shapgvba6__shapVMA7naqebvq12znxr_wninersVC11_wybatNeenlRRAF_10havdhr_cgeVAF_14erzbir_cbvagreVG_R4glcrRAF_8shapgvbaVSiF8_RRRRRC7_WAVRaiF8_RHyF5_R_AF_9nyybpngbeVFU_RRSiF5_RRR
 .type b__MGIAFg3__110__shapgvba6__shapVMA7naqebvq12znxr_wninersVC11_wybatNeenlRRAF_10havdhr_cgeVAF_14erzbir_cbvagreVG_R4glcrRAF_8shapgvbaVSiF8_RRRRRC7_WAVRaiF8_RHyF5_R_AF_9nyybpngbeVFU_RRSiF5_RRR,%object
 b__MGIAFg3__110__shapgvba6__shapVMA7naqebvq12znxr_wninersVC11_wybatNeenlRRAF_10havdhr_cgeVAF_14erzbir_cbvagreVG_R4glcrRAF_8shapgvbaVSiF8_RRRRRC7_WAVRaiF8_RHyF5_R_AF_9nyybpngbeVFU_RRSiF5_RRR:
 .space __SIZEOF_POINTER__
@@ -1130,7 +1130,7 @@
 b__MA7naqebvq25tGureznyUnyQrnguErpvcvragR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq2fcVAF_8uneqjner4taff4I2_09VNTaffEvyRRQ2Ri
+.weak b__MA7naqebvq2fcVAF_8uneqjner4taff4I2_09VNTaffEvyRRQ2Ri
 .type b__MA7naqebvq2fcVAF_8uneqjner4taff4I2_09VNTaffEvyRRQ2Ri,%function
 b__MA7naqebvq2fcVAF_8uneqjner4taff4I2_09VNTaffEvyRRQ2Ri:
 nop
@@ -1160,12 +1160,12 @@
 b__MA7naqebvq24tCbjreFgngfUnyFgngrAnzrfR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__110__shapgvba6__shapVCSvC7_WAVRaiC8_wbowrpgRAF_9nyybpngbeVF7_RRF6_R7qrfgeblRi
+.weak b__MAFg3__110__shapgvba6__shapVCSvC7_WAVRaiC8_wbowrpgRAF_9nyybpngbeVF7_RRF6_R7qrfgeblRi
 .type b__MAFg3__110__shapgvba6__shapVCSvC7_WAVRaiC8_wbowrpgRAF_9nyybpngbeVF7_RRF6_R7qrfgeblRi,%function
 b__MAFg3__110__shapgvba6__shapVCSvC7_WAVRaiC8_wbowrpgRAF_9nyybpngbeVF7_RRF6_R7qrfgeblRi:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVvA7naqebvq10FcevgrVpbaRRRAF_19__znc_inyhr_pbzcnerVvF4_AF_4yrffVvRRYo1RRRAF_9nyybpngbeVF4_RRR25__rzcynpr_havdhr_xrl_netfVvWEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWBvRRRAFT_VWRRRRRRAF_4cnveVAF_15__gerr_vgrengbeVF4_CAF_11__gerr_abqrVF4_CiRRyRRoRREXG_QcBG0_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVvA7naqebvq10FcevgrVpbaRRRAF_19__znc_inyhr_pbzcnerVvF4_AF_4yrffVvRRYo1RRRAF_9nyybpngbeVF4_RRR25__rzcynpr_havdhr_xrl_netfVvWEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWBvRRRAFT_VWRRRRRRAF_4cnveVAF_15__gerr_vgrengbeVF4_CAF_11__gerr_abqrVF4_CiRRyRRoRREXG_QcBG0_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVvA7naqebvq10FcevgrVpbaRRRAF_19__znc_inyhr_pbzcnerVvF4_AF_4yrffVvRRYo1RRRAF_9nyybpngbeVF4_RRR25__rzcynpr_havdhr_xrl_netfVvWEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWBvRRRAFT_VWRRRRRRAF_4cnveVAF_15__gerr_vgrengbeVF4_CAF_11__gerr_abqrVF4_CiRRyRRoRREXG_QcBG0_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVvA7naqebvq10FcevgrVpbaRRRAF_19__znc_inyhr_pbzcnerVvF4_AF_4yrffVvRRYo1RRRAF_9nyybpngbeVF4_RRR25__rzcynpr_havdhr_xrl_netfVvWEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWBvRRRAFT_VWRRRRRRAF_4cnveVAF_15__gerr_vgrengbeVF4_CAF_11__gerr_abqrVF4_CiRRyRRoRREXG_QcBG0_:
 nop
@@ -1180,12 +1180,12 @@
 b__MA7naqebvq17UqzvPrpPbagebyyre12trgCbegVasbfRi:
 nop
 .text
-.globl b__MA7naqebvq2fcVAF_8uneqjner4taff4I1_010VTaffQrohtRRQ2Ri
+.weak b__MA7naqebvq2fcVAF_8uneqjner4taff4I1_010VTaffQrohtRRQ2Ri
 .type b__MA7naqebvq2fcVAF_8uneqjner4taff4I1_010VTaffQrohtRRQ2Ri,%function
 b__MA7naqebvq2fcVAF_8uneqjner4taff4I1_010VTaffQrohtRRQ2Ri:
 nop
 .text
-.globl b__MA7naqebvq2fcVAF_8uneqjner4taff4I1_018VTaffPbasvthengvbaRRQ2Ri
+.weak b__MA7naqebvq2fcVAF_8uneqjner4taff4I1_018VTaffPbasvthengvbaRRQ2Ri
 .type b__MA7naqebvq2fcVAF_8uneqjner4taff4I1_018VTaffPbasvthengvbaRRQ2Ri,%function
 b__MA7naqebvq2fcVAF_8uneqjner4taff4I1_018VTaffPbasvthengvbaRRQ2Ri:
 nop
@@ -1195,7 +1195,7 @@
 b__MA7naqebvq8uneqjner14oebnqpnfgenqvb5hgvyf7gharfGbREXAF1_4I1_115CebtenzFryrpgbeRF6_:
 nop
 .text
-.globl b__MA7naqebvq4onfr9CnefrHvagVuRRoCXpCG_F4_o
+.weak b__MA7naqebvq4onfr9CnefrHvagVuRRoCXpCG_F4_o
 .type b__MA7naqebvq4onfr9CnefrHvagVuRRoCXpCG_F4_o,%function
 b__MA7naqebvq4onfr9CnefrHvagVuRRoCXpCG_F4_o:
 nop
@@ -1205,7 +1205,7 @@
 b__MA7naqebvq16WninZrgubqUrycreVoR10fvtangher_R:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq2fcVAF_8uneqjner4taff4I1_15VTaffRRQ2Ri
+.weak b__MA7naqebvq2fcVAF_8uneqjner4taff4I1_15VTaffRRQ2Ri
 .type b__MA7naqebvq2fcVAF_8uneqjner4taff4I1_15VTaffRRQ2Ri,%function
 b__MA7naqebvq2fcVAF_8uneqjner4taff4I1_15VTaffRRQ2Ri:
 nop
@@ -1215,7 +1215,7 @@
 b__MA7naqebvq11WGiVachgUny15GiVachgPnyyonpxP2RCF0_:
 nop
 .text
-.globl b__MAFg3__110__shapgvba6__shapVMA7naqebvq12znxr_wninersVC8_wfgevatRRAF_10havdhr_cgeVAF_14erzbir_cbvagreVG_R4glcrRAF_8shapgvbaVSiF8_RRRRRC7_WAVRaiF8_RHyF5_R_AF_9nyybpngbeVFU_RRSiF5_RR7qrfgeblRi
+.weak b__MAFg3__110__shapgvba6__shapVMA7naqebvq12znxr_wninersVC8_wfgevatRRAF_10havdhr_cgeVAF_14erzbir_cbvagreVG_R4glcrRAF_8shapgvbaVSiF8_RRRRRC7_WAVRaiF8_RHyF5_R_AF_9nyybpngbeVFU_RRSiF5_RR7qrfgeblRi
 .type b__MAFg3__110__shapgvba6__shapVMA7naqebvq12znxr_wninersVC8_wfgevatRRAF_10havdhr_cgeVAF_14erzbir_cbvagreVG_R4glcrRAF_8shapgvbaVSiF8_RRRRRC7_WAVRaiF8_RHyF5_R_AF_9nyybpngbeVFU_RRSiF5_RR7qrfgeblRi,%function
 b__MAFg3__110__shapgvba6__shapVMA7naqebvq12znxr_wninersVC8_wfgevatRRAF_10havdhr_cgeVAF_14erzbir_cbvagreVG_R4glcrRAF_8shapgvbaVSiF8_RRRRRC7_WAVRaiF8_RHyF5_R_AF_9nyybpngbeVFU_RRSiF5_RR7qrfgeblRi:
 nop
@@ -1235,7 +1235,7 @@
 b__MGi0_a40_A7naqebvq18AngvirVachgZnantre26abgvslPbasvthengvbaPunatrqRy:
 nop
 .text
-.globl b__MA7naqebvq2fcVAF_8uneqjner4taff4I1_06VNTaffRRQ2Ri
+.weak b__MA7naqebvq2fcVAF_8uneqjner4taff4I1_06VNTaffRRQ2Ri
 .type b__MA7naqebvq2fcVAF_8uneqjner4taff4I1_06VNTaffRRQ2Ri,%function
 b__MA7naqebvq2fcVAF_8uneqjner4taff4I1_06VNTaffRRQ2Ri:
 nop
@@ -1270,17 +1270,17 @@
 b__MA7naqebvq6freire14OebnqpnfgEnqvb7ertvbaf10zncErtvbafREXAF_8uneqjner8uvqy_irpVAF3_14oebnqpnfgenqvb4I1_010OnaqPbasvtRRR:
 nop
 .text
-.globl b__MAFg3__110__shapgvba6__shapVMA7naqebvq12znxr_wninersVC10_wvagNeenlRRAF_10havdhr_cgeVAF_14erzbir_cbvagreVG_R4glcrRAF_8shapgvbaVSiF8_RRRRRC7_WAVRaiF8_RHyF5_R_AF_9nyybpngbeVFU_RRSiF5_RRpyRBF5_
+.weak b__MAFg3__110__shapgvba6__shapVMA7naqebvq12znxr_wninersVC10_wvagNeenlRRAF_10havdhr_cgeVAF_14erzbir_cbvagreVG_R4glcrRAF_8shapgvbaVSiF8_RRRRRC7_WAVRaiF8_RHyF5_R_AF_9nyybpngbeVFU_RRSiF5_RRpyRBF5_
 .type b__MAFg3__110__shapgvba6__shapVMA7naqebvq12znxr_wninersVC10_wvagNeenlRRAF_10havdhr_cgeVAF_14erzbir_cbvagreVG_R4glcrRAF_8shapgvbaVSiF8_RRRRRC7_WAVRaiF8_RHyF5_R_AF_9nyybpngbeVFU_RRSiF5_RRpyRBF5_,%function
 b__MAFg3__110__shapgvba6__shapVMA7naqebvq12znxr_wninersVC10_wvagNeenlRRAF_10havdhr_cgeVAF_14erzbir_cbvagreVG_R4glcrRAF_8shapgvbaVSiF8_RRRRRC7_WAVRaiF8_RHyF5_R_AF_9nyybpngbeVFU_RRSiF5_RRpyRBF5_:
 nop
 .text
-.globl b__MA7naqebvq2fcVAF_8uneqjner4taff4I2_018VTaffPbasvthengvbaRRQ2Ri
+.weak b__MA7naqebvq2fcVAF_8uneqjner4taff4I2_018VTaffPbasvthengvbaRRQ2Ri
 .type b__MA7naqebvq2fcVAF_8uneqjner4taff4I2_018VTaffPbasvthengvbaRRQ2Ri,%function
 b__MA7naqebvq2fcVAF_8uneqjner4taff4I2_018VTaffPbasvthengvbaRRQ2Ri:
 nop
 .data
-.globl b__MGIA7naqebvq8XrlRiragR
+.weak b__MGIA7naqebvq8XrlRiragR
 .type b__MGIA7naqebvq8XrlRiragR,%object
 b__MGIA7naqebvq8XrlRiragR:
 .space __SIZEOF_POINTER__
@@ -1310,12 +1310,12 @@
 b__MGIA7naqebvq11WGiVachgUny13AbgvslUnaqyreR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq8uneqjner8gbFgevatVAF0_14oebnqpnfgenqvb4I1_114IraqbeXrlInyhrRRRAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRREXAF0_8uvqy_irpVG_RR
+.weak b__MA7naqebvq8uneqjner8gbFgevatVAF0_14oebnqpnfgenqvb4I1_114IraqbeXrlInyhrRRRAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRREXAF0_8uvqy_irpVG_RR
 .type b__MA7naqebvq8uneqjner8gbFgevatVAF0_14oebnqpnfgenqvb4I1_114IraqbeXrlInyhrRRRAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRREXAF0_8uvqy_irpVG_RR,%function
 b__MA7naqebvq8uneqjner8gbFgevatVAF0_14oebnqpnfgenqvb4I1_114IraqbeXrlInyhrRRRAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRREXAF0_8uvqy_irpVG_RR:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_11XrlrqIrpgbeVvAF_11WGiVachgUny10PbaarpgvbaRRRRRR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_11XrlrqIrpgbeVvAF_11WGiVachgUny10PbaarpgvbaRRRRRR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_11XrlrqIrpgbeVvAF_11WGiVachgUny10PbaarpgvbaRRRRRR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_11XrlrqIrpgbeVvAF_11WGiVachgUny10PbaarpgvbaRRRRRR15qb_zbir_sbejneqRCiCXiz:
 nop
@@ -1330,7 +1330,7 @@
 b__MA7naqebvq18AngvirVachgZnantre28trgGbhpuNssvarGenafsbezngvbaRC7_WAVRaiC12_wsybngNeenl:
 nop
 .text
-.globl b__MA7naqebvq2fcVAF_8uneqjner4taff4I1_015VTaffTrbsrapvatRRQ2Ri
+.weak b__MA7naqebvq2fcVAF_8uneqjner4taff4I1_015VTaffTrbsrapvatRRQ2Ri
 .type b__MA7naqebvq2fcVAF_8uneqjner4taff4I1_015VTaffTrbsrapvatRRQ2Ri,%function
 b__MA7naqebvq2fcVAF_8uneqjner4taff4I1_015VTaffTrbsrapvatRRQ2Ri:
 nop
@@ -1360,12 +1360,12 @@
 b_taffOngpuvatVsnpr_I2_0:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__114__fcyvg_ohssreVCAF_8shapgvbaVSiC7_WAVRaiRRRAF_9nyybpngbeVF6_RRR10chfu_sebagRBF6_
+.weak b__MAFg3__114__fcyvg_ohssreVCAF_8shapgvbaVSiC7_WAVRaiRRRAF_9nyybpngbeVF6_RRR10chfu_sebagRBF6_
 .type b__MAFg3__114__fcyvg_ohssreVCAF_8shapgvbaVSiC7_WAVRaiRRRAF_9nyybpngbeVF6_RRR10chfu_sebagRBF6_,%function
 b__MAFg3__114__fcyvg_ohssreVCAF_8shapgvbaVSiC7_WAVRaiRRRAF_9nyybpngbeVF6_RRR10chfu_sebagRBF6_:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner8gbFgevatVAF0_14oebnqpnfgenqvb4I1_117CebtenzVqragvsvreRRRAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRREXAF0_8uvqy_irpVG_RR
+.weak b__MA7naqebvq8uneqjner8gbFgevatVAF0_14oebnqpnfgenqvb4I1_117CebtenzVqragvsvreRRRAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRREXAF0_8uvqy_irpVG_RR
 .type b__MA7naqebvq8uneqjner8gbFgevatVAF0_14oebnqpnfgenqvb4I1_117CebtenzVqragvsvreRRRAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRREXAF0_8uvqy_irpVG_RR,%function
 b__MA7naqebvq8uneqjner8gbFgevatVAF0_14oebnqpnfgenqvb4I1_117CebtenzVqragvsvreRRRAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRREXAF0_8uvqy_irpVG_RR:
 nop
@@ -1380,22 +1380,22 @@
 b__MGIA7naqebvq30ZrnfherzragPbeerpgvbafPnyyonpxR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_11XrlrqIrpgbeVvAF_11WGiVachgUny10PbaarpgvbaRRRRRR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_11XrlrqIrpgbeVvAF_11WGiVachgUny10PbaarpgvbaRRRRRR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_11XrlrqIrpgbeVvAF_11WGiVachgUny10PbaarpgvbaRRRRRR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_11XrlrqIrpgbeVvAF_11WGiVachgUny10PbaarpgvbaRRRRRR16qb_zbir_onpxjneqRCiCXiz:
 nop
 .text
-.globl b__MAFg3__110__shapgvba6__shapVCSAF_10havdhr_cgeV8_wbowrpgAF_8shapgvbaVSiCF3_RRRRRC7_WAVRaiEXA7naqebvq8uneqjner14oebnqpnfgenqvb4I1_117CebtenzVqragvsvreRRAF_9nyybpngbeVFW_RRFV_R18qrfgebl_qrnyybpngrRi
+.weak b__MAFg3__110__shapgvba6__shapVCSAF_10havdhr_cgeV8_wbowrpgAF_8shapgvbaVSiCF3_RRRRRC7_WAVRaiEXA7naqebvq8uneqjner14oebnqpnfgenqvb4I1_117CebtenzVqragvsvreRRAF_9nyybpngbeVFW_RRFV_R18qrfgebl_qrnyybpngrRi
 .type b__MAFg3__110__shapgvba6__shapVCSAF_10havdhr_cgeV8_wbowrpgAF_8shapgvbaVSiCF3_RRRRRC7_WAVRaiEXA7naqebvq8uneqjner14oebnqpnfgenqvb4I1_117CebtenzVqragvsvreRRAF_9nyybpngbeVFW_RRFV_R18qrfgebl_qrnyybpngrRi,%function
 b__MAFg3__110__shapgvba6__shapVCSAF_10havdhr_cgeV8_wbowrpgAF_8shapgvbaVSiCF3_RRRRRC7_WAVRaiEXA7naqebvq8uneqjner14oebnqpnfgenqvb4I1_117CebtenzVqragvsvreRRAF_9nyybpngbeVFW_RRFV_R18qrfgebl_qrnyybpngrRi:
 nop
 .text
-.globl b__MAFg3__110__shapgvba6__shapVCSAF_10havdhr_cgeV8_wbowrpgAF_8shapgvbaVSiCF3_RRRRRC7_WAVRaiEXA7naqebvq8uneqjner14oebnqpnfgenqvb4I1_117CebtenzVqragvsvreRRAF_9nyybpngbeVFW_RRFV_RpyRBFN_FU_
+.weak b__MAFg3__110__shapgvba6__shapVCSAF_10havdhr_cgeV8_wbowrpgAF_8shapgvbaVSiCF3_RRRRRC7_WAVRaiEXA7naqebvq8uneqjner14oebnqpnfgenqvb4I1_117CebtenzVqragvsvreRRAF_9nyybpngbeVFW_RRFV_RpyRBFN_FU_
 .type b__MAFg3__110__shapgvba6__shapVCSAF_10havdhr_cgeV8_wbowrpgAF_8shapgvbaVSiCF3_RRRRRC7_WAVRaiEXA7naqebvq8uneqjner14oebnqpnfgenqvb4I1_117CebtenzVqragvsvreRRAF_9nyybpngbeVFW_RRFV_RpyRBFN_FU_,%function
 b__MAFg3__110__shapgvba6__shapVCSAF_10havdhr_cgeV8_wbowrpgAF_8shapgvbaVSiCF3_RRRRRC7_WAVRaiEXA7naqebvq8uneqjner14oebnqpnfgenqvb4I1_117CebtenzVqragvsvreRRAF_9nyybpngbeVFW_RRFV_RpyRBFN_FU_:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRRRAF_22__habeqrerq_znc_unfureVwF8_AF_4unfuVwRRYo1RRRAF_21__habeqrerq_znc_rdhnyVwF8_AF_8rdhny_gbVwRRYo1RRRAF5_VF8_RRR6erunfuRz
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRRRAF_22__habeqrerq_znc_unfureVwF8_AF_4unfuVwRRYo1RRRAF_21__habeqrerq_znc_rdhnyVwF8_AF_8rdhny_gbVwRRYo1RRRAF5_VF8_RRR6erunfuRz
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRRRAF_22__habeqrerq_znc_unfureVwF8_AF_4unfuVwRRYo1RRRAF_21__habeqrerq_znc_rdhnyVwF8_AF_8rdhny_gbVwRRYo1RRRAF5_VF8_RRR6erunfuRz,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRRRAF_22__habeqrerq_znc_unfureVwF8_AF_4unfuVwRRYo1RRRAF_21__habeqrerq_znc_rdhnyVwF8_AF_8rdhny_gbVwRRYo1RRRAF5_VF8_RRR6erunfuRz:
 nop
@@ -1420,12 +1420,12 @@
 b_taffPbeerpgvbafVsnpr:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIAFg3__110__shapgvba6__shapVMA7naqebvq12znxr_wninersVC8_wbowrpgRRAF_10havdhr_cgeVAF_14erzbir_cbvagreVG_R4glcrRAF_8shapgvbaVSiF8_RRRRRC7_WAVRaiF8_RHyF5_R_AF_9nyybpngbeVFU_RRSiF5_RRR
+.weak b__MGIAFg3__110__shapgvba6__shapVMA7naqebvq12znxr_wninersVC8_wbowrpgRRAF_10havdhr_cgeVAF_14erzbir_cbvagreVG_R4glcrRAF_8shapgvbaVSiF8_RRRRRC7_WAVRaiF8_RHyF5_R_AF_9nyybpngbeVFU_RRSiF5_RRR
 .type b__MGIAFg3__110__shapgvba6__shapVMA7naqebvq12znxr_wninersVC8_wbowrpgRRAF_10havdhr_cgeVAF_14erzbir_cbvagreVG_R4glcrRAF_8shapgvbaVSiF8_RRRRRC7_WAVRaiF8_RHyF5_R_AF_9nyybpngbeVFU_RRSiF5_RRR,%object
 b__MGIAFg3__110__shapgvba6__shapVMA7naqebvq12znxr_wninersVC8_wbowrpgRRAF_10havdhr_cgeVAF_14erzbir_cbvagreVG_R4glcrRAF_8shapgvbaVSiF8_RRRRRC7_WAVRaiF8_RHyF5_R_AF_9nyybpngbeVFU_RRSiF5_RRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq6freire14OebnqpnfgEnqvb7ertvbaf18ErtvbanyOnaqPbasvtRAF_9nyybpngbeVF5_RRR12__zbir_enatrRCF5_F9_F9_
+.weak b__MAFg3__16irpgbeVA7naqebvq6freire14OebnqpnfgEnqvb7ertvbaf18ErtvbanyOnaqPbasvtRAF_9nyybpngbeVF5_RRR12__zbir_enatrRCF5_F9_F9_
 .type b__MAFg3__16irpgbeVA7naqebvq6freire14OebnqpnfgEnqvb7ertvbaf18ErtvbanyOnaqPbasvtRAF_9nyybpngbeVF5_RRR12__zbir_enatrRCF5_F9_F9_,%function
 b__MAFg3__16irpgbeVA7naqebvq6freire14OebnqpnfgEnqvb7ertvbaf18ErtvbanyOnaqPbasvtRAF_9nyybpngbeVF5_RRR12__zbir_enatrRCF5_F9_F9_:
 nop
@@ -1450,7 +1450,7 @@
 b__MA7naqebvq18AngvirVachgZnantre15frgVachgJvaqbjfRC7_WAVRaiC13_wbowrpgNeenlv:
 nop
 .text
-.globl b__MA7naqebvq12TaffPnyyonpx18taffYbpngvbaPoVzcyVAF_8uneqjner4taff4I1_012TaffYbpngvbaRRRAF2_6ErgheaViRREXG_
+.weak b__MA7naqebvq12TaffPnyyonpx18taffYbpngvbaPoVzcyVAF_8uneqjner4taff4I1_012TaffYbpngvbaRRRAF2_6ErgheaViRREXG_
 .type b__MA7naqebvq12TaffPnyyonpx18taffYbpngvbaPoVzcyVAF_8uneqjner4taff4I1_012TaffYbpngvbaRRRAF2_6ErgheaViRREXG_,%function
 b__MA7naqebvq12TaffPnyyonpx18taffYbpngvbaPoVzcyVAF_8uneqjner4taff4I1_012TaffYbpngvbaRRRAF2_6ErgheaViRREXG_:
 nop
@@ -1465,12 +1465,12 @@
 b_ntaffEvyVsnpr:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__110__shapgvba6__shapVMA7naqebvq12znxr_wninersVC11_wolgrNeenlRRAF_10havdhr_cgeVAF_14erzbir_cbvagreVG_R4glcrRAF_8shapgvbaVSiF8_RRRRRC7_WAVRaiF8_RHyF5_R_AF_9nyybpngbeVFU_RRSiF5_RR7qrfgeblRi
+.weak b__MAFg3__110__shapgvba6__shapVMA7naqebvq12znxr_wninersVC11_wolgrNeenlRRAF_10havdhr_cgeVAF_14erzbir_cbvagreVG_R4glcrRAF_8shapgvbaVSiF8_RRRRRC7_WAVRaiF8_RHyF5_R_AF_9nyybpngbeVFU_RRSiF5_RR7qrfgeblRi
 .type b__MAFg3__110__shapgvba6__shapVMA7naqebvq12znxr_wninersVC11_wolgrNeenlRRAF_10havdhr_cgeVAF_14erzbir_cbvagreVG_R4glcrRAF_8shapgvbaVSiF8_RRRRRC7_WAVRaiF8_RHyF5_R_AF_9nyybpngbeVFU_RRSiF5_RR7qrfgeblRi,%function
 b__MAFg3__110__shapgvba6__shapVMA7naqebvq12znxr_wninersVC11_wolgrNeenlRRAF_10havdhr_cgeVAF_14erzbir_cbvagreVG_R4glcrRAF_8shapgvbaVSiF8_RRRRRC7_WAVRaiF8_RHyF5_R_AF_9nyybpngbeVFU_RRSiF5_RR7qrfgeblRi:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner8gbFgevatVzRRAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRREXAF0_8uvqy_irpVG_RR
+.weak b__MA7naqebvq8uneqjner8gbFgevatVzRRAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRREXAF0_8uvqy_irpVG_RR
 .type b__MA7naqebvq8uneqjner8gbFgevatVzRRAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRREXAF0_8uvqy_irpVG_RR,%function
 b__MA7naqebvq8uneqjner8gbFgevatVzRRAFg3__112onfvp_fgevatVpAF2_11pune_genvgfVpRRAF2_9nyybpngbeVpRRRREXAF0_8uvqy_irpVG_RR:
 nop
@@ -1480,7 +1480,7 @@
 b__MGi0_a24_A7naqebvq18AngvirVachgZnantreQ1Ri:
 nop
 .text
-.globl b__MA7naqebvq24TaffOngpuvatPnyyonpxHgvy23taffYbpngvbaOngpuPoVzcyVAF_8uneqjner4taff4I1_012TaffYbpngvbaRRRAF2_6ErgheaViRREXAF2_8uvqy_irpVG_RR
+.weak b__MA7naqebvq24TaffOngpuvatPnyyonpxHgvy23taffYbpngvbaOngpuPoVzcyVAF_8uneqjner4taff4I1_012TaffYbpngvbaRRRAF2_6ErgheaViRREXAF2_8uvqy_irpVG_RR
 .type b__MA7naqebvq24TaffOngpuvatPnyyonpxHgvy23taffYbpngvbaOngpuPoVzcyVAF_8uneqjner4taff4I1_012TaffYbpngvbaRRRAF2_6ErgheaViRREXAF2_8uvqy_irpVG_RR,%function
 b__MA7naqebvq24TaffOngpuvatPnyyonpxHgvy23taffYbpngvbaOngpuPoVzcyVAF_8uneqjner4taff4I1_012TaffYbpngvbaRRRAF2_6ErgheaViRREXAF2_8uvqy_irpVG_RR:
 nop
@@ -1490,7 +1490,7 @@
 b_taffQrohtVsnpr_I2_0:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwAF_13habeqrerq_zncVwAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_4unfuVwRRAF_8rdhny_gbVwRRAF6_VAF_4cnveVXwF8_RRRRRRRRAF_22__habeqrerq_znc_unfureVwFV_FN_Yo1RRRAF_21__habeqrerq_znc_rdhnyVwFV_FP_Yo1RRRAF6_VFV_RRR5pyrneRi
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwAF_13habeqrerq_zncVwAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_4unfuVwRRAF_8rdhny_gbVwRRAF6_VAF_4cnveVXwF8_RRRRRRRRAF_22__habeqrerq_znc_unfureVwFV_FN_Yo1RRRAF_21__habeqrerq_znc_rdhnyVwFV_FP_Yo1RRRAF6_VFV_RRR5pyrneRi
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwAF_13habeqrerq_zncVwAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_4unfuVwRRAF_8rdhny_gbVwRRAF6_VAF_4cnveVXwF8_RRRRRRRRAF_22__habeqrerq_znc_unfureVwFV_FN_Yo1RRRAF_21__habeqrerq_znc_rdhnyVwFV_FP_Yo1RRRAF6_VFV_RRR5pyrneRi,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwAF_13habeqrerq_zncVwAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_4unfuVwRRAF_8rdhny_gbVwRRAF6_VAF_4cnveVXwF8_RRRRRRRRAF_22__habeqrerq_znc_unfureVwFV_FN_Yo1RRRAF_21__habeqrerq_znc_rdhnyVwFV_FP_Yo1RRRAF6_VFV_RRR5pyrneRi:
 nop
@@ -1505,7 +1505,7 @@
 b__MGIA7naqebvq16TaffKgenPnyyonpxR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAXFg3__110__shapgvba6__shapVMA7naqebvq12znxr_wninersVC11_wolgrNeenlRRAF_10havdhr_cgeVAF_14erzbir_cbvagreVG_R4glcrRAF_8shapgvbaVSiF8_RRRRRC7_WAVRaiF8_RHyF5_R_AF_9nyybpngbeVFU_RRSiF5_RR7__pybarRi
+.weak b__MAXFg3__110__shapgvba6__shapVMA7naqebvq12znxr_wninersVC11_wolgrNeenlRRAF_10havdhr_cgeVAF_14erzbir_cbvagreVG_R4glcrRAF_8shapgvbaVSiF8_RRRRRC7_WAVRaiF8_RHyF5_R_AF_9nyybpngbeVFU_RRSiF5_RR7__pybarRi
 .type b__MAXFg3__110__shapgvba6__shapVMA7naqebvq12znxr_wninersVC11_wolgrNeenlRRAF_10havdhr_cgeVAF_14erzbir_cbvagreVG_R4glcrRAF_8shapgvbaVSiF8_RRRRRC7_WAVRaiF8_RHyF5_R_AF_9nyybpngbeVFU_RRSiF5_RR7__pybarRi,%function
 b__MAXFg3__110__shapgvba6__shapVMA7naqebvq12znxr_wninersVC11_wolgrNeenlRRAF_10havdhr_cgeVAF_14erzbir_cbvagreVG_R4glcrRAF_8shapgvbaVSiF8_RRRRRC7_WAVRaiF8_RHyF5_R_AF_9nyybpngbeVFU_RRSiF5_RR7__pybarRi:
 nop
@@ -1515,12 +1515,12 @@
 b__MGIA7naqebvq6freire14OebnqpnfgEnqvb5Ghare17UnyQrnguErpvcvragR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq23TaffZrnfherzragPnyyonpx28genafyngrNyyTaffZrnfherzragfVAF_8uneqjner4taff4I1_124VTaffZrnfherzragPnyyonpx15TaffZrnfherzragRRRC13_wbowrpgNeenlC7_WAVRaiCXG_z
+.weak b__MA7naqebvq23TaffZrnfherzragPnyyonpx28genafyngrNyyTaffZrnfherzragfVAF_8uneqjner4taff4I1_124VTaffZrnfherzragPnyyonpx15TaffZrnfherzragRRRC13_wbowrpgNeenlC7_WAVRaiCXG_z
 .type b__MA7naqebvq23TaffZrnfherzragPnyyonpx28genafyngrNyyTaffZrnfherzragfVAF_8uneqjner4taff4I1_124VTaffZrnfherzragPnyyonpx15TaffZrnfherzragRRRC13_wbowrpgNeenlC7_WAVRaiCXG_z,%function
 b__MA7naqebvq23TaffZrnfherzragPnyyonpx28genafyngrNyyTaffZrnfherzragfVAF_8uneqjner4taff4I1_124VTaffZrnfherzragPnyyonpx15TaffZrnfherzragRRRC13_wbowrpgNeenlC7_WAVRaiCXG_z:
 nop
 .text
-.globl b__MA7naqebvq2fcVAF_6flfgrz7fhfcraq4I1_014VFlfgrzFhfcraqRRQ2Ri
+.weak b__MA7naqebvq2fcVAF_6flfgrz7fhfcraq4I1_014VFlfgrzFhfcraqRRQ2Ri
 .type b__MA7naqebvq2fcVAF_6flfgrz7fhfcraq4I1_014VFlfgrzFhfcraqRRQ2Ri,%function
 b__MA7naqebvq2fcVAF_6flfgrz7fhfcraq4I1_014VFlfgrzFhfcraqRRQ2Ri:
 nop
@@ -1530,12 +1530,12 @@
 b__MA7naqebvq6freire14OebnqpnfgEnqvb7pbaireg19__GuebjVsSnvyrqUvqyRC7_WAVRaiEXAF_8uneqjner7qrgnvyf13erghea_fgnghfR:
 nop
 .data
-.globl b__MGIAFg3__110__shapgvba6__shapVCSAF_10havdhr_cgeV8_wbowrpgAF_8shapgvbaVSiCF3_RRRRRC7_WAVRaiEXA7naqebvq8uneqjner14oebnqpnfgenqvb4I1_117CebtenzVqragvsvreRRAF_9nyybpngbeVFW_RRFV_RR
+.weak b__MGIAFg3__110__shapgvba6__shapVCSAF_10havdhr_cgeV8_wbowrpgAF_8shapgvbaVSiCF3_RRRRRC7_WAVRaiEXA7naqebvq8uneqjner14oebnqpnfgenqvb4I1_117CebtenzVqragvsvreRRAF_9nyybpngbeVFW_RRFV_RR
 .type b__MGIAFg3__110__shapgvba6__shapVCSAF_10havdhr_cgeV8_wbowrpgAF_8shapgvbaVSiCF3_RRRRRC7_WAVRaiEXA7naqebvq8uneqjner14oebnqpnfgenqvb4I1_117CebtenzVqragvsvreRRAF_9nyybpngbeVFW_RRFV_RR,%object
 b__MGIAFg3__110__shapgvba6__shapVCSAF_10havdhr_cgeV8_wbowrpgAF_8shapgvbaVSiCF3_RRRRRC7_WAVRaiEXA7naqebvq8uneqjner14oebnqpnfgenqvb4I1_117CebtenzVqragvsvreRRAF_9nyybpngbeVFW_RRFV_RR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq2fcVAF_8uneqjner7gurezny4I1_08VGureznyRRQ2Ri
+.weak b__MA7naqebvq2fcVAF_8uneqjner7gurezny4I1_08VGureznyRRQ2Ri
 .type b__MA7naqebvq2fcVAF_8uneqjner7gurezny4I1_08VGureznyRRQ2Ri,%function
 b__MA7naqebvq2fcVAF_8uneqjner7gurezny4I1_08VGureznyRRQ2Ri:
 nop
@@ -1545,7 +1545,7 @@
 b__MA7naqebvq18AngvirVachgZnantre16cbxrHfreNpgvivglRyv:
 nop
 .data
-.globl b__MGIAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
+.weak b__MGIAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
 .type b__MGIAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR,%object
 b__MGIAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR:
 .space __SIZEOF_POINTER__
@@ -1560,7 +1560,7 @@
 b__MA7naqebvq11WGiVachgUnyP1RC7_WAVRaiC8_wbowrpgAF_2fcVAF_8uneqjner2gi5vachg4I1_08VGiVachgRRREXAF5_VAF_6YbbcreRRR:
 nop
 .text
-.globl b__MAXFg3__110__shapgvba6__shapVCSiC7_WAVRaiC8_wbowrpgRAF_9nyybpngbeVF7_RRF6_R7__pybarRi
+.weak b__MAXFg3__110__shapgvba6__shapVCSiC7_WAVRaiC8_wbowrpgRAF_9nyybpngbeVF7_RRF6_R7__pybarRi
 .type b__MAXFg3__110__shapgvba6__shapVCSiC7_WAVRaiC8_wbowrpgRAF_9nyybpngbeVF7_RRF6_R7__pybarRi,%function
 b__MAXFg3__110__shapgvba6__shapVCSiC7_WAVRaiC8_wbowrpgRAF_9nyybpngbeVF7_RRF6_R7__pybarRi:
 nop
@@ -1585,7 +1585,7 @@
 b__MGPA7naqebvq11WGiVachgUny13AbgvslUnaqyreR0_AF_14ZrffntrUnaqyreR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAXFg3__110__shapgvba6__shapVMA7naqebvq12znxr_wninersVC13_wbowrpgNeenlRRAF_10havdhr_cgeVAF_14erzbir_cbvagreVG_R4glcrRAF_8shapgvbaVSiF8_RRRRRC7_WAVRaiF8_RHyF5_R_AF_9nyybpngbeVFU_RRSiF5_RR7__pybarRCAF0_6__onfrVFX_RR
+.weak b__MAXFg3__110__shapgvba6__shapVMA7naqebvq12znxr_wninersVC13_wbowrpgNeenlRRAF_10havdhr_cgeVAF_14erzbir_cbvagreVG_R4glcrRAF_8shapgvbaVSiF8_RRRRRC7_WAVRaiF8_RHyF5_R_AF_9nyybpngbeVFU_RRSiF5_RR7__pybarRCAF0_6__onfrVFX_RR
 .type b__MAXFg3__110__shapgvba6__shapVMA7naqebvq12znxr_wninersVC13_wbowrpgNeenlRRAF_10havdhr_cgeVAF_14erzbir_cbvagreVG_R4glcrRAF_8shapgvbaVSiF8_RRRRRC7_WAVRaiF8_RHyF5_R_AF_9nyybpngbeVFU_RRSiF5_RR7__pybarRCAF0_6__onfrVFX_RR,%function
 b__MAXFg3__110__shapgvba6__shapVMA7naqebvq12znxr_wninersVC13_wbowrpgNeenlRRAF_10havdhr_cgeVAF_14erzbir_cbvagreVG_R4glcrRAF_8shapgvbaVSiF8_RRRRRC7_WAVRaiF8_RHyF5_R_AF_9nyybpngbeVFU_RRSiF5_RR7__pybarRCAF0_6__onfrVFX_RR:
 nop
@@ -1595,17 +1595,17 @@
 b__MA7naqebvq18NTaffPnyyonpx_I1_013pbairegGbVcI4Rw:
 nop
 .text
-.globl b__MA7naqebvq2fcVAF_8uneqjner4taff23zrnfherzrag_pbeerpgvbaf4I1_023VZrnfherzragPbeerpgvbafRRQ2Ri
+.weak b__MA7naqebvq2fcVAF_8uneqjner4taff23zrnfherzrag_pbeerpgvbaf4I1_023VZrnfherzragPbeerpgvbafRRQ2Ri
 .type b__MA7naqebvq2fcVAF_8uneqjner4taff23zrnfherzrag_pbeerpgvbaf4I1_023VZrnfherzragPbeerpgvbafRRQ2Ri,%function
 b__MA7naqebvq2fcVAF_8uneqjner4taff23zrnfherzrag_pbeerpgvbaf4I1_023VZrnfherzragPbeerpgvbafRRQ2Ri:
 nop
 .text
-.globl b__MAXFg3__110__shapgvba6__shapVMA7naqebvq12znxr_wninersVC8_wbowrpgRRAF_10havdhr_cgeVAF_14erzbir_cbvagreVG_R4glcrRAF_8shapgvbaVSiF8_RRRRRC7_WAVRaiF8_RHyF5_R_AF_9nyybpngbeVFU_RRSiF5_RR7__pybarRi
+.weak b__MAXFg3__110__shapgvba6__shapVMA7naqebvq12znxr_wninersVC8_wbowrpgRRAF_10havdhr_cgeVAF_14erzbir_cbvagreVG_R4glcrRAF_8shapgvbaVSiF8_RRRRRC7_WAVRaiF8_RHyF5_R_AF_9nyybpngbeVFU_RRSiF5_RR7__pybarRi
 .type b__MAXFg3__110__shapgvba6__shapVMA7naqebvq12znxr_wninersVC8_wbowrpgRRAF_10havdhr_cgeVAF_14erzbir_cbvagreVG_R4glcrRAF_8shapgvbaVSiF8_RRRRRC7_WAVRaiF8_RHyF5_R_AF_9nyybpngbeVFU_RRSiF5_RR7__pybarRi,%function
 b__MAXFg3__110__shapgvba6__shapVMA7naqebvq12znxr_wninersVC8_wbowrpgRRAF_10havdhr_cgeVAF_14erzbir_cbvagreVG_R4glcrRAF_8shapgvbaVSiF8_RRRRRC7_WAVRaiF8_RHyF5_R_AF_9nyybpngbeVFU_RRSiF5_RR7__pybarRi:
 nop
 .text
-.globl b__MAFg3__18shapgvbaVSiC7_WAVRaiC8_wbowrpgRRQ2Ri
+.weak b__MAFg3__18shapgvbaVSiC7_WAVRaiC8_wbowrpgRRQ2Ri
 .type b__MAFg3__18shapgvbaVSiC7_WAVRaiC8_wbowrpgRRQ2Ri,%function
 b__MAFg3__18shapgvbaVSiC7_WAVRaiC8_wbowrpgRRQ2Ri:
 nop
@@ -1630,7 +1630,7 @@
 b__MA7naqebvq20AngvirPnyyonpxGuernqP2RC7_WninIZ:
 nop
 .text
-.globl b__MAFg3__110__shapgvba6__shapVMA7naqebvq12znxr_wninersVC11_wolgrNeenlRRAF_10havdhr_cgeVAF_14erzbir_cbvagreVG_R4glcrRAF_8shapgvbaVSiF8_RRRRRC7_WAVRaiF8_RHyF5_R_AF_9nyybpngbeVFU_RRSiF5_RRpyRBF5_
+.weak b__MAFg3__110__shapgvba6__shapVMA7naqebvq12znxr_wninersVC11_wolgrNeenlRRAF_10havdhr_cgeVAF_14erzbir_cbvagreVG_R4glcrRAF_8shapgvbaVSiF8_RRRRRC7_WAVRaiF8_RHyF5_R_AF_9nyybpngbeVFU_RRSiF5_RRpyRBF5_
 .type b__MAFg3__110__shapgvba6__shapVMA7naqebvq12znxr_wninersVC11_wolgrNeenlRRAF_10havdhr_cgeVAF_14erzbir_cbvagreVG_R4glcrRAF_8shapgvbaVSiF8_RRRRRC7_WAVRaiF8_RHyF5_R_AF_9nyybpngbeVFU_RRSiF5_RRpyRBF5_,%function
 b__MAFg3__110__shapgvba6__shapVMA7naqebvq12znxr_wninersVC11_wolgrNeenlRRAF_10havdhr_cgeVAF_14erzbir_cbvagreVG_R4glcrRAF_8shapgvbaVSiF8_RRRRRC7_WAVRaiF8_RHyF5_R_AF_9nyybpngbeVFU_RRSiF5_RRpyRBF5_:
 nop
@@ -1655,7 +1655,7 @@
 b__MA7naqebvq47ertvfgre_naqebvq_freire_arg_ArgjbexFgngfFreivprRC7_WAVRai:
 nop
 .text
-.globl b__MAFg3__110__shapgvba6__shapVCSAF_10havdhr_cgeV8_wbowrpgAF_8shapgvbaVSiCF3_RRRRRC7_WAVRaiEXA7naqebvq6freire14OebnqpnfgEnqvb7ertvbaf18ErtvbanyOnaqPbasvtRRAF_9nyybpngbeVFW_RRFV_R18qrfgebl_qrnyybpngrRi
+.weak b__MAFg3__110__shapgvba6__shapVCSAF_10havdhr_cgeV8_wbowrpgAF_8shapgvbaVSiCF3_RRRRRC7_WAVRaiEXA7naqebvq6freire14OebnqpnfgEnqvb7ertvbaf18ErtvbanyOnaqPbasvtRRAF_9nyybpngbeVFW_RRFV_R18qrfgebl_qrnyybpngrRi
 .type b__MAFg3__110__shapgvba6__shapVCSAF_10havdhr_cgeV8_wbowrpgAF_8shapgvbaVSiCF3_RRRRRC7_WAVRaiEXA7naqebvq6freire14OebnqpnfgEnqvb7ertvbaf18ErtvbanyOnaqPbasvtRRAF_9nyybpngbeVFW_RRFV_R18qrfgebl_qrnyybpngrRi,%function
 b__MAFg3__110__shapgvba6__shapVCSAF_10havdhr_cgeV8_wbowrpgAF_8shapgvbaVSiCF3_RRRRRC7_WAVRaiEXA7naqebvq6freire14OebnqpnfgEnqvb7ertvbaf18ErtvbanyOnaqPbasvtRRAF_9nyybpngbeVFW_RRFV_R18qrfgebl_qrnyybpngrRi:
 nop
@@ -1685,12 +1685,12 @@
 b__MGPA7naqebvq30ZrnfherzragPbeerpgvbafPnyyonpxR0_AF_4uvqy4onfr4I1_05VOnfrR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__16irpgbeVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF6_RRR21__chfu_onpx_fybj_cnguVF6_RRiBG_
+.weak b__MAFg3__16irpgbeVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF6_RRR21__chfu_onpx_fybj_cnguVF6_RRiBG_
 .type b__MAFg3__16irpgbeVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF6_RRR21__chfu_onpx_fybj_cnguVF6_RRiBG_,%function
 b__MAFg3__16irpgbeVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF4_VF6_RRR21__chfu_onpx_fybj_cnguVF6_RRiBG_:
 nop
 .text
-.globl b__MAFg3__110__shapgvba6__shapVCSiC7_WAVRaiC8_wbowrpgRAF_9nyybpngbeVF7_RRF6_R7qrfgeblRi
+.weak b__MAFg3__110__shapgvba6__shapVCSiC7_WAVRaiC8_wbowrpgRAF_9nyybpngbeVF7_RRF6_R7qrfgeblRi
 .type b__MAFg3__110__shapgvba6__shapVCSiC7_WAVRaiC8_wbowrpgRAF_9nyybpngbeVF7_RRF6_R7qrfgeblRi,%function
 b__MAFg3__110__shapgvba6__shapVCSiC7_WAVRaiC8_wbowrpgRAF_9nyybpngbeVF7_RRF6_R7qrfgeblRi:
 nop
@@ -1720,7 +1720,7 @@
 b_taffTrbsrapvatVsnpr:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq8uneqjner8gbFgevatVAF0_14oebnqpnfgenqvb4I1_08ZrgnQngnRRRAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRREXAF0_8uvqy_irpVG_RR
+.weak b__MA7naqebvq8uneqjner8gbFgevatVAF0_14oebnqpnfgenqvb4I1_08ZrgnQngnRRRAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRREXAF0_8uvqy_irpVG_RR
 .type b__MA7naqebvq8uneqjner8gbFgevatVAF0_14oebnqpnfgenqvb4I1_08ZrgnQngnRRRAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRREXAF0_8uvqy_irpVG_RR,%function
 b__MA7naqebvq8uneqjner8gbFgevatVAF0_14oebnqpnfgenqvb4I1_08ZrgnQngnRRRAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRREXAF0_8uvqy_irpVG_RR:
 nop
@@ -1730,7 +1730,7 @@
 b__MA7naqebvq21cebprffCbjreUnyErgheaREXAF_8uneqjner6ErgheaViRRCXp:
 nop
 .text
-.globl b__MA7naqebvq2fcVAF_8uneqjner4taff4I1_022VTaffAnivtngvbaZrffntrRRQ2Ri
+.weak b__MA7naqebvq2fcVAF_8uneqjner4taff4I1_022VTaffAnivtngvbaZrffntrRRQ2Ri
 .type b__MA7naqebvq2fcVAF_8uneqjner4taff4I1_022VTaffAnivtngvbaZrffntrRRQ2Ri,%function
 b__MA7naqebvq2fcVAF_8uneqjner4taff4I1_022VTaffAnivtngvbaZrffntrRRQ2Ri:
 nop
@@ -1755,17 +1755,17 @@
 b__MA7naqebvq6freire14OebnqpnfgEnqvb5Ghare17trgAngvirPnyyonpxRC7_WAVRaiEXAFg3__110havdhr_cgeV8_wbowrpgAF5_8shapgvbaVSiCF7_RRRRR:
 nop
 .text
-.globl b__MAXFg3__110__shapgvba6__shapVMA7naqebvq12znxr_wninersVC10_wvagNeenlRRAF_10havdhr_cgeVAF_14erzbir_cbvagreVG_R4glcrRAF_8shapgvbaVSiF8_RRRRRC7_WAVRaiF8_RHyF5_R_AF_9nyybpngbeVFU_RRSiF5_RR7__pybarRi
+.weak b__MAXFg3__110__shapgvba6__shapVMA7naqebvq12znxr_wninersVC10_wvagNeenlRRAF_10havdhr_cgeVAF_14erzbir_cbvagreVG_R4glcrRAF_8shapgvbaVSiF8_RRRRRC7_WAVRaiF8_RHyF5_R_AF_9nyybpngbeVFU_RRSiF5_RR7__pybarRi
 .type b__MAXFg3__110__shapgvba6__shapVMA7naqebvq12znxr_wninersVC10_wvagNeenlRRAF_10havdhr_cgeVAF_14erzbir_cbvagreVG_R4glcrRAF_8shapgvbaVSiF8_RRRRRC7_WAVRaiF8_RHyF5_R_AF_9nyybpngbeVFU_RRSiF5_RR7__pybarRi,%function
 b__MAXFg3__110__shapgvba6__shapVMA7naqebvq12znxr_wninersVC10_wvagNeenlRRAF_10havdhr_cgeVAF_14erzbir_cbvagreVG_R4glcrRAF_8shapgvbaVSiF8_RRRRRC7_WAVRaiF8_RHyF5_R_AF_9nyybpngbeVFU_RRSiF5_RR7__pybarRi:
 nop
 .data
-.globl b__MGIAFg3__110__shapgvba6__shapVMA7naqebvq12znxr_wninersVC10_wvagNeenlRRAF_10havdhr_cgeVAF_14erzbir_cbvagreVG_R4glcrRAF_8shapgvbaVSiF8_RRRRRC7_WAVRaiF8_RHyF5_R_AF_9nyybpngbeVFU_RRSiF5_RRR
+.weak b__MGIAFg3__110__shapgvba6__shapVMA7naqebvq12znxr_wninersVC10_wvagNeenlRRAF_10havdhr_cgeVAF_14erzbir_cbvagreVG_R4glcrRAF_8shapgvbaVSiF8_RRRRRC7_WAVRaiF8_RHyF5_R_AF_9nyybpngbeVFU_RRSiF5_RRR
 .type b__MGIAFg3__110__shapgvba6__shapVMA7naqebvq12znxr_wninersVC10_wvagNeenlRRAF_10havdhr_cgeVAF_14erzbir_cbvagreVG_R4glcrRAF_8shapgvbaVSiF8_RRRRRC7_WAVRaiF8_RHyF5_R_AF_9nyybpngbeVFU_RRSiF5_RRR,%object
 b__MGIAFg3__110__shapgvba6__shapVMA7naqebvq12znxr_wninersVC10_wvagNeenlRRAF_10havdhr_cgeVAF_14erzbir_cbvagreVG_R4glcrRAF_8shapgvbaVSiF8_RRRRRC7_WAVRaiF8_RHyF5_R_AF_9nyybpngbeVFU_RRSiF5_RRR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGPA7naqebvq14JnxrhcPnyyonpxR0_AF_11OaVagresnprVAF_6flfgrz7fhfcraq16VFhfcraqPnyyonpxRRR
+.weak b__MGPA7naqebvq14JnxrhcPnyyonpxR0_AF_11OaVagresnprVAF_6flfgrz7fhfcraq16VFhfcraqPnyyonpxRRR
 .type b__MGPA7naqebvq14JnxrhcPnyyonpxR0_AF_11OaVagresnprVAF_6flfgrz7fhfcraq16VFhfcraqPnyyonpxRRR,%object
 b__MGPA7naqebvq14JnxrhcPnyyonpxR0_AF_11OaVagresnprVAF_6flfgrz7fhfcraq16VFhfcraqPnyyonpxRRR:
 .space __SIZEOF_POINTER__
@@ -1795,7 +1795,7 @@
 b__MA7naqebvq60ertvfgre_naqebvq_freire_oebnqpnfgenqvb_OebnqpnfgEnqvbFreivprRC7_WAVRai:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwAF_13habeqrerq_zncVwAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_4unfuVwRRAF_8rdhny_gbVwRRAF6_VAF_4cnveVXwF8_RRRRRRRRAF_22__habeqrerq_znc_unfureVwFV_FN_Yo1RRRAF_21__habeqrerq_znc_rdhnyVwFV_FP_Yo1RRRAF6_VFV_RRR8__erunfuRz
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwAF_13habeqrerq_zncVwAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_4unfuVwRRAF_8rdhny_gbVwRRAF6_VAF_4cnveVXwF8_RRRRRRRRAF_22__habeqrerq_znc_unfureVwFV_FN_Yo1RRRAF_21__habeqrerq_znc_rdhnyVwFV_FP_Yo1RRRAF6_VFV_RRR8__erunfuRz
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwAF_13habeqrerq_zncVwAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_4unfuVwRRAF_8rdhny_gbVwRRAF6_VAF_4cnveVXwF8_RRRRRRRRAF_22__habeqrerq_znc_unfureVwFV_FN_Yo1RRRAF_21__habeqrerq_znc_rdhnyVwFV_FP_Yo1RRRAF6_VFV_RRR8__erunfuRz,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwAF_13habeqrerq_zncVwAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRAF_4unfuVwRRAF_8rdhny_gbVwRRAF6_VAF_4cnveVXwF8_RRRRRRRRAF_22__habeqrerq_znc_unfureVwFV_FN_Yo1RRRAF_21__habeqrerq_znc_rdhnyVwFV_FP_Yo1RRRAF6_VFV_RRR8__erunfuRz:
 nop
@@ -1815,7 +1815,7 @@
 b__MA7naqebvq18AngvirVachgZnantre19frgQvfcynlIvrjcbegfRC7_WAVRaiC13_wbowrpgNeenl:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq10FcevgrVpbaRAF_9nyybpngbeVF2_RRR7erfreirRz
+.weak b__MAFg3__16irpgbeVA7naqebvq10FcevgrVpbaRAF_9nyybpngbeVF2_RRR7erfreirRz
 .type b__MAFg3__16irpgbeVA7naqebvq10FcevgrVpbaRAF_9nyybpngbeVF2_RRR7erfreirRz,%function
 b__MAFg3__16irpgbeVA7naqebvq10FcevgrVpbaRAF_9nyybpngbeVF2_RRR7erfreirRz:
 nop
@@ -1850,7 +1850,7 @@
 b__MA7naqebvq18AngvirVachgZnantre24trgXrlobneqYnlbhgBireynlREXAF_21VachgQrivprVqragvsvreR:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq15QvfcynlIvrjcbegRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVEXF2_RRiBG_
+.weak b__MAFg3__16irpgbeVA7naqebvq15QvfcynlIvrjcbegRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVEXF2_RRiBG_
 .type b__MAFg3__16irpgbeVA7naqebvq15QvfcynlIvrjcbegRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVEXF2_RRiBG_,%function
 b__MAFg3__16irpgbeVA7naqebvq15QvfcynlIvrjcbegRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVEXF2_RRiBG_:
 nop
@@ -1860,7 +1860,7 @@
 b__MGi0_a24_A7naqebvq6freire14OebnqpnfgEnqvb13GharePnyyonpx14AngvirPnyyonpxQ1Ri:
 nop
 .text
-.globl b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
+.weak b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_
 .type b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_,%function
 b__MAFg3__127__gerr_onynapr_nsgre_vafregVCAF_16__gerr_abqr_onfrVCiRRRRiG_F5_:
 nop
@@ -1880,7 +1880,7 @@
 b__MA7naqebvq26tCbjreFgngfUnyFhoflfgrzVqfR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__18shapgvbaVSvC7_WAVRaiC8_wbowrpgRRQ2Ri
+.weak b__MAFg3__18shapgvbaVSvC7_WAVRaiC8_wbowrpgRRQ2Ri
 .type b__MAFg3__18shapgvbaVSvC7_WAVRaiC8_wbowrpgRRQ2Ri,%function
 b__MAFg3__18shapgvbaVSvC7_WAVRaiC8_wbowrpgRRQ2Ri:
 nop
@@ -1895,7 +1895,7 @@
 b__MGPA7naqebvq11WGiVachgUny15GiVachgPnyyonpxR0_AF_8uneqjner2gi5vachg4I1_016VGiVachgPnyyonpxR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq11OaVagresnprVAF_6flfgrz7fhfcraq16VFhfcraqPnyyonpxRR10baNfOvaqreRi
+.weak b__MA7naqebvq11OaVagresnprVAF_6flfgrz7fhfcraq16VFhfcraqPnyyonpxRR10baNfOvaqreRi
 .type b__MA7naqebvq11OaVagresnprVAF_6flfgrz7fhfcraq16VFhfcraqPnyyonpxRR10baNfOvaqreRi,%function
 b__MA7naqebvq11OaVagresnprVAF_6flfgrz7fhfcraq16VFhfcraqPnyyonpxRR10baNfOvaqreRi:
 nop
@@ -1915,7 +1915,7 @@
 b__MGGA7naqebvq18NTaffPnyyonpx_I2_0R:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__114__guernq_cebklVAF_5ghcyrVWAF_10havdhr_cgeVAF_15__guernq_fgehpgRAF_14qrsnhyg_qryrgrVF3_RRRRZA7naqebvq20AngvirPnyyonpxGuernqRSiiRCF8_RRRRRCiFQ_
+.weak b__MAFg3__114__guernq_cebklVAF_5ghcyrVWAF_10havdhr_cgeVAF_15__guernq_fgehpgRAF_14qrsnhyg_qryrgrVF3_RRRRZA7naqebvq20AngvirPnyyonpxGuernqRSiiRCF8_RRRRRCiFQ_
 .type b__MAFg3__114__guernq_cebklVAF_5ghcyrVWAF_10havdhr_cgeVAF_15__guernq_fgehpgRAF_14qrsnhyg_qryrgrVF3_RRRRZA7naqebvq20AngvirPnyyonpxGuernqRSiiRCF8_RRRRRCiFQ_,%function
 b__MAFg3__114__guernq_cebklVAF_5ghcyrVWAF_10havdhr_cgeVAF_15__guernq_fgehpgRAF_14qrsnhyg_qryrgrVF3_RRRRZA7naqebvq20AngvirPnyyonpxGuernqRSiiRCF8_RRRRRCiFQ_:
 nop
@@ -1930,12 +1930,12 @@
 b__MA7naqebvq17trgFhfcraqPbagebyRi:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwAF_4cnveVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRF8_RRRRAF_22__habeqrerq_znc_unfureVwFN_AF_4unfuVwRRYo1RRRAF_21__habeqrerq_znc_rdhnyVwFN_AF_8rdhny_gbVwRRYo1RRRAF6_VFN_RRR25__rzcynpr_havdhr_xrl_netfVwWEwAF2_VA7naqebvq8uneqjner11uvqy_fgevatRFC_RRRRRAF2_VAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVFN_CiRRRRoRREXG_QcBG0_
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwAF_4cnveVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRF8_RRRRAF_22__habeqrerq_znc_unfureVwFN_AF_4unfuVwRRYo1RRRAF_21__habeqrerq_znc_rdhnyVwFN_AF_8rdhny_gbVwRRYo1RRRAF6_VFN_RRR25__rzcynpr_havdhr_xrl_netfVwWEwAF2_VA7naqebvq8uneqjner11uvqy_fgevatRFC_RRRRRAF2_VAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVFN_CiRRRRoRREXG_QcBG0_
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwAF_4cnveVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRF8_RRRRAF_22__habeqrerq_znc_unfureVwFN_AF_4unfuVwRRYo1RRRAF_21__habeqrerq_znc_rdhnyVwFN_AF_8rdhny_gbVwRRYo1RRRAF6_VFN_RRR25__rzcynpr_havdhr_xrl_netfVwWEwAF2_VA7naqebvq8uneqjner11uvqy_fgevatRFC_RRRRRAF2_VAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVFN_CiRRRRoRREXG_QcBG0_,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwAF_4cnveVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRF8_RRRRAF_22__habeqrerq_znc_unfureVwFN_AF_4unfuVwRRYo1RRRAF_21__habeqrerq_znc_rdhnyVwFN_AF_8rdhny_gbVwRRYo1RRRAF6_VFN_RRR25__rzcynpr_havdhr_xrl_netfVwWEwAF2_VA7naqebvq8uneqjner11uvqy_fgevatRFC_RRRRRAF2_VAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVFN_CiRRRRoRREXG_QcBG0_:
 nop
 .data
-.globl b__MGGA7naqebvq19UqzvPrpRiragUnaqyreR
+.weak b__MGGA7naqebvq19UqzvPrpRiragUnaqyreR
 .type b__MGGA7naqebvq19UqzvPrpRiragUnaqyreR,%object
 b__MGGA7naqebvq19UqzvPrpRiragUnaqyreR:
 .space __SIZEOF_POINTER__
@@ -1945,12 +1945,12 @@
 b__MA7naqebvq20TaffTrbsraprPnyyonpx20taffTrbsraprFgnghfPoRAF_8uneqjner4taff4I1_021VTaffTrbsraprPnyyonpx20TrbsraprNinvynovyvglREXAF3_12TaffYbpngvbaR:
 nop
 .text
-.globl b__MAFg3__110__shapgvba6__shapVCSvC7_WAVRaiC8_wbowrpgRAF_9nyybpngbeVF7_RRF6_RpyRBF3_BF5_
+.weak b__MAFg3__110__shapgvba6__shapVCSvC7_WAVRaiC8_wbowrpgRAF_9nyybpngbeVF7_RRF6_RpyRBF3_BF5_
 .type b__MAFg3__110__shapgvba6__shapVCSvC7_WAVRaiC8_wbowrpgRAF_9nyybpngbeVF7_RRF6_RpyRBF3_BF5_,%function
 b__MAFg3__110__shapgvba6__shapVCSvC7_WAVRaiC8_wbowrpgRAF_9nyybpngbeVF7_RRF6_RpyRBF3_BF5_:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVvR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVvR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVvR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVvR15qb_zbir_sbejneqRCiCXiz:
 nop
@@ -1960,7 +1960,7 @@
 b__MGi0_a48_A7naqebvq18AngvirVachgZnantre9abgvslNAEREXAF_2fcVAF_22VachgNccyvpngvbaUnaqyrRRREXAF1_VAF_7VOvaqreRRREXAFg3__112onfvp_fgevatVpAFN_11pune_genvgfVpRRAFN_9nyybpngbeVpRRRR:
 nop
 .text
-.globl b__MA7naqebvq12TaffPnyyonpx18taffFiFgnghfPoVzcyVAF_8uneqjner4taff4I1_013VTaffPnyyonpx12TaffFiFgnghfRRRAF2_6ErgheaViRREXG_
+.weak b__MA7naqebvq12TaffPnyyonpx18taffFiFgnghfPoVzcyVAF_8uneqjner4taff4I1_013VTaffPnyyonpx12TaffFiFgnghfRRRAF2_6ErgheaViRREXG_
 .type b__MA7naqebvq12TaffPnyyonpx18taffFiFgnghfPoVzcyVAF_8uneqjner4taff4I1_013VTaffPnyyonpx12TaffFiFgnghfRRRAF2_6ErgheaViRREXG_,%function
 b__MA7naqebvq12TaffPnyyonpx18taffFiFgnghfPoVzcyVAF_8uneqjner4taff4I1_013VTaffPnyyonpx12TaffFiFgnghfRRRAF2_6ErgheaViRREXG_:
 nop
@@ -1970,7 +1970,7 @@
 b__MA7naqebvq16WninZrgubqUrycreVyR10fvtangher_R:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR16_AF_13onfvp_bfgernzVpF2_RR
+.weak b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR16_AF_13onfvp_bfgernzVpF2_RR
 .type b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR16_AF_13onfvp_bfgernzVpF2_RR,%object
 b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR16_AF_13onfvp_bfgernzVpF2_RR:
 .space __SIZEOF_POINTER__
@@ -1980,12 +1980,12 @@
 b__MGGA7naqebvq20TaffTrbsraprPnyyonpxR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_11XrlrqIrpgbeVvAF_11WGiVachgUny10PbaarpgvbaRRRRRR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_11XrlrqIrpgbeVvAF_11WGiVachgUny10PbaarpgvbaRRRRRR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_11XrlrqIrpgbeVvAF_11WGiVachgUny10PbaarpgvbaRRRRRR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_11XrlrqIrpgbeVvAF_11WGiVachgUny10PbaarpgvbaRRRRRR10qb_qrfgeblRCiz:
 nop
 .text
-.globl b__MAFg3__114__fcyvg_ohssreVCAF_8shapgvbaVSiC7_WAVRaiRRREAF_9nyybpngbeVF6_RRR9chfu_onpxRBF6_
+.weak b__MAFg3__114__fcyvg_ohssreVCAF_8shapgvbaVSiC7_WAVRaiRRREAF_9nyybpngbeVF6_RRR9chfu_onpxRBF6_
 .type b__MAFg3__114__fcyvg_ohssreVCAF_8shapgvbaVSiC7_WAVRaiRRREAF_9nyybpngbeVF6_RRR9chfu_onpxRBF6_,%function
 b__MAFg3__114__fcyvg_ohssreVCAF_8shapgvbaVSiC7_WAVRaiRRREAF_9nyybpngbeVF6_RRR9chfu_onpxRBF6_:
 nop
@@ -2000,27 +2000,27 @@
 b__MA7naqebvq8uneqjner14oebnqpnfgenqvb5hgvyf4vfNzRAF1_4I1_04OnaqR:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVvR16qb_zbir_onpxjneqRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVvR16qb_zbir_onpxjneqRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVvR16qb_zbir_onpxjneqRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVvR16qb_zbir_onpxjneqRCiCXiz:
 nop
 .text
-.globl b__MA7naqebvq2fcV18TaffQrnguErpvcvragRQ2Ri
+.weak b__MA7naqebvq2fcV18TaffQrnguErpvcvragRQ2Ri
 .type b__MA7naqebvq2fcV18TaffQrnguErpvcvragRQ2Ri,%function
 b__MA7naqebvq2fcV18TaffQrnguErpvcvragRQ2Ri:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_11WGiVachgUny10PbaarpgvbaRRRR7qb_pbclRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_11WGiVachgUny10PbaarpgvbaRRRR7qb_pbclRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_11WGiVachgUny10PbaarpgvbaRRRR7qb_pbclRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_11WGiVachgUny10PbaarpgvbaRRRR7qb_pbclRCiCXiz:
 nop
 .text
-.globl b__MAFg3__15qrdhrVAF_8shapgvbaVSiC7_WAVRaiRRRAF_9nyybpngbeVF5_RRR19__nqq_onpx_pncnpvglRi
+.weak b__MAFg3__15qrdhrVAF_8shapgvbaVSiC7_WAVRaiRRRAF_9nyybpngbeVF5_RRR19__nqq_onpx_pncnpvglRi
 .type b__MAFg3__15qrdhrVAF_8shapgvbaVSiC7_WAVRaiRRRAF_9nyybpngbeVF5_RRR19__nqq_onpx_pncnpvglRi,%function
 b__MAFg3__15qrdhrVAF_8shapgvbaVSiC7_WAVRaiRRRAF_9nyybpngbeVF5_RRR19__nqq_onpx_pncnpvglRi:
 nop
 .text
-.globl b__MAFg3__110__shapgvba6__shapVMA7naqebvq12znxr_wninersVC13_wbowrpgNeenlRRAF_10havdhr_cgeVAF_14erzbir_cbvagreVG_R4glcrRAF_8shapgvbaVSiF8_RRRRRC7_WAVRaiF8_RHyF5_R_AF_9nyybpngbeVFU_RRSiF5_RR7qrfgeblRi
+.weak b__MAFg3__110__shapgvba6__shapVMA7naqebvq12znxr_wninersVC13_wbowrpgNeenlRRAF_10havdhr_cgeVAF_14erzbir_cbvagreVG_R4glcrRAF_8shapgvbaVSiF8_RRRRRC7_WAVRaiF8_RHyF5_R_AF_9nyybpngbeVFU_RRSiF5_RR7qrfgeblRi
 .type b__MAFg3__110__shapgvba6__shapVMA7naqebvq12znxr_wninersVC13_wbowrpgNeenlRRAF_10havdhr_cgeVAF_14erzbir_cbvagreVG_R4glcrRAF_8shapgvbaVSiF8_RRRRRC7_WAVRaiF8_RHyF5_R_AF_9nyybpngbeVFU_RRSiF5_RR7qrfgeblRi,%function
 b__MAFg3__110__shapgvba6__shapVMA7naqebvq12znxr_wninersVC13_wbowrpgNeenlRRAF_10havdhr_cgeVAF_14erzbir_cbvagreVG_R4glcrRAF_8shapgvbaVSiF8_RRRRRC7_WAVRaiF8_RHyF5_R_AF_9nyybpngbeVFU_RRSiF5_RR7qrfgeblRi:
 nop
@@ -2035,7 +2035,7 @@
 b__MGi0_a72_A7naqebvq18AngvirVachgZnantre14trgQrivprNyvnfREXAF_21VachgQrivprVqragvsvreR:
 nop
 .text
-.globl b__MA7naqebvq12TaffPnyyonpx18taffYbpngvbaPoVzcyVAF_8uneqjner4taff4I2_012TaffYbpngvbaRRRAF2_6ErgheaViRREXG_
+.weak b__MA7naqebvq12TaffPnyyonpx18taffYbpngvbaPoVzcyVAF_8uneqjner4taff4I2_012TaffYbpngvbaRRRAF2_6ErgheaViRREXG_
 .type b__MA7naqebvq12TaffPnyyonpx18taffYbpngvbaPoVzcyVAF_8uneqjner4taff4I2_012TaffYbpngvbaRRRAF2_6ErgheaViRREXG_,%function
 b__MA7naqebvq12TaffPnyyonpx18taffYbpngvbaPoVzcyVAF_8uneqjner4taff4I2_012TaffYbpngvbaRRRAF2_6ErgheaViRREXG_:
 nop
@@ -2050,7 +2050,7 @@
 b__MGPA7naqebvq23TaffZrnfherzragPnyyonpxR0_AF_4uvqy4onfr4I1_05VOnfrR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIA7naqebvq25TaffOngpuvatPnyyonpx_I2_0R
+.weak b__MGIA7naqebvq25TaffOngpuvatPnyyonpx_I2_0R
 .type b__MGIA7naqebvq25TaffOngpuvatPnyyonpx_I2_0R,%object
 b__MGIA7naqebvq25TaffOngpuvatPnyyonpx_I2_0R:
 .space __SIZEOF_POINTER__
@@ -2060,7 +2060,7 @@
 b__MA7naqebvq20AngvirPnyyonpxGuernq4fgbcRi:
 nop
 .data
-.globl b__MGIA7naqebvq14JnxrhcPnyyonpxR
+.weak b__MGIA7naqebvq14JnxrhcPnyyonpxR
 .type b__MGIA7naqebvq14JnxrhcPnyyonpxR,%object
 b__MGIA7naqebvq14JnxrhcPnyyonpxR:
 .space __SIZEOF_POINTER__
@@ -2095,7 +2095,7 @@
 b__MA7naqebvq23TaffZrnfherzragPnyyonpx30genafyngrFvatyrTaffZrnfherzragVAF_8uneqjner4taff4I1_024VTaffZrnfherzragPnyyonpx15TaffZrnfherzragRRRiCXG_EAF_10WninBowrpgR:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRRRAF_22__habeqrerq_znc_unfureVwF8_AF_4unfuVwRRYo1RRRAF_21__habeqrerq_znc_rdhnyVwF8_AF_8rdhny_gbVwRRYo1RRRAF5_VF8_RRR25__rzcynpr_havdhr_xrl_netfVwWEwEA7naqebvq8uneqjner11uvqy_fgevatRRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF8_CiRRRRoRREXG_QcBG0_
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRRRAF_22__habeqrerq_znc_unfureVwF8_AF_4unfuVwRRYo1RRRAF_21__habeqrerq_znc_rdhnyVwF8_AF_8rdhny_gbVwRRYo1RRRAF5_VF8_RRR25__rzcynpr_havdhr_xrl_netfVwWEwEA7naqebvq8uneqjner11uvqy_fgevatRRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF8_CiRRRRoRREXG_QcBG0_
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRRRAF_22__habeqrerq_znc_unfureVwF8_AF_4unfuVwRRYo1RRRAF_21__habeqrerq_znc_rdhnyVwF8_AF_8rdhny_gbVwRRYo1RRRAF5_VF8_RRR25__rzcynpr_havdhr_xrl_netfVwWEwEA7naqebvq8uneqjner11uvqy_fgevatRRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF8_CiRRRRoRREXG_QcBG0_,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRRRAF_22__habeqrerq_znc_unfureVwF8_AF_4unfuVwRRYo1RRRAF_21__habeqrerq_znc_rdhnyVwF8_AF_8rdhny_gbVwRRYo1RRRAF5_VF8_RRR25__rzcynpr_havdhr_xrl_netfVwWEwEA7naqebvq8uneqjner11uvqy_fgevatRRRRAF_4cnveVAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF8_CiRRRRoRREXG_QcBG0_:
 nop
@@ -2110,7 +2110,7 @@
 b__MGPA7naqebvq20TaffTrbsraprPnyyonpxR0_AF_8uneqjner4taff4I1_021VTaffTrbsraprPnyyonpxR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGPA7naqebvq20NvqyIvoengbePnyyonpxR8_AF_7VOvaqreR
+.weak b__MGPA7naqebvq20NvqyIvoengbePnyyonpxR8_AF_7VOvaqreR
 .type b__MGPA7naqebvq20NvqyIvoengbePnyyonpxR8_AF_7VOvaqreR,%object
 b__MGPA7naqebvq20NvqyIvoengbePnyyonpxR8_AF_7VOvaqreR:
 .space __SIZEOF_POINTER__
@@ -2120,12 +2120,12 @@
 b__MA7naqebvq30tTrgFhoflfgrzYbjCbjreFgngfVzcyR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGPA7naqebvq20NvqyIvoengbePnyyonpxR0_AF_8uneqjner8ivoengbe18OaIvoengbePnyyonpxR
+.weak b__MGPA7naqebvq20NvqyIvoengbePnyyonpxR0_AF_8uneqjner8ivoengbe18OaIvoengbePnyyonpxR
 .type b__MGPA7naqebvq20NvqyIvoengbePnyyonpxR0_AF_8uneqjner8ivoengbe18OaIvoengbePnyyonpxR,%object
 b__MGPA7naqebvq20NvqyIvoengbePnyyonpxR0_AF_8uneqjner8ivoengbe18OaIvoengbePnyyonpxR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__110__shapgvba6__shapVMA7naqebvq12znxr_wninersVC13_wbowrpgNeenlRRAF_10havdhr_cgeVAF_14erzbir_cbvagreVG_R4glcrRAF_8shapgvbaVSiF8_RRRRRC7_WAVRaiF8_RHyF5_R_AF_9nyybpngbeVFU_RRSiF5_RR18qrfgebl_qrnyybpngrRi
+.weak b__MAFg3__110__shapgvba6__shapVMA7naqebvq12znxr_wninersVC13_wbowrpgNeenlRRAF_10havdhr_cgeVAF_14erzbir_cbvagreVG_R4glcrRAF_8shapgvbaVSiF8_RRRRRC7_WAVRaiF8_RHyF5_R_AF_9nyybpngbeVFU_RRSiF5_RR18qrfgebl_qrnyybpngrRi
 .type b__MAFg3__110__shapgvba6__shapVMA7naqebvq12znxr_wninersVC13_wbowrpgNeenlRRAF_10havdhr_cgeVAF_14erzbir_cbvagreVG_R4glcrRAF_8shapgvbaVSiF8_RRRRRC7_WAVRaiF8_RHyF5_R_AF_9nyybpngbeVFU_RRSiF5_RR18qrfgebl_qrnyybpngrRi,%function
 b__MAFg3__110__shapgvba6__shapVMA7naqebvq12znxr_wninersVC13_wbowrpgNeenlRRAF_10havdhr_cgeVAF_14erzbir_cbvagreVG_R4glcrRAF_8shapgvbaVSiF8_RRRRRC7_WAVRaiF8_RHyF5_R_AF_9nyybpngbeVFU_RRSiF5_RR18qrfgebl_qrnyybpngrRi:
 nop
@@ -2150,7 +2150,7 @@
 b__MGIA7naqebvq11WGiVachgUny15GiVachgPnyyonpxR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__110__shapgvba6__shapVCSvC7_WAVRaiC8_wbowrpgRAF_9nyybpngbeVF7_RRF6_R18qrfgebl_qrnyybpngrRi
+.weak b__MAFg3__110__shapgvba6__shapVCSvC7_WAVRaiC8_wbowrpgRAF_9nyybpngbeVF7_RRF6_R18qrfgebl_qrnyybpngrRi
 .type b__MAFg3__110__shapgvba6__shapVCSvC7_WAVRaiC8_wbowrpgRAF_9nyybpngbeVF7_RRF6_R18qrfgebl_qrnyybpngrRi,%function
 b__MAFg3__110__shapgvba6__shapVCSvC7_WAVRaiC8_wbowrpgRAF_9nyybpngbeVF7_RRF6_R18qrfgebl_qrnyybpngrRi:
 nop
@@ -2160,42 +2160,42 @@
 b__MA7naqebvq18AngvirVachgZnantre25baCbvagreQbjaBhgfvqrSbphfREXAF_2fcVAF_7VOvaqreRRR:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf13neenlGbFgevatVAF0_8uvqy_irpVuRRRRAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRREXG_z
+.weak b__MA7naqebvq8uneqjner7qrgnvyf13neenlGbFgevatVAF0_8uvqy_irpVuRRRRAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRREXG_z
 .type b__MA7naqebvq8uneqjner7qrgnvyf13neenlGbFgevatVAF0_8uvqy_irpVuRRRRAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRREXG_z,%function
 b__MA7naqebvq8uneqjner7qrgnvyf13neenlGbFgevatVAF0_8uvqy_irpVuRRRRAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRREXG_z:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVvR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVvR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVvR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVvR12qb_pbafgehpgRCiz:
 nop
 .text
-.globl b__MA7naqebvq2fcVAF_6flfgrz7fhfcraq4I1_09VJnxrYbpxRRQ2Ri
+.weak b__MA7naqebvq2fcVAF_6flfgrz7fhfcraq4I1_09VJnxrYbpxRRQ2Ri
 .type b__MA7naqebvq2fcVAF_6flfgrz7fhfcraq4I1_09VJnxrYbpxRRQ2Ri,%function
 b__MA7naqebvq2fcVAF_6flfgrz7fhfcraq4I1_09VJnxrYbpxRRQ2Ri:
 nop
 .text
-.globl b__MA7naqebvq7unyPnyyVAF_8uneqjner6ErgheaViRRAF1_8ivoengbe4I1_09VIvoengbeRWRWRRRG_ZG0_SF7_QcG1_RQcBG2_
+.weak b__MA7naqebvq7unyPnyyVAF_8uneqjner6ErgheaViRRAF1_8ivoengbe4I1_09VIvoengbeRWRWRRRG_ZG0_SF7_QcG1_RQcBG2_
 .type b__MA7naqebvq7unyPnyyVAF_8uneqjner6ErgheaViRRAF1_8ivoengbe4I1_09VIvoengbeRWRWRRRG_ZG0_SF7_QcG1_RQcBG2_,%function
 b__MA7naqebvq7unyPnyyVAF_8uneqjner6ErgheaViRRAF1_8ivoengbe4I1_09VIvoengbeRWRWRRRG_ZG0_SF7_QcG1_RQcBG2_:
 nop
 .text
-.globl b__MAXFg3__110__shapgvba6__shapVCSAF_10havdhr_cgeV8_wbowrpgAF_8shapgvbaVSiCF3_RRRRRC7_WAVRaiEXA7naqebvq6freire14OebnqpnfgEnqvb7ertvbaf18ErtvbanyOnaqPbasvtRRAF_9nyybpngbeVFW_RRFV_R7__pybarRCAF0_6__onfrVFV_RR
+.weak b__MAXFg3__110__shapgvba6__shapVCSAF_10havdhr_cgeV8_wbowrpgAF_8shapgvbaVSiCF3_RRRRRC7_WAVRaiEXA7naqebvq6freire14OebnqpnfgEnqvb7ertvbaf18ErtvbanyOnaqPbasvtRRAF_9nyybpngbeVFW_RRFV_R7__pybarRCAF0_6__onfrVFV_RR
 .type b__MAXFg3__110__shapgvba6__shapVCSAF_10havdhr_cgeV8_wbowrpgAF_8shapgvbaVSiCF3_RRRRRC7_WAVRaiEXA7naqebvq6freire14OebnqpnfgEnqvb7ertvbaf18ErtvbanyOnaqPbasvtRRAF_9nyybpngbeVFW_RRFV_R7__pybarRCAF0_6__onfrVFV_RR,%function
 b__MAXFg3__110__shapgvba6__shapVCSAF_10havdhr_cgeV8_wbowrpgAF_8shapgvbaVSiCF3_RRRRRC7_WAVRaiEXA7naqebvq6freire14OebnqpnfgEnqvb7ertvbaf18ErtvbanyOnaqPbasvtRRAF_9nyybpngbeVFW_RRFV_R7__pybarRCAF0_6__onfrVFV_RR:
 nop
 .text
-.globl b__MA7naqebvq2fcV19NAngvirJvaqbjOhssreRnFRCF1_
+.weak b__MA7naqebvq2fcV19NAngvirJvaqbjOhssreRnFRCF1_
 .type b__MA7naqebvq2fcV19NAngvirJvaqbjOhssreRnFRCF1_,%function
 b__MA7naqebvq2fcV19NAngvirJvaqbjOhssreRnFRCF1_:
 nop
 .text
-.globl b__MA7naqebvq2fcVAF_24GureznyUnyQrnguErpvcvragRRQ2Ri
+.weak b__MA7naqebvq2fcVAF_24GureznyUnyQrnguErpvcvragRRQ2Ri
 .type b__MA7naqebvq2fcVAF_24GureznyUnyQrnguErpvcvragRRQ2Ri,%function
 b__MA7naqebvq2fcVAF_24GureznyUnyQrnguErpvcvragRRQ2Ri:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVvR8qb_fcyngRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVvR8qb_fcyngRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVvR8qb_fcyngRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVvR8qb_fcyngRCiCXiz:
 nop
@@ -2205,7 +2205,7 @@
 b__MA7naqebvq29TaffAnivtngvbaZrffntrPnyyonpx23taffAnivtngvbaZrffntrPoREXAF_8uneqjner4taff4I1_030VTaffAnivtngvbaZrffntrPnyyonpx21TaffAnivtngvbaZrffntrR:
 nop
 .data
-.globl b__MGI18TaffQrnguErpvcvrag
+.weak b__MGI18TaffQrnguErpvcvrag
 .type b__MGI18TaffQrnguErpvcvrag,%object
 b__MGI18TaffQrnguErpvcvrag:
 .space __SIZEOF_POINTER__
@@ -2215,7 +2215,7 @@
 b__MA7naqebvq41ertvfgre_naqebvq_freire_gi_GiHvachgOevqtrRC7_WAVRai:
 nop
 .data
-.globl b__MGIAFg3__110__shapgvba6__shapVCSAF_10havdhr_cgeV8_wbowrpgAF_8shapgvbaVSiCF3_RRRRRC7_WAVRaiEXA7naqebvq6freire14OebnqpnfgEnqvb7ertvbaf18ErtvbanyOnaqPbasvtRRAF_9nyybpngbeVFW_RRFV_RR
+.weak b__MGIAFg3__110__shapgvba6__shapVCSAF_10havdhr_cgeV8_wbowrpgAF_8shapgvbaVSiCF3_RRRRRC7_WAVRaiEXA7naqebvq6freire14OebnqpnfgEnqvb7ertvbaf18ErtvbanyOnaqPbasvtRRAF_9nyybpngbeVFW_RRFV_RR
 .type b__MGIAFg3__110__shapgvba6__shapVCSAF_10havdhr_cgeV8_wbowrpgAF_8shapgvbaVSiCF3_RRRRRC7_WAVRaiEXA7naqebvq6freire14OebnqpnfgEnqvb7ertvbaf18ErtvbanyOnaqPbasvtRRAF_9nyybpngbeVFW_RRFV_RR,%object
 b__MGIAFg3__110__shapgvba6__shapVCSAF_10havdhr_cgeV8_wbowrpgAF_8shapgvbaVSiCF3_RRRRRC7_WAVRaiEXA7naqebvq6freire14OebnqpnfgEnqvb7ertvbaf18ErtvbanyOnaqPbasvtRRAF_9nyybpngbeVFW_RRFV_RR:
 .space __SIZEOF_POINTER__
@@ -2230,12 +2230,12 @@
 b__MA7naqebvq12TaffPnyyonpx17fAzrnFgevatYratguR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq2fcVAF_8uneqjner4taff4I1_118VTaffPbasvthengvbaRRQ2Ri
+.weak b__MA7naqebvq2fcVAF_8uneqjner4taff4I1_118VTaffPbasvthengvbaRRQ2Ri
 .type b__MA7naqebvq2fcVAF_8uneqjner4taff4I1_118VTaffPbasvthengvbaRRQ2Ri,%function
 b__MA7naqebvq2fcVAF_8uneqjner4taff4I1_118VTaffPbasvthengvbaRRQ2Ri:
 nop
 .data
-.globl b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_14onfvp_vbfgernzVpF2_RR
+.weak b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_14onfvp_vbfgernzVpF2_RR
 .type b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_14onfvp_vbfgernzVpF2_RR,%object
 b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_14onfvp_vbfgernzVpF2_RR:
 .space __SIZEOF_POINTER__
@@ -2250,22 +2250,22 @@
 b__MA7naqebvq21tTrgYbjCbjreFgngfVzcyR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_11WGiVachgUny10PbaarpgvbaRRRR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_11WGiVachgUny10PbaarpgvbaRRRR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_11WGiVachgUny10PbaarpgvbaRRRR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_11WGiVachgUny10PbaarpgvbaRRRR10qb_qrfgeblRCiz:
 nop
 .text
-.globl b__MAFg3__110__shapgvba6__shapVMA7naqebvq12znxr_wninersVC8_wfgevatRRAF_10havdhr_cgeVAF_14erzbir_cbvagreVG_R4glcrRAF_8shapgvbaVSiF8_RRRRRC7_WAVRaiF8_RHyF5_R_AF_9nyybpngbeVFU_RRSiF5_RRpyRBF5_
+.weak b__MAFg3__110__shapgvba6__shapVMA7naqebvq12znxr_wninersVC8_wfgevatRRAF_10havdhr_cgeVAF_14erzbir_cbvagreVG_R4glcrRAF_8shapgvbaVSiF8_RRRRRC7_WAVRaiF8_RHyF5_R_AF_9nyybpngbeVFU_RRSiF5_RRpyRBF5_
 .type b__MAFg3__110__shapgvba6__shapVMA7naqebvq12znxr_wninersVC8_wfgevatRRAF_10havdhr_cgeVAF_14erzbir_cbvagreVG_R4glcrRAF_8shapgvbaVSiF8_RRRRRC7_WAVRaiF8_RHyF5_R_AF_9nyybpngbeVFU_RRSiF5_RRpyRBF5_,%function
 b__MAFg3__110__shapgvba6__shapVMA7naqebvq12znxr_wninersVC8_wfgevatRRAF_10havdhr_cgeVAF_14erzbir_cbvagreVG_R4glcrRAF_8shapgvbaVSiF8_RRRRRC7_WAVRaiF8_RHyF5_R_AF_9nyybpngbeVFU_RRSiF5_RRpyRBF5_:
 nop
 .text
-.globl b__MAXFg3__110__shapgvba6__shapVMA7naqebvq12znxr_wninersVC8_wbowrpgRRAF_10havdhr_cgeVAF_14erzbir_cbvagreVG_R4glcrRAF_8shapgvbaVSiF8_RRRRRC7_WAVRaiF8_RHyF5_R_AF_9nyybpngbeVFU_RRSiF5_RR7__pybarRCAF0_6__onfrVFX_RR
+.weak b__MAXFg3__110__shapgvba6__shapVMA7naqebvq12znxr_wninersVC8_wbowrpgRRAF_10havdhr_cgeVAF_14erzbir_cbvagreVG_R4glcrRAF_8shapgvbaVSiF8_RRRRRC7_WAVRaiF8_RHyF5_R_AF_9nyybpngbeVFU_RRSiF5_RR7__pybarRCAF0_6__onfrVFX_RR
 .type b__MAXFg3__110__shapgvba6__shapVMA7naqebvq12znxr_wninersVC8_wbowrpgRRAF_10havdhr_cgeVAF_14erzbir_cbvagreVG_R4glcrRAF_8shapgvbaVSiF8_RRRRRC7_WAVRaiF8_RHyF5_R_AF_9nyybpngbeVFU_RRSiF5_RR7__pybarRCAF0_6__onfrVFX_RR,%function
 b__MAXFg3__110__shapgvba6__shapVMA7naqebvq12znxr_wninersVC8_wbowrpgRRAF_10havdhr_cgeVAF_14erzbir_cbvagreVG_R4glcrRAF_8shapgvbaVSiF8_RRRRRC7_WAVRaiF8_RHyF5_R_AF_9nyybpngbeVFU_RRSiF5_RR7__pybarRCAF0_6__onfrVFX_RR:
 nop
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf13neenlGbFgevatVAF0_8uvqy_irpVzRRRRAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRREXG_z
+.weak b__MA7naqebvq8uneqjner7qrgnvyf13neenlGbFgevatVAF0_8uvqy_irpVzRRRRAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRREXG_z
 .type b__MA7naqebvq8uneqjner7qrgnvyf13neenlGbFgevatVAF0_8uvqy_irpVzRRRRAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRREXG_z,%function
 b__MA7naqebvq8uneqjner7qrgnvyf13neenlGbFgevatVAF0_8uvqy_irpVzRRRRAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRREXG_z:
 nop
@@ -2285,7 +2285,7 @@
 b__MA7naqebvq10WninBowrpgP1RC7_WAVRaiC7_wpynffC8_wbowrpg:
 nop
 .text
-.globl b__MA7naqebvq23TaffZrnfherzragPnyyonpx23genafyngrNaqFrgTaffQngnVAF_8uneqjner4taff4I2_024VTaffZrnfherzragPnyyonpx8TaffQngnRRRiEXG_
+.weak b__MA7naqebvq23TaffZrnfherzragPnyyonpx23genafyngrNaqFrgTaffQngnVAF_8uneqjner4taff4I2_024VTaffZrnfherzragPnyyonpx8TaffQngnRRRiEXG_
 .type b__MA7naqebvq23TaffZrnfherzragPnyyonpx23genafyngrNaqFrgTaffQngnVAF_8uneqjner4taff4I2_024VTaffZrnfherzragPnyyonpx8TaffQngnRRRiEXG_,%function
 b__MA7naqebvq23TaffZrnfherzragPnyyonpx23genafyngrNaqFrgTaffQngnVAF_8uneqjner4taff4I2_024VTaffZrnfherzragPnyyonpx8TaffQngnRRRiEXG_:
 nop
@@ -2335,12 +2335,12 @@
 b__MA7naqebvq44ertvfgre_naqebvq_freire_oebnqpnfgenqvb_GhareRC7_WninIZC7_WAVRai:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVvR10qb_qrfgeblRCiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVvR10qb_qrfgeblRCiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVvR10qb_qrfgeblRCiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVvR10qb_qrfgeblRCiz:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRuRRAF_22__habeqrerq_znc_unfureVF7_F8_AF_4unfuVF7_RRYo1RRRAF_21__habeqrerq_znc_rdhnyVF7_F8_AF_8rdhny_gbVF7_RRYo1RRRAF5_VF8_RRR25__rzcynpr_havdhr_xrl_netfVF7_WAF_4cnveVXF7_uRRRRRAFX_VAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF8_CiRRRRoRREXG_QcBG0_
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRuRRAF_22__habeqrerq_znc_unfureVF7_F8_AF_4unfuVF7_RRYo1RRRAF_21__habeqrerq_znc_rdhnyVF7_F8_AF_8rdhny_gbVF7_RRYo1RRRAF5_VF8_RRR25__rzcynpr_havdhr_xrl_netfVF7_WAF_4cnveVXF7_uRRRRRAFX_VAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF8_CiRRRRoRREXG_QcBG0_
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRuRRAF_22__habeqrerq_znc_unfureVF7_F8_AF_4unfuVF7_RRYo1RRRAF_21__habeqrerq_znc_rdhnyVF7_F8_AF_8rdhny_gbVF7_RRYo1RRRAF5_VF8_RRR25__rzcynpr_havdhr_xrl_netfVF7_WAF_4cnveVXF7_uRRRRRAFX_VAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF8_CiRRRRoRREXG_QcBG0_,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRuRRAF_22__habeqrerq_znc_unfureVF7_F8_AF_4unfuVF7_RRYo1RRRAF_21__habeqrerq_znc_rdhnyVF7_F8_AF_8rdhny_gbVF7_RRYo1RRRAF5_VF8_RRR25__rzcynpr_havdhr_xrl_netfVF7_WAF_4cnveVXF7_uRRRRRAFX_VAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF8_CiRRRRoRREXG_QcBG0_:
 nop
@@ -2355,7 +2355,7 @@
 b__MA7naqebvq16AngvirPbaarpgvbaP2Rvv:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_11XrlrqIrpgbeVvAF_11WGiVachgUny10PbaarpgvbaRRRRRR10qb_pbzcnerRCXiF9_
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_11XrlrqIrpgbeVvAF_11WGiVachgUny10PbaarpgvbaRRRRRR10qb_pbzcnerRCXiF9_
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_11XrlrqIrpgbeVvAF_11WGiVachgUny10PbaarpgvbaRRRRRR10qb_pbzcnerRCXiF9_,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_11XrlrqIrpgbeVvAF_11WGiVachgUny10PbaarpgvbaRRRRRR10qb_pbzcnerRCXiF9_:
 nop
@@ -2365,7 +2365,7 @@
 b__MA7naqebvq18AngvirVachgZnantre39purpxVawrpgRiragfCrezvffvbaAbaErragenagRvv:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_17VachgJvaqbjUnaqyrRRRAF_9nyybpngbeVF4_RRR21__chfu_onpx_fybj_cnguVEXF4_RRiBG_
+.weak b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_17VachgJvaqbjUnaqyrRRRAF_9nyybpngbeVF4_RRR21__chfu_onpx_fybj_cnguVEXF4_RRiBG_
 .type b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_17VachgJvaqbjUnaqyrRRRAF_9nyybpngbeVF4_RRR21__chfu_onpx_fybj_cnguVEXF4_RRiBG_,%function
 b__MAFg3__16irpgbeVA7naqebvq2fcVAF1_17VachgJvaqbjUnaqyrRRRAF_9nyybpngbeVF4_RRR21__chfu_onpx_fybj_cnguVEXF4_RRiBG_:
 nop
@@ -2385,7 +2385,7 @@
 b__MGPA7naqebvq6freire14OebnqpnfgEnqvb13GharePnyyonpx14AngvirPnyyonpxR0_AF_4uvqy4onfr4I1_05VOnfrR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq15NTaffQvfcngpure9frgFreireVAF_8uneqjner4taff4I2_06VNTaffRAF4_14VNTaffPnyyonpxRRRiAF_2fcVG_RRC7_WAVRaivC8_wfgevatv
+.weak b__MA7naqebvq15NTaffQvfcngpure9frgFreireVAF_8uneqjner4taff4I2_06VNTaffRAF4_14VNTaffPnyyonpxRRRiAF_2fcVG_RRC7_WAVRaivC8_wfgevatv
 .type b__MA7naqebvq15NTaffQvfcngpure9frgFreireVAF_8uneqjner4taff4I2_06VNTaffRAF4_14VNTaffPnyyonpxRRRiAF_2fcVG_RRC7_WAVRaivC8_wfgevatv,%function
 b__MA7naqebvq15NTaffQvfcngpure9frgFreireVAF_8uneqjner4taff4I2_06VNTaffRAF4_14VNTaffPnyyonpxRRRiAF_2fcVG_RRC7_WAVRaivC8_wfgevatv:
 nop
@@ -2425,7 +2425,7 @@
 b__MA7naqebvq20OhssreCebqhpreGuernq10frgFhesnprREXAF_2fcVAF_7FhesnprRRR:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq6freire14OebnqpnfgEnqvb7ertvbaf18ErtvbanyOnaqPbasvtRAF_9nyybpngbeVF5_RRR26__fjnc_bhg_pvephyne_ohssreREAF_14__fcyvg_ohssreVF5_EF7_RR
+.weak b__MAFg3__16irpgbeVA7naqebvq6freire14OebnqpnfgEnqvb7ertvbaf18ErtvbanyOnaqPbasvtRAF_9nyybpngbeVF5_RRR26__fjnc_bhg_pvephyne_ohssreREAF_14__fcyvg_ohssreVF5_EF7_RR
 .type b__MAFg3__16irpgbeVA7naqebvq6freire14OebnqpnfgEnqvb7ertvbaf18ErtvbanyOnaqPbasvtRAF_9nyybpngbeVF5_RRR26__fjnc_bhg_pvephyne_ohssreREAF_14__fcyvg_ohssreVF5_EF7_RR,%function
 b__MAFg3__16irpgbeVA7naqebvq6freire14OebnqpnfgEnqvb7ertvbaf18ErtvbanyOnaqPbasvtRAF_9nyybpngbeVF5_RRR26__fjnc_bhg_pvephyne_ohssreREAF_14__fcyvg_ohssreVF5_EF7_RR:
 nop
@@ -2445,7 +2445,7 @@
 b__MA7naqebvq23TaffZrnfherzragPnyyonpx19trgZrnfherzragPbhagVAF_8uneqjner4taff4I1_024VTaffZrnfherzragPnyyonpx8TaffQngnRRRzEXG_:
 nop
 .data
-.globl b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_11WGiVachgUny10PbaarpgvbaRRRRR
+.weak b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_11WGiVachgUny10PbaarpgvbaRRRRR
 .type b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_11WGiVachgUny10PbaarpgvbaRRRRR,%object
 b__MGIA7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_11WGiVachgUny10PbaarpgvbaRRRRR:
 .space __SIZEOF_POINTER__
@@ -2475,12 +2475,12 @@
 b__MGGA7naqebvq29TaffAnivtngvbaZrffntrPnyyonpxR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq2fcVAF_12AngvirUnaqyrRRnFRBF2_
+.weak b__MA7naqebvq2fcVAF_12AngvirUnaqyrRRnFRBF2_
 .type b__MA7naqebvq2fcVAF_12AngvirUnaqyrRRnFRBF2_,%function
 b__MA7naqebvq2fcVAF_12AngvirUnaqyrRRnFRBF2_:
 nop
 .data
-.globl b__MGPA7naqebvq14JnxrhcPnyyonpxR0_AF_10VVagresnprR
+.weak b__MGPA7naqebvq14JnxrhcPnyyonpxR0_AF_10VVagresnprR
 .type b__MGPA7naqebvq14JnxrhcPnyyonpxR0_AF_10VVagresnprR,%object
 b__MGPA7naqebvq14JnxrhcPnyyonpxR0_AF_10VVagresnprR:
 .space __SIZEOF_POINTER__
@@ -2515,12 +2515,12 @@
 b__MA7naqebvq20AngvirPnyyonpxGuernqQ1Ri:
 nop
 .text
-.globl b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9conpxsnvyRv
+.weak b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9conpxsnvyRv
 .type b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9conpxsnvyRv,%function
 b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9conpxsnvyRv:
 nop
 .text
-.globl b__MAFg3__110__shapgvba6__shapVMA7naqebvq12znxr_wninersVC11_wolgrNeenlRRAF_10havdhr_cgeVAF_14erzbir_cbvagreVG_R4glcrRAF_8shapgvbaVSiF8_RRRRRC7_WAVRaiF8_RHyF5_R_AF_9nyybpngbeVFU_RRSiF5_RR18qrfgebl_qrnyybpngrRi
+.weak b__MAFg3__110__shapgvba6__shapVMA7naqebvq12znxr_wninersVC11_wolgrNeenlRRAF_10havdhr_cgeVAF_14erzbir_cbvagreVG_R4glcrRAF_8shapgvbaVSiF8_RRRRRC7_WAVRaiF8_RHyF5_R_AF_9nyybpngbeVFU_RRSiF5_RR18qrfgebl_qrnyybpngrRi
 .type b__MAFg3__110__shapgvba6__shapVMA7naqebvq12znxr_wninersVC11_wolgrNeenlRRAF_10havdhr_cgeVAF_14erzbir_cbvagreVG_R4glcrRAF_8shapgvbaVSiF8_RRRRRC7_WAVRaiF8_RHyF5_R_AF_9nyybpngbeVFU_RRSiF5_RR18qrfgebl_qrnyybpngrRi,%function
 b__MAFg3__110__shapgvba6__shapVMA7naqebvq12znxr_wninersVC11_wolgrNeenlRRAF_10havdhr_cgeVAF_14erzbir_cbvagreVG_R4glcrRAF_8shapgvbaVSiF8_RRRRRC7_WAVRaiF8_RHyF5_R_AF_9nyybpngbeVFU_RRSiF5_RR18qrfgebl_qrnyybpngrRi:
 nop
@@ -2540,12 +2540,12 @@
 b__MA7naqebvq11WGiVachgUny17nqqBeHcqngrFgernzRvvEXAF_2fcVAF_7FhesnprRRR:
 nop
 .data
-.globl b__MGGAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
+.weak b__MGGAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
 .type b__MGGAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR,%object
 b__MGGAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq8uneqjner7qrgnvyf13neenlGbFgevatVAF0_8uvqy_irpVAF0_14oebnqpnfgenqvb4I1_114IraqbeXrlInyhrRRRRRAFg3__112onfvp_fgevatVpAF8_11pune_genvgfVpRRAF8_9nyybpngbeVpRRRREXG_z
+.weak b__MA7naqebvq8uneqjner7qrgnvyf13neenlGbFgevatVAF0_8uvqy_irpVAF0_14oebnqpnfgenqvb4I1_114IraqbeXrlInyhrRRRRRAFg3__112onfvp_fgevatVpAF8_11pune_genvgfVpRRAF8_9nyybpngbeVpRRRREXG_z
 .type b__MA7naqebvq8uneqjner7qrgnvyf13neenlGbFgevatVAF0_8uvqy_irpVAF0_14oebnqpnfgenqvb4I1_114IraqbeXrlInyhrRRRRRAFg3__112onfvp_fgevatVpAF8_11pune_genvgfVpRRAF8_9nyybpngbeVpRRRREXG_z,%function
 b__MA7naqebvq8uneqjner7qrgnvyf13neenlGbFgevatVAF0_8uvqy_irpVAF0_14oebnqpnfgenqvb4I1_114IraqbeXrlInyhrRRRRRAFg3__112onfvp_fgevatVpAF8_11pune_genvgfVpRRAF8_9nyybpngbeVpRRRREXG_z:
 nop
@@ -2555,7 +2555,7 @@
 b__MA7naqebvq6freire14OebnqpnfgEnqvb7pbaireg31GuebjCneprynoyrEhagvzrRkprcgvbaRC7_WAVRaiEXAFg3__112onfvp_fgevatVpAF5_11pune_genvgfVpRRAF5_9nyybpngbeVpRRRR:
 nop
 .text
-.globl b__MAFg3__110__shapgvba6__shapVMA7naqebvq12znxr_wninersVC11_wybatNeenlRRAF_10havdhr_cgeVAF_14erzbir_cbvagreVG_R4glcrRAF_8shapgvbaVSiF8_RRRRRC7_WAVRaiF8_RHyF5_R_AF_9nyybpngbeVFU_RRSiF5_RR18qrfgebl_qrnyybpngrRi
+.weak b__MAFg3__110__shapgvba6__shapVMA7naqebvq12znxr_wninersVC11_wybatNeenlRRAF_10havdhr_cgeVAF_14erzbir_cbvagreVG_R4glcrRAF_8shapgvbaVSiF8_RRRRRC7_WAVRaiF8_RHyF5_R_AF_9nyybpngbeVFU_RRSiF5_RR18qrfgebl_qrnyybpngrRi
 .type b__MAFg3__110__shapgvba6__shapVMA7naqebvq12znxr_wninersVC11_wybatNeenlRRAF_10havdhr_cgeVAF_14erzbir_cbvagreVG_R4glcrRAF_8shapgvbaVSiF8_RRRRRC7_WAVRaiF8_RHyF5_R_AF_9nyybpngbeVFU_RRSiF5_RR18qrfgebl_qrnyybpngrRi,%function
 b__MAFg3__110__shapgvba6__shapVMA7naqebvq12znxr_wninersVC11_wybatNeenlRRAF_10havdhr_cgeVAF_14erzbir_cbvagreVG_R4glcrRAF_8shapgvbaVSiF8_RRRRRC7_WAVRaiF8_RHyF5_R_AF_9nyybpngbeVFU_RRSiF5_RR18qrfgebl_qrnyybpngrRi:
 nop
@@ -2575,7 +2575,7 @@
 b__MGi0_a88_A7naqebvq18AngvirVachgZnantre26vagreprcgXrlOrsberDhrhrvatRCXAF_8XrlRiragREw:
 nop
 .text
-.globl b__MAFg3__124__chg_punenpgre_frdhraprVpAF_11pune_genvgfVpRRRREAF_13onfvp_bfgernzVG_G0_RRF7_CXF4_z
+.weak b__MAFg3__124__chg_punenpgre_frdhraprVpAF_11pune_genvgfVpRRRREAF_13onfvp_bfgernzVG_G0_RRF7_CXF4_z
 .type b__MAFg3__124__chg_punenpgre_frdhraprVpAF_11pune_genvgfVpRRRREAF_13onfvp_bfgernzVG_G0_RRF7_CXF4_z,%function
 b__MAFg3__124__chg_punenpgre_frdhraprVpAF_11pune_genvgfVpRRRREAF_13onfvp_bfgernzVG_G0_RRF7_CXF4_z:
 nop
@@ -2590,12 +2590,12 @@
 b__MA7naqebvq8uneqjner14oebnqpnfgenqvb5hgvyf6vfNzSzRAF1_4I1_111CebtenzGlcrR:
 nop
 .text
-.globl b__MAXFg3__110__shapgvba6__shapVCSAF_10havdhr_cgeV8_wbowrpgAF_8shapgvbaVSiCF3_RRRRRC7_WAVRaiEXA7naqebvq8uneqjner14oebnqpnfgenqvb4I1_117CebtenzVqragvsvreRRAF_9nyybpngbeVFW_RRFV_R7__pybarRCAF0_6__onfrVFV_RR
+.weak b__MAXFg3__110__shapgvba6__shapVCSAF_10havdhr_cgeV8_wbowrpgAF_8shapgvbaVSiCF3_RRRRRC7_WAVRaiEXA7naqebvq8uneqjner14oebnqpnfgenqvb4I1_117CebtenzVqragvsvreRRAF_9nyybpngbeVFW_RRFV_R7__pybarRCAF0_6__onfrVFV_RR
 .type b__MAXFg3__110__shapgvba6__shapVCSAF_10havdhr_cgeV8_wbowrpgAF_8shapgvbaVSiCF3_RRRRRC7_WAVRaiEXA7naqebvq8uneqjner14oebnqpnfgenqvb4I1_117CebtenzVqragvsvreRRAF_9nyybpngbeVFW_RRFV_R7__pybarRCAF0_6__onfrVFV_RR,%function
 b__MAXFg3__110__shapgvba6__shapVCSAF_10havdhr_cgeV8_wbowrpgAF_8shapgvbaVSiCF3_RRRRRC7_WAVRaiEXA7naqebvq8uneqjner14oebnqpnfgenqvb4I1_117CebtenzVqragvsvreRRAF_9nyybpngbeVFW_RRFV_R7__pybarRCAF0_6__onfrVFV_RR:
 nop
 .text
-.globl b__MAFg3__110__shapgvba6__shapVMA7naqebvq12znxr_wninersVC10_wvagNeenlRRAF_10havdhr_cgeVAF_14erzbir_cbvagreVG_R4glcrRAF_8shapgvbaVSiF8_RRRRRC7_WAVRaiF8_RHyF5_R_AF_9nyybpngbeVFU_RRSiF5_RR18qrfgebl_qrnyybpngrRi
+.weak b__MAFg3__110__shapgvba6__shapVMA7naqebvq12znxr_wninersVC10_wvagNeenlRRAF_10havdhr_cgeVAF_14erzbir_cbvagreVG_R4glcrRAF_8shapgvbaVSiF8_RRRRRC7_WAVRaiF8_RHyF5_R_AF_9nyybpngbeVFU_RRSiF5_RR18qrfgebl_qrnyybpngrRi
 .type b__MAFg3__110__shapgvba6__shapVMA7naqebvq12znxr_wninersVC10_wvagNeenlRRAF_10havdhr_cgeVAF_14erzbir_cbvagreVG_R4glcrRAF_8shapgvbaVSiF8_RRRRRC7_WAVRaiF8_RHyF5_R_AF_9nyybpngbeVFU_RRSiF5_RR18qrfgebl_qrnyybpngrRi,%function
 b__MAFg3__110__shapgvba6__shapVMA7naqebvq12znxr_wninersVC10_wvagNeenlRRAF_10havdhr_cgeVAF_14erzbir_cbvagreVG_R4glcrRAF_8shapgvbaVSiF8_RRRRRC7_WAVRaiF8_RHyF5_R_AF_9nyybpngbeVFU_RRSiF5_RR18qrfgebl_qrnyybpngrRi:
 nop
@@ -2630,12 +2630,12 @@
 b__MA7naqebvq18AngvirVachgZnantre14cvysreCbvagrefREXAF_2fcVAF_7VOvaqreRRR:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq10FcevgrVpbaRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVF2_RRiBG_
+.weak b__MAFg3__16irpgbeVA7naqebvq10FcevgrVpbaRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVF2_RRiBG_
 .type b__MAFg3__16irpgbeVA7naqebvq10FcevgrVpbaRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVF2_RRiBG_,%function
 b__MAFg3__16irpgbeVA7naqebvq10FcevgrVpbaRAF_9nyybpngbeVF2_RRR21__chfu_onpx_fybj_cnguVF2_RRiBG_:
 nop
 .data
-.globl b__MGIAFg3__110__shapgvba6__shapVMA7naqebvq12znxr_wninersVC11_wolgrNeenlRRAF_10havdhr_cgeVAF_14erzbir_cbvagreVG_R4glcrRAF_8shapgvbaVSiF8_RRRRRC7_WAVRaiF8_RHyF5_R_AF_9nyybpngbeVFU_RRSiF5_RRR
+.weak b__MGIAFg3__110__shapgvba6__shapVMA7naqebvq12znxr_wninersVC11_wolgrNeenlRRAF_10havdhr_cgeVAF_14erzbir_cbvagreVG_R4glcrRAF_8shapgvbaVSiF8_RRRRRC7_WAVRaiF8_RHyF5_R_AF_9nyybpngbeVFU_RRSiF5_RRR
 .type b__MGIAFg3__110__shapgvba6__shapVMA7naqebvq12znxr_wninersVC11_wolgrNeenlRRAF_10havdhr_cgeVAF_14erzbir_cbvagreVG_R4glcrRAF_8shapgvbaVSiF8_RRRRRC7_WAVRaiF8_RHyF5_R_AF_9nyybpngbeVFU_RRSiF5_RRR,%object
 b__MGIAFg3__110__shapgvba6__shapVMA7naqebvq12znxr_wninersVC11_wolgrNeenlRRAF_10havdhr_cgeVAF_14erzbir_cbvagreVG_R4glcrRAF_8shapgvbaVSiF8_RRRRRC7_WAVRaiF8_RHyF5_R_AF_9nyybpngbeVFU_RRSiF5_RRR:
 .space __SIZEOF_POINTER__
@@ -2645,17 +2645,17 @@
 b__MA7naqebvq23tCbjreFgngfUnyEnvyAnzrfR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIA7naqebvq22CbjreUnyQrnguErpvcvragR
+.weak b__MGIA7naqebvq22CbjreUnyQrnguErpvcvragR
 .type b__MGIA7naqebvq22CbjreUnyQrnguErpvcvragR,%object
 b__MGIA7naqebvq22CbjreUnyQrnguErpvcvragR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIAFg3__110__shapgvba6__shapVCSvC7_WAVRaiC8_wbowrpgRAF_9nyybpngbeVF7_RRF6_RR
+.weak b__MGIAFg3__110__shapgvba6__shapVCSvC7_WAVRaiC8_wbowrpgRAF_9nyybpngbeVF7_RRF6_RR
 .type b__MGIAFg3__110__shapgvba6__shapVCSvC7_WAVRaiC8_wbowrpgRAF_9nyybpngbeVF7_RRF6_RR,%object
 b__MGIAFg3__110__shapgvba6__shapVCSvC7_WAVRaiC8_wbowrpgRAF_9nyybpngbeVF7_RRF6_RR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGPA7naqebvq19UqzvPrpRiragUnaqyreR0_AF_14ZrffntrUnaqyreR
+.weak b__MGPA7naqebvq19UqzvPrpRiragUnaqyreR0_AF_14ZrffntrUnaqyreR
 .type b__MGPA7naqebvq19UqzvPrpRiragUnaqyreR0_AF_14ZrffntrUnaqyreR,%object
 b__MGPA7naqebvq19UqzvPrpRiragUnaqyreR0_AF_14ZrffntrUnaqyreR:
 .space __SIZEOF_POINTER__
@@ -2730,7 +2730,7 @@
 b__MA7naqebvq6freire14OebnqpnfgEnqvb13GharePnyyonpx14AngvirPnyyonpx25pheeragCebtenzVasbPunatrqREXAF_8uneqjner14oebnqpnfgenqvb4I1_111CebtenzVasbR:
 nop
 .text
-.globl b__MAFg3__110__shapgvba6__shapVMA7naqebvq12znxr_wninersVC10_wvagNeenlRRAF_10havdhr_cgeVAF_14erzbir_cbvagreVG_R4glcrRAF_8shapgvbaVSiF8_RRRRRC7_WAVRaiF8_RHyF5_R_AF_9nyybpngbeVFU_RRSiF5_RR7qrfgeblRi
+.weak b__MAFg3__110__shapgvba6__shapVMA7naqebvq12znxr_wninersVC10_wvagNeenlRRAF_10havdhr_cgeVAF_14erzbir_cbvagreVG_R4glcrRAF_8shapgvbaVSiF8_RRRRRC7_WAVRaiF8_RHyF5_R_AF_9nyybpngbeVFU_RRSiF5_RR7qrfgeblRi
 .type b__MAFg3__110__shapgvba6__shapVMA7naqebvq12znxr_wninersVC10_wvagNeenlRRAF_10havdhr_cgeVAF_14erzbir_cbvagreVG_R4glcrRAF_8shapgvbaVSiF8_RRRRRC7_WAVRaiF8_RHyF5_R_AF_9nyybpngbeVFU_RRSiF5_RR7qrfgeblRi,%function
 b__MAFg3__110__shapgvba6__shapVMA7naqebvq12znxr_wninersVC10_wvagNeenlRRAF_10havdhr_cgeVAF_14erzbir_cbvagreVG_R4glcrRAF_8shapgvbaVSiF8_RRRRRC7_WAVRaiF8_RHyF5_R_AF_9nyybpngbeVFU_RRSiF5_RR7qrfgeblRi:
 nop
@@ -2740,7 +2740,7 @@
 b__MA7naqebvq15tQrnguErpvcvragR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRRRAF_22__habeqrerq_znc_unfureVwF8_AF_4unfuVwRRYo1RRRAF_21__habeqrerq_znc_rdhnyVwF8_AF_8rdhny_gbVwRRYo1RRRAF5_VF8_RRR8__erunfuRz
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRRRAF_22__habeqrerq_znc_unfureVwF8_AF_4unfuVwRRYo1RRRAF_21__habeqrerq_znc_rdhnyVwF8_AF_8rdhny_gbVwRRYo1RRRAF5_VF8_RRR8__erunfuRz
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRRRAF_22__habeqrerq_znc_unfureVwF8_AF_4unfuVwRRYo1RRRAF_21__habeqrerq_znc_rdhnyVwF8_AF_8rdhny_gbVwRRYo1RRRAF5_VF8_RRR8__erunfuRz,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRRRAF_22__habeqrerq_znc_unfureVwF8_AF_4unfuVwRRYo1RRRAF_21__habeqrerq_znc_rdhnyVwF8_AF_8rdhny_gbVwRRYo1RRRAF5_VF8_RRR8__erunfuRz:
 nop
@@ -2750,7 +2750,7 @@
 b__MA7naqebvq18AngvirVachgZnantre20ertvfgreVachgPunaaryRC7_WAVRaiEXAF_2fcVAF_12VachgPunaaryRRRv:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq15QvfcynlIvrjcbegRAF_9nyybpngbeVF2_RRR6nffvtaVCF2_RRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF2_AF_15vgrengbe_genvgfVF9_R9ersreraprRRR5inyhrRiR4glcrRF9_F9_
+.weak b__MAFg3__16irpgbeVA7naqebvq15QvfcynlIvrjcbegRAF_9nyybpngbeVF2_RRR6nffvtaVCF2_RRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF2_AF_15vgrengbe_genvgfVF9_R9ersreraprRRR5inyhrRiR4glcrRF9_F9_
 .type b__MAFg3__16irpgbeVA7naqebvq15QvfcynlIvrjcbegRAF_9nyybpngbeVF2_RRR6nffvtaVCF2_RRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF2_AF_15vgrengbe_genvgfVF9_R9ersreraprRRR5inyhrRiR4glcrRF9_F9_,%function
 b__MAFg3__16irpgbeVA7naqebvq15QvfcynlIvrjcbegRAF_9nyybpngbeVF2_RRR6nffvtaVCF2_RRAF_9ranoyr_vsVKnnfe21__vf_sbejneq_vgrengbeVG_RR5inyhrfe16vf_pbafgehpgvoyrVF2_AF_15vgrengbe_genvgfVF9_R9ersreraprRRR5inyhrRiR4glcrRF9_F9_:
 nop
@@ -2800,17 +2800,17 @@
 b__MGPA7naqebvq6freire14OebnqpnfgEnqvb13GharePnyyonpx14AngvirPnyyonpxR0_AF_8uneqjner14oebnqpnfgenqvb4I1_114VGharePnyyonpxR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__110__shapgvba6__shapVCSAF_10havdhr_cgeV8_wbowrpgAF_8shapgvbaVSiCF3_RRRRRC7_WAVRaiEXA7naqebvq8uneqjner14oebnqpnfgenqvb4I1_117CebtenzVqragvsvreRRAF_9nyybpngbeVFW_RRFV_R7qrfgeblRi
+.weak b__MAFg3__110__shapgvba6__shapVCSAF_10havdhr_cgeV8_wbowrpgAF_8shapgvbaVSiCF3_RRRRRC7_WAVRaiEXA7naqebvq8uneqjner14oebnqpnfgenqvb4I1_117CebtenzVqragvsvreRRAF_9nyybpngbeVFW_RRFV_R7qrfgeblRi
 .type b__MAFg3__110__shapgvba6__shapVCSAF_10havdhr_cgeV8_wbowrpgAF_8shapgvbaVSiCF3_RRRRRC7_WAVRaiEXA7naqebvq8uneqjner14oebnqpnfgenqvb4I1_117CebtenzVqragvsvreRRAF_9nyybpngbeVFW_RRFV_R7qrfgeblRi,%function
 b__MAFg3__110__shapgvba6__shapVCSAF_10havdhr_cgeV8_wbowrpgAF_8shapgvbaVSiCF3_RRRRRC7_WAVRaiEXA7naqebvq8uneqjner14oebnqpnfgenqvb4I1_117CebtenzVqragvsvreRRAF_9nyybpngbeVFW_RRFV_R7qrfgeblRi:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwAF_4cnveVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRF8_RRRRAF_22__habeqrerq_znc_unfureVwFN_AF_4unfuVwRRYo1RRRAF_21__habeqrerq_znc_rdhnyVwFN_AF_8rdhny_gbVwRRYo1RRRAF6_VFN_RRR6erunfuRz
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwAF_4cnveVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRF8_RRRRAF_22__habeqrerq_znc_unfureVwFN_AF_4unfuVwRRYo1RRRAF_21__habeqrerq_znc_rdhnyVwFN_AF_8rdhny_gbVwRRYo1RRRAF6_VFN_RRR6erunfuRz
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwAF_4cnveVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRF8_RRRRAF_22__habeqrerq_znc_unfureVwFN_AF_4unfuVwRRYo1RRRAF_21__habeqrerq_znc_rdhnyVwFN_AF_8rdhny_gbVwRRYo1RRRAF6_VFN_RRR6erunfuRz,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwAF_4cnveVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRF8_RRRRAF_22__habeqrerq_znc_unfureVwFN_AF_4unfuVwRRYo1RRRAF_21__habeqrerq_znc_rdhnyVwFN_AF_8rdhny_gbVwRRYo1RRRAF6_VFN_RRR6erunfuRz:
 nop
 .data
-.globl b__MGIA7naqebvq19UqzvPrpRiragUnaqyreR
+.weak b__MGIA7naqebvq19UqzvPrpRiragUnaqyreR
 .type b__MGIA7naqebvq19UqzvPrpRiragUnaqyreR,%object
 b__MGIA7naqebvq19UqzvPrpRiragUnaqyreR:
 .space __SIZEOF_POINTER__
@@ -2830,12 +2830,12 @@
 b__MA7naqebvq18AngvirVachgZnantre28trgGbhpuNssvarGenafsbezngvbaREXAFg3__112onfvp_fgevatVpAF1_11pune_genvgfVpRRAF1_9nyybpngbeVpRRRRv:
 nop
 .data
-.globl b__MGIA7naqebvq10WninBowrpgR
+.weak b__MGIA7naqebvq10WninBowrpgR
 .type b__MGIA7naqebvq10WninBowrpgR,%object
 b__MGIA7naqebvq10WninBowrpgR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq2fcVAF_8uneqjner5cbjre4I1_06VCbjreRRQ2Ri
+.weak b__MA7naqebvq2fcVAF_8uneqjner5cbjre4I1_06VCbjreRRQ2Ri
 .type b__MA7naqebvq2fcVAF_8uneqjner5cbjre4I1_06VCbjreRRQ2Ri,%function
 b__MA7naqebvq2fcVAF_8uneqjner5cbjre4I1_06VCbjreRRQ2Ri:
 nop
@@ -2850,7 +2850,7 @@
 b__MA7naqebvq6freire14OebnqpnfgEnqvb7pbaireg15ZrgnqngnSebzUnyRC7_WAVRaiEXAF_8uneqjner8uvqy_irpVAF5_14oebnqpnfgenqvb4I1_08ZrgnQngnRRR:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq6freire14OebnqpnfgEnqvb7ertvbaf18ErtvbanyOnaqPbasvtRAF_9nyybpngbeVF5_RRR26__fjnc_bhg_pvephyne_ohssreREAF_14__fcyvg_ohssreVF5_EF7_RRCF5_
+.weak b__MAFg3__16irpgbeVA7naqebvq6freire14OebnqpnfgEnqvb7ertvbaf18ErtvbanyOnaqPbasvtRAF_9nyybpngbeVF5_RRR26__fjnc_bhg_pvephyne_ohssreREAF_14__fcyvg_ohssreVF5_EF7_RRCF5_
 .type b__MAFg3__16irpgbeVA7naqebvq6freire14OebnqpnfgEnqvb7ertvbaf18ErtvbanyOnaqPbasvtRAF_9nyybpngbeVF5_RRR26__fjnc_bhg_pvephyne_ohssreREAF_14__fcyvg_ohssreVF5_EF7_RRCF5_,%function
 b__MAFg3__16irpgbeVA7naqebvq6freire14OebnqpnfgEnqvb7ertvbaf18ErtvbanyOnaqPbasvtRAF_9nyybpngbeVF5_RRR26__fjnc_bhg_pvephyne_ohssreREAF_14__fcyvg_ohssreVF5_EF7_RRCF5_:
 nop
@@ -2860,7 +2860,7 @@
 b__MA7naqebvq25tCbjreFgngfUnyCyngsbezVqfR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRRRAF_22__habeqrerq_znc_unfureVwF8_AF_4unfuVwRRYo1RRRAF_21__habeqrerq_znc_rdhnyVwF8_AF_8rdhny_gbVwRRYo1RRRAF5_VF8_RRR25__rzcynpr_havdhr_xrl_netfVwWEXAF_4cnveVXwF7_RRRRRAFX_VAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF8_CiRRRRoRREXG_QcBG0_
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRRRAF_22__habeqrerq_znc_unfureVwF8_AF_4unfuVwRRYo1RRRAF_21__habeqrerq_znc_rdhnyVwF8_AF_8rdhny_gbVwRRYo1RRRAF5_VF8_RRR25__rzcynpr_havdhr_xrl_netfVwWEXAF_4cnveVXwF7_RRRRRAFX_VAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF8_CiRRRRoRREXG_QcBG0_
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRRRAF_22__habeqrerq_znc_unfureVwF8_AF_4unfuVwRRYo1RRRAF_21__habeqrerq_znc_rdhnyVwF8_AF_8rdhny_gbVwRRYo1RRRAF5_VF8_RRR25__rzcynpr_havdhr_xrl_netfVwWEXAF_4cnveVXwF7_RRRRRAFX_VAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF8_CiRRRRoRREXG_QcBG0_,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVwAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRRRAF_22__habeqrerq_znc_unfureVwF8_AF_4unfuVwRRYo1RRRAF_21__habeqrerq_znc_rdhnyVwF8_AF_8rdhny_gbVwRRYo1RRRAF5_VF8_RRR25__rzcynpr_havdhr_xrl_netfVwWEXAF_4cnveVXwF7_RRRRRAFX_VAF_15__unfu_vgrengbeVCAF_11__unfu_abqrVF8_CiRRRRoRREXG_QcBG0_:
 nop
@@ -2870,17 +2870,17 @@
 b__MA7naqebvq16WninZrgubqUrycreVgR10fvtangher_R:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq3ocs10fgngf_yvarRAF_9nyybpngbeVF3_RRR21__chfu_onpx_fybj_cnguVEXF3_RRiBG_
+.weak b__MAFg3__16irpgbeVA7naqebvq3ocs10fgngf_yvarRAF_9nyybpngbeVF3_RRR21__chfu_onpx_fybj_cnguVEXF3_RRiBG_
 .type b__MAFg3__16irpgbeVA7naqebvq3ocs10fgngf_yvarRAF_9nyybpngbeVF3_RRR21__chfu_onpx_fybj_cnguVEXF3_RRiBG_,%function
 b__MAFg3__16irpgbeVA7naqebvq3ocs10fgngf_yvarRAF_9nyybpngbeVF3_RRR21__chfu_onpx_fybj_cnguVEXF3_RRiBG_:
 nop
 .text
-.globl b__MAXFg3__110__shapgvba6__shapVMA7naqebvq12znxr_wninersVC8_wfgevatRRAF_10havdhr_cgeVAF_14erzbir_cbvagreVG_R4glcrRAF_8shapgvbaVSiF8_RRRRRC7_WAVRaiF8_RHyF5_R_AF_9nyybpngbeVFU_RRSiF5_RR7__pybarRCAF0_6__onfrVFX_RR
+.weak b__MAXFg3__110__shapgvba6__shapVMA7naqebvq12znxr_wninersVC8_wfgevatRRAF_10havdhr_cgeVAF_14erzbir_cbvagreVG_R4glcrRAF_8shapgvbaVSiF8_RRRRRC7_WAVRaiF8_RHyF5_R_AF_9nyybpngbeVFU_RRSiF5_RR7__pybarRCAF0_6__onfrVFX_RR
 .type b__MAXFg3__110__shapgvba6__shapVMA7naqebvq12znxr_wninersVC8_wfgevatRRAF_10havdhr_cgeVAF_14erzbir_cbvagreVG_R4glcrRAF_8shapgvbaVSiF8_RRRRRC7_WAVRaiF8_RHyF5_R_AF_9nyybpngbeVFU_RRSiF5_RR7__pybarRCAF0_6__onfrVFX_RR,%function
 b__MAXFg3__110__shapgvba6__shapVMA7naqebvq12znxr_wninersVC8_wfgevatRRAF_10havdhr_cgeVAF_14erzbir_cbvagreVG_R4glcrRAF_8shapgvbaVSiF8_RRRRRC7_WAVRaiF8_RHyF5_R_AF_9nyybpngbeVFU_RRSiF5_RR7__pybarRCAF0_6__onfrVFX_RR:
 nop
 .data
-.globl b__MGIAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
+.weak b__MGIAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
 .type b__MGIAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR,%object
 b__MGIAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR:
 .space __SIZEOF_POINTER__
@@ -2890,7 +2890,7 @@
 b__MGPA7naqebvq6freire14OebnqpnfgEnqvb5Ghare17UnyQrnguErpvcvragR0_AF_8uneqjner20uvqy_qrngu_erpvcvragR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIA7naqebvq24GureznyUnyQrnguErpvcvragR
+.weak b__MGIA7naqebvq24GureznyUnyQrnguErpvcvragR
 .type b__MGIA7naqebvq24GureznyUnyQrnguErpvcvragR,%object
 b__MGIA7naqebvq24GureznyUnyQrnguErpvcvragR:
 .space __SIZEOF_POINTER__
@@ -2925,7 +2925,7 @@
 b__MA7naqebvq17ranoyrNhgbFhfcraqRi:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_11WGiVachgUny10PbaarpgvbaRRRR15qb_zbir_sbejneqRCiCXiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_11WGiVachgUny10PbaarpgvbaRRRR15qb_zbir_sbejneqRCiCXiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_11WGiVachgUny10PbaarpgvbaRRRR15qb_zbir_sbejneqRCiCXiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_11WGiVachgUny10PbaarpgvbaRRRR15qb_zbir_sbejneqRCiCXiz:
 nop
@@ -2935,7 +2935,7 @@
 b__MA7naqebvq17UqzvPrpPbagebyyre15UqzvPrpPnyyonpx12baPrpZrffntrREXAF_8uneqjner2gi3prp4I1_010PrpZrffntrR:
 nop
 .text
-.globl b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRuRRAF_22__habeqrerq_znc_unfureVF7_F8_AF_4unfuVF7_RRYo1RRRAF_21__habeqrerq_znc_rdhnyVF7_F8_AF_8rdhny_gbVF7_RRYo1RRRAF5_VF8_RRR6erunfuRz
+.weak b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRuRRAF_22__habeqrerq_znc_unfureVF7_F8_AF_4unfuVF7_RRYo1RRRAF_21__habeqrerq_znc_rdhnyVF7_F8_AF_8rdhny_gbVF7_RRYo1RRRAF5_VF8_RRR6erunfuRz
 .type b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRuRRAF_22__habeqrerq_znc_unfureVF7_F8_AF_4unfuVF7_RRYo1RRRAF_21__habeqrerq_znc_rdhnyVF7_F8_AF_8rdhny_gbVF7_RRYo1RRRAF5_VF8_RRR6erunfuRz,%function
 b__MAFg3__112__unfu_gnoyrVAF_17__unfu_inyhr_glcrVAF_12onfvp_fgevatVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRRuRRAF_22__habeqrerq_znc_unfureVF7_F8_AF_4unfuVF7_RRYo1RRRAF_21__habeqrerq_znc_rdhnyVF7_F8_AF_8rdhny_gbVF7_RRYo1RRRAF5_VF8_RRR6erunfuRz:
 nop
@@ -2945,7 +2945,7 @@
 b__MA7naqebvq20TaffTrbsraprPnyyonpx20taffTrbsraprErfhzrPoRvAF_8uneqjner4taff4I1_021VTaffTrbsraprPnyyonpx14TrbsraprFgnghfR:
 nop
 .text
-.globl b__MA7naqebvq2fcVAF_8uneqjner4taff4I2_013VTaffOngpuvatRRQ2Ri
+.weak b__MA7naqebvq2fcVAF_8uneqjner4taff4I2_013VTaffOngpuvatRRQ2Ri
 .type b__MA7naqebvq2fcVAF_8uneqjner4taff4I2_013VTaffOngpuvatRRQ2Ri,%function
 b__MA7naqebvq2fcVAF_8uneqjner4taff4I2_013VTaffOngpuvatRRQ2Ri:
 nop
@@ -2955,17 +2955,17 @@
 b__MA7naqebvq38ertvfgre_naqebvq_freire_HfoUbfgZnantreRC7_WAVRai:
 nop
 .data
-.globl b__MGPA7naqebvq20NvqyIvoengbePnyyonpxR0_AF_11OaVagresnprVAF_8uneqjner8ivoengbe17VIvoengbePnyyonpxRRR
+.weak b__MGPA7naqebvq20NvqyIvoengbePnyyonpxR0_AF_11OaVagresnprVAF_8uneqjner8ivoengbe17VIvoengbePnyyonpxRRR
 .type b__MGPA7naqebvq20NvqyIvoengbePnyyonpxR0_AF_11OaVagresnprVAF_8uneqjner8ivoengbe17VIvoengbePnyyonpxRRR,%object
 b__MGPA7naqebvq20NvqyIvoengbePnyyonpxR0_AF_11OaVagresnprVAF_8uneqjner8ivoengbe17VIvoengbePnyyonpxRRR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVvA7naqebvq10FcevgrVpbaRRRAF_19__znc_inyhr_pbzcnerVvF4_AF_4yrffVvRRYo1RRRAF_9nyybpngbeVF4_RRR25__rzcynpr_havdhr_xrl_netfVvWEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXvRRRAFT_VWRRRRRRAF_4cnveVAF_15__gerr_vgrengbeVF4_CAF_11__gerr_abqrVF4_CiRRyRRoRREXG_QcBG0_
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVvA7naqebvq10FcevgrVpbaRRRAF_19__znc_inyhr_pbzcnerVvF4_AF_4yrffVvRRYo1RRRAF_9nyybpngbeVF4_RRR25__rzcynpr_havdhr_xrl_netfVvWEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXvRRRAFT_VWRRRRRRAF_4cnveVAF_15__gerr_vgrengbeVF4_CAF_11__gerr_abqrVF4_CiRRyRRoRREXG_QcBG0_
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVvA7naqebvq10FcevgrVpbaRRRAF_19__znc_inyhr_pbzcnerVvF4_AF_4yrffVvRRYo1RRRAF_9nyybpngbeVF4_RRR25__rzcynpr_havdhr_xrl_netfVvWEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXvRRRAFT_VWRRRRRRAF_4cnveVAF_15__gerr_vgrengbeVF4_CAF_11__gerr_abqrVF4_CiRRyRRoRREXG_QcBG0_,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVvA7naqebvq10FcevgrVpbaRRRAF_19__znc_inyhr_pbzcnerVvF4_AF_4yrffVvRRYo1RRRAF_9nyybpngbeVF4_RRR25__rzcynpr_havdhr_xrl_netfVvWEXAF_21cvrprjvfr_pbafgehpg_gRAF_5ghcyrVWEXvRRRAFT_VWRRRRRRAF_4cnveVAF_15__gerr_vgrengbeVF4_CAF_11__gerr_abqrVF4_CiRRyRRoRREXG_QcBG0_:
 nop
 .text
-.globl b__MAXFg3__110__shapgvba6__shapVMA7naqebvq12znxr_wninersVC11_wolgrNeenlRRAF_10havdhr_cgeVAF_14erzbir_cbvagreVG_R4glcrRAF_8shapgvbaVSiF8_RRRRRC7_WAVRaiF8_RHyF5_R_AF_9nyybpngbeVFU_RRSiF5_RR7__pybarRCAF0_6__onfrVFX_RR
+.weak b__MAXFg3__110__shapgvba6__shapVMA7naqebvq12znxr_wninersVC11_wolgrNeenlRRAF_10havdhr_cgeVAF_14erzbir_cbvagreVG_R4glcrRAF_8shapgvbaVSiF8_RRRRRC7_WAVRaiF8_RHyF5_R_AF_9nyybpngbeVFU_RRSiF5_RR7__pybarRCAF0_6__onfrVFX_RR
 .type b__MAXFg3__110__shapgvba6__shapVMA7naqebvq12znxr_wninersVC11_wolgrNeenlRRAF_10havdhr_cgeVAF_14erzbir_cbvagreVG_R4glcrRAF_8shapgvbaVSiF8_RRRRRC7_WAVRaiF8_RHyF5_R_AF_9nyybpngbeVFU_RRSiF5_RR7__pybarRCAF0_6__onfrVFX_RR,%function
 b__MAXFg3__110__shapgvba6__shapVMA7naqebvq12znxr_wninersVC11_wolgrNeenlRRAF_10havdhr_cgeVAF_14erzbir_cbvagreVG_R4glcrRAF_8shapgvbaVSiF8_RRRRRC7_WAVRaiF8_RHyF5_R_AF_9nyybpngbeVFU_RRSiF5_RR7__pybarRCAF0_6__onfrVFX_RR:
 nop
@@ -2995,7 +2995,7 @@
 b__MGIA7naqebvq18NTaffPnyyonpx_I1_0R:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__110__shapgvba6__shapVMA7naqebvq12znxr_wninersVC8_wbowrpgRRAF_10havdhr_cgeVAF_14erzbir_cbvagreVG_R4glcrRAF_8shapgvbaVSiF8_RRRRRC7_WAVRaiF8_RHyF5_R_AF_9nyybpngbeVFU_RRSiF5_RR7qrfgeblRi
+.weak b__MAFg3__110__shapgvba6__shapVMA7naqebvq12znxr_wninersVC8_wbowrpgRRAF_10havdhr_cgeVAF_14erzbir_cbvagreVG_R4glcrRAF_8shapgvbaVSiF8_RRRRRC7_WAVRaiF8_RHyF5_R_AF_9nyybpngbeVFU_RRSiF5_RR7qrfgeblRi
 .type b__MAFg3__110__shapgvba6__shapVMA7naqebvq12znxr_wninersVC8_wbowrpgRRAF_10havdhr_cgeVAF_14erzbir_cbvagreVG_R4glcrRAF_8shapgvbaVSiF8_RRRRRC7_WAVRaiF8_RHyF5_R_AF_9nyybpngbeVFU_RRSiF5_RR7qrfgeblRi,%function
 b__MAFg3__110__shapgvba6__shapVMA7naqebvq12znxr_wninersVC8_wbowrpgRRAF_10havdhr_cgeVAF_14erzbir_cbvagreVG_R4glcrRAF_8shapgvbaVSiF8_RRRRRC7_WAVRaiF8_RHyF5_R_AF_9nyybpngbeVFU_RRSiF5_RR7qrfgeblRi:
 nop
@@ -3015,7 +3015,7 @@
 b__MGIA7naqebvq6freire14OebnqpnfgEnqvb13GharePnyyonpx14AngvirPnyyonpxR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAXFg3__110__shapgvba6__shapVMA7naqebvq12znxr_wninersVC10_wvagNeenlRRAF_10havdhr_cgeVAF_14erzbir_cbvagreVG_R4glcrRAF_8shapgvbaVSiF8_RRRRRC7_WAVRaiF8_RHyF5_R_AF_9nyybpngbeVFU_RRSiF5_RR7__pybarRCAF0_6__onfrVFX_RR
+.weak b__MAXFg3__110__shapgvba6__shapVMA7naqebvq12znxr_wninersVC10_wvagNeenlRRAF_10havdhr_cgeVAF_14erzbir_cbvagreVG_R4glcrRAF_8shapgvbaVSiF8_RRRRRC7_WAVRaiF8_RHyF5_R_AF_9nyybpngbeVFU_RRSiF5_RR7__pybarRCAF0_6__onfrVFX_RR
 .type b__MAXFg3__110__shapgvba6__shapVMA7naqebvq12znxr_wninersVC10_wvagNeenlRRAF_10havdhr_cgeVAF_14erzbir_cbvagreVG_R4glcrRAF_8shapgvbaVSiF8_RRRRRC7_WAVRaiF8_RHyF5_R_AF_9nyybpngbeVFU_RRSiF5_RR7__pybarRCAF0_6__onfrVFX_RR,%function
 b__MAXFg3__110__shapgvba6__shapVMA7naqebvq12znxr_wninersVC10_wvagNeenlRRAF_10havdhr_cgeVAF_14erzbir_cbvagreVG_R4glcrRAF_8shapgvbaVSiF8_RRRRRC7_WAVRaiF8_RHyF5_R_AF_9nyybpngbeVFU_RRSiF5_RR7__pybarRCAF0_6__onfrVFX_RR:
 nop
@@ -3025,12 +3025,12 @@
 b__MA7naqebvq10WninBowrpgP2RC7_WAVRaiC7_wpynffC10_wzrgubqVQCXp:
 nop
 .text
-.globl b__MA7naqebvq2fcVAF_8uneqjner4taff4I1_016VTaffZrnfherzragRRQ2Ri
+.weak b__MA7naqebvq2fcVAF_8uneqjner4taff4I1_016VTaffZrnfherzragRRQ2Ri
 .type b__MA7naqebvq2fcVAF_8uneqjner4taff4I1_016VTaffZrnfherzragRRQ2Ri,%function
 b__MA7naqebvq2fcVAF_8uneqjner4taff4I1_016VTaffZrnfherzragRRQ2Ri:
 nop
 .data
-.globl b__MGIAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
+.weak b__MGIAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR
 .type b__MGIAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR,%object
 b__MGIAFg3__119onfvp_bfgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR:
 .space __SIZEOF_POINTER__
@@ -3040,12 +3040,12 @@
 b__MA7naqebvq52ertvfgre_naqebvq_freire_oebnqpnfgenqvb_GharePnyyonpxRC7_WninIZC7_WAVRai:
 nop
 .text
-.globl b__MAXFg3__110__shapgvba6__shapVMA7naqebvq12znxr_wninersVC13_wbowrpgNeenlRRAF_10havdhr_cgeVAF_14erzbir_cbvagreVG_R4glcrRAF_8shapgvbaVSiF8_RRRRRC7_WAVRaiF8_RHyF5_R_AF_9nyybpngbeVFU_RRSiF5_RR7__pybarRi
+.weak b__MAXFg3__110__shapgvba6__shapVMA7naqebvq12znxr_wninersVC13_wbowrpgNeenlRRAF_10havdhr_cgeVAF_14erzbir_cbvagreVG_R4glcrRAF_8shapgvbaVSiF8_RRRRRC7_WAVRaiF8_RHyF5_R_AF_9nyybpngbeVFU_RRSiF5_RR7__pybarRi
 .type b__MAXFg3__110__shapgvba6__shapVMA7naqebvq12znxr_wninersVC13_wbowrpgNeenlRRAF_10havdhr_cgeVAF_14erzbir_cbvagreVG_R4glcrRAF_8shapgvbaVSiF8_RRRRRC7_WAVRaiF8_RHyF5_R_AF_9nyybpngbeVFU_RRSiF5_RR7__pybarRi,%function
 b__MAXFg3__110__shapgvba6__shapVMA7naqebvq12znxr_wninersVC13_wbowrpgNeenlRRAF_10havdhr_cgeVAF_14erzbir_cbvagreVG_R4glcrRAF_8shapgvbaVSiF8_RRRRRC7_WAVRaiF8_RHyF5_R_AF_9nyybpngbeVFU_RRSiF5_RR7__pybarRi:
 nop
 .text
-.globl b__MA7naqebvq2fcVAF_8uneqjner4taff4I2_05VTaffRRQ2Ri
+.weak b__MA7naqebvq2fcVAF_8uneqjner4taff4I2_05VTaffRRQ2Ri
 .type b__MA7naqebvq2fcVAF_8uneqjner4taff4I2_05VTaffRRQ2Ri,%function
 b__MA7naqebvq2fcVAF_8uneqjner4taff4I2_05VTaffRRQ2Ri:
 nop
@@ -3060,7 +3060,7 @@
 b__MA7naqebvq12TaffPnyyonpx18taffYbpngvbaPo_2_0REXAF_8uneqjner4taff4I2_012TaffYbpngvbaR:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_11WGiVachgUny10PbaarpgvbaRRRR10qb_pbzcnerRCXiF7_
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_11WGiVachgUny10PbaarpgvbaRRRR10qb_pbzcnerRCXiF7_
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_11WGiVachgUny10PbaarpgvbaRRRR10qb_pbzcnerRCXiF7_,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_11WGiVachgUny10PbaarpgvbaRRRR10qb_pbzcnerRCXiF7_:
 nop
@@ -3080,7 +3080,7 @@
 b__MGGA7naqebvq17UqzvPrpPbagebyyre15UqzvPrpPnyyonpxR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVvR10qb_pbzcnerRCXiF3_
+.weak b__MAX7naqebvq12FbegrqIrpgbeVvR10qb_pbzcnerRCXiF3_
 .type b__MAX7naqebvq12FbegrqIrpgbeVvR10qb_pbzcnerRCXiF3_,%function
 b__MAX7naqebvq12FbegrqIrpgbeVvR10qb_pbzcnerRCXiF3_:
 nop
@@ -3140,12 +3140,12 @@
 b__MGi0_a72_A7naqebvq18AngvirVachgZnantre22trgPhfgbzCbvagreVpbaVqRi:
 nop
 .text
-.globl b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_11XrlrqIrpgbeVvAF_11WGiVachgUny10PbaarpgvbaRRRRRR12qb_pbafgehpgRCiz
+.weak b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_11XrlrqIrpgbeVvAF_11WGiVachgUny10PbaarpgvbaRRRRRR12qb_pbafgehpgRCiz
 .type b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_11XrlrqIrpgbeVvAF_11WGiVachgUny10PbaarpgvbaRRRRRR12qb_pbafgehpgRCiz,%function
 b__MAX7naqebvq12FbegrqIrpgbeVAF_16xrl_inyhr_cnve_gVvAF_11XrlrqIrpgbeVvAF_11WGiVachgUny10PbaarpgvbaRRRRRR12qb_pbafgehpgRCiz:
 nop
 .data
-.globl b__MGGA7naqebvq14JnxrhcPnyyonpxR
+.weak b__MGGA7naqebvq14JnxrhcPnyyonpxR
 .type b__MGGA7naqebvq14JnxrhcPnyyonpxR,%object
 b__MGGA7naqebvq14JnxrhcPnyyonpxR:
 .space __SIZEOF_POINTER__
@@ -3170,12 +3170,12 @@
 b__MGIA7naqebvq20OhssreCebqhpreGuernqR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9haqresybjRi
+.weak b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9haqresybjRi
 .type b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9haqresybjRi,%function
 b__MAFg3__115onfvp_fgevatohsVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRR9haqresybjRi:
 nop
 .text
-.globl b__MAXFg3__110__shapgvba6__shapVCSiC7_WAVRaiC8_wbowrpgRAF_9nyybpngbeVF7_RRF6_R7__pybarRCAF0_6__onfrVF6_RR
+.weak b__MAXFg3__110__shapgvba6__shapVCSiC7_WAVRaiC8_wbowrpgRAF_9nyybpngbeVF7_RRF6_R7__pybarRCAF0_6__onfrVF6_RR
 .type b__MAXFg3__110__shapgvba6__shapVCSiC7_WAVRaiC8_wbowrpgRAF_9nyybpngbeVF7_RRF6_R7__pybarRCAF0_6__onfrVF6_RR,%function
 b__MAXFg3__110__shapgvba6__shapVCSiC7_WAVRaiC8_wbowrpgRAF_9nyybpngbeVF7_RRF6_R7__pybarRCAF0_6__onfrVF6_RR:
 nop
@@ -3190,12 +3190,12 @@
 b__MGIA7naqebvq12TaffPnyyonpxR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGIA7naqebvq25TaffOngpuvatPnyyonpx_I1_0R
+.weak b__MGIA7naqebvq25TaffOngpuvatPnyyonpx_I1_0R
 .type b__MGIA7naqebvq25TaffOngpuvatPnyyonpx_I1_0R,%object
 b__MGIA7naqebvq25TaffOngpuvatPnyyonpx_I1_0R:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MA7naqebvq2fcVAF_8uneqjner2ve4I1_011VPbafhzreVeRRQ2Ri
+.weak b__MA7naqebvq2fcVAF_8uneqjner2ve4I1_011VPbafhzreVeRRQ2Ri
 .type b__MA7naqebvq2fcVAF_8uneqjner2ve4I1_011VPbafhzreVeRRQ2Ri,%function
 b__MA7naqebvq2fcVAF_8uneqjner2ve4I1_011VPbafhzreVeRRQ2Ri:
 nop
@@ -3240,32 +3240,32 @@
 b__MA7naqebvq43ertvfgre_naqebvq_freire_ie_IeZnantreFreivprRC7_WAVRai:
 nop
 .data
-.globl b__MGPA7naqebvq20NvqyIvoengbePnyyonpxR0_AF_10VVagresnprR
+.weak b__MGPA7naqebvq20NvqyIvoengbePnyyonpxR0_AF_10VVagresnprR
 .type b__MGPA7naqebvq20NvqyIvoengbePnyyonpxR0_AF_10VVagresnprR,%object
 b__MGPA7naqebvq20NvqyIvoengbePnyyonpxR0_AF_10VVagresnprR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGGA7naqebvq20NvqyIvoengbePnyyonpxR
+.weak b__MGGA7naqebvq20NvqyIvoengbePnyyonpxR
 .type b__MGGA7naqebvq20NvqyIvoengbePnyyonpxR,%object
 b__MGGA7naqebvq20NvqyIvoengbePnyyonpxR:
 .space __SIZEOF_POINTER__
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq6freire14OebnqpnfgEnqvb21OebnqpnfgEnqvbFreivpr6ZbqhyrRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_
+.weak b__MAFg3__16irpgbeVA7naqebvq6freire14OebnqpnfgEnqvb21OebnqpnfgEnqvbFreivpr6ZbqhyrRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_
 .type b__MAFg3__16irpgbeVA7naqebvq6freire14OebnqpnfgEnqvb21OebnqpnfgEnqvbFreivpr6ZbqhyrRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_,%function
 b__MAFg3__16irpgbeVA7naqebvq6freire14OebnqpnfgEnqvb21OebnqpnfgEnqvbFreivpr6ZbqhyrRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_:
 nop
 .text
-.globl b__MAFg3__16irpgbeVA7naqebvq6freire14OebnqpnfgEnqvb7ertvbaf18ErtvbanyOnaqPbasvtRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_
+.weak b__MAFg3__16irpgbeVA7naqebvq6freire14OebnqpnfgEnqvb7ertvbaf18ErtvbanyOnaqPbasvtRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_
 .type b__MAFg3__16irpgbeVA7naqebvq6freire14OebnqpnfgEnqvb7ertvbaf18ErtvbanyOnaqPbasvtRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_,%function
 b__MAFg3__16irpgbeVA7naqebvq6freire14OebnqpnfgEnqvb7ertvbaf18ErtvbanyOnaqPbasvtRAF_9nyybpngbeVF5_RRR21__chfu_onpx_fybj_cnguVF5_RRiBG_:
 nop
 .text
-.globl b__MA7naqebvq2fcVAF_8uneqjner5cbjre5fgngf4I1_011VCbjreFgngfRRQ2Ri
+.weak b__MA7naqebvq2fcVAF_8uneqjner5cbjre5fgngf4I1_011VCbjreFgngfRRQ2Ri
 .type b__MA7naqebvq2fcVAF_8uneqjner5cbjre5fgngf4I1_011VCbjreFgngfRRQ2Ri,%function
 b__MA7naqebvq2fcVAF_8uneqjner5cbjre5fgngf4I1_011VCbjreFgngfRRQ2Ri:
 nop
 .data
-.globl b__MGPA7naqebvq14JnxrhcPnyyonpxR8_AF_7VOvaqreR
+.weak b__MGPA7naqebvq14JnxrhcPnyyonpxR8_AF_7VOvaqreR
 .type b__MGPA7naqebvq14JnxrhcPnyyonpxR8_AF_7VOvaqreR,%object
 b__MGPA7naqebvq14JnxrhcPnyyonpxR8_AF_7VOvaqreR:
 .space __SIZEOF_POINTER__
@@ -3280,12 +3280,12 @@
 b__MA7naqebvq18AngvirVachgZnantre20frgVachgQvfcngpuZbqrRoo:
 nop
 .data
-.globl b__MGIA7naqebvq12FbegrqIrpgbeVvRR
+.weak b__MGIA7naqebvq12FbegrqIrpgbeVvRR
 .type b__MGIA7naqebvq12FbegrqIrpgbeVvRR,%object
 b__MGIA7naqebvq12FbegrqIrpgbeVvRR:
 .space __SIZEOF_POINTER__
 .data
-.globl b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_13onfvp_vfgernzVpF2_RR
+.weak b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_13onfvp_vfgernzVpF2_RR
 .type b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_13onfvp_vfgernzVpF2_RR,%object
 b__MGPAFg3__118onfvp_fgevatfgernzVpAF_11pune_genvgfVpRRAF_9nyybpngbeVpRRRR0_AF_13onfvp_vfgernzVpF2_RR:
 .space __SIZEOF_POINTER__
@@ -3310,7 +3310,7 @@
 b__MA7naqebvq18AngvirVachgZnantre26trgQvfcngpurePbasvthengvbaRCAF_28VachgQvfcngpurePbasvthengvbaR:
 nop
 .text
-.globl b__MAFg3__16__gerrVAF_12__inyhr_glcrVvvRRAF_19__znc_inyhr_pbzcnerVvF2_AF_4yrffVvRRYo1RRRAF_9nyybpngbeVF2_RRR7qrfgeblRCAF_11__gerr_abqrVF2_CiRR
+.weak b__MAFg3__16__gerrVAF_12__inyhr_glcrVvvRRAF_19__znc_inyhr_pbzcnerVvF2_AF_4yrffVvRRYo1RRRAF_9nyybpngbeVF2_RRR7qrfgeblRCAF_11__gerr_abqrVF2_CiRR
 .type b__MAFg3__16__gerrVAF_12__inyhr_glcrVvvRRAF_19__znc_inyhr_pbzcnerVvF2_AF_4yrffVvRRYo1RRRAF_9nyybpngbeVF2_RRR7qrfgeblRCAF_11__gerr_abqrVF2_CiRR,%function
 b__MAFg3__16__gerrVAF_12__inyhr_glcrVvvRRAF_19__znc_inyhr_pbzcnerVvF2_AF_4yrffVvRRYo1RRRAF_9nyybpngbeVF2_RRR7qrfgeblRCAF_11__gerr_abqrVF2_CiRR:
 nop
@@ -3320,7 +3320,7 @@
 b__MA7naqebvq6freire14OebnqpnfgEnqvb7pbaireg14QverpgvbaGbUnyRo:
 nop
 .data
-.globl b__MGPA7naqebvq14JnxrhcPnyyonpxR0_AF_6flfgrz7fhfcraq16VFhfcraqPnyyonpxR
+.weak b__MGPA7naqebvq14JnxrhcPnyyonpxR0_AF_6flfgrz7fhfcraq16VFhfcraqPnyyonpxR
 .type b__MGPA7naqebvq14JnxrhcPnyyonpxR0_AF_6flfgrz7fhfcraq16VFhfcraqPnyyonpxR,%object
 b__MGPA7naqebvq14JnxrhcPnyyonpxR0_AF_6flfgrz7fhfcraq16VFhfcraqPnyyonpxR:
 .space __SIZEOF_POINTER__
@@ -3360,7 +3360,7 @@
 b_Wnin_pbz_naqebvq_freire_hfo_qrfpevcgbef_HfoQrfpevcgbeCnefre_trgQrfpevcgbeFgevat_1angvir:
 nop
 .text
-.globl b__MAFg3__112__qrdhr_onfrVAF_8shapgvbaVSiC7_WAVRaiRRRAF_9nyybpngbeVF5_RRR5pyrneRi
+.weak b__MAFg3__112__qrdhr_onfrVAF_8shapgvbaVSiC7_WAVRaiRRRAF_9nyybpngbeVF5_RRR5pyrneRi
 .type b__MAFg3__112__qrdhr_onfrVAF_8shapgvbaVSiC7_WAVRaiRRRAF_9nyybpngbeVF5_RRR5pyrneRi,%function
 b__MAFg3__112__qrdhr_onfrVAF_8shapgvbaVSiC7_WAVRaiRRRAF_9nyybpngbeVF5_RRR5pyrneRi:
 nop
diff --git a/benchmarks/linker_relocation/include/linker_reloc_bench_asm.h b/benchmarks/linker_relocation/include/linker_reloc_bench_asm.h
index 885e47f..ea63e36 100644
--- a/benchmarks/linker_relocation/include/linker_reloc_bench_asm.h
+++ b/benchmarks/linker_relocation/include/linker_reloc_bench_asm.h
@@ -44,9 +44,7 @@
 
 #elif defined(__riscv)
 
-// No `lga` in clang unless https://reviews.llvm.org/D107278 lands.
-// `la` is equivalent when using PIC (which we do) though.
-#define GOT_RELOC(sym) la a0, sym
+#define GOT_RELOC(sym) lga a0, sym
 #define CALL(sym) call sym@plt
 #define DATA_WORD(val) .quad val
 #define MAIN .globl main; main: li a0, 0; ret
diff --git a/benchmarks/linker_relocation/regen/gen_bench.py b/benchmarks/linker_relocation/regen/gen_bench.py
index 6533189..fa6f1a1 100755
--- a/benchmarks/linker_relocation/regen/gen_bench.py
+++ b/benchmarks/linker_relocation/regen/gen_bench.py
@@ -46,7 +46,7 @@
 from subprocess import PIPE, DEVNULL
 from pathlib import Path
 
-from common_types import LoadedLibrary, SymbolRef, SymKind, bfs_walk, json_to_elf_tree
+from common_types import LoadedLibrary, SymbolRef, SymBind, SymKind, bfs_walk, json_to_elf_tree
 
 
 g_obfuscate = True
@@ -115,9 +115,13 @@
     'getprogname',
     'gettid',
     'isnanf',
+    'lseek64',
+    'lstat64',
     'mallinfo',
     'malloc_info',
+    'pread64',
     'pthread_gettid_np',
+    'pwrite64',
     'res_mkquery',
     'strlcpy',
     'strtoll_l',
@@ -191,15 +195,16 @@
             if not d.defined: continue
             sym = trans_sym(d.name, None)
             if sym is None: continue
+            binding = 'weak' if d.bind == SymBind.Weak else 'globl'
             if d.kind == SymKind.Func:
                 out.write('.text\n'
-                          f'.globl {sym}\n'
+                          f'.{binding} {sym}\n'
                           f'.type {sym},%function\n'
                           f'{sym}:\n'
                           'nop\n')
             else: # SymKind.Var
                 out.write('.data\n'
-                          f'.globl {sym}\n'
+                          f'.{binding} {sym}\n'
                           f'.type {sym},%object\n'
                           f'{sym}:\n'
                           f'.space __SIZEOF_POINTER__\n')
diff --git a/benchmarks/malloc_benchmark.cpp b/benchmarks/malloc_benchmark.cpp
index e733cd0..8f467d2 100644
--- a/benchmarks/malloc_benchmark.cpp
+++ b/benchmarks/malloc_benchmark.cpp
@@ -29,14 +29,21 @@
 #include <malloc.h>
 #include <unistd.h>
 
+#include <condition_variable>
+#include <mutex>
+#include <random>
+#include <thread>
 #include <vector>
 
 #include <benchmark/benchmark.h>
+#include "ScopedDecayTimeRestorer.h"
 #include "util.h"
 
 #if defined(__BIONIC__)
 
 static void RunMalloptPurge(benchmark::State& state, int purge_value) {
+  ScopedDecayTimeRestorer restorer;
+
   static size_t sizes[] = {8, 16, 32, 64, 128, 1024, 4096, 16384, 65536, 131072, 1048576};
   static int pagesize = getpagesize();
   mallopt(M_DECAY_TIME, 1);
@@ -65,7 +72,89 @@
 
     mallopt(purge_value, 0);
   }
-  mallopt(M_DECAY_TIME, 0);
+}
+
+static void RunThreadsThroughput(benchmark::State& state, size_t size, size_t num_threads) {
+  constexpr size_t kMaxBytes = 1 << 24;
+  constexpr size_t kMaxThreads = 8;
+  constexpr size_t kMinRounds = 4;
+  const size_t MaxAllocCounts = kMaxBytes / size;
+  std::mutex m;
+  bool ready = false;
+  std::condition_variable cv;
+  std::thread* threads[kMaxThreads];
+
+  // The goal is to create malloc/free interleaving patterns across threads.
+  // The bytes processed by each thread will be the same. The difference is the
+  // patterns. Here's an example:
+  //
+  // A: Allocation
+  // D: Deallocation
+  //
+  //   T1    T2    T3
+  //   A     A     A
+  //   A     A     D
+  //   A     D     A
+  //   A     D     D
+  //   D     A     A
+  //   D     A     D
+  //   D     D     A
+  //   D     D     D
+  //
+  // To do this, `AllocCounts` and `AllocRounds` will be adjusted according to the
+  // thread id.
+  auto thread_task = [&](size_t id) {
+    {
+      std::unique_lock lock(m);
+      // Wait until all threads are created.
+      cv.wait(lock, [&] { return ready; });
+    }
+
+    void** MemPool;
+    const size_t AllocCounts = (MaxAllocCounts >> id);
+    const size_t AllocRounds = (kMinRounds << id);
+    MemPool = new void*[AllocCounts];
+
+    for (size_t i = 0; i < AllocRounds; ++i) {
+      for (size_t j = 0; j < AllocCounts; ++j) {
+        void* ptr = malloc(size);
+        MemPool[j] = ptr;
+      }
+
+      // Use a fix seed to reduce the noise of different round of benchmark.
+      const unsigned seed = 33529;
+      std::shuffle(MemPool, &MemPool[AllocCounts], std::default_random_engine(seed));
+
+      for (size_t j = 0; j < AllocCounts; ++j) free(MemPool[j]);
+    }
+
+    delete[] MemPool;
+  };
+
+  for (auto _ : state) {
+    state.PauseTiming();
+    // Don't need to acquire the lock because no thread is created.
+    ready = false;
+
+    for (size_t i = 0; i < num_threads; ++i) threads[i] = new std::thread(thread_task, i);
+
+    state.ResumeTiming();
+
+    {
+      std::unique_lock lock(m);
+      ready = true;
+    }
+
+    cv.notify_all();
+
+    for (size_t i = 0; i < num_threads; ++i) {
+      threads[i]->join();
+      delete threads[i];
+    }
+  }
+
+  const size_t ThreadsBytesProcessed = kMaxBytes * kMinRounds * num_threads;
+  state.SetBytesProcessed(ThreadsBytesProcessed * static_cast<size_t>(state.iterations()));
 }
 
 static void BM_mallopt_purge(benchmark::State& state) {
@@ -78,4 +167,23 @@
 }
 BIONIC_BENCHMARK(BM_mallopt_purge_all);
 
+// Note that this will only test a single size class at a time so that we can
+// observe the impact of contention more often.
+#define BM_MALLOC_THREADS_THROUGHPUT(SIZE, NUM_THREADS)                                      \
+  static void BM_malloc_threads_throughput_##SIZE##_##NUM_THREADS(benchmark::State& state) { \
+    RunThreadsThroughput(state, SIZE, NUM_THREADS);                                          \
+  }                                                                                          \
+  BIONIC_BENCHMARK(BM_malloc_threads_throughput_##SIZE##_##NUM_THREADS);
+
+// There are three block categories in Scudo, we choose 1 from each category.
+BM_MALLOC_THREADS_THROUGHPUT(64, 2);
+BM_MALLOC_THREADS_THROUGHPUT(64, 4);
+BM_MALLOC_THREADS_THROUGHPUT(64, 8);
+BM_MALLOC_THREADS_THROUGHPUT(512, 2);
+BM_MALLOC_THREADS_THROUGHPUT(512, 4);
+BM_MALLOC_THREADS_THROUGHPUT(512, 8);
+BM_MALLOC_THREADS_THROUGHPUT(8192, 2);
+BM_MALLOC_THREADS_THROUGHPUT(8192, 4);
+BM_MALLOC_THREADS_THROUGHPUT(8192, 8);
+
 #endif
diff --git a/benchmarks/malloc_map_benchmark.cpp b/benchmarks/malloc_map_benchmark.cpp
index 5757325..04c9a07 100644
--- a/benchmarks/malloc_map_benchmark.cpp
+++ b/benchmarks/malloc_map_benchmark.cpp
@@ -52,7 +52,7 @@
         android::base::StartsWith(vma.name, "[anon:GWP-ASan")) {
       android::meminfo::Vma update_vma(vma);
       if (!proc_mem.FillInVmaStats(update_vma)) {
-        err(1, "FillInVmaStats failed\n");
+        err(1, "FillInVmaStats failed");
       }
       *rss_bytes += update_vma.usage.rss;
     }
diff --git a/benchmarks/malloc_sql_benchmark.cpp b/benchmarks/malloc_sql_benchmark.cpp
index 383325c..d5b17f6 100644
--- a/benchmarks/malloc_sql_benchmark.cpp
+++ b/benchmarks/malloc_sql_benchmark.cpp
@@ -31,6 +31,7 @@
 #include <unistd.h>
 
 #include <benchmark/benchmark.h>
+#include "ScopedDecayTimeRestorer.h"
 #include "util.h"
 
 #if defined(__BIONIC__)
@@ -104,6 +105,8 @@
 #include "malloc_sql.h"
 
 static void BM_malloc_sql_trace_default(benchmark::State& state) {
+  ScopedDecayTimeRestorer restorer;
+
   // The default is expected to be a zero decay time.
   mallopt(M_DECAY_TIME, 0);
 
@@ -115,14 +118,14 @@
 BIONIC_BENCHMARK(BM_malloc_sql_trace_default);
 
 static void BM_malloc_sql_trace_decay1(benchmark::State& state) {
+  ScopedDecayTimeRestorer restorer;
+
   mallopt(M_DECAY_TIME, 1);
 
   for (auto _ : state) {
     BenchmarkMalloc(g_sql_entries, sizeof(g_sql_entries) / sizeof(MallocEntry),
                     kMaxSqlAllocSlots);
   }
-
-  mallopt(M_DECAY_TIME, 0);
 }
 BIONIC_BENCHMARK(BM_malloc_sql_trace_decay1);
 
diff --git a/benchmarks/property_benchmark.cpp b/benchmarks/property_benchmark.cpp
index 15a621b..b356ab7 100644
--- a/benchmarks/property_benchmark.cpp
+++ b/benchmarks/property_benchmark.cpp
@@ -28,8 +28,7 @@
 
 #if defined(__BIONIC__)
 
-#define _REALLY_INCLUDE_SYS__SYSTEM_PROPERTIES_H_
-#include <sys/_system_properties.h>
+#include <sys/system_properties.h>
 
 #include <benchmark/benchmark.h>
 #include <system_properties/system_properties.h>
@@ -40,9 +39,10 @@
       : nprops(nprops), valid(false), system_properties_(false) {
     static const char prop_name_chars[] = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-_.";
 
-    valid = system_properties_.AreaInit(dir_.path, nullptr);
+    valid = system_properties_.AreaInit(dir_.path, nullptr, true);
     if (!valid) {
-      return;
+      printf("Failed to initialize properties, terminating...\n");
+      exit(1);
     }
 
     names = new char* [nprops];
@@ -100,6 +100,9 @@
     }
 
     system_properties_.contexts_->FreeAndUnmap();
+    if (system_properties_.appcompat_override_contexts_) {
+      system_properties_.appcompat_override_contexts_->FreeAndUnmap();
+    }
 
     for (int i = 0; i < nprops; i++) {
       delete names[i];
diff --git a/benchmarks/spawn/Android.bp b/benchmarks/spawn/Android.bp
index 61e7bf6..de9b161 100644
--- a/benchmarks/spawn/Android.bp
+++ b/benchmarks/spawn/Android.bp
@@ -27,6 +27,7 @@
 //
 
 package {
+    default_team: "trendy_team_native_tools_libraries",
     default_applicable_licenses: ["bionic_benchmarks_license"],
 }
 
diff --git a/benchmarks/stdlib_benchmark.cpp b/benchmarks/stdlib_benchmark.cpp
index 14b380a..7680b40 100644
--- a/benchmarks/stdlib_benchmark.cpp
+++ b/benchmarks/stdlib_benchmark.cpp
@@ -22,6 +22,7 @@
 #include <unistd.h>
 
 #include <benchmark/benchmark.h>
+#include "ScopedDecayTimeRestorer.h"
 #include "util.h"
 
 static void MallocFree(benchmark::State& state) {
@@ -40,6 +41,8 @@
 
 static void BM_stdlib_malloc_free_default(benchmark::State& state) {
 #if defined(__BIONIC__)
+  ScopedDecayTimeRestorer restorer;
+
   // The default is expected to be a zero decay time.
   mallopt(M_DECAY_TIME, 0);
 #endif
@@ -50,11 +53,11 @@
 
 #if defined(__BIONIC__)
 static void BM_stdlib_malloc_free_decay1(benchmark::State& state) {
+  ScopedDecayTimeRestorer restorer;
+
   mallopt(M_DECAY_TIME, 1);
 
   MallocFree(state);
-
-  mallopt(M_DECAY_TIME, 0);
 }
 BIONIC_BENCHMARK_WITH_ARG(BM_stdlib_malloc_free_decay1, "AT_COMMON_SIZES");
 #endif
@@ -75,6 +78,8 @@
 
 static void BM_stdlib_calloc_free_default(benchmark::State& state) {
 #if defined(__BIONIC__)
+  ScopedDecayTimeRestorer restorer;
+
   // The default is expected to be a zero decay time.
   mallopt(M_DECAY_TIME, 0);
 #endif
@@ -113,8 +118,9 @@
 }
 
 void BM_stdlib_malloc_forty_default(benchmark::State& state) {
-
 #if defined(__BIONIC__)
+  ScopedDecayTimeRestorer restorer;
+
   // The default is expected to be a zero decay time.
   mallopt(M_DECAY_TIME, 0);
 #endif
@@ -125,17 +131,19 @@
 
 #if defined(__BIONIC__)
 void BM_stdlib_malloc_forty_decay1(benchmark::State& state) {
+  ScopedDecayTimeRestorer restorer;
+
   mallopt(M_DECAY_TIME, 1);
 
   MallocMultiple(state, state.range(0), 40);
-
-  mallopt(M_DECAY_TIME, 0);
 }
 BIONIC_BENCHMARK_WITH_ARG(BM_stdlib_malloc_forty_decay1, "AT_COMMON_SIZES");
 #endif
 
 void BM_stdlib_malloc_multiple_8192_allocs_default(benchmark::State& state) {
 #if defined(__BIONIC__)
+  ScopedDecayTimeRestorer restorer;
+
   // The default is expected to be a zero decay time.
   mallopt(M_DECAY_TIME, 0);
 #endif
@@ -146,11 +154,11 @@
 
 #if defined(__BIONIC__)
 void BM_stdlib_malloc_multiple_8192_allocs_decay1(benchmark::State& state) {
+  ScopedDecayTimeRestorer restorer;
+
   mallopt(M_DECAY_TIME, 1);
 
   MallocMultiple(state, 8192, state.range(0));
-
-  mallopt(M_DECAY_TIME, 0);
 }
 BIONIC_BENCHMARK_WITH_ARG(BM_stdlib_malloc_multiple_8192_allocs_decay1, "AT_SMALL_SIZES");
 #endif
@@ -227,3 +235,6 @@
 BIONIC_TRIVIAL_BENCHMARK(BM_stdlib_strtoll, strtoll(" -123", nullptr, 0));
 BIONIC_TRIVIAL_BENCHMARK(BM_stdlib_strtoul, strtoul(" -123", nullptr, 0));
 BIONIC_TRIVIAL_BENCHMARK(BM_stdlib_strtoull, strtoull(" -123", nullptr, 0));
+
+BIONIC_TRIVIAL_BENCHMARK(BM_stdlib_strtol_hex, strtol("0xdeadbeef", nullptr, 0));
+BIONIC_TRIVIAL_BENCHMARK(BM_stdlib_strtoul_hex, strtoul("0xdeadbeef", nullptr, 0));
diff --git a/benchmarks/suites/syscall.xml b/benchmarks/suites/syscall.xml
new file mode 100644
index 0000000..5a0f904
--- /dev/null
+++ b/benchmarks/suites/syscall.xml
@@ -0,0 +1,120 @@
+<!-- mmap tests -->
+<fn>
+  <name>BM_syscall_mmap_anon_rw</name>
+  <iterations>10</iterations>
+  <args>AT_ALL_PAGE_SIZES</args>
+</fn>
+<fn>
+  <name>BM_syscall_mmap_anon_noreserve</name>
+  <iterations>10</iterations>
+  <args>AT_ALL_PAGE_SIZES</args>
+</fn>
+<fn>
+  <name>BM_syscall_mmap_anon_none</name>
+  <iterations>10</iterations>
+  <args>AT_ALL_PAGE_SIZES</args>
+</fn>
+<fn>
+  <name>BM_syscall_mmap_anon_rw_fixed</name>
+  <iterations>10</iterations>
+  <args>AT_ALL_PAGE_SIZES</args>
+</fn>
+<fn>
+  <name>BM_syscall_mmap_anon_none_fixed</name>
+  <iterations>10</iterations>
+  <args>AT_ALL_PAGE_SIZES</args>
+</fn>
+<fn>
+  <name>BM_syscall_mmap_file_rd_priv</name>
+  <iterations>10</iterations>
+  <args>AT_ALL_PAGE_SIZES</args>
+</fn>
+<fn>
+  <name>BM_syscall_mmap_file_rw_shared</name>
+  <iterations>10</iterations>
+  <args>AT_ALL_PAGE_SIZES</args>
+</fn>
+<fn>
+  <name>BM_syscall_mmap_file_rw_priv_fixed_start</name>
+  <iterations>10</iterations>
+  <args>AT_ALL_PAGE_SIZES</args>
+</fn>
+<fn>
+  <name>BM_syscall_mmap_file_rw_priv_fixed_mid</name>
+  <iterations>10</iterations>
+  <args>AT_MULTI_PAGE_SIZES</args>
+</fn>
+<fn>
+  <name>BM_syscall_mmap_file_rw_priv_fixed_end</name>
+  <iterations>10</iterations>
+  <args>AT_MULTI_PAGE_SIZES</args>
+</fn>
+<fn>
+  <name>BM_syscall_mmap_anon_mmap_only</name>
+  <iterations>10</iterations>
+  <args>AT_MULTI_PAGE_SIZES</args>
+</fn>
+<fn>
+  <name>BM_syscall_mmap_anon_munmap_only</name>
+  <iterations>10</iterations>
+  <args>AT_MULTI_PAGE_SIZES</args>
+</fn>
+
+<!-- madvise tests -->
+<fn>
+  <name>BM_syscall_mmap_anon_madvise_dontneed</name>
+  <iterations>10</iterations>
+  <args>AT_MULTI_PAGE_SIZES</args>
+</fn>
+<fn>
+  <name>BM_syscall_mmap_anon_madvise_pageout</name>
+  <iterations>10</iterations>
+  <args>AT_MULTI_PAGE_SIZES</args>
+</fn>
+<fn>
+  <name>BM_syscall_mmap_anon_madvise_free</name>
+  <iterations>10</iterations>
+  <args>AT_MULTI_PAGE_SIZES</args>
+</fn>
+
+<!-- mprotect tests -->
+<fn>
+  <name>BM_syscall_mmap_anon_mprotect_rw_to_rd</name>
+  <iterations>10</iterations>
+  <args>AT_ALL_PAGE_SIZES</args>
+</fn>
+<fn>
+  <name>BM_syscall_mmap_anon_mprotect_rw_to_none</name>
+  <iterations>10</iterations>
+  <args>AT_ALL_PAGE_SIZES</args>
+</fn>
+<fn>
+  <name>BM_syscall_mmap_anon_mprotect_rd_to_none</name>
+  <iterations>10</iterations>
+  <args>AT_ALL_PAGE_SIZES</args>
+</fn>
+<fn>
+  <name>BM_syscall_mmap_file_mprotect_rw_to_rd</name>
+  <iterations>10</iterations>
+  <args>AT_ALL_PAGE_SIZES</args>
+</fn>
+<fn>
+  <name>BM_syscall_mmap_file_mprotect_rw_to_none</name>
+  <iterations>10</iterations>
+  <args>AT_ALL_PAGE_SIZES</args>
+</fn>
+<fn>
+  <name>BM_syscall_mmap_file_mprotect_none_to_rw</name>
+  <iterations>10</iterations>
+  <args>AT_ALL_PAGE_SIZES</args>
+</fn>
+<fn>
+  <name>BM_syscall_mmap_file_mprotect_none_to_rd</name>
+  <iterations>10</iterations>
+  <args>AT_ALL_PAGE_SIZES</args>
+</fn>
+<fn>
+  <name>BM_syscall_mmap_file_mprotect_rd_to_none</name>
+  <iterations>10</iterations>
+  <args>AT_ALL_PAGE_SIZES</args>
+</fn>
diff --git a/benchmarks/syscall_mm_benchmark.cpp b/benchmarks/syscall_mm_benchmark.cpp
new file mode 100644
index 0000000..1f22f31
--- /dev/null
+++ b/benchmarks/syscall_mm_benchmark.cpp
@@ -0,0 +1,464 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <string.h>
+#include <sys/mman.h>
+#include <sys/syscall.h>
+
+#include <android-base/file.h>
+#include <android-base/stringprintf.h>
+#include <benchmark/benchmark.h>
+
+#include "util.h"
+
+enum BenchmarkType : uint8_t {
+  kBenchmarkMmapOnly,
+  kBenchmarkMunmapOnly,
+  kBenchmarkAll,
+};
+
+static size_t page_sz = getpagesize();
+
+struct MmapParams {
+  int prot;
+  int flags;
+  int64_t size;
+};
+
+struct MprotectParams {
+  int initial_prot;
+  int mprotect_prot;
+  int64_t size;
+};
+
+template <BenchmarkType type>
+void MmapBenchmarkImpl(benchmark::State& state, const struct MmapParams& params, int fd,
+                       void* area = nullptr) {
+  for (auto _ : state) {
+    if (type == kBenchmarkMunmapOnly) state.PauseTiming();
+    void* addr = mmap(area, params.size, params.prot, params.flags, fd, 0);
+    if (addr == MAP_FAILED) {
+      state.SkipWithError(android::base::StringPrintf("mmap failed: %s", strerror(errno)).c_str());
+      break;
+    }
+
+    if (type == kBenchmarkMmapOnly) state.PauseTiming();
+
+    if (params.prot & PROT_WRITE) {
+      MakeAllocationResident(addr, params.size, page_sz);
+    }
+
+    if (type == kBenchmarkMunmapOnly) state.ResumeTiming();
+
+    if (munmap(addr, params.size) != 0) {
+      state.SkipWithError(
+          android::base::StringPrintf("munmap failed: %s", strerror(errno)).c_str());
+      break;
+    }
+    if (type == kBenchmarkMmapOnly) state.ResumeTiming();
+  }
+}
+
+static void MmapBenchmark(benchmark::State& state, const struct MmapParams& params, int fd,
+                          void* area = nullptr) {
+  MmapBenchmarkImpl<kBenchmarkAll>(state, params, fd, area);
+}
+
+static void MmapFixedBenchmark(benchmark::State& state, const struct MmapParams& params, int fd,
+                               size_t area_size, size_t offs) {
+  if ((params.flags & MAP_FIXED) == 0) {
+    state.SkipWithError("MmapFixedBenchmark called without MAP_FIXED set");
+    return;
+  }
+
+  // Create the mmap that will be used for the fixed mmaps.
+  uint8_t* area = reinterpret_cast<uint8_t*>(
+      mmap(nullptr, area_size, params.prot, params.flags & ~MAP_FIXED, fd, 0));
+  if (area == MAP_FAILED) {
+    state.SkipWithError(android::base::StringPrintf("mmap failed: %s", strerror(errno)).c_str());
+    return;
+  }
+
+  MmapBenchmark(state, params, fd, area + offs);
+
+  if (munmap(area, area_size) != 0) {
+    state.SkipWithError(android::base::StringPrintf("munmap failed: %s", strerror(errno)).c_str());
+    return;
+  }
+}
+
+static void MmapFileBenchmark(benchmark::State& state, const struct MmapParams& params,
+                              size_t area_size, size_t offs) {
+  TemporaryFile tf;
+
+  if (tf.fd < 0) {
+    state.SkipWithError(
+        android::base::StringPrintf("failed to create a temporary file: %s", strerror(errno))
+            .c_str());
+    return;
+  }
+
+  if (area_size > 0 && ftruncate(tf.fd, area_size)) {
+    state.SkipWithError(
+        android::base::StringPrintf("ftruncate failed: %s", strerror(errno)).c_str());
+    return;
+  }
+
+  if (params.flags & MAP_FIXED) {
+    MmapFixedBenchmark(state, params, tf.fd, area_size, offs);
+  } else {
+    MmapBenchmark(state, params, tf.fd);
+  }
+}
+
+// anon mmap
+static void BM_syscall_mmap_anon_rw(benchmark::State& state) {
+  struct MmapParams params = {
+      .prot = PROT_READ | PROT_WRITE,
+      .flags = MAP_PRIVATE | MAP_ANONYMOUS,
+      .size = state.range(0),
+  };
+
+  MmapBenchmark(state, params, 0);
+}
+BIONIC_BENCHMARK_WITH_ARG(BM_syscall_mmap_anon_rw, "AT_ALL_PAGE_SIZES");
+
+static void BM_syscall_mmap_anon_noreserve(benchmark::State& state) {
+  struct MmapParams params = {
+      .prot = PROT_NONE,
+      .flags = MAP_PRIVATE | MAP_ANONYMOUS | MAP_NORESERVE,
+      .size = state.range(0),
+  };
+
+  MmapBenchmark(state, params, 0);
+}
+BIONIC_BENCHMARK_WITH_ARG(BM_syscall_mmap_anon_noreserve, "AT_ALL_PAGE_SIZES");
+
+static void BM_syscall_mmap_anon_none(benchmark::State& state) {
+  struct MmapParams params = {
+      .prot = PROT_NONE,
+      .flags = MAP_PRIVATE | MAP_ANONYMOUS,
+      .size = state.range(0),
+  };
+
+  MmapBenchmark(state, params, 0);
+}
+BIONIC_BENCHMARK_WITH_ARG(BM_syscall_mmap_anon_none, "AT_ALL_PAGE_SIZES");
+
+// anon fixed mmap
+static void BM_syscall_mmap_anon_rw_fixed(benchmark::State& state) {
+  struct MmapParams params = {
+      .prot = PROT_READ | PROT_WRITE,
+      .flags = MAP_PRIVATE | MAP_ANONYMOUS | MAP_FIXED,
+      .size = state.range(0),
+  };
+
+  MmapFixedBenchmark(state, params, -1, params.size, 0);
+}
+BIONIC_BENCHMARK_WITH_ARG(BM_syscall_mmap_anon_rw_fixed, "AT_ALL_PAGE_SIZES");
+
+static void BM_syscall_mmap_anon_none_fixed(benchmark::State& state) {
+  struct MmapParams params = {
+      .prot = PROT_NONE,
+      .flags = MAP_PRIVATE | MAP_ANONYMOUS | MAP_FIXED,
+      .size = state.range(0),
+  };
+
+  MmapFixedBenchmark(state, params, -1, params.size, 0);
+}
+BIONIC_BENCHMARK_WITH_ARG(BM_syscall_mmap_anon_none_fixed, "AT_ALL_PAGE_SIZES");
+
+// file mmap
+static void BM_syscall_mmap_file_rd_priv(benchmark::State& state) {
+  struct MmapParams params = {
+      .prot = PROT_READ,
+      .flags = MAP_PRIVATE,
+      .size = state.range(0),
+  };
+
+  MmapFileBenchmark(state, params, params.size, 0);
+}
+BIONIC_BENCHMARK_WITH_ARG(BM_syscall_mmap_file_rd_priv, "AT_ALL_PAGE_SIZES");
+
+static void BM_syscall_mmap_file_rw_shared(benchmark::State& state) {
+  struct MmapParams params = {
+      .prot = PROT_READ | PROT_WRITE,
+      .flags = MAP_SHARED,
+      .size = state.range(0),
+  };
+
+  MmapFileBenchmark(state, params, params.size, 0);
+}
+BIONIC_BENCHMARK_WITH_ARG(BM_syscall_mmap_file_rw_shared, "AT_ALL_PAGE_SIZES");
+
+// file fixed mmap
+static void BM_syscall_mmap_file_rw_priv_fixed_start(benchmark::State& state) {
+  struct MmapParams params = {
+      .prot = PROT_READ | PROT_WRITE,
+      .flags = MAP_PRIVATE | MAP_FIXED,
+      .size = state.range(0),
+  };
+
+  // allocate 3x area and map at the start
+  MmapFileBenchmark(state, params, params.size * 3, 0);
+}
+BIONIC_BENCHMARK_WITH_ARG(BM_syscall_mmap_file_rw_priv_fixed_start, "AT_ALL_PAGE_SIZES");
+
+static void BM_syscall_mmap_file_rw_priv_fixed_mid(benchmark::State& state) {
+  struct MmapParams params = {
+      .prot = PROT_READ | PROT_WRITE,
+      .flags = MAP_PRIVATE | MAP_FIXED,
+      .size = state.range(0),
+  };
+
+  // allocate 3x area and map at the middle
+  MmapFileBenchmark(state, params, params.size * 3, params.size);
+}
+// mapping at sub-page size offset is not supported, so run only for AT_MULTI_PAGE_SIZES
+BIONIC_BENCHMARK_WITH_ARG(BM_syscall_mmap_file_rw_priv_fixed_mid, "AT_MULTI_PAGE_SIZES");
+
+static void BM_syscall_mmap_file_rw_priv_fixed_end(benchmark::State& state) {
+  struct MmapParams params = {
+      .prot = PROT_READ | PROT_WRITE,
+      .flags = MAP_PRIVATE | MAP_FIXED,
+      .size = state.range(0),
+  };
+
+  // allocate 3x area and map at the end
+  MmapFileBenchmark(state, params, params.size * 3, params.size * 2);
+}
+// mapping at sub-page size offset is not supported, so run only for AT_MULTI_PAGE_SIZES
+BIONIC_BENCHMARK_WITH_ARG(BM_syscall_mmap_file_rw_priv_fixed_end, "AT_MULTI_PAGE_SIZES");
+
+static void BM_syscall_mmap_anon_mmap_only(benchmark::State& state) {
+  struct MmapParams params = {
+      .prot = PROT_READ | PROT_WRITE,
+      .flags = MAP_PRIVATE | MAP_ANONYMOUS,
+      .size = state.range(0),
+  };
+  MmapBenchmarkImpl<kBenchmarkMmapOnly>(state, params, 0);
+}
+BIONIC_BENCHMARK_WITH_ARG(BM_syscall_mmap_anon_mmap_only, "AT_MULTI_PAGE_SIZES");
+
+static void BM_syscall_mmap_anon_munmap_only(benchmark::State& state) {
+  struct MmapParams params = {
+      .prot = PROT_READ | PROT_WRITE,
+      .flags = MAP_PRIVATE | MAP_ANONYMOUS,
+      .size = state.range(0),
+  };
+  MmapBenchmarkImpl<kBenchmarkMunmapOnly>(state, params, 0);
+}
+BIONIC_BENCHMARK_WITH_ARG(BM_syscall_mmap_anon_munmap_only, "AT_MULTI_PAGE_SIZES");
+
+void MadviseBenchmark(benchmark::State& state, const struct MmapParams& params, int madvise_flags) {
+  void* addr = mmap(nullptr, params.size, params.prot, params.flags, 0, 0);
+  if (addr == MAP_FAILED) {
+    state.SkipWithError(android::base::StringPrintf("mmap failed: %s", strerror(errno)).c_str());
+    return;
+  }
+  for (auto _ : state) {
+    state.PauseTiming();
+    if (params.prot & PROT_WRITE) {
+      MakeAllocationResident(addr, params.size, page_sz);
+    }
+    state.ResumeTiming();
+
+    madvise(addr, params.size, madvise_flags);
+  }
+
+  if (munmap(addr, params.size) != 0) {
+    state.SkipWithError(android::base::StringPrintf("munmap failed: %s", strerror(errno)).c_str());
+  }
+}
+
+static void BM_syscall_mmap_anon_madvise_dontneed(benchmark::State& state) {
+  struct MmapParams params = {
+      .prot = PROT_READ | PROT_WRITE,
+      .flags = MAP_PRIVATE | MAP_ANONYMOUS,
+      .size = state.range(0),
+  };
+  MadviseBenchmark(state, params, MADV_DONTNEED);
+}
+BIONIC_BENCHMARK_WITH_ARG(BM_syscall_mmap_anon_madvise_dontneed, "AT_MULTI_PAGE_SIZES");
+
+static void BM_syscall_mmap_anon_madvise_pageout(benchmark::State& state) {
+  struct MmapParams params = {
+      .prot = PROT_READ | PROT_WRITE,
+      .flags = MAP_PRIVATE | MAP_ANONYMOUS,
+      .size = state.range(0),
+  };
+  MadviseBenchmark(state, params, MADV_PAGEOUT);
+}
+BIONIC_BENCHMARK_WITH_ARG(BM_syscall_mmap_anon_madvise_pageout, "AT_MULTI_PAGE_SIZES");
+
+static void BM_syscall_mmap_anon_madvise_free(benchmark::State& state) {
+  struct MmapParams params = {
+      .prot = PROT_READ | PROT_WRITE,
+      .flags = MAP_PRIVATE | MAP_ANONYMOUS,
+      .size = state.range(0),
+  };
+  MadviseBenchmark(state, params, MADV_FREE);
+}
+BIONIC_BENCHMARK_WITH_ARG(BM_syscall_mmap_anon_madvise_free, "AT_MULTI_PAGE_SIZES");
+
+void MprotectBenchmark(benchmark::State& state, const struct MprotectParams& params, void* addr) {
+  for (auto _ : state) {
+    state.PauseTiming();
+    /*
+     * Guarantee that physical memory pages are allocated for this region to prevent
+     * segmentation fault when using mprotect to change permissions.
+     */
+    if (params.initial_prot & PROT_WRITE) {
+      MakeAllocationResident(addr, params.size, page_sz);
+    }
+    state.ResumeTiming();
+
+    if (mprotect(addr, params.size, params.mprotect_prot) != 0) {
+      state.SkipWithError(android::base::StringPrintf("mprotect failed: %m"));
+      break;
+    }
+
+    state.PauseTiming();
+    // Revert back to the original protection
+    int res = mprotect(addr, params.size, params.initial_prot);
+    state.ResumeTiming();
+    if (res != 0) {
+      state.SkipWithError(
+          android::base::StringPrintf("mprotect failed to revert to original prot: %m"));
+      break;
+    }
+  }
+}
+
+static void MprotectBenchmarkWithMmapAnon(benchmark::State& state,
+                                          const struct MprotectParams& params) {
+  void* addr = mmap(nullptr, params.size, params.initial_prot, MAP_PRIVATE | MAP_ANONYMOUS, 0, 0);
+  if (addr == MAP_FAILED) {
+    state.SkipWithError(android::base::StringPrintf("mmap failed: %m"));
+    return;
+  }
+
+  MprotectBenchmark(state, params, addr);
+
+  if (munmap(addr, params.size) != 0)
+    state.SkipWithError(android::base::StringPrintf("munmap failed: %m"));
+}
+
+static void BM_syscall_mmap_anon_mprotect_rw_to_rd(benchmark::State& state) {
+  struct MprotectParams params = {
+      .initial_prot = PROT_READ | PROT_WRITE,
+      .mprotect_prot = PROT_READ,
+      .size = state.range(0),
+  };
+  MprotectBenchmarkWithMmapAnon(state, params);
+}
+BIONIC_BENCHMARK_WITH_ARG(BM_syscall_mmap_anon_mprotect_rw_to_rd, "AT_ALL_PAGE_SIZES");
+
+static void BM_syscall_mmap_anon_mprotect_rw_to_none(benchmark::State& state) {
+  struct MprotectParams params = {
+      .initial_prot = PROT_READ | PROT_WRITE,
+      .mprotect_prot = PROT_NONE,
+      .size = state.range(0),
+  };
+  MprotectBenchmarkWithMmapAnon(state, params);
+}
+BIONIC_BENCHMARK_WITH_ARG(BM_syscall_mmap_anon_mprotect_rw_to_none, "AT_ALL_PAGE_SIZES");
+
+static void BM_syscall_mmap_anon_mprotect_rd_to_none(benchmark::State& state) {
+  struct MprotectParams params = {
+      .initial_prot = PROT_READ,
+      .mprotect_prot = PROT_NONE,
+      .size = state.range(0),
+  };
+  MprotectBenchmarkWithMmapAnon(state, params);
+}
+BIONIC_BENCHMARK_WITH_ARG(BM_syscall_mmap_anon_mprotect_rd_to_none, "AT_ALL_PAGE_SIZES");
+
+static void MprotectBenchmarkWithMmapFile(benchmark::State& state,
+                                          const struct MprotectParams& params) {
+  TemporaryFile tf;
+
+  if (tf.fd < 0) {
+    state.SkipWithError(android::base::StringPrintf("failed to create a temporary file: %m"));
+    return;
+  }
+
+  if (params.size > 0 && ftruncate(tf.fd, params.size)) {
+    state.SkipWithError(android::base::StringPrintf("ftruncate failed: %m"));
+    return;
+  }
+
+  void* addr = mmap(nullptr, params.size, params.initial_prot, MAP_PRIVATE, tf.fd, 0);
+  if (addr == MAP_FAILED) {
+    state.SkipWithError(android::base::StringPrintf("mmap failed: %m"));
+    return;
+  }
+
+  MprotectBenchmark(state, params, addr);
+
+  if (munmap(addr, params.size) != 0)
+    state.SkipWithError(android::base::StringPrintf("munmap failed: %m"));
+}
+
+static void BM_syscall_mmap_file_mprotect_rw_to_rd(benchmark::State& state) {
+  struct MprotectParams params = {
+      .initial_prot = PROT_READ | PROT_WRITE,
+      .mprotect_prot = PROT_READ,
+      .size = state.range(0),
+  };
+  MprotectBenchmarkWithMmapFile(state, params);
+}
+BIONIC_BENCHMARK_WITH_ARG(BM_syscall_mmap_file_mprotect_rw_to_rd, "AT_ALL_PAGE_SIZES");
+
+static void BM_syscall_mmap_file_mprotect_rw_to_none(benchmark::State& state) {
+  struct MprotectParams params = {
+      .initial_prot = PROT_READ | PROT_WRITE,
+      .mprotect_prot = PROT_NONE,
+      .size = state.range(0),
+  };
+  MprotectBenchmarkWithMmapFile(state, params);
+}
+BIONIC_BENCHMARK_WITH_ARG(BM_syscall_mmap_file_mprotect_rw_to_none, "AT_ALL_PAGE_SIZES");
+
+static void BM_syscall_mmap_file_mprotect_none_to_rw(benchmark::State& state) {
+  struct MprotectParams params = {
+      .initial_prot = PROT_NONE,
+      .mprotect_prot = PROT_READ | PROT_WRITE,
+      .size = state.range(0),
+  };
+  MprotectBenchmarkWithMmapFile(state, params);
+}
+BIONIC_BENCHMARK_WITH_ARG(BM_syscall_mmap_file_mprotect_none_to_rw, "AT_ALL_PAGE_SIZES");
+
+static void BM_syscall_mmap_file_mprotect_none_to_rd(benchmark::State& state) {
+  struct MprotectParams params = {
+      .initial_prot = PROT_NONE,
+      .mprotect_prot = PROT_READ,
+      .size = state.range(0),
+  };
+  MprotectBenchmarkWithMmapFile(state, params);
+}
+BIONIC_BENCHMARK_WITH_ARG(BM_syscall_mmap_file_mprotect_none_to_rd, "AT_ALL_PAGE_SIZES");
+
+static void BM_syscall_mmap_file_mprotect_rd_to_none(benchmark::State& state) {
+  struct MprotectParams params = {
+      .initial_prot = PROT_READ,
+      .mprotect_prot = PROT_NONE,
+      .size = state.range(0),
+  };
+  MprotectBenchmarkWithMmapFile(state, params);
+}
+BIONIC_BENCHMARK_WITH_ARG(BM_syscall_mmap_file_mprotect_rd_to_none, "AT_ALL_PAGE_SIZES");
diff --git a/benchmarks/test_suites/test_from_each.xml b/benchmarks/test_suites/test_from_each.xml
index bad18e7..51c14b6 100644
--- a/benchmarks/test_suites/test_from_each.xml
+++ b/benchmarks/test_suites/test_from_each.xml
@@ -20,7 +20,7 @@
 </fn>
 <fn>
   <name>BM_string_memcpy</name>
-  <args>512 4 4</args>
+  <args>512/4/4</args>
 </fn>
 <fn>
   <name>BM_time_clock_gettime</name>
diff --git a/benchmarks/test_suites/test_medium.xml b/benchmarks/test_suites/test_medium.xml
index 9528af3..0d29a99 100644
--- a/benchmarks/test_suites/test_medium.xml
+++ b/benchmarks/test_suites/test_medium.xml
@@ -8,7 +8,7 @@
 <fn>
   <name>BM_string_memcpy</name>
   <iterations>25</iterations>
-  <args>512 4 4</args>
+  <args>512/4/4</args>
 </fn>
 <fn>
   <name>BM_property_get</name>
diff --git a/benchmarks/test_suites/test_small.xml b/benchmarks/test_suites/test_small.xml
index a4cc285..66d3732 100644
--- a/benchmarks/test_suites/test_small.xml
+++ b/benchmarks/test_suites/test_small.xml
@@ -1,11 +1,11 @@
 <fn>
   <name>BM_string_memcmp</name>
-  <args>8 8 8</args>
+  <args>8/8/8</args>
 </fn>
 <fn>
   <name>BM_math_sqrt</name>
 </fn>
 <fn>
   <name>BM_property_get</name>
-  <args>1</args>
+  <args>1 2 3</args>
 </fn>
diff --git a/benchmarks/tests/interface_test.cpp b/benchmarks/tests/interface_test.cpp
index 301c294..b56866e 100644
--- a/benchmarks/tests/interface_test.cpp
+++ b/benchmarks/tests/interface_test.cpp
@@ -49,12 +49,8 @@
   int fd_;
 };
 
-static const char* GetBenchmarkExe() {
-#if defined(__LP64__)
-  return "/data/benchmarktest64/bionic-benchmarks/bionic-benchmarks";
-#else
-  return "/data/benchmarktest/bionic-benchmarks/bionic-benchmarks";
-#endif
+static std::string GetBenchmarkExe() {
+  return android::base::GetExecutableDirectory() + "/bionic-benchmarks";
 }
 
 static std::string GetBionicXmlArg(const char* xml_file) {
@@ -90,7 +86,8 @@
     ASSERT_NE(0, dup2(fds[1], STDERR_FILENO));
     close(fds[1]);
 
-    args.insert(args.begin(), GetBenchmarkExe());
+    const std::string exe(GetBenchmarkExe());
+    args.insert(args.begin(), exe.c_str());
     args.push_back(nullptr);
     execv(args[0], reinterpret_cast<char* const*>(const_cast<char**>(args.data())));
     exit(1);
@@ -145,10 +142,10 @@
 
 TEST_F(SystemTests, check_benchmark_exe) {
   // Verify that the benchmark exe is present.
-  const char* exe = GetBenchmarkExe();
+  const std::string exe(GetBenchmarkExe());
 
   struct stat st;
-  ASSERT_NE(-1, stat(exe, &st)) << "Stat of " << exe << " failed";
+  ASSERT_NE(-1, stat(exe.c_str(), &st)) << "Stat of " << exe << " failed";
   ASSERT_TRUE(S_ISREG(st.st_mode)) << exe << " is not a file, or doesn't exist.";
 }
 
@@ -163,8 +160,10 @@
     "Google benchmark flags:\n"
     "benchmark [--benchmark_list_tests={true|false}]\n"
     "          [--benchmark_filter=<regex>]\n"
-    "          [--benchmark_min_time=<min_time>]\n"
+    "          [--benchmark_min_time=`<integer>x` OR `<float>s` ]\n"
+    "          [--benchmark_min_warmup_time=<min_warmup_time>]\n"
     "          [--benchmark_repetitions=<num_repetitions>]\n"
+    "          [--benchmark_enable_random_interleaving={true|false}]\n"
     "          [--benchmark_report_aggregates_only={true|false}]\n"
     "          [--benchmark_display_aggregates_only={true|false}]\n"
     "          [--benchmark_format=<console|json|csv>]\n"
@@ -172,6 +171,8 @@
     "          [--benchmark_out_format=<json|console|csv>]\n"
     "          [--benchmark_color={auto|true|false}]\n"
     "          [--benchmark_counters_tabular={true|false}]\n"
+    "          [--benchmark_context=<key>=<value>,...]\n"
+    "          [--benchmark_time_unit={ns|us|ms|s}]\n"
     "          [--v=<verbosity>]\n";
   Verify(expected, 0, std::vector<const char*>{"--help"}, false);
 }
@@ -195,27 +196,31 @@
 
 TEST_F(SystemTests, small) {
   std::string expected =
-    "BM_string_memcmp/8/8/8/iterations:1\n"
-    "BM_math_sqrt/iterations:1\n"
-    "BM_property_get/1/iterations:1\n";
+      "BM_string_memcmp/8/8/8/iterations:1\n"
+      "BM_math_sqrt/iterations:1\n"
+      "BM_property_get/1/iterations:1\n"
+      "BM_property_get/2/iterations:1\n"
+      "BM_property_get/3/iterations:1\n";
   Verify(expected, 0, std::vector<const char*>{GetBionicXmlArg("test_small.xml").c_str(),
                                                "--bionic_iterations=1"});
 }
 
 TEST_F(SystemTests, medium) {
   std::string expected =
-    "BM_string_memcmp/8/0/0/iterations:1\n"
-    "BM_string_memcmp/64/0/0/iterations:1\n"
-    "BM_string_memcmp/512/0/0/iterations:1\n"
-    "BM_string_memcmp/1024/0/0/iterations:1\n"
-    "BM_string_memcmp/8192/0/0/iterations:1\n"
-    "BM_string_memcmp/16384/0/0/iterations:1\n"
-    "BM_string_memcmp/32768/0/0/iterations:1\n"
-    "BM_string_memcmp/65536/0/0/iterations:1\n"
-    "BM_string_memcmp/131072/0/0/iterations:1\n"
-    "BM_math_sqrt/iterations:1\n"
-    "BM_string_memcpy/512/4/4/iterations:25\n"
-    "BM_property_get/1/iterations:1\n";
+      "BM_string_memcmp/8/0/0/iterations:1\n"
+      "BM_string_memcmp/16/0/0/iterations:1\n"
+      "BM_string_memcmp/32/0/0/iterations:1\n"
+      "BM_string_memcmp/64/0/0/iterations:1\n"
+      "BM_string_memcmp/512/0/0/iterations:1\n"
+      "BM_string_memcmp/1024/0/0/iterations:1\n"
+      "BM_string_memcmp/8192/0/0/iterations:1\n"
+      "BM_string_memcmp/16384/0/0/iterations:1\n"
+      "BM_string_memcmp/32768/0/0/iterations:1\n"
+      "BM_string_memcmp/65536/0/0/iterations:1\n"
+      "BM_string_memcmp/131072/0/0/iterations:1\n"
+      "BM_math_sqrt/iterations:1\n"
+      "BM_string_memcpy/512/4/4/iterations:25\n"
+      "BM_property_get/1/iterations:1\n";
   Verify(expected, 0, std::vector<const char*>{GetBionicXmlArg("test_medium.xml").c_str(),
                                                "--bionic_iterations=1"});
 }
@@ -239,43 +244,48 @@
   std::string expected =
     "BM_string_memcpy/8/8/8/iterations:1\n"
     "BM_math_log10/iterations:1\n";
-  Verify(expected, 0, std::vector<const char*>{"--bionic_extra=BM_string_memcpy 8 8 8",
-                                               "--bionic_extra=BM_math_log10",
-                                               "--bionic_iterations=1"});
+  Verify(expected, 0,
+         std::vector<const char*>{"--bionic_extra=BM_string_memcpy 8/8/8",
+                                  "--bionic_extra=BM_math_log10", "--bionic_iterations=1"});
 }
 
 TEST_F(SystemTests, cmd_args_no_iter) {
   std::string expected =
     "BM_string_memcpy/8/8/8\n"
     "BM_math_log10\n";
-  Verify(expected, 0, std::vector<const char*>{"--bionic_extra=BM_string_memcpy 8 8 8",
-                                               "--bionic_extra=BM_math_log10"});
+  Verify(expected, 0,
+         std::vector<const char*>{"--bionic_extra=BM_string_memcpy 8/8/8",
+                                  "--bionic_extra=BM_math_log10"});
 }
 
 TEST_F(SystemTests, xml_and_args) {
   std::string expected =
-    "BM_string_memcmp/8/0/0/iterations:1\n"
-    "BM_string_memcmp/64/0/0/iterations:1\n"
-    "BM_string_memcmp/512/0/0/iterations:1\n"
-    "BM_string_memcmp/1024/0/0/iterations:1\n"
-    "BM_string_memcmp/8192/0/0/iterations:1\n"
-    "BM_string_memcmp/16384/0/0/iterations:1\n"
-    "BM_string_memcmp/32768/0/0/iterations:1\n"
-    "BM_string_memcmp/65536/0/0/iterations:1\n"
-    "BM_string_memcmp/131072/0/0/iterations:1\n"
-    "BM_math_sqrt/iterations:1\n"
-    "BM_string_memcpy/512/4/4/iterations:25\n"
-    "BM_property_get/1/iterations:1\n"
-    "BM_string_memcpy/8/0/0/iterations:1\n"
-    "BM_string_memcpy/64/0/0/iterations:1\n"
-    "BM_string_memcpy/512/0/0/iterations:1\n"
-    "BM_string_memcpy/1024/0/0/iterations:1\n"
-    "BM_string_memcpy/8192/0/0/iterations:1\n"
-    "BM_string_memcpy/16384/0/0/iterations:1\n"
-    "BM_string_memcpy/32768/0/0/iterations:1\n"
-    "BM_string_memcpy/65536/0/0/iterations:1\n"
-    "BM_string_memcpy/131072/0/0/iterations:1\n"
-    "BM_math_log10/iterations:1\n";
+      "BM_string_memcmp/8/0/0/iterations:1\n"
+      "BM_string_memcmp/16/0/0/iterations:1\n"
+      "BM_string_memcmp/32/0/0/iterations:1\n"
+      "BM_string_memcmp/64/0/0/iterations:1\n"
+      "BM_string_memcmp/512/0/0/iterations:1\n"
+      "BM_string_memcmp/1024/0/0/iterations:1\n"
+      "BM_string_memcmp/8192/0/0/iterations:1\n"
+      "BM_string_memcmp/16384/0/0/iterations:1\n"
+      "BM_string_memcmp/32768/0/0/iterations:1\n"
+      "BM_string_memcmp/65536/0/0/iterations:1\n"
+      "BM_string_memcmp/131072/0/0/iterations:1\n"
+      "BM_math_sqrt/iterations:1\n"
+      "BM_string_memcpy/512/4/4/iterations:25\n"
+      "BM_property_get/1/iterations:1\n"
+      "BM_string_memcpy/8/0/0/iterations:1\n"
+      "BM_string_memcpy/16/0/0/iterations:1\n"
+      "BM_string_memcpy/32/0/0/iterations:1\n"
+      "BM_string_memcpy/64/0/0/iterations:1\n"
+      "BM_string_memcpy/512/0/0/iterations:1\n"
+      "BM_string_memcpy/1024/0/0/iterations:1\n"
+      "BM_string_memcpy/8192/0/0/iterations:1\n"
+      "BM_string_memcpy/16384/0/0/iterations:1\n"
+      "BM_string_memcpy/32768/0/0/iterations:1\n"
+      "BM_string_memcpy/65536/0/0/iterations:1\n"
+      "BM_string_memcpy/131072/0/0/iterations:1\n"
+      "BM_math_log10/iterations:1\n";
   Verify(expected, 0, std::vector<const char*>{"--bionic_extra=BM_string_memcpy AT_ALIGNED_TWOBUF",
                                                "--bionic_extra=BM_math_log10",
                                                "--bionic_cpu=0",
@@ -285,580 +295,584 @@
 
 TEST_F(SystemTests, sizes) {
   std::string expected =
-    "BM_stdio_fwrite/8/iterations:1\n"
-    "BM_stdio_fwrite/64/iterations:1\n"
-    "BM_stdio_fwrite/512/iterations:1\n"
-    "BM_stdio_fwrite/1024/iterations:1\n"
-    "BM_stdio_fwrite/8192/iterations:1\n"
-    "BM_stdio_fwrite/16384/iterations:1\n"
-    "BM_stdio_fwrite/32768/iterations:1\n"
-    "BM_stdio_fwrite/65536/iterations:1\n"
-    "BM_stdio_fwrite/131072/iterations:1\n"
-    "BM_stdio_fread/1/iterations:1\n"
-    "BM_stdio_fread/2/iterations:1\n"
-    "BM_stdio_fread/3/iterations:1\n"
-    "BM_stdio_fread/4/iterations:1\n"
-    "BM_stdio_fread/5/iterations:1\n"
-    "BM_stdio_fread/6/iterations:1\n"
-    "BM_stdio_fread/7/iterations:1\n"
-    "BM_stdio_fread/8/iterations:1\n"
-    "BM_stdio_fread/9/iterations:1\n"
-    "BM_stdio_fread/10/iterations:1\n"
-    "BM_stdio_fread/11/iterations:1\n"
-    "BM_stdio_fread/12/iterations:1\n"
-    "BM_stdio_fread/13/iterations:1\n"
-    "BM_stdio_fread/14/iterations:1\n"
-    "BM_stdio_fread/15/iterations:1\n"
-    "BM_stdio_fread/16/iterations:1\n"
-    "BM_stdio_fread/24/iterations:1\n"
-    "BM_stdio_fread/32/iterations:1\n"
-    "BM_stdio_fread/40/iterations:1\n"
-    "BM_stdio_fread/48/iterations:1\n"
-    "BM_stdio_fread/56/iterations:1\n"
-    "BM_stdio_fread/64/iterations:1\n"
-    "BM_stdio_fread/72/iterations:1\n"
-    "BM_stdio_fread/80/iterations:1\n"
-    "BM_stdio_fread/88/iterations:1\n"
-    "BM_stdio_fread/96/iterations:1\n"
-    "BM_stdio_fread/104/iterations:1\n"
-    "BM_stdio_fread/112/iterations:1\n"
-    "BM_stdio_fread/120/iterations:1\n"
-    "BM_stdio_fread/128/iterations:1\n"
-    "BM_stdio_fread/136/iterations:1\n"
-    "BM_stdio_fread/144/iterations:1\n"
-    "BM_stdio_fread/160/iterations:1\n"
-    "BM_stdio_fread/176/iterations:1\n"
-    "BM_stdio_fread/192/iterations:1\n"
-    "BM_stdio_fread/208/iterations:1\n"
-    "BM_stdio_fread/224/iterations:1\n"
-    "BM_stdio_fread/240/iterations:1\n"
-    "BM_stdio_fread/256/iterations:1\n"
-    "BM_stdio_fwrite/512/iterations:1\n"
-    "BM_stdio_fwrite/1024/iterations:1\n"
-    "BM_stdio_fwrite/8192/iterations:1\n"
-    "BM_stdio_fwrite/16384/iterations:1\n"
-    "BM_stdio_fwrite/32768/iterations:1\n"
-    "BM_stdio_fwrite/65536/iterations:1\n"
-    "BM_stdio_fwrite/131072/iterations:1\n"
-    "BM_stdio_fread/262144/iterations:1\n"
-    "BM_stdio_fread/524288/iterations:1\n"
-    "BM_stdio_fread/1048576/iterations:1\n"
-    "BM_stdio_fread/2097152/iterations:1\n"
-    "BM_stdio_fwrite/1/iterations:1\n"
-    "BM_stdio_fwrite/2/iterations:1\n"
-    "BM_stdio_fwrite/3/iterations:1\n"
-    "BM_stdio_fwrite/4/iterations:1\n"
-    "BM_stdio_fwrite/5/iterations:1\n"
-    "BM_stdio_fwrite/6/iterations:1\n"
-    "BM_stdio_fwrite/7/iterations:1\n"
-    "BM_stdio_fwrite/8/iterations:1\n"
-    "BM_stdio_fwrite/9/iterations:1\n"
-    "BM_stdio_fwrite/10/iterations:1\n"
-    "BM_stdio_fwrite/11/iterations:1\n"
-    "BM_stdio_fwrite/12/iterations:1\n"
-    "BM_stdio_fwrite/13/iterations:1\n"
-    "BM_stdio_fwrite/14/iterations:1\n"
-    "BM_stdio_fwrite/15/iterations:1\n"
-    "BM_stdio_fwrite/16/iterations:1\n"
-    "BM_stdio_fwrite/24/iterations:1\n"
-    "BM_stdio_fwrite/32/iterations:1\n"
-    "BM_stdio_fwrite/40/iterations:1\n"
-    "BM_stdio_fwrite/48/iterations:1\n"
-    "BM_stdio_fwrite/56/iterations:1\n"
-    "BM_stdio_fwrite/64/iterations:1\n"
-    "BM_stdio_fwrite/72/iterations:1\n"
-    "BM_stdio_fwrite/80/iterations:1\n"
-    "BM_stdio_fwrite/88/iterations:1\n"
-    "BM_stdio_fwrite/96/iterations:1\n"
-    "BM_stdio_fwrite/104/iterations:1\n"
-    "BM_stdio_fwrite/112/iterations:1\n"
-    "BM_stdio_fwrite/120/iterations:1\n"
-    "BM_stdio_fwrite/128/iterations:1\n"
-    "BM_stdio_fwrite/136/iterations:1\n"
-    "BM_stdio_fwrite/144/iterations:1\n"
-    "BM_stdio_fwrite/160/iterations:1\n"
-    "BM_stdio_fwrite/176/iterations:1\n"
-    "BM_stdio_fwrite/192/iterations:1\n"
-    "BM_stdio_fwrite/208/iterations:1\n"
-    "BM_stdio_fwrite/224/iterations:1\n"
-    "BM_stdio_fwrite/240/iterations:1\n"
-    "BM_stdio_fwrite/256/iterations:1\n"
-    "BM_stdio_fwrite/512/iterations:1\n"
-    "BM_stdio_fwrite/1024/iterations:1\n"
-    "BM_stdio_fwrite/8192/iterations:1\n"
-    "BM_stdio_fwrite/16384/iterations:1\n"
-    "BM_stdio_fwrite/32768/iterations:1\n"
-    "BM_stdio_fwrite/65536/iterations:1\n"
-    "BM_stdio_fwrite/131072/iterations:1\n"
-    "BM_stdio_fwrite/262144/iterations:1\n"
-    "BM_stdio_fwrite/524288/iterations:1\n"
-    "BM_stdio_fwrite/1048576/iterations:1\n"
-    "BM_stdio_fwrite/2097152/iterations:1\n";
+      "BM_stdio_fwrite/8/iterations:1\n"
+      "BM_stdio_fwrite/16/iterations:1\n"
+      "BM_stdio_fwrite/32/iterations:1\n"
+      "BM_stdio_fwrite/64/iterations:1\n"
+      "BM_stdio_fwrite/512/iterations:1\n"
+      "BM_stdio_fwrite/1024/iterations:1\n"
+      "BM_stdio_fwrite/8192/iterations:1\n"
+      "BM_stdio_fwrite/16384/iterations:1\n"
+      "BM_stdio_fwrite/32768/iterations:1\n"
+      "BM_stdio_fwrite/65536/iterations:1\n"
+      "BM_stdio_fwrite/131072/iterations:1\n"
+      "BM_stdio_fread/1/iterations:1\n"
+      "BM_stdio_fread/2/iterations:1\n"
+      "BM_stdio_fread/3/iterations:1\n"
+      "BM_stdio_fread/4/iterations:1\n"
+      "BM_stdio_fread/5/iterations:1\n"
+      "BM_stdio_fread/6/iterations:1\n"
+      "BM_stdio_fread/7/iterations:1\n"
+      "BM_stdio_fread/8/iterations:1\n"
+      "BM_stdio_fread/9/iterations:1\n"
+      "BM_stdio_fread/10/iterations:1\n"
+      "BM_stdio_fread/11/iterations:1\n"
+      "BM_stdio_fread/12/iterations:1\n"
+      "BM_stdio_fread/13/iterations:1\n"
+      "BM_stdio_fread/14/iterations:1\n"
+      "BM_stdio_fread/15/iterations:1\n"
+      "BM_stdio_fread/16/iterations:1\n"
+      "BM_stdio_fread/24/iterations:1\n"
+      "BM_stdio_fread/32/iterations:1\n"
+      "BM_stdio_fread/40/iterations:1\n"
+      "BM_stdio_fread/48/iterations:1\n"
+      "BM_stdio_fread/56/iterations:1\n"
+      "BM_stdio_fread/64/iterations:1\n"
+      "BM_stdio_fread/72/iterations:1\n"
+      "BM_stdio_fread/80/iterations:1\n"
+      "BM_stdio_fread/88/iterations:1\n"
+      "BM_stdio_fread/96/iterations:1\n"
+      "BM_stdio_fread/104/iterations:1\n"
+      "BM_stdio_fread/112/iterations:1\n"
+      "BM_stdio_fread/120/iterations:1\n"
+      "BM_stdio_fread/128/iterations:1\n"
+      "BM_stdio_fread/136/iterations:1\n"
+      "BM_stdio_fread/144/iterations:1\n"
+      "BM_stdio_fread/160/iterations:1\n"
+      "BM_stdio_fread/176/iterations:1\n"
+      "BM_stdio_fread/192/iterations:1\n"
+      "BM_stdio_fread/208/iterations:1\n"
+      "BM_stdio_fread/224/iterations:1\n"
+      "BM_stdio_fread/240/iterations:1\n"
+      "BM_stdio_fread/256/iterations:1\n"
+      "BM_stdio_fwrite/512/iterations:1\n"
+      "BM_stdio_fwrite/1024/iterations:1\n"
+      "BM_stdio_fwrite/8192/iterations:1\n"
+      "BM_stdio_fwrite/16384/iterations:1\n"
+      "BM_stdio_fwrite/32768/iterations:1\n"
+      "BM_stdio_fwrite/65536/iterations:1\n"
+      "BM_stdio_fwrite/131072/iterations:1\n"
+      "BM_stdio_fread/262144/iterations:1\n"
+      "BM_stdio_fread/524288/iterations:1\n"
+      "BM_stdio_fread/1048576/iterations:1\n"
+      "BM_stdio_fread/2097152/iterations:1\n"
+      "BM_stdio_fwrite/1/iterations:1\n"
+      "BM_stdio_fwrite/2/iterations:1\n"
+      "BM_stdio_fwrite/3/iterations:1\n"
+      "BM_stdio_fwrite/4/iterations:1\n"
+      "BM_stdio_fwrite/5/iterations:1\n"
+      "BM_stdio_fwrite/6/iterations:1\n"
+      "BM_stdio_fwrite/7/iterations:1\n"
+      "BM_stdio_fwrite/8/iterations:1\n"
+      "BM_stdio_fwrite/9/iterations:1\n"
+      "BM_stdio_fwrite/10/iterations:1\n"
+      "BM_stdio_fwrite/11/iterations:1\n"
+      "BM_stdio_fwrite/12/iterations:1\n"
+      "BM_stdio_fwrite/13/iterations:1\n"
+      "BM_stdio_fwrite/14/iterations:1\n"
+      "BM_stdio_fwrite/15/iterations:1\n"
+      "BM_stdio_fwrite/16/iterations:1\n"
+      "BM_stdio_fwrite/24/iterations:1\n"
+      "BM_stdio_fwrite/32/iterations:1\n"
+      "BM_stdio_fwrite/40/iterations:1\n"
+      "BM_stdio_fwrite/48/iterations:1\n"
+      "BM_stdio_fwrite/56/iterations:1\n"
+      "BM_stdio_fwrite/64/iterations:1\n"
+      "BM_stdio_fwrite/72/iterations:1\n"
+      "BM_stdio_fwrite/80/iterations:1\n"
+      "BM_stdio_fwrite/88/iterations:1\n"
+      "BM_stdio_fwrite/96/iterations:1\n"
+      "BM_stdio_fwrite/104/iterations:1\n"
+      "BM_stdio_fwrite/112/iterations:1\n"
+      "BM_stdio_fwrite/120/iterations:1\n"
+      "BM_stdio_fwrite/128/iterations:1\n"
+      "BM_stdio_fwrite/136/iterations:1\n"
+      "BM_stdio_fwrite/144/iterations:1\n"
+      "BM_stdio_fwrite/160/iterations:1\n"
+      "BM_stdio_fwrite/176/iterations:1\n"
+      "BM_stdio_fwrite/192/iterations:1\n"
+      "BM_stdio_fwrite/208/iterations:1\n"
+      "BM_stdio_fwrite/224/iterations:1\n"
+      "BM_stdio_fwrite/240/iterations:1\n"
+      "BM_stdio_fwrite/256/iterations:1\n"
+      "BM_stdio_fwrite/512/iterations:1\n"
+      "BM_stdio_fwrite/1024/iterations:1\n"
+      "BM_stdio_fwrite/8192/iterations:1\n"
+      "BM_stdio_fwrite/16384/iterations:1\n"
+      "BM_stdio_fwrite/32768/iterations:1\n"
+      "BM_stdio_fwrite/65536/iterations:1\n"
+      "BM_stdio_fwrite/131072/iterations:1\n"
+      "BM_stdio_fwrite/262144/iterations:1\n"
+      "BM_stdio_fwrite/524288/iterations:1\n"
+      "BM_stdio_fwrite/1048576/iterations:1\n"
+      "BM_stdio_fwrite/2097152/iterations:1\n";
 
   Verify(expected, 0, std::vector<const char*>{GetBionicXmlArg("test_size.xml").c_str()});
 }
 
 TEST_F(SystemTests, alignment_onebuf) {
   std::string expected =
-    "BM_string_strlen/8/0/iterations:1\n"
-    "BM_string_strlen/64/0/iterations:1\n"
-    "BM_string_strlen/512/0/iterations:1\n"
-    "BM_string_strlen/1024/0/iterations:1\n"
-    "BM_string_strlen/8192/0/iterations:1\n"
-    "BM_string_strlen/16384/0/iterations:1\n"
-    "BM_string_strlen/32768/0/iterations:1\n"
-    "BM_string_strlen/65536/0/iterations:1\n"
-    "BM_string_strlen/131072/0/iterations:1\n"
-    "BM_string_memset/1/0/iterations:1\n"
-    "BM_string_memset/2/0/iterations:1\n"
-    "BM_string_memset/3/0/iterations:1\n"
-    "BM_string_memset/4/0/iterations:1\n"
-    "BM_string_memset/5/0/iterations:1\n"
-    "BM_string_memset/6/0/iterations:1\n"
-    "BM_string_memset/7/0/iterations:1\n"
-    "BM_string_memset/8/0/iterations:1\n"
-    "BM_string_memset/9/0/iterations:1\n"
-    "BM_string_memset/10/0/iterations:1\n"
-    "BM_string_memset/11/0/iterations:1\n"
-    "BM_string_memset/12/0/iterations:1\n"
-    "BM_string_memset/13/0/iterations:1\n"
-    "BM_string_memset/14/0/iterations:1\n"
-    "BM_string_memset/15/0/iterations:1\n"
-    "BM_string_memset/16/0/iterations:1\n"
-    "BM_string_memset/24/0/iterations:1\n"
-    "BM_string_memset/32/0/iterations:1\n"
-    "BM_string_memset/40/0/iterations:1\n"
-    "BM_string_memset/48/0/iterations:1\n"
-    "BM_string_memset/56/0/iterations:1\n"
-    "BM_string_memset/64/0/iterations:1\n"
-    "BM_string_memset/72/0/iterations:1\n"
-    "BM_string_memset/80/0/iterations:1\n"
-    "BM_string_memset/88/0/iterations:1\n"
-    "BM_string_memset/96/0/iterations:1\n"
-    "BM_string_memset/104/0/iterations:1\n"
-    "BM_string_memset/112/0/iterations:1\n"
-    "BM_string_memset/120/0/iterations:1\n"
-    "BM_string_memset/128/0/iterations:1\n"
-    "BM_string_memset/136/0/iterations:1\n"
-    "BM_string_memset/144/0/iterations:1\n"
-    "BM_string_memset/160/0/iterations:1\n"
-    "BM_string_memset/176/0/iterations:1\n"
-    "BM_string_memset/192/0/iterations:1\n"
-    "BM_string_memset/208/0/iterations:1\n"
-    "BM_string_memset/224/0/iterations:1\n"
-    "BM_string_memset/240/0/iterations:1\n"
-    "BM_string_memset/256/0/iterations:1\n"
-    "BM_string_strlen/512/0/iterations:1\n"
-    "BM_string_strlen/1024/0/iterations:1\n"
-    "BM_string_strlen/8192/0/iterations:1\n"
-    "BM_string_strlen/16384/0/iterations:1\n"
-    "BM_string_strlen/32768/0/iterations:1\n"
-    "BM_string_strlen/65536/0/iterations:1\n"
-    "BM_string_strlen/131072/0/iterations:1\n"
-    "BM_string_memset/262144/0/iterations:1\n"
-    "BM_string_memset/524288/0/iterations:1\n"
-    "BM_string_memset/1048576/0/iterations:1\n"
-    "BM_string_memset/2097152/0/iterations:1\n"
-    "BM_string_strlen/1/0/iterations:1\n"
-    "BM_string_strlen/2/0/iterations:1\n"
-    "BM_string_strlen/3/0/iterations:1\n"
-    "BM_string_strlen/4/0/iterations:1\n"
-    "BM_string_strlen/5/0/iterations:1\n"
-    "BM_string_strlen/6/0/iterations:1\n"
-    "BM_string_strlen/7/0/iterations:1\n"
-    "BM_string_strlen/8/0/iterations:1\n"
-    "BM_string_strlen/9/0/iterations:1\n"
-    "BM_string_strlen/10/0/iterations:1\n"
-    "BM_string_strlen/11/0/iterations:1\n"
-    "BM_string_strlen/12/0/iterations:1\n"
-    "BM_string_strlen/13/0/iterations:1\n"
-    "BM_string_strlen/14/0/iterations:1\n"
-    "BM_string_strlen/15/0/iterations:1\n"
-    "BM_string_strlen/16/0/iterations:1\n"
-    "BM_string_strlen/24/0/iterations:1\n"
-    "BM_string_strlen/32/0/iterations:1\n"
-    "BM_string_strlen/40/0/iterations:1\n"
-    "BM_string_strlen/48/0/iterations:1\n"
-    "BM_string_strlen/56/0/iterations:1\n"
-    "BM_string_strlen/64/0/iterations:1\n"
-    "BM_string_strlen/72/0/iterations:1\n"
-    "BM_string_strlen/80/0/iterations:1\n"
-    "BM_string_strlen/88/0/iterations:1\n"
-    "BM_string_strlen/96/0/iterations:1\n"
-    "BM_string_strlen/104/0/iterations:1\n"
-    "BM_string_strlen/112/0/iterations:1\n"
-    "BM_string_strlen/120/0/iterations:1\n"
-    "BM_string_strlen/128/0/iterations:1\n"
-    "BM_string_strlen/136/0/iterations:1\n"
-    "BM_string_strlen/144/0/iterations:1\n"
-    "BM_string_strlen/160/0/iterations:1\n"
-    "BM_string_strlen/176/0/iterations:1\n"
-    "BM_string_strlen/192/0/iterations:1\n"
-    "BM_string_strlen/208/0/iterations:1\n"
-    "BM_string_strlen/224/0/iterations:1\n"
-    "BM_string_strlen/240/0/iterations:1\n"
-    "BM_string_strlen/256/0/iterations:1\n"
-    "BM_string_strlen/512/0/iterations:1\n"
-    "BM_string_strlen/1024/0/iterations:1\n"
-    "BM_string_strlen/8192/0/iterations:1\n"
-    "BM_string_strlen/16384/0/iterations:1\n"
-    "BM_string_strlen/32768/0/iterations:1\n"
-    "BM_string_strlen/65536/0/iterations:1\n"
-    "BM_string_strlen/131072/0/iterations:1\n"
-    "BM_string_strlen/262144/0/iterations:1\n"
-    "BM_string_strlen/524288/0/iterations:1\n"
-    "BM_string_strlen/1048576/0/iterations:1\n"
-    "BM_string_strlen/2097152/0/iterations:1\n"
-    "BM_string_memset/1/0/iterations:1\n"
-    "BM_string_memset/1/1/iterations:1\n"
-    "BM_string_memset/1/2/iterations:1\n"
-    "BM_string_memset/1/4/iterations:1\n"
-    "BM_string_memset/1/8/iterations:1\n"
-    "BM_string_memset/1/16/iterations:1\n"
-    "BM_string_memset/1/32/iterations:1\n"
-    "BM_string_memset/2/0/iterations:1\n"
-    "BM_string_memset/2/1/iterations:1\n"
-    "BM_string_memset/2/2/iterations:1\n"
-    "BM_string_memset/2/4/iterations:1\n"
-    "BM_string_memset/2/8/iterations:1\n"
-    "BM_string_memset/2/16/iterations:1\n"
-    "BM_string_memset/2/32/iterations:1\n"
-    "BM_string_memset/3/0/iterations:1\n"
-    "BM_string_memset/3/1/iterations:1\n"
-    "BM_string_memset/3/2/iterations:1\n"
-    "BM_string_memset/3/4/iterations:1\n"
-    "BM_string_memset/3/8/iterations:1\n"
-    "BM_string_memset/3/16/iterations:1\n"
-    "BM_string_memset/3/32/iterations:1\n"
-    "BM_string_memset/4/0/iterations:1\n"
-    "BM_string_memset/4/1/iterations:1\n"
-    "BM_string_memset/4/2/iterations:1\n"
-    "BM_string_memset/4/4/iterations:1\n"
-    "BM_string_memset/4/8/iterations:1\n"
-    "BM_string_memset/4/16/iterations:1\n"
-    "BM_string_memset/4/32/iterations:1\n"
-    "BM_string_memset/5/0/iterations:1\n"
-    "BM_string_memset/5/1/iterations:1\n"
-    "BM_string_memset/5/2/iterations:1\n"
-    "BM_string_memset/5/4/iterations:1\n"
-    "BM_string_memset/5/8/iterations:1\n"
-    "BM_string_memset/5/16/iterations:1\n"
-    "BM_string_memset/5/32/iterations:1\n"
-    "BM_string_memset/6/0/iterations:1\n"
-    "BM_string_memset/6/1/iterations:1\n"
-    "BM_string_memset/6/2/iterations:1\n"
-    "BM_string_memset/6/4/iterations:1\n"
-    "BM_string_memset/6/8/iterations:1\n"
-    "BM_string_memset/6/16/iterations:1\n"
-    "BM_string_memset/6/32/iterations:1\n"
-    "BM_string_memset/7/0/iterations:1\n"
-    "BM_string_memset/7/1/iterations:1\n"
-    "BM_string_memset/7/2/iterations:1\n"
-    "BM_string_memset/7/4/iterations:1\n"
-    "BM_string_memset/7/8/iterations:1\n"
-    "BM_string_memset/7/16/iterations:1\n"
-    "BM_string_memset/7/32/iterations:1\n"
-    "BM_string_memset/8/0/iterations:1\n"
-    "BM_string_memset/8/1/iterations:1\n"
-    "BM_string_memset/8/2/iterations:1\n"
-    "BM_string_memset/8/4/iterations:1\n"
-    "BM_string_memset/8/8/iterations:1\n"
-    "BM_string_memset/8/16/iterations:1\n"
-    "BM_string_memset/8/32/iterations:1\n"
-    "BM_string_memset/9/0/iterations:1\n"
-    "BM_string_memset/9/1/iterations:1\n"
-    "BM_string_memset/9/2/iterations:1\n"
-    "BM_string_memset/9/4/iterations:1\n"
-    "BM_string_memset/9/8/iterations:1\n"
-    "BM_string_memset/9/16/iterations:1\n"
-    "BM_string_memset/9/32/iterations:1\n"
-    "BM_string_memset/10/0/iterations:1\n"
-    "BM_string_memset/10/1/iterations:1\n"
-    "BM_string_memset/10/2/iterations:1\n"
-    "BM_string_memset/10/4/iterations:1\n"
-    "BM_string_memset/10/8/iterations:1\n"
-    "BM_string_memset/10/16/iterations:1\n"
-    "BM_string_memset/10/32/iterations:1\n"
-    "BM_string_memset/11/0/iterations:1\n"
-    "BM_string_memset/11/1/iterations:1\n"
-    "BM_string_memset/11/2/iterations:1\n"
-    "BM_string_memset/11/4/iterations:1\n"
-    "BM_string_memset/11/8/iterations:1\n"
-    "BM_string_memset/11/16/iterations:1\n"
-    "BM_string_memset/11/32/iterations:1\n"
-    "BM_string_memset/12/0/iterations:1\n"
-    "BM_string_memset/12/1/iterations:1\n"
-    "BM_string_memset/12/2/iterations:1\n"
-    "BM_string_memset/12/4/iterations:1\n"
-    "BM_string_memset/12/8/iterations:1\n"
-    "BM_string_memset/12/16/iterations:1\n"
-    "BM_string_memset/12/32/iterations:1\n"
-    "BM_string_memset/13/0/iterations:1\n"
-    "BM_string_memset/13/1/iterations:1\n"
-    "BM_string_memset/13/2/iterations:1\n"
-    "BM_string_memset/13/4/iterations:1\n"
-    "BM_string_memset/13/8/iterations:1\n"
-    "BM_string_memset/13/16/iterations:1\n"
-    "BM_string_memset/13/32/iterations:1\n"
-    "BM_string_memset/14/0/iterations:1\n"
-    "BM_string_memset/14/1/iterations:1\n"
-    "BM_string_memset/14/2/iterations:1\n"
-    "BM_string_memset/14/4/iterations:1\n"
-    "BM_string_memset/14/8/iterations:1\n"
-    "BM_string_memset/14/16/iterations:1\n"
-    "BM_string_memset/14/32/iterations:1\n"
-    "BM_string_memset/15/0/iterations:1\n"
-    "BM_string_memset/15/1/iterations:1\n"
-    "BM_string_memset/15/2/iterations:1\n"
-    "BM_string_memset/15/4/iterations:1\n"
-    "BM_string_memset/15/8/iterations:1\n"
-    "BM_string_memset/15/16/iterations:1\n"
-    "BM_string_memset/15/32/iterations:1\n"
-    "BM_string_memset/16/0/iterations:1\n"
-    "BM_string_memset/16/1/iterations:1\n"
-    "BM_string_memset/16/2/iterations:1\n"
-    "BM_string_memset/16/4/iterations:1\n"
-    "BM_string_memset/16/8/iterations:1\n"
-    "BM_string_memset/16/16/iterations:1\n"
-    "BM_string_memset/16/32/iterations:1\n"
-    "BM_string_memset/24/0/iterations:1\n"
-    "BM_string_memset/24/1/iterations:1\n"
-    "BM_string_memset/24/2/iterations:1\n"
-    "BM_string_memset/24/4/iterations:1\n"
-    "BM_string_memset/24/8/iterations:1\n"
-    "BM_string_memset/24/16/iterations:1\n"
-    "BM_string_memset/24/32/iterations:1\n"
-    "BM_string_memset/32/0/iterations:1\n"
-    "BM_string_memset/32/1/iterations:1\n"
-    "BM_string_memset/32/2/iterations:1\n"
-    "BM_string_memset/32/4/iterations:1\n"
-    "BM_string_memset/32/8/iterations:1\n"
-    "BM_string_memset/32/16/iterations:1\n"
-    "BM_string_memset/32/32/iterations:1\n"
-    "BM_string_memset/40/0/iterations:1\n"
-    "BM_string_memset/40/1/iterations:1\n"
-    "BM_string_memset/40/2/iterations:1\n"
-    "BM_string_memset/40/4/iterations:1\n"
-    "BM_string_memset/40/8/iterations:1\n"
-    "BM_string_memset/40/16/iterations:1\n"
-    "BM_string_memset/40/32/iterations:1\n"
-    "BM_string_memset/48/0/iterations:1\n"
-    "BM_string_memset/48/1/iterations:1\n"
-    "BM_string_memset/48/2/iterations:1\n"
-    "BM_string_memset/48/4/iterations:1\n"
-    "BM_string_memset/48/8/iterations:1\n"
-    "BM_string_memset/48/16/iterations:1\n"
-    "BM_string_memset/48/32/iterations:1\n"
-    "BM_string_memset/56/0/iterations:1\n"
-    "BM_string_memset/56/1/iterations:1\n"
-    "BM_string_memset/56/2/iterations:1\n"
-    "BM_string_memset/56/4/iterations:1\n"
-    "BM_string_memset/56/8/iterations:1\n"
-    "BM_string_memset/56/16/iterations:1\n"
-    "BM_string_memset/56/32/iterations:1\n"
-    "BM_string_memset/64/0/iterations:1\n"
-    "BM_string_memset/64/1/iterations:1\n"
-    "BM_string_memset/64/2/iterations:1\n"
-    "BM_string_memset/64/4/iterations:1\n"
-    "BM_string_memset/64/8/iterations:1\n"
-    "BM_string_memset/64/16/iterations:1\n"
-    "BM_string_memset/64/32/iterations:1\n"
-    "BM_string_memset/72/0/iterations:1\n"
-    "BM_string_memset/72/1/iterations:1\n"
-    "BM_string_memset/72/2/iterations:1\n"
-    "BM_string_memset/72/4/iterations:1\n"
-    "BM_string_memset/72/8/iterations:1\n"
-    "BM_string_memset/72/16/iterations:1\n"
-    "BM_string_memset/72/32/iterations:1\n"
-    "BM_string_memset/80/0/iterations:1\n"
-    "BM_string_memset/80/1/iterations:1\n"
-    "BM_string_memset/80/2/iterations:1\n"
-    "BM_string_memset/80/4/iterations:1\n"
-    "BM_string_memset/80/8/iterations:1\n"
-    "BM_string_memset/80/16/iterations:1\n"
-    "BM_string_memset/80/32/iterations:1\n"
-    "BM_string_memset/88/0/iterations:1\n"
-    "BM_string_memset/88/1/iterations:1\n"
-    "BM_string_memset/88/2/iterations:1\n"
-    "BM_string_memset/88/4/iterations:1\n"
-    "BM_string_memset/88/8/iterations:1\n"
-    "BM_string_memset/88/16/iterations:1\n"
-    "BM_string_memset/88/32/iterations:1\n"
-    "BM_string_memset/96/0/iterations:1\n"
-    "BM_string_memset/96/1/iterations:1\n"
-    "BM_string_memset/96/2/iterations:1\n"
-    "BM_string_memset/96/4/iterations:1\n"
-    "BM_string_memset/96/8/iterations:1\n"
-    "BM_string_memset/96/16/iterations:1\n"
-    "BM_string_memset/96/32/iterations:1\n"
-    "BM_string_memset/104/0/iterations:1\n"
-    "BM_string_memset/104/1/iterations:1\n"
-    "BM_string_memset/104/2/iterations:1\n"
-    "BM_string_memset/104/4/iterations:1\n"
-    "BM_string_memset/104/8/iterations:1\n"
-    "BM_string_memset/104/16/iterations:1\n"
-    "BM_string_memset/104/32/iterations:1\n"
-    "BM_string_memset/112/0/iterations:1\n"
-    "BM_string_memset/112/1/iterations:1\n"
-    "BM_string_memset/112/2/iterations:1\n"
-    "BM_string_memset/112/4/iterations:1\n"
-    "BM_string_memset/112/8/iterations:1\n"
-    "BM_string_memset/112/16/iterations:1\n"
-    "BM_string_memset/112/32/iterations:1\n"
-    "BM_string_memset/120/0/iterations:1\n"
-    "BM_string_memset/120/1/iterations:1\n"
-    "BM_string_memset/120/2/iterations:1\n"
-    "BM_string_memset/120/4/iterations:1\n"
-    "BM_string_memset/120/8/iterations:1\n"
-    "BM_string_memset/120/16/iterations:1\n"
-    "BM_string_memset/120/32/iterations:1\n"
-    "BM_string_memset/128/0/iterations:1\n"
-    "BM_string_memset/128/1/iterations:1\n"
-    "BM_string_memset/128/2/iterations:1\n"
-    "BM_string_memset/128/4/iterations:1\n"
-    "BM_string_memset/128/8/iterations:1\n"
-    "BM_string_memset/128/16/iterations:1\n"
-    "BM_string_memset/128/32/iterations:1\n"
-    "BM_string_memset/136/0/iterations:1\n"
-    "BM_string_memset/136/1/iterations:1\n"
-    "BM_string_memset/136/2/iterations:1\n"
-    "BM_string_memset/136/4/iterations:1\n"
-    "BM_string_memset/136/8/iterations:1\n"
-    "BM_string_memset/136/16/iterations:1\n"
-    "BM_string_memset/136/32/iterations:1\n"
-    "BM_string_memset/144/0/iterations:1\n"
-    "BM_string_memset/144/1/iterations:1\n"
-    "BM_string_memset/144/2/iterations:1\n"
-    "BM_string_memset/144/4/iterations:1\n"
-    "BM_string_memset/144/8/iterations:1\n"
-    "BM_string_memset/144/16/iterations:1\n"
-    "BM_string_memset/144/32/iterations:1\n"
-    "BM_string_memset/160/0/iterations:1\n"
-    "BM_string_memset/160/1/iterations:1\n"
-    "BM_string_memset/160/2/iterations:1\n"
-    "BM_string_memset/160/4/iterations:1\n"
-    "BM_string_memset/160/8/iterations:1\n"
-    "BM_string_memset/160/16/iterations:1\n"
-    "BM_string_memset/160/32/iterations:1\n"
-    "BM_string_memset/176/0/iterations:1\n"
-    "BM_string_memset/176/1/iterations:1\n"
-    "BM_string_memset/176/2/iterations:1\n"
-    "BM_string_memset/176/4/iterations:1\n"
-    "BM_string_memset/176/8/iterations:1\n"
-    "BM_string_memset/176/16/iterations:1\n"
-    "BM_string_memset/176/32/iterations:1\n"
-    "BM_string_memset/192/0/iterations:1\n"
-    "BM_string_memset/192/1/iterations:1\n"
-    "BM_string_memset/192/2/iterations:1\n"
-    "BM_string_memset/192/4/iterations:1\n"
-    "BM_string_memset/192/8/iterations:1\n"
-    "BM_string_memset/192/16/iterations:1\n"
-    "BM_string_memset/192/32/iterations:1\n"
-    "BM_string_memset/208/0/iterations:1\n"
-    "BM_string_memset/208/1/iterations:1\n"
-    "BM_string_memset/208/2/iterations:1\n"
-    "BM_string_memset/208/4/iterations:1\n"
-    "BM_string_memset/208/8/iterations:1\n"
-    "BM_string_memset/208/16/iterations:1\n"
-    "BM_string_memset/208/32/iterations:1\n"
-    "BM_string_memset/224/0/iterations:1\n"
-    "BM_string_memset/224/1/iterations:1\n"
-    "BM_string_memset/224/2/iterations:1\n"
-    "BM_string_memset/224/4/iterations:1\n"
-    "BM_string_memset/224/8/iterations:1\n"
-    "BM_string_memset/224/16/iterations:1\n"
-    "BM_string_memset/224/32/iterations:1\n"
-    "BM_string_memset/240/0/iterations:1\n"
-    "BM_string_memset/240/1/iterations:1\n"
-    "BM_string_memset/240/2/iterations:1\n"
-    "BM_string_memset/240/4/iterations:1\n"
-    "BM_string_memset/240/8/iterations:1\n"
-    "BM_string_memset/240/16/iterations:1\n"
-    "BM_string_memset/240/32/iterations:1\n"
-    "BM_string_memset/256/0/iterations:1\n"
-    "BM_string_memset/256/1/iterations:1\n"
-    "BM_string_memset/256/2/iterations:1\n"
-    "BM_string_memset/256/4/iterations:1\n"
-    "BM_string_memset/256/8/iterations:1\n"
-    "BM_string_memset/256/16/iterations:1\n"
-    "BM_string_memset/256/32/iterations:1\n"
-    "BM_string_memset/512/0/iterations:1\n"
-    "BM_string_memset/512/1/iterations:1\n"
-    "BM_string_memset/512/2/iterations:1\n"
-    "BM_string_memset/512/4/iterations:1\n"
-    "BM_string_memset/512/8/iterations:1\n"
-    "BM_string_memset/512/16/iterations:1\n"
-    "BM_string_memset/512/32/iterations:1\n"
-    "BM_string_memset/1024/0/iterations:1\n"
-    "BM_string_memset/1024/1/iterations:1\n"
-    "BM_string_memset/1024/2/iterations:1\n"
-    "BM_string_memset/1024/4/iterations:1\n"
-    "BM_string_memset/1024/8/iterations:1\n"
-    "BM_string_memset/1024/16/iterations:1\n"
-    "BM_string_memset/1024/32/iterations:1\n"
-    "BM_string_memset/8192/0/iterations:1\n"
-    "BM_string_memset/8192/1/iterations:1\n"
-    "BM_string_memset/8192/2/iterations:1\n"
-    "BM_string_memset/8192/4/iterations:1\n"
-    "BM_string_memset/8192/8/iterations:1\n"
-    "BM_string_memset/8192/16/iterations:1\n"
-    "BM_string_memset/8192/32/iterations:1\n"
-    "BM_string_memset/16384/0/iterations:1\n"
-    "BM_string_memset/16384/1/iterations:1\n"
-    "BM_string_memset/16384/2/iterations:1\n"
-    "BM_string_memset/16384/4/iterations:1\n"
-    "BM_string_memset/16384/8/iterations:1\n"
-    "BM_string_memset/16384/16/iterations:1\n"
-    "BM_string_memset/16384/32/iterations:1\n"
-    "BM_string_memset/32768/0/iterations:1\n"
-    "BM_string_memset/32768/1/iterations:1\n"
-    "BM_string_memset/32768/2/iterations:1\n"
-    "BM_string_memset/32768/4/iterations:1\n"
-    "BM_string_memset/32768/8/iterations:1\n"
-    "BM_string_memset/32768/16/iterations:1\n"
-    "BM_string_memset/32768/32/iterations:1\n"
-    "BM_string_memset/65536/0/iterations:1\n"
-    "BM_string_memset/65536/1/iterations:1\n"
-    "BM_string_memset/65536/2/iterations:1\n"
-    "BM_string_memset/65536/4/iterations:1\n"
-    "BM_string_memset/65536/8/iterations:1\n"
-    "BM_string_memset/65536/16/iterations:1\n"
-    "BM_string_memset/65536/32/iterations:1\n"
-    "BM_string_memset/131072/0/iterations:1\n"
-    "BM_string_memset/131072/1/iterations:1\n"
-    "BM_string_memset/131072/2/iterations:1\n"
-    "BM_string_memset/131072/4/iterations:1\n"
-    "BM_string_memset/131072/8/iterations:1\n"
-    "BM_string_memset/131072/16/iterations:1\n"
-    "BM_string_memset/131072/32/iterations:1\n"
-    "BM_string_memset/262144/0/iterations:1\n"
-    "BM_string_memset/262144/1/iterations:1\n"
-    "BM_string_memset/262144/2/iterations:1\n"
-    "BM_string_memset/262144/4/iterations:1\n"
-    "BM_string_memset/262144/8/iterations:1\n"
-    "BM_string_memset/262144/16/iterations:1\n"
-    "BM_string_memset/262144/32/iterations:1\n"
-    "BM_string_memset/524288/0/iterations:1\n"
-    "BM_string_memset/524288/1/iterations:1\n"
-    "BM_string_memset/524288/2/iterations:1\n"
-    "BM_string_memset/524288/4/iterations:1\n"
-    "BM_string_memset/524288/8/iterations:1\n"
-    "BM_string_memset/524288/16/iterations:1\n"
-    "BM_string_memset/524288/32/iterations:1\n"
-    "BM_string_memset/1048576/0/iterations:1\n"
-    "BM_string_memset/1048576/1/iterations:1\n"
-    "BM_string_memset/1048576/2/iterations:1\n"
-    "BM_string_memset/1048576/4/iterations:1\n"
-    "BM_string_memset/1048576/8/iterations:1\n"
-    "BM_string_memset/1048576/16/iterations:1\n"
-    "BM_string_memset/1048576/32/iterations:1\n"
-    "BM_string_memset/2097152/0/iterations:1\n"
-    "BM_string_memset/2097152/1/iterations:1\n"
-    "BM_string_memset/2097152/2/iterations:1\n"
-    "BM_string_memset/2097152/4/iterations:1\n"
-    "BM_string_memset/2097152/8/iterations:1\n"
-    "BM_string_memset/2097152/16/iterations:1\n"
-    "BM_string_memset/2097152/32/iterations:1\n";
+      "BM_string_strlen/8/0/iterations:1\n"
+      "BM_string_strlen/16/0/iterations:1\n"
+      "BM_string_strlen/32/0/iterations:1\n"
+      "BM_string_strlen/64/0/iterations:1\n"
+      "BM_string_strlen/512/0/iterations:1\n"
+      "BM_string_strlen/1024/0/iterations:1\n"
+      "BM_string_strlen/8192/0/iterations:1\n"
+      "BM_string_strlen/16384/0/iterations:1\n"
+      "BM_string_strlen/32768/0/iterations:1\n"
+      "BM_string_strlen/65536/0/iterations:1\n"
+      "BM_string_strlen/131072/0/iterations:1\n"
+      "BM_string_memset/1/0/iterations:1\n"
+      "BM_string_memset/2/0/iterations:1\n"
+      "BM_string_memset/3/0/iterations:1\n"
+      "BM_string_memset/4/0/iterations:1\n"
+      "BM_string_memset/5/0/iterations:1\n"
+      "BM_string_memset/6/0/iterations:1\n"
+      "BM_string_memset/7/0/iterations:1\n"
+      "BM_string_memset/8/0/iterations:1\n"
+      "BM_string_memset/9/0/iterations:1\n"
+      "BM_string_memset/10/0/iterations:1\n"
+      "BM_string_memset/11/0/iterations:1\n"
+      "BM_string_memset/12/0/iterations:1\n"
+      "BM_string_memset/13/0/iterations:1\n"
+      "BM_string_memset/14/0/iterations:1\n"
+      "BM_string_memset/15/0/iterations:1\n"
+      "BM_string_memset/16/0/iterations:1\n"
+      "BM_string_memset/24/0/iterations:1\n"
+      "BM_string_memset/32/0/iterations:1\n"
+      "BM_string_memset/40/0/iterations:1\n"
+      "BM_string_memset/48/0/iterations:1\n"
+      "BM_string_memset/56/0/iterations:1\n"
+      "BM_string_memset/64/0/iterations:1\n"
+      "BM_string_memset/72/0/iterations:1\n"
+      "BM_string_memset/80/0/iterations:1\n"
+      "BM_string_memset/88/0/iterations:1\n"
+      "BM_string_memset/96/0/iterations:1\n"
+      "BM_string_memset/104/0/iterations:1\n"
+      "BM_string_memset/112/0/iterations:1\n"
+      "BM_string_memset/120/0/iterations:1\n"
+      "BM_string_memset/128/0/iterations:1\n"
+      "BM_string_memset/136/0/iterations:1\n"
+      "BM_string_memset/144/0/iterations:1\n"
+      "BM_string_memset/160/0/iterations:1\n"
+      "BM_string_memset/176/0/iterations:1\n"
+      "BM_string_memset/192/0/iterations:1\n"
+      "BM_string_memset/208/0/iterations:1\n"
+      "BM_string_memset/224/0/iterations:1\n"
+      "BM_string_memset/240/0/iterations:1\n"
+      "BM_string_memset/256/0/iterations:1\n"
+      "BM_string_strlen/512/0/iterations:1\n"
+      "BM_string_strlen/1024/0/iterations:1\n"
+      "BM_string_strlen/8192/0/iterations:1\n"
+      "BM_string_strlen/16384/0/iterations:1\n"
+      "BM_string_strlen/32768/0/iterations:1\n"
+      "BM_string_strlen/65536/0/iterations:1\n"
+      "BM_string_strlen/131072/0/iterations:1\n"
+      "BM_string_memset/262144/0/iterations:1\n"
+      "BM_string_memset/524288/0/iterations:1\n"
+      "BM_string_memset/1048576/0/iterations:1\n"
+      "BM_string_memset/2097152/0/iterations:1\n"
+      "BM_string_strlen/1/0/iterations:1\n"
+      "BM_string_strlen/2/0/iterations:1\n"
+      "BM_string_strlen/3/0/iterations:1\n"
+      "BM_string_strlen/4/0/iterations:1\n"
+      "BM_string_strlen/5/0/iterations:1\n"
+      "BM_string_strlen/6/0/iterations:1\n"
+      "BM_string_strlen/7/0/iterations:1\n"
+      "BM_string_strlen/8/0/iterations:1\n"
+      "BM_string_strlen/9/0/iterations:1\n"
+      "BM_string_strlen/10/0/iterations:1\n"
+      "BM_string_strlen/11/0/iterations:1\n"
+      "BM_string_strlen/12/0/iterations:1\n"
+      "BM_string_strlen/13/0/iterations:1\n"
+      "BM_string_strlen/14/0/iterations:1\n"
+      "BM_string_strlen/15/0/iterations:1\n"
+      "BM_string_strlen/16/0/iterations:1\n"
+      "BM_string_strlen/24/0/iterations:1\n"
+      "BM_string_strlen/32/0/iterations:1\n"
+      "BM_string_strlen/40/0/iterations:1\n"
+      "BM_string_strlen/48/0/iterations:1\n"
+      "BM_string_strlen/56/0/iterations:1\n"
+      "BM_string_strlen/64/0/iterations:1\n"
+      "BM_string_strlen/72/0/iterations:1\n"
+      "BM_string_strlen/80/0/iterations:1\n"
+      "BM_string_strlen/88/0/iterations:1\n"
+      "BM_string_strlen/96/0/iterations:1\n"
+      "BM_string_strlen/104/0/iterations:1\n"
+      "BM_string_strlen/112/0/iterations:1\n"
+      "BM_string_strlen/120/0/iterations:1\n"
+      "BM_string_strlen/128/0/iterations:1\n"
+      "BM_string_strlen/136/0/iterations:1\n"
+      "BM_string_strlen/144/0/iterations:1\n"
+      "BM_string_strlen/160/0/iterations:1\n"
+      "BM_string_strlen/176/0/iterations:1\n"
+      "BM_string_strlen/192/0/iterations:1\n"
+      "BM_string_strlen/208/0/iterations:1\n"
+      "BM_string_strlen/224/0/iterations:1\n"
+      "BM_string_strlen/240/0/iterations:1\n"
+      "BM_string_strlen/256/0/iterations:1\n"
+      "BM_string_strlen/512/0/iterations:1\n"
+      "BM_string_strlen/1024/0/iterations:1\n"
+      "BM_string_strlen/8192/0/iterations:1\n"
+      "BM_string_strlen/16384/0/iterations:1\n"
+      "BM_string_strlen/32768/0/iterations:1\n"
+      "BM_string_strlen/65536/0/iterations:1\n"
+      "BM_string_strlen/131072/0/iterations:1\n"
+      "BM_string_strlen/262144/0/iterations:1\n"
+      "BM_string_strlen/524288/0/iterations:1\n"
+      "BM_string_strlen/1048576/0/iterations:1\n"
+      "BM_string_strlen/2097152/0/iterations:1\n"
+      "BM_string_memset/1/0/iterations:1\n"
+      "BM_string_memset/1/1/iterations:1\n"
+      "BM_string_memset/1/2/iterations:1\n"
+      "BM_string_memset/1/4/iterations:1\n"
+      "BM_string_memset/1/8/iterations:1\n"
+      "BM_string_memset/1/16/iterations:1\n"
+      "BM_string_memset/1/32/iterations:1\n"
+      "BM_string_memset/2/0/iterations:1\n"
+      "BM_string_memset/2/1/iterations:1\n"
+      "BM_string_memset/2/2/iterations:1\n"
+      "BM_string_memset/2/4/iterations:1\n"
+      "BM_string_memset/2/8/iterations:1\n"
+      "BM_string_memset/2/16/iterations:1\n"
+      "BM_string_memset/2/32/iterations:1\n"
+      "BM_string_memset/3/0/iterations:1\n"
+      "BM_string_memset/3/1/iterations:1\n"
+      "BM_string_memset/3/2/iterations:1\n"
+      "BM_string_memset/3/4/iterations:1\n"
+      "BM_string_memset/3/8/iterations:1\n"
+      "BM_string_memset/3/16/iterations:1\n"
+      "BM_string_memset/3/32/iterations:1\n"
+      "BM_string_memset/4/0/iterations:1\n"
+      "BM_string_memset/4/1/iterations:1\n"
+      "BM_string_memset/4/2/iterations:1\n"
+      "BM_string_memset/4/4/iterations:1\n"
+      "BM_string_memset/4/8/iterations:1\n"
+      "BM_string_memset/4/16/iterations:1\n"
+      "BM_string_memset/4/32/iterations:1\n"
+      "BM_string_memset/5/0/iterations:1\n"
+      "BM_string_memset/5/1/iterations:1\n"
+      "BM_string_memset/5/2/iterations:1\n"
+      "BM_string_memset/5/4/iterations:1\n"
+      "BM_string_memset/5/8/iterations:1\n"
+      "BM_string_memset/5/16/iterations:1\n"
+      "BM_string_memset/5/32/iterations:1\n"
+      "BM_string_memset/6/0/iterations:1\n"
+      "BM_string_memset/6/1/iterations:1\n"
+      "BM_string_memset/6/2/iterations:1\n"
+      "BM_string_memset/6/4/iterations:1\n"
+      "BM_string_memset/6/8/iterations:1\n"
+      "BM_string_memset/6/16/iterations:1\n"
+      "BM_string_memset/6/32/iterations:1\n"
+      "BM_string_memset/7/0/iterations:1\n"
+      "BM_string_memset/7/1/iterations:1\n"
+      "BM_string_memset/7/2/iterations:1\n"
+      "BM_string_memset/7/4/iterations:1\n"
+      "BM_string_memset/7/8/iterations:1\n"
+      "BM_string_memset/7/16/iterations:1\n"
+      "BM_string_memset/7/32/iterations:1\n"
+      "BM_string_memset/8/0/iterations:1\n"
+      "BM_string_memset/8/1/iterations:1\n"
+      "BM_string_memset/8/2/iterations:1\n"
+      "BM_string_memset/8/4/iterations:1\n"
+      "BM_string_memset/8/8/iterations:1\n"
+      "BM_string_memset/8/16/iterations:1\n"
+      "BM_string_memset/8/32/iterations:1\n"
+      "BM_string_memset/9/0/iterations:1\n"
+      "BM_string_memset/9/1/iterations:1\n"
+      "BM_string_memset/9/2/iterations:1\n"
+      "BM_string_memset/9/4/iterations:1\n"
+      "BM_string_memset/9/8/iterations:1\n"
+      "BM_string_memset/9/16/iterations:1\n"
+      "BM_string_memset/9/32/iterations:1\n"
+      "BM_string_memset/10/0/iterations:1\n"
+      "BM_string_memset/10/1/iterations:1\n"
+      "BM_string_memset/10/2/iterations:1\n"
+      "BM_string_memset/10/4/iterations:1\n"
+      "BM_string_memset/10/8/iterations:1\n"
+      "BM_string_memset/10/16/iterations:1\n"
+      "BM_string_memset/10/32/iterations:1\n"
+      "BM_string_memset/11/0/iterations:1\n"
+      "BM_string_memset/11/1/iterations:1\n"
+      "BM_string_memset/11/2/iterations:1\n"
+      "BM_string_memset/11/4/iterations:1\n"
+      "BM_string_memset/11/8/iterations:1\n"
+      "BM_string_memset/11/16/iterations:1\n"
+      "BM_string_memset/11/32/iterations:1\n"
+      "BM_string_memset/12/0/iterations:1\n"
+      "BM_string_memset/12/1/iterations:1\n"
+      "BM_string_memset/12/2/iterations:1\n"
+      "BM_string_memset/12/4/iterations:1\n"
+      "BM_string_memset/12/8/iterations:1\n"
+      "BM_string_memset/12/16/iterations:1\n"
+      "BM_string_memset/12/32/iterations:1\n"
+      "BM_string_memset/13/0/iterations:1\n"
+      "BM_string_memset/13/1/iterations:1\n"
+      "BM_string_memset/13/2/iterations:1\n"
+      "BM_string_memset/13/4/iterations:1\n"
+      "BM_string_memset/13/8/iterations:1\n"
+      "BM_string_memset/13/16/iterations:1\n"
+      "BM_string_memset/13/32/iterations:1\n"
+      "BM_string_memset/14/0/iterations:1\n"
+      "BM_string_memset/14/1/iterations:1\n"
+      "BM_string_memset/14/2/iterations:1\n"
+      "BM_string_memset/14/4/iterations:1\n"
+      "BM_string_memset/14/8/iterations:1\n"
+      "BM_string_memset/14/16/iterations:1\n"
+      "BM_string_memset/14/32/iterations:1\n"
+      "BM_string_memset/15/0/iterations:1\n"
+      "BM_string_memset/15/1/iterations:1\n"
+      "BM_string_memset/15/2/iterations:1\n"
+      "BM_string_memset/15/4/iterations:1\n"
+      "BM_string_memset/15/8/iterations:1\n"
+      "BM_string_memset/15/16/iterations:1\n"
+      "BM_string_memset/15/32/iterations:1\n"
+      "BM_string_memset/16/0/iterations:1\n"
+      "BM_string_memset/16/1/iterations:1\n"
+      "BM_string_memset/16/2/iterations:1\n"
+      "BM_string_memset/16/4/iterations:1\n"
+      "BM_string_memset/16/8/iterations:1\n"
+      "BM_string_memset/16/16/iterations:1\n"
+      "BM_string_memset/16/32/iterations:1\n"
+      "BM_string_memset/24/0/iterations:1\n"
+      "BM_string_memset/24/1/iterations:1\n"
+      "BM_string_memset/24/2/iterations:1\n"
+      "BM_string_memset/24/4/iterations:1\n"
+      "BM_string_memset/24/8/iterations:1\n"
+      "BM_string_memset/24/16/iterations:1\n"
+      "BM_string_memset/24/32/iterations:1\n"
+      "BM_string_memset/32/0/iterations:1\n"
+      "BM_string_memset/32/1/iterations:1\n"
+      "BM_string_memset/32/2/iterations:1\n"
+      "BM_string_memset/32/4/iterations:1\n"
+      "BM_string_memset/32/8/iterations:1\n"
+      "BM_string_memset/32/16/iterations:1\n"
+      "BM_string_memset/32/32/iterations:1\n"
+      "BM_string_memset/40/0/iterations:1\n"
+      "BM_string_memset/40/1/iterations:1\n"
+      "BM_string_memset/40/2/iterations:1\n"
+      "BM_string_memset/40/4/iterations:1\n"
+      "BM_string_memset/40/8/iterations:1\n"
+      "BM_string_memset/40/16/iterations:1\n"
+      "BM_string_memset/40/32/iterations:1\n"
+      "BM_string_memset/48/0/iterations:1\n"
+      "BM_string_memset/48/1/iterations:1\n"
+      "BM_string_memset/48/2/iterations:1\n"
+      "BM_string_memset/48/4/iterations:1\n"
+      "BM_string_memset/48/8/iterations:1\n"
+      "BM_string_memset/48/16/iterations:1\n"
+      "BM_string_memset/48/32/iterations:1\n"
+      "BM_string_memset/56/0/iterations:1\n"
+      "BM_string_memset/56/1/iterations:1\n"
+      "BM_string_memset/56/2/iterations:1\n"
+      "BM_string_memset/56/4/iterations:1\n"
+      "BM_string_memset/56/8/iterations:1\n"
+      "BM_string_memset/56/16/iterations:1\n"
+      "BM_string_memset/56/32/iterations:1\n"
+      "BM_string_memset/64/0/iterations:1\n"
+      "BM_string_memset/64/1/iterations:1\n"
+      "BM_string_memset/64/2/iterations:1\n"
+      "BM_string_memset/64/4/iterations:1\n"
+      "BM_string_memset/64/8/iterations:1\n"
+      "BM_string_memset/64/16/iterations:1\n"
+      "BM_string_memset/64/32/iterations:1\n"
+      "BM_string_memset/72/0/iterations:1\n"
+      "BM_string_memset/72/1/iterations:1\n"
+      "BM_string_memset/72/2/iterations:1\n"
+      "BM_string_memset/72/4/iterations:1\n"
+      "BM_string_memset/72/8/iterations:1\n"
+      "BM_string_memset/72/16/iterations:1\n"
+      "BM_string_memset/72/32/iterations:1\n"
+      "BM_string_memset/80/0/iterations:1\n"
+      "BM_string_memset/80/1/iterations:1\n"
+      "BM_string_memset/80/2/iterations:1\n"
+      "BM_string_memset/80/4/iterations:1\n"
+      "BM_string_memset/80/8/iterations:1\n"
+      "BM_string_memset/80/16/iterations:1\n"
+      "BM_string_memset/80/32/iterations:1\n"
+      "BM_string_memset/88/0/iterations:1\n"
+      "BM_string_memset/88/1/iterations:1\n"
+      "BM_string_memset/88/2/iterations:1\n"
+      "BM_string_memset/88/4/iterations:1\n"
+      "BM_string_memset/88/8/iterations:1\n"
+      "BM_string_memset/88/16/iterations:1\n"
+      "BM_string_memset/88/32/iterations:1\n"
+      "BM_string_memset/96/0/iterations:1\n"
+      "BM_string_memset/96/1/iterations:1\n"
+      "BM_string_memset/96/2/iterations:1\n"
+      "BM_string_memset/96/4/iterations:1\n"
+      "BM_string_memset/96/8/iterations:1\n"
+      "BM_string_memset/96/16/iterations:1\n"
+      "BM_string_memset/96/32/iterations:1\n"
+      "BM_string_memset/104/0/iterations:1\n"
+      "BM_string_memset/104/1/iterations:1\n"
+      "BM_string_memset/104/2/iterations:1\n"
+      "BM_string_memset/104/4/iterations:1\n"
+      "BM_string_memset/104/8/iterations:1\n"
+      "BM_string_memset/104/16/iterations:1\n"
+      "BM_string_memset/104/32/iterations:1\n"
+      "BM_string_memset/112/0/iterations:1\n"
+      "BM_string_memset/112/1/iterations:1\n"
+      "BM_string_memset/112/2/iterations:1\n"
+      "BM_string_memset/112/4/iterations:1\n"
+      "BM_string_memset/112/8/iterations:1\n"
+      "BM_string_memset/112/16/iterations:1\n"
+      "BM_string_memset/112/32/iterations:1\n"
+      "BM_string_memset/120/0/iterations:1\n"
+      "BM_string_memset/120/1/iterations:1\n"
+      "BM_string_memset/120/2/iterations:1\n"
+      "BM_string_memset/120/4/iterations:1\n"
+      "BM_string_memset/120/8/iterations:1\n"
+      "BM_string_memset/120/16/iterations:1\n"
+      "BM_string_memset/120/32/iterations:1\n"
+      "BM_string_memset/128/0/iterations:1\n"
+      "BM_string_memset/128/1/iterations:1\n"
+      "BM_string_memset/128/2/iterations:1\n"
+      "BM_string_memset/128/4/iterations:1\n"
+      "BM_string_memset/128/8/iterations:1\n"
+      "BM_string_memset/128/16/iterations:1\n"
+      "BM_string_memset/128/32/iterations:1\n"
+      "BM_string_memset/136/0/iterations:1\n"
+      "BM_string_memset/136/1/iterations:1\n"
+      "BM_string_memset/136/2/iterations:1\n"
+      "BM_string_memset/136/4/iterations:1\n"
+      "BM_string_memset/136/8/iterations:1\n"
+      "BM_string_memset/136/16/iterations:1\n"
+      "BM_string_memset/136/32/iterations:1\n"
+      "BM_string_memset/144/0/iterations:1\n"
+      "BM_string_memset/144/1/iterations:1\n"
+      "BM_string_memset/144/2/iterations:1\n"
+      "BM_string_memset/144/4/iterations:1\n"
+      "BM_string_memset/144/8/iterations:1\n"
+      "BM_string_memset/144/16/iterations:1\n"
+      "BM_string_memset/144/32/iterations:1\n"
+      "BM_string_memset/160/0/iterations:1\n"
+      "BM_string_memset/160/1/iterations:1\n"
+      "BM_string_memset/160/2/iterations:1\n"
+      "BM_string_memset/160/4/iterations:1\n"
+      "BM_string_memset/160/8/iterations:1\n"
+      "BM_string_memset/160/16/iterations:1\n"
+      "BM_string_memset/160/32/iterations:1\n"
+      "BM_string_memset/176/0/iterations:1\n"
+      "BM_string_memset/176/1/iterations:1\n"
+      "BM_string_memset/176/2/iterations:1\n"
+      "BM_string_memset/176/4/iterations:1\n"
+      "BM_string_memset/176/8/iterations:1\n"
+      "BM_string_memset/176/16/iterations:1\n"
+      "BM_string_memset/176/32/iterations:1\n"
+      "BM_string_memset/192/0/iterations:1\n"
+      "BM_string_memset/192/1/iterations:1\n"
+      "BM_string_memset/192/2/iterations:1\n"
+      "BM_string_memset/192/4/iterations:1\n"
+      "BM_string_memset/192/8/iterations:1\n"
+      "BM_string_memset/192/16/iterations:1\n"
+      "BM_string_memset/192/32/iterations:1\n"
+      "BM_string_memset/208/0/iterations:1\n"
+      "BM_string_memset/208/1/iterations:1\n"
+      "BM_string_memset/208/2/iterations:1\n"
+      "BM_string_memset/208/4/iterations:1\n"
+      "BM_string_memset/208/8/iterations:1\n"
+      "BM_string_memset/208/16/iterations:1\n"
+      "BM_string_memset/208/32/iterations:1\n"
+      "BM_string_memset/224/0/iterations:1\n"
+      "BM_string_memset/224/1/iterations:1\n"
+      "BM_string_memset/224/2/iterations:1\n"
+      "BM_string_memset/224/4/iterations:1\n"
+      "BM_string_memset/224/8/iterations:1\n"
+      "BM_string_memset/224/16/iterations:1\n"
+      "BM_string_memset/224/32/iterations:1\n"
+      "BM_string_memset/240/0/iterations:1\n"
+      "BM_string_memset/240/1/iterations:1\n"
+      "BM_string_memset/240/2/iterations:1\n"
+      "BM_string_memset/240/4/iterations:1\n"
+      "BM_string_memset/240/8/iterations:1\n"
+      "BM_string_memset/240/16/iterations:1\n"
+      "BM_string_memset/240/32/iterations:1\n"
+      "BM_string_memset/256/0/iterations:1\n"
+      "BM_string_memset/256/1/iterations:1\n"
+      "BM_string_memset/256/2/iterations:1\n"
+      "BM_string_memset/256/4/iterations:1\n"
+      "BM_string_memset/256/8/iterations:1\n"
+      "BM_string_memset/256/16/iterations:1\n"
+      "BM_string_memset/256/32/iterations:1\n"
+      "BM_string_memset/512/0/iterations:1\n"
+      "BM_string_memset/512/1/iterations:1\n"
+      "BM_string_memset/512/2/iterations:1\n"
+      "BM_string_memset/512/4/iterations:1\n"
+      "BM_string_memset/512/8/iterations:1\n"
+      "BM_string_memset/512/16/iterations:1\n"
+      "BM_string_memset/512/32/iterations:1\n"
+      "BM_string_memset/1024/0/iterations:1\n"
+      "BM_string_memset/1024/1/iterations:1\n"
+      "BM_string_memset/1024/2/iterations:1\n"
+      "BM_string_memset/1024/4/iterations:1\n"
+      "BM_string_memset/1024/8/iterations:1\n"
+      "BM_string_memset/1024/16/iterations:1\n"
+      "BM_string_memset/1024/32/iterations:1\n"
+      "BM_string_memset/8192/0/iterations:1\n"
+      "BM_string_memset/8192/1/iterations:1\n"
+      "BM_string_memset/8192/2/iterations:1\n"
+      "BM_string_memset/8192/4/iterations:1\n"
+      "BM_string_memset/8192/8/iterations:1\n"
+      "BM_string_memset/8192/16/iterations:1\n"
+      "BM_string_memset/8192/32/iterations:1\n"
+      "BM_string_memset/16384/0/iterations:1\n"
+      "BM_string_memset/16384/1/iterations:1\n"
+      "BM_string_memset/16384/2/iterations:1\n"
+      "BM_string_memset/16384/4/iterations:1\n"
+      "BM_string_memset/16384/8/iterations:1\n"
+      "BM_string_memset/16384/16/iterations:1\n"
+      "BM_string_memset/16384/32/iterations:1\n"
+      "BM_string_memset/32768/0/iterations:1\n"
+      "BM_string_memset/32768/1/iterations:1\n"
+      "BM_string_memset/32768/2/iterations:1\n"
+      "BM_string_memset/32768/4/iterations:1\n"
+      "BM_string_memset/32768/8/iterations:1\n"
+      "BM_string_memset/32768/16/iterations:1\n"
+      "BM_string_memset/32768/32/iterations:1\n"
+      "BM_string_memset/65536/0/iterations:1\n"
+      "BM_string_memset/65536/1/iterations:1\n"
+      "BM_string_memset/65536/2/iterations:1\n"
+      "BM_string_memset/65536/4/iterations:1\n"
+      "BM_string_memset/65536/8/iterations:1\n"
+      "BM_string_memset/65536/16/iterations:1\n"
+      "BM_string_memset/65536/32/iterations:1\n"
+      "BM_string_memset/131072/0/iterations:1\n"
+      "BM_string_memset/131072/1/iterations:1\n"
+      "BM_string_memset/131072/2/iterations:1\n"
+      "BM_string_memset/131072/4/iterations:1\n"
+      "BM_string_memset/131072/8/iterations:1\n"
+      "BM_string_memset/131072/16/iterations:1\n"
+      "BM_string_memset/131072/32/iterations:1\n"
+      "BM_string_memset/262144/0/iterations:1\n"
+      "BM_string_memset/262144/1/iterations:1\n"
+      "BM_string_memset/262144/2/iterations:1\n"
+      "BM_string_memset/262144/4/iterations:1\n"
+      "BM_string_memset/262144/8/iterations:1\n"
+      "BM_string_memset/262144/16/iterations:1\n"
+      "BM_string_memset/262144/32/iterations:1\n"
+      "BM_string_memset/524288/0/iterations:1\n"
+      "BM_string_memset/524288/1/iterations:1\n"
+      "BM_string_memset/524288/2/iterations:1\n"
+      "BM_string_memset/524288/4/iterations:1\n"
+      "BM_string_memset/524288/8/iterations:1\n"
+      "BM_string_memset/524288/16/iterations:1\n"
+      "BM_string_memset/524288/32/iterations:1\n"
+      "BM_string_memset/1048576/0/iterations:1\n"
+      "BM_string_memset/1048576/1/iterations:1\n"
+      "BM_string_memset/1048576/2/iterations:1\n"
+      "BM_string_memset/1048576/4/iterations:1\n"
+      "BM_string_memset/1048576/8/iterations:1\n"
+      "BM_string_memset/1048576/16/iterations:1\n"
+      "BM_string_memset/1048576/32/iterations:1\n"
+      "BM_string_memset/2097152/0/iterations:1\n"
+      "BM_string_memset/2097152/1/iterations:1\n"
+      "BM_string_memset/2097152/2/iterations:1\n"
+      "BM_string_memset/2097152/4/iterations:1\n"
+      "BM_string_memset/2097152/8/iterations:1\n"
+      "BM_string_memset/2097152/16/iterations:1\n"
+      "BM_string_memset/2097152/32/iterations:1\n";
 
   Verify(expected, 0,
          std::vector<const char*>{GetBionicXmlArg("test_alignment_onebuf.xml").c_str()});
@@ -888,1965 +902,1967 @@
 
 TEST_F(SystemTests, alignment_twobuf) {
   std::string expected =
-    "BM_string_strcpy/8/0/0/iterations:1\n"
-    "BM_string_strcpy/64/0/0/iterations:1\n"
-    "BM_string_strcpy/512/0/0/iterations:1\n"
-    "BM_string_strcpy/1024/0/0/iterations:1\n"
-    "BM_string_strcpy/8192/0/0/iterations:1\n"
-    "BM_string_strcpy/16384/0/0/iterations:1\n"
-    "BM_string_strcpy/32768/0/0/iterations:1\n"
-    "BM_string_strcpy/65536/0/0/iterations:1\n"
-    "BM_string_strcpy/131072/0/0/iterations:1\n"
-    "BM_string_memcpy/1/0/0/iterations:1\n"
-    "BM_string_memcpy/2/0/0/iterations:1\n"
-    "BM_string_memcpy/3/0/0/iterations:1\n"
-    "BM_string_memcpy/4/0/0/iterations:1\n"
-    "BM_string_memcpy/5/0/0/iterations:1\n"
-    "BM_string_memcpy/6/0/0/iterations:1\n"
-    "BM_string_memcpy/7/0/0/iterations:1\n"
-    "BM_string_memcpy/8/0/0/iterations:1\n"
-    "BM_string_memcpy/9/0/0/iterations:1\n"
-    "BM_string_memcpy/10/0/0/iterations:1\n"
-    "BM_string_memcpy/11/0/0/iterations:1\n"
-    "BM_string_memcpy/12/0/0/iterations:1\n"
-    "BM_string_memcpy/13/0/0/iterations:1\n"
-    "BM_string_memcpy/14/0/0/iterations:1\n"
-    "BM_string_memcpy/15/0/0/iterations:1\n"
-    "BM_string_memcpy/16/0/0/iterations:1\n"
-    "BM_string_memcpy/24/0/0/iterations:1\n"
-    "BM_string_memcpy/32/0/0/iterations:1\n"
-    "BM_string_memcpy/40/0/0/iterations:1\n"
-    "BM_string_memcpy/48/0/0/iterations:1\n"
-    "BM_string_memcpy/56/0/0/iterations:1\n"
-    "BM_string_memcpy/64/0/0/iterations:1\n"
-    "BM_string_memcpy/72/0/0/iterations:1\n"
-    "BM_string_memcpy/80/0/0/iterations:1\n"
-    "BM_string_memcpy/88/0/0/iterations:1\n"
-    "BM_string_memcpy/96/0/0/iterations:1\n"
-    "BM_string_memcpy/104/0/0/iterations:1\n"
-    "BM_string_memcpy/112/0/0/iterations:1\n"
-    "BM_string_memcpy/120/0/0/iterations:1\n"
-    "BM_string_memcpy/128/0/0/iterations:1\n"
-    "BM_string_memcpy/136/0/0/iterations:1\n"
-    "BM_string_memcpy/144/0/0/iterations:1\n"
-    "BM_string_memcpy/160/0/0/iterations:1\n"
-    "BM_string_memcpy/176/0/0/iterations:1\n"
-    "BM_string_memcpy/192/0/0/iterations:1\n"
-    "BM_string_memcpy/208/0/0/iterations:1\n"
-    "BM_string_memcpy/224/0/0/iterations:1\n"
-    "BM_string_memcpy/240/0/0/iterations:1\n"
-    "BM_string_memcpy/256/0/0/iterations:1\n"
-    "BM_string_strcpy/512/0/0/iterations:1\n"
-    "BM_string_strcpy/1024/0/0/iterations:1\n"
-    "BM_string_strcpy/8192/0/0/iterations:1\n"
-    "BM_string_strcpy/16384/0/0/iterations:1\n"
-    "BM_string_strcpy/32768/0/0/iterations:1\n"
-    "BM_string_strcpy/65536/0/0/iterations:1\n"
-    "BM_string_strcpy/131072/0/0/iterations:1\n"
-    "BM_string_memcpy/262144/0/0/iterations:1\n"
-    "BM_string_memcpy/524288/0/0/iterations:1\n"
-    "BM_string_memcpy/1048576/0/0/iterations:1\n"
-    "BM_string_memcpy/2097152/0/0/iterations:1\n"
-    "BM_string_strcpy/1/0/0/iterations:1\n"
-    "BM_string_strcpy/2/0/0/iterations:1\n"
-    "BM_string_strcpy/3/0/0/iterations:1\n"
-    "BM_string_strcpy/4/0/0/iterations:1\n"
-    "BM_string_strcpy/5/0/0/iterations:1\n"
-    "BM_string_strcpy/6/0/0/iterations:1\n"
-    "BM_string_strcpy/7/0/0/iterations:1\n"
-    "BM_string_strcpy/8/0/0/iterations:1\n"
-    "BM_string_strcpy/9/0/0/iterations:1\n"
-    "BM_string_strcpy/10/0/0/iterations:1\n"
-    "BM_string_strcpy/11/0/0/iterations:1\n"
-    "BM_string_strcpy/12/0/0/iterations:1\n"
-    "BM_string_strcpy/13/0/0/iterations:1\n"
-    "BM_string_strcpy/14/0/0/iterations:1\n"
-    "BM_string_strcpy/15/0/0/iterations:1\n"
-    "BM_string_strcpy/16/0/0/iterations:1\n"
-    "BM_string_strcpy/24/0/0/iterations:1\n"
-    "BM_string_strcpy/32/0/0/iterations:1\n"
-    "BM_string_strcpy/40/0/0/iterations:1\n"
-    "BM_string_strcpy/48/0/0/iterations:1\n"
-    "BM_string_strcpy/56/0/0/iterations:1\n"
-    "BM_string_strcpy/64/0/0/iterations:1\n"
-    "BM_string_strcpy/72/0/0/iterations:1\n"
-    "BM_string_strcpy/80/0/0/iterations:1\n"
-    "BM_string_strcpy/88/0/0/iterations:1\n"
-    "BM_string_strcpy/96/0/0/iterations:1\n"
-    "BM_string_strcpy/104/0/0/iterations:1\n"
-    "BM_string_strcpy/112/0/0/iterations:1\n"
-    "BM_string_strcpy/120/0/0/iterations:1\n"
-    "BM_string_strcpy/128/0/0/iterations:1\n"
-    "BM_string_strcpy/136/0/0/iterations:1\n"
-    "BM_string_strcpy/144/0/0/iterations:1\n"
-    "BM_string_strcpy/160/0/0/iterations:1\n"
-    "BM_string_strcpy/176/0/0/iterations:1\n"
-    "BM_string_strcpy/192/0/0/iterations:1\n"
-    "BM_string_strcpy/208/0/0/iterations:1\n"
-    "BM_string_strcpy/224/0/0/iterations:1\n"
-    "BM_string_strcpy/240/0/0/iterations:1\n"
-    "BM_string_strcpy/256/0/0/iterations:1\n"
-    "BM_string_strcpy/512/0/0/iterations:1\n"
-    "BM_string_strcpy/1024/0/0/iterations:1\n"
-    "BM_string_strcpy/8192/0/0/iterations:1\n"
-    "BM_string_strcpy/16384/0/0/iterations:1\n"
-    "BM_string_strcpy/32768/0/0/iterations:1\n"
-    "BM_string_strcpy/65536/0/0/iterations:1\n"
-    "BM_string_strcpy/131072/0/0/iterations:1\n"
-    "BM_string_strcpy/262144/0/0/iterations:1\n"
-    "BM_string_strcpy/524288/0/0/iterations:1\n"
-    "BM_string_strcpy/1048576/0/0/iterations:1\n"
-    "BM_string_strcpy/2097152/0/0/iterations:1\n"
-    "BM_string_memcpy/1/0/0/iterations:1\n"
-    "BM_string_memcpy/1/1/1/iterations:1\n"
-    "BM_string_memcpy/1/1/2/iterations:1\n"
-    "BM_string_memcpy/1/1/4/iterations:1\n"
-    "BM_string_memcpy/1/1/8/iterations:1\n"
-    "BM_string_memcpy/1/1/16/iterations:1\n"
-    "BM_string_memcpy/1/1/32/iterations:1\n"
-    "BM_string_memcpy/1/2/1/iterations:1\n"
-    "BM_string_memcpy/1/2/2/iterations:1\n"
-    "BM_string_memcpy/1/2/4/iterations:1\n"
-    "BM_string_memcpy/1/2/8/iterations:1\n"
-    "BM_string_memcpy/1/2/16/iterations:1\n"
-    "BM_string_memcpy/1/2/32/iterations:1\n"
-    "BM_string_memcpy/1/4/1/iterations:1\n"
-    "BM_string_memcpy/1/4/2/iterations:1\n"
-    "BM_string_memcpy/1/4/4/iterations:1\n"
-    "BM_string_memcpy/1/4/8/iterations:1\n"
-    "BM_string_memcpy/1/4/16/iterations:1\n"
-    "BM_string_memcpy/1/4/32/iterations:1\n"
-    "BM_string_memcpy/1/8/1/iterations:1\n"
-    "BM_string_memcpy/1/8/2/iterations:1\n"
-    "BM_string_memcpy/1/8/4/iterations:1\n"
-    "BM_string_memcpy/1/8/8/iterations:1\n"
-    "BM_string_memcpy/1/8/16/iterations:1\n"
-    "BM_string_memcpy/1/8/32/iterations:1\n"
-    "BM_string_memcpy/1/16/1/iterations:1\n"
-    "BM_string_memcpy/1/16/2/iterations:1\n"
-    "BM_string_memcpy/1/16/4/iterations:1\n"
-    "BM_string_memcpy/1/16/8/iterations:1\n"
-    "BM_string_memcpy/1/16/16/iterations:1\n"
-    "BM_string_memcpy/1/16/32/iterations:1\n"
-    "BM_string_memcpy/1/32/1/iterations:1\n"
-    "BM_string_memcpy/1/32/2/iterations:1\n"
-    "BM_string_memcpy/1/32/4/iterations:1\n"
-    "BM_string_memcpy/1/32/8/iterations:1\n"
-    "BM_string_memcpy/1/32/16/iterations:1\n"
-    "BM_string_memcpy/1/32/32/iterations:1\n"
-    "BM_string_memcpy/2/0/0/iterations:1\n"
-    "BM_string_memcpy/2/1/1/iterations:1\n"
-    "BM_string_memcpy/2/1/2/iterations:1\n"
-    "BM_string_memcpy/2/1/4/iterations:1\n"
-    "BM_string_memcpy/2/1/8/iterations:1\n"
-    "BM_string_memcpy/2/1/16/iterations:1\n"
-    "BM_string_memcpy/2/1/32/iterations:1\n"
-    "BM_string_memcpy/2/2/1/iterations:1\n"
-    "BM_string_memcpy/2/2/2/iterations:1\n"
-    "BM_string_memcpy/2/2/4/iterations:1\n"
-    "BM_string_memcpy/2/2/8/iterations:1\n"
-    "BM_string_memcpy/2/2/16/iterations:1\n"
-    "BM_string_memcpy/2/2/32/iterations:1\n"
-    "BM_string_memcpy/2/4/1/iterations:1\n"
-    "BM_string_memcpy/2/4/2/iterations:1\n"
-    "BM_string_memcpy/2/4/4/iterations:1\n"
-    "BM_string_memcpy/2/4/8/iterations:1\n"
-    "BM_string_memcpy/2/4/16/iterations:1\n"
-    "BM_string_memcpy/2/4/32/iterations:1\n"
-    "BM_string_memcpy/2/8/1/iterations:1\n"
-    "BM_string_memcpy/2/8/2/iterations:1\n"
-    "BM_string_memcpy/2/8/4/iterations:1\n"
-    "BM_string_memcpy/2/8/8/iterations:1\n"
-    "BM_string_memcpy/2/8/16/iterations:1\n"
-    "BM_string_memcpy/2/8/32/iterations:1\n"
-    "BM_string_memcpy/2/16/1/iterations:1\n"
-    "BM_string_memcpy/2/16/2/iterations:1\n"
-    "BM_string_memcpy/2/16/4/iterations:1\n"
-    "BM_string_memcpy/2/16/8/iterations:1\n"
-    "BM_string_memcpy/2/16/16/iterations:1\n"
-    "BM_string_memcpy/2/16/32/iterations:1\n"
-    "BM_string_memcpy/2/32/1/iterations:1\n"
-    "BM_string_memcpy/2/32/2/iterations:1\n"
-    "BM_string_memcpy/2/32/4/iterations:1\n"
-    "BM_string_memcpy/2/32/8/iterations:1\n"
-    "BM_string_memcpy/2/32/16/iterations:1\n"
-    "BM_string_memcpy/2/32/32/iterations:1\n"
-    "BM_string_memcpy/3/0/0/iterations:1\n"
-    "BM_string_memcpy/3/1/1/iterations:1\n"
-    "BM_string_memcpy/3/1/2/iterations:1\n"
-    "BM_string_memcpy/3/1/4/iterations:1\n"
-    "BM_string_memcpy/3/1/8/iterations:1\n"
-    "BM_string_memcpy/3/1/16/iterations:1\n"
-    "BM_string_memcpy/3/1/32/iterations:1\n"
-    "BM_string_memcpy/3/2/1/iterations:1\n"
-    "BM_string_memcpy/3/2/2/iterations:1\n"
-    "BM_string_memcpy/3/2/4/iterations:1\n"
-    "BM_string_memcpy/3/2/8/iterations:1\n"
-    "BM_string_memcpy/3/2/16/iterations:1\n"
-    "BM_string_memcpy/3/2/32/iterations:1\n"
-    "BM_string_memcpy/3/4/1/iterations:1\n"
-    "BM_string_memcpy/3/4/2/iterations:1\n"
-    "BM_string_memcpy/3/4/4/iterations:1\n"
-    "BM_string_memcpy/3/4/8/iterations:1\n"
-    "BM_string_memcpy/3/4/16/iterations:1\n"
-    "BM_string_memcpy/3/4/32/iterations:1\n"
-    "BM_string_memcpy/3/8/1/iterations:1\n"
-    "BM_string_memcpy/3/8/2/iterations:1\n"
-    "BM_string_memcpy/3/8/4/iterations:1\n"
-    "BM_string_memcpy/3/8/8/iterations:1\n"
-    "BM_string_memcpy/3/8/16/iterations:1\n"
-    "BM_string_memcpy/3/8/32/iterations:1\n"
-    "BM_string_memcpy/3/16/1/iterations:1\n"
-    "BM_string_memcpy/3/16/2/iterations:1\n"
-    "BM_string_memcpy/3/16/4/iterations:1\n"
-    "BM_string_memcpy/3/16/8/iterations:1\n"
-    "BM_string_memcpy/3/16/16/iterations:1\n"
-    "BM_string_memcpy/3/16/32/iterations:1\n"
-    "BM_string_memcpy/3/32/1/iterations:1\n"
-    "BM_string_memcpy/3/32/2/iterations:1\n"
-    "BM_string_memcpy/3/32/4/iterations:1\n"
-    "BM_string_memcpy/3/32/8/iterations:1\n"
-    "BM_string_memcpy/3/32/16/iterations:1\n"
-    "BM_string_memcpy/3/32/32/iterations:1\n"
-    "BM_string_memcpy/4/0/0/iterations:1\n"
-    "BM_string_memcpy/4/1/1/iterations:1\n"
-    "BM_string_memcpy/4/1/2/iterations:1\n"
-    "BM_string_memcpy/4/1/4/iterations:1\n"
-    "BM_string_memcpy/4/1/8/iterations:1\n"
-    "BM_string_memcpy/4/1/16/iterations:1\n"
-    "BM_string_memcpy/4/1/32/iterations:1\n"
-    "BM_string_memcpy/4/2/1/iterations:1\n"
-    "BM_string_memcpy/4/2/2/iterations:1\n"
-    "BM_string_memcpy/4/2/4/iterations:1\n"
-    "BM_string_memcpy/4/2/8/iterations:1\n"
-    "BM_string_memcpy/4/2/16/iterations:1\n"
-    "BM_string_memcpy/4/2/32/iterations:1\n"
-    "BM_string_memcpy/4/4/1/iterations:1\n"
-    "BM_string_memcpy/4/4/2/iterations:1\n"
-    "BM_string_memcpy/4/4/4/iterations:1\n"
-    "BM_string_memcpy/4/4/8/iterations:1\n"
-    "BM_string_memcpy/4/4/16/iterations:1\n"
-    "BM_string_memcpy/4/4/32/iterations:1\n"
-    "BM_string_memcpy/4/8/1/iterations:1\n"
-    "BM_string_memcpy/4/8/2/iterations:1\n"
-    "BM_string_memcpy/4/8/4/iterations:1\n"
-    "BM_string_memcpy/4/8/8/iterations:1\n"
-    "BM_string_memcpy/4/8/16/iterations:1\n"
-    "BM_string_memcpy/4/8/32/iterations:1\n"
-    "BM_string_memcpy/4/16/1/iterations:1\n"
-    "BM_string_memcpy/4/16/2/iterations:1\n"
-    "BM_string_memcpy/4/16/4/iterations:1\n"
-    "BM_string_memcpy/4/16/8/iterations:1\n"
-    "BM_string_memcpy/4/16/16/iterations:1\n"
-    "BM_string_memcpy/4/16/32/iterations:1\n"
-    "BM_string_memcpy/4/32/1/iterations:1\n"
-    "BM_string_memcpy/4/32/2/iterations:1\n"
-    "BM_string_memcpy/4/32/4/iterations:1\n"
-    "BM_string_memcpy/4/32/8/iterations:1\n"
-    "BM_string_memcpy/4/32/16/iterations:1\n"
-    "BM_string_memcpy/4/32/32/iterations:1\n"
-    "BM_string_memcpy/5/0/0/iterations:1\n"
-    "BM_string_memcpy/5/1/1/iterations:1\n"
-    "BM_string_memcpy/5/1/2/iterations:1\n"
-    "BM_string_memcpy/5/1/4/iterations:1\n"
-    "BM_string_memcpy/5/1/8/iterations:1\n"
-    "BM_string_memcpy/5/1/16/iterations:1\n"
-    "BM_string_memcpy/5/1/32/iterations:1\n"
-    "BM_string_memcpy/5/2/1/iterations:1\n"
-    "BM_string_memcpy/5/2/2/iterations:1\n"
-    "BM_string_memcpy/5/2/4/iterations:1\n"
-    "BM_string_memcpy/5/2/8/iterations:1\n"
-    "BM_string_memcpy/5/2/16/iterations:1\n"
-    "BM_string_memcpy/5/2/32/iterations:1\n"
-    "BM_string_memcpy/5/4/1/iterations:1\n"
-    "BM_string_memcpy/5/4/2/iterations:1\n"
-    "BM_string_memcpy/5/4/4/iterations:1\n"
-    "BM_string_memcpy/5/4/8/iterations:1\n"
-    "BM_string_memcpy/5/4/16/iterations:1\n"
-    "BM_string_memcpy/5/4/32/iterations:1\n"
-    "BM_string_memcpy/5/8/1/iterations:1\n"
-    "BM_string_memcpy/5/8/2/iterations:1\n"
-    "BM_string_memcpy/5/8/4/iterations:1\n"
-    "BM_string_memcpy/5/8/8/iterations:1\n"
-    "BM_string_memcpy/5/8/16/iterations:1\n"
-    "BM_string_memcpy/5/8/32/iterations:1\n"
-    "BM_string_memcpy/5/16/1/iterations:1\n"
-    "BM_string_memcpy/5/16/2/iterations:1\n"
-    "BM_string_memcpy/5/16/4/iterations:1\n"
-    "BM_string_memcpy/5/16/8/iterations:1\n"
-    "BM_string_memcpy/5/16/16/iterations:1\n"
-    "BM_string_memcpy/5/16/32/iterations:1\n"
-    "BM_string_memcpy/5/32/1/iterations:1\n"
-    "BM_string_memcpy/5/32/2/iterations:1\n"
-    "BM_string_memcpy/5/32/4/iterations:1\n"
-    "BM_string_memcpy/5/32/8/iterations:1\n"
-    "BM_string_memcpy/5/32/16/iterations:1\n"
-    "BM_string_memcpy/5/32/32/iterations:1\n"
-    "BM_string_memcpy/6/0/0/iterations:1\n"
-    "BM_string_memcpy/6/1/1/iterations:1\n"
-    "BM_string_memcpy/6/1/2/iterations:1\n"
-    "BM_string_memcpy/6/1/4/iterations:1\n"
-    "BM_string_memcpy/6/1/8/iterations:1\n"
-    "BM_string_memcpy/6/1/16/iterations:1\n"
-    "BM_string_memcpy/6/1/32/iterations:1\n"
-    "BM_string_memcpy/6/2/1/iterations:1\n"
-    "BM_string_memcpy/6/2/2/iterations:1\n"
-    "BM_string_memcpy/6/2/4/iterations:1\n"
-    "BM_string_memcpy/6/2/8/iterations:1\n"
-    "BM_string_memcpy/6/2/16/iterations:1\n"
-    "BM_string_memcpy/6/2/32/iterations:1\n"
-    "BM_string_memcpy/6/4/1/iterations:1\n"
-    "BM_string_memcpy/6/4/2/iterations:1\n"
-    "BM_string_memcpy/6/4/4/iterations:1\n"
-    "BM_string_memcpy/6/4/8/iterations:1\n"
-    "BM_string_memcpy/6/4/16/iterations:1\n"
-    "BM_string_memcpy/6/4/32/iterations:1\n"
-    "BM_string_memcpy/6/8/1/iterations:1\n"
-    "BM_string_memcpy/6/8/2/iterations:1\n"
-    "BM_string_memcpy/6/8/4/iterations:1\n"
-    "BM_string_memcpy/6/8/8/iterations:1\n"
-    "BM_string_memcpy/6/8/16/iterations:1\n"
-    "BM_string_memcpy/6/8/32/iterations:1\n"
-    "BM_string_memcpy/6/16/1/iterations:1\n"
-    "BM_string_memcpy/6/16/2/iterations:1\n"
-    "BM_string_memcpy/6/16/4/iterations:1\n"
-    "BM_string_memcpy/6/16/8/iterations:1\n"
-    "BM_string_memcpy/6/16/16/iterations:1\n"
-    "BM_string_memcpy/6/16/32/iterations:1\n"
-    "BM_string_memcpy/6/32/1/iterations:1\n"
-    "BM_string_memcpy/6/32/2/iterations:1\n"
-    "BM_string_memcpy/6/32/4/iterations:1\n"
-    "BM_string_memcpy/6/32/8/iterations:1\n"
-    "BM_string_memcpy/6/32/16/iterations:1\n"
-    "BM_string_memcpy/6/32/32/iterations:1\n"
-    "BM_string_memcpy/7/0/0/iterations:1\n"
-    "BM_string_memcpy/7/1/1/iterations:1\n"
-    "BM_string_memcpy/7/1/2/iterations:1\n"
-    "BM_string_memcpy/7/1/4/iterations:1\n"
-    "BM_string_memcpy/7/1/8/iterations:1\n"
-    "BM_string_memcpy/7/1/16/iterations:1\n"
-    "BM_string_memcpy/7/1/32/iterations:1\n"
-    "BM_string_memcpy/7/2/1/iterations:1\n"
-    "BM_string_memcpy/7/2/2/iterations:1\n"
-    "BM_string_memcpy/7/2/4/iterations:1\n"
-    "BM_string_memcpy/7/2/8/iterations:1\n"
-    "BM_string_memcpy/7/2/16/iterations:1\n"
-    "BM_string_memcpy/7/2/32/iterations:1\n"
-    "BM_string_memcpy/7/4/1/iterations:1\n"
-    "BM_string_memcpy/7/4/2/iterations:1\n"
-    "BM_string_memcpy/7/4/4/iterations:1\n"
-    "BM_string_memcpy/7/4/8/iterations:1\n"
-    "BM_string_memcpy/7/4/16/iterations:1\n"
-    "BM_string_memcpy/7/4/32/iterations:1\n"
-    "BM_string_memcpy/7/8/1/iterations:1\n"
-    "BM_string_memcpy/7/8/2/iterations:1\n"
-    "BM_string_memcpy/7/8/4/iterations:1\n"
-    "BM_string_memcpy/7/8/8/iterations:1\n"
-    "BM_string_memcpy/7/8/16/iterations:1\n"
-    "BM_string_memcpy/7/8/32/iterations:1\n"
-    "BM_string_memcpy/7/16/1/iterations:1\n"
-    "BM_string_memcpy/7/16/2/iterations:1\n"
-    "BM_string_memcpy/7/16/4/iterations:1\n"
-    "BM_string_memcpy/7/16/8/iterations:1\n"
-    "BM_string_memcpy/7/16/16/iterations:1\n"
-    "BM_string_memcpy/7/16/32/iterations:1\n"
-    "BM_string_memcpy/7/32/1/iterations:1\n"
-    "BM_string_memcpy/7/32/2/iterations:1\n"
-    "BM_string_memcpy/7/32/4/iterations:1\n"
-    "BM_string_memcpy/7/32/8/iterations:1\n"
-    "BM_string_memcpy/7/32/16/iterations:1\n"
-    "BM_string_memcpy/7/32/32/iterations:1\n"
-    "BM_string_memcpy/8/0/0/iterations:1\n"
-    "BM_string_memcpy/8/1/1/iterations:1\n"
-    "BM_string_memcpy/8/1/2/iterations:1\n"
-    "BM_string_memcpy/8/1/4/iterations:1\n"
-    "BM_string_memcpy/8/1/8/iterations:1\n"
-    "BM_string_memcpy/8/1/16/iterations:1\n"
-    "BM_string_memcpy/8/1/32/iterations:1\n"
-    "BM_string_memcpy/8/2/1/iterations:1\n"
-    "BM_string_memcpy/8/2/2/iterations:1\n"
-    "BM_string_memcpy/8/2/4/iterations:1\n"
-    "BM_string_memcpy/8/2/8/iterations:1\n"
-    "BM_string_memcpy/8/2/16/iterations:1\n"
-    "BM_string_memcpy/8/2/32/iterations:1\n"
-    "BM_string_memcpy/8/4/1/iterations:1\n"
-    "BM_string_memcpy/8/4/2/iterations:1\n"
-    "BM_string_memcpy/8/4/4/iterations:1\n"
-    "BM_string_memcpy/8/4/8/iterations:1\n"
-    "BM_string_memcpy/8/4/16/iterations:1\n"
-    "BM_string_memcpy/8/4/32/iterations:1\n"
-    "BM_string_memcpy/8/8/1/iterations:1\n"
-    "BM_string_memcpy/8/8/2/iterations:1\n"
-    "BM_string_memcpy/8/8/4/iterations:1\n"
-    "BM_string_memcpy/8/8/8/iterations:1\n"
-    "BM_string_memcpy/8/8/16/iterations:1\n"
-    "BM_string_memcpy/8/8/32/iterations:1\n"
-    "BM_string_memcpy/8/16/1/iterations:1\n"
-    "BM_string_memcpy/8/16/2/iterations:1\n"
-    "BM_string_memcpy/8/16/4/iterations:1\n"
-    "BM_string_memcpy/8/16/8/iterations:1\n"
-    "BM_string_memcpy/8/16/16/iterations:1\n"
-    "BM_string_memcpy/8/16/32/iterations:1\n"
-    "BM_string_memcpy/8/32/1/iterations:1\n"
-    "BM_string_memcpy/8/32/2/iterations:1\n"
-    "BM_string_memcpy/8/32/4/iterations:1\n"
-    "BM_string_memcpy/8/32/8/iterations:1\n"
-    "BM_string_memcpy/8/32/16/iterations:1\n"
-    "BM_string_memcpy/8/32/32/iterations:1\n"
-    "BM_string_memcpy/9/0/0/iterations:1\n"
-    "BM_string_memcpy/9/1/1/iterations:1\n"
-    "BM_string_memcpy/9/1/2/iterations:1\n"
-    "BM_string_memcpy/9/1/4/iterations:1\n"
-    "BM_string_memcpy/9/1/8/iterations:1\n"
-    "BM_string_memcpy/9/1/16/iterations:1\n"
-    "BM_string_memcpy/9/1/32/iterations:1\n"
-    "BM_string_memcpy/9/2/1/iterations:1\n"
-    "BM_string_memcpy/9/2/2/iterations:1\n"
-    "BM_string_memcpy/9/2/4/iterations:1\n"
-    "BM_string_memcpy/9/2/8/iterations:1\n"
-    "BM_string_memcpy/9/2/16/iterations:1\n"
-    "BM_string_memcpy/9/2/32/iterations:1\n"
-    "BM_string_memcpy/9/4/1/iterations:1\n"
-    "BM_string_memcpy/9/4/2/iterations:1\n"
-    "BM_string_memcpy/9/4/4/iterations:1\n"
-    "BM_string_memcpy/9/4/8/iterations:1\n"
-    "BM_string_memcpy/9/4/16/iterations:1\n"
-    "BM_string_memcpy/9/4/32/iterations:1\n"
-    "BM_string_memcpy/9/8/1/iterations:1\n"
-    "BM_string_memcpy/9/8/2/iterations:1\n"
-    "BM_string_memcpy/9/8/4/iterations:1\n"
-    "BM_string_memcpy/9/8/8/iterations:1\n"
-    "BM_string_memcpy/9/8/16/iterations:1\n"
-    "BM_string_memcpy/9/8/32/iterations:1\n"
-    "BM_string_memcpy/9/16/1/iterations:1\n"
-    "BM_string_memcpy/9/16/2/iterations:1\n"
-    "BM_string_memcpy/9/16/4/iterations:1\n"
-    "BM_string_memcpy/9/16/8/iterations:1\n"
-    "BM_string_memcpy/9/16/16/iterations:1\n"
-    "BM_string_memcpy/9/16/32/iterations:1\n"
-    "BM_string_memcpy/9/32/1/iterations:1\n"
-    "BM_string_memcpy/9/32/2/iterations:1\n"
-    "BM_string_memcpy/9/32/4/iterations:1\n"
-    "BM_string_memcpy/9/32/8/iterations:1\n"
-    "BM_string_memcpy/9/32/16/iterations:1\n"
-    "BM_string_memcpy/9/32/32/iterations:1\n"
-    "BM_string_memcpy/10/0/0/iterations:1\n"
-    "BM_string_memcpy/10/1/1/iterations:1\n"
-    "BM_string_memcpy/10/1/2/iterations:1\n"
-    "BM_string_memcpy/10/1/4/iterations:1\n"
-    "BM_string_memcpy/10/1/8/iterations:1\n"
-    "BM_string_memcpy/10/1/16/iterations:1\n"
-    "BM_string_memcpy/10/1/32/iterations:1\n"
-    "BM_string_memcpy/10/2/1/iterations:1\n"
-    "BM_string_memcpy/10/2/2/iterations:1\n"
-    "BM_string_memcpy/10/2/4/iterations:1\n"
-    "BM_string_memcpy/10/2/8/iterations:1\n"
-    "BM_string_memcpy/10/2/16/iterations:1\n"
-    "BM_string_memcpy/10/2/32/iterations:1\n"
-    "BM_string_memcpy/10/4/1/iterations:1\n"
-    "BM_string_memcpy/10/4/2/iterations:1\n"
-    "BM_string_memcpy/10/4/4/iterations:1\n"
-    "BM_string_memcpy/10/4/8/iterations:1\n"
-    "BM_string_memcpy/10/4/16/iterations:1\n"
-    "BM_string_memcpy/10/4/32/iterations:1\n"
-    "BM_string_memcpy/10/8/1/iterations:1\n"
-    "BM_string_memcpy/10/8/2/iterations:1\n"
-    "BM_string_memcpy/10/8/4/iterations:1\n"
-    "BM_string_memcpy/10/8/8/iterations:1\n"
-    "BM_string_memcpy/10/8/16/iterations:1\n"
-    "BM_string_memcpy/10/8/32/iterations:1\n"
-    "BM_string_memcpy/10/16/1/iterations:1\n"
-    "BM_string_memcpy/10/16/2/iterations:1\n"
-    "BM_string_memcpy/10/16/4/iterations:1\n"
-    "BM_string_memcpy/10/16/8/iterations:1\n"
-    "BM_string_memcpy/10/16/16/iterations:1\n"
-    "BM_string_memcpy/10/16/32/iterations:1\n"
-    "BM_string_memcpy/10/32/1/iterations:1\n"
-    "BM_string_memcpy/10/32/2/iterations:1\n"
-    "BM_string_memcpy/10/32/4/iterations:1\n"
-    "BM_string_memcpy/10/32/8/iterations:1\n"
-    "BM_string_memcpy/10/32/16/iterations:1\n"
-    "BM_string_memcpy/10/32/32/iterations:1\n"
-    "BM_string_memcpy/11/0/0/iterations:1\n"
-    "BM_string_memcpy/11/1/1/iterations:1\n"
-    "BM_string_memcpy/11/1/2/iterations:1\n"
-    "BM_string_memcpy/11/1/4/iterations:1\n"
-    "BM_string_memcpy/11/1/8/iterations:1\n"
-    "BM_string_memcpy/11/1/16/iterations:1\n"
-    "BM_string_memcpy/11/1/32/iterations:1\n"
-    "BM_string_memcpy/11/2/1/iterations:1\n"
-    "BM_string_memcpy/11/2/2/iterations:1\n"
-    "BM_string_memcpy/11/2/4/iterations:1\n"
-    "BM_string_memcpy/11/2/8/iterations:1\n"
-    "BM_string_memcpy/11/2/16/iterations:1\n"
-    "BM_string_memcpy/11/2/32/iterations:1\n"
-    "BM_string_memcpy/11/4/1/iterations:1\n"
-    "BM_string_memcpy/11/4/2/iterations:1\n"
-    "BM_string_memcpy/11/4/4/iterations:1\n"
-    "BM_string_memcpy/11/4/8/iterations:1\n"
-    "BM_string_memcpy/11/4/16/iterations:1\n"
-    "BM_string_memcpy/11/4/32/iterations:1\n"
-    "BM_string_memcpy/11/8/1/iterations:1\n"
-    "BM_string_memcpy/11/8/2/iterations:1\n"
-    "BM_string_memcpy/11/8/4/iterations:1\n"
-    "BM_string_memcpy/11/8/8/iterations:1\n"
-    "BM_string_memcpy/11/8/16/iterations:1\n"
-    "BM_string_memcpy/11/8/32/iterations:1\n"
-    "BM_string_memcpy/11/16/1/iterations:1\n"
-    "BM_string_memcpy/11/16/2/iterations:1\n"
-    "BM_string_memcpy/11/16/4/iterations:1\n"
-    "BM_string_memcpy/11/16/8/iterations:1\n"
-    "BM_string_memcpy/11/16/16/iterations:1\n"
-    "BM_string_memcpy/11/16/32/iterations:1\n"
-    "BM_string_memcpy/11/32/1/iterations:1\n"
-    "BM_string_memcpy/11/32/2/iterations:1\n"
-    "BM_string_memcpy/11/32/4/iterations:1\n"
-    "BM_string_memcpy/11/32/8/iterations:1\n"
-    "BM_string_memcpy/11/32/16/iterations:1\n"
-    "BM_string_memcpy/11/32/32/iterations:1\n"
-    "BM_string_memcpy/12/0/0/iterations:1\n"
-    "BM_string_memcpy/12/1/1/iterations:1\n"
-    "BM_string_memcpy/12/1/2/iterations:1\n"
-    "BM_string_memcpy/12/1/4/iterations:1\n"
-    "BM_string_memcpy/12/1/8/iterations:1\n"
-    "BM_string_memcpy/12/1/16/iterations:1\n"
-    "BM_string_memcpy/12/1/32/iterations:1\n"
-    "BM_string_memcpy/12/2/1/iterations:1\n"
-    "BM_string_memcpy/12/2/2/iterations:1\n"
-    "BM_string_memcpy/12/2/4/iterations:1\n"
-    "BM_string_memcpy/12/2/8/iterations:1\n"
-    "BM_string_memcpy/12/2/16/iterations:1\n"
-    "BM_string_memcpy/12/2/32/iterations:1\n"
-    "BM_string_memcpy/12/4/1/iterations:1\n"
-    "BM_string_memcpy/12/4/2/iterations:1\n"
-    "BM_string_memcpy/12/4/4/iterations:1\n"
-    "BM_string_memcpy/12/4/8/iterations:1\n"
-    "BM_string_memcpy/12/4/16/iterations:1\n"
-    "BM_string_memcpy/12/4/32/iterations:1\n"
-    "BM_string_memcpy/12/8/1/iterations:1\n"
-    "BM_string_memcpy/12/8/2/iterations:1\n"
-    "BM_string_memcpy/12/8/4/iterations:1\n"
-    "BM_string_memcpy/12/8/8/iterations:1\n"
-    "BM_string_memcpy/12/8/16/iterations:1\n"
-    "BM_string_memcpy/12/8/32/iterations:1\n"
-    "BM_string_memcpy/12/16/1/iterations:1\n"
-    "BM_string_memcpy/12/16/2/iterations:1\n"
-    "BM_string_memcpy/12/16/4/iterations:1\n"
-    "BM_string_memcpy/12/16/8/iterations:1\n"
-    "BM_string_memcpy/12/16/16/iterations:1\n"
-    "BM_string_memcpy/12/16/32/iterations:1\n"
-    "BM_string_memcpy/12/32/1/iterations:1\n"
-    "BM_string_memcpy/12/32/2/iterations:1\n"
-    "BM_string_memcpy/12/32/4/iterations:1\n"
-    "BM_string_memcpy/12/32/8/iterations:1\n"
-    "BM_string_memcpy/12/32/16/iterations:1\n"
-    "BM_string_memcpy/12/32/32/iterations:1\n"
-    "BM_string_memcpy/13/0/0/iterations:1\n"
-    "BM_string_memcpy/13/1/1/iterations:1\n"
-    "BM_string_memcpy/13/1/2/iterations:1\n"
-    "BM_string_memcpy/13/1/4/iterations:1\n"
-    "BM_string_memcpy/13/1/8/iterations:1\n"
-    "BM_string_memcpy/13/1/16/iterations:1\n"
-    "BM_string_memcpy/13/1/32/iterations:1\n"
-    "BM_string_memcpy/13/2/1/iterations:1\n"
-    "BM_string_memcpy/13/2/2/iterations:1\n"
-    "BM_string_memcpy/13/2/4/iterations:1\n"
-    "BM_string_memcpy/13/2/8/iterations:1\n"
-    "BM_string_memcpy/13/2/16/iterations:1\n"
-    "BM_string_memcpy/13/2/32/iterations:1\n"
-    "BM_string_memcpy/13/4/1/iterations:1\n"
-    "BM_string_memcpy/13/4/2/iterations:1\n"
-    "BM_string_memcpy/13/4/4/iterations:1\n"
-    "BM_string_memcpy/13/4/8/iterations:1\n"
-    "BM_string_memcpy/13/4/16/iterations:1\n"
-    "BM_string_memcpy/13/4/32/iterations:1\n"
-    "BM_string_memcpy/13/8/1/iterations:1\n"
-    "BM_string_memcpy/13/8/2/iterations:1\n"
-    "BM_string_memcpy/13/8/4/iterations:1\n"
-    "BM_string_memcpy/13/8/8/iterations:1\n"
-    "BM_string_memcpy/13/8/16/iterations:1\n"
-    "BM_string_memcpy/13/8/32/iterations:1\n"
-    "BM_string_memcpy/13/16/1/iterations:1\n"
-    "BM_string_memcpy/13/16/2/iterations:1\n"
-    "BM_string_memcpy/13/16/4/iterations:1\n"
-    "BM_string_memcpy/13/16/8/iterations:1\n"
-    "BM_string_memcpy/13/16/16/iterations:1\n"
-    "BM_string_memcpy/13/16/32/iterations:1\n"
-    "BM_string_memcpy/13/32/1/iterations:1\n"
-    "BM_string_memcpy/13/32/2/iterations:1\n"
-    "BM_string_memcpy/13/32/4/iterations:1\n"
-    "BM_string_memcpy/13/32/8/iterations:1\n"
-    "BM_string_memcpy/13/32/16/iterations:1\n"
-    "BM_string_memcpy/13/32/32/iterations:1\n"
-    "BM_string_memcpy/14/0/0/iterations:1\n"
-    "BM_string_memcpy/14/1/1/iterations:1\n"
-    "BM_string_memcpy/14/1/2/iterations:1\n"
-    "BM_string_memcpy/14/1/4/iterations:1\n"
-    "BM_string_memcpy/14/1/8/iterations:1\n"
-    "BM_string_memcpy/14/1/16/iterations:1\n"
-    "BM_string_memcpy/14/1/32/iterations:1\n"
-    "BM_string_memcpy/14/2/1/iterations:1\n"
-    "BM_string_memcpy/14/2/2/iterations:1\n"
-    "BM_string_memcpy/14/2/4/iterations:1\n"
-    "BM_string_memcpy/14/2/8/iterations:1\n"
-    "BM_string_memcpy/14/2/16/iterations:1\n"
-    "BM_string_memcpy/14/2/32/iterations:1\n"
-    "BM_string_memcpy/14/4/1/iterations:1\n"
-    "BM_string_memcpy/14/4/2/iterations:1\n"
-    "BM_string_memcpy/14/4/4/iterations:1\n"
-    "BM_string_memcpy/14/4/8/iterations:1\n"
-    "BM_string_memcpy/14/4/16/iterations:1\n"
-    "BM_string_memcpy/14/4/32/iterations:1\n"
-    "BM_string_memcpy/14/8/1/iterations:1\n"
-    "BM_string_memcpy/14/8/2/iterations:1\n"
-    "BM_string_memcpy/14/8/4/iterations:1\n"
-    "BM_string_memcpy/14/8/8/iterations:1\n"
-    "BM_string_memcpy/14/8/16/iterations:1\n"
-    "BM_string_memcpy/14/8/32/iterations:1\n"
-    "BM_string_memcpy/14/16/1/iterations:1\n"
-    "BM_string_memcpy/14/16/2/iterations:1\n"
-    "BM_string_memcpy/14/16/4/iterations:1\n"
-    "BM_string_memcpy/14/16/8/iterations:1\n"
-    "BM_string_memcpy/14/16/16/iterations:1\n"
-    "BM_string_memcpy/14/16/32/iterations:1\n"
-    "BM_string_memcpy/14/32/1/iterations:1\n"
-    "BM_string_memcpy/14/32/2/iterations:1\n"
-    "BM_string_memcpy/14/32/4/iterations:1\n"
-    "BM_string_memcpy/14/32/8/iterations:1\n"
-    "BM_string_memcpy/14/32/16/iterations:1\n"
-    "BM_string_memcpy/14/32/32/iterations:1\n"
-    "BM_string_memcpy/15/0/0/iterations:1\n"
-    "BM_string_memcpy/15/1/1/iterations:1\n"
-    "BM_string_memcpy/15/1/2/iterations:1\n"
-    "BM_string_memcpy/15/1/4/iterations:1\n"
-    "BM_string_memcpy/15/1/8/iterations:1\n"
-    "BM_string_memcpy/15/1/16/iterations:1\n"
-    "BM_string_memcpy/15/1/32/iterations:1\n"
-    "BM_string_memcpy/15/2/1/iterations:1\n"
-    "BM_string_memcpy/15/2/2/iterations:1\n"
-    "BM_string_memcpy/15/2/4/iterations:1\n"
-    "BM_string_memcpy/15/2/8/iterations:1\n"
-    "BM_string_memcpy/15/2/16/iterations:1\n"
-    "BM_string_memcpy/15/2/32/iterations:1\n"
-    "BM_string_memcpy/15/4/1/iterations:1\n"
-    "BM_string_memcpy/15/4/2/iterations:1\n"
-    "BM_string_memcpy/15/4/4/iterations:1\n"
-    "BM_string_memcpy/15/4/8/iterations:1\n"
-    "BM_string_memcpy/15/4/16/iterations:1\n"
-    "BM_string_memcpy/15/4/32/iterations:1\n"
-    "BM_string_memcpy/15/8/1/iterations:1\n"
-    "BM_string_memcpy/15/8/2/iterations:1\n"
-    "BM_string_memcpy/15/8/4/iterations:1\n"
-    "BM_string_memcpy/15/8/8/iterations:1\n"
-    "BM_string_memcpy/15/8/16/iterations:1\n"
-    "BM_string_memcpy/15/8/32/iterations:1\n"
-    "BM_string_memcpy/15/16/1/iterations:1\n"
-    "BM_string_memcpy/15/16/2/iterations:1\n"
-    "BM_string_memcpy/15/16/4/iterations:1\n"
-    "BM_string_memcpy/15/16/8/iterations:1\n"
-    "BM_string_memcpy/15/16/16/iterations:1\n"
-    "BM_string_memcpy/15/16/32/iterations:1\n"
-    "BM_string_memcpy/15/32/1/iterations:1\n"
-    "BM_string_memcpy/15/32/2/iterations:1\n"
-    "BM_string_memcpy/15/32/4/iterations:1\n"
-    "BM_string_memcpy/15/32/8/iterations:1\n"
-    "BM_string_memcpy/15/32/16/iterations:1\n"
-    "BM_string_memcpy/15/32/32/iterations:1\n"
-    "BM_string_memcpy/16/0/0/iterations:1\n"
-    "BM_string_memcpy/16/1/1/iterations:1\n"
-    "BM_string_memcpy/16/1/2/iterations:1\n"
-    "BM_string_memcpy/16/1/4/iterations:1\n"
-    "BM_string_memcpy/16/1/8/iterations:1\n"
-    "BM_string_memcpy/16/1/16/iterations:1\n"
-    "BM_string_memcpy/16/1/32/iterations:1\n"
-    "BM_string_memcpy/16/2/1/iterations:1\n"
-    "BM_string_memcpy/16/2/2/iterations:1\n"
-    "BM_string_memcpy/16/2/4/iterations:1\n"
-    "BM_string_memcpy/16/2/8/iterations:1\n"
-    "BM_string_memcpy/16/2/16/iterations:1\n"
-    "BM_string_memcpy/16/2/32/iterations:1\n"
-    "BM_string_memcpy/16/4/1/iterations:1\n"
-    "BM_string_memcpy/16/4/2/iterations:1\n"
-    "BM_string_memcpy/16/4/4/iterations:1\n"
-    "BM_string_memcpy/16/4/8/iterations:1\n"
-    "BM_string_memcpy/16/4/16/iterations:1\n"
-    "BM_string_memcpy/16/4/32/iterations:1\n"
-    "BM_string_memcpy/16/8/1/iterations:1\n"
-    "BM_string_memcpy/16/8/2/iterations:1\n"
-    "BM_string_memcpy/16/8/4/iterations:1\n"
-    "BM_string_memcpy/16/8/8/iterations:1\n"
-    "BM_string_memcpy/16/8/16/iterations:1\n"
-    "BM_string_memcpy/16/8/32/iterations:1\n"
-    "BM_string_memcpy/16/16/1/iterations:1\n"
-    "BM_string_memcpy/16/16/2/iterations:1\n"
-    "BM_string_memcpy/16/16/4/iterations:1\n"
-    "BM_string_memcpy/16/16/8/iterations:1\n"
-    "BM_string_memcpy/16/16/16/iterations:1\n"
-    "BM_string_memcpy/16/16/32/iterations:1\n"
-    "BM_string_memcpy/16/32/1/iterations:1\n"
-    "BM_string_memcpy/16/32/2/iterations:1\n"
-    "BM_string_memcpy/16/32/4/iterations:1\n"
-    "BM_string_memcpy/16/32/8/iterations:1\n"
-    "BM_string_memcpy/16/32/16/iterations:1\n"
-    "BM_string_memcpy/16/32/32/iterations:1\n"
-    "BM_string_memcpy/24/0/0/iterations:1\n"
-    "BM_string_memcpy/24/1/1/iterations:1\n"
-    "BM_string_memcpy/24/1/2/iterations:1\n"
-    "BM_string_memcpy/24/1/4/iterations:1\n"
-    "BM_string_memcpy/24/1/8/iterations:1\n"
-    "BM_string_memcpy/24/1/16/iterations:1\n"
-    "BM_string_memcpy/24/1/32/iterations:1\n"
-    "BM_string_memcpy/24/2/1/iterations:1\n"
-    "BM_string_memcpy/24/2/2/iterations:1\n"
-    "BM_string_memcpy/24/2/4/iterations:1\n"
-    "BM_string_memcpy/24/2/8/iterations:1\n"
-    "BM_string_memcpy/24/2/16/iterations:1\n"
-    "BM_string_memcpy/24/2/32/iterations:1\n"
-    "BM_string_memcpy/24/4/1/iterations:1\n"
-    "BM_string_memcpy/24/4/2/iterations:1\n"
-    "BM_string_memcpy/24/4/4/iterations:1\n"
-    "BM_string_memcpy/24/4/8/iterations:1\n"
-    "BM_string_memcpy/24/4/16/iterations:1\n"
-    "BM_string_memcpy/24/4/32/iterations:1\n"
-    "BM_string_memcpy/24/8/1/iterations:1\n"
-    "BM_string_memcpy/24/8/2/iterations:1\n"
-    "BM_string_memcpy/24/8/4/iterations:1\n"
-    "BM_string_memcpy/24/8/8/iterations:1\n"
-    "BM_string_memcpy/24/8/16/iterations:1\n"
-    "BM_string_memcpy/24/8/32/iterations:1\n"
-    "BM_string_memcpy/24/16/1/iterations:1\n"
-    "BM_string_memcpy/24/16/2/iterations:1\n"
-    "BM_string_memcpy/24/16/4/iterations:1\n"
-    "BM_string_memcpy/24/16/8/iterations:1\n"
-    "BM_string_memcpy/24/16/16/iterations:1\n"
-    "BM_string_memcpy/24/16/32/iterations:1\n"
-    "BM_string_memcpy/24/32/1/iterations:1\n"
-    "BM_string_memcpy/24/32/2/iterations:1\n"
-    "BM_string_memcpy/24/32/4/iterations:1\n"
-    "BM_string_memcpy/24/32/8/iterations:1\n"
-    "BM_string_memcpy/24/32/16/iterations:1\n"
-    "BM_string_memcpy/24/32/32/iterations:1\n"
-    "BM_string_memcpy/32/0/0/iterations:1\n"
-    "BM_string_memcpy/32/1/1/iterations:1\n"
-    "BM_string_memcpy/32/1/2/iterations:1\n"
-    "BM_string_memcpy/32/1/4/iterations:1\n"
-    "BM_string_memcpy/32/1/8/iterations:1\n"
-    "BM_string_memcpy/32/1/16/iterations:1\n"
-    "BM_string_memcpy/32/1/32/iterations:1\n"
-    "BM_string_memcpy/32/2/1/iterations:1\n"
-    "BM_string_memcpy/32/2/2/iterations:1\n"
-    "BM_string_memcpy/32/2/4/iterations:1\n"
-    "BM_string_memcpy/32/2/8/iterations:1\n"
-    "BM_string_memcpy/32/2/16/iterations:1\n"
-    "BM_string_memcpy/32/2/32/iterations:1\n"
-    "BM_string_memcpy/32/4/1/iterations:1\n"
-    "BM_string_memcpy/32/4/2/iterations:1\n"
-    "BM_string_memcpy/32/4/4/iterations:1\n"
-    "BM_string_memcpy/32/4/8/iterations:1\n"
-    "BM_string_memcpy/32/4/16/iterations:1\n"
-    "BM_string_memcpy/32/4/32/iterations:1\n"
-    "BM_string_memcpy/32/8/1/iterations:1\n"
-    "BM_string_memcpy/32/8/2/iterations:1\n"
-    "BM_string_memcpy/32/8/4/iterations:1\n"
-    "BM_string_memcpy/32/8/8/iterations:1\n"
-    "BM_string_memcpy/32/8/16/iterations:1\n"
-    "BM_string_memcpy/32/8/32/iterations:1\n"
-    "BM_string_memcpy/32/16/1/iterations:1\n"
-    "BM_string_memcpy/32/16/2/iterations:1\n"
-    "BM_string_memcpy/32/16/4/iterations:1\n"
-    "BM_string_memcpy/32/16/8/iterations:1\n"
-    "BM_string_memcpy/32/16/16/iterations:1\n"
-    "BM_string_memcpy/32/16/32/iterations:1\n"
-    "BM_string_memcpy/32/32/1/iterations:1\n"
-    "BM_string_memcpy/32/32/2/iterations:1\n"
-    "BM_string_memcpy/32/32/4/iterations:1\n"
-    "BM_string_memcpy/32/32/8/iterations:1\n"
-    "BM_string_memcpy/32/32/16/iterations:1\n"
-    "BM_string_memcpy/32/32/32/iterations:1\n"
-    "BM_string_memcpy/40/0/0/iterations:1\n"
-    "BM_string_memcpy/40/1/1/iterations:1\n"
-    "BM_string_memcpy/40/1/2/iterations:1\n"
-    "BM_string_memcpy/40/1/4/iterations:1\n"
-    "BM_string_memcpy/40/1/8/iterations:1\n"
-    "BM_string_memcpy/40/1/16/iterations:1\n"
-    "BM_string_memcpy/40/1/32/iterations:1\n"
-    "BM_string_memcpy/40/2/1/iterations:1\n"
-    "BM_string_memcpy/40/2/2/iterations:1\n"
-    "BM_string_memcpy/40/2/4/iterations:1\n"
-    "BM_string_memcpy/40/2/8/iterations:1\n"
-    "BM_string_memcpy/40/2/16/iterations:1\n"
-    "BM_string_memcpy/40/2/32/iterations:1\n"
-    "BM_string_memcpy/40/4/1/iterations:1\n"
-    "BM_string_memcpy/40/4/2/iterations:1\n"
-    "BM_string_memcpy/40/4/4/iterations:1\n"
-    "BM_string_memcpy/40/4/8/iterations:1\n"
-    "BM_string_memcpy/40/4/16/iterations:1\n"
-    "BM_string_memcpy/40/4/32/iterations:1\n"
-    "BM_string_memcpy/40/8/1/iterations:1\n"
-    "BM_string_memcpy/40/8/2/iterations:1\n"
-    "BM_string_memcpy/40/8/4/iterations:1\n"
-    "BM_string_memcpy/40/8/8/iterations:1\n"
-    "BM_string_memcpy/40/8/16/iterations:1\n"
-    "BM_string_memcpy/40/8/32/iterations:1\n"
-    "BM_string_memcpy/40/16/1/iterations:1\n"
-    "BM_string_memcpy/40/16/2/iterations:1\n"
-    "BM_string_memcpy/40/16/4/iterations:1\n"
-    "BM_string_memcpy/40/16/8/iterations:1\n"
-    "BM_string_memcpy/40/16/16/iterations:1\n"
-    "BM_string_memcpy/40/16/32/iterations:1\n"
-    "BM_string_memcpy/40/32/1/iterations:1\n"
-    "BM_string_memcpy/40/32/2/iterations:1\n"
-    "BM_string_memcpy/40/32/4/iterations:1\n"
-    "BM_string_memcpy/40/32/8/iterations:1\n"
-    "BM_string_memcpy/40/32/16/iterations:1\n"
-    "BM_string_memcpy/40/32/32/iterations:1\n"
-    "BM_string_memcpy/48/0/0/iterations:1\n"
-    "BM_string_memcpy/48/1/1/iterations:1\n"
-    "BM_string_memcpy/48/1/2/iterations:1\n"
-    "BM_string_memcpy/48/1/4/iterations:1\n"
-    "BM_string_memcpy/48/1/8/iterations:1\n"
-    "BM_string_memcpy/48/1/16/iterations:1\n"
-    "BM_string_memcpy/48/1/32/iterations:1\n"
-    "BM_string_memcpy/48/2/1/iterations:1\n"
-    "BM_string_memcpy/48/2/2/iterations:1\n"
-    "BM_string_memcpy/48/2/4/iterations:1\n"
-    "BM_string_memcpy/48/2/8/iterations:1\n"
-    "BM_string_memcpy/48/2/16/iterations:1\n"
-    "BM_string_memcpy/48/2/32/iterations:1\n"
-    "BM_string_memcpy/48/4/1/iterations:1\n"
-    "BM_string_memcpy/48/4/2/iterations:1\n"
-    "BM_string_memcpy/48/4/4/iterations:1\n"
-    "BM_string_memcpy/48/4/8/iterations:1\n"
-    "BM_string_memcpy/48/4/16/iterations:1\n"
-    "BM_string_memcpy/48/4/32/iterations:1\n"
-    "BM_string_memcpy/48/8/1/iterations:1\n"
-    "BM_string_memcpy/48/8/2/iterations:1\n"
-    "BM_string_memcpy/48/8/4/iterations:1\n"
-    "BM_string_memcpy/48/8/8/iterations:1\n"
-    "BM_string_memcpy/48/8/16/iterations:1\n"
-    "BM_string_memcpy/48/8/32/iterations:1\n"
-    "BM_string_memcpy/48/16/1/iterations:1\n"
-    "BM_string_memcpy/48/16/2/iterations:1\n"
-    "BM_string_memcpy/48/16/4/iterations:1\n"
-    "BM_string_memcpy/48/16/8/iterations:1\n"
-    "BM_string_memcpy/48/16/16/iterations:1\n"
-    "BM_string_memcpy/48/16/32/iterations:1\n"
-    "BM_string_memcpy/48/32/1/iterations:1\n"
-    "BM_string_memcpy/48/32/2/iterations:1\n"
-    "BM_string_memcpy/48/32/4/iterations:1\n"
-    "BM_string_memcpy/48/32/8/iterations:1\n"
-    "BM_string_memcpy/48/32/16/iterations:1\n"
-    "BM_string_memcpy/48/32/32/iterations:1\n"
-    "BM_string_memcpy/56/0/0/iterations:1\n"
-    "BM_string_memcpy/56/1/1/iterations:1\n"
-    "BM_string_memcpy/56/1/2/iterations:1\n"
-    "BM_string_memcpy/56/1/4/iterations:1\n"
-    "BM_string_memcpy/56/1/8/iterations:1\n"
-    "BM_string_memcpy/56/1/16/iterations:1\n"
-    "BM_string_memcpy/56/1/32/iterations:1\n"
-    "BM_string_memcpy/56/2/1/iterations:1\n"
-    "BM_string_memcpy/56/2/2/iterations:1\n"
-    "BM_string_memcpy/56/2/4/iterations:1\n"
-    "BM_string_memcpy/56/2/8/iterations:1\n"
-    "BM_string_memcpy/56/2/16/iterations:1\n"
-    "BM_string_memcpy/56/2/32/iterations:1\n"
-    "BM_string_memcpy/56/4/1/iterations:1\n"
-    "BM_string_memcpy/56/4/2/iterations:1\n"
-    "BM_string_memcpy/56/4/4/iterations:1\n"
-    "BM_string_memcpy/56/4/8/iterations:1\n"
-    "BM_string_memcpy/56/4/16/iterations:1\n"
-    "BM_string_memcpy/56/4/32/iterations:1\n"
-    "BM_string_memcpy/56/8/1/iterations:1\n"
-    "BM_string_memcpy/56/8/2/iterations:1\n"
-    "BM_string_memcpy/56/8/4/iterations:1\n"
-    "BM_string_memcpy/56/8/8/iterations:1\n"
-    "BM_string_memcpy/56/8/16/iterations:1\n"
-    "BM_string_memcpy/56/8/32/iterations:1\n"
-    "BM_string_memcpy/56/16/1/iterations:1\n"
-    "BM_string_memcpy/56/16/2/iterations:1\n"
-    "BM_string_memcpy/56/16/4/iterations:1\n"
-    "BM_string_memcpy/56/16/8/iterations:1\n"
-    "BM_string_memcpy/56/16/16/iterations:1\n"
-    "BM_string_memcpy/56/16/32/iterations:1\n"
-    "BM_string_memcpy/56/32/1/iterations:1\n"
-    "BM_string_memcpy/56/32/2/iterations:1\n"
-    "BM_string_memcpy/56/32/4/iterations:1\n"
-    "BM_string_memcpy/56/32/8/iterations:1\n"
-    "BM_string_memcpy/56/32/16/iterations:1\n"
-    "BM_string_memcpy/56/32/32/iterations:1\n"
-    "BM_string_memcpy/64/0/0/iterations:1\n"
-    "BM_string_memcpy/64/1/1/iterations:1\n"
-    "BM_string_memcpy/64/1/2/iterations:1\n"
-    "BM_string_memcpy/64/1/4/iterations:1\n"
-    "BM_string_memcpy/64/1/8/iterations:1\n"
-    "BM_string_memcpy/64/1/16/iterations:1\n"
-    "BM_string_memcpy/64/1/32/iterations:1\n"
-    "BM_string_memcpy/64/2/1/iterations:1\n"
-    "BM_string_memcpy/64/2/2/iterations:1\n"
-    "BM_string_memcpy/64/2/4/iterations:1\n"
-    "BM_string_memcpy/64/2/8/iterations:1\n"
-    "BM_string_memcpy/64/2/16/iterations:1\n"
-    "BM_string_memcpy/64/2/32/iterations:1\n"
-    "BM_string_memcpy/64/4/1/iterations:1\n"
-    "BM_string_memcpy/64/4/2/iterations:1\n"
-    "BM_string_memcpy/64/4/4/iterations:1\n"
-    "BM_string_memcpy/64/4/8/iterations:1\n"
-    "BM_string_memcpy/64/4/16/iterations:1\n"
-    "BM_string_memcpy/64/4/32/iterations:1\n"
-    "BM_string_memcpy/64/8/1/iterations:1\n"
-    "BM_string_memcpy/64/8/2/iterations:1\n"
-    "BM_string_memcpy/64/8/4/iterations:1\n"
-    "BM_string_memcpy/64/8/8/iterations:1\n"
-    "BM_string_memcpy/64/8/16/iterations:1\n"
-    "BM_string_memcpy/64/8/32/iterations:1\n"
-    "BM_string_memcpy/64/16/1/iterations:1\n"
-    "BM_string_memcpy/64/16/2/iterations:1\n"
-    "BM_string_memcpy/64/16/4/iterations:1\n"
-    "BM_string_memcpy/64/16/8/iterations:1\n"
-    "BM_string_memcpy/64/16/16/iterations:1\n"
-    "BM_string_memcpy/64/16/32/iterations:1\n"
-    "BM_string_memcpy/64/32/1/iterations:1\n"
-    "BM_string_memcpy/64/32/2/iterations:1\n"
-    "BM_string_memcpy/64/32/4/iterations:1\n"
-    "BM_string_memcpy/64/32/8/iterations:1\n"
-    "BM_string_memcpy/64/32/16/iterations:1\n"
-    "BM_string_memcpy/64/32/32/iterations:1\n"
-    "BM_string_memcpy/72/0/0/iterations:1\n"
-    "BM_string_memcpy/72/1/1/iterations:1\n"
-    "BM_string_memcpy/72/1/2/iterations:1\n"
-    "BM_string_memcpy/72/1/4/iterations:1\n"
-    "BM_string_memcpy/72/1/8/iterations:1\n"
-    "BM_string_memcpy/72/1/16/iterations:1\n"
-    "BM_string_memcpy/72/1/32/iterations:1\n"
-    "BM_string_memcpy/72/2/1/iterations:1\n"
-    "BM_string_memcpy/72/2/2/iterations:1\n"
-    "BM_string_memcpy/72/2/4/iterations:1\n"
-    "BM_string_memcpy/72/2/8/iterations:1\n"
-    "BM_string_memcpy/72/2/16/iterations:1\n"
-    "BM_string_memcpy/72/2/32/iterations:1\n"
-    "BM_string_memcpy/72/4/1/iterations:1\n"
-    "BM_string_memcpy/72/4/2/iterations:1\n"
-    "BM_string_memcpy/72/4/4/iterations:1\n"
-    "BM_string_memcpy/72/4/8/iterations:1\n"
-    "BM_string_memcpy/72/4/16/iterations:1\n"
-    "BM_string_memcpy/72/4/32/iterations:1\n"
-    "BM_string_memcpy/72/8/1/iterations:1\n"
-    "BM_string_memcpy/72/8/2/iterations:1\n"
-    "BM_string_memcpy/72/8/4/iterations:1\n"
-    "BM_string_memcpy/72/8/8/iterations:1\n"
-    "BM_string_memcpy/72/8/16/iterations:1\n"
-    "BM_string_memcpy/72/8/32/iterations:1\n"
-    "BM_string_memcpy/72/16/1/iterations:1\n"
-    "BM_string_memcpy/72/16/2/iterations:1\n"
-    "BM_string_memcpy/72/16/4/iterations:1\n"
-    "BM_string_memcpy/72/16/8/iterations:1\n"
-    "BM_string_memcpy/72/16/16/iterations:1\n"
-    "BM_string_memcpy/72/16/32/iterations:1\n"
-    "BM_string_memcpy/72/32/1/iterations:1\n"
-    "BM_string_memcpy/72/32/2/iterations:1\n"
-    "BM_string_memcpy/72/32/4/iterations:1\n"
-    "BM_string_memcpy/72/32/8/iterations:1\n"
-    "BM_string_memcpy/72/32/16/iterations:1\n"
-    "BM_string_memcpy/72/32/32/iterations:1\n"
-    "BM_string_memcpy/80/0/0/iterations:1\n"
-    "BM_string_memcpy/80/1/1/iterations:1\n"
-    "BM_string_memcpy/80/1/2/iterations:1\n"
-    "BM_string_memcpy/80/1/4/iterations:1\n"
-    "BM_string_memcpy/80/1/8/iterations:1\n"
-    "BM_string_memcpy/80/1/16/iterations:1\n"
-    "BM_string_memcpy/80/1/32/iterations:1\n"
-    "BM_string_memcpy/80/2/1/iterations:1\n"
-    "BM_string_memcpy/80/2/2/iterations:1\n"
-    "BM_string_memcpy/80/2/4/iterations:1\n"
-    "BM_string_memcpy/80/2/8/iterations:1\n"
-    "BM_string_memcpy/80/2/16/iterations:1\n"
-    "BM_string_memcpy/80/2/32/iterations:1\n"
-    "BM_string_memcpy/80/4/1/iterations:1\n"
-    "BM_string_memcpy/80/4/2/iterations:1\n"
-    "BM_string_memcpy/80/4/4/iterations:1\n"
-    "BM_string_memcpy/80/4/8/iterations:1\n"
-    "BM_string_memcpy/80/4/16/iterations:1\n"
-    "BM_string_memcpy/80/4/32/iterations:1\n"
-    "BM_string_memcpy/80/8/1/iterations:1\n"
-    "BM_string_memcpy/80/8/2/iterations:1\n"
-    "BM_string_memcpy/80/8/4/iterations:1\n"
-    "BM_string_memcpy/80/8/8/iterations:1\n"
-    "BM_string_memcpy/80/8/16/iterations:1\n"
-    "BM_string_memcpy/80/8/32/iterations:1\n"
-    "BM_string_memcpy/80/16/1/iterations:1\n"
-    "BM_string_memcpy/80/16/2/iterations:1\n"
-    "BM_string_memcpy/80/16/4/iterations:1\n"
-    "BM_string_memcpy/80/16/8/iterations:1\n"
-    "BM_string_memcpy/80/16/16/iterations:1\n"
-    "BM_string_memcpy/80/16/32/iterations:1\n"
-    "BM_string_memcpy/80/32/1/iterations:1\n"
-    "BM_string_memcpy/80/32/2/iterations:1\n"
-    "BM_string_memcpy/80/32/4/iterations:1\n"
-    "BM_string_memcpy/80/32/8/iterations:1\n"
-    "BM_string_memcpy/80/32/16/iterations:1\n"
-    "BM_string_memcpy/80/32/32/iterations:1\n"
-    "BM_string_memcpy/88/0/0/iterations:1\n"
-    "BM_string_memcpy/88/1/1/iterations:1\n"
-    "BM_string_memcpy/88/1/2/iterations:1\n"
-    "BM_string_memcpy/88/1/4/iterations:1\n"
-    "BM_string_memcpy/88/1/8/iterations:1\n"
-    "BM_string_memcpy/88/1/16/iterations:1\n"
-    "BM_string_memcpy/88/1/32/iterations:1\n"
-    "BM_string_memcpy/88/2/1/iterations:1\n"
-    "BM_string_memcpy/88/2/2/iterations:1\n"
-    "BM_string_memcpy/88/2/4/iterations:1\n"
-    "BM_string_memcpy/88/2/8/iterations:1\n"
-    "BM_string_memcpy/88/2/16/iterations:1\n"
-    "BM_string_memcpy/88/2/32/iterations:1\n"
-    "BM_string_memcpy/88/4/1/iterations:1\n"
-    "BM_string_memcpy/88/4/2/iterations:1\n"
-    "BM_string_memcpy/88/4/4/iterations:1\n"
-    "BM_string_memcpy/88/4/8/iterations:1\n"
-    "BM_string_memcpy/88/4/16/iterations:1\n"
-    "BM_string_memcpy/88/4/32/iterations:1\n"
-    "BM_string_memcpy/88/8/1/iterations:1\n"
-    "BM_string_memcpy/88/8/2/iterations:1\n"
-    "BM_string_memcpy/88/8/4/iterations:1\n"
-    "BM_string_memcpy/88/8/8/iterations:1\n"
-    "BM_string_memcpy/88/8/16/iterations:1\n"
-    "BM_string_memcpy/88/8/32/iterations:1\n"
-    "BM_string_memcpy/88/16/1/iterations:1\n"
-    "BM_string_memcpy/88/16/2/iterations:1\n"
-    "BM_string_memcpy/88/16/4/iterations:1\n"
-    "BM_string_memcpy/88/16/8/iterations:1\n"
-    "BM_string_memcpy/88/16/16/iterations:1\n"
-    "BM_string_memcpy/88/16/32/iterations:1\n"
-    "BM_string_memcpy/88/32/1/iterations:1\n"
-    "BM_string_memcpy/88/32/2/iterations:1\n"
-    "BM_string_memcpy/88/32/4/iterations:1\n"
-    "BM_string_memcpy/88/32/8/iterations:1\n"
-    "BM_string_memcpy/88/32/16/iterations:1\n"
-    "BM_string_memcpy/88/32/32/iterations:1\n"
-    "BM_string_memcpy/96/0/0/iterations:1\n"
-    "BM_string_memcpy/96/1/1/iterations:1\n"
-    "BM_string_memcpy/96/1/2/iterations:1\n"
-    "BM_string_memcpy/96/1/4/iterations:1\n"
-    "BM_string_memcpy/96/1/8/iterations:1\n"
-    "BM_string_memcpy/96/1/16/iterations:1\n"
-    "BM_string_memcpy/96/1/32/iterations:1\n"
-    "BM_string_memcpy/96/2/1/iterations:1\n"
-    "BM_string_memcpy/96/2/2/iterations:1\n"
-    "BM_string_memcpy/96/2/4/iterations:1\n"
-    "BM_string_memcpy/96/2/8/iterations:1\n"
-    "BM_string_memcpy/96/2/16/iterations:1\n"
-    "BM_string_memcpy/96/2/32/iterations:1\n"
-    "BM_string_memcpy/96/4/1/iterations:1\n"
-    "BM_string_memcpy/96/4/2/iterations:1\n"
-    "BM_string_memcpy/96/4/4/iterations:1\n"
-    "BM_string_memcpy/96/4/8/iterations:1\n"
-    "BM_string_memcpy/96/4/16/iterations:1\n"
-    "BM_string_memcpy/96/4/32/iterations:1\n"
-    "BM_string_memcpy/96/8/1/iterations:1\n"
-    "BM_string_memcpy/96/8/2/iterations:1\n"
-    "BM_string_memcpy/96/8/4/iterations:1\n"
-    "BM_string_memcpy/96/8/8/iterations:1\n"
-    "BM_string_memcpy/96/8/16/iterations:1\n"
-    "BM_string_memcpy/96/8/32/iterations:1\n"
-    "BM_string_memcpy/96/16/1/iterations:1\n"
-    "BM_string_memcpy/96/16/2/iterations:1\n"
-    "BM_string_memcpy/96/16/4/iterations:1\n"
-    "BM_string_memcpy/96/16/8/iterations:1\n"
-    "BM_string_memcpy/96/16/16/iterations:1\n"
-    "BM_string_memcpy/96/16/32/iterations:1\n"
-    "BM_string_memcpy/96/32/1/iterations:1\n"
-    "BM_string_memcpy/96/32/2/iterations:1\n"
-    "BM_string_memcpy/96/32/4/iterations:1\n"
-    "BM_string_memcpy/96/32/8/iterations:1\n"
-    "BM_string_memcpy/96/32/16/iterations:1\n"
-    "BM_string_memcpy/96/32/32/iterations:1\n"
-    "BM_string_memcpy/104/0/0/iterations:1\n"
-    "BM_string_memcpy/104/1/1/iterations:1\n"
-    "BM_string_memcpy/104/1/2/iterations:1\n"
-    "BM_string_memcpy/104/1/4/iterations:1\n"
-    "BM_string_memcpy/104/1/8/iterations:1\n"
-    "BM_string_memcpy/104/1/16/iterations:1\n"
-    "BM_string_memcpy/104/1/32/iterations:1\n"
-    "BM_string_memcpy/104/2/1/iterations:1\n"
-    "BM_string_memcpy/104/2/2/iterations:1\n"
-    "BM_string_memcpy/104/2/4/iterations:1\n"
-    "BM_string_memcpy/104/2/8/iterations:1\n"
-    "BM_string_memcpy/104/2/16/iterations:1\n"
-    "BM_string_memcpy/104/2/32/iterations:1\n"
-    "BM_string_memcpy/104/4/1/iterations:1\n"
-    "BM_string_memcpy/104/4/2/iterations:1\n"
-    "BM_string_memcpy/104/4/4/iterations:1\n"
-    "BM_string_memcpy/104/4/8/iterations:1\n"
-    "BM_string_memcpy/104/4/16/iterations:1\n"
-    "BM_string_memcpy/104/4/32/iterations:1\n"
-    "BM_string_memcpy/104/8/1/iterations:1\n"
-    "BM_string_memcpy/104/8/2/iterations:1\n"
-    "BM_string_memcpy/104/8/4/iterations:1\n"
-    "BM_string_memcpy/104/8/8/iterations:1\n"
-    "BM_string_memcpy/104/8/16/iterations:1\n"
-    "BM_string_memcpy/104/8/32/iterations:1\n"
-    "BM_string_memcpy/104/16/1/iterations:1\n"
-    "BM_string_memcpy/104/16/2/iterations:1\n"
-    "BM_string_memcpy/104/16/4/iterations:1\n"
-    "BM_string_memcpy/104/16/8/iterations:1\n"
-    "BM_string_memcpy/104/16/16/iterations:1\n"
-    "BM_string_memcpy/104/16/32/iterations:1\n"
-    "BM_string_memcpy/104/32/1/iterations:1\n"
-    "BM_string_memcpy/104/32/2/iterations:1\n"
-    "BM_string_memcpy/104/32/4/iterations:1\n"
-    "BM_string_memcpy/104/32/8/iterations:1\n"
-    "BM_string_memcpy/104/32/16/iterations:1\n"
-    "BM_string_memcpy/104/32/32/iterations:1\n"
-    "BM_string_memcpy/112/0/0/iterations:1\n"
-    "BM_string_memcpy/112/1/1/iterations:1\n"
-    "BM_string_memcpy/112/1/2/iterations:1\n"
-    "BM_string_memcpy/112/1/4/iterations:1\n"
-    "BM_string_memcpy/112/1/8/iterations:1\n"
-    "BM_string_memcpy/112/1/16/iterations:1\n"
-    "BM_string_memcpy/112/1/32/iterations:1\n"
-    "BM_string_memcpy/112/2/1/iterations:1\n"
-    "BM_string_memcpy/112/2/2/iterations:1\n"
-    "BM_string_memcpy/112/2/4/iterations:1\n"
-    "BM_string_memcpy/112/2/8/iterations:1\n"
-    "BM_string_memcpy/112/2/16/iterations:1\n"
-    "BM_string_memcpy/112/2/32/iterations:1\n"
-    "BM_string_memcpy/112/4/1/iterations:1\n"
-    "BM_string_memcpy/112/4/2/iterations:1\n"
-    "BM_string_memcpy/112/4/4/iterations:1\n"
-    "BM_string_memcpy/112/4/8/iterations:1\n"
-    "BM_string_memcpy/112/4/16/iterations:1\n"
-    "BM_string_memcpy/112/4/32/iterations:1\n"
-    "BM_string_memcpy/112/8/1/iterations:1\n"
-    "BM_string_memcpy/112/8/2/iterations:1\n"
-    "BM_string_memcpy/112/8/4/iterations:1\n"
-    "BM_string_memcpy/112/8/8/iterations:1\n"
-    "BM_string_memcpy/112/8/16/iterations:1\n"
-    "BM_string_memcpy/112/8/32/iterations:1\n"
-    "BM_string_memcpy/112/16/1/iterations:1\n"
-    "BM_string_memcpy/112/16/2/iterations:1\n"
-    "BM_string_memcpy/112/16/4/iterations:1\n"
-    "BM_string_memcpy/112/16/8/iterations:1\n"
-    "BM_string_memcpy/112/16/16/iterations:1\n"
-    "BM_string_memcpy/112/16/32/iterations:1\n"
-    "BM_string_memcpy/112/32/1/iterations:1\n"
-    "BM_string_memcpy/112/32/2/iterations:1\n"
-    "BM_string_memcpy/112/32/4/iterations:1\n"
-    "BM_string_memcpy/112/32/8/iterations:1\n"
-    "BM_string_memcpy/112/32/16/iterations:1\n"
-    "BM_string_memcpy/112/32/32/iterations:1\n"
-    "BM_string_memcpy/120/0/0/iterations:1\n"
-    "BM_string_memcpy/120/1/1/iterations:1\n"
-    "BM_string_memcpy/120/1/2/iterations:1\n"
-    "BM_string_memcpy/120/1/4/iterations:1\n"
-    "BM_string_memcpy/120/1/8/iterations:1\n"
-    "BM_string_memcpy/120/1/16/iterations:1\n"
-    "BM_string_memcpy/120/1/32/iterations:1\n"
-    "BM_string_memcpy/120/2/1/iterations:1\n"
-    "BM_string_memcpy/120/2/2/iterations:1\n"
-    "BM_string_memcpy/120/2/4/iterations:1\n"
-    "BM_string_memcpy/120/2/8/iterations:1\n"
-    "BM_string_memcpy/120/2/16/iterations:1\n"
-    "BM_string_memcpy/120/2/32/iterations:1\n"
-    "BM_string_memcpy/120/4/1/iterations:1\n"
-    "BM_string_memcpy/120/4/2/iterations:1\n"
-    "BM_string_memcpy/120/4/4/iterations:1\n"
-    "BM_string_memcpy/120/4/8/iterations:1\n"
-    "BM_string_memcpy/120/4/16/iterations:1\n"
-    "BM_string_memcpy/120/4/32/iterations:1\n"
-    "BM_string_memcpy/120/8/1/iterations:1\n"
-    "BM_string_memcpy/120/8/2/iterations:1\n"
-    "BM_string_memcpy/120/8/4/iterations:1\n"
-    "BM_string_memcpy/120/8/8/iterations:1\n"
-    "BM_string_memcpy/120/8/16/iterations:1\n"
-    "BM_string_memcpy/120/8/32/iterations:1\n"
-    "BM_string_memcpy/120/16/1/iterations:1\n"
-    "BM_string_memcpy/120/16/2/iterations:1\n"
-    "BM_string_memcpy/120/16/4/iterations:1\n"
-    "BM_string_memcpy/120/16/8/iterations:1\n"
-    "BM_string_memcpy/120/16/16/iterations:1\n"
-    "BM_string_memcpy/120/16/32/iterations:1\n"
-    "BM_string_memcpy/120/32/1/iterations:1\n"
-    "BM_string_memcpy/120/32/2/iterations:1\n"
-    "BM_string_memcpy/120/32/4/iterations:1\n"
-    "BM_string_memcpy/120/32/8/iterations:1\n"
-    "BM_string_memcpy/120/32/16/iterations:1\n"
-    "BM_string_memcpy/120/32/32/iterations:1\n"
-    "BM_string_memcpy/128/0/0/iterations:1\n"
-    "BM_string_memcpy/128/1/1/iterations:1\n"
-    "BM_string_memcpy/128/1/2/iterations:1\n"
-    "BM_string_memcpy/128/1/4/iterations:1\n"
-    "BM_string_memcpy/128/1/8/iterations:1\n"
-    "BM_string_memcpy/128/1/16/iterations:1\n"
-    "BM_string_memcpy/128/1/32/iterations:1\n"
-    "BM_string_memcpy/128/2/1/iterations:1\n"
-    "BM_string_memcpy/128/2/2/iterations:1\n"
-    "BM_string_memcpy/128/2/4/iterations:1\n"
-    "BM_string_memcpy/128/2/8/iterations:1\n"
-    "BM_string_memcpy/128/2/16/iterations:1\n"
-    "BM_string_memcpy/128/2/32/iterations:1\n"
-    "BM_string_memcpy/128/4/1/iterations:1\n"
-    "BM_string_memcpy/128/4/2/iterations:1\n"
-    "BM_string_memcpy/128/4/4/iterations:1\n"
-    "BM_string_memcpy/128/4/8/iterations:1\n"
-    "BM_string_memcpy/128/4/16/iterations:1\n"
-    "BM_string_memcpy/128/4/32/iterations:1\n"
-    "BM_string_memcpy/128/8/1/iterations:1\n"
-    "BM_string_memcpy/128/8/2/iterations:1\n"
-    "BM_string_memcpy/128/8/4/iterations:1\n"
-    "BM_string_memcpy/128/8/8/iterations:1\n"
-    "BM_string_memcpy/128/8/16/iterations:1\n"
-    "BM_string_memcpy/128/8/32/iterations:1\n"
-    "BM_string_memcpy/128/16/1/iterations:1\n"
-    "BM_string_memcpy/128/16/2/iterations:1\n"
-    "BM_string_memcpy/128/16/4/iterations:1\n"
-    "BM_string_memcpy/128/16/8/iterations:1\n"
-    "BM_string_memcpy/128/16/16/iterations:1\n"
-    "BM_string_memcpy/128/16/32/iterations:1\n"
-    "BM_string_memcpy/128/32/1/iterations:1\n"
-    "BM_string_memcpy/128/32/2/iterations:1\n"
-    "BM_string_memcpy/128/32/4/iterations:1\n"
-    "BM_string_memcpy/128/32/8/iterations:1\n"
-    "BM_string_memcpy/128/32/16/iterations:1\n"
-    "BM_string_memcpy/128/32/32/iterations:1\n"
-    "BM_string_memcpy/136/0/0/iterations:1\n"
-    "BM_string_memcpy/136/1/1/iterations:1\n"
-    "BM_string_memcpy/136/1/2/iterations:1\n"
-    "BM_string_memcpy/136/1/4/iterations:1\n"
-    "BM_string_memcpy/136/1/8/iterations:1\n"
-    "BM_string_memcpy/136/1/16/iterations:1\n"
-    "BM_string_memcpy/136/1/32/iterations:1\n"
-    "BM_string_memcpy/136/2/1/iterations:1\n"
-    "BM_string_memcpy/136/2/2/iterations:1\n"
-    "BM_string_memcpy/136/2/4/iterations:1\n"
-    "BM_string_memcpy/136/2/8/iterations:1\n"
-    "BM_string_memcpy/136/2/16/iterations:1\n"
-    "BM_string_memcpy/136/2/32/iterations:1\n"
-    "BM_string_memcpy/136/4/1/iterations:1\n"
-    "BM_string_memcpy/136/4/2/iterations:1\n"
-    "BM_string_memcpy/136/4/4/iterations:1\n"
-    "BM_string_memcpy/136/4/8/iterations:1\n"
-    "BM_string_memcpy/136/4/16/iterations:1\n"
-    "BM_string_memcpy/136/4/32/iterations:1\n"
-    "BM_string_memcpy/136/8/1/iterations:1\n"
-    "BM_string_memcpy/136/8/2/iterations:1\n"
-    "BM_string_memcpy/136/8/4/iterations:1\n"
-    "BM_string_memcpy/136/8/8/iterations:1\n"
-    "BM_string_memcpy/136/8/16/iterations:1\n"
-    "BM_string_memcpy/136/8/32/iterations:1\n"
-    "BM_string_memcpy/136/16/1/iterations:1\n"
-    "BM_string_memcpy/136/16/2/iterations:1\n"
-    "BM_string_memcpy/136/16/4/iterations:1\n"
-    "BM_string_memcpy/136/16/8/iterations:1\n"
-    "BM_string_memcpy/136/16/16/iterations:1\n"
-    "BM_string_memcpy/136/16/32/iterations:1\n"
-    "BM_string_memcpy/136/32/1/iterations:1\n"
-    "BM_string_memcpy/136/32/2/iterations:1\n"
-    "BM_string_memcpy/136/32/4/iterations:1\n"
-    "BM_string_memcpy/136/32/8/iterations:1\n"
-    "BM_string_memcpy/136/32/16/iterations:1\n"
-    "BM_string_memcpy/136/32/32/iterations:1\n"
-    "BM_string_memcpy/144/0/0/iterations:1\n"
-    "BM_string_memcpy/144/1/1/iterations:1\n"
-    "BM_string_memcpy/144/1/2/iterations:1\n"
-    "BM_string_memcpy/144/1/4/iterations:1\n"
-    "BM_string_memcpy/144/1/8/iterations:1\n"
-    "BM_string_memcpy/144/1/16/iterations:1\n"
-    "BM_string_memcpy/144/1/32/iterations:1\n"
-    "BM_string_memcpy/144/2/1/iterations:1\n"
-    "BM_string_memcpy/144/2/2/iterations:1\n"
-    "BM_string_memcpy/144/2/4/iterations:1\n"
-    "BM_string_memcpy/144/2/8/iterations:1\n"
-    "BM_string_memcpy/144/2/16/iterations:1\n"
-    "BM_string_memcpy/144/2/32/iterations:1\n"
-    "BM_string_memcpy/144/4/1/iterations:1\n"
-    "BM_string_memcpy/144/4/2/iterations:1\n"
-    "BM_string_memcpy/144/4/4/iterations:1\n"
-    "BM_string_memcpy/144/4/8/iterations:1\n"
-    "BM_string_memcpy/144/4/16/iterations:1\n"
-    "BM_string_memcpy/144/4/32/iterations:1\n"
-    "BM_string_memcpy/144/8/1/iterations:1\n"
-    "BM_string_memcpy/144/8/2/iterations:1\n"
-    "BM_string_memcpy/144/8/4/iterations:1\n"
-    "BM_string_memcpy/144/8/8/iterations:1\n"
-    "BM_string_memcpy/144/8/16/iterations:1\n"
-    "BM_string_memcpy/144/8/32/iterations:1\n"
-    "BM_string_memcpy/144/16/1/iterations:1\n"
-    "BM_string_memcpy/144/16/2/iterations:1\n"
-    "BM_string_memcpy/144/16/4/iterations:1\n"
-    "BM_string_memcpy/144/16/8/iterations:1\n"
-    "BM_string_memcpy/144/16/16/iterations:1\n"
-    "BM_string_memcpy/144/16/32/iterations:1\n"
-    "BM_string_memcpy/144/32/1/iterations:1\n"
-    "BM_string_memcpy/144/32/2/iterations:1\n"
-    "BM_string_memcpy/144/32/4/iterations:1\n"
-    "BM_string_memcpy/144/32/8/iterations:1\n"
-    "BM_string_memcpy/144/32/16/iterations:1\n"
-    "BM_string_memcpy/144/32/32/iterations:1\n"
-    "BM_string_memcpy/160/0/0/iterations:1\n"
-    "BM_string_memcpy/160/1/1/iterations:1\n"
-    "BM_string_memcpy/160/1/2/iterations:1\n"
-    "BM_string_memcpy/160/1/4/iterations:1\n"
-    "BM_string_memcpy/160/1/8/iterations:1\n"
-    "BM_string_memcpy/160/1/16/iterations:1\n"
-    "BM_string_memcpy/160/1/32/iterations:1\n"
-    "BM_string_memcpy/160/2/1/iterations:1\n"
-    "BM_string_memcpy/160/2/2/iterations:1\n"
-    "BM_string_memcpy/160/2/4/iterations:1\n"
-    "BM_string_memcpy/160/2/8/iterations:1\n"
-    "BM_string_memcpy/160/2/16/iterations:1\n"
-    "BM_string_memcpy/160/2/32/iterations:1\n"
-    "BM_string_memcpy/160/4/1/iterations:1\n"
-    "BM_string_memcpy/160/4/2/iterations:1\n"
-    "BM_string_memcpy/160/4/4/iterations:1\n"
-    "BM_string_memcpy/160/4/8/iterations:1\n"
-    "BM_string_memcpy/160/4/16/iterations:1\n"
-    "BM_string_memcpy/160/4/32/iterations:1\n"
-    "BM_string_memcpy/160/8/1/iterations:1\n"
-    "BM_string_memcpy/160/8/2/iterations:1\n"
-    "BM_string_memcpy/160/8/4/iterations:1\n"
-    "BM_string_memcpy/160/8/8/iterations:1\n"
-    "BM_string_memcpy/160/8/16/iterations:1\n"
-    "BM_string_memcpy/160/8/32/iterations:1\n"
-    "BM_string_memcpy/160/16/1/iterations:1\n"
-    "BM_string_memcpy/160/16/2/iterations:1\n"
-    "BM_string_memcpy/160/16/4/iterations:1\n"
-    "BM_string_memcpy/160/16/8/iterations:1\n"
-    "BM_string_memcpy/160/16/16/iterations:1\n"
-    "BM_string_memcpy/160/16/32/iterations:1\n"
-    "BM_string_memcpy/160/32/1/iterations:1\n"
-    "BM_string_memcpy/160/32/2/iterations:1\n"
-    "BM_string_memcpy/160/32/4/iterations:1\n"
-    "BM_string_memcpy/160/32/8/iterations:1\n"
-    "BM_string_memcpy/160/32/16/iterations:1\n"
-    "BM_string_memcpy/160/32/32/iterations:1\n"
-    "BM_string_memcpy/176/0/0/iterations:1\n"
-    "BM_string_memcpy/176/1/1/iterations:1\n"
-    "BM_string_memcpy/176/1/2/iterations:1\n"
-    "BM_string_memcpy/176/1/4/iterations:1\n"
-    "BM_string_memcpy/176/1/8/iterations:1\n"
-    "BM_string_memcpy/176/1/16/iterations:1\n"
-    "BM_string_memcpy/176/1/32/iterations:1\n"
-    "BM_string_memcpy/176/2/1/iterations:1\n"
-    "BM_string_memcpy/176/2/2/iterations:1\n"
-    "BM_string_memcpy/176/2/4/iterations:1\n"
-    "BM_string_memcpy/176/2/8/iterations:1\n"
-    "BM_string_memcpy/176/2/16/iterations:1\n"
-    "BM_string_memcpy/176/2/32/iterations:1\n"
-    "BM_string_memcpy/176/4/1/iterations:1\n"
-    "BM_string_memcpy/176/4/2/iterations:1\n"
-    "BM_string_memcpy/176/4/4/iterations:1\n"
-    "BM_string_memcpy/176/4/8/iterations:1\n"
-    "BM_string_memcpy/176/4/16/iterations:1\n"
-    "BM_string_memcpy/176/4/32/iterations:1\n"
-    "BM_string_memcpy/176/8/1/iterations:1\n"
-    "BM_string_memcpy/176/8/2/iterations:1\n"
-    "BM_string_memcpy/176/8/4/iterations:1\n"
-    "BM_string_memcpy/176/8/8/iterations:1\n"
-    "BM_string_memcpy/176/8/16/iterations:1\n"
-    "BM_string_memcpy/176/8/32/iterations:1\n"
-    "BM_string_memcpy/176/16/1/iterations:1\n"
-    "BM_string_memcpy/176/16/2/iterations:1\n"
-    "BM_string_memcpy/176/16/4/iterations:1\n"
-    "BM_string_memcpy/176/16/8/iterations:1\n"
-    "BM_string_memcpy/176/16/16/iterations:1\n"
-    "BM_string_memcpy/176/16/32/iterations:1\n"
-    "BM_string_memcpy/176/32/1/iterations:1\n"
-    "BM_string_memcpy/176/32/2/iterations:1\n"
-    "BM_string_memcpy/176/32/4/iterations:1\n"
-    "BM_string_memcpy/176/32/8/iterations:1\n"
-    "BM_string_memcpy/176/32/16/iterations:1\n"
-    "BM_string_memcpy/176/32/32/iterations:1\n"
-    "BM_string_memcpy/192/0/0/iterations:1\n"
-    "BM_string_memcpy/192/1/1/iterations:1\n"
-    "BM_string_memcpy/192/1/2/iterations:1\n"
-    "BM_string_memcpy/192/1/4/iterations:1\n"
-    "BM_string_memcpy/192/1/8/iterations:1\n"
-    "BM_string_memcpy/192/1/16/iterations:1\n"
-    "BM_string_memcpy/192/1/32/iterations:1\n"
-    "BM_string_memcpy/192/2/1/iterations:1\n"
-    "BM_string_memcpy/192/2/2/iterations:1\n"
-    "BM_string_memcpy/192/2/4/iterations:1\n"
-    "BM_string_memcpy/192/2/8/iterations:1\n"
-    "BM_string_memcpy/192/2/16/iterations:1\n"
-    "BM_string_memcpy/192/2/32/iterations:1\n"
-    "BM_string_memcpy/192/4/1/iterations:1\n"
-    "BM_string_memcpy/192/4/2/iterations:1\n"
-    "BM_string_memcpy/192/4/4/iterations:1\n"
-    "BM_string_memcpy/192/4/8/iterations:1\n"
-    "BM_string_memcpy/192/4/16/iterations:1\n"
-    "BM_string_memcpy/192/4/32/iterations:1\n"
-    "BM_string_memcpy/192/8/1/iterations:1\n"
-    "BM_string_memcpy/192/8/2/iterations:1\n"
-    "BM_string_memcpy/192/8/4/iterations:1\n"
-    "BM_string_memcpy/192/8/8/iterations:1\n"
-    "BM_string_memcpy/192/8/16/iterations:1\n"
-    "BM_string_memcpy/192/8/32/iterations:1\n"
-    "BM_string_memcpy/192/16/1/iterations:1\n"
-    "BM_string_memcpy/192/16/2/iterations:1\n"
-    "BM_string_memcpy/192/16/4/iterations:1\n"
-    "BM_string_memcpy/192/16/8/iterations:1\n"
-    "BM_string_memcpy/192/16/16/iterations:1\n"
-    "BM_string_memcpy/192/16/32/iterations:1\n"
-    "BM_string_memcpy/192/32/1/iterations:1\n"
-    "BM_string_memcpy/192/32/2/iterations:1\n"
-    "BM_string_memcpy/192/32/4/iterations:1\n"
-    "BM_string_memcpy/192/32/8/iterations:1\n"
-    "BM_string_memcpy/192/32/16/iterations:1\n"
-    "BM_string_memcpy/192/32/32/iterations:1\n"
-    "BM_string_memcpy/208/0/0/iterations:1\n"
-    "BM_string_memcpy/208/1/1/iterations:1\n"
-    "BM_string_memcpy/208/1/2/iterations:1\n"
-    "BM_string_memcpy/208/1/4/iterations:1\n"
-    "BM_string_memcpy/208/1/8/iterations:1\n"
-    "BM_string_memcpy/208/1/16/iterations:1\n"
-    "BM_string_memcpy/208/1/32/iterations:1\n"
-    "BM_string_memcpy/208/2/1/iterations:1\n"
-    "BM_string_memcpy/208/2/2/iterations:1\n"
-    "BM_string_memcpy/208/2/4/iterations:1\n"
-    "BM_string_memcpy/208/2/8/iterations:1\n"
-    "BM_string_memcpy/208/2/16/iterations:1\n"
-    "BM_string_memcpy/208/2/32/iterations:1\n"
-    "BM_string_memcpy/208/4/1/iterations:1\n"
-    "BM_string_memcpy/208/4/2/iterations:1\n"
-    "BM_string_memcpy/208/4/4/iterations:1\n"
-    "BM_string_memcpy/208/4/8/iterations:1\n"
-    "BM_string_memcpy/208/4/16/iterations:1\n"
-    "BM_string_memcpy/208/4/32/iterations:1\n"
-    "BM_string_memcpy/208/8/1/iterations:1\n"
-    "BM_string_memcpy/208/8/2/iterations:1\n"
-    "BM_string_memcpy/208/8/4/iterations:1\n"
-    "BM_string_memcpy/208/8/8/iterations:1\n"
-    "BM_string_memcpy/208/8/16/iterations:1\n"
-    "BM_string_memcpy/208/8/32/iterations:1\n"
-    "BM_string_memcpy/208/16/1/iterations:1\n"
-    "BM_string_memcpy/208/16/2/iterations:1\n"
-    "BM_string_memcpy/208/16/4/iterations:1\n"
-    "BM_string_memcpy/208/16/8/iterations:1\n"
-    "BM_string_memcpy/208/16/16/iterations:1\n"
-    "BM_string_memcpy/208/16/32/iterations:1\n"
-    "BM_string_memcpy/208/32/1/iterations:1\n"
-    "BM_string_memcpy/208/32/2/iterations:1\n"
-    "BM_string_memcpy/208/32/4/iterations:1\n"
-    "BM_string_memcpy/208/32/8/iterations:1\n"
-    "BM_string_memcpy/208/32/16/iterations:1\n"
-    "BM_string_memcpy/208/32/32/iterations:1\n"
-    "BM_string_memcpy/224/0/0/iterations:1\n"
-    "BM_string_memcpy/224/1/1/iterations:1\n"
-    "BM_string_memcpy/224/1/2/iterations:1\n"
-    "BM_string_memcpy/224/1/4/iterations:1\n"
-    "BM_string_memcpy/224/1/8/iterations:1\n"
-    "BM_string_memcpy/224/1/16/iterations:1\n"
-    "BM_string_memcpy/224/1/32/iterations:1\n"
-    "BM_string_memcpy/224/2/1/iterations:1\n"
-    "BM_string_memcpy/224/2/2/iterations:1\n"
-    "BM_string_memcpy/224/2/4/iterations:1\n"
-    "BM_string_memcpy/224/2/8/iterations:1\n"
-    "BM_string_memcpy/224/2/16/iterations:1\n"
-    "BM_string_memcpy/224/2/32/iterations:1\n"
-    "BM_string_memcpy/224/4/1/iterations:1\n"
-    "BM_string_memcpy/224/4/2/iterations:1\n"
-    "BM_string_memcpy/224/4/4/iterations:1\n"
-    "BM_string_memcpy/224/4/8/iterations:1\n"
-    "BM_string_memcpy/224/4/16/iterations:1\n"
-    "BM_string_memcpy/224/4/32/iterations:1\n"
-    "BM_string_memcpy/224/8/1/iterations:1\n"
-    "BM_string_memcpy/224/8/2/iterations:1\n"
-    "BM_string_memcpy/224/8/4/iterations:1\n"
-    "BM_string_memcpy/224/8/8/iterations:1\n"
-    "BM_string_memcpy/224/8/16/iterations:1\n"
-    "BM_string_memcpy/224/8/32/iterations:1\n"
-    "BM_string_memcpy/224/16/1/iterations:1\n"
-    "BM_string_memcpy/224/16/2/iterations:1\n"
-    "BM_string_memcpy/224/16/4/iterations:1\n"
-    "BM_string_memcpy/224/16/8/iterations:1\n"
-    "BM_string_memcpy/224/16/16/iterations:1\n"
-    "BM_string_memcpy/224/16/32/iterations:1\n"
-    "BM_string_memcpy/224/32/1/iterations:1\n"
-    "BM_string_memcpy/224/32/2/iterations:1\n"
-    "BM_string_memcpy/224/32/4/iterations:1\n"
-    "BM_string_memcpy/224/32/8/iterations:1\n"
-    "BM_string_memcpy/224/32/16/iterations:1\n"
-    "BM_string_memcpy/224/32/32/iterations:1\n"
-    "BM_string_memcpy/240/0/0/iterations:1\n"
-    "BM_string_memcpy/240/1/1/iterations:1\n"
-    "BM_string_memcpy/240/1/2/iterations:1\n"
-    "BM_string_memcpy/240/1/4/iterations:1\n"
-    "BM_string_memcpy/240/1/8/iterations:1\n"
-    "BM_string_memcpy/240/1/16/iterations:1\n"
-    "BM_string_memcpy/240/1/32/iterations:1\n"
-    "BM_string_memcpy/240/2/1/iterations:1\n"
-    "BM_string_memcpy/240/2/2/iterations:1\n"
-    "BM_string_memcpy/240/2/4/iterations:1\n"
-    "BM_string_memcpy/240/2/8/iterations:1\n"
-    "BM_string_memcpy/240/2/16/iterations:1\n"
-    "BM_string_memcpy/240/2/32/iterations:1\n"
-    "BM_string_memcpy/240/4/1/iterations:1\n"
-    "BM_string_memcpy/240/4/2/iterations:1\n"
-    "BM_string_memcpy/240/4/4/iterations:1\n"
-    "BM_string_memcpy/240/4/8/iterations:1\n"
-    "BM_string_memcpy/240/4/16/iterations:1\n"
-    "BM_string_memcpy/240/4/32/iterations:1\n"
-    "BM_string_memcpy/240/8/1/iterations:1\n"
-    "BM_string_memcpy/240/8/2/iterations:1\n"
-    "BM_string_memcpy/240/8/4/iterations:1\n"
-    "BM_string_memcpy/240/8/8/iterations:1\n"
-    "BM_string_memcpy/240/8/16/iterations:1\n"
-    "BM_string_memcpy/240/8/32/iterations:1\n"
-    "BM_string_memcpy/240/16/1/iterations:1\n"
-    "BM_string_memcpy/240/16/2/iterations:1\n"
-    "BM_string_memcpy/240/16/4/iterations:1\n"
-    "BM_string_memcpy/240/16/8/iterations:1\n"
-    "BM_string_memcpy/240/16/16/iterations:1\n"
-    "BM_string_memcpy/240/16/32/iterations:1\n"
-    "BM_string_memcpy/240/32/1/iterations:1\n"
-    "BM_string_memcpy/240/32/2/iterations:1\n"
-    "BM_string_memcpy/240/32/4/iterations:1\n"
-    "BM_string_memcpy/240/32/8/iterations:1\n"
-    "BM_string_memcpy/240/32/16/iterations:1\n"
-    "BM_string_memcpy/240/32/32/iterations:1\n"
-    "BM_string_memcpy/256/0/0/iterations:1\n"
-    "BM_string_memcpy/256/1/1/iterations:1\n"
-    "BM_string_memcpy/256/1/2/iterations:1\n"
-    "BM_string_memcpy/256/1/4/iterations:1\n"
-    "BM_string_memcpy/256/1/8/iterations:1\n"
-    "BM_string_memcpy/256/1/16/iterations:1\n"
-    "BM_string_memcpy/256/1/32/iterations:1\n"
-    "BM_string_memcpy/256/2/1/iterations:1\n"
-    "BM_string_memcpy/256/2/2/iterations:1\n"
-    "BM_string_memcpy/256/2/4/iterations:1\n"
-    "BM_string_memcpy/256/2/8/iterations:1\n"
-    "BM_string_memcpy/256/2/16/iterations:1\n"
-    "BM_string_memcpy/256/2/32/iterations:1\n"
-    "BM_string_memcpy/256/4/1/iterations:1\n"
-    "BM_string_memcpy/256/4/2/iterations:1\n"
-    "BM_string_memcpy/256/4/4/iterations:1\n"
-    "BM_string_memcpy/256/4/8/iterations:1\n"
-    "BM_string_memcpy/256/4/16/iterations:1\n"
-    "BM_string_memcpy/256/4/32/iterations:1\n"
-    "BM_string_memcpy/256/8/1/iterations:1\n"
-    "BM_string_memcpy/256/8/2/iterations:1\n"
-    "BM_string_memcpy/256/8/4/iterations:1\n"
-    "BM_string_memcpy/256/8/8/iterations:1\n"
-    "BM_string_memcpy/256/8/16/iterations:1\n"
-    "BM_string_memcpy/256/8/32/iterations:1\n"
-    "BM_string_memcpy/256/16/1/iterations:1\n"
-    "BM_string_memcpy/256/16/2/iterations:1\n"
-    "BM_string_memcpy/256/16/4/iterations:1\n"
-    "BM_string_memcpy/256/16/8/iterations:1\n"
-    "BM_string_memcpy/256/16/16/iterations:1\n"
-    "BM_string_memcpy/256/16/32/iterations:1\n"
-    "BM_string_memcpy/256/32/1/iterations:1\n"
-    "BM_string_memcpy/256/32/2/iterations:1\n"
-    "BM_string_memcpy/256/32/4/iterations:1\n"
-    "BM_string_memcpy/256/32/8/iterations:1\n"
-    "BM_string_memcpy/256/32/16/iterations:1\n"
-    "BM_string_memcpy/256/32/32/iterations:1\n"
-    "BM_string_memcpy/512/0/0/iterations:1\n"
-    "BM_string_memcpy/512/1/1/iterations:1\n"
-    "BM_string_memcpy/512/1/2/iterations:1\n"
-    "BM_string_memcpy/512/1/4/iterations:1\n"
-    "BM_string_memcpy/512/1/8/iterations:1\n"
-    "BM_string_memcpy/512/1/16/iterations:1\n"
-    "BM_string_memcpy/512/1/32/iterations:1\n"
-    "BM_string_memcpy/512/2/1/iterations:1\n"
-    "BM_string_memcpy/512/2/2/iterations:1\n"
-    "BM_string_memcpy/512/2/4/iterations:1\n"
-    "BM_string_memcpy/512/2/8/iterations:1\n"
-    "BM_string_memcpy/512/2/16/iterations:1\n"
-    "BM_string_memcpy/512/2/32/iterations:1\n"
-    "BM_string_memcpy/512/4/1/iterations:1\n"
-    "BM_string_memcpy/512/4/2/iterations:1\n"
-    "BM_string_memcpy/512/4/4/iterations:1\n"
-    "BM_string_memcpy/512/4/8/iterations:1\n"
-    "BM_string_memcpy/512/4/16/iterations:1\n"
-    "BM_string_memcpy/512/4/32/iterations:1\n"
-    "BM_string_memcpy/512/8/1/iterations:1\n"
-    "BM_string_memcpy/512/8/2/iterations:1\n"
-    "BM_string_memcpy/512/8/4/iterations:1\n"
-    "BM_string_memcpy/512/8/8/iterations:1\n"
-    "BM_string_memcpy/512/8/16/iterations:1\n"
-    "BM_string_memcpy/512/8/32/iterations:1\n"
-    "BM_string_memcpy/512/16/1/iterations:1\n"
-    "BM_string_memcpy/512/16/2/iterations:1\n"
-    "BM_string_memcpy/512/16/4/iterations:1\n"
-    "BM_string_memcpy/512/16/8/iterations:1\n"
-    "BM_string_memcpy/512/16/16/iterations:1\n"
-    "BM_string_memcpy/512/16/32/iterations:1\n"
-    "BM_string_memcpy/512/32/1/iterations:1\n"
-    "BM_string_memcpy/512/32/2/iterations:1\n"
-    "BM_string_memcpy/512/32/4/iterations:1\n"
-    "BM_string_memcpy/512/32/8/iterations:1\n"
-    "BM_string_memcpy/512/32/16/iterations:1\n"
-    "BM_string_memcpy/512/32/32/iterations:1\n"
-    "BM_string_memcpy/1024/0/0/iterations:1\n"
-    "BM_string_memcpy/1024/1/1/iterations:1\n"
-    "BM_string_memcpy/1024/1/2/iterations:1\n"
-    "BM_string_memcpy/1024/1/4/iterations:1\n"
-    "BM_string_memcpy/1024/1/8/iterations:1\n"
-    "BM_string_memcpy/1024/1/16/iterations:1\n"
-    "BM_string_memcpy/1024/1/32/iterations:1\n"
-    "BM_string_memcpy/1024/2/1/iterations:1\n"
-    "BM_string_memcpy/1024/2/2/iterations:1\n"
-    "BM_string_memcpy/1024/2/4/iterations:1\n"
-    "BM_string_memcpy/1024/2/8/iterations:1\n"
-    "BM_string_memcpy/1024/2/16/iterations:1\n"
-    "BM_string_memcpy/1024/2/32/iterations:1\n"
-    "BM_string_memcpy/1024/4/1/iterations:1\n"
-    "BM_string_memcpy/1024/4/2/iterations:1\n"
-    "BM_string_memcpy/1024/4/4/iterations:1\n"
-    "BM_string_memcpy/1024/4/8/iterations:1\n"
-    "BM_string_memcpy/1024/4/16/iterations:1\n"
-    "BM_string_memcpy/1024/4/32/iterations:1\n"
-    "BM_string_memcpy/1024/8/1/iterations:1\n"
-    "BM_string_memcpy/1024/8/2/iterations:1\n"
-    "BM_string_memcpy/1024/8/4/iterations:1\n"
-    "BM_string_memcpy/1024/8/8/iterations:1\n"
-    "BM_string_memcpy/1024/8/16/iterations:1\n"
-    "BM_string_memcpy/1024/8/32/iterations:1\n"
-    "BM_string_memcpy/1024/16/1/iterations:1\n"
-    "BM_string_memcpy/1024/16/2/iterations:1\n"
-    "BM_string_memcpy/1024/16/4/iterations:1\n"
-    "BM_string_memcpy/1024/16/8/iterations:1\n"
-    "BM_string_memcpy/1024/16/16/iterations:1\n"
-    "BM_string_memcpy/1024/16/32/iterations:1\n"
-    "BM_string_memcpy/1024/32/1/iterations:1\n"
-    "BM_string_memcpy/1024/32/2/iterations:1\n"
-    "BM_string_memcpy/1024/32/4/iterations:1\n"
-    "BM_string_memcpy/1024/32/8/iterations:1\n"
-    "BM_string_memcpy/1024/32/16/iterations:1\n"
-    "BM_string_memcpy/1024/32/32/iterations:1\n"
-    "BM_string_memcpy/8192/0/0/iterations:1\n"
-    "BM_string_memcpy/8192/1/1/iterations:1\n"
-    "BM_string_memcpy/8192/1/2/iterations:1\n"
-    "BM_string_memcpy/8192/1/4/iterations:1\n"
-    "BM_string_memcpy/8192/1/8/iterations:1\n"
-    "BM_string_memcpy/8192/1/16/iterations:1\n"
-    "BM_string_memcpy/8192/1/32/iterations:1\n"
-    "BM_string_memcpy/8192/2/1/iterations:1\n"
-    "BM_string_memcpy/8192/2/2/iterations:1\n"
-    "BM_string_memcpy/8192/2/4/iterations:1\n"
-    "BM_string_memcpy/8192/2/8/iterations:1\n"
-    "BM_string_memcpy/8192/2/16/iterations:1\n"
-    "BM_string_memcpy/8192/2/32/iterations:1\n"
-    "BM_string_memcpy/8192/4/1/iterations:1\n"
-    "BM_string_memcpy/8192/4/2/iterations:1\n"
-    "BM_string_memcpy/8192/4/4/iterations:1\n"
-    "BM_string_memcpy/8192/4/8/iterations:1\n"
-    "BM_string_memcpy/8192/4/16/iterations:1\n"
-    "BM_string_memcpy/8192/4/32/iterations:1\n"
-    "BM_string_memcpy/8192/8/1/iterations:1\n"
-    "BM_string_memcpy/8192/8/2/iterations:1\n"
-    "BM_string_memcpy/8192/8/4/iterations:1\n"
-    "BM_string_memcpy/8192/8/8/iterations:1\n"
-    "BM_string_memcpy/8192/8/16/iterations:1\n"
-    "BM_string_memcpy/8192/8/32/iterations:1\n"
-    "BM_string_memcpy/8192/16/1/iterations:1\n"
-    "BM_string_memcpy/8192/16/2/iterations:1\n"
-    "BM_string_memcpy/8192/16/4/iterations:1\n"
-    "BM_string_memcpy/8192/16/8/iterations:1\n"
-    "BM_string_memcpy/8192/16/16/iterations:1\n"
-    "BM_string_memcpy/8192/16/32/iterations:1\n"
-    "BM_string_memcpy/8192/32/1/iterations:1\n"
-    "BM_string_memcpy/8192/32/2/iterations:1\n"
-    "BM_string_memcpy/8192/32/4/iterations:1\n"
-    "BM_string_memcpy/8192/32/8/iterations:1\n"
-    "BM_string_memcpy/8192/32/16/iterations:1\n"
-    "BM_string_memcpy/8192/32/32/iterations:1\n"
-    "BM_string_memcpy/16384/0/0/iterations:1\n"
-    "BM_string_memcpy/16384/1/1/iterations:1\n"
-    "BM_string_memcpy/16384/1/2/iterations:1\n"
-    "BM_string_memcpy/16384/1/4/iterations:1\n"
-    "BM_string_memcpy/16384/1/8/iterations:1\n"
-    "BM_string_memcpy/16384/1/16/iterations:1\n"
-    "BM_string_memcpy/16384/1/32/iterations:1\n"
-    "BM_string_memcpy/16384/2/1/iterations:1\n"
-    "BM_string_memcpy/16384/2/2/iterations:1\n"
-    "BM_string_memcpy/16384/2/4/iterations:1\n"
-    "BM_string_memcpy/16384/2/8/iterations:1\n"
-    "BM_string_memcpy/16384/2/16/iterations:1\n"
-    "BM_string_memcpy/16384/2/32/iterations:1\n"
-    "BM_string_memcpy/16384/4/1/iterations:1\n"
-    "BM_string_memcpy/16384/4/2/iterations:1\n"
-    "BM_string_memcpy/16384/4/4/iterations:1\n"
-    "BM_string_memcpy/16384/4/8/iterations:1\n"
-    "BM_string_memcpy/16384/4/16/iterations:1\n"
-    "BM_string_memcpy/16384/4/32/iterations:1\n"
-    "BM_string_memcpy/16384/8/1/iterations:1\n"
-    "BM_string_memcpy/16384/8/2/iterations:1\n"
-    "BM_string_memcpy/16384/8/4/iterations:1\n"
-    "BM_string_memcpy/16384/8/8/iterations:1\n"
-    "BM_string_memcpy/16384/8/16/iterations:1\n"
-    "BM_string_memcpy/16384/8/32/iterations:1\n"
-    "BM_string_memcpy/16384/16/1/iterations:1\n"
-    "BM_string_memcpy/16384/16/2/iterations:1\n"
-    "BM_string_memcpy/16384/16/4/iterations:1\n"
-    "BM_string_memcpy/16384/16/8/iterations:1\n"
-    "BM_string_memcpy/16384/16/16/iterations:1\n"
-    "BM_string_memcpy/16384/16/32/iterations:1\n"
-    "BM_string_memcpy/16384/32/1/iterations:1\n"
-    "BM_string_memcpy/16384/32/2/iterations:1\n"
-    "BM_string_memcpy/16384/32/4/iterations:1\n"
-    "BM_string_memcpy/16384/32/8/iterations:1\n"
-    "BM_string_memcpy/16384/32/16/iterations:1\n"
-    "BM_string_memcpy/16384/32/32/iterations:1\n"
-    "BM_string_memcpy/32768/0/0/iterations:1\n"
-    "BM_string_memcpy/32768/1/1/iterations:1\n"
-    "BM_string_memcpy/32768/1/2/iterations:1\n"
-    "BM_string_memcpy/32768/1/4/iterations:1\n"
-    "BM_string_memcpy/32768/1/8/iterations:1\n"
-    "BM_string_memcpy/32768/1/16/iterations:1\n"
-    "BM_string_memcpy/32768/1/32/iterations:1\n"
-    "BM_string_memcpy/32768/2/1/iterations:1\n"
-    "BM_string_memcpy/32768/2/2/iterations:1\n"
-    "BM_string_memcpy/32768/2/4/iterations:1\n"
-    "BM_string_memcpy/32768/2/8/iterations:1\n"
-    "BM_string_memcpy/32768/2/16/iterations:1\n"
-    "BM_string_memcpy/32768/2/32/iterations:1\n"
-    "BM_string_memcpy/32768/4/1/iterations:1\n"
-    "BM_string_memcpy/32768/4/2/iterations:1\n"
-    "BM_string_memcpy/32768/4/4/iterations:1\n"
-    "BM_string_memcpy/32768/4/8/iterations:1\n"
-    "BM_string_memcpy/32768/4/16/iterations:1\n"
-    "BM_string_memcpy/32768/4/32/iterations:1\n"
-    "BM_string_memcpy/32768/8/1/iterations:1\n"
-    "BM_string_memcpy/32768/8/2/iterations:1\n"
-    "BM_string_memcpy/32768/8/4/iterations:1\n"
-    "BM_string_memcpy/32768/8/8/iterations:1\n"
-    "BM_string_memcpy/32768/8/16/iterations:1\n"
-    "BM_string_memcpy/32768/8/32/iterations:1\n"
-    "BM_string_memcpy/32768/16/1/iterations:1\n"
-    "BM_string_memcpy/32768/16/2/iterations:1\n"
-    "BM_string_memcpy/32768/16/4/iterations:1\n"
-    "BM_string_memcpy/32768/16/8/iterations:1\n"
-    "BM_string_memcpy/32768/16/16/iterations:1\n"
-    "BM_string_memcpy/32768/16/32/iterations:1\n"
-    "BM_string_memcpy/32768/32/1/iterations:1\n"
-    "BM_string_memcpy/32768/32/2/iterations:1\n"
-    "BM_string_memcpy/32768/32/4/iterations:1\n"
-    "BM_string_memcpy/32768/32/8/iterations:1\n"
-    "BM_string_memcpy/32768/32/16/iterations:1\n"
-    "BM_string_memcpy/32768/32/32/iterations:1\n"
-    "BM_string_memcpy/65536/0/0/iterations:1\n"
-    "BM_string_memcpy/65536/1/1/iterations:1\n"
-    "BM_string_memcpy/65536/1/2/iterations:1\n"
-    "BM_string_memcpy/65536/1/4/iterations:1\n"
-    "BM_string_memcpy/65536/1/8/iterations:1\n"
-    "BM_string_memcpy/65536/1/16/iterations:1\n"
-    "BM_string_memcpy/65536/1/32/iterations:1\n"
-    "BM_string_memcpy/65536/2/1/iterations:1\n"
-    "BM_string_memcpy/65536/2/2/iterations:1\n"
-    "BM_string_memcpy/65536/2/4/iterations:1\n"
-    "BM_string_memcpy/65536/2/8/iterations:1\n"
-    "BM_string_memcpy/65536/2/16/iterations:1\n"
-    "BM_string_memcpy/65536/2/32/iterations:1\n"
-    "BM_string_memcpy/65536/4/1/iterations:1\n"
-    "BM_string_memcpy/65536/4/2/iterations:1\n"
-    "BM_string_memcpy/65536/4/4/iterations:1\n"
-    "BM_string_memcpy/65536/4/8/iterations:1\n"
-    "BM_string_memcpy/65536/4/16/iterations:1\n"
-    "BM_string_memcpy/65536/4/32/iterations:1\n"
-    "BM_string_memcpy/65536/8/1/iterations:1\n"
-    "BM_string_memcpy/65536/8/2/iterations:1\n"
-    "BM_string_memcpy/65536/8/4/iterations:1\n"
-    "BM_string_memcpy/65536/8/8/iterations:1\n"
-    "BM_string_memcpy/65536/8/16/iterations:1\n"
-    "BM_string_memcpy/65536/8/32/iterations:1\n"
-    "BM_string_memcpy/65536/16/1/iterations:1\n"
-    "BM_string_memcpy/65536/16/2/iterations:1\n"
-    "BM_string_memcpy/65536/16/4/iterations:1\n"
-    "BM_string_memcpy/65536/16/8/iterations:1\n"
-    "BM_string_memcpy/65536/16/16/iterations:1\n"
-    "BM_string_memcpy/65536/16/32/iterations:1\n"
-    "BM_string_memcpy/65536/32/1/iterations:1\n"
-    "BM_string_memcpy/65536/32/2/iterations:1\n"
-    "BM_string_memcpy/65536/32/4/iterations:1\n"
-    "BM_string_memcpy/65536/32/8/iterations:1\n"
-    "BM_string_memcpy/65536/32/16/iterations:1\n"
-    "BM_string_memcpy/65536/32/32/iterations:1\n"
-    "BM_string_memcpy/131072/0/0/iterations:1\n"
-    "BM_string_memcpy/131072/1/1/iterations:1\n"
-    "BM_string_memcpy/131072/1/2/iterations:1\n"
-    "BM_string_memcpy/131072/1/4/iterations:1\n"
-    "BM_string_memcpy/131072/1/8/iterations:1\n"
-    "BM_string_memcpy/131072/1/16/iterations:1\n"
-    "BM_string_memcpy/131072/1/32/iterations:1\n"
-    "BM_string_memcpy/131072/2/1/iterations:1\n"
-    "BM_string_memcpy/131072/2/2/iterations:1\n"
-    "BM_string_memcpy/131072/2/4/iterations:1\n"
-    "BM_string_memcpy/131072/2/8/iterations:1\n"
-    "BM_string_memcpy/131072/2/16/iterations:1\n"
-    "BM_string_memcpy/131072/2/32/iterations:1\n"
-    "BM_string_memcpy/131072/4/1/iterations:1\n"
-    "BM_string_memcpy/131072/4/2/iterations:1\n"
-    "BM_string_memcpy/131072/4/4/iterations:1\n"
-    "BM_string_memcpy/131072/4/8/iterations:1\n"
-    "BM_string_memcpy/131072/4/16/iterations:1\n"
-    "BM_string_memcpy/131072/4/32/iterations:1\n"
-    "BM_string_memcpy/131072/8/1/iterations:1\n"
-    "BM_string_memcpy/131072/8/2/iterations:1\n"
-    "BM_string_memcpy/131072/8/4/iterations:1\n"
-    "BM_string_memcpy/131072/8/8/iterations:1\n"
-    "BM_string_memcpy/131072/8/16/iterations:1\n"
-    "BM_string_memcpy/131072/8/32/iterations:1\n"
-    "BM_string_memcpy/131072/16/1/iterations:1\n"
-    "BM_string_memcpy/131072/16/2/iterations:1\n"
-    "BM_string_memcpy/131072/16/4/iterations:1\n"
-    "BM_string_memcpy/131072/16/8/iterations:1\n"
-    "BM_string_memcpy/131072/16/16/iterations:1\n"
-    "BM_string_memcpy/131072/16/32/iterations:1\n"
-    "BM_string_memcpy/131072/32/1/iterations:1\n"
-    "BM_string_memcpy/131072/32/2/iterations:1\n"
-    "BM_string_memcpy/131072/32/4/iterations:1\n"
-    "BM_string_memcpy/131072/32/8/iterations:1\n"
-    "BM_string_memcpy/131072/32/16/iterations:1\n"
-    "BM_string_memcpy/131072/32/32/iterations:1\n"
-    "BM_string_memcpy/262144/0/0/iterations:1\n"
-    "BM_string_memcpy/262144/1/1/iterations:1\n"
-    "BM_string_memcpy/262144/1/2/iterations:1\n"
-    "BM_string_memcpy/262144/1/4/iterations:1\n"
-    "BM_string_memcpy/262144/1/8/iterations:1\n"
-    "BM_string_memcpy/262144/1/16/iterations:1\n"
-    "BM_string_memcpy/262144/1/32/iterations:1\n"
-    "BM_string_memcpy/262144/2/1/iterations:1\n"
-    "BM_string_memcpy/262144/2/2/iterations:1\n"
-    "BM_string_memcpy/262144/2/4/iterations:1\n"
-    "BM_string_memcpy/262144/2/8/iterations:1\n"
-    "BM_string_memcpy/262144/2/16/iterations:1\n"
-    "BM_string_memcpy/262144/2/32/iterations:1\n"
-    "BM_string_memcpy/262144/4/1/iterations:1\n"
-    "BM_string_memcpy/262144/4/2/iterations:1\n"
-    "BM_string_memcpy/262144/4/4/iterations:1\n"
-    "BM_string_memcpy/262144/4/8/iterations:1\n"
-    "BM_string_memcpy/262144/4/16/iterations:1\n"
-    "BM_string_memcpy/262144/4/32/iterations:1\n"
-    "BM_string_memcpy/262144/8/1/iterations:1\n"
-    "BM_string_memcpy/262144/8/2/iterations:1\n"
-    "BM_string_memcpy/262144/8/4/iterations:1\n"
-    "BM_string_memcpy/262144/8/8/iterations:1\n"
-    "BM_string_memcpy/262144/8/16/iterations:1\n"
-    "BM_string_memcpy/262144/8/32/iterations:1\n"
-    "BM_string_memcpy/262144/16/1/iterations:1\n"
-    "BM_string_memcpy/262144/16/2/iterations:1\n"
-    "BM_string_memcpy/262144/16/4/iterations:1\n"
-    "BM_string_memcpy/262144/16/8/iterations:1\n"
-    "BM_string_memcpy/262144/16/16/iterations:1\n"
-    "BM_string_memcpy/262144/16/32/iterations:1\n"
-    "BM_string_memcpy/262144/32/1/iterations:1\n"
-    "BM_string_memcpy/262144/32/2/iterations:1\n"
-    "BM_string_memcpy/262144/32/4/iterations:1\n"
-    "BM_string_memcpy/262144/32/8/iterations:1\n"
-    "BM_string_memcpy/262144/32/16/iterations:1\n"
-    "BM_string_memcpy/262144/32/32/iterations:1\n"
-    "BM_string_memcpy/524288/0/0/iterations:1\n"
-    "BM_string_memcpy/524288/1/1/iterations:1\n"
-    "BM_string_memcpy/524288/1/2/iterations:1\n"
-    "BM_string_memcpy/524288/1/4/iterations:1\n"
-    "BM_string_memcpy/524288/1/8/iterations:1\n"
-    "BM_string_memcpy/524288/1/16/iterations:1\n"
-    "BM_string_memcpy/524288/1/32/iterations:1\n"
-    "BM_string_memcpy/524288/2/1/iterations:1\n"
-    "BM_string_memcpy/524288/2/2/iterations:1\n"
-    "BM_string_memcpy/524288/2/4/iterations:1\n"
-    "BM_string_memcpy/524288/2/8/iterations:1\n"
-    "BM_string_memcpy/524288/2/16/iterations:1\n"
-    "BM_string_memcpy/524288/2/32/iterations:1\n"
-    "BM_string_memcpy/524288/4/1/iterations:1\n"
-    "BM_string_memcpy/524288/4/2/iterations:1\n"
-    "BM_string_memcpy/524288/4/4/iterations:1\n"
-    "BM_string_memcpy/524288/4/8/iterations:1\n"
-    "BM_string_memcpy/524288/4/16/iterations:1\n"
-    "BM_string_memcpy/524288/4/32/iterations:1\n"
-    "BM_string_memcpy/524288/8/1/iterations:1\n"
-    "BM_string_memcpy/524288/8/2/iterations:1\n"
-    "BM_string_memcpy/524288/8/4/iterations:1\n"
-    "BM_string_memcpy/524288/8/8/iterations:1\n"
-    "BM_string_memcpy/524288/8/16/iterations:1\n"
-    "BM_string_memcpy/524288/8/32/iterations:1\n"
-    "BM_string_memcpy/524288/16/1/iterations:1\n"
-    "BM_string_memcpy/524288/16/2/iterations:1\n"
-    "BM_string_memcpy/524288/16/4/iterations:1\n"
-    "BM_string_memcpy/524288/16/8/iterations:1\n"
-    "BM_string_memcpy/524288/16/16/iterations:1\n"
-    "BM_string_memcpy/524288/16/32/iterations:1\n"
-    "BM_string_memcpy/524288/32/1/iterations:1\n"
-    "BM_string_memcpy/524288/32/2/iterations:1\n"
-    "BM_string_memcpy/524288/32/4/iterations:1\n"
-    "BM_string_memcpy/524288/32/8/iterations:1\n"
-    "BM_string_memcpy/524288/32/16/iterations:1\n"
-    "BM_string_memcpy/524288/32/32/iterations:1\n"
-    "BM_string_memcpy/1048576/0/0/iterations:1\n"
-    "BM_string_memcpy/1048576/1/1/iterations:1\n"
-    "BM_string_memcpy/1048576/1/2/iterations:1\n"
-    "BM_string_memcpy/1048576/1/4/iterations:1\n"
-    "BM_string_memcpy/1048576/1/8/iterations:1\n"
-    "BM_string_memcpy/1048576/1/16/iterations:1\n"
-    "BM_string_memcpy/1048576/1/32/iterations:1\n"
-    "BM_string_memcpy/1048576/2/1/iterations:1\n"
-    "BM_string_memcpy/1048576/2/2/iterations:1\n"
-    "BM_string_memcpy/1048576/2/4/iterations:1\n"
-    "BM_string_memcpy/1048576/2/8/iterations:1\n"
-    "BM_string_memcpy/1048576/2/16/iterations:1\n"
-    "BM_string_memcpy/1048576/2/32/iterations:1\n"
-    "BM_string_memcpy/1048576/4/1/iterations:1\n"
-    "BM_string_memcpy/1048576/4/2/iterations:1\n"
-    "BM_string_memcpy/1048576/4/4/iterations:1\n"
-    "BM_string_memcpy/1048576/4/8/iterations:1\n"
-    "BM_string_memcpy/1048576/4/16/iterations:1\n"
-    "BM_string_memcpy/1048576/4/32/iterations:1\n"
-    "BM_string_memcpy/1048576/8/1/iterations:1\n"
-    "BM_string_memcpy/1048576/8/2/iterations:1\n"
-    "BM_string_memcpy/1048576/8/4/iterations:1\n"
-    "BM_string_memcpy/1048576/8/8/iterations:1\n"
-    "BM_string_memcpy/1048576/8/16/iterations:1\n"
-    "BM_string_memcpy/1048576/8/32/iterations:1\n"
-    "BM_string_memcpy/1048576/16/1/iterations:1\n"
-    "BM_string_memcpy/1048576/16/2/iterations:1\n"
-    "BM_string_memcpy/1048576/16/4/iterations:1\n"
-    "BM_string_memcpy/1048576/16/8/iterations:1\n"
-    "BM_string_memcpy/1048576/16/16/iterations:1\n"
-    "BM_string_memcpy/1048576/16/32/iterations:1\n"
-    "BM_string_memcpy/1048576/32/1/iterations:1\n"
-    "BM_string_memcpy/1048576/32/2/iterations:1\n"
-    "BM_string_memcpy/1048576/32/4/iterations:1\n"
-    "BM_string_memcpy/1048576/32/8/iterations:1\n"
-    "BM_string_memcpy/1048576/32/16/iterations:1\n"
-    "BM_string_memcpy/1048576/32/32/iterations:1\n"
-    "BM_string_memcpy/2097152/0/0/iterations:1\n"
-    "BM_string_memcpy/2097152/1/1/iterations:1\n"
-    "BM_string_memcpy/2097152/1/2/iterations:1\n"
-    "BM_string_memcpy/2097152/1/4/iterations:1\n"
-    "BM_string_memcpy/2097152/1/8/iterations:1\n"
-    "BM_string_memcpy/2097152/1/16/iterations:1\n"
-    "BM_string_memcpy/2097152/1/32/iterations:1\n"
-    "BM_string_memcpy/2097152/2/1/iterations:1\n"
-    "BM_string_memcpy/2097152/2/2/iterations:1\n"
-    "BM_string_memcpy/2097152/2/4/iterations:1\n"
-    "BM_string_memcpy/2097152/2/8/iterations:1\n"
-    "BM_string_memcpy/2097152/2/16/iterations:1\n"
-    "BM_string_memcpy/2097152/2/32/iterations:1\n"
-    "BM_string_memcpy/2097152/4/1/iterations:1\n"
-    "BM_string_memcpy/2097152/4/2/iterations:1\n"
-    "BM_string_memcpy/2097152/4/4/iterations:1\n"
-    "BM_string_memcpy/2097152/4/8/iterations:1\n"
-    "BM_string_memcpy/2097152/4/16/iterations:1\n"
-    "BM_string_memcpy/2097152/4/32/iterations:1\n"
-    "BM_string_memcpy/2097152/8/1/iterations:1\n"
-    "BM_string_memcpy/2097152/8/2/iterations:1\n"
-    "BM_string_memcpy/2097152/8/4/iterations:1\n"
-    "BM_string_memcpy/2097152/8/8/iterations:1\n"
-    "BM_string_memcpy/2097152/8/16/iterations:1\n"
-    "BM_string_memcpy/2097152/8/32/iterations:1\n"
-    "BM_string_memcpy/2097152/16/1/iterations:1\n"
-    "BM_string_memcpy/2097152/16/2/iterations:1\n"
-    "BM_string_memcpy/2097152/16/4/iterations:1\n"
-    "BM_string_memcpy/2097152/16/8/iterations:1\n"
-    "BM_string_memcpy/2097152/16/16/iterations:1\n"
-    "BM_string_memcpy/2097152/16/32/iterations:1\n"
-    "BM_string_memcpy/2097152/32/1/iterations:1\n"
-    "BM_string_memcpy/2097152/32/2/iterations:1\n"
-    "BM_string_memcpy/2097152/32/4/iterations:1\n"
-    "BM_string_memcpy/2097152/32/8/iterations:1\n"
-    "BM_string_memcpy/2097152/32/16/iterations:1\n"
-    "BM_string_memcpy/2097152/32/32/iterations:1\n";
+      "BM_string_strcpy/8/0/0/iterations:1\n"
+      "BM_string_strcpy/16/0/0/iterations:1\n"
+      "BM_string_strcpy/32/0/0/iterations:1\n"
+      "BM_string_strcpy/64/0/0/iterations:1\n"
+      "BM_string_strcpy/512/0/0/iterations:1\n"
+      "BM_string_strcpy/1024/0/0/iterations:1\n"
+      "BM_string_strcpy/8192/0/0/iterations:1\n"
+      "BM_string_strcpy/16384/0/0/iterations:1\n"
+      "BM_string_strcpy/32768/0/0/iterations:1\n"
+      "BM_string_strcpy/65536/0/0/iterations:1\n"
+      "BM_string_strcpy/131072/0/0/iterations:1\n"
+      "BM_string_memcpy/1/0/0/iterations:1\n"
+      "BM_string_memcpy/2/0/0/iterations:1\n"
+      "BM_string_memcpy/3/0/0/iterations:1\n"
+      "BM_string_memcpy/4/0/0/iterations:1\n"
+      "BM_string_memcpy/5/0/0/iterations:1\n"
+      "BM_string_memcpy/6/0/0/iterations:1\n"
+      "BM_string_memcpy/7/0/0/iterations:1\n"
+      "BM_string_memcpy/8/0/0/iterations:1\n"
+      "BM_string_memcpy/9/0/0/iterations:1\n"
+      "BM_string_memcpy/10/0/0/iterations:1\n"
+      "BM_string_memcpy/11/0/0/iterations:1\n"
+      "BM_string_memcpy/12/0/0/iterations:1\n"
+      "BM_string_memcpy/13/0/0/iterations:1\n"
+      "BM_string_memcpy/14/0/0/iterations:1\n"
+      "BM_string_memcpy/15/0/0/iterations:1\n"
+      "BM_string_memcpy/16/0/0/iterations:1\n"
+      "BM_string_memcpy/24/0/0/iterations:1\n"
+      "BM_string_memcpy/32/0/0/iterations:1\n"
+      "BM_string_memcpy/40/0/0/iterations:1\n"
+      "BM_string_memcpy/48/0/0/iterations:1\n"
+      "BM_string_memcpy/56/0/0/iterations:1\n"
+      "BM_string_memcpy/64/0/0/iterations:1\n"
+      "BM_string_memcpy/72/0/0/iterations:1\n"
+      "BM_string_memcpy/80/0/0/iterations:1\n"
+      "BM_string_memcpy/88/0/0/iterations:1\n"
+      "BM_string_memcpy/96/0/0/iterations:1\n"
+      "BM_string_memcpy/104/0/0/iterations:1\n"
+      "BM_string_memcpy/112/0/0/iterations:1\n"
+      "BM_string_memcpy/120/0/0/iterations:1\n"
+      "BM_string_memcpy/128/0/0/iterations:1\n"
+      "BM_string_memcpy/136/0/0/iterations:1\n"
+      "BM_string_memcpy/144/0/0/iterations:1\n"
+      "BM_string_memcpy/160/0/0/iterations:1\n"
+      "BM_string_memcpy/176/0/0/iterations:1\n"
+      "BM_string_memcpy/192/0/0/iterations:1\n"
+      "BM_string_memcpy/208/0/0/iterations:1\n"
+      "BM_string_memcpy/224/0/0/iterations:1\n"
+      "BM_string_memcpy/240/0/0/iterations:1\n"
+      "BM_string_memcpy/256/0/0/iterations:1\n"
+      "BM_string_strcpy/512/0/0/iterations:1\n"
+      "BM_string_strcpy/1024/0/0/iterations:1\n"
+      "BM_string_strcpy/8192/0/0/iterations:1\n"
+      "BM_string_strcpy/16384/0/0/iterations:1\n"
+      "BM_string_strcpy/32768/0/0/iterations:1\n"
+      "BM_string_strcpy/65536/0/0/iterations:1\n"
+      "BM_string_strcpy/131072/0/0/iterations:1\n"
+      "BM_string_memcpy/262144/0/0/iterations:1\n"
+      "BM_string_memcpy/524288/0/0/iterations:1\n"
+      "BM_string_memcpy/1048576/0/0/iterations:1\n"
+      "BM_string_memcpy/2097152/0/0/iterations:1\n"
+      "BM_string_strcpy/1/0/0/iterations:1\n"
+      "BM_string_strcpy/2/0/0/iterations:1\n"
+      "BM_string_strcpy/3/0/0/iterations:1\n"
+      "BM_string_strcpy/4/0/0/iterations:1\n"
+      "BM_string_strcpy/5/0/0/iterations:1\n"
+      "BM_string_strcpy/6/0/0/iterations:1\n"
+      "BM_string_strcpy/7/0/0/iterations:1\n"
+      "BM_string_strcpy/8/0/0/iterations:1\n"
+      "BM_string_strcpy/9/0/0/iterations:1\n"
+      "BM_string_strcpy/10/0/0/iterations:1\n"
+      "BM_string_strcpy/11/0/0/iterations:1\n"
+      "BM_string_strcpy/12/0/0/iterations:1\n"
+      "BM_string_strcpy/13/0/0/iterations:1\n"
+      "BM_string_strcpy/14/0/0/iterations:1\n"
+      "BM_string_strcpy/15/0/0/iterations:1\n"
+      "BM_string_strcpy/16/0/0/iterations:1\n"
+      "BM_string_strcpy/24/0/0/iterations:1\n"
+      "BM_string_strcpy/32/0/0/iterations:1\n"
+      "BM_string_strcpy/40/0/0/iterations:1\n"
+      "BM_string_strcpy/48/0/0/iterations:1\n"
+      "BM_string_strcpy/56/0/0/iterations:1\n"
+      "BM_string_strcpy/64/0/0/iterations:1\n"
+      "BM_string_strcpy/72/0/0/iterations:1\n"
+      "BM_string_strcpy/80/0/0/iterations:1\n"
+      "BM_string_strcpy/88/0/0/iterations:1\n"
+      "BM_string_strcpy/96/0/0/iterations:1\n"
+      "BM_string_strcpy/104/0/0/iterations:1\n"
+      "BM_string_strcpy/112/0/0/iterations:1\n"
+      "BM_string_strcpy/120/0/0/iterations:1\n"
+      "BM_string_strcpy/128/0/0/iterations:1\n"
+      "BM_string_strcpy/136/0/0/iterations:1\n"
+      "BM_string_strcpy/144/0/0/iterations:1\n"
+      "BM_string_strcpy/160/0/0/iterations:1\n"
+      "BM_string_strcpy/176/0/0/iterations:1\n"
+      "BM_string_strcpy/192/0/0/iterations:1\n"
+      "BM_string_strcpy/208/0/0/iterations:1\n"
+      "BM_string_strcpy/224/0/0/iterations:1\n"
+      "BM_string_strcpy/240/0/0/iterations:1\n"
+      "BM_string_strcpy/256/0/0/iterations:1\n"
+      "BM_string_strcpy/512/0/0/iterations:1\n"
+      "BM_string_strcpy/1024/0/0/iterations:1\n"
+      "BM_string_strcpy/8192/0/0/iterations:1\n"
+      "BM_string_strcpy/16384/0/0/iterations:1\n"
+      "BM_string_strcpy/32768/0/0/iterations:1\n"
+      "BM_string_strcpy/65536/0/0/iterations:1\n"
+      "BM_string_strcpy/131072/0/0/iterations:1\n"
+      "BM_string_strcpy/262144/0/0/iterations:1\n"
+      "BM_string_strcpy/524288/0/0/iterations:1\n"
+      "BM_string_strcpy/1048576/0/0/iterations:1\n"
+      "BM_string_strcpy/2097152/0/0/iterations:1\n"
+      "BM_string_memcpy/1/0/0/iterations:1\n"
+      "BM_string_memcpy/1/1/1/iterations:1\n"
+      "BM_string_memcpy/1/1/2/iterations:1\n"
+      "BM_string_memcpy/1/1/4/iterations:1\n"
+      "BM_string_memcpy/1/1/8/iterations:1\n"
+      "BM_string_memcpy/1/1/16/iterations:1\n"
+      "BM_string_memcpy/1/1/32/iterations:1\n"
+      "BM_string_memcpy/1/2/1/iterations:1\n"
+      "BM_string_memcpy/1/2/2/iterations:1\n"
+      "BM_string_memcpy/1/2/4/iterations:1\n"
+      "BM_string_memcpy/1/2/8/iterations:1\n"
+      "BM_string_memcpy/1/2/16/iterations:1\n"
+      "BM_string_memcpy/1/2/32/iterations:1\n"
+      "BM_string_memcpy/1/4/1/iterations:1\n"
+      "BM_string_memcpy/1/4/2/iterations:1\n"
+      "BM_string_memcpy/1/4/4/iterations:1\n"
+      "BM_string_memcpy/1/4/8/iterations:1\n"
+      "BM_string_memcpy/1/4/16/iterations:1\n"
+      "BM_string_memcpy/1/4/32/iterations:1\n"
+      "BM_string_memcpy/1/8/1/iterations:1\n"
+      "BM_string_memcpy/1/8/2/iterations:1\n"
+      "BM_string_memcpy/1/8/4/iterations:1\n"
+      "BM_string_memcpy/1/8/8/iterations:1\n"
+      "BM_string_memcpy/1/8/16/iterations:1\n"
+      "BM_string_memcpy/1/8/32/iterations:1\n"
+      "BM_string_memcpy/1/16/1/iterations:1\n"
+      "BM_string_memcpy/1/16/2/iterations:1\n"
+      "BM_string_memcpy/1/16/4/iterations:1\n"
+      "BM_string_memcpy/1/16/8/iterations:1\n"
+      "BM_string_memcpy/1/16/16/iterations:1\n"
+      "BM_string_memcpy/1/16/32/iterations:1\n"
+      "BM_string_memcpy/1/32/1/iterations:1\n"
+      "BM_string_memcpy/1/32/2/iterations:1\n"
+      "BM_string_memcpy/1/32/4/iterations:1\n"
+      "BM_string_memcpy/1/32/8/iterations:1\n"
+      "BM_string_memcpy/1/32/16/iterations:1\n"
+      "BM_string_memcpy/1/32/32/iterations:1\n"
+      "BM_string_memcpy/2/0/0/iterations:1\n"
+      "BM_string_memcpy/2/1/1/iterations:1\n"
+      "BM_string_memcpy/2/1/2/iterations:1\n"
+      "BM_string_memcpy/2/1/4/iterations:1\n"
+      "BM_string_memcpy/2/1/8/iterations:1\n"
+      "BM_string_memcpy/2/1/16/iterations:1\n"
+      "BM_string_memcpy/2/1/32/iterations:1\n"
+      "BM_string_memcpy/2/2/1/iterations:1\n"
+      "BM_string_memcpy/2/2/2/iterations:1\n"
+      "BM_string_memcpy/2/2/4/iterations:1\n"
+      "BM_string_memcpy/2/2/8/iterations:1\n"
+      "BM_string_memcpy/2/2/16/iterations:1\n"
+      "BM_string_memcpy/2/2/32/iterations:1\n"
+      "BM_string_memcpy/2/4/1/iterations:1\n"
+      "BM_string_memcpy/2/4/2/iterations:1\n"
+      "BM_string_memcpy/2/4/4/iterations:1\n"
+      "BM_string_memcpy/2/4/8/iterations:1\n"
+      "BM_string_memcpy/2/4/16/iterations:1\n"
+      "BM_string_memcpy/2/4/32/iterations:1\n"
+      "BM_string_memcpy/2/8/1/iterations:1\n"
+      "BM_string_memcpy/2/8/2/iterations:1\n"
+      "BM_string_memcpy/2/8/4/iterations:1\n"
+      "BM_string_memcpy/2/8/8/iterations:1\n"
+      "BM_string_memcpy/2/8/16/iterations:1\n"
+      "BM_string_memcpy/2/8/32/iterations:1\n"
+      "BM_string_memcpy/2/16/1/iterations:1\n"
+      "BM_string_memcpy/2/16/2/iterations:1\n"
+      "BM_string_memcpy/2/16/4/iterations:1\n"
+      "BM_string_memcpy/2/16/8/iterations:1\n"
+      "BM_string_memcpy/2/16/16/iterations:1\n"
+      "BM_string_memcpy/2/16/32/iterations:1\n"
+      "BM_string_memcpy/2/32/1/iterations:1\n"
+      "BM_string_memcpy/2/32/2/iterations:1\n"
+      "BM_string_memcpy/2/32/4/iterations:1\n"
+      "BM_string_memcpy/2/32/8/iterations:1\n"
+      "BM_string_memcpy/2/32/16/iterations:1\n"
+      "BM_string_memcpy/2/32/32/iterations:1\n"
+      "BM_string_memcpy/3/0/0/iterations:1\n"
+      "BM_string_memcpy/3/1/1/iterations:1\n"
+      "BM_string_memcpy/3/1/2/iterations:1\n"
+      "BM_string_memcpy/3/1/4/iterations:1\n"
+      "BM_string_memcpy/3/1/8/iterations:1\n"
+      "BM_string_memcpy/3/1/16/iterations:1\n"
+      "BM_string_memcpy/3/1/32/iterations:1\n"
+      "BM_string_memcpy/3/2/1/iterations:1\n"
+      "BM_string_memcpy/3/2/2/iterations:1\n"
+      "BM_string_memcpy/3/2/4/iterations:1\n"
+      "BM_string_memcpy/3/2/8/iterations:1\n"
+      "BM_string_memcpy/3/2/16/iterations:1\n"
+      "BM_string_memcpy/3/2/32/iterations:1\n"
+      "BM_string_memcpy/3/4/1/iterations:1\n"
+      "BM_string_memcpy/3/4/2/iterations:1\n"
+      "BM_string_memcpy/3/4/4/iterations:1\n"
+      "BM_string_memcpy/3/4/8/iterations:1\n"
+      "BM_string_memcpy/3/4/16/iterations:1\n"
+      "BM_string_memcpy/3/4/32/iterations:1\n"
+      "BM_string_memcpy/3/8/1/iterations:1\n"
+      "BM_string_memcpy/3/8/2/iterations:1\n"
+      "BM_string_memcpy/3/8/4/iterations:1\n"
+      "BM_string_memcpy/3/8/8/iterations:1\n"
+      "BM_string_memcpy/3/8/16/iterations:1\n"
+      "BM_string_memcpy/3/8/32/iterations:1\n"
+      "BM_string_memcpy/3/16/1/iterations:1\n"
+      "BM_string_memcpy/3/16/2/iterations:1\n"
+      "BM_string_memcpy/3/16/4/iterations:1\n"
+      "BM_string_memcpy/3/16/8/iterations:1\n"
+      "BM_string_memcpy/3/16/16/iterations:1\n"
+      "BM_string_memcpy/3/16/32/iterations:1\n"
+      "BM_string_memcpy/3/32/1/iterations:1\n"
+      "BM_string_memcpy/3/32/2/iterations:1\n"
+      "BM_string_memcpy/3/32/4/iterations:1\n"
+      "BM_string_memcpy/3/32/8/iterations:1\n"
+      "BM_string_memcpy/3/32/16/iterations:1\n"
+      "BM_string_memcpy/3/32/32/iterations:1\n"
+      "BM_string_memcpy/4/0/0/iterations:1\n"
+      "BM_string_memcpy/4/1/1/iterations:1\n"
+      "BM_string_memcpy/4/1/2/iterations:1\n"
+      "BM_string_memcpy/4/1/4/iterations:1\n"
+      "BM_string_memcpy/4/1/8/iterations:1\n"
+      "BM_string_memcpy/4/1/16/iterations:1\n"
+      "BM_string_memcpy/4/1/32/iterations:1\n"
+      "BM_string_memcpy/4/2/1/iterations:1\n"
+      "BM_string_memcpy/4/2/2/iterations:1\n"
+      "BM_string_memcpy/4/2/4/iterations:1\n"
+      "BM_string_memcpy/4/2/8/iterations:1\n"
+      "BM_string_memcpy/4/2/16/iterations:1\n"
+      "BM_string_memcpy/4/2/32/iterations:1\n"
+      "BM_string_memcpy/4/4/1/iterations:1\n"
+      "BM_string_memcpy/4/4/2/iterations:1\n"
+      "BM_string_memcpy/4/4/4/iterations:1\n"
+      "BM_string_memcpy/4/4/8/iterations:1\n"
+      "BM_string_memcpy/4/4/16/iterations:1\n"
+      "BM_string_memcpy/4/4/32/iterations:1\n"
+      "BM_string_memcpy/4/8/1/iterations:1\n"
+      "BM_string_memcpy/4/8/2/iterations:1\n"
+      "BM_string_memcpy/4/8/4/iterations:1\n"
+      "BM_string_memcpy/4/8/8/iterations:1\n"
+      "BM_string_memcpy/4/8/16/iterations:1\n"
+      "BM_string_memcpy/4/8/32/iterations:1\n"
+      "BM_string_memcpy/4/16/1/iterations:1\n"
+      "BM_string_memcpy/4/16/2/iterations:1\n"
+      "BM_string_memcpy/4/16/4/iterations:1\n"
+      "BM_string_memcpy/4/16/8/iterations:1\n"
+      "BM_string_memcpy/4/16/16/iterations:1\n"
+      "BM_string_memcpy/4/16/32/iterations:1\n"
+      "BM_string_memcpy/4/32/1/iterations:1\n"
+      "BM_string_memcpy/4/32/2/iterations:1\n"
+      "BM_string_memcpy/4/32/4/iterations:1\n"
+      "BM_string_memcpy/4/32/8/iterations:1\n"
+      "BM_string_memcpy/4/32/16/iterations:1\n"
+      "BM_string_memcpy/4/32/32/iterations:1\n"
+      "BM_string_memcpy/5/0/0/iterations:1\n"
+      "BM_string_memcpy/5/1/1/iterations:1\n"
+      "BM_string_memcpy/5/1/2/iterations:1\n"
+      "BM_string_memcpy/5/1/4/iterations:1\n"
+      "BM_string_memcpy/5/1/8/iterations:1\n"
+      "BM_string_memcpy/5/1/16/iterations:1\n"
+      "BM_string_memcpy/5/1/32/iterations:1\n"
+      "BM_string_memcpy/5/2/1/iterations:1\n"
+      "BM_string_memcpy/5/2/2/iterations:1\n"
+      "BM_string_memcpy/5/2/4/iterations:1\n"
+      "BM_string_memcpy/5/2/8/iterations:1\n"
+      "BM_string_memcpy/5/2/16/iterations:1\n"
+      "BM_string_memcpy/5/2/32/iterations:1\n"
+      "BM_string_memcpy/5/4/1/iterations:1\n"
+      "BM_string_memcpy/5/4/2/iterations:1\n"
+      "BM_string_memcpy/5/4/4/iterations:1\n"
+      "BM_string_memcpy/5/4/8/iterations:1\n"
+      "BM_string_memcpy/5/4/16/iterations:1\n"
+      "BM_string_memcpy/5/4/32/iterations:1\n"
+      "BM_string_memcpy/5/8/1/iterations:1\n"
+      "BM_string_memcpy/5/8/2/iterations:1\n"
+      "BM_string_memcpy/5/8/4/iterations:1\n"
+      "BM_string_memcpy/5/8/8/iterations:1\n"
+      "BM_string_memcpy/5/8/16/iterations:1\n"
+      "BM_string_memcpy/5/8/32/iterations:1\n"
+      "BM_string_memcpy/5/16/1/iterations:1\n"
+      "BM_string_memcpy/5/16/2/iterations:1\n"
+      "BM_string_memcpy/5/16/4/iterations:1\n"
+      "BM_string_memcpy/5/16/8/iterations:1\n"
+      "BM_string_memcpy/5/16/16/iterations:1\n"
+      "BM_string_memcpy/5/16/32/iterations:1\n"
+      "BM_string_memcpy/5/32/1/iterations:1\n"
+      "BM_string_memcpy/5/32/2/iterations:1\n"
+      "BM_string_memcpy/5/32/4/iterations:1\n"
+      "BM_string_memcpy/5/32/8/iterations:1\n"
+      "BM_string_memcpy/5/32/16/iterations:1\n"
+      "BM_string_memcpy/5/32/32/iterations:1\n"
+      "BM_string_memcpy/6/0/0/iterations:1\n"
+      "BM_string_memcpy/6/1/1/iterations:1\n"
+      "BM_string_memcpy/6/1/2/iterations:1\n"
+      "BM_string_memcpy/6/1/4/iterations:1\n"
+      "BM_string_memcpy/6/1/8/iterations:1\n"
+      "BM_string_memcpy/6/1/16/iterations:1\n"
+      "BM_string_memcpy/6/1/32/iterations:1\n"
+      "BM_string_memcpy/6/2/1/iterations:1\n"
+      "BM_string_memcpy/6/2/2/iterations:1\n"
+      "BM_string_memcpy/6/2/4/iterations:1\n"
+      "BM_string_memcpy/6/2/8/iterations:1\n"
+      "BM_string_memcpy/6/2/16/iterations:1\n"
+      "BM_string_memcpy/6/2/32/iterations:1\n"
+      "BM_string_memcpy/6/4/1/iterations:1\n"
+      "BM_string_memcpy/6/4/2/iterations:1\n"
+      "BM_string_memcpy/6/4/4/iterations:1\n"
+      "BM_string_memcpy/6/4/8/iterations:1\n"
+      "BM_string_memcpy/6/4/16/iterations:1\n"
+      "BM_string_memcpy/6/4/32/iterations:1\n"
+      "BM_string_memcpy/6/8/1/iterations:1\n"
+      "BM_string_memcpy/6/8/2/iterations:1\n"
+      "BM_string_memcpy/6/8/4/iterations:1\n"
+      "BM_string_memcpy/6/8/8/iterations:1\n"
+      "BM_string_memcpy/6/8/16/iterations:1\n"
+      "BM_string_memcpy/6/8/32/iterations:1\n"
+      "BM_string_memcpy/6/16/1/iterations:1\n"
+      "BM_string_memcpy/6/16/2/iterations:1\n"
+      "BM_string_memcpy/6/16/4/iterations:1\n"
+      "BM_string_memcpy/6/16/8/iterations:1\n"
+      "BM_string_memcpy/6/16/16/iterations:1\n"
+      "BM_string_memcpy/6/16/32/iterations:1\n"
+      "BM_string_memcpy/6/32/1/iterations:1\n"
+      "BM_string_memcpy/6/32/2/iterations:1\n"
+      "BM_string_memcpy/6/32/4/iterations:1\n"
+      "BM_string_memcpy/6/32/8/iterations:1\n"
+      "BM_string_memcpy/6/32/16/iterations:1\n"
+      "BM_string_memcpy/6/32/32/iterations:1\n"
+      "BM_string_memcpy/7/0/0/iterations:1\n"
+      "BM_string_memcpy/7/1/1/iterations:1\n"
+      "BM_string_memcpy/7/1/2/iterations:1\n"
+      "BM_string_memcpy/7/1/4/iterations:1\n"
+      "BM_string_memcpy/7/1/8/iterations:1\n"
+      "BM_string_memcpy/7/1/16/iterations:1\n"
+      "BM_string_memcpy/7/1/32/iterations:1\n"
+      "BM_string_memcpy/7/2/1/iterations:1\n"
+      "BM_string_memcpy/7/2/2/iterations:1\n"
+      "BM_string_memcpy/7/2/4/iterations:1\n"
+      "BM_string_memcpy/7/2/8/iterations:1\n"
+      "BM_string_memcpy/7/2/16/iterations:1\n"
+      "BM_string_memcpy/7/2/32/iterations:1\n"
+      "BM_string_memcpy/7/4/1/iterations:1\n"
+      "BM_string_memcpy/7/4/2/iterations:1\n"
+      "BM_string_memcpy/7/4/4/iterations:1\n"
+      "BM_string_memcpy/7/4/8/iterations:1\n"
+      "BM_string_memcpy/7/4/16/iterations:1\n"
+      "BM_string_memcpy/7/4/32/iterations:1\n"
+      "BM_string_memcpy/7/8/1/iterations:1\n"
+      "BM_string_memcpy/7/8/2/iterations:1\n"
+      "BM_string_memcpy/7/8/4/iterations:1\n"
+      "BM_string_memcpy/7/8/8/iterations:1\n"
+      "BM_string_memcpy/7/8/16/iterations:1\n"
+      "BM_string_memcpy/7/8/32/iterations:1\n"
+      "BM_string_memcpy/7/16/1/iterations:1\n"
+      "BM_string_memcpy/7/16/2/iterations:1\n"
+      "BM_string_memcpy/7/16/4/iterations:1\n"
+      "BM_string_memcpy/7/16/8/iterations:1\n"
+      "BM_string_memcpy/7/16/16/iterations:1\n"
+      "BM_string_memcpy/7/16/32/iterations:1\n"
+      "BM_string_memcpy/7/32/1/iterations:1\n"
+      "BM_string_memcpy/7/32/2/iterations:1\n"
+      "BM_string_memcpy/7/32/4/iterations:1\n"
+      "BM_string_memcpy/7/32/8/iterations:1\n"
+      "BM_string_memcpy/7/32/16/iterations:1\n"
+      "BM_string_memcpy/7/32/32/iterations:1\n"
+      "BM_string_memcpy/8/0/0/iterations:1\n"
+      "BM_string_memcpy/8/1/1/iterations:1\n"
+      "BM_string_memcpy/8/1/2/iterations:1\n"
+      "BM_string_memcpy/8/1/4/iterations:1\n"
+      "BM_string_memcpy/8/1/8/iterations:1\n"
+      "BM_string_memcpy/8/1/16/iterations:1\n"
+      "BM_string_memcpy/8/1/32/iterations:1\n"
+      "BM_string_memcpy/8/2/1/iterations:1\n"
+      "BM_string_memcpy/8/2/2/iterations:1\n"
+      "BM_string_memcpy/8/2/4/iterations:1\n"
+      "BM_string_memcpy/8/2/8/iterations:1\n"
+      "BM_string_memcpy/8/2/16/iterations:1\n"
+      "BM_string_memcpy/8/2/32/iterations:1\n"
+      "BM_string_memcpy/8/4/1/iterations:1\n"
+      "BM_string_memcpy/8/4/2/iterations:1\n"
+      "BM_string_memcpy/8/4/4/iterations:1\n"
+      "BM_string_memcpy/8/4/8/iterations:1\n"
+      "BM_string_memcpy/8/4/16/iterations:1\n"
+      "BM_string_memcpy/8/4/32/iterations:1\n"
+      "BM_string_memcpy/8/8/1/iterations:1\n"
+      "BM_string_memcpy/8/8/2/iterations:1\n"
+      "BM_string_memcpy/8/8/4/iterations:1\n"
+      "BM_string_memcpy/8/8/8/iterations:1\n"
+      "BM_string_memcpy/8/8/16/iterations:1\n"
+      "BM_string_memcpy/8/8/32/iterations:1\n"
+      "BM_string_memcpy/8/16/1/iterations:1\n"
+      "BM_string_memcpy/8/16/2/iterations:1\n"
+      "BM_string_memcpy/8/16/4/iterations:1\n"
+      "BM_string_memcpy/8/16/8/iterations:1\n"
+      "BM_string_memcpy/8/16/16/iterations:1\n"
+      "BM_string_memcpy/8/16/32/iterations:1\n"
+      "BM_string_memcpy/8/32/1/iterations:1\n"
+      "BM_string_memcpy/8/32/2/iterations:1\n"
+      "BM_string_memcpy/8/32/4/iterations:1\n"
+      "BM_string_memcpy/8/32/8/iterations:1\n"
+      "BM_string_memcpy/8/32/16/iterations:1\n"
+      "BM_string_memcpy/8/32/32/iterations:1\n"
+      "BM_string_memcpy/9/0/0/iterations:1\n"
+      "BM_string_memcpy/9/1/1/iterations:1\n"
+      "BM_string_memcpy/9/1/2/iterations:1\n"
+      "BM_string_memcpy/9/1/4/iterations:1\n"
+      "BM_string_memcpy/9/1/8/iterations:1\n"
+      "BM_string_memcpy/9/1/16/iterations:1\n"
+      "BM_string_memcpy/9/1/32/iterations:1\n"
+      "BM_string_memcpy/9/2/1/iterations:1\n"
+      "BM_string_memcpy/9/2/2/iterations:1\n"
+      "BM_string_memcpy/9/2/4/iterations:1\n"
+      "BM_string_memcpy/9/2/8/iterations:1\n"
+      "BM_string_memcpy/9/2/16/iterations:1\n"
+      "BM_string_memcpy/9/2/32/iterations:1\n"
+      "BM_string_memcpy/9/4/1/iterations:1\n"
+      "BM_string_memcpy/9/4/2/iterations:1\n"
+      "BM_string_memcpy/9/4/4/iterations:1\n"
+      "BM_string_memcpy/9/4/8/iterations:1\n"
+      "BM_string_memcpy/9/4/16/iterations:1\n"
+      "BM_string_memcpy/9/4/32/iterations:1\n"
+      "BM_string_memcpy/9/8/1/iterations:1\n"
+      "BM_string_memcpy/9/8/2/iterations:1\n"
+      "BM_string_memcpy/9/8/4/iterations:1\n"
+      "BM_string_memcpy/9/8/8/iterations:1\n"
+      "BM_string_memcpy/9/8/16/iterations:1\n"
+      "BM_string_memcpy/9/8/32/iterations:1\n"
+      "BM_string_memcpy/9/16/1/iterations:1\n"
+      "BM_string_memcpy/9/16/2/iterations:1\n"
+      "BM_string_memcpy/9/16/4/iterations:1\n"
+      "BM_string_memcpy/9/16/8/iterations:1\n"
+      "BM_string_memcpy/9/16/16/iterations:1\n"
+      "BM_string_memcpy/9/16/32/iterations:1\n"
+      "BM_string_memcpy/9/32/1/iterations:1\n"
+      "BM_string_memcpy/9/32/2/iterations:1\n"
+      "BM_string_memcpy/9/32/4/iterations:1\n"
+      "BM_string_memcpy/9/32/8/iterations:1\n"
+      "BM_string_memcpy/9/32/16/iterations:1\n"
+      "BM_string_memcpy/9/32/32/iterations:1\n"
+      "BM_string_memcpy/10/0/0/iterations:1\n"
+      "BM_string_memcpy/10/1/1/iterations:1\n"
+      "BM_string_memcpy/10/1/2/iterations:1\n"
+      "BM_string_memcpy/10/1/4/iterations:1\n"
+      "BM_string_memcpy/10/1/8/iterations:1\n"
+      "BM_string_memcpy/10/1/16/iterations:1\n"
+      "BM_string_memcpy/10/1/32/iterations:1\n"
+      "BM_string_memcpy/10/2/1/iterations:1\n"
+      "BM_string_memcpy/10/2/2/iterations:1\n"
+      "BM_string_memcpy/10/2/4/iterations:1\n"
+      "BM_string_memcpy/10/2/8/iterations:1\n"
+      "BM_string_memcpy/10/2/16/iterations:1\n"
+      "BM_string_memcpy/10/2/32/iterations:1\n"
+      "BM_string_memcpy/10/4/1/iterations:1\n"
+      "BM_string_memcpy/10/4/2/iterations:1\n"
+      "BM_string_memcpy/10/4/4/iterations:1\n"
+      "BM_string_memcpy/10/4/8/iterations:1\n"
+      "BM_string_memcpy/10/4/16/iterations:1\n"
+      "BM_string_memcpy/10/4/32/iterations:1\n"
+      "BM_string_memcpy/10/8/1/iterations:1\n"
+      "BM_string_memcpy/10/8/2/iterations:1\n"
+      "BM_string_memcpy/10/8/4/iterations:1\n"
+      "BM_string_memcpy/10/8/8/iterations:1\n"
+      "BM_string_memcpy/10/8/16/iterations:1\n"
+      "BM_string_memcpy/10/8/32/iterations:1\n"
+      "BM_string_memcpy/10/16/1/iterations:1\n"
+      "BM_string_memcpy/10/16/2/iterations:1\n"
+      "BM_string_memcpy/10/16/4/iterations:1\n"
+      "BM_string_memcpy/10/16/8/iterations:1\n"
+      "BM_string_memcpy/10/16/16/iterations:1\n"
+      "BM_string_memcpy/10/16/32/iterations:1\n"
+      "BM_string_memcpy/10/32/1/iterations:1\n"
+      "BM_string_memcpy/10/32/2/iterations:1\n"
+      "BM_string_memcpy/10/32/4/iterations:1\n"
+      "BM_string_memcpy/10/32/8/iterations:1\n"
+      "BM_string_memcpy/10/32/16/iterations:1\n"
+      "BM_string_memcpy/10/32/32/iterations:1\n"
+      "BM_string_memcpy/11/0/0/iterations:1\n"
+      "BM_string_memcpy/11/1/1/iterations:1\n"
+      "BM_string_memcpy/11/1/2/iterations:1\n"
+      "BM_string_memcpy/11/1/4/iterations:1\n"
+      "BM_string_memcpy/11/1/8/iterations:1\n"
+      "BM_string_memcpy/11/1/16/iterations:1\n"
+      "BM_string_memcpy/11/1/32/iterations:1\n"
+      "BM_string_memcpy/11/2/1/iterations:1\n"
+      "BM_string_memcpy/11/2/2/iterations:1\n"
+      "BM_string_memcpy/11/2/4/iterations:1\n"
+      "BM_string_memcpy/11/2/8/iterations:1\n"
+      "BM_string_memcpy/11/2/16/iterations:1\n"
+      "BM_string_memcpy/11/2/32/iterations:1\n"
+      "BM_string_memcpy/11/4/1/iterations:1\n"
+      "BM_string_memcpy/11/4/2/iterations:1\n"
+      "BM_string_memcpy/11/4/4/iterations:1\n"
+      "BM_string_memcpy/11/4/8/iterations:1\n"
+      "BM_string_memcpy/11/4/16/iterations:1\n"
+      "BM_string_memcpy/11/4/32/iterations:1\n"
+      "BM_string_memcpy/11/8/1/iterations:1\n"
+      "BM_string_memcpy/11/8/2/iterations:1\n"
+      "BM_string_memcpy/11/8/4/iterations:1\n"
+      "BM_string_memcpy/11/8/8/iterations:1\n"
+      "BM_string_memcpy/11/8/16/iterations:1\n"
+      "BM_string_memcpy/11/8/32/iterations:1\n"
+      "BM_string_memcpy/11/16/1/iterations:1\n"
+      "BM_string_memcpy/11/16/2/iterations:1\n"
+      "BM_string_memcpy/11/16/4/iterations:1\n"
+      "BM_string_memcpy/11/16/8/iterations:1\n"
+      "BM_string_memcpy/11/16/16/iterations:1\n"
+      "BM_string_memcpy/11/16/32/iterations:1\n"
+      "BM_string_memcpy/11/32/1/iterations:1\n"
+      "BM_string_memcpy/11/32/2/iterations:1\n"
+      "BM_string_memcpy/11/32/4/iterations:1\n"
+      "BM_string_memcpy/11/32/8/iterations:1\n"
+      "BM_string_memcpy/11/32/16/iterations:1\n"
+      "BM_string_memcpy/11/32/32/iterations:1\n"
+      "BM_string_memcpy/12/0/0/iterations:1\n"
+      "BM_string_memcpy/12/1/1/iterations:1\n"
+      "BM_string_memcpy/12/1/2/iterations:1\n"
+      "BM_string_memcpy/12/1/4/iterations:1\n"
+      "BM_string_memcpy/12/1/8/iterations:1\n"
+      "BM_string_memcpy/12/1/16/iterations:1\n"
+      "BM_string_memcpy/12/1/32/iterations:1\n"
+      "BM_string_memcpy/12/2/1/iterations:1\n"
+      "BM_string_memcpy/12/2/2/iterations:1\n"
+      "BM_string_memcpy/12/2/4/iterations:1\n"
+      "BM_string_memcpy/12/2/8/iterations:1\n"
+      "BM_string_memcpy/12/2/16/iterations:1\n"
+      "BM_string_memcpy/12/2/32/iterations:1\n"
+      "BM_string_memcpy/12/4/1/iterations:1\n"
+      "BM_string_memcpy/12/4/2/iterations:1\n"
+      "BM_string_memcpy/12/4/4/iterations:1\n"
+      "BM_string_memcpy/12/4/8/iterations:1\n"
+      "BM_string_memcpy/12/4/16/iterations:1\n"
+      "BM_string_memcpy/12/4/32/iterations:1\n"
+      "BM_string_memcpy/12/8/1/iterations:1\n"
+      "BM_string_memcpy/12/8/2/iterations:1\n"
+      "BM_string_memcpy/12/8/4/iterations:1\n"
+      "BM_string_memcpy/12/8/8/iterations:1\n"
+      "BM_string_memcpy/12/8/16/iterations:1\n"
+      "BM_string_memcpy/12/8/32/iterations:1\n"
+      "BM_string_memcpy/12/16/1/iterations:1\n"
+      "BM_string_memcpy/12/16/2/iterations:1\n"
+      "BM_string_memcpy/12/16/4/iterations:1\n"
+      "BM_string_memcpy/12/16/8/iterations:1\n"
+      "BM_string_memcpy/12/16/16/iterations:1\n"
+      "BM_string_memcpy/12/16/32/iterations:1\n"
+      "BM_string_memcpy/12/32/1/iterations:1\n"
+      "BM_string_memcpy/12/32/2/iterations:1\n"
+      "BM_string_memcpy/12/32/4/iterations:1\n"
+      "BM_string_memcpy/12/32/8/iterations:1\n"
+      "BM_string_memcpy/12/32/16/iterations:1\n"
+      "BM_string_memcpy/12/32/32/iterations:1\n"
+      "BM_string_memcpy/13/0/0/iterations:1\n"
+      "BM_string_memcpy/13/1/1/iterations:1\n"
+      "BM_string_memcpy/13/1/2/iterations:1\n"
+      "BM_string_memcpy/13/1/4/iterations:1\n"
+      "BM_string_memcpy/13/1/8/iterations:1\n"
+      "BM_string_memcpy/13/1/16/iterations:1\n"
+      "BM_string_memcpy/13/1/32/iterations:1\n"
+      "BM_string_memcpy/13/2/1/iterations:1\n"
+      "BM_string_memcpy/13/2/2/iterations:1\n"
+      "BM_string_memcpy/13/2/4/iterations:1\n"
+      "BM_string_memcpy/13/2/8/iterations:1\n"
+      "BM_string_memcpy/13/2/16/iterations:1\n"
+      "BM_string_memcpy/13/2/32/iterations:1\n"
+      "BM_string_memcpy/13/4/1/iterations:1\n"
+      "BM_string_memcpy/13/4/2/iterations:1\n"
+      "BM_string_memcpy/13/4/4/iterations:1\n"
+      "BM_string_memcpy/13/4/8/iterations:1\n"
+      "BM_string_memcpy/13/4/16/iterations:1\n"
+      "BM_string_memcpy/13/4/32/iterations:1\n"
+      "BM_string_memcpy/13/8/1/iterations:1\n"
+      "BM_string_memcpy/13/8/2/iterations:1\n"
+      "BM_string_memcpy/13/8/4/iterations:1\n"
+      "BM_string_memcpy/13/8/8/iterations:1\n"
+      "BM_string_memcpy/13/8/16/iterations:1\n"
+      "BM_string_memcpy/13/8/32/iterations:1\n"
+      "BM_string_memcpy/13/16/1/iterations:1\n"
+      "BM_string_memcpy/13/16/2/iterations:1\n"
+      "BM_string_memcpy/13/16/4/iterations:1\n"
+      "BM_string_memcpy/13/16/8/iterations:1\n"
+      "BM_string_memcpy/13/16/16/iterations:1\n"
+      "BM_string_memcpy/13/16/32/iterations:1\n"
+      "BM_string_memcpy/13/32/1/iterations:1\n"
+      "BM_string_memcpy/13/32/2/iterations:1\n"
+      "BM_string_memcpy/13/32/4/iterations:1\n"
+      "BM_string_memcpy/13/32/8/iterations:1\n"
+      "BM_string_memcpy/13/32/16/iterations:1\n"
+      "BM_string_memcpy/13/32/32/iterations:1\n"
+      "BM_string_memcpy/14/0/0/iterations:1\n"
+      "BM_string_memcpy/14/1/1/iterations:1\n"
+      "BM_string_memcpy/14/1/2/iterations:1\n"
+      "BM_string_memcpy/14/1/4/iterations:1\n"
+      "BM_string_memcpy/14/1/8/iterations:1\n"
+      "BM_string_memcpy/14/1/16/iterations:1\n"
+      "BM_string_memcpy/14/1/32/iterations:1\n"
+      "BM_string_memcpy/14/2/1/iterations:1\n"
+      "BM_string_memcpy/14/2/2/iterations:1\n"
+      "BM_string_memcpy/14/2/4/iterations:1\n"
+      "BM_string_memcpy/14/2/8/iterations:1\n"
+      "BM_string_memcpy/14/2/16/iterations:1\n"
+      "BM_string_memcpy/14/2/32/iterations:1\n"
+      "BM_string_memcpy/14/4/1/iterations:1\n"
+      "BM_string_memcpy/14/4/2/iterations:1\n"
+      "BM_string_memcpy/14/4/4/iterations:1\n"
+      "BM_string_memcpy/14/4/8/iterations:1\n"
+      "BM_string_memcpy/14/4/16/iterations:1\n"
+      "BM_string_memcpy/14/4/32/iterations:1\n"
+      "BM_string_memcpy/14/8/1/iterations:1\n"
+      "BM_string_memcpy/14/8/2/iterations:1\n"
+      "BM_string_memcpy/14/8/4/iterations:1\n"
+      "BM_string_memcpy/14/8/8/iterations:1\n"
+      "BM_string_memcpy/14/8/16/iterations:1\n"
+      "BM_string_memcpy/14/8/32/iterations:1\n"
+      "BM_string_memcpy/14/16/1/iterations:1\n"
+      "BM_string_memcpy/14/16/2/iterations:1\n"
+      "BM_string_memcpy/14/16/4/iterations:1\n"
+      "BM_string_memcpy/14/16/8/iterations:1\n"
+      "BM_string_memcpy/14/16/16/iterations:1\n"
+      "BM_string_memcpy/14/16/32/iterations:1\n"
+      "BM_string_memcpy/14/32/1/iterations:1\n"
+      "BM_string_memcpy/14/32/2/iterations:1\n"
+      "BM_string_memcpy/14/32/4/iterations:1\n"
+      "BM_string_memcpy/14/32/8/iterations:1\n"
+      "BM_string_memcpy/14/32/16/iterations:1\n"
+      "BM_string_memcpy/14/32/32/iterations:1\n"
+      "BM_string_memcpy/15/0/0/iterations:1\n"
+      "BM_string_memcpy/15/1/1/iterations:1\n"
+      "BM_string_memcpy/15/1/2/iterations:1\n"
+      "BM_string_memcpy/15/1/4/iterations:1\n"
+      "BM_string_memcpy/15/1/8/iterations:1\n"
+      "BM_string_memcpy/15/1/16/iterations:1\n"
+      "BM_string_memcpy/15/1/32/iterations:1\n"
+      "BM_string_memcpy/15/2/1/iterations:1\n"
+      "BM_string_memcpy/15/2/2/iterations:1\n"
+      "BM_string_memcpy/15/2/4/iterations:1\n"
+      "BM_string_memcpy/15/2/8/iterations:1\n"
+      "BM_string_memcpy/15/2/16/iterations:1\n"
+      "BM_string_memcpy/15/2/32/iterations:1\n"
+      "BM_string_memcpy/15/4/1/iterations:1\n"
+      "BM_string_memcpy/15/4/2/iterations:1\n"
+      "BM_string_memcpy/15/4/4/iterations:1\n"
+      "BM_string_memcpy/15/4/8/iterations:1\n"
+      "BM_string_memcpy/15/4/16/iterations:1\n"
+      "BM_string_memcpy/15/4/32/iterations:1\n"
+      "BM_string_memcpy/15/8/1/iterations:1\n"
+      "BM_string_memcpy/15/8/2/iterations:1\n"
+      "BM_string_memcpy/15/8/4/iterations:1\n"
+      "BM_string_memcpy/15/8/8/iterations:1\n"
+      "BM_string_memcpy/15/8/16/iterations:1\n"
+      "BM_string_memcpy/15/8/32/iterations:1\n"
+      "BM_string_memcpy/15/16/1/iterations:1\n"
+      "BM_string_memcpy/15/16/2/iterations:1\n"
+      "BM_string_memcpy/15/16/4/iterations:1\n"
+      "BM_string_memcpy/15/16/8/iterations:1\n"
+      "BM_string_memcpy/15/16/16/iterations:1\n"
+      "BM_string_memcpy/15/16/32/iterations:1\n"
+      "BM_string_memcpy/15/32/1/iterations:1\n"
+      "BM_string_memcpy/15/32/2/iterations:1\n"
+      "BM_string_memcpy/15/32/4/iterations:1\n"
+      "BM_string_memcpy/15/32/8/iterations:1\n"
+      "BM_string_memcpy/15/32/16/iterations:1\n"
+      "BM_string_memcpy/15/32/32/iterations:1\n"
+      "BM_string_memcpy/16/0/0/iterations:1\n"
+      "BM_string_memcpy/16/1/1/iterations:1\n"
+      "BM_string_memcpy/16/1/2/iterations:1\n"
+      "BM_string_memcpy/16/1/4/iterations:1\n"
+      "BM_string_memcpy/16/1/8/iterations:1\n"
+      "BM_string_memcpy/16/1/16/iterations:1\n"
+      "BM_string_memcpy/16/1/32/iterations:1\n"
+      "BM_string_memcpy/16/2/1/iterations:1\n"
+      "BM_string_memcpy/16/2/2/iterations:1\n"
+      "BM_string_memcpy/16/2/4/iterations:1\n"
+      "BM_string_memcpy/16/2/8/iterations:1\n"
+      "BM_string_memcpy/16/2/16/iterations:1\n"
+      "BM_string_memcpy/16/2/32/iterations:1\n"
+      "BM_string_memcpy/16/4/1/iterations:1\n"
+      "BM_string_memcpy/16/4/2/iterations:1\n"
+      "BM_string_memcpy/16/4/4/iterations:1\n"
+      "BM_string_memcpy/16/4/8/iterations:1\n"
+      "BM_string_memcpy/16/4/16/iterations:1\n"
+      "BM_string_memcpy/16/4/32/iterations:1\n"
+      "BM_string_memcpy/16/8/1/iterations:1\n"
+      "BM_string_memcpy/16/8/2/iterations:1\n"
+      "BM_string_memcpy/16/8/4/iterations:1\n"
+      "BM_string_memcpy/16/8/8/iterations:1\n"
+      "BM_string_memcpy/16/8/16/iterations:1\n"
+      "BM_string_memcpy/16/8/32/iterations:1\n"
+      "BM_string_memcpy/16/16/1/iterations:1\n"
+      "BM_string_memcpy/16/16/2/iterations:1\n"
+      "BM_string_memcpy/16/16/4/iterations:1\n"
+      "BM_string_memcpy/16/16/8/iterations:1\n"
+      "BM_string_memcpy/16/16/16/iterations:1\n"
+      "BM_string_memcpy/16/16/32/iterations:1\n"
+      "BM_string_memcpy/16/32/1/iterations:1\n"
+      "BM_string_memcpy/16/32/2/iterations:1\n"
+      "BM_string_memcpy/16/32/4/iterations:1\n"
+      "BM_string_memcpy/16/32/8/iterations:1\n"
+      "BM_string_memcpy/16/32/16/iterations:1\n"
+      "BM_string_memcpy/16/32/32/iterations:1\n"
+      "BM_string_memcpy/24/0/0/iterations:1\n"
+      "BM_string_memcpy/24/1/1/iterations:1\n"
+      "BM_string_memcpy/24/1/2/iterations:1\n"
+      "BM_string_memcpy/24/1/4/iterations:1\n"
+      "BM_string_memcpy/24/1/8/iterations:1\n"
+      "BM_string_memcpy/24/1/16/iterations:1\n"
+      "BM_string_memcpy/24/1/32/iterations:1\n"
+      "BM_string_memcpy/24/2/1/iterations:1\n"
+      "BM_string_memcpy/24/2/2/iterations:1\n"
+      "BM_string_memcpy/24/2/4/iterations:1\n"
+      "BM_string_memcpy/24/2/8/iterations:1\n"
+      "BM_string_memcpy/24/2/16/iterations:1\n"
+      "BM_string_memcpy/24/2/32/iterations:1\n"
+      "BM_string_memcpy/24/4/1/iterations:1\n"
+      "BM_string_memcpy/24/4/2/iterations:1\n"
+      "BM_string_memcpy/24/4/4/iterations:1\n"
+      "BM_string_memcpy/24/4/8/iterations:1\n"
+      "BM_string_memcpy/24/4/16/iterations:1\n"
+      "BM_string_memcpy/24/4/32/iterations:1\n"
+      "BM_string_memcpy/24/8/1/iterations:1\n"
+      "BM_string_memcpy/24/8/2/iterations:1\n"
+      "BM_string_memcpy/24/8/4/iterations:1\n"
+      "BM_string_memcpy/24/8/8/iterations:1\n"
+      "BM_string_memcpy/24/8/16/iterations:1\n"
+      "BM_string_memcpy/24/8/32/iterations:1\n"
+      "BM_string_memcpy/24/16/1/iterations:1\n"
+      "BM_string_memcpy/24/16/2/iterations:1\n"
+      "BM_string_memcpy/24/16/4/iterations:1\n"
+      "BM_string_memcpy/24/16/8/iterations:1\n"
+      "BM_string_memcpy/24/16/16/iterations:1\n"
+      "BM_string_memcpy/24/16/32/iterations:1\n"
+      "BM_string_memcpy/24/32/1/iterations:1\n"
+      "BM_string_memcpy/24/32/2/iterations:1\n"
+      "BM_string_memcpy/24/32/4/iterations:1\n"
+      "BM_string_memcpy/24/32/8/iterations:1\n"
+      "BM_string_memcpy/24/32/16/iterations:1\n"
+      "BM_string_memcpy/24/32/32/iterations:1\n"
+      "BM_string_memcpy/32/0/0/iterations:1\n"
+      "BM_string_memcpy/32/1/1/iterations:1\n"
+      "BM_string_memcpy/32/1/2/iterations:1\n"
+      "BM_string_memcpy/32/1/4/iterations:1\n"
+      "BM_string_memcpy/32/1/8/iterations:1\n"
+      "BM_string_memcpy/32/1/16/iterations:1\n"
+      "BM_string_memcpy/32/1/32/iterations:1\n"
+      "BM_string_memcpy/32/2/1/iterations:1\n"
+      "BM_string_memcpy/32/2/2/iterations:1\n"
+      "BM_string_memcpy/32/2/4/iterations:1\n"
+      "BM_string_memcpy/32/2/8/iterations:1\n"
+      "BM_string_memcpy/32/2/16/iterations:1\n"
+      "BM_string_memcpy/32/2/32/iterations:1\n"
+      "BM_string_memcpy/32/4/1/iterations:1\n"
+      "BM_string_memcpy/32/4/2/iterations:1\n"
+      "BM_string_memcpy/32/4/4/iterations:1\n"
+      "BM_string_memcpy/32/4/8/iterations:1\n"
+      "BM_string_memcpy/32/4/16/iterations:1\n"
+      "BM_string_memcpy/32/4/32/iterations:1\n"
+      "BM_string_memcpy/32/8/1/iterations:1\n"
+      "BM_string_memcpy/32/8/2/iterations:1\n"
+      "BM_string_memcpy/32/8/4/iterations:1\n"
+      "BM_string_memcpy/32/8/8/iterations:1\n"
+      "BM_string_memcpy/32/8/16/iterations:1\n"
+      "BM_string_memcpy/32/8/32/iterations:1\n"
+      "BM_string_memcpy/32/16/1/iterations:1\n"
+      "BM_string_memcpy/32/16/2/iterations:1\n"
+      "BM_string_memcpy/32/16/4/iterations:1\n"
+      "BM_string_memcpy/32/16/8/iterations:1\n"
+      "BM_string_memcpy/32/16/16/iterations:1\n"
+      "BM_string_memcpy/32/16/32/iterations:1\n"
+      "BM_string_memcpy/32/32/1/iterations:1\n"
+      "BM_string_memcpy/32/32/2/iterations:1\n"
+      "BM_string_memcpy/32/32/4/iterations:1\n"
+      "BM_string_memcpy/32/32/8/iterations:1\n"
+      "BM_string_memcpy/32/32/16/iterations:1\n"
+      "BM_string_memcpy/32/32/32/iterations:1\n"
+      "BM_string_memcpy/40/0/0/iterations:1\n"
+      "BM_string_memcpy/40/1/1/iterations:1\n"
+      "BM_string_memcpy/40/1/2/iterations:1\n"
+      "BM_string_memcpy/40/1/4/iterations:1\n"
+      "BM_string_memcpy/40/1/8/iterations:1\n"
+      "BM_string_memcpy/40/1/16/iterations:1\n"
+      "BM_string_memcpy/40/1/32/iterations:1\n"
+      "BM_string_memcpy/40/2/1/iterations:1\n"
+      "BM_string_memcpy/40/2/2/iterations:1\n"
+      "BM_string_memcpy/40/2/4/iterations:1\n"
+      "BM_string_memcpy/40/2/8/iterations:1\n"
+      "BM_string_memcpy/40/2/16/iterations:1\n"
+      "BM_string_memcpy/40/2/32/iterations:1\n"
+      "BM_string_memcpy/40/4/1/iterations:1\n"
+      "BM_string_memcpy/40/4/2/iterations:1\n"
+      "BM_string_memcpy/40/4/4/iterations:1\n"
+      "BM_string_memcpy/40/4/8/iterations:1\n"
+      "BM_string_memcpy/40/4/16/iterations:1\n"
+      "BM_string_memcpy/40/4/32/iterations:1\n"
+      "BM_string_memcpy/40/8/1/iterations:1\n"
+      "BM_string_memcpy/40/8/2/iterations:1\n"
+      "BM_string_memcpy/40/8/4/iterations:1\n"
+      "BM_string_memcpy/40/8/8/iterations:1\n"
+      "BM_string_memcpy/40/8/16/iterations:1\n"
+      "BM_string_memcpy/40/8/32/iterations:1\n"
+      "BM_string_memcpy/40/16/1/iterations:1\n"
+      "BM_string_memcpy/40/16/2/iterations:1\n"
+      "BM_string_memcpy/40/16/4/iterations:1\n"
+      "BM_string_memcpy/40/16/8/iterations:1\n"
+      "BM_string_memcpy/40/16/16/iterations:1\n"
+      "BM_string_memcpy/40/16/32/iterations:1\n"
+      "BM_string_memcpy/40/32/1/iterations:1\n"
+      "BM_string_memcpy/40/32/2/iterations:1\n"
+      "BM_string_memcpy/40/32/4/iterations:1\n"
+      "BM_string_memcpy/40/32/8/iterations:1\n"
+      "BM_string_memcpy/40/32/16/iterations:1\n"
+      "BM_string_memcpy/40/32/32/iterations:1\n"
+      "BM_string_memcpy/48/0/0/iterations:1\n"
+      "BM_string_memcpy/48/1/1/iterations:1\n"
+      "BM_string_memcpy/48/1/2/iterations:1\n"
+      "BM_string_memcpy/48/1/4/iterations:1\n"
+      "BM_string_memcpy/48/1/8/iterations:1\n"
+      "BM_string_memcpy/48/1/16/iterations:1\n"
+      "BM_string_memcpy/48/1/32/iterations:1\n"
+      "BM_string_memcpy/48/2/1/iterations:1\n"
+      "BM_string_memcpy/48/2/2/iterations:1\n"
+      "BM_string_memcpy/48/2/4/iterations:1\n"
+      "BM_string_memcpy/48/2/8/iterations:1\n"
+      "BM_string_memcpy/48/2/16/iterations:1\n"
+      "BM_string_memcpy/48/2/32/iterations:1\n"
+      "BM_string_memcpy/48/4/1/iterations:1\n"
+      "BM_string_memcpy/48/4/2/iterations:1\n"
+      "BM_string_memcpy/48/4/4/iterations:1\n"
+      "BM_string_memcpy/48/4/8/iterations:1\n"
+      "BM_string_memcpy/48/4/16/iterations:1\n"
+      "BM_string_memcpy/48/4/32/iterations:1\n"
+      "BM_string_memcpy/48/8/1/iterations:1\n"
+      "BM_string_memcpy/48/8/2/iterations:1\n"
+      "BM_string_memcpy/48/8/4/iterations:1\n"
+      "BM_string_memcpy/48/8/8/iterations:1\n"
+      "BM_string_memcpy/48/8/16/iterations:1\n"
+      "BM_string_memcpy/48/8/32/iterations:1\n"
+      "BM_string_memcpy/48/16/1/iterations:1\n"
+      "BM_string_memcpy/48/16/2/iterations:1\n"
+      "BM_string_memcpy/48/16/4/iterations:1\n"
+      "BM_string_memcpy/48/16/8/iterations:1\n"
+      "BM_string_memcpy/48/16/16/iterations:1\n"
+      "BM_string_memcpy/48/16/32/iterations:1\n"
+      "BM_string_memcpy/48/32/1/iterations:1\n"
+      "BM_string_memcpy/48/32/2/iterations:1\n"
+      "BM_string_memcpy/48/32/4/iterations:1\n"
+      "BM_string_memcpy/48/32/8/iterations:1\n"
+      "BM_string_memcpy/48/32/16/iterations:1\n"
+      "BM_string_memcpy/48/32/32/iterations:1\n"
+      "BM_string_memcpy/56/0/0/iterations:1\n"
+      "BM_string_memcpy/56/1/1/iterations:1\n"
+      "BM_string_memcpy/56/1/2/iterations:1\n"
+      "BM_string_memcpy/56/1/4/iterations:1\n"
+      "BM_string_memcpy/56/1/8/iterations:1\n"
+      "BM_string_memcpy/56/1/16/iterations:1\n"
+      "BM_string_memcpy/56/1/32/iterations:1\n"
+      "BM_string_memcpy/56/2/1/iterations:1\n"
+      "BM_string_memcpy/56/2/2/iterations:1\n"
+      "BM_string_memcpy/56/2/4/iterations:1\n"
+      "BM_string_memcpy/56/2/8/iterations:1\n"
+      "BM_string_memcpy/56/2/16/iterations:1\n"
+      "BM_string_memcpy/56/2/32/iterations:1\n"
+      "BM_string_memcpy/56/4/1/iterations:1\n"
+      "BM_string_memcpy/56/4/2/iterations:1\n"
+      "BM_string_memcpy/56/4/4/iterations:1\n"
+      "BM_string_memcpy/56/4/8/iterations:1\n"
+      "BM_string_memcpy/56/4/16/iterations:1\n"
+      "BM_string_memcpy/56/4/32/iterations:1\n"
+      "BM_string_memcpy/56/8/1/iterations:1\n"
+      "BM_string_memcpy/56/8/2/iterations:1\n"
+      "BM_string_memcpy/56/8/4/iterations:1\n"
+      "BM_string_memcpy/56/8/8/iterations:1\n"
+      "BM_string_memcpy/56/8/16/iterations:1\n"
+      "BM_string_memcpy/56/8/32/iterations:1\n"
+      "BM_string_memcpy/56/16/1/iterations:1\n"
+      "BM_string_memcpy/56/16/2/iterations:1\n"
+      "BM_string_memcpy/56/16/4/iterations:1\n"
+      "BM_string_memcpy/56/16/8/iterations:1\n"
+      "BM_string_memcpy/56/16/16/iterations:1\n"
+      "BM_string_memcpy/56/16/32/iterations:1\n"
+      "BM_string_memcpy/56/32/1/iterations:1\n"
+      "BM_string_memcpy/56/32/2/iterations:1\n"
+      "BM_string_memcpy/56/32/4/iterations:1\n"
+      "BM_string_memcpy/56/32/8/iterations:1\n"
+      "BM_string_memcpy/56/32/16/iterations:1\n"
+      "BM_string_memcpy/56/32/32/iterations:1\n"
+      "BM_string_memcpy/64/0/0/iterations:1\n"
+      "BM_string_memcpy/64/1/1/iterations:1\n"
+      "BM_string_memcpy/64/1/2/iterations:1\n"
+      "BM_string_memcpy/64/1/4/iterations:1\n"
+      "BM_string_memcpy/64/1/8/iterations:1\n"
+      "BM_string_memcpy/64/1/16/iterations:1\n"
+      "BM_string_memcpy/64/1/32/iterations:1\n"
+      "BM_string_memcpy/64/2/1/iterations:1\n"
+      "BM_string_memcpy/64/2/2/iterations:1\n"
+      "BM_string_memcpy/64/2/4/iterations:1\n"
+      "BM_string_memcpy/64/2/8/iterations:1\n"
+      "BM_string_memcpy/64/2/16/iterations:1\n"
+      "BM_string_memcpy/64/2/32/iterations:1\n"
+      "BM_string_memcpy/64/4/1/iterations:1\n"
+      "BM_string_memcpy/64/4/2/iterations:1\n"
+      "BM_string_memcpy/64/4/4/iterations:1\n"
+      "BM_string_memcpy/64/4/8/iterations:1\n"
+      "BM_string_memcpy/64/4/16/iterations:1\n"
+      "BM_string_memcpy/64/4/32/iterations:1\n"
+      "BM_string_memcpy/64/8/1/iterations:1\n"
+      "BM_string_memcpy/64/8/2/iterations:1\n"
+      "BM_string_memcpy/64/8/4/iterations:1\n"
+      "BM_string_memcpy/64/8/8/iterations:1\n"
+      "BM_string_memcpy/64/8/16/iterations:1\n"
+      "BM_string_memcpy/64/8/32/iterations:1\n"
+      "BM_string_memcpy/64/16/1/iterations:1\n"
+      "BM_string_memcpy/64/16/2/iterations:1\n"
+      "BM_string_memcpy/64/16/4/iterations:1\n"
+      "BM_string_memcpy/64/16/8/iterations:1\n"
+      "BM_string_memcpy/64/16/16/iterations:1\n"
+      "BM_string_memcpy/64/16/32/iterations:1\n"
+      "BM_string_memcpy/64/32/1/iterations:1\n"
+      "BM_string_memcpy/64/32/2/iterations:1\n"
+      "BM_string_memcpy/64/32/4/iterations:1\n"
+      "BM_string_memcpy/64/32/8/iterations:1\n"
+      "BM_string_memcpy/64/32/16/iterations:1\n"
+      "BM_string_memcpy/64/32/32/iterations:1\n"
+      "BM_string_memcpy/72/0/0/iterations:1\n"
+      "BM_string_memcpy/72/1/1/iterations:1\n"
+      "BM_string_memcpy/72/1/2/iterations:1\n"
+      "BM_string_memcpy/72/1/4/iterations:1\n"
+      "BM_string_memcpy/72/1/8/iterations:1\n"
+      "BM_string_memcpy/72/1/16/iterations:1\n"
+      "BM_string_memcpy/72/1/32/iterations:1\n"
+      "BM_string_memcpy/72/2/1/iterations:1\n"
+      "BM_string_memcpy/72/2/2/iterations:1\n"
+      "BM_string_memcpy/72/2/4/iterations:1\n"
+      "BM_string_memcpy/72/2/8/iterations:1\n"
+      "BM_string_memcpy/72/2/16/iterations:1\n"
+      "BM_string_memcpy/72/2/32/iterations:1\n"
+      "BM_string_memcpy/72/4/1/iterations:1\n"
+      "BM_string_memcpy/72/4/2/iterations:1\n"
+      "BM_string_memcpy/72/4/4/iterations:1\n"
+      "BM_string_memcpy/72/4/8/iterations:1\n"
+      "BM_string_memcpy/72/4/16/iterations:1\n"
+      "BM_string_memcpy/72/4/32/iterations:1\n"
+      "BM_string_memcpy/72/8/1/iterations:1\n"
+      "BM_string_memcpy/72/8/2/iterations:1\n"
+      "BM_string_memcpy/72/8/4/iterations:1\n"
+      "BM_string_memcpy/72/8/8/iterations:1\n"
+      "BM_string_memcpy/72/8/16/iterations:1\n"
+      "BM_string_memcpy/72/8/32/iterations:1\n"
+      "BM_string_memcpy/72/16/1/iterations:1\n"
+      "BM_string_memcpy/72/16/2/iterations:1\n"
+      "BM_string_memcpy/72/16/4/iterations:1\n"
+      "BM_string_memcpy/72/16/8/iterations:1\n"
+      "BM_string_memcpy/72/16/16/iterations:1\n"
+      "BM_string_memcpy/72/16/32/iterations:1\n"
+      "BM_string_memcpy/72/32/1/iterations:1\n"
+      "BM_string_memcpy/72/32/2/iterations:1\n"
+      "BM_string_memcpy/72/32/4/iterations:1\n"
+      "BM_string_memcpy/72/32/8/iterations:1\n"
+      "BM_string_memcpy/72/32/16/iterations:1\n"
+      "BM_string_memcpy/72/32/32/iterations:1\n"
+      "BM_string_memcpy/80/0/0/iterations:1\n"
+      "BM_string_memcpy/80/1/1/iterations:1\n"
+      "BM_string_memcpy/80/1/2/iterations:1\n"
+      "BM_string_memcpy/80/1/4/iterations:1\n"
+      "BM_string_memcpy/80/1/8/iterations:1\n"
+      "BM_string_memcpy/80/1/16/iterations:1\n"
+      "BM_string_memcpy/80/1/32/iterations:1\n"
+      "BM_string_memcpy/80/2/1/iterations:1\n"
+      "BM_string_memcpy/80/2/2/iterations:1\n"
+      "BM_string_memcpy/80/2/4/iterations:1\n"
+      "BM_string_memcpy/80/2/8/iterations:1\n"
+      "BM_string_memcpy/80/2/16/iterations:1\n"
+      "BM_string_memcpy/80/2/32/iterations:1\n"
+      "BM_string_memcpy/80/4/1/iterations:1\n"
+      "BM_string_memcpy/80/4/2/iterations:1\n"
+      "BM_string_memcpy/80/4/4/iterations:1\n"
+      "BM_string_memcpy/80/4/8/iterations:1\n"
+      "BM_string_memcpy/80/4/16/iterations:1\n"
+      "BM_string_memcpy/80/4/32/iterations:1\n"
+      "BM_string_memcpy/80/8/1/iterations:1\n"
+      "BM_string_memcpy/80/8/2/iterations:1\n"
+      "BM_string_memcpy/80/8/4/iterations:1\n"
+      "BM_string_memcpy/80/8/8/iterations:1\n"
+      "BM_string_memcpy/80/8/16/iterations:1\n"
+      "BM_string_memcpy/80/8/32/iterations:1\n"
+      "BM_string_memcpy/80/16/1/iterations:1\n"
+      "BM_string_memcpy/80/16/2/iterations:1\n"
+      "BM_string_memcpy/80/16/4/iterations:1\n"
+      "BM_string_memcpy/80/16/8/iterations:1\n"
+      "BM_string_memcpy/80/16/16/iterations:1\n"
+      "BM_string_memcpy/80/16/32/iterations:1\n"
+      "BM_string_memcpy/80/32/1/iterations:1\n"
+      "BM_string_memcpy/80/32/2/iterations:1\n"
+      "BM_string_memcpy/80/32/4/iterations:1\n"
+      "BM_string_memcpy/80/32/8/iterations:1\n"
+      "BM_string_memcpy/80/32/16/iterations:1\n"
+      "BM_string_memcpy/80/32/32/iterations:1\n"
+      "BM_string_memcpy/88/0/0/iterations:1\n"
+      "BM_string_memcpy/88/1/1/iterations:1\n"
+      "BM_string_memcpy/88/1/2/iterations:1\n"
+      "BM_string_memcpy/88/1/4/iterations:1\n"
+      "BM_string_memcpy/88/1/8/iterations:1\n"
+      "BM_string_memcpy/88/1/16/iterations:1\n"
+      "BM_string_memcpy/88/1/32/iterations:1\n"
+      "BM_string_memcpy/88/2/1/iterations:1\n"
+      "BM_string_memcpy/88/2/2/iterations:1\n"
+      "BM_string_memcpy/88/2/4/iterations:1\n"
+      "BM_string_memcpy/88/2/8/iterations:1\n"
+      "BM_string_memcpy/88/2/16/iterations:1\n"
+      "BM_string_memcpy/88/2/32/iterations:1\n"
+      "BM_string_memcpy/88/4/1/iterations:1\n"
+      "BM_string_memcpy/88/4/2/iterations:1\n"
+      "BM_string_memcpy/88/4/4/iterations:1\n"
+      "BM_string_memcpy/88/4/8/iterations:1\n"
+      "BM_string_memcpy/88/4/16/iterations:1\n"
+      "BM_string_memcpy/88/4/32/iterations:1\n"
+      "BM_string_memcpy/88/8/1/iterations:1\n"
+      "BM_string_memcpy/88/8/2/iterations:1\n"
+      "BM_string_memcpy/88/8/4/iterations:1\n"
+      "BM_string_memcpy/88/8/8/iterations:1\n"
+      "BM_string_memcpy/88/8/16/iterations:1\n"
+      "BM_string_memcpy/88/8/32/iterations:1\n"
+      "BM_string_memcpy/88/16/1/iterations:1\n"
+      "BM_string_memcpy/88/16/2/iterations:1\n"
+      "BM_string_memcpy/88/16/4/iterations:1\n"
+      "BM_string_memcpy/88/16/8/iterations:1\n"
+      "BM_string_memcpy/88/16/16/iterations:1\n"
+      "BM_string_memcpy/88/16/32/iterations:1\n"
+      "BM_string_memcpy/88/32/1/iterations:1\n"
+      "BM_string_memcpy/88/32/2/iterations:1\n"
+      "BM_string_memcpy/88/32/4/iterations:1\n"
+      "BM_string_memcpy/88/32/8/iterations:1\n"
+      "BM_string_memcpy/88/32/16/iterations:1\n"
+      "BM_string_memcpy/88/32/32/iterations:1\n"
+      "BM_string_memcpy/96/0/0/iterations:1\n"
+      "BM_string_memcpy/96/1/1/iterations:1\n"
+      "BM_string_memcpy/96/1/2/iterations:1\n"
+      "BM_string_memcpy/96/1/4/iterations:1\n"
+      "BM_string_memcpy/96/1/8/iterations:1\n"
+      "BM_string_memcpy/96/1/16/iterations:1\n"
+      "BM_string_memcpy/96/1/32/iterations:1\n"
+      "BM_string_memcpy/96/2/1/iterations:1\n"
+      "BM_string_memcpy/96/2/2/iterations:1\n"
+      "BM_string_memcpy/96/2/4/iterations:1\n"
+      "BM_string_memcpy/96/2/8/iterations:1\n"
+      "BM_string_memcpy/96/2/16/iterations:1\n"
+      "BM_string_memcpy/96/2/32/iterations:1\n"
+      "BM_string_memcpy/96/4/1/iterations:1\n"
+      "BM_string_memcpy/96/4/2/iterations:1\n"
+      "BM_string_memcpy/96/4/4/iterations:1\n"
+      "BM_string_memcpy/96/4/8/iterations:1\n"
+      "BM_string_memcpy/96/4/16/iterations:1\n"
+      "BM_string_memcpy/96/4/32/iterations:1\n"
+      "BM_string_memcpy/96/8/1/iterations:1\n"
+      "BM_string_memcpy/96/8/2/iterations:1\n"
+      "BM_string_memcpy/96/8/4/iterations:1\n"
+      "BM_string_memcpy/96/8/8/iterations:1\n"
+      "BM_string_memcpy/96/8/16/iterations:1\n"
+      "BM_string_memcpy/96/8/32/iterations:1\n"
+      "BM_string_memcpy/96/16/1/iterations:1\n"
+      "BM_string_memcpy/96/16/2/iterations:1\n"
+      "BM_string_memcpy/96/16/4/iterations:1\n"
+      "BM_string_memcpy/96/16/8/iterations:1\n"
+      "BM_string_memcpy/96/16/16/iterations:1\n"
+      "BM_string_memcpy/96/16/32/iterations:1\n"
+      "BM_string_memcpy/96/32/1/iterations:1\n"
+      "BM_string_memcpy/96/32/2/iterations:1\n"
+      "BM_string_memcpy/96/32/4/iterations:1\n"
+      "BM_string_memcpy/96/32/8/iterations:1\n"
+      "BM_string_memcpy/96/32/16/iterations:1\n"
+      "BM_string_memcpy/96/32/32/iterations:1\n"
+      "BM_string_memcpy/104/0/0/iterations:1\n"
+      "BM_string_memcpy/104/1/1/iterations:1\n"
+      "BM_string_memcpy/104/1/2/iterations:1\n"
+      "BM_string_memcpy/104/1/4/iterations:1\n"
+      "BM_string_memcpy/104/1/8/iterations:1\n"
+      "BM_string_memcpy/104/1/16/iterations:1\n"
+      "BM_string_memcpy/104/1/32/iterations:1\n"
+      "BM_string_memcpy/104/2/1/iterations:1\n"
+      "BM_string_memcpy/104/2/2/iterations:1\n"
+      "BM_string_memcpy/104/2/4/iterations:1\n"
+      "BM_string_memcpy/104/2/8/iterations:1\n"
+      "BM_string_memcpy/104/2/16/iterations:1\n"
+      "BM_string_memcpy/104/2/32/iterations:1\n"
+      "BM_string_memcpy/104/4/1/iterations:1\n"
+      "BM_string_memcpy/104/4/2/iterations:1\n"
+      "BM_string_memcpy/104/4/4/iterations:1\n"
+      "BM_string_memcpy/104/4/8/iterations:1\n"
+      "BM_string_memcpy/104/4/16/iterations:1\n"
+      "BM_string_memcpy/104/4/32/iterations:1\n"
+      "BM_string_memcpy/104/8/1/iterations:1\n"
+      "BM_string_memcpy/104/8/2/iterations:1\n"
+      "BM_string_memcpy/104/8/4/iterations:1\n"
+      "BM_string_memcpy/104/8/8/iterations:1\n"
+      "BM_string_memcpy/104/8/16/iterations:1\n"
+      "BM_string_memcpy/104/8/32/iterations:1\n"
+      "BM_string_memcpy/104/16/1/iterations:1\n"
+      "BM_string_memcpy/104/16/2/iterations:1\n"
+      "BM_string_memcpy/104/16/4/iterations:1\n"
+      "BM_string_memcpy/104/16/8/iterations:1\n"
+      "BM_string_memcpy/104/16/16/iterations:1\n"
+      "BM_string_memcpy/104/16/32/iterations:1\n"
+      "BM_string_memcpy/104/32/1/iterations:1\n"
+      "BM_string_memcpy/104/32/2/iterations:1\n"
+      "BM_string_memcpy/104/32/4/iterations:1\n"
+      "BM_string_memcpy/104/32/8/iterations:1\n"
+      "BM_string_memcpy/104/32/16/iterations:1\n"
+      "BM_string_memcpy/104/32/32/iterations:1\n"
+      "BM_string_memcpy/112/0/0/iterations:1\n"
+      "BM_string_memcpy/112/1/1/iterations:1\n"
+      "BM_string_memcpy/112/1/2/iterations:1\n"
+      "BM_string_memcpy/112/1/4/iterations:1\n"
+      "BM_string_memcpy/112/1/8/iterations:1\n"
+      "BM_string_memcpy/112/1/16/iterations:1\n"
+      "BM_string_memcpy/112/1/32/iterations:1\n"
+      "BM_string_memcpy/112/2/1/iterations:1\n"
+      "BM_string_memcpy/112/2/2/iterations:1\n"
+      "BM_string_memcpy/112/2/4/iterations:1\n"
+      "BM_string_memcpy/112/2/8/iterations:1\n"
+      "BM_string_memcpy/112/2/16/iterations:1\n"
+      "BM_string_memcpy/112/2/32/iterations:1\n"
+      "BM_string_memcpy/112/4/1/iterations:1\n"
+      "BM_string_memcpy/112/4/2/iterations:1\n"
+      "BM_string_memcpy/112/4/4/iterations:1\n"
+      "BM_string_memcpy/112/4/8/iterations:1\n"
+      "BM_string_memcpy/112/4/16/iterations:1\n"
+      "BM_string_memcpy/112/4/32/iterations:1\n"
+      "BM_string_memcpy/112/8/1/iterations:1\n"
+      "BM_string_memcpy/112/8/2/iterations:1\n"
+      "BM_string_memcpy/112/8/4/iterations:1\n"
+      "BM_string_memcpy/112/8/8/iterations:1\n"
+      "BM_string_memcpy/112/8/16/iterations:1\n"
+      "BM_string_memcpy/112/8/32/iterations:1\n"
+      "BM_string_memcpy/112/16/1/iterations:1\n"
+      "BM_string_memcpy/112/16/2/iterations:1\n"
+      "BM_string_memcpy/112/16/4/iterations:1\n"
+      "BM_string_memcpy/112/16/8/iterations:1\n"
+      "BM_string_memcpy/112/16/16/iterations:1\n"
+      "BM_string_memcpy/112/16/32/iterations:1\n"
+      "BM_string_memcpy/112/32/1/iterations:1\n"
+      "BM_string_memcpy/112/32/2/iterations:1\n"
+      "BM_string_memcpy/112/32/4/iterations:1\n"
+      "BM_string_memcpy/112/32/8/iterations:1\n"
+      "BM_string_memcpy/112/32/16/iterations:1\n"
+      "BM_string_memcpy/112/32/32/iterations:1\n"
+      "BM_string_memcpy/120/0/0/iterations:1\n"
+      "BM_string_memcpy/120/1/1/iterations:1\n"
+      "BM_string_memcpy/120/1/2/iterations:1\n"
+      "BM_string_memcpy/120/1/4/iterations:1\n"
+      "BM_string_memcpy/120/1/8/iterations:1\n"
+      "BM_string_memcpy/120/1/16/iterations:1\n"
+      "BM_string_memcpy/120/1/32/iterations:1\n"
+      "BM_string_memcpy/120/2/1/iterations:1\n"
+      "BM_string_memcpy/120/2/2/iterations:1\n"
+      "BM_string_memcpy/120/2/4/iterations:1\n"
+      "BM_string_memcpy/120/2/8/iterations:1\n"
+      "BM_string_memcpy/120/2/16/iterations:1\n"
+      "BM_string_memcpy/120/2/32/iterations:1\n"
+      "BM_string_memcpy/120/4/1/iterations:1\n"
+      "BM_string_memcpy/120/4/2/iterations:1\n"
+      "BM_string_memcpy/120/4/4/iterations:1\n"
+      "BM_string_memcpy/120/4/8/iterations:1\n"
+      "BM_string_memcpy/120/4/16/iterations:1\n"
+      "BM_string_memcpy/120/4/32/iterations:1\n"
+      "BM_string_memcpy/120/8/1/iterations:1\n"
+      "BM_string_memcpy/120/8/2/iterations:1\n"
+      "BM_string_memcpy/120/8/4/iterations:1\n"
+      "BM_string_memcpy/120/8/8/iterations:1\n"
+      "BM_string_memcpy/120/8/16/iterations:1\n"
+      "BM_string_memcpy/120/8/32/iterations:1\n"
+      "BM_string_memcpy/120/16/1/iterations:1\n"
+      "BM_string_memcpy/120/16/2/iterations:1\n"
+      "BM_string_memcpy/120/16/4/iterations:1\n"
+      "BM_string_memcpy/120/16/8/iterations:1\n"
+      "BM_string_memcpy/120/16/16/iterations:1\n"
+      "BM_string_memcpy/120/16/32/iterations:1\n"
+      "BM_string_memcpy/120/32/1/iterations:1\n"
+      "BM_string_memcpy/120/32/2/iterations:1\n"
+      "BM_string_memcpy/120/32/4/iterations:1\n"
+      "BM_string_memcpy/120/32/8/iterations:1\n"
+      "BM_string_memcpy/120/32/16/iterations:1\n"
+      "BM_string_memcpy/120/32/32/iterations:1\n"
+      "BM_string_memcpy/128/0/0/iterations:1\n"
+      "BM_string_memcpy/128/1/1/iterations:1\n"
+      "BM_string_memcpy/128/1/2/iterations:1\n"
+      "BM_string_memcpy/128/1/4/iterations:1\n"
+      "BM_string_memcpy/128/1/8/iterations:1\n"
+      "BM_string_memcpy/128/1/16/iterations:1\n"
+      "BM_string_memcpy/128/1/32/iterations:1\n"
+      "BM_string_memcpy/128/2/1/iterations:1\n"
+      "BM_string_memcpy/128/2/2/iterations:1\n"
+      "BM_string_memcpy/128/2/4/iterations:1\n"
+      "BM_string_memcpy/128/2/8/iterations:1\n"
+      "BM_string_memcpy/128/2/16/iterations:1\n"
+      "BM_string_memcpy/128/2/32/iterations:1\n"
+      "BM_string_memcpy/128/4/1/iterations:1\n"
+      "BM_string_memcpy/128/4/2/iterations:1\n"
+      "BM_string_memcpy/128/4/4/iterations:1\n"
+      "BM_string_memcpy/128/4/8/iterations:1\n"
+      "BM_string_memcpy/128/4/16/iterations:1\n"
+      "BM_string_memcpy/128/4/32/iterations:1\n"
+      "BM_string_memcpy/128/8/1/iterations:1\n"
+      "BM_string_memcpy/128/8/2/iterations:1\n"
+      "BM_string_memcpy/128/8/4/iterations:1\n"
+      "BM_string_memcpy/128/8/8/iterations:1\n"
+      "BM_string_memcpy/128/8/16/iterations:1\n"
+      "BM_string_memcpy/128/8/32/iterations:1\n"
+      "BM_string_memcpy/128/16/1/iterations:1\n"
+      "BM_string_memcpy/128/16/2/iterations:1\n"
+      "BM_string_memcpy/128/16/4/iterations:1\n"
+      "BM_string_memcpy/128/16/8/iterations:1\n"
+      "BM_string_memcpy/128/16/16/iterations:1\n"
+      "BM_string_memcpy/128/16/32/iterations:1\n"
+      "BM_string_memcpy/128/32/1/iterations:1\n"
+      "BM_string_memcpy/128/32/2/iterations:1\n"
+      "BM_string_memcpy/128/32/4/iterations:1\n"
+      "BM_string_memcpy/128/32/8/iterations:1\n"
+      "BM_string_memcpy/128/32/16/iterations:1\n"
+      "BM_string_memcpy/128/32/32/iterations:1\n"
+      "BM_string_memcpy/136/0/0/iterations:1\n"
+      "BM_string_memcpy/136/1/1/iterations:1\n"
+      "BM_string_memcpy/136/1/2/iterations:1\n"
+      "BM_string_memcpy/136/1/4/iterations:1\n"
+      "BM_string_memcpy/136/1/8/iterations:1\n"
+      "BM_string_memcpy/136/1/16/iterations:1\n"
+      "BM_string_memcpy/136/1/32/iterations:1\n"
+      "BM_string_memcpy/136/2/1/iterations:1\n"
+      "BM_string_memcpy/136/2/2/iterations:1\n"
+      "BM_string_memcpy/136/2/4/iterations:1\n"
+      "BM_string_memcpy/136/2/8/iterations:1\n"
+      "BM_string_memcpy/136/2/16/iterations:1\n"
+      "BM_string_memcpy/136/2/32/iterations:1\n"
+      "BM_string_memcpy/136/4/1/iterations:1\n"
+      "BM_string_memcpy/136/4/2/iterations:1\n"
+      "BM_string_memcpy/136/4/4/iterations:1\n"
+      "BM_string_memcpy/136/4/8/iterations:1\n"
+      "BM_string_memcpy/136/4/16/iterations:1\n"
+      "BM_string_memcpy/136/4/32/iterations:1\n"
+      "BM_string_memcpy/136/8/1/iterations:1\n"
+      "BM_string_memcpy/136/8/2/iterations:1\n"
+      "BM_string_memcpy/136/8/4/iterations:1\n"
+      "BM_string_memcpy/136/8/8/iterations:1\n"
+      "BM_string_memcpy/136/8/16/iterations:1\n"
+      "BM_string_memcpy/136/8/32/iterations:1\n"
+      "BM_string_memcpy/136/16/1/iterations:1\n"
+      "BM_string_memcpy/136/16/2/iterations:1\n"
+      "BM_string_memcpy/136/16/4/iterations:1\n"
+      "BM_string_memcpy/136/16/8/iterations:1\n"
+      "BM_string_memcpy/136/16/16/iterations:1\n"
+      "BM_string_memcpy/136/16/32/iterations:1\n"
+      "BM_string_memcpy/136/32/1/iterations:1\n"
+      "BM_string_memcpy/136/32/2/iterations:1\n"
+      "BM_string_memcpy/136/32/4/iterations:1\n"
+      "BM_string_memcpy/136/32/8/iterations:1\n"
+      "BM_string_memcpy/136/32/16/iterations:1\n"
+      "BM_string_memcpy/136/32/32/iterations:1\n"
+      "BM_string_memcpy/144/0/0/iterations:1\n"
+      "BM_string_memcpy/144/1/1/iterations:1\n"
+      "BM_string_memcpy/144/1/2/iterations:1\n"
+      "BM_string_memcpy/144/1/4/iterations:1\n"
+      "BM_string_memcpy/144/1/8/iterations:1\n"
+      "BM_string_memcpy/144/1/16/iterations:1\n"
+      "BM_string_memcpy/144/1/32/iterations:1\n"
+      "BM_string_memcpy/144/2/1/iterations:1\n"
+      "BM_string_memcpy/144/2/2/iterations:1\n"
+      "BM_string_memcpy/144/2/4/iterations:1\n"
+      "BM_string_memcpy/144/2/8/iterations:1\n"
+      "BM_string_memcpy/144/2/16/iterations:1\n"
+      "BM_string_memcpy/144/2/32/iterations:1\n"
+      "BM_string_memcpy/144/4/1/iterations:1\n"
+      "BM_string_memcpy/144/4/2/iterations:1\n"
+      "BM_string_memcpy/144/4/4/iterations:1\n"
+      "BM_string_memcpy/144/4/8/iterations:1\n"
+      "BM_string_memcpy/144/4/16/iterations:1\n"
+      "BM_string_memcpy/144/4/32/iterations:1\n"
+      "BM_string_memcpy/144/8/1/iterations:1\n"
+      "BM_string_memcpy/144/8/2/iterations:1\n"
+      "BM_string_memcpy/144/8/4/iterations:1\n"
+      "BM_string_memcpy/144/8/8/iterations:1\n"
+      "BM_string_memcpy/144/8/16/iterations:1\n"
+      "BM_string_memcpy/144/8/32/iterations:1\n"
+      "BM_string_memcpy/144/16/1/iterations:1\n"
+      "BM_string_memcpy/144/16/2/iterations:1\n"
+      "BM_string_memcpy/144/16/4/iterations:1\n"
+      "BM_string_memcpy/144/16/8/iterations:1\n"
+      "BM_string_memcpy/144/16/16/iterations:1\n"
+      "BM_string_memcpy/144/16/32/iterations:1\n"
+      "BM_string_memcpy/144/32/1/iterations:1\n"
+      "BM_string_memcpy/144/32/2/iterations:1\n"
+      "BM_string_memcpy/144/32/4/iterations:1\n"
+      "BM_string_memcpy/144/32/8/iterations:1\n"
+      "BM_string_memcpy/144/32/16/iterations:1\n"
+      "BM_string_memcpy/144/32/32/iterations:1\n"
+      "BM_string_memcpy/160/0/0/iterations:1\n"
+      "BM_string_memcpy/160/1/1/iterations:1\n"
+      "BM_string_memcpy/160/1/2/iterations:1\n"
+      "BM_string_memcpy/160/1/4/iterations:1\n"
+      "BM_string_memcpy/160/1/8/iterations:1\n"
+      "BM_string_memcpy/160/1/16/iterations:1\n"
+      "BM_string_memcpy/160/1/32/iterations:1\n"
+      "BM_string_memcpy/160/2/1/iterations:1\n"
+      "BM_string_memcpy/160/2/2/iterations:1\n"
+      "BM_string_memcpy/160/2/4/iterations:1\n"
+      "BM_string_memcpy/160/2/8/iterations:1\n"
+      "BM_string_memcpy/160/2/16/iterations:1\n"
+      "BM_string_memcpy/160/2/32/iterations:1\n"
+      "BM_string_memcpy/160/4/1/iterations:1\n"
+      "BM_string_memcpy/160/4/2/iterations:1\n"
+      "BM_string_memcpy/160/4/4/iterations:1\n"
+      "BM_string_memcpy/160/4/8/iterations:1\n"
+      "BM_string_memcpy/160/4/16/iterations:1\n"
+      "BM_string_memcpy/160/4/32/iterations:1\n"
+      "BM_string_memcpy/160/8/1/iterations:1\n"
+      "BM_string_memcpy/160/8/2/iterations:1\n"
+      "BM_string_memcpy/160/8/4/iterations:1\n"
+      "BM_string_memcpy/160/8/8/iterations:1\n"
+      "BM_string_memcpy/160/8/16/iterations:1\n"
+      "BM_string_memcpy/160/8/32/iterations:1\n"
+      "BM_string_memcpy/160/16/1/iterations:1\n"
+      "BM_string_memcpy/160/16/2/iterations:1\n"
+      "BM_string_memcpy/160/16/4/iterations:1\n"
+      "BM_string_memcpy/160/16/8/iterations:1\n"
+      "BM_string_memcpy/160/16/16/iterations:1\n"
+      "BM_string_memcpy/160/16/32/iterations:1\n"
+      "BM_string_memcpy/160/32/1/iterations:1\n"
+      "BM_string_memcpy/160/32/2/iterations:1\n"
+      "BM_string_memcpy/160/32/4/iterations:1\n"
+      "BM_string_memcpy/160/32/8/iterations:1\n"
+      "BM_string_memcpy/160/32/16/iterations:1\n"
+      "BM_string_memcpy/160/32/32/iterations:1\n"
+      "BM_string_memcpy/176/0/0/iterations:1\n"
+      "BM_string_memcpy/176/1/1/iterations:1\n"
+      "BM_string_memcpy/176/1/2/iterations:1\n"
+      "BM_string_memcpy/176/1/4/iterations:1\n"
+      "BM_string_memcpy/176/1/8/iterations:1\n"
+      "BM_string_memcpy/176/1/16/iterations:1\n"
+      "BM_string_memcpy/176/1/32/iterations:1\n"
+      "BM_string_memcpy/176/2/1/iterations:1\n"
+      "BM_string_memcpy/176/2/2/iterations:1\n"
+      "BM_string_memcpy/176/2/4/iterations:1\n"
+      "BM_string_memcpy/176/2/8/iterations:1\n"
+      "BM_string_memcpy/176/2/16/iterations:1\n"
+      "BM_string_memcpy/176/2/32/iterations:1\n"
+      "BM_string_memcpy/176/4/1/iterations:1\n"
+      "BM_string_memcpy/176/4/2/iterations:1\n"
+      "BM_string_memcpy/176/4/4/iterations:1\n"
+      "BM_string_memcpy/176/4/8/iterations:1\n"
+      "BM_string_memcpy/176/4/16/iterations:1\n"
+      "BM_string_memcpy/176/4/32/iterations:1\n"
+      "BM_string_memcpy/176/8/1/iterations:1\n"
+      "BM_string_memcpy/176/8/2/iterations:1\n"
+      "BM_string_memcpy/176/8/4/iterations:1\n"
+      "BM_string_memcpy/176/8/8/iterations:1\n"
+      "BM_string_memcpy/176/8/16/iterations:1\n"
+      "BM_string_memcpy/176/8/32/iterations:1\n"
+      "BM_string_memcpy/176/16/1/iterations:1\n"
+      "BM_string_memcpy/176/16/2/iterations:1\n"
+      "BM_string_memcpy/176/16/4/iterations:1\n"
+      "BM_string_memcpy/176/16/8/iterations:1\n"
+      "BM_string_memcpy/176/16/16/iterations:1\n"
+      "BM_string_memcpy/176/16/32/iterations:1\n"
+      "BM_string_memcpy/176/32/1/iterations:1\n"
+      "BM_string_memcpy/176/32/2/iterations:1\n"
+      "BM_string_memcpy/176/32/4/iterations:1\n"
+      "BM_string_memcpy/176/32/8/iterations:1\n"
+      "BM_string_memcpy/176/32/16/iterations:1\n"
+      "BM_string_memcpy/176/32/32/iterations:1\n"
+      "BM_string_memcpy/192/0/0/iterations:1\n"
+      "BM_string_memcpy/192/1/1/iterations:1\n"
+      "BM_string_memcpy/192/1/2/iterations:1\n"
+      "BM_string_memcpy/192/1/4/iterations:1\n"
+      "BM_string_memcpy/192/1/8/iterations:1\n"
+      "BM_string_memcpy/192/1/16/iterations:1\n"
+      "BM_string_memcpy/192/1/32/iterations:1\n"
+      "BM_string_memcpy/192/2/1/iterations:1\n"
+      "BM_string_memcpy/192/2/2/iterations:1\n"
+      "BM_string_memcpy/192/2/4/iterations:1\n"
+      "BM_string_memcpy/192/2/8/iterations:1\n"
+      "BM_string_memcpy/192/2/16/iterations:1\n"
+      "BM_string_memcpy/192/2/32/iterations:1\n"
+      "BM_string_memcpy/192/4/1/iterations:1\n"
+      "BM_string_memcpy/192/4/2/iterations:1\n"
+      "BM_string_memcpy/192/4/4/iterations:1\n"
+      "BM_string_memcpy/192/4/8/iterations:1\n"
+      "BM_string_memcpy/192/4/16/iterations:1\n"
+      "BM_string_memcpy/192/4/32/iterations:1\n"
+      "BM_string_memcpy/192/8/1/iterations:1\n"
+      "BM_string_memcpy/192/8/2/iterations:1\n"
+      "BM_string_memcpy/192/8/4/iterations:1\n"
+      "BM_string_memcpy/192/8/8/iterations:1\n"
+      "BM_string_memcpy/192/8/16/iterations:1\n"
+      "BM_string_memcpy/192/8/32/iterations:1\n"
+      "BM_string_memcpy/192/16/1/iterations:1\n"
+      "BM_string_memcpy/192/16/2/iterations:1\n"
+      "BM_string_memcpy/192/16/4/iterations:1\n"
+      "BM_string_memcpy/192/16/8/iterations:1\n"
+      "BM_string_memcpy/192/16/16/iterations:1\n"
+      "BM_string_memcpy/192/16/32/iterations:1\n"
+      "BM_string_memcpy/192/32/1/iterations:1\n"
+      "BM_string_memcpy/192/32/2/iterations:1\n"
+      "BM_string_memcpy/192/32/4/iterations:1\n"
+      "BM_string_memcpy/192/32/8/iterations:1\n"
+      "BM_string_memcpy/192/32/16/iterations:1\n"
+      "BM_string_memcpy/192/32/32/iterations:1\n"
+      "BM_string_memcpy/208/0/0/iterations:1\n"
+      "BM_string_memcpy/208/1/1/iterations:1\n"
+      "BM_string_memcpy/208/1/2/iterations:1\n"
+      "BM_string_memcpy/208/1/4/iterations:1\n"
+      "BM_string_memcpy/208/1/8/iterations:1\n"
+      "BM_string_memcpy/208/1/16/iterations:1\n"
+      "BM_string_memcpy/208/1/32/iterations:1\n"
+      "BM_string_memcpy/208/2/1/iterations:1\n"
+      "BM_string_memcpy/208/2/2/iterations:1\n"
+      "BM_string_memcpy/208/2/4/iterations:1\n"
+      "BM_string_memcpy/208/2/8/iterations:1\n"
+      "BM_string_memcpy/208/2/16/iterations:1\n"
+      "BM_string_memcpy/208/2/32/iterations:1\n"
+      "BM_string_memcpy/208/4/1/iterations:1\n"
+      "BM_string_memcpy/208/4/2/iterations:1\n"
+      "BM_string_memcpy/208/4/4/iterations:1\n"
+      "BM_string_memcpy/208/4/8/iterations:1\n"
+      "BM_string_memcpy/208/4/16/iterations:1\n"
+      "BM_string_memcpy/208/4/32/iterations:1\n"
+      "BM_string_memcpy/208/8/1/iterations:1\n"
+      "BM_string_memcpy/208/8/2/iterations:1\n"
+      "BM_string_memcpy/208/8/4/iterations:1\n"
+      "BM_string_memcpy/208/8/8/iterations:1\n"
+      "BM_string_memcpy/208/8/16/iterations:1\n"
+      "BM_string_memcpy/208/8/32/iterations:1\n"
+      "BM_string_memcpy/208/16/1/iterations:1\n"
+      "BM_string_memcpy/208/16/2/iterations:1\n"
+      "BM_string_memcpy/208/16/4/iterations:1\n"
+      "BM_string_memcpy/208/16/8/iterations:1\n"
+      "BM_string_memcpy/208/16/16/iterations:1\n"
+      "BM_string_memcpy/208/16/32/iterations:1\n"
+      "BM_string_memcpy/208/32/1/iterations:1\n"
+      "BM_string_memcpy/208/32/2/iterations:1\n"
+      "BM_string_memcpy/208/32/4/iterations:1\n"
+      "BM_string_memcpy/208/32/8/iterations:1\n"
+      "BM_string_memcpy/208/32/16/iterations:1\n"
+      "BM_string_memcpy/208/32/32/iterations:1\n"
+      "BM_string_memcpy/224/0/0/iterations:1\n"
+      "BM_string_memcpy/224/1/1/iterations:1\n"
+      "BM_string_memcpy/224/1/2/iterations:1\n"
+      "BM_string_memcpy/224/1/4/iterations:1\n"
+      "BM_string_memcpy/224/1/8/iterations:1\n"
+      "BM_string_memcpy/224/1/16/iterations:1\n"
+      "BM_string_memcpy/224/1/32/iterations:1\n"
+      "BM_string_memcpy/224/2/1/iterations:1\n"
+      "BM_string_memcpy/224/2/2/iterations:1\n"
+      "BM_string_memcpy/224/2/4/iterations:1\n"
+      "BM_string_memcpy/224/2/8/iterations:1\n"
+      "BM_string_memcpy/224/2/16/iterations:1\n"
+      "BM_string_memcpy/224/2/32/iterations:1\n"
+      "BM_string_memcpy/224/4/1/iterations:1\n"
+      "BM_string_memcpy/224/4/2/iterations:1\n"
+      "BM_string_memcpy/224/4/4/iterations:1\n"
+      "BM_string_memcpy/224/4/8/iterations:1\n"
+      "BM_string_memcpy/224/4/16/iterations:1\n"
+      "BM_string_memcpy/224/4/32/iterations:1\n"
+      "BM_string_memcpy/224/8/1/iterations:1\n"
+      "BM_string_memcpy/224/8/2/iterations:1\n"
+      "BM_string_memcpy/224/8/4/iterations:1\n"
+      "BM_string_memcpy/224/8/8/iterations:1\n"
+      "BM_string_memcpy/224/8/16/iterations:1\n"
+      "BM_string_memcpy/224/8/32/iterations:1\n"
+      "BM_string_memcpy/224/16/1/iterations:1\n"
+      "BM_string_memcpy/224/16/2/iterations:1\n"
+      "BM_string_memcpy/224/16/4/iterations:1\n"
+      "BM_string_memcpy/224/16/8/iterations:1\n"
+      "BM_string_memcpy/224/16/16/iterations:1\n"
+      "BM_string_memcpy/224/16/32/iterations:1\n"
+      "BM_string_memcpy/224/32/1/iterations:1\n"
+      "BM_string_memcpy/224/32/2/iterations:1\n"
+      "BM_string_memcpy/224/32/4/iterations:1\n"
+      "BM_string_memcpy/224/32/8/iterations:1\n"
+      "BM_string_memcpy/224/32/16/iterations:1\n"
+      "BM_string_memcpy/224/32/32/iterations:1\n"
+      "BM_string_memcpy/240/0/0/iterations:1\n"
+      "BM_string_memcpy/240/1/1/iterations:1\n"
+      "BM_string_memcpy/240/1/2/iterations:1\n"
+      "BM_string_memcpy/240/1/4/iterations:1\n"
+      "BM_string_memcpy/240/1/8/iterations:1\n"
+      "BM_string_memcpy/240/1/16/iterations:1\n"
+      "BM_string_memcpy/240/1/32/iterations:1\n"
+      "BM_string_memcpy/240/2/1/iterations:1\n"
+      "BM_string_memcpy/240/2/2/iterations:1\n"
+      "BM_string_memcpy/240/2/4/iterations:1\n"
+      "BM_string_memcpy/240/2/8/iterations:1\n"
+      "BM_string_memcpy/240/2/16/iterations:1\n"
+      "BM_string_memcpy/240/2/32/iterations:1\n"
+      "BM_string_memcpy/240/4/1/iterations:1\n"
+      "BM_string_memcpy/240/4/2/iterations:1\n"
+      "BM_string_memcpy/240/4/4/iterations:1\n"
+      "BM_string_memcpy/240/4/8/iterations:1\n"
+      "BM_string_memcpy/240/4/16/iterations:1\n"
+      "BM_string_memcpy/240/4/32/iterations:1\n"
+      "BM_string_memcpy/240/8/1/iterations:1\n"
+      "BM_string_memcpy/240/8/2/iterations:1\n"
+      "BM_string_memcpy/240/8/4/iterations:1\n"
+      "BM_string_memcpy/240/8/8/iterations:1\n"
+      "BM_string_memcpy/240/8/16/iterations:1\n"
+      "BM_string_memcpy/240/8/32/iterations:1\n"
+      "BM_string_memcpy/240/16/1/iterations:1\n"
+      "BM_string_memcpy/240/16/2/iterations:1\n"
+      "BM_string_memcpy/240/16/4/iterations:1\n"
+      "BM_string_memcpy/240/16/8/iterations:1\n"
+      "BM_string_memcpy/240/16/16/iterations:1\n"
+      "BM_string_memcpy/240/16/32/iterations:1\n"
+      "BM_string_memcpy/240/32/1/iterations:1\n"
+      "BM_string_memcpy/240/32/2/iterations:1\n"
+      "BM_string_memcpy/240/32/4/iterations:1\n"
+      "BM_string_memcpy/240/32/8/iterations:1\n"
+      "BM_string_memcpy/240/32/16/iterations:1\n"
+      "BM_string_memcpy/240/32/32/iterations:1\n"
+      "BM_string_memcpy/256/0/0/iterations:1\n"
+      "BM_string_memcpy/256/1/1/iterations:1\n"
+      "BM_string_memcpy/256/1/2/iterations:1\n"
+      "BM_string_memcpy/256/1/4/iterations:1\n"
+      "BM_string_memcpy/256/1/8/iterations:1\n"
+      "BM_string_memcpy/256/1/16/iterations:1\n"
+      "BM_string_memcpy/256/1/32/iterations:1\n"
+      "BM_string_memcpy/256/2/1/iterations:1\n"
+      "BM_string_memcpy/256/2/2/iterations:1\n"
+      "BM_string_memcpy/256/2/4/iterations:1\n"
+      "BM_string_memcpy/256/2/8/iterations:1\n"
+      "BM_string_memcpy/256/2/16/iterations:1\n"
+      "BM_string_memcpy/256/2/32/iterations:1\n"
+      "BM_string_memcpy/256/4/1/iterations:1\n"
+      "BM_string_memcpy/256/4/2/iterations:1\n"
+      "BM_string_memcpy/256/4/4/iterations:1\n"
+      "BM_string_memcpy/256/4/8/iterations:1\n"
+      "BM_string_memcpy/256/4/16/iterations:1\n"
+      "BM_string_memcpy/256/4/32/iterations:1\n"
+      "BM_string_memcpy/256/8/1/iterations:1\n"
+      "BM_string_memcpy/256/8/2/iterations:1\n"
+      "BM_string_memcpy/256/8/4/iterations:1\n"
+      "BM_string_memcpy/256/8/8/iterations:1\n"
+      "BM_string_memcpy/256/8/16/iterations:1\n"
+      "BM_string_memcpy/256/8/32/iterations:1\n"
+      "BM_string_memcpy/256/16/1/iterations:1\n"
+      "BM_string_memcpy/256/16/2/iterations:1\n"
+      "BM_string_memcpy/256/16/4/iterations:1\n"
+      "BM_string_memcpy/256/16/8/iterations:1\n"
+      "BM_string_memcpy/256/16/16/iterations:1\n"
+      "BM_string_memcpy/256/16/32/iterations:1\n"
+      "BM_string_memcpy/256/32/1/iterations:1\n"
+      "BM_string_memcpy/256/32/2/iterations:1\n"
+      "BM_string_memcpy/256/32/4/iterations:1\n"
+      "BM_string_memcpy/256/32/8/iterations:1\n"
+      "BM_string_memcpy/256/32/16/iterations:1\n"
+      "BM_string_memcpy/256/32/32/iterations:1\n"
+      "BM_string_memcpy/512/0/0/iterations:1\n"
+      "BM_string_memcpy/512/1/1/iterations:1\n"
+      "BM_string_memcpy/512/1/2/iterations:1\n"
+      "BM_string_memcpy/512/1/4/iterations:1\n"
+      "BM_string_memcpy/512/1/8/iterations:1\n"
+      "BM_string_memcpy/512/1/16/iterations:1\n"
+      "BM_string_memcpy/512/1/32/iterations:1\n"
+      "BM_string_memcpy/512/2/1/iterations:1\n"
+      "BM_string_memcpy/512/2/2/iterations:1\n"
+      "BM_string_memcpy/512/2/4/iterations:1\n"
+      "BM_string_memcpy/512/2/8/iterations:1\n"
+      "BM_string_memcpy/512/2/16/iterations:1\n"
+      "BM_string_memcpy/512/2/32/iterations:1\n"
+      "BM_string_memcpy/512/4/1/iterations:1\n"
+      "BM_string_memcpy/512/4/2/iterations:1\n"
+      "BM_string_memcpy/512/4/4/iterations:1\n"
+      "BM_string_memcpy/512/4/8/iterations:1\n"
+      "BM_string_memcpy/512/4/16/iterations:1\n"
+      "BM_string_memcpy/512/4/32/iterations:1\n"
+      "BM_string_memcpy/512/8/1/iterations:1\n"
+      "BM_string_memcpy/512/8/2/iterations:1\n"
+      "BM_string_memcpy/512/8/4/iterations:1\n"
+      "BM_string_memcpy/512/8/8/iterations:1\n"
+      "BM_string_memcpy/512/8/16/iterations:1\n"
+      "BM_string_memcpy/512/8/32/iterations:1\n"
+      "BM_string_memcpy/512/16/1/iterations:1\n"
+      "BM_string_memcpy/512/16/2/iterations:1\n"
+      "BM_string_memcpy/512/16/4/iterations:1\n"
+      "BM_string_memcpy/512/16/8/iterations:1\n"
+      "BM_string_memcpy/512/16/16/iterations:1\n"
+      "BM_string_memcpy/512/16/32/iterations:1\n"
+      "BM_string_memcpy/512/32/1/iterations:1\n"
+      "BM_string_memcpy/512/32/2/iterations:1\n"
+      "BM_string_memcpy/512/32/4/iterations:1\n"
+      "BM_string_memcpy/512/32/8/iterations:1\n"
+      "BM_string_memcpy/512/32/16/iterations:1\n"
+      "BM_string_memcpy/512/32/32/iterations:1\n"
+      "BM_string_memcpy/1024/0/0/iterations:1\n"
+      "BM_string_memcpy/1024/1/1/iterations:1\n"
+      "BM_string_memcpy/1024/1/2/iterations:1\n"
+      "BM_string_memcpy/1024/1/4/iterations:1\n"
+      "BM_string_memcpy/1024/1/8/iterations:1\n"
+      "BM_string_memcpy/1024/1/16/iterations:1\n"
+      "BM_string_memcpy/1024/1/32/iterations:1\n"
+      "BM_string_memcpy/1024/2/1/iterations:1\n"
+      "BM_string_memcpy/1024/2/2/iterations:1\n"
+      "BM_string_memcpy/1024/2/4/iterations:1\n"
+      "BM_string_memcpy/1024/2/8/iterations:1\n"
+      "BM_string_memcpy/1024/2/16/iterations:1\n"
+      "BM_string_memcpy/1024/2/32/iterations:1\n"
+      "BM_string_memcpy/1024/4/1/iterations:1\n"
+      "BM_string_memcpy/1024/4/2/iterations:1\n"
+      "BM_string_memcpy/1024/4/4/iterations:1\n"
+      "BM_string_memcpy/1024/4/8/iterations:1\n"
+      "BM_string_memcpy/1024/4/16/iterations:1\n"
+      "BM_string_memcpy/1024/4/32/iterations:1\n"
+      "BM_string_memcpy/1024/8/1/iterations:1\n"
+      "BM_string_memcpy/1024/8/2/iterations:1\n"
+      "BM_string_memcpy/1024/8/4/iterations:1\n"
+      "BM_string_memcpy/1024/8/8/iterations:1\n"
+      "BM_string_memcpy/1024/8/16/iterations:1\n"
+      "BM_string_memcpy/1024/8/32/iterations:1\n"
+      "BM_string_memcpy/1024/16/1/iterations:1\n"
+      "BM_string_memcpy/1024/16/2/iterations:1\n"
+      "BM_string_memcpy/1024/16/4/iterations:1\n"
+      "BM_string_memcpy/1024/16/8/iterations:1\n"
+      "BM_string_memcpy/1024/16/16/iterations:1\n"
+      "BM_string_memcpy/1024/16/32/iterations:1\n"
+      "BM_string_memcpy/1024/32/1/iterations:1\n"
+      "BM_string_memcpy/1024/32/2/iterations:1\n"
+      "BM_string_memcpy/1024/32/4/iterations:1\n"
+      "BM_string_memcpy/1024/32/8/iterations:1\n"
+      "BM_string_memcpy/1024/32/16/iterations:1\n"
+      "BM_string_memcpy/1024/32/32/iterations:1\n"
+      "BM_string_memcpy/8192/0/0/iterations:1\n"
+      "BM_string_memcpy/8192/1/1/iterations:1\n"
+      "BM_string_memcpy/8192/1/2/iterations:1\n"
+      "BM_string_memcpy/8192/1/4/iterations:1\n"
+      "BM_string_memcpy/8192/1/8/iterations:1\n"
+      "BM_string_memcpy/8192/1/16/iterations:1\n"
+      "BM_string_memcpy/8192/1/32/iterations:1\n"
+      "BM_string_memcpy/8192/2/1/iterations:1\n"
+      "BM_string_memcpy/8192/2/2/iterations:1\n"
+      "BM_string_memcpy/8192/2/4/iterations:1\n"
+      "BM_string_memcpy/8192/2/8/iterations:1\n"
+      "BM_string_memcpy/8192/2/16/iterations:1\n"
+      "BM_string_memcpy/8192/2/32/iterations:1\n"
+      "BM_string_memcpy/8192/4/1/iterations:1\n"
+      "BM_string_memcpy/8192/4/2/iterations:1\n"
+      "BM_string_memcpy/8192/4/4/iterations:1\n"
+      "BM_string_memcpy/8192/4/8/iterations:1\n"
+      "BM_string_memcpy/8192/4/16/iterations:1\n"
+      "BM_string_memcpy/8192/4/32/iterations:1\n"
+      "BM_string_memcpy/8192/8/1/iterations:1\n"
+      "BM_string_memcpy/8192/8/2/iterations:1\n"
+      "BM_string_memcpy/8192/8/4/iterations:1\n"
+      "BM_string_memcpy/8192/8/8/iterations:1\n"
+      "BM_string_memcpy/8192/8/16/iterations:1\n"
+      "BM_string_memcpy/8192/8/32/iterations:1\n"
+      "BM_string_memcpy/8192/16/1/iterations:1\n"
+      "BM_string_memcpy/8192/16/2/iterations:1\n"
+      "BM_string_memcpy/8192/16/4/iterations:1\n"
+      "BM_string_memcpy/8192/16/8/iterations:1\n"
+      "BM_string_memcpy/8192/16/16/iterations:1\n"
+      "BM_string_memcpy/8192/16/32/iterations:1\n"
+      "BM_string_memcpy/8192/32/1/iterations:1\n"
+      "BM_string_memcpy/8192/32/2/iterations:1\n"
+      "BM_string_memcpy/8192/32/4/iterations:1\n"
+      "BM_string_memcpy/8192/32/8/iterations:1\n"
+      "BM_string_memcpy/8192/32/16/iterations:1\n"
+      "BM_string_memcpy/8192/32/32/iterations:1\n"
+      "BM_string_memcpy/16384/0/0/iterations:1\n"
+      "BM_string_memcpy/16384/1/1/iterations:1\n"
+      "BM_string_memcpy/16384/1/2/iterations:1\n"
+      "BM_string_memcpy/16384/1/4/iterations:1\n"
+      "BM_string_memcpy/16384/1/8/iterations:1\n"
+      "BM_string_memcpy/16384/1/16/iterations:1\n"
+      "BM_string_memcpy/16384/1/32/iterations:1\n"
+      "BM_string_memcpy/16384/2/1/iterations:1\n"
+      "BM_string_memcpy/16384/2/2/iterations:1\n"
+      "BM_string_memcpy/16384/2/4/iterations:1\n"
+      "BM_string_memcpy/16384/2/8/iterations:1\n"
+      "BM_string_memcpy/16384/2/16/iterations:1\n"
+      "BM_string_memcpy/16384/2/32/iterations:1\n"
+      "BM_string_memcpy/16384/4/1/iterations:1\n"
+      "BM_string_memcpy/16384/4/2/iterations:1\n"
+      "BM_string_memcpy/16384/4/4/iterations:1\n"
+      "BM_string_memcpy/16384/4/8/iterations:1\n"
+      "BM_string_memcpy/16384/4/16/iterations:1\n"
+      "BM_string_memcpy/16384/4/32/iterations:1\n"
+      "BM_string_memcpy/16384/8/1/iterations:1\n"
+      "BM_string_memcpy/16384/8/2/iterations:1\n"
+      "BM_string_memcpy/16384/8/4/iterations:1\n"
+      "BM_string_memcpy/16384/8/8/iterations:1\n"
+      "BM_string_memcpy/16384/8/16/iterations:1\n"
+      "BM_string_memcpy/16384/8/32/iterations:1\n"
+      "BM_string_memcpy/16384/16/1/iterations:1\n"
+      "BM_string_memcpy/16384/16/2/iterations:1\n"
+      "BM_string_memcpy/16384/16/4/iterations:1\n"
+      "BM_string_memcpy/16384/16/8/iterations:1\n"
+      "BM_string_memcpy/16384/16/16/iterations:1\n"
+      "BM_string_memcpy/16384/16/32/iterations:1\n"
+      "BM_string_memcpy/16384/32/1/iterations:1\n"
+      "BM_string_memcpy/16384/32/2/iterations:1\n"
+      "BM_string_memcpy/16384/32/4/iterations:1\n"
+      "BM_string_memcpy/16384/32/8/iterations:1\n"
+      "BM_string_memcpy/16384/32/16/iterations:1\n"
+      "BM_string_memcpy/16384/32/32/iterations:1\n"
+      "BM_string_memcpy/32768/0/0/iterations:1\n"
+      "BM_string_memcpy/32768/1/1/iterations:1\n"
+      "BM_string_memcpy/32768/1/2/iterations:1\n"
+      "BM_string_memcpy/32768/1/4/iterations:1\n"
+      "BM_string_memcpy/32768/1/8/iterations:1\n"
+      "BM_string_memcpy/32768/1/16/iterations:1\n"
+      "BM_string_memcpy/32768/1/32/iterations:1\n"
+      "BM_string_memcpy/32768/2/1/iterations:1\n"
+      "BM_string_memcpy/32768/2/2/iterations:1\n"
+      "BM_string_memcpy/32768/2/4/iterations:1\n"
+      "BM_string_memcpy/32768/2/8/iterations:1\n"
+      "BM_string_memcpy/32768/2/16/iterations:1\n"
+      "BM_string_memcpy/32768/2/32/iterations:1\n"
+      "BM_string_memcpy/32768/4/1/iterations:1\n"
+      "BM_string_memcpy/32768/4/2/iterations:1\n"
+      "BM_string_memcpy/32768/4/4/iterations:1\n"
+      "BM_string_memcpy/32768/4/8/iterations:1\n"
+      "BM_string_memcpy/32768/4/16/iterations:1\n"
+      "BM_string_memcpy/32768/4/32/iterations:1\n"
+      "BM_string_memcpy/32768/8/1/iterations:1\n"
+      "BM_string_memcpy/32768/8/2/iterations:1\n"
+      "BM_string_memcpy/32768/8/4/iterations:1\n"
+      "BM_string_memcpy/32768/8/8/iterations:1\n"
+      "BM_string_memcpy/32768/8/16/iterations:1\n"
+      "BM_string_memcpy/32768/8/32/iterations:1\n"
+      "BM_string_memcpy/32768/16/1/iterations:1\n"
+      "BM_string_memcpy/32768/16/2/iterations:1\n"
+      "BM_string_memcpy/32768/16/4/iterations:1\n"
+      "BM_string_memcpy/32768/16/8/iterations:1\n"
+      "BM_string_memcpy/32768/16/16/iterations:1\n"
+      "BM_string_memcpy/32768/16/32/iterations:1\n"
+      "BM_string_memcpy/32768/32/1/iterations:1\n"
+      "BM_string_memcpy/32768/32/2/iterations:1\n"
+      "BM_string_memcpy/32768/32/4/iterations:1\n"
+      "BM_string_memcpy/32768/32/8/iterations:1\n"
+      "BM_string_memcpy/32768/32/16/iterations:1\n"
+      "BM_string_memcpy/32768/32/32/iterations:1\n"
+      "BM_string_memcpy/65536/0/0/iterations:1\n"
+      "BM_string_memcpy/65536/1/1/iterations:1\n"
+      "BM_string_memcpy/65536/1/2/iterations:1\n"
+      "BM_string_memcpy/65536/1/4/iterations:1\n"
+      "BM_string_memcpy/65536/1/8/iterations:1\n"
+      "BM_string_memcpy/65536/1/16/iterations:1\n"
+      "BM_string_memcpy/65536/1/32/iterations:1\n"
+      "BM_string_memcpy/65536/2/1/iterations:1\n"
+      "BM_string_memcpy/65536/2/2/iterations:1\n"
+      "BM_string_memcpy/65536/2/4/iterations:1\n"
+      "BM_string_memcpy/65536/2/8/iterations:1\n"
+      "BM_string_memcpy/65536/2/16/iterations:1\n"
+      "BM_string_memcpy/65536/2/32/iterations:1\n"
+      "BM_string_memcpy/65536/4/1/iterations:1\n"
+      "BM_string_memcpy/65536/4/2/iterations:1\n"
+      "BM_string_memcpy/65536/4/4/iterations:1\n"
+      "BM_string_memcpy/65536/4/8/iterations:1\n"
+      "BM_string_memcpy/65536/4/16/iterations:1\n"
+      "BM_string_memcpy/65536/4/32/iterations:1\n"
+      "BM_string_memcpy/65536/8/1/iterations:1\n"
+      "BM_string_memcpy/65536/8/2/iterations:1\n"
+      "BM_string_memcpy/65536/8/4/iterations:1\n"
+      "BM_string_memcpy/65536/8/8/iterations:1\n"
+      "BM_string_memcpy/65536/8/16/iterations:1\n"
+      "BM_string_memcpy/65536/8/32/iterations:1\n"
+      "BM_string_memcpy/65536/16/1/iterations:1\n"
+      "BM_string_memcpy/65536/16/2/iterations:1\n"
+      "BM_string_memcpy/65536/16/4/iterations:1\n"
+      "BM_string_memcpy/65536/16/8/iterations:1\n"
+      "BM_string_memcpy/65536/16/16/iterations:1\n"
+      "BM_string_memcpy/65536/16/32/iterations:1\n"
+      "BM_string_memcpy/65536/32/1/iterations:1\n"
+      "BM_string_memcpy/65536/32/2/iterations:1\n"
+      "BM_string_memcpy/65536/32/4/iterations:1\n"
+      "BM_string_memcpy/65536/32/8/iterations:1\n"
+      "BM_string_memcpy/65536/32/16/iterations:1\n"
+      "BM_string_memcpy/65536/32/32/iterations:1\n"
+      "BM_string_memcpy/131072/0/0/iterations:1\n"
+      "BM_string_memcpy/131072/1/1/iterations:1\n"
+      "BM_string_memcpy/131072/1/2/iterations:1\n"
+      "BM_string_memcpy/131072/1/4/iterations:1\n"
+      "BM_string_memcpy/131072/1/8/iterations:1\n"
+      "BM_string_memcpy/131072/1/16/iterations:1\n"
+      "BM_string_memcpy/131072/1/32/iterations:1\n"
+      "BM_string_memcpy/131072/2/1/iterations:1\n"
+      "BM_string_memcpy/131072/2/2/iterations:1\n"
+      "BM_string_memcpy/131072/2/4/iterations:1\n"
+      "BM_string_memcpy/131072/2/8/iterations:1\n"
+      "BM_string_memcpy/131072/2/16/iterations:1\n"
+      "BM_string_memcpy/131072/2/32/iterations:1\n"
+      "BM_string_memcpy/131072/4/1/iterations:1\n"
+      "BM_string_memcpy/131072/4/2/iterations:1\n"
+      "BM_string_memcpy/131072/4/4/iterations:1\n"
+      "BM_string_memcpy/131072/4/8/iterations:1\n"
+      "BM_string_memcpy/131072/4/16/iterations:1\n"
+      "BM_string_memcpy/131072/4/32/iterations:1\n"
+      "BM_string_memcpy/131072/8/1/iterations:1\n"
+      "BM_string_memcpy/131072/8/2/iterations:1\n"
+      "BM_string_memcpy/131072/8/4/iterations:1\n"
+      "BM_string_memcpy/131072/8/8/iterations:1\n"
+      "BM_string_memcpy/131072/8/16/iterations:1\n"
+      "BM_string_memcpy/131072/8/32/iterations:1\n"
+      "BM_string_memcpy/131072/16/1/iterations:1\n"
+      "BM_string_memcpy/131072/16/2/iterations:1\n"
+      "BM_string_memcpy/131072/16/4/iterations:1\n"
+      "BM_string_memcpy/131072/16/8/iterations:1\n"
+      "BM_string_memcpy/131072/16/16/iterations:1\n"
+      "BM_string_memcpy/131072/16/32/iterations:1\n"
+      "BM_string_memcpy/131072/32/1/iterations:1\n"
+      "BM_string_memcpy/131072/32/2/iterations:1\n"
+      "BM_string_memcpy/131072/32/4/iterations:1\n"
+      "BM_string_memcpy/131072/32/8/iterations:1\n"
+      "BM_string_memcpy/131072/32/16/iterations:1\n"
+      "BM_string_memcpy/131072/32/32/iterations:1\n"
+      "BM_string_memcpy/262144/0/0/iterations:1\n"
+      "BM_string_memcpy/262144/1/1/iterations:1\n"
+      "BM_string_memcpy/262144/1/2/iterations:1\n"
+      "BM_string_memcpy/262144/1/4/iterations:1\n"
+      "BM_string_memcpy/262144/1/8/iterations:1\n"
+      "BM_string_memcpy/262144/1/16/iterations:1\n"
+      "BM_string_memcpy/262144/1/32/iterations:1\n"
+      "BM_string_memcpy/262144/2/1/iterations:1\n"
+      "BM_string_memcpy/262144/2/2/iterations:1\n"
+      "BM_string_memcpy/262144/2/4/iterations:1\n"
+      "BM_string_memcpy/262144/2/8/iterations:1\n"
+      "BM_string_memcpy/262144/2/16/iterations:1\n"
+      "BM_string_memcpy/262144/2/32/iterations:1\n"
+      "BM_string_memcpy/262144/4/1/iterations:1\n"
+      "BM_string_memcpy/262144/4/2/iterations:1\n"
+      "BM_string_memcpy/262144/4/4/iterations:1\n"
+      "BM_string_memcpy/262144/4/8/iterations:1\n"
+      "BM_string_memcpy/262144/4/16/iterations:1\n"
+      "BM_string_memcpy/262144/4/32/iterations:1\n"
+      "BM_string_memcpy/262144/8/1/iterations:1\n"
+      "BM_string_memcpy/262144/8/2/iterations:1\n"
+      "BM_string_memcpy/262144/8/4/iterations:1\n"
+      "BM_string_memcpy/262144/8/8/iterations:1\n"
+      "BM_string_memcpy/262144/8/16/iterations:1\n"
+      "BM_string_memcpy/262144/8/32/iterations:1\n"
+      "BM_string_memcpy/262144/16/1/iterations:1\n"
+      "BM_string_memcpy/262144/16/2/iterations:1\n"
+      "BM_string_memcpy/262144/16/4/iterations:1\n"
+      "BM_string_memcpy/262144/16/8/iterations:1\n"
+      "BM_string_memcpy/262144/16/16/iterations:1\n"
+      "BM_string_memcpy/262144/16/32/iterations:1\n"
+      "BM_string_memcpy/262144/32/1/iterations:1\n"
+      "BM_string_memcpy/262144/32/2/iterations:1\n"
+      "BM_string_memcpy/262144/32/4/iterations:1\n"
+      "BM_string_memcpy/262144/32/8/iterations:1\n"
+      "BM_string_memcpy/262144/32/16/iterations:1\n"
+      "BM_string_memcpy/262144/32/32/iterations:1\n"
+      "BM_string_memcpy/524288/0/0/iterations:1\n"
+      "BM_string_memcpy/524288/1/1/iterations:1\n"
+      "BM_string_memcpy/524288/1/2/iterations:1\n"
+      "BM_string_memcpy/524288/1/4/iterations:1\n"
+      "BM_string_memcpy/524288/1/8/iterations:1\n"
+      "BM_string_memcpy/524288/1/16/iterations:1\n"
+      "BM_string_memcpy/524288/1/32/iterations:1\n"
+      "BM_string_memcpy/524288/2/1/iterations:1\n"
+      "BM_string_memcpy/524288/2/2/iterations:1\n"
+      "BM_string_memcpy/524288/2/4/iterations:1\n"
+      "BM_string_memcpy/524288/2/8/iterations:1\n"
+      "BM_string_memcpy/524288/2/16/iterations:1\n"
+      "BM_string_memcpy/524288/2/32/iterations:1\n"
+      "BM_string_memcpy/524288/4/1/iterations:1\n"
+      "BM_string_memcpy/524288/4/2/iterations:1\n"
+      "BM_string_memcpy/524288/4/4/iterations:1\n"
+      "BM_string_memcpy/524288/4/8/iterations:1\n"
+      "BM_string_memcpy/524288/4/16/iterations:1\n"
+      "BM_string_memcpy/524288/4/32/iterations:1\n"
+      "BM_string_memcpy/524288/8/1/iterations:1\n"
+      "BM_string_memcpy/524288/8/2/iterations:1\n"
+      "BM_string_memcpy/524288/8/4/iterations:1\n"
+      "BM_string_memcpy/524288/8/8/iterations:1\n"
+      "BM_string_memcpy/524288/8/16/iterations:1\n"
+      "BM_string_memcpy/524288/8/32/iterations:1\n"
+      "BM_string_memcpy/524288/16/1/iterations:1\n"
+      "BM_string_memcpy/524288/16/2/iterations:1\n"
+      "BM_string_memcpy/524288/16/4/iterations:1\n"
+      "BM_string_memcpy/524288/16/8/iterations:1\n"
+      "BM_string_memcpy/524288/16/16/iterations:1\n"
+      "BM_string_memcpy/524288/16/32/iterations:1\n"
+      "BM_string_memcpy/524288/32/1/iterations:1\n"
+      "BM_string_memcpy/524288/32/2/iterations:1\n"
+      "BM_string_memcpy/524288/32/4/iterations:1\n"
+      "BM_string_memcpy/524288/32/8/iterations:1\n"
+      "BM_string_memcpy/524288/32/16/iterations:1\n"
+      "BM_string_memcpy/524288/32/32/iterations:1\n"
+      "BM_string_memcpy/1048576/0/0/iterations:1\n"
+      "BM_string_memcpy/1048576/1/1/iterations:1\n"
+      "BM_string_memcpy/1048576/1/2/iterations:1\n"
+      "BM_string_memcpy/1048576/1/4/iterations:1\n"
+      "BM_string_memcpy/1048576/1/8/iterations:1\n"
+      "BM_string_memcpy/1048576/1/16/iterations:1\n"
+      "BM_string_memcpy/1048576/1/32/iterations:1\n"
+      "BM_string_memcpy/1048576/2/1/iterations:1\n"
+      "BM_string_memcpy/1048576/2/2/iterations:1\n"
+      "BM_string_memcpy/1048576/2/4/iterations:1\n"
+      "BM_string_memcpy/1048576/2/8/iterations:1\n"
+      "BM_string_memcpy/1048576/2/16/iterations:1\n"
+      "BM_string_memcpy/1048576/2/32/iterations:1\n"
+      "BM_string_memcpy/1048576/4/1/iterations:1\n"
+      "BM_string_memcpy/1048576/4/2/iterations:1\n"
+      "BM_string_memcpy/1048576/4/4/iterations:1\n"
+      "BM_string_memcpy/1048576/4/8/iterations:1\n"
+      "BM_string_memcpy/1048576/4/16/iterations:1\n"
+      "BM_string_memcpy/1048576/4/32/iterations:1\n"
+      "BM_string_memcpy/1048576/8/1/iterations:1\n"
+      "BM_string_memcpy/1048576/8/2/iterations:1\n"
+      "BM_string_memcpy/1048576/8/4/iterations:1\n"
+      "BM_string_memcpy/1048576/8/8/iterations:1\n"
+      "BM_string_memcpy/1048576/8/16/iterations:1\n"
+      "BM_string_memcpy/1048576/8/32/iterations:1\n"
+      "BM_string_memcpy/1048576/16/1/iterations:1\n"
+      "BM_string_memcpy/1048576/16/2/iterations:1\n"
+      "BM_string_memcpy/1048576/16/4/iterations:1\n"
+      "BM_string_memcpy/1048576/16/8/iterations:1\n"
+      "BM_string_memcpy/1048576/16/16/iterations:1\n"
+      "BM_string_memcpy/1048576/16/32/iterations:1\n"
+      "BM_string_memcpy/1048576/32/1/iterations:1\n"
+      "BM_string_memcpy/1048576/32/2/iterations:1\n"
+      "BM_string_memcpy/1048576/32/4/iterations:1\n"
+      "BM_string_memcpy/1048576/32/8/iterations:1\n"
+      "BM_string_memcpy/1048576/32/16/iterations:1\n"
+      "BM_string_memcpy/1048576/32/32/iterations:1\n"
+      "BM_string_memcpy/2097152/0/0/iterations:1\n"
+      "BM_string_memcpy/2097152/1/1/iterations:1\n"
+      "BM_string_memcpy/2097152/1/2/iterations:1\n"
+      "BM_string_memcpy/2097152/1/4/iterations:1\n"
+      "BM_string_memcpy/2097152/1/8/iterations:1\n"
+      "BM_string_memcpy/2097152/1/16/iterations:1\n"
+      "BM_string_memcpy/2097152/1/32/iterations:1\n"
+      "BM_string_memcpy/2097152/2/1/iterations:1\n"
+      "BM_string_memcpy/2097152/2/2/iterations:1\n"
+      "BM_string_memcpy/2097152/2/4/iterations:1\n"
+      "BM_string_memcpy/2097152/2/8/iterations:1\n"
+      "BM_string_memcpy/2097152/2/16/iterations:1\n"
+      "BM_string_memcpy/2097152/2/32/iterations:1\n"
+      "BM_string_memcpy/2097152/4/1/iterations:1\n"
+      "BM_string_memcpy/2097152/4/2/iterations:1\n"
+      "BM_string_memcpy/2097152/4/4/iterations:1\n"
+      "BM_string_memcpy/2097152/4/8/iterations:1\n"
+      "BM_string_memcpy/2097152/4/16/iterations:1\n"
+      "BM_string_memcpy/2097152/4/32/iterations:1\n"
+      "BM_string_memcpy/2097152/8/1/iterations:1\n"
+      "BM_string_memcpy/2097152/8/2/iterations:1\n"
+      "BM_string_memcpy/2097152/8/4/iterations:1\n"
+      "BM_string_memcpy/2097152/8/8/iterations:1\n"
+      "BM_string_memcpy/2097152/8/16/iterations:1\n"
+      "BM_string_memcpy/2097152/8/32/iterations:1\n"
+      "BM_string_memcpy/2097152/16/1/iterations:1\n"
+      "BM_string_memcpy/2097152/16/2/iterations:1\n"
+      "BM_string_memcpy/2097152/16/4/iterations:1\n"
+      "BM_string_memcpy/2097152/16/8/iterations:1\n"
+      "BM_string_memcpy/2097152/16/16/iterations:1\n"
+      "BM_string_memcpy/2097152/16/32/iterations:1\n"
+      "BM_string_memcpy/2097152/32/1/iterations:1\n"
+      "BM_string_memcpy/2097152/32/2/iterations:1\n"
+      "BM_string_memcpy/2097152/32/4/iterations:1\n"
+      "BM_string_memcpy/2097152/32/8/iterations:1\n"
+      "BM_string_memcpy/2097152/32/16/iterations:1\n"
+      "BM_string_memcpy/2097152/32/32/iterations:1\n";
 
   Verify(expected, 0,
          std::vector<const char*>{GetBionicXmlArg("test_alignment_twobuf.xml").c_str()});
diff --git a/benchmarks/util.h b/benchmarks/util.h
index 99eed5f..347dc35 100644
--- a/benchmarks/util.h
+++ b/benchmarks/util.h
@@ -71,7 +71,7 @@
 
 bool LockToCPU(int cpu_to_lock);
 
-static __inline __attribute__ ((__always_inline__)) void MakeAllocationResident(
+static inline __attribute__((__always_inline__)) void MakeAllocationResident(
     void* ptr, size_t nbytes, int pagesize) {
   uint8_t* data = reinterpret_cast<uint8_t*>(ptr);
   for (size_t i = 0; i < nbytes; i += pagesize) {
diff --git a/benchmarks/wctype_benchmark.cpp b/benchmarks/wctype_benchmark.cpp
index cdf5568..cf96057 100644
--- a/benchmarks/wctype_benchmark.cpp
+++ b/benchmarks/wctype_benchmark.cpp
@@ -16,17 +16,73 @@
 
 #include <wctype.h>
 
+#include <numeric>
+#include <random>
+#include <vector>
+
 #include <benchmark/benchmark.h>
 #include "util.h"
 
-BIONIC_TRIVIAL_BENCHMARK(BM_wctype_towlower_ascii_y, towlower('X'));
-BIONIC_TRIVIAL_BENCHMARK(BM_wctype_towlower_ascii_n, towlower('x'));
+static std::vector<wint_t> RandomAscii() {
+  std::vector<wint_t> result(128);
+  std::iota(result.begin(), result.end(), 0);
+  std::shuffle(result.begin(), result.end(), std::mt19937{std::random_device{}()});
+  return result;
+}
 
-BIONIC_TRIVIAL_BENCHMARK(BM_wctype_towlower_unicode_y, towlower(0x0391));
-BIONIC_TRIVIAL_BENCHMARK(BM_wctype_towlower_unicode_n, towlower(0x03b1));
+static std::vector<wint_t> RandomNonAscii() {
+  std::vector<wint_t> result;
+  std::mt19937 rng{std::random_device{}()};
+  std::uniform_int_distribution<> d(0x80, 0xffff);
+  for (size_t i = 0; i < 128; i++) result.push_back(d(rng));
+  return result;
+}
 
-BIONIC_TRIVIAL_BENCHMARK(BM_wctype_towupper_ascii_y, towupper('x'));
-BIONIC_TRIVIAL_BENCHMARK(BM_wctype_towupper_ascii_n, towupper('X'));
+#define WCTYPE_BENCHMARK(__benchmark, fn, random_fn)            \
+  static void __benchmark##_##fn(benchmark::State& state) {     \
+    auto chars = random_fn();                                   \
+    for (auto _ : state) {                                      \
+      for (char ch : chars) {                                   \
+        benchmark::DoNotOptimize(fn(ch));                       \
+      }                                                         \
+    }                                                           \
+    state.SetBytesProcessed(state.iterations() * chars.size()); \
+  }                                                             \
+  BIONIC_BENCHMARK(__benchmark##_##fn)
 
-BIONIC_TRIVIAL_BENCHMARK(BM_wctype_towupper_unicode_y, towupper(0x03b1));
-BIONIC_TRIVIAL_BENCHMARK(BM_wctype_towupper_unicode_n, towupper(0x0391));
+#define WCTYPE_BENCHMARK_ASCII(__benchmark, fn) WCTYPE_BENCHMARK(__benchmark, fn, RandomAscii)
+
+#define WCTYPE_BENCHMARK_NON_ASCII(__benchmark, fn) \
+  WCTYPE_BENCHMARK(__benchmark, fn, RandomNonAscii)
+
+WCTYPE_BENCHMARK_ASCII(BM_wctype_ascii, iswalnum);
+WCTYPE_BENCHMARK_ASCII(BM_wctype_ascii, iswalpha);
+WCTYPE_BENCHMARK_ASCII(BM_wctype_ascii, iswblank);
+WCTYPE_BENCHMARK_ASCII(BM_wctype_ascii, iswcntrl);
+WCTYPE_BENCHMARK_ASCII(BM_wctype_ascii, iswdigit);
+WCTYPE_BENCHMARK_ASCII(BM_wctype_ascii, iswgraph);
+WCTYPE_BENCHMARK_ASCII(BM_wctype_ascii, iswlower);
+WCTYPE_BENCHMARK_ASCII(BM_wctype_ascii, iswprint);
+WCTYPE_BENCHMARK_ASCII(BM_wctype_ascii, iswpunct);
+WCTYPE_BENCHMARK_ASCII(BM_wctype_ascii, iswspace);
+WCTYPE_BENCHMARK_ASCII(BM_wctype_ascii, iswupper);
+WCTYPE_BENCHMARK_ASCII(BM_wctype_ascii, iswxdigit);
+
+WCTYPE_BENCHMARK_ASCII(BM_wctype_ascii_transform, towlower);
+WCTYPE_BENCHMARK_ASCII(BM_wctype_ascii_transform, towupper);
+
+WCTYPE_BENCHMARK_NON_ASCII(BM_wctype_non_ascii, iswalnum);
+WCTYPE_BENCHMARK_NON_ASCII(BM_wctype_non_ascii, iswalpha);
+WCTYPE_BENCHMARK_NON_ASCII(BM_wctype_non_ascii, iswblank);
+WCTYPE_BENCHMARK_NON_ASCII(BM_wctype_non_ascii, iswcntrl);
+WCTYPE_BENCHMARK_NON_ASCII(BM_wctype_non_ascii, iswdigit);
+WCTYPE_BENCHMARK_NON_ASCII(BM_wctype_non_ascii, iswgraph);
+WCTYPE_BENCHMARK_NON_ASCII(BM_wctype_non_ascii, iswlower);
+WCTYPE_BENCHMARK_NON_ASCII(BM_wctype_non_ascii, iswprint);
+WCTYPE_BENCHMARK_NON_ASCII(BM_wctype_non_ascii, iswpunct);
+WCTYPE_BENCHMARK_NON_ASCII(BM_wctype_non_ascii, iswspace);
+WCTYPE_BENCHMARK_NON_ASCII(BM_wctype_non_ascii, iswupper);
+WCTYPE_BENCHMARK_NON_ASCII(BM_wctype_non_ascii, iswxdigit);
+
+WCTYPE_BENCHMARK_NON_ASCII(BM_wctype_non_ascii_transform, towlower);
+WCTYPE_BENCHMARK_NON_ASCII(BM_wctype_non_ascii_transform, towupper);
diff --git a/cpu_target_features/Android.bp b/cpu_target_features/Android.bp
new file mode 100644
index 0000000..25f37d1
--- /dev/null
+++ b/cpu_target_features/Android.bp
@@ -0,0 +1,18 @@
+package {
+    default_applicable_licenses: ["Android-Apache-2.0"],
+}
+
+cc_binary {
+    name: "cpu-target-features",
+    srcs: [
+        "main.cpp",
+    ],
+    generated_headers: ["print_target_features.inc"],
+}
+
+genrule {
+    name: "print_target_features.inc",
+    out: ["print_target_features.inc"],
+    tool_files: ["generate_printer.py"],
+    cmd: "$(location generate_printer.py) $(out)",
+}
diff --git a/cpu_target_features/generate_printer.py b/cpu_target_features/generate_printer.py
new file mode 100755
index 0000000..dc56eb5
--- /dev/null
+++ b/cpu_target_features/generate_printer.py
@@ -0,0 +1,107 @@
+#!/usr/bin/env python3
+
+"""Generate the compilation target feature printing source code.
+
+The source code for detecting target features is heavily redundant and
+copy-pasted, and is easier to maintain using a generative script.
+
+This script creates the source and the include files in its current
+directory.
+"""
+
+import argparse
+from pathlib import Path
+from typing import Dict, List, Iterable
+
+_CPP_BOILERPLATE: str = """\
+#include <stdio.h>
+
+#define TO_STRING_EXP(DEF) #DEF
+#define TO_STRING(DEF) TO_STRING_EXP(DEF)
+"""
+
+_FEATURES = {
+    "Aarch64": [
+        "__ARM_FEATURE_AES",
+        "__ARM_FEATURE_BTI",
+        "__ARM_FEATURE_CRC32",
+        "__ARM_FEATURE_CRYPTO",
+        "__ARM_FEATURE_PAC_DEFAULT",
+        "__ARM_FEATURE_SHA2",
+        "__ARM_FEATURE_SHA3",
+        "__ARM_FEATURE_SHA512",
+    ],
+    "Arm32": [
+        "__ARM_ARCH_ISA_THUMB",
+        "__ARM_FEATURE_AES",
+        "__ARM_FEATURE_BTI",
+        "__ARM_FEATURE_CRC32",
+        "__ARM_FEATURE_CRYPTO",
+        "__ARM_FEATURE_PAC_DEFAULT",
+        "__ARM_FEATURE_SHA2",
+    ],
+    "X86": [
+        "__AES__",
+        "__AVX__",
+        "__CRC32__",
+        "__POPCNT__",
+        "__SHA512__",
+        "__SHA__",
+    ],
+    "Riscv": [
+        "__riscv_vector",
+    ],
+}
+
+
+def _make_function_sig(name: str) -> str:
+    return f"void print{name}TargetFeatures()"
+
+
+def check_template(define: str) -> List[str]:
+    return [
+        f"#if defined({define})",
+        f'  printf("%s=%s\\n", TO_STRING_EXP({define}), TO_STRING({define}));',
+        "#else",
+        f'  printf("%s not defined\\n", TO_STRING_EXP({define}));',
+        "#endif",
+    ]
+
+
+def generate_cpp_file(define_mapping: Dict[str, List[str]]) -> List[str]:
+    out: List[str] = _CPP_BOILERPLATE.split("\n")
+    for target, defines in define_mapping.items():
+        out.append("")
+        out.extend(generate_print_function(target, defines))
+    return out
+
+
+def generate_print_function(name: str, defines: List[str]) -> List[str]:
+    """Generate a print<DEFINE>TargetFeatures function."""
+    function_body = [_make_function_sig(name) + " {"]
+    for d in defines:
+        function_body.extend(check_template(d))
+    function_body.append("}")
+    return function_body
+
+
+def parse_args() -> argparse.Namespace:
+    parser = argparse.ArgumentParser(description=__doc__)
+    parser.add_argument(
+        "cpp_in",
+        type=Path,
+        help="Output path to generate the cpp file.",
+    )
+    return parser.parse_args()
+
+
+def main() -> None:
+    args = parse_args()
+    printer_cpp_filepath = args.cpp_in
+    printer_cpp_filepath.write_text(
+        "\n".join(generate_cpp_file(_FEATURES)), encoding="utf-8"
+    )
+
+
+if __name__ == "__main__":
+    main()
diff --git a/cpu_target_features/main.cpp b/cpu_target_features/main.cpp
new file mode 100644
index 0000000..61f3d25
--- /dev/null
+++ b/cpu_target_features/main.cpp
@@ -0,0 +1,37 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <stdio.h>
+
+#include "print_target_features.inc"
+
+int main() {
+#if defined(__aarch64__)
+  printAarch64TargetFeatures();
+  return 0;
+#elif defined(__arm__)
+  printArm32TargetFeatures();
+  return 0;
+#elif defined(__x86_64__) || defined(__i386__)
+  printX86TargetFeatures();
+  return 0;
+#elif defined(__riscv)
+  printRiscvTargetFeatures();
+  return 0;
+#else
+#error Unsupported arch. This binary only supports aarch64, arm, x86, x86-64, and risc-v
+#endif
+}
diff --git a/docs/32-bit-abi.md b/docs/32-bit-abi.md
index 3be6b1a..7a96e2f 100644
--- a/docs/32-bit-abi.md
+++ b/docs/32-bit-abi.md
@@ -109,3 +109,15 @@
 mutexes for tids that don't fit in 16 bits. This typically manifests as
 a hang in `pthread_mutex_lock` if the libc startup code doesn't detect
 this condition and abort.
+
+
+## `getuid()` and friends wrongly set errno for very large results
+
+This doesn't generally affect Android devices, because we don't have any
+uids/gids/pids large enough, but 32-bit Android doesn't take into account
+that functions like getuid() potentially have return values that cover the
+entire 32-bit, and can't fail. This means that the usual "if the result is
+between -1 and -4096, set errno and return -1" code is inappropriate for
+these functions. Since LP32 is unlikely to be still supported long before
+those limits could ever matter, although -- unlike the others in this
+document -- this defect is actually fixable, it doesn't seem worth fixing.
diff --git a/docs/README.md b/docs/README.md
new file mode 100644
index 0000000..2825eac
--- /dev/null
+++ b/docs/README.md
@@ -0,0 +1,34 @@
+# bionic documentation
+
+[bionic](https://en.wikipedia.org/wiki/Bionic_(software)) is Android's
+C library, math library, and dynamic linker.
+
+## User documentation
+
+* [Android bionic status](status.md) - where we are in terms of standards,
+  and what changed with each OS release.
+* [32-bit ABI bugs](32-bit-abi.md) - historical accidents we can never fix.
+* [`EINTR`](EINTR.md) - what is the `EINTR` failure,
+  and how can code deal with it?
+* [When to use which `#define`](defines.md) - how to choose between
+  `__ANDROID__` and `__BIONIC__` and all the other options for conditional
+  compilation.
+* [fdsan](fdsan.md) - bionic's file descriptor sanitizer,
+  which detects use-after-close() bugs.
+* [fdtrack](fdtrack.md) - bionic's file descriptor tracker,
+  which helps debug file descriptor leaks.
+
+## Maintainer documentation
+
+If you're trying to make changes to bionic _itself_, start with the
+[bionic maintainer documentation](../README.md).
+
+We also have more detail on several specific parts of the implementation:
+
+* [The anatomy of bionic's `_FORTIFY_SOURCE`](clang_fortify_anatomy.md) -
+  how does `_FORTIFY_SOURCE` work on bionic (primarily "with clang").
+* [Android ELF TLS](elf-tls.md) - details of bionic's ELF TLS implementation.
+* [Validating libc assembler](libc_assembler.md) - how to test changes to
+  libc assembler routines.
+* [Validating native allocator changes](native_allocator.md) - how to test
+  changes to the native allocator.
diff --git a/docs/clang_fortify_anatomy.md b/docs/clang_fortify_anatomy.md
index 4b95fdc..46d3a71 100644
--- a/docs/clang_fortify_anatomy.md
+++ b/docs/clang_fortify_anatomy.md
@@ -147,8 +147,7 @@
 void* mempcpy(void* __dst, const void* __src, size_t __n) __INTRODUCED_IN(23);
 ```
 
-Which is annotated with nothing special, except for Bionic's versioner, which
-is Android-specific (and orthogonal to FORTIFY anyway), so it will be ignored.
+Which is annotated with nothing special, so it will be ignored.
 
 The [source for `mempcpy`] in Bionic's headers for is:
 ```c
diff --git a/docs/defines.md b/docs/defines.md
index 4775cd2..65cc873 100644
--- a/docs/defines.md
+++ b/docs/defines.md
@@ -54,13 +54,19 @@
 work around issues with some of them, use these macros to detect the versinon of
 the NDK you're being built with. Usually only `__NDK_MAJOR__` will be necessary.
 
-## `__arm__`, `__aarch64__`, `__i386__`, `__x86_64__`
+## `__arm__`/`__aarch64__`, `__i386__`/`__x86_64__`, `__riscv`
 
-If your code is specific to a particular processor architecture, use these
-macros to conditionally compile. Note that the ABI usually called `arm64` uses
-the macro `__aarch64__` and the ABI usually called `x86` uses `__i386__`.
+If your code is specific to a particular processor architecture, use
+these macros to conditionally compile. Note that the ABI usually called
+`arm64` uses the macro `__aarch64__` and the ABI usually called `x86` uses
+`__i386__`. Android only supports riscv64, so `__riscv` is a sufficient
+check for Android-only code. If you need to write code portable to other
+operating systems that do support riscv32, you'll also need to check
+whether `__riscv_xlen` is 32 or 64.
 
-## `__LP32__` and `__LP64__`
+## `__ILP32__` and `__LP64__`
 
-If your code depends on "bitness" -- whether `long` and pointers are 32- or
-64-bit -- use these macros to conditionally compile.
+If your code depends on "bitness" -- whether `long` and pointers are 32-
+or 64-bit -- use these macros to conditionally compile. Note the extra
+"I" in the 32-bit macro (since `int`, `long`, and pointers are all 32-bit
+on such systems, with `long long` being needed for a 64-bit type).
diff --git a/docs/elf-tls.md b/docs/elf-tls.md
index d408b3f..450f362 100644
--- a/docs/elf-tls.md
+++ b/docs/elf-tls.md
@@ -1,9 +1,10 @@
-# Android ELF TLS (Draft)
+# Android ELF TLS
 
-Internal links:
- * [go/android-elf-tls](http://go/android-elf-tls)
- * [One-pager](https://docs.google.com/document/d/1leyPTnwSs24P2LGiqnU6HetnN5YnDlZkihigi6qdf_M)
- * Tracking bugs: http://b/110100012, http://b/78026329
+App developers probably just want to read the
+[quick ELS TLS status summary](../android-changes-for-ndk-developers.md#elf-tls-available-for-api-level-29)
+instead.
+
+This document covers the detailed design and implementation choices.
 
 [TOC]
 
@@ -215,7 +216,7 @@
  * https://bugzilla.redhat.com/show_bug.cgi?id=1124987
  * web search: [`"dlopen: cannot load any more object with static TLS"`][glibc-static-tls-error]
 
-Neither musl nor the Bionic TLS prototype currently allocate any surplus TLS memory.
+Neither bionic nor musl currently allocate any surplus TLS memory.
 
 In general, supporting surplus TLS memory probably requires maintaining a thread list so that
 `dlopen` can initialize the new static TLS memory in all existing threads. A thread list could be
@@ -489,19 +490,6 @@
 [quietly ignored]: https://android.googlesource.com/platform/bionic/+/android-8.1.0_r48/linker/linker.cpp#2784
 [added compatibility checks]: https://android-review.googlesource.com/c/platform/bionic/+/648760
 
-# Bionic Prototype Notes
-
-There is an [ELF TLS prototype] uploaded on Gerrit. It implements:
- * Static TLS Block allocation for static and dynamic executables
- * TLS for dynamically loaded and unloaded modules (`__tls_get_addr`)
- * TLSDESC for arm64 only
-
-Missing:
- * `dlsym` of a TLS variable
- * debugger support
-
-[ELF TLS prototype]: https://android-review.googlesource.com/q/topic:%22elf-tls-prototype%22+(status:open%20OR%20status:merged)
-
 ## Loader/libc Communication
 
 The loader exposes a list of TLS modules ([`struct TlsModules`][TlsModules]) to `libc.so` using the
@@ -515,13 +503,14 @@
 
 ## TLS Allocator
 
-The prototype currently allocates a `pthread_internal_t` object and static TLS in a single mmap'ed
+bionic currently allocates a `pthread_internal_t` object and static TLS in a single mmap'ed
 region, along with a thread's stack if it needs one allocated. It doesn't place TLS memory on a
 preallocated stack (either the main thread's stack or one provided with `pthread_attr_setstack`).
 
 The DTV and blocks for dlopen'ed modules are instead allocated using the Bionic loader's
-`LinkerMemoryAllocator`, adapted to avoid the STL and to provide `memalign`. The prototype tries to
-achieve async-signal safety by blocking signals and acquiring a lock.
+`LinkerMemoryAllocator`, adapted to avoid the STL and to provide `memalign`.
+The implementation tries to achieve async-signal safety by blocking signals and
+acquiring a lock.
 
 There are three "entry points" to dynamically locate a TLS variable's address:
  * libc.so: `__tls_get_addr`
@@ -529,10 +518,10 @@
  * loader: dlsym
 
 The loader's entry points need to call `__tls_get_addr`, which needs to allocate memory. Currently,
-the prototype uses a [special function pointer] to call libc.so's `__tls_get_addr` from the loader.
+the implementation uses a [special function pointer] to call libc.so's `__tls_get_addr` from the loader.
 (This should probably be removed.)
 
-The prototype currently allows for arbitrarily-large TLS variable alignment. IIRC, different
+The implementation currently allows for arbitrarily-large TLS variable alignment. IIRC, different
 implementations (glibc, musl, FreeBSD) vary in their level of respect for TLS alignment. It looks
 like the Bionic loader ignores segments' alignment and aligns loaded libraries to 256 KiB. See
 `ReserveAligned`.
@@ -541,7 +530,7 @@
 
 ## Async-Signal Safety
 
-The prototype's `__tls_get_addr` might be async-signal safe. Making it AS-safe is a good idea if
+The implementation's `__tls_get_addr` might be async-signal safe. Making it AS-safe is a good idea if
 it's feasible. musl's function is AS-safe, but glibc's isn't (or wasn't). Google had a patch to make
 glibc AS-safe back in 2012-2013. See:
  * https://sourceware.org/glibc/wiki/TLSandSignals
@@ -550,7 +539,7 @@
 
 ## Out-of-Memory Handling (abort)
 
-The prototype lazily allocates TLS memory for dlopen'ed modules (see `__tls_get_addr`), and an
+The implementation lazily allocates TLS memory for dlopen'ed modules (see `__tls_get_addr`), and an
 out-of-memory error on a TLS access aborts the process. musl, on the other hand, preallocates TLS
 memory on `pthread_create` and `dlopen`, so either function can return out-of-memory. Both functions
 probably need to acquire the same lock.
@@ -572,7 +561,7 @@
 
 FWIW: emutls also aborts on out-of-memory.
 
-## ELF TLS Not Usable in libc
+## ELF TLS Not Usable in libc Itself
 
 The dynamic loader currently can't use ELF TLS, so any part of libc linked into the loader (i.e.
 most of it) also can't use ELF TLS. It might be possible to lift this restriction, perhaps with
@@ -649,7 +638,7 @@
 It seems easy to fix the incompatibility for variant 2 (x86 and x86_64) by splitting out the Bionic
 slots into a new data structure. Variant 1 is a harder problem.
 
-The TLS prototype currently uses a patched LLD that uses a variant 1 TLS layout with a 16-word TCB
+The TLS prototype used a patched LLD that uses a variant 1 TLS layout with a 16-word TCB
 on all architectures.
 
 Aside: gcc's arm64ilp32 target uses a 32-bit unsigned offset for a TLS IE access
@@ -821,8 +810,8 @@
 
 ### Workaround for Go: place pthread keys after the executable's TLS
 
-Most Android executables do not use any `thread_local` variables. In the current prototype, with the
-AOSP hikey960 build, only `/system/bin/netd` has a TLS segment, and it's only 32 bytes. As long as
+Most Android executables do not use any `thread_local` variables. In the prototype, with the
+AOSP hikey960 build, only `/system/bin/netd` had a TLS segment, and it was only 32 bytes. As long as
 `/system/bin/app_process{32,64}` limits its use of TLS memory, then the pthread keys could be
 allocated after `app_process`' TLS segment, and Go will still find them.
 
@@ -847,6 +836,12 @@
  * It looks like glibc's ld.so re-relocates itself after loading a program, so a program's symbols
    can interpose call in the loader: https://sourceware.org/ml/libc-alpha/2014-01/msg00501.html
 
+## TODO: Other
+
+Missing:
+ * `dlsym` of a TLS variable
+ * debugger support
+
 # References
 
 General (and x86/x86-64)
diff --git a/docs/fdsan.md b/docs/fdsan.md
index 6630299..5aeb7de 100644
--- a/docs/fdsan.md
+++ b/docs/fdsan.md
@@ -46,7 +46,7 @@
 
 fdsan attempts to detect and/or prevent file descriptor mismanagement by enforcing file descriptor ownership. Like how most memory allocations can have their ownership handled by types such as `std::unique_ptr`, almost all file descriptors can be associated with a unique owner which is responsible for their closure. fdsan provides functions to associate a file descriptor with an owner; if someone tries to close a file descriptor that they don't own, depending on configuration, either a warning is emitted, or the process aborts.
 
-The way this is implemented is by providing functions to set a 64-bit closure tag on a file descriptor. The tag consists of an 8-bit type byte that identifies the type of the owner (`enum android_fdan_owner_type` in [`<android/fdsan.h>`](https://android.googlesource.com/platform/bionic/+/master/libc/include/android/fdsan.h)), and a 56-bit value. The value should ideally be something that uniquely identifies the object (object address for native objects and `System.identityHashCode` for Java objects), but in cases where it's hard to derive an identifier for the "owner" that should close a file descriptor, even using the same value for all file descriptors in the module can be useful, since it'll catch other code that closes your file descriptors.
+The way this is implemented is by providing functions to set a 64-bit closure tag on a file descriptor. The tag consists of an 8-bit type byte that identifies the type of the owner (`enum android_fdan_owner_type` in [`<android/fdsan.h>`](https://android.googlesource.com/platform/bionic/+/main/libc/include/android/fdsan.h)), and a 56-bit value. The value should ideally be something that uniquely identifies the object (object address for native objects and `System.identityHashCode` for Java objects), but in cases where it's hard to derive an identifier for the "owner" that should close a file descriptor, even using the same value for all file descriptors in the module can be useful, since it'll catch other code that closes your file descriptors.
 
 If a file descriptor that's been marked with a tag is closed with an incorrect tag, or without a tag, we know something has gone wrong, and can generate diagnostics or abort.
 
@@ -62,7 +62,9 @@
  - fatal (`ANDROID_FDSAN_ERROR_LEVEL_FATAL`)
    - Abort upon detecting an error.
 
-In Android Q, fdsan has a global default of warn-once. fdsan can be made more or less strict at runtime via the `android_fdsan_set_error_level` function in [`<android/fdsan.h>`](https://android.googlesource.com/platform/bionic/+/master/libc/include/android/fdsan.h).
+In API level 29, fdsan had a global default of warn-once.
+In API level 30 and higher, fdsan has a global default of fatal.
+fdsan can be made more or less strict at runtime via the `android_fdsan_set_error_level` function in [`<android/fdsan.h>`](https://android.googlesource.com/platform/bionic/+/main/libc/include/android/fdsan.h).
 
 The likelihood of fdsan catching a file descriptor error is proportional to the percentage of file descriptors in your process that are tagged with an owner.
 
@@ -344,7 +346,8 @@
 
     // These functions are marked with __attribute__((weak)), so that their
     // availability can be determined at runtime. These wrappers will use them
-    // if available, and fall back to no-ops or regular close on pre-Q devices.
+    // if available, and fall back to no-ops or regular close on devices older
+    // than API level 29.
     static void exchange_tag(int fd, uint64_t old_tag, uint64_t new_tag) {
         if (android_fdsan_exchange_owner_tag) {
             android_fdsan_exchange_owner_tag(fd, old_tag, new_tag);
diff --git a/docs/fdtrack.md b/docs/fdtrack.md
index 7cf6e1f..8928a5c 100644
--- a/docs/fdtrack.md
+++ b/docs/fdtrack.md
@@ -4,12 +4,14 @@
 
 fdtrack is a file descriptor leak checker added to Android in API level 30.
 
-fdtrack consists of two parts: a set of hooks in bionic to register a callback
-that's invoked on file descriptor operations, and a library that implements a
-hook to perform and store backtraces for file descriptor creation.
+fdtrack consists of several parts: a set of hooks in bionic to register a
+callback that's invoked on file descriptor operations, a library that implements
+a hook to perform and store backtraces for file descriptor creation, and
+code in frameworks to automatically enable it (and deliberately crash a process
+that's leaking).
 
 ### bionic hooks
-bionic provides a header in the `bionic_libc_platform_headers` header_lib at <[bionic/fdtrack.h](https://android.googlesource.com/platform/bionic/+/refs/heads/master/libc/platform/bionic/fdtrack.h)>.
+bionic provides a header in the `bionic_libc_platform_headers` header_lib at <[bionic/fdtrack.h](https://android.googlesource.com/platform/bionic/+/refs/heads/main/libc/platform/bionic/fdtrack.h)>.
 Register a callback with `android_fdtrack_compare_exchange_hook` to receive
 callbacks upon file descriptor creation and destruction. This function can be
 called at any point in order to start capturing events, but be sure to properly
@@ -18,9 +20,31 @@
 not to call callbacks when this is the case).
 
 ### libfdtrack
-[libfdtrack](https://android.googlesource.com/platform/bionic/+/refs/heads/master/libfdtrack)
+[libfdtrack](https://android.googlesource.com/platform/bionic/+/refs/heads/main/libfdtrack)
 implements a library that uses libunwindstack to unwind and store fd creation backtraces.
 
+### frameworks
+As the name implies, `spawnFdLeakCheckThread` in SystemServer spawns a thread
+to monitor the number of open file descriptors every so often.
+If that passes a certain threshold, fdtrack is enabled.
+If it passes another threshold, the process is aborted.
+These thresholds are configurable via system properties:
+```
+    // Number of open file descriptors before fdtrack starts; default 1600.
+    private static final String SYSPROP_FDTRACK_ENABLE_THRESHOLD =
+            "persist.sys.debug.fdtrack_enable_threshold";
+
+    // Number of open file descriptors before aborting; default 3000.
+    private static final String SYSPROP_FDTRACK_ABORT_THRESHOLD =
+            "persist.sys.debug.fdtrack_abort_threshold";
+
+    // Number of seconds between open fd count checks; default 120s.
+    private static final String SYSPROP_FDTRACK_INTERVAL =
+            "persist.sys.debug.fdtrack_interval";
+```
+Note that it's also possible to monitor the number of open file descriptors for
+a given process from the shell. `adb shell watch ls -l /proc/<pid>/fd` will show
+them (and you can choose your own update rate as an argument to `watch`).
 
 #### Using libfdtrack
 libfdtrack registers its hook upon being loaded, so to start capturing
diff --git a/docs/mte.md b/docs/mte.md
new file mode 100644
index 0000000..3034cc7
--- /dev/null
+++ b/docs/mte.md
@@ -0,0 +1,244 @@
+# Arm Memory Tagging Extension (MTE) implementation
+
+AOSP supports Arm MTE to detect invalid memory accesses. The implementation is
+spread across multiple components, both within and out of the AOSP tree. This
+document gives an overview and pointers about how the various MTE features are
+implemented.
+
+For documentation of the behavior rather than the implementation, see the
+[SAC page on MTE] instead. For MTE for apps, see the [NDK page on MTE].
+
+The relevant components are:
+
+* [LLVM Project] (out of AOSP tree)
+    * Stack tagging instrumentation pass
+    * Scudo memory allocator
+* bionic
+    * libc
+    * dynamic loader
+* Zygote
+* debuggerd
+* [NDK]
+
+## MTE enablement
+
+The way MTE is requested and enabled differs between native binaries and Java
+apps. This is necessarily so, because Java apps get forked from the Zygote,
+while native executables get inintialized by the linker.
+
+### Native binaries
+
+Both AOSP and the NDK allow you to compile C/C++ code that use MTE to detect
+memory safety issues. The [NDK legacy cmake toolchain] and the
+[NDK new cmake toolchain] both support "memtag" as an argument for
+`ANDROID_SANITIZE`. NDK make has no specific support for MTE, but the
+relevant flags can be passed directly as `CFLAGS` and `LDFLAGS`.
+
+For the OS itself, [Soong] supports "memtag_[heap|stack|globals]" as
+`SANITIZE_TARGET  and as `sanitize:` attribute in Android.bp files;
+[Android make] supports the same environment variables as Soong. This passes
+the appropriate flags to the clang driver for both compile and link steps.
+
+#### Linker
+
+* For **dynamic executables** LLD has support to
+  [add appropriate dynamic sections] as defined in the [ELF standard]
+* For **static executables** and as a fallback for older devices, LLD
+  also supports [adding the Android-specific ELF note]
+
+Both of the above are controlled by the linker flag `--android-memtag-mode`
+which is [passed in by the clang driver] if
+`-fsanitize=memtag-[stack|heap|globals]` is [passed in].
+`-fsanitize=memtag` [enables all three] (even for API levels that don't
+implement the runtime for globals, which means builds from old versions
+of clang may no work with newer platform versions that support globals).
+`-fsanitize-memtag-mode` allows to choose between ASYNC and SYNC.
+
+This information can be queried using `llvm-readelf --memtag`.
+
+This information is [picked up by libc init] to decide whether to enable MTE.
+`-fsanitize-heap` controls both whether scudo tags allocations, and whether
+tag checking is enabled.
+
+#### Runtime environment (dynamic loader, libc)
+
+There are two different initialization sequences for libc, both of which end up
+calling `__libc_init_mte`.
+
+N.B. the linker has its own copy of libc, which is used when executing these
+functions. That is why we have to use `__libc_shared_globals` to communicate
+with the libc of the process we are starting.
+
+* **static executables** `__libc_init` is called from `crtbegin.c`, which calls
+                         `__libc_init_mte`
+* **dynamic executables** the linker calls `__libc_init_mte`
+
+`__libc_init_mte` figures out the appropriate MTE level that is requested by
+the process, calls `prctl` to request this from the kernel, and stores data in
+`__libc_shared_globals` which gets picked up later to enable MTE in scudo.
+
+It also does work related to stack tagging and permissive mode, which will be
+detailed later.
+
+### Apps
+
+Apps can request MTE be enabled for their process via the manifest attribute
+`android:memtagMode`. This gets interpreted by Zygote, which always runs with
+`ASYNC` MTE enabled, because MTE for a process can only be disabled after
+it has been initialized (see [Native binaries](#native-binaries)), not enabled.
+
+[decideTaggingLevel] in the Zygote figures out whether to enable MTE for
+an app, and stores it in the `runtimeFlags`, which get picked up by
+[SpecializeCommon] after forking from the Zygote.
+
+## MTE implementation
+
+### Heap Tagging
+
+Heap tagging is implemented in the scudo allocator. On `malloc` and `free`,
+scudo will update the memory's tags to prevent use-after-free and buffer
+overflows.
+
+[scudo's memtag.h] contains helper functions to deal with MTE tag management,
+which are used in [combined.h] and [secondary.h].
+
+
+### Stack Tagging
+
+Stack tagging requires instrumenting function bodies. It is implemented as
+an instrumentation pass in LLVM called [AArch64StackTagging], which sets
+the tags according to the lifetime of stack objects.
+
+The instrumentation pass also supports recording stack history, consisting of:
+
+* PC
+* Frame pointer
+* Base tag
+
+This can be used to reconstruct which stack object was referred to in an
+invalid access. The logic to reconstruct this can be found in the
+[stack script].
+
+
+Stack tagging is enabled in one of two circumstances:
+* at process startup, if the main binary or any of its dependencies are
+  compiled with `memtag-stack`
+* library compiled with `memtag-stack` is `dlopen`ed later, either directly or
+  as a dependency of a `dlopen`ed library. In this case, the
+  [__pthread_internal_remap_stack_with_mte] function is used (called from
+  `memtag_stack_dlopen_callback`). Because `dlopen`
+  is handled by the linker, we have to [store a function pointer] to the
+  process's version of the function in `__libc_shared_globals`.
+
+Enabling stack MTE consists of two operations:
+* Remapping the stacks as `PROT_MTE`
+* Allocating a stack history buffer.
+
+The first operation is only necessary when the process is running with MTE
+enabled. The second operation is also necessary when the process is not running
+with MTE enabled, because the writes to the stack history buffer are
+unconditional.
+
+libc keeps track of this through two globals:
+
+* `__libc_memtag_stack`:  whether stack MTE is enabled on the process, i.e.
+  whether the stack pages are mapped with PROT\_MTE. This is always false if
+  MTE is disabled for the process (i.e. `libc_globals.memtag` is false).
+* `__libc_memtag_stack_abi`: whether the process contains any code that was
+  compiled with memtag-stack. This is true even if the process does not have
+  MTE enabled.
+
+### Globals Tagging
+
+TODO(fmayer): write once submitted
+
+### Crash reporting
+
+For MTE crashes, debuggerd serializes special information into the Tombstone
+proto:
+
+* Tags around fault address
+* Scudo allocation history
+
+This is done in [tombstone\_proto.cpp]. The information is converted to a text
+proto in [tombstone\_proto\_to\_text.cpp].
+
+## Bootloader control
+
+The bootloader API allows userspace to enable MTE on devices that do not ship
+with MTE enabled by default.
+
+See [SAC MTE bootloader support] for the API definition. In AOSP, this API is
+implemented in [system/extras/mtectrl]. mtectrl.rc handles the property
+changes and invokes mtectrl to update the misc partition to communicate
+with the bootloader.
+
+There is also an [API in Device Policy Manager] that allows the device admin
+to enable or disable MTE under certain circumstances.
+
+The device can opt in or out of these APIs by a set of system properties:
+
+* `ro.arm64.memtag.bootctl_supported`: the system property API is supported,
+  and an option is displayed in Developer Options.
+* `ro.arm64.memtag.bootctl_settings_toggle`: an option is displayed in the
+  normal settings. This requires `ro.arm64.memtag.bootctl_supported` to be
+  true. This implies `ro.arm64.memtag.bootctl_device_policy_manager`, if it
+  is not explicitely set.
+* `ro.arm64.memtag.bootctl_device_policy_manager`: the Device Policy Manager
+  API is supported.
+
+## Permissive MTE
+
+Permissive MTE refers to a mode which, instead of crashing the process on an
+MTE fault, records a tombstone but then continues execution of the process.
+An important caveat is that system calls with invalid pointers (where the
+pointer tag does not match the memory tag) still return an error code.
+
+This mode is only available for system services, not apps. It is implemented
+in the [debugger\_signal\_handler] by disabling MTE for the faulting thread.
+Optionally, the user can ask for MTE to be re-enabled after some time.
+This is achieved by arming a timer that calls [enable_mte_signal_handler]
+upon expiry.
+
+## MTE Mode Upgrade
+
+When a system service [crashes in ASYNC mode], we set an impossible signal
+as an exit code (because that signal is always gracefully handled by libc),
+and [in init] we set `BIONIC_MEMTAG_UPGRADE_SECS`, which gets handled by
+[libc startup].
+
+[SpecializeCommon]: https://cs.android.com/android/platform/superproject/main/+/main:frameworks/base/core/jni/com_android_internal_os_Zygote.cpp?q=f:frameworks%2Fbase%2Fcore%2Fjni%2Fcom_android_internal_os_Zygote.cpp%20%22%20mallopt(M_BIONIC_SET_HEAP_TAGGING_LEVEL,%22&ss=android%2Fplatform%2Fsuperproject%2Fmain
+[LLVM Project]: https://github.com/llvm/llvm-project/
+[NDK]: https://android.googlesource.com/platform/ndk/
+[NDK legacy cmake toolchain]: https://android.googlesource.com/platform/ndk/+/refs/heads/main/build/cmake/android-legacy.toolchain.cmake#490
+[NDK new cmake toolchain]: https://android.googlesource.com/platform/ndk/+/refs/heads/main/build/cmake/flags.cmake#56
+[Soong]: https://cs.android.com/android/platform/superproject/main/+/main:build/soong/cc/sanitize.go?q=sanitize.go&ss=android%2Fplatform%2Fsuperproject%2Fmain
+[decideTaggingLevel]: https://cs.android.com/android/platform/superproject/main/+/main:frameworks/base/core/java/com/android/internal/os/Zygote.java?q=symbol:decideTaggingLevel
+[picked up by libc init]: https://cs.android.com/android/platform/superproject/main/+/main:bionic/libc/bionic/libc_init_mte.cpp?q=symbol:__get_tagging_level%20f:bionic
+[enables all three]: https://github.com/llvm/llvm-project/blob/e732d1ce86783b1d7fe30645fcb30434109505b9/clang/include/clang/Basic/Sanitizers.def#L62
+[passed in]: https://github.com/llvm/llvm-project/blob/ff2e619dfcd77328812a42d2ba2b11c3ff96f410/clang/lib/Driver/SanitizerArgs.cpp#L719
+[passed in by the clang driver]: https://github.com/llvm/llvm-project/blob/ff2e619dfcd77328812a42d2ba2b11c3ff96f410/clang/lib/Driver/ToolChains/CommonArgs.cpp#L1595
+[adding the Android-specific ELF note]: https://github.com/llvm/llvm-project/blob/435cb0dc5eca08cdd8d9ed0d887fa1693cc2bf33/lld/ELF/Driver.cpp#L1258
+[ELF standard]: https://github.com/ARM-software/abi-aa/blob/main/memtagabielf64/memtagabielf64.rst#6dynamic-section
+[add appropriate dynamic sections]: https://github.com/llvm/llvm-project/blob/7022498ac2f236e411e8a0f9a48669e754000a4b/lld/ELF/SyntheticSections.cpp#L1473
+[storeTags]: https://cs.android.com/android/platform/superproject/main/+/main:external/scudo/standalone/memtag.h?q=f:scudo%20f:memtag.h%20function:storeTags
+[SAC page on MTE]: https://source.android.com/docs/security/test/memory-safety/arm-mte
+[NDK page on MTE]: https://developer.android.com/ndk/guides/arm-mte
+[AArch64StackTagging]: https://github.com/llvm/llvm-project/blob/main/llvm/lib/Target/AArch64/AArch64StackTagging.cpp
+[scudo's memtag.h]: https://github.com/llvm/llvm-project/blob/main/compiler-rt/lib/scudo/standalone/memtag.h
+[combined.h]: https://github.com/llvm/llvm-project/blob/main/compiler-rt/lib/scudo/standalone/combined.h
+[secondary.h]: https://github.com/llvm/llvm-project/blob/main/compiler-rt/lib/scudo/standalone/secondary.h
+[__pthread_internal_remap_stack_with_mte]: https://cs.android.com/android/platform/superproject/main/+/main:bionic/libc/bionic/pthread_internal.cpp?q=__pthread_internal_remap_stack_with_mte
+[stack script]: https://cs.android.com/android/platform/superproject/main/+/main:development/scripts/stack?q=stack
+[Android make]: https://cs.android.com/android/platform/superproject/main/+/main:build/make/core/config_sanitizers.mk
+[store a function pointer]: https://cs.android.com/android/platform/superproject/main/+/main:bionic/libc/bionic/libc_init_dynamic.cpp;l=168?q=memtag_stack_dlopen_callback
+[tombstone\_proto.cpp]: https://cs.android.com/android/platform/superproject/main/+/main:system/core/debuggerd/libdebuggerd/tombstone_proto.cpp?q=tombstone_proto.cpp
+[tombstone\_proto\_to\_text.cpp]: https://cs.android.com/android/platform/superproject/main/+/main:system/core/debuggerd/libdebuggerd/tombstone_proto_to_text.cpp
+[SAC MTE bootloader support]: https://source.android.com/docs/security/test/memory-safety/bootloader-support
+[system/extras/mtectrl]: https://cs.android.com/android/platform/superproject/main/+/main:system/extras/mtectrl/
+[API in Device Policy Manager]: https://cs.android.com/android/platform/superproject/main/+/main:frameworks/base/core/java/android/app/admin/DevicePolicyManager.java?q=symbol:setMtePolicy%20f:DevicePolicyManager.java
+[debuggerd\_signal_handler]: https://cs.android.com/android/platform/superproject/main/+/main:system/core/debuggerd/handler/debuggerd_handler.cpp?q=f:debuggerd_handler.cpp%20symbol:debuggerd_signal_handler
+[enable_mte_signal_handler]: https://cs.android.com/android/platform/superproject/main/+/main:bionic/libc/bionic/libc_init_mte.cpp?q=symbol:__enable_mte_signal_handler
+[in init]: https://cs.android.com/android/platform/superproject/main/+/main:system/core/init/service.cpp?q=f:system%2Fcore%2Finit%2Fservice.cpp%20should_upgrade_mte
+[crashes in ASYNC mode]: https://cs.android.com/android/platform/superproject/main/+/main:system/core/debuggerd/handler/debuggerd_handler.cpp;l=799?q=BIONIC_SIGNAL_ART_PROFILER
+[libc startup]: https://cs.android.com/android/platform/superproject/main/+/main:bionic/libc/bionic/libc_init_mte.cpp?q=BIONIC_MEMTAG_UPGRADE_SECS
diff --git a/docs/native_allocator.md b/docs/native_allocator.md
index 9fc9a31..13d9738 100644
--- a/docs/native_allocator.md
+++ b/docs/native_allocator.md
@@ -323,8 +323,8 @@
 time. The trace data does not include timestamps,
 so it is not possible to create a completely accurate replay.
 
-To generate these traces, see the [Malloc Debug documentation](https://android.googlesource.com/platform/bionic/+/master/libc/malloc_debug/README.md),
-the option [record\_allocs](https://android.googlesource.com/platform/bionic/+/master/libc/malloc_debug/README.md#record_allocs_total_entries).
+To generate these traces, see the [Malloc Debug documentation](https://android.googlesource.com/platform/bionic/+/main/libc/malloc_debug/README.md),
+the option [record\_allocs](https://android.googlesource.com/platform/bionic/+/main/libc/malloc_debug/README.md#record_allocs_total_entries).
 
 To run these benchmarks, first copy the trace files to the target using
 these commands:
diff --git a/docs/status.md b/docs/status.md
index c2ed944..e7111d9 100644
--- a/docs/status.md
+++ b/docs/status.md
@@ -11,7 +11,7 @@
 ### POSIX
 
 You can see the current status with respect to POSIX in the form of tests:
-https://android.googlesource.com/platform/bionic/+/master/tests/headers/posix/
+https://android.googlesource.com/platform/bionic/+/main/tests/headers/posix/
 
 Some POSIX functionality is not supported by the Linux kernel, and
 is guarded with tests for `__linux__`. Other functionality is not
@@ -32,10 +32,14 @@
   * `ualarm`
 
 Missing functionality:
-  * `<aio.h>`
+  * `<aio.h>`. No particular reason not to have this other than that no-one's
+    needed it yet, and it's relatively complex. If/when llvm-libc adds this,
+    maybe we'll just reuse that.
   * `<monetary.h>`. See
     [discussion](https://github.com/android/ndk/issues/1182).
-  * `<wordexp.h>`
+  * `<wordexp.h>`. Unsafe because it passes user input to the shell (!),
+    and often should just be a call to glob() anyway. See also
+    [OpenBSD's discussion about adding wordexp()](https://www.mail-archive.com/tech@openbsd.org/msg02325.html).
   * Locales. Although bionic contains the various `_l()` functions, the only
     locale supported is a UTF-8 C/POSIX locale. Most of the POSIX APIs are
     insufficient to support the wide range of languages used by Android users,
@@ -53,7 +57,35 @@
 
 ### libc
 
-Current libc symbols: https://android.googlesource.com/platform/bionic/+/master/libc/libc.map.txt
+Current libc symbols: https://android.googlesource.com/platform/bionic/+/main/libc/libc.map.txt
+
+New libc functions in API level 36:
+  * `qsort_r`, `sig2str`/`str2sig` (POSIX Issue 8 additions).
+  * GNU/BSD extension `lchmod`.
+  * GNU extensions `pthread_getaffinity_np`/`pthread_setaffinity_np`.
+  * New system call wrapper: `mseal` (`<sys/mman.h>`).
+
+New libc functions in V (API level 35):
+  * New `android_crash_detail_register`, `android_crash_detail_unregister`,
+    `android_crash_detail_replace_name`, and `android_crash_detail_replace_data`
+    functionality for adding arbitrary data to tombstones
+    (see `<android/crash_detail.h>` for full documentation).
+  * `tcgetwinsize`, `tcsetwinsize`, `_Fork` (POSIX Issue 8 additions).
+  * `timespec_getres` (C23 addition).
+  * `localtime_rz`, `mktime_z`, `tzalloc`, and `tzfree` (NetBSD
+    extensions implemented in tzcode, and the "least non-standard"
+    functions for avoiding $TZ if you need to use multiple timezones in
+    multi-threaded C).
+  * `mbsrtowcs_l` and `wcsrtombs_l` aliases for `mbsrtowcs` and `wcsrtombs`.
+  * GNU extensions `strerrordesc_np` and `strerrorname_np`.
+  * New system call wrappers: `__riscv_flush_icache` (`<sys/cachectl.h>`),
+    `__riscv_hwprobe` (`<sys/hwprobe.h>`), `epoll_pwait2`/`epoll_pwait2_64` (`<sys/epoll.h>`).
+
+New libc behavior in V (API level 35):
+  * Added `LD_SHOW_AUXV` to the dynamic linker to dump the ELF auxiliary
+    vector if the environment variable is set.
+  * The printf family now supports `%#m` to print the name of the errno
+    constant (rather than the description printed by `%m`).
 
 New libc functions in U (API level 34):
   * `close_range` and `copy_file_range` (Linux-specific GNU extensions).
@@ -103,6 +135,7 @@
   * `getloadavg` (BSD/GNU extension in <stdlib.h>)
 
 New libc behavior in Q (API level 29):
+  * Support for [ELF TLS](elf-tls.md).
   * Whole printf family now supports the GNU `%m` extension, rather than a
     special-case hack in `syslog`.
   * `popen` now always uses `O_CLOEXEC`, not just with the `e` extension.
@@ -260,28 +293,36 @@
 
 libc function count over time:
 
-| OS    | API level | Function count |
-|-------|-----------|----------------|
-| J     | 16        | 842            |
-| J MR1 | 17        | 870            |
-| J MR2 | 18        | 878            |
-| K     | 19        | 893            |
-| L     | 21        | 1118           |
-| M     | 23        | 1183           |
-| N     | 24        | 1228           |
-| O     | 26        | 1280           |
-| P     | 28        | 1378           |
-| Q     | 29        | 1394           |
+| API level | Function count |
+|-----------|----------------|
+| 16        | 842            |
+| 17        | 870            |
+| 18        | 878            |
+| 19        | 893            |
+| 21        | 1016           |
+| 22        | 1038           |
+| 23        | 1103           |
+| 24        | 1147           |
+| 25        | 1147           |
+| 26        | 1199           |
+| 27        | 1199           |
+| 28        | 1298           |
+| 29        | 1312           |
+| 30        | 1368           |
+| 31        | 1379           |
+| 32        | 1379           |
+| 33        | 1386           |
+| 34        | 1392           |
 
 Data collected by:
 ```
-ndk-r21$ for i in `ls -1v platforms/android-*/arch-arm/usr/lib/libc.so` ; do \
-  echo $i; nm $i | grep -w T | wc -l ; done
+ndk-r26c$ for i in `ls -1v toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/*/libc.so` ; \
+  do echo $i; nm $i | grep -w T | wc -l ; done
 ```
 
 ### libm
 
-Current libm symbols: https://android.googlesource.com/platform/bionic/+/master/libm/libm.map.txt
+Current libm symbols: https://android.googlesource.com/platform/bionic/+/main/libm/libm.map.txt
 
 0 remaining missing C11/POSIX libm functions.
 
@@ -303,17 +344,25 @@
 ## Target API level behavioral differences
 
 Most bionic bug fixes and improvements have been made without checks for
-the app's `targetSdkVersion`. As of O there were exactly two exceptions,
-but there are likely to be more in future because of Project Treble.
+the app's `targetSdkVersion`. There are a handful of exceptions. (If in
+doubt, search the source for `android_get_application_target_sdk_version()`.)
 
-### Invalid `pthread_t` handling (targetSdkVersion >= O)
+### Destroyed mutex checking (targetSdkVersion >= 28)
+
+If a destroyed `pthread_mutex_t` is passed to any of the mutex functions, apps
+targeting API level 28 or higher will see a
+"<function> called on a destroyed mutex" fortify failure. Apps targeting older
+API levels will just have the function fail with EBUSY (matching the likely
+behavior before we added the check).
+
+### Invalid `pthread_t` handling (targetSdkVersion >= 26)
 
 As part of a long-term goal to remove the global thread list,
 and in an attempt to flush out racy code, we changed how an invalid
 `pthread_t` is handled. For `pthread_detach`, `pthread_getcpuclockid`,
 `pthread_getschedparam`/`pthread_setschedparam`, `pthread_join`, and
 `pthread_kill`, instead of returning ESRCH when passed an invalid
-`pthread_t`, if you're targeting O or above, they'll abort with the
+`pthread_t`, if you're targeting API level 26 or above, they'll abort with the
 message "attempt to use invalid pthread\_t".
 
 Note that this doesn't change behavior as much as you might think: the
@@ -351,13 +400,13 @@
     the tid may have been reused, but your code is inherently unsafe without
     a redesign anyway.
 
-### Interruptable `sem_wait` (targetSdkVersion >= N)
+### Interruptable `sem_wait` (targetSdkVersion >= 24)
 
 POSIX says that `sem_wait` can be interrupted by delivery of a
 signal. This wasn't historically true in Android, and when we fixed this
 bug we found that existing code relied on the old behavior. To preserve
 compatibility, `sem_wait` can only return EINTR on Android if the app
-targets N or later.
+targets API level 24 or later.
 
 
 ## FORTIFY
@@ -367,22 +416,25 @@
 overrun is detected, the program is safely aborted as in this
 [example](https://source.android.com/devices/tech/debug/native-crash#fortify).
 
-Note that in recent releases Android's FORTIFY has been extended to
-cover other issues. It can now detect, for example, passing `O_CREAT`
-to open(2) without specifying a mode. It also performs some checking
-regardless of whether the caller was built with FORTIFY enabled. In P,
-for example, calling a `pthread_mutex_` function on a destroyed mutex,
-calling a `<dirent.h>` function on a null pointer, using `%n` with the
-printf(3) family, or using the scanf(3) `m` modifier incorrectly will
-all result in FORTIFY failures even for code not built with FORTIFY.
+Note that Android's FORTIFY has been extended to cover other issues. It can
+detect, for example, passing `O_CREAT` to open(2) without specifying a mode. It
+also performs some checking regardless of whether the caller was built with
+FORTIFY enabled. From API level 28, for example, calling a `pthread_mutex_`
+function on a destroyed mutex, calling a `<dirent.h>` function on a null
+pointer, using `%n` with the printf(3) family, or using the scanf(3) `m`
+modifier incorrectly will all result in FORTIFY failures even for code not built
+with FORTIFY.
 
 More background information is available in our
 [FORTIFY in Android](https://android-developers.googleblog.com/2017/04/fortify-in-android.html)
-blog post.
+blog post, and there's more detail about the implementation in
+[The Anatomy of Clang FORTIFY](clang_fortify_anatomy.md).
 
-The Android platform is built with `-D_FORTIFY_SOURCE=2`, but NDK users
-need to manually enable FORTIFY by setting that themselves in whatever
-build system they're using. The exact subset of FORTIFY available to
+The Android platform is built with `-D_FORTIFY_SOURCE=2`. Users of ndk-build
+or the NDK's CMake toolchain file also get this by default with NDK r21 or
+newer. Users of other build systems
+need to manually enable FORTIFY by setting `_FORTIFY_SOURCE` themselves in
+whatever build system they're using. The exact subset of FORTIFY available to
 NDK users will depend on their target ABI level, because when a FORTIFY
 check can't be guaranteed at compile-time, a call to a run-time `_chk`
 function is added.
diff --git a/libc/Android.bp b/libc/Android.bp
index f5f5f7c..c34023c 100644
--- a/libc/Android.bp
+++ b/libc/Android.bp
@@ -1,5 +1,3 @@
-// Define the common source files for all the libc instances
-// =========================================================
 package {
     default_applicable_licenses: ["bionic_libc_license"],
 }
@@ -20,31 +18,6 @@
     ],
 }
 
-libc_common_src_files = [
-    "bionic/ether_aton.c",
-    "bionic/ether_ntoa.c",
-    "bionic/exit.cpp",
-    "bionic/initgroups.c",
-    "bionic/isatty.c",
-    "bionic/sched_cpualloc.c",
-    "bionic/sched_cpucount.c",
-    "bionic/sysprop_helpers.cpp",
-    "stdio/fmemopen.cpp",
-    "stdio/parsefloat.c",
-    "stdio/refill.c",
-    "stdio/stdio.cpp",
-    "stdio/stdio_ext.cpp",
-    "stdio/vfscanf.cpp",
-    "stdio/vfwscanf.cpp",
-]
-
-// off64_t/time64_t support on LP32.
-// ========================================================
-libc_common_src_files_32 = [
-    "bionic/legacy_32_bit_support.cpp",
-    "bionic/time64.c",
-]
-
 libc_common_flags = [
     "-D_LIBC=1",
     "-D__BIONIC_LP32_USE_STAT64",
@@ -55,6 +28,7 @@
     "-Wno-deprecated-declarations",
     "-Wno-gcc-compat",
     "-Wframe-larger-than=2048",
+    "-Wno-reorder-init-list",
 
     // Try to catch typical 32-bit assumptions that break with 64-bit pointers.
     "-Werror=pointer-to-int-cast",
@@ -66,9 +40,6 @@
     // __dso_handle needs to have default visibility on ARM32. See b/73485611.
     "-Wexit-time-destructors",
 
-    // GWP-ASan requires platform TLS.
-    "-fno-emulated-tls",
-
     // We know clang does a lot of harm by rewriting what we've said, and sadly
     // never see any good it does, so let's just ask it to do what we say...
     // (The specific motivating example was clang turning a loop that would only
@@ -82,7 +53,9 @@
 cc_defaults {
     name: "libc_defaults",
     defaults: ["linux_bionic_supported"],
-    cflags: libc_common_flags,
+    cflags: libc_common_flags + [
+        "-DUSE_SCUDO",
+    ],
     asflags: libc_common_flags,
     conlyflags: ["-std=gnu99"],
     cppflags: [],
@@ -95,7 +68,7 @@
 
     header_libs: [
         "libc_headers",
-        "liblog_headers",  // needed by bionic/libc/async_safe/include
+        "liblog_headers", // needed by bionic/libc/async_safe/include
     ],
     export_header_lib_headers: [
         "libc_headers",
@@ -114,10 +87,6 @@
     recovery_available: true,
     native_bridge_supported: true,
 
-    // lld complains about duplicate symbols in libcrt and libgcc. Suppress the
-    // warning since this is intended right now.
-    ldflags: ["-Wl,-z,muldefs"],
-
     product_variables: {
         malloc_zero_contents: {
             cflags: ["-DSCUDO_ZERO_CONTENTS"],
@@ -125,42 +94,104 @@
         malloc_pattern_fill_contents: {
             cflags: ["-DSCUDO_PATTERN_FILL_CONTENTS"],
         },
-        malloc_not_svelte: {
-            cflags: ["-DUSE_SCUDO"],
+        malloc_low_memory: {
+            cflags: ["-UUSE_SCUDO"],
         },
     },
 
     lto: {
         never: true,
     },
+
+    apex_available: ["com.android.runtime"],
+
+    tidy_disabled_srcs: ["upstream-*/**/*.c"],
 }
 
-libc_scudo_product_variables = {
-    malloc_not_svelte: {
-        cflags: ["-DUSE_SCUDO"],
-        whole_static_libs: ["libscudo"],
-        exclude_static_libs: [
-            "libjemalloc5",
-            "libc_jemalloc_wrapper",
-        ],
+// Workaround for b/24465209.
+// We're unlikely to be able to remove this before we just
+// remove ILP32 support completely.
+// Note that we also still have `pack_relocations: false`
+// for both libc and libm, even on LP64.
+// ========================================================
+cc_defaults {
+    name: "bug_24465209_workaround",
+    target: {
+        android_arm: {
+            pack_relocations: false,
+            ldflags: ["-Wl,--hash-style=both"],
+        },
+        android_x86: {
+            pack_relocations: false,
+            ldflags: ["-Wl,--hash-style=both"],
+        },
+    },
+}
+
+// Leave the symbols in the shared library so that stack unwinders can produce
+// meaningful name resolution. This is a bit more ugly than it sounds because
+// arm32 is a bit broken.
+// ========================================================
+cc_defaults {
+    name: "keep_symbols",
+    arch: {
+        arm: {
+            // arm32 does not produce complete exidx unwind information,
+            // so keep the .debug_frame which is relatively small and does
+            // include needed unwind information.
+            // See b/132992102 for details.
+            strip: {
+                keep_symbols_and_debug_frame: true,
+            },
+        },
+        arm64: {
+            strip: {
+                keep_symbols: true,
+            },
+        },
+        riscv64: {
+            strip: {
+                keep_symbols: true,
+            },
+        },
+        x86: {
+            strip: {
+                keep_symbols: true,
+            },
+        },
+        x86_64: {
+            strip: {
+                keep_symbols: true,
+            },
+        },
     },
 }
 
 // Defaults for native allocator libs/includes to make it
 // easier to change.
-// To disable scudo for the non-svelte config remove the line:
-//     product_variables: libc_scudo_product_variables,
-// in the cc_defaults below.
 // ========================================================
 cc_defaults {
     name: "libc_native_allocator_defaults",
 
     whole_static_libs: [
-        "libjemalloc5",
-        "libc_jemalloc_wrapper",
+        "libscudo",
+    ],
+    cflags: [
+        "-DUSE_SCUDO",
     ],
     header_libs: ["gwp_asan_headers"],
-    product_variables: libc_scudo_product_variables,
+    product_variables: {
+        malloc_low_memory: {
+            cflags: ["-UUSE_SCUDO"],
+            whole_static_libs: [
+                "libjemalloc5",
+                "libc_jemalloc_wrapper",
+            ],
+            exclude_static_libs: [
+                "libscudo",
+            ],
+        },
+    },
 }
 
 // Functions not implemented by jemalloc directly, or that need to
@@ -213,10 +244,18 @@
     },
 
     defaults: ["libc_defaults"],
-    cflags: ["-fno-stack-protector", "-ffreestanding"],
+    cflags: [
+        "-fno-stack-protector",
+        "-ffreestanding",
+    ],
     name: "libc_bootstrap",
 }
 
+filegroup {
+    name: "elf_note_sources",
+    srcs: ["bionic/elf_note.cpp"],
+}
+
 // libc_init_static.cpp and libc_init_dynamic.cpp need to be built without stack protector.
 // libc_init_static.cpp sets up TLS for static executables, and libc_init_dynamic.cpp initializes
 // the stack protector global variable.
@@ -224,7 +263,11 @@
 cc_library_static {
     name: "libc_init_static",
     defaults: ["libc_defaults"],
-    srcs: ["bionic/libc_init_static.cpp"],
+    srcs: [
+        "bionic/libc_init_mte.cpp",
+        "bionic/libc_init_static.cpp",
+        ":elf_note_sources",
+    ],
     cflags: [
         "-fno-stack-protector",
 
@@ -248,14 +291,14 @@
 cc_library_static {
 
     defaults: ["libc_defaults"],
-    tidy_disabled_srcs: ["upstream-*/**/*.c"],
     srcs: [
         "tzcode/**/*.c",
         "tzcode/bionic.cpp",
-        // tzcode doesn't include strptime or wcsftime, so we use the OpenBSD
-        // code (with some local changes in the strptime case).
+        // tzcode doesn't include strptime, so we use a fork of the
+        // OpenBSD code which needs this global data.
         "upstream-openbsd/lib/libc/locale/_def_time.c",
-        "upstream-openbsd/lib/libc/time/wcsftime.c",
+        // tzcode doesn't include wcsftime, so we use the FreeBSD code.
+        "upstream-freebsd/lib/libc/locale/wcsftime.c",
     ],
 
     cflags: [
@@ -268,7 +311,7 @@
         "-DTHREAD_SAFE=1",
         // The name of the tm_gmtoff field in our struct tm.
         "-DTM_GMTOFF=tm_gmtoff",
-        // TZDEFAULT is not applicable to Android as there is no one file per time zone mapping
+        // Android uses a system property instead of /etc/localtime, so make callers crash.
         "-DTZDEFAULT=NULL",
         // Where we store our tzdata.
         "-DTZDIR=\"/system/usr/share/zoneinfo\"",
@@ -284,7 +327,10 @@
         "-Dlint",
     ],
 
-    local_include_dirs: ["tzcode/"],
+    local_include_dirs: [
+        "tzcode/",
+        "upstream-freebsd/android/include",
+    ],
     name: "libc_tzcode",
 }
 
@@ -295,7 +341,6 @@
 cc_library_static {
 
     defaults: ["libc_defaults"],
-    tidy_disabled_srcs: ["upstream-*/**/*.c"],
     srcs: [
         "dns/**/*.c*",
 
@@ -309,7 +354,6 @@
         "-Wno-unused-parameter",
         "-include netbsd-compat.h",
         "-Wframe-larger-than=66000",
-        "-include private/bsd_sys_param.h",
     ],
 
     local_include_dirs: [
@@ -330,16 +374,22 @@
 // automatically included.
 
 cc_library_static {
+    name: "libc_freebsd_ldexp",
     defaults: ["libc_defaults"],
-    tidy_disabled_srcs: ["upstream-*/**/*.c"],
+    cflags: ["-Dscalbn=ldexp"],
+    srcs: [":libc_ldexp_srcs"],
+}
+
+cc_library_static {
+    defaults: ["libc_defaults"],
     srcs: [
-        "upstream-freebsd/lib/libc/gen/ldexp.c",
         "upstream-freebsd/lib/libc/stdlib/getopt_long.c",
         "upstream-freebsd/lib/libc/stdlib/hcreate.c",
         "upstream-freebsd/lib/libc/stdlib/hcreate_r.c",
         "upstream-freebsd/lib/libc/stdlib/hdestroy_r.c",
         "upstream-freebsd/lib/libc/stdlib/hsearch_r.c",
         "upstream-freebsd/lib/libc/stdlib/qsort.c",
+        "upstream-freebsd/lib/libc/stdlib/qsort_r.c",
         "upstream-freebsd/lib/libc/stdlib/quick_exit.c",
         "upstream-freebsd/lib/libc/string/wcpcpy.c",
         "upstream-freebsd/lib/libc/string/wcpncpy.c",
@@ -368,20 +418,6 @@
         "upstream-freebsd/lib/libc/string/wmemmove.c",
         "upstream-freebsd/lib/libc/string/wmemset.c",
     ],
-    arch: {
-        x86: {
-            exclude_srcs: [
-                "upstream-freebsd/lib/libc/string/wcschr.c",
-                "upstream-freebsd/lib/libc/string/wcscmp.c",
-                "upstream-freebsd/lib/libc/string/wcslen.c",
-                "upstream-freebsd/lib/libc/string/wcsrchr.c",
-                "upstream-freebsd/lib/libc/string/wmemcmp.c",
-                "upstream-freebsd/lib/libc/string/wcscat.c",
-                "upstream-freebsd/lib/libc/string/wcscpy.c",
-                "upstream-freebsd/lib/libc/string/wmemcmp.c",
-            ],
-        },
-    },
 
     cflags: [
         "-Wno-sign-compare",
@@ -398,7 +434,6 @@
 
 cc_library_static {
     defaults: ["libc_defaults"],
-    tidy_disabled_srcs: ["upstream-*/**/*.c"],
     srcs: [
         "upstream-freebsd/lib/libc/gen/glob.c",
     ],
@@ -426,7 +461,6 @@
 cc_library_static {
 
     defaults: ["libc_defaults"],
-    tidy_disabled_srcs: ["upstream-*/**/*.c"],
     srcs: [
         "upstream-netbsd/common/lib/libc/stdlib/random.c",
         "upstream-netbsd/lib/libc/gen/nice.c",
@@ -437,7 +471,6 @@
         "upstream-netbsd/lib/libc/regex/regerror.c",
         "upstream-netbsd/lib/libc/regex/regexec.c",
         "upstream-netbsd/lib/libc/regex/regfree.c",
-        "upstream-netbsd/lib/libc/stdlib/bsearch.c",
         "upstream-netbsd/lib/libc/stdlib/drand48.c",
         "upstream-netbsd/lib/libc/stdlib/erand48.c",
         "upstream-netbsd/lib/libc/stdlib/jrand48.c",
@@ -473,19 +506,16 @@
 }
 
 // ========================================================
-// libc_openbsd_ndk.a - upstream OpenBSD C library code
-// that can be safely included in the libc_ndk.a (doesn't
-// contain any troublesome global data or constructors).
+// libc_openbsd.a - upstream OpenBSD C library code
 // ========================================================
 //
 // These files are built with the openbsd-compat.h header file
 // automatically included.
-
 cc_library_static {
-    name: "libc_openbsd_ndk",
     defaults: ["libc_defaults"],
-    tidy_disabled_srcs: ["upstream-*/**/*.c"],
     srcs: [
+        "upstream-openbsd/lib/libc/crypt/arc4random.c",
+        "upstream-openbsd/lib/libc/crypt/arc4random_uniform.c",
         "upstream-openbsd/lib/libc/gen/alarm.c",
         "upstream-openbsd/lib/libc/gen/ctype_.c",
         "upstream-openbsd/lib/libc/gen/daemon.c",
@@ -526,7 +556,6 @@
         "upstream-openbsd/lib/libc/stdio/fgetwc.c",
         "upstream-openbsd/lib/libc/stdio/fgetws.c",
         "upstream-openbsd/lib/libc/stdio/flags.c",
-        "upstream-openbsd/lib/libc/stdio/fpurge.c",
         "upstream-openbsd/lib/libc/stdio/fputwc.c",
         "upstream-openbsd/lib/libc/stdio/fputws.c",
         "upstream-openbsd/lib/libc/stdio/fvwrite.c",
@@ -580,131 +609,47 @@
         "upstream-openbsd/lib/libc/string/wcslcpy.c",
         "upstream-openbsd/lib/libc/string/wcswidth.c",
 
-        // This file is originally from OpenBSD, and benefits from
-        // being compiled with openbsd-compat.h.
+        // These files are originally from OpenBSD,
+        // and benefit from being compiled with openbsd-compat.h.
+        // TODO: clean them up instead.
         "bionic/fts.c",
-    ],
-
-    cflags: [
-        "-Wno-sign-compare",
-        "-Wno-unused-parameter",
-        "-include openbsd-compat.h",
-    ],
-
-    local_include_dirs: [
-        "private",
-        "stdio",
-        "upstream-openbsd/android/include",
-        "upstream-openbsd/lib/libc/include",
-        "upstream-openbsd/lib/libc/gdtoa/",
-    ],
-}
-
-cc_library_static {
-    name: "libc_openbsd_large_stack",
-    defaults: ["libc_defaults"],
-    tidy_disabled_srcs: ["upstream-*/**/*.c"],
-    srcs: [
         "stdio/vfprintf.cpp",
         "stdio/vfwprintf.cpp",
-        "upstream-openbsd/lib/libc/string/memmem.c",
-        "upstream-openbsd/lib/libc/string/strstr.c",
-    ],
-    cflags: [
-        "-include openbsd-compat.h",
-        "-Wno-sign-compare",
-        "-Wframe-larger-than=5000",
     ],
 
-    local_include_dirs: [
-        "private",
-        "upstream-openbsd/android/include/",
-        "upstream-openbsd/lib/libc/include/",
-        "upstream-openbsd/lib/libc/gdtoa/",
-        "upstream-openbsd/lib/libc/stdio/",
-    ],
-}
-
-// ========================================================
-// libc_openbsd.a - upstream OpenBSD C library code
-// ========================================================
-//
-// These files are built with the openbsd-compat.h header file
-// automatically included.
-cc_library_static {
-    defaults: ["libc_defaults"],
-    tidy_disabled_srcs: ["upstream-*/**/*.c"],
-    srcs: [
-        // These two depend on getentropy, which isn't in libc_ndk.a.
-        "upstream-openbsd/lib/libc/crypt/arc4random.c",
-        "upstream-openbsd/lib/libc/crypt/arc4random_uniform.c",
-
-        // May be overriden by per-arch optimized versions
-        "upstream-openbsd/lib/libc/string/memchr.c",
-        "upstream-openbsd/lib/libc/string/memrchr.c",
-        "upstream-openbsd/lib/libc/string/stpcpy.c",
-        "upstream-openbsd/lib/libc/string/stpncpy.c",
-        "upstream-openbsd/lib/libc/string/strcat.c",
-        "upstream-openbsd/lib/libc/string/strcpy.c",
-        "upstream-openbsd/lib/libc/string/strlcat.c",
-        "upstream-openbsd/lib/libc/string/strlcpy.c",
-        "upstream-openbsd/lib/libc/string/strncat.c",
-        "upstream-openbsd/lib/libc/string/strncmp.c",
-        "upstream-openbsd/lib/libc/string/strncpy.c",
-    ],
-
+    // Each architecture has optimized versions of some routines,
+    // and only includes the portable C versions of ones it's missing.
     arch: {
         arm: {
-            exclude_srcs: [
-                "upstream-openbsd/lib/libc/string/strcpy.c",
-                "upstream-openbsd/lib/libc/string/stpcpy.c",
-                "upstream-openbsd/lib/libc/string/strcat.c",
+            srcs: [
+                "upstream-openbsd/lib/libc/string/memchr.c",
+                "upstream-openbsd/lib/libc/string/stpncpy.c",
+                "upstream-openbsd/lib/libc/string/strncat.c",
+                "upstream-openbsd/lib/libc/string/strncmp.c",
+                "upstream-openbsd/lib/libc/string/strncpy.c",
             ],
         },
         arm64: {
-            exclude_srcs: [
-                "upstream-openbsd/lib/libc/string/memchr.c",
-                "upstream-openbsd/lib/libc/string/memrchr.c",
-                "upstream-openbsd/lib/libc/string/stpcpy.c",
-                "upstream-openbsd/lib/libc/string/strcpy.c",
-                "upstream-openbsd/lib/libc/string/strncmp.c",
+            srcs: [
+                "upstream-openbsd/lib/libc/string/strcat.c",
+                "upstream-openbsd/lib/libc/string/stpncpy.c",
+                "upstream-openbsd/lib/libc/string/strncat.c",
+                "upstream-openbsd/lib/libc/string/strncpy.c",
             ],
         },
         riscv64: {
             srcs: [
-                "upstream-freebsd/lib/libc/string/memcmp.c",
-                "upstream-freebsd/lib/libc/string/memcpy.c",
-                "upstream-freebsd/lib/libc/string/memmove.c",
-                "upstream-freebsd/lib/libc/string/memset.c",
-                "upstream-openbsd/lib/libc/string/strcmp.c",
-                "upstream-openbsd/lib/libc/string/strlen.c",
+                "upstream-openbsd/lib/libc/string/stpncpy.c",
             ],
         },
         x86: {
-            exclude_srcs: [
-                "upstream-openbsd/lib/libc/string/memchr.c",
-                "upstream-openbsd/lib/libc/string/memrchr.c",
-                "upstream-openbsd/lib/libc/string/stpcpy.c",
-                "upstream-openbsd/lib/libc/string/stpncpy.c",
-                "upstream-openbsd/lib/libc/string/strcat.c",
-                "upstream-openbsd/lib/libc/string/strcpy.c",
-                "upstream-openbsd/lib/libc/string/strncmp.c",
-                "upstream-openbsd/lib/libc/string/strncpy.c",
-                "upstream-openbsd/lib/libc/string/strlcat.c",
-                "upstream-openbsd/lib/libc/string/strlcpy.c",
-                "upstream-openbsd/lib/libc/string/strncat.c",
+            srcs: [
+                // x86 has custom implementations of all of these.
             ],
         },
-
         x86_64: {
-            exclude_srcs: [
-                "upstream-openbsd/lib/libc/string/stpcpy.c",
-                "upstream-openbsd/lib/libc/string/stpncpy.c",
-                "upstream-openbsd/lib/libc/string/strcat.c",
-                "upstream-openbsd/lib/libc/string/strcpy.c",
-                "upstream-openbsd/lib/libc/string/strncat.c",
-                "upstream-openbsd/lib/libc/string/strncmp.c",
-                "upstream-openbsd/lib/libc/string/strncpy.c",
+            srcs: [
+                // x86_64 has custom/llvm-libc implementations of all of these.
             ],
         },
     },
@@ -717,12 +662,34 @@
 
     local_include_dirs: [
         "private",
-        "upstream-openbsd/android/include",
+        "stdio",
+        "upstream-openbsd/android/include/",
+        "upstream-openbsd/lib/libc/gdtoa/",
+        "upstream-openbsd/lib/libc/include/",
+        "upstream-openbsd/lib/libc/stdio/",
     ],
 
     name: "libc_openbsd",
 }
 
+cc_library_static {
+    name: "libc_openbsd_large_stack",
+    defaults: ["libc_defaults"],
+    srcs: [
+        "upstream-openbsd/lib/libc/string/memmem.c",
+        "upstream-openbsd/lib/libc/string/strstr.c",
+    ],
+    cflags: [
+        "-include openbsd-compat.h",
+        "-Wno-sign-compare",
+        "-Wframe-larger-than=5000",
+    ],
+
+    local_include_dirs: [
+        "upstream-openbsd/android/include/",
+    ],
+}
+
 // ========================================================
 // libc_gdtoa.a - upstream OpenBSD C library gdtoa code
 // ========================================================
@@ -732,7 +699,6 @@
 
 cc_library_static {
     defaults: ["libc_defaults"],
-    tidy_disabled_srcs: ["upstream-*/**/*.c"],
     srcs: [
         "upstream-openbsd/android/gdtoa_support.cpp",
         "upstream-openbsd/lib/libc/gdtoa/dmisc.c",
@@ -826,8 +792,8 @@
         },
         riscv64: {
             srcs: [
-               "arch-riscv64/string/__memset_chk.S",
-               "arch-riscv64/string/__memcpy_chk.S",
+                "arch-riscv64/string/__memset_chk.S",
+                "arch-riscv64/string/__memcpy_chk.S",
             ],
         },
     },
@@ -840,217 +806,10 @@
 cc_library_static {
     defaults: ["libc_defaults"],
     srcs: [
-        // These require getauxval, which isn't available on older platforms.
-        "bionic/sysconf.cpp",
-        "bionic/vdso.cpp",
-        "bionic/setjmp_cookie.cpp",
-
-        // The following must not be statically linked into libc_ndk.a, because
-        // debuggerd will look for the abort message in libc.so's copy.
-        "bionic/android_set_abort_message.cpp",
-
-        "bionic/strchr.cpp",
-        "bionic/strchrnul.cpp",
-        "bionic/strnlen.c",
-        "bionic/strrchr.cpp",
-    ],
-
-    arch: {
-        arm: {
-            asflags: libc_common_flags + ["-mno-restrict-it"],
-            srcs: [
-                "arch-arm/generic/bionic/memcmp.S",
-                "arch-arm/generic/bionic/memmove.S",
-                "arch-arm/generic/bionic/memset.S",
-                "arch-arm/generic/bionic/stpcpy.c",
-                "arch-arm/generic/bionic/strcat.c",
-                "arch-arm/generic/bionic/strcmp.S",
-                "arch-arm/generic/bionic/strcpy.S",
-                "arch-arm/generic/bionic/strlen.c",
-
-                "arch-arm/bionic/__aeabi_read_tp.S",
-                "arch-arm/bionic/__bionic_clone.S",
-                "arch-arm/bionic/__restore.S",
-                "arch-arm/bionic/_exit_with_stack_teardown.S",
-                "arch-arm/bionic/atomics_arm.c",
-                "arch-arm/bionic/bpabi.c",
-                "arch-arm/bionic/libcrt_compat.c",
-                "arch-arm/bionic/popcount_tab.c",
-                "arch-arm/bionic/setjmp.S",
-                "arch-arm/bionic/syscall.S",
-                "arch-arm/bionic/vfork.S",
-
-                "arch-arm/cortex-a15/bionic/memcpy.S",
-                "arch-arm/cortex-a15/bionic/memmove.S",
-                "arch-arm/cortex-a15/bionic/memset.S",
-                "arch-arm/cortex-a15/bionic/stpcpy.S",
-                "arch-arm/cortex-a15/bionic/strcat.S",
-                "arch-arm/cortex-a15/bionic/strcmp.S",
-                "arch-arm/cortex-a15/bionic/strcpy.S",
-                "arch-arm/cortex-a15/bionic/strlen.S",
-
-                "arch-arm/cortex-a7/bionic/memcpy.S",
-                "arch-arm/cortex-a7/bionic/memset.S",
-
-                "arch-arm/cortex-a9/bionic/memcpy.S",
-                "arch-arm/cortex-a9/bionic/memset.S",
-                "arch-arm/cortex-a9/bionic/stpcpy.S",
-                "arch-arm/cortex-a9/bionic/strcat.S",
-                "arch-arm/cortex-a9/bionic/strcpy.S",
-                "arch-arm/cortex-a9/bionic/strlen.S",
-
-                "arch-arm/krait/bionic/memcpy.S",
-                "arch-arm/krait/bionic/memset.S",
-
-                "arch-arm/cortex-a53/bionic/memcpy.S",
-
-                "arch-arm/cortex-a55/bionic/memcpy.S",
-
-                "arch-arm/kryo/bionic/memcpy.S",
-            ],
-        },
-        arm64: {
-            srcs: [
-                "arch-arm64/bionic/__bionic_clone.S",
-                "arch-arm64/bionic/_exit_with_stack_teardown.S",
-                "arch-arm64/bionic/setjmp.S",
-                "arch-arm64/bionic/syscall.S",
-                "arch-arm64/bionic/vfork.S",
-            ],
-            exclude_srcs: [
-                "bionic/strchr.cpp",
-                "bionic/strchrnul.cpp",
-                "bionic/strnlen.c",
-                "bionic/strrchr.cpp",
-            ],
-        },
-
-        riscv64: {
-            srcs: [
-                "arch-riscv64/bionic/__bionic_clone.S",
-                "arch-riscv64/bionic/_exit_with_stack_teardown.S",
-                "arch-riscv64/bionic/setjmp.S",
-                "arch-riscv64/bionic/syscall.S",
-                "arch-riscv64/bionic/vfork.S",
-            ],
-        },
-
-        x86: {
-            srcs: [
-                "arch-x86/generic/string/memcmp.S",
-                "arch-x86/generic/string/strcmp.S",
-                "arch-x86/generic/string/strncmp.S",
-                "arch-x86/generic/string/strcat.S",
-
-                "arch-x86/generic/string/strlcat.c",
-                "arch-x86/generic/string/strlcpy.c",
-                "arch-x86/generic/string/strncat.c",
-                "arch-x86/generic/string/wcscat.c",
-                "arch-x86/generic/string/wcscpy.c",
-                "arch-x86/generic/string/wmemcmp.c",
-
-                "arch-x86/string/sse2-memchr-atom.S",
-                "arch-x86/string/sse2-memmove-slm.S",
-                "arch-x86/string/sse2-memrchr-atom.S",
-                "arch-x86/string/sse2-memset-atom.S",
-                "arch-x86/string/sse2-memset-slm.S",
-                "arch-x86/string/sse2-stpcpy-slm.S",
-                "arch-x86/string/sse2-stpncpy-slm.S",
-                "arch-x86/string/sse2-strchr-atom.S",
-                "arch-x86/string/sse2-strcpy-slm.S",
-                "arch-x86/string/sse2-strlen-slm.S",
-                "arch-x86/string/sse2-strncpy-slm.S",
-                "arch-x86/string/sse2-strnlen-atom.S",
-                "arch-x86/string/sse2-strrchr-atom.S",
-                "arch-x86/string/sse2-wcschr-atom.S",
-                "arch-x86/string/sse2-wcsrchr-atom.S",
-                "arch-x86/string/sse2-wcslen-atom.S",
-                "arch-x86/string/sse2-wcscmp-atom.S",
-                "arch-x86/string/sse2-strlen-atom.S",
-
-                "arch-x86/string/ssse3-memcmp-atom.S",
-                "arch-x86/string/ssse3-memmove-atom.S",
-                "arch-x86/string/ssse3-strcat-atom.S",
-                "arch-x86/string/ssse3-strcmp-atom.S",
-                "arch-x86/string/ssse3-strcpy-atom.S",
-                "arch-x86/string/ssse3-strlcat-atom.S",
-                "arch-x86/string/ssse3-strlcpy-atom.S",
-                "arch-x86/string/ssse3-strncat-atom.S",
-                "arch-x86/string/ssse3-strncmp-atom.S",
-                "arch-x86/string/ssse3-strncpy-atom.S",
-                "arch-x86/string/ssse3-wcscat-atom.S",
-                "arch-x86/string/ssse3-wcscpy-atom.S",
-                "arch-x86/string/ssse3-wmemcmp-atom.S",
-
-                "arch-x86/string/sse4-memcmp-slm.S",
-                "arch-x86/string/sse4-wmemcmp-slm.S",
-
-                "arch-x86/bionic/__bionic_clone.S",
-                "arch-x86/bionic/_exit_with_stack_teardown.S",
-                "arch-x86/bionic/libcrt_compat.c",
-                "arch-x86/bionic/__restore.S",
-                "arch-x86/bionic/setjmp.S",
-                "arch-x86/bionic/syscall.S",
-                "arch-x86/bionic/vfork.S",
-                "arch-x86/bionic/__x86.get_pc_thunk.S",
-            ],
-
-            exclude_srcs: [
-                "bionic/strchr.cpp",
-                "bionic/strnlen.c",
-                "bionic/strrchr.cpp",
-            ],
-        },
-        x86_64: {
-            srcs: [
-                "arch-x86_64/string/avx2-memset-kbl.S",
-                "arch-x86_64/string/sse2-memmove-slm.S",
-                "arch-x86_64/string/sse2-memset-slm.S",
-                "arch-x86_64/string/sse2-stpcpy-slm.S",
-                "arch-x86_64/string/sse2-stpncpy-slm.S",
-                "arch-x86_64/string/sse2-strcat-slm.S",
-                "arch-x86_64/string/sse2-strcpy-slm.S",
-                "arch-x86_64/string/sse2-strlen-slm.S",
-                "arch-x86_64/string/sse2-strncat-slm.S",
-                "arch-x86_64/string/sse2-strncpy-slm.S",
-                "arch-x86_64/string/sse4-memcmp-slm.S",
-                "arch-x86_64/string/ssse3-strcmp-slm.S",
-                "arch-x86_64/string/ssse3-strncmp-slm.S",
-
-                "arch-x86_64/bionic/__bionic_clone.S",
-                "arch-x86_64/bionic/_exit_with_stack_teardown.S",
-                "arch-x86_64/bionic/__restore_rt.S",
-                "arch-x86_64/bionic/setjmp.S",
-                "arch-x86_64/bionic/syscall.S",
-                "arch-x86_64/bionic/vfork.S",
-            ],
-        },
-    },
-
-    cppflags: ["-Wold-style-cast"],
-    include_dirs: ["bionic/libstdc++/include"],
-    name: "libc_bionic",
-}
-
-genrule {
-    name: "generated_android_ids",
-    out: ["generated_android_ids.h"],
-    srcs: [":android_filesystem_config_header"],
-    tool_files: ["fs_config_generator.py"],
-    cmd: "$(location fs_config_generator.py) aidarray $(in) > $(out)",
-}
-
-// ========================================================
-// libc_bionic_ndk.a- The portions of libc_bionic that can
-// be safely used in libc_ndk.a (no troublesome global data
-// or constructors).
-// ========================================================
-cc_library_static {
-    defaults: ["libc_defaults"],
-    srcs: [
         "bionic/NetdClientDispatch.cpp",
         "bionic/__bionic_get_shell_path.cpp",
         "bionic/__cmsg_nxthdr.cpp",
+        "bionic/__cxa_thread_atexit_impl.cpp",
         "bionic/__errno.cpp",
         "bionic/__gnu_basename.cpp",
         "bionic/__libc_current_sigrtmax.cpp",
@@ -1058,13 +817,19 @@
         "bionic/abort.cpp",
         "bionic/accept.cpp",
         "bionic/access.cpp",
+        "bionic/android_crash_detail.cpp",
+        "bionic/android_set_abort_message.cpp",
+        "bionic/android_unsafe_frame_pointer_chase.cpp",
         "bionic/arpa_inet.cpp",
         "bionic/assert.cpp",
+        "bionic/atexit.cpp",
         "bionic/atof.cpp",
         "bionic/bionic_allocator.cpp",
         "bionic/bionic_arc4random.cpp",
+        "bionic/bionic_elf_tls.cpp",
         "bionic/bionic_futex.cpp",
         "bionic/bionic_netlink.cpp",
+        "bionic/bionic_systrace.cpp",
         "bionic/bionic_time_conversions.cpp",
         "bionic/brk.cpp",
         "bionic/c16rtomb.cpp",
@@ -1084,6 +849,7 @@
         "bionic/eventfd.cpp",
         "bionic/exec.cpp",
         "bionic/execinfo.cpp",
+        "bionic/exit.cpp",
         "bionic/faccessat.cpp",
         "bionic/fchmod.cpp",
         "bionic/fchmodat.cpp",
@@ -1093,6 +859,7 @@
         "bionic/ffs.cpp",
         "bionic/fgetxattr.cpp",
         "bionic/flistxattr.cpp",
+        "bionic/fork.cpp",
         "bionic/fpclassify.cpp",
         "bionic/fsetxattr.cpp",
         "bionic/ftruncate.cpp",
@@ -1117,8 +884,10 @@
         "bionic/ifaddrs.cpp",
         "bionic/inotify_init.cpp",
         "bionic/ioctl.cpp",
+        "bionic/isatty.cpp",
         "bionic/killpg.cpp",
         "bionic/langinfo.cpp",
+        "bionic/lchmod.cpp",
         "bionic/lchown.cpp",
         "bionic/lfs64_support.cpp",
         "bionic/libc_init_common.cpp",
@@ -1136,9 +905,9 @@
         "bionic/mkfifo.cpp",
         "bionic/mknod.cpp",
         "bionic/mntent.cpp",
-        "bionic/mremap.cpp",
-        "bionic/net_if.cpp",
         "bionic/netdb.cpp",
+        "bionic/net_if.cpp",
+        "bionic/netinet_ether.cpp",
         "bionic/netinet_in.cpp",
         "bionic/nl_types.cpp",
         "bionic/open.cpp",
@@ -1152,6 +921,31 @@
         "bionic/posix_madvise.cpp",
         "bionic/posix_timers.cpp",
         "bionic/preadv_pwritev.cpp",
+        "bionic/pthread_atfork.cpp",
+        "bionic/pthread_attr.cpp",
+        "bionic/pthread_barrier.cpp",
+        "bionic/pthread_cond.cpp",
+        "bionic/pthread_create.cpp",
+        "bionic/pthread_detach.cpp",
+        "bionic/pthread_equal.cpp",
+        "bionic/pthread_exit.cpp",
+        "bionic/pthread_getaffinity.cpp",
+        "bionic/pthread_getcpuclockid.cpp",
+        "bionic/pthread_getschedparam.cpp",
+        "bionic/pthread_gettid_np.cpp",
+        "bionic/pthread_internal.cpp",
+        "bionic/pthread_join.cpp",
+        "bionic/pthread_key.cpp",
+        "bionic/pthread_kill.cpp",
+        "bionic/pthread_mutex.cpp",
+        "bionic/pthread_once.cpp",
+        "bionic/pthread_rwlock.cpp",
+        "bionic/pthread_sigqueue.cpp",
+        "bionic/pthread_self.cpp",
+        "bionic/pthread_setname_np.cpp",
+        "bionic/pthread_setaffinity.cpp",
+        "bionic/pthread_setschedparam.cpp",
+        "bionic/pthread_spinlock.cpp",
         "bionic/ptrace.cpp",
         "bionic/pty.cpp",
         "bionic/raise.cpp",
@@ -1164,12 +958,15 @@
         "bionic/rename.cpp",
         "bionic/rmdir.cpp",
         "bionic/scandir.cpp",
+        "bionic/sched_cpualloc.cpp",
+        "bionic/sched_cpucount.cpp",
         "bionic/sched_getaffinity.cpp",
         "bionic/sched_getcpu.cpp",
         "bionic/semaphore.cpp",
         "bionic/send.cpp",
         "bionic/setegid.cpp",
         "bionic/seteuid.cpp",
+        "bionic/setjmp_cookie.cpp",
         "bionic/setpgrp.cpp",
         "bionic/sigaction.cpp",
         "bionic/signal.cpp",
@@ -1188,6 +985,7 @@
         "bionic/swab.cpp",
         "bionic/symlink.cpp",
         "bionic/sync_file_range.cpp",
+        "bionic/sysconf.cpp",
         "bionic/sys_epoll.cpp",
         "bionic/sys_msg.cpp",
         "bionic/sys_sem.cpp",
@@ -1195,9 +993,11 @@
         "bionic/sys_signalfd.cpp",
         "bionic/sys_statfs.cpp",
         "bionic/sys_statvfs.cpp",
+        "bionic/sys_thread_properties.cpp",
         "bionic/sys_time.cpp",
         "bionic/sysinfo.cpp",
         "bionic/syslog.cpp",
+        "bionic/sysprop_helpers.cpp",
         "bionic/system.cpp",
         "bionic/system_property_api.cpp",
         "bionic/system_property_set.cpp",
@@ -1205,13 +1005,13 @@
         "bionic/termios.cpp",
         "bionic/thread_private.cpp",
         "bionic/threads.cpp",
-        "bionic/time_l.cpp",
-        "bionic/timespec_get.cpp",
+        "bionic/time.cpp",
         "bionic/tmpfile.cpp",
         "bionic/umount.cpp",
         "bionic/unlink.cpp",
         "bionic/usleep.cpp",
         "bionic/utmp.cpp",
+        "bionic/vdso.cpp",
         "bionic/wait.cpp",
         "bionic/wchar.cpp",
         "bionic/wchar_l.cpp",
@@ -1220,97 +1020,221 @@
         "bionic/wcwidth.cpp",
         "bionic/wmempcpy.cpp",
 
-        // This contains a weak stub implementation of __find_icu_symbol for wctype.cpp,
-        // which will be overridden by the actual one in libc.so.
-        "bionic/icu_static.cpp",
+        // Forked but not yet cleaned up/rewritten stdio code.
+        // TODO: finish cleanup.
+        "stdio/fmemopen.cpp",
+        "stdio/parsefloat.c",
+        "stdio/refill.c",
+        "stdio/stdio.cpp",
+        "stdio/stdio_ext.cpp",
+        "stdio/vfscanf.cpp",
+        "stdio/vfwscanf.cpp",
     ],
 
+    arch: {
+        arm: {
+            asflags: libc_common_flags + ["-mno-restrict-it"],
+            srcs: [
+                "arch-arm/bionic/__aeabi_read_tp.S",
+                "arch-arm/bionic/__bionic_clone.S",
+                "arch-arm/bionic/__restore.S",
+                "arch-arm/bionic/_exit_with_stack_teardown.S",
+                "arch-arm/bionic/atomics_arm.c",
+                "arch-arm/bionic/bpabi.c",
+                "arch-arm/bionic/libcrt_compat.c",
+                "arch-arm/bionic/popcount_tab.c",
+                "arch-arm/bionic/setjmp.S",
+                "arch-arm/bionic/syscall.S",
+                "arch-arm/bionic/vfork.S",
+
+                "arch-arm/cortex-a7/bionic/memcpy.S",
+                "arch-arm/cortex-a7/bionic/memset.S",
+
+                "arch-arm/cortex-a9/bionic/memcpy.S",
+                "arch-arm/cortex-a9/bionic/memset.S",
+                "arch-arm/cortex-a9/bionic/stpcpy.S",
+                "arch-arm/cortex-a9/bionic/strcat.S",
+                "arch-arm/cortex-a9/bionic/strcpy.S",
+                "arch-arm/cortex-a9/bionic/strlen.S",
+
+                "arch-arm/cortex-a15/bionic/memcpy.S",
+                "arch-arm/cortex-a15/bionic/memmove.S",
+                "arch-arm/cortex-a15/bionic/memset.S",
+                "arch-arm/cortex-a15/bionic/stpcpy.S",
+                "arch-arm/cortex-a15/bionic/strcat.S",
+                "arch-arm/cortex-a15/bionic/strcmp.S",
+                "arch-arm/cortex-a15/bionic/strcpy.S",
+                "arch-arm/cortex-a15/bionic/strlen.S",
+
+                "arch-arm/cortex-a53/bionic/memcpy.S",
+
+                "arch-arm/cortex-a55/bionic/memcpy.S",
+
+                "arch-arm/generic/bionic/memcmp.S",
+                "arch-arm/generic/bionic/memmove.S",
+                "arch-arm/generic/bionic/memset.S",
+                "arch-arm/generic/bionic/stpcpy.c",
+                "arch-arm/generic/bionic/strcat.c",
+                "arch-arm/generic/bionic/strcmp.S",
+                "arch-arm/generic/bionic/strcpy.S",
+                "arch-arm/generic/bionic/strlen.c",
+
+                "arch-arm/krait/bionic/memcpy.S",
+                "arch-arm/krait/bionic/memset.S",
+
+                "arch-arm/kryo/bionic/memcpy.S",
+
+                "bionic/strchr.cpp",
+                "bionic/strchrnul.cpp",
+                "bionic/strnlen.cpp",
+                "bionic/strrchr.cpp",
+            ],
+        },
+        arm64: {
+            srcs: [
+                "arch-arm64/bionic/__bionic_clone.S",
+                "arch-arm64/bionic/_exit_with_stack_teardown.S",
+                "arch-arm64/bionic/setjmp.S",
+                "arch-arm64/bionic/syscall.S",
+                "arch-arm64/bionic/vfork.S",
+                "arch-arm64/oryon/memcpy-nt.S",
+                "arch-arm64/oryon/memset-nt.S",
+            ],
+        },
+
+        riscv64: {
+            srcs: [
+                "arch-riscv64/bionic/__bionic_clone.S",
+                "arch-riscv64/bionic/_exit_with_stack_teardown.S",
+                "arch-riscv64/bionic/setjmp.S",
+                "arch-riscv64/bionic/syscall.S",
+                "arch-riscv64/bionic/vfork.S",
+
+                "arch-riscv64/string/memchr_v.S",
+                "arch-riscv64/string/memcmp_v.S",
+                "arch-riscv64/string/memcpy_v.S",
+                "arch-riscv64/string/memmove_v.S",
+                "arch-riscv64/string/memset_v.S",
+                "arch-riscv64/string/stpcpy_v.S",
+                "arch-riscv64/string/strcat_v.S",
+                "arch-riscv64/string/strchr_v.S",
+                "arch-riscv64/string/strcmp_v.S",
+                "arch-riscv64/string/strcpy_v.S",
+                "arch-riscv64/string/strlen_v.S",
+                "arch-riscv64/string/strncat_v.S",
+                "arch-riscv64/string/strncmp_v.S",
+                "arch-riscv64/string/strncpy_v.S",
+                "arch-riscv64/string/strnlen_v.S",
+
+                "arch-riscv64/string/memchr.c",
+                "arch-riscv64/string/memcmp.c",
+                "arch-riscv64/string/memcpy.c",
+                "arch-riscv64/string/memmove.c",
+                "arch-riscv64/string/memset.c",
+                "arch-riscv64/string/stpcpy.c",
+                "arch-riscv64/string/strcat.c",
+                "arch-riscv64/string/strchr.c",
+                "arch-riscv64/string/strcmp.c",
+                "arch-riscv64/string/strcpy.c",
+                "arch-riscv64/string/strlen.c",
+                "arch-riscv64/string/strncat.c",
+                "arch-riscv64/string/strncmp.c",
+                "arch-riscv64/string/strncpy.c",
+                "arch-riscv64/string/strnlen.c",
+
+                "bionic/strchrnul.cpp",
+                "bionic/strrchr.cpp",
+            ],
+        },
+
+        x86: {
+            srcs: [
+                "arch-x86/bionic/__bionic_clone.S",
+                "arch-x86/bionic/_exit_with_stack_teardown.S",
+                "arch-x86/bionic/libcrt_compat.c",
+                "arch-x86/bionic/setjmp.S",
+                "arch-x86/bionic/syscall.S",
+                "arch-x86/bionic/vfork.S",
+                "arch-x86/bionic/__x86.get_pc_thunk.S",
+
+                "arch-x86/string/sse2-memchr-atom.S",
+                "arch-x86/string/sse2-memmove-slm.S",
+                "arch-x86/string/sse2-memset-slm.S",
+                "arch-x86/string/sse2-stpcpy-slm.S",
+                "arch-x86/string/sse2-stpncpy-slm.S",
+                "arch-x86/string/sse2-strchr-atom.S",
+                "arch-x86/string/sse2-strcpy-slm.S",
+                "arch-x86/string/sse2-strlen-slm.S",
+                "arch-x86/string/sse2-strncpy-slm.S",
+                "arch-x86/string/sse2-strnlen-atom.S",
+                "arch-x86/string/sse2-strrchr-atom.S",
+
+                "arch-x86/string/ssse3-memcmp-atom.S",
+                "arch-x86/string/ssse3-strcat-atom.S",
+                "arch-x86/string/ssse3-strcmp-atom.S",
+                "arch-x86/string/ssse3-strncat-atom.S",
+                "arch-x86/string/ssse3-strncmp-atom.S",
+
+                "arch-x86/string/sse4-memcmp-slm.S",
+
+                "bionic/strchrnul.cpp",
+            ],
+        },
+        x86_64: {
+            srcs: [
+                "arch-x86_64/bionic/__bionic_clone.S",
+                "arch-x86_64/bionic/_exit_with_stack_teardown.S",
+                "arch-x86_64/bionic/__restore_rt.S",
+                "arch-x86_64/bionic/setjmp.S",
+                "arch-x86_64/bionic/syscall.S",
+                "arch-x86_64/bionic/vfork.S",
+
+                "arch-x86_64/string/avx2-memset-kbl.S",
+                "arch-x86_64/string/sse2-memmove-slm.S",
+                "arch-x86_64/string/sse2-memset-slm.S",
+                "arch-x86_64/string/sse2-stpcpy-slm.S",
+                "arch-x86_64/string/sse2-stpncpy-slm.S",
+                "arch-x86_64/string/sse2-strcat-slm.S",
+                "arch-x86_64/string/sse2-strcpy-slm.S",
+                "arch-x86_64/string/sse2-strlen-slm.S",
+                "arch-x86_64/string/sse2-strncat-slm.S",
+                "arch-x86_64/string/sse2-strncpy-slm.S",
+                "arch-x86_64/string/sse4-memcmp-slm.S",
+                "arch-x86_64/string/ssse3-strcmp-slm.S",
+                "arch-x86_64/string/ssse3-strncmp-slm.S",
+            ],
+        },
+    },
+
     multilib: {
         lib32: {
-            // LP32 cruft
-            srcs: ["bionic/mmap.cpp"],
+            srcs: [
+                // off64_t/time64_t support on LP32.
+                "bionic/legacy_32_bit_support.cpp",
+                "bionic/time64.c",
+            ],
         },
     },
-    product_variables: {
-        treble_linker_namespaces: {
-            cflags: ["-DTREBLE_LINKER_NAMESPACES"],
-        },
-    },
+
+    local_include_dirs: ["stdio"],
+    generated_headers: ["generated_android_ids"],
+
     whole_static_libs: [
-        "libc_bionic_systrace",
+        "//external/llvm-libc:llvmlibc",
         "libsystemproperties",
     ],
-    cppflags: ["-Wold-style-cast"],
-    local_include_dirs: ["stdio"],
-    include_dirs: ["bionic/libstdc++/include"],
-    name: "libc_bionic_ndk",
-    generated_headers: ["generated_android_ids"],
-}
-
-// ========================================================
-// libc_bionic_systrace.a
-// ========================================================
-
-cc_library_static {
-    name: "libc_bionic_systrace",
-    defaults: ["libc_defaults"],
-    srcs: [
-        "bionic/bionic_systrace.cpp",
-    ],
-    apex_available: [
-        "com.android.runtime",
-    ],
-}
-
-// ========================================================
-// libc_pthread.a - pthreads parts that previously lived in
-// libc_bionic.a. Relocated to their own library because
-// they can't be included in libc_ndk.a (as the layout of
-// pthread_t has changed over the years and has ABI
-// compatibility issues).
-// ========================================================
-
-cc_library_static {
-    defaults: ["libc_defaults"],
-    srcs: [
-        "bionic/bionic_elf_tls.cpp",
-        "bionic/pthread_atfork.cpp",
-        "bionic/pthread_attr.cpp",
-        "bionic/pthread_barrier.cpp",
-        "bionic/pthread_cond.cpp",
-        "bionic/pthread_create.cpp",
-        "bionic/pthread_detach.cpp",
-        "bionic/pthread_equal.cpp",
-        "bionic/pthread_exit.cpp",
-        "bionic/pthread_getcpuclockid.cpp",
-        "bionic/pthread_getschedparam.cpp",
-        "bionic/pthread_gettid_np.cpp",
-        "bionic/pthread_internal.cpp",
-        "bionic/pthread_join.cpp",
-        "bionic/pthread_key.cpp",
-        "bionic/pthread_kill.cpp",
-        "bionic/pthread_mutex.cpp",
-        "bionic/pthread_once.cpp",
-        "bionic/pthread_rwlock.cpp",
-        "bionic/pthread_sigqueue.cpp",
-        "bionic/pthread_self.cpp",
-        "bionic/pthread_setname_np.cpp",
-        "bionic/pthread_setschedparam.cpp",
-        "bionic/pthread_spinlock.cpp",
-        "bionic/sys_thread_properties.cpp",
-
-        // The following implementations depend on pthread data or implementation,
-        // so we can't include them in libc_ndk.a.
-        "bionic/__cxa_thread_atexit_impl.cpp",
-        "bionic/android_unsafe_frame_pointer_chase.cpp",
-        "bionic/atexit.cpp",
-        "bionic/fork.cpp",
-    ],
 
     cppflags: ["-Wold-style-cast"],
     include_dirs: ["bionic/libstdc++/include"],
-    header_libs: ["bionic_libc_platform_headers"],
-    name: "libc_pthread",
+    name: "libc_bionic",
+}
+
+genrule {
+    name: "generated_android_ids",
+    out: ["generated_android_ids.h"],
+    srcs: [":android_filesystem_config_header"],
+    tools: ["fs_config_generator"],
+    cmd: "$(location fs_config_generator) aidarray $(in) > $(out)",
 }
 
 // ========================================================
@@ -1399,116 +1323,7 @@
 }
 
 // ========================================================
-// libc_ndk.a
-// Compatibility library for the NDK. This library contains
-// all the parts of libc that are safe to statically link.
-// We can't safely statically link things that can only run
-// on a certain version of the OS. Examples include
-// anything that talks to netd (a large portion of the DNS
-// code) and anything that is dependent on the layout of a
-// data structure that has changed across releases (such as
-// pthread_t).
-// ========================================================
-
-cc_library_static {
-    name: "libc_ndk",
-    defaults: [
-        "libc_defaults",
-        "libc_native_allocator_defaults",
-    ],
-    ramdisk_available: false,
-    vendor_ramdisk_available: false,
-    srcs: libc_common_src_files + [
-        "bionic/gwp_asan_wrappers.cpp",
-        "bionic/heap_tagging.cpp",
-        "bionic/malloc_common.cpp",
-        "bionic/malloc_limit.cpp",
-    ],
-    multilib: {
-        lib32: {
-            srcs: libc_common_src_files_32,
-        },
-    },
-    arch: {
-        arm: {
-            srcs: [
-                "arch-arm/bionic/exidx_dynamic.c",
-                "arch-common/bionic/crtbegin_so.c",
-                "arch-arm/bionic/atexit_legacy.c",
-                "arch-common/bionic/crtend_so.S",
-            ],
-            whole_static_libs: ["libc_aeabi"],
-        },
-    },
-
-    cflags: [
-        "-fvisibility=hidden",
-        "-DLIBC_STATIC",
-    ],
-
-    whole_static_libs: [
-        "gwp_asan",
-        "gwp_asan_crash_handler",
-        "libarm-optimized-routines-string",
-        "libasync_safe",
-        "libc_bionic_ndk",
-        "libc_bootstrap",
-        "libc_fortify",
-        "libc_freebsd",
-        "libc_freebsd_large_stack",
-        "libc_gdtoa",
-        "libc_netbsd",
-        "libc_openbsd_large_stack",
-        "libc_openbsd_ndk",
-        "libc_syscalls",
-        "libc_tzcode",
-        "libm",
-        "libstdc++",
-    ],
-}
-
-// ========================================================
-// libc_nopthread.a
-// ========================================================
-cc_library_static {
-    defaults: ["libc_defaults"],
-    srcs: libc_common_src_files,
-    multilib: {
-        lib32: {
-            srcs: libc_common_src_files_32,
-        },
-    },
-    name: "libc_nopthread",
-
-    whole_static_libs: [
-        "libarm-optimized-routines-string",
-        "libasync_safe",
-        "libc_bionic",
-        "libc_bionic_ndk",
-        "libc_bootstrap",
-        "libc_dns",
-        "libc_fortify",
-        "libc_freebsd",
-        "libc_freebsd_large_stack",
-        "libc_gdtoa",
-        "libc_netbsd",
-        "libc_openbsd",
-        "libc_openbsd_large_stack",
-        "libc_openbsd_ndk",
-        "libc_syscalls",
-        "libc_tzcode",
-        "libstdc++",
-    ],
-
-    arch: {
-        arm: {
-            whole_static_libs: ["libc_aeabi"],
-        },
-    },
-}
-
-// ========================================================
-// libc_common.a
+// libc_common.a --- everything shared by libc.a and libc.so
 // ========================================================
 
 cc_library_static {
@@ -1516,46 +1331,39 @@
     name: "libc_common",
 
     whole_static_libs: [
-        "libc_nopthread",
-        "libc_pthread",
+        "libarm-optimized-routines-string",
+        "libasync_safe",
+        "libc_bionic",
+        "libc_bootstrap",
+        "libc_dns",
+        "libc_fortify",
+        "libc_freebsd",
+        "libc_freebsd_large_stack",
+        "libc_freebsd_ldexp",
+        "libc_gdtoa",
+        "libc_netbsd",
+        "libc_openbsd",
+        "libc_openbsd_large_stack",
+        "libc_syscalls",
+        "libc_tzcode",
+        "libstdc++",
     ],
-}
-
-// ========================================================
-// libc_static_dispatch.a
-// ========================================================
-cc_library_static {
-    defaults: ["libc_defaults"],
-    name: "libc_static_dispatch",
 
     arch: {
-        x86_64: {
-            srcs: ["arch-x86_64/static_function_dispatch.S"],
-        },
-        x86: {
-            srcs: ["arch-x86/static_function_dispatch.S"],
-        },
         arm: {
-            srcs: ["arch-arm/static_function_dispatch.S"],
-        },
-        arm64: {
-            srcs: ["arch-arm64/static_function_dispatch.S"],
+            whole_static_libs: ["libc_aeabi"],
         },
     },
 }
 
 // ========================================================
-// libc_dynamic_dispatch.a
+// libc_static_dispatch.a/libc_dynamic_dispatch.a --- string/memory "ifuncs"
+// (Actually ifuncs for libc.so, but a home-grown alternative for libc.a.)
 // ========================================================
-cc_library_static {
-    defaults: ["libc_defaults"],
-    name: "libc_dynamic_dispatch",
 
-    cflags: [
-        "-ffreestanding",
-        "-fno-stack-protector",
-        "-fno-jump-tables",
-    ],
+cc_defaults {
+    name: "libc_dispatch_defaults",
+    defaults: ["libc_defaults"],
     arch: {
         x86_64: {
             srcs: ["arch-x86_64/dynamic_function_dispatch.cpp"],
@@ -1569,7 +1377,34 @@
         arm64: {
             srcs: ["arch-arm64/dynamic_function_dispatch.cpp"],
         },
+        riscv64: {
+            srcs: ["arch-riscv64/dynamic_function_dispatch.cpp"],
+        },
     },
+    // Prevent the compiler from inserting calls to libc/taking the address of
+    // a jump table from within an ifunc (or, in the static case, code that
+    // can be executed arbitrarily early).
+    cflags: [
+        "-ffreestanding",
+        "-fno-stack-protector",
+        "-fno-jump-tables",
+    ],
+}
+
+cc_library_static {
+    name: "libc_static_dispatch",
+    defaults: ["libc_dispatch_defaults"],
+    cflags: [
+        "-DBIONIC_STATIC_DISPATCH",
+    ],
+}
+
+cc_library_static {
+    name: "libc_dynamic_dispatch",
+    defaults: ["libc_dispatch_defaults"],
+    cflags: [
+        "-DBIONIC_DYNAMIC_DISPATCH",
+    ],
 }
 
 // ========================================================
@@ -1638,6 +1473,7 @@
     srcs: [
         "arch-common/bionic/crtbegin_so.c",
         "arch-common/bionic/crtbrand.S",
+        "bionic/android_mallopt.cpp",
         "bionic/gwp_asan_wrappers.cpp",
         "bionic/heap_tagging.cpp",
         "bionic/icu.cpp",
@@ -1656,8 +1492,10 @@
 filegroup {
     name: "libc_sources_static",
     srcs: [
+        "bionic/android_mallopt.cpp",
         "bionic/gwp_asan_wrappers.cpp",
         "bionic/heap_tagging.cpp",
+        "bionic/icu_static.cpp",
         "bionic/malloc_common.cpp",
         "bionic/malloc_limit.cpp",
     ],
@@ -1678,6 +1516,8 @@
     defaults: [
         "libc_defaults",
         "libc_native_allocator_defaults",
+        "bug_24465209_workaround",
+        "keep_symbols",
     ],
     name: "libc_library_defaults",
     product_variables: {
@@ -1686,21 +1526,19 @@
         },
     },
     static: {
-        srcs: [ ":libc_sources_static" ],
+        srcs: [":libc_sources_static"],
         cflags: ["-DLIBC_STATIC"],
         whole_static_libs: [
             "gwp_asan",
-            "gwp_asan_crash_handler",
             "libc_init_static",
             "libc_common_static",
             "libc_unwind_static",
         ],
     },
     shared: {
-        srcs: [ ":libc_sources_shared" ],
+        srcs: [":libc_sources_shared"],
         whole_static_libs: [
             "gwp_asan",
-            "gwp_asan_crash_handler",
             "libc_init_dynamic",
             "libc_common_shared",
             "libunwind-exported",
@@ -1715,14 +1553,6 @@
     // Do not pack libc.so relocations; see http://b/20645321 for details.
     pack_relocations: false,
 
-    // WARNING: The only libraries libc.so should depend on are libdl.so and ld-android.so!
-    // If you add other libraries, make sure to add -Wl,--exclude-libs=libgcc.a to the
-    // LOCAL_LDFLAGS for those libraries.  This ensures that symbols that are pulled into
-    // those new libraries from libgcc.a are not declared external; if that were the case,
-    // then libc would not pull those symbols from libgcc.a as it should, instead relying
-    // on the external symbols from the dependent libraries.  That would create a "cloaked"
-    // dependency on libgcc.a in libc though the libraries, which is not what you wanted!
-
     shared_libs: [
         "ld-android",
         "libdl",
@@ -1735,10 +1565,6 @@
 
     arch: {
         arm: {
-            // TODO: This is to work around b/24465209. Remove after root cause is fixed.
-            pack_relocations: false,
-            ldflags: ["-Wl,--hash-style=both"],
-
             version_script: ":libc.arm.map",
             no_libcrt: true,
 
@@ -1746,69 +1572,37 @@
                 srcs: [":libc_sources_shared_arm"],
                 // special for arm
                 cflags: ["-DCRT_LEGACY_WORKAROUND"],
-                // For backwards-compatibility, some arm32 builtins are exported from libc.so.
+                // For backwards compatibility, some arm32 builtins are exported from libc.so.
                 static_libs: ["libclang_rt.builtins-exported"],
             },
 
-            // Arm 32 bit does not produce complete exidx unwind information
-            // so keep the .debug_frame which is relatively small and does
-            // include needed unwind information.
-            // See b/132992102 for details.
-            strip: {
-                keep_symbols_and_debug_frame: true,
-            },
+            ldflags: [
+                // Since we preserve the debug_frame for libc, do not compress
+                // in this case to make unwinds as fast as possible.
+                "-Wl,--compress-debug-sections=none",
+            ],
         },
         arm64: {
             version_script: ":libc.arm64.map",
-
-            // Leave the symbols in the shared library so that stack unwinders can produce
-            // meaningful name resolution.
-            strip: {
-                keep_symbols: true,
-            },
         },
         riscv64: {
             version_script: ":libc.riscv64.map",
-
-            // Leave the symbols in the shared library so that stack unwinders can produce
-            // meaningful name resolution.
-            strip: {
-                keep_symbols: true,
-            },
         },
         x86: {
-            // TODO: This is to work around b/24465209. Remove after root cause is fixed.
-            pack_relocations: false,
-            ldflags: ["-Wl,--hash-style=both"],
-
             version_script: ":libc.x86.map",
             no_libcrt: true,
 
             shared: {
-                // For backwards-compatibility, some x86 builtins are exported from libc.so.
+                // For backwards compatibility, some x86 builtins are exported from libc.so.
                 static_libs: ["libclang_rt.builtins-exported"],
             },
-
-            // Leave the symbols in the shared library so that stack unwinders can produce
-            // meaningful name resolution.
-            strip: {
-                keep_symbols: true,
-            },
         },
         x86_64: {
             version_script: ":libc.x86_64.map",
-
-            // Leave the symbols in the shared library so that stack unwinders can produce
-            // meaningful name resolution.
-            strip: {
-                keep_symbols: true,
-            },
         },
     },
 
-
     apex_available: [
-        "//apex_available:platform",
         "com.android.runtime",
     ],
 
@@ -1823,7 +1617,7 @@
 
 cc_library {
     name: "libc",
-      defaults: [
+    defaults: [
         "libc_library_defaults",
     ],
     stubs: {
@@ -1838,14 +1632,13 @@
     llndk: {
         symbol_file: "libc.map.txt",
         export_headers_as_system: true,
-        export_preprocessed_headers: ["include"],
-        export_llndk_headers: ["libc_llndk_headers"],
+        export_llndk_headers: ["libc_headers"],
     },
 }
 
 cc_library {
     name: "libc_hwasan",
-      defaults: [
+    defaults: [
         "libc_library_defaults",
     ],
     sanitize: {
@@ -1866,8 +1659,14 @@
     },
     native_bridge_supported: false,
     // It is never correct to depend on this directly. This is only
-    // needed for the runtime apex, and in base_system.mk.
-    visibility: ["//bionic/apex"],
+    // needed for the runtime apex, and in base_system.mk, and system_image_defaults
+    // which is default module for soong-defined system image.
+    visibility: [
+        "//bionic/apex",
+        "//build/make/target/product/generic",
+        //TODO(b/381985636) : Remove visibility to Soong-defined GSI once resolved
+        "//build/make/target/product/gsi",
+    ],
 }
 
 genrule {
@@ -1950,9 +1749,10 @@
 }
 
 cc_library_headers {
-    name: "libc_llndk_headers",
+    name: "libc_uapi_headers",
     visibility: [
         "//external/musl",
+        "//external/rust/crates/v4l2r/android",
     ],
     llndk: {
         llndk_headers: true,
@@ -2032,6 +1832,7 @@
         "//external/gwp_asan",
         "//external/jemalloc_new",
         "//external/libunwind_llvm",
+        "//external/llvm-libc",
         "//external/scudo",
         "//system/core/property_service/libpropertyinfoparser",
         "//system/extras/toolchain-extras",
@@ -2044,13 +1845,13 @@
     target: {
         android: {
             export_system_include_dirs: ["include"],
-            header_libs: ["libc_llndk_headers"],
-            export_header_lib_headers: ["libc_llndk_headers"],
+            header_libs: ["libc_uapi_headers"],
+            export_header_lib_headers: ["libc_uapi_headers"],
         },
         linux_bionic: {
             export_system_include_dirs: ["include"],
-            header_libs: ["libc_llndk_headers"],
-            export_header_lib_headers: ["libc_llndk_headers"],
+            header_libs: ["libc_uapi_headers"],
+            export_header_lib_headers: ["libc_uapi_headers"],
         },
     },
 }
@@ -2060,7 +1861,10 @@
 // ========================================================
 
 cc_library {
-    defaults: ["libc_defaults"],
+    defaults: [
+        "libc_defaults",
+        "bug_24465209_workaround",
+    ],
     include_dirs: ["bionic/libstdc++/include"],
     srcs: [
         "bionic/__cxa_guard.cpp",
@@ -2070,6 +1874,9 @@
     name: "libstdc++",
     static_ndk_lib: true,
     static_libs: ["libasync_safe"],
+    apex_available: [
+        "//apex_available:platform",
+    ],
 
     static: {
         system_shared_libs: [],
@@ -2082,12 +1889,8 @@
         },
     },
 
-    //TODO (dimitry): This is to work around b/24465209. Remove after root cause is fixed
     arch: {
         arm: {
-            // TODO: This is to work around b/24465209. Remove after root cause is fixed.
-            pack_relocations: false,
-            ldflags: ["-Wl,--hash-style=both"],
             version_script: ":libstdc++.arm.map",
         },
         arm64: {
@@ -2097,8 +1900,6 @@
             version_script: ":libstdc++.riscv64.map",
         },
         x86: {
-            pack_relocations: false,
-            ldflags: ["-Wl,--hash-style=both"],
             version_script: ":libstdc++.x86.map",
         },
         x86_64: {
@@ -2187,25 +1988,15 @@
 cc_defaults {
     name: "crt_so_defaults",
     defaults: ["crt_defaults"],
-
-    arch: {
-        x86: {
-            cflags: ["-fPIC"],
-        },
-        x86_64: {
-            cflags: ["-fPIC"],
-        },
-    },
     stl: "none",
 }
 
 cc_object {
     name: "crtbrand",
-    // crtbrand.c needs <stdint.h> and a #define for the platform SDK version.
     local_include_dirs: [
-        "include",
         "private", // crtbrand.S depends on private/bionic_asm_note.h
     ],
+    // crtbrand.S needs to know the platform SDK version.
     product_variables: {
         platform_sdk_version: {
             asflags: ["-DPLATFORM_SDK_VERSION=%d"],
@@ -2232,8 +2023,7 @@
 cc_object {
     name: "crtend_so",
     local_include_dirs: [
-        "include",
-        "private",  // crtend_so.S depends on private/bionic_asm_arm64.h
+        "private", // crtend_so.S depends on private/bionic_asm_arm64.h
     ],
     srcs: ["arch-common/bionic/crtend_so.S"],
 
@@ -2248,6 +2038,8 @@
         "bionic", // crtbegin.c includes bionic/libc_init_common.h
     ],
 
+    cflags: ["-DCRTBEGIN_STATIC"],
+
     srcs: ["arch-common/bionic/crtbegin.c"],
     objs: [
         "crtbrand",
@@ -2284,20 +2076,29 @@
     // name clash between gcc and bionic.
     name: "crtend_android",
     local_include_dirs: [
-        "include",
-        "private",  // crtend.S depends on private/bionic_asm_arm64.h
+        "private", // crtend.S depends on private/bionic_asm_arm64.h
     ],
     srcs: ["arch-common/bionic/crtend.S"],
 
     defaults: ["crt_defaults"],
 }
 
+cc_object {
+    name: "crt_pad_segment",
+    local_include_dirs: [
+        "private", // crt_pad_segment.S depends on private/bionic_asm_note.h
+    ],
+    srcs: ["arch-common/bionic/crt_pad_segment.S"],
+
+    defaults: ["crt_defaults"],
+}
+
 cc_library_static {
     name: "note_memtag_heap_async",
     arch: {
-      arm64: {
-        srcs: ["arch-arm64/bionic/note_memtag_heap_async.S"],
-      }
+        arm64: {
+            srcs: ["arch-arm64/bionic/note_memtag_heap_async.S"],
+        },
     },
     sdk_version: "minimum",
 
@@ -2307,9 +2108,9 @@
 cc_library_static {
     name: "note_memtag_heap_sync",
     arch: {
-      arm64: {
-        srcs: ["arch-arm64/bionic/note_memtag_heap_sync.S"],
-      }
+        arm64: {
+            srcs: ["arch-arm64/bionic/note_memtag_heap_sync.S"],
+        },
     },
     sdk_version: "minimum",
 
@@ -2326,6 +2127,7 @@
 //     async_safe_fatal_va_list
 cc_library_static {
     name: "librust_baremetal",
+    defaults: ["cc_baremetal_defaults"],
     header_libs: ["libc_headers"],
     include_dirs: [
         "bionic/libc/async_safe/include",
@@ -2347,11 +2149,12 @@
         },
         riscv64: {
             srcs: [
-               "arch-riscv64/string/__memcpy_chk.S",
+                "arch-riscv64/string/__memcpy_chk.S",
             ],
         },
     },
     whole_static_libs: [
+        "//external/llvm-libc:llvmlibc",
         "libarm-optimized-routines-mem",
         "libc_netbsd",
     ],
@@ -2359,19 +2162,31 @@
     nocrt: true,
     stl: "none",
     visibility: [
-        "//packages/modules/Virtualization/vmbase",
+        "//packages/modules/Virtualization/libs/libvmbase",
     ],
+
+    // b/358211032: This library gets linked into a rust rlib.  Disable LTO
+    // until cross-language lto is supported.
+    lto: {
+        never: true,
+    },
 }
 
 // ========================================================
 // NDK headers.
 // ========================================================
 
-versioned_ndk_headers {
+ndk_headers {
     name: "common_libc",
     from: "include",
     to: "",
+    srcs: ["include/**/*.h"],
     license: "NOTICE",
+    // These don't pass the bad verification we do because many of them are
+    // arch-specific, and they aren't necessarily independently includable.
+    // That's not much of a problem though, since C-incompaitibilities in the
+    // UAPI headers should run into problems long before they reach us.
+    skip_verification: true,
 }
 
 ndk_headers {
@@ -2391,6 +2206,7 @@
         "kernel/uapi/xen/**/*.h",
     ],
     license: "NOTICE",
+    skip_verification: true,
 }
 
 ndk_headers {
@@ -2407,6 +2223,7 @@
     to: "scsi",
     srcs: ["kernel/android/scsi/**/*.h"],
     license: "NOTICE",
+    skip_verification: true,
 }
 
 ndk_headers {
@@ -2415,6 +2232,7 @@
     to: "arm-linux-androideabi",
     srcs: ["kernel/uapi/asm-arm/**/*.h"],
     license: "NOTICE",
+    skip_verification: true,
 }
 
 ndk_headers {
@@ -2423,6 +2241,7 @@
     to: "aarch64-linux-android",
     srcs: ["kernel/uapi/asm-arm64/**/*.h"],
     license: "NOTICE",
+    skip_verification: true,
 }
 
 ndk_headers {
@@ -2431,6 +2250,7 @@
     to: "riscv64-linux-android",
     srcs: ["kernel/uapi/asm-riscv/**/*.h"],
     license: "NOTICE",
+    skip_verification: true,
 }
 
 ndk_headers {
@@ -2439,6 +2259,7 @@
     to: "i686-linux-android",
     srcs: ["kernel/uapi/asm-x86/**/*.h"],
     license: "NOTICE",
+    skip_verification: true,
 }
 
 ndk_headers {
@@ -2447,25 +2268,13 @@
     to: "x86_64-linux-android",
     srcs: ["kernel/uapi/asm-x86/**/*.h"],
     license: "NOTICE",
+    skip_verification: true,
 }
 
 ndk_library {
     name: "libc",
     symbol_file: "libc.map.txt",
     first_version: "9",
-    // APIs implemented in asm don't have debug info: http://b/190554910.
-    allow_untyped_symbols: true,
-    export_header_libs: [
-        "common_libc",
-        "libc_uapi",
-        "libc_kernel_android_uapi_linux",
-        "libc_kernel_android_scsi",
-        "libc_asm_arm",
-        "libc_asm_arm64",
-        "libc_asm_riscv64",
-        "libc_asm_x86",
-        "libc_asm_x86_64",
-    ],
 }
 
 ndk_library {
@@ -2553,13 +2362,12 @@
     srcs: ["kernel/uapi/**/*.h"],
 }
 
-
 cc_genrule {
     name: "func_to_syscall_nrs",
     recovery_available: true,
     cmd: "$(location genfunctosyscallnrs) --out-dir=$(genDir) $(in)",
 
-    tools: [ "genfunctosyscallnrs" ],
+    tools: ["genfunctosyscallnrs"],
 
     srcs: [
         "SYSCALLS.TXT",
@@ -2647,7 +2455,7 @@
     name: "libseccomp_policy_app_zygote_sources_x86",
     recovery_available: true,
     cmd: "$(location genseccomp) --out-dir=$(genDir) --name-modifier=app_zygote $(in)",
-    tools: [ "genseccomp" ],
+    tools: ["genseccomp"],
     srcs: [
         ":seccomp_syscalls_sources_zygote",
         ":libseccomp_gen_syscall_nrs_x86",
@@ -2659,8 +2467,12 @@
     ],
     enabled: false,
     arch: {
-        x86: { enabled: true },
-        x86_64: { enabled: true },
+        x86: {
+            enabled: true,
+        },
+        x86_64: {
+            enabled: true,
+        },
     },
 }
 
@@ -2668,7 +2480,7 @@
     name: "libseccomp_policy_app_zygote_sources_arm",
     recovery_available: true,
     cmd: "$(location genseccomp) --out-dir=$(genDir) --name-modifier=app_zygote $(in)",
-    tools: [ "genseccomp" ],
+    tools: ["genseccomp"],
     srcs: [
         ":seccomp_syscalls_sources_zygote",
         ":libseccomp_gen_syscall_nrs_arm",
@@ -2680,8 +2492,12 @@
     ],
     enabled: false,
     arch: {
-        arm: { enabled: true },
-        arm64: { enabled: true },
+        arm: {
+            enabled: true,
+        },
+        arm64: {
+            enabled: true,
+        },
     },
 }
 
@@ -2689,7 +2505,7 @@
     name: "libseccomp_policy_app_zygote_sources_riscv64",
     recovery_available: true,
     cmd: "$(location genseccomp) --out-dir=$(genDir) --name-modifier=app_zygote $(in)",
-    tools: [ "genseccomp" ],
+    tools: ["genseccomp"],
     srcs: [
         ":seccomp_syscalls_sources_zygote",
         ":libseccomp_gen_syscall_nrs_riscv64",
@@ -2699,7 +2515,9 @@
     ],
     enabled: false,
     arch: {
-        riscv64: { enabled: true },
+        riscv64: {
+            enabled: true,
+        },
     },
 }
 
@@ -2707,7 +2525,7 @@
     name: "libseccomp_policy_app_sources_x86",
     recovery_available: true,
     cmd: "$(location genseccomp) --out-dir=$(genDir) --name-modifier=app $(in)",
-    tools: [ "genseccomp" ],
+    tools: ["genseccomp"],
     srcs: [
         ":seccomp_syscalls_sources_app",
         ":libseccomp_gen_syscall_nrs_x86",
@@ -2719,8 +2537,12 @@
     ],
     enabled: false,
     arch: {
-        x86: { enabled: true },
-        x86_64: { enabled: true },
+        x86: {
+            enabled: true,
+        },
+        x86_64: {
+            enabled: true,
+        },
     },
 }
 
@@ -2728,7 +2550,7 @@
     name: "libseccomp_policy_app_sources_arm",
     recovery_available: true,
     cmd: "$(location genseccomp) --out-dir=$(genDir) --name-modifier=app $(in)",
-    tools: [ "genseccomp" ],
+    tools: ["genseccomp"],
     srcs: [
         ":seccomp_syscalls_sources_app",
         ":libseccomp_gen_syscall_nrs_arm",
@@ -2740,8 +2562,12 @@
     ],
     enabled: false,
     arch: {
-        arm: { enabled: true },
-        arm64: { enabled: true },
+        arm: {
+            enabled: true,
+        },
+        arm64: {
+            enabled: true,
+        },
     },
 }
 
@@ -2749,7 +2575,7 @@
     name: "libseccomp_policy_app_sources_riscv64",
     recovery_available: true,
     cmd: "$(location genseccomp) --out-dir=$(genDir) --name-modifier=app $(in)",
-    tools: [ "genseccomp" ],
+    tools: ["genseccomp"],
     srcs: [
         ":seccomp_syscalls_sources_app",
         ":libseccomp_gen_syscall_nrs_riscv64",
@@ -2759,7 +2585,9 @@
     ],
     enabled: false,
     arch: {
-        riscv64: { enabled: true },
+        riscv64: {
+            enabled: true,
+        },
     },
 }
 
@@ -2767,7 +2595,7 @@
     name: "libseccomp_policy_system_sources_x86",
     recovery_available: true,
     cmd: "$(location genseccomp) --out-dir=$(genDir) --name-modifier=system $(in)",
-    tools: [ "genseccomp" ],
+    tools: ["genseccomp"],
     srcs: [
         ":seccomp_syscalls_sources_system",
         ":libseccomp_gen_syscall_nrs_x86",
@@ -2779,8 +2607,12 @@
     ],
     enabled: false,
     arch: {
-        x86: { enabled: true },
-        x86_64: { enabled: true },
+        x86: {
+            enabled: true,
+        },
+        x86_64: {
+            enabled: true,
+        },
     },
 }
 
@@ -2788,7 +2620,7 @@
     name: "libseccomp_policy_system_sources_arm",
     recovery_available: true,
     cmd: "$(location genseccomp) --out-dir=$(genDir) --name-modifier=system $(in)",
-    tools: [ "genseccomp" ],
+    tools: ["genseccomp"],
     srcs: [
         ":seccomp_syscalls_sources_system",
         ":libseccomp_gen_syscall_nrs_arm",
@@ -2800,8 +2632,12 @@
     ],
     enabled: false,
     arch: {
-        arm: { enabled: true },
-        arm64: { enabled: true },
+        arm: {
+            enabled: true,
+        },
+        arm64: {
+            enabled: true,
+        },
     },
 }
 
@@ -2809,7 +2645,7 @@
     name: "libseccomp_policy_system_sources_riscv64",
     recovery_available: true,
     cmd: "$(location genseccomp) --out-dir=$(genDir) --name-modifier=system $(in)",
-    tools: [ "genseccomp" ],
+    tools: ["genseccomp"],
     srcs: [
         ":seccomp_syscalls_sources_system",
         ":libseccomp_gen_syscall_nrs_riscv64",
@@ -2819,7 +2655,9 @@
     ],
     enabled: false,
     arch: {
-        riscv64: { enabled: true },
+        riscv64: {
+            enabled: true,
+        },
     },
 }
 
@@ -2831,37 +2669,37 @@
     arch: {
         arm: {
             generated_sources: [
-               "libseccomp_policy_app_sources_arm",
-               "libseccomp_policy_app_zygote_sources_arm",
-               "libseccomp_policy_system_sources_arm",
+                "libseccomp_policy_app_sources_arm",
+                "libseccomp_policy_app_zygote_sources_arm",
+                "libseccomp_policy_system_sources_arm",
             ],
         },
         arm64: {
             generated_sources: [
-               "libseccomp_policy_app_sources_arm",
-               "libseccomp_policy_app_zygote_sources_arm",
-               "libseccomp_policy_system_sources_arm",
+                "libseccomp_policy_app_sources_arm",
+                "libseccomp_policy_app_zygote_sources_arm",
+                "libseccomp_policy_system_sources_arm",
             ],
         },
         riscv64: {
             generated_sources: [
-               "libseccomp_policy_app_sources_riscv64",
-               "libseccomp_policy_app_zygote_sources_riscv64",
-               "libseccomp_policy_system_sources_riscv64",
+                "libseccomp_policy_app_sources_riscv64",
+                "libseccomp_policy_app_zygote_sources_riscv64",
+                "libseccomp_policy_system_sources_riscv64",
             ],
         },
         x86: {
             generated_sources: [
-               "libseccomp_policy_app_sources_x86",
-               "libseccomp_policy_app_zygote_sources_x86",
-               "libseccomp_policy_system_sources_x86",
+                "libseccomp_policy_app_sources_x86",
+                "libseccomp_policy_app_zygote_sources_x86",
+                "libseccomp_policy_system_sources_x86",
             ],
         },
         x86_64: {
             generated_sources: [
-               "libseccomp_policy_app_sources_x86",
-               "libseccomp_policy_app_zygote_sources_x86",
-               "libseccomp_policy_system_sources_x86",
+                "libseccomp_policy_app_sources_x86",
+                "libseccomp_policy_app_zygote_sources_x86",
+                "libseccomp_policy_system_sources_x86",
             ],
         },
     },
@@ -2885,7 +2723,6 @@
 
 cc_library_host_static {
     name: "libfts",
-    tidy_disabled_srcs: ["upstream-*/**/*.c"],
     srcs: [
         "bionic/fts.c",
         "upstream-openbsd/lib/libc/stdlib/recallocarray.c",
@@ -2928,7 +2765,6 @@
 cc_library_host_static {
     name: "libb64",
     visibility: ["//external/musl"],
-    tidy_disabled_srcs: ["upstream-*/**/*.c"],
     srcs: ["upstream-openbsd/lib/libc/net/base64.c"],
     export_include_dirs: ["b64/include"],
     local_include_dirs: [
@@ -3087,3 +2923,8 @@
         },
     },
 }
+
+filegroup {
+    name: "linux_capability_header",
+    srcs: ["kernel/uapi/linux/capability.h"],
+}
diff --git a/libc/BUILD b/libc/BUILD
deleted file mode 100644
index 1777ae9..0000000
--- a/libc/BUILD
+++ /dev/null
@@ -1,42 +0,0 @@
-# Copyright (C) 2022 The Android Open Source Project
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions
-# are met:
-#  * Redistributions of source code must retain the above copyright
-#    notice, this list of conditions and the following disclaimer.
-#  * Redistributions in binary form must reproduce the above copyright
-#    notice, this list of conditions and the following disclaimer in
-#    the documentation and/or other materials provided with the
-#    distribution.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
-# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
-# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
-# OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
-# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
-# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-# SUCH DAMAGE.
-
-load("//build/bazel/rules/apis:cc_api_contribution.bzl", "cc_api_contribution")
-
-cc_api_contribution(
-    name = "libc_contributions",
-    hdrs = [
-        "//bionic/libc/kernel/android:libc_kernel_android_scsi_headers",
-        "//bionic/libc/kernel/android:libc_kernel_android_uapi_headers",
-        "//bionic/libc/kernel/uapi:libc_kernel_uapi_asm_arm64_headers",  #arm64
-        "//bionic/libc/kernel/uapi:libc_kernel_uapi_asm_arm_headers",  #arm
-        "//bionic/libc/kernel/uapi:libc_kernel_uapi_asm_x86_64_headers",  #x86_64
-        "//bionic/libc/kernel/uapi:libc_kernel_uapi_asm_x86_headers",  #x86
-        "//bionic/libc/kernel/uapi:libc_kernel_uapi_headers",
-    ],
-    api = ":libc.map.txt",
-    library_name = "libc",
-)
diff --git a/libc/NOTICE b/libc/NOTICE
index 4d3a108..bca4891 100644
--- a/libc/NOTICE
+++ b/libc/NOTICE
@@ -63,38 +63,6 @@
 
 -------------------------------------------------------------------
 
-Based on the UCB version with the ID appearing below.
-This is ANSIish only when "multibyte character == plain character".
-
-Copyright (c) 1989, 1993
-   The Regents of the University of California.  All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions
-are met:
-1. Redistributions of source code must retain the above copyright
-   notice, this list of conditions and the following disclaimer.
-2. Redistributions in binary form must reproduce the above copyright
-   notice, this list of conditions and the following disclaimer in the
-   documentation and/or other materials provided with the distribution.
-3. Neither the name of the University nor the names of its contributors
-   may be used to endorse or promote products derived from this software
-   without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
-FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-SUCH DAMAGE.
-
--------------------------------------------------------------------
-
 Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project.
 All rights reserved.
 
@@ -922,6 +890,34 @@
 
 -------------------------------------------------------------------
 
+Copyright (C) 2024 The Android Open Source Project
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+ * Redistributions of source code must retain the above copyright
+   notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright
+   notice, this list of conditions and the following disclaimer in
+   the documentation and/or other materials provided with the
+   distribution.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGE.
+
+-------------------------------------------------------------------
+
 Copyright (c) 1980, 1983, 1988, 1993
    The Regents of the University of California.  All rights reserved.
 
@@ -974,6 +970,35 @@
 
 -------------------------------------------------------------------
 
+Copyright (c) 1982, 1986, 1988, 1993
+   The Regents of the University of California.  All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+1. Redistributions of source code must retain the above copyright
+   notice, this list of conditions and the following disclaimer.
+2. Redistributions in binary form must reproduce the above copyright
+   notice, this list of conditions and the following disclaimer in the
+   documentation and/or other materials provided with the distribution.
+3. Neither the name of the University nor the names of its contributors
+   may be used to endorse or promote products derived from this software
+   without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGE.
+
+-------------------------------------------------------------------
+
 Copyright (c) 1982, 1986, 1993
    The Regents of the University of California.  All rights reserved.
 
@@ -2080,38 +2105,6 @@
 
 Copyright (c) 1990, 1993
    The Regents of the University of California.  All rights reserved.
-
-This code is derived from software contributed to Berkeley by
-Mike Hibler and Chris Torek.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions
-are met:
-1. Redistributions of source code must retain the above copyright
-   notice, this list of conditions and the following disclaimer.
-2. Redistributions in binary form must reproduce the above copyright
-   notice, this list of conditions and the following disclaimer in the
-   documentation and/or other materials provided with the distribution.
-3. Neither the name of the University nor the names of its contributors
-   may be used to endorse or promote products derived from this software
-   without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
-FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-SUCH DAMAGE.
-
--------------------------------------------------------------------
-
-Copyright (c) 1990, 1993
-   The Regents of the University of California.  All rights reserved.
 (c) UNIX System Laboratories, Inc.
 All or some portions of this file are derived from material licensed
 to the University of California by American Telephone and Telegraph
@@ -2467,77 +2460,6 @@
 
 -------------------------------------------------------------------
 
-Copyright (c) 1992, 1993, 1994 Henry Spencer.
-Copyright (c) 1992, 1993, 1994
-   The Regents of the University of California.  All rights reserved.
-
-Copyright (c) 2011 The FreeBSD Foundation
-All rights reserved.
-Portions of this software were developed by David Chisnall
-under sponsorship from the FreeBSD Foundation.
-
-This code is derived from software contributed to Berkeley by
-Henry Spencer.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions
-are met:
-1. Redistributions of source code must retain the above copyright
-   notice, this list of conditions and the following disclaimer.
-2. Redistributions in binary form must reproduce the above copyright
-   notice, this list of conditions and the following disclaimer in the
-   documentation and/or other materials provided with the distribution.
-3. Neither the name of the University nor the names of its contributors
-   may be used to endorse or promote products derived from this software
-   without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
-FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-SUCH DAMAGE.
-
--------------------------------------------------------------------
-
-Copyright (c) 1992, 1993, 1994 Henry Spencer.
-Copyright (c) 1992, 1993, 1994
-   The Regents of the University of California.  All rights reserved.
-
-This code is derived from software contributed to Berkeley by
-Henry Spencer.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions
-are met:
-1. Redistributions of source code must retain the above copyright
-   notice, this list of conditions and the following disclaimer.
-2. Redistributions in binary form must reproduce the above copyright
-   notice, this list of conditions and the following disclaimer in the
-   documentation and/or other materials provided with the distribution.
-3. Neither the name of the University nor the names of its contributors
-   may be used to endorse or promote products derived from this software
-   without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
-FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-SUCH DAMAGE.
-
--------------------------------------------------------------------
-
 Copyright (c) 1993
    The Regents of the University of California.  All rights reserved.
 
@@ -2946,40 +2868,6 @@
 
 -------------------------------------------------------------------
 
-Copyright (c) 1998 Softweyr LLC.  All rights reserved.
-
-strtok_r, from Berkeley strtok
-Oct 13, 1998 by Wes Peters <wes@softweyr.com>
-
-Copyright (c) 1988, 1993
-   The Regents of the University of California.  All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions
-are met:
-1. Redistributions of source code must retain the above copyright
-   notices, this list of conditions and the following disclaimer.
-2. Redistributions in binary form must reproduce the above copyright
-   notices, this list of conditions and the following disclaimer in the
-   documentation and/or other materials provided with the distribution.
-3. Neither the name of the University nor the names of its contributors
-   may be used to endorse or promote products derived from this software
-   without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY SOFTWEYR LLC, THE REGENTS AND CONTRIBUTORS
-``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
-PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL SOFTWEYR LLC, THE
-REGENTS, OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
-TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
-PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
-LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
--------------------------------------------------------------------
-
 Copyright (c) 1998 The NetBSD Foundation, Inc.
 All rights reserved.
 
@@ -3016,33 +2904,6 @@
 
 -------------------------------------------------------------------
 
-Copyright (c) 1998 Todd C. Miller <Todd.Miller@courtesan.com>
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions
-are met:
-1. Redistributions of source code must retain the above copyright
-   notice, this list of conditions and the following disclaimer.
-2. Redistributions in binary form must reproduce the above copyright
-   notice, this list of conditions and the following disclaimer in the
-   documentation and/or other materials provided with the distribution.
-3. The name of the author may not be used to endorse or promote products
-   derived from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
-INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
-AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL
-THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
-EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
-OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
-OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
-ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
--------------------------------------------------------------------
-
 Copyright (c) 1998, 2015 Todd C. Miller <millert@openbsd.org>
 
 Permission to use, copy, modify, and distribute this software for any
@@ -3059,37 +2920,6 @@
 
 -------------------------------------------------------------------
 
-Copyright (c) 1999
-   David E. O'Brien
-Copyright (c) 1988, 1993
-   The Regents of the University of California.  All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions
-are met:
-1. Redistributions of source code must retain the above copyright
-   notice, this list of conditions and the following disclaimer.
-2. Redistributions in binary form must reproduce the above copyright
-   notice, this list of conditions and the following disclaimer in the
-   documentation and/or other materials provided with the distribution.
-3. Neither the name of the University nor the names of its contributors
-   may be used to endorse or promote products derived from this software
-   without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
-FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-SUCH DAMAGE.
-
--------------------------------------------------------------------
-
 Copyright (c) 2000 Ben Harris.
 Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project.
 All rights reserved.
@@ -3239,32 +3069,6 @@
 
 -------------------------------------------------------------------
 
-Copyright (c) 2002 Tim J. Robbins
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions
-are met:
-1. Redistributions of source code must retain the above copyright
-   notice, this list of conditions and the following disclaimer.
-2. Redistributions in binary form must reproduce the above copyright
-   notice, this list of conditions and the following disclaimer in the
-   documentation and/or other materials provided with the distribution.
-
-THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
-FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-SUCH DAMAGE.
-
--------------------------------------------------------------------
-
 Copyright (c) 2002 Tim J. Robbins.
 All rights reserved.
 
@@ -3718,32 +3522,6 @@
 
 -------------------------------------------------------------------
 
-Copyright (c) 2005 Tim J. Robbins.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions
-are met:
-1. Redistributions of source code must retain the above copyright
-   notice, this list of conditions and the following disclaimer.
-2. Redistributions in binary form must reproduce the above copyright
-   notice, this list of conditions and the following disclaimer in the
-   documentation and/or other materials provided with the distribution.
-
-THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
-FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-SUCH DAMAGE.
-
--------------------------------------------------------------------
-
 Copyright (c) 2005 by Internet Systems Consortium, Inc. ("ISC")
 Copyright (c) 1995-1999 by Internet Software Consortium
 
@@ -3807,22 +3585,6 @@
 
 -------------------------------------------------------------------
 
-Copyright (c) 2007 Todd C. Miller <millert@openbsd.org>
-
-Permission to use, copy, modify, and distribute this software for any
-purpose with or without fee is hereby granted, provided that the above
-copyright notice and this permission notice appear in all copies.
-
-THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
-WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
-ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
-ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
-OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
--------------------------------------------------------------------
-
 Copyright (c) 2007-2008  Michael G Schwern
 
 This software originally derived from Paul Sheer's pivotal_gmtime_r.c.
@@ -3849,35 +3611,6 @@
 
 -------------------------------------------------------------------
 
-Copyright (c) 2007-2008  Michael G Schwern
-
-This software originally derived from Paul Sheer's pivotal_gmtime_r.c.
-
-The MIT License:
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
-
-Origin: http://code.google.com/p/y2038
-Modified for Bionic by the Android Open Source Project
-
--------------------------------------------------------------------
-
 Copyright (c) 2008, 2016 Todd C. Miller <millert@openbsd.org>
 
 Permission to use, copy, modify, and distribute this software for any
@@ -3957,32 +3690,6 @@
 
 -------------------------------------------------------------------
 
-Copyright (c) 2009 David Schultz <das@FreeBSD.org>
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions
-are met:
-1. Redistributions of source code must retain the above copyright
-   notice, this list of conditions and the following disclaimer.
-2. Redistributions in binary form must reproduce the above copyright
-   notice, this list of conditions and the following disclaimer in the
-   documentation and/or other materials provided with the distribution.
-
-THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
-FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-SUCH DAMAGE.
-
--------------------------------------------------------------------
-
 Copyright (c) 2009 The NetBSD Foundation, Inc.
 
 This code is derived from software contributed to The NetBSD Foundation
@@ -4112,32 +3819,6 @@
 
 -------------------------------------------------------------------
 
-Copyright (c) 2011 David Chisnall
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions
-are met:
-1. Redistributions of source code must retain the above copyright
-   notice, this list of conditions and the following disclaimer.
-2. Redistributions in binary form must reproduce the above copyright
-   notice, this list of conditions and the following disclaimer in the
-   documentation and/or other materials provided with the distribution.
-
-THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
-FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-SUCH DAMAGE.
-
--------------------------------------------------------------------
-
 Copyright (c) 2011 Ed Schouten <ed@FreeBSD.org>
                    David Chisnall <theraven@FreeBSD.org>
 All rights reserved.
@@ -4165,36 +3846,6 @@
 
 -------------------------------------------------------------------
 
-Copyright (c) 2011 Intel Corporation
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
-    * Redistributions of source code must retain the above copyright notice,
-    * this list of conditions and the following disclaimer.
-
-    * Redistributions in binary form must reproduce the above copyright notice,
-    * this list of conditions and the following disclaimer in the documentation
-    * and/or other materials provided with the distribution.
-
-    * Neither the name of Intel Corporation nor the names of its contributors
-    * may be used to endorse or promote products derived from this software
-    * without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
-ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
--------------------------------------------------------------------
-
 Copyright (c) 2011 Martin Pieuchot <mpi@openbsd.org>
 
 Permission to use, copy, modify, and distribute this software for any
@@ -4240,36 +3891,6 @@
 
 -------------------------------------------------------------------
 
-Copyright (c) 2011, 2012, 2013 Intel Corporation
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
-    * Redistributions of source code must retain the above copyright notice,
-    * this list of conditions and the following disclaimer.
-
-    * Redistributions in binary form must reproduce the above copyright notice,
-    * this list of conditions and the following disclaimer in the documentation
-    * and/or other materials provided with the distribution.
-
-    * Neither the name of Intel Corporation nor the names of its contributors
-    * may be used to endorse or promote products derived from this software
-    * without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
-ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
--------------------------------------------------------------------
-
 Copyright (c) 2011, Intel Corporation
 All rights reserved.
 
@@ -4327,6 +3948,33 @@
 
 -------------------------------------------------------------------
 
+Copyright (c) 2012, Linaro Limited
+   All rights reserved.
+   Copyright (c) 2024 Qualcomm Innovation Center, Inc. All rights reserved.
+   Redistribution and use in source and binary forms, with or without
+   modification, are permitted provided that the following conditions are met:
+       * Redistributions of source code must retain the above copyright
+         notice, this list of conditions and the following disclaimer.
+       * Redistributions in binary form must reproduce the above copyright
+         notice, this list of conditions and the following disclaimer in the
+         documentation and/or other materials provided with the distribution.
+       * Neither the name of the Linaro nor the
+         names of its contributors may be used to endorse or promote products
+         derived from this software without specific prior written permission.
+   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+   "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+   A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+   HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+   SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+   LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+   DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+   THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+   (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+   OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+-------------------------------------------------------------------
+
 Copyright (c) 2012-2014 ARM Ltd
 All rights reserved.
 
@@ -4512,9 +4160,7 @@
 
 -------------------------------------------------------------------
 
-Copyright (c) 2017, 2018 Dell EMC
-Copyright (c) 2000, 2001, 2008, 2011, David E. O'Brien
-Copyright (c) 1998 John D. Polstra.
+Copyright (c) 2023 SiFive, Inc.
 All rights reserved.
 
 Redistribution and use in source and binary forms, with or without
@@ -4525,18 +4171,20 @@
 2. Redistributions in binary form must reproduce the above copyright
    notice, this list of conditions and the following disclaimer in the
    documentation and/or other materials provided with the distribution.
+3. The name of the company may not be used to endorse or promote
+   products derived from this software without specific prior written
+   permission.
 
-THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
-FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-SUCH DAMAGE.
+THIS SOFTWARE IS PROVIDED BY SIFIVE INC ``AS IS'' AND ANY EXPRESS OR IMPLIED
+WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL SIFIVE INC BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
+TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
 -------------------------------------------------------------------
 
@@ -4769,6 +4417,539 @@
 
 -------------------------------------------------------------------
 
+SPDX-License-Identifier: BSD-2-Clause
+
+Copyright (c) 2002 Tim J. Robbins
+All rights reserved.
+
+Copyright (c) 2011 The FreeBSD Foundation
+
+Portions of this software were developed by David Chisnall
+under sponsorship from the FreeBSD Foundation.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+1. Redistributions of source code must retain the above copyright
+   notice, this list of conditions and the following disclaimer.
+2. Redistributions in binary form must reproduce the above copyright
+   notice, this list of conditions and the following disclaimer in the
+   documentation and/or other materials provided with the distribution.
+
+THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGE.
+
+-------------------------------------------------------------------
+
+SPDX-License-Identifier: BSD-2-Clause
+
+Copyright (c) 2002 Tim J. Robbins
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+1. Redistributions of source code must retain the above copyright
+   notice, this list of conditions and the following disclaimer.
+2. Redistributions in binary form must reproduce the above copyright
+   notice, this list of conditions and the following disclaimer in the
+   documentation and/or other materials provided with the distribution.
+
+THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGE.
+
+-------------------------------------------------------------------
+
+SPDX-License-Identifier: BSD-2-Clause
+
+Copyright (c) 2005 Tim J. Robbins.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+1. Redistributions of source code must retain the above copyright
+   notice, this list of conditions and the following disclaimer.
+2. Redistributions in binary form must reproduce the above copyright
+   notice, this list of conditions and the following disclaimer in the
+   documentation and/or other materials provided with the distribution.
+
+THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGE.
+
+-------------------------------------------------------------------
+
+SPDX-License-Identifier: BSD-2-Clause
+
+Copyright (c) 2009 David Schultz <das@FreeBSD.org>
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+1. Redistributions of source code must retain the above copyright
+   notice, this list of conditions and the following disclaimer.
+2. Redistributions in binary form must reproduce the above copyright
+   notice, this list of conditions and the following disclaimer in the
+   documentation and/or other materials provided with the distribution.
+
+THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGE.
+
+-------------------------------------------------------------------
+
+SPDX-License-Identifier: BSD-2-Clause
+
+Copyright (c) 2011 David Chisnall
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+1. Redistributions of source code must retain the above copyright
+   notice, this list of conditions and the following disclaimer.
+2. Redistributions in binary form must reproduce the above copyright
+   notice, this list of conditions and the following disclaimer in the
+   documentation and/or other materials provided with the distribution.
+
+THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGE.
+
+-------------------------------------------------------------------
+
+SPDX-License-Identifier: BSD-2-Clause
+
+Copyright (c) 2015 Nuxi, https://nuxi.nl/
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+1. Redistributions of source code must retain the above copyright
+   notice, this list of conditions and the following disclaimer.
+2. Redistributions in binary form must reproduce the above copyright
+   notice, this list of conditions and the following disclaimer in the
+   documentation and/or other materials provided with the distribution.
+
+THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGE.
+
+-------------------------------------------------------------------
+
+SPDX-License-Identifier: BSD-2-Clause
+
+Copyright (c) 2017, 2018 Dell EMC
+Copyright (c) 2000, 2001, 2008, 2011, David E. O'Brien
+Copyright (c) 1998 John D. Polstra.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+1. Redistributions of source code must retain the above copyright
+   notice, this list of conditions and the following disclaimer.
+2. Redistributions in binary form must reproduce the above copyright
+   notice, this list of conditions and the following disclaimer in the
+   documentation and/or other materials provided with the distribution.
+
+THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGE.
+
+-------------------------------------------------------------------
+
+SPDX-License-Identifier: BSD-2-Clause
+
+Copyright (c)1999 Citrus Project,
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+1. Redistributions of source code must retain the above copyright
+   notice, this list of conditions and the following disclaimer.
+2. Redistributions in binary form must reproduce the above copyright
+   notice, this list of conditions and the following disclaimer in the
+   documentation and/or other materials provided with the distribution.
+
+THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGE.
+
+-------------------------------------------------------------------
+
+SPDX-License-Identifier: BSD-3-Clause
+
+Copyright (c) 1989, 1993
+   The Regents of the University of California.  All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+1. Redistributions of source code must retain the above copyright
+   notice, this list of conditions and the following disclaimer.
+2. Redistributions in binary form must reproduce the above copyright
+   notice, this list of conditions and the following disclaimer in the
+   documentation and/or other materials provided with the distribution.
+3. Neither the name of the University nor the names of its contributors
+   may be used to endorse or promote products derived from this software
+   without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGE.
+
+-------------------------------------------------------------------
+
+SPDX-License-Identifier: BSD-3-Clause
+
+Copyright (c) 1990, 1993
+   The Regents of the University of California.  All rights reserved.
+
+This code is derived from software contributed to Berkeley by
+Chris Torek.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+1. Redistributions of source code must retain the above copyright
+   notice, this list of conditions and the following disclaimer.
+2. Redistributions in binary form must reproduce the above copyright
+   notice, this list of conditions and the following disclaimer in the
+   documentation and/or other materials provided with the distribution.
+3. Neither the name of the University nor the names of its contributors
+   may be used to endorse or promote products derived from this software
+   without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGE.
+
+-------------------------------------------------------------------
+
+SPDX-License-Identifier: BSD-3-Clause
+
+Copyright (c) 1990, 1993
+   The Regents of the University of California.  All rights reserved.
+
+This code is derived from software contributed to Berkeley by
+Mike Hibler and Chris Torek.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+1. Redistributions of source code must retain the above copyright
+   notice, this list of conditions and the following disclaimer.
+2. Redistributions in binary form must reproduce the above copyright
+   notice, this list of conditions and the following disclaimer in the
+   documentation and/or other materials provided with the distribution.
+3. Neither the name of the University nor the names of its contributors
+   may be used to endorse or promote products derived from this software
+   without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGE.
+
+-------------------------------------------------------------------
+
+SPDX-License-Identifier: BSD-3-Clause
+
+Copyright (c) 1992, 1993
+   The Regents of the University of California.  All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+1. Redistributions of source code must retain the above copyright
+   notice, this list of conditions and the following disclaimer.
+2. Redistributions in binary form must reproduce the above copyright
+   notice, this list of conditions and the following disclaimer in the
+   documentation and/or other materials provided with the distribution.
+3. Neither the name of the University nor the names of its contributors
+   may be used to endorse or promote products derived from this software
+   without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGE.
+
+-------------------------------------------------------------------
+
+SPDX-License-Identifier: BSD-3-Clause
+
+Copyright (c) 1992, 1993, 1994 Henry Spencer.
+Copyright (c) 1992, 1993, 1994
+   The Regents of the University of California.  All rights reserved.
+
+Copyright (c) 2011 The FreeBSD Foundation
+All rights reserved.
+Portions of this software were developed by David Chisnall
+under sponsorship from the FreeBSD Foundation.
+
+This code is derived from software contributed to Berkeley by
+Henry Spencer.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+1. Redistributions of source code must retain the above copyright
+   notice, this list of conditions and the following disclaimer.
+2. Redistributions in binary form must reproduce the above copyright
+   notice, this list of conditions and the following disclaimer in the
+   documentation and/or other materials provided with the distribution.
+3. Neither the name of the University nor the names of its contributors
+   may be used to endorse or promote products derived from this software
+   without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGE.
+
+-------------------------------------------------------------------
+
+SPDX-License-Identifier: BSD-3-Clause
+
+Copyright (c) 1992, 1993, 1994 Henry Spencer.
+Copyright (c) 1992, 1993, 1994
+   The Regents of the University of California.  All rights reserved.
+
+This code is derived from software contributed to Berkeley by
+Henry Spencer.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+1. Redistributions of source code must retain the above copyright
+   notice, this list of conditions and the following disclaimer.
+2. Redistributions in binary form must reproduce the above copyright
+   notice, this list of conditions and the following disclaimer in the
+   documentation and/or other materials provided with the distribution.
+3. Neither the name of the University nor the names of its contributors
+   may be used to endorse or promote products derived from this software
+   without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGE.
+
+-------------------------------------------------------------------
+
+SPDX-License-Identifier: BSD-3-Clause
+
+Copyright (c) 1998 Softweyr LLC.  All rights reserved.
+
+strtok_r, from Berkeley strtok
+Oct 13, 1998 by Wes Peters <wes@softweyr.com>
+
+Copyright (c) 1988, 1993
+   The Regents of the University of California.  All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+1. Redistributions of source code must retain the above copyright
+   notices, this list of conditions and the following disclaimer.
+2. Redistributions in binary form must reproduce the above copyright
+   notices, this list of conditions and the following disclaimer in the
+   documentation and/or other materials provided with the distribution.
+3. Neither the name of the University nor the names of its contributors
+   may be used to endorse or promote products derived from this software
+   without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY SOFTWEYR LLC, THE REGENTS AND CONTRIBUTORS
+``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL SOFTWEYR LLC, THE
+REGENTS, OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
+TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+-------------------------------------------------------------------
+
+SPDX-License-Identifier: BSD-3-Clause
+
+Copyright (c) 1998 Todd C. Miller <Todd.Miller@courtesan.com>
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+1. Redistributions of source code must retain the above copyright
+   notice, this list of conditions and the following disclaimer.
+2. Redistributions in binary form must reproduce the above copyright
+   notice, this list of conditions and the following disclaimer in the
+   documentation and/or other materials provided with the distribution.
+3. The name of the author may not be used to endorse or promote products
+   derived from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
+INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
+AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL
+THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+-------------------------------------------------------------------
+
+SPDX-License-Identifier: BSD-3-Clause
+
+Copyright (c) 1999
+   David E. O'Brien
+Copyright (c) 1988, 1993
+   The Regents of the University of California.  All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+1. Redistributions of source code must retain the above copyright
+   notice, this list of conditions and the following disclaimer.
+2. Redistributions in binary form must reproduce the above copyright
+   notice, this list of conditions and the following disclaimer in the
+   documentation and/or other materials provided with the distribution.
+3. Neither the name of the University nor the names of its contributors
+   may be used to endorse or promote products derived from this software
+   without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGE.
+
+-------------------------------------------------------------------
+
 The author of this software is David M. Gay.
 
 Copyright (C) 1998 by Lucent Technologies
@@ -4925,3 +5106,11 @@
 
 -------------------------------------------------------------------
 
+memcpy - copy memory area
+
+Copyright (c) 2012-2022, Arm Limited.
+Copyright (c) 2024 Qualcomm Innovation Center, Inc. All rights reserved.
+SPDX-License-Identifier: MIT OR Apache-2.0 WITH LLVM-exception
+
+-------------------------------------------------------------------
+
diff --git a/libc/SECCOMP_ALLOWLIST_APP.TXT b/libc/SECCOMP_ALLOWLIST_APP.TXT
index 7e1ecde..80b15b2 100644
--- a/libc/SECCOMP_ALLOWLIST_APP.TXT
+++ b/libc/SECCOMP_ALLOWLIST_APP.TXT
@@ -4,36 +4,36 @@
 # This file is processed by a python script named genseccomp.py.
 
 # Needed for debugging 32-bit Chrome
-int	pipe:pipe(int pipefd[2])	lp32
+int	pipe(int pipefd[2])	lp32
 
 # b/34651972
-int	access:access(const char *pathname, int mode)	lp32
-int	stat64:stat64(const char*, struct stat64*)	lp32
+int	access(const char *pathname, int mode)	lp32
+int	stat64(const char*, struct stat64*)	lp32
 
 # b/34813887
-int	open:open(const char *path, int oflag, ... ) lp32,x86_64
-int	getdents:getdents(unsigned int fd, struct linux_dirent *dirp, unsigned int count) lp32,x86_64
+int	open(const char *path, int oflag, ... ) lp32,x86_64
+int	getdents(unsigned int fd, struct linux_dirent *dirp, unsigned int count) lp32,x86_64
 
 # b/34719286
-int	eventfd:eventfd(unsigned int initval, int flags)	lp32
+int	eventfd(unsigned int initval, int flags)	lp32
 
 # b/34817266
-int	epoll_wait:epoll_wait(int epfd, struct epoll_event *events, int maxevents, int timeout)	lp32
+int	epoll_wait(int epfd, struct epoll_event *events, int maxevents, int timeout)	lp32
 
 # b/34908783
-int	epoll_create:epoll_create(int size)	lp32
+int	epoll_create(int size)	lp32
 
 # b/34979910
-int	creat:creat(const char *pathname, mode_t mode)	lp32
-int	unlink:unlink(const char *pathname)	lp32
+int	creat(const char *pathname, mode_t mode)	lp32
+int	unlink(const char *pathname)	lp32
 
 # b/35059702
-int	lstat64:lstat64(const char*, struct stat64*)	lp32
+int	lstat64(const char*, struct stat64*)	lp32
 
 # b/35217603
-int	fcntl:fcntl(int fd, int cmd, ... /* arg */ )	lp32
-pid_t	fork:fork()	lp32
-int	poll:poll(struct pollfd *fds, nfds_t nfds, int timeout)	lp32
+int	fcntl(int fd, int cmd, ... /* arg */ )	lp32
+pid_t	fork()	lp32
+int	poll(struct pollfd *fds, nfds_t nfds, int timeout)	lp32
 
 # b/35906875
 int	inotify_init()	lp32
diff --git a/libc/SECCOMP_ALLOWLIST_COMMON.TXT b/libc/SECCOMP_ALLOWLIST_COMMON.TXT
index efbf28b..1d58475 100644
--- a/libc/SECCOMP_ALLOWLIST_COMMON.TXT
+++ b/libc/SECCOMP_ALLOWLIST_COMMON.TXT
@@ -11,12 +11,15 @@
 # Syscalls used internally by bionic, but not exposed directly.
 pid_t	gettid()	all
 int	futex(int*, int, int, const timespec*, int*, int)	all
-int	clone(int (*)(void*), void*, int, void*, ...) all
+pid_t	clone(int (*)(void*), void*, int, void*, ...) all
 int	sigreturn(unsigned long)	lp32
 int	rt_sigreturn(unsigned long)	all
 int	rt_tgsigqueueinfo(pid_t, pid_t, int, siginfo_t*)	all
 int	restart_syscall()	all
 
+# The public API doesn't set errno, so we call this via inline assembler.
+int riscv_hwprobe(riscv_hwprobe*, size_t, size_t, unsigned long*, unsigned) riscv64
+
 # vfork is used by bionic (and java.lang.ProcessBuilder) on some
 # architectures. (The others use clone(2) directly instead.)
 pid_t	vfork()	arm,x86,x86_64
@@ -53,6 +56,7 @@
 int execveat(int, const char*, char* const*, char* const*, int)  all
 # Since Linux 4.3, not in glibc. Probed for and conditionally used by ART.
 int membarrier(int, int) all
+int userfaultfd(int) all
 # Since Linux 5.1, not in glibc. Not used by bionic, and not likely ever
 # to be (because the last thing anyone needs is a new 32-bit ABI in the
 # 2020s!) but http://b/138781460 showed cuttlefish needed at least the
@@ -73,5 +77,8 @@
 int rt_sigtimedwait_time64(const sigset64_t*, siginfo_t*, const timespec64*, size_t) lp32
 int futex_time64(int*, int, int, const timespec64*, int*, int) lp32
 int sched_rr_get_interval_time64(pid_t, timespec64*) lp32
-# Since Linux 5.4, not in glibc. Probed for and conditionally used by ART.
-int userfaultfd(int) all
+# Since Linux 5.3, not in glibc. Not used by bionic, but increasingly
+# likely to be useful as new features are added. In particular, cgroups
+# support seems potentially useful for Android (though the struct that
+# changes size over time is obviously problematic).
+pid_t clone3(clone_args*, size_t) all
diff --git a/libc/SECCOMP_BLOCKLIST_APP.TXT b/libc/SECCOMP_BLOCKLIST_APP.TXT
index 049d577..b9ecc02 100644
--- a/libc/SECCOMP_BLOCKLIST_APP.TXT
+++ b/libc/SECCOMP_BLOCKLIST_APP.TXT
@@ -6,40 +6,39 @@
 #
 # This file is processed by a python script named genseccomp.py.
 
-# Note: Some privileged syscalls are still needed in app process after fork before uid change,
-# including capset and setresuid. This is because the seccomp filter must be installed while
-# the process still has CAP_SYS_ADMIN; changing the uid would remove that capability.
-
-# syscalls to modify IDs
-int     setgid:setgid32(gid_t)     lp32
-int     setgid:setgid(gid_t)       lp64
-int     setuid:setuid32(uid_t)    lp32
-int     setuid:setuid(uid_t)      lp64
-int     setregid:setregid32(gid_t, gid_t)  lp32
-int     setregid:setregid(gid_t, gid_t)    lp64
-int     setreuid:setreuid32(uid_t, uid_t)   lp32
-int     setreuid:setreuid(uid_t, uid_t)     lp64
-int     setresgid:setresgid32(gid_t, gid_t, gid_t)   lp32
-int     setresgid:setresgid(gid_t, gid_t, gid_t)     lp64
+# Syscalls to modify IDs.
+# Note: Some privileged syscalls are still needed in app_process after fork but
+# before uid change, including capset and setresuid. This is because the seccomp
+# filter must be installed while the process still has CAP_SYS_ADMIN; changing
+# the uid would remove that capability.
+int     setgid32(gid_t)     lp32
+int     setgid(gid_t)       lp64
+int     setuid32(uid_t)    lp32
+int     setuid(uid_t)      lp64
+int     setregid32(gid_t, gid_t)  lp32
+int     setregid(gid_t, gid_t)    lp64
+int     setreuid32(uid_t, uid_t)   lp32
+int     setreuid(uid_t, uid_t)     lp64
+int     setresgid32(gid_t, gid_t, gid_t)   lp32
+int     setresgid(gid_t, gid_t, gid_t)     lp64
 # setresuid is explicitly allowed, see above.
-int     setfsgid:setfsgid32(gid_t) lp32
-int     setfsgid:setfsgid(gid_t)   lp64
-int     setfsuid:setfsuid32(uid_t) lp32
-int     setfsuid:setfsuid(uid_t)   lp64
-int     setgroups:setgroups32(int, const gid_t*)   lp32
-int     setgroups:setgroups(int, const gid_t*)     lp64
+int     setfsgid32(gid_t) lp32
+int     setfsgid(gid_t)   lp64
+int     setfsuid32(uid_t) lp32
+int     setfsuid(uid_t)   lp64
+int     setgroups32(int, const gid_t*)   lp32
+int     setgroups(int, const gid_t*)     lp64
 
-# syscalls to modify times
+# Syscalls to modify times.
 int     adjtimex(struct timex*)   all
 int     clock_adjtime(clockid_t, struct timex*)   all
 int     clock_settime(clockid_t, const struct timespec*)  all
 int     settimeofday(const struct timeval*, const struct timezone*)   all
 
 int     acct(const char*  filepath)  all
-int     klogctl:syslog(int, char*, int)   all
+int     syslog(int, char*, int)   all
 int     chroot(const char*)  all
 
-# syscalls to change machine various configurations
 int     init_module(void*, unsigned long, const char*)  all
 int     delete_module(const char*, unsigned int)   all
 int     mount(const char*, const char*, const char*, unsigned long, const void*)  all
@@ -48,4 +47,4 @@
 int     swapoff(const char*) all
 int     setdomainname(const char*, size_t)  all
 int     sethostname(const char*, size_t)  all
-int     __reboot:reboot(int, int, int, void*)  all
+int     reboot(int, int, int, void*)  all
diff --git a/libc/SYSCALLS.TXT b/libc/SYSCALLS.TXT
index 08017f1..8c5572e 100644
--- a/libc/SYSCALLS.TXT
+++ b/libc/SYSCALLS.TXT
@@ -65,7 +65,7 @@
 int tgkill(pid_t tgid, pid_t tid, int sig) all
 
 void* __brk:brk(void*) all
-int __execve:execve(const char*, char* const*, char* const*)  all
+int execve(const char*, char* const*, char* const*)  all
 int __ptrace:ptrace(int request, int pid, void* addr, void* data) all
 
 # <sys/resource.h>
@@ -88,7 +88,6 @@
 int     setregid:setregid(gid_t, gid_t)    lp64
 int     chroot(const char*)  all
 int     prctl(int, unsigned long, unsigned long, unsigned long, unsigned long) all
-long    __arch_prctl:arch_prctl(int, unsigned long) x86_64
 int     capget(cap_user_header_t header, cap_user_data_t data) all
 int     capset(cap_user_header_t header, const cap_user_data_t data) all
 int     sigaltstack(const stack_t*, stack_t*) all
@@ -118,7 +117,6 @@
 pid_t       __getpid:getpid()  all
 int memfd_create(const char*, unsigned) all
 int         munmap(void*, size_t)  all
-void*       __mremap:mremap(void*, size_t, size_t, int, void*)  all
 int         msync(const void*, size_t, int)    all
 int         mprotect(const void*, size_t, int)  all
 int         madvise(void*, size_t, int)  all
@@ -127,6 +125,7 @@
 int mlock2(const void* addr, size_t len, int flags)    all
 int         munlock(const void* addr, size_t len)   all
 int         mlockall(int flags)   all
+int mseal(void*, size_t, unsigned long) lp64
 int         munlockall()   all
 int         mincore(void*  start, size_t  length, unsigned char*  vec)   all
 int         __ioctl:ioctl(int, int, void*)  all
@@ -161,7 +160,7 @@
 int linkat(int, const char*, int, const char*, int)  all
 int mkdirat(int, const char*, mode_t)  all
 int mknodat(int, const char*, mode_t, dev_t)  all
-int readlinkat(int, const char*, char*, size_t)  all
+ssize_t readlinkat(int, const char*, char*, size_t)  all
 int renameat2(int, const char*, int, const char*, unsigned)  all
 int symlinkat(const char*, int, const char*)  all
 int unlinkat(int, const char*, int)   all
@@ -174,20 +173,25 @@
 off_t lseek(int, off_t, int) lp32
 int __llseek:_llseek(int, unsigned long, unsigned long, off64_t*, int) lp32
 off_t lseek|lseek64(int, off_t, int) lp64
-int ftruncate64(int, off64_t) lp32
-int ftruncate|ftruncate64(int, off_t) lp64
 ssize_t sendfile(int out_fd, int in_fd, off_t* offset, size_t count) lp32
 ssize_t sendfile64(int out_fd, int in_fd, off64_t* offset, size_t count) lp32
 ssize_t sendfile|sendfile64(int out_fd, int in_fd, off_t* offset, size_t count) lp64
 int truncate(const char*, off_t) lp32
 int truncate64(const char*, off64_t) lp32
 int truncate|truncate64(const char*, off_t) lp64
-# (mmap only gets two lines because we only used the 64-bit variant on 32-bit systems.)
-void* __mmap2:mmap2(void*, size_t, int, int, int, long)   lp32
-void* mmap|mmap64(void*, size_t, int, int, int, off_t)  lp64
 # (fallocate only gets two lines because there is no 32-bit variant.)
 int fallocate64:fallocate(int, int, off64_t, off64_t) lp32
 int fallocate|fallocate64(int, int, off_t, off_t) lp64
+# (ftruncate only gets two lines because 32-bit bionic only uses the 64-bit call.)
+int ftruncate64(int, off64_t) lp32
+int ftruncate|ftruncate64(int, off_t) lp64
+# (mmap only gets two lines because 32-bit bionic only uses the 64-bit call.)
+void* __mmap2:mmap2(void*, size_t, int, int, int, long) lp32
+void* mmap|mmap64(void*, size_t, int, int, int, off_t) lp64
+
+# mremap is in C++ for 32-bit so we can add the PTRDIFF_MAX check.
+void* __mremap:mremap(void*, size_t, size_t, int, void*) lp32
+void* mremap(void*, size_t, size_t, int, void*) lp64
 
 # posix_fadvise64 is awkward: arm has shuffled arguments,
 # the POSIX functions don't set errno, and no architecture has posix_fadvise.
@@ -322,10 +326,11 @@
 int __epoll_create1:epoll_create1(int)  all
 int epoll_ctl(int, int op, int, struct epoll_event*)  all
 int __epoll_pwait:epoll_pwait(int, struct epoll_event*, int, int, const sigset64_t*, size_t)  all
+int __epoll_pwait2:epoll_pwait2(int, struct epoll_event*, int, const timespec64*, const sigset64_t*, size_t)  all
 
 int __eventfd:eventfd2(unsigned int, int)  all
 
-void __exit_group:exit_group(int)  all
+void _exit|_Exit:exit_group(int)  all
 void __exit:exit(int)  all
 
 int inotify_init1(int)  all
@@ -345,7 +350,7 @@
 int setdomainname(const char*, size_t)  all
 int sethostname(const char*, size_t)  all
 
-int __sync_file_range:sync_file_range(int, off64_t, off64_t, unsigned int) x86,lp64
+int sync_file_range(int, off64_t, off64_t, unsigned int) x86,lp64
 int __sync_file_range2:sync_file_range2(int, unsigned int, off64_t, off64_t) arm
 
 pid_t wait4(pid_t, int*, int, struct rusage*)  all
@@ -356,10 +361,11 @@
 int     cacheflush:__ARM_NR_cacheflush(long start, long end, long flags)  arm
 
 # riscv64-specific
-int _flush_icache:riscv_flush_icache(void*, void*, unsigned long) riscv64
+int __riscv_flush_icache:riscv_flush_icache(void*, void*, unsigned long) riscv64
 
 # x86-specific
 int     __set_thread_area:set_thread_area(void*) x86
+long arch_prctl(int, unsigned long) x86_64
 
 # vdso stuff.
 int __clock_getres:clock_getres(clockid_t, struct timespec*) all
diff --git a/libc/arch-arm/bionic/__restore.S b/libc/arch-arm/bionic/__restore.S
index 5291743..c79c40a 100644
--- a/libc/arch-arm/bionic/__restore.S
+++ b/libc/arch-arm/bionic/__restore.S
@@ -47,7 +47,7 @@
   .save {r0-r15}
   .pad #32
   nop
-ENTRY_PRIVATE_NO_DWARF(__restore)
+ENTRY_NO_DWARF_PRIVATE(__restore)
   // This function must have exactly this instruction sequence.
   mov r7, #__NR_sigreturn
   swi #0
@@ -57,7 +57,7 @@
   .save {r0-r15}
   .pad #160
   nop
-ENTRY_PRIVATE_NO_DWARF(__restore_rt)
+ENTRY_NO_DWARF_PRIVATE(__restore_rt)
   // This function must have exactly this instruction sequence.
   mov r7, #__NR_rt_sigreturn
   swi #0
diff --git a/libc/arch-arm/bionic/setjmp.S b/libc/arch-arm/bionic/setjmp.S
index 2579143..d3d25d4 100644
--- a/libc/arch-arm/bionic/setjmp.S
+++ b/libc/arch-arm/bionic/setjmp.S
@@ -75,14 +75,12 @@
 #define _JB_CORE_BASE   (_JB_FLOAT_STATE+1)
 #define _JB_CHECKSUM    (_JB_CORE_BASE+10)
 
-ENTRY(setjmp)
-__BIONIC_WEAK_ASM_FOR_NATIVE_BRIDGE(setjmp)
+ENTRY_WEAK_FOR_NATIVE_BRIDGE(setjmp)
   mov r1, #1
   b sigsetjmp
 END(setjmp)
 
-ENTRY(_setjmp)
-__BIONIC_WEAK_ASM_FOR_NATIVE_BRIDGE(_setjmp)
+ENTRY_WEAK_FOR_NATIVE_BRIDGE(_setjmp)
   mov r1, #0
   b sigsetjmp
 END(_setjmp)
@@ -96,8 +94,7 @@
 .endm
 
 // int sigsetjmp(sigjmp_buf env, int save_signal_mask);
-ENTRY(sigsetjmp)
-__BIONIC_WEAK_ASM_FOR_NATIVE_BRIDGE(sigsetjmp)
+ENTRY_WEAK_FOR_NATIVE_BRIDGE(sigsetjmp)
   stmfd sp!, {r0, lr}
   .cfi_def_cfa_offset 8
   .cfi_rel_offset r0, 0
@@ -187,8 +184,7 @@
 END(sigsetjmp)
 
 // void siglongjmp(sigjmp_buf env, int value);
-ENTRY(siglongjmp)
-__BIONIC_WEAK_ASM_FOR_NATIVE_BRIDGE(siglongjmp)
+ENTRY_WEAK_FOR_NATIVE_BRIDGE(siglongjmp)
   stmfd sp!, {r0, r1, lr}
   .cfi_def_cfa_offset 12
   .cfi_rel_offset r0, 0
@@ -269,7 +265,5 @@
   bx lr
 END(siglongjmp)
 
-ALIAS_SYMBOL(longjmp, siglongjmp)
-__BIONIC_WEAK_ASM_FOR_NATIVE_BRIDGE(longjmp)
-ALIAS_SYMBOL(_longjmp, siglongjmp)
-__BIONIC_WEAK_ASM_FOR_NATIVE_BRIDGE(_longjmp)
+ALIAS_SYMBOL_WEAK_FOR_NATIVE_BRIDGE(longjmp, siglongjmp)
+ALIAS_SYMBOL_WEAK_FOR_NATIVE_BRIDGE(_longjmp, siglongjmp)
diff --git a/libc/arch-arm/bionic/vfork.S b/libc/arch-arm/bionic/vfork.S
index a964be5..f4d329b 100644
--- a/libc/arch-arm/bionic/vfork.S
+++ b/libc/arch-arm/bionic/vfork.S
@@ -29,8 +29,7 @@
 #include <platform/bionic/tls_defines.h>
 #include <private/bionic_asm.h>
 
-ENTRY(vfork)
-__BIONIC_WEAK_ASM_FOR_NATIVE_BRIDGE(vfork)
+ENTRY_WEAK_FOR_NATIVE_BRIDGE(vfork)
     // r3 = &__get_tls()[TLS_SLOT_THREAD_ID]
     mrc     p15, 0, r3, c13, c0, 3
     ldr     r3, [r3, #(TLS_SLOT_THREAD_ID * 4)]
diff --git a/libc/arch-arm/dynamic_function_dispatch.cpp b/libc/arch-arm/dynamic_function_dispatch.cpp
index 1d2f38f..f984421 100644
--- a/libc/arch-arm/dynamic_function_dispatch.cpp
+++ b/libc/arch-arm/dynamic_function_dispatch.cpp
@@ -27,27 +27,26 @@
  */
 
 #include <fcntl.h>
-#include <sys/syscall.h>
-
 #include <private/bionic_ifuncs.h>
+#include <sys/syscall.h>
 
 extern "C" {
 
 enum CpuVariant {
-    kUnknown = 0,
-    kGeneric,
-    kCortexA7,
-    kCortexA9,
-    kCortexA53,
-    kCortexA55,
-    kKrait,
-    kKryo,
+  kUnknown = 0,
+  kGeneric,
+  kCortexA7,
+  kCortexA9,
+  kCortexA53,
+  kCortexA55,
+  kKrait,
+  kKryo,
 };
 
 static constexpr int MAX_CPU_NAME_LEN = 12;
 struct CpuVariantNames {
-    alignas(alignof(int)) char name[MAX_CPU_NAME_LEN];
-    CpuVariant variant;
+  alignas(alignof(int)) char name[MAX_CPU_NAME_LEN];
+  CpuVariant variant;
 };
 
 static constexpr CpuVariantNames cpu_variant_names[] = {
@@ -66,227 +65,237 @@
 };
 
 static long ifunc_open(const char* pathname) {
-    register long r0 __asm__("r0") = AT_FDCWD;
-    register long r1 __asm__("r1") = reinterpret_cast<long>(pathname);
-    register long r2 __asm__("r2") = O_RDONLY;
-    register long r3 __asm__("r3") = 0;
-    register long r7 __asm__("r7") = __NR_openat;
-    __asm__ volatile("swi #0" : "=r"(r0) : "r"(r0), "r"(r1), "r"(r2), "r"(r3), "r"(r7));
-    return r0;
+  register long r0 __asm__("r0") = AT_FDCWD;
+  register long r1 __asm__("r1") = reinterpret_cast<long>(pathname);
+  register long r2 __asm__("r2") = O_RDONLY;
+  register long r3 __asm__("r3") = 0;
+  register long r7 __asm__("r7") = __NR_openat;
+  __asm__ volatile("swi #0"
+                   : "=r"(r0)
+                   : "r"(r0), "r"(r1), "r"(r2), "r"(r3), "r"(r7));
+  return r0;
 }
 
 static ssize_t ifunc_read(int fd, void* buf, size_t count) {
-    register long r0 __asm__("r0") = fd;
-    register long r1 __asm__("r1") = reinterpret_cast<long>(buf);
-    register long r2 __asm__("r2") = count;
-    register long r7 __asm__("r7") = __NR_read;
-    __asm__ volatile("swi #0" : "=r"(r0) : "r"(r0), "r"(r1), "r"(r2), "r"(r7) : "memory");
-    return r0;
+  register long r0 __asm__("r0") = fd;
+  register long r1 __asm__("r1") = reinterpret_cast<long>(buf);
+  register long r2 __asm__("r2") = count;
+  register long r7 __asm__("r7") = __NR_read;
+  __asm__ volatile("swi #0"
+                   : "=r"(r0)
+                   : "r"(r0), "r"(r1), "r"(r2), "r"(r7)
+                   : "memory");
+  return r0;
 }
 
 static int ifunc_close(int fd) {
-    register long r0 __asm__("r0") = fd;
-    register long r7 __asm__("r7") = __NR_close;
-    __asm__ volatile("swi #0" : "=r"(r0) : "r"(r0), "r"(r7));
-    return r0;
+  register long r0 __asm__("r0") = fd;
+  register long r7 __asm__("r7") = __NR_close;
+  __asm__ volatile("swi #0" : "=r"(r0) : "r"(r0), "r"(r7));
+  return r0;
 }
 
 static bool is_same_name(const char* a, const char* b) {
-    static_assert(MAX_CPU_NAME_LEN % sizeof(int) == 0, "");
-    const int* ia = reinterpret_cast<const int*>(a);
-    const int* ib = reinterpret_cast<const int*>(b);
-    for (size_t i = 0; i < MAX_CPU_NAME_LEN / sizeof(int); ++i) {
-        if (ia[i] != ib[i]) {
-            return false;
-        }
+  static_assert(MAX_CPU_NAME_LEN % sizeof(int) == 0, "");
+  const int* ia = reinterpret_cast<const int*>(a);
+  const int* ib = reinterpret_cast<const int*>(b);
+  for (size_t i = 0; i < MAX_CPU_NAME_LEN / sizeof(int); ++i) {
+    if (ia[i] != ib[i]) {
+      return false;
     }
-    return true;
+  }
+  return true;
 }
 
 static CpuVariant init_cpu_variant() {
-    int fd = ifunc_open("/dev/cpu_variant:arm");
-    if (fd < 0) return kGeneric;
+  int fd = ifunc_open("/dev/cpu_variant:arm");
+  if (fd < 0) return kGeneric;
 
-    alignas(alignof(int)) char name[MAX_CPU_NAME_LEN] = {};
+  alignas(alignof(int)) char name[MAX_CPU_NAME_LEN] = {};
 
-    int bytes_read, total_read = 0;
-    while (total_read < MAX_CPU_NAME_LEN - 1 &&
-           (bytes_read = ifunc_read(fd, name + total_read,
-                                    MAX_CPU_NAME_LEN - 1 - total_read)) > 0) {
-        total_read += bytes_read;
-    }
-    ifunc_close(fd);
+  int bytes_read, total_read = 0;
+  while (total_read < MAX_CPU_NAME_LEN - 1 &&
+         (bytes_read = ifunc_read(fd, name + total_read,
+                                  MAX_CPU_NAME_LEN - 1 - total_read)) > 0) {
+    total_read += bytes_read;
+  }
+  ifunc_close(fd);
 
-    if (bytes_read != 0) {
-        // The file is too big. We haven't reach the end. Or maybe there is an
-        // error when reading.
-        return kGeneric;
-    }
-    name[total_read] = 0;
-
-    const CpuVariantNames* cpu_variant = cpu_variant_names;
-    while (cpu_variant->variant != kUnknown) {
-        if (is_same_name(cpu_variant->name, name)) {
-            return cpu_variant->variant;
-        }
-        cpu_variant++;
-    }
+  if (bytes_read != 0) {
+    // The file is too big. We haven't reach the end. Or maybe there is an
+    // error when reading.
     return kGeneric;
+  }
+  name[total_read] = 0;
+
+  const CpuVariantNames* cpu_variant = cpu_variant_names;
+  while (cpu_variant->variant != kUnknown) {
+    if (is_same_name(cpu_variant->name, name)) {
+      return cpu_variant->variant;
+    }
+    cpu_variant++;
+  }
+  return kGeneric;
 }
 
 static CpuVariant get_cpu_variant() {
-    static CpuVariant cpu_variant = kUnknown;
-    if (cpu_variant == kUnknown) {
-        cpu_variant = init_cpu_variant();
-    }
-    return cpu_variant;
+  static CpuVariant cpu_variant = kUnknown;
+  if (cpu_variant == kUnknown) {
+    cpu_variant = init_cpu_variant();
+  }
+  return cpu_variant;
 }
 
-typedef void* memmove_func(void* __dst, const void* __src, size_t __n);
 DEFINE_IFUNC_FOR(memmove) {
-    RETURN_FUNC(memmove_func, memmove_a15);
+  RETURN_FUNC(memmove_func_t, memmove_a15);
 }
+MEMMOVE_SHIM()
 
-typedef void* memcpy_func(void*, const void*, size_t);
 DEFINE_IFUNC_FOR(memcpy) {
-    return memmove_resolver(hwcap);
+  return memmove_resolver(hwcap);
 }
+MEMCPY_SHIM()
 
-typedef void* __memcpy_func(void*, const void*, size_t);
+// On arm32, __memcpy() is not publicly exposed, but gets called by memmove()
+// in cases where the copy is known to be overlap-safe.
+typedef void* __memcpy_func_t(void*, const void*, size_t);
 DEFINE_IFUNC_FOR(__memcpy) {
-    switch(get_cpu_variant()) {
-        case kCortexA7:
-            RETURN_FUNC(__memcpy_func, __memcpy_a7);
-        case kCortexA9:
-            RETURN_FUNC(__memcpy_func, __memcpy_a9);
-        case kKrait:
-            RETURN_FUNC(__memcpy_func, __memcpy_krait);
-        case kCortexA53:
-            RETURN_FUNC(__memcpy_func, __memcpy_a53);
-        case kCortexA55:
-            RETURN_FUNC(__memcpy_func, __memcpy_a55);
-        case kKryo:
-            RETURN_FUNC(__memcpy_func, __memcpy_kryo);
-        default:
-            RETURN_FUNC(__memcpy_func, __memcpy_a15);
-    }
+  switch (get_cpu_variant()) {
+    case kCortexA7:
+      RETURN_FUNC(__memcpy_func_t, __memcpy_a7);
+    case kCortexA9:
+      RETURN_FUNC(__memcpy_func_t, __memcpy_a9);
+    case kKrait:
+      RETURN_FUNC(__memcpy_func_t, __memcpy_krait);
+    case kCortexA53:
+      RETURN_FUNC(__memcpy_func_t, __memcpy_a53);
+    case kCortexA55:
+      RETURN_FUNC(__memcpy_func_t, __memcpy_a55);
+    case kKryo:
+      RETURN_FUNC(__memcpy_func_t, __memcpy_kryo);
+    default:
+      RETURN_FUNC(__memcpy_func_t, __memcpy_a15);
+  }
 }
+DEFINE_STATIC_SHIM(void* __memcpy(void* dst, const void* src, size_t n) {
+  FORWARD(__memcpy)(dst, src, n);
+})
 
-typedef void* __memset_chk_func(void* s, int c, size_t n, size_t n2);
 DEFINE_IFUNC_FOR(__memset_chk) {
-    switch(get_cpu_variant()) {
-        case kCortexA7:
-        case kCortexA53:
-        case kCortexA55:
-        case kKryo:
-            RETURN_FUNC(__memset_chk_func, __memset_chk_a7);
-        case kCortexA9:
-            RETURN_FUNC(__memset_chk_func, __memset_chk_a9);
-        case kKrait:
-            RETURN_FUNC(__memset_chk_func, __memset_chk_krait);
-        default:
-            RETURN_FUNC(__memset_chk_func, __memset_chk_a15);
-    }
+  switch (get_cpu_variant()) {
+    case kCortexA7:
+    case kCortexA53:
+    case kCortexA55:
+    case kKryo:
+      RETURN_FUNC(__memset_chk_func_t, __memset_chk_a7);
+    case kCortexA9:
+      RETURN_FUNC(__memset_chk_func_t, __memset_chk_a9);
+    case kKrait:
+      RETURN_FUNC(__memset_chk_func_t, __memset_chk_krait);
+    default:
+      RETURN_FUNC(__memset_chk_func_t, __memset_chk_a15);
+  }
 }
+__MEMSET_CHK_SHIM()
 
-typedef void* memset_func(void* __dst, int __ch, size_t __n);
 DEFINE_IFUNC_FOR(memset) {
-    switch(get_cpu_variant()) {
-        case kCortexA7:
-        case kCortexA53:
-        case kCortexA55:
-        case kKryo:
-             RETURN_FUNC(memset_func, memset_a7);
-        case kCortexA9:
-             RETURN_FUNC(memset_func, memset_a9);
-        case kKrait:
-             RETURN_FUNC(memset_func, memset_krait);
-        default:
-             RETURN_FUNC(memset_func, memset_a15);
-    }
+  switch (get_cpu_variant()) {
+    case kCortexA7:
+    case kCortexA53:
+    case kCortexA55:
+    case kKryo:
+      RETURN_FUNC(memset_func_t, memset_a7);
+    case kCortexA9:
+      RETURN_FUNC(memset_func_t, memset_a9);
+    case kKrait:
+      RETURN_FUNC(memset_func_t, memset_krait);
+    default:
+      RETURN_FUNC(memset_func_t, memset_a15);
+  }
 }
+MEMSET_SHIM()
 
-typedef char* strcpy_func(char* __dst, const char* __src);
 DEFINE_IFUNC_FOR(strcpy) {
-    switch(get_cpu_variant()) {
-        case kCortexA9:
-            RETURN_FUNC(strcpy_func, strcpy_a9);
-        default:
-            RETURN_FUNC(strcpy_func, strcpy_a15);
-    }
+  switch (get_cpu_variant()) {
+    case kCortexA9:
+      RETURN_FUNC(strcpy_func_t, strcpy_a9);
+    default:
+      RETURN_FUNC(strcpy_func_t, strcpy_a15);
+  }
 }
+STRCPY_SHIM()
 
-typedef char* __strcpy_chk_func(char* dst, const char* src, size_t dst_len);
 DEFINE_IFUNC_FOR(__strcpy_chk) {
-    switch(get_cpu_variant()) {
-        case kCortexA7:
-            RETURN_FUNC(__strcpy_chk_func, __strcpy_chk_a7);
-        case kCortexA9:
-            RETURN_FUNC(__strcpy_chk_func, __strcpy_chk_a9);
-        case kKrait:
-        case kKryo:
-            RETURN_FUNC(__strcpy_chk_func, __strcpy_chk_krait);
-        case kCortexA53:
-            RETURN_FUNC(__strcpy_chk_func, __strcpy_chk_a53);
-        case kCortexA55:
-            RETURN_FUNC(__strcpy_chk_func, __strcpy_chk_a55);
-        default:
-            RETURN_FUNC(__strcpy_chk_func, __strcpy_chk_a15);
-    }
+  switch (get_cpu_variant()) {
+    case kCortexA7:
+      RETURN_FUNC(__strcpy_chk_func_t, __strcpy_chk_a7);
+    case kCortexA9:
+      RETURN_FUNC(__strcpy_chk_func_t, __strcpy_chk_a9);
+    case kKrait:
+    case kKryo:
+      RETURN_FUNC(__strcpy_chk_func_t, __strcpy_chk_krait);
+    case kCortexA53:
+      RETURN_FUNC(__strcpy_chk_func_t, __strcpy_chk_a53);
+    case kCortexA55:
+      RETURN_FUNC(__strcpy_chk_func_t, __strcpy_chk_a55);
+    default:
+      RETURN_FUNC(__strcpy_chk_func_t, __strcpy_chk_a15);
+  }
 }
+__STRCPY_CHK_SHIM()
 
-typedef char* stpcpy_func(char* __dst, const char* __src);
 DEFINE_IFUNC_FOR(stpcpy) {
-    switch(get_cpu_variant()) {
-        case kCortexA9:
-            RETURN_FUNC(stpcpy_func, stpcpy_a9);
-        default:
-            RETURN_FUNC(stpcpy_func, stpcpy_a15);
-    }
+  switch (get_cpu_variant()) {
+    case kCortexA9:
+      RETURN_FUNC(stpcpy_func_t, stpcpy_a9);
+    default:
+      RETURN_FUNC(stpcpy_func_t, stpcpy_a15);
+  }
 }
+STPCPY_SHIM()
 
-typedef char* strcat_func(char* __dst, const char* __src);
 DEFINE_IFUNC_FOR(strcat) {
-    switch(get_cpu_variant()) {
-        case kCortexA9:
-            RETURN_FUNC(strcat_func, strcat_a9);
-        default:
-            RETURN_FUNC(strcat_func, strcat_a15);
-    }
+  switch (get_cpu_variant()) {
+    case kCortexA9:
+      RETURN_FUNC(strcat_func_t, strcat_a9);
+    default:
+      RETURN_FUNC(strcat_func_t, strcat_a15);
+  }
 }
+STRCAT_SHIM()
 
-typedef char* __strcat_chk_func(char* dst, const char* src, size_t dst_buf_size);
 DEFINE_IFUNC_FOR(__strcat_chk) {
-    switch(get_cpu_variant()) {
-        case kCortexA7:
-            RETURN_FUNC(__strcat_chk_func, __strcat_chk_a7);
-        case kCortexA9:
-            RETURN_FUNC(__strcat_chk_func, __strcat_chk_a9);
-        case kKrait:
-        case kKryo:
-            RETURN_FUNC(__strcat_chk_func, __strcat_chk_krait);
-        case kCortexA53:
-            RETURN_FUNC(__strcat_chk_func, __strcat_chk_a53);
-        case kCortexA55:
-            RETURN_FUNC(__strcat_chk_func, __strcat_chk_a55);
-        default:
-            RETURN_FUNC(__strcat_chk_func, __strcat_chk_a15);
-    }
+  switch (get_cpu_variant()) {
+    case kCortexA7:
+      RETURN_FUNC(__strcat_chk_func_t, __strcat_chk_a7);
+    case kCortexA9:
+      RETURN_FUNC(__strcat_chk_func_t, __strcat_chk_a9);
+    case kKrait:
+    case kKryo:
+      RETURN_FUNC(__strcat_chk_func_t, __strcat_chk_krait);
+    case kCortexA53:
+      RETURN_FUNC(__strcat_chk_func_t, __strcat_chk_a53);
+    case kCortexA55:
+      RETURN_FUNC(__strcat_chk_func_t, __strcat_chk_a55);
+    default:
+      RETURN_FUNC(__strcat_chk_func_t, __strcat_chk_a15);
+  }
 }
+__STRCAT_CHK_SHIM()
 
-typedef int strcmp_func(const char* __lhs, const char* __rhs);
 DEFINE_IFUNC_FOR(strcmp) {
-    RETURN_FUNC(strcmp_func, strcmp_a15);
+  RETURN_FUNC(strcmp_func_t, strcmp_a15);
 }
+STRCMP_SHIM()
 
-typedef size_t strlen_func(const char* __s);
 DEFINE_IFUNC_FOR(strlen) {
-    switch(get_cpu_variant()) {
-        case kCortexA9:
-            RETURN_FUNC(strlen_func, strlen_a9);
-        default:
-            RETURN_FUNC(strlen_func, strlen_a15);
-    }
+  switch (get_cpu_variant()) {
+    case kCortexA9:
+      RETURN_FUNC(strlen_func_t, strlen_a9);
+    default:
+      RETURN_FUNC(strlen_func_t, strlen_a15);
+  }
 }
+STRLEN_SHIM()
 
 }  // extern "C"
diff --git a/libc/arch-arm64/bionic/__bionic_clone.S b/libc/arch-arm64/bionic/__bionic_clone.S
index e9932ad..581b47a 100644
--- a/libc/arch-arm64/bionic/__bionic_clone.S
+++ b/libc/arch-arm64/bionic/__bionic_clone.S
@@ -39,7 +39,7 @@
     svc     #0
 
     # Are we the child?
-    cbz     x0, .L_bc_child
+    cbz     x0, L(child)
 
     # Set errno if something went wrong.
     cmn     x0, #(MAX_ERRNO + 1)
@@ -48,7 +48,7 @@
 
     ret
 
-.L_bc_child:
+L(child):
     # We're in the child now. Set the end of the frame record chain.
     mov     x29, #0
     # Setting x30 to 0 will make the unwinder stop at __start_thread.
diff --git a/libc/arch-arm64/bionic/setjmp.S b/libc/arch-arm64/bionic/setjmp.S
index d787a56..c408998 100644
--- a/libc/arch-arm64/bionic/setjmp.S
+++ b/libc/arch-arm64/bionic/setjmp.S
@@ -95,21 +95,18 @@
   m_mangle_registers \reg, sp_reg=\sp_reg
 .endm
 
-ENTRY(setjmp)
-__BIONIC_WEAK_ASM_FOR_NATIVE_BRIDGE(setjmp)
+ENTRY_WEAK_FOR_NATIVE_BRIDGE(setjmp)
   mov w1, #1
   b sigsetjmp
 END(setjmp)
 
-ENTRY(_setjmp)
-__BIONIC_WEAK_ASM_FOR_NATIVE_BRIDGE(_setjmp)
+ENTRY_WEAK_FOR_NATIVE_BRIDGE(_setjmp)
   mov w1, #0
   b sigsetjmp
 END(_setjmp)
 
 // int sigsetjmp(sigjmp_buf env, int save_signal_mask);
-ENTRY(sigsetjmp)
-__BIONIC_WEAK_ASM_FOR_NATIVE_BRIDGE(sigsetjmp)
+ENTRY_WEAK_FOR_NATIVE_BRIDGE(sigsetjmp)
   paciasp
   .cfi_negate_ra_state
   stp x0, x30, [sp, #-16]!
@@ -185,8 +182,7 @@
 END(sigsetjmp)
 
 // void siglongjmp(sigjmp_buf env, int value);
-ENTRY(siglongjmp)
-__BIONIC_WEAK_ASM_FOR_NATIVE_BRIDGE(siglongjmp)
+ENTRY_WEAK_FOR_NATIVE_BRIDGE(siglongjmp)
   // Check the checksum before doing anything.
   m_calculate_checksum x12, x0, x2
   ldr x2, [x0, #(_JB_CHECKSUM * 8)]
@@ -205,6 +201,7 @@
   bic x2, x2, #1
   ldr x0, [x0, #(_JB_X30_SP  * 8 + 8)]
   eor x0, x0, x2
+  add x1, sp, #16
   bl memtag_handle_longjmp
 
   mov x1, x19 // Restore 'value'.
@@ -290,9 +287,7 @@
   ret
 END(siglongjmp)
 
-ALIAS_SYMBOL(longjmp, siglongjmp)
-__BIONIC_WEAK_ASM_FOR_NATIVE_BRIDGE(longjmp)
-ALIAS_SYMBOL(_longjmp, siglongjmp)
-__BIONIC_WEAK_ASM_FOR_NATIVE_BRIDGE(_longjmp)
+ALIAS_SYMBOL_WEAK_FOR_NATIVE_BRIDGE(longjmp, siglongjmp)
+ALIAS_SYMBOL_WEAK_FOR_NATIVE_BRIDGE(_longjmp, siglongjmp)
 
 NOTE_GNU_PROPERTY()
diff --git a/libc/arch-arm64/bionic/vfork.S b/libc/arch-arm64/bionic/vfork.S
index 9eb82d8..26ac255 100644
--- a/libc/arch-arm64/bionic/vfork.S
+++ b/libc/arch-arm64/bionic/vfork.S
@@ -31,8 +31,7 @@
 #include <asm/signal.h>
 #include <linux/sched.h>
 
-ENTRY(vfork)
-__BIONIC_WEAK_ASM_FOR_NATIVE_BRIDGE(vfork)
+ENTRY_WEAK_FOR_NATIVE_BRIDGE(vfork)
     // x9 = __get_tls()[TLS_SLOT_THREAD_ID]
     mrs     x9, tpidr_el0
     ldr     x9, [x9, #(TLS_SLOT_THREAD_ID * 8)]
@@ -42,10 +41,29 @@
     ldr     w10, [x9, #20]
     str     w0, [x9, #20]
 
-    // Clear vfork_child_stack_bottom_.
-    str     xzr, [x9, #776]
+    mov     x0, #SIGCHLD
 
-    mov     x0, #(CLONE_VM | CLONE_VFORK | SIGCHLD)
+    // If either HWASan or stack MTE is enabled, set up the clone() flags to
+    // make vfork() act like fork(). We don't call the atfork handlers, so we
+    // may deadlock if the child allocates, but we have seen badly written
+    // atfork handlers themselves cause deadlocks [1]. ndk_translation already
+    // implements vfork() as fork() without calling handlers, so we have some
+    // evidence that it isn't necessary to call them.
+    //
+    // POSIX.1 defines vfork() to have the same effect as fork() except that
+    // most behavior, including heap allocation, becomes undefined in the child,
+    // so we aren't violating POSIX by doing this.
+    //
+    // [1] https://cs.android.com/android/platform/superproject/+/master:system/extras/simpleperf/app_api/cpp/simpleperf.cpp;drc=788fa4183441f4977ddbd5a055e42a7fe7691d21;l=308
+#if !__has_feature(hwaddress_sanitizer)
+    // if (!__libc_globals->memtag_stack) x0 |= CLONE_VM | CLONE_VFORK;
+    adrp    x1, __libc_memtag_stack
+    ldrb    w1, [x1, :lo12:__libc_memtag_stack]
+    cbnz    w1, 1f
+    orr     x0, x0, #CLONE_VM
+    orr     x0, x0, #CLONE_VFORK
+1:
+#endif
     mov     x1, xzr
     mov     x2, xzr
     mov     x3, xzr
@@ -54,7 +72,7 @@
     mov     x8, __NR_clone
     svc     #0
 
-    cbz     x0, .L_exit
+    cbz     x0, L(done)
 
     // rc != 0: reset cached_pid_ and vforked_.
     str     w10, [x9, #20]
@@ -62,26 +80,7 @@
     cneg    x0, x0, hi
     b.hi    __set_errno_internal
 
-    // Clean up stack shadow in the parent process.
-    // https://github.com/google/sanitizers/issues/925
-    paciasp
-    .cfi_negate_ra_state
-    stp x0, x30, [sp, #-16]!
-    .cfi_adjust_cfa_offset 16
-    .cfi_rel_offset x0, 0
-    .cfi_rel_offset x30, 8
-
-    add x0, sp, #16
-    bl memtag_handle_vfork
-
-    ldp x0, x30, [sp], #16
-    .cfi_adjust_cfa_offset -16
-    .cfi_restore x0
-    .cfi_restore x30
-    autiasp
-    .cfi_negate_ra_state
-
-.L_exit:
+L(done):
     ret
 END(vfork)
 
diff --git a/libc/arch-arm64/dynamic_function_dispatch.cpp b/libc/arch-arm64/dynamic_function_dispatch.cpp
index cd55311..29e47b3 100644
--- a/libc/arch-arm64/dynamic_function_dispatch.cpp
+++ b/libc/arch-arm64/dynamic_function_dispatch.cpp
@@ -28,107 +28,147 @@
 
 #include <private/bionic_ifuncs.h>
 #include <stddef.h>
-#include <sys/auxv.h>
+
+static inline bool __bionic_is_oryon(unsigned long hwcap) {
+  if (!(hwcap & HWCAP_CPUID)) return false;
+
+  // Extract the implementor and variant bits from MIDR_EL1.
+  // https://www.kernel.org/doc/html/latest/arch/arm64/cpu-feature-registers.html#list-of-registers-with-visible-features
+  unsigned long midr;
+  __asm__ __volatile__("mrs %0, MIDR_EL1" : "=r"(midr));
+  uint16_t cpu = (midr >> 20) & 0xfff;
+
+  auto make_cpu = [](unsigned implementor, unsigned variant) {
+    return (implementor << 4) | variant;
+  };
+
+  // Check for implementor Qualcomm's variants 0x1..0x5 (Oryon).
+  return cpu >= make_cpu('Q', 0x1) && cpu <= make_cpu('Q', 0x5);
+}
 
 extern "C" {
 
-typedef void* memchr_func(const void*, int, size_t);
 DEFINE_IFUNC_FOR(memchr) {
-    if (arg->_hwcap2 & HWCAP2_MTE) {
-        RETURN_FUNC(memchr_func, __memchr_aarch64_mte);
-    } else {
-        RETURN_FUNC(memchr_func, __memchr_aarch64);
-    }
+  if (arg->_hwcap2 & HWCAP2_MTE) {
+    RETURN_FUNC(memchr_func_t, __memchr_aarch64_mte);
+  } else {
+    RETURN_FUNC(memchr_func_t, __memchr_aarch64);
+  }
 }
+MEMCHR_SHIM()
 
-typedef void* memcmp_func(void*, const void*, size_t);
 DEFINE_IFUNC_FOR(memcmp) {
-    // TODO: enable the SVE version.
-    RETURN_FUNC(memcmp_func, __memcmp_aarch64);
+  // TODO: enable the SVE version.
+  RETURN_FUNC(memcmp_func_t, __memcmp_aarch64);
 }
+MEMCMP_SHIM()
 
-typedef void* memcpy_func(void*, const void*, size_t);
 DEFINE_IFUNC_FOR(memcpy) {
-    if (arg->_hwcap & HWCAP_ASIMD) {
-        RETURN_FUNC(memcpy_func, __memcpy_aarch64_simd);
-    } else {
-        RETURN_FUNC(memcpy_func, __memcpy_aarch64);
-    }
+  if (arg->_hwcap2 & HWCAP2_MOPS) {
+    RETURN_FUNC(memcpy_func_t, __memmove_aarch64_mops);
+  } else if (__bionic_is_oryon(arg->_hwcap)) {
+    RETURN_FUNC(memcpy_func_t, __memcpy_aarch64_nt);
+  } else if (arg->_hwcap & HWCAP_ASIMD) {
+    RETURN_FUNC(memcpy_func_t, __memcpy_aarch64_simd);
+  } else {
+    RETURN_FUNC(memcpy_func_t, __memcpy_aarch64);
+  }
 }
+MEMCPY_SHIM()
 
-typedef void* memmove_func(void*, const void*, size_t);
 DEFINE_IFUNC_FOR(memmove) {
-    if (arg->_hwcap & HWCAP_ASIMD) {
-        RETURN_FUNC(memmove_func, __memmove_aarch64_simd);
-    } else {
-        RETURN_FUNC(memmove_func, __memmove_aarch64);
-    }
+  if (arg->_hwcap2 & HWCAP2_MOPS) {
+    RETURN_FUNC(memmove_func_t, __memmove_aarch64_mops);
+  } else if (__bionic_is_oryon(arg->_hwcap)) {
+    RETURN_FUNC(memmove_func_t, __memmove_aarch64_nt);
+  } else if (arg->_hwcap & HWCAP_ASIMD) {
+    RETURN_FUNC(memmove_func_t, __memmove_aarch64_simd);
+  } else {
+    RETURN_FUNC(memmove_func_t, __memmove_aarch64);
+  }
 }
+MEMMOVE_SHIM()
 
-typedef int stpcpy_func(char*, const char*);
+DEFINE_IFUNC_FOR(memrchr) {
+  RETURN_FUNC(memrchr_func_t, __memrchr_aarch64);
+}
+MEMRCHR_SHIM()
+
+DEFINE_IFUNC_FOR(memset) {
+  if (arg->_hwcap2 & HWCAP2_MOPS) {
+    RETURN_FUNC(memset_func_t, __memset_aarch64_mops);
+  } else if (__bionic_is_oryon(arg->_hwcap)) {
+    RETURN_FUNC(memset_func_t, __memset_aarch64_nt);
+  } else {
+    RETURN_FUNC(memset_func_t, __memset_aarch64);
+  }
+}
+MEMSET_SHIM()
+
 DEFINE_IFUNC_FOR(stpcpy) {
-    // TODO: enable the SVE version.
-    RETURN_FUNC(stpcpy_func, __stpcpy_aarch64);
+  // TODO: enable the SVE version.
+  RETURN_FUNC(stpcpy_func_t, __stpcpy_aarch64);
 }
+STPCPY_SHIM()
 
-typedef char* strchr_func(const char*, int);
 DEFINE_IFUNC_FOR(strchr) {
-    if (arg->_hwcap2 & HWCAP2_MTE) {
-        RETURN_FUNC(strchr_func, __strchr_aarch64_mte);
-    } else {
-        RETURN_FUNC(strchr_func, __strchr_aarch64);
-    }
+  if (arg->_hwcap2 & HWCAP2_MTE) {
+    RETURN_FUNC(strchr_func_t, __strchr_aarch64_mte);
+  } else {
+    RETURN_FUNC(strchr_func_t, __strchr_aarch64);
+  }
 }
+STRCHR_SHIM()
 
-typedef char* strchrnul_func(const char*, int);
 DEFINE_IFUNC_FOR(strchrnul) {
-    if (arg->_hwcap2 & HWCAP2_MTE) {
-        RETURN_FUNC(strchrnul_func, __strchrnul_aarch64_mte);
-    } else {
-        RETURN_FUNC(strchrnul_func, __strchrnul_aarch64);
-    }
+  if (arg->_hwcap2 & HWCAP2_MTE) {
+    RETURN_FUNC(strchrnul_func_t, __strchrnul_aarch64_mte);
+  } else {
+    RETURN_FUNC(strchrnul_func_t, __strchrnul_aarch64);
+  }
 }
+STRCHRNUL_SHIM()
 
-typedef int strcmp_func(const char*, const char*);
 DEFINE_IFUNC_FOR(strcmp) {
-    // TODO: enable the SVE version.
-    RETURN_FUNC(strcmp_func, __strcmp_aarch64);
+  // TODO: enable the SVE version.
+  RETURN_FUNC(strcmp_func_t, __strcmp_aarch64);
 }
+STRCMP_SHIM()
 
-typedef int strcpy_func(char*, const char*);
 DEFINE_IFUNC_FOR(strcpy) {
-    // TODO: enable the SVE version.
-    RETURN_FUNC(strcpy_func, __strcpy_aarch64);
+  // TODO: enable the SVE version.
+  RETURN_FUNC(strcpy_func_t, __strcpy_aarch64);
 }
+STRCPY_SHIM()
 
-typedef size_t strlen_func(const char*);
 DEFINE_IFUNC_FOR(strlen) {
-    if (arg->_hwcap2 & HWCAP2_MTE) {
-        RETURN_FUNC(strlen_func, __strlen_aarch64_mte);
-    } else {
-        RETURN_FUNC(strlen_func, __strlen_aarch64);
-    }
+  if (arg->_hwcap2 & HWCAP2_MTE) {
+    RETURN_FUNC(strlen_func_t, __strlen_aarch64_mte);
+  } else {
+    RETURN_FUNC(strlen_func_t, __strlen_aarch64);
+  }
 }
+STRLEN_SHIM()
 
-typedef int strncmp_func(const char*, const char*, int);
 DEFINE_IFUNC_FOR(strncmp) {
-    // TODO: enable the SVE version.
-    RETURN_FUNC(strncmp_func, __strncmp_aarch64);
+  // TODO: enable the SVE version.
+  RETURN_FUNC(strncmp_func_t, __strncmp_aarch64);
 }
+STRNCMP_SHIM()
 
-typedef size_t strnlen_func(const char*);
 DEFINE_IFUNC_FOR(strnlen) {
-    // TODO: enable the SVE version.
-    RETURN_FUNC(strnlen_func, __strnlen_aarch64);
+  // TODO: enable the SVE version.
+  RETURN_FUNC(strnlen_func_t, __strnlen_aarch64);
 }
+STRNLEN_SHIM()
 
-typedef char* strrchr_func(const char*, int);
 DEFINE_IFUNC_FOR(strrchr) {
-    if (arg->_hwcap2 & HWCAP2_MTE) {
-        RETURN_FUNC(strrchr_func, __strrchr_aarch64_mte);
-    } else {
-        RETURN_FUNC(strrchr_func, __strrchr_aarch64);
-    }
+  if (arg->_hwcap2 & HWCAP2_MTE) {
+    RETURN_FUNC(strrchr_func_t, __strrchr_aarch64_mte);
+  } else {
+    RETURN_FUNC(strrchr_func_t, __strrchr_aarch64);
+  }
 }
+STRRCHR_SHIM()
 
 }  // extern "C"
diff --git a/libc/arch-arm64/oryon/memcpy-nt.S b/libc/arch-arm64/oryon/memcpy-nt.S
new file mode 100644
index 0000000..46f1541
--- /dev/null
+++ b/libc/arch-arm64/oryon/memcpy-nt.S
@@ -0,0 +1,351 @@
+/*
+ * memcpy - copy memory area
+ *
+ * Copyright (c) 2012-2022, Arm Limited.
+ * Copyright (c) 2024 Qualcomm Innovation Center, Inc. All rights reserved.
+ * SPDX-License-Identifier: MIT OR Apache-2.0 WITH LLVM-exception
+ */
+
+/* Assumptions:
+ *
+ * ARMv8-a, AArch64, unaligned accesses.
+ *
+ */
+
+#include <private/bionic_asm.h>
+
+#define dstin     x0
+#define src       x1
+#define count     x2
+#define dst       x3
+#define srcend    x4
+#define dstend    x5
+#define A_l       x6
+#define A_lw      w6
+#define A_h       x7
+#define B_l       x8
+#define B_lw      w8
+#define B_h       x9
+#define C_l       x10
+#define C_lw      w10
+#define C_h       x11
+#define D_l       x12
+#define D_h       x13
+#define E_l       x14
+#define E_h       x15
+#define F_l       x16
+#define F_h       x17
+#define G_l       count
+#define G_h       dst
+#define H_l       src
+#define H_h       srcend
+#define tmp1      x14
+#define tmp2      x16
+#define SMALL_BUFFER_SIZE    48
+
+/* This implementation handles overlaps and supports both memcpy and memmove
+   from a single entry point.  It uses unaligned accesses and branchless
+   sequences to keep the code small, simple and improve performance.
+
+   Copies are split into 3 main cases: small copies of up to 32 bytes, medium
+   copies of up to 128 bytes, and large copies.  The overhead of the overlap
+   check is negligible since it is only required for large copies.
+
+   Large copies use a software pipelined loop processing 64 bytes per iteration.
+   The destination pointer is 16-byte aligned to minimize unaligned accesses.
+   The loop tail is handled by always copying 64 bytes from the end.
+*/
+
+ALIAS_SYMBOL (__memmove_aarch64_nt, __memcpy_aarch64_nt)
+ENTRY (__memcpy_aarch64_nt)
+
+    add    srcend, src, count
+    add    dstend, dstin, count
+    cmp    count, 128
+    b.hi    L(copy_long)
+    cmp    count, 32
+    b.hi    L(copy32_128)
+
+    /* Small copies: 0..32 bytes.  */
+    cmp    count, 16
+    b.lo    L(copy16)
+    ldp    A_l, A_h, [src]
+    ldp    D_l, D_h, [srcend, -16]
+    stp    A_l, A_h, [dstin]
+    stp    D_l, D_h, [dstend, -16]
+    ret
+
+    /* Copy 8-15 bytes.  */
+L(copy16):
+    tbz    count, 3, L(copy8)
+    ldr    A_l, [src]
+    ldr    A_h, [srcend, -8]
+    str    A_l, [dstin]
+    str    A_h, [dstend, -8]
+    ret
+
+    .p2align 3
+    /* Copy 4-7 bytes.  */
+L(copy8):
+    tbz    count, 2, L(copy4)
+    ldr    A_lw, [src]
+    ldr    B_lw, [srcend, -4]
+    str    A_lw, [dstin]
+    str    B_lw, [dstend, -4]
+    ret
+
+    /* Copy 0..3 bytes using a branchless sequence.  */
+L(copy4):
+    cbz    count, L(copy0)
+    lsr    tmp1, count, 1
+    ldrb    A_lw, [src]
+    ldrb    C_lw, [srcend, -1]
+    ldrb    B_lw, [src, tmp1]
+    strb    A_lw, [dstin]
+    strb    B_lw, [dstin, tmp1]
+    strb    C_lw, [dstend, -1]
+L(copy0):
+    ret
+
+    .p2align 4
+    /* Medium copies: 33..128 bytes.  */
+L(copy32_128):
+    ldp    A_l, A_h, [src]
+    ldp    B_l, B_h, [src, 16]
+    ldp    C_l, C_h, [srcend, -32]
+    ldp    D_l, D_h, [srcend, -16]
+    cmp    count, 64
+    b.hi    L(copy128)
+    stp    A_l, A_h, [dstin]
+    stp    B_l, B_h, [dstin, 16]
+    stp    C_l, C_h, [dstend, -32]
+    stp    D_l, D_h, [dstend, -16]
+    ret
+
+    .p2align 4
+    /* Copy 65..128 bytes.  */
+L(copy128):
+    ldp    E_l, E_h, [src, 32]
+    ldp    F_l, F_h, [src, 48]
+    cmp    count, 96
+    b.ls    L(copy96)
+    ldp    G_l, G_h, [srcend, -64]
+    ldp    H_l, H_h, [srcend, -48]
+    stp    G_l, G_h, [dstend, -64]
+    stp    H_l, H_h, [dstend, -48]
+L(copy96):
+    stp    A_l, A_h, [dstin]
+    stp    B_l, B_h, [dstin, 16]
+    stp    E_l, E_h, [dstin, 32]
+    stp    F_l, F_h, [dstin, 48]
+    stp    C_l, C_h, [dstend, -32]
+    stp    D_l, D_h, [dstend, -16]
+    ret
+
+    .p2align 4
+    /* Copy more than 128 bytes.  */
+L(copy_long):
+    mov tmp2, #SMALL_BUFFER_SIZE
+    cmp count, tmp2, LSL#10
+    bgt L(copy_long_nt)
+    /* Use backwards copy if there is an overlap.  */
+    sub    tmp1, dstin, src
+    cbz    tmp1, L(copy0)
+    cmp    tmp1, count
+    b.lo    L(copy_long_backwards)
+
+    /* Copy 16 bytes and then align dst to 16-byte alignment.  */
+
+    ldp    D_l, D_h, [src]
+    and    tmp1, dstin, 15
+    bic    dst, dstin, 15
+    sub    src, src, tmp1
+    add    count, count, tmp1    /* Count is now 16 too large.  */
+    ldp    A_l, A_h, [src, 16]
+    stp    D_l, D_h, [dstin]
+    ldp    B_l, B_h, [src, 32]
+    ldp    C_l, C_h, [src, 48]
+    ldp    D_l, D_h, [src, 64]!
+    subs    count, count, 128 + 16    /* Test and readjust count.  */
+    b.ls    L(copy64_from_end)
+
+L(loop64):
+    stp    A_l, A_h, [dst, 16]
+    ldp    A_l, A_h, [src, 16]
+    stp    B_l, B_h, [dst, 32]
+    ldp    B_l, B_h, [src, 32]
+    stp    C_l, C_h, [dst, 48]
+    ldp    C_l, C_h, [src, 48]
+    stp    D_l, D_h, [dst, 64]!
+    ldp    D_l, D_h, [src, 64]!
+    subs    count, count, 64
+    b.hi    L(loop64)
+
+    /* Write the last iteration and copy 64 bytes from the end.  */
+L(copy64_from_end):
+    ldp    E_l, E_h, [srcend, -64]
+    stp    A_l, A_h, [dst, 16]
+    ldp    A_l, A_h, [srcend, -48]
+    stp    B_l, B_h, [dst, 32]
+    ldp    B_l, B_h, [srcend, -32]
+    stp    C_l, C_h, [dst, 48]
+    ldp    C_l, C_h, [srcend, -16]
+    stp    D_l, D_h, [dst, 64]
+    stp    E_l, E_h, [dstend, -64]
+    stp    A_l, A_h, [dstend, -48]
+    stp    B_l, B_h, [dstend, -32]
+    stp    C_l, C_h, [dstend, -16]
+    ret
+
+    .p2align 4
+
+    /* Large backwards copy for overlapping copies.
+       Copy 16 bytes and then align dst to 16-byte alignment.  */
+L(copy_long_backwards):
+    ldp    D_l, D_h, [srcend, -16]
+    and    tmp1, dstend, 15
+    sub    srcend, srcend, tmp1
+    sub    count, count, tmp1
+    ldp    A_l, A_h, [srcend, -16]
+    stp    D_l, D_h, [dstend, -16]
+    ldp    B_l, B_h, [srcend, -32]
+    ldp    C_l, C_h, [srcend, -48]
+    ldp    D_l, D_h, [srcend, -64]!
+    sub    dstend, dstend, tmp1
+    subs    count, count, 128
+    b.ls    L(copy64_from_start)
+
+L(loop64_backwards):
+    stp    A_l, A_h, [dstend, -16]
+    ldp    A_l, A_h, [srcend, -16]
+    stp    B_l, B_h, [dstend, -32]
+    ldp    B_l, B_h, [srcend, -32]
+    stp    C_l, C_h, [dstend, -48]
+    ldp    C_l, C_h, [srcend, -48]
+    stp    D_l, D_h, [dstend, -64]!
+    ldp    D_l, D_h, [srcend, -64]!
+    subs    count, count, 64
+    b.hi    L(loop64_backwards)
+
+    /* Write the last iteration and copy 64 bytes from the start.  */
+L(copy64_from_start):
+    ldp    G_l, G_h, [src, 48]
+    stp    A_l, A_h, [dstend, -16]
+    ldp    A_l, A_h, [src, 32]
+    stp    B_l, B_h, [dstend, -32]
+    ldp    B_l, B_h, [src, 16]
+    stp    C_l, C_h, [dstend, -48]
+    ldp    C_l, C_h, [src]
+    stp    D_l, D_h, [dstend, -64]
+    stp    G_l, G_h, [dstin, 48]
+    stp    A_l, A_h, [dstin, 32]
+    stp    B_l, B_h, [dstin, 16]
+    stp    C_l, C_h, [dstin]
+    ret
+
+    .p2align 4
+    /* Copy more than 48 KB using ldnp+stnp (non-temporal) instructions.  */
+L(copy_long_nt):
+    /* Use backwards copy if there is an overlap.  */
+    sub    tmp1, dstin, src
+    cbz    tmp1, L(copy0)
+    cmp    tmp1, count
+    b.lo    L(copy_long_backwards_nt)
+
+    /* Copy 16 bytes and then align dst to 16-byte alignment.  */
+
+    ldnp    D_l, D_h, [src]
+    and    tmp1, dstin, 15
+    bic    dst, dstin, 15
+    sub    src, src, tmp1
+    add    count, count, tmp1    /* Count is now 16 too large.  */
+    ldnp    A_l, A_h, [src, 16]
+    stnp    D_l, D_h, [dstin]
+    ldnp    B_l, B_h, [src, 32]
+    ldnp    C_l, C_h, [src, 48]
+    ldnp    D_l, D_h, [src, 64]
+    add     src, src, #64
+    subs    count, count, 128 + 16    /* Test and readjust count.  */
+    b.ls    L(copy64_from_end_nt)
+
+L(loop64_nt):
+    stnp    A_l, A_h, [dst, 16]
+    ldnp    A_l, A_h, [src, 16]
+    stnp    B_l, B_h, [dst, 32]
+    ldnp    B_l, B_h, [src, 32]
+    stnp    C_l, C_h, [dst, 48]
+    ldnp    C_l, C_h, [src, 48]
+    stnp    D_l, D_h, [dst, 64]
+    add dst, dst, #64
+    ldnp    D_l, D_h, [src, 64]
+    add src, src, #64
+    subs    count, count, 64
+    b.hi    L(loop64_nt)
+
+    /* Write the last iteration and copy 64 bytes from the end.  */
+L(copy64_from_end_nt):
+    ldnp    E_l, E_h, [srcend, -64]
+    stnp    A_l, A_h, [dst, 16]
+    ldnp    A_l, A_h, [srcend, -48]
+    stnp    B_l, B_h, [dst, 32]
+    ldnp    B_l, B_h, [srcend, -32]
+    stnp    C_l, C_h, [dst, 48]
+    ldnp    C_l, C_h, [srcend, -16]
+    stnp    D_l, D_h, [dst, 64]
+    stnp    E_l, E_h, [dstend, -64]
+    stnp    A_l, A_h, [dstend, -48]
+    stnp    B_l, B_h, [dstend, -32]
+    stnp    C_l, C_h, [dstend, -16]
+    ret
+
+    .p2align 4
+
+    /* Large backwards copy for overlapping copies.
+       Copy 16 bytes and then align dst to 16-byte alignment.  */
+L(copy_long_backwards_nt):
+    ldnp    D_l, D_h, [srcend, -16]
+    and    tmp1, dstend, 15
+    sub    srcend, srcend, tmp1
+    sub    count, count, tmp1
+    ldnp    A_l, A_h, [srcend, -16]
+    stnp    D_l, D_h, [dstend, -16]
+    ldnp    B_l, B_h, [srcend, -32]
+    ldnp    C_l, C_h, [srcend, -48]
+    ldnp    D_l, D_h, [srcend, -64]
+    add     srcend, srcend, #-64
+    sub    dstend, dstend, tmp1
+    subs    count, count, 128
+    b.ls    L(copy64_from_start_nt)
+
+L(loop64_backwards_nt):
+    stnp    A_l, A_h, [dstend, -16]
+    ldnp    A_l, A_h, [srcend, -16]
+    stnp    B_l, B_h, [dstend, -32]
+    ldnp    B_l, B_h, [srcend, -32]
+    stnp    C_l, C_h, [dstend, -48]
+    ldnp    C_l, C_h, [srcend, -48]
+    stnp    D_l, D_h, [dstend, -64]
+    add     dstend, dstend, #-64
+    ldnp    D_l, D_h, [srcend, -64]
+    add     srcend, srcend, #-64
+    subs    count, count, 64
+    b.hi    L(loop64_backwards_nt)
+
+    /* Write the last iteration and copy 64 bytes from the start.  */
+L(copy64_from_start_nt):
+    ldnp    G_l, G_h, [src, 48]
+    stnp    A_l, A_h, [dstend, -16]
+    ldnp    A_l, A_h, [src, 32]
+    stnp    B_l, B_h, [dstend, -32]
+    ldnp    B_l, B_h, [src, 16]
+    stnp    C_l, C_h, [dstend, -48]
+    ldnp    C_l, C_h, [src]
+    stnp    D_l, D_h, [dstend, -64]
+    stnp    G_l, G_h, [dstin, 48]
+    stnp    A_l, A_h, [dstin, 32]
+    stnp    B_l, B_h, [dstin, 16]
+    stnp    C_l, C_h, [dstin]
+    ret
+
+END (__memcpy_aarch64_nt)
+
diff --git a/libc/arch-arm64/oryon/memset-nt.S b/libc/arch-arm64/oryon/memset-nt.S
new file mode 100644
index 0000000..b91e7da
--- /dev/null
+++ b/libc/arch-arm64/oryon/memset-nt.S
@@ -0,0 +1,218 @@
+/* Copyright (c) 2012, Linaro Limited
+   All rights reserved.
+   Copyright (c) 2024 Qualcomm Innovation Center, Inc. All rights reserved.
+   Redistribution and use in source and binary forms, with or without
+   modification, are permitted provided that the following conditions are met:
+       * Redistributions of source code must retain the above copyright
+         notice, this list of conditions and the following disclaimer.
+       * Redistributions in binary form must reproduce the above copyright
+         notice, this list of conditions and the following disclaimer in the
+         documentation and/or other materials provided with the distribution.
+       * Neither the name of the Linaro nor the
+         names of its contributors may be used to endorse or promote products
+         derived from this software without specific prior written permission.
+   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+   "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+   A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+   HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+   SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+   LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+   DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+   THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+   (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+   OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+/* Assumptions:
+ *
+ * ARMv8-a, AArch64
+ * Unaligned accesses
+ *
+ */
+#include <private/bionic_asm.h>
+
+#define dstin		x0
+#define val		    w1
+#define count		x2
+#define tmp1		x3
+#define tmp1w		w3
+#define tmp2		x4
+#define tmp2w		w4
+#define zva_len_x	x5
+#define zva_len		w5
+#define zva_bits_x	x6
+#define A_l		    x7
+#define A_lw		w7
+#define dst		    x8
+#define tmp3w		w9
+#define tmp4        x10
+#define SMALL_BUFFER_SIZE    96
+
+ENTRY(__memset_aarch64_nt)
+    mov	dst, dstin		/* Preserve return value.  */
+    ands	A_lw, val, #255
+    b.eq	.Lzero_mem  /* Use DC ZVA instruction if the val = 0 */
+    orr	A_lw, A_lw, A_lw, lsl #8
+    orr	A_lw, A_lw, A_lw, lsl #16
+    orr	A_l, A_l, A_l, lsl #32
+.Ltail_maybe_long:
+    cmp	count, #64
+    b.ge	.Lnot_short
+.Ltail_maybe_tiny:
+    cmp	count, #15
+    b.le	.Ltail15tiny
+.Ltail63:
+    ands	tmp1, count, #0x30
+    b.eq	.Ltail15
+    add	dst, dst, tmp1
+    cmp	tmp1w, #0x20
+    b.eq	1f
+    b.lt	2f
+    stp	A_l, A_l, [dst, #-48]
+1:
+    stp	A_l, A_l, [dst, #-32]
+2:
+    stp	A_l, A_l, [dst, #-16]
+.Ltail15:
+    and	count, count, #15
+    add	dst, dst, count
+    stp	A_l, A_l, [dst, #-16]	/* Repeat some/all of last store. */
+    ret
+.Ltail15tiny:
+    /* Set up to 15 bytes.  Does not assume earlier memory
+       being set.  */
+    tbz	count, #3, 1f
+    str	A_l, [dst], #8
+1:
+    tbz	count, #2, 1f
+    str	A_lw, [dst], #4
+1:
+    tbz	count, #1, 1f
+    strh	A_lw, [dst], #2
+1:
+    tbz	count, #0, 1f
+    strb	A_lw, [dst]
+1:
+    ret
+    /* Critical loop.  Start at a new cache line boundary.  Assuming
+     * 64 bytes per line, this ensures the entire loop is in one line.  */
+    .p2align 6
+.Lnot_short:
+    mov tmp4, #SMALL_BUFFER_SIZE
+    cmp count, tmp4, LSL#10
+    /* Use non-temporal instruction if count > SMALL_BUFFER_SIZE */
+    bgt L(not_short_nt)
+    neg	tmp2, dst
+    ands	tmp2, tmp2, #15
+    b.eq	2f
+    /* Bring DST to 128-bit (16-byte) alignment.  We know that there's
+     * more than that to set, so we simply store 16 bytes and advance by
+     * the amount required to reach alignment.  */
+    sub	count, count, tmp2
+    stp	A_l, A_l, [dst]
+    add	dst, dst, tmp2
+    /* There may be less than 63 bytes to go now.  */
+    cmp	count, #63
+    b.le	.Ltail63
+2:
+    sub	dst, dst, #16		/* Pre-bias.  */
+    sub	count, count, #64
+1:
+    stp	A_l, A_l, [dst, #16]
+    stp	A_l, A_l, [dst, #32]
+    stp	A_l, A_l, [dst, #48]
+    stp	A_l, A_l, [dst, #64]!
+    subs	count, count, #64
+    b.ge	1b
+    tst	count, #0x3f
+    add	dst, dst, #16
+    b.ne	.Ltail63
+    ret
+.Lnot_short_nt:
+    neg	tmp2, dst
+    ands	tmp2, tmp2, #15
+    b.eq	2f
+    /* Bring DST to 128-bit (16-byte) alignment.  We know that there's
+     * more than that to set, so we simply store 16 bytes and advance by
+     * the amount required to reach alignment.  */
+    sub	count, count, tmp2
+    stnp	A_l, A_l, [dst]
+    add	dst, dst, tmp2
+    /* There may be less than 63 bytes to go now.  */
+    cmp	count, #63
+    b.le	.Ltail63
+2:
+    sub	dst, dst, #16		/* Pre-bias.  */
+    sub	count, count, #64
+1:
+    stnp	A_l, A_l, [dst, #16]
+    stnp	A_l, A_l, [dst, #32]
+    stnp	A_l, A_l, [dst, #48]
+    stnp	A_l, A_l, [dst, #64]
+    add     dst, dst, #64
+    subs	count, count, #64
+    b.ge	1b
+    tst	count, #0x3f
+    add	dst, dst, #16
+    b.ne	.Ltail63
+    ret
+.Lzero_mem:
+    mov	A_l, #0
+    cmp	count, #63
+    b.le	.Ltail_maybe_tiny
+    neg	tmp2, dst
+    ands	tmp2, tmp2, #15
+    b.eq	1f
+    sub	count, count, tmp2
+    stp	A_l, A_l, [dst]
+    add	dst, dst, tmp2
+    cmp	count, #63
+    b.le	.Ltail63
+1:
+    /* For zeroing small amounts of memory, it's not worth setting up
+     * the line-clear code.  */
+    cmp	count, #128
+    b.lt	.Lnot_short
+    mrs	tmp1, dczid_el0
+    tbnz	tmp1, #4, .Lnot_short
+    mov	tmp3w, #4
+    and	zva_len, tmp1w, #15	/* Safety: other bits reserved.  */
+    lsl	zva_len, tmp3w, zva_len
+.Lzero_by_line:
+    /* Compute how far we need to go to become suitably aligned.  We're
+     * already at quad-word alignment.  */
+    cmp	count, zva_len_x
+    b.lt	.Lnot_short		/* Not enough to reach alignment.  */
+    sub	zva_bits_x, zva_len_x, #1
+    neg	tmp2, dst
+    ands	tmp2, tmp2, zva_bits_x
+    b.eq	1f			/* Already aligned.  */
+    /* Not aligned, check that there's enough to copy after alignment.  */
+    sub	tmp1, count, tmp2
+    cmp	tmp1, #64
+    ccmp	tmp1, zva_len_x, #8, ge	/* NZCV=0b1000 */
+    b.lt	.Lnot_short
+    /* We know that there's at least 64 bytes to zero and that it's safe
+     * to overrun by 64 bytes.  */
+    mov	count, tmp1
+2:
+    stp	A_l, A_l, [dst]
+    stp	A_l, A_l, [dst, #16]
+    stp	A_l, A_l, [dst, #32]
+    subs	tmp2, tmp2, #64
+    stp	A_l, A_l, [dst, #48]
+    add	dst, dst, #64
+    b.ge	2b
+    /* We've overrun a bit, so adjust dst downwards.  */
+    add	dst, dst, tmp2
+1:
+    sub	count, count, zva_len_x
+3:
+    dc	zva, dst
+    add	dst, dst, zva_len_x
+    subs	count, count, zva_len_x
+    b.ge	3b
+    ands	count, count, zva_bits_x
+    b.ne	.Ltail_maybe_long
+    ret
+END(__memset_aarch64_nt)
diff --git a/libc/arch-arm64/static_function_dispatch.S b/libc/arch-arm64/static_function_dispatch.S
deleted file mode 100644
index c7557f8..0000000
--- a/libc/arch-arm64/static_function_dispatch.S
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * Copyright (C) 2019 The Android Open Source Project
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *  * Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- *  * Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in
- *    the documentation and/or other materials provided with the
- *    distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
- * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#include <private/bionic_asm.h>
-
-#define FUNCTION_DELEGATE(name, impl) \
-ENTRY(name); \
-    b impl; \
-END(name)
-
-FUNCTION_DELEGATE(memchr, __memchr_aarch64_mte)
-FUNCTION_DELEGATE(memcmp, __memcmp_aarch64)
-FUNCTION_DELEGATE(memcpy, __memcpy_aarch64)
-FUNCTION_DELEGATE(memmove, __memmove_aarch64)
-FUNCTION_DELEGATE(stpcpy, __stpcpy_aarch64)
-FUNCTION_DELEGATE(strchr, __strchr_aarch64_mte)
-FUNCTION_DELEGATE(strchrnul, __strchrnul_aarch64_mte)
-FUNCTION_DELEGATE(strcmp, __strcmp_aarch64)
-FUNCTION_DELEGATE(strcpy, __strcpy_aarch64)
-FUNCTION_DELEGATE(strlen, __strlen_aarch64_mte)
-FUNCTION_DELEGATE(strrchr, __strrchr_aarch64_mte)
-FUNCTION_DELEGATE(strncmp, __strncmp_aarch64)
-FUNCTION_DELEGATE(strnlen, __strnlen_aarch64)
-
-NOTE_GNU_PROPERTY()
diff --git a/libc/arch-arm64/string/__memcpy_chk.S b/libc/arch-arm64/string/__memcpy_chk.S
index a8e9e83..c9fc2f7 100644
--- a/libc/arch-arm64/string/__memcpy_chk.S
+++ b/libc/arch-arm64/string/__memcpy_chk.S
@@ -31,10 +31,10 @@
 ENTRY(__memcpy_chk)
   cmp x2, x3
   // Direct b.ls memcpy may not have enough range
-  b.hi .L_memcpy_chk_fail
+  b.hi L(__memcpy_chk_fail_trampoline)
   b memcpy
 
-.L_memcpy_chk_fail:
+L(__memcpy_chk_fail_trampoline):
   // Preserve for accurate backtrace.
   stp x29, x30, [sp, -16]!
   .cfi_def_cfa_offset 16
diff --git a/libc/arch-arm64/string/__memset_chk.S b/libc/arch-arm64/string/__memset_chk.S
index e1e29d0..7a105ce 100644
--- a/libc/arch-arm64/string/__memset_chk.S
+++ b/libc/arch-arm64/string/__memset_chk.S
@@ -31,10 +31,10 @@
 ENTRY(__memset_chk)
   cmp x2, x3
   // Direct b.ls memcpy may not have enough range
-  b.hi .L_memset_chk_fail
+  b.hi L(__memset_chk_fail_trampoline)
   b memset
 
-.L_memset_chk_fail:
+L(__memset_chk_fail_trampoline):
   // Preserve for accurate backtrace.
   stp x29, x30, [sp, -16]!
   .cfi_def_cfa_offset 16
diff --git a/libm/fenv-access.h b/libc/arch-common/bionic/crt_pad_segment.S
similarity index 63%
copy from libm/fenv-access.h
copy to libc/arch-common/bionic/crt_pad_segment.S
index 7acb34d..2fbe0b9 100644
--- a/libm/fenv-access.h
+++ b/libc/arch-common/bionic/crt_pad_segment.S
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2021 The Android Open Source Project
+ * Copyright (C) 2024 The Android Open Source Project
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -26,8 +26,28 @@
  * SUCH DAMAGE.
  */
 
-#pragma once
+#if defined(__aarch64__)
+#include <private/bionic_asm_arm64.h>
 
-#if defined(__x86_64__) || defined(__i386__)
-#pragma STDC FENV_ACCESS ON
+__bionic_asm_custom_note_gnu_section()
 #endif
+
+#include <private/bionic_asm_note.h>
+
+  .section ".note.android.pad_segment", "a", %note
+  .balign 4
+  .long 1f - 0f                       // int32_t namesz
+  .long 3f - 2f                       // int32_t descsz
+  .long NT_ANDROID_TYPE_PAD_SEGMENT   // int32_t type
+0:
+  .asciz "Android"                    // char name[]
+1:
+  .balign 2
+2:
+  .long 1    // 1 indicates to pad p_filesz/p_memsz,
+             // such that the current segment ends
+             // where the next segment begins.
+             // If/when padding becomes the default,
+             // 0 can be used to disable this behavior.
+3:
+  .balign 2
diff --git a/libc/arch-common/bionic/crtbegin.c b/libc/arch-common/bionic/crtbegin.c
index b87db64..127896a 100644
--- a/libc/arch-common/bionic/crtbegin.c
+++ b/libc/arch-common/bionic/crtbegin.c
@@ -30,17 +30,53 @@
 #include <stddef.h>
 #include <stdint.h>
 
-#define SECTION(name) __attribute__((__section__(name)))
-SECTION(".preinit_array") init_func_t* __PREINIT_ARRAY__ = (init_func_t*)-1;
-SECTION(".init_array.0") init_func_t* __INIT_ARRAY__ = (init_func_t*)-1;
-SECTION(".fini_array.0") fini_func_t* __FINI_ARRAY__ = (fini_func_t*)-1;
-#undef SECTION
+extern init_func_t* __preinit_array_start[];
+extern init_func_t* __preinit_array_end[];
+extern init_func_t* __init_array_start[];
+extern init_func_t* __init_array_end[];
+extern fini_func_t* __fini_array_start[];
+extern fini_func_t* __fini_array_end[];
+
+#if !defined(CRTBEGIN_STATIC)
+/* This function will be called during normal program termination
+ * to run the destructors that are listed in the .fini_array section
+ * of the executable, if any.
+ *
+ * 'fini_array' points to a list of function addresses.
+ */
+static void call_fini_array() {
+  fini_func_t** array = __fini_array_start;
+  size_t count = __fini_array_end - __fini_array_start;
+  // Call fini functions in reverse order.
+  while (count-- > 0) {
+    fini_func_t* function = array[count];
+    (*function)();
+  }
+}
+
+// libc.so needs fini_array with sentinels. So create a fake fini_array with sentinels.
+// It contains a function to call functions in real fini_array.
+static fini_func_t* fini_array_with_sentinels[] = {
+    (fini_func_t*)-1,
+    &call_fini_array,
+    (fini_func_t*)0,
+};
+#endif  // !defined(CRTBEGIN_STATIC)
 
 __used static void _start_main(void* raw_args) {
-  structors_array_t array;
-  array.preinit_array = &__PREINIT_ARRAY__;
-  array.init_array = &__INIT_ARRAY__;
-  array.fini_array = &__FINI_ARRAY__;
+  structors_array_t array = {};
+#if defined(CRTBEGIN_STATIC)
+  array.preinit_array = __preinit_array_start;
+  array.preinit_array_count = __preinit_array_end - __preinit_array_start;
+  array.init_array = __init_array_start;
+  array.init_array_count = __init_array_end - __init_array_start;
+  array.fini_array = __fini_array_start;
+  array.fini_array_count = __fini_array_end - __fini_array_start;
+#else
+  if (__fini_array_end - __fini_array_start > 0) {
+    array.fini_array = fini_array_with_sentinels;
+  }
+#endif  // !defined(CRTBEGIN_STATIC)
 
   __libc_init(raw_args, NULL, &main, &array);
 }
diff --git a/libc/arch-common/bionic/crtend.S b/libc/arch-common/bionic/crtend.S
index 49c729f..74b3aa9 100644
--- a/libc/arch-common/bionic/crtend.S
+++ b/libc/arch-common/bionic/crtend.S
@@ -34,18 +34,6 @@
 __bionic_asm_custom_note_gnu_section()
 #endif
 
-	.section .preinit_array, "aw"
-	ASM_ALIGN_TO_PTR_SIZE
-	ASM_PTR_SIZE(0)
-
-	.section .init_array, "aw"
-	ASM_ALIGN_TO_PTR_SIZE
-	ASM_PTR_SIZE(0)
-
-	.section .fini_array, "aw"
-	ASM_ALIGN_TO_PTR_SIZE
-	ASM_PTR_SIZE(0)
-
 	.section .note.GNU-stack, "", %progbits
 
 #if !defined(__arm__)
diff --git a/libc/arch-riscv64/bionic/__bionic_clone.S b/libc/arch-riscv64/bionic/__bionic_clone.S
index 2827857..be386b1 100644
--- a/libc/arch-riscv64/bionic/__bionic_clone.S
+++ b/libc/arch-riscv64/bionic/__bionic_clone.S
@@ -41,19 +41,19 @@
   ecall
 
   # Are we the child?
-  beqz a0, .L_bc_child
+  beqz a0, L(child)
 
   # Did the clone(2) fail?
-  bltz a0, .L_bc_failure
+  bltz a0, L(failure)
   # Nope, we're the parent, and our work here is done.
   ret
 
-.L_bc_failure:
+L(failure):
   # Set errno if something went wrong.
   neg a0, a0
   tail __set_errno_internal
 
-.L_bc_child:
+L(child):
   # We're in the child now. Set the end of the frame record chain.
   li fp, 0
   # Setting ra to 0 will make the unwinder stop at __start_thread.
diff --git a/libc/arch-riscv64/bionic/setjmp.S b/libc/arch-riscv64/bionic/setjmp.S
index 26f7ec9..5de1099 100644
--- a/libc/arch-riscv64/bionic/setjmp.S
+++ b/libc/arch-riscv64/bionic/setjmp.S
@@ -107,21 +107,18 @@
   m_mangle_registers \reg, sp_reg=\sp_reg
 .endm
 
-ENTRY(setjmp)
-__BIONIC_WEAK_ASM_FOR_NATIVE_BRIDGE(setjmp)
+ENTRY_WEAK_FOR_NATIVE_BRIDGE(setjmp)
   li a1, 1
   tail sigsetjmp
 END(setjmp)
 
-ENTRY(_setjmp)
-__BIONIC_WEAK_ASM_FOR_NATIVE_BRIDGE(_setjmp)
+ENTRY_WEAK_FOR_NATIVE_BRIDGE(_setjmp)
   li a1, 0
   tail sigsetjmp
 END(_setjmp)
 
 // int sigsetjmp(sigjmp_buf env, int save_signal_mask);
-ENTRY(sigsetjmp)
-__BIONIC_WEAK_ASM_FOR_NATIVE_BRIDGE(sigsetjmp)
+ENTRY_WEAK_FOR_NATIVE_BRIDGE(sigsetjmp)
   addi sp, sp, -24
   sd a0, 0(sp)
   sd a1, 8(sp)
@@ -204,12 +201,11 @@
 END(sigsetjmp)
 
 // void siglongjmp(sigjmp_buf env, int value);
-ENTRY(siglongjmp)
-__BIONIC_WEAK_ASM_FOR_NATIVE_BRIDGE(siglongjmp)
+ENTRY_WEAK_FOR_NATIVE_BRIDGE(siglongjmp)
   // Check the checksum before doing anything.
   m_calculate_checksum t0, a0, t1
   ld t1, _JB_CHECKSUM(a0)
-  bne t0, t1, 3f
+  bne t0, t1, L(checksum_failure)
 
   // Do we need to restore the signal mask?
   ld a2, _JB_SIGFLAG(a0)
@@ -294,11 +290,9 @@
   mv a0, a1
   ret
 
-3:
+L(checksum_failure):
   call __bionic_setjmp_checksum_mismatch
 END(siglongjmp)
 
-ALIAS_SYMBOL(longjmp, siglongjmp)
-__BIONIC_WEAK_ASM_FOR_NATIVE_BRIDGE(longjmp)
-ALIAS_SYMBOL(_longjmp, siglongjmp)
-__BIONIC_WEAK_ASM_FOR_NATIVE_BRIDGE(_longjmp)
+ALIAS_SYMBOL_WEAK_FOR_NATIVE_BRIDGE(longjmp, siglongjmp)
+ALIAS_SYMBOL_WEAK_FOR_NATIVE_BRIDGE(_longjmp, siglongjmp)
diff --git a/libc/arch-riscv64/bionic/syscall.S b/libc/arch-riscv64/bionic/syscall.S
index 1a6e60a..ca735c7 100644
--- a/libc/arch-riscv64/bionic/syscall.S
+++ b/libc/arch-riscv64/bionic/syscall.S
@@ -44,10 +44,10 @@
 
   // Did it fail?
   li a7, -MAX_ERRNO
-  bgtu a0, a7, 1f
-
+  bgtu a0, a7, L(failure)
   ret
-1:
+
+L(failure):
   neg a0, a0
   tail __set_errno_internal
 END(syscall)
diff --git a/libc/arch-riscv64/bionic/vfork.S b/libc/arch-riscv64/bionic/vfork.S
index 29ab405..06ebc3e 100644
--- a/libc/arch-riscv64/bionic/vfork.S
+++ b/libc/arch-riscv64/bionic/vfork.S
@@ -51,16 +51,16 @@
   ecall
 
   // if (rc == 0) we're the child, and finished...
-  beqz    a0, .L_success
+  beqz    a0, L(success)
 
   // else if (rc != 0): reset cached_pid_ and vforked_...
   sw      t2, 20(t0)
   // ...and work out whether we succeeded or failed.
-  bltz    a0, .L_failure
-.L_success:
+  bltz    a0, L(failure)
+L(success):
   ret
 
-.L_failure:
+L(failure):
   neg     a0, a0
   tail    __set_errno_internal
 END(vfork)
diff --git a/libc/arch-riscv64/dynamic_function_dispatch.cpp b/libc/arch-riscv64/dynamic_function_dispatch.cpp
new file mode 100644
index 0000000..ce6c028
--- /dev/null
+++ b/libc/arch-riscv64/dynamic_function_dispatch.cpp
@@ -0,0 +1,145 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *  * Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *  * Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in
+ *    the documentation and/or other materials provided with the
+ *    distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#include <fcntl.h>
+#include <private/bionic_ifuncs.h>
+#include <stddef.h>
+#include <sys/syscall.h>
+#include <unistd.h>
+
+extern "C" {
+
+static inline __always_inline int ifunc_faccessat(int dir_fd, const char* path, int mode) {
+  register long a0 __asm__("a0") = dir_fd;
+  register long a1 __asm__("a1") = reinterpret_cast<long>(path);
+  register long a2 __asm__("a2") = mode;
+  register long a7 __asm__("a7") = __NR_faccessat;
+  __asm__("ecall" : "=r"(a0) : "r"(a0), "r"(a1), "r"(a2), "r"(a7) : "memory");
+  return a0;
+}
+
+static bool have_fast_v() {
+  static bool result = []() {
+    // We don't want to do a full "bogomips" test, so just check for the
+    // presence of a file that would indicate that we're running in qemu.
+    return ifunc_faccessat(AT_FDCWD, "/dev/hvc0", F_OK) != 0;
+  }();
+  return result;
+}
+
+DEFINE_IFUNC_FOR(memchr) {
+  if (have_fast_v()) RETURN_FUNC(memchr_func_t, memchr_v);
+  RETURN_FUNC(memchr_func_t, memchr_gc);
+}
+MEMCHR_SHIM()
+
+DEFINE_IFUNC_FOR(memcmp) {
+  if (have_fast_v()) RETURN_FUNC(memcmp_func_t, memcmp_v);
+  RETURN_FUNC(memcmp_func_t, memcmp_gc);
+}
+MEMCMP_SHIM()
+
+DEFINE_IFUNC_FOR(memcpy) {
+  if (have_fast_v()) RETURN_FUNC(memcpy_func_t, memcpy_v);
+  RETURN_FUNC(memcpy_func_t, memcpy_gc);
+}
+MEMCPY_SHIM()
+
+DEFINE_IFUNC_FOR(memmove) {
+  if (have_fast_v()) RETURN_FUNC(memmove_func_t, memmove_v);
+  RETURN_FUNC(memmove_func_t, memmove_gc);
+}
+MEMMOVE_SHIM()
+
+DEFINE_IFUNC_FOR(memset) {
+  if (have_fast_v()) RETURN_FUNC(memset_func_t, memset_v);
+  RETURN_FUNC(memset_func_t, memset_gc);
+}
+MEMSET_SHIM()
+
+DEFINE_IFUNC_FOR(stpcpy) {
+  if (have_fast_v()) RETURN_FUNC(stpcpy_func_t, stpcpy_v);
+  RETURN_FUNC(stpcpy_func_t, stpcpy_gc);
+}
+STPCPY_SHIM()
+
+DEFINE_IFUNC_FOR(strcat) {
+  if (have_fast_v()) RETURN_FUNC(strcat_func_t, strcat_v);
+  RETURN_FUNC(strcat_func_t, strcat_gc);
+}
+STRCAT_SHIM()
+
+DEFINE_IFUNC_FOR(strchr) {
+  if (have_fast_v()) RETURN_FUNC(strchr_func_t, strchr_v);
+  RETURN_FUNC(strchr_func_t, strchr_gc);
+}
+STRCHR_SHIM()
+
+DEFINE_IFUNC_FOR(strcmp) {
+  if (have_fast_v()) RETURN_FUNC(strcmp_func_t, strcmp_v);
+  RETURN_FUNC(strcmp_func_t, strcmp_gc);
+}
+STRCMP_SHIM()
+
+DEFINE_IFUNC_FOR(strcpy) {
+  if (have_fast_v()) RETURN_FUNC(strcpy_func_t, strcpy_v);
+  RETURN_FUNC(strcpy_func_t, strcpy_gc);
+}
+STRCPY_SHIM()
+
+DEFINE_IFUNC_FOR(strlen) {
+  if (have_fast_v()) RETURN_FUNC(strlen_func_t, strlen_v);
+  RETURN_FUNC(strlen_func_t, strlen_gc);
+}
+STRLEN_SHIM()
+
+DEFINE_IFUNC_FOR(strncat) {
+  if (have_fast_v()) RETURN_FUNC(strncat_func_t, strncat_v);
+  RETURN_FUNC(strncat_func_t, strncat_gc);
+}
+STRNCAT_SHIM()
+
+DEFINE_IFUNC_FOR(strncmp) {
+  if (have_fast_v()) RETURN_FUNC(strncmp_func_t, strncmp_v);
+  RETURN_FUNC(strncmp_func_t, strncmp_gc);
+}
+STRNCMP_SHIM()
+
+DEFINE_IFUNC_FOR(strncpy) {
+  if (have_fast_v()) RETURN_FUNC(strncpy_func_t, strncpy_v);
+  RETURN_FUNC(strncpy_func_t, strncpy_gc);
+}
+STRNCPY_SHIM()
+
+DEFINE_IFUNC_FOR(strnlen) {
+  if (have_fast_v()) RETURN_FUNC(strnlen_func_t, strnlen_v);
+  RETURN_FUNC(strnlen_func_t, strnlen_gc);
+}
+STRNLEN_SHIM()
+
+}  // extern "C"
diff --git a/libc/upstream-freebsd/lib/libc/string/bcopy.c b/libc/arch-riscv64/string/bcopy.c
similarity index 88%
rename from libc/upstream-freebsd/lib/libc/string/bcopy.c
rename to libc/arch-riscv64/string/bcopy.c
index 84715d0..57adcf6 100644
--- a/libc/upstream-freebsd/lib/libc/string/bcopy.c
+++ b/libc/arch-riscv64/string/bcopy.c
@@ -32,12 +32,6 @@
  * SUCH DAMAGE.
  */
 
-#if defined(LIBC_SCCS) && !defined(lint)
-static char sccsid[] = "@(#)bcopy.c	8.1 (Berkeley) 6/4/93";
-#endif /* LIBC_SCCS and not lint */
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 #include <sys/types.h>
 
 typedef	intptr_t word;		/* "word" used for optimal copy speed */
@@ -47,25 +41,16 @@
 
 /*
  * Copy a block of memory, handling overlap.
- * This is the routine that actually implements
- * (the portable versions of) bcopy, memcpy, and memmove.
  */
-#if defined(MEMCOPY) || defined(MEMMOVE)
 #include <string.h>
 
 void *
 #ifdef MEMCOPY
-memcpy
+memcpy_gc
 #else
-memmove
+memmove_gc
 #endif
 (void *dst0, const void *src0, size_t length)
-#else
-#include <strings.h>
-
-void
-bcopy(const void *src0, void *dst0, size_t length)
-#endif
 {
 	char *dst = dst0;
 	const char *src = src0;
diff --git a/libc/arch-x86/generic/string/strncat.c b/libc/arch-riscv64/string/memchr.c
similarity index 90%
copy from libc/arch-x86/generic/string/strncat.c
copy to libc/arch-riscv64/string/memchr.c
index 687e560..34eb6d7 100644
--- a/libc/arch-x86/generic/string/strncat.c
+++ b/libc/arch-riscv64/string/memchr.c
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2018 The Android Open Source Project
+ * Copyright (C) 2023 The Android Open Source Project
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -28,5 +28,5 @@
 
 #include <upstream-openbsd/android/include/openbsd-compat.h>
 
-#define strncat strncat_openbsd
-#include <upstream-openbsd/lib/libc/string/strncat.c>
+#define memchr memchr_gc
+#include <upstream-openbsd/lib/libc/string/memchr.c>
diff --git a/libc/arch-riscv64/string/memchr_v.S b/libc/arch-riscv64/string/memchr_v.S
new file mode 100644
index 0000000..d4999c3
--- /dev/null
+++ b/libc/arch-riscv64/string/memchr_v.S
@@ -0,0 +1,96 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *  * Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *  * Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in
+ *    the documentation and/or other materials provided with the
+ *    distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+/*
+ * Copyright (c) 2023 SiFive, Inc.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. The name of the company may not be used to endorse or promote
+ *    products derived from this software without specific prior written
+ *    permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY SIFIVE INC ``AS IS'' AND ANY EXPRESS OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL SIFIVE INC BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
+ * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include <private/bionic_asm.h>
+
+#define iResult a0
+
+#define pSrc a0
+#define iValue a1
+#define iNum a2
+
+#define iVL a3
+#define iTemp a4
+
+#define ELEM_LMUL_SETTING m8
+#define vData v0
+#define vMask v8
+
+ENTRY(memchr_v)
+
+L(loop):
+    vsetvli iVL, iNum, e8, ELEM_LMUL_SETTING, ta, ma
+
+    vle8ff.v vData, (pSrc)
+    vmseq.vx vMask, vData, iValue
+    vfirst.m iTemp, vMask
+
+    # skip the loop if we find the matched value.
+    bgez iTemp, L(found)
+
+    csrr iVL, vl
+    sub iNum, iNum, iVL
+    add pSrc, pSrc, iVL
+
+    bnez iNum, L(loop)
+
+    li iResult, 0
+    ret
+
+L(found):
+    add iResult, pSrc, iTemp
+    ret
+
+END(memchr_v)
diff --git a/libc/upstream-freebsd/lib/libc/string/memcmp.c b/libc/arch-riscv64/string/memcmp.c
similarity index 88%
rename from libc/upstream-freebsd/lib/libc/string/memcmp.c
rename to libc/arch-riscv64/string/memcmp.c
index c8d5d92..2d7335a 100644
--- a/libc/upstream-freebsd/lib/libc/string/memcmp.c
+++ b/libc/arch-riscv64/string/memcmp.c
@@ -32,19 +32,13 @@
  * SUCH DAMAGE.
  */
 
-#if defined(LIBC_SCCS) && !defined(lint)
-static char sccsid[] = "@(#)memcmp.c	8.1 (Berkeley) 6/4/93";
-#endif /* LIBC_SCCS and not lint */
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 #include <string.h>
 
 /*
  * Compare memory regions.
  */
 int
-memcmp(const void *s1, const void *s2, size_t n)
+memcmp_gc(const void *s1, const void *s2, size_t n)
 {
 	if (n != 0) {
 		const unsigned char *p1 = s1, *p2 = s2;
diff --git a/libc/arch-riscv64/string/memcmp_v.S b/libc/arch-riscv64/string/memcmp_v.S
new file mode 100644
index 0000000..55e08db
--- /dev/null
+++ b/libc/arch-riscv64/string/memcmp_v.S
@@ -0,0 +1,106 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *  * Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *  * Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in
+ *    the documentation and/or other materials provided with the
+ *    distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+/*
+ * Copyright (c) 2023 SiFive, Inc.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. The name of the company may not be used to endorse or promote
+ *    products derived from this software without specific prior written
+ *    permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY SIFIVE INC ``AS IS'' AND ANY EXPRESS OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL SIFIVE INC BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
+ * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include <private/bionic_asm.h>
+
+#define iResult a0
+
+#define pSrc1 a0
+#define pSrc2 a1
+#define iNum a2
+
+#define iVL a3
+#define iTemp a4
+#define iTemp1 a5
+#define iTemp2 a6
+
+#define ELEM_LMUL_SETTING m8
+#define vData1 v0
+#define vData2 v8
+#define vMask v16
+
+ENTRY(memcmp_v)
+
+L(loop):
+    vsetvli iVL, iNum, e8, ELEM_LMUL_SETTING, ta, ma
+
+    vle8.v vData1, (pSrc1)
+    vle8.v vData2, (pSrc2)
+
+    vmsne.vv vMask, vData1, vData2
+    sub iNum, iNum, iVL
+    vfirst.m iTemp, vMask
+
+    /* skip the loop if we find the different
+       value between pSrc1 and pSrc2.  */
+    bgez iTemp, L(found)
+
+    add pSrc1, pSrc1, iVL
+    add pSrc2, pSrc2, iVL
+
+    bnez iNum, L(loop)
+
+    li iResult, 0
+    ret
+
+L(found):
+    add pSrc1, pSrc1, iTemp
+    add pSrc2, pSrc2, iTemp
+    lbu iTemp1, 0(pSrc1)
+    lbu iTemp2, 0(pSrc2)
+    sub iResult, iTemp1, iTemp2
+    ret
+
+END(memcmp_v)
diff --git a/libc/arch-riscv64/string/memcpy.c b/libc/arch-riscv64/string/memcpy.c
new file mode 100644
index 0000000..ee11504
--- /dev/null
+++ b/libc/arch-riscv64/string/memcpy.c
@@ -0,0 +1,2 @@
+#define	MEMCOPY
+#include "bcopy.c"
diff --git a/libc/arch-riscv64/string/memcpy_v.S b/libc/arch-riscv64/string/memcpy_v.S
new file mode 100644
index 0000000..93ec60f
--- /dev/null
+++ b/libc/arch-riscv64/string/memcpy_v.S
@@ -0,0 +1,85 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *  * Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *  * Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in
+ *    the documentation and/or other materials provided with the
+ *    distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+/*
+ * Copyright (c) 2023 SiFive, Inc.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. The name of the company may not be used to endorse or promote
+ *    products derived from this software without specific prior written
+ *    permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY SIFIVE INC ``AS IS'' AND ANY EXPRESS OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL SIFIVE INC BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
+ * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include <private/bionic_asm.h>
+
+#define pDst a0
+#define pSrc a1
+#define iNum a2
+
+#define iVL a3
+#define pDstPtr a4
+
+#define ELEM_LMUL_SETTING m8
+#define vData v0
+
+ENTRY(memcpy_v)
+
+    mv pDstPtr, pDst
+
+L(loop):
+    vsetvli iVL, iNum, e8, ELEM_LMUL_SETTING, ta, ma
+
+    vle8.v vData, (pSrc)
+    sub iNum, iNum, iVL
+    add pSrc, pSrc, iVL
+    vse8.v vData, (pDstPtr)
+    add pDstPtr, pDstPtr, iVL
+
+    bnez iNum, L(loop)
+
+    ret
+
+END(memcpy_v)
diff --git a/libc/arch-riscv64/string/memmove.c b/libc/arch-riscv64/string/memmove.c
new file mode 100644
index 0000000..e9bb2c2
--- /dev/null
+++ b/libc/arch-riscv64/string/memmove.c
@@ -0,0 +1,2 @@
+#define	MEMMOVE
+#include "bcopy.c"
diff --git a/libc/arch-riscv64/string/memmove_v.S b/libc/arch-riscv64/string/memmove_v.S
new file mode 100644
index 0000000..cad2b05
--- /dev/null
+++ b/libc/arch-riscv64/string/memmove_v.S
@@ -0,0 +1,102 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *  * Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *  * Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in
+ *    the documentation and/or other materials provided with the
+ *    distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+/*
+ * Copyright (c) 2023 SiFive, Inc.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. The name of the company may not be used to endorse or promote
+ *    products derived from this software without specific prior written
+ *    permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY SIFIVE INC ``AS IS'' AND ANY EXPRESS OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL SIFIVE INC BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
+ * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include <private/bionic_asm.h>
+
+#define pDst a0
+#define pSrc a1
+#define iNum a2
+
+#define iVL a3
+#define pDstPtr a4
+#define pSrcBackwardPtr a5
+#define pDstBackwardPtr a6
+
+#define ELEM_LMUL_SETTING m8
+#define vData v0
+
+ENTRY(memmove_v)
+
+    mv pDstPtr, pDst
+
+    bgeu pSrc, pDst, L(forward_copy_loop)
+    add pSrcBackwardPtr, pSrc, iNum
+    add pDstBackwardPtr, pDst, iNum
+    bltu pDst, pSrcBackwardPtr, L(backward_copy_loop)
+
+L(forward_copy_loop):
+    vsetvli iVL, iNum, e8, ELEM_LMUL_SETTING, ta, ma
+
+    vle8.v vData, (pSrc)
+    sub iNum, iNum, iVL
+    add pSrc, pSrc, iVL
+    vse8.v vData, (pDstPtr)
+    add pDstPtr, pDstPtr, iVL
+
+    bnez iNum, L(forward_copy_loop)
+    ret
+
+L(backward_copy_loop):
+    vsetvli iVL, iNum, e8, ELEM_LMUL_SETTING, ta, ma
+
+    sub pSrcBackwardPtr, pSrcBackwardPtr, iVL
+    vle8.v vData, (pSrcBackwardPtr)
+    sub iNum, iNum, iVL
+    sub pDstBackwardPtr, pDstBackwardPtr, iVL
+    vse8.v vData, (pDstBackwardPtr)
+    bnez iNum, L(backward_copy_loop)
+    ret
+
+END(memmove_v)
diff --git a/libc/upstream-freebsd/lib/libc/string/memset.c b/libc/arch-riscv64/string/memset.c
similarity index 87%
rename from libc/upstream-freebsd/lib/libc/string/memset.c
rename to libc/arch-riscv64/string/memset.c
index e2d4027..d51cbf9 100644
--- a/libc/upstream-freebsd/lib/libc/string/memset.c
+++ b/libc/arch-riscv64/string/memset.c
@@ -32,12 +32,6 @@
  * SUCH DAMAGE.
  */
 
-#if defined(LIBC_SCCS) && !defined(lint)
-static char sccsid[] = "@(#)memset.c	8.1 (Berkeley) 6/4/93";
-#endif /* LIBC_SCCS and not lint */
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 #include <sys/types.h>
 
 #include <limits.h>
@@ -45,16 +39,6 @@
 #define	wsize	sizeof(u_long)
 #define	wmask	(wsize - 1)
 
-#ifdef BZERO
-#include <strings.h>
-
-#define	RETURN	return
-#define	VAL	0
-#define	WIDEVAL	0
-
-void
-bzero(void *dst0, size_t length)
-#else
 #include <string.h>
 
 #define	RETURN	return (dst0)
@@ -62,13 +46,10 @@
 #define	WIDEVAL	c
 
 void *
-memset(void *dst0, int c0, size_t length)
-#endif
+memset_gc(void *dst0, int c0, size_t length)
 {
 	size_t t;
-#ifndef BZERO
 	u_long c;
-#endif
 	u_char *dst;
 
 	dst = dst0;
@@ -96,17 +77,11 @@
 		RETURN;
 	}
 
-#ifndef BZERO
 	if ((c = (u_char)c0) != 0) {	/* Fill the word. */
 		c = (c << 8) | c;	/* u_long is 16 bits. */
-#if ULONG_MAX > 0xffff
 		c = (c << 16) | c;	/* u_long is 32 bits. */
-#endif
-#if ULONG_MAX > 0xffffffff
 		c = (c << 32) | c;	/* u_long is 64 bits. */
-#endif
 	}
-#endif
 	/* Align destination by filling in bytes. */
 	if ((t = (long)dst & wmask) != 0) {
 		t = wsize - t;
diff --git a/libc/arch-riscv64/string/memset_v.S b/libc/arch-riscv64/string/memset_v.S
new file mode 100644
index 0000000..06a2c6a
--- /dev/null
+++ b/libc/arch-riscv64/string/memset_v.S
@@ -0,0 +1,85 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *  * Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *  * Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in
+ *    the documentation and/or other materials provided with the
+ *    distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+/*
+ * Copyright (c) 2023 SiFive, Inc.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. The name of the company may not be used to endorse or promote
+ *    products derived from this software without specific prior written
+ *    permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY SIFIVE INC ``AS IS'' AND ANY EXPRESS OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL SIFIVE INC BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
+ * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include <private/bionic_asm.h>
+
+#define pDst a0
+#define iValue a1
+#define iNum a2
+
+#define iVL a3
+#define iTemp a4
+#define pDstPtr a5
+
+#define ELEM_LMUL_SETTING m8
+#define vData v0
+
+ENTRY(memset_v)
+
+    mv pDstPtr, pDst
+
+    vsetvli iVL, iNum, e8, ELEM_LMUL_SETTING, ta, ma
+    vmv.v.x vData, iValue
+
+L(loop):
+    vse8.v vData, (pDstPtr)
+    sub iNum, iNum, iVL
+    add pDstPtr, pDstPtr, iVL
+    vsetvli iVL, iNum, e8, ELEM_LMUL_SETTING, ta, ma
+    bnez iNum, L(loop)
+
+    ret
+
+END(memset_v)
diff --git a/libc/arch-x86/generic/string/strncat.c b/libc/arch-riscv64/string/stpcpy.c
similarity index 90%
copy from libc/arch-x86/generic/string/strncat.c
copy to libc/arch-riscv64/string/stpcpy.c
index 687e560..2afcf99 100644
--- a/libc/arch-x86/generic/string/strncat.c
+++ b/libc/arch-riscv64/string/stpcpy.c
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2018 The Android Open Source Project
+ * Copyright (C) 2023 The Android Open Source Project
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -28,5 +28,5 @@
 
 #include <upstream-openbsd/android/include/openbsd-compat.h>
 
-#define strncat strncat_openbsd
-#include <upstream-openbsd/lib/libc/string/strncat.c>
+#define stpcpy stpcpy_gc
+#include <upstream-openbsd/lib/libc/string/stpcpy.c>
diff --git a/libc/arch-riscv64/string/stpcpy_v.S b/libc/arch-riscv64/string/stpcpy_v.S
new file mode 100644
index 0000000..6a853ec
--- /dev/null
+++ b/libc/arch-riscv64/string/stpcpy_v.S
@@ -0,0 +1,88 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *  * Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *  * Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in
+ *    the documentation and/or other materials provided with the
+ *    distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+/*
+ * Copyright (c) 2023 SiFive, Inc.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. The name of the company may not be used to endorse or promote
+ *    products derived from this software without specific prior written
+ *    permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY SIFIVE INC ``AS IS'' AND ANY EXPRESS OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL SIFIVE INC BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
+ * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include <private/bionic_asm.h>
+
+#define pDstPtr a0
+#define pSrc a1
+
+#define iVL a3
+#define iCurrentVL a4
+#define iActiveElemPos a5
+
+#define ELEM_LMUL_SETTING m1
+#define vMask1 v0
+#define vMask2 v1
+#define vStr1 v8
+#define vStr2 v16
+
+ENTRY(stpcpy_v)
+L(stpcpy_loop):
+    vsetvli iVL, zero, e8, ELEM_LMUL_SETTING, ta, ma
+    vle8ff.v vStr1, (pSrc)
+    vmseq.vx vMask2, vStr1, zero
+    csrr iCurrentVL, vl
+    vfirst.m iActiveElemPos, vMask2
+    vmsif.m vMask1, vMask2
+    add pSrc, pSrc, iCurrentVL
+    vse8.v vStr1, (pDstPtr), vMask1.t
+    add pDstPtr, pDstPtr, iCurrentVL
+    bltz iActiveElemPos, L(stpcpy_loop)
+
+    // stpcpy() returns a pointer to the '\0' in the destination.
+    sub pDstPtr, pDstPtr, iCurrentVL
+    add pDstPtr, pDstPtr, iActiveElemPos
+    ret
+END(stpcpy_v)
diff --git a/libc/arch-x86/generic/string/strncat.c b/libc/arch-riscv64/string/strcat.c
similarity index 90%
copy from libc/arch-x86/generic/string/strncat.c
copy to libc/arch-riscv64/string/strcat.c
index 687e560..5fb1621 100644
--- a/libc/arch-x86/generic/string/strncat.c
+++ b/libc/arch-riscv64/string/strcat.c
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2018 The Android Open Source Project
+ * Copyright (C) 2023 The Android Open Source Project
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -28,5 +28,5 @@
 
 #include <upstream-openbsd/android/include/openbsd-compat.h>
 
-#define strncat strncat_openbsd
-#include <upstream-openbsd/lib/libc/string/strncat.c>
+#define strcat strcat_gc
+#include <upstream-openbsd/lib/libc/string/strcat.c>
diff --git a/libc/arch-riscv64/string/strcat_v.S b/libc/arch-riscv64/string/strcat_v.S
new file mode 100644
index 0000000..3d348e7
--- /dev/null
+++ b/libc/arch-riscv64/string/strcat_v.S
@@ -0,0 +1,107 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *  * Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *  * Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in
+ *    the documentation and/or other materials provided with the
+ *    distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+/*
+ * Copyright (c) 2023 SiFive, Inc.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. The name of the company may not be used to endorse or promote
+ *    products derived from this software without specific prior written
+ *    permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY SIFIVE INC ``AS IS'' AND ANY EXPRESS OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL SIFIVE INC BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
+ * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include <private/bionic_asm.h>
+
+#define pDst a0
+#define pSrc a1
+#define pDstPtr a2
+
+#define iVL a3
+#define iCurrentVL a4
+#define iActiveElemPos a5
+
+#define ELEM_LMUL_SETTING m1
+#define vMask1 v0
+#define vMask2 v1
+#define vStr1 v8
+#define vStr2 v16
+
+ENTRY(strcat_v)
+
+    mv pDstPtr, pDst
+
+    // the strlen of dst
+L(strlen_loop):
+    vsetvli iVL, zero, e8, ELEM_LMUL_SETTING, ta, ma
+
+    vle8ff.v vStr1, (pDstPtr)
+    // find the '\0'
+    vmseq.vx vMask1, vStr1, zero
+    csrr iCurrentVL, vl
+    vfirst.m iActiveElemPos, vMask1
+    add pDstPtr, pDstPtr, iCurrentVL
+    bltz iActiveElemPos, L(strlen_loop)
+
+    sub pDstPtr, pDstPtr, iCurrentVL
+    add pDstPtr, pDstPtr, iActiveElemPos
+
+    // copy pSrc to pDstPtr
+L(strcpy_loop):
+    vsetvli iVL, zero, e8, ELEM_LMUL_SETTING, ta, ma
+
+    vle8ff.v vStr1, (pSrc)
+    vmseq.vx vMask2, vStr1, zero
+    csrr iCurrentVL, vl
+    vfirst.m iActiveElemPos, vMask2
+    vmsif.m vMask1, vMask2
+    add pSrc, pSrc, iCurrentVL
+    vse8.v vStr1, (pDstPtr), vMask1.t
+    add pDstPtr, pDstPtr, iCurrentVL
+    bltz iActiveElemPos, L(strcpy_loop)
+
+    ret
+
+END(strcat_v)
diff --git a/libc/upstream-openbsd/lib/libc/string/strlen.c b/libc/arch-riscv64/string/strchr.c
similarity index 82%
copy from libc/upstream-openbsd/lib/libc/string/strlen.c
copy to libc/arch-riscv64/string/strchr.c
index a5721d3..dc07766 100644
--- a/libc/upstream-openbsd/lib/libc/string/strlen.c
+++ b/libc/arch-riscv64/string/strchr.c
@@ -1,8 +1,7 @@
-/*	$OpenBSD: strlen.c,v 1.9 2015/08/31 02:53:57 guenther Exp $	*/
-
+/*	$OpenBSD: strchr.c,v 1.4 2018/10/01 06:37:37 martijn Exp $ */
 /*-
- * Copyright (c) 1990, 1993
- *	The Regents of the University of California.  All rights reserved.
+ * Copyright (c) 1990 The Regents of the University of California.
+ * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions
@@ -31,14 +30,14 @@
 
 #include <string.h>
 
-size_t
-strlen(const char *str)
+char *
+strchr_gc(const char *p, int ch)
 {
-	const char *s;
-
-	for (s = str; *s; ++s)
-		;
-	return (s - str);
+	for (;; ++p) {
+		if (*p == (char) ch)
+			return((char *)p);
+		if (!*p)
+			return((char *)NULL);
+	}
+	/* NOTREACHED */
 }
-
-DEF_STRONG(strlen);
diff --git a/libc/arch-riscv64/string/strchr_v.S b/libc/arch-riscv64/string/strchr_v.S
new file mode 100644
index 0000000..bc7b58a
--- /dev/null
+++ b/libc/arch-riscv64/string/strchr_v.S
@@ -0,0 +1,94 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *  * Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *  * Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in
+ *    the documentation and/or other materials provided with the
+ *    distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+/*
+ * Copyright (c) 2023 SiFive, Inc.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. The name of the company may not be used to endorse or promote
+ *    products derived from this software without specific prior written
+ *    permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY SIFIVE INC ``AS IS'' AND ANY EXPRESS OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL SIFIVE INC BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
+ * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include <private/bionic_asm.h>
+
+#define pStr a0
+#define iCh a1
+#define iEndOffset a2
+#define iChOffset a3
+#define iTemp1 a4
+#define iTemp2 a5
+#define iCurrentVL a6
+#define iVL t0
+
+#define ELEM_LMUL_SETTING m1
+#define vStr v0
+#define vMaskEnd v8
+#define vMaskCh v9
+
+ENTRY(strchr_v)
+
+L(strchr_loop):
+    vsetvli iVL, zero, e8, ELEM_LMUL_SETTING, ta, ma
+    vle8ff.v vStr, (pStr)
+    vmseq.vi vMaskEnd, vStr, 0
+    vmseq.vx vMaskCh, vStr, iCh
+    vfirst.m iEndOffset, vMaskEnd /* first occurrence of \0 */
+    vfirst.m iChOffset, vMaskCh /* first occurrence of ch */
+    sltz iTemp1, iChOffset
+    sltu iTemp2, iEndOffset, iChOffset
+    or iTemp1, iTemp1, iTemp2
+    beqz iTemp1, L(found_ch) /* Found ch, not preceded by \0? */
+    csrr iCurrentVL, vl
+    add pStr, pStr, iCurrentVL
+    bltz iEndOffset, L(strchr_loop) /* Didn't find \0? */
+    li pStr, 0
+    ret
+L(found_ch):
+    add pStr, pStr, iChOffset
+    ret
+
+END(strchr_v)
diff --git a/libc/upstream-openbsd/lib/libc/string/strcmp.c b/libc/arch-riscv64/string/strcmp.c
similarity index 96%
rename from libc/upstream-openbsd/lib/libc/string/strcmp.c
rename to libc/arch-riscv64/string/strcmp.c
index be17556..7a1fefe 100644
--- a/libc/upstream-openbsd/lib/libc/string/strcmp.c
+++ b/libc/arch-riscv64/string/strcmp.c
@@ -38,11 +38,10 @@
  * Compare strings.
  */
 int
-strcmp(const char *s1, const char *s2)
+strcmp_gc(const char *s1, const char *s2)
 {
 	while (*s1 == *s2++)
 		if (*s1++ == 0)
 			return (0);
 	return (*(unsigned char *)s1 - *(unsigned char *)--s2);
 }
-DEF_STRONG(strcmp);
diff --git a/libc/arch-riscv64/string/strcmp_v.S b/libc/arch-riscv64/string/strcmp_v.S
new file mode 100644
index 0000000..01e72b1
--- /dev/null
+++ b/libc/arch-riscv64/string/strcmp_v.S
@@ -0,0 +1,169 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *  * Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *  * Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in
+ *    the documentation and/or other materials provided with the
+ *    distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+/*
+ * Copyright (c) 2023 SiFive, Inc.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. The name of the company may not be used to endorse or promote
+ *    products derived from this software without specific prior written
+ *    permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY SIFIVE INC ``AS IS'' AND ANY EXPRESS OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL SIFIVE INC BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
+ * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include <private/bionic_asm.h>
+
+#define iResult a0
+
+#define pStr1 a0
+#define pStr2 a1
+
+#define iVL a2
+#define iTemp1 a3
+#define iTemp2 a4
+#define iLMUL1 a5
+#define iLMUL2 a6
+#define iLMUL4 a7
+
+#define iLMUL t0
+
+#define vStr1 v0
+#define vStr2 v8
+#define vMask1 v16
+#define vMask2 v17
+
+ENTRY(strcmp_v)
+
+    # increase the lmul using the following sequences:
+    # 1/2, 1/2, 1, 2, 4, 4, 4, ...
+
+    # lmul=1/2
+    vsetvli iVL, zero, e8, mf2, ta, ma
+
+    vle8ff.v vStr1, (pStr1)
+     # check if vStr1[i] == 0
+    vmseq.vx vMask1, vStr1, zero
+
+    vle8ff.v vStr2, (pStr2)
+    # check if vStr1[i] != vStr2[i]
+    vmsne.vv vMask2, vStr1, vStr2
+
+    # find the index x for vStr1[x]==0
+    vfirst.m iTemp1, vMask1
+    # find the index x for vStr1[x]!=vStr2[x]
+    vfirst.m iTemp2, vMask2
+
+    bgez iTemp1, L(check1)
+    bgez iTemp2, L(check2)
+
+    # get the current vl updated by vle8ff.
+    csrr iVL, vl
+    add pStr1, pStr1, iVL
+    add pStr2, pStr2, iVL
+
+    vsetvli iVL, zero, e8, mf2, ta, ma
+    addi iLMUL1, zero, 1
+    addi iLMUL, zero, 1
+    j L(loop)
+L(m1):
+    vsetvli iVL, zero, e8, m1, ta, ma
+    addi iLMUL2, zero, 2
+    addi iLMUL, zero, 2
+    j L(loop)
+L(m2):
+    vsetvli iVL, zero, e8, m2, ta, ma
+    addi iLMUL4, zero, 4
+    addi iLMUL, zero, 4
+    j L(loop)
+L(m4):
+    vsetvli iVL, zero, e8, m4, ta, ma
+
+L(loop):
+    vle8ff.v vStr1, (pStr1)
+    vmseq.vx vMask1, vStr1, zero
+
+    vle8ff.v vStr2, (pStr2)
+    vmsne.vv vMask2, vStr1, vStr2
+
+    vfirst.m iTemp1, vMask1
+    vfirst.m iTemp2, vMask2
+
+    bgez iTemp1, L(check1)
+    bgez iTemp2, L(check2)
+
+    csrr iVL, vl
+    add pStr1, pStr1, iVL
+    add pStr2, pStr2, iVL
+
+    beq iLMUL, iLMUL1, L(m1)
+    beq iLMUL, iLMUL2, L(m2)
+    beq iLMUL, iLMUL4, L(m4)
+    j L(loop)
+
+    // iTemp1>=0
+L(check1):
+    bltz iTemp2, 1f
+    blt iTemp2, iTemp1, L(check2)
+1:
+    // iTemp2<0
+    // iTemp2>=0 && iTemp1<iTemp2
+    add pStr1, pStr1, iTemp1
+    add pStr2, pStr2, iTemp1
+    lbu iTemp1, 0(pStr1)
+    lbu iTemp2, 0(pStr2)
+    sub iResult, iTemp1, iTemp2
+    ret
+
+    // iTemp1<0
+    // iTemp2>=0
+L(check2):
+    add pStr1, pStr1, iTemp2
+    add pStr2, pStr2, iTemp2
+    lbu iTemp1, 0(pStr1)
+    lbu iTemp2, 0(pStr2)
+    sub iResult, iTemp1, iTemp2
+    ret
+
+END(strcmp_v)
diff --git a/libc/upstream-openbsd/lib/libc/string/strcpy.c b/libc/arch-riscv64/string/strcpy.c
similarity index 91%
rename from libc/upstream-openbsd/lib/libc/string/strcpy.c
rename to libc/arch-riscv64/string/strcpy.c
index 290eefe..a624541 100644
--- a/libc/upstream-openbsd/lib/libc/string/strcpy.c
+++ b/libc/arch-riscv64/string/strcpy.c
@@ -31,13 +31,8 @@
 
 #include <string.h>
 
-#if defined(APIWARN)
-__warn_references(strcpy,
-    "strcpy() is almost always misused, please use strlcpy()");
-#endif
-
 char *
-strcpy(char *to, const char *from)
+strcpy_gc(char *to, const char *from)
 {
 	char *save = to;
 
diff --git a/libc/arch-riscv64/string/strcpy_v.S b/libc/arch-riscv64/string/strcpy_v.S
new file mode 100644
index 0000000..084b3a5
--- /dev/null
+++ b/libc/arch-riscv64/string/strcpy_v.S
@@ -0,0 +1,91 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *  * Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *  * Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in
+ *    the documentation and/or other materials provided with the
+ *    distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+/*
+ * Copyright (c) 2023 SiFive, Inc.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. The name of the company may not be used to endorse or promote
+ *    products derived from this software without specific prior written
+ *    permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY SIFIVE INC ``AS IS'' AND ANY EXPRESS OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL SIFIVE INC BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
+ * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include <private/bionic_asm.h>
+
+#define pDst a0
+#define pSrc a1
+#define pDstPtr a2
+
+#define iVL a3
+#define iCurrentVL a4
+#define iActiveElemPos a5
+
+#define ELEM_LMUL_SETTING m1
+#define vMask1 v0
+#define vMask2 v1
+#define vStr1 v8
+#define vStr2 v16
+
+ENTRY(strcpy_v)
+
+    mv pDstPtr, pDst
+
+    // copy pSrc to pDstPtr
+L(strcpy_loop):
+    vsetvli iVL, zero, e8, ELEM_LMUL_SETTING, ta, ma
+    vle8ff.v vStr1, (pSrc)
+    vmseq.vx vMask2, vStr1, zero
+    csrr iCurrentVL, vl
+    vfirst.m iActiveElemPos, vMask2
+    vmsif.m vMask1, vMask2
+    add pSrc, pSrc, iCurrentVL
+    vse8.v vStr1, (pDstPtr), vMask1.t
+    add pDstPtr, pDstPtr, iCurrentVL
+    bltz iActiveElemPos, L(strcpy_loop)
+
+    ret
+
+END(strcpy_v)
diff --git a/libc/upstream-openbsd/lib/libc/string/strlen.c b/libc/arch-riscv64/string/strlen.c
similarity index 97%
rename from libc/upstream-openbsd/lib/libc/string/strlen.c
rename to libc/arch-riscv64/string/strlen.c
index a5721d3..ac8d27f 100644
--- a/libc/upstream-openbsd/lib/libc/string/strlen.c
+++ b/libc/arch-riscv64/string/strlen.c
@@ -32,7 +32,7 @@
 #include <string.h>
 
 size_t
-strlen(const char *str)
+strlen_gc(const char *str)
 {
 	const char *s;
 
@@ -40,5 +40,3 @@
 		;
 	return (s - str);
 }
-
-DEF_STRONG(strlen);
diff --git a/libc/arch-riscv64/string/strlen_v.S b/libc/arch-riscv64/string/strlen_v.S
new file mode 100644
index 0000000..c284021
--- /dev/null
+++ b/libc/arch-riscv64/string/strlen_v.S
@@ -0,0 +1,87 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *  * Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *  * Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in
+ *    the documentation and/or other materials provided with the
+ *    distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+/*
+ * Copyright (c) 2023 SiFive, Inc.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. The name of the company may not be used to endorse or promote
+ *    products derived from this software without specific prior written
+ *    permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY SIFIVE INC ``AS IS'' AND ANY EXPRESS OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL SIFIVE INC BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
+ * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include <private/bionic_asm.h>
+
+#define iResult a0
+#define pStr a0
+#define pCopyStr a1
+#define iVL a2
+#define iCurrentVL a2
+#define iEndOffset a3
+
+#define ELEM_LMUL_SETTING m2
+#define vStr v0
+#define vMaskEnd v2
+
+ENTRY(strlen_v)
+
+    mv pCopyStr, pStr
+L(loop):
+    vsetvli iVL, zero, e8, ELEM_LMUL_SETTING, ta, ma
+    vle8ff.v vStr, (pCopyStr)
+    csrr iCurrentVL, vl
+    vmseq.vi vMaskEnd, vStr, 0
+    vfirst.m iEndOffset, vMaskEnd
+    add pCopyStr, pCopyStr, iCurrentVL
+    bltz iEndOffset, L(loop)
+
+    add pStr, pStr, iCurrentVL
+    add pCopyStr, pCopyStr, iEndOffset
+    sub iResult, pCopyStr, iResult
+
+    ret
+
+END(strlen_v)
diff --git a/libc/arch-x86/generic/string/strncat.c b/libc/arch-riscv64/string/strncat.c
similarity index 94%
rename from libc/arch-x86/generic/string/strncat.c
rename to libc/arch-riscv64/string/strncat.c
index 687e560..8c26b95 100644
--- a/libc/arch-x86/generic/string/strncat.c
+++ b/libc/arch-riscv64/string/strncat.c
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2018 The Android Open Source Project
+ * Copyright (C) 2023 The Android Open Source Project
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -28,5 +28,5 @@
 
 #include <upstream-openbsd/android/include/openbsd-compat.h>
 
-#define strncat strncat_openbsd
+#define strncat strncat_gc
 #include <upstream-openbsd/lib/libc/string/strncat.c>
diff --git a/libc/arch-riscv64/string/strncat_v.S b/libc/arch-riscv64/string/strncat_v.S
new file mode 100644
index 0000000..adc768d
--- /dev/null
+++ b/libc/arch-riscv64/string/strncat_v.S
@@ -0,0 +1,117 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *  * Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *  * Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in
+ *    the documentation and/or other materials provided with the
+ *    distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+/*
+ * Copyright (c) 2023 SiFive, Inc.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. The name of the company may not be used to endorse or promote
+ *    products derived from this software without specific prior written
+ *    permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY SIFIVE INC ``AS IS'' AND ANY EXPRESS OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL SIFIVE INC BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
+ * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include <private/bionic_asm.h>
+
+#define pDst a0
+#define pSrc a1
+#define iLength a2
+#define pDstPtr a3
+
+#define iVL a4
+#define iCurrentVL a5
+#define iActiveElemPos a6
+
+#define ELEM_LMUL_SETTING m1
+#define vMask1 v0
+#define vMask2 v1
+#define vStr1 v8
+#define vStr2 v16
+
+ENTRY(strncat_v)
+
+    mv pDstPtr, pDst
+
+    // the strlen of dst
+L(strlen_loop):
+    vsetvli iVL, zero, e8, ELEM_LMUL_SETTING, ta, ma
+
+    vle8ff.v vStr1, (pDstPtr)
+    // find the '\0'
+    vmseq.vx vMask1, vStr1, zero
+    csrr iCurrentVL, vl
+    vfirst.m iActiveElemPos, vMask1
+    add pDstPtr, pDstPtr, iCurrentVL
+    bltz iActiveElemPos, L(strlen_loop)
+
+    sub pDstPtr, pDstPtr, iCurrentVL
+    add pDstPtr, pDstPtr, iActiveElemPos
+
+    // copy pSrc to pDstPtr
+L(strcpy_loop):
+    vsetvli iVL, iLength, e8, ELEM_LMUL_SETTING, ta, ma
+
+    vle8ff.v vStr1, (pSrc)
+    vmseq.vx vMask2, vStr1, zero
+    csrr iCurrentVL, vl
+    vfirst.m iActiveElemPos, vMask2
+    vmsif.m vMask1, vMask2
+    add pSrc, pSrc, iCurrentVL
+    sub iLength, iLength, iCurrentVL
+    vse8.v vStr1, (pDstPtr), vMask1.t
+    add pDstPtr, pDstPtr, iCurrentVL
+    beqz iLength, L(fill_zero)
+    bltz iActiveElemPos, L(strcpy_loop)
+
+    ret
+
+L(fill_zero):
+    bgez iActiveElemPos, L(fill_zero_end)
+    sb zero, (pDstPtr)
+
+L(fill_zero_end):
+    ret
+
+END(strncat_v)
diff --git a/libc/arch-x86/generic/string/strncat.c b/libc/arch-riscv64/string/strncmp.c
similarity index 90%
copy from libc/arch-x86/generic/string/strncat.c
copy to libc/arch-riscv64/string/strncmp.c
index 687e560..ebc5357 100644
--- a/libc/arch-x86/generic/string/strncat.c
+++ b/libc/arch-riscv64/string/strncmp.c
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2018 The Android Open Source Project
+ * Copyright (C) 2023 The Android Open Source Project
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -28,5 +28,5 @@
 
 #include <upstream-openbsd/android/include/openbsd-compat.h>
 
-#define strncat strncat_openbsd
-#include <upstream-openbsd/lib/libc/string/strncat.c>
+#define strncmp strncmp_gc
+#include <upstream-openbsd/lib/libc/string/strncmp.c>
diff --git a/libc/arch-riscv64/string/strncmp_v.S b/libc/arch-riscv64/string/strncmp_v.S
new file mode 100644
index 0000000..1ce4817
--- /dev/null
+++ b/libc/arch-riscv64/string/strncmp_v.S
@@ -0,0 +1,119 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *  * Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *  * Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in
+ *    the documentation and/or other materials provided with the
+ *    distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+/*
+ * Copyright (c) 2023 SiFive, Inc.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. The name of the company may not be used to endorse or promote
+ *    products derived from this software without specific prior written
+ *    permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY SIFIVE INC ``AS IS'' AND ANY EXPRESS OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL SIFIVE INC BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
+ * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include <private/bionic_asm.h>
+
+#define iResult a0
+
+#define pStr1 a0
+#define pStr2 a1
+#define iLength a2
+
+#define iVL a3
+#define iTemp1 a4
+#define iTemp2 a5
+
+#define ELEM_LMUL_SETTING m1
+#define vStr1 v0
+#define vStr2 v4
+#define vMask1 v8
+#define vMask2 v9
+
+ENTRY(strncmp_v)
+
+    beqz iLength, L(zero_length)
+
+L(loop):
+    vsetvli iVL, iLength, e8, ELEM_LMUL_SETTING, ta, ma
+
+    vle8ff.v vStr1, (pStr1)
+     # vStr1[i] == 0
+    vmseq.vx vMask1, vStr1, zero
+
+    vle8ff.v vStr2, (pStr2)
+    # vStr1[i] != vStr2[i]
+    vmsne.vv vMask2, vStr1, vStr2
+
+    csrr iVL, vl
+
+    # r = mask1 | mask2
+    # We could use vfirst.m to get the first zero char or the
+    # first different char between str1 and str2.
+    vmor.mm vMask1, vMask1, vMask2
+
+    sub iLength, iLength, iVL
+
+    vfirst.m iTemp1, vMask1
+
+    bgez iTemp1, L(end_loop)
+
+    add pStr1, pStr1, iVL
+    add pStr2, pStr2, iVL
+    bnez iLength, L(loop)
+L(end_loop):
+
+    add pStr1, pStr1, iTemp1
+    add pStr2, pStr2, iTemp1
+    lbu iTemp1, 0(pStr1)
+    lbu iTemp2, 0(pStr2)
+
+    sub iResult, iTemp1, iTemp2
+    ret
+
+L(zero_length):
+    li iResult, 0
+    ret
+
+END(strncmp_v)
diff --git a/libc/arch-x86/generic/string/strncat.c b/libc/arch-riscv64/string/strncpy.c
similarity index 90%
copy from libc/arch-x86/generic/string/strncat.c
copy to libc/arch-riscv64/string/strncpy.c
index 687e560..bbd1bd7 100644
--- a/libc/arch-x86/generic/string/strncat.c
+++ b/libc/arch-riscv64/string/strncpy.c
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2018 The Android Open Source Project
+ * Copyright (C) 2023 The Android Open Source Project
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -28,5 +28,5 @@
 
 #include <upstream-openbsd/android/include/openbsd-compat.h>
 
-#define strncat strncat_openbsd
-#include <upstream-openbsd/lib/libc/string/strncat.c>
+#define strncpy strncpy_gc
+#include <upstream-openbsd/lib/libc/string/strncpy.c>
diff --git a/libc/arch-riscv64/string/strncpy_v.S b/libc/arch-riscv64/string/strncpy_v.S
new file mode 100644
index 0000000..f133f28
--- /dev/null
+++ b/libc/arch-riscv64/string/strncpy_v.S
@@ -0,0 +1,114 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *  * Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *  * Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in
+ *    the documentation and/or other materials provided with the
+ *    distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+/*
+ * Copyright (c) 2023 SiFive, Inc.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. The name of the company may not be used to endorse or promote
+ *    products derived from this software without specific prior written
+ *    permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY SIFIVE INC ``AS IS'' AND ANY EXPRESS OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL SIFIVE INC BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
+ * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include <private/bionic_asm.h>
+
+#define pDst a0
+#define pSrc a1
+#define iLength a2
+#define pDstPtr a3
+
+#define iVL a4
+#define iCurrentVL a5
+#define iActiveElemPos a6
+
+#define ELEM_LMUL_SETTING m1
+#define vMask1 v0
+#define vMask2 v1
+#define ZERO_FILL_ELEM_LMUL_SETTING m8
+#define vStr1 v8
+#define vStr2 v16
+
+ENTRY(strncpy_v)
+
+    mv pDstPtr, pDst
+
+    // copy pSrc to pDstPtr
+L(strcpy_loop):
+    vsetvli iVL, iLength, e8, ELEM_LMUL_SETTING, ta, ma
+    vle8ff.v vStr1, (pSrc)
+    vmseq.vx vMask2, vStr1, zero
+    csrr iCurrentVL, vl
+    vfirst.m iActiveElemPos, vMask2
+    vmsif.m vMask1, vMask2
+    add pSrc, pSrc, iCurrentVL
+    sub iLength, iLength, iCurrentVL
+    vse8.v vStr1, (pDstPtr), vMask1.t
+    add pDstPtr, pDstPtr, iCurrentVL
+    bgez iActiveElemPos, L(fill_zero)
+    bnez iLength, L(strcpy_loop)
+    ret
+
+    # fill the tail zero.
+L(fill_zero):
+    sub iVL, iCurrentVL, iActiveElemPos
+    add iLength, iLength, iVL
+    bnez iLength, 1f
+    ret
+1:
+    sub pDstPtr, pDstPtr, iVL
+    vsetvli zero, iLength, e8, ZERO_FILL_ELEM_LMUL_SETTING, ta, ma
+    vmv.v.x vStr2, zero
+
+L(fill_zero_loop):
+    vsetvli iVL, iLength, e8, ZERO_FILL_ELEM_LMUL_SETTING, ta, ma
+    vse8.v vStr2, (pDstPtr)
+    sub iLength, iLength, iVL
+    add pDstPtr, pDstPtr, iVL
+    bnez iLength, L(fill_zero_loop)
+
+    ret
+
+END(strncpy_v)
diff --git a/libc/upstream-openbsd/lib/libc/string/memrchr.c b/libc/arch-riscv64/string/strnlen.c
similarity index 61%
rename from libc/upstream-openbsd/lib/libc/string/memrchr.c
rename to libc/arch-riscv64/string/strnlen.c
index e123bc1..0e31c3b 100644
--- a/libc/upstream-openbsd/lib/libc/string/memrchr.c
+++ b/libc/arch-riscv64/string/strnlen.c
@@ -1,7 +1,7 @@
-/*	$OpenBSD: memrchr.c,v 1.4 2019/01/25 00:19:25 millert Exp $	*/
+/*	$OpenBSD: strnlen.c,v 1.9 2019/01/25 00:19:25 millert Exp $	*/
 
 /*
- * Copyright (c) 2007 Todd C. Miller <millert@openbsd.org>
+ * Copyright (c) 2010 Todd C. Miller <millert@openbsd.org>
  *
  * Permission to use, copy, modify, and distribute this software for any
  * purpose with or without fee is hereby granted, provided that the above
@@ -16,24 +16,17 @@
  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  */
 
+#include <sys/types.h>
+
 #include <string.h>
 
-/*
- * Reverse memchr()
- * Find the last occurrence of 'c' in the buffer 's' of size 'n'.
- */
-void *
-memrchr(const void *s, int c, size_t n)
+size_t
+strnlen_gc(const char *str, size_t maxlen)
 {
-	const unsigned char *cp;
+	const char *cp;
 
-	if (n != 0) {
-		cp = (unsigned char *)s + n;
-		do {
-			if (*(--cp) == (unsigned char)c)
-				return((void *)cp);
-		} while (--n != 0);
-	}
-	return(NULL);
+	for (cp = str; maxlen != 0 && *cp != '\0'; cp++, maxlen--)
+		;
+
+	return (size_t)(cp - str);
 }
-DEF_WEAK(memrchr);
diff --git a/libc/arch-riscv64/string/strnlen_v.S b/libc/arch-riscv64/string/strnlen_v.S
new file mode 100644
index 0000000..bd1bb9a
--- /dev/null
+++ b/libc/arch-riscv64/string/strnlen_v.S
@@ -0,0 +1,89 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *  * Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *  * Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in
+ *    the documentation and/or other materials provided with the
+ *    distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+/*
+ * Copyright (c) 2023 SiFive, Inc.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. The name of the company may not be used to endorse or promote
+ *    products derived from this software without specific prior written
+ *    permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY SIFIVE INC ``AS IS'' AND ANY EXPRESS OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL SIFIVE INC BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
+ * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include <private/bionic_asm.h>
+
+#define pStr a0
+#define pCopyStr a2
+#define iRetValue a0
+#define iMaxlen a1
+#define iCurrentVL a3
+#define iEndOffset a4
+
+#define ELEM_LMUL_SETTING m1
+#define vStr v0
+#define vMaskEnd v8
+
+ENTRY(strnlen_v)
+
+    mv pCopyStr, pStr
+    mv iRetValue, iMaxlen
+L(strnlen_loop):
+    beqz iMaxlen, L(end_strnlen_loop)
+    vsetvli zero, iMaxlen, e8, ELEM_LMUL_SETTING, ta, ma
+    vle8ff.v vStr, (pCopyStr)
+    vmseq.vi vMaskEnd, vStr, 0
+    vfirst.m iEndOffset, vMaskEnd /* first occurrence of \0 */
+    csrr iCurrentVL, vl
+    add pCopyStr, pCopyStr, iCurrentVL
+    sub iMaxlen, iMaxlen, iCurrentVL
+    bltz iEndOffset, L(strnlen_loop)
+    add iMaxlen, iMaxlen, iCurrentVL
+    sub iRetValue, iRetValue, iMaxlen
+    add iRetValue, iRetValue, iEndOffset
+L(end_strnlen_loop):
+    ret
+
+END(strnlen_v)
diff --git a/libc/arch-x86/bionic/__restore.S b/libc/arch-x86/bionic/__restore.S
deleted file mode 100644
index 5977eab..0000000
--- a/libc/arch-x86/bionic/__restore.S
+++ /dev/null
@@ -1,91 +0,0 @@
-/*
- * Copyright (C) 2014 The Android Open Source Project
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *  * Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- *  * Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in
- *    the documentation and/or other materials provided with the
- *    distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
- * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#include <private/bionic_asm.h>
-#include <private/bionic_asm_dwarf_exprs.h>
-
-// Offsets into struct sigcontext.
-#define OFFSET_EDI 16
-#define OFFSET_ESI 20
-#define OFFSET_EBP 24
-#define OFFSET_ESP 28
-#define OFFSET_EBX 32
-#define OFFSET_EDX 36
-#define OFFSET_ECX 40
-#define OFFSET_EAX 44
-#define OFFSET_EIP 56
-
-// Non-standard DWARF constants for the x86 registers.
-#define DW_x86_REG_EAX 0
-#define DW_x86_REG_ECX 1
-#define DW_x86_REG_EDX 2
-#define DW_x86_REG_EBX 3
-#define DW_x86_REG_ESP 4
-#define DW_x86_REG_EBP 5
-#define DW_x86_REG_ESI 6
-#define DW_x86_REG_EDI 7
-#define DW_x86_REG_EIP 8
-
-#define RESTORE_GPR(reg, extra_offset)                    \
-    m_cfi_breg_offset DW_x86_REG_ ## reg,                 \
-                      DW_x86_REG_ESP,                     \
-                      (OFFSET_ ## reg + (extra_offset));
-
-// Restoring ESP is unnecessary as the unwinder simply uses the CFA value.
-#define RESTORE_GPRS(extra_offset)                                      \
-    m_cfi_def_cfa_deref DW_x86_REG_ESP, (OFFSET_ESP + (extra_offset));  \
-    RESTORE_GPR(EDI, extra_offset)                                      \
-    RESTORE_GPR(ESI, extra_offset)                                      \
-    RESTORE_GPR(EBP, extra_offset)                                      \
-    RESTORE_GPR(EBX, extra_offset)                                      \
-    RESTORE_GPR(EDX, extra_offset)                                      \
-    RESTORE_GPR(ECX, extra_offset)                                      \
-    RESTORE_GPR(EAX, extra_offset)                                      \
-    RESTORE_GPR(EIP, extra_offset)                                      \
-
-  .text
-
-  .cfi_startproc
-  .cfi_signal_frame
-  RESTORE_GPRS(4)
-  nop   // See comment in libc/arch-x86_64/bionic/__restore_rt.S about this nop.
-ENTRY_PRIVATE_NO_DWARF(__restore)
-  popl %eax
-  RESTORE_GPRS(0)
-  movl $__NR_sigreturn, %eax
-  int $0x80
-END(__restore)
-
-  .cfi_startproc
-  .cfi_signal_frame
-  RESTORE_GPRS(160)
-  nop   // See comment in libc/arch-x86_64/bionic/__restore_rt.S about this nop.
-ENTRY_PRIVATE_NO_DWARF(__restore_rt)
-  movl $__NR_rt_sigreturn, %eax
-  int $0x80
-END(__restore_rt)
diff --git a/libc/arch-x86/bionic/setjmp.S b/libc/arch-x86/bionic/setjmp.S
index 1a3eb4b..b9e6bdf 100644
--- a/libc/arch-x86/bionic/setjmp.S
+++ b/libc/arch-x86/bionic/setjmp.S
@@ -64,23 +64,17 @@
   .endr
 .endm
 
-ENTRY(setjmp)
-__BIONIC_WEAK_ASM_FOR_NATIVE_BRIDGE(setjmp)
-  movl 4(%esp),%ecx
+ENTRY_WEAK_FOR_NATIVE_BRIDGE(setjmp)
   mov $1,%eax
   jmp .L_sigsetjmp
 END(setjmp)
 
-ENTRY(_setjmp)
-__BIONIC_WEAK_ASM_FOR_NATIVE_BRIDGE(_setjmp)
-  movl 4(%esp),%ecx
+ENTRY_WEAK_FOR_NATIVE_BRIDGE(_setjmp)
   movl $0,%eax
   jmp .L_sigsetjmp
 END(_setjmp)
 
-ENTRY(sigsetjmp)
-__BIONIC_WEAK_ASM_FOR_NATIVE_BRIDGE(sigsetjmp)
-  movl 4(%esp),%ecx
+ENTRY_WEAK_FOR_NATIVE_BRIDGE(sigsetjmp)
   movl 8(%esp),%eax
 
 .L_sigsetjmp:
@@ -91,6 +85,7 @@
   PIC_EPILOGUE
 
   // Record the setjmp cookie and whether or not we're saving the signal mask.
+  movl 4(%esp),%ecx
   movl %eax,(_JB_SIGFLAG * 4)(%ecx)
 
   // Do we need to save the signal mask?
@@ -135,8 +130,7 @@
   ret
 END(sigsetjmp)
 
-ENTRY(siglongjmp)
-__BIONIC_WEAK_ASM_FOR_NATIVE_BRIDGE(siglongjmp)
+ENTRY_WEAK_FOR_NATIVE_BRIDGE(siglongjmp)
   movl 4(%esp),%edx
 
   // Check the checksum before doing anything.
@@ -210,7 +204,5 @@
   call PIC_PLT(__bionic_setjmp_checksum_mismatch)
 END(siglongjmp)
 
-ALIAS_SYMBOL(longjmp, siglongjmp)
-__BIONIC_WEAK_ASM_FOR_NATIVE_BRIDGE(longjmp)
-ALIAS_SYMBOL(_longjmp, siglongjmp)
-__BIONIC_WEAK_ASM_FOR_NATIVE_BRIDGE(_longjmp)
+ALIAS_SYMBOL_WEAK_FOR_NATIVE_BRIDGE(longjmp, siglongjmp)
+ALIAS_SYMBOL_WEAK_FOR_NATIVE_BRIDGE(_longjmp, siglongjmp)
diff --git a/libc/arch-x86/bionic/vfork.S b/libc/arch-x86/bionic/vfork.S
index 231a36e..872d0c2 100644
--- a/libc/arch-x86/bionic/vfork.S
+++ b/libc/arch-x86/bionic/vfork.S
@@ -31,8 +31,7 @@
 
 // This custom code preserves the return address across the system call.
 
-ENTRY(vfork)
-__BIONIC_WEAK_ASM_FOR_NATIVE_BRIDGE(vfork)
+ENTRY_WEAK_FOR_NATIVE_BRIDGE(vfork)
   popl    %ecx  // Grab the return address.
   .cfi_adjust_cfa_offset 4
   .cfi_rel_offset ecx, 0
diff --git a/libc/arch-x86/dynamic_function_dispatch.cpp b/libc/arch-x86/dynamic_function_dispatch.cpp
index 38d8a0a..240fcdf 100644
--- a/libc/arch-x86/dynamic_function_dispatch.cpp
+++ b/libc/arch-x86/dynamic_function_dispatch.cpp
@@ -26,129 +26,16 @@
  * SUCH DAMAGE.
  */
 
-#include <stddef.h>
-
 #include <private/bionic_ifuncs.h>
+#include <stddef.h>
 
 extern "C" {
 
-typedef int memcmp_func(const void* __lhs, const void* __rhs, size_t __n);
 DEFINE_IFUNC_FOR(memcmp) {
-    __builtin_cpu_init();
-    if (__builtin_cpu_is("atom")) RETURN_FUNC(memcmp_func, memcmp_atom);
-    if (__builtin_cpu_supports("sse4.1")) RETURN_FUNC(memcmp_func, memcmp_sse4);
-    RETURN_FUNC(memcmp_func, memcmp_generic);
+  __builtin_cpu_init();
+  if (__builtin_cpu_supports("sse4.1")) RETURN_FUNC(memcmp_func_t, memcmp_sse4);
+  RETURN_FUNC(memcmp_func_t, memcmp_atom);
 }
-
-typedef void* memset_func(void* __dst, int __ch, size_t __n);
-DEFINE_IFUNC_FOR(memset) {
-    __builtin_cpu_init();
-    if (__builtin_cpu_is("atom")) RETURN_FUNC(memset_func, memset_atom);
-    RETURN_FUNC(memset_func, memset_generic);
-}
-
-typedef void* __memset_chk_func(void *s, int c, size_t n, size_t n2);
-DEFINE_IFUNC_FOR(__memset_chk) {
-    __builtin_cpu_init();
-    if (__builtin_cpu_is("atom")) RETURN_FUNC(__memset_chk_func, __memset_chk_atom);
-    RETURN_FUNC(__memset_chk_func, __memset_chk_generic);
-}
-
-typedef void* memmove_func(void* __dst, const void* __src, size_t __n);
-DEFINE_IFUNC_FOR(memmove) {
-    __builtin_cpu_init();
-    if (__builtin_cpu_is("atom")) RETURN_FUNC(memmove_func, memmove_atom);
-    RETURN_FUNC(memmove_func, memmove_generic);
-}
-
-typedef void* memcpy_func(void*, const void*, size_t);
-DEFINE_IFUNC_FOR(memcpy) {
-    return memmove_resolver();
-}
-
-typedef char* strcpy_func(char* __dst, const char* __src);
-DEFINE_IFUNC_FOR(strcpy) {
-    __builtin_cpu_init();
-    if (__builtin_cpu_is("atom")) RETURN_FUNC(strcpy_func, strcpy_atom);
-    RETURN_FUNC(strcpy_func, strcpy_generic);
-}
-
-typedef char* strncpy_func(char* __dst, const char* __src, size_t __n);
-DEFINE_IFUNC_FOR(strncpy) {
-    __builtin_cpu_init();
-    if (__builtin_cpu_is("atom")) RETURN_FUNC(strncpy_func, strncpy_atom);
-    RETURN_FUNC(strncpy_func, strncpy_generic);
-}
-
-typedef size_t strlen_func(const char* __s);
-DEFINE_IFUNC_FOR(strlen) {
-    __builtin_cpu_init();
-    if (__builtin_cpu_is("atom")) RETURN_FUNC(strlen_func, strlen_atom);
-    RETURN_FUNC(strlen_func, strlen_generic);
-}
-
-typedef int wmemcmp_func(const wchar_t* __lhs, const wchar_t* __rhs, size_t __n);
-DEFINE_IFUNC_FOR(wmemcmp) {
-    __builtin_cpu_init();
-    if (__builtin_cpu_supports("sse4.1")) RETURN_FUNC(wmemcmp_func, wmemcmp_sse4);
-    if (__builtin_cpu_is("atom")) RETURN_FUNC(wmemcmp_func, wmemcmp_atom);
-    RETURN_FUNC(wmemcmp_func, wmemcmp_freebsd);
-}
-
-typedef int strcmp_func(const char* __lhs, const char* __rhs);
-DEFINE_IFUNC_FOR(strcmp) {
-    __builtin_cpu_init();
-    if (__builtin_cpu_supports("ssse3")) RETURN_FUNC(strcmp_func, strcmp_ssse3);
-    RETURN_FUNC(strcmp_func, strcmp_generic);
-}
-
-typedef int strncmp_func(const char* __lhs, const char* __rhs, size_t __n);
-DEFINE_IFUNC_FOR(strncmp) {
-    __builtin_cpu_init();
-    if (__builtin_cpu_supports("ssse3")) RETURN_FUNC(strncmp_func, strncmp_ssse3);
-    RETURN_FUNC(strncmp_func, strncmp_generic);
-}
-
-typedef char* strcat_func(char* __dst, const char* __src);
-DEFINE_IFUNC_FOR(strcat) {
-    __builtin_cpu_init();
-    if (__builtin_cpu_supports("ssse3")) RETURN_FUNC(strcat_func, strcat_ssse3);
-    RETURN_FUNC(strcat_func, strcat_generic);
-}
-
-typedef char* strncat_func(char* __dst, const char* __src, size_t __n);
-DEFINE_IFUNC_FOR(strncat) {
-    __builtin_cpu_init();
-    if (__builtin_cpu_supports("ssse3")) RETURN_FUNC(strncat_func, strncat_ssse3);
-    RETURN_FUNC(strncat_func, strncat_openbsd);
-}
-
-typedef size_t strlcat_func(char *dst, const char *src, size_t dsize);
-DEFINE_IFUNC_FOR(strlcat) {
-    __builtin_cpu_init();
-    if (__builtin_cpu_supports("ssse3")) RETURN_FUNC(strlcat_func, strlcat_ssse3);
-    RETURN_FUNC(strlcat_func, strlcat_openbsd);
-}
-
-typedef size_t strlcpy_func(char *dst, const char *src, size_t dsize);
-DEFINE_IFUNC_FOR(strlcpy) {
-    __builtin_cpu_init();
-    if (__builtin_cpu_supports("ssse3")) RETURN_FUNC(strlcpy_func, strlcpy_ssse3);
-    RETURN_FUNC(strlcpy_func, strlcpy_openbsd);
-}
-
-typedef wchar_t* wcscat_func(wchar_t *s1, const wchar_t *s2);
-DEFINE_IFUNC_FOR(wcscat) {
-    __builtin_cpu_init();
-    if (__builtin_cpu_supports("ssse3")) RETURN_FUNC(wcscat_func, wcscat_ssse3);
-    RETURN_FUNC(wcscat_func, wcscat_freebsd);
-}
-
-typedef wchar_t* wcscpy_func(wchar_t *s1, const wchar_t *s2);
-DEFINE_IFUNC_FOR(wcscpy) {
-    __builtin_cpu_init();
-    if (__builtin_cpu_supports("ssse3")) RETURN_FUNC(wcscpy_func, wcscpy_ssse3);
-    RETURN_FUNC(wcscpy_func, wcscpy_freebsd);
-}
+MEMCMP_SHIM()
 
 }  // extern "C"
diff --git a/libc/arch-x86/generic/string/memcmp.S b/libc/arch-x86/generic/string/memcmp.S
deleted file mode 100644
index 1d327c7..0000000
--- a/libc/arch-x86/generic/string/memcmp.S
+++ /dev/null
@@ -1,44 +0,0 @@
-/*	$OpenBSD: memcmp.S,v 1.4 2005/08/07 11:30:38 espie Exp $ */
-/*
- * Written by J.T. Conklin <jtc@netbsd.org>.
- * Public domain.
- */
-
-#include <private/bionic_asm.h>
-
-ENTRY(memcmp_generic)
-	pushl	%edi
-	pushl	%esi
-	movl	12(%esp),%edi
-	movl	16(%esp),%esi
-	cld				/* set compare direction forward */
-
-	movl	20(%esp),%ecx		/* compare by words */
-	shrl	$2,%ecx
-	repe
-	cmpsl
-	jne	L5			/* do we match so far? */
-
-	movl	20(%esp),%ecx		/* compare remainder by bytes */
-	andl	$3,%ecx
-	repe
-	cmpsb
-	jne	L6			/* do we match? */
-
-	xorl	%eax,%eax		/* we match, return zero	*/
-	popl	%esi
-	popl	%edi
-	ret
-
-L5:	movl	$4,%ecx			/* We know that one of the next	*/
-	subl	%ecx,%edi		/* four pairs of bytes do not	*/
-	subl	%ecx,%esi		/* match.			*/
-	repe
-	cmpsb
-L6:	movzbl  -1(%edi),%eax		/* Perform unsigned comparison	*/
-	movzbl	-1(%esi),%edx
-	subl	%edx,%eax
-	popl	%esi
-	popl	%edi
-	ret
-END(memcmp_generic)
diff --git a/libc/arch-x86/generic/string/strcat.S b/libc/arch-x86/generic/string/strcat.S
deleted file mode 100644
index e2e9623..0000000
--- a/libc/arch-x86/generic/string/strcat.S
+++ /dev/null
@@ -1,74 +0,0 @@
-/*	$OpenBSD: strcat.S,v 1.8 2005/08/07 11:30:38 espie Exp $ */
-/*
- * Written by J.T. Conklin <jtc@netbsd.org>.
- * Public domain.
- */
-
-#include <private/bionic_asm.h>
-
-#if defined(APIWARN)
-#APP
-	.section .gnu.warning.strcat
-	.ascii "warning: strcat() is almost always misused, please use strlcat()"
-#NO_APP
-#endif
-
-/*
- * NOTE: I've unrolled the loop eight times: large enough to make a
- * significant difference, and small enough not to totally trash the
- * cache.
- */
-
-ENTRY(strcat_generic)
-	pushl	%edi			/* save edi */
-	movl	8(%esp),%edi		/* dst address */
-	movl	12(%esp),%edx		/* src address */
-	pushl	%edi			/* push destination address */
-
-	cld				/* set search forward */
-	xorl	%eax,%eax		/* set search for null terminator */
-	movl	$-1,%ecx		/* set search for lots of characters */
-	repne				/* search! */
-	scasb
-
-	leal	-1(%edi),%ecx		/* correct dst address */
-
-	.align 2,0x90
-L1:	movb	(%edx),%al		/* unroll loop, but not too much */
-	movb	%al,(%ecx)
-	testb	%al,%al
-	jz	L2
-	movb	1(%edx),%al
-	movb	%al,1(%ecx)
-	testb	%al,%al
-	jz	L2
-	movb	2(%edx),%al
-	movb	%al,2(%ecx)
-	testb	%al,%al
-	jz	L2
-	movb	3(%edx),%al
-	movb	%al,3(%ecx)
-	testb	%al,%al
-	jz	L2
-	movb	4(%edx),%al
-	movb	%al,4(%ecx)
-	testb	%al,%al
-	jz	L2
-	movb	5(%edx),%al
-	movb	%al,5(%ecx)
-	testb	%al,%al
-	jz	L2
-	movb	6(%edx),%al
-	movb	%al,6(%ecx)
-	testb	%al,%al
-	jz	L2
-	movb	7(%edx),%al
-	movb	%al,7(%ecx)
-	addl	$8,%edx
-	addl	$8,%ecx
-	testb	%al,%al
-	jnz	L1
-L2:	popl	%eax			/* pop destination address */
-	popl	%edi			/* restore edi */
-	ret
-END(strcat_generic)
diff --git a/libc/arch-x86/generic/string/strcmp.S b/libc/arch-x86/generic/string/strcmp.S
deleted file mode 100644
index 7b003e8..0000000
--- a/libc/arch-x86/generic/string/strcmp.S
+++ /dev/null
@@ -1,82 +0,0 @@
-/*	$OpenBSD: strcmp.S,v 1.3 2005/08/07 11:30:38 espie Exp $ */
-/*
- * Written by J.T. Conklin <jtc@netbsd.org>.
- * Public domain.
- */
-
-#include <private/bionic_asm.h>
-
-/*
- * NOTE: I've unrolled the loop eight times: large enough to make a
- * significant difference, and small enough not to totally trash the
- * cache.
- */
-
-ENTRY(strcmp_generic)
-	movl	0x04(%esp),%eax
-	movl	0x08(%esp),%edx
-	jmp	L2			/* Jump into the loop! */
-
-	.align	2,0x90
-L1:	incl	%eax
-	incl	%edx
-L2:	movb	(%eax),%cl
-	testb	%cl,%cl			/* null terminator??? */
-	jz	L3
-	cmpb	%cl,(%edx)		/* chars match??? */
-	jne	L3
-	incl	%eax
-	incl	%edx
-	movb	(%eax),%cl
-	testb	%cl,%cl
-	jz	L3
-	cmpb	%cl,(%edx)
-	jne	L3
-	incl	%eax
-	incl	%edx
-	movb	(%eax),%cl
-	testb	%cl,%cl
-	jz	L3
-	cmpb	%cl,(%edx)
-	jne	L3
-	incl	%eax
-	incl	%edx
-	movb	(%eax),%cl
-	testb	%cl,%cl
-	jz	L3
-	cmpb	%cl,(%edx)
-	jne	L3
-	incl	%eax
-	incl	%edx
-	movb	(%eax),%cl
-	testb	%cl,%cl
-	jz	L3
-	cmpb	%cl,(%edx)
-	jne	L3
-	incl	%eax
-	incl	%edx
-	movb	(%eax),%cl
-	testb	%cl,%cl
-	jz	L3
-	cmpb	%cl,(%edx)
-	jne	L3
-	incl	%eax
-	incl	%edx
-	movb	(%eax),%cl
-	testb	%cl,%cl
-	jz	L3
-	cmpb	%cl,(%edx)
-	jne	L3
-	incl	%eax
-	incl	%edx
-	movb	(%eax),%cl
-	testb	%cl,%cl
-	jz	L3
-	cmpb	%cl,(%edx)
-	je	L1
-	.align 2, 0x90
-L3:	movzbl	(%eax),%eax		/* unsigned comparison */
-	movzbl	(%edx),%edx
-	subl	%edx,%eax
-	ret
-END(strcmp_generic)
diff --git a/libc/arch-x86/generic/string/strlcat.c b/libc/arch-x86/generic/string/strlcat.c
deleted file mode 100644
index 95c34a3..0000000
--- a/libc/arch-x86/generic/string/strlcat.c
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * Copyright (C) 2018 The Android Open Source Project
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *  * Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- *  * Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in
- *    the documentation and/or other materials provided with the
- *    distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
- * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#include <upstream-openbsd/android/include/openbsd-compat.h>
-
-#define strlcat strlcat_openbsd
-#include <upstream-openbsd/lib/libc/string/strlcat.c>
diff --git a/libc/arch-x86/generic/string/strlcpy.c b/libc/arch-x86/generic/string/strlcpy.c
deleted file mode 100644
index 8d4047c..0000000
--- a/libc/arch-x86/generic/string/strlcpy.c
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * Copyright (C) 2018 The Android Open Source Project
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *  * Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- *  * Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in
- *    the documentation and/or other materials provided with the
- *    distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
- * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#include <upstream-openbsd/android/include/openbsd-compat.h>
-
-#define strlcpy strlcpy_openbsd
-#include <upstream-openbsd/lib/libc/string/strlcpy.c>
diff --git a/libc/arch-x86/generic/string/strncmp.S b/libc/arch-x86/generic/string/strncmp.S
deleted file mode 100644
index 6d9f23c..0000000
--- a/libc/arch-x86/generic/string/strncmp.S
+++ /dev/null
@@ -1,114 +0,0 @@
-/*	$OpenBSD: strncmp.S,v 1.3 2005/08/07 11:30:38 espie Exp $ */
-/*
- * Written by J.T. Conklin <jtc@netbsd.org>.
- * Public domain.
- */
-
-#include <private/bionic_asm.h>
-
-/*
- * NOTE: I've unrolled the loop eight times: large enough to make a
- * significant difference, and small enough not to totally trash the
- * cache.
- */
-
-ENTRY(strncmp_generic)
-	pushl	%ebx
-	movl	8(%esp),%eax
-	movl	12(%esp),%ecx
-	movl	16(%esp),%edx
-	testl	%edx,%edx
-	jmp	L2			/* Jump into the loop! */
-
-	.align 2,0x90
-L1:	incl	%eax
-	incl	%ecx
-	decl	%edx
-L2:	jz	L4			/* strings are equal */
-	movb	(%eax),%bl
-	testb	%bl,%bl
-	jz	L3
-	cmpb	%bl,(%ecx)
-	jne	L3
-
-	incl	%eax
-	incl	%ecx
-	decl	%edx
-	jz	L4
-	movb	(%eax),%bl
-	testb	%bl,%bl
-	jz	L3
-	cmpb	%bl,(%ecx)
-	jne	L3
-
-	incl	%eax
-	incl	%ecx
-	decl	%edx
-	jz	L4
-	movb	(%eax),%bl
-	testb	%bl,%bl
-	jz	L3
-	cmpb	%bl,(%ecx)
-	jne	L3
-
-	incl	%eax
-	incl	%ecx
-	decl	%edx
-	jz	L4
-	movb	(%eax),%bl
-	testb	%bl,%bl
-	jz	L3
-	cmpb	%bl,(%ecx)
-	jne	L3
-
-	incl	%eax
-	incl	%ecx
-	decl	%edx
-	jz	L4
-	movb	(%eax),%bl
-	testb	%bl,%bl
-	jz	L3
-	cmpb	%bl,(%ecx)
-	jne	L3
-
-	incl	%eax
-	incl	%ecx
-	decl	%edx
-	jz	L4
-	movb	(%eax),%bl
-	testb	%bl,%bl
-	jz	L3
-	cmpb	%bl,(%ecx)
-	jne	L3
-
-	incl	%eax
-	incl	%ecx
-	decl	%edx
-	jz	L4
-	movb	(%eax),%bl
-	testb	%bl,%bl
-	jz	L3
-	cmpb	%bl,(%ecx)
-	jne	L3
-
-	incl	%eax
-	incl	%ecx
-	decl	%edx
-	jz	L4
-	movb	(%eax),%bl
-	testb	%bl,%bl
-	jz	L3
-	cmpb	%bl,(%ecx)
-	je	L1
-
-	.align 2,0x90
-L3:	movzbl	(%eax),%eax		/* unsigned comparision */
-	movzbl	(%ecx),%ecx
-	subl	%ecx,%eax
-	popl	%ebx
-	ret
-	.align 2,0x90
-L4:	xorl	%eax,%eax
-	popl	%ebx
-	ret
-END(strncmp_generic)
diff --git a/libc/arch-x86/generic/string/wcscat.c b/libc/arch-x86/generic/string/wcscat.c
deleted file mode 100644
index a102551..0000000
--- a/libc/arch-x86/generic/string/wcscat.c
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * Copyright (C) 2018 The Android Open Source Project
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *  * Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- *  * Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in
- *    the documentation and/or other materials provided with the
- *    distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
- * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#define wcscat wcscat_freebsd
-#include <upstream-freebsd/lib/libc/string/wcscat.c>
diff --git a/libc/arch-x86/generic/string/wcscpy.c b/libc/arch-x86/generic/string/wcscpy.c
deleted file mode 100644
index 10fb66d..0000000
--- a/libc/arch-x86/generic/string/wcscpy.c
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * Copyright (C) 2018 The Android Open Source Project
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *  * Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- *  * Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in
- *    the documentation and/or other materials provided with the
- *    distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
- * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#define wcscpy wcscpy_freebsd
-#include <upstream-freebsd/lib/libc/string/wcscpy.c>
diff --git a/libc/arch-x86/generic/string/wmemcmp.c b/libc/arch-x86/generic/string/wmemcmp.c
deleted file mode 100644
index 9d5e929..0000000
--- a/libc/arch-x86/generic/string/wmemcmp.c
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * Copyright (C) 2018 The Android Open Source Project
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *  * Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- *  * Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in
- *    the documentation and/or other materials provided with the
- *    distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
- * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#define wmemcmp wmemcmp_freebsd
-#include <upstream-freebsd/lib/libc/string/wmemcmp.c>
diff --git a/libc/arch-x86/static_function_dispatch.S b/libc/arch-x86/static_function_dispatch.S
deleted file mode 100644
index 7e8e63d..0000000
--- a/libc/arch-x86/static_function_dispatch.S
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * Copyright (C) 2018 The Android Open Source Project
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *  * Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- *  * Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in
- *    the documentation and/or other materials provided with the
- *    distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
- * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#include <private/bionic_asm.h>
-
-#define FUNCTION_DELEGATE(name, impl) \
-ENTRY(name); \
-    jmp impl; \
-END(name)
-
-FUNCTION_DELEGATE(memcmp, memcmp_generic)
-FUNCTION_DELEGATE(memset, memset_generic)
-FUNCTION_DELEGATE(__memset_chk, __memset_chk_generic)
-FUNCTION_DELEGATE(memcpy, memmove_generic)
-FUNCTION_DELEGATE(memmove, memmove_generic)
-FUNCTION_DELEGATE(strcpy, strcpy_generic)
-FUNCTION_DELEGATE(strncpy, strncpy_generic)
-FUNCTION_DELEGATE(strlen, strlen_generic)
-FUNCTION_DELEGATE(strcmp, strcmp_generic)
-FUNCTION_DELEGATE(strncmp, strncmp_generic)
-FUNCTION_DELEGATE(strcat, strcat_generic)
-FUNCTION_DELEGATE(wmemcmp, wmemcmp_freebsd)
-FUNCTION_DELEGATE(wcscat, wcscat_freebsd)
-FUNCTION_DELEGATE(strncat, strncat_openbsd)
-FUNCTION_DELEGATE(strlcat, strlcat_openbsd)
-FUNCTION_DELEGATE(strlcpy, strlcpy_openbsd)
-FUNCTION_DELEGATE(wcscpy, wcscpy_freebsd)
diff --git a/libc/arch-x86/string/cache.h b/libc/arch-x86/string/cache.h
deleted file mode 100644
index 33719a0..0000000
--- a/libc/arch-x86/string/cache.h
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
-Copyright (c) 2010, Intel Corporation
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
-    * Redistributions of source code must retain the above copyright notice,
-    * this list of conditions and the following disclaimer.
-
-    * Redistributions in binary form must reproduce the above copyright notice,
-    * this list of conditions and the following disclaimer in the documentation
-    * and/or other materials provided with the distribution.
-
-    * Neither the name of Intel Corporation nor the names of its contributors
-    * may be used to endorse or promote products derived from this software
-    * without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
-ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-
-#ifdef FOR_ATOM
-#define SHARED_CACHE_SIZE (512 * 1024) /* Atom L2 Cache */
-#endif
-#ifdef FOR_SILVERMONT
-#define SHARED_CACHE_SIZE (1024 * 1024) /* Silvermont L2 Cache */
-#endif
-
-#define DATA_CACHE_SIZE (24 * 1024) /* Atom and Silvermont L1 Data Cache */
-
-#define SHARED_CACHE_SIZE_HALF (SHARED_CACHE_SIZE / 2)
-#define DATA_CACHE_SIZE_HALF (DATA_CACHE_SIZE / 2)
diff --git a/libc/arch-x86/string/sse2-memmove-slm.S b/libc/arch-x86/string/sse2-memmove-slm.S
index 79b5d1b..2ed4e7b 100644
--- a/libc/arch-x86/string/sse2-memmove-slm.S
+++ b/libc/arch-x86/string/sse2-memmove-slm.S
@@ -29,10 +29,9 @@
 */
 
 #define FOR_SILVERMONT
-#include "cache.h"
 
 #ifndef MEMMOVE
-# define MEMMOVE	memmove_generic
+# define MEMMOVE	memmove
 #endif
 
 #ifndef L
@@ -94,6 +93,8 @@
 #define RETURN_END	POP (%ebx); ret
 #define RETURN		RETURN_END; CFI_PUSH (%ebx)
 
+#define SETUP_PIC_REG(x)	call	__x86.get_pc_thunk.x
+
 	.section .text.sse2,"ax",@progbits
 ENTRY (MEMMOVE)
 	ENTRANCE
@@ -193,7 +194,13 @@
 	cmp	%edi, %ebx
 	jbe	L(mm_copy_remaining_forward)
 
-	cmp	$SHARED_CACHE_SIZE_HALF, %ecx
+	PUSH(%ebx)
+	SETUP_PIC_REG(bx)
+	add	$_GLOBAL_OFFSET_TABLE_, %ebx
+	cmp	__x86_shared_cache_size_half@GOTOFF(%ebx), %ecx
+	/* Restore ebx. We can place a pop before jump as it doesn't affect any flags. */
+	POP(%ebx)
+
 	jae	L(mm_large_page_loop_forward)
 
 	.p2align 4
@@ -424,7 +431,13 @@
 	cmp	%edi, %ebx
 	jae	L(mm_main_loop_backward_end)
 
-	cmp	$SHARED_CACHE_SIZE_HALF, %ecx
+	PUSH(%ebx)
+	SETUP_PIC_REG(bx)
+	add	$_GLOBAL_OFFSET_TABLE_, %ebx
+	cmp	__x86_shared_cache_size_half@GOTOFF(%ebx), %ecx
+	/* Restore ebx. We can place a pop before jump as it doesn't affect any flags. */
+	POP(%ebx)
+
 	jae	L(mm_large_page_loop_backward)
 
 	.p2align 4
@@ -538,3 +551,9 @@
 	jmp	L(mm_recalc_len)
 
 END (MEMMOVE)
+
+// N.B., `private/bionic_asm.h` provides ALIAS_SYMBOL, but that file provides
+// conflicting definitions for some macros in this file. Since ALIAS_SYMBOL is
+// small, inline it here.
+.globl memcpy;
+.equ memcpy, MEMMOVE
diff --git a/libc/arch-x86/string/sse2-memrchr-atom.S b/libc/arch-x86/string/sse2-memrchr-atom.S
deleted file mode 100644
index 1aa1a1a..0000000
--- a/libc/arch-x86/string/sse2-memrchr-atom.S
+++ /dev/null
@@ -1,778 +0,0 @@
-/*
-Copyright (c) 2011, Intel Corporation
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
-    * Redistributions of source code must retain the above copyright notice,
-    * this list of conditions and the following disclaimer.
-
-    * Redistributions in binary form must reproduce the above copyright notice,
-    * this list of conditions and the following disclaimer in the documentation
-    * and/or other materials provided with the distribution.
-
-    * Neither the name of Intel Corporation nor the names of its contributors
-    * may be used to endorse or promote products derived from this software
-    * without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
-ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-
-#ifndef L
-# define L(label)	.L##label
-#endif
-
-#ifndef cfi_startproc
-# define cfi_startproc	.cfi_startproc
-#endif
-
-#ifndef cfi_endproc
-# define cfi_endproc	.cfi_endproc
-#endif
-
-#ifndef cfi_rel_offset
-# define cfi_rel_offset(reg, off)	.cfi_rel_offset reg, off
-#endif
-
-#ifndef cfi_restore
-# define cfi_restore(reg)	.cfi_restore reg
-#endif
-
-#ifndef cfi_adjust_cfa_offset
-# define cfi_adjust_cfa_offset(off)	.cfi_adjust_cfa_offset off
-#endif
-
-#ifndef ENTRY
-# define ENTRY(name)	\
-	.type name,  @function;	\
-	.globl name;	\
-	.p2align 4;	\
-name:	\
-	cfi_startproc
-#endif
-
-#ifndef END
-# define END(name)	\
-	cfi_endproc;	\
-	.size name,	.-name
-#endif
-
-#define CFI_PUSH(REG)	\
-	cfi_adjust_cfa_offset (4);	\
-	cfi_rel_offset (REG, 0)
-
-#define CFI_POP(REG)	\
-	cfi_adjust_cfa_offset (-4);	\
-	cfi_restore (REG)
-
-#define PUSH(REG) pushl REG; CFI_PUSH (REG)
-#define POP(REG) popl REG; CFI_POP (REG)
-
-#define PARMS  4
-#define STR1  PARMS
-#define STR2  STR1+4
-#define LEN   STR2+4
-
-	.text
-ENTRY (memrchr)
-	mov	STR1(%esp), %ecx
-	movd	STR2(%esp), %xmm1
-	mov	LEN(%esp), %edx
-
-	test	%edx, %edx
-	jz	L(return_null)
-	sub	$16, %edx
-	jbe	L(length_less16)
-
-	punpcklbw %xmm1, %xmm1
-	add	%edx, %ecx
-	punpcklbw %xmm1, %xmm1
-
-	movdqu	(%ecx), %xmm0
-	pshufd	$0, %xmm1, %xmm1
-	pcmpeqb	%xmm1, %xmm0
-
-	pmovmskb %xmm0, %eax
-	test	%eax, %eax
-	jnz	L(exit_dispatch)
-
-	sub	$64, %ecx
-	mov	%ecx, %eax
-	and	$15, %eax
-	jz	L(loop_prolog)
-
-	add	$16, %ecx
-	add	$16, %edx
-	and	$-16, %ecx
-	sub	%eax, %edx
-
-	.p2align 4
-/* Loop start on aligned string.  */
-L(loop_prolog):
-	sub	$64, %edx
-	jbe	L(exit_loop)
-
-	movdqa	48(%ecx), %xmm0
-	pcmpeqb	%xmm1, %xmm0
-	pmovmskb %xmm0, %eax
-	test	%eax, %eax
-	jnz	L(matches48)
-
-	movdqa	32(%ecx), %xmm2
-	pcmpeqb	%xmm1, %xmm2
-	pmovmskb %xmm2, %eax
-	test	%eax, %eax
-	jnz	L(matches32)
-
-	movdqa	16(%ecx), %xmm3
-	pcmpeqb	%xmm1, %xmm3
-	pmovmskb %xmm3, %eax
-	test	%eax, %eax
-	jnz	L(matches16)
-
-	movdqa	(%ecx), %xmm4
-	pcmpeqb	%xmm1, %xmm4
-	pmovmskb %xmm4, %eax
-	test	%eax, %eax
-	jnz	L(exit_dispatch)
-
-	sub	$64, %ecx
-	sub	$64, %edx
-	jbe	L(exit_loop)
-
-	movdqa	48(%ecx), %xmm0
-	pcmpeqb	%xmm1, %xmm0
-	pmovmskb %xmm0, %eax
-	test	%eax, %eax
-	jnz	L(matches48)
-
-	movdqa	32(%ecx), %xmm2
-	pcmpeqb	%xmm1, %xmm2
-	pmovmskb %xmm2, %eax
-	test	%eax, %eax
-	jnz	L(matches32)
-
-	movdqa	16(%ecx), %xmm3
-	pcmpeqb	%xmm1, %xmm3
-	pmovmskb %xmm3, %eax
-	test	%eax, %eax
-	jnz	L(matches16)
-
-	movdqa	(%ecx), %xmm3
-	pcmpeqb	%xmm1, %xmm3
-	pmovmskb %xmm3, %eax
-	test	%eax, %eax
-	jnz	L(exit_dispatch)
-
-	mov	%ecx, %eax
-	and	$63, %eax
-	test	%eax, %eax
-	jz	L(align64_loop)
-
-	add	$64, %ecx
-	add	$64, %edx
-	and	$-64, %ecx
-	sub	%eax, %edx
-
-	.p2align 4
-L(align64_loop):
-	sub	$64, %ecx
-	sub	$64, %edx
-	jbe	L(exit_loop)
-
-	movdqa	(%ecx), %xmm0
-	movdqa	16(%ecx), %xmm2
-	movdqa	32(%ecx), %xmm3
-	movdqa	48(%ecx), %xmm4
-
-	pcmpeqb	%xmm1, %xmm0
-	pcmpeqb	%xmm1, %xmm2
-	pcmpeqb	%xmm1, %xmm3
-	pcmpeqb	%xmm1, %xmm4
-
-	pmaxub	%xmm3, %xmm0
-	pmaxub	%xmm4, %xmm2
-	pmaxub	%xmm0, %xmm2
-	pmovmskb %xmm2, %eax
-
-	test	%eax, %eax
-	jz	L(align64_loop)
-
-	pmovmskb %xmm4, %eax
-	test	%eax, %eax
-	jnz	L(matches48)
-
-	pmovmskb %xmm3, %eax
-	test	%eax, %eax
-	jnz	L(matches32)
-
-	movdqa	16(%ecx), %xmm2
-
-	pcmpeqb	%xmm1, %xmm2
-	pcmpeqb	(%ecx), %xmm1
-
-	pmovmskb %xmm2, %eax
-	test	%eax, %eax
-	jnz	L(matches16)
-
-	pmovmskb %xmm1, %eax
-	test	%ah, %ah
-	jnz	L(exit_dispatch_high)
-	mov	%al, %dl
-	and	$15 << 4, %dl
-	jnz	L(exit_dispatch_8)
-	test	$0x08, %al
-	jnz	L(exit_4)
-	test	$0x04, %al
-	jnz	L(exit_3)
-	test	$0x02, %al
-	jnz	L(exit_2)
-	mov	%ecx, %eax
-	ret
-
-	.p2align 4
-L(exit_loop):
-	add	$64, %edx
-	cmp	$32, %edx
-	jbe	L(exit_loop_32)
-
-	movdqa	48(%ecx), %xmm0
-	pcmpeqb	%xmm1, %xmm0
-	pmovmskb %xmm0, %eax
-	test	%eax, %eax
-	jnz	L(matches48)
-
-	movdqa	32(%ecx), %xmm2
-	pcmpeqb	%xmm1, %xmm2
-	pmovmskb %xmm2, %eax
-	test	%eax, %eax
-	jnz	L(matches32)
-
-	movdqa	16(%ecx), %xmm3
-	pcmpeqb	%xmm1, %xmm3
-	pmovmskb %xmm3, %eax
-	test	%eax, %eax
-	jnz	L(matches16_1)
-	cmp	$48, %edx
-	jbe	L(return_null)
-
-	pcmpeqb	(%ecx), %xmm1
-	pmovmskb %xmm1, %eax
-	test	%eax, %eax
-	jnz	L(matches0_1)
-	xor	%eax, %eax
-	ret
-
-	.p2align 4
-L(exit_loop_32):
-	movdqa	48(%ecx), %xmm0
-	pcmpeqb	%xmm1, %xmm0
-	pmovmskb %xmm0, %eax
-	test	%eax, %eax
-	jnz	L(matches48_1)
-	cmp	$16, %edx
-	jbe	L(return_null)
-
-	pcmpeqb	32(%ecx), %xmm1
-	pmovmskb %xmm1, %eax
-	test	%eax, %eax
-	jnz	L(matches32_1)
-	xor	%eax, %eax
-	ret
-
-	.p2align 4
-L(matches16):
-	lea	16(%ecx), %ecx
-	test	%ah, %ah
-	jnz	L(exit_dispatch_high)
-	mov	%al, %dl
-	and	$15 << 4, %dl
-	jnz	L(exit_dispatch_8)
-	test	$0x08, %al
-	jnz	L(exit_4)
-	test	$0x04, %al
-	jnz	L(exit_3)
-	test	$0x02, %al
-	jnz	L(exit_2)
-	mov	%ecx, %eax
-	ret
-
-	.p2align 4
-L(matches32):
-	lea	32(%ecx), %ecx
-	test	%ah, %ah
-	jnz	L(exit_dispatch_high)
-	mov	%al, %dl
-	and	$15 << 4, %dl
-	jnz	L(exit_dispatch_8)
-	test	$0x08, %al
-	jnz	L(exit_4)
-	test	$0x04, %al
-	jnz	L(exit_3)
-	test	$0x02, %al
-	jnz	L(exit_2)
-	mov	%ecx, %eax
-	ret
-
-	.p2align 4
-L(matches48):
-	lea	48(%ecx), %ecx
-
-	.p2align 4
-L(exit_dispatch):
-	test	%ah, %ah
-	jnz	L(exit_dispatch_high)
-	mov	%al, %dl
-	and	$15 << 4, %dl
-	jnz	L(exit_dispatch_8)
-	test	$0x08, %al
-	jnz	L(exit_4)
-	test	$0x04, %al
-	jnz	L(exit_3)
-	test	$0x02, %al
-	jnz	L(exit_2)
-	mov	%ecx, %eax
-	ret
-
-	.p2align 4
-L(exit_dispatch_8):
-	test	$0x80, %al
-	jnz	L(exit_8)
-	test	$0x40, %al
-	jnz	L(exit_7)
-	test	$0x20, %al
-	jnz	L(exit_6)
-	lea	4(%ecx), %eax
-	ret
-
-	.p2align 4
-L(exit_dispatch_high):
-	mov	%ah, %dh
-	and	$15 << 4, %dh
-	jnz	L(exit_dispatch_high_8)
-	test	$0x08, %ah
-	jnz	L(exit_12)
-	test	$0x04, %ah
-	jnz	L(exit_11)
-	test	$0x02, %ah
-	jnz	L(exit_10)
-	lea	8(%ecx), %eax
-	ret
-
-	.p2align 4
-L(exit_dispatch_high_8):
-	test	$0x80, %ah
-	jnz	L(exit_16)
-	test	$0x40, %ah
-	jnz	L(exit_15)
-	test	$0x20, %ah
-	jnz	L(exit_14)
-	lea	12(%ecx), %eax
-	ret
-
-	.p2align 4
-L(exit_2):
-	lea	1(%ecx), %eax
-	ret
-
-	.p2align 4
-L(exit_3):
-	lea	2(%ecx), %eax
-	ret
-
-	.p2align 4
-L(exit_4):
-	lea	3(%ecx), %eax
-	ret
-
-	.p2align 4
-L(exit_6):
-	lea	5(%ecx), %eax
-	ret
-
-	.p2align 4
-L(exit_7):
-	lea	6(%ecx), %eax
-	ret
-
-	.p2align 4
-L(exit_8):
-	lea	7(%ecx), %eax
-	ret
-
-	.p2align 4
-L(exit_10):
-	lea	9(%ecx), %eax
-	ret
-
-	.p2align 4
-L(exit_11):
-	lea	10(%ecx), %eax
-	ret
-
-	.p2align 4
-L(exit_12):
-	lea	11(%ecx), %eax
-	ret
-
-	.p2align 4
-L(exit_14):
-	lea	13(%ecx), %eax
-	ret
-
-	.p2align 4
-L(exit_15):
-	lea	14(%ecx), %eax
-	ret
-
-	.p2align 4
-L(exit_16):
-	lea	15(%ecx), %eax
-	ret
-
-	.p2align 4
-L(matches0_1):
-	lea	-64(%edx), %edx
-
-	test	%ah, %ah
-	jnz	L(exit_dispatch_1_high)
-	mov	%al, %ah
-	and	$15 << 4, %ah
-	jnz	L(exit_dispatch_1_8)
-	test	$0x08, %al
-	jnz	L(exit_1_4)
-	test	$0x04, %al
-	jnz	L(exit_1_3)
-	test	$0x02, %al
-	jnz	L(exit_1_2)
-
-	add	$0, %edx
-	jl	L(return_null)
-	mov	%ecx, %eax
-	ret
-
-	.p2align 4
-L(matches16_1):
-	lea	-48(%edx), %edx
-	lea	16(%ecx), %ecx
-
-	test	%ah, %ah
-	jnz	L(exit_dispatch_1_high)
-	mov	%al, %ah
-	and	$15 << 4, %ah
-	jnz	L(exit_dispatch_1_8)
-	test	$0x08, %al
-	jnz	L(exit_1_4)
-	test	$0x04, %al
-	jnz	L(exit_1_3)
-	test	$0x02, %al
-	jnz	L(exit_1_2)
-
-	add	$0, %edx
-	jl	L(return_null)
-	mov	%ecx, %eax
-	ret
-
-	.p2align 4
-L(matches32_1):
-	lea	-32(%edx), %edx
-	lea	32(%ecx), %ecx
-
-	test	%ah, %ah
-	jnz	L(exit_dispatch_1_high)
-	mov	%al, %ah
-	and	$15 << 4, %ah
-	jnz	L(exit_dispatch_1_8)
-	test	$0x08, %al
-	jnz	L(exit_1_4)
-	test	$0x04, %al
-	jnz	L(exit_1_3)
-	test	$0x02, %al
-	jnz	L(exit_1_2)
-
-	add	$0, %edx
-	jl	L(return_null)
-	mov	%ecx, %eax
-	ret
-
-	.p2align 4
-L(matches48_1):
-	lea	-16(%edx), %edx
-	lea	48(%ecx), %ecx
-
-	.p2align 4
-L(exit_dispatch_1):
-	test	%ah, %ah
-	jnz	L(exit_dispatch_1_high)
-	mov	%al, %ah
-	and	$15 << 4, %ah
-	jnz	L(exit_dispatch_1_8)
-	test	$0x08, %al
-	jnz	L(exit_1_4)
-	test	$0x04, %al
-	jnz	L(exit_1_3)
-	test	$0x02, %al
-	jnz	L(exit_1_2)
-
-	add	$0, %edx
-	jl	L(return_null)
-	mov	%ecx, %eax
-	ret
-
-	.p2align 4
-L(exit_dispatch_1_8):
-	test	$0x80, %al
-	jnz	L(exit_1_8)
-	test	$0x40, %al
-	jnz	L(exit_1_7)
-	test	$0x20, %al
-	jnz	L(exit_1_6)
-
-	add	$4, %edx
-	jl	L(return_null)
-	lea	4(%ecx), %eax
-	ret
-
-	.p2align 4
-L(exit_dispatch_1_high):
-	mov	%ah, %al
-	and	$15 << 4, %al
-	jnz	L(exit_dispatch_1_high_8)
-	test	$0x08, %ah
-	jnz	L(exit_1_12)
-	test	$0x04, %ah
-	jnz	L(exit_1_11)
-	test	$0x02, %ah
-	jnz	L(exit_1_10)
-
-	add	$8, %edx
-	jl	L(return_null)
-	lea	8(%ecx), %eax
-	ret
-
-	.p2align 4
-L(exit_dispatch_1_high_8):
-	test	$0x80, %ah
-	jnz	L(exit_1_16)
-	test	$0x40, %ah
-	jnz	L(exit_1_15)
-	test	$0x20, %ah
-	jnz	L(exit_1_14)
-
-	add	$12, %edx
-	jl	L(return_null)
-	lea	12(%ecx), %eax
-	ret
-
-	.p2align 4
-L(exit_1_2):
-	add	$1, %edx
-	jl	L(return_null)
-	lea	1(%ecx), %eax
-	ret
-
-	.p2align 4
-L(exit_1_3):
-	add	$2, %edx
-	jl	L(return_null)
-	lea	2(%ecx), %eax
-	ret
-
-	.p2align 4
-L(exit_1_4):
-	add	$3, %edx
-	jl	L(return_null)
-	lea	3(%ecx), %eax
-	ret
-
-	.p2align 4
-L(exit_1_6):
-	add	$5, %edx
-	jl	L(return_null)
-	lea	5(%ecx), %eax
-	ret
-
-	.p2align 4
-L(exit_1_7):
-	add	$6, %edx
-	jl	L(return_null)
-	lea	6(%ecx), %eax
-	ret
-
-	.p2align 4
-L(exit_1_8):
-	add	$7, %edx
-	jl	L(return_null)
-	lea	7(%ecx), %eax
-	ret
-
-	.p2align 4
-L(exit_1_10):
-	add	$9, %edx
-	jl	L(return_null)
-	lea	9(%ecx), %eax
-	ret
-
-	.p2align 4
-L(exit_1_11):
-	add	$10, %edx
-	jl	L(return_null)
-	lea	10(%ecx), %eax
-	ret
-
-	.p2align 4
-L(exit_1_12):
-	add	$11, %edx
-	jl	L(return_null)
-	lea	11(%ecx), %eax
-	ret
-
-	.p2align 4
-L(exit_1_14):
-	add	$13, %edx
-	jl	L(return_null)
-	lea	13(%ecx), %eax
-	ret
-
-	.p2align 4
-L(exit_1_15):
-	add	$14, %edx
-	jl	L(return_null)
-	lea	14(%ecx), %eax
-	ret
-
-	.p2align 4
-L(exit_1_16):
-	add	$15, %edx
-	jl	L(return_null)
-	lea	15(%ecx), %eax
-	ret
-
-	.p2align 4
-L(return_null):
-	xor	%eax, %eax
-	ret
-
-	.p2align 4
-L(length_less16_offset0):
-	mov	%dl, %cl
-	pcmpeqb	(%eax), %xmm1
-
-	mov	$1, %edx
-	sal	%cl, %edx
-	sub	$1, %edx
-
-	mov	%eax, %ecx
-	pmovmskb %xmm1, %eax
-
-	and	%edx, %eax
-	test	%eax, %eax
-	jnz	L(exit_dispatch)
-
-	xor	%eax, %eax
-	ret
-
-	.p2align 4
-L(length_less16):
-	punpcklbw %xmm1, %xmm1
-	add	$16, %edx
-	punpcklbw %xmm1, %xmm1
-
-	mov	%ecx, %eax
-	pshufd	$0, %xmm1, %xmm1
-
-	and	$15, %ecx
-	jz	L(length_less16_offset0)
-
-	PUSH	(%edi)
-
-	mov	%cl, %dh
-	add	%dl, %dh
-	and	$-16, %eax
-
-	sub	$16, %dh
-	ja	L(length_less16_part2)
-
-	pcmpeqb	(%eax), %xmm1
-	pmovmskb %xmm1, %edi
-
-	sar	%cl, %edi
-	add	%ecx, %eax
-	mov	%dl, %cl
-
-	mov	$1, %edx
-	sal	%cl, %edx
-	sub	$1, %edx
-
-	and	%edx, %edi
-	test	%edi, %edi
-	jz	L(ret_null)
-
-	bsr	%edi, %edi
-	add	%edi, %eax
-	POP	(%edi)
-	ret
-
-	CFI_PUSH     (%edi)
-
-	.p2align 4
-L(length_less16_part2):
-	movdqa	16(%eax), %xmm2
-	pcmpeqb	%xmm1, %xmm2
-	pmovmskb %xmm2, %edi
-
-	mov	%cl, %ch
-
-	mov	%dh, %cl
-	mov	$1, %edx
-	sal	%cl, %edx
-	sub	$1, %edx
-
-	and	%edx, %edi
-
-	test	%edi, %edi
-	jnz	L(length_less16_part2_return)
-
-	pcmpeqb	(%eax), %xmm1
-	pmovmskb %xmm1, %edi
-
-	mov	%ch, %cl
-	sar	%cl, %edi
-	test	%edi, %edi
-	jz	L(ret_null)
-
-	bsr	%edi, %edi
-	add	%edi, %eax
-	xor	%ch, %ch
-	add	%ecx, %eax
-	POP	(%edi)
-	ret
-
-	CFI_PUSH     (%edi)
-
-	.p2align 4
-L(length_less16_part2_return):
-	bsr	%edi, %edi
-	lea	16(%eax, %edi), %eax
-	POP	(%edi)
-	ret
-
-	CFI_PUSH     (%edi)
-
-	.p2align 4
-L(ret_null):
-	xor	%eax, %eax
-	POP	(%edi)
-	ret
-
-END (memrchr)
diff --git a/libc/arch-x86/string/sse2-memset-atom.S b/libc/arch-x86/string/sse2-memset-atom.S
deleted file mode 100644
index 320afec..0000000
--- a/libc/arch-x86/string/sse2-memset-atom.S
+++ /dev/null
@@ -1,834 +0,0 @@
-/*
-Copyright (c) 2010, Intel Corporation
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
-    * Redistributions of source code must retain the above copyright notice,
-    * this list of conditions and the following disclaimer.
-
-    * Redistributions in binary form must reproduce the above copyright notice,
-    * this list of conditions and the following disclaimer in the documentation
-    * and/or other materials provided with the distribution.
-
-    * Neither the name of Intel Corporation nor the names of its contributors
-    * may be used to endorse or promote products derived from this software
-    * without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
-ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-
-#include <private/bionic_asm.h>
-
-#define FOR_ATOM
-#include "cache.h"
-
-#ifndef L
-# define L(label)	.L##label
-#endif
-
-#ifndef ALIGN
-# define ALIGN(n)	.p2align n
-#endif
-
-#define CFI_PUSH(REG)						\
-  .cfi_adjust_cfa_offset 4;					\
-  .cfi_rel_offset REG, 0
-
-#define CFI_POP(REG)						\
-  .cfi_adjust_cfa_offset -4;					\
-  .cfi_restore REG
-
-#define PUSH(REG)	pushl REG; CFI_PUSH(REG)
-#define POP(REG)	popl REG; CFI_POP(REG)
-
-#define PARMS 8  /* Preserve EBX. */
-#define DST PARMS
-#define CHR (DST+4)
-#define LEN (CHR+4)
-#define CHK_DST_LEN (LEN+4)
-#define SETRTNVAL	movl DST(%esp), %eax
-
-#define ENTRANCE	PUSH(%ebx);
-#define RETURN_END	POP(%ebx); ret
-#define RETURN		RETURN_END; CFI_PUSH(%ebx)
-#define JMPTBL(I, B)	I - B
-
-/* Load an entry in a jump table into EBX and branch to it.  TABLE is a
-   jump table with relative offsets.   */
-# define BRANCH_TO_JMPTBL_ENTRY(TABLE)				\
-    /* We first load PC into EBX.  */				\
-    call	__x86.get_pc_thunk.bx;				\
-    /* Get the address of the jump table.  */			\
-    add		$(TABLE - .), %ebx;				\
-    /* Get the entry and convert the relative offset to the	\
-       absolute address.  */					\
-    add		(%ebx,%ecx,4), %ebx;				\
-    add		%ecx, %edx;					\
-    /* We loaded the jump table and adjusted EDX. Go.  */	\
-    jmp		*%ebx
-
-ENTRY(__memset_chk_atom)
-  ENTRANCE
-
-  movl LEN(%esp), %ecx
-  cmpl CHK_DST_LEN(%esp), %ecx
-  jna L(memset_length_loaded)
-
-  POP(%ebx) // Undo ENTRANCE without returning.
-  jmp __memset_chk_fail
-END(__memset_chk_atom)
-
-	.section .text.sse2,"ax",@progbits
-	ALIGN(4)
-ENTRY(memset_atom)
-	ENTRANCE
-
-	movl	LEN(%esp), %ecx
-L(memset_length_loaded):
-	movzbl	CHR(%esp), %eax
-	movb	%al, %ah
-	/* Fill the whole EAX with pattern.  */
-	movl	%eax, %edx
-	shl	$16, %eax
-	or	%edx, %eax
-	movl	DST(%esp), %edx
-	cmp	$32, %ecx
-	jae	L(32bytesormore)
-
-L(write_less32bytes):
-	BRANCH_TO_JMPTBL_ENTRY(L(table_less_32bytes))
-
-
-	.pushsection .rodata.sse2,"a",@progbits
-	ALIGN(2)
-L(table_less_32bytes):
-	.int	JMPTBL(L(write_0bytes), L(table_less_32bytes))
-	.int	JMPTBL(L(write_1bytes), L(table_less_32bytes))
-	.int	JMPTBL(L(write_2bytes), L(table_less_32bytes))
-	.int	JMPTBL(L(write_3bytes), L(table_less_32bytes))
-	.int	JMPTBL(L(write_4bytes), L(table_less_32bytes))
-	.int	JMPTBL(L(write_5bytes), L(table_less_32bytes))
-	.int	JMPTBL(L(write_6bytes), L(table_less_32bytes))
-	.int	JMPTBL(L(write_7bytes), L(table_less_32bytes))
-	.int	JMPTBL(L(write_8bytes), L(table_less_32bytes))
-	.int	JMPTBL(L(write_9bytes), L(table_less_32bytes))
-	.int	JMPTBL(L(write_10bytes), L(table_less_32bytes))
-	.int	JMPTBL(L(write_11bytes), L(table_less_32bytes))
-	.int	JMPTBL(L(write_12bytes), L(table_less_32bytes))
-	.int	JMPTBL(L(write_13bytes), L(table_less_32bytes))
-	.int	JMPTBL(L(write_14bytes), L(table_less_32bytes))
-	.int	JMPTBL(L(write_15bytes), L(table_less_32bytes))
-	.int	JMPTBL(L(write_16bytes), L(table_less_32bytes))
-	.int	JMPTBL(L(write_17bytes), L(table_less_32bytes))
-	.int	JMPTBL(L(write_18bytes), L(table_less_32bytes))
-	.int	JMPTBL(L(write_19bytes), L(table_less_32bytes))
-	.int	JMPTBL(L(write_20bytes), L(table_less_32bytes))
-	.int	JMPTBL(L(write_21bytes), L(table_less_32bytes))
-	.int	JMPTBL(L(write_22bytes), L(table_less_32bytes))
-	.int	JMPTBL(L(write_23bytes), L(table_less_32bytes))
-	.int	JMPTBL(L(write_24bytes), L(table_less_32bytes))
-	.int	JMPTBL(L(write_25bytes), L(table_less_32bytes))
-	.int	JMPTBL(L(write_26bytes), L(table_less_32bytes))
-	.int	JMPTBL(L(write_27bytes), L(table_less_32bytes))
-	.int	JMPTBL(L(write_28bytes), L(table_less_32bytes))
-	.int	JMPTBL(L(write_29bytes), L(table_less_32bytes))
-	.int	JMPTBL(L(write_30bytes), L(table_less_32bytes))
-	.int	JMPTBL(L(write_31bytes), L(table_less_32bytes))
-	.popsection
-
-	ALIGN(4)
-L(write_28bytes):
-	movl	%eax, -28(%edx)
-L(write_24bytes):
-	movl	%eax, -24(%edx)
-L(write_20bytes):
-	movl	%eax, -20(%edx)
-L(write_16bytes):
-	movl	%eax, -16(%edx)
-L(write_12bytes):
-	movl	%eax, -12(%edx)
-L(write_8bytes):
-	movl	%eax, -8(%edx)
-L(write_4bytes):
-	movl	%eax, -4(%edx)
-L(write_0bytes):
-	SETRTNVAL
-	RETURN
-
-	ALIGN(4)
-L(write_29bytes):
-	movl	%eax, -29(%edx)
-L(write_25bytes):
-	movl	%eax, -25(%edx)
-L(write_21bytes):
-	movl	%eax, -21(%edx)
-L(write_17bytes):
-	movl	%eax, -17(%edx)
-L(write_13bytes):
-	movl	%eax, -13(%edx)
-L(write_9bytes):
-	movl	%eax, -9(%edx)
-L(write_5bytes):
-	movl	%eax, -5(%edx)
-L(write_1bytes):
-	movb	%al, -1(%edx)
-	SETRTNVAL
-	RETURN
-
-	ALIGN(4)
-L(write_30bytes):
-	movl	%eax, -30(%edx)
-L(write_26bytes):
-	movl	%eax, -26(%edx)
-L(write_22bytes):
-	movl	%eax, -22(%edx)
-L(write_18bytes):
-	movl	%eax, -18(%edx)
-L(write_14bytes):
-	movl	%eax, -14(%edx)
-L(write_10bytes):
-	movl	%eax, -10(%edx)
-L(write_6bytes):
-	movl	%eax, -6(%edx)
-L(write_2bytes):
-	movw	%ax, -2(%edx)
-	SETRTNVAL
-	RETURN
-
-	ALIGN(4)
-L(write_31bytes):
-	movl	%eax, -31(%edx)
-L(write_27bytes):
-	movl	%eax, -27(%edx)
-L(write_23bytes):
-	movl	%eax, -23(%edx)
-L(write_19bytes):
-	movl	%eax, -19(%edx)
-L(write_15bytes):
-	movl	%eax, -15(%edx)
-L(write_11bytes):
-	movl	%eax, -11(%edx)
-L(write_7bytes):
-	movl	%eax, -7(%edx)
-L(write_3bytes):
-	movw	%ax, -3(%edx)
-	movb	%al, -1(%edx)
-	SETRTNVAL
-	RETURN
-
-	ALIGN(4)
-/* ECX > 32 and EDX is 4 byte aligned.  */
-L(32bytesormore):
-	/* Fill xmm0 with the pattern.  */
-	movd	%eax, %xmm0
-	pshufd	$0, %xmm0, %xmm0
-	testl	$0xf, %edx
-	jz	L(aligned_16)
-/* ECX > 32 and EDX is not 16 byte aligned.  */
-L(not_aligned_16):
-	movdqu	%xmm0, (%edx)
-	movl	%edx, %eax
-	and	$-16, %edx
-	add	$16, %edx
-	sub	%edx, %eax
-	add	%eax, %ecx
-	movd	%xmm0, %eax
-
-	ALIGN(4)
-L(aligned_16):
-	cmp	$128, %ecx
-	jae	L(128bytesormore)
-
-L(aligned_16_less128bytes):
-	BRANCH_TO_JMPTBL_ENTRY(L(table_16_128bytes))
-
-	ALIGN(4)
-L(128bytesormore):
-	PUSH(%ebx)
-	mov	$SHARED_CACHE_SIZE, %ebx
-	cmp	%ebx, %ecx
-	jae	L(128bytesormore_nt_start)
-
-
-	POP(%ebx)
-# define RESTORE_EBX_STATE CFI_PUSH(%ebx)
-	cmp	$DATA_CACHE_SIZE, %ecx
-
-	jae	L(128bytes_L2_normal)
-	subl	$128, %ecx
-L(128bytesormore_normal):
-	sub	$128, %ecx
-	movdqa	%xmm0, (%edx)
-	movdqa	%xmm0, 0x10(%edx)
-	movdqa	%xmm0, 0x20(%edx)
-	movdqa	%xmm0, 0x30(%edx)
-	movdqa	%xmm0, 0x40(%edx)
-	movdqa	%xmm0, 0x50(%edx)
-	movdqa	%xmm0, 0x60(%edx)
-	movdqa	%xmm0, 0x70(%edx)
-	lea	128(%edx), %edx
-	jb	L(128bytesless_normal)
-
-
-	sub	$128, %ecx
-	movdqa	%xmm0, (%edx)
-	movdqa	%xmm0, 0x10(%edx)
-	movdqa	%xmm0, 0x20(%edx)
-	movdqa	%xmm0, 0x30(%edx)
-	movdqa	%xmm0, 0x40(%edx)
-	movdqa	%xmm0, 0x50(%edx)
-	movdqa	%xmm0, 0x60(%edx)
-	movdqa	%xmm0, 0x70(%edx)
-	lea	128(%edx), %edx
-	jae	L(128bytesormore_normal)
-
-L(128bytesless_normal):
-	add	$128, %ecx
-	BRANCH_TO_JMPTBL_ENTRY(L(table_16_128bytes))
-
-	ALIGN(4)
-L(128bytes_L2_normal):
-	prefetcht0	0x380(%edx)
-	prefetcht0	0x3c0(%edx)
-	sub	$128, %ecx
-	movdqa	%xmm0, (%edx)
-	movaps	%xmm0, 0x10(%edx)
-	movaps	%xmm0, 0x20(%edx)
-	movaps	%xmm0, 0x30(%edx)
-	movaps	%xmm0, 0x40(%edx)
-	movaps	%xmm0, 0x50(%edx)
-	movaps	%xmm0, 0x60(%edx)
-	movaps	%xmm0, 0x70(%edx)
-	add	$128, %edx
-	cmp	$128, %ecx
-	jae	L(128bytes_L2_normal)
-
-L(128bytesless_L2_normal):
-	BRANCH_TO_JMPTBL_ENTRY(L(table_16_128bytes))
-
-	RESTORE_EBX_STATE
-L(128bytesormore_nt_start):
-	sub	%ebx, %ecx
-	mov	%ebx, %eax
-	and	$0x7f, %eax
-	add	%eax, %ecx
-	movd	%xmm0, %eax
-	ALIGN(4)
-L(128bytesormore_shared_cache_loop):
-	prefetcht0	0x3c0(%edx)
-	prefetcht0	0x380(%edx)
-	sub	$0x80, %ebx
-	movdqa	%xmm0, (%edx)
-	movdqa	%xmm0, 0x10(%edx)
-	movdqa	%xmm0, 0x20(%edx)
-	movdqa	%xmm0, 0x30(%edx)
-	movdqa	%xmm0, 0x40(%edx)
-	movdqa	%xmm0, 0x50(%edx)
-	movdqa	%xmm0, 0x60(%edx)
-	movdqa	%xmm0, 0x70(%edx)
-	add	$0x80, %edx
-	cmp	$0x80, %ebx
-	jae	L(128bytesormore_shared_cache_loop)
-	cmp	$0x80, %ecx
-	jb	L(shared_cache_loop_end)
-	ALIGN(4)
-L(128bytesormore_nt):
-	sub	$0x80, %ecx
-	movntdq	%xmm0, (%edx)
-	movntdq	%xmm0, 0x10(%edx)
-	movntdq	%xmm0, 0x20(%edx)
-	movntdq	%xmm0, 0x30(%edx)
-	movntdq	%xmm0, 0x40(%edx)
-	movntdq	%xmm0, 0x50(%edx)
-	movntdq	%xmm0, 0x60(%edx)
-	movntdq	%xmm0, 0x70(%edx)
-	add	$0x80, %edx
-	cmp	$0x80, %ecx
-	jae	L(128bytesormore_nt)
-	sfence
-L(shared_cache_loop_end):
-	POP(%ebx)
-	BRANCH_TO_JMPTBL_ENTRY(L(table_16_128bytes))
-
-
-	.pushsection .rodata.sse2,"a",@progbits
-	ALIGN(2)
-L(table_16_128bytes):
-	.int	JMPTBL(L(aligned_16_0bytes), L(table_16_128bytes))
-	.int	JMPTBL(L(aligned_16_1bytes), L(table_16_128bytes))
-	.int	JMPTBL(L(aligned_16_2bytes), L(table_16_128bytes))
-	.int	JMPTBL(L(aligned_16_3bytes), L(table_16_128bytes))
-	.int	JMPTBL(L(aligned_16_4bytes), L(table_16_128bytes))
-	.int	JMPTBL(L(aligned_16_5bytes), L(table_16_128bytes))
-	.int	JMPTBL(L(aligned_16_6bytes), L(table_16_128bytes))
-	.int	JMPTBL(L(aligned_16_7bytes), L(table_16_128bytes))
-	.int	JMPTBL(L(aligned_16_8bytes), L(table_16_128bytes))
-	.int	JMPTBL(L(aligned_16_9bytes), L(table_16_128bytes))
-	.int	JMPTBL(L(aligned_16_10bytes), L(table_16_128bytes))
-	.int	JMPTBL(L(aligned_16_11bytes), L(table_16_128bytes))
-	.int	JMPTBL(L(aligned_16_12bytes), L(table_16_128bytes))
-	.int	JMPTBL(L(aligned_16_13bytes), L(table_16_128bytes))
-	.int	JMPTBL(L(aligned_16_14bytes), L(table_16_128bytes))
-	.int	JMPTBL(L(aligned_16_15bytes), L(table_16_128bytes))
-	.int	JMPTBL(L(aligned_16_16bytes), L(table_16_128bytes))
-	.int	JMPTBL(L(aligned_16_17bytes), L(table_16_128bytes))
-	.int	JMPTBL(L(aligned_16_18bytes), L(table_16_128bytes))
-	.int	JMPTBL(L(aligned_16_19bytes), L(table_16_128bytes))
-	.int	JMPTBL(L(aligned_16_20bytes), L(table_16_128bytes))
-	.int	JMPTBL(L(aligned_16_21bytes), L(table_16_128bytes))
-	.int	JMPTBL(L(aligned_16_22bytes), L(table_16_128bytes))
-	.int	JMPTBL(L(aligned_16_23bytes), L(table_16_128bytes))
-	.int	JMPTBL(L(aligned_16_24bytes), L(table_16_128bytes))
-	.int	JMPTBL(L(aligned_16_25bytes), L(table_16_128bytes))
-	.int	JMPTBL(L(aligned_16_26bytes), L(table_16_128bytes))
-	.int	JMPTBL(L(aligned_16_27bytes), L(table_16_128bytes))
-	.int	JMPTBL(L(aligned_16_28bytes), L(table_16_128bytes))
-	.int	JMPTBL(L(aligned_16_29bytes), L(table_16_128bytes))
-	.int	JMPTBL(L(aligned_16_30bytes), L(table_16_128bytes))
-	.int	JMPTBL(L(aligned_16_31bytes), L(table_16_128bytes))
-	.int	JMPTBL(L(aligned_16_32bytes), L(table_16_128bytes))
-	.int	JMPTBL(L(aligned_16_33bytes), L(table_16_128bytes))
-	.int	JMPTBL(L(aligned_16_34bytes), L(table_16_128bytes))
-	.int	JMPTBL(L(aligned_16_35bytes), L(table_16_128bytes))
-	.int	JMPTBL(L(aligned_16_36bytes), L(table_16_128bytes))
-	.int	JMPTBL(L(aligned_16_37bytes), L(table_16_128bytes))
-	.int	JMPTBL(L(aligned_16_38bytes), L(table_16_128bytes))
-	.int	JMPTBL(L(aligned_16_39bytes), L(table_16_128bytes))
-	.int	JMPTBL(L(aligned_16_40bytes), L(table_16_128bytes))
-	.int	JMPTBL(L(aligned_16_41bytes), L(table_16_128bytes))
-	.int	JMPTBL(L(aligned_16_42bytes), L(table_16_128bytes))
-	.int	JMPTBL(L(aligned_16_43bytes), L(table_16_128bytes))
-	.int	JMPTBL(L(aligned_16_44bytes), L(table_16_128bytes))
-	.int	JMPTBL(L(aligned_16_45bytes), L(table_16_128bytes))
-	.int	JMPTBL(L(aligned_16_46bytes), L(table_16_128bytes))
-	.int	JMPTBL(L(aligned_16_47bytes), L(table_16_128bytes))
-	.int	JMPTBL(L(aligned_16_48bytes), L(table_16_128bytes))
-	.int	JMPTBL(L(aligned_16_49bytes), L(table_16_128bytes))
-	.int	JMPTBL(L(aligned_16_50bytes), L(table_16_128bytes))
-	.int	JMPTBL(L(aligned_16_51bytes), L(table_16_128bytes))
-	.int	JMPTBL(L(aligned_16_52bytes), L(table_16_128bytes))
-	.int	JMPTBL(L(aligned_16_53bytes), L(table_16_128bytes))
-	.int	JMPTBL(L(aligned_16_54bytes), L(table_16_128bytes))
-	.int	JMPTBL(L(aligned_16_55bytes), L(table_16_128bytes))
-	.int	JMPTBL(L(aligned_16_56bytes), L(table_16_128bytes))
-	.int	JMPTBL(L(aligned_16_57bytes), L(table_16_128bytes))
-	.int	JMPTBL(L(aligned_16_58bytes), L(table_16_128bytes))
-	.int	JMPTBL(L(aligned_16_59bytes), L(table_16_128bytes))
-	.int	JMPTBL(L(aligned_16_60bytes), L(table_16_128bytes))
-	.int	JMPTBL(L(aligned_16_61bytes), L(table_16_128bytes))
-	.int	JMPTBL(L(aligned_16_62bytes), L(table_16_128bytes))
-	.int	JMPTBL(L(aligned_16_63bytes), L(table_16_128bytes))
-	.int	JMPTBL(L(aligned_16_64bytes), L(table_16_128bytes))
-	.int	JMPTBL(L(aligned_16_65bytes), L(table_16_128bytes))
-	.int	JMPTBL(L(aligned_16_66bytes), L(table_16_128bytes))
-	.int	JMPTBL(L(aligned_16_67bytes), L(table_16_128bytes))
-	.int	JMPTBL(L(aligned_16_68bytes), L(table_16_128bytes))
-	.int	JMPTBL(L(aligned_16_69bytes), L(table_16_128bytes))
-	.int	JMPTBL(L(aligned_16_70bytes), L(table_16_128bytes))
-	.int	JMPTBL(L(aligned_16_71bytes), L(table_16_128bytes))
-	.int	JMPTBL(L(aligned_16_72bytes), L(table_16_128bytes))
-	.int	JMPTBL(L(aligned_16_73bytes), L(table_16_128bytes))
-	.int	JMPTBL(L(aligned_16_74bytes), L(table_16_128bytes))
-	.int	JMPTBL(L(aligned_16_75bytes), L(table_16_128bytes))
-	.int	JMPTBL(L(aligned_16_76bytes), L(table_16_128bytes))
-	.int	JMPTBL(L(aligned_16_77bytes), L(table_16_128bytes))
-	.int	JMPTBL(L(aligned_16_78bytes), L(table_16_128bytes))
-	.int	JMPTBL(L(aligned_16_79bytes), L(table_16_128bytes))
-	.int	JMPTBL(L(aligned_16_80bytes), L(table_16_128bytes))
-	.int	JMPTBL(L(aligned_16_81bytes), L(table_16_128bytes))
-	.int	JMPTBL(L(aligned_16_82bytes), L(table_16_128bytes))
-	.int	JMPTBL(L(aligned_16_83bytes), L(table_16_128bytes))
-	.int	JMPTBL(L(aligned_16_84bytes), L(table_16_128bytes))
-	.int	JMPTBL(L(aligned_16_85bytes), L(table_16_128bytes))
-	.int	JMPTBL(L(aligned_16_86bytes), L(table_16_128bytes))
-	.int	JMPTBL(L(aligned_16_87bytes), L(table_16_128bytes))
-	.int	JMPTBL(L(aligned_16_88bytes), L(table_16_128bytes))
-	.int	JMPTBL(L(aligned_16_89bytes), L(table_16_128bytes))
-	.int	JMPTBL(L(aligned_16_90bytes), L(table_16_128bytes))
-	.int	JMPTBL(L(aligned_16_91bytes), L(table_16_128bytes))
-	.int	JMPTBL(L(aligned_16_92bytes), L(table_16_128bytes))
-	.int	JMPTBL(L(aligned_16_93bytes), L(table_16_128bytes))
-	.int	JMPTBL(L(aligned_16_94bytes), L(table_16_128bytes))
-	.int	JMPTBL(L(aligned_16_95bytes), L(table_16_128bytes))
-	.int	JMPTBL(L(aligned_16_96bytes), L(table_16_128bytes))
-	.int	JMPTBL(L(aligned_16_97bytes), L(table_16_128bytes))
-	.int	JMPTBL(L(aligned_16_98bytes), L(table_16_128bytes))
-	.int	JMPTBL(L(aligned_16_99bytes), L(table_16_128bytes))
-	.int	JMPTBL(L(aligned_16_100bytes), L(table_16_128bytes))
-	.int	JMPTBL(L(aligned_16_101bytes), L(table_16_128bytes))
-	.int	JMPTBL(L(aligned_16_102bytes), L(table_16_128bytes))
-	.int	JMPTBL(L(aligned_16_103bytes), L(table_16_128bytes))
-	.int	JMPTBL(L(aligned_16_104bytes), L(table_16_128bytes))
-	.int	JMPTBL(L(aligned_16_105bytes), L(table_16_128bytes))
-	.int	JMPTBL(L(aligned_16_106bytes), L(table_16_128bytes))
-	.int	JMPTBL(L(aligned_16_107bytes), L(table_16_128bytes))
-	.int	JMPTBL(L(aligned_16_108bytes), L(table_16_128bytes))
-	.int	JMPTBL(L(aligned_16_109bytes), L(table_16_128bytes))
-	.int	JMPTBL(L(aligned_16_110bytes), L(table_16_128bytes))
-	.int	JMPTBL(L(aligned_16_111bytes), L(table_16_128bytes))
-	.int	JMPTBL(L(aligned_16_112bytes), L(table_16_128bytes))
-	.int	JMPTBL(L(aligned_16_113bytes), L(table_16_128bytes))
-	.int	JMPTBL(L(aligned_16_114bytes), L(table_16_128bytes))
-	.int	JMPTBL(L(aligned_16_115bytes), L(table_16_128bytes))
-	.int	JMPTBL(L(aligned_16_116bytes), L(table_16_128bytes))
-	.int	JMPTBL(L(aligned_16_117bytes), L(table_16_128bytes))
-	.int	JMPTBL(L(aligned_16_118bytes), L(table_16_128bytes))
-	.int	JMPTBL(L(aligned_16_119bytes), L(table_16_128bytes))
-	.int	JMPTBL(L(aligned_16_120bytes), L(table_16_128bytes))
-	.int	JMPTBL(L(aligned_16_121bytes), L(table_16_128bytes))
-	.int	JMPTBL(L(aligned_16_122bytes), L(table_16_128bytes))
-	.int	JMPTBL(L(aligned_16_123bytes), L(table_16_128bytes))
-	.int	JMPTBL(L(aligned_16_124bytes), L(table_16_128bytes))
-	.int	JMPTBL(L(aligned_16_125bytes), L(table_16_128bytes))
-	.int	JMPTBL(L(aligned_16_126bytes), L(table_16_128bytes))
-	.int	JMPTBL(L(aligned_16_127bytes), L(table_16_128bytes))
-	.popsection
-
-	ALIGN(4)
-L(aligned_16_112bytes):
-	movdqa	%xmm0, -112(%edx)
-L(aligned_16_96bytes):
-	movdqa	%xmm0, -96(%edx)
-L(aligned_16_80bytes):
-	movdqa	%xmm0, -80(%edx)
-L(aligned_16_64bytes):
-	movdqa	%xmm0, -64(%edx)
-L(aligned_16_48bytes):
-	movdqa	%xmm0, -48(%edx)
-L(aligned_16_32bytes):
-	movdqa	%xmm0, -32(%edx)
-L(aligned_16_16bytes):
-	movdqa	%xmm0, -16(%edx)
-L(aligned_16_0bytes):
-	SETRTNVAL
-	RETURN
-
-	ALIGN(4)
-L(aligned_16_113bytes):
-	movdqa	%xmm0, -113(%edx)
-L(aligned_16_97bytes):
-	movdqa	%xmm0, -97(%edx)
-L(aligned_16_81bytes):
-	movdqa	%xmm0, -81(%edx)
-L(aligned_16_65bytes):
-	movdqa	%xmm0, -65(%edx)
-L(aligned_16_49bytes):
-	movdqa	%xmm0, -49(%edx)
-L(aligned_16_33bytes):
-	movdqa	%xmm0, -33(%edx)
-L(aligned_16_17bytes):
-	movdqa	%xmm0, -17(%edx)
-L(aligned_16_1bytes):
-	movb	%al, -1(%edx)
-	SETRTNVAL
-	RETURN
-
-	ALIGN(4)
-L(aligned_16_114bytes):
-	movdqa	%xmm0, -114(%edx)
-L(aligned_16_98bytes):
-	movdqa	%xmm0, -98(%edx)
-L(aligned_16_82bytes):
-	movdqa	%xmm0, -82(%edx)
-L(aligned_16_66bytes):
-	movdqa	%xmm0, -66(%edx)
-L(aligned_16_50bytes):
-	movdqa	%xmm0, -50(%edx)
-L(aligned_16_34bytes):
-	movdqa	%xmm0, -34(%edx)
-L(aligned_16_18bytes):
-	movdqa	%xmm0, -18(%edx)
-L(aligned_16_2bytes):
-	movw	%ax, -2(%edx)
-	SETRTNVAL
-	RETURN
-
-	ALIGN(4)
-L(aligned_16_115bytes):
-	movdqa	%xmm0, -115(%edx)
-L(aligned_16_99bytes):
-	movdqa	%xmm0, -99(%edx)
-L(aligned_16_83bytes):
-	movdqa	%xmm0, -83(%edx)
-L(aligned_16_67bytes):
-	movdqa	%xmm0, -67(%edx)
-L(aligned_16_51bytes):
-	movdqa	%xmm0, -51(%edx)
-L(aligned_16_35bytes):
-	movdqa	%xmm0, -35(%edx)
-L(aligned_16_19bytes):
-	movdqa	%xmm0, -19(%edx)
-L(aligned_16_3bytes):
-	movw	%ax, -3(%edx)
-	movb	%al, -1(%edx)
-	SETRTNVAL
-	RETURN
-
-	ALIGN(4)
-L(aligned_16_116bytes):
-	movdqa	%xmm0, -116(%edx)
-L(aligned_16_100bytes):
-	movdqa	%xmm0, -100(%edx)
-L(aligned_16_84bytes):
-	movdqa	%xmm0, -84(%edx)
-L(aligned_16_68bytes):
-	movdqa	%xmm0, -68(%edx)
-L(aligned_16_52bytes):
-	movdqa	%xmm0, -52(%edx)
-L(aligned_16_36bytes):
-	movdqa	%xmm0, -36(%edx)
-L(aligned_16_20bytes):
-	movdqa	%xmm0, -20(%edx)
-L(aligned_16_4bytes):
-	movl	%eax, -4(%edx)
-	SETRTNVAL
-	RETURN
-
-	ALIGN(4)
-L(aligned_16_117bytes):
-	movdqa	%xmm0, -117(%edx)
-L(aligned_16_101bytes):
-	movdqa	%xmm0, -101(%edx)
-L(aligned_16_85bytes):
-	movdqa	%xmm0, -85(%edx)
-L(aligned_16_69bytes):
-	movdqa	%xmm0, -69(%edx)
-L(aligned_16_53bytes):
-	movdqa	%xmm0, -53(%edx)
-L(aligned_16_37bytes):
-	movdqa	%xmm0, -37(%edx)
-L(aligned_16_21bytes):
-	movdqa	%xmm0, -21(%edx)
-L(aligned_16_5bytes):
-	movl	%eax, -5(%edx)
-	movb	%al, -1(%edx)
-	SETRTNVAL
-	RETURN
-
-	ALIGN(4)
-L(aligned_16_118bytes):
-	movdqa	%xmm0, -118(%edx)
-L(aligned_16_102bytes):
-	movdqa	%xmm0, -102(%edx)
-L(aligned_16_86bytes):
-	movdqa	%xmm0, -86(%edx)
-L(aligned_16_70bytes):
-	movdqa	%xmm0, -70(%edx)
-L(aligned_16_54bytes):
-	movdqa	%xmm0, -54(%edx)
-L(aligned_16_38bytes):
-	movdqa	%xmm0, -38(%edx)
-L(aligned_16_22bytes):
-	movdqa	%xmm0, -22(%edx)
-L(aligned_16_6bytes):
-	movl	%eax, -6(%edx)
-	movw	%ax, -2(%edx)
-	SETRTNVAL
-	RETURN
-
-	ALIGN(4)
-L(aligned_16_119bytes):
-	movdqa	%xmm0, -119(%edx)
-L(aligned_16_103bytes):
-	movdqa	%xmm0, -103(%edx)
-L(aligned_16_87bytes):
-	movdqa	%xmm0, -87(%edx)
-L(aligned_16_71bytes):
-	movdqa	%xmm0, -71(%edx)
-L(aligned_16_55bytes):
-	movdqa	%xmm0, -55(%edx)
-L(aligned_16_39bytes):
-	movdqa	%xmm0, -39(%edx)
-L(aligned_16_23bytes):
-	movdqa	%xmm0, -23(%edx)
-L(aligned_16_7bytes):
-	movl	%eax, -7(%edx)
-	movw	%ax, -3(%edx)
-	movb	%al, -1(%edx)
-	SETRTNVAL
-	RETURN
-
-	ALIGN(4)
-L(aligned_16_120bytes):
-	movdqa	%xmm0, -120(%edx)
-L(aligned_16_104bytes):
-	movdqa	%xmm0, -104(%edx)
-L(aligned_16_88bytes):
-	movdqa	%xmm0, -88(%edx)
-L(aligned_16_72bytes):
-	movdqa	%xmm0, -72(%edx)
-L(aligned_16_56bytes):
-	movdqa	%xmm0, -56(%edx)
-L(aligned_16_40bytes):
-	movdqa	%xmm0, -40(%edx)
-L(aligned_16_24bytes):
-	movdqa	%xmm0, -24(%edx)
-L(aligned_16_8bytes):
-	movq	%xmm0, -8(%edx)
-	SETRTNVAL
-	RETURN
-
-	ALIGN(4)
-L(aligned_16_121bytes):
-	movdqa	%xmm0, -121(%edx)
-L(aligned_16_105bytes):
-	movdqa	%xmm0, -105(%edx)
-L(aligned_16_89bytes):
-	movdqa	%xmm0, -89(%edx)
-L(aligned_16_73bytes):
-	movdqa	%xmm0, -73(%edx)
-L(aligned_16_57bytes):
-	movdqa	%xmm0, -57(%edx)
-L(aligned_16_41bytes):
-	movdqa	%xmm0, -41(%edx)
-L(aligned_16_25bytes):
-	movdqa	%xmm0, -25(%edx)
-L(aligned_16_9bytes):
-	movq	%xmm0, -9(%edx)
-	movb	%al, -1(%edx)
-	SETRTNVAL
-	RETURN
-
-	ALIGN(4)
-L(aligned_16_122bytes):
-	movdqa	%xmm0, -122(%edx)
-L(aligned_16_106bytes):
-	movdqa	%xmm0, -106(%edx)
-L(aligned_16_90bytes):
-	movdqa	%xmm0, -90(%edx)
-L(aligned_16_74bytes):
-	movdqa	%xmm0, -74(%edx)
-L(aligned_16_58bytes):
-	movdqa	%xmm0, -58(%edx)
-L(aligned_16_42bytes):
-	movdqa	%xmm0, -42(%edx)
-L(aligned_16_26bytes):
-	movdqa	%xmm0, -26(%edx)
-L(aligned_16_10bytes):
-	movq	%xmm0, -10(%edx)
-	movw	%ax, -2(%edx)
-	SETRTNVAL
-	RETURN
-
-	ALIGN(4)
-L(aligned_16_123bytes):
-	movdqa	%xmm0, -123(%edx)
-L(aligned_16_107bytes):
-	movdqa	%xmm0, -107(%edx)
-L(aligned_16_91bytes):
-	movdqa	%xmm0, -91(%edx)
-L(aligned_16_75bytes):
-	movdqa	%xmm0, -75(%edx)
-L(aligned_16_59bytes):
-	movdqa	%xmm0, -59(%edx)
-L(aligned_16_43bytes):
-	movdqa	%xmm0, -43(%edx)
-L(aligned_16_27bytes):
-	movdqa	%xmm0, -27(%edx)
-L(aligned_16_11bytes):
-	movq	%xmm0, -11(%edx)
-	movw	%ax, -3(%edx)
-	movb	%al, -1(%edx)
-	SETRTNVAL
-	RETURN
-
-	ALIGN(4)
-L(aligned_16_124bytes):
-	movdqa	%xmm0, -124(%edx)
-L(aligned_16_108bytes):
-	movdqa	%xmm0, -108(%edx)
-L(aligned_16_92bytes):
-	movdqa	%xmm0, -92(%edx)
-L(aligned_16_76bytes):
-	movdqa	%xmm0, -76(%edx)
-L(aligned_16_60bytes):
-	movdqa	%xmm0, -60(%edx)
-L(aligned_16_44bytes):
-	movdqa	%xmm0, -44(%edx)
-L(aligned_16_28bytes):
-	movdqa	%xmm0, -28(%edx)
-L(aligned_16_12bytes):
-	movq	%xmm0, -12(%edx)
-	movl	%eax, -4(%edx)
-	SETRTNVAL
-	RETURN
-
-	ALIGN(4)
-L(aligned_16_125bytes):
-	movdqa	%xmm0, -125(%edx)
-L(aligned_16_109bytes):
-	movdqa	%xmm0, -109(%edx)
-L(aligned_16_93bytes):
-	movdqa	%xmm0, -93(%edx)
-L(aligned_16_77bytes):
-	movdqa	%xmm0, -77(%edx)
-L(aligned_16_61bytes):
-	movdqa	%xmm0, -61(%edx)
-L(aligned_16_45bytes):
-	movdqa	%xmm0, -45(%edx)
-L(aligned_16_29bytes):
-	movdqa	%xmm0, -29(%edx)
-L(aligned_16_13bytes):
-	movq	%xmm0, -13(%edx)
-	movl	%eax, -5(%edx)
-	movb	%al, -1(%edx)
-	SETRTNVAL
-	RETURN
-
-	ALIGN(4)
-L(aligned_16_126bytes):
-	movdqa	%xmm0, -126(%edx)
-L(aligned_16_110bytes):
-	movdqa	%xmm0, -110(%edx)
-L(aligned_16_94bytes):
-	movdqa	%xmm0, -94(%edx)
-L(aligned_16_78bytes):
-	movdqa	%xmm0, -78(%edx)
-L(aligned_16_62bytes):
-	movdqa	%xmm0, -62(%edx)
-L(aligned_16_46bytes):
-	movdqa	%xmm0, -46(%edx)
-L(aligned_16_30bytes):
-	movdqa	%xmm0, -30(%edx)
-L(aligned_16_14bytes):
-	movq	%xmm0, -14(%edx)
-	movl	%eax, -6(%edx)
-	movw	%ax, -2(%edx)
-	SETRTNVAL
-	RETURN
-
-	ALIGN(4)
-L(aligned_16_127bytes):
-	movdqa	%xmm0, -127(%edx)
-L(aligned_16_111bytes):
-	movdqa	%xmm0, -111(%edx)
-L(aligned_16_95bytes):
-	movdqa	%xmm0, -95(%edx)
-L(aligned_16_79bytes):
-	movdqa	%xmm0, -79(%edx)
-L(aligned_16_63bytes):
-	movdqa	%xmm0, -63(%edx)
-L(aligned_16_47bytes):
-	movdqa	%xmm0, -47(%edx)
-L(aligned_16_31bytes):
-	movdqa	%xmm0, -31(%edx)
-L(aligned_16_15bytes):
-	movq	%xmm0, -15(%edx)
-	movl	%eax, -7(%edx)
-	movw	%ax, -3(%edx)
-	movb	%al, -1(%edx)
-	SETRTNVAL
-	RETURN_END
-
-END(memset_atom)
diff --git a/libc/arch-x86/string/sse2-memset-slm.S b/libc/arch-x86/string/sse2-memset-slm.S
index 5cff141..ec2ee52 100644
--- a/libc/arch-x86/string/sse2-memset-slm.S
+++ b/libc/arch-x86/string/sse2-memset-slm.S
@@ -31,7 +31,6 @@
 #include <private/bionic_asm.h>
 
 #define FOR_SILVERMONT
-#include "cache.h"
 
 #ifndef L
 # define L(label)	.L##label
@@ -64,6 +63,8 @@
 # define RETURN		RETURN_END; CFI_PUSH(%ebx)
 # define JMPTBL(I, B)	I - B
 
+#define SETUP_PIC_REG(x)	call	__x86.get_pc_thunk.x
+
 /* Load an entry in a jump table into EBX and branch to it.  TABLE is a
    jump table with relative offsets.   */
 # define BRANCH_TO_JMPTBL_ENTRY(TABLE)				\
@@ -78,7 +79,7 @@
     /* We loaded the jump table and adjusted EDX. Go.  */	\
     jmp		*%ebx
 
-ENTRY(__memset_chk_generic)
+ENTRY(__memset_chk)
   ENTRANCE
 
   movl LEN(%esp), %ecx
@@ -87,11 +88,11 @@
 
   POP(%ebx) // Undo ENTRANCE without returning.
   jmp __memset_chk_fail
-END(__memset_chk_generic)
+END(__memset_chk)
 
 	.section .text.sse2,"ax",@progbits
 	ALIGN(4)
-ENTRY(memset_generic)
+ENTRY(memset)
 	ENTRANCE
 
 	movl	LEN(%esp), %ecx
@@ -177,14 +178,18 @@
 	ALIGN(4)
 L(128bytesormore):
 	PUSH(%ebx)
-	mov	$SHARED_CACHE_SIZE, %ebx
+	SETUP_PIC_REG(bx)
+	add	$_GLOBAL_OFFSET_TABLE_, %ebx
+	mov	__x86_shared_cache_size@GOTOFF(%ebx), %ebx
 	cmp	%ebx, %ecx
 	jae	L(128bytesormore_nt_start)
 
 	POP(%ebx)
 
 	PUSH(%ebx)
-	mov	$DATA_CACHE_SIZE, %ebx
+	SETUP_PIC_REG(bx)
+	add	$_GLOBAL_OFFSET_TABLE_, %ebx
+	mov	__x86_data_cache_size@GOTOFF(%ebx), %ebx
 
 	cmp	%ebx, %ecx
 	jae	L(128bytes_L2_normal)
@@ -750,4 +755,4 @@
 	SETRTNVAL
 	RETURN_END
 
-END(memset_generic)
+END(memset)
diff --git a/libc/arch-x86/string/sse2-stpcpy-slm.S b/libc/arch-x86/string/sse2-stpcpy-slm.S
old mode 100755
new mode 100644
diff --git a/libc/arch-x86/string/sse2-strcpy-slm.S b/libc/arch-x86/string/sse2-strcpy-slm.S
old mode 100755
new mode 100644
index 22ceeab..b5d84b5
--- a/libc/arch-x86/string/sse2-strcpy-slm.S
+++ b/libc/arch-x86/string/sse2-strcpy-slm.S
@@ -79,7 +79,7 @@
 #define POP(REG) popl REG; CFI_POP (REG)
 
 #ifndef STRCPY
-# define STRCPY  strcpy_generic
+# define STRCPY  strcpy
 #endif
 
 #ifdef USE_AS_STPNCPY
diff --git a/libc/arch-x86/string/sse2-strlen-slm.S b/libc/arch-x86/string/sse2-strlen-slm.S
old mode 100755
new mode 100644
index b805ad6..27cc025
--- a/libc/arch-x86/string/sse2-strlen-slm.S
+++ b/libc/arch-x86/string/sse2-strlen-slm.S
@@ -29,7 +29,7 @@
 */
 
 #ifndef STRLEN
-# define STRLEN strlen_generic
+# define STRLEN strlen
 #endif
 
 #ifndef L
diff --git a/libc/arch-x86/string/sse2-strncpy-slm.S b/libc/arch-x86/string/sse2-strncpy-slm.S
old mode 100755
new mode 100644
index aff7fb9..591419f
--- a/libc/arch-x86/string/sse2-strncpy-slm.S
+++ b/libc/arch-x86/string/sse2-strncpy-slm.S
@@ -29,5 +29,5 @@
 */

 

 #define USE_AS_STRNCPY

-#define STRCPY strncpy_generic

+#define STRCPY strncpy

 #include "sse2-strcpy-slm.S"

diff --git a/libc/arch-x86/string/sse2-wcschr-atom.S b/libc/arch-x86/string/sse2-wcschr-atom.S
deleted file mode 100644
index 729302b..0000000
--- a/libc/arch-x86/string/sse2-wcschr-atom.S
+++ /dev/null
@@ -1,267 +0,0 @@
-/*
-Copyright (c) 2011 Intel Corporation
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
-    * Redistributions of source code must retain the above copyright notice,
-    * this list of conditions and the following disclaimer.
-
-    * Redistributions in binary form must reproduce the above copyright notice,
-    * this list of conditions and the following disclaimer in the documentation
-    * and/or other materials provided with the distribution.
-
-    * Neither the name of Intel Corporation nor the names of its contributors
-    * may be used to endorse or promote products derived from this software
-    * without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
-ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-
-#ifndef L
-# define L(label)	.L##label
-#endif
-
-#ifndef cfi_startproc
-# define cfi_startproc	.cfi_startproc
-#endif
-
-#ifndef cfi_endproc
-# define cfi_endproc	.cfi_endproc
-#endif
-
-#ifndef cfi_rel_offset
-# define cfi_rel_offset(reg, off)	.cfi_rel_offset reg, off
-#endif
-
-#ifndef cfi_restore
-# define cfi_restore(reg)	.cfi_restore reg
-#endif
-
-#ifndef cfi_adjust_cfa_offset
-# define cfi_adjust_cfa_offset(off)	.cfi_adjust_cfa_offset off
-#endif
-
-#ifndef ENTRY
-# define ENTRY(name)	\
-	.type name,  @function;	\
-	.globl name;	\
-	.p2align 4;	\
-name:	\
-	cfi_startproc
-#endif
-
-#ifndef END
-# define END(name)	\
-	cfi_endproc;	\
-	.size name,	.-name
-#endif
-
-#define CFI_PUSH(REG)	\
-	cfi_adjust_cfa_offset (4);	\
-	cfi_rel_offset (REG, 0)
-
-#define CFI_POP(REG)	\
-	cfi_adjust_cfa_offset (-4);	\
-	cfi_restore (REG)
-
-#define PUSH(REG)	pushl REG; CFI_PUSH (REG)
-#define POP(REG)	popl REG; CFI_POP (REG)
-
-#define PARMS	4
-
-
-#define STR1  PARMS
-#define STR2  STR1+4
-
-	.text
-ENTRY (wcschr)
-
-	mov	STR1(%esp), %ecx
-	movd	STR2(%esp), %xmm1
-
-	mov	%ecx, %eax
-	punpckldq %xmm1, %xmm1
-	pxor	%xmm2, %xmm2
-	punpckldq %xmm1, %xmm1
-
-	and	$63, %eax
-	cmp	$48, %eax
-	ja	L(cross_cache)
-
-	movdqu	(%ecx), %xmm0
-	pcmpeqd	%xmm0, %xmm2
-	pcmpeqd	%xmm1, %xmm0
-	pmovmskb %xmm2, %edx
-	pmovmskb %xmm0, %eax
-	or	%eax, %edx
-	jnz	L(matches)
-	and	$-16, %ecx
-	jmp	L(loop)
-
-	.p2align 4
-L(cross_cache):
-	PUSH	(%edi)
-	mov	%ecx, %edi
-	mov	%eax, %ecx
-	and	$-16, %edi
-	and	$15, %ecx
-	movdqa	(%edi), %xmm0
-	pcmpeqd	%xmm0, %xmm2
-	pcmpeqd	%xmm1, %xmm0
-	pmovmskb %xmm2, %edx
-	pmovmskb %xmm0, %eax
-
-	sarl	%cl, %edx
-	sarl	%cl, %eax
-	test	%eax, %eax
-	jz	L(unaligned_no_match)
-
-	add	%edi, %ecx
-	POP	(%edi)
-
-	test	%edx, %edx
-	jz	L(match_case1)
-	test	%al, %al
-	jz	L(match_higth_case2)
-	test	$15, %al
-	jnz	L(match_case2_4)
-	test	$15, %dl
-	jnz	L(return_null)
-	lea	4(%ecx), %eax
-	ret
-
-	CFI_PUSH (%edi)
-
-	.p2align 4
-L(unaligned_no_match):
-	mov	%edi, %ecx
-	POP	(%edi)
-
-	test	%edx, %edx
-	jnz	L(return_null)
-
-	pxor	%xmm2, %xmm2
-
-/* Loop start on aligned string.  */
-	.p2align 4
-L(loop):
-	add	$16, %ecx
-	movdqa	(%ecx), %xmm0
-	pcmpeqd	%xmm0, %xmm2
-	pcmpeqd	%xmm1, %xmm0
-	pmovmskb %xmm2, %edx
-	pmovmskb %xmm0, %eax
-	or	%eax, %edx
-	jnz	L(matches)
-	add	$16, %ecx
-
-	movdqa	(%ecx), %xmm0
-	pcmpeqd	%xmm0, %xmm2
-	pcmpeqd	%xmm1, %xmm0
-	pmovmskb %xmm2, %edx
-	pmovmskb %xmm0, %eax
-	or	%eax, %edx
-	jnz	L(matches)
-	add	$16, %ecx
-
-	movdqa	(%ecx), %xmm0
-	pcmpeqd	%xmm0, %xmm2
-	pcmpeqd	%xmm1, %xmm0
-	pmovmskb %xmm2, %edx
-	pmovmskb %xmm0, %eax
-	or	%eax, %edx
-	jnz	L(matches)
-	add	$16, %ecx
-
-	movdqa	(%ecx), %xmm0
-	pcmpeqd	%xmm0, %xmm2
-	pcmpeqd	%xmm1, %xmm0
-	pmovmskb %xmm2, %edx
-	pmovmskb %xmm0, %eax
-	or	%eax, %edx
-	jz	L(loop)
-
-	.p2align 4
-L(matches):
-	pmovmskb %xmm2, %edx
-	test	%eax, %eax
-	jz	L(return_null)
-	test	%edx, %edx
-	jz	L(match_case1)
-
-	.p2align 4
-L(match_case2):
-	test	%al, %al
-	jz	L(match_higth_case2)
-	test	$15, %al
-	jnz	L(match_case2_4)
-	test	$15, %dl
-	jnz	L(return_null)
-	lea	4(%ecx), %eax
-	ret
-
-	.p2align 4
-L(match_case2_4):
-	mov	%ecx, %eax
-	ret
-
-	.p2align 4
-L(match_higth_case2):
-	test	%dl, %dl
-	jnz	L(return_null)
-	test	$15, %ah
-	jnz	L(match_case2_12)
-	test	$15, %dh
-	jnz	L(return_null)
-	lea	12(%ecx), %eax
-	ret
-
-	.p2align 4
-L(match_case2_12):
-	lea	8(%ecx), %eax
-	ret
-
-	.p2align 4
-L(match_case1):
-	test	%al, %al
-	jz	L(match_higth_case1)
-
-	test	$0x01, %al
-	jnz	L(exit0)
-	lea	4(%ecx), %eax
-	ret
-
-	.p2align 4
-L(match_higth_case1):
-	test	$0x01, %ah
-	jnz	L(exit3)
-	lea	12(%ecx), %eax
-	ret
-
-	.p2align 4
-L(exit0):
-	mov	%ecx, %eax
-	ret
-
-	.p2align 4
-L(exit3):
-	lea	8(%ecx), %eax
-	ret
-
-	.p2align 4
-L(return_null):
-	xor	%eax, %eax
-	ret
-
-END (wcschr)
diff --git a/libc/arch-x86/string/sse2-wcscmp-atom.S b/libc/arch-x86/string/sse2-wcscmp-atom.S
deleted file mode 100644
index 8867d28..0000000
--- a/libc/arch-x86/string/sse2-wcscmp-atom.S
+++ /dev/null
@@ -1,1062 +0,0 @@
-/*
-Copyright (c) 2011 Intel Corporation
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
-    * Redistributions of source code must retain the above copyright notice,
-    * this list of conditions and the following disclaimer.
-
-    * Redistributions in binary form must reproduce the above copyright notice,
-    * this list of conditions and the following disclaimer in the documentation
-    * and/or other materials provided with the distribution.
-
-    * Neither the name of Intel Corporation nor the names of its contributors
-    * may be used to endorse or promote products derived from this software
-    * without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
-ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-
-#ifndef L
-# define L(label)	.L##label
-#endif
-
-#ifndef cfi_startproc
-# define cfi_startproc	.cfi_startproc
-#endif
-
-#ifndef cfi_endproc
-# define cfi_endproc	.cfi_endproc
-#endif
-
-#ifndef cfi_rel_offset
-# define cfi_rel_offset(reg, off)	.cfi_rel_offset reg, off
-#endif
-
-#ifndef cfi_restore
-# define cfi_restore(reg)	.cfi_restore reg
-#endif
-
-#ifndef cfi_adjust_cfa_offset
-# define cfi_adjust_cfa_offset(off)	.cfi_adjust_cfa_offset off
-#endif
-
-#ifndef ENTRY
-# define ENTRY(name)	\
-	.type name, @function;	\
-	.globl name;	\
-	.p2align 4;	\
-name:	\
-	cfi_startproc
-#endif
-
-#ifndef END
-# define END(name)	\
-	cfi_endproc;	\
-	.size name, .-name
-#endif
-
-#define CFI_PUSH(REG)	\
-	cfi_adjust_cfa_offset (4);	\
-	cfi_rel_offset (REG, 0)
-
-#define CFI_POP(REG)	\
-	cfi_adjust_cfa_offset (-4);	\
-	cfi_restore (REG)
-
-#define PUSH(REG) pushl REG; CFI_PUSH (REG)
-#define POP(REG) popl REG; CFI_POP (REG)
-
-#define ENTRANCE PUSH(%esi); PUSH(%edi)
-#define RETURN  POP(%edi); POP(%esi); ret; CFI_PUSH(%esi); CFI_PUSH(%edi);
-#define PARMS  4
-#define STR1  PARMS
-#define STR2  STR1+4
-
-	.text
-ENTRY (wcscmp)
-/*
-	* This implementation uses SSE to compare up to 16 bytes at a time.
-*/
-	mov	STR1(%esp), %edx
-	mov	STR2(%esp), %eax
-
-	mov	(%eax), %ecx
-	cmp	%ecx, (%edx)
-	jne	L(neq)
-	test	%ecx, %ecx
-	jz	L(eq)
-
-	mov	4(%eax), %ecx
-	cmp	%ecx, 4(%edx)
-	jne	L(neq)
-	test	%ecx, %ecx
-	jz	L(eq)
-
-	mov	8(%eax), %ecx
-	cmp	%ecx, 8(%edx)
-	jne	L(neq)
-	test	%ecx, %ecx
-	jz	L(eq)
-
-	mov	12(%eax), %ecx
-	cmp	%ecx, 12(%edx)
-	jne	L(neq)
-	test	%ecx, %ecx
-	jz	L(eq)
-
-	ENTRANCE
-	add	$16, %eax
-	add	$16, %edx
-
-	mov	%eax, %esi
-	mov	%edx, %edi
-	pxor	%xmm0, %xmm0		/* clear %xmm0 for null char checks */
-	mov	%al, %ch
-	mov	%dl, %cl
-	and	$63, %eax		/* esi alignment in cache line */
-	and	$63, %edx		/* edi alignment in cache line */
-	and	$15, %cl
-	jz	L(continue_00)
-	cmp	$16, %edx
-	jb	L(continue_0)
-	cmp	$32, %edx
-	jb	L(continue_16)
-	cmp	$48, %edx
-	jb	L(continue_32)
-
-L(continue_48):
-	and	$15, %ch
-	jz	L(continue_48_00)
-	cmp	$16, %eax
-	jb	L(continue_0_48)
-	cmp	$32, %eax
-	jb	L(continue_16_48)
-	cmp	$48, %eax
-	jb	L(continue_32_48)
-
-	.p2align 4
-L(continue_48_48):
-	mov	(%esi), %ecx
-	cmp	%ecx, (%edi)
-	jne	L(nequal)
-	test	%ecx, %ecx
-	jz	L(equal)
-
-	mov	4(%esi), %ecx
-	cmp	%ecx, 4(%edi)
-	jne	L(nequal)
-	test	%ecx, %ecx
-	jz	L(equal)
-
-	mov	8(%esi), %ecx
-	cmp	%ecx, 8(%edi)
-	jne	L(nequal)
-	test	%ecx, %ecx
-	jz	L(equal)
-
-	mov	12(%esi), %ecx
-	cmp	%ecx, 12(%edi)
-	jne	L(nequal)
-	test	%ecx, %ecx
-	jz	L(equal)
-
-	movdqu	16(%edi), %xmm1
-	movdqu	16(%esi), %xmm2
-	pcmpeqd	%xmm1, %xmm0		/* Any null double_word? */
-	pcmpeqd	%xmm2, %xmm1		/* compare first 4 double_words for equality */
-	psubb	%xmm0, %xmm1		/* packed sub of comparison results*/
-	pmovmskb %xmm1, %edx
-	sub	$0xffff, %edx		/* if first 4 double_words are same, edx == 0xffff */
-	jnz	L(less4_double_words_16)
-
-	movdqu	32(%edi), %xmm1
-	movdqu	32(%esi), %xmm2
-	pcmpeqd	%xmm1, %xmm0		/* Any null double_word? */
-	pcmpeqd	%xmm2, %xmm1		/* compare first 4 double_words for equality */
-	psubb	%xmm0, %xmm1		/* packed sub of comparison results*/
-	pmovmskb %xmm1, %edx
-	sub	$0xffff, %edx		/* if first 4 double_words are same, edx == 0xffff */
-	jnz	L(less4_double_words_32)
-
-	movdqu	48(%edi), %xmm1
-	movdqu	48(%esi), %xmm2
-	pcmpeqd	%xmm1, %xmm0		/* Any null double_word? */
-	pcmpeqd	%xmm2, %xmm1		/* compare first 4 double_words for equality */
-	psubb	%xmm0, %xmm1		/* packed sub of comparison results*/
-	pmovmskb %xmm1, %edx
-	sub	$0xffff, %edx		/* if first 4 double_words are same, edx == 0xffff */
-	jnz	L(less4_double_words_48)
-
-	add	$64, %esi
-	add	$64, %edi
-	jmp	L(continue_48_48)
-
-L(continue_0):
-	and	$15, %ch
-	jz	L(continue_0_00)
-	cmp	$16, %eax
-	jb	L(continue_0_0)
-	cmp	$32, %eax
-	jb	L(continue_0_16)
-	cmp	$48, %eax
-	jb	L(continue_0_32)
-
-	.p2align 4
-L(continue_0_48):
-	mov	(%esi), %ecx
-	cmp	%ecx, (%edi)
-	jne	L(nequal)
-	test	%ecx, %ecx
-	jz	L(equal)
-
-	mov	4(%esi), %ecx
-	cmp	%ecx, 4(%edi)
-	jne	L(nequal)
-	test	%ecx, %ecx
-	jz	L(equal)
-
-	mov	8(%esi), %ecx
-	cmp	%ecx, 8(%edi)
-	jne	L(nequal)
-	test	%ecx, %ecx
-	jz	L(equal)
-
-	mov	12(%esi), %ecx
-	cmp	%ecx, 12(%edi)
-	jne	L(nequal)
-	test	%ecx, %ecx
-	jz	L(equal)
-
-	movdqu	16(%edi), %xmm1
-	movdqu	16(%esi), %xmm2
-	pcmpeqd	%xmm1, %xmm0		/* Any null double_word? */
-	pcmpeqd	%xmm2, %xmm1		/* compare first 4 double_words for equality */
-	psubb	%xmm0, %xmm1		/* packed sub of comparison results*/
-	pmovmskb %xmm1, %edx
-	sub	$0xffff, %edx		/* if first 4 double_words are same, edx == 0xffff */
-	jnz	L(less4_double_words_16)
-
-	movdqu	32(%edi), %xmm1
-	movdqu	32(%esi), %xmm2
-	pcmpeqd	%xmm1, %xmm0		/* Any null double_word? */
-	pcmpeqd	%xmm2, %xmm1		/* compare first 4 double_words for equality */
-	psubb	%xmm0, %xmm1		/* packed sub of comparison results*/
-	pmovmskb %xmm1, %edx
-	sub	$0xffff, %edx		/* if first 4 double_words are same, edx == 0xffff */
-	jnz	L(less4_double_words_32)
-
-	mov	48(%esi), %ecx
-	cmp	%ecx, 48(%edi)
-	jne	L(nequal)
-	test	%ecx, %ecx
-	jz	L(equal)
-
-	mov	52(%esi), %ecx
-	cmp	%ecx, 52(%edi)
-	jne	L(nequal)
-	test	%ecx, %ecx
-	jz	L(equal)
-
-	mov	56(%esi), %ecx
-	cmp	%ecx, 56(%edi)
-	jne	L(nequal)
-	test	%ecx, %ecx
-	jz	L(equal)
-
-	mov	60(%esi), %ecx
-	cmp	%ecx, 60(%edi)
-	jne	L(nequal)
-	test	%ecx, %ecx
-	jz	L(equal)
-
-	add	$64, %esi
-	add	$64, %edi
-	jmp	L(continue_0_48)
-
-	.p2align 4
-L(continue_00):
-	and	$15, %ch
-	jz	L(continue_00_00)
-	cmp	$16, %eax
-	jb	L(continue_00_0)
-	cmp	$32, %eax
-	jb	L(continue_00_16)
-	cmp	$48, %eax
-	jb	L(continue_00_32)
-
-	.p2align 4
-L(continue_00_48):
-	pcmpeqd	(%edi), %xmm0
-	mov	(%edi), %eax
-	pmovmskb %xmm0, %ecx
-	test	%ecx, %ecx
-	jnz	L(less4_double_words1)
-
-	cmp	(%esi), %eax
-	jne	L(nequal)
-
-	mov	4(%edi), %eax
-	cmp	4(%esi), %eax
-	jne	L(nequal)
-
-	mov	8(%edi), %eax
-	cmp	8(%esi), %eax
-	jne	L(nequal)
-
-	mov	12(%edi), %eax
-	cmp	12(%esi), %eax
-	jne	L(nequal)
-
-	movdqu	16(%esi), %xmm2
-	pcmpeqd	%xmm2, %xmm0		/* Any null double_word? */
-	pcmpeqd	16(%edi), %xmm2		/* compare first 4 double_words for equality */
-	psubb	%xmm0, %xmm2		/* packed sub of comparison results*/
-	pmovmskb %xmm2, %edx
-	sub	$0xffff, %edx		/* if first 4 double_words are same, edx == 0xffff */
-	jnz	L(less4_double_words_16)
-
-	movdqu	32(%esi), %xmm2
-	pcmpeqd	%xmm2, %xmm0		/* Any null double_word? */
-	pcmpeqd	32(%edi), %xmm2		/* compare first 4 double_words for equality */
-	psubb	%xmm0, %xmm2		/* packed sub of comparison results*/
-	pmovmskb %xmm2, %edx
-	sub	$0xffff, %edx		/* if first 4 double_words are same, edx == 0xffff */
-	jnz	L(less4_double_words_32)
-
-	movdqu	48(%esi), %xmm2
-	pcmpeqd	%xmm2, %xmm0		/* Any null double_word? */
-	pcmpeqd	48(%edi), %xmm2		/* compare first 4 double_words for equality */
-	psubb	%xmm0, %xmm2		/* packed sub of comparison results*/
-	pmovmskb %xmm2, %edx
-	sub	$0xffff, %edx		/* if first 4 double_words are same, edx == 0xffff */
-	jnz	L(less4_double_words_48)
-
-	add	$64, %esi
-	add	$64, %edi
-	jmp	L(continue_00_48)
-
-	.p2align 4
-L(continue_32):
-	and	$15, %ch
-	jz	L(continue_32_00)
-	cmp	$16, %eax
-	jb	L(continue_0_32)
-	cmp	$32, %eax
-	jb	L(continue_16_32)
-	cmp	$48, %eax
-	jb	L(continue_32_32)
-
-	.p2align 4
-L(continue_32_48):
-	mov	(%esi), %ecx
-	cmp	%ecx, (%edi)
-	jne	L(nequal)
-	test	%ecx, %ecx
-	jz	L(equal)
-
-	mov	4(%esi), %ecx
-	cmp	%ecx, 4(%edi)
-	jne	L(nequal)
-	test	%ecx, %ecx
-	jz	L(equal)
-
-	mov	8(%esi), %ecx
-	cmp	%ecx, 8(%edi)
-	jne	L(nequal)
-	test	%ecx, %ecx
-	jz	L(equal)
-
-	mov	12(%esi), %ecx
-	cmp	%ecx, 12(%edi)
-	jne	L(nequal)
-	test	%ecx, %ecx
-	jz	L(equal)
-
-	mov	16(%esi), %ecx
-	cmp	%ecx, 16(%edi)
-	jne	L(nequal)
-	test	%ecx, %ecx
-	jz	L(equal)
-
-	mov	20(%esi), %ecx
-	cmp	%ecx, 20(%edi)
-	jne	L(nequal)
-	test	%ecx, %ecx
-	jz	L(equal)
-
-	mov	24(%esi), %ecx
-	cmp	%ecx, 24(%edi)
-	jne	L(nequal)
-	test	%ecx, %ecx
-	jz	L(equal)
-
-	mov	28(%esi), %ecx
-	cmp	%ecx, 28(%edi)
-	jne	L(nequal)
-	test	%ecx, %ecx
-	jz	L(equal)
-
-	movdqu	32(%edi), %xmm1
-	movdqu	32(%esi), %xmm2
-	pcmpeqd	%xmm1, %xmm0		/* Any null double_word? */
-	pcmpeqd	%xmm2, %xmm1		/* compare first 4 double_words for equality */
-	psubb	%xmm0, %xmm1		/* packed sub of comparison results*/
-	pmovmskb %xmm1, %edx
-	sub	$0xffff, %edx		/* if first 4 double_words are same, edx == 0xffff */
-	jnz	L(less4_double_words_32)
-
-	movdqu	48(%edi), %xmm1
-	movdqu	48(%esi), %xmm2
-	pcmpeqd	%xmm1, %xmm0		/* Any null double_word? */
-	pcmpeqd	%xmm2, %xmm1		/* compare first 4 double_words for equality */
-	psubb	%xmm0, %xmm1		/* packed sub of comparison results*/
-	pmovmskb %xmm1, %edx
-	sub	$0xffff, %edx		/* if first 4 double_words are same, edx == 0xffff */
-	jnz	L(less4_double_words_48)
-
-	add	$64, %esi
-	add	$64, %edi
-	jmp	L(continue_32_48)
-
-	.p2align 4
-L(continue_16):
-	and	$15, %ch
-	jz	L(continue_16_00)
-	cmp	$16, %eax
-	jb	L(continue_0_16)
-	cmp	$32, %eax
-	jb	L(continue_16_16)
-	cmp	$48, %eax
-	jb	L(continue_16_32)
-
-	.p2align 4
-L(continue_16_48):
-	mov	(%esi), %ecx
-	cmp	%ecx, (%edi)
-	jne	L(nequal)
-	test	%ecx, %ecx
-	jz	L(equal)
-
-	mov	4(%esi), %ecx
-	cmp	%ecx, 4(%edi)
-	jne	L(nequal)
-	test	%ecx, %ecx
-	jz	L(equal)
-
-	mov	8(%esi), %ecx
-	cmp	%ecx, 8(%edi)
-	jne	L(nequal)
-	test	%ecx, %ecx
-	jz	L(equal)
-
-	mov	12(%esi), %ecx
-	cmp	%ecx, 12(%edi)
-	jne	L(nequal)
-	test	%ecx, %ecx
-	jz	L(equal)
-
-	movdqu	16(%edi), %xmm1
-	movdqu	16(%esi), %xmm2
-	pcmpeqd	%xmm1, %xmm0		/* Any null double_word? */
-	pcmpeqd	%xmm2, %xmm1		/* compare first 4 double_words for equality */
-	psubb	%xmm0, %xmm1		/* packed sub of comparison results*/
-	pmovmskb %xmm1, %edx
-	sub	$0xffff, %edx		/* if first 4 double_words are same, edx == 0xffff */
-	jnz	L(less4_double_words_16)
-
-	mov	32(%esi), %ecx
-	cmp	%ecx, 32(%edi)
-	jne	L(nequal)
-	test	%ecx, %ecx
-	jz	L(equal)
-
-	mov	36(%esi), %ecx
-	cmp	%ecx, 36(%edi)
-	jne	L(nequal)
-	test	%ecx, %ecx
-	jz	L(equal)
-
-	mov	40(%esi), %ecx
-	cmp	%ecx, 40(%edi)
-	jne	L(nequal)
-	test	%ecx, %ecx
-	jz	L(equal)
-
-	mov	44(%esi), %ecx
-	cmp	%ecx, 44(%edi)
-	jne	L(nequal)
-	test	%ecx, %ecx
-	jz	L(equal)
-
-	movdqu	48(%edi), %xmm1
-	movdqu	48(%esi), %xmm2
-	pcmpeqd	%xmm1, %xmm0		/* Any null double_word? */
-	pcmpeqd	%xmm2, %xmm1		/* compare first 4 double_words for equality */
-	psubb	%xmm0, %xmm1		/* packed sub of comparison results*/
-	pmovmskb %xmm1, %edx
-	sub	$0xffff, %edx		/* if first 4 double_words are same, edx == 0xffff */
-	jnz	L(less4_double_words_48)
-
-	add	$64, %esi
-	add	$64, %edi
-	jmp	L(continue_16_48)
-
-	.p2align 4
-L(continue_00_00):
-	movdqa	(%edi), %xmm1
-	pcmpeqd	%xmm1, %xmm0		/* Any null double_word? */
-	pcmpeqd	(%esi), %xmm1		/* compare first 4 double_words for equality */
-	psubb	%xmm0, %xmm1		/* packed sub of comparison results*/
-	pmovmskb %xmm1, %edx
-	sub	$0xffff, %edx		/* if first 4 double_words are same, edx == 0xffff */
-	jnz	L(less4_double_words)
-
-	movdqa	16(%edi), %xmm3
-	pcmpeqd	%xmm3, %xmm0		/* Any null double_word? */
-	pcmpeqd	16(%esi), %xmm3		/* compare first 4 double_words for equality */
-	psubb	%xmm0, %xmm3		/* packed sub of comparison results*/
-	pmovmskb %xmm3, %edx
-	sub	$0xffff, %edx		/* if first 4 double_words are same, edx == 0xffff */
-	jnz	L(less4_double_words_16)
-
-	movdqa	32(%edi), %xmm5
-	pcmpeqd	%xmm5, %xmm0		/* Any null double_word? */
-	pcmpeqd	32(%esi), %xmm5		/* compare first 4 double_words for equality */
-	psubb	%xmm0, %xmm5		/* packed sub of comparison results*/
-	pmovmskb %xmm5, %edx
-	sub	$0xffff, %edx		/* if first 4 double_words are same, edx == 0xffff */
-	jnz	L(less4_double_words_32)
-
-	movdqa	48(%edi), %xmm1
-	pcmpeqd	%xmm1, %xmm0		/* Any null double_word? */
-	pcmpeqd	48(%esi), %xmm1		/* compare first 4 double_words for equality */
-	psubb	%xmm0, %xmm1		/* packed sub of comparison results*/
-	pmovmskb %xmm1, %edx
-	sub	$0xffff, %edx		/* if first 4 double_words are same, edx == 0xffff */
-	jnz	L(less4_double_words_48)
-
-	add	$64, %esi
-	add	$64, %edi
-	jmp	L(continue_00_00)
-
-	.p2align 4
-L(continue_00_32):
-	movdqu	(%esi), %xmm2
-	pcmpeqd	%xmm2, %xmm0		/* Any null double_word? */
-	pcmpeqd	(%edi), %xmm2		/* compare first 4 double_words for equality */
-	psubb	%xmm0, %xmm2		/* packed sub of comparison results*/
-	pmovmskb %xmm2, %edx
-	sub	$0xffff, %edx		/* if first 4 double_words are same, edx == 0xffff */
-	jnz	L(less4_double_words)
-
-	add	$16, %esi
-	add	$16, %edi
-	jmp	L(continue_00_48)
-
-	.p2align 4
-L(continue_00_16):
-	movdqu	(%esi), %xmm2
-	pcmpeqd	%xmm2, %xmm0		/* Any null double_word? */
-	pcmpeqd	(%edi), %xmm2		/* compare first 4 double_words for equality */
-	psubb	%xmm0, %xmm2		/* packed sub of comparison results*/
-	pmovmskb %xmm2, %edx
-	sub	$0xffff, %edx		/* if first 4 double_words are same, edx == 0xffff */
-	jnz	L(less4_double_words)
-
-	movdqu	16(%esi), %xmm2
-	pcmpeqd	%xmm2, %xmm0		/* Any null double_word? */
-	pcmpeqd	16(%edi), %xmm2		/* compare first 4 double_words for equality */
-	psubb	%xmm0, %xmm2		/* packed sub of comparison results*/
-	pmovmskb %xmm2, %edx
-	sub	$0xffff, %edx		/* if first 4 double_words are same, edx == 0xffff */
-	jnz	L(less4_double_words_16)
-
-	add	$32, %esi
-	add	$32, %edi
-	jmp	L(continue_00_48)
-
-	.p2align 4
-L(continue_00_0):
-	movdqu	(%esi), %xmm2
-	pcmpeqd	%xmm2, %xmm0		/* Any null double_word? */
-	pcmpeqd	(%edi), %xmm2		/* compare first 4 double_words for equality */
-	psubb	%xmm0, %xmm2		/* packed sub of comparison results*/
-	pmovmskb %xmm2, %edx
-	sub	$0xffff, %edx		/* if first 4 double_words are same, edx == 0xffff */
-	jnz	L(less4_double_words)
-
-	movdqu	16(%esi), %xmm2
-	pcmpeqd	%xmm2, %xmm0		/* Any null double_word? */
-	pcmpeqd	16(%edi), %xmm2		/* compare first 4 double_words for equality */
-	psubb	%xmm0, %xmm2		/* packed sub of comparison results*/
-	pmovmskb %xmm2, %edx
-	sub	$0xffff, %edx		/* if first 4 double_words are same, edx == 0xffff */
-	jnz	L(less4_double_words_16)
-
-	movdqu	32(%esi), %xmm2
-	pcmpeqd	%xmm2, %xmm0		/* Any null double_word? */
-	pcmpeqd	32(%edi), %xmm2		/* compare first 4 double_words for equality */
-	psubb	%xmm0, %xmm2		/* packed sub of comparison results*/
-	pmovmskb %xmm2, %edx
-	sub	$0xffff, %edx		/* if first 4 double_words are same, edx == 0xffff */
-	jnz	L(less4_double_words_32)
-
-	add	$48, %esi
-	add	$48, %edi
-	jmp	L(continue_00_48)
-
-	.p2align 4
-L(continue_48_00):
-	pcmpeqd	(%esi), %xmm0
-	mov	(%edi), %eax
-	pmovmskb %xmm0, %ecx
-	test	%ecx, %ecx
-	jnz	L(less4_double_words1)
-
-	cmp	(%esi), %eax
-	jne	L(nequal)
-
-	mov	4(%edi), %eax
-	cmp	4(%esi), %eax
-	jne	L(nequal)
-
-	mov	8(%edi), %eax
-	cmp	8(%esi), %eax
-	jne	L(nequal)
-
-	mov	12(%edi), %eax
-	cmp	12(%esi), %eax
-	jne	L(nequal)
-
-	movdqu	16(%edi), %xmm1
-	pcmpeqd	%xmm1, %xmm0		/* Any null double_word? */
-	pcmpeqd	16(%esi), %xmm1		/* compare first 4 double_words for equality */
-	psubb	%xmm0, %xmm1		/* packed sub of comparison results*/
-	pmovmskb %xmm1, %edx
-	sub	$0xffff, %edx		/* if first 4 double_words are same, edx == 0xffff */
-	jnz	L(less4_double_words_16)
-
-	movdqu	32(%edi), %xmm1
-	pcmpeqd	%xmm1, %xmm0		/* Any null double_word? */
-	pcmpeqd	32(%esi), %xmm1		/* compare first 4 double_words for equality */
-	psubb	%xmm0, %xmm1		/* packed sub of comparison results*/
-	pmovmskb %xmm1, %edx
-	sub	$0xffff, %edx		/* if first 4 double_words are same, edx == 0xffff */
-	jnz	L(less4_double_words_32)
-
-	movdqu	48(%edi), %xmm1
-	pcmpeqd	%xmm1, %xmm0		/* Any null double_word? */
-	pcmpeqd	48(%esi), %xmm1		/* compare first 4 double_words for equality */
-	psubb	%xmm0, %xmm1		/* packed sub of comparison results*/
-	pmovmskb %xmm1, %edx
-	sub	$0xffff, %edx		/* if first 4 double_words are same, edx == 0xffff */
-	jnz	L(less4_double_words_48)
-
-	add	$64, %esi
-	add	$64, %edi
-	jmp	L(continue_48_00)
-
-	.p2align 4
-L(continue_32_00):
-	movdqu	(%edi), %xmm1
-	pcmpeqd	%xmm1, %xmm0		/* Any null double_word? */
-	pcmpeqd	(%esi), %xmm1		/* compare first 4 double_words for equality */
-	psubb	%xmm0, %xmm1		/* packed sub of comparison results*/
-	pmovmskb %xmm1, %edx
-	sub	$0xffff, %edx		/* if first 4 double_words are same, edx == 0xffff */
-	jnz	L(less4_double_words)
-
-	add	$16, %esi
-	add	$16, %edi
-	jmp	L(continue_48_00)
-
-	.p2align 4
-L(continue_16_00):
-	movdqu	(%edi), %xmm1
-	pcmpeqd	%xmm1, %xmm0		/* Any null double_word? */
-	pcmpeqd	(%esi), %xmm1		/* compare first 4 double_words for equality */
-	psubb	%xmm0, %xmm1		/* packed sub of comparison results*/
-	pmovmskb %xmm1, %edx
-	sub	$0xffff, %edx		/* if first 4 double_words are same, edx == 0xffff */
-	jnz	L(less4_double_words)
-
-	movdqu	16(%edi), %xmm1
-	pcmpeqd	%xmm1, %xmm0		/* Any null double_word? */
-	pcmpeqd	16(%esi), %xmm1		/* compare first 4 double_words for equality */
-	psubb	%xmm0, %xmm1		/* packed sub of comparison results*/
-	pmovmskb %xmm1, %edx
-	sub	$0xffff, %edx		/* if first 4 double_words are same, edx == 0xffff */
-	jnz	L(less4_double_words_16)
-
-	add	$32, %esi
-	add	$32, %edi
-	jmp	L(continue_48_00)
-
-	.p2align 4
-L(continue_0_00):
-	movdqu	(%edi), %xmm1
-	pcmpeqd	%xmm1, %xmm0		/* Any null double_word? */
-	pcmpeqd	(%esi), %xmm1		/* compare first 4 double_words for equality */
-	psubb	%xmm0, %xmm1		/* packed sub of comparison results*/
-	pmovmskb %xmm1, %edx
-	sub	$0xffff, %edx		/* if first 4 double_words are same, edx == 0xffff */
-	jnz	L(less4_double_words)
-
-	movdqu	16(%edi), %xmm1
-	pcmpeqd	%xmm1, %xmm0		/* Any null double_word? */
-	pcmpeqd	16(%esi), %xmm1		/* compare first 4 double_words for equality */
-	psubb	%xmm0, %xmm1		/* packed sub of comparison results*/
-	pmovmskb %xmm1, %edx
-	sub	$0xffff, %edx		/* if first 4 double_words are same, edx == 0xffff */
-	jnz	L(less4_double_words_16)
-
-	movdqu	32(%edi), %xmm1
-	pcmpeqd	%xmm1, %xmm0		/* Any null double_word? */
-	pcmpeqd	32(%esi), %xmm1		/* compare first 4 double_words for equality */
-	psubb	%xmm0, %xmm1		/* packed sub of comparison results*/
-	pmovmskb %xmm1, %edx
-	sub	$0xffff, %edx		/* if first 4 double_words are same, edx == 0xffff */
-	jnz	L(less4_double_words_32)
-
-	add	$48, %esi
-	add	$48, %edi
-	jmp	L(continue_48_00)
-
-	.p2align 4
-L(continue_32_32):
-	movdqu	(%edi), %xmm1
-	movdqu	(%esi), %xmm2
-	pcmpeqd	%xmm1, %xmm0		/* Any null double_word? */
-	pcmpeqd	%xmm2, %xmm1		/* compare first 4 double_words for equality */
-	psubb	%xmm0, %xmm1		/* packed sub of comparison results*/
-	pmovmskb %xmm1, %edx
-	sub	$0xffff, %edx		/* if first 4 double_words are same, edx == 0xffff */
-	jnz	L(less4_double_words)
-
-	add	$16, %esi
-	add	$16, %edi
-	jmp	L(continue_48_48)
-
-	.p2align 4
-L(continue_16_16):
-	movdqu	(%edi), %xmm1
-	movdqu	(%esi), %xmm2
-	pcmpeqd	%xmm1, %xmm0		/* Any null double_word? */
-	pcmpeqd	%xmm2, %xmm1		/* compare first 4 double_words for equality */
-	psubb	%xmm0, %xmm1		/* packed sub of comparison results*/
-	pmovmskb %xmm1, %edx
-	sub	$0xffff, %edx		/* if first 4 double_words are same, edx == 0xffff */
-	jnz	L(less4_double_words)
-
-	movdqu	16(%edi), %xmm3
-	movdqu	16(%esi), %xmm4
-	pcmpeqd	%xmm3, %xmm0		/* Any null double_word? */
-	pcmpeqd	%xmm4, %xmm3		/* compare first 4 double_words for equality */
-	psubb	%xmm0, %xmm3		/* packed sub of comparison results*/
-	pmovmskb %xmm3, %edx
-	sub	$0xffff, %edx		/* if first 4 double_words are same, edx == 0xffff */
-	jnz	L(less4_double_words_16)
-
-	add	$32, %esi
-	add	$32, %edi
-	jmp	L(continue_48_48)
-
-	.p2align 4
-L(continue_0_0):
-	movdqu	(%edi), %xmm1
-	movdqu	(%esi), %xmm2
-	pcmpeqd	%xmm1, %xmm0		/* Any null double_word? */
-	pcmpeqd	%xmm2, %xmm1		/* compare first 4 double_words for equality */
-	psubb	%xmm0, %xmm1		/* packed sub of comparison results*/
-	pmovmskb %xmm1, %edx
-	sub	$0xffff, %edx		/* if first 4 double_words are same, edx == 0xffff */
-	jnz	L(less4_double_words)
-
-	movdqu	16(%edi), %xmm3
-	movdqu	16(%esi), %xmm4
-	pcmpeqd	%xmm3, %xmm0		/* Any null double_word? */
-	pcmpeqd	%xmm4, %xmm3		/* compare first 4 double_words for equality */
-	psubb	%xmm0, %xmm3		/* packed sub of comparison results*/
-	pmovmskb %xmm3, %edx
-	sub	$0xffff, %edx		/* if first 4 double_words are same, edx == 0xffff */
-	jnz	L(less4_double_words_16)
-
-	movdqu	32(%edi), %xmm1
-	movdqu	32(%esi), %xmm2
-	pcmpeqd	%xmm1, %xmm0		/* Any null double_word? */
-	pcmpeqd	%xmm2, %xmm1		/* compare first 4 double_words for equality */
-	psubb	%xmm0, %xmm1		/* packed sub of comparison results*/
-	pmovmskb %xmm1, %edx
-	sub	$0xffff, %edx		/* if first 4 double_words are same, edx == 0xffff */
-	jnz	L(less4_double_words_32)
-
-	add	$48, %esi
-	add	$48, %edi
-	jmp	L(continue_48_48)
-
-	.p2align 4
-L(continue_0_16):
-	movdqu	(%edi), %xmm1
-	movdqu	(%esi), %xmm2
-	pcmpeqd	%xmm1, %xmm0		/* Any null double_word? */
-	pcmpeqd	%xmm2, %xmm1		/* compare first 4 double_words for equality */
-	psubb	%xmm0, %xmm1		/* packed sub of comparison results*/
-	pmovmskb %xmm1, %edx
-	sub	$0xffff, %edx		/* if first 4 double_words are same, edx == 0xffff */
-	jnz	L(less4_double_words)
-
-	movdqu	16(%edi), %xmm1
-	movdqu	16(%esi), %xmm2
-	pcmpeqd	%xmm1, %xmm0		/* Any null double_word? */
-	pcmpeqd	%xmm2, %xmm1		/* compare first 4 double_words for equality */
-	psubb	%xmm0, %xmm1		/* packed sub of comparison results*/
-	pmovmskb %xmm1, %edx
-	sub	$0xffff, %edx		/* if first 4 double_words are same, edx == 0xffff */
-	jnz	L(less4_double_words_16)
-
-	add	$32, %esi
-	add	$32, %edi
-	jmp	L(continue_32_48)
-
-	.p2align 4
-L(continue_0_32):
-	movdqu	(%edi), %xmm1
-	movdqu	(%esi), %xmm2
-	pcmpeqd	%xmm1, %xmm0		/* Any null double_word? */
-	pcmpeqd	%xmm2, %xmm1		/* compare first 4 double_words for equality */
-	psubb	%xmm0, %xmm1		/* packed sub of comparison results*/
-	pmovmskb %xmm1, %edx
-	sub	$0xffff, %edx		/* if first 4 double_words are same, edx == 0xffff */
-	jnz	L(less4_double_words)
-
-	add	$16, %esi
-	add	$16, %edi
-	jmp	L(continue_16_48)
-
-	.p2align 4
-L(continue_16_32):
-	movdqu	(%edi), %xmm1
-	movdqu	(%esi), %xmm2
-	pcmpeqd	%xmm1, %xmm0		/* Any null double_word? */
-	pcmpeqd	%xmm2, %xmm1		/* compare first 4 double_words for equality */
-	psubb	%xmm0, %xmm1		/* packed sub of comparison results*/
-	pmovmskb %xmm1, %edx
-	sub	$0xffff, %edx		/* if first 4 double_words are same, edx == 0xffff */
-	jnz	L(less4_double_words)
-
-	add	$16, %esi
-	add	$16, %edi
-	jmp	L(continue_32_48)
-
-	.p2align 4
-L(less4_double_words1):
-	cmp	(%esi), %eax
-	jne	L(nequal)
-	test	%eax, %eax
-	jz	L(equal)
-
-	mov	4(%esi), %ecx
-	cmp	%ecx, 4(%edi)
-	jne	L(nequal)
-	test	%ecx, %ecx
-	jz	L(equal)
-
-	mov	8(%esi), %ecx
-	cmp	%ecx, 8(%edi)
-	jne	L(nequal)
-	test	%ecx, %ecx
-	jz	L(equal)
-
-	mov	12(%esi), %ecx
-	cmp	%ecx, 12(%edi)
-	jne	L(nequal)
-	xor	%eax, %eax
-	RETURN
-
-	.p2align 4
-L(less4_double_words):
-	xor	%eax, %eax
-	test	%dl, %dl
-	jz	L(next_two_double_words)
-	and	$15, %dl
-	jz	L(second_double_word)
-	mov	(%esi), %ecx
-	cmp	%ecx, (%edi)
-	jne	L(nequal)
-	RETURN
-
-	.p2align 4
-L(second_double_word):
-	mov	4(%esi), %ecx
-	cmp	%ecx, 4(%edi)
-	jne	L(nequal)
-	RETURN
-
-	.p2align 4
-L(next_two_double_words):
-	and	$15, %dh
-	jz	L(fourth_double_word)
-	mov	8(%esi), %ecx
-	cmp	%ecx, 8(%edi)
-	jne	L(nequal)
-	RETURN
-
-	.p2align 4
-L(fourth_double_word):
-	mov	12(%esi), %ecx
-	cmp	%ecx, 12(%edi)
-	jne	L(nequal)
-	RETURN
-
-	.p2align 4
-L(less4_double_words_16):
-	xor	%eax, %eax
-	test	%dl, %dl
-	jz	L(next_two_double_words_16)
-	and	$15, %dl
-	jz	L(second_double_word_16)
-	mov	16(%esi), %ecx
-	cmp	%ecx, 16(%edi)
-	jne	L(nequal)
-	RETURN
-
-	.p2align 4
-L(second_double_word_16):
-	mov	20(%esi), %ecx
-	cmp	%ecx, 20(%edi)
-	jne	L(nequal)
-	RETURN
-
-	.p2align 4
-L(next_two_double_words_16):
-	and	$15, %dh
-	jz	L(fourth_double_word_16)
-	mov	24(%esi), %ecx
-	cmp	%ecx, 24(%edi)
-	jne	L(nequal)
-	RETURN
-
-	.p2align 4
-L(fourth_double_word_16):
-	mov	28(%esi), %ecx
-	cmp	%ecx, 28(%edi)
-	jne	L(nequal)
-	RETURN
-
-	.p2align 4
-L(less4_double_words_32):
-	xor	%eax, %eax
-	test	%dl, %dl
-	jz	L(next_two_double_words_32)
-	and	$15, %dl
-	jz	L(second_double_word_32)
-	mov	32(%esi), %ecx
-	cmp	%ecx, 32(%edi)
-	jne	L(nequal)
-	RETURN
-
-	.p2align 4
-L(second_double_word_32):
-	mov	36(%esi), %ecx
-	cmp	%ecx, 36(%edi)
-	jne	L(nequal)
-	RETURN
-
-	.p2align 4
-L(next_two_double_words_32):
-	and	$15, %dh
-	jz	L(fourth_double_word_32)
-	mov	40(%esi), %ecx
-	cmp	%ecx, 40(%edi)
-	jne	L(nequal)
-	RETURN
-
-	.p2align 4
-L(fourth_double_word_32):
-	mov	44(%esi), %ecx
-	cmp	%ecx, 44(%edi)
-	jne	L(nequal)
-	RETURN
-
-	.p2align 4
-L(less4_double_words_48):
-	xor	%eax, %eax
-	test	%dl, %dl
-	jz	L(next_two_double_words_48)
-	and	$15, %dl
-	jz	L(second_double_word_48)
-	mov	48(%esi), %ecx
-	cmp	%ecx, 48(%edi)
-	jne	L(nequal)
-	RETURN
-
-	.p2align 4
-L(second_double_word_48):
-	mov	52(%esi), %ecx
-	cmp	%ecx, 52(%edi)
-	jne	L(nequal)
-	RETURN
-
-	.p2align 4
-L(next_two_double_words_48):
-	and	$15, %dh
-	jz	L(fourth_double_word_48)
-	mov	56(%esi), %ecx
-	cmp	%ecx, 56(%edi)
-	jne	L(nequal)
-	RETURN
-
-	.p2align 4
-L(fourth_double_word_48):
-	mov	60(%esi), %ecx
-	cmp	%ecx, 60(%edi)
-	jne	L(nequal)
-	RETURN
-
-	.p2align 4
-L(nequal):
-	mov	$1, %eax
-	jg	L(return)
-	neg	%eax
-	RETURN
-
-	.p2align 4
-L(return):
-	RETURN
-
-	.p2align 4
-L(equal):
-	xorl	%eax, %eax
-	RETURN
-
-	CFI_POP (%edi)
-	CFI_POP (%esi)
-
-	.p2align 4
-L(neq):
-	mov	$1, %eax
-	jg	L(neq_bigger)
-	neg	%eax
-
-L(neq_bigger):
-	ret
-
-	.p2align 4
-L(eq):
-	xorl	%eax, %eax
-	ret
-
-END (wcscmp)
-
diff --git a/libc/arch-x86/string/sse2-wcslen-atom.S b/libc/arch-x86/string/sse2-wcslen-atom.S
deleted file mode 100644
index 2f10db4..0000000
--- a/libc/arch-x86/string/sse2-wcslen-atom.S
+++ /dev/null
@@ -1,306 +0,0 @@
-/*
-Copyright (c) 2011 Intel Corporation
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
-    * Redistributions of source code must retain the above copyright notice,
-    * this list of conditions and the following disclaimer.
-
-    * Redistributions in binary form must reproduce the above copyright notice,
-    * this list of conditions and the following disclaimer in the documentation
-    * and/or other materials provided with the distribution.
-
-    * Neither the name of Intel Corporation nor the names of its contributors
-    * may be used to endorse or promote products derived from this software
-    * without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
-ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-
-#ifndef USE_AS_WCSCAT
-
-# ifndef L
-#  define L(label)	.L##label
-# endif
-
-# ifndef cfi_startproc
-#  define cfi_startproc	.cfi_startproc
-# endif
-
-# ifndef cfi_endproc
-#  define cfi_endproc	.cfi_endproc
-# endif
-
-# ifndef ENTRY
-#  define ENTRY(name)	\
-	.type name,  @function;	\
-	.globl name;	\
-	.p2align 4;	\
-name:	\
-	cfi_startproc
-# endif
-
-# ifndef END
-#  define END(name)	\
-	cfi_endproc;	\
-	.size name, .-name
-# endif
-
-# define PARMS	4
-# define STR	PARMS
-# define RETURN ret
-
-	.text
-ENTRY (wcslen)
-	mov	STR(%esp), %edx
-#endif
-	cmpl	$0, (%edx)
-	jz	L(exit_tail0)
-	cmpl	$0, 4(%edx)
-	jz	L(exit_tail1)
-	cmpl	$0, 8(%edx)
-	jz	L(exit_tail2)
-	cmpl	$0, 12(%edx)
-	jz	L(exit_tail3)
-	cmpl	$0, 16(%edx)
-	jz	L(exit_tail4)
-	cmpl	$0, 20(%edx)
-	jz	L(exit_tail5)
-	cmpl	$0, 24(%edx)
-	jz	L(exit_tail6)
-	cmpl	$0, 28(%edx)
-	jz	L(exit_tail7)
-
-	pxor	%xmm0, %xmm0
-
-	lea	32(%edx), %eax
-	lea	-16(%eax), %ecx
-	and	$-16, %eax
-
-	pcmpeqd	(%eax), %xmm0
-	pmovmskb %xmm0, %edx
-	pxor	%xmm1, %xmm1
-	lea	16(%eax), %eax
-	test	%edx, %edx
-	jnz	L(exit)
-
-	pcmpeqd	(%eax), %xmm1
-	pmovmskb %xmm1, %edx
-	pxor	%xmm2, %xmm2
-	lea	16(%eax), %eax
-	test	%edx, %edx
-	jnz	L(exit)
-
-	pcmpeqd	(%eax), %xmm2
-	pmovmskb %xmm2, %edx
-	pxor	%xmm3, %xmm3
-	lea	16(%eax), %eax
-	test	%edx, %edx
-	jnz	L(exit)
-
-	pcmpeqd	(%eax), %xmm3
-	pmovmskb %xmm3, %edx
-	lea	16(%eax), %eax
-	test	%edx, %edx
-	jnz	L(exit)
-
-	pcmpeqd	(%eax), %xmm0
-	pmovmskb %xmm0, %edx
-	lea	16(%eax), %eax
-	test	%edx, %edx
-	jnz	L(exit)
-
-	pcmpeqd	(%eax), %xmm1
-	pmovmskb %xmm1, %edx
-	lea	16(%eax), %eax
-	test	%edx, %edx
-	jnz	L(exit)
-
-	pcmpeqd	(%eax), %xmm2
-	pmovmskb %xmm2, %edx
-	lea	16(%eax), %eax
-	test	%edx, %edx
-	jnz	L(exit)
-
-	pcmpeqd	(%eax), %xmm3
-	pmovmskb %xmm3, %edx
-	lea	16(%eax), %eax
-	test	%edx, %edx
-	jnz	L(exit)
-
-	pcmpeqd	(%eax), %xmm0
-	pmovmskb %xmm0, %edx
-	lea	16(%eax), %eax
-	test	%edx, %edx
-	jnz	L(exit)
-
-	pcmpeqd	(%eax), %xmm1
-	pmovmskb %xmm1, %edx
-	lea	16(%eax), %eax
-	test	%edx, %edx
-	jnz	L(exit)
-
-	pcmpeqd	(%eax), %xmm2
-	pmovmskb %xmm2, %edx
-	lea	16(%eax), %eax
-	test	%edx, %edx
-	jnz	L(exit)
-
-	pcmpeqd	(%eax), %xmm3
-	pmovmskb %xmm3, %edx
-	lea	16(%eax), %eax
-	test	%edx, %edx
-	jnz	L(exit)
-
-	pcmpeqd	(%eax), %xmm0
-	pmovmskb %xmm0, %edx
-	lea	16(%eax), %eax
-	test	%edx, %edx
-	jnz	L(exit)
-
-	pcmpeqd	(%eax), %xmm1
-	pmovmskb %xmm1, %edx
-	lea	16(%eax), %eax
-	test	%edx, %edx
-	jnz	L(exit)
-
-	pcmpeqd	(%eax), %xmm2
-	pmovmskb %xmm2, %edx
-	lea	16(%eax), %eax
-	test	%edx, %edx
-	jnz	L(exit)
-
-	pcmpeqd	(%eax), %xmm3
-	pmovmskb %xmm3, %edx
-	lea	16(%eax), %eax
-	test	%edx, %edx
-	jnz	L(exit)
-
-	and	$-0x40, %eax
-
-	.p2align 4
-L(aligned_64_loop):
-	movaps	(%eax), %xmm0
-	movaps	16(%eax), %xmm1
-	movaps	32(%eax), %xmm2
-	movaps	48(%eax), %xmm6
-
-	pminub	%xmm1, %xmm0
-	pminub	%xmm6, %xmm2
-	pminub	%xmm0, %xmm2
-	pcmpeqd	%xmm3, %xmm2
-	pmovmskb %xmm2, %edx
-	lea	64(%eax), %eax
-	test	%edx, %edx
-	jz	L(aligned_64_loop)
-
-	pcmpeqd	-64(%eax), %xmm3
-	pmovmskb %xmm3, %edx
-	lea	48(%ecx), %ecx
-	test	%edx, %edx
-	jnz	L(exit)
-
-	pcmpeqd	%xmm1, %xmm3
-	pmovmskb %xmm3, %edx
-	lea	-16(%ecx), %ecx
-	test	%edx, %edx
-	jnz	L(exit)
-
-	pcmpeqd	-32(%eax), %xmm3
-	pmovmskb %xmm3, %edx
-	lea	-16(%ecx), %ecx
-	test	%edx, %edx
-	jnz	L(exit)
-
-	pcmpeqd	%xmm6, %xmm3
-	pmovmskb %xmm3, %edx
-	lea	-16(%ecx), %ecx
-	test	%edx, %edx
-	jnz	L(exit)
-
-	jmp	L(aligned_64_loop)
-
-	.p2align 4
-L(exit):
-	sub	%ecx, %eax
-	shr	$2, %eax
-	test	%dl, %dl
-	jz	L(exit_high)
-
-	mov	%dl, %cl
-	and	$15, %cl
-	jz	L(exit_1)
-	RETURN
-
-	.p2align 4
-L(exit_high):
-	mov	%dh, %ch
-	and	$15, %ch
-	jz	L(exit_3)
-	add	$2, %eax
-	RETURN
-
-	.p2align 4
-L(exit_1):
-	add	$1, %eax
-	RETURN
-
-	.p2align 4
-L(exit_3):
-	add	$3, %eax
-	RETURN
-
-	.p2align 4
-L(exit_tail0):
-	xor	%eax, %eax
-	RETURN
-
-	.p2align 4
-L(exit_tail1):
-	mov	$1, %eax
-	RETURN
-
-	.p2align 4
-L(exit_tail2):
-	mov	$2, %eax
-	RETURN
-
-	.p2align 4
-L(exit_tail3):
-	mov	$3, %eax
-	RETURN
-
-	.p2align 4
-L(exit_tail4):
-	mov	$4, %eax
-	RETURN
-
-	.p2align 4
-L(exit_tail5):
-	mov	$5, %eax
-	RETURN
-
-	.p2align 4
-L(exit_tail6):
-	mov	$6, %eax
-	RETURN
-
-	.p2align 4
-L(exit_tail7):
-	mov	$7, %eax
-#ifndef USE_AS_WCSCAT
-	RETURN
-
-END (wcslen)
-#endif
diff --git a/libc/arch-x86/string/sse2-wcsrchr-atom.S b/libc/arch-x86/string/sse2-wcsrchr-atom.S
deleted file mode 100644
index 1a55df2..0000000
--- a/libc/arch-x86/string/sse2-wcsrchr-atom.S
+++ /dev/null
@@ -1,402 +0,0 @@
-/*
-Copyright (c) 2011 Intel Corporation
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
-    * Redistributions of source code must retain the above copyright notice,
-    * this list of conditions and the following disclaimer.
-
-    * Redistributions in binary form must reproduce the above copyright notice,
-    * this list of conditions and the following disclaimer in the documentation
-    * and/or other materials provided with the distribution.
-
-    * Neither the name of Intel Corporation nor the names of its contributors
-    * may be used to endorse or promote products derived from this software
-    * without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
-ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-
-#ifndef L
-# define L(label)	.L##label
-#endif
-
-#ifndef cfi_startproc
-# define cfi_startproc	.cfi_startproc
-#endif
-
-#ifndef cfi_endproc
-# define cfi_endproc	.cfi_endproc
-#endif
-
-#ifndef cfi_rel_offset
-# define cfi_rel_offset(reg, off)	.cfi_rel_offset reg, off
-#endif
-
-#ifndef cfi_restore
-# define cfi_restore(reg)	.cfi_restore reg
-#endif
-
-#ifndef cfi_adjust_cfa_offset
-# define cfi_adjust_cfa_offset(off)	.cfi_adjust_cfa_offset off
-#endif
-
-#ifndef ENTRY
-# define ENTRY(name)	\
-	.type name, @function;	\
-	.globl name;	\
-	.p2align 4;	\
-name:	\
-	cfi_startproc
-#endif
-
-#ifndef END
-# define END(name)	\
-	cfi_endproc;	\
-	.size name, .-name
-#endif
-
-#define CFI_PUSH(REG)	\
-	cfi_adjust_cfa_offset (4);	\
-	cfi_rel_offset (REG, 0)
-
-#define CFI_POP(REG)	\
-	cfi_adjust_cfa_offset (-4);	\
-	cfi_restore (REG)
-
-#define PUSH(REG)	pushl REG;	CFI_PUSH (REG)
-#define POP(REG)	popl REG;	CFI_POP (REG)
-
-#define PARMS  8
-#define ENTRANCE PUSH(%edi);
-#define RETURN  POP(%edi);	ret;	CFI_PUSH(%edi);
-
-#define STR1  PARMS
-#define STR2  STR1+4
-
-	.text
-ENTRY (wcsrchr)
-
-	ENTRANCE
-	mov	STR1(%esp), %ecx
-	movd	STR2(%esp), %xmm1
-
-	mov	%ecx, %edi
-	punpckldq %xmm1, %xmm1
-	pxor	%xmm2, %xmm2
-	punpckldq %xmm1, %xmm1
-
-/* ECX has OFFSET. */
-	and	$63, %ecx
-	cmp	$48, %ecx
-	ja	L(crosscache)
-
-/* unaligned string. */
-	movdqu	(%edi), %xmm0
-	pcmpeqd	%xmm0, %xmm2
-	pcmpeqd	%xmm1, %xmm0
-/* Find where NULL is.  */
-	pmovmskb %xmm2, %ecx
-/* Check if there is a match.  */
-	pmovmskb %xmm0, %eax
-	add	$16, %edi
-
-	test	%eax, %eax
-	jnz	L(unaligned_match1)
-
-	test	%ecx, %ecx
-	jnz	L(return_null)
-
-	and	$-16, %edi
-
-	PUSH	(%esi)
-
-	xor	%edx, %edx
-	jmp	L(loop)
-
-	CFI_POP	(%esi)
-
-	.p2align 4
-L(unaligned_match1):
-	test	%ecx, %ecx
-	jnz	L(prolog_find_zero_1)
-
-	PUSH	(%esi)
-
-/* Save current match */
-	mov	%eax, %edx
-	mov	%edi, %esi
-	and	$-16, %edi
-	jmp	L(loop)
-
-	CFI_POP	(%esi)
-
-	.p2align 4
-L(crosscache):
-/* Hancle unaligned string.  */
-	and	$15, %ecx
-	and	$-16, %edi
-	pxor	%xmm3, %xmm3
-	movdqa	(%edi), %xmm0
-	pcmpeqd	%xmm0, %xmm3
-	pcmpeqd	%xmm1, %xmm0
-/* Find where NULL is.  */
-	pmovmskb %xmm3, %edx
-/* Check if there is a match.  */
-	pmovmskb %xmm0, %eax
-/* Remove the leading bytes.  */
-	shr	%cl, %edx
-	shr	%cl, %eax
-	add	$16, %edi
-
-	test	%eax, %eax
-	jnz	L(unaligned_match)
-
-	test	%edx, %edx
-	jnz	L(return_null)
-
-	PUSH	(%esi)
-
-	xor	%edx, %edx
-	jmp	L(loop)
-
-	CFI_POP	(%esi)
-
-	.p2align 4
-L(unaligned_match):
-	test	%edx, %edx
-	jnz	L(prolog_find_zero)
-
-	PUSH	(%esi)
-
-	mov	%eax, %edx
-	lea	(%edi, %ecx), %esi
-
-/* Loop start on aligned string.  */
-	.p2align 4
-L(loop):
-	movdqa	(%edi), %xmm0
-	pcmpeqd	%xmm0, %xmm2
-	add	$16, %edi
-	pcmpeqd	%xmm1, %xmm0
-	pmovmskb %xmm2, %ecx
-	pmovmskb %xmm0, %eax
-	or	%eax, %ecx
-	jnz	L(matches)
-
-	movdqa	(%edi), %xmm3
-	pcmpeqd	%xmm3, %xmm2
-	add	$16, %edi
-	pcmpeqd	%xmm1, %xmm3
-	pmovmskb %xmm2, %ecx
-	pmovmskb %xmm3, %eax
-	or	%eax, %ecx
-	jnz	L(matches)
-
-	movdqa	(%edi), %xmm4
-	pcmpeqd	%xmm4, %xmm2
-	add	$16, %edi
-	pcmpeqd	%xmm1, %xmm4
-	pmovmskb %xmm2, %ecx
-	pmovmskb %xmm4, %eax
-	or	%eax, %ecx
-	jnz	L(matches)
-
-	movdqa	(%edi), %xmm5
-	pcmpeqd	%xmm5, %xmm2
-	add	$16, %edi
-	pcmpeqd	%xmm1, %xmm5
-	pmovmskb %xmm2, %ecx
-	pmovmskb %xmm5, %eax
-	or	%eax, %ecx
-	jz	L(loop)
-
-	.p2align 4
-L(matches):
-	test	%eax, %eax
-	jnz	L(match)
-L(return_value):
-	test	%edx, %edx
-	jz	L(return_null_1)
-	mov	%edx, %eax
-	mov	%esi, %edi
-
-	POP	(%esi)
-
-	test	%ah, %ah
-	jnz	L(match_third_or_fourth_wchar)
-	test	$15 << 4, %al
-	jnz	L(match_second_wchar)
-	lea	-16(%edi), %eax
-	RETURN
-
-	CFI_PUSH	(%esi)
-
-	.p2align 4
-L(return_null_1):
-	POP	(%esi)
-
-	xor	%eax, %eax
-	RETURN
-
-	CFI_PUSH	(%esi)
-
-	.p2align 4
-L(match):
-	pmovmskb %xmm2, %ecx
-	test	%ecx, %ecx
-	jnz	L(find_zero)
-/* save match info */
-	mov	%eax, %edx
-	mov	%edi, %esi
-	jmp	L(loop)
-
-	.p2align 4
-L(find_zero):
-	test	%cl, %cl
-	jz	L(find_zero_in_third_or_fourth_wchar)
-	test	$15, %cl
-	jz	L(find_zero_in_second_wchar)
-	and	$1, %eax
-	jz	L(return_value)
-
-	POP	(%esi)
-
-	lea	-16(%edi), %eax
-	RETURN
-
-	CFI_PUSH	(%esi)
-
-	.p2align 4
-L(find_zero_in_second_wchar):
-	and	$(1 << 5) - 1, %eax
-	jz	L(return_value)
-
-	POP	(%esi)
-
-	test	$15 << 4, %al
-	jnz	L(match_second_wchar)
-	lea	-16(%edi), %eax
-	RETURN
-
-	CFI_PUSH	(%esi)
-
-	.p2align 4
-L(find_zero_in_third_or_fourth_wchar):
-	test	$15, %ch
-	jz	L(find_zero_in_fourth_wchar)
-	and	$(1 << 9) - 1, %eax
-	jz	L(return_value)
-
-	POP	(%esi)
-
-	test	%ah, %ah
-	jnz	L(match_third_wchar)
-	test	$15 << 4, %al
-	jnz	L(match_second_wchar)
-	lea	-16(%edi), %eax
-	RETURN
-
-	CFI_PUSH	(%esi)
-
-	.p2align 4
-L(find_zero_in_fourth_wchar):
-
-	POP	(%esi)
-
-	test	%ah, %ah
-	jnz	L(match_third_or_fourth_wchar)
-	test	$15 << 4, %al
-	jnz	L(match_second_wchar)
-	lea	-16(%edi), %eax
-	RETURN
-
-	CFI_PUSH	(%esi)
-
-	.p2align 4
-L(match_second_wchar):
-	lea	-12(%edi), %eax
-	RETURN
-
-	.p2align 4
-L(match_third_or_fourth_wchar):
-	test	$15 << 4, %ah
-	jnz	L(match_fourth_wchar)
-	lea	-8(%edi), %eax
-	RETURN
-
-	.p2align 4
-L(match_third_wchar):
-	lea	-8(%edi), %eax
-	RETURN
-
-	.p2align 4
-L(match_fourth_wchar):
-	lea	-4(%edi), %eax
-	RETURN
-
-	.p2align 4
-L(return_null):
-	xor	%eax, %eax
-	RETURN
-
-	.p2align 4
-L(prolog_find_zero):
-	add	%ecx, %edi
-	mov     %edx, %ecx
-L(prolog_find_zero_1):
-	test	%cl, %cl
-	jz	L(prolog_find_zero_in_third_or_fourth_wchar)
-	test	$15, %cl
-	jz	L(prolog_find_zero_in_second_wchar)
-	and	$1, %eax
-	jz	L(return_null)
-
-	lea	-16(%edi), %eax
-	RETURN
-
-	.p2align 4
-L(prolog_find_zero_in_second_wchar):
-	and	$(1 << 5) - 1, %eax
-	jz	L(return_null)
-
-	test	$15 << 4, %al
-	jnz	L(match_second_wchar)
-	lea	-16(%edi), %eax
-	RETURN
-
-	.p2align 4
-L(prolog_find_zero_in_third_or_fourth_wchar):
-	test	$15, %ch
-	jz	L(prolog_find_zero_in_fourth_wchar)
-	and	$(1 << 9) - 1, %eax
-	jz	L(return_null)
-
-	test	%ah, %ah
-	jnz	L(match_third_wchar)
-	test	$15 << 4, %al
-	jnz	L(match_second_wchar)
-	lea	-16(%edi), %eax
-	RETURN
-
-	.p2align 4
-L(prolog_find_zero_in_fourth_wchar):
-	test	%ah, %ah
-	jnz	L(match_third_or_fourth_wchar)
-	test	$15 << 4, %al
-	jnz	L(match_second_wchar)
-	lea	-16(%edi), %eax
-	RETURN
-
-END (wcsrchr)
diff --git a/libc/arch-x86/string/sse4-memcmp-slm.S b/libc/arch-x86/string/sse4-memcmp-slm.S
old mode 100755
new mode 100644
diff --git a/libc/arch-x86/string/sse4-wmemcmp-slm.S b/libc/arch-x86/string/sse4-wmemcmp-slm.S
deleted file mode 100755
index 2bf92f5..0000000
--- a/libc/arch-x86/string/sse4-wmemcmp-slm.S
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
-Copyright (c) 2014, Intel Corporation
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
-    * Redistributions of source code must retain the above copyright notice,
-    * this list of conditions and the following disclaimer.
-
-    * Redistributions in binary form must reproduce the above copyright notice,
-    * this list of conditions and the following disclaimer in the documentation
-    * and/or other materials provided with the distribution.
-
-    * Neither the name of Intel Corporation nor the names of its contributors
-    * may be used to endorse or promote products derived from this software
-    * without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
-ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-
-#define USE_AS_WMEMCMP
-#define MEMCMP wmemcmp_sse4
-#include "sse4-memcmp-slm.S"
diff --git a/libc/arch-x86/string/ssse3-memcpy-atom.S b/libc/arch-x86/string/ssse3-memcpy-atom.S
deleted file mode 100644
index fe3082e..0000000
--- a/libc/arch-x86/string/ssse3-memcpy-atom.S
+++ /dev/null
@@ -1,3125 +0,0 @@
-/*
-Copyright (c) 2010, Intel Corporation
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
-    * Redistributions of source code must retain the above copyright notice,
-    * this list of conditions and the following disclaimer.
-
-    * Redistributions in binary form must reproduce the above copyright notice,
-    * this list of conditions and the following disclaimer in the documentation
-    * and/or other materials provided with the distribution.
-
-    * Neither the name of Intel Corporation nor the names of its contributors
-    * may be used to endorse or promote products derived from this software
-    * without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
-ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-
-#define FOR_ATOM
-#include "cache.h"
-
-#ifndef MEMCPY
-# define MEMCPY	memcpy_atom
-#endif
-
-#ifndef L
-# define L(label)	.L##label
-#endif
-
-#ifndef cfi_startproc
-# define cfi_startproc	.cfi_startproc
-#endif
-
-#ifndef cfi_endproc
-# define cfi_endproc	.cfi_endproc
-#endif
-
-#ifndef cfi_rel_offset
-# define cfi_rel_offset(reg, off)	.cfi_rel_offset reg, off
-#endif
-
-#ifndef cfi_restore
-# define cfi_restore(reg)	.cfi_restore reg
-#endif
-
-#ifndef cfi_adjust_cfa_offset
-# define cfi_adjust_cfa_offset(off)	.cfi_adjust_cfa_offset off
-#endif
-
-#ifndef ENTRY
-# define ENTRY(name)		\
-	.type name,  @function;		\
-	.globl name;		\
-	.p2align 4;		\
-name:		\
-	cfi_startproc
-#endif
-
-#ifndef END
-# define END(name)		\
-	cfi_endproc;		\
-	.size name, .-name
-#endif
-
-#define DEST		PARMS
-#define SRC		DEST+4
-#define LEN		SRC+4
-
-#define CFI_PUSH(REG)		\
-  cfi_adjust_cfa_offset (4);		\
-  cfi_rel_offset (REG, 0)
-
-#define CFI_POP(REG)		\
-  cfi_adjust_cfa_offset (-4);		\
-  cfi_restore (REG)
-
-#define PUSH(REG)	pushl REG; CFI_PUSH (REG)
-#define POP(REG)	popl REG; CFI_POP (REG)
-
-#if (defined SHARED || defined __PIC__)
-# define PARMS		8		/* Preserve EBX.  */
-# define ENTRANCE	PUSH (%ebx);
-# define RETURN_END	POP (%ebx); ret
-# define RETURN		RETURN_END; CFI_PUSH (%ebx)
-# define JMPTBL(I, B)	I - B
-
-# define SETUP_PIC_REG(x)	call	__x86.get_pc_thunk.x
-
-/* Load an entry in a jump table into EBX and branch to it.  TABLE is a
-	jump table with relative offsets.  INDEX is a register contains the
-	index into the jump table.   SCALE is the scale of INDEX. */
-
-# define BRANCH_TO_JMPTBL_ENTRY(TABLE, INDEX, SCALE)		\
-    /* We first load PC into EBX.  */		\
-	SETUP_PIC_REG(bx);		\
-    /* Get the address of the jump table.  */		\
-	addl	$(TABLE - .), %ebx;		\
-    /* Get the entry and convert the relative offset to the		\
-	absolute	address.  */		\
-	addl	(%ebx, INDEX, SCALE), %ebx;		\
-    /* We loaded the jump table.  Go.  */		\
-	jmp	*%ebx
-#else
-
-# define PARMS		4
-# define ENTRANCE
-# define RETURN_END	ret
-# define RETURN		RETURN_END
-# define JMPTBL(I, B)	I
-
-/* Branch to an entry in a jump table.  TABLE is a jump table with
-	absolute offsets.  INDEX is a register contains the index into the
-	jump table.  SCALE is the scale of INDEX. */
-
-# define BRANCH_TO_JMPTBL_ENTRY(TABLE, INDEX, SCALE)		\
-	jmp	*TABLE(, INDEX, SCALE)
-#endif
-
-	.section .text.ssse3,"ax",@progbits
-ENTRY (MEMCPY)
-	ENTRANCE
-	movl	LEN(%esp), %ecx
-	movl	SRC(%esp), %eax
-	movl	DEST(%esp), %edx
-
-#ifdef USE_AS_MEMMOVE
-	cmp	%eax, %edx
-	jb	L(copy_forward)
-	je	L(fwd_write_0bytes)
-	cmp	$32, %ecx
-	jae	L(memmove_bwd)
-	jmp	L(bk_write_less32bytes_2)
-
-	.p2align 4
-L(memmove_bwd):
-	add	%ecx, %eax
-	cmp	%eax, %edx
-	movl	SRC(%esp), %eax
-	jb	L(copy_backward)
-
-L(copy_forward):
-#endif
-	cmp	$48, %ecx
-	jae	L(48bytesormore)
-
-L(fwd_write_less32bytes):
-#ifndef USE_AS_MEMMOVE
-	cmp	%dl, %al
-	jb	L(bk_write)
-#endif
-	add	%ecx, %edx
-	add	%ecx, %eax
-	BRANCH_TO_JMPTBL_ENTRY (L(table_48bytes_fwd), %ecx, 4)
-#ifndef USE_AS_MEMMOVE
-	.p2align 4
-L(bk_write):
-	BRANCH_TO_JMPTBL_ENTRY (L(table_48_bytes_bwd), %ecx, 4)
-#endif
-
-	.p2align 4
-L(48bytesormore):
-#ifndef USE_AS_MEMMOVE
-	movlpd	(%eax), %xmm0
-	movlpd	8(%eax), %xmm1
-	movlpd	%xmm0, (%edx)
-	movlpd	%xmm1, 8(%edx)
-#else
-	movdqu	(%eax), %xmm0
-#endif
-	PUSH (%edi)
-	movl	%edx, %edi
-	and	$-16, %edx
-	add	$16, %edx
-	sub	%edx, %edi
-	add	%edi, %ecx
-	sub	%edi, %eax
-
-#ifdef SHARED_CACHE_SIZE_HALF
-	cmp	$SHARED_CACHE_SIZE_HALF, %ecx
-#else
-# if (defined SHARED || defined __PIC__)
-	SETUP_PIC_REG(bx)
-	add	$_GLOBAL_OFFSET_TABLE_, %ebx
-	cmp	__x86_shared_cache_size_half@GOTOFF(%ebx), %ecx
-# else
-	cmp	__x86_shared_cache_size_half, %ecx
-# endif
-#endif
-
-	mov	%eax, %edi
-	jae	L(large_page)
-	and	$0xf, %edi
-	jz	L(shl_0)
-	BRANCH_TO_JMPTBL_ENTRY (L(shl_table), %edi, 4)
-
-	.p2align 4
-L(shl_0):
-#ifdef USE_AS_MEMMOVE
-	movl	DEST+4(%esp), %edi
-	movdqu	%xmm0, (%edi)
-#endif
-	xor	%edi, %edi
-	cmp	$127, %ecx
-	ja	L(shl_0_gobble)
-	lea	-32(%ecx), %ecx
-
-	.p2align 4
-L(shl_0_loop):
-	movdqa	(%eax, %edi), %xmm0
-	movdqa	16(%eax, %edi), %xmm1
-	sub	$32, %ecx
-	movdqa	%xmm0, (%edx, %edi)
-	movdqa	%xmm1, 16(%edx, %edi)
-	lea	32(%edi), %edi
-	jb	L(shl_0_end)
-
-	movdqa	(%eax, %edi), %xmm0
-	movdqa	16(%eax, %edi), %xmm1
-	sub	$32, %ecx
-	movdqa	%xmm0, (%edx, %edi)
-	movdqa	%xmm1, 16(%edx, %edi)
-	lea	32(%edi), %edi
-	jb	L(shl_0_end)
-
-	movdqa	(%eax, %edi), %xmm0
-	movdqa	16(%eax, %edi), %xmm1
-	sub	$32, %ecx
-	movdqa	%xmm0, (%edx, %edi)
-	movdqa	%xmm1, 16(%edx, %edi)
-	lea	32(%edi), %edi
-	jb	L(shl_0_end)
-
-	movdqa	(%eax, %edi), %xmm0
-	movdqa	16(%eax, %edi), %xmm1
-	sub	$32, %ecx
-	movdqa	%xmm0, (%edx, %edi)
-	movdqa	%xmm1, 16(%edx, %edi)
-	lea	32(%edi), %edi
-
-L(shl_0_end):
-	lea	32(%ecx), %ecx
-	add	%ecx, %edi
-	add	%edi, %edx
-	add	%edi, %eax
-	POP (%edi)
-	BRANCH_TO_JMPTBL_ENTRY (L(table_48bytes_fwd_align), %ecx, 4)
-
-	CFI_PUSH (%edi)
-
-	.p2align 4
-L(shl_0_gobble):
-#ifdef DATA_CACHE_SIZE_HALF
-	cmp	$DATA_CACHE_SIZE_HALF, %ecx
-#else
-# if (defined SHARED || defined __PIC__)
-	SETUP_PIC_REG(bx)
-	add	$_GLOBAL_OFFSET_TABLE_, %ebx
-	cmp	__x86_data_cache_size_half@GOTOFF(%ebx), %ecx
-# else
-	cmp	__x86_data_cache_size_half, %ecx
-# endif
-#endif
-	POP	(%edi)
-	lea	-128(%ecx), %ecx
-	jae	L(shl_0_gobble_mem_loop)
-
-	.p2align 4
-L(shl_0_gobble_cache_loop):
-	movdqa	(%eax), %xmm0
-	movdqa	0x10(%eax), %xmm1
-	movdqa	0x20(%eax), %xmm2
-	movdqa	0x30(%eax), %xmm3
-	movdqa	0x40(%eax), %xmm4
-	movdqa	0x50(%eax), %xmm5
-	movdqa	0x60(%eax), %xmm6
-	movdqa	0x70(%eax), %xmm7
-	lea	0x80(%eax), %eax
-	sub	$128, %ecx
-	movdqa	%xmm0, (%edx)
-	movdqa	%xmm1, 0x10(%edx)
-	movdqa	%xmm2, 0x20(%edx)
-	movdqa	%xmm3, 0x30(%edx)
-	movdqa	%xmm4, 0x40(%edx)
-	movdqa	%xmm5, 0x50(%edx)
-	movdqa	%xmm6, 0x60(%edx)
-	movdqa	%xmm7, 0x70(%edx)
-	lea	0x80(%edx), %edx
-
-	jae	L(shl_0_gobble_cache_loop)
-	cmp	$-0x40, %ecx
-	lea	0x80(%ecx), %ecx
-	jl	L(shl_0_cache_less_64bytes)
-
-	movdqa	(%eax), %xmm0
-	sub	$0x40, %ecx
-	movdqa	0x10(%eax), %xmm1
-	movdqa	%xmm0, (%edx)
-	movdqa	%xmm1, 0x10(%edx)
-	movdqa	0x20(%eax), %xmm0
-	movdqa	0x30(%eax), %xmm1
-	add	$0x40, %eax
-	movdqa	%xmm0, 0x20(%edx)
-	movdqa	%xmm1, 0x30(%edx)
-	add	$0x40, %edx
-
-L(shl_0_cache_less_64bytes):
-	cmp	$0x20, %ecx
-	jb	L(shl_0_cache_less_32bytes)
-	movdqa	(%eax), %xmm0
-	sub	$0x20, %ecx
-	movdqa	0x10(%eax), %xmm1
-	add	$0x20, %eax
-	movdqa	%xmm0, (%edx)
-	movdqa	%xmm1, 0x10(%edx)
-	add	$0x20, %edx
-
-L(shl_0_cache_less_32bytes):
-	cmp	$0x10, %ecx
-	jb	L(shl_0_cache_less_16bytes)
-	sub	$0x10, %ecx
-	movdqa	(%eax), %xmm0
-	add	$0x10, %eax
-	movdqa	%xmm0, (%edx)
-	add	$0x10, %edx
-
-L(shl_0_cache_less_16bytes):
-	add	%ecx, %edx
-	add	%ecx, %eax
-	BRANCH_TO_JMPTBL_ENTRY (L(table_48bytes_fwd), %ecx, 4)
-
-	.p2align 4
-L(shl_0_gobble_mem_loop):
-	prefetcht0 0x1c0(%eax)
-	prefetcht0 0x280(%eax)
-	prefetcht0 0x1c0(%edx)
-
-	movdqa	(%eax), %xmm0
-	movdqa	0x10(%eax), %xmm1
-	movdqa	0x20(%eax), %xmm2
-	movdqa	0x30(%eax), %xmm3
-	movdqa	0x40(%eax), %xmm4
-	movdqa	0x50(%eax), %xmm5
-	movdqa	0x60(%eax), %xmm6
-	movdqa	0x70(%eax), %xmm7
-	lea	0x80(%eax), %eax
-	sub	$0x80, %ecx
-	movdqa	%xmm0, (%edx)
-	movdqa	%xmm1, 0x10(%edx)
-	movdqa	%xmm2, 0x20(%edx)
-	movdqa	%xmm3, 0x30(%edx)
-	movdqa	%xmm4, 0x40(%edx)
-	movdqa	%xmm5, 0x50(%edx)
-	movdqa	%xmm6, 0x60(%edx)
-	movdqa	%xmm7, 0x70(%edx)
-	lea	0x80(%edx), %edx
-
-	jae	L(shl_0_gobble_mem_loop)
-	cmp	$-0x40, %ecx
-	lea	0x80(%ecx), %ecx
-	jl	L(shl_0_mem_less_64bytes)
-
-	movdqa	(%eax), %xmm0
-	sub	$0x40, %ecx
-	movdqa	0x10(%eax), %xmm1
-
-	movdqa	%xmm0, (%edx)
-	movdqa	%xmm1, 0x10(%edx)
-
-	movdqa	0x20(%eax), %xmm0
-	movdqa	0x30(%eax), %xmm1
-	add	$0x40, %eax
-
-	movdqa	%xmm0, 0x20(%edx)
-	movdqa	%xmm1, 0x30(%edx)
-	add	$0x40, %edx
-
-L(shl_0_mem_less_64bytes):
-	cmp	$0x20, %ecx
-	jb	L(shl_0_mem_less_32bytes)
-	movdqa	(%eax), %xmm0
-	sub	$0x20, %ecx
-	movdqa	0x10(%eax), %xmm1
-	add	$0x20, %eax
-	movdqa	%xmm0, (%edx)
-	movdqa	%xmm1, 0x10(%edx)
-	add	$0x20, %edx
-
-L(shl_0_mem_less_32bytes):
-	cmp	$0x10, %ecx
-	jb	L(shl_0_mem_less_16bytes)
-	sub	$0x10, %ecx
-	movdqa	(%eax), %xmm0
-	add	$0x10, %eax
-	movdqa	%xmm0, (%edx)
-	add	$0x10, %edx
-
-L(shl_0_mem_less_16bytes):
-	add	%ecx, %edx
-	add	%ecx, %eax
-	BRANCH_TO_JMPTBL_ENTRY (L(table_48bytes_fwd_align), %ecx, 4)
-
-	.p2align 4
-L(shl_1):
-#ifndef USE_AS_MEMMOVE
-	movaps	-1(%eax), %xmm1
-#else
-	movl	DEST+4(%esp), %edi
-	movaps	-1(%eax), %xmm1
-	movdqu	%xmm0, (%edi)
-#endif
-#ifdef DATA_CACHE_SIZE_HALF
-	cmp	$DATA_CACHE_SIZE_HALF, %ecx
-#else
-# if (defined SHARED || defined __PIC__)
-	SETUP_PIC_REG(bx)
-	add	$_GLOBAL_OFFSET_TABLE_, %ebx
-	cmp	__x86_data_cache_size_half@GOTOFF(%ebx), %ecx
-# else
-	cmp	__x86_data_cache_size_half, %ecx
-# endif
-#endif
-	jb L(sh_1_no_prefetch)
-
-	lea	-64(%ecx), %ecx
-
-	.p2align 4
-L(Shl1LoopStart):
-	prefetcht0 0x1c0(%eax)
-	prefetcht0 0x1c0(%edx)
-	movaps	15(%eax), %xmm2
-	movaps	31(%eax), %xmm3
-	movaps	47(%eax), %xmm4
-	movaps	63(%eax), %xmm5
-	movaps	%xmm5, %xmm7
-	palignr	$1, %xmm4, %xmm5
-	palignr	$1, %xmm3, %xmm4
-	movaps	%xmm5, 48(%edx)
-	palignr	$1, %xmm2, %xmm3
-	lea	64(%eax), %eax
-	palignr	$1, %xmm1, %xmm2
-	movaps	%xmm4, 32(%edx)
-	movaps	%xmm3, 16(%edx)
-	movaps	%xmm7, %xmm1
-	movaps	%xmm2, (%edx)
-	lea	64(%edx), %edx
-	sub	$64, %ecx
-	ja	L(Shl1LoopStart)
-
-L(Shl1LoopLeave):
-	add	$32, %ecx
-	jle	L(shl_end_0)
-
-	movaps	15(%eax), %xmm2
-	movaps	31(%eax), %xmm3
-	palignr	$1, %xmm2, %xmm3
-	palignr	$1, %xmm1, %xmm2
-	movaps	%xmm2, (%edx)
-	movaps	%xmm3, 16(%edx)
-	lea	32(%edx, %ecx), %edx
-	lea	32(%eax, %ecx), %eax
-	POP (%edi)
-	BRANCH_TO_JMPTBL_ENTRY(L(table_48bytes_fwd), %ecx, 4)
-
-	CFI_PUSH (%edi)
-
-	.p2align 4
-L(sh_1_no_prefetch):
-	lea	-32(%ecx), %ecx
-	lea	-1(%eax), %eax
-	xor	%edi, %edi
-
-	.p2align 4
-L(sh_1_no_prefetch_loop):
-	movdqa	16(%eax, %edi), %xmm2
-	sub	$32, %ecx
-	movdqa	32(%eax, %edi), %xmm3
-	movdqa	%xmm3, %xmm4
-	palignr	$1, %xmm2, %xmm3
-	palignr	$1, %xmm1, %xmm2
-	lea	32(%edi), %edi
-	movdqa	%xmm2, -32(%edx, %edi)
-	movdqa	%xmm3, -16(%edx, %edi)
-	jb	L(sh_1_end_no_prefetch_loop)
-
-	movdqa	16(%eax, %edi), %xmm2
-	sub	$32, %ecx
-	movdqa	32(%eax, %edi), %xmm3
-	movdqa	%xmm3, %xmm1
-	palignr	$1, %xmm2, %xmm3
-	palignr	$1, %xmm4, %xmm2
-	lea	32(%edi), %edi
-	movdqa	%xmm2, -32(%edx, %edi)
-	movdqa	%xmm3, -16(%edx, %edi)
-	jae	L(sh_1_no_prefetch_loop)
-
-L(sh_1_end_no_prefetch_loop):
-	lea	32(%ecx), %ecx
-	add	%ecx, %edi
-	add	%edi, %edx
-	lea	1(%edi, %eax), %eax
-	POP	(%edi)
-	BRANCH_TO_JMPTBL_ENTRY(L(table_48bytes_fwd), %ecx, 4)
-
-	CFI_PUSH (%edi)
-
-	.p2align 4
-L(shl_2):
-#ifndef USE_AS_MEMMOVE
-	movaps	-2(%eax), %xmm1
-#else
-	movl	DEST+4(%esp), %edi
-	movaps	-2(%eax), %xmm1
-	movdqu	%xmm0, (%edi)
-#endif
-#ifdef DATA_CACHE_SIZE_HALF
-	cmp	$DATA_CACHE_SIZE_HALF, %ecx
-#else
-# if (defined SHARED || defined __PIC__)
-	SETUP_PIC_REG(bx)
-	add	$_GLOBAL_OFFSET_TABLE_, %ebx
-	cmp	__x86_data_cache_size_half@GOTOFF(%ebx), %ecx
-# else
-	cmp	__x86_data_cache_size_half, %ecx
-# endif
-#endif
-	jb L(sh_2_no_prefetch)
-
-	lea	-64(%ecx), %ecx
-
-	.p2align 4
-L(Shl2LoopStart):
-	prefetcht0 0x1c0(%eax)
-	prefetcht0 0x1c0(%edx)
-	movaps	14(%eax), %xmm2
-	movaps	30(%eax), %xmm3
-	movaps	46(%eax), %xmm4
-	movaps	62(%eax), %xmm5
-	movaps	%xmm5, %xmm7
-	palignr	$2, %xmm4, %xmm5
-	palignr	$2, %xmm3, %xmm4
-	movaps	%xmm5, 48(%edx)
-	palignr	$2, %xmm2, %xmm3
-	lea	64(%eax), %eax
-	palignr	$2, %xmm1, %xmm2
-	movaps	%xmm4, 32(%edx)
-	movaps	%xmm3, 16(%edx)
-	movaps	%xmm7, %xmm1
-	movaps	%xmm2, (%edx)
-	lea	64(%edx), %edx
-	sub	$64, %ecx
-	ja	L(Shl2LoopStart)
-
-L(Shl2LoopLeave):
-	add	$32, %ecx
-	jle	L(shl_end_0)
-
-	movaps	14(%eax), %xmm2
-	movaps	30(%eax), %xmm3
-	palignr	$2, %xmm2, %xmm3
-	palignr	$2, %xmm1, %xmm2
-	movaps	%xmm2, (%edx)
-	movaps	%xmm3, 16(%edx)
-	lea	32(%edx, %ecx), %edx
-	lea	32(%eax, %ecx), %eax
-	POP (%edi)
-	BRANCH_TO_JMPTBL_ENTRY(L(table_48bytes_fwd), %ecx, 4)
-
-	CFI_PUSH (%edi)
-
-	.p2align 4
-L(sh_2_no_prefetch):
-	lea	-32(%ecx), %ecx
-	lea	-2(%eax), %eax
-	xor	%edi, %edi
-
-	.p2align 4
-L(sh_2_no_prefetch_loop):
-	movdqa	16(%eax, %edi), %xmm2
-	sub	$32, %ecx
-	movdqa	32(%eax, %edi), %xmm3
-	movdqa	%xmm3, %xmm4
-	palignr	$2, %xmm2, %xmm3
-	palignr	$2, %xmm1, %xmm2
-	lea	32(%edi), %edi
-	movdqa	%xmm2, -32(%edx, %edi)
-	movdqa	%xmm3, -16(%edx, %edi)
-	jb	L(sh_2_end_no_prefetch_loop)
-
-	movdqa	16(%eax, %edi), %xmm2
-	sub	$32, %ecx
-	movdqa	32(%eax, %edi), %xmm3
-	movdqa	%xmm3, %xmm1
-	palignr	$2, %xmm2, %xmm3
-	palignr	$2, %xmm4, %xmm2
-	lea	32(%edi), %edi
-	movdqa	%xmm2, -32(%edx, %edi)
-	movdqa	%xmm3, -16(%edx, %edi)
-	jae	L(sh_2_no_prefetch_loop)
-
-L(sh_2_end_no_prefetch_loop):
-	lea	32(%ecx), %ecx
-	add	%ecx, %edi
-	add	%edi, %edx
-	lea	2(%edi, %eax), %eax
-	POP	(%edi)
-	BRANCH_TO_JMPTBL_ENTRY(L(table_48bytes_fwd), %ecx, 4)
-
-	CFI_PUSH (%edi)
-
-	.p2align 4
-L(shl_3):
-#ifndef USE_AS_MEMMOVE
-	movaps	-3(%eax), %xmm1
-#else
-	movl	DEST+4(%esp), %edi
-	movaps	-3(%eax), %xmm1
-	movdqu	%xmm0, (%edi)
-#endif
-#ifdef DATA_CACHE_SIZE_HALF
-	cmp	$DATA_CACHE_SIZE_HALF, %ecx
-#else
-# if (defined SHARED || defined __PIC__)
-	SETUP_PIC_REG(bx)
-	add	$_GLOBAL_OFFSET_TABLE_, %ebx
-	cmp	__x86_data_cache_size_half@GOTOFF(%ebx), %ecx
-# else
-	cmp	__x86_data_cache_size_half, %ecx
-# endif
-#endif
-	jb L(sh_3_no_prefetch)
-
-	lea	-64(%ecx), %ecx
-
-	.p2align 4
-L(Shl3LoopStart):
-	prefetcht0 0x1c0(%eax)
-	prefetcht0 0x1c0(%edx)
-	movaps	13(%eax), %xmm2
-	movaps	29(%eax), %xmm3
-	movaps	45(%eax), %xmm4
-	movaps	61(%eax), %xmm5
-	movaps	%xmm5, %xmm7
-	palignr	$3, %xmm4, %xmm5
-	palignr	$3, %xmm3, %xmm4
-	movaps	%xmm5, 48(%edx)
-	palignr	$3, %xmm2, %xmm3
-	lea	64(%eax), %eax
-	palignr	$3, %xmm1, %xmm2
-	movaps	%xmm4, 32(%edx)
-	movaps	%xmm3, 16(%edx)
-	movaps	%xmm7, %xmm1
-	movaps	%xmm2, (%edx)
-	lea	64(%edx), %edx
-	sub	$64, %ecx
-	ja	L(Shl3LoopStart)
-
-L(Shl3LoopLeave):
-	add	$32, %ecx
-	jle	L(shl_end_0)
-
-	movaps	13(%eax), %xmm2
-	movaps	29(%eax), %xmm3
-	palignr	$3, %xmm2, %xmm3
-	palignr	$3, %xmm1, %xmm2
-	movaps	%xmm2, (%edx)
-	movaps	%xmm3, 16(%edx)
-	lea	32(%edx, %ecx), %edx
-	lea	32(%eax, %ecx), %eax
-	POP (%edi)
-	BRANCH_TO_JMPTBL_ENTRY(L(table_48bytes_fwd), %ecx, 4)
-
-	CFI_PUSH (%edi)
-
-	.p2align 4
-L(sh_3_no_prefetch):
-	lea	-32(%ecx), %ecx
-	lea	-3(%eax), %eax
-	xor	%edi, %edi
-
-	.p2align 4
-L(sh_3_no_prefetch_loop):
-	movdqa	16(%eax, %edi), %xmm2
-	sub	$32, %ecx
-	movdqa	32(%eax, %edi), %xmm3
-	movdqa	%xmm3, %xmm4
-	palignr	$3, %xmm2, %xmm3
-	palignr	$3, %xmm1, %xmm2
-	lea	32(%edi), %edi
-	movdqa	%xmm2, -32(%edx, %edi)
-	movdqa	%xmm3, -16(%edx, %edi)
-
-	jb	L(sh_3_end_no_prefetch_loop)
-
-	movdqa	16(%eax, %edi), %xmm2
-	sub	$32, %ecx
-	movdqa	32(%eax, %edi), %xmm3
-	movdqa	%xmm3, %xmm1
-	palignr	$3, %xmm2, %xmm3
-	palignr	$3, %xmm4, %xmm2
-	lea	32(%edi), %edi
-	movdqa	%xmm2, -32(%edx, %edi)
-	movdqa	%xmm3, -16(%edx, %edi)
-
-	jae	L(sh_3_no_prefetch_loop)
-
-L(sh_3_end_no_prefetch_loop):
-	lea	32(%ecx), %ecx
-	add	%ecx, %edi
-	add	%edi, %edx
-	lea	3(%edi, %eax), %eax
-	POP	(%edi)
-	BRANCH_TO_JMPTBL_ENTRY(L(table_48bytes_fwd), %ecx, 4)
-
-	CFI_PUSH (%edi)
-
-	.p2align 4
-L(shl_4):
-#ifndef USE_AS_MEMMOVE
-	movaps	-4(%eax), %xmm1
-#else
-	movl	DEST+4(%esp), %edi
-	movaps	-4(%eax), %xmm1
-	movdqu	%xmm0, (%edi)
-#endif
-#ifdef DATA_CACHE_SIZE_HALF
-	cmp	$DATA_CACHE_SIZE_HALF, %ecx
-#else
-# if (defined SHARED || defined __PIC__)
-	SETUP_PIC_REG(bx)
-	add	$_GLOBAL_OFFSET_TABLE_, %ebx
-	cmp	__x86_data_cache_size_half@GOTOFF(%ebx), %ecx
-# else
-	cmp	__x86_data_cache_size_half, %ecx
-# endif
-#endif
-	jb L(sh_4_no_prefetch)
-
-	lea	-64(%ecx), %ecx
-
-	.p2align 4
-L(Shl4LoopStart):
-	prefetcht0 0x1c0(%eax)
-	prefetcht0 0x1c0(%edx)
-	movaps	12(%eax), %xmm2
-	movaps	28(%eax), %xmm3
-	movaps	44(%eax), %xmm4
-	movaps	60(%eax), %xmm5
-	movaps	%xmm5, %xmm7
-	palignr	$4, %xmm4, %xmm5
-	palignr	$4, %xmm3, %xmm4
-	movaps	%xmm5, 48(%edx)
-	palignr	$4, %xmm2, %xmm3
-	lea	64(%eax), %eax
-	palignr	$4, %xmm1, %xmm2
-	movaps	%xmm4, 32(%edx)
-	movaps	%xmm3, 16(%edx)
-	movaps	%xmm7, %xmm1
-	movaps	%xmm2, (%edx)
-	lea	64(%edx), %edx
-	sub	$64, %ecx
-	ja	L(Shl4LoopStart)
-
-L(Shl4LoopLeave):
-	add	$32, %ecx
-	jle	L(shl_end_0)
-
-	movaps	12(%eax), %xmm2
-	movaps	28(%eax), %xmm3
-	palignr	$4, %xmm2, %xmm3
-	palignr	$4, %xmm1, %xmm2
-	movaps	%xmm2, (%edx)
-	movaps	%xmm3, 16(%edx)
-	lea	32(%edx, %ecx), %edx
-	lea	32(%eax, %ecx), %eax
-	POP (%edi)
-	BRANCH_TO_JMPTBL_ENTRY(L(table_48bytes_fwd), %ecx, 4)
-
-	CFI_PUSH (%edi)
-
-	.p2align 4
-L(sh_4_no_prefetch):
-	lea	-32(%ecx), %ecx
-	lea	-4(%eax), %eax
-	xor	%edi, %edi
-
-	.p2align 4
-L(sh_4_no_prefetch_loop):
-	movdqa	16(%eax, %edi), %xmm2
-	sub	$32, %ecx
-	movdqa	32(%eax, %edi), %xmm3
-	movdqa	%xmm3, %xmm4
-	palignr	$4, %xmm2, %xmm3
-	palignr	$4, %xmm1, %xmm2
-	lea	32(%edi), %edi
-	movdqa	%xmm2, -32(%edx, %edi)
-	movdqa	%xmm3, -16(%edx, %edi)
-
-	jb	L(sh_4_end_no_prefetch_loop)
-
-	movdqa	16(%eax, %edi), %xmm2
-	sub	$32, %ecx
-	movdqa	32(%eax, %edi), %xmm3
-	movdqa	%xmm3, %xmm1
-	palignr	$4, %xmm2, %xmm3
-	palignr	$4, %xmm4, %xmm2
-	lea	32(%edi), %edi
-	movdqa	%xmm2, -32(%edx, %edi)
-	movdqa	%xmm3, -16(%edx, %edi)
-
-	jae	L(sh_4_no_prefetch_loop)
-
-L(sh_4_end_no_prefetch_loop):
-	lea	32(%ecx), %ecx
-	add	%ecx, %edi
-	add	%edi, %edx
-	lea	4(%edi, %eax), %eax
-	POP	(%edi)
-	BRANCH_TO_JMPTBL_ENTRY(L(table_48bytes_fwd), %ecx, 4)
-
-	CFI_PUSH (%edi)
-
-	.p2align 4
-L(shl_5):
-#ifndef USE_AS_MEMMOVE
-	movaps	-5(%eax), %xmm1
-#else
-	movl	DEST+4(%esp), %edi
-	movaps	-5(%eax), %xmm1
-	movdqu	%xmm0, (%edi)
-#endif
-#ifdef DATA_CACHE_SIZE_HALF
-	cmp	$DATA_CACHE_SIZE_HALF, %ecx
-#else
-# if (defined SHARED || defined __PIC__)
-	SETUP_PIC_REG(bx)
-	add	$_GLOBAL_OFFSET_TABLE_, %ebx
-	cmp	__x86_data_cache_size_half@GOTOFF(%ebx), %ecx
-# else
-	cmp	__x86_data_cache_size_half, %ecx
-# endif
-#endif
-	jb L(sh_5_no_prefetch)
-
-	lea	-64(%ecx), %ecx
-
-	.p2align 4
-L(Shl5LoopStart):
-	prefetcht0 0x1c0(%eax)
-	prefetcht0 0x1c0(%edx)
-	movaps	11(%eax), %xmm2
-	movaps	27(%eax), %xmm3
-	movaps	43(%eax), %xmm4
-	movaps	59(%eax), %xmm5
-	movaps	%xmm5, %xmm7
-	palignr	$5, %xmm4, %xmm5
-	palignr	$5, %xmm3, %xmm4
-	movaps	%xmm5, 48(%edx)
-	palignr	$5, %xmm2, %xmm3
-	lea	64(%eax), %eax
-	palignr	$5, %xmm1, %xmm2
-	movaps	%xmm4, 32(%edx)
-	movaps	%xmm3, 16(%edx)
-	movaps	%xmm7, %xmm1
-	movaps	%xmm2, (%edx)
-	lea	64(%edx), %edx
-	sub	$64, %ecx
-	ja	L(Shl5LoopStart)
-
-L(Shl5LoopLeave):
-	add	$32, %ecx
-	jle	L(shl_end_0)
-
-	movaps	11(%eax), %xmm2
-	movaps	27(%eax), %xmm3
-	palignr	$5, %xmm2, %xmm3
-	palignr	$5, %xmm1, %xmm2
-	movaps	%xmm2, (%edx)
-	movaps	%xmm3, 16(%edx)
-	lea	32(%edx, %ecx), %edx
-	lea	32(%eax, %ecx), %eax
-	POP (%edi)
-	BRANCH_TO_JMPTBL_ENTRY(L(table_48bytes_fwd), %ecx, 4)
-
-	CFI_PUSH (%edi)
-
-	.p2align 4
-L(sh_5_no_prefetch):
-	lea	-32(%ecx), %ecx
-	lea	-5(%eax), %eax
-	xor	%edi, %edi
-
-	.p2align 4
-L(sh_5_no_prefetch_loop):
-	movdqa	16(%eax, %edi), %xmm2
-	sub	$32, %ecx
-	movdqa	32(%eax, %edi), %xmm3
-	movdqa	%xmm3, %xmm4
-	palignr	$5, %xmm2, %xmm3
-	palignr	$5, %xmm1, %xmm2
-	lea	32(%edi), %edi
-	movdqa	%xmm2, -32(%edx, %edi)
-	movdqa	%xmm3, -16(%edx, %edi)
-
-	jb	L(sh_5_end_no_prefetch_loop)
-
-	movdqa	16(%eax, %edi), %xmm2
-	sub	$32, %ecx
-	movdqa	32(%eax, %edi), %xmm3
-	movdqa	%xmm3, %xmm1
-	palignr	$5, %xmm2, %xmm3
-	palignr	$5, %xmm4, %xmm2
-	lea	32(%edi), %edi
-	movdqa	%xmm2, -32(%edx, %edi)
-	movdqa	%xmm3, -16(%edx, %edi)
-
-	jae	L(sh_5_no_prefetch_loop)
-
-L(sh_5_end_no_prefetch_loop):
-	lea	32(%ecx), %ecx
-	add	%ecx, %edi
-	add	%edi, %edx
-	lea	5(%edi, %eax), %eax
-	POP	(%edi)
-	BRANCH_TO_JMPTBL_ENTRY(L(table_48bytes_fwd), %ecx, 4)
-
-	CFI_PUSH (%edi)
-
-	.p2align 4
-L(shl_6):
-#ifndef USE_AS_MEMMOVE
-	movaps	-6(%eax), %xmm1
-#else
-	movl	DEST+4(%esp), %edi
-	movaps	-6(%eax), %xmm1
-	movdqu	%xmm0, (%edi)
-#endif
-#ifdef DATA_CACHE_SIZE_HALF
-	cmp	$DATA_CACHE_SIZE_HALF, %ecx
-#else
-# if (defined SHARED || defined __PIC__)
-	SETUP_PIC_REG(bx)
-	add	$_GLOBAL_OFFSET_TABLE_, %ebx
-	cmp	__x86_data_cache_size_half@GOTOFF(%ebx), %ecx
-# else
-	cmp	__x86_data_cache_size_half, %ecx
-# endif
-#endif
-	jb L(sh_6_no_prefetch)
-
-	lea	-64(%ecx), %ecx
-
-	.p2align 4
-L(Shl6LoopStart):
-	prefetcht0 0x1c0(%eax)
-	prefetcht0 0x1c0(%edx)
-	movaps	10(%eax), %xmm2
-	movaps	26(%eax), %xmm3
-	movaps	42(%eax), %xmm4
-	movaps	58(%eax), %xmm5
-	movaps	%xmm5, %xmm7
-	palignr	$6, %xmm4, %xmm5
-	palignr	$6, %xmm3, %xmm4
-	movaps	%xmm5, 48(%edx)
-	palignr	$6, %xmm2, %xmm3
-	lea	64(%eax), %eax
-	palignr	$6, %xmm1, %xmm2
-	movaps	%xmm4, 32(%edx)
-	movaps	%xmm3, 16(%edx)
-	movaps	%xmm7, %xmm1
-	movaps	%xmm2, (%edx)
-	lea	64(%edx), %edx
-	sub	$64, %ecx
-	ja	L(Shl6LoopStart)
-
-L(Shl6LoopLeave):
-	add	$32, %ecx
-	jle	L(shl_end_0)
-
-	movaps	10(%eax), %xmm2
-	movaps	26(%eax), %xmm3
-	palignr	$6, %xmm2, %xmm3
-	palignr	$6, %xmm1, %xmm2
-	movaps	%xmm2, (%edx)
-	movaps	%xmm3, 16(%edx)
-	lea	32(%edx, %ecx), %edx
-	lea	32(%eax, %ecx), %eax
-	POP (%edi)
-	BRANCH_TO_JMPTBL_ENTRY(L(table_48bytes_fwd), %ecx, 4)
-
-	CFI_PUSH (%edi)
-
-	.p2align 4
-L(sh_6_no_prefetch):
-	lea	-32(%ecx), %ecx
-	lea	-6(%eax), %eax
-	xor	%edi, %edi
-
-	.p2align 4
-L(sh_6_no_prefetch_loop):
-	movdqa	16(%eax, %edi), %xmm2
-	sub	$32, %ecx
-	movdqa	32(%eax, %edi), %xmm3
-	movdqa	%xmm3, %xmm4
-	palignr	$6, %xmm2, %xmm3
-	palignr	$6, %xmm1, %xmm2
-	lea	32(%edi), %edi
-	movdqa	%xmm2, -32(%edx, %edi)
-	movdqa	%xmm3, -16(%edx, %edi)
-
-	jb	L(sh_6_end_no_prefetch_loop)
-
-	movdqa	16(%eax, %edi), %xmm2
-	sub	$32, %ecx
-	movdqa	32(%eax, %edi), %xmm3
-	movdqa	%xmm3, %xmm1
-	palignr	$6, %xmm2, %xmm3
-	palignr	$6, %xmm4, %xmm2
-	lea	32(%edi), %edi
-	movdqa	%xmm2, -32(%edx, %edi)
-	movdqa	%xmm3, -16(%edx, %edi)
-
-	jae	L(sh_6_no_prefetch_loop)
-
-L(sh_6_end_no_prefetch_loop):
-	lea	32(%ecx), %ecx
-	add	%ecx, %edi
-	add	%edi, %edx
-	lea	6(%edi, %eax), %eax
-	POP	(%edi)
-	BRANCH_TO_JMPTBL_ENTRY(L(table_48bytes_fwd), %ecx, 4)
-
-	CFI_PUSH (%edi)
-
-	.p2align 4
-L(shl_7):
-#ifndef USE_AS_MEMMOVE
-	movaps	-7(%eax), %xmm1
-#else
-	movl	DEST+4(%esp), %edi
-	movaps	-7(%eax), %xmm1
-	movdqu	%xmm0, (%edi)
-#endif
-#ifdef DATA_CACHE_SIZE_HALF
-	cmp	$DATA_CACHE_SIZE_HALF, %ecx
-#else
-# if (defined SHARED || defined __PIC__)
-	SETUP_PIC_REG(bx)
-	add	$_GLOBAL_OFFSET_TABLE_, %ebx
-	cmp	__x86_data_cache_size_half@GOTOFF(%ebx), %ecx
-# else
-	cmp	__x86_data_cache_size_half, %ecx
-# endif
-#endif
-	jb L(sh_7_no_prefetch)
-
-	lea	-64(%ecx), %ecx
-
-	.p2align 4
-L(Shl7LoopStart):
-	prefetcht0 0x1c0(%eax)
-	prefetcht0 0x1c0(%edx)
-	movaps	9(%eax), %xmm2
-	movaps	25(%eax), %xmm3
-	movaps	41(%eax), %xmm4
-	movaps	57(%eax), %xmm5
-	movaps	%xmm5, %xmm7
-	palignr	$7, %xmm4, %xmm5
-	palignr	$7, %xmm3, %xmm4
-	movaps	%xmm5, 48(%edx)
-	palignr	$7, %xmm2, %xmm3
-	lea	64(%eax), %eax
-	palignr	$7, %xmm1, %xmm2
-	movaps	%xmm4, 32(%edx)
-	movaps	%xmm3, 16(%edx)
-	movaps	%xmm7, %xmm1
-	movaps	%xmm2, (%edx)
-	lea	64(%edx), %edx
-	sub	$64, %ecx
-	ja	L(Shl7LoopStart)
-
-L(Shl7LoopLeave):
-	add	$32, %ecx
-	jle	L(shl_end_0)
-
-	movaps	9(%eax), %xmm2
-	movaps	25(%eax), %xmm3
-	palignr	$7, %xmm2, %xmm3
-	palignr	$7, %xmm1, %xmm2
-	movaps	%xmm2, (%edx)
-	movaps	%xmm3, 16(%edx)
-	lea	32(%edx, %ecx), %edx
-	lea	32(%eax, %ecx), %eax
-	POP (%edi)
-	BRANCH_TO_JMPTBL_ENTRY(L(table_48bytes_fwd), %ecx, 4)
-
-	CFI_PUSH (%edi)
-
-	.p2align 4
-L(sh_7_no_prefetch):
-	lea	-32(%ecx), %ecx
-	lea	-7(%eax), %eax
-	xor	%edi, %edi
-
-	.p2align 4
-L(sh_7_no_prefetch_loop):
-	movdqa	16(%eax, %edi), %xmm2
-	sub	$32, %ecx
-	movdqa	32(%eax, %edi), %xmm3
-	movdqa	%xmm3, %xmm4
-	palignr	$7, %xmm2, %xmm3
-	palignr	$7, %xmm1, %xmm2
-	lea	32(%edi), %edi
-	movdqa	%xmm2, -32(%edx, %edi)
-	movdqa	%xmm3, -16(%edx, %edi)
-	jb	L(sh_7_end_no_prefetch_loop)
-
-	movdqa	16(%eax, %edi), %xmm2
-	sub	$32, %ecx
-	movdqa	32(%eax, %edi), %xmm3
-	movdqa	%xmm3, %xmm1
-	palignr	$7, %xmm2, %xmm3
-	palignr	$7, %xmm4, %xmm2
-	lea	32(%edi), %edi
-	movdqa	%xmm2, -32(%edx, %edi)
-	movdqa	%xmm3, -16(%edx, %edi)
-	jae	L(sh_7_no_prefetch_loop)
-
-L(sh_7_end_no_prefetch_loop):
-	lea	32(%ecx), %ecx
-	add	%ecx, %edi
-	add	%edi, %edx
-	lea	7(%edi, %eax), %eax
-	POP	(%edi)
-	BRANCH_TO_JMPTBL_ENTRY(L(table_48bytes_fwd), %ecx, 4)
-
-	CFI_PUSH (%edi)
-
-	.p2align 4
-L(shl_8):
-#ifndef USE_AS_MEMMOVE
-	movaps	-8(%eax), %xmm1
-#else
-	movl	DEST+4(%esp), %edi
-	movaps	-8(%eax), %xmm1
-	movdqu	%xmm0, (%edi)
-#endif
-#ifdef DATA_CACHE_SIZE_HALF
-	cmp	$DATA_CACHE_SIZE_HALF, %ecx
-#else
-# if (defined SHARED || defined __PIC__)
-	SETUP_PIC_REG(bx)
-	add	$_GLOBAL_OFFSET_TABLE_, %ebx
-	cmp	__x86_data_cache_size_half@GOTOFF(%ebx), %ecx
-# else
-	cmp	__x86_data_cache_size_half, %ecx
-# endif
-#endif
-	jb L(sh_8_no_prefetch)
-
-	lea	-64(%ecx), %ecx
-
-	.p2align 4
-L(Shl8LoopStart):
-	prefetcht0 0x1c0(%eax)
-	prefetcht0 0x1c0(%edx)
-	movaps	8(%eax), %xmm2
-	movaps	24(%eax), %xmm3
-	movaps	40(%eax), %xmm4
-	movaps	56(%eax), %xmm5
-	movaps	%xmm5, %xmm7
-	palignr	$8, %xmm4, %xmm5
-	palignr	$8, %xmm3, %xmm4
-	movaps	%xmm5, 48(%edx)
-	palignr	$8, %xmm2, %xmm3
-	lea	64(%eax), %eax
-	palignr	$8, %xmm1, %xmm2
-	movaps	%xmm4, 32(%edx)
-	movaps	%xmm3, 16(%edx)
-	movaps	%xmm7, %xmm1
-	movaps	%xmm2, (%edx)
-	lea	64(%edx), %edx
-	sub	$64, %ecx
-	ja	L(Shl8LoopStart)
-
-L(LoopLeave8):
-	add	$32, %ecx
-	jle	L(shl_end_0)
-
-	movaps	8(%eax), %xmm2
-	movaps	24(%eax), %xmm3
-	palignr	$8, %xmm2, %xmm3
-	palignr	$8, %xmm1, %xmm2
-	movaps	%xmm2, (%edx)
-	movaps	%xmm3, 16(%edx)
-	lea	32(%edx, %ecx), %edx
-	lea	32(%eax, %ecx), %eax
-	POP (%edi)
-	BRANCH_TO_JMPTBL_ENTRY(L(table_48bytes_fwd), %ecx, 4)
-
-	CFI_PUSH (%edi)
-
-	.p2align 4
-L(sh_8_no_prefetch):
-	lea	-32(%ecx), %ecx
-	lea	-8(%eax), %eax
-	xor	%edi, %edi
-
-	.p2align 4
-L(sh_8_no_prefetch_loop):
-	movdqa	16(%eax, %edi), %xmm2
-	sub	$32, %ecx
-	movdqa	32(%eax, %edi), %xmm3
-	movdqa	%xmm3, %xmm4
-	palignr	$8, %xmm2, %xmm3
-	palignr	$8, %xmm1, %xmm2
-	lea	32(%edi), %edi
-	movdqa	%xmm2, -32(%edx, %edi)
-	movdqa	%xmm3, -16(%edx, %edi)
-	jb	L(sh_8_end_no_prefetch_loop)
-
-	movdqa	16(%eax, %edi), %xmm2
-	sub	$32, %ecx
-	movdqa	32(%eax, %edi), %xmm3
-	movdqa	%xmm3, %xmm1
-	palignr	$8, %xmm2, %xmm3
-	palignr	$8, %xmm4, %xmm2
-	lea	32(%edi), %edi
-	movdqa	%xmm2, -32(%edx, %edi)
-	movdqa	%xmm3, -16(%edx, %edi)
-	jae	L(sh_8_no_prefetch_loop)
-
-L(sh_8_end_no_prefetch_loop):
-	lea	32(%ecx), %ecx
-	add	%ecx, %edi
-	add	%edi, %edx
-	lea	8(%edi, %eax), %eax
-	POP	(%edi)
-	BRANCH_TO_JMPTBL_ENTRY(L(table_48bytes_fwd), %ecx, 4)
-
-	CFI_PUSH (%edi)
-
-	.p2align 4
-L(shl_9):
-#ifndef USE_AS_MEMMOVE
-	movaps	-9(%eax), %xmm1
-#else
-	movl	DEST+4(%esp), %edi
-	movaps	-9(%eax), %xmm1
-	movdqu	%xmm0, (%edi)
-#endif
-#ifdef DATA_CACHE_SIZE_HALF
-	cmp	$DATA_CACHE_SIZE_HALF, %ecx
-#else
-# if (defined SHARED || defined __PIC__)
-	SETUP_PIC_REG(bx)
-	add	$_GLOBAL_OFFSET_TABLE_, %ebx
-	cmp	__x86_data_cache_size_half@GOTOFF(%ebx), %ecx
-# else
-	cmp	__x86_data_cache_size_half, %ecx
-# endif
-#endif
-	jb L(sh_9_no_prefetch)
-
-	lea	-64(%ecx), %ecx
-
-	.p2align 4
-L(Shl9LoopStart):
-	prefetcht0 0x1c0(%eax)
-	prefetcht0 0x1c0(%edx)
-	movaps	7(%eax), %xmm2
-	movaps	23(%eax), %xmm3
-	movaps	39(%eax), %xmm4
-	movaps	55(%eax), %xmm5
-	movaps	%xmm5, %xmm7
-	palignr	$9, %xmm4, %xmm5
-	palignr	$9, %xmm3, %xmm4
-	movaps	%xmm5, 48(%edx)
-	palignr	$9, %xmm2, %xmm3
-	lea	64(%eax), %eax
-	palignr	$9, %xmm1, %xmm2
-	movaps	%xmm4, 32(%edx)
-	movaps	%xmm3, 16(%edx)
-	movaps	%xmm7, %xmm1
-	movaps	%xmm2, (%edx)
-	lea	64(%edx), %edx
-	sub	$64, %ecx
-	ja	L(Shl9LoopStart)
-
-L(Shl9LoopLeave):
-	add	$32, %ecx
-	jle	L(shl_end_0)
-
-	movaps	7(%eax), %xmm2
-	movaps	23(%eax), %xmm3
-	palignr	$9, %xmm2, %xmm3
-	palignr	$9, %xmm1, %xmm2
-
-	movaps	%xmm2, (%edx)
-	movaps	%xmm3, 16(%edx)
-	lea	32(%edx, %ecx), %edx
-	lea	32(%eax, %ecx), %eax
-	POP (%edi)
-	BRANCH_TO_JMPTBL_ENTRY(L(table_48bytes_fwd), %ecx, 4)
-
-	CFI_PUSH (%edi)
-
-	.p2align 4
-L(sh_9_no_prefetch):
-	lea	-32(%ecx), %ecx
-	lea	-9(%eax), %eax
-	xor	%edi, %edi
-
-	.p2align 4
-L(sh_9_no_prefetch_loop):
-	movdqa	16(%eax, %edi), %xmm2
-	sub	$32, %ecx
-	movdqa	32(%eax, %edi), %xmm3
-	movdqa	%xmm3, %xmm4
-	palignr	$9, %xmm2, %xmm3
-	palignr	$9, %xmm1, %xmm2
-	lea	32(%edi), %edi
-	movdqa	%xmm2, -32(%edx, %edi)
-	movdqa	%xmm3, -16(%edx, %edi)
-	jb	L(sh_9_end_no_prefetch_loop)
-
-	movdqa	16(%eax, %edi), %xmm2
-	sub	$32, %ecx
-	movdqa	32(%eax, %edi), %xmm3
-	movdqa	%xmm3, %xmm1
-	palignr	$9, %xmm2, %xmm3
-	palignr	$9, %xmm4, %xmm2
-	lea	32(%edi), %edi
-	movdqa	%xmm2, -32(%edx, %edi)
-	movdqa	%xmm3, -16(%edx, %edi)
-	jae	L(sh_9_no_prefetch_loop)
-
-L(sh_9_end_no_prefetch_loop):
-	lea	32(%ecx), %ecx
-	add	%ecx, %edi
-	add	%edi, %edx
-	lea	9(%edi, %eax), %eax
-	POP	(%edi)
-	BRANCH_TO_JMPTBL_ENTRY(L(table_48bytes_fwd), %ecx, 4)
-
-	CFI_PUSH (%edi)
-
-	.p2align 4
-L(shl_10):
-#ifndef USE_AS_MEMMOVE
-	movaps	-10(%eax), %xmm1
-#else
-	movl	DEST+4(%esp), %edi
-	movaps	-10(%eax), %xmm1
-	movdqu	%xmm0, (%edi)
-#endif
-#ifdef DATA_CACHE_SIZE_HALF
-	cmp	$DATA_CACHE_SIZE_HALF, %ecx
-#else
-# if (defined SHARED || defined __PIC__)
-	SETUP_PIC_REG(bx)
-	add	$_GLOBAL_OFFSET_TABLE_, %ebx
-	cmp	__x86_data_cache_size_half@GOTOFF(%ebx), %ecx
-# else
-	cmp	__x86_data_cache_size_half, %ecx
-# endif
-#endif
-	jb L(sh_10_no_prefetch)
-
-	lea	-64(%ecx), %ecx
-
-	.p2align 4
-L(Shl10LoopStart):
-	prefetcht0 0x1c0(%eax)
-	prefetcht0 0x1c0(%edx)
-	movaps	6(%eax), %xmm2
-	movaps	22(%eax), %xmm3
-	movaps	38(%eax), %xmm4
-	movaps	54(%eax), %xmm5
-	movaps	%xmm5, %xmm7
-	palignr	$10, %xmm4, %xmm5
-	palignr	$10, %xmm3, %xmm4
-	movaps	%xmm5, 48(%edx)
-	palignr	$10, %xmm2, %xmm3
-	lea	64(%eax), %eax
-	palignr	$10, %xmm1, %xmm2
-	movaps	%xmm4, 32(%edx)
-	movaps	%xmm3, 16(%edx)
-	movaps	%xmm7, %xmm1
-	movaps	%xmm2, (%edx)
-	lea	64(%edx), %edx
-	sub	$64, %ecx
-	ja	L(Shl10LoopStart)
-
-L(Shl10LoopLeave):
-	add	$32, %ecx
-	jle	L(shl_end_0)
-
-	movaps	6(%eax), %xmm2
-	movaps	22(%eax), %xmm3
-	palignr	$10, %xmm2, %xmm3
-	palignr	$10, %xmm1, %xmm2
-
-	movaps	%xmm2, (%edx)
-	movaps	%xmm3, 16(%edx)
-	lea	32(%edx, %ecx), %edx
-	lea	32(%eax, %ecx), %eax
-	POP (%edi)
-	BRANCH_TO_JMPTBL_ENTRY(L(table_48bytes_fwd), %ecx, 4)
-
-	CFI_PUSH (%edi)
-
-	.p2align 4
-L(sh_10_no_prefetch):
-	lea	-32(%ecx), %ecx
-	lea	-10(%eax), %eax
-	xor	%edi, %edi
-
-	.p2align 4
-L(sh_10_no_prefetch_loop):
-	movdqa	16(%eax, %edi), %xmm2
-	sub	$32, %ecx
-	movdqa	32(%eax, %edi), %xmm3
-	movdqa	%xmm3, %xmm4
-	palignr	$10, %xmm2, %xmm3
-	palignr	$10, %xmm1, %xmm2
-	lea	32(%edi), %edi
-	movdqa	%xmm2, -32(%edx, %edi)
-	movdqa	%xmm3, -16(%edx, %edi)
-	jb	L(sh_10_end_no_prefetch_loop)
-
-	movdqa	16(%eax, %edi), %xmm2
-	sub	$32, %ecx
-	movdqa	32(%eax, %edi), %xmm3
-	movdqa	%xmm3, %xmm1
-	palignr	$10, %xmm2, %xmm3
-	palignr	$10, %xmm4, %xmm2
-	lea	32(%edi), %edi
-	movdqa	%xmm2, -32(%edx, %edi)
-	movdqa	%xmm3, -16(%edx, %edi)
-	jae	L(sh_10_no_prefetch_loop)
-
-L(sh_10_end_no_prefetch_loop):
-	lea	32(%ecx), %ecx
-	add	%ecx, %edi
-	add	%edi, %edx
-	lea	10(%edi, %eax), %eax
-	POP	(%edi)
-	BRANCH_TO_JMPTBL_ENTRY(L(table_48bytes_fwd), %ecx, 4)
-
-	CFI_PUSH (%edi)
-
-	.p2align 4
-L(shl_11):
-#ifndef USE_AS_MEMMOVE
-	movaps	-11(%eax), %xmm1
-#else
-	movl	DEST+4(%esp), %edi
-	movaps	-11(%eax), %xmm1
-	movdqu	%xmm0, (%edi)
-#endif
-#ifdef DATA_CACHE_SIZE_HALF
-	cmp	$DATA_CACHE_SIZE_HALF, %ecx
-#else
-# if (defined SHARED || defined __PIC__)
-	SETUP_PIC_REG(bx)
-	add	$_GLOBAL_OFFSET_TABLE_, %ebx
-	cmp	__x86_data_cache_size_half@GOTOFF(%ebx), %ecx
-# else
-	cmp	__x86_data_cache_size_half, %ecx
-# endif
-#endif
-	jb L(sh_11_no_prefetch)
-
-	lea	-64(%ecx), %ecx
-
-	.p2align 4
-L(Shl11LoopStart):
-	prefetcht0 0x1c0(%eax)
-	prefetcht0 0x1c0(%edx)
-	movaps	5(%eax), %xmm2
-	movaps	21(%eax), %xmm3
-	movaps	37(%eax), %xmm4
-	movaps	53(%eax), %xmm5
-	movaps	%xmm5, %xmm7
-	palignr	$11, %xmm4, %xmm5
-	palignr	$11, %xmm3, %xmm4
-	movaps	%xmm5, 48(%edx)
-	palignr	$11, %xmm2, %xmm3
-	lea	64(%eax), %eax
-	palignr	$11, %xmm1, %xmm2
-	movaps	%xmm4, 32(%edx)
-	movaps	%xmm3, 16(%edx)
-	movaps	%xmm7, %xmm1
-	movaps	%xmm2, (%edx)
-	lea	64(%edx), %edx
-	sub	$64, %ecx
-	ja	L(Shl11LoopStart)
-
-L(Shl11LoopLeave):
-	add	$32, %ecx
-	jle	L(shl_end_0)
-
-	movaps	5(%eax), %xmm2
-	movaps	21(%eax), %xmm3
-	palignr	$11, %xmm2, %xmm3
-	palignr	$11, %xmm1, %xmm2
-
-	movaps	%xmm2, (%edx)
-	movaps	%xmm3, 16(%edx)
-	lea	32(%edx, %ecx), %edx
-	lea	32(%eax, %ecx), %eax
-	POP (%edi)
-	BRANCH_TO_JMPTBL_ENTRY(L(table_48bytes_fwd), %ecx, 4)
-
-	CFI_PUSH (%edi)
-
-	.p2align 4
-L(sh_11_no_prefetch):
-	lea	-32(%ecx), %ecx
-	lea	-11(%eax), %eax
-	xor	%edi, %edi
-
-	.p2align 4
-L(sh_11_no_prefetch_loop):
-	movdqa	16(%eax, %edi), %xmm2
-	sub	$32, %ecx
-	movdqa	32(%eax, %edi), %xmm3
-	movdqa	%xmm3, %xmm4
-	palignr	$11, %xmm2, %xmm3
-	palignr	$11, %xmm1, %xmm2
-	lea	32(%edi), %edi
-	movdqa	%xmm2, -32(%edx, %edi)
-	movdqa	%xmm3, -16(%edx, %edi)
-	jb	L(sh_11_end_no_prefetch_loop)
-
-	movdqa	16(%eax, %edi), %xmm2
-	sub	$32, %ecx
-	movdqa	32(%eax, %edi), %xmm3
-	movdqa	%xmm3, %xmm1
-	palignr	$11, %xmm2, %xmm3
-	palignr	$11, %xmm4, %xmm2
-	lea	32(%edi), %edi
-	movdqa	%xmm2, -32(%edx, %edi)
-	movdqa	%xmm3, -16(%edx, %edi)
-	jae	L(sh_11_no_prefetch_loop)
-
-L(sh_11_end_no_prefetch_loop):
-	lea	32(%ecx), %ecx
-	add	%ecx, %edi
-	add	%edi, %edx
-	lea	11(%edi, %eax), %eax
-	POP	(%edi)
-	BRANCH_TO_JMPTBL_ENTRY(L(table_48bytes_fwd), %ecx, 4)
-
-	CFI_PUSH (%edi)
-
-	.p2align 4
-L(shl_12):
-#ifndef USE_AS_MEMMOVE
-	movaps	-12(%eax), %xmm1
-#else
-	movl	DEST+4(%esp), %edi
-	movaps	-12(%eax), %xmm1
-	movdqu	%xmm0, (%edi)
-#endif
-#ifdef DATA_CACHE_SIZE_HALF
-	cmp	$DATA_CACHE_SIZE_HALF, %ecx
-#else
-# if (defined SHARED || defined __PIC__)
-	SETUP_PIC_REG(bx)
-	add	$_GLOBAL_OFFSET_TABLE_, %ebx
-	cmp	__x86_data_cache_size_half@GOTOFF(%ebx), %ecx
-# else
-	cmp	__x86_data_cache_size_half, %ecx
-# endif
-#endif
-	jb L(sh_12_no_prefetch)
-
-	lea	-64(%ecx), %ecx
-
-	.p2align 4
-L(Shl12LoopStart):
-	prefetcht0 0x1c0(%eax)
-	prefetcht0 0x1c0(%edx)
-	movaps	4(%eax), %xmm2
-	movaps	20(%eax), %xmm3
-	movaps	36(%eax), %xmm4
-	movaps	52(%eax), %xmm5
-	movaps	%xmm5, %xmm7
-	palignr	$12, %xmm4, %xmm5
-	palignr	$12, %xmm3, %xmm4
-	movaps	%xmm5, 48(%edx)
-	palignr	$12, %xmm2, %xmm3
-	lea	64(%eax), %eax
-	palignr	$12, %xmm1, %xmm2
-	movaps	%xmm4, 32(%edx)
-	movaps	%xmm3, 16(%edx)
-	movaps	%xmm7, %xmm1
-	movaps	%xmm2, (%edx)
-	lea	64(%edx), %edx
-	sub	$64, %ecx
-	ja	L(Shl12LoopStart)
-
-L(Shl12LoopLeave):
-	add	$32, %ecx
-	jle	L(shl_end_0)
-
-	movaps	4(%eax), %xmm2
-	movaps	20(%eax), %xmm3
-	palignr	$12, %xmm2, %xmm3
-	palignr	$12, %xmm1, %xmm2
-
-	movaps	%xmm2, (%edx)
-	movaps	%xmm3, 16(%edx)
-	lea	32(%edx, %ecx), %edx
-	lea	32(%eax, %ecx), %eax
-	POP (%edi)
-	BRANCH_TO_JMPTBL_ENTRY(L(table_48bytes_fwd), %ecx, 4)
-
-	CFI_PUSH (%edi)
-
-	.p2align 4
-L(sh_12_no_prefetch):
-	lea	-32(%ecx), %ecx
-	lea	-12(%eax), %eax
-	xor	%edi, %edi
-
-	.p2align 4
-L(sh_12_no_prefetch_loop):
-	movdqa	16(%eax, %edi), %xmm2
-	sub	$32, %ecx
-	movdqa	32(%eax, %edi), %xmm3
-	movdqa	%xmm3, %xmm4
-	palignr	$12, %xmm2, %xmm3
-	palignr	$12, %xmm1, %xmm2
-	lea	32(%edi), %edi
-	movdqa	%xmm2, -32(%edx, %edi)
-	movdqa	%xmm3, -16(%edx, %edi)
-	jb	L(sh_12_end_no_prefetch_loop)
-
-	movdqa	16(%eax, %edi), %xmm2
-	sub	$32, %ecx
-	movdqa	32(%eax, %edi), %xmm3
-	movdqa	%xmm3, %xmm1
-	palignr	$12, %xmm2, %xmm3
-	palignr	$12, %xmm4, %xmm2
-	lea	32(%edi), %edi
-	movdqa	%xmm2, -32(%edx, %edi)
-	movdqa	%xmm3, -16(%edx, %edi)
-	jae	L(sh_12_no_prefetch_loop)
-
-L(sh_12_end_no_prefetch_loop):
-	lea	32(%ecx), %ecx
-	add	%ecx, %edi
-	add	%edi, %edx
-	lea	12(%edi, %eax), %eax
-	POP	(%edi)
-	BRANCH_TO_JMPTBL_ENTRY(L(table_48bytes_fwd), %ecx, 4)
-
-	CFI_PUSH (%edi)
-
-	.p2align 4
-L(shl_13):
-#ifndef USE_AS_MEMMOVE
-	movaps	-13(%eax), %xmm1
-#else
-	movl	DEST+4(%esp), %edi
-	movaps	-13(%eax), %xmm1
-	movdqu	%xmm0, (%edi)
-#endif
-#ifdef DATA_CACHE_SIZE_HALF
-	cmp	$DATA_CACHE_SIZE_HALF, %ecx
-#else
-# if (defined SHARED || defined __PIC__)
-	SETUP_PIC_REG(bx)
-	add	$_GLOBAL_OFFSET_TABLE_, %ebx
-	cmp	__x86_data_cache_size_half@GOTOFF(%ebx), %ecx
-# else
-	cmp	__x86_data_cache_size_half, %ecx
-# endif
-#endif
-	jb L(sh_13_no_prefetch)
-
-	lea	-64(%ecx), %ecx
-
-	.p2align 4
-L(Shl13LoopStart):
-	prefetcht0 0x1c0(%eax)
-	prefetcht0 0x1c0(%edx)
-	movaps	3(%eax), %xmm2
-	movaps	19(%eax), %xmm3
-	movaps	35(%eax), %xmm4
-	movaps	51(%eax), %xmm5
-	movaps	%xmm5, %xmm7
-	palignr	$13, %xmm4, %xmm5
-	palignr	$13, %xmm3, %xmm4
-	movaps	%xmm5, 48(%edx)
-	palignr	$13, %xmm2, %xmm3
-	lea	64(%eax), %eax
-	palignr	$13, %xmm1, %xmm2
-	movaps	%xmm4, 32(%edx)
-	movaps	%xmm3, 16(%edx)
-	movaps	%xmm7, %xmm1
-	movaps	%xmm2, (%edx)
-	lea	64(%edx), %edx
-	sub	$64, %ecx
-	ja	L(Shl13LoopStart)
-
-L(Shl13LoopLeave):
-	add	$32, %ecx
-	jle	L(shl_end_0)
-
-	movaps	3(%eax), %xmm2
-	movaps	19(%eax), %xmm3
-	palignr	$13, %xmm2, %xmm3
-	palignr	$13, %xmm1, %xmm2
-
-	movaps	%xmm2, (%edx)
-	movaps	%xmm3, 16(%edx)
-	lea	32(%edx, %ecx), %edx
-	lea	32(%eax, %ecx), %eax
-	POP (%edi)
-	BRANCH_TO_JMPTBL_ENTRY(L(table_48bytes_fwd), %ecx, 4)
-
-	CFI_PUSH (%edi)
-
-	.p2align 4
-L(sh_13_no_prefetch):
-	lea	-32(%ecx), %ecx
-	lea	-13(%eax), %eax
-	xor	%edi, %edi
-
-	.p2align 4
-L(sh_13_no_prefetch_loop):
-	movdqa	16(%eax, %edi), %xmm2
-	sub	$32, %ecx
-	movdqa	32(%eax, %edi), %xmm3
-	movdqa	%xmm3, %xmm4
-	palignr	$13, %xmm2, %xmm3
-	palignr	$13, %xmm1, %xmm2
-	lea	32(%edi), %edi
-	movdqa	%xmm2, -32(%edx, %edi)
-	movdqa	%xmm3, -16(%edx, %edi)
-	jb	L(sh_13_end_no_prefetch_loop)
-
-	movdqa	16(%eax, %edi), %xmm2
-	sub	$32, %ecx
-	movdqa	32(%eax, %edi), %xmm3
-	movdqa	%xmm3, %xmm1
-	palignr	$13, %xmm2, %xmm3
-	palignr	$13, %xmm4, %xmm2
-	lea	32(%edi), %edi
-	movdqa	%xmm2, -32(%edx, %edi)
-	movdqa	%xmm3, -16(%edx, %edi)
-	jae	L(sh_13_no_prefetch_loop)
-
-L(sh_13_end_no_prefetch_loop):
-	lea	32(%ecx), %ecx
-	add	%ecx, %edi
-	add	%edi, %edx
-	lea	13(%edi, %eax), %eax
-	POP	(%edi)
-	BRANCH_TO_JMPTBL_ENTRY(L(table_48bytes_fwd), %ecx, 4)
-
-	CFI_PUSH (%edi)
-
-	.p2align 4
-L(shl_14):
-#ifndef USE_AS_MEMMOVE
-	movaps	-14(%eax), %xmm1
-#else
-	movl	DEST+4(%esp), %edi
-	movaps	-14(%eax), %xmm1
-	movdqu	%xmm0, (%edi)
-#endif
-#ifdef DATA_CACHE_SIZE_HALF
-	cmp	$DATA_CACHE_SIZE_HALF, %ecx
-#else
-# if (defined SHARED || defined __PIC__)
-	SETUP_PIC_REG(bx)
-	add	$_GLOBAL_OFFSET_TABLE_, %ebx
-	cmp	__x86_data_cache_size_half@GOTOFF(%ebx), %ecx
-# else
-	cmp	__x86_data_cache_size_half, %ecx
-# endif
-#endif
-	jb L(sh_14_no_prefetch)
-
-	lea	-64(%ecx), %ecx
-
-	.p2align 4
-L(Shl14LoopStart):
-	prefetcht0 0x1c0(%eax)
-	prefetcht0 0x1c0(%edx)
-	movaps	2(%eax), %xmm2
-	movaps	18(%eax), %xmm3
-	movaps	34(%eax), %xmm4
-	movaps	50(%eax), %xmm5
-	movaps	%xmm5, %xmm7
-	palignr	$14, %xmm4, %xmm5
-	palignr	$14, %xmm3, %xmm4
-	movaps	%xmm5, 48(%edx)
-	palignr	$14, %xmm2, %xmm3
-	lea	64(%eax), %eax
-	palignr	$14, %xmm1, %xmm2
-	movaps	%xmm4, 32(%edx)
-	movaps	%xmm3, 16(%edx)
-	movaps	%xmm7, %xmm1
-	movaps	%xmm2, (%edx)
-	lea	64(%edx), %edx
-	sub	$64, %ecx
-	ja	L(Shl14LoopStart)
-
-L(Shl14LoopLeave):
-	add	$32, %ecx
-	jle	L(shl_end_0)
-
-	movaps	2(%eax), %xmm2
-	movaps	18(%eax), %xmm3
-	palignr	$14, %xmm2, %xmm3
-	palignr	$14, %xmm1, %xmm2
-
-	movaps	%xmm2, (%edx)
-	movaps	%xmm3, 16(%edx)
-	lea	32(%edx, %ecx), %edx
-	lea	32(%eax, %ecx), %eax
-	POP (%edi)
-	BRANCH_TO_JMPTBL_ENTRY(L(table_48bytes_fwd), %ecx, 4)
-
-	CFI_PUSH (%edi)
-
-	.p2align 4
-L(sh_14_no_prefetch):
-	lea	-32(%ecx), %ecx
-	lea	-14(%eax), %eax
-	xor	%edi, %edi
-
-	.p2align 4
-L(sh_14_no_prefetch_loop):
-	movdqa	16(%eax, %edi), %xmm2
-	sub	$32, %ecx
-	movdqa	32(%eax, %edi), %xmm3
-	movdqa	%xmm3, %xmm4
-	palignr	$14, %xmm2, %xmm3
-	palignr	$14, %xmm1, %xmm2
-	lea	32(%edi), %edi
-	movdqa	%xmm2, -32(%edx, %edi)
-	movdqa	%xmm3, -16(%edx, %edi)
-	jb	L(sh_14_end_no_prefetch_loop)
-
-	movdqa	16(%eax, %edi), %xmm2
-	sub	$32, %ecx
-	movdqa	32(%eax, %edi), %xmm3
-	movdqa	%xmm3, %xmm1
-	palignr	$14, %xmm2, %xmm3
-	palignr	$14, %xmm4, %xmm2
-	lea	32(%edi), %edi
-	movdqa	%xmm2, -32(%edx, %edi)
-	movdqa	%xmm3, -16(%edx, %edi)
-	jae	L(sh_14_no_prefetch_loop)
-
-L(sh_14_end_no_prefetch_loop):
-	lea	32(%ecx), %ecx
-	add	%ecx, %edi
-	add	%edi, %edx
-	lea	14(%edi, %eax), %eax
-	POP	(%edi)
-	BRANCH_TO_JMPTBL_ENTRY(L(table_48bytes_fwd), %ecx, 4)
-
-	CFI_PUSH (%edi)
-
-	.p2align 4
-L(shl_15):
-#ifndef USE_AS_MEMMOVE
-	movaps	-15(%eax), %xmm1
-#else
-	movl	DEST+4(%esp), %edi
-	movaps	-15(%eax), %xmm1
-	movdqu	%xmm0, (%edi)
-#endif
-#ifdef DATA_CACHE_SIZE_HALF
-	cmp	$DATA_CACHE_SIZE_HALF, %ecx
-#else
-# if (defined SHARED || defined __PIC__)
-	SETUP_PIC_REG(bx)
-	add	$_GLOBAL_OFFSET_TABLE_, %ebx
-	cmp	__x86_data_cache_size_half@GOTOFF(%ebx), %ecx
-# else
-	cmp	__x86_data_cache_size_half, %ecx
-# endif
-#endif
-	jb L(sh_15_no_prefetch)
-
-	lea	-64(%ecx), %ecx
-
-	.p2align 4
-L(Shl15LoopStart):
-	prefetcht0 0x1c0(%eax)
-	prefetcht0 0x1c0(%edx)
-	movaps	1(%eax), %xmm2
-	movaps	17(%eax), %xmm3
-	movaps	33(%eax), %xmm4
-	movaps	49(%eax), %xmm5
-	movaps	%xmm5, %xmm7
-	palignr	$15, %xmm4, %xmm5
-	palignr	$15, %xmm3, %xmm4
-	movaps	%xmm5, 48(%edx)
-	palignr	$15, %xmm2, %xmm3
-	lea	64(%eax), %eax
-	palignr	$15, %xmm1, %xmm2
-	movaps	%xmm4, 32(%edx)
-	movaps	%xmm3, 16(%edx)
-	movaps	%xmm7, %xmm1
-	movaps	%xmm2, (%edx)
-	lea	64(%edx), %edx
-	sub	$64, %ecx
-	ja	L(Shl15LoopStart)
-
-L(Shl15LoopLeave):
-	add	$32, %ecx
-	jle	L(shl_end_0)
-
-	movaps	1(%eax), %xmm2
-	movaps	17(%eax), %xmm3
-	palignr	$15, %xmm2, %xmm3
-	palignr	$15, %xmm1, %xmm2
-
-	movaps	%xmm2, (%edx)
-	movaps	%xmm3, 16(%edx)
-	lea	32(%edx, %ecx), %edx
-	lea	32(%eax, %ecx), %eax
-	POP (%edi)
-	BRANCH_TO_JMPTBL_ENTRY(L(table_48bytes_fwd), %ecx, 4)
-
-	CFI_PUSH (%edi)
-
-	.p2align 4
-L(sh_15_no_prefetch):
-	lea	-32(%ecx), %ecx
-	lea	-15(%eax), %eax
-	xor	%edi, %edi
-
-	.p2align 4
-L(sh_15_no_prefetch_loop):
-	movdqa	16(%eax, %edi), %xmm2
-	sub	$32, %ecx
-	movdqa	32(%eax, %edi), %xmm3
-	movdqa	%xmm3, %xmm4
-	palignr	$15, %xmm2, %xmm3
-	palignr	$15, %xmm1, %xmm2
-	lea	32(%edi), %edi
-	movdqa	%xmm2, -32(%edx, %edi)
-	movdqa	%xmm3, -16(%edx, %edi)
-	jb	L(sh_15_end_no_prefetch_loop)
-
-	movdqa	16(%eax, %edi), %xmm2
-	sub	$32, %ecx
-	movdqa	32(%eax, %edi), %xmm3
-	movdqa	%xmm3, %xmm1
-	palignr	$15, %xmm2, %xmm3
-	palignr	$15, %xmm4, %xmm2
-	lea	32(%edi), %edi
-	movdqa	%xmm2, -32(%edx, %edi)
-	movdqa	%xmm3, -16(%edx, %edi)
-	jae	L(sh_15_no_prefetch_loop)
-
-L(sh_15_end_no_prefetch_loop):
-	lea	32(%ecx), %ecx
-	add	%ecx, %edi
-	add	%edi, %edx
-	lea	15(%edi, %eax), %eax
-	POP	(%edi)
-	BRANCH_TO_JMPTBL_ENTRY(L(table_48bytes_fwd), %ecx, 4)
-
-	CFI_PUSH (%edi)
-
-	.p2align 4
-L(shl_end_0):
-	lea	32(%ecx), %ecx
-	lea	(%edx, %ecx), %edx
-	lea	(%eax, %ecx), %eax
-	POP	(%edi)
-	BRANCH_TO_JMPTBL_ENTRY(L(table_48bytes_fwd), %ecx, 4)
-
-	.p2align 4
-L(fwd_write_44bytes):
-	movq	-44(%eax), %xmm0
-	movq	%xmm0, -44(%edx)
-L(fwd_write_36bytes):
-	movq	-36(%eax), %xmm0
-	movq	%xmm0, -36(%edx)
-L(fwd_write_28bytes):
-	movq	-28(%eax), %xmm0
-	movq	%xmm0, -28(%edx)
-L(fwd_write_20bytes):
-	movq	-20(%eax), %xmm0
-	movq	%xmm0, -20(%edx)
-L(fwd_write_12bytes):
-	movq	-12(%eax), %xmm0
-	movq	%xmm0, -12(%edx)
-L(fwd_write_4bytes):
-	movl	-4(%eax), %ecx
-	movl	%ecx, -4(%edx)
-#ifdef USE_AS_MEMPCPY
-	movl	%edx, %eax
-#else
-	movl	DEST(%esp), %eax
-#endif
-	RETURN
-
-	.p2align 4
-L(fwd_write_40bytes):
-	movq	-40(%eax), %xmm0
-	movq	%xmm0, -40(%edx)
-L(fwd_write_32bytes):
-	movq	-32(%eax), %xmm0
-	movq	%xmm0, -32(%edx)
-L(fwd_write_24bytes):
-	movq	-24(%eax), %xmm0
-	movq	%xmm0, -24(%edx)
-L(fwd_write_16bytes):
-	movq	-16(%eax), %xmm0
-	movq	%xmm0, -16(%edx)
-L(fwd_write_8bytes):
-	movq	-8(%eax), %xmm0
-	movq	%xmm0, -8(%edx)
-L(fwd_write_0bytes):
-#ifdef USE_AS_MEMPCPY
-	movl	%edx, %eax
-#else
-	movl	DEST(%esp), %eax
-#endif
-	RETURN
-
-	.p2align 4
-L(fwd_write_5bytes):
-	movl	-5(%eax), %ecx
-	movl	-4(%eax), %eax
-	movl	%ecx, -5(%edx)
-	movl	%eax, -4(%edx)
-#ifdef USE_AS_MEMPCPY
-	movl	%edx, %eax
-#else
-	movl	DEST(%esp), %eax
-#endif
-	RETURN
-
-	.p2align 4
-L(fwd_write_45bytes):
-	movq	-45(%eax), %xmm0
-	movq	%xmm0, -45(%edx)
-L(fwd_write_37bytes):
-	movq	-37(%eax), %xmm0
-	movq	%xmm0, -37(%edx)
-L(fwd_write_29bytes):
-	movq	-29(%eax), %xmm0
-	movq	%xmm0, -29(%edx)
-L(fwd_write_21bytes):
-	movq	-21(%eax), %xmm0
-	movq	%xmm0, -21(%edx)
-L(fwd_write_13bytes):
-	movq	-13(%eax), %xmm0
-	movq	%xmm0, -13(%edx)
-	movl	-5(%eax), %ecx
-	movl	%ecx, -5(%edx)
-	movzbl	-1(%eax), %ecx
-	movb	%cl, -1(%edx)
-#ifdef USE_AS_MEMPCPY
-	movl	%edx, %eax
-#else
-	movl	DEST(%esp), %eax
-#endif
-	RETURN
-
-	.p2align 4
-L(fwd_write_41bytes):
-	movq	-41(%eax), %xmm0
-	movq	%xmm0, -41(%edx)
-L(fwd_write_33bytes):
-	movq	-33(%eax), %xmm0
-	movq	%xmm0, -33(%edx)
-L(fwd_write_25bytes):
-	movq	-25(%eax), %xmm0
-	movq	%xmm0, -25(%edx)
-L(fwd_write_17bytes):
-	movq	-17(%eax), %xmm0
-	movq	%xmm0, -17(%edx)
-L(fwd_write_9bytes):
-	movq	-9(%eax), %xmm0
-	movq	%xmm0, -9(%edx)
-L(fwd_write_1bytes):
-	movzbl	-1(%eax), %ecx
-	movb	%cl, -1(%edx)
-#ifdef USE_AS_MEMPCPY
-	movl	%edx, %eax
-#else
-	movl	DEST(%esp), %eax
-#endif
-	RETURN
-
-	.p2align 4
-L(fwd_write_46bytes):
-	movq	-46(%eax), %xmm0
-	movq	%xmm0, -46(%edx)
-L(fwd_write_38bytes):
-	movq	-38(%eax), %xmm0
-	movq	%xmm0, -38(%edx)
-L(fwd_write_30bytes):
-	movq	-30(%eax), %xmm0
-	movq	%xmm0, -30(%edx)
-L(fwd_write_22bytes):
-	movq	-22(%eax), %xmm0
-	movq	%xmm0, -22(%edx)
-L(fwd_write_14bytes):
-	movq	-14(%eax), %xmm0
-	movq	%xmm0, -14(%edx)
-L(fwd_write_6bytes):
-	movl	-6(%eax), %ecx
-	movl	%ecx, -6(%edx)
-	movzwl	-2(%eax), %ecx
-	movw	%cx, -2(%edx)
-#ifdef USE_AS_MEMPCPY
-	movl	%edx, %eax
-#else
-	movl	DEST(%esp), %eax
-#endif
-	RETURN
-
-	.p2align 4
-L(fwd_write_42bytes):
-	movq	-42(%eax), %xmm0
-	movq	%xmm0, -42(%edx)
-L(fwd_write_34bytes):
-	movq	-34(%eax), %xmm0
-	movq	%xmm0, -34(%edx)
-L(fwd_write_26bytes):
-	movq	-26(%eax), %xmm0
-	movq	%xmm0, -26(%edx)
-L(fwd_write_18bytes):
-	movq	-18(%eax), %xmm0
-	movq	%xmm0, -18(%edx)
-L(fwd_write_10bytes):
-	movq	-10(%eax), %xmm0
-	movq	%xmm0, -10(%edx)
-L(fwd_write_2bytes):
-	movzwl	-2(%eax), %ecx
-	movw	%cx, -2(%edx)
-#ifdef USE_AS_MEMPCPY
-	movl	%edx, %eax
-#else
-	movl	DEST(%esp), %eax
-#endif
-	RETURN
-
-	.p2align 4
-L(fwd_write_47bytes):
-	movq	-47(%eax), %xmm0
-	movq	%xmm0, -47(%edx)
-L(fwd_write_39bytes):
-	movq	-39(%eax), %xmm0
-	movq	%xmm0, -39(%edx)
-L(fwd_write_31bytes):
-	movq	-31(%eax), %xmm0
-	movq	%xmm0, -31(%edx)
-L(fwd_write_23bytes):
-	movq	-23(%eax), %xmm0
-	movq	%xmm0, -23(%edx)
-L(fwd_write_15bytes):
-	movq	-15(%eax), %xmm0
-	movq	%xmm0, -15(%edx)
-L(fwd_write_7bytes):
-	movl	-7(%eax), %ecx
-	movl	%ecx, -7(%edx)
-	movzwl	-3(%eax), %ecx
-	movzbl	-1(%eax), %eax
-	movw	%cx, -3(%edx)
-	movb	%al, -1(%edx)
-#ifdef USE_AS_MEMPCPY
-	movl	%edx, %eax
-#else
-	movl	DEST(%esp), %eax
-#endif
-	RETURN
-
-	.p2align 4
-L(fwd_write_43bytes):
-	movq	-43(%eax), %xmm0
-	movq	%xmm0, -43(%edx)
-L(fwd_write_35bytes):
-	movq	-35(%eax), %xmm0
-	movq	%xmm0, -35(%edx)
-L(fwd_write_27bytes):
-	movq	-27(%eax), %xmm0
-	movq	%xmm0, -27(%edx)
-L(fwd_write_19bytes):
-	movq	-19(%eax), %xmm0
-	movq	%xmm0, -19(%edx)
-L(fwd_write_11bytes):
-	movq	-11(%eax), %xmm0
-	movq	%xmm0, -11(%edx)
-L(fwd_write_3bytes):
-	movzwl	-3(%eax), %ecx
-	movzbl	-1(%eax), %eax
-	movw	%cx, -3(%edx)
-	movb	%al, -1(%edx)
-#ifdef USE_AS_MEMPCPY
-	movl	%edx, %eax
-#else
-	movl	DEST(%esp), %eax
-#endif
-	RETURN
-
-	.p2align 4
-L(fwd_write_40bytes_align):
-	movdqa	-40(%eax), %xmm0
-	movdqa	%xmm0, -40(%edx)
-L(fwd_write_24bytes_align):
-	movdqa	-24(%eax), %xmm0
-	movdqa	%xmm0, -24(%edx)
-L(fwd_write_8bytes_align):
-	movq	-8(%eax), %xmm0
-	movq	%xmm0, -8(%edx)
-L(fwd_write_0bytes_align):
-#ifdef USE_AS_MEMPCPY
-	movl	%edx, %eax
-#else
-	movl	DEST(%esp), %eax
-#endif
-	RETURN
-
-	.p2align 4
-L(fwd_write_32bytes_align):
-	movdqa	-32(%eax), %xmm0
-	movdqa	%xmm0, -32(%edx)
-L(fwd_write_16bytes_align):
-	movdqa	-16(%eax), %xmm0
-	movdqa	%xmm0, -16(%edx)
-#ifdef USE_AS_MEMPCPY
-	movl	%edx, %eax
-#else
-	movl	DEST(%esp), %eax
-#endif
-	RETURN
-
-	.p2align 4
-L(fwd_write_5bytes_align):
-	movl	-5(%eax), %ecx
-	movl	-4(%eax), %eax
-	movl	%ecx, -5(%edx)
-	movl	%eax, -4(%edx)
-#ifdef USE_AS_MEMPCPY
-	movl	%edx, %eax
-#else
-	movl	DEST(%esp), %eax
-#endif
-	RETURN
-
-	.p2align 4
-L(fwd_write_45bytes_align):
-	movdqa	-45(%eax), %xmm0
-	movdqa	%xmm0, -45(%edx)
-L(fwd_write_29bytes_align):
-	movdqa	-29(%eax), %xmm0
-	movdqa	%xmm0, -29(%edx)
-L(fwd_write_13bytes_align):
-	movq	-13(%eax), %xmm0
-	movq	%xmm0, -13(%edx)
-	movl	-5(%eax), %ecx
-	movl	%ecx, -5(%edx)
-	movzbl	-1(%eax), %ecx
-	movb	%cl, -1(%edx)
-#ifdef USE_AS_MEMPCPY
-	movl	%edx, %eax
-#else
-	movl	DEST(%esp), %eax
-#endif
-	RETURN
-
-	.p2align 4
-L(fwd_write_37bytes_align):
-	movdqa	-37(%eax), %xmm0
-	movdqa	%xmm0, -37(%edx)
-L(fwd_write_21bytes_align):
-	movdqa	-21(%eax), %xmm0
-	movdqa	%xmm0, -21(%edx)
-	movl	-5(%eax), %ecx
-	movl	%ecx, -5(%edx)
-	movzbl	-1(%eax), %ecx
-	movb	%cl, -1(%edx)
-#ifdef USE_AS_MEMPCPY
-	movl	%edx, %eax
-#else
-	movl	DEST(%esp), %eax
-#endif
-	RETURN
-
-	.p2align 4
-L(fwd_write_41bytes_align):
-	movdqa	-41(%eax), %xmm0
-	movdqa	%xmm0, -41(%edx)
-L(fwd_write_25bytes_align):
-	movdqa	-25(%eax), %xmm0
-	movdqa	%xmm0, -25(%edx)
-L(fwd_write_9bytes_align):
-	movq	-9(%eax), %xmm0
-	movq	%xmm0, -9(%edx)
-L(fwd_write_1bytes_align):
-	movzbl	-1(%eax), %ecx
-	movb	%cl, -1(%edx)
-#ifdef USE_AS_MEMPCPY
-	movl	%edx, %eax
-#else
-	movl	DEST(%esp), %eax
-#endif
-	RETURN
-
-	.p2align 4
-L(fwd_write_33bytes_align):
-	movdqa	-33(%eax), %xmm0
-	movdqa	%xmm0, -33(%edx)
-L(fwd_write_17bytes_align):
-	movdqa	-17(%eax), %xmm0
-	movdqa	%xmm0, -17(%edx)
-	movzbl	-1(%eax), %ecx
-	movb	%cl, -1(%edx)
-#ifdef USE_AS_MEMPCPY
-	movl	%edx, %eax
-#else
-	movl	DEST(%esp), %eax
-#endif
-	RETURN
-
-	.p2align 4
-L(fwd_write_46bytes_align):
-	movdqa	-46(%eax), %xmm0
-	movdqa	%xmm0, -46(%edx)
-L(fwd_write_30bytes_align):
-	movdqa	-30(%eax), %xmm0
-	movdqa	%xmm0, -30(%edx)
-L(fwd_write_14bytes_align):
-	movq	-14(%eax), %xmm0
-	movq	%xmm0, -14(%edx)
-L(fwd_write_6bytes_align):
-	movl	-6(%eax), %ecx
-	movl	%ecx, -6(%edx)
-	movzwl	-2(%eax), %ecx
-	movw	%cx, -2(%edx)
-#ifdef USE_AS_MEMPCPY
-	movl	%edx, %eax
-#else
-	movl	DEST(%esp), %eax
-#endif
-	RETURN
-
-	.p2align 4
-L(fwd_write_38bytes_align):
-	movdqa	-38(%eax), %xmm0
-	movdqa	%xmm0, -38(%edx)
-L(fwd_write_22bytes_align):
-	movdqa	-22(%eax), %xmm0
-	movdqa	%xmm0, -22(%edx)
-	movl	-6(%eax), %ecx
-	movl	%ecx, -6(%edx)
-	movzwl	-2(%eax), %ecx
-	movw	%cx, -2(%edx)
-#ifdef USE_AS_MEMPCPY
-	movl	%edx, %eax
-#else
-	movl	DEST(%esp), %eax
-#endif
-	RETURN
-
-	.p2align 4
-L(fwd_write_42bytes_align):
-	movdqa	-42(%eax), %xmm0
-	movdqa	%xmm0, -42(%edx)
-L(fwd_write_26bytes_align):
-	movdqa	-26(%eax), %xmm0
-	movdqa	%xmm0, -26(%edx)
-L(fwd_write_10bytes_align):
-	movq	-10(%eax), %xmm0
-	movq	%xmm0, -10(%edx)
-L(fwd_write_2bytes_align):
-	movzwl	-2(%eax), %ecx
-	movw	%cx, -2(%edx)
-#ifdef USE_AS_MEMPCPY
-	movl	%edx, %eax
-#else
-	movl	DEST(%esp), %eax
-#endif
-	RETURN
-
-	.p2align 4
-L(fwd_write_34bytes_align):
-	movdqa	-34(%eax), %xmm0
-	movdqa	%xmm0, -34(%edx)
-L(fwd_write_18bytes_align):
-	movdqa	-18(%eax), %xmm0
-	movdqa	%xmm0, -18(%edx)
-	movzwl	-2(%eax), %ecx
-	movw	%cx, -2(%edx)
-#ifdef USE_AS_MEMPCPY
-	movl	%edx, %eax
-#else
-	movl	DEST(%esp), %eax
-#endif
-	RETURN
-
-	.p2align 4
-L(fwd_write_47bytes_align):
-	movdqa	-47(%eax), %xmm0
-	movdqa	%xmm0, -47(%edx)
-L(fwd_write_31bytes_align):
-	movdqa	-31(%eax), %xmm0
-	movdqa	%xmm0, -31(%edx)
-L(fwd_write_15bytes_align):
-	movq	-15(%eax), %xmm0
-	movq	%xmm0, -15(%edx)
-L(fwd_write_7bytes_align):
-	movl	-7(%eax), %ecx
-	movl	%ecx, -7(%edx)
-	movzwl	-3(%eax), %ecx
-	movzbl	-1(%eax), %eax
-	movw	%cx, -3(%edx)
-	movb	%al, -1(%edx)
-#ifdef USE_AS_MEMPCPY
-	movl	%edx, %eax
-#else
-	movl	DEST(%esp), %eax
-#endif
-	RETURN
-
-	.p2align 4
-L(fwd_write_39bytes_align):
-	movdqa	-39(%eax), %xmm0
-	movdqa	%xmm0, -39(%edx)
-L(fwd_write_23bytes_align):
-	movdqa	-23(%eax), %xmm0
-	movdqa	%xmm0, -23(%edx)
-	movl	-7(%eax), %ecx
-	movl	%ecx, -7(%edx)
-	movzwl	-3(%eax), %ecx
-	movzbl	-1(%eax), %eax
-	movw	%cx, -3(%edx)
-	movb	%al, -1(%edx)
-#ifdef USE_AS_MEMPCPY
-	movl	%edx, %eax
-#else
-	movl	DEST(%esp), %eax
-#endif
-	RETURN
-
-	.p2align 4
-L(fwd_write_43bytes_align):
-	movdqa	-43(%eax), %xmm0
-	movdqa	%xmm0, -43(%edx)
-L(fwd_write_27bytes_align):
-	movdqa	-27(%eax), %xmm0
-	movdqa	%xmm0, -27(%edx)
-L(fwd_write_11bytes_align):
-	movq	-11(%eax), %xmm0
-	movq	%xmm0, -11(%edx)
-L(fwd_write_3bytes_align):
-	movzwl	-3(%eax), %ecx
-	movzbl	-1(%eax), %eax
-	movw	%cx, -3(%edx)
-	movb	%al, -1(%edx)
-#ifdef USE_AS_MEMPCPY
-	movl	%edx, %eax
-#else
-	movl	DEST(%esp), %eax
-#endif
-	RETURN
-
-	.p2align 4
-L(fwd_write_35bytes_align):
-	movdqa	-35(%eax), %xmm0
-	movdqa	%xmm0, -35(%edx)
-L(fwd_write_19bytes_align):
-	movdqa	-19(%eax), %xmm0
-	movdqa	%xmm0, -19(%edx)
-	movzwl	-3(%eax), %ecx
-	movzbl	-1(%eax), %eax
-	movw	%cx, -3(%edx)
-	movb	%al, -1(%edx)
-#ifdef USE_AS_MEMPCPY
-	movl	%edx, %eax
-#else
-	movl	DEST(%esp), %eax
-#endif
-	RETURN
-
-	.p2align 4
-L(fwd_write_44bytes_align):
-	movdqa	-44(%eax), %xmm0
-	movdqa	%xmm0, -44(%edx)
-L(fwd_write_28bytes_align):
-	movdqa	-28(%eax), %xmm0
-	movdqa	%xmm0, -28(%edx)
-L(fwd_write_12bytes_align):
-	movq	-12(%eax), %xmm0
-	movq	%xmm0, -12(%edx)
-L(fwd_write_4bytes_align):
-	movl	-4(%eax), %ecx
-	movl	%ecx, -4(%edx)
-#ifdef USE_AS_MEMPCPY
-	movl	%edx, %eax
-#else
-	movl	DEST(%esp), %eax
-#endif
-	RETURN
-
-	.p2align 4
-L(fwd_write_36bytes_align):
-	movdqa	-36(%eax), %xmm0
-	movdqa	%xmm0, -36(%edx)
-L(fwd_write_20bytes_align):
-	movdqa	-20(%eax), %xmm0
-	movdqa	%xmm0, -20(%edx)
-	movl	-4(%eax), %ecx
-	movl	%ecx, -4(%edx)
-#ifdef USE_AS_MEMPCPY
-	movl	%edx, %eax
-#else
-	movl	DEST(%esp), %eax
-#endif
-	RETURN_END
-
-	CFI_PUSH (%edi)
-
-	.p2align 4
-L(large_page):
-	movdqu	(%eax), %xmm1
-#ifdef USE_AS_MEMMOVE
-	movl	DEST+4(%esp), %edi
-	movdqu	%xmm0, (%edi)
-#endif
-	lea	16(%eax), %eax
-	movntdq	%xmm1, (%edx)
-	lea	16(%edx), %edx
-	lea	-0x90(%ecx), %ecx
-	POP (%edi)
-
-	.p2align 4
-L(large_page_loop):
-	movdqu	(%eax), %xmm0
-	movdqu	0x10(%eax), %xmm1
-	movdqu	0x20(%eax), %xmm2
-	movdqu	0x30(%eax), %xmm3
-	movdqu	0x40(%eax), %xmm4
-	movdqu	0x50(%eax), %xmm5
-	movdqu	0x60(%eax), %xmm6
-	movdqu	0x70(%eax), %xmm7
-	lea	0x80(%eax), %eax
-
-	sub	$0x80, %ecx
-	movntdq	%xmm0, (%edx)
-	movntdq	%xmm1, 0x10(%edx)
-	movntdq	%xmm2, 0x20(%edx)
-	movntdq	%xmm3, 0x30(%edx)
-	movntdq	%xmm4, 0x40(%edx)
-	movntdq	%xmm5, 0x50(%edx)
-	movntdq	%xmm6, 0x60(%edx)
-	movntdq	%xmm7, 0x70(%edx)
-	lea	0x80(%edx), %edx
-	jae	L(large_page_loop)
-	cmp	$-0x40, %ecx
-	lea	0x80(%ecx), %ecx
-	jl	L(large_page_less_64bytes)
-
-	movdqu	(%eax), %xmm0
-	movdqu	0x10(%eax), %xmm1
-	movdqu	0x20(%eax), %xmm2
-	movdqu	0x30(%eax), %xmm3
-	lea	0x40(%eax), %eax
-
-	movntdq	%xmm0, (%edx)
-	movntdq	%xmm1, 0x10(%edx)
-	movntdq	%xmm2, 0x20(%edx)
-	movntdq	%xmm3, 0x30(%edx)
-	lea	0x40(%edx), %edx
-	sub	$0x40, %ecx
-L(large_page_less_64bytes):
-	cmp	$32, %ecx
-	jb	L(large_page_less_32bytes)
-	movdqu	(%eax), %xmm0
-	movdqu	0x10(%eax), %xmm1
-	lea	0x20(%eax), %eax
-	movntdq	%xmm0, (%edx)
-	movntdq	%xmm1, 0x10(%edx)
-	lea	0x20(%edx), %edx
-	sub	$0x20, %ecx
-L(large_page_less_32bytes):
-	add	%ecx, %edx
-	add	%ecx, %eax
-	sfence
-	BRANCH_TO_JMPTBL_ENTRY (L(table_48bytes_fwd), %ecx, 4)
-
-	.p2align 4
-L(bk_write_44bytes):
-	movq	36(%eax), %xmm0
-	movq	%xmm0, 36(%edx)
-L(bk_write_36bytes):
-	movq	28(%eax), %xmm0
-	movq	%xmm0, 28(%edx)
-L(bk_write_28bytes):
-	movq	20(%eax), %xmm0
-	movq	%xmm0, 20(%edx)
-L(bk_write_20bytes):
-	movq	12(%eax), %xmm0
-	movq	%xmm0, 12(%edx)
-L(bk_write_12bytes):
-	movq	4(%eax), %xmm0
-	movq	%xmm0, 4(%edx)
-L(bk_write_4bytes):
-	movl	(%eax), %ecx
-	movl	%ecx, (%edx)
-L(bk_write_0bytes):
-	movl	DEST(%esp), %eax
-#ifdef USE_AS_MEMPCPY
-	movl	LEN(%esp), %ecx
-	add	%ecx, %eax
-#endif
-	RETURN
-
-	.p2align 4
-L(bk_write_40bytes):
-	movq	32(%eax), %xmm0
-	movq	%xmm0, 32(%edx)
-L(bk_write_32bytes):
-	movq	24(%eax), %xmm0
-	movq	%xmm0, 24(%edx)
-L(bk_write_24bytes):
-	movq	16(%eax), %xmm0
-	movq	%xmm0, 16(%edx)
-L(bk_write_16bytes):
-	movq	8(%eax), %xmm0
-	movq	%xmm0, 8(%edx)
-L(bk_write_8bytes):
-	movq	(%eax), %xmm0
-	movq	%xmm0, (%edx)
-	movl	DEST(%esp), %eax
-#ifdef USE_AS_MEMPCPY
-	movl	LEN(%esp), %ecx
-	add	%ecx, %eax
-#endif
-	RETURN
-
-	.p2align 4
-L(bk_write_45bytes):
-	movq	37(%eax), %xmm0
-	movq	%xmm0, 37(%edx)
-L(bk_write_37bytes):
-	movq	29(%eax), %xmm0
-	movq	%xmm0, 29(%edx)
-L(bk_write_29bytes):
-	movq	21(%eax), %xmm0
-	movq	%xmm0, 21(%edx)
-L(bk_write_21bytes):
-	movq	13(%eax), %xmm0
-	movq	%xmm0, 13(%edx)
-L(bk_write_13bytes):
-	movq	5(%eax), %xmm0
-	movq	%xmm0, 5(%edx)
-L(bk_write_5bytes):
-	movl	1(%eax), %ecx
-	movl	%ecx, 1(%edx)
-L(bk_write_1bytes):
-	movzbl	(%eax), %ecx
-	movb	%cl, (%edx)
-	movl	DEST(%esp), %eax
-#ifdef USE_AS_MEMPCPY
-	movl	LEN(%esp), %ecx
-	add	%ecx, %eax
-#endif
-	RETURN
-
-	.p2align 4
-L(bk_write_41bytes):
-	movq	33(%eax), %xmm0
-	movq	%xmm0, 33(%edx)
-L(bk_write_33bytes):
-	movq	25(%eax), %xmm0
-	movq	%xmm0, 25(%edx)
-L(bk_write_25bytes):
-	movq	17(%eax), %xmm0
-	movq	%xmm0, 17(%edx)
-L(bk_write_17bytes):
-	movq	9(%eax), %xmm0
-	movq	%xmm0, 9(%edx)
-L(bk_write_9bytes):
-	movq	1(%eax), %xmm0
-	movq	%xmm0, 1(%edx)
-	movzbl	(%eax), %ecx
-	movb	%cl, (%edx)
-	movl	DEST(%esp), %eax
-#ifdef USE_AS_MEMPCPY
-	movl	LEN(%esp), %ecx
-	add	%ecx, %eax
-#endif
-	RETURN
-
-	.p2align 4
-L(bk_write_46bytes):
-	movq	38(%eax), %xmm0
-	movq	%xmm0, 38(%edx)
-L(bk_write_38bytes):
-	movq	30(%eax), %xmm0
-	movq	%xmm0, 30(%edx)
-L(bk_write_30bytes):
-	movq	22(%eax), %xmm0
-	movq	%xmm0, 22(%edx)
-L(bk_write_22bytes):
-	movq	14(%eax), %xmm0
-	movq	%xmm0, 14(%edx)
-L(bk_write_14bytes):
-	movq	6(%eax), %xmm0
-	movq	%xmm0, 6(%edx)
-L(bk_write_6bytes):
-	movl	2(%eax), %ecx
-	movl	%ecx, 2(%edx)
-	movzwl	(%eax), %ecx
-	movw	%cx, (%edx)
-	movl	DEST(%esp), %eax
-#ifdef USE_AS_MEMPCPY
-	movl	LEN(%esp), %ecx
-	add	%ecx, %eax
-#endif
-	RETURN
-
-	.p2align 4
-L(bk_write_42bytes):
-	movq	34(%eax), %xmm0
-	movq	%xmm0, 34(%edx)
-L(bk_write_34bytes):
-	movq	26(%eax), %xmm0
-	movq	%xmm0, 26(%edx)
-L(bk_write_26bytes):
-	movq	18(%eax), %xmm0
-	movq	%xmm0, 18(%edx)
-L(bk_write_18bytes):
-	movq	10(%eax), %xmm0
-	movq	%xmm0, 10(%edx)
-L(bk_write_10bytes):
-	movq	2(%eax), %xmm0
-	movq	%xmm0, 2(%edx)
-L(bk_write_2bytes):
-	movzwl	(%eax), %ecx
-	movw	%cx, (%edx)
-	movl	DEST(%esp), %eax
-#ifdef USE_AS_MEMPCPY
-	movl	LEN(%esp), %ecx
-	add	%ecx, %eax
-#endif
-	RETURN
-
-	.p2align 4
-L(bk_write_47bytes):
-	movq	39(%eax), %xmm0
-	movq	%xmm0, 39(%edx)
-L(bk_write_39bytes):
-	movq	31(%eax), %xmm0
-	movq	%xmm0, 31(%edx)
-L(bk_write_31bytes):
-	movq	23(%eax), %xmm0
-	movq	%xmm0, 23(%edx)
-L(bk_write_23bytes):
-	movq	15(%eax), %xmm0
-	movq	%xmm0, 15(%edx)
-L(bk_write_15bytes):
-	movq	7(%eax), %xmm0
-	movq	%xmm0, 7(%edx)
-L(bk_write_7bytes):
-	movl	3(%eax), %ecx
-	movl	%ecx, 3(%edx)
-	movzwl	1(%eax), %ecx
-	movw	%cx, 1(%edx)
-	movzbl	(%eax), %eax
-	movb	%al, (%edx)
-	movl	DEST(%esp), %eax
-#ifdef USE_AS_MEMPCPY
-	movl	LEN(%esp), %ecx
-	add	%ecx, %eax
-#endif
-	RETURN
-
-	.p2align 4
-L(bk_write_43bytes):
-	movq	35(%eax), %xmm0
-	movq	%xmm0, 35(%edx)
-L(bk_write_35bytes):
-	movq	27(%eax), %xmm0
-	movq	%xmm0, 27(%edx)
-L(bk_write_27bytes):
-	movq	19(%eax), %xmm0
-	movq	%xmm0, 19(%edx)
-L(bk_write_19bytes):
-	movq	11(%eax), %xmm0
-	movq	%xmm0, 11(%edx)
-L(bk_write_11bytes):
-	movq	3(%eax), %xmm0
-	movq	%xmm0, 3(%edx)
-L(bk_write_3bytes):
-	movzwl	1(%eax), %ecx
-	movw	%cx, 1(%edx)
-	movzbl	(%eax), %eax
-	movb	%al, (%edx)
-	movl	DEST(%esp), %eax
-#ifdef USE_AS_MEMPCPY
-	movl	LEN(%esp), %ecx
-	add	%ecx, %eax
-#endif
-	RETURN_END
-
-
-	.pushsection .rodata.ssse3,"a",@progbits
-	.p2align 2
-L(table_48bytes_fwd):
-	.int	JMPTBL (L(fwd_write_0bytes), L(table_48bytes_fwd))
-	.int	JMPTBL (L(fwd_write_1bytes), L(table_48bytes_fwd))
-	.int	JMPTBL (L(fwd_write_2bytes), L(table_48bytes_fwd))
-	.int	JMPTBL (L(fwd_write_3bytes), L(table_48bytes_fwd))
-	.int	JMPTBL (L(fwd_write_4bytes), L(table_48bytes_fwd))
-	.int	JMPTBL (L(fwd_write_5bytes), L(table_48bytes_fwd))
-	.int	JMPTBL (L(fwd_write_6bytes), L(table_48bytes_fwd))
-	.int	JMPTBL (L(fwd_write_7bytes), L(table_48bytes_fwd))
-	.int	JMPTBL (L(fwd_write_8bytes), L(table_48bytes_fwd))
-	.int	JMPTBL (L(fwd_write_9bytes), L(table_48bytes_fwd))
-	.int	JMPTBL (L(fwd_write_10bytes), L(table_48bytes_fwd))
-	.int	JMPTBL (L(fwd_write_11bytes), L(table_48bytes_fwd))
-	.int	JMPTBL (L(fwd_write_12bytes), L(table_48bytes_fwd))
-	.int	JMPTBL (L(fwd_write_13bytes), L(table_48bytes_fwd))
-	.int	JMPTBL (L(fwd_write_14bytes), L(table_48bytes_fwd))
-	.int	JMPTBL (L(fwd_write_15bytes), L(table_48bytes_fwd))
-	.int	JMPTBL (L(fwd_write_16bytes), L(table_48bytes_fwd))
-	.int	JMPTBL (L(fwd_write_17bytes), L(table_48bytes_fwd))
-	.int	JMPTBL (L(fwd_write_18bytes), L(table_48bytes_fwd))
-	.int	JMPTBL (L(fwd_write_19bytes), L(table_48bytes_fwd))
-	.int	JMPTBL (L(fwd_write_20bytes), L(table_48bytes_fwd))
-	.int	JMPTBL (L(fwd_write_21bytes), L(table_48bytes_fwd))
-	.int	JMPTBL (L(fwd_write_22bytes), L(table_48bytes_fwd))
-	.int	JMPTBL (L(fwd_write_23bytes), L(table_48bytes_fwd))
-	.int	JMPTBL (L(fwd_write_24bytes), L(table_48bytes_fwd))
-	.int	JMPTBL (L(fwd_write_25bytes), L(table_48bytes_fwd))
-	.int	JMPTBL (L(fwd_write_26bytes), L(table_48bytes_fwd))
-	.int	JMPTBL (L(fwd_write_27bytes), L(table_48bytes_fwd))
-	.int	JMPTBL (L(fwd_write_28bytes), L(table_48bytes_fwd))
-	.int	JMPTBL (L(fwd_write_29bytes), L(table_48bytes_fwd))
-	.int	JMPTBL (L(fwd_write_30bytes), L(table_48bytes_fwd))
-	.int	JMPTBL (L(fwd_write_31bytes), L(table_48bytes_fwd))
-	.int	JMPTBL (L(fwd_write_32bytes), L(table_48bytes_fwd))
-	.int	JMPTBL (L(fwd_write_33bytes), L(table_48bytes_fwd))
-	.int	JMPTBL (L(fwd_write_34bytes), L(table_48bytes_fwd))
-	.int	JMPTBL (L(fwd_write_35bytes), L(table_48bytes_fwd))
-	.int	JMPTBL (L(fwd_write_36bytes), L(table_48bytes_fwd))
-	.int	JMPTBL (L(fwd_write_37bytes), L(table_48bytes_fwd))
-	.int	JMPTBL (L(fwd_write_38bytes), L(table_48bytes_fwd))
-	.int	JMPTBL (L(fwd_write_39bytes), L(table_48bytes_fwd))
-	.int	JMPTBL (L(fwd_write_40bytes), L(table_48bytes_fwd))
-	.int	JMPTBL (L(fwd_write_41bytes), L(table_48bytes_fwd))
-	.int	JMPTBL (L(fwd_write_42bytes), L(table_48bytes_fwd))
-	.int	JMPTBL (L(fwd_write_43bytes), L(table_48bytes_fwd))
-	.int	JMPTBL (L(fwd_write_44bytes), L(table_48bytes_fwd))
-	.int	JMPTBL (L(fwd_write_45bytes), L(table_48bytes_fwd))
-	.int	JMPTBL (L(fwd_write_46bytes), L(table_48bytes_fwd))
-	.int	JMPTBL (L(fwd_write_47bytes), L(table_48bytes_fwd))
-
-	.p2align 2
-L(table_48bytes_fwd_align):
-	.int	JMPTBL (L(fwd_write_0bytes_align), L(table_48bytes_fwd_align))
-	.int	JMPTBL (L(fwd_write_1bytes_align), L(table_48bytes_fwd_align))
-	.int	JMPTBL (L(fwd_write_2bytes_align), L(table_48bytes_fwd_align))
-	.int	JMPTBL (L(fwd_write_3bytes_align), L(table_48bytes_fwd_align))
-	.int	JMPTBL (L(fwd_write_4bytes_align), L(table_48bytes_fwd_align))
-	.int	JMPTBL (L(fwd_write_5bytes_align), L(table_48bytes_fwd_align))
-	.int	JMPTBL (L(fwd_write_6bytes_align), L(table_48bytes_fwd_align))
-	.int	JMPTBL (L(fwd_write_7bytes_align), L(table_48bytes_fwd_align))
-	.int	JMPTBL (L(fwd_write_8bytes_align), L(table_48bytes_fwd_align))
-	.int	JMPTBL (L(fwd_write_9bytes_align), L(table_48bytes_fwd_align))
-	.int	JMPTBL (L(fwd_write_10bytes_align), L(table_48bytes_fwd_align))
-	.int	JMPTBL (L(fwd_write_11bytes_align), L(table_48bytes_fwd_align))
-	.int	JMPTBL (L(fwd_write_12bytes_align), L(table_48bytes_fwd_align))
-	.int	JMPTBL (L(fwd_write_13bytes_align), L(table_48bytes_fwd_align))
-	.int	JMPTBL (L(fwd_write_14bytes_align), L(table_48bytes_fwd_align))
-	.int	JMPTBL (L(fwd_write_15bytes_align), L(table_48bytes_fwd_align))
-	.int	JMPTBL (L(fwd_write_16bytes_align), L(table_48bytes_fwd_align))
-	.int	JMPTBL (L(fwd_write_17bytes_align), L(table_48bytes_fwd_align))
-	.int	JMPTBL (L(fwd_write_18bytes_align), L(table_48bytes_fwd_align))
-	.int	JMPTBL (L(fwd_write_19bytes_align), L(table_48bytes_fwd_align))
-	.int	JMPTBL (L(fwd_write_20bytes_align), L(table_48bytes_fwd_align))
-	.int	JMPTBL (L(fwd_write_21bytes_align), L(table_48bytes_fwd_align))
-	.int	JMPTBL (L(fwd_write_22bytes_align), L(table_48bytes_fwd_align))
-	.int	JMPTBL (L(fwd_write_23bytes_align), L(table_48bytes_fwd_align))
-	.int	JMPTBL (L(fwd_write_24bytes_align), L(table_48bytes_fwd_align))
-	.int	JMPTBL (L(fwd_write_25bytes_align), L(table_48bytes_fwd_align))
-	.int	JMPTBL (L(fwd_write_26bytes_align), L(table_48bytes_fwd_align))
-	.int	JMPTBL (L(fwd_write_27bytes_align), L(table_48bytes_fwd_align))
-	.int	JMPTBL (L(fwd_write_28bytes_align), L(table_48bytes_fwd_align))
-	.int	JMPTBL (L(fwd_write_29bytes_align), L(table_48bytes_fwd_align))
-	.int	JMPTBL (L(fwd_write_30bytes_align), L(table_48bytes_fwd_align))
-	.int	JMPTBL (L(fwd_write_31bytes_align), L(table_48bytes_fwd_align))
-	.int	JMPTBL (L(fwd_write_32bytes_align), L(table_48bytes_fwd_align))
-	.int	JMPTBL (L(fwd_write_33bytes_align), L(table_48bytes_fwd_align))
-	.int	JMPTBL (L(fwd_write_34bytes_align), L(table_48bytes_fwd_align))
-	.int	JMPTBL (L(fwd_write_35bytes_align), L(table_48bytes_fwd_align))
-	.int	JMPTBL (L(fwd_write_36bytes_align), L(table_48bytes_fwd_align))
-	.int	JMPTBL (L(fwd_write_37bytes_align), L(table_48bytes_fwd_align))
-	.int	JMPTBL (L(fwd_write_38bytes_align), L(table_48bytes_fwd_align))
-	.int	JMPTBL (L(fwd_write_39bytes_align), L(table_48bytes_fwd_align))
-	.int	JMPTBL (L(fwd_write_40bytes_align), L(table_48bytes_fwd_align))
-	.int	JMPTBL (L(fwd_write_41bytes_align), L(table_48bytes_fwd_align))
-	.int	JMPTBL (L(fwd_write_42bytes_align), L(table_48bytes_fwd_align))
-	.int	JMPTBL (L(fwd_write_43bytes_align), L(table_48bytes_fwd_align))
-	.int	JMPTBL (L(fwd_write_44bytes_align), L(table_48bytes_fwd_align))
-	.int	JMPTBL (L(fwd_write_45bytes_align), L(table_48bytes_fwd_align))
-	.int	JMPTBL (L(fwd_write_46bytes_align), L(table_48bytes_fwd_align))
-	.int	JMPTBL (L(fwd_write_47bytes_align), L(table_48bytes_fwd_align))
-
-	.p2align 2
-L(shl_table):
-	.int	JMPTBL (L(shl_0), L(shl_table))
-	.int	JMPTBL (L(shl_1), L(shl_table))
-	.int	JMPTBL (L(shl_2), L(shl_table))
-	.int	JMPTBL (L(shl_3), L(shl_table))
-	.int	JMPTBL (L(shl_4), L(shl_table))
-	.int	JMPTBL (L(shl_5), L(shl_table))
-	.int	JMPTBL (L(shl_6), L(shl_table))
-	.int	JMPTBL (L(shl_7), L(shl_table))
-	.int	JMPTBL (L(shl_8), L(shl_table))
-	.int	JMPTBL (L(shl_9), L(shl_table))
-	.int	JMPTBL (L(shl_10), L(shl_table))
-	.int	JMPTBL (L(shl_11), L(shl_table))
-	.int	JMPTBL (L(shl_12), L(shl_table))
-	.int	JMPTBL (L(shl_13), L(shl_table))
-	.int	JMPTBL (L(shl_14), L(shl_table))
-	.int	JMPTBL (L(shl_15), L(shl_table))
-
-	.p2align 2
-L(table_48_bytes_bwd):
-	.int	JMPTBL (L(bk_write_0bytes), L(table_48_bytes_bwd))
-	.int	JMPTBL (L(bk_write_1bytes), L(table_48_bytes_bwd))
-	.int	JMPTBL (L(bk_write_2bytes), L(table_48_bytes_bwd))
-	.int	JMPTBL (L(bk_write_3bytes), L(table_48_bytes_bwd))
-	.int	JMPTBL (L(bk_write_4bytes), L(table_48_bytes_bwd))
-	.int	JMPTBL (L(bk_write_5bytes), L(table_48_bytes_bwd))
-	.int	JMPTBL (L(bk_write_6bytes), L(table_48_bytes_bwd))
-	.int	JMPTBL (L(bk_write_7bytes), L(table_48_bytes_bwd))
-	.int	JMPTBL (L(bk_write_8bytes), L(table_48_bytes_bwd))
-	.int	JMPTBL (L(bk_write_9bytes), L(table_48_bytes_bwd))
-	.int	JMPTBL (L(bk_write_10bytes), L(table_48_bytes_bwd))
-	.int	JMPTBL (L(bk_write_11bytes), L(table_48_bytes_bwd))
-	.int	JMPTBL (L(bk_write_12bytes), L(table_48_bytes_bwd))
-	.int	JMPTBL (L(bk_write_13bytes), L(table_48_bytes_bwd))
-	.int	JMPTBL (L(bk_write_14bytes), L(table_48_bytes_bwd))
-	.int	JMPTBL (L(bk_write_15bytes), L(table_48_bytes_bwd))
-	.int	JMPTBL (L(bk_write_16bytes), L(table_48_bytes_bwd))
-	.int	JMPTBL (L(bk_write_17bytes), L(table_48_bytes_bwd))
-	.int	JMPTBL (L(bk_write_18bytes), L(table_48_bytes_bwd))
-	.int	JMPTBL (L(bk_write_19bytes), L(table_48_bytes_bwd))
-	.int	JMPTBL (L(bk_write_20bytes), L(table_48_bytes_bwd))
-	.int	JMPTBL (L(bk_write_21bytes), L(table_48_bytes_bwd))
-	.int	JMPTBL (L(bk_write_22bytes), L(table_48_bytes_bwd))
-	.int	JMPTBL (L(bk_write_23bytes), L(table_48_bytes_bwd))
-	.int	JMPTBL (L(bk_write_24bytes), L(table_48_bytes_bwd))
-	.int	JMPTBL (L(bk_write_25bytes), L(table_48_bytes_bwd))
-	.int	JMPTBL (L(bk_write_26bytes), L(table_48_bytes_bwd))
-	.int	JMPTBL (L(bk_write_27bytes), L(table_48_bytes_bwd))
-	.int	JMPTBL (L(bk_write_28bytes), L(table_48_bytes_bwd))
-	.int	JMPTBL (L(bk_write_29bytes), L(table_48_bytes_bwd))
-	.int	JMPTBL (L(bk_write_30bytes), L(table_48_bytes_bwd))
-	.int	JMPTBL (L(bk_write_31bytes), L(table_48_bytes_bwd))
-	.int	JMPTBL (L(bk_write_32bytes), L(table_48_bytes_bwd))
-	.int	JMPTBL (L(bk_write_33bytes), L(table_48_bytes_bwd))
-	.int	JMPTBL (L(bk_write_34bytes), L(table_48_bytes_bwd))
-	.int	JMPTBL (L(bk_write_35bytes), L(table_48_bytes_bwd))
-	.int	JMPTBL (L(bk_write_36bytes), L(table_48_bytes_bwd))
-	.int	JMPTBL (L(bk_write_37bytes), L(table_48_bytes_bwd))
-	.int	JMPTBL (L(bk_write_38bytes), L(table_48_bytes_bwd))
-	.int	JMPTBL (L(bk_write_39bytes), L(table_48_bytes_bwd))
-	.int	JMPTBL (L(bk_write_40bytes), L(table_48_bytes_bwd))
-	.int	JMPTBL (L(bk_write_41bytes), L(table_48_bytes_bwd))
-	.int	JMPTBL (L(bk_write_42bytes), L(table_48_bytes_bwd))
-	.int	JMPTBL (L(bk_write_43bytes), L(table_48_bytes_bwd))
-	.int	JMPTBL (L(bk_write_44bytes), L(table_48_bytes_bwd))
-	.int	JMPTBL (L(bk_write_45bytes), L(table_48_bytes_bwd))
-	.int	JMPTBL (L(bk_write_46bytes), L(table_48_bytes_bwd))
-	.int	JMPTBL (L(bk_write_47bytes), L(table_48_bytes_bwd))
-
-	.popsection
-
-#ifdef USE_AS_MEMMOVE
-	.p2align 4
-L(copy_backward):
-	PUSH (%edi)
-	movl	%eax, %edi
-	lea	(%ecx,%edx,1),%edx
-	lea	(%ecx,%edi,1),%edi
-	testl	$0x3, %edx
-	jnz	L(bk_align)
-
-L(bk_aligned_4):
-	cmp	$64, %ecx
-	jae	L(bk_write_more64bytes)
-
-L(bk_write_64bytesless):
-	cmp	$32, %ecx
-	jb	L(bk_write_less32bytes)
-
-L(bk_write_more32bytes):
-	/* Copy 32 bytes at a time.  */
-	sub	$32, %ecx
-	movq	-8(%edi), %xmm0
-	movq	%xmm0, -8(%edx)
-	movq	-16(%edi), %xmm0
-	movq	%xmm0, -16(%edx)
-	movq	-24(%edi), %xmm0
-	movq	%xmm0, -24(%edx)
-	movq	-32(%edi), %xmm0
-	movq	%xmm0, -32(%edx)
-	sub	$32, %edx
-	sub	$32, %edi
-
-L(bk_write_less32bytes):
-	movl	%edi, %eax
-	sub	%ecx, %edx
-	sub	%ecx, %eax
-	POP (%edi)
-L(bk_write_less32bytes_2):
-	BRANCH_TO_JMPTBL_ENTRY (L(table_48_bytes_bwd), %ecx, 4)
-
-	CFI_PUSH (%edi)
-
-	.p2align 4
-L(bk_align):
-	cmp	$8, %ecx
-	jbe	L(bk_write_less32bytes)
-	testl	$1, %edx
-	/* We get here only if (EDX & 3 ) != 0 so if (EDX & 1) ==0,
-	then	(EDX & 2) must be != 0.  */
-	jz	L(bk_got2)
-	sub	$1, %edi
-	sub	$1, %ecx
-	sub	$1, %edx
-	movzbl	(%edi), %eax
-	movb	%al, (%edx)
-
-	testl	$2, %edx
-	jz	L(bk_aligned_4)
-
-L(bk_got2):
-	sub	$2, %edi
-	sub	$2, %ecx
-	sub	$2, %edx
-	movzwl	(%edi), %eax
-	movw	%ax, (%edx)
-	jmp	L(bk_aligned_4)
-
-	.p2align 4
-L(bk_write_more64bytes):
-	/* Check alignment of last byte.  */
-	testl	$15, %edx
-	jz	L(bk_ssse3_cpy_pre)
-
-/* EDX is aligned 4 bytes, but not 16 bytes.  */
-L(bk_ssse3_align):
-	sub	$4, %edi
-	sub	$4, %ecx
-	sub	$4, %edx
-	movl	(%edi), %eax
-	movl	%eax, (%edx)
-
-	testl	$15, %edx
-	jz	L(bk_ssse3_cpy_pre)
-
-	sub	$4, %edi
-	sub	$4, %ecx
-	sub	$4, %edx
-	movl	(%edi), %eax
-	movl	%eax, (%edx)
-
-	testl	$15, %edx
-	jz	L(bk_ssse3_cpy_pre)
-
-	sub	$4, %edi
-	sub	$4, %ecx
-	sub	$4, %edx
-	movl	(%edi), %eax
-	movl	%eax, (%edx)
-
-L(bk_ssse3_cpy_pre):
-	cmp	$64, %ecx
-	jb	L(bk_write_more32bytes)
-
-	.p2align 4
-L(bk_ssse3_cpy):
-	sub	$64, %edi
-	sub	$64, %ecx
-	sub	$64, %edx
-	movdqu	0x30(%edi), %xmm3
-	movdqa	%xmm3, 0x30(%edx)
-	movdqu	0x20(%edi), %xmm2
-	movdqa	%xmm2, 0x20(%edx)
-	movdqu	0x10(%edi), %xmm1
-	movdqa	%xmm1, 0x10(%edx)
-	movdqu	(%edi), %xmm0
-	movdqa	%xmm0, (%edx)
-	cmp	$64, %ecx
-	jae	L(bk_ssse3_cpy)
-	jmp	L(bk_write_64bytesless)
-
-#endif
-
-END (MEMCPY)
diff --git a/libc/arch-x86/string/ssse3-memmove-atom.S b/libc/arch-x86/string/ssse3-memmove-atom.S
deleted file mode 100644
index 3572eac..0000000
--- a/libc/arch-x86/string/ssse3-memmove-atom.S
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
-Copyright (c) 2010, Intel Corporation
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
-    * Redistributions of source code must retain the above copyright notice,
-    * this list of conditions and the following disclaimer.
-
-    * Redistributions in binary form must reproduce the above copyright notice,
-    * this list of conditions and the following disclaimer in the documentation
-    * and/or other materials provided with the distribution.
-
-    * Neither the name of Intel Corporation nor the names of its contributors
-    * may be used to endorse or promote products derived from this software
-    * without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
-ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-
-
-#define MEMCPY memmove_atom
-#define USE_AS_MEMMOVE
-#include "ssse3-memcpy-atom.S"
diff --git a/libc/arch-x86/string/ssse3-strcat-atom.S b/libc/arch-x86/string/ssse3-strcat-atom.S
index 8d8e89d..b851d9e 100644
--- a/libc/arch-x86/string/ssse3-strcat-atom.S
+++ b/libc/arch-x86/string/ssse3-strcat-atom.S
@@ -87,7 +87,7 @@
 #define POP(REG)	popl REG; CFI_POP (REG)
 
 #ifndef STRCAT
-# define STRCAT	strcat_ssse3
+# define STRCAT	strcat
 #endif
 
 #define PARMS	4
diff --git a/libc/arch-x86/string/ssse3-strcmp-atom.S b/libc/arch-x86/string/ssse3-strcmp-atom.S
index 08f6d4a..ee253b9 100644
--- a/libc/arch-x86/string/ssse3-strcmp-atom.S
+++ b/libc/arch-x86/string/ssse3-strcmp-atom.S
@@ -108,7 +108,7 @@
 #endif
 
 #ifndef STRCMP
-# define STRCMP strcmp_ssse3
+# define STRCMP strcmp
 #endif
 
 	.section .text.ssse3,"ax",@progbits
diff --git a/libc/arch-x86/string/ssse3-strlcat-atom.S b/libc/arch-x86/string/ssse3-strlcat-atom.S
deleted file mode 100644
index 055b489..0000000
--- a/libc/arch-x86/string/ssse3-strlcat-atom.S
+++ /dev/null
@@ -1,1225 +0,0 @@
-/*
-Copyright (c) 2011, Intel Corporation
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
-    * Redistributions of source code must retain the above copyright notice,
-    * this list of conditions and the following disclaimer.
-
-    * Redistributions in binary form must reproduce the above copyright notice,
-    * this list of conditions and the following disclaimer in the documentation
-    * and/or other materials provided with the distribution.
-
-    * Neither the name of Intel Corporation nor the names of its contributors
-    * may be used to endorse or promote products derived from this software
-    * without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
-ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-
-/* Optimized strlcat with SSSE3 */
-
-#ifndef cfi_startproc
-# define cfi_startproc	.cfi_startproc
-#endif
-
-#ifndef cfi_endproc
-# define cfi_endproc	.cfi_endproc
-#endif
-
-#ifndef cfi_rel_offset
-# define cfi_rel_offset(reg, off)	.cfi_rel_offset reg, off
-#endif
-
-#ifndef cfi_restore
-# define cfi_restore(reg)	.cfi_restore reg
-#endif
-
-#ifndef cfi_adjust_cfa_offset
-# define cfi_adjust_cfa_offset(off)	.cfi_adjust_cfa_offset off
-#endif
-
-#ifndef ENTRY
-# define ENTRY(name)	\
-	.type name,  @function;	\
-	.globl name;	\
-	.p2align 4;	\
-name:	\
-	cfi_startproc
-#endif
-
-#ifndef END
-# define END(name)	\
-	cfi_endproc;	\
-	.size name, .-name
-#endif
-
-#define CFI_PUSH(REG)	\
-	cfi_adjust_cfa_offset (4);	\
-	cfi_rel_offset (REG, 0)
-
-#define CFI_POP(REG)	\
-	cfi_adjust_cfa_offset (-4);	\
-	cfi_restore (REG)
-
-#define PUSH(REG)	pushl	REG;	CFI_PUSH (REG)
-#define POP(REG)	popl	REG;	CFI_POP (REG)
-#define L(label)	.L##Prolog_##label
-
-#define DST	4
-#define SRC	DST+8
-#define LEN	SRC+4
-
-	.text
-ENTRY (strlcat_ssse3)
-	mov	DST(%esp), %edx
-	PUSH	(%ebx)
-	mov	LEN(%esp), %ebx
-	sub	$4, %ebx
-	jbe	L(len_less4_prolog)
-
-#define RETURN	jmp	L(StrcpyStep)
-#define edi	ebx
-
-#define USE_AS_STRNLEN
-#define USE_AS_STRCAT
-#define USE_AS_STRLCAT
-
-#include "sse2-strlen-atom.S"
-
-	.p2align 4
-L(StrcpyStep):
-
-#undef edi
-#undef L
-#define L(label) .L##label
-#undef RETURN
-#define RETURN	POP (%ebx); ret; CFI_PUSH (%ebx);
-#define RETURN1	POP (%edi); POP (%ebx); ret; CFI_PUSH (%ebx); CFI_PUSH (%edi)
-
-        movl	SRC(%esp), %ecx
-	movl	LEN(%esp), %ebx
-
-	cmp	%eax, %ebx
-	je	L(CalculateLengthOfSrcProlog)
-	sub	%eax, %ebx
-
-	test	%ebx, %ebx
-	jz	L(CalculateLengthOfSrcProlog)
-
-	mov	DST + 4(%esp), %edx
-
-	PUSH	(%edi)
-	add	%eax, %edx
-	mov	%ecx, %edi
-	sub	%eax, %edi
-
-	cmp	$8, %ebx
-	jbe	L(StrncpyExit8Bytes)
-
-	cmpb	$0, (%ecx)
-	jz	L(Exit1)
-	cmpb	$0, 1(%ecx)
-	jz	L(Exit2)
-	cmpb	$0, 2(%ecx)
-	jz	L(Exit3)
-	cmpb	$0, 3(%ecx)
-	jz	L(Exit4)
-	cmpb	$0, 4(%ecx)
-	jz	L(Exit5)
-	cmpb	$0, 5(%ecx)
-	jz	L(Exit6)
-	cmpb	$0, 6(%ecx)
-	jz	L(Exit7)
-	cmpb	$0, 7(%ecx)
-	jz	L(Exit8)
-	cmp	$16, %ebx
-	jb	L(StrncpyExit15Bytes)
-	cmpb	$0, 8(%ecx)
-	jz	L(Exit9)
-	cmpb	$0, 9(%ecx)
-	jz	L(Exit10)
-	cmpb	$0, 10(%ecx)
-	jz	L(Exit11)
-	cmpb	$0, 11(%ecx)
-	jz	L(Exit12)
-	cmpb	$0, 12(%ecx)
-	jz	L(Exit13)
-	cmpb	$0, 13(%ecx)
-	jz	L(Exit14)
-	cmpb	$0, 14(%ecx)
-	jz	L(Exit15)
-	cmpb	$0, 15(%ecx)
-	jz	L(Exit16)
-	cmp	$16, %ebx
-	je	L(StrlcpyExit16)
-
-#define USE_AS_STRNCPY
-#include "ssse3-strcpy-atom.S"
-
-	.p2align 4
-L(CopyFrom1To16Bytes):
-	add	%esi, %edx
-	add	%esi, %ecx
-
-	POP	(%esi)
-	test	%al, %al
-	jz	L(ExitHigh8)
-
-L(CopyFrom1To16BytesLess8):
-	mov	%al, %ah
-	and	$15, %ah
-	jz	L(ExitHigh4)
-
-	test	$0x01, %al
-	jnz	L(Exit1)
-	test	$0x02, %al
-	jnz	L(Exit2)
-	test	$0x04, %al
-	jnz	L(Exit3)
-L(Exit4):
-	movl	(%ecx), %eax
-	movl	%eax, (%edx)
-
-	lea	3(%ecx), %eax
-	sub	%edi, %eax
-	RETURN1
-
-	.p2align 4
-L(ExitHigh4):
-	test	$0x10, %al
-	jnz	L(Exit5)
-	test	$0x20, %al
-	jnz	L(Exit6)
-	test	$0x40, %al
-	jnz	L(Exit7)
-L(Exit8):
-	movlpd	(%ecx), %xmm0
-	movlpd	%xmm0, (%edx)
-
-	lea	7(%ecx), %eax
-	sub	%edi, %eax
-	RETURN1
-
-	.p2align 4
-L(ExitHigh8):
-	mov	%ah, %al
-	and	$15, %al
-	jz	L(ExitHigh12)
-
-	test	$0x01, %ah
-	jnz	L(Exit9)
-	test	$0x02, %ah
-	jnz	L(Exit10)
-	test	$0x04, %ah
-	jnz	L(Exit11)
-L(Exit12):
-	movlpd	(%ecx), %xmm0
-	movlpd	%xmm0, (%edx)
-	movl	8(%ecx), %eax
-	movl	%eax, 8(%edx)
-
-	lea	11(%ecx), %eax
-	sub	%edi, %eax
-	RETURN1
-
-	.p2align 4
-L(ExitHigh12):
-	test	$0x10, %ah
-	jnz	L(Exit13)
-	test	$0x20, %ah
-	jnz	L(Exit14)
-	test	$0x40, %ah
-	jnz	L(Exit15)
-L(Exit16):
-	movlpd	(%ecx), %xmm0
-	movlpd	8(%ecx), %xmm1
-	movlpd	%xmm0, (%edx)
-	movlpd	%xmm1, 8(%edx)
-
-	lea	15(%ecx), %eax
-	sub	%edi, %eax
-	RETURN1
-
-	CFI_PUSH(%esi)
-
-	.p2align 4
-L(CopyFrom1To16BytesCase2):
-	add	$16, %ebx
-	add	%esi, %ecx
-	add	%esi, %edx
-
-	POP	(%esi)
-
-	test	%al, %al
-	jz	L(ExitHighCase2)
-
-	cmp	$8, %ebx
-	ja	L(CopyFrom1To16BytesLess8)
-
-	test	$0x01, %al
-	jnz	L(Exit1)
-	cmp	$1, %ebx
-	je	L(StrlcpyExit1)
-	test	$0x02, %al
-	jnz	L(Exit2)
-	cmp	$2, %ebx
-	je	L(StrlcpyExit2)
-	test	$0x04, %al
-	jnz	L(Exit3)
-	cmp	$3, %ebx
-	je	L(StrlcpyExit3)
-	test	$0x08, %al
-	jnz	L(Exit4)
-	cmp	$4, %ebx
-	je	L(StrlcpyExit4)
-	test	$0x10, %al
-	jnz	L(Exit5)
-	cmp	$5, %ebx
-	je	L(StrlcpyExit5)
-	test	$0x20, %al
-	jnz	L(Exit6)
-	cmp	$6, %ebx
-	je	L(StrlcpyExit6)
-	test	$0x40, %al
-	jnz	L(Exit7)
-	cmp	$7, %ebx
-	je	L(StrlcpyExit7)
-	test	$0x80, %al
-	jnz	L(Exit8)
-	jmp	L(StrlcpyExit8)
-
-	.p2align 4
-L(ExitHighCase2):
-	cmp	$8, %ebx
-	jbe	L(CopyFrom1To16BytesLess8Case3)
-
-	test	$0x01, %ah
-	jnz	L(Exit9)
-	cmp	$9, %ebx
-	je	L(StrlcpyExit9)
-	test	$0x02, %ah
-	jnz	L(Exit10)
-	cmp	$10, %ebx
-	je	L(StrlcpyExit10)
-	test	$0x04, %ah
-	jnz	L(Exit11)
-	cmp	$11, %ebx
-	je	L(StrlcpyExit11)
-	test	$0x8, %ah
-	jnz	L(Exit12)
-	cmp	$12, %ebx
-	je	L(StrlcpyExit12)
-	test	$0x10, %ah
-	jnz	L(Exit13)
-	cmp	$13, %ebx
-	je	L(StrlcpyExit13)
-	test	$0x20, %ah
-	jnz	L(Exit14)
-	cmp	$14, %ebx
-	je	L(StrlcpyExit14)
-	test	$0x40, %ah
-	jnz	L(Exit15)
-	cmp	$15, %ebx
-	je	L(StrlcpyExit15)
-	test	$0x80, %ah
-	jnz	L(Exit16)
-	jmp	L(StrlcpyExit16)
-
-	CFI_PUSH(%esi)
-
-	.p2align 4
-L(CopyFrom1To16BytesCase2OrCase3):
-	test	%eax, %eax
-	jnz	L(CopyFrom1To16BytesCase2)
-
-	.p2align 4
-L(CopyFrom1To16BytesCase3):
-	add	$16, %ebx
-	add	%esi, %edx
-	add	%esi, %ecx
-
-	POP	(%esi)
-
-	cmp	$8, %ebx
-	ja	L(ExitHigh8Case3)
-
-L(CopyFrom1To16BytesLess8Case3):
-	cmp	$4, %ebx
-	ja	L(ExitHigh4Case3)
-
-	cmp	$1, %ebx
-	je	L(StrlcpyExit1)
-	cmp	$2, %ebx
-	je	L(StrlcpyExit2)
-	cmp	$3, %ebx
-	je	L(StrlcpyExit3)
-L(StrlcpyExit4):
-	movb	%bh, 3(%edx)
-	movw	(%ecx), %ax
-	movw	%ax, (%edx)
-	movb	2(%ecx), %al
-	movb	%al, 2(%edx)
-
-	lea	4(%ecx), %edx
-	mov	%edi, %ecx
-	POP	(%edi)
-	jmp	L(CalculateLengthOfSrc)
-        CFI_PUSH     (%edi)
-
-	.p2align 4
-L(ExitHigh4Case3):
-	cmp	$5, %ebx
-	je	L(StrlcpyExit5)
-	cmp	$6, %ebx
-	je	L(StrlcpyExit6)
-	cmp	$7, %ebx
-	je	L(StrlcpyExit7)
-L(StrlcpyExit8):
-	movb	%bh, 7(%edx)
-	movl	(%ecx), %eax
-	movl	%eax, (%edx)
-	movl	3(%ecx), %eax
-	movl	%eax, 3(%edx)
-
-	lea	8(%ecx), %edx
-	mov	%edi, %ecx
-	POP	(%edi)
-	jmp	L(CalculateLengthOfSrc)
-        CFI_PUSH     (%edi)
-
-	.p2align 4
-L(ExitHigh8Case3):
-	cmp	$12, %ebx
-	ja	L(ExitHigh12Case3)
-
-	cmp	$9, %ebx
-	je	L(StrlcpyExit9)
-	cmp	$10, %ebx
-	je	L(StrlcpyExit10)
-	cmp	$11, %ebx
-	je	L(StrlcpyExit11)
-L(StrlcpyExit12):
-	movb	%bh, 11(%edx)
-	movlpd	(%ecx), %xmm0
-	movlpd	%xmm0, (%edx)
-	movl	7(%ecx), %eax
-	movl	%eax, 7(%edx)
-
-	lea	12(%ecx), %edx
-	mov	%edi, %ecx
-	POP	(%edi)
-	jmp	L(CalculateLengthOfSrc)
-        CFI_PUSH     (%edi)
-
-	.p2align 4
-L(ExitHigh12Case3):
-	cmp	$13, %ebx
-	je	L(StrlcpyExit13)
-	cmp	$14, %ebx
-	je	L(StrlcpyExit14)
-	cmp	$15, %ebx
-	je	L(StrlcpyExit15)
-L(StrlcpyExit16):
-	movb	%bh, 15(%edx)
-	movlpd	(%ecx), %xmm0
-	movlpd	%xmm0, (%edx)
-	movlpd	7(%ecx), %xmm0
-	movlpd	%xmm0, 7(%edx)
-
-	lea	16(%ecx), %edx
-	mov	%edi, %ecx
-	POP	(%edi)
-	jmp	L(CalculateLengthOfSrc)
-        CFI_PUSH     (%edi)
-
-	.p2align 4
-L(StrlcpyExit1):
-	movb	%bh, (%edx)
-
-	lea	1(%ecx), %edx
-	mov	%edi, %ecx
-	POP	(%edi)
-	jmp	L(CalculateLengthOfSrc)
-        CFI_PUSH     (%edi)
-
-	.p2align 4
-L(Exit1):
-	movb	(%ecx), %al
-	movb	%al, (%edx)
-
-	mov	%ecx, %eax
-	sub	%edi, %eax
-	RETURN1
-
-	.p2align 4
-L(StrlcpyExit2):
-	movb	%bh, 1(%edx)
-	movb	(%ecx), %al
-	movb	%al, (%edx)
-
-	lea	2(%ecx), %edx
-	mov	%edi, %ecx
-	POP	(%edi)
-	jmp	L(CalculateLengthOfSrc)
-        CFI_PUSH     (%edi)
-
-	.p2align 4
-L(Exit2):
-	movw	(%ecx), %ax
-	movw	%ax, (%edx)
-	movl	%edi, %eax
-
-	lea	1(%ecx), %eax
-	sub	%edi, %eax
-	RETURN1
-
-	.p2align 4
-L(StrlcpyExit3):
-	movb	%bh, 2(%edx)
-	movw	(%ecx), %ax
-	movw	%ax, (%edx)
-
-	lea	3(%ecx), %edx
-	mov	%edi, %ecx
-	POP	(%edi)
-	jmp	L(CalculateLengthOfSrc)
-        CFI_PUSH     (%edi)
-
-	.p2align 4
-L(Exit3):
-	movw	(%ecx), %ax
-	movw	%ax, (%edx)
-	movb	2(%ecx), %al
-	movb	%al, 2(%edx)
-
-	lea	2(%ecx), %eax
-	sub	%edi, %eax
-	RETURN1
-
-	.p2align 4
-L(StrlcpyExit5):
-	movb	%bh, 4(%edx)
-	movl	(%ecx), %eax
-	movl	%eax, (%edx)
-	movl	%edi, %eax
-
-	lea	5(%ecx), %edx
-	mov	%edi, %ecx
-	POP	(%edi)
-	jmp	L(CalculateLengthOfSrc)
-        CFI_PUSH     (%edi)
-
-	.p2align 4
-L(Exit5):
-	movl	(%ecx), %eax
-	movl	%eax, (%edx)
-	movb	4(%ecx), %al
-	movb	%al, 4(%edx)
-
-	lea	4(%ecx), %eax
-	sub	%edi, %eax
-	RETURN1
-
-	.p2align 4
-L(StrlcpyExit6):
-	movb	%bh, 5(%edx)
-	movl	(%ecx), %eax
-	movl	%eax, (%edx)
-	movb	4(%ecx), %al
-	movb	%al, 4(%edx)
-
-	lea	6(%ecx), %edx
-	mov	%edi, %ecx
-	POP	(%edi)
-	jmp	L(CalculateLengthOfSrc)
-        CFI_PUSH     (%edi)
-
-	.p2align 4
-L(Exit6):
-	movl	(%ecx), %eax
-	movl	%eax, (%edx)
-	movw	4(%ecx), %ax
-	movw	%ax, 4(%edx)
-
-	lea	5(%ecx), %eax
-	sub	%edi, %eax
-	RETURN1
-
-	.p2align 4
-L(StrlcpyExit7):
-	movb	%bh, 6(%edx)
-	movl	(%ecx), %eax
-	movl	%eax, (%edx)
-	movw	4(%ecx), %ax
-	movw	%ax, 4(%edx)
-
-	lea	7(%ecx), %edx
-	mov	%edi, %ecx
-	POP	(%edi)
-	jmp	L(CalculateLengthOfSrc)
-        CFI_PUSH     (%edi)
-
-	.p2align 4
-L(Exit7):
-	movl	(%ecx), %eax
-	movl	%eax, (%edx)
-	movl	3(%ecx), %eax
-	movl	%eax, 3(%edx)
-
-	lea	6(%ecx), %eax
-	sub	%edi, %eax
-	RETURN1
-
-	.p2align 4
-L(StrlcpyExit9):
-	movb	%bh, 8(%edx)
-	movlpd	(%ecx), %xmm0
-	movlpd	%xmm0, (%edx)
-
-	lea	9(%ecx), %edx
-	mov	%edi, %ecx
-	POP	(%edi)
-	jmp	L(CalculateLengthOfSrc)
-        CFI_PUSH     (%edi)
-
-	.p2align 4
-L(Exit9):
-	movlpd	(%ecx), %xmm0
-	movlpd	%xmm0, (%edx)
-	movb	8(%ecx), %al
-	movb	%al, 8(%edx)
-
-	lea	8(%ecx), %eax
-	sub	%edi, %eax
-	RETURN1
-
-	.p2align 4
-L(StrlcpyExit10):
-	movb	%bh, 9(%edx)
-	movlpd	(%ecx), %xmm0
-	movlpd	%xmm0, (%edx)
-	movb	8(%ecx), %al
-	movb	%al, 8(%edx)
-
-	lea	10(%ecx), %edx
-	mov	%edi, %ecx
-	POP	(%edi)
-	jmp	L(CalculateLengthOfSrc)
-        CFI_PUSH     (%edi)
-
-	.p2align 4
-L(Exit10):
-	movlpd	(%ecx), %xmm0
-	movlpd	%xmm0, (%edx)
-	movw	8(%ecx), %ax
-	movw	%ax, 8(%edx)
-
-	lea	9(%ecx), %eax
-	sub	%edi, %eax
-	RETURN1
-
-	.p2align 4
-L(StrlcpyExit11):
-	movb	%bh, 10(%edx)
-	movlpd	(%ecx), %xmm0
-	movlpd	%xmm0, (%edx)
-	movw	8(%ecx), %ax
-	movw	%ax, 8(%edx)
-
-	lea	11(%ecx), %edx
-	mov	%edi, %ecx
-	POP	(%edi)
-	jmp	L(CalculateLengthOfSrc)
-        CFI_PUSH     (%edi)
-
-	.p2align 4
-L(Exit11):
-	movlpd	(%ecx), %xmm0
-	movlpd	%xmm0, (%edx)
-	movl	7(%ecx), %eax
-	movl	%eax, 7(%edx)
-
-	lea	10(%ecx), %eax
-	sub	%edi, %eax
-	RETURN1
-
-	.p2align 4
-L(StrlcpyExit13):
-	movb	%bh, 12(%edx)
-	movlpd	(%ecx), %xmm0
-	movlpd	%xmm0, (%edx)
-	movl	8(%ecx), %eax
-	movl	%eax, 8(%edx)
-
-	lea	13(%ecx), %edx
-	mov	%edi, %ecx
-	POP	(%edi)
-	jmp	L(CalculateLengthOfSrc)
-        CFI_PUSH     (%edi)
-
-	.p2align 4
-L(Exit13):
-	movlpd	(%ecx), %xmm0
-	movlpd	%xmm0, (%edx)
-	movlpd	5(%ecx), %xmm0
-	movlpd	%xmm0, 5(%edx)
-
-	lea	12(%ecx), %eax
-	sub	%edi, %eax
-	RETURN1
-
-	.p2align 4
-L(StrlcpyExit14):
-	movb	%bh, 13(%edx)
-	movlpd	(%ecx), %xmm0
-	movlpd	%xmm0, (%edx)
-	movlpd	5(%ecx), %xmm0
-	movlpd	%xmm0, 5(%edx)
-
-	lea	14(%ecx), %edx
-	mov	%edi, %ecx
-	POP	(%edi)
-	jmp	L(CalculateLengthOfSrc)
-        CFI_PUSH     (%edi)
-
-	.p2align 4
-L(Exit14):
-	movlpd	(%ecx), %xmm0
-	movlpd	%xmm0, (%edx)
-	movlpd	6(%ecx), %xmm0
-	movlpd	%xmm0, 6(%edx)
-
-	lea	13(%ecx), %eax
-	sub	%edi, %eax
-	RETURN1
-
-	.p2align 4
-L(StrlcpyExit15):
-	movb	%bh, 14(%edx)
-	movlpd	(%ecx), %xmm0
-	movlpd	%xmm0, (%edx)
-	movlpd	6(%ecx), %xmm0
-	movlpd	%xmm0, 6(%edx)
-
-	lea	15(%ecx), %edx
-	mov	%edi, %ecx
-	POP	(%edi)
-	jmp	L(CalculateLengthOfSrc)
-        CFI_PUSH     (%edi)
-
-	.p2align 4
-L(Exit15):
-	movlpd	(%ecx), %xmm0
-	movlpd	%xmm0, (%edx)
-	movlpd	7(%ecx), %xmm0
-	movlpd	%xmm0, 7(%edx)
-
-	lea	14(%ecx), %eax
-	sub	%edi, %eax
-	RETURN1
-
-	.p2align 4
-L(StrncpyExit15Bytes):
-	cmp	$12, %ebx
-	ja	L(StrncpyExit15Bytes1)
-
-	cmpb	$0, 8(%ecx)
-	jz	L(Exit9)
-	cmp	$9, %ebx
-	je	L(StrlcpyExit9)
-
-	cmpb	$0, 9(%ecx)
-	jz	L(Exit10)
-	cmp	$10, %ebx
-	je	L(StrlcpyExit10)
-
-	cmpb	$0, 10(%ecx)
-	jz	L(Exit11)
-	cmp	$11, %ebx
-	je	L(StrlcpyExit11)
-
-	cmpb	$0, 11(%ecx)
-	jz	L(Exit12)
-	jmp	L(StrlcpyExit12)
-
-	.p2align 4
-L(StrncpyExit15Bytes1):
-	cmpb	$0, 8(%ecx)
-	jz	L(Exit9)
-	cmpb	$0, 9(%ecx)
-	jz	L(Exit10)
-	cmpb	$0, 10(%ecx)
-	jz	L(Exit11)
-	cmpb	$0, 11(%ecx)
-	jz	L(Exit12)
-
-	cmpb	$0, 12(%ecx)
-	jz	L(Exit13)
-	cmp	$13, %ebx
-	je	L(StrlcpyExit13)
-
-	cmpb	$0, 13(%ecx)
-	jz	L(Exit14)
-	cmp	$14, %ebx
-	je	L(StrlcpyExit14)
-
-	cmpb	$0, 14(%ecx)
-	jz	L(Exit15)
-	jmp	L(StrlcpyExit15)
-
-	.p2align 4
-L(StrncpyExit8Bytes):
-	cmp	$4, %ebx
-	ja	L(StrncpyExit8Bytes1)
-
-	cmpb	$0, (%ecx)
-	jz	L(Exit1)
-	cmp	$1, %ebx
-	je	L(StrlcpyExit1)
-
-	cmpb	$0, 1(%ecx)
-	jz	L(Exit2)
-	cmp	$2, %ebx
-	je	L(StrlcpyExit2)
-
-	cmpb	$0, 2(%ecx)
-	jz	L(Exit3)
-	cmp	$3, %ebx
-	je	L(StrlcpyExit3)
-
-	cmpb	$0, 3(%ecx)
-	jz	L(Exit4)
-	jmp	L(StrlcpyExit4)
-
-	.p2align 4
-L(StrncpyExit8Bytes1):
-	cmpb	$0, (%ecx)
-	jz	L(Exit1)
-	cmpb	$0, 1(%ecx)
-	jz	L(Exit2)
-	cmpb	$0, 2(%ecx)
-	jz	L(Exit3)
-	cmpb	$0, 3(%ecx)
-	jz	L(Exit4)
-
-	cmpb	$0, 4(%ecx)
-	jz	L(Exit5)
-	cmp	$5, %ebx
-	je	L(StrlcpyExit5)
-
-	cmpb	$0, 5(%ecx)
-	jz	L(Exit6)
-	cmp	$6, %ebx
-	je	L(StrlcpyExit6)
-
-	cmpb	$0, 6(%ecx)
-	jz	L(Exit7)
-	cmp	$7, %ebx
-	je	L(StrlcpyExit7)
-
-	cmpb	$0, 7(%ecx)
-	jz	L(Exit8)
-	jmp	L(StrlcpyExit8)
-
-	CFI_POP	(%edi)
-
-
-	.p2align 4
-L(Prolog_return_start_len):
-	movl	LEN(%esp), %ebx
-        movl	SRC(%esp), %ecx
-L(CalculateLengthOfSrcProlog):
-	mov	%ecx, %edx
-	sub	%ebx, %ecx
-
-	.p2align 4
-L(CalculateLengthOfSrc):
-	cmpb	$0, (%edx)
-	jz	L(exit_tail0)
-	cmpb	$0, 1(%edx)
-	jz	L(exit_tail1)
-	cmpb	$0, 2(%edx)
-	jz	L(exit_tail2)
-	cmpb	$0, 3(%edx)
-	jz	L(exit_tail3)
-
-	cmpb	$0, 4(%edx)
-	jz	L(exit_tail4)
-	cmpb	$0, 5(%edx)
-	jz	L(exit_tail5)
-	cmpb	$0, 6(%edx)
-	jz	L(exit_tail6)
-	cmpb	$0, 7(%edx)
-	jz	L(exit_tail7)
-
-	cmpb	$0, 8(%edx)
-	jz	L(exit_tail8)
-	cmpb	$0, 9(%edx)
-	jz	L(exit_tail9)
-	cmpb	$0, 10(%edx)
-	jz	L(exit_tail10)
-	cmpb	$0, 11(%edx)
-	jz	L(exit_tail11)
-
-	cmpb	$0, 12(%edx)
-	jz	L(exit_tail12)
-	cmpb	$0, 13(%edx)
-	jz	L(exit_tail13)
-	cmpb	$0, 14(%edx)
-	jz	L(exit_tail14)
-	cmpb	$0, 15(%edx)
-	jz	L(exit_tail15)
-
-	pxor	%xmm0, %xmm0
-	lea	16(%edx), %eax
-	add	$16, %ecx
-	and	$-16, %eax
-
-	pcmpeqb	(%eax), %xmm0
-	pmovmskb %xmm0, %edx
-	pxor	%xmm1, %xmm1
-	lea	16(%eax), %eax
-	test	%edx, %edx
-	jnz	L(exit)
-
-	pcmpeqb	(%eax), %xmm1
-	pmovmskb %xmm1, %edx
-	pxor	%xmm2, %xmm2
-	lea	16(%eax), %eax
-	test	%edx, %edx
-	jnz	L(exit)
-
-	pcmpeqb	(%eax), %xmm2
-	pmovmskb %xmm2, %edx
-	pxor	%xmm3, %xmm3
-	lea	16(%eax), %eax
-	test	%edx, %edx
-	jnz	L(exit)
-
-	pcmpeqb	(%eax), %xmm3
-	pmovmskb %xmm3, %edx
-	lea	16(%eax), %eax
-	test	%edx, %edx
-	jnz	L(exit)
-
-	pcmpeqb	(%eax), %xmm0
-	pmovmskb %xmm0, %edx
-	lea	16(%eax), %eax
-	test	%edx, %edx
-	jnz	L(exit)
-
-	pcmpeqb	(%eax), %xmm1
-	pmovmskb %xmm1, %edx
-	lea	16(%eax), %eax
-	test	%edx, %edx
-	jnz	L(exit)
-
-	pcmpeqb	(%eax), %xmm2
-	pmovmskb %xmm2, %edx
-	lea	16(%eax), %eax
-	test	%edx, %edx
-	jnz	L(exit)
-
-	pcmpeqb	(%eax), %xmm3
-	pmovmskb %xmm3, %edx
-	lea	16(%eax), %eax
-	test	%edx, %edx
-	jnz	L(exit)
-
-	pcmpeqb	(%eax), %xmm0
-	pmovmskb %xmm0, %edx
-	lea	16(%eax), %eax
-	test	%edx, %edx
-	jnz	L(exit)
-
-	pcmpeqb	(%eax), %xmm1
-	pmovmskb %xmm1, %edx
-	lea	16(%eax), %eax
-	test	%edx, %edx
-	jnz	L(exit)
-
-	pcmpeqb	(%eax), %xmm2
-	pmovmskb %xmm2, %edx
-	lea	16(%eax), %eax
-	test	%edx, %edx
-	jnz	L(exit)
-
-	pcmpeqb	(%eax), %xmm3
-	pmovmskb %xmm3, %edx
-	lea	16(%eax), %eax
-	test	%edx, %edx
-	jnz	L(exit)
-
-	pcmpeqb	(%eax), %xmm0
-	pmovmskb %xmm0, %edx
-	lea	16(%eax), %eax
-	test	%edx, %edx
-	jnz	L(exit)
-
-	pcmpeqb	(%eax), %xmm1
-	pmovmskb %xmm1, %edx
-	lea	16(%eax), %eax
-	test	%edx, %edx
-	jnz	L(exit)
-
-	pcmpeqb	(%eax), %xmm2
-	pmovmskb %xmm2, %edx
-	lea	16(%eax), %eax
-	test	%edx, %edx
-	jnz	L(exit)
-
-	pcmpeqb	(%eax), %xmm3
-	pmovmskb %xmm3, %edx
-	lea	16(%eax), %eax
-	test	%edx, %edx
-	jnz	L(exit)
-
-	and	$-0x40, %eax
-
-	.p2align 4
-L(aligned_64_loop):
-	movaps	(%eax), %xmm0
-	movaps	16(%eax), %xmm1
-	movaps	32(%eax), %xmm2
-	movaps	48(%eax), %xmm6
-	pminub	%xmm1, %xmm0
-	pminub	%xmm6, %xmm2
-	pminub	%xmm0, %xmm2
-	pcmpeqb	%xmm3, %xmm2
-	pmovmskb %xmm2, %edx
-	lea	64(%eax), %eax
-	test	%edx, %edx
-	jz	L(aligned_64_loop)
-
-	pcmpeqb	-64(%eax), %xmm3
-	pmovmskb %xmm3, %edx
-	lea	48(%ecx), %ecx
-	test	%edx, %edx
-	jnz	L(exit)
-
-	pcmpeqb	%xmm1, %xmm3
-	pmovmskb %xmm3, %edx
-	lea	-16(%ecx), %ecx
-	test	%edx, %edx
-	jnz	L(exit)
-
-	pcmpeqb	-32(%eax), %xmm3
-	pmovmskb %xmm3, %edx
-	lea	-16(%ecx), %ecx
-	test	%edx, %edx
-	jnz	L(exit)
-
-	pcmpeqb	%xmm6, %xmm3
-	pmovmskb %xmm3, %edx
-	lea	-16(%ecx), %ecx
-
-	.p2align 4
-L(exit):
-	sub	%ecx, %eax
-	test	%dl, %dl
-	jz	L(exit_more_8)
-
-	mov	%dl, %cl
-	and	$15, %cl
-	jz	L(exit_more_4)
-	test	$0x01, %dl
-	jnz	L(exit_0)
-	test	$0x02, %dl
-	jnz	L(exit_1)
-	test	$0x04, %dl
-	jnz	L(exit_2)
-	add	$3, %eax
-	RETURN
-
-	.p2align 4
-L(exit_more_4):
-	test	$0x10, %dl
-	jnz	L(exit_4)
-	test	$0x20, %dl
-	jnz	L(exit_5)
-	test	$0x40, %dl
-	jnz	L(exit_6)
-	add	$7, %eax
-	RETURN
-
-	.p2align 4
-L(exit_more_8):
-	mov	%dh, %ch
-	and	$15, %ch
-	jz	L(exit_more_12)
-	test	$0x01, %dh
-	jnz	L(exit_8)
-	test	$0x02, %dh
-	jnz	L(exit_9)
-	test	$0x04, %dh
-	jnz	L(exit_10)
-	add	$11, %eax
-	RETURN
-
-	.p2align 4
-L(exit_more_12):
-	test	$0x10, %dh
-	jnz	L(exit_12)
-	test	$0x20, %dh
-	jnz	L(exit_13)
-	test	$0x40, %dh
-	jnz	L(exit_14)
-	add	$15, %eax
-L(exit_0):
-	RETURN
-
-	.p2align 4
-L(exit_1):
-	add	$1, %eax
-	RETURN
-
-L(exit_2):
-	add	$2, %eax
-	RETURN
-
-L(exit_3):
-	add	$3, %eax
-	RETURN
-
-L(exit_4):
-	add	$4, %eax
-	RETURN
-
-L(exit_5):
-	add	$5, %eax
-	RETURN
-
-L(exit_6):
-	add	$6, %eax
-	RETURN
-
-L(exit_7):
-	add	$7, %eax
-	RETURN
-
-L(exit_8):
-	add	$8, %eax
-	RETURN
-
-L(exit_9):
-	add	$9, %eax
-	RETURN
-
-L(exit_10):
-	add	$10, %eax
-	RETURN
-
-L(exit_11):
-	add	$11, %eax
-	RETURN
-
-L(exit_12):
-	add	$12, %eax
-	RETURN
-
-L(exit_13):
-	add	$13, %eax
-	RETURN
-
-L(exit_14):
-	add	$14, %eax
-	RETURN
-
-L(exit_15):
-	add	$15, %eax
-	RETURN
-
-L(exit_tail0):
-	mov	%edx, %eax
-	sub	%ecx, %eax
-	RETURN
-
-	.p2align 4
-L(exit_tail1):
-	lea	1(%edx), %eax
-	sub	%ecx, %eax
-	RETURN
-
-L(exit_tail2):
-	lea	2(%edx), %eax
-	sub	%ecx, %eax
-	RETURN
-
-L(exit_tail3):
-	lea	3(%edx), %eax
-	sub	%ecx, %eax
-	RETURN
-
-L(exit_tail4):
-	lea	4(%edx), %eax
-	sub	%ecx, %eax
-	RETURN
-
-L(exit_tail5):
-	lea	5(%edx), %eax
-	sub	%ecx, %eax
-	RETURN
-
-L(exit_tail6):
-	lea	6(%edx), %eax
-	sub	%ecx, %eax
-	RETURN
-
-L(exit_tail7):
-	lea	7(%edx), %eax
-	sub	%ecx, %eax
-	RETURN
-
-L(exit_tail8):
-	lea	8(%edx), %eax
-	sub	%ecx, %eax
-	RETURN
-
-L(exit_tail9):
-	lea	9(%edx), %eax
-	sub	%ecx, %eax
-	RETURN
-
-L(exit_tail10):
-	lea	10(%edx), %eax
-	sub	%ecx, %eax
-	RETURN
-
-L(exit_tail11):
-	lea	11(%edx), %eax
-	sub	%ecx, %eax
-	RETURN
-
-L(exit_tail12):
-	lea	12(%edx), %eax
-	sub	%ecx, %eax
-	RETURN
-
-L(exit_tail13):
-	lea	13(%edx), %eax
-	sub	%ecx, %eax
-	RETURN
-
-L(exit_tail14):
-	lea	14(%edx), %eax
-	sub	%ecx, %eax
-	RETURN
-
-L(exit_tail15):
-	lea	15(%edx), %eax
-	sub	%ecx, %eax
-	RETURN
-
-END (strlcat)
diff --git a/libc/arch-x86/string/ssse3-strlcpy-atom.S b/libc/arch-x86/string/ssse3-strlcpy-atom.S
deleted file mode 100644
index 1671da6..0000000
--- a/libc/arch-x86/string/ssse3-strlcpy-atom.S
+++ /dev/null
@@ -1,1403 +0,0 @@
-/*
-Copyright (c) 2011, Intel Corporation
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
-    * Redistributions of source code must retain the above copyright notice,
-    * this list of conditions and the following disclaimer.
-
-    * Redistributions in binary form must reproduce the above copyright notice,
-    * this list of conditions and the following disclaimer in the documentation
-    * and/or other materials provided with the distribution.
-
-    * Neither the name of Intel Corporation nor the names of its contributors
-    * may be used to endorse or promote products derived from this software
-    * without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
-ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-
-#define USE_AS_STRNCPY
-#define STRCPY strlcpy_ssse3
-#define STRLEN strlcpy_ssse3
-#define USE_AS_STRLCPY
-#include "ssse3-strcpy-atom.S"
-
-	.p2align 4
-L(CopyFrom1To16Bytes):
-	add	%esi, %edx
-	add	%esi, %ecx
-
-	POP	(%esi)
-	test	%al, %al
-	jz	L(ExitHigh8)
-
-L(CopyFrom1To16BytesLess8):
-	mov	%al, %ah
-	and	$15, %ah
-	jz	L(ExitHigh4)
-
-	test	$0x01, %al
-	jnz	L(Exit1)
-	test	$0x02, %al
-	jnz	L(Exit2)
-	test	$0x04, %al
-	jnz	L(Exit3)
-L(Exit4):
-	movl	(%ecx), %eax
-	movl	%eax, (%edx)
-
-	lea	3(%ecx), %eax
-	sub	%edi, %eax
-	RETURN1
-
-	.p2align 4
-L(ExitHigh4):
-	test	$0x10, %al
-	jnz	L(Exit5)
-	test	$0x20, %al
-	jnz	L(Exit6)
-	test	$0x40, %al
-	jnz	L(Exit7)
-L(Exit8):
-	movlpd	(%ecx), %xmm0
-	movlpd	%xmm0, (%edx)
-
-	lea	7(%ecx), %eax
-	sub	%edi, %eax
-	RETURN1
-
-	.p2align 4
-L(ExitHigh8):
-	mov	%ah, %al
-	and	$15, %al
-	jz	L(ExitHigh12)
-
-	test	$0x01, %ah
-	jnz	L(Exit9)
-	test	$0x02, %ah
-	jnz	L(Exit10)
-	test	$0x04, %ah
-	jnz	L(Exit11)
-L(Exit12):
-	movlpd	(%ecx), %xmm0
-	movlpd	%xmm0, (%edx)
-	movl	8(%ecx), %eax
-	movl	%eax, 8(%edx)
-
-	lea	11(%ecx), %eax
-	sub	%edi, %eax
-	RETURN1
-
-	.p2align 4
-L(ExitHigh12):
-	test	$0x10, %ah
-	jnz	L(Exit13)
-	test	$0x20, %ah
-	jnz	L(Exit14)
-	test	$0x40, %ah
-	jnz	L(Exit15)
-L(Exit16):
-	movlpd	(%ecx), %xmm0
-	movlpd	8(%ecx), %xmm1
-	movlpd	%xmm0, (%edx)
-	movlpd	%xmm1, 8(%edx)
-
-	lea	15(%ecx), %eax
-	sub	%edi, %eax
-	RETURN1
-
-	CFI_PUSH(%esi)
-
-	.p2align 4
-L(CopyFrom1To16BytesCase2):
-	add	$16, %ebx
-	add	%esi, %ecx
-        add     %esi, %edx
-
-	POP	(%esi)
-
-        test    %al, %al
-        jz      L(ExitHighCase2)
-
-        cmp     $8, %ebx
-        ja      L(CopyFrom1To16BytesLess8)
-
-	test	$0x01, %al
-	jnz	L(Exit1)
-	cmp	$1, %ebx
-	je	L(StrlcpyExit1)
-	test	$0x02, %al
-	jnz	L(Exit2)
-	cmp	$2, %ebx
-	je	L(StrlcpyExit2)
-	test	$0x04, %al
-	jnz	L(Exit3)
-	cmp	$3, %ebx
-	je	L(StrlcpyExit3)
-	test	$0x08, %al
-	jnz	L(Exit4)
-	cmp	$4, %ebx
-	je	L(StrlcpyExit4)
-	test	$0x10, %al
-	jnz	L(Exit5)
-	cmp	$5, %ebx
-	je	L(StrlcpyExit5)
-	test	$0x20, %al
-	jnz	L(Exit6)
-	cmp	$6, %ebx
-	je	L(StrlcpyExit6)
-	test	$0x40, %al
-	jnz	L(Exit7)
-	cmp	$7, %ebx
-	je	L(StrlcpyExit7)
-	test	$0x80, %al
-	jnz	L(Exit8)
-	jmp	L(StrlcpyExit8)
-
-	.p2align 4
-L(ExitHighCase2):
-        cmp     $8, %ebx
-        jbe      L(CopyFrom1To16BytesLess8Case3)
-
-	test	$0x01, %ah
-	jnz	L(Exit9)
-	cmp	$9, %ebx
-	je	L(StrlcpyExit9)
-	test	$0x02, %ah
-	jnz	L(Exit10)
-	cmp	$10, %ebx
-	je	L(StrlcpyExit10)
-	test	$0x04, %ah
-	jnz	L(Exit11)
-	cmp	$11, %ebx
-	je	L(StrlcpyExit11)
-	test	$0x8, %ah
-	jnz	L(Exit12)
-	cmp	$12, %ebx
-	je	L(StrlcpyExit12)
-	test	$0x10, %ah
-	jnz	L(Exit13)
-	cmp	$13, %ebx
-	je	L(StrlcpyExit13)
-	test	$0x20, %ah
-	jnz	L(Exit14)
-	cmp	$14, %ebx
-	je	L(StrlcpyExit14)
-	test	$0x40, %ah
-	jnz	L(Exit15)
-	cmp	$15, %ebx
-	je	L(StrlcpyExit15)
-	test	$0x80, %ah
-	jnz	L(Exit16)
-	jmp	L(StrlcpyExit16)
-
-	CFI_PUSH(%esi)
-
-	.p2align 4
-L(CopyFrom1To16BytesCase2OrCase3):
-	test	%eax, %eax
-	jnz	L(CopyFrom1To16BytesCase2)
-
-	.p2align 4
-L(CopyFrom1To16BytesCase3):
-	add	$16, %ebx
-	add	%esi, %edx
-	add	%esi, %ecx
-
-	POP	(%esi)
-
-	cmp	$8, %ebx
-	ja	L(ExitHigh8Case3)
-
-L(CopyFrom1To16BytesLess8Case3):
-	cmp	$4, %ebx
-	ja	L(ExitHigh4Case3)
-
-	cmp	$1, %ebx
-	je	L(StrlcpyExit1)
-	cmp	$2, %ebx
-	je	L(StrlcpyExit2)
-	cmp	$3, %ebx
-	je	L(StrlcpyExit3)
-L(StrlcpyExit4):
-	movb	%bh, 3(%edx)
-	movw	(%ecx), %ax
-	movw	%ax, (%edx)
-	movb	2(%ecx), %al
-	movb	%al, 2(%edx)
-
-	lea	4(%ecx), %edx
-	mov	%edi, %ecx
-        POP     (%edi)
-	jmp	L(CalculateLengthOfSrc)
-        CFI_PUSH     (%edi)
-
-	.p2align 4
-L(ExitHigh4Case3):
-	cmp	$5, %ebx
-	je	L(StrlcpyExit5)
-	cmp	$6, %ebx
-	je	L(StrlcpyExit6)
-	cmp	$7, %ebx
-	je	L(StrlcpyExit7)
-L(StrlcpyExit8):
-	movb	%bh, 7(%edx)
-	movl	(%ecx), %eax
-	movl	%eax, (%edx)
-	movl	3(%ecx), %eax
-	movl	%eax, 3(%edx)
-
-	lea	8(%ecx), %edx
-	mov	%edi, %ecx
-        POP     (%edi)
-	jmp	L(CalculateLengthOfSrc)
-        CFI_PUSH     (%edi)
-
-	.p2align 4
-L(ExitHigh8Case3):
-	cmp	$12, %ebx
-	ja	L(ExitHigh12Case3)
-
-	cmp	$9, %ebx
-	je	L(StrlcpyExit9)
-	cmp	$10, %ebx
-	je	L(StrlcpyExit10)
-	cmp	$11, %ebx
-	je	L(StrlcpyExit11)
-L(StrlcpyExit12):
-	movb	%bh, 11(%edx)
-	movlpd	(%ecx), %xmm0
-	movlpd	%xmm0, (%edx)
-	movl	7(%ecx), %eax
-	movl	%eax, 7(%edx)
-
-	lea	12(%ecx), %edx
-	mov	%edi, %ecx
-        POP     (%edi)
-	jmp	L(CalculateLengthOfSrc)
-        CFI_PUSH     (%edi)
-
-	.p2align 4
-L(ExitHigh12Case3):
-	cmp	$13, %ebx
-	je	L(StrlcpyExit13)
-	cmp	$14, %ebx
-	je	L(StrlcpyExit14)
-	cmp	$15, %ebx
-	je	L(StrlcpyExit15)
-L(StrlcpyExit16):
-	movb	%bh, 15(%edx)
-	movlpd	(%ecx), %xmm0
-	movlpd	%xmm0, (%edx)
-	movlpd	7(%ecx), %xmm0
-	movlpd	%xmm0, 7(%edx)
-
-	lea	16(%ecx), %edx
-	mov	%edi, %ecx
-        POP     (%edi)
-	jmp	L(CalculateLengthOfSrc)
-        CFI_PUSH     (%edi)
-
-	.p2align 4
-L(StrlcpyExit1):
-	movb	%bh, (%edx)
-
-	lea	1(%ecx), %edx
-	mov	%edi, %ecx
-        POP     (%edi)
-	jmp	L(CalculateLengthOfSrc)
-        CFI_PUSH     (%edi)
-
-	.p2align 4
-L(Exit1):
-	movb	(%ecx), %al
-	movb	%al, (%edx)
-
-	mov	%ecx, %eax
-	sub	%edi, %eax
-	RETURN1
-
-	.p2align 4
-L(StrlcpyExit2):
-	movb	%bh, 1(%edx)
-	movb	(%ecx), %al
-	movb	%al, (%edx)
-
-	lea	2(%ecx), %edx
-	mov	%edi, %ecx
-        POP     (%edi)
-	jmp	L(CalculateLengthOfSrc)
-        CFI_PUSH     (%edi)
-
-	.p2align 4
-L(Exit2):
-	movw	(%ecx), %ax
-	movw	%ax, (%edx)
-	movl	%edi, %eax
-
-	lea	1(%ecx), %eax
-	sub	%edi, %eax
-	RETURN1
-
-	.p2align 4
-L(StrlcpyExit3):
-	movb	%bh, 2(%edx)
-	movw	(%ecx), %ax
-	movw	%ax, (%edx)
-
-	lea	3(%ecx), %edx
-	mov	%edi, %ecx
-        POP     (%edi)
-	jmp	L(CalculateLengthOfSrc)
-        CFI_PUSH     (%edi)
-
-	.p2align 4
-L(Exit3):
-	movw	(%ecx), %ax
-	movw	%ax, (%edx)
-	movb	2(%ecx), %al
-	movb	%al, 2(%edx)
-
-	lea	2(%ecx), %eax
-	sub	%edi, %eax
-	RETURN1
-
-	.p2align 4
-L(StrlcpyExit5):
-	movb	%bh, 4(%edx)
-	movl	(%ecx), %eax
-	movl	%eax, (%edx)
-	movl	%edi, %eax
-
-	lea	5(%ecx), %edx
-	mov	%edi, %ecx
-        POP     (%edi)
-	jmp	L(CalculateLengthOfSrc)
-        CFI_PUSH     (%edi)
-
-	.p2align 4
-L(Exit5):
-	movl	(%ecx), %eax
-	movl	%eax, (%edx)
-	movb	4(%ecx), %al
-	movb	%al, 4(%edx)
-
-	lea	4(%ecx), %eax
-	sub	%edi, %eax
-	RETURN1
-
-	.p2align 4
-L(StrlcpyExit6):
-	movb	%bh, 5(%edx)
-	movl	(%ecx), %eax
-	movl	%eax, (%edx)
-	movb	4(%ecx), %al
-	movb	%al, 4(%edx)
-
-	lea	6(%ecx), %edx
-	mov	%edi, %ecx
-        POP     (%edi)
-	jmp	L(CalculateLengthOfSrc)
-        CFI_PUSH     (%edi)
-
-	.p2align 4
-L(Exit6):
-	movl	(%ecx), %eax
-	movl	%eax, (%edx)
-	movw	4(%ecx), %ax
-	movw	%ax, 4(%edx)
-
-	lea	5(%ecx), %eax
-	sub	%edi, %eax
-	RETURN1
-
-	.p2align 4
-L(StrlcpyExit7):
-	movb	%bh, 6(%edx)
-	movl	(%ecx), %eax
-	movl	%eax, (%edx)
-	movw	4(%ecx), %ax
-	movw	%ax, 4(%edx)
-
-	lea	7(%ecx), %edx
-	mov	%edi, %ecx
-        POP     (%edi)
-	jmp	L(CalculateLengthOfSrc)
-        CFI_PUSH     (%edi)
-
-	.p2align 4
-L(Exit7):
-	movl	(%ecx), %eax
-	movl	%eax, (%edx)
-	movl	3(%ecx), %eax
-	movl	%eax, 3(%edx)
-
-	lea	6(%ecx), %eax
-	sub	%edi, %eax
-	RETURN1
-
-	.p2align 4
-L(StrlcpyExit9):
-	movb	%bh, 8(%edx)
-	movlpd	(%ecx), %xmm0
-	movlpd	%xmm0, (%edx)
-
-	lea	9(%ecx), %edx
-	mov	%edi, %ecx
-        POP     (%edi)
-	jmp	L(CalculateLengthOfSrc)
-        CFI_PUSH     (%edi)
-
-	.p2align 4
-L(Exit9):
-	movlpd	(%ecx), %xmm0
-	movlpd	%xmm0, (%edx)
-	movb	8(%ecx), %al
-	movb	%al, 8(%edx)
-
-	lea	8(%ecx), %eax
-	sub	%edi, %eax
-	RETURN1
-
-	.p2align 4
-L(StrlcpyExit10):
-	movb	%bh, 9(%edx)
-	movlpd	(%ecx), %xmm0
-	movlpd	%xmm0, (%edx)
-	movb	8(%ecx), %al
-	movb	%al, 8(%edx)
-
-	lea	10(%ecx), %edx
-	mov	%edi, %ecx
-        POP     (%edi)
-	jmp	L(CalculateLengthOfSrc)
-        CFI_PUSH     (%edi)
-
-	.p2align 4
-L(Exit10):
-	movlpd	(%ecx), %xmm0
-	movlpd	%xmm0, (%edx)
-	movw	8(%ecx), %ax
-	movw	%ax, 8(%edx)
-
-	lea	9(%ecx), %eax
-	sub	%edi, %eax
-	RETURN1
-
-	.p2align 4
-L(StrlcpyExit11):
-	movb	%bh, 10(%edx)
-	movlpd	(%ecx), %xmm0
-	movlpd	%xmm0, (%edx)
-	movw	8(%ecx), %ax
-	movw	%ax, 8(%edx)
-
-	lea	11(%ecx), %edx
-	mov	%edi, %ecx
-        POP     (%edi)
-	jmp	L(CalculateLengthOfSrc)
-        CFI_PUSH     (%edi)
-
-	.p2align 4
-L(Exit11):
-	movlpd	(%ecx), %xmm0
-	movlpd	%xmm0, (%edx)
-	movl	7(%ecx), %eax
-	movl	%eax, 7(%edx)
-
-	lea	10(%ecx), %eax
-	sub	%edi, %eax
-	RETURN1
-
-	.p2align 4
-L(StrlcpyExit13):
-	movb	%bh, 12(%edx)
-	movlpd	(%ecx), %xmm0
-	movlpd	%xmm0, (%edx)
-	movl	8(%ecx), %eax
-	movl	%eax, 8(%edx)
-
-	lea	13(%ecx), %edx
-	mov	%edi, %ecx
-        POP     (%edi)
-	jmp	L(CalculateLengthOfSrc)
-        CFI_PUSH     (%edi)
-
-	.p2align 4
-L(Exit13):
-	movlpd	(%ecx), %xmm0
-	movlpd	%xmm0, (%edx)
-	movlpd	5(%ecx), %xmm0
-	movlpd	%xmm0, 5(%edx)
-
-	lea	12(%ecx), %eax
-	sub	%edi, %eax
-	RETURN1
-
-	.p2align 4
-L(StrlcpyExit14):
-	movb	%bh, 13(%edx)
-	movlpd	(%ecx), %xmm0
-	movlpd	%xmm0, (%edx)
-	movlpd	5(%ecx), %xmm0
-	movlpd	%xmm0, 5(%edx)
-
-	lea	14(%ecx), %edx
-	mov	%edi, %ecx
-        POP     (%edi)
-	jmp	L(CalculateLengthOfSrc)
-        CFI_PUSH     (%edi)
-
-	.p2align 4
-L(Exit14):
-	movlpd	(%ecx), %xmm0
-	movlpd	%xmm0, (%edx)
-	movlpd	6(%ecx), %xmm0
-	movlpd	%xmm0, 6(%edx)
-
-	lea	13(%ecx), %eax
-	sub	%edi, %eax
-	RETURN1
-
-	.p2align 4
-L(StrlcpyExit15):
-	movb	%bh, 14(%edx)
-	movlpd	(%ecx), %xmm0
-	movlpd	%xmm0, (%edx)
-	movlpd	6(%ecx), %xmm0
-	movlpd	%xmm0, 6(%edx)
-
-	lea	15(%ecx), %edx
-	mov	%edi, %ecx
-        POP     (%edi)
-	jmp	L(CalculateLengthOfSrc)
-        CFI_PUSH     (%edi)
-
-	.p2align 4
-L(Exit15):
-	movlpd	(%ecx), %xmm0
-	movlpd	%xmm0, (%edx)
-	movlpd	7(%ecx), %xmm0
-	movlpd	%xmm0, 7(%edx)
-
-	lea	14(%ecx), %eax
-	sub	%edi, %eax
-	RETURN1
-
-        CFI_POP (%edi)
-
-	.p2align 4
-L(StrlcpyExit0):
-	movl	$0, %eax
-	RETURN
-
-	.p2align 4
-L(StrncpyExit15Bytes):
-	cmp	$12, %ebx
-	ja	L(StrncpyExit15Bytes1)
-
-	cmpb	$0, 8(%ecx)
-	jz	L(ExitTail9)
-	cmp	$9, %ebx
-	je	L(StrlcpyExitTail9)
-
-	cmpb	$0, 9(%ecx)
-	jz	L(ExitTail10)
-	cmp	$10, %ebx
-	je	L(StrlcpyExitTail10)
-
-	cmpb	$0, 10(%ecx)
-	jz	L(ExitTail11)
-	cmp	$11, %ebx
-	je	L(StrlcpyExitTail11)
-
-	cmpb	$0, 11(%ecx)
-	jz	L(ExitTail12)
-
-	movb	%bh, 11(%edx)
-	movlpd	(%ecx), %xmm0
-	movlpd	%xmm0, (%edx)
-	movl	7(%ecx), %eax
-	movl	%eax, 7(%edx)
-
-	lea	12(%ecx), %edx
-	jmp	L(CalculateLengthOfSrc)
-
-	.p2align 4
-L(StrncpyExit15Bytes1):
-	cmpb	$0, 8(%ecx)
-	jz	L(ExitTail9)
-	cmpb	$0, 9(%ecx)
-	jz	L(ExitTail10)
-	cmpb	$0, 10(%ecx)
-	jz	L(ExitTail11)
-	cmpb	$0, 11(%ecx)
-	jz	L(ExitTail12)
-
-	cmpb	$0, 12(%ecx)
-	jz	L(ExitTail13)
-	cmp	$13, %ebx
-	je	L(StrlcpyExitTail13)
-
-	cmpb	$0, 13(%ecx)
-	jz	L(ExitTail14)
-	cmp	$14, %ebx
-	je	L(StrlcpyExitTail14)
-
-	cmpb	$0, 14(%ecx)
-	jz	L(ExitTail15)
-
-	movb	%bh, 14(%edx)
-	movlpd	(%ecx), %xmm0
-	movlpd	%xmm0, (%edx)
-	movlpd	6(%ecx), %xmm0
-	movlpd	%xmm0, 6(%edx)
-
-	lea	15(%ecx), %edx
-	jmp	L(CalculateLengthOfSrc)
-
-	.p2align 4
-L(StrncpyExit8Bytes):
-	cmp	$4, %ebx
-	ja	L(StrncpyExit8Bytes1)
-
-	test	%ebx, %ebx
-	jz	L(StrlcpyExitTail0)
-
-	cmpb	$0, (%ecx)
-	jz	L(ExitTail1)
-	cmp	$1, %ebx
-	je	L(StrlcpyExitTail1)
-
-	cmpb	$0, 1(%ecx)
-	jz	L(ExitTail2)
-	cmp	$2, %ebx
-	je	L(StrlcpyExitTail2)
-
-	cmpb	$0, 2(%ecx)
-	jz	L(ExitTail3)
-	cmp	$3, %ebx
-	je	L(StrlcpyExitTail3)
-
-	cmpb	$0, 3(%ecx)
-	jz	L(ExitTail4)
-
-	movb	%bh, 3(%edx)
-	movw	(%ecx), %ax
-	movw	%ax, (%edx)
-	movb	2(%ecx), %al
-	movb	%al, 2(%edx)
-
-	lea	4(%ecx), %edx
-	jmp	L(CalculateLengthOfSrc)
-
-	.p2align 4
-L(StrncpyExit8Bytes1):
-	cmpb	$0, (%ecx)
-	jz	L(ExitTail1)
-	cmpb	$0, 1(%ecx)
-	jz	L(ExitTail2)
-	cmpb	$0, 2(%ecx)
-	jz	L(ExitTail3)
-	cmpb	$0, 3(%ecx)
-	jz	L(ExitTail4)
-
-	cmpb	$0, 4(%ecx)
-	jz	L(ExitTail5)
-	cmp	$5, %ebx
-	je	L(StrlcpyExitTail5)
-
-	cmpb	$0, 5(%ecx)
-	jz	L(ExitTail6)
-	cmp	$6, %ebx
-	je	L(StrlcpyExitTail6)
-
-	cmpb	$0, 6(%ecx)
-	jz	L(ExitTail7)
-	cmp	$7, %ebx
-	je	L(StrlcpyExitTail7)
-
-	cmpb	$0, 7(%ecx)
-	jz	L(ExitTail8)
-
-	movb	%bh, 7(%edx)
-	movl	(%ecx), %eax
-	movl	%eax, (%edx)
-	movl	3(%ecx), %eax
-	movl	%eax, 3(%edx)
-
-	lea	8(%ecx), %edx
-	jmp	L(CalculateLengthOfSrc)
-
-	.p2align 4
-L(StrlcpyExitTail0):
-	mov	%ecx, %edx
-	jmp	L(CalculateLengthOfSrc)
-
-	.p2align 4
-L(StrlcpyExitTail1):
-	movb	%bh, (%edx)
-
-	lea	1(%ecx), %edx
-	jmp	L(CalculateLengthOfSrc)
-
-	.p2align 4
-L(ExitTail1):
-	movb	(%ecx), %al
-	movb	%al, (%edx)
-
-	mov	$0, %eax
-	RETURN
-
-	.p2align 4
-L(StrlcpyExitTail2):
-	movb	%bh, 1(%edx)
-	movb	(%ecx), %al
-	movb	%al, (%edx)
-
-	lea	2(%ecx), %edx
-	jmp	L(CalculateLengthOfSrc)
-
-	.p2align 4
-L(ExitTail2):
-	movw	(%ecx), %ax
-	movw	%ax, (%edx)
-	movl	%edx, %eax
-
-	mov	$1, %eax
-	RETURN
-
-	.p2align 4
-L(StrlcpyExitTail3):
-	movb	%bh, 2(%edx)
-	movw	(%ecx), %ax
-	movw	%ax, (%edx)
-
-	lea	3(%ecx), %edx
-	jmp	L(CalculateLengthOfSrc)
-
-	.p2align 4
-L(ExitTail3):
-	movw	(%ecx), %ax
-	movw	%ax, (%edx)
-	movb	2(%ecx), %al
-	movb	%al, 2(%edx)
-
-	mov	$2, %eax
-	RETURN
-
-	.p2align 4
-L(ExitTail4):
-	movl	(%ecx), %eax
-	movl	%eax, (%edx)
-
-	mov	$3, %eax
-	RETURN
-
-	.p2align 4
-L(StrlcpyExitTail5):
-	movb	%bh, 4(%edx)
-	movl	(%ecx), %eax
-	movl	%eax, (%edx)
-	movl	%edx, %eax
-
-	lea	5(%ecx), %edx
-	jmp	L(CalculateLengthOfSrc)
-
-	.p2align 4
-L(ExitTail5):
-	movl	(%ecx), %eax
-	movl	%eax, (%edx)
-	movb	4(%ecx), %al
-	movb	%al, 4(%edx)
-
-	mov	$4, %eax
-	RETURN
-
-	.p2align 4
-L(StrlcpyExitTail6):
-	movb	%bh, 5(%edx)
-	movl	(%ecx), %eax
-	movl	%eax, (%edx)
-	movb	4(%ecx), %al
-	movb	%al, 4(%edx)
-
-	lea	6(%ecx), %edx
-	jmp	L(CalculateLengthOfSrc)
-
-	.p2align 4
-L(ExitTail6):
-	movl	(%ecx), %eax
-	movl	%eax, (%edx)
-	movw	4(%ecx), %ax
-	movw	%ax, 4(%edx)
-
-	mov	$5, %eax
-	RETURN
-
-	.p2align 4
-L(StrlcpyExitTail7):
-	movb	%bh, 6(%edx)
-	movl	(%ecx), %eax
-	movl	%eax, (%edx)
-	movw	4(%ecx), %ax
-	movw	%ax, 4(%edx)
-
-	lea	7(%ecx), %edx
-	jmp	L(CalculateLengthOfSrc)
-
-	.p2align 4
-L(ExitTail7):
-	movl	(%ecx), %eax
-	movl	%eax, (%edx)
-	movl	3(%ecx), %eax
-	movl	%eax, 3(%edx)
-
-	mov	$6, %eax
-	RETURN
-
-	.p2align 4
-L(ExitTail8):
-	movlpd	(%ecx), %xmm0
-	movlpd	%xmm0, (%edx)
-
-	mov	$7, %eax
-	RETURN
-
-	.p2align 4
-L(StrlcpyExitTail9):
-	movb	%bh, 8(%edx)
-	movlpd	(%ecx), %xmm0
-	movlpd	%xmm0, (%edx)
-
-	lea	9(%ecx), %edx
-	jmp	L(CalculateLengthOfSrc)
-
-	.p2align 4
-L(ExitTail9):
-	movlpd	(%ecx), %xmm0
-	movlpd	%xmm0, (%edx)
-	movb	8(%ecx), %al
-	movb	%al, 8(%edx)
-
-	mov	$8, %eax
-	RETURN
-
-	.p2align 4
-L(StrlcpyExitTail10):
-	movb	%bh, 9(%edx)
-	movlpd	(%ecx), %xmm0
-	movlpd	%xmm0, (%edx)
-	movb	8(%ecx), %al
-	movb	%al, 8(%edx)
-
-	lea	10(%ecx), %edx
-	jmp	L(CalculateLengthOfSrc)
-
-	.p2align 4
-L(ExitTail10):
-	movlpd	(%ecx), %xmm0
-	movlpd	%xmm0, (%edx)
-	movw	8(%ecx), %ax
-	movw	%ax, 8(%edx)
-
-	mov	$9, %eax
-	RETURN
-
-	.p2align 4
-L(StrlcpyExitTail11):
-	movb	%bh, 10(%edx)
-	movlpd	(%ecx), %xmm0
-	movlpd	%xmm0, (%edx)
-	movw	8(%ecx), %ax
-	movw	%ax, 8(%edx)
-
-	lea	11(%ecx), %edx
-	jmp	L(CalculateLengthOfSrc)
-
-	.p2align 4
-L(ExitTail11):
-	movlpd	(%ecx), %xmm0
-	movlpd	%xmm0, (%edx)
-	movl	7(%ecx), %eax
-	movl	%eax, 7(%edx)
-
-	mov	$10, %eax
-	RETURN
-
-	.p2align 4
-L(ExitTail12):
-	movlpd	(%ecx), %xmm0
-	movlpd	%xmm0, (%edx)
-	movl	8(%ecx), %eax
-	movl	%eax, 8(%edx)
-
-	mov	$11, %eax
-	RETURN
-
-	.p2align 4
-L(StrlcpyExitTail13):
-	movb	%bh, 12(%edx)
-	movlpd	(%ecx), %xmm0
-	movlpd	%xmm0, (%edx)
-	movl	8(%ecx), %eax
-	movl	%eax, 8(%edx)
-
-	lea	13(%ecx), %edx
-	jmp	L(CalculateLengthOfSrc)
-
-	.p2align 4
-L(ExitTail13):
-	movlpd	(%ecx), %xmm0
-	movlpd	%xmm0, (%edx)
-	movlpd	5(%ecx), %xmm0
-	movlpd	%xmm0, 5(%edx)
-
-	mov	$12, %eax
-	RETURN
-
-	.p2align 4
-L(StrlcpyExitTail14):
-	movb	%bh, 13(%edx)
-	movlpd	(%ecx), %xmm0
-	movlpd	%xmm0, (%edx)
-	movlpd	5(%ecx), %xmm0
-	movlpd	%xmm0, 5(%edx)
-
-	lea	14(%ecx), %edx
-	jmp	L(CalculateLengthOfSrc)
-
-	.p2align 4
-L(ExitTail14):
-	movlpd	(%ecx), %xmm0
-	movlpd	%xmm0, (%edx)
-	movlpd	6(%ecx), %xmm0
-	movlpd	%xmm0, 6(%edx)
-
-	mov	$13, %eax
-	RETURN
-
-	.p2align 4
-L(ExitTail15):
-	movlpd	(%ecx), %xmm0
-	movlpd	%xmm0, (%edx)
-	movlpd	7(%ecx), %xmm0
-	movlpd	%xmm0, 7(%edx)
-
-	mov	$14, %eax
-	RETURN
-
-	.p2align 4
-L(StrlcpyExitTail16):
-	movb	%bh, 15(%edx)
-	movlpd	(%ecx), %xmm0
-	movlpd	%xmm0, (%edx)
-	movlpd	7(%ecx), %xmm0
-	movlpd	%xmm0, 7(%edx)
-
-	lea	16(%ecx), %edx
-	jmp	L(CalculateLengthOfSrc)
-
-	.p2align 4
-L(ExitTail16):
-	movlpd	(%ecx), %xmm0
-	movlpd	8(%ecx), %xmm1
-	movlpd	%xmm0, (%edx)
-	movlpd	%xmm1, 8(%edx)
-
-	mov	$15, %eax
-	RETURN
-
-	.p2align 4
-L(CalculateLengthOfSrc):
-	xor	%eax, %eax
-	cmpb	$0, (%edx)
-	jz	L(exit_tail0)
-	cmpb	$0, 1(%edx)
-	jz	L(exit_tail1)
-	cmpb	$0, 2(%edx)
-	jz	L(exit_tail2)
-	cmpb	$0, 3(%edx)
-	jz	L(exit_tail3)
-
-	cmpb	$0, 4(%edx)
-	jz	L(exit_tail4)
-	cmpb	$0, 5(%edx)
-	jz	L(exit_tail5)
-	cmpb	$0, 6(%edx)
-	jz	L(exit_tail6)
-	cmpb	$0, 7(%edx)
-	jz	L(exit_tail7)
-
-	cmpb	$0, 8(%edx)
-	jz	L(exit_tail8)
-	cmpb	$0, 9(%edx)
-	jz	L(exit_tail9)
-	cmpb	$0, 10(%edx)
-	jz	L(exit_tail10)
-	cmpb	$0, 11(%edx)
-	jz	L(exit_tail11)
-
-	cmpb	$0, 12(%edx)
-	jz	L(exit_tail12)
-	cmpb	$0, 13(%edx)
-	jz	L(exit_tail13)
-	cmpb	$0, 14(%edx)
-	jz	L(exit_tail14)
-	cmpb	$0, 15(%edx)
-	jz	L(exit_tail15)
-
-	pxor	%xmm0, %xmm0
-	lea	16(%edx), %eax
-	add	$16, %ecx
-	and	$-16, %eax
-
-	pcmpeqb	(%eax), %xmm0
-	pmovmskb %xmm0, %edx
-	pxor	%xmm1, %xmm1
-	lea	16(%eax), %eax
-	test	%edx, %edx
-	jnz	L(exit)
-
-	pcmpeqb	(%eax), %xmm1
-	pmovmskb %xmm1, %edx
-	pxor	%xmm2, %xmm2
-	lea	16(%eax), %eax
-	test	%edx, %edx
-	jnz	L(exit)
-
-	pcmpeqb	(%eax), %xmm2
-	pmovmskb %xmm2, %edx
-	pxor	%xmm3, %xmm3
-	lea	16(%eax), %eax
-	test	%edx, %edx
-	jnz	L(exit)
-
-	pcmpeqb	(%eax), %xmm3
-	pmovmskb %xmm3, %edx
-	lea	16(%eax), %eax
-	test	%edx, %edx
-	jnz	L(exit)
-
-	pcmpeqb	(%eax), %xmm0
-	pmovmskb %xmm0, %edx
-	lea	16(%eax), %eax
-	test	%edx, %edx
-	jnz	L(exit)
-
-	pcmpeqb	(%eax), %xmm1
-	pmovmskb %xmm1, %edx
-	lea	16(%eax), %eax
-	test	%edx, %edx
-	jnz	L(exit)
-
-	pcmpeqb	(%eax), %xmm2
-	pmovmskb %xmm2, %edx
-	lea	16(%eax), %eax
-	test	%edx, %edx
-	jnz	L(exit)
-
-	pcmpeqb	(%eax), %xmm3
-	pmovmskb %xmm3, %edx
-	lea	16(%eax), %eax
-	test	%edx, %edx
-	jnz	L(exit)
-
-	pcmpeqb	(%eax), %xmm0
-	pmovmskb %xmm0, %edx
-	lea	16(%eax), %eax
-	test	%edx, %edx
-	jnz	L(exit)
-
-	pcmpeqb	(%eax), %xmm1
-	pmovmskb %xmm1, %edx
-	lea	16(%eax), %eax
-	test	%edx, %edx
-	jnz	L(exit)
-
-	pcmpeqb	(%eax), %xmm2
-	pmovmskb %xmm2, %edx
-	lea	16(%eax), %eax
-	test	%edx, %edx
-	jnz	L(exit)
-
-	pcmpeqb	(%eax), %xmm3
-	pmovmskb %xmm3, %edx
-	lea	16(%eax), %eax
-	test	%edx, %edx
-	jnz	L(exit)
-
-	pcmpeqb	(%eax), %xmm0
-	pmovmskb %xmm0, %edx
-	lea	16(%eax), %eax
-	test	%edx, %edx
-	jnz	L(exit)
-
-	pcmpeqb	(%eax), %xmm1
-	pmovmskb %xmm1, %edx
-	lea	16(%eax), %eax
-	test	%edx, %edx
-	jnz	L(exit)
-
-	pcmpeqb	(%eax), %xmm2
-	pmovmskb %xmm2, %edx
-	lea	16(%eax), %eax
-	test	%edx, %edx
-	jnz	L(exit)
-
-	pcmpeqb	(%eax), %xmm3
-	pmovmskb %xmm3, %edx
-	lea	16(%eax), %eax
-	test	%edx, %edx
-	jnz	L(exit)
-
-	and	$-0x40, %eax
-
-	.p2align 4
-L(aligned_64_loop):
-	movaps	(%eax), %xmm0
-	movaps	16(%eax), %xmm1
-	movaps	32(%eax), %xmm2
-	movaps	48(%eax), %xmm6
-	pminub	%xmm1, %xmm0
-	pminub	%xmm6, %xmm2
-	pminub	%xmm0, %xmm2
-	pcmpeqb	%xmm3, %xmm2
-	pmovmskb %xmm2, %edx
-	lea	64(%eax), %eax
-	test	%edx, %edx
-	jz	L(aligned_64_loop)
-
-	pcmpeqb	-64(%eax), %xmm3
-	pmovmskb %xmm3, %edx
-	lea	48(%ecx), %ecx
-	test	%edx, %edx
-	jnz	L(exit)
-
-	pcmpeqb	%xmm1, %xmm3
-	pmovmskb %xmm3, %edx
-	lea	-16(%ecx), %ecx
-	test	%edx, %edx
-	jnz	L(exit)
-
-	pcmpeqb	-32(%eax), %xmm3
-	pmovmskb %xmm3, %edx
-	lea	-16(%ecx), %ecx
-	test	%edx, %edx
-	jnz	L(exit)
-
-	pcmpeqb	%xmm6, %xmm3
-	pmovmskb %xmm3, %edx
-	lea	-16(%ecx), %ecx
-
-	.p2align 4
-L(exit):
-	sub	%ecx, %eax
-	test	%dl, %dl
-	jz	L(exit_more_8)
-
-	mov	%dl, %cl
-	and	$15, %cl
-	jz	L(exit_more_4)
-	test	$0x01, %dl
-	jnz	L(exit_0)
-	test	$0x02, %dl
-	jnz	L(exit_1)
-	test	$0x04, %dl
-	jnz	L(exit_2)
-	add	$3, %eax
-	RETURN
-
-	.p2align 4
-L(exit_more_4):
-	test	$0x10, %dl
-	jnz	L(exit_4)
-	test	$0x20, %dl
-	jnz	L(exit_5)
-	test	$0x40, %dl
-	jnz	L(exit_6)
-	add	$7, %eax
-	RETURN
-
-	.p2align 4
-L(exit_more_8):
-	mov	%dh, %ch
-	and	$15, %ch
-	jz	L(exit_more_12)
-	test	$0x01, %dh
-	jnz	L(exit_8)
-	test	$0x02, %dh
-	jnz	L(exit_9)
-	test	$0x04, %dh
-	jnz	L(exit_10)
-	add	$11, %eax
-	RETURN
-
-	.p2align 4
-L(exit_more_12):
-	test	$0x10, %dh
-	jnz	L(exit_12)
-	test	$0x20, %dh
-	jnz	L(exit_13)
-	test	$0x40, %dh
-	jnz	L(exit_14)
-	add	$15, %eax
-L(exit_0):
-	RETURN
-
-	.p2align 4
-L(exit_1):
-	add	$1, %eax
-	RETURN
-
-L(exit_2):
-	add	$2, %eax
-	RETURN
-
-L(exit_3):
-	add	$3, %eax
-	RETURN
-
-L(exit_4):
-	add	$4, %eax
-	RETURN
-
-L(exit_5):
-	add	$5, %eax
-	RETURN
-
-L(exit_6):
-	add	$6, %eax
-	RETURN
-
-L(exit_7):
-	add	$7, %eax
-	RETURN
-
-L(exit_8):
-	add	$8, %eax
-	RETURN
-
-L(exit_9):
-	add	$9, %eax
-	RETURN
-
-L(exit_10):
-	add	$10, %eax
-	RETURN
-
-L(exit_11):
-	add	$11, %eax
-	RETURN
-
-L(exit_12):
-	add	$12, %eax
-	RETURN
-
-L(exit_13):
-	add	$13, %eax
-	RETURN
-
-L(exit_14):
-	add	$14, %eax
-	RETURN
-
-L(exit_15):
-	add	$15, %eax
-	RETURN
-
-L(exit_tail0):
-	mov	%edx, %eax
-	sub	%ecx, %eax
-	RETURN
-
-	.p2align 4
-L(exit_tail1):
-	lea	1(%edx), %eax
-	sub	%ecx, %eax
-	RETURN
-
-L(exit_tail2):
-	lea	2(%edx), %eax
-	sub	%ecx, %eax
-	RETURN
-
-L(exit_tail3):
-	lea	3(%edx), %eax
-	sub	%ecx, %eax
-	RETURN
-
-L(exit_tail4):
-	lea	4(%edx), %eax
-	sub	%ecx, %eax
-	RETURN
-
-L(exit_tail5):
-	lea	5(%edx), %eax
-	sub	%ecx, %eax
-	RETURN
-
-L(exit_tail6):
-	lea	6(%edx), %eax
-	sub	%ecx, %eax
-	RETURN
-
-L(exit_tail7):
-	lea	7(%edx), %eax
-	sub	%ecx, %eax
-	RETURN
-
-L(exit_tail8):
-	lea	8(%edx), %eax
-	sub	%ecx, %eax
-	RETURN
-
-L(exit_tail9):
-	lea	9(%edx), %eax
-	sub	%ecx, %eax
-	RETURN
-
-L(exit_tail10):
-	lea	10(%edx), %eax
-	sub	%ecx, %eax
-	RETURN
-
-L(exit_tail11):
-	lea	11(%edx), %eax
-	sub	%ecx, %eax
-	RETURN
-
-L(exit_tail12):
-	lea	12(%edx), %eax
-	sub	%ecx, %eax
-	RETURN
-
-L(exit_tail13):
-	lea	13(%edx), %eax
-	sub	%ecx, %eax
-	RETURN
-
-L(exit_tail14):
-	lea	14(%edx), %eax
-	sub	%ecx, %eax
-	RETURN
-
-L(exit_tail15):
-	lea	15(%edx), %eax
-	sub	%ecx, %eax
-	RETURN
-
-END (STRCPY)
-
diff --git a/libc/arch-x86/string/ssse3-strncat-atom.S b/libc/arch-x86/string/ssse3-strncat-atom.S
index ccb08a7..5618771 100644
--- a/libc/arch-x86/string/ssse3-strncat-atom.S
+++ b/libc/arch-x86/string/ssse3-strncat-atom.S
@@ -28,7 +28,7 @@
 SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */
 
-#define STRCAT  strncat_ssse3
+#define STRCAT  strncat
 #define USE_AS_STRNCAT
 
 #include "ssse3-strcat-atom.S"
diff --git a/libc/arch-x86/string/ssse3-strncmp-atom.S b/libc/arch-x86/string/ssse3-strncmp-atom.S
index 2bf5002..234f728 100644
--- a/libc/arch-x86/string/ssse3-strncmp-atom.S
+++ b/libc/arch-x86/string/ssse3-strncmp-atom.S
@@ -30,6 +30,5 @@
 
 
 #define USE_AS_STRNCMP
-#define STRCMP  strncmp_ssse3
+#define STRCMP  strncmp
 #include "ssse3-strcmp-atom.S"
-
diff --git a/libc/arch-x86/string/ssse3-strncpy-atom.S b/libc/arch-x86/string/ssse3-strncpy-atom.S
deleted file mode 100644
index 0c27ffe..0000000
--- a/libc/arch-x86/string/ssse3-strncpy-atom.S
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
-Copyright (c) 2011, Intel Corporation
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
-    * Redistributions of source code must retain the above copyright notice,
-    * this list of conditions and the following disclaimer.
-
-    * Redistributions in binary form must reproduce the above copyright notice,
-    * this list of conditions and the following disclaimer in the documentation
-    * and/or other materials provided with the distribution.
-
-    * Neither the name of Intel Corporation nor the names of its contributors
-    * may be used to endorse or promote products derived from this software
-    * without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
-ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-
-#define USE_AS_STRNCPY
-#define STRCPY strncpy_atom
-#include "ssse3-strcpy-atom.S"
diff --git a/libc/arch-x86/string/ssse3-wcscat-atom.S b/libc/arch-x86/string/ssse3-wcscat-atom.S
deleted file mode 100644
index a307983..0000000
--- a/libc/arch-x86/string/ssse3-wcscat-atom.S
+++ /dev/null
@@ -1,114 +0,0 @@
-/*
-Copyright (c) 2011 Intel Corporation
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
-    * Redistributions of source code must retain the above copyright notice,
-    * this list of conditions and the following disclaimer.
-
-    * Redistributions in binary form must reproduce the above copyright notice,
-    * this list of conditions and the following disclaimer in the documentation
-    * and/or other materials provided with the distribution.
-
-    * Neither the name of Intel Corporation nor the names of its contributors
-    * may be used to endorse or promote products derived from this software
-    * without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
-ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-
-#ifndef L
-# define L(label)	.L##label
-#endif
-
-#ifndef cfi_startproc
-# define cfi_startproc                  .cfi_startproc
-#endif
-
-#ifndef cfi_endproc
-# define cfi_endproc                    .cfi_endproc
-#endif
-
-#ifndef cfi_rel_offset
-# define cfi_rel_offset(reg, off)	.cfi_rel_offset reg, off
-#endif
-
-#ifndef cfi_restore
-# define cfi_restore(reg)	.cfi_restore reg
-#endif
-
-#ifndef cfi_adjust_cfa_offset
-# define cfi_adjust_cfa_offset(off)	.cfi_adjust_cfa_offset off
-#endif
-
-#ifndef ENTRY
-# define ENTRY(name)	\
-	.type name,  @function;	\
-	.globl name;	\
-	.p2align 4;	\
-name:	\
-	cfi_startproc
-#endif
-
-#ifndef END
-# define END(name)	\
-	cfi_endproc;	\
-	.size name, .-name
-#endif
-
-#define CFI_PUSH(REG)	\
-	cfi_adjust_cfa_offset (4);	\
-	cfi_rel_offset (REG, 0)
-
-#define CFI_POP(REG)	\
-	cfi_adjust_cfa_offset (-4);	\
-	cfi_restore (REG)
-
-#define PUSH(REG)	pushl REG;	CFI_PUSH (REG)
-#define POP(REG)	popl REG;	CFI_POP (REG)
-
-#define PARMS  4
-#define STR1  PARMS+4
-#define STR2  STR1+4
-
-#define USE_AS_WCSCAT
-
-.text
-ENTRY (wcscat_ssse3)
-	PUSH    (%edi)
-	mov	STR1(%esp), %edi
-	mov	%edi, %edx
-
-#define RETURN  jmp L(WcscpyAtom)
-#include "sse2-wcslen-atom.S"
-
-L(WcscpyAtom):
-	shl	$2, %eax
-	mov	STR2(%esp), %ecx
-	lea	(%edi, %eax), %edx
-
-	cmpl	$0, (%ecx)
-	jz	L(Exit4)
-	cmpl	$0, 4(%ecx)
-	jz	L(Exit8)
-	cmpl	$0, 8(%ecx)
-	jz	L(Exit12)
-	cmpl	$0, 12(%ecx)
-	jz	L(Exit16)
-
-#undef RETURN
-#define RETURN  POP(%edi);	ret;	CFI_PUSH(%edi)
-#include "ssse3-wcscpy-atom.S"
-
-END (wcscat_ssse3)
diff --git a/libc/arch-x86/string/ssse3-wcscpy-atom.S b/libc/arch-x86/string/ssse3-wcscpy-atom.S
deleted file mode 100644
index 80aa15f..0000000
--- a/libc/arch-x86/string/ssse3-wcscpy-atom.S
+++ /dev/null
@@ -1,652 +0,0 @@
-/*
-Copyright (c) 2011, Intel Corporation
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
-    * Redistributions of source code must retain the above copyright notice,
-    * this list of conditions and the following disclaimer.
-
-    * Redistributions in binary form must reproduce the above copyright notice,
-    * this list of conditions and the following disclaimer in the documentation
-    * and/or other materials provided with the distribution.
-
-    * Neither the name of Intel Corporation nor the names of its contributors
-    * may be used to endorse or promote products derived from this software
-    * without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
-ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-
-#ifndef USE_AS_WCSCAT
-
-# ifndef L
-#  define L(label)	.L##label
-# endif
-
-# ifndef cfi_startproc
-#  define cfi_startproc	.cfi_startproc
-# endif
-
-# ifndef cfi_endproc
-#  define cfi_endproc	.cfi_endproc
-# endif
-
-# ifndef cfi_rel_offset
-#  define cfi_rel_offset(reg, off)	.cfi_rel_offset reg, off
-# endif
-
-# ifndef cfi_restore
-#  define cfi_restore(reg)	.cfi_restore reg
-# endif
-
-# ifndef cfi_adjust_cfa_offset
-#  define cfi_adjust_cfa_offset(off)	.cfi_adjust_cfa_offset off
-# endif
-
-# ifndef ENTRY
-#  define ENTRY(name)	\
-	.type name, @function;	\
-	.globl name;	\
-	.p2align 4;	\
-name:	\
-	cfi_startproc
-# endif
-
-# ifndef END
-#  define END(name)	\
-	cfi_endproc;	\
-	.size name, .-name
-# endif
-
-# define CFI_PUSH(REG)	\
-	cfi_adjust_cfa_offset (4);	\
-	cfi_rel_offset (REG, 0)
-
-# define CFI_POP(REG)	\
-	cfi_adjust_cfa_offset (-4);	\
-	cfi_restore (REG)
-
-# define PUSH(REG)	pushl REG; CFI_PUSH (REG)
-# define POP(REG)	popl REG; CFI_POP (REG)
-
-# define PARMS	4
-# define RETURN	POP (%edi); ret; CFI_PUSH (%edi)
-
-# define STR1	PARMS
-# define STR2	STR1+4
-# define LEN	STR2+4
-
-.text
-ENTRY (wcscpy_ssse3)
-	mov	STR1(%esp), %edx
-	mov	STR2(%esp), %ecx
-
-	cmpl	$0, (%ecx)
-	jz	L(ExitTail4)
-	cmpl	$0, 4(%ecx)
-	jz	L(ExitTail8)
-	cmpl	$0, 8(%ecx)
-	jz	L(ExitTail12)
-	cmpl	$0, 12(%ecx)
-	jz	L(ExitTail16)
-
-	PUSH	(%edi)
-	mov	%edx, %edi
-#endif
-	PUSH	(%esi)
-	lea	16(%ecx), %esi
-
-	and	$-16, %esi
-
-	pxor	%xmm0, %xmm0
-	pcmpeqd	(%esi), %xmm0
-	movdqu	(%ecx), %xmm1
-	movdqu	%xmm1, (%edx)
-
-	pmovmskb %xmm0, %eax
-	sub	%ecx, %esi
-
-	test	%eax, %eax
-	jnz	L(CopyFrom1To16Bytes)
-
-	mov	%edx, %eax
-	lea	16(%edx), %edx
-	and	$-16, %edx
-	sub	%edx, %eax
-
-	sub	%eax, %ecx
-	mov	%ecx, %eax
-	and	$0xf, %eax
-	mov	$0, %esi
-
-	jz	L(Align16Both)
-	cmp	$4, %eax
-	je	L(Shl4)
-	cmp	$8, %eax
-	je	L(Shl8)
-	jmp	L(Shl12)
-
-L(Align16Both):
-	movaps	(%ecx), %xmm1
-	movaps	16(%ecx), %xmm2
-	movaps	%xmm1, (%edx)
-	pcmpeqd	%xmm2, %xmm0
-	pmovmskb %xmm0, %eax
-	lea	16(%esi), %esi
-
-	test	%eax, %eax
-	jnz	L(CopyFrom1To16Bytes)
-
-	movaps	16(%ecx, %esi), %xmm3
-	movaps	%xmm2, (%edx, %esi)
-	pcmpeqd	%xmm3, %xmm0
-	pmovmskb %xmm0, %eax
-	lea	16(%esi), %esi
-
-	test	%eax, %eax
-	jnz	L(CopyFrom1To16Bytes)
-
-	movaps	16(%ecx, %esi), %xmm4
-	movaps	%xmm3, (%edx, %esi)
-	pcmpeqd	%xmm4, %xmm0
-	pmovmskb %xmm0, %eax
-	lea	16(%esi), %esi
-
-	test	%eax, %eax
-	jnz	L(CopyFrom1To16Bytes)
-
-	movaps	16(%ecx, %esi), %xmm1
-	movaps	%xmm4, (%edx, %esi)
-	pcmpeqd	%xmm1, %xmm0
-	pmovmskb %xmm0, %eax
-	lea	16(%esi), %esi
-
-	test	%eax, %eax
-	jnz	L(CopyFrom1To16Bytes)
-
-	movaps	16(%ecx, %esi), %xmm2
-	movaps	%xmm1, (%edx, %esi)
-	pcmpeqd	%xmm2, %xmm0
-	pmovmskb %xmm0, %eax
-	lea	16(%esi), %esi
-
-	test	%eax, %eax
-	jnz	L(CopyFrom1To16Bytes)
-
-	movaps	16(%ecx, %esi), %xmm3
-	movaps	%xmm2, (%edx, %esi)
-	pcmpeqd	%xmm3, %xmm0
-	pmovmskb %xmm0, %eax
-	lea	16(%esi), %esi
-
-	test	%eax, %eax
-	jnz	L(CopyFrom1To16Bytes)
-
-	movaps	%xmm3, (%edx, %esi)
-	mov	%ecx, %eax
-	lea	16(%ecx, %esi), %ecx
-	and	$-0x40, %ecx
-	sub	%ecx, %eax
-	sub	%eax, %edx
-
-	mov	$-0x40, %esi
-
-L(Aligned64Loop):
-	movaps	(%ecx), %xmm2
-	movaps	32(%ecx), %xmm3
-	movaps	%xmm2, %xmm4
-	movaps	16(%ecx), %xmm5
-	movaps	%xmm3, %xmm6
-	movaps	48(%ecx), %xmm7
-	pminub	%xmm5, %xmm2
-	pminub	%xmm7, %xmm3
-	pminub	%xmm2, %xmm3
-	lea	64(%edx), %edx
-	pcmpeqd	%xmm0, %xmm3
-	lea	64(%ecx), %ecx
-	pmovmskb %xmm3, %eax
-
-	test	%eax, %eax
-	jnz	L(Aligned64Leave)
-	movaps	%xmm4, -64(%edx)
-	movaps	%xmm5, -48(%edx)
-	movaps	%xmm6, -32(%edx)
-	movaps	%xmm7, -16(%edx)
-	jmp	L(Aligned64Loop)
-
-L(Aligned64Leave):
-	pcmpeqd	%xmm4, %xmm0
-	pmovmskb %xmm0, %eax
-	test	%eax, %eax
-	jnz	L(CopyFrom1To16Bytes)
-
-	pcmpeqd	%xmm5, %xmm0
-	pmovmskb %xmm0, %eax
-	movaps	%xmm4, -64(%edx)
-	lea	16(%esi), %esi
-	test	%eax, %eax
-	jnz	L(CopyFrom1To16Bytes)
-
-	pcmpeqd	%xmm6, %xmm0
-	pmovmskb %xmm0, %eax
-	movaps	%xmm5, -48(%edx)
-	lea	16(%esi), %esi
-	test	%eax, %eax
-	jnz	L(CopyFrom1To16Bytes)
-
-	movaps	%xmm6, -32(%edx)
-	pcmpeqd	%xmm7, %xmm0
-	pmovmskb %xmm0, %eax
-	lea	16(%esi), %esi
-	test	%eax, %eax
-	jnz	L(CopyFrom1To16Bytes)
-
-	mov	$-0x40, %esi
-	movaps	%xmm7, -16(%edx)
-	jmp	L(Aligned64Loop)
-
-	.p2align 4
-L(Shl4):
-	movaps	-4(%ecx), %xmm1
-	movaps	12(%ecx), %xmm2
-L(Shl4Start):
-	pcmpeqd	%xmm2, %xmm0
-	pmovmskb %xmm0, %eax
-	movaps	%xmm2, %xmm3
-
-	test	%eax, %eax
-	jnz	L(Shl4LoopExit)
-
-	palignr	$4, %xmm1, %xmm2
-	movaps	%xmm2, (%edx)
-	movaps	28(%ecx), %xmm2
-
-	pcmpeqd	%xmm2, %xmm0
-	lea	16(%edx), %edx
-	pmovmskb %xmm0, %eax
-	lea	16(%ecx), %ecx
-	movaps	%xmm2, %xmm1
-
-	test	%eax, %eax
-	jnz	L(Shl4LoopExit)
-
-	palignr	$4, %xmm3, %xmm2
-	movaps	%xmm2, (%edx)
-	movaps	28(%ecx), %xmm2
-
-	pcmpeqd	%xmm2, %xmm0
-	lea	16(%edx), %edx
-	pmovmskb %xmm0, %eax
-	lea	16(%ecx), %ecx
-	movaps	%xmm2, %xmm3
-
-	test	%eax, %eax
-	jnz	L(Shl4LoopExit)
-
-	palignr	$4, %xmm1, %xmm2
-	movaps	%xmm2, (%edx)
-	movaps	28(%ecx), %xmm2
-
-	pcmpeqd	%xmm2, %xmm0
-	lea	16(%edx), %edx
-	pmovmskb %xmm0, %eax
-	lea	16(%ecx), %ecx
-
-	test	%eax, %eax
-	jnz	L(Shl4LoopExit)
-
-	palignr	$4, %xmm3, %xmm2
-	movaps	%xmm2, (%edx)
-	lea	28(%ecx), %ecx
-	lea	16(%edx), %edx
-
-	mov	%ecx, %eax
-	and	$-0x40, %ecx
-	sub	%ecx, %eax
-	lea	-12(%ecx), %ecx
-	sub	%eax, %edx
-
-	movaps	-4(%ecx), %xmm1
-
-L(Shl4LoopStart):
-	movaps	12(%ecx), %xmm2
-	movaps	28(%ecx), %xmm3
-	movaps	%xmm3, %xmm6
-	movaps	44(%ecx), %xmm4
-	movaps	%xmm4, %xmm7
-	movaps	60(%ecx), %xmm5
-	pminub	%xmm2, %xmm6
-	pminub	%xmm5, %xmm7
-	pminub	%xmm6, %xmm7
-	pcmpeqd	%xmm0, %xmm7
-	pmovmskb %xmm7, %eax
-	movaps	%xmm5, %xmm7
-	palignr	$4, %xmm4, %xmm5
-	palignr	$4, %xmm3, %xmm4
-	test	%eax, %eax
-	jnz	L(Shl4Start)
-
-	palignr	$4, %xmm2, %xmm3
-	lea	64(%ecx), %ecx
-	palignr	$4, %xmm1, %xmm2
-	movaps	%xmm7, %xmm1
-	movaps	%xmm5, 48(%edx)
-	movaps	%xmm4, 32(%edx)
-	movaps	%xmm3, 16(%edx)
-	movaps	%xmm2, (%edx)
-	lea	64(%edx), %edx
-	jmp	L(Shl4LoopStart)
-
-L(Shl4LoopExit):
-	movlpd	(%ecx), %xmm0
-	movl	8(%ecx), %esi
-	movlpd	%xmm0, (%edx)
-	movl	%esi, 8(%edx)
-	POP	(%esi)
-	add	$12, %edx
-	add	$12, %ecx
-	test	%al, %al
-	jz	L(ExitHigh)
-	test	$0x01, %al
-	jnz	L(Exit4)
-	movlpd	(%ecx), %xmm0
-	movlpd	%xmm0, (%edx)
-	movl	%edi, %eax
-	RETURN
-
-	CFI_PUSH	(%esi)
-
-	.p2align 4
-L(Shl8):
-	movaps	-8(%ecx), %xmm1
-	movaps	8(%ecx), %xmm2
-L(Shl8Start):
-	pcmpeqd	%xmm2, %xmm0
-	pmovmskb %xmm0, %eax
-	movaps	%xmm2, %xmm3
-
-	test	%eax, %eax
-	jnz	L(Shl8LoopExit)
-
-	palignr	$8, %xmm1, %xmm2
-	movaps	%xmm2, (%edx)
-	movaps	24(%ecx), %xmm2
-
-	pcmpeqd	%xmm2, %xmm0
-	lea	16(%edx), %edx
-	pmovmskb %xmm0, %eax
-	lea	16(%ecx), %ecx
-	movaps	%xmm2, %xmm1
-
-	test	%eax, %eax
-	jnz	L(Shl8LoopExit)
-
-	palignr	$8, %xmm3, %xmm2
-	movaps	%xmm2, (%edx)
-	movaps	24(%ecx), %xmm2
-
-	pcmpeqd	%xmm2, %xmm0
-	lea	16(%edx), %edx
-	pmovmskb %xmm0, %eax
-	lea	16(%ecx), %ecx
-	movaps	%xmm2, %xmm3
-
-	test	%eax, %eax
-	jnz	L(Shl8LoopExit)
-
-	palignr	$8, %xmm1, %xmm2
-	movaps	%xmm2, (%edx)
-	movaps	24(%ecx), %xmm2
-
-	pcmpeqd	%xmm2, %xmm0
-	lea	16(%edx), %edx
-	pmovmskb %xmm0, %eax
-	lea	16(%ecx), %ecx
-
-	test	%eax, %eax
-	jnz	L(Shl8LoopExit)
-
-	palignr	$8, %xmm3, %xmm2
-	movaps	%xmm2, (%edx)
-	lea	24(%ecx), %ecx
-	lea	16(%edx), %edx
-
-	mov	%ecx, %eax
-	and	$-0x40, %ecx
-	sub	%ecx, %eax
-	lea	-8(%ecx), %ecx
-	sub	%eax, %edx
-
-	movaps	-8(%ecx), %xmm1
-
-L(Shl8LoopStart):
-	movaps	8(%ecx), %xmm2
-	movaps	24(%ecx), %xmm3
-	movaps	%xmm3, %xmm6
-	movaps	40(%ecx), %xmm4
-	movaps	%xmm4, %xmm7
-	movaps	56(%ecx), %xmm5
-	pminub	%xmm2, %xmm6
-	pminub	%xmm5, %xmm7
-	pminub	%xmm6, %xmm7
-	pcmpeqd	%xmm0, %xmm7
-	pmovmskb %xmm7, %eax
-	movaps	%xmm5, %xmm7
-	palignr	$8, %xmm4, %xmm5
-	palignr	$8, %xmm3, %xmm4
-	test	%eax, %eax
-	jnz	L(Shl8Start)
-
-	palignr	$8, %xmm2, %xmm3
-	lea	64(%ecx), %ecx
-	palignr	$8, %xmm1, %xmm2
-	movaps	%xmm7, %xmm1
-	movaps	%xmm5, 48(%edx)
-	movaps	%xmm4, 32(%edx)
-	movaps	%xmm3, 16(%edx)
-	movaps	%xmm2, (%edx)
-	lea	64(%edx), %edx
-	jmp	L(Shl8LoopStart)
-
-L(Shl8LoopExit):
-	movlpd	(%ecx), %xmm0
-	movlpd	%xmm0, (%edx)
-	POP	(%esi)
-	add	$8, %edx
-	add	$8, %ecx
-	test	%al, %al
-	jz	L(ExitHigh)
-	test	$0x01, %al
-	jnz	L(Exit4)
-	movlpd	(%ecx), %xmm0
-	movlpd	%xmm0, (%edx)
-	movl	%edi, %eax
-	RETURN
-
-	CFI_PUSH	(%esi)
-
-	.p2align 4
-L(Shl12):
-	movaps	-12(%ecx), %xmm1
-	movaps	4(%ecx), %xmm2
-L(Shl12Start):
-	pcmpeqd	%xmm2, %xmm0
-	pmovmskb %xmm0, %eax
-	movaps	%xmm2, %xmm3
-
-	test	%eax, %eax
-	jnz	L(Shl12LoopExit)
-
-	palignr	$12, %xmm1, %xmm2
-	movaps	%xmm2, (%edx)
-	movaps	20(%ecx), %xmm2
-
-	pcmpeqd	%xmm2, %xmm0
-	lea	16(%edx), %edx
-	pmovmskb %xmm0, %eax
-	lea	16(%ecx), %ecx
-	movaps	%xmm2, %xmm1
-
-	test	%eax, %eax
-	jnz	L(Shl12LoopExit)
-
-	palignr	$12, %xmm3, %xmm2
-	movaps	%xmm2, (%edx)
-	movaps	20(%ecx), %xmm2
-
-	pcmpeqd	%xmm2, %xmm0
-	lea	16(%edx), %edx
-	pmovmskb %xmm0, %eax
-	lea	16(%ecx), %ecx
-	movaps	%xmm2, %xmm3
-
-	test	%eax, %eax
-	jnz	L(Shl12LoopExit)
-
-	palignr	$12, %xmm1, %xmm2
-	movaps	%xmm2, (%edx)
-	movaps	20(%ecx), %xmm2
-
-	pcmpeqd	%xmm2, %xmm0
-	lea	16(%edx), %edx
-	pmovmskb %xmm0, %eax
-	lea	16(%ecx), %ecx
-
-	test	%eax, %eax
-	jnz	L(Shl12LoopExit)
-
-	palignr	$12, %xmm3, %xmm2
-	movaps	%xmm2, (%edx)
-	lea	20(%ecx), %ecx
-	lea	16(%edx), %edx
-
-	mov	%ecx, %eax
-	and	$-0x40, %ecx
-	sub	%ecx, %eax
-	lea	-4(%ecx), %ecx
-	sub	%eax, %edx
-
-	movaps	-12(%ecx), %xmm1
-
-L(Shl12LoopStart):
-	movaps	4(%ecx), %xmm2
-	movaps	20(%ecx), %xmm3
-	movaps	%xmm3, %xmm6
-	movaps	36(%ecx), %xmm4
-	movaps	%xmm4, %xmm7
-	movaps	52(%ecx), %xmm5
-	pminub	%xmm2, %xmm6
-	pminub	%xmm5, %xmm7
-	pminub	%xmm6, %xmm7
-	pcmpeqd	%xmm0, %xmm7
-	pmovmskb %xmm7, %eax
-	movaps	%xmm5, %xmm7
-	palignr	$12, %xmm4, %xmm5
-	palignr	$12, %xmm3, %xmm4
-	test	%eax, %eax
-	jnz	L(Shl12Start)
-
-	palignr	$12, %xmm2, %xmm3
-	lea	64(%ecx), %ecx
-	palignr	$12, %xmm1, %xmm2
-	movaps	%xmm7, %xmm1
-	movaps	%xmm5, 48(%edx)
-	movaps	%xmm4, 32(%edx)
-	movaps	%xmm3, 16(%edx)
-	movaps	%xmm2, (%edx)
-	lea	64(%edx), %edx
-	jmp	L(Shl12LoopStart)
-
-L(Shl12LoopExit):
-	movl	(%ecx), %esi
-	movl	%esi, (%edx)
-	mov	$4, %esi
-
-	.p2align 4
-L(CopyFrom1To16Bytes):
-	add	%esi, %edx
-	add	%esi, %ecx
-
-	POP	(%esi)
-	test	%al, %al
-	jz	L(ExitHigh)
-	test	$0x01, %al
-	jnz	L(Exit4)
-L(Exit8):
-	movlpd	(%ecx), %xmm0
-	movlpd	%xmm0, (%edx)
-	movl	%edi, %eax
-	RETURN
-
-	.p2align 4
-L(ExitHigh):
-	test	$0x01, %ah
-	jnz	L(Exit12)
-L(Exit16):
-	movdqu	(%ecx), %xmm0
-	movdqu	%xmm0, (%edx)
-	movl	%edi, %eax
-	RETURN
-
-	.p2align 4
-L(Exit4):
-	movl	(%ecx), %eax
-	movl	%eax, (%edx)
-	movl	%edi, %eax
-	RETURN
-
-	.p2align 4
-L(Exit12):
-	movlpd	(%ecx), %xmm0
-	movlpd	%xmm0, (%edx)
-	movl	8(%ecx), %eax
-	movl	%eax, 8(%edx)
-	movl	%edi, %eax
-	RETURN
-
-CFI_POP	(%edi)
-
-	.p2align 4
-L(ExitTail4):
-	movl	(%ecx), %eax
-	movl	%eax, (%edx)
-	movl	%edx, %eax
-	ret
-
-	.p2align 4
-L(ExitTail8):
-	movlpd	(%ecx), %xmm0
-	movlpd	%xmm0, (%edx)
-	movl	%edx, %eax
-	ret
-
-	.p2align 4
-L(ExitTail12):
-	movlpd	(%ecx), %xmm0
-	movlpd	%xmm0, (%edx)
-	movl	8(%ecx), %eax
-	movl	%eax, 8(%edx)
-	movl	%edx, %eax
-	ret
-
-	.p2align 4
-L(ExitTail16):
-	movdqu	(%ecx), %xmm0
-	movdqu	%xmm0, (%edx)
-	movl	%edx, %eax
-	ret
-
-#ifndef USE_AS_WCSCAT
-END (wcscpy_ssse3)
-#endif
diff --git a/libc/arch-x86/string/ssse3-wmemcmp-atom.S b/libc/arch-x86/string/ssse3-wmemcmp-atom.S
deleted file mode 100644
index a81b78b..0000000
--- a/libc/arch-x86/string/ssse3-wmemcmp-atom.S
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
-Copyright (c) 2011, 2012, 2013 Intel Corporation
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
-    * Redistributions of source code must retain the above copyright notice,
-    * this list of conditions and the following disclaimer.
-
-    * Redistributions in binary form must reproduce the above copyright notice,
-    * this list of conditions and the following disclaimer in the documentation
-    * and/or other materials provided with the distribution.
-
-    * Neither the name of Intel Corporation nor the names of its contributors
-    * may be used to endorse or promote products derived from this software
-    * without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
-ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-
-#define MEMCMP  wmemcmp_atom
-
-#define USE_WCHAR
-#define USE_AS_WMEMCMP 1
-#include "ssse3-memcmp-atom.S"
diff --git a/libc/arch-x86_64/bionic/__bionic_clone.S b/libc/arch-x86_64/bionic/__bionic_clone.S
index a4245b8..c293020 100644
--- a/libc/arch-x86_64/bionic/__bionic_clone.S
+++ b/libc/arch-x86_64/bionic/__bionic_clone.S
@@ -48,8 +48,8 @@
 
         # Check result.
         testq   %rax, %rax
-        jz      .L_bc_child
-        jg      .L_bc_parent
+        jz      L(bc_child)
+        jg      L(bc_parent)
 
         # An error occurred, set errno and return -1.
         negl    %eax
@@ -57,7 +57,7 @@
         call    __set_errno_internal
         ret
 
-.L_bc_child:
+L(bc_child):
         # We don't want anyone to unwind past this point.
         .cfi_undefined %rip
         .cfi_undefined %rbp
@@ -70,7 +70,7 @@
         call    __start_thread
         hlt
 
-.L_bc_parent:
+L(bc_parent):
         # We're the parent; nothing to do.
         ret
 END(__bionic_clone)
diff --git a/libc/arch-x86_64/bionic/__restore_rt.S b/libc/arch-x86_64/bionic/__restore_rt.S
index f3e4012..98d0ef5 100644
--- a/libc/arch-x86_64/bionic/__restore_rt.S
+++ b/libc/arch-x86_64/bionic/__restore_rt.S
@@ -109,7 +109,7 @@
   // Restoring RSP is unnecessary as the unwinder simply uses the CFA value.
   RESTORE_GPR(RIP)
   nop
-ENTRY_PRIVATE_NO_DWARF(__restore_rt)
+ENTRY_NO_DWARF_PRIVATE(__restore_rt)
   mov $__NR_rt_sigreturn, %rax
   syscall
 END(__restore_rt)
diff --git a/libc/arch-x86_64/bionic/__set_tls.c b/libc/arch-x86_64/bionic/__set_tls.c
index 10fd36f..9460a03 100644
--- a/libc/arch-x86_64/bionic/__set_tls.c
+++ b/libc/arch-x86_64/bionic/__set_tls.c
@@ -27,11 +27,12 @@
  */
 
 #include <sys/cdefs.h>
-#include <asm/prctl.h>
-#include <stdint.h>
 
-extern int __arch_prctl(int, unsigned long);
+// ARCH_SET_FS is not exposed via <sys/prctl.h> or <linux/prctl.h>.
+#include <asm/prctl.h>
+
+extern int arch_prctl(int, unsigned long);
 
 __LIBC_HIDDEN__ int __set_tls(void* ptr) {
-  return __arch_prctl(ARCH_SET_FS, (uintptr_t) ptr);
+  return arch_prctl(ARCH_SET_FS, (unsigned long) ptr);
 }
diff --git a/libc/arch-x86_64/bionic/setjmp.S b/libc/arch-x86_64/bionic/setjmp.S
index ba3f05f..11db14b 100644
--- a/libc/arch-x86_64/bionic/setjmp.S
+++ b/libc/arch-x86_64/bionic/setjmp.S
@@ -71,21 +71,18 @@
   .endr
 .endm
 
-ENTRY(setjmp)
-__BIONIC_WEAK_ASM_FOR_NATIVE_BRIDGE(setjmp)
+ENTRY_WEAK_FOR_NATIVE_BRIDGE(setjmp)
   movl $1,%esi
   jmp PIC_PLT(sigsetjmp)
 END(setjmp)
 
-ENTRY(_setjmp)
-__BIONIC_WEAK_ASM_FOR_NATIVE_BRIDGE(_setjmp)
+ENTRY_WEAK_FOR_NATIVE_BRIDGE(_setjmp)
   movl $0,%esi
   jmp PIC_PLT(sigsetjmp)
 END(_setjmp)
 
 // int sigsetjmp(sigjmp_buf env, int save_signal_mask);
-ENTRY(sigsetjmp)
-__BIONIC_WEAK_ASM_FOR_NATIVE_BRIDGE(sigsetjmp)
+ENTRY_WEAK_FOR_NATIVE_BRIDGE(sigsetjmp)
   pushq %rdi
   movq %rsi,%rdi
   call PIC_PLT(__bionic_setjmp_cookie_get)
@@ -137,8 +134,7 @@
 END(sigsetjmp)
 
 // void siglongjmp(sigjmp_buf env, int value);
-ENTRY(siglongjmp)
-__BIONIC_WEAK_ASM_FOR_NATIVE_BRIDGE(siglongjmp)
+ENTRY_WEAK_FOR_NATIVE_BRIDGE(siglongjmp)
   movq %rdi,%r12
   pushq %rsi // Push 'value'.
 
@@ -203,7 +199,5 @@
   call PIC_PLT(__bionic_setjmp_checksum_mismatch)
 END(siglongjmp)
 
-ALIAS_SYMBOL(longjmp, siglongjmp)
-__BIONIC_WEAK_ASM_FOR_NATIVE_BRIDGE(longjmp)
-ALIAS_SYMBOL(_longjmp, siglongjmp)
-__BIONIC_WEAK_ASM_FOR_NATIVE_BRIDGE(_longjmp)
+ALIAS_SYMBOL_WEAK_FOR_NATIVE_BRIDGE(longjmp, siglongjmp)
+ALIAS_SYMBOL_WEAK_FOR_NATIVE_BRIDGE(_longjmp, siglongjmp)
diff --git a/libc/arch-x86_64/bionic/vfork.S b/libc/arch-x86_64/bionic/vfork.S
index 8cfcc36..56d7050 100644
--- a/libc/arch-x86_64/bionic/vfork.S
+++ b/libc/arch-x86_64/bionic/vfork.S
@@ -31,8 +31,7 @@
 
 // This custom code preserves the return address across the system call.
 
-ENTRY(vfork)
-__BIONIC_WEAK_ASM_FOR_NATIVE_BRIDGE(vfork)
+ENTRY_WEAK_FOR_NATIVE_BRIDGE(vfork)
   popq    %rdi  // Grab the return address.
 
   // Set cached_pid_ to 0, vforked_ to 1, and stash the previous value.
diff --git a/libc/arch-x86_64/dynamic_function_dispatch.cpp b/libc/arch-x86_64/dynamic_function_dispatch.cpp
index c846ded..cbe68a3 100644
--- a/libc/arch-x86_64/dynamic_function_dispatch.cpp
+++ b/libc/arch-x86_64/dynamic_function_dispatch.cpp
@@ -32,18 +32,18 @@
 
 extern "C" {
 
-typedef int memset_func(void* __dst, int __ch, size_t __n);
 DEFINE_IFUNC_FOR(memset) {
   __builtin_cpu_init();
-  if (__builtin_cpu_supports("avx2")) RETURN_FUNC(memset_func, memset_avx2);
-  RETURN_FUNC(memset_func, memset_generic);
+  if (__builtin_cpu_supports("avx2")) RETURN_FUNC(memset_func_t, memset_avx2);
+  RETURN_FUNC(memset_func_t, memset_generic);
 }
+MEMSET_SHIM()
 
-typedef void* __memset_chk_func(void* s, int c, size_t n, size_t n2);
 DEFINE_IFUNC_FOR(__memset_chk) {
   __builtin_cpu_init();
-  if (__builtin_cpu_supports("avx2")) RETURN_FUNC(__memset_chk_func, __memset_chk_avx2);
-  RETURN_FUNC(__memset_chk_func, __memset_chk_generic);
+  if (__builtin_cpu_supports("avx2")) RETURN_FUNC(__memset_chk_func_t, __memset_chk_avx2);
+  RETURN_FUNC(__memset_chk_func_t, __memset_chk_generic);
 }
+__MEMSET_CHK_SHIM()
 
 }  // extern "C"
diff --git a/libc/arch-x86_64/static_function_dispatch.S b/libc/arch-x86_64/static_function_dispatch.S
deleted file mode 100644
index 93ff5f2..0000000
--- a/libc/arch-x86_64/static_function_dispatch.S
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Copyright (C) 2022 The Android Open Source Project
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *  * Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- *  * Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in
- *    the documentation and/or other materials provided with the
- *    distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
- * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#include <private/bionic_asm.h>
-
-#define FUNCTION_DELEGATE(name, impl) \
-ENTRY(name); \
-    jmp impl; \
-END(name)
-
-FUNCTION_DELEGATE(memset, memset_generic)
-FUNCTION_DELEGATE(__memset_chk, __memset_chk_generic)
diff --git a/libc/arch-x86_64/string/avx2-memset-kbl.S b/libc/arch-x86_64/string/avx2-memset-kbl.S
index 09dd07d..35d682a 100644
--- a/libc/arch-x86_64/string/avx2-memset-kbl.S
+++ b/libc/arch-x86_64/string/avx2-memset-kbl.S
@@ -30,7 +30,6 @@
 
 #include <private/bionic_asm.h>
 
-#include "cache.h"
 
 #ifndef L
 # define L(label)	.L##label
@@ -63,10 +62,9 @@
 	testb	$2, %dl
 	jnz	L(2_3bytes)
 	testb	$1, %dl
-	jz	L(return)
+	jz	1f
 	movb	%cl, (%rdi)
-L(return):
-	ret
+1:	ret
 
 L(8_15bytes):
 	movq	%rcx, (%rdi)
@@ -90,59 +88,51 @@
 	movdqu	%xmm0, (%rdi)
 	movdqu	%xmm0, -16(%rdi, %rdx)
 	cmpq	$32, %rdx
-	jbe	L(32bytesless)
+	jbe	L(done)
 	movdqu	%xmm0, 16(%rdi)
 	movdqu	%xmm0, -32(%rdi, %rdx)
 	cmpq	$64, %rdx
-	jbe	L(64bytesless)
+	jbe	L(done)
 	movdqu	%xmm0, 32(%rdi)
 	movdqu	%xmm0, 48(%rdi)
 	movdqu	%xmm0, -64(%rdi, %rdx)
 	movdqu	%xmm0, -48(%rdi, %rdx)
 	cmpq	$128, %rdx
-	jbe	L(128bytesless)
-        vpbroadcastb %xmm0, %ymm0
+	jbe	L(done)
+	vpbroadcastb %xmm0, %ymm0
 	vmovdqu	%ymm0, 64(%rdi)
 	vmovdqu	%ymm0, 96(%rdi)
 	vmovdqu	%ymm0, -128(%rdi, %rdx)
 	vmovdqu	%ymm0, -96(%rdi, %rdx)
 	cmpq	$256, %rdx
-        ja      L(256bytesmore)
-L(32bytesless):
-L(64bytesless):
-L(128bytesless):
-	ret
+	jbe	L(done)
 
 	ALIGN (4)
-L(256bytesmore):
 	leaq	128(%rdi), %rcx
 	andq	$-128, %rcx
 	movq	%rdx, %r8
 	addq	%rdi, %rdx
 	andq	$-128, %rdx
 	cmpq	%rcx, %rdx
-	je	L(return)
+	je	L(done)
 
-#ifdef SHARED_CACHE_SIZE
-	cmp	$SHARED_CACHE_SIZE, %r8
-#else
-	cmp	__x86_64_shared_cache_size(%rip), %r8
-#endif
-	ja	L(256bytesmore_nt)
+	cmp	__x86_shared_cache_size(%rip), %r8
+
+	ja	L(non_temporal_loop)
 
 	ALIGN (4)
-L(256bytesmore_normal):
+L(normal_loop):
 	vmovdqa	%ymm0, (%rcx)
 	vmovdqa	%ymm0, 32(%rcx)
 	vmovdqa	%ymm0, 64(%rcx)
 	vmovdqa	%ymm0, 96(%rcx)
 	addq	$128, %rcx
 	cmpq	%rcx, %rdx
-	jne	L(256bytesmore_normal)
-	ret
+	jne	L(normal_loop)
+	jmp	L(done)
 
 	ALIGN (4)
-L(256bytesmore_nt):
+L(non_temporal_loop):
 	movntdq	 %xmm0, (%rcx)
 	movntdq	 %xmm0, 16(%rcx)
 	movntdq	 %xmm0, 32(%rcx)
@@ -153,8 +143,14 @@
 	movntdq	 %xmm0, 112(%rcx)
 	leaq	128(%rcx), %rcx
 	cmpq	%rcx, %rdx
-	jne	L(256bytesmore_nt)
+	jne	L(non_temporal_loop)
+	# We used non-temporal stores, so we need a fence here.
 	sfence
+
+L(done):
+	# We used the ymm registers, and that can break SSE2 performance
+	# unless you do this.
+	vzeroupper
 	ret
 
 END(memset_avx2)
diff --git a/libc/arch-x86_64/string/cache.h b/libc/arch-x86_64/string/cache.h
deleted file mode 100644
index 4131509..0000000
--- a/libc/arch-x86_64/string/cache.h
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
-Copyright (c) 2014, Intel Corporation
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
-    * Redistributions of source code must retain the above copyright notice,
-    * this list of conditions and the following disclaimer.
-
-    * Redistributions in binary form must reproduce the above copyright notice,
-    * this list of conditions and the following disclaimer in the documentation
-    * and/or other materials provided with the distribution.
-
-    * Neither the name of Intel Corporation nor the names of its contributors
-    * may be used to endorse or promote products derived from this software
-    * without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
-ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-
-/* Values are optimized for Core Architecture */
-#define SHARED_CACHE_SIZE (4096*1024)  /* Core Architecture L2 Cache */
-#define DATA_CACHE_SIZE   (24*1024)    /* Core Architecture L1 Data Cache */
-
-#define SHARED_CACHE_SIZE_HALF (SHARED_CACHE_SIZE / 2)
-#define DATA_CACHE_SIZE_HALF   (DATA_CACHE_SIZE / 2)
diff --git a/libc/arch-x86_64/string/sse2-memmove-slm.S b/libc/arch-x86_64/string/sse2-memmove-slm.S
index 7395028..8b32680 100644
--- a/libc/arch-x86_64/string/sse2-memmove-slm.S
+++ b/libc/arch-x86_64/string/sse2-memmove-slm.S
@@ -28,7 +28,6 @@
 SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */
 
-#include "cache.h"
 
 #ifndef MEMMOVE
 # define MEMMOVE		memmove
@@ -189,8 +188,9 @@
 	cmp	%r8, %rbx
 	jbe	L(mm_copy_remaining_forward)
 
-	cmp	$SHARED_CACHE_SIZE_HALF, %rdx
-	jae	L(mm_large_page_loop_forward)
+	cmp	__x86_shared_cache_size_half(%rip), %rdx
+
+	ja      L(mm_overlapping_check_forward)
 
 	.p2align 4
 L(mm_main_loop_forward):
@@ -414,8 +414,9 @@
 	cmp	%r9, %rbx
 	jae	L(mm_recalc_len)
 
-	cmp	$SHARED_CACHE_SIZE_HALF, %rdx
-	jae	L(mm_large_page_loop_backward)
+	cmp	__x86_shared_cache_size_half(%rip), %rdx
+
+	ja	L(mm_overlapping_check_backward)
 
 	.p2align 4
 L(mm_main_loop_backward):
@@ -481,6 +482,13 @@
 /* Big length copy forward part.  */
 
 	.p2align 4
+
+L(mm_overlapping_check_forward):
+	mov	%rsi, %r9
+	add	%rdx, %r9
+	cmp	__x86_shared_cache_size(%rip), %r9
+	jbe	L(mm_main_loop_forward)
+
 L(mm_large_page_loop_forward):
 	movdqu	(%r8, %rsi), %xmm0
 	movdqu	16(%r8, %rsi), %xmm1
@@ -498,6 +506,14 @@
 
 /* Big length copy backward part.  */
 	.p2align 4
+
+L(mm_overlapping_check_backward):
+	mov	%rdi, %r11
+	sub	%rsi, %r11 /* r11 = dst - src, diff */
+	add	%rdx, %r11
+	cmp	__x86_shared_cache_size(%rip), %r11
+	jbe	L(mm_main_loop_backward)
+
 L(mm_large_page_loop_backward):
 	movdqu	-64(%r9, %r8), %xmm0
 	movdqu	-48(%r9, %r8), %xmm1
diff --git a/libc/arch-x86_64/string/sse2-memset-slm.S b/libc/arch-x86_64/string/sse2-memset-slm.S
index cceadd2..84ab327 100644
--- a/libc/arch-x86_64/string/sse2-memset-slm.S
+++ b/libc/arch-x86_64/string/sse2-memset-slm.S
@@ -30,7 +30,6 @@
 
 #include <private/bionic_asm.h>
 
-#include "cache.h"
 
 #ifndef L
 # define L(label)	.L##label
@@ -116,11 +115,8 @@
 	cmpq	%rcx, %rdx
 	je	L(return)
 
-#ifdef SHARED_CACHE_SIZE
-	cmp	$SHARED_CACHE_SIZE, %r8
-#else
-	cmp	__x86_64_shared_cache_size(%rip), %r8
-#endif
+	cmp	__x86_shared_cache_size(%rip), %r8
+
 	ja	L(128bytesmore_nt)
 
 	ALIGN (4)
diff --git a/libc/arch-x86_64/string/sse4-memcmp-slm.S b/libc/arch-x86_64/string/sse4-memcmp-slm.S
index 8a8b180..46ad78d 100644
--- a/libc/arch-x86_64/string/sse4-memcmp-slm.S
+++ b/libc/arch-x86_64/string/sse4-memcmp-slm.S
@@ -28,7 +28,6 @@
 SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */
 
-#include "cache.h"
 
 #ifndef MEMCMP
 # define MEMCMP		memcmp
@@ -353,11 +352,7 @@
 
 	ALIGN (4)
 L(512bytesormore):
-#ifdef DATA_CACHE_SIZE_HALF
-	mov	$DATA_CACHE_SIZE_HALF, %r8
-#else
-	mov	__x86_64_data_cache_size_half(%rip), %r8
-#endif
+	mov	__x86_data_cache_size_half(%rip), %r8
 	mov	%r8, %r9
 	shr	$1, %r8
 	add	%r9, %r8
@@ -669,11 +664,7 @@
 
 	ALIGN (4)
 L(512bytesormorein2aligned):
-#ifdef DATA_CACHE_SIZE_HALF
-	mov	$DATA_CACHE_SIZE_HALF, %r8
-#else
-	mov	__x86_64_data_cache_size_half(%rip), %r8
-#endif
+	mov	__x86_data_cache_size_half(%rip), %r8
 	mov	%r8, %r9
 	shr	$1, %r8
 	add	%r9, %r8
diff --git a/libc/async_safe/Android.bp b/libc/async_safe/Android.bp
index eb690dd..c7de2ce 100644
--- a/libc/async_safe/Android.bp
+++ b/libc/async_safe/Android.bp
@@ -23,7 +23,10 @@
     native_bridge_supported: true,
 
     include_dirs: ["bionic/libc"],
-    header_libs: ["libc_headers", "liblog_headers"],
+    header_libs: [
+        "libc_headers",
+        "liblog_headers",
+    ],
 
     export_include_dirs: ["include"],
     export_header_lib_headers: ["liblog_headers"],
diff --git a/libc/async_safe/async_safe_log.cpp b/libc/async_safe/async_safe_log.cpp
index 420560f..07133b7 100644
--- a/libc/async_safe/async_safe_log.cpp
+++ b/libc/async_safe/async_safe_log.cpp
@@ -48,9 +48,7 @@
 #include <android/set_abort_message.h>
 #include <async_safe/log.h>
 
-#include "private/CachedProperty.h"
 #include "private/ErrnoRestorer.h"
-#include "private/ScopedPthreadMutexLocker.h"
 
 // Don't call libc's close or socket, since it might call back into us as a result of fdsan/fdtrack.
 #pragma GCC poison close
@@ -207,10 +205,12 @@
   // Decode the conversion specifier.
   int is_signed = (conversion == 'd' || conversion == 'i' || conversion == 'o');
   int base = 10;
-  if (conversion == 'x' || conversion == 'X') {
+  if (tolower(conversion) == 'x') {
     base = 16;
   } else if (conversion == 'o') {
     base = 8;
+  } else if (tolower(conversion) == 'b') {
+    base = 2;
   }
   bool caps = (conversion == 'X');
 
@@ -359,8 +359,21 @@
       buffer[1] = 'x';
       format_integer(buffer + 2, sizeof(buffer) - 2, value, 'x');
     } else if (c == 'm') {
-      strerror_r(errno, buffer, sizeof(buffer));
-    } else if (c == 'd' || c == 'i' || c == 'o' || c == 'u' || c == 'x' || c == 'X') {
+#if __ANDROID_API_LEVEL__ >= 35 // This library is used in mainline modules.
+      if (alternate) {
+        const char* name = strerrorname_np(errno);
+        if (name) {
+          strcpy(buffer, name);
+        } else {
+          format_integer(buffer, sizeof(buffer), errno, 'd');
+        }
+      } else
+#endif
+      {
+        strerror_r(errno, buffer, sizeof(buffer));
+      }
+    } else if (tolower(c) == 'b' || c == 'd' || c == 'i' || c == 'o' || c == 'u' ||
+               tolower(c) == 'x') {
       /* integers - first read value from stack */
       uint64_t value;
       int is_signed = (c == 'd' || c == 'i' || c == 'o');
@@ -391,10 +404,10 @@
         value = static_cast<uint64_t>((static_cast<int64_t>(value << shift)) >> shift);
       }
 
-      if (alternate && value != 0 && (c == 'x' || c == 'o')) {
-        if (c == 'x') {
+      if (alternate && value != 0 && (tolower(c) == 'x' || c == 'o' || tolower(c) == 'b')) {
+        if (tolower(c) == 'x' || tolower(c) == 'b') {
           buffer[0] = '0';
-          buffer[1] = 'x';
+          buffer[1] = c;
           format_integer(buffer + 2, sizeof(buffer) - 2, value, c);
         } else {
           buffer[0] = '0';
diff --git a/libc/bionic/NetdClientDispatch.cpp b/libc/bionic/NetdClientDispatch.cpp
index e6f4a97..be5fb11 100644
--- a/libc/bionic/NetdClientDispatch.cpp
+++ b/libc/bionic/NetdClientDispatch.cpp
@@ -20,18 +20,12 @@
 
 #include "private/bionic_fdtrack.h"
 
-#ifdef __i386__
-#define __socketcall __attribute__((__cdecl__))
-#else
-#define __socketcall
-#endif
-
-extern "C" __socketcall int __accept4(int, sockaddr*, socklen_t*, int);
-extern "C" __socketcall int __connect(int, const sockaddr*, socklen_t);
-extern "C" __socketcall int __sendmmsg(int, const mmsghdr*, unsigned int, int);
-extern "C" __socketcall ssize_t __sendmsg(int, const msghdr*, unsigned int);
-extern "C" __socketcall int __sendto(int, const void*, size_t, int, const sockaddr*, socklen_t);
-extern "C" __socketcall int __socket(int, int, int);
+extern "C" int __accept4(int, sockaddr*, socklen_t*, int);
+extern "C" int __connect(int, const sockaddr*, socklen_t);
+extern "C" int __sendmmsg(int, const mmsghdr*, unsigned int, int);
+extern "C" ssize_t __sendmsg(int, const msghdr*, unsigned int);
+extern "C" int __sendto(int, const void*, size_t, int, const sockaddr*, socklen_t);
+extern "C" int __socket(int, int, int);
 
 static unsigned fallBackNetIdForResolv(unsigned netId) {
     return netId;
diff --git a/libc/bionic/__bionic_get_shell_path.cpp b/libc/bionic/__bionic_get_shell_path.cpp
index c087b35..3ea256d 100644
--- a/libc/bionic/__bionic_get_shell_path.cpp
+++ b/libc/bionic/__bionic_get_shell_path.cpp
@@ -28,37 +28,15 @@
 
 #include "private/__bionic_get_shell_path.h"
 
-#include <errno.h>
-#include <string.h>
-#include <sys/cdefs.h>
-#include <unistd.h>
-
-#define VENDOR_PREFIX "/vendor/"
-
-static const char* init_sh_path() {
+const char* __bionic_get_shell_path() {
+  // For the host Bionic, we use the standard /bin/sh.
+  // Since P there's a /bin -> /system/bin symlink that means this will work
+  // for the device too, but as long as the NDK supports earlier API levels,
+  // we should probably make sure that this works in static binaries run on
+  // those OS versions too.
 #if !defined(__ANDROID__)
-  // For the host Bionic, use the standard /bin/sh
   return "/bin/sh";
 #else
-  /* If the device is not treble enabled, return the path to the system shell.
-   * Vendor code, on non-treble enabled devices could use system() / popen()
-   * with relative paths for executables on /system. Since /system will not be
-   * in $PATH for the vendor shell, simply return the system shell.
-   */
-
-#ifdef TREBLE_LINKER_NAMESPACES
-  /* look for /system or /vendor prefix */
-  char exe_path[strlen(VENDOR_PREFIX)];
-  ssize_t len = readlink("/proc/self/exe", exe_path, sizeof(exe_path));
-  if (len != -1 && !strncmp(exe_path, VENDOR_PREFIX, strlen(VENDOR_PREFIX))) {
-    return "/vendor/bin/sh";
-  }
-#endif
   return "/system/bin/sh";
-#endif  // if !defined(__ANDROID__)
-}
-
-const char* __bionic_get_shell_path() {
-  static const char* sh_path = init_sh_path();
-  return sh_path;
+#endif
 }
diff --git a/libc/bionic/__libc_init_main_thread.cpp b/libc/bionic/__libc_init_main_thread.cpp
index 95f46e9..0d557f1 100644
--- a/libc/bionic/__libc_init_main_thread.cpp
+++ b/libc/bionic/__libc_init_main_thread.cpp
@@ -44,7 +44,7 @@
 // Declared in "private/bionic_ssp.h".
 uintptr_t __stack_chk_guard = 0;
 
-static pthread_internal_t main_thread;
+BIONIC_USED_BEFORE_LINKER_RELOCATES static pthread_internal_t main_thread;
 
 // Setup for the main thread. For dynamic executables, this is called by the
 // linker _before_ libc is mapped in memory. This means that all writes to
@@ -150,7 +150,7 @@
   // stack.)
   ThreadMapping mapping = __allocate_thread_mapping(0, PTHREAD_GUARD_SIZE);
   if (mapping.mmap_base == nullptr) {
-    async_safe_fatal("failed to mmap main thread static TLS: %s", strerror(errno));
+    async_safe_fatal("failed to mmap main thread static TLS: %m");
   }
 
   const StaticTlsLayout& layout = __libc_shared_globals()->static_tls_layout;
diff --git a/libc/bionic/abort.cpp b/libc/bionic/abort.cpp
index c8bba01..1b7a5e6 100644
--- a/libc/bionic/abort.cpp
+++ b/libc/bionic/abort.cpp
@@ -29,27 +29,27 @@
 
 #include <signal.h>
 #include <stdlib.h>
-#include <sys/syscall.h>
 #include <unistd.h>
 
 #include "private/bionic_inline_raise.h"
 
 void abort() {
-  // Don't block SIGABRT to give any signal handler a chance; we ignore
-  // any errors -- X311J doesn't allow abort to return anyway.
-  sigset64_t mask;
-  sigfillset64(&mask);
-  sigdelset64(&mask, SIGABRT);
+  // Since abort() must not return, there's no error checking in this function:
+  // there's no way to report an error anyway.
 
-  sigprocmask64(SIG_SETMASK, &mask, nullptr);
+  // Unblock SIGABRT to give any signal handler a chance.
+  sigset64_t mask;
+  sigemptyset64(&mask);
+  sigaddset64(&mask, SIGABRT);
+  sigprocmask64(SIG_UNBLOCK, &mask, nullptr);
+
+  // Use inline_raise() to raise SIGABRT without adding an uninteresting
+  // stack frame that anyone investigating the crash would have to ignore.
   inline_raise(SIGABRT);
 
-  // If SIGABRT is ignored or it's caught and the handler returns,
-  // remove the SIGABRT signal handler and raise SIGABRT again.
-  struct sigaction64 sa = { .sa_handler = SIG_DFL, .sa_flags = SA_RESTART };
-  sigaction64(SIGABRT, &sa, nullptr);
-
-  sigprocmask64(SIG_SETMASK, &mask, nullptr);
+  // If that signal was ignored or was caught and the handler returned,
+  // remove the signal handler and raise SIGABRT again.
+  signal(SIGABRT, SIG_DFL);
   inline_raise(SIGABRT);
 
   // If we get this far, just exit.
diff --git a/libc/bionic/android_crash_detail.cpp b/libc/bionic/android_crash_detail.cpp
new file mode 100644
index 0000000..30ce505
--- /dev/null
+++ b/libc/bionic/android_crash_detail.cpp
@@ -0,0 +1,122 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *  * Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *  * Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in
+ *    the documentation and/or other materials provided with the
+ *    distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#include <android/crash_detail.h>
+
+#include <async_safe/log.h>
+#include <bionic/crash_detail_internal.h>
+
+#include <bits/stdatomic.h>
+#include <pthread.h>
+#include <stddef.h>
+#include <stdint.h>
+#include <string.h>
+#include <sys/mman.h>
+#include <sys/prctl.h>
+
+#include "private/ScopedPthreadMutexLocker.h"
+#include "private/bionic_defs.h"
+#include "private/bionic_globals.h"
+
+static _Atomic(crash_detail_t*) free_head = nullptr;
+
+__BIONIC_WEAK_FOR_NATIVE_BRIDGE
+crash_detail_t* android_crash_detail_register(const void* name, size_t name_size, const void* data,
+                                              size_t data_size) {
+  auto populate_crash_detail = [&](crash_detail_t* result) {
+    result->name = reinterpret_cast<const char*>(name);
+    result->name_size = name_size;
+    result->data = reinterpret_cast<const char*>(data);
+    result->data_size = data_size;
+  };
+  // This is a atomic fast-path for RAII use-cases where the app keeps creating and deleting
+  // crash details for short periods of time to capture detailed scopes.
+  if (crash_detail_t* head = atomic_load(&free_head)) {
+    while (head != nullptr && !atomic_compare_exchange_strong(&free_head, &head, head->prev_free)) {
+      // intentionally left blank.
+    }
+    if (head) {
+      head->prev_free = nullptr;
+      populate_crash_detail(head);
+      return head;
+    }
+  }
+  ScopedPthreadMutexLocker locker(&__libc_shared_globals()->crash_detail_page_lock);
+  struct crash_detail_page_t* prev = nullptr;
+  struct crash_detail_page_t* page = __libc_shared_globals()->crash_detail_page;
+  if (page != nullptr && page->used == kNumCrashDetails) {
+    prev = page;
+    page = nullptr;
+  }
+  if (page == nullptr) {
+    size_t size = sizeof(crash_detail_page_t);
+    void* map = mmap(nullptr, size, PROT_READ | PROT_WRITE, MAP_ANON | MAP_PRIVATE, -1, 0);
+    if (map == MAP_FAILED) {
+      async_safe_format_log(ANDROID_LOG_ERROR, "libc", "failed to allocate crash_detail_page: %m");
+      return nullptr;
+    }
+    prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, map, size, "crash details");
+    page = reinterpret_cast<struct crash_detail_page_t*>(map);
+    page->prev = prev;
+    __libc_shared_globals()->crash_detail_page = page;
+  }
+  crash_detail_t* result = &page->crash_details[page->used];
+  populate_crash_detail(result);
+  page->used++;
+  return result;
+}
+
+__BIONIC_WEAK_FOR_NATIVE_BRIDGE
+void android_crash_detail_unregister(crash_detail_t* crash_detail) {
+  if (crash_detail) {
+    if (crash_detail->prev_free) {
+      // removing already removed would mess up the free-list by creating a circle.
+      return;
+    }
+    crash_detail->data = nullptr;
+    crash_detail->name = nullptr;
+    crash_detail_t* prev = atomic_load(&free_head);
+    do {
+      crash_detail->prev_free = prev;
+    } while (!atomic_compare_exchange_strong(&free_head, &prev, crash_detail));
+  }
+}
+
+__BIONIC_WEAK_FOR_NATIVE_BRIDGE
+void android_crash_detail_replace_data(crash_detail_t* crash_detail, const void* data,
+                                       size_t data_size) {
+  crash_detail->data = reinterpret_cast<const char*>(data);
+  crash_detail->data_size = data_size;
+}
+
+__BIONIC_WEAK_FOR_NATIVE_BRIDGE
+void android_crash_detail_replace_name(crash_detail_t* crash_detail, const void* name,
+                                       size_t name_size) {
+  crash_detail->name = reinterpret_cast<const char*>(name);
+  crash_detail->name_size = name_size;
+}
diff --git a/libc/bionic/android_mallopt.cpp b/libc/bionic/android_mallopt.cpp
new file mode 100644
index 0000000..79e4072
--- /dev/null
+++ b/libc/bionic/android_mallopt.cpp
@@ -0,0 +1,146 @@
+/*
+ * Copyright (C) 2009 The Android Open Source Project
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *  * Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *  * Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in
+ *    the documentation and/or other materials provided with the
+ *    distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#include <errno.h>
+#include <stdatomic.h>
+
+#include <platform/bionic/malloc.h>
+#include <private/bionic_globals.h>
+
+#include "gwp_asan_wrappers.h"
+#include "malloc_limit.h"
+
+#if !defined(LIBC_STATIC)
+#include <stdio.h>
+
+#include <private/bionic_defs.h>
+
+#include "malloc_heapprofd.h"
+
+extern bool gZygoteChild;
+extern _Atomic bool gZygoteChildProfileable;
+
+bool WriteMallocLeakInfo(FILE* fp);
+bool GetMallocLeakInfo(android_mallopt_leak_info_t* leak_info);
+bool FreeMallocLeakInfo(android_mallopt_leak_info_t* leak_info);
+#endif
+
+// =============================================================================
+// Platform-internal mallopt variant.
+// =============================================================================
+#if !defined(LIBC_STATIC)
+__BIONIC_WEAK_FOR_NATIVE_BRIDGE
+#endif
+extern "C" bool android_mallopt(int opcode, void* arg, size_t arg_size) {
+  // Functionality available in both static and dynamic libc.
+  if (opcode == M_GET_DECAY_TIME_ENABLED) {
+    if (arg == nullptr || arg_size != sizeof(bool)) {
+      errno = EINVAL;
+      return false;
+    }
+    *reinterpret_cast<bool*>(arg) = atomic_load(&__libc_globals->decay_time_enabled);
+    return true;
+  }
+  if (opcode == M_INITIALIZE_GWP_ASAN) {
+    if (arg == nullptr || arg_size != sizeof(android_mallopt_gwp_asan_options_t)) {
+      errno = EINVAL;
+      return false;
+    }
+
+    return EnableGwpAsan(*reinterpret_cast<android_mallopt_gwp_asan_options_t*>(arg));
+  }
+  if (opcode == M_MEMTAG_STACK_IS_ON) {
+    if (arg == nullptr || arg_size != sizeof(bool)) {
+      errno = EINVAL;
+      return false;
+    }
+    *reinterpret_cast<bool*>(arg) = atomic_load(&__libc_memtag_stack);
+    return true;
+  }
+  if (opcode == M_SET_ALLOCATION_LIMIT_BYTES) {
+    return LimitEnable(arg, arg_size);
+  }
+
+#if defined(LIBC_STATIC)
+  errno = ENOTSUP;
+  return false;
+#else
+  if (opcode == M_SET_ZYGOTE_CHILD) {
+    if (arg != nullptr || arg_size != 0) {
+      errno = EINVAL;
+      return false;
+    }
+    gZygoteChild = true;
+    return true;
+  }
+  if (opcode == M_INIT_ZYGOTE_CHILD_PROFILING) {
+    if (arg != nullptr || arg_size != 0) {
+      errno = EINVAL;
+      return false;
+    }
+    atomic_store_explicit(&gZygoteChildProfileable, true, memory_order_release);
+    // Also check if heapprofd should start profiling from app startup.
+    HeapprofdInitZygoteChildProfiling();
+    return true;
+  }
+  if (opcode == M_GET_PROCESS_PROFILEABLE) {
+    if (arg == nullptr || arg_size != sizeof(bool)) {
+      errno = EINVAL;
+      return false;
+    }
+    // Native processes are considered profileable. Zygote children are considered
+    // profileable only when appropriately tagged.
+    *reinterpret_cast<bool*>(arg) =
+        !gZygoteChild || atomic_load_explicit(&gZygoteChildProfileable, memory_order_acquire);
+    return true;
+  }
+  if (opcode == M_WRITE_MALLOC_LEAK_INFO_TO_FILE) {
+    if (arg == nullptr || arg_size != sizeof(FILE*)) {
+      errno = EINVAL;
+      return false;
+    }
+    return WriteMallocLeakInfo(reinterpret_cast<FILE*>(arg));
+  }
+  if (opcode == M_GET_MALLOC_LEAK_INFO) {
+    if (arg == nullptr || arg_size != sizeof(android_mallopt_leak_info_t)) {
+      errno = EINVAL;
+      return false;
+    }
+    return GetMallocLeakInfo(reinterpret_cast<android_mallopt_leak_info_t*>(arg));
+  }
+  if (opcode == M_FREE_MALLOC_LEAK_INFO) {
+    if (arg == nullptr || arg_size != sizeof(android_mallopt_leak_info_t)) {
+      errno = EINVAL;
+      return false;
+    }
+    return FreeMallocLeakInfo(reinterpret_cast<android_mallopt_leak_info_t*>(arg));
+  }
+  // Try heapprofd's mallopt, as it handles options not covered here.
+  return HeapprofdMallopt(opcode, arg, arg_size);
+#endif
+}
diff --git a/libc/bionic/android_profiling_dynamic.cpp b/libc/bionic/android_profiling_dynamic.cpp
index 8c9127e..849d04b 100644
--- a/libc/bionic/android_profiling_dynamic.cpp
+++ b/libc/bionic/android_profiling_dynamic.cpp
@@ -126,15 +126,14 @@
 static void HandleTracedPerfSignal() {
   ScopedFd sock_fd{ socket(AF_UNIX, SOCK_STREAM | SOCK_NONBLOCK | SOCK_CLOEXEC, 0 /*protocol*/) };
   if (sock_fd.get() == -1) {
-    async_safe_format_log(ANDROID_LOG_ERROR, "libc", "failed to create socket: %s", strerror(errno));
+    async_safe_format_log(ANDROID_LOG_ERROR, "libc", "failed to create socket: %m");
     return;
   }
 
   sockaddr_un saddr{ AF_UNIX, "/dev/socket/traced_perf" };
   size_t addrlen = sizeof(sockaddr_un);
   if (connect(sock_fd.get(), reinterpret_cast<const struct sockaddr*>(&saddr), addrlen) == -1) {
-    async_safe_format_log(ANDROID_LOG_ERROR, "libc", "failed to connect to traced_perf socket: %s",
-                          strerror(errno));
+    async_safe_format_log(ANDROID_LOG_ERROR, "libc", "failed to connect to traced_perf socket: %m");
     return;
   }
 
@@ -153,13 +152,11 @@
   }
 
   if (maps_fd.get() == -1) {
-    async_safe_format_log(ANDROID_LOG_ERROR, "libc", "failed to open /proc/self/maps: %s",
-                          strerror(errno));
+    async_safe_format_log(ANDROID_LOG_ERROR, "libc", "failed to open /proc/self/maps: %m");
     return;
   }
   if (mem_fd.get() == -1) {
-    async_safe_format_log(ANDROID_LOG_ERROR, "libc", "failed to open /proc/self/mem: %s",
-                          strerror(errno));
+    async_safe_format_log(ANDROID_LOG_ERROR, "libc", "failed to open /proc/self/mem: %m");
     return;
   }
 
@@ -183,7 +180,7 @@
   memcpy(CMSG_DATA(cmsg), send_fds, num_fds * sizeof(int));
 
   if (sendmsg(sock_fd.get(), &msg_hdr, 0) == -1) {
-    async_safe_format_log(ANDROID_LOG_ERROR, "libc", "failed to sendmsg: %s", strerror(errno));
+    async_safe_format_log(ANDROID_LOG_ERROR, "libc", "failed to sendmsg: %m");
   }
 }
 
diff --git a/libc/bionic/android_set_abort_message.cpp b/libc/bionic/android_set_abort_message.cpp
index d5f8cb9..05adf3e 100644
--- a/libc/bionic/android_set_abort_message.cpp
+++ b/libc/bionic/android_set_abort_message.cpp
@@ -28,9 +28,12 @@
 
 #include <android/set_abort_message.h>
 
+#include <async_safe/log.h>
+
+#include <bits/stdatomic.h>
 #include <pthread.h>
-#include <stdint.h>
 #include <stddef.h>
+#include <stdint.h>
 #include <string.h>
 #include <sys/mman.h>
 #include <sys/prctl.h>
diff --git a/libc/bionic/android_unsafe_frame_pointer_chase.cpp b/libc/bionic/android_unsafe_frame_pointer_chase.cpp
index 1a59718..7d5cd6c 100644
--- a/libc/bionic/android_unsafe_frame_pointer_chase.cpp
+++ b/libc/bionic/android_unsafe_frame_pointer_chase.cpp
@@ -74,13 +74,19 @@
   while (1) {
 #if defined(__riscv)
     // Frame addresses seem to have been implemented incorrectly for RISC-V.
-    // See https://reviews.llvm.org/D87579.
+    // See https://reviews.llvm.org/D87579. We did at least manage to get this
+    // documented in the RISC-V psABI though:
+    // https://github.com/riscv-non-isa/riscv-elf-psabi-doc/blob/master/riscv-cc.adoc#frame-pointer-convention
     auto* frame = reinterpret_cast<frame_record*>(begin - 16);
 #else
     auto* frame = reinterpret_cast<frame_record*>(begin);
 #endif
     if (num_frames < num_entries) {
-      buf[num_frames] = __bionic_clear_pac_bits(frame->return_addr);
+      uintptr_t addr = __bionic_clear_pac_bits(frame->return_addr);
+      if (addr == 0) {
+        break;
+      }
+      buf[num_frames] = addr;
     }
     ++num_frames;
     if (frame->next_frame < begin + sizeof(frame_record) || frame->next_frame >= end ||
diff --git a/libc/bionic/atexit.cpp b/libc/bionic/atexit.cpp
index 5dbf322..29f9c7b 100644
--- a/libc/bionic/atexit.cpp
+++ b/libc/bionic/atexit.cpp
@@ -73,8 +73,8 @@
   // restart concurrent __cxa_finalize passes.
   uint64_t total_appends_;
 
-  static size_t page_start_of_index(size_t idx) { return PAGE_START(idx * sizeof(AtexitEntry)); }
-  static size_t page_end_of_index(size_t idx) { return PAGE_END(idx * sizeof(AtexitEntry)); }
+  static size_t page_start_of_index(size_t idx) { return page_start(idx * sizeof(AtexitEntry)); }
+  static size_t page_end_of_index(size_t idx) { return page_end(idx * sizeof(AtexitEntry)); }
 
   // Recompact the array if it will save at least one page of memory at the end.
   bool needs_recompaction() const {
@@ -158,7 +158,7 @@
 
   const int prot = PROT_READ | (writable ? PROT_WRITE : 0);
   if (mprotect(reinterpret_cast<char*>(array_) + start_byte, byte_len, prot) != 0) {
-    async_safe_fatal("mprotect failed on atexit array: %s", strerror(errno));
+    async_safe_fatal("mprotect failed on atexit array: %m");
   }
 }
 
@@ -167,7 +167,7 @@
 // than one.
 bool AtexitArray::next_capacity(size_t capacity, size_t* result) {
   if (capacity == 0) {
-    *result = PAGE_END(sizeof(AtexitEntry)) / sizeof(AtexitEntry);
+    *result = page_end(sizeof(AtexitEntry)) / sizeof(AtexitEntry);
     return true;
   }
   size_t num_bytes;
@@ -198,8 +198,8 @@
   }
   if (new_pages == MAP_FAILED) {
     async_safe_format_log(ANDROID_LOG_WARN, "libc",
-                          "__cxa_atexit: mmap/mremap failed to allocate %zu bytes: %s",
-                          new_capacity_bytes, strerror(errno));
+                          "__cxa_atexit: mmap/mremap failed to allocate %zu bytes: %m",
+                          new_capacity_bytes);
   } else {
     result = true;
     prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, new_pages, new_capacity_bytes, "atexit handlers");
diff --git a/libc/bionic/bionic_allocator.cpp b/libc/bionic/bionic_allocator.cpp
index 98183d4..41baf8b 100644
--- a/libc/bionic/bionic_allocator.cpp
+++ b/libc/bionic/bionic_allocator.cpp
@@ -95,12 +95,10 @@
   return result;
 }
 
-BionicSmallObjectAllocator::BionicSmallObjectAllocator(uint32_t type,
-                                                       size_t block_size)
+BionicSmallObjectAllocator::BionicSmallObjectAllocator(uint32_t type, size_t block_size)
     : type_(type),
       block_size_(block_size),
-      blocks_per_page_((PAGE_SIZE - sizeof(small_object_page_info)) /
-                       block_size),
+      blocks_per_page_((page_size() - sizeof(small_object_page_info)) / block_size),
       free_pages_cnt_(0),
       page_list_(nullptr) {}
 
@@ -157,14 +155,13 @@
   if (page_list_ == page) {
     page_list_ = page->next_page;
   }
-  munmap(page, PAGE_SIZE);
+  munmap(page, page_size());
   free_pages_cnt_--;
 }
 
 void BionicSmallObjectAllocator::free(void* ptr) {
   small_object_page_info* const page =
-      reinterpret_cast<small_object_page_info*>(
-          PAGE_START(reinterpret_cast<uintptr_t>(ptr)));
+      reinterpret_cast<small_object_page_info*>(page_start(reinterpret_cast<uintptr_t>(ptr)));
 
   if (reinterpret_cast<uintptr_t>(ptr) % block_size_ != 0) {
     async_safe_fatal("invalid pointer: %p (block_size=%zd)", ptr, block_size_);
@@ -192,14 +189,13 @@
 }
 
 void BionicSmallObjectAllocator::alloc_page() {
-  void* const map_ptr = mmap(nullptr, PAGE_SIZE, PROT_READ | PROT_WRITE,
-                             MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
+  void* const map_ptr =
+      mmap(nullptr, page_size(), PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
   if (map_ptr == MAP_FAILED) {
-    async_safe_fatal("mmap failed: %s", strerror(errno));
+    async_safe_fatal("mmap failed: %m");
   }
 
-  prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, map_ptr, PAGE_SIZE,
-        "bionic_alloc_small_objects");
+  prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, map_ptr, page_size(), "bionic_alloc_small_objects");
 
   small_object_page_info* const page =
       reinterpret_cast<small_object_page_info*>(map_ptr);
@@ -269,15 +265,15 @@
   size_t header_size = __BIONIC_ALIGN(kPageInfoSize, align);
   size_t allocated_size;
   if (__builtin_add_overflow(header_size, size, &allocated_size) ||
-      PAGE_END(allocated_size) < allocated_size) {
+      page_end(allocated_size) < allocated_size) {
     async_safe_fatal("overflow trying to alloc %zu bytes", size);
   }
-  allocated_size = PAGE_END(allocated_size);
+  allocated_size = page_end(allocated_size);
   void* map_ptr = mmap(nullptr, allocated_size, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS,
                        -1, 0);
 
   if (map_ptr == MAP_FAILED) {
-    async_safe_fatal("mmap failed: %s", strerror(errno));
+    async_safe_fatal("mmap failed: %m");
   }
 
   prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, map_ptr, allocated_size, "bionic_alloc_lob");
@@ -303,7 +299,7 @@
     log2_size = kSmallObjectMinSizeLog2;
   }
 
-  return get_small_object_allocator(log2_size)->alloc();
+  return get_small_object_allocator_unchecked(log2_size)->alloc();
 }
 
 void* BionicAllocator::alloc(size_t size) {
@@ -317,7 +313,7 @@
 void* BionicAllocator::memalign(size_t align, size_t size) {
   // The Bionic allocator only supports alignment up to one page, which is good
   // enough for ELF TLS.
-  align = MIN(align, PAGE_SIZE);
+  align = MIN(align, page_size());
   align = MAX(align, 16);
   if (!powerof2(align)) {
     align = BIONIC_ROUND_UP_POWER_OF_2(align);
@@ -327,16 +323,17 @@
 }
 
 inline page_info* BionicAllocator::get_page_info_unchecked(void* ptr) {
-  uintptr_t header_page = PAGE_START(reinterpret_cast<size_t>(ptr) - kPageInfoSize);
+  uintptr_t header_page = page_start(reinterpret_cast<size_t>(ptr) - kPageInfoSize);
   return reinterpret_cast<page_info*>(header_page);
 }
 
 inline page_info* BionicAllocator::get_page_info(void* ptr) {
   page_info* info = get_page_info_unchecked(ptr);
   if (memcmp(info->signature, kSignature, sizeof(kSignature)) != 0) {
-    async_safe_fatal("invalid pointer %p (page signature mismatch)", ptr);
+    async_safe_fatal("invalid pointer %p (page signature %04x instead of %04x)", ptr,
+                     *reinterpret_cast<const unsigned*>(info->signature),
+                     *reinterpret_cast<const unsigned*>(kSignature));
   }
-
   return info;
 }
 
@@ -357,12 +354,7 @@
   if (info->type == kLargeObject) {
     old_size = info->allocated_size - (static_cast<char*>(ptr) - reinterpret_cast<char*>(info));
   } else {
-    BionicSmallObjectAllocator* allocator = get_small_object_allocator(info->type);
-    if (allocator != info->allocator_addr) {
-      async_safe_fatal("invalid pointer %p (page signature mismatch)", ptr);
-    }
-
-    old_size = allocator->get_block_size();
+    old_size = get_small_object_allocator(info, ptr)->get_block_size();
   }
 
   if (old_size < size) {
@@ -381,16 +373,10 @@
   }
 
   page_info* info = get_page_info(ptr);
-
   if (info->type == kLargeObject) {
     munmap(info, info->allocated_size);
   } else {
-    BionicSmallObjectAllocator* allocator = get_small_object_allocator(info->type);
-    if (allocator != info->allocator_addr) {
-      async_safe_fatal("invalid pointer %p (invalid allocator address for the page)", ptr);
-    }
-
-    allocator->free(ptr);
+    get_small_object_allocator(info, ptr)->free(ptr);
   }
 }
 
@@ -406,7 +392,7 @@
     return info->allocated_size - (static_cast<char*>(ptr) - reinterpret_cast<char*>(info));
   }
 
-  BionicSmallObjectAllocator* allocator = get_small_object_allocator(info->type);
+  BionicSmallObjectAllocator* allocator = get_small_object_allocator_unchecked(info->type);
   if (allocator != info->allocator_addr) {
     // Invalid pointer.
     return 0;
@@ -414,7 +400,7 @@
   return allocator->get_block_size();
 }
 
-BionicSmallObjectAllocator* BionicAllocator::get_small_object_allocator(uint32_t type) {
+BionicSmallObjectAllocator* BionicAllocator::get_small_object_allocator_unchecked(uint32_t type) {
   if (type < kSmallObjectMinSizeLog2 || type > kSmallObjectMaxSizeLog2) {
     async_safe_fatal("invalid type: %u", type);
   }
@@ -422,3 +408,11 @@
   initialize_allocators();
   return &allocators_[type - kSmallObjectMinSizeLog2];
 }
+
+BionicSmallObjectAllocator* BionicAllocator::get_small_object_allocator(page_info* pi, void* ptr) {
+  BionicSmallObjectAllocator* result = get_small_object_allocator_unchecked(pi->type);
+  if (result != pi->allocator_addr) {
+    async_safe_fatal("invalid pointer %p (invalid allocator address for the page)", ptr);
+  }
+  return result;
+}
\ No newline at end of file
diff --git a/libc/bionic/bionic_call_ifunc_resolver.cpp b/libc/bionic/bionic_call_ifunc_resolver.cpp
index 437de78..d5a812c 100644
--- a/libc/bionic/bionic_call_ifunc_resolver.cpp
+++ b/libc/bionic/bionic_call_ifunc_resolver.cpp
@@ -28,8 +28,10 @@
 
 #include "private/bionic_call_ifunc_resolver.h"
 #include <sys/auxv.h>
+#include <sys/hwprobe.h>
 #include <sys/ifunc.h>
 
+#include "bionic/macros.h"
 #include "private/bionic_auxv.h"
 
 // This code is called in the linker before it has been relocated, so minimize calls into other
@@ -39,8 +41,8 @@
 ElfW(Addr) __bionic_call_ifunc_resolver(ElfW(Addr) resolver_addr) {
 #if defined(__aarch64__)
   typedef ElfW(Addr) (*ifunc_resolver_t)(uint64_t, __ifunc_arg_t*);
-  static __ifunc_arg_t arg;
-  static bool initialized = false;
+  BIONIC_USED_BEFORE_LINKER_RELOCATES static __ifunc_arg_t arg;
+  BIONIC_USED_BEFORE_LINKER_RELOCATES static bool initialized = false;
   if (!initialized) {
     initialized = true;
     arg._size = sizeof(__ifunc_arg_t);
@@ -50,13 +52,15 @@
   return reinterpret_cast<ifunc_resolver_t>(resolver_addr)(arg._hwcap | _IFUNC_ARG_HWCAP, &arg);
 #elif defined(__arm__)
   typedef ElfW(Addr) (*ifunc_resolver_t)(unsigned long);
-  static unsigned long hwcap;
-  static bool initialized = false;
-  if (!initialized) {
-    initialized = true;
-    hwcap = getauxval(AT_HWCAP);
-  }
+  static unsigned long hwcap = getauxval(AT_HWCAP);
   return reinterpret_cast<ifunc_resolver_t>(resolver_addr)(hwcap);
+#elif defined(__riscv)
+  // The third argument is currently unused, but reserved for future
+  // expansion. If we pass nullptr from the beginning, it'll be easier
+  // to recognize if/when we pass actual data (and matches glibc).
+  typedef ElfW(Addr) (*ifunc_resolver_t)(uint64_t, __riscv_hwprobe_t, void*);
+  static uint64_t hwcap = getauxval(AT_HWCAP);
+  return reinterpret_cast<ifunc_resolver_t>(resolver_addr)(hwcap, __riscv_hwprobe, nullptr);
 #else
   typedef ElfW(Addr) (*ifunc_resolver_t)(void);
   return reinterpret_cast<ifunc_resolver_t>(resolver_addr)();
diff --git a/libc/bionic/bionic_elf_tls.cpp b/libc/bionic/bionic_elf_tls.cpp
index 79893e3..3245b90 100644
--- a/libc/bionic/bionic_elf_tls.cpp
+++ b/libc/bionic/bionic_elf_tls.cpp
@@ -34,10 +34,11 @@
 #include <sys/param.h>
 #include <unistd.h>
 
+#include "platform/bionic/macros.h"
+#include "platform/bionic/page.h"
 #include "private/ScopedRWLock.h"
 #include "private/ScopedSignalBlocker.h"
 #include "private/bionic_globals.h"
-#include "platform/bionic/macros.h"
 #include "private/bionic_tls.h"
 #include "pthread_internal.h"
 
@@ -59,11 +60,18 @@
   for (size_t i = 0; i < phdr_count; ++i) {
     const ElfW(Phdr)& phdr = phdr_table[i];
     if (phdr.p_type == PT_TLS) {
-      *out = TlsSegment {
-        phdr.p_memsz,
-        phdr.p_align,
-        reinterpret_cast<void*>(load_bias + phdr.p_vaddr),
-        phdr.p_filesz,
+      *out = TlsSegment{
+          .aligned_size =
+              TlsAlignedSize{
+                  .size = phdr.p_memsz,
+                  .align =
+                      TlsAlign{
+                          .value = phdr.p_align ?: 1,  // 0 means "no alignment requirement"
+                          .skew = phdr.p_vaddr % MAX(1, phdr.p_align),
+                      },
+              },
+          .init_ptr = reinterpret_cast<void*>(load_bias + phdr.p_vaddr),
+          .init_size = phdr.p_filesz,
       };
       return true;
     }
@@ -71,114 +79,171 @@
   return false;
 }
 
-// Return true if the alignment of a TLS segment is a valid power-of-two. Also
-// cap the alignment if it's too high.
-bool __bionic_check_tls_alignment(size_t* alignment) {
-  // N.B. The size does not need to be a multiple of the alignment. With
-  // ld.bfd (or after using binutils' strip), the TLS segment's size isn't
-  // rounded up.
-  if (*alignment == 0 || !powerof2(*alignment)) {
-    return false;
-  }
-  // Bionic only respects TLS alignment up to one page.
-  *alignment = MIN(*alignment, PAGE_SIZE);
-  return true;
+// Return true if the alignment of a TLS segment is a valid power-of-two.
+bool __bionic_check_tls_align(size_t align) {
+  // Note: The size does not need to be a multiple of the alignment. With ld.bfd
+  // (or after using binutils' strip), the TLS segment's size isn't rounded up.
+  return powerof2(align);
+}
+
+static void static_tls_layout_overflow() {
+  async_safe_fatal("error: TLS segments in static TLS overflowed");
+}
+
+static size_t align_checked(size_t value, TlsAlign tls_align) {
+  const size_t align = tls_align.value;
+  const size_t skew = tls_align.skew;
+  CHECK(align != 0 && powerof2(align + 0) && skew < align);
+  const size_t result = ((value - skew + align - 1) & ~(align - 1)) + skew;
+  if (result < value) static_tls_layout_overflow();
+  return result;
 }
 
 size_t StaticTlsLayout::offset_thread_pointer() const {
   return offset_bionic_tcb_ + (-MIN_TLS_SLOT * sizeof(void*));
 }
 
-// Reserves space for the Bionic TCB and the executable's TLS segment. Returns
-// the offset of the executable's TLS segment.
-size_t StaticTlsLayout::reserve_exe_segment_and_tcb(const TlsSegment* exe_segment,
+// Allocates the Bionic TCB and the executable's TLS segment in the static TLS
+// layout, satisfying alignment requirements for both.
+//
+// For an executable's TLS accesses (using the LocalExec model), the static
+// linker bakes TLS offsets directly into the .text section, so the loader must
+// place the executable segment at the same offset relative to the TP.
+// Similarly, the Bionic TLS slots (bionic_tcb) must also be allocated at the
+// correct offset relative to the TP.
+//
+// Returns the offset of the executable's TLS segment.
+//
+// Note: This function has unit tests, but they are in bionic-unit-tests-static,
+// not bionic-unit-tests.
+size_t StaticTlsLayout::reserve_exe_segment_and_tcb(const TlsSegment* seg,
                                                     const char* progname __attribute__((unused))) {
   // Special case: if the executable has no TLS segment, then just allocate a
   // TCB and skip the minimum alignment check on ARM.
-  if (exe_segment == nullptr) {
+  if (seg == nullptr) {
     offset_bionic_tcb_ = reserve_type<bionic_tcb>();
     return 0;
   }
 
 #if defined(__arm__) || defined(__aarch64__)
+  // ARM uses a "variant 1" TLS layout. The ABI specifies that the TP points at
+  // a 2-word TCB, followed by the executable's segment. In practice, libc
+  // implementations actually allocate a larger TCB at negative offsets from the
+  // TP.
+  //
+  // Historically, Bionic allocated an 8-word TCB starting at TP+0, so to keep
+  // the executable's TLS segment from overlapping the last 6 slots, Bionic
+  // requires that executables have an 8-word PT_TLS alignment to ensure that
+  // the TCB fits in the alignment padding, which it accomplishes using
+  // crtbegin.c. Bionic uses negative offsets for new TLS slots to avoid this
+  // problem.
 
-  // First reserve enough space for the TCB before the executable segment.
-  reserve(sizeof(bionic_tcb), 1);
+  static_assert(MIN_TLS_SLOT <= 0 && MAX_TLS_SLOT >= 1);
+  static_assert(sizeof(bionic_tcb) == (MAX_TLS_SLOT - MIN_TLS_SLOT + 1) * sizeof(void*));
+  static_assert(alignof(bionic_tcb) == sizeof(void*));
+  const size_t max_align = MAX(alignof(bionic_tcb), seg->aligned_size.align.value);
 
-  // Then reserve the segment itself.
-  const size_t result = reserve(exe_segment->size, exe_segment->alignment);
+  // Allocate the TCB first. Split it into negative and non-negative slots and
+  // ensure that TP (i.e. the first non-negative slot) is aligned to max_align.
+  const size_t tcb_size_pre = -MIN_TLS_SLOT * sizeof(void*);
+  const size_t tcb_size_post = (MAX_TLS_SLOT + 1) * sizeof(void*);
+  const auto pair =
+      reserve_tp_pair(TlsAlignedSize{.size = tcb_size_pre},
+                      TlsAlignedSize{.size = tcb_size_post, .align = TlsAlign{.value = max_align}});
+  offset_bionic_tcb_ = pair.before;
+  const size_t offset_tp = pair.tp;
 
-  // The variant 1 ABI that ARM linkers follow specifies a 2-word TCB between
-  // the thread pointer and the start of the executable's TLS segment, but both
-  // the thread pointer and the TLS segment are aligned appropriately for the
-  // TLS segment. Calculate the distance between the thread pointer and the
-  // EXE's segment.
-  const size_t exe_tpoff = __BIONIC_ALIGN(sizeof(void*) * 2, exe_segment->alignment);
+  // Allocate the segment.
+  offset_exe_ = reserve(seg->aligned_size);
 
-  const size_t min_bionic_alignment = BIONIC_ROUND_UP_POWER_OF_2(MAX_TLS_SLOT) * sizeof(void*);
-  if (exe_tpoff < min_bionic_alignment) {
-    async_safe_fatal("error: \"%s\": executable's TLS segment is underaligned: "
-                     "alignment is %zu, needs to be at least %zu for %s Bionic",
-                     progname, exe_segment->alignment, min_bionic_alignment,
-                     (sizeof(void*) == 4 ? "ARM" : "ARM64"));
+  // Verify that the ABI and Bionic tpoff values are equal, which is equivalent
+  // to checking whether the segment is sufficiently aligned.
+  const size_t abi_tpoff = align_checked(2 * sizeof(void*), seg->aligned_size.align);
+  const size_t actual_tpoff = align_checked(tcb_size_post, seg->aligned_size.align);
+  CHECK(actual_tpoff == offset_exe_ - offset_tp);
+
+  if (abi_tpoff != actual_tpoff) {
+    async_safe_fatal(
+        "error: \"%s\": executable's TLS segment is underaligned: "
+        "alignment is %zu (skew %zu), needs to be at least %zu for %s Bionic",
+        progname, seg->aligned_size.align.value, seg->aligned_size.align.skew, tcb_size_post,
+        (sizeof(void*) == 4 ? "ARM" : "ARM64"));
   }
 
-  offset_bionic_tcb_ = result - exe_tpoff - (-MIN_TLS_SLOT * sizeof(void*));
-  return result;
-
 #elif defined(__i386__) || defined(__x86_64__)
 
-  // x86 uses variant 2 TLS layout. The executable's segment is located just
-  // before the TCB.
-  static_assert(MIN_TLS_SLOT == 0, "First slot of bionic_tcb must be slot #0 on x86");
-  const size_t exe_size = round_up_with_overflow_check(exe_segment->size, exe_segment->alignment);
-  reserve(exe_size, 1);
-  const size_t max_align = MAX(alignof(bionic_tcb), exe_segment->alignment);
-  offset_bionic_tcb_ = reserve(sizeof(bionic_tcb), max_align);
-  return offset_bionic_tcb_ - exe_size;
+  auto pair = reserve_tp_pair(seg->aligned_size, TlsAlignedSize::of_type<bionic_tcb>());
+  offset_exe_ = pair.before;
+  offset_bionic_tcb_ = pair.after;
 
 #elif defined(__riscv)
+  static_assert(MAX_TLS_SLOT == -1, "Last slot of bionic_tcb must be slot #(-1) on riscv");
 
-  // First reserve enough space for the TCB before the executable segment.
-  offset_bionic_tcb_ = reserve(sizeof(bionic_tcb), 1);
-
-  // Then reserve the segment itself.
-  const size_t exe_size = round_up_with_overflow_check(exe_segment->size, exe_segment->alignment);
-  return reserve(exe_size, 1);
+  auto pair = reserve_tp_pair(TlsAlignedSize::of_type<bionic_tcb>(), seg->aligned_size);
+  offset_bionic_tcb_ = pair.before;
+  offset_exe_ = pair.after;
 
 #else
 #error "Unrecognized architecture"
 #endif
+
+  return offset_exe_;
 }
 
-void StaticTlsLayout::reserve_bionic_tls() {
+size_t StaticTlsLayout::reserve_bionic_tls() {
   offset_bionic_tls_ = reserve_type<bionic_tls>();
+  return offset_bionic_tls_;
 }
 
 void StaticTlsLayout::finish_layout() {
   // Round the offset up to the alignment.
-  offset_ = round_up_with_overflow_check(offset_, alignment_);
-
-  if (overflowed_) {
-    async_safe_fatal("error: TLS segments in static TLS overflowed");
-  }
+  cursor_ = align_checked(cursor_, TlsAlign{.value = align_});
 }
 
-// The size is not required to be a multiple of the alignment. The alignment
-// must be a positive power-of-two.
-size_t StaticTlsLayout::reserve(size_t size, size_t alignment) {
-  offset_ = round_up_with_overflow_check(offset_, alignment);
-  const size_t result = offset_;
-  if (__builtin_add_overflow(offset_, size, &offset_)) overflowed_ = true;
-  alignment_ = MAX(alignment_, alignment);
+size_t StaticTlsLayout::align_cursor(TlsAlign align) {
+  cursor_ = align_checked(cursor_, align);
+  align_ = MAX(align_, align.value);
+  return cursor_;
+}
+
+size_t StaticTlsLayout::align_cursor_unskewed(size_t align) {
+  return align_cursor(TlsAlign{.value = align});
+}
+
+// Reserve the requested number of bytes at the requested alignment. The
+// requested size is not required to be a multiple of the alignment, nor is the
+// cursor aligned after the allocation.
+size_t StaticTlsLayout::reserve(TlsAlignedSize aligned_size) {
+  align_cursor(aligned_size.align);
+  const size_t result = cursor_;
+  if (__builtin_add_overflow(cursor_, aligned_size.size, &cursor_)) static_tls_layout_overflow();
   return result;
 }
 
-size_t StaticTlsLayout::round_up_with_overflow_check(size_t value, size_t alignment) {
-  const size_t old_value = value;
-  value = __BIONIC_ALIGN(value, alignment);
-  if (value < old_value) overflowed_ = true;
-  return value;
+// Calculate the TP offset and allocate something before it and something after
+// it. The TP will be aligned to:
+//
+//     MAX(before.align.value, after.align.value)
+//
+// The `before` and `after` allocations are each allocated as closely as
+// possible to the TP.
+StaticTlsLayout::TpAllocations StaticTlsLayout::reserve_tp_pair(TlsAlignedSize before,
+                                                                TlsAlignedSize after) {
+  // Tentative `before` allocation.
+  const size_t tentative_before = reserve(before);
+  const size_t tentative_before_end = align_cursor_unskewed(before.align.value);
+
+  const size_t offset_tp = align_cursor_unskewed(MAX(before.align.value, after.align.value));
+
+  const size_t offset_after = reserve(after);
+
+  // If the `after` allocation has higher alignment than `before`, then there
+  // may be alignment padding to remove between `before` and the TP. Shift
+  // `before` forward to remove this padding.
+  CHECK(((offset_tp - tentative_before_end) & (before.align.value - 1)) == 0);
+  const size_t offset_before = tentative_before + (offset_tp - tentative_before_end);
+
+  return TpAllocations{offset_before, offset_tp, offset_after};
 }
 
 // Copy each TLS module's initialization image into a newly-allocated block of
@@ -308,7 +373,11 @@
   void* mod_ptr = dtv->modules[module_idx];
   if (mod_ptr == nullptr) {
     const TlsSegment& segment = modules.module_table[module_idx].segment;
-    mod_ptr = __libc_shared_globals()->tls_allocator.memalign(segment.alignment, segment.size);
+    // TODO: Currently the aligned_size.align.skew property is ignored.
+    // That is, for a dynamic TLS block at addr A, (A % p_align) will be 0, not
+    // (p_vaddr % p_align).
+    mod_ptr = __libc_shared_globals()->tls_allocator.memalign(segment.aligned_size.align.value,
+                                                              segment.aligned_size.size);
     if (segment.init_size > 0) {
       memcpy(mod_ptr, segment.init_ptr, segment.init_size);
     }
@@ -316,8 +385,8 @@
 
     // Reports the allocation to the listener, if any.
     if (modules.on_creation_cb != nullptr) {
-      modules.on_creation_cb(mod_ptr,
-                             static_cast<void*>(static_cast<char*>(mod_ptr) + segment.size));
+      modules.on_creation_cb(
+          mod_ptr, static_cast<void*>(static_cast<char*>(mod_ptr) + segment.aligned_size.size));
     }
   }
 
@@ -331,9 +400,10 @@
 // segment.
 //
 // On most targets, this accessor function is __tls_get_addr and
-// TLS_GET_ADDR_CCONV is unset. 32-bit x86 uses ___tls_get_addr instead and a
-// regparm() calling convention.
-extern "C" void* TLS_GET_ADDR(const TlsIndex* ti) TLS_GET_ADDR_CCONV {
+// TLS_GET_ADDR_CALLING_CONVENTION is unset, but 32-bit x86 uses
+// ___tls_get_addr (with three underscores) instead, and a regparm
+// calling convention.
+extern "C" void* TLS_GET_ADDR(const TlsIndex* ti) TLS_GET_ADDR_CALLING_CONVENTION {
   TlsDtv* dtv = __get_tcb_dtv(__get_bionic_tcb());
 
   // TODO: See if we can use a relaxed memory ordering here instead.
diff --git a/libc/bionic/bionic_futex.cpp b/libc/bionic/bionic_futex.cpp
index 0ac1f6e..aa8234f 100644
--- a/libc/bionic/bionic_futex.cpp
+++ b/libc/bionic/bionic_futex.cpp
@@ -28,6 +28,7 @@
 
 #include "private/bionic_futex.h"
 
+#include <stdatomic.h>
 #include <time.h>
 
 #include "private/bionic_time_conversions.h"
@@ -35,7 +36,6 @@
 static inline __always_inline int FutexWithTimeout(volatile void* ftx, int op, int value,
                                                    bool use_realtime_clock,
                                                    const timespec* abs_timeout, int bitset) {
-  const timespec* futex_abs_timeout = abs_timeout;
   // pthread's and semaphore's default behavior is to use CLOCK_REALTIME, however this behavior is
   // essentially never intended, as that clock is prone to change discontinuously.
   //
@@ -46,16 +46,26 @@
   // We have seen numerous bugs directly attributable to this difference.  Therefore, we provide
   // this general workaround to always use CLOCK_MONOTONIC for waiting, regardless of what the input
   // timespec is.
-  timespec converted_monotonic_abs_timeout;
-  if (abs_timeout && use_realtime_clock) {
-    monotonic_time_from_realtime_time(converted_monotonic_abs_timeout, *abs_timeout);
-    if (converted_monotonic_abs_timeout.tv_sec < 0) {
+  timespec converted_timeout;
+  if (abs_timeout) {
+    if ((op & FUTEX_CMD_MASK) == FUTEX_LOCK_PI) {
+      if (!use_realtime_clock) {
+        realtime_time_from_monotonic_time(converted_timeout, *abs_timeout);
+        abs_timeout = &converted_timeout;
+      }
+    } else {
+      op &= ~FUTEX_CLOCK_REALTIME;
+      if (use_realtime_clock) {
+        monotonic_time_from_realtime_time(converted_timeout, *abs_timeout);
+        abs_timeout = &converted_timeout;
+      }
+    }
+    if (abs_timeout->tv_sec < 0) {
       return -ETIMEDOUT;
     }
-    futex_abs_timeout = &converted_monotonic_abs_timeout;
   }
 
-  return __futex(ftx, op, value, futex_abs_timeout, bitset);
+  return __futex(ftx, op, value, abs_timeout, bitset);
 }
 
 int __futex_wait_ex(volatile void* ftx, bool shared, int value, bool use_realtime_clock,
@@ -66,6 +76,22 @@
 
 int __futex_pi_lock_ex(volatile void* ftx, bool shared, bool use_realtime_clock,
                        const timespec* abs_timeout) {
-  return FutexWithTimeout(ftx, (shared ? FUTEX_LOCK_PI : FUTEX_LOCK_PI_PRIVATE), 0,
-                          use_realtime_clock, abs_timeout, 0);
+  // We really want FUTEX_LOCK_PI2 which is default CLOCK_MONOTONIC, but that isn't supported
+  // on linux before 5.14.  FUTEX_LOCK_PI uses CLOCK_REALTIME.  Here we verify support.
+
+  static atomic_int lock_op = 0;
+  int op = atomic_load_explicit(&lock_op, memory_order_relaxed);
+  if (op == 0) {
+    uint32_t tmp = 0;
+    if (__futex(&tmp, FUTEX_LOCK_PI2, 0, nullptr, 0) == 0) {
+      __futex(&tmp, FUTEX_UNLOCK_PI, 0, nullptr, 0);
+      op = FUTEX_LOCK_PI2;
+    } else {
+      op = FUTEX_LOCK_PI;
+    }
+    atomic_store_explicit(&lock_op, op, memory_order_relaxed);
+  }
+
+  if (!shared) op |= FUTEX_PRIVATE_FLAG;
+  return FutexWithTimeout(ftx, op, 0 /* value */, use_realtime_clock, abs_timeout, 0 /* bitset */);
 }
diff --git a/libc/bionic/bionic_time_conversions.cpp b/libc/bionic/bionic_time_conversions.cpp
index d21e12e..9f3c50d 100644
--- a/libc/bionic/bionic_time_conversions.cpp
+++ b/libc/bionic/bionic_time_conversions.cpp
@@ -52,23 +52,32 @@
   tv.tv_usec = ts.tv_nsec / 1000;
 }
 
-void monotonic_time_from_realtime_time(timespec& monotonic_time, const timespec& realtime_time) {
-  monotonic_time = realtime_time;
+static void convert_timespec_clocks(timespec& new_time, clockid_t new_clockbase,
+                                    const timespec& old_time, clockid_t old_clockbase) {
+  // get reference clocks
+  timespec new_clock;
+  clock_gettime(new_clockbase, &new_clock);
+  timespec old_clock;
+  clock_gettime(old_clockbase, &old_clock);
 
-  timespec cur_monotonic_time;
-  clock_gettime(CLOCK_MONOTONIC, &cur_monotonic_time);
-  timespec cur_realtime_time;
-  clock_gettime(CLOCK_REALTIME, &cur_realtime_time);
+  // compute new time by moving old delta to the new clock.
+  new_time.tv_sec = old_time.tv_sec - old_clock.tv_sec + new_clock.tv_sec;
+  new_time.tv_nsec = old_time.tv_nsec - old_clock.tv_nsec + new_clock.tv_nsec;
 
-  monotonic_time.tv_nsec -= cur_realtime_time.tv_nsec;
-  monotonic_time.tv_nsec += cur_monotonic_time.tv_nsec;
-  if (monotonic_time.tv_nsec >= NS_PER_S) {
-    monotonic_time.tv_nsec -= NS_PER_S;
-    monotonic_time.tv_sec += 1;
-  } else if (monotonic_time.tv_nsec < 0) {
-    monotonic_time.tv_nsec += NS_PER_S;
-    monotonic_time.tv_sec -= 1;
+  // correct nsec to second wrap.
+  if (new_time.tv_nsec >= NS_PER_S) {
+    new_time.tv_nsec -= NS_PER_S;
+    new_time.tv_sec += 1;
+  } else if (new_time.tv_nsec < 0) {
+    new_time.tv_nsec += NS_PER_S;
+    new_time.tv_sec -= 1;
   }
-  monotonic_time.tv_sec -= cur_realtime_time.tv_sec;
-  monotonic_time.tv_sec += cur_monotonic_time.tv_sec;
+}
+
+void monotonic_time_from_realtime_time(timespec& monotonic_time, const timespec& realtime_time) {
+  convert_timespec_clocks(monotonic_time, CLOCK_MONOTONIC, realtime_time, CLOCK_REALTIME);
+}
+
+void realtime_time_from_monotonic_time(timespec& realtime_time, const timespec& monotonic_time) {
+  convert_timespec_clocks(realtime_time, CLOCK_REALTIME, monotonic_time, CLOCK_MONOTONIC);
 }
diff --git a/libc/bionic/c32rtomb.cpp b/libc/bionic/c32rtomb.cpp
index 4fa76ff..a7cd207 100644
--- a/libc/bionic/c32rtomb.cpp
+++ b/libc/bionic/c32rtomb.cpp
@@ -78,7 +78,7 @@
     length = 4;
   } else {
     errno = EILSEQ;
-    return __MB_ERR_ILLEGAL_SEQUENCE;
+    return BIONIC_MULTIBYTE_RESULT_ILLEGAL_SEQUENCE;
   }
 
   // Output the octets representing the character in chunks
diff --git a/libc/bionic/clock.cpp b/libc/bionic/clock.cpp
index 31e6c3c..45d29b7 100644
--- a/libc/bionic/clock.cpp
+++ b/libc/bionic/clock.cpp
@@ -32,7 +32,7 @@
 
 #include "private/bionic_constants.h"
 
-// http://pubs.opengroup.org/onlinepubs/9699919799/functions/clock.html
+// https://pubs.opengroup.org/onlinepubs/9799919799.2024edition/functions/clock.html
 clock_t clock() {
   timespec ts;
   clock_gettime(CLOCK_PROCESS_CPUTIME_ID, &ts);
diff --git a/libc/bionic/ctype.cpp b/libc/bionic/ctype.cpp
index 92a4772..3c0476e 100644
--- a/libc/bionic/ctype.cpp
+++ b/libc/bionic/ctype.cpp
@@ -27,62 +27,4 @@
  */
 
 #define __BIONIC_CTYPE_INLINE /* Out of line. */
-#include <bits/ctype_inlines.h>
-
 #include <ctype.h>
-
-int isalnum_l(int c, locale_t) {
-  return isalnum(c);
-}
-
-int isalpha_l(int c, locale_t) {
-  return isalpha(c);
-}
-
-int isblank_l(int c, locale_t) {
-  return isblank(c);
-}
-
-int iscntrl_l(int c, locale_t) {
-  return iscntrl(c);
-}
-
-int isdigit_l(int c, locale_t) {
-  return isdigit(c);
-}
-
-int isgraph_l(int c, locale_t) {
-  return isgraph(c);
-}
-
-int islower_l(int c, locale_t) {
-  return islower(c);
-}
-
-int isprint_l(int c, locale_t) {
-  return isprint(c);
-}
-
-int ispunct_l(int c, locale_t) {
-  return ispunct(c);
-}
-
-int isspace_l(int c, locale_t) {
-  return isspace(c);
-}
-
-int isupper_l(int c, locale_t) {
-  return isupper(c);
-}
-
-int isxdigit_l(int c, locale_t) {
-  return isxdigit(c);
-}
-
-int toupper_l(int c, locale_t) {
-  return toupper(c);
-}
-
-int tolower_l(int c, locale_t) {
-  return tolower(c);
-}
diff --git a/libc/bionic/elf_note.cpp b/libc/bionic/elf_note.cpp
new file mode 100644
index 0000000..9cc6b21
--- /dev/null
+++ b/libc/bionic/elf_note.cpp
@@ -0,0 +1,86 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *  * Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *  * Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in
+ *    the documentation and/or other materials provided with the
+ *    distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#include "platform/bionic/macros.h"
+#include "private/elf_note.h"
+
+#include <string.h>
+
+bool __get_elf_note(unsigned note_type, const char* note_name, const ElfW(Addr) note_addr,
+                    const ElfW(Phdr)* phdr_note, const ElfW(Nhdr)** note_hdr,
+                    const char** note_desc) {
+  if (phdr_note->p_type != PT_NOTE || !note_name || !note_addr) {
+    return false;
+  }
+
+  size_t note_name_len = strlen(note_name) + 1;
+
+  ElfW(Addr) p = note_addr;
+  ElfW(Addr) note_end = p + phdr_note->p_memsz;
+  while (p + sizeof(ElfW(Nhdr)) <= note_end) {
+    // Parse the note and check it's structurally valid.
+    const ElfW(Nhdr)* note = reinterpret_cast<const ElfW(Nhdr)*>(p);
+    p += sizeof(ElfW(Nhdr));
+    const char* name = reinterpret_cast<const char*>(p);
+    if (__builtin_add_overflow(p, align_up(note->n_namesz, 4), &p)) {
+      return false;
+    }
+    const char* desc = reinterpret_cast<const char*>(p);
+    if (__builtin_add_overflow(p, align_up(note->n_descsz, 4), &p)) {
+      return false;
+    }
+    if (p > note_end) {
+      return false;
+    }
+
+    // Is this the note we're looking for?
+    if (note->n_type == note_type &&
+        note->n_namesz == note_name_len &&
+        strncmp(note_name, name, note_name_len) == 0) {
+      *note_hdr = note;
+      *note_desc = desc;
+      return true;
+    }
+  }
+  return false;
+}
+
+bool __find_elf_note(unsigned int note_type, const char* note_name, const ElfW(Phdr)* phdr_start,
+                     size_t phdr_ct, const ElfW(Nhdr)** note_hdr, const char** note_desc,
+                     const ElfW(Addr) load_bias) {
+  for (size_t i = 0; i < phdr_ct; ++i) {
+    const ElfW(Phdr)* phdr = &phdr_start[i];
+
+    ElfW(Addr) note_addr = load_bias + phdr->p_vaddr;
+    if (__get_elf_note(note_type, note_name, note_addr, phdr, note_hdr, note_desc)) {
+      return true;
+    }
+  }
+
+  return false;
+}
diff --git a/libc/bionic/ether_aton.c b/libc/bionic/ether_aton.c
deleted file mode 100644
index edd6b11..0000000
--- a/libc/bionic/ether_aton.c
+++ /dev/null
@@ -1,89 +0,0 @@
-/*
- * Copyright (C) 2010 The Android Open Source Project
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *  * Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- *  * Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in
- *    the documentation and/or other materials provided with the
- *    distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
- * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#include <net/ethernet.h>
-
-#include <ctype.h>
-#include <stdio.h>
-#include <stdlib.h>
-
-static inline int
-xdigit (char c) {
-    unsigned d;
-    d = (unsigned)(c-'0');
-    if (d < 10) return (int)d;
-    d = (unsigned)(c-'a');
-    if (d < 6) return (int)(10+d);
-    d = (unsigned)(c-'A');
-    if (d < 6) return (int)(10+d);
-    return -1;
-}
-
-/*
- * Convert Ethernet address in the standard hex-digits-and-colons to binary
- * representation.
- * Re-entrant version (GNU extensions)
- */
-struct ether_addr *
-ether_aton_r (const char *asc, struct ether_addr * addr)
-{
-    int i, val0, val1;
-    for (i = 0; i < ETHER_ADDR_LEN; ++i) {
-        val0 = xdigit(*asc);
-        asc++;
-        if (val0 < 0)
-            return NULL;
-
-        val1 = xdigit(*asc);
-        asc++;
-        if (val1 < 0)
-            return NULL;
-
-        addr->ether_addr_octet[i] = (u_int8_t)((val0 << 4) + val1);
-
-        if (i < ETHER_ADDR_LEN - 1) {
-            if (*asc != ':')
-                return NULL;
-            asc++;
-        }
-    }
-    if (*asc != '\0')
-        return NULL;
-    return addr;
-}
-
-/*
- * Convert Ethernet address in the standard hex-digits-and-colons to binary
- * representation.
- */
-struct ether_addr *
-ether_aton (const char *asc)
-{
-    static struct ether_addr addr;
-    return ether_aton_r(asc, &addr);
-}
diff --git a/libc/bionic/ether_ntoa.c b/libc/bionic/ether_ntoa.c
deleted file mode 100644
index 7c31af3..0000000
--- a/libc/bionic/ether_ntoa.c
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * Copyright (C) 2010 The Android Open Source Project
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *  * Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- *  * Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in
- *    the documentation and/or other materials provided with the
- *    distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
- * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#include <stdio.h>
-#include <sys/types.h>
-#include <net/ethernet.h>
-
-/*
- * Convert Ethernet address to standard hex-digits-and-colons printable form.
- * Re-entrant version (GNU extensions).
- */
-char *
-ether_ntoa_r (const struct ether_addr *addr, char * buf)
-{
-    snprintf(buf, 18, "%02x:%02x:%02x:%02x:%02x:%02x",
-            addr->ether_addr_octet[0], addr->ether_addr_octet[1],
-            addr->ether_addr_octet[2], addr->ether_addr_octet[3],
-            addr->ether_addr_octet[4], addr->ether_addr_octet[5]);
-    return buf;
-}
-
-/*
- * Convert Ethernet address to standard hex-digits-and-colons printable form.
- */
-char *
-ether_ntoa (const struct ether_addr *addr)
-{
-    static char buf[18];
-    return ether_ntoa_r(addr, buf);
-}
diff --git a/libc/bionic/exec.cpp b/libc/bionic/exec.cpp
index 40612e7..56544d0 100644
--- a/libc/bionic/exec.cpp
+++ b/libc/bionic/exec.cpp
@@ -41,10 +41,8 @@
 
 #include "private/FdPath.h"
 #include "private/__bionic_get_shell_path.h"
-#include "pthread_internal.h"
 
 extern "C" char** environ;
-extern "C" int __execve(const char* pathname, char* const* argv, char* const* envp);
 
 enum { ExecL, ExecLE, ExecLP };
 
@@ -183,9 +181,3 @@
   if (errno == ENOENT) errno = EBADF;
   return -1;
 }
-
-__attribute__((no_sanitize("memtag"))) int execve(const char* pathname, char* const* argv,
-                                                  char* const* envp) {
-  __get_thread()->vfork_child_stack_bottom = __builtin_frame_address(0);
-  return __execve(pathname, argv, envp);
-}
diff --git a/libc/bionic/execinfo.cpp b/libc/bionic/execinfo.cpp
index d129f7c..e53a037 100644
--- a/libc/bionic/execinfo.cpp
+++ b/libc/bionic/execinfo.cpp
@@ -73,6 +73,11 @@
 #elif defined(__aarch64__)
     // All instructions are 4 bytes long, skip back one instruction.
     ip -= 4;
+#elif defined(__riscv)
+    // C instructions are the shortest at 2 bytes long. (Unlike thumb, it's
+    // non-trivial to recognize C instructions when going backwards in the
+    // instruction stream.)
+    ip -= 2;
 #elif defined(__i386__) || defined(__x86_64__)
     // It's difficult to decode exactly where the previous instruction is,
     // so subtract 1 to estimate where the instruction lives.
diff --git a/libc/bionic/exit.cpp b/libc/bionic/exit.cpp
index 52fd193..8eda5b2 100644
--- a/libc/bionic/exit.cpp
+++ b/libc/bionic/exit.cpp
@@ -26,25 +26,22 @@
  * SUCH DAMAGE.
  */
 
+#include <pthread.h>
 #include <stdlib.h>
 #include <unistd.h>
 
 #include "private/bionic_defs.h"
-#include "pthread_internal.h"
 
 extern "C" void __cxa_finalize(void* dso_handle);
 extern "C" void __cxa_thread_finalize();
-extern "C" __noreturn void __exit_group(int status);
 
-__attribute__((no_sanitize("memtag"))) void _exit(int status) {
-  __get_thread()->vfork_child_stack_bottom = __builtin_frame_address(0);
-  __exit_group(status);
-}
-
-__strong_alias(_Exit, _exit);
+static pthread_mutex_t g_exit_mutex = PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP;
 
 __BIONIC_WEAK_FOR_NATIVE_BRIDGE
 void exit(int status) {
+  // https://austingroupbugs.net/view.php?id=1845
+  pthread_mutex_lock(&g_exit_mutex);
+
   __cxa_thread_finalize();
   __cxa_finalize(nullptr);
   _exit(status);
diff --git a/libc/bionic/fcntl.cpp b/libc/bionic/fcntl.cpp
index 754277b..7730a15 100644
--- a/libc/bionic/fcntl.cpp
+++ b/libc/bionic/fcntl.cpp
@@ -44,7 +44,7 @@
   va_end(args);
 
   if (cmd == F_SETFD && (reinterpret_cast<uintptr_t>(arg) & ~FD_CLOEXEC) != 0) {
-    __fortify_fatal("fcntl(F_SETFD) passed non-FD_CLOEXEC flag: %p", arg);
+    __fortify_fatal("fcntl(F_SETFD) only supports FD_CLOEXEC but was passed %p", arg);
   }
 
 #if defined(__LP64__)
diff --git a/libc/bionic/fdsan.cpp b/libc/bionic/fdsan.cpp
index 6433b59..0b0678b 100644
--- a/libc/bionic/fdsan.cpp
+++ b/libc/bionic/fdsan.cpp
@@ -40,6 +40,7 @@
 #include <unistd.h>
 
 #include <async_safe/log.h>
+#include <platform/bionic/page.h>
 #include <platform/bionic/reserved_signals.h>
 #include <sys/system_properties.h>
 
@@ -80,13 +81,13 @@
 
     size_t required_count = max - inline_fds;
     size_t required_size = sizeof(FdTableOverflow) + required_count * sizeof(FdEntry);
-    size_t aligned_size = __BIONIC_ALIGN(required_size, PAGE_SIZE);
+    size_t aligned_size = __BIONIC_ALIGN(required_size, page_size());
     size_t aligned_count = (aligned_size - sizeof(FdTableOverflow)) / sizeof(FdEntry);
 
     void* allocation =
         mmap(nullptr, aligned_size, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
     if (allocation == MAP_FAILED) {
-      async_safe_fatal("fdsan: mmap failed: %s", strerror(errno));
+      async_safe_fatal("fdsan: mmap failed: %m");
     }
 
     FdTableOverflow* new_overflow = reinterpret_cast<FdTableOverflow*>(allocation);
@@ -218,6 +219,8 @@
       return "ZipArchive";
     case ANDROID_FDSAN_OWNER_TYPE_NATIVE_HANDLE:
       return "native_handle_t";
+    case ANDROID_FDSAN_OWNER_TYPE_PARCEL:
+      return "Parcel";
 
     case ANDROID_FDSAN_OWNER_TYPE_GENERIC_00:
     default:
diff --git a/libc/bionic/fork.cpp b/libc/bionic/fork.cpp
index d432c6d..615e81f 100644
--- a/libc/bionic/fork.cpp
+++ b/libc/bionic/fork.cpp
@@ -50,11 +50,13 @@
   return result;
 }
 
+int _Fork() {
+  return __clone_for_fork();
+}
+
 int fork() {
   __bionic_atfork_run_prepare();
-
-  int result = __clone_for_fork();
-
+  int result = _Fork();
   if (result == 0) {
     // Disable fdsan and fdtrack post-fork, so we don't falsely trigger on processes that
     // fork, close all of their fds, and then exec.
diff --git a/libc/bionic/fortify.cpp b/libc/bionic/fortify.cpp
index 7dee5e3..80f7c20 100644
--- a/libc/bionic/fortify.cpp
+++ b/libc/bionic/fortify.cpp
@@ -99,8 +99,8 @@
 }
 
 size_t __fread_chk(void* buf, size_t size, size_t count, FILE* stream, size_t buf_size) {
-  size_t total;
-  if (__predict_false(__size_mul_overflow(size, count, &total))) {
+  unsigned long total;
+  if (__predict_false(__builtin_umull_overflow(size, count, &total))) {
     // overflow: trigger the error path in fread
     return fread(buf, size, count, stream);
   }
@@ -109,8 +109,8 @@
 }
 
 size_t __fwrite_chk(const void* buf, size_t size, size_t count, FILE* stream, size_t buf_size) {
-  size_t total;
-  if (__predict_false(__size_mul_overflow(size, count, &total))) {
+  unsigned long total;
+  if (__predict_false(__builtin_umull_overflow(size, count, &total))) {
     // overflow: trigger the error path in fwrite
     return fwrite(buf, size, count, stream);
   }
diff --git a/libc/bionic/fts.c b/libc/bionic/fts.c
index 1287267..c36835e 100644
--- a/libc/bionic/fts.c
+++ b/libc/bionic/fts.c
@@ -29,7 +29,6 @@
  * SUCH DAMAGE.
  */
 
-#include <sys/param.h>	/* ALIGN */
 #include <sys/stat.h>
 
 #include <dirent.h>
@@ -37,6 +36,7 @@
 #include <fcntl.h>
 #include <fts.h>
 #include <limits.h>
+#include <stdalign.h>
 #include <stdlib.h>
 #include <string.h>
 #include <unistd.h>
@@ -912,10 +912,14 @@
 	 * be careful that the stat structure is reasonably aligned.  Since the
 	 * fts_name field is declared to be of size 1, the fts_name pointer is
 	 * namelen + 2 before the first possible address of the stat structure.
+	 *
+	 * We can't use the same trick FreeBSD uses here because our fts_name
+	 * is a char[1] rather than a char*. This is also the reason we don't
+	 * need to say `namelen + 1`. We just assume the worst alignment.
 	 */
 	len = sizeof(FTSENT) + namelen;
 	if (!ISSET(FTS_NOSTAT))
-		len += sizeof(struct stat) + ALIGNBYTES;
+		len += alignof(struct stat) + sizeof(struct stat);
 	if ((p = calloc(1, len)) == NULL)
 		return (NULL);
 
@@ -923,7 +927,7 @@
 	p->fts_namelen = namelen;
 	p->fts_instr = FTS_NOINSTR;
 	if (!ISSET(FTS_NOSTAT))
-		p->fts_statp = (struct stat *)ALIGN(p->fts_name + namelen + 2);
+		p->fts_statp = (struct stat *)__builtin_align_up(p->fts_name + namelen + 2, alignof(struct stat));
 	memcpy(p->fts_name, name, namelen);
 
 	return (p);
diff --git a/libc/bionic/getauxval.cpp b/libc/bionic/getauxval.cpp
index a3c6b19..51ff949 100644
--- a/libc/bionic/getauxval.cpp
+++ b/libc/bionic/getauxval.cpp
@@ -26,18 +26,18 @@
  * SUCH DAMAGE.
  */
 
-#include <stddef.h>
-#include <sys/cdefs.h>
-#include <sys/auxv.h>
-#include <private/bionic_auxv.h>
-#include <private/bionic_globals.h>
-#include <private/bionic_ifuncs.h>
 #include <elf.h>
 #include <errno.h>
+#include <private/bionic_auxv.h>
+#include <private/bionic_globals.h>
+#include <stddef.h>
+#include <sys/auxv.h>
 
 // This function needs to be safe to call before TLS is set up, so it can't
 // access errno or the stack protector.
-__LIBC_HIDDEN__ unsigned long __bionic_getauxval(unsigned long type, bool* exists) {
+// Cannot use HWASan, as this is called during setup of the HWASan runtime to
+// determine the page size.
+__LIBC_HIDDEN__ unsigned long __bionic_getauxval(unsigned long type, bool* exists) __attribute__((no_sanitize("hwaddress"))) {
   for (ElfW(auxv_t)* v = __libc_shared_globals()->auxv; v->a_type != AT_NULL; ++v) {
     if (v->a_type == type) {
       *exists = true;
@@ -48,7 +48,9 @@
   return 0;
 }
 
-extern "C" unsigned long getauxval(unsigned long type) {
+// Cannot use HWASan, as this is called during setup of the HWASan runtime to
+// determine the page size.
+extern "C" unsigned long getauxval(unsigned long type) __attribute__((no_sanitize("hwaddress"))) {
   bool exists;
   unsigned long result = __bionic_getauxval(type, &exists);
   if (!exists) errno = ENOENT;
diff --git a/libc/bionic/getpagesize.cpp b/libc/bionic/getpagesize.cpp
index 3a59900..fbcabd8 100644
--- a/libc/bionic/getpagesize.cpp
+++ b/libc/bionic/getpagesize.cpp
@@ -27,9 +27,9 @@
  */
 
 #include <unistd.h>
+#include "platform/bionic/page.h"
 
-// Portable code should use sysconf(_SC_PAGE_SIZE) directly instead.
 int getpagesize() {
   // We dont use sysconf(3) here because that drags in stdio, which makes static binaries fat.
-  return PAGE_SIZE;
+  return page_size();
 }
diff --git a/libc/bionic/grp_pwd.cpp b/libc/bionic/grp_pwd.cpp
index 600693c..82ee7ba 100644
--- a/libc/bionic/grp_pwd.cpp
+++ b/libc/bionic/grp_pwd.cpp
@@ -609,6 +609,8 @@
 }
 
 // All users are in just one group, the one passed in.
+// In practice, id(1) will show you in a lot more groups, because adbd
+// adds you to a lot of supplementary groups when dropping privileges.
 int getgrouplist(const char* /*user*/, gid_t group, gid_t* groups, int* ngroups) {
   if (*ngroups < 1) {
     *ngroups = 1;
@@ -618,6 +620,12 @@
   return (*ngroups = 1);
 }
 
+// See getgrouplist() to understand why we don't call it.
+int initgroups(const char* /*user*/, gid_t group) {
+  gid_t groups[] = {group};
+  return setgroups(1, groups);
+}
+
 char* getlogin() { // NOLINT: implementing bad function.
   passwd *pw = getpwuid(getuid()); // NOLINT: implementing bad function in terms of bad function.
   return pw ? pw->pw_name : nullptr;
diff --git a/libc/bionic/gwp_asan_wrappers.cpp b/libc/bionic/gwp_asan_wrappers.cpp
index 251633d..2124f51 100644
--- a/libc/bionic/gwp_asan_wrappers.cpp
+++ b/libc/bionic/gwp_asan_wrappers.cpp
@@ -57,7 +57,7 @@
 static gwp_asan::GuardedPoolAllocator GuardedAlloc;
 static const MallocDispatch* prev_dispatch;
 
-using Action = android_mallopt_gwp_asan_options_t::Action;
+using Mode = android_mallopt_gwp_asan_options_t::Mode;
 using Options = gwp_asan::options::Options;
 
 // basename() is a mess, see the manpage. Let's be explicit what handling we
@@ -258,14 +258,14 @@
   options->Backtrace = android_unsafe_frame_pointer_chase;
   options->SampleRate = kDefaultSampleRate;
   options->MaxSimultaneousAllocations = kDefaultMaxAllocs;
+  options->Recoverable = true;
+  GwpAsanRecoverable = true;
 
-  *process_sample_rate = 1;
-  if (mallopt_options.desire == Action::TURN_ON_WITH_SAMPLING) {
+  if (mallopt_options.mode == Mode::SYSTEM_PROCESS_OR_SYSTEM_APP ||
+      mallopt_options.mode == Mode::APP_MANIFEST_DEFAULT) {
     *process_sample_rate = kDefaultProcessSampling;
-  } else if (mallopt_options.desire == Action::TURN_ON_FOR_APP_SAMPLED_NON_CRASHING) {
-    *process_sample_rate = kDefaultProcessSampling;
-    options->Recoverable = true;
-    GwpAsanRecoverable = true;
+  } else {
+    *process_sample_rate = 1;
   }
 }
 
@@ -285,7 +285,7 @@
   // be used. Tests still continue to use the environment variable though.
   if (*basename != '\0') {
     const char* default_sysprop = system_sysprop;
-    if (mallopt_options.desire == Action::TURN_ON_FOR_APP) {
+    if (mallopt_options.mode == Mode::APP_MANIFEST_ALWAYS) {
       default_sysprop = app_sysprop;
     }
     async_safe_format_buffer(&program_specific_sysprop[0], kSyspropMaxLen, "%s%s",
@@ -403,7 +403,7 @@
         /* default */ kDefaultMaxAllocs / frequency_multiplier;
   }
 
-  bool recoverable = false;
+  bool recoverable = true;
   if (GetGwpAsanBoolOption(&recoverable, mallopt_options, kRecoverableSystemSysprop,
                            kRecoverableAppSysprop, kRecoverableTargetedSyspropPrefix,
                            kRecoverableEnvVar, "recoverable")) {
@@ -425,7 +425,7 @@
   Options options;
   unsigned process_sample_rate = kDefaultProcessSampling;
   if (!GetGwpAsanOptions(&options, &process_sample_rate, mallopt_options) &&
-      mallopt_options.desire == Action::DONT_TURN_ON_UNLESS_OVERRIDDEN) {
+      mallopt_options.mode == Mode::APP_MANIFEST_NEVER) {
     return false;
   }
 
@@ -492,7 +492,7 @@
 
   android_mallopt_gwp_asan_options_t mallopt_options;
   mallopt_options.program_name = progname;
-  mallopt_options.desire = Action::TURN_ON_WITH_SAMPLING;
+  mallopt_options.mode = Mode::SYSTEM_PROCESS_OR_SYSTEM_APP;
 
   return MaybeInitGwpAsan(globals, mallopt_options);
 }
diff --git a/libc/bionic/heap_tagging.cpp b/libc/bionic/heap_tagging.cpp
index 78d21b0..6741be3 100644
--- a/libc/bionic/heap_tagging.cpp
+++ b/libc/bionic/heap_tagging.cpp
@@ -34,10 +34,16 @@
 #include <platform/bionic/malloc.h>
 #include <sanitizer/hwasan_interface.h>
 #include <sys/auxv.h>
+#include <sys/prctl.h>
 
 extern "C" void scudo_malloc_disable_memory_tagging();
 extern "C" void scudo_malloc_set_track_allocation_stacks(int);
 
+extern "C" const char* __scudo_get_stack_depot_addr();
+extern "C" const char* __scudo_get_ring_buffer_addr();
+extern "C" size_t __scudo_get_ring_buffer_size();
+extern "C" size_t __scudo_get_stack_depot_size();
+
 // Protected by `g_heap_tagging_lock`.
 static HeapTaggingLevel heap_tagging_level = M_HEAP_TAGGING_LEVEL_NONE;
 
@@ -47,6 +53,8 @@
   heap_tagging_level = __libc_shared_globals()->initial_heap_tagging_level;
 #endif
 
+  __libc_memtag_stack_abi = __libc_shared_globals()->initial_memtag_stack_abi;
+
   __libc_globals.mutate([](libc_globals* globals) {
     switch (heap_tagging_level) {
       case M_HEAP_TAGGING_LEVEL_TBI:
@@ -57,14 +65,15 @@
         break;
       case M_HEAP_TAGGING_LEVEL_SYNC:
       case M_HEAP_TAGGING_LEVEL_ASYNC:
-        atomic_store(&globals->memtag_stack, __libc_shared_globals()->initial_memtag_stack);
+        atomic_store(&globals->memtag, true);
+        atomic_store(&__libc_memtag_stack, __libc_shared_globals()->initial_memtag_stack);
         break;
       default:
         break;
     };
   });
 
-#if defined(USE_SCUDO)
+#if defined(USE_SCUDO) && !__has_feature(hwaddress_sanitizer)
   switch (heap_tagging_level) {
     case M_HEAP_TAGGING_LEVEL_TBI:
     case M_HEAP_TAGGING_LEVEL_NONE:
@@ -90,10 +99,7 @@
         }
 
         tagged_addr_ctrl = (tagged_addr_ctrl & ~PR_MTE_TCF_MASK) | tcf;
-        if (prctl(PR_SET_TAGGED_ADDR_CTRL, tagged_addr_ctrl, 0, 0, 0) < 0) {
-          return false;
-        }
-        return true;
+        return prctl(PR_SET_TAGGED_ADDR_CTRL, tagged_addr_ctrl, 0, 0, 0) >= 0;
       },
       &tcf);
 }
@@ -115,7 +121,8 @@
           // tagged and checks no longer happen.
           globals->heap_pointer_tag = static_cast<uintptr_t>(0xffull << UNTAG_SHIFT);
         }
-        atomic_store(&globals->memtag_stack, false);
+        atomic_store(&__libc_memtag_stack, false);
+        atomic_store(&globals->memtag, false);
       });
 
       if (heap_tagging_level != M_HEAP_TAGGING_LEVEL_TBI) {
@@ -124,7 +131,7 @@
           return false;
         }
       }
-#if defined(USE_SCUDO)
+#if defined(USE_SCUDO) && !__has_feature(hwaddress_sanitizer)
       scudo_malloc_disable_memory_tagging();
 #endif
       break;
@@ -152,13 +159,17 @@
         if (!set_tcf_on_all_threads(PR_MTE_TCF_ASYNC | PR_MTE_TCF_SYNC)) {
           set_tcf_on_all_threads(PR_MTE_TCF_ASYNC);
         }
-#if defined(USE_SCUDO)
+#if defined(USE_SCUDO) && !__has_feature(hwaddress_sanitizer)
         scudo_malloc_set_track_allocation_stacks(0);
 #endif
       } else if (tag_level == M_HEAP_TAGGING_LEVEL_SYNC) {
         set_tcf_on_all_threads(PR_MTE_TCF_SYNC);
-#if defined(USE_SCUDO)
+#if defined(USE_SCUDO) && !__has_feature(hwaddress_sanitizer)
         scudo_malloc_set_track_allocation_stacks(1);
+        __libc_shared_globals()->scudo_ring_buffer = __scudo_get_ring_buffer_addr();
+        __libc_shared_globals()->scudo_ring_buffer_size = __scudo_get_ring_buffer_size();
+        __libc_shared_globals()->scudo_stack_depot = __scudo_get_stack_depot_addr();
+        __libc_shared_globals()->scudo_stack_depot_size = __scudo_get_stack_depot_size();
 #endif
       }
       break;
@@ -175,6 +186,9 @@
 
 #ifdef __aarch64__
 static inline __attribute__((no_sanitize("memtag"))) void untag_memory(void* from, void* to) {
+  if (from == to) {
+    return;
+  }
   __asm__ __volatile__(
       ".arch_extension mte\n"
       "1:\n"
@@ -193,48 +207,37 @@
 #endif  // __aarch64__
 
 extern "C" __LIBC_HIDDEN__ __attribute__((no_sanitize("memtag"))) void memtag_handle_longjmp(
-    void* sp_dst __unused) {
+    void* sp_dst __unused, void* sp_src __unused) {
+  // A usual longjmp looks like this, where sp_dst was the LR in the call to setlongjmp (i.e.
+  // the SP of the frame calling setlongjmp).
+  // ┌─────────────────────┐                  │
+  // │                     │                  │
+  // ├─────────────────────┤◄──────── sp_dst  │ stack
+  // │         ...         │                  │ grows
+  // ├─────────────────────┤                  │ to lower
+  // │         ...         │                  │ addresses
+  // ├─────────────────────┤◄──────── sp_src  │
+  // │siglongjmp           │                  │
+  // ├─────────────────────┤                  │
+  // │memtag_handle_longjmp│                  │
+  // └─────────────────────┘                  ▼
 #ifdef __aarch64__
-  if (__libc_globals->memtag_stack) {
-    void* sp = __builtin_frame_address(0);
-    size_t distance = reinterpret_cast<uintptr_t>(sp_dst) - reinterpret_cast<uintptr_t>(sp);
+  if (atomic_load(&__libc_memtag_stack)) {
+    size_t distance = reinterpret_cast<uintptr_t>(sp_dst) - reinterpret_cast<uintptr_t>(sp_src);
     if (distance > kUntagLimit) {
       async_safe_fatal(
-          "memtag_handle_longjmp: stack adjustment too large! %p -> %p, distance %zx > %zx\n", sp,
-          sp_dst, distance, kUntagLimit);
+          "memtag_handle_longjmp: stack adjustment too large! %p -> %p, distance %zx > %zx\n",
+          sp_src, sp_dst, distance, kUntagLimit);
     } else {
-      untag_memory(sp, sp_dst);
+      untag_memory(sp_src, sp_dst);
     }
   }
 #endif  // __aarch64__
 
+  // We can use __has_feature here rather than __hwasan_handle_longjmp as a
+  // weak symbol because this is part of libc which is always sanitized for a
+  // hwasan enabled process.
 #if __has_feature(hwaddress_sanitizer)
   __hwasan_handle_longjmp(sp_dst);
 #endif  // __has_feature(hwaddress_sanitizer)
 }
-
-extern "C" __LIBC_HIDDEN__ __attribute__((no_sanitize("memtag"), no_sanitize("hwaddress"))) void
-memtag_handle_vfork(void* sp __unused) {
-#ifdef __aarch64__
-  if (__libc_globals->memtag_stack) {
-    void* child_sp = __get_thread()->vfork_child_stack_bottom;
-    __get_thread()->vfork_child_stack_bottom = nullptr;
-    if (child_sp) {
-      size_t distance = reinterpret_cast<uintptr_t>(sp) - reinterpret_cast<uintptr_t>(child_sp);
-      if (distance > kUntagLimit) {
-        async_safe_fatal(
-            "memtag_handle_vfork: stack adjustment too large! %p -> %p, distance %zx > %zx\n",
-            child_sp, sp, distance, kUntagLimit);
-      } else {
-        untag_memory(child_sp, sp);
-      }
-    } else {
-      async_safe_fatal("memtag_handle_vfork: child SP unknown\n");
-    }
-  }
-#endif  // __aarch64__
-
-#if __has_feature(hwaddress_sanitizer)
-  __hwasan_handle_vfork(sp);
-#endif  // __has_feature(hwaddress_sanitizer)
-}
diff --git a/libc/bionic/iconv.cpp b/libc/bionic/iconv.cpp
index 79a429c..5bff50a 100644
--- a/libc/bionic/iconv.cpp
+++ b/libc/bionic/iconv.cpp
@@ -160,9 +160,9 @@
 
       case UTF_8:
         src_bytes_used = mbrtoc32(&wc, *src_buf, *src_bytes_left, &ps);
-        if (src_bytes_used == __MB_ERR_ILLEGAL_SEQUENCE) {
+        if (src_bytes_used == BIONIC_MULTIBYTE_RESULT_ILLEGAL_SEQUENCE) {
           break;  // EILSEQ already set.
-        } else if (src_bytes_used == __MB_ERR_INCOMPLETE_SEQUENCE) {
+        } else if (src_bytes_used == BIONIC_MULTIBYTE_RESULT_INCOMPLETE_SEQUENCE) {
           errno = EINVAL;
           return false;
         }
@@ -235,9 +235,9 @@
 
       case UTF_8:
         dst_bytes_used = c32rtomb(buf, wc, &ps);
-        if (dst_bytes_used == __MB_ERR_ILLEGAL_SEQUENCE) {
+        if (dst_bytes_used == BIONIC_MULTIBYTE_RESULT_ILLEGAL_SEQUENCE) {
           break;  // EILSEQ already set.
-        } else if (dst_bytes_used == __MB_ERR_INCOMPLETE_SEQUENCE) {
+        } else if (dst_bytes_used == BIONIC_MULTIBYTE_RESULT_INCOMPLETE_SEQUENCE) {
           errno = EINVAL;
           return false;
         }
diff --git a/libc/bionic/icu_static.cpp b/libc/bionic/icu_static.cpp
index e81e291..cf24a38 100644
--- a/libc/bionic/icu_static.cpp
+++ b/libc/bionic/icu_static.cpp
@@ -29,6 +29,6 @@
 #include "private/icu.h"
 
 // We don't have dlopen/dlsym for static binaries yet.
-__attribute__((weak)) void* __find_icu_symbol(const char*) {
+void* __find_icu_symbol(const char*) {
   return nullptr;
 }
diff --git a/libc/bionic/icu_wrappers.cpp b/libc/bionic/icu_wrappers.cpp
index d9f2745..523f5a6 100644
--- a/libc/bionic/icu_wrappers.cpp
+++ b/libc/bionic/icu_wrappers.cpp
@@ -40,10 +40,3 @@
       reinterpret_cast<u_getIntPropertyValue_t>(__find_icu_symbol("u_getIntPropertyValue"));
   return u_getIntPropertyValue ? u_getIntPropertyValue(wc, property) : 0;
 }
-
-bool __icu_hasBinaryProperty(wint_t wc, UProperty property, int (*fallback)(int)) {
-  typedef UBool (*u_hasBinaryProperty_t)(UChar32, UProperty);
-  static auto u_hasBinaryProperty =
-      reinterpret_cast<u_hasBinaryProperty_t>(__find_icu_symbol("u_hasBinaryProperty"));
-  return u_hasBinaryProperty ? u_hasBinaryProperty(wc, property) : fallback(wc);
-}
diff --git a/libc/bionic/ifaddrs.cpp b/libc/bionic/ifaddrs.cpp
index 0c80f4e..cb36cc6 100644
--- a/libc/bionic/ifaddrs.cpp
+++ b/libc/bionic/ifaddrs.cpp
@@ -281,8 +281,7 @@
   ScopedFd s(socket(AF_INET, SOCK_DGRAM | SOCK_CLOEXEC, 0));
   if (s.get() == -1) {
     async_safe_format_log(ANDROID_LOG_ERROR, "libc",
-                          "socket(AF_INET, SOCK_DGRAM | SOCK_CLOEXEC) failed in ifaddrs: %s",
-                          strerror(errno));
+                          "socket(AF_INET, SOCK_DGRAM | SOCK_CLOEXEC) failed in ifaddrs: %m");
     return;
   }
 
@@ -294,8 +293,8 @@
       addr->ifa.ifa_flags = ifr.ifr_flags;
     } else {
       async_safe_format_log(ANDROID_LOG_ERROR, "libc",
-                            "ioctl(SIOCGIFFLAGS) for \"%s\" failed in ifaddrs: %s",
-                            addr->ifa.ifa_name, strerror(errno));
+                            "ioctl(SIOCGIFFLAGS) for \"%s\" failed in ifaddrs: %m",
+                            addr->ifa.ifa_name);
     }
   }
 }
diff --git a/libc/bionic/initgroups.c b/libc/bionic/initgroups.c
deleted file mode 100644
index dea6d96..0000000
--- a/libc/bionic/initgroups.c
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *  * Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- *  * Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in
- *    the documentation and/or other materials provided with the
- *    distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
- * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-#include <grp.h>
-#include <unistd.h>
-#include <stdlib.h>
-
-#define  INIT_GROUPS  2
-
-int
-initgroups (const char *user, gid_t group)
-{
-    gid_t   groups0[ INIT_GROUPS ];
-    gid_t*  groups    = groups0;
-    int     ret       = -1;
-    int     numgroups = INIT_GROUPS;
-
-    if (getgrouplist(user, group, groups, &numgroups) < 0) {
-        groups = malloc(numgroups*sizeof(groups[0]));
-        if (groups == NULL)
-            return -1;
-        if (getgrouplist(user,group,groups,&numgroups) < 0) {
-            goto EXIT;
-        }
-    }
-
-    ret = setgroups(numgroups, groups);
-
-EXIT:
-    if (groups != groups0)
-        free(groups);
-
-    return ret;
-}
diff --git a/libc/bionic/isatty.c b/libc/bionic/isatty.cpp
similarity index 92%
rename from libc/bionic/isatty.c
rename to libc/bionic/isatty.cpp
index 93af6c5..8a4aaf1 100644
--- a/libc/bionic/isatty.c
+++ b/libc/bionic/isatty.cpp
@@ -26,14 +26,10 @@
  * SUCH DAMAGE.
  */
 
-#include <unistd.h>
 #include <termios.h>
-#include <errno.h>
+#include <unistd.h>
 
-int
-isatty (int  fd)
-{
-  struct termios term;
-
-  return tcgetattr (fd, &term) == 0;
+int isatty(int fd) {
+  termios term;
+  return tcgetattr(fd, &term) == 0;
 }
diff --git a/libc/bionic/jemalloc_wrapper.cpp b/libc/bionic/jemalloc_wrapper.cpp
index ce3f314..63c9fab 100644
--- a/libc/bionic/jemalloc_wrapper.cpp
+++ b/libc/bionic/jemalloc_wrapper.cpp
@@ -15,14 +15,26 @@
  */
 
 #include <errno.h>
+#include <inttypes.h>
 #include <malloc.h>
 #include <sys/param.h>
 #include <unistd.h>
 
+#include <async_safe/log.h>
 #include <private/MallocXmlElem.h>
 
 #include "jemalloc.h"
 
+__BEGIN_DECLS
+
+size_t je_mallinfo_narenas();
+size_t je_mallinfo_nbins();
+struct mallinfo je_mallinfo_arena_info(size_t);
+struct mallinfo je_mallinfo_bin_info(size_t, size_t);
+void je_stats_arena(size_t arena_index, void (*callback)(size_t, size_t, size_t));
+
+__END_DECLS
+
 void* je_pvalloc(size_t bytes) {
   size_t pagesize = getpagesize();
   size_t size = __BIONIC_ALIGN(bytes, pagesize);
@@ -67,9 +79,13 @@
 int je_mallopt(int param, int value) {
   // The only parameter we currently understand is M_DECAY_TIME.
   if (param == M_DECAY_TIME) {
-    // Only support setting the value to 1 or 0.
+    // Only support setting the value to -1 or 0 or 1.
     ssize_t decay_time_ms;
-    if (value) {
+    if (value < 0) {
+      // Given that SSIZE_MAX may not be supported in jemalloc, set this to a
+      // sufficiently large number that essentially disables the decay timer.
+      decay_time_ms = 10000000;
+    } else if (value) {
       decay_time_ms = 1000;
     } else {
       decay_time_ms = 0;
@@ -121,19 +137,31 @@
       return 0;
     }
     return 1;
+  } else if (param == M_LOG_STATS) {
+    size_t total_bytes = 0;
+    for (size_t i = 0; i < je_mallinfo_narenas(); i++) {
+      struct mallinfo mi = je_mallinfo_arena_info(i);
+      size_t arena_bytes = mi.fsmblks + mi.ordblks + mi.uordblks;
+      async_safe_format_log(ANDROID_LOG_INFO, "jemalloc",
+                            "Arena %zu: bin bytes=%zu large bytes=%zu total bytes=%zu", i,
+                            mi.fsmblks, mi.ordblks, arena_bytes);
+
+      je_stats_arena(i, [](size_t index, size_t size, size_t allocs) {
+        if (allocs != 0) {
+          async_safe_format_log(ANDROID_LOG_INFO, "jemalloc",
+                                "  Size Class %zu(%zu bytes): allocs=%zu total bytes=%zu", index,
+                                size, allocs, allocs * size);
+        }
+      });
+      total_bytes += arena_bytes;
+    }
+    async_safe_format_log(ANDROID_LOG_INFO, "jemalloc", "Total Bytes=%zu", total_bytes);
+    return 1;
   }
+
   return 0;
 }
 
-__BEGIN_DECLS
-
-size_t je_mallinfo_narenas();
-size_t je_mallinfo_nbins();
-struct mallinfo je_mallinfo_arena_info(size_t);
-struct mallinfo je_mallinfo_bin_info(size_t, size_t);
-
-__END_DECLS
-
 int je_malloc_info(int options, FILE* fp) {
   if (options != 0) {
     errno = EINVAL;
diff --git a/libc/bionic/langinfo.cpp b/libc/bionic/langinfo.cpp
index 6f5057c..9645475 100644
--- a/libc/bionic/langinfo.cpp
+++ b/libc/bionic/langinfo.cpp
@@ -98,6 +98,4 @@
   return const_cast<char*>(result);
 }
 
-char* nl_langinfo_l(nl_item item, locale_t) {
-  return nl_langinfo(item);
-}
+__strong_alias(nl_langinfo_l, nl_langinfo)
diff --git a/libc/bionic/isatty.c b/libc/bionic/lchmod.cpp
similarity index 85%
copy from libc/bionic/isatty.c
copy to libc/bionic/lchmod.cpp
index 93af6c5..928a724 100644
--- a/libc/bionic/isatty.c
+++ b/libc/bionic/lchmod.cpp
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2008 The Android Open Source Project
+ * Copyright (C) 2024 The Android Open Source Project
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -26,14 +26,11 @@
  * SUCH DAMAGE.
  */
 
+#include <fcntl.h>
+#include <sys/stat.h>
+#include <sys/types.h>
 #include <unistd.h>
-#include <termios.h>
-#include <errno.h>
 
-int
-isatty (int  fd)
-{
-  struct termios term;
-
-  return tcgetattr (fd, &term) == 0;
+int lchmod(const char* path, mode_t mode) {
+  return fchmodat(AT_FDCWD, path, mode, AT_SYMLINK_NOFOLLOW);
 }
diff --git a/libc/bionic/legacy_32_bit_support.cpp b/libc/bionic/legacy_32_bit_support.cpp
index 41108e6..e66126b 100644
--- a/libc/bionic/legacy_32_bit_support.cpp
+++ b/libc/bionic/legacy_32_bit_support.cpp
@@ -31,23 +31,28 @@
 #include <errno.h>
 #include <fcntl.h>
 #include <stdarg.h>
+#include <stdint.h>
+#include <sys/mman.h>
 #include <sys/resource.h>
 #include <sys/types.h>
-#include <sys/uio.h>
-#include <sys/vfs.h>
 #include <unistd.h>
 
+#include "platform/bionic/macros.h"
+#include "platform/bionic/page.h"
+#include "private/ErrnoRestorer.h"
 #include "private/bionic_fdtrack.h"
 
 #if defined(__LP64__)
 #error This code is only needed on 32-bit systems!
 #endif
 
-// System calls we need.
+// To implement lseek64() on ILP32, we need to use the _llseek() system call
+// which splits the off64_t into two 32-bit arguments and returns the off64_t
+// result via a pointer because 32-bit kernels can't accept 64-bit arguments
+// or return 64-bit results. (Our symbol is __llseek with two underscores for
+// historical reasons, but it's exposed as ABI so we can't fix it.)
 extern "C" int __llseek(int, unsigned long, unsigned long, off64_t*, int);
 
-// For lseek64 we need to use the llseek system call which splits the off64_t in two and
-// returns the off64_t result via a pointer because 32-bit kernels can't return 64-bit results.
 off64_t lseek64(int fd, off64_t off, int whence) {
   off64_t result;
   unsigned long off_hi = static_cast<unsigned long>(off >> 32);
@@ -101,3 +106,64 @@
   }
   return result;
 }
+
+// mmap2(2) is like mmap(2), but the offset is in 4096-byte blocks (regardless
+// of page size), not bytes, to enable mapping parts of large files past the
+// 4GiB limit but without the inconvenience of dealing with 64-bit values, with
+// no down side since mappings need to be page aligned anyway, and the 32-bit
+// architectures that support this system call all have 4KiB pages.
+extern "C" void* __mmap2(void*, size_t, int, int, int, size_t);
+
+void* mmap64(void* addr, size_t size, int prot, int flags, int fd, off64_t offset) {
+  static constexpr size_t MMAP2_SHIFT = 12;
+
+  if (offset < 0 || (offset & ((1UL << MMAP2_SHIFT) - 1)) != 0) {
+    errno = EINVAL;
+    return MAP_FAILED;
+  }
+
+  // Prevent allocations large enough for `end - start` to overflow,
+  // to avoid security bugs.
+  size_t rounded = __BIONIC_ALIGN(size, page_size());
+  if (rounded < size || rounded > PTRDIFF_MAX) {
+    errno = ENOMEM;
+    return MAP_FAILED;
+  }
+
+  return __mmap2(addr, size, prot, flags, fd, offset >> MMAP2_SHIFT);
+}
+
+void* mmap(void* addr, size_t size, int prot, int flags, int fd, off_t offset) {
+  return mmap64(addr, size, prot, flags, fd, static_cast<off64_t>(offset));
+}
+
+// The only difference here is that the libc API uses varargs for the
+// optional `new_address` argument that's only used by MREMAP_FIXED.
+extern "C" void* __mremap(void*, size_t, size_t, int, void*);
+
+void* mremap(void* old_address, size_t old_size, size_t new_size, int flags, ...) {
+  // Prevent allocations large enough for `end - start` to overflow,
+  // to avoid security bugs.
+  size_t rounded = __BIONIC_ALIGN(new_size, page_size());
+  if (rounded < new_size || rounded > PTRDIFF_MAX) {
+    errno = ENOMEM;
+    return MAP_FAILED;
+  }
+
+  // The optional argument is only valid if the MREMAP_FIXED flag is set,
+  // so we assume it's not present otherwise.
+  void* new_address = nullptr;
+  if ((flags & MREMAP_FIXED) != 0) {
+    va_list ap;
+    va_start(ap, flags);
+    new_address = va_arg(ap, void*);
+    va_end(ap);
+  }
+  return __mremap(old_address, old_size, new_size, flags, new_address);
+}
+
+// mseal(2) is LP64-only.
+int mseal(void*, size_t, unsigned long) {
+  errno = ENOSYS;
+  return -1;
+}
diff --git a/libc/bionic/libc_init_common.cpp b/libc/bionic/libc_init_common.cpp
index 59b2ddb..94ba7e4 100644
--- a/libc/bionic/libc_init_common.cpp
+++ b/libc/bionic/libc_init_common.cpp
@@ -56,12 +56,36 @@
 extern "C" void scudo_malloc_set_zero_contents(int);
 extern "C" void scudo_malloc_set_pattern_fill_contents(int);
 
-__LIBC_HIDDEN__ WriteProtected<libc_globals> __libc_globals;
+__LIBC_HIDDEN__ constinit WriteProtected<libc_globals> __libc_globals;
+__LIBC_HIDDEN__ constinit _Atomic(bool) __libc_memtag_stack;
+__LIBC_HIDDEN__ constinit bool __libc_memtag_stack_abi;
 
 // Not public, but well-known in the BSDs.
 __BIONIC_WEAK_VARIABLE_FOR_NATIVE_BRIDGE
 const char* __progname;
 
+#if defined(__i386__) || defined(__x86_64__)
+// Default sizes based on the old hard-coded values for Atom/Silvermont (x86) and Core 2 (x86-64)...
+size_t __x86_data_cache_size = 24 * 1024;
+size_t __x86_data_cache_size_half = __x86_data_cache_size / 2;
+size_t __x86_shared_cache_size = sizeof(long) == 8 ? 4096 * 1024 : 1024 * 1024;
+size_t __x86_shared_cache_size_half = __x86_shared_cache_size / 2;
+// ...overwritten at runtime based on the cpu's reported cache sizes.
+static void __libc_init_x86_cache_info() {
+  // Handle the case where during early boot /sys fs may not yet be ready,
+  // resulting in sysconf() returning 0, leading to crashes.
+  // In that case (basically just init), we keep the defaults.
+  if (sysconf(_SC_LEVEL1_DCACHE_SIZE) != 0) {
+    __x86_data_cache_size = sysconf(_SC_LEVEL1_DCACHE_SIZE);
+    __x86_data_cache_size_half = __x86_data_cache_size / 2;
+  }
+  if (sysconf(_SC_LEVEL2_CACHE_SIZE) != 0) {
+    __x86_shared_cache_size = sysconf(_SC_LEVEL2_CACHE_SIZE);
+    __x86_shared_cache_size_half = __x86_shared_cache_size / 2;
+  }
+}
+#endif
+
 void __libc_init_globals() {
   // Initialize libc globals that are needed in both the linker and in libc.
   // In dynamic binaries, this is run at least twice for different copies of the
@@ -76,8 +100,10 @@
 #if !defined(__LP64__)
 static void __check_max_thread_id() {
   if (gettid() > 65535) {
-    async_safe_fatal("Limited by the size of pthread_mutex_t, 32 bit bionic libc only accepts "
-                     "pid <= 65535, but current pid is %d", gettid());
+    async_safe_fatal("32-bit pthread_mutex_t only supports pids <= 65535; "
+                     "current pid %d; "
+                     "`echo 65535 > /proc/sys/kernel/pid_max` as root",
+                     gettid());
   }
 }
 #endif
@@ -95,7 +121,7 @@
   SetDefaultHeapTaggingLevel();
 
 // TODO(b/158870657) make this unconditional when all devices support SCUDO.
-#if defined(USE_SCUDO)
+#if defined(USE_SCUDO) && !__has_feature(hwaddress_sanitizer)
 #if defined(SCUDO_PATTERN_FILL_CONTENTS)
   scudo_malloc_set_pattern_fill_contents(1);
 #elif defined(SCUDO_ZERO_CONTENTS)
@@ -171,6 +197,10 @@
   __system_properties_init(); // Requires 'environ'.
   __libc_init_fdsan(); // Requires system properties (for debug.fdsan).
   __libc_init_fdtrack();
+
+#if defined(__i386__) || defined(__x86_64__)
+  __libc_init_x86_cache_info();
+#endif
 }
 
 void __libc_init_fork_handler() {
@@ -180,13 +210,13 @@
 
 extern "C" void scudo_malloc_set_add_large_allocation_slack(int add_slack);
 
-__BIONIC_WEAK_FOR_NATIVE_BRIDGE void __libc_set_target_sdk_version(int target __unused) {
-#if defined(USE_SCUDO)
-  scudo_malloc_set_add_large_allocation_slack(target < __ANDROID_API_S__);
+__BIONIC_WEAK_FOR_NATIVE_BRIDGE void __libc_set_target_sdk_version(int target_api_level __unused) {
+#if defined(USE_SCUDO) && !__has_feature(hwaddress_sanitizer)
+  scudo_malloc_set_add_large_allocation_slack(target_api_level < 31);
 #endif
 }
 
-__noreturn static void __early_abort(int line) {
+__noreturn static void __early_abort(size_t line) {
   // We can't write to stdout or stderr because we're aborting before we've checked that
   // it's safe for us to use those file descriptors. We probably can't strace either, so
   // we rely on the fact that if we dereference a low address, either debuggerd or the
@@ -340,11 +370,11 @@
 #if !defined(__LP64__)
   int old_value = personality(0xffffffff);
   if (old_value == -1) {
-    async_safe_fatal("error getting old personality value: %s", strerror(errno));
+    async_safe_fatal("error getting old personality value: %m");
   }
 
   if (personality((static_cast<unsigned int>(old_value) & ~PER_MASK) | PER_LINUX32) == -1) {
-    async_safe_fatal("error setting PER_LINUX32 personality: %s", strerror(errno));
+    async_safe_fatal("error setting PER_LINUX32 personality: %m");
   }
 #endif
 }
diff --git a/libc/bionic/libc_init_common.h b/libc/bionic/libc_init_common.h
index 6b39d6d..126f002 100644
--- a/libc/bionic/libc_init_common.h
+++ b/libc/bionic/libc_init_common.h
@@ -38,6 +38,10 @@
   init_func_t** preinit_array;
   init_func_t** init_array;
   fini_func_t** fini_array;
+  // Below fields are only available in static executables.
+  size_t preinit_array_count;
+  size_t init_array_count;
+  size_t fini_array_count;
 } structors_array_t;
 
 __BEGIN_DECLS
diff --git a/libc/bionic/libc_init_dynamic.cpp b/libc/bionic/libc_init_dynamic.cpp
index c61810e..541e71c 100644
--- a/libc/bionic/libc_init_dynamic.cpp
+++ b/libc/bionic/libc_init_dynamic.cpp
@@ -39,11 +39,12 @@
  *   all dynamic linking has been performed.
  */
 
+#include <elf.h>
 #include <stddef.h>
+#include <stdint.h>
 #include <stdio.h>
 #include <stdlib.h>
-#include <stdint.h>
-#include <elf.h>
+#include "bionic/pthread_internal.h"
 #include "libc_init_common.h"
 
 #include "private/bionic_defs.h"
@@ -59,6 +60,12 @@
   extern int __cxa_atexit(void (*)(void *), void *, void *);
 };
 
+void memtag_stack_dlopen_callback() {
+  if (__pthread_internal_remap_stack_with_mte()) {
+    async_safe_format_log(ANDROID_LOG_DEBUG, "libc", "remapped stacks as PROT_MTE");
+  }
+}
+
 // Use an initializer so __libc_sysinfo will have a fallback implementation
 // while .preinit_array constructors run.
 #if defined(__i386__)
@@ -156,6 +163,10 @@
 
   __libc_init_mte_late();
 
+  // This roundabout way is needed so we don't use the static libc linked into the linker, which
+  // will not affect the process.
+  __libc_shared_globals()->memtag_stack_dlopen_callback = memtag_stack_dlopen_callback;
+
   exit(slingshot(args.argc - __libc_shared_globals()->initial_linker_arg_count,
                  args.argv + __libc_shared_globals()->initial_linker_arg_count,
                  args.envp));
diff --git a/libc/bionic/libc_init_mte.cpp b/libc/bionic/libc_init_mte.cpp
new file mode 100644
index 0000000..3c8ef7d
--- /dev/null
+++ b/libc/bionic/libc_init_mte.cpp
@@ -0,0 +1,325 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *  * Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *  * Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in
+ *    the documentation and/or other materials provided with the
+ *    distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#include <android/api-level.h>
+#include <elf.h>
+#include <errno.h>
+#include <malloc.h>
+#include <signal.h>
+#include <stddef.h>
+#include <stdint.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <sys/auxv.h>
+#include <sys/mman.h>
+
+#include "async_safe/log.h"
+#include "heap_tagging.h"
+#include "libc_init_common.h"
+#include "platform/bionic/macros.h"
+#include "platform/bionic/mte.h"
+#include "platform/bionic/page.h"
+#include "platform/bionic/reserved_signals.h"
+#include "private/KernelArgumentBlock.h"
+#include "private/bionic_asm.h"
+#include "private/bionic_asm_note.h"
+#include "private/bionic_call_ifunc_resolver.h"
+#include "private/bionic_elf_tls.h"
+#include "private/bionic_globals.h"
+#include "private/bionic_tls.h"
+#include "private/elf_note.h"
+#include "pthread_internal.h"
+#include "sys/system_properties.h"
+#include "sysprop_helpers.h"
+
+#ifdef __aarch64__
+extern "C" const char* __gnu_basename(const char* path);
+
+static HeapTaggingLevel __get_memtag_level_from_note(const ElfW(Phdr) * phdr_start, size_t phdr_ct,
+                                                     const ElfW(Addr) load_bias, bool* stack) {
+  const ElfW(Nhdr) * note;
+  const char* desc;
+  if (!__find_elf_note(NT_ANDROID_TYPE_MEMTAG, "Android", phdr_start, phdr_ct, &note, &desc,
+                       load_bias)) {
+    return M_HEAP_TAGGING_LEVEL_TBI;
+  }
+
+  // Previously (in Android 12), if the note was != 4 bytes, we check-failed
+  // here. Let's be more permissive to allow future expansion.
+  if (note->n_descsz < 4) {
+    async_safe_fatal("unrecognized android.memtag note: n_descsz = %d, expected >= 4",
+                     note->n_descsz);
+  }
+
+  // `desc` is always aligned due to ELF requirements, enforced in __find_elf_note().
+  ElfW(Word) note_val = *reinterpret_cast<const ElfW(Word)*>(desc);
+  *stack = (note_val & NT_MEMTAG_STACK) != 0;
+
+  // Warning: In Android 12, any value outside of bits [0..3] resulted in a check-fail.
+  if (!(note_val & (NT_MEMTAG_HEAP | NT_MEMTAG_STACK))) {
+    async_safe_format_log(ANDROID_LOG_INFO, "libc",
+                          "unrecognised memtag note_val did not specificy heap or stack: %u",
+                          note_val);
+    return M_HEAP_TAGGING_LEVEL_TBI;
+  }
+
+  unsigned mode = note_val & NT_MEMTAG_LEVEL_MASK;
+  switch (mode) {
+    case NT_MEMTAG_LEVEL_NONE:
+      // Note, previously (in Android 12), NT_MEMTAG_LEVEL_NONE was
+      // NT_MEMTAG_LEVEL_DEFAULT, which implied SYNC mode. This was never used
+      // by anyone, but we note it (heh) here for posterity, in case the zero
+      // level becomes meaningful, and binaries with this note can be executed
+      // on Android 12 devices.
+      return M_HEAP_TAGGING_LEVEL_TBI;
+    case NT_MEMTAG_LEVEL_ASYNC:
+      return M_HEAP_TAGGING_LEVEL_ASYNC;
+    case NT_MEMTAG_LEVEL_SYNC:
+    default:
+      // We allow future extensions to specify mode 3 (currently unused), with
+      // the idea that it might be used for ASYMM mode or something else. On
+      // this version of Android, it falls back to SYNC mode.
+      return M_HEAP_TAGGING_LEVEL_SYNC;
+  }
+}
+
+// Returns true if there's an environment setting (either sysprop or env var)
+// that should overwrite the ELF note, and places the equivalent heap tagging
+// level into *level.
+static bool get_environment_memtag_setting(HeapTaggingLevel* level) {
+  static const char kMemtagPrognameSyspropPrefix[] = "arm64.memtag.process.";
+  static const char kMemtagGlobalSysprop[] = "persist.arm64.memtag.default";
+  static const char kMemtagOverrideSyspropPrefix[] =
+      "persist.device_config.memory_safety_native.mode_override.process.";
+
+  const char* progname = __libc_shared_globals()->init_progname;
+  if (progname == nullptr) return false;
+
+  const char* basename = __gnu_basename(progname);
+
+  char options_str[PROP_VALUE_MAX];
+  char sysprop_name[512];
+  async_safe_format_buffer(sysprop_name, sizeof(sysprop_name), "%s%s", kMemtagPrognameSyspropPrefix,
+                           basename);
+  char remote_sysprop_name[512];
+  async_safe_format_buffer(remote_sysprop_name, sizeof(remote_sysprop_name), "%s%s",
+                           kMemtagOverrideSyspropPrefix, basename);
+  const char* sys_prop_names[] = {sysprop_name, remote_sysprop_name, kMemtagGlobalSysprop};
+
+  if (!get_config_from_env_or_sysprops("MEMTAG_OPTIONS", sys_prop_names, arraysize(sys_prop_names),
+                                       options_str, sizeof(options_str))) {
+    return false;
+  }
+
+  if (strcmp("sync", options_str) == 0) {
+    *level = M_HEAP_TAGGING_LEVEL_SYNC;
+  } else if (strcmp("async", options_str) == 0) {
+    *level = M_HEAP_TAGGING_LEVEL_ASYNC;
+  } else if (strcmp("off", options_str) == 0) {
+    *level = M_HEAP_TAGGING_LEVEL_TBI;
+  } else {
+    async_safe_format_log(
+        ANDROID_LOG_ERROR, "libc",
+        "unrecognized memtag level: \"%s\" (options are \"sync\", \"async\", or \"off\").",
+        options_str);
+    return false;
+  }
+
+  return true;
+}
+
+// Returns the initial heap tagging level. Note: This function will never return
+// M_HEAP_TAGGING_LEVEL_NONE, if MTE isn't enabled for this process we enable
+// M_HEAP_TAGGING_LEVEL_TBI.
+static HeapTaggingLevel __get_tagging_level(const memtag_dynamic_entries_t* memtag_dynamic_entries,
+                                            const void* phdr_start, size_t phdr_ct,
+                                            uintptr_t load_bias, bool* stack) {
+  HeapTaggingLevel level = M_HEAP_TAGGING_LEVEL_TBI;
+
+  // If the dynamic entries exist, use those. Otherwise, fall back to the old
+  // Android note, which is still used for fully static executables. When
+  // -fsanitize=memtag* is used in newer toolchains, currently both the dynamic
+  // entries and the old note are created, but we'd expect to move to just the
+  // dynamic entries for dynamically linked executables in the future. In
+  // addition, there's still some cleanup of the build system (that uses a
+  // manually-constructed note) needed. For more information about the dynamic
+  // entries, see:
+  // https://github.com/ARM-software/abi-aa/blob/main/memtagabielf64/memtagabielf64.rst#dynamic-section
+  if (memtag_dynamic_entries && memtag_dynamic_entries->has_memtag_mode) {
+    switch (memtag_dynamic_entries->memtag_mode) {
+      case 0:
+        level = M_HEAP_TAGGING_LEVEL_SYNC;
+        break;
+      case 1:
+        level = M_HEAP_TAGGING_LEVEL_ASYNC;
+        break;
+      default:
+        async_safe_format_log(ANDROID_LOG_INFO, "libc",
+                              "unrecognised DT_AARCH64_MEMTAG_MODE value: %u",
+                              memtag_dynamic_entries->memtag_mode);
+    }
+    *stack = memtag_dynamic_entries->memtag_stack;
+  } else {
+    level = __get_memtag_level_from_note(reinterpret_cast<const ElfW(Phdr)*>(phdr_start), phdr_ct,
+                                         load_bias, stack);
+  }
+
+  // We can't short-circuit the environment override, as `stack` is still inherited from the
+  // binary's settings.
+  get_environment_memtag_setting(&level);
+  return level;
+}
+
+static void __enable_mte_signal_handler(int, siginfo_t* info, void*) {
+  if (info->si_code != SI_TIMER) {
+    async_safe_format_log(ANDROID_LOG_ERROR, "libc", "Got BIONIC_ENABLE_MTE not from SI_TIMER");
+    return;
+  }
+  int tagged_addr_ctrl = prctl(PR_GET_TAGGED_ADDR_CTRL, 0, 0, 0, 0);
+  if (tagged_addr_ctrl < 0) {
+    async_safe_fatal("failed to PR_GET_TAGGED_ADDR_CTRL: %m");
+  }
+  if ((tagged_addr_ctrl & PR_MTE_TCF_MASK) != PR_MTE_TCF_NONE) {
+    return;
+  }
+  async_safe_format_log(ANDROID_LOG_INFO, "libc",
+                        "Re-enabling MTE, value: %x (tagged_addr_ctrl %lu)",
+                        info->si_value.sival_int, info->si_value.sival_int & PR_MTE_TCF_MASK);
+  tagged_addr_ctrl =
+      (tagged_addr_ctrl & ~PR_MTE_TCF_MASK) | (info->si_value.sival_int & PR_MTE_TCF_MASK);
+  if (prctl(PR_SET_TAGGED_ADDR_CTRL, tagged_addr_ctrl, 0, 0, 0) < 0) {
+    async_safe_fatal("failed to PR_SET_TAGGED_ADDR_CTRL %d: %m", tagged_addr_ctrl);
+  }
+}
+
+static int64_t __get_memtag_upgrade_secs() {
+  char* env = getenv("BIONIC_MEMTAG_UPGRADE_SECS");
+  if (!env) return 0;
+  int64_t timed_upgrade = 0;
+  static const char kAppProcessName[] = "app_process64";
+  const char* progname = __libc_shared_globals()->init_progname;
+  progname = progname ? __gnu_basename(progname) : nullptr;
+  // disable timed upgrade for zygote, as the thread spawned will violate the requirement
+  // that it be single-threaded.
+  if (!progname || strncmp(progname, kAppProcessName, sizeof(kAppProcessName)) != 0) {
+    char* endptr;
+    timed_upgrade = strtoll(env, &endptr, 10);
+    if (*endptr != '\0' || timed_upgrade < 0) {
+      async_safe_format_log(ANDROID_LOG_ERROR, "libc",
+                            "Invalid value for BIONIC_MEMTAG_UPGRADE_SECS: %s", env);
+      timed_upgrade = 0;
+    }
+  }
+  // Make sure that this does not get passed to potential processes inheriting
+  // this environment.
+  unsetenv("BIONIC_MEMTAG_UPGRADE_SECS");
+  return timed_upgrade;
+}
+
+// Figure out the desired memory tagging mode (sync/async, heap/globals/stack) for this executable.
+// This function is called from the linker before the main executable is relocated.
+__attribute__((no_sanitize("hwaddress", "memtag"))) void __libc_init_mte(
+    const memtag_dynamic_entries_t* memtag_dynamic_entries, const void* phdr_start, size_t phdr_ct,
+    uintptr_t load_bias) {
+  bool memtag_stack = false;
+  HeapTaggingLevel level =
+      __get_tagging_level(memtag_dynamic_entries, phdr_start, phdr_ct, load_bias, &memtag_stack);
+  if (memtag_stack) __libc_shared_globals()->initial_memtag_stack_abi = true;
+
+  if (int64_t timed_upgrade = __get_memtag_upgrade_secs()) {
+    if (level == M_HEAP_TAGGING_LEVEL_ASYNC) {
+      async_safe_format_log(ANDROID_LOG_INFO, "libc",
+                            "Attempting timed MTE upgrade from async to sync.");
+      __libc_shared_globals()->heap_tagging_upgrade_timer_sec = timed_upgrade;
+      level = M_HEAP_TAGGING_LEVEL_SYNC;
+    } else if (level != M_HEAP_TAGGING_LEVEL_SYNC) {
+      async_safe_format_log(ANDROID_LOG_ERROR, "libc",
+                            "Requested timed MTE upgrade from invalid %s to sync. Ignoring.",
+                            DescribeTaggingLevel(level));
+    }
+  }
+  if (level == M_HEAP_TAGGING_LEVEL_SYNC || level == M_HEAP_TAGGING_LEVEL_ASYNC) {
+    unsigned long prctl_arg = PR_TAGGED_ADDR_ENABLE | PR_MTE_TAG_SET_NONZERO;
+    prctl_arg |= (level == M_HEAP_TAGGING_LEVEL_SYNC) ? PR_MTE_TCF_SYNC : PR_MTE_TCF_ASYNC;
+
+    // When entering ASYNC mode, specify that we want to allow upgrading to SYNC by OR'ing in the
+    // SYNC flag. But if the kernel doesn't support specifying multiple TCF modes, fall back to
+    // specifying a single mode.
+    if (prctl(PR_SET_TAGGED_ADDR_CTRL, prctl_arg | PR_MTE_TCF_SYNC, 0, 0, 0) == 0 ||
+        prctl(PR_SET_TAGGED_ADDR_CTRL, prctl_arg, 0, 0, 0) == 0) {
+      __libc_shared_globals()->initial_heap_tagging_level = level;
+
+      struct sigaction action = {};
+      action.sa_flags = SA_SIGINFO | SA_RESTART;
+      action.sa_sigaction = __enable_mte_signal_handler;
+      sigaction(BIONIC_ENABLE_MTE, &action, nullptr);
+      return;
+    }
+  }
+
+  // MTE was either not enabled, or wasn't supported on this device. Try and use
+  // TBI.
+  if (prctl(PR_SET_TAGGED_ADDR_CTRL, PR_TAGGED_ADDR_ENABLE, 0, 0, 0) == 0) {
+    __libc_shared_globals()->initial_heap_tagging_level = M_HEAP_TAGGING_LEVEL_TBI;
+  }
+  // We did not enable MTE, so we do not need to arm the upgrade timer.
+  __libc_shared_globals()->heap_tagging_upgrade_timer_sec = 0;
+}
+
+// Figure out whether we need to map the stack as PROT_MTE.
+// For dynamic executables, this has to be called after loading all
+// DT_NEEDED libraries, in case one of them needs stack MTE.
+__attribute__((no_sanitize("hwaddress", "memtag"))) void __libc_init_mte_stack(void* stack_top) {
+  if (!__libc_shared_globals()->initial_memtag_stack_abi) {
+    return;
+  }
+
+  // Even if the device doesn't support MTE, we have to allocate stack
+  // history buffers for code compiled for stack MTE. That is because the
+  // codegen expects a buffer to be present in TLS_SLOT_STACK_MTE either
+  // way.
+  __get_bionic_tcb()->tls_slot(TLS_SLOT_STACK_MTE) = __allocate_stack_mte_ringbuffer(0, nullptr);
+
+  if (__libc_mte_enabled()) {
+    __libc_shared_globals()->initial_memtag_stack = true;
+    void* pg_start = reinterpret_cast<void*>(page_start(reinterpret_cast<uintptr_t>(stack_top)));
+    if (mprotect(pg_start, page_size(), PROT_READ | PROT_WRITE | PROT_MTE | PROT_GROWSDOWN)) {
+      async_safe_fatal("error: failed to set PROT_MTE on main thread stack: %m");
+    }
+  }
+}
+
+#else   // __aarch64__
+void __libc_init_mte(const memtag_dynamic_entries_t*, const void*, size_t, uintptr_t) {}
+void __libc_init_mte_stack(void*) {}
+#endif  // __aarch64__
+
+bool __libc_mte_enabled() {
+  HeapTaggingLevel lvl = __libc_shared_globals()->initial_heap_tagging_level;
+  return lvl == M_HEAP_TAGGING_LEVEL_SYNC || lvl == M_HEAP_TAGGING_LEVEL_ASYNC;
+}
diff --git a/libc/bionic/libc_init_static.cpp b/libc/bionic/libc_init_static.cpp
index d64d402..cd96375 100644
--- a/libc/bionic/libc_init_static.cpp
+++ b/libc/bionic/libc_init_static.cpp
@@ -30,6 +30,7 @@
 #include <elf.h>
 #include <errno.h>
 #include <malloc.h>
+#include <signal.h>
 #include <stddef.h>
 #include <stdint.h>
 #include <stdio.h>
@@ -51,6 +52,7 @@
 #include "private/bionic_elf_tls.h"
 #include "private/bionic_globals.h"
 #include "private/bionic_tls.h"
+#include "private/elf_note.h"
 #include "pthread_internal.h"
 #include "sys/system_properties.h"
 #include "sysprop_helpers.h"
@@ -69,10 +71,21 @@
 extern "C" int __cxa_atexit(void (*)(void *), void *, void *);
 extern "C" const char* __gnu_basename(const char* path);
 
-static void call_array(init_func_t** list, int argc, char* argv[], char* envp[]) {
-  // First element is -1, list is null-terminated
-  while (*++list) {
-    (*list)(argc, argv, envp);
+static void call_array(init_func_t** list, size_t count, int argc, char* argv[], char* envp[]) {
+  while (count-- > 0) {
+    init_func_t* function = *list++;
+    (*function)(argc, argv, envp);
+  }
+}
+
+static void call_fini_array(void* arg) {
+  structors_array_t* structors = reinterpret_cast<structors_array_t*>(arg);
+  fini_func_t** array = structors->fini_array;
+  size_t count = structors->fini_array_count;
+  // Now call each destructor in reverse order.
+  while (count-- > 0) {
+    fini_func_t* function = array[count];
+    (*function)();
   }
 }
 
@@ -80,17 +93,6 @@
 extern __LIBC_HIDDEN__ __attribute__((weak)) ElfW(Rel) __rel_iplt_start[], __rel_iplt_end[];
 
 static void call_ifunc_resolvers() {
-  if (__rel_iplt_start == nullptr || __rel_iplt_end == nullptr) {
-    // These symbols were not emitted by gold. Gold has code to do so, but for
-    // whatever reason it is not being run. In these cases ifuncs cannot be
-    // resolved, so we do not support using ifuncs in static executables linked
-    // with gold.
-    //
-    // Since they are weak, they will be non-null when linked with bfd/lld and
-    // null when linked with gold.
-    return;
-  }
-
   for (ElfW(Rel)* r = __rel_iplt_start; r != __rel_iplt_end; ++r) {
     ElfW(Addr)* offset = reinterpret_cast<ElfW(Addr)*>(r->r_offset);
     ElfW(Addr) resolver = *offset;
@@ -101,17 +103,6 @@
 extern __LIBC_HIDDEN__ __attribute__((weak)) ElfW(Rela) __rela_iplt_start[], __rela_iplt_end[];
 
 static void call_ifunc_resolvers() {
-  if (__rela_iplt_start == nullptr || __rela_iplt_end == nullptr) {
-    // These symbols were not emitted by gold. Gold has code to do so, but for
-    // whatever reason it is not being run. In these cases ifuncs cannot be
-    // resolved, so we do not support using ifuncs in static executables linked
-    // with gold.
-    //
-    // Since they are weak, they will be non-null when linked with bfd/lld and
-    // null when linked with gold.
-    return;
-  }
-
   for (ElfW(Rela)* r = __rela_iplt_start; r != __rela_iplt_end; ++r) {
     ElfW(Addr)* offset = reinterpret_cast<ElfW(Addr)*>(r->r_offset);
     ElfW(Addr) resolver = r->r_addend;
@@ -129,8 +120,8 @@
       continue;
     }
 
-    ElfW(Addr) seg_page_start = PAGE_START(phdr->p_vaddr);
-    ElfW(Addr) seg_page_end = PAGE_END(phdr->p_vaddr + phdr->p_memsz);
+    ElfW(Addr) seg_page_start = page_start(phdr->p_vaddr);
+    ElfW(Addr) seg_page_end = page_end(phdr->p_vaddr + phdr->p_memsz);
 
     // Check return value here? What do we do if we fail?
     mprotect(reinterpret_cast<void*>(seg_page_start), seg_page_end - seg_page_start, PROT_READ);
@@ -148,9 +139,9 @@
   static TlsModule mod;
   TlsModules& modules = __libc_shared_globals()->tls_modules;
   if (__bionic_get_tls_segment(phdr_start, phdr_ct, 0, &mod.segment)) {
-    if (!__bionic_check_tls_alignment(&mod.segment.alignment)) {
+    if (!__bionic_check_tls_align(mod.segment.aligned_size.align.value)) {
       async_safe_fatal("error: TLS segment alignment in \"%s\" is not a power of 2: %zu\n",
-                       progname, mod.segment.alignment);
+                       progname, mod.segment.aligned_size.align.value);
     }
     mod.static_offset = layout.reserve_exe_segment_and_tcb(&mod.segment, progname);
     mod.first_generation = kTlsGenerationFirst;
@@ -166,218 +157,6 @@
 
   layout.finish_layout();
 }
-
-#ifdef __aarch64__
-static bool __read_memtag_note(const ElfW(Nhdr)* note, const char* name, const char* desc,
-                               unsigned* result) {
-  if (note->n_type != NT_ANDROID_TYPE_MEMTAG) {
-    return false;
-  }
-  if (note->n_namesz != 8 || strncmp(name, "Android", 8) != 0) {
-    return false;
-  }
-  // Previously (in Android 12), if the note was != 4 bytes, we check-failed
-  // here. Let's be more permissive to allow future expansion.
-  if (note->n_descsz < 4) {
-    async_safe_fatal("unrecognized android.memtag note: n_descsz = %d, expected >= 4",
-                     note->n_descsz);
-  }
-  *result = *reinterpret_cast<const ElfW(Word)*>(desc);
-  return true;
-}
-
-static unsigned __get_memtag_note(const ElfW(Phdr)* phdr_start, size_t phdr_ct,
-                                  const ElfW(Addr) load_bias) {
-  for (size_t i = 0; i < phdr_ct; ++i) {
-    const ElfW(Phdr)* phdr = &phdr_start[i];
-    if (phdr->p_type != PT_NOTE) {
-      continue;
-    }
-    ElfW(Addr) p = load_bias + phdr->p_vaddr;
-    ElfW(Addr) note_end = load_bias + phdr->p_vaddr + phdr->p_memsz;
-    while (p + sizeof(ElfW(Nhdr)) <= note_end) {
-      const ElfW(Nhdr)* note = reinterpret_cast<const ElfW(Nhdr)*>(p);
-      p += sizeof(ElfW(Nhdr));
-      const char* name = reinterpret_cast<const char*>(p);
-      p += align_up(note->n_namesz, 4);
-      const char* desc = reinterpret_cast<const char*>(p);
-      p += align_up(note->n_descsz, 4);
-      if (p > note_end) {
-        break;
-      }
-      unsigned ret;
-      if (__read_memtag_note(note, name, desc, &ret)) {
-        return ret;
-      }
-    }
-  }
-  return 0;
-}
-
-// Returns true if there's an environment setting (either sysprop or env var)
-// that should overwrite the ELF note, and places the equivalent heap tagging
-// level into *level.
-static bool get_environment_memtag_setting(HeapTaggingLevel* level) {
-  static const char kMemtagPrognameSyspropPrefix[] = "arm64.memtag.process.";
-  static const char kMemtagGlobalSysprop[] = "persist.arm64.memtag.default";
-  static const char kMemtagOverrideSyspropPrefix[] =
-      "persist.device_config.memory_safety_native.mode_override.process.";
-
-  const char* progname = __libc_shared_globals()->init_progname;
-  if (progname == nullptr) return false;
-
-  const char* basename = __gnu_basename(progname);
-
-  char options_str[PROP_VALUE_MAX];
-  char sysprop_name[512];
-  async_safe_format_buffer(sysprop_name, sizeof(sysprop_name), "%s%s", kMemtagPrognameSyspropPrefix,
-                           basename);
-  char remote_sysprop_name[512];
-  async_safe_format_buffer(remote_sysprop_name, sizeof(remote_sysprop_name), "%s%s",
-                           kMemtagOverrideSyspropPrefix, basename);
-  const char* sys_prop_names[] = {sysprop_name, remote_sysprop_name, kMemtagGlobalSysprop};
-
-  if (!get_config_from_env_or_sysprops("MEMTAG_OPTIONS", sys_prop_names, arraysize(sys_prop_names),
-                                       options_str, sizeof(options_str))) {
-    return false;
-  }
-
-  if (strcmp("sync", options_str) == 0) {
-    *level = M_HEAP_TAGGING_LEVEL_SYNC;
-  } else if (strcmp("async", options_str) == 0) {
-    *level = M_HEAP_TAGGING_LEVEL_ASYNC;
-  } else if (strcmp("off", options_str) == 0) {
-    *level = M_HEAP_TAGGING_LEVEL_TBI;
-  } else {
-    async_safe_format_log(
-        ANDROID_LOG_ERROR, "libc",
-        "unrecognized memtag level: \"%s\" (options are \"sync\", \"async\", or \"off\").",
-        options_str);
-    return false;
-  }
-
-  return true;
-}
-
-// Returns the initial heap tagging level. Note: This function will never return
-// M_HEAP_TAGGING_LEVEL_NONE, if MTE isn't enabled for this process we enable
-// M_HEAP_TAGGING_LEVEL_TBI.
-static HeapTaggingLevel __get_heap_tagging_level(const void* phdr_start, size_t phdr_ct,
-                                                 uintptr_t load_bias, bool* stack) {
-  unsigned note_val =
-      __get_memtag_note(reinterpret_cast<const ElfW(Phdr)*>(phdr_start), phdr_ct, load_bias);
-  *stack = note_val & NT_MEMTAG_STACK;
-
-  HeapTaggingLevel level;
-  if (get_environment_memtag_setting(&level)) return level;
-
-  // Note, previously (in Android 12), any value outside of bits [0..3] resulted
-  // in a check-fail. In order to be permissive of further extensions, we
-  // relaxed this restriction.
-  if (!(note_val & (NT_MEMTAG_HEAP | NT_MEMTAG_STACK))) return M_HEAP_TAGGING_LEVEL_TBI;
-
-  unsigned mode = note_val & NT_MEMTAG_LEVEL_MASK;
-  switch (mode) {
-    case NT_MEMTAG_LEVEL_NONE:
-      // Note, previously (in Android 12), NT_MEMTAG_LEVEL_NONE was
-      // NT_MEMTAG_LEVEL_DEFAULT, which implied SYNC mode. This was never used
-      // by anyone, but we note it (heh) here for posterity, in case the zero
-      // level becomes meaningful, and binaries with this note can be executed
-      // on Android 12 devices.
-      return M_HEAP_TAGGING_LEVEL_TBI;
-    case NT_MEMTAG_LEVEL_ASYNC:
-      return M_HEAP_TAGGING_LEVEL_ASYNC;
-    case NT_MEMTAG_LEVEL_SYNC:
-    default:
-      // We allow future extensions to specify mode 3 (currently unused), with
-      // the idea that it might be used for ASYMM mode or something else. On
-      // this version of Android, it falls back to SYNC mode.
-      return M_HEAP_TAGGING_LEVEL_SYNC;
-  }
-}
-
-// Figure out the desired memory tagging mode (sync/async, heap/globals/stack) for this executable.
-// This function is called from the linker before the main executable is relocated.
-__attribute__((no_sanitize("hwaddress", "memtag"))) void __libc_init_mte(const void* phdr_start,
-                                                                         size_t phdr_ct,
-                                                                         uintptr_t load_bias,
-                                                                         void* stack_top) {
-  bool memtag_stack;
-  HeapTaggingLevel level = __get_heap_tagging_level(phdr_start, phdr_ct, load_bias, &memtag_stack);
-  char* env = getenv("BIONIC_MEMTAG_UPGRADE_SECS");
-  static const char kAppProcessName[] = "app_process64";
-  const char* progname = __libc_shared_globals()->init_progname;
-  progname = progname ? __gnu_basename(progname) : nullptr;
-  if (progname &&
-      strncmp(progname, kAppProcessName, sizeof(kAppProcessName)) == 0) {
-    // disable timed upgrade for zygote, as the thread spawned will violate the requirement
-    // that it be single-threaded.
-    env = nullptr;
-  }
-  int64_t timed_upgrade = 0;
-  if (env) {
-    char* endptr;
-    timed_upgrade = strtoll(env, &endptr, 10);
-    if (*endptr != '\0' || timed_upgrade < 0) {
-      async_safe_format_log(ANDROID_LOG_ERROR, "libc",
-                            "Invalid value for BIONIC_MEMTAG_UPGRADE_SECS: %s",
-                            env);
-      timed_upgrade = 0;
-    }
-    // Make sure that this does not get passed to potential processes inheriting
-    // this environment.
-    unsetenv("BIONIC_MEMTAG_UPGRADE_SECS");
-  }
-  if (timed_upgrade) {
-    if (level == M_HEAP_TAGGING_LEVEL_ASYNC) {
-      async_safe_format_log(ANDROID_LOG_INFO, "libc",
-                            "Attempting timed MTE upgrade from async to sync.");
-      __libc_shared_globals()->heap_tagging_upgrade_timer_sec = timed_upgrade;
-      level = M_HEAP_TAGGING_LEVEL_SYNC;
-    } else if (level != M_HEAP_TAGGING_LEVEL_SYNC) {
-      async_safe_format_log(
-          ANDROID_LOG_ERROR, "libc",
-          "Requested timed MTE upgrade from invalid %s to sync. Ignoring.",
-          DescribeTaggingLevel(level));
-    }
-  }
-  if (level == M_HEAP_TAGGING_LEVEL_SYNC || level == M_HEAP_TAGGING_LEVEL_ASYNC) {
-    unsigned long prctl_arg = PR_TAGGED_ADDR_ENABLE | PR_MTE_TAG_SET_NONZERO;
-    prctl_arg |= (level == M_HEAP_TAGGING_LEVEL_SYNC) ? PR_MTE_TCF_SYNC : PR_MTE_TCF_ASYNC;
-
-    // When entering ASYNC mode, specify that we want to allow upgrading to SYNC by OR'ing in the
-    // SYNC flag. But if the kernel doesn't support specifying multiple TCF modes, fall back to
-    // specifying a single mode.
-    if (prctl(PR_SET_TAGGED_ADDR_CTRL, prctl_arg | PR_MTE_TCF_SYNC, 0, 0, 0) == 0 ||
-        prctl(PR_SET_TAGGED_ADDR_CTRL, prctl_arg, 0, 0, 0) == 0) {
-      __libc_shared_globals()->initial_heap_tagging_level = level;
-      __libc_shared_globals()->initial_memtag_stack = memtag_stack;
-
-      if (memtag_stack) {
-        void* page_start =
-            reinterpret_cast<void*>(PAGE_START(reinterpret_cast<uintptr_t>(stack_top)));
-        if (mprotect(page_start, PAGE_SIZE, PROT_READ | PROT_WRITE | PROT_MTE | PROT_GROWSDOWN)) {
-          async_safe_fatal("error: failed to set PROT_MTE on main thread stack: %s\n",
-                           strerror(errno));
-        }
-      }
-
-      return;
-    }
-  }
-
-  // MTE was either not enabled, or wasn't supported on this device. Try and use
-  // TBI.
-  if (prctl(PR_SET_TAGGED_ADDR_CTRL, PR_TAGGED_ADDR_ENABLE, 0, 0, 0) == 0) {
-    __libc_shared_globals()->initial_heap_tagging_level = M_HEAP_TAGGING_LEVEL_TBI;
-  }
-  // We did not enable MTE, so we do not need to arm the upgrade timer.
-  __libc_shared_globals()->heap_tagging_upgrade_timer_sec = 0;
-}
-#else   // __aarch64__
-void __libc_init_mte(const void*, size_t, uintptr_t, void*) {}
-#endif  // __aarch64__
-
 void __libc_init_profiling_handlers() {
   // The dynamic variant of this function is more interesting, but this
   // at least ensures that static binaries aren't killed by the kernel's
@@ -388,12 +167,11 @@
 }
 
 __attribute__((no_sanitize("memtag"))) __noreturn static void __real_libc_init(
-    void* raw_args, void (*onexit)(void) __unused, int (*slingshot)(int, char**, char**),
-    structors_array_t const* const structors, bionic_tcb* temp_tcb) {
+    KernelArgumentBlock& args, void* raw_args, void (*onexit)(void) __unused,
+    int (*slingshot)(int, char**, char**), structors_array_t const* const structors,
+    bionic_tcb* temp_tcb) {
   BIONIC_STOP_UNWIND;
 
-  // Initialize TLS early so system calls and errno work.
-  KernelArgumentBlock args(raw_args);
   __libc_init_main_thread_early(args, temp_tcb);
   __libc_init_main_thread_late();
   __libc_init_globals();
@@ -402,8 +180,10 @@
   layout_static_tls(args);
   __libc_init_main_thread_final();
   __libc_init_common();
-  __libc_init_mte(reinterpret_cast<ElfW(Phdr)*>(getauxval(AT_PHDR)), getauxval(AT_PHNUM),
-                  /*load_bias = */ 0, /*stack_top = */ raw_args);
+  __libc_init_mte(/*memtag_dynamic_entries=*/nullptr,
+                  reinterpret_cast<ElfW(Phdr)*>(getauxval(AT_PHDR)), getauxval(AT_PHNUM),
+                  /*load_bias = */ 0);
+  __libc_init_mte_stack(/*stack_top = */ raw_args);
   __libc_init_scudo();
   __libc_init_profiling_handlers();
   __libc_init_fork_handler();
@@ -414,14 +194,15 @@
   // Several Linux ABIs don't pass the onexit pointer, and the ones that
   // do never use it.  Therefore, we ignore it.
 
-  call_array(structors->preinit_array, args.argc, args.argv, args.envp);
-  call_array(structors->init_array, args.argc, args.argv, args.envp);
+  call_array(structors->preinit_array, structors->preinit_array_count, args.argc, args.argv,
+             args.envp);
+  call_array(structors->init_array, structors->init_array_count, args.argc, args.argv, args.envp);
 
   // The executable may have its own destructors listed in its .fini_array
   // so we need to ensure that these are called when the program exits
   // normally.
-  if (structors->fini_array != nullptr) {
-    __cxa_atexit(__libc_fini,structors->fini_array,nullptr);
+  if (structors->fini_array_count > 0) {
+    __cxa_atexit(call_fini_array, const_cast<structors_array_t*>(structors), nullptr);
   }
 
   __libc_init_mte_late();
@@ -438,17 +219,25 @@
 __attribute__((no_sanitize("hwaddress", "memtag"))) __noreturn void __libc_init(
     void* raw_args, void (*onexit)(void) __unused, int (*slingshot)(int, char**, char**),
     structors_array_t const* const structors) {
-  bionic_tcb temp_tcb = {};
+  // We _really_ don't want the compiler to call memset() here,
+  // but it's done so before for riscv64 (http://b/365618934),
+  // so we have to force it to behave.
+  bionic_tcb temp_tcb __attribute__((uninitialized));
+  __builtin_memset_inline(&temp_tcb, 0, sizeof(temp_tcb));
+
+  KernelArgumentBlock args(raw_args);
 #if __has_feature(hwaddress_sanitizer)
   // Install main thread TLS early. It will be initialized later in __libc_init_main_thread. For now
-  // all we need is access to TLS_SLOT_SANITIZER.
+  // all we need is access to TLS_SLOT_SANITIZER and read auxval for the page size.
   __set_tls(&temp_tcb.tls_slot(0));
+  __libc_shared_globals()->auxv = args.auxv;
   // Initialize HWASan enough to run instrumented code. This sets up TLS_SLOT_SANITIZER, among other
   // things.
   __hwasan_init_static();
   // We are ready to run HWASan-instrumented code, proceed with libc initialization...
 #endif
-  __real_libc_init(raw_args, onexit, slingshot, structors, &temp_tcb);
+
+  __real_libc_init(args, raw_args, onexit, slingshot, structors, &temp_tcb);
 }
 
 static int g_target_sdk_version{__ANDROID_API__};
@@ -466,6 +255,6 @@
 // compiled with -ffreestanding to avoid implicit string.h function calls. (It shouldn't strictly
 // be necessary, though.)
 __LIBC_HIDDEN__ libc_shared_globals* __libc_shared_globals() {
-  static libc_shared_globals globals;
+  BIONIC_USED_BEFORE_LINKER_RELOCATES static libc_shared_globals globals;
   return &globals;
 }
diff --git a/libc/bionic/locale.cpp b/libc/bionic/locale.cpp
index 2f4d206..a1d6909 100644
--- a/libc/bionic/locale.cpp
+++ b/libc/bionic/locale.cpp
@@ -35,17 +35,8 @@
 #include <time.h>
 #include <wchar.h>
 
-#include "platform/bionic/macros.h"
-
-#if defined(__BIONIC_BUILD_FOR_ANDROID_SUPPORT)
-#define USE_TLS_SLOT 0
-#else
-#define USE_TLS_SLOT 1
-#endif
-
-#if USE_TLS_SLOT
 #include "bionic/pthread_internal.h"
-#endif
+#include "platform/bionic/macros.h"
 
 // We only support two locales, the "C" locale (also known as "POSIX"),
 // and the "C.UTF-8" locale (also known as "en_US.UTF-8").
@@ -82,10 +73,6 @@
   return get_locale_mb_cur_max(uselocale(nullptr));
 }
 
-#if !USE_TLS_SLOT
-static thread_local locale_t g_current_locale;
-#endif
-
 static pthread_once_t g_locale_once = PTHREAD_ONCE_INIT;
 static lconv g_locale;
 
@@ -180,11 +167,7 @@
 }
 
 static locale_t* get_current_locale_ptr() {
-#if USE_TLS_SLOT
   return &__get_bionic_tls().locale;
-#else
-  return &g_current_locale;
-#endif
 }
 
 locale_t uselocale(locale_t new_locale) {
diff --git a/libc/bionic/lockf.cpp b/libc/bionic/lockf.cpp
index 804ad68..54e13f5 100644
--- a/libc/bionic/lockf.cpp
+++ b/libc/bionic/lockf.cpp
@@ -68,6 +68,12 @@
   return -1;
 }
 
+#if defined(__LP64__)
+// For LP64, off_t == off64_t.
+__strong_alias(lockf, lockf64);
+#else
+// For ILP32 we need a shim that truncates the off64_t to off_t.
 int lockf(int fd, int cmd, off_t length) {
   return lockf64(fd, cmd, length);
 }
+#endif
diff --git a/libc/bionic/malloc_common.cpp b/libc/bionic/malloc_common.cpp
index e159fdc..441d884 100644
--- a/libc/bionic/malloc_common.cpp
+++ b/libc/bionic/malloc_common.cpp
@@ -110,12 +110,27 @@
   if (param == M_BIONIC_ZERO_INIT) {
     return SetHeapZeroInitialize(value);
   }
+
   // The rest we pass on...
+  int retval;
   auto dispatch_table = GetDispatchTable();
   if (__predict_false(dispatch_table != nullptr)) {
-    return dispatch_table->mallopt(param, value);
+    retval = dispatch_table->mallopt(param, value);
+  } else {
+    retval = Malloc(mallopt)(param, value);
   }
-  return Malloc(mallopt)(param, value);
+
+  // Track the M_DECAY_TIME mallopt calls.
+  if (param == M_DECAY_TIME && retval == 1) {
+    __libc_globals.mutate([value](libc_globals* globals) {
+      if (value <= 0) {
+        atomic_store(&globals->decay_time_enabled, false);
+      } else {
+        atomic_store(&globals->decay_time_enabled, true);
+      }
+    });
+  }
+  return retval;
 }
 
 extern "C" void* malloc(size_t bytes) {
@@ -317,36 +332,6 @@
 #endif
 // =============================================================================
 
-// =============================================================================
-// Platform-internal mallopt variant.
-// =============================================================================
-#if defined(LIBC_STATIC)
-extern "C" bool android_mallopt(int opcode, void* arg, size_t arg_size) {
-  if (opcode == M_SET_ALLOCATION_LIMIT_BYTES) {
-    return LimitEnable(arg, arg_size);
-  }
-  if (opcode == M_INITIALIZE_GWP_ASAN) {
-    if (arg == nullptr || arg_size != sizeof(android_mallopt_gwp_asan_options_t)) {
-      errno = EINVAL;
-      return false;
-    }
-
-    return EnableGwpAsan(*reinterpret_cast<android_mallopt_gwp_asan_options_t*>(arg));
-  }
-  if (opcode == M_MEMTAG_STACK_IS_ON) {
-    if (arg == nullptr || arg_size != sizeof(bool)) {
-      errno = EINVAL;
-      return false;
-    }
-    *reinterpret_cast<bool*>(arg) = atomic_load(&__libc_globals->memtag_stack);
-    return true;
-  }
-  errno = ENOTSUP;
-  return false;
-}
-#endif
-// =============================================================================
-
 static constexpr MallocDispatch __libc_malloc_default_dispatch __attribute__((unused)) = {
   Malloc(calloc),
   Malloc(free),
diff --git a/libc/bionic/malloc_common_dynamic.cpp b/libc/bionic/malloc_common_dynamic.cpp
index 802a94f..7b6d7d4 100644
--- a/libc/bionic/malloc_common_dynamic.cpp
+++ b/libc/bionic/malloc_common_dynamic.cpp
@@ -80,7 +80,7 @@
 
 _Atomic bool gGlobalsMutating = false;
 
-static bool gZygoteChild = false;
+bool gZygoteChild = false;
 
 // In a Zygote child process, this is set to true if profiling of this process
 // is allowed. Note that this is set at a later time than gZygoteChild. The
@@ -89,7 +89,7 @@
 // domains if applicable). These two flags are read by the
 // BIONIC_SIGNAL_PROFILER handler, which does nothing if the process is not
 // profileable.
-static _Atomic bool gZygoteChildProfileable = false;
+_Atomic bool gZygoteChildProfileable = false;
 
 // =============================================================================
 
@@ -372,6 +372,7 @@
 extern "C" const char* __scudo_get_region_info_addr();
 extern "C" const char* __scudo_get_ring_buffer_addr();
 extern "C" size_t __scudo_get_ring_buffer_size();
+extern "C" size_t __scudo_get_stack_depot_size();
 
 // Initializes memory allocation framework once per process.
 static void MallocInitImpl(libc_globals* globals) {
@@ -380,11 +381,12 @@
 
   MaybeInitGwpAsanFromLibc(globals);
 
-#if defined(USE_SCUDO)
+#if defined(USE_SCUDO) && !__has_feature(hwaddress_sanitizer)
   __libc_shared_globals()->scudo_stack_depot = __scudo_get_stack_depot_addr();
   __libc_shared_globals()->scudo_region_info = __scudo_get_region_info_addr();
   __libc_shared_globals()->scudo_ring_buffer = __scudo_get_ring_buffer_addr();
   __libc_shared_globals()->scudo_ring_buffer_size = __scudo_get_ring_buffer_size();
+  __libc_shared_globals()->scudo_stack_depot_size = __scudo_get_stack_depot_size();
 #endif
 
   // Prefer malloc debug since it existed first and is a more complete
@@ -469,85 +471,6 @@
 }
 // =============================================================================
 
-// =============================================================================
-// Platform-internal mallopt variant.
-// =============================================================================
-__BIONIC_WEAK_FOR_NATIVE_BRIDGE
-extern "C" bool android_mallopt(int opcode, void* arg, size_t arg_size) {
-  if (opcode == M_SET_ZYGOTE_CHILD) {
-    if (arg != nullptr || arg_size != 0) {
-      errno = EINVAL;
-      return false;
-    }
-    gZygoteChild = true;
-    return true;
-  }
-  if (opcode == M_INIT_ZYGOTE_CHILD_PROFILING) {
-    if (arg != nullptr || arg_size != 0) {
-      errno = EINVAL;
-      return false;
-    }
-    atomic_store_explicit(&gZygoteChildProfileable, true, memory_order_release);
-    // Also check if heapprofd should start profiling from app startup.
-    HeapprofdInitZygoteChildProfiling();
-    return true;
-  }
-  if (opcode == M_GET_PROCESS_PROFILEABLE) {
-    if (arg == nullptr || arg_size != sizeof(bool)) {
-      errno = EINVAL;
-      return false;
-    }
-    // Native processes are considered profileable. Zygote children are considered
-    // profileable only when appropriately tagged.
-    *reinterpret_cast<bool*>(arg) =
-        !gZygoteChild || atomic_load_explicit(&gZygoteChildProfileable, memory_order_acquire);
-    return true;
-  }
-  if (opcode == M_SET_ALLOCATION_LIMIT_BYTES) {
-    return LimitEnable(arg, arg_size);
-  }
-  if (opcode == M_WRITE_MALLOC_LEAK_INFO_TO_FILE) {
-    if (arg == nullptr || arg_size != sizeof(FILE*)) {
-      errno = EINVAL;
-      return false;
-    }
-    return WriteMallocLeakInfo(reinterpret_cast<FILE*>(arg));
-  }
-  if (opcode == M_GET_MALLOC_LEAK_INFO) {
-    if (arg == nullptr || arg_size != sizeof(android_mallopt_leak_info_t)) {
-      errno = EINVAL;
-      return false;
-    }
-    return GetMallocLeakInfo(reinterpret_cast<android_mallopt_leak_info_t*>(arg));
-  }
-  if (opcode == M_FREE_MALLOC_LEAK_INFO) {
-    if (arg == nullptr || arg_size != sizeof(android_mallopt_leak_info_t)) {
-      errno = EINVAL;
-      return false;
-    }
-    return FreeMallocLeakInfo(reinterpret_cast<android_mallopt_leak_info_t*>(arg));
-  }
-  if (opcode == M_INITIALIZE_GWP_ASAN) {
-    if (arg == nullptr || arg_size != sizeof(android_mallopt_gwp_asan_options_t)) {
-      errno = EINVAL;
-      return false;
-    }
-
-    return EnableGwpAsan(*reinterpret_cast<android_mallopt_gwp_asan_options_t*>(arg));
-  }
-  if (opcode == M_MEMTAG_STACK_IS_ON) {
-    if (arg == nullptr || arg_size != sizeof(bool)) {
-      errno = EINVAL;
-      return false;
-    }
-    *reinterpret_cast<bool*>(arg) = atomic_load(&__libc_globals->memtag_stack);
-    return true;
-  }
-  // Try heapprofd's mallopt, as it handles options not covered here.
-  return HeapprofdMallopt(opcode, arg, arg_size);
-}
-// =============================================================================
-
 #if !defined(__LP64__) && defined(__arm__)
 // =============================================================================
 // Old platform only functions that some old 32 bit apps are still using.
diff --git a/libc/bionic/malloc_limit.cpp b/libc/bionic/malloc_limit.cpp
index 1405a39..5128a35 100644
--- a/libc/bionic/malloc_limit.cpp
+++ b/libc/bionic/malloc_limit.cpp
@@ -31,6 +31,7 @@
 #include <stdatomic.h>
 #include <stdint.h>
 #include <stdio.h>
+#include <unistd.h>
 
 #include <private/bionic_malloc_dispatch.h>
 
@@ -278,7 +279,7 @@
   // being called, allow a short period for the signal handler to complete
   // before failing.
   bool enabled = false;
-  size_t num_tries = 20;
+  size_t num_tries = 200;
   while (true) {
     if (!atomic_exchange(&gGlobalsMutating, true)) {
       __libc_globals.mutate([](libc_globals* globals) {
@@ -328,9 +329,16 @@
     current_allocated = Malloc(mallinfo)().uordblks;
   }
 #endif
+  // This has to be set before the enable occurs since "gAllocated" is used
+  // to compute the limit. If the enable fails, "gAllocated" is never used.
   atomic_store(&gAllocated, current_allocated);
 
-  return EnableLimitDispatchTable();
+  if (!EnableLimitDispatchTable()) {
+    // Failed to enable, reset so a future enable will pass.
+    atomic_store(&limit_enabled, false);
+    return false;
+  }
+  return true;
 }
 
 static size_t LimitUsableSize(const void* mem) {
diff --git a/libc/bionic/mbrtoc16.cpp b/libc/bionic/mbrtoc16.cpp
index 154b8a3..e87991a 100644
--- a/libc/bionic/mbrtoc16.cpp
+++ b/libc/bionic/mbrtoc16.cpp
@@ -47,15 +47,36 @@
   mbstate_set_byte(state, 3, nconv & 0xff);
 
   *pc16 = ((c32 & 0xffc00) >> 10) | 0xd800;
-  // Defined by POSIX as return value for first surrogate character.
-  return static_cast<size_t>(-3);
+  // https://issuetracker.google.com/289419882
+  //
+  // We misread the spec when implementing this. The first call should return
+  // the length of the decoded character, and the second call should return -3
+  // to indicate that the output is a continuation of the character decoded by
+  // the first call.
+  //
+  // C23 7.30.1.3.4:
+  //
+  //     between 1 and n inclusive if the next n or fewer bytes complete a valid
+  //     multibyte character (which is the value stored); the value returned is
+  //     the number of bytes that complete the multibyte character.
+  //
+  //     (size_t)(-3) if the next character resulting from a previous call has
+  //     been stored (no bytes from the input have been consumed by this call).
+  //
+  // The first call returns the number of bytes consumed, and the second call
+  // returns -3.
+  //
+  // All UTF-8 sequences that encode a surrogate pair are 4 bytes, but we may
+  // not have seen the full sequence yet.
+  return nconv;
 }
 
 static size_t finish_surrogate(char16_t* pc16, mbstate_t* state) {
   char16_t trail = mbstate_get_byte(state, 1) << 8 |
                    mbstate_get_byte(state, 0);
   *pc16 = trail;
-  return mbstate_reset_and_return(mbstate_get_byte(state, 3), state);
+  mbstate_reset(state);
+  return static_cast<size_t>(-3);
 }
 
 size_t mbrtoc16(char16_t* pc16, const char* s, size_t n, mbstate_t* ps) {
diff --git a/libc/bionic/mbrtoc32.cpp b/libc/bionic/mbrtoc32.cpp
index d37ca66..74deb40 100644
--- a/libc/bionic/mbrtoc32.cpp
+++ b/libc/bionic/mbrtoc32.cpp
@@ -51,7 +51,21 @@
   }
 
   if (n == 0) {
-    return 0;
+    // C23 7.30.1 (for each `mbrtoc*` function) says:
+    //
+    // Returns:
+    //
+    //     0 if the next n or fewer bytes complete the multibyte character that
+    //     corresponds to the null wide character (which is the value stored).
+    //
+    //     (size_t)(-2) if the next n bytes contribute to an incomplete (but
+    //     potentially valid) multibyte character, and all n bytes have been
+    //     processed (no value is stored).
+    //
+    // Bionic historically interpreted the behavior when n is 0 to be the next 0
+    // bytes decoding to the null. That's a pretty bad interpretation, and both
+    // glibc and musl return -2 for that case.
+    return BIONIC_MULTIBYTE_RESULT_INCOMPLETE_SEQUENCE;
   }
 
   uint8_t ch;
@@ -109,7 +123,7 @@
     mbstate_set_byte(state, bytes_so_far + i, *s++);
   }
   if (i < bytes_wanted) {
-    return __MB_ERR_INCOMPLETE_SEQUENCE;
+    return BIONIC_MULTIBYTE_RESULT_INCOMPLETE_SEQUENCE;
   }
 
   // Decode the octet sequence representing the character in chunks
diff --git a/libc/bionic/mmap.cpp b/libc/bionic/mmap.cpp
deleted file mode 100644
index ed6b9c6..0000000
--- a/libc/bionic/mmap.cpp
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *  * Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- *  * Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in
- *    the documentation and/or other materials provided with the
- *    distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
- * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#include <errno.h>
-#include <stdint.h>
-#include <sys/mman.h>
-#include <unistd.h>
-
-#include "platform/bionic/macros.h"
-#include "private/ErrnoRestorer.h"
-
-// mmap2(2) is like mmap(2), but the offset is in 4096-byte blocks, not bytes.
-extern "C" void*  __mmap2(void*, size_t, int, int, int, size_t);
-
-#define MMAP2_SHIFT 12 // 2**12 == 4096
-
-void* mmap64(void* addr, size_t size, int prot, int flags, int fd, off64_t offset) {
-  if (offset < 0 || (offset & ((1UL << MMAP2_SHIFT)-1)) != 0) {
-    errno = EINVAL;
-    return MAP_FAILED;
-  }
-
-  // Prevent allocations large enough for `end - start` to overflow.
-  size_t rounded = __BIONIC_ALIGN(size, PAGE_SIZE);
-  if (rounded < size || rounded > PTRDIFF_MAX) {
-    errno = ENOMEM;
-    return MAP_FAILED;
-  }
-
-  return __mmap2(addr, size, prot, flags, fd, offset >> MMAP2_SHIFT);
-}
-
-void* mmap(void* addr, size_t size, int prot, int flags, int fd, off_t offset) {
-  return mmap64(addr, size, prot, flags, fd, static_cast<off64_t>(offset));
-}
diff --git a/libc/bionic/mremap.cpp b/libc/bionic/mremap.cpp
deleted file mode 100644
index d7c9353..0000000
--- a/libc/bionic/mremap.cpp
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * Copyright (C) 2015 The Android Open Source Project
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *  * Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- *  * Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in
- *    the documentation and/or other materials provided with the
- *    distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
- * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#include <errno.h>
-#include <sys/mman.h>
-#include <stdarg.h>
-#include <stdint.h>
-#include <unistd.h>
-
-#include "platform/bionic/macros.h"
-
-extern "C" void* __mremap(void*, size_t, size_t, int, void*);
-
-void* mremap(void* old_address, size_t old_size, size_t new_size, int flags, ...) {
-  // prevent allocations large enough for `end - start` to overflow
-  size_t rounded = __BIONIC_ALIGN(new_size, PAGE_SIZE);
-  if (rounded < new_size || rounded > PTRDIFF_MAX) {
-    errno = ENOMEM;
-    return MAP_FAILED;
-  }
-
-  void* new_address = nullptr;
-  // The optional argument is only valid if the MREMAP_FIXED flag is set,
-  // so we assume it's not present otherwise.
-  if ((flags & MREMAP_FIXED) != 0) {
-    va_list ap;
-    va_start(ap, flags);
-    new_address = va_arg(ap, void*);
-    va_end(ap);
-  }
-  return __mremap(old_address, old_size, new_size, flags, new_address);
-}
diff --git a/libc/bionic/netinet_ether.cpp b/libc/bionic/netinet_ether.cpp
new file mode 100644
index 0000000..7ebceac
--- /dev/null
+++ b/libc/bionic/netinet_ether.cpp
@@ -0,0 +1,62 @@
+/*
+ * Copyright (C) 2010 The Android Open Source Project
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *  * Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *  * Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in
+ *    the documentation and/or other materials provided with the
+ *    distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#include <netinet/ether.h>
+
+#include <stdio.h>
+
+ether_addr* ether_aton_r(const char* asc, ether_addr* addr) {
+  int bytes[ETHER_ADDR_LEN], end;
+  int n = sscanf(asc, "%x:%x:%x:%x:%x:%x%n",
+                 &bytes[0], &bytes[1], &bytes[2],
+                 &bytes[3], &bytes[4], &bytes[5], &end);
+  if (n != ETHER_ADDR_LEN || asc[end] != '\0') return NULL;
+  for (int i = 0; i < ETHER_ADDR_LEN; i++) {
+    if (bytes[i] > 0xff) return NULL;
+    addr->ether_addr_octet[i] = bytes[i];
+  }
+  return addr;
+}
+
+struct ether_addr* ether_aton(const char* asc) {
+  static ether_addr addr;
+  return ether_aton_r(asc, &addr);
+}
+
+char* ether_ntoa_r(const ether_addr* addr, char* buf) {
+  snprintf(buf, 18, "%02x:%02x:%02x:%02x:%02x:%02x",
+           addr->ether_addr_octet[0], addr->ether_addr_octet[1],
+           addr->ether_addr_octet[2], addr->ether_addr_octet[3],
+           addr->ether_addr_octet[4], addr->ether_addr_octet[5]);
+  return buf;
+}
+
+char* ether_ntoa(const ether_addr* addr) {
+  static char buf[18];
+  return ether_ntoa_r(addr, buf);
+}
diff --git a/libc/bionic/new.cpp b/libc/bionic/new.cpp
index c9ce163..5a6acc0 100644
--- a/libc/bionic/new.cpp
+++ b/libc/bionic/new.cpp
@@ -16,13 +16,14 @@
 
 #include <new>
 
-#include <errno.h>
 #include <stdlib.h>
 
 #include <async_safe/log.h>
 
 __attribute__((weak)) const std::nothrow_t std::nothrow = {};
 
+// We can't throw in bionic, so we go straight to the equivalent of
+// std::terminate for these two instead.
 void* operator new(std::size_t size) {
     void* p = malloc(size);
     if (p == nullptr) {
@@ -30,7 +31,6 @@
     }
     return p;
 }
-
 void* operator new[](std::size_t size) {
     void* p = malloc(size);
     if (p == nullptr) {
@@ -39,26 +39,21 @@
     return p;
 }
 
-void  operator delete(void* ptr) throw() {
-    free(ptr);
-}
-
-void  operator delete[](void* ptr) throw() {
-    free(ptr);
-}
-
+// These two are the "nothrow" variants, so we just return nullptr on failure.
 void* operator new(std::size_t size, const std::nothrow_t&) {
     return malloc(size);
 }
-
 void* operator new[](std::size_t size, const std::nothrow_t&) {
     return malloc(size);
 }
 
-void  operator delete(void* ptr, const std::nothrow_t&) throw() {
-    free(ptr);
-}
+// free() can't throw anyway (except on heap corruption, which is always fatal),
+// so there's no difference between the regular and "nothrow" variants here.
+void operator delete(void* p) noexcept { free(p); }
+void operator delete[](void* p) noexcept { free(p); }
+void operator delete(void* p, const std::nothrow_t&) noexcept { free(p); }
+void operator delete[](void* p, const std::nothrow_t&) noexcept { free(p); }
 
-void  operator delete[](void* ptr, const std::nothrow_t&) throw() {
-    free(ptr);
-}
+// TODO: these can use free_sized() once we have it (http://b/284321795).
+void operator delete(void* p, std::size_t) noexcept { free(p); }
+void operator delete[](void* p, std::size_t) noexcept { free(p); }
diff --git a/libc/bionic/pathconf.cpp b/libc/bionic/pathconf.cpp
index 9724f44..9bbecc3 100644
--- a/libc/bionic/pathconf.cpp
+++ b/libc/bionic/pathconf.cpp
@@ -107,14 +107,6 @@
     case _PC_REC_MIN_XFER_SIZE:
       return s.f_bsize;
 
-#if 0
-    case _PC_REC_INCR_XFER_SIZE:
-    case _PC_REC_MAX_XFER_SIZE:
-#endif
-
-    case _PC_SYMLINK_MAX:
-      return -1; /* no limit */
-
     case _PC_CHOWN_RESTRICTED:
       return _POSIX_CHOWN_RESTRICTED;
 
@@ -125,12 +117,15 @@
       return _POSIX_VDISABLE;
 
     case _PC_ASYNC_IO:
-      return -1;
-
     case _PC_PRIO_IO:
-      return -1;
-
+    case _PC_REC_INCR_XFER_SIZE:
+    case _PC_REC_MAX_XFER_SIZE:
+    case _PC_SYMLINK_MAX:
     case _PC_SYNC_IO:
+      // No API to answer these: the caller will have to "try it and see".
+      // This differs from the next case in not setting errno to EINVAL,
+      // since we did understand the question --- we just don't have a
+      // good answer.
       return -1;
 
     default:
diff --git a/libc/bionic/poll.cpp b/libc/bionic/poll.cpp
index 3290315..5b58425 100644
--- a/libc/bionic/poll.cpp
+++ b/libc/bionic/poll.cpp
@@ -48,17 +48,17 @@
   return __ppoll(fds, fd_count, ts_ptr, nullptr, 0);
 }
 
+// The underlying ppoll(2) system call only takes `sigset64_t`.
+#if defined(__LP64__)
+// That's fine for LP64 where `sigset_t` and `sigset64_t` are the same.
+__strong_alias(ppoll, ppoll64);
+#else
+// ILP32 needs a shim.
 int ppoll(pollfd* fds, nfds_t fd_count, const timespec* ts, const sigset_t* ss) {
-  // The underlying `__ppoll` system call only takes `sigset64_t`.
-  SigSetConverter set;
-  sigset64_t* ss_ptr = nullptr;
-  if (ss != nullptr) {
-    set = {};
-    set.sigset = *ss;
-    ss_ptr = &set.sigset64;
-  }
-  return ppoll64(fds, fd_count, ts, ss_ptr);
+  SigSetConverter set{ss};
+  return ppoll64(fds, fd_count, ts, set.ptr);
 }
+#endif
 
 int ppoll64(pollfd* fds, nfds_t fd_count, const timespec* ts, const sigset64_t* ss) {
   // The underlying __ppoll system call modifies its `struct timespec` argument.
@@ -96,18 +96,19 @@
   return result;
 }
 
+// The underlying pselect6(2) system call only takes `sigset64_t`.
+#if defined(__LP64__)
+// That's fine for LP64 where `sigset_t` and `sigset64_t` are the same.
+__strong_alias(pselect, pselect64);
+#else
+// ILP32 needs a shim.
 int pselect(int fd_count, fd_set* read_fds, fd_set* write_fds, fd_set* error_fds,
             const timespec* ts, const sigset_t* ss) {
   // The underlying `__pselect6` system call only takes `sigset64_t`.
-  SigSetConverter set;
-  sigset64_t* ss_ptr = nullptr;
-  if (ss != nullptr) {
-    set = {};
-    set.sigset = *ss;
-    ss_ptr = &set.sigset64;
-  }
-  return pselect64(fd_count, read_fds, write_fds, error_fds, ts, ss_ptr);
+  SigSetConverter set{ss};
+  return pselect64(fd_count, read_fds, write_fds, error_fds, ts, set.ptr);
 }
+#endif
 
 int pselect64(int fd_count, fd_set* read_fds, fd_set* write_fds, fd_set* error_fds,
               const timespec* ts, const sigset64_t* ss) {
diff --git a/libc/bionic/posix_timers.cpp b/libc/bionic/posix_timers.cpp
index f522516..9516059 100644
--- a/libc/bionic/posix_timers.cpp
+++ b/libc/bionic/posix_timers.cpp
@@ -34,6 +34,8 @@
 #include <string.h>
 #include <time.h>
 
+#include "private/bionic_lock.h"
+
 // System calls.
 extern "C" int __rt_sigprocmask(int, const sigset64_t*, sigset64_t*, size_t);
 extern "C" int __rt_sigtimedwait(const sigset64_t*, siginfo_t*, const timespec*, size_t);
@@ -60,6 +62,7 @@
   int sigev_notify;
 
   // The fields below are only needed for a SIGEV_THREAD timer.
+  Lock startup_handshake_lock;
   pthread_t callback_thread;
   void (*callback)(sigval_t);
   sigval_t callback_argument;
@@ -73,6 +76,18 @@
 static void* __timer_thread_start(void* arg) {
   PosixTimer* timer = reinterpret_cast<PosixTimer*>(arg);
 
+  // Check that our parent managed to create the kernel timer and bail if not...
+  timer->startup_handshake_lock.lock();
+  if (timer->kernel_timer_id == -1) {
+    free(timer);
+    return nullptr;
+  }
+
+  // Give ourselves a specific meaningful name now we have a kernel timer.
+  char name[16]; // 16 is the kernel-imposed limit.
+  snprintf(name, sizeof(name), "POSIX timer %d", to_kernel_timer_id(timer));
+  pthread_setname_np(timer->callback_thread, name);
+
   sigset64_t sigset = {};
   sigaddset64(&sigset, TIMER_SIGNAL);
 
@@ -102,13 +117,14 @@
   pthread_kill(timer->callback_thread, TIMER_SIGNAL);
 }
 
-// http://pubs.opengroup.org/onlinepubs/9699919799/functions/timer_create.html
+// https://pubs.opengroup.org/onlinepubs/9799919799.2024edition/functions/timer_create.html
 int timer_create(clockid_t clock_id, sigevent* evp, timer_t* timer_id) {
   PosixTimer* timer = reinterpret_cast<PosixTimer*>(malloc(sizeof(PosixTimer)));
   if (timer == nullptr) {
     return -1;
   }
 
+  timer->kernel_timer_id = -1;
   timer->sigev_notify = (evp == nullptr) ? SIGEV_SIGNAL : evp->sigev_notify;
 
   // If not a SIGEV_THREAD timer, the kernel can handle it without our help.
@@ -125,7 +141,7 @@
   // Otherwise, this must be SIGEV_THREAD timer...
   timer->callback = evp->sigev_notify_function;
   timer->callback_argument = evp->sigev_value;
-  atomic_init(&timer->deleted, false);
+  atomic_store_explicit(&timer->deleted, false, memory_order_relaxed);
 
   // Check arguments that the kernel doesn't care about but we do.
   if (timer->callback == nullptr) {
@@ -149,6 +165,10 @@
   sigaddset64(&sigset, TIMER_SIGNAL);
   sigset64_t old_sigset;
 
+  // Prevent the child thread from running until the timer has been created.
+  timer->startup_handshake_lock.init(false);
+  timer->startup_handshake_lock.lock();
+
   // Use __rt_sigprocmask instead of sigprocmask64 to avoid filtering out TIMER_SIGNAL.
   __rt_sigprocmask(SIG_BLOCK, &sigset, &old_sigset, sizeof(sigset));
 
@@ -162,26 +182,26 @@
     return -1;
   }
 
+  // Try to create the kernel timer.
   sigevent se = *evp;
   se.sigev_signo = TIMER_SIGNAL;
   se.sigev_notify = SIGEV_THREAD_ID;
   se.sigev_notify_thread_id = pthread_gettid_np(timer->callback_thread);
-  if (__timer_create(clock_id, &se, &timer->kernel_timer_id) == -1) {
-    __timer_thread_stop(timer);
+  rc = __timer_create(clock_id, &se, &timer->kernel_timer_id);
+
+  // Let the child run (whether we created the kernel timer or not).
+  timer->startup_handshake_lock.unlock();
+  // If __timer_create(2) failed, the child will kill itself and free the
+  // timer struct, so we just need to exit.
+  if (rc == -1) {
     return -1;
   }
 
-  // Give the thread a specific meaningful name.
-  // It can't do this itself because the kernel timer isn't created until after it's running.
-  char name[16]; // 16 is the kernel-imposed limit.
-  snprintf(name, sizeof(name), "POSIX timer %d", to_kernel_timer_id(timer));
-  pthread_setname_np(timer->callback_thread, name);
-
   *timer_id = timer;
   return 0;
 }
 
-// http://pubs.opengroup.org/onlinepubs/9699919799/functions/timer_delete.html
+// https://pubs.opengroup.org/onlinepubs/9799919799.2024edition/functions/timer_delete.html
 int timer_delete(timer_t id) {
   int rc = __timer_delete(to_kernel_timer_id(id));
   if (rc == -1) {
@@ -200,12 +220,12 @@
   return 0;
 }
 
-// http://pubs.opengroup.org/onlinepubs/9699919799/functions/timer_gettime.html
+// https://pubs.opengroup.org/onlinepubs/9799919799.2024edition/functions/timer_gettime.html
 int timer_gettime(timer_t id, itimerspec* ts) {
   return __timer_gettime(to_kernel_timer_id(id), ts);
 }
 
-// http://pubs.opengroup.org/onlinepubs/9699919799/functions/timer_settime.html
+// https://pubs.opengroup.org/onlinepubs/9799919799.2024edition/functions/timer_settime.html
 // When using timer_settime to disarm a repeatable SIGEV_THREAD timer with a very small
 // period (like below 1ms), the kernel may continue to send events to the callback thread
 // for a few extra times. This behavior is fine because in POSIX standard: The effect of
@@ -215,7 +235,7 @@
   return __timer_settime(timer->kernel_timer_id, flags, ts, ots);
 }
 
-// http://pubs.opengroup.org/onlinepubs/9699919799/functions/timer_getoverrun.html
+// https://pubs.opengroup.org/onlinepubs/9799919799.2024edition/functions/timer_getoverrun.html
 int timer_getoverrun(timer_t id) {
   return __timer_getoverrun(to_kernel_timer_id(id));
 }
diff --git a/libc/bionic/pthread_attr.cpp b/libc/bionic/pthread_attr.cpp
index 89aa289..f6c0401 100644
--- a/libc/bionic/pthread_attr.cpp
+++ b/libc/bionic/pthread_attr.cpp
@@ -36,8 +36,9 @@
 
 #include <async_safe/log.h>
 
-#include "private/bionic_defs.h"
+#include "platform/bionic/page.h"
 #include "private/ErrnoRestorer.h"
+#include "private/bionic_defs.h"
 #include "pthread_internal.h"
 
 __BIONIC_WEAK_FOR_NATIVE_BRIDGE
@@ -143,10 +144,10 @@
 
 __BIONIC_WEAK_FOR_NATIVE_BRIDGE
 int pthread_attr_setstack(pthread_attr_t* attr, void* stack_base, size_t stack_size) {
-  if ((stack_size & (PAGE_SIZE - 1) || stack_size < PTHREAD_STACK_MIN)) {
+  if ((stack_size & (page_size() - 1) || stack_size < PTHREAD_STACK_MIN)) {
     return EINVAL;
   }
-  if (reinterpret_cast<uintptr_t>(stack_base) & (PAGE_SIZE - 1)) {
+  if (reinterpret_cast<uintptr_t>(stack_base) & (page_size() - 1)) {
     return EINVAL;
   }
   attr->stack_base = stack_base;
@@ -154,36 +155,6 @@
   return 0;
 }
 
-static uintptr_t __get_main_stack_startstack() {
-  FILE* fp = fopen("/proc/self/stat", "re");
-  if (fp == nullptr) {
-    async_safe_fatal("couldn't open /proc/self/stat: %s", strerror(errno));
-  }
-
-  char line[BUFSIZ];
-  if (fgets(line, sizeof(line), fp) == nullptr) {
-    async_safe_fatal("couldn't read /proc/self/stat: %s", strerror(errno));
-  }
-
-  fclose(fp);
-
-  // See man 5 proc. There's no reason comm can't contain ' ' or ')',
-  // so we search backwards for the end of it. We're looking for this field:
-  //
-  //  startstack %lu (28) The address of the start (i.e., bottom) of the stack.
-  uintptr_t startstack = 0;
-  const char* end_of_comm = strrchr(line, ')');
-  if (sscanf(end_of_comm + 1, " %*c "
-             "%*d %*d %*d %*d %*d "
-             "%*u %*u %*u %*u %*u %*u %*u "
-             "%*d %*d %*d %*d %*d %*d "
-             "%*u %*u %*d %*u %*u %*u %" SCNuPTR, &startstack) != 1) {
-    async_safe_fatal("couldn't parse /proc/self/stat");
-  }
-
-  return startstack;
-}
-
 static int __pthread_attr_getstack_main_thread(void** stack_base, size_t* stack_size) {
   ErrnoRestorer errno_restorer;
 
@@ -197,28 +168,11 @@
   if (stack_limit.rlim_cur == RLIM_INFINITY) {
     stack_limit.rlim_cur = 8 * 1024 * 1024;
   }
-
-  // Ask the kernel where our main thread's stack started.
-  uintptr_t startstack = __get_main_stack_startstack();
-
-  // Hunt for the region that contains that address.
-  FILE* fp = fopen("/proc/self/maps", "re");
-  if (fp == nullptr) {
-    async_safe_fatal("couldn't open /proc/self/maps: %s", strerror(errno));
-  }
-  char line[BUFSIZ];
-  while (fgets(line, sizeof(line), fp) != nullptr) {
-    uintptr_t lo, hi;
-    if (sscanf(line, "%" SCNxPTR "-%" SCNxPTR, &lo, &hi) == 2) {
-      if (lo <= startstack && startstack <= hi) {
-        *stack_size = stack_limit.rlim_cur;
-        *stack_base = reinterpret_cast<void*>(hi - *stack_size);
-        fclose(fp);
-        return 0;
-      }
-    }
-  }
-  async_safe_fatal("Stack not found in /proc/self/maps");
+  uintptr_t lo, hi;
+  __find_main_stack_limits(&lo, &hi);
+  *stack_size = stack_limit.rlim_cur;
+  *stack_base = reinterpret_cast<void*>(hi - *stack_size);
+  return 0;
 }
 
 __BIONIC_WEAK_FOR_NATIVE_BRIDGE
diff --git a/libc/bionic/pthread_barrier.cpp b/libc/bionic/pthread_barrier.cpp
index 1618222..ff048a6 100644
--- a/libc/bionic/pthread_barrier.cpp
+++ b/libc/bionic/pthread_barrier.cpp
@@ -95,8 +95,8 @@
     return EINVAL;
   }
   barrier->init_count = count;
-  atomic_init(&barrier->state, WAIT);
-  atomic_init(&barrier->wait_count, 0);
+  atomic_store_explicit(&barrier->state, WAIT, memory_order_relaxed);
+  atomic_store_explicit(&barrier->wait_count, 0, memory_order_relaxed);
   barrier->pshared = false;
   if (attr != nullptr && (*attr & 1)) {
     barrier->pshared = true;
diff --git a/libc/bionic/pthread_cond.cpp b/libc/bionic/pthread_cond.cpp
index f444676..197fd19 100644
--- a/libc/bionic/pthread_cond.cpp
+++ b/libc/bionic/pthread_cond.cpp
@@ -140,10 +140,10 @@
   if (attr != nullptr) {
     init_state = (*attr & COND_FLAGS_MASK);
   }
-  atomic_init(&cond->state, init_state);
+  atomic_store_explicit(&cond->state, init_state, memory_order_relaxed);
 
 #if defined(__LP64__)
-  atomic_init(&cond->waiters, 0);
+  atomic_store_explicit(&cond->waiters, 0, memory_order_relaxed);
 #endif
 
   return 0;
diff --git a/libc/bionic/pthread_create.cpp b/libc/bionic/pthread_create.cpp
index 7bf9b40..3fa8ee6 100644
--- a/libc/bionic/pthread_create.cpp
+++ b/libc/bionic/pthread_create.cpp
@@ -42,6 +42,7 @@
 
 #include "platform/bionic/macros.h"
 #include "platform/bionic/mte.h"
+#include "platform/bionic/page.h"
 #include "private/ErrnoRestorer.h"
 #include "private/ScopedRWLock.h"
 #include "private/bionic_constants.h"
@@ -64,6 +65,7 @@
 }
 
 void __init_bionic_tls_ptrs(bionic_tcb* tcb, bionic_tls* tls) {
+  tcb->thread()->bionic_tcb = tcb;
   tcb->thread()->bionic_tls = tls;
   tcb->tls_slot(TLS_SLOT_BIONIC_TLS) = tls;
 }
@@ -71,27 +73,26 @@
 // Allocate a temporary bionic_tls that the dynamic linker's main thread can
 // use while it's loading the initial set of ELF modules.
 bionic_tls* __allocate_temp_bionic_tls() {
-  size_t allocation_size = __BIONIC_ALIGN(sizeof(bionic_tls), PAGE_SIZE);
+  size_t allocation_size = __BIONIC_ALIGN(sizeof(bionic_tls), page_size());
   void* allocation = mmap(nullptr, allocation_size,
                           PROT_READ | PROT_WRITE,
                           MAP_PRIVATE | MAP_ANONYMOUS,
                           -1, 0);
   if (allocation == MAP_FAILED) {
-    // Avoid strerror because it might need bionic_tls.
-    async_safe_fatal("failed to allocate bionic_tls: error %d", errno);
+    async_safe_fatal("failed to allocate bionic_tls: %m");
   }
   return static_cast<bionic_tls*>(allocation);
 }
 
 void __free_temp_bionic_tls(bionic_tls* tls) {
-  munmap(tls, __BIONIC_ALIGN(sizeof(bionic_tls), PAGE_SIZE));
+  munmap(tls, __BIONIC_ALIGN(sizeof(bionic_tls), page_size()));
 }
 
 static void __init_alternate_signal_stack(pthread_internal_t* thread) {
   // Create and set an alternate signal stack.
   int prot = PROT_READ | PROT_WRITE;
 #ifdef __aarch64__
-  if (atomic_load(&__libc_globals->memtag_stack)) {
+  if (atomic_load(&__libc_memtag_stack)) {
     prot |= PROT_MTE;
   }
 #endif
@@ -117,12 +118,15 @@
 
 static void __init_shadow_call_stack(pthread_internal_t* thread __unused) {
 #if defined(__aarch64__) || defined(__riscv)
-  // Allocate the stack and the guard region.
+  // Allocate the shadow call stack and its guard region.
   char* scs_guard_region = reinterpret_cast<char*>(
-      mmap(nullptr, SCS_GUARD_REGION_SIZE, 0, MAP_PRIVATE | MAP_ANON, -1, 0));
+      mmap(nullptr, SCS_GUARD_REGION_SIZE, PROT_NONE, MAP_PRIVATE | MAP_ANON, -1, 0));
+  if (scs_guard_region == MAP_FAILED) {
+    async_safe_fatal("failed to allocate shadow stack: %m");
+  }
   thread->shadow_call_stack_guard_region = scs_guard_region;
 
-  // The address is aligned to SCS_SIZE so that we only need to store the lower log2(SCS_SIZE) bits
+  // Align the address to SCS_SIZE so that we only need to store the lower log2(SCS_SIZE) bits
   // in jmp_buf. See the SCS commentary in pthread_internal.h for more detail.
   char* scs_aligned_guard_region =
       reinterpret_cast<char*>(align_up(reinterpret_cast<uintptr_t>(scs_guard_region), SCS_SIZE));
@@ -136,11 +140,13 @@
   // Make the stack read-write, and store its address in the register we're using as the shadow
   // stack pointer. This is deliberately the only place where the address is stored.
   char* scs = scs_aligned_guard_region + scs_offset;
-  mprotect(scs, SCS_SIZE, PROT_READ | PROT_WRITE);
+  if (mprotect(scs, SCS_SIZE, PROT_READ | PROT_WRITE) == -1) {
+    async_safe_fatal("shadow stack read-write mprotect(%p, %d) failed: %m", scs, SCS_SIZE);
+  }
 #if defined(__aarch64__)
   __asm__ __volatile__("mov x18, %0" ::"r"(scs));
 #elif defined(__riscv)
-  __asm__ __volatile__("mv gp, %0" ::"r"(scs));
+  __asm__ __volatile__("mv x3, %0" ::"r"(scs));
 #endif
 #endif
 }
@@ -153,11 +159,11 @@
 int __init_thread(pthread_internal_t* thread) {
   thread->cleanup_stack = nullptr;
 
-  if (__predict_true((thread->attr.flags & PTHREAD_ATTR_FLAG_DETACHED) == 0)) {
-    atomic_init(&thread->join_state, THREAD_NOT_JOINED);
-  } else {
-    atomic_init(&thread->join_state, THREAD_DETACHED);
+  ThreadJoinState state = THREAD_NOT_JOINED;
+  if (__predict_false((thread->attr.flags & PTHREAD_ATTR_FLAG_DETACHED) != 0)) {
+    state = THREAD_DETACHED;
   }
+  atomic_store_explicit(&thread->join_state, state, memory_order_relaxed);
 
   // Set the scheduling policy/priority of the thread if necessary.
   bool need_set = true;
@@ -170,12 +176,11 @@
     if (need_set) {
       if (policy == -1) {
         async_safe_format_log(ANDROID_LOG_WARN, "libc",
-                              "pthread_create sched_getscheduler failed: %s", strerror(errno));
+                              "pthread_create sched_getscheduler failed: %m");
         return errno;
       }
       if (sched_getparam(0, &param) == -1) {
-        async_safe_format_log(ANDROID_LOG_WARN, "libc",
-                              "pthread_create sched_getparam failed: %s", strerror(errno));
+        async_safe_format_log(ANDROID_LOG_WARN, "libc", "pthread_create sched_getparam failed: %m");
         return errno;
       }
     }
@@ -191,8 +196,8 @@
   if (need_set) {
     if (sched_setscheduler(thread->tid, policy, &param) == -1) {
       async_safe_format_log(ANDROID_LOG_WARN, "libc",
-                            "pthread_create sched_setscheduler(%d, {%d}) call failed: %s", policy,
-                            param.sched_priority, strerror(errno));
+                            "pthread_create sched_setscheduler(%d, {%d}) call failed: %m", policy,
+                            param.sched_priority);
 #if defined(__LP64__)
       // For backwards compatibility reasons, we only report failures on 64-bit devices.
       return errno;
@@ -203,12 +208,11 @@
   return 0;
 }
 
-
 // Allocate a thread's primary mapping. This mapping includes static TLS and
 // optionally a stack. Static TLS includes ELF TLS segments and the bionic_tls
 // struct.
 //
-// The stack_guard_size must be a multiple of the PAGE_SIZE.
+// The stack_guard_size must be a multiple of the page_size().
 ThreadMapping __allocate_thread_mapping(size_t stack_size, size_t stack_guard_size) {
   const StaticTlsLayout& layout = __libc_shared_globals()->static_tls_layout;
 
@@ -220,7 +224,7 @@
 
   // Align the result to a page size.
   const size_t unaligned_size = mmap_size;
-  mmap_size = __BIONIC_ALIGN(mmap_size, PAGE_SIZE);
+  mmap_size = __BIONIC_ALIGN(mmap_size, page_size());
   if (mmap_size < unaligned_size) return {};
 
   // Create a new private anonymous map. Make the entire mapping PROT_NONE, then carve out a
@@ -228,17 +232,16 @@
   const int flags = MAP_PRIVATE | MAP_ANONYMOUS | MAP_NORESERVE;
   char* const space = static_cast<char*>(mmap(nullptr, mmap_size, PROT_NONE, flags, -1, 0));
   if (space == MAP_FAILED) {
-    async_safe_format_log(ANDROID_LOG_WARN,
-                          "libc",
-                          "pthread_create failed: couldn't allocate %zu-bytes mapped space: %s",
-                          mmap_size, strerror(errno));
+    async_safe_format_log(ANDROID_LOG_WARN, "libc",
+                          "pthread_create failed: couldn't allocate %zu-bytes mapped space: %m",
+                          mmap_size);
     return {};
   }
   const size_t writable_size = mmap_size - stack_guard_size - PTHREAD_GUARD_SIZE;
   int prot = PROT_READ | PROT_WRITE;
   const char* prot_str = "R+W";
 #ifdef __aarch64__
-  if (atomic_load(&__libc_globals->memtag_stack)) {
+  if (atomic_load(&__libc_memtag_stack)) {
     prot |= PROT_MTE;
     prot_str = "R+W+MTE";
   }
@@ -246,8 +249,8 @@
   if (mprotect(space + stack_guard_size, writable_size, prot) != 0) {
     async_safe_format_log(
         ANDROID_LOG_WARN, "libc",
-        "pthread_create failed: couldn't mprotect %s %zu-byte thread mapping region: %s", prot_str,
-        writable_size, strerror(errno));
+        "pthread_create failed: couldn't mprotect %s %zu-byte thread mapping region: %m", prot_str,
+        writable_size);
     munmap(space, mmap_size);
     return {};
   }
@@ -271,9 +274,9 @@
   if (attr->stack_base == nullptr) {
     // The caller didn't provide a stack, so allocate one.
 
-    // Make sure the guard size is a multiple of PAGE_SIZE.
+    // Make sure the guard size is a multiple of page_size().
     const size_t unaligned_guard_size = attr->guard_size;
-    attr->guard_size = __BIONIC_ALIGN(attr->guard_size, PAGE_SIZE);
+    attr->guard_size = __BIONIC_ALIGN(attr->guard_size, page_size());
     if (attr->guard_size < unaligned_guard_size) return EAGAIN;
 
     mapping = __allocate_thread_mapping(attr->stack_size, attr->guard_size);
@@ -348,15 +351,20 @@
 
 extern "C" int __rt_sigprocmask(int, const sigset64_t*, sigset64_t*, size_t);
 
-__attribute__((no_sanitize("hwaddress")))
-#ifdef __aarch64__
+__attribute__((no_sanitize("hwaddress", "memtag")))
+#if defined(__aarch64__)
 // This function doesn't return, but it does appear in stack traces. Avoid using return PAC in this
 // function because we may end up resetting IA, which may confuse unwinders due to mismatching keys.
 __attribute__((target("branch-protection=bti")))
 #endif
-static int __pthread_start(void* arg) {
+static int
+__pthread_start(void* arg) {
   pthread_internal_t* thread = reinterpret_cast<pthread_internal_t*>(arg);
-
+#if defined(__aarch64__)
+  if (thread->should_allocate_stack_mte_ringbuffer) {
+    thread->bionic_tcb->tls_slot(TLS_SLOT_STACK_MTE) = __allocate_stack_mte_ringbuffer(0, thread);
+  }
+#endif
   __hwasan_thread_enter();
 
   // Wait for our creating thread to release us. This lets it have time to
@@ -368,13 +376,13 @@
   __set_stack_and_tls_vma_name(false);
   __init_additional_stacks(thread);
   __rt_sigprocmask(SIG_SETMASK, &thread->start_mask, nullptr, sizeof(thread->start_mask));
-#ifdef __aarch64__
+#if defined(__aarch64__)
   // Chrome's sandbox prevents this prctl, so only reset IA if the target SDK level is high enough.
   // Furthermore, processes loaded from vendor partitions may have their own sandboxes that would
-  // reject the prctl. Because no devices launched with PAC enabled before S, we can avoid issues on
-  // upgrading devices by checking for PAC support before issuing the prctl.
+  // reject the prctl. Because no devices launched with PAC enabled before API level 31, we can
+  // avoid issues on upgrading devices by checking for PAC support before issuing the prctl.
   static const bool pac_supported = getauxval(AT_HWCAP) & HWCAP_PACA;
-  if (pac_supported && android_get_application_target_sdk_version() >= __ANDROID_API_S__) {
+  if (pac_supported && android_get_application_target_sdk_version() >= 31) {
     prctl(PR_PAC_RESET_KEYS, PR_PAC_APIAKEY, 0, 0, 0);
   }
 #endif
@@ -444,6 +452,14 @@
 
   ScopedReadLock locker(&g_thread_creation_lock);
 
+// This has to be done under g_thread_creation_lock or g_thread_list_lock to avoid racing with
+// __pthread_internal_remap_stack_with_mte.
+#ifdef __aarch64__
+  thread->should_allocate_stack_mte_ringbuffer = __libc_memtag_stack_abi;
+#else
+  thread->should_allocate_stack_mte_ringbuffer = false;
+#endif
+
   sigset64_t block_all_mask;
   sigfillset64(&block_all_mask);
   __rt_sigprocmask(SIG_SETMASK, &block_all_mask, &thread->start_mask, sizeof(thread->start_mask));
@@ -458,8 +474,7 @@
     if (thread->mmap_size != 0) {
       munmap(thread->mmap_base, thread->mmap_size);
     }
-    async_safe_format_log(ANDROID_LOG_WARN, "libc", "pthread_create failed: clone failed: %s",
-                          strerror(clone_errno));
+    async_safe_format_log(ANDROID_LOG_WARN, "libc", "pthread_create failed: clone failed: %m");
     return clone_errno;
   }
 
diff --git a/libc/bionic/pthread_exit.cpp b/libc/bionic/pthread_exit.cpp
index f584b27..27d05c2 100644
--- a/libc/bionic/pthread_exit.cpp
+++ b/libc/bionic/pthread_exit.cpp
@@ -33,10 +33,11 @@
 #include <string.h>
 #include <sys/mman.h>
 
-#include "private/bionic_constants.h"
-#include "private/bionic_defs.h"
+#include "platform/bionic/mte.h"
 #include "private/ScopedRWLock.h"
 #include "private/ScopedSignalBlocker.h"
+#include "private/bionic_constants.h"
+#include "private/bionic_defs.h"
 #include "pthread_internal.h"
 
 extern "C" __noreturn void _exit_with_stack_teardown(void*, size_t);
@@ -67,7 +68,7 @@
 }
 
 __BIONIC_WEAK_FOR_NATIVE_BRIDGE
-void pthread_exit(void* return_value) {
+__attribute__((no_sanitize("memtag"))) void pthread_exit(void* return_value) {
   // Call dtors for thread_local objects first.
   __cxa_thread_finalize();
 
@@ -133,20 +134,24 @@
 
     // pthread_internal_t is freed below with stack, not here.
     __pthread_internal_remove(thread);
-
-    if (thread->mmap_size != 0) {
-      // We need to free mapped space for detached threads when they exit.
-      // That's not something we can do in C.
-      __notify_thread_exit_callbacks();
-      __hwasan_thread_exit();
-      _exit_with_stack_teardown(thread->mmap_base, thread->mmap_size);
-    }
   }
 
-  // No need to free mapped space. Either there was no space mapped, or it is left for
-  // the pthread_join caller to clean up.
   __notify_thread_exit_callbacks();
   __hwasan_thread_exit();
 
+#if defined(__aarch64__)
+  if (void* stack_mte_tls = thread->bionic_tcb->tls_slot(TLS_SLOT_STACK_MTE)) {
+    stack_mte_free_ringbuffer(reinterpret_cast<uintptr_t>(stack_mte_tls));
+  }
+#endif
+  // Everything below this line needs to be no_sanitize("memtag").
+
+  if (old_state == THREAD_DETACHED && thread->mmap_size != 0) {
+    // We need to free mapped space for detached threads when they exit.
+    // That's not something we can do in C.
+    _exit_with_stack_teardown(thread->mmap_base, thread->mmap_size);
+  }
+  // No need to free mapped space. Either there was no space mapped,
+  // or it is left for the pthread_join caller to clean up.
   __exit(0);
 }
diff --git a/libc/bionic/isatty.c b/libc/bionic/pthread_getaffinity.cpp
similarity index 76%
copy from libc/bionic/isatty.c
copy to libc/bionic/pthread_getaffinity.cpp
index 93af6c5..9ce436c 100644
--- a/libc/bionic/isatty.c
+++ b/libc/bionic/pthread_getaffinity.cpp
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2008 The Android Open Source Project
+ * Copyright (C) 2024 The Android Open Source Project
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -26,14 +26,17 @@
  * SUCH DAMAGE.
  */
 
-#include <unistd.h>
-#include <termios.h>
 #include <errno.h>
 
-int
-isatty (int  fd)
-{
-  struct termios term;
+#include "private/ErrnoRestorer.h"
+#include "pthread_internal.h"
 
-  return tcgetattr (fd, &term) == 0;
+int pthread_getaffinity_np(pthread_t t, size_t cpu_set_size, cpu_set_t* cpu_set) {
+  ErrnoRestorer errno_restorer;
+
+  pid_t tid = __pthread_internal_gettid(t, "pthread_getaffinity_np");
+  if (tid == -1) return ESRCH;
+
+  if (sched_getaffinity(tid, cpu_set_size, cpu_set) == -1) return errno;
+  return 0;
 }
diff --git a/libc/bionic/pthread_internal.cpp b/libc/bionic/pthread_internal.cpp
index 6a7ee2f..4f2ad0c 100644
--- a/libc/bionic/pthread_internal.cpp
+++ b/libc/bionic/pthread_internal.cpp
@@ -33,13 +33,18 @@
 #include <stdlib.h>
 #include <string.h>
 #include <sys/mman.h>
+#include <sys/prctl.h>
+#include <sys/types.h>
 
 #include <async_safe/log.h>
+#include <bionic/mte.h>
 #include <bionic/reserved_signals.h>
+#include <bionic/tls_defines.h>
 
 #include "private/ErrnoRestorer.h"
 #include "private/ScopedRWLock.h"
 #include "private/bionic_futex.h"
+#include "private/bionic_globals.h"
 #include "private/bionic_tls.h"
 
 static pthread_internal_t* g_thread_list = nullptr;
@@ -119,6 +124,119 @@
   return nullptr;
 }
 
+static uintptr_t __get_main_stack_startstack() {
+  FILE* fp = fopen("/proc/self/stat", "re");
+  if (fp == nullptr) {
+    async_safe_fatal("couldn't open /proc/self/stat: %m");
+  }
+
+  char line[BUFSIZ];
+  if (fgets(line, sizeof(line), fp) == nullptr) {
+    async_safe_fatal("couldn't read /proc/self/stat: %m");
+  }
+
+  fclose(fp);
+
+  // See man 5 proc. There's no reason comm can't contain ' ' or ')',
+  // so we search backwards for the end of it. We're looking for this field:
+  //
+  //  startstack %lu (28) The address of the start (i.e., bottom) of the stack.
+  uintptr_t startstack = 0;
+  const char* end_of_comm = strrchr(line, ')');
+  if (sscanf(end_of_comm + 1,
+             " %*c "
+             "%*d %*d %*d %*d %*d "
+             "%*u %*u %*u %*u %*u %*u %*u "
+             "%*d %*d %*d %*d %*d %*d "
+             "%*u %*u %*d %*u %*u %*u %" SCNuPTR,
+             &startstack) != 1) {
+    async_safe_fatal("couldn't parse /proc/self/stat");
+  }
+
+  return startstack;
+}
+
+void __find_main_stack_limits(uintptr_t* low, uintptr_t* high) {
+  // Ask the kernel where our main thread's stack started.
+  uintptr_t startstack = __get_main_stack_startstack();
+
+  // Hunt for the region that contains that address.
+  FILE* fp = fopen("/proc/self/maps", "re");
+  if (fp == nullptr) {
+    async_safe_fatal("couldn't open /proc/self/maps: %m");
+  }
+  char line[BUFSIZ];
+  while (fgets(line, sizeof(line), fp) != nullptr) {
+    uintptr_t lo, hi;
+    if (sscanf(line, "%" SCNxPTR "-%" SCNxPTR, &lo, &hi) == 2) {
+      if (lo <= startstack && startstack <= hi) {
+        *low = lo;
+        *high = hi;
+        fclose(fp);
+        return;
+      }
+    }
+  }
+  async_safe_fatal("stack not found in /proc/self/maps");
+}
+
+#if defined(__aarch64__)
+__LIBC_HIDDEN__ void* __allocate_stack_mte_ringbuffer(size_t n, pthread_internal_t* thread) {
+  const char* name;
+  if (thread == nullptr) {
+    name = "stack_mte_ring:main";
+  } else {
+    // The kernel doesn't copy the name string, but this variable will last at least as long as the
+    // mapped area. We unmap the ring buffer before unmapping the rest of the thread storage.
+    auto& name_buffer = thread->stack_mte_ringbuffer_vma_name_buffer;
+    static_assert(arraysize(name_buffer) >= arraysize("stack_mte_ring:") + 11 + 1);
+    async_safe_format_buffer(name_buffer, arraysize(name_buffer), "stack_mte_ring:%d", thread->tid);
+    name = name_buffer;
+  }
+  void* ret = stack_mte_ringbuffer_allocate(n, name);
+  if (!ret) async_safe_fatal("error: failed to allocate stack mte ring buffer");
+  return ret;
+}
+#endif
+
+bool __pthread_internal_remap_stack_with_mte() {
+#if defined(__aarch64__)
+  ScopedWriteLock creation_locker(&g_thread_creation_lock);
+  ScopedReadLock list_locker(&g_thread_list_lock);
+  // If process already uses memtag-stack ABI, we don't need to do anything.
+  if (__libc_memtag_stack_abi) return false;
+  __libc_memtag_stack_abi = true;
+
+  for (pthread_internal_t* t = g_thread_list; t != nullptr; t = t->next) {
+    // should_allocate_stack_mte_ringbuffer indicates the thread is already
+    // aware that this process requires stack MTE, and will allocate the
+    // ring buffer in __pthread_start.
+    if (t->terminating || t->should_allocate_stack_mte_ringbuffer) continue;
+    t->bionic_tcb->tls_slot(TLS_SLOT_STACK_MTE) =
+        __allocate_stack_mte_ringbuffer(0, t->is_main() ? nullptr : t);
+  }
+  if (!atomic_load(&__libc_globals->memtag)) return false;
+  if (atomic_exchange(&__libc_memtag_stack, true)) return false;
+  uintptr_t lo, hi;
+  __find_main_stack_limits(&lo, &hi);
+
+  if (mprotect(reinterpret_cast<void*>(lo), hi - lo,
+               PROT_READ | PROT_WRITE | PROT_MTE | PROT_GROWSDOWN)) {
+    async_safe_fatal("error: failed to set PROT_MTE on main thread");
+  }
+  for (pthread_internal_t* t = g_thread_list; t != nullptr; t = t->next) {
+    if (t->terminating || t->is_main()) continue;
+    if (mprotect(t->mmap_base_unguarded, t->mmap_size_unguarded,
+                 PROT_READ | PROT_WRITE | PROT_MTE)) {
+      async_safe_fatal("error: failed to set PROT_MTE on thread: %d", t->tid);
+    }
+  }
+  return true;
+#else
+  return false;
+#endif  // defined(__aarch64__)
+}
+
 bool android_run_on_all_threads(bool (*func)(void*), void* arg) {
   // Take the locks in this order to avoid inversion (pthread_create ->
   // __pthread_internal_add).
@@ -141,8 +259,7 @@
   g_func = func;
   g_arg = arg;
 
-  static _Atomic(bool) g_retval;
-  atomic_init(&g_retval, true);
+  static _Atomic(bool) g_retval(true);
 
   auto handler = [](int, siginfo_t*, void*) {
     ErrnoRestorer restorer;
diff --git a/libc/bionic/pthread_internal.h b/libc/bionic/pthread_internal.h
index a3a4ccd..cbaa9a6 100644
--- a/libc/bionic/pthread_internal.h
+++ b/libc/bionic/pthread_internal.h
@@ -38,6 +38,8 @@
 #define __hwasan_thread_exit()
 #endif
 
+#include "platform/bionic/page.h"
+
 #include "private/bionic_elf_tls.h"
 #include "private/bionic_lock.h"
 #include "private/bionic_tls.h"
@@ -137,7 +139,7 @@
   //    clobber x18 on arm64, therefore each process must declare early during
   //    process startup whether it might load legacy code.
   //    TODO: riscv64 has no legacy code, so we can actually go this route
-  //    there, but hopefully we'll actually get the Zsslpcfi extension instead.
+  //    there, but hopefully we'll actually get the Zisslpcfi extension instead.
   // 2) Mark the guard region as such using prctl(PR_SET_VMA_ANON_NAME) and
   //    discover its address by reading /proc/self/maps. One issue with this is
   //    that reading /proc/self/maps can race with allocations, so we may need
@@ -177,12 +179,11 @@
 
   int errno_value;
 
-  // The last observed value of SP in a vfork child process.
-  // The part of the stack between this address and the value of SP when the vfork parent process
-  // regains control may have stale MTE tags and needs cleanup. This field is only meaningful while
-  // the parent is waiting for the vfork child to return control by calling either exec*() or
-  // exit().
-  void* vfork_child_stack_bottom;
+  bionic_tcb* bionic_tcb;
+  char stack_mte_ringbuffer_vma_name_buffer[32];
+  bool should_allocate_stack_mte_ringbuffer;
+
+  bool is_main() { return start_routine == nullptr; }
 };
 
 struct ThreadMapping {
@@ -212,6 +213,10 @@
 __LIBC_HIDDEN__ pid_t __pthread_internal_gettid(pthread_t pthread_id, const char* caller);
 __LIBC_HIDDEN__ void __pthread_internal_remove(pthread_internal_t* thread);
 __LIBC_HIDDEN__ void __pthread_internal_remove_and_free(pthread_internal_t* thread);
+__LIBC_HIDDEN__ void __find_main_stack_limits(uintptr_t* low, uintptr_t* high);
+#if defined(__aarch64__)
+__LIBC_HIDDEN__ void* __allocate_stack_mte_ringbuffer(size_t n, pthread_internal_t* thread);
+#endif
 
 static inline __always_inline bionic_tcb* __get_bionic_tcb() {
   return reinterpret_cast<bionic_tcb*>(&__get_tls()[MIN_TLS_SLOT]);
@@ -243,7 +248,7 @@
 // On LP64, we could use more but there's no obvious advantage to doing
 // so, and the various media processes use RLIMIT_AS as a way to limit
 // the amount of allocation they'll do.
-#define PTHREAD_GUARD_SIZE PAGE_SIZE
+#define PTHREAD_GUARD_SIZE max_android_page_size()
 
 // SIGSTKSZ (8KiB) is not big enough.
 // An snprintf to a stack buffer of size PATH_MAX consumes ~7KiB of stack.
@@ -271,6 +276,10 @@
 __LIBC_HIDDEN__ extern void __bionic_atfork_run_child();
 __LIBC_HIDDEN__ extern void __bionic_atfork_run_parent();
 
+// Re-map all threads and successively launched threads with PROT_MTE. Returns 'true' if remapping
+// took place, 'false' on error or if the stacks were already remapped in the past.
+__LIBC_HIDDEN__ bool __pthread_internal_remap_stack_with_mte();
+
 extern "C" bool android_run_on_all_threads(bool (*func)(void*), void* arg);
 
 extern pthread_rwlock_t g_thread_creation_lock;
diff --git a/libc/bionic/pthread_mutex.cpp b/libc/bionic/pthread_mutex.cpp
index 9b37225..c99717a 100644
--- a/libc/bionic/pthread_mutex.cpp
+++ b/libc/bionic/pthread_mutex.cpp
@@ -182,7 +182,12 @@
         return 0;
     }
     if (ret == EBUSY) {
-        ScopedTrace trace("Contending for pthread mutex");
+        char trace_msg[64];
+        const pid_t owner = atomic_load_explicit(&mutex.owner_tid, memory_order_relaxed)
+                & FUTEX_TID_MASK;
+        snprintf(trace_msg, sizeof(trace_msg),
+                 "Contending for pthread mutex owned by tid: %d", owner);
+        ScopedTrace trace(trace_msg);
         ret = -__futex_pi_lock_ex(&mutex.owner_tid, mutex.shared, use_realtime_clock, abs_timeout);
     }
     return ret;
@@ -504,8 +509,8 @@
     memset(mutex, 0, sizeof(pthread_mutex_internal_t));
 
     if (__predict_true(attr == nullptr)) {
-        atomic_init(&mutex->state, MUTEX_TYPE_BITS_NORMAL);
-        return 0;
+      atomic_store_explicit(&mutex->state, MUTEX_TYPE_BITS_NORMAL, memory_order_relaxed);
+      return 0;
     }
 
     uint16_t state = 0;
@@ -538,13 +543,13 @@
         }
         mutex->pi_mutex_id = id;
 #endif
-        atomic_init(&mutex->state, PI_MUTEX_STATE);
+        atomic_store_explicit(&mutex->state, PI_MUTEX_STATE, memory_order_relaxed);
         PIMutex& pi_mutex = mutex->ToPIMutex();
         pi_mutex.type = *attr & MUTEXATTR_TYPE_MASK;
         pi_mutex.shared = (*attr & MUTEXATTR_SHARED_MASK) != 0;
     } else {
-        atomic_init(&mutex->state, state);
-        atomic_init(&mutex->owner_tid, 0);
+      atomic_store_explicit(&mutex->state, state, memory_order_relaxed);
+      atomic_store_explicit(&mutex->owner_tid, 0, memory_order_relaxed);
     }
     return 0;
 }
diff --git a/libc/bionic/pthread_rwlock.cpp b/libc/bionic/pthread_rwlock.cpp
index ebf6697..92134b4 100644
--- a/libc/bionic/pthread_rwlock.cpp
+++ b/libc/bionic/pthread_rwlock.cpp
@@ -69,11 +69,12 @@
 #define RWLOCKATTR_KIND_MASK     2
 #define RWLOCKATTR_RESERVED_MASK (~3)
 
-static inline __always_inline __always_inline bool __rwlockattr_getpshared(const pthread_rwlockattr_t* attr) {
+static inline __always_inline bool __rwlockattr_getpshared(const pthread_rwlockattr_t* attr) {
   return (*attr & RWLOCKATTR_PSHARED_MASK) >> RWLOCKATTR_PSHARED_SHIFT;
 }
 
-static inline __always_inline __always_inline void __rwlockattr_setpshared(pthread_rwlockattr_t* attr, int pshared) {
+static inline __always_inline void __rwlockattr_setpshared(pthread_rwlockattr_t* attr,
+                                                           int pshared) {
   *attr = (*attr & ~RWLOCKATTR_PSHARED_MASK) | (pshared << RWLOCKATTR_PSHARED_SHIFT);
 }
 
@@ -246,7 +247,7 @@
     }
   }
 
-  atomic_init(&rwlock->state, 0);
+  atomic_store_explicit(&rwlock->state, 0, memory_order_relaxed);
   rwlock->pending_lock.init(rwlock->pshared);
   return 0;
 }
diff --git a/libc/bionic/isatty.c b/libc/bionic/pthread_setaffinity.cpp
similarity index 75%
copy from libc/bionic/isatty.c
copy to libc/bionic/pthread_setaffinity.cpp
index 93af6c5..6db418e 100644
--- a/libc/bionic/isatty.c
+++ b/libc/bionic/pthread_setaffinity.cpp
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2008 The Android Open Source Project
+ * Copyright (C) 2024 The Android Open Source Project
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -26,14 +26,17 @@
  * SUCH DAMAGE.
  */
 
-#include <unistd.h>
-#include <termios.h>
 #include <errno.h>
 
-int
-isatty (int  fd)
-{
-  struct termios term;
+#include "private/ErrnoRestorer.h"
+#include "pthread_internal.h"
 
-  return tcgetattr (fd, &term) == 0;
+int pthread_setaffinity_np(pthread_t t, size_t cpu_set_size, const cpu_set_t* cpu_set) {
+  ErrnoRestorer errno_restorer;
+
+  pid_t tid = __pthread_internal_gettid(t, "pthread_setaffinity_np");
+  if (tid == -1) return ESRCH;
+
+  if (sched_setaffinity(tid, cpu_set_size, cpu_set) == -1) return errno;
+  return 0;
 }
diff --git a/libc/bionic/pthread_sigqueue.cpp b/libc/bionic/pthread_sigqueue.cpp
index 93c349e..7c10b25 100644
--- a/libc/bionic/pthread_sigqueue.cpp
+++ b/libc/bionic/pthread_sigqueue.cpp
@@ -40,14 +40,16 @@
 int pthread_sigqueue(pthread_t t, int sig, const union sigval value) {
   ErrnoRestorer errno_restorer;
 
+  pid_t pid = getpid();
+
   pid_t tid = __pthread_internal_gettid(t, "pthread_sigqueue");
   if (tid == -1) return ESRCH;
 
-  siginfo_t siginfo;
-  siginfo.si_code = SI_QUEUE;
-  siginfo.si_pid = getpid();
+  siginfo_t siginfo = { .si_code = SI_QUEUE };
+  siginfo.si_signo = sig;
+  siginfo.si_pid = pid;
   siginfo.si_uid = getuid();
   siginfo.si_value = value;
 
-  return syscall(__NR_rt_tgsigqueueinfo, getpid(), tid, sig, &siginfo) ? errno : 0;
+  return syscall(__NR_rt_tgsigqueueinfo, pid, tid, sig, &siginfo) ? errno : 0;
 }
diff --git a/libm/fenv-access.h b/libc/bionic/sched_cpualloc.cpp
similarity index 83%
copy from libm/fenv-access.h
copy to libc/bionic/sched_cpualloc.cpp
index 7acb34d..4c8b3c3 100644
--- a/libm/fenv-access.h
+++ b/libc/bionic/sched_cpualloc.cpp
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2021 The Android Open Source Project
+ * Copyright (C) 2010 The Android Open Source Project
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -26,8 +26,13 @@
  * SUCH DAMAGE.
  */
 
-#pragma once
+#include <sched.h>
+#include <stdlib.h>
 
-#if defined(__x86_64__) || defined(__i386__)
-#pragma STDC FENV_ACCESS ON
-#endif
+cpu_set_t* __sched_cpualloc(size_t count) {
+  return static_cast<cpu_set_t*>(malloc(CPU_ALLOC_SIZE(count)));
+}
+
+void __sched_cpufree(cpu_set_t* set) {
+  free(set);
+}
diff --git a/libc/bionic/sched_cpucount.c b/libc/bionic/sched_cpucount.cpp
similarity index 89%
rename from libc/bionic/sched_cpucount.c
rename to libc/bionic/sched_cpucount.cpp
index 6f66589..3ec27bb 100644
--- a/libc/bionic/sched_cpucount.c
+++ b/libc/bionic/sched_cpucount.cpp
@@ -25,17 +25,13 @@
  * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  */
-#define _GNU_SOURCE 1
+
 #include <sched.h>
 
 int __sched_cpucount(size_t setsize, const cpu_set_t* set) {
-  int nn = 0;
-  int nn_max = setsize / sizeof(__CPU_BITTYPE);
   int count = 0;
-
-  for ( ; nn < nn_max; nn++ ) {
-    count += __builtin_popcountl(set->__bits[nn]);
+  for (size_t i = 0; i < setsize / sizeof(__CPU_BITTYPE); i++) {
+    count += __builtin_popcountl(set->__bits[i]);
   }
-
   return count;
 }
diff --git a/libc/bionic/semaphore.cpp b/libc/bionic/semaphore.cpp
index 33552a9..2c9b745 100644
--- a/libc/bionic/semaphore.cpp
+++ b/libc/bionic/semaphore.cpp
@@ -113,7 +113,7 @@
   }
 
   atomic_uint* sem_count_ptr = SEM_TO_ATOMIC_POINTER(sem);
-  atomic_init(sem_count_ptr, count);
+  atomic_store_explicit(sem_count_ptr, count, memory_order_relaxed);
   return 0;
 }
 
diff --git a/libc/bionic/sigaction.cpp b/libc/bionic/sigaction.cpp
index 1cdb021..a84886b 100644
--- a/libc/bionic/sigaction.cpp
+++ b/libc/bionic/sigaction.cpp
@@ -39,26 +39,25 @@
 extern "C" int __rt_sigaction(int, const struct __kernel_sigaction*, struct __kernel_sigaction*, size_t);
 
 int sigaction(int signal, const struct sigaction* bionic_new_action, struct sigaction* bionic_old_action) {
-  __kernel_sigaction kernel_new_action;
+  __kernel_sigaction kernel_new_action = {};
   if (bionic_new_action != nullptr) {
     kernel_new_action.sa_flags = bionic_new_action->sa_flags;
     kernel_new_action.sa_handler = bionic_new_action->sa_handler;
     // Don't filter signals here; if the caller asked for everything to be blocked, we should obey.
     kernel_new_action.sa_mask = bionic_new_action->sa_mask;
-#if defined(SA_RESTORER)
+#if defined(__x86_64__)
+    // riscv64 doesn't have sa_restorer. For arm64 and 32-bit x86, unwinding
+    // works best if you just let the kernel supply the default restorer
+    // from [vdso]. gdb doesn't care, but libgcc needs the nop that the
+    // kernel includes before the actual code. (We could add that ourselves,
+    // but why bother?)
+    // TODO: why do arm32 and x86-64 need this to unwind through signal handlers?
     kernel_new_action.sa_restorer = bionic_new_action->sa_restorer;
-#if defined(__aarch64__)
-    // arm64 has sa_restorer, but unwinding works best if you just let the
-    // kernel supply the default restorer from [vdso]. gdb doesn't care, but
-    // libgcc needs the nop that the kernel includes before the actual code.
-    // (We could add that ourselves, but why bother?)
-#else
     if (!(kernel_new_action.sa_flags & SA_RESTORER)) {
       kernel_new_action.sa_flags |= SA_RESTORER;
       kernel_new_action.sa_restorer = &__restore_rt;
     }
 #endif
-#endif
   }
 
   __kernel_sigaction kernel_old_action;
@@ -90,10 +89,11 @@
 // by extracting the implementation of sigaction64 to a static function.
 static int __sigaction64(int signal, const struct sigaction64* bionic_new,
                          struct sigaction64* bionic_old) {
-  struct sigaction64 kernel_new;
+  struct sigaction64 kernel_new = {};
   if (bionic_new) {
     kernel_new = *bionic_new;
-#if defined(SA_RESTORER)
+#if defined(__arm__)
+    // (See sa_restorer comment in sigaction() above.)
     if (!(kernel_new.sa_flags & SA_RESTORER)) {
       kernel_new.sa_flags |= SA_RESTORER;
       kernel_new.sa_restorer = (kernel_new.sa_flags & SA_SIGINFO) ? &__restore_rt : &__restore;
@@ -110,9 +110,8 @@
 int sigaction(int signal, const struct sigaction* bionic_new, struct sigaction* bionic_old) {
   // The 32-bit ABI is broken. struct sigaction includes a too-small sigset_t,
   // so we have to translate to struct sigaction64 first.
-  struct sigaction64 kernel_new;
+  struct sigaction64 kernel_new = {};
   if (bionic_new) {
-    kernel_new = {};
     kernel_new.sa_flags = bionic_new->sa_flags;
     kernel_new.sa_handler = bionic_new->sa_handler;
 #if defined(SA_RESTORER)
diff --git a/libc/bionic/signal.cpp b/libc/bionic/signal.cpp
index b581b5a..5979ed7 100644
--- a/libc/bionic/signal.cpp
+++ b/libc/bionic/signal.cpp
@@ -76,13 +76,23 @@
   return SigAddSet(set, sig);
 }
 
-// This isn't in our header files, but is exposed on all architectures.
+union BsdSigSet {
+  int mask;
+  sigset64_t set;
+};
+
+// This isn't in our header files, but is exposed on all architectures except riscv64.
 extern "C" int sigblock(int mask) {
-  SigSetConverter in, out;
-  sigemptyset(&in.sigset);
-  in.bsd = mask;
-  if (sigprocmask(SIG_BLOCK, &in.sigset, &out.sigset) == -1) return -1;
-  return out.bsd;
+  BsdSigSet in{.mask = mask}, out;
+  if (sigprocmask64(SIG_BLOCK, &in.set, &out.set) == -1) return -1;
+  return out.mask;
+}
+
+// This isn't in our header files, but is exposed on all architectures except riscv64.
+extern "C" int sigsetmask(int mask) {
+  BsdSigSet in{.mask = mask}, out;
+  if (sigprocmask64(SIG_SETMASK, &in.set, &out.set) == -1) return -1;
+  return out.mask;
 }
 
 template <typename SigSetT>
@@ -198,10 +208,9 @@
 }
 
 int sigpending(sigset_t* bionic_set) {
-  SigSetConverter set = {};
-  set.sigset = *bionic_set;
-  if (__rt_sigpending(&set.sigset64, sizeof(set.sigset64)) == -1) return -1;
-  *bionic_set = set.sigset;
+  SigSetConverter set{bionic_set};
+  if (__rt_sigpending(set.ptr, sizeof(sigset64_t)) == -1) return -1;
+  set.copy_out();
   return 0;
 }
 
@@ -210,10 +219,8 @@
 }
 
 int sigqueue(pid_t pid, int sig, const sigval value) {
-  siginfo_t info;
-  memset(&info, 0, sizeof(siginfo_t));
+  siginfo_t info = { .si_code = SI_QUEUE };
   info.si_signo = sig;
-  info.si_code = SI_QUEUE;
   info.si_pid = getpid();
   info.si_uid = getuid();
   info.si_value = value;
@@ -245,19 +252,9 @@
   return sigismember64(&old_mask, sig) ? SIG_HOLD : old_sa.sa_handler;
 }
 
-// This isn't in our header files, but is exposed on all architectures.
-extern "C" int sigsetmask(int mask) {
-  SigSetConverter in, out;
-  sigemptyset(&in.sigset);
-  in.bsd = mask;
-  if (sigprocmask(SIG_SETMASK, &in.sigset, &out.sigset) == -1) return -1;
-  return out.bsd;
-}
-
 int sigsuspend(const sigset_t* bionic_set) {
-  SigSetConverter set = {};
-  set.sigset = *bionic_set;
-  return sigsuspend64(&set.sigset64);
+  SigSetConverter set{bionic_set};
+  return sigsuspend64(set.ptr);
 }
 
 int sigsuspend64(const sigset64_t* set) {
@@ -271,9 +268,8 @@
 }
 
 int sigtimedwait(const sigset_t* bionic_set, siginfo_t* info, const timespec* timeout) {
-  SigSetConverter set = {};
-  set.sigset = *bionic_set;
-  return sigtimedwait64(&set.sigset64, info, timeout);
+  SigSetConverter set{bionic_set};
+  return sigtimedwait64(set.ptr, info, timeout);
 }
 
 int sigtimedwait64(const sigset64_t* set, siginfo_t* info, const timespec* timeout) {
@@ -287,9 +283,8 @@
 }
 
 int sigwait(const sigset_t* bionic_set, int* sig) {
-  SigSetConverter set = {};
-  set.sigset = *bionic_set;
-  return sigwait64(&set.sigset64, sig);
+  SigSetConverter set{bionic_set};
+  return sigwait64(set.ptr, sig);
 }
 
 int sigwait64(const sigset64_t* set, int* sig) {
diff --git a/libc/bionic/sigprocmask.cpp b/libc/bionic/sigprocmask.cpp
index 8781c9b..10e2fa3 100644
--- a/libc/bionic/sigprocmask.cpp
+++ b/libc/bionic/sigprocmask.cpp
@@ -41,29 +41,6 @@
 // can't allow clang to decide to inline sigprocmask.
 //
 
-int sigprocmask(int how,
-                const sigset_t* bionic_new_set,
-                sigset_t* bionic_old_set) __attribute__((__noinline__)) {
-  SigSetConverter new_set;
-  sigset64_t* new_set_ptr = nullptr;
-  if (bionic_new_set != nullptr) {
-    sigemptyset64(&new_set.sigset64);
-    new_set.sigset = *bionic_new_set;
-    new_set_ptr = &new_set.sigset64;
-  }
-
-  SigSetConverter old_set;
-  if (sigprocmask64(how, new_set_ptr, &old_set.sigset64) == -1) {
-    return -1;
-  }
-
-  if (bionic_old_set != nullptr) {
-    *bionic_old_set = old_set.sigset;
-  }
-
-  return 0;
-}
-
 int sigprocmask64(int how,
                   const sigset64_t* new_set,
                   sigset64_t* old_set) __attribute__((__noinline__)) {
@@ -81,3 +58,21 @@
   }
   return __rt_sigprocmask(how, mutable_new_set_ptr, old_set, sizeof(*new_set));
 }
+
+#if defined(__LP64__)
+// For LP64, `sigset64_t` and `sigset_t` are the same.
+__strong_alias(sigprocmask, sigprocmask64);
+#else
+// ILP32 needs a shim.
+int sigprocmask(int how,
+                const sigset_t* bionic_new_set,
+                sigset_t* bionic_old_set) __attribute__((__noinline__)) {
+  SigSetConverter new_set{bionic_new_set};
+  SigSetConverter old_set{bionic_old_set};
+  int rc = sigprocmask64(how, new_set.ptr, old_set.ptr);
+  if (rc == 0 && bionic_old_set != nullptr) {
+    old_set.copy_out();
+  }
+  return rc;
+}
+#endif
diff --git a/libc/bionic/spawn.cpp b/libc/bionic/spawn.cpp
index 5d76f77..d97057f 100644
--- a/libc/bionic/spawn.cpp
+++ b/libc/bionic/spawn.cpp
@@ -41,7 +41,6 @@
 #include <android/fdsan.h>
 
 #include "private/ScopedSignalBlocker.h"
-#include "private/SigSetConverter.h"
 
 static int set_cloexec(int i) {
   int v = fcntl(i, F_GETFD);
@@ -131,8 +130,10 @@
   pid_t pgroup;
   sched_param schedparam;
   int schedpolicy;
-  SigSetConverter sigmask;
-  SigSetConverter sigdefault;
+  union {
+    sigset_t sigset;
+    sigset64_t sigset64;
+  } sigmask, sigdefault;
 };
 
 static void ApplyAttrs(short flags, const posix_spawnattr_t* attr) {
@@ -185,8 +186,8 @@
                        char* const argv[],
                        char* const env[],
                        int exec_fn(const char* path, char* const argv[], char* const env[])) {
-  // See http://man7.org/linux/man-pages/man3/posix_spawn.3.html
-  // and http://pubs.opengroup.org/onlinepubs/9699919799/functions/posix_spawn.html
+  // See https://man7.org/linux/man-pages/man3/posix_spawn.3.html
+  // and https://pubs.opengroup.org/onlinepubs/9799919799.2024edition/functions/posix_spawn.html
 
   ScopedSignalBlocker ssb;
 
diff --git a/libc/bionic/stdlib_l.cpp b/libc/bionic/stdlib_l.cpp
index 18e9f86..58a9079 100644
--- a/libc/bionic/stdlib_l.cpp
+++ b/libc/bionic/stdlib_l.cpp
@@ -26,34 +26,11 @@
  * SUCH DAMAGE.
  */
 
+#define __BIONIC_STDLIB_INLINE /* Out of line. */
 #include <stdlib.h>
-#include <xlocale.h>
+#include <bits/stdlib_inlines.h>
 
-double strtod_l(const char* s, char** end_ptr, locale_t) {
-  return strtod(s, end_ptr);
-}
-
-float strtof_l(const char* s, char** end_ptr, locale_t) {
-  return strtof(s, end_ptr);
-}
-
-long strtol_l(const char* s, char** end_ptr, int base, locale_t) {
-  return strtol(s, end_ptr, base);
-}
-
+// strtold_l was introduced in API level 21, so it isn't polyfilled any more.
 long double strtold_l(const char* s, char** end_ptr, locale_t) {
   return strtold(s, end_ptr);
 }
-
-long long strtoll_l(const char* s, char** end_ptr, int base, locale_t) {
-  return strtoll(s, end_ptr, base);
-}
-
-unsigned long strtoul_l(const char* s, char** end_ptr, int base, locale_t) {
-  return strtoul(s, end_ptr, base);
-}
-
-unsigned long long strtoull_l(const char* s, char** end_ptr, int base, locale_t) {
-  return strtoull(s, end_ptr, base);
-}
-
diff --git a/libc/bionic/strerror.cpp b/libc/bionic/strerror.cpp
index 0deb200..c41b547 100644
--- a/libc/bionic/strerror.cpp
+++ b/libc/bionic/strerror.cpp
@@ -26,8 +26,8 @@
  * SUCH DAMAGE.
  */
 
-// G++ automatically defines _GNU_SOURCE, which then means that <string.h>
-// gives us the GNU variant.
+// -std=gnu++XX automatically defines _GNU_SOURCE, which then means that <string.h>
+// gives us the GNU variant, which is not what we're defining here.
 #undef _GNU_SOURCE
 
 #include <string.h>
@@ -43,146 +43,28 @@
 
 #include "bionic/pthread_internal.h"
 
-static const char* __sys_error_strings[] = {
-    [0] = "Success",
-    [EPERM] = "Operation not permitted",
-    [ENOENT] = "No such file or directory",
-    [ESRCH] = "No such process",
-    [EINTR] = "Interrupted system call",
-    [EIO] = "I/O error",
-    [ENXIO] = "No such device or address",
-    [E2BIG] = "Argument list too long",
-    [ENOEXEC] = "Exec format error",
-    [EBADF] = "Bad file descriptor",
-    [ECHILD] = "No child processes",
-    [EAGAIN] = "Try again",
-    [ENOMEM] = "Out of memory",
-    [EACCES] = "Permission denied",
-    [EFAULT] = "Bad address",
-    [ENOTBLK] = "Block device required",
-    [EBUSY] = "Device or resource busy",
-    [EEXIST] = "File exists",
-    [EXDEV] = "Cross-device link",
-    [ENODEV] = "No such device",
-    [ENOTDIR] = "Not a directory",
-    [EISDIR] = "Is a directory",
-    [EINVAL] = "Invalid argument",
-    [ENFILE] = "File table overflow",
-    [EMFILE] = "Too many open files",
-    [ENOTTY] = "Inappropriate ioctl for device",
-    [ETXTBSY] = "Text file busy",
-    [EFBIG] = "File too large",
-    [ENOSPC] = "No space left on device",
-    [ESPIPE] = "Illegal seek",
-    [EROFS] = "Read-only file system",
-    [EMLINK] = "Too many links",
-    [EPIPE] = "Broken pipe",
-    [EDOM] = "Math argument out of domain of func",
-    [ERANGE] = "Math result not representable",
-    [EDEADLK] = "Resource deadlock would occur",
-    [ENAMETOOLONG] = "File name too long",
-    [ENOLCK] = "No record locks available",
-    [ENOSYS] = "Function not implemented",
-    [ENOTEMPTY] = "Directory not empty",
-    [ELOOP] = "Too many symbolic links encountered",
-    [ENOMSG] = "No message of desired type",
-    [EIDRM] = "Identifier removed",
-    [ECHRNG] = "Channel number out of range",
-    [EL2NSYNC] = "Level 2 not synchronized",
-    [EL3HLT] = "Level 3 halted",
-    [EL3RST] = "Level 3 reset",
-    [ELNRNG] = "Link number out of range",
-    [EUNATCH] = "Protocol driver not attached",
-    [ENOCSI] = "No CSI structure available",
-    [EL2HLT] = "Level 2 halted",
-    [EBADE] = "Invalid exchange",
-    [EBADR] = "Invalid request descriptor",
-    [EXFULL] = "Exchange full",
-    [ENOANO] = "No anode",
-    [EBADRQC] = "Invalid request code",
-    [EBADSLT] = "Invalid slot",
-    [EBFONT] = "Bad font file format",
-    [ENOSTR] = "Device not a stream",
-    [ENODATA] = "No data available",
-    [ETIME] = "Timer expired",
-    [ENOSR] = "Out of streams resources",
-    [ENONET] = "Machine is not on the network",
-    [ENOPKG] = "Package not installed",
-    [EREMOTE] = "Object is remote",
-    [ENOLINK] = "Link has been severed",
-    [EADV] = "Advertise error",
-    [ESRMNT] = "Srmount error",
-    [ECOMM] = "Communication error on send",
-    [EPROTO] = "Protocol error",
-    [EMULTIHOP] = "Multihop attempted",
-    [EDOTDOT] = "RFS specific error",
-    [EBADMSG] = "Not a data message",
-    [EOVERFLOW] = "Value too large for defined data type",
-    [ENOTUNIQ] = "Name not unique on network",
-    [EBADFD] = "File descriptor in bad state",
-    [EREMCHG] = "Remote address changed",
-    [ELIBACC] = "Can not access a needed shared library",
-    [ELIBBAD] = "Accessing a corrupted shared library",
-    [ELIBSCN] = ".lib section in a.out corrupted",
-    [ELIBMAX] = "Attempting to link in too many shared libraries",
-    [ELIBEXEC] = "Cannot exec a shared library directly",
-    [EILSEQ] = "Illegal byte sequence",
-    [ERESTART] = "Interrupted system call should be restarted",
-    [ESTRPIPE] = "Streams pipe error",
-    [EUSERS] = "Too many users",
-    [ENOTSOCK] = "Socket operation on non-socket",
-    [EDESTADDRREQ] = "Destination address required",
-    [EMSGSIZE] = "Message too long",
-    [EPROTOTYPE] = "Protocol wrong type for socket",
-    [ENOPROTOOPT] = "Protocol not available",
-    [EPROTONOSUPPORT] = "Protocol not supported",
-    [ESOCKTNOSUPPORT] = "Socket type not supported",
-    [EOPNOTSUPP] = "Operation not supported on transport endpoint",
-    [EPFNOSUPPORT] = "Protocol family not supported",
-    [EAFNOSUPPORT] = "Address family not supported by protocol",
-    [EADDRINUSE] = "Address already in use",
-    [EADDRNOTAVAIL] = "Cannot assign requested address",
-    [ENETDOWN] = "Network is down",
-    [ENETUNREACH] = "Network is unreachable",
-    [ENETRESET] = "Network dropped connection because of reset",
-    [ECONNABORTED] = "Software caused connection abort",
-    [ECONNRESET] = "Connection reset by peer",
-    [ENOBUFS] = "No buffer space available",
-    [EISCONN] = "Transport endpoint is already connected",
-    [ENOTCONN] = "Transport endpoint is not connected",
-    [ESHUTDOWN] = "Cannot send after transport endpoint shutdown",
-    [ETOOMANYREFS] = "Too many references: cannot splice",
-    [ETIMEDOUT] = "Connection timed out",
-    [ECONNREFUSED] = "Connection refused",
-    [EHOSTDOWN] = "Host is down",
-    [EHOSTUNREACH] = "No route to host",
-    [EALREADY] = "Operation already in progress",
-    [EINPROGRESS] = "Operation now in progress",
-    [ESTALE] = "Stale NFS file handle",
-    [EUCLEAN] = "Structure needs cleaning",
-    [ENOTNAM] = "Not a XENIX named type file",
-    [ENAVAIL] = "No XENIX semaphores available",
-    [EISNAM] = "Is a named type file",
-    [EREMOTEIO] = "Remote I/O error",
-    [EDQUOT] = "Quota exceeded",
-    [ENOMEDIUM] = "No medium found",
-    [EMEDIUMTYPE] = "Wrong medium type",
-    [ECANCELED] = "Operation Canceled",
-    [ENOKEY] = "Required key not available",
-    [EKEYEXPIRED] = "Key has expired",
-    [EKEYREVOKED] = "Key has been revoked",
-    [EKEYREJECTED] = "Key was rejected by service",
-    [EOWNERDEAD] = "Owner died",
-    [ENOTRECOVERABLE] = "State not recoverable",
-    [ERFKILL] = "Operation not possible due to RF-kill",
-    [EHWPOISON] = "Memory page has hardware error",
+static const char* __sys_error_descriptions[] = {
+#define __BIONIC_ERRDEF(error_number, error_description) [error_number] = error_description,
+#include "private/bionic_errdefs.h"
 };
 
-static inline const char* __strerror_lookup(int error_number) {
-  if (error_number < 0 || error_number >= static_cast<int>(arraysize(__sys_error_strings))) {
+static const char* __sys_error_names[] = {
+#define __BIONIC_ERRDEF(error_number, error_description) [error_number] = #error_number,
+#include "private/bionic_errdefs.h"
+};
+
+extern "C" const char* strerrorname_np(int error_number) {
+  if (error_number < 0 || error_number >= static_cast<int>(arraysize(__sys_error_names))) {
     return nullptr;
   }
-  return __sys_error_strings[error_number];
+  return __sys_error_names[error_number];
+}
+
+static inline const char* __strerror_lookup(int error_number) {
+  if (error_number < 0 || error_number >= static_cast<int>(arraysize(__sys_error_descriptions))) {
+    return nullptr;
+  }
+  return __sys_error_descriptions[error_number];
 }
 
 int strerror_r(int error_number, char* buf, size_t buf_len) {
@@ -220,3 +102,4 @@
   strerror_r(error_number, result, sizeof(tls.strerror_buf));
   return result;
 }
+__strong_alias(strerror_l, strerror);
diff --git a/libc/bionic/string_l.cpp b/libc/bionic/string_l.cpp
index 66bfb0e..84396bf 100644
--- a/libc/bionic/string_l.cpp
+++ b/libc/bionic/string_l.cpp
@@ -33,10 +33,6 @@
   return strcoll(s1, s2);
 }
 
-char* strerror_l(int error, locale_t) {
-  return strerror(error);
-}
-
 size_t strxfrm_l(char* dst, const char* src, size_t n, locale_t) {
   return strxfrm(dst, src, n);
 }
diff --git a/libc/bionic/strnlen.c b/libc/bionic/strnlen.cpp
similarity index 89%
rename from libc/bionic/strnlen.c
rename to libc/bionic/strnlen.cpp
index 2c6f60a..7101b21 100644
--- a/libc/bionic/strnlen.c
+++ b/libc/bionic/strnlen.cpp
@@ -25,14 +25,10 @@
  * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  */
+
 #include <string.h>
 
-size_t  strnlen(const char*  str, size_t  maxlen)
-{
-    char*  p = memchr(str, 0, maxlen);
-
-    if (p == NULL)
-        return maxlen;
-    else
-        return (p - str);
+size_t strnlen(const char* s, size_t n) {
+  const char* p = static_cast<const char*>(memchr(s, 0, n));
+  return p ? (p - s) : n;
 }
diff --git a/libc/bionic/strsignal.cpp b/libc/bionic/strsignal.cpp
index 05d3498..29c22e2 100644
--- a/libc/bionic/strsignal.cpp
+++ b/libc/bionic/strsignal.cpp
@@ -27,29 +27,29 @@
  */
 
 #include <signal.h>
+#include <stdlib.h>
 #include <string.h>
 
 #include "bionic/pthread_internal.h"
 
+// Maps regular signals like SIGSEGV to strings like "Segmentation fault".
+// Signal 0 and all the real-time signals are just nullptr, but that's the ABI.
 const char* const sys_siglist[NSIG] = {
-#define __BIONIC_SIGDEF(signal_number, signal_description) [ signal_number ] = signal_description,
+#define __BIONIC_SIGDEF(signal_number, signal_description) [signal_number] = signal_description,
 #include "private/bionic_sigdefs.h"
 };
 
+// Maps regular signals like SIGSEGV to strings like "SEGV".
+// Signal 0 and all the real-time signals are just nullptr, but that's the ABI.
 const char* const sys_signame[NSIG] = {
-#define __BIONIC_SIGDEF(signal_number, unused) [ signal_number ] = &(#signal_number)[3],
+#define __BIONIC_SIGDEF(signal_number, unused) [signal_number] = &(#signal_number)[3],
 #include "private/bionic_sigdefs.h"
 };
 
 extern "C" __LIBC_HIDDEN__ const char* __strsignal(int signal_number, char* buf, size_t buf_len) {
-  const char* signal_name = nullptr;
-  if (signal_number >= 0 && signal_number < NSIG) {
-    signal_name = sys_siglist[signal_number];
+  if (signal_number >= SIGHUP && signal_number < SIGSYS) {
+    return sys_siglist[signal_number];
   }
-  if (signal_name != nullptr) {
-    return signal_name;
-  }
-
   const char* prefix = "Unknown";
   if (signal_number >= SIGRTMIN && signal_number <= SIGRTMAX) {
     prefix = "Real-time";
@@ -66,3 +66,72 @@
   bionic_tls& tls = __get_bionic_tls();
   return const_cast<char*>(__strsignal(signal_number, tls.strsignal_buf, sizeof(tls.strsignal_buf)));
 }
+
+int sig2str(int sig, char* str) {
+  if (sig >= SIGHUP && sig <= SIGSYS) {
+    strcpy(str, sys_signame[sig]);
+    return 0;
+  }
+  if (sig == SIGRTMIN) {
+    strcpy(str, "RTMIN");
+    return 0;
+  }
+  if (sig == SIGRTMAX) {
+    strcpy(str, "RTMAX");
+    return 0;
+  }
+  if (sig > SIGRTMIN && sig < SIGRTMAX) {
+    if (sig - SIGRTMIN <= SIGRTMAX - sig) {
+      sprintf(str, "RTMIN+%d", sig - SIGRTMIN);
+    } else {
+      sprintf(str, "RTMAX-%d", SIGRTMAX - sig);
+    }
+    return 0;
+  }
+  return -1;
+}
+
+int str2sig(const char* str, int* sig) {
+  // A name in our list, like "SEGV"?
+  for (size_t i = SIGHUP; i <= SIGSYS; ++i) {
+    if (!strcmp(str, sys_signame[i])) {
+      *sig = i;
+      return 0;
+    }
+  }
+
+  // The two named special cases?
+  if (!strcmp(str, "RTMIN")) {
+    *sig = SIGRTMIN;
+    return 0;
+  }
+  if (!strcmp(str, "RTMAX")) {
+    *sig = SIGRTMAX;
+    return 0;
+  }
+
+  // Must be either an integer corresponding to a regular signal such as "9",
+  // or a string of the form "RTMIN+%d" or "RTMAX-%d".
+  int base = 0;
+  if (!strncmp(str, "RTMIN+", 6)) {
+    base = SIGRTMIN;
+    str += 5;
+  } else if (!strncmp(str, "RTMAX-", 6)) {
+    base = SIGRTMAX;
+    str += 5;
+  }
+  char* end = nullptr;
+  errno = 0;
+  int offset = strtol(str, &end, 10);
+  if (errno || *end) return -1;
+
+  // Reject out of range integers (like "666"),
+  // and out of range real-time signals (like "RTMIN+666" or "RTMAX-666").
+  int result = base + offset;
+  bool regular = (base == 0 && result >= SIGHUP && result <= SIGSYS);
+  bool realtime = (result >= SIGRTMIN && result <= SIGRTMAX);
+  if (!regular && !realtime) return -1;
+
+  *sig = result;
+  return 0;
+}
diff --git a/libc/bionic/strtol.cpp b/libc/bionic/strtol.cpp
index 05b4b53..607145d 100644
--- a/libc/bionic/strtol.cpp
+++ b/libc/bionic/strtol.cpp
@@ -35,141 +35,88 @@
 #include <wchar.h>
 
 template <typename T, T Min, T Max, typename CharT>
-T StrToI(const CharT* nptr, CharT** endptr, int base) {
+__attribute__((always_inline)) T StrToI(const CharT* s, CharT** end_ptr, int base) {
   // Ensure that base is between 2 and 36 inclusive, or the special value of 0.
   if (base < 0 || base == 1 || base > 36) {
-    if (endptr != nullptr) *endptr = const_cast<CharT*>(nptr);
+    if (end_ptr != nullptr) *end_ptr = const_cast<CharT*>(s);
     errno = EINVAL;
     return 0;
   }
 
   // Skip white space and pick up leading +/- sign if any.
-  // If base is 0, allow 0x for hex and 0 for octal, else
-  // assume decimal; if base is already 16, allow 0x.
-  const CharT* s = nptr;
+  const CharT* p = s;
   int c;
-  do {
-    c = *s++;
-  } while (isspace(c));
-  int neg;
-  if (c == '-') {
-    neg = 1;
-    c = *s++;
-  } else {
-    neg = 0;
-    if (c == '+') c = *s++;
+  while (isspace(c = *p++)) {
   }
-  if ((base == 0 || base == 16) && c == '0' && (*s == 'x' || *s == 'X') && isxdigit(s[1])) {
-    c = s[1];
-    s += 2;
+  bool neg = false;
+  if (c == '-') {
+    neg = true;
+    c = *p++;
+  } else if (c == '+') {
+    c = *p++;
+  }
+
+  // If base is 0 or 16, allow "0x" prefix for hex.
+  if ((base == 0 || base == 16) && c == '0' && (*p == 'x' || *p == 'X') && isxdigit(p[1])) {
+    c = p[1];
+    p += 2;
     base = 16;
   }
-  if ((base == 0 || base == 2) && c == '0' && (*s == 'b' || *s == 'B') && isdigit(s[1])) {
-    c = s[1];
-    s += 2;
+  // If base is 0 or 2, allow "0b" prefix for binary.
+  if ((base == 0 || base == 2) && c == '0' && (*p == 'b' || *p == 'B') && isdigit(p[1])) {
+    c = p[1];
+    p += 2;
     base = 2;
   }
+  // If base is 0, allow "0" prefix for octal, otherwise base is 10.
   if (base == 0) base = (c == '0') ? 8 : 10;
 
-  // We always work in the negative space because the most negative value has a
-  // larger magnitude than the most positive value.
-  T cutoff = Min / base;
-  int cutlim = -(Min % base);
+  constexpr bool is_signed = (Min != 0);
+  T acc = 0;
   // Non-zero if any digits consumed; negative to indicate overflow/underflow.
   int any = 0;
-  T acc = 0;
-  for (; ; c = *s++) {
+  for (;; c = *p++) {
     if (isdigit(c)) {
       c -= '0';
     } else if (isalpha(c)) {
-      c -= isupper(c) ? 'A' - 10 : 'a' - 10;
+      c = 10 + (_tolower(c) - 'a');
     } else {
       break;
     }
     if (c >= base) break;
     if (any < 0) continue;
-    if (acc < cutoff || (acc == cutoff && c > cutlim)) {
-      any = -1;
-      acc = Min;
-      errno = ERANGE;
+    if (is_signed) {
+      // We work in the negative space because the most negative value has a
+      // larger magnitude than the most positive value.
+      if (__builtin_mul_overflow(acc, base, &acc) || __builtin_sub_overflow(acc, c, &acc)) {
+        any = -1;
+        continue;
+      }
     } else {
-      any = 1;
-      acc *= base;
-      acc -= c;
+      if (__builtin_mul_overflow(acc, base, &acc) || __builtin_add_overflow(acc, c, &acc)) {
+        any = -1;
+        continue;
+      }
     }
-  }
-  if (endptr != nullptr) *endptr = const_cast<CharT*>(any ? s - 1 : nptr);
-  if (!neg) {
-    if (acc == Min) {
-      errno = ERANGE;
-      acc = Max;
-    } else {
-      acc = -acc;
-    }
-  }
-  return acc;
-}
-
-template <typename T, T Max, typename CharT>
-T StrToU(const CharT* nptr, CharT** endptr, int base) {
-  if (base < 0 || base == 1 || base > 36) {
-    if (endptr != nullptr) *endptr = const_cast<CharT*>(nptr);
-    errno = EINVAL;
-    return 0;
+    any = 1;
   }
 
-  const CharT* s = nptr;
-  int c;
-  do {
-    c = *s++;
-  } while (isspace(c));
-  int neg;
-  if (c == '-') {
-    neg = 1;
-    c = *s++;
-  } else {
-    neg = 0;
-    if (c == '+') c = *s++;
-  }
-  if ((base == 0 || base == 16) && c == '0' && (*s == 'x' || *s == 'X') && isxdigit(s[1])) {
-    c = s[1];
-    s += 2;
-    base = 16;
-  }
-  if ((base == 0 || base == 2) && c == '0' && (*s == 'b' || *s == 'B') && isdigit(s[1])) {
-    c = s[1];
-    s += 2;
-    base = 2;
-  }
-  if (base == 0) base = (c == '0') ? 8 : 10;
+  if (end_ptr != nullptr) *end_ptr = const_cast<CharT*>(any ? p - 1 : s);
 
-  T cutoff = Max / static_cast<T>(base);
-  int cutlim = Max % static_cast<T>(base);
-  T acc = 0;
-  int any = 0;
-  for (; ; c = *s++) {
-    if (isdigit(c)) {
-      c -= '0';
-    } else if (isalpha(c)) {
-      c -= isupper(c) ? 'A' - 10 : 'a' - 10;
-    } else {
-      break;
-    }
-    if (c >= base) break;
-    if (any < 0) continue;
-    if (acc > cutoff || (acc == cutoff && c > cutlim)) {
-      any = -1;
-      acc = Max;
-      errno = ERANGE;
-    } else {
-      any = 1;
-      acc *= base;
-      acc += c;
-    }
+  // Detected overflow/underflow in the loop?
+  if (any == -1) {
+    errno = ERANGE;
+    return (is_signed && neg) ? Min : Max;
   }
-  if (neg && any > 0) acc = -acc;
-  if (endptr != nullptr) *endptr = const_cast<CharT*>(any ? s - 1 : nptr);
-  return acc;
+
+  // Will we overflow by trying to negate the most negative value?
+  if (any > 0 && is_signed && !neg && acc == Min) {
+    errno = ERANGE;
+    return Max;
+  }
+
+  if (is_signed) return neg ? acc : -acc;
+  return neg ? -acc : acc;
 }
 
 int atoi(const char* s) {
@@ -195,39 +142,47 @@
 long strtol(const char* s, char** end, int base) {
   return StrToI<long, LONG_MIN, LONG_MAX, char>(s, end, base);
 }
+__strong_alias(strtol_l, strtol);
 
 long wcstol(const wchar_t* s, wchar_t** end, int base) {
   return StrToI<long, LONG_MIN, LONG_MAX, wchar_t>(s, end, base);
 }
+__strong_alias(wcstol_l, wcstol);
 
 long long strtoll(const char* s, char** end, int base) {
   return StrToI<long long, LLONG_MIN, LLONG_MAX, char>(s, end, base);
 }
+__strong_alias(strtoll_l, strtoll);
 
 long long wcstoll(const wchar_t* s, wchar_t** end, int base) {
   return StrToI<long long, LLONG_MIN, LLONG_MAX, wchar_t>(s, end, base);
 }
+__strong_alias(wcstoll_l, wcstoll);
 
 unsigned long strtoul(const char* s, char** end, int base) {
-  return StrToU<unsigned long, ULONG_MAX, char>(s, end, base);
+  return StrToI<unsigned long, 0, ULONG_MAX, char>(s, end, base);
 }
+__strong_alias(strtoul_l, strtoul);
 
 unsigned long wcstoul(const wchar_t* s, wchar_t** end, int base) {
-  return StrToU<unsigned long, ULONG_MAX, wchar_t>(s, end, base);
+  return StrToI<unsigned long, 0, ULONG_MAX, wchar_t>(s, end, base);
 }
+__strong_alias(wcstoul_l, wcstoul);
 
 unsigned long long strtoull(const char* s, char** end, int base) {
-  return StrToU<unsigned long long, ULLONG_MAX, char>(s, end, base);
+  return StrToI<unsigned long long, 0, ULLONG_MAX, char>(s, end, base);
 }
+__strong_alias(strtoull_l, strtoull);
 
 unsigned long long wcstoull(const wchar_t* s, wchar_t** end, int base) {
-  return StrToU<unsigned long long, ULLONG_MAX, wchar_t>(s, end, base);
+  return StrToI<unsigned long long, 0, ULLONG_MAX, wchar_t>(s, end, base);
 }
+__strong_alias(wcstoull_l, wcstoull);
 
 uintmax_t strtoumax(const char* s, char** end, int base) {
-  return StrToU<uintmax_t, UINTMAX_MAX, char>(s, end, base);
+  return StrToI<uintmax_t, 0, UINTMAX_MAX, char>(s, end, base);
 }
 
 uintmax_t wcstoumax(const wchar_t* s, wchar_t** end, int base) {
-  return StrToU<uintmax_t, UINTMAX_MAX, wchar_t>(s, end, base);
+  return StrToI<uintmax_t, 0, UINTMAX_MAX, wchar_t>(s, end, base);
 }
diff --git a/libc/bionic/strtold.cpp b/libc/bionic/strtold.cpp
index 6b673e6..c55dd61 100644
--- a/libc/bionic/strtold.cpp
+++ b/libc/bionic/strtold.cpp
@@ -26,8 +26,6 @@
  * SUCH DAMAGE.
  */
 
-#define __BIONIC_LP32_USE_LONG_DOUBLE
-
 #include <float.h>
 #include <stdlib.h>
 
diff --git a/libc/bionic/sync_file_range.cpp b/libc/bionic/sync_file_range.cpp
index 7f60882..e7b904d 100644
--- a/libc/bionic/sync_file_range.cpp
+++ b/libc/bionic/sync_file_range.cpp
@@ -28,13 +28,12 @@
 
 #include <fcntl.h>
 
-extern "C" int __sync_file_range(int, off64_t, off64_t, unsigned int);
-extern "C" int __sync_file_range2(int, unsigned int, off64_t, off64_t);
-
-int sync_file_range(int fd, off64_t offset, off64_t length, unsigned int flags) {
 #if __arm__
+// Only arm32 is missing the sync_file_range() syscall,
+// and needs us to manually re-order arguments for it.
+// (Because arm32 needs register pairs for 64-bit values to start on an even register.)
+extern "C" int __sync_file_range2(int, unsigned int, off64_t, off64_t);
+int sync_file_range(int fd, off64_t offset, off64_t length, unsigned int flags) {
   return __sync_file_range2(fd, flags, offset, length);
-#else
-  return __sync_file_range(fd, offset, length, flags);
-#endif
 }
+#endif
diff --git a/libc/bionic/sys_epoll.cpp b/libc/bionic/sys_epoll.cpp
index 22d0a98..be97818 100644
--- a/libc/bionic/sys_epoll.cpp
+++ b/libc/bionic/sys_epoll.cpp
@@ -34,6 +34,8 @@
 
 extern "C" int __epoll_create1(int flags);
 extern "C" int __epoll_pwait(int, epoll_event*, int, int, const sigset64_t*, size_t);
+extern "C" int __epoll_pwait2(int, epoll_event*, int, const __kernel_timespec*, const sigset64_t*,
+                              size_t);
 
 int epoll_create(int size) {
   if (size <= 0) {
@@ -48,20 +50,39 @@
 }
 
 int epoll_pwait(int fd, epoll_event* events, int max_events, int timeout, const sigset_t* ss) {
-  SigSetConverter set;
-  sigset64_t* ss_ptr = nullptr;
-  if (ss != nullptr) {
-    set = {};
-    set.sigset = *ss;
-    ss_ptr = &set.sigset64;
-  }
-  return epoll_pwait64(fd, events, max_events, timeout, ss_ptr);
+  SigSetConverter set{ss};
+  return epoll_pwait64(fd, events, max_events, timeout, set.ptr);
 }
 
 int epoll_pwait64(int fd, epoll_event* events, int max_events, int timeout, const sigset64_t* ss) {
   return __epoll_pwait(fd, events, max_events, timeout, ss, sizeof(*ss));
 }
 
+int epoll_pwait2(int fd, epoll_event* events, int max_events, const timespec* timeout,
+                 const sigset_t* ss) {
+  SigSetConverter set{ss};
+  return epoll_pwait2_64(fd, events, max_events, timeout, set.ptr);
+}
+
+int epoll_pwait2_64(int fd, epoll_event* events, int max_events, const timespec* timeout,
+                    const sigset64_t* ss) {
+  // epoll_pwait2() is our first syscall that assumes a 64-bit time_t even for
+  // 32-bit processes, so for ILP32 we need to convert.
+  // TODO: factor this out into a TimeSpecConverter as/when we get more syscalls like this.
+#if __LP64__
+  const __kernel_timespec* kts_ptr = reinterpret_cast<const __kernel_timespec*>(timeout);
+#else
+  __kernel_timespec kts;
+  const __kernel_timespec* kts_ptr = nullptr;
+  if (timeout) {
+    kts.tv_sec = timeout->tv_sec;
+    kts.tv_nsec = timeout->tv_nsec;
+    kts_ptr = &kts;
+  }
+#endif
+  return __epoll_pwait2(fd, events, max_events, kts_ptr, ss, sizeof(*ss));
+}
+
 int epoll_wait(int fd, struct epoll_event* events, int max_events, int timeout) {
   return epoll_pwait64(fd, events, max_events, timeout, nullptr);
 }
diff --git a/libc/bionic/sys_msg.cpp b/libc/bionic/sys_msg.cpp
index 462c83b..9780d38 100644
--- a/libc/bionic/sys_msg.cpp
+++ b/libc/bionic/sys_msg.cpp
@@ -36,33 +36,17 @@
   // Annoyingly, the kernel requires this for 32-bit but rejects it for 64-bit.
   cmd |= IPC_64;
 #endif
-#if defined(SYS_msgctl)
   return syscall(SYS_msgctl, id, cmd, buf);
-#else
-  return syscall(SYS_ipc, MSGCTL, id, cmd, 0, buf, 0);
-#endif
 }
 
 int msgget(key_t key, int flags) {
-#if defined(SYS_msgget)
   return syscall(SYS_msgget, key, flags);
-#else
-  return syscall(SYS_ipc, MSGGET, key, flags, 0, 0, 0);
-#endif
 }
 
 ssize_t msgrcv(int id, void* msg, size_t n, long type, int flags) {
-#if defined(SYS_msgrcv)
   return syscall(SYS_msgrcv, id, msg, n, type, flags);
-#else
-  return syscall(SYS_ipc, IPCCALL(1, MSGRCV), id, n, flags, msg, type);
-#endif
 }
 
 int msgsnd(int id, const void* msg, size_t n, int flags) {
-#if defined(SYS_msgsnd)
   return syscall(SYS_msgsnd, id, msg, n, flags);
-#else
-  return syscall(SYS_ipc, MSGSND, id, n, flags, msg, 0);
-#endif
 }
diff --git a/libc/bionic/sys_sem.cpp b/libc/bionic/sys_sem.cpp
index 058cfef..b97bf46 100644
--- a/libc/bionic/sys_sem.cpp
+++ b/libc/bionic/sys_sem.cpp
@@ -41,19 +41,11 @@
   va_start(ap, cmd);
   semun arg = va_arg(ap, semun);
   va_end(ap);
-#if defined(SYS_semctl)
   return syscall(SYS_semctl, id, num, cmd, arg);
-#else
-  return syscall(SYS_ipc, SEMCTL, id, num, cmd, &arg, 0);
-#endif
 }
 
 int semget(key_t key, int n, int flags) {
-#if defined(SYS_semget)
   return syscall(SYS_semget, key, n, flags);
-#else
-  return syscall(SYS_ipc, SEMGET, key, n, flags, 0, 0);
-#endif
 }
 
 int semop(int id, sembuf* ops, size_t op_count) {
@@ -64,6 +56,9 @@
 #if defined(SYS_semtimedop)
   return syscall(SYS_semtimedop, id, ops, op_count, ts);
 #else
+  // 32-bit x86 -- the only architecture without semtimedop(2) -- only has
+  // semtimedop_time64(2), but since we don't have any timespec64 stuff,
+  // it's less painful for us to just stick with the legacy ipc(2) here.
   return syscall(SYS_ipc, SEMTIMEDOP, id, op_count, 0, ops, ts);
 #endif
 }
diff --git a/libc/bionic/sys_shm.cpp b/libc/bionic/sys_shm.cpp
index f780e04..777b3ad 100644
--- a/libc/bionic/sys_shm.cpp
+++ b/libc/bionic/sys_shm.cpp
@@ -32,16 +32,7 @@
 #include <unistd.h>
 
 void* shmat(int id, const void* address, int flags) {
-#if defined(SYS_shmat)
   return reinterpret_cast<void*>(syscall(SYS_shmat, id, address, flags));
-#else
-  // See the kernel's ipc/syscall.c for the other side of this dance.
-  void* result = nullptr;
-  if (syscall(SYS_ipc, SHMAT, id, flags, &result, address, 0) == -1) {
-    return reinterpret_cast<void*>(-1);
-  }
-  return result;
-#endif
 }
 
 int shmctl(int id, int cmd, struct shmid_ds* buf) {
@@ -49,25 +40,13 @@
   // Annoyingly, the kernel requires this for 32-bit but rejects it for 64-bit.
   cmd |= IPC_64;
 #endif
-#if defined(SYS_shmctl)
   return syscall(SYS_shmctl, id, cmd, buf);
-#else
-  return syscall(SYS_ipc, SHMCTL, id, cmd, 0, buf, 0);
-#endif
 }
 
 int shmdt(const void* address) {
-#if defined(SYS_shmdt)
   return syscall(SYS_shmdt, address);
-#else
-  return syscall(SYS_ipc, SHMDT, 0, 0, 0, address, 0);
-#endif
 }
 
 int shmget(key_t key, size_t size, int flags) {
-#if defined(SYS_shmget)
   return syscall(SYS_shmget, key, size, flags);
-#else
-  return syscall(SYS_ipc, SHMGET, key, size, flags, 0, 0);
-#endif
 }
diff --git a/libc/bionic/sys_signalfd.cpp b/libc/bionic/sys_signalfd.cpp
index 53d1f25..1e62cf4 100644
--- a/libc/bionic/sys_signalfd.cpp
+++ b/libc/bionic/sys_signalfd.cpp
@@ -32,12 +32,12 @@
 
 extern "C" int __signalfd4(int, const sigset64_t*, size_t, int);
 
-int signalfd(int fd, const sigset_t* mask, int flags) {
-  SigSetConverter set = {};
-  set.sigset = *mask;
-  return signalfd64(fd, &set.sigset64, flags);
-}
-
 int signalfd64(int fd, const sigset64_t* mask, int flags) {
   return __signalfd4(fd, mask, sizeof(*mask), flags);
 }
+
+int signalfd(int fd, const sigset_t* mask, int flags) {
+  // The underlying `__signalfd4` system call only takes `sigset64_t`.
+  SigSetConverter set{mask};
+  return signalfd64(fd, set.ptr, flags);
+}
diff --git a/libc/bionic/sys_statvfs.cpp b/libc/bionic/sys_statvfs.cpp
index b3a0aca..3a05c3f 100644
--- a/libc/bionic/sys_statvfs.cpp
+++ b/libc/bionic/sys_statvfs.cpp
@@ -17,7 +17,7 @@
 #include <sys/statfs.h>
 #include <sys/statvfs.h>
 
-static __inline void __bionic_statfs_to_statvfs(const struct statfs* src, struct statvfs* dst) {
+static inline void __bionic_statfs_to_statvfs(const struct statfs* src, struct statvfs* dst) {
   dst->f_bsize = src->f_bsize;
   dst->f_frsize = src->f_frsize;
   dst->f_blocks = src->f_blocks;
diff --git a/libc/bionic/sys_thread_properties.cpp b/libc/bionic/sys_thread_properties.cpp
index d1a73b7..064bca1 100644
--- a/libc/bionic/sys_thread_properties.cpp
+++ b/libc/bionic/sys_thread_properties.cpp
@@ -61,7 +61,7 @@
   if (modules.first_thread_exit_callback == nullptr) {
     modules.first_thread_exit_callback = cb;
     return;
-  };
+  }
 
   BionicAllocator& allocator = __libc_shared_globals()->tls_allocator;
   CallbackHolder* new_node =
@@ -77,35 +77,9 @@
 
   // Find the thread-pointer register for the given thread.
   void** tp_reg = nullptr;
-#if defined(__x86_64__)
-  {
-    ErrnoRestorer errno_restorer;
-    errno = 0;
-    uintptr_t fs_base = ptrace(PTRACE_PEEKUSER, tid, offsetof(user_regs_struct, fs_base), nullptr);
-    if (errno == 0) {
-      tp_reg = reinterpret_cast<void**>(fs_base);
-    }
-  }
-#elif defined(__i386__)
-  struct user_regs_struct regs;
-  struct iovec pt_iov = {
-      .iov_base = &regs,
-      .iov_len = sizeof(regs),
-  };
-
-  if (ptrace(PTRACE_GETREGSET, tid, NT_PRSTATUS, &pt_iov) == 0) {
-    struct user_desc u_info;
-    u_info.entry_number = regs.xgs >> 3;
-    if (ptrace(PTRACE_GET_THREAD_AREA, tid, u_info.entry_number, &u_info) == 0) {
-      tp_reg = reinterpret_cast<void**>(u_info.base_addr);
-    }
-  }
-#elif defined(__aarch64__)
+#if defined(__aarch64__)
   uint64_t reg;
-  struct iovec pt_iov {
-    .iov_base = &reg, .iov_len = sizeof(reg),
-  };
-
+  struct iovec pt_iov { .iov_base = &reg, .iov_len = sizeof(reg) };
   if (ptrace(PTRACE_GETREGSET, tid, NT_ARM_TLS, &pt_iov) == 0) {
     tp_reg = reinterpret_cast<void**>(reg);
   }
@@ -114,6 +88,31 @@
     // Reset the tp_reg if ptrace was unsuccessful.
     tp_reg = nullptr;
   }
+#elif defined(__i386__)
+  struct user_regs_struct regs;
+  struct iovec pt_iov = { .iov_base = &regs, .iov_len = sizeof(regs) };
+  if (ptrace(PTRACE_GETREGSET, tid, NT_PRSTATUS, &pt_iov) == 0) {
+    struct user_desc u_info;
+    u_info.entry_number = regs.xgs >> 3;
+    if (ptrace(PTRACE_GET_THREAD_AREA, tid, u_info.entry_number, &u_info) == 0) {
+      tp_reg = reinterpret_cast<void**>(u_info.base_addr);
+    }
+  }
+#elif defined(__riscv)
+  struct user_regs_struct regs;
+  struct iovec pt_iov = { .iov_base = &regs, .iov_len = sizeof(regs) };
+  if (ptrace(PTRACE_GETREGSET, tid, NT_PRSTATUS, &pt_iov) == 0) {
+    tp_reg = reinterpret_cast<void**>(regs.tp);
+  }
+#elif defined(__x86_64__)
+  {
+    ErrnoRestorer errno_restorer;
+    errno = 0;
+    uintptr_t fs_base = ptrace(PTRACE_PEEKUSER, tid, offsetof(user_regs_struct, fs_base), nullptr);
+    if (errno == 0) {
+      tp_reg = reinterpret_cast<void**>(fs_base);
+    }
+  }
 #endif
 
   if (tp_reg == nullptr) {
diff --git a/libc/bionic/sysconf.cpp b/libc/bionic/sysconf.cpp
index 1c06c9e..571370c 100644
--- a/libc/bionic/sysconf.cpp
+++ b/libc/bionic/sysconf.cpp
@@ -38,8 +38,110 @@
 #include <time.h>
 #include <unistd.h>
 
+#include "platform/bionic/page.h"
 #include "private/bionic_tls.h"
 
+struct sysconf_cache {
+  long size, assoc, linesize;
+
+  static sysconf_cache from_size_and_geometry(int size_id, int geometry_id) {
+    sysconf_cache result;
+    result.size = getauxval(size_id);
+    unsigned long geometry = getauxval(geometry_id);
+    result.assoc = geometry >> 16;
+    result.linesize = geometry & 0xffff;
+    return result;
+  }
+};
+
+struct sysconf_caches {
+  sysconf_cache l1_i, l1_d, l2, l3, l4;
+};
+
+#if defined(__riscv)
+
+static sysconf_caches* __sysconf_caches() {
+  static sysconf_caches cached = []{
+    sysconf_caches info = {};
+    // riscv64 kernels conveniently hand us all this information.
+    info.l1_i = sysconf_cache::from_size_and_geometry(AT_L1I_CACHESIZE, AT_L1I_CACHEGEOMETRY);
+    info.l1_d = sysconf_cache::from_size_and_geometry(AT_L1D_CACHESIZE, AT_L1D_CACHEGEOMETRY);
+    info.l2 = sysconf_cache::from_size_and_geometry(AT_L2_CACHESIZE, AT_L2_CACHEGEOMETRY);
+    info.l3 = sysconf_cache::from_size_and_geometry(AT_L3_CACHESIZE, AT_L3_CACHEGEOMETRY);
+    return info;
+  }();
+  return &cached;
+}
+
+#elif defined(__aarch64__)
+
+static sysconf_caches* __sysconf_caches() {
+  static sysconf_caches cached = []{
+    sysconf_caches info = {};
+    // arm64 is especially limited. We can infer the L1 line sizes, but that's it.
+    uint64_t ctr_el0;
+    __asm__ __volatile__("mrs %0, ctr_el0" : "=r"(ctr_el0));
+    info.l1_i.linesize = 4 << (ctr_el0 & 0xf);
+    info.l1_d.linesize = 4 << ((ctr_el0 >> 16) & 0xf);
+    return info;
+  }();
+  return &cached;
+}
+
+#else
+
+static long __sysconf_fread_long(const char* path) {
+  long result = 0;
+  FILE* fp = fopen(path, "re");
+  if (fp != nullptr) {
+    fscanf(fp, "%ld", &result);
+    fclose(fp);
+  }
+  return result;
+}
+
+static sysconf_caches* __sysconf_caches() {
+  static sysconf_caches cached = []{
+    sysconf_caches info = {};
+    char path[64];
+    for (int i = 0; i < 4; i++) {
+      sysconf_cache c;
+
+      snprintf(path, sizeof(path), "/sys/devices/system/cpu/cpu0/cache/index%d/size", i);
+      c.size = __sysconf_fread_long(path) * 1024;
+      if (c.size == 0) break;
+
+      snprintf(path, sizeof(path), "/sys/devices/system/cpu/cpu0/cache/index%d/ways_of_associativity", i);
+      c.assoc = __sysconf_fread_long(path);
+
+      snprintf(path, sizeof(path), "/sys/devices/system/cpu/cpu0/cache/index%d/coherency_line_size", i);
+      c.linesize = __sysconf_fread_long(path);
+
+      snprintf(path, sizeof(path), "/sys/devices/system/cpu/cpu0/cache/index%d/level", i);
+      int level = __sysconf_fread_long(path);
+      if (level == 1) {
+        snprintf(path, sizeof(path), "/sys/devices/system/cpu/cpu0/cache/index%d/type", i);
+        FILE* fp = fopen(path, "re");
+        char type = fgetc(fp);
+        fclose(fp);
+        if (type == 'D') {
+          info.l1_d = c;
+        } else if (type == 'I') {
+          info.l1_i = c;
+        }
+      } else if (level == 2) {
+        info.l2 = c;
+      } else if (level == 3) {
+        info.l3 = c;
+      }
+    }
+    return info;
+  }();
+  return &cached;
+}
+
+#endif
+
 static long __sysconf_rlimit(int resource) {
   rlimit rl;
   getrlimit(resource, &rl);
@@ -80,7 +182,8 @@
 
     case _SC_AVPHYS_PAGES:      return get_avphys_pages();
     case _SC_CHILD_MAX:         return __sysconf_rlimit(RLIMIT_NPROC);
-    case _SC_CLK_TCK:           return static_cast<long>(getauxval(AT_CLKTCK));
+    case _SC_CLK_TCK:
+      return static_cast<long>(getauxval(AT_CLKTCK));
     case _SC_NPROCESSORS_CONF:  return get_nprocs_conf();
     case _SC_NPROCESSORS_ONLN:  return get_nprocs();
     case _SC_OPEN_MAX:          return __sysconf_rlimit(RLIMIT_NOFILE);
@@ -102,7 +205,11 @@
     case _SC_COLL_WEIGHTS_MAX:  return _POSIX2_COLL_WEIGHTS_MAX;  // Minimum requirement.
     case _SC_EXPR_NEST_MAX:     return _POSIX2_EXPR_NEST_MAX;     // Minimum requirement.
     case _SC_LINE_MAX:          return _POSIX2_LINE_MAX;          // Minimum requirement.
-    case _SC_NGROUPS_MAX:       return NGROUPS_MAX;
+    case _SC_NGROUPS_MAX:
+      // Only root can read /proc/sys/kernel/ngroups_max on Android, and groups
+      // are vestigial anyway, so the "maximum maximum" of NGROUPS_MAX is a good
+      // enough answer for _SC_NGROUPS_MAX...
+      return NGROUPS_MAX;
     case _SC_PASS_MAX:          return PASS_MAX;
     case _SC_2_C_BIND:          return _POSIX2_C_BIND;
     case _SC_2_C_DEV:           return _POSIX2_C_DEV;
@@ -133,7 +240,7 @@
     case _SC_AIO_LISTIO_MAX:    return _POSIX_AIO_LISTIO_MAX;     // Minimum requirement.
     case _SC_AIO_MAX:           return _POSIX_AIO_MAX;            // Minimum requirement.
     case _SC_AIO_PRIO_DELTA_MAX:return 0;                         // Minimum requirement.
-    case _SC_DELAYTIMER_MAX:    return INT_MAX;
+    case _SC_DELAYTIMER_MAX:    return _POSIX_DELAYTIMER_MAX;
     case _SC_MQ_OPEN_MAX:       return _POSIX_MQ_OPEN_MAX;        // Minimum requirement.
     case _SC_MQ_PRIO_MAX:       return _POSIX_MQ_PRIO_MAX;        // Minimum requirement.
     case _SC_RTSIG_MAX:         return RTSIG_MAX;
@@ -201,11 +308,11 @@
     case _SC_THREAD_ROBUST_PRIO_PROTECT:  return _POSIX_THREAD_ROBUST_PRIO_PROTECT;
     case _SC_THREAD_SPORADIC_SERVER:      return _POSIX_THREAD_SPORADIC_SERVER;
     case _SC_TIMEOUTS:          return _POSIX_TIMEOUTS;
-    case _SC_TRACE:             return -1;             // Obsolescent in POSIX.1-2008.
-    case _SC_TRACE_EVENT_FILTER:      return -1;       // Obsolescent in POSIX.1-2008.
+    case _SC_TRACE:             return -1;
+    case _SC_TRACE_EVENT_FILTER:      return -1;
     case _SC_TRACE_EVENT_NAME_MAX:    return -1;
-    case _SC_TRACE_INHERIT:     return -1;             // Obsolescent in POSIX.1-2008.
-    case _SC_TRACE_LOG:         return -1;             // Obsolescent in POSIX.1-2008.
+    case _SC_TRACE_INHERIT:     return -1;
+    case _SC_TRACE_LOG:         return -1;
     case _SC_TRACE_NAME_MAX:    return -1;
     case _SC_TRACE_SYS_MAX:     return -1;
     case _SC_TRACE_USER_EVENT_MAX:    return -1;
@@ -214,26 +321,24 @@
     case _SC_V7_ILP32_OFFBIG:   return _POSIX_V7_ILP32_OFFBIG;
     case _SC_V7_LP64_OFF64:     return _POSIX_V7_LP64_OFF64;
     case _SC_V7_LPBIG_OFFBIG:   return _POSIX_V7_LPBIG_OFFBIG;
-    case _SC_XOPEN_STREAMS:     return -1;            // Obsolescent in POSIX.1-2008.
+    case _SC_XOPEN_STREAMS:     return -1;
     case _SC_XOPEN_UUCP:        return -1;
 
-    // We do not have actual implementations for cache queries.
-    // It's valid to return 0 as the result is unknown.
-    case _SC_LEVEL1_ICACHE_SIZE:      return 0;
-    case _SC_LEVEL1_ICACHE_ASSOC:     return 0;
-    case _SC_LEVEL1_ICACHE_LINESIZE:  return 0;
-    case _SC_LEVEL1_DCACHE_SIZE:      return 0;
-    case _SC_LEVEL1_DCACHE_ASSOC:     return 0;
-    case _SC_LEVEL1_DCACHE_LINESIZE:  return 0;
-    case _SC_LEVEL2_CACHE_SIZE:       return 0;
-    case _SC_LEVEL2_CACHE_ASSOC:      return 0;
-    case _SC_LEVEL2_CACHE_LINESIZE:   return 0;
-    case _SC_LEVEL3_CACHE_SIZE:       return 0;
-    case _SC_LEVEL3_CACHE_ASSOC:      return 0;
-    case _SC_LEVEL3_CACHE_LINESIZE:   return 0;
-    case _SC_LEVEL4_CACHE_SIZE:       return 0;
-    case _SC_LEVEL4_CACHE_ASSOC:      return 0;
-    case _SC_LEVEL4_CACHE_LINESIZE:   return 0;
+    case _SC_LEVEL1_ICACHE_SIZE:      return __sysconf_caches()->l1_i.size;
+    case _SC_LEVEL1_ICACHE_ASSOC:     return __sysconf_caches()->l1_i.assoc;
+    case _SC_LEVEL1_ICACHE_LINESIZE:  return __sysconf_caches()->l1_i.linesize;
+    case _SC_LEVEL1_DCACHE_SIZE:      return __sysconf_caches()->l1_d.size;
+    case _SC_LEVEL1_DCACHE_ASSOC:     return __sysconf_caches()->l1_d.assoc;
+    case _SC_LEVEL1_DCACHE_LINESIZE:  return __sysconf_caches()->l1_d.linesize;
+    case _SC_LEVEL2_CACHE_SIZE:       return __sysconf_caches()->l2.size;
+    case _SC_LEVEL2_CACHE_ASSOC:      return __sysconf_caches()->l2.assoc;
+    case _SC_LEVEL2_CACHE_LINESIZE:   return __sysconf_caches()->l2.linesize;
+    case _SC_LEVEL3_CACHE_SIZE:       return __sysconf_caches()->l3.size;
+    case _SC_LEVEL3_CACHE_ASSOC:      return __sysconf_caches()->l3.assoc;
+    case _SC_LEVEL3_CACHE_LINESIZE:   return __sysconf_caches()->l3.linesize;
+    case _SC_LEVEL4_CACHE_SIZE:       return __sysconf_caches()->l4.size;
+    case _SC_LEVEL4_CACHE_ASSOC:      return __sysconf_caches()->l4.assoc;
+    case _SC_LEVEL4_CACHE_LINESIZE:   return __sysconf_caches()->l4.linesize;
 
     default:
       errno = EINVAL;
diff --git a/libc/bionic/sysinfo.cpp b/libc/bionic/sysinfo.cpp
index 1e4a0e8..79fd55e 100644
--- a/libc/bionic/sysinfo.cpp
+++ b/libc/bionic/sysinfo.cpp
@@ -33,8 +33,9 @@
 #include <string.h>
 #include <unistd.h>
 
-#include "private/get_cpu_count_from_string.h"
+#include "platform/bionic/page.h"
 #include "private/ScopedReaddir.h"
+#include "private/get_cpu_count_from_string.h"
 
 int __get_cpu_count(const char* sys_file) {
   int cpu_count = 1;
@@ -64,11 +65,11 @@
 long get_phys_pages() {
   struct sysinfo si;
   sysinfo(&si);
-  return (static_cast<int64_t>(si.totalram) * si.mem_unit) / PAGE_SIZE;
+  return (static_cast<int64_t>(si.totalram) * si.mem_unit) / page_size();
 }
 
 long get_avphys_pages() {
   struct sysinfo si;
   sysinfo(&si);
-  return ((static_cast<int64_t>(si.freeram) + si.bufferram) * si.mem_unit) / PAGE_SIZE;
+  return ((static_cast<int64_t>(si.freeram) + si.bufferram) * si.mem_unit) / page_size();
 }
diff --git a/libc/bionic/syslog.cpp b/libc/bionic/syslog.cpp
index 6b17d26..a459c6b 100644
--- a/libc/bionic/syslog.cpp
+++ b/libc/bionic/syslog.cpp
@@ -18,18 +18,22 @@
 #include <stdlib.h>
 #include <string.h>
 #include <syslog.h>
+#include <unistd.h>
 
 #include <async_safe/log.h>
 
 static const char* syslog_log_tag = nullptr;
 static int syslog_priority_mask = 0xff;
+static int syslog_options = 0;
 
 void closelog() {
   syslog_log_tag = nullptr;
+  syslog_options = 0;
 }
 
-void openlog(const char* log_tag, int /*options*/, int /*facility*/) {
+void openlog(const char* log_tag, int options, int /*facility*/) {
   syslog_log_tag = log_tag;
+  syslog_options = options;
 }
 
 int setlogmask(int new_mask) {
@@ -73,10 +77,16 @@
     android_log_priority = ANDROID_LOG_DEBUG;
   }
 
-  // We can't let async_safe_format_log do the formatting because it doesn't support
-  // all the printf functionality.
+  // We can't let async_safe_format_log do the formatting because it doesn't
+  // support all the printf functionality.
   char log_line[1024];
-  vsnprintf(log_line, sizeof(log_line), fmt, args);
+  int n = vsnprintf(log_line, sizeof(log_line), fmt, args);
+  if (n < 0) return;
 
   async_safe_format_log(android_log_priority, log_tag, "%s", log_line);
+  if ((syslog_options & LOG_PERROR) != 0) {
+    bool have_newline =
+        (n > 0 && n < static_cast<int>(sizeof(log_line)) && log_line[n - 1] == '\n');
+    dprintf(STDERR_FILENO, "%s: %s%s", log_tag, log_line, have_newline ? "" : "\n");
+  }
 }
diff --git a/libc/bionic/system.cpp b/libc/bionic/system.cpp
index 93d7497..8349498 100644
--- a/libc/bionic/system.cpp
+++ b/libc/bionic/system.cpp
@@ -38,7 +38,7 @@
 
 int system(const char* command) {
   // "The system() function shall always return non-zero when command is NULL."
-  // http://pubs.opengroup.org/onlinepubs/9699919799/functions/system.html
+  // https://pubs.opengroup.org/onlinepubs/9799919799.2024edition/functions/system.html
   if (command == nullptr) return 1;
 
   ScopedSignalBlocker sigchld_blocker(SIGCHLD);
diff --git a/libc/bionic/system_property_api.cpp b/libc/bionic/system_property_api.cpp
index a641f12..ed30fc2 100644
--- a/libc/bionic/system_property_api.cpp
+++ b/libc/bionic/system_property_api.cpp
@@ -26,9 +26,9 @@
  * SUCH DAMAGE.
  */
 
-#define _REALLY_INCLUDE_SYS__SYSTEM_PROPERTIES_H_
-#include <sys/_system_properties.h>
+#include <sys/system_properties.h>
 
+#include <async_safe/CHECK.h>
 #include <system_properties/prop_area.h>
 #include <system_properties/system_properties.h>
 
@@ -45,7 +45,7 @@
 
 __BIONIC_WEAK_FOR_NATIVE_BRIDGE
 int __system_properties_init() {
-  return system_properties.Init(PROP_FILENAME) ? 0 : -1;
+  return system_properties.Init(PROP_DIRNAME) ? 0 : -1;
 }
 
 __BIONIC_WEAK_FOR_NATIVE_BRIDGE
@@ -55,8 +55,8 @@
 
 __BIONIC_WEAK_FOR_NATIVE_BRIDGE
 int __system_property_area_init() {
-  bool fsetxattr_failed = false;
-  return system_properties.AreaInit(PROP_FILENAME, &fsetxattr_failed) && !fsetxattr_failed ? 0 : -1;
+  bool fsetxattr_fail = false;
+  return system_properties.AreaInit(PROP_DIRNAME, &fsetxattr_fail) && !fsetxattr_fail ? 0 : -1;
 }
 
 __BIONIC_WEAK_FOR_NATIVE_BRIDGE
@@ -129,3 +129,9 @@
 int __system_property_foreach(void (*propfn)(const prop_info* pi, void* cookie), void* cookie) {
   return system_properties.Foreach(propfn, cookie);
 }
+
+__BIONIC_WEAK_FOR_NATIVE_BRIDGE
+int __system_properties_zygote_reload(void) {
+  CHECK(getpid() == gettid());
+  return system_properties.Reload(false) ? 0 : -1;
+}
diff --git a/libc/bionic/system_property_set.cpp b/libc/bionic/system_property_set.cpp
index 212aafc..9d73445 100644
--- a/libc/bionic/system_property_set.cpp
+++ b/libc/bionic/system_property_set.cpp
@@ -34,11 +34,10 @@
 #include <stdlib.h>
 #include <string.h>
 #include <sys/socket.h>
+#include <sys/system_properties.h>
 #include <sys/types.h>
 #include <sys/uio.h>
 #include <sys/un.h>
-#define _REALLY_INCLUDE_SYS__SYSTEM_PROPERTIES_H_
-#include <sys/_system_properties.h>
 #include <unistd.h>
 
 #include <async_safe/log.h>
@@ -49,21 +48,34 @@
 #include "private/ScopedFd.h"
 
 static const char property_service_socket[] = "/dev/socket/" PROP_SERVICE_NAME;
+static const char property_service_for_system_socket[] =
+    "/dev/socket/" PROP_SERVICE_FOR_SYSTEM_NAME;
 static const char* kServiceVersionPropertyName = "ro.property_service.version";
 
 class PropertyServiceConnection {
  public:
-  PropertyServiceConnection() : last_error_(0) {
+  PropertyServiceConnection(const char* name) : last_error_(0) {
     socket_.reset(::socket(AF_LOCAL, SOCK_STREAM | SOCK_CLOEXEC, 0));
     if (socket_.get() == -1) {
       last_error_ = errno;
       return;
     }
 
-    const size_t namelen = strlen(property_service_socket);
+    // If we're trying to set "sys.powerctl" from a privileged process, use the special
+    // socket. Because this socket is only accessible to privileged processes, it can't
+    // be DoSed directly by malicious apps. (The shell user should be able to reboot,
+    // though, so we don't just always use the special socket for "sys.powerctl".)
+    // See b/262237198 for context
+    const char* socket = property_service_socket;
+    if (strcmp(name, "sys.powerctl") == 0 &&
+        access(property_service_for_system_socket, W_OK) == 0) {
+      socket = property_service_for_system_socket;
+    }
+
+    const size_t namelen = strlen(socket);
     sockaddr_un addr;
     memset(&addr, 0, sizeof(addr));
-    strlcpy(addr.sun_path, property_service_socket, sizeof(addr.sun_path));
+    strlcpy(addr.sun_path, socket, sizeof(addr.sun_path));
     addr.sun_family = AF_LOCAL;
     socklen_t alen = namelen + offsetof(sockaddr_un, sun_path) + 1;
 
@@ -176,7 +188,7 @@
 };
 
 static int send_prop_msg(const prop_msg* msg) {
-  PropertyServiceConnection connection;
+  PropertyServiceConnection connection(msg->name);
   if (!connection.IsValid()) {
     return connection.GetLastError();
   }
@@ -244,6 +256,21 @@
   }
 }
 
+static const char* __prop_error_to_string(int error) {
+  switch (error) {
+  case PROP_ERROR_READ_CMD: return "PROP_ERROR_READ_CMD";
+  case PROP_ERROR_READ_DATA: return "PROP_ERROR_READ_DATA";
+  case PROP_ERROR_READ_ONLY_PROPERTY: return "PROP_ERROR_READ_ONLY_PROPERTY";
+  case PROP_ERROR_INVALID_NAME: return "PROP_ERROR_INVALID_NAME";
+  case PROP_ERROR_INVALID_VALUE: return "PROP_ERROR_INVALID_VALUE";
+  case PROP_ERROR_PERMISSION_DENIED: return "PROP_ERROR_PERMISSION_DENIED";
+  case PROP_ERROR_INVALID_CMD: return "PROP_ERROR_INVALID_CMD";
+  case PROP_ERROR_HANDLE_CONTROL_MESSAGE: return "PROP_ERROR_HANDLE_CONTROL_MESSAGE";
+  case PROP_ERROR_SET_FAILED: return "PROP_ERROR_SET_FAILED";
+  }
+  return "<unknown>";
+}
+
 __BIONIC_WEAK_FOR_NATIVE_BRIDGE
 int __system_property_set(const char* key, const char* value) {
   if (key == nullptr) return -1;
@@ -269,13 +296,12 @@
     // New protocol only allows long values for ro. properties only.
     if (strlen(value) >= PROP_VALUE_MAX && strncmp(key, "ro.", 3) != 0) return -1;
     // Use proper protocol
-    PropertyServiceConnection connection;
+    PropertyServiceConnection connection(key);
     if (!connection.IsValid()) {
       errno = connection.GetLastError();
-      async_safe_format_log(
-          ANDROID_LOG_WARN, "libc",
-          "Unable to set property \"%s\" to \"%s\": connection failed; errno=%d (%s)", key, value,
-          errno, strerror(errno));
+      async_safe_format_log(ANDROID_LOG_WARN, "libc",
+                            "Unable to set property \"%s\" to \"%s\": connection failed: %m", key,
+                            value);
       return -1;
     }
 
@@ -283,8 +309,8 @@
     if (!writer.WriteUint32(PROP_MSG_SETPROP2).WriteString(key).WriteString(value).Send()) {
       errno = connection.GetLastError();
       async_safe_format_log(ANDROID_LOG_WARN, "libc",
-                            "Unable to set property \"%s\" to \"%s\": write failed; errno=%d (%s)",
-                            key, value, errno, strerror(errno));
+                            "Unable to set property \"%s\" to \"%s\": write failed: %m", key,
+                            value);
       return -1;
     }
 
@@ -292,15 +318,14 @@
     if (!connection.RecvInt32(&result)) {
       errno = connection.GetLastError();
       async_safe_format_log(ANDROID_LOG_WARN, "libc",
-                            "Unable to set property \"%s\" to \"%s\": recv failed; errno=%d (%s)",
-                            key, value, errno, strerror(errno));
+                            "Unable to set property \"%s\" to \"%s\": recv failed: %m", key, value);
       return -1;
     }
 
     if (result != PROP_SUCCESS) {
       async_safe_format_log(ANDROID_LOG_WARN, "libc",
-                            "Unable to set property \"%s\" to \"%s\": error code: 0x%x", key, value,
-                            result);
+                            "Unable to set property \"%s\" to \"%s\": %s (0x%x)", key, value,
+                            __prop_error_to_string(result), result);
       return -1;
     }
 
diff --git a/libc/bionic/termios.cpp b/libc/bionic/termios.cpp
index 5fe8eb0..57b34b7 100644
--- a/libc/bionic/termios.cpp
+++ b/libc/bionic/termios.cpp
@@ -34,6 +34,10 @@
 #define __BIONIC_TERMIOS_INLINE /* Out of line. */
 #include <bits/termios_inlines.h>
 
+// POSIX added a couple more functions much later, so do the same for them.
+#define __BIONIC_TERMIOS_WINSIZE_INLINE /* Out of line. */
+#include <bits/termios_winsize_inlines.h>
+
 // Actually declared in <unistd.h>, present on all API levels.
 pid_t tcgetpgrp(int fd) {
   pid_t pid;
diff --git a/libc/bionic/timespec_get.cpp b/libc/bionic/time.cpp
similarity index 89%
rename from libc/bionic/timespec_get.cpp
rename to libc/bionic/time.cpp
index 7fc2182..800395e 100644
--- a/libc/bionic/timespec_get.cpp
+++ b/libc/bionic/time.cpp
@@ -29,5 +29,9 @@
 #include <time.h>
 
 int timespec_get(timespec* ts, int base) {
-  return (base == TIME_UTC && clock_gettime(CLOCK_REALTIME, ts) != -1) ? base : 0;
+  return (clock_gettime(base - 1, ts) != -1) ? base : 0;
+}
+
+int timespec_getres(timespec* ts, int base) {
+  return (clock_getres(base - 1, ts) != -1) ? base : 0;
 }
diff --git a/libc/bionic/time_l.cpp b/libc/bionic/time_l.cpp
deleted file mode 100644
index e5fa9a5..0000000
--- a/libc/bionic/time_l.cpp
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * Copyright (C) 2022 The Android Open Source Project
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *  * Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- *  * Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in
- *    the documentation and/or other materials provided with the
- *    distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
- * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#include <time.h>
-//#include <xlocale.h>
-
-char* strptime_l(const char* buf, const char* fmt, struct tm* tm, locale_t) {
-  return strptime(buf, fmt, tm);
-}
diff --git a/libc/bionic/vdso.cpp b/libc/bionic/vdso.cpp
index dbca9c0..0a9a9e5 100644
--- a/libc/bionic/vdso.cpp
+++ b/libc/bionic/vdso.cpp
@@ -22,10 +22,16 @@
 #include <string.h>
 #include <sys/auxv.h>
 #include <sys/cdefs.h>
+#include <sys/hwprobe.h>
 #include <sys/time.h>
+#include <syscall.h>
 #include <time.h>
 #include <unistd.h>
 
+extern "C" int __clock_gettime(int, struct timespec*);
+extern "C" int __clock_getres(int, struct timespec*);
+extern "C" int __gettimeofday(struct timeval*, struct timezone*);
+
 static inline int vdso_return(int result) {
   if (__predict_true(result == 0)) return 0;
 
@@ -61,10 +67,13 @@
 }
 
 time_t time(time_t* t) {
+  // Only x86/x86-64 actually have time() in the vdso.
+#if defined(VDSO_TIME_SYMBOL)
   auto vdso_time = reinterpret_cast<decltype(&time)>(__libc_globals->vdso[VDSO_TIME].fn);
   if (__predict_true(vdso_time)) {
     return vdso_time(t);
   }
+#endif
 
   // We can't fallback to the time(2) system call because it doesn't exist for most architectures.
   timeval tv;
@@ -73,12 +82,41 @@
   return tv.tv_sec;
 }
 
+#if defined(__riscv)
+int __riscv_hwprobe(struct riscv_hwprobe* _Nonnull pairs, size_t pair_count, size_t cpu_count,
+                    unsigned long* _Nullable cpus, unsigned flags) {
+  auto vdso_riscv_hwprobe =
+      reinterpret_cast<decltype(&__riscv_hwprobe)>(__libc_globals->vdso[VDSO_RISCV_HWPROBE].fn);
+  if (__predict_true(vdso_riscv_hwprobe)) {
+    return -vdso_riscv_hwprobe(pairs, pair_count, cpu_count, cpus, flags);
+  }
+  // Inline the syscall directly in case someone's calling it from an
+  // ifunc resolver where we won't be able to set errno on failure.
+  // (Rather than our usual trick of letting the python-generated
+  // wrapper set errno but saving/restoring errno in cases where the API
+  // is to return an error value rather than setting errno.)
+  register long a0 __asm__("a0") = reinterpret_cast<long>(pairs);
+  register long a1 __asm__("a1") = pair_count;
+  register long a2 __asm__("a2") = cpu_count;
+  register long a3 __asm__("a3") = reinterpret_cast<long>(cpus);
+  register long a4 __asm__("a4") = flags;
+  register long a7 __asm__("a7") = __NR_riscv_hwprobe;
+  __asm__ volatile("ecall" : "=r"(a0) : "r"(a0), "r"(a1), "r"(a2), "r"(a3), "r"(a4), "r"(a7));
+  return -a0;
+}
+#endif
+
 void __libc_init_vdso(libc_globals* globals) {
   auto&& vdso = globals->vdso;
-  vdso[VDSO_CLOCK_GETTIME] = { VDSO_CLOCK_GETTIME_SYMBOL, nullptr };
-  vdso[VDSO_CLOCK_GETRES] = { VDSO_CLOCK_GETRES_SYMBOL, nullptr };
-  vdso[VDSO_GETTIMEOFDAY] = { VDSO_GETTIMEOFDAY_SYMBOL, nullptr };
-  vdso[VDSO_TIME] = { VDSO_TIME_SYMBOL, nullptr };
+  vdso[VDSO_CLOCK_GETTIME] = {VDSO_CLOCK_GETTIME_SYMBOL, nullptr};
+  vdso[VDSO_CLOCK_GETRES] = {VDSO_CLOCK_GETRES_SYMBOL, nullptr};
+  vdso[VDSO_GETTIMEOFDAY] = {VDSO_GETTIMEOFDAY_SYMBOL, nullptr};
+#if defined(VDSO_TIME_SYMBOL)
+  vdso[VDSO_TIME] = {VDSO_TIME_SYMBOL, nullptr};
+#endif
+#if defined(VDSO_RISCV_HWPROBE_SYMBOL)
+  vdso[VDSO_RISCV_HWPROBE] = {VDSO_RISCV_HWPROBE_SYMBOL, nullptr};
+#endif
 
   // Do we have a vdso?
   uintptr_t vdso_ehdr_addr = getauxval(AT_SYSINFO_EHDR);
@@ -93,6 +131,7 @@
   for (size_t i = 0; i < vdso_ehdr->e_shnum; ++i) {
     if (vdso_shdr[i].sh_type == SHT_DYNSYM) {
       symbol_count = vdso_shdr[i].sh_size / sizeof(ElfW(Sym));
+      break;
     }
   }
   if (symbol_count == 0) {
@@ -109,6 +148,7 @@
     } else if (vdso_phdr[i].p_type == PT_LOAD) {
       vdso_addr = vdso_ehdr_addr + vdso_phdr[i].p_offset - vdso_phdr[i].p_vaddr;
     }
+    if (vdso_addr && vdso_dyn) break;
   }
   if (vdso_addr == 0 || vdso_dyn == nullptr) {
     return;
@@ -123,16 +163,18 @@
     } else if (d->d_tag == DT_SYMTAB) {
       symtab = reinterpret_cast<ElfW(Sym)*>(vdso_addr + d->d_un.d_ptr);
     }
+    if (strtab && symtab) break;
   }
   if (strtab == nullptr || symtab == nullptr) {
     return;
   }
 
   // Are there any symbols we want?
-  for (size_t i = 0; i < symbol_count; ++i) {
-    for (size_t j = 0; j < VDSO_END; ++j) {
-      if (strcmp(vdso[j].name, strtab + symtab[i].st_name) == 0) {
-        vdso[j].fn = reinterpret_cast<void*>(vdso_addr + symtab[i].st_value);
+  for (size_t i = 0; i < VDSO_END; ++i) {
+    for (size_t j = 0; j < symbol_count; ++j) {
+      if (strcmp(vdso[i].name, strtab + symtab[j].st_name) == 0) {
+        vdso[i].fn = reinterpret_cast<void*>(vdso_addr + symtab[j].st_value);
+        break;
       }
     }
   }
diff --git a/libc/bionic/wchar.cpp b/libc/bionic/wchar.cpp
index bd9a45e..b8c4432 100644
--- a/libc/bionic/wchar.cpp
+++ b/libc/bionic/wchar.cpp
@@ -27,10 +27,10 @@
  */
 
 #include <errno.h>
-#include <sys/param.h>
 #include <string.h>
-#include <wchar.h>
+#include <sys/param.h>
 #include <uchar.h>
+#include <wchar.h>
 
 #include "private/bionic_mbstate.h"
 
@@ -88,10 +88,10 @@
         r = 1;
       } else {
         r = mbrtowc(nullptr, *src + i, nmc - i, state);
-        if (r == __MB_ERR_ILLEGAL_SEQUENCE) {
+        if (r == BIONIC_MULTIBYTE_RESULT_ILLEGAL_SEQUENCE) {
           return mbstate_reset_and_return_illegal(EILSEQ, state);
         }
-        if (r == __MB_ERR_INCOMPLETE_SEQUENCE) {
+        if (r == BIONIC_MULTIBYTE_RESULT_INCOMPLETE_SEQUENCE) {
           return mbstate_reset_and_return_illegal(EILSEQ, state);
         }
         if (r == 0) {
@@ -114,11 +114,11 @@
       }
     } else {
       r = mbrtowc(dst + o, *src + i, nmc - i, state);
-      if (r == __MB_ERR_ILLEGAL_SEQUENCE) {
+      if (r == BIONIC_MULTIBYTE_RESULT_ILLEGAL_SEQUENCE) {
         *src += i;
         return mbstate_reset_and_return_illegal(EILSEQ, state);
       }
-      if (r == __MB_ERR_INCOMPLETE_SEQUENCE) {
+      if (r == BIONIC_MULTIBYTE_RESULT_INCOMPLETE_SEQUENCE) {
         *src += nmc;
         return mbstate_reset_and_return_illegal(EILSEQ, state);
       }
@@ -135,6 +135,7 @@
 size_t mbsrtowcs(wchar_t* dst, const char** src, size_t len, mbstate_t* ps) {
   return mbsnrtowcs(dst, src, SIZE_MAX, len, ps);
 }
+__strong_alias(mbsrtowcs_l, mbsrtowcs);
 
 size_t wcrtomb(char* s, wchar_t wc, mbstate_t* ps) {
   static mbstate_t __private_state;
@@ -165,7 +166,7 @@
         r = 1;
       } else {
         r = wcrtomb(buf, wc, state);
-        if (r == __MB_ERR_ILLEGAL_SEQUENCE) {
+        if (r == BIONIC_MULTIBYTE_RESULT_ILLEGAL_SEQUENCE) {
           return r;
         }
       }
@@ -186,14 +187,14 @@
     } else if (len - o >= sizeof(buf)) {
       // Enough space to translate in-place.
       r = wcrtomb(dst + o, wc, state);
-      if (r == __MB_ERR_ILLEGAL_SEQUENCE) {
+      if (r == BIONIC_MULTIBYTE_RESULT_ILLEGAL_SEQUENCE) {
         *src += i;
         return r;
       }
     } else {
       // May not be enough space; use temp buffer.
       r = wcrtomb(buf, wc, state);
-      if (r == __MB_ERR_ILLEGAL_SEQUENCE) {
+      if (r == BIONIC_MULTIBYTE_RESULT_ILLEGAL_SEQUENCE) {
         *src += i;
         return r;
       }
@@ -210,3 +211,4 @@
 size_t wcsrtombs(char* dst, const wchar_t** src, size_t len, mbstate_t* ps) {
   return wcsnrtombs(dst, src, SIZE_MAX, len, ps);
 }
+__strong_alias(wcsrtombs_l, wcsrtombs);
diff --git a/libc/bionic/wchar_l.cpp b/libc/bionic/wchar_l.cpp
index a86961f..b2c4a00 100644
--- a/libc/bionic/wchar_l.cpp
+++ b/libc/bionic/wchar_l.cpp
@@ -41,38 +41,6 @@
   return wcscoll(ws1, ws2);
 }
 
-size_t wcsftime_l(wchar_t* buf, size_t n, const wchar_t* fmt, const struct tm* tm, locale_t) {
-  return wcsftime(buf, n, fmt, tm);
-}
-
 size_t wcsxfrm_l(wchar_t* dst, const wchar_t* src, size_t n, locale_t) {
   return wcsxfrm(dst, src, n);
 }
-
-double wcstod_l(const wchar_t* s, wchar_t** end_ptr, locale_t) {
-  return wcstod(s, end_ptr);
-}
-
-float wcstof_l(const wchar_t* s, wchar_t** end_ptr, locale_t) {
-  return wcstof(s, end_ptr);
-}
-
-long wcstol_l(const wchar_t* s, wchar_t** end_ptr, int base, locale_t) {
-  return wcstol(s, end_ptr, base);
-}
-
-long long wcstoll_l(const wchar_t* s, wchar_t** end_ptr, int base, locale_t) {
-  return wcstoll(s, end_ptr, base);
-}
-
-unsigned long wcstoul_l(const wchar_t* s, wchar_t** end_ptr, int base, locale_t) {
-  return wcstoul(s, end_ptr, base);
-}
-
-unsigned long long wcstoull_l(const wchar_t* s, wchar_t** end_ptr, int base, locale_t) {
-  return wcstoull(s, end_ptr, base);
-}
-
-long double wcstold_l(const wchar_t* s, wchar_t** end_ptr, locale_t) {
-  return wcstold(s, end_ptr);
-}
diff --git a/libc/bionic/wcstod.cpp b/libc/bionic/wcstod.cpp
index 75a59f5..00c8a08 100644
--- a/libc/bionic/wcstod.cpp
+++ b/libc/bionic/wcstod.cpp
@@ -26,8 +26,6 @@
  * SUCH DAMAGE.
  */
 
-#define __BIONIC_LP32_USE_LONG_DOUBLE
-
 #include <wchar.h>
 
 #include <stdlib.h>
@@ -96,11 +94,14 @@
 float wcstof(const wchar_t* s, wchar_t** end) {
   return wcstod<float>(s, end, strtof);
 }
+__strong_alias(wcstof_l, wcstof);
 
 double wcstod(const wchar_t* s, wchar_t** end) {
   return wcstod<double>(s, end, strtod);
 }
+__strong_alias(wcstod_l, wcstod);
 
 long double wcstold(const wchar_t* s, wchar_t** end) {
   return wcstod<long double>(s, end, strtold);
 }
+__strong_alias(wcstold_l, wcstold);
diff --git a/libc/bionic/wctype.cpp b/libc/bionic/wctype.cpp
index 082dada..94597d9 100644
--- a/libc/bionic/wctype.cpp
+++ b/libc/bionic/wctype.cpp
@@ -34,6 +34,7 @@
 #include <string.h>
 #include <wchar.h>
 
+#include "bionic/macros.h"
 #include "private/icu.h"
 
 enum {
@@ -53,113 +54,104 @@
   WC_TYPE_MAX
 };
 
-int iswalnum(wint_t wc) { return __icu_hasBinaryProperty(wc, UCHAR_POSIX_ALNUM, isalnum); }
-int iswalpha(wint_t wc) { return __icu_hasBinaryProperty(wc, UCHAR_ALPHABETIC, isalpha); }
-int iswblank(wint_t wc) { return __icu_hasBinaryProperty(wc, UCHAR_POSIX_BLANK, isblank); }
-int iswgraph(wint_t wc) { return __icu_hasBinaryProperty(wc, UCHAR_POSIX_GRAPH, isgraph); }
-int iswlower(wint_t wc) { return __icu_hasBinaryProperty(wc, UCHAR_LOWERCASE, islower); }
-int iswprint(wint_t wc) { return __icu_hasBinaryProperty(wc, UCHAR_POSIX_PRINT, isprint); }
-int iswspace(wint_t wc) { return __icu_hasBinaryProperty(wc, UCHAR_WHITE_SPACE, isspace); }
-int iswupper(wint_t wc) { return __icu_hasBinaryProperty(wc, UCHAR_UPPERCASE, isupper); }
-int iswxdigit(wint_t wc) { return __icu_hasBinaryProperty(wc, UCHAR_POSIX_XDIGIT, isxdigit); }
+static u_hasBinaryProperty_t __find_u_hasBinaryProperty() {
+  static auto u_hasBinaryProperty =
+      reinterpret_cast<u_hasBinaryProperty_t>(__find_icu_symbol("u_hasBinaryProperty"));
+  return u_hasBinaryProperty;
+}
+
+#define DO_ISW(icu_constant, narrow_fn) \
+  u_hasBinaryProperty_t u_hasBinaryProperty; \
+  if (__predict_true(wc < 0x80) || \
+      !(u_hasBinaryProperty = __find_u_hasBinaryProperty())) { \
+    return narrow_fn(wc); \
+  } \
+  return u_hasBinaryProperty(wc, icu_constant); \
+
+int iswalnum(wint_t wc) { DO_ISW(UCHAR_POSIX_ALNUM, isalnum); }
+__strong_alias(iswalnum_l, iswalnum);
+int iswalpha(wint_t wc) { DO_ISW(UCHAR_ALPHABETIC, isalpha); }
+__strong_alias(iswalpha_l, iswalpha);
+int iswblank(wint_t wc) { DO_ISW(UCHAR_POSIX_BLANK, isblank); }
+__strong_alias(iswblank_l, iswblank);
+int iswgraph(wint_t wc) { DO_ISW(UCHAR_POSIX_GRAPH, isgraph); }
+__strong_alias(iswgraph_l, iswgraph);
+int iswlower(wint_t wc) { DO_ISW(UCHAR_LOWERCASE, islower); }
+__strong_alias(iswlower_l, iswlower);
+int iswprint(wint_t wc) { DO_ISW(UCHAR_POSIX_PRINT, isprint); }
+__strong_alias(iswprint_l, iswprint);
+int iswspace(wint_t wc) { DO_ISW(UCHAR_WHITE_SPACE, isspace); }
+__strong_alias(iswspace_l, iswspace);
+int iswupper(wint_t wc) { DO_ISW(UCHAR_UPPERCASE, isupper); }
+__strong_alias(iswupper_l, iswupper);
+int iswxdigit(wint_t wc) { DO_ISW(UCHAR_POSIX_XDIGIT, isxdigit); }
+__strong_alias(iswxdigit_l, iswxdigit);
 
 int iswcntrl(wint_t wc) {
+  if (wc < 0x80) return iscntrl(wc);
   typedef int8_t (*FnT)(UChar32);
   static auto u_charType = reinterpret_cast<FnT>(__find_icu_symbol("u_charType"));
   return u_charType ? (u_charType(wc) == U_CONTROL_CHAR) : iscntrl(wc);
 }
+__strong_alias(iswcntrl_l, iswcntrl);
 
 int iswdigit(wint_t wc) {
+  if (wc < 0x80) return isdigit(wc);
   typedef UBool (*FnT)(UChar32);
   static auto u_isdigit = reinterpret_cast<FnT>(__find_icu_symbol("u_isdigit"));
   return u_isdigit ? u_isdigit(wc) : isdigit(wc);
 }
+__strong_alias(iswdigit_l, iswdigit);
 
 int iswpunct(wint_t wc) {
+  if (wc < 0x80) return ispunct(wc);
   typedef UBool (*FnT)(UChar32);
   static auto u_ispunct = reinterpret_cast<FnT>(__find_icu_symbol("u_ispunct"));
   return u_ispunct ? u_ispunct(wc) : ispunct(wc);
 }
-
-int iswalnum_l(wint_t c, locale_t) { return iswalnum(c); }
-int iswalpha_l(wint_t c, locale_t) { return iswalpha(c); }
-int iswblank_l(wint_t c, locale_t) { return iswblank(c); }
-int iswcntrl_l(wint_t c, locale_t) { return iswcntrl(c); }
-int iswdigit_l(wint_t c, locale_t) { return iswdigit(c); }
-int iswgraph_l(wint_t c, locale_t) { return iswgraph(c); }
-int iswlower_l(wint_t c, locale_t) { return iswlower(c); }
-int iswprint_l(wint_t c, locale_t) { return iswprint(c); }
-int iswpunct_l(wint_t c, locale_t) { return iswpunct(c); }
-int iswspace_l(wint_t c, locale_t) { return iswspace(c); }
-int iswupper_l(wint_t c, locale_t) { return iswupper(c); }
-int iswxdigit_l(wint_t c, locale_t) { return iswxdigit(c); }
+__strong_alias(iswpunct_l, iswpunct);
 
 int iswctype(wint_t wc, wctype_t char_class) {
-  switch (char_class) {
-    case WC_TYPE_ALNUM: return iswalnum(wc);
-    case WC_TYPE_ALPHA: return iswalpha(wc);
-    case WC_TYPE_BLANK: return iswblank(wc);
-    case WC_TYPE_CNTRL: return iswcntrl(wc);
-    case WC_TYPE_DIGIT: return iswdigit(wc);
-    case WC_TYPE_GRAPH: return iswgraph(wc);
-    case WC_TYPE_LOWER: return iswlower(wc);
-    case WC_TYPE_PRINT: return iswprint(wc);
-    case WC_TYPE_PUNCT: return iswpunct(wc);
-    case WC_TYPE_SPACE: return iswspace(wc);
-    case WC_TYPE_UPPER: return iswupper(wc);
-    case WC_TYPE_XDIGIT: return iswxdigit(wc);
-    default: return 0;
-  }
+  if (char_class < WC_TYPE_ALNUM || char_class > WC_TYPE_XDIGIT) return 0;
+  static int (*fns[])(wint_t) = {
+    iswalnum, iswalpha, iswblank, iswcntrl, iswdigit, iswgraph,
+    iswlower, iswprint, iswpunct, iswspace, iswupper, iswxdigit
+  };
+  return fns[char_class - WC_TYPE_ALNUM](wc);
 }
-
-int iswctype_l(wint_t wc, wctype_t char_class, locale_t) {
-  return iswctype(wc, char_class);
-}
+__strong_alias(iswctype_l, iswctype);
 
 wint_t towlower(wint_t wc) {
-  if (wc < 0x80) {
-    if (wc >= 'A' && wc <= 'Z') return wc | 0x20;
-    return wc;
-  }
+  if (wc < 0x80) return tolower(wc);
 
   typedef UChar32 (*FnT)(UChar32);
   static auto u_tolower = reinterpret_cast<FnT>(__find_icu_symbol("u_tolower"));
   return u_tolower ? u_tolower(wc) : tolower(wc);
 }
+__strong_alias(towlower_l, towlower);
 
 wint_t towupper(wint_t wc) {
-  if (wc < 0x80) {
-    // Using EOR rather than AND makes no difference on arm, but saves an
-    // instruction on arm64.
-    if (wc >= 'a' && wc <= 'z') return wc ^ 0x20;
-    return wc;
-  }
+  if (wc < 0x80) return toupper(wc);
 
   typedef UChar32 (*FnT)(UChar32);
   static auto u_toupper = reinterpret_cast<FnT>(__find_icu_symbol("u_toupper"));
   return u_toupper ? u_toupper(wc) : toupper(wc);
 }
-
-wint_t towupper_l(wint_t c, locale_t) { return towupper(c); }
-wint_t towlower_l(wint_t c, locale_t) { return towlower(c); }
+__strong_alias(towupper_l, towupper);
 
 wctype_t wctype(const char* property) {
-  static const char* const  properties[WC_TYPE_MAX] = {
-    "<invalid>",
+  static const char* const  properties[WC_TYPE_MAX - 1] = {
     "alnum", "alpha", "blank", "cntrl", "digit", "graph",
     "lower", "print", "punct", "space", "upper", "xdigit"
   };
-  for (size_t i = 0; i < WC_TYPE_MAX; ++i) {
+  for (size_t i = 0; i < arraysize(properties); ++i) {
     if (!strcmp(properties[i], property)) {
-      return static_cast<wctype_t>(i);
+      return static_cast<wctype_t>(WC_TYPE_ALNUM + i);
     }
   }
   return static_cast<wctype_t>(0);
 }
-
-wctype_t wctype_l(const char* property, locale_t) {
-  return wctype(property);
-}
+__strong_alias(wctype_l, wctype);
 
 static wctrans_t wctrans_tolower = wctrans_t(1);
 static wctrans_t wctrans_toupper = wctrans_t(2);
@@ -167,20 +159,15 @@
 wctrans_t wctrans(const char* name) {
   if (strcmp(name, "tolower") == 0) return wctrans_tolower;
   if (strcmp(name, "toupper") == 0) return wctrans_toupper;
+  errno = EINVAL;
   return nullptr;
 }
-
-wctrans_t wctrans_l(const char* name, locale_t) {
-  return wctrans(name);
-}
+__strong_alias(wctrans_l, wctrans);
 
 wint_t towctrans(wint_t c, wctrans_t t) {
   if (t == wctrans_tolower) return towlower(c);
   if (t == wctrans_toupper) return towupper(c);
   errno = EINVAL;
-  return 0;
+  return c;
 }
-
-wint_t towctrans_l(wint_t c, wctrans_t t, locale_t) {
-  return towctrans(c, t);
-}
+__strong_alias(towctrans_l, towctrans);
diff --git a/libc/bionic/wcwidth.cpp b/libc/bionic/wcwidth.cpp
index 9676b5a..776321f 100644
--- a/libc/bionic/wcwidth.cpp
+++ b/libc/bionic/wcwidth.cpp
@@ -52,12 +52,15 @@
     return -1;
    case U_NON_SPACING_MARK:
    case U_ENCLOSING_MARK:
-   case U_FORMAT_CHAR:
     return 0;
+   case U_FORMAT_CHAR:
+    // A special case for soft hyphen (U+00AD) to match historical practice.
+    // See the tests for more commentary.
+    return (wc == 0x00ad) ? 1 : 0;
   }
-  if (__icu_hasBinaryProperty(wc, UCHAR_DEFAULT_IGNORABLE_CODE_POINT, nullptr)) return 0;
 
-  // Medial and final jamo render as zero width when used correctly.
+  // Medial and final jamo render as zero width when used correctly,
+  // so we handle them specially rather than relying on East Asian Width.
   switch (__icu_getIntPropertyValue(wc, UCHAR_HANGUL_SYLLABLE_TYPE)) {
    case U_HST_VOWEL_JAMO:
    case U_HST_TRAILING_JAMO:
@@ -68,6 +71,13 @@
     return 2;
   }
 
+  // Hangeul choseong filler U+115F is default ignorable, so we check default
+  // ignorability only after we've already handled Hangeul jamo above.
+  static auto u_hasBinaryProperty =
+      reinterpret_cast<u_hasBinaryProperty_t>(__find_icu_symbol("u_hasBinaryProperty"));
+  if (u_hasBinaryProperty && u_hasBinaryProperty(wc, UCHAR_DEFAULT_IGNORABLE_CODE_POINT)) return 0;
+
+  // A few weird special cases where EastAsianWidth is not helpful for us.
   if (wc >= 0x3248 && wc <= 0x4dff) {
     // Circled two-digit CJK "speed sign" numbers. EastAsianWidth is ambiguous,
     // but wide makes more sense.
@@ -77,6 +87,7 @@
   }
 
   // The EastAsianWidth property is at least defined by the Unicode standard!
+  // https://www.unicode.org/reports/tr11/
   switch (__icu_getIntPropertyValue(wc, UCHAR_EAST_ASIAN_WIDTH)) {
    case U_EA_AMBIGUOUS:
    case U_EA_HALFWIDTH:
diff --git a/libc/dns/include/resolv_private.h b/libc/dns/include/resolv_private.h
index 3054555..1593aca 100644
--- a/libc/dns/include/resolv_private.h
+++ b/libc/dns/include/resolv_private.h
@@ -504,15 +504,7 @@
 // ...but NetBSD calls it res_randomid.
 #define res_randomid __res_randomid
 
-#ifdef __i386__
-# define __socketcall extern __attribute__((__cdecl__))
-#else
-# define __socketcall extern
-#endif
-
-__socketcall int __connect(int, const struct sockaddr*, socklen_t);
-
-#undef __socketcall
+int __connect(int, const struct sockaddr*, socklen_t);
 
 // Symbols that are supposed to be in resolv.h, but that we aren't exporting.
 int ns_parserr2(ns_msg*, ns_sect, int, ns_rr2*);
diff --git a/libc/dns/net/gethnamaddr.c b/libc/dns/net/gethnamaddr.c
index add124f..1ffabfa 100644
--- a/libc/dns/net/gethnamaddr.c
+++ b/libc/dns/net/gethnamaddr.c
@@ -495,7 +495,7 @@
 	*he = NO_RECOVERY;
 	return NULL;
 success:
-	bp = (char *)ALIGN(bp);
+	bp = __builtin_align_up(bp, sizeof(uintptr_t));
 	n = (int)(ap - aliases);
 	qlen = (n + 1) * sizeof(*hent->h_aliases);
 	if ((size_t)(ep - bp) < qlen)
@@ -616,7 +616,7 @@
 	}
 
 	// Fix alignment after variable-length data.
-	ptr = (char*)ALIGN(ptr);
+	ptr = __builtin_align_up(ptr, sizeof(uintptr_t));
 
 	int aliases_len = ((int)(aliases - aliases_ptrs) + 1) * sizeof(*hp->h_aliases);
 	if (ptr + aliases_len > hbuf_end) {
@@ -653,7 +653,7 @@
 	}
 
 	// Fix alignment after variable-length data.
-	ptr = (char*)ALIGN(ptr);
+	ptr = __builtin_align_up(ptr, sizeof(uintptr_t));
 
 	int addrs_len = ((int)(addr_p - addr_ptrs) + 1) * sizeof(*hp->h_addr_list);
 	if (ptr + addrs_len > hbuf_end) {
diff --git a/libc/dns/net/sethostent.c b/libc/dns/net/sethostent.c
index 483105a..8ea4315 100644
--- a/libc/dns/net/sethostent.c
+++ b/libc/dns/net/sethostent.c
@@ -157,6 +157,7 @@
 
 	if ((ptr = buf = malloc(len = info->buflen)) == NULL) {
 		*info->he = NETDB_INTERNAL;
+		endhostent_r(&hf);
 		return NULL;
 	}
 
@@ -197,7 +198,7 @@
 				HENT_SCOPY(aliases[anum], hp->h_aliases[anum],
 				    ptr, len);
 			}
-			ptr = (void *)ALIGN(ptr);
+			ptr = __builtin_align_up(ptr, sizeof(uintptr_t));
 			if ((size_t)(ptr - buf) >= info->buflen)
 				goto nospc;
 		}
@@ -241,6 +242,7 @@
 	return hp;
 nospc:
 	*info->he = NETDB_INTERNAL;
+	endhostent_r(&hf);
 	free(buf);
 	errno = ENOSPC;
 	return NULL;
diff --git a/libc/dns/resolv/res_cache.c b/libc/dns/resolv/res_cache.c
index f4c590f..38de84b 100644
--- a/libc/dns/resolv/res_cache.c
+++ b/libc/dns/resolv/res_cache.c
@@ -1166,23 +1166,19 @@
     }
 }
 
-static __inline__ void
-entry_mru_remove( Entry*  e )
-{
-    e->mru_prev->mru_next = e->mru_next;
-    e->mru_next->mru_prev = e->mru_prev;
+static __inline__ void entry_mru_remove(Entry* e) {
+  e->mru_prev->mru_next = e->mru_next;
+  e->mru_next->mru_prev = e->mru_prev;
 }
 
-static __inline__ void
-entry_mru_add( Entry*  e, Entry*  list )
-{
-    Entry*  first = list->mru_next;
+static __inline__ void entry_mru_add(Entry* e, Entry* list) {
+  Entry* first = list->mru_next;
 
-    e->mru_next = first;
-    e->mru_prev = list;
+  e->mru_next = first;
+  e->mru_prev = list;
 
-    list->mru_next  = e;
-    first->mru_prev = e;
+  list->mru_next = e;
+  first->mru_prev = e;
 }
 
 /* compute the hash of a given entry, this is a hash of most
diff --git a/libc/execinfo/include/execinfo.h b/libc/execinfo/include/execinfo.h
index e092c00..c8f9e21 100644
--- a/libc/execinfo/include/execinfo.h
+++ b/libc/execinfo/include/execinfo.h
@@ -30,8 +30,10 @@
 
 /*
  * This file is exported as part of libexecinfo for use with musl, which doesn't
- * define __INTRODUCED_IN.  Stub it out.
+ * define __INTRODUCED_IN or __BIONIC_AVAILABILITY_GUARD.  Stub them out.
  */
 #define __INTRODUCED_IN(x)
+#define __BIONIC_AVAILABILITY_GUARD(x) 1
 #include <bionic/execinfo.h>
+#undef __BIONIC_AVAILABILITY_GUARD
 #undef __INTRODUCED_IN
diff --git a/libc/fs_config_generator.py b/libc/fs_config_generator.py
deleted file mode 120000
index aafb7dc..0000000
--- a/libc/fs_config_generator.py
+++ /dev/null
@@ -1 +0,0 @@
-../../build/tools/fs_config/fs_config_generator.py
\ No newline at end of file
diff --git a/libc/include/alloca.h b/libc/include/alloca.h
index e05dea6..2786e2f 100644
--- a/libc/include/alloca.h
+++ b/libc/include/alloca.h
@@ -36,7 +36,7 @@
 #include <sys/cdefs.h>
 
 /**
- * [alloca(3)](http://man7.org/linux/man-pages/man3/alloca.3.html) allocates space on the stack.
+ * [alloca(3)](https://man7.org/linux/man-pages/man3/alloca.3.html) allocates space on the stack.
  *
  * New code should not use alloca because it cannot report failure.
  * Use regular heap allocation instead.
diff --git a/libc/include/android/api-level.h b/libc/include/android/api-level.h
index 6602e5d..c9536c1 100644
--- a/libc/include/android/api-level.h
+++ b/libc/include/android/api-level.h
@@ -40,7 +40,7 @@
  * @brief Functions and constants for dealing with multiple API levels.
  *
  * See
- * https://android.googlesource.com/platform/bionic/+/master/docs/defines.md.
+ * https://android.googlesource.com/platform/bionic/+/main/docs/defines.md.
  */
 
 #include <sys/cdefs.h>
@@ -50,7 +50,7 @@
 /**
  * Magic version number for an Android OS build which has not yet turned
  * into an official release, for comparison against `__ANDROID_API__`. See
- * https://android.googlesource.com/platform/bionic/+/master/docs/defines.md.
+ * https://android.googlesource.com/platform/bionic/+/main/docs/defines.md.
  */
 #define __ANDROID_API_FUTURE__ 10000
 
@@ -91,7 +91,7 @@
  *
  * See android_get_device_api_level(),
  * android_get_application_target_sdk_version() and
- * https://android.googlesource.com/platform/bionic/+/master/docs/defines.md.
+ * https://android.googlesource.com/platform/bionic/+/main/docs/defines.md.
  */
 #define __ANDROID_API__ __ANDROID_API_FUTURE__
 #endif
@@ -168,7 +168,10 @@
  */
 #define __ANDROID_API_U__ 34
 
-/** Names the "V" API level (35), for comparison against `__ANDROID_API__`. */
+/**
+ * Names the Android 15 (aka "V" or "VanillaIceCream") API level (35),
+ * for comparison against `__ANDROID_API__`.
+ */
 #define __ANDROID_API_V__ 35
 
 /* This file is included in <features.h>, and might be used from .S files. */
@@ -186,7 +189,11 @@
  *
  * Available since API level 24.
  */
+
+#if __BIONIC_AVAILABILITY_GUARD(24)
 int android_get_application_target_sdk_version() __INTRODUCED_IN(24);
+#endif /* __BIONIC_AVAILABILITY_GUARD(24) */
+
 
 #if __ANDROID_API__ < 29
 
diff --git a/libc/include/android/crash_detail.h b/libc/include/android/crash_detail.h
new file mode 100644
index 0000000..fd1312a
--- /dev/null
+++ b/libc/include/android/crash_detail.h
@@ -0,0 +1,131 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *  * Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *  * Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in
+ *    the documentation and/or other materials provided with the
+ *    distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#pragma once
+
+/**
+ * @file android/crash_detail.h
+ * @brief Attach extra information to android crashes.
+ */
+
+#include <sys/cdefs.h>
+
+#include <stddef.h>
+
+__BEGIN_DECLS
+
+typedef struct crash_detail_t crash_detail_t;
+
+/**
+ * Register a new buffer to get logged into tombstones for crashes.
+ *
+ * It will be added to both the tombstone proto in the crash_detail field, and
+ * in the tombstone text format.
+ *
+ * Tombstone proto definition:
+ *   https://cs.android.com/android/platform/superproject/main/+/main:system/core/debuggerd/proto/tombstone.proto
+ *
+ * An app can get hold of these for any `REASON_CRASH_NATIVE` instance of
+ * `android.app.ApplicationExitInfo`.
+ *
+ * https://developer.android.com/reference/android/app/ApplicationExitInfo#getTraceInputStream()
+
+ * The lifetime of name and data has to be valid until the program crashes, or until
+ * android_crash_detail_unregister is called.
+ *
+ * Example usage:
+ *   const char* stageName = "garbage_collection";
+ *   crash_detail_t* cd = android_crash_detail_register("stage", stageName, strlen(stageName));
+ *   do_garbage_collection();
+ *   android_crash_detail_unregister(cd);
+ *
+ * If this example crashes in do_garbage_collection, a line will show up in the textual representation of the tombstone:
+ *   Extra crash detail: stage: 'garbage_collection'
+ *
+ * Introduced in API 35.
+ *
+ * \param name identifying name for this extra data.
+ *             this should generally be a human-readable UTF-8 string, but we are treating
+ *             it as arbitrary bytes because it could be corrupted by the crash.
+ * \param name_size number of bytes of the buffer pointed to by name
+ * \param data a buffer containing the extra detail bytes, if null the crash detail
+ *             is disabled until android_crash_detail_replace_data replaces it with
+ *             a non-null pointer.
+ * \param data_size number of bytes of the buffer pointed to by data
+ *
+ * \return a handle to the extra crash detail.
+ */
+
+#if __BIONIC_AVAILABILITY_GUARD(35)
+crash_detail_t* _Nullable android_crash_detail_register(
+    const void* _Nonnull name, size_t name_size, const void* _Nullable data, size_t data_size) __INTRODUCED_IN(35);
+
+/**
+ * Unregister crash detail from being logged into tombstones.
+ *
+ * After this function returns, the lifetime of the objects crash_detail was
+ * constructed from no longer needs to be valid.
+ *
+ * Introduced in API 35.
+ *
+ * \param crash_detail the crash_detail that should be removed.
+ */
+void android_crash_detail_unregister(crash_detail_t* _Nonnull crash_detail) __INTRODUCED_IN(35);
+
+/**
+ * Replace data of crash detail.
+ *
+ * This is more efficient than using android_crash_detail_unregister followed by
+ * android_crash_detail_register. If you very frequently need to swap out the data,
+ * you can hold onto the crash_detail.
+ *
+ * Introduced in API 35.
+ *
+ * \param data the new buffer containing the extra detail bytes, or null to disable until
+ *             android_crash_detail_replace_data is called again with non-null data.
+ * \param data_size the number of bytes of the buffer pointed to by data.
+ */
+void android_crash_detail_replace_data(crash_detail_t* _Nonnull crash_detail, const void* _Nullable data, size_t data_size) __INTRODUCED_IN(35);
+
+/**
+ * Replace name of crash detail.
+ *
+ * This is more efficient than using android_crash_detail_unregister followed by
+ * android_crash_detail_register. If you very frequently need to swap out the name,
+ * you can hold onto the crash_detail.
+ *
+ * Introduced in API 35.
+ *
+ * \param name identifying name for this extra data.
+ * \param name_size number of bytes of the buffer pointed to by name
+ */
+void android_crash_detail_replace_name(crash_detail_t* _Nonnull crash_detail, const void* _Nonnull name, size_t name_size) __INTRODUCED_IN(35);
+#endif /* __BIONIC_AVAILABILITY_GUARD(35) */
+
+
+__END_DECLS
diff --git a/libc/include/android/dlext.h b/libc/include/android/dlext.h
index f216aab..d8d2752 100644
--- a/libc/include/android/dlext.h
+++ b/libc/include/android/dlext.h
@@ -14,13 +14,13 @@
  * limitations under the License.
  */
 
-#ifndef __ANDROID_DLEXT_H__
-#define __ANDROID_DLEXT_H__
+#pragma once
+
+#include <sys/cdefs.h>
 
 #include <stdbool.h>
 #include <stddef.h>
 #include <stdint.h>
-#include <sys/cdefs.h>
 #include <sys/types.h>  /* for off64_t */
 
 /**
@@ -31,7 +31,7 @@
 /**
  * \file
  * Advanced dynamic library opening support. Most users will want to use
- * the standard [dlopen(3)](http://man7.org/linux/man-pages/man3/dlopen.3.html)
+ * the standard [dlopen(3)](https://man7.org/linux/man-pages/man3/dlopen.3.html)
  * functionality in `<dlfcn.h>` instead.
  */
 
@@ -101,7 +101,7 @@
   ANDROID_DLEXT_FORCE_LOAD = 0x40,
 
   // Historically we had two other options for ART.
-  // They were last available in Android P.
+  // They were last available in API level 28.
   // Reuse these bits last!
   // ANDROID_DLEXT_FORCE_FIXED_VADDR = 0x80
   // ANDROID_DLEXT_LOAD_AT_FIXED_ADDRESS = 0x100
@@ -115,7 +115,7 @@
   ANDROID_DLEXT_USE_NAMESPACE = 0x200,
 
   /**
-   * Instructs dlopen to apply `ANDROID_DLEXT_RESERVED_ADDRESS`,
+   * Instructs dlopen() to apply `ANDROID_DLEXT_RESERVED_ADDRESS`,
    * `ANDROID_DLEXT_RESERVED_ADDRESS_HINT`, `ANDROID_DLEXT_WRITE_RELRO` and
    * `ANDROID_DLEXT_USE_RELRO` to any libraries loaded as dependencies of the
    * main library as well.
@@ -151,7 +151,7 @@
 
 struct android_namespace_t;
 
-/** Used to pass Android-specific arguments to `android_dlopen_ext`. */
+/** Used to pass Android-specific arguments to android_dlopen_ext(). */
 typedef struct {
   /** A bitmask of `ANDROID_DLEXT_` enum values. */
   uint64_t flags;
@@ -175,16 +175,11 @@
 
 /**
  * Opens the given library. The `__filename` and `__flags` arguments are
- * the same as for [dlopen(3)](http://man7.org/linux/man-pages/man3/dlopen.3.html),
+ * the same as for [dlopen(3)](https://man7.org/linux/man-pages/man3/dlopen.3.html),
  * with the Android-specific flags supplied via the `flags` member of `__info`.
- *
- * Available since API level 21.
  */
-void* _Nullable android_dlopen_ext(const char* _Nullable __filename, int __flags, const android_dlextinfo* _Nullable __info)
-  __INTRODUCED_IN(21);
+void* _Nullable android_dlopen_ext(const char* _Nullable __filename, int __flags, const android_dlextinfo* _Nullable __info);
 
 __END_DECLS
 
 /** @} */
-
-#endif
diff --git a/libc/include/android/fdsan.h b/libc/include/android/fdsan.h
index 3de0649..a04fc7e 100644
--- a/libc/include/android/fdsan.h
+++ b/libc/include/android/fdsan.h
@@ -28,9 +28,10 @@
 
 #pragma once
 
+#include <sys/cdefs.h>
+
 #include <stdbool.h>
 #include <stdint.h>
-#include <sys/cdefs.h>
 
 __BEGIN_DECLS
 
@@ -126,11 +127,16 @@
 
   /* native_handle_t */
   ANDROID_FDSAN_OWNER_TYPE_NATIVE_HANDLE = 13,
+
+  /* android::Parcel */
+  ANDROID_FDSAN_OWNER_TYPE_PARCEL = 14,
 };
 
 /*
  * Create an owner tag with the specified type and least significant 56 bits of tag.
  */
+
+#if __BIONIC_AVAILABILITY_GUARD(29)
 uint64_t android_fdsan_create_owner_tag(enum android_fdsan_owner_type type, uint64_t tag) __INTRODUCED_IN(29) __attribute__((__weak__));
 
 /*
@@ -165,6 +171,8 @@
  * Get an owner tag's value, with the type masked off.
  */
 uint64_t android_fdsan_get_tag_value(uint64_t tag) __INTRODUCED_IN(29);
+#endif /* __BIONIC_AVAILABILITY_GUARD(29) */
+
 
 enum android_fdsan_error_level {
   // No errors.
@@ -183,6 +191,8 @@
 /*
  * Get the error level.
  */
+
+#if __BIONIC_AVAILABILITY_GUARD(29)
 enum android_fdsan_error_level android_fdsan_get_error_level() __INTRODUCED_IN(29) __attribute__((__weak__));
 
 /*
@@ -200,9 +210,15 @@
  * (e.g. postfork).
  */
 enum android_fdsan_error_level android_fdsan_set_error_level(enum android_fdsan_error_level new_level) __INTRODUCED_IN(29) __attribute__((__weak__));
+#endif /* __BIONIC_AVAILABILITY_GUARD(29) */
+
 
 /*
  * Set the error level to the global setting if available, or a default value.
  */
+
+#if __BIONIC_AVAILABILITY_GUARD(30)
 enum android_fdsan_error_level android_fdsan_set_error_level_from_property(enum android_fdsan_error_level default_level) __INTRODUCED_IN(30) __attribute__((__weak__));
+#endif /* __BIONIC_AVAILABILITY_GUARD(30) */
+
 __END_DECLS
diff --git a/libc/include/android/legacy_stdlib_inlines.h b/libc/include/android/legacy_stdlib_inlines.h
index f0985fe..d228e67 100644
--- a/libc/include/android/legacy_stdlib_inlines.h
+++ b/libc/include/android/legacy_stdlib_inlines.h
@@ -30,26 +30,9 @@
 
 #include <sys/cdefs.h>
 
-
 #if __ANDROID_API__ < 26
 
-#include <stdlib.h>
-#include <xlocale.h>
-
-__BEGIN_DECLS
-
-static __inline double strtod_l(const char* _Nonnull __s, char* _Nullable * _Nullable __end_ptr, locale_t _Nonnull __l) {
-  return strtod(__s, __end_ptr);
-}
-
-static __inline float strtof_l(const char* _Nonnull __s, char* _Nullable * _Nullable __end_ptr, locale_t _Nonnull __l) {
-  return strtof(__s, __end_ptr);
-}
-
-static __inline long strtol_l(const char* _Nonnull __s, char* _Nullable * _Nullable __end_ptr, int __base, locale_t _Nonnull __l) {
-  return strtol(__s, __end_ptr, __base);
-}
-
-__END_DECLS
+#define __BIONIC_THREADS_INLINE static __inline
+#include <bits/stdlib_inlines.h>
 
 #endif
diff --git a/libc/include/android/legacy_termios_inlines.h b/libc/include/android/legacy_termios_inlines.h
index 6222786..a816b40 100644
--- a/libc/include/android/legacy_termios_inlines.h
+++ b/libc/include/android/legacy_termios_inlines.h
@@ -43,3 +43,10 @@
 #include <bits/termios_inlines.h>
 
 #endif
+
+#if __ANDROID_API__ < 35
+
+#define __BIONIC_TERMIOS_WINSIZE_INLINE static __inline
+#include <bits/termios_winsize_inlines.h>
+
+#endif
diff --git a/libc/include/android/set_abort_message.h b/libc/include/android/set_abort_message.h
index 2be01a9..6ad5678 100644
--- a/libc/include/android/set_abort_message.h
+++ b/libc/include/android/set_abort_message.h
@@ -35,17 +35,40 @@
 
 #include <sys/cdefs.h>
 
+#include <stddef.h>
+#include <stdint.h>
+#include <string.h>
+
 __BEGIN_DECLS
 
+typedef struct crash_detail_t crash_detail_t;
+
 /**
- * android_set_abort_message() sets the abort message that will be shown
- * by [debuggerd](https://source.android.com/devices/tech/debug/native-crash).
+ * android_set_abort_message() sets the abort message passed to
+ * [debuggerd](https://source.android.com/devices/tech/debug/native-crash)
+ * for inclusion in any crash.
+ *
  * This is meant for use by libraries that deliberately abort so that they can
  * provide an explanation. It is used within bionic to implement assert() and
- * all FORTIFY/fdsan aborts.
+ * all FORTIFY and fdsan failures.
  *
- * Available since API level 21.
+ * The message appears directly in logcat at the time of crash. It will
+ * also be added to both the tombstone proto in the crash_detail field, and
+ * in the tombstone text format.
+ *
+ * Tombstone proto definition:
+ *   https://cs.android.com/android/platform/superproject/main/+/main:system/core/debuggerd/proto/tombstone.proto
+ *
+ * An app can get hold of these for any `REASON_CRASH_NATIVE` instance of
+ * `android.app.ApplicationExitInfo`.
+ *  https://developer.android.com/reference/android/app/ApplicationExitInfo#getTraceInputStream()
+ *
+ * The given message is copied at the time this function is called, and does
+ * not need to be valid until the crash actually happens, but typically this
+ * function is called immediately before aborting. See <android/crash_detail.h>
+ * for API more suited to the use case where the caller doesn't _expect_ a
+ * crash but would like to see the information _if_ a crash happens.
  */
-void android_set_abort_message(const char* _Nullable __msg) __INTRODUCED_IN(21);
+void android_set_abort_message(const char* _Nullable __msg);
 
 __END_DECLS
diff --git a/libc/include/android/versioning.h b/libc/include/android/versioning.h
index efe4354..1cf6e51 100644
--- a/libc/include/android/versioning.h
+++ b/libc/include/android/versioning.h
@@ -16,52 +16,56 @@
 
 #pragma once
 
-// The `annotate` attribute always pulls the annotated (inline) function into the object files, thus
-// we should only annotate headers when we are running versioner.
-#if defined(__BIONIC_VERSIONER)
-
-#define __INTRODUCED_IN(api_level) __attribute__((annotate("introduced_in=" #api_level)))
-#define __INTRODUCED_IN_NO_GUARD_FOR_NDK(api_level) __attribute__((annotate("introduced_in=" #api_level))) __VERSIONER_NO_GUARD
-#define __DEPRECATED_IN(api_level) __attribute__((annotate("deprecated_in=" #api_level)))
-#define __REMOVED_IN(api_level) __attribute__((annotate("obsoleted_in=" #api_level)))
-#define __INTRODUCED_IN_32(api_level) __attribute__((annotate("introduced_in_32=" #api_level)))
-#define __INTRODUCED_IN_64(api_level) __attribute__((annotate("introduced_in_64=" #api_level)))
-#define __INTRODUCED_IN_ARM(api_level) __attribute__((annotate("introduced_in_arm=" #api_level)))
-#define __INTRODUCED_IN_X86(api_level) __attribute__((annotate("introduced_in_x86=" #api_level)))
-#define __INTRODUCED_IN_X86_NO_GUARD_FOR_NDK(api_level) __attribute__((annotate("introduced_in_x86=" #api_level))) __VERSIONER_NO_GUARD
-
-#define __VERSIONER_NO_GUARD __attribute__((annotate("versioner_no_guard")))
-#define __VERSIONER_FORTIFY_INLINE __attribute__((annotate("versioner_fortify_inline")))
-
-#else
-
-// When headers are not processed by the versioner (i.e. compiled into object files),
-// the availability attributed is emitted instead. The clang compiler will make the symbol weak
-// when targeting old api_level and enforce the reference to the symbol to be guarded with
-// __builtin_available(android api_level, *).
-
-// The 'strict' flag is required for NDK clients where the use of "-Wunguarded-availability" cannot
-// be enforced. In the case, the absence of 'strict' makes it possible to call an unavailable API
-// without the __builtin_available check, which will cause a link error at runtime.
-// Android platform build system defines this macro along with -Wunguarded-availability
-//
-// The _NO_GUARD_FOR_NDK variants keep the __VERSIONER_NO_GUARD behavior working for the NDK. This
-// allows libc++ to refer to these functions in inlines without needing to guard them, needed since
-// libc++ doesn't currently guard these calls. There's no risk to the apps though because using
-// those APIs will still cause a link error.
+/**
+ * @def __ANDROID_UNAVAILABLE_SYMBOLS_ARE_WEAK__
+ *
+ * Controls whether calling APIs newer than the developer's minSdkVersion are a
+ * build error (when not defined) or allowed as a weak reference with a
+ * __builtin_available() guard (when defined).
+ *
+ * See https://developer.android.com/ndk/guides/using-newer-apis for more
+ * details.
+ */
 #if defined(__ANDROID_UNAVAILABLE_SYMBOLS_ARE_WEAK__)
-#define __BIONIC_AVAILABILITY(__what) __attribute__((__availability__(android,__what)))
-#define __INTRODUCED_IN_NO_GUARD_FOR_NDK(api_level) __INTRODUCED_IN(api_level)
-#define __INTRODUCED_IN_X86_NO_GUARD_FOR_NDK(api_level) __INTRODUCED_IN_X86(api_level)
+// In this mode, Clang will emit weak references to the APIs if the
+// minSdkVersion is less than the __what argument. This allows the libraries to
+// load even on systems too old to contain the API, but calls must be guarded
+// with `__builtin_available(android api_level, *)` to avoid segfaults.
+#define __BIONIC_AVAILABILITY(__what, ...) __attribute__((__availability__(android,__what __VA_OPT__(,) __VA_ARGS__)))
+
+// When the caller is using weak API references, we should expose the decls for
+// APIs which are not available in the caller's minSdkVersion, otherwise there's
+// no way to take advantage of the weak references.
+#define __BIONIC_AVAILABILITY_GUARD(api_level) 1
 #else
-#define __BIONIC_AVAILABILITY(__what) __attribute__((__availability__(android,strict,__what)))
-#define __INTRODUCED_IN_NO_GUARD_FOR_NDK(api_level)
-#define __INTRODUCED_IN_X86_NO_GUARD_FOR_NDK(api_level)
+// The 'strict' flag is required for NDK clients where the code was not written
+// to handle the case where the API was available at build-time but not at
+// run-time. Most 3p code ported to Android was not written to use
+// `__builtin_available()` for run-time availability checking, and so would not
+// compile in this mode (or worse, if the build doesn't use
+// -Werror=unguarded-availability, it would build but crash at runtime).
+#define __BIONIC_AVAILABILITY(__what, ...) __attribute__((__availability__(android,strict,__what __VA_OPT__(,) __VA_ARGS__)))
+
+// When the caller is using strict API references, we hide APIs which are not
+// available in the caller's minSdkVersion. This is a bionic-only deviation in
+// behavior from the rest of the NDK headers, but it's necessary to maintain
+// source compatibility with 3p libraries that either can't correctly detect API
+// availability (either incorrectly detecting as always-available or as
+// never-available, but neither is true), or define their own polyfills which
+// conflict with our declarations.
+//
+// https://github.com/android/ndk/issues/2081
+#define __BIONIC_AVAILABILITY_GUARD(api_level) (__ANDROID_MIN_SDK_VERSION__ >= (api_level))
 #endif
 
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wc23-extensions"
+// Passing no argument for the '...' parameter of a variadic macro is a C23 extension
 #define __INTRODUCED_IN(api_level) __BIONIC_AVAILABILITY(introduced=api_level)
-#define __DEPRECATED_IN(api_level) __BIONIC_AVAILABILITY(deprecated=api_level)
-#define __REMOVED_IN(api_level) __BIONIC_AVAILABILITY(obsoleted=api_level)
+#pragma clang diagnostic pop
+
+#define __DEPRECATED_IN(api_level, msg) __BIONIC_AVAILABILITY(deprecated=api_level, message=msg)
+#define __REMOVED_IN(api_level, msg) __BIONIC_AVAILABILITY(obsoleted=api_level, message=msg)
 
 // The same availability attribute can't be annotated multiple times. Therefore, the macros are
 // defined for the configuration that it is valid for so that declarations like the below doesn't
@@ -69,12 +73,6 @@
 //
 // void foo() __INTRODUCED_IN_32(30) __INTRODUCED_IN_64(31);
 //
-// This also takes the advantage of the fact that we never use bitness-specific macro with
-// arch-specific macro. In other words,
-//
-// void foo() __INTRODUCED_IN_ARM(30) __INTRODUCED_IN_64(31);
-//
-// hasn't been supported and won't be.
 #if !defined(__LP64__)
 #define __INTRODUCED_IN_32(api_level) __BIONIC_AVAILABILITY(introduced=api_level)
 #define __INTRODUCED_IN_64(api_level)
@@ -82,19 +80,3 @@
 #define __INTRODUCED_IN_32(api_level)
 #define __INTRODUCED_IN_64(api_level) __BIONIC_AVAILABILITY(introduced=api_level)
 #endif
-
-#if defined(__arm__) || defined(__aarch64__)
-#define __INTRODUCED_IN_ARM(api_level) __BIONIC_AVAILABILITY(introduced=api_level)
-#define __INTRODUCED_IN_X86(api_level)
-#elif defined(__i386__) || defined(__x86_64__)
-#define __INTRODUCED_IN_ARM(api_level)
-#define __INTRODUCED_IN_X86(api_level) __BIONIC_AVAILABILITY(introduced=api_level)
-#else
-#define __INTRODUCED_IN_ARM(api_level)
-#define __INTRODUCED_IN_X86(api_level)
-#endif
-
-#define __VERSIONER_NO_GUARD
-#define __VERSIONER_FORTIFY_INLINE
-
-#endif  // defined(__BIONIC_VERSIONER)
diff --git a/libc/include/arpa/ftp.h b/libc/include/arpa/ftp.h
index 081c037..fecbf7f 100644
--- a/libc/include/arpa/ftp.h
+++ b/libc/include/arpa/ftp.h
@@ -34,6 +34,8 @@
 #ifndef _ARPA_FTP_H_
 #define	_ARPA_FTP_H_
 
+#include <sys/cdefs.h>
+
 /* Definitions for FTP; see RFC-765. */
 
 /*
diff --git a/libc/include/arpa/inet.h b/libc/include/arpa/inet.h
index db054c9..ce9dd93 100644
--- a/libc/include/arpa/inet.h
+++ b/libc/include/arpa/inet.h
@@ -29,24 +29,25 @@
 #ifndef _ARPA_INET_H_
 #define _ARPA_INET_H_
 
+#include <sys/cdefs.h>
+
 #include <netinet/in.h>
 #include <stdint.h>
-#include <sys/cdefs.h>
 #include <sys/types.h>
 
 __BEGIN_DECLS
 
-in_addr_t inet_addr(const char* __s);
-int inet_aton(const char* __s, struct in_addr* __addr);
-in_addr_t inet_lnaof(struct in_addr __addr) __INTRODUCED_IN(21);
-struct in_addr inet_makeaddr(in_addr_t __net, in_addr_t __host) __INTRODUCED_IN(21);
-in_addr_t inet_netof(struct in_addr __addr) __INTRODUCED_IN(21);
-in_addr_t inet_network(const char* __s) __INTRODUCED_IN(21);
-char* inet_ntoa(struct in_addr __addr);
-const char* inet_ntop(int __af, const void* __src, char* __dst, socklen_t __size);
-unsigned int inet_nsap_addr(const char* __ascii, unsigned char* __binary, int __n);
-char* inet_nsap_ntoa(int __binary_length, const unsigned char* __binary, char* __ascii);
-int inet_pton(int __af, const char* __src, void* __dst);
+in_addr_t inet_addr(const char* _Nonnull __s);
+int inet_aton(const char* _Nonnull __s, struct in_addr* _Nullable __addr);
+in_addr_t inet_lnaof(struct in_addr __addr);
+struct in_addr inet_makeaddr(in_addr_t __net, in_addr_t __host);
+in_addr_t inet_netof(struct in_addr __addr);
+in_addr_t inet_network(const char* _Nonnull __s);
+char* _Nonnull inet_ntoa(struct in_addr __addr);
+const char* _Nullable inet_ntop(int __af, const void* _Nonnull __src, char* _Nonnull __dst, socklen_t __size);
+unsigned int inet_nsap_addr(const char* _Nonnull __ascii, unsigned char* _Nonnull __binary, int __n);
+char* _Nonnull inet_nsap_ntoa(int __binary_length, const unsigned char* _Nonnull __binary, char* _Nullable __ascii);
+int inet_pton(int __af, const char* _Nonnull __src, void* _Nonnull __dst);
 
 __END_DECLS
 
diff --git a/libc/include/arpa/nameser.h b/libc/include/arpa/nameser.h
index 89ece1c..3e0025e 100644
--- a/libc/include/arpa/nameser.h
+++ b/libc/include/arpa/nameser.h
@@ -55,9 +55,10 @@
 
 #define BIND_4_COMPAT
 
-#include <sys/types.h>
 #include <sys/cdefs.h>
 
+#include <sys/types.h>
+
 /*
  * Revision information.  This is the release date in YYYYMMDD format.
  * It can change every day so the right thing to do with it is use it
@@ -113,6 +114,8 @@
 typedef const u_char *ns_nname_ct;
 typedef u_char *ns_nname_t;
 
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wnullability-completeness"
 struct ns_namemap { ns_nname_ct base; int len; };
 typedef struct ns_namemap *ns_namemap_t;
 typedef const struct ns_namemap *ns_namemap_ct;
@@ -269,6 +272,8 @@
 };
 typedef struct ns_tcp_tsig_state ns_tcp_tsig_state;
 
+#pragma clang diagnostic pop
+
 #define NS_TSIG_FUDGE 300
 #define NS_TSIG_TCP_COUNT 100
 #define NS_TSIG_ALG_HMAC_MD5 "HMAC-MD5.SIG-ALG.REG.INT"
@@ -519,102 +524,57 @@
 
 #if !defined(__LP64__)
 /* Annoyingly, LP32 shipped with __ names. */
-#define	ns_msg_getflag		__ns_msg_getflag
-#define ns_get16		__ns_get16
-#define ns_get32		__ns_get32
-#define ns_put16		__ns_put16
-#define ns_put32		__ns_put32
-#define ns_initparse		__ns_initparse
-#define ns_skiprr		__ns_skiprr
-#define ns_parserr		__ns_parserr
-#define ns_parserr2		__ns_parserr2
-#define	ns_sprintrr		__ns_sprintrr
-#define	ns_sprintrrf		__ns_sprintrrf
-#define	ns_format_ttl		__ns_format_ttl
-#define	ns_parse_ttl		__ns_parse_ttl
-#define ns_datetosecs		__ns_datetosecs
-#define	ns_name_ntol		__ns_name_ntol
-#define	ns_name_ntop		__ns_name_ntop
-#define	ns_name_pton		__ns_name_pton
-#define	ns_name_pton2		__ns_name_pton2
-#define	ns_name_unpack		__ns_name_unpack
-#define	ns_name_unpack2		__ns_name_unpack2
-#define	ns_name_pack		__ns_name_pack
-#define	ns_name_compress	__ns_name_compress
-#define	ns_name_uncompress	__ns_name_uncompress
-#define	ns_name_skip		__ns_name_skip
-#define	ns_name_rollback	__ns_name_rollback
-#define	ns_name_length		__ns_name_length
-#define	ns_name_eq		__ns_name_eq
-#define	ns_name_owned		__ns_name_owned
-#define	ns_name_map		__ns_name_map
-#define	ns_name_labels		__ns_name_labels
-#define	ns_sign			__ns_sign
-#define	ns_sign2		__ns_sign2
-#define	ns_sign_tcp		__ns_sign_tcp
-#define	ns_sign_tcp2		__ns_sign_tcp2
-#define	ns_sign_tcp_init	__ns_sign_tcp_init
-#define ns_find_tsig		__ns_find_tsig
-#define	ns_verify		__ns_verify
-#define	ns_verify_tcp		__ns_verify_tcp
-#define	ns_verify_tcp_init	__ns_verify_tcp_init
-#define	ns_samedomain		__ns_samedomain
-#define	ns_subdomain		__ns_subdomain
-#define	ns_makecanon		__ns_makecanon
-#define	ns_samename		__ns_samename
+#define ns_format_ttl __ns_format_ttl
+#define ns_get16 __ns_get16
+#define ns_get32 __ns_get32
+#define ns_initparse __ns_initparse
+#define ns_makecanon __ns_makecanon
+#define ns_msg_getflag __ns_msg_getflag
+#define ns_name_compress __ns_name_compress
+#define ns_name_ntol __ns_name_ntol
+#define ns_name_ntop __ns_name_ntop
+#define ns_name_pack __ns_name_pack
+#define ns_name_pton __ns_name_pton
+#define ns_name_rollback __ns_name_rollback
+#define ns_name_skip __ns_name_skip
+#define ns_name_uncompress __ns_name_uncompress
+#define ns_name_unpack __ns_name_unpack
+#define ns_parserr __ns_parserr
+#define ns_put16 __ns_put16
+#define ns_put32 __ns_put32
+#define ns_samename __ns_samename
+#define ns_skiprr __ns_skiprr
+#define ns_sprintrr __ns_sprintrr
+#define ns_sprintrrf __ns_sprintrrf
+#endif
 
-int ns_msg_getflag(ns_msg __handle, int __flag);
-uint16_t ns_get16(const u_char* __src);
-uint32_t ns_get32(const u_char* __src);
-void ns_put16(uint16_t __src, u_char* __dst);
-void ns_put32(uint32_t __src, u_char* __dst);
-int ns_initparse(const u_char* __msg, int __msg_size, ns_msg* __handle);
-int ns_skiprr(const u_char* __ptr, const u_char* __eom, ns_sect __section, int __count);
-int ns_parserr(ns_msg* __handle, ns_sect __section, int __rr_number, ns_rr* __rr);
-int ns_sprintrr(const ns_msg* __handle, const ns_rr* __rr, const char* __name_ctx, const char* __origin, char* __buf, size_t __buf_size);
-int ns_sprintrrf(const u_char* __msg, size_t __msg_size, const char* __name, ns_class __class, ns_type __type, u_long __ttl, const u_char* __rdata, size_t __rdata_size, const char* __name_ctx, const char* __origin, char* __buf, size_t __buf_size);
-int ns_format_ttl(u_long __ttl, char* __dst, size_t __dst_size);
-int ns_name_ntol(const u_char* __src, u_char* __dst, size_t __dst_size);
-int ns_name_ntop(const u_char* __src, char* __dst, size_t __dst_size);
-int ns_name_pton(const char* __src, u_char* __dst, size_t __dst_size);
-int ns_name_unpack(const u_char* __msg, const u_char* __eom, const u_char* __src, u_char* __dst, size_t __dst_size);
-int ns_name_pack(const u_char* __src, u_char* __dst, int __dst_size, const u_char** __dn_ptrs, const u_char** __last_dn_ptr);
-int ns_name_uncompress(const u_char* __msg, const u_char* __eom, const u_char* __src, char* __dst, size_t __dst_size);
-int ns_name_compress(const char* __src, u_char* __dst, size_t __dst_size, const u_char** __dn_ptrs, const u_char** __last_dn_ptr);
-int ns_name_skip(const u_char** __ptr_ptr, const u_char* __eom);
-void ns_name_rollback(const u_char* __src, const u_char** __dn_ptrs, const u_char** __last_dn_ptr);
 
-int ns_makecanon(const char* __src, char* __dst, size_t __dst_size);
-int ns_samename(const char* __lhs, const char* __rhs);
+#if __BIONIC_AVAILABILITY_GUARD(22)
+int ns_msg_getflag(ns_msg __handle, int __flag) __INTRODUCED_IN(22);
+uint16_t ns_get16(const u_char* _Nonnull __src) __INTRODUCED_IN(22);
+uint32_t ns_get32(const u_char* _Nonnull __src) __INTRODUCED_IN(22);
+void ns_put16(uint16_t __src, u_char* _Nonnull __dst) __INTRODUCED_IN(22);
+void ns_put32(uint32_t __src, u_char* _Nonnull __dst) __INTRODUCED_IN(22);
+int ns_initparse(const u_char* _Nonnull __msg, int __msg_size, ns_msg* _Nonnull __handle) __INTRODUCED_IN(22);
+int ns_skiprr(const u_char* _Nonnull __ptr, const u_char* _Nonnull __eom, ns_sect __section, int __count) __INTRODUCED_IN(22);
+int ns_parserr(ns_msg* _Nonnull __handle, ns_sect __section, int __rr_number, ns_rr* _Nonnull __rr) __INTRODUCED_IN(22);
+int ns_sprintrr(const ns_msg* _Nonnull  __handle, const ns_rr* _Nonnull __rr, const char* _Nullable __name_ctx, const char* _Nullable __origin, char* _Nonnull __buf, size_t __buf_size) __INTRODUCED_IN(22);
+int ns_sprintrrf(const u_char* _Nonnull __msg, size_t __msg_size, const char* _Nonnull __name, ns_class __class, ns_type __type, u_long __ttl, const u_char* _Nonnull __rdata, size_t __rdata_size, const char* _Nullable __name_ctx, const char* _Nullable __origin, char* _Nonnull __buf, size_t __buf_size) __INTRODUCED_IN(22);
+int ns_format_ttl(u_long __ttl, char* _Nonnull __dst, size_t __dst_size) __INTRODUCED_IN(22);
+int ns_name_ntol(const u_char* _Nonnull __src, u_char* _Nonnull __dst, size_t __dst_size) __INTRODUCED_IN(22);
+int ns_name_ntop(const u_char* _Nonnull __src, char* _Nonnull __dst, size_t __dst_size) __INTRODUCED_IN(22);
+int ns_name_pton(const char* _Nonnull __src, u_char* _Nonnull __dst, size_t __dst_size) __INTRODUCED_IN(22);
+int ns_name_unpack(const u_char* _Nonnull __msg, const u_char* _Nonnull __eom, const u_char* _Nonnull __src, u_char* _Nonnull __dst, size_t __dst_size) __INTRODUCED_IN(22);
+int ns_name_pack(const u_char* _Nonnull __src, u_char* _Nonnull __dst, int __dst_size, const u_char* _Nullable * _Nullable __dn_ptrs, const u_char* _Nullable * _Nullable __last_dn_ptr) __INTRODUCED_IN(22);
+int ns_name_uncompress(const u_char* _Nonnull __msg, const u_char* _Nonnull __eom, const u_char* _Nonnull __src, char* _Nonnull __dst, size_t __dst_size) __INTRODUCED_IN(22);
+int ns_name_compress(const char* _Nonnull __src, u_char* _Nonnull __dst, size_t __dst_size, const u_char* _Nullable * _Nullable __dn_ptrs, const u_char* _Nullable * _Nullable __last_dn_ptr) __INTRODUCED_IN(22);
+int ns_name_skip(const u_char* _Nullable * _Nonnull __ptr_ptr, const u_char* _Nonnull __eom) __INTRODUCED_IN(22);
+void ns_name_rollback(const u_char* _Nonnull __src, const u_char* _Nullable * _Nonnull __dn_ptrs, const u_char* _Nullable * _Nonnull __last_dn_ptr) __INTRODUCED_IN(22);
 
-#else
-/* The names of these symbols were accidentally prefixed with __ in L. */
-/* The duplication here is intentional to avoid declaring different symbols with the same
- * declaration. */
-int ns_msg_getflag(ns_msg __handle, int __flag) __INTRODUCED_IN_64(22);
-uint16_t ns_get16(const u_char* __src) __INTRODUCED_IN_64(22);
-uint32_t ns_get32(const u_char* __src) __INTRODUCED_IN_64(22);
-void ns_put16(uint16_t __src, u_char* __dst) __INTRODUCED_IN_64(22);
-void ns_put32(uint32_t __src, u_char* __dst) __INTRODUCED_IN_64(22);
-int ns_initparse(const u_char* __msg, int __msg_size, ns_msg* __handle) __INTRODUCED_IN_64(22);
-int ns_skiprr(const u_char* __ptr, const u_char* __eom, ns_sect __section, int __count) __INTRODUCED_IN_64(22);
-int ns_parserr(ns_msg* __handle, ns_sect __section, int __rr_number, ns_rr* __rr) __INTRODUCED_IN_64(22);
-int ns_sprintrr(const ns_msg* __handle, const ns_rr* __rr, const char* __name_ctx, const char* __origin, char* __buf, size_t __buf_size) __INTRODUCED_IN_64(22);
-int ns_sprintrrf(const u_char* __msg, size_t __msg_size, const char* __name, ns_class __class, ns_type __type, u_long __ttl, const u_char* __rdata, size_t __rdata_size, const char* __name_ctx, const char* __origin, char* __buf, size_t __buf_size) __INTRODUCED_IN_64(22);
-int ns_format_ttl(u_long __ttl, char* __dst, size_t __dst_size) __INTRODUCED_IN_64(22);
-int ns_name_ntol(const u_char* __src, u_char* __dst, size_t __dst_size) __INTRODUCED_IN_64(22);
-int ns_name_ntop(const u_char* __src, char* __dst, size_t __dst_size) __INTRODUCED_IN_64(22);
-int ns_name_pton(const char* __src, u_char* __dst, size_t __dst_size) __INTRODUCED_IN_64(22);
-int ns_name_unpack(const u_char* __msg, const u_char* __eom, const u_char* __src, u_char* __dst, size_t __dst_size) __INTRODUCED_IN_64(22);
-int ns_name_pack(const u_char* __src, u_char* __dst, int __dst_size, const u_char** __dn_ptrs, const u_char** __last_dn_ptr) __INTRODUCED_IN_64(22);
-int ns_name_uncompress(const u_char* __msg, const u_char* __eom, const u_char* __src, char* __dst, size_t __dst_size) __INTRODUCED_IN_64(22);
-int ns_name_compress(const char* __src, u_char* __dst, size_t __dst_size, const u_char** __dn_ptrs, const u_char** __last_dn_ptr) __INTRODUCED_IN_64(22);
-int ns_name_skip(const u_char** __ptr_ptr, const u_char* __eom) __INTRODUCED_IN_64(22);
-void ns_name_rollback(const u_char* __src, const u_char** __dn_ptrs, const u_char** __last_dn_ptr) __INTRODUCED_IN_64(22);
+int ns_makecanon(const char* _Nonnull __src, char* _Nonnull __dst, size_t __dst_size) __INTRODUCED_IN(22);
+int ns_samename(const char* _Nonnull __lhs, const char* _Nonnull __rhs) __INTRODUCED_IN(22);
+#endif /* __BIONIC_AVAILABILITY_GUARD(22) */
 
-int ns_makecanon(const char* __src, char* __dst, size_t __dst_size) __INTRODUCED_IN_64(22);
-int ns_samename(const char* __lhs, const char* __rhs) __INTRODUCED_IN_64(22);
-#endif /* !defined(__LP64__) */
 
 __END_DECLS
 
diff --git a/libc/include/arpa/nameser_compat.h b/libc/include/arpa/nameser_compat.h
index e4e9335..027e5ca 100644
--- a/libc/include/arpa/nameser_compat.h
+++ b/libc/include/arpa/nameser_compat.h
@@ -40,9 +40,10 @@
 #ifndef _ARPA_NAMESER_COMPAT_
 #define	_ARPA_NAMESER_COMPAT_
 
-#include <endian.h>
 #include <sys/cdefs.h>
 
+#include <endian.h>
+
 #define	__BIND		19950621	/* (DEAD) interface version stamp. */
 
 /*
diff --git a/libc/include/arpa/telnet.h b/libc/include/arpa/telnet.h
index 758e9b8..30d8f21 100644
--- a/libc/include/arpa/telnet.h
+++ b/libc/include/arpa/telnet.h
@@ -33,6 +33,8 @@
 #ifndef _ARPA_TELNET_H_
 #define	_ARPA_TELNET_H_
 
+#include <sys/cdefs.h>
+
 /*
  * Definitions for the TELNET protocol.
  */
diff --git a/libc/include/assert.h b/libc/include/assert.h
index 8db970b..750d12e 100644
--- a/libc/include/assert.h
+++ b/libc/include/assert.h
@@ -64,7 +64,8 @@
 # endif
 #endif
 
-#if !defined(__cplusplus) && __STDC_VERSION__ >= 201112L
+/* `static_assert` is a keyword in C++11 and C23; C11 had `_Static_assert` instead. */
+#if !defined(__cplusplus) && (__STDC_VERSION__ >= 201112L && __STDC_VERSION__ < 202311L)
 # undef static_assert
 # define static_assert _Static_assert
 #endif
diff --git a/libc/include/bits/bionic_multibyte_result.h b/libc/include/bits/bionic_multibyte_result.h
new file mode 100644
index 0000000..930e67c
--- /dev/null
+++ b/libc/include/bits/bionic_multibyte_result.h
@@ -0,0 +1,69 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *  * Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *  * Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in
+ *    the documentation and/or other materials provided with the
+ *    distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#pragma once
+
+/**
+ * @file bits/bionic_multibyte_result.h
+ * @brief Named values for the magic number return values of multibyte
+ * conversion APIs defined by C.
+ */
+
+#include <sys/cdefs.h>
+
+#include <stddef.h>
+
+__BEGIN_DECLS
+
+/**
+ * @brief The error values defined by C for multibyte conversion APIs.
+ *
+ * Refer to C23 7.30.1 Restartable multibyte/wide character conversion functions
+ * for more details.
+ */
+enum : size_t {
+  /// @brief An encoding error occurred. The bytes read are not a valid unicode
+  /// character, nor are they a partially valid character.
+  BIONIC_MULTIBYTE_RESULT_ILLEGAL_SEQUENCE = -1UL,
+#define BIONIC_MULTIBYTE_RESULT_ILLEGAL_SEQUENCE BIONIC_MULTIBYTE_RESULT_ILLEGAL_SEQUENCE
+
+  /// @brief The bytes read may produce a valid unicode character, but the
+  /// sequence is incomplete. Future calls may complete the character.
+  BIONIC_MULTIBYTE_RESULT_INCOMPLETE_SEQUENCE = -2UL,
+#define BIONIC_MULTIBYTE_RESULT_INCOMPLETE_SEQUENCE BIONIC_MULTIBYTE_RESULT_INCOMPLETE_SEQUENCE
+
+  /// @brief The output of the call was the result of a previous successful
+  /// decoding. No new bytes were consumed.
+  ///
+  /// The common case for this return value is when mbrtoc16 returns the low
+  /// surrogate of a pair.
+  BIONIC_MULTIBYTE_RESULT_NO_BYTES_CONSUMED = -3UL,
+#define BIONIC_MULTIBYTE_RESULT_NO_BYTES_CONSUMED BIONIC_MULTIBYTE_RESULT_NO_BYTES_CONSUMED
+};
+
+__END_DECLS
diff --git a/libc/include/bits/ctype_inlines.h b/libc/include/bits/ctype_inlines.h
deleted file mode 100644
index 744eb91..0000000
--- a/libc/include/bits/ctype_inlines.h
+++ /dev/null
@@ -1,209 +0,0 @@
-/*
- * Copyright (C) 2014 The Android Open Source Project
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *  * Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- *  * Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in
- *    the documentation and/or other materials provided with the
- *    distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
- * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#pragma once
-
-#include <sys/cdefs.h>
-#include <xlocale.h>
-
-#if !defined(__BIONIC_CTYPE_INLINE)
-#define __BIONIC_CTYPE_INLINE static __inline
-#endif
-
-/** Internal implementation detail. Do not use. */
-#define _CTYPE_U 0x01
-/** Internal implementation detail. Do not use. */
-#define _CTYPE_L 0x02
-/** Internal implementation detail. Do not use. */
-#define _CTYPE_D 0x04
-/** Internal implementation detail. Do not use. */
-#define _CTYPE_S 0x08
-/** Internal implementation detail. Do not use. */
-#define _CTYPE_P 0x10
-/** Internal implementation detail. Do not use. */
-#define _CTYPE_C 0x20
-/** Internal implementation detail. Do not use. */
-#define _CTYPE_X 0x40
-/** Internal implementation detail. Do not use. */
-#define _CTYPE_B 0x80
-/** Internal implementation detail. Do not use. */
-#define _CTYPE_R (_CTYPE_P|_CTYPE_U|_CTYPE_L|_CTYPE_D|_CTYPE_B)
-/** Internal implementation detail. Do not use. */
-#define _CTYPE_A (_CTYPE_L|_CTYPE_U)
-/** Internal implementation detail. Do not use. */
-#define _CTYPE_N _CTYPE_D
-
-__BEGIN_DECLS
-
-/** Internal implementation detail. Do not use. */
-extern const char* _ctype_;
-
-/** Returns true if `ch` is in `[A-Za-z0-9]`. */
-__BIONIC_CTYPE_INLINE int isalnum(int __ch) {
-  // `isalnum(c)` is `isalpha(c) || isdigit(c)`, but there's no obvious way
-  // to simplify that, and the table lookup is just slightly faster...
-  // Note that this is unsafe for inputs less than -1 (EOF) or greater than
-  // 0xff. This is true of other C libraries too.
-  return (_ctype_[__ch + 1] & (_CTYPE_U|_CTYPE_L|_CTYPE_N));
-}
-
-/** Returns true if `ch` is in `[A-Za-z]`. */
-__BIONIC_CTYPE_INLINE int isalpha(int __ch) {
-  return (__ch >= 'A' && __ch <= 'Z') || (__ch >= 'a' && __ch <= 'z');
-}
-
-/** Returns true if `ch` is a space or tab. */
-__BIONIC_CTYPE_INLINE int isblank(int __ch) {
-  return __ch == ' ' || __ch == '\t';
-}
-
-/** Returns true if `ch` is a control character (any character before space, plus DEL). */
-__BIONIC_CTYPE_INLINE int iscntrl(int __ch) {
-  return (__BIONIC_CAST(static_cast, unsigned, __ch) < ' ') || __ch == 0x7f;
-}
-
-/** Returns true if `ch` is in `[0-9]`. */
-__BIONIC_CTYPE_INLINE int isdigit(int __ch) {
-  return (__ch >= '0' && __ch <= '9');
-}
-
-/** Returns true if `ch` is `[A-Za-z0-9]` or punctuation. */
-__BIONIC_CTYPE_INLINE int isgraph(int __ch) {
-  return (__ch >= '!' && __ch <= '~');
-}
-
-/** Returns true if `ch` is in `[a-z]`. */
-__BIONIC_CTYPE_INLINE int islower(int __ch) {
-  return (__ch >= 'a' && __ch <= 'z');
-}
-
-/** Returns true if `ch` is `[A-Za-z0-9]` or punctuation or space. */
-__BIONIC_CTYPE_INLINE int isprint(int __ch) {
-  return (__ch >= ' ' && __ch <= '~');
-}
-
-/** Returns true if `ch` is punctuation. */
-__BIONIC_CTYPE_INLINE int ispunct(int __ch) {
-  // `ispunct(c)` is `isgraph(c) && !isalnum(c)`, but there's no obvious way
-  // to simplify that, and the table lookup is just slightly faster...
-  // Note that this is unsafe for inputs less than -1 (EOF) or greater than
-  // 0xff. This is true of other C libraries too.
-  return (_ctype_[__ch + 1] & _CTYPE_P);
-}
-
-/** Returns true if `ch` is in `[ \f\n\r\t\v]`. */
-__BIONIC_CTYPE_INLINE int isspace(int __ch) {
-  return __ch == ' ' || (__ch >= '\t' && __ch <= '\r');
-}
-
-/** Returns true if `ch` is in `[A-Z]`. */
-__BIONIC_CTYPE_INLINE int isupper(int __ch) {
-  return (__ch >= 'A' && __ch <= 'Z');
-}
-
-/** Returns true if `ch` is in `[0-9A-Fa-f]`. */
-__BIONIC_CTYPE_INLINE int isxdigit(int __ch) {
-  return (__ch >= '0' && __ch <= '9') || (__ch >= 'a' && __ch <= 'f') || (__ch >= 'A' && __ch <= 'F');
-}
-
-/**
- * Returns the corresponding lower-case character if `ch` is upper-case, or undefined otherwise.
- *
- * Prefer tolower() instead.
- */
-__BIONIC_CTYPE_INLINE int _tolower(int __ch) {
-  return __ch | 0x20;
-}
-
-/** Returns the corresponding lower-case character if `ch` is upper-case, or `ch` otherwise. */
-__BIONIC_CTYPE_INLINE int tolower(int __ch) {
-  if (__ch >= 'A' && __ch <= 'Z') return _tolower(__ch);
-  return __ch;
-}
-
-/**
- * Returns the corresponding upper-case character if `ch` is lower-case, or undefined otherwise.
- *
- * Prefer toupper() instead.
- */
-__BIONIC_CTYPE_INLINE int _toupper(int __ch) {
-  // Using EOR rather than AND makes no difference on arm, but saves an
-  // instruction on arm64.
-  return __ch ^ 0x20;
-}
-
-/** Returns the corresponding upper-case character if `ch` is lower-case, or `ch` otherwise. */
-__BIONIC_CTYPE_INLINE int toupper(int __ch) {
-  if (__ch >= 'a' && __ch <= 'z') return _toupper(__ch);
-  return __ch;
-}
-
-/** Returns true if `ch` is less than 0x80. */
-__BIONIC_CTYPE_INLINE int isascii(int __ch) {
-  return __BIONIC_CAST(static_cast, unsigned, __ch) < 0x80;
-}
-
-/** Returns `ch & 0x7f`. */
-__BIONIC_CTYPE_INLINE int toascii(int __ch) {
-  return __ch & 0x7f;
-}
-
-#if __ANDROID_API__ >= 21
-/** Like isalnum but with an ignored `locale_t`. */
-int isalnum_l(int __ch, locale_t __l) __INTRODUCED_IN(21);
-/** Like isalpha but with an ignored `locale_t`. */
-int isalpha_l(int __ch, locale_t __l) __INTRODUCED_IN(21);
-/** Like isblank but with an ignored `locale_t`. */
-int isblank_l(int __ch, locale_t __l) __INTRODUCED_IN(21);
-/** Like iscntrl but with an ignored `locale_t`. */
-int iscntrl_l(int __ch, locale_t __l) __INTRODUCED_IN(21);
-/** Like isdigit but with an ignored `locale_t`. */
-int isdigit_l(int __ch, locale_t __l) __INTRODUCED_IN(21);
-/** Like isgraph but with an ignored `locale_t`. */
-int isgraph_l(int __ch, locale_t __l) __INTRODUCED_IN(21);
-/** Like islower but with an ignored `locale_t`. */
-int islower_l(int __ch, locale_t __l) __INTRODUCED_IN(21);
-/** Like isprint but with an ignored `locale_t`. */
-int isprint_l(int __ch, locale_t __l) __INTRODUCED_IN(21);
-/** Like ispunct but with an ignored `locale_t`. */
-int ispunct_l(int __ch, locale_t __l) __INTRODUCED_IN(21);
-/** Like isspace but with an ignored `locale_t`. */
-int isspace_l(int __ch, locale_t __l) __INTRODUCED_IN(21);
-/** Like isupper but with an ignored `locale_t`. */
-int isupper_l(int __ch, locale_t __l) __INTRODUCED_IN(21);
-/** Like isxdigit but with an ignored `locale_t`. */
-int isxdigit_l(int __ch, locale_t __l) __INTRODUCED_IN(21);
-/** Like tolower but with an ignored `locale_t`. */
-int tolower_l(int __ch, locale_t __l) __INTRODUCED_IN(21);
-/** Like toupper but with an ignored `locale_t`. */
-int toupper_l(int __ch, locale_t __l) __INTRODUCED_IN(21);
-#else
-// Implemented as static inlines in libc++ before 21.
-#endif
-
-__END_DECLS
diff --git a/libc/include/bits/elf_common.h b/libc/include/bits/elf_common.h
index b3c57a2..13d4fbf 100644
--- a/libc/include/bits/elf_common.h
+++ b/libc/include/bits/elf_common.h
@@ -1,5 +1,5 @@
 /*-
- * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+ * SPDX-License-Identifier: BSD-2-Clause
  *
  * Copyright (c) 2017, 2018 Dell EMC
  * Copyright (c) 2000, 2001, 2008, 2011, David E. O'Brien
@@ -26,8 +26,6 @@
  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
- *
- * $FreeBSD$
  */
 
 #ifndef _SYS_ELF_COMMON_H_
@@ -38,6 +36,26 @@
  */
 
 /*
+ * Note header.  The ".note" section contains an array of notes.  Each
+ * begins with this header, aligned to a word boundary.  Immediately
+ * following the note header is n_namesz bytes of name, padded to the
+ * next word boundary.  Then comes n_descsz bytes of descriptor, again
+ * padded to a word boundary.  The values of n_namesz and n_descsz do
+ * not include the padding.
+ */
+
+#if 0 // android-added
+#if !defined(LOCORE) && !defined(__ASSEMBLER__)
+typedef struct {
+	u_int32_t	n_namesz;	/* Length of name. */
+	u_int32_t	n_descsz;	/* Length of descriptor. */
+	u_int32_t	n_type;		/* Type of this note. */
+} Elf_Note;
+typedef Elf_Note Elf_Nhdr;
+#endif
+#endif // android-added
+
+/*
  * Option kinds.
  */
 #define	ODK_NULL	0	/* undefined */
@@ -92,6 +110,21 @@
 #define	OGP_GROUP	0x0000ffff	/* GP group number */
 #define	OGP_SELF	0x00010000	/* GP group is self-contained */
 
+/*
+ * The header for GNU-style hash sections.
+ */
+
+#if 0 // android-added
+#if !defined(LOCORE) && !defined(__ASSEMBLER__)
+typedef struct {
+	u_int32_t	gh_nbuckets;	/* Number of hash buckets. */
+	u_int32_t	gh_symndx;	/* First visible symbol in .dynsym. */
+	u_int32_t	gh_maskwords;	/* #maskwords used in bloom filter. */
+	u_int32_t	gh_shift2;	/* Bloom filter shift count. */
+} Elf_GNU_Hash_Header;
+#endif
+#endif
+
 /* Indexes into the e_ident array.  Keep synced with
    http://www.sco.com/developers/gabi/latest/ch4.eheader.html */
 #define	EI_MAG0		0	/* Magic number, byte 0. */
@@ -153,7 +186,9 @@
 #define	ELFOSABI_ARM		97	/* ARM */
 #define	ELFOSABI_STANDALONE	255	/* Standalone (embedded) application */
 
+#define	ELFOSABI_SYSV		ELFOSABI_NONE	/* symbol used in old spec */
 #define	ELFOSABI_MONTEREY	ELFOSABI_AIX	/* Monterey */
+#define	ELFOSABI_GNU		ELFOSABI_LINUX
 
 /* e_ident */
 #define	IS_ELF(ehdr)	((ehdr).e_ident[EI_MAG0] == ELFMAG0 && \
@@ -299,6 +334,7 @@
 #define	EF_ARM_EABI_VER3	0x03000000
 #define	EF_ARM_EABI_VER4	0x04000000
 #define	EF_ARM_EABI_VER5	0x05000000
+#define	EF_ARM_EABI_VERSION(x)	((x) & EF_ARM_EABIMASK)
 #define	EF_ARM_INTERWORK	0x00000004
 #define	EF_ARM_APCS_26		0x00000008
 #define	EF_ARM_APCS_FLOAT	0x00000010
@@ -418,12 +454,12 @@
 #define	SHT_HIOS		0x6fffffff	/* Last of OS specific semantics */
 #define	SHT_LOPROC		0x70000000	/* reserved range for processor */
 #define	SHT_X86_64_UNWIND	0x70000001	/* unwind information */
-#define	SHT_AMD64_UNWIND	SHT_X86_64_UNWIND
+#define	SHT_AMD64_UNWIND	SHT_X86_64_UNWIND 
 
 #define	SHT_ARM_EXIDX		0x70000001	/* Exception index table. */
-#define	SHT_ARM_PREEMPTMAP	0x70000002	/* BPABI DLL dynamic linking
+#define	SHT_ARM_PREEMPTMAP	0x70000002	/* BPABI DLL dynamic linking 
 						   pre-emption map. */
-#define	SHT_ARM_ATTRIBUTES	0x70000003	/* Object file compatibility
+#define	SHT_ARM_ATTRIBUTES	0x70000003	/* Object file compatibility 
 						   attributes. */
 #define	SHT_ARM_DEBUGOVERLAY	0x70000004	/* See DBGOVL for details. */
 #define	SHT_ARM_OVERLAYSECTION	0x70000005	/* See DBGOVL for details. */
@@ -499,6 +535,9 @@
 #define	PT_TLS		7	/* Thread local storage segment */
 #define	PT_LOOS		0x60000000	/* First OS-specific. */
 #define	PT_SUNW_UNWIND	0x6464e550	/* amd64 UNWIND program header */
+// android-removed: #define	PT_GNU_EH_FRAME	0x6474e550
+// android-removed: #define	PT_GNU_STACK	0x6474e551
+// android-removed: #define	PT_GNU_RELRO	0x6474e552
 #define	PT_DUMP_DELTA	0x6fb5d000	/* va->pa map for kernel dumps
 					   (currently arm). */
 #define	PT_LOSUNW	0x6ffffffa
@@ -648,11 +687,6 @@
 #define	DT_AARCH64_BTI_PLT		0x70000001
 #define	DT_AARCH64_PAC_PLT		0x70000003
 #define	DT_AARCH64_VARIANT_PCS		0x70000005
-#define DT_AARCH64_MEMTAG_MODE		0x70000009
-#define DT_AARCH64_MEMTAG_HEAP		0x7000000b
-#define DT_AARCH64_MEMTAG_STACK		0x7000000c
-#define DT_AARCH64_MEMTAG_GLOBALS	0x7000000d
-#define DT_AARCH64_MEMTAG_GLOBALSSZ	0x7000000f
 
 #define	DT_ARM_SYMTABSZ			0x70000001
 #define	DT_ARM_PREEMPTMAP		0x70000002
@@ -810,6 +844,7 @@
 
 #define	GNU_PROPERTY_AARCH64_FEATURE_1_AND	0xc0000000
 
+// android-removed: #define	GNU_PROPERTY_AARCH64_FEATURE_1_BTI	0x00000001
 #define	GNU_PROPERTY_AARCH64_FEATURE_1_PAC	0x00000002
 
 #define	GNU_PROPERTY_X86_FEATURE_1_AND		0xc0000002
@@ -918,6 +953,49 @@
 #define	ELFCOMPRESS_LOPROC	0x70000000	/* Processor-specific */
 #define	ELFCOMPRESS_HIPROC	0x7fffffff
 
+#if 0 // android-added
+/* Values for a_type. */
+#define	AT_NULL		0	/* Terminates the vector. */
+#define	AT_IGNORE	1	/* Ignored entry. */
+#define	AT_EXECFD	2	/* File descriptor of program to load. */
+#define	AT_PHDR		3	/* Program header of program already loaded. */
+#define	AT_PHENT	4	/* Size of each program header entry. */
+#define	AT_PHNUM	5	/* Number of program header entries. */
+#define	AT_PAGESZ	6	/* Page size in bytes. */
+#define	AT_BASE		7	/* Interpreter's base address. */
+#define	AT_FLAGS	8	/* Flags. */
+#define	AT_ENTRY	9	/* Where interpreter should transfer control. */
+#define	AT_NOTELF	10	/* Program is not ELF ?? */
+#define	AT_UID		11	/* Real uid. */
+#define	AT_EUID		12	/* Effective uid. */
+#define	AT_GID		13	/* Real gid. */
+#define	AT_EGID		14	/* Effective gid. */
+#define	AT_EXECPATH	15	/* Path to the executable. */
+#define	AT_CANARY	16	/* Canary for SSP. */
+#define	AT_CANARYLEN	17	/* Length of the canary. */
+#define	AT_OSRELDATE	18	/* OSRELDATE. */
+#define	AT_NCPUS	19	/* Number of CPUs. */
+#define	AT_PAGESIZES	20	/* Pagesizes. */
+#define	AT_PAGESIZESLEN	21	/* Number of pagesizes. */
+#define	AT_TIMEKEEP	22	/* Pointer to timehands. */
+#define	AT_STACKPROT	23	/* Initial stack protection. */
+#define	AT_EHDRFLAGS	24	/* e_flags field from elf hdr */
+#define	AT_HWCAP	25	/* CPU feature flags. */
+#define	AT_HWCAP2	26	/* CPU feature flags 2. */
+#define	AT_BSDFLAGS	27	/* ELF BSD Flags. */
+#define	AT_ARGC		28	/* Argument count */
+#define	AT_ARGV		29	/* Argument vector */
+#define	AT_ENVC		30	/* Environment count */
+#define	AT_ENVV		31	/* Environment vector */
+#define	AT_PS_STRINGS	32	/* struct ps_strings */
+#define	AT_FXRNG	33	/* Pointer to root RNG seed version. */
+#define	AT_KPRELOAD	34	/* Base of vdso, preloaded by rtld */
+#define	AT_USRSTACKBASE	35	/* Top of user stack */
+#define	AT_USRSTACKLIM	36	/* Grow limit of user stack */
+
+#define	AT_COUNT	37	/* Count of defined aux entry types. */
+#endif // android-added
+
 /*
  * Relocation types.
  *
@@ -1087,7 +1165,7 @@
 #define	R_IA_64_PCREL22		0x7a	/* immediate22	S + A - P */
 #define	R_IA_64_PCREL64I	0x7b	/* immediate64	S + A - P */
 #define	R_IA_64_IPLTMSB		0x80	/* function descriptor MSB special */
-#define	R_IA_64_IPLTLSB		0x81	/* function descriptor LSB speciaal */
+#define	R_IA_64_IPLTLSB		0x81	/* function descriptor LSB special */
 #define	R_IA_64_SUB		0x85	/* immediate64	A - S */
 #define	R_IA_64_LTOFF22X	0x86	/* immediate22	special */
 #define	R_IA_64_LDXMOV		0x87	/* immediate22	special */
@@ -1290,8 +1368,6 @@
 #define	R_RISCV_SUB16		38
 #define	R_RISCV_SUB32		39
 #define	R_RISCV_SUB64		40
-#define	R_RISCV_GNU_VTINHERIT	41
-#define	R_RISCV_GNU_VTENTRY	42
 #define	R_RISCV_ALIGN		43
 #define	R_RISCV_RVC_BRANCH	44
 #define	R_RISCV_RVC_JUMP	45
diff --git a/libc/include/bits/fcntl.h b/libc/include/bits/fcntl.h
index 597aa6e..e3f3548 100644
--- a/libc/include/bits/fcntl.h
+++ b/libc/include/bits/fcntl.h
@@ -38,11 +38,11 @@
 __BEGIN_DECLS
 
 /**
- * [fcntl(3)](http://man7.org/linux/man-pages/man2/fcntl.2.html) performs various operations
+ * [fcntl(3)](https://man7.org/linux/man-pages/man2/fcntl.2.html) performs various operations
  * on file descriptors.
  *
  * The return value depends on the operation.
  */
-int fcntl(int __fd, int __cmd, ...);
+int fcntl(int __fd, int __op, ...);
 
 __END_DECLS
diff --git a/libc/include/bits/fortify/fcntl.h b/libc/include/bits/fortify/fcntl.h
index 1f6ebad..05c62eb 100644
--- a/libc/include/bits/fortify/fcntl.h
+++ b/libc/include/bits/fortify/fcntl.h
@@ -30,13 +30,13 @@
 #error "Never include this file directly; instead, include <fcntl.h>"
 #endif
 
-int __open_2(const char*, int) __INTRODUCED_IN(17);
-int __openat_2(int, const char*, int) __INTRODUCED_IN(17);
+int __open_2(const char* _Nonnull, int);
+int __openat_2(int, const char* _Nonnull, int);
 /*
  * These are the easiest way to call the real open even in clang FORTIFY.
  */
-int __open_real(const char*, int, ...) __RENAME(open);
-int __openat_real(int, const char*, int, ...) __RENAME(openat);
+int __open_real(const char* _Nonnull, int, ...) __RENAME(open);
+int __openat_real(int, const char* _Nonnull, int, ...) __RENAME(openat);
 
 #if defined(__BIONIC_FORTIFY)
 #define __open_too_many_args_error "too many arguments"
@@ -46,7 +46,7 @@
 #define __open_modes_useful(flags) (((flags) & O_CREAT) || ((flags) & O_TMPFILE) == O_TMPFILE)
 
 __BIONIC_ERROR_FUNCTION_VISIBILITY
-int open(const char* pathname, int flags, mode_t modes, ...) __overloadable
+int open(const char* _Nonnull pathname, int flags, mode_t modes, ...) __overloadable
         __errorattr(__open_too_many_args_error);
 
 /*
@@ -56,7 +56,7 @@
  * open(const char *, int, ...).
  */
 __BIONIC_FORTIFY_INLINE
-int open(const char* const __pass_object_size pathname, int flags)
+int open(const char* _Nonnull const __pass_object_size pathname, int flags)
         __overloadable
         __clang_error_if(__open_modes_useful(flags), "'open' " __open_too_few_args_error) {
 #if __BIONIC_FORTIFY_RUNTIME_CHECKS_ENABLED
@@ -67,7 +67,7 @@
 }
 
 __BIONIC_FORTIFY_INLINE
-int open(const char* const __pass_object_size pathname, int flags, mode_t modes)
+int open(const char* _Nonnull const __pass_object_size pathname, int flags, mode_t modes)
         __overloadable
         __clang_warning_if(!__open_modes_useful(flags) && modes,
                            "'open' " __open_useless_modes_warning) {
@@ -75,12 +75,12 @@
 }
 
 __BIONIC_ERROR_FUNCTION_VISIBILITY
-int openat(int dirfd, const char* pathname, int flags, mode_t modes, ...)
+int openat(int dirfd, const char* _Nonnull pathname, int flags, mode_t modes, ...)
         __overloadable
         __errorattr(__open_too_many_args_error);
 
 __BIONIC_FORTIFY_INLINE
-int openat(int dirfd, const char* const __pass_object_size pathname, int flags)
+int openat(int dirfd, const char* _Nonnull const __pass_object_size pathname, int flags)
         __overloadable
         __clang_error_if(__open_modes_useful(flags), "'openat' " __open_too_few_args_error) {
 #if __BIONIC_FORTIFY_RUNTIME_CHECKS_ENABLED
@@ -91,7 +91,7 @@
 }
 
 __BIONIC_FORTIFY_INLINE
-int openat(int dirfd, const char* const __pass_object_size pathname, int flags, mode_t modes)
+int openat(int dirfd, const char* _Nonnull const __pass_object_size pathname, int flags, mode_t modes)
         __overloadable
         __clang_warning_if(!__open_modes_useful(flags) && modes,
                            "'openat' " __open_useless_modes_warning) {
@@ -101,18 +101,18 @@
 /* Note that open == open64, so we reuse those bits in the open64 variants below.  */
 
 __BIONIC_ERROR_FUNCTION_VISIBILITY
-int open64(const char* pathname, int flags, mode_t modes, ...) __overloadable
+int open64(const char* _Nonnull pathname, int flags, mode_t modes, ...) __overloadable
         __errorattr(__open_too_many_args_error);
 
 __BIONIC_FORTIFY_INLINE
-int open64(const char* const __pass_object_size pathname, int flags)
+int open64(const char* _Nonnull const __pass_object_size pathname, int flags)
         __overloadable
         __clang_error_if(__open_modes_useful(flags), "'open64' " __open_too_few_args_error) {
     return open(pathname, flags);
 }
 
 __BIONIC_FORTIFY_INLINE
-int open64(const char* const __pass_object_size pathname, int flags, mode_t modes)
+int open64(const char* _Nonnull const __pass_object_size pathname, int flags, mode_t modes)
         __overloadable
         __clang_warning_if(!__open_modes_useful(flags) && modes,
                            "'open64' " __open_useless_modes_warning) {
@@ -120,19 +120,19 @@
 }
 
 __BIONIC_ERROR_FUNCTION_VISIBILITY
-int openat64(int dirfd, const char* pathname, int flags, mode_t modes, ...)
+int openat64(int dirfd, const char* _Nonnull pathname, int flags, mode_t modes, ...)
         __overloadable
         __errorattr(__open_too_many_args_error);
 
 __BIONIC_FORTIFY_INLINE
-int openat64(int dirfd, const char* const __pass_object_size pathname, int flags)
+int openat64(int dirfd, const char* _Nonnull const __pass_object_size pathname, int flags)
         __overloadable
         __clang_error_if(__open_modes_useful(flags), "'openat64' " __open_too_few_args_error) {
     return openat(dirfd, pathname, flags);
 }
 
 __BIONIC_FORTIFY_INLINE
-int openat64(int dirfd, const char* const __pass_object_size pathname, int flags, mode_t modes)
+int openat64(int dirfd, const char* _Nonnull const __pass_object_size pathname, int flags, mode_t modes)
         __overloadable
         __clang_warning_if(!__open_modes_useful(flags) && modes,
                            "'openat64' " __open_useless_modes_warning) {
diff --git a/libc/include/bits/fortify/poll.h b/libc/include/bits/fortify/poll.h
index 0b5cd4b..1b4a5bf 100644
--- a/libc/include/bits/fortify/poll.h
+++ b/libc/include/bits/fortify/poll.h
@@ -30,9 +30,17 @@
 #error "Never include this file directly; instead, include <poll.h>"
 #endif
 
-int __poll_chk(struct pollfd*, nfds_t, int, size_t) __INTRODUCED_IN(23);
-int __ppoll_chk(struct pollfd*, nfds_t, const struct timespec*, const sigset_t*, size_t) __INTRODUCED_IN(23);
-int __ppoll64_chk(struct pollfd*, nfds_t, const struct timespec*, const sigset64_t*, size_t) __INTRODUCED_IN(28);
+
+#if __BIONIC_AVAILABILITY_GUARD(23)
+int __poll_chk(struct pollfd* _Nullable, nfds_t, int, size_t) __INTRODUCED_IN(23);
+int __ppoll_chk(struct pollfd* _Nullable, nfds_t, const struct timespec* _Nullable, const sigset_t* _Nullable, size_t) __INTRODUCED_IN(23);
+#endif /* __BIONIC_AVAILABILITY_GUARD(23) */
+
+
+#if __BIONIC_AVAILABILITY_GUARD(28)
+int __ppoll64_chk(struct pollfd* _Nullable, nfds_t, const struct timespec* _Nullable, const sigset64_t* _Nullable, size_t) __INTRODUCED_IN(28);
+#endif /* __BIONIC_AVAILABILITY_GUARD(28) */
+
 
 #if defined(__BIONIC_FORTIFY)
 #define __bos_fd_count_trivially_safe(bos_val, fds, fd_count)              \
@@ -40,7 +48,7 @@
                                (fd_count) <= __BIONIC_CAST(static_cast, nfds_t, -1) / sizeof(*fds))
 
 __BIONIC_FORTIFY_INLINE
-int poll(struct pollfd* const fds __pass_object_size, nfds_t fd_count, int timeout)
+int poll(struct pollfd* _Nullable const fds __pass_object_size, nfds_t fd_count, int timeout)
     __overloadable
     __clang_error_if(__bos_unevaluated_lt(__bos(fds), sizeof(*fds) * fd_count),
                      "in call to 'poll', fd_count is larger than the given buffer") {
@@ -55,7 +63,7 @@
 }
 
 __BIONIC_FORTIFY_INLINE
-int ppoll(struct pollfd* const fds __pass_object_size, nfds_t fd_count, const struct timespec* timeout, const sigset_t* mask)
+int ppoll(struct pollfd* _Nullable const fds __pass_object_size, nfds_t fd_count, const struct timespec* _Nullable timeout, const sigset_t* _Nullable mask)
     __overloadable
     __clang_error_if(__bos_unevaluated_lt(__bos(fds), sizeof(*fds) * fd_count),
                      "in call to 'ppoll', fd_count is larger than the given buffer") {
@@ -71,7 +79,7 @@
 
 #if __ANDROID_API__ >= 28
 __BIONIC_FORTIFY_INLINE
-int ppoll64(struct pollfd* const fds __pass_object_size, nfds_t fd_count, const struct timespec* timeout, const sigset64_t* mask)
+int ppoll64(struct pollfd* _Nullable const fds __pass_object_size, nfds_t fd_count, const struct timespec* _Nullable timeout, const sigset64_t* _Nullable mask)
     __overloadable
     __clang_error_if(__bos_unevaluated_lt(__bos(fds), sizeof(*fds) * fd_count),
                      "in call to 'ppoll64', fd_count is larger than the given buffer") {
diff --git a/libc/include/bits/fortify/socket.h b/libc/include/bits/fortify/socket.h
index 9e7df6d..bd626f9 100644
--- a/libc/include/bits/fortify/socket.h
+++ b/libc/include/bits/fortify/socket.h
@@ -30,15 +30,17 @@
 #error "Never include this file directly; instead, include <sys/socket.h>"
 #endif
 
-extern ssize_t __sendto_chk(int, const void*, size_t, size_t, int, const struct sockaddr*,
-        socklen_t) __INTRODUCED_IN(26);
-ssize_t __recvfrom_chk(int, void*, size_t, size_t, int, struct sockaddr*,
-        socklen_t*) __INTRODUCED_IN(21);
+
+#if __BIONIC_AVAILABILITY_GUARD(26)
+ssize_t __sendto_chk(int, const void* _Nonnull, size_t, size_t, int, const struct sockaddr* _Nullable, socklen_t) __INTRODUCED_IN(26);
+#endif /* __BIONIC_AVAILABILITY_GUARD(26) */
+
+ssize_t __recvfrom_chk(int, void* _Nullable, size_t, size_t, int, struct sockaddr* _Nullable, socklen_t* _Nullable);
 
 #if defined(__BIONIC_FORTIFY)
 
 __BIONIC_FORTIFY_INLINE
-ssize_t recvfrom(int fd, void* const buf __pass_object_size0, size_t len, int flags, struct sockaddr* src_addr, socklen_t* addr_len)
+ssize_t recvfrom(int fd, void* _Nullable const buf __pass_object_size0, size_t len, int flags, struct sockaddr* _Nullable src_addr, socklen_t* _Nullable addr_len)
     __overloadable
     __clang_error_if(__bos_unevaluated_lt(__bos0(buf), len),
                      "'recvfrom' called with size bigger than buffer") {
@@ -53,7 +55,7 @@
 }
 
 __BIONIC_FORTIFY_INLINE
-ssize_t sendto(int fd, const void* const buf __pass_object_size0, size_t len, int flags, const struct sockaddr* dest_addr, socklen_t addr_len)
+ssize_t sendto(int fd, const void* _Nonnull const buf __pass_object_size0, size_t len, int flags, const struct sockaddr* _Nullable dest_addr, socklen_t addr_len)
     __overloadable
     __clang_error_if(__bos_unevaluated_lt(__bos0(buf), len),
                      "'sendto' called with size bigger than buffer") {
@@ -68,7 +70,7 @@
 }
 
 __BIONIC_FORTIFY_INLINE
-ssize_t recv(int socket, void* const buf __pass_object_size0, size_t len, int flags)
+ssize_t recv(int socket, void* _Nullable const buf __pass_object_size0, size_t len, int flags)
     __overloadable
     __clang_error_if(__bos_unevaluated_lt(__bos0(buf), len),
                      "'recv' called with size bigger than buffer") {
@@ -76,7 +78,7 @@
 }
 
 __BIONIC_FORTIFY_INLINE
-ssize_t send(int socket, const void* const buf __pass_object_size0, size_t len, int flags)
+ssize_t send(int socket, const void* _Nonnull const buf __pass_object_size0, size_t len, int flags)
     __overloadable
     __clang_error_if(__bos_unevaluated_lt(__bos0(buf), len),
                      "'send' called with size bigger than buffer") {
diff --git a/libc/include/bits/fortify/stat.h b/libc/include/bits/fortify/stat.h
index 9b4ade2..378072c 100644
--- a/libc/include/bits/fortify/stat.h
+++ b/libc/include/bits/fortify/stat.h
@@ -28,7 +28,7 @@
 
 #pragma once
 
-mode_t __umask_chk(mode_t) __INTRODUCED_IN(18);
+mode_t __umask_chk(mode_t);
 mode_t __umask_real(mode_t mode) __RENAME(umask);
 
 #if defined(__BIONIC_FORTIFY)
diff --git a/libc/include/bits/fortify/stdio.h b/libc/include/bits/fortify/stdio.h
index 95db017..f9faeba 100644
--- a/libc/include/bits/fortify/stdio.h
+++ b/libc/include/bits/fortify/stdio.h
@@ -30,29 +30,33 @@
 #error "Never include this file directly; instead, include <stdio.h>"
 #endif
 
-char* __fgets_chk(char*, int, FILE*, size_t) __INTRODUCED_IN(17);
-size_t __fread_chk(void*, size_t, size_t, FILE*, size_t) __INTRODUCED_IN(24);
-size_t __fwrite_chk(const void*, size_t, size_t, FILE*, size_t) __INTRODUCED_IN(24);
+char* _Nullable __fgets_chk(char* _Nonnull, int, FILE* _Nonnull, size_t);
+
+#if __BIONIC_AVAILABILITY_GUARD(24)
+size_t __fread_chk(void* _Nonnull, size_t, size_t, FILE* _Nonnull, size_t) __INTRODUCED_IN(24);
+size_t __fwrite_chk(const void* _Nonnull, size_t, size_t, FILE* _Nonnull, size_t) __INTRODUCED_IN(24);
+#endif /* __BIONIC_AVAILABILITY_GUARD(24) */
+
 
 #if defined(__BIONIC_FORTIFY) && !defined(__BIONIC_NO_STDIO_FORTIFY)
 
 #if __BIONIC_FORTIFY_RUNTIME_CHECKS_ENABLED
 /* No diag -- clang diagnoses misuses of this on its own.  */
 __BIONIC_FORTIFY_INLINE __printflike(3, 0)
-int vsnprintf(char* const __pass_object_size dest, size_t size, const char* format, va_list ap)
+int vsnprintf(char* const __BIONIC_COMPLICATED_NULLNESS __pass_object_size dest, size_t size, const char* _Nonnull format, va_list ap)
         __diagnose_as_builtin(__builtin_vsnprintf, 1, 2, 3, 4)
         __overloadable {
     return __builtin___vsnprintf_chk(dest, size, 0, __bos(dest), format, ap);
 }
 
 __BIONIC_FORTIFY_INLINE __printflike(2, 0)
-int vsprintf(char* const __pass_object_size dest, const char* format, va_list ap) __overloadable {
+int vsprintf(char* const __BIONIC_COMPLICATED_NULLNESS __pass_object_size dest, const char* _Nonnull format, va_list ap) __overloadable {
     return __builtin___vsprintf_chk(dest, 0, __bos(dest), format, ap);
 }
 #endif
 
 __BIONIC_ERROR_FUNCTION_VISIBILITY
-int sprintf(char* dest, const char* format)
+int sprintf(char* __BIONIC_COMPLICATED_NULLNESS dest, const char* _Nonnull format)
     __overloadable
     __enable_if(__bos_unevaluated_lt(__bos(dest), __builtin_strlen(format)),
                 "format string will always overflow destination buffer")
@@ -60,7 +64,7 @@
 
 #if __BIONIC_FORTIFY_RUNTIME_CHECKS_ENABLED
 __BIONIC_FORTIFY_VARIADIC __printflike(2, 3)
-int sprintf(char* const __pass_object_size dest, const char* format, ...) __overloadable {
+int sprintf(char* const __BIONIC_COMPLICATED_NULLNESS __pass_object_size dest, const char* _Nonnull format, ...) __overloadable {
     va_list va;
     va_start(va, format);
     int result = __builtin___vsprintf_chk(dest, 0, __bos(dest), format, va);
@@ -70,7 +74,7 @@
 
 /* No diag -- clang diagnoses misuses of this on its own.  */
 __BIONIC_FORTIFY_VARIADIC __printflike(3, 4)
-int snprintf(char* const __pass_object_size dest, size_t size, const char* format, ...)
+int snprintf(char* const __BIONIC_COMPLICATED_NULLNESS __pass_object_size dest, size_t size, const char* _Nonnull format, ...)
         __diagnose_as_builtin(__builtin_snprintf, 1, 2, 3)
         __overloadable {
     va_list va;
@@ -86,7 +90,7 @@
                                !__unsafe_check_mul_overflow(size, count))
 
 __BIONIC_FORTIFY_INLINE
-size_t fread(void* const __pass_object_size0 buf, size_t size, size_t count, FILE* stream)
+size_t fread(void* const _Nonnull __pass_object_size0 buf, size_t size, size_t count, FILE* _Nonnull stream)
         __overloadable
         __clang_error_if(__unsafe_check_mul_overflow(size, count),
                          "in call to 'fread', size * count overflows")
@@ -103,7 +107,7 @@
 }
 
 __BIONIC_FORTIFY_INLINE
-size_t fwrite(const void* const __pass_object_size0 buf, size_t size, size_t count, FILE* stream)
+size_t fwrite(const void* const _Nonnull __pass_object_size0 buf, size_t size, size_t count, FILE* _Nonnull stream)
         __overloadable
         __clang_error_if(__unsafe_check_mul_overflow(size, count),
                          "in call to 'fwrite', size * count overflows")
@@ -121,7 +125,7 @@
 #undef __bos_trivially_ge_mul
 
 __BIONIC_FORTIFY_INLINE
-char* fgets(char* const __pass_object_size dest, int size, FILE* stream)
+char* _Nullable fgets(char* const _Nonnull __pass_object_size dest, int size, FILE* _Nonnull stream)
         __overloadable
         __clang_error_if(size < 0, "in call to 'fgets', size should not be negative")
         __clang_error_if(__bos_unevaluated_lt(__bos(dest), size),
diff --git a/libc/include/bits/fortify/stdlib.h b/libc/include/bits/fortify/stdlib.h
index 623be58..b84dae4 100644
--- a/libc/include/bits/fortify/stdlib.h
+++ b/libc/include/bits/fortify/stdlib.h
@@ -35,7 +35,7 @@
 /* PATH_MAX is unavailable without polluting the namespace, but it's always 4096 on Linux */
 #define __PATH_MAX 4096
 
-char* realpath(const char* path, char* resolved)
+char* _Nullable realpath(const char* _Nonnull path, char* _Nullable resolved)
         __clang_error_if(!path, "'realpath': NULL path is never correct; flipped arguments?")
         __clang_error_if(__bos_unevaluated_lt(__bos(resolved), __PATH_MAX),
                          "'realpath' output parameter must be NULL or a pointer to a buffer "
diff --git a/libc/include/bits/fortify/string.h b/libc/include/bits/fortify/string.h
index f668b9f..6f0ee4a 100644
--- a/libc/include/bits/fortify/string.h
+++ b/libc/include/bits/fortify/string.h
@@ -30,20 +30,24 @@
 #error "Never include this file directly; instead, include <string.h>"
 #endif
 
-void* __memchr_chk(const void*, int, size_t, size_t) __INTRODUCED_IN(23);
-void* __memrchr_chk(const void*, int, size_t, size_t) __INTRODUCED_IN(23);
-char* __stpncpy_chk2(char*, const char*, size_t, size_t, size_t) __INTRODUCED_IN(21);
-char* __strncpy_chk2(char*, const char*, size_t, size_t, size_t) __INTRODUCED_IN(21);
-size_t __strlcpy_chk(char*, const char*, size_t, size_t) __INTRODUCED_IN(17);
-size_t __strlcat_chk(char*, const char*, size_t, size_t) __INTRODUCED_IN(17);
+
+#if __BIONIC_AVAILABILITY_GUARD(23)
+void* _Nullable __memchr_chk(const void* _Nonnull, int, size_t, size_t) __INTRODUCED_IN(23);
+void* _Nullable __memrchr_chk(const void* _Nonnull, int, size_t, size_t) __INTRODUCED_IN(23);
+#endif /* __BIONIC_AVAILABILITY_GUARD(23) */
+
+char* _Nonnull __stpncpy_chk2(char* _Nonnull, const char* _Nonnull, size_t, size_t, size_t);
+char* _Nonnull __strncpy_chk2(char* _Nonnull, const char* _Nonnull, size_t, size_t, size_t);
+size_t __strlcpy_chk(char* _Nonnull, const char* _Nonnull, size_t, size_t);
+size_t __strlcat_chk(char* _Nonnull, const char* _Nonnull, size_t, size_t);
 
 #if defined(__BIONIC_FORTIFY)
-extern void* __memrchr_real(const void*, int, size_t) __RENAME(memrchr);
+void* _Nullable __memrchr_real(const void* _Nonnull, int, size_t) __RENAME(memrchr);
 
 #if __BIONIC_FORTIFY_RUNTIME_CHECKS_ENABLED
 /* No diag -- clang diagnoses misuses of this on its own.  */
 __BIONIC_FORTIFY_INLINE
-void* memcpy(void* const dst __pass_object_size0, const void* src, size_t copy_amount)
+void* _Nonnull memcpy(void* _Nonnull const dst __pass_object_size0, const void* _Nonnull src, size_t copy_amount)
         __diagnose_as_builtin(__builtin_memcpy, 1, 2, 3)
         __overloadable {
     return __builtin___memcpy_chk(dst, src, copy_amount, __bos0(dst));
@@ -51,7 +55,7 @@
 
 /* No diag -- clang diagnoses misuses of this on its own.  */
 __BIONIC_FORTIFY_INLINE
-void* memmove(void* const dst __pass_object_size0, const void* src, size_t len)
+void* _Nonnull memmove(void* _Nonnull const dst __pass_object_size0, const void* _Nonnull src, size_t len)
         __diagnose_as_builtin(__builtin_memmove, 1, 2, 3)
         __overloadable {
     return __builtin___memmove_chk(dst, src, len, __bos0(dst));
@@ -61,7 +65,7 @@
 #if defined(__USE_GNU)
 #if __ANDROID_API__ >= 30
 __BIONIC_FORTIFY_INLINE
-void* mempcpy(void* const dst __pass_object_size0, const void* src, size_t copy_amount)
+void* _Nonnull mempcpy(void* _Nonnull const dst __pass_object_size0, const void* _Nonnull src, size_t copy_amount)
         __diagnose_as_builtin(__builtin_mempcpy, 1, 2, 3)
         __overloadable
         __clang_error_if(__bos_unevaluated_lt(__bos0(dst), copy_amount),
@@ -78,7 +82,7 @@
 #endif /* __USE_GNU */
 
 __BIONIC_FORTIFY_INLINE
-char* stpcpy(char* const dst __pass_object_size, const char* src)
+char* _Nonnull stpcpy(char* _Nonnull const dst __pass_object_size, const char* _Nonnull src)
         __overloadable
         __clang_error_if(__bos_unevaluated_le(__bos(dst), __builtin_strlen(src)),
                          "'stpcpy' called with string bigger than buffer") {
@@ -90,7 +94,7 @@
 }
 
 __BIONIC_FORTIFY_INLINE
-char* strcpy(char* const dst __pass_object_size, const char* src)
+char* _Nonnull strcpy(char* _Nonnull const dst __pass_object_size, const char* _Nonnull src)
         __diagnose_as_builtin(__builtin_strcpy, 1, 2)
         __overloadable
         __clang_error_if(__bos_unevaluated_le(__bos(dst), __builtin_strlen(src)),
@@ -103,7 +107,7 @@
 }
 
 __BIONIC_FORTIFY_INLINE
-char* strcat(char* const dst __pass_object_size, const char* src)
+char* _Nonnull strcat(char* _Nonnull const dst __pass_object_size, const char* _Nonnull src)
         __overloadable
         __clang_error_if(__bos_unevaluated_le(__bos(dst), __builtin_strlen(src)),
                          "'strcat' called with string bigger than buffer") {
@@ -117,7 +121,7 @@
 #if __BIONIC_FORTIFY_RUNTIME_CHECKS_ENABLED
 /* No diag -- clang diagnoses misuses of this on its own.  */
 __BIONIC_FORTIFY_INLINE
-char* strncat(char* const dst __pass_object_size, const char* src, size_t n)
+char* _Nonnull strncat(char* _Nonnull const dst __pass_object_size, const char* _Nonnull src, size_t n)
        __diagnose_as_builtin(__builtin_strncat, 1, 2, 3)
        __overloadable {
     return __builtin___strncat_chk(dst, src, n, __bos(dst));
@@ -126,7 +130,7 @@
 
 /* No diag -- clang diagnoses misuses of this on its own.  */
 __BIONIC_FORTIFY_INLINE
-void* memset(void* const s __pass_object_size0, int c, size_t n) __overloadable
+void* _Nonnull memset(void* _Nonnull const s __pass_object_size0, int c, size_t n) __overloadable
         __diagnose_as_builtin(__builtin_memset, 1, 2, 3)
         /* If you're a user who wants this warning to go away: use `(&memset)(foo, bar, baz)`. */
         __clang_warning_if(c && !n, "'memset' will set 0 bytes; maybe the arguments got flipped?") {
@@ -139,7 +143,7 @@
 
 #if __ANDROID_API__ >= 23 && __BIONIC_FORTIFY_RUNTIME_CHECKS_ENABLED
 __BIONIC_FORTIFY_INLINE
-void* memchr(const void* const s __pass_object_size, int c, size_t n) __overloadable {
+void* _Nullable memchr(const void* _Nonnull const s __pass_object_size, int c, size_t n) __overloadable {
     size_t bos = __bos(s);
 
     if (__bos_trivially_ge(bos, n)) {
@@ -150,7 +154,7 @@
 }
 
 __BIONIC_FORTIFY_INLINE
-void* __memrchr_fortify(const void* const __pass_object_size s, int c, size_t n) __overloadable {
+void* _Nullable __memrchr_fortify(const void* _Nonnull const __pass_object_size s, int c, size_t n) __overloadable {
     size_t bos = __bos(s);
 
     if (__bos_trivially_ge(bos, n)) {
@@ -164,7 +168,7 @@
 #if __BIONIC_FORTIFY_RUNTIME_CHECKS_ENABLED
 /* No diag -- clang diagnoses misuses of this on its own.  */
 __BIONIC_FORTIFY_INLINE
-char* stpncpy(char* const dst __pass_object_size, const char* const src __pass_object_size, size_t n)
+char* _Nonnull stpncpy(char* _Nonnull const dst __pass_object_size, const char* _Nonnull const src __pass_object_size, size_t n)
         __diagnose_as_builtin(__builtin_stpncpy, 1, 2, 3)
         __overloadable {
     size_t bos_dst = __bos(dst);
@@ -180,7 +184,7 @@
 
 /* No diag -- clang diagnoses misuses of this on its own.  */
 __BIONIC_FORTIFY_INLINE
-char* strncpy(char* const dst __pass_object_size, const char* const src __pass_object_size, size_t n)
+char* _Nonnull strncpy(char* _Nonnull const dst __pass_object_size, const char* _Nonnull const src __pass_object_size, size_t n)
         __diagnose_as_builtin(__builtin_strncpy, 1, 2, 3)
         __overloadable {
     size_t bos_dst = __bos(dst);
@@ -196,7 +200,7 @@
 #endif
 
 __BIONIC_FORTIFY_INLINE
-size_t strlcpy(char* const dst __pass_object_size, const char* src, size_t size)
+size_t strlcpy(char* _Nonnull const dst __pass_object_size, const char* _Nonnull src, size_t size)
         __overloadable
         __clang_error_if(__bos_unevaluated_lt(__bos(dst), size),
                          "'strlcpy' called with size bigger than buffer") {
@@ -208,7 +212,7 @@
 }
 
 __BIONIC_FORTIFY_INLINE
-size_t strlcat(char* const dst __pass_object_size, const char* src, size_t size)
+size_t strlcat(char* _Nonnull const dst __pass_object_size, const char* _Nonnull src, size_t size)
         __overloadable
         __clang_error_if(__bos_unevaluated_lt(__bos(dst), size),
                          "'strlcat' called with size bigger than buffer") {
@@ -220,14 +224,19 @@
 }
 
 #if __BIONIC_FORTIFY_RUNTIME_CHECKS_ENABLED
-__BIONIC_FORTIFY_INLINE
-size_t strlen(const char* const s __pass_object_size0) __overloadable {
+/*
+ * Clang, when parsing C, can fold strlen to a constant without LLVM's help.
+ * This doesn't apply to overloads of strlen, so write this differently. We
+ * can't use `__pass_object_size0` here, but that's fine: it doesn't help much
+ * on __always_inline functions.
+ */
+extern __always_inline __inline__ __attribute__((gnu_inline)) size_t strlen(const char* _Nonnull s) {
     return __strlen_chk(s, __bos0(s));
 }
 #endif
 
 __BIONIC_FORTIFY_INLINE
-char* strchr(const char* const s __pass_object_size, int c) __overloadable {
+char* _Nullable strchr(const char* _Nonnull const s __pass_object_size, int c) __overloadable {
 #if __BIONIC_FORTIFY_RUNTIME_CHECKS_ENABLED
     size_t bos = __bos(s);
 
@@ -239,7 +248,7 @@
 }
 
 __BIONIC_FORTIFY_INLINE
-char* strrchr(const char* const s __pass_object_size, int c) __overloadable {
+char* _Nullable strrchr(const char* _Nonnull const s __pass_object_size, int c) __overloadable {
 #if __BIONIC_FORTIFY_RUNTIME_CHECKS_ENABLED
     size_t bos = __bos(s);
 
@@ -254,18 +263,18 @@
 #if defined(__cplusplus)
 extern "C++" {
 __BIONIC_FORTIFY_INLINE
-void* memrchr(void* const __pass_object_size s, int c, size_t n) {
+void* _Nullable memrchr(void* _Nonnull const __pass_object_size s, int c, size_t n) {
     return __memrchr_fortify(s, c, n);
 }
 
 __BIONIC_FORTIFY_INLINE
-const void* memrchr(const void* const __pass_object_size s, int c, size_t n) {
+const void* _Nullable memrchr(const void* _Nonnull const __pass_object_size s, int c, size_t n) {
     return __memrchr_fortify(s, c, n);
 }
 }
 #else
 __BIONIC_FORTIFY_INLINE
-void* memrchr(const void* const __pass_object_size s, int c, size_t n) __overloadable {
+void* _Nullable memrchr(const void* _Nonnull const __pass_object_size s, int c, size_t n) __overloadable {
     return __memrchr_fortify(s, c, n);
 }
 #endif
diff --git a/libc/include/bits/fortify/strings.h b/libc/include/bits/fortify/strings.h
index 5515ef9..a36f02c 100644
--- a/libc/include/bits/fortify/strings.h
+++ b/libc/include/bits/fortify/strings.h
@@ -29,7 +29,7 @@
 #if defined(__BIONIC_FORTIFY)
 
 __BIONIC_FORTIFY_INLINE
-void __bionic_bcopy(const void *src, void* const dst __pass_object_size0, size_t len)
+void __bionic_bcopy(const void * _Nonnull src, void* _Nonnull const dst __pass_object_size0, size_t len)
         __overloadable
         __clang_error_if(__bos_unevaluated_lt(__bos0(dst), len),
                          "'bcopy' called with size bigger than buffer") {
@@ -44,7 +44,7 @@
 }
 
 __BIONIC_FORTIFY_INLINE
-void __bionic_bzero(void* const b __pass_object_size0, size_t len)
+void __bionic_bzero(void* _Nonnull const b __pass_object_size0, size_t len)
         __overloadable
         __clang_error_if(__bos_unevaluated_lt(__bos0(b), len),
                          "'bzero' called with size bigger than buffer") {
diff --git a/libc/include/bits/fortify/unistd.h b/libc/include/bits/fortify/unistd.h
index 335d0b5..9acb942 100644
--- a/libc/include/bits/fortify/unistd.h
+++ b/libc/include/bits/fortify/unistd.h
@@ -29,24 +29,52 @@
 #error "Never include this file directly; instead, include <unistd.h>"
 #endif
 
-char* __getcwd_chk(char*, size_t, size_t) __INTRODUCED_IN(24);
 
-ssize_t __pread_chk(int, void*, size_t, off_t, size_t) __INTRODUCED_IN(23);
-ssize_t __pread_real(int, void*, size_t, off_t) __RENAME(pread);
+#if __BIONIC_AVAILABILITY_GUARD(24)
+char* _Nullable __getcwd_chk(char* _Nullable, size_t, size_t) __INTRODUCED_IN(24);
+#endif /* __BIONIC_AVAILABILITY_GUARD(24) */
 
-ssize_t __pread64_chk(int, void*, size_t, off64_t, size_t) __INTRODUCED_IN(23);
-ssize_t __pread64_real(int, void*, size_t, off64_t) __RENAME(pread64);
 
-ssize_t __pwrite_chk(int, const void*, size_t, off_t, size_t) __INTRODUCED_IN(24);
-ssize_t __pwrite_real(int, const void*, size_t, off_t) __RENAME(pwrite);
 
-ssize_t __pwrite64_chk(int, const void*, size_t, off64_t, size_t) __INTRODUCED_IN(24);
-ssize_t __pwrite64_real(int, const void*, size_t, off64_t) __RENAME(pwrite64);
+#if __BIONIC_AVAILABILITY_GUARD(23)
+ssize_t __pread_chk(int, void* _Nonnull, size_t, off_t, size_t) __INTRODUCED_IN(23);
+#endif /* __BIONIC_AVAILABILITY_GUARD(23) */
 
-ssize_t __read_chk(int, void*, size_t, size_t) __INTRODUCED_IN(21);
-ssize_t __write_chk(int, const void*, size_t, size_t) __INTRODUCED_IN(24);
-ssize_t __readlink_chk(const char*, char*, size_t, size_t) __INTRODUCED_IN(23);
-ssize_t __readlinkat_chk(int dirfd, const char*, char*, size_t, size_t) __INTRODUCED_IN(23);
+ssize_t __pread_real(int, void* _Nonnull, size_t, off_t) __RENAME(pread);
+
+
+#if __BIONIC_AVAILABILITY_GUARD(23)
+ssize_t __pread64_chk(int, void* _Nonnull, size_t, off64_t, size_t) __INTRODUCED_IN(23);
+#endif /* __BIONIC_AVAILABILITY_GUARD(23) */
+
+ssize_t __pread64_real(int, void* _Nonnull, size_t, off64_t) __RENAME(pread64);
+
+
+#if __BIONIC_AVAILABILITY_GUARD(24)
+ssize_t __pwrite_chk(int, const void* _Nonnull, size_t, off_t, size_t) __INTRODUCED_IN(24);
+#endif /* __BIONIC_AVAILABILITY_GUARD(24) */
+
+ssize_t __pwrite_real(int, const void* _Nonnull, size_t, off_t) __RENAME(pwrite);
+
+
+#if __BIONIC_AVAILABILITY_GUARD(24)
+ssize_t __pwrite64_chk(int, const void* _Nonnull, size_t, off64_t, size_t) __INTRODUCED_IN(24);
+#endif /* __BIONIC_AVAILABILITY_GUARD(24) */
+
+ssize_t __pwrite64_real(int, const void* _Nonnull, size_t, off64_t) __RENAME(pwrite64);
+
+ssize_t __read_chk(int, void* __BIONIC_COMPLICATED_NULLNESS, size_t, size_t);
+
+#if __BIONIC_AVAILABILITY_GUARD(24)
+ssize_t __write_chk(int, const void* __BIONIC_COMPLICATED_NULLNESS, size_t, size_t) __INTRODUCED_IN(24);
+#endif /* __BIONIC_AVAILABILITY_GUARD(24) */
+
+
+#if __BIONIC_AVAILABILITY_GUARD(23)
+ssize_t __readlink_chk(const char* _Nonnull, char* _Nonnull, size_t, size_t) __INTRODUCED_IN(23);
+ssize_t __readlinkat_chk(int dirfd, const char* _Nonnull, char* _Nonnull, size_t, size_t) __INTRODUCED_IN(23);
+#endif /* __BIONIC_AVAILABILITY_GUARD(23) */
+
 
 #if defined(__BIONIC_FORTIFY)
 
@@ -70,7 +98,7 @@
         __builtin_constant_p(index) && (index) <= SSIZE_MAX))
 
 __BIONIC_FORTIFY_INLINE
-char* getcwd(char* const __pass_object_size buf, size_t size)
+char* _Nullable getcwd(char* const _Nullable __pass_object_size buf, size_t size)
         __overloadable
         __error_if_overflows_objectsize(size, __bos(buf), getcwd) {
 #if __ANDROID_API__ >= 24 && __BIONIC_FORTIFY_RUNTIME_CHECKS_ENABLED
@@ -85,7 +113,7 @@
 
 #if !defined(__USE_FILE_OFFSET64)
 __BIONIC_FORTIFY_INLINE
-ssize_t pread(int fd, void* const __pass_object_size0 buf, size_t count, off_t offset)
+ssize_t pread(int fd, void* const _Nonnull __pass_object_size0 buf, size_t count, off_t offset)
         __overloadable
         __error_if_overflows_ssizet(count, pread)
         __error_if_overflows_objectsize(count, __bos0(buf), pread) {
@@ -101,7 +129,7 @@
 #endif /* !defined(__USE_FILE_OFFSET64) */
 
 __BIONIC_FORTIFY_INLINE
-ssize_t pread64(int fd, void* const __pass_object_size0 buf, size_t count, off64_t offset)
+ssize_t pread64(int fd, void* const _Nonnull __pass_object_size0 buf, size_t count, off64_t offset)
         __overloadable
         __error_if_overflows_ssizet(count, pread64)
         __error_if_overflows_objectsize(count, __bos0(buf), pread64) {
@@ -117,7 +145,7 @@
 
 #if !defined(__USE_FILE_OFFSET64)
 __BIONIC_FORTIFY_INLINE
-ssize_t pwrite(int fd, const void* const __pass_object_size0 buf, size_t count, off_t offset)
+ssize_t pwrite(int fd, const void* const _Nonnull __pass_object_size0 buf, size_t count, off_t offset)
         __overloadable
         __error_if_overflows_ssizet(count, pwrite)
         __error_if_overflows_objectsize(count, __bos0(buf), pwrite) {
@@ -133,7 +161,7 @@
 #endif /* !defined(__USE_FILE_OFFSET64) */
 
 __BIONIC_FORTIFY_INLINE
-ssize_t pwrite64(int fd, const void* const __pass_object_size0 buf, size_t count, off64_t offset)
+ssize_t pwrite64(int fd, const void* const _Nonnull __pass_object_size0 buf, size_t count, off64_t offset)
         __overloadable
         __error_if_overflows_ssizet(count, pwrite64)
         __error_if_overflows_objectsize(count, __bos0(buf), pwrite64) {
@@ -148,7 +176,7 @@
 }
 
 __BIONIC_FORTIFY_INLINE
-ssize_t read(int fd, void* const __pass_object_size0 buf, size_t count)
+ssize_t read(int fd, void* const __BIONIC_COMPLICATED_NULLNESS __pass_object_size0 buf, size_t count)
         __overloadable
         __error_if_overflows_ssizet(count, read)
         __error_if_overflows_objectsize(count, __bos0(buf), read) {
@@ -163,7 +191,7 @@
 }
 
 __BIONIC_FORTIFY_INLINE
-ssize_t write(int fd, const void* const __pass_object_size0 buf, size_t count)
+ssize_t write(int fd, const void* const __BIONIC_COMPLICATED_NULLNESS __pass_object_size0 buf, size_t count)
         __overloadable
         __error_if_overflows_ssizet(count, write)
         __error_if_overflows_objectsize(count, __bos0(buf), write) {
@@ -178,7 +206,7 @@
 }
 
 __BIONIC_FORTIFY_INLINE
-ssize_t readlink(const char* path, char* const __pass_object_size buf, size_t size)
+ssize_t readlink(const char* _Nonnull path, char* _Nonnull const __pass_object_size buf, size_t size)
         __overloadable
         __error_if_overflows_ssizet(size, readlink)
         __error_if_overflows_objectsize(size, __bos(buf), readlink) {
@@ -193,7 +221,7 @@
 }
 
 __BIONIC_FORTIFY_INLINE
-ssize_t readlinkat(int dirfd, const char* path, char* const __pass_object_size buf, size_t size)
+ssize_t readlinkat(int dirfd, const char* _Nonnull path, char* const _Nonnull __pass_object_size buf, size_t size)
         __overloadable
         __error_if_overflows_ssizet(size, readlinkat)
         __error_if_overflows_objectsize(size, __bos(buf), readlinkat) {
diff --git a/libc/include/bits/get_device_api_level_inlines.h b/libc/include/bits/get_device_api_level_inlines.h
index d14eb2c..dc5871b 100644
--- a/libc/include/bits/get_device_api_level_inlines.h
+++ b/libc/include/bits/get_device_api_level_inlines.h
@@ -35,8 +35,8 @@
 __BEGIN_DECLS
 
 // Avoid circular dependencies since this is exposed from <sys/cdefs.h>.
-int __system_property_get(const char* __name, char* __value);
-int atoi(const char* __s) __attribute_pure__;
+int __system_property_get(const char* _Nonnull __name, char*  _Nonnull __value);
+int atoi(const char* _Nonnull __s) __attribute_pure__;
 
 __BIONIC_GET_DEVICE_API_LEVEL_INLINE int android_get_device_api_level() {
   char value[92] = { 0 };
diff --git a/libc/arch-arm/static_function_dispatch.S b/libc/include/bits/getentropy.h
similarity index 65%
rename from libc/arch-arm/static_function_dispatch.S
rename to libc/include/bits/getentropy.h
index a8235c2..c878470 100644
--- a/libc/arch-arm/static_function_dispatch.S
+++ b/libc/include/bits/getentropy.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2018 The Android Open Source Project
+ * Copyright (C) 2023 The Android Open Source Project
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -26,21 +26,32 @@
  * SUCH DAMAGE.
  */
 
-#include <private/bionic_asm.h>
+#pragma once
 
-#define FUNCTION_DELEGATE(name, impl) \
-ENTRY(name); \
-    b impl; \
-END(name)
+/**
+ * @file bits/getentropy.h
+ * @brief The getentropy() function.
+ */
 
-FUNCTION_DELEGATE(memmove, memmove_generic)
-FUNCTION_DELEGATE(memcpy, memmove_generic)
-FUNCTION_DELEGATE(memset, memset_generic)
-FUNCTION_DELEGATE(__memset_chk, __memset_chk_generic)
-FUNCTION_DELEGATE(strcpy, strcpy_generic)
-FUNCTION_DELEGATE(__strcpy_chk, __strcpy_chk_generic)
-FUNCTION_DELEGATE(stpcpy, stpcpy_generic)
-FUNCTION_DELEGATE(strcat, strcat_generic)
-FUNCTION_DELEGATE(__strcat_chk, __strcat_chk_generic)
-FUNCTION_DELEGATE(strcmp, strcmp_generic)
-FUNCTION_DELEGATE(strlen, strlen_generic)
+#include <sys/cdefs.h>
+#include <sys/types.h>
+
+__BEGIN_DECLS
+
+/**
+ * [getentropy(3)](https://man7.org/linux/man-pages/man3/getentropy.3.html) fills the given buffer
+ * with random bytes.
+ *
+ * Returns 0 on success, and returns -1 and sets `errno` on failure.
+ *
+ * Available since API level 28.
+ *
+ * See also arc4random_buf() which is available in all API levels.
+ */
+
+#if __BIONIC_AVAILABILITY_GUARD(28)
+__nodiscard int getentropy(void* _Nonnull __buffer, size_t __buffer_size) __INTRODUCED_IN(28);
+#endif /* __BIONIC_AVAILABILITY_GUARD(28) */
+
+
+__END_DECLS
diff --git a/libc/include/bits/getopt.h b/libc/include/bits/getopt.h
index 0411716..8fc0463 100644
--- a/libc/include/bits/getopt.h
+++ b/libc/include/bits/getopt.h
@@ -33,17 +33,17 @@
 __BEGIN_DECLS
 
 /**
- * [getopt(3)](http://man7.org/linux/man-pages/man3/getopt.3.html) parses command-line options.
+ * [getopt(3)](https://man7.org/linux/man-pages/man3/getopt.3.html) parses command-line options.
  *
  * Returns the next option character on success, returns -1 if all options have been parsed, and
  * returns `'?'` on error.
  */
-int getopt(int __argc, char* const __argv[], const char* __options);
+int getopt(int __argc, char* const _Nonnull __argv[_Nullable], const char* _Nonnull __options);
 
 /**
  * Points to the text of the corresponding value for options that take an argument.
  */
-extern char* optarg;
+extern char* _Nullable optarg;
 
 /**
  * The index of the next element to be processed.
diff --git a/libc/include/bits/glibc-syscalls.h b/libc/include/bits/glibc-syscalls.h
index c144919..8c5a91d 100644
--- a/libc/include/bits/glibc-syscalls.h
+++ b/libc/include/bits/glibc-syscalls.h
@@ -36,9 +36,6 @@
 #if defined(__NR_arch_prctl)
   #define SYS_arch_prctl __NR_arch_prctl
 #endif
-#if defined(__NR_arch_specific_syscall)
-  #define SYS_arch_specific_syscall __NR_arch_specific_syscall
-#endif
 #if defined(__NR_arm_fadvise64_64)
   #define SYS_arm_fadvise64_64 __NR_arm_fadvise64_64
 #endif
@@ -60,6 +57,9 @@
 #if defined(__NR_brk)
   #define SYS_brk __NR_brk
 #endif
+#if defined(__NR_cachestat)
+  #define SYS_cachestat __NR_cachestat
+#endif
 #if defined(__NR_capget)
   #define SYS_capget __NR_capget
 #endif
@@ -219,6 +219,9 @@
 #if defined(__NR_fchmodat)
   #define SYS_fchmodat __NR_fchmodat
 #endif
+#if defined(__NR_fchmodat2)
+  #define SYS_fchmodat2 __NR_fchmodat2
+#endif
 #if defined(__NR_fchown)
   #define SYS_fchown __NR_fchown
 #endif
@@ -300,12 +303,21 @@
 #if defined(__NR_futex)
   #define SYS_futex __NR_futex
 #endif
+#if defined(__NR_futex_requeue)
+  #define SYS_futex_requeue __NR_futex_requeue
+#endif
 #if defined(__NR_futex_time64)
   #define SYS_futex_time64 __NR_futex_time64
 #endif
+#if defined(__NR_futex_wait)
+  #define SYS_futex_wait __NR_futex_wait
+#endif
 #if defined(__NR_futex_waitv)
   #define SYS_futex_waitv __NR_futex_waitv
 #endif
+#if defined(__NR_futex_wake)
+  #define SYS_futex_wake __NR_futex_wake
+#endif
 #if defined(__NR_futimesat)
   #define SYS_futimesat __NR_futimesat
 #endif
@@ -537,6 +549,9 @@
 #if defined(__NR_listen)
   #define SYS_listen __NR_listen
 #endif
+#if defined(__NR_listmount)
+  #define SYS_listmount __NR_listmount
+#endif
 #if defined(__NR_listxattr)
   #define SYS_listxattr __NR_listxattr
 #endif
@@ -561,6 +576,15 @@
 #if defined(__NR_lsetxattr)
   #define SYS_lsetxattr __NR_lsetxattr
 #endif
+#if defined(__NR_lsm_get_self_attr)
+  #define SYS_lsm_get_self_attr __NR_lsm_get_self_attr
+#endif
+#if defined(__NR_lsm_list_modules)
+  #define SYS_lsm_list_modules __NR_lsm_list_modules
+#endif
+#if defined(__NR_lsm_set_self_attr)
+  #define SYS_lsm_set_self_attr __NR_lsm_set_self_attr
+#endif
 #if defined(__NR_lstat)
   #define SYS_lstat __NR_lstat
 #endif
@@ -570,6 +594,9 @@
 #if defined(__NR_madvise)
   #define SYS_madvise __NR_madvise
 #endif
+#if defined(__NR_map_shadow_stack)
+  #define SYS_map_shadow_stack __NR_map_shadow_stack
+#endif
 #if defined(__NR_mbind)
   #define SYS_mbind __NR_mbind
 #endif
@@ -663,6 +690,9 @@
 #if defined(__NR_mremap)
   #define SYS_mremap __NR_mremap
 #endif
+#if defined(__NR_mseal)
+  #define SYS_mseal __NR_mseal
+#endif
 #if defined(__NR_msgctl)
   #define SYS_msgctl __NR_msgctl
 #endif
@@ -906,6 +936,12 @@
 #if defined(__NR_restart_syscall)
   #define SYS_restart_syscall __NR_restart_syscall
 #endif
+#if defined(__NR_riscv_flush_icache)
+  #define SYS_riscv_flush_icache __NR_riscv_flush_icache
+#endif
+#if defined(__NR_riscv_hwprobe)
+  #define SYS_riscv_hwprobe __NR_riscv_hwprobe
+#endif
 #if defined(__NR_rmdir)
   #define SYS_rmdir __NR_rmdir
 #endif
@@ -1194,6 +1230,9 @@
 #if defined(__NR_statfs64)
   #define SYS_statfs64 __NR_statfs64
 #endif
+#if defined(__NR_statmount)
+  #define SYS_statmount __NR_statmount
+#endif
 #if defined(__NR_statx)
   #define SYS_statx __NR_statx
 #endif
@@ -1230,9 +1269,6 @@
 #if defined(__NR_syscall)
   #define SYS_syscall __NR_syscall
 #endif
-#if defined(__NR_syscalls)
-  #define SYS_syscalls __NR_syscalls
-#endif
 #if defined(__NR_sysfs)
   #define SYS_sysfs __NR_sysfs
 #endif
@@ -1329,6 +1365,9 @@
 #if defined(__NR_unshare)
   #define SYS_unshare __NR_unshare
 #endif
+#if defined(__NR_uretprobe)
+  #define SYS_uretprobe __NR_uretprobe
+#endif
 #if defined(__NR_uselib)
   #define SYS_uselib __NR_uselib
 #endif
diff --git a/libc/include/bits/ioctl.h b/libc/include/bits/ioctl.h
index fd31a58..ae75880 100644
--- a/libc/include/bits/ioctl.h
+++ b/libc/include/bits/ioctl.h
@@ -38,9 +38,9 @@
 __BEGIN_DECLS
 
 /**
- * [ioctl(2)](http://man7.org/linux/man-pages/man2/ioctl.2.html) operates on device files.
+ * [ioctl(2)](https://man7.org/linux/man-pages/man2/ioctl.2.html) operates on device files.
  */
-int ioctl(int __fd, int __request, ...);
+int ioctl(int __fd, int __op, ...);
 
 /*
  * Work around unsigned -> signed conversion warnings: many common ioctl
@@ -57,7 +57,7 @@
  */
 #if !defined(BIONIC_IOCTL_NO_SIGNEDNESS_OVERLOAD)
 /* enable_if(1) just exists to break overloading ties. */
-int ioctl(int __fd, unsigned __request, ...) __overloadable __enable_if(1, "") __RENAME(ioctl);
+int ioctl(int __fd, unsigned __op, ...) __overloadable __enable_if(1, "") __RENAME(ioctl);
 #endif
 
 __END_DECLS
diff --git a/libc/include/bits/lockf.h b/libc/include/bits/lockf.h
index 58ab031..8f922b9 100644
--- a/libc/include/bits/lockf.h
+++ b/libc/include/bits/lockf.h
@@ -48,7 +48,7 @@
 __BEGIN_DECLS
 
 /**
- * [lockf(3)](http://man7.org/linux/man-pages/man3/lockf.3.html) manipulates POSIX file locks.
+ * [lockf(3)](https://man7.org/linux/man-pages/man3/lockf.3.html) manipulates POSIX file locks.
  *
  * Returns 0 on success, and returns -1 and sets `errno` on failure.
  *
@@ -56,12 +56,16 @@
  *
  * See also flock().
  */
-int lockf(int __fd, int __cmd, off_t __length) __RENAME_IF_FILE_OFFSET64(lockf64) __INTRODUCED_IN(24);
+
+#if __BIONIC_AVAILABILITY_GUARD(24)
+int lockf(int __fd, int __op, off_t __length) __RENAME_IF_FILE_OFFSET64(lockf64) __INTRODUCED_IN(24);
 
 /**
  * Like lockf() but allows using a 64-bit length
- * even from a 32-bit process without `__FILE_OFFSET_BITS=64`.
+ * even from a 32-bit process without `_FILE_OFFSET_BITS=64`.
  */
-int lockf64(int __fd, int __cmd, off64_t __length) __INTRODUCED_IN(24);
+int lockf64(int __fd, int __op, off64_t __length) __INTRODUCED_IN(24);
+#endif /* __BIONIC_AVAILABILITY_GUARD(24) */
+
 
 __END_DECLS
diff --git a/libm/fenv-access.h b/libc/include/bits/page_size.h
similarity index 69%
copy from libm/fenv-access.h
copy to libc/include/bits/page_size.h
index 7acb34d..594ffe5 100644
--- a/libm/fenv-access.h
+++ b/libc/include/bits/page_size.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2021 The Android Open Source Project
+ * Copyright (C) 2023 The Android Open Source Project
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -28,6 +28,22 @@
 
 #pragma once
 
-#if defined(__x86_64__) || defined(__i386__)
-#pragma STDC FENV_ACCESS ON
+#include <sys/cdefs.h>
+
+__BEGIN_DECLS
+
+// PAGE_SIZE is going away in Android. Prefer getpagesize() instead.
+//
+// For more info, see https://developer.android.com/16kb-page-size.
+//
+// To restore the original behavior, use __BIONIC_DEPRECATED_PAGE_SIZE_MACRO.
+
+#if (defined(__NDK_MAJOR__) && __NDK_MAJOR__ <= 27 && !defined(__BIONIC_NO_PAGE_SIZE_MACRO)) \
+    || defined(__BIONIC_DEPRECATED_PAGE_SIZE_MACRO) \
+    || defined(__arm__) \
+    || defined(__i386__)
+#define PAGE_SIZE 4096
+#define PAGE_MASK (~(PAGE_SIZE - 1))
 #endif
+
+__END_DECLS
diff --git a/libc/include/bits/posix_limits.h b/libc/include/bits/posix_limits.h
index 452f5f6..d98be27 100644
--- a/libc/include/bits/posix_limits.h
+++ b/libc/include/bits/posix_limits.h
@@ -40,7 +40,7 @@
     (((__ANDROID_API__) >= (level)) ? _POSIX_VERSION : __BIONIC_POSIX_FEATURE_MISSING)
 
 /* Availability macros. */
-/* See http://man7.org/linux/man-pages/man7/posixoptions.7.html for documentation. */
+/* See https://man7.org/linux/man-pages/man7/posixoptions.7.html for documentation. */
 /* Keep this list sorted by name. */
 #define _POSIX_ADVISORY_INFO __BIONIC_POSIX_FEATURE_SINCE(23) /* posix_memadvise arrived late. */
 #define _POSIX_ASYNCHRONOUS_IO __BIONIC_POSIX_FEATURE_MISSING
diff --git a/libc/include/bits/pthread_types.h b/libc/include/bits/pthread_types.h
index f359696..e30c4c1 100644
--- a/libc/include/bits/pthread_types.h
+++ b/libc/include/bits/pthread_types.h
@@ -43,7 +43,6 @@
 #endif
 } pthread_attr_t;
 
-#if __ANDROID_API__ >= 24
 typedef struct {
 #if defined(__LP64__)
   int64_t __private[4];
@@ -51,11 +50,8 @@
   int32_t __private[8];
 #endif
 } pthread_barrier_t;
-#endif
 
-#if __ANDROID_API__ >= 24
 typedef int pthread_barrierattr_t;
-#endif
 
 typedef struct {
 #if defined(__LP64__)
@@ -91,7 +87,6 @@
 
 typedef long pthread_rwlockattr_t;
 
-#if __ANDROID_API__ >= 24
 typedef struct {
 #if defined(__LP64__)
   int64_t __private;
@@ -99,6 +94,5 @@
   int32_t __private[2];
 #endif
 } pthread_spinlock_t;
-#endif
 
 typedef long pthread_t;
diff --git a/libc/include/bits/seek_constants.h b/libc/include/bits/seek_constants.h
index 6f3f22d..a4fffb2 100644
--- a/libc/include/bits/seek_constants.h
+++ b/libc/include/bits/seek_constants.h
@@ -33,6 +33,8 @@
  * @brief The `SEEK_` constants.
  */
 
+#include <sys/cdefs.h>
+
 /** Seek to an absolute offset. */
 #define SEEK_SET 0
 /** Seek relative to the current offset. */
@@ -46,7 +48,7 @@
  * Seek to the first data (non-hole) location in the file
  * greater than or equal to the given offset.
  *
- * See [lseek(2)](http://man7.org/linux/man-pages/man2/lseek.2.html).
+ * See [lseek(2)](https://man7.org/linux/man-pages/man2/lseek.2.html).
  */
 #define SEEK_DATA 3
 
@@ -54,7 +56,7 @@
  * Seek to the first hole (non-data) location in the file
  * greater than or equal to the given offset.
  *
- * See [lseek(2)](http://man7.org/linux/man-pages/man2/lseek.2.html).
+ * See [lseek(2)](https://man7.org/linux/man-pages/man2/lseek.2.html).
  */
 #define SEEK_HOLE 4
 
diff --git a/libc/include/bits/signal_types.h b/libc/include/bits/signal_types.h
index 699e257..d98901c 100644
--- a/libc/include/bits/signal_types.h
+++ b/libc/include/bits/signal_types.h
@@ -28,18 +28,11 @@
 
 #pragma once
 
-#include <limits.h>
 #include <sys/cdefs.h>
-#include <sys/types.h>
 
-/* For 64-bit, the kernel's struct sigaction doesn't match the POSIX one,
- * so we need to expose our own and translate behind the scenes.
- * For 32-bit, we're stuck with the definitions we already shipped,
- * even though they contain a sigset_t that's too small. See sigaction64.
- */
-#define sigaction __kernel_sigaction
+#include <limits.h>
 #include <linux/signal.h>
-#undef sigaction
+#include <sys/types.h>
 
 /* The arm and x86 kernel header files don't define _NSIG. */
 #ifndef _KERNEL__NSIG
@@ -64,8 +57,13 @@
 typedef struct { unsigned long __bits[_KERNEL__NSIG/(8*sizeof(long))]; } sigset64_t;
 #endif
 
+/* The kernel's struct sigaction doesn't match the POSIX one. */
+
 #if defined(__LP64__)
 
+/* For 64-bit, that's the only problem, and we only need two structs
+ * for source compatibility with 32-bit. */
+
 #define __SIGACTION_BODY \
   int sa_flags; \
   union { \
@@ -82,6 +80,12 @@
 
 #else
 
+/* For 32-bit, Android's ABIs used a too-small sigset_t that doesn't
+ * support RT signals, so we need two different structs.
+ */
+
+/* The arm32 kernel headers also pollute the namespace with these,
+ * but our header scrubber doesn't know how to remove #defines. */
 #undef sa_handler
 #undef sa_sigaction
 
@@ -95,7 +99,6 @@
   void (*sa_restorer)(void);
 };
 
-/* This matches the kernel's internal structure. */
 struct sigaction64 {
   union {
     sighandler_t sa_handler;
diff --git a/libm/fenv-access.h b/libc/include/bits/sockaddr_storage.h
similarity index 64%
copy from libm/fenv-access.h
copy to libc/include/bits/sockaddr_storage.h
index 7acb34d..effafab 100644
--- a/libm/fenv-access.h
+++ b/libc/include/bits/sockaddr_storage.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2021 The Android Open Source Project
+ * Copyright (C) 2023 The Android Open Source Project
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -28,6 +28,30 @@
 
 #pragma once
 
-#if defined(__x86_64__) || defined(__i386__)
-#pragma STDC FENV_ACCESS ON
-#endif
+/**
+ * @file bits/sockaddr_storage.h
+ * @brief The `sockaddr_storage` struct.
+ */
+
+#include <sys/cdefs.h>
+
+#include <bits/sa_family_t.h>
+
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wnullability-completeness"
+/**
+ * [sockaddr_storage](https://man7.org/linux/man-pages/man3/sockaddr.3type.html)
+ * is a structure large enough to contain any other `sockaddr_*` type, used to
+ * pass socket addresses without needing to know what kind of socket address
+ * you're passing.
+ */
+struct sockaddr_storage {
+  union {
+    struct {
+      sa_family_t ss_family;
+      char __data[128 - sizeof(sa_family_t)];
+    };
+    void* __align;
+  };
+};
+#pragma clang diagnostic pop
diff --git a/libc/include/bits/stdatomic.h b/libc/include/bits/stdatomic.h
index 2ce6ee6..ebdc9e5 100644
--- a/libc/include/bits/stdatomic.h
+++ b/libc/include/bits/stdatomic.h
@@ -134,15 +134,17 @@
 	memory_order_seq_cst = __ATOMIC_SEQ_CST
 } memory_order;
 
+#define kill_dependency(y) (y)
+
 /*
  * 7.17.4 Fences.
  */
 
-static __inline void atomic_thread_fence(memory_order __order __attribute__((unused))) {
+static __inline void atomic_thread_fence(memory_order __order __attribute__((__unused__))) {
 	__c11_atomic_thread_fence(__order);
 }
 
-static __inline void atomic_signal_fence(memory_order __order __attribute__((unused))) {
+static __inline void atomic_signal_fence(memory_order __order __attribute__((__unused__))) {
 	__c11_atomic_signal_fence(__order);
 }
 
@@ -269,18 +271,18 @@
 
 #define	ATOMIC_FLAG_INIT		{ ATOMIC_VAR_INIT(false) }
 
-static __inline bool atomic_flag_test_and_set_explicit(volatile atomic_flag *__object, memory_order __order) {
+static __inline bool atomic_flag_test_and_set_explicit(volatile atomic_flag * _Nonnull __object, memory_order __order) {
 	return (atomic_exchange_explicit(&__object->__flag, 1, __order));
 }
 
-static __inline void atomic_flag_clear_explicit(volatile atomic_flag *__object, memory_order __order) {
+static __inline void atomic_flag_clear_explicit(volatile atomic_flag * _Nonnull __object, memory_order __order) {
 	atomic_store_explicit(&__object->__flag, 0, __order);
 }
 
-static __inline bool atomic_flag_test_and_set(volatile atomic_flag *__object) {
+static __inline bool atomic_flag_test_and_set(volatile atomic_flag * _Nonnull __object) {
 	return (atomic_flag_test_and_set_explicit(__object, memory_order_seq_cst));
 }
 
-static __inline void atomic_flag_clear(volatile atomic_flag *__object) {
+static __inline void atomic_flag_clear(volatile atomic_flag * _Nonnull __object) {
 	atomic_flag_clear_explicit(__object, memory_order_seq_cst);
 }
diff --git a/libm/fenv-access.h b/libc/include/bits/stdlib_inlines.h
similarity index 71%
copy from libm/fenv-access.h
copy to libc/include/bits/stdlib_inlines.h
index 7acb34d..fffca19 100644
--- a/libm/fenv-access.h
+++ b/libc/include/bits/stdlib_inlines.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2021 The Android Open Source Project
+ * Copyright (C) 2024 The Android Open Source Project
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -28,6 +28,21 @@
 
 #pragma once
 
-#if defined(__x86_64__) || defined(__i386__)
-#pragma STDC FENV_ACCESS ON
+#include <xlocale.h>
+#include <sys/cdefs.h>
+
+#if !defined(__BIONIC_STDLIB_INLINE)
+#define __BIONIC_STDLIB_INLINE static __inline
 #endif
+
+__BEGIN_DECLS
+
+__BIONIC_STDLIB_INLINE double strtod_l(const char* _Nonnull __s, char* _Nullable * _Nullable __end_ptr, locale_t _Nonnull __l) {
+  return strtod(__s, __end_ptr);
+}
+
+__BIONIC_STDLIB_INLINE float strtof_l(const char* _Nonnull __s, char* _Nullable * _Nullable __end_ptr, locale_t _Nonnull __l) {
+  return strtof(__s, __end_ptr);
+}
+
+__END_DECLS
diff --git a/libc/include/bits/strcasecmp.h b/libc/include/bits/strcasecmp.h
index 3994b68..d76cec9 100644
--- a/libc/include/bits/strcasecmp.h
+++ b/libc/include/bits/strcasecmp.h
@@ -40,32 +40,40 @@
 __BEGIN_DECLS
 
 /**
- * [strcasecmp(3)](http://man7.org/linux/man-pages/man3/strcasecmp.3.html) compares two strings
+ * [strcasecmp(3)](https://man7.org/linux/man-pages/man3/strcasecmp.3.html) compares two strings
  * ignoring case.
  *
  * Returns an integer less than, equal to, or greater than zero if the first string is less than,
  * equal to, or greater than the second string (ignoring case).
  */
-int strcasecmp(const char* __s1, const char* __s2) __attribute_pure__;
+int strcasecmp(const char* _Nonnull __s1, const char* _Nonnull __s2) __attribute_pure__;
 
 /**
  * Like strcasecmp() but taking a `locale_t`.
  */
-int strcasecmp_l(const char* __s1, const char* __s2, locale_t __l) __attribute_pure__ __INTRODUCED_IN(23);
+
+#if __BIONIC_AVAILABILITY_GUARD(23)
+int strcasecmp_l(const char* _Nonnull __s1, const char* _Nonnull __s2, locale_t _Nonnull __l) __attribute_pure__ __INTRODUCED_IN(23);
+#endif /* __BIONIC_AVAILABILITY_GUARD(23) */
+
 
 /**
- * [strncasecmp(3)](http://man7.org/linux/man-pages/man3/strncasecmp.3.html) compares the first
+ * [strncasecmp(3)](https://man7.org/linux/man-pages/man3/strncasecmp.3.html) compares the first
  * `n` bytes of two strings ignoring case.
  *
  * Returns an integer less than, equal to, or greater than zero if the first `n` bytes of the
  * first string is less than, equal to, or greater than the first `n` bytes of the second
  * string (ignoring case).
  */
-int strncasecmp(const char* __s1, const char* __s2, size_t __n) __attribute_pure__;
+int strncasecmp(const char* _Nonnull __s1, const char* _Nonnull __s2, size_t __n) __attribute_pure__;
 
 /**
  * Like strncasecmp() but taking a `locale_t`.
  */
-int strncasecmp_l(const char* __s1, const char* __s2, size_t __n, locale_t __l) __attribute_pure__ __INTRODUCED_IN(23);
+
+#if __BIONIC_AVAILABILITY_GUARD(23)
+int strncasecmp_l(const char* _Nonnull __s1, const char* _Nonnull __s2, size_t __n, locale_t _Nonnull __l) __attribute_pure__ __INTRODUCED_IN(23);
+#endif /* __BIONIC_AVAILABILITY_GUARD(23) */
+
 
 __END_DECLS
diff --git a/libc/include/bits/struct_file.h b/libc/include/bits/struct_file.h
index abbd320..8cb8d28 100644
--- a/libc/include/bits/struct_file.h
+++ b/libc/include/bits/struct_file.h
@@ -39,6 +39,6 @@
 #else
   char __private[84];
 #endif
-} __attribute__((aligned(sizeof(void*))));
+} __attribute__((__aligned__(sizeof(void*))));
 
 __END_DECLS
diff --git a/libc/include/bits/swab.h b/libc/include/bits/swab.h
index 63281b6..da2865a 100644
--- a/libc/include/bits/swab.h
+++ b/libc/include/bits/swab.h
@@ -28,8 +28,9 @@
 
 #pragma once
 
-#include <stdint.h>
 #include <sys/cdefs.h>
+
+#include <stdint.h>
 #include <sys/types.h>
 
 #if !defined(__BIONIC_SWAB_INLINE)
@@ -38,7 +39,7 @@
 
 __BEGIN_DECLS
 
-__BIONIC_SWAB_INLINE void swab(const void* __void_src, void* __void_dst, ssize_t __byte_count) {
+__BIONIC_SWAB_INLINE void swab(const void* _Nonnull __void_src, void* _Nonnull __void_dst, ssize_t __byte_count) {
   const uint8_t* __src = __BIONIC_CAST(static_cast, const uint8_t*, __void_src);
   uint8_t* __dst = __BIONIC_CAST(static_cast, uint8_t*, __void_dst);
   while (__byte_count > 1) {
diff --git a/libc/include/bits/sysconf.h b/libc/include/bits/sysconf.h
index 8607adf..ecf26ba 100644
--- a/libc/include/bits/sysconf.h
+++ b/libc/include/bits/sysconf.h
@@ -26,172 +26,324 @@
  * SUCH DAMAGE.
  */
 
-#ifndef _BITS_SYSCONF_H_
-#define _BITS_SYSCONF_H_
+#pragma once
 
 #include <sys/cdefs.h>
 
-/* as listed by Posix sysconf() description */
-/* most of these will return -1 and ENOSYS  */
-
-#define _SC_ARG_MAX             0x0000
-#define _SC_BC_BASE_MAX         0x0001
-#define _SC_BC_DIM_MAX          0x0002
-#define _SC_BC_SCALE_MAX        0x0003
-#define _SC_BC_STRING_MAX       0x0004
-#define _SC_CHILD_MAX           0x0005
-#define _SC_CLK_TCK             0x0006
-#define _SC_COLL_WEIGHTS_MAX    0x0007
-#define _SC_EXPR_NEST_MAX       0x0008
-#define _SC_LINE_MAX            0x0009
-#define _SC_NGROUPS_MAX         0x000a
-#define _SC_OPEN_MAX            0x000b
-#define _SC_PASS_MAX            0x000c
-#define _SC_2_C_BIND            0x000d
-#define _SC_2_C_DEV             0x000e
-#define _SC_2_C_VERSION         0x000f  /* Obsolescent in POSIX.1-2008, TODO: remove it. */
-#define _SC_2_CHAR_TERM         0x0010
-#define _SC_2_FORT_DEV          0x0011
-#define _SC_2_FORT_RUN          0x0012
-#define _SC_2_LOCALEDEF         0x0013
-#define _SC_2_SW_DEV            0x0014
-#define _SC_2_UPE               0x0015
-#define _SC_2_VERSION           0x0016
-#define _SC_JOB_CONTROL         0x0017
-#define _SC_SAVED_IDS           0x0018
-#define _SC_VERSION             0x0019
-#define _SC_RE_DUP_MAX          0x001a
-#define _SC_STREAM_MAX          0x001b
-#define _SC_TZNAME_MAX          0x001c
-#define _SC_XOPEN_CRYPT         0x001d
-#define _SC_XOPEN_ENH_I18N      0x001e
-#define _SC_XOPEN_SHM           0x001f
-#define _SC_XOPEN_VERSION       0x0020
-#define _SC_XOPEN_XCU_VERSION   0x0021  /* Obsolescent in POSIX.1-2008, TODO: remove it. */
-#define _SC_XOPEN_REALTIME      0x0022
-#define _SC_XOPEN_REALTIME_THREADS  0x0023
-#define _SC_XOPEN_LEGACY        0x0024
-#define _SC_ATEXIT_MAX          0x0025
-#define _SC_IOV_MAX             0x0026
+/** sysconf() query for the maximum number of bytes of exec() arguments. */
+#define _SC_ARG_MAX 0x0000
+/** sysconf() query for bc(1) behavior equivalent to _POSIX2_BC_BASE_MAX. */
+#define _SC_BC_BASE_MAX 0x0001
+/** sysconf() query for bc(1) behavior equivalent to _POSIX2_BC_DIM_MAX. */
+#define _SC_BC_DIM_MAX 0x0002
+/** sysconf() query for bc(1) behavior equivalent to _POSIX2_BC_SCALE_MAX. */
+#define _SC_BC_SCALE_MAX 0x0003
+/** sysconf() query for bc(1) behavior equivalent to _POSIX2_BC_STRING_MAX. */
+#define _SC_BC_STRING_MAX 0x0004
+/** sysconf() query equivalent to RLIMIT_NPROC. */
+#define _SC_CHILD_MAX 0x0005
+/** sysconf() query equivalent to AT_CLKTCK. */
+#define _SC_CLK_TCK 0x0006
+/** sysconf() query for collation behavior equivalent to _POSIX2_COLL_WEIGHTS_MAX. */
+#define _SC_COLL_WEIGHTS_MAX 0x0007
+/** sysconf() query for expr(1) behavior equivalent to _POSIX2_EXPR_NEST_MAX. */
+#define _SC_EXPR_NEST_MAX 0x0008
+/** sysconf() query for command-line tool behavior equivalent to _POSIX2_LINE_MAX. */
+#define _SC_LINE_MAX 0x0009
+/** sysconf() query equivalent to NGROUPS_MAX. */
+#define _SC_NGROUPS_MAX 0x000a
+/** sysconf() query equivalent to RLIMIT_NOFILE. */
+#define _SC_OPEN_MAX 0x000b
+/** sysconf() query equivalent to PASS_MAX. */
+#define _SC_PASS_MAX 0x000c
+/** sysconf() query equivalent to _POSIX2_C_BIND. */
+#define _SC_2_C_BIND 0x000d
+/** sysconf() query equivalent to _POSIX2_C_DEV. */
+#define _SC_2_C_DEV 0x000e
+/** Obsolescent in POSIX.1-2008. */
+#define _SC_2_C_VERSION 0x000f
+/** sysconf() query equivalent to _POSIX2_CHAR_TERM. */
+#define _SC_2_CHAR_TERM 0x0010
+/** sysconf() query equivalent to _POSIX2_FORT_DEV. */
+#define _SC_2_FORT_DEV 0x0011
+/** sysconf() query equivalent to _POSIX2_FORT_RUN. */
+#define _SC_2_FORT_RUN 0x0012
+/** sysconf() query equivalent to _POSIX2_LOCALEDEF. */
+#define _SC_2_LOCALEDEF 0x0013
+/** sysconf() query equivalent to _POSIX2_SW_DEV. */
+#define _SC_2_SW_DEV 0x0014
+/** sysconf() query equivalent to _POSIX2_UPE. */
+#define _SC_2_UPE 0x0015
+/** sysconf() query equivalent to _POSIX2_VERSION. */
+#define _SC_2_VERSION 0x0016
+/** sysconf() query equivalent to _POSIX_JOB_CONTROL. */
+#define _SC_JOB_CONTROL 0x0017
+/** sysconf() query equivalent to _POSIX_SAVED_IDS. */
+#define _SC_SAVED_IDS 0x0018
+/** sysconf() query equivalent to _POSIX_VERSION. */
+#define _SC_VERSION 0x0019
+/** sysconf() query equivalent to _POSIX_RE_DUP_MAX. */
+#define _SC_RE_DUP_MAX 0x001a
+/** sysconf() query equivalent to FOPEN_MAX. */
+#define _SC_STREAM_MAX 0x001b
+/** sysconf() query equivalent to _POSIX_TZNAME_MAX. */
+#define _SC_TZNAME_MAX 0x001c
+/** sysconf() query equivalent to _XOPEN_CRYPT. */
+#define _SC_XOPEN_CRYPT 0x001d
+/** sysconf() query equivalent to _XOPEN_ENH_I18N. */
+#define _SC_XOPEN_ENH_I18N 0x001e
+/** sysconf() query equivalent to _XOPEN_SHM. */
+#define _SC_XOPEN_SHM 0x001f
+/** sysconf() query equivalent to _XOPEN_VERSION. */
+#define _SC_XOPEN_VERSION 0x0020
+/** Obsolescent in POSIX.1-2008. */
+#define _SC_XOPEN_XCU_VERSION 0x0021
+/** sysconf() query equivalent to _XOPEN_REALTIME. */
+#define _SC_XOPEN_REALTIME 0x0022
+/** sysconf() query equivalent to _XOPEN_REALTIME_THREADS. */
+#define _SC_XOPEN_REALTIME_THREADS 0x0023
+/** sysconf() query equivalent to _XOPEN_LEGACY. */
+#define _SC_XOPEN_LEGACY 0x0024
+/** sysconf() query for the maximum number of atexit() handlers. Unlimited on Android. */
+#define _SC_ATEXIT_MAX 0x0025
+/** sysconf() query equivalent to IOV_MAX. */
+#define _SC_IOV_MAX 0x0026
+/** Same as _SC_IOV_MAX. */
 #define _SC_UIO_MAXIOV _SC_IOV_MAX
-#define _SC_PAGESIZE            0x0027
-#define _SC_PAGE_SIZE           0x0028
-#define _SC_XOPEN_UNIX          0x0029
-#define _SC_XBS5_ILP32_OFF32    0x002a  /* Obsolescent in POSIX.1-2008, TODO: remove it. */
-#define _SC_XBS5_ILP32_OFFBIG   0x002b  /* Obsolescent in POSIX.1-2008, TODO: remove it. */
-#define _SC_XBS5_LP64_OFF64     0x002c  /* Obsolescent in POSIX.1-2008, TODO: remove it. */
-#define _SC_XBS5_LPBIG_OFFBIG   0x002d  /* Obsolescent in POSIX.1-2008, TODO: remove it. */
-#define _SC_AIO_LISTIO_MAX      0x002e
-#define _SC_AIO_MAX             0x002f
+/** Same as _SC_PAGE_SIZE. */
+#define _SC_PAGESIZE 0x0027
+/** sysconf() query equivalent to getpagesize(). */
+#define _SC_PAGE_SIZE 0x0028
+/** sysconf() query equivalent to _XOPEN_UNIX. */
+#define _SC_XOPEN_UNIX 0x0029
+/** Obsolescent in POSIX.1-2008. */
+#define _SC_XBS5_ILP32_OFF32 0x002a
+/** Obsolescent in POSIX.1-2008. */
+#define _SC_XBS5_ILP32_OFFBIG 0x002b
+/** Obsolescent in POSIX.1-2008. */
+#define _SC_XBS5_LP64_OFF64 0x002c
+/** Obsolescent in POSIX.1-2008. */
+#define _SC_XBS5_LPBIG_OFFBIG 0x002d
+/** sysconf() query equivalent to _POSIX_AIO_LISTIO_MAX. */
+#define _SC_AIO_LISTIO_MAX 0x002e
+/** sysconf() query equivalent to _POSIX_AIO_MAX. */
+#define _SC_AIO_MAX 0x002f
+/** Unimplemented on Android. */
 #define _SC_AIO_PRIO_DELTA_MAX  0x0030
-#define _SC_DELAYTIMER_MAX      0x0031
-#define _SC_MQ_OPEN_MAX         0x0032
-#define _SC_MQ_PRIO_MAX         0x0033
-#define _SC_RTSIG_MAX           0x0034
-#define _SC_SEM_NSEMS_MAX       0x0035
-#define _SC_SEM_VALUE_MAX       0x0036
-#define _SC_SIGQUEUE_MAX        0x0037
-#define _SC_TIMER_MAX           0x0038
-#define _SC_ASYNCHRONOUS_IO     0x0039
-#define _SC_FSYNC               0x003a
-#define _SC_MAPPED_FILES        0x003b
-#define _SC_MEMLOCK             0x003c
-#define _SC_MEMLOCK_RANGE       0x003d
-#define _SC_MEMORY_PROTECTION   0x003e
-#define _SC_MESSAGE_PASSING     0x003f
-#define _SC_PRIORITIZED_IO      0x0040
+/** sysconf() query equivalent to _POSIX_DELAYTIMER_MAX. */
+#define _SC_DELAYTIMER_MAX 0x0031
+/** sysconf() query equivalent to _POSIX_MQ_OPEN_MAX. */
+#define _SC_MQ_OPEN_MAX 0x0032
+/** sysconf() query equivalent to _POSIX_MQ_PRIO_MAX. */
+#define _SC_MQ_PRIO_MAX 0x0033
+/** sysconf() query equivalent to RTSIG_MAX. Constant on Android. */
+#define _SC_RTSIG_MAX 0x0034
+/** sysconf() query equivalent to _POSIX_SEM_NSEMS_MAX. Constant on Android. */
+#define _SC_SEM_NSEMS_MAX 0x0035
+/** sysconf() query equivalent to SEM_VALUE_MAX. Constant on Android. */
+#define _SC_SEM_VALUE_MAX 0x0036
+/** sysconf() query equivalent to _POSIX_SIGQUEUE_MAX. */
+#define _SC_SIGQUEUE_MAX 0x0037
+/** sysconf() query equivalent to _POSIX_TIMER_MAX. */
+#define _SC_TIMER_MAX 0x0038
+/** sysconf() query equivalent to _POSIX_ASYNCHRONOUS_IO. */
+#define _SC_ASYNCHRONOUS_IO 0x0039
+/** sysconf() query equivalent to _POSIX_FSYNC. */
+#define _SC_FSYNC 0x003a
+/** sysconf() query equivalent to _POSIX_MAPPED_FILES. */
+#define _SC_MAPPED_FILES 0x003b
+/** sysconf() query equivalent to _POSIX_MEMLOCK. */
+#define _SC_MEMLOCK 0x003c
+/** sysconf() query equivalent to _POSIX_MEMLOCK_RANGE. */
+#define _SC_MEMLOCK_RANGE 0x003d
+/** sysconf() query equivalent to _POSIX_MEMORY_PROTECTION. */
+#define _SC_MEMORY_PROTECTION 0x003e
+/** sysconf() query equivalent to _POSIX_MESSAGE_PASSING. */
+#define _SC_MESSAGE_PASSING 0x003f
+/** sysconf() query equivalent to _POSIX_PRIORITIZED_IO. */
+#define _SC_PRIORITIZED_IO 0x0040
+/** sysconf() query equivalent to _POSIX_PRIORITY_SCHEDULING. */
 #define _SC_PRIORITY_SCHEDULING 0x0041
-#define _SC_REALTIME_SIGNALS    0x0042
-#define _SC_SEMAPHORES          0x0043
-#define _SC_SHARED_MEMORY_OBJECTS  0x0044
-#define _SC_SYNCHRONIZED_IO     0x0045
-#define _SC_TIMERS              0x0046
-#define _SC_GETGR_R_SIZE_MAX    0x0047
-#define _SC_GETPW_R_SIZE_MAX    0x0048
-#define _SC_LOGIN_NAME_MAX      0x0049
-#define _SC_THREAD_DESTRUCTOR_ITERATIONS  0x004a
-#define _SC_THREAD_KEYS_MAX     0x004b
-#define _SC_THREAD_STACK_MIN    0x004c
-#define _SC_THREAD_THREADS_MAX  0x004d
-#define _SC_TTY_NAME_MAX        0x004e
-
-#define _SC_THREADS                     0x004f
-#define _SC_THREAD_ATTR_STACKADDR       0x0050
-#define _SC_THREAD_ATTR_STACKSIZE       0x0051
-#define _SC_THREAD_PRIORITY_SCHEDULING  0x0052
-#define _SC_THREAD_PRIO_INHERIT         0x0053
-#define _SC_THREAD_PRIO_PROTECT         0x0054
-#define _SC_THREAD_SAFE_FUNCTIONS       0x0055
-
-#define _SC_NPROCESSORS_CONF            0x0060
-#define _SC_NPROCESSORS_ONLN            0x0061
-#define _SC_PHYS_PAGES                  0x0062
-#define _SC_AVPHYS_PAGES                0x0063
-#define _SC_MONOTONIC_CLOCK             0x0064
-
-#define _SC_2_PBS               0x0065
-#define _SC_2_PBS_ACCOUNTING    0x0066
-#define _SC_2_PBS_CHECKPOINT    0x0067
-#define _SC_2_PBS_LOCATE        0x0068
-#define _SC_2_PBS_MESSAGE       0x0069
-#define _SC_2_PBS_TRACK         0x006a
-#define _SC_ADVISORY_INFO       0x006b
-#define _SC_BARRIERS            0x006c
-#define _SC_CLOCK_SELECTION     0x006d
-#define _SC_CPUTIME             0x006e
-#define _SC_HOST_NAME_MAX       0x006f
-#define _SC_IPV6                0x0070
-#define _SC_RAW_SOCKETS         0x0071
+/** sysconf() query equivalent to _POSIX_REALTIME_SIGNALS. */
+#define _SC_REALTIME_SIGNALS 0x0042
+/** sysconf() query equivalent to _POSIX_SEMAPHORES. */
+#define _SC_SEMAPHORES 0x0043
+/** sysconf() query equivalent to _POSIX_SHARED_MEMORY_OBJECTS. */
+#define _SC_SHARED_MEMORY_OBJECTS 0x0044
+/** sysconf() query equivalent to _POSIX_SYNCHRONIZED_IO. */
+#define _SC_SYNCHRONIZED_IO 0x0045
+/** sysconf() query equivalent to _POSIX_TIMERS. */
+#define _SC_TIMERS 0x0046
+/** sysconf() query for an initial size for getgrgid_r() and getgrnam_r() buffers. */
+#define _SC_GETGR_R_SIZE_MAX 0x0047
+/** sysconf() query for an initial size for getpwuid_r() and getpwnam_r() buffers. */
+#define _SC_GETPW_R_SIZE_MAX 0x0048
+/** sysconf() query equivalent to LOGIN_NAME_MAX. */
+#define _SC_LOGIN_NAME_MAX 0x0049
+/** sysconf() query equivalent to PTHREAD_DESTRUCTOR_ITERATIONS. */
+#define _SC_THREAD_DESTRUCTOR_ITERATIONS 0x004a
+/** sysconf() query equivalent to PTHREAD_KEYS_MAX. */
+#define _SC_THREAD_KEYS_MAX 0x004b
+/** sysconf() query equivalent to PTHREAD_STACK_MIN. */
+#define _SC_THREAD_STACK_MIN 0x004c
+/** sysconf() query for a maximum number of threads. Unlimited on Android. */
+#define _SC_THREAD_THREADS_MAX 0x004d
+/** sysconf() query equivalent to TTY_NAME_MAX. */
+#define _SC_TTY_NAME_MAX 0x004e
+/** sysconf() query equivalent to _POSIX_THREADS. */
+#define _SC_THREADS 0x004f
+/** sysconf() query equivalent to _POSIX_THREAD_ATTR_STACKADDR. */
+#define _SC_THREAD_ATTR_STACKADDR 0x0050
+/** sysconf() query equivalent to _POSIX_THREAD_ATTR_STACKSIZE. */
+#define _SC_THREAD_ATTR_STACKSIZE 0x0051
+/** sysconf() query equivalent to _POSIX_THREAD_PRIORITY_SCHEDULING. */
+#define _SC_THREAD_PRIORITY_SCHEDULING 0x0052
+/** sysconf() query equivalent to _POSIX_THREAD_PRIO_INHERIT. */
+#define _SC_THREAD_PRIO_INHERIT 0x0053
+/** sysconf() query equivalent to _POSIX_THREAD_PRIO_PROTECT. */
+#define _SC_THREAD_PRIO_PROTECT 0x0054
+/** sysconf() query equivalent to _POSIX_THREAD_SAFE_FUNCTIONS. */
+#define _SC_THREAD_SAFE_FUNCTIONS 0x0055
+/** sysconf() query equivalent to get_nprocs_conf(). */
+#define _SC_NPROCESSORS_CONF 0x0060
+/** sysconf() query equivalent to get_nprocs(). */
+#define _SC_NPROCESSORS_ONLN 0x0061
+/** sysconf() query equivalent to get_phys_pages(). */
+#define _SC_PHYS_PAGES 0x0062
+/** sysconf() query equivalent to get_avphys_pages(). */
+#define _SC_AVPHYS_PAGES 0x0063
+/** sysconf() query equivalent to _POSIX_MONOTONIC_CLOCK. */
+#define _SC_MONOTONIC_CLOCK 0x0064
+/** Obsolescent in POSIX.1-2008. */
+#define _SC_2_PBS 0x0065
+/** Obsolescent in POSIX.1-2008. */
+#define _SC_2_PBS_ACCOUNTING 0x0066
+/** Obsolescent in POSIX.1-2008. */
+#define _SC_2_PBS_CHECKPOINT 0x0067
+/** Obsolescent in POSIX.1-2008. */
+#define _SC_2_PBS_LOCATE 0x0068
+/** Obsolescent in POSIX.1-2008. */
+#define _SC_2_PBS_MESSAGE 0x0069
+/** Obsolescent in POSIX.1-2008. */
+#define _SC_2_PBS_TRACK 0x006a
+/** sysconf() query equivalent to _POSIX_ADVISORY_INFO. */
+#define _SC_ADVISORY_INFO 0x006b
+/** sysconf() query equivalent to _POSIX_BARRIERS. */
+#define _SC_BARRIERS 0x006c
+/** sysconf() query equivalent to _POSIX_CLOCK_SELECTION. */
+#define _SC_CLOCK_SELECTION 0x006d
+/** sysconf() query equivalent to _POSIX_CPUTIME. */
+#define _SC_CPUTIME 0x006e
+/** sysconf() query equivalent to _POSIX_HOST_NAME_MAX. */
+#define _SC_HOST_NAME_MAX 0x006f
+/** sysconf() query equivalent to _POSIX_IPV6. */
+#define _SC_IPV6 0x0070
+/** sysconf() query equivalent to _POSIX_RAW_SOCKETS. */
+#define _SC_RAW_SOCKETS 0x0071
+/** sysconf() query equivalent to _POSIX_READER_WRITER_LOCKS. */
 #define _SC_READER_WRITER_LOCKS 0x0072
-#define _SC_REGEXP              0x0073
-#define _SC_SHELL               0x0074
-#define _SC_SPAWN               0x0075
-#define _SC_SPIN_LOCKS          0x0076
-#define _SC_SPORADIC_SERVER     0x0077
-#define _SC_SS_REPL_MAX         0x0078
-#define _SC_SYMLOOP_MAX         0x0079
-#define _SC_THREAD_CPUTIME      0x007a
-#define _SC_THREAD_PROCESS_SHARED       0x007b
-#define _SC_THREAD_ROBUST_PRIO_INHERIT  0x007c
-#define _SC_THREAD_ROBUST_PRIO_PROTECT  0x007d
-#define _SC_THREAD_SPORADIC_SERVER      0x007e
-#define _SC_TIMEOUTS            0x007f
-#define _SC_TRACE               0x0080
-#define _SC_TRACE_EVENT_FILTER  0x0081
-#define _SC_TRACE_EVENT_NAME_MAX  0x0082
-#define _SC_TRACE_INHERIT       0x0083
-#define _SC_TRACE_LOG           0x0084
-#define _SC_TRACE_NAME_MAX      0x0085
-#define _SC_TRACE_SYS_MAX       0x0086
-#define _SC_TRACE_USER_EVENT_MAX  0x0087
-#define _SC_TYPED_MEMORY_OBJECTS  0x0088
-#define _SC_V7_ILP32_OFF32      0x0089
-#define _SC_V7_ILP32_OFFBIG     0x008a
-#define _SC_V7_LP64_OFF64       0x008b
-#define _SC_V7_LPBIG_OFFBIG     0x008c
-#define _SC_XOPEN_STREAMS       0x008d
-#define _SC_XOPEN_UUCP          0x008e
-
-#define _SC_LEVEL1_ICACHE_SIZE      0x008f
-#define _SC_LEVEL1_ICACHE_ASSOC     0x0090
-#define _SC_LEVEL1_ICACHE_LINESIZE  0x0091
-#define _SC_LEVEL1_DCACHE_SIZE      0x0092
-#define _SC_LEVEL1_DCACHE_ASSOC     0x0093
-#define _SC_LEVEL1_DCACHE_LINESIZE  0x0094
-#define _SC_LEVEL2_CACHE_SIZE       0x0095
-#define _SC_LEVEL2_CACHE_ASSOC      0x0096
-#define _SC_LEVEL2_CACHE_LINESIZE   0x0097
-#define _SC_LEVEL3_CACHE_SIZE       0x0098
-#define _SC_LEVEL3_CACHE_ASSOC      0x0099
-#define _SC_LEVEL3_CACHE_LINESIZE   0x009a
-#define _SC_LEVEL4_CACHE_SIZE       0x009b
-#define _SC_LEVEL4_CACHE_ASSOC      0x009c
-#define _SC_LEVEL4_CACHE_LINESIZE   0x009d
+/** sysconf() query equivalent to _POSIX_REGEXP. */
+#define _SC_REGEXP 0x0073
+/** sysconf() query equivalent to _POSIX_SHELL. */
+#define _SC_SHELL 0x0074
+/** sysconf() query equivalent to _POSIX_SPAWN. */
+#define _SC_SPAWN 0x0075
+/** sysconf() query equivalent to _POSIX_SPIN_LOCKS. */
+#define _SC_SPIN_LOCKS 0x0076
+/** sysconf() query equivalent to _POSIX_SPORADIC_SERVER. */
+#define _SC_SPORADIC_SERVER 0x0077
+/** sysconf() query equivalent to _POSIX_SS_REPL_MAX. */
+#define _SC_SS_REPL_MAX 0x0078
+/** sysconf() query equivalent to _POSIX_SYMLOOP_MAX. */
+#define _SC_SYMLOOP_MAX 0x0079
+/** sysconf() query equivalent to _POSIX_THREAD_CPUTIME. */
+#define _SC_THREAD_CPUTIME 0x007a
+/** sysconf() query equivalent to _POSIX_THREAD_PROCESS_SHARED. */
+#define _SC_THREAD_PROCESS_SHARED 0x007b
+/** sysconf() query equivalent to _POSIX_THREAD_ROBUST_PRIO_INHERIT. */
+#define _SC_THREAD_ROBUST_PRIO_INHERIT 0x007c
+/** sysconf() query equivalent to _POSIX_THREAD_ROBUST_PRIO_PROTECT. */
+#define _SC_THREAD_ROBUST_PRIO_PROTECT 0x007d
+/** sysconf() query equivalent to _POSIX_THREAD_SPORADIC_SERVER. */
+#define _SC_THREAD_SPORADIC_SERVER 0x007e
+/** sysconf() query equivalent to _POSIX_TIMEOUTS. */
+#define _SC_TIMEOUTS 0x007f
+/** Unimplemented. */
+#define _SC_TRACE 0x0080
+/** Unimplemented. */
+#define _SC_TRACE_EVENT_FILTER 0x0081
+/** Unimplemented. */
+#define _SC_TRACE_EVENT_NAME_MAX 0x0082
+/** Unimplemented. */
+#define _SC_TRACE_INHERIT 0x0083
+/** Unimplemented. */
+#define _SC_TRACE_LOG 0x0084
+/** Unimplemented. */
+#define _SC_TRACE_NAME_MAX 0x0085
+/** Unimplemented. */
+#define _SC_TRACE_SYS_MAX 0x0086
+/** Unimplemented. */
+#define _SC_TRACE_USER_EVENT_MAX 0x0087
+/** sysconf() query equivalent to _POSIX_TYPED_MEMORY_OBJECTS. */
+#define _SC_TYPED_MEMORY_OBJECTS 0x0088
+/** sysconf() query equivalent to _POSIX_V7_ILP32_OFF32. */
+#define _SC_V7_ILP32_OFF32 0x0089
+/** sysconf() query equivalent to _POSIX_V7_ILP32_OFFBIG. */
+#define _SC_V7_ILP32_OFFBIG 0x008a
+/** sysconf() query equivalent to _POSIX_V7_ILP64_OFF64. */
+#define _SC_V7_LP64_OFF64 0x008b
+/** sysconf() query equivalent to _POSIX_V7_ILP64_OFFBIG. */
+#define _SC_V7_LPBIG_OFFBIG 0x008c
+/** Unimplemented. */
+#define _SC_XOPEN_STREAMS 0x008d
+/** Meaningless in Android, unsupported in every other libc (but defined by POSIX). */
+#define _SC_XOPEN_UUCP 0x008e
+/** sysconf() query for the L1 instruction cache size. Not available on all architectures. */
+#define _SC_LEVEL1_ICACHE_SIZE 0x008f
+/** sysconf() query for the L1 instruction cache associativity. Not available on all architectures. */
+#define _SC_LEVEL1_ICACHE_ASSOC 0x0090
+/** sysconf() query for the L1 instruction cache line size. Not available on all architectures. */
+#define _SC_LEVEL1_ICACHE_LINESIZE 0x0091
+/** sysconf() query for the L1 data cache size. Not available on all architectures. */
+#define _SC_LEVEL1_DCACHE_SIZE 0x0092
+/** sysconf() query for the L1 data cache associativity. Not available on all architectures. */
+#define _SC_LEVEL1_DCACHE_ASSOC 0x0093
+/** sysconf() query for the L1 data cache line size. Not available on all architectures. */
+#define _SC_LEVEL1_DCACHE_LINESIZE 0x0094
+/** sysconf() query for the L2 cache size. Not available on all architectures. */
+#define _SC_LEVEL2_CACHE_SIZE 0x0095
+/** sysconf() query for the L2 cache associativity. Not available on all architectures. */
+#define _SC_LEVEL2_CACHE_ASSOC 0x0096
+/** sysconf() query for the L2 cache line size. Not available on all architectures. */
+#define _SC_LEVEL2_CACHE_LINESIZE 0x0097
+/** sysconf() query for the L3 cache size. Not available on all architectures. */
+#define _SC_LEVEL3_CACHE_SIZE 0x0098
+/** sysconf() query for the L3 cache associativity. Not available on all architectures. */
+#define _SC_LEVEL3_CACHE_ASSOC 0x0099
+/** sysconf() query for the L3 cache line size. Not available on all architectures. */
+#define _SC_LEVEL3_CACHE_LINESIZE 0x009a
+/** sysconf() query for the L4 cache size. Not available on all architectures. */
+#define _SC_LEVEL4_CACHE_SIZE 0x009b
+/** sysconf() query for the L4 cache associativity. Not available on all architectures. */
+#define _SC_LEVEL4_CACHE_ASSOC 0x009c
+/** sysconf() query for the L4 cache line size. Not available on all architectures. */
+#define _SC_LEVEL4_CACHE_LINESIZE 0x009d
 
 __BEGIN_DECLS
 
+/**
+ * [sysconf(3)](https://man7.org/linux/man-pages/man3/sysconf.3.html)
+ * gets system configuration at runtime, corresponding to the given
+ * `_SC_` constant. See the man page for details on how to interpret
+ * the results.
+ *
+ * For `_SC_` constants where an equivalent is given, it's cheaper on Android
+ * to go straight to that function call --- sysconf() is just a multiplexer.
+ * This may not be true on other systems, and other systems may not support the
+ * direct function, so sysconf() can be useful for portability, though despite
+ * POSIX's best efforts, the exact set of constants that return useful results
+ * will also vary by system.
+ */
 long sysconf(int __name);
 
 __END_DECLS
-
-#endif /* _SYS_SYSCONF_H_ */
diff --git a/libc/bionic/strnlen.c b/libc/include/bits/tcphdr.h
similarity index 64%
copy from libc/bionic/strnlen.c
copy to libc/include/bits/tcphdr.h
index 2c6f60a..a9b6fe0 100644
--- a/libc/bionic/strnlen.c
+++ b/libc/include/bits/tcphdr.h
@@ -25,14 +25,47 @@
  * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  */
-#include <string.h>
 
-size_t  strnlen(const char*  str, size_t  maxlen)
-{
-    char*  p = memchr(str, 0, maxlen);
+#pragma once
 
-    if (p == NULL)
-        return maxlen;
-    else
-        return (p - str);
-}
+#include <sys/cdefs.h>
+#include <stdint.h>
+
+__BEGIN_DECLS
+
+struct tcphdr {
+  __extension__ union {
+    struct {
+      uint16_t th_sport;
+      uint16_t th_dport;
+      uint32_t th_seq;
+      uint32_t th_ack;
+      uint8_t th_x2:4;
+      uint8_t th_off:4;
+      uint8_t th_flags;
+      uint16_t th_win;
+      uint16_t th_sum;
+      uint16_t th_urp;
+    };
+    struct {
+      uint16_t source;
+      uint16_t dest;
+      uint32_t seq;
+      uint32_t ack_seq;
+      uint16_t res1:4;
+      uint16_t doff:4;
+      uint16_t fin:1;
+      uint16_t syn:1;
+      uint16_t rst:1;
+      uint16_t psh:1;
+      uint16_t ack:1;
+      uint16_t urg:1;
+      uint16_t res2:2;
+      uint16_t window;
+      uint16_t check;
+      uint16_t urg_ptr;
+    };
+  };
+};
+
+__END_DECLS
diff --git a/libc/include/bits/termios_inlines.h b/libc/include/bits/termios_inlines.h
index 5f7cc42..bb04e4d 100644
--- a/libc/include/bits/termios_inlines.h
+++ b/libc/include/bits/termios_inlines.h
@@ -29,8 +29,9 @@
 #ifndef _BITS_TERMIOS_INLINES_H_
 #define _BITS_TERMIOS_INLINES_H_
 
-#include <errno.h>
 #include <sys/cdefs.h>
+
+#include <errno.h>
 #include <sys/ioctl.h>
 #include <sys/types.h>
 
@@ -45,19 +46,19 @@
 // Supporting separate input and output speeds would require an ABI
 // change for `struct termios`.
 
-static __inline speed_t cfgetspeed(const struct termios* s) {
+static __inline speed_t cfgetspeed(const struct termios* _Nonnull s) {
   return __BIONIC_CAST(static_cast, speed_t, s->c_cflag & CBAUD);
 }
 
-__BIONIC_TERMIOS_INLINE speed_t cfgetispeed(const struct termios* s) {
+__BIONIC_TERMIOS_INLINE speed_t cfgetispeed(const struct termios* _Nonnull s) {
   return cfgetspeed(s);
 }
 
-__BIONIC_TERMIOS_INLINE speed_t cfgetospeed(const struct termios* s) {
+__BIONIC_TERMIOS_INLINE speed_t cfgetospeed(const struct termios* _Nonnull s) {
   return cfgetspeed(s);
 }
 
-__BIONIC_TERMIOS_INLINE void cfmakeraw(struct termios* s) {
+__BIONIC_TERMIOS_INLINE void cfmakeraw(struct termios* _Nonnull s) {
   s->c_iflag &= ~(IGNBRK|BRKINT|PARMRK|ISTRIP|INLCR|IGNCR|ICRNL|IXON);
   s->c_oflag &= ~OPOST;
   s->c_lflag &= ~(ECHO|ECHONL|ICANON|ISIG|IEXTEN);
@@ -67,7 +68,7 @@
   s->c_cc[VTIME] = 0;
 }
 
-__BIONIC_TERMIOS_INLINE int cfsetspeed(struct termios* s, speed_t speed) {
+__BIONIC_TERMIOS_INLINE int cfsetspeed(struct termios* _Nonnull s, speed_t speed) {
   // CBAUD is 0x100f, and every matching bit pattern has a Bxxx constant.
   if ((speed & ~CBAUD) != 0) {
     errno = EINVAL;
@@ -77,11 +78,11 @@
   return 0;
 }
 
-__BIONIC_TERMIOS_INLINE int cfsetispeed(struct termios* s, speed_t speed) {
+__BIONIC_TERMIOS_INLINE int cfsetispeed(struct termios* _Nonnull s, speed_t speed) {
   return cfsetspeed(s, speed);
 }
 
-__BIONIC_TERMIOS_INLINE int cfsetospeed(struct termios* s, speed_t speed) {
+__BIONIC_TERMIOS_INLINE int cfsetospeed(struct termios* _Nonnull s, speed_t speed) {
   return cfsetspeed(s, speed);
 }
 
@@ -99,7 +100,7 @@
   return ioctl(fd, TCFLSH, __BIONIC_CAST(static_cast, unsigned long, queue));
 }
 
-__BIONIC_TERMIOS_INLINE int tcgetattr(int fd, struct termios* s) {
+__BIONIC_TERMIOS_INLINE int tcgetattr(int fd, struct termios* _Nonnull s) {
   return ioctl(fd, TCGETS, s);
 }
 
@@ -112,7 +113,7 @@
   return ioctl(fd, TCSBRKP, __BIONIC_CAST(static_cast, unsigned long, duration));
 }
 
-__BIONIC_TERMIOS_INLINE int tcsetattr(int fd, int optional_actions, const struct termios* s) {
+__BIONIC_TERMIOS_INLINE int tcsetattr(int fd, int optional_actions, const struct termios* _Nonnull s) {
   int cmd;
   switch (optional_actions) {
     case TCSANOW: cmd = TCSETS; break;
diff --git a/libm/fenv-access.h b/libc/include/bits/termios_winsize_inlines.h
similarity index 69%
copy from libm/fenv-access.h
copy to libc/include/bits/termios_winsize_inlines.h
index 7acb34d..86777b0 100644
--- a/libm/fenv-access.h
+++ b/libc/include/bits/termios_winsize_inlines.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2021 The Android Open Source Project
+ * Copyright (C) 2023 The Android Open Source Project
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -28,6 +28,26 @@
 
 #pragma once
 
-#if defined(__x86_64__) || defined(__i386__)
-#pragma STDC FENV_ACCESS ON
+#include <sys/cdefs.h>
+
+#include <errno.h>
+#include <sys/ioctl.h>
+#include <sys/types.h>
+
+#include <linux/termios.h>
+
+#if !defined(__BIONIC_TERMIOS_WINSIZE_INLINE)
+#define __BIONIC_TERMIOS_WINSIZE_INLINE static __inline
 #endif
+
+__BEGIN_DECLS
+
+__BIONIC_TERMIOS_WINSIZE_INLINE int tcgetwinsize(int __fd, struct winsize* _Nonnull __size) {
+  return ioctl(__fd, TIOCGWINSZ, __size);
+}
+
+__BIONIC_TERMIOS_WINSIZE_INLINE int tcsetwinsize(int __fd, const struct winsize* _Nonnull __size) {
+  return ioctl(__fd, TIOCSWINSZ, __size);
+}
+
+__END_DECLS
diff --git a/libc/include/bits/threads_inlines.h b/libc/include/bits/threads_inlines.h
index 17de4a1..ab294c1 100644
--- a/libc/include/bits/threads_inlines.h
+++ b/libc/include/bits/threads_inlines.h
@@ -28,6 +28,8 @@
 
 #pragma once
 
+#include <sys/cdefs.h>
+
 #include <threads.h>
 
 #include <errno.h>
@@ -48,46 +50,46 @@
   }
 }
 
-__BIONIC_THREADS_INLINE void call_once(once_flag* __flag,
-                                       void (*__function)(void)) {
+__BIONIC_THREADS_INLINE void call_once(once_flag* _Nonnull __flag,
+                                       void (* _Nonnull __function)(void)) {
   pthread_once(__flag, __function);
 }
 
 
 
-__BIONIC_THREADS_INLINE int cnd_broadcast(cnd_t* __cnd) {
+__BIONIC_THREADS_INLINE int cnd_broadcast(cnd_t* _Nonnull __cnd) {
   return __bionic_thrd_error(pthread_cond_broadcast(__cnd));
 }
 
-__BIONIC_THREADS_INLINE void cnd_destroy(cnd_t* __cnd) {
+__BIONIC_THREADS_INLINE void cnd_destroy(cnd_t* _Nonnull __cnd) {
   pthread_cond_destroy(__cnd);
 }
 
-__BIONIC_THREADS_INLINE int cnd_init(cnd_t* __cnd) {
+__BIONIC_THREADS_INLINE int cnd_init(cnd_t* _Nonnull __cnd) {
   return __bionic_thrd_error(pthread_cond_init(__cnd, NULL));
 }
 
-__BIONIC_THREADS_INLINE int cnd_signal(cnd_t* __cnd) {
+__BIONIC_THREADS_INLINE int cnd_signal(cnd_t* _Nonnull __cnd) {
   return __bionic_thrd_error(pthread_cond_signal(__cnd));
 }
 
-__BIONIC_THREADS_INLINE int cnd_timedwait(cnd_t* __cnd,
-                                          mtx_t* __mtx,
-                                          const struct timespec* __timeout) {
+__BIONIC_THREADS_INLINE int cnd_timedwait(cnd_t* _Nonnull __cnd,
+                                          mtx_t* _Nonnull __mtx,
+                                          const struct timespec* _Nullable __timeout) {
   return __bionic_thrd_error(pthread_cond_timedwait(__cnd, __mtx, __timeout));
 }
 
-__BIONIC_THREADS_INLINE int cnd_wait(cnd_t* __cnd, mtx_t* __mtx) {
+__BIONIC_THREADS_INLINE int cnd_wait(cnd_t* _Nonnull __cnd, mtx_t* _Nonnull __mtx) {
   return __bionic_thrd_error(pthread_cond_wait(__cnd, __mtx));
 }
 
 
 
-__BIONIC_THREADS_INLINE void mtx_destroy(mtx_t* __mtx) {
+__BIONIC_THREADS_INLINE void mtx_destroy(mtx_t* _Nonnull __mtx) {
   pthread_mutex_destroy(__mtx);
 }
 
-__BIONIC_THREADS_INLINE int mtx_init(mtx_t* __mtx, int __type) {
+__BIONIC_THREADS_INLINE int mtx_init(mtx_t* _Nonnull __mtx, int __type) {
   int __pthread_type = (__type & mtx_recursive) ? PTHREAD_MUTEX_RECURSIVE
                                                 : PTHREAD_MUTEX_NORMAL;
   __type &= ~mtx_recursive;
@@ -99,31 +101,29 @@
   return __bionic_thrd_error(pthread_mutex_init(__mtx, &__attr));
 }
 
-__BIONIC_THREADS_INLINE int mtx_lock(mtx_t* __mtx) {
+__BIONIC_THREADS_INLINE int mtx_lock(mtx_t* _Nonnull __mtx) {
   return __bionic_thrd_error(pthread_mutex_lock(__mtx));
 }
 
-__BIONIC_THREADS_INLINE int mtx_timedlock(mtx_t* __mtx,
-                                          const struct timespec* __timeout) {
+__BIONIC_THREADS_INLINE int mtx_timedlock(mtx_t* _Nonnull __mtx,
+                                          const struct timespec* _Nullable __timeout) {
   return __bionic_thrd_error(pthread_mutex_timedlock(__mtx, __timeout));
 }
 
-__BIONIC_THREADS_INLINE int mtx_trylock(mtx_t* __mtx) {
+__BIONIC_THREADS_INLINE int mtx_trylock(mtx_t* _Nonnull __mtx) {
   return __bionic_thrd_error(pthread_mutex_trylock(__mtx));
 }
 
-__BIONIC_THREADS_INLINE int mtx_unlock(mtx_t* __mtx) {
+__BIONIC_THREADS_INLINE int mtx_unlock(mtx_t* _Nonnull __mtx) {
   return __bionic_thrd_error(pthread_mutex_unlock(__mtx));
 }
 
-
-
 struct __bionic_thrd_data {
-  thrd_start_t __func;
-  void* __arg;
+  thrd_start_t _Nonnull __func;
+  void* _Nullable __arg;
 };
 
-static inline void* __bionic_thrd_trampoline(void* __arg) {
+static __inline void* _Nonnull __bionic_thrd_trampoline(void* _Nonnull __arg) {
   struct __bionic_thrd_data __data =
       *__BIONIC_CAST(static_cast, struct __bionic_thrd_data*, __arg);
   free(__arg);
@@ -132,9 +132,9 @@
                        __BIONIC_CAST(static_cast, uintptr_t, __result));
 }
 
-__BIONIC_THREADS_INLINE int thrd_create(thrd_t* __thrd,
-                                        thrd_start_t __func,
-                                        void* __arg) {
+__BIONIC_THREADS_INLINE int thrd_create(thrd_t* _Nonnull __thrd,
+                                        thrd_start_t _Nonnull __func,
+                                        void* _Nullable __arg) {
   struct __bionic_thrd_data* __pthread_arg =
       __BIONIC_CAST(static_cast, struct __bionic_thrd_data*,
                     malloc(sizeof(struct __bionic_thrd_data)));
@@ -164,7 +164,7 @@
                              __BIONIC_CAST(static_cast, uintptr_t, __result)));
 }
 
-__BIONIC_THREADS_INLINE int thrd_join(thrd_t __thrd, int* __result) {
+__BIONIC_THREADS_INLINE int thrd_join(thrd_t __thrd, int* _Nullable __result) {
   void* __pthread_result;
   if (pthread_join(__thrd, &__pthread_result) != 0) return thrd_error;
   if (__result) {
@@ -173,8 +173,8 @@
   return thrd_success;
 }
 
-__BIONIC_THREADS_INLINE int thrd_sleep(const struct timespec* __duration,
-                                       struct timespec* __remaining) {
+__BIONIC_THREADS_INLINE int thrd_sleep(const struct timespec* _Nonnull __duration,
+                                       struct timespec* _Nullable __remaining) {
   int __rc = nanosleep(__duration, __remaining);
   if (__rc == 0) return 0;
   return (errno == EINTR) ? -1 : -2;
@@ -186,7 +186,7 @@
 
 
 
-__BIONIC_THREADS_INLINE int tss_create(tss_t* __key, tss_dtor_t __dtor) {
+__BIONIC_THREADS_INLINE int tss_create(tss_t* _Nonnull __key, tss_dtor_t _Nullable __dtor) {
   return __bionic_thrd_error(pthread_key_create(__key, __dtor));
 }
 
@@ -194,11 +194,11 @@
   pthread_key_delete(__key);
 }
 
-__BIONIC_THREADS_INLINE void* tss_get(tss_t __key) {
+__BIONIC_THREADS_INLINE void* _Nullable tss_get(tss_t __key) {
   return pthread_getspecific(__key);
 }
 
-__BIONIC_THREADS_INLINE int tss_set(tss_t __key, void* __value) {
+__BIONIC_THREADS_INLINE int tss_set(tss_t __key, void* _Nonnull __value) {
   return __bionic_thrd_error(pthread_setspecific(__key, __value));
 }
 
diff --git a/libc/include/bits/wait.h b/libc/include/bits/wait.h
index a6a2129..c7f1fb0 100644
--- a/libc/include/bits/wait.h
+++ b/libc/include/bits/wait.h
@@ -53,7 +53,7 @@
 #define WIFEXITED(__status) (WTERMSIG(__status) == 0)
 
 /** Returns true if the process was stopped by a signal. */
-#define WIFSTOPPED(__status) (WTERMSIG(__status) == 0x7f)
+#define WIFSTOPPED(__status) (((__status) & 0xff) == 0x7f)
 
 /** Returns true if the process was terminated by a signal. */
 #define WIFSIGNALED(__status) (WTERMSIG((__status)+1) >= 2)
diff --git a/libc/include/bits/wctype.h b/libc/include/bits/wctype.h
index 0015261..d0cffec 100644
--- a/libc/include/bits/wctype.h
+++ b/libc/include/bits/wctype.h
@@ -39,7 +39,7 @@
 
 int iswalnum(wint_t __wc);
 int iswalpha(wint_t __wc);
-int iswblank(wint_t __wc) __INTRODUCED_IN(21);
+int iswblank(wint_t __wc);
 int iswcntrl(wint_t __wc);
 int iswdigit(wint_t __wc);
 int iswgraph(wint_t __wc);
@@ -54,12 +54,16 @@
 wint_t towupper(wint_t __wc);
 
 typedef long wctype_t;
-wctype_t wctype(const char* __name);
+wctype_t wctype(const char* _Nonnull __name);
 int iswctype(wint_t __wc, wctype_t __type);
 
 typedef const void* wctrans_t;
-wint_t towctrans(wint_t __wc, wctrans_t __transform) __INTRODUCED_IN_NO_GUARD_FOR_NDK(26);
-wctrans_t wctrans(const char* __name) __INTRODUCED_IN_NO_GUARD_FOR_NDK(26);
+
+#if __BIONIC_AVAILABILITY_GUARD(26)
+wint_t towctrans(wint_t __wc, wctrans_t _Nonnull __transform) __INTRODUCED_IN(26);
+wctrans_t _Nullable wctrans(const char* _Nonnull __name) __INTRODUCED_IN(26);
+#endif /* __BIONIC_AVAILABILITY_GUARD(26) */
+
 
 __END_DECLS
 
diff --git a/libc/include/byteswap.h b/libc/include/byteswap.h
index 0773426..a679ea0 100644
--- a/libc/include/byteswap.h
+++ b/libc/include/byteswap.h
@@ -37,19 +37,19 @@
 #include <sys/endian.h>
 
 /**
- * [bswap_16(3)](http://man7.org/linux/man-pages/man3/bswap_16.3.html) swaps the bytes in a
+ * [bswap_16(3)](https://man7.org/linux/man-pages/man3/bswap_16.3.html) swaps the bytes in a
  * 16-bit value.
  */
 #define bswap_16(x) __swap16(x)
 
 /**
- * [bswap_32(3)](http://man7.org/linux/man-pages/man3/bswap_32.3.html) swaps the bytes in a
+ * [bswap_32(3)](https://man7.org/linux/man-pages/man3/bswap_32.3.html) swaps the bytes in a
  * 32-bit value.
  */
 #define bswap_32(x) __swap32(x)
 
 /**
- * [bswap_64(3)](http://man7.org/linux/man-pages/man3/bswap_64.3.html) swaps the bytes in a
+ * [bswap_64(3)](https://man7.org/linux/man-pages/man3/bswap_64.3.html) swaps the bytes in a
  * 64-bit value.
  */
 #define bswap_64(x) __swap64(x)
diff --git a/libc/include/complex.h b/libc/include/complex.h
index 50da330..1115862 100644
--- a/libc/include/complex.h
+++ b/libc/include/complex.h
@@ -53,101 +53,217 @@
 
 /* 7.3.5 Trigonometric functions */
 /* 7.3.5.1 The cacos functions */
+
+#if __BIONIC_AVAILABILITY_GUARD(23)
 double complex cacos(double complex __z) __INTRODUCED_IN(23);
 float complex cacosf(float complex __z) __INTRODUCED_IN(23);
-long double complex cacosl(long double complex __z) __RENAME_LDBL(cacos, 23, 26);
+#endif /* __BIONIC_AVAILABILITY_GUARD(23) */
+
+
+#if __BIONIC_AVAILABILITY_GUARD(26)
+long double complex cacosl(long double complex __z) __INTRODUCED_IN(26);
+#endif /* __BIONIC_AVAILABILITY_GUARD(26) */
+
 /* 7.3.5.2 The casin functions */
+
+#if __BIONIC_AVAILABILITY_GUARD(23)
 double complex casin(double complex __z) __INTRODUCED_IN(23);
 float complex casinf(float complex __z) __INTRODUCED_IN(23);
-long double complex casinl(long double complex __z) __RENAME_LDBL(casin, 23, 26);
+#endif /* __BIONIC_AVAILABILITY_GUARD(23) */
+
+
+#if __BIONIC_AVAILABILITY_GUARD(26)
+long double complex casinl(long double complex __z) __INTRODUCED_IN(26);
+#endif /* __BIONIC_AVAILABILITY_GUARD(26) */
+
 /* 7.3.5.1 The catan functions */
+
+#if __BIONIC_AVAILABILITY_GUARD(23)
 double complex catan(double complex __z) __INTRODUCED_IN(23);
 float complex catanf(float complex __z) __INTRODUCED_IN(23);
-long double complex catanl(long double complex __z) __RENAME_LDBL(catan, 23, 26);
+#endif /* __BIONIC_AVAILABILITY_GUARD(23) */
+
+
+#if __BIONIC_AVAILABILITY_GUARD(26)
+long double complex catanl(long double complex __z) __INTRODUCED_IN(26);
+#endif /* __BIONIC_AVAILABILITY_GUARD(26) */
+
 /* 7.3.5.1 The ccos functions */
+
+#if __BIONIC_AVAILABILITY_GUARD(23)
 double complex ccos(double complex __z) __INTRODUCED_IN(23);
 float complex ccosf(float complex __z) __INTRODUCED_IN(23);
-long double complex ccosl(long double complex __z) __RENAME_LDBL(ccos, 23, 26);
+#endif /* __BIONIC_AVAILABILITY_GUARD(23) */
+
+
+#if __BIONIC_AVAILABILITY_GUARD(26)
+long double complex ccosl(long double complex __z) __INTRODUCED_IN(26);
+#endif /* __BIONIC_AVAILABILITY_GUARD(26) */
+
 /* 7.3.5.1 The csin functions */
+
+#if __BIONIC_AVAILABILITY_GUARD(23)
 double complex csin(double complex __z) __INTRODUCED_IN(23);
 float complex csinf(float complex __z) __INTRODUCED_IN(23);
-long double complex csinl(long double complex __z) __RENAME_LDBL(csin, 23, 26);
+#endif /* __BIONIC_AVAILABILITY_GUARD(23) */
+
+
+#if __BIONIC_AVAILABILITY_GUARD(26)
+long double complex csinl(long double complex __z) __INTRODUCED_IN(26);
+#endif /* __BIONIC_AVAILABILITY_GUARD(26) */
+
 /* 7.3.5.1 The ctan functions */
+
+#if __BIONIC_AVAILABILITY_GUARD(23)
 double complex ctan(double complex __z) __INTRODUCED_IN(23);
 float complex ctanf(float complex __z) __INTRODUCED_IN(23);
-long double complex ctanl(long double complex __z) __RENAME_LDBL(ctan, 23, 26);
+#endif /* __BIONIC_AVAILABILITY_GUARD(23) */
+
+
+#if __BIONIC_AVAILABILITY_GUARD(26)
+long double complex ctanl(long double complex __z) __INTRODUCED_IN(26);
+#endif /* __BIONIC_AVAILABILITY_GUARD(26) */
+
 
 /* 7.3.6 Hyperbolic functions */
 /* 7.3.6.1 The cacosh functions */
+
+#if __BIONIC_AVAILABILITY_GUARD(23)
 double complex cacosh(double complex __z) __INTRODUCED_IN(23);
 float complex cacoshf(float complex __z) __INTRODUCED_IN(23);
-long double complex cacoshl(long double complex __z) __RENAME_LDBL(cacosh, 23, 26);
+#endif /* __BIONIC_AVAILABILITY_GUARD(23) */
+
+
+#if __BIONIC_AVAILABILITY_GUARD(26)
+long double complex cacoshl(long double complex __z) __INTRODUCED_IN(26);
+#endif /* __BIONIC_AVAILABILITY_GUARD(26) */
+
 /* 7.3.6.2 The casinh functions */
+
+#if __BIONIC_AVAILABILITY_GUARD(23)
 double complex casinh(double complex __z) __INTRODUCED_IN(23);
 float complex casinhf(float complex __z) __INTRODUCED_IN(23);
-long double complex casinhl(long double complex __z) __RENAME_LDBL(casinh, 23, 26);
+#endif /* __BIONIC_AVAILABILITY_GUARD(23) */
+
+
+#if __BIONIC_AVAILABILITY_GUARD(26)
+long double complex casinhl(long double complex __z) __INTRODUCED_IN(26);
+#endif /* __BIONIC_AVAILABILITY_GUARD(26) */
+
 /* 7.3.6.3 The catanh functions */
+
+#if __BIONIC_AVAILABILITY_GUARD(23)
 double complex catanh(double complex __z) __INTRODUCED_IN(23);
 float complex catanhf(float complex __z) __INTRODUCED_IN(23);
-long double complex catanhl(long double complex __z) __RENAME_LDBL(catanh, 23, 26);
+#endif /* __BIONIC_AVAILABILITY_GUARD(23) */
+
+
+#if __BIONIC_AVAILABILITY_GUARD(26)
+long double complex catanhl(long double complex __z) __INTRODUCED_IN(26);
+#endif /* __BIONIC_AVAILABILITY_GUARD(26) */
+
 /* 7.3.6.4 The ccosh functions */
+
+#if __BIONIC_AVAILABILITY_GUARD(23)
 double complex ccosh(double complex __z) __INTRODUCED_IN(23);
 float complex ccoshf(float complex __z) __INTRODUCED_IN(23);
-long double complex ccoshl(long double complex __z) __RENAME_LDBL(ccosh, 23, 26);
+#endif /* __BIONIC_AVAILABILITY_GUARD(23) */
+
+
+#if __BIONIC_AVAILABILITY_GUARD(26)
+long double complex ccoshl(long double complex __z) __INTRODUCED_IN(26);
+#endif /* __BIONIC_AVAILABILITY_GUARD(26) */
+
 /* 7.3.6.5 The csinh functions */
+
+#if __BIONIC_AVAILABILITY_GUARD(23)
 double complex csinh(double complex __z) __INTRODUCED_IN(23);
 float complex csinhf(float complex __z) __INTRODUCED_IN(23);
-long double complex csinhl(long double complex __z) __RENAME_LDBL(csinh, 23, 26);
+#endif /* __BIONIC_AVAILABILITY_GUARD(23) */
+
+
+#if __BIONIC_AVAILABILITY_GUARD(26)
+long double complex csinhl(long double complex __z) __INTRODUCED_IN(26);
+#endif /* __BIONIC_AVAILABILITY_GUARD(26) */
+
 /* 7.3.6.6 The ctanh functions */
+
+#if __BIONIC_AVAILABILITY_GUARD(23)
 double complex ctanh(double complex __z) __INTRODUCED_IN(23);
 float complex ctanhf(float complex __z) __INTRODUCED_IN(23);
-long double complex ctanhl(long double complex __z) __RENAME_LDBL(ctanh, 23, 26);
+#endif /* __BIONIC_AVAILABILITY_GUARD(23) */
+
+
+#if __BIONIC_AVAILABILITY_GUARD(26)
+long double complex ctanhl(long double complex __z) __INTRODUCED_IN(26);
+#endif /* __BIONIC_AVAILABILITY_GUARD(26) */
+
 
 /* 7.3.7 Exponential and logarithmic functions */
 /* 7.3.7.1 The cexp functions */
+
+#if __BIONIC_AVAILABILITY_GUARD(23)
 double complex cexp(double complex __z) __INTRODUCED_IN(23);
 float complex cexpf(float complex __z) __INTRODUCED_IN(23);
-long double complex cexpl(long double complex __z) __RENAME_LDBL(cexp, 23, 26);
+#endif /* __BIONIC_AVAILABILITY_GUARD(23) */
+
+
+#if __BIONIC_AVAILABILITY_GUARD(26)
+long double complex cexpl(long double complex __z) __INTRODUCED_IN(26);
 /* 7.3.7.2 The clog functions */
 double complex clog(double complex __z) __INTRODUCED_IN(26);
 float complex clogf(float complex __z) __INTRODUCED_IN(26);
-long double complex clogl(long double complex __z) __RENAME_LDBL(clog, 26, 26);
+long double complex clogl(long double complex __z) __INTRODUCED_IN(26);
+#endif /* __BIONIC_AVAILABILITY_GUARD(26) */
+
 
 /* 7.3.8 Power and absolute-value functions */
 /* 7.3.8.1 The cabs functions */
+
+#if __BIONIC_AVAILABILITY_GUARD(23)
 double cabs(double complex __z) __INTRODUCED_IN(23);
 float cabsf(float complex __z) __INTRODUCED_IN(23);
-long double cabsl(long double complex __z) __INTRODUCED_IN_32(21) __INTRODUCED_IN_64(23) /*__RENAME_LDBL(cabs)*/;
+long double cabsl(long double complex __z) __INTRODUCED_IN(23);
+#endif /* __BIONIC_AVAILABILITY_GUARD(23) */
+
 /* 7.3.8.2 The cpow functions */
+
+#if __BIONIC_AVAILABILITY_GUARD(26)
 double complex cpow(double complex __x, double complex __z) __INTRODUCED_IN(26);
 float complex cpowf(float complex __x, float complex __z) __INTRODUCED_IN(26);
-long double complex cpowl(long double complex __x, long double complex __z) __RENAME_LDBL(cpow, 26, 26);
+long double complex cpowl(long double complex __x, long double complex __z) __INTRODUCED_IN(26);
+#endif /* __BIONIC_AVAILABILITY_GUARD(26) */
+
 /* 7.3.8.3 The csqrt functions */
+
+#if __BIONIC_AVAILABILITY_GUARD(23)
 double complex csqrt(double complex __z) __INTRODUCED_IN(23);
 float complex csqrtf(float complex __z) __INTRODUCED_IN(23);
-long double complex csqrtl(long double complex __z) __INTRODUCED_IN_32(21) __INTRODUCED_IN_64(23) /*__RENAME_LDBL(csqrt)*/;
+long double complex csqrtl(long double complex __z) __INTRODUCED_IN(23);
 
 /* 7.3.9 Manipulation functions */
 /* 7.3.9.1 The carg functions */
 double carg(double complex __z) __INTRODUCED_IN(23);
 float cargf(float complex __z) __INTRODUCED_IN(23);
-long double cargl(long double complex __z) __RENAME_LDBL(carg, 23, 23);
+long double cargl(long double complex __z) __INTRODUCED_IN(23);
 /* 7.3.9.2 The cimag functions */
 double cimag(double complex __z) __INTRODUCED_IN(23);
 float cimagf(float complex __z) __INTRODUCED_IN(23);
-long double cimagl(long double complex __z) __RENAME_LDBL(cimag, 23, 23);
+long double cimagl(long double complex __z) __INTRODUCED_IN(23);
 /* 7.3.9.3 The conj functions */
 double complex conj(double complex __z) __INTRODUCED_IN(23);
 float complex conjf(float complex __z) __INTRODUCED_IN(23);
-long double complex conjl(long double complex __z) __RENAME_LDBL(conj, 23, 23);
+long double complex conjl(long double complex __z) __INTRODUCED_IN(23);
 /* 7.3.9.4 The cproj functions */
 double complex cproj(double complex __z) __INTRODUCED_IN(23);
 float complex cprojf(float complex __z) __INTRODUCED_IN(23);
-long double complex cprojl(long double complex __z) __INTRODUCED_IN_32(21) __INTRODUCED_IN_64(23) /*__RENAME_LDBL(cproj)*/;
+long double complex cprojl(long double complex __z) __INTRODUCED_IN(23);
 /* 7.3.9.5 The creal functions */
 double creal(double complex __z) __INTRODUCED_IN(23);
 float crealf(float complex __z) __INTRODUCED_IN(23);
-long double creall(long double complex __z) __RENAME_LDBL(creal, 23, 23);
+long double creall(long double complex __z) __INTRODUCED_IN(23);
+#endif /* __BIONIC_AVAILABILITY_GUARD(23) */
+
 
 __END_DECLS
 
diff --git a/libc/include/ctype.h b/libc/include/ctype.h
index 3b82a76..dc3f673 100644
--- a/libc/include/ctype.h
+++ b/libc/include/ctype.h
@@ -34,6 +34,219 @@
  */
 
 #include <sys/cdefs.h>
+#include <xlocale.h>
 
+/* All the functions in this file are trivial, being but a single
+ * instruction on most architectures. For that reason, we inline them by
+ * default. This macro is meant for internal use only, so that we can
+ * also provide actual symbols for any caller that needs them.
+ */
+#if !defined(__BIONIC_CTYPE_INLINE)
 #define __BIONIC_CTYPE_INLINE static __inline
-#include <bits/ctype_inlines.h>
+#endif
+
+/** Internal implementation detail. Do not use. */
+#define _CTYPE_U 0x01
+/** Internal implementation detail. Do not use. */
+#define _CTYPE_L 0x02
+/** Internal implementation detail. Do not use. */
+#define _CTYPE_D 0x04
+/** Internal implementation detail. Do not use. */
+#define _CTYPE_S 0x08
+/** Internal implementation detail. Do not use. */
+#define _CTYPE_P 0x10
+/** Internal implementation detail. Do not use. */
+#define _CTYPE_C 0x20
+/** Internal implementation detail. Do not use. */
+#define _CTYPE_X 0x40
+/** Internal implementation detail. Do not use. */
+#define _CTYPE_B 0x80
+/** Internal implementation detail. Do not use. */
+#define _CTYPE_R (_CTYPE_P|_CTYPE_U|_CTYPE_L|_CTYPE_D|_CTYPE_B)
+/** Internal implementation detail. Do not use. */
+#define _CTYPE_A (_CTYPE_L|_CTYPE_U)
+/** Internal implementation detail. Do not use. */
+#define _CTYPE_N _CTYPE_D
+
+__BEGIN_DECLS
+
+/** Internal implementation detail. Do not use. */
+extern const char* _ctype_;
+
+/**
+ * Returns the corresponding lower-case character if `ch` is upper-case, or undefined otherwise.
+ *
+ * Prefer tolower() instead.
+ */
+__BIONIC_CTYPE_INLINE int _tolower(int __ch) {
+  return __ch | 0x20;
+}
+
+/**
+ * Returns the corresponding upper-case character if `ch` is lower-case, or undefined otherwise.
+ *
+ * Prefer toupper() instead.
+ */
+__BIONIC_CTYPE_INLINE int _toupper(int __ch) {
+  // Using EOR rather than AND makes no difference on arm, but saves an
+  // instruction on arm64.
+  return __ch ^ 0x20;
+}
+
+/** Internal implementation detail. Do not use. */
+__attribute__((__no_sanitize__("unsigned-integer-overflow")))
+__BIONIC_CTYPE_INLINE int __bionic_ctype_in_range(unsigned __lo, int __ch, unsigned __hi) {
+  return (__BIONIC_CAST(static_cast, unsigned, __ch) - __lo) < (__hi - __lo + 1);
+}
+
+/** Returns true if `ch` is in `[A-Za-z]`. */
+__BIONIC_CTYPE_INLINE int isalpha(int __ch) {
+  return __bionic_ctype_in_range('a', _tolower(__ch), 'z');
+}
+
+/** Returns true if `ch` is a space or tab. */
+__BIONIC_CTYPE_INLINE int isblank(int __ch) {
+  return __ch == ' ' || __ch == '\t';
+}
+
+/** Returns true if `ch` is a control character (any character before space, plus DEL). */
+__BIONIC_CTYPE_INLINE int iscntrl(int __ch) {
+  return (__BIONIC_CAST(static_cast, unsigned, __ch) < ' ') || __ch == 0x7f;
+}
+
+/** Returns true if `ch` is in `[0-9]`. */
+__BIONIC_CTYPE_INLINE int isdigit(int __ch) {
+  return __bionic_ctype_in_range('0', __ch, '9');
+}
+
+/** Returns true if `ch` is `[A-Za-z0-9]` or punctuation. */
+__BIONIC_CTYPE_INLINE int isgraph(int __ch) {
+  return __bionic_ctype_in_range('!', __ch, '~');
+}
+
+/** Returns true if `ch` is in `[a-z]`. */
+__BIONIC_CTYPE_INLINE int islower(int __ch) {
+  return __bionic_ctype_in_range('a', __ch, 'z');
+}
+
+/** Returns true if `ch` is `[A-Za-z0-9]` or punctuation or space. */
+__BIONIC_CTYPE_INLINE int isprint(int __ch) {
+  return __bionic_ctype_in_range(' ', __ch, '~');
+}
+
+/** Returns true if `ch` is in `[ \f\n\r\t\v]`. */
+__BIONIC_CTYPE_INLINE int isspace(int __ch) {
+  return __ch == ' ' || __bionic_ctype_in_range('\t', __ch, '\r');
+}
+
+/** Returns true if `ch` is in `[A-Z]`. */
+__BIONIC_CTYPE_INLINE int isupper(int __ch) {
+  return __bionic_ctype_in_range('A', __ch, 'Z');
+}
+
+/** Returns true if `ch` is in `[0-9A-Fa-f]`. */
+__BIONIC_CTYPE_INLINE int isxdigit(int __ch) {
+  return isdigit(__ch) || __bionic_ctype_in_range('a', _tolower(__ch), 'f') ;
+}
+
+/** Returns true if `ch` is in `[A-Za-z0-9]`. */
+__BIONIC_CTYPE_INLINE int isalnum(int __ch) {
+  return isalpha(__ch) || isdigit(__ch);
+}
+
+/** Returns true if `ch` is punctuation. */
+__BIONIC_CTYPE_INLINE int ispunct(int __ch) {
+  return isgraph(__ch) && !isalnum(__ch);
+}
+
+/** Returns the corresponding lower-case character if `ch` is upper-case, or `ch` otherwise. */
+__BIONIC_CTYPE_INLINE int tolower(int __ch) {
+  return (__bionic_ctype_in_range('A', __ch, 'Z')) ? _tolower(__ch) : __ch;
+}
+
+/** Returns the corresponding upper-case character if `ch` is lower-case, or `ch` otherwise. */
+__BIONIC_CTYPE_INLINE int toupper(int __ch) {
+  return (__bionic_ctype_in_range('a', __ch, 'z')) ? _toupper(__ch) : __ch;
+}
+
+/** Returns true if `ch` is less than 0x80. */
+__BIONIC_CTYPE_INLINE int isascii(int __ch) {
+  return __BIONIC_CAST(static_cast, unsigned, __ch) < 0x80;
+}
+
+/** Returns `ch & 0x7f`. */
+__BIONIC_CTYPE_INLINE int toascii(int __ch) {
+  return __ch & 0x7f;
+}
+
+/** Like isalnum() but with an ignored `locale_t`. */
+__BIONIC_CTYPE_INLINE int isalnum_l(int __ch, locale_t __l) {
+  return isalnum(__ch);
+}
+
+/** Like isalpha() but with an ignored `locale_t`. */
+__BIONIC_CTYPE_INLINE int isalpha_l(int __ch, locale_t __l) {
+  return isalpha(__ch);
+}
+
+/** Like isblank() but with an ignored `locale_t`. */
+__BIONIC_CTYPE_INLINE int isblank_l(int __ch, locale_t __l) {
+  return isblank(__ch);
+}
+
+/** Like iscntrl() but with an ignored `locale_t`. */
+__BIONIC_CTYPE_INLINE int iscntrl_l(int __ch, locale_t __l) {
+  return iscntrl(__ch);
+}
+
+/** Like isdigit() but with an ignored `locale_t`. */
+__BIONIC_CTYPE_INLINE int isdigit_l(int __ch, locale_t __l) {
+  return isdigit(__ch);
+}
+
+/** Like isgraph() but with an ignored `locale_t`. */
+__BIONIC_CTYPE_INLINE int isgraph_l(int __ch, locale_t __l) {
+  return isgraph(__ch);
+}
+
+/** Like islower() but with an ignored `locale_t`. */
+__BIONIC_CTYPE_INLINE int islower_l(int __ch, locale_t __l) {
+  return islower(__ch);
+}
+
+/** Like isprint() but with an ignored `locale_t`. */
+__BIONIC_CTYPE_INLINE int isprint_l(int __ch, locale_t __l) {
+  return isprint(__ch);
+}
+
+/** Like ispunct() but with an ignored `locale_t`. */
+__BIONIC_CTYPE_INLINE int ispunct_l(int __ch, locale_t __l) {
+  return ispunct(__ch);
+}
+
+/** Like isspace() but with an ignored `locale_t`. */
+__BIONIC_CTYPE_INLINE int isspace_l(int __ch, locale_t __l) {
+  return isspace(__ch);
+}
+
+/** Like isupper() but with an ignored `locale_t`. */
+__BIONIC_CTYPE_INLINE int isupper_l(int __ch, locale_t __l) {
+  return isupper(__ch);
+}
+
+/** Like isxdigit() but with an ignored `locale_t`. */
+__BIONIC_CTYPE_INLINE int isxdigit_l(int __ch, locale_t __l) {
+  return isxdigit(__ch);
+}
+
+/** Like tolower() but with an ignored `locale_t`. */
+__BIONIC_CTYPE_INLINE int tolower_l(int __ch, locale_t __l) {
+  return tolower(__ch);
+}
+
+/** Like toupper() but with an ignored `locale_t`. */
+__BIONIC_CTYPE_INLINE int toupper_l(int __ch, locale_t __l) {
+  return toupper(__ch);
+}
+
+__END_DECLS
diff --git a/libc/include/dirent.h b/libc/include/dirent.h
index 2751b9e..8058cfb 100644
--- a/libc/include/dirent.h
+++ b/libc/include/dirent.h
@@ -33,8 +33,9 @@
  * @brief Directory entry iteration.
  */
 
-#include <stdint.h>
 #include <sys/cdefs.h>
+
+#include <stdint.h>
 #include <sys/types.h>
 
 __BEGIN_DECLS
@@ -90,7 +91,7 @@
 typedef struct DIR DIR;
 
 /**
- * [opendir(3)](http://man7.org/linux/man-pages/man3/opendir.3.html)
+ * [opendir(3)](https://man7.org/linux/man-pages/man3/opendir.3.html)
  * opens a directory stream for the directory at `__path`.
  *
  * Returns null and sets `errno` on failure.
@@ -98,7 +99,7 @@
 DIR* _Nullable opendir(const char* _Nonnull __path);
 
 /**
- * [fopendir(3)](http://man7.org/linux/man-pages/man3/opendir.3.html)
+ * [fopendir(3)](https://man7.org/linux/man-pages/man3/opendir.3.html)
  * opens a directory stream for the directory at `__dir_fd`.
  *
  * Returns null and sets `errno` on failure.
@@ -106,7 +107,7 @@
 DIR* _Nullable fdopendir(int __dir_fd);
 
 /**
- * [readdir(3)](http://man7.org/linux/man-pages/man3/readdir.3.html)
+ * [readdir(3)](https://man7.org/linux/man-pages/man3/readdir.3.html)
  * returns the next directory entry in the given directory.
  *
  * Returns a pointer to a directory entry on success,
@@ -116,20 +117,20 @@
 struct dirent* _Nullable readdir(DIR* _Nonnull __dir);
 
 /**
- * [readdir64(3)](http://man7.org/linux/man-pages/man3/readdir.3.html)
+ * [readdir64(3)](https://man7.org/linux/man-pages/man3/readdir.3.html)
  * returns the next directory entry in the given directory.
  *
  * Returns a pointer to a directory entry on success,
  * or returns null and leaves `errno` unchanged at the end of the directory,
  * or returns null and sets `errno` on failure.
  */
-struct dirent64* _Nullable readdir64(DIR* _Nonnull __dir) __INTRODUCED_IN(21);
+struct dirent64* _Nullable readdir64(DIR* _Nonnull __dir);
 
 int readdir_r(DIR* _Nonnull __dir, struct dirent* _Nonnull __entry, struct dirent* _Nullable * _Nonnull __buffer) __attribute__((__deprecated__("readdir_r is deprecated; use readdir instead")));
-int readdir64_r(DIR* _Nonnull __dir, struct dirent64* _Nonnull __entry, struct dirent64* _Nullable * _Nonnull __buffer) __INTRODUCED_IN(21) __attribute__((__deprecated__("readdir64_r is deprecated; use readdir64 instead")));
+int readdir64_r(DIR* _Nonnull __dir, struct dirent64* _Nonnull __entry, struct dirent64* _Nullable * _Nonnull __buffer) __attribute__((__deprecated__("readdir64_r is deprecated; use readdir64 instead")));
 
 /**
- * [closedir(3)](http://man7.org/linux/man-pages/man3/closedir.3.html)
+ * [closedir(3)](https://man7.org/linux/man-pages/man3/closedir.3.html)
  * closes a directory stream.
  *
  * Returns 0 on success and returns -1 and sets `errno` on failure.
@@ -137,22 +138,24 @@
 int closedir(DIR* _Nonnull __dir);
 
 /**
- * [rewinddir(3)](http://man7.org/linux/man-pages/man3/rewinddir.3.html)
+ * [rewinddir(3)](https://man7.org/linux/man-pages/man3/rewinddir.3.html)
  * rewinds a directory stream to the first entry.
  */
 void rewinddir(DIR* _Nonnull __dir);
 
 /**
- * [seekdir(3)](http://man7.org/linux/man-pages/man3/seekdir.3.html)
+ * [seekdir(3)](https://man7.org/linux/man-pages/man3/seekdir.3.html)
  * seeks a directory stream to the given entry, which must be a value returned
  * by telldir().
  *
  * Available since API level 23.
  */
+
+#if __BIONIC_AVAILABILITY_GUARD(23)
 void seekdir(DIR* _Nonnull __dir, long __location) __INTRODUCED_IN(23);
 
 /**
- * [telldir(3)](http://man7.org/linux/man-pages/man3/telldir.3.html)
+ * [telldir(3)](https://man7.org/linux/man-pages/man3/telldir.3.html)
  * returns a value representing the current position in the directory
  * for use with seekdir().
  *
@@ -161,9 +164,11 @@
  * Available since API level 23.
  */
 long telldir(DIR* _Nonnull __dir) __INTRODUCED_IN(23);
+#endif /* __BIONIC_AVAILABILITY_GUARD(23) */
+
 
 /**
- * [dirfd(3)](http://man7.org/linux/man-pages/man3/dirfd.3.html)
+ * [dirfd(3)](https://man7.org/linux/man-pages/man3/dirfd.3.html)
  * returns the file descriptor backing the given directory stream.
  *
  * Returns a file descriptor on success and returns -1 and sets `errno` on failure.
@@ -171,21 +176,19 @@
 int dirfd(DIR* _Nonnull __dir);
 
 /**
- * [alphasort](http://man7.org/linux/man-pages/man3/alphasort.3.html) is a
+ * [alphasort](https://man7.org/linux/man-pages/man3/alphasort.3.html) is a
  * comparator for use with scandir() that uses strcoll().
  */
 int alphasort(const struct dirent* _Nonnull * _Nonnull __lhs, const struct dirent* _Nonnull * _Nonnull __rhs);
 
 /**
- * [alphasort64](http://man7.org/linux/man-pages/man3/alphasort.3.html) is a
+ * [alphasort64](https://man7.org/linux/man-pages/man3/alphasort.3.html) is a
  * comparator for use with scandir64() that uses strcmp().
- *
- * Available since API level 21.
  */
-int alphasort64(const struct dirent64* _Nonnull * _Nonnull __lhs, const struct dirent64* _Nonnull * _Nonnull __rhs) __INTRODUCED_IN(21);
+int alphasort64(const struct dirent64* _Nonnull * _Nonnull __lhs, const struct dirent64* _Nonnull * _Nonnull __rhs);
 
 /**
- * [scandir(3)](http://man7.org/linux/man-pages/man3/scandir.3.html)
+ * [scandir(3)](https://man7.org/linux/man-pages/man3/scandir.3.html)
  * scans all the directory `__path`, filtering entries with `__filter` and
  * sorting them with qsort() using the given `__comparator`, and storing them
  * into `__name_list`. Passing NULL as the filter accepts all entries.
@@ -197,7 +200,7 @@
 int scandir(const char* _Nonnull __path, struct dirent* _Nonnull * _Nonnull * _Nonnull __name_list, int (* _Nullable __filter)(const struct dirent* _Nonnull), int (* _Nullable __comparator)(const struct dirent* _Nonnull * _Nonnull, const struct dirent* _Nonnull * _Nonnull));
 
 /**
- * [scandir64(3)](http://man7.org/linux/man-pages/man3/scandir.3.html)
+ * [scandir64(3)](https://man7.org/linux/man-pages/man3/scandir.3.html)
  * scans all the directory `__path`, filtering entries with `__filter` and
  * sorting them with qsort() using the given `__comparator`, and storing them
  * into `__name_list`. Passing NULL as the filter accepts all entries.
@@ -205,15 +208,13 @@
  *
  * Returns the number of entries returned in the list on success,
  * and returns -1 and sets `errno` on failure.
- *
- * Available since API level 21.
  */
-int scandir64(const char* _Nonnull __path, struct dirent64* _Nonnull * _Nonnull * _Nonnull __name_list, int (* _Nullable __filter)(const struct dirent64* _Nonnull), int (* _Nullable __comparator)(const struct dirent64* _Nonnull * _Nonnull, const struct dirent64* _Nonnull * _Nonnull)) __INTRODUCED_IN(21);
+int scandir64(const char* _Nonnull __path, struct dirent64* _Nonnull * _Nonnull * _Nonnull __name_list, int (* _Nullable __filter)(const struct dirent64* _Nonnull), int (* _Nullable __comparator)(const struct dirent64* _Nonnull * _Nonnull, const struct dirent64* _Nonnull * _Nonnull));
 
 #if defined(__USE_GNU)
 
 /**
- * [scandirat64(3)](http://man7.org/linux/man-pages/man3/scandirat.3.html)
+ * [scandirat64(3)](https://man7.org/linux/man-pages/man3/scandirat.3.html)
  * scans all the directory referenced by the pair of `__dir_fd` and `__path`,
  * filtering entries with `__filter` and sorting them with qsort() using the
  * given `__comparator`, and storing them into `__name_list`. Passing NULL as
@@ -225,10 +226,12 @@
  *
  * Available since API level 24.
  */
+
+#if __BIONIC_AVAILABILITY_GUARD(24)
 int scandirat64(int __dir_fd, const char* _Nonnull __path, struct dirent64* _Nonnull * _Nonnull * _Nonnull __name_list, int (* _Nullable __filter)(const struct dirent64* _Nonnull), int (* _Nullable __comparator)(const struct dirent64* _Nonnull * _Nonnull, const struct dirent64* _Nonnull * _Nonnull)) __INTRODUCED_IN(24);
 
 /**
- * [scandirat(3)](http://man7.org/linux/man-pages/man3/scandirat.3.html)
+ * [scandirat(3)](https://man7.org/linux/man-pages/man3/scandirat.3.html)
  * scans all the directory referenced by the pair of `__dir_fd` and `__path`,
  * filtering entries with `__filter` and sorting them with qsort() using the
  * given `__comparator`, and storing them into `__name_list`. Passing NULL as
@@ -241,6 +244,8 @@
  * Available since API level 24.
  */
 int scandirat(int __dir_fd, const char* _Nonnull __path, struct dirent* _Nonnull * _Nonnull * _Nonnull __name_list, int (* _Nullable __filter)(const struct dirent* _Nonnull), int (* _Nullable __comparator)(const struct dirent* _Nonnull * _Nonnull, const struct dirent* _Nonnull * _Nonnull)) __INTRODUCED_IN(24);
+#endif /* __BIONIC_AVAILABILITY_GUARD(24) */
+
 
 #endif
 
diff --git a/libc/include/dlfcn.h b/libc/include/dlfcn.h
index a8066a9..81045fd 100644
--- a/libc/include/dlfcn.h
+++ b/libc/include/dlfcn.h
@@ -26,57 +26,183 @@
  * SUCH DAMAGE.
  */
 
-#ifndef __DLFCN_H__
-#define __DLFCN_H__
+#pragma once
+
+#include <sys/cdefs.h>
 
 #include <stdint.h>
-#include <sys/cdefs.h>
+
+/**
+ * @addtogroup libdl Dynamic Linker
+ * @{
+ */
+
+/**
+ * \file
+ * Standard dynamic library support.
+ * See also the Android-specific functionality in `<android/dlext.h>`.
+ */
 
 __BEGIN_DECLS
 
+/**
+ * dladdr() returns information using this structure.
+ */
 typedef struct {
-  /* Pathname of shared object that contains address. */
+  /** Pathname of the shared object that contains the given address. */
   const char* _Nullable dli_fname;
-  /* Address at which shared object is loaded. */
+  /** Address at which the shared object is loaded. */
   void* _Nullable dli_fbase;
-  /* Name of nearest symbol with address lower than addr. */
+  /** Name of the nearest symbol with an address lower than the given address. */
   const char* _Nullable dli_sname;
-  /* Exact address of symbol named in dli_sname. */
+  /** Exact address of the symbol named in `dli_sname`. */
   void* _Nullable dli_saddr;
 } Dl_info;
 
+/**
+ * [dlopen(3)](https://man7.org/linux/man-pages/man3/dlopen.3.html)
+ * loads the given shared library.
+ *
+ * See also android_dlopen_ext().
+ *
+ * Returns a pointer to an opaque handle for use with other <dlfcn.h> functions
+ * on success, and returns NULL on failure, in which case dlerror() can be used
+ * to retrieve the specific error.
+ */
 void* _Nullable dlopen(const char* _Nullable __filename, int __flag);
+
+/**
+ * [dlclose(3)](https://man7.org/linux/man-pages/man3/dlclose.3.html)
+ * decrements the reference count for the given shared library (and
+ * any libraries brought in by that library's DT_NEEDED entries).
+ *
+ * If a library's reference count hits zero, it may be unloaded.
+ * Code that relies on this is not portable, and may not work on
+ * future versions of Android.
+ *
+ * dlclose() is dangerous because function pointers may or may not
+ * be rendered invalid, global data may or may not be rendered invalid,
+ * and memory may or may not leak. Code with global constructors is
+ * especially problematic. Instead of dlclose, prefer to leave the
+ * library open or, if cleanup is necessary, dlopen() the library in
+ * a child process which can later be killed by the parent or call
+ * exit() itself.
+ *
+ * Note also that dlclose() interacts badly with thread local variables
+ * with non-trivial destructors, with the
+ * (exact behavior varying by API level)[https://android.googlesource.com/platform/bionic/+/main/android-changes-for-ndk-developers.md#dlclose-interacts-badly-with-thread-local-variables-with-non_trivial-destructors].
+ *
+ * Returns 0 on success, and returns -1 on failure, in which case
+ * dlerror() can be used to retrieve the specific error.
+ */
 int dlclose(void* _Nonnull __handle);
+
+/**
+ * [dlerror(3)](https://man7.org/linux/man-pages/man3/dlerror.3.html)
+ * returns a human-readable error message describing the most recent
+ * failure from one of the <dlfcn.h> functions on the calling thread.
+ *
+ * This function also clears the error, so a second call (or a call
+ * before any failure) will return NULL.
+ *
+ * Returns a pointer to an error on success, and returns NULL if no
+ * error is pending.
+ */
 char* _Nullable dlerror(void);
-/* (RTLD_DEFAULT is null for LP64, but -1 for LP32) */
+
+/**
+ * [dlsym(3)](https://man7.org/linux/man-pages/man3/dlsym.3.html)
+ * returns a pointer to the symbol with the given name in the shared
+ * library represented by the given handle. The handle may have been
+ * returned from dlopen(), or can be RTLD_DEFAULT or RTLD_NEXT.
+ *
+ * Returns the address of the symbol on success, and returns NULL on failure,
+ * in which case dlerror() can be used to retrieve the specific error.
+ */
 void* _Nullable dlsym(void* __BIONIC_COMPLICATED_NULLNESS __handle, const char* _Nullable __symbol);
-/* (RTLD_DEFAULT is null for LP64, but -1 for LP32) */
+
+/**
+ * [dlvsym(3)](https://man7.org/linux/man-pages/man3/dlvsym.3.html)
+ * returns a pointer to the symbol with the given name and version in the shared
+ * library represented by the given handle. The handle may have been
+ * returned from dlopen(), or can be RTLD_DEFAULT or RTLD_NEXT.
+ *
+ * Returns the address of the symbol on success, and returns NULL on failure,
+ * in which case dlerror() can be used to retrieve the specific error.
+ */
+
+#if __BIONIC_AVAILABILITY_GUARD(24)
 void* _Nullable dlvsym(void* __BIONIC_COMPLICATED_NULLNESS __handle, const char* _Nullable __symbol, const char* _Nullable __version) __INTRODUCED_IN(24);
+#endif /* __BIONIC_AVAILABILITY_GUARD(24) */
+
+
+/**
+ * [dladdr(3)](https://man7.org/linux/man-pages/man3/dladdr.3.html)
+ * returns information about the symbol at the given address.
+ *
+ * Returns non-zero on success, and returns 0 on failure. Note that unlike
+ * the other <dlfcn.h> functions, in this case dlerror() will _not_ have
+ * more information.
+ */
 int dladdr(const void* _Nonnull __addr, Dl_info* _Nonnull __info);
 
+/**
+ * A dlsym()/dlvsym() handle that returns the first symbol found in any
+ * shared library using the default search order.
+ */
+#define RTLD_DEFAULT  __BIONIC_CAST(reinterpret_cast, void*, 0)
+
+/**
+ * A dlsym()/dlvsym() handle that returns the first symbol found in any
+ * shared library that appears _after_ the object containing the caller.
+ */
+#define RTLD_NEXT     __BIONIC_CAST(reinterpret_cast, void*, -1L)
+
+/**
+ * A dlopen() flag to not make symbols from this library available to later
+ * libraries. See also RTLD_GLOBAL.
+ */
 #define RTLD_LOCAL    0
+
+/**
+ * Not supported on Android. Android always uses RTLD_NOW for security reasons.
+ * Resolving all undefined symbols before dlopen() returns means that RELRO
+ * protections can be applied to the PLT before dlopen() returns.
+ */
 #define RTLD_LAZY     0x00001
+
+/** A dlopen() flag to resolve all undefined symbols before dlopen() returns. */
 #define RTLD_NOW      0x00002
+
+/**
+ * A dlopen() flag to not actually load the given library;
+ * used to test whether the library is already loaded.
+ */
 #define RTLD_NOLOAD   0x00004
+
+/**
+ * A dlopen() flag to make symbols from this library available to later
+ * libraries. See also RTLD_LOCAL.
+ */
 #define RTLD_GLOBAL   0x00100
+
+/**
+ * A dlopen() flag to ignore later dlclose() calls on this library.
+ */
 #define RTLD_NODELETE 0x01000
 
+/* LP32 has historical ABI breakage. */
 #if !defined(__LP64__)
-/* LP32 is broken for historical reasons. */
+#undef RTLD_DEFAULT
+#define RTLD_DEFAULT  __BIONIC_CAST(reinterpret_cast, void*, 0xffffffff)
+#undef RTLD_NEXT
+#define RTLD_NEXT     __BIONIC_CAST(reinterpret_cast, void*, 0xfffffffe)
 #undef RTLD_NOW
 #define RTLD_NOW      0x00000
 #undef RTLD_GLOBAL
 #define RTLD_GLOBAL   0x00002
 #endif
 
-#if defined (__LP64__)
-#define RTLD_DEFAULT  __BIONIC_CAST(reinterpret_cast, void*, 0)
-#define RTLD_NEXT     __BIONIC_CAST(reinterpret_cast, void*, -1L)
-#else
-#define RTLD_DEFAULT  __BIONIC_CAST(reinterpret_cast, void*, 0xffffffff)
-#define RTLD_NEXT     __BIONIC_CAST(reinterpret_cast, void*, 0xfffffffe)
-#endif
-
 __END_DECLS
 
-#endif
+/** @} */
diff --git a/libc/include/elf.h b/libc/include/elf.h
index 1dfc008..24454d7 100644
--- a/libc/include/elf.h
+++ b/libc/include/elf.h
@@ -202,17 +202,11 @@
 #define DF_1_SINGLETON  0x02000000
 #define DF_1_STUB       0x04000000
 
-/* http://www.sco.com/developers/gabi/latest/ch4.eheader.html */
-#define ELFOSABI_SYSV 0 /* Synonym for ELFOSABI_NONE used by valgrind. */
-#define ELFOSABI_GNU 3 /* Synonym for ELFOSABI_LINUX. */
-
 /* http://www.sco.com/developers/gabi/latest/ch4.reloc.html */
 #define ELF32_R_INFO(sym, type) ((((Elf32_Word)sym) << 8) | ((type) & 0xff))
 #define ELF64_R_INFO(sym, type) ((((Elf64_Xword)sym) << 32) | ((type) & 0xffffffff))
 
 /* http://www.sco.com/developers/gabi/latest/ch4.symtab.html */
-#undef ELF_ST_TYPE
-#define ELF_ST_TYPE(x) ((x) & 0xf)
 #define ELF_ST_INFO(b,t) (((b) << 4) + ((t) & 0xf))
 #define ELF32_ST_INFO(b,t) ELF_ST_INFO(b,t)
 #define ELF64_ST_INFO(b,t) ELF_ST_INFO(b,t)
@@ -258,6 +252,15 @@
 #define DT_ANDROID_RELA 0x60000011 // DT_LOOS + 4
 #define DT_ANDROID_RELASZ 0x60000012 // DT_LOOS + 5
 
+/* arm64 psabi. */
+
+/* TODO: upstreamed to FreeBSD as https://github.com/freebsd/freebsd-src/pull/1141/. */
+#define DT_AARCH64_MEMTAG_MODE 0x70000009
+#define DT_AARCH64_MEMTAG_HEAP 0x7000000b
+#define DT_AARCH64_MEMTAG_STACK 0x7000000c
+#define DT_AARCH64_MEMTAG_GLOBALS 0x7000000d
+#define DT_AARCH64_MEMTAG_GLOBALSSZ 0x7000000f
+
 /* Linux traditionally doesn't have the trailing 64 that BSD has on these. */
 #define R_AARCH64_TLS_DTPREL R_AARCH64_TLS_DTPREL64
 #define R_AARCH64_TLS_DTPMOD R_AARCH64_TLS_DTPMOD64
@@ -266,4 +269,31 @@
 /* TODO: upstream these to FreeBSD? */
 #define R_ARM_TLS_DESC 13
 #define R_ARM_IRELATIVE 160
-#define R_X86_64_JUMP_SLOT 7
+
+/* riscv64 psabi. */
+
+/*
+ * https://github.com/riscv-non-isa/riscv-elf-psabi-doc/blob/master/riscv-elf.adoc#relocations
+ * Missing from FreeBSD and the Linux uapi headers.
+ * TODO: upstreamed to FreeBSD as https://github.com/freebsd/freebsd-src/pull/1141.
+ */
+#define R_RISCV_TLSDESC 12
+#define R_RISCV_TLSDESC_HI20 62
+#define R_RISCV_TLSDESC_LOAD_LO12 63
+#define R_RISCV_TLSDESC_ADD_LO12 64
+#define R_RISCV_TLSDESC_CALL 65
+
+/* https://github.com/riscv-non-isa/riscv-elf-psabi-doc/blob/master/riscv-elf.adoc#program-header-table */
+#define PT_RISCV_ATTRIBUTES 0x70000003
+
+/* https://github.com/riscv-non-isa/riscv-elf-psabi-doc/blob/master/riscv-elf.adoc#section-types */
+#define SHT_RISCV_ATTRIBUTES 0x70000003
+
+/* FreeBSD spells this slightly differently to Linux. Linux is correct according to
+ * https://github.com/riscv-non-isa/riscv-elf-psabi-doc/blob/master/riscv-elf.adoc#file-header
+ * so I've sent https://github.com/freebsd/freebsd-src/pull/1148 upstream.
+ */
+#define EF_RISCV_FLOAT_ABI EF_RISCV_FLOAT_ABI_MASK
+
+/* FreeBSD spells this slightly differently to Linux. */
+#define R_X86_64_JUMP_SLOT R_X86_64_JMP_SLOT
diff --git a/libc/include/err.h b/libc/include/err.h
index af44514..4a1841b 100644
--- a/libc/include/err.h
+++ b/libc/include/err.h
@@ -36,14 +36,15 @@
  * @brief BSD error reporting functions. See `<error.h>` for the GNU equivalent.
  */
 
-#include <stdarg.h>
 #include <sys/cdefs.h>
+
+#include <stdarg.h>
 #include <sys/types.h>
 
 __BEGIN_DECLS
 
 /**
- * [err(3)](http://man7.org/linux/man-pages/man3/err.3.html) outputs the program name,
+ * [err(3)](https://man7.org/linux/man-pages/man3/err.3.html) outputs the program name,
  * the printf()-like formatted message, and the result of strerror() if `errno` is non-zero.
  *
  * Calls exit() with `__status`.
@@ -53,7 +54,7 @@
 __noreturn void err(int __status, const char* _Nullable __fmt, ...) __printflike(2, 3);
 
 /**
- * [verr(3)](http://man7.org/linux/man-pages/man3/verr.3.html) outputs the program name,
+ * [verr(3)](https://man7.org/linux/man-pages/man3/verr.3.html) outputs the program name,
  * the vprintf()-like formatted message, and the result of strerror() if `errno` is non-zero.
  *
  * Calls exit() with `__status`.
@@ -63,7 +64,7 @@
 __noreturn void verr(int __status, const char* _Nullable __fmt, va_list __args) __printflike(2, 0);
 
 /**
- * [errx(3)](http://man7.org/linux/man-pages/man3/errx.3.html) outputs the program name, and
+ * [errx(3)](https://man7.org/linux/man-pages/man3/errx.3.html) outputs the program name, and
  * the printf()-like formatted message.
  *
  * Calls exit() with `__status`.
@@ -73,7 +74,7 @@
 __noreturn void errx(int __status, const char* _Nullable __fmt, ...) __printflike(2, 3);
 
 /**
- * [verrx(3)](http://man7.org/linux/man-pages/man3/err.3.html) outputs the program name, and
+ * [verrx(3)](https://man7.org/linux/man-pages/man3/err.3.html) outputs the program name, and
  * the vprintf()-like formatted message.
  *
  * Calls exit() with `__status`.
@@ -83,7 +84,7 @@
 __noreturn void verrx(int __status, const char* _Nullable __fmt, va_list __args) __printflike(2, 0);
 
 /**
- * [warn(3)](http://man7.org/linux/man-pages/man3/warn.3.html) outputs the program name,
+ * [warn(3)](https://man7.org/linux/man-pages/man3/warn.3.html) outputs the program name,
  * the printf()-like formatted message, and the result of strerror() if `errno` is non-zero.
  *
  * New code should consider error() in `<error.h>`.
@@ -91,7 +92,7 @@
 void warn(const char* _Nullable __fmt, ...) __printflike(1, 2);
 
 /**
- * [vwarn(3)](http://man7.org/linux/man-pages/man3/vwarn.3.html) outputs the program name,
+ * [vwarn(3)](https://man7.org/linux/man-pages/man3/vwarn.3.html) outputs the program name,
  * the vprintf()-like formatted message, and the result of strerror() if `errno` is non-zero.
  *
  * New code should consider error() in `<error.h>`.
@@ -99,7 +100,7 @@
 void vwarn(const char* _Nullable __fmt, va_list __args) __printflike(1, 0);
 
 /**
- * [warnx(3)](http://man7.org/linux/man-pages/man3/warnx.3.html) outputs the program name, and
+ * [warnx(3)](https://man7.org/linux/man-pages/man3/warnx.3.html) outputs the program name, and
  * the printf()-like formatted message.
  *
  * New code should consider error() in `<error.h>`.
@@ -107,7 +108,7 @@
 void warnx(const char* _Nullable __fmt, ...) __printflike(1, 2);
 
 /**
- * [vwarnx(3)](http://man7.org/linux/man-pages/man3/warn.3.html) outputs the program name, and
+ * [vwarnx(3)](https://man7.org/linux/man-pages/man3/warn.3.html) outputs the program name, and
  * the vprintf()-like formatted message.
  *
  * New code should consider error() in `<error.h>`.
diff --git a/libc/include/errno.h b/libc/include/errno.h
index 12ebdf7..0b79592 100644
--- a/libc/include/errno.h
+++ b/libc/include/errno.h
@@ -52,7 +52,7 @@
 int* _Nonnull __errno(void) __attribute_const__;
 
 /**
- * [errno(3)](http://man7.org/linux/man-pages/man3/errno.3.html) is the last error on the calling
+ * [errno(3)](https://man7.org/linux/man-pages/man3/errno.3.html) is the last error on the calling
  * thread.
  */
 #define errno (*__errno())
diff --git a/libc/include/error.h b/libc/include/error.h
index 187ee17..a9bdc24 100644
--- a/libc/include/error.h
+++ b/libc/include/error.h
@@ -38,16 +38,18 @@
 __BEGIN_DECLS
 
 /**
- * [error_print_progname(3)](http://man7.org/linux/man-pages/man3/error_print_progname.3.html) is
+ * [error_print_progname(3)](https://man7.org/linux/man-pages/man3/error_print_progname.3.html) is
  * a function pointer that, if non-null, is called by error() instead of prefixing errors with the
  * program name.
  *
  * Available since API level 23.
  */
+
+#if __BIONIC_AVAILABILITY_GUARD(23)
 extern void (* _Nullable error_print_progname)(void) __INTRODUCED_IN(23);
 
 /**
- * [error_message_count(3)](http://man7.org/linux/man-pages/man3/error_message_count.3.html) is
+ * [error_message_count(3)](https://man7.org/linux/man-pages/man3/error_message_count.3.html) is
  * a global count of the number of calls to error() and error_at_line().
  *
  * Available since API level 23.
@@ -55,7 +57,7 @@
 extern unsigned int error_message_count __INTRODUCED_IN(23);
 
 /**
- * [error_one_per_line(3)](http://man7.org/linux/man-pages/man3/error_one_per_line.3.html) is
+ * [error_one_per_line(3)](https://man7.org/linux/man-pages/man3/error_one_per_line.3.html) is
  * a global flag that if non-zero disables printing multiple errors with the same filename and
  * line number.
  *
@@ -64,7 +66,7 @@
 extern int error_one_per_line __INTRODUCED_IN(23);
 
 /**
- * [error(3)](http://man7.org/linux/man-pages/man3/error.3.html) formats the given printf()-like
+ * [error(3)](https://man7.org/linux/man-pages/man3/error.3.html) formats the given printf()-like
  * error message, preceded by the program name. Calls exit if `__status` is non-zero, and appends
  * the result of strerror() if `__errno` is non-zero.
  *
@@ -73,7 +75,7 @@
 void error(int __status, int __errno, const char* _Nonnull __fmt, ...) __printflike(3, 4) __INTRODUCED_IN(23);
 
 /**
- * [error_at_line(3)](http://man7.org/linux/man-pages/man3/error_at_line.3.html) formats the given
+ * [error_at_line(3)](https://man7.org/linux/man-pages/man3/error_at_line.3.html) formats the given
  * printf()-like error message, preceded by the program name and the given filename and line number.
  * Calls exit if `__status` is non-zero, and appends the result of strerror() if `__errno` is
  * non-zero.
@@ -81,5 +83,7 @@
  * Available since API level 23.
  */
 void error_at_line(int __status, int __errno, const char* _Nonnull __filename, unsigned int __line_number, const char* _Nonnull __fmt, ...) __printflike(5, 6) __INTRODUCED_IN(23);
+#endif /* __BIONIC_AVAILABILITY_GUARD(23) */
+
 
 __END_DECLS
diff --git a/libc/include/execinfo.h b/libc/include/execinfo.h
index 88f4ae7..84b637c 100644
--- a/libc/include/execinfo.h
+++ b/libc/include/execinfo.h
@@ -47,6 +47,8 @@
  *
  * Available since API level 33.
  */
+
+#if __BIONIC_AVAILABILITY_GUARD(33)
 int backtrace(void* _Nonnull * _Nonnull buffer, int size) __INTRODUCED_IN(33);
 
 /**
@@ -70,5 +72,7 @@
  * Available since API level 33.
  */
 void backtrace_symbols_fd(void* _Nonnull const* _Nonnull buffer, int size, int fd) __INTRODUCED_IN(33);
+#endif /* __BIONIC_AVAILABILITY_GUARD(33) */
+
 
 __END_DECLS
diff --git a/libc/include/fcntl.h b/libc/include/fcntl.h
index a8db387..2bd1fc6 100644
--- a/libc/include/fcntl.h
+++ b/libc/include/fcntl.h
@@ -93,17 +93,15 @@
 /** Flag for splice(). */
 #define SPLICE_F_GIFT 8
 
-#if __ANDROID_API__ >= 26
 /** Flag for sync_file_range(). */
 #define SYNC_FILE_RANGE_WAIT_BEFORE 1
 /** Flag for sync_file_range(). */
 #define SYNC_FILE_RANGE_WRITE 2
 /** Flag for sync_file_range(). */
 #define SYNC_FILE_RANGE_WAIT_AFTER 4
-#endif
 
 /**
- * [creat(2)](http://man7.org/linux/man-pages/man2/creat.2.html)
+ * [creat(2)](https://man7.org/linux/man-pages/man2/creat.2.html)
  * creates a file.
  *
  * Returns a new file descriptor on success and returns -1 and sets `errno` on
@@ -111,10 +109,10 @@
  */
 int creat(const char* _Nonnull __path, mode_t __mode);
 /** See creat(). */
-int creat64(const char* _Nonnull __path, mode_t __mode) __INTRODUCED_IN(21);
+int creat64(const char* _Nonnull __path, mode_t __mode);
 
 /**
- * [openat(2)](http://man7.org/linux/man-pages/man2/openat.2.html)
+ * [openat(2)](https://man7.org/linux/man-pages/man2/openat.2.html)
  * opens (and possibly creates) a file.
  *
  * Returns a new file descriptor on success and returns -1 and sets `errno` on
@@ -122,10 +120,10 @@
  */
 int openat(int __dir_fd, const char* _Nonnull __path, int __flags, ...);
 /** See openat(). */
-int openat64(int __dir_fd, const char* _Nonnull __path, int __flags, ...) __INTRODUCED_IN(21);
+int openat64(int __dir_fd, const char* _Nonnull __path, int __flags, ...);
 
 /**
- * [open(2)](http://man7.org/linux/man-pages/man2/open.2.html)
+ * [open(2)](https://man7.org/linux/man-pages/man2/open.2.html)
  * opens (and possibly creates) a file.
  *
  * Returns a new file descriptor on success and returns -1 and sets `errno` on
@@ -133,10 +131,10 @@
  */
 int open(const char* _Nonnull __path, int __flags, ...);
 /** See open(). */
-int open64(const char* _Nonnull __path, int __flags, ...) __INTRODUCED_IN(21);
+int open64(const char* _Nonnull __path, int __flags, ...);
 
 /**
- * [splice(2)](http://man7.org/linux/man-pages/man2/splice.2.html)
+ * [splice(2)](https://man7.org/linux/man-pages/man2/splice.2.html)
  * splices data to/from a pipe.
  *
  * Valid flags are `SPLICE_F_MOVE`, `SPLICE_F_NONBLOCK`, `SPLICE_F_MORE`, and
@@ -144,13 +142,11 @@
  *
  * Returns the number of bytes spliced on success and returns -1 and sets
  * `errno` on failure.
- *
- * Available since API level 21.
  */
-ssize_t splice(int __in_fd, off64_t* __BIONIC_COMPLICATED_NULLNESS __in_offset, int __out_fd, off64_t* __BIONIC_COMPLICATED_NULLNESS __out_offset, size_t __length, unsigned int __flags) __INTRODUCED_IN(21);
+ssize_t splice(int __in_fd, off64_t* __BIONIC_COMPLICATED_NULLNESS __in_offset, int __out_fd, off64_t* __BIONIC_COMPLICATED_NULLNESS __out_offset, size_t __length, unsigned int __flags);
 
 /**
- * [tee(2)](http://man7.org/linux/man-pages/man2/tee.2.html)
+ * [tee(2)](https://man7.org/linux/man-pages/man2/tee.2.html)
  * duplicates data from one pipe to another.
  *
  * Valid flags are `SPLICE_F_MOVE`, `SPLICE_F_NONBLOCK`, `SPLICE_F_MORE`, and
@@ -158,13 +154,11 @@
  *
  * Returns the number of bytes duplicated on success and returns -1 and sets
  * `errno` on failure.
- *
- * Available since API level 21.
  */
-ssize_t tee(int __in_fd, int __out_fd, size_t __length, unsigned int __flags) __INTRODUCED_IN(21);
+ssize_t tee(int __in_fd, int __out_fd, size_t __length, unsigned int __flags);
 
 /**
- * [vmsplice(2)](http://man7.org/linux/man-pages/man2/vmsplice.2.html)
+ * [vmsplice(2)](https://man7.org/linux/man-pages/man2/vmsplice.2.html)
  * splices data to/from a pipe.
  *
  * Valid flags are `SPLICE_F_MOVE`, `SPLICE_F_NONBLOCK`, `SPLICE_F_MORE`, and
@@ -172,13 +166,11 @@
  *
  * Returns the number of bytes spliced on success and returns -1 and sets
  * `errno` on failure.
- *
- * Available since API level 21.
  */
-ssize_t vmsplice(int __fd, const struct iovec* _Nonnull __iov, size_t __count, unsigned int __flags) __INTRODUCED_IN(21);
+ssize_t vmsplice(int __fd, const struct iovec* _Nonnull __iov, size_t __count, unsigned int __flags);
 
 /**
- * [fallocate(2)](http://man7.org/linux/man-pages/man2/fallocate.2.html)
+ * [fallocate(2)](https://man7.org/linux/man-pages/man2/fallocate.2.html)
  * is a Linux-specific extension of posix_fallocate().
  *
  * Valid flags are `FALLOC_FL_KEEP_SIZE`, `FALLOC_FL_PUNCH_HOLE`,
@@ -187,15 +179,13 @@
  * `FALLOC_FL_UNSHARE_RANGE`.
  *
  * Returns 0 on success and returns -1 and sets `errno` on failure.
- *
- * Available since API level 21.
  */
-int fallocate(int __fd, int __mode, off_t __offset, off_t __length) __RENAME_IF_FILE_OFFSET64(fallocate64) __INTRODUCED_IN(21);
+int fallocate(int __fd, int __mode, off_t __offset, off_t __length) __RENAME_IF_FILE_OFFSET64(fallocate64);
 /** See fallocate(). */
-int fallocate64(int __fd, int __mode, off64_t __offset, off64_t __length) __INTRODUCED_IN(21);
+int fallocate64(int __fd, int __mode, off64_t __offset, off64_t __length);
 
 /**
- * [posix_fadvise(2)](http://man7.org/linux/man-pages/man2/posix_fadvise.2.html)
+ * [posix_fadvise(2)](https://man7.org/linux/man-pages/man2/posix_fadvise.2.html)
  * declares an expected access pattern for file data.
  *
  * Valid flags are `POSIX_FADV_NORMAL`, `POSIX_FADV_RANDOM`,
@@ -203,29 +193,25 @@
  * and `POSIX_FADV_NOREUSE`.
  *
  * Returns 0 on success and returns an error number on failure.
- *
- * Available since API level 21.
  */
-int posix_fadvise(int __fd, off_t __offset, off_t __length, int __advice) __RENAME_IF_FILE_OFFSET64(posix_fadvise64) __INTRODUCED_IN(21);
+int posix_fadvise(int __fd, off_t __offset, off_t __length, int __advice) __RENAME_IF_FILE_OFFSET64(posix_fadvise64);
 /** See posix_fadvise(). */
-int posix_fadvise64(int __fd, off64_t __offset, off64_t __length, int __advice) __INTRODUCED_IN(21);
+int posix_fadvise64(int __fd, off64_t __offset, off64_t __length, int __advice);
 
 /**
- * [posix_fallocate(2)](http://man7.org/linux/man-pages/man2/posix_fallocate.2.html)
+ * [posix_fallocate(2)](https://man7.org/linux/man-pages/man2/posix_fallocate.2.html)
  * allocates file space.
  *
  * Returns 0 on success and returns an error number on failure.
- *
- * Available since API level 21.
  */
-int posix_fallocate(int __fd, off_t __offset, off_t __length) __RENAME_IF_FILE_OFFSET64(posix_fallocate64) __INTRODUCED_IN(21);
+int posix_fallocate(int __fd, off_t __offset, off_t __length) __RENAME_IF_FILE_OFFSET64(posix_fallocate64);
 /** See posix_fallocate(). */
-int posix_fallocate64(int __fd, off64_t __offset, off64_t __length) __INTRODUCED_IN(21);
+int posix_fallocate64(int __fd, off64_t __offset, off64_t __length);
 
 #if defined(__USE_GNU)
 
 /**
- * [readahead(2)](http://man7.org/linux/man-pages/man2/readahead.2.html)
+ * [readahead(2)](https://man7.org/linux/man-pages/man2/readahead.2.html)
  * initiates readahead for the given file.
  *
  * Returns 0 on success and returns -1 and sets `errno` on failure.
@@ -233,7 +219,7 @@
 ssize_t readahead(int __fd, off64_t __offset, size_t __length);
 
 /**
- * [sync_file_range(2)](http://man7.org/linux/man-pages/man2/sync_file_range.2.html)
+ * [sync_file_range(2)](https://man7.org/linux/man-pages/man2/sync_file_range.2.html)
  * syncs part of a file with disk.
  *
  * Valid flags are `SYNC_FILE_RANGE_WAIT_BEFORE`, `SYNC_FILE_RANGE_WRITE`, and
@@ -241,7 +227,11 @@
  *
  * Returns 0 on success and returns -1 and sets `errno` on failure.
  */
+
+#if __BIONIC_AVAILABILITY_GUARD(26)
 int sync_file_range(int __fd, off64_t __offset, off64_t __length, unsigned int __flags) __INTRODUCED_IN(26);
+#endif /* __BIONIC_AVAILABILITY_GUARD(26) */
+
 
 #endif
 
diff --git a/libc/include/fenv.h b/libc/include/fenv.h
index 6e8ea57..4c1d490 100644
--- a/libc/include/fenv.h
+++ b/libc/include/fenv.h
@@ -29,6 +29,11 @@
 
 #pragma once
 
+/**
+ * @file fenv.h
+ * @brief Floating-point environment.
+ */
+
 #include <sys/cdefs.h>
 
 #if defined(__aarch64__) || defined(__arm__)
@@ -43,33 +48,135 @@
 
 __BEGIN_DECLS
 
-int feclearexcept(int __exceptions) __INTRODUCED_IN_ARM(21) __INTRODUCED_IN_X86(9);
-int fegetexceptflag(fexcept_t* _Nonnull __flag_ptr, int __exceptions) __INTRODUCED_IN_ARM(21) __INTRODUCED_IN_X86(9);
-int feraiseexcept(int __exceptions) __INTRODUCED_IN_ARM(21) __INTRODUCED_IN_X86(9);
-int fesetexceptflag(const fexcept_t* _Nonnull __flag_ptr, int __exceptions) __INTRODUCED_IN_ARM(21) __INTRODUCED_IN_X86(9);
-int fetestexcept(int __exceptions) __INTRODUCED_IN_ARM(21) __INTRODUCED_IN_X86(9);
+/**
+ * [feclearexcept(3)](https://man7.org/linux/man-pages/man3/feclearexcept.3.html)
+ * clears the given `exceptions` in hardware.
+ *
+ * Returns 0 on success, and returns non-zero on failure.
+ */
+int feclearexcept(int __exceptions);
 
-int fegetround(void) __INTRODUCED_IN_ARM(21) __INTRODUCED_IN_X86(9);
-int fesetround(int __rounding_mode) __INTRODUCED_IN_ARM(21) __INTRODUCED_IN_X86(9);
+/**
+ * [fegetexceptflag(3)](https://man7.org/linux/man-pages/man3/fegetexceptflag.3.html)
+ * copies the state of the given `exceptions` from hardware into `*flag_ptr`.
+ * See fesetexceptflag().
+ *
+ * Returns 0 on success, and returns non-zero on failure.
+ */
+int fegetexceptflag(fexcept_t* _Nonnull __flag_ptr, int __exceptions);
 
-int fegetenv(fenv_t* _Nonnull __env) __INTRODUCED_IN_ARM(21) __INTRODUCED_IN_X86(9);
-int feholdexcept(fenv_t* _Nonnull __env) __INTRODUCED_IN_ARM(21) __INTRODUCED_IN_X86(9);
-int fesetenv(const fenv_t* _Nonnull __env) __INTRODUCED_IN_ARM(21) __INTRODUCED_IN_X86(9);
-int feupdateenv(const fenv_t* _Nonnull __env) __INTRODUCED_IN_ARM(21) __INTRODUCED_IN_X86(9);
+/**
+ * [feraiseexcept(3)](https://man7.org/linux/man-pages/man3/feraiseexcept.3.html)
+ * raises the given `exceptions` in hardware.
+ *
+ * Returns 0 on success, and returns non-zero on failure.
+ */
+int feraiseexcept(int __exceptions);
 
-int feenableexcept(int __exceptions) __INTRODUCED_IN_ARM(21) __INTRODUCED_IN_X86(9);
-int fedisableexcept(int __exceptions) __INTRODUCED_IN_ARM(21) __INTRODUCED_IN_X86(9);
-int fegetexcept(void) __INTRODUCED_IN_ARM(21) __INTRODUCED_IN_X86(9);
+/**
+ * [fesetexceptflag(3)](https://man7.org/linux/man-pages/man3/fesetexceptflag.3.html)
+ * copies the state of the given `exceptions` from `*flag_ptr` into hardware.
+ * See fesetexceptflag().
+ *
+ * Returns 0 on success, and returns non-zero on failure.
+ */
+int fesetexceptflag(const fexcept_t* _Nonnull __flag_ptr, int __exceptions);
 
-/*
- * The following constant represents the default floating-point environment
- * (that is, the one installed at program startup) and has type pointer to
- * const-qualified fenv_t.
+/**
+ * [fetestexcept(3)](https://man7.org/linux/man-pages/man3/fetestexcept.3.html)
+ * tests whether the given `exceptions` are set in hardware.
+ *
+ * Returns the currently-set subset of `exceptions`.
+ */
+int fetestexcept(int __exceptions);
+
+/**
+ * [fegetround(3)](https://man7.org/linux/man-pages/man3/fegetround.3.html)
+ * returns the current rounding mode.
+ *
+ * Returns the rounding mode on success, and returns a negative value on failure.
+ */
+int fegetround(void);
+
+/**
+ * [fesetround(3)](https://man7.org/linux/man-pages/man3/fesetround.3.html)
+ * sets the current rounding mode.
+ *
+ * Returns 0 on success, and returns non-zero on failure.
+ */
+int fesetround(int __rounding_mode);
+
+/**
+ * [fegetenv(3)](https://man7.org/linux/man-pages/man3/fegetenv.3.html)
+ * gets the current floating-point environment. See fesetenv().
+ *
+ * Returns 0 on success, and returns non-zero on failure.
+ */
+int fegetenv(fenv_t* _Nonnull __env);
+
+/**
+ * [feholdexcept(3)](https://man7.org/linux/man-pages/man3/feholdexcept.3.html)
+ * gets the current floating-point environment, clears the status flags, and
+ * ignores floating point exceptions. See fesetenv()/feupdateenv().
+ *
+ * Returns 0 on success, and returns non-zero on failure.
+ */
+int feholdexcept(fenv_t* _Nonnull __env);
+
+/**
+ * [fesetenv(3)](https://man7.org/linux/man-pages/man3/fesetenv.3.html)
+ * sets the current floating-point environment. See fegetenv().
+ *
+ * Returns 0 on success, and returns non-zero on failure.
+ */
+int fesetenv(const fenv_t* _Nonnull __env);
+
+/**
+ * [feupdateenv(3)](https://man7.org/linux/man-pages/man3/feupdateenv.3.html)
+ * sets the current floating-point environment to `*env` but with currently-raised
+ * exceptions still raised. See fesetenv().
+ *
+ * Returns 0 on success, and returns non-zero on failure.
+ */
+int feupdateenv(const fenv_t* _Nonnull __env);
+
+/**
+ * [feenableexcept(3)](https://man7.org/linux/man-pages/man3/feenableexcept.3.html)
+ * sets the given `exceptions` to trap, if the hardware supports it. This is not
+ * generally useful on Android, because only x86/x86-64 can trap.
+ *
+ * Returns the previous set of enabled exceptions on success, and returns -1 on failure.
+ */
+int feenableexcept(int __exceptions);
+
+/**
+ * [fedisableexcept(3)](https://man7.org/linux/man-pages/man3/fedisableexcept.3.html)
+ * sets the given `exceptions` to not trap, if the hardware supports it. This is not
+ * generally useful on Android, because only x86/x86-64 can trap.
+ *
+ * Returns the previous set of enabled exceptions on success, and returns -1 on failure.
+ */
+int fedisableexcept(int __exceptions);
+
+/**
+ * [fegetexcept(3)](https://man7.org/linux/man-pages/man3/fegetexcept.3.html)
+ * returns the exceptions that currently trap. This is not generally useful on
+ * Android, because only x86/x86-64 can trap.
+ *
+ * Returns the exceptions that currently trap.
+ */
+int fegetexcept(void);
+
+/** See FE_DFL_ENV. */
+extern const fenv_t __fe_dfl_env;
+
+/**
+ * Constant representing the default floating-point environment
+ * (that is, the one installed at program startup).
  *
  * It can be used as an argument to the functions that manage the floating-point
  * environment, namely fesetenv() and feupdateenv().
  */
-extern const fenv_t __fe_dfl_env;
 #define FE_DFL_ENV (&__fe_dfl_env)
 
 __END_DECLS
diff --git a/libc/include/fnmatch.h b/libc/include/fnmatch.h
index 1788a27..e3b17fd 100644
--- a/libc/include/fnmatch.h
+++ b/libc/include/fnmatch.h
@@ -60,7 +60,7 @@
 #define FNM_FILE_NAME    FNM_PATHNAME
 
 /**
- * [fnmatch(3)](http://man7.org/linux/man-pages/man3/fnmatch.3.html) matches `__string` against
+ * [fnmatch(3)](https://man7.org/linux/man-pages/man3/fnmatch.3.html) matches `__string` against
  * the shell wildcard `__pattern`.
  *
  * Returns 0 on success, and returns `FNM_NOMATCH` on failure.
diff --git a/libc/include/fts.h b/libc/include/fts.h
index bae2615..aabe2db 100644
--- a/libc/include/fts.h
+++ b/libc/include/fts.h
@@ -117,16 +117,11 @@
 
 __BEGIN_DECLS
 
-/*
- * Strictly these functions were available before Lollipop/21, but there was an accidental ABI
- * breakage in 21 that means you can't write code that runs on current devices and pre-21 devices,
- * so we break the tie in favor of current and future devices.
- */
-FTSENT* _Nullable fts_children(FTS* _Nonnull __fts, int __options) __INTRODUCED_IN(21);
-int fts_close(FTS* _Nonnull __fts) __INTRODUCED_IN(21);
-FTS* _Nullable fts_open(char* _Nonnull const* _Nonnull __path, int __options, int (* _Nullable __comparator)(const FTSENT* _Nonnull * _Nonnull  __lhs, const FTSENT* _Nonnull * _Nonnull __rhs)) __INTRODUCED_IN(21);
-FTSENT* _Nullable fts_read(FTS* _Nonnull __fts) __INTRODUCED_IN(21);
-int fts_set(FTS* _Nonnull __fts, FTSENT* _Nonnull __entry, int __options) __INTRODUCED_IN(21);
+FTSENT* _Nullable fts_children(FTS* _Nonnull __fts, int __options);
+int fts_close(FTS* _Nonnull __fts);
+FTS* _Nullable fts_open(char* _Nullable const* _Nonnull __path, int __options, int (* _Nullable __comparator)(const FTSENT* _Nonnull * _Nonnull  __lhs, const FTSENT* _Nonnull * _Nonnull __rhs));
+FTSENT* _Nullable fts_read(FTS* _Nonnull __fts);
+int fts_set(FTS* _Nonnull __fts, FTSENT* _Nonnull __entry, int __options);
 
 __END_DECLS
 
diff --git a/libc/include/ftw.h b/libc/include/ftw.h
index c5fa4de..ac2473a 100644
--- a/libc/include/ftw.h
+++ b/libc/include/ftw.h
@@ -55,10 +55,10 @@
 };
 
 __BEGIN_DECLS
-int ftw(const char* _Nonnull __dir_path, int (* _Nonnull __callback)(const char* _Nonnull, const struct stat* _Nonnull, int), int __max_fd_count) __INTRODUCED_IN(17);
-int nftw(const char* _Nonnull __dir_path, int (* _Nonnull __callback)(const char* _Nonnull, const struct stat* _Nonnull, int, struct FTW* _Nonnull), int __max_fd_count, int __flags) __INTRODUCED_IN(17);
-int ftw64(const char* _Nonnull __dir_path, int (* _Nonnull __callback)(const char* _Nonnull, const struct stat64* _Nonnull, int), int __max_fd_count) __RENAME_STAT64(ftw, 17, 21);
-int nftw64(const char* _Nonnull __dir_path, int (* _Nonnull __callback)(const char* _Nonnull, const struct stat64* _Nonnull, int, struct FTW* _Nonnull), int __max_fd_count, int __flags) __RENAME_STAT64(nftw, 17, 21);
+int ftw(const char* _Nonnull __dir_path, int (* _Nonnull __callback)(const char* _Nonnull, const struct stat* _Nonnull, int), int __max_fd_count);
+int nftw(const char* _Nonnull __dir_path, int (* _Nonnull __callback)(const char* _Nonnull, const struct stat* _Nonnull, int, struct FTW* _Nonnull), int __max_fd_count, int __flags);
+int ftw64(const char* _Nonnull __dir_path, int (* _Nonnull __callback)(const char* _Nonnull, const struct stat64* _Nonnull, int), int __max_fd_count);
+int nftw64(const char* _Nonnull __dir_path, int (* _Nonnull __callback)(const char* _Nonnull, const struct stat64* _Nonnull, int, struct FTW* _Nonnull), int __max_fd_count, int __flags);
 __END_DECLS
 
 #endif
diff --git a/libc/include/getopt.h b/libc/include/getopt.h
index c1c0442..1a30eb7 100644
--- a/libc/include/getopt.h
+++ b/libc/include/getopt.h
@@ -70,12 +70,12 @@
 __BEGIN_DECLS
 
 /**
- * [getopt_long(3)](http://man7.org/linux/man-pages/man3/getopt.3.html) parses command-line options.
+ * [getopt_long(3)](https://man7.org/linux/man-pages/man3/getopt.3.html) parses command-line options.
  */
 int getopt_long(int __argc, char* _Nonnull const* _Nonnull __argv, const char* _Nonnull __options, const struct option* _Nonnull __long_options, int* _Nullable __long_index);
 
 /**
- * [getopt_long_only(3)](http://man7.org/linux/man-pages/man3/getopt.3.html) parses command-line options.
+ * [getopt_long_only(3)](https://man7.org/linux/man-pages/man3/getopt.3.html) parses command-line options.
  */
 int getopt_long_only(int __argc, char* _Nonnull const* _Nonnull __argv, const char* _Nonnull __options, const struct option* _Nonnull __long_options, int* _Nullable __long_index);
 
diff --git a/libc/include/glob.h b/libc/include/glob.h
index 2c2b8d1..ccdf2e9 100644
--- a/libc/include/glob.h
+++ b/libc/include/glob.h
@@ -92,8 +92,12 @@
 
 __BEGIN_DECLS
 
+
+#if __BIONIC_AVAILABILITY_GUARD(28)
 int glob(const char* _Nonnull __pattern, int __flags, int (* _Nullable __error_callback)(const char* _Nonnull __failure_path, int __failure_errno), glob_t* _Nonnull __result_ptr) __INTRODUCED_IN(28);
 void globfree(glob_t* _Nonnull __result_ptr) __INTRODUCED_IN(28);
+#endif /* __BIONIC_AVAILABILITY_GUARD(28) */
+
 
 __END_DECLS
 
diff --git a/libc/include/grp.h b/libc/include/grp.h
index 2451db5..a48c046 100644
--- a/libc/include/grp.h
+++ b/libc/include/grp.h
@@ -51,12 +51,20 @@
 struct group* _Nullable getgrnam(const char* _Nonnull __name);
 
 /* Note: Android has thousands and thousands of ids to iterate through. */
+
+#if __BIONIC_AVAILABILITY_GUARD(26)
 struct group* _Nullable getgrent(void) __INTRODUCED_IN(26);
 
 void setgrent(void) __INTRODUCED_IN(26);
 void endgrent(void) __INTRODUCED_IN(26);
+#endif /* __BIONIC_AVAILABILITY_GUARD(26) */
+
+
+#if __BIONIC_AVAILABILITY_GUARD(24)
 int getgrgid_r(gid_t __gid, struct group* __BIONIC_COMPLICATED_NULLNESS __group, char* _Nonnull __buf, size_t __n, struct group* _Nullable * _Nonnull __result) __INTRODUCED_IN(24);
 int getgrnam_r(const char* _Nonnull __name, struct group* __BIONIC_COMPLICATED_NULLNESS __group, char* _Nonnull __buf, size_t __n, struct group* _Nullable *_Nonnull __result) __INTRODUCED_IN(24);
+#endif /* __BIONIC_AVAILABILITY_GUARD(24) */
+
 int getgrouplist(const char* _Nonnull __user, gid_t __group, gid_t* __BIONIC_COMPLICATED_NULLNESS __groups, int* _Nonnull __group_count);
 int initgroups(const char* _Nonnull __user, gid_t __group);
 
diff --git a/libc/include/iconv.h b/libc/include/iconv.h
index 7cf36dc..35328ee 100644
--- a/libc/include/iconv.h
+++ b/libc/include/iconv.h
@@ -47,22 +47,27 @@
 typedef struct __iconv_t* iconv_t;
 
 /**
- * [iconv_open(3)](http://man7.org/linux/man-pages/man3/iconv_open.3.html) allocates a new converter
+ * [iconv_open(3)](https://man7.org/linux/man-pages/man3/iconv_open.3.html) allocates a new converter
  * from `__src_encoding` to `__dst_encoding`.
  *
+ * Android supports the `utf8`, `ascii`, `usascii`, `utf16be`, `utf16le`, `utf32be`, `utf32le`,
+ * and `wchart` encodings for both source and destination.
+ *
+ * Android supports the GNU `//IGNORE` and `//TRANSLIT` extensions for the
+ * destination encoding.
+ *
  * Returns a new `iconv_t` on success and returns `((iconv_t) -1)` and sets `errno` on failure.
  *
  * Available since API level 28.
  */
-iconv_t _Nonnull iconv_open(const char* _Nonnull __src_encoding, const char* _Nonnull __dst_encoding) __INTRODUCED_IN(28);
+
+#if __BIONIC_AVAILABILITY_GUARD(28)
+iconv_t _Nonnull iconv_open(const char* _Nonnull __dst_encoding, const char* _Nonnull __src_encoding) __INTRODUCED_IN(28);
 
 /**
- * [iconv(3)](http://man7.org/linux/man-pages/man3/iconv.3.html) converts characters from one
+ * [iconv(3)](https://man7.org/linux/man-pages/man3/iconv.3.html) converts characters from one
  * encoding to another.
  *
- * Android supports the `utf8`, `ascii`, `usascii`, `utf16be`, `utf16le`, `utf32be`, `utf32le`,
- * and `wchart` encodings. Android also supports the GNU `//IGNORE` and `//TRANSLIT` extensions.
- *
  * Returns the number of characters converted on success and returns `((size_t) -1)` and
  * sets `errno` on failure.
  *
@@ -71,7 +76,7 @@
 size_t iconv(iconv_t _Nonnull __converter, char* _Nullable * _Nullable __src_buf, size_t* __BIONIC_COMPLICATED_NULLNESS __src_bytes_left, char* _Nullable * _Nullable __dst_buf, size_t* __BIONIC_COMPLICATED_NULLNESS __dst_bytes_left) __INTRODUCED_IN(28);
 
 /**
- * [iconv_close(3)](http://man7.org/linux/man-pages/man3/iconv_close.3.html) deallocates a converter
+ * [iconv_close(3)](https://man7.org/linux/man-pages/man3/iconv_close.3.html) deallocates a converter
  * returned by iconv_open().
  *
  * Returns 0 on success and returns -1 and sets `errno` on failure.
@@ -79,5 +84,7 @@
  * Available since API level 28.
  */
 int iconv_close(iconv_t _Nonnull __converter) __INTRODUCED_IN(28);
+#endif /* __BIONIC_AVAILABILITY_GUARD(28) */
+
 
 __END_DECLS
diff --git a/libc/include/ifaddrs.h b/libc/include/ifaddrs.h
index 7c0dcbf..87d2947 100644
--- a/libc/include/ifaddrs.h
+++ b/libc/include/ifaddrs.h
@@ -72,7 +72,7 @@
 #define ifa_dstaddr ifa_ifu.ifu_dstaddr
 
 /**
- * [getifaddrs(3)](http://man7.org/linux/man-pages/man3/getifaddrs.3.html) creates a linked list
+ * [getifaddrs(3)](https://man7.org/linux/man-pages/man3/getifaddrs.3.html) creates a linked list
  * of `struct ifaddrs`. The list must be freed by freeifaddrs().
  *
  * Returns 0 and stores the list in `*__list_ptr` on success,
@@ -80,14 +80,18 @@
  *
  * Available since API level 24.
  */
+
+#if __BIONIC_AVAILABILITY_GUARD(24)
 int getifaddrs(struct ifaddrs* _Nullable * _Nonnull __list_ptr) __INTRODUCED_IN(24);
 
 /**
- * [freeifaddrs(3)](http://man7.org/linux/man-pages/man3/freeifaddrs.3.html) frees a linked list
+ * [freeifaddrs(3)](https://man7.org/linux/man-pages/man3/freeifaddrs.3.html) frees a linked list
  * of `struct ifaddrs` returned by getifaddrs().
  *
  * Available since API level 24.
  */
 void freeifaddrs(struct ifaddrs* _Nullable __ptr) __INTRODUCED_IN(24);
+#endif /* __BIONIC_AVAILABILITY_GUARD(24) */
+
 
 __END_DECLS
diff --git a/libc/include/inttypes.h b/libc/include/inttypes.h
index 76aee38..790030e 100644
--- a/libc/include/inttypes.h
+++ b/libc/include/inttypes.h
@@ -19,8 +19,8 @@
 #ifndef	_INTTYPES_H_
 #define	_INTTYPES_H_
 
-#include <stdint.h>
 #include <sys/cdefs.h>
+#include <stdint.h>
 
 #ifdef __LP64__
 #define __PRI_64_prefix  "l"
@@ -327,12 +327,12 @@
 } imaxdiv_t;
 
 __BEGIN_DECLS
-intmax_t imaxabs(intmax_t __i) __attribute_const__ __INTRODUCED_IN(19);
-imaxdiv_t imaxdiv(intmax_t __numerator, intmax_t __denominator) __attribute_const__ __INTRODUCED_IN(19);
+intmax_t imaxabs(intmax_t __i) __attribute_const__;
+imaxdiv_t imaxdiv(intmax_t __numerator, intmax_t __denominator) __attribute_const__;
 intmax_t strtoimax(const char* _Nonnull __s, char* _Nullable * _Nullable __end_ptr, int __base);
 uintmax_t strtoumax(const char* _Nonnull __s, char* _Nullable * _Nullable __end_ptr, int __base);
-intmax_t wcstoimax(const wchar_t* _Nonnull __s, wchar_t* _Nullable * _Nullable __end_ptr, int __base) __INTRODUCED_IN(21);
-uintmax_t wcstoumax(const wchar_t* _Nonnull __s, wchar_t* _Nullable * _Nullable __end_ptr, int __base) __INTRODUCED_IN(21);
+intmax_t wcstoimax(const wchar_t* _Nonnull __s, wchar_t* _Nullable * _Nullable __end_ptr, int __base);
+uintmax_t wcstoumax(const wchar_t* _Nonnull __s, wchar_t* _Nullable * _Nullable __end_ptr, int __base);
 __END_DECLS
 
 #endif
diff --git a/libc/include/langinfo.h b/libc/include/langinfo.h
index 2b43892..b9d695c 100644
--- a/libc/include/langinfo.h
+++ b/libc/include/langinfo.h
@@ -92,8 +92,12 @@
 #define NOEXPR 54
 #define CRNCYSTR 55
 
+
+#if __BIONIC_AVAILABILITY_GUARD(26)
 char* _Nonnull nl_langinfo(nl_item __item) __INTRODUCED_IN(26);
 char* _Nonnull nl_langinfo_l(nl_item __item, locale_t _Nonnull __l) __INTRODUCED_IN(26);
+#endif /* __BIONIC_AVAILABILITY_GUARD(26) */
+
 
 __END_DECLS
 
diff --git a/libc/include/libgen.h b/libc/include/libgen.h
index 474f066..8f2ea2b 100644
--- a/libc/include/libgen.h
+++ b/libc/include/libgen.h
@@ -41,7 +41,7 @@
 __BEGIN_DECLS
 
 /**
- * [basename(3)](http://man7.org/linux/man-pages/man3/basename.3.html)
+ * [basename(3)](https://man7.org/linux/man-pages/man3/basename.3.html)
  * returns the final component of the given path.
  *
  * See `<string.h>` for the GNU basename(). Including `<libgen.h>`,
@@ -59,7 +59,7 @@
 #define basename __posix_basename
 
 /**
- * [dirname(3)](http://man7.org/linux/man-pages/man3/dirname.3.html)
+ * [dirname(3)](https://man7.org/linux/man-pages/man3/dirname.3.html)
  * returns all but the final component of the given path.
  *
  * Note that Android's cv-qualifiers differ from POSIX; Android's implementation doesn't
diff --git a/libc/include/limits.h b/libc/include/limits.h
index 48e7ea9..5e9ce59 100644
--- a/libc/include/limits.h
+++ b/libc/include/limits.h
@@ -1,6 +1,3 @@
-/*	$OpenBSD: limits.h,v 1.13 2005/12/31 19:29:38 millert Exp $	*/
-/*	$NetBSD: limits.h,v 1.7 1994/10/26 00:56:00 cgd Exp $	*/
-
 /*
  * Copyright (c) 1988 The Regents of the University of California.
  * All rights reserved.
@@ -32,122 +29,127 @@
  *	@(#)limits.h	5.9 (Berkeley) 4/3/91
  */
 
-#ifndef _LIMITS_H_
-#define _LIMITS_H_
+#pragma once
+
+/**
+ * @file limits.h
+ * @brief Constants relating to implementation limits.
+ *
+ * This file is included via `#include_next` from the clang header of the same
+ * name that provides all the limits that the compiler is responsible for,
+ * primarily those relating to integer types defined by the C standard.
+ * This file defines the additional limits defined by POSIX.
+ */
+
+/*
+ * The Android build system has bionic _before_ the clang headers,
+ * so although the claim above that clang does an `#include_next`
+ * of this file is true for the NDK, it's not true for the OS,
+ * and we need to paper over that difference here until/unless
+ * the OS build changes.
+ */
+#if __has_include_next(<limits.h>)
+#include_next <limits.h>
+#endif
 
 #include <sys/cdefs.h>
 
 /* Historically bionic exposed the content of <float.h> from <limits.h> and <sys/limits.h> too. */
 #include <float.h>
 
+/* Many of the POSIX limits come from the kernel. */
 #include <linux/limits.h>
 
-#define PASS_MAX		128	/* _PASSWORD_LEN from <pwd.h> */
-
-#define NL_ARGMAX		9
-#define NL_LANGMAX		14
-#define NL_MSGMAX		32767
-#define NL_NMAX			1
-#define NL_SETMAX		255
-#define NL_TEXTMAX		255
-
-#define TMP_MAX                 308915776
-
-/* TODO: get all these from the compiler's <limits.h>? */
-
-#define CHAR_BIT 8
-#ifdef __LP64__
-# define LONG_BIT 64
-#else
-# define LONG_BIT 32
+/*
+ * bionic always exposed these alternative names,
+ * but clang's <limits.h> considers them GNU extensions,
+ * and may or may not have defined them.
+ */
+#ifndef LONG_LONG_MIN
+/** Non-portable synonym; use LLONG_MIN directly instead. */
+#define LONG_LONG_MIN LLONG_MIN
 #endif
+#ifndef LONG_LONG_MAX
+/** Non-portable synonym; use LLONG_MAX directly instead. */
+#define LONG_LONG_MAX LLONG_MAX
+#endif
+#ifndef ULONG_LONG_MAX
+/** Non-portable synonym; use ULLONG_MAX directly instead. */
+#define ULONG_LONG_MAX ULLONG_MAX
+#endif
+
+/** Maximum number of positional arguments in a printf()/scanf() format string. */
+#define NL_ARGMAX 9
+/** Maximum number of bytes in a $LANG name. */
+#define NL_LANGMAX 14
+/** Irrelevant with Android's <nl_types.h>. */
+#define NL_MSGMAX 32767
+/** Obsolete; removed from POSIX. */
+#define NL_NMAX 1
+/** Irrelevant with Android's <nl_types.h>. */
+#define NL_SETMAX 255
+/** Irrelevant with Android's <nl_types.h>. */
+#define NL_TEXTMAX 255
+
+/** Obsolete; removed from POSIX. */
+#define PASS_MAX 128
+/** Obsolete; removed from POSIX. */
+#define TMP_MAX 308915776
+
+/** Number of bits in a `long` (POSIX). */
+#if __LP64__
+#define LONG_BIT 64
+#else
+#define LONG_BIT 32
+#endif
+/** Number of bits in a "word" of `int` (POSIX). */
 #define WORD_BIT 32
 
-#define	SCHAR_MAX	0x7f		/* max value for a signed char */
-#define SCHAR_MIN	(-0x7f-1)	/* min value for a signed char */
-
-#define	UCHAR_MAX	0xffU		/* max value for an unsigned char */
-#ifdef __CHAR_UNSIGNED__
-# define CHAR_MIN	0		/* min value for a char */
-# define CHAR_MAX	0xff		/* max value for a char */
-#else
-# define CHAR_MAX	0x7f
-# define CHAR_MIN	(-0x7f-1)
-#endif
-
-#define	USHRT_MAX	0xffffU		/* max value for an unsigned short */
-#define	SHRT_MAX	0x7fff		/* max value for a short */
-#define SHRT_MIN        (-0x7fff-1)     /* min value for a short */
-
-#define	UINT_MAX	0xffffffffU	/* max value for an unsigned int */
-#define	INT_MAX		0x7fffffff	/* max value for an int */
-#define	INT_MIN		(-0x7fffffff-1)	/* min value for an int */
-
-#ifdef __LP64__
-# define ULONG_MAX	0xffffffffffffffffUL     /* max value for unsigned long */
-# define LONG_MAX	0x7fffffffffffffffL      /* max value for a signed long */
-# define LONG_MIN	(-0x7fffffffffffffffL-1) /* min value for a signed long */
-#else
-# define ULONG_MAX	0xffffffffUL	/* max value for an unsigned long */
-# define LONG_MAX	0x7fffffffL	/* max value for a long */
-# define LONG_MIN	(-0x7fffffffL-1)/* min value for a long */
-#endif
-
-# define ULLONG_MAX	0xffffffffffffffffULL     /* max value for unsigned long long */
-# define LLONG_MAX	0x7fffffffffffffffLL      /* max value for a signed long long */
-# define LLONG_MIN	(-0x7fffffffffffffffLL-1) /* min value for a signed long long */
-
-/* GLibc compatibility definitions.
-   Note that these are defined by GCC's <limits.h>
-   only when __GNU_LIBRARY__ is defined, i.e. when
-   targetting GLibc. */
-#ifndef LONG_LONG_MIN
-#define LONG_LONG_MIN  LLONG_MIN
-#endif
-
-#ifndef LONG_LONG_MAX
-#define LONG_LONG_MAX  LLONG_MAX
-#endif
-
-#ifndef ULONG_LONG_MAX
-#define ULONG_LONG_MAX  ULLONG_MAX
-#endif
-
-#if defined(__USE_BSD) || defined(__BIONIC__) /* Historically bionic exposed these. */
-# define UID_MAX	UINT_MAX	/* max value for a uid_t */
-# define GID_MAX	UINT_MAX	/* max value for a gid_t */
-#if defined(__LP64__)
+/** Maximum value of a uid_t. */
+#define UID_MAX UINT_MAX
+/** Maximum value of a gid_t. */
+#define GID_MAX UINT_MAX
+/** Maximum value of a size_t. */
 #define SIZE_T_MAX ULONG_MAX
-#else
-#define SIZE_T_MAX UINT_MAX
-#endif
-#endif
-
-#if defined(__LP64__)
+/** Maximum value of a ssize_t. */
 #define SSIZE_MAX LONG_MAX
-#else
-#define SSIZE_MAX INT_MAX
-#endif
 
+/** Maximum number of bytes in a multibyte character. */
 #define MB_LEN_MAX 4
 
+/** Default process priority. */
 #define NZERO 20
 
+/** Maximum number of struct iovec that can be passed in a single readv()/writev(). */
 #define IOV_MAX 1024
+
+/** Maximum value for a semaphore. */
 #define SEM_VALUE_MAX 0x3fffffff
 
+/** Do not use: prefer getline() or asprintf() rather than hard-coding an arbitrary size. */
+#define LINE_MAX _POSIX2_LINE_MAX
+
 /* POSIX says these belong in <unistd.h> but BSD has some in <limits.h>. */
 #include <bits/posix_limits.h>
 
+/** Maximum length of a hostname returned by gethostname(). */
 #define HOST_NAME_MAX _POSIX_HOST_NAME_MAX
+
+/** Maximum length of a login name. */
 #define LOGIN_NAME_MAX 256
+
+/** Maximum length of terminal device name. */
 #define TTY_NAME_MAX 32
 
-/* >= _POSIX_THREAD_DESTRUCTOR_ITERATIONS */
-#define PTHREAD_DESTRUCTOR_ITERATIONS 4
-/* >= _POSIX_THREAD_KEYS_MAX */
-#define PTHREAD_KEYS_MAX 128
-/* bionic has no specific limit */
-#undef PTHREAD_THREADS_MAX
+/** Maximum number of attempts to destroy thread-specific data when a thread exits. */
+#define PTHREAD_DESTRUCTOR_ITERATIONS _POSIX_THREAD_DESTRUCTOR_ITERATIONS
 
-#endif /* !_LIMITS_H_ */
+/**
+ * The number of calls to pthread_key_create() without intervening calls to
+ * pthread_key_delete() that are guaranteed to succeed. See pthread_key_create()
+ * for more details and ways to avoid hitting this limit.
+ */
+#define PTHREAD_KEYS_MAX 128
+
+/** bionic has no fixed limit on the number of threads. */
+#undef PTHREAD_THREADS_MAX
diff --git a/libc/include/link.h b/libc/include/link.h
index a0a3d60..331070e 100644
--- a/libc/include/link.h
+++ b/libc/include/link.h
@@ -25,11 +25,17 @@
  * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  */
-#ifndef _LINK_H_
-#define _LINK_H_
+
+#pragma once
+
+/**
+ * @file link.h
+ * @brief Extra dynamic linker functionality (see also <dlfcn.h>).
+ */
+
+#include <sys/cdefs.h>
 
 #include <stdint.h>
-#include <sys/cdefs.h>
 #include <sys/types.h>
 
 #include <elf.h>
@@ -37,36 +43,80 @@
 __BEGIN_DECLS
 
 #if defined(__LP64__)
+/** Convenience macro to get the appropriate 32-bit or 64-bit <elf.h> type for the caller's bitness. */
 #define ElfW(type) Elf64_ ## type
 #else
+/** Convenience macro to get the appropriate 32-bit or 64-bit <elf.h> type for the caller's bitness. */
 #define ElfW(type) Elf32_ ## type
 #endif
 
+/**
+ * Information passed by dl_iterate_phdr() to the callback.
+ */
 struct dl_phdr_info {
+  /** The address of the shared object. */
   ElfW(Addr) dlpi_addr;
+  /** The name of the shared object. */
   const char* _Nullable dlpi_name;
+  /** Pointer to the shared object's program headers. */
   const ElfW(Phdr)* _Nullable dlpi_phdr;
+  /** Number of program headers pointed to by `dlpi_phdr`. */
   ElfW(Half) dlpi_phnum;
 
-  // These fields were added in Android R.
+  /**
+   * The total number of library load events at the time dl_iterate_phdr() was
+   * called.
+   *
+   * This field is only available since API level 30; you can use the size
+   * passed to the callback to determine whether you have the full struct,
+   * or just the fields up to and including `dlpi_phnum`.
+   */
   unsigned long long dlpi_adds;
+  /**
+   * The total number of library unload events at the time dl_iterate_phdr() was
+   * called.
+   *
+   * This field is only available since API level 30; you can use the size
+   * passed to the callback to determine whether you have the full struct,
+   * or just the fields up to and including `dlpi_phnum`.
+   */
   unsigned long long dlpi_subs;
+  /**
+   * The module ID for TLS relocations in this shared object.
+   *
+   * This field is only available since API level 30; you can use the size
+   * passed to the callback to determine whether you have the full struct,
+   * or just the fields up to and including `dlpi_phnum`.
+   */
   size_t dlpi_tls_modid;
+  /**
+   * The caller's TLS data for this shared object.
+   *
+   * This field is only available since API level 30; you can use the size
+   * passed to the callback to determine whether you have the full struct,
+   * or just the fields up to and including `dlpi_phnum`.
+   */
   void* _Nullable dlpi_tls_data;
 };
 
-#if defined(__arm__)
-int dl_iterate_phdr(int (* _Nonnull __callback)(struct dl_phdr_info* _Nonnull, size_t, void* _Nullable), void* _Nullable __data) __INTRODUCED_IN(21);
-#else
-int dl_iterate_phdr(int (* _Nonnull __callback)(struct dl_phdr_info* _Nonnull, size_t, void*_Nullable ), void* _Nullable __data);
-#endif
+/**
+ * [dl_iterate_phdr(3)](https://man7.org/linux/man-pages/man3/dl_iterate_phdr.3.html)
+ * calls the given callback once for every loaded shared object. The size
+ * argument to the callback lets you determine whether you have a smaller
+ * `dl_phdr_info` from before API level 30, or the newer full one.
+ * The data argument to the callback is whatever you pass as the data argument
+ * to dl_iterate_phdr().
+ *
+ * Returns the value returned by the final call to the callback.
+ */
+int dl_iterate_phdr(int (* _Nonnull __callback)(struct dl_phdr_info* _Nonnull __info, size_t __size, void* _Nullable __data), void* _Nullable __data);
 
 #ifdef __arm__
 typedef uintptr_t _Unwind_Ptr;
 _Unwind_Ptr dl_unwind_find_exidx(_Unwind_Ptr, int* _Nonnull);
 #endif
 
-/* Used by the dynamic linker to communicate with the debugger. */
+/** Used by the dynamic linker to communicate with the debugger. */
 struct link_map {
   ElfW(Addr) l_addr;
   char* _Nullable l_name;
@@ -75,7 +125,7 @@
   struct link_map* _Nullable l_prev;
 };
 
-/* Used by the dynamic linker to communicate with the debugger. */
+/** Used by the dynamic linker to communicate with the debugger. */
 struct r_debug {
   int32_t r_version;
   struct link_map* _Nullable r_map;
@@ -89,5 +139,3 @@
 };
 
 __END_DECLS
-
-#endif
diff --git a/libc/include/locale.h b/libc/include/locale.h
index 27f2a3f..f5c79cb 100644
--- a/libc/include/locale.h
+++ b/libc/include/locale.h
@@ -96,13 +96,13 @@
   char int_n_sign_posn;
 };
 
-struct lconv* _Nonnull localeconv(void) __INTRODUCED_IN_NO_GUARD_FOR_NDK(21);
+struct lconv* _Nonnull localeconv(void);
 
-locale_t _Nullable duplocale(locale_t _Nonnull __l) __INTRODUCED_IN(21);
-void freelocale(locale_t _Nonnull __l) __INTRODUCED_IN(21);
-locale_t _Nullable newlocale(int __category_mask, const char* _Nonnull __locale_name, locale_t _Nullable __base) __INTRODUCED_IN(21);
+locale_t _Nullable duplocale(locale_t _Nonnull __l);
+void freelocale(locale_t _Nonnull __l);
+locale_t _Nullable newlocale(int __category_mask, const char* _Nonnull __locale_name, locale_t _Nullable __base);
 char* _Nullable setlocale(int __category, const char* _Nullable __locale_name);
-locale_t _Nullable uselocale(locale_t _Nullable __l) __INTRODUCED_IN(21);
+locale_t _Nullable uselocale(locale_t _Nullable __l);
 
 #define LC_GLOBAL_LOCALE __BIONIC_CAST(reinterpret_cast, locale_t, -1L)
 
diff --git a/libc/include/malloc.h b/libc/include/malloc.h
index 6a2d380..ac27467 100644
--- a/libc/include/malloc.h
+++ b/libc/include/malloc.h
@@ -34,68 +34,95 @@
 #define __BIONIC_ALLOC_SIZE(...) __attribute__((__alloc_size__(__VA_ARGS__)))
 
 /**
- * [malloc(3)](http://man7.org/linux/man-pages/man3/malloc.3.html) allocates
+ * [malloc(3)](https://man7.org/linux/man-pages/man3/malloc.3.html) allocates
  * memory on the heap.
  *
  * Returns a pointer to the allocated memory on success and returns a null
  * pointer and sets `errno` on failure.
+ *
+ * Note that Android (like most Unix systems) allows "overcommit". This
+ * allows processes to allocate more memory than the system has, provided
+ * they don't use it all. This works because only "dirty" pages that have
+ * been written to actually require physical memory. In practice, this
+ * means that it's rare to see memory allocation functions return a null
+ * pointer, and that a non-null pointer does not mean that you actually
+ * have all of the memory you asked for.
+ *
+ * Note also that the Linux Out Of Memory (OOM) killer behaves differently
+ * for code run via `adb shell`. The assumption is that if you ran
+ * something via `adb shell` you're a developer who actually wants the
+ * device to do what you're asking it to do _even if_ that means killing
+ * other processes. Obviously this is not the case for apps, which will
+ * be killed in preference to killing other processes.
  */
-void* _Nullable malloc(size_t __byte_count) __mallocfunc __BIONIC_ALLOC_SIZE(1) __wur;
+__nodiscard void* _Nullable malloc(size_t __byte_count) __mallocfunc __BIONIC_ALLOC_SIZE(1);
 
 /**
- * [calloc(3)](http://man7.org/linux/man-pages/man3/calloc.3.html) allocates
+ * [calloc(3)](https://man7.org/linux/man-pages/man3/calloc.3.html) allocates
  * and clears memory on the heap.
  *
  * Returns a pointer to the allocated memory on success and returns a null
- * pointer and sets `errno` on failure.
+ * pointer and sets `errno` on failure (but see the notes for malloc()).
  */
-void* _Nullable calloc(size_t __item_count, size_t __item_size) __mallocfunc __BIONIC_ALLOC_SIZE(1,2) __wur;
+__nodiscard void* _Nullable calloc(size_t __item_count, size_t __item_size) __mallocfunc __BIONIC_ALLOC_SIZE(1,2);
 
 /**
- * [realloc(3)](http://man7.org/linux/man-pages/man3/realloc.3.html) resizes
+ * [realloc(3)](https://man7.org/linux/man-pages/man3/realloc.3.html) resizes
  * allocated memory on the heap.
  *
  * Returns a pointer (which may be different from `__ptr`) to the resized
- * memory on success and returns a null pointer and sets `errno` on failure.
+ * memory on success and returns a null pointer and sets `errno` on failure
+ * (but see the notes for malloc()).
  */
-void* _Nullable realloc(void* _Nullable __ptr, size_t __byte_count) __BIONIC_ALLOC_SIZE(2) __wur;
+__nodiscard void* _Nullable realloc(void* _Nullable __ptr, size_t __byte_count) __BIONIC_ALLOC_SIZE(2);
 
 /**
- * [reallocarray(3)](http://man7.org/linux/man-pages/man3/realloc.3.html) resizes
+ * [reallocarray(3)](https://man7.org/linux/man-pages/man3/realloc.3.html) resizes
  * allocated memory on the heap.
  *
  * Equivalent to `realloc(__ptr, __item_count * __item_size)` but fails if the
  * multiplication overflows.
  *
  * Returns a pointer (which may be different from `__ptr`) to the resized
- * memory on success and returns a null pointer and sets `errno` on failure.
+ * memory on success and returns a null pointer and sets `errno` on failure
+ * (but see the notes for malloc()).
  */
-void* _Nullable reallocarray(void* _Nullable __ptr, size_t __item_count, size_t __item_size) __BIONIC_ALLOC_SIZE(2, 3) __wur __INTRODUCED_IN(29);
+#if __ANDROID_API__ >= 29
+__nodiscard void* _Nullable reallocarray(void* _Nullable __ptr, size_t __item_count, size_t __item_size) __BIONIC_ALLOC_SIZE(2, 3) __INTRODUCED_IN(29);
+#elif defined(__ANDROID_UNAVAILABLE_SYMBOLS_ARE_WEAK__)
+#include <errno.h>
+static __inline __nodiscard void* _Nullable reallocarray(void* _Nullable __ptr, size_t __item_count, size_t __item_size) __BIONIC_ALLOC_SIZE(2, 3) {
+  size_t __new_size;
+  if (__builtin_mul_overflow(__item_count, __item_size, &__new_size)) {
+    errno = ENOMEM;
+    return NULL;
+  }
+  return realloc(__ptr, __new_size);
+}
+#endif
 
 /**
- * [free(3)](http://man7.org/linux/man-pages/man3/free.3.html) deallocates
+ * [free(3)](https://man7.org/linux/man-pages/man3/free.3.html) deallocates
  * memory on the heap.
  */
 void free(void* _Nullable __ptr);
 
 /**
- * [memalign(3)](http://man7.org/linux/man-pages/man3/memalign.3.html) allocates
+ * [memalign(3)](https://man7.org/linux/man-pages/man3/memalign.3.html) allocates
  * memory on the heap with the required alignment.
  *
  * Returns a pointer to the allocated memory on success and returns a null
- * pointer and sets `errno` on failure.
+ * pointer and sets `errno` on failure (but see the notes for malloc()).
  *
  * See also posix_memalign().
  */
-void* _Nullable memalign(size_t __alignment, size_t __byte_count) __mallocfunc __BIONIC_ALLOC_SIZE(2) __wur;
+__nodiscard void* _Nullable memalign(size_t __alignment, size_t __byte_count) __mallocfunc __BIONIC_ALLOC_SIZE(2);
 
 /**
- * [malloc_usable_size(3)](http://man7.org/linux/man-pages/man3/malloc_usable_size.3.html)
+ * [malloc_usable_size(3)](https://man7.org/linux/man-pages/man3/malloc_usable_size.3.html)
  * returns the actual size of the given heap block.
- *
- * Available since API level 17.
  */
-size_t malloc_usable_size(const void* _Nullable __ptr) __INTRODUCED_IN(17);
+__nodiscard size_t malloc_usable_size(const void* _Nullable __ptr);
 
 #define __MALLINFO_BODY \
   /** Total number of non-mmapped bytes currently allocated from OS. */ \
@@ -125,7 +152,7 @@
 #endif
 
 /**
- * [mallinfo(3)](http://man7.org/linux/man-pages/man3/mallinfo.3.html) returns
+ * [mallinfo(3)](https://man7.org/linux/man-pages/man3/mallinfo.3.html) returns
  * information about the current state of the heap. Note that mallinfo() is
  * inherently unreliable and consider using malloc_info() instead.
  */
@@ -137,14 +164,14 @@
 struct mallinfo2 { __MALLINFO_BODY };
 
 /**
- * [mallinfo2(3)](http://man7.org/linux/man-pages/man3/mallinfo2.3.html) returns
+ * [mallinfo2(3)](https://man7.org/linux/man-pages/man3/mallinfo2.3.html) returns
  * information about the current state of the heap. Note that mallinfo2() is
  * inherently unreliable and consider using malloc_info() instead.
  */
 struct mallinfo2 mallinfo2(void) __RENAME(mallinfo);
 
 /**
- * [malloc_info(3)](http://man7.org/linux/man-pages/man3/malloc_info.3.html)
+ * [malloc_info(3)](https://man7.org/linux/man-pages/man3/malloc_info.3.html)
  * writes information about the current state of the heap to the given stream.
  *
  * The XML structure for malloc_info() is as follows:
@@ -168,10 +195,18 @@
  *
  * Available since API level 23.
  */
+
+#if __BIONIC_AVAILABILITY_GUARD(23)
 int malloc_info(int __must_be_zero, FILE* _Nonnull __fp) __INTRODUCED_IN(23);
+#endif /* __BIONIC_AVAILABILITY_GUARD(23) */
+
 
 /**
- * mallopt() option to set the decay time. Valid values are 0 and 1.
+ * mallopt() option to set the decay time. Valid values are -1, 0 and 1.
+ *   -1 : Disable the releasing of unused pages. This value is available since
+ *        API level 35.
+ *    0 : Release the unused pages immediately.
+ *    1 : Release the unused pages at a device-specific interval.
  *
  * Available since API level 27.
  */
@@ -232,8 +267,9 @@
 /**
  * mallopt() option for per-thread memory initialization tuning.
  * The value argument should be one of:
- * 1: Disable automatic heap initialization and, where possible, memory tagging,
- *    on this thread.
+ * 1: Disable automatic heap initialization on this thread only.
+ *    If memory tagging is enabled, disable as much as possible of the
+ *    memory tagging initialization for this thread.
  * 0: Normal behavior.
  *
  * Available since API level 31.
@@ -319,57 +355,75 @@
 };
 
 /**
- * [mallopt(3)](http://man7.org/linux/man-pages/man3/mallopt.3.html) modifies
+ * mallopt() option to print human readable statistics about the memory
+ * allocator to the log. There is no format for this data, each allocator
+ * can use a different format, and the data that is printed can
+ * change at any time. This is expected to be used as a debugging aid.
+ *
+ * Available since API level 35.
+ */
+#define M_LOG_STATS (-205)
+
+/**
+ * [mallopt(3)](https://man7.org/linux/man-pages/man3/mallopt.3.html) modifies
  * heap behavior. Values of `__option` are the `M_` constants from this header.
  *
  * Returns 1 on success, 0 on error.
  *
  * Available since API level 26.
  */
+
+#if __BIONIC_AVAILABILITY_GUARD(26)
 int mallopt(int __option, int __value) __INTRODUCED_IN(26);
+#endif /* __BIONIC_AVAILABILITY_GUARD(26) */
+
 
 /**
- * [__malloc_hook(3)](http://man7.org/linux/man-pages/man3/__malloc_hook.3.html)
+ * [__malloc_hook(3)](https://man7.org/linux/man-pages/man3/__malloc_hook.3.html)
  * is called to implement malloc(). By default this points to the system's
  * implementation.
  *
  * Available since API level 28.
  *
- * See also: [extra documentation](https://android.googlesource.com/platform/bionic/+/master/libc/malloc_hooks/README.md)
+ * See also: [extra documentation](https://android.googlesource.com/platform/bionic/+/main/libc/malloc_hooks/README.md)
  */
+
+#if __BIONIC_AVAILABILITY_GUARD(28)
 extern void* _Nonnull (*volatile _Nonnull __malloc_hook)(size_t __byte_count, const void* _Nonnull __caller) __INTRODUCED_IN(28);
 
 /**
- * [__realloc_hook(3)](http://man7.org/linux/man-pages/man3/__realloc_hook.3.html)
+ * [__realloc_hook(3)](https://man7.org/linux/man-pages/man3/__realloc_hook.3.html)
  * is called to implement realloc(). By default this points to the system's
  * implementation.
  *
  * Available since API level 28.
  *
- * See also: [extra documentation](https://android.googlesource.com/platform/bionic/+/master/libc/malloc_hooks/README.md)
+ * See also: [extra documentation](https://android.googlesource.com/platform/bionic/+/main/libc/malloc_hooks/README.md)
  */
 extern void* _Nonnull (*volatile _Nonnull __realloc_hook)(void* _Nullable __ptr, size_t __byte_count, const void* _Nonnull __caller) __INTRODUCED_IN(28);
 
 /**
- * [__free_hook(3)](http://man7.org/linux/man-pages/man3/__free_hook.3.html)
+ * [__free_hook(3)](https://man7.org/linux/man-pages/man3/__free_hook.3.html)
  * is called to implement free(). By default this points to the system's
  * implementation.
  *
  * Available since API level 28.
  *
- * See also: [extra documentation](https://android.googlesource.com/platform/bionic/+/master/libc/malloc_hooks/README.md)
+ * See also: [extra documentation](https://android.googlesource.com/platform/bionic/+/main/libc/malloc_hooks/README.md)
  */
 extern void (*volatile _Nonnull __free_hook)(void* _Nullable __ptr, const void* _Nonnull __caller) __INTRODUCED_IN(28);
 
 /**
- * [__memalign_hook(3)](http://man7.org/linux/man-pages/man3/__memalign_hook.3.html)
+ * [__memalign_hook(3)](https://man7.org/linux/man-pages/man3/__memalign_hook.3.html)
  * is called to implement memalign(). By default this points to the system's
  * implementation.
  *
  * Available since API level 28.
  *
- * See also: [extra documentation](https://android.googlesource.com/platform/bionic/+/master/libc/malloc_hooks/README.md)
+ * See also: [extra documentation](https://android.googlesource.com/platform/bionic/+/main/libc/malloc_hooks/README.md)
  */
 extern void* _Nonnull (*volatile _Nonnull __memalign_hook)(size_t __alignment, size_t __byte_count, const void* _Nonnull __caller) __INTRODUCED_IN(28);
+#endif /* __BIONIC_AVAILABILITY_GUARD(28) */
+
 
 __END_DECLS
diff --git a/libc/include/math.h b/libc/include/math.h
index a5fa7c3..59161bf 100644
--- a/libc/include/math.h
+++ b/libc/include/math.h
@@ -68,239 +68,235 @@
 
 #define isnormal(x) __builtin_isnormal(x)
 
-#define signbit(x) \
-    ((sizeof(x) == sizeof(float)) ? __builtin_signbitf(x) \
-    : (sizeof(x) == sizeof(double)) ? __builtin_signbit(x) \
-    : __builtin_signbitl(x))
+#define signbit(x) __builtin_signbit(x)
 
 double acos(double __x);
 float acosf(float __x);
-long double acosl(long double __x) __RENAME_LDBL(acos, 3, 21);
+long double acosl(long double __x);
 
 double asin(double __x);
 float asinf(float __x);
-long double asinl(long double __x) __RENAME_LDBL(asin, 3, 21);
+long double asinl(long double __x);
 
 double atan(double __x);
 float atanf(float __x);
-long double atanl(long double __x) __RENAME_LDBL(atan, 3, 21);
+long double atanl(long double __x);
 
 double atan2(double __y, double __x);
 float atan2f(float __y, float __x);
-long double atan2l(long double __y, long double __x) __RENAME_LDBL(atan2, 3, 21);
+long double atan2l(long double __y, long double __x);
 
 double cos(double __x);
 float cosf(float __x);
-long double cosl(long double __x) __RENAME_LDBL(cos, 3, 21);
+long double cosl(long double __x);
 
 double sin(double __x);
 float sinf(float __x);
-long double sinl(long double __x) __RENAME_LDBL(sin, 3, 21);
+long double sinl(long double __x);
 
 double tan(double __x);
 float tanf(float __x);
-long double tanl(long double __x) __RENAME_LDBL(tan, 3, 21);
+long double tanl(long double __x);
 
 double acosh(double __x);
 float acoshf(float __x);
-long double acoshl(long double __x) __RENAME_LDBL(acosh, 3, 21);
+long double acoshl(long double __x);
 
 double asinh(double __x);
 float asinhf(float __x);
-long double asinhl(long double __x) __RENAME_LDBL(asinh, 3, 21);
+long double asinhl(long double __x);
 
 double atanh(double __x);
 float atanhf(float __x);
-long double atanhl(long double __x) __RENAME_LDBL(atanh, 3, 21);
+long double atanhl(long double __x);
 
 double cosh(double __x);
 float coshf(float __x);
-long double coshl(long double __x) __RENAME_LDBL(cosh, 3, 21);
+long double coshl(long double __x);
 
 double sinh(double __x);
 float sinhf(float __x);
-long double sinhl(long double __x) __RENAME_LDBL(sinh, 3, 21);
+long double sinhl(long double __x);
 
 double tanh(double __x);
 float tanhf(float __x);
-long double tanhl(long double __x) __RENAME_LDBL(tanh, 3, 21);
+long double tanhl(long double __x);
 
 double exp(double __x);
 float expf(float __x);
-long double expl(long double __x) __RENAME_LDBL(exp, 3, 21);
+long double expl(long double __x);
 
 double exp2(double __x);
 float exp2f(float __x);
-long double exp2l(long double __x) __RENAME_LDBL(exp2, 3, 21);
+long double exp2l(long double __x);
 
 double expm1(double __x);
 float expm1f(float __x);
-long double expm1l(long double __x) __RENAME_LDBL(expm1, 3, 21);
+long double expm1l(long double __x);
 
 double frexp(double __x, int* _Nonnull __exponent);
 float frexpf(float __x, int* _Nonnull __exponent);
-long double frexpl(long double __x, int* _Nonnull __exponent) __RENAME_LDBL(frexp, 3, 21);
+long double frexpl(long double __x, int* _Nonnull __exponent);
 
 int ilogb(double __x) __attribute_const__;
 int ilogbf(float __x) __attribute_const__;
-int ilogbl(long double __x) __RENAME_LDBL(ilogb, 3, 3) __attribute_const__;
+int ilogbl(long double __x) __attribute_const__;
 
 double ldexp(double __x, int __exponent);
 float ldexpf(float __x, int __exponent);
-long double ldexpl(long double __x, int __exponent) __RENAME_LDBL(ldexp, 3, 3);
+long double ldexpl(long double __x, int __exponent);
 
 double log(double __x);
 float logf(float __x);
-long double logl(long double __x) __RENAME_LDBL(log, 3, 21);
+long double logl(long double __x);
 
 double log10(double __x);
 float log10f(float __x);
-long double log10l(long double __x) __RENAME_LDBL(log10, 3, 21);
+long double log10l(long double __x);
 
 double log1p(double __x);
 float log1pf(float __x);
-long double log1pl(long double __x) __RENAME_LDBL(log1p, 3, 21);
+long double log1pl(long double __x);
 
-double log2(double __x) __INTRODUCED_IN(18);
-float log2f(float __x) __INTRODUCED_IN(18);
-long double log2l(long double __x) __RENAME_LDBL(log2, 18, 18);
+double log2(double __x);
+float log2f(float __x);
+long double log2l(long double __x);
 
 double logb(double __x);
 float logbf(float __x);
-long double logbl(long double __x) __RENAME_LDBL(logb, 3, 18);
+long double logbl(long double __x);
 
 double modf(double __x, double* _Nonnull __integral_part);
 float modff(float __x, float* _Nonnull __integral_part);
-long double modfl(long double __x, long double* _Nonnull __integral_part) __RENAME_LDBL(modf, 3, 21);
+long double modfl(long double __x, long double* _Nonnull __integral_part);
 
 double scalbn(double __x, int __exponent);
 float scalbnf(float __x, int __exponent);
-long double scalbnl(long double __x, int __exponent) __RENAME_LDBL(scalbn, 3, 3);
+long double scalbnl(long double __x, int __exponent);
 
-/* TODO: once the NDK only supports >= 18, use __RENAME_LDBL here too. */
-double scalbln(double __x, long __exponent) __INTRODUCED_IN_X86_NO_GUARD_FOR_NDK(18);
-float scalblnf(float __x, long __exponent) __INTRODUCED_IN_X86_NO_GUARD_FOR_NDK(18);
-long double scalblnl(long double __x, long __exponent) __INTRODUCED_IN_X86_NO_GUARD_FOR_NDK(18);
+double scalbln(double __x, long __exponent);
+float scalblnf(float __x, long __exponent);
+long double scalblnl(long double __x, long __exponent);
 
 double cbrt(double __x);
 float cbrtf(float __x);
-long double cbrtl(long double __x) __RENAME_LDBL(cbrt, 3, 21);
+long double cbrtl(long double __x);
 
 double fabs(double __x) __attribute_const__;
 float fabsf(float __x) __attribute_const__;
-long double fabsl(long double __x) __RENAME_LDBL(fabs, 3, 3) __attribute_const__;
+long double fabsl(long double __x) __attribute_const__;
 
 double hypot(double __x, double __y);
 float hypotf(float __x, float __y);
-long double hypotl(long double __x, long double __y) __RENAME_LDBL(hypot, 3, 21);
+long double hypotl(long double __x, long double __y);
 
 double pow(double __x, double __y);
 float powf(float __x, float __y);
-long double powl(long double __x, long double __y) __RENAME_LDBL(pow, 3, 21);
+long double powl(long double __x, long double __y);
 
 double sqrt(double __x);
 float sqrtf(float __x);
-long double sqrtl(long double __x) __RENAME_LDBL(sqrt, 3, 21);
+long double sqrtl(long double __x);
 
 double erf(double __x);
 float erff(float __x);
-long double erfl(long double __x) __RENAME_LDBL(erf, 3, 21);
+long double erfl(long double __x);
 
 double erfc(double __x);
 float erfcf(float __x);
-long double erfcl(long double __x) __RENAME_LDBL(erfc, 3, 21);
+long double erfcl(long double __x);
 
 double lgamma(double __x);
 float lgammaf(float __x);
-long double lgammal(long double __x) __RENAME_LDBL(lgamma, 3, 21);
+long double lgammal(long double __x);
 
 double tgamma(double __x);
 float tgammaf(float __x);
-long double tgammal(long double __x) __RENAME_LDBL(tgamma, 3, 21);
+long double tgammal(long double __x);
 
 double ceil(double __x);
 float ceilf(float __x);
-long double ceill(long double __x) __RENAME_LDBL(ceil, 3, 3);
+long double ceill(long double __x);
 
 double floor(double __x);
 float floorf(float __x);
-long double floorl(long double __x) __RENAME_LDBL(floor, 3, 3);
+long double floorl(long double __x);
 
 double nearbyint(double __x);
 float nearbyintf(float __x);
-long double nearbyintl(long double __x) __RENAME_LDBL(nearbyint, 3, 21);
+long double nearbyintl(long double __x);
 
 double rint(double __x);
 float rintf(float __x);
-long double rintl(long double __x) __RENAME_LDBL(rint, 3, 21);
+long double rintl(long double __x);
 
 long lrint(double __x);
 long lrintf(float __x);
-long lrintl(long double __x) __RENAME_LDBL(lrint, 3, 21);
+long lrintl(long double __x);
 
 long long llrint(double __x);
 long long llrintf(float __x);
-long long llrintl(long double __x) __RENAME_LDBL(llrint, 3, 21);
+long long llrintl(long double __x);
 
 double round(double __x);
 float roundf(float __x);
-long double roundl(long double __x) __RENAME_LDBL(roundl, 3, 3);
+long double roundl(long double __x);
 
 long lround(double __x);
 long lroundf(float __x);
-long lroundl(long double __x) __RENAME_LDBL(lround, 3, 3);
+long lroundl(long double __x);
 
 long long llround(double __x);
 long long llroundf(float __x);
-long long llroundl(long double __x) __RENAME_LDBL(llround, 3, 3);
+long long llroundl(long double __x);
 
 double trunc(double __x);
 float truncf(float __x);
-long double truncl(long double __x) __RENAME_LDBL(trunc, 3, 3);
+long double truncl(long double __x);
 
 double fmod(double __x, double __y);
 float fmodf(float __x, float __y);
-long double fmodl(long double __x, long double __y) __RENAME_LDBL(fmod, 3, 21);
+long double fmodl(long double __x, long double __y);
 
 double remainder(double __x, double __y);
 float remainderf(float __x, float __y);
-long double remainderl(long double __x, long double __y) __RENAME_LDBL(remainder, 3, 21);
+long double remainderl(long double __x, long double __y);
 
 double remquo(double __x, double __y, int* _Nonnull __quotient_bits);
 float remquof(float __x, float __y, int* _Nonnull __quotient_bits);
-long double remquol(long double __x, long double __y, int* _Nonnull __quotient_bits) __RENAME_LDBL(remquo, 3, 21);
+long double remquol(long double __x, long double __y, int* _Nonnull __quotient_bits);
 
 double copysign(double __value, double __sign) __attribute_const__;
 float copysignf(float __value, float __sign) __attribute_const__;
-long double copysignl(long double __value, long double __sign) __RENAME_LDBL(copysign, 3, 3) __attribute_const__;
+long double copysignl(long double __value, long double __sign) __attribute_const__;
 
 double nan(const char* _Nonnull __kind) __attribute_const__;
 float nanf(const char* _Nonnull __kind) __attribute_const__;
-long double nanl(const char* _Nonnull __kind) __RENAME_LDBL(nan, 13, 13) __attribute_const__;
+long double nanl(const char* _Nonnull __kind) __attribute_const__;
 
 double nextafter(double __x, double __y);
 float nextafterf(float __x, float __y);
-long double nextafterl(long double __x, long double __y) __RENAME_LDBL_NO_GUARD_FOR_NDK(nextafter, 3, 21);
+long double nextafterl(long double __x, long double __y);
 
-double nexttoward(double __x, long double __y) __INTRODUCED_IN_NO_GUARD_FOR_NDK(18);
+double nexttoward(double __x, long double __y);
 float nexttowardf(float __x, long double __y);
-long double nexttowardl(long double __x, long double __y) __RENAME_LDBL_NO_GUARD_FOR_NDK(nexttoward, 18, 18);
+long double nexttowardl(long double __x, long double __y);
 
 double fdim(double __x, double __y);
 float fdimf(float __x, float __y);
-long double fdiml(long double __x, long double __y) __RENAME_LDBL(fdim, 3, 3);
+long double fdiml(long double __x, long double __y);
 
 double fmax(double __x, double __y) __attribute_const__;
 float fmaxf(float __x, float __y) __attribute_const__;
-long double fmaxl(long double __x, long double __y) __RENAME_LDBL(fmax, 3, 3) __attribute_const__;
+long double fmaxl(long double __x, long double __y) __attribute_const__;
 
 double fmin(double __x, double __y) __attribute_const__;
 float fminf(float __x, float __y) __attribute_const__;
-long double fminl(long double __x, long double __y) __RENAME_LDBL(fmin, 3, 3) __attribute_const__;
+long double fminl(long double __x, long double __y) __attribute_const__;
 
 double fma(double __x, double __y, double __z);
 float fmaf(float __x, float __y, float __z);
-long double fmal(long double __x, long double __y, long double __z) __RENAME_LDBL_NO_GUARD_FOR_NDK(fma, 3, 21);
+long double fmal(long double __x, long double __y, long double __z);
 
 #define isgreater(x, y) __builtin_isgreater((x), (y))
 #define isgreaterequal(x, y) __builtin_isgreaterequal((x), (y))
@@ -309,20 +305,6 @@
 #define islessgreater(x, y) __builtin_islessgreater((x), (y))
 #define isunordered(x, y) __builtin_isunordered((x), (y))
 
-/*
- * https://code.google.com/p/android/issues/detail?id=271629
- * To be fully compliant with C++, we need to not define these (C doesn't
- * specify them either). Exposing these means that isinf and isnan will have a
- * return type of int in C++ rather than bool like they're supposed to be.
- *
- * GNU libstdc++ 4.9 isn't able to handle a standard compliant C library. Its
- * <cmath> will `#undef isnan` from math.h and only adds the function overloads
- * to the std namespace, making it impossible to use both <cmath> (which gets
- * included by a lot of other standard headers) and ::isnan.
- */
-int (isinf)(double __x) __attribute_const__ __INTRODUCED_IN(21);
-int (isnan)(double __x) __attribute_const__;
-
 /* POSIX extensions. */
 
 extern int signgam;
@@ -363,12 +345,17 @@
 double scalb(double __x, double __exponent);
 double drem(double __x, double __y);
 int finite(double __x) __attribute_const__;
+int isinff(float __x) __attribute_const__;
 int isnanf(float __x) __attribute_const__;
 double gamma_r(double __x, int* _Nonnull __sign);
 double lgamma_r(double __x, int* _Nonnull __sign);
 double significand(double __x);
+
+#if __BIONIC_AVAILABILITY_GUARD(23)
 long double lgammal_r(long double __x, int* _Nonnull __sign) __INTRODUCED_IN(23);
-long double significandl(long double __x) __INTRODUCED_IN(21);
+#endif /* __BIONIC_AVAILABILITY_GUARD(23) */
+
+long double significandl(long double __x);
 float dremf(float __x, float __y);
 int finitef(float __x) __attribute_const__;
 float gammaf(float __x);
@@ -403,6 +390,8 @@
 #define M_2_SQRTPIl     1.128379167095512573896158903121545172L /* 2/sqrt(pi) */
 #define M_SQRT2l        1.414213562373095048801688724209698079L /* sqrt(2) */
 #define M_SQRT1_2l      0.707106781186547524400844362104849039L /* 1/sqrt(2) */
+int isinfl(long double __x) __attribute_const__;
+int isnanl(long double __x) __attribute_const__;
 #endif
 
 __END_DECLS
diff --git a/libc/include/mntent.h b/libc/include/mntent.h
index 43cab1f..4c03602 100644
--- a/libc/include/mntent.h
+++ b/libc/include/mntent.h
@@ -29,8 +29,9 @@
 #ifndef _MNTENT_H_
 #define _MNTENT_H_
 
-#include <stdio.h>
 #include <sys/cdefs.h>
+
+#include <stdio.h>
 #include <paths.h>  /* for _PATH_MOUNTED */
 
 #define MOUNTED _PATH_MOUNTED
@@ -57,11 +58,15 @@
 
 __BEGIN_DECLS
 
-int endmntent(FILE* _Nullable __fp) __INTRODUCED_IN(21);
+int endmntent(FILE* _Nullable __fp);
 struct mntent* _Nullable getmntent(FILE* _Nonnull __fp);
-struct mntent* _Nullable getmntent_r(FILE* _Nonnull __fp, struct mntent* _Nonnull __entry, char* _Nonnull __buf, int __size) __INTRODUCED_IN(21);
-FILE* _Nullable setmntent(const char* _Nonnull __filename, const char* _Nonnull __type) __INTRODUCED_IN(21);
+struct mntent* _Nullable getmntent_r(FILE* _Nonnull __fp, struct mntent* _Nonnull __entry, char* _Nonnull __buf, int __size);
+FILE* _Nullable setmntent(const char* _Nonnull __filename, const char* _Nonnull __type);
+
+#if __BIONIC_AVAILABILITY_GUARD(26)
 char* _Nullable hasmntopt(const struct mntent* _Nonnull __entry, const char* _Nonnull __option) __INTRODUCED_IN(26);
+#endif /* __BIONIC_AVAILABILITY_GUARD(26) */
+
 
 __END_DECLS
 
diff --git a/libc/include/net/if.h b/libc/include/net/if.h
index f261f71..50bc74c 100644
--- a/libc/include/net/if.h
+++ b/libc/include/net/if.h
@@ -29,9 +29,10 @@
 #ifndef _NET_IF_H_
 #define _NET_IF_H_
 
+#include <sys/cdefs.h>
+
 #include <sys/socket.h>
 #include <linux/if.h>
-#include <sys/cdefs.h>
 
 #ifndef IF_NAMESIZE
 #define IF_NAMESIZE IFNAMSIZ
@@ -41,13 +42,17 @@
 
 struct if_nameindex {
   unsigned if_index;
-  char* if_name;
+  char* _Nullable if_name;
 };
 
-char* if_indextoname(unsigned __index, char* __buf);
-unsigned if_nametoindex(const char* __name);
-struct if_nameindex* if_nameindex(void) __INTRODUCED_IN(24);
-void if_freenameindex(struct if_nameindex* __ptr) __INTRODUCED_IN(24);
+char* _Nullable if_indextoname(unsigned __index, char* _Nonnull __buf);
+unsigned if_nametoindex(const char* _Nonnull __name);
+
+#if __BIONIC_AVAILABILITY_GUARD(24)
+struct if_nameindex* _Nullable if_nameindex(void) __INTRODUCED_IN(24);
+void if_freenameindex(struct if_nameindex* _Nullable __ptr) __INTRODUCED_IN(24);
+#endif /* __BIONIC_AVAILABILITY_GUARD(24) */
+
 
 __END_DECLS
 
diff --git a/libc/include/netdb.h b/libc/include/netdb.h
index 7a1987e..04aaf5c 100644
--- a/libc/include/netdb.h
+++ b/libc/include/netdb.h
@@ -78,6 +78,8 @@
  * supplied in host order, and returned in network order (suitable for
  * use in system calls).
  */
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wnullability-completeness"
 struct hostent {
 	char	*h_name;	/* official name of host */
 	char	**h_aliases;	/* alias list */
@@ -98,7 +100,7 @@
 	char	*s_name;	/* official service name */
 	char	**s_aliases;	/* alias list */
 	int	s_port;		/* port # */
-	char	*s_proto;	/* protocol to use */
+	char	* _Nullable s_proto;	/* protocol to use */
 };
 
 struct protoent {
@@ -117,6 +119,7 @@
 	struct	sockaddr *ai_addr;	/* binary address */
 	struct	addrinfo *ai_next;	/* next structure in linked list */
 };
+#pragma clang diagnostic pop
 
 /*
  * Error return codes from gethostbyname() and gethostbyaddr()
@@ -196,47 +199,71 @@
 
 __BEGIN_DECLS
 
-int getaddrinfo(const char* __node, const char* __service, const struct addrinfo* __hints, struct addrinfo** __result);
-void freeaddrinfo(struct addrinfo* __ptr);
+int getaddrinfo(const char* _Nullable __node, const char* _Nullable __service, const struct addrinfo* _Nullable __hints, struct addrinfo* _Nullable * _Nonnull __result);
+void freeaddrinfo(struct addrinfo* _Nullable __ptr);
 
 /* Android ABI error: POSIX getnameinfo(3) uses socklen_t rather than size_t. */
-int getnameinfo(const struct sockaddr* __sa, socklen_t __sa_length, char* __host, size_t __host_length, char* __service, size_t __service_length, int __flags);
-const char* gai_strerror(int __error);
+int getnameinfo(const struct sockaddr* _Nonnull __sa, socklen_t __sa_length, char* _Nullable __host, size_t __host_length, char* _Nullable __service, size_t __service_length, int __flags);
+const char* _Nonnull gai_strerror(int __error);
 
 /* These functions are obsolete. Use getaddrinfo/getnameinfo instead. */
 #define h_errno (*__get_h_errno())
-int* __get_h_errno(void);
-void herror(const char* __s);
-const char* hstrerror(int __error);
-struct hostent* gethostbyaddr(const void* __addr, socklen_t __length, int __type);
-int gethostbyaddr_r(const void* __addr, socklen_t __length, int __type, struct hostent* __ret, char* __buf, size_t __buf_size, struct hostent** __result, int* __h_errno_ptr) __INTRODUCED_IN(23);
-struct hostent* gethostbyname(const char* __name);
-int gethostbyname_r(const char* __name, struct hostent* __ret, char* __buf, size_t __buf_size, struct hostent** __result, int* __h_errno_ptr);
-struct hostent* gethostbyname2(const char* __name, int __af);
-int gethostbyname2_r(const char* __name, int __af, struct hostent* __ret, char* __buf, size_t __buf_size, struct hostent** __result, int* __h_errno_ptr) __INTRODUCED_IN(23);
+int* _Nonnull __get_h_errno(void);
+void herror(const char* _Nonnull __s);
+const char* _Nonnull hstrerror(int __error);
+struct hostent* _Nullable gethostbyaddr(const void* _Nonnull __addr, socklen_t __length, int __type);
+
+#if __BIONIC_AVAILABILITY_GUARD(23)
+int gethostbyaddr_r(const void* _Nonnull __addr, socklen_t __length, int __type, struct hostent* _Nonnull __ret, char* _Nonnull __buf, size_t __buf_size, struct hostent* _Nullable * _Nonnull __result, int* _Nonnull __h_errno_ptr) __INTRODUCED_IN(23);
+#endif /* __BIONIC_AVAILABILITY_GUARD(23) */
+
+struct hostent* _Nullable gethostbyname(const char* _Nonnull __name);
+int gethostbyname_r(const char* _Nonnull __name, struct hostent* _Nonnull __ret, char* _Nonnull __buf, size_t __buf_size, struct hostent* _Nullable * _Nonnull __result, int* _Nonnull __h_errno_ptr);
+struct hostent* _Nullable gethostbyname2(const char* _Nonnull __name, int __af);
+
+#if __BIONIC_AVAILABILITY_GUARD(23)
+int gethostbyname2_r(const char* _Nonnull __name, int __af, struct hostent* _Nonnull __ret, char* _Nonnull __buf, size_t __buf_size, struct hostent* _Nullable * _Nonnull __result, int* _Nonnull __h_errno_ptr) __INTRODUCED_IN(23);
+#endif /* __BIONIC_AVAILABILITY_GUARD(23) */
+
+
+#if __BIONIC_AVAILABILITY_GUARD(28)
 void endhostent(void) __INTRODUCED_IN(28);
-struct hostent* gethostent(void);
+#endif /* __BIONIC_AVAILABILITY_GUARD(28) */
+
+struct hostent* _Nullable gethostent(void);
+
+#if __BIONIC_AVAILABILITY_GUARD(28)
 void sethostent(int __stay_open) __INTRODUCED_IN(28);
 
 /* These functions are obsolete. None of these functions return anything but nullptr. */
 void endnetent(void) __INTRODUCED_IN(28);
-struct netent* getnetbyaddr(uint32_t __net, int __type);
-struct netent* getnetbyname(const char* __name);
-struct netent* getnetent(void) __INTRODUCED_IN(28);
+#endif /* __BIONIC_AVAILABILITY_GUARD(28) */
+
+struct netent* _Nullable getnetbyaddr(uint32_t __net, int __type);
+struct netent* _Nullable getnetbyname(const char* _Nonnull __name);
+
+#if __BIONIC_AVAILABILITY_GUARD(28)
+struct netent* _Nullable getnetent(void) __INTRODUCED_IN(28);
 void setnetent(int __stay_open) __INTRODUCED_IN(28);
 
 /* None of these functions return anything but nullptr. */
 void endprotoent(void) __INTRODUCED_IN(28);
-struct protoent* getprotobyname(const char* __name);
-struct protoent* getprotobynumber(int __proto);
-struct protoent* getprotoent(void) __INTRODUCED_IN(28);
+#endif /* __BIONIC_AVAILABILITY_GUARD(28) */
+
+struct protoent* _Nullable getprotobyname(const char* _Nonnull __name);
+struct protoent* _Nullable getprotobynumber(int __proto);
+
+#if __BIONIC_AVAILABILITY_GUARD(28)
+struct protoent* _Nullable getprotoent(void) __INTRODUCED_IN(28);
 void setprotoent(int __stay_open) __INTRODUCED_IN(28);
+#endif /* __BIONIC_AVAILABILITY_GUARD(28) */
+
 
 /* These functions return entries from a built-in database. */
 void endservent(void);
-struct servent* getservbyname(const char* __name, const char* __proto);
-struct servent* getservbyport(int __port_in_network_order, const char* __proto);
-struct servent* getservent(void);
+struct servent* _Nullable getservbyname(const char* _Nonnull __name, const char* _Nullable __proto);
+struct servent* _Nullable getservbyport(int __port_in_network_order, const char* _Nullable __proto);
+struct servent* _Nullable getservent(void);
 void setservent(int __stay_open);
 
 __END_DECLS
diff --git a/libc/include/netinet/ether.h b/libc/include/netinet/ether.h
index 480063d..a847385 100644
--- a/libc/include/netinet/ether.h
+++ b/libc/include/netinet/ether.h
@@ -39,35 +39,35 @@
 __BEGIN_DECLS
 
 /**
- * [ether_ntoa(3)](http://man7.org/linux/man-pages/man3/ether_ntoa.3.html) returns a string
- * representation of the given Ethernet address.
+ * [ether_ntoa(3)](https://man7.org/linux/man-pages/man3/ether_ntoa.3.html) returns a string
+ * representation of the given Ethernet (MAC) address.
  *
  * Returns a pointer to a static buffer.
  */
-char* ether_ntoa(const struct ether_addr* __addr);
+char* _Nonnull ether_ntoa(const struct ether_addr* _Nonnull __addr);
 
 /**
- * [ether_ntoa_r(3)](http://man7.org/linux/man-pages/man3/ether_ntoa_r.3.html) returns a string
- * representation of the given Ethernet address.
+ * [ether_ntoa_r(3)](https://man7.org/linux/man-pages/man3/ether_ntoa_r.3.html) returns a string
+ * representation of the given Ethernet (MAC) address.
  *
  * Returns a pointer to the given buffer.
  */
-char* ether_ntoa_r(const struct ether_addr* __addr, char* __buf);
+char* _Nonnull ether_ntoa_r(const struct ether_addr* _Nonnull __addr, char* _Nonnull __buf);
 
 /**
- * [ether_aton(3)](http://man7.org/linux/man-pages/man3/ether_aton.3.html) returns an `ether_addr`
- * corresponding to the given Ethernet address string.
+ * [ether_aton(3)](https://man7.org/linux/man-pages/man3/ether_aton.3.html) returns an `ether_addr`
+ * corresponding to the given Ethernet (MAC) address string.
  *
  * Returns a pointer to a static buffer, or NULL if the given string isn't a valid MAC address.
  */
-struct ether_addr* ether_aton(const char* __ascii);
+struct ether_addr* _Nullable ether_aton(const char* _Nonnull __ascii);
 
 /**
- * [ether_aton_r(3)](http://man7.org/linux/man-pages/man3/ether_aton_r.3.html) returns an
- * `ether_addr` corresponding to the given Ethernet address string.
+ * [ether_aton_r(3)](https://man7.org/linux/man-pages/man3/ether_aton_r.3.html) returns an
+ * `ether_addr` corresponding to the given Ethernet (MAC) address string.
  *
  * Returns a pointer to the given buffer, or NULL if the given string isn't a valid MAC address.
  */
-struct ether_addr* ether_aton_r(const char* __ascii, struct ether_addr* __addr);
+struct ether_addr* _Nullable ether_aton_r(const char* _Nonnull __ascii, struct ether_addr* _Nonnull __addr);
 
 __END_DECLS
diff --git a/libc/include/netinet/icmp6.h b/libc/include/netinet/icmp6.h
index 2b237a8..ebd9f6c 100644
--- a/libc/include/netinet/icmp6.h
+++ b/libc/include/netinet/icmp6.h
@@ -65,9 +65,10 @@
 #ifndef _NETINET_ICMP6_H_
 #define _NETINET_ICMP6_H_
 
-#include <netinet/in.h> /* android-added: glibc source compatibility. */
 #include <sys/cdefs.h>
 
+#include <netinet/in.h> /* android-added: glibc source compatibility. */
+
 #define ICMPV6_PLD_MAXLEN	1232	/* IPV6_MMTU - sizeof(struct ip6_hdr)
 					   - sizeof(struct icmp6_hdr) */
 
diff --git a/libm/fenv-access.h b/libc/include/netinet/igmp.h
similarity index 67%
copy from libm/fenv-access.h
copy to libc/include/netinet/igmp.h
index 7acb34d..497d02d 100644
--- a/libm/fenv-access.h
+++ b/libc/include/netinet/igmp.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2021 The Android Open Source Project
+ * Copyright (C) 2024 The Android Open Source Project
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -28,6 +28,29 @@
 
 #pragma once
 
-#if defined(__x86_64__) || defined(__i386__)
-#pragma STDC FENV_ACCESS ON
-#endif
+/**
+ * @file netinet/igmp.h
+ * @brief Internet Group Management Protocol (IGMP).
+ */
+
+#include <sys/cdefs.h>
+#include <netinet/in.h>
+
+#include <linux/igmp.h>
+
+/**
+ * The uapi type is called `igmphdr`,
+ * doesn't have the `igmp_` prefix on each field,
+ * and uses a `__be32` for the group address.
+ *
+ * This is the type that BSDs and musl/glibc expose to userspace.
+ */
+struct igmp {
+  uint8_t igmp_type;
+  uint8_t igmp_code;
+  uint16_t igmp_cksum;
+  struct in_addr igmp_group;
+};
+
+/** Commonly-used BSD synonym for the Linux constant. */
+#define IGMP_MEMBERSHIP_QUERY IGMP_HOST_MEMBERSHIP_QUERY
diff --git a/libc/include/netinet/in.h b/libc/include/netinet/in.h
index 46e3543..d4ce302 100644
--- a/libc/include/netinet/in.h
+++ b/libc/include/netinet/in.h
@@ -28,25 +28,16 @@
 
 #pragma once
 
+#include <sys/cdefs.h>
+
 #include <endian.h>
 #include <netinet/in6.h>
-#include <sys/cdefs.h>
 #include <sys/socket.h>
 
-// Include linux/socket.h first to trigger the header guard without
-// the__kernel_sockaddr_storage define, so its definition uses the
-// kernel name.
-#include <linux/socket.h>
-
-// Redefine __kernel_sockaddr_storage to sockaddr_storage so that
-// the structs defined in linux/in.h use the sockaddr_storage defined
-// in sys/sockets.h.
-#define __kernel_sockaddr_storage sockaddr_storage
 #include <linux/in.h>
-#undef __kernel_sockaddr_storage
-
 #include <linux/in6.h>
 #include <linux/ipv6.h>
+#include <linux/socket.h>
 
 __BEGIN_DECLS
 
@@ -54,7 +45,7 @@
 
 typedef uint16_t in_port_t;
 
-int bindresvport(int __fd, struct sockaddr_in* __sin);
+int bindresvport(int __fd, struct sockaddr_in* _Nullable __sin);
 
 #if __ANDROID_API__ >= 24
 extern const struct in6_addr in6addr_any __INTRODUCED_IN(24);
diff --git a/libc/include/netinet/in6.h b/libc/include/netinet/in6.h
index ae20f83..44b3e3e 100644
--- a/libc/include/netinet/in6.h
+++ b/libc/include/netinet/in6.h
@@ -89,7 +89,7 @@
   (IN6_IS_ADDR_MULTICAST(a) && (IPV6_ADDR_MC_SCOPE(a) == IPV6_ADDR_SCOPE_GLOBAL))
 
 #define IN6_ARE_ADDR_EQUAL(a, b) \
-  (memcmp(&(a)->s6_addr[0], &(b)->s6_addr[0], sizeof(struct in6_addr)) == 0)
+  (__builtin_memcmp(&(a)->s6_addr[0], &(b)->s6_addr[0], sizeof(struct in6_addr)) == 0)
 
 #define INET6_ADDRSTRLEN 46
 
diff --git a/libc/include/netinet/tcp.h b/libc/include/netinet/tcp.h
index 147f6f7..d1c657b 100644
--- a/libc/include/netinet/tcp.h
+++ b/libc/include/netinet/tcp.h
@@ -32,47 +32,10 @@
 #include <sys/cdefs.h>
 #include <stdint.h>
 
-#define tcphdr __kernel_tcphdr
 #include <linux/tcp.h>
-#undef tcphdr
 
 __BEGIN_DECLS
 
-struct tcphdr {
-  __extension__ union {
-    struct {
-      uint16_t th_sport;
-      uint16_t th_dport;
-      uint32_t th_seq;
-      uint32_t th_ack;
-      uint8_t th_x2:4;
-      uint8_t th_off:4;
-      uint8_t th_flags;
-      uint16_t th_win;
-      uint16_t th_sum;
-      uint16_t th_urp;
-    };
-    struct {
-      uint16_t source;
-      uint16_t dest;
-      uint32_t seq;
-      uint32_t ack_seq;
-      uint16_t res1:4;
-      uint16_t doff:4;
-      uint16_t fin:1;
-      uint16_t syn:1;
-      uint16_t rst:1;
-      uint16_t psh:1;
-      uint16_t ack:1;
-      uint16_t urg:1;
-      uint16_t res2:2;
-      uint16_t window;
-      uint16_t check;
-      uint16_t urg_ptr;
-    };
-  };
-};
-
 #define TH_FIN 0x01
 #define TH_SYN 0x02
 #define TH_RST 0x04
diff --git a/libc/include/nl_types.h b/libc/include/nl_types.h
index f4d7f43..172d80d 100644
--- a/libc/include/nl_types.h
+++ b/libc/include/nl_types.h
@@ -56,16 +56,18 @@
 typedef int nl_item;
 
 /**
- * [catopen(3)](http://man7.org/linux/man-pages/man3/catopen.3.html) opens a message catalog.
+ * [catopen(3)](https://man7.org/linux/man-pages/man3/catopen.3.html) opens a message catalog.
  *
  * On Android, this always returns failure: `((nl_catd) -1)`.
  *
  * Available since API level 28.
  */
+
+#if __BIONIC_AVAILABILITY_GUARD(26)
 nl_catd _Nonnull catopen(const char* _Nonnull __name, int __flag) __INTRODUCED_IN(26);
 
 /**
- * [catgets(3)](http://man7.org/linux/man-pages/man3/catgets.3.html) translates the given message
+ * [catgets(3)](https://man7.org/linux/man-pages/man3/catgets.3.html) translates the given message
  * using the given message catalog.
  *
  * On Android, this always returns `__msg`.
@@ -75,10 +77,12 @@
 char* _Nonnull catgets(nl_catd _Nonnull __catalog, int __set_number, int __msg_number, const char* _Nonnull __msg) __INTRODUCED_IN(26);
 
 /**
- * [catclose(3)](http://man7.org/linux/man-pages/man3/catclose.3.html) closes a message catalog.
+ * [catclose(3)](https://man7.org/linux/man-pages/man3/catclose.3.html) closes a message catalog.
  *
  * On Android, this always returns -1 with `errno` set to `EBADF`.
  */
 int catclose(nl_catd _Nonnull __catalog) __INTRODUCED_IN(26);
+#endif /* __BIONIC_AVAILABILITY_GUARD(26) */
+
 
 __END_DECLS
diff --git a/libc/include/poll.h b/libc/include/poll.h
index e3a9039..e57f812 100644
--- a/libc/include/poll.h
+++ b/libc/include/poll.h
@@ -44,7 +44,7 @@
 typedef unsigned int nfds_t;
 
 /**
- * [poll(3)](http://man7.org/linux/man-pages/man3/poll.3.html) waits on a set of file descriptors.
+ * [poll(3)](https://man7.org/linux/man-pages/man3/poll.3.html) waits on a set of file descriptors.
  *
  * Returns the number of ready file descriptors on success, 0 for timeout,
  * and returns -1 and sets `errno` on failure.
@@ -52,21 +52,23 @@
 int poll(struct pollfd* _Nullable __fds, nfds_t __count, int __timeout_ms);
 
 /**
- * [ppoll(3)](http://man7.org/linux/man-pages/man3/ppoll.3.html) waits on a set of file descriptors
+ * [ppoll(3)](https://man7.org/linux/man-pages/man3/ppoll.3.html) waits on a set of file descriptors
  * or a signal. Set `__timeout` to null for no timeout. Set `__mask` to null to not set the signal
  * mask.
  *
  * Returns the number of ready file descriptors on success, 0 for timeout,
  * and returns -1 and sets `errno` on failure.
- *
- * Available since API level 28.
  */
-int ppoll(struct pollfd* _Nullable __fds, nfds_t __count, const struct timespec* _Nullable __timeout, const sigset_t* _Nullable __mask) __INTRODUCED_IN(21);
+int ppoll(struct pollfd* _Nullable __fds, nfds_t __count, const struct timespec* _Nullable __timeout, const sigset_t* _Nullable __mask);
 
 /**
  * Like ppoll() but allows setting a signal mask with RT signals even from a 32-bit process.
  */
+
+#if __BIONIC_AVAILABILITY_GUARD(28)
 int ppoll64(struct pollfd* _Nullable  __fds, nfds_t __count, const struct timespec* _Nullable __timeout, const sigset64_t* _Nullable __mask) __INTRODUCED_IN(28);
+#endif /* __BIONIC_AVAILABILITY_GUARD(28) */
+
 
 #if defined(__BIONIC_INCLUDE_FORTIFY_HEADERS)
 #define _POLL_H_
diff --git a/libc/include/pthread.h b/libc/include/pthread.h
index 98695eb..cdf1b8c 100644
--- a/libc/include/pthread.h
+++ b/libc/include/pthread.h
@@ -33,10 +33,12 @@
  * @brief POSIX threads.
  */
 
+#include <sys/cdefs.h>
+
 #include <limits.h>
+#include <bits/page_size.h>
 #include <bits/pthread_types.h>
 #include <sched.h>
-#include <sys/cdefs.h>
 #include <sys/types.h>
 #include <time.h>
 
@@ -69,14 +71,12 @@
 
 #define PTHREAD_ONCE_INIT 0
 
-#if __ANDROID_API__ >= 24
 #define PTHREAD_BARRIER_SERIAL_THREAD (-1)
-#endif
 
 #if defined(__LP64__)
-#define PTHREAD_STACK_MIN (4 * PAGE_SIZE)
+#define PTHREAD_STACK_MIN 16384
 #else
-#define PTHREAD_STACK_MIN (2 * PAGE_SIZE)
+#define PTHREAD_STACK_MIN 8192
 #endif
 
 #define PTHREAD_CREATE_DETACHED 1
@@ -99,7 +99,11 @@
 int pthread_attr_destroy(pthread_attr_t* _Nonnull __attr);
 int pthread_attr_getdetachstate(const pthread_attr_t* _Nonnull __attr, int* _Nonnull __state);
 int pthread_attr_getguardsize(const pthread_attr_t* _Nonnull __attr, size_t* _Nonnull __size);
+
+#if __BIONIC_AVAILABILITY_GUARD(28)
 int pthread_attr_getinheritsched(const pthread_attr_t* _Nonnull __attr, int* _Nonnull __flag) __INTRODUCED_IN(28);
+#endif /* __BIONIC_AVAILABILITY_GUARD(28) */
+
 int pthread_attr_getschedparam(const pthread_attr_t* _Nonnull __attr, struct sched_param* _Nonnull __param);
 int pthread_attr_getschedpolicy(const pthread_attr_t* _Nonnull __attr, int* _Nonnull __policy);
 int pthread_attr_getscope(const pthread_attr_t* _Nonnull __attr, int* _Nonnull __scope);
@@ -108,7 +112,11 @@
 int pthread_attr_init(pthread_attr_t* _Nonnull __attr);
 int pthread_attr_setdetachstate(pthread_attr_t* _Nonnull __attr, int __state);
 int pthread_attr_setguardsize(pthread_attr_t* _Nonnull __attr, size_t __size);
+
+#if __BIONIC_AVAILABILITY_GUARD(28)
 int pthread_attr_setinheritsched(pthread_attr_t* _Nonnull __attr, int __flag) __INTRODUCED_IN(28);
+#endif /* __BIONIC_AVAILABILITY_GUARD(28) */
+
 int pthread_attr_setschedparam(pthread_attr_t* _Nonnull __attr, const struct sched_param* _Nonnull __param);
 int pthread_attr_setschedpolicy(pthread_attr_t* _Nonnull __attr, int __policy);
 int pthread_attr_setscope(pthread_attr_t* _Nonnull __attr, int __scope);
@@ -116,15 +124,19 @@
 int pthread_attr_setstacksize(pthread_attr_t* _Nonnull __addr, size_t __size);
 
 int pthread_condattr_destroy(pthread_condattr_t* _Nonnull __attr);
-int pthread_condattr_getclock(const pthread_condattr_t* _Nonnull __attr, clockid_t* _Nonnull __clock) __INTRODUCED_IN(21);
+int pthread_condattr_getclock(const pthread_condattr_t* _Nonnull __attr, clockid_t* _Nonnull __clock);
 int pthread_condattr_getpshared(const pthread_condattr_t* _Nonnull __attr, int* _Nonnull __shared);
 int pthread_condattr_init(pthread_condattr_t* _Nonnull __attr);
-int pthread_condattr_setclock(pthread_condattr_t* _Nonnull __attr, clockid_t __clock) __INTRODUCED_IN(21);
+int pthread_condattr_setclock(pthread_condattr_t* _Nonnull __attr, clockid_t __clock);
 int pthread_condattr_setpshared(pthread_condattr_t* _Nonnull __attr, int __shared);
 
 int pthread_cond_broadcast(pthread_cond_t* _Nonnull __cond);
+
+#if __BIONIC_AVAILABILITY_GUARD(30)
 int pthread_cond_clockwait(pthread_cond_t* _Nonnull __cond, pthread_mutex_t* _Nonnull __mutex, clockid_t __clock,
                            const struct timespec* _Nullable __timeout) __INTRODUCED_IN(30);
+#endif /* __BIONIC_AVAILABILITY_GUARD(30) */
+
 int pthread_cond_destroy(pthread_cond_t* _Nonnull __cond);
 int pthread_cond_init(pthread_cond_t* _Nonnull __cond, const pthread_condattr_t* _Nullable __attr);
 int pthread_cond_signal(pthread_cond_t* _Nonnull __cond);
@@ -139,24 +151,15 @@
  * Note that pthread_cond_clockwait() allows specifying an arbitrary clock and has superseded this
  * function.
  */
+
+#if (!defined(__LP64__)) || (defined(__LP64__) && __ANDROID_API__ >= 28)
 int pthread_cond_timedwait_monotonic_np(pthread_cond_t* _Nonnull __cond, pthread_mutex_t* _Nonnull __mutex,
                                         const struct timespec* _Nullable __timeout) __INTRODUCED_IN_64(28);
+#endif /* (!defined(__LP64__)) || (defined(__LP64__) && __ANDROID_API__ >= 28) */
+
 int pthread_cond_wait(pthread_cond_t* _Nonnull __cond, pthread_mutex_t* _Nonnull __mutex);
 
-#if defined(__clang__)
-/*
- * Disable -Wbuiltin-requires-header because clang confuses this declaration with the one defined in
- * "llvm/tools/clang/include/clang/Basic/Builtins.def", which did not define any formal arguments.
- * It seems to be an upstream bug and the fix (https://reviews.llvm.org/D58531) is still under
- * review. Thus, let's disable the warning for this function declaration.
- */
-#pragma clang diagnostic push
-#pragma clang diagnostic ignored "-Wbuiltin-requires-header"
-#endif
-int pthread_create(pthread_t* _Nonnull __pthread_ptr, pthread_attr_t const* _Nullable __attr, void* _Nonnull (* _Nonnull __start_routine)(void* _Nonnull), void* _Nullable);
-#if defined(__clang__)
-#pragma clang diagnostic pop
-#endif
+int pthread_create(pthread_t* _Nonnull __pthread_ptr, pthread_attr_t const* _Nullable __attr, void* _Nullable (* _Nonnull __start_routine)(void* _Nullable), void* _Nullable);
 
 int pthread_detach(pthread_t __pthread);
 void pthread_exit(void* _Nullable __return_value) __noreturn;
@@ -169,29 +172,62 @@
 
 void* _Nullable pthread_getspecific(pthread_key_t __key);
 
-pid_t pthread_gettid_np(pthread_t __pthread) __INTRODUCED_IN(21);
+pid_t pthread_gettid_np(pthread_t __pthread);
 
 int pthread_join(pthread_t __pthread, void* _Nullable * _Nullable __return_value_ptr);
 
+/**
+ * [pthread_key_create(3)](https://man7.org/linux/man-pages/man3/pthread_key_create.3p.html)
+ * creates a key for thread-specific data.
+ *
+ * There is a limit of `PTHREAD_KEYS_MAX` keys per process, but most callers
+ * should just use the C or C++ `thread_local` storage specifier anyway. When
+ * targeting new enough OS versions, the compiler will automatically use
+ * ELF TLS; when targeting old OS versions the emutls implementation will
+ * multiplex pthread keys behind the scenes, using one per library rather than
+ * one per thread-local variable. If you are implementing the runtime for a
+ * different language, you should consider similar implementation choices and
+ * avoid a direct one-to-one mapping from thread locals to pthread keys.
+ *
+ * Returns 0 on success and returns an error number on failure.
+ */
 int pthread_key_create(pthread_key_t* _Nonnull __key_ptr, void (* _Nullable __key_destructor)(void* _Nullable));
+
+/**
+ * [pthread_key_delete(3)](https://man7.org/linux/man-pages/man3/pthread_key_delete.3p.html)
+ * deletes a key for thread-specific data.
+ *
+ * Returns 0 on success and returns an error number on failure.
+ */
 int pthread_key_delete(pthread_key_t __key);
 
 int pthread_mutexattr_destroy(pthread_mutexattr_t* _Nonnull __attr);
 int pthread_mutexattr_getpshared(const pthread_mutexattr_t* _Nonnull __attr, int* _Nonnull __shared);
 int pthread_mutexattr_gettype(const pthread_mutexattr_t* _Nonnull __attr, int* _Nonnull __type);
+
+#if __BIONIC_AVAILABILITY_GUARD(28)
 int pthread_mutexattr_getprotocol(const pthread_mutexattr_t* _Nonnull __attr, int* _Nonnull __protocol) __INTRODUCED_IN(28);
+#endif /* __BIONIC_AVAILABILITY_GUARD(28) */
+
 int pthread_mutexattr_init(pthread_mutexattr_t* _Nonnull __attr);
 int pthread_mutexattr_setpshared(pthread_mutexattr_t* _Nonnull __attr, int __shared);
 int pthread_mutexattr_settype(pthread_mutexattr_t* _Nonnull __attr, int __type);
-int pthread_mutexattr_setprotocol(pthread_mutexattr_t* _Nonnull __attr, int __protocol) __INTRODUCED_IN(28);
 
+#if __BIONIC_AVAILABILITY_GUARD(28)
+int pthread_mutexattr_setprotocol(pthread_mutexattr_t* _Nonnull __attr, int __protocol) __INTRODUCED_IN(28);
+#endif /* __BIONIC_AVAILABILITY_GUARD(28) */
+
+
+
+#if __BIONIC_AVAILABILITY_GUARD(30)
 int pthread_mutex_clocklock(pthread_mutex_t* _Nonnull __mutex, clockid_t __clock,
                             const struct timespec* _Nullable __abstime) __INTRODUCED_IN(30);
+#endif /* __BIONIC_AVAILABILITY_GUARD(30) */
+
 int pthread_mutex_destroy(pthread_mutex_t* _Nonnull __mutex);
 int pthread_mutex_init(pthread_mutex_t* _Nonnull __mutex, const pthread_mutexattr_t* _Nullable __attr);
 int pthread_mutex_lock(pthread_mutex_t* _Nonnull __mutex);
-int pthread_mutex_timedlock(pthread_mutex_t* _Nonnull __mutex, const struct timespec* _Nullable __timeout)
-  __INTRODUCED_IN(21);
+int pthread_mutex_timedlock(pthread_mutex_t* _Nonnull __mutex, const struct timespec* _Nullable __timeout);
 
 /*
  * POSIX historically only supported using pthread_mutex_timedlock() with CLOCK_REALTIME, however
@@ -202,8 +238,12 @@
  * Note that pthread_mutex_clocklock() allows specifying an arbitrary clock and has superseded this
  * function.
  */
+
+#if __BIONIC_AVAILABILITY_GUARD(28)
 int pthread_mutex_timedlock_monotonic_np(pthread_mutex_t* _Nonnull __mutex, const struct timespec* _Nullable __timeout)
     __INTRODUCED_IN(28);
+#endif /* __BIONIC_AVAILABILITY_GUARD(28) */
+
 int pthread_mutex_trylock(pthread_mutex_t* _Nonnull __mutex);
 int pthread_mutex_unlock(pthread_mutex_t* _Nonnull __mutex);
 
@@ -213,60 +253,121 @@
 int pthread_rwlockattr_destroy(pthread_rwlockattr_t* _Nonnull __attr);
 int pthread_rwlockattr_getpshared(const pthread_rwlockattr_t* _Nonnull __attr, int* _Nonnull __shared);
 int pthread_rwlockattr_setpshared(pthread_rwlockattr_t* _Nonnull __attr, int __shared);
+
+#if __BIONIC_AVAILABILITY_GUARD(23)
 int pthread_rwlockattr_getkind_np(const pthread_rwlockattr_t* _Nonnull __attr, int* _Nonnull __kind)
   __INTRODUCED_IN(23);
 int pthread_rwlockattr_setkind_np(pthread_rwlockattr_t* _Nonnull __attr, int __kind) __INTRODUCED_IN(23);
+#endif /* __BIONIC_AVAILABILITY_GUARD(23) */
 
+
+
+#if __BIONIC_AVAILABILITY_GUARD(30)
 int pthread_rwlock_clockrdlock(pthread_rwlock_t* _Nonnull __rwlock, clockid_t __clock,
                                const struct timespec* _Nullable __timeout) __INTRODUCED_IN(30);
 int pthread_rwlock_clockwrlock(pthread_rwlock_t* _Nonnull __rwlock, clockid_t __clock,
                                const struct timespec* _Nullable __timeout) __INTRODUCED_IN(30);
+#endif /* __BIONIC_AVAILABILITY_GUARD(30) */
+
 int pthread_rwlock_destroy(pthread_rwlock_t* _Nonnull __rwlock);
 int pthread_rwlock_init(pthread_rwlock_t* _Nonnull __rwlock, const pthread_rwlockattr_t* _Nullable __attr);
 int pthread_rwlock_rdlock(pthread_rwlock_t* _Nonnull __rwlock);
 int pthread_rwlock_timedrdlock(pthread_rwlock_t* _Nonnull __rwlock, const struct timespec* _Nullable __timeout);
 /* See the comment on pthread_mutex_timedlock_monotonic_np for usage of this function. */
+
+#if __BIONIC_AVAILABILITY_GUARD(28)
 int pthread_rwlock_timedrdlock_monotonic_np(pthread_rwlock_t* _Nonnull __rwlock,
                                             const struct timespec* _Nullable __timeout) __INTRODUCED_IN(28);
+#endif /* __BIONIC_AVAILABILITY_GUARD(28) */
+
 int pthread_rwlock_timedwrlock(pthread_rwlock_t* _Nonnull __rwlock, const struct timespec* _Nullable __timeout);
 /* See the comment on pthread_mutex_timedlock_monotonic_np for usage of this function. */
+
+#if __BIONIC_AVAILABILITY_GUARD(28)
 int pthread_rwlock_timedwrlock_monotonic_np(pthread_rwlock_t* _Nonnull __rwlock,
                                             const struct timespec* _Nullable __timeout) __INTRODUCED_IN(28);
+#endif /* __BIONIC_AVAILABILITY_GUARD(28) */
+
 int pthread_rwlock_tryrdlock(pthread_rwlock_t* _Nonnull __rwlock);
 int pthread_rwlock_trywrlock(pthread_rwlock_t* _Nonnull __rwlock);
 int pthread_rwlock_unlock(pthread_rwlock_t* _Nonnull __rwlock);
 int pthread_rwlock_wrlock(pthread_rwlock_t* _Nonnull __rwlock);
 
-#if __ANDROID_API__ >= 24
+
+#if __BIONIC_AVAILABILITY_GUARD(24)
 int pthread_barrierattr_init(pthread_barrierattr_t* _Nonnull __attr) __INTRODUCED_IN(24);
 int pthread_barrierattr_destroy(pthread_barrierattr_t* _Nonnull __attr) __INTRODUCED_IN(24);
 int pthread_barrierattr_getpshared(const pthread_barrierattr_t* _Nonnull __attr, int* _Nonnull __shared) __INTRODUCED_IN(24);
 int pthread_barrierattr_setpshared(pthread_barrierattr_t* _Nonnull __attr, int __shared) __INTRODUCED_IN(24);
-#endif
 
-#if __ANDROID_API__ >= 24
 int pthread_barrier_init(pthread_barrier_t* _Nonnull __barrier, const pthread_barrierattr_t* _Nullable __attr, unsigned __count) __INTRODUCED_IN(24);
 int pthread_barrier_destroy(pthread_barrier_t* _Nonnull __barrier) __INTRODUCED_IN(24);
 int pthread_barrier_wait(pthread_barrier_t* _Nonnull __barrier) __INTRODUCED_IN(24);
-#endif
 
-#if __ANDROID_API__ >= 24
 int pthread_spin_destroy(pthread_spinlock_t* _Nonnull __spinlock) __INTRODUCED_IN(24);
 int pthread_spin_init(pthread_spinlock_t* _Nonnull __spinlock, int __shared) __INTRODUCED_IN(24);
 int pthread_spin_lock(pthread_spinlock_t* _Nonnull __spinlock) __INTRODUCED_IN(24);
 int pthread_spin_trylock(pthread_spinlock_t* _Nonnull __spinlock) __INTRODUCED_IN(24);
 int pthread_spin_unlock(pthread_spinlock_t* _Nonnull __spinlock) __INTRODUCED_IN(24);
-#endif
+#endif /* __BIONIC_AVAILABILITY_GUARD(24) */
+
 
 pthread_t pthread_self(void) __attribute_const__;
 
-#if defined(__USE_GNU)
+#if defined(__USE_GNU) && __BIONIC_AVAILABILITY_GUARD(26)
+/**
+ * [pthread_getname_np(3)](https://man7.org/linux/man-pages/man3/pthread_getname_np.3.html)
+ * gets the name of the given thread.
+ * Names are at most 16 bytes (including '\0').
+ *
+ * Returns 0 on success and returns an error number on failure.
+ *
+ * Available since API level 26.
+ */
 int pthread_getname_np(pthread_t __pthread, char* _Nonnull __buf, size_t __n) __INTRODUCED_IN(26);
 #endif
-/* TODO: this should be __USE_GNU too. */
+
+/**
+ * [pthread_setname_np(3)](https://man7.org/linux/man-pages/man3/pthread_setname_np.3.html)
+ * sets the name of the given thread.
+ * Names are at most 16 bytes (including '\0').
+ * Truncation must be done by the caller;
+ * calls with longer names will fail with ERANGE.
+ *
+ * Returns 0 on success and returns an error number on failure.
+ *
+ * This should only have been available under _GNU_SOURCE,
+ * but is always available on Android by historical accident.
+ */
 int pthread_setname_np(pthread_t __pthread, const char* _Nonnull __name);
 
 /**
+ * [pthread_getaffinity_np(3)](https://man7.org/linux/man-pages/man3/pthread_getaffinity_np.3.html)
+ * gets the CPU affinity mask for the given thread.
+ *
+ * Returns 0 on success and returns an error number on failure.
+ *
+ * Available since API level 36.
+ * See sched_getaffinity() and pthread_gettid_np() for greater portability.
+ */
+#if defined(__USE_GNU) && __BIONIC_AVAILABILITY_GUARD(36)
+int pthread_getaffinity_np(pthread_t __pthread, size_t __cpu_set_size, cpu_set_t* __cpu_set) __INTRODUCED_IN(36);
+#endif
+
+/**
+ * [pthread_setaffinity_np(3)](https://man7.org/linux/man-pages/man3/pthread_setaffinity_np.3.html)
+ * sets the CPU affinity mask for the given thread.
+ *
+ * Returns 0 on success and returns an error number on failure.
+ *
+ * Available since API level 36.
+ * See sched_getaffinity() and pthread_gettid_np() for greater portability.
+ */
+#if defined(__USE_GNU) && __BIONIC_AVAILABILITY_GUARD(36)
+int pthread_setaffinity_np(pthread_t __pthread, size_t __cpu_set_size, const cpu_set_t* __cpu_set) __INTRODUCED_IN(36);
+#endif
+
+/**
  * [pthread_setschedparam(3)](https://man7.org/linux/man-pages/man3/pthread_setschedparam.3.html)
  * sets the scheduler policy and parameters of the given thread.
  *
@@ -300,7 +401,11 @@
  *
  * Available since API level 28.
  */
+
+#if __BIONIC_AVAILABILITY_GUARD(28)
 int pthread_setschedprio(pthread_t __pthread, int __priority) __INTRODUCED_IN(28);
+#endif /* __BIONIC_AVAILABILITY_GUARD(28) */
+
 
 int pthread_setspecific(pthread_key_t __key, const void* _Nullable __value);
 
diff --git a/libc/include/pty.h b/libc/include/pty.h
index be447d6..92d7fbb 100644
--- a/libc/include/pty.h
+++ b/libc/include/pty.h
@@ -41,7 +41,7 @@
 __BEGIN_DECLS
 
 /**
- * [openpty(3)](http://man7.org/linux/man-pages/man3/openpty.3.html) finds
+ * [openpty(3)](https://man7.org/linux/man-pages/man3/openpty.3.html) finds
  * a free pseudoterminal and configures it with the given terminal and window
  * size settings.
  *
@@ -49,10 +49,12 @@
  *
  * Available since API level 23.
  */
+
+#if __BIONIC_AVAILABILITY_GUARD(23)
 int openpty(int* _Nonnull __pty_fd, int* _Nonnull __tty_fd, char* _Nullable __tty_name, const struct termios* _Nullable __termios_ptr, const struct winsize* _Nullable __winsize_ptr) __INTRODUCED_IN(23);
 
 /**
- * [forkpty(3)](http://man7.org/linux/man-pages/man3/forkpty.3.html) creates
+ * [forkpty(3)](https://man7.org/linux/man-pages/man3/forkpty.3.html) creates
  * a new process connected to a pseudoterminal from openpty().
  *
  * Returns 0 in the child/the pid of the child in the parent on success,
@@ -61,5 +63,7 @@
  * Available since API level 23.
  */
 int forkpty(int* _Nonnull __parent_pty_fd, char* _Nullable __child_tty_name, const struct termios* _Nullable __termios_ptr, const struct winsize* _Nullable __winsize_ptr) __INTRODUCED_IN(23);
+#endif /* __BIONIC_AVAILABILITY_GUARD(23) */
+
 
 __END_DECLS
diff --git a/libc/include/pwd.h b/libc/include/pwd.h
index 2b17fbf..09592bc 100644
--- a/libc/include/pwd.h
+++ b/libc/include/pwd.h
@@ -84,10 +84,14 @@
 struct passwd* _Nullable getpwuid(uid_t __uid);
 
 /* Note: Android has thousands and thousands of ids to iterate through */
+
+#if __BIONIC_AVAILABILITY_GUARD(26)
 struct passwd* _Nullable getpwent(void) __INTRODUCED_IN(26);
 
 void setpwent(void) __INTRODUCED_IN(26);
 void endpwent(void) __INTRODUCED_IN(26);
+#endif /* __BIONIC_AVAILABILITY_GUARD(26) */
+
 
 int getpwnam_r(const char* _Nonnull __name, struct passwd* _Nonnull __pwd, char* _Nonnull __buf, size_t __n, struct passwd* _Nullable * _Nonnull __result);
 int getpwuid_r(uid_t __uid, struct passwd* _Nonnull __pwd, char* _Nonnull __buf, size_t __n, struct passwd* _Nullable * _Nonnull __result);
diff --git a/libc/include/resolv.h b/libc/include/resolv.h
index f25484a..c49cefc 100644
--- a/libc/include/resolv.h
+++ b/libc/include/resolv.h
@@ -29,9 +29,10 @@
 #ifndef _RESOLV_H_
 #define _RESOLV_H_
 
+#include <sys/cdefs.h>
+
 #include <sys/param.h>
 #include <sys/types.h>
-#include <sys/cdefs.h>
 #include <sys/socket.h>
 #include <stdio.h>
 #include <arpa/nameser.h>
@@ -60,7 +61,11 @@
 int res_search(const char* _Nonnull __name, int __class, int __type, u_char* _Nonnull __answer, int __answer_size);
 
 #define res_randomid __res_randomid
+
+#if __BIONIC_AVAILABILITY_GUARD(29)
 u_int __res_randomid(void) __INTRODUCED_IN(29);
+#endif /* __BIONIC_AVAILABILITY_GUARD(29) */
+
 
 __END_DECLS
 
diff --git a/libc/include/sched.h b/libc/include/sched.h
index 26bc742..7a2dcad 100644
--- a/libc/include/sched.h
+++ b/libc/include/sched.h
@@ -33,9 +33,10 @@
  * @brief Thread execution scheduling.
  */
 
+#include <sys/cdefs.h>
+
 #include <bits/timespec.h>
 #include <linux/sched.h>
-#include <sys/cdefs.h>
 
 __BEGIN_DECLS
 
@@ -45,42 +46,42 @@
  *
  * (Linux's name for POSIX's SCHED_OTHER.)
  *
- * See [sched(7)](http://man7.org/linux/man-pages/man7/sched.7.html)
+ * See [sched(7)](https://man7.org/linux/man-pages/man7/sched.7.html)
  */
 
 /*
  * @def SCHED_FIFO
  * The real-time first-in/first-out scheduling policy.
  *
- * See [sched(7)](http://man7.org/linux/man-pages/man7/sched.7.html)
+ * See [sched(7)](https://man7.org/linux/man-pages/man7/sched.7.html)
  */
 
 /*
  * @def SCHED_RR
  * The real-time round-robin policy. (See also SCHED_NORMAL/SCHED_OTHER.)
  *
- * See [sched(7)](http://man7.org/linux/man-pages/man7/sched.7.html)
+ * See [sched(7)](https://man7.org/linux/man-pages/man7/sched.7.html)
  */
 
 /*
  * @def SCHED_BATCH
  * The batch scheduling policy.
  *
- * See [sched(7)](http://man7.org/linux/man-pages/man7/sched.7.html)
+ * See [sched(7)](https://man7.org/linux/man-pages/man7/sched.7.html)
  */
 
 /*
  * @def SCHED_IDLE
  * The low priority "only when otherwise idle" scheduling priority.
  *
- * See [sched(7)](http://man7.org/linux/man-pages/man7/sched.7.html)
+ * See [sched(7)](https://man7.org/linux/man-pages/man7/sched.7.html)
  */
 
 /*
  * @def SCHED_DEADLINE
  * The deadline scheduling policy.
  *
- * See [sched(7)](http://man7.org/linux/man-pages/man7/sched.7.html)
+ * See [sched(7)](https://man7.org/linux/man-pages/man7/sched.7.html)
  */
 
 /*
@@ -99,7 +100,7 @@
 };
 
 /**
- * [sched_setscheduler(2)](http://man7.org/linux/man-pages/man2/sched_getcpu.2.html)
+ * [sched_setscheduler(2)](https://man7.org/linux/man-pages/man2/sched_setscheduler.2.html)
  * sets the scheduling policy and associated parameters for the given thread.
  *
  * Returns 0 on success and returns -1 and sets `errno` on failure.
@@ -107,7 +108,7 @@
 int sched_setscheduler(pid_t __pid, int __policy, const struct sched_param* _Nonnull __param);
 
 /**
- * [sched_getscheduler(2)](http://man7.org/linux/man-pages/man2/sched_getcpu.2.html)
+ * [sched_getscheduler(2)](https://man7.org/linux/man-pages/man2/sched_getscheduler.2)
  * gets the scheduling policy for the given thread.
  *
  * Returns a non-negative thread policy on success and returns -1 and sets
@@ -116,7 +117,7 @@
 int sched_getscheduler(pid_t __pid);
 
 /**
- * [sched_yield(2)](http://man7.org/linux/man-pages/man2/sched_yield.2.html)
+ * [sched_yield(2)](https://man7.org/linux/man-pages/man2/sched_yield.2.html)
  * voluntarily gives up using the CPU so that another thread can run.
  *
  * Returns 0 on success and returns -1 and sets `errno` on failure.
@@ -124,7 +125,7 @@
 int sched_yield(void);
 
 /**
- * [sched_get_priority_max(2)](http://man7.org/linux/man-pages/man2/sched_get_priority_max.2.html)
+ * [sched_get_priority_max(2)](https://man7.org/linux/man-pages/man2/sched_get_priority_max.2.html)
  * gets the maximum priority value allowed for the given scheduling policy.
  *
  * Returns a priority on success and returns -1 and sets `errno` on failure.
@@ -132,7 +133,7 @@
 int sched_get_priority_max(int __policy);
 
 /**
- * [sched_get_priority_min(2)](http://man7.org/linux/man-pages/man2/sched_get_priority_min.2.html)
+ * [sched_get_priority_min(2)](https://man7.org/linux/man-pages/man2/sched_get_priority_min.2.html)
  * gets the minimum priority value allowed for the given scheduling policy.
  *
  * Returns a priority on success and returns -1 and sets `errno` on failure.
@@ -140,7 +141,7 @@
 int sched_get_priority_min(int __policy);
 
 /**
- * [sched_setparam(2)](http://man7.org/linux/man-pages/man2/sched_setparam.2.html)
+ * [sched_setparam(2)](https://man7.org/linux/man-pages/man2/sched_setparam.2.html)
  * sets the scheduling parameters for the given thread.
  *
  * Returns 0 on success and returns -1 and sets `errno` on failure.
@@ -148,7 +149,7 @@
 int sched_setparam(pid_t __pid, const struct sched_param* _Nonnull __param);
 
 /**
- * [sched_getparam(2)](http://man7.org/linux/man-pages/man2/sched_getparam.2.html)
+ * [sched_getparam(2)](https://man7.org/linux/man-pages/man2/sched_getparam.2.html)
  * gets the scheduling parameters for the given thread.
  *
  * Returns 0 on success and returns -1 and sets `errno` on failure.
@@ -156,7 +157,7 @@
 int sched_getparam(pid_t __pid, struct sched_param* _Nonnull __param);
 
 /**
- * [sched_rr_get_interval(2)](http://man7.org/linux/man-pages/man2/sched_rr_get_interval.2.html)
+ * [sched_rr_get_interval(2)](https://man7.org/linux/man-pages/man2/sched_rr_get_interval.2.html)
  * queries the round-robin time quantum for the given thread.
  *
  * Returns 0 on success and returns -1 and sets `errno` on failure.
@@ -166,36 +167,32 @@
 #if defined(__USE_GNU)
 
 /**
- * [clone(2)](http://man7.org/linux/man-pages/man2/clone.2.html)
+ * [clone(2)](https://man7.org/linux/man-pages/man2/clone.2.html)
  * creates a new child process.
  *
  * Returns the pid of the child to the caller on success and
  * returns -1 and sets `errno` on failure.
  */
-int clone(int (* __BIONIC_COMPLICATED_NULLNESS __fn)(void* __BIONIC_COMPLICATED_NULLNESS ), void* __BIONIC_COMPLICATED_NULLNESS __child_stack, int __flags, void* _Nullable __arg, ...) __INTRODUCED_IN_ARM(9) __INTRODUCED_IN_X86(17);
+int clone(int (* __BIONIC_COMPLICATED_NULLNESS __fn)(void* __BIONIC_COMPLICATED_NULLNESS ), void* __BIONIC_COMPLICATED_NULLNESS __child_stack, int __flags, void* _Nullable __arg, ...);
 
 /**
- * [unshare(2)](http://man7.org/linux/man-pages/man2/unshare.2.html)
+ * [unshare(2)](https://man7.org/linux/man-pages/man2/unshare.2.html)
  * disassociates part of the caller's execution context.
  *
  * Returns 0 on success and returns -1 and sets `errno` on failure.
- *
- * Available since API level 17.
  */
-int unshare(int __flags) __INTRODUCED_IN(17);
+int unshare(int __flags);
 
 /**
- * [setns(2)](http://man7.org/linux/man-pages/man2/setns.2.html)
+ * [setns(2)](https://man7.org/linux/man-pages/man2/setns.2.html)
  * reassociates a thread with a different namespace.
  *
  * Returns 0 on success and returns -1 and sets `errno` on failure.
- *
- * Available since API level 21.
  */
-int setns(int __fd, int __ns_type) __INTRODUCED_IN(21);
+int setns(int __fd, int __ns_type);
 
 /**
- * [sched_getcpu(3)](http://man7.org/linux/man-pages/man3/sched_getcpu.3.html)
+ * [sched_getcpu(3)](https://man7.org/linux/man-pages/man3/sched_getcpu.3.html)
  * reports which CPU the caller is running on.
  *
  * Returns a non-negative CPU number on success and returns -1 and sets
@@ -223,7 +220,7 @@
 } cpu_set_t;
 
 /**
- * [sched_setaffinity(2)](http://man7.org/linux/man-pages/man2/sched_setaffinity.2.html)
+ * [sched_setaffinity(2)](https://man7.org/linux/man-pages/man2/sched_setaffinity.2.html)
  * sets the CPU affinity mask for the given thread.
  *
  * Returns 0 on success and returns -1 and sets `errno` on failure.
@@ -231,7 +228,7 @@
 int sched_setaffinity(pid_t __pid, size_t __set_size, const cpu_set_t* _Nonnull __set);
 
 /**
- * [sched_getaffinity(2)](http://man7.org/linux/man-pages/man2/sched_getaffinity.2.html)
+ * [sched_getaffinity(2)](https://man7.org/linux/man-pages/man2/sched_getaffinity.2.html)
  * gets the CPU affinity mask for the given thread.
  *
  * Returns 0 on success and returns -1 and sets `errno` on failure.
diff --git a/libc/include/search.h b/libc/include/search.h
index 00deef1..2f43d91 100644
--- a/libc/include/search.h
+++ b/libc/include/search.h
@@ -64,23 +64,19 @@
 __BEGIN_DECLS
 
 /**
- * [insque(3)](http://man7.org/linux/man-pages/man3/insque.3.html) inserts
+ * [insque(3)](https://man7.org/linux/man-pages/man3/insque.3.html) inserts
  * an item in a queue (an intrusive doubly-linked list).
- *
- * Available since API level 21.
  */
-void insque(void* _Nonnull __element, void* _Nullable __previous) __INTRODUCED_IN(21);
+void insque(void* _Nonnull __element, void* _Nullable __previous);
 
 /**
- * [remque(3)](http://man7.org/linux/man-pages/man3/remque.3.html) removes
+ * [remque(3)](https://man7.org/linux/man-pages/man3/remque.3.html) removes
  * an item from a queue (an intrusive doubly-linked list).
- *
- * Available since API level 21.
  */
-void remque(void* _Nonnull __element) __INTRODUCED_IN(21);
+void remque(void* _Nonnull __element);
 
 /**
- * [hcreate(3)](http://man7.org/linux/man-pages/man3/hcreate.3.html)
+ * [hcreate(3)](https://man7.org/linux/man-pages/man3/hcreate.3.html)
  * initializes the global hash table, with space for at least `__n` elements.
  *
  * See hcreate_r() if you need more than one hash table.
@@ -89,10 +85,12 @@
  *
  * Available since API level 28.
  */
+
+#if __BIONIC_AVAILABILITY_GUARD(28)
 int hcreate(size_t __n) __INTRODUCED_IN(28);
 
 /**
- * [hdestroy(3)](http://man7.org/linux/man-pages/man3/hdestroy.3.html) destroys
+ * [hdestroy(3)](https://man7.org/linux/man-pages/man3/hdestroy.3.html) destroys
  * the global hash table.
  *
  * See hdestroy_r() if you need more than one hash table.
@@ -102,7 +100,7 @@
 void hdestroy(void) __INTRODUCED_IN(28);
 
 /**
- * [hsearch(3)](http://man7.org/linux/man-pages/man3/hsearch.3.html) finds or
+ * [hsearch(3)](https://man7.org/linux/man-pages/man3/hsearch.3.html) finds or
  * inserts `__entry` in the global hash table, based on `__action`.
  *
  * See hsearch_r() if you need more than one hash table.
@@ -113,21 +111,25 @@
  * Available since API level 28.
  */
 ENTRY* _Nullable hsearch(ENTRY __entry, ACTION __action) __INTRODUCED_IN(28);
+#endif /* __BIONIC_AVAILABILITY_GUARD(28) */
+
 
 #if defined(__USE_BSD) || defined(__USE_GNU)
 
 /**
- * [hcreate_r(3)](http://man7.org/linux/man-pages/man3/hcreate_r.3.html)
+ * [hcreate_r(3)](https://man7.org/linux/man-pages/man3/hcreate_r.3.html)
  * initializes a hash table `__table` with space for at least `__n` elements.
  *
  * Returns *non-zero* on success and returns 0 and sets `errno` on failure.
  *
  * Available since API level 28.
  */
+
+#if __BIONIC_AVAILABILITY_GUARD(28)
 int hcreate_r(size_t __n, struct hsearch_data* _Nonnull __table) __INTRODUCED_IN(28);
 
 /**
- * [hdestroy_r(3)](http://man7.org/linux/man-pages/man3/hdestroy_r.3.html) destroys
+ * [hdestroy_r(3)](https://man7.org/linux/man-pages/man3/hdestroy_r.3.html) destroys
  * the hash table `__table`.
  *
  * Available since API level 28.
@@ -135,7 +137,7 @@
 void hdestroy_r(struct hsearch_data* _Nonnull __table) __INTRODUCED_IN(28);
 
 /**
- * [hsearch_r(3)](http://man7.org/linux/man-pages/man3/hsearch_r.3.html) finds or
+ * [hsearch_r(3)](https://man7.org/linux/man-pages/man3/hsearch_r.3.html) finds or
  * inserts `__entry` in the hash table `__table`, based on `__action`.
  *
  * Returns *non-zero* on success and returns 0 and sets `errno` on failure.
@@ -144,24 +146,24 @@
  * Available since API level 28.
  */
 int hsearch_r(ENTRY __entry, ACTION __action, ENTRY* _Nullable * _Nonnull __result, struct hsearch_data* _Nonnull __table) __INTRODUCED_IN(28);
+#endif /* __BIONIC_AVAILABILITY_GUARD(28) */
+
 
 #endif
 
 /**
- * [lfind(3)](http://man7.org/linux/man-pages/man3/lfind.3.html) brute-force
+ * [lfind(3)](https://man7.org/linux/man-pages/man3/lfind.3.html) brute-force
  * searches the unsorted array `__array` (of `__count` items each of size `__size`)
  * for `__key`, using `__comparator`.
  *
  * See bsearch() if you have a sorted array.
  *
  * Returns a pointer to the matching element on success, or NULL on failure.
- *
- * Available since API level 21.
  */
-void* _Nullable lfind(const void* _Nonnull __key, const void* _Nonnull __array, size_t* _Nonnull __count, size_t __size, int (* _Nonnull __comparator)(const void* _Nonnull, const void* _Nonnull)) __INTRODUCED_IN(21);
+void* _Nullable lfind(const void* _Nonnull __key, const void* _Nonnull __array, size_t* _Nonnull __count, size_t __size, int (* _Nonnull __comparator)(const void* _Nonnull, const void* _Nonnull));
 
 /**
- * [lsearch(3)](http://man7.org/linux/man-pages/man3/lsearch.3.html) brute-force
+ * [lsearch(3)](https://man7.org/linux/man-pages/man3/lsearch.3.html) brute-force
  * searches the unsorted array `__array` (of `__count` items each of size `__size`)
  * for `__key`, using `__comparator`.
  *
@@ -170,13 +172,11 @@
  *
  * Returns a pointer to the matching element on success, or to the newly-added
  * element on failure.
- *
- * Available since API level 21.
  */
-void* _Nonnull lsearch(const void* _Nonnull __key, void* _Nonnull __array, size_t* _Nonnull __count, size_t __size, int (* _Nonnull __comparator)(const void* _Nonnull, const void* _Nonnull)) __INTRODUCED_IN(21);
+void* _Nonnull lsearch(const void* _Nonnull __key, void* _Nonnull __array, size_t* _Nonnull __count, size_t __size, int (* _Nonnull __comparator)(const void* _Nonnull, const void* _Nonnull));
 
 /**
- * [tdelete(3)](http://man7.org/linux/man-pages/man3/tdelete.3.html) searches
+ * [tdelete(3)](https://man7.org/linux/man-pages/man3/tdelete.3.html) searches
  * for and removes an element in the tree `*__root_ptr`. The search is performed
  * using `__comparator`.
  *
@@ -185,13 +185,13 @@
 void* _Nullable tdelete(const void* _Nonnull __key, void* _Nullable * _Nullable __root_ptr, int (* _Nonnull __comparator)(const void* _Nonnull, const void* _Nonnull));
 
 /**
- * [tdestroy(3)](http://man7.org/linux/man-pages/man3/tdestroy.3.html) destroys
+ * [tdestroy(3)](https://man7.org/linux/man-pages/man3/tdestroy.3.html) destroys
  * the hash table `__root` using `__free_fn` on each node.
  */
 void tdestroy(void* _Nullable __root, void (* _Nullable __free_fn)(void* _Nullable));
 
 /**
- * [tfind(3)](http://man7.org/linux/man-pages/man3/tfind.3.html) searches
+ * [tfind(3)](https://man7.org/linux/man-pages/man3/tfind.3.html) searches
  * for an element in the tree `*__root_ptr`. The search is performed using
  * `__comparator`.
  *
@@ -200,7 +200,7 @@
 void* _Nullable tfind(const void* _Nonnull __key, void* _Nullable const* _Nullable __root_ptr, int (* _Nonnull __comparator)(const void* _Nonnull, const void* _Nonnull));
 
 /**
- * [tsearch(3)](http://man7.org/linux/man-pages/man3/tsearch.3.html) searches
+ * [tsearch(3)](https://man7.org/linux/man-pages/man3/tsearch.3.html) searches
  * for an element in the tree `*__root_ptr`. The search is performed using
  * `__comparator`.
  *
@@ -211,9 +211,9 @@
 void* _Nullable tsearch(const void* _Nonnull __key, void* _Nullable * _Nullable __root_ptr, int (* _Nonnull __comparator)(const void* _Nonnull, const void* _Nonnull));
 
 /**
- * [twalk(3)](http://man7.org/linux/man-pages/man3/twalk.3.html) calls
+ * [twalk(3)](https://man7.org/linux/man-pages/man3/twalk.3.html) calls
  * `__visitor` on every node in the tree.
  */
-void twalk(const void* _Nullable __root, void (* _Nullable __visitor)(const void* _Nullable, VISIT, int)) __INTRODUCED_IN(21);
+void twalk(const void* _Nullable __root, void (* _Nullable __visitor)(const void* _Nullable, VISIT, int));
 
 __END_DECLS
diff --git a/libc/include/semaphore.h b/libc/include/semaphore.h
index 6ad9ea3..9c4702d 100644
--- a/libc/include/semaphore.h
+++ b/libc/include/semaphore.h
@@ -45,7 +45,11 @@
 
 #define SEM_FAILED __BIONIC_CAST(reinterpret_cast, sem_t*, 0)
 
+
+#if __BIONIC_AVAILABILITY_GUARD(30)
 int sem_clockwait(sem_t* _Nonnull __sem, clockid_t __clock, const struct timespec* _Nonnull __ts) __INTRODUCED_IN(30);
+#endif /* __BIONIC_AVAILABILITY_GUARD(30) */
+
 int sem_destroy(sem_t* _Nonnull __sem);
 int sem_getvalue(sem_t* _Nonnull __sem, int* _Nonnull __value);
 int sem_init(sem_t* _Nonnull __sem, int __shared, unsigned int __value);
@@ -59,7 +63,11 @@
  * Note that sem_clockwait() allows specifying an arbitrary clock and has superseded this
  * function.
  */
+
+#if __BIONIC_AVAILABILITY_GUARD(28)
 int sem_timedwait_monotonic_np(sem_t* _Nonnull __sem, const struct timespec* _Nonnull __ts) __INTRODUCED_IN(28);
+#endif /* __BIONIC_AVAILABILITY_GUARD(28) */
+
 int sem_trywait(sem_t* _Nonnull __sem);
 int sem_wait(sem_t* _Nonnull __sem);
 
diff --git a/libc/include/setjmp.h b/libc/include/setjmp.h
index 6d047ae..6c141cb 100644
--- a/libc/include/setjmp.h
+++ b/libc/include/setjmp.h
@@ -66,12 +66,14 @@
 /**
  * The size in words of a riscv64 jmp_buf. Room for callee-saved registers,
  * including floating point, stack pointer and program counter, various
- * internal implementation details, and leaving some free space.
+ * internal implementation details, and leaving lots of free space.
  *
- * Coincidentally matches OpenBSD, though they also save/restore the
- * floating point status register too.
+ * Deliberately very large given the uncertainty around the final form of
+ * hardware shadow stack, and the fact that x86-64 glibc needed to steal
+ * space from their enormous sigset_t (which we don't have) to be able to
+ * implement the CET shadow stack.
  */
-#define _JBLEN 32
+#define _JBLEN 64
 #elif defined(__x86_64__)
 /** The size in words of an x86-64 jmp_buf. Inherited from OpenBSD. */
 #define _JBLEN 11
@@ -109,7 +111,7 @@
 __noreturn void longjmp(jmp_buf __env, int __value);
 
 /**
- * [sigsetjmp(3)](http://man7.org/linux/man-pages/man3/sigsetjmp.3.html)
+ * [sigsetjmp(3)](https://man7.org/linux/man-pages/man3/sigsetjmp.3.html)
  * sets the target of a future siglongjmp() call, saving or not saving the
  * current signal mask based on the second argument.
  *
@@ -119,7 +121,7 @@
 int sigsetjmp(sigjmp_buf __env, int __save_signal_mask) __returns_twice;
 
 /**
- * [siglongjmp(3)](http://man7.org/linux/man-pages/man3/siglongjmp.3.html)
+ * [siglongjmp(3)](https://man7.org/linux/man-pages/man3/siglongjmp.3.html)
  * transfers control back to the site of the sigsetjmp() call that initialized
  * the given jump buffer, returning the given value.
  *
diff --git a/libc/include/signal.h b/libc/include/signal.h
index b9aeaab..38dcbde 100644
--- a/libc/include/signal.h
+++ b/libc/include/signal.h
@@ -51,8 +51,8 @@
 /* We take a few real-time signals for ourselves. May as well use the same names as glibc. */
 #define SIGRTMIN (__libc_current_sigrtmin())
 #define SIGRTMAX (__libc_current_sigrtmax())
-int __libc_current_sigrtmin(void) __INTRODUCED_IN(21);
-int __libc_current_sigrtmax(void) __INTRODUCED_IN(21);
+int __libc_current_sigrtmin(void);
+int __libc_current_sigrtmax(void);
 
 extern const char* _Nonnull const sys_siglist[_NSIG];
 extern const char* _Nonnull const sys_signame[_NSIG]; /* BSD compatibility. */
@@ -60,43 +60,87 @@
 #define si_timerid si_tid /* glibc compatibility. */
 
 int sigaction(int __signal, const struct sigaction* _Nullable __new_action, struct sigaction* _Nullable __old_action);
+
+#if __BIONIC_AVAILABILITY_GUARD(28)
 int sigaction64(int __signal, const struct sigaction64* _Nullable __new_action, struct sigaction64* _Nullable __old_action) __INTRODUCED_IN(28);
+#endif /* __BIONIC_AVAILABILITY_GUARD(28) */
+
 
 int siginterrupt(int __signal, int __flag);
 
-sighandler_t _Nonnull signal(int __signal, sighandler_t _Nullable __handler) __INTRODUCED_IN(21);
-int sigaddset(sigset_t* _Nonnull __set, int __signal) __INTRODUCED_IN(21);
+sighandler_t _Nonnull signal(int __signal, sighandler_t _Nullable __handler);
+int sigaddset(sigset_t* _Nonnull __set, int __signal);
+
+#if __BIONIC_AVAILABILITY_GUARD(28)
 int sigaddset64(sigset64_t* _Nonnull __set, int __signal) __INTRODUCED_IN(28);
-int sigdelset(sigset_t* _Nonnull __set, int __signal) __INTRODUCED_IN(21);
+#endif /* __BIONIC_AVAILABILITY_GUARD(28) */
+
+int sigdelset(sigset_t* _Nonnull __set, int __signal);
+
+#if __BIONIC_AVAILABILITY_GUARD(28)
 int sigdelset64(sigset64_t* _Nonnull __set, int __signal) __INTRODUCED_IN(28);
-int sigemptyset(sigset_t* _Nonnull __set) __INTRODUCED_IN(21);
+#endif /* __BIONIC_AVAILABILITY_GUARD(28) */
+
+int sigemptyset(sigset_t* _Nonnull __set);
+
+#if __BIONIC_AVAILABILITY_GUARD(28)
 int sigemptyset64(sigset64_t* _Nonnull __set) __INTRODUCED_IN(28);
-int sigfillset(sigset_t* _Nonnull __set) __INTRODUCED_IN(21);
+#endif /* __BIONIC_AVAILABILITY_GUARD(28) */
+
+int sigfillset(sigset_t* _Nonnull __set);
+
+#if __BIONIC_AVAILABILITY_GUARD(28)
 int sigfillset64(sigset64_t* _Nonnull __set) __INTRODUCED_IN(28);
-int sigismember(const sigset_t* _Nonnull __set, int __signal) __INTRODUCED_IN(21);
+#endif /* __BIONIC_AVAILABILITY_GUARD(28) */
+
+int sigismember(const sigset_t* _Nonnull __set, int __signal);
+
+#if __BIONIC_AVAILABILITY_GUARD(28)
 int sigismember64(const sigset64_t* _Nonnull __set, int __signal) __INTRODUCED_IN(28);
+#endif /* __BIONIC_AVAILABILITY_GUARD(28) */
+
 
 int sigpending(sigset_t* _Nonnull __set);
-int sigpending64(sigset64_t* _Nonnull __set) __INTRODUCED_IN(28);
-int sigprocmask(int __how, const sigset_t* _Nullable __new_set, sigset_t* _Nullable __old_set);
-int sigprocmask64(int __how, const sigset64_t* _Nullable __new_set, sigset64_t* _Nullable __old_set) __INTRODUCED_IN(28);
-int sigsuspend(const sigset_t* _Nonnull __mask);
-int sigsuspend64(const sigset64_t* _Nonnull __mask) __INTRODUCED_IN(28);
-int sigwait(const sigset_t* _Nonnull __set, int* _Nonnull __signal);
-int sigwait64(const sigset64_t* _Nonnull __set, int* _Nonnull __signal) __INTRODUCED_IN(28);
 
+#if __BIONIC_AVAILABILITY_GUARD(28)
+int sigpending64(sigset64_t* _Nonnull __set) __INTRODUCED_IN(28);
+#endif /* __BIONIC_AVAILABILITY_GUARD(28) */
+
+int sigprocmask(int __how, const sigset_t* _Nullable __new_set, sigset_t* _Nullable __old_set);
+
+#if __BIONIC_AVAILABILITY_GUARD(28)
+int sigprocmask64(int __how, const sigset64_t* _Nullable __new_set, sigset64_t* _Nullable __old_set) __INTRODUCED_IN(28);
+#endif /* __BIONIC_AVAILABILITY_GUARD(28) */
+
+int sigsuspend(const sigset_t* _Nonnull __mask);
+
+#if __BIONIC_AVAILABILITY_GUARD(28)
+int sigsuspend64(const sigset64_t* _Nonnull __mask) __INTRODUCED_IN(28);
+#endif /* __BIONIC_AVAILABILITY_GUARD(28) */
+
+int sigwait(const sigset_t* _Nonnull __set, int* _Nonnull __signal);
+
+#if __BIONIC_AVAILABILITY_GUARD(28)
+int sigwait64(const sigset64_t* _Nonnull __set, int* _Nonnull __signal) __INTRODUCED_IN(28);
+#endif /* __BIONIC_AVAILABILITY_GUARD(28) */
+
+
+
+#if __BIONIC_AVAILABILITY_GUARD(26)
 int sighold(int __signal)
-  __attribute__((deprecated("use sigprocmask() or pthread_sigmask() instead")))
+  __attribute__((__deprecated__("use sigprocmask() or pthread_sigmask() instead")))
   __INTRODUCED_IN(26);
 int sigignore(int __signal)
-  __attribute__((deprecated("use sigaction() instead"))) __INTRODUCED_IN(26);
+  __attribute__((__deprecated__("use sigaction() instead"))) __INTRODUCED_IN(26);
 int sigpause(int __signal)
-  __attribute__((deprecated("use sigsuspend() instead"))) __INTRODUCED_IN(26);
+  __attribute__((__deprecated__("use sigsuspend() instead"))) __INTRODUCED_IN(26);
 int sigrelse(int __signal)
-  __attribute__((deprecated("use sigprocmask() or pthread_sigmask() instead")))
+  __attribute__((__deprecated__("use sigprocmask() or pthread_sigmask() instead")))
   __INTRODUCED_IN(26);
 sighandler_t _Nonnull sigset(int __signal, sighandler_t _Nullable __handler)
-  __attribute__((deprecated("use sigaction() instead"))) __INTRODUCED_IN(26);
+  __attribute__((__deprecated__("use sigaction() instead"))) __INTRODUCED_IN(26);
+#endif /* __BIONIC_AVAILABILITY_GUARD(26) */
+
 
 int raise(int __signal);
 int kill(pid_t __pid, int __signal);
@@ -105,22 +149,78 @@
 
 int sigaltstack(const stack_t* _Nullable __new_signal_stack, stack_t*  _Nullable __old_signal_stack);
 
-void psiginfo(const siginfo_t* _Nonnull __info, const char* _Nullable __msg) __INTRODUCED_IN(17);
-void psignal(int __signal, const char* _Nullable __msg) __INTRODUCED_IN(17);
+void psiginfo(const siginfo_t* _Nonnull __info, const char* _Nullable __msg);
+void psignal(int __signal, const char* _Nullable __msg);
 
 int pthread_kill(pthread_t __pthread, int __signal);
 #if defined(__USE_GNU)
+
+#if __BIONIC_AVAILABILITY_GUARD(29)
 int pthread_sigqueue(pthread_t __pthread, int __signal, const union sigval __value) __INTRODUCED_IN(29);
+#endif /* __BIONIC_AVAILABILITY_GUARD(29) */
+
 #endif
 
 int pthread_sigmask(int __how, const sigset_t* _Nullable __new_set, sigset_t* _Nullable __old_set);
-int pthread_sigmask64(int __how, const sigset64_t* _Nullable __new_set, sigset64_t* _Nullable __old_set) __INTRODUCED_IN(28);
 
+#if __BIONIC_AVAILABILITY_GUARD(28)
+int pthread_sigmask64(int __how, const sigset64_t* _Nullable __new_set, sigset64_t* _Nullable __old_set) __INTRODUCED_IN(28);
+#endif /* __BIONIC_AVAILABILITY_GUARD(28) */
+
+
+
+#if __BIONIC_AVAILABILITY_GUARD(23)
 int sigqueue(pid_t __pid, int __signal, const union sigval __value) __INTRODUCED_IN(23);
 int sigtimedwait(const sigset_t* _Nonnull __set, siginfo_t* _Nullable __info, const struct timespec* _Nullable __timeout) __INTRODUCED_IN(23);
+#endif /* __BIONIC_AVAILABILITY_GUARD(23) */
+
+
+#if __BIONIC_AVAILABILITY_GUARD(28)
 int sigtimedwait64(const sigset64_t* _Nonnull __set, siginfo_t* _Nullable __info, const struct timespec* _Nullable __timeout) __INTRODUCED_IN(28);
+#endif /* __BIONIC_AVAILABILITY_GUARD(28) */
+
+
+#if __BIONIC_AVAILABILITY_GUARD(23)
 int sigwaitinfo(const sigset_t* _Nonnull __set, siginfo_t* _Nullable __info) __INTRODUCED_IN(23);
+#endif /* __BIONIC_AVAILABILITY_GUARD(23) */
+
+
+#if __BIONIC_AVAILABILITY_GUARD(28)
 int sigwaitinfo64(const sigset64_t* _Nonnull __set, siginfo_t* _Nullable __info) __INTRODUCED_IN(28);
+#endif /* __BIONIC_AVAILABILITY_GUARD(28) */
+
+
+/**
+ * Buffer size suitable for any call to sig2str().
+ */
+#define SIG2STR_MAX 32
+
+/**
+ * [sig2str(3)](https://man7.org/linux/man-pages/man3/sig2str.3.html)
+ * converts the integer corresponding to SIGSEGV (say) into a string
+ * like "SEGV" (not including the "SIG" used in the constants).
+ * SIG2STR_MAX is a safe size to use for the buffer.
+ *
+ * Returns 0 on success, and returns -1 _without_ setting errno otherwise.
+ *
+ * Available since API level 36.
+ */
+
+#if __BIONIC_AVAILABILITY_GUARD(36)
+int sig2str(int __signal, char* _Nonnull __buf) __INTRODUCED_IN(36);
+
+/**
+ * [str2sig(3)](https://man7.org/linux/man-pages/man3/str2sig.3.html)
+ * converts a string like "SEGV" (not including the "SIG" used in the constants)
+ * into the integer corresponding to SIGSEGV.
+ *
+ * Returns 0 on success, and returns -1 _without_ setting errno otherwise.
+ *
+ * Available since API level 36.
+ */
+int str2sig(const char* _Nonnull __name, int* _Nonnull __signal) __INTRODUCED_IN(36);
+#endif /* __BIONIC_AVAILABILITY_GUARD(36) */
+
 
 __END_DECLS
 
diff --git a/libc/include/spawn.h b/libc/include/spawn.h
index 6c34b98..b105754 100644
--- a/libc/include/spawn.h
+++ b/libc/include/spawn.h
@@ -46,16 +46,21 @@
 #define POSIX_SPAWN_USEVFORK 64
 #define POSIX_SPAWN_SETSID 128
 #endif
-// mark all fds (except stdin/out/err) as close-on-exec prior to executing registered file actions
+/**
+ * Used with posix_spawnattr_setflags() to mark all fds except
+ * stdin/stdout/stderr as O_CLOEXEC prior to executing registered file actions.
+ */
 #define POSIX_SPAWN_CLOEXEC_DEFAULT 256
 
 typedef struct __posix_spawnattr* posix_spawnattr_t;
 typedef struct __posix_spawn_file_actions* posix_spawn_file_actions_t;
 
-int posix_spawn(pid_t* _Nullable __pid, const char* _Nonnull __path, const posix_spawn_file_actions_t _Nullable * _Nullable __actions, const posix_spawnattr_t _Nullable * _Nullable __attr, char* const _Nonnull __argv[_Nonnull], char* const _Nullable __env[_Nullable]) __INTRODUCED_IN(28);
-int posix_spawnp(pid_t* _Nullable __pid, const char* _Nonnull __file, const posix_spawn_file_actions_t _Nullable * _Nullable __actions, const posix_spawnattr_t _Nullable * _Nullable __attr, char* const _Nonnull __argv[_Nonnull], char* const _Nullable __env[_Nullable]) __INTRODUCED_IN(28);
 
-int posix_spawnattr_init(posix_spawnattr_t _Nonnull * _Nonnull __attr) __INTRODUCED_IN(28);
+#if __BIONIC_AVAILABILITY_GUARD(28)
+int posix_spawn(pid_t* _Nullable __pid, const char* _Nonnull __path, const posix_spawn_file_actions_t _Nullable * _Nullable __actions, const posix_spawnattr_t _Nullable * _Nullable __attr, char* const _Nullable __argv[_Nullable], char* const _Nullable __env[_Nullable]) __INTRODUCED_IN(28);
+int posix_spawnp(pid_t* _Nullable __pid, const char* _Nonnull __file, const posix_spawn_file_actions_t _Nullable * _Nullable __actions, const posix_spawnattr_t _Nullable * _Nullable __attr, char* const _Nullable __argv[_Nullable], char* const _Nullable __env[_Nullable]) __INTRODUCED_IN(28);
+
+int posix_spawnattr_init(posix_spawnattr_t _Nullable * _Nonnull __attr) __INTRODUCED_IN(28);
 int posix_spawnattr_destroy(posix_spawnattr_t _Nonnull * _Nonnull __attr) __INTRODUCED_IN(28);
 
 int posix_spawnattr_setflags(posix_spawnattr_t _Nonnull * _Nonnull __attr, short __flags) __INTRODUCED_IN(28);
@@ -86,9 +91,15 @@
 int posix_spawn_file_actions_addopen(posix_spawn_file_actions_t _Nonnull * _Nonnull __actions, int __fd, const char* _Nonnull __path, int __flags, mode_t __mode) __INTRODUCED_IN(28);
 int posix_spawn_file_actions_addclose(posix_spawn_file_actions_t _Nonnull * _Nonnull __actions, int __fd) __INTRODUCED_IN(28);
 int posix_spawn_file_actions_adddup2(posix_spawn_file_actions_t _Nonnull * _Nonnull __actions, int __fd, int __new_fd) __INTRODUCED_IN(28);
+#endif /* __BIONIC_AVAILABILITY_GUARD(28) */
 
+
+
+#if __BIONIC_AVAILABILITY_GUARD(34)
 int posix_spawn_file_actions_addchdir_np(posix_spawn_file_actions_t _Nonnull * _Nonnull __actions, const char* _Nonnull __path) __INTRODUCED_IN(34);
 int posix_spawn_file_actions_addfchdir_np(posix_spawn_file_actions_t _Nonnull * _Nonnull __actions, int __fd) __INTRODUCED_IN(34);
+#endif /* __BIONIC_AVAILABILITY_GUARD(34) */
+
 
 __END_DECLS
 
diff --git a/libc/include/stdint.h b/libc/include/stdint.h
index 322a81c..772fe8b 100644
--- a/libc/include/stdint.h
+++ b/libc/include/stdint.h
@@ -29,9 +29,10 @@
 #ifndef _STDINT_H
 #define _STDINT_H
 
+#include <sys/cdefs.h>
+
 #include <bits/wchar_limits.h>
 #include <stddef.h>
-#include <sys/cdefs.h>
 
 typedef signed char __int8_t;
 typedef unsigned char __uint8_t;
diff --git a/libc/include/stdio.h b/libc/include/stdio.h
index e748faa..2c2dc01 100644
--- a/libc/include/stdio.h
+++ b/libc/include/stdio.h
@@ -69,7 +69,7 @@
 #define stderr stderr
 #else
 /* Before M the actual symbols for stdin and friends had different names. */
-extern FILE __sF[] __REMOVED_IN(23);
+extern FILE __sF[] __REMOVED_IN(23, "Use stdin/stdout/stderr");
 
 #define stdin (&__sF[0])
 #define stdout (&__sF[1])
@@ -105,10 +105,10 @@
 
 void clearerr(FILE* _Nonnull __fp);
 int fclose(FILE* _Nonnull __fp);
-int feof(FILE* _Nonnull __fp);
-int ferror(FILE* _Nonnull __fp);
+__nodiscard int feof(FILE* _Nonnull __fp);
+__nodiscard int ferror(FILE* _Nonnull __fp);
 int fflush(FILE* _Nullable __fp);
-int fgetc(FILE* _Nonnull __fp);
+__nodiscard int fgetc(FILE* _Nonnull __fp);
 char* _Nullable fgets(char* _Nonnull __buf, int __size, FILE* _Nonnull __fp);
 int fprintf(FILE* _Nonnull __fp , const char* _Nonnull __fmt, ...) __printflike(2, 3);
 int fputc(int __ch, FILE* _Nonnull __fp);
@@ -116,10 +116,10 @@
 size_t fread(void* _Nonnull __buf, size_t __size, size_t __count, FILE* _Nonnull __fp);
 int fscanf(FILE* _Nonnull __fp, const char* _Nonnull __fmt, ...) __scanflike(2, 3);
 size_t fwrite(const void* _Nonnull __buf, size_t __size, size_t __count, FILE* _Nonnull __fp);
-int getc(FILE* _Nonnull __fp);
-int getchar(void);
-ssize_t getdelim(char* _Nullable * _Nonnull __line_ptr, size_t* _Nonnull __line_length_ptr, int __delimiter, FILE* _Nonnull __fp) __INTRODUCED_IN(18);
-ssize_t getline(char* _Nullable * _Nonnull __line_ptr, size_t* _Nonnull __line_length_ptr, FILE* _Nonnull __fp) __INTRODUCED_IN(18);
+__nodiscard int getc(FILE* _Nonnull __fp);
+__nodiscard int getchar(void);
+ssize_t getdelim(char* _Nullable * _Nonnull __line_ptr, size_t* _Nonnull __line_length_ptr, int __delimiter, FILE* _Nonnull __fp);
+ssize_t getline(char* _Nullable * _Nonnull __line_ptr, size_t* _Nonnull __line_length_ptr, FILE* _Nonnull __fp);
 
 void perror(const char* _Nullable __msg);
 int printf(const char* _Nonnull __fmt, ...) __printflike(1, 2);
@@ -136,16 +136,16 @@
 int vfprintf(FILE* _Nonnull __fp, const char* _Nonnull __fmt, va_list __args) __printflike(2, 0);
 int vprintf(const char* _Nonnull __fp, va_list __args) __printflike(1, 0);
 
-int dprintf(int __fd, const char* _Nonnull __fmt, ...) __printflike(2, 3) __INTRODUCED_IN(21);
-int vdprintf(int __fd, const char* _Nonnull __fmt, va_list __args) __printflike(2, 0) __INTRODUCED_IN(21);
+int dprintf(int __fd, const char* _Nonnull __fmt, ...) __printflike(2, 3);
+int vdprintf(int __fd, const char* _Nonnull __fmt, va_list __args) __printflike(2, 0);
 
 #if (defined(__STDC_VERSION__) && __STDC_VERSION__ < 201112L) || \
     (defined(__cplusplus) && __cplusplus <= 201103L)
-char* _Nullable gets(char* _Nonnull __buf) __attribute__((deprecated("gets is unsafe, use fgets instead")));
+char* _Nullable gets(char* _Nonnull __buf) __attribute__((__deprecated__("gets is unsafe, use fgets instead")));
 #endif
-int sprintf(char* _Nonnull __s, const char* _Nonnull __fmt, ...)
+int sprintf(char* __BIONIC_COMPLICATED_NULLNESS __s, const char* _Nonnull __fmt, ...)
     __printflike(2, 3) __warnattr_strict("sprintf is often misused; please use snprintf");
-int vsprintf(char* _Nonnull __s, const char* _Nonnull __fmt, va_list __args)
+int vsprintf(char* __BIONIC_COMPLICATED_NULLNESS __s, const char* _Nonnull __fmt, va_list __args)
     __printflike(2, 0) __warnattr_strict("vsprintf is often misused; please use vsnprintf");
 char* _Nullable tmpnam(char* _Nullable __s)
     __warnattr("tmpnam is unsafe, use mkstemp or tmpfile instead");
@@ -154,7 +154,7 @@
     __warnattr("tempnam is unsafe, use mkstemp or tmpfile instead");
 
 /**
- * [rename(2)](http://man7.org/linux/man-pages/man2/rename.2.html) changes
+ * [rename(2)](https://man7.org/linux/man-pages/man2/rename.2.html) changes
  * the name or location of a file.
  *
  * Returns 0 on success, and returns -1 and sets `errno` on failure.
@@ -162,7 +162,7 @@
 int rename(const char* _Nonnull __old_path, const char* _Nonnull __new_path);
 
 /**
- * [renameat(2)](http://man7.org/linux/man-pages/man2/renameat.2.html) changes
+ * [renameat(2)](https://man7.org/linux/man-pages/man2/renameat.2.html) changes
  * the name or location of a file, interpreting relative paths using an fd.
  *
  * Returns 0 on success, and returns -1 and sets `errno` on failure.
@@ -172,108 +172,148 @@
 #if defined(__USE_GNU)
 
 /**
- * Flag for [renameat2(2)](http://man7.org/linux/man-pages/man2/renameat2.2.html)
+ * Flag for [renameat2(2)](https://man7.org/linux/man-pages/man2/renameat2.2.html)
  * to fail if the new path already exists.
  */
 #define RENAME_NOREPLACE (1<<0)
 
 /**
- * Flag for [renameat2(2)](http://man7.org/linux/man-pages/man2/renameat2.2.html)
+ * Flag for [renameat2(2)](https://man7.org/linux/man-pages/man2/renameat2.2.html)
  * to atomically exchange the two paths.
  */
 #define RENAME_EXCHANGE (1<<1)
 
 /**
- * Flag for [renameat2(2)](http://man7.org/linux/man-pages/man2/renameat2.2.html)
+ * Flag for [renameat2(2)](https://man7.org/linux/man-pages/man2/renameat2.2.html)
  * to create a union/overlay filesystem object.
  */
 #define RENAME_WHITEOUT (1<<2)
 
 /**
- * [renameat2(2)](http://man7.org/linux/man-pages/man2/renameat2.2.html) changes
+ * [renameat2(2)](https://man7.org/linux/man-pages/man2/renameat2.2.html) changes
  * the name or location of a file, interpreting relative paths using an fd,
  * with optional `RENAME_` flags.
  *
  * Returns 0 on success, and returns -1 and sets `errno` on failure.
  */
+
+#if __BIONIC_AVAILABILITY_GUARD(30)
 int renameat2(int __old_dir_fd, const char* _Nonnull __old_path, int __new_dir_fd, const char* _Nonnull __new_path, unsigned __flags) __INTRODUCED_IN(30);
+#endif /* __BIONIC_AVAILABILITY_GUARD(30) */
+
 
 #endif
 
 int fseek(FILE* _Nonnull __fp, long __offset, int __whence);
-long ftell(FILE* _Nonnull __fp);
+__nodiscard long ftell(FILE* _Nonnull __fp);
 
-/* See https://android.googlesource.com/platform/bionic/+/master/docs/32-bit-abi.md */
+/* See https://android.googlesource.com/platform/bionic/+/main/docs/32-bit-abi.md */
 #if defined(__USE_FILE_OFFSET64)
+
+#if __BIONIC_AVAILABILITY_GUARD(24)
 int fgetpos(FILE* _Nonnull __fp, fpos_t* _Nonnull __pos) __RENAME(fgetpos64) __INTRODUCED_IN(24);
 int fsetpos(FILE* _Nonnull __fp, const fpos_t* _Nonnull __pos) __RENAME(fsetpos64) __INTRODUCED_IN(24);
 int fseeko(FILE* _Nonnull __fp, off_t __offset, int __whence) __RENAME(fseeko64) __INTRODUCED_IN(24);
-off_t ftello(FILE* _Nonnull __fp) __RENAME(ftello64) __INTRODUCED_IN(24);
+__nodiscard off_t ftello(FILE* _Nonnull __fp) __RENAME(ftello64) __INTRODUCED_IN(24);
+#endif /* __BIONIC_AVAILABILITY_GUARD(24) */
+
 #  if defined(__USE_BSD)
 /* If __read_fn and __write_fn are both nullptr, it will cause EINVAL */
-FILE* _Nullable funopen(const void* _Nullable __cookie,
+
+#if __BIONIC_AVAILABILITY_GUARD(24)
+__nodiscard FILE* _Nullable funopen(const void* _Nullable __cookie,
               int (* __BIONIC_COMPLICATED_NULLNESS __read_fn)(void* _Nonnull, char* _Nonnull, int),
               int (* __BIONIC_COMPLICATED_NULLNESS __write_fn)(void* _Nonnull, const char* _Nonnull, int),
               fpos_t (* _Nullable __seek_fn)(void* _Nonnull, fpos_t, int),
               int (* _Nullable __close_fn)(void* _Nonnull)) __RENAME(funopen64) __INTRODUCED_IN(24);
+#endif /* __BIONIC_AVAILABILITY_GUARD(24) */
+
 #  endif
 #else
 int fgetpos(FILE* _Nonnull __fp, fpos_t* _Nonnull __pos);
 int fsetpos(FILE* _Nonnull __fp, const fpos_t* _Nonnull __pos);
 int fseeko(FILE* _Nonnull __fp, off_t __offset, int __whence);
-off_t ftello(FILE* _Nonnull __fp);
+__nodiscard off_t ftello(FILE* _Nonnull __fp);
 #  if defined(__USE_BSD)
 /* If __read_fn and __write_fn are both nullptr, it will cause EINVAL */
-FILE* _Nullable funopen(const void* _Nullable __cookie,
+__nodiscard FILE* _Nullable funopen(const void* _Nullable __cookie,
               int (* __BIONIC_COMPLICATED_NULLNESS __read_fn)(void* _Nonnull, char* _Nonnull, int),
               int (* __BIONIC_COMPLICATED_NULLNESS __write_fn)(void* _Nonnull, const char* _Nonnull, int),
               fpos_t (* _Nullable __seek_fn)(void* _Nonnull, fpos_t, int),
               int (* _Nullable __close_fn)(void* _Nonnull));
 #  endif
 #endif
+
+#if __BIONIC_AVAILABILITY_GUARD(24)
 int fgetpos64(FILE* _Nonnull __fp, fpos64_t* _Nonnull __pos) __INTRODUCED_IN(24);
 int fsetpos64(FILE* _Nonnull __fp, const fpos64_t* _Nonnull __pos) __INTRODUCED_IN(24);
 int fseeko64(FILE* _Nonnull __fp, off64_t __offset, int __whence) __INTRODUCED_IN(24);
-off64_t ftello64(FILE* _Nonnull __fp) __INTRODUCED_IN(24);
+__nodiscard off64_t ftello64(FILE* _Nonnull __fp) __INTRODUCED_IN(24);
+#endif /* __BIONIC_AVAILABILITY_GUARD(24) */
+
 #if defined(__USE_BSD)
 /* If __read_fn and __write_fn are both nullptr, it will cause EINVAL */
-FILE* _Nullable funopen64(const void* _Nullable __cookie,
+
+#if __BIONIC_AVAILABILITY_GUARD(24)
+__nodiscard FILE* _Nullable funopen64(const void* _Nullable __cookie,
                 int (* __BIONIC_COMPLICATED_NULLNESS __read_fn)(void* _Nonnull, char* _Nonnull, int),
                 int (* __BIONIC_COMPLICATED_NULLNESS __write_fn)(void* _Nonnull, const char* _Nonnull, int),
                 fpos64_t (* _Nullable __seek_fn)(void* _Nonnull, fpos64_t, int),
                 int (* _Nullable __close_fn)(void* _Nonnull)) __INTRODUCED_IN(24);
+#endif /* __BIONIC_AVAILABILITY_GUARD(24) */
+
 #endif
 
-FILE* _Nullable fopen(const char* _Nonnull __path, const char* _Nonnull __mode);
-FILE* _Nullable fopen64(const char* _Nonnull __path, const char* _Nonnull __mode) __INTRODUCED_IN(24);
-FILE* _Nullable freopen(const char* _Nullable __path, const char* _Nonnull __mode, FILE* _Nonnull __fp);
-FILE* _Nullable freopen64(const char* _Nullable __path, const char* _Nonnull __mode, FILE* _Nonnull __fp) __INTRODUCED_IN(24);
-FILE* _Nullable tmpfile(void);
-FILE* _Nullable tmpfile64(void) __INTRODUCED_IN(24);
+__nodiscard FILE* _Nullable fopen(const char* _Nonnull __path, const char* _Nonnull __mode);
 
-int snprintf(char* _Nullable __buf, size_t __size, const char* _Nonnull __fmt, ...) __printflike(3, 4);
+#if __BIONIC_AVAILABILITY_GUARD(24)
+__nodiscard FILE* _Nullable fopen64(const char* _Nonnull __path, const char* _Nonnull __mode) __INTRODUCED_IN(24);
+#endif /* __BIONIC_AVAILABILITY_GUARD(24) */
+
+FILE* _Nullable freopen(const char* _Nullable __path, const char* _Nonnull __mode, FILE* _Nonnull __fp);
+
+#if __BIONIC_AVAILABILITY_GUARD(24)
+FILE* _Nullable freopen64(const char* _Nullable __path, const char* _Nonnull __mode, FILE* _Nonnull __fp) __INTRODUCED_IN(24);
+#endif /* __BIONIC_AVAILABILITY_GUARD(24) */
+
+__nodiscard FILE* _Nullable tmpfile(void);
+
+#if __BIONIC_AVAILABILITY_GUARD(24)
+__nodiscard FILE* _Nullable tmpfile64(void) __INTRODUCED_IN(24);
+#endif /* __BIONIC_AVAILABILITY_GUARD(24) */
+
+
+int snprintf(char* __BIONIC_COMPLICATED_NULLNESS __buf, size_t __size, const char* _Nonnull __fmt, ...) __printflike(3, 4);
 int vfscanf(FILE* _Nonnull __fp, const char* _Nonnull __fmt, va_list __args) __scanflike(2, 0);
 int vscanf(const char* _Nonnull __fmt , va_list __args) __scanflike(1, 0);
-int vsnprintf(char* _Nullable __buf, size_t __size, const char* _Nonnull __fmt, va_list __args) __printflike(3, 0);
+int vsnprintf(char* __BIONIC_COMPLICATED_NULLNESS __buf, size_t __size, const char* _Nonnull __fmt, va_list __args) __printflike(3, 0);
 int vsscanf(const char* _Nonnull __s, const char* _Nonnull __fmt, va_list __args) __scanflike(2, 0);
 
 #define L_ctermid 1024 /* size for ctermid() */
-char* _Nonnull ctermid(char* _Nullable __buf) __INTRODUCED_IN(26);
 
-FILE* _Nullable fdopen(int __fd, const char* _Nonnull __mode);
-int fileno(FILE* _Nonnull __fp);
+#if __BIONIC_AVAILABILITY_GUARD(26)
+char* _Nonnull ctermid(char* _Nullable __buf) __INTRODUCED_IN(26);
+#endif /* __BIONIC_AVAILABILITY_GUARD(26) */
+
+
+__nodiscard FILE* _Nullable fdopen(int __fd, const char* _Nonnull __mode);
+__nodiscard int fileno(FILE* _Nonnull __fp);
 int pclose(FILE* _Nonnull __fp);
-FILE* _Nullable popen(const char* _Nonnull __command, const char* _Nonnull __mode);
+__nodiscard FILE* _Nullable popen(const char* _Nonnull __command, const char* _Nonnull __mode);
 void flockfile(FILE* _Nonnull  __fp);
 int ftrylockfile(FILE* _Nonnull __fp);
 void funlockfile(FILE* _Nonnull __fp);
-int getc_unlocked(FILE* _Nonnull __fp);
-int getchar_unlocked(void);
+__nodiscard int getc_unlocked(FILE* _Nonnull __fp);
+__nodiscard int getchar_unlocked(void);
 int putc_unlocked(int __ch, FILE* _Nonnull __fp);
 int putchar_unlocked(int __ch);
 
-FILE* _Nullable fmemopen(void* _Nullable __buf, size_t __size, const char* _Nonnull __mode) __INTRODUCED_IN(23);
-FILE* _Nullable open_memstream(char* _Nonnull * _Nonnull __ptr, size_t* _Nonnull __size_ptr) __INTRODUCED_IN(23);
+
+#if __BIONIC_AVAILABILITY_GUARD(23)
+__nodiscard FILE* _Nullable fmemopen(void* _Nullable __buf, size_t __size, const char* _Nonnull __mode) __INTRODUCED_IN(23);
+__nodiscard FILE* _Nullable open_memstream(char* _Nonnull * _Nonnull __ptr, size_t* _Nonnull __size_ptr) __INTRODUCED_IN(23);
+#endif /* __BIONIC_AVAILABILITY_GUARD(23) */
+
 
 #if defined(__USE_BSD) || defined(__BIONIC__) /* Historically bionic exposed these. */
 int  asprintf(char* _Nullable * _Nonnull __s_ptr, const char* _Nonnull __fmt, ...) __printflike(2, 3);
@@ -282,25 +322,41 @@
 void setbuffer(FILE* _Nonnull __fp, char* _Nullable __buf, int __size);
 int setlinebuf(FILE* _Nonnull __fp);
 int vasprintf(char* _Nullable * _Nonnull __s_ptr, const char* _Nonnull __fmt, va_list __args) __printflike(2, 0);
+
+#if __BIONIC_AVAILABILITY_GUARD(23)
 void clearerr_unlocked(FILE* _Nonnull __fp) __INTRODUCED_IN(23);
-int feof_unlocked(FILE* _Nonnull __fp) __INTRODUCED_IN(23);
-int ferror_unlocked(FILE* _Nonnull __fp) __INTRODUCED_IN(23);
-int fileno_unlocked(FILE* _Nonnull __fp) __INTRODUCED_IN(24);
+__nodiscard int feof_unlocked(FILE* _Nonnull __fp) __INTRODUCED_IN(23);
+__nodiscard int ferror_unlocked(FILE* _Nonnull __fp) __INTRODUCED_IN(23);
+#endif /* __BIONIC_AVAILABILITY_GUARD(23) */
+
+
+#if __BIONIC_AVAILABILITY_GUARD(24)
+__nodiscard int fileno_unlocked(FILE* _Nonnull __fp) __INTRODUCED_IN(24);
+#endif /* __BIONIC_AVAILABILITY_GUARD(24) */
+
 #define fropen(cookie, fn) funopen(cookie, fn, 0, 0, 0)
 #define fwopen(cookie, fn) funopen(cookie, 0, fn, 0, 0)
 #endif
 
 #if defined(__USE_BSD)
+
+#if __BIONIC_AVAILABILITY_GUARD(28)
 int fflush_unlocked(FILE* _Nullable __fp) __INTRODUCED_IN(28);
-int fgetc_unlocked(FILE* _Nonnull __fp) __INTRODUCED_IN(28);
+__nodiscard int fgetc_unlocked(FILE* _Nonnull __fp) __INTRODUCED_IN(28);
 int fputc_unlocked(int __ch, FILE* _Nonnull __fp) __INTRODUCED_IN(28);
 size_t fread_unlocked(void* _Nonnull __buf, size_t __size, size_t __count, FILE* _Nonnull __fp) __INTRODUCED_IN(28);
 size_t fwrite_unlocked(const void* _Nonnull __buf, size_t __size, size_t __count, FILE* _Nonnull __fp) __INTRODUCED_IN(28);
+#endif /* __BIONIC_AVAILABILITY_GUARD(28) */
+
 #endif
 
 #if defined(__USE_GNU)
+
+#if __BIONIC_AVAILABILITY_GUARD(28)
 int fputs_unlocked(const char* _Nonnull __s, FILE* _Nonnull __fp) __INTRODUCED_IN(28);
 char* _Nullable fgets_unlocked(char* _Nonnull __buf, int __size, FILE* _Nonnull __fp) __INTRODUCED_IN(28);
+#endif /* __BIONIC_AVAILABILITY_GUARD(28) */
+
 #endif
 
 #if defined(__BIONIC_INCLUDE_FORTIFY_HEADERS)
diff --git a/libc/include/stdio_ext.h b/libc/include/stdio_ext.h
index 8b106a6..9ff07da 100644
--- a/libc/include/stdio_ext.h
+++ b/libc/include/stdio_ext.h
@@ -39,68 +39,90 @@
 __BEGIN_DECLS
 
 /**
- * [__fbufsize(3)](http://man7.org/linux/man-pages/man3/__fbufsize.3.html) returns the size of
+ * [__fbufsize(3)](https://man7.org/linux/man-pages/man3/__fbufsize.3.html) returns the size of
  * the stream's buffer.
  *
  * Available since API level 23.
  */
+
+#if __BIONIC_AVAILABILITY_GUARD(23)
 size_t __fbufsize(FILE* _Nonnull __fp) __INTRODUCED_IN(23);
 
 /**
- * [__freadable(3)](http://man7.org/linux/man-pages/man3/__freadable.3.html) returns non-zero if
+ * [__freadable(3)](https://man7.org/linux/man-pages/man3/__freadable.3.html) returns non-zero if
  * the stream allows reading, 0 otherwise.
  *
  * Available since API level 23.
  */
 int __freadable(FILE* _Nonnull __fp) __INTRODUCED_IN(23);
+#endif /* __BIONIC_AVAILABILITY_GUARD(23) */
+
 
 /**
- * [__freading(3)](http://man7.org/linux/man-pages/man3/__freading.3.html) returns non-zero if
+ * [__freading(3)](https://man7.org/linux/man-pages/man3/__freading.3.html) returns non-zero if
  * the stream's last operation was a read, 0 otherwise.
  *
  * Available since API level 28.
  */
+
+#if __BIONIC_AVAILABILITY_GUARD(28)
 int __freading(FILE* _Nonnull __fp) __INTRODUCED_IN(28);
+#endif /* __BIONIC_AVAILABILITY_GUARD(28) */
+
 
 /**
- * [__fwritable(3)](http://man7.org/linux/man-pages/man3/__fwritable.3.html) returns non-zero if
+ * [__fwritable(3)](https://man7.org/linux/man-pages/man3/__fwritable.3.html) returns non-zero if
  * the stream allows writing, 0 otherwise.
  *
  * Available since API level 23.
  */
+
+#if __BIONIC_AVAILABILITY_GUARD(23)
 int __fwritable(FILE* _Nonnull __fp) __INTRODUCED_IN(23);
+#endif /* __BIONIC_AVAILABILITY_GUARD(23) */
+
 
 /**
- * [__fwriting(3)](http://man7.org/linux/man-pages/man3/__fwriting.3.html) returns non-zero if
+ * [__fwriting(3)](https://man7.org/linux/man-pages/man3/__fwriting.3.html) returns non-zero if
  * the stream's last operation was a write, 0 otherwise.
  *
  * Available since API level 28.
  */
+
+#if __BIONIC_AVAILABILITY_GUARD(28)
 int __fwriting(FILE* _Nonnull __fp) __INTRODUCED_IN(28);
+#endif /* __BIONIC_AVAILABILITY_GUARD(28) */
+
 
 /**
- * [__flbf(3)](http://man7.org/linux/man-pages/man3/__flbf.3.html) returns non-zero if
+ * [__flbf(3)](https://man7.org/linux/man-pages/man3/__flbf.3.html) returns non-zero if
  * the stream is line-buffered, 0 otherwise.
  *
  * Available since API level 23.
  */
+
+#if __BIONIC_AVAILABILITY_GUARD(23)
 int __flbf(FILE* _Nonnull __fp) __INTRODUCED_IN(23);
+#endif /* __BIONIC_AVAILABILITY_GUARD(23) */
+
 
 /**
- * [__fpurge(3)](http://man7.org/linux/man-pages/man3/__fpurge.3.html) discards the contents of
+ * [__fpurge(3)](https://man7.org/linux/man-pages/man3/__fpurge.3.html) discards the contents of
  * the stream's buffer.
- *
- * Available since API level 23.
  */
-void __fpurge(FILE* _Nonnull __fp) __INTRODUCED_IN(23);
+void __fpurge(FILE* _Nonnull __fp) __RENAME(fpurge);
 
 /**
- * [__fpending(3)](http://man7.org/linux/man-pages/man3/__fpending.3.html) returns the number of
+ * [__fpending(3)](https://man7.org/linux/man-pages/man3/__fpending.3.html) returns the number of
  * bytes in the output buffer. See __freadahead() for the input buffer.
  *
  * Available since API level 23.
  */
+
+#if __BIONIC_AVAILABILITY_GUARD(23)
 size_t __fpending(FILE* _Nonnull __fp) __INTRODUCED_IN(23);
+#endif /* __BIONIC_AVAILABILITY_GUARD(23) */
+
 
 /**
  * __freadahead(3) returns the number of bytes in the input buffer.
@@ -108,15 +130,23 @@
  *
  * Available since API level 34.
  */
+
+#if __BIONIC_AVAILABILITY_GUARD(34)
 size_t __freadahead(FILE* _Nonnull __fp) __INTRODUCED_IN(34);
+#endif /* __BIONIC_AVAILABILITY_GUARD(34) */
+
 
 /**
- * [_flushlbf(3)](http://man7.org/linux/man-pages/man3/_flushlbf.3.html) flushes all
+ * [_flushlbf(3)](https://man7.org/linux/man-pages/man3/_flushlbf.3.html) flushes all
  * line-buffered streams.
  *
  * Available since API level 23.
  */
+
+#if __BIONIC_AVAILABILITY_GUARD(23)
 void _flushlbf(void) __INTRODUCED_IN(23);
+#endif /* __BIONIC_AVAILABILITY_GUARD(23) */
+
 
 /**
  * `__fseterr` sets the
@@ -124,7 +154,11 @@
  *
  * Available since API level 28.
  */
+
+#if __BIONIC_AVAILABILITY_GUARD(28)
 void __fseterr(FILE* _Nonnull __fp) __INTRODUCED_IN(28);
+#endif /* __BIONIC_AVAILABILITY_GUARD(28) */
+
 
 /** __fsetlocking() constant to query locking type. */
 #define FSETLOCKING_QUERY 0
@@ -134,13 +168,17 @@
 #define FSETLOCKING_BYCALLER 2
 
 /**
- * [__fsetlocking(3)](http://man7.org/linux/man-pages/man3/__fsetlocking.3.html) sets the
+ * [__fsetlocking(3)](https://man7.org/linux/man-pages/man3/__fsetlocking.3.html) sets the
  * stream's locking mode to one of the `FSETLOCKING_` types.
  *
  * Returns the current locking style, `FSETLOCKING_INTERNAL` or `FSETLOCKING_BYCALLER`.
  *
  * Available since API level 23.
  */
+
+#if __BIONIC_AVAILABILITY_GUARD(23)
 int __fsetlocking(FILE* _Nonnull __fp, int __type) __INTRODUCED_IN(23);
+#endif /* __BIONIC_AVAILABILITY_GUARD(23) */
+
 
 __END_DECLS
diff --git a/libc/include/stdlib.h b/libc/include/stdlib.h
index 2bcb870..7081d7c 100644
--- a/libc/include/stdlib.h
+++ b/libc/include/stdlib.h
@@ -29,11 +29,12 @@
 #ifndef _STDLIB_H
 #define _STDLIB_H
 
+#include <sys/cdefs.h>
+
 #include <alloca.h>
 #include <bits/wait.h>
 #include <malloc.h>
 #include <stddef.h>
-#include <sys/cdefs.h>
 #include <xlocale.h>
 
 __BEGIN_DECLS
@@ -43,12 +44,12 @@
 
 __noreturn void abort(void) __attribute__((__nomerge__));
 __noreturn void exit(int __status);
-__noreturn void _Exit(int __status) __INTRODUCED_IN(21);
+__noreturn void _Exit(int __status);
 
 int atexit(void (* _Nonnull __fn)(void));
 
-int at_quick_exit(void (* _Nonnull __fn)(void)) __INTRODUCED_IN(21);
-void quick_exit(int __status) __noreturn __INTRODUCED_IN(21);
+int at_quick_exit(void (* _Nonnull __fn)(void));
+void quick_exit(int __status) __noreturn;
 
 char* _Nullable getenv(const char* _Nonnull __name);
 int putenv(char* _Nonnull __assignment);
@@ -57,41 +58,88 @@
 int clearenv(void);
 
 char* _Nullable mkdtemp(char* _Nonnull __template);
-char* _Nullable mktemp(char* _Nonnull __template) __attribute__((deprecated("mktemp is unsafe, use mkstemp or tmpfile instead")));
+char* _Nullable mktemp(char* _Nonnull __template) __attribute__((__deprecated__("mktemp is unsafe, use mkstemp or tmpfile instead")));
 
+
+#if __BIONIC_AVAILABILITY_GUARD(23)
 int mkostemp64(char* _Nonnull __template, int __flags) __INTRODUCED_IN(23);
 int mkostemp(char* _Nonnull __template, int __flags) __INTRODUCED_IN(23);
 int mkostemps64(char* _Nonnull __template, int __suffix_length, int __flags) __INTRODUCED_IN(23);
 int mkostemps(char* _Nonnull __template, int __suffix_length, int __flags) __INTRODUCED_IN(23);
-int mkstemp64(char* _Nonnull __template) __INTRODUCED_IN(21);
+#endif /* __BIONIC_AVAILABILITY_GUARD(23) */
+
+int mkstemp64(char* _Nonnull __template);
 int mkstemp(char* _Nonnull __template);
+
+#if __BIONIC_AVAILABILITY_GUARD(23)
 int mkstemps64(char* _Nonnull __template, int __flags) __INTRODUCED_IN(23);
+#endif /* __BIONIC_AVAILABILITY_GUARD(23) */
+
 int mkstemps(char* _Nonnull __template, int __flags);
 
-long strtol(const char* _Nonnull __s, char* _Nullable * _Nullable __end_ptr, int __base);
-long long strtoll(const char* _Nonnull __s, char* _Nullable * _Nullable __end_ptr, int __base);
-unsigned long strtoul(const char* _Nonnull __s, char* _Nullable * _Nullable __end_ptr, int __base);
-unsigned long long strtoull(const char* _Nonnull __s, char* _Nullable * _Nullable __end_ptr, int __base);
+int posix_memalign(void* _Nullable * _Nullable __memptr, size_t __alignment, size_t __size);
 
-int posix_memalign(void* _Nullable * _Nullable __memptr, size_t __alignment, size_t __size) __INTRODUCED_IN(17);
+/**
+ * [aligned_alloc(3)](https://man7.org/linux/man-pages/man3/aligned_alloc.3.html)
+ * allocates the given number of bytes with the given alignment.
+ *
+ * Returns a pointer to the allocated memory on success and returns a null
+ * pointer and sets `errno` on failure.
+ *
+ * Available since API level 28.
+ */
 
-void* _Nullable aligned_alloc(size_t __alignment, size_t __size) __INTRODUCED_IN(28);
+#if __BIONIC_AVAILABILITY_GUARD(28)
+__nodiscard void* _Nullable aligned_alloc(size_t __alignment, size_t __size) __INTRODUCED_IN(28);
+#endif /* __BIONIC_AVAILABILITY_GUARD(28) */
 
-double strtod(const char* _Nonnull __s, char* _Nullable * _Nullable __end_ptr);
-long double strtold(const char* _Nonnull __s, char* _Nullable * _Nullable __end_ptr) __RENAME_LDBL(strtod, 3, 21);
 
-unsigned long strtoul_l(const char* _Nonnull __s, char* _Nullable * _Nullable __end_ptr, int __base, locale_t _Nonnull __l) __INTRODUCED_IN(26);
+__nodiscard char* _Nullable realpath(const char* _Nonnull __path, char* _Nullable __resolved);
 
-int atoi(const char* _Nonnull __s) __attribute_pure__;
-long atol(const char* _Nonnull __s) __attribute_pure__;
-long long atoll(const char* _Nonnull __s) __attribute_pure__;
-
-__wur char* _Nullable realpath(const char* _Nonnull __path, char* _Nullable __resolved);
+/**
+ * [system(3)](https://man7.org/linux/man-pages/man3/system.3.html) executes
+ * the given command in a new shell process.
+ *
+ * On Android, the special case of `system(NULL)` always returns 1,
+ * as specified by POSIX. Passing `NULL` to determine whether or
+ * not a shell is available is not portable. Callers should just try
+ * the command they actually want to run, since there are many reasons
+ * why it might fail, both temporarily (for lack of resources, say)
+ * or permanently (for lack of permission, say).
+ *
+ * Returns -1 and sets errno if process creation fails; returns a
+ * [waitpid(2)](https://man7.org/linux/man-pages/man2/waitpid.2.html)
+ * status otherwise.
+ */
 int system(const char* _Nonnull __command);
 
-void* _Nullable bsearch(const void* _Nonnull __key, const void* _Nullable __base, size_t __nmemb, size_t __size, int (* _Nonnull __comparator)(const void* _Nonnull __lhs, const void* _Nonnull __rhs));
+/**
+ * [bsearch(3)](https://man7.org/linux/man-pages/man3/bsearch.3.html) searches
+ * a sorted array.
+ *
+ * Returns a pointer to a matching item on success,
+ * or NULL if no matching item is found.
+ */
+__nodiscard void* _Nullable bsearch(const void* _Nonnull __key, const void* _Nullable __base, size_t __nmemb, size_t __size, int (* _Nonnull __comparator)(const void* _Nonnull __lhs, const void* _Nonnull __rhs));
 
-void qsort(void* _Nullable __base, size_t __nmemb, size_t __size, int (* _Nonnull __comparator)(const void* _Nullable __lhs, const void* _Nullable __rhs));
+/**
+ * [qsort(3)](https://man7.org/linux/man-pages/man3/qsort.3.html) sorts an array
+ * of n elements each of the given size, using the given comparator.
+ */
+void qsort(void* _Nullable __array, size_t __n, size_t __size, int (* _Nonnull __comparator)(const void* _Nullable __lhs, const void* _Nullable __rhs));
+
+/**
+ * [qsort_r(3)](https://man7.org/linux/man-pages/man3/qsort_r.3.html) sorts an
+ * array of n elements each of the given size, using the given comparator,
+ * and passing the given context argument to the comparator.
+ *
+ * Available since API level 36.
+ */
+
+#if __BIONIC_AVAILABILITY_GUARD(36)
+void qsort_r(void* _Nullable __array, size_t __n, size_t __size, int (* _Nonnull __comparator)(const void* _Nullable __lhs, const void* _Nullable __rhs, void* _Nullable __context), void* _Nullable __context) __INTRODUCED_IN(36);
+#endif /* __BIONIC_AVAILABILITY_GUARD(36) */
+
 
 uint32_t arc4random(void);
 uint32_t arc4random_uniform(uint32_t __upper_bound);
@@ -99,28 +147,36 @@
 
 #define RAND_MAX 0x7fffffff
 
-int rand_r(unsigned int* _Nonnull __seed_ptr) __INTRODUCED_IN(21);
+int rand_r(unsigned int* _Nonnull __seed_ptr);
 
 double drand48(void);
 double erand48(unsigned short __xsubi[_Nonnull 3]);
 long jrand48(unsigned short __xsubi[_Nonnull 3]);
+
+#if __BIONIC_AVAILABILITY_GUARD(23)
 void lcong48(unsigned short __param[_Nonnull 7]) __INTRODUCED_IN(23);
+#endif /* __BIONIC_AVAILABILITY_GUARD(23) */
+
 long lrand48(void);
 long mrand48(void);
 long nrand48(unsigned short __xsubi[_Nonnull 3]);
 unsigned short* _Nonnull seed48(unsigned short __seed16v[_Nonnull 3]);
 void srand48(long __seed);
 
-char* _Nullable initstate(unsigned int __seed, char* _Nonnull __state, size_t __n) __INTRODUCED_IN(21);
-char* _Nullable setstate(char* _Nonnull __state) __INTRODUCED_IN(21);
+char* _Nullable initstate(unsigned int __seed, char* _Nonnull __state, size_t __n);
+char* _Nullable setstate(char* _Nonnull __state);
 
 int getpt(void);
-int posix_openpt(int __flags) __INTRODUCED_IN(21);
+int posix_openpt(int __flags);
 char* _Nullable ptsname(int __fd);
 int ptsname_r(int __fd, char* _Nonnull __buf, size_t __n);
 int unlockpt(int __fd);
 
+
+#if __BIONIC_AVAILABILITY_GUARD(26)
 int getsubopt(char* _Nonnull * _Nonnull __option, char* _Nonnull const* _Nonnull __tokens, char* _Nullable * _Nonnull __value_ptr) __INTRODUCED_IN(26);
+#endif /* __BIONIC_AVAILABILITY_GUARD(26) */
+
 
 typedef struct {
   int quot;
@@ -144,52 +200,172 @@
 lldiv_t lldiv(long long __numerator, long long __denominator) __attribute_const__;
 
 /**
- * [getloadavg(3)](http://man7.org/linux/man-pages/man3/getloadavg.3.html) queries the
+ * [getloadavg(3)](https://man7.org/linux/man-pages/man3/getloadavg.3.html) queries the
  * number of runnable processes averaged over time. The Linux kernel supports averages
  * over the last 1, 5, and 15 minutes.
  *
  * Returns the number of samples written to `__averages` (at most 3), and returns -1 on failure.
  */
+
+#if __BIONIC_AVAILABILITY_GUARD(29)
 int getloadavg(double __averages[_Nonnull], int __n) __INTRODUCED_IN(29);
+#endif /* __BIONIC_AVAILABILITY_GUARD(29) */
+
 
 /* BSD compatibility. */
-const char* _Nullable getprogname(void) __INTRODUCED_IN(21);
-void setprogname(const char* _Nonnull __name) __INTRODUCED_IN(21);
+const char* _Nullable getprogname(void);
+void setprogname(const char* _Nonnull __name);
 
-int mblen(const char* _Nullable __s, size_t __n) __INTRODUCED_IN_NO_GUARD_FOR_NDK(26);
-size_t mbstowcs(wchar_t* _Nullable __dst, const char* _Nullable __src, size_t __n) __INTRODUCED_IN_NO_GUARD_FOR_NDK(21);
-int mbtowc(wchar_t* _Nullable __wc_ptr, const char*  _Nullable __s, size_t __n) __INTRODUCED_IN_NO_GUARD_FOR_NDK(21);
-int wctomb(char* _Nullable __dst, wchar_t __wc) __INTRODUCED_IN_NO_GUARD_FOR_NDK(21);
 
-size_t wcstombs(char* _Nullable __dst, const wchar_t* _Nullable __src, size_t __n) __INTRODUCED_IN_NO_GUARD_FOR_NDK(21);
+#if __BIONIC_AVAILABILITY_GUARD(26)
+int mblen(const char* _Nullable __s, size_t __n) __INTRODUCED_IN(26);
+#endif /* __BIONIC_AVAILABILITY_GUARD(26) */
 
-size_t __ctype_get_mb_cur_max(void) __INTRODUCED_IN(21);
+size_t mbstowcs(wchar_t* _Nullable __dst, const char* _Nullable __src, size_t __n);
+int mbtowc(wchar_t* _Nullable __wc_ptr, const char*  _Nullable __s, size_t __n);
+int wctomb(char* _Nullable __dst, wchar_t __wc);
+
+size_t wcstombs(char* _Nullable __dst, const wchar_t* _Nullable __src, size_t __n);
+
+size_t __ctype_get_mb_cur_max(void);
 #define MB_CUR_MAX __ctype_get_mb_cur_max()
 
 #if defined(__BIONIC_INCLUDE_FORTIFY_HEADERS)
 #include <bits/fortify/stdlib.h>
 #endif
 
-int abs(int __x) __attribute_const__ __INTRODUCED_IN(19);
-long labs(long __x) __attribute_const__ __INTRODUCED_IN(19);
-long long llabs(long long __x) __attribute_const__ __INTRODUCED_IN(19);
+int abs(int __x) __attribute_const__;
+long labs(long __x) __attribute_const__;
+long long llabs(long long __x) __attribute_const__;
 
-float strtof(const char* _Nonnull __s, char* _Nullable * _Nullable __end_ptr) __INTRODUCED_IN(21);
-double atof(const char* _Nonnull __s) __attribute_pure__ __INTRODUCED_IN(21);
-int rand(void) __INTRODUCED_IN(21);
-void srand(unsigned int __seed) __INTRODUCED_IN(21);
-long random(void) __INTRODUCED_IN(21);
-void srandom(unsigned int __seed) __INTRODUCED_IN(21);
-int grantpt(int __fd) __INTRODUCED_IN(21);
+int rand(void);
+void srand(unsigned int __seed);
+long random(void);
+void srandom(unsigned int __seed);
+int grantpt(int __fd);
 
-long long strtoll_l(const char* _Nonnull __s, char* _Nullable * _Nullable __end_ptr, int __base, locale_t _Nonnull __l) __INTRODUCED_IN(21);
-unsigned long long strtoull_l(const char* _Nonnull __s, char* _Nullable * _Nullable __end_ptr, int __base, locale_t _Nonnull __l) __INTRODUCED_IN(21);
-long double strtold_l(const char* _Nonnull __s, char* _Nullable * _Nullable __end_ptr, locale_t _Nonnull __l) __INTRODUCED_IN(21);
+/**
+ * [atof(3)](https://man7.org/linux/man-pages/man3/atof.3.html) converts a
+ * string to a double.
+ *
+ * Returns the double; use strtof() or strtod() if you need to detect errors.
+ */
+double atof(const char* _Nonnull __s) __attribute_pure__;
+
+/**
+ * [atoi(3)](https://man7.org/linux/man-pages/man3/atoi.3.html) converts a
+ * string to an int.
+ *
+ * Returns the int or 0 on error; use strtol() if you need to detect errors.
+ */
+int atoi(const char* _Nonnull __s) __attribute_pure__;
+
+/**
+ * [atol(3)](https://man7.org/linux/man-pages/man3/atol.3.html) converts a
+ * string to a long.
+ *
+ * Returns the long or 0 on error; use strtol() if you need to detect errors.
+ */
+long atol(const char* _Nonnull __s) __attribute_pure__;
+
+/**
+ * [atoll(3)](https://man7.org/linux/man-pages/man3/atoll.3.html) converts a
+ * string to a long long.
+ *
+ * Returns the long long or 0 on error; use strtol() if you need to detect errors.
+ */
+long long atoll(const char* _Nonnull __s) __attribute_pure__;
+
+/**
+ * [strtol(3)](https://man7.org/linux/man-pages/man3/strtol.3.html) converts a
+ * string to a long.
+ *
+ * Returns the long.
+ * `__end_ptr` is set to the last character in `__s` that was converted.
+ * errno is set to ERANGE if the result overflowed or underflowed.
+ */
+long strtol(const char* _Nonnull __s, char* _Nullable * _Nullable __end_ptr, int __base);
+
+/** Equivalent to strtol() on Android. */
+long strtol_l(const char* _Nonnull __s, char* _Nullable * _Nullable __end_ptr, int, locale_t _Nonnull __l) __RENAME(strtol);
+
+/**
+ * [strtoll(3)](https://man7.org/linux/man-pages/man3/strtoll.3.html) converts a
+ * string to a long long.
+ *
+ * Returns the long long.
+ * `__end_ptr` is set to the last character in `__s` that was converted.
+ * errno is set to ERANGE if the result overflowed or underflowed.
+ */
+long long strtoll(const char* _Nonnull __s, char* _Nullable * _Nullable __end_ptr, int __base);
+
+/** Equivalent to strtoll() on Android. */
+long long strtoll_l(const char* _Nonnull __s, char* _Nullable * _Nullable __end_ptr, int __base, locale_t _Nonnull __l);
+
+/**
+ * [strtoul(3)](https://man7.org/linux/man-pages/man3/strtoul.3.html) converts a
+ * string to an unsigned long.
+ *
+ * Returns the unsigned long.
+ * `__end_ptr` is set to the last character in `__s` that was converted.
+ * errno is set to ERANGE if the result overflowed or underflowed.
+ */
+unsigned long strtoul(const char* _Nonnull __s, char* _Nullable * _Nullable __end_ptr, int __base);
+
+/** Equivalent to strtoul() on Android. */
+unsigned long strtoul_l(const char* _Nonnull __s, char* _Nullable * _Nullable __end_ptr, int __base, locale_t _Nonnull __l) __RENAME(strtoul);
+
+/**
+ * [strtoull(3)](https://man7.org/linux/man-pages/man3/strtoull.3.html) converts a
+ * string to an unsigned long long.
+ *
+ * Returns the unsigned long long.
+ * `__end_ptr` is set to the last character in `__s` that was converted.
+ * errno is set to ERANGE if the result overflowed or underflowed.
+ */
+unsigned long long strtoull(const char* _Nonnull __s, char* _Nullable * _Nullable __end_ptr, int __base);
+
+/** Equivalent to strtoull() on Android. */
+unsigned long long strtoull_l(const char* _Nonnull __s, char* _Nullable * _Nullable __end_ptr, int __base, locale_t _Nonnull __l);
+
+/**
+ * [strtof(3)](https://man7.org/linux/man-pages/man3/strtof.3.html) converts a
+ * string to a float.
+ *
+ * Returns the float.
+ * `__end_ptr` is set to the last character in `__s` that was converted.
+ * errno is set to ERANGE if the result overflowed or underflowed.
+ */
+float strtof(const char* _Nonnull __s, char* _Nullable * _Nullable __end_ptr);
+
+/**
+ * [strtod(3)](https://man7.org/linux/man-pages/man3/strtod.3.html) converts a
+ * string to a double.
+ *
+ * Returns the double.
+ * `__end_ptr` is set to the last character in `__s` that was converted.
+ * errno is set to ERANGE if the result overflowed or underflowed.
+ */
+double strtod(const char* _Nonnull __s, char* _Nullable * _Nullable __end_ptr);
+
+/**
+ * [strtold(3)](https://man7.org/linux/man-pages/man3/strtold.3.html) converts a
+ * string to a long double.
+ *
+ * Returns the long double.
+ * `__end_ptr` is set to the last character in `__s` that was converted.
+ * errno is set to ERANGE if the result overflowed or underflowed.
+ */
+long double strtold(const char* _Nonnull __s, char* _Nullable * _Nullable __end_ptr);
+
+/** Equivalent to strtold() on Android. */
+long double strtold_l(const char* _Nonnull __s, char* _Nullable * _Nullable __end_ptr, locale_t _Nonnull __l);
 
 #if __ANDROID_API__ >= 26
+/** Equivalent to strtod() on Android. */
 double strtod_l(const char* _Nonnull __s, char* _Nullable * _Nullable __end_ptr, locale_t _Nonnull __l) __INTRODUCED_IN(26);
+/** Equivalent to strtof() on Android. */
 float strtof_l(const char* _Nonnull __s, char* _Nullable * _Nullable __end_ptr, locale_t _Nonnull __l) __INTRODUCED_IN(26);
-long strtol_l(const char* _Nonnull __s, char* _Nullable * _Nullable __end_ptr, int, locale_t _Nonnull __l) __INTRODUCED_IN(26);
 #else
 // Implemented as static inlines before 26.
 #endif
diff --git a/libc/include/string.h b/libc/include/string.h
index d6b2967..79aac91 100644
--- a/libc/include/string.h
+++ b/libc/include/string.h
@@ -37,7 +37,7 @@
 
 __BEGIN_DECLS
 
-#if defined(__USE_BSD)
+#if defined(__USE_BSD) || defined(__USE_GNU)
 #include <strings.h>
 #endif
 
@@ -52,12 +52,16 @@
 int memcmp(const void* _Nonnull __lhs, const void* _Nonnull __rhs, size_t __n) __attribute_pure__;
 void* _Nonnull memcpy(void* _Nonnull, const void* _Nonnull, size_t);
 #if defined(__USE_GNU)
+
+#if __BIONIC_AVAILABILITY_GUARD(23)
 void* _Nonnull mempcpy(void* _Nonnull __dst, const void* _Nonnull __src, size_t __n) __INTRODUCED_IN(23);
+#endif /* __BIONIC_AVAILABILITY_GUARD(23) */
+
 #endif
 void* _Nonnull memmove(void* _Nonnull __dst, const void* _Nonnull __src, size_t __n);
 
 /**
- * [memset(3)](http://man7.org/linux/man-pages/man3/memset.3.html) writes the
+ * [memset(3)](https://man7.org/linux/man-pages/man3/memset.3.html) writes the
  * bottom 8 bits of the given int to the next `n` bytes of `dst`.
  *
  * Returns `dst`.
@@ -65,35 +69,47 @@
 void* _Nonnull memset(void* _Nonnull __dst, int __ch, size_t __n);
 
 /**
- * [memset_explicit(3)](http://man7.org/linux/man-pages/man3/memset_explicit.3.html)
+ * [memset_explicit(3)](https://man7.org/linux/man-pages/man3/memset_explicit.3.html)
  * writes the bottom 8 bits of the given int to the next `n` bytes of `dst`,
  * but won't be optimized out by the compiler.
  *
  * Returns `dst`.
  */
+
+#if __BIONIC_AVAILABILITY_GUARD(34)
 void* _Nonnull memset_explicit(void* _Nonnull __dst, int __ch, size_t __n) __INTRODUCED_IN(34);
+#endif /* __BIONIC_AVAILABILITY_GUARD(34) */
+
 
 void* _Nullable memmem(const void* _Nonnull __haystack, size_t __haystack_size, const void* _Nonnull __needle, size_t __needle_size) __attribute_pure__;
 
 char* _Nullable strchr(const char* _Nonnull __s, int __ch) __attribute_pure__;
-char* _Nullable __strchr_chk(const char* _Nonnull __s, int __ch, size_t __n) __INTRODUCED_IN(18);
+char* _Nullable __strchr_chk(const char* _Nonnull __s, int __ch, size_t __n);
 #if defined(__USE_GNU)
 #if defined(__cplusplus)
+
+#if __BIONIC_AVAILABILITY_GUARD(24)
 extern "C++" char* _Nonnull strchrnul(char* _Nonnull __s, int __ch) __RENAME(strchrnul) __attribute_pure__ __INTRODUCED_IN(24);
 extern "C++" const char* _Nonnull strchrnul(const char* _Nonnull __s, int __ch) __RENAME(strchrnul) __attribute_pure__ __INTRODUCED_IN(24);
+#endif /* __BIONIC_AVAILABILITY_GUARD(24) */
+
 #else
+
+#if __BIONIC_AVAILABILITY_GUARD(24)
 char* _Nonnull strchrnul(const char* _Nonnull __s, int __ch) __attribute_pure__ __INTRODUCED_IN(24);
+#endif /* __BIONIC_AVAILABILITY_GUARD(24) */
+
 #endif
 #endif
 
 char* _Nullable strrchr(const char* _Nonnull __s, int __ch) __attribute_pure__;
-char* _Nullable __strrchr_chk(const char* _Nonnull __s, int __ch, size_t __n) __INTRODUCED_IN(18);
+char* _Nullable __strrchr_chk(const char* _Nonnull __s, int __ch, size_t __n);
 
 size_t strlen(const char* _Nonnull __s) __attribute_pure__;
-size_t __strlen_chk(const char* _Nonnull __s, size_t __n) __INTRODUCED_IN(17);
+size_t __strlen_chk(const char* _Nonnull __s, size_t __n);
 
 int strcmp(const char* _Nonnull __lhs, const char* _Nonnull __rhs) __attribute_pure__;
-char* _Nonnull stpcpy(char* _Nonnull __dst, const char* _Nonnull __src) __INTRODUCED_IN(21);
+char* _Nonnull stpcpy(char* _Nonnull __dst, const char* _Nonnull __src);
 char* _Nonnull strcpy(char* _Nonnull __dst, const char* _Nonnull __src);
 char* _Nonnull strcat(char* _Nonnull __dst, const char* _Nonnull __src);
 char* _Nullable strdup(const char* _Nonnull __s);
@@ -108,19 +124,77 @@
 char* _Nullable strtok(char* _Nullable __s, const char* _Nonnull __delimiter);
 char* _Nullable strtok_r(char* _Nullable __s, const char* _Nonnull __delimiter, char* _Nonnull * _Nonnull __pos_ptr);
 
+/**
+ * [strerror(3)](https://man7.org/linux/man-pages/man3/strerror.3.html)
+ * returns a string describing the given errno value.
+ * `strerror(EINVAL)` would return "Invalid argument", for example.
+ *
+ * On Android, unknown errno values return a string such as "Unknown error 666".
+ * These unknown errno value strings live in thread-local storage, and are valid
+ * until the next call of strerror() on the same thread.
+ *
+ * Returns a pointer to a string.
+ */
 char* _Nonnull strerror(int __errno_value);
-char* _Nonnull strerror_l(int __errno_value, locale_t _Nonnull __l) __INTRODUCED_IN(23);
+
+/**
+ * Equivalent to strerror() on Android where only C/POSIX locales are available.
+ */
+char* _Nonnull strerror_l(int __errno_value, locale_t _Nonnull __l) __RENAME(strerror);
+
+/**
+ * [strerror_r(3)](https://man7.org/linux/man-pages/man3/strerror_r.3.html)
+ * writes a string describing the given errno value into the given buffer.
+ *
+ * There are two variants of this function, POSIX and GNU.
+ * The GNU variant returns a pointer to the buffer.
+ * The POSIX variant returns 0 on success or an errno value on failure.
+ *
+ * The GNU variant is available since API level 23 if `_GNU_SOURCE` is defined.
+ * The POSIX variant is available otherwise.
+ */
 #if defined(__USE_GNU) && __ANDROID_API__ >= 23
 char* _Nonnull strerror_r(int __errno_value, char* _Nullable __buf, size_t __n) __RENAME(__gnu_strerror_r) __INTRODUCED_IN(23);
 #else /* POSIX */
 int strerror_r(int __errno_value, char* _Nonnull __buf, size_t __n);
 #endif
 
+/**
+ * [strerrorname_np(3)](https://man7.org/linux/man-pages/man3/strerrordesc_np.3.html)
+ * returns the name of the errno constant corresponding to its argument.
+ * `strerrorname_np(38)` would return "ENOSYS", because `ENOSYS` is errno 38. This
+ * is mostly useful for error reporting in cases where a string like "ENOSYS" is
+ * more readable than a string like "Function not implemented", which would be
+ * returned by strerror().
+ *
+ * Returns a pointer to a string, or null for unknown errno values.
+ *
+ * Available since API level 35.
+ */
+#if defined(__USE_GNU)
+
+#if __BIONIC_AVAILABILITY_GUARD(35)
+const char* _Nullable strerrorname_np(int __errno_value) __INTRODUCED_IN(35);
+#endif /* __BIONIC_AVAILABILITY_GUARD(35) */
+
+#endif
+
+/**
+ * [strerrordesc_np(3)](https://man7.org/linux/man-pages/man3/strerrordesc_np.3.html)
+ * is like strerror() but without localization. Since Android's strerror()
+ * does not localize, this is the same as strerror() on Android.
+ *
+ * Returns a pointer to a string.
+ */
+#if defined(__USE_GNU)
+const char* _Nonnull strerrordesc_np(int __errno_value) __RENAME(strerror);
+#endif
+
 size_t strnlen(const char* _Nonnull __s, size_t __n) __attribute_pure__;
 char* _Nonnull strncat(char* _Nonnull __dst, const char* _Nonnull __src, size_t __n);
 char* _Nullable strndup(const char* _Nonnull __s, size_t __n);
 int strncmp(const char* _Nonnull __lhs, const char* _Nonnull __rhs, size_t __n) __attribute_pure__;
-char* _Nonnull stpncpy(char* _Nonnull __dst, const char* _Nonnull __src, size_t __n) __INTRODUCED_IN(21);
+char* _Nonnull stpncpy(char* _Nonnull __dst, const char* _Nonnull __src, size_t __n);
 char* _Nonnull strncpy(char* _Nonnull __dst, const char* _Nonnull __src, size_t __n);
 
 size_t strlcat(char* _Nonnull __dst, const char* _Nonnull __src, size_t __n);
@@ -136,8 +210,8 @@
 int strcoll(const char* _Nonnull __lhs, const char* _Nonnull __rhs) __attribute_pure__;
 size_t strxfrm(char* __BIONIC_COMPLICATED_NULLNESS __dst, const char* _Nonnull __src, size_t __n);
 
-int strcoll_l(const char* _Nonnull __lhs, const char* _Nonnull __rhs, locale_t _Nonnull __l) __attribute_pure__ __INTRODUCED_IN(21);
-size_t strxfrm_l(char* __BIONIC_COMPLICATED_NULLNESS __dst, const char* _Nonnull __src, size_t __n, locale_t _Nonnull __l) __INTRODUCED_IN(21);
+int strcoll_l(const char* _Nonnull __lhs, const char* _Nonnull __rhs, locale_t _Nonnull __l) __attribute_pure__;
+size_t strxfrm_l(char* __BIONIC_COMPLICATED_NULLNESS __dst, const char* _Nonnull __src, size_t __n, locale_t _Nonnull __l);
 
 #if defined(__USE_GNU) && !defined(basename)
 /*
@@ -145,10 +219,18 @@
  * It doesn't modify its argument, and in C++ it's const-correct.
  */
 #if defined(__cplusplus)
+
+#if __BIONIC_AVAILABILITY_GUARD(23)
 extern "C++" char* _Nonnull basename(char* _Nullable __path) __RENAME(__gnu_basename) __INTRODUCED_IN(23);
 extern "C++" const char* _Nonnull basename(const char* _Nonnull __path) __RENAME(__gnu_basename) __INTRODUCED_IN(23);
+#endif /* __BIONIC_AVAILABILITY_GUARD(23) */
+
 #else
+
+#if __BIONIC_AVAILABILITY_GUARD(23)
 char* _Nonnull basename(const char* _Nonnull __path) __RENAME(__gnu_basename) __INTRODUCED_IN(23);
+#endif /* __BIONIC_AVAILABILITY_GUARD(23) */
+
 #endif
 #endif
 
@@ -158,11 +240,10 @@
 
 /* Const-correct overloads. Placed after FORTIFY so we call those functions, if possible. */
 #if defined(__cplusplus)
-/*
- * Use two enable_ifs so these overloads don't conflict with + are preferred over libcxx's. This can
- * be reduced to 1 after libcxx recognizes that we have const-correct overloads.
- */
-#define __prefer_this_overload __enable_if(true, "preferred overload") __enable_if(true, "")
+/* libcxx tries to provide these. Suppress that, since libcxx's impl doesn't respect FORTIFY. */
+#define __CORRECT_ISO_CPP_STRING_H_PROTO
+/* Used to make these preferable over regular <string.h> signatures for overload resolution. */
+#define __prefer_this_overload __enable_if(true, "")
 extern "C++" {
 inline __always_inline
 void* _Nullable __bionic_memchr(const void* _Nonnull const s __pass_object_size, int c, size_t n) {
diff --git a/libc/include/strings.h b/libc/include/strings.h
index 2f4f764..7543edc 100644
--- a/libc/include/strings.h
+++ b/libc/include/strings.h
@@ -43,8 +43,9 @@
  * @brief Extra string functions.
  */
 
-#include <sys/types.h>
 #include <sys/cdefs.h>
+
+#include <sys/types.h>
 #include <xlocale.h>
 
 #include <bits/strcasecmp.h>
@@ -61,18 +62,18 @@
 
 /** Deprecated. Use memmove() instead. */
 #define bcopy(b1, b2, len) __bionic_bcopy((b1), (b2), (len))
-static __inline__ __always_inline void __bionic_bcopy(const void* _Nonnull b1, void* _Nonnull b2, size_t len) {
+static __inline __always_inline void __bionic_bcopy(const void* _Nonnull b1, void* _Nonnull b2, size_t len) {
   __builtin_memmove(b2, b1, len);
 }
 
 /** Deprecated. Use memset() instead. */
 #define bzero(b, len) __bionic_bzero((b), (len))
-static __inline__ __always_inline void __bionic_bzero(void* _Nonnull b, size_t len) {
+static __inline __always_inline void __bionic_bzero(void* _Nonnull b, size_t len) {
   __builtin_memset(b, 0, len);
 }
 
 /**
- * [ffs(3)](http://man7.org/linux/man-pages/man3/ffs.3.html) finds the
+ * [ffs(3)](https://man7.org/linux/man-pages/man3/ffs.3.html) finds the
  * first set bit in `__n`.
  *
  * Returns 0 if no bit is set, or the index of the lowest set bit (counting
@@ -83,7 +84,7 @@
 }
 
 /**
- * [ffsl(3)](http://man7.org/linux/man-pages/man3/ffsl.3.html) finds the
+ * [ffsl(3)](https://man7.org/linux/man-pages/man3/ffsl.3.html) finds the
  * first set bit in `__n`.
  *
  * Returns 0 if no bit is set, or the index of the lowest set bit (counting
@@ -94,7 +95,7 @@
 }
 
 /**
- * [ffsll(3)](http://man7.org/linux/man-pages/man3/ffsll.3.html) finds the
+ * [ffsll(3)](https://man7.org/linux/man-pages/man3/ffsll.3.html) finds the
  * first set bit in `__n`.
  *
  * Returns 0 if no bit is set, or the index of the lowest set bit (counting
diff --git a/libc/include/sys/_system_properties.h b/libc/include/sys/_system_properties.h
index 744a45b..12cafec 100644
--- a/libc/include/sys/_system_properties.h
+++ b/libc/include/sys/_system_properties.h
@@ -1,137 +1 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *  * Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- *  * Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in
- *    the documentation and/or other materials provided with the
- *    distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
- * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#ifndef _INCLUDE_SYS__SYSTEM_PROPERTIES_H
-#define _INCLUDE_SYS__SYSTEM_PROPERTIES_H
-
-#include <sys/cdefs.h>
-#include <stdint.h>
-
-#ifndef _REALLY_INCLUDE_SYS__SYSTEM_PROPERTIES_H_
-#error you should #include <sys/system_properties.h> instead
-#endif
-
 #include <sys/system_properties.h>
-
-__BEGIN_DECLS
-
-#define PROP_SERVICE_NAME "property_service"
-#define PROP_FILENAME "/dev/__properties__"
-
-#define PROP_MSG_SETPROP 1
-#define PROP_MSG_SETPROP2 0x00020001
-
-#define PROP_SUCCESS 0
-#define PROP_ERROR_READ_CMD 0x0004
-#define PROP_ERROR_READ_DATA 0x0008
-#define PROP_ERROR_READ_ONLY_PROPERTY 0x000B
-#define PROP_ERROR_INVALID_NAME 0x0010
-#define PROP_ERROR_INVALID_VALUE 0x0014
-#define PROP_ERROR_PERMISSION_DENIED 0x0018
-#define PROP_ERROR_INVALID_CMD 0x001B
-#define PROP_ERROR_HANDLE_CONTROL_MESSAGE 0x0020
-#define PROP_ERROR_SET_FAILED 0x0024
-
-/*
-** This was previously for testing, but now that SystemProperties is its own testable class,
-** there is never a reason to call this function and its implementation simply returns -1.
-*/
-int __system_property_set_filename(const char* __filename);
-
-/*
-** Initialize the area to be used to store properties.  Can
-** only be done by a single process that has write access to
-** the property area.
-*/
-int __system_property_area_init(void);
-
-/* Read the global serial number of the system properties
-**
-** Called to predict if a series of cached __system_property_find
-** objects will have seen __system_property_serial values change.
-** But also aids the converse, as changes in the global serial can
-** also be used to predict if a failed __system_property_find
-** could in-turn now find a new object; thus preventing the
-** cycles of effort to poll __system_property_find.
-**
-** Typically called at beginning of a cache cycle to signal if _any_ possible
-** changes have occurred since last. If there is, one may check each individual
-** __system_property_serial to confirm dirty, or __system_property_find
-** to check if the property now exists. If a call to __system_property_add
-** or __system_property_update has completed between two calls to
-** __system_property_area_serial then the second call will return a larger
-** value than the first call. Beware of race conditions as changes to the
-** properties are not atomic, the main value of this call is to determine
-** whether the expensive __system_property_find is worth retrying to see if
-** a property now exists.
-**
-** Returns the serial number on success, -1 on error.
-*/
-uint32_t __system_property_area_serial(void);
-
-/* Add a new system property.  Can only be done by a single
-** process that has write access to the property area, and
-** that process must handle sequencing to ensure the property
-** does not already exist and that only one property is added
-** or updated at a time.
-**
-** Returns 0 on success, -1 if the property area is full.
-*/
-int __system_property_add(const char* __name, unsigned int __name_length, const char* __value, unsigned int __value_length);
-
-/* Update the value of a system property returned by
-** __system_property_find.  Can only be done by a single process
-** that has write access to the property area, and that process
-** must handle sequencing to ensure that only one property is
-** updated at a time.
-**
-** Returns 0 on success, -1 if the parameters are incorrect.
-*/
-int __system_property_update(prop_info* __pi, const char* __value, unsigned int __value_length);
-
-/* Read the serial number of a system property returned by
-** __system_property_find.
-**
-** Returns the serial number on success, -1 on error.
-*/
-uint32_t __system_property_serial(const prop_info* __pi);
-
-/* Initialize the system properties area in read only mode.
- * Should be done by all processes that need to read system
- * properties.
- *
- * Returns 0 on success, -1 otherwise.
- */
-int __system_properties_init(void);
-
-/* Deprecated: use __system_property_wait instead. */
-uint32_t __system_property_wait_any(uint32_t __old_serial);
-
-__END_DECLS
-
-#endif
diff --git a/libc/include/sys/auxv.h b/libc/include/sys/auxv.h
index bf70dda..732f944 100644
--- a/libc/include/sys/auxv.h
+++ b/libc/include/sys/auxv.h
@@ -40,14 +40,12 @@
 __BEGIN_DECLS
 
 /**
- * [getauxval(3)](http://man7.org/linux/man-pages/man3/getauxval.3.html) returns values from
+ * [getauxval(3)](https://man7.org/linux/man-pages/man3/getauxval.3.html) returns values from
  * the ELF auxiliary vector passed by the kernel.
  *
  * Returns the corresponding value on success,
  * and returns 0 and sets `errno` to `ENOENT` on failure.
- *
- * Available since API level 18.
  */
-unsigned long int getauxval(unsigned long int __type) __INTRODUCED_IN(18);
+unsigned long int getauxval(unsigned long int __type);
 
 __END_DECLS
diff --git a/libc/include/sys/cachectl.h b/libc/include/sys/cachectl.h
index 5ec295d..d06d683 100644
--- a/libc/include/sys/cachectl.h
+++ b/libc/include/sys/cachectl.h
@@ -28,6 +28,32 @@
 
 #pragma once
 
+/*
+ * @file sys/cachectl.h
+ * @brief Architecture-specific cache control.
+ */
+
 #include <sys/cdefs.h>
 
-/* This header file is obsolete. */
+__BEGIN_DECLS
+
+#if defined(__riscv)
+
+/**
+ * Flag for __riscv_flush_icache() to indicate that only the current
+ * thread's instruction cache needs to be flushed (rather than the
+ * default of all threads).
+ */
+#define SYS_RISCV_FLUSH_ICACHE_LOCAL 1UL
+
+/**
+ * __riscv_flush_icache(2) flushes the instruction cache for the given range of addresses.
+ * The address range is currently (Linux 6.12) ignored, so both pointers may be null.
+ *
+ * Returns 0 on success, and returns -1 and sets `errno` on failure.
+ */
+int __riscv_flush_icache(void* _Nullable __start, void* _Nullable __end, unsigned long __flags);
+
+#endif
+
+__END_DECLS
diff --git a/libc/include/sys/capability.h b/libc/include/sys/capability.h
index b43bbf0..3d1d896 100644
--- a/libc/include/sys/capability.h
+++ b/libc/include/sys/capability.h
@@ -39,7 +39,7 @@
 __BEGIN_DECLS
 
 /**
- * [capget(2)](http://man7.org/linux/man-pages/man2/capget.2.html) gets the calling
+ * [capget(2)](https://man7.org/linux/man-pages/man2/capget.2.html) gets the calling
  * thread's capabilities.
  *
  * Returns 0 on success, and returns -1 and sets `errno` on failure.
@@ -47,7 +47,7 @@
 int capget(cap_user_header_t _Nonnull __hdr_ptr, cap_user_data_t _Nullable __data_ptr);
 
 /**
- * [capset(2)](http://man7.org/linux/man-pages/man2/capset.2.html) sets the calling
+ * [capset(2)](https://man7.org/linux/man-pages/man2/capset.2.html) sets the calling
  * thread's capabilities.
  *
  * Returns 0 on success, and returns -1 and sets `errno` on failure.
diff --git a/libc/include/sys/cdefs.h b/libc/include/sys/cdefs.h
index 484757e..9bd35bb 100644
--- a/libc/include/sys/cdefs.h
+++ b/libc/include/sys/cdefs.h
@@ -38,7 +38,7 @@
 
 /**
  * `__BIONIC__` is always defined if you're building with bionic. See
- * https://android.googlesource.com/platform/bionic/+/master/docs/defines.md.
+ * https://android.googlesource.com/platform/bionic/+/main/docs/defines.md.
  */
 #define __BIONIC__ 1
 
@@ -87,9 +87,12 @@
 #define	__STRING(x)	#x
 #define	___STRING(x)	__STRING(x)
 
-#if defined(__cplusplus)
-#define	__inline	inline		/* convert to C++ keyword */
-#endif /* !__cplusplus */
+// C++ has `inline` as a keyword, as does C99, but ANSI C (aka C89 aka C90)
+// does not. Everything accepts the `__inline__` extension though. We could
+// just use that directly in our own code, but there's historical precedent
+// for `__inline` meaning it's still used in upstream BSD code (and potentially
+// downstream in vendor or app code).
+#define	__inline __inline__
 
 #define __always_inline __attribute__((__always_inline__))
 #define __attribute_const__ __attribute__((__const__))
@@ -137,14 +140,15 @@
 #define	__predict_true(exp)	__builtin_expect((exp) != 0, 1)
 #define	__predict_false(exp)	__builtin_expect((exp) != 0, 0)
 
-#define __wur __attribute__((__warn_unused_result__))
+#define __nodiscard __attribute__((__warn_unused_result__))
+#define __wur __nodiscard
 
-#define __errorattr(msg) __attribute__((unavailable(msg)))
-#define __warnattr(msg) __attribute__((deprecated(msg)))
-#define __warnattr_real(msg) __attribute__((deprecated(msg)))
-#define __enable_if(cond, msg) __attribute__((enable_if(cond, msg)))
-#define __clang_error_if(cond, msg) __attribute__((diagnose_if(cond, msg, "error")))
-#define __clang_warning_if(cond, msg) __attribute__((diagnose_if(cond, msg, "warning")))
+#define __errorattr(msg) __attribute__((__unavailable__(msg)))
+#define __warnattr(msg) __attribute__((__deprecated__(msg)))
+#define __warnattr_real(msg) __attribute__((__deprecated__(msg)))
+#define __enable_if(cond, msg) __attribute__((__enable_if__(cond, msg)))
+#define __clang_error_if(cond, msg) __attribute__((__diagnose_if__(cond, msg, "error")))
+#define __clang_warning_if(cond, msg) __attribute__((__diagnose_if__(cond, msg, "warning")))
 
 #if defined(ANDROID_STRICT)
 /*
@@ -187,7 +191,7 @@
 
 /*
  * _FILE_OFFSET_BITS 64 support.
- * See https://android.googlesource.com/platform/bionic/+/master/docs/32-bit-abi.md
+ * See https://android.googlesource.com/platform/bionic/+/main/docs/32-bit-abi.md
  */
 #if !defined(__LP64__) && defined(_FILE_OFFSET_BITS) && _FILE_OFFSET_BITS == 64
 #  define __USE_FILE_OFFSET64 1
@@ -201,39 +205,6 @@
 #  define __RENAME_IF_FILE_OFFSET64(func)
 #endif
 
-/*
- * For LP32, `long double` == `double`. Historically many `long double` functions were incorrect
- * on x86, missing on most architectures, and even if they are present and correct, linking to
- * them just bloats your ELF file by adding extra relocations. The __BIONIC_LP32_USE_LONG_DOUBLE
- * macro lets us test the headers both ways (and adds an escape valve).
- *
- * Note that some functions have their __RENAME_LDBL commented out as a sign that although we could
- * use __RENAME_LDBL it would actually cause the function to be introduced later because the
- * `long double` variant appeared before the `double` variant.
- *
- * The _NO_GUARD_FOR_NDK variants keep the __VERSIONER_NO_GUARD behavior working for the NDK. This
- * allows libc++ to refer to these functions in inlines without needing to guard them, needed since
- * libc++ doesn't currently guard these calls. There's no risk to the apps though because using
- * those APIs will still cause a link error.
- */
-#if defined(__LP64__) || defined(__BIONIC_LP32_USE_LONG_DOUBLE)
-#define __RENAME_LDBL(rewrite,rewrite_api_level,regular_api_level) __INTRODUCED_IN(regular_api_level)
-#define __RENAME_LDBL_NO_GUARD_FOR_NDK(rewrite,rewrite_api_level,regular_api_level) __INTRODUCED_IN_NO_GUARD_FOR_NDK(regular_api_level)
-#else
-#define __RENAME_LDBL(rewrite,rewrite_api_level,regular_api_level) __RENAME(rewrite) __INTRODUCED_IN(rewrite_api_level)
-#define __RENAME_LDBL_NO_GUARD_FOR_NDK(rewrite,rewrite_api_level,regular_api_level) __RENAME(rewrite) __INTRODUCED_IN_NO_GUARD_FOR_NDK(rewrite_api_level)
-#endif
-
-/*
- * On all architectures, `struct stat` == `struct stat64`, but LP32 didn't gain the *64 functions
- * until API level 21.
- */
-#if defined(__LP64__) || defined(__BIONIC_LP32_USE_STAT64)
-#define __RENAME_STAT64(rewrite,rewrite_api_level,regular_api_level) __INTRODUCED_IN(regular_api_level)
-#else
-#define __RENAME_STAT64(rewrite,rewrite_api_level,regular_api_level) __RENAME(rewrite) __INTRODUCED_IN(rewrite_api_level)
-#endif
-
 /* glibc compatibility. */
 #if defined(__LP64__)
 #define __WORDSIZE 64
@@ -281,7 +252,7 @@
 
 #if defined(__BIONIC_FORTIFY)
 #  define __bos0(s) __bosn((s), 0)
-#  define __pass_object_size_n(n) __attribute__((pass_object_size(n)))
+#  define __pass_object_size_n(n) __attribute__((__pass_object_size__(n)))
 /*
  * FORTIFY'ed functions all have either enable_if or pass_object_size, which
  * makes taking their address impossible. Saying (&read)(foo, bar, baz); will
@@ -293,17 +264,17 @@
  * them available externally. FORTIFY'ed functions try to be as close to possible as 'invisible';
  * having stack protectors detracts from that (b/182948263).
  */
-#  define __BIONIC_FORTIFY_INLINE static __inline__ __attribute__((no_stack_protector)) \
-      __always_inline __VERSIONER_FORTIFY_INLINE
+#  define __BIONIC_FORTIFY_INLINE static __inline __attribute__((__no_stack_protector__)) \
+      __always_inline
 /*
  * We should use __BIONIC_FORTIFY_VARIADIC instead of __BIONIC_FORTIFY_INLINE
  * for variadic functions because compilers cannot inline them.
  * The __always_inline attribute is useless, misleading, and could trigger
  * clang compiler bug to incorrectly inline variadic functions.
  */
-#  define __BIONIC_FORTIFY_VARIADIC static __inline__
+#  define __BIONIC_FORTIFY_VARIADIC static __inline
 /* Error functions don't have bodies, so they can just be static. */
-#  define __BIONIC_ERROR_FUNCTION_VISIBILITY static __attribute__((unused))
+#  define __BIONIC_ERROR_FUNCTION_VISIBILITY static __unused
 #else
 /* Further increase sharing for some inline functions */
 #  define __pass_object_size_n(n)
@@ -333,47 +304,32 @@
 #  define __BIONIC_INCLUDE_FORTIFY_HEADERS 1
 #endif
 
-#define __overloadable __attribute__((overloadable))
+#define __overloadable __attribute__((__overloadable__))
 
-#define __diagnose_as_builtin(...) __attribute__((diagnose_as_builtin(__VA_ARGS__)))
+#define __diagnose_as_builtin(...) __attribute__((__diagnose_as_builtin__(__VA_ARGS__)))
 
 /* Used to tag non-static symbols that are private and never exposed by the shared library. */
-#define __LIBC_HIDDEN__ __attribute__((visibility("hidden")))
+#define __LIBC_HIDDEN__ __attribute__((__visibility__("hidden")))
 
 /*
  * Used to tag symbols that should be hidden for 64-bit,
  * but visible to preserve binary compatibility for LP32.
  */
 #ifdef __LP64__
-#define __LIBC32_LEGACY_PUBLIC__ __attribute__((visibility("hidden")))
+#define __LIBC32_LEGACY_PUBLIC__ __attribute__((__visibility__("hidden")))
 #else
-#define __LIBC32_LEGACY_PUBLIC__ __attribute__((visibility("default")))
+#define __LIBC32_LEGACY_PUBLIC__ __attribute__((__visibility__("default")))
 #endif
 
 /* Used to rename functions so that the compiler emits a call to 'x' rather than the function this was applied to. */
 #define __RENAME(x) __asm__(#x)
 
-#if __has_builtin(__builtin_umul_overflow) || __GNUC__ >= 5
-#if defined(__LP64__)
-#define __size_mul_overflow(a, b, result) __builtin_umull_overflow(a, b, result)
-#else
-#define __size_mul_overflow(a, b, result) __builtin_umul_overflow(a, b, result)
-#endif
-#else
-extern __inline__ __always_inline __attribute__((gnu_inline))
-int __size_mul_overflow(__SIZE_TYPE__ a, __SIZE_TYPE__ b, __SIZE_TYPE__ *result) {
-    *result = a * b;
-    static const __SIZE_TYPE__ mul_no_overflow = 1UL << (sizeof(__SIZE_TYPE__) * 4);
-    return (a >= mul_no_overflow || b >= mul_no_overflow) && a > 0 && (__SIZE_TYPE__)-1 / a < b;
-}
-#endif
-
 /*
  * Used when we need to check for overflow when multiplying x and y. This
- * should only be used where __size_mul_overflow can not work, because it makes
- * assumptions that __size_mul_overflow doesn't (x and y are positive, ...),
+ * should only be used where __builtin_umull_overflow can not work, because it makes
+ * assumptions that __builtin_umull_overflow doesn't (x and y are positive, ...),
  * *and* doesn't make use of compiler intrinsics, so it's probably slower than
- * __size_mul_overflow.
+ * __builtin_umull_overflow.
  */
 #define __unsafe_check_mul_overflow(x, y) ((__SIZE_TYPE__)-1 / (x) < (y))
 
diff --git a/libc/include/sys/endian.h b/libc/include/sys/endian.h
index 9155b4c..1c7448c 100644
--- a/libc/include/sys/endian.h
+++ b/libc/include/sys/endian.h
@@ -49,10 +49,10 @@
 
 /* glibc compatibility. */
 __BEGIN_DECLS
-uint32_t htonl(uint32_t __x) __attribute_const__ __INTRODUCED_IN(21);
-uint16_t htons(uint16_t __x) __attribute_const__ __INTRODUCED_IN(21);
-uint32_t ntohl(uint32_t __x) __attribute_const__ __INTRODUCED_IN(21);
-uint16_t ntohs(uint16_t __x) __attribute_const__ __INTRODUCED_IN(21);
+uint32_t htonl(uint32_t __x) __attribute_const__;
+uint16_t htons(uint16_t __x) __attribute_const__;
+uint32_t ntohl(uint32_t __x) __attribute_const__;
+uint16_t ntohs(uint16_t __x) __attribute_const__;
 __END_DECLS
 
 #define htonl(x) __swap32(x)
diff --git a/libc/include/sys/epoll.h b/libc/include/sys/epoll.h
index 9e09408..bec7c64 100644
--- a/libc/include/sys/epoll.h
+++ b/libc/include/sys/epoll.h
@@ -26,8 +26,12 @@
  * SUCH DAMAGE.
  */
 
-#ifndef _SYS_EPOLL_H_
-#define _SYS_EPOLL_H_
+#pragma once
+
+/**
+ * @file sys/epoll.h
+ * @brief I/O event file descriptors.
+ */
 
 #include <sys/cdefs.h>
 #include <sys/types.h>
@@ -37,14 +41,75 @@
 
 __BEGIN_DECLS
 
+/**
+ * [epoll_create(2)](https://man7.org/linux/man-pages/man2/epoll_create.2.html)
+ * creates a new [epoll](https://man7.org/linux/man-pages/man7/epoll.7.html)
+ * file descriptor.
+ *
+ * Returns a new file descriptor on success and returns -1 and sets `errno` on
+ * failure.
+ */
 int epoll_create(int __size);
-int epoll_create1(int __flags) __INTRODUCED_IN(21);
 
+/**
+ * [epoll_create1(2)](https://man7.org/linux/man-pages/man2/epoll_create1.2.html)
+ * creates a new [epoll](https://man7.org/linux/man-pages/man7/epoll.7.html)
+ * file descriptor with the given flags.
+ *
+ * Returns a new file descriptor on success and returns -1 and sets `errno` on
+ * failure.
+ */
+int epoll_create1(int __flags);
+
+/**
+ * [epoll_ctl(2)](https://man7.org/linux/man-pages/man2/epoll_ctl.2.html)
+ * adds/modifies/removes file descriptors from the given epoll file descriptor.
+ *
+ * Returns 0 on success and returns -1 and sets `errno` on failure.
+ */
 int epoll_ctl(int __epoll_fd, int __op, int __fd, struct epoll_event* __BIONIC_COMPLICATED_NULLNESS __event);
+
+/**
+ * [epoll_wait(2)](https://man7.org/linux/man-pages/man2/epoll_wait.2.html)
+ * waits for an event on the given epoll file descriptor.
+ *
+ * Returns the number of ready file descriptors on success, 0 on timeout,
+ * or -1 and sets `errno` on failure.
+ */
 int epoll_wait(int __epoll_fd, struct epoll_event* _Nonnull __events, int __event_count, int __timeout_ms);
-int epoll_pwait(int __epoll_fd, struct epoll_event* _Nonnull __events, int __event_count, int __timeout_ms, const sigset_t* _Nullable __mask) __INTRODUCED_IN(21);
+
+/**
+ * Like epoll_wait() but atomically applying the given signal mask.
+ */
+int epoll_pwait(int __epoll_fd, struct epoll_event* _Nonnull __events, int __event_count, int __timeout_ms, const sigset_t* _Nullable __mask);
+
+/**
+ * Like epoll_pwait() but using a 64-bit signal mask even on 32-bit systems.
+ *
+ * Available since API level 28.
+ */
+
+#if __BIONIC_AVAILABILITY_GUARD(28)
 int epoll_pwait64(int __epoll_fd, struct epoll_event* _Nonnull __events, int __event_count, int __timeout_ms, const sigset64_t* _Nullable __mask) __INTRODUCED_IN(28);
+#endif /* __BIONIC_AVAILABILITY_GUARD(28) */
+
+
+/**
+ * Like epoll_pwait() but with a `struct timespec` timeout, for nanosecond resolution.
+ *
+ * Available since API level 35.
+ */
+
+#if __BIONIC_AVAILABILITY_GUARD(35)
+int epoll_pwait2(int __epoll_fd, struct epoll_event* _Nonnull __events, int __event_count, const struct timespec* _Nullable __timeout, const sigset_t* _Nullable __mask) __INTRODUCED_IN(35);
+
+/**
+ * Like epoll_pwait2() but using a 64-bit signal mask even on 32-bit systems.
+ *
+ * Available since API level 35.
+ */
+int epoll_pwait2_64(int __epoll_fd, struct epoll_event* _Nonnull __events, int __event_count, const struct timespec* _Nullable __timeout, const sigset64_t* _Nullable __mask) __INTRODUCED_IN(35);
+#endif /* __BIONIC_AVAILABILITY_GUARD(35) */
+
 
 __END_DECLS
-
-#endif
diff --git a/libc/include/sys/eventfd.h b/libc/include/sys/eventfd.h
index 1ad11e3..3000737 100644
--- a/libc/include/sys/eventfd.h
+++ b/libc/include/sys/eventfd.h
@@ -35,18 +35,22 @@
 
 #include <sys/cdefs.h>
 #include <fcntl.h>
+#include <linux/eventfd.h>
 
 __BEGIN_DECLS
 
-/** The eventfd() flag to provide semaphore-like semantics for reads. */
-#define EFD_SEMAPHORE (1 << 0)
-/** The eventfd() flag for a close-on-exec file descriptor. */
-#define EFD_CLOEXEC O_CLOEXEC
-/** The eventfd() flag for a non-blocking file descriptor. */
-#define EFD_NONBLOCK O_NONBLOCK
+/*! \macro EFD_SEMAPHORE
+ * The eventfd() flag to provide semaphore-like semantics for reads.
+ */
+/*! \macro EFD_CLOEXEC
+ * The eventfd() flag for a close-on-exec file descriptor.
+ */
+/*! \macro EFD_NONBLOCK
+ * The eventfd() flag for a non-blocking file descriptor.
+ */
 
 /**
- * [eventfd(2)](http://man7.org/linux/man-pages/man2/eventfd.2.html) creates a file descriptor
+ * [eventfd(2)](https://man7.org/linux/man-pages/man2/eventfd.2.html) creates a file descriptor
  * for event notification.
  *
  * Returns a new file descriptor on success, and returns -1 and sets `errno` on failure.
@@ -57,7 +61,7 @@
 typedef uint64_t eventfd_t;
 
 /**
- * [eventfd_read(3)](http://man7.org/linux/man-pages/man2/eventfd.2.html) is a convenience
+ * [eventfd_read(3)](https://man7.org/linux/man-pages/man2/eventfd.2.html) is a convenience
  * wrapper to read an `eventfd_t` from an eventfd file descriptor.
  *
  * Returns 0 on success, or returns -1 otherwise.
@@ -65,7 +69,7 @@
 int eventfd_read(int __fd, eventfd_t* _Nonnull __value);
 
 /**
- * [eventfd_write(3)](http://man7.org/linux/man-pages/man2/eventfd.2.html) is a convenience
+ * [eventfd_write(3)](https://man7.org/linux/man-pages/man2/eventfd.2.html) is a convenience
  * wrapper to write an `eventfd_t` to an eventfd file descriptor.
  *
  * Returns 0 on success, or returns -1 otherwise.
diff --git a/libc/include/sys/file.h b/libc/include/sys/file.h
index ccdfeea..45117fa 100644
--- a/libc/include/sys/file.h
+++ b/libc/include/sys/file.h
@@ -41,7 +41,7 @@
 __BEGIN_DECLS
 
 /**
- * [flock(2)](http://man7.org/linux/man-pages/man2/flock.2.html) performs
+ * [flock(2)](https://man7.org/linux/man-pages/man2/flock.2.html) performs
  * advisory file lock operations.
  *
  * Returns 0 on success, and returns -1 and sets `errno` on failure.
diff --git a/libc/include/sys/fsuid.h b/libc/include/sys/fsuid.h
index c1c8ebb..eeb5783 100644
--- a/libc/include/sys/fsuid.h
+++ b/libc/include/sys/fsuid.h
@@ -39,23 +39,19 @@
 __BEGIN_DECLS
 
 /**
- * [setfsuid(2)](http://man7.org/linux/man-pages/man2/setfsuid.2.html) sets the UID used for
+ * [setfsuid(2)](https://man7.org/linux/man-pages/man2/setfsuid.2.html) sets the UID used for
  * filesystem checks.
  *
  * Returns the previous UID.
- *
- * Available since API level 21.
  */
-int setfsuid(uid_t __uid) __INTRODUCED_IN(21);
+int setfsuid(uid_t __uid);
 
 /**
- * [setfsgid(2)](http://man7.org/linux/man-pages/man2/setfsgid.2.html) sets the GID used for
+ * [setfsgid(2)](https://man7.org/linux/man-pages/man2/setfsgid.2.html) sets the GID used for
  * filesystem checks.
  *
  * Returns the previous GID.
- *
- * Available since API level 21.
  */
-int setfsgid(gid_t __gid) __INTRODUCED_IN(21);
+int setfsgid(gid_t __gid);
 
 __END_DECLS
diff --git a/libc/include/sys/hwprobe.h b/libc/include/sys/hwprobe.h
new file mode 100644
index 0000000..8e69e8a
--- /dev/null
+++ b/libc/include/sys/hwprobe.h
@@ -0,0 +1,66 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *  * Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *  * Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in
+ *    the documentation and/or other materials provided with the
+ *    distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#pragma once
+
+#if __riscv
+
+/**
+ * @file sys/hwprobe.h
+ * @brief RISC-V hardware probing.
+ */
+
+#include <sys/cdefs.h>
+#include <sys/types.h>
+
+/* Pull in struct riscv_hwprobe and corresponding constants. */
+#include <asm/hwprobe.h>
+
+__BEGIN_DECLS
+
+/**
+ * [__riscv_hwprobe(2)](https://docs.kernel.org/riscv/hwprobe.html)
+ * queries hardware characteristics.
+ *
+ * A `__cpu_count` of 0 and null `__cpus` means "all online cpus".
+ *
+ * Returns 0 on success and returns an error number on failure.
+ */
+int __riscv_hwprobe(struct riscv_hwprobe* _Nonnull __pairs, size_t __pair_count, size_t __cpu_count, unsigned long* _Nullable __cpus, unsigned __flags);
+
+/**
+ * The type of the second argument passed to riscv64 ifunc resolvers.
+ * This argument allows riscv64 ifunc resolvers to call __riscv_hwprobe()
+ * without worrying about whether that relocation is resolved before
+ * the ifunc resolver is called.
+ */
+typedef int (*__riscv_hwprobe_t)(struct riscv_hwprobe* _Nonnull __pairs, size_t __pair_count, size_t __cpu_count, unsigned long* _Nullable __cpus, unsigned __flags);
+
+__END_DECLS
+
+#endif
diff --git a/libc/include/sys/ifunc.h b/libc/include/sys/ifunc.h
index 7fbca4a..d35600e 100644
--- a/libc/include/sys/ifunc.h
+++ b/libc/include/sys/ifunc.h
@@ -40,13 +40,15 @@
 #if defined(__aarch64__)
 
 /**
- * Provides information about hardware capabilities to ifunc resolvers.
+ * Provides information about hardware capabilities to arm64 ifunc resolvers.
  *
- * Starting with API level 30, ifunc resolvers on arm64 are passed two arguments. The first is a
- * uint64_t whose value is equal to getauxval(AT_HWCAP) | _IFUNC_ARG_HWCAP. The second is a pointer
- * to a data structure of this type. Prior to API level 30, no arguments are passed to ifunc
- * resolvers. Code that wishes to be compatible with prior API levels should not accept any
- * arguments in the resolver.
+ * Prior to API level 30, arm64 ifunc resolvers are passed no arguments.
+ *
+ * Starting with API level 30, arm64 ifunc resolvers are passed two arguments.
+ * The first is a uint64_t whose value is equal to getauxval(AT_HWCAP) | _IFUNC_ARG_HWCAP.
+ * The second is a pointer to a data structure of this type.
+ *
+ * Code that wishes to be compatible with API levels before 30 must call getauxval() itself.
  */
 typedef struct __ifunc_arg_t {
   /** Set to sizeof(__ifunc_arg_t). */
@@ -60,9 +62,14 @@
 } __ifunc_arg_t;
 
 /**
- * If this bit is set in the first argument to an ifunc resolver, indicates that the second argument
- * is a pointer to a data structure of type __ifunc_arg_t. This bit is always set on Android
- * starting with API level 30.
+ * If this bit is set in the first argument to an ifunc resolver, the second argument
+ * is a pointer to a data structure of type __ifunc_arg_t.
+ *
+ * This bit is always set on Android starting with API level 30.
+ * This bit is meaningless before API level 30 because ifunc resolvers are not passed any arguments.
+ * This bit has no real use on Android, but is included for glibc source compatibility;
+ * glibc used this bit to distinguish the case where the ifunc resolver received a single argument,
+ * which was an evolutionary stage Android never went through.
  */
 #define _IFUNC_ARG_HWCAP (1ULL << 62)
 
diff --git a/libc/include/sys/inotify.h b/libc/include/sys/inotify.h
index e834d07..75ed542 100644
--- a/libc/include/sys/inotify.h
+++ b/libc/include/sys/inotify.h
@@ -33,15 +33,11 @@
 #include <sys/types.h>
 #include <stdint.h>
 #include <linux/inotify.h>
-#include <asm/fcntl.h> /* For O_CLOEXEC and O_NONBLOCK. */
 
 __BEGIN_DECLS
 
-#define IN_CLOEXEC O_CLOEXEC
-#define IN_NONBLOCK O_NONBLOCK
-
 int inotify_init(void);
-int inotify_init1(int __flags) __INTRODUCED_IN(21);
+int inotify_init1(int __flags);
 int inotify_add_watch(int __fd, const char* _Nonnull __path, uint32_t __mask);
 int inotify_rm_watch(int __fd, uint32_t __watch_descriptor);
 
diff --git a/libc/include/sys/io.h b/libc/include/sys/io.h
new file mode 100644
index 0000000..11f3f3a
--- /dev/null
+++ b/libc/include/sys/io.h
@@ -0,0 +1,75 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *  * Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *  * Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in
+ *    the documentation and/or other materials provided with the
+ *    distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#pragma once
+
+/**
+ * @file sys/io.h
+ * @brief The x86/x86-64 I/O port functions iopl() and ioperm().
+ */
+
+#include <sys/cdefs.h>
+
+#include <errno.h>
+#include <sys/syscall.h>
+#include <unistd.h>
+
+__BEGIN_DECLS
+
+/**
+ * [iopl(2)](https://man7.org/linux/man-pages/man2/iopl.2.html) changes the I/O
+ * privilege level for all x86/x8-64 I/O ports, for the calling thread.
+ *
+ * New callers should use ioperm() instead.
+ *
+ * Returns 0 on success, and returns -1 and sets `errno` on failure.
+ *
+ * Only available for x86/x86-64.
+ */
+#if defined(__NR_iopl)
+__attribute__((__deprecated__("use ioperm() instead"))) static __inline int iopl(int __level) {
+  return syscall(__NR_iopl, __level);
+}
+#endif
+
+/**
+ * [ioperm(2)](https://man7.org/linux/man-pages/man2/ioperm.2.html) sets the I/O
+ * permissions for the given number of x86/x86-64 I/O ports, starting at the
+ * given port.
+ *
+ * Returns 0 on success, and returns -1 and sets `errno` on failure.
+ *
+ * Only available for x86/x86-64.
+ */
+#if defined(__NR_iopl)
+static __inline int ioperm(unsigned long __from, unsigned long __n, int __enabled) {
+  return syscall(__NR_ioperm, __from, __n, __enabled);
+}
+#endif
+
+__END_DECLS
diff --git a/libc/include/sys/ipc.h b/libc/include/sys/ipc.h
index 2e2b8cf..f557ce5 100644
--- a/libc/include/sys/ipc.h
+++ b/libc/include/sys/ipc.h
@@ -47,7 +47,7 @@
 __BEGIN_DECLS
 
 /**
- * [ftok(3)](http://man7.org/linux/man-pages/man3/ftok.3.html) converts a path and id to a
+ * [ftok(3)](https://man7.org/linux/man-pages/man3/ftok.3.html) converts a path and id to a
  * System V IPC key.
  *
  * Returns a key on success, and returns -1 and sets `errno` on failure.
diff --git a/libc/include/sys/klog.h b/libc/include/sys/klog.h
index b60c2c4..237d2e2 100644
--- a/libc/include/sys/klog.h
+++ b/libc/include/sys/klog.h
@@ -61,7 +61,7 @@
 #define KLOG_SIZE_BUFFER 10
 
 /**
- * [klogctl(2)](http://man7.org/linux/man-pages/man2/syslog.2.html) operates on the kernel log.
+ * [klogctl(2)](https://man7.org/linux/man-pages/man2/syslog.2.html) operates on the kernel log.
  *
  * This system call is not available to applications.
  * Use syslog() or `<android/log.h>` instead.
diff --git a/libc/include/sys/mman.h b/libc/include/sys/mman.h
index bcf856d..38cbf2f 100644
--- a/libc/include/sys/mman.h
+++ b/libc/include/sys/mman.h
@@ -43,50 +43,48 @@
 #define MAP_FAILED __BIONIC_CAST(reinterpret_cast, void*, -1)
 
 /**
- * [mmap(2)](http://man7.org/linux/man-pages/man2/mmap.2.html)
+ * [mmap(2)](https://man7.org/linux/man-pages/man2/mmap.2.html)
  * creates a memory mapping for the given range.
  *
  * Returns the address of the mapping on success,
  * and returns `MAP_FAILED` and sets `errno` on failure.
  */
 #if defined(__USE_FILE_OFFSET64)
-void* mmap(void* __addr, size_t __size, int __prot, int __flags, int __fd, off_t __offset) __RENAME(mmap64);
+void* _Nonnull mmap(void* _Nullable __addr, size_t __size, int __prot, int __flags, int __fd, off_t __offset) __RENAME(mmap64);
 #else
-void* mmap(void* __addr, size_t __size, int __prot, int __flags, int __fd, off_t __offset);
+void* _Nonnull mmap(void* _Nullable __addr, size_t __size, int __prot, int __flags, int __fd, off_t __offset);
 #endif
 
 /**
  * mmap64() is a variant of mmap() that takes a 64-bit offset even on LP32.
  *
- * See https://android.googlesource.com/platform/bionic/+/master/docs/32-bit-abi.md
- *
- * Available since API level 21.
+ * See https://android.googlesource.com/platform/bionic/+/main/docs/32-bit-abi.md
  */
-void* mmap64(void* __addr, size_t __size, int __prot, int __flags, int __fd, off64_t __offset) __INTRODUCED_IN(21);
+void* _Nonnull mmap64(void* _Nullable __addr, size_t __size, int __prot, int __flags, int __fd, off64_t __offset);
 
 /**
- * [munmap(2)](http://man7.org/linux/man-pages/man2/munmap.2.html)
+ * [munmap(2)](https://man7.org/linux/man-pages/man2/munmap.2.html)
  * deletes a memory mapping for the given range.
  *
  * Returns 0 on success, and returns -1 and sets `errno` on failure.
  */
-int munmap(void* __addr, size_t __size);
+int munmap(void* _Nonnull __addr, size_t __size);
 
 /**
- * [msync(2)](http://man7.org/linux/man-pages/man2/msync.2.html)
+ * [msync(2)](https://man7.org/linux/man-pages/man2/msync.2.html)
  * flushes changes to a memory-mapped file to disk.
  *
  * Returns 0 on success, and returns -1 and sets `errno` on failure.
  */
-int msync(void* __addr, size_t __size, int __flags);
+int msync(void* _Nonnull __addr, size_t __size, int __flags);
 
 /**
- * [mprotect(2)](http://man7.org/linux/man-pages/man2/mprotect.2.html)
+ * [mprotect(2)](https://man7.org/linux/man-pages/man2/mprotect.2.html)
  * sets the protection on a memory region.
  *
  * Returns 0 on success, and returns -1 and sets `errno` on failure.
  */
-int mprotect(void* __addr, size_t __size, int __prot);
+int mprotect(void* _Nonnull __addr, size_t __size, int __prot);
 
 /** Flag for mremap(). */
 #define MREMAP_MAYMOVE  1
@@ -95,78 +93,78 @@
 #define MREMAP_FIXED    2
 
 /**
- * [mremap(2)](http://man7.org/linux/man-pages/man2/mremap.2.html)
+ * [mremap(2)](https://man7.org/linux/man-pages/man2/mremap.2.html)
  * expands or shrinks an existing memory mapping.
  *
  * Returns the address of the mapping on success,
  * and returns `MAP_FAILED` and sets `errno` on failure.
  */
-void* mremap(void* __old_addr, size_t __old_size, size_t __new_size, int __flags, ...);
+void* _Nonnull mremap(void* _Nonnull __old_addr, size_t __old_size, size_t __new_size, int __flags, ...);
 
 /**
- * [mlockall(2)](http://man7.org/linux/man-pages/man2/mlockall.2.html)
+ * [mlockall(2)](https://man7.org/linux/man-pages/man2/mlockall.2.html)
  * locks pages (preventing swapping).
  *
- * Available since API level 17.
- *
  * Returns 0 on success, and returns -1 and sets `errno` on failure.
  */
-int mlockall(int __flags) __INTRODUCED_IN(17);
+int mlockall(int __flags);
 
 /**
- * [munlockall(2)](http://man7.org/linux/man-pages/man2/munlockall.2.html)
+ * [munlockall(2)](https://man7.org/linux/man-pages/man2/munlockall.2.html)
  * unlocks pages (allowing swapping).
  *
- * Available since API level 17.
- *
  * Returns 0 on success, and returns -1 and sets `errno` on failure.
  */
-int munlockall(void) __INTRODUCED_IN(17);
+int munlockall(void);
 
 /**
- * [mlock(2)](http://man7.org/linux/man-pages/man2/mlock.2.html)
+ * [mlock(2)](https://man7.org/linux/man-pages/man2/mlock.2.html)
  * locks pages (preventing swapping).
  *
  * Returns 0 on success, and returns -1 and sets `errno` on failure.
  */
-int mlock(const void* __addr, size_t __size);
+int mlock(const void* _Nonnull __addr, size_t __size);
 
 /**
- * [mlock2(2)](http://man7.org/linux/man-pages/man2/mlock.2.html)
+ * [mlock2(2)](https://man7.org/linux/man-pages/man2/mlock.2.html)
  * locks pages (preventing swapping), with optional flags.
  *
  * Available since API level 30.
  *
  * Returns 0 on success, and returns -1 and sets `errno` on failure.
  */
-int mlock2(const void* __addr, size_t __size, int __flags) __INTRODUCED_IN(30);
+
+#if __BIONIC_AVAILABILITY_GUARD(30)
+int mlock2(const void* _Nonnull __addr, size_t __size, int __flags) __INTRODUCED_IN(30);
+#endif /* __BIONIC_AVAILABILITY_GUARD(30) */
+
 
 /**
- * [munlock(2)](http://man7.org/linux/man-pages/man2/munlock.2.html)
+ * [munlock(2)](https://man7.org/linux/man-pages/man2/munlock.2.html)
  * unlocks pages (allowing swapping).
  *
  * Returns 0 on success, and returns -1 and sets `errno` on failure.
  */
-int munlock(const void* __addr, size_t __size);
+int munlock(const void* _Nonnull __addr, size_t __size);
 
 /**
- * [mincore(2)](http://man7.org/linux/man-pages/man2/mincore.2.html)
+ * [mincore(2)](https://man7.org/linux/man-pages/man2/mincore.2.html)
  * tests whether pages are resident in memory.
  *
  * Returns 0 on success, and returns -1 and sets `errno` on failure.
  */
-int mincore(void* __addr, size_t __size, unsigned char* __vector);
+int mincore(void* _Nonnull __addr, size_t __size, unsigned char* _Nonnull __vector);
 
 /**
- * [madvise(2)](http://man7.org/linux/man-pages/man2/madvise.2.html)
+ * [madvise(2)](https://man7.org/linux/man-pages/man2/madvise.2.html)
  * gives the kernel advice about future usage patterns.
  *
  * Returns 0 on success, and returns -1 and sets `errno` on failure.
  */
-int madvise(void* __addr, size_t __size, int __advice);
+int madvise(void* _Nonnull __addr, size_t __size, int __advice);
 
 /**
- * [process_madvise(2)](http://man7.org/linux/man-pages/man2/process_madvise.2.html)
+ * [process_madvise(2)](https://man7.org/linux/man-pages/man2/process_madvise.2.html)
  * works just like madvise(2) but applies to the process specified by the given
  * PID file descriptor.
  *
@@ -177,19 +175,27 @@
  *
  * Returns the number of bytes advised on success, and returns -1 and sets `errno` on failure.
  */
-ssize_t process_madvise(int __pid_fd, const struct iovec* __iov, size_t __count, int __advice, unsigned __flags) __INTRODUCED_IN(31);
+
+#if __BIONIC_AVAILABILITY_GUARD(31)
+ssize_t process_madvise(int __pid_fd, const struct iovec* _Nonnull __iov, size_t __count, int __advice, unsigned __flags) __INTRODUCED_IN(31);
+#endif /* __BIONIC_AVAILABILITY_GUARD(31) */
+
 
 #if defined(__USE_GNU)
 
 /**
- * [memfd_create(2)](http://man7.org/linux/man-pages/man2/memfd_create.2.html)
+ * [memfd_create(2)](https://man7.org/linux/man-pages/man2/memfd_create.2.html)
  * creates an anonymous file.
  *
  * Available since API level 30.
  *
  * Returns an fd on success, and returns -1 and sets `errno` on failure.
  */
-int memfd_create(const char* __name, unsigned __flags) __INTRODUCED_IN(30);
+
+#if __BIONIC_AVAILABILITY_GUARD(30)
+int memfd_create(const char* _Nonnull __name, unsigned __flags) __INTRODUCED_IN(30);
+#endif /* __BIONIC_AVAILABILITY_GUARD(30) */
+
 
 #endif
 
@@ -218,7 +224,7 @@
 #endif
 
 /**
- * [posix_madvise(3)](http://man7.org/linux/man-pages/man3/posix_madvise.3.html)
+ * [posix_madvise(3)](https://man7.org/linux/man-pages/man3/posix_madvise.3.html)
  * gives the kernel advice about future usage patterns.
  *
  * Available since API level 23.
@@ -226,6 +232,26 @@
  *
  * Returns 0 on success, and returns a positive error number on failure.
  */
-int posix_madvise(void* __addr, size_t __size, int __advice) __INTRODUCED_IN(23);
+
+#if __BIONIC_AVAILABILITY_GUARD(23)
+int posix_madvise(void* _Nonnull __addr, size_t __size, int __advice) __INTRODUCED_IN(23);
+#endif /* __BIONIC_AVAILABILITY_GUARD(23) */
+
+
+/**
+ * [mseal(2)](https://man7.org/linux/man-pages/man2/mseal.2.html)
+ * seals the given range to prevent modifications such as mprotect() calls.
+ *
+ * Available since API level 36.
+ * Requires a Linux 6.10 or newer kernel.
+ * Always fails for 32-bit processes.
+ *
+ * Returns 0 on success, and returns -1 and sets `errno` on failure.
+ */
+
+#if __BIONIC_AVAILABILITY_GUARD(36)
+int mseal(void* _Nonnull __addr, size_t __size, unsigned long __flags) __INTRODUCED_IN(36);
+#endif /* __BIONIC_AVAILABILITY_GUARD(36) */
+
 
 __END_DECLS
diff --git a/libc/include/sys/mount.h b/libc/include/sys/mount.h
index aace205..0880c98 100644
--- a/libc/include/sys/mount.h
+++ b/libc/include/sys/mount.h
@@ -50,7 +50,7 @@
 #define UMOUNT_NOFOLLOW 8
 
 /**
- * [mount(2)](http://man7.org/linux/man-pages/man2/mount.2.html) mounts the filesystem `source` at
+ * [mount(2)](https://man7.org/linux/man-pages/man2/mount.2.html) mounts the filesystem `source` at
  * the mount point `target`.
  *
  * Returns 0 on success, and returns -1 and sets `errno` on failure.
@@ -58,7 +58,7 @@
 int mount(const char* __BIONIC_COMPLICATED_NULLNESS __source, const char* _Nonnull __target, const char* __BIONIC_COMPLICATED_NULLNESS __fs_type, unsigned long __flags, const void* _Nullable __data);
 
 /**
- * [umount(2)](http://man7.org/linux/man-pages/man2/umount.2.html) unmounts the filesystem at
+ * [umount(2)](https://man7.org/linux/man-pages/man2/umount.2.html) unmounts the filesystem at
  * the given mount point.
  *
  * Returns 0 on success, and returns -1 and sets `errno` on failure.
@@ -66,7 +66,7 @@
 int umount(const char* _Nonnull __target);
 
 /**
- * [umount2(2)](http://man7.org/linux/man-pages/man2/umount2.2.html) unmounts the filesystem at
+ * [umount2(2)](https://man7.org/linux/man-pages/man2/umount2.2.html) unmounts the filesystem at
  * the given mount point, according to the supplied flags.
  *
  * Returns 0 on success, and returns -1 and sets `errno` on failure.
diff --git a/libc/include/sys/msg.h b/libc/include/sys/msg.h
index ad481a0..8b619be 100644
--- a/libc/include/sys/msg.h
+++ b/libc/include/sys/msg.h
@@ -46,12 +46,16 @@
 typedef __kernel_ulong_t msglen_t;
 
 /** Not useful on Android; disallowed by SELinux. */
-int msgctl(int __msg_id, int __cmd, struct msqid_ds* _Nullable __buf) __INTRODUCED_IN(26);
+
+#if __BIONIC_AVAILABILITY_GUARD(26)
+int msgctl(int __msg_id, int __op, struct msqid_ds* _Nullable __buf) __INTRODUCED_IN(26);
 /** Not useful on Android; disallowed by SELinux. */
 int msgget(key_t __key, int __flags) __INTRODUCED_IN(26);
 /** Not useful on Android; disallowed by SELinux. */
 ssize_t msgrcv(int __msg_id, void* _Nonnull __msgbuf_ptr, size_t __size, long __type, int __flags) __INTRODUCED_IN(26);
 /** Not useful on Android; disallowed by SELinux. */
 int msgsnd(int __msg_id, const void* _Nonnull __msgbuf_ptr, size_t __size, int __flags) __INTRODUCED_IN(26);
+#endif /* __BIONIC_AVAILABILITY_GUARD(26) */
+
 
 __END_DECLS
diff --git a/libc/include/sys/param.h b/libc/include/sys/param.h
index 79ae067..99b6a07 100644
--- a/libc/include/sys/param.h
+++ b/libc/include/sys/param.h
@@ -33,16 +33,20 @@
  * @brief Various macros.
  */
 
+#include <sys/cdefs.h>
+
 #include <endian.h>
 #include <limits.h>
 #include <linux/param.h>
-#include <sys/cdefs.h>
 
 /** The unit of `st_blocks` in `struct stat`. */
 #define DEV_BSIZE 512
 
-/** A historical name for PATH_MAX. */
-#define MAXPATHLEN  PATH_MAX
+/** A historical name for PATH_MAX. Use PATH_MAX in new code. */
+#define MAXPATHLEN PATH_MAX
+
+/** A historical name for NGROUPS_MAX. Use NGROUPS_MAX in new code. */
+#define NGROUPS NGROUPS_MAX
 
 #define MAXSYMLINKS 8
 
diff --git a/libc/include/sys/personality.h b/libc/include/sys/personality.h
index 9eb992f..34d1a1a 100644
--- a/libc/include/sys/personality.h
+++ b/libc/include/sys/personality.h
@@ -39,7 +39,7 @@
 __BEGIN_DECLS
 
 /**
- * [personality(2)](http://man7.org/linux/man-pages/man2/personality.2.html) sets the calling
+ * [personality(2)](https://man7.org/linux/man-pages/man2/personality.2.html) sets the calling
  * process' personality.
  *
  * Returns the previous persona on success, and returns -1 and sets `errno` on failure.
diff --git a/libc/include/sys/pidfd.h b/libc/include/sys/pidfd.h
index 30455bb..aaf49c9 100644
--- a/libc/include/sys/pidfd.h
+++ b/libc/include/sys/pidfd.h
@@ -49,6 +49,8 @@
  *
  * Available since API level 31.
  */
+
+#if __BIONIC_AVAILABILITY_GUARD(31)
 int pidfd_open(pid_t __pid, unsigned int __flags) __INTRODUCED_IN(31);
 
 /**
@@ -72,5 +74,7 @@
  * Available since API level 31.
  */
 int pidfd_send_signal(int __pidfd, int __sig, siginfo_t * _Nullable __info, unsigned int __flags) __INTRODUCED_IN(31);
+#endif /* __BIONIC_AVAILABILITY_GUARD(31) */
+
 
 __END_DECLS
diff --git a/libc/include/sys/prctl.h b/libc/include/sys/prctl.h
index ff03c33..4e0b4b5 100644
--- a/libc/include/sys/prctl.h
+++ b/libc/include/sys/prctl.h
@@ -40,11 +40,11 @@
 __BEGIN_DECLS
 
 /**
- * [prctl(2)](http://man7.org/linux/man-pages/man2/prctl.2.html) performs a variety of
+ * [prctl(2)](https://man7.org/linux/man-pages/man2/prctl.2.html) performs a variety of
  * operations based on the `PR_` constant passed as the first argument.
  *
  * Returns -1 and sets `errno` on failure; success values vary by option.
  */
-int prctl(int __option, ...);
+int prctl(int __op, ...);
 
 __END_DECLS
diff --git a/libc/include/sys/ptrace.h b/libc/include/sys/ptrace.h
index 022fc3a..66b30a1 100644
--- a/libc/include/sys/ptrace.h
+++ b/libc/include/sys/ptrace.h
@@ -59,7 +59,7 @@
 #define PT_GETSIGINFO PTRACE_GETSIGINFO
 #define PT_SETSIGINFO PTRACE_SETSIGINFO
 
-long ptrace(int __request, ...);
+long ptrace(int __op, ...);
 
 __END_DECLS
 
diff --git a/libc/include/sys/quota.h b/libc/include/sys/quota.h
index 79c653d..af09674 100644
--- a/libc/include/sys/quota.h
+++ b/libc/include/sys/quota.h
@@ -45,12 +45,16 @@
 __BEGIN_DECLS
 
 /**
- * [quotactl(2)](http://man7.org/linux/man-pages/man2/quotactl.2.html) manipulates disk quotas.
+ * [quotactl(2)](https://man7.org/linux/man-pages/man2/quotactl.2.html) manipulates disk quotas.
  *
  * Returns 0 on success, and returns -1 and sets `errno` on failure.
  *
  * Available since API level 26.
  */
-int quotactl(int __cmd, const char* _Nullable __special, int __id, char* __BIONIC_COMPLICATED_NULLNESS __addr) __INTRODUCED_IN(26);
+
+#if __BIONIC_AVAILABILITY_GUARD(26)
+int quotactl(int __op, const char* _Nullable __special, int __id, char* __BIONIC_COMPLICATED_NULLNESS __addr) __INTRODUCED_IN(26);
+#endif /* __BIONIC_AVAILABILITY_GUARD(26) */
+
 
 __END_DECLS
diff --git a/libc/include/sys/random.h b/libc/include/sys/random.h
index 0251176..23d2c3a 100644
--- a/libc/include/sys/random.h
+++ b/libc/include/sys/random.h
@@ -38,22 +38,12 @@
 
 #include <linux/random.h>
 
+#include <bits/getentropy.h>
+
 __BEGIN_DECLS
 
 /**
- * [getentropy(3)](http://man7.org/linux/man-pages/man3/getentropy.3.html) fills the given buffer
- * with random bytes.
- *
- * Returns 0 on success, and returns -1 and sets `errno` on failure.
- *
- * Available since API level 28.
- *
- * See also arc4random_buf() which is available in all API levels.
- */
-int getentropy(void* _Nonnull __buffer, size_t __buffer_size) __wur __INTRODUCED_IN(28);
-
-/**
- * [getrandom(2)](http://man7.org/linux/man-pages/man2/getrandom.2.html) fills the given buffer
+ * [getrandom(2)](https://man7.org/linux/man-pages/man2/getrandom.2.html) fills the given buffer
  * with random bytes.
  *
  * Returns the number of bytes copied on success, and returns -1 and sets `errno` on failure.
@@ -62,6 +52,10 @@
  *
  * See also arc4random_buf() which is available in all API levels.
  */
-ssize_t getrandom(void* _Nonnull __buffer, size_t __buffer_size, unsigned int __flags) __wur __INTRODUCED_IN(28);
+
+#if __BIONIC_AVAILABILITY_GUARD(28)
+__nodiscard ssize_t getrandom(void* _Nonnull __buffer, size_t __buffer_size, unsigned int __flags) __INTRODUCED_IN(28);
+#endif /* __BIONIC_AVAILABILITY_GUARD(28) */
+
 
 __END_DECLS
diff --git a/libc/include/sys/reboot.h b/libc/include/sys/reboot.h
index 156d947..f4bc861 100644
--- a/libc/include/sys/reboot.h
+++ b/libc/include/sys/reboot.h
@@ -50,11 +50,11 @@
 #define RB_POWER_OFF LINUX_REBOOT_CMD_POWER_OFF
 
 /**
- * [reboot(2)](http://man7.org/linux/man-pages/man2/reboot.2.html) reboots the device.
+ * [reboot(2)](https://man7.org/linux/man-pages/man2/reboot.2.html) reboots the device.
  *
  * Does not return on successful reboot, returns 0 if CAD was successfully enabled/disabled,
  * and returns -1 and sets `errno` on failure.
  */
-int reboot(int __cmd);
+int reboot(int __op);
 
 __END_DECLS
diff --git a/libc/include/sys/resource.h b/libc/include/sys/resource.h
index ccb267d..05ef2c2 100644
--- a/libc/include/sys/resource.h
+++ b/libc/include/sys/resource.h
@@ -43,19 +43,23 @@
 typedef unsigned long rlim_t;
 typedef unsigned long long rlim64_t;
 
-int getrlimit(int __resource, struct rlimit* __limit);
-int setrlimit(int __resource, const struct rlimit* __limit);
+int getrlimit(int __resource, struct rlimit* _Nonnull __limit);
+int setrlimit(int __resource, const struct rlimit* _Nonnull __limit);
 
-int getrlimit64(int __resource, struct rlimit64* __limit) __INTRODUCED_IN(21);
-int setrlimit64(int __resource, const struct rlimit64* __limit) __INTRODUCED_IN(21);
+int getrlimit64(int __resource, struct rlimit64* _Nonnull __limit);
+int setrlimit64(int __resource, const struct rlimit64* _Nonnull __limit);
 
 int getpriority(int __which, id_t __who);
 int setpriority(int __which, id_t __who, int __priority);
 
-int getrusage(int __who, struct rusage* __usage);
+int getrusage(int __who, struct rusage* _Nonnull __usage);
 
-int prlimit(pid_t __pid, int __resource, const struct rlimit* __new_limit, struct rlimit* __old_limit) __INTRODUCED_IN_32(24) __INTRODUCED_IN_64(21);
-int prlimit64(pid_t __pid, int __resource, const struct rlimit64* __new_limit, struct rlimit64* __old_limit) __INTRODUCED_IN(21);
+
+#if (!defined(__LP64__) && __ANDROID_API__ >= 24) || (defined(__LP64__))
+int prlimit(pid_t __pid, int __resource, const struct rlimit* _Nullable __new_limit, struct rlimit* _Nullable __old_limit) __INTRODUCED_IN_32(24) __INTRODUCED_IN_64(21);
+#endif /* (!defined(__LP64__) && __ANDROID_API__ >= 24) || (defined(__LP64__)) */
+
+int prlimit64(pid_t __pid, int __resource, const struct rlimit64* _Nullable __new_limit, struct rlimit64* _Nullable __old_limit);
 
 __END_DECLS
 
diff --git a/libc/include/sys/select.h b/libc/include/sys/select.h
index 8c6c2ff..a7227b0 100644
--- a/libc/include/sys/select.h
+++ b/libc/include/sys/select.h
@@ -44,7 +44,7 @@
 typedef unsigned long fd_mask;
 
 /**
- * The limit on the largest fd that can be used with this API.
+ * The limit on the largest fd that can be used with fd_set.
  * Use <poll.h> instead.
  */
 #define FD_SETSIZE 1024
@@ -52,6 +52,9 @@
 
 /**
  * The type of a file descriptor set. Limited to 1024 fds.
+ * The underlying system calls do not have this limit,
+ * and callers can allocate their own sets with calloc().
+ *
  * Use <poll.h> instead.
  */
 typedef struct {
@@ -60,34 +63,31 @@
 
 #define __FDELT(fd) ((fd) / NFDBITS)
 #define __FDMASK(fd) (1UL << ((fd) % NFDBITS))
-#define __FDS_BITS(type,set) (__BIONIC_CAST(static_cast, type, set)->fds_bits)
+#define __FDS_BITS(type, set) (__BIONIC_CAST(static_cast, type, set)->fds_bits)
 
-/* Inline loop so we don't have to declare memset. */
-#define FD_ZERO(set) \
-  do { \
-    size_t __i; \
-    for (__i = 0; __i < sizeof(fd_set)/sizeof(fd_mask); ++__i) { \
-      (set)->fds_bits[__i] = 0; \
-    } \
-  } while (0)
+void __FD_CLR_chk(int, fd_set* _Nonnull , size_t);
+void __FD_SET_chk(int, fd_set* _Nonnull, size_t);
+int __FD_ISSET_chk(int, const fd_set* _Nonnull, size_t);
 
-void __FD_CLR_chk(int, fd_set* _Nonnull , size_t) __INTRODUCED_IN(21);
-void __FD_SET_chk(int, fd_set* _Nonnull, size_t) __INTRODUCED_IN(21);
-int __FD_ISSET_chk(int, const fd_set* _Nonnull, size_t) __INTRODUCED_IN(21);
+/** FD_CLR() with no bounds checking for users that allocated their own set. */
+#define __FD_CLR(fd, set) (__FDS_BITS(fd_set*, set)[__FDELT(fd)] &= ~__FDMASK(fd))
+/** FD_SET() with no bounds checking for users that allocated their own set. */
+#define __FD_SET(fd, set) (__FDS_BITS(fd_set*, set)[__FDELT(fd)] |= __FDMASK(fd))
+/** FD_ISSET() with no bounds checking for users that allocated their own set. */
+#define __FD_ISSET(fd, set) ((__FDS_BITS(const fd_set*, set)[__FDELT(fd)] & __FDMASK(fd)) != 0)
 
-#define __FD_CLR(fd, set) (__FDS_BITS(fd_set*,set)[__FDELT(fd)] &= ~__FDMASK(fd))
-#define __FD_SET(fd, set) (__FDS_BITS(fd_set*,set)[__FDELT(fd)] |= __FDMASK(fd))
-#define __FD_ISSET(fd, set) ((__FDS_BITS(const fd_set*,set)[__FDELT(fd)] & __FDMASK(fd)) != 0)
+/** Removes all 1024 fds from the given set. Use <poll.h> instead. */
+#define FD_ZERO(set) __builtin_memset(set, 0, sizeof(*__BIONIC_CAST(static_cast, const fd_set*, set)))
 
-/** Removes `fd` from the given set. Use <poll.h> instead. */
+/** Removes `fd` from the given set. Limited to fds under 1024. Use <poll.h> instead. */
 #define FD_CLR(fd, set) __FD_CLR_chk(fd, set, __bos(set))
-/** Adds `fd` to the given set. Use <poll.h> instead. */
+/** Adds `fd` to the given set. Limited to fds under 1024. Use <poll.h> instead. */
 #define FD_SET(fd, set) __FD_SET_chk(fd, set, __bos(set))
-/** Tests whether `fd` is in the given set. Use <poll.h> instead. */
+/** Tests whether `fd` is in the given set. Limited to fds under 1024. Use <poll.h> instead. */
 #define FD_ISSET(fd, set) __FD_ISSET_chk(fd, set, __bos(set))
 
 /**
- * [select(2)](http://man7.org/linux/man-pages/man2/select.2.html) waits on a
+ * [select(2)](https://man7.org/linux/man-pages/man2/select.2.html) waits on a
  * set of file descriptors.
  *
  * Use poll() instead.
@@ -98,7 +98,7 @@
 int select(int __max_fd_plus_one, fd_set* _Nullable __read_fds, fd_set* _Nullable __write_fds, fd_set* _Nullable __exception_fds, struct timeval* _Nullable __timeout);
 
 /**
- * [pselect(2)](http://man7.org/linux/man-pages/man2/select.2.html) waits on a
+ * [pselect(2)](https://man7.org/linux/man-pages/man2/select.2.html) waits on a
  * set of file descriptors.
  *
  * Use ppoll() instead.
@@ -109,7 +109,7 @@
 int pselect(int __max_fd_plus_one, fd_set* _Nullable __read_fds, fd_set* _Nullable __write_fds, fd_set* _Nullable __exception_fds, const struct timespec* _Nullable __timeout, const sigset_t* _Nullable __mask);
 
 /**
- * [pselect64(2)](http://man7.org/linux/man-pages/man2/select.2.html) waits on a
+ * [pselect64(2)](https://man7.org/linux/man-pages/man2/select.2.html) waits on a
  * set of file descriptors.
  *
  * Use ppoll64() instead.
@@ -119,6 +119,10 @@
  *
  * Available since API level 28.
  */
+
+#if __BIONIC_AVAILABILITY_GUARD(28)
 int pselect64(int __max_fd_plus_one, fd_set* _Nullable __read_fds, fd_set* _Nullable __write_fds, fd_set* _Nullable __exception_fds, const struct timespec* _Nullable __timeout, const sigset64_t* _Nullable __mask) __INTRODUCED_IN(28);
+#endif /* __BIONIC_AVAILABILITY_GUARD(28) */
+
 
 __END_DECLS
diff --git a/libc/include/sys/sem.h b/libc/include/sys/sem.h
index cd62242..72f567e 100644
--- a/libc/include/sys/sem.h
+++ b/libc/include/sys/sem.h
@@ -45,18 +45,26 @@
 
 union semun {
   int val;
-  struct semid_ds* buf;
-  unsigned short* array;
-  struct seminfo* __buf;
-  void* __pad;
+  struct semid_ds* _Nullable buf;
+  unsigned short* _Nullable array;
+  struct seminfo* _Nullable __buf;
+  void* _Nullable __pad;
 };
 
-int semctl(int __sem_id, int __sem_num, int __cmd, ...) __INTRODUCED_IN(26);
+
+#if __BIONIC_AVAILABILITY_GUARD(26)
+int semctl(int __sem_id, int __sem_num, int __op, ...) __INTRODUCED_IN(26);
 int semget(key_t __key, int __sem_count, int __flags) __INTRODUCED_IN(26);
-int semop(int __sem_id, struct sembuf* __ops, size_t __op_count) __INTRODUCED_IN(26);
+int semop(int __sem_id, struct sembuf* _Nonnull __ops, size_t __op_count) __INTRODUCED_IN(26);
+#endif /* __BIONIC_AVAILABILITY_GUARD(26) */
+
 
 #if defined(__USE_GNU)
-int semtimedop(int __sem_id, struct sembuf* __ops, size_t __op_count, const struct timespec* __timeout) __INTRODUCED_IN(26);
+
+#if __BIONIC_AVAILABILITY_GUARD(26)
+int semtimedop(int __sem_id, struct sembuf* _Nonnull __ops, size_t __op_count, const struct timespec* _Nullable __timeout) __INTRODUCED_IN(26);
+#endif /* __BIONIC_AVAILABILITY_GUARD(26) */
+
 #endif
 
 __END_DECLS
diff --git a/libc/include/sys/sendfile.h b/libc/include/sys/sendfile.h
index 4b00d5d..ac623e7 100644
--- a/libc/include/sys/sendfile.h
+++ b/libc/include/sys/sendfile.h
@@ -38,25 +38,23 @@
 
 __BEGIN_DECLS
 
-/* See https://android.googlesource.com/platform/bionic/+/master/docs/32-bit-abi.md */
+/* See https://android.googlesource.com/platform/bionic/+/main/docs/32-bit-abi.md */
 #if defined(__USE_FILE_OFFSET64)
-ssize_t sendfile(int __out_fd, int __in_fd, off_t* _Nullable __offset, size_t __count) __RENAME(sendfile64) __INTRODUCED_IN(21);
+ssize_t sendfile(int __out_fd, int __in_fd, off_t* _Nullable __offset, size_t __count) __RENAME(sendfile64);
 #else
 /**
- * [sendfile(2)](http://man7.org/linux/man-pages/man2/sendfile.2.html) copies data directly
+ * [sendfile(2)](https://man7.org/linux/man-pages/man2/sendfile.2.html) copies data directly
  * between two file descriptors.
  *
  * Returns the number of bytes copied on success, and returns -1 and sets `errno` on failure.
- *
- * Available since API level 21.
  */
 ssize_t sendfile(int __out_fd, int __in_fd, off_t* _Nullable __offset, size_t __count);
 #endif
 
 /**
  * Like sendfile() but allows using a 64-bit offset
- * even from a 32-bit process without `__FILE_OFFSET_BITS=64`.
+ * even from a 32-bit process without `_FILE_OFFSET_BITS=64`.
  */
-ssize_t sendfile64(int __out_fd, int __in_fd, off64_t* _Nullable __offset, size_t __count) __INTRODUCED_IN(21);
+ssize_t sendfile64(int __out_fd, int __in_fd, off64_t* _Nullable __offset, size_t __count);
 
 __END_DECLS
diff --git a/libc/include/sys/shm.h b/libc/include/sys/shm.h
index a3f84d3..a960781 100644
--- a/libc/include/sys/shm.h
+++ b/libc/include/sys/shm.h
@@ -36,23 +36,28 @@
 #include <sys/cdefs.h>
 #include <sys/ipc.h>
 #include <sys/types.h>
+#include <unistd.h>
 
 #include <linux/shm.h>
 
 #define shmid_ds shmid64_ds
-#define SHMLBA 4096
+#define SHMLBA getpagesize()
 
 __BEGIN_DECLS
 
 typedef unsigned long shmatt_t;
 
 /** Not useful on Android; disallowed by SELinux. */
-void* shmat(int __shm_id, const void* __addr, int __flags) __INTRODUCED_IN(26);
+
+#if __BIONIC_AVAILABILITY_GUARD(26)
+void* _Nonnull shmat(int __shm_id, const void* _Nullable __addr, int __flags) __INTRODUCED_IN(26);
 /** Not useful on Android; disallowed by SELinux. */
-int shmctl(int __shm_id, int __cmd, struct shmid_ds* __buf) __INTRODUCED_IN(26);
+int shmctl(int __shm_id, int __op, struct shmid_ds* _Nullable __buf) __INTRODUCED_IN(26);
 /** Not useful on Android; disallowed by SELinux. */
-int shmdt(const void* __addr) __INTRODUCED_IN(26);
+int shmdt(const void* _Nonnull __addr) __INTRODUCED_IN(26);
 /** Not useful on Android; disallowed by SELinux. */
 int shmget(key_t __key, size_t __size, int __flags) __INTRODUCED_IN(26);
+#endif /* __BIONIC_AVAILABILITY_GUARD(26) */
+
 
 __END_DECLS
diff --git a/libc/include/sys/signalfd.h b/libc/include/sys/signalfd.h
index f669cc8..eaea525 100644
--- a/libc/include/sys/signalfd.h
+++ b/libc/include/sys/signalfd.h
@@ -41,18 +41,20 @@
 __BEGIN_DECLS
 
 /**
- * [signalfd(2)](http://man7.org/linux/man-pages/man2/signalfd.2.html) creates/manipulates a
+ * [signalfd(2)](https://man7.org/linux/man-pages/man2/signalfd.2.html) creates/manipulates a
  * file descriptor for reading signal events.
  *
  * Returns the file descriptor on success, and returns -1 and sets `errno` on failure.
- *
- * Available since API level 18.
  */
-int signalfd(int __fd, const sigset_t* _Nonnull __mask, int __flags) __INTRODUCED_IN(18);
+int signalfd(int __fd, const sigset_t* _Nonnull __mask, int __flags);
 
 /**
  * Like signalfd() but allows setting a signal mask with RT signals even from a 32-bit process.
  */
+
+#if __BIONIC_AVAILABILITY_GUARD(28)
 int signalfd64(int __fd, const sigset64_t* _Nonnull __mask, int __flags) __INTRODUCED_IN(28);
+#endif /* __BIONIC_AVAILABILITY_GUARD(28) */
+
 
 __END_DECLS
diff --git a/libc/include/sys/socket.h b/libc/include/sys/socket.h
index 41c5a9a..47ddce0 100644
--- a/libc/include/sys/socket.h
+++ b/libc/include/sys/socket.h
@@ -39,6 +39,7 @@
 #include <linux/types.h>
 #include <linux/compiler.h>
 
+#include <bits/sockaddr_storage.h>
 #include <bits/sa_family_t.h>
 
 __BEGIN_DECLS
@@ -70,15 +71,8 @@
   char sa_data[14];
 };
 
-struct sockaddr_storage {
-  union {
-    struct {
-      sa_family_t ss_family;
-      char __data[128 - sizeof(sa_family_t)];
-    };
-    void* __align;
-  };
-};
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wnullability-completeness"
 
 struct linger {
   int l_onoff;
@@ -106,6 +100,8 @@
   int cmsg_type;
 };
 
+#pragma clang diagnostic pop
+
 #define CMSG_NXTHDR(mhdr, cmsg) __cmsg_nxthdr((mhdr), (cmsg))
 #define CMSG_ALIGN(len) ( ((len)+sizeof(long)-1) & ~(sizeof(long)-1) )
 #define CMSG_DATA(cmsg) (((unsigned char*)(cmsg) + CMSG_ALIGN(sizeof(struct cmsghdr))))
@@ -116,7 +112,7 @@
    ? (struct cmsghdr*) (msg)->msg_control : (struct cmsghdr*) NULL)
 #define CMSG_OK(mhdr, cmsg) ((cmsg)->cmsg_len >= sizeof(struct cmsghdr) &&   (cmsg)->cmsg_len <= (unsigned long)   ((mhdr)->msg_controllen -   ((char*)(cmsg) - (char*)(mhdr)->msg_control)))
 
-struct cmsghdr* __cmsg_nxthdr(struct msghdr* __msg, struct cmsghdr* __cmsg) __INTRODUCED_IN(21);
+struct cmsghdr* _Nullable __cmsg_nxthdr(struct msghdr* _Nonnull __msg, struct cmsghdr* _Nonnull __cmsg);
 
 #define SCM_RIGHTS 0x01
 #define SCM_CREDENTIALS 0x02
@@ -281,42 +277,33 @@
 
 #define IPX_TYPE 1
 
-#ifdef __i386__
-# define __socketcall extern __attribute__((__cdecl__))
-#else
-# define __socketcall extern
-#endif
+int accept(int __fd, struct sockaddr* _Nullable __addr, socklen_t* _Nullable __addr_length);
+int accept4(int __fd, struct sockaddr* _Nullable __addr, socklen_t* _Nullable __addr_length, int __flags);
+int bind(int __fd, const struct sockaddr* _Nonnull __addr, socklen_t __addr_length);
+int connect(int __fd, const struct sockaddr* _Nonnull __addr, socklen_t __addr_length);
+int getpeername(int __fd, struct sockaddr* _Nonnull __addr, socklen_t* _Nonnull __addr_length);
+int getsockname(int __fd, struct sockaddr* _Nonnull __addr, socklen_t* _Nonnull __addr_length);
+int getsockopt(int __fd, int __level, int __option, void* _Nullable __value, socklen_t* _Nonnull __value_length);
+int listen(int __fd, int __backlog);
+int recvmmsg(int __fd, struct mmsghdr* _Nonnull __msgs, unsigned int __msg_count, int __flags, const struct timespec* _Nullable __timeout);
+ssize_t recvmsg(int __fd, struct msghdr* _Nonnull __msg, int __flags);
+int sendmmsg(int __fd, const struct mmsghdr* _Nonnull __msgs, unsigned int __msg_count, int __flags);
+ssize_t sendmsg(int __fd, const struct msghdr* _Nonnull __msg, int __flags);
+int setsockopt(int __fd, int __level, int __option, const void* _Nullable __value, socklen_t __value_length);
+int shutdown(int __fd, int __how);
+int socket(int __af, int __type, int __protocol);
+int socketpair(int __af, int __type, int __protocol, int __fds[_Nonnull 2]);
 
-__socketcall int accept(int __fd, struct sockaddr* __addr, socklen_t* __addr_length);
-__socketcall int accept4(int __fd, struct sockaddr* __addr, socklen_t* __addr_length, int __flags) __INTRODUCED_IN(21);
-__socketcall int bind(int __fd, const struct sockaddr* __addr, socklen_t __addr_length);
-__socketcall int connect(int __fd, const struct sockaddr* __addr, socklen_t __addr_length);
-__socketcall int getpeername(int __fd, struct sockaddr* __addr, socklen_t* __addr_length);
-__socketcall int getsockname(int __fd, struct sockaddr* __addr, socklen_t* __addr_length);
-__socketcall int getsockopt(int __fd, int __level, int __option, void* __value, socklen_t* __value_length);
-__socketcall int listen(int __fd, int __backlog);
-__socketcall int recvmmsg(int __fd, struct mmsghdr* __msgs, unsigned int __msg_count, int __flags, const struct timespec* __timeout)
-  __INTRODUCED_IN(21);
-__socketcall ssize_t recvmsg(int __fd, struct msghdr* __msg, int __flags);
-__socketcall int sendmmsg(int __fd, const struct mmsghdr* __msgs, unsigned int __msg_count, int __flags) __INTRODUCED_IN(21);
-__socketcall ssize_t sendmsg(int __fd, const struct msghdr* __msg, int __flags);
-__socketcall int setsockopt(int __fd, int __level, int __option, const void* __value, socklen_t __value_length);
-__socketcall int shutdown(int __fd, int __how);
-__socketcall int socket(int __af, int __type, int __protocol);
-__socketcall int socketpair(int __af, int __type, int __protocol, int __fds[2]);
+ssize_t recv(int __fd, void* _Nullable __buf, size_t __n, int __flags);
+ssize_t send(int __fd, const void* _Nonnull __buf, size_t __n, int __flags);
 
-ssize_t recv(int __fd, void* __buf, size_t __n, int __flags);
-ssize_t send(int __fd, const void* __buf, size_t __n, int __flags);
-
-__socketcall ssize_t sendto(int __fd, const void* __buf, size_t __n, int __flags, const struct sockaddr* __dst_addr, socklen_t __dst_addr_length);
-__socketcall ssize_t recvfrom(int __fd, void* __buf, size_t __n, int __flags, struct sockaddr* __src_addr, socklen_t* __src_addr_length);
+ssize_t sendto(int __fd, const void* _Nonnull __buf, size_t __n, int __flags, const struct sockaddr* _Nullable __dst_addr, socklen_t __dst_addr_length);
+ssize_t recvfrom(int __fd, void* _Nullable __buf, size_t __n, int __flags, struct sockaddr* _Nullable __src_addr, socklen_t* _Nullable __src_addr_length);
 
 #if defined(__BIONIC_INCLUDE_FORTIFY_HEADERS)
 #include <bits/fortify/socket.h>
 #endif
 
-#undef __socketcall
-
 __END_DECLS
 
 #endif
diff --git a/libc/include/sys/stat.h b/libc/include/sys/stat.h
index 54621b7..0b4b248 100644
--- a/libc/include/sys/stat.h
+++ b/libc/include/sys/stat.h
@@ -33,9 +33,10 @@
  * @brief File status.
  */
 
+#include <sys/cdefs.h>
+
 #include <bits/timespec.h>
 #include <linux/stat.h>
-#include <sys/cdefs.h>
 #include <sys/types.h>
 
 __BEGIN_DECLS
@@ -99,7 +100,13 @@
 
 #endif
 
+/** The file information returned by fstat()/fstatat()/lstat()/stat(). */
 struct stat { __STAT64_BODY };
+
+/**
+ * A synonym for `struct stat` on Android,
+ * provided for source compatibility with other systems.
+ */
 struct stat64 { __STAT64_BODY };
 
 #undef __STAT64_BODY
@@ -136,32 +143,153 @@
 #define S_TYPEISSHM(__sb) 0
 #define S_TYPEISTMO(__sb) 0
 
+/**
+ * [chmod(2)](https://man7.org/linux/man-pages/man2/chmod.2.html)
+ * changes the mode of a file given a path.
+ *
+ * Returns 0 on success and returns -1 and sets `errno` on failure.
+ */
 int chmod(const char* _Nonnull __path, mode_t __mode);
+
+/**
+ * [fchmod(2)](https://man7.org/linux/man-pages/man2/fchmod.2.html)
+ * changes the mode of a file given a file descriptor.
+ *
+ * Returns 0 on success and returns -1 and sets `errno` on failure.
+ */
 int fchmod(int __fd, mode_t __mode);
+
+/**
+ * [fchmodat(2)](https://man7.org/linux/man-pages/man2/fchmodat.2.html)
+ * changes the mode of a file.
+ *
+ * Returns 0 on success and returns -1 and sets `errno` on failure.
+ */
+int fchmodat(int __dir_fd, const char* _Nonnull __path, mode_t __mode, int __flags);
+
+/**
+ * [chmod(2)](https://man7.org/linux/man-pages/man2/chmod.2.html)
+ * changes the mode of a file given a path, without following symlinks.
+ *
+ * Equivalent to `fchmodat(AT_FDCWD, path, mode, AT_SYMLINK_NOFOLLOW)`.
+ *
+ * Available since API 36.
+ *
+ * Returns 0 on success and returns -1 and sets `errno` on failure.
+ */
+
+#if __BIONIC_AVAILABILITY_GUARD(36)
+int lchmod(const char* _Nonnull __path, mode_t __mode) __INTRODUCED_IN(36);
+#endif /* __BIONIC_AVAILABILITY_GUARD(36) */
+
+
+/**
+ * [mkdir(2)](https://man7.org/linux/man-pages/man2/mkdir.2.html)
+ * creates a directory.
+ *
+ * Returns 0 on success and returns -1 and sets `errno` on failure.
+ */
 int mkdir(const char* _Nonnull __path, mode_t __mode);
 
-int fstat(int __fd, struct stat* _Nonnull __buf);
-int fstat64(int __fd, struct stat64* _Nonnull __buf) __RENAME_STAT64(fstat, 3, 21);
-int fstatat(int __dir_fd, const char* _Nonnull __path, struct stat* _Nonnull __buf, int __flags);
-int fstatat64(int __dir_fd, const char* _Nonnull __path, struct stat64* _Nonnull __buf, int __flags) __RENAME_STAT64(fstatat, 3, 21);
-int lstat(const char* _Nonnull __path, struct stat* _Nonnull __buf);
-int lstat64(const char* _Nonnull __path, struct stat64* _Nonnull __buf) __RENAME_STAT64(lstat, 3, 21);
-int stat(const char* _Nonnull __path, struct stat* _Nonnull __buf);
-int stat64(const char* _Nonnull __path, struct stat64* _Nonnull __buf) __RENAME_STAT64(stat, 3, 21);
+/**
+ * [mkdirat(2)](https://man7.org/linux/man-pages/man2/mkdirat.2.html)
+ * creates a directory.
+ *
+ * Returns 0 on success and returns -1 and sets `errno` on failure.
+ */
+int mkdirat(int __dir_fd, const char* _Nonnull __path, mode_t __mode);
 
+/**
+ * [fstat(2)](https://man7.org/linux/man-pages/man2/fstat.2.html)
+ * gets file status given a file descriptor.
+ *
+ * Returns 0 on success and returns -1 and sets `errno` on failure.
+ */
+int fstat(int __fd, struct stat* _Nonnull __buf);
+
+/** An alias for fstat(). */
+int fstat64(int __fd, struct stat64* _Nonnull __buf);
+
+/**
+ * [fstatat(2)](https://man7.org/linux/man-pages/man2/fstatat.2.html)
+ * gets file status.
+ *
+ * Returns 0 on success and returns -1 and sets `errno` on failure.
+ */
+int fstatat(int __dir_fd, const char* _Nonnull __path, struct stat* _Nonnull __buf, int __flags);
+
+/** An alias for fstatat(). */
+int fstatat64(int __dir_fd, const char* _Nonnull __path, struct stat64* _Nonnull __buf, int __flags);
+
+/**
+ * [lstat(2)](https://man7.org/linux/man-pages/man2/lstat.2.html)
+ * gets file status given a path, without following symlinks.
+ *
+ * Returns 0 on success and returns -1 and sets `errno` on failure.
+ */
+int lstat(const char* _Nonnull __path, struct stat* _Nonnull __buf);
+
+/** An alias for lstat(). */
+int lstat64(const char* _Nonnull __path, struct stat64* _Nonnull __buf);
+
+/**
+ * [stat(2)](https://man7.org/linux/man-pages/man2/stat.2.html)
+ * gets file status given a path.
+ *
+ * Returns 0 on success and returns -1 and sets `errno` on failure.
+ */
+int stat(const char* _Nonnull __path, struct stat* _Nonnull __buf);
+
+/** An alias for stat(). */
+int stat64(const char* _Nonnull __path, struct stat64* _Nonnull __buf);
+
+/**
+ * [mknod(2)](https://man7.org/linux/man-pages/man2/mknod.2.html)
+ * creates a directory, special, or regular file.
+ *
+ * Returns 0 on success and returns -1 and sets `errno` on failure.
+ */
 int mknod(const char* _Nonnull __path, mode_t __mode, dev_t __dev);
+
+/**
+ * [mknodat(2)](https://man7.org/linux/man-pages/man2/mknodat.2.html)
+ * creates a directory, special, or regular file.
+ *
+ * Returns 0 on success and returns -1 and sets `errno` on failure.
+ */
+int mknodat(int __dir_fd, const char* _Nonnull __path, mode_t __mode, dev_t __dev);
+
+/**
+ * [umask(2)](https://man7.org/linux/man-pages/man2/umask.2.html)
+ * gets and sets the process-wide file mode creation mask.
+ *
+ * Returns the previous file mode creation mask.
+ */
 mode_t umask(mode_t __mask);
 
 #if defined(__BIONIC_INCLUDE_FORTIFY_HEADERS)
 #include <bits/fortify/stat.h>
 #endif
 
-int mkfifo(const char* _Nonnull __path, mode_t __mode) __INTRODUCED_IN(21);
-int mkfifoat(int __dir_fd, const char* _Nonnull __path, mode_t __mode) __INTRODUCED_IN(23);
+/**
+ * [mkfifo(2)](https://man7.org/linux/man-pages/man2/mkfifo.2.html)
+ * creates a FIFO.
+ *
+ * Returns 0 on success and returns -1 and sets `errno` on failure.
+ */
+int mkfifo(const char* _Nonnull __path, mode_t __mode);
 
-int fchmodat(int __dir_fd, const char* _Nonnull __path, mode_t __mode, int __flags);
-int mkdirat(int __dir_fd, const char* _Nonnull __path, mode_t __mode);
-int mknodat(int __dir_fd, const char* _Nonnull __path, mode_t __mode, dev_t __dev) __INTRODUCED_IN(21);
+/**
+ * [mkfifoat(2)](https://man7.org/linux/man-pages/man2/mkfifoat.2.html)
+ * creates a FIFO.
+ *
+ * Returns 0 on success and returns -1 and sets `errno` on failure.
+ */
+
+#if __BIONIC_AVAILABILITY_GUARD(23)
+int mkfifoat(int __dir_fd, const char* _Nonnull __path, mode_t __mode) __INTRODUCED_IN(23);
+#endif /* __BIONIC_AVAILABILITY_GUARD(23) */
+
 
 /**
  * Used in the tv_nsec field of an argument to utimensat()/futimens()
@@ -200,21 +328,23 @@
  * See also UTIME_NOW and UTIME_OMIT.
  *
  * Returns 0 on success and returns -1 and sets `errno` on failure.
- *
- * Available since API level 19.
  */
-int futimens(int __fd, const struct timespec __times[_Nullable 2]) __INTRODUCED_IN(19);
+int futimens(int __fd, const struct timespec __times[_Nullable 2]);
 
 #if defined(__USE_GNU)
 /**
- * [statx(2)](http://man7.org/linux/man-pages/man2/statx.2.html) returns
+ * [statx(2)](https://man7.org/linux/man-pages/man2/statx.2.html) returns
  * extended file status information.
  *
  * Returns 0 on success and returns -1 and sets `errno` on failure.
  *
  * Available since API level 30.
  */
-int statx(int __dir_fd, const char* _Nonnull __path, int __flags, unsigned __mask, struct statx* _Nonnull __buf) __INTRODUCED_IN(30);
+
+#if __BIONIC_AVAILABILITY_GUARD(30)
+int statx(int __dir_fd, const char* _Nullable __path, int __flags, unsigned __mask, struct statx* _Nonnull __buf) __INTRODUCED_IN(30);
+#endif /* __BIONIC_AVAILABILITY_GUARD(30) */
+
 #endif
 
 __END_DECLS
diff --git a/libc/include/sys/statvfs.h b/libc/include/sys/statvfs.h
index 793ee13..860824b 100644
--- a/libc/include/sys/statvfs.h
+++ b/libc/include/sys/statvfs.h
@@ -21,8 +21,9 @@
  * @brief Filesystem statistics.
  */
 
-#include <stdint.h>
 #include <sys/cdefs.h>
+
+#include <stdint.h>
 #include <sys/types.h>
 
 __BEGIN_DECLS
@@ -88,30 +89,29 @@
 /** Flag for `f_flag` in `struct statvfs`: see `MS_RELATIME`. */
 #define ST_RELATIME    0x1000
 
+/** Flag for `f_flag` in `struct statvfs`: don't follow symlinks. */
+#define ST_NOSYMFOLLOW 0x2000
+
 /**
- * [statvfs(3)](http://man7.org/linux/man-pages/man3/statvfs.3.html)
+ * [statvfs(3)](https://man7.org/linux/man-pages/man3/statvfs.3.html)
  * queries filesystem statistics for the given path.
  *
  * Returns 0 on success, and returns -1 and sets `errno` on failure.
- *
- * Available since API level 19.
  */
-int statvfs(const char* __path, struct statvfs* __buf) __INTRODUCED_IN(19);
+int statvfs(const char* _Nonnull __path, struct statvfs* _Nonnull __buf);
 
 /**
- * [fstatvfs(3)](http://man7.org/linux/man-pages/man3/fstatvfs.3.html)
+ * [fstatvfs(3)](https://man7.org/linux/man-pages/man3/fstatvfs.3.html)
  * queries filesystem statistics for the given file descriptor.
  *
  * Returns 0 on success, and returns -1 and sets `errno` on failure.
- *
- * Available since API level 19.
  */
-int fstatvfs(int __fd, struct statvfs* __buf) __INTRODUCED_IN(19);
+int fstatvfs(int __fd, struct statvfs* _Nonnull __buf);
 
 /** Equivalent to statvfs() . */
-int statvfs64(const char* __path, struct statvfs64* __buf) __INTRODUCED_IN(21);
+int statvfs64(const char* _Nonnull __path, struct statvfs64* _Nonnull __buf);
 
 /** Equivalent to fstatvfs(). */
-int fstatvfs64(int __fd, struct statvfs64* __buf) __INTRODUCED_IN(21);
+int fstatvfs64(int __fd, struct statvfs64* _Nonnull __buf);
 
 __END_DECLS
diff --git a/libc/include/sys/swap.h b/libc/include/sys/swap.h
index 9d016d4..2aaf86e 100644
--- a/libc/include/sys/swap.h
+++ b/libc/include/sys/swap.h
@@ -52,21 +52,17 @@
 #define SWAP_FLAG_PRIO_SHIFT 0
 
 /**
- * [swapon(2)](http://man7.org/linux/man-pages/man2/swapon.2.html) enables swapping.
+ * [swapon(2)](https://man7.org/linux/man-pages/man2/swapon.2.html) enables swapping.
  *
  * Returns 0 on success, and returns -1 and sets `errno` on failure.
- *
- * Available since API level 19.
  */
-int swapon(const char* _Nonnull __path,  int __flags) __INTRODUCED_IN(19);
+int swapon(const char* _Nonnull __path,  int __flags);
 
 /**
- * [swapoff(2)](http://man7.org/linux/man-pages/man2/swapoff.2.html) disables swapping.
+ * [swapoff(2)](https://man7.org/linux/man-pages/man2/swapoff.2.html) disables swapping.
  *
  * Returns 0 on success, and returns -1 and sets `errno` on failure.
- *
- * Available since API level 19.
  */
-int swapoff(const char* _Nonnull __path) __INTRODUCED_IN(19);
+int swapoff(const char* _Nonnull __path);
 
 __END_DECLS
diff --git a/libc/include/sys/syscall.h b/libc/include/sys/syscall.h
index a49323d..9341ffb 100644
--- a/libc/include/sys/syscall.h
+++ b/libc/include/sys/syscall.h
@@ -29,9 +29,10 @@
 #ifndef _SYS_SYSCALL_H_
 #define _SYS_SYSCALL_H_
 
+#include <sys/cdefs.h>
+
 #include <asm/unistd.h> /* Linux kernel __NR_* names. */
 #include <bits/glibc-syscalls.h> /* glibc-compatible SYS_* aliases. */
-#include <sys/cdefs.h>
 
 /* The syscall function itself is declared in <unistd.h>, not here. */
 
diff --git a/libc/include/sys/sysinfo.h b/libc/include/sys/sysinfo.h
index cae5c49..ed6a007 100644
--- a/libc/include/sys/sysinfo.h
+++ b/libc/include/sys/sysinfo.h
@@ -39,24 +39,26 @@
 __BEGIN_DECLS
 
 /**
- * [sysinfo(2)](http://man7.org/linux/man-pages/man2/sysinfo.2.html) queries system information.
+ * [sysinfo(2)](https://man7.org/linux/man-pages/man2/sysinfo.2.html) queries system information.
  *
  * Returns 0 on success, and returns -1 and sets `errno` on failure.
  */
 int sysinfo(struct sysinfo* _Nonnull __info);
 
 /**
- * [get_nprocs_conf(3)](http://man7.org/linux/man-pages/man3/get_nprocs_conf.3.html) returns
+ * [get_nprocs_conf(3)](https://man7.org/linux/man-pages/man3/get_nprocs_conf.3.html) returns
  * the total number of processors in the system.
  *
  * Available since API level 23.
  *
  * See also sysconf().
  */
+
+#if __BIONIC_AVAILABILITY_GUARD(23)
 int get_nprocs_conf(void) __INTRODUCED_IN(23);
 
 /**
- * [get_nprocs(3)](http://man7.org/linux/man-pages/man3/get_nprocs.3.html) returns
+ * [get_nprocs(3)](https://man7.org/linux/man-pages/man3/get_nprocs.3.html) returns
  * the number of processors in the system that are currently on-line.
  *
  * Available since API level 23.
@@ -66,7 +68,7 @@
 int get_nprocs(void) __INTRODUCED_IN(23);
 
 /**
- * [get_phys_pages(3)](http://man7.org/linux/man-pages/man3/get_phys_pages.3.html) returns
+ * [get_phys_pages(3)](https://man7.org/linux/man-pages/man3/get_phys_pages.3.html) returns
  * the total number of physical pages in the system.
  *
  * Available since API level 23.
@@ -76,7 +78,7 @@
 long get_phys_pages(void) __INTRODUCED_IN(23);
 
 /**
- * [get_avphys_pages(3)](http://man7.org/linux/man-pages/man3/get_avphys_pages.3.html) returns
+ * [get_avphys_pages(3)](https://man7.org/linux/man-pages/man3/get_avphys_pages.3.html) returns
  * the number of physical pages in the system that are currently available.
  *
  * Available since API level 23.
@@ -84,5 +86,7 @@
  * See also sysconf().
  */
 long get_avphys_pages(void) __INTRODUCED_IN(23);
+#endif /* __BIONIC_AVAILABILITY_GUARD(23) */
+
 
 __END_DECLS
diff --git a/libc/include/sys/system_properties.h b/libc/include/sys/system_properties.h
index a2e1923..1303079 100644
--- a/libc/include/sys/system_properties.h
+++ b/libc/include/sys/system_properties.h
@@ -26,8 +26,12 @@
  * SUCH DAMAGE.
  */
 
-#ifndef _INCLUDE_SYS_SYSTEM_PROPERTIES_H
-#define _INCLUDE_SYS_SYSTEM_PROPERTIES_H
+#pragma once
+
+/**
+ * @file system_properties.h
+ * @brief System properties.
+ */
 
 #include <sys/cdefs.h>
 #include <stdbool.h>
@@ -36,43 +40,60 @@
 
 __BEGIN_DECLS
 
+/** An opaque structure representing a system property. */
 typedef struct prop_info prop_info;
 
+/**
+ * The limit on the length of a property value.
+ * (See PROP_NAME_MAX for property names.)
+ */
 #define PROP_VALUE_MAX  92
 
-/*
+/**
  * Sets system property `name` to `value`, creating the system property if it doesn't already exist.
- */
-int __system_property_set(const char* __name, const char* __value);
-
-/*
- * Returns a `prop_info` corresponding system property `name`, or nullptr if it doesn't exist.
- * Use __system_property_read_callback to query the current value.
  *
- * Property lookup is expensive, so it can be useful to cache the result of this function.
+ * Returns 0 on success, or -1 on failure.
  */
-const prop_info* __system_property_find(const char* __name);
+int __system_property_set(const char* _Nonnull __name, const char* _Nonnull __value);
 
-/*
- * Calls `callback` with a consistent trio of name, value, and serial number for property `pi`.
+/**
+ * Returns a `prop_info` corresponding system property `name`, or nullptr if it doesn't exist.
+ * Use __system_property_read_callback() to query the current value.
+ *
+ * Property lookup is expensive, so it can be useful to cache the result of this
+ * function rather than using __system_property_get().
  */
-void __system_property_read_callback(const prop_info* __pi,
-    void (*__callback)(void* __cookie, const char* __name, const char* __value, uint32_t __serial),
-    void* __cookie) __INTRODUCED_IN(26);
+const prop_info* _Nullable __system_property_find(const char* _Nonnull __name);
 
-/*
+/**
+ * Calls `callback` with a consistent trio of name, value, and serial number
+ * for property `pi`.
+ *
+ * Available since API level 26.
+ */
+
+#if __BIONIC_AVAILABILITY_GUARD(26)
+void __system_property_read_callback(const prop_info* _Nonnull __pi,
+    void (* _Nonnull __callback)(void* _Nullable __cookie, const char* _Nonnull __name, const char* _Nonnull __value, uint32_t __serial),
+    void* _Nullable __cookie) __INTRODUCED_IN(26);
+#endif /* __BIONIC_AVAILABILITY_GUARD(26) */
+
+
+/**
  * Passes a `prop_info` for each system property to the provided
- * callback.  Use __system_property_read_callback() to read the value.
+ * callback. Use __system_property_read_callback() to read the value of
+ * any of the properties.
  *
  * This method is for inspecting and debugging the property system, and not generally useful.
+ *
+ * Returns 0 on success, or -1 on failure.
  */
-int __system_property_foreach(void (*__callback)(const prop_info* __pi, void* __cookie), void* __cookie)
-  __INTRODUCED_IN(19);
+int __system_property_foreach(void (* _Nonnull __callback)(const prop_info* _Nonnull __pi, void* _Nullable __cookie), void* _Nullable __cookie);
 
-/*
+/**
  * Waits for the specific system property identified by `pi` to be updated
  * past `old_serial`. Waits no longer than `relative_timeout`, or forever
- * if `relaive_timeout` is null.
+ * if `relative_timeout` is null.
  *
  * If `pi` is null, waits for the global serial number instead.
  *
@@ -80,20 +101,157 @@
  *
  * Returns true and updates `*new_serial_ptr` on success, or false if the call
  * timed out.
+ *
+ * Available since API level 26.
  */
 struct timespec;
-bool __system_property_wait(const prop_info* __pi, uint32_t __old_serial, uint32_t* __new_serial_ptr, const struct timespec* __relative_timeout)
-    __INTRODUCED_IN(26);
 
-/* Deprecated. In Android O and above, there's no limit on property name length. */
+#if __BIONIC_AVAILABILITY_GUARD(26)
+bool __system_property_wait(const prop_info* _Nullable __pi, uint32_t __old_serial, uint32_t* _Nonnull __new_serial_ptr, const struct timespec* _Nullable __relative_timeout)
+    __INTRODUCED_IN(26);
+#endif /* __BIONIC_AVAILABILITY_GUARD(26) */
+
+
+/**
+ * Deprecated: there's no limit on the length of a property name since
+ * API level 26, though the limit on property values (PROP_VALUE_MAX) remains.
+ */
 #define PROP_NAME_MAX   32
-/* Deprecated. Use __system_property_read_callback instead. */
-int __system_property_read(const prop_info* __pi, char* __name, char* __value);
-/* Deprecated. Use __system_property_read_callback instead. */
-int __system_property_get(const char* __name, char* __value);
-/* Deprecated. Use __system_property_foreach instead. */
-const prop_info* __system_property_find_nth(unsigned __n);
+
+/** Deprecated. Use __system_property_foreach() instead. */
+const prop_info* _Nullable __system_property_find_nth(unsigned __n);
+/** Deprecated. Use __system_property_read_callback() instead. */
+int __system_property_read(const prop_info* _Nonnull __pi, char* _Nullable __name, char* _Nonnull __value);
+/** Deprecated. Use __system_property_read_callback() instead. */
+int __system_property_get(const char* _Nonnull __name, char* _Nonnull __value);
+/** Deprecated: use __system_property_wait() instead. */
+uint32_t __system_property_wait_any(uint32_t __old_serial);
+
+/**
+ * Reads the global serial number of the system properties _area_.
+ *
+ * Called to predict if a series of cached __system_property_find()
+ * objects will have seen __system_property_serial() values change.
+ * Also aids the converse, as changes in the global serial can
+ * also be used to predict if a failed __system_property_find()
+ * could in turn now find a new object; thus preventing the
+ * cycles of effort to poll __system_property_find().
+ *
+ * Typically called at beginning of a cache cycle to signal if _any_ possible
+ * changes have occurred since last. If there is, one may check each individual
+ * __system_property_serial() to confirm dirty, or __system_property_find()
+ * to check if the property now exists. If a call to __system_property_add()
+ * or __system_property_update() has completed between two calls to
+ * __system_property_area_serial() then the second call will return a larger
+ * value than the first call. Beware of race conditions as changes to the
+ * properties are not atomic, the main value of this call is to determine
+ * whether the expensive __system_property_find() is worth retrying to see if
+ * a property now exists.
+ *
+ * Returns the serial number on success, -1 on error.
+ */
+uint32_t __system_property_area_serial(void);
+
+/**
+ * Reads the serial number of a specific system property previously returned by
+ * __system_property_find(). This is a cheap way to check whether a system
+ * property has changed or not.
+ *
+ * Returns the serial number on success, -1 on error.
+ */
+uint32_t __system_property_serial(const prop_info* _Nonnull __pi);
+
+//
+// libc implementation detail.
+//
+
+/**
+ * Initializes the system properties area in read-only mode.
+ *
+ * This is called automatically during libc initialization,
+ * so user code should never need to call this.
+ *
+ * Returns 0 on success, -1 otherwise.
+ */
+int __system_properties_init(void);
+
+//
+// init implementation details.
+//
+
+#define PROP_SERVICE_NAME "property_service"
+#define PROP_SERVICE_FOR_SYSTEM_NAME "property_service_for_system"
+#define PROP_DIRNAME "/dev/__properties__"
+
+// Messages sent to init.
+#define PROP_MSG_SETPROP 1
+#define PROP_MSG_SETPROP2 0x00020001
+
+// Status codes returned by init (but not passed from libc to the caller).
+#define PROP_SUCCESS 0
+#define PROP_ERROR_READ_CMD 0x0004
+#define PROP_ERROR_READ_DATA 0x0008
+#define PROP_ERROR_READ_ONLY_PROPERTY 0x000B
+#define PROP_ERROR_INVALID_NAME 0x0010
+#define PROP_ERROR_INVALID_VALUE 0x0014
+#define PROP_ERROR_PERMISSION_DENIED 0x0018
+#define PROP_ERROR_INVALID_CMD 0x001B
+#define PROP_ERROR_HANDLE_CONTROL_MESSAGE 0x0020
+#define PROP_ERROR_SET_FAILED 0x0024
+
+/**
+ * Initializes the area to be used to store properties.
+ *
+ * Can only be done by the process that has write access to the property area,
+ * typically init.
+ *
+ * See __system_properties_init() for the equivalent for all other processes.
+ */
+int __system_property_area_init(void);
+
+/**
+ * Adds a new system property.
+ * Can only be done by the process that has write access to the property area --
+ * typically init -- which must handle sequencing to ensure that only one property is
+ * updated at a time.
+ *
+ * Returns 0 on success, -1 if the property area is full.
+ */
+int __system_property_add(const char* _Nonnull __name, unsigned int __name_length, const char* _Nonnull __value, unsigned int __value_length);
+
+/**
+ * Updates the value of a system property returned by __system_property_find().
+ * Can only be done by the process that has write access to the property area --
+ * typically init -- which must handle sequencing to ensure that only one property is
+ * updated at a time.
+ *
+ * Returns 0 on success, -1 if the parameters are incorrect.
+ */
+int __system_property_update(prop_info* _Nonnull __pi, const char* _Nonnull __value, unsigned int __value_length);
+
+/**
+ * Reloads the system properties from disk.
+ * Not intended for use by any apps except the Zygote.
+ * Should only be called from the main thread.
+ *
+ * Pointers received from functions such as __system_property_find()
+ * may be invalidated by calls to this function.
+ *
+ * Returns 0 on success, -1 otherwise.
+ *
+ * Available since API level 35.
+ */
+
+#if __BIONIC_AVAILABILITY_GUARD(35)
+int __system_properties_zygote_reload(void) __INTRODUCED_IN(35);
+#endif /* __BIONIC_AVAILABILITY_GUARD(35) */
+
+
+/**
+ * Deprecated: previously for testing, but now that SystemProperties is its own
+ * testable class, there is never a reason to call this function and its
+ * implementation simply returns -1.
+ */
+int __system_property_set_filename(const char* _Nullable __unused __filename);
 
 __END_DECLS
-
-#endif
diff --git a/libc/include/sys/thread_properties.h b/libc/include/sys/thread_properties.h
index b5d30c7..b6214ee 100644
--- a/libc/include/sys/thread_properties.h
+++ b/libc/include/sys/thread_properties.h
@@ -50,8 +50,10 @@
  *
  * Available since API level 31.
  */
-void __libc_get_static_tls_bounds(void** __static_tls_begin,
-                                  void** __static_tls_end) __INTRODUCED_IN(31);
+
+#if __BIONIC_AVAILABILITY_GUARD(31)
+void __libc_get_static_tls_bounds(void* _Nonnull * _Nonnull __static_tls_begin,
+                                  void* _Nonnull * _Nonnull __static_tls_end) __INTRODUCED_IN(31);
 
 
 /**
@@ -66,7 +68,7 @@
  *
  * Available since API level 31.
  */
-void __libc_register_thread_exit_callback(void (*__cb)(void)) __INTRODUCED_IN(31);
+void __libc_register_thread_exit_callback(void (* _Nonnull __cb)(void)) __INTRODUCED_IN(31);
 
 /**
  * Iterates over all dynamic TLS chunks for the given thread.
@@ -76,11 +78,11 @@
  * Available since API level 31.
  */
 void __libc_iterate_dynamic_tls(pid_t __tid,
-                                void (*__cb)(void* __dynamic_tls_begin,
-                                             void* __dynamic_tls_end,
+                                void (* _Nonnull __cb)(void* _Nonnull __dynamic_tls_begin,
+                                             void* _Nonnull __dynamic_tls_end,
                                              size_t __dso_id,
-                                             void* __arg),
-                                void* __arg) __INTRODUCED_IN(31);
+                                             void* _Nullable __arg),
+                                void* _Nullable __arg) __INTRODUCED_IN(31);
 
 /**
  * Register on_creation and on_destruction callbacks, which will be called after a dynamic
@@ -89,9 +91,11 @@
  * Available since API level 31.
  */
 void __libc_register_dynamic_tls_listeners(
-    void (*__on_creation)(void* __dynamic_tls_begin,
-                          void* __dynamic_tls_end),
-    void (*__on_destruction)(void* __dynamic_tls_begin,
-                             void* __dynamic_tls_end)) __INTRODUCED_IN(31);
+    void (* _Nonnull __on_creation)(void* _Nonnull __dynamic_tls_begin,
+                          void* _Nonnull __dynamic_tls_end),
+    void (* _Nonnull __on_destruction)(void* _Nonnull __dynamic_tls_begin,
+                             void* _Nonnull __dynamic_tls_end)) __INTRODUCED_IN(31);
+#endif /* __BIONIC_AVAILABILITY_GUARD(31) */
+
 
 __END_DECLS
diff --git a/libc/include/sys/time.h b/libc/include/sys/time.h
index 45190c3..d12c306 100644
--- a/libc/include/sys/time.h
+++ b/libc/include/sys/time.h
@@ -38,21 +38,42 @@
 
 __BEGIN_DECLS
 
-int gettimeofday(struct timeval* __tv, struct timezone* __tz);
-int settimeofday(const struct timeval* __tv, const struct timezone* __tz);
+int gettimeofday(struct timeval* _Nullable __tv, struct timezone* _Nullable __tz);
+int settimeofday(const struct timeval* _Nullable __tv, const struct timezone* _Nullable __tz);
 
-int getitimer(int __which, struct itimerval* __current_value);
-int setitimer(int __which, const struct itimerval* __new_value, struct itimerval* __old_value);
+int getitimer(int __which, struct itimerval* _Nonnull __current_value);
+int setitimer(int __which, const struct itimerval* _Nonnull __new_value, struct itimerval* _Nullable __old_value);
 
-int utimes(const char* __path, const struct timeval __times[2]);
+int utimes(const char* _Nonnull __path, const struct timeval __times[_Nullable 2]);
 
 #if defined(__USE_BSD)
-int futimes(int __fd, const struct timeval __times[2]) __INTRODUCED_IN(26);
-int lutimes(const char* __path, const struct timeval __times[2]) __INTRODUCED_IN(26);
+
+#if __BIONIC_AVAILABILITY_GUARD(26)
+int futimes(int __fd, const struct timeval __times[_Nullable 2]) __INTRODUCED_IN(26);
+int lutimes(const char* _Nonnull __path, const struct timeval __times[_Nullable 2]) __INTRODUCED_IN(26);
+#endif /* __BIONIC_AVAILABILITY_GUARD(26) */
+
 #endif
 
 #if defined(__USE_GNU)
-int futimesat(int __dir_fd, const char* __path, const struct timeval __times[2]) __INTRODUCED_IN(26);
+/**
+ * [futimesat(2)](https://man7.org/linux/man-pages/man2/futimesat.2.html) sets
+ * file timestamps.
+ *
+ * Note: Linux supports `__path` being NULL (in which case `__dir_fd` need not
+ * be a directory), allowing futimensat() to be implemented with utimensat().
+ * Most callers should just use utimensat() directly, especially on Android
+ * where utimensat() has been available for longer than futimesat().
+ *
+ * Returns 0 on success and -1 and sets `errno` on failure.
+ *
+ * Available since API level 26.
+ */
+
+#if __BIONIC_AVAILABILITY_GUARD(26)
+int futimesat(int __dir_fd, const char* __BIONIC_COMPLICATED_NULLNESS __path, const struct timeval __times[_Nullable 2]) __INTRODUCED_IN(26);
+#endif /* __BIONIC_AVAILABILITY_GUARD(26) */
+
 #endif
 
 #define timerclear(a)   \
diff --git a/libc/include/sys/timerfd.h b/libc/include/sys/timerfd.h
index b89941b..f7f1ffa 100644
--- a/libc/include/sys/timerfd.h
+++ b/libc/include/sys/timerfd.h
@@ -33,27 +33,29 @@
  * @brief Timer file descriptors.
  */
 
-#include <fcntl.h> /* For O_CLOEXEC and O_NONBLOCK. */
-#include <time.h>
 #include <sys/cdefs.h>
+
+#include <fcntl.h>
+#include <linux/timerfd.h>
+#include <time.h>
 #include <sys/types.h>
 
 __BEGIN_DECLS
 
-/** The timerfd_create() flag for a close-on-exec file descriptor. */
-#define TFD_CLOEXEC O_CLOEXEC
-/** The timerfd_create() flag for a non-blocking file descriptor. */
-#define TFD_NONBLOCK O_NONBLOCK
+/*! \macro TFD_CLOEXEC
+ * The timerfd_create() flag for a close-on-exec file descriptor.
+ */
+/*! \macro TFD_NONBLOCK
+ * The timerfd_create() flag for a non-blocking file descriptor.
+ */
 
 /**
- * [timerfd_create(2)](http://man7.org/linux/man-pages/man2/timerfd_create.2.html) creates a
+ * [timerfd_create(2)](https://man7.org/linux/man-pages/man2/timerfd_create.2.html) creates a
  * timer file descriptor.
  *
  * Returns the new file descriptor on success, and returns -1 and sets `errno` on failure.
- *
- * Available since API level 19.
  */
-int timerfd_create(clockid_t __clock, int __flags) __INTRODUCED_IN(19);
+int timerfd_create(clockid_t __clock, int __flags);
 
 /** The timerfd_settime() flag to use absolute rather than relative times. */
 #define TFD_TIMER_ABSTIME (1 << 0)
@@ -61,23 +63,19 @@
 #define TFD_TIMER_CANCEL_ON_SET (1 << 1)
 
 /**
- * [timerfd_settime(2)](http://man7.org/linux/man-pages/man2/timerfd_settime.2.html) starts or
+ * [timerfd_settime(2)](https://man7.org/linux/man-pages/man2/timerfd_settime.2.html) starts or
  * stops a timer.
  *
  * Returns 0 on success, and returns -1 and sets `errno` on failure.
- *
- * Available since API level 19.
  */
-int timerfd_settime(int __fd, int __flags, const struct itimerspec* __new_value, struct itimerspec* __old_value) __INTRODUCED_IN(19);
+int timerfd_settime(int __fd, int __flags, const struct itimerspec* _Nonnull __new_value, struct itimerspec* _Nullable __old_value);
 
 /**
- * [timerfd_gettime(2)](http://man7.org/linux/man-pages/man2/timerfd_gettime.2.html) queries the
+ * [timerfd_gettime(2)](https://man7.org/linux/man-pages/man2/timerfd_gettime.2.html) queries the
  * current timer settings.
  *
  * Returns 0 on success, and returns -1 and sets `errno` on failure.
- *
- * Available since API level 19.
  */
-int timerfd_gettime(int __fd, struct itimerspec* __current_value) __INTRODUCED_IN(19);
+int timerfd_gettime(int __fd, struct itimerspec* _Nonnull __current_value);
 
 __END_DECLS
diff --git a/libc/include/sys/times.h b/libc/include/sys/times.h
index 25d03e3..ac6ec18 100644
--- a/libc/include/sys/times.h
+++ b/libc/include/sys/times.h
@@ -40,12 +40,12 @@
 __BEGIN_DECLS
 
 /**
- * [times(2)](http://man7.org/linux/man-pages/man2/times.2.html) fills a buffer with the
+ * [times(2)](https://man7.org/linux/man-pages/man2/times.2.html) fills a buffer with the
  * calling process' CPU usage.
  *
  * Returns a (possibly overflowed) absolute time on success,
  * and returns -1 and sets `errno` on failure.
  */
-clock_t times(struct tms* __buf);
+clock_t times(struct tms* _Nullable __buf);
 
 __END_DECLS
diff --git a/libc/include/sys/timex.h b/libc/include/sys/timex.h
index 52db5dc..6fb58e4 100644
--- a/libc/include/sys/timex.h
+++ b/libc/include/sys/timex.h
@@ -40,13 +40,15 @@
 __BEGIN_DECLS
 
 /**
- * [adjtimex(2)](http://man7.org/linux/man-pages/man2/adjtimex.2.html) adjusts the kernel clock.
+ * [adjtimex(2)](https://man7.org/linux/man-pages/man2/adjtimex.2.html) adjusts the kernel clock.
  *
  * Returns the clock state on success, and returns -1 and sets `errno` on failure.
  *
  * Available since API level 24.
  */
-int adjtimex(struct timex* __buf) __INTRODUCED_IN(24);
+
+#if __BIONIC_AVAILABILITY_GUARD(24)
+int adjtimex(struct timex* _Nonnull __buf) __INTRODUCED_IN(24);
 
 /**
  * clock_adjtime adjusts a specific kernel clock.
@@ -55,6 +57,8 @@
  *
  * Available since API level 24.
  */
-int clock_adjtime(clockid_t __clock, struct timex* __tx) __INTRODUCED_IN(24);
+int clock_adjtime(clockid_t __clock, struct timex* _Nonnull __tx) __INTRODUCED_IN(24);
+#endif /* __BIONIC_AVAILABILITY_GUARD(24) */
+
 
 __END_DECLS
diff --git a/libc/include/sys/types.h b/libc/include/sys/types.h
index f07c8fd..0446260 100644
--- a/libc/include/sys/types.h
+++ b/libc/include/sys/types.h
@@ -29,9 +29,10 @@
 #ifndef _SYS_TYPES_H_
 #define _SYS_TYPES_H_
 
+#include <sys/cdefs.h>
+
 #include <stddef.h>
 #include <stdint.h>
-#include <sys/cdefs.h>
 
 #include <linux/types.h>
 #include <linux/posix_types.h>
@@ -96,7 +97,7 @@
 typedef __time_t time_t;
 
 /* This historical accident means that we had a 32-bit off_t on 32-bit architectures. */
-/* See https://android.googlesource.com/platform/bionic/+/master/docs/32-bit-abi.md */
+/* See https://android.googlesource.com/platform/bionic/+/main/docs/32-bit-abi.md */
 #if defined(__USE_FILE_OFFSET64) || defined(__LP64__)
 typedef int64_t off_t;
 typedef off_t loff_t;
diff --git a/libc/include/sys/ucontext.h b/libc/include/sys/ucontext.h
index bb6443b..4f4d5ce 100644
--- a/libc/include/sys/ucontext.h
+++ b/libc/include/sys/ucontext.h
@@ -318,12 +318,20 @@
 
 #if defined(__USE_GNU)
 
-#define REG_PC 0
-#define REG_RA 1
-#define REG_SP 2
-#define REG_TP 4
-#define REG_S0 8
-#define REG_A0 10
+enum {
+  REG_PC = 0,
+#define REG_PC REG_PC
+  REG_RA = 1,
+#define REG_RA REG_RA
+  REG_SP = 2,
+#define REG_SP REG_SP
+  REG_TP = 4,
+#define REG_TP REG_TP
+  REG_S0 = 8,
+#define REG_S0 REG_S0
+  REG_A0 = 10,
+#define REG_A0 REG_A0
+};
 
 #endif // defined(__USE_GNU)
 
diff --git a/libc/include/sys/uio.h b/libc/include/sys/uio.h
index 583cfc6..eff3b14 100644
--- a/libc/include/sys/uio.h
+++ b/libc/include/sys/uio.h
@@ -40,27 +40,27 @@
 __BEGIN_DECLS
 
 /**
- * [readv(2)](http://man7.org/linux/man-pages/man2/readv.2.html) reads
+ * [readv(2)](https://man7.org/linux/man-pages/man2/readv.2.html) reads
  * from an fd into the `__count` buffers described by `__iov`.
  *
  * Returns the number of bytes read on success,
  * and returns -1 and sets `errno` on failure.
  */
-ssize_t readv(int __fd, const struct iovec* __iov, int __count);
+ssize_t readv(int __fd, const struct iovec* _Nonnull __iov, int __count);
 
 /**
- * [writev(2)](http://man7.org/linux/man-pages/man2/writev.2.html) writes
+ * [writev(2)](https://man7.org/linux/man-pages/man2/writev.2.html) writes
  * to an fd from the `__count` buffers described by `__iov`.
  *
  * Returns the number of bytes written on success,
  * and returns -1 and sets `errno` on failure.
  */
-ssize_t writev(int __fd, const struct iovec* __iov, int __count);
+ssize_t writev(int __fd, const struct iovec* _Nonnull __iov, int __count);
 
 #if defined(__USE_GNU)
 
 /**
- * [preadv(2)](http://man7.org/linux/man-pages/man2/preadv.2.html) reads
+ * [preadv(2)](https://man7.org/linux/man-pages/man2/preadv.2.html) reads
  * from an fd into the `__count` buffers described by `__iov`, starting at
  * offset `__offset` into the file.
  *
@@ -69,10 +69,12 @@
  *
  * Available since API level 24.
  */
-ssize_t preadv(int __fd, const struct iovec* __iov, int __count, off_t __offset) __RENAME_IF_FILE_OFFSET64(preadv64) __INTRODUCED_IN(24);
+
+#if __BIONIC_AVAILABILITY_GUARD(24)
+ssize_t preadv(int __fd, const struct iovec* _Nonnull __iov, int __count, off_t __offset) __RENAME_IF_FILE_OFFSET64(preadv64) __INTRODUCED_IN(24);
 
 /**
- * [pwritev(2)](http://man7.org/linux/man-pages/man2/pwritev.2.html) writes
+ * [pwritev(2)](https://man7.org/linux/man-pages/man2/pwritev.2.html) writes
  * to an fd from the `__count` buffers described by `__iov`, starting at offset
  * `__offset` into the file.
  *
@@ -81,24 +83,26 @@
  *
  * Available since API level 24.
  */
-ssize_t pwritev(int __fd, const struct iovec* __iov, int __count, off_t __offset) __RENAME_IF_FILE_OFFSET64(pwritev64) __INTRODUCED_IN(24);
+ssize_t pwritev(int __fd, const struct iovec* _Nonnull __iov, int __count, off_t __offset) __RENAME_IF_FILE_OFFSET64(pwritev64) __INTRODUCED_IN(24);
 
 /**
  * Like preadv() but with a 64-bit offset even in a 32-bit process.
  *
  * Available since API level 24.
  */
-ssize_t preadv64(int __fd, const struct iovec* __iov, int __count, off64_t __offset) __INTRODUCED_IN(24);
+ssize_t preadv64(int __fd, const struct iovec* _Nonnull __iov, int __count, off64_t __offset) __INTRODUCED_IN(24);
 
 /**
  * Like pwritev() but with a 64-bit offset even in a 32-bit process.
  *
  * Available since API level 24.
  */
-ssize_t pwritev64(int __fd, const struct iovec* __iov, int __count, off64_t __offset) __INTRODUCED_IN(24);
+ssize_t pwritev64(int __fd, const struct iovec* _Nonnull __iov, int __count, off64_t __offset) __INTRODUCED_IN(24);
+#endif /* __BIONIC_AVAILABILITY_GUARD(24) */
+
 
 /**
- * [preadv2(2)](http://man7.org/linux/man-pages/man2/preadv2.2.html) reads
+ * [preadv2(2)](https://man7.org/linux/man-pages/man2/preadv2.2.html) reads
  * from an fd into the `__count` buffers described by `__iov`, starting at
  * offset `__offset` into the file, with the given flags.
  *
@@ -107,10 +111,12 @@
  *
  * Available since API level 33.
  */
-ssize_t preadv2(int __fd, const struct iovec* __iov, int __count, off_t __offset, int __flags) __RENAME_IF_FILE_OFFSET64(preadv64v2) __INTRODUCED_IN(33);
+
+#if __BIONIC_AVAILABILITY_GUARD(33)
+ssize_t preadv2(int __fd, const struct iovec* _Nonnull __iov, int __count, off_t __offset, int __flags) __RENAME_IF_FILE_OFFSET64(preadv64v2) __INTRODUCED_IN(33);
 
 /**
- * [pwritev2(2)](http://man7.org/linux/man-pages/man2/pwritev2.2.html) writes
+ * [pwritev2(2)](https://man7.org/linux/man-pages/man2/pwritev2.2.html) writes
  * to an fd from the `__count` buffers described by `__iov`, starting at offset
  * `__offset` into the file, with the given flags.
  *
@@ -119,24 +125,26 @@
  *
  * Available since API level 33.
  */
-ssize_t pwritev2(int __fd, const struct iovec* __iov, int __count, off_t __offset, int __flags) __RENAME_IF_FILE_OFFSET64(pwritev64v2) __INTRODUCED_IN(33);
+ssize_t pwritev2(int __fd, const struct iovec* _Nonnull __iov, int __count, off_t __offset, int __flags) __RENAME_IF_FILE_OFFSET64(pwritev64v2) __INTRODUCED_IN(33);
 
 /**
  * Like preadv2() but with a 64-bit offset even in a 32-bit process.
  *
  * Available since API level 33.
  */
-ssize_t preadv64v2(int __fd, const struct iovec* __iov, int __count, off64_t __offset, int __flags) __INTRODUCED_IN(33);
+ssize_t preadv64v2(int __fd, const struct iovec* _Nonnull __iov, int __count, off64_t __offset, int __flags) __INTRODUCED_IN(33);
 
 /**
  * Like pwritev2() but with a 64-bit offset even in a 32-bit process.
  *
  * Available since API level 33.
  */
-ssize_t pwritev64v2(int __fd, const struct iovec* __iov, int __count, off64_t __offset, int __flags) __INTRODUCED_IN(33);
+ssize_t pwritev64v2(int __fd, const struct iovec* _Nonnull __iov, int __count, off64_t __offset, int __flags) __INTRODUCED_IN(33);
+#endif /* __BIONIC_AVAILABILITY_GUARD(33) */
+
 
 /**
- * [process_vm_readv(2)](http://man7.org/linux/man-pages/man2/process_vm_readv.2.html)
+ * [process_vm_readv(2)](https://man7.org/linux/man-pages/man2/process_vm_readv.2.html)
  * reads from the address space of another process.
  *
  * Returns the number of bytes read on success,
@@ -144,10 +152,12 @@
  *
  * Available since API level 23.
  */
-ssize_t process_vm_readv(pid_t __pid, const struct iovec* __local_iov, unsigned long __local_iov_count, const struct iovec* __remote_iov, unsigned long __remote_iov_count, unsigned long __flags) __INTRODUCED_IN(23);
+
+#if __BIONIC_AVAILABILITY_GUARD(23)
+ssize_t process_vm_readv(pid_t __pid, const struct iovec* __BIONIC_COMPLICATED_NULLNESS __local_iov, unsigned long __local_iov_count, const struct iovec* __BIONIC_COMPLICATED_NULLNESS __remote_iov, unsigned long __remote_iov_count, unsigned long __flags) __INTRODUCED_IN(23);
 
 /**
- * [process_vm_writev(2)](http://man7.org/linux/man-pages/man2/process_vm_writev.2.html)
+ * [process_vm_writev(2)](https://man7.org/linux/man-pages/man2/process_vm_writev.2.html)
  * writes to the address space of another process.
  *
  * Returns the number of bytes read on success,
@@ -155,7 +165,9 @@
  *
  * Available since API level 23.
  */
-ssize_t process_vm_writev(pid_t __pid, const struct iovec* __local_iov, unsigned long __local_iov_count, const struct iovec* __remote_iov, unsigned long __remote_iov_count, unsigned long __flags) __INTRODUCED_IN(23);
+ssize_t process_vm_writev(pid_t __pid, const struct iovec* __BIONIC_COMPLICATED_NULLNESS __local_iov, unsigned long __local_iov_count, const struct iovec* __BIONIC_COMPLICATED_NULLNESS __remote_iov, unsigned long __remote_iov_count, unsigned long __flags) __INTRODUCED_IN(23);
+#endif /* __BIONIC_AVAILABILITY_GUARD(23) */
+
 
 #endif
 
diff --git a/libc/include/sys/un.h b/libc/include/sys/un.h
index 83c1d17..c2bfcb0 100644
--- a/libc/include/sys/un.h
+++ b/libc/include/sys/un.h
@@ -33,9 +33,10 @@
  * @brief Unix domain sockets.
  */
 
+#include <sys/cdefs.h>
+
 #include <bits/sa_family_t.h>
 #include <linux/un.h>
-#include <sys/cdefs.h>
 
 #if defined(__USE_BSD) || defined(__USE_GNU)
 #include <string.h>
diff --git a/libc/include/sys/user.h b/libc/include/sys/user.h
index 432c7cb..1d20034 100644
--- a/libc/include/sys/user.h
+++ b/libc/include/sys/user.h
@@ -32,10 +32,9 @@
 #include <stddef.h> /* For size_t. */
 #include <stdint.h>
 
-__BEGIN_DECLS
+#include <bits/page_size.h>
 
-#define PAGE_SIZE 4096
-#define PAGE_MASK (~(PAGE_SIZE - 1))
+__BEGIN_DECLS
 
 #if defined(__i386__)
 
diff --git a/libc/include/sys/utsname.h b/libc/include/sys/utsname.h
index aa8c1a0..23d1282 100644
--- a/libc/include/sys/utsname.h
+++ b/libc/include/sys/utsname.h
@@ -57,7 +57,7 @@
 };
 
 /**
- * [uname(2)](http://man7.org/linux/man-pages/man2/uname.2.html) returns information
+ * [uname(2)](https://man7.org/linux/man-pages/man2/uname.2.html) returns information
  * about the kernel.
  *
  * Returns 0 on success, and returns -1 and sets `errno` on failure.
diff --git a/libc/include/sys/vfs.h b/libc/include/sys/vfs.h
index 18ae428..5d078be 100644
--- a/libc/include/sys/vfs.h
+++ b/libc/include/sys/vfs.h
@@ -29,8 +29,9 @@
 #ifndef _SYS_VFS_H_
 #define _SYS_VFS_H_
 
-#include <stdint.h>
 #include <sys/cdefs.h>
+
+#include <stdint.h>
 #include <sys/types.h>
 
 __BEGIN_DECLS
@@ -40,6 +41,8 @@
 typedef __fsid_t fsid_t;
 
 #if defined(__LP64__)
+/* We can't just use the kernel struct statfs directly here because
+ * it's reused for both struct statfs *and* struct statfs64. */
 #define __STATFS64_BODY \
   uint64_t f_type; \
   uint64_t f_bsize; \
@@ -105,9 +108,9 @@
 #define XFS_SUPER_MAGIC       0x58465342
 
 int statfs(const char* _Nonnull __path, struct statfs* _Nonnull __buf);
-int statfs64(const char* _Nonnull __path, struct statfs64* _Nonnull __buf) __INTRODUCED_IN(21);
+int statfs64(const char* _Nonnull __path, struct statfs64* _Nonnull __buf);
 int fstatfs(int __fd, struct statfs* _Nonnull __buf);
-int fstatfs64(int __fd, struct statfs64* _Nonnull __buf) __INTRODUCED_IN(21);
+int fstatfs64(int __fd, struct statfs64* _Nonnull __buf);
 
 __END_DECLS
 
diff --git a/libc/include/sys/wait.h b/libc/include/sys/wait.h
index e6fb855..632aa43 100644
--- a/libc/include/sys/wait.h
+++ b/libc/include/sys/wait.h
@@ -28,8 +28,9 @@
 
 #pragma once
 
-#include <bits/wait.h>
 #include <sys/cdefs.h>
+
+#include <bits/wait.h>
 #include <sys/types.h>
 #include <sys/resource.h>
 #include <linux/wait.h>
@@ -39,7 +40,7 @@
 
 pid_t wait(int* _Nullable __status);
 pid_t waitpid(pid_t __pid, int* _Nullable __status, int __options);
-pid_t wait4(pid_t __pid, int* _Nullable __status, int __options, struct rusage* _Nullable __rusage) __INTRODUCED_IN(18);
+pid_t wait4(pid_t __pid, int* _Nullable __status, int __options, struct rusage* _Nullable __rusage);
 
 /* Posix states that idtype_t should be an enumeration type, but
  * the kernel headers define P_ALL, P_PID and P_PGID as constant macros
diff --git a/libc/include/sys/xattr.h b/libc/include/sys/xattr.h
index dc58026..ebe4eb8 100644
--- a/libc/include/sys/xattr.h
+++ b/libc/include/sys/xattr.h
@@ -33,126 +33,151 @@
  * @brief Extended attribute functions.
  */
 
-#include <linux/xattr.h>
 #include <sys/cdefs.h>
+
+#include <linux/xattr.h>
 #include <sys/types.h>
 
 __BEGIN_DECLS
 
 /**
- * [fsetxattr(2)](http://man7.org/linux/man-pages/man2/fsetxattr.2.html)
+ * [fsetxattr(2)](https://man7.org/linux/man-pages/man2/fsetxattr.2.html)
  * sets an extended attribute on the file referred to by the given file
  * descriptor.
  *
+ * A `size` of 0 can be used to set an empty value, in which case `value` is
+ * ignored and may be null. Setting an xattr to an empty value is not the same
+ * as removing an xattr; see removexattr() for the latter operation.
+ *
  * Valid flags are `XATTR_CREATE` and `XATTR_REPLACE`.
  *
  * Returns 0 on success and returns -1 and sets `errno` on failure.
  */
-int fsetxattr(int __fd, const char* __name, const void* __value, size_t __size, int __flags);
+int fsetxattr(int __fd, const char* _Nonnull __name, const void* _Nullable __value, size_t __size, int __flags);
 
 /**
- * [setxattr(2)](http://man7.org/linux/man-pages/man2/setxattr.2.html)
+ * [setxattr(2)](https://man7.org/linux/man-pages/man2/setxattr.2.html)
  * sets an extended attribute on the file referred to by the given path.
  *
+ * A `size` of 0 can be used to set an empty value, in which case `value` is
+ * ignored and may be null. Setting an xattr to an empty value is not the same
+ * as removing an xattr; see removexattr() for the latter operation.
+ *
  * Valid flags are `XATTR_CREATE` and `XATTR_REPLACE`.
  *
  * Returns 0 on success and returns -1 and sets `errno` on failure.
  */
-int setxattr(const char* __path, const char* __name, const void* __value, size_t __size, int __flags);
+int setxattr(const char* _Nonnull __path, const char* _Nonnull __name, const void* _Nullable __value, size_t __size, int __flags);
 
 /**
- * [lsetxattr(2)](http://man7.org/linux/man-pages/man2/lsetxattr.2.html)
+ * [lsetxattr(2)](https://man7.org/linux/man-pages/man2/lsetxattr.2.html)
  * sets an extended attribute on the file referred to by the given path, which
  * is the link itself rather than its target in the case of a symbolic link.
  *
+ * A `size` of 0 can be used to set an empty value, in which case `value` is
+ * ignored and may be null. Setting an xattr to an empty value is not the same
+ * as removing an xattr; see removexattr() for the latter operation.
+ *
  * Valid flags are `XATTR_CREATE` and `XATTR_REPLACE`.
  *
  * Returns 0 on success and returns -1 and sets `errno` on failure.
  */
-int lsetxattr(const char* __path, const char* __name, const void* __value, size_t __size, int __flags);
+int lsetxattr(const char* _Nonnull __path, const char* _Nonnull __name, const void* _Nullable __value, size_t __size, int __flags);
 
 /**
- * [fgetxattr(2)](http://man7.org/linux/man-pages/man2/fgetxattr.2.html)
+ * [fgetxattr(2)](https://man7.org/linux/man-pages/man2/fgetxattr.2.html)
  * gets an extended attribute on the file referred to by the given file
  * descriptor.
  *
- * Returns the non-negative length of the value on success, or
- * returns -1 and sets `errno` on failure.
- */
-ssize_t fgetxattr(int __fd, const char* __name, void* __value, size_t __size);
-
-/**
- * [getxattr(2)](http://man7.org/linux/man-pages/man2/getxattr.2.html)
- * gets an extended attribute on the file referred to by the given path.
+ * A `size` of 0 can be used to query the current length, in which case `value` is ignored and may be null.
  *
  * Returns the non-negative length of the value on success, or
  * returns -1 and sets `errno` on failure.
  */
-ssize_t getxattr(const char* __path, const char* __name, void* __value, size_t __size);
+ssize_t fgetxattr(int __fd, const char* _Nonnull __name, void* _Nullable __value, size_t __size);
 
 /**
- * [lgetxattr(2)](http://man7.org/linux/man-pages/man2/lgetxattr.2.html)
+ * [getxattr(2)](https://man7.org/linux/man-pages/man2/getxattr.2.html)
+ * gets an extended attribute on the file referred to by the given path.
+ *
+ * A `size` of 0 can be used to query the current length, in which case `value` is ignored and may be null.
+ *
+ * Returns the non-negative length of the value on success, or
+ * returns -1 and sets `errno` on failure.
+ */
+ssize_t getxattr(const char* _Nonnull __path, const char* _Nonnull __name, void* _Nullable __value, size_t __size);
+
+/**
+ * [lgetxattr(2)](https://man7.org/linux/man-pages/man2/lgetxattr.2.html)
  * gets an extended attribute on the file referred to by the given path, which
  * is the link itself rather than its target in the case of a symbolic link.
  *
+ * A `size` of 0 can be used to query the current length, in which case `value` is ignored and may be null.
+ *
  * Returns the non-negative length of the value on success, or
  * returns -1 and sets `errno` on failure.
  */
-ssize_t lgetxattr(const char* __path, const char* __name, void* __value, size_t __size);
+ssize_t lgetxattr(const char* _Nonnull __path, const char* _Nonnull __name, void* _Nullable __value, size_t __size);
 
 /**
- * [flistxattr(2)](http://man7.org/linux/man-pages/man2/flistxattr.2.html)
+ * [flistxattr(2)](https://man7.org/linux/man-pages/man2/flistxattr.2.html)
  * lists the extended attributes on the file referred to by the given file
  * descriptor.
  *
- * Returns the non-negative length of the list on success, or
- * returns -1 and sets `errno` on failure.
- */
-ssize_t flistxattr(int __fd, char* __list, size_t __size);
-
-/**
- * [listxattr(2)](http://man7.org/linux/man-pages/man2/listxattr.2.html)
- * lists the extended attributes on the file referred to by the given path.
+ * A `size` of 0 can be used to query the current length, in which case `list` is ignored and may be null.
  *
  * Returns the non-negative length of the list on success, or
  * returns -1 and sets `errno` on failure.
  */
-ssize_t listxattr(const char* __path, char* __list, size_t __size);
+ssize_t flistxattr(int __fd, char* _Nullable __list, size_t __size);
 
 /**
- * [llistxattr(2)](http://man7.org/linux/man-pages/man2/llistxattr.2.html)
+ * [listxattr(2)](https://man7.org/linux/man-pages/man2/listxattr.2.html)
+ * lists the extended attributes on the file referred to by the given path.
+ *
+ * A `size` of 0 can be used to query the current length, in which case `list` is ignored and may be null.
+ *
+ * Returns the non-negative length of the list on success, or
+ * returns -1 and sets `errno` on failure.
+ */
+ssize_t listxattr(const char* _Nonnull __path, char* _Nullable __list, size_t __size);
+
+/**
+ * [llistxattr(2)](https://man7.org/linux/man-pages/man2/llistxattr.2.html)
  * lists the extended attributes on the file referred to by the given path, which
  * is the link itself rather than its target in the case of a symbolic link.
  *
+ * A `size` of 0 can be used to query the current length, in which case `list` is ignored and may be null.
+ *
  * Returns the non-negative length of the list on success, or
  * returns -1 and sets `errno` on failure.
  */
-ssize_t llistxattr(const char* __path, char* __list, size_t __size);
+ssize_t llistxattr(const char* _Nonnull __path, char* _Nullable __list, size_t __size);
 
 /**
- * [fremovexattr(2)](http://man7.org/linux/man-pages/man2/fremovexattr.2.html)
+ * [fremovexattr(2)](https://man7.org/linux/man-pages/man2/fremovexattr.2.html)
  * removes an extended attribute on the file referred to by the given file
  * descriptor.
  *
  * Returns 0 on success and returns -1 and sets `errno` on failure.
  */
-int fremovexattr(int __fd, const char* __name);
+int fremovexattr(int __fd, const char* _Nonnull __name);
 
 /**
- * [lremovexattr(2)](http://man7.org/linux/man-pages/man2/lremovexattr.2.html)
+ * [lremovexattr(2)](https://man7.org/linux/man-pages/man2/lremovexattr.2.html)
  * removes an extended attribute on the file referred to by the given path, which
  * is the link itself rather than its target in the case of a symbolic link.
  *
  * Returns 0 on success and returns -1 and sets `errno` on failure.
  */
-int lremovexattr(const char* __path, const char* __name);
+int lremovexattr(const char* _Nonnull __path, const char* _Nonnull __name);
 
 /**
- * [removexattr(2)](http://man7.org/linux/man-pages/man2/removexattr.2.html)
+ * [removexattr(2)](https://man7.org/linux/man-pages/man2/removexattr.2.html)
  * removes an extended attribute on the file referred to by the given path.
  *
  * Returns 0 on success and returns -1 and sets `errno` on failure.
  */
-int removexattr(const char* __path, const char* __name);
+int removexattr(const char* _Nonnull __path, const char* _Nonnull __name);
 
 __END_DECLS
diff --git a/libc/include/syslog.h b/libc/include/syslog.h
index d89d769..7a594f1 100644
--- a/libc/include/syslog.h
+++ b/libc/include/syslog.h
@@ -25,11 +25,40 @@
  * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  */
+/*
+ * Copyright (c) 1982, 1986, 1988, 1993
+ *	The Regents of the University of California.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
 
 #pragma once
 
-#include <stdio.h>
 #include <sys/cdefs.h>
+
+#include <stdio.h>
 #include <stdarg.h>
 
 __BEGIN_DECLS
@@ -112,48 +141,106 @@
  */
 #define LOG_UPTO(pri) ((1 << ((pri)+1)) - 1)
 
-/** openlog() options are currently ignored on Android. */
+/** openlog() option ignored on Android. */
 #define LOG_PID    0x01
-/** openlog() options are currently ignored on Android. */
+/** openlog() option ignored on Android. */
 #define LOG_CONS   0x02
-/** openlog() options are currently ignored on Android. */
+/** openlog() option ignored on Android. */
 #define LOG_ODELAY 0x04
-/** openlog() options are currently ignored on Android. */
+/** openlog() option ignored on Android. */
 #define LOG_NDELAY 0x08
-/** openlog() options are currently ignored on Android. */
+/** openlog() option ignored on Android. */
 #define LOG_NOWAIT 0x10
-/** openlog() options are currently ignored on Android. */
+/**
+ * openlog() option to log to stderr as well as the system log.
+ *
+ * Available since API level 34 (ignored before then).
+ */
 #define LOG_PERROR 0x20
 
+#if defined(SYSLOG_NAMES)
+/** A mapping from name to value, used by `facilitynames` and `prioritynames`. */
+typedef struct _code {
+  char* c_name;
+  int c_val;
+} CODE;
+/* A bogus facility value for "mark". */
+#define INTERNAL_MARK LOG_MAKEPRI((LOG_NFACILITIES<<3), 0)
+/** A table mapping facility names to values. */
+static const CODE facilitynames[] = {
+  { "auth", LOG_AUTH, },
+  { "authpriv", LOG_AUTHPRIV, },
+  { "cron", LOG_CRON, },
+  { "daemon", LOG_DAEMON, },
+  { "ftp", LOG_FTP, },
+  { "kern", LOG_KERN, },
+  { "lpr", LOG_LPR, },
+  { "mail", LOG_MAIL, },
+  { "mark", INTERNAL_MARK, },
+  { "news", LOG_NEWS, },
+  { "security", LOG_AUTH, },
+  { "syslog", LOG_SYSLOG, },
+  { "user", LOG_USER, },
+  { "uucp", LOG_UUCP, },
+  { "local0", LOG_LOCAL0, },
+  { "local1", LOG_LOCAL1, },
+  { "local2", LOG_LOCAL2, },
+  { "local3", LOG_LOCAL3, },
+  { "local4", LOG_LOCAL4, },
+  { "local5", LOG_LOCAL5, },
+  { "local6", LOG_LOCAL6, },
+  { "local7", LOG_LOCAL7, },
+  { NULL, -1, },
+};
+/* A bogus priority value for "none". */
+#define INTERNAL_NOPRI 8
+/** A table mapping priority names to values. */
+static const CODE prioritynames[] = {
+  { "alert", LOG_ALERT, },
+  { "crit", LOG_CRIT, },
+  { "debug", LOG_DEBUG, },
+  { "emerg", LOG_EMERG, },
+  { "err", LOG_ERR, },
+  { "error", LOG_ERR, },
+  { "info", LOG_INFO, },
+  { "none", INTERNAL_NOPRI, },
+  { "notice", LOG_NOTICE, },
+  { "panic", LOG_EMERG, },
+  { "warn", LOG_WARNING, },
+  { "warning", LOG_WARNING, },
+  { NULL, -1, },
+};
+#endif
+
 /**
- * [closelog(3)](http://man7.org/linux/man-pages/man3/closelog.3.html) does
+ * [closelog(3)](https://man7.org/linux/man-pages/man3/closelog.3.html) does
  * nothing on Android.
  */
 void closelog(void);
 
 /**
- * [openlog(3)](http://man7.org/linux/man-pages/man3/openlog.3.html) sets
+ * [openlog(3)](https://man7.org/linux/man-pages/man3/openlog.3.html) sets
  * the log tag to `__prefix`, which can be NULL to return to the default of
  * getprogname(). On Android, the other two arguments are ignored.
  */
 void openlog(const char* _Nullable __prefix, int __option, int __facility);
 
 /**
- * [setlogmask(3)](http://man7.org/linux/man-pages/man3/setlogmask.3.html)
+ * [setlogmask(3)](https://man7.org/linux/man-pages/man3/setlogmask.3.html)
  * sets which log priorities will actually be logged. See `LOG_MASK` and
  * `LOG_UPTO`.
  */
 int setlogmask(int __mask);
 
 /**
- * [syslog(3)](http://man7.org/linux/man-pages/man3/syslog.3.html) formats
+ * [syslog(3)](https://man7.org/linux/man-pages/man3/syslog.3.html) formats
  * the printf()-like message and logs it with the given priority, unless
  * suppressed by setlogmask(). On Android, the output goes to logcat.
  */
 void syslog(int __priority, const char* _Nonnull __fmt, ...) __printflike(2, 3);
 
 /**
- * [vsyslog(3)](http://man7.org/linux/man-pages/man3/vsyslog.3.html) formats
+ * [vsyslog(3)](https://man7.org/linux/man-pages/man3/vsyslog.3.html) formats
  * the vprintf()-like message and logs it with the given priority, unless
  * suppressed by setlogmask(). On Android, the output goes to logcat.
  */
diff --git a/libc/include/termios.h b/libc/include/termios.h
index 92ac24b..5eecfcd 100644
--- a/libc/include/termios.h
+++ b/libc/include/termios.h
@@ -46,109 +46,128 @@
 // in cfmakeraw() and cfsetspeed() until 28.
 
 /**
- * [cfgetispeed(3)](http://man7.org/linux/man-pages/man3/cfgetispeed.3.html)
+ * [cfgetispeed(3)](https://man7.org/linux/man-pages/man3/cfgetispeed.3.html)
  * returns the terminal input baud rate.
  */
-speed_t cfgetispeed(const struct termios* _Nonnull __t) __INTRODUCED_IN(21);
+speed_t cfgetispeed(const struct termios* _Nonnull __t);
 
 /**
- * [cfgetospeed(3)](http://man7.org/linux/man-pages/man3/cfgetospeed.3.html)
+ * [cfgetospeed(3)](https://man7.org/linux/man-pages/man3/cfgetospeed.3.html)
  * returns the terminal output baud rate.
  */
-speed_t cfgetospeed(const struct termios* _Nonnull __t) __INTRODUCED_IN(21);
+speed_t cfgetospeed(const struct termios* _Nonnull __t);
 
 /**
- * [cfmakeraw(3)](http://man7.org/linux/man-pages/man3/cfmakeraw.3.html)
+ * [cfmakeraw(3)](https://man7.org/linux/man-pages/man3/cfmakeraw.3.html)
  * configures the terminal for "raw" mode.
  */
-void cfmakeraw(struct termios* _Nonnull __t) __INTRODUCED_IN(21);
+void cfmakeraw(struct termios* _Nonnull __t);
 
 /**
- * [cfsetspeed(3)](http://man7.org/linux/man-pages/man3/cfsetspeed.3.html)
+ * [cfsetspeed(3)](https://man7.org/linux/man-pages/man3/cfsetspeed.3.html)
  * sets the terminal input and output baud rate.
  *
  * Returns 0 on success and returns -1 and sets `errno` on failure.
  */
-int cfsetspeed(struct termios* _Nonnull __t, speed_t __speed) __INTRODUCED_IN(21);
+int cfsetspeed(struct termios* _Nonnull __t, speed_t __speed);
 
 /**
- * [cfsetispeed(3)](http://man7.org/linux/man-pages/man3/cfsetispeed.3.html)
+ * [cfsetispeed(3)](https://man7.org/linux/man-pages/man3/cfsetispeed.3.html)
  * sets the terminal input baud rate.
  *
  * Returns 0 on success and returns -1 and sets `errno` on failure.
  */
-int cfsetispeed(struct termios* _Nonnull _t, speed_t __speed) __INTRODUCED_IN(21);
+int cfsetispeed(struct termios* _Nonnull _t, speed_t __speed);
 
 /**
- * [cfsetospeed(3)](http://man7.org/linux/man-pages/man3/cfsetospeed.3.html)
+ * [cfsetospeed(3)](https://man7.org/linux/man-pages/man3/cfsetospeed.3.html)
  * sets the terminal output baud rate.
  *
  * Returns 0 on success and returns -1 and sets `errno` on failure.
  */
-int cfsetospeed(struct termios* _Nonnull __t, speed_t __speed) __INTRODUCED_IN(21);
+int cfsetospeed(struct termios* _Nonnull __t, speed_t __speed);
 
 /**
- * [tcdrain(3)](http://man7.org/linux/man-pages/man3/tcdrain.3.html)
+ * [tcdrain(3)](https://man7.org/linux/man-pages/man3/tcdrain.3.html)
  * waits until all output has been written.
  *
  * Returns 0 on success and returns -1 and sets `errno` on failure.
  */
-int tcdrain(int __fd) __INTRODUCED_IN(21);
+int tcdrain(int __fd);
 
 /**
- * [tcflow(3)](http://man7.org/linux/man-pages/man3/tcflow.3.html)
+ * [tcflow(3)](https://man7.org/linux/man-pages/man3/tcflow.3.html)
  * suspends (`TCOOFF`) or resumes (`TCOON`) output, or transmits a
  * stop (`TCIOFF`) or start (`TCION`) to suspend or resume input.
  *
  * Returns 0 on success and returns -1 and sets `errno` on failure.
  */
-int tcflow(int __fd, int __action) __INTRODUCED_IN(21);
+int tcflow(int __fd, int __action);
 
 /**
- * [tcflush(3)](http://man7.org/linux/man-pages/man3/tcflush.3.html)
+ * [tcflush(3)](https://man7.org/linux/man-pages/man3/tcflush.3.html)
  * discards pending input (`TCIFLUSH`), output (`TCOFLUSH`), or
  * both (`TCIOFLUSH`). (In `<stdio.h>` terminology, this is a purge rather
  * than a flush.)
  *
  * Returns 0 on success and returns -1 and sets `errno` on failure.
  */
-int tcflush(int __fd, int __queue) __INTRODUCED_IN(21);
+int tcflush(int __fd, int __queue);
 
 /**
- * [tcgetattr(3)](http://man7.org/linux/man-pages/man3/tcgetattr.3.html)
+ * [tcgetattr(3)](https://man7.org/linux/man-pages/man3/tcgetattr.3.html)
  * reads the configuration of the given terminal.
  *
  * Returns 0 on success and returns -1 and sets `errno` on failure.
  */
-int tcgetattr(int __fd, struct termios* _Nonnull __t) __INTRODUCED_IN(21);
+int tcgetattr(int __fd, struct termios* _Nonnull __t);
 
 /**
- * [tcgetsid(3)](http://man7.org/linux/man-pages/man3/tcgetsid.3.html)
+ * [tcgetsid(3)](https://man7.org/linux/man-pages/man3/tcgetsid.3.html)
  * returns the session id corresponding to the given fd.
  *
  * Returns a non-negative session id on success and
  * returns -1 and sets `errno` on failure.
  */
-pid_t tcgetsid(int __fd) __INTRODUCED_IN(21);
+pid_t tcgetsid(int __fd);
 
 /**
- * [tcsendbreak(3)](http://man7.org/linux/man-pages/man3/tcsendbreak.3.html)
+ * [tcsendbreak(3)](https://man7.org/linux/man-pages/man3/tcsendbreak.3.html)
  * sends a break.
  *
  * Returns 0 on success and returns -1 and sets `errno` on failure.
  */
-int tcsendbreak(int __fd, int __duration) __INTRODUCED_IN(21);
+int tcsendbreak(int __fd, int __duration);
 
 /**
- * [tcsetattr(3)](http://man7.org/linux/man-pages/man3/tcsetattr.3.html)
+ * [tcsetattr(3)](https://man7.org/linux/man-pages/man3/tcsetattr.3.html)
  * writes the configuration of the given terminal.
  *
  * Returns 0 on success and returns -1 and sets `errno` on failure.
  */
-int tcsetattr(int __fd, int __optional_actions, const struct termios* _Nonnull __t) __INTRODUCED_IN(21);
+int tcsetattr(int __fd, int __optional_actions, const struct termios* _Nonnull __t);
 
 #endif
 
+#if __ANDROID_API__ >= 35
+// These two functions were POSIX Issue 8 additions that we can also trivially
+// implement as inlines for older OS version.
+
+/**
+ * tcgetwinsize(3) gets the window size of the given terminal.
+ *
+ * Returns 0 on success and returns -1 and sets `errno` on failure.
+ */
+int tcgetwinsize(int __fd, struct winsize* _Nonnull __size);
+
+/**
+ * tcsetwinsize(3) sets the window size of the given terminal.
+ *
+ * Returns 0 on success and returns -1 and sets `errno` on failure.
+ */
+int tcsetwinsize(int __fd, const struct winsize* _Nonnull __size);
+#endif
+
 __END_DECLS
 
 #include <android/legacy_termios_inlines.h>
diff --git a/libc/include/threads.h b/libc/include/threads.h
index b1008de..1074fa4 100644
--- a/libc/include/threads.h
+++ b/libc/include/threads.h
@@ -72,8 +72,10 @@
   thrd_timedout = 4,
 };
 
-#if !defined(__cplusplus)
-#define thread_local _Thread_local
+/* `thread_local` is a keyword in C++11 and C23; C11 had `_Thread_local` instead. */
+#if !defined(__cplusplus) && (__STDC_VERSION__ >= 201112L && __STDC_VERSION__ < 202311L)
+# undef thread_local
+# define thread_local _Thread_local
 #endif
 
 __BEGIN_DECLS
diff --git a/libc/include/time.h b/libc/include/time.h
index 5339540..6c9b761 100644
--- a/libc/include/time.h
+++ b/libc/include/time.h
@@ -26,8 +26,12 @@
  * SUCH DAMAGE.
  */
 
-#ifndef _TIME_H_
-#define _TIME_H_
+#pragma once
+
+/**
+ * @file time.h
+ * @brief Clock and timer functionality.
+ */
 
 #include <sys/cdefs.h>
 #include <sys/time.h>
@@ -35,79 +39,460 @@
 
 __BEGIN_DECLS
 
+/* If we just use void* in the typedef, the compiler exposes that in error messages. */
+struct __timezone_t;
+
+/**
+ * The `timezone_t` type that represents a timezone.
+ *
+ * To use this with std::unique_ptr you'll want something like
+ * `std::unique_ptr<std::remove_pointer_t<timezone_t>, decltype(&tzfree)> tz{tzalloc("Asia/Seoul"), tzfree};`
+ * to remove the pointer.
+ */
+typedef struct __timezone_t* timezone_t;
+
+/** Divisor to compute seconds from the result of a call to clock(). */
 #define CLOCKS_PER_SEC 1000000
 
+/**
+ * The name of the current timezone's non-daylight savings (`tzname[0]`) and
+ * daylight savings (`tzname[1]`) variants. See tzset().
+ */
 extern char* _Nonnull tzname[];
+
+/** Whether the current timezone ever uses daylight savings time. See tzset(). */
 extern int daylight;
+
+/** The difference in seconds between UTC and the current timezone. See tzset(). */
 extern long int timezone;
 
 struct sigevent;
 
+/**
+ * A "broken-down" time, useful for parsing/formatting times for human consumption.
+ */
 struct tm {
+  /** Seconds, 0-60. (60 is a leap second.) */
   int tm_sec;
+  /** Minutes, 0-59. */
   int tm_min;
+  /** Hours, 0-23. */
   int tm_hour;
+  /** Day of month, 1-31. */
   int tm_mday;
+  /** Month of year, 0-11. (Not 1-12!) */
   int tm_mon;
+  /** Years since 1900. (So 2023 is 123, not 2023!) */
   int tm_year;
+  /** Day of week, 0-6. (Sunday is 0, Saturday is 6.) */
   int tm_wday;
+  /** Day of year, 0-365. */
   int tm_yday;
+  /** Daylight savings flag, positive for DST in effect, 0 for DST not in effect, and -1 for unknown. */
   int tm_isdst;
+  /** Offset from UTC (GMT) in seconds for this time. */
   long int tm_gmtoff;
+  /** Name of the timezone for this time. */
   const char* _Nullable tm_zone;
 };
 
+/** Alternative name for `tm_zone` in `struct tm`. */
 #define TM_ZONE tm_zone
 
+/**
+ * [time(2)](https://man7.org/linux/man-pages/man2/time.2.html) returns
+ * the number of seconds since the Unix epoch (1970-01-01 00:00:00 +0000).
+ *
+ * Returns the time in seconds on success, and returns -1 and sets `errno` on failure.
+ */
 time_t time(time_t* _Nullable __t);
-int nanosleep(const struct timespec* _Nonnull __request, struct timespec* _Nullable __remainder);
 
+/**
+ * [nanosleep(2)](https://man7.org/linux/man-pages/man2/nanosleep.2.html) sleeps
+ * for at least the given time (or until a signal arrives).
+ *
+ * Returns 0 on success, and returns -1 and sets `errno` on failure. If the sleep
+ * was interrupted by a signal, `errno` will be `EINTR` and `remainder` will be
+ * the amount of time remaining.
+ */
+int nanosleep(const struct timespec* _Nonnull __duration, struct timespec* _Nullable __remainder);
+
+/**
+ * [asctime(3)](https://man7.org/linux/man-pages/man3/asctime.3p.html) formats
+ * the time `tm` as a string.
+ *
+ * Returns a pointer to a string on success, and returns NULL on failure.
+ *
+ * That string will be overwritten by later calls to this function.
+ *
+ * New code should prefer strftime().
+ */
 char* _Nullable asctime(const struct tm* _Nonnull __tm);
+
+/**
+ * [asctime_r(3)](https://man7.org/linux/man-pages/man3/asctime_r.3p.html) formats
+ * the time `tm` as a string in the given buffer `buf`.
+ *
+ * Returns a pointer to a string on success, and returns NULL on failure.
+ *
+ * New code should prefer strftime().
+ */
 char* _Nullable asctime_r(const struct tm* _Nonnull __tm, char* _Nonnull __buf);
 
+/**
+ * [difftime(3)](https://man7.org/linux/man-pages/man3/difftime.3.html) returns
+ * the difference between two times.
+ *
+ * Returns the difference in seconds.
+ */
 double difftime(time_t __lhs, time_t __rhs);
+
+/**
+ * [mktime(3)](https://man7.org/linux/man-pages/man3/mktime.3p.html) converts
+ * broken-down time `tm` into the number of seconds since the Unix epoch.
+ *
+ * See tzset() for details of how the timezone is set, and mktime_rz()
+ * for an alternative.
+ *
+ * Returns the time in seconds on success, and returns -1 and sets `errno` on failure.
+ */
 time_t mktime(struct tm* _Nonnull __tm);
 
+/**
+ * mktime_z(3) converts broken-down time `tm` into the number of seconds
+ * since the Unix epoch, assuming the given timezone.
+ *
+ * Returns the time in seconds on success, and returns -1 and sets `errno` on failure.
+ *
+ * Available since API level 35.
+ */
+
+#if __BIONIC_AVAILABILITY_GUARD(35)
+time_t mktime_z(timezone_t _Nonnull __tz, struct tm* _Nonnull __tm) __INTRODUCED_IN(35);
+#endif /* __BIONIC_AVAILABILITY_GUARD(35) */
+
+
+/**
+ * [localtime(3)](https://man7.org/linux/man-pages/man3/localtime.3p.html) converts
+ * the number of seconds since the Unix epoch in `t` to a broken-down time, taking
+ * the device's timezone into account.
+ *
+ * That broken-down time will be overwritten by later calls to this function.
+ *
+ * Returns a pointer to a broken-down time on success, and returns null and sets `errno` on failure.
+ */
 struct tm* _Nullable localtime(const time_t* _Nonnull __t);
+
+/**
+ * [localtime_r(3)](https://man7.org/linux/man-pages/man3/localtime_r.3p.html) converts
+ * the number of seconds since the Unix epoch in `t` to a broken-down time.
+ * That broken-down time will be written to the given struct `tm`.
+ *
+ * See tzset() for details of how the timezone is set, and localtime_rz()
+ * for an alternative.
+ *
+ * Returns a pointer to a broken-down time on success, and returns null and sets `errno` on failure.
+ */
 struct tm* _Nullable localtime_r(const time_t* _Nonnull __t, struct tm* _Nonnull __tm);
 
+/**
+ * localtime_rz(3) converts the number of seconds since the Unix epoch in
+ * `t` to a broken-down time, assuming the given timezone. That broken-down
+ * time will be written to the given struct `tm`.
+ *
+ * Returns a pointer to a broken-down time on success, and returns null and sets `errno` on failure.
+ *
+ * Available since API level 35.
+ */
+
+#if __BIONIC_AVAILABILITY_GUARD(35)
+struct tm* _Nullable localtime_rz(timezone_t _Nonnull __tz, const time_t* _Nonnull __t, struct tm* _Nonnull __tm) __INTRODUCED_IN(35);
+#endif /* __BIONIC_AVAILABILITY_GUARD(35) */
+
+
+/**
+ * Inverse of localtime().
+ */
+time_t timelocal(struct tm* _Nonnull __tm);
+
+/**
+ * [gmtime(3)](https://man7.org/linux/man-pages/man3/gmtime.3p.html) converts
+ * the number of seconds since the Unix epoch in `t` to a broken-down time, using
+ * UTC (historically also known as GMT).
+ *
+ * That broken-down time will be overwritten by later calls to this function.
+ *
+ * Returns a pointer to a broken-down time on success, and returns null and sets `errno` on failure.
+ */
 struct tm* _Nullable gmtime(const time_t* _Nonnull __t);
+
+/**
+ * [gmtime_r(3)](https://man7.org/linux/man-pages/man3/gmtime_r.3p.html) converts
+ * the number of seconds since the Unix epoch in `t` to a broken-down time, using
+ * UTC (historically also known as GMT).
+ *
+ * That broken-down time will be written to the provided struct `tm`.
+ *
+ * Returns a pointer to a broken-down time on success, and returns null and sets `errno` on failure.
+ */
 struct tm* _Nullable gmtime_r(const time_t* _Nonnull __t, struct tm* _Nonnull __tm);
 
-char* _Nullable strptime(const char* _Nonnull __s, const char* _Nonnull __fmt, struct tm* _Nonnull __tm) __strftimelike(2);
-char* _Nullable strptime_l(const char* _Nonnull __s, const char* _Nonnull __fmt, struct tm* _Nonnull __tm, locale_t _Nonnull __l) __strftimelike(2) __INTRODUCED_IN(28);
-
-size_t strftime(char* _Nonnull __buf, size_t __n, const char* _Nonnull __fmt, const struct tm* _Nullable __tm) __strftimelike(3);
-size_t strftime_l(char* _Nonnull __buf, size_t __n, const char* _Nonnull __fmt, const struct tm* _Nullable __tm, locale_t _Nonnull __l) __strftimelike(3) __INTRODUCED_IN(21);
-
-char* _Nullable ctime(const time_t* _Nonnull __t);
-char* _Nullable ctime_r(const time_t* _Nonnull __t, char* _Nonnull __buf);
-
-void tzset(void);
-
-clock_t clock(void);
-
-int clock_getcpuclockid(pid_t __pid, clockid_t* _Nonnull __clock) __INTRODUCED_IN(23);
-
-
-int clock_getres(clockid_t __clock, struct timespec* _Nullable __resolution);
-int clock_gettime(clockid_t __clock, struct timespec* _Nonnull __ts);
-int clock_nanosleep(clockid_t __clock, int __flags, const struct timespec* _Nonnull __request, struct timespec* _Nullable __remainder);
-int clock_settime(clockid_t __clock, const struct timespec* _Nonnull __ts);
-
-int timer_create(clockid_t __clock, struct sigevent* _Nullable __event, timer_t _Nonnull * _Nonnull __timer_ptr);
-int timer_delete(timer_t _Nonnull __timer);
-int timer_settime(timer_t _Nonnull __timer, int __flags, const struct itimerspec* _Nonnull __new_value, struct itimerspec* _Nullable __old_value);
-int timer_gettime(timer_t _Nonnull _timer, struct itimerspec* _Nonnull __ts);
-int timer_getoverrun(timer_t _Nonnull __timer);
-
-/* Non-standard extensions that are in the BSDs and glibc. */
-time_t timelocal(struct tm* _Nonnull __tm);
+/**
+ * Inverse of gmtime().
+ */
 time_t timegm(struct tm* _Nonnull __tm);
 
-#define TIME_UTC 1
+/**
+ * [strptime(3)](https://man7.org/linux/man-pages/man3/strptime.3.html) parses
+ * a string `s` assuming format `fmt` into broken-down time `tm`.
+ *
+ * Returns a pointer to the first character _not_ parsed, or null if no characters were parsed.
+ */
+char* _Nullable strptime(const char* _Nonnull __s, const char* _Nonnull __fmt, struct tm* _Nonnull __tm) __strftimelike(2);
+
+/**
+ * Equivalent to strptime() on Android where only C/POSIX locales are available.
+ */
+char* _Nullable strptime_l(const char* _Nonnull __s, const char* _Nonnull __fmt, struct tm* _Nonnull __tm, locale_t _Nonnull __l) __strftimelike(2) __RENAME(strptime);
+
+/**
+ * [strftime(3)](https://man7.org/linux/man-pages/man3/strftime.3.html) formats
+ * a broken-down time `tm` into the buffer `buf` using format `fmt`.
+ *
+ * Returns a pointer to the first character _not_ parsed, or null if no characters were parsed.
+ */
+size_t strftime(char* _Nonnull __buf, size_t __n, const char* _Nonnull __fmt, const struct tm* _Nullable __tm) __strftimelike(3);
+
+/**
+ * Equivalent to strftime() on Android where only C/POSIX locales are available.
+ */
+size_t strftime_l(char* _Nonnull __buf, size_t __n, const char* _Nonnull __fmt, const struct tm* _Nullable __tm, locale_t _Nonnull __l) __strftimelike(3);
+
+/**
+ * [ctime(3)](https://man7.org/linux/man-pages/man3/ctime.3p.html) formats
+ * the time `tm` as a string.
+ *
+ * Returns a pointer to a string on success, and returns NULL on failure.
+ *
+ * That string will be overwritten by later calls to this function.
+ *
+ * New code should prefer strftime().
+ */
+char* _Nullable ctime(const time_t* _Nonnull __t);
+
+/**
+ * [ctime_r(3)](https://man7.org/linux/man-pages/man3/ctime.3p.html) formats
+ * the time `tm` as a string in the given buffer `buf`.
+ *
+ * Returns a pointer to a string on success, and returns NULL on failure.
+ *
+ * New code should prefer strftime().
+ */
+char* _Nullable ctime_r(const time_t* _Nonnull __t, char* _Nonnull __buf);
+
+/**
+ * [tzset(3)](https://man7.org/linux/man-pages/man3/tzset.3.html) tells
+ * libc that the timezone has changed.
+ *
+ * tzset() on Android looks at both the system property
+ * `persist.sys.timezone` and the environment variable `TZ`. The former is
+ * the device's current timezone as shown in Settings, while the latter is
+ * usually unset but can be used to override the global setting. This is a
+ * bad idea outside of unit tests or single-threaded programs because it's
+ * inherently thread-unsafe. See tzalloc(), localtime_rz(), mktime_z(),
+ * and tzfree() for an alternative.
+ */
+void tzset(void);
+
+/**
+ * tzalloc(3) allocates a timezone corresponding to the given Olson ID.
+ *
+ * A null `id` returns the system timezone (as seen in Settings) from
+ * the system property `persist.sys.timezone`, ignoring `$TZ`. Although
+ * tzset() honors `$TZ`, callers of tzalloc() can use `$TZ` themselves if
+ * that's the (thread-unsafe) behavior they want, but by ignoring `$TZ`
+ * tzalloc() is thread safe (though obviously the system timezone can
+ * change, especially if your mobile device is actually mobile!).
+ *
+ * To use this with std::unique_ptr you'll want something like
+ * `std::unique_ptr<std::remove_pointer_t<timezone_t>, decltype(&tzfree)> tz{tzalloc("Asia/Seoul"), tzfree};`
+ * to remove the pointer.
+ *
+ * Returns a timezone object on success, and returns NULL and sets `errno` on failure.
+ *
+ * Available since API level 35.
+ */
+
+#if __BIONIC_AVAILABILITY_GUARD(35)
+timezone_t _Nullable tzalloc(const char* _Nullable __id) __INTRODUCED_IN(35);
+
+/**
+ * tzfree(3) frees a timezone object returned by tzalloc().
+ *
+ * To use this with std::unique_ptr you'll want something like
+ * `std::unique_ptr<std::remove_pointer_t<timezone_t>, decltype(&tzfree)> tz{tzalloc("Asia/Seoul"), tzfree};`
+ * to remove the pointer.
+ *
+ * Available since API level 35.
+ */
+void tzfree(timezone_t _Nullable __tz) __INTRODUCED_IN(35);
+#endif /* __BIONIC_AVAILABILITY_GUARD(35) */
+
+
+/**
+ * [clock(3)](https://man7.org/linux/man-pages/man3/clock.3.html)
+ * returns an approximation of CPU time used, equivalent to
+ * `clock_gettime(CLOCK_PROCESS_CPUTIME_ID)` but with more confusing
+ * units. Use `CLOCKS_PER_SEC` to convert the result to seconds.
+ *
+ * Returns the time in seconds on success, and returns -1 and sets `errno` on failure.
+ *
+ * New code should prefer `clock_gettime(CLOCK_PROCESS_CPUTIME_ID)`.
+ */
+clock_t clock(void);
+
+/**
+ * [clock_getcpuclockid(3)](https://man7.org/linux/man-pages/man3/clock_getcpuclockid.3.html)
+ * gets the clock ID of the cpu-time clock for the given `pid`.
+ *
+ * Returns 0 on success, and returns -1 and returns an error number on failure.
+ */
+
+#if __BIONIC_AVAILABILITY_GUARD(23)
+int clock_getcpuclockid(pid_t __pid, clockid_t* _Nonnull __clock) __INTRODUCED_IN(23);
+#endif /* __BIONIC_AVAILABILITY_GUARD(23) */
+
+
+/**
+ * [clock_getres(2)](https://man7.org/linux/man-pages/man2/clock_getres.2.html)
+ * gets the resolution of the given clock.
+ *
+ * Returns 0 on success, and returns -1 and returns an error number on failure.
+ */
+int clock_getres(clockid_t __clock, struct timespec* _Nullable __resolution);
+
+/**
+ * [clock_gettime(2)](https://man7.org/linux/man-pages/man2/clock_gettime.2.html)
+ * gets the time according to the given clock.
+ *
+ * Returns 0 on success, and returns -1 and returns an error number on failure.
+ */
+int clock_gettime(clockid_t __clock, struct timespec* _Nonnull __ts);
+
+/**
+ * [clock_nanosleep(2)](https://man7.org/linux/man-pages/man2/clock_nanosleep.2.html)
+ * sleeps for the given time (or until the given time if the TIMER_ABSTIME flag
+ * is used), as measured by the given clock.
+ *
+ * Returns 0 on success, and returns -1 and returns an error number on failure.
+ * If the sleep was interrupted by a signal, the return value will be `EINTR`
+ * and `remainder` will be the amount of time remaining.
+ */
+int clock_nanosleep(clockid_t __clock, int __flags, const struct timespec* _Nonnull __time, struct timespec* _Nullable __remainder);
+
+/**
+ * [clock_settime(2)](https://man7.org/linux/man-pages/man2/clock_settime.2.html)
+ * sets the time for the given clock.
+ *
+ * Returns 0 on success, and returns -1 and returns an error number on failure.
+ */
+int clock_settime(clockid_t __clock, const struct timespec* _Nonnull __ts);
+
+/**
+ * [timer_create(2)](https://man7.org/linux/man-pages/man2/timer_create.2.html)
+ * creates a POSIX timer.
+ *
+ * Returns 0 on success, and returns -1 and sets `errno` on failure.
+ */
+int timer_create(clockid_t __clock, struct sigevent* _Nullable __event, timer_t _Nonnull * _Nonnull __timer_ptr);
+
+/**
+ * [timer_delete(2)](https://man7.org/linux/man-pages/man2/timer_delete.2.html)
+ * destroys a POSIX timer.
+ *
+ * Returns 0 on success, and returns -1 and sets `errno` on failure.
+ */
+int timer_delete(timer_t _Nonnull __timer);
+
+/**
+ * [timer_settime(2)](https://man7.org/linux/man-pages/man2/timer_settime.2.html)
+ * starts or stops a POSIX timer.
+ *
+ * Returns 0 on success, and returns -1 and sets `errno` on failure.
+ */
+int timer_settime(timer_t _Nonnull __timer, int __flags, const struct itimerspec* _Nonnull __new_value, struct itimerspec* _Nullable __old_value);
+
+/**
+ * [timer_gettime(2)](https://man7.org/linux/man-pages/man2/timer_gettime.2.html)
+ * gets the time until the given timer next fires.
+ *
+ * Returns 0 on success, and returns -1 and sets `errno` on failure.
+ */
+int timer_gettime(timer_t _Nonnull _timer, struct itimerspec* _Nonnull __ts);
+
+/**
+ * [timer_getoverrun(2)](https://man7.org/linux/man-pages/man2/timer_getoverrun.2.html)
+ * gets the overrun count (the number of times the timer should have fired, but
+ * didn't) for the last time the timer fired.
+ *
+ * Returns the overrun count on success, and returns -1 and sets `errno` on failure.
+ */
+int timer_getoverrun(timer_t _Nonnull __timer);
+
+/**
+ * The timebase for timespec_get() and timespec_getres() corresponding to CLOCK_REALTIME.
+ *
+ * Available since API level 29.
+ */
+#define TIME_UTC (CLOCK_REALTIME+1)
+
+/**
+ * The timebase for timespec_get() and timespec_getres() corresponding to CLOCK_MONOTONIC.
+ *
+ * Available since API level 35.
+ */
+#define TIME_MONOTONIC (CLOCK_MONOTONIC+1)
+
+/**
+ * The timebase for timespec_get() and timespec_getres() corresponding to CLOCK_PROCESS_CPUTIME_ID.
+ *
+ * Available since API level 35.
+ */
+#define TIME_ACTIVE (CLOCK_PROCESS_CPUTIME_ID+1)
+
+/**
+ * The timebase for timespec_get() and timespec_getres() corresponding to CLOCK_THREAD_CPUTIME_ID.
+ *
+ * Available since API level 35.
+ */
+#define TIME_THREAD_ACTIVE (CLOCK_THREAD_CPUTIME_ID+1)
+
+/**
+ * timespec_get(3) is equivalent to clock_gettime() for the clock corresponding to the given base.
+ *
+ * Returns the base on success and returns 0 on failure.
+ *
+ * Available since API level 29 for TIME_UTC; other bases arrived later.
+ * Code for Android should prefer clock_gettime().
+ */
+
+#if __BIONIC_AVAILABILITY_GUARD(29)
 int timespec_get(struct timespec* _Nonnull __ts, int __base) __INTRODUCED_IN(29);
+#endif /* __BIONIC_AVAILABILITY_GUARD(29) */
+
+
+/**
+ * timespec_getres(3) is equivalent to clock_getres() for the clock corresponding to the given base.
+ *
+ * Returns the base on success and returns 0 on failure.
+ *
+ * Available since API level 35.
+ * Code for Android should prefer clock_gettime().
+ */
+
+#if __BIONIC_AVAILABILITY_GUARD(35)
+int timespec_getres(struct timespec* _Nonnull __ts, int __base) __INTRODUCED_IN(35);
+#endif /* __BIONIC_AVAILABILITY_GUARD(35) */
+
 
 __END_DECLS
-
-#endif
diff --git a/libc/include/time64.h b/libc/include/time64.h
index 7d70030..8d31c6f 100644
--- a/libc/include/time64.h
+++ b/libc/include/time64.h
@@ -24,9 +24,6 @@
 OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 THE SOFTWARE.
 
-Origin: http://code.google.com/p/y2038
-Modified for Bionic by the Android Open Source Project
-
 */
 #ifndef TIME64_H
 #define TIME64_H
diff --git a/libc/include/uchar.h b/libc/include/uchar.h
index 90af651..94efb2d 100644
--- a/libc/include/uchar.h
+++ b/libc/include/uchar.h
@@ -33,8 +33,11 @@
  * @brief Unicode functions.
  */
 
-#include <stddef.h>
 #include <sys/cdefs.h>
+
+#include <stddef.h>
+
+#include <bits/bionic_multibyte_result.h>
 #include <bits/mbstate_t.h>
 
 __BEGIN_DECLS
@@ -53,41 +56,33 @@
 #define __STD_UTF_32__ 1
 
 /**
- * [c16rtomb(3)](http://man7.org/linux/man-pages/man3/c16rtomb.3.html) converts a single UTF-16
+ * [c16rtomb(3)](https://man7.org/linux/man-pages/man3/c16rtomb.3.html) converts a single UTF-16
  * character to UTF-8.
  *
  * Returns the number of bytes written to `__buf` on success, and returns -1 and sets `errno`
  * on failure.
- *
- * Available since API level 21.
  */
-size_t c16rtomb(char* _Nullable __buf, char16_t __ch16, mbstate_t* _Nullable __ps) __INTRODUCED_IN(21);
+size_t c16rtomb(char* _Nullable __buf, char16_t __ch16, mbstate_t* _Nullable __ps);
 
 /**
- * [c32rtomb(3)](http://man7.org/linux/man-pages/man3/c32rtomb.3.html) converts a single UTF-32
+ * [c32rtomb(3)](https://man7.org/linux/man-pages/man3/c32rtomb.3.html) converts a single UTF-32
  * character to UTF-8.
  *
  * Returns the number of bytes written to `__buf` on success, and returns -1 and sets `errno`
  * on failure.
- *
- * Available since API level 21.
  */
-size_t c32rtomb(char* _Nullable __buf, char32_t __ch32, mbstate_t* _Nullable __ps) __INTRODUCED_IN(21);
+size_t c32rtomb(char* _Nullable __buf, char32_t __ch32, mbstate_t* _Nullable __ps);
 
 /**
- * [mbrtoc16(3)](http://man7.org/linux/man-pages/man3/mbrtoc16.3.html) converts the next UTF-8
+ * [mbrtoc16(3)](https://man7.org/linux/man-pages/man3/mbrtoc16.3.html) converts the next UTF-8
  * sequence to a UTF-16 code point.
- *
- * Available since API level 21.
  */
-size_t mbrtoc16(char16_t* _Nullable __ch16, const char* _Nullable __s, size_t __n, mbstate_t* _Nullable __ps) __INTRODUCED_IN(21);
+size_t mbrtoc16(char16_t* _Nullable __ch16, const char* _Nullable __s, size_t __n, mbstate_t* _Nullable __ps);
 
 /**
- * [mbrtoc32(3)](http://man7.org/linux/man-pages/man3/mbrtoc32.3.html) converts the next UTF-8
+ * [mbrtoc32(3)](https://man7.org/linux/man-pages/man3/mbrtoc32.3.html) converts the next UTF-8
  * sequence to a UTF-32 code point.
- *
- * Available since API level 21.
  */
-size_t mbrtoc32(char32_t* _Nullable __ch32, const char* _Nullable __s, size_t __n, mbstate_t* _Nullable __ps) __INTRODUCED_IN(21);
+size_t mbrtoc32(char32_t* _Nullable __ch32, const char* _Nullable __s, size_t __n, mbstate_t* _Nullable __ps);
 
 __END_DECLS
diff --git a/libc/include/unistd.h b/libc/include/unistd.h
index 7ad94e1..e623339 100644
--- a/libc/include/unistd.h
+++ b/libc/include/unistd.h
@@ -28,12 +28,14 @@
 
 #pragma once
 
-#include <stddef.h>
 #include <sys/cdefs.h>
+
+#include <stddef.h>
 #include <sys/types.h>
 #include <sys/select.h>
 
 #include <bits/fcntl.h>
+#include <bits/getentropy.h>
 #include <bits/getopt.h>
 #include <bits/ioctl.h>
 #include <bits/lockf.h>
@@ -77,32 +79,87 @@
 
 __noreturn void _exit(int __status);
 
-pid_t  fork(void);
-pid_t  vfork(void) __returns_twice;
+/**
+ * [fork(2)](https://man7.org/linux/man-pages/man2/fork.2.html) creates a new
+ * process. fork() runs any handlers set by pthread_atfork().
+ *
+ * Returns 0 in the child, the pid of the child in the parent,
+ * and returns -1 and sets `errno` on failure.
+ */
+pid_t fork(void);
+
+/**
+ * _Fork() creates a new process. _Fork() differs from fork() in that it does
+ * not run any handlers set by pthread_atfork(). In addition to any user-defined
+ * ones, bionic uses pthread_atfork() handlers to ensure consistency of its own
+ * state, so the child should only call
+ * [POSIX async-safe](https://man7.org/linux/man-pages/man7/signal-safety.7.html)
+ * functions.
+ *
+ * Returns 0 in the child, the pid of the child in the parent,
+ * and returns -1 and sets `errno` on failure.
+ *
+ * Available since API level 35.
+ */
+
+#if __BIONIC_AVAILABILITY_GUARD(35)
+pid_t _Fork(void) __INTRODUCED_IN(35);
+#endif /* __BIONIC_AVAILABILITY_GUARD(35) */
+
+
+/**
+ * [vfork(2)](https://man7.org/linux/man-pages/man2/vfork.2.html) creates a new
+ * process. vfork() differs from fork() in that it does not run any handlers
+ * set by pthread_atfork(), and the parent is suspended until the child calls
+ * exec() or exits.
+ *
+ * Returns 0 in the child, the pid of the child in the parent,
+ * and returns -1 and sets `errno` on failure.
+ */
+pid_t vfork(void) __returns_twice;
+
+/**
+ * [getpid(2)](https://man7.org/linux/man-pages/man2/getpid.2.html) returns
+ * the caller's process ID.
+ *
+ * Returns the caller's process ID.
+ */
 pid_t  getpid(void);
-pid_t  gettid(void) __attribute_const__;
+
+/**
+ * [gettid(2)](https://man7.org/linux/man-pages/man2/gettid.2.html) returns
+ * the caller's thread ID.
+ *
+ * Returns the caller's thread ID.
+ */
+pid_t  gettid(void);
+
 pid_t  getpgid(pid_t __pid);
 int    setpgid(pid_t __pid, pid_t __pgid);
 pid_t  getppid(void);
 pid_t  getpgrp(void);
 int    setpgrp(void);
-pid_t  getsid(pid_t __pid) __INTRODUCED_IN(17);
+pid_t  getsid(pid_t __pid);
 pid_t  setsid(void);
 
 int execv(const char* _Nonnull __path, char* _Nullable const* _Nullable __argv);
 int execvp(const char* _Nonnull __file, char* _Nullable const* _Nullable __argv);
-int execvpe(const char* _Nonnull __file, char* _Nullable const* _Nullable __argv, char* _Nullable const* _Nullable __envp) __INTRODUCED_IN(21);
+int execvpe(const char* _Nonnull __file, char* _Nullable const* _Nullable __argv, char* _Nullable const* _Nullable __envp);
 int execve(const char* _Nonnull __file, char* _Nullable const* _Nullable __argv, char* _Nullable const* _Nullable __envp);
 int execl(const char* _Nonnull __path, const char* _Nullable __arg0, ...) __attribute__((__sentinel__));
 int execlp(const char* _Nonnull __file, const char* _Nullable __arg0, ...) __attribute__((__sentinel__));
 int execle(const char* _Nonnull __path, const char* _Nullable __arg0, ... /*,  char* const* __envp */)
     __attribute__((__sentinel__(1)));
+
+#if __BIONIC_AVAILABILITY_GUARD(28)
 int fexecve(int __fd, char* _Nullable const* _Nullable __argv, char* _Nullable const* _Nullable __envp) __INTRODUCED_IN(28);
+#endif /* __BIONIC_AVAILABILITY_GUARD(28) */
+
 
 int nice(int __incr);
 
 /**
- * [setegid(2)](http://man7.org/linux/man-pages/man2/setegid.2.html) sets
+ * [setegid(2)](https://man7.org/linux/man-pages/man2/setegid.2.html) sets
  * the effective group ID.
  *
  * On Android, this function only affects the calling thread, not all threads
@@ -113,7 +170,7 @@
 int setegid(gid_t __gid);
 
 /**
- * [seteuid(2)](http://man7.org/linux/man-pages/man2/seteuid.2.html) sets
+ * [seteuid(2)](https://man7.org/linux/man-pages/man2/seteuid.2.html) sets
  * the effective user ID.
  *
  * On Android, this function only affects the calling thread, not all threads
@@ -124,7 +181,7 @@
 int seteuid(uid_t __uid);
 
 /**
- * [setgid(2)](http://man7.org/linux/man-pages/man2/setgid.2.html) sets
+ * [setgid(2)](https://man7.org/linux/man-pages/man2/setgid.2.html) sets
  * the group ID.
  *
  * On Android, this function only affects the calling thread, not all threads
@@ -135,7 +192,7 @@
 int setgid(gid_t __gid);
 
 /**
- * [setregid(2)](http://man7.org/linux/man-pages/man2/setregid.2.html) sets
+ * [setregid(2)](https://man7.org/linux/man-pages/man2/setregid.2.html) sets
  * the real and effective group IDs (use -1 to leave an ID unchanged).
  *
  * On Android, this function only affects the calling thread, not all threads
@@ -146,7 +203,7 @@
 int setregid(gid_t __rgid, gid_t __egid);
 
 /**
- * [setresgid(2)](http://man7.org/linux/man-pages/man2/setresgid.2.html) sets
+ * [setresgid(2)](https://man7.org/linux/man-pages/man2/setresgid.2.html) sets
  * the real, effective, and saved group IDs (use -1 to leave an ID unchanged).
  *
  * On Android, this function only affects the calling thread, not all threads
@@ -157,7 +214,7 @@
 int setresgid(gid_t __rgid, gid_t __egid, gid_t __sgid);
 
 /**
- * [setresuid(2)](http://man7.org/linux/man-pages/man2/setresuid.2.html) sets
+ * [setresuid(2)](https://man7.org/linux/man-pages/man2/setresuid.2.html) sets
  * the real, effective, and saved user IDs (use -1 to leave an ID unchanged).
  *
  * On Android, this function only affects the calling thread, not all threads
@@ -168,7 +225,7 @@
 int setresuid(uid_t __ruid, uid_t __euid, uid_t __suid);
 
 /**
- * [setreuid(2)](http://man7.org/linux/man-pages/man2/setreuid.2.html) sets
+ * [setreuid(2)](https://man7.org/linux/man-pages/man2/setreuid.2.html) sets
  * the real and effective group IDs (use -1 to leave an ID unchanged).
  *
  * On Android, this function only affects the calling thread, not all threads
@@ -179,7 +236,7 @@
 int setreuid(uid_t __ruid, uid_t __euid);
 
 /**
- * [setuid(2)](http://man7.org/linux/man-pages/man2/setuid.2.html) sets
+ * [setuid(2)](https://man7.org/linux/man-pages/man2/setuid.2.html) sets
  * the user ID.
  *
  * On Android, this function only affects the calling thread, not all threads
@@ -198,7 +255,11 @@
 int getresuid(uid_t* _Nonnull __ruid, uid_t* _Nonnull __euid, uid_t* _Nonnull __suid);
 int getresgid(gid_t* _Nonnull __rgid, gid_t* _Nonnull __egid, gid_t* _Nonnull __sgid);
 char* _Nullable getlogin(void);
+
+#if __BIONIC_AVAILABILITY_GUARD(28)
 int getlogin_r(char* _Nonnull __buffer, size_t __buffer_size) __INTRODUCED_IN(28);
+#endif /* __BIONIC_AVAILABILITY_GUARD(28) */
+
 
 long fpathconf(int __fd, int __name);
 long pathconf(const char* _Nonnull __path, int __name);
@@ -206,11 +267,32 @@
 int access(const char* _Nonnull __path, int __mode);
 int faccessat(int __dirfd, const char* _Nonnull __path, int __mode, int __flags);
 int link(const char* _Nonnull __old_path, const char* _Nonnull __new_path);
-int linkat(int __old_dir_fd, const char* _Nonnull __old_path, int __new_dir_fd, const char* _Nonnull __new_path, int __flags) __INTRODUCED_IN(21);
+int linkat(int __old_dir_fd, const char* _Nonnull __old_path, int __new_dir_fd, const char* _Nonnull __new_path, int __flags);
 int unlink(const char* _Nonnull __path);
 int unlinkat(int __dirfd, const char* _Nonnull __path, int __flags);
+
+/**
+ * [chdir(2)](https://man7.org/linux/man-pages/man2/chdir.2.html) changes
+ * the current working directory to the given path.
+ *
+ * This function affects all threads in the process, so is generally a bad idea
+ * on Android where most code will be running in a multi-threaded context.
+ *
+ * Returns 0 on success, and returns -1 and sets `errno` on failure.
+ */
 int chdir(const char* _Nonnull __path);
+
+/**
+ * [fchdir(2)](https://man7.org/linux/man-pages/man2/chdir.2.html) changes
+ * the current working directory to the given fd.
+ *
+ * This function affects all threads in the process, so is generally a bad idea
+ * on Android where most code will be running in a multi-threaded context.
+ *
+ * Returns 0 on success, and returns -1 and sets `errno` on failure.
+ */
 int fchdir(int __fd);
+
 int rmdir(const char* _Nonnull __path);
 int pipe(int __fds[_Nonnull 2]);
 #if defined(__USE_GNU)
@@ -218,10 +300,9 @@
 #endif
 int chroot(const char* _Nonnull __path);
 int symlink(const char* _Nonnull __old_path, const char* _Nonnull __new_path);
-int symlinkat(const char* _Nonnull __old_path, int __new_dir_fd, const char* _Nonnull __new_path) __INTRODUCED_IN(21);
+int symlinkat(const char* _Nonnull __old_path, int __new_dir_fd, const char* _Nonnull __new_path);
 ssize_t readlink(const char* _Nonnull __path, char* _Nonnull __buf, size_t __buf_size);
-ssize_t readlinkat(int __dir_fd, const char* _Nonnull __path, char* _Nonnull __buf, size_t __buf_size)
-    __INTRODUCED_IN(21);
+ssize_t readlinkat(int __dir_fd, const char* _Nonnull __path, char* _Nonnull __buf, size_t __buf_size);
 int chown(const char* _Nonnull __path, uid_t __owner, gid_t __group);
 int fchown(int __fd, uid_t __owner, gid_t __group);
 int fchownat(int __dir_fd, const char* _Nonnull __path, uid_t __owner, gid_t __group, int __flags);
@@ -230,7 +311,11 @@
 
 void sync(void);
 #if defined(__USE_GNU)
+
+#if __BIONIC_AVAILABILITY_GUARD(28)
 int syncfs(int __fd) __INTRODUCED_IN(28);
+#endif /* __BIONIC_AVAILABILITY_GUARD(28) */
+
 #endif
 
 int close(int __fd);
@@ -261,13 +346,13 @@
 
 int dup(int __old_fd);
 int dup2(int __old_fd, int __new_fd);
-int dup3(int __old_fd, int __new_fd, int __flags) __INTRODUCED_IN(21);
+int dup3(int __old_fd, int __new_fd, int __flags);
 int fsync(int __fd);
 int fdatasync(int __fd);
 
-/* See https://android.googlesource.com/platform/bionic/+/master/docs/32-bit-abi.md */
+/* See https://android.googlesource.com/platform/bionic/+/main/docs/32-bit-abi.md */
 #if defined(__USE_FILE_OFFSET64)
-int truncate(const char* _Nonnull __path, off_t __length) __RENAME(truncate64) __INTRODUCED_IN(21);
+int truncate(const char* _Nonnull __path, off_t __length) __RENAME(truncate64);
 off_t lseek(int __fd, off_t __offset, int __whence) __RENAME(lseek64);
 ssize_t pread(int __fd, void* _Nonnull __buf, size_t __count, off_t __offset) __RENAME(pread64);
 ssize_t pwrite(int __fd, const void* _Nonnull __buf, size_t __count, off_t __offset) __RENAME(pwrite64);
@@ -280,7 +365,7 @@
 int ftruncate(int __fd, off_t __length);
 #endif
 
-int truncate64(const char* _Nonnull __path, off64_t __length) __INTRODUCED_IN(21);
+int truncate64(const char* _Nonnull __path, off64_t __length);
 off64_t lseek64(int __fd, off64_t __offset, int __whence);
 ssize_t pread64(int __fd, void* _Nonnull __buf, size_t __count, off64_t __offset);
 ssize_t pwrite64(int __fd, const void* _Nonnull __buf, size_t __count, off64_t __offset);
@@ -292,7 +377,11 @@
 int usleep(useconds_t __microseconds);
 
 int gethostname(char* _Nonnull _buf, size_t __buf_size);
+
+#if __BIONIC_AVAILABILITY_GUARD(23)
 int sethostname(const char* _Nonnull __name, size_t __n) __INTRODUCED_IN(23);
+#endif /* __BIONIC_AVAILABILITY_GUARD(23) */
+
 
 int brk(void* _Nonnull __addr);
 void* _Nullable sbrk(ptrdiff_t __increment);
@@ -303,15 +392,25 @@
 
 int acct(const char* _Nullable __path);
 
-int getpagesize(void) __INTRODUCED_IN(21);
+/**
+ * [getpagesize(2)](https://man7.org/linux/man-pages/man2/getpagesize.2.html)
+ * returns the system's page size. This is slightly faster than going via
+ * sysconf(), and avoids the linear search in getauxval().
+ *
+ * Returns the system's page size in bytes.
+ */
+int getpagesize(void) __attribute_const__;
 
 long syscall(long __number, ...);
 
 int daemon(int __no_chdir, int __no_close);
 
 #if defined(__arm__)
+/**
+ * New code should use __builtin___clear_cache() instead, which works on
+ * all architectures.
+ */
 int cacheflush(long __addr, long __nbytes, long __cache);
-    /* __attribute__((deprecated("use __builtin___clear_cache instead"))); */
 #endif
 
 pid_t tcgetpgrp(int __fd);
@@ -325,8 +424,12 @@
     } while (_rc == -1 && errno == EINTR); \
     _rc; })
 
+
+#if __BIONIC_AVAILABILITY_GUARD(26)
 int getdomainname(char* _Nonnull __buf, size_t __buf_size) __INTRODUCED_IN(26);
 int setdomainname(const char* _Nonnull __name, size_t __n) __INTRODUCED_IN(26);
+#endif /* __BIONIC_AVAILABILITY_GUARD(26) */
+
 
 /**
  * [copy_file_range(2)](https://man7.org/linux/man-pages/man2/copy_file_range.2.html) copies
@@ -337,7 +440,11 @@
  * Returns the number of bytes copied on success, and returns -1 and sets
  * `errno` on failure.
  */
+
+#if __BIONIC_AVAILABILITY_GUARD(34)
 ssize_t copy_file_range(int __fd_in, off64_t* _Nullable __off_in, int __fd_out, off64_t* _Nullable __off_out, size_t __length, unsigned int __flags) __INTRODUCED_IN(34);
+#endif /* __BIONIC_AVAILABILITY_GUARD(34) */
+
 
 #if __ANDROID_API__ >= 28
 void swab(const void* _Nonnull __src, void* _Nonnull __dst, ssize_t __byte_count) __INTRODUCED_IN(28);
@@ -357,7 +464,11 @@
  *
  * Returns 0 on success, and returns -1 and sets `errno` on failure.
  */
+
+#if __BIONIC_AVAILABILITY_GUARD(34)
 int close_range(unsigned int __min_fd, unsigned int __max_fd, int __flags) __INTRODUCED_IN(34);
+#endif /* __BIONIC_AVAILABILITY_GUARD(34) */
+
 
 #if defined(__BIONIC_INCLUDE_FORTIFY_HEADERS)
 #define _UNISTD_H_
diff --git a/libc/include/utime.h b/libc/include/utime.h
index 4d181a8..f06a028 100644
--- a/libc/include/utime.h
+++ b/libc/include/utime.h
@@ -40,7 +40,7 @@
 __BEGIN_DECLS
 
 /**
- * [utime(2)](http://man7.org/linux/man-pages/man2/utime.2.html) changes the access and
+ * [utime(2)](https://man7.org/linux/man-pages/man2/utime.2.html) changes the access and
  * modification time of `__filename`. If `__times` is null, the current time is used.
  *
  * New code should prefer utimensat().
diff --git a/libc/include/utmp.h b/libc/include/utmp.h
index d249f8a..1674491 100644
--- a/libc/include/utmp.h
+++ b/libc/include/utmp.h
@@ -131,6 +131,10 @@
  *
  * Available since API level 23.
  */
+
+#if __BIONIC_AVAILABILITY_GUARD(23)
 int login_tty(int __fd) __INTRODUCED_IN(23);
+#endif /* __BIONIC_AVAILABILITY_GUARD(23) */
+
 
 __END_DECLS
diff --git a/libc/include/wchar.h b/libc/include/wchar.h
index 39f9374..56594dc 100644
--- a/libc/include/wchar.h
+++ b/libc/include/wchar.h
@@ -37,6 +37,7 @@
 #include <time.h>
 #include <xlocale.h>
 
+#include <bits/bionic_multibyte_result.h>
 #include <bits/mbstate_t.h>
 #include <bits/wchar_limits.h>
 #include <bits/wctype.h>
@@ -57,23 +58,28 @@
 size_t mbrlen(const char* _Nullable __s, size_t __n, mbstate_t* _Nullable __ps);
 size_t mbrtowc(wchar_t* _Nullable __buf, const char* _Nullable __s, size_t __n, mbstate_t* _Nullable __ps);
 size_t mbsrtowcs(wchar_t* _Nullable __dst, const char* _Nullable * _Nonnull __src, size_t __dst_n, mbstate_t* _Nullable __ps);
-size_t mbsnrtowcs(wchar_t* _Nullable __dst, const char* _Nullable * _Nullable  __src, size_t __src_n, size_t __dst_n, mbstate_t* _Nullable __ps) __INTRODUCED_IN(21);
+size_t mbsrtowcs_l(wchar_t* _Nullable __dst, const char* _Nullable * _Nonnull __src, size_t __dst_n, mbstate_t* _Nullable __ps, locale_t _Nonnull __l) __RENAME(mbsrtowcs);
+size_t mbsnrtowcs(wchar_t* _Nullable __dst, const char* _Nullable * _Nullable  __src, size_t __src_n, size_t __dst_n, mbstate_t* _Nullable __ps);
 wint_t putwc(wchar_t __wc, FILE* _Nonnull __fp);
 wint_t putwchar(wchar_t __wc);
 int swprintf(wchar_t* _Nonnull __buf, size_t __n, const wchar_t* _Nonnull __fmt, ...);
 int swscanf(const wchar_t* _Nonnull __s, const wchar_t* _Nonnull __fmt, ...);
 wint_t ungetwc(wint_t __wc, FILE* _Nonnull __fp);
 int vfwprintf(FILE* _Nonnull __fp, const wchar_t* _Nonnull __fmt, va_list __args);
-int vfwscanf(FILE* _Nonnull __fp, const wchar_t* _Nonnull __fmt, va_list __args) __INTRODUCED_IN(21);
+int vfwscanf(FILE* _Nonnull __fp, const wchar_t* _Nonnull __fmt, va_list __args);
 int vswprintf(wchar_t* _Nonnull __buf, size_t __n, const wchar_t* _Nonnull __fmt, va_list __args);
-int vswscanf(const wchar_t* _Nonnull __s, const wchar_t* _Nonnull __fmt, va_list __args) __INTRODUCED_IN(21);
+int vswscanf(const wchar_t* _Nonnull __s, const wchar_t* _Nonnull __fmt, va_list __args);
 int vwprintf(const wchar_t* _Nonnull __fmt, va_list __args);
-int vwscanf(const wchar_t* _Nonnull __fmt, va_list __args) __INTRODUCED_IN(21);
+int vwscanf(const wchar_t* _Nonnull __fmt, va_list __args);
 wchar_t* _Nonnull wcpcpy(wchar_t* _Nonnull __dst, const wchar_t* _Nonnull __src);
 wchar_t* _Nonnull wcpncpy(wchar_t* _Nonnull __dst, const wchar_t* _Nonnull __src, size_t __n);
 size_t wcrtomb(char* _Nullable __buf, wchar_t __wc, mbstate_t* _Nullable __ps);
 int wcscasecmp(const wchar_t* _Nonnull __lhs, const wchar_t* _Nonnull __rhs);
+
+#if __BIONIC_AVAILABILITY_GUARD(23)
 int wcscasecmp_l(const wchar_t* _Nonnull __lhs, const wchar_t* _Nonnull __rhs, locale_t _Nonnull __l) __INTRODUCED_IN(23);
+#endif /* __BIONIC_AVAILABILITY_GUARD(23) */
+
 wchar_t* _Nonnull wcscat(wchar_t* _Nonnull __dst, const wchar_t* _Nonnull __src);
 wchar_t* _Nullable wcschr(const wchar_t * _Nonnull __s, wchar_t __wc);
 int wcscmp(const wchar_t* _Nonnull __lhs, const wchar_t* _Nonnull __rhs);
@@ -81,31 +87,40 @@
 wchar_t* _Nonnull wcscpy(wchar_t* _Nonnull __dst, const wchar_t* _Nonnull __src);
 size_t wcscspn(const wchar_t* _Nonnull __s, const wchar_t* _Nonnull __accept);
 size_t wcsftime(wchar_t* _Nonnull __buf, size_t __n, const wchar_t* _Nullable __fmt, const struct tm* _Nonnull __tm);
+
+#if __BIONIC_AVAILABILITY_GUARD(28)
 size_t wcsftime_l(wchar_t* _Nonnull __buf, size_t __n, const wchar_t* _Nullable __fmt, const struct tm* _Nonnull __tm, locale_t _Nonnull __l) __INTRODUCED_IN(28);
+#endif /* __BIONIC_AVAILABILITY_GUARD(28) */
+
 size_t wcslen(const wchar_t* _Nonnull __s);
 int wcsncasecmp(const wchar_t* _Nonnull __lhs, const wchar_t* _Nonnull __rhs, size_t __n);
+
+#if __BIONIC_AVAILABILITY_GUARD(23)
 int wcsncasecmp_l(const wchar_t* _Nonnull __lhs, const wchar_t* _Nonnull __rhs, size_t __n, locale_t _Nonnull __l) __INTRODUCED_IN(23);
+#endif /* __BIONIC_AVAILABILITY_GUARD(23) */
+
 wchar_t* _Nonnull wcsncat(wchar_t* _Nonnull __dst, const wchar_t* _Nonnull __src, size_t __n);
 int wcsncmp(const wchar_t* _Nonnull __lhs, const wchar_t* _Nonnull __rhs, size_t __n);
 wchar_t* _Nonnull wcsncpy(wchar_t* _Nonnull __dst, const wchar_t* _Nonnull __src, size_t __n);
-size_t wcsnrtombs(char* _Nullable __dst, const wchar_t* __BIONIC_COMPLICATED_NULLNESS * _Nullable __src, size_t __src_n, size_t __dst_n, mbstate_t* _Nullable __ps) __INTRODUCED_IN(21);
+size_t wcsnrtombs(char* _Nullable __dst, const wchar_t* __BIONIC_COMPLICATED_NULLNESS * _Nullable __src, size_t __src_n, size_t __dst_n, mbstate_t* _Nullable __ps);
 wchar_t* _Nullable wcspbrk(const wchar_t* _Nonnull __s, const wchar_t* _Nonnull __accept);
 wchar_t* _Nullable wcsrchr(const wchar_t* _Nonnull __s, wchar_t __wc);
 size_t wcsrtombs(char* _Nullable __dst, const wchar_t* __BIONIC_COMPLICATED_NULLNESS * _Nullable __src, size_t __dst_n, mbstate_t* _Nullable __ps);
+size_t wcsrtombs_l(char* _Nullable __dst, const wchar_t* __BIONIC_COMPLICATED_NULLNESS * _Nullable __src, size_t __dst_n, mbstate_t* _Nullable __ps, locale_t _Nonnull __l) __RENAME(wcsrtombs);
 size_t wcsspn(const wchar_t* _Nonnull __s, const wchar_t* _Nonnull __accept);
 wchar_t* _Nullable wcsstr(const wchar_t* _Nonnull __haystack, const wchar_t* _Nonnull __needle);
 double wcstod(const wchar_t* _Nonnull __s, wchar_t* __BIONIC_COMPLICATED_NULLNESS * _Nullable __end_ptr);
-double wcstod_l(const wchar_t* _Nonnull __s, wchar_t* __BIONIC_COMPLICATED_NULLNESS * _Nullable __end_ptr, locale_t _Nonnull __l) __INTRODUCED_IN(28);
-float wcstof(const wchar_t* _Nonnull __s, wchar_t* __BIONIC_COMPLICATED_NULLNESS * _Nullable __end_ptr) __INTRODUCED_IN(21);
-float wcstof_l(const wchar_t* _Nonnull __s, wchar_t* __BIONIC_COMPLICATED_NULLNESS * _Nullable __end_ptr, locale_t _Nonnull __l) __INTRODUCED_IN(28);
+double wcstod_l(const wchar_t* _Nonnull __s, wchar_t* __BIONIC_COMPLICATED_NULLNESS * _Nullable __end_ptr, locale_t _Nonnull __l) __RENAME(wcstod);
+float wcstof(const wchar_t* _Nonnull __s, wchar_t* __BIONIC_COMPLICATED_NULLNESS * _Nullable __end_ptr);
+float wcstof_l(const wchar_t* _Nonnull __s, wchar_t* __BIONIC_COMPLICATED_NULLNESS * _Nullable __end_ptr, locale_t _Nonnull __l) __RENAME(wcstof);
 wchar_t* _Nullable wcstok(wchar_t* _Nullable __s, const wchar_t* _Nonnull __delimiter, wchar_t* _Nonnull * _Nonnull __ptr);
 long wcstol(const wchar_t* _Nonnull __s, wchar_t* __BIONIC_COMPLICATED_NULLNESS * _Nullable __end_ptr, int __base);
-long wcstol_l(const wchar_t* _Nonnull __s, wchar_t* __BIONIC_COMPLICATED_NULLNESS * _Nullable __end_ptr, int __base, locale_t _Nonnull __l) __INTRODUCED_IN(28);
-long long wcstoll(const wchar_t* _Nonnull __s, wchar_t* __BIONIC_COMPLICATED_NULLNESS * _Nullable __end_ptr, int __base) __INTRODUCED_IN(21);
-long double wcstold(const wchar_t* _Nonnull __s, wchar_t* __BIONIC_COMPLICATED_NULLNESS * _Nullable __end_ptr) __RENAME_LDBL(wcstod, 3, 21);
+long wcstol_l(const wchar_t* _Nonnull __s, wchar_t* __BIONIC_COMPLICATED_NULLNESS * _Nullable __end_ptr, int __base, locale_t _Nonnull __l) __RENAME(wcstol);
+long long wcstoll(const wchar_t* _Nonnull __s, wchar_t* __BIONIC_COMPLICATED_NULLNESS * _Nullable __end_ptr, int __base);
+long double wcstold(const wchar_t* _Nonnull __s, wchar_t* __BIONIC_COMPLICATED_NULLNESS * _Nullable __end_ptr);
 unsigned long wcstoul(const wchar_t* _Nonnull __s, wchar_t* __BIONIC_COMPLICATED_NULLNESS * _Nullable __end_ptr, int __base);
-unsigned long wcstoul_l(const wchar_t* _Nonnull __s, wchar_t* __BIONIC_COMPLICATED_NULLNESS * _Nullable __end_ptr, int __base, locale_t _Nonnull __l) __INTRODUCED_IN(28);
-unsigned long long wcstoull(const wchar_t* _Nonnull __s, wchar_t* __BIONIC_COMPLICATED_NULLNESS * _Nullable __end_ptr, int __base) __INTRODUCED_IN(21);
+unsigned long wcstoul_l(const wchar_t* _Nonnull __s, wchar_t* __BIONIC_COMPLICATED_NULLNESS * _Nullable __end_ptr, int __base, locale_t _Nonnull __l) __RENAME(wcstoul);
+unsigned long long wcstoull(const wchar_t* _Nonnull __s, wchar_t* __BIONIC_COMPLICATED_NULLNESS * _Nullable __end_ptr, int __base);
 int wcswidth(const wchar_t* _Nonnull __s, size_t __n);
 size_t wcsxfrm(wchar_t* __BIONIC_COMPLICATED_NULLNESS __dst, const wchar_t* _Nonnull __src, size_t __n);
 int wctob(wint_t __wc);
@@ -114,24 +129,31 @@
 int wmemcmp(const wchar_t* _Nullable __lhs, const wchar_t* _Nullable __rhs, size_t __n);
 wchar_t* _Nonnull wmemcpy(wchar_t* _Nonnull __dst, const wchar_t* _Nonnull __src, size_t __n);
 #if defined(__USE_GNU)
+
+#if __BIONIC_AVAILABILITY_GUARD(23)
 wchar_t* _Nonnull wmempcpy(wchar_t* _Nonnull __dst, const wchar_t* _Nonnull __src, size_t __n) __INTRODUCED_IN(23);
+#endif /* __BIONIC_AVAILABILITY_GUARD(23) */
+
 #endif
 wchar_t* _Nonnull wmemmove(wchar_t* _Nonnull __dst, const wchar_t* _Nonnull __src, size_t __n);
 wchar_t* _Nonnull wmemset(wchar_t* _Nonnull __dst, wchar_t __wc, size_t __n);
 int wprintf(const wchar_t* _Nonnull __fmt, ...);
 int wscanf(const wchar_t* _Nonnull __fmt, ...);
 
-long long wcstoll_l(const wchar_t* _Nonnull __s, wchar_t* _Nullable * _Nullable __end_ptr, int __base, locale_t _Nonnull __l) __INTRODUCED_IN(21);
-unsigned long long wcstoull_l(const wchar_t* _Nonnull __s, wchar_t* _Nullable * _Nullable __end_ptr, int __base, locale_t _Nonnull __l) __INTRODUCED_IN(21);
-long double wcstold_l(const wchar_t* _Nonnull __s, wchar_t* _Nullable * _Nullable __end_ptr, locale_t _Nonnull __l) __INTRODUCED_IN(21);
+long long wcstoll_l(const wchar_t* _Nonnull __s, wchar_t* _Nullable * _Nullable __end_ptr, int __base, locale_t _Nonnull __l);
+unsigned long long wcstoull_l(const wchar_t* _Nonnull __s, wchar_t* _Nullable * _Nullable __end_ptr, int __base, locale_t _Nonnull __l);
+long double wcstold_l(const wchar_t* _Nonnull __s, wchar_t* _Nullable * _Nullable __end_ptr, locale_t _Nonnull __l);
 
-int wcscoll_l(const wchar_t* _Nonnull __lhs, const wchar_t* _Nonnull __rhs, locale_t _Nonnull __l) __attribute_pure__
-    __INTRODUCED_IN(21);
-size_t wcsxfrm_l(wchar_t* __BIONIC_COMPLICATED_NULLNESS __dst, const wchar_t* _Nonnull __src, size_t __n, locale_t _Nonnull __l) __INTRODUCED_IN(21);
+int wcscoll_l(const wchar_t* _Nonnull __lhs, const wchar_t* _Nonnull __rhs, locale_t _Nonnull __l) __attribute_pure__;
+size_t wcsxfrm_l(wchar_t* __BIONIC_COMPLICATED_NULLNESS __dst, const wchar_t* _Nonnull __src, size_t __n, locale_t _Nonnull __l);
 size_t wcslcat(wchar_t* _Nonnull __dst, const wchar_t* _Nonnull __src, size_t __n);
 size_t wcslcpy(wchar_t* _Nonnull __dst, const wchar_t* _Nonnull __src, size_t __n);
 
+
+#if __BIONIC_AVAILABILITY_GUARD(23)
 FILE* _Nullable open_wmemstream(wchar_t* _Nonnull * _Nonnull __ptr, size_t* _Nonnull  __size_ptr) __INTRODUCED_IN(23);
+#endif /* __BIONIC_AVAILABILITY_GUARD(23) */
+
 wchar_t* _Nullable wcsdup(const wchar_t* _Nonnull __s);
 size_t wcsnlen(const wchar_t* _Nonnull __s, size_t __n);
 
diff --git a/libc/include/wctype.h b/libc/include/wctype.h
index 344343f..30ec04f 100644
--- a/libc/include/wctype.h
+++ b/libc/include/wctype.h
@@ -29,33 +29,38 @@
 #ifndef _WCTYPE_H_
 #define _WCTYPE_H_
 
-#include <bits/wctype.h>
 #include <sys/cdefs.h>
+
+#include <bits/wctype.h>
 #include <xlocale.h>
 
 __BEGIN_DECLS
 
-int iswalnum_l(wint_t __wc, locale_t _Nonnull __l) __INTRODUCED_IN(21);
-int iswalpha_l(wint_t __wc, locale_t _Nonnull __l) __INTRODUCED_IN(21);
-int iswblank_l(wint_t __wc, locale_t _Nonnull __l) __INTRODUCED_IN(21);
-int iswcntrl_l(wint_t __wc, locale_t _Nonnull __l) __INTRODUCED_IN(21);
-int iswdigit_l(wint_t __wc, locale_t _Nonnull __l) __INTRODUCED_IN(21);
-int iswgraph_l(wint_t __wc, locale_t _Nonnull __l) __INTRODUCED_IN(21);
-int iswlower_l(wint_t __wc, locale_t _Nonnull __l) __INTRODUCED_IN(21);
-int iswprint_l(wint_t __wc, locale_t _Nonnull __l) __INTRODUCED_IN(21);
-int iswpunct_l(wint_t __wc, locale_t _Nonnull __l) __INTRODUCED_IN(21);
-int iswspace_l(wint_t __wc, locale_t _Nonnull __l) __INTRODUCED_IN(21);
-int iswupper_l(wint_t __wc, locale_t _Nonnull __l) __INTRODUCED_IN(21);
-int iswxdigit_l(wint_t __wc, locale_t _Nonnull __l) __INTRODUCED_IN(21);
+int iswalnum_l(wint_t __wc, locale_t _Nonnull __l);
+int iswalpha_l(wint_t __wc, locale_t _Nonnull __l);
+int iswblank_l(wint_t __wc, locale_t _Nonnull __l);
+int iswcntrl_l(wint_t __wc, locale_t _Nonnull __l);
+int iswdigit_l(wint_t __wc, locale_t _Nonnull __l);
+int iswgraph_l(wint_t __wc, locale_t _Nonnull __l);
+int iswlower_l(wint_t __wc, locale_t _Nonnull __l);
+int iswprint_l(wint_t __wc, locale_t _Nonnull __l);
+int iswpunct_l(wint_t __wc, locale_t _Nonnull __l);
+int iswspace_l(wint_t __wc, locale_t _Nonnull __l);
+int iswupper_l(wint_t __wc, locale_t _Nonnull __l);
+int iswxdigit_l(wint_t __wc, locale_t _Nonnull __l);
 
-wint_t towlower_l(wint_t __wc, locale_t _Nonnull __l) __INTRODUCED_IN(21);
-wint_t towupper_l(wint_t __wc, locale_t _Nonnull __l) __INTRODUCED_IN(21);
+wint_t towlower_l(wint_t __wc, locale_t _Nonnull __l);
+wint_t towupper_l(wint_t __wc, locale_t _Nonnull __l);
 
+
+#if __BIONIC_AVAILABILITY_GUARD(26)
 wint_t towctrans_l(wint_t __wc, wctrans_t _Nonnull __transform, locale_t _Nonnull __l) __INTRODUCED_IN(26);
 wctrans_t _Nonnull wctrans_l(const char* _Nonnull __name, locale_t _Nonnull __l) __INTRODUCED_IN(26);
+#endif /* __BIONIC_AVAILABILITY_GUARD(26) */
 
-wctype_t wctype_l(const char* _Nonnull __name, locale_t _Nonnull __l) __INTRODUCED_IN(21);
-int iswctype_l(wint_t __wc, wctype_t __transform, locale_t _Nonnull __l) __INTRODUCED_IN(21);
+
+wctype_t wctype_l(const char* _Nonnull __name, locale_t _Nonnull __l);
+int iswctype_l(wint_t __wc, wctype_t __transform, locale_t _Nonnull __l);
 
 __END_DECLS
 
diff --git a/libc/kernel/android/BUILD b/libc/kernel/android/BUILD
deleted file mode 100644
index b862a6d..0000000
--- a/libc/kernel/android/BUILD
+++ /dev/null
@@ -1,43 +0,0 @@
-# Copyright (C) 2022 The Android Open Source Project
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions
-# are met:
-#  * Redistributions of source code must retain the above copyright
-#    notice, this list of conditions and the following disclaimer.
-#  * Redistributions in binary form must reproduce the above copyright
-#    notice, this list of conditions and the following disclaimer in
-#    the documentation and/or other materials provided with the
-#    distribution.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
-# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
-# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
-# OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
-# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
-# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-# SUCH DAMAGE.
-
-load("//build/bazel/rules/apis:cc_api_contribution.bzl", "cc_api_headers")
-
-package(default_visibility = ["//bionic/libc:__pkg__"])
-
-cc_api_headers(
-  name="libc_kernel_android_uapi_headers",
-  include_dir="uapi",
-  hdrs=glob(["uapi/**/*.h"]),
-  system=True,
-)
-
-cc_api_headers(
-  name="libc_kernel_android_scsi_headers",
-  include_dir="scsi",
-  hdrs=glob(["scsi/**/*.h"]),
-  system=True,
-)
diff --git a/libc/kernel/android/scsi/scsi/scsi.h b/libc/kernel/android/scsi/scsi/scsi.h
index 6d89fa9..4efeada 100644
--- a/libc/kernel/android/scsi/scsi/scsi.h
+++ b/libc/kernel/android/scsi/scsi/scsi.h
@@ -1,24 +1,13 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _SCSI_SCSI_H
 #define _SCSI_SCSI_H
 #include <linux/types.h>
+#include <asm/param.h>
 #include <scsi/scsi_proto.h>
 #include <scsi/scsi_status.h>
 struct ccs_modesel_head {
diff --git a/libc/kernel/android/scsi/scsi/scsi_ioctl.h b/libc/kernel/android/scsi/scsi/scsi_ioctl.h
index c871362..fe5665e 100644
--- a/libc/kernel/android/scsi/scsi/scsi_ioctl.h
+++ b/libc/kernel/android/scsi/scsi/scsi_ioctl.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _SCSI_IOCTL_H
 #define _SCSI_IOCTL_H
 #define SCSI_IOCTL_SEND_COMMAND 1
diff --git a/libc/kernel/android/scsi/scsi/scsi_proto.h b/libc/kernel/android/scsi/scsi/scsi_proto.h
index 24df458..754e12a 100644
--- a/libc/kernel/android/scsi/scsi/scsi_proto.h
+++ b/libc/kernel/android/scsi/scsi/scsi_proto.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _SCSI_PROTO_H_
 #define _SCSI_PROTO_H_
 #include <linux/types.h>
@@ -121,6 +109,7 @@
 #define WRITE_SAME_16 0x93
 #define ZBC_OUT 0x94
 #define ZBC_IN 0x95
+#define WRITE_ATOMIC_16 0x9c
 #define SERVICE_ACTION_BIDIRECTIONAL 0x9d
 #define SERVICE_ACTION_IN_16 0x9e
 #define SERVICE_ACTION_OUT_16 0x9f
diff --git a/libc/kernel/android/scsi/scsi/scsi_status.h b/libc/kernel/android/scsi/scsi/scsi_status.h
index 6a7fc10..e3fc7c0 100644
--- a/libc/kernel/android/scsi/scsi/scsi_status.h
+++ b/libc/kernel/android/scsi/scsi/scsi_status.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _SCSI_SCSI_STATUS_H
 #define _SCSI_SCSI_STATUS_H
 #include <linux/types.h>
diff --git a/libc/kernel/android/scsi/scsi/sg.h b/libc/kernel/android/scsi/scsi/sg.h
index 9ba6cd6..ebb1e4d 100644
--- a/libc/kernel/android/scsi/scsi/sg.h
+++ b/libc/kernel/android/scsi/scsi/sg.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _SCSI_GENERIC_H
 #define _SCSI_GENERIC_H
 #include <linux/compiler.h>
diff --git a/libc/kernel/tools/clean_header.py b/libc/kernel/tools/clean_header.py
index f15fab4..07766d3 100755
--- a/libc/kernel/tools/clean_header.py
+++ b/libc/kernel/tools/clean_header.py
@@ -69,7 +69,7 @@
 #   Is prepended to each generated header.
 #------------------------------------------------------------------------------
 
-import sys, cpp, kernel, glob, os, re, getopt
+import sys, cpp, kernel, glob, os, re, getopt, textwrap
 from defaults import *
 from utils import *
 
@@ -116,7 +116,14 @@
     blocks.replaceTokens(kernel_token_replacements)
 
     out = StringOutput()
-    out.write(kernel_disclaimer)
+    out.write(textwrap.dedent("""\
+        /*
+         * This file is auto-generated. Modifications will be lost.
+         *
+         * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+         * for more information.
+         */
+        """))
     blocks.write(out)
     return out.get()
 
diff --git a/libc/kernel/tools/cpp.py b/libc/kernel/tools/cpp.py
index 40e1f26..df50806 100755
--- a/libc/kernel/tools/cpp.py
+++ b/libc/kernel/tools/cpp.py
@@ -1202,7 +1202,7 @@
 
     def removeStructs(self, structs):
         """Remove structs."""
-        extra_includes = []
+        extra_includes = set()
         block_num = 0
         num_blocks = len(self.blocks)
         while block_num < num_blocks:
@@ -1247,8 +1247,8 @@
                     # Add an include for the structure to be removed of the form:
                     #  #include <bits/STRUCT_NAME.h>
                     struct_token = b.tokens[i + 1]
-                    if not structs[struct_token.id]:
-                        extra_includes.append("<bits/%s.h>" % struct_token.id)
+                    if struct_token.id in structs and structs[struct_token.id]:
+                        extra_includes.add("<%s>" % structs[struct_token.id])
 
                     # Search forward for the end of the structure.
                     # Very simple search, look for } and ; tokens.
@@ -1292,7 +1292,7 @@
                     continue
                 i += 1
 
-        for extra_include in extra_includes:
+        for extra_include in sorted(extra_includes):
             replacement = CppStringTokenizer(extra_include)
             self.blocks.insert(2, Block(replacement.tokens, directive='include'))
 
@@ -1430,7 +1430,7 @@
                         state = VAR_DECL
                     elif state == NORMAL and token_id in ['struct', 'typedef',
                                                           'enum', 'union',
-                                                          '__extension__']:
+                                                          '__extension__', '=']:
                         state = OTHER_DECL
                         state_token = token_id
                     elif block.tokens[i].kind == TokenKind.IDENTIFIER:
@@ -1471,9 +1471,18 @@
                             made_change = True
                     i += 1
 
-                if b.isDefine() and b.define_id in replacements:
-                    b.define_id = replacements[b.define_id]
-                    made_change = True
+                if b.isDefine():
+                    tokens = CppStringTokenizer(b.define_id).tokens
+                    id_change = False
+                    for tok in tokens:
+                        if tok.kind == TokenKind.IDENTIFIER:
+                            if tok.id in replacements:
+                                tok.id = replacements[tok.id]
+                                id_change = True
+                    if id_change:
+                        b.define_id = ''.join([tok.id for tok in tokens])
+                        made_change = True
+
 
             if made_change and b.isIf():
                 # Keep 'expr' in sync with 'tokens'.
@@ -2048,7 +2057,7 @@
   struct timeval val2;
 };
 """
-        self.assertEqual(self.parse(text, {"remove": True}), expected)
+        self.assertEqual(self.parse(text, {"remove": None}), expected)
 
     def test_remove_struct_from_end(self):
         text = """\
@@ -2067,7 +2076,7 @@
   struct timeval val2;
 };
 """
-        self.assertEqual(self.parse(text, {"remove": True}), expected)
+        self.assertEqual(self.parse(text, {"remove": None}), expected)
 
     def test_remove_minimal_struct(self):
         text = """\
@@ -2075,7 +2084,7 @@
 };
 """
         expected = "";
-        self.assertEqual(self.parse(text, {"remove": True}), expected)
+        self.assertEqual(self.parse(text, {"remove": None}), expected)
 
     def test_remove_struct_with_struct_fields(self):
         text = """\
@@ -2095,7 +2104,7 @@
   struct remove val2;
 };
 """
-        self.assertEqual(self.parse(text, {"remove": True}), expected)
+        self.assertEqual(self.parse(text, {"remove": None}), expected)
 
     def test_remove_consecutive_structs(self):
         text = """\
@@ -2127,7 +2136,7 @@
   struct timeval val2;
 };
 """
-        self.assertEqual(self.parse(text, {"remove1": True, "remove2": True}), expected)
+        self.assertEqual(self.parse(text, {"remove1": None, "remove2": None}), expected)
 
     def test_remove_multiple_structs(self):
         text = """\
@@ -2160,7 +2169,7 @@
   int val;
 };
 """
-        self.assertEqual(self.parse(text, {"remove1": True, "remove2": True}), expected)
+        self.assertEqual(self.parse(text, {"remove1": None, "remove2": None}), expected)
 
     def test_remove_struct_with_inline_structs(self):
         text = """\
@@ -2185,7 +2194,7 @@
   struct timeval val2;
 };
 """
-        self.assertEqual(self.parse(text, {"remove": True}), expected)
+        self.assertEqual(self.parse(text, {"remove": None}), expected)
 
     def test_remove_struct_across_blocks(self):
         text = """\
@@ -2210,7 +2219,7 @@
   struct timeval val2;
 };
 """
-        self.assertEqual(self.parse(text, {"remove": True}), expected)
+        self.assertEqual(self.parse(text, {"remove": None}), expected)
 
     def test_remove_struct_across_blocks_multiple_structs(self):
         text = """\
@@ -2237,7 +2246,7 @@
   struct timeval val2;
 };
 """
-        self.assertEqual(self.parse(text, {"remove1": True, "remove2": True}), expected)
+        self.assertEqual(self.parse(text, {"remove1": None, "remove2": None}), expected)
 
     def test_remove_multiple_struct_and_add_includes(self):
         text = """\
@@ -2254,7 +2263,7 @@
 #include <bits/remove1.h>
 #include <bits/remove2.h>
 """
-        self.assertEqual(self.parse(text, {"remove1": False, "remove2": False}), expected)
+        self.assertEqual(self.parse(text, {"remove1": "bits/remove1.h", "remove2": "bits/remove2.h"}), expected)
 
 
 class FullPathTest(unittest.TestCase):
@@ -2571,6 +2580,71 @@
   struct timeval timeval;
   struct itimerval itimerval;
 };
+#include <linux/time.h>
+"""
+        self.assertEqual(self.parse(text), expected)
+
+    def test_var_definition(self):
+        # If we're definining the whole thing, it's probably worth keeping.
+        text = """\
+static const char *kString = "hello world";
+static const int kInteger = 42;
+"""
+        expected = """\
+static const char * kString = "hello world";
+static const int kInteger = 42;
+"""
+        self.assertEqual(self.parse(text), expected)
+
+    def test_struct_array_definition(self):
+        text = """\
+struct descriptor {
+  int args;
+  int size;
+};
+static const struct descriptor[] = {
+  {0, 0},
+  {1, 12},
+  {0, 42},
+};
+"""
+        expected = """\
+struct descriptor {
+  int args;
+  int size;
+};
+static const struct descriptor[] = {
+ {
+    0, 0
+  }
+ , {
+    1, 12
+  }
+ , {
+    0, 42
+  }
+ ,
+};
+"""
+        self.assertEqual(self.parse(text), expected)
+
+    def test_array_definition(self):
+        text = """\
+static const char *arr[] = {
+  "foo",
+  "bar",
+  "baz",
+};
+
+static int another_arr[5] = { 1, 2, 3, 4, 5};
+"""
+        expected = """\
+static const char * arr[] = {
+  "foo", "bar", "baz",
+};
+static int another_arr[5] = {
+  1, 2, 3, 4, 5
+};
 """
         self.assertEqual(self.parse(text), expected)
 
@@ -2578,10 +2652,12 @@
         text = """\
 #define SIGRTMIN 32
 #define SIGRTMAX _NSIG
+#define SIGRTMAX(a,class) some_func(a, class)
 """
         expected = """\
 #define __SIGRTMIN 32
 #define __SIGRTMAX _KERNEL__NSIG
+#define __SIGRTMAX(a,__linux_class) some_func(a, __linux_class)
 """
         self.assertEqual(self.parse(text), expected)
 
diff --git a/libc/kernel/tools/defaults.py b/libc/kernel/tools/defaults.py
index 91d26ce..2994e5e 100644
--- a/libc/kernel/tools/defaults.py
+++ b/libc/kernel/tools/defaults.py
@@ -25,25 +25,45 @@
     # Otherwise, there will be two struct timeval definitions when
     # __kernel_old_timeval is renamed to timeval.
     "__kernel_old_timeval": "1",
+    # Drop the custom byte swap functions and just use the clang builtins.
+    # https://github.com/android/ndk/issues/2107
+    "__arch_swab16": kCppUndefinedMacro,
+    "__arch_swab16p": kCppUndefinedMacro,
+    "__arch_swab16s": kCppUndefinedMacro,
+    "__arch_swab32": kCppUndefinedMacro,
+    "__arch_swab32p": kCppUndefinedMacro,
+    "__arch_swab32s": kCppUndefinedMacro,
+    "__arch_swab64": kCppUndefinedMacro,
+    "__arch_swab64p": kCppUndefinedMacro,
+    "__arch_swab64s": kCppUndefinedMacro,
+    "__arch_swahb32": kCppUndefinedMacro,
+    "__arch_swahb32p": kCppUndefinedMacro,
+    "__arch_swahb32s": kCppUndefinedMacro,
+    "__arch_swahw32": kCppUndefinedMacro,
+    "__arch_swahw32p": kCppUndefinedMacro,
+    "__arch_swahw32s": kCppUndefinedMacro,
     }
 
 # This is the set of known kernel data structures we want to remove from
-# the final headers. If the map value is False, that means that in
-# addition to removing the structure, add an #include <bits/STRUCT.h>
-# to the file.
+# the final headers. If the map value is non-empty, that means that in
+# addition to removing the structure, add a #include to the file.
 kernel_structs_to_remove = {
-    # Remove the structures since they are still the same as
-    # timeval, itimerval.
-    "__kernel_old_timeval": True,
-    "__kernel_old_itimerval": True,
+    # Remove these structures since they are still the same as
+    # timeval, itimerval. Also, add an include of linux/time.h
+    # since __kernel_old_timeval is being changed to timeval, and
+    # is only present in linux/time.h.
+    "__kernel_old_timeval": "linux/time.h",
+    "__kernel_old_itimerval": None,
     # Replace all of the below structures with #include <bits/STRUCT.h>
-    "epoll_event": False,
-    "flock": False,
-    "flock64": False,
-    "in_addr": False,
-    "ip_mreq_source": False,
-    "ip_msfilter": False,
-    "timespec": False,
+    "__kernel_sockaddr_storage": "bits/sockaddr_storage.h",
+    "epoll_event": "bits/epoll_event.h",
+    "flock": "bits/flock.h",
+    "flock64": "bits/flock64.h",
+    "in_addr": "bits/in_addr.h",
+    "ip_mreq_source": "bits/ip_mreq_source.h",
+    "ip_msfilter": "bits/ip_msfilter.h",
+    "tcphdr": "bits/tcphdr.h",
+    "timespec": "bits/timespec.h",
     }
 
 # define to true if you want to remove all defined(CONFIG_FOO) tests
@@ -63,6 +83,7 @@
     # The kernel usage of __unused for unused struct fields conflicts with the macro defined in <sys/cdefs.h>.
     "__unused": "__linux_unused",
     # The kernel usage of C++ keywords causes problems for C++ code so rename.
+    "class": "__linux_class",
     "private": "__linux_private",
     "virtual": "__linux_virtual",
     # The non-64 stuff is legacy; msqid64_ds/ipc64_perm is what userspace wants.
@@ -90,17 +111,21 @@
     "__kernel_old_timeval": "timeval",
     # Do the same for __kernel_old_itimerval as for timeval.
     "__kernel_old_itimerval": "itimerval",
+    # Do the same for __kernel_sockaddr_storage.
+    "__kernel_sockaddr_storage": "sockaddr_storage",
     # Replace __packed with __attribute__((__packed__)) to avoid depending
     # on sys/cdefs.h
     "__packed": "__attribute__((__packed__))",
     # Remove unused macros (http://b/262917450).
     "__force": "",
     "__user": "",
+    # Rename the kernel's sigaction so we can expose our POSIX one publicly,
+    # but translate to the kernel's one internally.
+    "sigaction": "__kernel_sigaction",
     }
 
 
-# This is the set of known static inline functions that we want to keep
-# in the final kernel headers.
+# Static inline functions that we want to keep.
 kernel_known_generic_statics = set(
         [
           "ipt_get_target",  # uapi/linux/netfilter_ipv4/ip_tables.h
@@ -125,28 +150,9 @@
           # These are required to support the above functions.
           "__fswahw32",
           "__fswahb32",
+          # This is used by various macros in <linux/ioprio.h>.
+          "ioprio_value",
+
+          # Contact opensource-licensing@ before adding to this set.
         ]
     )
-
-# this is the standard disclaimer
-#
-kernel_disclaimer = """\
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
-"""
diff --git a/libc/kernel/tools/update_all.py b/libc/kernel/tools/update_all.py
index abc72a4..331a957 100755
--- a/libc/kernel/tools/update_all.py
+++ b/libc/kernel/tools/update_all.py
@@ -88,14 +88,8 @@
     # Collect the set of all syscalls for all architectures.
     syscalls = set()
     pattern = re.compile(r'^\s*#\s*define\s*__NR_([a-z_]\S+)')
-    for unistd_h in ['kernel/uapi/asm-generic/unistd.h',
-                     'kernel/uapi/asm-arm/asm/unistd.h',
-                     'kernel/uapi/asm-arm/asm/unistd-eabi.h',
-                     'kernel/uapi/asm-arm/asm/unistd-oabi.h',
-                     'kernel/uapi/asm-x86/asm/unistd_32.h',
-                     'kernel/uapi/asm-x86/asm/unistd_64.h',
-                     'kernel/uapi/asm-x86/asm/unistd_x32.h']:
-        for line in open(os.path.join(libc_root, unistd_h)):
+    for unistd_h in glob.glob('%s/kernel/uapi/asm-*/asm/unistd*.h' % libc_root):
+        for line in open(unistd_h):
             m = re.search(pattern, line)
             if m:
                 nr_name = m.group(1)
diff --git a/libc/kernel/uapi/BUILD b/libc/kernel/uapi/BUILD
deleted file mode 100644
index 3c9bb69..0000000
--- a/libc/kernel/uapi/BUILD
+++ /dev/null
@@ -1,67 +0,0 @@
-# Copyright (C) 2022 The Android Open Source Project
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions
-# are met:
-#  * Redistributions of source code must retain the above copyright
-#    notice, this list of conditions and the following disclaimer.
-#  * Redistributions in binary form must reproduce the above copyright
-#    notice, this list of conditions and the following disclaimer in
-#    the documentation and/or other materials provided with the
-#    distribution.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
-# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
-# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
-# OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
-# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
-# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-# SUCH DAMAGE.
-
-load("//build/bazel/rules/apis:cc_api_contribution.bzl", "cc_api_headers")
-
-package(default_visibility = ["//bionic/libc:__pkg__"])
-
-cc_api_headers(
-    name = "libc_kernel_uapi_headers",
-    hdrs = glob(["**/*.h"]),
-    system = True,
-)
-
-cc_api_headers(
-    name = "libc_kernel_uapi_asm_arm_headers",
-    hdrs = glob(["asm-arm/**/*.h"]),
-    arch = "arm",
-    include_dir = "asm-arm",
-    system = True,
-)
-
-cc_api_headers(
-    name = "libc_kernel_uapi_asm_arm64_headers",
-    hdrs = glob(["asm-arm64/**/*.h"]),
-    arch = "arm64",
-    include_dir = "asm-arm64",
-    system = True,
-)
-
-cc_api_headers(
-    name = "libc_kernel_uapi_asm_x86_headers",
-    hdrs = glob(["asm-x86/**/*.h"]),
-    arch = "x86",
-    include_dir = "asm-x86",
-    system = True,
-)
-
-cc_api_headers(
-    name = "libc_kernel_uapi_asm_x86_64_headers",
-    hdrs = glob(["asm-x86_64/**/*.h"]),
-    arch = "x86_64",
-    include_dir = "asm-x86_64",
-    system = True,
-)
diff --git a/libc/kernel/uapi/asm-arm/asm/auxvec.h b/libc/kernel/uapi/asm-arm/asm/auxvec.h
index ae03ed3..f3474ec 100644
--- a/libc/kernel/uapi/asm-arm/asm/auxvec.h
+++ b/libc/kernel/uapi/asm-arm/asm/auxvec.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __ASM_AUXVEC_H
 #define __ASM_AUXVEC_H
 #define AT_SYSINFO_EHDR 33
diff --git a/libc/kernel/uapi/asm-arm/asm/bitsperlong.h b/libc/kernel/uapi/asm-arm/asm/bitsperlong.h
index 5dc5060..ba16d12 100644
--- a/libc/kernel/uapi/asm-arm/asm/bitsperlong.h
+++ b/libc/kernel/uapi/asm-arm/asm/bitsperlong.h
@@ -1,19 +1,7 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #include <asm-generic/bitsperlong.h>
diff --git a/libc/kernel/uapi/asm-arm/asm/bpf_perf_event.h b/libc/kernel/uapi/asm-arm/asm/bpf_perf_event.h
index fa7bc48..892ba7d 100644
--- a/libc/kernel/uapi/asm-arm/asm/bpf_perf_event.h
+++ b/libc/kernel/uapi/asm-arm/asm/bpf_perf_event.h
@@ -1,19 +1,7 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #include <asm-generic/bpf_perf_event.h>
diff --git a/libc/kernel/uapi/asm-arm/asm/byteorder.h b/libc/kernel/uapi/asm-arm/asm/byteorder.h
index a253654..fd4b598 100644
--- a/libc/kernel/uapi/asm-arm/asm/byteorder.h
+++ b/libc/kernel/uapi/asm-arm/asm/byteorder.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __ASM_ARM_BYTEORDER_H
 #define __ASM_ARM_BYTEORDER_H
 #include <linux/byteorder/little_endian.h>
diff --git a/libc/kernel/uapi/asm-arm/asm/errno.h b/libc/kernel/uapi/asm-arm/asm/errno.h
index 392cd94..68b3218 100644
--- a/libc/kernel/uapi/asm-arm/asm/errno.h
+++ b/libc/kernel/uapi/asm-arm/asm/errno.h
@@ -1,19 +1,7 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #include <asm-generic/errno.h>
diff --git a/libc/kernel/uapi/asm-arm/asm/fcntl.h b/libc/kernel/uapi/asm-arm/asm/fcntl.h
index f2f14c3..c6ecdea 100644
--- a/libc/kernel/uapi/asm-arm/asm/fcntl.h
+++ b/libc/kernel/uapi/asm-arm/asm/fcntl.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _ARM_FCNTL_H
 #define _ARM_FCNTL_H
 #define O_DIRECTORY 040000
diff --git a/libc/kernel/uapi/asm-arm/asm/hwcap.h b/libc/kernel/uapi/asm-arm/asm/hwcap.h
index 2a3c809..f1033c0 100644
--- a/libc/kernel/uapi/asm-arm/asm/hwcap.h
+++ b/libc/kernel/uapi/asm-arm/asm/hwcap.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI__ASMARM_HWCAP_H
 #define _UAPI__ASMARM_HWCAP_H
 #define HWCAP_SWP (1 << 0)
diff --git a/libc/kernel/uapi/asm-arm/asm/ioctl.h b/libc/kernel/uapi/asm-arm/asm/ioctl.h
index 7b7bd37..513f68c 100644
--- a/libc/kernel/uapi/asm-arm/asm/ioctl.h
+++ b/libc/kernel/uapi/asm-arm/asm/ioctl.h
@@ -1,19 +1,7 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #include <asm-generic/ioctl.h>
diff --git a/libc/kernel/uapi/asm-arm/asm/ioctls.h b/libc/kernel/uapi/asm-arm/asm/ioctls.h
index e83b2cc..ab76d2d 100644
--- a/libc/kernel/uapi/asm-arm/asm/ioctls.h
+++ b/libc/kernel/uapi/asm-arm/asm/ioctls.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __ASM_ARM_IOCTLS_H
 #define __ASM_ARM_IOCTLS_H
 #define FIOQSIZE 0x545E
diff --git a/libc/kernel/uapi/asm-arm/asm/ipcbuf.h b/libc/kernel/uapi/asm-arm/asm/ipcbuf.h
index 0021f14..0c908bc 100644
--- a/libc/kernel/uapi/asm-arm/asm/ipcbuf.h
+++ b/libc/kernel/uapi/asm-arm/asm/ipcbuf.h
@@ -1,19 +1,7 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #include <asm-generic/ipcbuf.h>
diff --git a/libc/kernel/uapi/asm-arm/asm/kvm_para.h b/libc/kernel/uapi/asm-arm/asm/kvm_para.h
index e19f7a0..f05ee03 100644
--- a/libc/kernel/uapi/asm-arm/asm/kvm_para.h
+++ b/libc/kernel/uapi/asm-arm/asm/kvm_para.h
@@ -1,19 +1,7 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #include <asm-generic/kvm_para.h>
diff --git a/libc/kernel/uapi/asm-arm/asm/mman.h b/libc/kernel/uapi/asm-arm/asm/mman.h
index ec9453d..2607176 100644
--- a/libc/kernel/uapi/asm-arm/asm/mman.h
+++ b/libc/kernel/uapi/asm-arm/asm/mman.h
@@ -1,20 +1,8 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #include <asm-generic/mman.h>
 #define arch_mmap_check(addr,len,flags) (((flags) & MAP_FIXED && (addr) < FIRST_USER_ADDRESS) ? - EINVAL : 0)
diff --git a/libc/kernel/uapi/asm-arm/asm/msgbuf.h b/libc/kernel/uapi/asm-arm/asm/msgbuf.h
index 7809e3c..7b6d8d9 100644
--- a/libc/kernel/uapi/asm-arm/asm/msgbuf.h
+++ b/libc/kernel/uapi/asm-arm/asm/msgbuf.h
@@ -1,19 +1,7 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #include <asm-generic/msgbuf.h>
diff --git a/libc/kernel/uapi/asm-arm/asm/param.h b/libc/kernel/uapi/asm-arm/asm/param.h
index 5ccf935..f20aa34 100644
--- a/libc/kernel/uapi/asm-arm/asm/param.h
+++ b/libc/kernel/uapi/asm-arm/asm/param.h
@@ -1,19 +1,7 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #include <asm-generic/param.h>
diff --git a/libc/kernel/uapi/asm-arm/asm/perf_regs.h b/libc/kernel/uapi/asm-arm/asm/perf_regs.h
index ea2ff81..807ba9d 100644
--- a/libc/kernel/uapi/asm-arm/asm/perf_regs.h
+++ b/libc/kernel/uapi/asm-arm/asm/perf_regs.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _ASM_ARM_PERF_REGS_H
 #define _ASM_ARM_PERF_REGS_H
 enum perf_event_arm_regs {
diff --git a/libc/kernel/uapi/asm-arm/asm/poll.h b/libc/kernel/uapi/asm-arm/asm/poll.h
index d7e8adc..bf92c2a 100644
--- a/libc/kernel/uapi/asm-arm/asm/poll.h
+++ b/libc/kernel/uapi/asm-arm/asm/poll.h
@@ -1,19 +1,7 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #include <asm-generic/poll.h>
diff --git a/libc/kernel/uapi/asm-arm/asm/posix_types.h b/libc/kernel/uapi/asm-arm/asm/posix_types.h
index ff5138b..2e4a659 100644
--- a/libc/kernel/uapi/asm-arm/asm/posix_types.h
+++ b/libc/kernel/uapi/asm-arm/asm/posix_types.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __ARCH_ARM_POSIX_TYPES_H
 #define __ARCH_ARM_POSIX_TYPES_H
 typedef unsigned short __kernel_mode_t;
diff --git a/libc/kernel/uapi/asm-arm/asm/ptrace.h b/libc/kernel/uapi/asm-arm/asm/ptrace.h
index b0291dc..06ac989 100644
--- a/libc/kernel/uapi/asm-arm/asm/ptrace.h
+++ b/libc/kernel/uapi/asm-arm/asm/ptrace.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI__ASM_ARM_PTRACE_H
 #define _UAPI__ASM_ARM_PTRACE_H
 #include <asm/hwcap.h>
diff --git a/libc/kernel/uapi/asm-arm/asm/resource.h b/libc/kernel/uapi/asm-arm/asm/resource.h
index 371adb5..3ad9e62 100644
--- a/libc/kernel/uapi/asm-arm/asm/resource.h
+++ b/libc/kernel/uapi/asm-arm/asm/resource.h
@@ -1,19 +1,7 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #include <asm-generic/resource.h>
diff --git a/libc/kernel/uapi/asm-arm/asm/sembuf.h b/libc/kernel/uapi/asm-arm/asm/sembuf.h
index 6ce6549..d4a9072 100644
--- a/libc/kernel/uapi/asm-arm/asm/sembuf.h
+++ b/libc/kernel/uapi/asm-arm/asm/sembuf.h
@@ -1,19 +1,7 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #include <asm-generic/sembuf.h>
diff --git a/libc/kernel/uapi/asm-arm/asm/setup.h b/libc/kernel/uapi/asm-arm/asm/setup.h
index 672a72a..07c0177 100644
--- a/libc/kernel/uapi/asm-arm/asm/setup.h
+++ b/libc/kernel/uapi/asm-arm/asm/setup.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI__ASMARM_SETUP_H
 #define _UAPI__ASMARM_SETUP_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/asm-arm/asm/shmbuf.h b/libc/kernel/uapi/asm-arm/asm/shmbuf.h
index fe8b1be..9b434f6 100644
--- a/libc/kernel/uapi/asm-arm/asm/shmbuf.h
+++ b/libc/kernel/uapi/asm-arm/asm/shmbuf.h
@@ -1,19 +1,7 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #include <asm-generic/shmbuf.h>
diff --git a/libc/kernel/uapi/asm-arm/asm/sigcontext.h b/libc/kernel/uapi/asm-arm/asm/sigcontext.h
index b7504d6..b206a20b 100644
--- a/libc/kernel/uapi/asm-arm/asm/sigcontext.h
+++ b/libc/kernel/uapi/asm-arm/asm/sigcontext.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _ASMARM_SIGCONTEXT_H
 #define _ASMARM_SIGCONTEXT_H
 struct sigcontext {
diff --git a/libc/kernel/uapi/asm-arm/asm/siginfo.h b/libc/kernel/uapi/asm-arm/asm/siginfo.h
index a31ebb2..8f5921e 100644
--- a/libc/kernel/uapi/asm-arm/asm/siginfo.h
+++ b/libc/kernel/uapi/asm-arm/asm/siginfo.h
@@ -1,19 +1,7 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #include <asm-generic/siginfo.h>
diff --git a/libc/kernel/uapi/asm-arm/asm/signal.h b/libc/kernel/uapi/asm-arm/asm/signal.h
index 90cb8d6..fde3b9e 100644
--- a/libc/kernel/uapi/asm-arm/asm/signal.h
+++ b/libc/kernel/uapi/asm-arm/asm/signal.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_ASMARM_SIGNAL_H
 #define _UAPI_ASMARM_SIGNAL_H
 #include <linux/types.h>
@@ -64,7 +52,7 @@
 #define MINSIGSTKSZ 2048
 #define SIGSTKSZ 8192
 #include <asm-generic/signal-defs.h>
-struct sigaction {
+struct __kernel_sigaction {
   union {
     __sighandler_t _sa_handler;
     void(* _sa_sigaction) (int, struct siginfo *, void *);
diff --git a/libc/kernel/uapi/asm-arm/asm/socket.h b/libc/kernel/uapi/asm-arm/asm/socket.h
index 50a9874..2ca3e45 100644
--- a/libc/kernel/uapi/asm-arm/asm/socket.h
+++ b/libc/kernel/uapi/asm-arm/asm/socket.h
@@ -1,19 +1,7 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #include <asm-generic/socket.h>
diff --git a/libc/kernel/uapi/asm-arm/asm/sockios.h b/libc/kernel/uapi/asm-arm/asm/sockios.h
index 710db92..5aba663 100644
--- a/libc/kernel/uapi/asm-arm/asm/sockios.h
+++ b/libc/kernel/uapi/asm-arm/asm/sockios.h
@@ -1,19 +1,7 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #include <asm-generic/sockios.h>
diff --git a/libc/kernel/uapi/asm-arm/asm/stat.h b/libc/kernel/uapi/asm-arm/asm/stat.h
index 27ec243..45fbaf9 100644
--- a/libc/kernel/uapi/asm-arm/asm/stat.h
+++ b/libc/kernel/uapi/asm-arm/asm/stat.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _ASMARM_STAT_H
 #define _ASMARM_STAT_H
 struct __old_kernel_stat {
diff --git a/libc/kernel/uapi/asm-arm/asm/statfs.h b/libc/kernel/uapi/asm-arm/asm/statfs.h
index 7e44ad1..08e151d 100644
--- a/libc/kernel/uapi/asm-arm/asm/statfs.h
+++ b/libc/kernel/uapi/asm-arm/asm/statfs.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _ASMARM_STATFS_H
 #define _ASMARM_STATFS_H
 #define ARCH_PACK_STATFS64 __attribute__((packed, aligned(4)))
diff --git a/libc/kernel/uapi/asm-arm/asm/swab.h b/libc/kernel/uapi/asm-arm/asm/swab.h
index 081a76e..7684c22 100644
--- a/libc/kernel/uapi/asm-arm/asm/swab.h
+++ b/libc/kernel/uapi/asm-arm/asm/swab.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI__ASM_ARM_SWAB_H
 #define _UAPI__ASM_ARM_SWAB_H
 #include <linux/compiler.h>
diff --git a/libc/kernel/uapi/asm-arm/asm/termbits.h b/libc/kernel/uapi/asm-arm/asm/termbits.h
index 42af6fe..e943da3 100644
--- a/libc/kernel/uapi/asm-arm/asm/termbits.h
+++ b/libc/kernel/uapi/asm-arm/asm/termbits.h
@@ -1,19 +1,7 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #include <asm-generic/termbits.h>
diff --git a/libc/kernel/uapi/asm-arm/asm/termios.h b/libc/kernel/uapi/asm-arm/asm/termios.h
index feca4c6..3ae8ca2 100644
--- a/libc/kernel/uapi/asm-arm/asm/termios.h
+++ b/libc/kernel/uapi/asm-arm/asm/termios.h
@@ -1,19 +1,7 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #include <asm-generic/termios.h>
diff --git a/libc/kernel/uapi/asm-arm/asm/types.h b/libc/kernel/uapi/asm-arm/asm/types.h
index 461e485..081fdfb 100644
--- a/libc/kernel/uapi/asm-arm/asm/types.h
+++ b/libc/kernel/uapi/asm-arm/asm/types.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_ASM_TYPES_H
 #define _UAPI_ASM_TYPES_H
 #include <asm-generic/int-ll64.h>
diff --git a/libc/kernel/uapi/asm-arm/asm/unistd-eabi.h b/libc/kernel/uapi/asm-arm/asm/unistd-eabi.h
index 71b25e7..9c4e459 100644
--- a/libc/kernel/uapi/asm-arm/asm/unistd-eabi.h
+++ b/libc/kernel/uapi/asm-arm/asm/unistd-eabi.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_ASM_UNISTD_EABI_H
 #define _UAPI_ASM_UNISTD_EABI_H
 #define __NR_restart_syscall (__NR_SYSCALL_BASE + 0)
@@ -421,4 +409,16 @@
 #define __NR_process_mrelease (__NR_SYSCALL_BASE + 448)
 #define __NR_futex_waitv (__NR_SYSCALL_BASE + 449)
 #define __NR_set_mempolicy_home_node (__NR_SYSCALL_BASE + 450)
+#define __NR_cachestat (__NR_SYSCALL_BASE + 451)
+#define __NR_fchmodat2 (__NR_SYSCALL_BASE + 452)
+#define __NR_map_shadow_stack (__NR_SYSCALL_BASE + 453)
+#define __NR_futex_wake (__NR_SYSCALL_BASE + 454)
+#define __NR_futex_wait (__NR_SYSCALL_BASE + 455)
+#define __NR_futex_requeue (__NR_SYSCALL_BASE + 456)
+#define __NR_statmount (__NR_SYSCALL_BASE + 457)
+#define __NR_listmount (__NR_SYSCALL_BASE + 458)
+#define __NR_lsm_get_self_attr (__NR_SYSCALL_BASE + 459)
+#define __NR_lsm_set_self_attr (__NR_SYSCALL_BASE + 460)
+#define __NR_lsm_list_modules (__NR_SYSCALL_BASE + 461)
+#define __NR_mseal (__NR_SYSCALL_BASE + 462)
 #endif
diff --git a/libc/kernel/uapi/asm-arm/asm/unistd-oabi.h b/libc/kernel/uapi/asm-arm/asm/unistd-oabi.h
index 08b3b9a..5060c2f 100644
--- a/libc/kernel/uapi/asm-arm/asm/unistd-oabi.h
+++ b/libc/kernel/uapi/asm-arm/asm/unistd-oabi.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_ASM_UNISTD_OABI_H
 #define _UAPI_ASM_UNISTD_OABI_H
 #define __NR_restart_syscall (__NR_SYSCALL_BASE + 0)
@@ -433,4 +421,16 @@
 #define __NR_process_mrelease (__NR_SYSCALL_BASE + 448)
 #define __NR_futex_waitv (__NR_SYSCALL_BASE + 449)
 #define __NR_set_mempolicy_home_node (__NR_SYSCALL_BASE + 450)
+#define __NR_cachestat (__NR_SYSCALL_BASE + 451)
+#define __NR_fchmodat2 (__NR_SYSCALL_BASE + 452)
+#define __NR_map_shadow_stack (__NR_SYSCALL_BASE + 453)
+#define __NR_futex_wake (__NR_SYSCALL_BASE + 454)
+#define __NR_futex_wait (__NR_SYSCALL_BASE + 455)
+#define __NR_futex_requeue (__NR_SYSCALL_BASE + 456)
+#define __NR_statmount (__NR_SYSCALL_BASE + 457)
+#define __NR_listmount (__NR_SYSCALL_BASE + 458)
+#define __NR_lsm_get_self_attr (__NR_SYSCALL_BASE + 459)
+#define __NR_lsm_set_self_attr (__NR_SYSCALL_BASE + 460)
+#define __NR_lsm_list_modules (__NR_SYSCALL_BASE + 461)
+#define __NR_mseal (__NR_SYSCALL_BASE + 462)
 #endif
diff --git a/libc/kernel/uapi/asm-arm/asm/unistd.h b/libc/kernel/uapi/asm-arm/asm/unistd.h
index 8bb0f58..a7e4e6d 100644
--- a/libc/kernel/uapi/asm-arm/asm/unistd.h
+++ b/libc/kernel/uapi/asm-arm/asm/unistd.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI__ASM_ARM_UNISTD_H
 #define _UAPI__ASM_ARM_UNISTD_H
 #define __NR_OABI_SYSCALL_BASE 0x900000
diff --git a/libc/kernel/uapi/asm-arm64/asm/auxvec.h b/libc/kernel/uapi/asm-arm64/asm/auxvec.h
index 4735fd5..c9ce353 100644
--- a/libc/kernel/uapi/asm-arm64/asm/auxvec.h
+++ b/libc/kernel/uapi/asm-arm64/asm/auxvec.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __ASM_AUXVEC_H
 #define __ASM_AUXVEC_H
 #define AT_SYSINFO_EHDR 33
diff --git a/libc/kernel/uapi/asm-arm64/asm/bitsperlong.h b/libc/kernel/uapi/asm-arm64/asm/bitsperlong.h
index c409c19..312224c 100644
--- a/libc/kernel/uapi/asm-arm64/asm/bitsperlong.h
+++ b/libc/kernel/uapi/asm-arm64/asm/bitsperlong.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __ASM_BITSPERLONG_H
 #define __ASM_BITSPERLONG_H
 #define __BITS_PER_LONG 64
diff --git a/libc/kernel/uapi/asm-arm64/asm/bpf_perf_event.h b/libc/kernel/uapi/asm-arm64/asm/bpf_perf_event.h
index cad04bf..887d7ff 100644
--- a/libc/kernel/uapi/asm-arm64/asm/bpf_perf_event.h
+++ b/libc/kernel/uapi/asm-arm64/asm/bpf_perf_event.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI__ASM_BPF_PERF_EVENT_H__
 #define _UAPI__ASM_BPF_PERF_EVENT_H__
 #include <asm/ptrace.h>
diff --git a/libc/kernel/uapi/asm-arm64/asm/byteorder.h b/libc/kernel/uapi/asm-arm64/asm/byteorder.h
index c3174b1..aa37026 100644
--- a/libc/kernel/uapi/asm-arm64/asm/byteorder.h
+++ b/libc/kernel/uapi/asm-arm64/asm/byteorder.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __ASM_BYTEORDER_H
 #define __ASM_BYTEORDER_H
 #ifdef __AARCH64EB__
diff --git a/libc/kernel/uapi/asm-arm64/asm/errno.h b/libc/kernel/uapi/asm-arm64/asm/errno.h
index 392cd94..68b3218 100644
--- a/libc/kernel/uapi/asm-arm64/asm/errno.h
+++ b/libc/kernel/uapi/asm-arm64/asm/errno.h
@@ -1,19 +1,7 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #include <asm-generic/errno.h>
diff --git a/libc/kernel/uapi/asm-arm64/asm/fcntl.h b/libc/kernel/uapi/asm-arm64/asm/fcntl.h
index e9e0e01..2f40230 100644
--- a/libc/kernel/uapi/asm-arm64/asm/fcntl.h
+++ b/libc/kernel/uapi/asm-arm64/asm/fcntl.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __ASM_FCNTL_H
 #define __ASM_FCNTL_H
 #define O_DIRECTORY 040000
diff --git a/libc/kernel/uapi/asm-arm64/asm/hwcap.h b/libc/kernel/uapi/asm-arm64/asm/hwcap.h
index bb592e4..f5c720a 100644
--- a/libc/kernel/uapi/asm-arm64/asm/hwcap.h
+++ b/libc/kernel/uapi/asm-arm64/asm/hwcap.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI__ASM_HWCAP_H
 #define _UAPI__ASM_HWCAP_H
 #define HWCAP_FP (1 << 0)
@@ -87,4 +75,30 @@
 #define HWCAP2_CSSC (1UL << 34)
 #define HWCAP2_RPRFM (1UL << 35)
 #define HWCAP2_SVE2P1 (1UL << 36)
+#define HWCAP2_SME2 (1UL << 37)
+#define HWCAP2_SME2P1 (1UL << 38)
+#define HWCAP2_SME_I16I32 (1UL << 39)
+#define HWCAP2_SME_BI32I32 (1UL << 40)
+#define HWCAP2_SME_B16B16 (1UL << 41)
+#define HWCAP2_SME_F16F16 (1UL << 42)
+#define HWCAP2_MOPS (1UL << 43)
+#define HWCAP2_HBC (1UL << 44)
+#define HWCAP2_SVE_B16B16 (1UL << 45)
+#define HWCAP2_LRCPC3 (1UL << 46)
+#define HWCAP2_LSE128 (1UL << 47)
+#define HWCAP2_FPMR (1UL << 48)
+#define HWCAP2_LUT (1UL << 49)
+#define HWCAP2_FAMINMAX (1UL << 50)
+#define HWCAP2_F8CVT (1UL << 51)
+#define HWCAP2_F8FMA (1UL << 52)
+#define HWCAP2_F8DP4 (1UL << 53)
+#define HWCAP2_F8DP2 (1UL << 54)
+#define HWCAP2_F8E4M3 (1UL << 55)
+#define HWCAP2_F8E5M2 (1UL << 56)
+#define HWCAP2_SME_LUTV2 (1UL << 57)
+#define HWCAP2_SME_F8F16 (1UL << 58)
+#define HWCAP2_SME_F8F32 (1UL << 59)
+#define HWCAP2_SME_SF8FMA (1UL << 60)
+#define HWCAP2_SME_SF8DP4 (1UL << 61)
+#define HWCAP2_SME_SF8DP2 (1UL << 62)
 #endif
diff --git a/libc/kernel/uapi/asm-arm64/asm/ioctl.h b/libc/kernel/uapi/asm-arm64/asm/ioctl.h
index 7b7bd37..513f68c 100644
--- a/libc/kernel/uapi/asm-arm64/asm/ioctl.h
+++ b/libc/kernel/uapi/asm-arm64/asm/ioctl.h
@@ -1,19 +1,7 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #include <asm-generic/ioctl.h>
diff --git a/libc/kernel/uapi/asm-arm64/asm/ioctls.h b/libc/kernel/uapi/asm-arm64/asm/ioctls.h
index 0c66935..0ed82e0 100644
--- a/libc/kernel/uapi/asm-arm64/asm/ioctls.h
+++ b/libc/kernel/uapi/asm-arm64/asm/ioctls.h
@@ -1,19 +1,7 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #include <asm-generic/ioctls.h>
diff --git a/libc/kernel/uapi/asm-arm64/asm/ipcbuf.h b/libc/kernel/uapi/asm-arm64/asm/ipcbuf.h
index 0021f14..0c908bc 100644
--- a/libc/kernel/uapi/asm-arm64/asm/ipcbuf.h
+++ b/libc/kernel/uapi/asm-arm64/asm/ipcbuf.h
@@ -1,19 +1,7 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #include <asm-generic/ipcbuf.h>
diff --git a/libc/kernel/uapi/asm-arm64/asm/kvm.h b/libc/kernel/uapi/asm-arm64/asm/kvm.h
index ce0c318..1818c5f 100644
--- a/libc/kernel/uapi/asm-arm64/asm/kvm.h
+++ b/libc/kernel/uapi/asm-arm64/asm/kvm.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __ARM_KVM_H__
 #define __ARM_KVM_H__
 #define KVM_SPSR_EL1 0
@@ -30,9 +18,7 @@
 #include <linux/types.h>
 #include <asm/ptrace.h>
 #include <asm/sve_context.h>
-#define __KVM_HAVE_GUEST_DEBUG
 #define __KVM_HAVE_IRQ_LINE
-#define __KVM_HAVE_READONLY_MEM
 #define __KVM_HAVE_VCPU_EVENTS
 #define KVM_COALESCED_MMIO_PAGE_OFFSET 1
 #define KVM_DIRTY_LOG_PAGE_OFFSET 64
@@ -52,9 +38,9 @@
 #define KVM_ARM_TARGET_GENERIC_V8 5
 #define KVM_ARM_NUM_TARGETS 6
 #define KVM_ARM_DEVICE_TYPE_SHIFT 0
-#define KVM_ARM_DEVICE_TYPE_MASK GENMASK(KVM_ARM_DEVICE_TYPE_SHIFT + 15, KVM_ARM_DEVICE_TYPE_SHIFT)
+#define KVM_ARM_DEVICE_TYPE_MASK __GENMASK(KVM_ARM_DEVICE_TYPE_SHIFT + 15, KVM_ARM_DEVICE_TYPE_SHIFT)
 #define KVM_ARM_DEVICE_ID_SHIFT 16
-#define KVM_ARM_DEVICE_ID_MASK GENMASK(KVM_ARM_DEVICE_ID_SHIFT + 15, KVM_ARM_DEVICE_ID_SHIFT)
+#define KVM_ARM_DEVICE_ID_MASK __GENMASK(KVM_ARM_DEVICE_ID_SHIFT + 15, KVM_ARM_DEVICE_ID_SHIFT)
 #define KVM_ARM_DEVICE_VGIC_V2 0
 #define KVM_VGIC_V2_ADDR_TYPE_DIST 0
 #define KVM_VGIC_V2_ADDR_TYPE_CPU 1
@@ -74,6 +60,7 @@
 #define KVM_ARM_VCPU_SVE 4
 #define KVM_ARM_VCPU_PTRAUTH_ADDRESS 5
 #define KVM_ARM_VCPU_PTRAUTH_GENERIC 6
+#define KVM_ARM_VCPU_HAS_EL2 7
 struct kvm_vcpu_init {
   __u32 target;
   __u32 features[7];
@@ -100,6 +87,9 @@
 struct kvm_sync_regs {
   __u64 device_irq_level;
 };
+#define KVM_ARM_DEV_EL1_VTIMER (1 << 0)
+#define KVM_ARM_DEV_EL1_PTIMER (1 << 1)
+#define KVM_ARM_DEV_PMU (1 << 2)
 struct kvm_pmu_event_filter {
   __u16 base_event;
   __u16 nevents;
@@ -125,6 +115,10 @@
   __u64 flags;
   __u64 reserved[2];
 };
+struct kvm_arm_counter_offset {
+  __u64 counter_offset;
+  __u64 reserved;
+};
 #define KVM_ARM_TAGS_TO_GUEST 0
 #define KVM_ARM_TAGS_FROM_GUEST 1
 #define KVM_REG_ARM_COPROC_MASK 0x000000000FFF0000
@@ -203,6 +197,8 @@
   KVM_REG_ARM_VENDOR_HYP_BIT_FUNC_FEAT = 0,
   KVM_REG_ARM_VENDOR_HYP_BIT_PTP = 1,
 };
+#define KVM_ARM_VM_SMCCC_CTRL 0
+#define KVM_ARM_VM_SMCCC_FILTER 0
 #define KVM_DEV_ARM_VGIC_GRP_ADDR 0
 #define KVM_DEV_ARM_VGIC_GRP_DIST_REGS 1
 #define KVM_DEV_ARM_VGIC_GRP_CPU_REGS 2
@@ -236,6 +232,8 @@
 #define KVM_ARM_VCPU_TIMER_CTRL 1
 #define KVM_ARM_VCPU_TIMER_IRQ_VTIMER 0
 #define KVM_ARM_VCPU_TIMER_IRQ_PTIMER 1
+#define KVM_ARM_VCPU_TIMER_IRQ_HVTIMER 2
+#define KVM_ARM_VCPU_TIMER_IRQ_HPTIMER 3
 #define KVM_ARM_VCPU_PVTIME_CTRL 2
 #define KVM_ARM_VCPU_PVTIME_IPA 0
 #define KVM_ARM_IRQ_VCPU2_SHIFT 28
@@ -265,5 +263,26 @@
 #define KVM_PSCI_RET_DENIED PSCI_RET_DENIED
 #define KVM_SYSTEM_EVENT_RESET_FLAG_PSCI_RESET2 (1ULL << 0)
 #define KVM_EXIT_FAIL_ENTRY_CPU_UNSUPPORTED (1ULL << 0)
+enum kvm_smccc_filter_action {
+  KVM_SMCCC_FILTER_HANDLE = 0,
+  KVM_SMCCC_FILTER_DENY,
+  KVM_SMCCC_FILTER_FWD_TO_USER,
+};
+struct kvm_smccc_filter {
+  __u32 base;
+  __u32 nr_functions;
+  __u8 action;
+  __u8 pad[15];
+};
+#define KVM_HYPERCALL_EXIT_SMC (1U << 0)
+#define KVM_HYPERCALL_EXIT_16BIT (1U << 1)
+#define KVM_ARM_FEATURE_ID_RANGE_IDX(op0,op1,crn,crm,op2) ({ __u64 __op1 = (op1) & 3; __op1 -= (__op1 == 3); (__op1 << 6 | ((crm) & 7) << 3 | (op2)); })
+#define KVM_ARM_FEATURE_ID_RANGE 0
+#define KVM_ARM_FEATURE_ID_RANGE_SIZE (3 * 8 * 8)
+struct reg_mask_range {
+  __u64 addr;
+  __u32 range;
+  __u32 reserved[13];
+};
 #endif
 #endif
diff --git a/libc/kernel/uapi/asm-arm64/asm/kvm_para.h b/libc/kernel/uapi/asm-arm64/asm/kvm_para.h
index e19f7a0..f05ee03 100644
--- a/libc/kernel/uapi/asm-arm64/asm/kvm_para.h
+++ b/libc/kernel/uapi/asm-arm64/asm/kvm_para.h
@@ -1,19 +1,7 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #include <asm-generic/kvm_para.h>
diff --git a/libc/kernel/uapi/asm-arm64/asm/mman.h b/libc/kernel/uapi/asm-arm64/asm/mman.h
index 98f72cf..1561053 100644
--- a/libc/kernel/uapi/asm-arm64/asm/mman.h
+++ b/libc/kernel/uapi/asm-arm64/asm/mman.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI__ASM_MMAN_H
 #define _UAPI__ASM_MMAN_H
 #include <asm-generic/mman.h>
diff --git a/libc/kernel/uapi/asm-arm64/asm/msgbuf.h b/libc/kernel/uapi/asm-arm64/asm/msgbuf.h
index 7809e3c..7b6d8d9 100644
--- a/libc/kernel/uapi/asm-arm64/asm/msgbuf.h
+++ b/libc/kernel/uapi/asm-arm64/asm/msgbuf.h
@@ -1,19 +1,7 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #include <asm-generic/msgbuf.h>
diff --git a/libc/kernel/uapi/asm-arm64/asm/param.h b/libc/kernel/uapi/asm-arm64/asm/param.h
index 3bd70ed..88641b1 100644
--- a/libc/kernel/uapi/asm-arm64/asm/param.h
+++ b/libc/kernel/uapi/asm-arm64/asm/param.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __ASM_PARAM_H
 #define __ASM_PARAM_H
 #define EXEC_PAGESIZE 65536
diff --git a/libc/kernel/uapi/asm-arm64/asm/perf_regs.h b/libc/kernel/uapi/asm-arm64/asm/perf_regs.h
index e18fd05..ded4dfc 100644
--- a/libc/kernel/uapi/asm-arm64/asm/perf_regs.h
+++ b/libc/kernel/uapi/asm-arm64/asm/perf_regs.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _ASM_ARM64_PERF_REGS_H
 #define _ASM_ARM64_PERF_REGS_H
 enum perf_event_arm_regs {
diff --git a/libc/kernel/uapi/asm-arm64/asm/poll.h b/libc/kernel/uapi/asm-arm64/asm/poll.h
index d7e8adc..bf92c2a 100644
--- a/libc/kernel/uapi/asm-arm64/asm/poll.h
+++ b/libc/kernel/uapi/asm-arm64/asm/poll.h
@@ -1,19 +1,7 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #include <asm-generic/poll.h>
diff --git a/libc/kernel/uapi/asm-arm64/asm/posix_types.h b/libc/kernel/uapi/asm-arm64/asm/posix_types.h
index 9ae7bfc..00df90d 100644
--- a/libc/kernel/uapi/asm-arm64/asm/posix_types.h
+++ b/libc/kernel/uapi/asm-arm64/asm/posix_types.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __ASM_POSIX_TYPES_H
 #define __ASM_POSIX_TYPES_H
 typedef unsigned short __kernel_old_uid_t;
diff --git a/libc/kernel/uapi/asm-arm64/asm/ptrace.h b/libc/kernel/uapi/asm-arm64/asm/ptrace.h
index 9540c3e..4541a66 100644
--- a/libc/kernel/uapi/asm-arm64/asm/ptrace.h
+++ b/libc/kernel/uapi/asm-arm64/asm/ptrace.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI__ASM_PTRACE_H
 #define _UAPI__ASM_PTRACE_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/asm-arm64/asm/resource.h b/libc/kernel/uapi/asm-arm64/asm/resource.h
index 371adb5..3ad9e62 100644
--- a/libc/kernel/uapi/asm-arm64/asm/resource.h
+++ b/libc/kernel/uapi/asm-arm64/asm/resource.h
@@ -1,19 +1,7 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #include <asm-generic/resource.h>
diff --git a/libc/kernel/uapi/asm-arm64/asm/sembuf.h b/libc/kernel/uapi/asm-arm64/asm/sembuf.h
index 6ce6549..d4a9072 100644
--- a/libc/kernel/uapi/asm-arm64/asm/sembuf.h
+++ b/libc/kernel/uapi/asm-arm64/asm/sembuf.h
@@ -1,19 +1,7 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #include <asm-generic/sembuf.h>
diff --git a/libc/kernel/uapi/asm-arm64/asm/setup.h b/libc/kernel/uapi/asm-arm64/asm/setup.h
index eac94e0..e84c94b 100644
--- a/libc/kernel/uapi/asm-arm64/asm/setup.h
+++ b/libc/kernel/uapi/asm-arm64/asm/setup.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __ASM_SETUP_H
 #define __ASM_SETUP_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/asm-arm64/asm/shmbuf.h b/libc/kernel/uapi/asm-arm64/asm/shmbuf.h
index fe8b1be..9b434f6 100644
--- a/libc/kernel/uapi/asm-arm64/asm/shmbuf.h
+++ b/libc/kernel/uapi/asm-arm64/asm/shmbuf.h
@@ -1,19 +1,7 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #include <asm-generic/shmbuf.h>
diff --git a/libc/kernel/uapi/asm-arm64/asm/sigcontext.h b/libc/kernel/uapi/asm-arm64/asm/sigcontext.h
index 04aa593..8e48d55 100644
--- a/libc/kernel/uapi/asm-arm64/asm/sigcontext.h
+++ b/libc/kernel/uapi/asm-arm64/asm/sigcontext.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI__ASM_SIGCONTEXT_H
 #define _UAPI__ASM_SIGCONTEXT_H
 #ifndef __ASSEMBLY__
@@ -59,12 +47,28 @@
   __u16 __reserved[2];
 };
 #define SVE_SIG_FLAG_SM 0x1
+#define TPIDR2_MAGIC 0x54504902
+struct tpidr2_context {
+  struct _aarch64_ctx head;
+  __u64 tpidr2;
+};
+#define FPMR_MAGIC 0x46504d52
+struct fpmr_context {
+  struct _aarch64_ctx head;
+  __u64 fpmr;
+};
 #define ZA_MAGIC 0x54366345
 struct za_context {
   struct _aarch64_ctx head;
   __u16 vl;
   __u16 __reserved[3];
 };
+#define ZT_MAGIC 0x5a544e01
+struct zt_context {
+  struct _aarch64_ctx head;
+  __u16 nregs;
+  __u16 __reserved[3];
+};
 #endif
 #include <asm/sve_context.h>
 #define SVE_VQ_BYTES __SVE_VQ_BYTES
@@ -94,4 +98,9 @@
 #define ZA_SIG_REGS_SIZE(vq) ((vq * __SVE_VQ_BYTES) * (vq * __SVE_VQ_BYTES))
 #define ZA_SIG_ZAV_OFFSET(vq,n) (ZA_SIG_REGS_OFFSET + (SVE_SIG_ZREG_SIZE(vq) * n))
 #define ZA_SIG_CONTEXT_SIZE(vq) (ZA_SIG_REGS_OFFSET + ZA_SIG_REGS_SIZE(vq))
+#define ZT_SIG_REG_SIZE 512
+#define ZT_SIG_REG_BYTES (ZT_SIG_REG_SIZE / 8)
+#define ZT_SIG_REGS_OFFSET sizeof(struct zt_context)
+#define ZT_SIG_REGS_SIZE(n) (ZT_SIG_REG_BYTES * n)
+#define ZT_SIG_CONTEXT_SIZE(n) (sizeof(struct zt_context) + ZT_SIG_REGS_SIZE(n))
 #endif
diff --git a/libc/kernel/uapi/asm-arm64/asm/siginfo.h b/libc/kernel/uapi/asm-arm64/asm/siginfo.h
index a31ebb2..8f5921e 100644
--- a/libc/kernel/uapi/asm-arm64/asm/siginfo.h
+++ b/libc/kernel/uapi/asm-arm64/asm/siginfo.h
@@ -1,19 +1,7 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #include <asm-generic/siginfo.h>
diff --git a/libc/kernel/uapi/asm-arm64/asm/signal.h b/libc/kernel/uapi/asm-arm64/asm/signal.h
index 7630b75..1b8911e 100644
--- a/libc/kernel/uapi/asm-arm64/asm/signal.h
+++ b/libc/kernel/uapi/asm-arm64/asm/signal.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __ASM_SIGNAL_H
 #define __ASM_SIGNAL_H
 #define SA_RESTORER 0x04000000
diff --git a/libc/kernel/uapi/asm-arm64/asm/socket.h b/libc/kernel/uapi/asm-arm64/asm/socket.h
index 50a9874..2ca3e45 100644
--- a/libc/kernel/uapi/asm-arm64/asm/socket.h
+++ b/libc/kernel/uapi/asm-arm64/asm/socket.h
@@ -1,19 +1,7 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #include <asm-generic/socket.h>
diff --git a/libc/kernel/uapi/asm-arm64/asm/sockios.h b/libc/kernel/uapi/asm-arm64/asm/sockios.h
index 710db92..5aba663 100644
--- a/libc/kernel/uapi/asm-arm64/asm/sockios.h
+++ b/libc/kernel/uapi/asm-arm64/asm/sockios.h
@@ -1,19 +1,7 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #include <asm-generic/sockios.h>
diff --git a/libc/kernel/uapi/asm-arm64/asm/stat.h b/libc/kernel/uapi/asm-arm64/asm/stat.h
index af7ebfc..6a514d3 100644
--- a/libc/kernel/uapi/asm-arm64/asm/stat.h
+++ b/libc/kernel/uapi/asm-arm64/asm/stat.h
@@ -1,19 +1,7 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #include <asm-generic/stat.h>
diff --git a/libc/kernel/uapi/asm-arm64/asm/statfs.h b/libc/kernel/uapi/asm-arm64/asm/statfs.h
index 4a96c7e..4a2534f 100644
--- a/libc/kernel/uapi/asm-arm64/asm/statfs.h
+++ b/libc/kernel/uapi/asm-arm64/asm/statfs.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __ASM_STATFS_H
 #define __ASM_STATFS_H
 #define ARCH_PACK_COMPAT_STATFS64 __attribute__((packed, aligned(4)))
diff --git a/libc/kernel/uapi/asm-arm64/asm/sve_context.h b/libc/kernel/uapi/asm-arm64/asm/sve_context.h
index ff0063e..583cb03 100644
--- a/libc/kernel/uapi/asm-arm64/asm/sve_context.h
+++ b/libc/kernel/uapi/asm-arm64/asm/sve_context.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI__ASM_SVE_CONTEXT_H
 #define _UAPI__ASM_SVE_CONTEXT_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/asm-arm64/asm/swab.h b/libc/kernel/uapi/asm-arm64/asm/swab.h
index 0049f53..f7781b7 100644
--- a/libc/kernel/uapi/asm-arm64/asm/swab.h
+++ b/libc/kernel/uapi/asm-arm64/asm/swab.h
@@ -1,19 +1,7 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #include <asm-generic/swab.h>
diff --git a/libc/kernel/uapi/asm-arm64/asm/termbits.h b/libc/kernel/uapi/asm-arm64/asm/termbits.h
index 42af6fe..e943da3 100644
--- a/libc/kernel/uapi/asm-arm64/asm/termbits.h
+++ b/libc/kernel/uapi/asm-arm64/asm/termbits.h
@@ -1,19 +1,7 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #include <asm-generic/termbits.h>
diff --git a/libc/kernel/uapi/asm-arm64/asm/termios.h b/libc/kernel/uapi/asm-arm64/asm/termios.h
index feca4c6..3ae8ca2 100644
--- a/libc/kernel/uapi/asm-arm64/asm/termios.h
+++ b/libc/kernel/uapi/asm-arm64/asm/termios.h
@@ -1,19 +1,7 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #include <asm-generic/termios.h>
diff --git a/libc/kernel/uapi/asm-arm64/asm/types.h b/libc/kernel/uapi/asm-arm64/asm/types.h
index 8250f43..a030be8 100644
--- a/libc/kernel/uapi/asm-arm64/asm/types.h
+++ b/libc/kernel/uapi/asm-arm64/asm/types.h
@@ -1,19 +1,7 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #include <asm-generic/types.h>
diff --git a/libc/kernel/uapi/asm-arm64/asm/ucontext.h b/libc/kernel/uapi/asm-arm64/asm/ucontext.h
index 24dc60a..97536c5 100644
--- a/libc/kernel/uapi/asm-arm64/asm/ucontext.h
+++ b/libc/kernel/uapi/asm-arm64/asm/ucontext.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI__ASM_UCONTEXT_H
 #define _UAPI__ASM_UCONTEXT_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/asm-arm64/asm/unistd.h b/libc/kernel/uapi/asm-arm64/asm/unistd.h
index 06b85ed..178578f 100644
--- a/libc/kernel/uapi/asm-arm64/asm/unistd.h
+++ b/libc/kernel/uapi/asm-arm64/asm/unistd.h
@@ -1,25 +1,7 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
-#define __ARCH_WANT_RENAMEAT
-#define __ARCH_WANT_NEW_STAT
-#define __ARCH_WANT_SET_GET_RLIMIT
-#define __ARCH_WANT_TIME32_SYSCALLS
-#define __ARCH_WANT_SYS_CLONE3
-#define __ARCH_WANT_MEMFD_SECRET
-#include <asm-generic/unistd.h>
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
+#include <asm/unistd_64.h>
diff --git a/libc/kernel/uapi/asm-arm64/asm/unistd_64.h b/libc/kernel/uapi/asm-arm64/asm/unistd_64.h
new file mode 100644
index 0000000..0a0a1c0
--- /dev/null
+++ b/libc/kernel/uapi/asm-arm64/asm/unistd_64.h
@@ -0,0 +1,327 @@
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
+#ifndef _UAPI_ASM_UNISTD_64_H
+#define _UAPI_ASM_UNISTD_64_H
+#define __NR_io_setup 0
+#define __NR_io_destroy 1
+#define __NR_io_submit 2
+#define __NR_io_cancel 3
+#define __NR_io_getevents 4
+#define __NR_setxattr 5
+#define __NR_lsetxattr 6
+#define __NR_fsetxattr 7
+#define __NR_getxattr 8
+#define __NR_lgetxattr 9
+#define __NR_fgetxattr 10
+#define __NR_listxattr 11
+#define __NR_llistxattr 12
+#define __NR_flistxattr 13
+#define __NR_removexattr 14
+#define __NR_lremovexattr 15
+#define __NR_fremovexattr 16
+#define __NR_getcwd 17
+#define __NR_lookup_dcookie 18
+#define __NR_eventfd2 19
+#define __NR_epoll_create1 20
+#define __NR_epoll_ctl 21
+#define __NR_epoll_pwait 22
+#define __NR_dup 23
+#define __NR_dup3 24
+#define __NR_fcntl 25
+#define __NR_inotify_init1 26
+#define __NR_inotify_add_watch 27
+#define __NR_inotify_rm_watch 28
+#define __NR_ioctl 29
+#define __NR_ioprio_set 30
+#define __NR_ioprio_get 31
+#define __NR_flock 32
+#define __NR_mknodat 33
+#define __NR_mkdirat 34
+#define __NR_unlinkat 35
+#define __NR_symlinkat 36
+#define __NR_linkat 37
+#define __NR_renameat 38
+#define __NR_umount2 39
+#define __NR_mount 40
+#define __NR_pivot_root 41
+#define __NR_nfsservctl 42
+#define __NR_statfs 43
+#define __NR_fstatfs 44
+#define __NR_truncate 45
+#define __NR_ftruncate 46
+#define __NR_fallocate 47
+#define __NR_faccessat 48
+#define __NR_chdir 49
+#define __NR_fchdir 50
+#define __NR_chroot 51
+#define __NR_fchmod 52
+#define __NR_fchmodat 53
+#define __NR_fchownat 54
+#define __NR_fchown 55
+#define __NR_openat 56
+#define __NR_close 57
+#define __NR_vhangup 58
+#define __NR_pipe2 59
+#define __NR_quotactl 60
+#define __NR_getdents64 61
+#define __NR_lseek 62
+#define __NR_read 63
+#define __NR_write 64
+#define __NR_readv 65
+#define __NR_writev 66
+#define __NR_pread64 67
+#define __NR_pwrite64 68
+#define __NR_preadv 69
+#define __NR_pwritev 70
+#define __NR_sendfile 71
+#define __NR_pselect6 72
+#define __NR_ppoll 73
+#define __NR_signalfd4 74
+#define __NR_vmsplice 75
+#define __NR_splice 76
+#define __NR_tee 77
+#define __NR_readlinkat 78
+#define __NR_newfstatat 79
+#define __NR_fstat 80
+#define __NR_sync 81
+#define __NR_fsync 82
+#define __NR_fdatasync 83
+#define __NR_sync_file_range 84
+#define __NR_timerfd_create 85
+#define __NR_timerfd_settime 86
+#define __NR_timerfd_gettime 87
+#define __NR_utimensat 88
+#define __NR_acct 89
+#define __NR_capget 90
+#define __NR_capset 91
+#define __NR_personality 92
+#define __NR_exit 93
+#define __NR_exit_group 94
+#define __NR_waitid 95
+#define __NR_set_tid_address 96
+#define __NR_unshare 97
+#define __NR_futex 98
+#define __NR_set_robust_list 99
+#define __NR_get_robust_list 100
+#define __NR_nanosleep 101
+#define __NR_getitimer 102
+#define __NR_setitimer 103
+#define __NR_kexec_load 104
+#define __NR_init_module 105
+#define __NR_delete_module 106
+#define __NR_timer_create 107
+#define __NR_timer_gettime 108
+#define __NR_timer_getoverrun 109
+#define __NR_timer_settime 110
+#define __NR_timer_delete 111
+#define __NR_clock_settime 112
+#define __NR_clock_gettime 113
+#define __NR_clock_getres 114
+#define __NR_clock_nanosleep 115
+#define __NR_syslog 116
+#define __NR_ptrace 117
+#define __NR_sched_setparam 118
+#define __NR_sched_setscheduler 119
+#define __NR_sched_getscheduler 120
+#define __NR_sched_getparam 121
+#define __NR_sched_setaffinity 122
+#define __NR_sched_getaffinity 123
+#define __NR_sched_yield 124
+#define __NR_sched_get_priority_max 125
+#define __NR_sched_get_priority_min 126
+#define __NR_sched_rr_get_interval 127
+#define __NR_restart_syscall 128
+#define __NR_kill 129
+#define __NR_tkill 130
+#define __NR_tgkill 131
+#define __NR_sigaltstack 132
+#define __NR_rt_sigsuspend 133
+#define __NR_rt_sigaction 134
+#define __NR_rt_sigprocmask 135
+#define __NR_rt_sigpending 136
+#define __NR_rt_sigtimedwait 137
+#define __NR_rt_sigqueueinfo 138
+#define __NR_rt_sigreturn 139
+#define __NR_setpriority 140
+#define __NR_getpriority 141
+#define __NR_reboot 142
+#define __NR_setregid 143
+#define __NR_setgid 144
+#define __NR_setreuid 145
+#define __NR_setuid 146
+#define __NR_setresuid 147
+#define __NR_getresuid 148
+#define __NR_setresgid 149
+#define __NR_getresgid 150
+#define __NR_setfsuid 151
+#define __NR_setfsgid 152
+#define __NR_times 153
+#define __NR_setpgid 154
+#define __NR_getpgid 155
+#define __NR_getsid 156
+#define __NR_setsid 157
+#define __NR_getgroups 158
+#define __NR_setgroups 159
+#define __NR_uname 160
+#define __NR_sethostname 161
+#define __NR_setdomainname 162
+#define __NR_getrlimit 163
+#define __NR_setrlimit 164
+#define __NR_getrusage 165
+#define __NR_umask 166
+#define __NR_prctl 167
+#define __NR_getcpu 168
+#define __NR_gettimeofday 169
+#define __NR_settimeofday 170
+#define __NR_adjtimex 171
+#define __NR_getpid 172
+#define __NR_getppid 173
+#define __NR_getuid 174
+#define __NR_geteuid 175
+#define __NR_getgid 176
+#define __NR_getegid 177
+#define __NR_gettid 178
+#define __NR_sysinfo 179
+#define __NR_mq_open 180
+#define __NR_mq_unlink 181
+#define __NR_mq_timedsend 182
+#define __NR_mq_timedreceive 183
+#define __NR_mq_notify 184
+#define __NR_mq_getsetattr 185
+#define __NR_msgget 186
+#define __NR_msgctl 187
+#define __NR_msgrcv 188
+#define __NR_msgsnd 189
+#define __NR_semget 190
+#define __NR_semctl 191
+#define __NR_semtimedop 192
+#define __NR_semop 193
+#define __NR_shmget 194
+#define __NR_shmctl 195
+#define __NR_shmat 196
+#define __NR_shmdt 197
+#define __NR_socket 198
+#define __NR_socketpair 199
+#define __NR_bind 200
+#define __NR_listen 201
+#define __NR_accept 202
+#define __NR_connect 203
+#define __NR_getsockname 204
+#define __NR_getpeername 205
+#define __NR_sendto 206
+#define __NR_recvfrom 207
+#define __NR_setsockopt 208
+#define __NR_getsockopt 209
+#define __NR_shutdown 210
+#define __NR_sendmsg 211
+#define __NR_recvmsg 212
+#define __NR_readahead 213
+#define __NR_brk 214
+#define __NR_munmap 215
+#define __NR_mremap 216
+#define __NR_add_key 217
+#define __NR_request_key 218
+#define __NR_keyctl 219
+#define __NR_clone 220
+#define __NR_execve 221
+#define __NR_mmap 222
+#define __NR_fadvise64 223
+#define __NR_swapon 224
+#define __NR_swapoff 225
+#define __NR_mprotect 226
+#define __NR_msync 227
+#define __NR_mlock 228
+#define __NR_munlock 229
+#define __NR_mlockall 230
+#define __NR_munlockall 231
+#define __NR_mincore 232
+#define __NR_madvise 233
+#define __NR_remap_file_pages 234
+#define __NR_mbind 235
+#define __NR_get_mempolicy 236
+#define __NR_set_mempolicy 237
+#define __NR_migrate_pages 238
+#define __NR_move_pages 239
+#define __NR_rt_tgsigqueueinfo 240
+#define __NR_perf_event_open 241
+#define __NR_accept4 242
+#define __NR_recvmmsg 243
+#define __NR_wait4 260
+#define __NR_prlimit64 261
+#define __NR_fanotify_init 262
+#define __NR_fanotify_mark 263
+#define __NR_name_to_handle_at 264
+#define __NR_open_by_handle_at 265
+#define __NR_clock_adjtime 266
+#define __NR_syncfs 267
+#define __NR_setns 268
+#define __NR_sendmmsg 269
+#define __NR_process_vm_readv 270
+#define __NR_process_vm_writev 271
+#define __NR_kcmp 272
+#define __NR_finit_module 273
+#define __NR_sched_setattr 274
+#define __NR_sched_getattr 275
+#define __NR_renameat2 276
+#define __NR_seccomp 277
+#define __NR_getrandom 278
+#define __NR_memfd_create 279
+#define __NR_bpf 280
+#define __NR_execveat 281
+#define __NR_userfaultfd 282
+#define __NR_membarrier 283
+#define __NR_mlock2 284
+#define __NR_copy_file_range 285
+#define __NR_preadv2 286
+#define __NR_pwritev2 287
+#define __NR_pkey_mprotect 288
+#define __NR_pkey_alloc 289
+#define __NR_pkey_free 290
+#define __NR_statx 291
+#define __NR_io_pgetevents 292
+#define __NR_rseq 293
+#define __NR_kexec_file_load 294
+#define __NR_pidfd_send_signal 424
+#define __NR_io_uring_setup 425
+#define __NR_io_uring_enter 426
+#define __NR_io_uring_register 427
+#define __NR_open_tree 428
+#define __NR_move_mount 429
+#define __NR_fsopen 430
+#define __NR_fsconfig 431
+#define __NR_fsmount 432
+#define __NR_fspick 433
+#define __NR_pidfd_open 434
+#define __NR_clone3 435
+#define __NR_close_range 436
+#define __NR_openat2 437
+#define __NR_pidfd_getfd 438
+#define __NR_faccessat2 439
+#define __NR_process_madvise 440
+#define __NR_epoll_pwait2 441
+#define __NR_mount_setattr 442
+#define __NR_quotactl_fd 443
+#define __NR_landlock_create_ruleset 444
+#define __NR_landlock_add_rule 445
+#define __NR_landlock_restrict_self 446
+#define __NR_memfd_secret 447
+#define __NR_process_mrelease 448
+#define __NR_futex_waitv 449
+#define __NR_set_mempolicy_home_node 450
+#define __NR_cachestat 451
+#define __NR_fchmodat2 452
+#define __NR_map_shadow_stack 453
+#define __NR_futex_wake 454
+#define __NR_futex_wait 455
+#define __NR_futex_requeue 456
+#define __NR_statmount 457
+#define __NR_listmount 458
+#define __NR_lsm_get_self_attr 459
+#define __NR_lsm_set_self_attr 460
+#define __NR_lsm_list_modules 461
+#define __NR_mseal 462
+#endif
diff --git a/libc/kernel/uapi/asm-generic/auxvec.h b/libc/kernel/uapi/asm-generic/auxvec.h
index fad637b..87fe67e 100644
--- a/libc/kernel/uapi/asm-generic/auxvec.h
+++ b/libc/kernel/uapi/asm-generic/auxvec.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __ASM_GENERIC_AUXVEC_H
 #define __ASM_GENERIC_AUXVEC_H
 #endif
diff --git a/libc/kernel/uapi/asm-generic/bitsperlong.h b/libc/kernel/uapi/asm-generic/bitsperlong.h
index 8fb379f..11dcc1a 100644
--- a/libc/kernel/uapi/asm-generic/bitsperlong.h
+++ b/libc/kernel/uapi/asm-generic/bitsperlong.h
@@ -1,24 +1,19 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI__ASM_GENERIC_BITS_PER_LONG
 #define _UAPI__ASM_GENERIC_BITS_PER_LONG
 #ifndef __BITS_PER_LONG
+#if defined(__CHAR_BIT__) && defined(__SIZEOF_LONG__)
+#define __BITS_PER_LONG (__CHAR_BIT__ * __SIZEOF_LONG__)
+#else
 #define __BITS_PER_LONG 32
 #endif
 #endif
+#ifndef __BITS_PER_LONG_LONG
+#define __BITS_PER_LONG_LONG 64
+#endif
+#endif
diff --git a/libc/kernel/uapi/asm-generic/bpf_perf_event.h b/libc/kernel/uapi/asm-generic/bpf_perf_event.h
index 794927b..23d34ec 100644
--- a/libc/kernel/uapi/asm-generic/bpf_perf_event.h
+++ b/libc/kernel/uapi/asm-generic/bpf_perf_event.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI__ASM_GENERIC_BPF_PERF_EVENT_H__
 #define _UAPI__ASM_GENERIC_BPF_PERF_EVENT_H__
 #include <linux/ptrace.h>
diff --git a/libc/kernel/uapi/asm-generic/errno-base.h b/libc/kernel/uapi/asm-generic/errno-base.h
index bdfb811..592edb0 100644
--- a/libc/kernel/uapi/asm-generic/errno-base.h
+++ b/libc/kernel/uapi/asm-generic/errno-base.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _ASM_GENERIC_ERRNO_BASE_H
 #define _ASM_GENERIC_ERRNO_BASE_H
 #define EPERM 1
diff --git a/libc/kernel/uapi/asm-generic/errno.h b/libc/kernel/uapi/asm-generic/errno.h
index 6a2c285..f1e18ad 100644
--- a/libc/kernel/uapi/asm-generic/errno.h
+++ b/libc/kernel/uapi/asm-generic/errno.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _ASM_GENERIC_ERRNO_H
 #define _ASM_GENERIC_ERRNO_H
 #include <asm-generic/errno-base.h>
diff --git a/libc/kernel/uapi/asm-generic/fcntl.h b/libc/kernel/uapi/asm-generic/fcntl.h
index ea8c108..a6812c6 100644
--- a/libc/kernel/uapi/asm-generic/fcntl.h
+++ b/libc/kernel/uapi/asm-generic/fcntl.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _ASM_GENERIC_FCNTL_H
 #define _ASM_GENERIC_FCNTL_H
 #include <bits/flock64.h>
@@ -78,7 +66,6 @@
 #define __O_TMPFILE 020000000
 #endif
 #define O_TMPFILE (__O_TMPFILE | O_DIRECTORY)
-#define O_TMPFILE_MASK (__O_TMPFILE | O_DIRECTORY | O_CREAT)
 #ifndef O_NDELAY
 #define O_NDELAY O_NONBLOCK
 #endif
diff --git a/libc/kernel/uapi/asm-generic/hugetlb_encode.h b/libc/kernel/uapi/asm-generic/hugetlb_encode.h
index 059991c..f515990 100644
--- a/libc/kernel/uapi/asm-generic/hugetlb_encode.h
+++ b/libc/kernel/uapi/asm-generic/hugetlb_encode.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _ASM_GENERIC_HUGETLB_ENCODE_H_
 #define _ASM_GENERIC_HUGETLB_ENCODE_H_
 #define HUGETLB_FLAG_ENCODE_SHIFT 26
diff --git a/libc/kernel/uapi/asm-generic/int-l64.h b/libc/kernel/uapi/asm-generic/int-l64.h
index 6ddf740..c64aa8d 100644
--- a/libc/kernel/uapi/asm-generic/int-l64.h
+++ b/libc/kernel/uapi/asm-generic/int-l64.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_ASM_GENERIC_INT_L64_H
 #define _UAPI_ASM_GENERIC_INT_L64_H
 #include <asm/bitsperlong.h>
diff --git a/libc/kernel/uapi/asm-generic/int-ll64.h b/libc/kernel/uapi/asm-generic/int-ll64.h
index dcad2eb..505efc6 100644
--- a/libc/kernel/uapi/asm-generic/int-ll64.h
+++ b/libc/kernel/uapi/asm-generic/int-ll64.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_ASM_GENERIC_INT_LL64_H
 #define _UAPI_ASM_GENERIC_INT_LL64_H
 #include <asm/bitsperlong.h>
diff --git a/libc/kernel/uapi/asm-generic/ioctl.h b/libc/kernel/uapi/asm-generic/ioctl.h
index 84c2ec8..d614fef 100644
--- a/libc/kernel/uapi/asm-generic/ioctl.h
+++ b/libc/kernel/uapi/asm-generic/ioctl.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_ASM_GENERIC_IOCTL_H
 #define _UAPI_ASM_GENERIC_IOCTL_H
 #define _IOC_NRBITS 8
diff --git a/libc/kernel/uapi/asm-generic/ioctls.h b/libc/kernel/uapi/asm-generic/ioctls.h
index f8a4357..b10a38b 100644
--- a/libc/kernel/uapi/asm-generic/ioctls.h
+++ b/libc/kernel/uapi/asm-generic/ioctls.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __ASM_GENERIC_IOCTLS_H
 #define __ASM_GENERIC_IOCTLS_H
 #include <linux/ioctl.h>
diff --git a/libc/kernel/uapi/asm-generic/ipcbuf.h b/libc/kernel/uapi/asm-generic/ipcbuf.h
index 40c45ab..5448bfb 100644
--- a/libc/kernel/uapi/asm-generic/ipcbuf.h
+++ b/libc/kernel/uapi/asm-generic/ipcbuf.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __ASM_GENERIC_IPCBUF_H
 #define __ASM_GENERIC_IPCBUF_H
 #include <linux/posix_types.h>
diff --git a/libc/kernel/uapi/asm-generic/kvm_para.h b/libc/kernel/uapi/asm-generic/kvm_para.h
index 878419c..02e56b8 100644
--- a/libc/kernel/uapi/asm-generic/kvm_para.h
+++ b/libc/kernel/uapi/asm-generic/kvm_para.h
@@ -1,18 +1,6 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
diff --git a/libc/kernel/uapi/asm-generic/mman-common.h b/libc/kernel/uapi/asm-generic/mman-common.h
index 966d05b..55e0ca1 100644
--- a/libc/kernel/uapi/asm-generic/mman-common.h
+++ b/libc/kernel/uapi/asm-generic/mman-common.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __ASM_GENERIC_MMAN_COMMON_H
 #define __ASM_GENERIC_MMAN_COMMON_H
 #define PROT_READ 0x1
diff --git a/libc/kernel/uapi/asm-generic/mman.h b/libc/kernel/uapi/asm-generic/mman.h
index 33d43f7..a2a5de9 100644
--- a/libc/kernel/uapi/asm-generic/mman.h
+++ b/libc/kernel/uapi/asm-generic/mman.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __ASM_GENERIC_MMAN_H
 #define __ASM_GENERIC_MMAN_H
 #include <asm-generic/mman-common.h>
diff --git a/libc/kernel/uapi/asm-generic/msgbuf.h b/libc/kernel/uapi/asm-generic/msgbuf.h
index 827d050..6b51263 100644
--- a/libc/kernel/uapi/asm-generic/msgbuf.h
+++ b/libc/kernel/uapi/asm-generic/msgbuf.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __ASM_GENERIC_MSGBUF_H
 #define __ASM_GENERIC_MSGBUF_H
 #include <asm/bitsperlong.h>
diff --git a/libc/kernel/uapi/asm-generic/param.h b/libc/kernel/uapi/asm-generic/param.h
index 7897799..ee07149 100644
--- a/libc/kernel/uapi/asm-generic/param.h
+++ b/libc/kernel/uapi/asm-generic/param.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI__ASM_GENERIC_PARAM_H
 #define _UAPI__ASM_GENERIC_PARAM_H
 #ifndef HZ
diff --git a/libc/kernel/uapi/asm-generic/poll.h b/libc/kernel/uapi/asm-generic/poll.h
index ba6f2e9..73c6cc1 100644
--- a/libc/kernel/uapi/asm-generic/poll.h
+++ b/libc/kernel/uapi/asm-generic/poll.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __ASM_GENERIC_POLL_H
 #define __ASM_GENERIC_POLL_H
 #define POLLIN 0x0001
diff --git a/libc/kernel/uapi/asm-generic/posix_types.h b/libc/kernel/uapi/asm-generic/posix_types.h
index 4045127..889cfaf 100644
--- a/libc/kernel/uapi/asm-generic/posix_types.h
+++ b/libc/kernel/uapi/asm-generic/posix_types.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __ASM_GENERIC_POSIX_TYPES_H
 #define __ASM_GENERIC_POSIX_TYPES_H
 #include <asm/bitsperlong.h>
diff --git a/libc/kernel/uapi/asm-generic/resource.h b/libc/kernel/uapi/asm-generic/resource.h
index 843910b..53580e0 100644
--- a/libc/kernel/uapi/asm-generic/resource.h
+++ b/libc/kernel/uapi/asm-generic/resource.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_ASM_GENERIC_RESOURCE_H
 #define _UAPI_ASM_GENERIC_RESOURCE_H
 #define RLIMIT_CPU 0
diff --git a/libc/kernel/uapi/asm-generic/sembuf.h b/libc/kernel/uapi/asm-generic/sembuf.h
index 46306f7..958fa91 100644
--- a/libc/kernel/uapi/asm-generic/sembuf.h
+++ b/libc/kernel/uapi/asm-generic/sembuf.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __ASM_GENERIC_SEMBUF_H
 #define __ASM_GENERIC_SEMBUF_H
 #include <asm/bitsperlong.h>
diff --git a/libc/kernel/uapi/asm-generic/setup.h b/libc/kernel/uapi/asm-generic/setup.h
index f44a6dd..a11d4ef 100644
--- a/libc/kernel/uapi/asm-generic/setup.h
+++ b/libc/kernel/uapi/asm-generic/setup.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __ASM_GENERIC_SETUP_H
 #define __ASM_GENERIC_SETUP_H
 #define COMMAND_LINE_SIZE 512
diff --git a/libc/kernel/uapi/asm-generic/shmbuf.h b/libc/kernel/uapi/asm-generic/shmbuf.h
index 11487f4..838c592 100644
--- a/libc/kernel/uapi/asm-generic/shmbuf.h
+++ b/libc/kernel/uapi/asm-generic/shmbuf.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __ASM_GENERIC_SHMBUF_H
 #define __ASM_GENERIC_SHMBUF_H
 #include <asm/bitsperlong.h>
diff --git a/libc/kernel/uapi/asm-generic/siginfo.h b/libc/kernel/uapi/asm-generic/siginfo.h
index 90393ba..2124bfb 100644
--- a/libc/kernel/uapi/asm-generic/siginfo.h
+++ b/libc/kernel/uapi/asm-generic/siginfo.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_ASM_GENERIC_SIGINFO_H
 #define _UAPI_ASM_GENERIC_SIGINFO_H
 #include <linux/compiler.h>
@@ -59,11 +47,6 @@
   } _sigchld;
   struct {
     void  * _addr;
-#ifdef __ia64__
-    int _imm;
-    unsigned int _flags;
-    unsigned long _isr;
-#endif
 #define __ADDR_BND_PKEY_PAD (__alignof__(void *) < sizeof(short) ? sizeof(short) : __alignof__(void *))
     union {
       int _trapno;
@@ -185,7 +168,8 @@
 #define SEGV_ADIPERR 7
 #define SEGV_MTEAERR 8
 #define SEGV_MTESERR 9
-#define NSIGSEGV 9
+#define SEGV_CPERR 10
+#define NSIGSEGV 10
 #define BUS_ADRALN 1
 #define BUS_ADRERR 2
 #define BUS_OBJERR 3
diff --git a/libc/kernel/uapi/asm-generic/signal-defs.h b/libc/kernel/uapi/asm-generic/signal-defs.h
index dea8fbc..a1bfa2f 100644
--- a/libc/kernel/uapi/asm-generic/signal-defs.h
+++ b/libc/kernel/uapi/asm-generic/signal-defs.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __ASM_GENERIC_SIGNAL_DEFS_H
 #define __ASM_GENERIC_SIGNAL_DEFS_H
 #include <linux/compiler.h>
diff --git a/libc/kernel/uapi/asm-generic/signal.h b/libc/kernel/uapi/asm-generic/signal.h
index 9cf393f..21c7100 100644
--- a/libc/kernel/uapi/asm-generic/signal.h
+++ b/libc/kernel/uapi/asm-generic/signal.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI__ASM_GENERIC_SIGNAL_H
 #define _UAPI__ASM_GENERIC_SIGNAL_H
 #include <linux/types.h>
@@ -73,7 +61,7 @@
 #ifdef SA_RESTORER
 #define __ARCH_HAS_SA_RESTORER
 #endif
-struct sigaction {
+struct __kernel_sigaction {
   __sighandler_t sa_handler;
   unsigned long sa_flags;
 #ifdef SA_RESTORER
diff --git a/libc/kernel/uapi/asm-generic/socket.h b/libc/kernel/uapi/asm-generic/socket.h
index 1a321bf..2d90586 100644
--- a/libc/kernel/uapi/asm-generic/socket.h
+++ b/libc/kernel/uapi/asm-generic/socket.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __ASM_GENERIC_SOCKET_H
 #define __ASM_GENERIC_SOCKET_H
 #include <linux/posix_types.h>
@@ -102,6 +90,8 @@
 #define SO_RESERVE_MEM 73
 #define SO_TXREHASH 74
 #define SO_RCVMARK 75
+#define SO_PASSPIDFD 76
+#define SO_PEERPIDFD 77
 #if __BITS_PER_LONG == 64 || defined(__x86_64__) && defined(__ILP32__)
 #define SO_TIMESTAMP SO_TIMESTAMP_OLD
 #define SO_TIMESTAMPNS SO_TIMESTAMPNS_OLD
diff --git a/libc/kernel/uapi/asm-generic/sockios.h b/libc/kernel/uapi/asm-generic/sockios.h
index afbc6ad..360d034 100644
--- a/libc/kernel/uapi/asm-generic/sockios.h
+++ b/libc/kernel/uapi/asm-generic/sockios.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __ASM_GENERIC_SOCKIOS_H
 #define __ASM_GENERIC_SOCKIOS_H
 #define FIOSETOWN 0x8901
diff --git a/libc/kernel/uapi/asm-generic/stat.h b/libc/kernel/uapi/asm-generic/stat.h
index 9cc00f2..20ed501 100644
--- a/libc/kernel/uapi/asm-generic/stat.h
+++ b/libc/kernel/uapi/asm-generic/stat.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __ASM_GENERIC_STAT_H
 #define __ASM_GENERIC_STAT_H
 #include <asm/bitsperlong.h>
diff --git a/libc/kernel/uapi/asm-generic/statfs.h b/libc/kernel/uapi/asm-generic/statfs.h
index 7184ce9..1fe2c09 100644
--- a/libc/kernel/uapi/asm-generic/statfs.h
+++ b/libc/kernel/uapi/asm-generic/statfs.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_GENERIC_STATFS_H
 #define _UAPI_GENERIC_STATFS_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/asm-generic/swab.h b/libc/kernel/uapi/asm-generic/swab.h
index b6119db..52f6c91 100644
--- a/libc/kernel/uapi/asm-generic/swab.h
+++ b/libc/kernel/uapi/asm-generic/swab.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _ASM_GENERIC_SWAB_H
 #define _ASM_GENERIC_SWAB_H
 #include <asm/bitsperlong.h>
diff --git a/libc/kernel/uapi/asm-generic/termbits-common.h b/libc/kernel/uapi/asm-generic/termbits-common.h
index 281eee8..21c284b 100644
--- a/libc/kernel/uapi/asm-generic/termbits-common.h
+++ b/libc/kernel/uapi/asm-generic/termbits-common.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __ASM_GENERIC_TERMBITS_COMMON_H
 #define __ASM_GENERIC_TERMBITS_COMMON_H
 typedef unsigned char cc_t;
diff --git a/libc/kernel/uapi/asm-generic/termbits.h b/libc/kernel/uapi/asm-generic/termbits.h
index 87d6c82..26b0097 100644
--- a/libc/kernel/uapi/asm-generic/termbits.h
+++ b/libc/kernel/uapi/asm-generic/termbits.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __ASM_GENERIC_TERMBITS_H
 #define __ASM_GENERIC_TERMBITS_H
 #include <asm-generic/termbits-common.h>
diff --git a/libc/kernel/uapi/asm-generic/termios.h b/libc/kernel/uapi/asm-generic/termios.h
index 77b260b..23cf922 100644
--- a/libc/kernel/uapi/asm-generic/termios.h
+++ b/libc/kernel/uapi/asm-generic/termios.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_ASM_GENERIC_TERMIOS_H
 #define _UAPI_ASM_GENERIC_TERMIOS_H
 #include <asm/termbits.h>
diff --git a/libc/kernel/uapi/asm-generic/types.h b/libc/kernel/uapi/asm-generic/types.h
index bac728e..d3e6944 100644
--- a/libc/kernel/uapi/asm-generic/types.h
+++ b/libc/kernel/uapi/asm-generic/types.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_ASM_GENERIC_TYPES_H
 #define _UAPI_ASM_GENERIC_TYPES_H
 #include <asm-generic/int-ll64.h>
diff --git a/libc/kernel/uapi/asm-generic/ucontext.h b/libc/kernel/uapi/asm-generic/ucontext.h
index 17d8f70..340c9c9 100644
--- a/libc/kernel/uapi/asm-generic/ucontext.h
+++ b/libc/kernel/uapi/asm-generic/ucontext.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __ASM_GENERIC_UCONTEXT_H
 #define __ASM_GENERIC_UCONTEXT_H
 struct ucontext {
diff --git a/libc/kernel/uapi/asm-generic/unistd.h b/libc/kernel/uapi/asm-generic/unistd.h
index d23958b..652e7a2 100644
--- a/libc/kernel/uapi/asm-generic/unistd.h
+++ b/libc/kernel/uapi/asm-generic/unistd.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #include <asm/bitsperlong.h>
 #ifndef __SYSCALL
 #define __SYSCALL(x,y)
@@ -393,9 +381,7 @@
 #define __NR_fsmount 432
 #define __NR_fspick 433
 #define __NR_pidfd_open 434
-#ifdef __ARCH_WANT_SYS_CLONE3
 #define __NR_clone3 435
-#endif
 #define __NR_close_range 436
 #define __NR_openat2 437
 #define __NR_pidfd_getfd 438
@@ -413,8 +399,20 @@
 #define __NR_process_mrelease 448
 #define __NR_futex_waitv 449
 #define __NR_set_mempolicy_home_node 450
+#define __NR_cachestat 451
+#define __NR_fchmodat2 452
+#define __NR_map_shadow_stack 453
+#define __NR_futex_wake 454
+#define __NR_futex_wait 455
+#define __NR_futex_requeue 456
+#define __NR_statmount 457
+#define __NR_listmount 458
+#define __NR_lsm_get_self_attr 459
+#define __NR_lsm_set_self_attr 460
+#define __NR_lsm_list_modules 461
+#define __NR_mseal 462
 #undef __NR_syscalls
-#define __NR_syscalls 451
+#define __NR_syscalls 463
 #if __BITS_PER_LONG == 64 && !defined(__SYSCALL_COMPAT)
 #define __NR_fcntl __NR3264_fcntl
 #define __NR_statfs __NR3264_statfs
diff --git a/libc/kernel/uapi/asm-riscv/asm/auxvec.h b/libc/kernel/uapi/asm-riscv/asm/auxvec.h
index c70be17..755f4e9 100644
--- a/libc/kernel/uapi/asm-riscv/asm/auxvec.h
+++ b/libc/kernel/uapi/asm-riscv/asm/auxvec.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_ASM_RISCV_AUXVEC_H
 #define _UAPI_ASM_RISCV_AUXVEC_H
 #define AT_SYSINFO_EHDR 33
@@ -27,5 +15,6 @@
 #define AT_L2_CACHEGEOMETRY 45
 #define AT_L3_CACHESIZE 46
 #define AT_L3_CACHEGEOMETRY 47
-#define AT_VECTOR_SIZE_ARCH 9
+#define AT_VECTOR_SIZE_ARCH 10
+#define AT_MINSIGSTKSZ 51
 #endif
diff --git a/libc/kernel/uapi/asm-riscv/asm/bitsperlong.h b/libc/kernel/uapi/asm-riscv/asm/bitsperlong.h
index 098b610..508b0bc 100644
--- a/libc/kernel/uapi/asm-riscv/asm/bitsperlong.h
+++ b/libc/kernel/uapi/asm-riscv/asm/bitsperlong.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_ASM_RISCV_BITSPERLONG_H
 #define _UAPI_ASM_RISCV_BITSPERLONG_H
 #define __BITS_PER_LONG (__SIZEOF_POINTER__ * 8)
diff --git a/libc/kernel/uapi/asm-riscv/asm/bpf_perf_event.h b/libc/kernel/uapi/asm-riscv/asm/bpf_perf_event.h
index 47c09fd..640a8fa 100644
--- a/libc/kernel/uapi/asm-riscv/asm/bpf_perf_event.h
+++ b/libc/kernel/uapi/asm-riscv/asm/bpf_perf_event.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI__ASM_BPF_PERF_EVENT_H__
 #define _UAPI__ASM_BPF_PERF_EVENT_H__
 #include <asm/ptrace.h>
diff --git a/libc/kernel/uapi/asm-riscv/asm/byteorder.h b/libc/kernel/uapi/asm-riscv/asm/byteorder.h
index 42afc14..6320f8d 100644
--- a/libc/kernel/uapi/asm-riscv/asm/byteorder.h
+++ b/libc/kernel/uapi/asm-riscv/asm/byteorder.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_ASM_RISCV_BYTEORDER_H
 #define _UAPI_ASM_RISCV_BYTEORDER_H
 #include <linux/byteorder/little_endian.h>
diff --git a/libc/kernel/uapi/asm-riscv/asm/elf.h b/libc/kernel/uapi/asm-riscv/asm/elf.h
index 07593d9..df15148 100644
--- a/libc/kernel/uapi/asm-riscv/asm/elf.h
+++ b/libc/kernel/uapi/asm-riscv/asm/elf.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_ASM_RISCV_ELF_H
 #define _UAPI_ASM_RISCV_ELF_H
 #include <asm/ptrace.h>
@@ -44,6 +32,7 @@
 #define R_RISCV_TLS_DTPREL64 9
 #define R_RISCV_TLS_TPREL32 10
 #define R_RISCV_TLS_TPREL64 11
+#define R_RISCV_IRELATIVE 58
 #define R_RISCV_BRANCH 16
 #define R_RISCV_JAL 17
 #define R_RISCV_CALL 18
@@ -74,7 +63,6 @@
 #define R_RISCV_ALIGN 43
 #define R_RISCV_RVC_BRANCH 44
 #define R_RISCV_RVC_JUMP 45
-#define R_RISCV_LUI 46
 #define R_RISCV_GPREL_I 47
 #define R_RISCV_GPREL_S 48
 #define R_RISCV_TPREL_I 49
@@ -86,4 +74,7 @@
 #define R_RISCV_SET16 55
 #define R_RISCV_SET32 56
 #define R_RISCV_32_PCREL 57
+#define R_RISCV_PLT32 59
+#define R_RISCV_SET_ULEB128 60
+#define R_RISCV_SUB_ULEB128 61
 #endif
diff --git a/libc/kernel/uapi/asm-riscv/asm/errno.h b/libc/kernel/uapi/asm-riscv/asm/errno.h
index 392cd94..68b3218 100644
--- a/libc/kernel/uapi/asm-riscv/asm/errno.h
+++ b/libc/kernel/uapi/asm-riscv/asm/errno.h
@@ -1,19 +1,7 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #include <asm-generic/errno.h>
diff --git a/libc/kernel/uapi/asm-riscv/asm/fcntl.h b/libc/kernel/uapi/asm-riscv/asm/fcntl.h
index 518d3a7..b82e108 100644
--- a/libc/kernel/uapi/asm-riscv/asm/fcntl.h
+++ b/libc/kernel/uapi/asm-riscv/asm/fcntl.h
@@ -1,19 +1,7 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #include <asm-generic/fcntl.h>
diff --git a/libc/kernel/uapi/asm-riscv/asm/hwcap.h b/libc/kernel/uapi/asm-riscv/asm/hwcap.h
index d130cf7..20b1963 100644
--- a/libc/kernel/uapi/asm-riscv/asm/hwcap.h
+++ b/libc/kernel/uapi/asm-riscv/asm/hwcap.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_ASM_RISCV_HWCAP_H
 #define _UAPI_ASM_RISCV_HWCAP_H
 #define COMPAT_HWCAP_ISA_I (1 << ('I' - 'A'))
@@ -24,4 +12,5 @@
 #define COMPAT_HWCAP_ISA_F (1 << ('F' - 'A'))
 #define COMPAT_HWCAP_ISA_D (1 << ('D' - 'A'))
 #define COMPAT_HWCAP_ISA_C (1 << ('C' - 'A'))
+#define COMPAT_HWCAP_ISA_V (1 << ('V' - 'A'))
 #endif
diff --git a/libc/kernel/uapi/asm-riscv/asm/hwprobe.h b/libc/kernel/uapi/asm-riscv/asm/hwprobe.h
new file mode 100644
index 0000000..2e5f9a4
--- /dev/null
+++ b/libc/kernel/uapi/asm-riscv/asm/hwprobe.h
@@ -0,0 +1,86 @@
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
+#ifndef _UAPI_ASM_HWPROBE_H
+#define _UAPI_ASM_HWPROBE_H
+#include <linux/types.h>
+struct riscv_hwprobe {
+  __s64 key;
+  __u64 value;
+};
+#define RISCV_HWPROBE_KEY_MVENDORID 0
+#define RISCV_HWPROBE_KEY_MARCHID 1
+#define RISCV_HWPROBE_KEY_MIMPID 2
+#define RISCV_HWPROBE_KEY_BASE_BEHAVIOR 3
+#define RISCV_HWPROBE_BASE_BEHAVIOR_IMA (1 << 0)
+#define RISCV_HWPROBE_KEY_IMA_EXT_0 4
+#define RISCV_HWPROBE_IMA_FD (1 << 0)
+#define RISCV_HWPROBE_IMA_C (1 << 1)
+#define RISCV_HWPROBE_IMA_V (1 << 2)
+#define RISCV_HWPROBE_EXT_ZBA (1 << 3)
+#define RISCV_HWPROBE_EXT_ZBB (1 << 4)
+#define RISCV_HWPROBE_EXT_ZBS (1 << 5)
+#define RISCV_HWPROBE_EXT_ZICBOZ (1 << 6)
+#define RISCV_HWPROBE_EXT_ZBC (1 << 7)
+#define RISCV_HWPROBE_EXT_ZBKB (1 << 8)
+#define RISCV_HWPROBE_EXT_ZBKC (1 << 9)
+#define RISCV_HWPROBE_EXT_ZBKX (1 << 10)
+#define RISCV_HWPROBE_EXT_ZKND (1 << 11)
+#define RISCV_HWPROBE_EXT_ZKNE (1 << 12)
+#define RISCV_HWPROBE_EXT_ZKNH (1 << 13)
+#define RISCV_HWPROBE_EXT_ZKSED (1 << 14)
+#define RISCV_HWPROBE_EXT_ZKSH (1 << 15)
+#define RISCV_HWPROBE_EXT_ZKT (1 << 16)
+#define RISCV_HWPROBE_EXT_ZVBB (1 << 17)
+#define RISCV_HWPROBE_EXT_ZVBC (1 << 18)
+#define RISCV_HWPROBE_EXT_ZVKB (1 << 19)
+#define RISCV_HWPROBE_EXT_ZVKG (1 << 20)
+#define RISCV_HWPROBE_EXT_ZVKNED (1 << 21)
+#define RISCV_HWPROBE_EXT_ZVKNHA (1 << 22)
+#define RISCV_HWPROBE_EXT_ZVKNHB (1 << 23)
+#define RISCV_HWPROBE_EXT_ZVKSED (1 << 24)
+#define RISCV_HWPROBE_EXT_ZVKSH (1 << 25)
+#define RISCV_HWPROBE_EXT_ZVKT (1 << 26)
+#define RISCV_HWPROBE_EXT_ZFH (1 << 27)
+#define RISCV_HWPROBE_EXT_ZFHMIN (1 << 28)
+#define RISCV_HWPROBE_EXT_ZIHINTNTL (1 << 29)
+#define RISCV_HWPROBE_EXT_ZVFH (1 << 30)
+#define RISCV_HWPROBE_EXT_ZVFHMIN (1ULL << 31)
+#define RISCV_HWPROBE_EXT_ZFA (1ULL << 32)
+#define RISCV_HWPROBE_EXT_ZTSO (1ULL << 33)
+#define RISCV_HWPROBE_EXT_ZACAS (1ULL << 34)
+#define RISCV_HWPROBE_EXT_ZICOND (1ULL << 35)
+#define RISCV_HWPROBE_EXT_ZIHINTPAUSE (1ULL << 36)
+#define RISCV_HWPROBE_EXT_ZVE32X (1ULL << 37)
+#define RISCV_HWPROBE_EXT_ZVE32F (1ULL << 38)
+#define RISCV_HWPROBE_EXT_ZVE64X (1ULL << 39)
+#define RISCV_HWPROBE_EXT_ZVE64F (1ULL << 40)
+#define RISCV_HWPROBE_EXT_ZVE64D (1ULL << 41)
+#define RISCV_HWPROBE_EXT_ZIMOP (1ULL << 42)
+#define RISCV_HWPROBE_EXT_ZCA (1ULL << 43)
+#define RISCV_HWPROBE_EXT_ZCB (1ULL << 44)
+#define RISCV_HWPROBE_EXT_ZCD (1ULL << 45)
+#define RISCV_HWPROBE_EXT_ZCF (1ULL << 46)
+#define RISCV_HWPROBE_EXT_ZCMOP (1ULL << 47)
+#define RISCV_HWPROBE_EXT_ZAWRS (1ULL << 48)
+#define RISCV_HWPROBE_KEY_CPUPERF_0 5
+#define RISCV_HWPROBE_MISALIGNED_UNKNOWN (0 << 0)
+#define RISCV_HWPROBE_MISALIGNED_EMULATED (1 << 0)
+#define RISCV_HWPROBE_MISALIGNED_SLOW (2 << 0)
+#define RISCV_HWPROBE_MISALIGNED_FAST (3 << 0)
+#define RISCV_HWPROBE_MISALIGNED_UNSUPPORTED (4 << 0)
+#define RISCV_HWPROBE_MISALIGNED_MASK (7 << 0)
+#define RISCV_HWPROBE_KEY_ZICBOZ_BLOCK_SIZE 6
+#define RISCV_HWPROBE_KEY_HIGHEST_VIRT_ADDRESS 7
+#define RISCV_HWPROBE_KEY_TIME_CSR_FREQ 8
+#define RISCV_HWPROBE_KEY_MISALIGNED_SCALAR_PERF 9
+#define RISCV_HWPROBE_MISALIGNED_SCALAR_UNKNOWN 0
+#define RISCV_HWPROBE_MISALIGNED_SCALAR_EMULATED 1
+#define RISCV_HWPROBE_MISALIGNED_SCALAR_SLOW 2
+#define RISCV_HWPROBE_MISALIGNED_SCALAR_FAST 3
+#define RISCV_HWPROBE_MISALIGNED_SCALAR_UNSUPPORTED 4
+#define RISCV_HWPROBE_WHICH_CPUS (1 << 0)
+#endif
diff --git a/libc/kernel/uapi/asm-riscv/asm/ioctl.h b/libc/kernel/uapi/asm-riscv/asm/ioctl.h
index 7b7bd37..513f68c 100644
--- a/libc/kernel/uapi/asm-riscv/asm/ioctl.h
+++ b/libc/kernel/uapi/asm-riscv/asm/ioctl.h
@@ -1,19 +1,7 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #include <asm-generic/ioctl.h>
diff --git a/libc/kernel/uapi/asm-riscv/asm/ioctls.h b/libc/kernel/uapi/asm-riscv/asm/ioctls.h
index 0c66935..0ed82e0 100644
--- a/libc/kernel/uapi/asm-riscv/asm/ioctls.h
+++ b/libc/kernel/uapi/asm-riscv/asm/ioctls.h
@@ -1,19 +1,7 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #include <asm-generic/ioctls.h>
diff --git a/libc/kernel/uapi/asm-riscv/asm/ipcbuf.h b/libc/kernel/uapi/asm-riscv/asm/ipcbuf.h
index 0021f14..0c908bc 100644
--- a/libc/kernel/uapi/asm-riscv/asm/ipcbuf.h
+++ b/libc/kernel/uapi/asm-riscv/asm/ipcbuf.h
@@ -1,19 +1,7 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #include <asm-generic/ipcbuf.h>
diff --git a/libc/kernel/uapi/asm-riscv/asm/kvm.h b/libc/kernel/uapi/asm-riscv/asm/kvm.h
index b49e3a0..51f4977 100644
--- a/libc/kernel/uapi/asm-riscv/asm/kvm.h
+++ b/libc/kernel/uapi/asm-riscv/asm/kvm.h
@@ -1,27 +1,16 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __LINUX_KVM_RISCV_H
 #define __LINUX_KVM_RISCV_H
 #ifndef __ASSEMBLY__
 #include <linux/types.h>
+#include <asm/bitsperlong.h>
 #include <asm/ptrace.h>
-#define __KVM_HAVE_READONLY_MEM
+#define __KVM_HAVE_IRQ_LINE
 #define KVM_COALESCED_MMIO_PAGE_OFFSET 1
 #define KVM_INTERRUPT_SET - 1U
 #define KVM_INTERRUPT_UNSET - 2U
@@ -43,6 +32,8 @@
   unsigned long mvendorid;
   unsigned long marchid;
   unsigned long mimpid;
+  unsigned long zicboz_block_size;
+  unsigned long satp_mode;
 };
 struct kvm_riscv_core {
   struct user_regs_struct regs;
@@ -61,6 +52,19 @@
   unsigned long sip;
   unsigned long satp;
   unsigned long scounteren;
+  unsigned long senvcfg;
+};
+struct kvm_riscv_aia_csr {
+  unsigned long siselect;
+  unsigned long iprio1;
+  unsigned long iprio2;
+  unsigned long sieh;
+  unsigned long siph;
+  unsigned long iprio1h;
+  unsigned long iprio2h;
+};
+struct kvm_riscv_smstateen_csr {
+  unsigned long sstateen0;
 };
 struct kvm_riscv_timer {
   __u64 frequency;
@@ -81,19 +85,94 @@
   KVM_RISCV_ISA_EXT_SVINVAL,
   KVM_RISCV_ISA_EXT_ZIHINTPAUSE,
   KVM_RISCV_ISA_EXT_ZICBOM,
+  KVM_RISCV_ISA_EXT_ZICBOZ,
+  KVM_RISCV_ISA_EXT_ZBB,
+  KVM_RISCV_ISA_EXT_SSAIA,
+  KVM_RISCV_ISA_EXT_V,
+  KVM_RISCV_ISA_EXT_SVNAPOT,
+  KVM_RISCV_ISA_EXT_ZBA,
+  KVM_RISCV_ISA_EXT_ZBS,
+  KVM_RISCV_ISA_EXT_ZICNTR,
+  KVM_RISCV_ISA_EXT_ZICSR,
+  KVM_RISCV_ISA_EXT_ZIFENCEI,
+  KVM_RISCV_ISA_EXT_ZIHPM,
+  KVM_RISCV_ISA_EXT_SMSTATEEN,
+  KVM_RISCV_ISA_EXT_ZICOND,
+  KVM_RISCV_ISA_EXT_ZBC,
+  KVM_RISCV_ISA_EXT_ZBKB,
+  KVM_RISCV_ISA_EXT_ZBKC,
+  KVM_RISCV_ISA_EXT_ZBKX,
+  KVM_RISCV_ISA_EXT_ZKND,
+  KVM_RISCV_ISA_EXT_ZKNE,
+  KVM_RISCV_ISA_EXT_ZKNH,
+  KVM_RISCV_ISA_EXT_ZKR,
+  KVM_RISCV_ISA_EXT_ZKSED,
+  KVM_RISCV_ISA_EXT_ZKSH,
+  KVM_RISCV_ISA_EXT_ZKT,
+  KVM_RISCV_ISA_EXT_ZVBB,
+  KVM_RISCV_ISA_EXT_ZVBC,
+  KVM_RISCV_ISA_EXT_ZVKB,
+  KVM_RISCV_ISA_EXT_ZVKG,
+  KVM_RISCV_ISA_EXT_ZVKNED,
+  KVM_RISCV_ISA_EXT_ZVKNHA,
+  KVM_RISCV_ISA_EXT_ZVKNHB,
+  KVM_RISCV_ISA_EXT_ZVKSED,
+  KVM_RISCV_ISA_EXT_ZVKSH,
+  KVM_RISCV_ISA_EXT_ZVKT,
+  KVM_RISCV_ISA_EXT_ZFH,
+  KVM_RISCV_ISA_EXT_ZFHMIN,
+  KVM_RISCV_ISA_EXT_ZIHINTNTL,
+  KVM_RISCV_ISA_EXT_ZVFH,
+  KVM_RISCV_ISA_EXT_ZVFHMIN,
+  KVM_RISCV_ISA_EXT_ZFA,
+  KVM_RISCV_ISA_EXT_ZTSO,
+  KVM_RISCV_ISA_EXT_ZACAS,
+  KVM_RISCV_ISA_EXT_SSCOFPMF,
+  KVM_RISCV_ISA_EXT_ZIMOP,
+  KVM_RISCV_ISA_EXT_ZCA,
+  KVM_RISCV_ISA_EXT_ZCB,
+  KVM_RISCV_ISA_EXT_ZCD,
+  KVM_RISCV_ISA_EXT_ZCF,
+  KVM_RISCV_ISA_EXT_ZCMOP,
+  KVM_RISCV_ISA_EXT_ZAWRS,
   KVM_RISCV_ISA_EXT_MAX,
 };
+enum KVM_RISCV_SBI_EXT_ID {
+  KVM_RISCV_SBI_EXT_V01 = 0,
+  KVM_RISCV_SBI_EXT_TIME,
+  KVM_RISCV_SBI_EXT_IPI,
+  KVM_RISCV_SBI_EXT_RFENCE,
+  KVM_RISCV_SBI_EXT_SRST,
+  KVM_RISCV_SBI_EXT_HSM,
+  KVM_RISCV_SBI_EXT_PMU,
+  KVM_RISCV_SBI_EXT_EXPERIMENTAL,
+  KVM_RISCV_SBI_EXT_VENDOR,
+  KVM_RISCV_SBI_EXT_DBCN,
+  KVM_RISCV_SBI_EXT_STA,
+  KVM_RISCV_SBI_EXT_MAX,
+};
+struct kvm_riscv_sbi_sta {
+  unsigned long shmem_lo;
+  unsigned long shmem_hi;
+};
 #define KVM_RISCV_TIMER_STATE_OFF 0
 #define KVM_RISCV_TIMER_STATE_ON 1
 #define KVM_REG_SIZE(id) (1U << (((id) & KVM_REG_SIZE_MASK) >> KVM_REG_SIZE_SHIFT))
 #define KVM_REG_RISCV_TYPE_MASK 0x00000000FF000000
 #define KVM_REG_RISCV_TYPE_SHIFT 24
+#define KVM_REG_RISCV_SUBTYPE_MASK 0x0000000000FF0000
+#define KVM_REG_RISCV_SUBTYPE_SHIFT 16
 #define KVM_REG_RISCV_CONFIG (0x01 << KVM_REG_RISCV_TYPE_SHIFT)
 #define KVM_REG_RISCV_CONFIG_REG(name) (offsetof(struct kvm_riscv_config, name) / sizeof(unsigned long))
 #define KVM_REG_RISCV_CORE (0x02 << KVM_REG_RISCV_TYPE_SHIFT)
 #define KVM_REG_RISCV_CORE_REG(name) (offsetof(struct kvm_riscv_core, name) / sizeof(unsigned long))
 #define KVM_REG_RISCV_CSR (0x03 << KVM_REG_RISCV_TYPE_SHIFT)
+#define KVM_REG_RISCV_CSR_GENERAL (0x0 << KVM_REG_RISCV_SUBTYPE_SHIFT)
+#define KVM_REG_RISCV_CSR_AIA (0x1 << KVM_REG_RISCV_SUBTYPE_SHIFT)
+#define KVM_REG_RISCV_CSR_SMSTATEEN (0x2 << KVM_REG_RISCV_SUBTYPE_SHIFT)
 #define KVM_REG_RISCV_CSR_REG(name) (offsetof(struct kvm_riscv_csr, name) / sizeof(unsigned long))
+#define KVM_REG_RISCV_CSR_AIA_REG(name) (offsetof(struct kvm_riscv_aia_csr, name) / sizeof(unsigned long))
+#define KVM_REG_RISCV_CSR_SMSTATEEN_REG(name) (offsetof(struct kvm_riscv_smstateen_csr, name) / sizeof(unsigned long))
 #define KVM_REG_RISCV_TIMER (0x04 << KVM_REG_RISCV_TYPE_SHIFT)
 #define KVM_REG_RISCV_TIMER_REG(name) (offsetof(struct kvm_riscv_timer, name) / sizeof(__u64))
 #define KVM_REG_RISCV_FP_F (0x05 << KVM_REG_RISCV_TYPE_SHIFT)
@@ -101,5 +180,62 @@
 #define KVM_REG_RISCV_FP_D (0x06 << KVM_REG_RISCV_TYPE_SHIFT)
 #define KVM_REG_RISCV_FP_D_REG(name) (offsetof(struct __riscv_d_ext_state, name) / sizeof(__u64))
 #define KVM_REG_RISCV_ISA_EXT (0x07 << KVM_REG_RISCV_TYPE_SHIFT)
+#define KVM_REG_RISCV_ISA_SINGLE (0x0 << KVM_REG_RISCV_SUBTYPE_SHIFT)
+#define KVM_REG_RISCV_ISA_MULTI_EN (0x1 << KVM_REG_RISCV_SUBTYPE_SHIFT)
+#define KVM_REG_RISCV_ISA_MULTI_DIS (0x2 << KVM_REG_RISCV_SUBTYPE_SHIFT)
+#define KVM_REG_RISCV_ISA_MULTI_REG(__ext_id) ((__ext_id) / __BITS_PER_LONG)
+#define KVM_REG_RISCV_ISA_MULTI_MASK(__ext_id) (1UL << ((__ext_id) % __BITS_PER_LONG))
+#define KVM_REG_RISCV_ISA_MULTI_REG_LAST KVM_REG_RISCV_ISA_MULTI_REG(KVM_RISCV_ISA_EXT_MAX - 1)
+#define KVM_REG_RISCV_SBI_EXT (0x08 << KVM_REG_RISCV_TYPE_SHIFT)
+#define KVM_REG_RISCV_SBI_SINGLE (0x0 << KVM_REG_RISCV_SUBTYPE_SHIFT)
+#define KVM_REG_RISCV_SBI_MULTI_EN (0x1 << KVM_REG_RISCV_SUBTYPE_SHIFT)
+#define KVM_REG_RISCV_SBI_MULTI_DIS (0x2 << KVM_REG_RISCV_SUBTYPE_SHIFT)
+#define KVM_REG_RISCV_SBI_MULTI_REG(__ext_id) ((__ext_id) / __BITS_PER_LONG)
+#define KVM_REG_RISCV_SBI_MULTI_MASK(__ext_id) (1UL << ((__ext_id) % __BITS_PER_LONG))
+#define KVM_REG_RISCV_SBI_MULTI_REG_LAST KVM_REG_RISCV_SBI_MULTI_REG(KVM_RISCV_SBI_EXT_MAX - 1)
+#define KVM_REG_RISCV_VECTOR (0x09 << KVM_REG_RISCV_TYPE_SHIFT)
+#define KVM_REG_RISCV_VECTOR_CSR_REG(name) (offsetof(struct __riscv_v_ext_state, name) / sizeof(unsigned long))
+#define KVM_REG_RISCV_VECTOR_REG(n) ((n) + sizeof(struct __riscv_v_ext_state) / sizeof(unsigned long))
+#define KVM_REG_RISCV_SBI_STATE (0x0a << KVM_REG_RISCV_TYPE_SHIFT)
+#define KVM_REG_RISCV_SBI_STA (0x0 << KVM_REG_RISCV_SUBTYPE_SHIFT)
+#define KVM_REG_RISCV_SBI_STA_REG(name) (offsetof(struct kvm_riscv_sbi_sta, name) / sizeof(unsigned long))
+#define KVM_DEV_RISCV_APLIC_ALIGN 0x1000
+#define KVM_DEV_RISCV_APLIC_SIZE 0x4000
+#define KVM_DEV_RISCV_APLIC_MAX_HARTS 0x4000
+#define KVM_DEV_RISCV_IMSIC_ALIGN 0x1000
+#define KVM_DEV_RISCV_IMSIC_SIZE 0x1000
+#define KVM_DEV_RISCV_AIA_GRP_CONFIG 0
+#define KVM_DEV_RISCV_AIA_CONFIG_MODE 0
+#define KVM_DEV_RISCV_AIA_CONFIG_IDS 1
+#define KVM_DEV_RISCV_AIA_CONFIG_SRCS 2
+#define KVM_DEV_RISCV_AIA_CONFIG_GROUP_BITS 3
+#define KVM_DEV_RISCV_AIA_CONFIG_GROUP_SHIFT 4
+#define KVM_DEV_RISCV_AIA_CONFIG_HART_BITS 5
+#define KVM_DEV_RISCV_AIA_CONFIG_GUEST_BITS 6
+#define KVM_DEV_RISCV_AIA_MODE_EMUL 0
+#define KVM_DEV_RISCV_AIA_MODE_HWACCEL 1
+#define KVM_DEV_RISCV_AIA_MODE_AUTO 2
+#define KVM_DEV_RISCV_AIA_IDS_MIN 63
+#define KVM_DEV_RISCV_AIA_IDS_MAX 2048
+#define KVM_DEV_RISCV_AIA_SRCS_MAX 1024
+#define KVM_DEV_RISCV_AIA_GROUP_BITS_MAX 8
+#define KVM_DEV_RISCV_AIA_GROUP_SHIFT_MIN 24
+#define KVM_DEV_RISCV_AIA_GROUP_SHIFT_MAX 56
+#define KVM_DEV_RISCV_AIA_HART_BITS_MAX 16
+#define KVM_DEV_RISCV_AIA_GUEST_BITS_MAX 8
+#define KVM_DEV_RISCV_AIA_GRP_ADDR 1
+#define KVM_DEV_RISCV_AIA_ADDR_APLIC 0
+#define KVM_DEV_RISCV_AIA_ADDR_IMSIC(__vcpu) (1 + (__vcpu))
+#define KVM_DEV_RISCV_AIA_ADDR_MAX (1 + KVM_DEV_RISCV_APLIC_MAX_HARTS)
+#define KVM_DEV_RISCV_AIA_GRP_CTRL 2
+#define KVM_DEV_RISCV_AIA_CTRL_INIT 0
+#define KVM_DEV_RISCV_AIA_GRP_APLIC 3
+#define KVM_DEV_RISCV_AIA_GRP_IMSIC 4
+#define KVM_DEV_RISCV_AIA_IMSIC_ISEL_BITS 12
+#define KVM_DEV_RISCV_AIA_IMSIC_ISEL_MASK ((1U << KVM_DEV_RISCV_AIA_IMSIC_ISEL_BITS) - 1)
+#define KVM_DEV_RISCV_AIA_IMSIC_MKATTR(__vcpu,__isel) (((__vcpu) << KVM_DEV_RISCV_AIA_IMSIC_ISEL_BITS) | ((__isel) & KVM_DEV_RISCV_AIA_IMSIC_ISEL_MASK))
+#define KVM_DEV_RISCV_AIA_IMSIC_GET_ISEL(__attr) ((__attr) & KVM_DEV_RISCV_AIA_IMSIC_ISEL_MASK)
+#define KVM_DEV_RISCV_AIA_IMSIC_GET_VCPU(__attr) ((__attr) >> KVM_DEV_RISCV_AIA_IMSIC_ISEL_BITS)
+#define KVM_NR_IRQCHIPS 1
 #endif
 #endif
diff --git a/libc/kernel/uapi/asm-riscv/asm/mman.h b/libc/kernel/uapi/asm-riscv/asm/mman.h
index 6c23fb6..d6423c8 100644
--- a/libc/kernel/uapi/asm-riscv/asm/mman.h
+++ b/libc/kernel/uapi/asm-riscv/asm/mman.h
@@ -1,19 +1,7 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #include <asm-generic/mman.h>
diff --git a/libc/kernel/uapi/asm-riscv/asm/msgbuf.h b/libc/kernel/uapi/asm-riscv/asm/msgbuf.h
index 7809e3c..7b6d8d9 100644
--- a/libc/kernel/uapi/asm-riscv/asm/msgbuf.h
+++ b/libc/kernel/uapi/asm-riscv/asm/msgbuf.h
@@ -1,19 +1,7 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #include <asm-generic/msgbuf.h>
diff --git a/libc/kernel/uapi/asm-riscv/asm/param.h b/libc/kernel/uapi/asm-riscv/asm/param.h
index 5ccf935..f20aa34 100644
--- a/libc/kernel/uapi/asm-riscv/asm/param.h
+++ b/libc/kernel/uapi/asm-riscv/asm/param.h
@@ -1,19 +1,7 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #include <asm-generic/param.h>
diff --git a/libc/kernel/uapi/asm-riscv/asm/perf_regs.h b/libc/kernel/uapi/asm-riscv/asm/perf_regs.h
index ceb0bbe..334e18b 100644
--- a/libc/kernel/uapi/asm-riscv/asm/perf_regs.h
+++ b/libc/kernel/uapi/asm-riscv/asm/perf_regs.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _ASM_RISCV_PERF_REGS_H
 #define _ASM_RISCV_PERF_REGS_H
 enum perf_event_riscv_regs {
diff --git a/libc/kernel/uapi/asm-riscv/asm/poll.h b/libc/kernel/uapi/asm-riscv/asm/poll.h
index d7e8adc..bf92c2a 100644
--- a/libc/kernel/uapi/asm-riscv/asm/poll.h
+++ b/libc/kernel/uapi/asm-riscv/asm/poll.h
@@ -1,19 +1,7 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #include <asm-generic/poll.h>
diff --git a/libc/kernel/uapi/asm-riscv/asm/posix_types.h b/libc/kernel/uapi/asm-riscv/asm/posix_types.h
index 1b89253..ffacc98 100644
--- a/libc/kernel/uapi/asm-riscv/asm/posix_types.h
+++ b/libc/kernel/uapi/asm-riscv/asm/posix_types.h
@@ -1,19 +1,7 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #include <asm-generic/posix_types.h>
diff --git a/libc/kernel/uapi/asm-riscv/asm/ptrace.h b/libc/kernel/uapi/asm-riscv/asm/ptrace.h
index 94e4ac9..59ad7de 100644
--- a/libc/kernel/uapi/asm-riscv/asm/ptrace.h
+++ b/libc/kernel/uapi/asm-riscv/asm/ptrace.h
@@ -1,25 +1,16 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_ASM_RISCV_PTRACE_H
 #define _UAPI_ASM_RISCV_PTRACE_H
 #ifndef __ASSEMBLY__
 #include <linux/types.h>
+#define PTRACE_GETFDPIC 33
+#define PTRACE_GETFDPIC_EXEC 0
+#define PTRACE_GETFDPIC_INTERP 1
 struct user_regs_struct {
   unsigned long pc;
   unsigned long ra;
@@ -67,10 +58,36 @@
   __u32 fcsr;
   __u32 reserved[3];
 };
+struct __riscv_ctx_hdr {
+  __u32 magic;
+  __u32 size;
+};
+struct __riscv_extra_ext_header {
+  __u32 __padding[129] __attribute__((aligned(16)));
+  __u32 reserved;
+  struct __riscv_ctx_hdr hdr;
+};
 union __riscv_fp_state {
   struct __riscv_f_ext_state f;
   struct __riscv_d_ext_state d;
   struct __riscv_q_ext_state q;
 };
+struct __riscv_v_ext_state {
+  unsigned long vstart;
+  unsigned long vl;
+  unsigned long vtype;
+  unsigned long vcsr;
+  unsigned long vlenb;
+  void * datap;
+};
+struct __riscv_v_regset_state {
+  unsigned long vstart;
+  unsigned long vl;
+  unsigned long vtype;
+  unsigned long vcsr;
+  unsigned long vlenb;
+  char vreg[];
+};
+#define RISCV_MAX_VLENB (8192)
 #endif
 #endif
diff --git a/libc/kernel/uapi/asm-riscv/asm/resource.h b/libc/kernel/uapi/asm-riscv/asm/resource.h
index 371adb5..3ad9e62 100644
--- a/libc/kernel/uapi/asm-riscv/asm/resource.h
+++ b/libc/kernel/uapi/asm-riscv/asm/resource.h
@@ -1,19 +1,7 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #include <asm-generic/resource.h>
diff --git a/libc/kernel/uapi/asm-riscv/asm/sembuf.h b/libc/kernel/uapi/asm-riscv/asm/sembuf.h
index 6ce6549..d4a9072 100644
--- a/libc/kernel/uapi/asm-riscv/asm/sembuf.h
+++ b/libc/kernel/uapi/asm-riscv/asm/sembuf.h
@@ -1,19 +1,7 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #include <asm-generic/sembuf.h>
diff --git a/libc/kernel/uapi/asm-riscv/asm/setup.h b/libc/kernel/uapi/asm-riscv/asm/setup.h
index 940c4db..eafcf78 100644
--- a/libc/kernel/uapi/asm-riscv/asm/setup.h
+++ b/libc/kernel/uapi/asm-riscv/asm/setup.h
@@ -1,19 +1,10 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
-#include <asm-generic/setup.h>
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
+#ifndef _UAPI_ASM_RISCV_SETUP_H
+#define _UAPI_ASM_RISCV_SETUP_H
+#define COMMAND_LINE_SIZE 1024
+#endif
diff --git a/libc/kernel/uapi/asm-riscv/asm/shmbuf.h b/libc/kernel/uapi/asm-riscv/asm/shmbuf.h
index fe8b1be..9b434f6 100644
--- a/libc/kernel/uapi/asm-riscv/asm/shmbuf.h
+++ b/libc/kernel/uapi/asm-riscv/asm/shmbuf.h
@@ -1,19 +1,7 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #include <asm-generic/shmbuf.h>
diff --git a/libc/kernel/uapi/asm-riscv/asm/sigcontext.h b/libc/kernel/uapi/asm-riscv/asm/sigcontext.h
index 0553b94..3394269 100644
--- a/libc/kernel/uapi/asm-riscv/asm/sigcontext.h
+++ b/libc/kernel/uapi/asm-riscv/asm/sigcontext.h
@@ -1,26 +1,25 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_ASM_RISCV_SIGCONTEXT_H
 #define _UAPI_ASM_RISCV_SIGCONTEXT_H
 #include <asm/ptrace.h>
+#define RISCV_V_MAGIC 0x53465457
+#define END_MAGIC 0x0
+#define END_HDR_SIZE 0x0
+#ifndef __ASSEMBLY__
+struct __sc_riscv_v_state {
+  struct __riscv_v_ext_state v_state;
+} __attribute__((aligned(16)));
 struct sigcontext {
   struct user_regs_struct sc_regs;
-  union __riscv_fp_state sc_fpregs;
+  union {
+    union __riscv_fp_state sc_fpregs;
+    struct __riscv_extra_ext_header sc_extdesc;
+  };
 };
 #endif
+#endif
diff --git a/libc/kernel/uapi/asm-riscv/asm/siginfo.h b/libc/kernel/uapi/asm-riscv/asm/siginfo.h
index a31ebb2..8f5921e 100644
--- a/libc/kernel/uapi/asm-riscv/asm/siginfo.h
+++ b/libc/kernel/uapi/asm-riscv/asm/siginfo.h
@@ -1,19 +1,7 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #include <asm-generic/siginfo.h>
diff --git a/libc/kernel/uapi/asm-riscv/asm/signal.h b/libc/kernel/uapi/asm-riscv/asm/signal.h
index 64373fe..f536822 100644
--- a/libc/kernel/uapi/asm-riscv/asm/signal.h
+++ b/libc/kernel/uapi/asm-riscv/asm/signal.h
@@ -1,19 +1,7 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #include <asm-generic/signal.h>
diff --git a/libc/kernel/uapi/asm-riscv/asm/socket.h b/libc/kernel/uapi/asm-riscv/asm/socket.h
index 50a9874..2ca3e45 100644
--- a/libc/kernel/uapi/asm-riscv/asm/socket.h
+++ b/libc/kernel/uapi/asm-riscv/asm/socket.h
@@ -1,19 +1,7 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #include <asm-generic/socket.h>
diff --git a/libc/kernel/uapi/asm-riscv/asm/sockios.h b/libc/kernel/uapi/asm-riscv/asm/sockios.h
index 710db92..5aba663 100644
--- a/libc/kernel/uapi/asm-riscv/asm/sockios.h
+++ b/libc/kernel/uapi/asm-riscv/asm/sockios.h
@@ -1,19 +1,7 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #include <asm-generic/sockios.h>
diff --git a/libc/kernel/uapi/asm-riscv/asm/stat.h b/libc/kernel/uapi/asm-riscv/asm/stat.h
index af7ebfc..6a514d3 100644
--- a/libc/kernel/uapi/asm-riscv/asm/stat.h
+++ b/libc/kernel/uapi/asm-riscv/asm/stat.h
@@ -1,19 +1,7 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #include <asm-generic/stat.h>
diff --git a/libc/kernel/uapi/asm-riscv/asm/statfs.h b/libc/kernel/uapi/asm-riscv/asm/statfs.h
index 93de275..1a16d4b 100644
--- a/libc/kernel/uapi/asm-riscv/asm/statfs.h
+++ b/libc/kernel/uapi/asm-riscv/asm/statfs.h
@@ -1,19 +1,7 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #include <asm-generic/statfs.h>
diff --git a/libc/kernel/uapi/asm-riscv/asm/swab.h b/libc/kernel/uapi/asm-riscv/asm/swab.h
index 0049f53..f7781b7 100644
--- a/libc/kernel/uapi/asm-riscv/asm/swab.h
+++ b/libc/kernel/uapi/asm-riscv/asm/swab.h
@@ -1,19 +1,7 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #include <asm-generic/swab.h>
diff --git a/libc/kernel/uapi/asm-riscv/asm/termbits.h b/libc/kernel/uapi/asm-riscv/asm/termbits.h
index 42af6fe..e943da3 100644
--- a/libc/kernel/uapi/asm-riscv/asm/termbits.h
+++ b/libc/kernel/uapi/asm-riscv/asm/termbits.h
@@ -1,19 +1,7 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #include <asm-generic/termbits.h>
diff --git a/libc/kernel/uapi/asm-riscv/asm/termios.h b/libc/kernel/uapi/asm-riscv/asm/termios.h
index feca4c6..3ae8ca2 100644
--- a/libc/kernel/uapi/asm-riscv/asm/termios.h
+++ b/libc/kernel/uapi/asm-riscv/asm/termios.h
@@ -1,19 +1,7 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #include <asm-generic/termios.h>
diff --git a/libc/kernel/uapi/asm-riscv/asm/types.h b/libc/kernel/uapi/asm-riscv/asm/types.h
index 8250f43..a030be8 100644
--- a/libc/kernel/uapi/asm-riscv/asm/types.h
+++ b/libc/kernel/uapi/asm-riscv/asm/types.h
@@ -1,19 +1,7 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #include <asm-generic/types.h>
diff --git a/libc/kernel/uapi/asm-riscv/asm/ucontext.h b/libc/kernel/uapi/asm-riscv/asm/ucontext.h
index 8b72cc1..ffe587e 100644
--- a/libc/kernel/uapi/asm-riscv/asm/ucontext.h
+++ b/libc/kernel/uapi/asm-riscv/asm/ucontext.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_ASM_RISCV_UCONTEXT_H
 #define _UAPI_ASM_RISCV_UCONTEXT_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/asm-riscv/asm/unistd.h b/libc/kernel/uapi/asm-riscv/asm/unistd.h
index 665b820..f395f71 100644
--- a/libc/kernel/uapi/asm-riscv/asm/unistd.h
+++ b/libc/kernel/uapi/asm-riscv/asm/unistd.h
@@ -1,29 +1,12 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
-#if defined(__LP64__) && !defined(__SYSCALL_COMPAT)
-#define __ARCH_WANT_NEW_STAT
-#define __ARCH_WANT_SET_GET_RLIMIT
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
+#include <asm/bitsperlong.h>
+#if __BITS_PER_LONG == 64
+#include <asm/unistd_64.h>
+#else
+#include <asm/unistd_32.h>
 #endif
-#define __ARCH_WANT_SYS_CLONE3
-#define __ARCH_WANT_MEMFD_SECRET
-#include <asm-generic/unistd.h>
-#ifndef __NR_riscv_flush_icache
-#define __NR_riscv_flush_icache (__NR_arch_specific_syscall + 15)
-#endif
-__SYSCALL(__NR_riscv_flush_icache, sys_riscv_flush_icache)
diff --git a/libc/kernel/uapi/asm-riscv/asm/unistd_32.h b/libc/kernel/uapi/asm-riscv/asm/unistd_32.h
new file mode 100644
index 0000000..864a556
--- /dev/null
+++ b/libc/kernel/uapi/asm-riscv/asm/unistd_32.h
@@ -0,0 +1,318 @@
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
+#ifndef _UAPI_ASM_UNISTD_32_H
+#define _UAPI_ASM_UNISTD_32_H
+#define __NR_io_setup 0
+#define __NR_io_destroy 1
+#define __NR_io_submit 2
+#define __NR_io_cancel 3
+#define __NR_setxattr 5
+#define __NR_lsetxattr 6
+#define __NR_fsetxattr 7
+#define __NR_getxattr 8
+#define __NR_lgetxattr 9
+#define __NR_fgetxattr 10
+#define __NR_listxattr 11
+#define __NR_llistxattr 12
+#define __NR_flistxattr 13
+#define __NR_removexattr 14
+#define __NR_lremovexattr 15
+#define __NR_fremovexattr 16
+#define __NR_getcwd 17
+#define __NR_lookup_dcookie 18
+#define __NR_eventfd2 19
+#define __NR_epoll_create1 20
+#define __NR_epoll_ctl 21
+#define __NR_epoll_pwait 22
+#define __NR_dup 23
+#define __NR_dup3 24
+#define __NR_fcntl64 25
+#define __NR_inotify_init1 26
+#define __NR_inotify_add_watch 27
+#define __NR_inotify_rm_watch 28
+#define __NR_ioctl 29
+#define __NR_ioprio_set 30
+#define __NR_ioprio_get 31
+#define __NR_flock 32
+#define __NR_mknodat 33
+#define __NR_mkdirat 34
+#define __NR_unlinkat 35
+#define __NR_symlinkat 36
+#define __NR_linkat 37
+#define __NR_umount2 39
+#define __NR_mount 40
+#define __NR_pivot_root 41
+#define __NR_nfsservctl 42
+#define __NR_statfs64 43
+#define __NR_fstatfs64 44
+#define __NR_truncate64 45
+#define __NR_ftruncate64 46
+#define __NR_fallocate 47
+#define __NR_faccessat 48
+#define __NR_chdir 49
+#define __NR_fchdir 50
+#define __NR_chroot 51
+#define __NR_fchmod 52
+#define __NR_fchmodat 53
+#define __NR_fchownat 54
+#define __NR_fchown 55
+#define __NR_openat 56
+#define __NR_close 57
+#define __NR_vhangup 58
+#define __NR_pipe2 59
+#define __NR_quotactl 60
+#define __NR_getdents64 61
+#define __NR_llseek 62
+#define __NR_read 63
+#define __NR_write 64
+#define __NR_readv 65
+#define __NR_writev 66
+#define __NR_pread64 67
+#define __NR_pwrite64 68
+#define __NR_preadv 69
+#define __NR_pwritev 70
+#define __NR_sendfile64 71
+#define __NR_signalfd4 74
+#define __NR_vmsplice 75
+#define __NR_splice 76
+#define __NR_tee 77
+#define __NR_readlinkat 78
+#define __NR_sync 81
+#define __NR_fsync 82
+#define __NR_fdatasync 83
+#define __NR_sync_file_range 84
+#define __NR_timerfd_create 85
+#define __NR_acct 89
+#define __NR_capget 90
+#define __NR_capset 91
+#define __NR_personality 92
+#define __NR_exit 93
+#define __NR_exit_group 94
+#define __NR_waitid 95
+#define __NR_set_tid_address 96
+#define __NR_unshare 97
+#define __NR_set_robust_list 99
+#define __NR_get_robust_list 100
+#define __NR_getitimer 102
+#define __NR_setitimer 103
+#define __NR_kexec_load 104
+#define __NR_init_module 105
+#define __NR_delete_module 106
+#define __NR_timer_create 107
+#define __NR_timer_getoverrun 109
+#define __NR_timer_delete 111
+#define __NR_syslog 116
+#define __NR_ptrace 117
+#define __NR_sched_setparam 118
+#define __NR_sched_setscheduler 119
+#define __NR_sched_getscheduler 120
+#define __NR_sched_getparam 121
+#define __NR_sched_setaffinity 122
+#define __NR_sched_getaffinity 123
+#define __NR_sched_yield 124
+#define __NR_sched_get_priority_max 125
+#define __NR_sched_get_priority_min 126
+#define __NR_restart_syscall 128
+#define __NR_kill 129
+#define __NR_tkill 130
+#define __NR_tgkill 131
+#define __NR_sigaltstack 132
+#define __NR_rt_sigsuspend 133
+#define __NR_rt_sigaction 134
+#define __NR_rt_sigprocmask 135
+#define __NR_rt_sigpending 136
+#define __NR_rt_sigqueueinfo 138
+#define __NR_rt_sigreturn 139
+#define __NR_setpriority 140
+#define __NR_getpriority 141
+#define __NR_reboot 142
+#define __NR_setregid 143
+#define __NR_setgid 144
+#define __NR_setreuid 145
+#define __NR_setuid 146
+#define __NR_setresuid 147
+#define __NR_getresuid 148
+#define __NR_setresgid 149
+#define __NR_getresgid 150
+#define __NR_setfsuid 151
+#define __NR_setfsgid 152
+#define __NR_times 153
+#define __NR_setpgid 154
+#define __NR_getpgid 155
+#define __NR_getsid 156
+#define __NR_setsid 157
+#define __NR_getgroups 158
+#define __NR_setgroups 159
+#define __NR_uname 160
+#define __NR_sethostname 161
+#define __NR_setdomainname 162
+#define __NR_getrusage 165
+#define __NR_umask 166
+#define __NR_prctl 167
+#define __NR_getcpu 168
+#define __NR_getpid 172
+#define __NR_getppid 173
+#define __NR_getuid 174
+#define __NR_geteuid 175
+#define __NR_getgid 176
+#define __NR_getegid 177
+#define __NR_gettid 178
+#define __NR_sysinfo 179
+#define __NR_mq_open 180
+#define __NR_mq_unlink 181
+#define __NR_mq_notify 184
+#define __NR_mq_getsetattr 185
+#define __NR_msgget 186
+#define __NR_msgctl 187
+#define __NR_msgrcv 188
+#define __NR_msgsnd 189
+#define __NR_semget 190
+#define __NR_semctl 191
+#define __NR_semop 193
+#define __NR_shmget 194
+#define __NR_shmctl 195
+#define __NR_shmat 196
+#define __NR_shmdt 197
+#define __NR_socket 198
+#define __NR_socketpair 199
+#define __NR_bind 200
+#define __NR_listen 201
+#define __NR_accept 202
+#define __NR_connect 203
+#define __NR_getsockname 204
+#define __NR_getpeername 205
+#define __NR_sendto 206
+#define __NR_recvfrom 207
+#define __NR_setsockopt 208
+#define __NR_getsockopt 209
+#define __NR_shutdown 210
+#define __NR_sendmsg 211
+#define __NR_recvmsg 212
+#define __NR_readahead 213
+#define __NR_brk 214
+#define __NR_munmap 215
+#define __NR_mremap 216
+#define __NR_add_key 217
+#define __NR_request_key 218
+#define __NR_keyctl 219
+#define __NR_clone 220
+#define __NR_execve 221
+#define __NR_mmap2 222
+#define __NR_fadvise64_64 223
+#define __NR_swapon 224
+#define __NR_swapoff 225
+#define __NR_mprotect 226
+#define __NR_msync 227
+#define __NR_mlock 228
+#define __NR_munlock 229
+#define __NR_mlockall 230
+#define __NR_munlockall 231
+#define __NR_mincore 232
+#define __NR_madvise 233
+#define __NR_remap_file_pages 234
+#define __NR_mbind 235
+#define __NR_get_mempolicy 236
+#define __NR_set_mempolicy 237
+#define __NR_migrate_pages 238
+#define __NR_move_pages 239
+#define __NR_rt_tgsigqueueinfo 240
+#define __NR_perf_event_open 241
+#define __NR_accept4 242
+#define __NR_riscv_hwprobe 258
+#define __NR_riscv_flush_icache 259
+#define __NR_prlimit64 261
+#define __NR_fanotify_init 262
+#define __NR_fanotify_mark 263
+#define __NR_name_to_handle_at 264
+#define __NR_open_by_handle_at 265
+#define __NR_syncfs 267
+#define __NR_setns 268
+#define __NR_sendmmsg 269
+#define __NR_process_vm_readv 270
+#define __NR_process_vm_writev 271
+#define __NR_kcmp 272
+#define __NR_finit_module 273
+#define __NR_sched_setattr 274
+#define __NR_sched_getattr 275
+#define __NR_renameat2 276
+#define __NR_seccomp 277
+#define __NR_getrandom 278
+#define __NR_memfd_create 279
+#define __NR_bpf 280
+#define __NR_execveat 281
+#define __NR_userfaultfd 282
+#define __NR_membarrier 283
+#define __NR_mlock2 284
+#define __NR_copy_file_range 285
+#define __NR_preadv2 286
+#define __NR_pwritev2 287
+#define __NR_pkey_mprotect 288
+#define __NR_pkey_alloc 289
+#define __NR_pkey_free 290
+#define __NR_statx 291
+#define __NR_rseq 293
+#define __NR_kexec_file_load 294
+#define __NR_clock_gettime64 403
+#define __NR_clock_settime64 404
+#define __NR_clock_adjtime64 405
+#define __NR_clock_getres_time64 406
+#define __NR_clock_nanosleep_time64 407
+#define __NR_timer_gettime64 408
+#define __NR_timer_settime64 409
+#define __NR_timerfd_gettime64 410
+#define __NR_timerfd_settime64 411
+#define __NR_utimensat_time64 412
+#define __NR_pselect6_time64 413
+#define __NR_ppoll_time64 414
+#define __NR_io_pgetevents_time64 416
+#define __NR_recvmmsg_time64 417
+#define __NR_mq_timedsend_time64 418
+#define __NR_mq_timedreceive_time64 419
+#define __NR_semtimedop_time64 420
+#define __NR_rt_sigtimedwait_time64 421
+#define __NR_futex_time64 422
+#define __NR_sched_rr_get_interval_time64 423
+#define __NR_pidfd_send_signal 424
+#define __NR_io_uring_setup 425
+#define __NR_io_uring_enter 426
+#define __NR_io_uring_register 427
+#define __NR_open_tree 428
+#define __NR_move_mount 429
+#define __NR_fsopen 430
+#define __NR_fsconfig 431
+#define __NR_fsmount 432
+#define __NR_fspick 433
+#define __NR_pidfd_open 434
+#define __NR_clone3 435
+#define __NR_close_range 436
+#define __NR_openat2 437
+#define __NR_pidfd_getfd 438
+#define __NR_faccessat2 439
+#define __NR_process_madvise 440
+#define __NR_epoll_pwait2 441
+#define __NR_mount_setattr 442
+#define __NR_quotactl_fd 443
+#define __NR_landlock_create_ruleset 444
+#define __NR_landlock_add_rule 445
+#define __NR_landlock_restrict_self 446
+#define __NR_memfd_secret 447
+#define __NR_process_mrelease 448
+#define __NR_futex_waitv 449
+#define __NR_set_mempolicy_home_node 450
+#define __NR_cachestat 451
+#define __NR_fchmodat2 452
+#define __NR_map_shadow_stack 453
+#define __NR_futex_wake 454
+#define __NR_futex_wait 455
+#define __NR_futex_requeue 456
+#define __NR_statmount 457
+#define __NR_listmount 458
+#define __NR_lsm_get_self_attr 459
+#define __NR_lsm_set_self_attr 460
+#define __NR_lsm_list_modules 461
+#define __NR_mseal 462
+#endif
diff --git a/libc/kernel/uapi/asm-riscv/asm/unistd_64.h b/libc/kernel/uapi/asm-riscv/asm/unistd_64.h
new file mode 100644
index 0000000..f15b65b
--- /dev/null
+++ b/libc/kernel/uapi/asm-riscv/asm/unistd_64.h
@@ -0,0 +1,328 @@
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
+#ifndef _UAPI_ASM_UNISTD_64_H
+#define _UAPI_ASM_UNISTD_64_H
+#define __NR_io_setup 0
+#define __NR_io_destroy 1
+#define __NR_io_submit 2
+#define __NR_io_cancel 3
+#define __NR_io_getevents 4
+#define __NR_setxattr 5
+#define __NR_lsetxattr 6
+#define __NR_fsetxattr 7
+#define __NR_getxattr 8
+#define __NR_lgetxattr 9
+#define __NR_fgetxattr 10
+#define __NR_listxattr 11
+#define __NR_llistxattr 12
+#define __NR_flistxattr 13
+#define __NR_removexattr 14
+#define __NR_lremovexattr 15
+#define __NR_fremovexattr 16
+#define __NR_getcwd 17
+#define __NR_lookup_dcookie 18
+#define __NR_eventfd2 19
+#define __NR_epoll_create1 20
+#define __NR_epoll_ctl 21
+#define __NR_epoll_pwait 22
+#define __NR_dup 23
+#define __NR_dup3 24
+#define __NR_fcntl 25
+#define __NR_inotify_init1 26
+#define __NR_inotify_add_watch 27
+#define __NR_inotify_rm_watch 28
+#define __NR_ioctl 29
+#define __NR_ioprio_set 30
+#define __NR_ioprio_get 31
+#define __NR_flock 32
+#define __NR_mknodat 33
+#define __NR_mkdirat 34
+#define __NR_unlinkat 35
+#define __NR_symlinkat 36
+#define __NR_linkat 37
+#define __NR_umount2 39
+#define __NR_mount 40
+#define __NR_pivot_root 41
+#define __NR_nfsservctl 42
+#define __NR_statfs 43
+#define __NR_fstatfs 44
+#define __NR_truncate 45
+#define __NR_ftruncate 46
+#define __NR_fallocate 47
+#define __NR_faccessat 48
+#define __NR_chdir 49
+#define __NR_fchdir 50
+#define __NR_chroot 51
+#define __NR_fchmod 52
+#define __NR_fchmodat 53
+#define __NR_fchownat 54
+#define __NR_fchown 55
+#define __NR_openat 56
+#define __NR_close 57
+#define __NR_vhangup 58
+#define __NR_pipe2 59
+#define __NR_quotactl 60
+#define __NR_getdents64 61
+#define __NR_lseek 62
+#define __NR_read 63
+#define __NR_write 64
+#define __NR_readv 65
+#define __NR_writev 66
+#define __NR_pread64 67
+#define __NR_pwrite64 68
+#define __NR_preadv 69
+#define __NR_pwritev 70
+#define __NR_sendfile 71
+#define __NR_pselect6 72
+#define __NR_ppoll 73
+#define __NR_signalfd4 74
+#define __NR_vmsplice 75
+#define __NR_splice 76
+#define __NR_tee 77
+#define __NR_readlinkat 78
+#define __NR_newfstatat 79
+#define __NR_fstat 80
+#define __NR_sync 81
+#define __NR_fsync 82
+#define __NR_fdatasync 83
+#define __NR_sync_file_range 84
+#define __NR_timerfd_create 85
+#define __NR_timerfd_settime 86
+#define __NR_timerfd_gettime 87
+#define __NR_utimensat 88
+#define __NR_acct 89
+#define __NR_capget 90
+#define __NR_capset 91
+#define __NR_personality 92
+#define __NR_exit 93
+#define __NR_exit_group 94
+#define __NR_waitid 95
+#define __NR_set_tid_address 96
+#define __NR_unshare 97
+#define __NR_futex 98
+#define __NR_set_robust_list 99
+#define __NR_get_robust_list 100
+#define __NR_nanosleep 101
+#define __NR_getitimer 102
+#define __NR_setitimer 103
+#define __NR_kexec_load 104
+#define __NR_init_module 105
+#define __NR_delete_module 106
+#define __NR_timer_create 107
+#define __NR_timer_gettime 108
+#define __NR_timer_getoverrun 109
+#define __NR_timer_settime 110
+#define __NR_timer_delete 111
+#define __NR_clock_settime 112
+#define __NR_clock_gettime 113
+#define __NR_clock_getres 114
+#define __NR_clock_nanosleep 115
+#define __NR_syslog 116
+#define __NR_ptrace 117
+#define __NR_sched_setparam 118
+#define __NR_sched_setscheduler 119
+#define __NR_sched_getscheduler 120
+#define __NR_sched_getparam 121
+#define __NR_sched_setaffinity 122
+#define __NR_sched_getaffinity 123
+#define __NR_sched_yield 124
+#define __NR_sched_get_priority_max 125
+#define __NR_sched_get_priority_min 126
+#define __NR_sched_rr_get_interval 127
+#define __NR_restart_syscall 128
+#define __NR_kill 129
+#define __NR_tkill 130
+#define __NR_tgkill 131
+#define __NR_sigaltstack 132
+#define __NR_rt_sigsuspend 133
+#define __NR_rt_sigaction 134
+#define __NR_rt_sigprocmask 135
+#define __NR_rt_sigpending 136
+#define __NR_rt_sigtimedwait 137
+#define __NR_rt_sigqueueinfo 138
+#define __NR_rt_sigreturn 139
+#define __NR_setpriority 140
+#define __NR_getpriority 141
+#define __NR_reboot 142
+#define __NR_setregid 143
+#define __NR_setgid 144
+#define __NR_setreuid 145
+#define __NR_setuid 146
+#define __NR_setresuid 147
+#define __NR_getresuid 148
+#define __NR_setresgid 149
+#define __NR_getresgid 150
+#define __NR_setfsuid 151
+#define __NR_setfsgid 152
+#define __NR_times 153
+#define __NR_setpgid 154
+#define __NR_getpgid 155
+#define __NR_getsid 156
+#define __NR_setsid 157
+#define __NR_getgroups 158
+#define __NR_setgroups 159
+#define __NR_uname 160
+#define __NR_sethostname 161
+#define __NR_setdomainname 162
+#define __NR_getrlimit 163
+#define __NR_setrlimit 164
+#define __NR_getrusage 165
+#define __NR_umask 166
+#define __NR_prctl 167
+#define __NR_getcpu 168
+#define __NR_gettimeofday 169
+#define __NR_settimeofday 170
+#define __NR_adjtimex 171
+#define __NR_getpid 172
+#define __NR_getppid 173
+#define __NR_getuid 174
+#define __NR_geteuid 175
+#define __NR_getgid 176
+#define __NR_getegid 177
+#define __NR_gettid 178
+#define __NR_sysinfo 179
+#define __NR_mq_open 180
+#define __NR_mq_unlink 181
+#define __NR_mq_timedsend 182
+#define __NR_mq_timedreceive 183
+#define __NR_mq_notify 184
+#define __NR_mq_getsetattr 185
+#define __NR_msgget 186
+#define __NR_msgctl 187
+#define __NR_msgrcv 188
+#define __NR_msgsnd 189
+#define __NR_semget 190
+#define __NR_semctl 191
+#define __NR_semtimedop 192
+#define __NR_semop 193
+#define __NR_shmget 194
+#define __NR_shmctl 195
+#define __NR_shmat 196
+#define __NR_shmdt 197
+#define __NR_socket 198
+#define __NR_socketpair 199
+#define __NR_bind 200
+#define __NR_listen 201
+#define __NR_accept 202
+#define __NR_connect 203
+#define __NR_getsockname 204
+#define __NR_getpeername 205
+#define __NR_sendto 206
+#define __NR_recvfrom 207
+#define __NR_setsockopt 208
+#define __NR_getsockopt 209
+#define __NR_shutdown 210
+#define __NR_sendmsg 211
+#define __NR_recvmsg 212
+#define __NR_readahead 213
+#define __NR_brk 214
+#define __NR_munmap 215
+#define __NR_mremap 216
+#define __NR_add_key 217
+#define __NR_request_key 218
+#define __NR_keyctl 219
+#define __NR_clone 220
+#define __NR_execve 221
+#define __NR_mmap 222
+#define __NR_fadvise64 223
+#define __NR_swapon 224
+#define __NR_swapoff 225
+#define __NR_mprotect 226
+#define __NR_msync 227
+#define __NR_mlock 228
+#define __NR_munlock 229
+#define __NR_mlockall 230
+#define __NR_munlockall 231
+#define __NR_mincore 232
+#define __NR_madvise 233
+#define __NR_remap_file_pages 234
+#define __NR_mbind 235
+#define __NR_get_mempolicy 236
+#define __NR_set_mempolicy 237
+#define __NR_migrate_pages 238
+#define __NR_move_pages 239
+#define __NR_rt_tgsigqueueinfo 240
+#define __NR_perf_event_open 241
+#define __NR_accept4 242
+#define __NR_recvmmsg 243
+#define __NR_riscv_hwprobe 258
+#define __NR_riscv_flush_icache 259
+#define __NR_wait4 260
+#define __NR_prlimit64 261
+#define __NR_fanotify_init 262
+#define __NR_fanotify_mark 263
+#define __NR_name_to_handle_at 264
+#define __NR_open_by_handle_at 265
+#define __NR_clock_adjtime 266
+#define __NR_syncfs 267
+#define __NR_setns 268
+#define __NR_sendmmsg 269
+#define __NR_process_vm_readv 270
+#define __NR_process_vm_writev 271
+#define __NR_kcmp 272
+#define __NR_finit_module 273
+#define __NR_sched_setattr 274
+#define __NR_sched_getattr 275
+#define __NR_renameat2 276
+#define __NR_seccomp 277
+#define __NR_getrandom 278
+#define __NR_memfd_create 279
+#define __NR_bpf 280
+#define __NR_execveat 281
+#define __NR_userfaultfd 282
+#define __NR_membarrier 283
+#define __NR_mlock2 284
+#define __NR_copy_file_range 285
+#define __NR_preadv2 286
+#define __NR_pwritev2 287
+#define __NR_pkey_mprotect 288
+#define __NR_pkey_alloc 289
+#define __NR_pkey_free 290
+#define __NR_statx 291
+#define __NR_io_pgetevents 292
+#define __NR_rseq 293
+#define __NR_kexec_file_load 294
+#define __NR_pidfd_send_signal 424
+#define __NR_io_uring_setup 425
+#define __NR_io_uring_enter 426
+#define __NR_io_uring_register 427
+#define __NR_open_tree 428
+#define __NR_move_mount 429
+#define __NR_fsopen 430
+#define __NR_fsconfig 431
+#define __NR_fsmount 432
+#define __NR_fspick 433
+#define __NR_pidfd_open 434
+#define __NR_clone3 435
+#define __NR_close_range 436
+#define __NR_openat2 437
+#define __NR_pidfd_getfd 438
+#define __NR_faccessat2 439
+#define __NR_process_madvise 440
+#define __NR_epoll_pwait2 441
+#define __NR_mount_setattr 442
+#define __NR_quotactl_fd 443
+#define __NR_landlock_create_ruleset 444
+#define __NR_landlock_add_rule 445
+#define __NR_landlock_restrict_self 446
+#define __NR_memfd_secret 447
+#define __NR_process_mrelease 448
+#define __NR_futex_waitv 449
+#define __NR_set_mempolicy_home_node 450
+#define __NR_cachestat 451
+#define __NR_fchmodat2 452
+#define __NR_map_shadow_stack 453
+#define __NR_futex_wake 454
+#define __NR_futex_wait 455
+#define __NR_futex_requeue 456
+#define __NR_statmount 457
+#define __NR_listmount 458
+#define __NR_lsm_get_self_attr 459
+#define __NR_lsm_set_self_attr 460
+#define __NR_lsm_list_modules 461
+#define __NR_mseal 462
+#endif
diff --git a/libc/kernel/uapi/asm-x86/asm/a.out.h b/libc/kernel/uapi/asm-x86/asm/a.out.h
index 3a1b845..7d45774 100644
--- a/libc/kernel/uapi/asm-x86/asm/a.out.h
+++ b/libc/kernel/uapi/asm-x86/asm/a.out.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _ASM_X86_A_OUT_H
 #define _ASM_X86_A_OUT_H
 struct exec {
diff --git a/libc/kernel/uapi/asm-x86/asm/amd_hsmp.h b/libc/kernel/uapi/asm-x86/asm/amd_hsmp.h
index c026aac..0d630bf 100644
--- a/libc/kernel/uapi/asm-x86/asm/amd_hsmp.h
+++ b/libc/kernel/uapi/asm-x86/asm/amd_hsmp.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_ASM_X86_AMD_HSMP_H_
 #define _UAPI_ASM_X86_AMD_HSMP_H_
 #include <linux/types.h>
@@ -56,6 +44,9 @@
   HSMP_SET_PCI_RATE,
   HSMP_SET_POWER_MODE,
   HSMP_SET_PSTATE_MAX_MIN,
+  HSMP_GET_METRIC_TABLE_VER,
+  HSMP_GET_METRIC_TABLE,
+  HSMP_GET_METRIC_TABLE_DRAM_ADDR,
   HSMP_MSG_ID_MAX,
 };
 struct hsmp_message {
@@ -70,6 +61,13 @@
   HSMP_SET = 0,
   HSMP_GET = 1,
 };
+enum hsmp_proto_versions {
+  HSMP_PROTO_VER2 = 2,
+  HSMP_PROTO_VER3,
+  HSMP_PROTO_VER4,
+  HSMP_PROTO_VER5,
+  HSMP_PROTO_VER6
+};
 struct hsmp_msg_desc {
   int num_args;
   int response_sz;
@@ -181,8 +179,77 @@
  , {
     1, 0, HSMP_SET
   }
+ , {
+    0, 1, HSMP_GET
+  }
+ , {
+    0, 0, HSMP_GET
+  }
+ , {
+    0, 2, HSMP_GET
+  }
  ,
 };
+struct hsmp_metric_table {
+  __u32 accumulation_counter;
+  __u32 max_socket_temperature;
+  __u32 max_vr_temperature;
+  __u32 max_hbm_temperature;
+  __u64 max_socket_temperature_acc;
+  __u64 max_vr_temperature_acc;
+  __u64 max_hbm_temperature_acc;
+  __u32 socket_power_limit;
+  __u32 max_socket_power_limit;
+  __u32 socket_power;
+  __u64 timestamp;
+  __u64 socket_energy_acc;
+  __u64 ccd_energy_acc;
+  __u64 xcd_energy_acc;
+  __u64 aid_energy_acc;
+  __u64 hbm_energy_acc;
+  __u32 cclk_frequency_limit;
+  __u32 gfxclk_frequency_limit;
+  __u32 fclk_frequency;
+  __u32 uclk_frequency;
+  __u32 socclk_frequency[4];
+  __u32 vclk_frequency[4];
+  __u32 dclk_frequency[4];
+  __u32 lclk_frequency[4];
+  __u64 gfxclk_frequency_acc[8];
+  __u64 cclk_frequency_acc[96];
+  __u32 max_cclk_frequency;
+  __u32 min_cclk_frequency;
+  __u32 max_gfxclk_frequency;
+  __u32 min_gfxclk_frequency;
+  __u32 fclk_frequency_table[4];
+  __u32 uclk_frequency_table[4];
+  __u32 socclk_frequency_table[4];
+  __u32 vclk_frequency_table[4];
+  __u32 dclk_frequency_table[4];
+  __u32 lclk_frequency_table[4];
+  __u32 max_lclk_dpm_range;
+  __u32 min_lclk_dpm_range;
+  __u32 xgmi_width;
+  __u32 xgmi_bitrate;
+  __u64 xgmi_read_bandwidth_acc[8];
+  __u64 xgmi_write_bandwidth_acc[8];
+  __u32 socket_c0_residency;
+  __u32 socket_gfx_busy;
+  __u32 dram_bandwidth_utilization;
+  __u64 socket_c0_residency_acc;
+  __u64 socket_gfx_busy_acc;
+  __u64 dram_bandwidth_acc;
+  __u32 max_dram_bandwidth;
+  __u64 dram_bandwidth_utilization_acc;
+  __u64 pcie_bandwidth_acc[4];
+  __u32 prochot_residency_acc;
+  __u32 ppt_residency_acc;
+  __u32 socket_thm_residency_acc;
+  __u32 vr_thm_residency_acc;
+  __u32 hbm_thm_residency_acc;
+  __u32 spare;
+  __u32 gfxclk_frequency[8];
+};
 #pragma pack()
 #define HSMP_BASE_IOCTL_NR 0xF8
 #define HSMP_IOCTL_CMD _IOWR(HSMP_BASE_IOCTL_NR, 0, struct hsmp_message)
diff --git a/libc/kernel/uapi/asm-x86/asm/auxvec.h b/libc/kernel/uapi/asm-x86/asm/auxvec.h
index dd86783..8496aaf 100644
--- a/libc/kernel/uapi/asm-x86/asm/auxvec.h
+++ b/libc/kernel/uapi/asm-x86/asm/auxvec.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _ASM_X86_AUXVEC_H
 #define _ASM_X86_AUXVEC_H
 #ifdef __i386__
diff --git a/libc/kernel/uapi/asm-x86/asm/bitsperlong.h b/libc/kernel/uapi/asm-x86/asm/bitsperlong.h
index 7eca377..e5df11c 100644
--- a/libc/kernel/uapi/asm-x86/asm/bitsperlong.h
+++ b/libc/kernel/uapi/asm-x86/asm/bitsperlong.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __ASM_X86_BITSPERLONG_H
 #define __ASM_X86_BITSPERLONG_H
 #if defined(__x86_64__) && !defined(__ILP32__)
diff --git a/libc/kernel/uapi/asm-x86/asm/boot.h b/libc/kernel/uapi/asm-x86/asm/boot.h
index 7cbb691..cc63c47 100644
--- a/libc/kernel/uapi/asm-x86/asm/boot.h
+++ b/libc/kernel/uapi/asm-x86/asm/boot.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_ASM_X86_BOOT_H
 #define _UAPI_ASM_X86_BOOT_H
 #define NORMAL_VGA 0xffff
diff --git a/libc/kernel/uapi/asm-x86/asm/bootparam.h b/libc/kernel/uapi/asm-x86/asm/bootparam.h
index ab9d7f3..6a4b59c 100644
--- a/libc/kernel/uapi/asm-x86/asm/bootparam.h
+++ b/libc/kernel/uapi/asm-x86/asm/bootparam.h
@@ -1,36 +1,12 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _ASM_X86_BOOTPARAM_H
 #define _ASM_X86_BOOTPARAM_H
-#define SETUP_NONE 0
-#define SETUP_E820_EXT 1
-#define SETUP_DTB 2
-#define SETUP_PCI 3
-#define SETUP_EFI 4
-#define SETUP_APPLE_PROPERTIES 5
-#define SETUP_JAILHOUSE 6
-#define SETUP_CC_BLOB 7
-#define SETUP_IMA 8
-#define SETUP_RNG_SEED 9
-#define SETUP_ENUM_MAX SETUP_RNG_SEED
-#define SETUP_INDIRECT (1 << 31)
-#define SETUP_TYPE_MAX (SETUP_ENUM_MAX | SETUP_INDIRECT)
+#include <asm/setup_data.h>
 #define RAMDISK_IMAGE_START_MASK 0x07FF
 #define RAMDISK_PROMPT_FLAG 0x8000
 #define RAMDISK_LOAD_FLAG 0x4000
@@ -46,6 +22,7 @@
 #define XLF_EFI_KEXEC (1 << 4)
 #define XLF_5LEVEL (1 << 5)
 #define XLF_5LEVEL_ENABLED (1 << 6)
+#define XLF_MEM_ENCRYPTION (1 << 7)
 #ifndef __ASSEMBLY__
 #include <linux/types.h>
 #include <linux/screen_info.h>
@@ -53,18 +30,6 @@
 #include <linux/edd.h>
 #include <asm/ist.h>
 #include <video/edid.h>
-struct setup_data {
-  __u64 next;
-  __u32 type;
-  __u32 len;
-  __u8 data[];
-};
-struct setup_indirect {
-  __u32 type;
-  __u32 reserved;
-  __u64 len;
-  __u64 addr;
-};
 struct setup_header {
   __u8 setup_sects;
   __u16 root_flags;
@@ -127,34 +92,7 @@
   __u32 efi_memmap_hi;
 };
 #define E820_MAX_ENTRIES_ZEROPAGE 128
-struct boot_e820_entry {
-  __u64 addr;
-  __u64 size;
-  __u32 type;
-} __attribute__((packed));
 #define JAILHOUSE_SETUP_REQUIRED_VERSION 1
-struct jailhouse_setup_data {
-  struct {
-    __u16 version;
-    __u16 compatible_version;
-  } __attribute__((packed)) hdr;
-  struct {
-    __u16 pm_timer_address;
-    __u16 num_cpus;
-    __u64 pci_mmconfig_base;
-    __u32 tsc_khz;
-    __u32 apic_khz;
-    __u8 standard_ioapic;
-    __u8 cpu_ids[255];
-  } __attribute__((packed)) v1;
-  struct {
-    __u32 flags;
-  } __attribute__((packed)) v2;
-} __attribute__((packed));
-struct ima_setup_data {
-  __u64 addr;
-  __u64 size;
-} __attribute__((packed));
 struct boot_params {
   struct screen_info screen_info;
   struct apm_bios_info apm_bios_info;
diff --git a/libc/kernel/uapi/asm-x86/asm/bpf_perf_event.h b/libc/kernel/uapi/asm-x86/asm/bpf_perf_event.h
index fa7bc48..892ba7d 100644
--- a/libc/kernel/uapi/asm-x86/asm/bpf_perf_event.h
+++ b/libc/kernel/uapi/asm-x86/asm/bpf_perf_event.h
@@ -1,19 +1,7 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #include <asm-generic/bpf_perf_event.h>
diff --git a/libc/kernel/uapi/asm-x86/asm/byteorder.h b/libc/kernel/uapi/asm-x86/asm/byteorder.h
index db3ddff..3efba29 100644
--- a/libc/kernel/uapi/asm-x86/asm/byteorder.h
+++ b/libc/kernel/uapi/asm-x86/asm/byteorder.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _ASM_X86_BYTEORDER_H
 #define _ASM_X86_BYTEORDER_H
 #include <linux/byteorder/little_endian.h>
diff --git a/libc/kernel/uapi/asm-x86/asm/debugreg.h b/libc/kernel/uapi/asm-x86/asm/debugreg.h
index 360f432..4d0a904 100644
--- a/libc/kernel/uapi/asm-x86/asm/debugreg.h
+++ b/libc/kernel/uapi/asm-x86/asm/debugreg.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_ASM_X86_DEBUGREG_H
 #define _UAPI_ASM_X86_DEBUGREG_H
 #define DR_FIRSTADDR 0
diff --git a/libc/kernel/uapi/asm-x86/asm/e820.h b/libc/kernel/uapi/asm-x86/asm/e820.h
index 8f00c5c..ed1d1a1 100644
--- a/libc/kernel/uapi/asm-x86/asm/e820.h
+++ b/libc/kernel/uapi/asm-x86/asm/e820.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_ASM_X86_E820_H
 #define _UAPI_ASM_X86_E820_H
 #define E820MAP 0x2d0
diff --git a/libc/kernel/uapi/asm-x86/asm/errno.h b/libc/kernel/uapi/asm-x86/asm/errno.h
index 392cd94..68b3218 100644
--- a/libc/kernel/uapi/asm-x86/asm/errno.h
+++ b/libc/kernel/uapi/asm-x86/asm/errno.h
@@ -1,19 +1,7 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #include <asm-generic/errno.h>
diff --git a/libc/kernel/uapi/asm-x86/asm/fcntl.h b/libc/kernel/uapi/asm-x86/asm/fcntl.h
index 518d3a7..b82e108 100644
--- a/libc/kernel/uapi/asm-x86/asm/fcntl.h
+++ b/libc/kernel/uapi/asm-x86/asm/fcntl.h
@@ -1,19 +1,7 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #include <asm-generic/fcntl.h>
diff --git a/libc/kernel/uapi/asm-x86/asm/hw_breakpoint.h b/libc/kernel/uapi/asm-x86/asm/hw_breakpoint.h
index 878419c..02e56b8 100644
--- a/libc/kernel/uapi/asm-x86/asm/hw_breakpoint.h
+++ b/libc/kernel/uapi/asm-x86/asm/hw_breakpoint.h
@@ -1,18 +1,6 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
diff --git a/libc/kernel/uapi/asm-x86/asm/hwcap2.h b/libc/kernel/uapi/asm-x86/asm/hwcap2.h
index 9f715c9..39dfd64 100644
--- a/libc/kernel/uapi/asm-x86/asm/hwcap2.h
+++ b/libc/kernel/uapi/asm-x86/asm/hwcap2.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _ASM_X86_HWCAP2_H
 #define _ASM_X86_HWCAP2_H
 #include <linux/const.h>
diff --git a/libc/kernel/uapi/asm-x86/asm/ioctl.h b/libc/kernel/uapi/asm-x86/asm/ioctl.h
index 7b7bd37..513f68c 100644
--- a/libc/kernel/uapi/asm-x86/asm/ioctl.h
+++ b/libc/kernel/uapi/asm-x86/asm/ioctl.h
@@ -1,19 +1,7 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #include <asm-generic/ioctl.h>
diff --git a/libc/kernel/uapi/asm-x86/asm/ioctls.h b/libc/kernel/uapi/asm-x86/asm/ioctls.h
index 0c66935..0ed82e0 100644
--- a/libc/kernel/uapi/asm-x86/asm/ioctls.h
+++ b/libc/kernel/uapi/asm-x86/asm/ioctls.h
@@ -1,19 +1,7 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #include <asm-generic/ioctls.h>
diff --git a/libc/kernel/uapi/asm-x86/asm/ipcbuf.h b/libc/kernel/uapi/asm-x86/asm/ipcbuf.h
index 0021f14..0c908bc 100644
--- a/libc/kernel/uapi/asm-x86/asm/ipcbuf.h
+++ b/libc/kernel/uapi/asm-x86/asm/ipcbuf.h
@@ -1,19 +1,7 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #include <asm-generic/ipcbuf.h>
diff --git a/libc/kernel/uapi/asm-x86/asm/ist.h b/libc/kernel/uapi/asm-x86/asm/ist.h
index 9648952..6dbfede 100644
--- a/libc/kernel/uapi/asm-x86/asm/ist.h
+++ b/libc/kernel/uapi/asm-x86/asm/ist.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_ASM_X86_IST_H
 #define _UAPI_ASM_X86_IST_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/asm-x86/asm/kvm.h b/libc/kernel/uapi/asm-x86/asm/kvm.h
index 77d35fc..cd647b6 100644
--- a/libc/kernel/uapi/asm-x86/asm/kvm.h
+++ b/libc/kernel/uapi/asm-x86/asm/kvm.h
@@ -1,25 +1,16 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _ASM_X86_KVM_H
 #define _ASM_X86_KVM_H
+#include <linux/const.h>
+#include <linux/bits.h>
 #include <linux/types.h>
 #include <linux/ioctl.h>
+#include <linux/stddef.h>
 #define KVM_PIO_PAGE_OFFSET 1
 #define KVM_COALESCED_MMIO_PAGE_OFFSET 2
 #define KVM_DIRTY_LOG_PAGE_OFFSET 64
@@ -46,7 +37,6 @@
 #define __KVM_HAVE_IRQ_LINE
 #define __KVM_HAVE_MSI
 #define __KVM_HAVE_USER_NMI
-#define __KVM_HAVE_GUEST_DEBUG
 #define __KVM_HAVE_MSIX
 #define __KVM_HAVE_MCE
 #define __KVM_HAVE_PIT_STATE2
@@ -55,7 +45,6 @@
 #define __KVM_HAVE_DEBUGREGS
 #define __KVM_HAVE_XSAVE
 #define __KVM_HAVE_XCRS
-#define __KVM_HAVE_READONLY_MEM
 #define KVM_NR_INTERRUPTS 256
 struct kvm_pic_state {
   __u8 last_irr;
@@ -105,6 +94,7 @@
 #define KVM_NR_IRQCHIPS 3
 #define KVM_RUN_X86_SMM (1 << 0)
 #define KVM_RUN_X86_BUS_LOCK (1 << 1)
+#define KVM_RUN_X86_GUEST_MODE (1 << 2)
 struct kvm_regs {
   __u64 rax, rbx, rcx, rdx;
   __u64 rsi, rdi, rsp, rbp;
@@ -364,7 +354,10 @@
 #define KVM_STATE_NESTED_VMX_VMCS_SIZE 0x1000
 #define KVM_STATE_NESTED_SVM_VMCB_SIZE 0x1000
 #define KVM_STATE_VMX_PREEMPTION_TIMER_DEADLINE 0x00000001
+#define KVM_X86_GRP_SYSTEM 0
 #define KVM_X86_XCOMP_GUEST_SUPP 0
+#define KVM_X86_GRP_SEV 1
+#define KVM_X86_SEV_VMSA_FEATURES 0
 struct kvm_vmx_nested_state_data {
   __u8 vmcs12[KVM_STATE_NESTED_VMX_VMCS_SIZE];
   __u8 shadow_vmcs12[KVM_STATE_NESTED_VMX_VMCS_SIZE];
@@ -395,8 +388,8 @@
     __u8 pad[120];
   } hdr;
   union {
-    struct kvm_vmx_nested_state_data vmx[0];
-    struct kvm_svm_nested_state_data svm[0];
+    __DECLARE_FLEX_ARRAY(struct kvm_vmx_nested_state_data, vmx);
+    __DECLARE_FLEX_ARRAY(struct kvm_svm_nested_state_data, svm);
   } data;
 };
 struct kvm_pmu_event_filter {
@@ -409,6 +402,310 @@
 };
 #define KVM_PMU_EVENT_ALLOW 0
 #define KVM_PMU_EVENT_DENY 1
+#define KVM_PMU_EVENT_FLAG_MASKED_EVENTS _BITUL(0)
+#define KVM_PMU_EVENT_FLAGS_VALID_MASK (KVM_PMU_EVENT_FLAG_MASKED_EVENTS)
+struct kvm_x86_mce {
+  __u64 status;
+  __u64 addr;
+  __u64 misc;
+  __u64 mcg_status;
+  __u8 bank;
+  __u8 pad1[7];
+  __u64 pad2[3];
+};
+#define KVM_XEN_HVM_CONFIG_HYPERCALL_MSR (1 << 0)
+#define KVM_XEN_HVM_CONFIG_INTERCEPT_HCALL (1 << 1)
+#define KVM_XEN_HVM_CONFIG_SHARED_INFO (1 << 2)
+#define KVM_XEN_HVM_CONFIG_RUNSTATE (1 << 3)
+#define KVM_XEN_HVM_CONFIG_EVTCHN_2LEVEL (1 << 4)
+#define KVM_XEN_HVM_CONFIG_EVTCHN_SEND (1 << 5)
+#define KVM_XEN_HVM_CONFIG_RUNSTATE_UPDATE_FLAG (1 << 6)
+#define KVM_XEN_HVM_CONFIG_PVCLOCK_TSC_UNSTABLE (1 << 7)
+#define KVM_XEN_HVM_CONFIG_SHARED_INFO_HVA (1 << 8)
+struct kvm_xen_hvm_config {
+  __u32 flags;
+  __u32 msr;
+  __u64 blob_addr_32;
+  __u64 blob_addr_64;
+  __u8 blob_size_32;
+  __u8 blob_size_64;
+  __u8 pad2[30];
+};
+struct kvm_xen_hvm_attr {
+  __u16 type;
+  __u16 pad[3];
+  union {
+    __u8 long_mode;
+    __u8 vector;
+    __u8 runstate_update_flag;
+    union {
+      __u64 gfn;
+#define KVM_XEN_INVALID_GFN ((__u64) - 1)
+      __u64 hva;
+    } shared_info;
+    struct {
+      __u32 send_port;
+      __u32 type;
+      __u32 flags;
+#define KVM_XEN_EVTCHN_DEASSIGN (1 << 0)
+#define KVM_XEN_EVTCHN_UPDATE (1 << 1)
+#define KVM_XEN_EVTCHN_RESET (1 << 2)
+      union {
+        struct {
+          __u32 port;
+          __u32 vcpu;
+          __u32 priority;
+        } port;
+        struct {
+          __u32 port;
+          __s32 fd;
+        } eventfd;
+        __u32 padding[4];
+      } deliver;
+    } evtchn;
+    __u32 xen_version;
+    __u64 pad[8];
+  } u;
+};
+#define KVM_XEN_ATTR_TYPE_LONG_MODE 0x0
+#define KVM_XEN_ATTR_TYPE_SHARED_INFO 0x1
+#define KVM_XEN_ATTR_TYPE_UPCALL_VECTOR 0x2
+#define KVM_XEN_ATTR_TYPE_EVTCHN 0x3
+#define KVM_XEN_ATTR_TYPE_XEN_VERSION 0x4
+#define KVM_XEN_ATTR_TYPE_RUNSTATE_UPDATE_FLAG 0x5
+#define KVM_XEN_ATTR_TYPE_SHARED_INFO_HVA 0x6
+struct kvm_xen_vcpu_attr {
+  __u16 type;
+  __u16 pad[3];
+  union {
+    __u64 gpa;
+#define KVM_XEN_INVALID_GPA ((__u64) - 1)
+    __u64 hva;
+    __u64 pad[8];
+    struct {
+      __u64 state;
+      __u64 state_entry_time;
+      __u64 time_running;
+      __u64 time_runnable;
+      __u64 time_blocked;
+      __u64 time_offline;
+    } runstate;
+    __u32 vcpu_id;
+    struct {
+      __u32 port;
+      __u32 priority;
+      __u64 expires_ns;
+    } timer;
+    __u8 vector;
+  } u;
+};
+#define KVM_XEN_VCPU_ATTR_TYPE_VCPU_INFO 0x0
+#define KVM_XEN_VCPU_ATTR_TYPE_VCPU_TIME_INFO 0x1
+#define KVM_XEN_VCPU_ATTR_TYPE_RUNSTATE_ADDR 0x2
+#define KVM_XEN_VCPU_ATTR_TYPE_RUNSTATE_CURRENT 0x3
+#define KVM_XEN_VCPU_ATTR_TYPE_RUNSTATE_DATA 0x4
+#define KVM_XEN_VCPU_ATTR_TYPE_RUNSTATE_ADJUST 0x5
+#define KVM_XEN_VCPU_ATTR_TYPE_VCPU_ID 0x6
+#define KVM_XEN_VCPU_ATTR_TYPE_TIMER 0x7
+#define KVM_XEN_VCPU_ATTR_TYPE_UPCALL_VECTOR 0x8
+#define KVM_XEN_VCPU_ATTR_TYPE_VCPU_INFO_HVA 0x9
+enum sev_cmd_id {
+  KVM_SEV_INIT = 0,
+  KVM_SEV_ES_INIT,
+  KVM_SEV_LAUNCH_START,
+  KVM_SEV_LAUNCH_UPDATE_DATA,
+  KVM_SEV_LAUNCH_UPDATE_VMSA,
+  KVM_SEV_LAUNCH_SECRET,
+  KVM_SEV_LAUNCH_MEASURE,
+  KVM_SEV_LAUNCH_FINISH,
+  KVM_SEV_SEND_START,
+  KVM_SEV_SEND_UPDATE_DATA,
+  KVM_SEV_SEND_UPDATE_VMSA,
+  KVM_SEV_SEND_FINISH,
+  KVM_SEV_RECEIVE_START,
+  KVM_SEV_RECEIVE_UPDATE_DATA,
+  KVM_SEV_RECEIVE_UPDATE_VMSA,
+  KVM_SEV_RECEIVE_FINISH,
+  KVM_SEV_GUEST_STATUS,
+  KVM_SEV_DBG_DECRYPT,
+  KVM_SEV_DBG_ENCRYPT,
+  KVM_SEV_CERT_EXPORT,
+  KVM_SEV_GET_ATTESTATION_REPORT,
+  KVM_SEV_SEND_CANCEL,
+  KVM_SEV_INIT2,
+  KVM_SEV_SNP_LAUNCH_START = 100,
+  KVM_SEV_SNP_LAUNCH_UPDATE,
+  KVM_SEV_SNP_LAUNCH_FINISH,
+  KVM_SEV_NR_MAX,
+};
+struct kvm_sev_cmd {
+  __u32 id;
+  __u32 pad0;
+  __u64 data;
+  __u32 error;
+  __u32 sev_fd;
+};
+struct kvm_sev_init {
+  __u64 vmsa_features;
+  __u32 flags;
+  __u16 ghcb_version;
+  __u16 pad1;
+  __u32 pad2[8];
+};
+struct kvm_sev_launch_start {
+  __u32 handle;
+  __u32 policy;
+  __u64 dh_uaddr;
+  __u32 dh_len;
+  __u32 pad0;
+  __u64 session_uaddr;
+  __u32 session_len;
+  __u32 pad1;
+};
+struct kvm_sev_launch_update_data {
+  __u64 uaddr;
+  __u32 len;
+  __u32 pad0;
+};
+struct kvm_sev_launch_secret {
+  __u64 hdr_uaddr;
+  __u32 hdr_len;
+  __u32 pad0;
+  __u64 guest_uaddr;
+  __u32 guest_len;
+  __u32 pad1;
+  __u64 trans_uaddr;
+  __u32 trans_len;
+  __u32 pad2;
+};
+struct kvm_sev_launch_measure {
+  __u64 uaddr;
+  __u32 len;
+  __u32 pad0;
+};
+struct kvm_sev_guest_status {
+  __u32 handle;
+  __u32 policy;
+  __u32 state;
+};
+struct kvm_sev_dbg {
+  __u64 src_uaddr;
+  __u64 dst_uaddr;
+  __u32 len;
+  __u32 pad0;
+};
+struct kvm_sev_attestation_report {
+  __u8 mnonce[16];
+  __u64 uaddr;
+  __u32 len;
+  __u32 pad0;
+};
+struct kvm_sev_send_start {
+  __u32 policy;
+  __u32 pad0;
+  __u64 pdh_cert_uaddr;
+  __u32 pdh_cert_len;
+  __u32 pad1;
+  __u64 plat_certs_uaddr;
+  __u32 plat_certs_len;
+  __u32 pad2;
+  __u64 amd_certs_uaddr;
+  __u32 amd_certs_len;
+  __u32 pad3;
+  __u64 session_uaddr;
+  __u32 session_len;
+  __u32 pad4;
+};
+struct kvm_sev_send_update_data {
+  __u64 hdr_uaddr;
+  __u32 hdr_len;
+  __u32 pad0;
+  __u64 guest_uaddr;
+  __u32 guest_len;
+  __u32 pad1;
+  __u64 trans_uaddr;
+  __u32 trans_len;
+  __u32 pad2;
+};
+struct kvm_sev_receive_start {
+  __u32 handle;
+  __u32 policy;
+  __u64 pdh_uaddr;
+  __u32 pdh_len;
+  __u32 pad0;
+  __u64 session_uaddr;
+  __u32 session_len;
+  __u32 pad1;
+};
+struct kvm_sev_receive_update_data {
+  __u64 hdr_uaddr;
+  __u32 hdr_len;
+  __u32 pad0;
+  __u64 guest_uaddr;
+  __u32 guest_len;
+  __u32 pad1;
+  __u64 trans_uaddr;
+  __u32 trans_len;
+  __u32 pad2;
+};
+struct kvm_sev_snp_launch_start {
+  __u64 policy;
+  __u8 gosvw[16];
+  __u16 flags;
+  __u8 pad0[6];
+  __u64 pad1[4];
+};
+#define KVM_SEV_SNP_PAGE_TYPE_NORMAL 0x1
+#define KVM_SEV_SNP_PAGE_TYPE_ZERO 0x3
+#define KVM_SEV_SNP_PAGE_TYPE_UNMEASURED 0x4
+#define KVM_SEV_SNP_PAGE_TYPE_SECRETS 0x5
+#define KVM_SEV_SNP_PAGE_TYPE_CPUID 0x6
+struct kvm_sev_snp_launch_update {
+  __u64 gfn_start;
+  __u64 uaddr;
+  __u64 len;
+  __u8 type;
+  __u8 pad0;
+  __u16 flags;
+  __u32 pad1;
+  __u64 pad2[4];
+};
+#define KVM_SEV_SNP_ID_BLOCK_SIZE 96
+#define KVM_SEV_SNP_ID_AUTH_SIZE 4096
+#define KVM_SEV_SNP_FINISH_DATA_SIZE 32
+struct kvm_sev_snp_launch_finish {
+  __u64 id_block_uaddr;
+  __u64 id_auth_uaddr;
+  __u8 id_block_en;
+  __u8 auth_key_en;
+  __u8 vcek_disabled;
+  __u8 host_data[KVM_SEV_SNP_FINISH_DATA_SIZE];
+  __u8 pad0[3];
+  __u16 flags;
+  __u64 pad1[4];
+};
+#define KVM_X2APIC_API_USE_32BIT_IDS (1ULL << 0)
+#define KVM_X2APIC_API_DISABLE_BROADCAST_QUIRK (1ULL << 1)
+struct kvm_hyperv_eventfd {
+  __u32 conn_id;
+  __s32 fd;
+  __u32 flags;
+  __u32 padding[3];
+};
+#define KVM_HYPERV_CONN_ID_MASK 0x00ffffff
+#define KVM_HYPERV_EVENTFD_DEASSIGN (1 << 0)
+#define KVM_PMU_ENCODE_MASKED_ENTRY(event_select,mask,match,exclude) (((event_select) & 0xFFULL) | (((event_select) & 0XF00ULL) << 24) | (((mask) & 0xFFULL) << 56) | (((match) & 0xFFULL) << 8) | ((__u64) (! ! (exclude)) << 55))
+#define KVM_PMU_MASKED_ENTRY_EVENT_SELECT (__GENMASK_ULL(7, 0) | __GENMASK_ULL(35, 32))
+#define KVM_PMU_MASKED_ENTRY_UMASK_MASK (__GENMASK_ULL(63, 56))
+#define KVM_PMU_MASKED_ENTRY_UMASK_MATCH (__GENMASK_ULL(15, 8))
+#define KVM_PMU_MASKED_ENTRY_EXCLUDE (_BITULL(55))
+#define KVM_PMU_MASKED_ENTRY_UMASK_MASK_SHIFT (56)
 #define KVM_VCPU_TSC_CTRL 0
 #define KVM_VCPU_TSC_OFFSET 0
+#define KVM_EXIT_HYPERCALL_LONG_MODE _BITULL(0)
+#define KVM_X86_DEFAULT_VM 0
+#define KVM_X86_SW_PROTECTED_VM 1
+#define KVM_X86_SEV_VM 2
+#define KVM_X86_SEV_ES_VM 3
+#define KVM_X86_SNP_VM 4
 #endif
diff --git a/libc/kernel/uapi/asm-x86/asm/kvm_para.h b/libc/kernel/uapi/asm-x86/asm/kvm_para.h
index dd72af0..3395a15 100644
--- a/libc/kernel/uapi/asm-x86/asm/kvm_para.h
+++ b/libc/kernel/uapi/asm-x86/asm/kvm_para.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_ASM_X86_KVM_PARA_H
 #define _UAPI_ASM_X86_KVM_PARA_H
 #include <linux/types.h>
@@ -79,7 +67,7 @@
 #define KVM_ASYNC_PF_SEND_ALWAYS (1 << 1)
 #define KVM_ASYNC_PF_DELIVERY_AS_PF_VMEXIT (1 << 2)
 #define KVM_ASYNC_PF_DELIVERY_AS_INT (1 << 3)
-#define KVM_ASYNC_PF_VEC_MASK GENMASK(7, 0)
+#define KVM_ASYNC_PF_VEC_MASK __GENMASK(7, 0)
 #define KVM_MIGRATION_READY (1 << 0)
 #define KVM_MAP_GPA_RANGE_PAGE_SZ_4K 0
 #define KVM_MAP_GPA_RANGE_PAGE_SZ_2M (1 << 0)
@@ -112,7 +100,6 @@
   __u32 flags;
   __u32 token;
   __u8 pad[56];
-  __u32 enabled;
 };
 #define KVM_PV_EOI_BIT 0
 #define KVM_PV_EOI_MASK (0x1 << KVM_PV_EOI_BIT)
diff --git a/libc/kernel/uapi/asm-x86/asm/kvm_perf.h b/libc/kernel/uapi/asm-x86/asm/kvm_perf.h
index c5c8f8e..f60e263 100644
--- a/libc/kernel/uapi/asm-x86/asm/kvm_perf.h
+++ b/libc/kernel/uapi/asm-x86/asm/kvm_perf.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _ASM_X86_KVM_PERF_H
 #define _ASM_X86_KVM_PERF_H
 #include <asm/svm.h>
diff --git a/libc/kernel/uapi/asm-x86/asm/ldt.h b/libc/kernel/uapi/asm-x86/asm/ldt.h
index a98aedf..9c22a0b 100644
--- a/libc/kernel/uapi/asm-x86/asm/ldt.h
+++ b/libc/kernel/uapi/asm-x86/asm/ldt.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _ASM_X86_LDT_H
 #define _ASM_X86_LDT_H
 #define LDT_ENTRIES 8192
diff --git a/libc/kernel/uapi/asm-x86/asm/mce.h b/libc/kernel/uapi/asm-x86/asm/mce.h
index 359af57..08a8634 100644
--- a/libc/kernel/uapi/asm-x86/asm/mce.h
+++ b/libc/kernel/uapi/asm-x86/asm/mce.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_ASM_X86_MCE_H
 #define _UAPI_ASM_X86_MCE_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/asm-x86/asm/mman.h b/libc/kernel/uapi/asm-x86/asm/mman.h
index 1061a6f..90269d6 100644
--- a/libc/kernel/uapi/asm-x86/asm/mman.h
+++ b/libc/kernel/uapi/asm-x86/asm/mman.h
@@ -1,23 +1,13 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _ASM_X86_MMAN_H
 #define _ASM_X86_MMAN_H
 #define MAP_32BIT 0x40
+#define MAP_ABOVE4G 0x80
+#define SHADOW_STACK_SET_TOKEN (1ULL << 0)
 #include <asm-generic/mman.h>
 #endif
diff --git a/libc/kernel/uapi/asm-x86/asm/msgbuf.h b/libc/kernel/uapi/asm-x86/asm/msgbuf.h
index b100b20..730e2be 100644
--- a/libc/kernel/uapi/asm-x86/asm/msgbuf.h
+++ b/libc/kernel/uapi/asm-x86/asm/msgbuf.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __ASM_X64_MSGBUF_H
 #define __ASM_X64_MSGBUF_H
 #if !defined(__x86_64__) || !defined(__ILP32__)
diff --git a/libc/kernel/uapi/asm-x86/asm/msr.h b/libc/kernel/uapi/asm-x86/asm/msr.h
index c772838..34b7bd8 100644
--- a/libc/kernel/uapi/asm-x86/asm/msr.h
+++ b/libc/kernel/uapi/asm-x86/asm/msr.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_ASM_X86_MSR_H
 #define _UAPI_ASM_X86_MSR_H
 #ifndef __ASSEMBLY__
diff --git a/libc/kernel/uapi/asm-x86/asm/mtrr.h b/libc/kernel/uapi/asm-x86/asm/mtrr.h
index c709a70..5561b52 100644
--- a/libc/kernel/uapi/asm-x86/asm/mtrr.h
+++ b/libc/kernel/uapi/asm-x86/asm/mtrr.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_ASM_X86_MTRR_H
 #define _UAPI_ASM_X86_MTRR_H
 #include <linux/types.h>
@@ -57,13 +45,6 @@
 typedef __u8 mtrr_type;
 #define MTRR_NUM_FIXED_RANGES 88
 #define MTRR_MAX_VAR_RANGES 256
-struct mtrr_state_type {
-  struct mtrr_var_range var_ranges[MTRR_MAX_VAR_RANGES];
-  mtrr_type fixed_ranges[MTRR_NUM_FIXED_RANGES];
-  unsigned char enabled;
-  unsigned char have_fixed;
-  mtrr_type def_type;
-};
 #define MTRRphysBase_MSR(reg) (0x200 + 2 * (reg))
 #define MTRRphysMask_MSR(reg) (0x200 + 2 * (reg) + 1)
 #define MTRRIOC_ADD_ENTRY _IOW(MTRR_IOCTL_BASE, 0, struct mtrr_sentry)
diff --git a/libc/kernel/uapi/asm-x86/asm/param.h b/libc/kernel/uapi/asm-x86/asm/param.h
index 5ccf935..f20aa34 100644
--- a/libc/kernel/uapi/asm-x86/asm/param.h
+++ b/libc/kernel/uapi/asm-x86/asm/param.h
@@ -1,19 +1,7 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #include <asm-generic/param.h>
diff --git a/libc/kernel/uapi/asm-x86/asm/perf_regs.h b/libc/kernel/uapi/asm-x86/asm/perf_regs.h
index 984b7ea..99f0aaf 100644
--- a/libc/kernel/uapi/asm-x86/asm/perf_regs.h
+++ b/libc/kernel/uapi/asm-x86/asm/perf_regs.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _ASM_X86_PERF_REGS_H
 #define _ASM_X86_PERF_REGS_H
 enum perf_event_x86_regs {
diff --git a/libc/kernel/uapi/asm-x86/asm/poll.h b/libc/kernel/uapi/asm-x86/asm/poll.h
index d7e8adc..bf92c2a 100644
--- a/libc/kernel/uapi/asm-x86/asm/poll.h
+++ b/libc/kernel/uapi/asm-x86/asm/poll.h
@@ -1,19 +1,7 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #include <asm-generic/poll.h>
diff --git a/libc/kernel/uapi/asm-x86/asm/posix_types.h b/libc/kernel/uapi/asm-x86/asm/posix_types.h
index 67ed19b..c57f1e0 100644
--- a/libc/kernel/uapi/asm-x86/asm/posix_types.h
+++ b/libc/kernel/uapi/asm-x86/asm/posix_types.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifdef __i386__
 #include <asm/posix_types_32.h>
 #elif defined(__ILP32__)
diff --git a/libc/kernel/uapi/asm-x86/asm/posix_types_32.h b/libc/kernel/uapi/asm-x86/asm/posix_types_32.h
index c339b4f..2f0b038 100644
--- a/libc/kernel/uapi/asm-x86/asm/posix_types_32.h
+++ b/libc/kernel/uapi/asm-x86/asm/posix_types_32.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _ASM_X86_POSIX_TYPES_32_H
 #define _ASM_X86_POSIX_TYPES_32_H
 typedef unsigned short __kernel_mode_t;
diff --git a/libc/kernel/uapi/asm-x86/asm/posix_types_64.h b/libc/kernel/uapi/asm-x86/asm/posix_types_64.h
index 23cdec1..26db149 100644
--- a/libc/kernel/uapi/asm-x86/asm/posix_types_64.h
+++ b/libc/kernel/uapi/asm-x86/asm/posix_types_64.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _ASM_X86_POSIX_TYPES_64_H
 #define _ASM_X86_POSIX_TYPES_64_H
 typedef unsigned short __kernel_old_uid_t;
diff --git a/libc/kernel/uapi/asm-x86/asm/posix_types_x32.h b/libc/kernel/uapi/asm-x86/asm/posix_types_x32.h
index 96cf8b9..5b71839 100644
--- a/libc/kernel/uapi/asm-x86/asm/posix_types_x32.h
+++ b/libc/kernel/uapi/asm-x86/asm/posix_types_x32.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _ASM_X86_POSIX_TYPES_X32_H
 #define _ASM_X86_POSIX_TYPES_X32_H
 typedef long long __kernel_long_t;
diff --git a/libc/kernel/uapi/asm-x86/asm/prctl.h b/libc/kernel/uapi/asm-x86/asm/prctl.h
index c5ba2d6..025d0ab 100644
--- a/libc/kernel/uapi/asm-x86/asm/prctl.h
+++ b/libc/kernel/uapi/asm-x86/asm/prctl.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _ASM_X86_PRCTL_H
 #define _ASM_X86_PRCTL_H
 #define ARCH_SET_GS 0x1001
@@ -29,7 +17,20 @@
 #define ARCH_REQ_XCOMP_PERM 0x1023
 #define ARCH_GET_XCOMP_GUEST_PERM 0x1024
 #define ARCH_REQ_XCOMP_GUEST_PERM 0x1025
+#define ARCH_XCOMP_TILECFG 17
+#define ARCH_XCOMP_TILEDATA 18
 #define ARCH_MAP_VDSO_X32 0x2001
 #define ARCH_MAP_VDSO_32 0x2002
 #define ARCH_MAP_VDSO_64 0x2003
+#define ARCH_GET_UNTAG_MASK 0x4001
+#define ARCH_ENABLE_TAGGED_ADDR 0x4002
+#define ARCH_GET_MAX_TAG_BITS 0x4003
+#define ARCH_FORCE_TAGGED_SVA 0x4004
+#define ARCH_SHSTK_ENABLE 0x5001
+#define ARCH_SHSTK_DISABLE 0x5002
+#define ARCH_SHSTK_LOCK 0x5003
+#define ARCH_SHSTK_UNLOCK 0x5004
+#define ARCH_SHSTK_STATUS 0x5005
+#define ARCH_SHSTK_SHSTK (1ULL << 0)
+#define ARCH_SHSTK_WRSS (1ULL << 1)
 #endif
diff --git a/libc/kernel/uapi/asm-x86/asm/processor-flags.h b/libc/kernel/uapi/asm-x86/asm/processor-flags.h
index 0a95afd..9842847 100644
--- a/libc/kernel/uapi/asm-x86/asm/processor-flags.h
+++ b/libc/kernel/uapi/asm-x86/asm/processor-flags.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_ASM_X86_PROCESSOR_FLAGS_H
 #define _UAPI_ASM_X86_PROCESSOR_FLAGS_H
 #include <linux/const.h>
@@ -83,6 +71,10 @@
 #define X86_CR3_PCD _BITUL(X86_CR3_PCD_BIT)
 #define X86_CR3_PCID_BITS 12
 #define X86_CR3_PCID_MASK (_AC((1UL << X86_CR3_PCID_BITS) - 1, UL))
+#define X86_CR3_LAM_U57_BIT 61
+#define X86_CR3_LAM_U57 _BITULL(X86_CR3_LAM_U57_BIT)
+#define X86_CR3_LAM_U48_BIT 62
+#define X86_CR3_LAM_U48 _BITULL(X86_CR3_LAM_U48_BIT)
 #define X86_CR3_PCID_NOFLUSH_BIT 63
 #define X86_CR3_PCID_NOFLUSH _BITULL(X86_CR3_PCID_NOFLUSH_BIT)
 #define X86_CR4_VME_BIT 0
@@ -129,6 +121,14 @@
 #define X86_CR4_PKE _BITUL(X86_CR4_PKE_BIT)
 #define X86_CR4_CET_BIT 23
 #define X86_CR4_CET _BITUL(X86_CR4_CET_BIT)
+#define X86_CR4_LAM_SUP_BIT 28
+#define X86_CR4_LAM_SUP _BITUL(X86_CR4_LAM_SUP_BIT)
+#ifdef __x86_64__
+#define X86_CR4_FRED_BIT 32
+#define X86_CR4_FRED _BITUL(X86_CR4_FRED_BIT)
+#else
+#define X86_CR4_FRED (0)
+#endif
 #define X86_CR8_TPR _AC(0x0000000f, UL)
 #define CX86_PCR0 0x20
 #define CX86_GCR 0xb8
diff --git a/libc/kernel/uapi/asm-x86/asm/ptrace-abi.h b/libc/kernel/uapi/asm-x86/asm/ptrace-abi.h
index e501d9f..aa314e0 100644
--- a/libc/kernel/uapi/asm-x86/asm/ptrace-abi.h
+++ b/libc/kernel/uapi/asm-x86/asm/ptrace-abi.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _ASM_X86_PTRACE_ABI_H
 #define _ASM_X86_PTRACE_ABI_H
 #ifdef __i386__
diff --git a/libc/kernel/uapi/asm-x86/asm/ptrace.h b/libc/kernel/uapi/asm-x86/asm/ptrace.h
index 3f4404a..a791592 100644
--- a/libc/kernel/uapi/asm-x86/asm/ptrace.h
+++ b/libc/kernel/uapi/asm-x86/asm/ptrace.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_ASM_X86_PTRACE_H
 #define _UAPI_ASM_X86_PTRACE_H
 #include <linux/compiler.h>
diff --git a/libc/kernel/uapi/asm-x86/asm/resource.h b/libc/kernel/uapi/asm-x86/asm/resource.h
index 371adb5..3ad9e62 100644
--- a/libc/kernel/uapi/asm-x86/asm/resource.h
+++ b/libc/kernel/uapi/asm-x86/asm/resource.h
@@ -1,19 +1,7 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #include <asm-generic/resource.h>
diff --git a/libc/kernel/uapi/asm-x86/asm/sembuf.h b/libc/kernel/uapi/asm-x86/asm/sembuf.h
index c633425..705db8b 100644
--- a/libc/kernel/uapi/asm-x86/asm/sembuf.h
+++ b/libc/kernel/uapi/asm-x86/asm/sembuf.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _ASM_X86_SEMBUF_H
 #define _ASM_X86_SEMBUF_H
 #include <asm/ipcbuf.h>
diff --git a/libc/kernel/uapi/asm-x86/asm/setup.h b/libc/kernel/uapi/asm-x86/asm/setup.h
index 878419c..02e56b8 100644
--- a/libc/kernel/uapi/asm-x86/asm/setup.h
+++ b/libc/kernel/uapi/asm-x86/asm/setup.h
@@ -1,18 +1,6 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
diff --git a/libc/kernel/uapi/asm-x86/asm/setup_data.h b/libc/kernel/uapi/asm-x86/asm/setup_data.h
new file mode 100644
index 0000000..d00a554
--- /dev/null
+++ b/libc/kernel/uapi/asm-x86/asm/setup_data.h
@@ -0,0 +1,64 @@
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
+#ifndef _UAPI_ASM_X86_SETUP_DATA_H
+#define _UAPI_ASM_X86_SETUP_DATA_H
+#define SETUP_NONE 0
+#define SETUP_E820_EXT 1
+#define SETUP_DTB 2
+#define SETUP_PCI 3
+#define SETUP_EFI 4
+#define SETUP_APPLE_PROPERTIES 5
+#define SETUP_JAILHOUSE 6
+#define SETUP_CC_BLOB 7
+#define SETUP_IMA 8
+#define SETUP_RNG_SEED 9
+#define SETUP_ENUM_MAX SETUP_RNG_SEED
+#define SETUP_INDIRECT (1 << 31)
+#define SETUP_TYPE_MAX (SETUP_ENUM_MAX | SETUP_INDIRECT)
+#ifndef __ASSEMBLY__
+#include <linux/types.h>
+struct setup_data {
+  __u64 next;
+  __u32 type;
+  __u32 len;
+  __u8 data[];
+};
+struct setup_indirect {
+  __u32 type;
+  __u32 reserved;
+  __u64 len;
+  __u64 addr;
+};
+struct boot_e820_entry {
+  __u64 addr;
+  __u64 size;
+  __u32 type;
+} __attribute__((packed));
+struct jailhouse_setup_data {
+  struct {
+    __u16 version;
+    __u16 compatible_version;
+  } __attribute__((packed)) hdr;
+  struct {
+    __u16 pm_timer_address;
+    __u16 num_cpus;
+    __u64 pci_mmconfig_base;
+    __u32 tsc_khz;
+    __u32 apic_khz;
+    __u8 standard_ioapic;
+    __u8 cpu_ids[255];
+  } __attribute__((packed)) v1;
+  struct {
+    __u32 flags;
+  } __attribute__((packed)) v2;
+} __attribute__((packed));
+struct ima_setup_data {
+  __u64 addr;
+  __u64 size;
+} __attribute__((packed));
+#endif
+#endif
diff --git a/libc/kernel/uapi/asm-x86/asm/sgx.h b/libc/kernel/uapi/asm-x86/asm/sgx.h
index fdc2700..f249826 100644
--- a/libc/kernel/uapi/asm-x86/asm/sgx.h
+++ b/libc/kernel/uapi/asm-x86/asm/sgx.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_ASM_X86_SGX_H
 #define _UAPI_ASM_X86_SGX_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/asm-x86/asm/shmbuf.h b/libc/kernel/uapi/asm-x86/asm/shmbuf.h
index 2a0dcb5..62f7252 100644
--- a/libc/kernel/uapi/asm-x86/asm/shmbuf.h
+++ b/libc/kernel/uapi/asm-x86/asm/shmbuf.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __ASM_X86_SHMBUF_H
 #define __ASM_X86_SHMBUF_H
 #if !defined(__x86_64__) || !defined(__ILP32__)
diff --git a/libc/kernel/uapi/asm-x86/asm/sigcontext.h b/libc/kernel/uapi/asm-x86/asm/sigcontext.h
index c790950..fa18f78 100644
--- a/libc/kernel/uapi/asm-x86/asm/sigcontext.h
+++ b/libc/kernel/uapi/asm-x86/asm/sigcontext.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_ASM_X86_SIGCONTEXT_H
 #define _UAPI_ASM_X86_SIGCONTEXT_H
 #include <linux/compiler.h>
diff --git a/libc/kernel/uapi/asm-x86/asm/sigcontext32.h b/libc/kernel/uapi/asm-x86/asm/sigcontext32.h
index 639467e..c9e4f21 100644
--- a/libc/kernel/uapi/asm-x86/asm/sigcontext32.h
+++ b/libc/kernel/uapi/asm-x86/asm/sigcontext32.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _ASM_X86_SIGCONTEXT32_H
 #define _ASM_X86_SIGCONTEXT32_H
 #include <asm/sigcontext.h>
diff --git a/libc/kernel/uapi/asm-x86/asm/siginfo.h b/libc/kernel/uapi/asm-x86/asm/siginfo.h
index 0de5283..64eca06 100644
--- a/libc/kernel/uapi/asm-x86/asm/siginfo.h
+++ b/libc/kernel/uapi/asm-x86/asm/siginfo.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _ASM_X86_SIGINFO_H
 #define _ASM_X86_SIGINFO_H
 #ifdef __x86_64__
diff --git a/libc/kernel/uapi/asm-x86/asm/signal.h b/libc/kernel/uapi/asm-x86/asm/signal.h
index 37dce50..6cffef3 100644
--- a/libc/kernel/uapi/asm-x86/asm/signal.h
+++ b/libc/kernel/uapi/asm-x86/asm/signal.h
@@ -1,26 +1,13 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_ASM_X86_SIGNAL_H
 #define _UAPI_ASM_X86_SIGNAL_H
 #ifndef __ASSEMBLY__
 #include <linux/types.h>
-#include <linux/time.h>
 #include <linux/compiler.h>
 struct siginfo;
 #define _KERNEL_NSIG 32
@@ -68,7 +55,7 @@
 #include <asm-generic/signal-defs.h>
 #ifndef __ASSEMBLY__
 #ifdef __i386__
-struct sigaction {
+struct __kernel_sigaction {
   union {
     __sighandler_t _sa_handler;
     void(* _sa_sigaction) (int, struct siginfo *, void *);
@@ -80,7 +67,7 @@
 #define sa_handler _u._sa_handler
 #define sa_sigaction _u._sa_sigaction
 #else
-struct sigaction {
+struct __kernel_sigaction {
   __sighandler_t sa_handler;
   unsigned long sa_flags;
   __sigrestore_t sa_restorer;
diff --git a/libc/kernel/uapi/asm-x86/asm/socket.h b/libc/kernel/uapi/asm-x86/asm/socket.h
index 50a9874..2ca3e45 100644
--- a/libc/kernel/uapi/asm-x86/asm/socket.h
+++ b/libc/kernel/uapi/asm-x86/asm/socket.h
@@ -1,19 +1,7 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #include <asm-generic/socket.h>
diff --git a/libc/kernel/uapi/asm-x86/asm/sockios.h b/libc/kernel/uapi/asm-x86/asm/sockios.h
index 710db92..5aba663 100644
--- a/libc/kernel/uapi/asm-x86/asm/sockios.h
+++ b/libc/kernel/uapi/asm-x86/asm/sockios.h
@@ -1,19 +1,7 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #include <asm-generic/sockios.h>
diff --git a/libc/kernel/uapi/asm-x86/asm/stat.h b/libc/kernel/uapi/asm-x86/asm/stat.h
index 9b8c37e..c3f3e69 100644
--- a/libc/kernel/uapi/asm-x86/asm/stat.h
+++ b/libc/kernel/uapi/asm-x86/asm/stat.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _ASM_X86_STAT_H
 #define _ASM_X86_STAT_H
 #include <asm/posix_types.h>
diff --git a/libc/kernel/uapi/asm-x86/asm/statfs.h b/libc/kernel/uapi/asm-x86/asm/statfs.h
index 3ac754c..0695c18 100644
--- a/libc/kernel/uapi/asm-x86/asm/statfs.h
+++ b/libc/kernel/uapi/asm-x86/asm/statfs.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _ASM_X86_STATFS_H
 #define _ASM_X86_STATFS_H
 #define ARCH_PACK_COMPAT_STATFS64 __attribute__((packed, aligned(4)))
diff --git a/libc/kernel/uapi/asm-x86/asm/svm.h b/libc/kernel/uapi/asm-x86/asm/svm.h
index 0d95101..4f165fa 100644
--- a/libc/kernel/uapi/asm-x86/asm/svm.h
+++ b/libc/kernel/uapi/asm-x86/asm/svm.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI__SVM_H
 #define _UAPI__SVM_H
 #define SVM_EXIT_READ_CR0 0x000
@@ -129,6 +117,7 @@
 #define SVM_VMGEXIT_AP_CREATE_ON_INIT 0
 #define SVM_VMGEXIT_AP_CREATE 1
 #define SVM_VMGEXIT_AP_DESTROY 2
+#define SVM_VMGEXIT_SNP_RUN_VMPL 0x80000018
 #define SVM_VMGEXIT_HV_FEATURES 0x8000fffd
 #define SVM_VMGEXIT_TERM_REQUEST 0x8000fffe
 #define SVM_VMGEXIT_TERM_REASON(reason_set,reason_code) (((((u64) reason_set) & 0xf)) | ((((u64) reason_code) & 0xff) << 4))
diff --git a/libc/kernel/uapi/asm-x86/asm/swab.h b/libc/kernel/uapi/asm-x86/asm/swab.h
index 24fd5e3..31c850d 100644
--- a/libc/kernel/uapi/asm-x86/asm/swab.h
+++ b/libc/kernel/uapi/asm-x86/asm/swab.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _ASM_X86_SWAB_H
 #define _ASM_X86_SWAB_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/asm-x86/asm/termbits.h b/libc/kernel/uapi/asm-x86/asm/termbits.h
index 42af6fe..e943da3 100644
--- a/libc/kernel/uapi/asm-x86/asm/termbits.h
+++ b/libc/kernel/uapi/asm-x86/asm/termbits.h
@@ -1,19 +1,7 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #include <asm-generic/termbits.h>
diff --git a/libc/kernel/uapi/asm-x86/asm/termios.h b/libc/kernel/uapi/asm-x86/asm/termios.h
index feca4c6..3ae8ca2 100644
--- a/libc/kernel/uapi/asm-x86/asm/termios.h
+++ b/libc/kernel/uapi/asm-x86/asm/termios.h
@@ -1,19 +1,7 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #include <asm-generic/termios.h>
diff --git a/libc/kernel/uapi/asm-x86/asm/types.h b/libc/kernel/uapi/asm-x86/asm/types.h
index 8250f43..a030be8 100644
--- a/libc/kernel/uapi/asm-x86/asm/types.h
+++ b/libc/kernel/uapi/asm-x86/asm/types.h
@@ -1,19 +1,7 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #include <asm-generic/types.h>
diff --git a/libc/kernel/uapi/asm-x86/asm/ucontext.h b/libc/kernel/uapi/asm-x86/asm/ucontext.h
index 1bb416f..b2ee3fb 100644
--- a/libc/kernel/uapi/asm-x86/asm/ucontext.h
+++ b/libc/kernel/uapi/asm-x86/asm/ucontext.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _ASM_X86_UCONTEXT_H
 #define _ASM_X86_UCONTEXT_H
 #define UC_FP_XSTATE 0x1
diff --git a/libc/kernel/uapi/asm-x86/asm/unistd.h b/libc/kernel/uapi/asm-x86/asm/unistd.h
index 8cab383..fc9d18d 100644
--- a/libc/kernel/uapi/asm-x86/asm/unistd.h
+++ b/libc/kernel/uapi/asm-x86/asm/unistd.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_ASM_X86_UNISTD_H
 #define _UAPI_ASM_X86_UNISTD_H
 #define __X32_SYSCALL_BIT 0x40000000
diff --git a/libc/kernel/uapi/asm-x86/asm/unistd_32.h b/libc/kernel/uapi/asm-x86/asm/unistd_32.h
index 8e57516..59c693d 100644
--- a/libc/kernel/uapi/asm-x86/asm/unistd_32.h
+++ b/libc/kernel/uapi/asm-x86/asm/unistd_32.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_ASM_UNISTD_32_H
 #define _UAPI_ASM_UNISTD_32_H
 #define __NR_restart_syscall 0
@@ -458,4 +446,16 @@
 #define __NR_process_mrelease 448
 #define __NR_futex_waitv 449
 #define __NR_set_mempolicy_home_node 450
+#define __NR_cachestat 451
+#define __NR_fchmodat2 452
+#define __NR_map_shadow_stack 453
+#define __NR_futex_wake 454
+#define __NR_futex_wait 455
+#define __NR_futex_requeue 456
+#define __NR_statmount 457
+#define __NR_listmount 458
+#define __NR_lsm_get_self_attr 459
+#define __NR_lsm_set_self_attr 460
+#define __NR_lsm_list_modules 461
+#define __NR_mseal 462
 #endif
diff --git a/libc/kernel/uapi/asm-x86/asm/unistd_64.h b/libc/kernel/uapi/asm-x86/asm/unistd_64.h
index 54ff16f..d5408a3 100644
--- a/libc/kernel/uapi/asm-x86/asm/unistd_64.h
+++ b/libc/kernel/uapi/asm-x86/asm/unistd_64.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_ASM_UNISTD_64_H
 #define _UAPI_ASM_UNISTD_64_H
 #define __NR_read 0
@@ -353,6 +341,7 @@
 #define __NR_statx 332
 #define __NR_io_pgetevents 333
 #define __NR_rseq 334
+#define __NR_uretprobe 335
 #define __NR_pidfd_send_signal 424
 #define __NR_io_uring_setup 425
 #define __NR_io_uring_enter 426
@@ -380,4 +369,16 @@
 #define __NR_process_mrelease 448
 #define __NR_futex_waitv 449
 #define __NR_set_mempolicy_home_node 450
+#define __NR_cachestat 451
+#define __NR_fchmodat2 452
+#define __NR_map_shadow_stack 453
+#define __NR_futex_wake 454
+#define __NR_futex_wait 455
+#define __NR_futex_requeue 456
+#define __NR_statmount 457
+#define __NR_listmount 458
+#define __NR_lsm_get_self_attr 459
+#define __NR_lsm_set_self_attr 460
+#define __NR_lsm_list_modules 461
+#define __NR_mseal 462
 #endif
diff --git a/libc/kernel/uapi/asm-x86/asm/unistd_x32.h b/libc/kernel/uapi/asm-x86/asm/unistd_x32.h
index 1e05d75..fdcf7e6 100644
--- a/libc/kernel/uapi/asm-x86/asm/unistd_x32.h
+++ b/libc/kernel/uapi/asm-x86/asm/unistd_x32.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_ASM_UNISTD_X32_H
 #define _UAPI_ASM_UNISTD_X32_H
 #define __NR_read (__X32_SYSCALL_BIT + 0)
@@ -306,6 +294,7 @@
 #define __NR_statx (__X32_SYSCALL_BIT + 332)
 #define __NR_io_pgetevents (__X32_SYSCALL_BIT + 333)
 #define __NR_rseq (__X32_SYSCALL_BIT + 334)
+#define __NR_uretprobe (__X32_SYSCALL_BIT + 335)
 #define __NR_pidfd_send_signal (__X32_SYSCALL_BIT + 424)
 #define __NR_io_uring_setup (__X32_SYSCALL_BIT + 425)
 #define __NR_io_uring_enter (__X32_SYSCALL_BIT + 426)
@@ -333,6 +322,18 @@
 #define __NR_process_mrelease (__X32_SYSCALL_BIT + 448)
 #define __NR_futex_waitv (__X32_SYSCALL_BIT + 449)
 #define __NR_set_mempolicy_home_node (__X32_SYSCALL_BIT + 450)
+#define __NR_cachestat (__X32_SYSCALL_BIT + 451)
+#define __NR_fchmodat2 (__X32_SYSCALL_BIT + 452)
+#define __NR_map_shadow_stack (__X32_SYSCALL_BIT + 453)
+#define __NR_futex_wake (__X32_SYSCALL_BIT + 454)
+#define __NR_futex_wait (__X32_SYSCALL_BIT + 455)
+#define __NR_futex_requeue (__X32_SYSCALL_BIT + 456)
+#define __NR_statmount (__X32_SYSCALL_BIT + 457)
+#define __NR_listmount (__X32_SYSCALL_BIT + 458)
+#define __NR_lsm_get_self_attr (__X32_SYSCALL_BIT + 459)
+#define __NR_lsm_set_self_attr (__X32_SYSCALL_BIT + 460)
+#define __NR_lsm_list_modules (__X32_SYSCALL_BIT + 461)
+#define __NR_mseal (__X32_SYSCALL_BIT + 462)
 #define __NR_rt_sigaction (__X32_SYSCALL_BIT + 512)
 #define __NR_rt_sigreturn (__X32_SYSCALL_BIT + 513)
 #define __NR_ioctl (__X32_SYSCALL_BIT + 514)
diff --git a/libc/kernel/uapi/asm-x86/asm/vm86.h b/libc/kernel/uapi/asm-x86/asm/vm86.h
index 7193484..7643f1d 100644
--- a/libc/kernel/uapi/asm-x86/asm/vm86.h
+++ b/libc/kernel/uapi/asm-x86/asm/vm86.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_ASM_X86_VM86_H
 #define _UAPI_ASM_X86_VM86_H
 #include <asm/processor-flags.h>
diff --git a/libc/kernel/uapi/asm-x86/asm/vmx.h b/libc/kernel/uapi/asm-x86/asm/vmx.h
index fdea539..206a32b 100644
--- a/libc/kernel/uapi/asm-x86/asm/vmx.h
+++ b/libc/kernel/uapi/asm-x86/asm/vmx.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPIVMX_H
 #define _UAPIVMX_H
 #define VMX_EXIT_REASONS_FAILED_VMENTRY 0x80000000
diff --git a/libc/kernel/uapi/asm-x86/asm/vsyscall.h b/libc/kernel/uapi/asm-x86/asm/vsyscall.h
index 56abbbc..3edd58e 100644
--- a/libc/kernel/uapi/asm-x86/asm/vsyscall.h
+++ b/libc/kernel/uapi/asm-x86/asm/vsyscall.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_ASM_X86_VSYSCALL_H
 #define _UAPI_ASM_X86_VSYSCALL_H
 enum vsyscall_num {
diff --git a/libc/kernel/uapi/drm/amdgpu_drm.h b/libc/kernel/uapi/drm/amdgpu_drm.h
index fcd5ab8..7bbd5de 100644
--- a/libc/kernel/uapi/drm/amdgpu_drm.h
+++ b/libc/kernel/uapi/drm/amdgpu_drm.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __AMDGPU_DRM_H__
 #define __AMDGPU_DRM_H__
 #include "drm.h"
@@ -60,7 +48,8 @@
 #define AMDGPU_GEM_DOMAIN_GDS 0x8
 #define AMDGPU_GEM_DOMAIN_GWS 0x10
 #define AMDGPU_GEM_DOMAIN_OA 0x20
-#define AMDGPU_GEM_DOMAIN_MASK (AMDGPU_GEM_DOMAIN_CPU | AMDGPU_GEM_DOMAIN_GTT | AMDGPU_GEM_DOMAIN_VRAM | AMDGPU_GEM_DOMAIN_GDS | AMDGPU_GEM_DOMAIN_GWS | AMDGPU_GEM_DOMAIN_OA)
+#define AMDGPU_GEM_DOMAIN_DOORBELL 0x40
+#define AMDGPU_GEM_DOMAIN_MASK (AMDGPU_GEM_DOMAIN_CPU | AMDGPU_GEM_DOMAIN_GTT | AMDGPU_GEM_DOMAIN_VRAM | AMDGPU_GEM_DOMAIN_GDS | AMDGPU_GEM_DOMAIN_GWS | AMDGPU_GEM_DOMAIN_OA | AMDGPU_GEM_DOMAIN_DOORBELL)
 #define AMDGPU_GEM_CREATE_CPU_ACCESS_REQUIRED (1 << 0)
 #define AMDGPU_GEM_CREATE_NO_CPU_ACCESS (1 << 1)
 #define AMDGPU_GEM_CREATE_CPU_GTT_USWC (1 << 2)
@@ -75,6 +64,8 @@
 #define AMDGPU_GEM_CREATE_DISCARDABLE (1 << 12)
 #define AMDGPU_GEM_CREATE_COHERENT (1 << 13)
 #define AMDGPU_GEM_CREATE_UNCACHED (1 << 14)
+#define AMDGPU_GEM_CREATE_EXT_COHERENT (1 << 15)
+#define AMDGPU_GEM_CREATE_GFX12_DCC (1 << 16)
 struct drm_amdgpu_gem_create_in {
   __u64 bo_size;
   __u64 alignment;
@@ -126,6 +117,7 @@
 #define AMDGPU_CTX_QUERY2_FLAGS_GUILTY (1 << 2)
 #define AMDGPU_CTX_QUERY2_FLAGS_RAS_CE (1 << 3)
 #define AMDGPU_CTX_QUERY2_FLAGS_RAS_UE (1 << 4)
+#define AMDGPU_CTX_QUERY2_FLAGS_RESET_IN_PROGRESS (1 << 5)
 #define AMDGPU_CTX_PRIORITY_UNSET - 2048
 #define AMDGPU_CTX_PRIORITY_VERY_LOW - 1023
 #define AMDGPU_CTX_PRIORITY_LOW - 512
@@ -225,6 +217,14 @@
 #define AMDGPU_TILING_DCC_INDEPENDENT_128B_MASK 0x1
 #define AMDGPU_TILING_SCANOUT_SHIFT 63
 #define AMDGPU_TILING_SCANOUT_MASK 0x1
+#define AMDGPU_TILING_GFX12_SWIZZLE_MODE_SHIFT 0
+#define AMDGPU_TILING_GFX12_SWIZZLE_MODE_MASK 0x7
+#define AMDGPU_TILING_GFX12_DCC_MAX_COMPRESSED_BLOCK_SHIFT 3
+#define AMDGPU_TILING_GFX12_DCC_MAX_COMPRESSED_BLOCK_MASK 0x3
+#define AMDGPU_TILING_GFX12_DCC_NUMBER_TYPE_SHIFT 5
+#define AMDGPU_TILING_GFX12_DCC_NUMBER_TYPE_MASK 0x7
+#define AMDGPU_TILING_GFX12_DCC_DATA_FORMAT_SHIFT 8
+#define AMDGPU_TILING_GFX12_DCC_DATA_FORMAT_MASK 0x3f
 #define AMDGPU_TILING_SET(field,value) (((__u64) (value) & AMDGPU_TILING_ ##field ##_MASK) << AMDGPU_TILING_ ##field ##_SHIFT)
 #define AMDGPU_TILING_GET(value,field) (((__u64) (value) >> AMDGPU_TILING_ ##field ##_SHIFT) & AMDGPU_TILING_ ##field ##_MASK)
 #define AMDGPU_GEM_METADATA_OP_SET_METADATA 1
@@ -341,7 +341,8 @@
 #define AMDGPU_HW_IP_VCN_DEC 6
 #define AMDGPU_HW_IP_VCN_ENC 7
 #define AMDGPU_HW_IP_VCN_JPEG 8
-#define AMDGPU_HW_IP_NUM 9
+#define AMDGPU_HW_IP_VPE 9
+#define AMDGPU_HW_IP_NUM 10
 #define AMDGPU_HW_IP_INSTANCE_MAX_COUNT 1
 #define AMDGPU_CHUNK_ID_IB 0x01
 #define AMDGPU_CHUNK_ID_FENCE 0x02
@@ -352,6 +353,7 @@
 #define AMDGPU_CHUNK_ID_SCHEDULED_DEPENDENCIES 0x07
 #define AMDGPU_CHUNK_ID_SYNCOBJ_TIMELINE_WAIT 0x08
 #define AMDGPU_CHUNK_ID_SYNCOBJ_TIMELINE_SIGNAL 0x09
+#define AMDGPU_CHUNK_ID_CP_GFX_SHADOW 0x0a
 struct drm_amdgpu_cs_chunk {
   __u32 chunk_id;
   __u32 length_dw;
@@ -425,9 +427,17 @@
     struct drm_amdgpu_cs_chunk_fence fence_data;
   };
 };
+#define AMDGPU_CS_CHUNK_CP_GFX_SHADOW_FLAGS_INIT_SHADOW 0x1
+struct drm_amdgpu_cs_chunk_cp_gfx_shadow {
+  __u64 shadow_va;
+  __u64 csa_va;
+  __u64 gds_va;
+  __u64 flags;
+};
 #define AMDGPU_IDS_FLAGS_FUSION 0x1
 #define AMDGPU_IDS_FLAGS_PREEMPTION 0x2
 #define AMDGPU_IDS_FLAGS_TMZ 0x4
+#define AMDGPU_IDS_FLAGS_CONFORMANT_TRUNC_COORD 0x8
 #define AMDGPU_INFO_ACCEL_WORKING 0x00
 #define AMDGPU_INFO_CRTC_FROM_ID 0x01
 #define AMDGPU_INFO_HW_IP_INFO 0x02
@@ -460,6 +470,7 @@
 #define AMDGPU_INFO_FW_MES_KIQ 0x19
 #define AMDGPU_INFO_FW_MES 0x1a
 #define AMDGPU_INFO_FW_IMU 0x1b
+#define AMDGPU_INFO_FW_VPE 0x1c
 #define AMDGPU_INFO_NUM_BYTES_MOVED 0x0f
 #define AMDGPU_INFO_VRAM_USAGE 0x10
 #define AMDGPU_INFO_GTT_USAGE 0x11
@@ -486,6 +497,9 @@
 #define AMDGPU_INFO_SENSOR_VDDGFX 0x7
 #define AMDGPU_INFO_SENSOR_STABLE_PSTATE_GFX_SCLK 0x8
 #define AMDGPU_INFO_SENSOR_STABLE_PSTATE_GFX_MCLK 0x9
+#define AMDGPU_INFO_SENSOR_PEAK_PSTATE_GFX_SCLK 0xa
+#define AMDGPU_INFO_SENSOR_PEAK_PSTATE_GFX_MCLK 0xb
+#define AMDGPU_INFO_SENSOR_GPU_INPUT_POWER 0xc
 #define AMDGPU_INFO_NUM_VRAM_CPU_PAGE_FAULTS 0x1E
 #define AMDGPU_INFO_VRAM_LOST_COUNTER 0x1F
 #define AMDGPU_INFO_RAS_ENABLED_FEATURES 0x20
@@ -506,6 +520,8 @@
 #define AMDGPU_INFO_VIDEO_CAPS 0x21
 #define AMDGPU_INFO_VIDEO_CAPS_DECODE 0
 #define AMDGPU_INFO_VIDEO_CAPS_ENCODE 1
+#define AMDGPU_INFO_MAX_IBS 0x22
+#define AMDGPU_INFO_GPUVM_FAULT 0x23
 #define AMDGPU_INFO_MMR_SE_INDEX_SHIFT 0
 #define AMDGPU_INFO_MMR_SE_INDEX_MASK 0xff
 #define AMDGPU_INFO_MMR_SH_INDEX_SHIFT 8
@@ -616,7 +632,7 @@
   __u32 enabled_rb_pipes_mask;
   __u32 num_rb_pipes;
   __u32 num_hw_gfx_contexts;
-  __u32 _pad;
+  __u32 pcie_gen;
   __u64 ids_flags;
   __u64 virtual_address_offset;
   __u64 virtual_address_max;
@@ -643,12 +659,26 @@
   __u32 gs_vgt_table_depth;
   __u32 gs_prim_buffer_depth;
   __u32 max_gs_waves_per_vgt;
-  __u32 _pad1;
+  __u32 pcie_num_lanes;
   __u32 cu_ao_bitmap[4][4];
   __u64 high_va_offset;
   __u64 high_va_max;
   __u32 pa_sc_tile_steering_override;
   __u64 tcc_disabled_mask;
+  __u64 min_engine_clock;
+  __u64 min_memory_clock;
+  __u32 tcp_cache_size;
+  __u32 num_sqc_per_wgp;
+  __u32 sqc_data_cache_size;
+  __u32 sqc_inst_cache_size;
+  __u32 gl1c_cache_size;
+  __u32 gl2c_cache_size;
+  __u64 mall_size;
+  __u32 enabled_rb_pipes_mask_hi;
+  __u32 shadow_size;
+  __u32 shadow_alignment;
+  __u32 csa_size;
+  __u32 csa_alignment;
 };
 struct drm_amdgpu_info_hw_ip {
   __u32 hw_ip_version_major;
@@ -695,6 +725,18 @@
 struct drm_amdgpu_info_video_caps {
   struct drm_amdgpu_info_video_codec_info codec_info[AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_COUNT];
 };
+#define AMDGPU_VMHUB_TYPE_MASK 0xff
+#define AMDGPU_VMHUB_TYPE_SHIFT 0
+#define AMDGPU_VMHUB_TYPE_GFX 0
+#define AMDGPU_VMHUB_TYPE_MM0 1
+#define AMDGPU_VMHUB_TYPE_MM1 2
+#define AMDGPU_VMHUB_IDX_MASK 0xff00
+#define AMDGPU_VMHUB_IDX_SHIFT 8
+struct drm_amdgpu_info_gpuvm_fault {
+  __u64 addr;
+  __u32 status;
+  __u32 vmhub;
+};
 #define AMDGPU_FAMILY_UNKNOWN 0
 #define AMDGPU_FAMILY_SI 110
 #define AMDGPU_FAMILY_CI 120
@@ -710,6 +752,11 @@
 #define AMDGPU_FAMILY_GC_11_0_1 148
 #define AMDGPU_FAMILY_GC_10_3_6 149
 #define AMDGPU_FAMILY_GC_10_3_7 151
+#define AMDGPU_FAMILY_GC_11_5_0 150
+#define AMDGPU_FAMILY_GC_12_0_0 152
+struct drm_color_ctm_3x4 {
+  __u64 matrix[12];
+};
 #ifdef __cplusplus
 }
 #endif
diff --git a/libc/kernel/uapi/drm/armada_drm.h b/libc/kernel/uapi/drm/armada_drm.h
index aabd23b..91ab468 100644
--- a/libc/kernel/uapi/drm/armada_drm.h
+++ b/libc/kernel/uapi/drm/armada_drm.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef DRM_ARMADA_IOCTL_H
 #define DRM_ARMADA_IOCTL_H
 #include "drm.h"
diff --git a/libc/kernel/uapi/drm/drm.h b/libc/kernel/uapi/drm/drm.h
index 1954452..c8fab3c 100644
--- a/libc/kernel/uapi/drm/drm.h
+++ b/libc/kernel/uapi/drm/drm.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _DRM_H_
 #define _DRM_H_
 #ifdef __linux__
@@ -365,6 +353,7 @@
 #define DRM_CAP_CRTC_IN_VBLANK_EVENT 0x12
 #define DRM_CAP_SYNCOBJ 0x13
 #define DRM_CAP_SYNCOBJ_TIMELINE 0x14
+#define DRM_CAP_ATOMIC_ASYNC_PAGE_FLIP 0x15
 struct drm_get_cap {
   __u64 capability;
   __u64 value;
@@ -374,6 +363,7 @@
 #define DRM_CLIENT_CAP_ATOMIC 3
 #define DRM_CLIENT_CAP_ASPECT_RATIO 4
 #define DRM_CLIENT_CAP_WRITEBACK_CONNECTORS 5
+#define DRM_CLIENT_CAP_CURSOR_PLANE_HOTSPOT 6
 struct drm_set_client_cap {
   __u64 capability;
   __u64 value;
@@ -413,6 +403,7 @@
 #define DRM_SYNCOBJ_WAIT_FLAGS_WAIT_ALL (1 << 0)
 #define DRM_SYNCOBJ_WAIT_FLAGS_WAIT_FOR_SUBMIT (1 << 1)
 #define DRM_SYNCOBJ_WAIT_FLAGS_WAIT_AVAILABLE (1 << 2)
+#define DRM_SYNCOBJ_WAIT_FLAGS_WAIT_DEADLINE (1 << 3)
 struct drm_syncobj_wait {
   __u64 handles;
   __s64 timeout_nsec;
@@ -420,6 +411,7 @@
   __u32 flags;
   __u32 first_signaled;
   __u32 pad;
+  __u64 deadline_nsec;
 };
 struct drm_syncobj_timeline_wait {
   __u64 handles;
@@ -429,6 +421,14 @@
   __u32 flags;
   __u32 first_signaled;
   __u32 pad;
+  __u64 deadline_nsec;
+};
+struct drm_syncobj_eventfd {
+  __u32 handle;
+  __u32 flags;
+  __u64 point;
+  __s32 fd;
+  __u32 pad;
 };
 struct drm_syncobj_array {
   __u64 handles;
@@ -574,6 +574,8 @@
 #define DRM_IOCTL_SYNCOBJ_TRANSFER DRM_IOWR(0xCC, struct drm_syncobj_transfer)
 #define DRM_IOCTL_SYNCOBJ_TIMELINE_SIGNAL DRM_IOWR(0xCD, struct drm_syncobj_timeline_array)
 #define DRM_IOCTL_MODE_GETFB2 DRM_IOWR(0xCE, struct drm_mode_fb_cmd2)
+#define DRM_IOCTL_SYNCOBJ_EVENTFD DRM_IOWR(0xCF, struct drm_syncobj_eventfd)
+#define DRM_IOCTL_MODE_CLOSEFB DRM_IOWR(0xD0, struct drm_mode_closefb)
 #define DRM_COMMAND_BASE 0x40
 #define DRM_COMMAND_END 0xA0
 struct drm_event {
diff --git a/libc/kernel/uapi/drm/drm_fourcc.h b/libc/kernel/uapi/drm/drm_fourcc.h
index ea9525d..4902d6c 100644
--- a/libc/kernel/uapi/drm/drm_fourcc.h
+++ b/libc/kernel/uapi/drm/drm_fourcc.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef DRM_FOURCC_H
 #define DRM_FOURCC_H
 #include "drm.h"
@@ -131,6 +119,8 @@
 #define DRM_FORMAT_NV24 fourcc_code('N', 'V', '2', '4')
 #define DRM_FORMAT_NV42 fourcc_code('N', 'V', '4', '2')
 #define DRM_FORMAT_NV15 fourcc_code('N', 'V', '1', '5')
+#define DRM_FORMAT_NV20 fourcc_code('N', 'V', '2', '0')
+#define DRM_FORMAT_NV30 fourcc_code('N', 'V', '3', '0')
 #define DRM_FORMAT_P210 fourcc_code('P', '2', '1', '0')
 #define DRM_FORMAT_P010 fourcc_code('P', '0', '1', '0')
 #define DRM_FORMAT_P012 fourcc_code('P', '0', '1', '2')
@@ -179,6 +169,9 @@
 #define I915_FORMAT_MOD_4_TILED_DG2_RC_CCS fourcc_mod_code(INTEL, 10)
 #define I915_FORMAT_MOD_4_TILED_DG2_MC_CCS fourcc_mod_code(INTEL, 11)
 #define I915_FORMAT_MOD_4_TILED_DG2_RC_CCS_CC fourcc_mod_code(INTEL, 12)
+#define I915_FORMAT_MOD_4_TILED_MTL_RC_CCS fourcc_mod_code(INTEL, 13)
+#define I915_FORMAT_MOD_4_TILED_MTL_MC_CCS fourcc_mod_code(INTEL, 14)
+#define I915_FORMAT_MOD_4_TILED_MTL_RC_CCS_CC fourcc_mod_code(INTEL, 15)
 #define DRM_FORMAT_MOD_SAMSUNG_64_32_TILE fourcc_mod_code(SAMSUNG, 1)
 #define DRM_FORMAT_MOD_SAMSUNG_16_16_TILE fourcc_mod_code(SAMSUNG, 2)
 #define DRM_FORMAT_MOD_QCOM_COMPRESSED fourcc_mod_code(QCOM, 1)
@@ -262,12 +255,17 @@
 #define AMD_FMT_MOD_TILE_VER_GFX10 2
 #define AMD_FMT_MOD_TILE_VER_GFX10_RBPLUS 3
 #define AMD_FMT_MOD_TILE_VER_GFX11 4
+#define AMD_FMT_MOD_TILE_VER_GFX12 5
 #define AMD_FMT_MOD_TILE_GFX9_64K_S 9
 #define AMD_FMT_MOD_TILE_GFX9_64K_D 10
 #define AMD_FMT_MOD_TILE_GFX9_64K_S_X 25
 #define AMD_FMT_MOD_TILE_GFX9_64K_D_X 26
 #define AMD_FMT_MOD_TILE_GFX9_64K_R_X 27
 #define AMD_FMT_MOD_TILE_GFX11_256K_R_X 31
+#define AMD_FMT_MOD_TILE_GFX12_256B_2D 1
+#define AMD_FMT_MOD_TILE_GFX12_4K_2D 2
+#define AMD_FMT_MOD_TILE_GFX12_64K_2D 3
+#define AMD_FMT_MOD_TILE_GFX12_256K_2D 4
 #define AMD_FMT_MOD_DCC_BLOCK_64B 0
 #define AMD_FMT_MOD_DCC_BLOCK_128B 1
 #define AMD_FMT_MOD_DCC_BLOCK_256B 2
diff --git a/libc/kernel/uapi/drm/drm_mode.h b/libc/kernel/uapi/drm/drm_mode.h
index 9a6a6d9..06c91c5 100644
--- a/libc/kernel/uapi/drm/drm_mode.h
+++ b/libc/kernel/uapi/drm/drm_mode.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _DRM_MODE_H
 #define _DRM_MODE_H
 #include "drm.h"
@@ -375,6 +363,10 @@
   __u16 blue;
   __u16 reserved;
 };
+struct drm_plane_size_hint {
+  __u16 width;
+  __u16 height;
+};
 struct hdr_metadata_infoframe {
   __u8 eotf;
   __u8 metadata_type;
@@ -495,6 +487,10 @@
   __s32 x2;
   __s32 y2;
 };
+struct drm_mode_closefb {
+  __u32 fb_id;
+  __u32 pad;
+};
 #ifdef __cplusplus
 }
 #endif
diff --git a/libc/kernel/uapi/drm/drm_sarea.h b/libc/kernel/uapi/drm/drm_sarea.h
index a0c7f3a..abe9191 100644
--- a/libc/kernel/uapi/drm/drm_sarea.h
+++ b/libc/kernel/uapi/drm/drm_sarea.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _DRM_SAREA_H_
 #define _DRM_SAREA_H_
 #include "drm.h"
diff --git a/libc/kernel/uapi/drm/etnaviv_drm.h b/libc/kernel/uapi/drm/etnaviv_drm.h
index 7f8d5fa..2fe61d6 100644
--- a/libc/kernel/uapi/drm/etnaviv_drm.h
+++ b/libc/kernel/uapi/drm/etnaviv_drm.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __ETNAVIV_DRM_H__
 #define __ETNAVIV_DRM_H__
 #include "drm.h"
diff --git a/libc/kernel/uapi/drm/exynos_drm.h b/libc/kernel/uapi/drm/exynos_drm.h
index 4918035..cd4ab16 100644
--- a/libc/kernel/uapi/drm/exynos_drm.h
+++ b/libc/kernel/uapi/drm/exynos_drm.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_EXYNOS_DRM_H_
 #define _UAPI_EXYNOS_DRM_H_
 #include "drm.h"
diff --git a/libc/kernel/uapi/misc/habanalabs.h b/libc/kernel/uapi/drm/habanalabs_accel.h
similarity index 91%
rename from libc/kernel/uapi/misc/habanalabs.h
rename to libc/kernel/uapi/drm/habanalabs_accel.h
index b25c833..47afb82 100644
--- a/libc/kernel/uapi/misc/habanalabs.h
+++ b/libc/kernel/uapi/drm/habanalabs_accel.h
@@ -1,25 +1,12 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef HABANALABS_H_
 #define HABANALABS_H_
-#include <linux/types.h>
-#include <linux/ioctl.h>
+#include <drm/drm.h>
 #define GOYA_KMD_SRAM_RESERVED_SIZE_FROM_START 0x8000
 #define GAUDI_DRIVER_SRAM_RESERVED_SIZE_FROM_START 0x80
 #define GAUDI_FIRST_AVAILABLE_W_S_SYNC_OBJECT 144
@@ -619,7 +606,8 @@
   HL_SERVER_GAUDI_HLS1H = 2,
   HL_SERVER_GAUDI_TYPE1 = 3,
   HL_SERVER_GAUDI_TYPE2 = 4,
-  HL_SERVER_GAUDI2_HLS2 = 5
+  HL_SERVER_GAUDI2_HLS2 = 5,
+  HL_SERVER_GAUDI2_TYPE1 = 7
 };
 #define HL_NOTIFIER_EVENT_TPC_ASSERT (1ULL << 0)
 #define HL_NOTIFIER_EVENT_UNDEFINED_OPCODE (1ULL << 1)
@@ -630,6 +618,8 @@
 #define HL_NOTIFIER_EVENT_GENERAL_HW_ERR (1ULL << 6)
 #define HL_NOTIFIER_EVENT_RAZWI (1ULL << 7)
 #define HL_NOTIFIER_EVENT_PAGE_FAULT (1ULL << 8)
+#define HL_NOTIFIER_EVENT_CRITICL_HW_ERR (1ULL << 9)
+#define HL_NOTIFIER_EVENT_CRITICL_FW_ERR (1ULL << 10)
 #define HL_INFO_HW_IP_INFO 0
 #define HL_INFO_HW_EVENTS 1
 #define HL_INFO_DRAM_USAGE 2
@@ -662,6 +652,11 @@
 #define HL_INFO_ENGINE_STATUS 32
 #define HL_INFO_PAGE_FAULT_EVENT 33
 #define HL_INFO_USER_MAPPINGS 34
+#define HL_INFO_FW_GENERIC_REQ 35
+#define HL_INFO_HW_ERR_EVENT 36
+#define HL_INFO_FW_ERR_EVENT 37
+#define HL_INFO_USER_ENGINE_ERR_EVENT 38
+#define HL_INFO_DEV_SIGNED 40
 #define HL_INFO_VERSION_MAX_LEN 128
 #define HL_INFO_CARD_NAME_MAX_LEN 16
 #define HL_ENGINES_DATA_MAX_SIZE SZ_1M
@@ -691,15 +686,20 @@
   __u64 dram_page_size;
   __u32 edma_enabled_mask;
   __u16 number_of_user_interrupts;
-  __u16 pad2;
-  __u64 reserved4;
+  __u8 reserved1;
+  __u8 reserved2;
+  __u64 reserved3;
   __u64 device_mem_alloc_default_page_size;
+  __u64 reserved4;
   __u64 reserved5;
-  __u64 reserved6;
-  __u32 reserved7;
-  __u8 reserved8;
+  __u32 reserved6;
+  __u8 reserved7;
   __u8 revision_id;
-  __u8 pad[2];
+  __u16 tpc_interrupt_id;
+  __u32 rotator_enabled_mask;
+  __u32 reserved9;
+  __u64 engine_core_interrupt_reg_addr;
+  __u64 reserved_dram_size;
 };
 struct hl_info_dram_usage {
   __u64 dram_free_mem;
@@ -730,6 +730,7 @@
 struct hl_info_time_sync {
   __u64 device_time;
   __u64 host_time;
+  __u64 tsc_time;
 };
 struct hl_info_pci_counters {
   __u64 rx_throughput;
@@ -820,6 +821,27 @@
   __u32 engine_id;
   __u32 stream_id;
 };
+struct hl_info_hw_err_event {
+  __s64 timestamp;
+  __u16 event_id;
+  __u16 pad[3];
+};
+enum hl_info_fw_err_type {
+  HL_INFO_FW_HEARTBEAT_ERR,
+  HL_INFO_FW_REPORTED_ERR,
+};
+struct hl_info_fw_err_event {
+  __s64 timestamp;
+  __u16 err_type;
+  __u16 event_id;
+  __u32 pad;
+};
+struct hl_info_engine_err_event {
+  __s64 timestamp;
+  __u16 engine_id;
+  __u16 error_count;
+  __u32 pad;
+};
 struct hl_info_dev_memalloc_page_sizes {
   __u64 page_order_bitmask;
 };
@@ -828,6 +850,7 @@
 #define SEC_SIGNATURE_BUF_SZ 255
 #define SEC_PUB_DATA_BUF_SZ 510
 #define SEC_CERTIFICATE_BUF_SZ 2046
+#define SEC_DEV_INFO_BUF_SZ 5120
 struct hl_info_sec_attest {
   __u32 nonce;
   __u16 pcr_quote_len;
@@ -843,6 +866,18 @@
   __u8 certificate[SEC_CERTIFICATE_BUF_SZ];
   __u8 pad0[2];
 };
+struct hl_info_signed {
+  __u32 nonce;
+  __u16 pub_data_len;
+  __u16 certificate_len;
+  __u8 info_sig_len;
+  __u8 public_data[SEC_PUB_DATA_BUF_SZ];
+  __u8 certificate[SEC_CERTIFICATE_BUF_SZ];
+  __u8 info_sig[SEC_SIGNATURE_BUF_SZ];
+  __u16 dev_info_len;
+  __u8 dev_info[SEC_DEV_INFO_BUF_SZ];
+  __u8 pad[2];
+};
 struct hl_page_fault_info {
   __s64 timestamp;
   __u64 addr;
@@ -872,6 +907,7 @@
     __u32 user_buffer_actual_size;
     __u32 sec_attest_nonce;
     __u32 array_size;
+    __u32 fw_sub_opcode;
   };
   __u32 pad;
 };
@@ -935,10 +971,17 @@
 #define HL_CS_FLAGS_RESERVE_SIGNALS_ONLY 0x1000
 #define HL_CS_FLAGS_UNRESERVE_SIGNALS_ONLY 0x2000
 #define HL_CS_FLAGS_ENGINE_CORE_COMMAND 0x4000
+#define HL_CS_FLAGS_FLUSH_PCI_HBW_WRITES 0x8000
+#define HL_CS_FLAGS_ENGINES_COMMAND 0x10000
 #define HL_CS_STATUS_SUCCESS 0
 #define HL_MAX_JOBS_PER_CS 512
-#define HL_ENGINE_CORE_HALT (1 << 0)
-#define HL_ENGINE_CORE_RUN (1 << 1)
+enum hl_engine_command {
+  HL_ENGINE_CORE_HALT = 1,
+  HL_ENGINE_CORE_RUN = 2,
+  HL_ENGINE_STALL = 3,
+  HL_ENGINE_RESUME = 4,
+  HL_ENGINE_COMMAND_MAX
+};
 struct hl_cs_in {
   union {
     struct {
@@ -950,6 +993,11 @@
       __u32 num_engine_cores;
       __u32 core_command;
     };
+    struct {
+      __u64 engines;
+      __u32 num_engines;
+      __u32 engine_command;
+    };
   };
   union {
     __u64 seq;
@@ -1072,8 +1120,9 @@
       __u64 device_virt_addr;
     } unmap;
     struct {
-      __u64 handle;
+      __u64 addr;
       __u64 mem_size;
+      __u64 offset;
     } export_dmabuf_fd;
   };
   __u32 op;
@@ -1155,12 +1204,18 @@
   __u32 enable;
   __u32 ctx_id;
 };
-#define HL_IOCTL_INFO _IOWR('H', 0x01, struct hl_info_args)
-#define HL_IOCTL_CB _IOWR('H', 0x02, union hl_cb_args)
-#define HL_IOCTL_CS _IOWR('H', 0x03, union hl_cs_args)
-#define HL_IOCTL_WAIT_CS _IOWR('H', 0x04, union hl_wait_cs_args)
-#define HL_IOCTL_MEMORY _IOWR('H', 0x05, union hl_mem_args)
-#define HL_IOCTL_DEBUG _IOWR('H', 0x06, struct hl_debug_args)
-#define HL_COMMAND_START 0x01
-#define HL_COMMAND_END 0x07
+#define HL_IOCTL_INFO 0x00
+#define HL_IOCTL_CB 0x01
+#define HL_IOCTL_CS 0x02
+#define HL_IOCTL_WAIT_CS 0x03
+#define HL_IOCTL_MEMORY 0x04
+#define HL_IOCTL_DEBUG 0x05
+#define DRM_IOCTL_HL_INFO DRM_IOWR(DRM_COMMAND_BASE + HL_IOCTL_INFO, struct hl_info_args)
+#define DRM_IOCTL_HL_CB DRM_IOWR(DRM_COMMAND_BASE + HL_IOCTL_CB, union hl_cb_args)
+#define DRM_IOCTL_HL_CS DRM_IOWR(DRM_COMMAND_BASE + HL_IOCTL_CS, union hl_cs_args)
+#define DRM_IOCTL_HL_WAIT_CS DRM_IOWR(DRM_COMMAND_BASE + HL_IOCTL_WAIT_CS, union hl_wait_cs_args)
+#define DRM_IOCTL_HL_MEMORY DRM_IOWR(DRM_COMMAND_BASE + HL_IOCTL_MEMORY, union hl_mem_args)
+#define DRM_IOCTL_HL_DEBUG DRM_IOWR(DRM_COMMAND_BASE + HL_IOCTL_DEBUG, struct hl_debug_args)
+#define HL_COMMAND_START (DRM_COMMAND_BASE + HL_IOCTL_INFO)
+#define HL_COMMAND_END (DRM_COMMAND_BASE + HL_IOCTL_DEBUG + 1)
 #endif
diff --git a/libc/kernel/uapi/drm/i810_drm.h b/libc/kernel/uapi/drm/i810_drm.h
deleted file mode 100644
index e33387d..0000000
--- a/libc/kernel/uapi/drm/i810_drm.h
+++ /dev/null
@@ -1,220 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef _I810_DRM_H_
-#define _I810_DRM_H_
-#include "drm.h"
-#ifdef __cplusplus
-extern "C" {
-#endif
-#ifndef _I810_DEFINES_
-#define _I810_DEFINES_
-#define I810_DMA_BUF_ORDER 12
-#define I810_DMA_BUF_SZ (1 << I810_DMA_BUF_ORDER)
-#define I810_DMA_BUF_NR 256
-#define I810_NR_SAREA_CLIPRECTS 8
-#define I810_NR_TEX_REGIONS 64
-#define I810_LOG_MIN_TEX_REGION_SIZE 16
-#endif
-#define I810_UPLOAD_TEX0IMAGE 0x1
-#define I810_UPLOAD_TEX1IMAGE 0x2
-#define I810_UPLOAD_CTX 0x4
-#define I810_UPLOAD_BUFFERS 0x8
-#define I810_UPLOAD_TEX0 0x10
-#define I810_UPLOAD_TEX1 0x20
-#define I810_UPLOAD_CLIPRECTS 0x40
-#define I810_DESTREG_DI0 0
-#define I810_DESTREG_DI1 1
-#define I810_DESTREG_DV0 2
-#define I810_DESTREG_DV1 3
-#define I810_DESTREG_DR0 4
-#define I810_DESTREG_DR1 5
-#define I810_DESTREG_DR2 6
-#define I810_DESTREG_DR3 7
-#define I810_DESTREG_DR4 8
-#define I810_DEST_SETUP_SIZE 10
-#define I810_CTXREG_CF0 0
-#define I810_CTXREG_CF1 1
-#define I810_CTXREG_ST0 2
-#define I810_CTXREG_ST1 3
-#define I810_CTXREG_VF 4
-#define I810_CTXREG_MT 5
-#define I810_CTXREG_MC0 6
-#define I810_CTXREG_MC1 7
-#define I810_CTXREG_MC2 8
-#define I810_CTXREG_MA0 9
-#define I810_CTXREG_MA1 10
-#define I810_CTXREG_MA2 11
-#define I810_CTXREG_SDM 12
-#define I810_CTXREG_FOG 13
-#define I810_CTXREG_B1 14
-#define I810_CTXREG_B2 15
-#define I810_CTXREG_LCS 16
-#define I810_CTXREG_PV 17
-#define I810_CTXREG_ZA 18
-#define I810_CTXREG_AA 19
-#define I810_CTX_SETUP_SIZE 20
-#define I810_TEXREG_MI0 0
-#define I810_TEXREG_MI1 1
-#define I810_TEXREG_MI2 2
-#define I810_TEXREG_MI3 3
-#define I810_TEXREG_MF 4
-#define I810_TEXREG_MLC 5
-#define I810_TEXREG_MLL 6
-#define I810_TEXREG_MCS 7
-#define I810_TEX_SETUP_SIZE 8
-#define I810_FRONT 0x1
-#define I810_BACK 0x2
-#define I810_DEPTH 0x4
-typedef enum _drm_i810_init_func {
-  I810_INIT_DMA = 0x01,
-  I810_CLEANUP_DMA = 0x02,
-  I810_INIT_DMA_1_4 = 0x03
-} drm_i810_init_func_t;
-typedef struct _drm_i810_init {
-  drm_i810_init_func_t func;
-  unsigned int mmio_offset;
-  unsigned int buffers_offset;
-  int sarea_priv_offset;
-  unsigned int ring_start;
-  unsigned int ring_end;
-  unsigned int ring_size;
-  unsigned int front_offset;
-  unsigned int back_offset;
-  unsigned int depth_offset;
-  unsigned int overlay_offset;
-  unsigned int overlay_physical;
-  unsigned int w;
-  unsigned int h;
-  unsigned int pitch;
-  unsigned int pitch_bits;
-} drm_i810_init_t;
-typedef struct _drm_i810_pre12_init {
-  drm_i810_init_func_t func;
-  unsigned int mmio_offset;
-  unsigned int buffers_offset;
-  int sarea_priv_offset;
-  unsigned int ring_start;
-  unsigned int ring_end;
-  unsigned int ring_size;
-  unsigned int front_offset;
-  unsigned int back_offset;
-  unsigned int depth_offset;
-  unsigned int w;
-  unsigned int h;
-  unsigned int pitch;
-  unsigned int pitch_bits;
-} drm_i810_pre12_init_t;
-typedef struct _drm_i810_tex_region {
-  unsigned char next, prev;
-  unsigned char in_use;
-  int age;
-} drm_i810_tex_region_t;
-typedef struct _drm_i810_sarea {
-  unsigned int ContextState[I810_CTX_SETUP_SIZE];
-  unsigned int BufferState[I810_DEST_SETUP_SIZE];
-  unsigned int TexState[2][I810_TEX_SETUP_SIZE];
-  unsigned int dirty;
-  unsigned int nbox;
-  struct drm_clip_rect boxes[I810_NR_SAREA_CLIPRECTS];
-  drm_i810_tex_region_t texList[I810_NR_TEX_REGIONS + 1];
-  int texAge;
-  int last_enqueue;
-  int last_dispatch;
-  int last_quiescent;
-  int ctxOwner;
-  int vertex_prim;
-  int pf_enabled;
-  int pf_active;
-  int pf_current_page;
-} drm_i810_sarea_t;
-#define DRM_I810_INIT 0x00
-#define DRM_I810_VERTEX 0x01
-#define DRM_I810_CLEAR 0x02
-#define DRM_I810_FLUSH 0x03
-#define DRM_I810_GETAGE 0x04
-#define DRM_I810_GETBUF 0x05
-#define DRM_I810_SWAP 0x06
-#define DRM_I810_COPY 0x07
-#define DRM_I810_DOCOPY 0x08
-#define DRM_I810_OV0INFO 0x09
-#define DRM_I810_FSTATUS 0x0a
-#define DRM_I810_OV0FLIP 0x0b
-#define DRM_I810_MC 0x0c
-#define DRM_I810_RSTATUS 0x0d
-#define DRM_I810_FLIP 0x0e
-#define DRM_IOCTL_I810_INIT DRM_IOW(DRM_COMMAND_BASE + DRM_I810_INIT, drm_i810_init_t)
-#define DRM_IOCTL_I810_VERTEX DRM_IOW(DRM_COMMAND_BASE + DRM_I810_VERTEX, drm_i810_vertex_t)
-#define DRM_IOCTL_I810_CLEAR DRM_IOW(DRM_COMMAND_BASE + DRM_I810_CLEAR, drm_i810_clear_t)
-#define DRM_IOCTL_I810_FLUSH DRM_IO(DRM_COMMAND_BASE + DRM_I810_FLUSH)
-#define DRM_IOCTL_I810_GETAGE DRM_IO(DRM_COMMAND_BASE + DRM_I810_GETAGE)
-#define DRM_IOCTL_I810_GETBUF DRM_IOWR(DRM_COMMAND_BASE + DRM_I810_GETBUF, drm_i810_dma_t)
-#define DRM_IOCTL_I810_SWAP DRM_IO(DRM_COMMAND_BASE + DRM_I810_SWAP)
-#define DRM_IOCTL_I810_COPY DRM_IOW(DRM_COMMAND_BASE + DRM_I810_COPY, drm_i810_copy_t)
-#define DRM_IOCTL_I810_DOCOPY DRM_IO(DRM_COMMAND_BASE + DRM_I810_DOCOPY)
-#define DRM_IOCTL_I810_OV0INFO DRM_IOR(DRM_COMMAND_BASE + DRM_I810_OV0INFO, drm_i810_overlay_t)
-#define DRM_IOCTL_I810_FSTATUS DRM_IO(DRM_COMMAND_BASE + DRM_I810_FSTATUS)
-#define DRM_IOCTL_I810_OV0FLIP DRM_IO(DRM_COMMAND_BASE + DRM_I810_OV0FLIP)
-#define DRM_IOCTL_I810_MC DRM_IOW(DRM_COMMAND_BASE + DRM_I810_MC, drm_i810_mc_t)
-#define DRM_IOCTL_I810_RSTATUS DRM_IO(DRM_COMMAND_BASE + DRM_I810_RSTATUS)
-#define DRM_IOCTL_I810_FLIP DRM_IO(DRM_COMMAND_BASE + DRM_I810_FLIP)
-typedef struct _drm_i810_clear {
-  int clear_color;
-  int clear_depth;
-  int flags;
-} drm_i810_clear_t;
-typedef struct _drm_i810_vertex {
-  int idx;
-  int used;
-  int discard;
-} drm_i810_vertex_t;
-typedef struct _drm_i810_copy_t {
-  int idx;
-  int used;
-  void * address;
-} drm_i810_copy_t;
-#define PR_TRIANGLES (0x0 << 18)
-#define PR_TRISTRIP_0 (0x1 << 18)
-#define PR_TRISTRIP_1 (0x2 << 18)
-#define PR_TRIFAN (0x3 << 18)
-#define PR_POLYGON (0x4 << 18)
-#define PR_LINES (0x5 << 18)
-#define PR_LINESTRIP (0x6 << 18)
-#define PR_RECTS (0x7 << 18)
-#define PR_MASK (0x7 << 18)
-typedef struct drm_i810_dma {
-  void * __linux_virtual;
-  int request_idx;
-  int request_size;
-  int granted;
-} drm_i810_dma_t;
-typedef struct _drm_i810_overlay_t {
-  unsigned int offset;
-  unsigned int physical;
-} drm_i810_overlay_t;
-typedef struct _drm_i810_mc {
-  int idx;
-  int used;
-  int num_blocks;
-  int * length;
-  unsigned int last_render;
-} drm_i810_mc_t;
-#ifdef __cplusplus
-}
-#endif
-#endif
diff --git a/libc/kernel/uapi/drm/i915_drm.h b/libc/kernel/uapi/drm/i915_drm.h
index 794e784..b43d8df 100644
--- a/libc/kernel/uapi/drm/i915_drm.h
+++ b/libc/kernel/uapi/drm/i915_drm.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_I915_DRM_H_
 #define _UAPI_I915_DRM_H_
 #include "drm.h"
@@ -59,17 +47,24 @@
 #define I915_PMU_SAMPLE_MASK (0xf)
 #define I915_PMU_SAMPLE_INSTANCE_BITS (8)
 #define I915_PMU_CLASS_SHIFT (I915_PMU_SAMPLE_BITS + I915_PMU_SAMPLE_INSTANCE_BITS)
-#define __I915_PMU_ENGINE(class,instance,sample) ((class) << I915_PMU_CLASS_SHIFT | (instance) << I915_PMU_SAMPLE_BITS | (sample))
-#define I915_PMU_ENGINE_BUSY(class,instance) __I915_PMU_ENGINE(class, instance, I915_SAMPLE_BUSY)
-#define I915_PMU_ENGINE_WAIT(class,instance) __I915_PMU_ENGINE(class, instance, I915_SAMPLE_WAIT)
-#define I915_PMU_ENGINE_SEMA(class,instance) __I915_PMU_ENGINE(class, instance, I915_SAMPLE_SEMA)
-#define __I915_PMU_OTHER(x) (__I915_PMU_ENGINE(0xff, 0xff, 0xf) + 1 + (x))
+#define __I915_PMU_ENGINE(__linux_class,instance,sample) ((__linux_class) << I915_PMU_CLASS_SHIFT | (instance) << I915_PMU_SAMPLE_BITS | (sample))
+#define I915_PMU_ENGINE_BUSY(__linux_class,instance) __I915_PMU_ENGINE(__linux_class, instance, I915_SAMPLE_BUSY)
+#define I915_PMU_ENGINE_WAIT(__linux_class,instance) __I915_PMU_ENGINE(__linux_class, instance, I915_SAMPLE_WAIT)
+#define I915_PMU_ENGINE_SEMA(__linux_class,instance) __I915_PMU_ENGINE(__linux_class, instance, I915_SAMPLE_SEMA)
+#define __I915_PMU_GT_SHIFT (60)
+#define ___I915_PMU_OTHER(gt,x) (((__u64) __I915_PMU_ENGINE(0xff, 0xff, 0xf) + 1 + (x)) | ((__u64) (gt) << __I915_PMU_GT_SHIFT))
+#define __I915_PMU_OTHER(x) ___I915_PMU_OTHER(0, x)
 #define I915_PMU_ACTUAL_FREQUENCY __I915_PMU_OTHER(0)
 #define I915_PMU_REQUESTED_FREQUENCY __I915_PMU_OTHER(1)
 #define I915_PMU_INTERRUPTS __I915_PMU_OTHER(2)
 #define I915_PMU_RC6_RESIDENCY __I915_PMU_OTHER(3)
 #define I915_PMU_SOFTWARE_GT_AWAKE_TIME __I915_PMU_OTHER(4)
 #define I915_PMU_LAST I915_PMU_RC6_RESIDENCY
+#define __I915_PMU_ACTUAL_FREQUENCY(gt) ___I915_PMU_OTHER(gt, 0)
+#define __I915_PMU_REQUESTED_FREQUENCY(gt) ___I915_PMU_OTHER(gt, 1)
+#define __I915_PMU_INTERRUPTS(gt) ___I915_PMU_OTHER(gt, 2)
+#define __I915_PMU_RC6_RESIDENCY(gt) ___I915_PMU_OTHER(gt, 3)
+#define __I915_PMU_SOFTWARE_GT_AWAKE_TIME(gt) ___I915_PMU_OTHER(gt, 4)
 #define I915_NR_TEX_REGIONS 255
 #define I915_LOG_MIN_TEX_REGION_SIZE 14
 typedef struct _drm_i915_init {
@@ -369,6 +364,8 @@
 #define I915_PARAM_HAS_EXEC_TIMELINE_FENCES 55
 #define I915_PARAM_HAS_USERPTR_PROBE 56
 #define I915_PARAM_OA_TIMESTAMP_FREQUENCY 57
+#define I915_PARAM_PXP_STATUS 58
+#define I915_PARAM_HAS_CONTEXT_FREQ_HINT 59
 struct drm_i915_getparam {
   __s32 param;
   int  * value;
@@ -747,6 +744,8 @@
 #define I915_CONTEXT_PARAM_PERSISTENCE 0xb
 #define I915_CONTEXT_PARAM_RINGSIZE 0xc
 #define I915_CONTEXT_PARAM_PROTECTED_CONTENT 0xd
+#define I915_CONTEXT_PARAM_LOW_LATENCY 0xe
+#define I915_CONTEXT_PARAM_CONTEXT_IMAGE 0xf
   __u64 value;
 };
 struct drm_i915_gem_context_param_sseu {
@@ -797,10 +796,18 @@
 #define I915_CONTEXT_ENGINES_EXT_LOAD_BALANCE 0
 #define I915_CONTEXT_ENGINES_EXT_BOND 1
 #define I915_CONTEXT_ENGINES_EXT_PARALLEL_SUBMIT 2
-  struct i915_engine_class_instance engines[0];
+  struct i915_engine_class_instance engines[];
 } __attribute__((packed));
 #define I915_DEFINE_CONTEXT_PARAM_ENGINES(name__,N__) struct { __u64 extensions; struct i915_engine_class_instance engines[N__]; \
 } __attribute__((packed)) name__
+struct i915_gem_context_param_context_image {
+  struct i915_engine_class_instance engine;
+  __u32 flags;
+#define I915_CONTEXT_IMAGE_FLAG_ENGINE_INDEX (1u << 0)
+  __u32 size;
+  __u32 mbz;
+  __u64 image;
+} __attribute__((packed));
 struct drm_i915_gem_context_create_ext_setparam {
   struct i915_user_extension base;
   struct drm_i915_gem_context_param param;
@@ -849,6 +856,8 @@
   I915_OA_FORMAT_A32u40_A4u32_B8_C8,
   I915_OAR_FORMAT_A32u40_A4u32_B8_C8,
   I915_OA_FORMAT_A24u40_A14u32_B8_C8,
+  I915_OAM_FORMAT_MPEC8u64_B8_C8,
+  I915_OAM_FORMAT_MPEC8u32_B8_C8,
   I915_OA_FORMAT_MAX
 };
 enum drm_i915_perf_property_id {
@@ -860,6 +869,8 @@
   DRM_I915_PERF_PROP_HOLD_PREEMPTION,
   DRM_I915_PERF_PROP_GLOBAL_SSEU,
   DRM_I915_PERF_PROP_POLL_OA_PERIOD,
+  DRM_I915_PERF_PROP_OA_ENGINE_CLASS,
+  DRM_I915_PERF_PROP_OA_ENGINE_INSTANCE,
   DRM_I915_PERF_PROP_MAX
 };
 struct drm_i915_perf_open_param {
@@ -901,6 +912,7 @@
 #define DRM_I915_QUERY_MEMORY_REGIONS 4
 #define DRM_I915_QUERY_HWCONFIG_BLOB 5
 #define DRM_I915_QUERY_GEOMETRY_SUBSLICES 6
+#define DRM_I915_QUERY_GUC_SUBMISSION_VERSION 7
   __s32 length;
   __u32 flags;
 #define DRM_I915_QUERY_PERF_CONFIG_LIST 1
@@ -976,6 +988,12 @@
   __u32 rsvd[3];
   struct drm_i915_memory_region_info regions[];
 };
+struct drm_i915_query_guc_submission_version {
+  __u32 branch;
+  __u32 major;
+  __u32 minor;
+  __u32 patch;
+};
 struct drm_i915_gem_create_ext {
   __u64 size;
   __u32 handle;
@@ -983,6 +1001,7 @@
   __u32 flags;
 #define I915_GEM_CREATE_EXT_MEMORY_REGIONS 0
 #define I915_GEM_CREATE_EXT_PROTECTED_CONTENT 1
+#define I915_GEM_CREATE_EXT_SET_PAT 2
   __u64 extensions;
 };
 struct drm_i915_gem_create_ext_memory_regions {
@@ -995,6 +1014,11 @@
   struct i915_user_extension base;
   __u32 flags;
 };
+struct drm_i915_gem_create_ext_set_pat {
+  struct i915_user_extension base;
+  __u32 pat_index;
+  __u32 rsvd;
+};
 #define I915_PROTECTED_CONTENT_DEFAULT_SESSION 0xf
 #ifdef __cplusplus
 }
diff --git a/libc/kernel/uapi/drm/ivpu_accel.h b/libc/kernel/uapi/drm/ivpu_accel.h
new file mode 100644
index 0000000..960bd43
--- /dev/null
+++ b/libc/kernel/uapi/drm/ivpu_accel.h
@@ -0,0 +1,126 @@
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
+#ifndef __UAPI_IVPU_DRM_H__
+#define __UAPI_IVPU_DRM_H__
+#include "drm.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+#define DRM_IVPU_DRIVER_MAJOR 1
+#define DRM_IVPU_DRIVER_MINOR 0
+#define DRM_IVPU_GET_PARAM 0x00
+#define DRM_IVPU_SET_PARAM 0x01
+#define DRM_IVPU_BO_CREATE 0x02
+#define DRM_IVPU_BO_INFO 0x03
+#define DRM_IVPU_SUBMIT 0x05
+#define DRM_IVPU_BO_WAIT 0x06
+#define DRM_IVPU_METRIC_STREAMER_START 0x07
+#define DRM_IVPU_METRIC_STREAMER_STOP 0x08
+#define DRM_IVPU_METRIC_STREAMER_GET_DATA 0x09
+#define DRM_IVPU_METRIC_STREAMER_GET_INFO 0x0a
+#define DRM_IOCTL_IVPU_GET_PARAM DRM_IOWR(DRM_COMMAND_BASE + DRM_IVPU_GET_PARAM, struct drm_ivpu_param)
+#define DRM_IOCTL_IVPU_SET_PARAM DRM_IOW(DRM_COMMAND_BASE + DRM_IVPU_SET_PARAM, struct drm_ivpu_param)
+#define DRM_IOCTL_IVPU_BO_CREATE DRM_IOWR(DRM_COMMAND_BASE + DRM_IVPU_BO_CREATE, struct drm_ivpu_bo_create)
+#define DRM_IOCTL_IVPU_BO_INFO DRM_IOWR(DRM_COMMAND_BASE + DRM_IVPU_BO_INFO, struct drm_ivpu_bo_info)
+#define DRM_IOCTL_IVPU_SUBMIT DRM_IOW(DRM_COMMAND_BASE + DRM_IVPU_SUBMIT, struct drm_ivpu_submit)
+#define DRM_IOCTL_IVPU_BO_WAIT DRM_IOWR(DRM_COMMAND_BASE + DRM_IVPU_BO_WAIT, struct drm_ivpu_bo_wait)
+#define DRM_IOCTL_IVPU_METRIC_STREAMER_START DRM_IOWR(DRM_COMMAND_BASE + DRM_IVPU_METRIC_STREAMER_START, struct drm_ivpu_metric_streamer_start)
+#define DRM_IOCTL_IVPU_METRIC_STREAMER_STOP DRM_IOW(DRM_COMMAND_BASE + DRM_IVPU_METRIC_STREAMER_STOP, struct drm_ivpu_metric_streamer_stop)
+#define DRM_IOCTL_IVPU_METRIC_STREAMER_GET_DATA DRM_IOWR(DRM_COMMAND_BASE + DRM_IVPU_METRIC_STREAMER_GET_DATA, struct drm_ivpu_metric_streamer_get_data)
+#define DRM_IOCTL_IVPU_METRIC_STREAMER_GET_INFO DRM_IOWR(DRM_COMMAND_BASE + DRM_IVPU_METRIC_STREAMER_GET_INFO, struct drm_ivpu_metric_streamer_get_data)
+#define DRM_IVPU_PARAM_DEVICE_ID 0
+#define DRM_IVPU_PARAM_DEVICE_REVISION 1
+#define DRM_IVPU_PARAM_PLATFORM_TYPE 2
+#define DRM_IVPU_PARAM_CORE_CLOCK_RATE 3
+#define DRM_IVPU_PARAM_NUM_CONTEXTS 4
+#define DRM_IVPU_PARAM_CONTEXT_BASE_ADDRESS 5
+#define DRM_IVPU_PARAM_CONTEXT_PRIORITY 6
+#define DRM_IVPU_PARAM_CONTEXT_ID 7
+#define DRM_IVPU_PARAM_FW_API_VERSION 8
+#define DRM_IVPU_PARAM_ENGINE_HEARTBEAT 9
+#define DRM_IVPU_PARAM_UNIQUE_INFERENCE_ID 10
+#define DRM_IVPU_PARAM_TILE_CONFIG 11
+#define DRM_IVPU_PARAM_SKU 12
+#define DRM_IVPU_PARAM_CAPABILITIES 13
+#define DRM_IVPU_PLATFORM_TYPE_SILICON 0
+#define DRM_IVPU_CONTEXT_PRIORITY_IDLE 0
+#define DRM_IVPU_CONTEXT_PRIORITY_NORMAL 1
+#define DRM_IVPU_CONTEXT_PRIORITY_FOCUS 2
+#define DRM_IVPU_CONTEXT_PRIORITY_REALTIME 3
+#define DRM_IVPU_JOB_PRIORITY_DEFAULT 0
+#define DRM_IVPU_JOB_PRIORITY_IDLE 1
+#define DRM_IVPU_JOB_PRIORITY_NORMAL 2
+#define DRM_IVPU_JOB_PRIORITY_FOCUS 3
+#define DRM_IVPU_JOB_PRIORITY_REALTIME 4
+#define DRM_IVPU_CAP_METRIC_STREAMER 1
+#define DRM_IVPU_CAP_DMA_MEMORY_RANGE 2
+struct drm_ivpu_param {
+  __u32 param;
+  __u32 index;
+  __u64 value;
+};
+#define DRM_IVPU_BO_SHAVE_MEM 0x00000001
+#define DRM_IVPU_BO_HIGH_MEM DRM_IVPU_BO_SHAVE_MEM
+#define DRM_IVPU_BO_MAPPABLE 0x00000002
+#define DRM_IVPU_BO_DMA_MEM 0x00000004
+#define DRM_IVPU_BO_CACHED 0x00000000
+#define DRM_IVPU_BO_UNCACHED 0x00010000
+#define DRM_IVPU_BO_WC 0x00020000
+#define DRM_IVPU_BO_CACHE_MASK 0x00030000
+#define DRM_IVPU_BO_FLAGS (DRM_IVPU_BO_HIGH_MEM | DRM_IVPU_BO_MAPPABLE | DRM_IVPU_BO_DMA_MEM | DRM_IVPU_BO_CACHE_MASK)
+struct drm_ivpu_bo_create {
+  __u64 size;
+  __u32 flags;
+  __u32 handle;
+  __u64 vpu_addr;
+};
+struct drm_ivpu_bo_info {
+  __u32 handle;
+  __u32 flags;
+  __u64 vpu_addr;
+  __u64 mmap_offset;
+  __u64 size;
+};
+#define DRM_IVPU_ENGINE_COMPUTE 0
+#define DRM_IVPU_ENGINE_COPY 1
+struct drm_ivpu_submit {
+  __u64 buffers_ptr;
+  __u32 buffer_count;
+  __u32 engine;
+  __u32 flags;
+  __u32 commands_offset;
+  __u32 priority;
+};
+#define DRM_IVPU_JOB_STATUS_SUCCESS 0
+#define DRM_IVPU_JOB_STATUS_ABORTED 256
+struct drm_ivpu_bo_wait {
+  __u32 handle;
+  __u32 flags;
+  __s64 timeout_ns;
+  __u32 job_status;
+  __u32 pad;
+};
+struct drm_ivpu_metric_streamer_start {
+  __u64 metric_group_mask;
+  __u64 sampling_period_ns;
+  __u32 read_period_samples;
+  __u32 sample_size;
+  __u32 max_data_size;
+};
+struct drm_ivpu_metric_streamer_get_data {
+  __u64 metric_group_mask;
+  __u64 buffer_ptr;
+  __u64 buffer_size;
+  __u64 data_size;
+};
+struct drm_ivpu_metric_streamer_stop {
+  __u64 metric_group_mask;
+};
+#ifdef __cplusplus
+}
+#endif
+#endif
diff --git a/libc/kernel/uapi/drm/lima_drm.h b/libc/kernel/uapi/drm/lima_drm.h
index bd8ba9c..b9c8199 100644
--- a/libc/kernel/uapi/drm/lima_drm.h
+++ b/libc/kernel/uapi/drm/lima_drm.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __LIMA_DRM_H__
 #define __LIMA_DRM_H__
 #include "drm.h"
diff --git a/libc/kernel/uapi/drm/mga_drm.h b/libc/kernel/uapi/drm/mga_drm.h
deleted file mode 100644
index eb55fa7..0000000
--- a/libc/kernel/uapi/drm/mga_drm.h
+++ /dev/null
@@ -1,247 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef __MGA_DRM_H__
-#define __MGA_DRM_H__
-#include "drm.h"
-#ifdef __cplusplus
-extern "C" {
-#endif
-#ifndef __MGA_SAREA_DEFINES__
-#define __MGA_SAREA_DEFINES__
-#define MGA_F 0x1
-#define MGA_A 0x2
-#define MGA_S 0x4
-#define MGA_T2 0x8
-#define MGA_WARP_TGZ 0
-#define MGA_WARP_TGZF (MGA_F)
-#define MGA_WARP_TGZA (MGA_A)
-#define MGA_WARP_TGZAF (MGA_F | MGA_A)
-#define MGA_WARP_TGZS (MGA_S)
-#define MGA_WARP_TGZSF (MGA_S | MGA_F)
-#define MGA_WARP_TGZSA (MGA_S | MGA_A)
-#define MGA_WARP_TGZSAF (MGA_S | MGA_F | MGA_A)
-#define MGA_WARP_T2GZ (MGA_T2)
-#define MGA_WARP_T2GZF (MGA_T2 | MGA_F)
-#define MGA_WARP_T2GZA (MGA_T2 | MGA_A)
-#define MGA_WARP_T2GZAF (MGA_T2 | MGA_A | MGA_F)
-#define MGA_WARP_T2GZS (MGA_T2 | MGA_S)
-#define MGA_WARP_T2GZSF (MGA_T2 | MGA_S | MGA_F)
-#define MGA_WARP_T2GZSA (MGA_T2 | MGA_S | MGA_A)
-#define MGA_WARP_T2GZSAF (MGA_T2 | MGA_S | MGA_F | MGA_A)
-#define MGA_MAX_G200_PIPES 8
-#define MGA_MAX_G400_PIPES 16
-#define MGA_MAX_WARP_PIPES MGA_MAX_G400_PIPES
-#define MGA_WARP_UCODE_SIZE 32768
-#define MGA_CARD_TYPE_G200 1
-#define MGA_CARD_TYPE_G400 2
-#define MGA_CARD_TYPE_G450 3
-#define MGA_CARD_TYPE_G550 4
-#define MGA_FRONT 0x1
-#define MGA_BACK 0x2
-#define MGA_DEPTH 0x4
-#define MGA_UPLOAD_CONTEXT 0x1
-#define MGA_UPLOAD_TEX0 0x2
-#define MGA_UPLOAD_TEX1 0x4
-#define MGA_UPLOAD_PIPE 0x8
-#define MGA_UPLOAD_TEX0IMAGE 0x10
-#define MGA_UPLOAD_TEX1IMAGE 0x20
-#define MGA_UPLOAD_2D 0x40
-#define MGA_WAIT_AGE 0x80
-#define MGA_UPLOAD_CLIPRECTS 0x100
-#define MGA_BUFFER_SIZE (1 << 16)
-#define MGA_NUM_BUFFERS 128
-#define MGA_NR_SAREA_CLIPRECTS 8
-#define MGA_CARD_HEAP 0
-#define MGA_AGP_HEAP 1
-#define MGA_NR_TEX_HEAPS 2
-#define MGA_NR_TEX_REGIONS 16
-#define MGA_LOG_MIN_TEX_REGION_SIZE 16
-#define DRM_MGA_IDLE_RETRY 2048
-#endif
-typedef struct {
-  unsigned int dstorg;
-  unsigned int maccess;
-  unsigned int plnwt;
-  unsigned int dwgctl;
-  unsigned int alphactrl;
-  unsigned int fogcolor;
-  unsigned int wflag;
-  unsigned int tdualstage0;
-  unsigned int tdualstage1;
-  unsigned int fcol;
-  unsigned int stencil;
-  unsigned int stencilctl;
-} drm_mga_context_regs_t;
-typedef struct {
-  unsigned int pitch;
-} drm_mga_server_regs_t;
-typedef struct {
-  unsigned int texctl;
-  unsigned int texctl2;
-  unsigned int texfilter;
-  unsigned int texbordercol;
-  unsigned int texorg;
-  unsigned int texwidth;
-  unsigned int texheight;
-  unsigned int texorg1;
-  unsigned int texorg2;
-  unsigned int texorg3;
-  unsigned int texorg4;
-} drm_mga_texture_regs_t;
-typedef struct {
-  unsigned int head;
-  unsigned int wrap;
-} drm_mga_age_t;
-typedef struct _drm_mga_sarea {
-  drm_mga_context_regs_t context_state;
-  drm_mga_server_regs_t server_state;
-  drm_mga_texture_regs_t tex_state[2];
-  unsigned int warp_pipe;
-  unsigned int dirty;
-  unsigned int vertsize;
-  struct drm_clip_rect boxes[MGA_NR_SAREA_CLIPRECTS];
-  unsigned int nbox;
-  unsigned int req_drawable;
-  unsigned int req_draw_buffer;
-  unsigned int exported_drawable;
-  unsigned int exported_index;
-  unsigned int exported_stamp;
-  unsigned int exported_buffers;
-  unsigned int exported_nfront;
-  unsigned int exported_nback;
-  int exported_back_x, exported_front_x, exported_w;
-  int exported_back_y, exported_front_y, exported_h;
-  struct drm_clip_rect exported_boxes[MGA_NR_SAREA_CLIPRECTS];
-  unsigned int status[4];
-  unsigned int last_wrap;
-  drm_mga_age_t last_frame;
-  unsigned int last_enqueue;
-  unsigned int last_dispatch;
-  unsigned int last_quiescent;
-  struct drm_tex_region texList[MGA_NR_TEX_HEAPS][MGA_NR_TEX_REGIONS + 1];
-  unsigned int texAge[MGA_NR_TEX_HEAPS];
-  int ctxOwner;
-} drm_mga_sarea_t;
-#define DRM_MGA_INIT 0x00
-#define DRM_MGA_FLUSH 0x01
-#define DRM_MGA_RESET 0x02
-#define DRM_MGA_SWAP 0x03
-#define DRM_MGA_CLEAR 0x04
-#define DRM_MGA_VERTEX 0x05
-#define DRM_MGA_INDICES 0x06
-#define DRM_MGA_ILOAD 0x07
-#define DRM_MGA_BLIT 0x08
-#define DRM_MGA_GETPARAM 0x09
-#define DRM_MGA_SET_FENCE 0x0a
-#define DRM_MGA_WAIT_FENCE 0x0b
-#define DRM_MGA_DMA_BOOTSTRAP 0x0c
-#define DRM_IOCTL_MGA_INIT DRM_IOW(DRM_COMMAND_BASE + DRM_MGA_INIT, drm_mga_init_t)
-#define DRM_IOCTL_MGA_FLUSH DRM_IOW(DRM_COMMAND_BASE + DRM_MGA_FLUSH, struct drm_lock)
-#define DRM_IOCTL_MGA_RESET DRM_IO(DRM_COMMAND_BASE + DRM_MGA_RESET)
-#define DRM_IOCTL_MGA_SWAP DRM_IO(DRM_COMMAND_BASE + DRM_MGA_SWAP)
-#define DRM_IOCTL_MGA_CLEAR DRM_IOW(DRM_COMMAND_BASE + DRM_MGA_CLEAR, drm_mga_clear_t)
-#define DRM_IOCTL_MGA_VERTEX DRM_IOW(DRM_COMMAND_BASE + DRM_MGA_VERTEX, drm_mga_vertex_t)
-#define DRM_IOCTL_MGA_INDICES DRM_IOW(DRM_COMMAND_BASE + DRM_MGA_INDICES, drm_mga_indices_t)
-#define DRM_IOCTL_MGA_ILOAD DRM_IOW(DRM_COMMAND_BASE + DRM_MGA_ILOAD, drm_mga_iload_t)
-#define DRM_IOCTL_MGA_BLIT DRM_IOW(DRM_COMMAND_BASE + DRM_MGA_BLIT, drm_mga_blit_t)
-#define DRM_IOCTL_MGA_GETPARAM DRM_IOWR(DRM_COMMAND_BASE + DRM_MGA_GETPARAM, drm_mga_getparam_t)
-#define DRM_IOCTL_MGA_SET_FENCE DRM_IOW(DRM_COMMAND_BASE + DRM_MGA_SET_FENCE, __u32)
-#define DRM_IOCTL_MGA_WAIT_FENCE DRM_IOWR(DRM_COMMAND_BASE + DRM_MGA_WAIT_FENCE, __u32)
-#define DRM_IOCTL_MGA_DMA_BOOTSTRAP DRM_IOWR(DRM_COMMAND_BASE + DRM_MGA_DMA_BOOTSTRAP, drm_mga_dma_bootstrap_t)
-typedef struct _drm_mga_warp_index {
-  int installed;
-  unsigned long phys_addr;
-  int size;
-} drm_mga_warp_index_t;
-typedef struct drm_mga_init {
-  enum {
-    MGA_INIT_DMA = 0x01,
-    MGA_CLEANUP_DMA = 0x02
-  } func;
-  unsigned long sarea_priv_offset;
-  __struct_group(, always32bit,, int chipset;
-  int sgram;
-  unsigned int maccess;
-  unsigned int fb_cpp;
-  unsigned int front_offset, front_pitch;
-  unsigned int back_offset, back_pitch;
-  unsigned int depth_cpp;
-  unsigned int depth_offset, depth_pitch;
-  unsigned int texture_offset[MGA_NR_TEX_HEAPS];
-  unsigned int texture_size[MGA_NR_TEX_HEAPS];
- );
-  unsigned long fb_offset;
-  unsigned long mmio_offset;
-  unsigned long status_offset;
-  unsigned long warp_offset;
-  unsigned long primary_offset;
-  unsigned long buffers_offset;
-} drm_mga_init_t;
-typedef struct drm_mga_dma_bootstrap {
-  unsigned long texture_handle;
-  __u32 texture_size;
-  __u32 primary_size;
-  __u32 secondary_bin_count;
-  __u32 secondary_bin_size;
-  __u32 agp_mode;
-  __u8 agp_size;
-} drm_mga_dma_bootstrap_t;
-typedef struct drm_mga_clear {
-  unsigned int flags;
-  unsigned int clear_color;
-  unsigned int clear_depth;
-  unsigned int color_mask;
-  unsigned int depth_mask;
-} drm_mga_clear_t;
-typedef struct drm_mga_vertex {
-  int idx;
-  int used;
-  int discard;
-} drm_mga_vertex_t;
-typedef struct drm_mga_indices {
-  int idx;
-  unsigned int start;
-  unsigned int end;
-  int discard;
-} drm_mga_indices_t;
-typedef struct drm_mga_iload {
-  int idx;
-  unsigned int dstorg;
-  unsigned int length;
-} drm_mga_iload_t;
-typedef struct _drm_mga_blit {
-  unsigned int planemask;
-  unsigned int srcorg;
-  unsigned int dstorg;
-  int src_pitch, dst_pitch;
-  int delta_sx, delta_sy;
-  int delta_dx, delta_dy;
-  int height, ydir;
-  int source_pitch, dest_pitch;
-} drm_mga_blit_t;
-#define MGA_PARAM_IRQ_NR 1
-#define MGA_PARAM_CARD_TYPE 2
-typedef struct drm_mga_getparam {
-  int param;
-  void  * value;
-} drm_mga_getparam_t;
-#ifdef __cplusplus
-}
-#endif
-#endif
diff --git a/libc/kernel/uapi/drm/msm_drm.h b/libc/kernel/uapi/drm/msm_drm.h
index ad3a971..7ec5ed2 100644
--- a/libc/kernel/uapi/drm/msm_drm.h
+++ b/libc/kernel/uapi/drm/msm_drm.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __MSM_DRM_H__
 #define __MSM_DRM_H__
 #include "drm.h"
@@ -48,6 +36,8 @@
 #define MSM_PARAM_CMDLINE 0x0d
 #define MSM_PARAM_VA_START 0x0e
 #define MSM_PARAM_VA_SIZE 0x0f
+#define MSM_PARAM_HIGHEST_BANK_BIT 0x10
+#define MSM_PARAM_RAYTRACING 0x11
 #define MSM_PARAM_NR_RINGS MSM_PARAM_PRIORITIES
 struct drm_msm_param {
   __u32 pipe;
@@ -75,6 +65,8 @@
 #define MSM_INFO_GET_NAME 0x03
 #define MSM_INFO_SET_IOVA 0x04
 #define MSM_INFO_GET_FLAGS 0x05
+#define MSM_INFO_SET_METADATA 0x06
+#define MSM_INFO_GET_METADATA 0x07
 struct drm_msm_gem_info {
   __u32 handle;
   __u32 info;
@@ -85,7 +77,8 @@
 #define MSM_PREP_READ 0x01
 #define MSM_PREP_WRITE 0x02
 #define MSM_PREP_NOSYNC 0x04
-#define MSM_PREP_FLAGS (MSM_PREP_READ | MSM_PREP_WRITE | MSM_PREP_NOSYNC)
+#define MSM_PREP_BOOST 0x08
+#define MSM_PREP_FLAGS (MSM_PREP_READ | MSM_PREP_WRITE | MSM_PREP_NOSYNC | MSM_PREP_BOOST | 0)
 struct drm_msm_gem_cpu_prep {
   __u32 handle;
   __u32 op;
@@ -96,7 +89,11 @@
 };
 struct drm_msm_gem_submit_reloc {
   __u32 submit_offset;
+#ifdef __cplusplus
+  __u32 _or;
+#else
   __u32 or;
+#endif
   __s32 shift;
   __u32 reloc_idx;
   __u64 reloc_offset;
@@ -116,7 +113,8 @@
 #define MSM_SUBMIT_BO_READ 0x0001
 #define MSM_SUBMIT_BO_WRITE 0x0002
 #define MSM_SUBMIT_BO_DUMP 0x0004
-#define MSM_SUBMIT_BO_FLAGS (MSM_SUBMIT_BO_READ | MSM_SUBMIT_BO_WRITE | MSM_SUBMIT_BO_DUMP)
+#define MSM_SUBMIT_BO_NO_IMPLICIT 0x0008
+#define MSM_SUBMIT_BO_FLAGS (MSM_SUBMIT_BO_READ | MSM_SUBMIT_BO_WRITE | MSM_SUBMIT_BO_DUMP | MSM_SUBMIT_BO_NO_IMPLICIT)
 struct drm_msm_gem_submit_bo {
   __u32 flags;
   __u32 handle;
@@ -153,9 +151,11 @@
   __u32 syncobj_stride;
   __u32 pad;
 };
+#define MSM_WAIT_FENCE_BOOST 0x00000001
+#define MSM_WAIT_FENCE_FLAGS (MSM_WAIT_FENCE_BOOST | 0)
 struct drm_msm_wait_fence {
   __u32 fence;
-  __u32 pad;
+  __u32 flags;
   struct drm_msm_timespec timeout;
   __u32 queueid;
 };
diff --git a/libc/kernel/uapi/drm/nouveau_drm.h b/libc/kernel/uapi/drm/nouveau_drm.h
index 150f729..01897af 100644
--- a/libc/kernel/uapi/drm/nouveau_drm.h
+++ b/libc/kernel/uapi/drm/nouveau_drm.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __NOUVEAU_DRM_H__
 #define __NOUVEAU_DRM_H__
 #define DRM_NOUVEAU_EVENT_NVIF 0x80000000
@@ -23,11 +11,61 @@
 #ifdef __cplusplus
 extern "C" {
 #endif
+#define NOUVEAU_GETPARAM_PCI_VENDOR 3
+#define NOUVEAU_GETPARAM_PCI_DEVICE 4
+#define NOUVEAU_GETPARAM_BUS_TYPE 5
+#define NOUVEAU_GETPARAM_FB_SIZE 8
+#define NOUVEAU_GETPARAM_AGP_SIZE 9
+#define NOUVEAU_GETPARAM_CHIPSET_ID 11
+#define NOUVEAU_GETPARAM_VM_VRAM_BASE 12
+#define NOUVEAU_GETPARAM_GRAPH_UNITS 13
+#define NOUVEAU_GETPARAM_PTIMER_TIME 14
+#define NOUVEAU_GETPARAM_HAS_BO_USAGE 15
+#define NOUVEAU_GETPARAM_HAS_PAGEFLIP 16
+#define NOUVEAU_GETPARAM_EXEC_PUSH_MAX 17
+#define NOUVEAU_GETPARAM_VRAM_BAR_SIZE 18
+#define NOUVEAU_GETPARAM_VRAM_USED 19
+#define NOUVEAU_GETPARAM_HAS_VMA_TILEMODE 20
+struct drm_nouveau_getparam {
+  __u64 param;
+  __u64 value;
+};
+#define NOUVEAU_FIFO_ENGINE_GR 0x01
+#define NOUVEAU_FIFO_ENGINE_VP 0x02
+#define NOUVEAU_FIFO_ENGINE_PPP 0x04
+#define NOUVEAU_FIFO_ENGINE_BSP 0x08
+#define NOUVEAU_FIFO_ENGINE_CE 0x30
+struct drm_nouveau_channel_alloc {
+  __u32 fb_ctxdma_handle;
+  __u32 tt_ctxdma_handle;
+  __s32 channel;
+  __u32 pushbuf_domains;
+  __u32 notifier_handle;
+  struct {
+    __u32 handle;
+    __u32 grclass;
+  } subchan[8];
+  __u32 nr_subchan;
+};
+struct drm_nouveau_channel_free {
+  __s32 channel;
+};
+struct drm_nouveau_notifierobj_alloc {
+  __u32 channel;
+  __u32 handle;
+  __u32 size;
+  __u32 offset;
+};
+struct drm_nouveau_gpuobj_free {
+  __s32 channel;
+  __u32 handle;
+};
 #define NOUVEAU_GEM_DOMAIN_CPU (1 << 0)
 #define NOUVEAU_GEM_DOMAIN_VRAM (1 << 1)
 #define NOUVEAU_GEM_DOMAIN_GART (1 << 2)
 #define NOUVEAU_GEM_DOMAIN_MAPPABLE (1 << 3)
 #define NOUVEAU_GEM_DOMAIN_COHERENT (1 << 4)
+#define NOUVEAU_GEM_DOMAIN_NO_SHARE (1 << 5)
 #define NOUVEAU_GEM_TILE_COMP 0x00030000
 #define NOUVEAU_GEM_TILE_LAYOUT_MASK 0x0000ff00
 #define NOUVEAU_GEM_TILE_16BPP 0x00000001
@@ -81,6 +119,7 @@
   __u32 pad;
   __u64 offset;
   __u64 length;
+#define NOUVEAU_GEM_PUSHBUF_NO_PREFETCH (1 << 23)
 };
 struct drm_nouveau_gem_pushbuf {
   __u32 channel;
@@ -105,6 +144,55 @@
 struct drm_nouveau_gem_cpu_fini {
   __u32 handle;
 };
+struct drm_nouveau_sync {
+  __u32 flags;
+#define DRM_NOUVEAU_SYNC_SYNCOBJ 0x0
+#define DRM_NOUVEAU_SYNC_TIMELINE_SYNCOBJ 0x1
+#define DRM_NOUVEAU_SYNC_TYPE_MASK 0xf
+  __u32 handle;
+  __u64 timeline_value;
+};
+struct drm_nouveau_vm_init {
+  __u64 kernel_managed_addr;
+  __u64 kernel_managed_size;
+};
+struct drm_nouveau_vm_bind_op {
+  __u32 op;
+#define DRM_NOUVEAU_VM_BIND_OP_MAP 0x0
+#define DRM_NOUVEAU_VM_BIND_OP_UNMAP 0x1
+  __u32 flags;
+#define DRM_NOUVEAU_VM_BIND_SPARSE (1 << 8)
+  __u32 handle;
+  __u32 pad;
+  __u64 addr;
+  __u64 bo_offset;
+  __u64 range;
+};
+struct drm_nouveau_vm_bind {
+  __u32 op_count;
+  __u32 flags;
+#define DRM_NOUVEAU_VM_BIND_RUN_ASYNC 0x1
+  __u32 wait_count;
+  __u32 sig_count;
+  __u64 wait_ptr;
+  __u64 sig_ptr;
+  __u64 op_ptr;
+};
+struct drm_nouveau_exec_push {
+  __u64 va;
+  __u32 va_len;
+  __u32 flags;
+#define DRM_NOUVEAU_EXEC_PUSH_NO_PREFETCH 0x1
+};
+struct drm_nouveau_exec {
+  __u32 channel;
+  __u32 push_count;
+  __u32 wait_count;
+  __u32 sig_count;
+  __u64 wait_ptr;
+  __u64 sig_ptr;
+  __u64 push_ptr;
+};
 #define DRM_NOUVEAU_GETPARAM 0x00
 #define DRM_NOUVEAU_SETPARAM 0x01
 #define DRM_NOUVEAU_CHANNEL_ALLOC 0x02
@@ -115,6 +203,9 @@
 #define DRM_NOUVEAU_NVIF 0x07
 #define DRM_NOUVEAU_SVM_INIT 0x08
 #define DRM_NOUVEAU_SVM_BIND 0x09
+#define DRM_NOUVEAU_VM_INIT 0x10
+#define DRM_NOUVEAU_VM_BIND 0x11
+#define DRM_NOUVEAU_EXEC 0x12
 #define DRM_NOUVEAU_GEM_NEW 0x40
 #define DRM_NOUVEAU_GEM_PUSHBUF 0x41
 #define DRM_NOUVEAU_GEM_CPU_PREP 0x42
@@ -147,6 +238,9 @@
 #define NOUVEAU_SVM_BIND_VALID_MASK ((1ULL << NOUVEAU_SVM_BIND_VALID_BITS) - 1)
 #define NOUVEAU_SVM_BIND_COMMAND__MIGRATE 0
 #define NOUVEAU_SVM_BIND_TARGET__GPU_VRAM (1UL << 31)
+#define DRM_IOCTL_NOUVEAU_GETPARAM DRM_IOWR(DRM_COMMAND_BASE + DRM_NOUVEAU_GETPARAM, struct drm_nouveau_getparam)
+#define DRM_IOCTL_NOUVEAU_CHANNEL_ALLOC DRM_IOWR(DRM_COMMAND_BASE + DRM_NOUVEAU_CHANNEL_ALLOC, struct drm_nouveau_channel_alloc)
+#define DRM_IOCTL_NOUVEAU_CHANNEL_FREE DRM_IOW(DRM_COMMAND_BASE + DRM_NOUVEAU_CHANNEL_FREE, struct drm_nouveau_channel_free)
 #define DRM_IOCTL_NOUVEAU_SVM_INIT DRM_IOWR(DRM_COMMAND_BASE + DRM_NOUVEAU_SVM_INIT, struct drm_nouveau_svm_init)
 #define DRM_IOCTL_NOUVEAU_SVM_BIND DRM_IOWR(DRM_COMMAND_BASE + DRM_NOUVEAU_SVM_BIND, struct drm_nouveau_svm_bind)
 #define DRM_IOCTL_NOUVEAU_GEM_NEW DRM_IOWR(DRM_COMMAND_BASE + DRM_NOUVEAU_GEM_NEW, struct drm_nouveau_gem_new)
@@ -154,6 +248,9 @@
 #define DRM_IOCTL_NOUVEAU_GEM_CPU_PREP DRM_IOW(DRM_COMMAND_BASE + DRM_NOUVEAU_GEM_CPU_PREP, struct drm_nouveau_gem_cpu_prep)
 #define DRM_IOCTL_NOUVEAU_GEM_CPU_FINI DRM_IOW(DRM_COMMAND_BASE + DRM_NOUVEAU_GEM_CPU_FINI, struct drm_nouveau_gem_cpu_fini)
 #define DRM_IOCTL_NOUVEAU_GEM_INFO DRM_IOWR(DRM_COMMAND_BASE + DRM_NOUVEAU_GEM_INFO, struct drm_nouveau_gem_info)
+#define DRM_IOCTL_NOUVEAU_VM_INIT DRM_IOWR(DRM_COMMAND_BASE + DRM_NOUVEAU_VM_INIT, struct drm_nouveau_vm_init)
+#define DRM_IOCTL_NOUVEAU_VM_BIND DRM_IOWR(DRM_COMMAND_BASE + DRM_NOUVEAU_VM_BIND, struct drm_nouveau_vm_bind)
+#define DRM_IOCTL_NOUVEAU_EXEC DRM_IOWR(DRM_COMMAND_BASE + DRM_NOUVEAU_EXEC, struct drm_nouveau_exec)
 #ifdef __cplusplus
 }
 #endif
diff --git a/libc/kernel/uapi/drm/omap_drm.h b/libc/kernel/uapi/drm/omap_drm.h
index 72d949d..513d541 100644
--- a/libc/kernel/uapi/drm/omap_drm.h
+++ b/libc/kernel/uapi/drm/omap_drm.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __OMAP_DRM_H__
 #define __OMAP_DRM_H__
 #include "drm.h"
diff --git a/libc/kernel/uapi/drm/panfrost_drm.h b/libc/kernel/uapi/drm/panfrost_drm.h
index 04a85df..66a46fc 100644
--- a/libc/kernel/uapi/drm/panfrost_drm.h
+++ b/libc/kernel/uapi/drm/panfrost_drm.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _PANFROST_DRM_H_
 #define _PANFROST_DRM_H_
 #include "drm.h"
diff --git a/libc/kernel/uapi/drm/panthor_drm.h b/libc/kernel/uapi/drm/panthor_drm.h
new file mode 100644
index 0000000..b45c1dc
--- /dev/null
+++ b/libc/kernel/uapi/drm/panthor_drm.h
@@ -0,0 +1,240 @@
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
+#ifndef _PANTHOR_DRM_H_
+#define _PANTHOR_DRM_H_
+#include "drm.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+#define DRM_PANTHOR_USER_MMIO_OFFSET_32BIT (1ull << 43)
+#define DRM_PANTHOR_USER_MMIO_OFFSET_64BIT (1ull << 56)
+#define DRM_PANTHOR_USER_MMIO_OFFSET (sizeof(unsigned long) < 8 ? DRM_PANTHOR_USER_MMIO_OFFSET_32BIT : DRM_PANTHOR_USER_MMIO_OFFSET_64BIT)
+#define DRM_PANTHOR_USER_FLUSH_ID_MMIO_OFFSET (DRM_PANTHOR_USER_MMIO_OFFSET | 0)
+enum drm_panthor_ioctl_id {
+  DRM_PANTHOR_DEV_QUERY = 0,
+  DRM_PANTHOR_VM_CREATE,
+  DRM_PANTHOR_VM_DESTROY,
+  DRM_PANTHOR_VM_BIND,
+  DRM_PANTHOR_VM_GET_STATE,
+  DRM_PANTHOR_BO_CREATE,
+  DRM_PANTHOR_BO_MMAP_OFFSET,
+  DRM_PANTHOR_GROUP_CREATE,
+  DRM_PANTHOR_GROUP_DESTROY,
+  DRM_PANTHOR_GROUP_SUBMIT,
+  DRM_PANTHOR_GROUP_GET_STATE,
+  DRM_PANTHOR_TILER_HEAP_CREATE,
+  DRM_PANTHOR_TILER_HEAP_DESTROY,
+};
+#define DRM_IOCTL_PANTHOR(__access,__id,__type) DRM_IO ##__access(DRM_COMMAND_BASE + DRM_PANTHOR_ ##__id, struct drm_panthor_ ##__type)
+#define DRM_IOCTL_PANTHOR_DEV_QUERY DRM_IOCTL_PANTHOR(WR, DEV_QUERY, dev_query)
+#define DRM_IOCTL_PANTHOR_VM_CREATE DRM_IOCTL_PANTHOR(WR, VM_CREATE, vm_create)
+#define DRM_IOCTL_PANTHOR_VM_DESTROY DRM_IOCTL_PANTHOR(WR, VM_DESTROY, vm_destroy)
+#define DRM_IOCTL_PANTHOR_VM_BIND DRM_IOCTL_PANTHOR(WR, VM_BIND, vm_bind)
+#define DRM_IOCTL_PANTHOR_VM_GET_STATE DRM_IOCTL_PANTHOR(WR, VM_GET_STATE, vm_get_state)
+#define DRM_IOCTL_PANTHOR_BO_CREATE DRM_IOCTL_PANTHOR(WR, BO_CREATE, bo_create)
+#define DRM_IOCTL_PANTHOR_BO_MMAP_OFFSET DRM_IOCTL_PANTHOR(WR, BO_MMAP_OFFSET, bo_mmap_offset)
+#define DRM_IOCTL_PANTHOR_GROUP_CREATE DRM_IOCTL_PANTHOR(WR, GROUP_CREATE, group_create)
+#define DRM_IOCTL_PANTHOR_GROUP_DESTROY DRM_IOCTL_PANTHOR(WR, GROUP_DESTROY, group_destroy)
+#define DRM_IOCTL_PANTHOR_GROUP_SUBMIT DRM_IOCTL_PANTHOR(WR, GROUP_SUBMIT, group_submit)
+#define DRM_IOCTL_PANTHOR_GROUP_GET_STATE DRM_IOCTL_PANTHOR(WR, GROUP_GET_STATE, group_get_state)
+#define DRM_IOCTL_PANTHOR_TILER_HEAP_CREATE DRM_IOCTL_PANTHOR(WR, TILER_HEAP_CREATE, tiler_heap_create)
+#define DRM_IOCTL_PANTHOR_TILER_HEAP_DESTROY DRM_IOCTL_PANTHOR(WR, TILER_HEAP_DESTROY, tiler_heap_destroy)
+struct drm_panthor_obj_array {
+  __u32 stride;
+  __u32 count;
+  __u64 array;
+};
+#define DRM_PANTHOR_OBJ_ARRAY(cnt,ptr) {.stride = sizeof((ptr)[0]),.count = (cnt),.array = (__u64) (uintptr_t) (ptr) }
+enum drm_panthor_sync_op_flags {
+  DRM_PANTHOR_SYNC_OP_HANDLE_TYPE_MASK = 0xff,
+  DRM_PANTHOR_SYNC_OP_HANDLE_TYPE_SYNCOBJ = 0,
+  DRM_PANTHOR_SYNC_OP_HANDLE_TYPE_TIMELINE_SYNCOBJ = 1,
+  DRM_PANTHOR_SYNC_OP_WAIT = 0 << 31,
+  DRM_PANTHOR_SYNC_OP_SIGNAL = (int) (1u << 31),
+};
+struct drm_panthor_sync_op {
+  __u32 flags;
+  __u32 handle;
+  __u64 timeline_value;
+};
+enum drm_panthor_dev_query_type {
+  DRM_PANTHOR_DEV_QUERY_GPU_INFO = 0,
+  DRM_PANTHOR_DEV_QUERY_CSIF_INFO,
+};
+struct drm_panthor_gpu_info {
+  __u32 gpu_id;
+#define DRM_PANTHOR_ARCH_MAJOR(x) ((x) >> 28)
+#define DRM_PANTHOR_ARCH_MINOR(x) (((x) >> 24) & 0xf)
+#define DRM_PANTHOR_ARCH_REV(x) (((x) >> 20) & 0xf)
+#define DRM_PANTHOR_PRODUCT_MAJOR(x) (((x) >> 16) & 0xf)
+#define DRM_PANTHOR_VERSION_MAJOR(x) (((x) >> 12) & 0xf)
+#define DRM_PANTHOR_VERSION_MINOR(x) (((x) >> 4) & 0xff)
+#define DRM_PANTHOR_VERSION_STATUS(x) ((x) & 0xf)
+  __u32 gpu_rev;
+  __u32 csf_id;
+#define DRM_PANTHOR_CSHW_MAJOR(x) (((x) >> 26) & 0x3f)
+#define DRM_PANTHOR_CSHW_MINOR(x) (((x) >> 20) & 0x3f)
+#define DRM_PANTHOR_CSHW_REV(x) (((x) >> 16) & 0xf)
+#define DRM_PANTHOR_MCU_MAJOR(x) (((x) >> 10) & 0x3f)
+#define DRM_PANTHOR_MCU_MINOR(x) (((x) >> 4) & 0x3f)
+#define DRM_PANTHOR_MCU_REV(x) ((x) & 0xf)
+  __u32 l2_features;
+  __u32 tiler_features;
+  __u32 mem_features;
+  __u32 mmu_features;
+#define DRM_PANTHOR_MMU_VA_BITS(x) ((x) & 0xff)
+  __u32 thread_features;
+  __u32 max_threads;
+  __u32 thread_max_workgroup_size;
+  __u32 thread_max_barrier_size;
+  __u32 coherency_features;
+  __u32 texture_features[4];
+  __u32 as_present;
+  __u64 shader_present;
+  __u64 l2_present;
+  __u64 tiler_present;
+  __u32 core_features;
+  __u32 pad;
+};
+struct drm_panthor_csif_info {
+  __u32 csg_slot_count;
+  __u32 cs_slot_count;
+  __u32 cs_reg_count;
+  __u32 scoreboard_slot_count;
+  __u32 unpreserved_cs_reg_count;
+  __u32 pad;
+};
+struct drm_panthor_dev_query {
+  __u32 type;
+  __u32 size;
+  __u64 pointer;
+};
+struct drm_panthor_vm_create {
+  __u32 flags;
+  __u32 id;
+  __u64 user_va_range;
+};
+struct drm_panthor_vm_destroy {
+  __u32 id;
+  __u32 pad;
+};
+enum drm_panthor_vm_bind_op_flags {
+  DRM_PANTHOR_VM_BIND_OP_MAP_READONLY = 1 << 0,
+  DRM_PANTHOR_VM_BIND_OP_MAP_NOEXEC = 1 << 1,
+  DRM_PANTHOR_VM_BIND_OP_MAP_UNCACHED = 1 << 2,
+  DRM_PANTHOR_VM_BIND_OP_TYPE_MASK = (int) (0xfu << 28),
+  DRM_PANTHOR_VM_BIND_OP_TYPE_MAP = 0 << 28,
+  DRM_PANTHOR_VM_BIND_OP_TYPE_UNMAP = 1 << 28,
+  DRM_PANTHOR_VM_BIND_OP_TYPE_SYNC_ONLY = 2 << 28,
+};
+struct drm_panthor_vm_bind_op {
+  __u32 flags;
+  __u32 bo_handle;
+  __u64 bo_offset;
+  __u64 va;
+  __u64 size;
+  struct drm_panthor_obj_array syncs;
+};
+enum drm_panthor_vm_bind_flags {
+  DRM_PANTHOR_VM_BIND_ASYNC = 1 << 0,
+};
+struct drm_panthor_vm_bind {
+  __u32 vm_id;
+  __u32 flags;
+  struct drm_panthor_obj_array ops;
+};
+enum drm_panthor_vm_state {
+  DRM_PANTHOR_VM_STATE_USABLE,
+  DRM_PANTHOR_VM_STATE_UNUSABLE,
+};
+struct drm_panthor_vm_get_state {
+  __u32 vm_id;
+  __u32 state;
+};
+enum drm_panthor_bo_flags {
+  DRM_PANTHOR_BO_NO_MMAP = (1 << 0),
+};
+struct drm_panthor_bo_create {
+  __u64 size;
+  __u32 flags;
+  __u32 exclusive_vm_id;
+  __u32 handle;
+  __u32 pad;
+};
+struct drm_panthor_bo_mmap_offset {
+  __u32 handle;
+  __u32 pad;
+  __u64 offset;
+};
+struct drm_panthor_queue_create {
+  __u8 priority;
+  __u8 pad[3];
+  __u32 ringbuf_size;
+};
+enum drm_panthor_group_priority {
+  PANTHOR_GROUP_PRIORITY_LOW = 0,
+  PANTHOR_GROUP_PRIORITY_MEDIUM,
+  PANTHOR_GROUP_PRIORITY_HIGH,
+};
+struct drm_panthor_group_create {
+  struct drm_panthor_obj_array queues;
+  __u8 max_compute_cores;
+  __u8 max_fragment_cores;
+  __u8 max_tiler_cores;
+  __u8 priority;
+  __u32 pad;
+  __u64 compute_core_mask;
+  __u64 fragment_core_mask;
+  __u64 tiler_core_mask;
+  __u32 vm_id;
+  __u32 group_handle;
+};
+struct drm_panthor_group_destroy {
+  __u32 group_handle;
+  __u32 pad;
+};
+struct drm_panthor_queue_submit {
+  __u32 queue_index;
+  __u32 stream_size;
+  __u64 stream_addr;
+  __u32 latest_flush;
+  __u32 pad;
+  struct drm_panthor_obj_array syncs;
+};
+struct drm_panthor_group_submit {
+  __u32 group_handle;
+  __u32 pad;
+  struct drm_panthor_obj_array queue_submits;
+};
+enum drm_panthor_group_state_flags {
+  DRM_PANTHOR_GROUP_STATE_TIMEDOUT = 1 << 0,
+  DRM_PANTHOR_GROUP_STATE_FATAL_FAULT = 1 << 1,
+};
+struct drm_panthor_group_get_state {
+  __u32 group_handle;
+  __u32 state;
+  __u32 fatal_queues;
+  __u32 pad;
+};
+struct drm_panthor_tiler_heap_create {
+  __u32 vm_id;
+  __u32 initial_chunk_count;
+  __u32 chunk_size;
+  __u32 max_chunks;
+  __u32 target_in_flight;
+  __u32 handle;
+  __u64 tiler_heap_ctx_gpu_va;
+  __u64 first_heap_chunk_gpu_va;
+};
+struct drm_panthor_tiler_heap_destroy {
+  __u32 handle;
+  __u32 pad;
+};
+#ifdef __cplusplus
+}
+#endif
+#endif
diff --git a/libc/kernel/uapi/drm/pvr_drm.h b/libc/kernel/uapi/drm/pvr_drm.h
new file mode 100644
index 0000000..c68c719
--- /dev/null
+++ b/libc/kernel/uapi/drm/pvr_drm.h
@@ -0,0 +1,271 @@
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
+#ifndef PVR_DRM_UAPI_H
+#define PVR_DRM_UAPI_H
+#include "drm.h"
+#include <linux/const.h>
+#include <linux/types.h>
+#ifdef __cplusplus
+extern "C" {
+#endif
+struct drm_pvr_obj_array {
+  __u32 stride;
+  __u32 count;
+  __u64 array;
+};
+#define DRM_PVR_OBJ_ARRAY(cnt,ptr) {.stride = sizeof((ptr)[0]),.count = (cnt),.array = (__u64) (uintptr_t) (ptr) }
+#define PVR_IOCTL(_ioctl,_mode,_data) _mode(DRM_COMMAND_BASE + (_ioctl), struct drm_pvr_ioctl_ ##_data ##_args)
+#define DRM_IOCTL_PVR_DEV_QUERY PVR_IOCTL(0x00, DRM_IOWR, dev_query)
+#define DRM_IOCTL_PVR_CREATE_BO PVR_IOCTL(0x01, DRM_IOWR, create_bo)
+#define DRM_IOCTL_PVR_GET_BO_MMAP_OFFSET PVR_IOCTL(0x02, DRM_IOWR, get_bo_mmap_offset)
+#define DRM_IOCTL_PVR_CREATE_VM_CONTEXT PVR_IOCTL(0x03, DRM_IOWR, create_vm_context)
+#define DRM_IOCTL_PVR_DESTROY_VM_CONTEXT PVR_IOCTL(0x04, DRM_IOW, destroy_vm_context)
+#define DRM_IOCTL_PVR_VM_MAP PVR_IOCTL(0x05, DRM_IOW, vm_map)
+#define DRM_IOCTL_PVR_VM_UNMAP PVR_IOCTL(0x06, DRM_IOW, vm_unmap)
+#define DRM_IOCTL_PVR_CREATE_CONTEXT PVR_IOCTL(0x07, DRM_IOWR, create_context)
+#define DRM_IOCTL_PVR_DESTROY_CONTEXT PVR_IOCTL(0x08, DRM_IOW, destroy_context)
+#define DRM_IOCTL_PVR_CREATE_FREE_LIST PVR_IOCTL(0x09, DRM_IOWR, create_free_list)
+#define DRM_IOCTL_PVR_DESTROY_FREE_LIST PVR_IOCTL(0x0a, DRM_IOW, destroy_free_list)
+#define DRM_IOCTL_PVR_CREATE_HWRT_DATASET PVR_IOCTL(0x0b, DRM_IOWR, create_hwrt_dataset)
+#define DRM_IOCTL_PVR_DESTROY_HWRT_DATASET PVR_IOCTL(0x0c, DRM_IOW, destroy_hwrt_dataset)
+#define DRM_IOCTL_PVR_SUBMIT_JOBS PVR_IOCTL(0x0d, DRM_IOW, submit_jobs)
+struct drm_pvr_dev_query_gpu_info {
+  __u64 gpu_id;
+  __u32 num_phantoms;
+  __u32 _padding_c;
+};
+struct drm_pvr_dev_query_runtime_info {
+  __u64 free_list_min_pages;
+  __u64 free_list_max_pages;
+  __u32 common_store_alloc_region_size;
+  __u32 common_store_partition_space_size;
+  __u32 max_coeffs;
+  __u32 cdm_max_local_mem_size_regs;
+};
+struct drm_pvr_dev_query_quirks {
+  __u64 quirks;
+  __u16 count;
+  __u16 musthave_count;
+  __u32 _padding_c;
+};
+struct drm_pvr_dev_query_enhancements {
+  __u64 enhancements;
+  __u16 count;
+  __u16 _padding_a;
+  __u32 _padding_c;
+};
+enum drm_pvr_heap_id {
+  DRM_PVR_HEAP_GENERAL = 0,
+  DRM_PVR_HEAP_PDS_CODE_DATA,
+  DRM_PVR_HEAP_USC_CODE,
+  DRM_PVR_HEAP_RGNHDR,
+  DRM_PVR_HEAP_VIS_TEST,
+  DRM_PVR_HEAP_TRANSFER_FRAG,
+  DRM_PVR_HEAP_COUNT
+};
+struct drm_pvr_heap {
+  __u64 base;
+  __u64 size;
+  __u32 flags;
+  __u32 page_size_log2;
+};
+struct drm_pvr_dev_query_heap_info {
+  struct drm_pvr_obj_array heaps;
+};
+enum drm_pvr_static_data_area_usage {
+  DRM_PVR_STATIC_DATA_AREA_EOT = 0,
+  DRM_PVR_STATIC_DATA_AREA_FENCE,
+  DRM_PVR_STATIC_DATA_AREA_VDM_SYNC,
+  DRM_PVR_STATIC_DATA_AREA_YUV_CSC,
+};
+struct drm_pvr_static_data_area {
+  __u16 area_usage;
+  __u16 location_heap_id;
+  __u32 size;
+  __u64 offset;
+};
+struct drm_pvr_dev_query_static_data_areas {
+  struct drm_pvr_obj_array static_data_areas;
+};
+enum drm_pvr_dev_query {
+  DRM_PVR_DEV_QUERY_GPU_INFO_GET = 0,
+  DRM_PVR_DEV_QUERY_RUNTIME_INFO_GET,
+  DRM_PVR_DEV_QUERY_QUIRKS_GET,
+  DRM_PVR_DEV_QUERY_ENHANCEMENTS_GET,
+  DRM_PVR_DEV_QUERY_HEAP_INFO_GET,
+  DRM_PVR_DEV_QUERY_STATIC_DATA_AREAS_GET,
+};
+struct drm_pvr_ioctl_dev_query_args {
+  __u32 type;
+  __u32 size;
+  __u64 pointer;
+};
+#define DRM_PVR_BO_BYPASS_DEVICE_CACHE _BITULL(0)
+#define DRM_PVR_BO_PM_FW_PROTECT _BITULL(1)
+#define DRM_PVR_BO_ALLOW_CPU_USERSPACE_ACCESS _BITULL(2)
+#define DRM_PVR_BO_FLAGS_MASK (DRM_PVR_BO_BYPASS_DEVICE_CACHE | DRM_PVR_BO_PM_FW_PROTECT | DRM_PVR_BO_ALLOW_CPU_USERSPACE_ACCESS)
+struct drm_pvr_ioctl_create_bo_args {
+  __u64 size;
+  __u32 handle;
+  __u32 _padding_c;
+  __u64 flags;
+};
+struct drm_pvr_ioctl_get_bo_mmap_offset_args {
+  __u32 handle;
+  __u32 _padding_4;
+  __u64 offset;
+};
+struct drm_pvr_ioctl_create_vm_context_args {
+  __u32 handle;
+  __u32 _padding_4;
+};
+struct drm_pvr_ioctl_destroy_vm_context_args {
+  __u32 handle;
+  __u32 _padding_4;
+};
+struct drm_pvr_ioctl_vm_map_args {
+  __u32 vm_context_handle;
+  __u32 flags;
+  __u64 device_addr;
+  __u32 handle;
+  __u32 _padding_14;
+  __u64 offset;
+  __u64 size;
+};
+struct drm_pvr_ioctl_vm_unmap_args {
+  __u32 vm_context_handle;
+  __u32 _padding_4;
+  __u64 device_addr;
+  __u64 size;
+};
+enum drm_pvr_ctx_priority {
+  DRM_PVR_CTX_PRIORITY_LOW = - 512,
+  DRM_PVR_CTX_PRIORITY_NORMAL = 0,
+  DRM_PVR_CTX_PRIORITY_HIGH = 512,
+};
+enum drm_pvr_ctx_type {
+  DRM_PVR_CTX_TYPE_RENDER = 0,
+  DRM_PVR_CTX_TYPE_COMPUTE,
+  DRM_PVR_CTX_TYPE_TRANSFER_FRAG,
+};
+struct drm_pvr_ioctl_create_context_args {
+  __u32 type;
+  __u32 flags;
+  __s32 priority;
+  __u32 handle;
+  __u64 static_context_state;
+  __u32 static_context_state_len;
+  __u32 vm_context_handle;
+  __u64 callstack_addr;
+};
+struct drm_pvr_ioctl_destroy_context_args {
+  __u32 handle;
+  __u32 _padding_4;
+};
+struct drm_pvr_ioctl_create_free_list_args {
+  __u64 free_list_gpu_addr;
+  __u32 initial_num_pages;
+  __u32 max_num_pages;
+  __u32 grow_num_pages;
+  __u32 grow_threshold;
+  __u32 vm_context_handle;
+  __u32 handle;
+};
+struct drm_pvr_ioctl_destroy_free_list_args {
+  __u32 handle;
+  __u32 _padding_4;
+};
+struct drm_pvr_create_hwrt_geom_data_args {
+  __u64 tpc_dev_addr;
+  __u32 tpc_size;
+  __u32 tpc_stride;
+  __u64 vheap_table_dev_addr;
+  __u64 rtc_dev_addr;
+};
+struct drm_pvr_create_hwrt_rt_data_args {
+  __u64 pm_mlist_dev_addr;
+  __u64 macrotile_array_dev_addr;
+  __u64 region_header_dev_addr;
+};
+#define PVR_DRM_HWRT_FREE_LIST_LOCAL 0
+#define PVR_DRM_HWRT_FREE_LIST_GLOBAL 1U
+struct drm_pvr_ioctl_create_hwrt_dataset_args {
+  struct drm_pvr_create_hwrt_geom_data_args geom_data_args;
+  struct drm_pvr_create_hwrt_rt_data_args rt_data_args[2];
+  __u32 free_list_handles[2];
+  __u32 width;
+  __u32 height;
+  __u32 samples;
+  __u32 layers;
+  __u32 isp_merge_lower_x;
+  __u32 isp_merge_lower_y;
+  __u32 isp_merge_scale_x;
+  __u32 isp_merge_scale_y;
+  __u32 isp_merge_upper_x;
+  __u32 isp_merge_upper_y;
+  __u32 region_header_size;
+  __u32 handle;
+};
+struct drm_pvr_ioctl_destroy_hwrt_dataset_args {
+  __u32 handle;
+  __u32 _padding_4;
+};
+#define DRM_PVR_SYNC_OP_FLAG_HANDLE_TYPE_MASK 0xf
+#define DRM_PVR_SYNC_OP_FLAG_HANDLE_TYPE_SYNCOBJ 0
+#define DRM_PVR_SYNC_OP_FLAG_HANDLE_TYPE_TIMELINE_SYNCOBJ 1
+#define DRM_PVR_SYNC_OP_FLAG_SIGNAL _BITULL(31)
+#define DRM_PVR_SYNC_OP_FLAG_WAIT 0
+#define DRM_PVR_SYNC_OP_FLAGS_MASK (DRM_PVR_SYNC_OP_FLAG_HANDLE_TYPE_MASK | DRM_PVR_SYNC_OP_FLAG_SIGNAL)
+struct drm_pvr_sync_op {
+  __u32 handle;
+  __u32 flags;
+  __u64 value;
+};
+#define DRM_PVR_SUBMIT_JOB_GEOM_CMD_FIRST _BITULL(0)
+#define DRM_PVR_SUBMIT_JOB_GEOM_CMD_LAST _BITULL(1)
+#define DRM_PVR_SUBMIT_JOB_GEOM_CMD_SINGLE_CORE _BITULL(2)
+#define DRM_PVR_SUBMIT_JOB_GEOM_CMD_FLAGS_MASK (DRM_PVR_SUBMIT_JOB_GEOM_CMD_FIRST | DRM_PVR_SUBMIT_JOB_GEOM_CMD_LAST | DRM_PVR_SUBMIT_JOB_GEOM_CMD_SINGLE_CORE)
+#define DRM_PVR_SUBMIT_JOB_FRAG_CMD_SINGLE_CORE _BITULL(0)
+#define DRM_PVR_SUBMIT_JOB_FRAG_CMD_DEPTHBUFFER _BITULL(1)
+#define DRM_PVR_SUBMIT_JOB_FRAG_CMD_STENCILBUFFER _BITULL(2)
+#define DRM_PVR_SUBMIT_JOB_FRAG_CMD_PREVENT_CDM_OVERLAP _BITULL(3)
+#define DRM_PVR_SUBMIT_JOB_FRAG_CMD_SCRATCHBUFFER _BITULL(4)
+#define DRM_PVR_SUBMIT_JOB_FRAG_CMD_GET_VIS_RESULTS _BITULL(5)
+#define DRM_PVR_SUBMIT_JOB_FRAG_CMD_PARTIAL_RENDER _BITULL(6)
+#define DRM_PVR_SUBMIT_JOB_FRAG_CMD_DISABLE_PIXELMERGE _BITULL(7)
+#define DRM_PVR_SUBMIT_JOB_FRAG_CMD_FLAGS_MASK (DRM_PVR_SUBMIT_JOB_FRAG_CMD_SINGLE_CORE | DRM_PVR_SUBMIT_JOB_FRAG_CMD_DEPTHBUFFER | DRM_PVR_SUBMIT_JOB_FRAG_CMD_STENCILBUFFER | DRM_PVR_SUBMIT_JOB_FRAG_CMD_PREVENT_CDM_OVERLAP | DRM_PVR_SUBMIT_JOB_FRAG_CMD_SCRATCHBUFFER | DRM_PVR_SUBMIT_JOB_FRAG_CMD_GET_VIS_RESULTS | DRM_PVR_SUBMIT_JOB_FRAG_CMD_PARTIAL_RENDER | DRM_PVR_SUBMIT_JOB_FRAG_CMD_DISABLE_PIXELMERGE)
+#define DRM_PVR_SUBMIT_JOB_COMPUTE_CMD_PREVENT_ALL_OVERLAP _BITULL(0)
+#define DRM_PVR_SUBMIT_JOB_COMPUTE_CMD_SINGLE_CORE _BITULL(1)
+#define DRM_PVR_SUBMIT_JOB_COMPUTE_CMD_FLAGS_MASK (DRM_PVR_SUBMIT_JOB_COMPUTE_CMD_PREVENT_ALL_OVERLAP | DRM_PVR_SUBMIT_JOB_COMPUTE_CMD_SINGLE_CORE)
+#define DRM_PVR_SUBMIT_JOB_TRANSFER_CMD_SINGLE_CORE _BITULL(0)
+#define DRM_PVR_SUBMIT_JOB_TRANSFER_CMD_FLAGS_MASK DRM_PVR_SUBMIT_JOB_TRANSFER_CMD_SINGLE_CORE
+enum drm_pvr_job_type {
+  DRM_PVR_JOB_TYPE_GEOMETRY = 0,
+  DRM_PVR_JOB_TYPE_FRAGMENT,
+  DRM_PVR_JOB_TYPE_COMPUTE,
+  DRM_PVR_JOB_TYPE_TRANSFER_FRAG,
+};
+struct drm_pvr_hwrt_data_ref {
+  __u32 set_handle;
+  __u32 data_index;
+};
+struct drm_pvr_job {
+  __u32 type;
+  __u32 context_handle;
+  __u32 flags;
+  __u32 cmd_stream_len;
+  __u64 cmd_stream;
+  struct drm_pvr_obj_array sync_ops;
+  struct drm_pvr_hwrt_data_ref hwrt;
+};
+struct drm_pvr_ioctl_submit_jobs_args {
+  struct drm_pvr_obj_array jobs;
+};
+#ifdef __cplusplus
+}
+#endif
+#endif
diff --git a/libc/kernel/uapi/drm/qaic_accel.h b/libc/kernel/uapi/drm/qaic_accel.h
new file mode 100644
index 0000000..9e50aec
--- /dev/null
+++ b/libc/kernel/uapi/drm/qaic_accel.h
@@ -0,0 +1,198 @@
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
+#ifndef QAIC_ACCEL_H_
+#define QAIC_ACCEL_H_
+#include "drm.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+#define QAIC_MANAGE_MAX_MSG_LENGTH SZ_4K
+#define QAIC_SEM_INSYNCFENCE 2
+#define QAIC_SEM_OUTSYNCFENCE 1
+#define QAIC_SEM_NOP 0
+#define QAIC_SEM_INIT 1
+#define QAIC_SEM_INC 2
+#define QAIC_SEM_DEC 3
+#define QAIC_SEM_WAIT_EQUAL 4
+#define QAIC_SEM_WAIT_GT_EQ 5
+#define QAIC_SEM_WAIT_GT_0 6
+#define QAIC_TRANS_UNDEFINED 0
+#define QAIC_TRANS_PASSTHROUGH_FROM_USR 1
+#define QAIC_TRANS_PASSTHROUGH_TO_USR 2
+#define QAIC_TRANS_PASSTHROUGH_FROM_DEV 3
+#define QAIC_TRANS_PASSTHROUGH_TO_DEV 4
+#define QAIC_TRANS_DMA_XFER_FROM_USR 5
+#define QAIC_TRANS_DMA_XFER_TO_DEV 6
+#define QAIC_TRANS_ACTIVATE_FROM_USR 7
+#define QAIC_TRANS_ACTIVATE_FROM_DEV 8
+#define QAIC_TRANS_ACTIVATE_TO_DEV 9
+#define QAIC_TRANS_DEACTIVATE_FROM_USR 10
+#define QAIC_TRANS_DEACTIVATE_FROM_DEV 11
+#define QAIC_TRANS_STATUS_FROM_USR 12
+#define QAIC_TRANS_STATUS_TO_USR 13
+#define QAIC_TRANS_STATUS_FROM_DEV 14
+#define QAIC_TRANS_STATUS_TO_DEV 15
+#define QAIC_TRANS_TERMINATE_FROM_DEV 16
+#define QAIC_TRANS_TERMINATE_TO_DEV 17
+#define QAIC_TRANS_DMA_XFER_CONT 18
+#define QAIC_TRANS_VALIDATE_PARTITION_FROM_DEV 19
+#define QAIC_TRANS_VALIDATE_PARTITION_TO_DEV 20
+struct qaic_manage_trans_hdr {
+  __u32 type;
+  __u32 len;
+};
+struct qaic_manage_trans_passthrough {
+  struct qaic_manage_trans_hdr hdr;
+  __u8 data[];
+};
+struct qaic_manage_trans_dma_xfer {
+  struct qaic_manage_trans_hdr hdr;
+  __u32 tag;
+  __u32 pad;
+  __u64 addr;
+  __u64 size;
+};
+struct qaic_manage_trans_activate_to_dev {
+  struct qaic_manage_trans_hdr hdr;
+  __u32 queue_size;
+  __u32 eventfd;
+  __u32 options;
+  __u32 pad;
+};
+struct qaic_manage_trans_activate_from_dev {
+  struct qaic_manage_trans_hdr hdr;
+  __u32 status;
+  __u32 dbc_id;
+  __u64 options;
+};
+struct qaic_manage_trans_deactivate {
+  struct qaic_manage_trans_hdr hdr;
+  __u32 dbc_id;
+  __u32 pad;
+};
+struct qaic_manage_trans_status_to_dev {
+  struct qaic_manage_trans_hdr hdr;
+};
+struct qaic_manage_trans_status_from_dev {
+  struct qaic_manage_trans_hdr hdr;
+  __u16 major;
+  __u16 minor;
+  __u32 status;
+  __u64 status_flags;
+};
+struct qaic_manage_msg {
+  __u32 len;
+  __u32 count;
+  __u64 data;
+};
+struct qaic_create_bo {
+  __u64 size;
+  __u32 handle;
+  __u32 pad;
+};
+struct qaic_mmap_bo {
+  __u32 handle;
+  __u32 pad;
+  __u64 offset;
+};
+struct qaic_sem {
+  __u16 val;
+  __u8 index;
+  __u8 presync;
+  __u8 cmd;
+  __u8 flags;
+  __u16 pad;
+};
+struct qaic_attach_slice_entry {
+  __u64 size;
+  struct qaic_sem sem0;
+  struct qaic_sem sem1;
+  struct qaic_sem sem2;
+  struct qaic_sem sem3;
+  __u64 dev_addr;
+  __u64 db_addr;
+  __u32 db_data;
+  __u32 db_len;
+  __u64 offset;
+};
+struct qaic_attach_slice_hdr {
+  __u32 count;
+  __u32 dbc_id;
+  __u32 handle;
+  __u32 dir;
+  __u64 size;
+};
+struct qaic_attach_slice {
+  struct qaic_attach_slice_hdr hdr;
+  __u64 data;
+};
+struct qaic_execute_entry {
+  __u32 handle;
+  __u32 dir;
+};
+struct qaic_partial_execute_entry {
+  __u32 handle;
+  __u32 dir;
+  __u64 resize;
+};
+struct qaic_execute_hdr {
+  __u32 count;
+  __u32 dbc_id;
+};
+struct qaic_execute {
+  struct qaic_execute_hdr hdr;
+  __u64 data;
+};
+struct qaic_wait {
+  __u32 handle;
+  __u32 timeout;
+  __u32 dbc_id;
+  __u32 pad;
+};
+struct qaic_perf_stats_hdr {
+  __u16 count;
+  __u16 pad;
+  __u32 dbc_id;
+};
+struct qaic_perf_stats {
+  struct qaic_perf_stats_hdr hdr;
+  __u64 data;
+};
+struct qaic_perf_stats_entry {
+  __u32 handle;
+  __u32 queue_level_before;
+  __u32 num_queue_element;
+  __u32 submit_latency_us;
+  __u32 device_latency_us;
+  __u32 pad;
+};
+struct qaic_detach_slice {
+  __u32 handle;
+  __u32 pad;
+};
+#define DRM_QAIC_MANAGE 0x00
+#define DRM_QAIC_CREATE_BO 0x01
+#define DRM_QAIC_MMAP_BO 0x02
+#define DRM_QAIC_ATTACH_SLICE_BO 0x03
+#define DRM_QAIC_EXECUTE_BO 0x04
+#define DRM_QAIC_PARTIAL_EXECUTE_BO 0x05
+#define DRM_QAIC_WAIT_BO 0x06
+#define DRM_QAIC_PERF_STATS_BO 0x07
+#define DRM_QAIC_DETACH_SLICE_BO 0x08
+#define DRM_IOCTL_QAIC_MANAGE DRM_IOWR(DRM_COMMAND_BASE + DRM_QAIC_MANAGE, struct qaic_manage_msg)
+#define DRM_IOCTL_QAIC_CREATE_BO DRM_IOWR(DRM_COMMAND_BASE + DRM_QAIC_CREATE_BO, struct qaic_create_bo)
+#define DRM_IOCTL_QAIC_MMAP_BO DRM_IOWR(DRM_COMMAND_BASE + DRM_QAIC_MMAP_BO, struct qaic_mmap_bo)
+#define DRM_IOCTL_QAIC_ATTACH_SLICE_BO DRM_IOW(DRM_COMMAND_BASE + DRM_QAIC_ATTACH_SLICE_BO, struct qaic_attach_slice)
+#define DRM_IOCTL_QAIC_EXECUTE_BO DRM_IOW(DRM_COMMAND_BASE + DRM_QAIC_EXECUTE_BO, struct qaic_execute)
+#define DRM_IOCTL_QAIC_PARTIAL_EXECUTE_BO DRM_IOW(DRM_COMMAND_BASE + DRM_QAIC_PARTIAL_EXECUTE_BO, struct qaic_execute)
+#define DRM_IOCTL_QAIC_WAIT_BO DRM_IOW(DRM_COMMAND_BASE + DRM_QAIC_WAIT_BO, struct qaic_wait)
+#define DRM_IOCTL_QAIC_PERF_STATS_BO DRM_IOWR(DRM_COMMAND_BASE + DRM_QAIC_PERF_STATS_BO, struct qaic_perf_stats)
+#define DRM_IOCTL_QAIC_DETACH_SLICE_BO DRM_IOW(DRM_COMMAND_BASE + DRM_QAIC_DETACH_SLICE_BO, struct qaic_detach_slice)
+#ifdef __cplusplus
+}
+#endif
+#endif
diff --git a/libc/kernel/uapi/drm/qxl_drm.h b/libc/kernel/uapi/drm/qxl_drm.h
index e9521c4..b241234 100644
--- a/libc/kernel/uapi/drm/qxl_drm.h
+++ b/libc/kernel/uapi/drm/qxl_drm.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef QXL_DRM_H
 #define QXL_DRM_H
 #include "drm.h"
diff --git a/libc/kernel/uapi/drm/r128_drm.h b/libc/kernel/uapi/drm/r128_drm.h
deleted file mode 100644
index 3e013b1..0000000
--- a/libc/kernel/uapi/drm/r128_drm.h
+++ /dev/null
@@ -1,235 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef __R128_DRM_H__
-#define __R128_DRM_H__
-#include "drm.h"
-#ifdef __cplusplus
-extern "C" {
-#endif
-#ifndef __R128_SAREA_DEFINES__
-#define __R128_SAREA_DEFINES__
-#define R128_UPLOAD_CONTEXT 0x001
-#define R128_UPLOAD_SETUP 0x002
-#define R128_UPLOAD_TEX0 0x004
-#define R128_UPLOAD_TEX1 0x008
-#define R128_UPLOAD_TEX0IMAGES 0x010
-#define R128_UPLOAD_TEX1IMAGES 0x020
-#define R128_UPLOAD_CORE 0x040
-#define R128_UPLOAD_MASKS 0x080
-#define R128_UPLOAD_WINDOW 0x100
-#define R128_UPLOAD_CLIPRECTS 0x200
-#define R128_REQUIRE_QUIESCENCE 0x400
-#define R128_UPLOAD_ALL 0x7ff
-#define R128_FRONT 0x1
-#define R128_BACK 0x2
-#define R128_DEPTH 0x4
-#define R128_POINTS 0x1
-#define R128_LINES 0x2
-#define R128_LINE_STRIP 0x3
-#define R128_TRIANGLES 0x4
-#define R128_TRIANGLE_FAN 0x5
-#define R128_TRIANGLE_STRIP 0x6
-#define R128_BUFFER_SIZE 16384
-#define R128_INDEX_PRIM_OFFSET 20
-#define R128_HOSTDATA_BLIT_OFFSET 32
-#define R128_NR_SAREA_CLIPRECTS 12
-#define R128_LOCAL_TEX_HEAP 0
-#define R128_AGP_TEX_HEAP 1
-#define R128_NR_TEX_HEAPS 2
-#define R128_NR_TEX_REGIONS 64
-#define R128_LOG_TEX_GRANULARITY 16
-#define R128_NR_CONTEXT_REGS 12
-#define R128_MAX_TEXTURE_LEVELS 11
-#define R128_MAX_TEXTURE_UNITS 2
-#endif
-typedef struct {
-  unsigned int dst_pitch_offset_c;
-  unsigned int dp_gui_master_cntl_c;
-  unsigned int sc_top_left_c;
-  unsigned int sc_bottom_right_c;
-  unsigned int z_offset_c;
-  unsigned int z_pitch_c;
-  unsigned int z_sten_cntl_c;
-  unsigned int tex_cntl_c;
-  unsigned int misc_3d_state_cntl_reg;
-  unsigned int texture_clr_cmp_clr_c;
-  unsigned int texture_clr_cmp_msk_c;
-  unsigned int fog_color_c;
-  unsigned int tex_size_pitch_c;
-  unsigned int constant_color_c;
-  unsigned int pm4_vc_fpu_setup;
-  unsigned int setup_cntl;
-  unsigned int dp_write_mask;
-  unsigned int sten_ref_mask_c;
-  unsigned int plane_3d_mask_c;
-  unsigned int window_xy_offset;
-  unsigned int scale_3d_cntl;
-} drm_r128_context_regs_t;
-typedef struct {
-  unsigned int tex_cntl;
-  unsigned int tex_combine_cntl;
-  unsigned int tex_size_pitch;
-  unsigned int tex_offset[R128_MAX_TEXTURE_LEVELS];
-  unsigned int tex_border_color;
-} drm_r128_texture_regs_t;
-typedef struct drm_r128_sarea {
-  drm_r128_context_regs_t context_state;
-  drm_r128_texture_regs_t tex_state[R128_MAX_TEXTURE_UNITS];
-  unsigned int dirty;
-  unsigned int vertsize;
-  unsigned int vc_format;
-  struct drm_clip_rect boxes[R128_NR_SAREA_CLIPRECTS];
-  unsigned int nbox;
-  unsigned int last_frame;
-  unsigned int last_dispatch;
-  struct drm_tex_region tex_list[R128_NR_TEX_HEAPS][R128_NR_TEX_REGIONS + 1];
-  unsigned int tex_age[R128_NR_TEX_HEAPS];
-  int ctx_owner;
-  int pfAllowPageFlip;
-  int pfCurrentPage;
-} drm_r128_sarea_t;
-#define DRM_R128_INIT 0x00
-#define DRM_R128_CCE_START 0x01
-#define DRM_R128_CCE_STOP 0x02
-#define DRM_R128_CCE_RESET 0x03
-#define DRM_R128_CCE_IDLE 0x04
-#define DRM_R128_RESET 0x06
-#define DRM_R128_SWAP 0x07
-#define DRM_R128_CLEAR 0x08
-#define DRM_R128_VERTEX 0x09
-#define DRM_R128_INDICES 0x0a
-#define DRM_R128_BLIT 0x0b
-#define DRM_R128_DEPTH 0x0c
-#define DRM_R128_STIPPLE 0x0d
-#define DRM_R128_INDIRECT 0x0f
-#define DRM_R128_FULLSCREEN 0x10
-#define DRM_R128_CLEAR2 0x11
-#define DRM_R128_GETPARAM 0x12
-#define DRM_R128_FLIP 0x13
-#define DRM_IOCTL_R128_INIT DRM_IOW(DRM_COMMAND_BASE + DRM_R128_INIT, drm_r128_init_t)
-#define DRM_IOCTL_R128_CCE_START DRM_IO(DRM_COMMAND_BASE + DRM_R128_CCE_START)
-#define DRM_IOCTL_R128_CCE_STOP DRM_IOW(DRM_COMMAND_BASE + DRM_R128_CCE_STOP, drm_r128_cce_stop_t)
-#define DRM_IOCTL_R128_CCE_RESET DRM_IO(DRM_COMMAND_BASE + DRM_R128_CCE_RESET)
-#define DRM_IOCTL_R128_CCE_IDLE DRM_IO(DRM_COMMAND_BASE + DRM_R128_CCE_IDLE)
-#define DRM_IOCTL_R128_RESET DRM_IO(DRM_COMMAND_BASE + DRM_R128_RESET)
-#define DRM_IOCTL_R128_SWAP DRM_IO(DRM_COMMAND_BASE + DRM_R128_SWAP)
-#define DRM_IOCTL_R128_CLEAR DRM_IOW(DRM_COMMAND_BASE + DRM_R128_CLEAR, drm_r128_clear_t)
-#define DRM_IOCTL_R128_VERTEX DRM_IOW(DRM_COMMAND_BASE + DRM_R128_VERTEX, drm_r128_vertex_t)
-#define DRM_IOCTL_R128_INDICES DRM_IOW(DRM_COMMAND_BASE + DRM_R128_INDICES, drm_r128_indices_t)
-#define DRM_IOCTL_R128_BLIT DRM_IOW(DRM_COMMAND_BASE + DRM_R128_BLIT, drm_r128_blit_t)
-#define DRM_IOCTL_R128_DEPTH DRM_IOW(DRM_COMMAND_BASE + DRM_R128_DEPTH, drm_r128_depth_t)
-#define DRM_IOCTL_R128_STIPPLE DRM_IOW(DRM_COMMAND_BASE + DRM_R128_STIPPLE, drm_r128_stipple_t)
-#define DRM_IOCTL_R128_INDIRECT DRM_IOWR(DRM_COMMAND_BASE + DRM_R128_INDIRECT, drm_r128_indirect_t)
-#define DRM_IOCTL_R128_FULLSCREEN DRM_IOW(DRM_COMMAND_BASE + DRM_R128_FULLSCREEN, drm_r128_fullscreen_t)
-#define DRM_IOCTL_R128_CLEAR2 DRM_IOW(DRM_COMMAND_BASE + DRM_R128_CLEAR2, drm_r128_clear2_t)
-#define DRM_IOCTL_R128_GETPARAM DRM_IOWR(DRM_COMMAND_BASE + DRM_R128_GETPARAM, drm_r128_getparam_t)
-#define DRM_IOCTL_R128_FLIP DRM_IO(DRM_COMMAND_BASE + DRM_R128_FLIP)
-typedef struct drm_r128_init {
-  enum {
-    R128_INIT_CCE = 0x01,
-    R128_CLEANUP_CCE = 0x02
-  } func;
-  unsigned long sarea_priv_offset;
-  int is_pci;
-  int cce_mode;
-  int cce_secure;
-  int ring_size;
-  int usec_timeout;
-  unsigned int fb_bpp;
-  unsigned int front_offset, front_pitch;
-  unsigned int back_offset, back_pitch;
-  unsigned int depth_bpp;
-  unsigned int depth_offset, depth_pitch;
-  unsigned int span_offset;
-  unsigned long fb_offset;
-  unsigned long mmio_offset;
-  unsigned long ring_offset;
-  unsigned long ring_rptr_offset;
-  unsigned long buffers_offset;
-  unsigned long agp_textures_offset;
-} drm_r128_init_t;
-typedef struct drm_r128_cce_stop {
-  int flush;
-  int idle;
-} drm_r128_cce_stop_t;
-typedef struct drm_r128_clear {
-  unsigned int flags;
-  unsigned int clear_color;
-  unsigned int clear_depth;
-  unsigned int color_mask;
-  unsigned int depth_mask;
-} drm_r128_clear_t;
-typedef struct drm_r128_vertex {
-  int prim;
-  int idx;
-  int count;
-  int discard;
-} drm_r128_vertex_t;
-typedef struct drm_r128_indices {
-  int prim;
-  int idx;
-  int start;
-  int end;
-  int discard;
-} drm_r128_indices_t;
-typedef struct drm_r128_blit {
-  int idx;
-  int pitch;
-  int offset;
-  int format;
-  unsigned short x, y;
-  unsigned short width, height;
-} drm_r128_blit_t;
-typedef struct drm_r128_depth {
-  enum {
-    R128_WRITE_SPAN = 0x01,
-    R128_WRITE_PIXELS = 0x02,
-    R128_READ_SPAN = 0x03,
-    R128_READ_PIXELS = 0x04
-  } func;
-  int n;
-  int  * x;
-  int  * y;
-  unsigned int  * buffer;
-  unsigned char  * mask;
-} drm_r128_depth_t;
-typedef struct drm_r128_stipple {
-  unsigned int  * mask;
-} drm_r128_stipple_t;
-typedef struct drm_r128_indirect {
-  int idx;
-  int start;
-  int end;
-  int discard;
-} drm_r128_indirect_t;
-typedef struct drm_r128_fullscreen {
-  enum {
-    R128_INIT_FULLSCREEN = 0x01,
-    R128_CLEANUP_FULLSCREEN = 0x02
-  } func;
-} drm_r128_fullscreen_t;
-#define R128_PARAM_IRQ_NR 1
-typedef struct drm_r128_getparam {
-  int param;
-  void  * value;
-} drm_r128_getparam_t;
-#ifdef __cplusplus
-}
-#endif
-#endif
diff --git a/libc/kernel/uapi/drm/radeon_drm.h b/libc/kernel/uapi/drm/radeon_drm.h
index 3ec6bb3..8f45904 100644
--- a/libc/kernel/uapi/drm/radeon_drm.h
+++ b/libc/kernel/uapi/drm/radeon_drm.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __RADEON_DRM_H__
 #define __RADEON_DRM_H__
 #include "drm.h"
diff --git a/libc/kernel/uapi/drm/savage_drm.h b/libc/kernel/uapi/drm/savage_drm.h
deleted file mode 100644
index efc0ae6..0000000
--- a/libc/kernel/uapi/drm/savage_drm.h
+++ /dev/null
@@ -1,157 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef __SAVAGE_DRM_H__
-#define __SAVAGE_DRM_H__
-#include "drm.h"
-#ifdef __cplusplus
-extern "C" {
-#endif
-#ifndef __SAVAGE_SAREA_DEFINES__
-#define __SAVAGE_SAREA_DEFINES__
-#define SAVAGE_CARD_HEAP 0
-#define SAVAGE_AGP_HEAP 1
-#define SAVAGE_NR_TEX_HEAPS 2
-#define SAVAGE_NR_TEX_REGIONS 16
-#define SAVAGE_LOG_MIN_TEX_REGION_SIZE 16
-#endif
-typedef struct _drm_savage_sarea {
-  struct drm_tex_region texList[SAVAGE_NR_TEX_HEAPS][SAVAGE_NR_TEX_REGIONS + 1];
-  unsigned int texAge[SAVAGE_NR_TEX_HEAPS];
-  int ctxOwner;
-} drm_savage_sarea_t, * drm_savage_sarea_ptr;
-#define DRM_SAVAGE_BCI_INIT 0x00
-#define DRM_SAVAGE_BCI_CMDBUF 0x01
-#define DRM_SAVAGE_BCI_EVENT_EMIT 0x02
-#define DRM_SAVAGE_BCI_EVENT_WAIT 0x03
-#define DRM_IOCTL_SAVAGE_BCI_INIT DRM_IOW(DRM_COMMAND_BASE + DRM_SAVAGE_BCI_INIT, drm_savage_init_t)
-#define DRM_IOCTL_SAVAGE_BCI_CMDBUF DRM_IOW(DRM_COMMAND_BASE + DRM_SAVAGE_BCI_CMDBUF, drm_savage_cmdbuf_t)
-#define DRM_IOCTL_SAVAGE_BCI_EVENT_EMIT DRM_IOWR(DRM_COMMAND_BASE + DRM_SAVAGE_BCI_EVENT_EMIT, drm_savage_event_emit_t)
-#define DRM_IOCTL_SAVAGE_BCI_EVENT_WAIT DRM_IOW(DRM_COMMAND_BASE + DRM_SAVAGE_BCI_EVENT_WAIT, drm_savage_event_wait_t)
-#define SAVAGE_DMA_PCI 1
-#define SAVAGE_DMA_AGP 3
-typedef struct drm_savage_init {
-  enum {
-    SAVAGE_INIT_BCI = 1,
-    SAVAGE_CLEANUP_BCI = 2
-  } func;
-  unsigned int sarea_priv_offset;
-  unsigned int cob_size;
-  unsigned int bci_threshold_lo, bci_threshold_hi;
-  unsigned int dma_type;
-  unsigned int fb_bpp;
-  unsigned int front_offset, front_pitch;
-  unsigned int back_offset, back_pitch;
-  unsigned int depth_bpp;
-  unsigned int depth_offset, depth_pitch;
-  unsigned int texture_offset;
-  unsigned int texture_size;
-  unsigned long status_offset;
-  unsigned long buffers_offset;
-  unsigned long agp_textures_offset;
-  unsigned long cmd_dma_offset;
-} drm_savage_init_t;
-typedef union drm_savage_cmd_header drm_savage_cmd_header_t;
-typedef struct drm_savage_cmdbuf {
-  drm_savage_cmd_header_t  * cmd_addr;
-  unsigned int size;
-  unsigned int dma_idx;
-  int discard;
-  unsigned int  * vb_addr;
-  unsigned int vb_size;
-  unsigned int vb_stride;
-  struct drm_clip_rect  * box_addr;
-  unsigned int nbox;
-} drm_savage_cmdbuf_t;
-#define SAVAGE_WAIT_2D 0x1
-#define SAVAGE_WAIT_3D 0x2
-#define SAVAGE_WAIT_IRQ 0x4
-typedef struct drm_savage_event {
-  unsigned int count;
-  unsigned int flags;
-} drm_savage_event_emit_t, drm_savage_event_wait_t;
-#define SAVAGE_CMD_STATE 0
-#define SAVAGE_CMD_DMA_PRIM 1
-#define SAVAGE_CMD_VB_PRIM 2
-#define SAVAGE_CMD_DMA_IDX 3
-#define SAVAGE_CMD_VB_IDX 4
-#define SAVAGE_CMD_CLEAR 5
-#define SAVAGE_CMD_SWAP 6
-#define SAVAGE_PRIM_TRILIST 0
-#define SAVAGE_PRIM_TRISTRIP 1
-#define SAVAGE_PRIM_TRIFAN 2
-#define SAVAGE_PRIM_TRILIST_201 3
-#define SAVAGE_SKIP_Z 0x01
-#define SAVAGE_SKIP_W 0x02
-#define SAVAGE_SKIP_C0 0x04
-#define SAVAGE_SKIP_C1 0x08
-#define SAVAGE_SKIP_S0 0x10
-#define SAVAGE_SKIP_T0 0x20
-#define SAVAGE_SKIP_ST0 0x30
-#define SAVAGE_SKIP_S1 0x40
-#define SAVAGE_SKIP_T1 0x80
-#define SAVAGE_SKIP_ST1 0xc0
-#define SAVAGE_SKIP_ALL_S3D 0x3f
-#define SAVAGE_SKIP_ALL_S4 0xff
-#define SAVAGE_FRONT 0x1
-#define SAVAGE_BACK 0x2
-#define SAVAGE_DEPTH 0x4
-union drm_savage_cmd_header {
-  struct {
-    unsigned char cmd;
-    unsigned char pad0;
-    unsigned short pad1;
-    unsigned short pad2;
-    unsigned short pad3;
-  } cmd;
-  struct {
-    unsigned char cmd;
-    unsigned char global;
-    unsigned short count;
-    unsigned short start;
-    unsigned short pad3;
-  } state;
-  struct {
-    unsigned char cmd;
-    unsigned char prim;
-    unsigned short skip;
-    unsigned short count;
-    unsigned short start;
-  } prim;
-  struct {
-    unsigned char cmd;
-    unsigned char prim;
-    unsigned short skip;
-    unsigned short count;
-    unsigned short pad3;
-  } idx;
-  struct {
-    unsigned char cmd;
-    unsigned char pad0;
-    unsigned short pad1;
-    unsigned int flags;
-  } clear0;
-  struct {
-    unsigned int mask;
-    unsigned int value;
-  } clear1;
-};
-#ifdef __cplusplus
-}
-#endif
-#endif
diff --git a/libc/kernel/uapi/drm/sis_drm.h b/libc/kernel/uapi/drm/sis_drm.h
deleted file mode 100644
index 1606a85..0000000
--- a/libc/kernel/uapi/drm/sis_drm.h
+++ /dev/null
@@ -1,54 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef __SIS_DRM_H__
-#define __SIS_DRM_H__
-#include "drm.h"
-#ifdef __cplusplus
-extern "C" {
-#endif
-#define NOT_USED_0_3
-#define DRM_SIS_FB_ALLOC 0x04
-#define DRM_SIS_FB_FREE 0x05
-#define NOT_USED_6_12
-#define DRM_SIS_AGP_INIT 0x13
-#define DRM_SIS_AGP_ALLOC 0x14
-#define DRM_SIS_AGP_FREE 0x15
-#define DRM_SIS_FB_INIT 0x16
-#define DRM_IOCTL_SIS_FB_ALLOC DRM_IOWR(DRM_COMMAND_BASE + DRM_SIS_FB_ALLOC, drm_sis_mem_t)
-#define DRM_IOCTL_SIS_FB_FREE DRM_IOW(DRM_COMMAND_BASE + DRM_SIS_FB_FREE, drm_sis_mem_t)
-#define DRM_IOCTL_SIS_AGP_INIT DRM_IOWR(DRM_COMMAND_BASE + DRM_SIS_AGP_INIT, drm_sis_agp_t)
-#define DRM_IOCTL_SIS_AGP_ALLOC DRM_IOWR(DRM_COMMAND_BASE + DRM_SIS_AGP_ALLOC, drm_sis_mem_t)
-#define DRM_IOCTL_SIS_AGP_FREE DRM_IOW(DRM_COMMAND_BASE + DRM_SIS_AGP_FREE, drm_sis_mem_t)
-#define DRM_IOCTL_SIS_FB_INIT DRM_IOW(DRM_COMMAND_BASE + DRM_SIS_FB_INIT, drm_sis_fb_t)
-typedef struct {
-  int context;
-  unsigned long offset;
-  unsigned long size;
-  unsigned long free;
-} drm_sis_mem_t;
-typedef struct {
-  unsigned long offset, size;
-} drm_sis_agp_t;
-typedef struct {
-  unsigned long offset, size;
-} drm_sis_fb_t;
-#ifdef __cplusplus
-}
-#endif
-#endif
diff --git a/libc/kernel/uapi/drm/tegra_drm.h b/libc/kernel/uapi/drm/tegra_drm.h
index 5e90635..ad77bf4 100644
--- a/libc/kernel/uapi/drm/tegra_drm.h
+++ b/libc/kernel/uapi/drm/tegra_drm.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_TEGRA_DRM_H_
 #define _UAPI_TEGRA_DRM_H_
 #include "drm.h"
diff --git a/libc/kernel/uapi/drm/v3d_drm.h b/libc/kernel/uapi/drm/v3d_drm.h
index 5887678..b7aca21 100644
--- a/libc/kernel/uapi/drm/v3d_drm.h
+++ b/libc/kernel/uapi/drm/v3d_drm.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _V3D_DRM_H_
 #define _V3D_DRM_H_
 #include "drm.h"
@@ -33,6 +21,8 @@
 #define DRM_V3D_PERFMON_CREATE 0x08
 #define DRM_V3D_PERFMON_DESTROY 0x09
 #define DRM_V3D_PERFMON_GET_VALUES 0x0a
+#define DRM_V3D_SUBMIT_CPU 0x0b
+#define DRM_V3D_PERFMON_GET_COUNTER 0x0c
 #define DRM_IOCTL_V3D_SUBMIT_CL DRM_IOWR(DRM_COMMAND_BASE + DRM_V3D_SUBMIT_CL, struct drm_v3d_submit_cl)
 #define DRM_IOCTL_V3D_WAIT_BO DRM_IOWR(DRM_COMMAND_BASE + DRM_V3D_WAIT_BO, struct drm_v3d_wait_bo)
 #define DRM_IOCTL_V3D_CREATE_BO DRM_IOWR(DRM_COMMAND_BASE + DRM_V3D_CREATE_BO, struct drm_v3d_create_bo)
@@ -44,12 +34,20 @@
 #define DRM_IOCTL_V3D_PERFMON_CREATE DRM_IOWR(DRM_COMMAND_BASE + DRM_V3D_PERFMON_CREATE, struct drm_v3d_perfmon_create)
 #define DRM_IOCTL_V3D_PERFMON_DESTROY DRM_IOWR(DRM_COMMAND_BASE + DRM_V3D_PERFMON_DESTROY, struct drm_v3d_perfmon_destroy)
 #define DRM_IOCTL_V3D_PERFMON_GET_VALUES DRM_IOWR(DRM_COMMAND_BASE + DRM_V3D_PERFMON_GET_VALUES, struct drm_v3d_perfmon_get_values)
+#define DRM_IOCTL_V3D_SUBMIT_CPU DRM_IOW(DRM_COMMAND_BASE + DRM_V3D_SUBMIT_CPU, struct drm_v3d_submit_cpu)
+#define DRM_IOCTL_V3D_PERFMON_GET_COUNTER DRM_IOWR(DRM_COMMAND_BASE + DRM_V3D_PERFMON_GET_COUNTER, struct drm_v3d_perfmon_get_counter)
 #define DRM_V3D_SUBMIT_CL_FLUSH_CACHE 0x01
 #define DRM_V3D_SUBMIT_EXTENSION 0x02
 struct drm_v3d_extension {
   __u64 next;
   __u32 id;
 #define DRM_V3D_EXT_ID_MULTI_SYNC 0x01
+#define DRM_V3D_EXT_ID_CPU_INDIRECT_CSD 0x02
+#define DRM_V3D_EXT_ID_CPU_TIMESTAMP_QUERY 0x03
+#define DRM_V3D_EXT_ID_CPU_RESET_TIMESTAMP_QUERY 0x04
+#define DRM_V3D_EXT_ID_CPU_COPY_TIMESTAMP_QUERY 0x05
+#define DRM_V3D_EXT_ID_CPU_RESET_PERFORMANCE_QUERY 0x06
+#define DRM_V3D_EXT_ID_CPU_COPY_PERFORMANCE_QUERY 0x07
   __u32 flags;
 };
 struct drm_v3d_sem {
@@ -64,6 +62,7 @@
   V3D_TFU,
   V3D_CSD,
   V3D_CACHE_CLEAN,
+  V3D_CPU,
 };
 struct drm_v3d_multi_sync {
   struct drm_v3d_extension base;
@@ -121,6 +120,8 @@
   DRM_V3D_PARAM_SUPPORTS_CACHE_FLUSH,
   DRM_V3D_PARAM_SUPPORTS_PERFMON,
   DRM_V3D_PARAM_SUPPORTS_MULTISYNC_EXT,
+  DRM_V3D_PARAM_SUPPORTS_CPU_QUEUE,
+  DRM_V3D_PARAM_MAX_PERF_COUNTERS,
 };
 struct drm_v3d_get_param {
   __u32 param;
@@ -145,6 +146,10 @@
   __u32 out_sync;
   __u32 flags;
   __u64 extensions;
+  struct {
+    __u32 ioc;
+    __u32 pad;
+  } v71;
 };
 struct drm_v3d_submit_csd {
   __u32 cfg[7];
@@ -158,6 +163,66 @@
   __u32 flags;
   __u32 pad;
 };
+struct drm_v3d_indirect_csd {
+  struct drm_v3d_extension base;
+  struct drm_v3d_submit_csd submit;
+  __u32 indirect;
+  __u32 offset;
+  __u32 wg_size;
+  __u32 wg_uniform_offsets[3];
+};
+struct drm_v3d_timestamp_query {
+  struct drm_v3d_extension base;
+  __u64 offsets;
+  __u64 syncs;
+  __u32 count;
+  __u32 pad;
+};
+struct drm_v3d_reset_timestamp_query {
+  struct drm_v3d_extension base;
+  __u64 syncs;
+  __u32 offset;
+  __u32 count;
+};
+struct drm_v3d_copy_timestamp_query {
+  struct drm_v3d_extension base;
+  __u8 do_64bit;
+  __u8 do_partial;
+  __u8 availability_bit;
+  __u8 pad;
+  __u32 offset;
+  __u32 stride;
+  __u32 count;
+  __u64 offsets;
+  __u64 syncs;
+};
+struct drm_v3d_reset_performance_query {
+  struct drm_v3d_extension base;
+  __u64 syncs;
+  __u32 count;
+  __u32 nperfmons;
+  __u64 kperfmon_ids;
+};
+struct drm_v3d_copy_performance_query {
+  struct drm_v3d_extension base;
+  __u8 do_64bit;
+  __u8 do_partial;
+  __u8 availability_bit;
+  __u8 pad;
+  __u32 offset;
+  __u32 stride;
+  __u32 nperfmons;
+  __u32 ncounters;
+  __u32 count;
+  __u64 syncs;
+  __u64 kperfmon_ids;
+};
+struct drm_v3d_submit_cpu {
+  __u64 bo_handles;
+  __u32 bo_handle_count;
+  __u32 flags;
+  __u64 extensions;
+};
 enum {
   V3D_PERFCNT_FEP_VALID_PRIMTS_NO_PIXELS,
   V3D_PERFCNT_FEP_VALID_PRIMS,
@@ -262,6 +327,16 @@
   __u32 pad;
   __u64 values_ptr;
 };
+#define DRM_V3D_PERFCNT_MAX_NAME 64
+#define DRM_V3D_PERFCNT_MAX_CATEGORY 32
+#define DRM_V3D_PERFCNT_MAX_DESCRIPTION 256
+struct drm_v3d_perfmon_get_counter {
+  __u8 counter;
+  __u8 name[DRM_V3D_PERFCNT_MAX_NAME];
+  __u8 category[DRM_V3D_PERFCNT_MAX_CATEGORY];
+  __u8 description[DRM_V3D_PERFCNT_MAX_DESCRIPTION];
+  __u8 reserved[7];
+};
 #ifdef __cplusplus
 }
 #endif
diff --git a/libc/kernel/uapi/drm/vc4_drm.h b/libc/kernel/uapi/drm/vc4_drm.h
index fde443f..473c5f2 100644
--- a/libc/kernel/uapi/drm/vc4_drm.h
+++ b/libc/kernel/uapi/drm/vc4_drm.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_VC4_DRM_H_
 #define _UAPI_VC4_DRM_H_
 #include "drm.h"
diff --git a/libc/kernel/uapi/drm/vgem_drm.h b/libc/kernel/uapi/drm/vgem_drm.h
index b33452b..71aee1b 100644
--- a/libc/kernel/uapi/drm/vgem_drm.h
+++ b/libc/kernel/uapi/drm/vgem_drm.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_VGEM_DRM_H_
 #define _UAPI_VGEM_DRM_H_
 #include "drm.h"
diff --git a/libc/kernel/uapi/drm/via_drm.h b/libc/kernel/uapi/drm/via_drm.h
deleted file mode 100644
index 95a149b..0000000
--- a/libc/kernel/uapi/drm/via_drm.h
+++ /dev/null
@@ -1,202 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef _VIA_DRM_H_
-#define _VIA_DRM_H_
-#include "drm.h"
-#ifdef __cplusplus
-extern "C" {
-#endif
-#ifndef _VIA_DEFINES_
-#define _VIA_DEFINES_
-#define VIA_NR_SAREA_CLIPRECTS 8
-#define VIA_NR_XVMC_PORTS 10
-#define VIA_NR_XVMC_LOCKS 5
-#define VIA_MAX_CACHELINE_SIZE 64
-#define XVMCLOCKPTR(saPriv,lockNo) ((volatile struct drm_hw_lock *) (((((unsigned long) (saPriv)->XvMCLockArea) + (VIA_MAX_CACHELINE_SIZE - 1)) & ~(VIA_MAX_CACHELINE_SIZE - 1)) + VIA_MAX_CACHELINE_SIZE * (lockNo)))
-#define VIA_NR_TEX_REGIONS 64
-#define VIA_LOG_MIN_TEX_REGION_SIZE 16
-#endif
-#define VIA_UPLOAD_TEX0IMAGE 0x1
-#define VIA_UPLOAD_TEX1IMAGE 0x2
-#define VIA_UPLOAD_CTX 0x4
-#define VIA_UPLOAD_BUFFERS 0x8
-#define VIA_UPLOAD_TEX0 0x10
-#define VIA_UPLOAD_TEX1 0x20
-#define VIA_UPLOAD_CLIPRECTS 0x40
-#define VIA_UPLOAD_ALL 0xff
-#define DRM_VIA_ALLOCMEM 0x00
-#define DRM_VIA_FREEMEM 0x01
-#define DRM_VIA_AGP_INIT 0x02
-#define DRM_VIA_FB_INIT 0x03
-#define DRM_VIA_MAP_INIT 0x04
-#define DRM_VIA_DEC_FUTEX 0x05
-#define NOT_USED
-#define DRM_VIA_DMA_INIT 0x07
-#define DRM_VIA_CMDBUFFER 0x08
-#define DRM_VIA_FLUSH 0x09
-#define DRM_VIA_PCICMD 0x0a
-#define DRM_VIA_CMDBUF_SIZE 0x0b
-#define NOT_USED
-#define DRM_VIA_WAIT_IRQ 0x0d
-#define DRM_VIA_DMA_BLIT 0x0e
-#define DRM_VIA_BLIT_SYNC 0x0f
-#define DRM_IOCTL_VIA_ALLOCMEM DRM_IOWR(DRM_COMMAND_BASE + DRM_VIA_ALLOCMEM, drm_via_mem_t)
-#define DRM_IOCTL_VIA_FREEMEM DRM_IOW(DRM_COMMAND_BASE + DRM_VIA_FREEMEM, drm_via_mem_t)
-#define DRM_IOCTL_VIA_AGP_INIT DRM_IOWR(DRM_COMMAND_BASE + DRM_VIA_AGP_INIT, drm_via_agp_t)
-#define DRM_IOCTL_VIA_FB_INIT DRM_IOWR(DRM_COMMAND_BASE + DRM_VIA_FB_INIT, drm_via_fb_t)
-#define DRM_IOCTL_VIA_MAP_INIT DRM_IOWR(DRM_COMMAND_BASE + DRM_VIA_MAP_INIT, drm_via_init_t)
-#define DRM_IOCTL_VIA_DEC_FUTEX DRM_IOW(DRM_COMMAND_BASE + DRM_VIA_DEC_FUTEX, drm_via_futex_t)
-#define DRM_IOCTL_VIA_DMA_INIT DRM_IOWR(DRM_COMMAND_BASE + DRM_VIA_DMA_INIT, drm_via_dma_init_t)
-#define DRM_IOCTL_VIA_CMDBUFFER DRM_IOW(DRM_COMMAND_BASE + DRM_VIA_CMDBUFFER, drm_via_cmdbuffer_t)
-#define DRM_IOCTL_VIA_FLUSH DRM_IO(DRM_COMMAND_BASE + DRM_VIA_FLUSH)
-#define DRM_IOCTL_VIA_PCICMD DRM_IOW(DRM_COMMAND_BASE + DRM_VIA_PCICMD, drm_via_cmdbuffer_t)
-#define DRM_IOCTL_VIA_CMDBUF_SIZE DRM_IOWR(DRM_COMMAND_BASE + DRM_VIA_CMDBUF_SIZE, drm_via_cmdbuf_size_t)
-#define DRM_IOCTL_VIA_WAIT_IRQ DRM_IOWR(DRM_COMMAND_BASE + DRM_VIA_WAIT_IRQ, drm_via_irqwait_t)
-#define DRM_IOCTL_VIA_DMA_BLIT DRM_IOW(DRM_COMMAND_BASE + DRM_VIA_DMA_BLIT, drm_via_dmablit_t)
-#define DRM_IOCTL_VIA_BLIT_SYNC DRM_IOW(DRM_COMMAND_BASE + DRM_VIA_BLIT_SYNC, drm_via_blitsync_t)
-#define VIA_TEX_SETUP_SIZE 8
-#define VIA_FRONT 0x1
-#define VIA_BACK 0x2
-#define VIA_DEPTH 0x4
-#define VIA_STENCIL 0x8
-#define VIA_MEM_VIDEO 0
-#define VIA_MEM_AGP 1
-#define VIA_MEM_SYSTEM 2
-#define VIA_MEM_MIXED 3
-#define VIA_MEM_UNKNOWN 4
-typedef struct {
-  __u32 offset;
-  __u32 size;
-} drm_via_agp_t;
-typedef struct {
-  __u32 offset;
-  __u32 size;
-} drm_via_fb_t;
-typedef struct {
-  __u32 context;
-  __u32 type;
-  __u32 size;
-  unsigned long index;
-  unsigned long offset;
-} drm_via_mem_t;
-typedef struct _drm_via_init {
-  enum {
-    VIA_INIT_MAP = 0x01,
-    VIA_CLEANUP_MAP = 0x02
-  } func;
-  unsigned long sarea_priv_offset;
-  unsigned long fb_offset;
-  unsigned long mmio_offset;
-  unsigned long agpAddr;
-} drm_via_init_t;
-typedef struct _drm_via_futex {
-  enum {
-    VIA_FUTEX_WAIT = 0x00,
-    VIA_FUTEX_WAKE = 0X01
-  } func;
-  __u32 ms;
-  __u32 lock;
-  __u32 val;
-} drm_via_futex_t;
-typedef struct _drm_via_dma_init {
-  enum {
-    VIA_INIT_DMA = 0x01,
-    VIA_CLEANUP_DMA = 0x02,
-    VIA_DMA_INITIALIZED = 0x03
-  } func;
-  unsigned long offset;
-  unsigned long size;
-  unsigned long reg_pause_addr;
-} drm_via_dma_init_t;
-typedef struct _drm_via_cmdbuffer {
-  char  * buf;
-  unsigned long size;
-} drm_via_cmdbuffer_t;
-typedef struct _drm_via_tex_region {
-  unsigned char next, prev;
-  unsigned char inUse;
-  int age;
-} drm_via_tex_region_t;
-typedef struct _drm_via_sarea {
-  unsigned int dirty;
-  unsigned int nbox;
-  struct drm_clip_rect boxes[VIA_NR_SAREA_CLIPRECTS];
-  drm_via_tex_region_t texList[VIA_NR_TEX_REGIONS + 1];
-  int texAge;
-  int ctxOwner;
-  int vertexPrim;
-  char XvMCLockArea[VIA_MAX_CACHELINE_SIZE * (VIA_NR_XVMC_LOCKS + 1)];
-  unsigned int XvMCDisplaying[VIA_NR_XVMC_PORTS];
-  unsigned int XvMCSubPicOn[VIA_NR_XVMC_PORTS];
-  unsigned int XvMCCtxNoGrabbed;
-  unsigned int pfCurrentOffset;
-} drm_via_sarea_t;
-typedef struct _drm_via_cmdbuf_size {
-  enum {
-    VIA_CMDBUF_SPACE = 0x01,
-    VIA_CMDBUF_LAG = 0x02
-  } func;
-  int wait;
-  __u32 size;
-} drm_via_cmdbuf_size_t;
-typedef enum {
-  VIA_IRQ_ABSOLUTE = 0x0,
-  VIA_IRQ_RELATIVE = 0x1,
-  VIA_IRQ_SIGNAL = 0x10000000,
-  VIA_IRQ_FORCE_SEQUENCE = 0x20000000
-} via_irq_seq_type_t;
-#define VIA_IRQ_FLAGS_MASK 0xF0000000
-enum drm_via_irqs {
-  drm_via_irq_hqv0 = 0,
-  drm_via_irq_hqv1,
-  drm_via_irq_dma0_dd,
-  drm_via_irq_dma0_td,
-  drm_via_irq_dma1_dd,
-  drm_via_irq_dma1_td,
-  drm_via_irq_num
-};
-struct drm_via_wait_irq_request {
-  unsigned irq;
-  via_irq_seq_type_t type;
-  __u32 sequence;
-  __u32 signal;
-};
-typedef union drm_via_irqwait {
-  struct drm_via_wait_irq_request request;
-  struct drm_wait_vblank_reply reply;
-} drm_via_irqwait_t;
-typedef struct drm_via_blitsync {
-  __u32 sync_handle;
-  unsigned engine;
-} drm_via_blitsync_t;
-typedef struct drm_via_dmablit {
-  __u32 num_lines;
-  __u32 line_length;
-  __u32 fb_addr;
-  __u32 fb_stride;
-  unsigned char * mem_addr;
-  __u32 mem_stride;
-  __u32 flags;
-  int to_fb;
-  drm_via_blitsync_t sync;
-} drm_via_dmablit_t;
-#ifdef __cplusplus
-}
-#endif
-#endif
diff --git a/libc/kernel/uapi/drm/virtgpu_drm.h b/libc/kernel/uapi/drm/virtgpu_drm.h
index 342282d..d79c7d9 100644
--- a/libc/kernel/uapi/drm/virtgpu_drm.h
+++ b/libc/kernel/uapi/drm/virtgpu_drm.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef VIRTGPU_DRM_H
 #define VIRTGPU_DRM_H
 #include "drm.h"
@@ -42,6 +30,13 @@
   __u32 handle;
   __u32 pad;
 };
+#define VIRTGPU_EXECBUF_SYNCOBJ_RESET 0x01
+#define VIRTGPU_EXECBUF_SYNCOBJ_FLAGS (VIRTGPU_EXECBUF_SYNCOBJ_RESET | 0)
+struct drm_virtgpu_execbuffer_syncobj {
+  __u32 handle;
+  __u32 flags;
+  __u64 point;
+};
 struct drm_virtgpu_execbuffer {
   __u32 flags;
   __u32 size;
@@ -50,7 +45,11 @@
   __u32 num_bo_handles;
   __s32 fence_fd;
   __u32 ring_idx;
-  __u32 pad;
+  __u32 syncobj_stride;
+  __u32 num_in_syncobjs;
+  __u32 num_out_syncobjs;
+  __u64 in_syncobjs;
+  __u64 out_syncobjs;
 };
 #define VIRTGPU_PARAM_3D_FEATURES 1
 #define VIRTGPU_PARAM_CAPSET_QUERY_FIX 2
@@ -59,6 +58,7 @@
 #define VIRTGPU_PARAM_CROSS_DEVICE 5
 #define VIRTGPU_PARAM_CONTEXT_INIT 6
 #define VIRTGPU_PARAM_SUPPORTED_CAPSET_IDs 7
+#define VIRTGPU_PARAM_EXPLICIT_DEBUG_NAME 8
 struct drm_virtgpu_getparam {
   __u64 param;
   __u64 value;
@@ -141,6 +141,7 @@
 #define VIRTGPU_CONTEXT_PARAM_CAPSET_ID 0x0001
 #define VIRTGPU_CONTEXT_PARAM_NUM_RINGS 0x0002
 #define VIRTGPU_CONTEXT_PARAM_POLL_RINGS_MASK 0x0003
+#define VIRTGPU_CONTEXT_PARAM_DEBUG_NAME 0x0004
 struct drm_virtgpu_context_set_param {
   __u64 param;
   __u64 value;
diff --git a/libc/kernel/uapi/drm/vmwgfx_drm.h b/libc/kernel/uapi/drm/vmwgfx_drm.h
index 2f75589..f07b743 100644
--- a/libc/kernel/uapi/drm/vmwgfx_drm.h
+++ b/libc/kernel/uapi/drm/vmwgfx_drm.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __VMWGFX_DRM_H__
 #define __VMWGFX_DRM_H__
 #include "drm.h"
diff --git a/libc/kernel/uapi/drm/xe_drm.h b/libc/kernel/uapi/drm/xe_drm.h
new file mode 100644
index 0000000..a034b29
--- /dev/null
+++ b/libc/kernel/uapi/drm/xe_drm.h
@@ -0,0 +1,405 @@
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
+#ifndef _UAPI_XE_DRM_H_
+#define _UAPI_XE_DRM_H_
+#include "drm.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+#define DRM_XE_DEVICE_QUERY 0x00
+#define DRM_XE_GEM_CREATE 0x01
+#define DRM_XE_GEM_MMAP_OFFSET 0x02
+#define DRM_XE_VM_CREATE 0x03
+#define DRM_XE_VM_DESTROY 0x04
+#define DRM_XE_VM_BIND 0x05
+#define DRM_XE_EXEC_QUEUE_CREATE 0x06
+#define DRM_XE_EXEC_QUEUE_DESTROY 0x07
+#define DRM_XE_EXEC_QUEUE_GET_PROPERTY 0x08
+#define DRM_XE_EXEC 0x09
+#define DRM_XE_WAIT_USER_FENCE 0x0a
+#define DRM_XE_OBSERVATION 0x0b
+#define DRM_IOCTL_XE_DEVICE_QUERY DRM_IOWR(DRM_COMMAND_BASE + DRM_XE_DEVICE_QUERY, struct drm_xe_device_query)
+#define DRM_IOCTL_XE_GEM_CREATE DRM_IOWR(DRM_COMMAND_BASE + DRM_XE_GEM_CREATE, struct drm_xe_gem_create)
+#define DRM_IOCTL_XE_GEM_MMAP_OFFSET DRM_IOWR(DRM_COMMAND_BASE + DRM_XE_GEM_MMAP_OFFSET, struct drm_xe_gem_mmap_offset)
+#define DRM_IOCTL_XE_VM_CREATE DRM_IOWR(DRM_COMMAND_BASE + DRM_XE_VM_CREATE, struct drm_xe_vm_create)
+#define DRM_IOCTL_XE_VM_DESTROY DRM_IOW(DRM_COMMAND_BASE + DRM_XE_VM_DESTROY, struct drm_xe_vm_destroy)
+#define DRM_IOCTL_XE_VM_BIND DRM_IOW(DRM_COMMAND_BASE + DRM_XE_VM_BIND, struct drm_xe_vm_bind)
+#define DRM_IOCTL_XE_EXEC_QUEUE_CREATE DRM_IOWR(DRM_COMMAND_BASE + DRM_XE_EXEC_QUEUE_CREATE, struct drm_xe_exec_queue_create)
+#define DRM_IOCTL_XE_EXEC_QUEUE_DESTROY DRM_IOW(DRM_COMMAND_BASE + DRM_XE_EXEC_QUEUE_DESTROY, struct drm_xe_exec_queue_destroy)
+#define DRM_IOCTL_XE_EXEC_QUEUE_GET_PROPERTY DRM_IOWR(DRM_COMMAND_BASE + DRM_XE_EXEC_QUEUE_GET_PROPERTY, struct drm_xe_exec_queue_get_property)
+#define DRM_IOCTL_XE_EXEC DRM_IOW(DRM_COMMAND_BASE + DRM_XE_EXEC, struct drm_xe_exec)
+#define DRM_IOCTL_XE_WAIT_USER_FENCE DRM_IOWR(DRM_COMMAND_BASE + DRM_XE_WAIT_USER_FENCE, struct drm_xe_wait_user_fence)
+#define DRM_IOCTL_XE_OBSERVATION DRM_IOW(DRM_COMMAND_BASE + DRM_XE_OBSERVATION, struct drm_xe_observation_param)
+struct drm_xe_user_extension {
+  __u64 next_extension;
+  __u32 name;
+  __u32 pad;
+};
+struct drm_xe_ext_set_property {
+  struct drm_xe_user_extension base;
+  __u32 property;
+  __u32 pad;
+  __u64 value;
+  __u64 reserved[2];
+};
+struct drm_xe_engine_class_instance {
+#define DRM_XE_ENGINE_CLASS_RENDER 0
+#define DRM_XE_ENGINE_CLASS_COPY 1
+#define DRM_XE_ENGINE_CLASS_VIDEO_DECODE 2
+#define DRM_XE_ENGINE_CLASS_VIDEO_ENHANCE 3
+#define DRM_XE_ENGINE_CLASS_COMPUTE 4
+#define DRM_XE_ENGINE_CLASS_VM_BIND 5
+  __u16 engine_class;
+  __u16 engine_instance;
+  __u16 gt_id;
+  __u16 pad;
+};
+struct drm_xe_engine {
+  struct drm_xe_engine_class_instance instance;
+  __u64 reserved[3];
+};
+struct drm_xe_query_engines {
+  __u32 num_engines;
+  __u32 pad;
+  struct drm_xe_engine engines[];
+};
+enum drm_xe_memory_class {
+  DRM_XE_MEM_REGION_CLASS_SYSMEM = 0,
+  DRM_XE_MEM_REGION_CLASS_VRAM
+};
+struct drm_xe_mem_region {
+  __u16 mem_class;
+  __u16 instance;
+  __u32 min_page_size;
+  __u64 total_size;
+  __u64 used;
+  __u64 cpu_visible_size;
+  __u64 cpu_visible_used;
+  __u64 reserved[6];
+};
+struct drm_xe_query_mem_regions {
+  __u32 num_mem_regions;
+  __u32 pad;
+  struct drm_xe_mem_region mem_regions[];
+};
+struct drm_xe_query_config {
+  __u32 num_params;
+  __u32 pad;
+#define DRM_XE_QUERY_CONFIG_REV_AND_DEVICE_ID 0
+#define DRM_XE_QUERY_CONFIG_FLAGS 1
+#define DRM_XE_QUERY_CONFIG_FLAG_HAS_VRAM (1 << 0)
+#define DRM_XE_QUERY_CONFIG_MIN_ALIGNMENT 2
+#define DRM_XE_QUERY_CONFIG_VA_BITS 3
+#define DRM_XE_QUERY_CONFIG_MAX_EXEC_QUEUE_PRIORITY 4
+  __u64 info[];
+};
+struct drm_xe_gt {
+#define DRM_XE_QUERY_GT_TYPE_MAIN 0
+#define DRM_XE_QUERY_GT_TYPE_MEDIA 1
+  __u16 type;
+  __u16 tile_id;
+  __u16 gt_id;
+  __u16 pad[3];
+  __u32 reference_clock;
+  __u64 near_mem_regions;
+  __u64 far_mem_regions;
+  __u16 ip_ver_major;
+  __u16 ip_ver_minor;
+  __u16 ip_ver_rev;
+  __u16 pad2;
+  __u64 reserved[7];
+};
+struct drm_xe_query_gt_list {
+  __u32 num_gt;
+  __u32 pad;
+  struct drm_xe_gt gt_list[];
+};
+struct drm_xe_query_topology_mask {
+  __u16 gt_id;
+#define DRM_XE_TOPO_DSS_GEOMETRY 1
+#define DRM_XE_TOPO_DSS_COMPUTE 2
+#define DRM_XE_TOPO_L3_BANK 3
+#define DRM_XE_TOPO_EU_PER_DSS 4
+  __u16 type;
+  __u32 num_bytes;
+  __u8 mask[];
+};
+struct drm_xe_query_engine_cycles {
+  struct drm_xe_engine_class_instance eci;
+  __s32 clockid;
+  __u32 width;
+  __u64 engine_cycles;
+  __u64 cpu_timestamp;
+  __u64 cpu_delta;
+};
+struct drm_xe_query_uc_fw_version {
+#define XE_QUERY_UC_TYPE_GUC_SUBMISSION 0
+#define XE_QUERY_UC_TYPE_HUC 1
+  __u16 uc_type;
+  __u16 pad;
+  __u32 branch_ver;
+  __u32 major_ver;
+  __u32 minor_ver;
+  __u32 patch_ver;
+  __u32 pad2;
+  __u64 reserved;
+};
+struct drm_xe_device_query {
+  __u64 extensions;
+#define DRM_XE_DEVICE_QUERY_ENGINES 0
+#define DRM_XE_DEVICE_QUERY_MEM_REGIONS 1
+#define DRM_XE_DEVICE_QUERY_CONFIG 2
+#define DRM_XE_DEVICE_QUERY_GT_LIST 3
+#define DRM_XE_DEVICE_QUERY_HWCONFIG 4
+#define DRM_XE_DEVICE_QUERY_GT_TOPOLOGY 5
+#define DRM_XE_DEVICE_QUERY_ENGINE_CYCLES 6
+#define DRM_XE_DEVICE_QUERY_UC_FW_VERSION 7
+#define DRM_XE_DEVICE_QUERY_OA_UNITS 8
+  __u32 query;
+  __u32 size;
+  __u64 data;
+  __u64 reserved[2];
+};
+struct drm_xe_gem_create {
+  __u64 extensions;
+  __u64 size;
+  __u32 placement;
+#define DRM_XE_GEM_CREATE_FLAG_DEFER_BACKING (1 << 0)
+#define DRM_XE_GEM_CREATE_FLAG_SCANOUT (1 << 1)
+#define DRM_XE_GEM_CREATE_FLAG_NEEDS_VISIBLE_VRAM (1 << 2)
+  __u32 flags;
+  __u32 vm_id;
+  __u32 handle;
+#define DRM_XE_GEM_CPU_CACHING_WB 1
+#define DRM_XE_GEM_CPU_CACHING_WC 2
+  __u16 cpu_caching;
+  __u16 pad[3];
+  __u64 reserved[2];
+};
+struct drm_xe_gem_mmap_offset {
+  __u64 extensions;
+  __u32 handle;
+  __u32 flags;
+  __u64 offset;
+  __u64 reserved[2];
+};
+struct drm_xe_vm_create {
+  __u64 extensions;
+#define DRM_XE_VM_CREATE_FLAG_SCRATCH_PAGE (1 << 0)
+#define DRM_XE_VM_CREATE_FLAG_LR_MODE (1 << 1)
+#define DRM_XE_VM_CREATE_FLAG_FAULT_MODE (1 << 2)
+  __u32 flags;
+  __u32 vm_id;
+  __u64 reserved[2];
+};
+struct drm_xe_vm_destroy {
+  __u32 vm_id;
+  __u32 pad;
+  __u64 reserved[2];
+};
+struct drm_xe_vm_bind_op {
+  __u64 extensions;
+  __u32 obj;
+  __u16 pat_index;
+  __u16 pad;
+  union {
+    __u64 obj_offset;
+    __u64 userptr;
+  };
+  __u64 range;
+  __u64 addr;
+#define DRM_XE_VM_BIND_OP_MAP 0x0
+#define DRM_XE_VM_BIND_OP_UNMAP 0x1
+#define DRM_XE_VM_BIND_OP_MAP_USERPTR 0x2
+#define DRM_XE_VM_BIND_OP_UNMAP_ALL 0x3
+#define DRM_XE_VM_BIND_OP_PREFETCH 0x4
+  __u32 op;
+#define DRM_XE_VM_BIND_FLAG_READONLY (1 << 0)
+#define DRM_XE_VM_BIND_FLAG_IMMEDIATE (1 << 1)
+#define DRM_XE_VM_BIND_FLAG_NULL (1 << 2)
+#define DRM_XE_VM_BIND_FLAG_DUMPABLE (1 << 3)
+  __u32 flags;
+  __u32 prefetch_mem_region_instance;
+  __u32 pad2;
+  __u64 reserved[3];
+};
+struct drm_xe_vm_bind {
+  __u64 extensions;
+  __u32 vm_id;
+  __u32 exec_queue_id;
+  __u32 pad;
+  __u32 num_binds;
+  union {
+    struct drm_xe_vm_bind_op bind;
+    __u64 vector_of_binds;
+  };
+  __u32 pad2;
+  __u32 num_syncs;
+  __u64 syncs;
+  __u64 reserved[2];
+};
+struct drm_xe_exec_queue_create {
+#define DRM_XE_EXEC_QUEUE_EXTENSION_SET_PROPERTY 0
+#define DRM_XE_EXEC_QUEUE_SET_PROPERTY_PRIORITY 0
+#define DRM_XE_EXEC_QUEUE_SET_PROPERTY_TIMESLICE 1
+  __u64 extensions;
+  __u16 width;
+  __u16 num_placements;
+  __u32 vm_id;
+  __u32 flags;
+  __u32 exec_queue_id;
+  __u64 instances;
+  __u64 reserved[2];
+};
+struct drm_xe_exec_queue_destroy {
+  __u32 exec_queue_id;
+  __u32 pad;
+  __u64 reserved[2];
+};
+struct drm_xe_exec_queue_get_property {
+  __u64 extensions;
+  __u32 exec_queue_id;
+#define DRM_XE_EXEC_QUEUE_GET_PROPERTY_BAN 0
+  __u32 property;
+  __u64 value;
+  __u64 reserved[2];
+};
+struct drm_xe_sync {
+  __u64 extensions;
+#define DRM_XE_SYNC_TYPE_SYNCOBJ 0x0
+#define DRM_XE_SYNC_TYPE_TIMELINE_SYNCOBJ 0x1
+#define DRM_XE_SYNC_TYPE_USER_FENCE 0x2
+  __u32 type;
+#define DRM_XE_SYNC_FLAG_SIGNAL (1 << 0)
+  __u32 flags;
+  union {
+    __u32 handle;
+    __u64 addr;
+  };
+  __u64 timeline_value;
+  __u64 reserved[2];
+};
+struct drm_xe_exec {
+  __u64 extensions;
+  __u32 exec_queue_id;
+  __u32 num_syncs;
+  __u64 syncs;
+  __u64 address;
+  __u16 num_batch_buffer;
+  __u16 pad[3];
+  __u64 reserved[2];
+};
+struct drm_xe_wait_user_fence {
+  __u64 extensions;
+  __u64 addr;
+#define DRM_XE_UFENCE_WAIT_OP_EQ 0x0
+#define DRM_XE_UFENCE_WAIT_OP_NEQ 0x1
+#define DRM_XE_UFENCE_WAIT_OP_GT 0x2
+#define DRM_XE_UFENCE_WAIT_OP_GTE 0x3
+#define DRM_XE_UFENCE_WAIT_OP_LT 0x4
+#define DRM_XE_UFENCE_WAIT_OP_LTE 0x5
+  __u16 op;
+#define DRM_XE_UFENCE_WAIT_FLAG_ABSTIME (1 << 0)
+  __u16 flags;
+  __u32 pad;
+  __u64 value;
+  __u64 mask;
+  __s64 timeout;
+  __u32 exec_queue_id;
+  __u32 pad2;
+  __u64 reserved[2];
+};
+enum drm_xe_observation_type {
+  DRM_XE_OBSERVATION_TYPE_OA,
+};
+enum drm_xe_observation_op {
+  DRM_XE_OBSERVATION_OP_STREAM_OPEN,
+  DRM_XE_OBSERVATION_OP_ADD_CONFIG,
+  DRM_XE_OBSERVATION_OP_REMOVE_CONFIG,
+};
+struct drm_xe_observation_param {
+  __u64 extensions;
+  __u64 observation_type;
+  __u64 observation_op;
+  __u64 param;
+};
+enum drm_xe_observation_ioctls {
+  DRM_XE_OBSERVATION_IOCTL_ENABLE = _IO('i', 0x0),
+  DRM_XE_OBSERVATION_IOCTL_DISABLE = _IO('i', 0x1),
+  DRM_XE_OBSERVATION_IOCTL_CONFIG = _IO('i', 0x2),
+  DRM_XE_OBSERVATION_IOCTL_STATUS = _IO('i', 0x3),
+  DRM_XE_OBSERVATION_IOCTL_INFO = _IO('i', 0x4),
+};
+enum drm_xe_oa_unit_type {
+  DRM_XE_OA_UNIT_TYPE_OAG,
+  DRM_XE_OA_UNIT_TYPE_OAM,
+};
+struct drm_xe_oa_unit {
+  __u64 extensions;
+  __u32 oa_unit_id;
+  __u32 oa_unit_type;
+  __u64 capabilities;
+#define DRM_XE_OA_CAPS_BASE (1 << 0)
+  __u64 oa_timestamp_freq;
+  __u64 reserved[4];
+  __u64 num_engines;
+  struct drm_xe_engine_class_instance eci[];
+};
+struct drm_xe_query_oa_units {
+  __u64 extensions;
+  __u32 num_oa_units;
+  __u32 pad;
+  __u64 oa_units[];
+};
+enum drm_xe_oa_format_type {
+  DRM_XE_OA_FMT_TYPE_OAG,
+  DRM_XE_OA_FMT_TYPE_OAR,
+  DRM_XE_OA_FMT_TYPE_OAM,
+  DRM_XE_OA_FMT_TYPE_OAC,
+  DRM_XE_OA_FMT_TYPE_OAM_MPEC,
+  DRM_XE_OA_FMT_TYPE_PEC,
+};
+enum drm_xe_oa_property_id {
+#define DRM_XE_OA_EXTENSION_SET_PROPERTY 0
+  DRM_XE_OA_PROPERTY_OA_UNIT_ID = 1,
+  DRM_XE_OA_PROPERTY_SAMPLE_OA,
+  DRM_XE_OA_PROPERTY_OA_METRIC_SET,
+  DRM_XE_OA_PROPERTY_OA_FORMAT,
+#define DRM_XE_OA_FORMAT_MASK_FMT_TYPE (0xffu << 0)
+#define DRM_XE_OA_FORMAT_MASK_COUNTER_SEL (0xffu << 8)
+#define DRM_XE_OA_FORMAT_MASK_COUNTER_SIZE (0xffu << 16)
+#define DRM_XE_OA_FORMAT_MASK_BC_REPORT (0xffu << 24)
+  DRM_XE_OA_PROPERTY_OA_PERIOD_EXPONENT,
+  DRM_XE_OA_PROPERTY_OA_DISABLED,
+  DRM_XE_OA_PROPERTY_EXEC_QUEUE_ID,
+  DRM_XE_OA_PROPERTY_OA_ENGINE_INSTANCE,
+  DRM_XE_OA_PROPERTY_NO_PREEMPT,
+};
+struct drm_xe_oa_config {
+  __u64 extensions;
+  char uuid[36];
+  __u32 n_regs;
+  __u64 regs_ptr;
+};
+struct drm_xe_oa_stream_status {
+  __u64 extensions;
+  __u64 oa_status;
+#define DRM_XE_OASTATUS_MMIO_TRG_Q_FULL (1 << 3)
+#define DRM_XE_OASTATUS_COUNTER_OVERFLOW (1 << 2)
+#define DRM_XE_OASTATUS_BUFFER_OVERFLOW (1 << 1)
+#define DRM_XE_OASTATUS_REPORT_LOST (1 << 0)
+  __u64 reserved[3];
+};
+struct drm_xe_oa_stream_info {
+  __u64 extensions;
+  __u64 oa_buf_size;
+  __u64 reserved[3];
+};
+#ifdef __cplusplus
+}
+#endif
+#endif
diff --git a/libc/kernel/uapi/linux/a.out.h b/libc/kernel/uapi/linux/a.out.h
index 8f58c99..2d34e1d 100644
--- a/libc/kernel/uapi/linux/a.out.h
+++ b/libc/kernel/uapi/linux/a.out.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI__A_OUT_GNU_H__
 #define _UAPI__A_OUT_GNU_H__
 #define __GNU_EXEC_MACROS__
diff --git a/libc/kernel/uapi/linux/acct.h b/libc/kernel/uapi/linux/acct.h
index ba9d25f..3c17f50 100644
--- a/libc/kernel/uapi/linux/acct.h
+++ b/libc/kernel/uapi/linux/acct.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_ACCT_H
 #define _UAPI_LINUX_ACCT_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/acrn.h b/libc/kernel/uapi/linux/acrn.h
index aa408d8..6dc581b 100644
--- a/libc/kernel/uapi/linux/acrn.h
+++ b/libc/kernel/uapi/linux/acrn.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_ACRN_H
 #define _UAPI_ACRN_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/adb.h b/libc/kernel/uapi/linux/adb.h
index ddb3b65..d6dbc9e 100644
--- a/libc/kernel/uapi/linux/adb.h
+++ b/libc/kernel/uapi/linux/adb.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI__ADB_H
 #define _UAPI__ADB_H
 #define ADB_BUSRESET 0
diff --git a/libc/kernel/uapi/linux/adfs_fs.h b/libc/kernel/uapi/linux/adfs_fs.h
index aa1d732..c95a42e 100644
--- a/libc/kernel/uapi/linux/adfs_fs.h
+++ b/libc/kernel/uapi/linux/adfs_fs.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_ADFS_FS_H
 #define _UAPI_ADFS_FS_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/affs_hardblocks.h b/libc/kernel/uapi/linux/affs_hardblocks.h
index f46bdf1..157d67c 100644
--- a/libc/kernel/uapi/linux/affs_hardblocks.h
+++ b/libc/kernel/uapi/linux/affs_hardblocks.h
@@ -1,76 +1,64 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef AFFS_HARDBLOCKS_H
 #define AFFS_HARDBLOCKS_H
 #include <linux/types.h>
 struct RigidDiskBlock {
-  __u32 rdb_ID;
+  __be32 rdb_ID;
   __be32 rdb_SummedLongs;
-  __s32 rdb_ChkSum;
-  __u32 rdb_HostID;
+  __be32 rdb_ChkSum;
+  __be32 rdb_HostID;
   __be32 rdb_BlockBytes;
-  __u32 rdb_Flags;
-  __u32 rdb_BadBlockList;
+  __be32 rdb_Flags;
+  __be32 rdb_BadBlockList;
   __be32 rdb_PartitionList;
-  __u32 rdb_FileSysHeaderList;
-  __u32 rdb_DriveInit;
-  __u32 rdb_Reserved1[6];
-  __u32 rdb_Cylinders;
-  __u32 rdb_Sectors;
-  __u32 rdb_Heads;
-  __u32 rdb_Interleave;
-  __u32 rdb_Park;
-  __u32 rdb_Reserved2[3];
-  __u32 rdb_WritePreComp;
-  __u32 rdb_ReducedWrite;
-  __u32 rdb_StepRate;
-  __u32 rdb_Reserved3[5];
-  __u32 rdb_RDBBlocksLo;
-  __u32 rdb_RDBBlocksHi;
-  __u32 rdb_LoCylinder;
-  __u32 rdb_HiCylinder;
-  __u32 rdb_CylBlocks;
-  __u32 rdb_AutoParkSeconds;
-  __u32 rdb_HighRDSKBlock;
-  __u32 rdb_Reserved4;
+  __be32 rdb_FileSysHeaderList;
+  __be32 rdb_DriveInit;
+  __be32 rdb_Reserved1[6];
+  __be32 rdb_Cylinders;
+  __be32 rdb_Sectors;
+  __be32 rdb_Heads;
+  __be32 rdb_Interleave;
+  __be32 rdb_Park;
+  __be32 rdb_Reserved2[3];
+  __be32 rdb_WritePreComp;
+  __be32 rdb_ReducedWrite;
+  __be32 rdb_StepRate;
+  __be32 rdb_Reserved3[5];
+  __be32 rdb_RDBBlocksLo;
+  __be32 rdb_RDBBlocksHi;
+  __be32 rdb_LoCylinder;
+  __be32 rdb_HiCylinder;
+  __be32 rdb_CylBlocks;
+  __be32 rdb_AutoParkSeconds;
+  __be32 rdb_HighRDSKBlock;
+  __be32 rdb_Reserved4;
   char rdb_DiskVendor[8];
   char rdb_DiskProduct[16];
   char rdb_DiskRevision[4];
   char rdb_ControllerVendor[8];
   char rdb_ControllerProduct[16];
   char rdb_ControllerRevision[4];
-  __u32 rdb_Reserved5[10];
+  __be32 rdb_Reserved5[10];
 };
 #define IDNAME_RIGIDDISK 0x5244534B
 struct PartitionBlock {
   __be32 pb_ID;
   __be32 pb_SummedLongs;
-  __s32 pb_ChkSum;
-  __u32 pb_HostID;
+  __be32 pb_ChkSum;
+  __be32 pb_HostID;
   __be32 pb_Next;
-  __u32 pb_Flags;
-  __u32 pb_Reserved1[2];
-  __u32 pb_DevFlags;
+  __be32 pb_Flags;
+  __be32 pb_Reserved1[2];
+  __be32 pb_DevFlags;
   __u8 pb_DriveName[32];
-  __u32 pb_Reserved2[15];
+  __be32 pb_Reserved2[15];
   __be32 pb_Environment[17];
-  __u32 pb_EReserved[15];
+  __be32 pb_EReserved[15];
 };
 #define IDNAME_PARTITION 0x50415254
 #define RDB_ALLOCATION_LIMIT 16
diff --git a/libc/kernel/uapi/linux/agpgart.h b/libc/kernel/uapi/linux/agpgart.h
index 9dda7bf..403c0b3 100644
--- a/libc/kernel/uapi/linux/agpgart.h
+++ b/libc/kernel/uapi/linux/agpgart.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_AGP_H
 #define _UAPI_AGP_H
 #define AGPIOC_BASE 'A'
diff --git a/libc/kernel/uapi/linux/aio_abi.h b/libc/kernel/uapi/linux/aio_abi.h
index 17ca2f9..35f212b 100644
--- a/libc/kernel/uapi/linux/aio_abi.h
+++ b/libc/kernel/uapi/linux/aio_abi.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __LINUX__AIO_ABI_H
 #define __LINUX__AIO_ABI_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/am437x-vpfe.h b/libc/kernel/uapi/linux/am437x-vpfe.h
index 9ea21d2..a0607aa 100644
--- a/libc/kernel/uapi/linux/am437x-vpfe.h
+++ b/libc/kernel/uapi/linux/am437x-vpfe.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef AM437X_VPFE_USER_H
 #define AM437X_VPFE_USER_H
 #include <linux/videodev2.h>
diff --git a/libc/kernel/uapi/linux/amt.h b/libc/kernel/uapi/linux/amt.h
index 049006d..c9cdd09 100644
--- a/libc/kernel/uapi/linux/amt.h
+++ b/libc/kernel/uapi/linux/amt.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_AMT_H_
 #define _UAPI_AMT_H_
 enum ifla_amt_mode {
diff --git a/libc/kernel/uapi/linux/android/binder.h b/libc/kernel/uapi/linux/android/binder.h
index 52f4c6b..6e64ebc 100644
--- a/libc/kernel/uapi/linux/android/binder.h
+++ b/libc/kernel/uapi/linux/android/binder.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_BINDER_H
 #define _UAPI_LINUX_BINDER_H
 #include <linux/types.h>
@@ -132,20 +120,22 @@
   __u32 command;
   __s32 param;
 };
-#define BINDER_WRITE_READ _IOWR('b', 1, struct binder_write_read)
-#define BINDER_SET_IDLE_TIMEOUT _IOW('b', 3, __s64)
-#define BINDER_SET_MAX_THREADS _IOW('b', 5, __u32)
-#define BINDER_SET_IDLE_PRIORITY _IOW('b', 6, __s32)
-#define BINDER_SET_CONTEXT_MGR _IOW('b', 7, __s32)
-#define BINDER_THREAD_EXIT _IOW('b', 8, __s32)
-#define BINDER_VERSION _IOWR('b', 9, struct binder_version)
-#define BINDER_GET_NODE_DEBUG_INFO _IOWR('b', 11, struct binder_node_debug_info)
-#define BINDER_GET_NODE_INFO_FOR_REF _IOWR('b', 12, struct binder_node_info_for_ref)
-#define BINDER_SET_CONTEXT_MGR_EXT _IOW('b', 13, struct flat_binder_object)
-#define BINDER_FREEZE _IOW('b', 14, struct binder_freeze_info)
-#define BINDER_GET_FROZEN_INFO _IOWR('b', 15, struct binder_frozen_status_info)
-#define BINDER_ENABLE_ONEWAY_SPAM_DETECTION _IOW('b', 16, __u32)
-#define BINDER_GET_EXTENDED_ERROR _IOWR('b', 17, struct binder_extended_error)
+enum {
+  BINDER_WRITE_READ = _IOWR('b', 1, struct binder_write_read),
+  BINDER_SET_IDLE_TIMEOUT = _IOW('b', 3, __s64),
+  BINDER_SET_MAX_THREADS = _IOW('b', 5, __u32),
+  BINDER_SET_IDLE_PRIORITY = _IOW('b', 6, __s32),
+  BINDER_SET_CONTEXT_MGR = _IOW('b', 7, __s32),
+  BINDER_THREAD_EXIT = _IOW('b', 8, __s32),
+  BINDER_VERSION = _IOWR('b', 9, struct binder_version),
+  BINDER_GET_NODE_DEBUG_INFO = _IOWR('b', 11, struct binder_node_debug_info),
+  BINDER_GET_NODE_INFO_FOR_REF = _IOWR('b', 12, struct binder_node_info_for_ref),
+  BINDER_SET_CONTEXT_MGR_EXT = _IOW('b', 13, struct flat_binder_object),
+  BINDER_FREEZE = _IOW('b', 14, struct binder_freeze_info),
+  BINDER_GET_FROZEN_INFO = _IOWR('b', 15, struct binder_frozen_status_info),
+  BINDER_ENABLE_ONEWAY_SPAM_DETECTION = _IOW('b', 16, __u32),
+  BINDER_GET_EXTENDED_ERROR = _IOWR('b', 17, struct binder_extended_error),
+};
 enum transaction_flags {
   TF_ONE_WAY = 0x01,
   TF_ROOT_OBJECT = 0x04,
@@ -221,6 +211,7 @@
   BR_FAILED_REPLY = _IO('r', 17),
   BR_FROZEN_REPLY = _IO('r', 18),
   BR_ONEWAY_SPAM_SUSPECT = _IO('r', 19),
+  BR_TRANSACTION_PENDING_FROZEN = _IO('r', 20),
 };
 enum binder_driver_command_protocol {
   BC_TRANSACTION = _IOW('c', 0, struct binder_transaction_data),
diff --git a/libc/kernel/uapi/linux/android/binderfs.h b/libc/kernel/uapi/linux/android/binderfs.h
index d58c333..c17f272 100644
--- a/libc/kernel/uapi/linux/android/binderfs.h
+++ b/libc/kernel/uapi/linux/android/binderfs.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_BINDERFS_H
 #define _UAPI_LINUX_BINDERFS_H
 #include <linux/android/binder.h>
diff --git a/libc/kernel/uapi/linux/apm_bios.h b/libc/kernel/uapi/linux/apm_bios.h
index b2ffe01..62c27e0 100644
--- a/libc/kernel/uapi/linux/apm_bios.h
+++ b/libc/kernel/uapi/linux/apm_bios.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_APM_H
 #define _UAPI_LINUX_APM_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/arcfb.h b/libc/kernel/uapi/linux/arcfb.h
index 93fc722..c74ba47 100644
--- a/libc/kernel/uapi/linux/arcfb.h
+++ b/libc/kernel/uapi/linux/arcfb.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __LINUX_ARCFB_H__
 #define __LINUX_ARCFB_H__
 #define FBIO_WAITEVENT _IO('F', 0x88)
diff --git a/libc/kernel/uapi/linux/arm_sdei.h b/libc/kernel/uapi/linux/arm_sdei.h
index 4ec9294..562b44f 100644
--- a/libc/kernel/uapi/linux/arm_sdei.h
+++ b/libc/kernel/uapi/linux/arm_sdei.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_ARM_SDEI_H
 #define _UAPI_LINUX_ARM_SDEI_H
 #define SDEI_1_0_FN_BASE 0xC4000020
diff --git a/libc/kernel/uapi/linux/ashmem.h b/libc/kernel/uapi/linux/ashmem.h
index 88f0e81..5b28f8f 100644
--- a/libc/kernel/uapi/linux/ashmem.h
+++ b/libc/kernel/uapi/linux/ashmem.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_ASHMEM_H
 #define _UAPI_LINUX_ASHMEM_H
 #include <linux/ioctl.h>
diff --git a/libc/kernel/uapi/linux/aspeed-lpc-ctrl.h b/libc/kernel/uapi/linux/aspeed-lpc-ctrl.h
index fcde081..ab1e8db 100644
--- a/libc/kernel/uapi/linux/aspeed-lpc-ctrl.h
+++ b/libc/kernel/uapi/linux/aspeed-lpc-ctrl.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_ASPEED_LPC_CTRL_H
 #define _UAPI_LINUX_ASPEED_LPC_CTRL_H
 #include <linux/ioctl.h>
diff --git a/libc/kernel/uapi/linux/aspeed-p2a-ctrl.h b/libc/kernel/uapi/linux/aspeed-p2a-ctrl.h
index 94e5132..ee65fed 100644
--- a/libc/kernel/uapi/linux/aspeed-p2a-ctrl.h
+++ b/libc/kernel/uapi/linux/aspeed-p2a-ctrl.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_ASPEED_P2A_CTRL_H
 #define _UAPI_LINUX_ASPEED_P2A_CTRL_H
 #include <linux/ioctl.h>
diff --git a/libc/kernel/uapi/linux/aspeed-video.h b/libc/kernel/uapi/linux/aspeed-video.h
index d5109c1..64d13aa 100644
--- a/libc/kernel/uapi/linux/aspeed-video.h
+++ b/libc/kernel/uapi/linux/aspeed-video.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_ASPEED_VIDEO_H
 #define _UAPI_LINUX_ASPEED_VIDEO_H
 #include <linux/v4l2-controls.h>
diff --git a/libc/kernel/uapi/linux/atalk.h b/libc/kernel/uapi/linux/atalk.h
index 0619cf5..a2f1278 100644
--- a/libc/kernel/uapi/linux/atalk.h
+++ b/libc/kernel/uapi/linux/atalk.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI__LINUX_ATALK_H__
 #define _UAPI__LINUX_ATALK_H__
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/atm.h b/libc/kernel/uapi/linux/atm.h
index 72d329d..ff92191 100644
--- a/libc/kernel/uapi/linux/atm.h
+++ b/libc/kernel/uapi/linux/atm.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_ATM_H
 #define _UAPI_LINUX_ATM_H
 #include <linux/compiler.h>
diff --git a/libc/kernel/uapi/linux/atm_eni.h b/libc/kernel/uapi/linux/atm_eni.h
index fd721f0..726e833 100644
--- a/libc/kernel/uapi/linux/atm_eni.h
+++ b/libc/kernel/uapi/linux/atm_eni.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef LINUX_ATM_ENI_H
 #define LINUX_ATM_ENI_H
 #include <linux/atmioc.h>
diff --git a/libc/kernel/uapi/linux/atm_he.h b/libc/kernel/uapi/linux/atm_he.h
index 65ec396..61353ba 100644
--- a/libc/kernel/uapi/linux/atm_he.h
+++ b/libc/kernel/uapi/linux/atm_he.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef LINUX_ATM_HE_H
 #define LINUX_ATM_HE_H
 #include <linux/atmioc.h>
diff --git a/libc/kernel/uapi/linux/atm_idt77105.h b/libc/kernel/uapi/linux/atm_idt77105.h
index c3332ee..8a80e67 100644
--- a/libc/kernel/uapi/linux/atm_idt77105.h
+++ b/libc/kernel/uapi/linux/atm_idt77105.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef LINUX_ATM_IDT77105_H
 #define LINUX_ATM_IDT77105_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/atm_nicstar.h b/libc/kernel/uapi/linux/atm_nicstar.h
index 856dbd5..15585a1 100644
--- a/libc/kernel/uapi/linux/atm_nicstar.h
+++ b/libc/kernel/uapi/linux/atm_nicstar.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef LINUX_ATM_NICSTAR_H
 #define LINUX_ATM_NICSTAR_H
 #include <linux/atmapi.h>
diff --git a/libc/kernel/uapi/linux/atm_tcp.h b/libc/kernel/uapi/linux/atm_tcp.h
index 1e08b08..0e0e5af 100644
--- a/libc/kernel/uapi/linux/atm_tcp.h
+++ b/libc/kernel/uapi/linux/atm_tcp.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPILINUX_ATM_TCP_H
 #define _UAPILINUX_ATM_TCP_H
 #include <linux/atmapi.h>
diff --git a/libc/kernel/uapi/linux/atm_zatm.h b/libc/kernel/uapi/linux/atm_zatm.h
index 1649b85..c03678c 100644
--- a/libc/kernel/uapi/linux/atm_zatm.h
+++ b/libc/kernel/uapi/linux/atm_zatm.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef LINUX_ATM_ZATM_H
 #define LINUX_ATM_ZATM_H
 #include <linux/atmapi.h>
diff --git a/libc/kernel/uapi/linux/atmapi.h b/libc/kernel/uapi/linux/atmapi.h
index 65f48ba..c811b2c 100644
--- a/libc/kernel/uapi/linux/atmapi.h
+++ b/libc/kernel/uapi/linux/atmapi.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _LINUX_ATMAPI_H
 #define _LINUX_ATMAPI_H
 #if defined(__sparc__) || defined(__ia64__)
diff --git a/libc/kernel/uapi/linux/atmarp.h b/libc/kernel/uapi/linux/atmarp.h
index 78f8cae..a40d252 100644
--- a/libc/kernel/uapi/linux/atmarp.h
+++ b/libc/kernel/uapi/linux/atmarp.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _LINUX_ATMARP_H
 #define _LINUX_ATMARP_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/atmbr2684.h b/libc/kernel/uapi/linux/atmbr2684.h
index 8e115db..544ad79 100644
--- a/libc/kernel/uapi/linux/atmbr2684.h
+++ b/libc/kernel/uapi/linux/atmbr2684.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _LINUX_ATMBR2684_H
 #define _LINUX_ATMBR2684_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/atmclip.h b/libc/kernel/uapi/linux/atmclip.h
index 52e491c..f590e52 100644
--- a/libc/kernel/uapi/linux/atmclip.h
+++ b/libc/kernel/uapi/linux/atmclip.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef LINUX_ATMCLIP_H
 #define LINUX_ATMCLIP_H
 #include <linux/sockios.h>
diff --git a/libc/kernel/uapi/linux/atmdev.h b/libc/kernel/uapi/linux/atmdev.h
index 74cdfc1..095dc30 100644
--- a/libc/kernel/uapi/linux/atmdev.h
+++ b/libc/kernel/uapi/linux/atmdev.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPILINUX_ATMDEV_H
 #define _UAPILINUX_ATMDEV_H
 #include <linux/atmapi.h>
diff --git a/libc/kernel/uapi/linux/atmioc.h b/libc/kernel/uapi/linux/atmioc.h
index 1907288..c2315ef 100644
--- a/libc/kernel/uapi/linux/atmioc.h
+++ b/libc/kernel/uapi/linux/atmioc.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _LINUX_ATMIOC_H
 #define _LINUX_ATMIOC_H
 #include <asm/ioctl.h>
diff --git a/libc/kernel/uapi/linux/atmlec.h b/libc/kernel/uapi/linux/atmlec.h
index d70c517..a72bec8 100644
--- a/libc/kernel/uapi/linux/atmlec.h
+++ b/libc/kernel/uapi/linux/atmlec.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _ATMLEC_H_
 #define _ATMLEC_H_
 #include <linux/atmapi.h>
diff --git a/libc/kernel/uapi/linux/atmmpc.h b/libc/kernel/uapi/linux/atmmpc.h
index a420581..66e599a 100644
--- a/libc/kernel/uapi/linux/atmmpc.h
+++ b/libc/kernel/uapi/linux/atmmpc.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _ATMMPC_H_
 #define _ATMMPC_H_
 #include <linux/atmapi.h>
diff --git a/libc/kernel/uapi/linux/atmppp.h b/libc/kernel/uapi/linux/atmppp.h
index 1cc0d08..7e1f376 100644
--- a/libc/kernel/uapi/linux/atmppp.h
+++ b/libc/kernel/uapi/linux/atmppp.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _LINUX_ATMPPP_H
 #define _LINUX_ATMPPP_H
 #include <linux/atm.h>
diff --git a/libc/kernel/uapi/linux/atmsap.h b/libc/kernel/uapi/linux/atmsap.h
index 1487f9a..2d6ffdc 100644
--- a/libc/kernel/uapi/linux/atmsap.h
+++ b/libc/kernel/uapi/linux/atmsap.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _LINUX_ATMSAP_H
 #define _LINUX_ATMSAP_H
 #include <linux/atmapi.h>
diff --git a/libc/kernel/uapi/linux/atmsvc.h b/libc/kernel/uapi/linux/atmsvc.h
index ca038f5..14524ff 100644
--- a/libc/kernel/uapi/linux/atmsvc.h
+++ b/libc/kernel/uapi/linux/atmsvc.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _LINUX_ATMSVC_H
 #define _LINUX_ATMSVC_H
 #include <linux/atmapi.h>
diff --git a/libc/kernel/uapi/linux/audit.h b/libc/kernel/uapi/linux/audit.h
index f7c969b..98849f1 100644
--- a/libc/kernel/uapi/linux/audit.h
+++ b/libc/kernel/uapi/linux/audit.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_AUDIT_H_
 #define _UAPI_LINUX_AUDIT_H_
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/auto_dev-ioctl.h b/libc/kernel/uapi/linux/auto_dev-ioctl.h
index 23c8096..89cc04a 100644
--- a/libc/kernel/uapi/linux/auto_dev-ioctl.h
+++ b/libc/kernel/uapi/linux/auto_dev-ioctl.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_AUTO_DEV_IOCTL_H
 #define _UAPI_LINUX_AUTO_DEV_IOCTL_H
 #include <linux/auto_fs.h>
@@ -85,7 +73,7 @@
     struct args_askumount askumount;
     struct args_ismountpoint ismountpoint;
   };
-  char path[0];
+  char path[];
 };
 enum {
   AUTOFS_DEV_IOCTL_VERSION_CMD = 0x71,
diff --git a/libc/kernel/uapi/linux/auto_fs.h b/libc/kernel/uapi/linux/auto_fs.h
index 39d1ac8..dd11a93 100644
--- a/libc/kernel/uapi/linux/auto_fs.h
+++ b/libc/kernel/uapi/linux/auto_fs.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_AUTO_FS_H
 #define _UAPI_LINUX_AUTO_FS_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/auto_fs4.h b/libc/kernel/uapi/linux/auto_fs4.h
index 41f3c8c..109b252 100644
--- a/libc/kernel/uapi/linux/auto_fs4.h
+++ b/libc/kernel/uapi/linux/auto_fs4.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_AUTO_FS4_H
 #define _UAPI_LINUX_AUTO_FS4_H
 #include <linux/auto_fs.h>
diff --git a/libc/kernel/uapi/linux/auxvec.h b/libc/kernel/uapi/linux/auxvec.h
index c80c170..6dbdc75 100644
--- a/libc/kernel/uapi/linux/auxvec.h
+++ b/libc/kernel/uapi/linux/auxvec.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_AUXVEC_H
 #define _UAPI_LINUX_AUXVEC_H
 #include <asm/auxvec.h>
@@ -41,6 +29,10 @@
 #define AT_BASE_PLATFORM 24
 #define AT_RANDOM 25
 #define AT_HWCAP2 26
+#define AT_RSEQ_FEATURE_SIZE 27
+#define AT_RSEQ_ALIGN 28
+#define AT_HWCAP3 29
+#define AT_HWCAP4 30
 #define AT_EXECFN 31
 #ifndef AT_MINSIGSTKSZ
 #define AT_MINSIGSTKSZ 51
diff --git a/libc/kernel/uapi/linux/ax25.h b/libc/kernel/uapi/linux/ax25.h
index 0d6aa95..8f66ca6 100644
--- a/libc/kernel/uapi/linux/ax25.h
+++ b/libc/kernel/uapi/linux/ax25.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef AX25_KERNEL_H
 #define AX25_KERNEL_H
 #include <linux/socket.h>
diff --git a/libc/kernel/uapi/linux/batadv_packet.h b/libc/kernel/uapi/linux/batadv_packet.h
index ede53cf..83e5e71 100644
--- a/libc/kernel/uapi/linux/batadv_packet.h
+++ b/libc/kernel/uapi/linux/batadv_packet.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_BATADV_PACKET_H_
 #define _UAPI_LINUX_BATADV_PACKET_H_
 #include <asm/byteorder.h>
@@ -28,6 +16,7 @@
   BATADV_CODED = 0x02,
   BATADV_ELP = 0x03,
   BATADV_OGM2 = 0x04,
+  BATADV_MCAST = 0x05,
 #define BATADV_UNICAST_MIN 0x40
   BATADV_UNICAST = 0x40,
   BATADV_UNICAST_FRAG = 0x41,
@@ -62,6 +51,7 @@
   BATADV_MCAST_WANT_ALL_IPV6 = 1UL << 2,
   BATADV_MCAST_WANT_NO_RTR4 = 1UL << 3,
   BATADV_MCAST_WANT_NO_RTR6 = 1UL << 4,
+  BATADV_MCAST_HAVE_MC_PTYPE_CAPA = 1UL << 5,
 };
 #define BATADV_TT_DATA_TYPE_MASK 0x0F
 enum batadv_tt_data_flags {
@@ -87,6 +77,7 @@
   BATADV_TVLV_TT = 0x04,
   BATADV_TVLV_ROAM = 0x05,
   BATADV_TVLV_MCAST = 0x06,
+  BATADV_TVLV_MCAST_TRACKER = 0x07,
 };
 #pragma pack(2)
 struct batadv_bla_claim_dst {
@@ -219,6 +210,13 @@
   __be32 seqno;
   __u8 orig[ETH_ALEN];
 };
+struct batadv_mcast_packet {
+  __u8 packet_type;
+  __u8 version;
+  __u8 ttl;
+  __u8 reserved;
+  __be16 tvlv_len;
+};
 struct batadv_coded_packet {
   __u8 packet_type;
   __u8 version;
@@ -278,5 +276,8 @@
   __u8 flags;
   __u8 reserved[3];
 };
+struct batadv_tvlv_mcast_tracker {
+  __be16 num_dests;
+};
 #pragma pack()
 #endif
diff --git a/libc/kernel/uapi/linux/batman_adv.h b/libc/kernel/uapi/linux/batman_adv.h
index 9f48dac..cb9b09f 100644
--- a/libc/kernel/uapi/linux/batman_adv.h
+++ b/libc/kernel/uapi/linux/batman_adv.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_BATMAN_ADV_H_
 #define _UAPI_LINUX_BATMAN_ADV_H_
 #define BATADV_NL_NAME "batadv"
diff --git a/libc/kernel/uapi/linux/baycom.h b/libc/kernel/uapi/linux/baycom.h
index ce0edf5..c0d4308 100644
--- a/libc/kernel/uapi/linux/baycom.h
+++ b/libc/kernel/uapi/linux/baycom.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _BAYCOM_H
 #define _BAYCOM_H
 struct baycom_debug_data {
diff --git a/libc/kernel/uapi/linux/bcm933xx_hcs.h b/libc/kernel/uapi/linux/bcm933xx_hcs.h
index a57828f..f8ad281 100644
--- a/libc/kernel/uapi/linux/bcm933xx_hcs.h
+++ b/libc/kernel/uapi/linux/bcm933xx_hcs.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __BCM933XX_HCS_H
 #define __BCM933XX_HCS_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/bfs_fs.h b/libc/kernel/uapi/linux/bfs_fs.h
index 4a11e8a..f46508f 100644
--- a/libc/kernel/uapi/linux/bfs_fs.h
+++ b/libc/kernel/uapi/linux/bfs_fs.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _LINUX_BFS_FS_H
 #define _LINUX_BFS_FS_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/binfmts.h b/libc/kernel/uapi/linux/binfmts.h
index 053be3c..3b47586 100644
--- a/libc/kernel/uapi/linux/binfmts.h
+++ b/libc/kernel/uapi/linux/binfmts.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_BINFMTS_H
 #define _UAPI_LINUX_BINFMTS_H
 #include <linux/capability.h>
diff --git a/libc/kernel/uapi/linux/bits.h b/libc/kernel/uapi/linux/bits.h
new file mode 100644
index 0000000..d747e24
--- /dev/null
+++ b/libc/kernel/uapi/linux/bits.h
@@ -0,0 +1,11 @@
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
+#ifndef _UAPI_LINUX_BITS_H
+#define _UAPI_LINUX_BITS_H
+#define __GENMASK(h,l) (((~_UL(0)) - (_UL(1) << (l)) + 1) & (~_UL(0) >> (__BITS_PER_LONG - 1 - (h))))
+#define __GENMASK_ULL(h,l) (((~_ULL(0)) - (_ULL(1) << (l)) + 1) & (~_ULL(0) >> (__BITS_PER_LONG_LONG - 1 - (h))))
+#endif
diff --git a/libc/kernel/uapi/linux/blkpg.h b/libc/kernel/uapi/linux/blkpg.h
index bfe504f..3978e94 100644
--- a/libc/kernel/uapi/linux/blkpg.h
+++ b/libc/kernel/uapi/linux/blkpg.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI__LINUX_BLKPG_H
 #define _UAPI__LINUX_BLKPG_H
 #include <linux/compiler.h>
diff --git a/libc/kernel/uapi/linux/blktrace_api.h b/libc/kernel/uapi/linux/blktrace_api.h
index 64c0b77..4196520 100644
--- a/libc/kernel/uapi/linux/blktrace_api.h
+++ b/libc/kernel/uapi/linux/blktrace_api.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPIBLKTRACE_H
 #define _UAPIBLKTRACE_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/blkzoned.h b/libc/kernel/uapi/linux/blkzoned.h
index e41ac9f..f7b1b78 100644
--- a/libc/kernel/uapi/linux/blkzoned.h
+++ b/libc/kernel/uapi/linux/blkzoned.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_BLKZONED_H
 #define _UAPI_BLKZONED_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/bpf.h b/libc/kernel/uapi/linux/bpf.h
index 163dd1e..8d64816 100644
--- a/libc/kernel/uapi/linux/bpf.h
+++ b/libc/kernel/uapi/linux/bpf.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI__LINUX_BPF_H__
 #define _UAPI__LINUX_BPF_H__
 #include <linux/types.h>
@@ -23,6 +11,7 @@
 #define BPF_JMP32 0x06
 #define BPF_ALU64 0x07
 #define BPF_DW 0x18
+#define BPF_MEMSX 0x80
 #define BPF_ATOMIC 0xc0
 #define BPF_XADD 0xc0
 #define BPF_MOV 0xb0
@@ -39,11 +28,15 @@
 #define BPF_JSGE 0x70
 #define BPF_JSLT 0xc0
 #define BPF_JSLE 0xd0
+#define BPF_JCOND 0xe0
 #define BPF_CALL 0x80
 #define BPF_EXIT 0x90
 #define BPF_FETCH 0x01
 #define BPF_XCHG (0xe0 | BPF_FETCH)
 #define BPF_CMPXCHG (0xf0 | BPF_FETCH)
+enum bpf_cond_pseudo_jmp {
+  BPF_MAY_GOTO = 0,
+};
 enum {
   BPF_REG_0 = 0,
   BPF_REG_1,
@@ -70,6 +63,16 @@
   __u32 prefixlen;
   __u8 data[0];
 };
+struct bpf_lpm_trie_key_hdr {
+  __u32 prefixlen;
+};
+struct bpf_lpm_trie_key_u8 {
+  union {
+    struct bpf_lpm_trie_key_hdr hdr;
+    __u32 prefixlen;
+  };
+  __u8 data[];
+};
 struct bpf_cgroup_storage_key {
   __u64 cgroup_inode_id;
   __u32 attach_type;
@@ -134,6 +137,8 @@
   BPF_ITER_CREATE,
   BPF_LINK_DETACH,
   BPF_PROG_BIND_MAP,
+  BPF_TOKEN_CREATE,
+  __MAX_BPF_CMD,
 };
 enum bpf_map_type {
   BPF_MAP_TYPE_UNSPEC,
@@ -158,7 +163,8 @@
   BPF_MAP_TYPE_CGROUP_STORAGE_DEPRECATED,
   BPF_MAP_TYPE_CGROUP_STORAGE = BPF_MAP_TYPE_CGROUP_STORAGE_DEPRECATED,
   BPF_MAP_TYPE_REUSEPORT_SOCKARRAY,
-  BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE,
+  BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE_DEPRECATED,
+  BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE = BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE_DEPRECATED,
   BPF_MAP_TYPE_QUEUE,
   BPF_MAP_TYPE_STACK,
   BPF_MAP_TYPE_SK_STORAGE,
@@ -170,6 +176,8 @@
   BPF_MAP_TYPE_BLOOM_FILTER,
   BPF_MAP_TYPE_USER_RINGBUF,
   BPF_MAP_TYPE_CGRP_STORAGE,
+  BPF_MAP_TYPE_ARENA,
+  __MAX_BPF_MAP_TYPE
 };
 enum bpf_prog_type {
   BPF_PROG_TYPE_UNSPEC,
@@ -204,6 +212,8 @@
   BPF_PROG_TYPE_LSM,
   BPF_PROG_TYPE_SK_LOOKUP,
   BPF_PROG_TYPE_SYSCALL,
+  BPF_PROG_TYPE_NETFILTER,
+  __MAX_BPF_PROG_TYPE
 };
 enum bpf_attach_type {
   BPF_CGROUP_INET_INGRESS,
@@ -250,6 +260,19 @@
   BPF_PERF_EVENT,
   BPF_TRACE_KPROBE_MULTI,
   BPF_LSM_CGROUP,
+  BPF_STRUCT_OPS,
+  BPF_NETFILTER,
+  BPF_TCX_INGRESS,
+  BPF_TCX_EGRESS,
+  BPF_TRACE_UPROBE_MULTI,
+  BPF_CGROUP_UNIX_CONNECT,
+  BPF_CGROUP_UNIX_SENDMSG,
+  BPF_CGROUP_UNIX_RECVMSG,
+  BPF_CGROUP_UNIX_GETPEERNAME,
+  BPF_CGROUP_UNIX_GETSOCKNAME,
+  BPF_NETKIT_PRIMARY,
+  BPF_NETKIT_PEER,
+  BPF_TRACE_KPROBE_SESSION,
   __MAX_BPF_ATTACH_TYPE
 };
 #define MAX_BPF_ATTACH_TYPE __MAX_BPF_ATTACH_TYPE
@@ -264,18 +287,45 @@
   BPF_LINK_TYPE_PERF_EVENT = 7,
   BPF_LINK_TYPE_KPROBE_MULTI = 8,
   BPF_LINK_TYPE_STRUCT_OPS = 9,
-  MAX_BPF_LINK_TYPE,
+  BPF_LINK_TYPE_NETFILTER = 10,
+  BPF_LINK_TYPE_TCX = 11,
+  BPF_LINK_TYPE_UPROBE_MULTI = 12,
+  BPF_LINK_TYPE_NETKIT = 13,
+  BPF_LINK_TYPE_SOCKMAP = 14,
+  __MAX_BPF_LINK_TYPE,
+};
+#define MAX_BPF_LINK_TYPE __MAX_BPF_LINK_TYPE
+enum bpf_perf_event_type {
+  BPF_PERF_EVENT_UNSPEC = 0,
+  BPF_PERF_EVENT_UPROBE = 1,
+  BPF_PERF_EVENT_URETPROBE = 2,
+  BPF_PERF_EVENT_KPROBE = 3,
+  BPF_PERF_EVENT_KRETPROBE = 4,
+  BPF_PERF_EVENT_TRACEPOINT = 5,
+  BPF_PERF_EVENT_EVENT = 6,
 };
 #define BPF_F_ALLOW_OVERRIDE (1U << 0)
 #define BPF_F_ALLOW_MULTI (1U << 1)
 #define BPF_F_REPLACE (1U << 2)
+#define BPF_F_BEFORE (1U << 3)
+#define BPF_F_AFTER (1U << 4)
+#define BPF_F_ID (1U << 5)
+#define BPF_F_LINK BPF_F_LINK
 #define BPF_F_STRICT_ALIGNMENT (1U << 0)
 #define BPF_F_ANY_ALIGNMENT (1U << 1)
 #define BPF_F_TEST_RND_HI32 (1U << 2)
 #define BPF_F_TEST_STATE_FREQ (1U << 3)
 #define BPF_F_SLEEPABLE (1U << 4)
 #define BPF_F_XDP_HAS_FRAGS (1U << 5)
-#define BPF_F_KPROBE_MULTI_RETURN (1U << 0)
+#define BPF_F_XDP_DEV_BOUND_ONLY (1U << 6)
+#define BPF_F_TEST_REG_INVARIANTS (1U << 7)
+enum {
+  BPF_F_KPROBE_MULTI_RETURN = (1U << 0)
+};
+enum {
+  BPF_F_UPROBE_MULTI_RETURN = (1U << 0)
+};
+#define BPF_F_NETFILTER_IP_DEFRAG (1U << 0)
 #define BPF_PSEUDO_MAP_FD 1
 #define BPF_PSEUDO_MAP_IDX 5
 #define BPF_PSEUDO_MAP_VALUE 2
@@ -284,6 +334,9 @@
 #define BPF_PSEUDO_FUNC 4
 #define BPF_PSEUDO_CALL 1
 #define BPF_PSEUDO_KFUNC_CALL 2
+enum bpf_addr_space_cast {
+  BPF_ADDR_SPACE_CAST = 1,
+};
 enum {
   BPF_ANY = 0,
   BPF_NOEXIST = 1,
@@ -304,10 +357,17 @@
   BPF_F_MMAPABLE = (1U << 10),
   BPF_F_PRESERVE_ELEMS = (1U << 11),
   BPF_F_INNER_MAP = (1U << 12),
+  BPF_F_LINK = (1U << 13),
+  BPF_F_PATH_FD = (1U << 14),
+  BPF_F_VTYPE_BTF_OBJ_FD = (1U << 15),
+  BPF_F_TOKEN_FD = (1U << 16),
+  BPF_F_SEGV_ON_FAULT = (1U << 17),
+  BPF_F_NO_USER_CONV = (1U << 18),
 };
 #define BPF_F_QUERY_EFFECTIVE (1U << 0)
 #define BPF_F_TEST_RUN_ON_CPU (1U << 0)
 #define BPF_F_TEST_XDP_LIVE_FRAMES (1U << 1)
+#define BPF_F_TEST_SKB_CHECKSUM_COMPLETE (1U << 2)
 enum bpf_stats_type {
   BPF_STATS_RUN_TIME = 0,
 };
@@ -342,6 +402,8 @@
     __u32 btf_value_type_id;
     __u32 btf_vmlinux_value_type_id;
     __u64 map_extra;
+    __s32 value_type_btf_obj_fd;
+    __s32 map_token_fd;
   };
   struct {
     __u32 map_fd;
@@ -391,18 +453,29 @@
     __aligned_u64 fd_array;
     __aligned_u64 core_relos;
     __u32 core_relo_rec_size;
+    __u32 log_true_size;
+    __s32 prog_token_fd;
   };
   struct {
     __aligned_u64 pathname;
     __u32 bpf_fd;
     __u32 file_flags;
+    __s32 path_fd;
   };
   struct {
-    __u32 target_fd;
+    union {
+      __u32 target_fd;
+      __u32 target_ifindex;
+    };
     __u32 attach_bpf_fd;
     __u32 attach_type;
     __u32 attach_flags;
     __u32 replace_bpf_fd;
+    union {
+      __u32 relative_fd;
+      __u32 relative_id;
+    };
+    __u64 expected_revision;
   };
   struct {
     __u32 prog_fd;
@@ -438,17 +511,29 @@
     __aligned_u64 info;
   } info;
   struct {
-    __u32 target_fd;
+    union {
+      __u32 target_fd;
+      __u32 target_ifindex;
+    };
     __u32 attach_type;
     __u32 query_flags;
     __u32 attach_flags;
     __aligned_u64 prog_ids;
-    __u32 prog_cnt;
+    union {
+      __u32 prog_cnt;
+      __u32 count;
+    };
+    __u32 : 32;
     __aligned_u64 prog_attach_flags;
+    __aligned_u64 link_ids;
+    __aligned_u64 link_attach_flags;
+    __u64 revision;
   } query;
   struct {
     __u64 name;
     __u32 prog_fd;
+    __u32 : 32;
+    __aligned_u64 cookie;
   } raw_tracepoint;
   struct {
     __aligned_u64 btf;
@@ -456,6 +541,9 @@
     __u32 btf_size;
     __u32 btf_log_size;
     __u32 btf_log_level;
+    __u32 btf_log_true_size;
+    __u32 btf_flags;
+    __s32 btf_token_fd;
   };
   struct {
     __u32 pid;
@@ -469,7 +557,10 @@
     __u64 probe_addr;
   } task_fd_query;
   struct {
-    __u32 prog_fd;
+    union {
+      __u32 prog_fd;
+      __u32 map_fd;
+    };
     union {
       __u32 target_fd;
       __u32 target_ifindex;
@@ -496,13 +587,48 @@
         __u32 target_btf_id;
         __u64 cookie;
       } tracing;
+      struct {
+        __u32 pf;
+        __u32 hooknum;
+        __s32 priority;
+        __u32 flags;
+      } netfilter;
+      struct {
+        union {
+          __u32 relative_fd;
+          __u32 relative_id;
+        };
+        __u64 expected_revision;
+      } tcx;
+      struct {
+        __aligned_u64 path;
+        __aligned_u64 offsets;
+        __aligned_u64 ref_ctr_offsets;
+        __aligned_u64 cookies;
+        __u32 cnt;
+        __u32 flags;
+        __u32 pid;
+      } uprobe_multi;
+      struct {
+        union {
+          __u32 relative_fd;
+          __u32 relative_id;
+        };
+        __u64 expected_revision;
+      } netkit;
     };
   } link_create;
   struct {
     __u32 link_fd;
-    __u32 new_prog_fd;
+    union {
+      __u32 new_prog_fd;
+      __u32 new_map_fd;
+    };
     __u32 flags;
-    __u32 old_prog_fd;
+    union {
+      __u32 old_prog_fd;
+      __u32 old_map_fd;
+    };
   } link_update;
   struct {
     __u32 link_fd;
@@ -519,6 +645,10 @@
     __u32 map_fd;
     __u32 flags;
   } prog_bind_map;
+  struct {
+    __u32 flags;
+    __u32 bpffs_fd;
+  } token_create;
 } __attribute__((aligned(8)));
 #define ___BPF_FUNC_MAPPER(FN,ctx...) FN(unspec, 0, ##ctx) FN(map_lookup_elem, 1, ##ctx) FN(map_update_elem, 2, ##ctx) FN(map_delete_elem, 3, ##ctx) FN(probe_read, 4, ##ctx) FN(ktime_get_ns, 5, ##ctx) FN(trace_printk, 6, ##ctx) FN(get_prandom_u32, 7, ##ctx) FN(get_smp_processor_id, 8, ##ctx) FN(skb_store_bytes, 9, ##ctx) FN(l3_csum_replace, 10, ##ctx) FN(l4_csum_replace, 11, ##ctx) FN(tail_call, 12, ##ctx) FN(clone_redirect, 13, ##ctx) FN(get_current_pid_tgid, 14, ##ctx) FN(get_current_uid_gid, 15, ##ctx) FN(get_current_comm, 16, ##ctx) FN(get_cgroup_classid, 17, ##ctx) FN(skb_vlan_push, 18, ##ctx) FN(skb_vlan_pop, 19, ##ctx) FN(skb_get_tunnel_key, 20, ##ctx) FN(skb_set_tunnel_key, 21, ##ctx) FN(perf_event_read, 22, ##ctx) FN(redirect, 23, ##ctx) FN(get_route_realm, 24, ##ctx) FN(perf_event_output, 25, ##ctx) FN(skb_load_bytes, 26, ##ctx) FN(get_stackid, 27, ##ctx) FN(csum_diff, 28, ##ctx) FN(skb_get_tunnel_opt, 29, ##ctx) FN(skb_set_tunnel_opt, 30, ##ctx) FN(skb_change_proto, 31, ##ctx) FN(skb_change_type, 32, ##ctx) FN(skb_under_cgroup, 33, ##ctx) FN(get_hash_recalc, 34, ##ctx) FN(get_current_task, 35, ##ctx) FN(probe_write_user, 36, ##ctx) FN(current_task_under_cgroup, 37, ##ctx) FN(skb_change_tail, 38, ##ctx) FN(skb_pull_data, 39, ##ctx) FN(csum_update, 40, ##ctx) FN(set_hash_invalid, 41, ##ctx) FN(get_numa_node_id, 42, ##ctx) FN(skb_change_head, 43, ##ctx) FN(xdp_adjust_head, 44, ##ctx) FN(probe_read_str, 45, ##ctx) FN(get_socket_cookie, 46, ##ctx) FN(get_socket_uid, 47, ##ctx) FN(set_hash, 48, ##ctx) FN(setsockopt, 49, ##ctx) FN(skb_adjust_room, 50, ##ctx) FN(redirect_map, 51, ##ctx) FN(sk_redirect_map, 52, ##ctx) FN(sock_map_update, 53, ##ctx) FN(xdp_adjust_meta, 54, ##ctx) FN(perf_event_read_value, 55, ##ctx) FN(perf_prog_read_value, 56, ##ctx) FN(getsockopt, 57, ##ctx) FN(override_return, 58, ##ctx) FN(sock_ops_cb_flags_set, 59, ##ctx) FN(msg_redirect_map, 60, ##ctx) FN(msg_apply_bytes, 61, ##ctx) FN(msg_cork_bytes, 62, ##ctx) FN(msg_pull_data, 63, ##ctx) FN(bind, 64, ##ctx) FN(xdp_adjust_tail, 65, ##ctx) FN(skb_get_xfrm_state, 66, ##ctx) FN(get_stack, 67, ##ctx) FN(skb_load_bytes_relative, 68, ##ctx) FN(fib_lookup, 69, ##ctx) FN(sock_hash_update, 70, ##ctx) FN(msg_redirect_hash, 71, ##ctx) FN(sk_redirect_hash, 72, ##ctx) FN(lwt_push_encap, 73, ##ctx) FN(lwt_seg6_store_bytes, 74, ##ctx) FN(lwt_seg6_adjust_srh, 75, ##ctx) FN(lwt_seg6_action, 76, ##ctx) FN(rc_repeat, 77, ##ctx) FN(rc_keydown, 78, ##ctx) FN(skb_cgroup_id, 79, ##ctx) FN(get_current_cgroup_id, 80, ##ctx) FN(get_local_storage, 81, ##ctx) FN(sk_select_reuseport, 82, ##ctx) FN(skb_ancestor_cgroup_id, 83, ##ctx) FN(sk_lookup_tcp, 84, ##ctx) FN(sk_lookup_udp, 85, ##ctx) FN(sk_release, 86, ##ctx) FN(map_push_elem, 87, ##ctx) FN(map_pop_elem, 88, ##ctx) FN(map_peek_elem, 89, ##ctx) FN(msg_push_data, 90, ##ctx) FN(msg_pop_data, 91, ##ctx) FN(rc_pointer_rel, 92, ##ctx) FN(spin_lock, 93, ##ctx) FN(spin_unlock, 94, ##ctx) FN(sk_fullsock, 95, ##ctx) FN(tcp_sock, 96, ##ctx) FN(skb_ecn_set_ce, 97, ##ctx) FN(get_listener_sock, 98, ##ctx) FN(skc_lookup_tcp, 99, ##ctx) FN(tcp_check_syncookie, 100, ##ctx) FN(sysctl_get_name, 101, ##ctx) FN(sysctl_get_current_value, 102, ##ctx) FN(sysctl_get_new_value, 103, ##ctx) FN(sysctl_set_new_value, 104, ##ctx) FN(strtol, 105, ##ctx) FN(strtoul, 106, ##ctx) FN(sk_storage_get, 107, ##ctx) FN(sk_storage_delete, 108, ##ctx) FN(send_signal, 109, ##ctx) FN(tcp_gen_syncookie, 110, ##ctx) FN(skb_output, 111, ##ctx) FN(probe_read_user, 112, ##ctx) FN(probe_read_kernel, 113, ##ctx) FN(probe_read_user_str, 114, ##ctx) FN(probe_read_kernel_str, 115, ##ctx) FN(tcp_send_ack, 116, ##ctx) FN(send_signal_thread, 117, ##ctx) FN(jiffies64, 118, ##ctx) FN(read_branch_records, 119, ##ctx) FN(get_ns_current_pid_tgid, 120, ##ctx) FN(xdp_output, 121, ##ctx) FN(get_netns_cookie, 122, ##ctx) FN(get_current_ancestor_cgroup_id, 123, ##ctx) FN(sk_assign, 124, ##ctx) FN(ktime_get_boot_ns, 125, ##ctx) FN(seq_printf, 126, ##ctx) FN(seq_write, 127, ##ctx) FN(sk_cgroup_id, 128, ##ctx) FN(sk_ancestor_cgroup_id, 129, ##ctx) FN(ringbuf_output, 130, ##ctx) FN(ringbuf_reserve, 131, ##ctx) FN(ringbuf_submit, 132, ##ctx) FN(ringbuf_discard, 133, ##ctx) FN(ringbuf_query, 134, ##ctx) FN(csum_level, 135, ##ctx) FN(skc_to_tcp6_sock, 136, ##ctx) FN(skc_to_tcp_sock, 137, ##ctx) FN(skc_to_tcp_timewait_sock, 138, ##ctx) FN(skc_to_tcp_request_sock, 139, ##ctx) FN(skc_to_udp6_sock, 140, ##ctx) FN(get_task_stack, 141, ##ctx) FN(load_hdr_opt, 142, ##ctx) FN(store_hdr_opt, 143, ##ctx) FN(reserve_hdr_opt, 144, ##ctx) FN(inode_storage_get, 145, ##ctx) FN(inode_storage_delete, 146, ##ctx) FN(d_path, 147, ##ctx) FN(copy_from_user, 148, ##ctx) FN(snprintf_btf, 149, ##ctx) FN(seq_printf_btf, 150, ##ctx) FN(skb_cgroup_classid, 151, ##ctx) FN(redirect_neigh, 152, ##ctx) FN(per_cpu_ptr, 153, ##ctx) FN(this_cpu_ptr, 154, ##ctx) FN(redirect_peer, 155, ##ctx) FN(task_storage_get, 156, ##ctx) FN(task_storage_delete, 157, ##ctx) FN(get_current_task_btf, 158, ##ctx) FN(bprm_opts_set, 159, ##ctx) FN(ktime_get_coarse_ns, 160, ##ctx) FN(ima_inode_hash, 161, ##ctx) FN(sock_from_file, 162, ##ctx) FN(check_mtu, 163, ##ctx) FN(for_each_map_elem, 164, ##ctx) FN(snprintf, 165, ##ctx) FN(sys_bpf, 166, ##ctx) FN(btf_find_by_name_kind, 167, ##ctx) FN(sys_close, 168, ##ctx) FN(timer_init, 169, ##ctx) FN(timer_set_callback, 170, ##ctx) FN(timer_start, 171, ##ctx) FN(timer_cancel, 172, ##ctx) FN(get_func_ip, 173, ##ctx) FN(get_attach_cookie, 174, ##ctx) FN(task_pt_regs, 175, ##ctx) FN(get_branch_snapshot, 176, ##ctx) FN(trace_vprintk, 177, ##ctx) FN(skc_to_unix_sock, 178, ##ctx) FN(kallsyms_lookup_name, 179, ##ctx) FN(find_vma, 180, ##ctx) FN(loop, 181, ##ctx) FN(strncmp, 182, ##ctx) FN(get_func_arg, 183, ##ctx) FN(get_func_ret, 184, ##ctx) FN(get_func_arg_cnt, 185, ##ctx) FN(get_retval, 186, ##ctx) FN(set_retval, 187, ##ctx) FN(xdp_get_buff_len, 188, ##ctx) FN(xdp_load_bytes, 189, ##ctx) FN(xdp_store_bytes, 190, ##ctx) FN(copy_from_user_task, 191, ##ctx) FN(skb_set_tstamp, 192, ##ctx) FN(ima_file_hash, 193, ##ctx) FN(kptr_xchg, 194, ##ctx) FN(map_lookup_percpu_elem, 195, ##ctx) FN(skc_to_mptcp_sock, 196, ##ctx) FN(dynptr_from_mem, 197, ##ctx) FN(ringbuf_reserve_dynptr, 198, ##ctx) FN(ringbuf_submit_dynptr, 199, ##ctx) FN(ringbuf_discard_dynptr, 200, ##ctx) FN(dynptr_read, 201, ##ctx) FN(dynptr_write, 202, ##ctx) FN(dynptr_data, 203, ##ctx) FN(tcp_raw_gen_syncookie_ipv4, 204, ##ctx) FN(tcp_raw_gen_syncookie_ipv6, 205, ##ctx) FN(tcp_raw_check_syncookie_ipv4, 206, ##ctx) FN(tcp_raw_check_syncookie_ipv6, 207, ##ctx) FN(ktime_get_tai_ns, 208, ##ctx) FN(user_ringbuf_drain, 209, ##ctx) FN(cgrp_storage_get, 210, ##ctx) FN(cgrp_storage_delete, 211, ##ctx)
 #define __BPF_FUNC_MAPPER_APPLY(name,value,FN) FN(name),
@@ -557,6 +687,7 @@
   BPF_F_ZERO_CSUM_TX = (1ULL << 1),
   BPF_F_DONT_FRAGMENT = (1ULL << 2),
   BPF_F_SEQ_NUMBER = (1ULL << 3),
+  BPF_F_NO_TUNNEL_KEY = (1ULL << 4),
 };
 enum {
   BPF_F_TUNINFO_FLAGS = (1ULL << 4),
@@ -583,6 +714,8 @@
   BPF_F_ADJ_ROOM_ENCAP_L4_UDP = (1ULL << 4),
   BPF_F_ADJ_ROOM_NO_CSUM_RESET = (1ULL << 5),
   BPF_F_ADJ_ROOM_ENCAP_L2_ETH = (1ULL << 6),
+  BPF_F_ADJ_ROOM_DECAP_L3_IPV4 = (1ULL << 7),
+  BPF_F_ADJ_ROOM_DECAP_L3_IPV6 = (1ULL << 8),
 };
 enum {
   BPF_ADJ_ROOM_ENCAP_L2_MASK = 0xff,
@@ -641,8 +774,11 @@
 #define __bpf_md_ptr(type,name) union { type name; __u64 : 64; \
 } __attribute__((aligned(8)))
 enum {
-  BPF_SKB_TSTAMP_UNSPEC,
-  BPF_SKB_TSTAMP_DELIVERY_MONO,
+  BPF_SKB_TSTAMP_UNSPEC = 0,
+  BPF_SKB_TSTAMP_DELIVERY_MONO = 1,
+  BPF_SKB_CLOCK_REALTIME = 0,
+  BPF_SKB_CLOCK_MONOTONIC = 1,
+  BPF_SKB_CLOCK_TAI = 2,
 };
 struct __sk_buff {
   __u32 len;
@@ -777,6 +913,12 @@
     } ipv6;
   };
 };
+enum tcx_action_base {
+  TCX_NEXT = - 1,
+  TCX_PASS = 0,
+  TCX_DROP = 2,
+  TCX_REDIRECT = 7,
+};
 struct bpf_xdp_sock {
   __u32 queue_id;
 };
@@ -895,7 +1037,7 @@
   __u32 btf_id;
   __u32 btf_key_type_id;
   __u32 btf_value_type_id;
-  __u32 : 32;
+  __u32 btf_vmlinux_id;
   __u64 map_extra;
 } __attribute__((aligned(8)));
 struct bpf_btf_info {
@@ -950,6 +1092,76 @@
     struct {
       __u32 ifindex;
     } xdp;
+    struct {
+      __u32 map_id;
+    } struct_ops;
+    struct {
+      __u32 pf;
+      __u32 hooknum;
+      __s32 priority;
+      __u32 flags;
+    } netfilter;
+    struct {
+      __aligned_u64 addrs;
+      __u32 count;
+      __u32 flags;
+      __u64 missed;
+      __aligned_u64 cookies;
+    } kprobe_multi;
+    struct {
+      __aligned_u64 path;
+      __aligned_u64 offsets;
+      __aligned_u64 ref_ctr_offsets;
+      __aligned_u64 cookies;
+      __u32 path_size;
+      __u32 count;
+      __u32 flags;
+      __u32 pid;
+    } uprobe_multi;
+    struct {
+      __u32 type;
+      __u32 : 32;
+      union {
+        struct {
+          __aligned_u64 file_name;
+          __u32 name_len;
+          __u32 offset;
+          __u64 cookie;
+        } uprobe;
+        struct {
+          __aligned_u64 func_name;
+          __u32 name_len;
+          __u32 offset;
+          __u64 addr;
+          __u64 missed;
+          __u64 cookie;
+        } kprobe;
+        struct {
+          __aligned_u64 tp_name;
+          __u32 name_len;
+          __u32 : 32;
+          __u64 cookie;
+        } tracepoint;
+        struct {
+          __u64 config;
+          __u32 type;
+          __u32 : 32;
+          __u64 cookie;
+        } event;
+      };
+    } perf_event;
+    struct {
+      __u32 ifindex;
+      __u32 attach_type;
+    } tcx;
+    struct {
+      __u32 ifindex;
+      __u32 attach_type;
+    } netkit;
+    struct {
+      __u32 map_id;
+      __u32 attach_type;
+    } sockmap;
   };
 } __attribute__((aligned(8)));
 struct bpf_sock_addr {
@@ -1052,6 +1264,7 @@
   BPF_TCP_LISTEN,
   BPF_TCP_CLOSING,
   BPF_TCP_NEW_SYN_RECV,
+  BPF_TCP_BOUND_INACTIVE,
   BPF_TCP_MAX_STATES
 };
 enum {
@@ -1095,6 +1308,10 @@
 enum {
   BPF_FIB_LOOKUP_DIRECT = (1U << 0),
   BPF_FIB_LOOKUP_OUTPUT = (1U << 1),
+  BPF_FIB_LOOKUP_SKIP_NEIGH = (1U << 2),
+  BPF_FIB_LOOKUP_TBID = (1U << 3),
+  BPF_FIB_LOOKUP_SRC = (1U << 4),
+  BPF_FIB_LOOKUP_MARK = (1U << 5),
 };
 enum {
   BPF_FIB_LKUP_RET_SUCCESS,
@@ -1106,6 +1323,7 @@
   BPF_FIB_LKUP_RET_UNSUPP_LWT,
   BPF_FIB_LKUP_RET_NO_NEIGH,
   BPF_FIB_LKUP_RET_FRAG_NEEDED,
+  BPF_FIB_LKUP_RET_NO_SRC_ADDR,
 };
 struct bpf_fib_lookup {
   __u8 family;
@@ -1115,7 +1333,7 @@
   union {
     __u16 tot_len;
     __u16 mtu_result;
-  };
+  } __attribute__((packed, aligned(2)));
   __u32 ifindex;
   union {
     __u8 tos;
@@ -1130,10 +1348,22 @@
     __be32 ipv4_dst;
     __u32 ipv6_dst[4];
   };
-  __be16 h_vlan_proto;
-  __be16 h_vlan_TCI;
-  __u8 smac[6];
-  __u8 dmac[6];
+  union {
+    struct {
+      __be16 h_vlan_proto;
+      __be16 h_vlan_TCI;
+    };
+    __u32 tbid;
+  };
+  union {
+    struct {
+      __u32 mark;
+    };
+    struct {
+      __u8 smac[6];
+      __u8 dmac[6];
+    };
+  };
 };
 struct bpf_redir_neigh {
   __u32 nh_family;
@@ -1203,21 +1433,29 @@
   __u32 val;
 };
 struct bpf_timer {
-  __u64 : 64;
-  __u64 : 64;
+  __u64 __opaque[2];
+} __attribute__((aligned(8)));
+struct bpf_wq {
+  __u64 __opaque[2];
 } __attribute__((aligned(8)));
 struct bpf_dynptr {
-  __u64 : 64;
-  __u64 : 64;
+  __u64 __opaque[2];
 } __attribute__((aligned(8)));
 struct bpf_list_head {
-  __u64 : 64;
-  __u64 : 64;
+  __u64 __opaque[2];
 } __attribute__((aligned(8)));
 struct bpf_list_node {
-  __u64 : 64;
-  __u64 : 64;
+  __u64 __opaque[3];
 } __attribute__((aligned(8)));
+struct bpf_rb_root {
+  __u64 __opaque[2];
+} __attribute__((aligned(8)));
+struct bpf_rb_node {
+  __u64 __opaque[4];
+} __attribute__((aligned(8)));
+struct bpf_refcount {
+  __u32 __opaque[1];
+} __attribute__((aligned(4)));
 struct bpf_sysctl {
   __u32 write;
   __u32 file_pos;
@@ -1283,4 +1521,11 @@
   __u32 access_str_off;
   enum bpf_core_relo_kind kind;
 };
+enum {
+  BPF_F_TIMER_ABS = (1ULL << 0),
+  BPF_F_TIMER_CPU_PIN = (1ULL << 1),
+};
+struct bpf_iter_num {
+  __u64 __opaque[1];
+} __attribute__((aligned(8)));
 #endif
diff --git a/libc/kernel/uapi/linux/bpf_common.h b/libc/kernel/uapi/linux/bpf_common.h
index a368db7..e61b8b3 100644
--- a/libc/kernel/uapi/linux/bpf_common.h
+++ b/libc/kernel/uapi/linux/bpf_common.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI__LINUX_BPF_COMMON_H__
 #define _UAPI__LINUX_BPF_COMMON_H__
 #define BPF_CLASS(code) ((code) & 0x07)
diff --git a/libc/kernel/uapi/linux/bpf_perf_event.h b/libc/kernel/uapi/linux/bpf_perf_event.h
index 190b916..18e8b80 100644
--- a/libc/kernel/uapi/linux/bpf_perf_event.h
+++ b/libc/kernel/uapi/linux/bpf_perf_event.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI__LINUX_BPF_PERF_EVENT_H__
 #define _UAPI__LINUX_BPF_PERF_EVENT_H__
 #include <asm/bpf_perf_event.h>
diff --git a/libc/kernel/uapi/linux/bpfilter.h b/libc/kernel/uapi/linux/bpfilter.h
deleted file mode 100644
index a7d8d66..0000000
--- a/libc/kernel/uapi/linux/bpfilter.h
+++ /dev/null
@@ -1,34 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef _UAPI_LINUX_BPFILTER_H
-#define _UAPI_LINUX_BPFILTER_H
-#include <linux/if.h>
-enum {
-  BPFILTER_IPT_SO_SET_REPLACE = 64,
-  BPFILTER_IPT_SO_SET_ADD_COUNTERS = 65,
-  BPFILTER_IPT_SET_MAX,
-};
-enum {
-  BPFILTER_IPT_SO_GET_INFO = 64,
-  BPFILTER_IPT_SO_GET_ENTRIES = 65,
-  BPFILTER_IPT_SO_GET_REVISION_MATCH = 66,
-  BPFILTER_IPT_SO_GET_REVISION_TARGET = 67,
-  BPFILTER_IPT_GET_MAX,
-};
-#endif
diff --git a/libc/kernel/uapi/linux/bpqether.h b/libc/kernel/uapi/linux/bpqether.h
index 0b0b861..a39da39 100644
--- a/libc/kernel/uapi/linux/bpqether.h
+++ b/libc/kernel/uapi/linux/bpqether.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __BPQETHER_H
 #define __BPQETHER_H
 #include <linux/if_ether.h>
diff --git a/libc/kernel/uapi/linux/bsg.h b/libc/kernel/uapi/linux/bsg.h
index 0fcf8fc..31e8578 100644
--- a/libc/kernel/uapi/linux/bsg.h
+++ b/libc/kernel/uapi/linux/bsg.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPIBSG_H
 #define _UAPIBSG_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/bt-bmc.h b/libc/kernel/uapi/linux/bt-bmc.h
index 4bd566d..dbdcb50 100644
--- a/libc/kernel/uapi/linux/bt-bmc.h
+++ b/libc/kernel/uapi/linux/bt-bmc.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_BT_BMC_H
 #define _UAPI_LINUX_BT_BMC_H
 #include <linux/ioctl.h>
diff --git a/libc/kernel/uapi/linux/btf.h b/libc/kernel/uapi/linux/btf.h
index a1f68bf..83d7e68 100644
--- a/libc/kernel/uapi/linux/btf.h
+++ b/libc/kernel/uapi/linux/btf.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI__LINUX_BTF_H__
 #define _UAPI__LINUX_BTF_H__
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/btrfs.h b/libc/kernel/uapi/linux/btrfs.h
index 0fdac66..a3ebc4f 100644
--- a/libc/kernel/uapi/linux/btrfs.h
+++ b/libc/kernel/uapi/linux/btrfs.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_BTRFS_H
 #define _UAPI_LINUX_BTRFS_H
 #ifdef __cplusplus
@@ -57,6 +45,7 @@
   __u64 rsv_excl;
 };
 #define BTRFS_QGROUP_INHERIT_SET_LIMITS (1ULL << 0)
+#define BTRFS_QGROUP_INHERIT_FLAGS_SUPP (BTRFS_QGROUP_INHERIT_SET_LIMITS)
 struct btrfs_qgroup_inherit {
   __u64 flags;
   __u64 num_qgroups;
@@ -107,6 +96,7 @@
   __u64 unverified_errors;
 };
 #define BTRFS_SCRUB_READONLY 1
+#define BTRFS_SCRUB_SUPPORTED_FLAGS (BTRFS_SCRUB_READONLY)
 struct btrfs_ioctl_scrub_args {
   __u64 devid;
   __u64 start;
@@ -157,7 +147,8 @@
   __u8 uuid[BTRFS_UUID_SIZE];
   __u64 bytes_used;
   __u64 total_bytes;
-  __u64 unused[379];
+  __u8 fsid[BTRFS_UUID_SIZE];
+  __u64 unused[377];
   __u8 path[BTRFS_DEVICE_PATH_NAME_MAX];
 };
 #define BTRFS_FS_INFO_FLAG_CSUM_INFO (1 << 0)
@@ -195,6 +186,8 @@
 #define BTRFS_FEATURE_INCOMPAT_RAID1C34 (1ULL << 11)
 #define BTRFS_FEATURE_INCOMPAT_ZONED (1ULL << 12)
 #define BTRFS_FEATURE_INCOMPAT_EXTENT_TREE_V2 (1ULL << 13)
+#define BTRFS_FEATURE_INCOMPAT_RAID_STRIPE_TREE (1ULL << 14)
+#define BTRFS_FEATURE_INCOMPAT_SIMPLE_QUOTA (1ULL << 16)
 struct btrfs_ioctl_feature_flags {
   __u64 compat_flags;
   __u64 compat_ro_flags;
@@ -318,6 +311,7 @@
 };
 #define BTRFS_DEFRAG_RANGE_COMPRESS 1
 #define BTRFS_DEFRAG_RANGE_START_IO 2
+#define BTRFS_DEFRAG_RANGE_FLAGS_SUPP (BTRFS_DEFRAG_RANGE_COMPRESS | BTRFS_DEFRAG_RANGE_START_IO)
 struct btrfs_ioctl_defrag_range_args {
   __u64 start;
   __u64 len;
@@ -392,6 +386,7 @@
 #define BTRFS_QUOTA_CTL_ENABLE 1
 #define BTRFS_QUOTA_CTL_DISABLE 2
 #define BTRFS_QUOTA_CTL_RESCAN__NOTUSED 3
+#define BTRFS_QUOTA_CTL_ENABLE_SIMPLE_QUOTA 4
 struct btrfs_ioctl_quota_ctl_args {
   __u64 cmd;
   __u64 status;
diff --git a/libc/kernel/uapi/linux/btrfs_tree.h b/libc/kernel/uapi/linux/btrfs_tree.h
index 02422c0..88f44d9 100644
--- a/libc/kernel/uapi/linux/btrfs_tree.h
+++ b/libc/kernel/uapi/linux/btrfs_tree.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _BTRFS_CTREE_H_
 #define _BTRFS_CTREE_H_
 #include <linux/btrfs.h>
@@ -36,6 +24,7 @@
 #define BTRFS_UUID_TREE_OBJECTID 9ULL
 #define BTRFS_FREE_SPACE_TREE_OBJECTID 10ULL
 #define BTRFS_BLOCK_GROUP_TREE_OBJECTID 11ULL
+#define BTRFS_RAID_STRIPE_TREE_OBJECTID 12ULL
 #define BTRFS_DEV_STATS_OBJECTID 0ULL
 #define BTRFS_BALANCE_OBJECTID - 4ULL
 #define BTRFS_ORPHAN_OBJECTID - 5ULL
@@ -72,9 +61,9 @@
 #define BTRFS_ROOT_REF_KEY 156
 #define BTRFS_EXTENT_ITEM_KEY 168
 #define BTRFS_METADATA_ITEM_KEY 169
+#define BTRFS_EXTENT_OWNER_REF_KEY 172
 #define BTRFS_TREE_BLOCK_REF_KEY 176
 #define BTRFS_EXTENT_DATA_REF_KEY 178
-#define BTRFS_EXTENT_REF_V0_KEY 180
 #define BTRFS_SHARED_BLOCK_REF_KEY 182
 #define BTRFS_SHARED_DATA_REF_KEY 184
 #define BTRFS_BLOCK_GROUP_ITEM_KEY 192
@@ -84,6 +73,7 @@
 #define BTRFS_DEV_EXTENT_KEY 204
 #define BTRFS_DEV_ITEM_KEY 216
 #define BTRFS_CHUNK_ITEM_KEY 228
+#define BTRFS_RAID_STRIPE_KEY 230
 #define BTRFS_QGROUP_STATUS_KEY 240
 #define BTRFS_QGROUP_INFO_KEY 242
 #define BTRFS_QGROUP_LIMIT_KEY 244
@@ -285,6 +275,13 @@
   __le64 num_entries;
   __le64 num_bitmaps;
 } __attribute__((__packed__));
+struct btrfs_raid_stride {
+  __le64 devid;
+  __le64 physical;
+} __attribute__((__packed__));
+struct btrfs_stripe_extent {
+  __DECLARE_FLEX_ARRAY(struct btrfs_raid_stride, strides);
+} __attribute__((__packed__));
 #define BTRFS_HEADER_FLAG_WRITTEN (1ULL << 0)
 #define BTRFS_HEADER_FLAG_RELOC (1ULL << 1)
 #define BTRFS_SUPER_FLAG_ERROR (1ULL << 2)
@@ -293,6 +290,9 @@
 #define BTRFS_SUPER_FLAG_METADUMP_V2 (1ULL << 34)
 #define BTRFS_SUPER_FLAG_CHANGING_FSID (1ULL << 35)
 #define BTRFS_SUPER_FLAG_CHANGING_FSID_V2 (1ULL << 36)
+#define BTRFS_SUPER_FLAG_CHANGING_BG_TREE (1ULL << 38)
+#define BTRFS_SUPER_FLAG_CHANGING_DATA_CSUM (1ULL << 39)
+#define BTRFS_SUPER_FLAG_CHANGING_META_CSUM (1ULL << 40)
 struct btrfs_extent_item {
   __le64 refs;
   __le64 generation;
@@ -323,6 +323,9 @@
 struct btrfs_shared_data_ref {
   __le32 count;
 } __attribute__((__packed__));
+struct btrfs_extent_owner_ref {
+  __le64 root_id;
+} __attribute__((__packed__));
 struct btrfs_extent_inline_ref {
   __u8 type;
   __le64 offset;
@@ -515,13 +518,15 @@
 #define BTRFS_QGROUP_STATUS_FLAG_ON (1ULL << 0)
 #define BTRFS_QGROUP_STATUS_FLAG_RESCAN (1ULL << 1)
 #define BTRFS_QGROUP_STATUS_FLAG_INCONSISTENT (1ULL << 2)
-#define BTRFS_QGROUP_STATUS_FLAGS_MASK (BTRFS_QGROUP_STATUS_FLAG_ON | BTRFS_QGROUP_STATUS_FLAG_RESCAN | BTRFS_QGROUP_STATUS_FLAG_INCONSISTENT)
+#define BTRFS_QGROUP_STATUS_FLAG_SIMPLE_MODE (1ULL << 3)
+#define BTRFS_QGROUP_STATUS_FLAGS_MASK (BTRFS_QGROUP_STATUS_FLAG_ON | BTRFS_QGROUP_STATUS_FLAG_RESCAN | BTRFS_QGROUP_STATUS_FLAG_INCONSISTENT | BTRFS_QGROUP_STATUS_FLAG_SIMPLE_MODE)
 #define BTRFS_QGROUP_STATUS_VERSION 1
 struct btrfs_qgroup_status_item {
   __le64 version;
   __le64 generation;
   __le64 flags;
   __le64 rescan;
+  __le64 enable_gen;
 } __attribute__((__packed__));
 struct btrfs_qgroup_info_item {
   __le64 generation;
diff --git a/libc/kernel/uapi/linux/byteorder/big_endian.h b/libc/kernel/uapi/linux/byteorder/big_endian.h
index 82c5a4c..0ed5569 100644
--- a/libc/kernel/uapi/linux/byteorder/big_endian.h
+++ b/libc/kernel/uapi/linux/byteorder/big_endian.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_BYTEORDER_BIG_ENDIAN_H
 #define _UAPI_LINUX_BYTEORDER_BIG_ENDIAN_H
 #ifndef __BIG_ENDIAN
diff --git a/libc/kernel/uapi/linux/byteorder/little_endian.h b/libc/kernel/uapi/linux/byteorder/little_endian.h
index 28155b5..0c913ac 100644
--- a/libc/kernel/uapi/linux/byteorder/little_endian.h
+++ b/libc/kernel/uapi/linux/byteorder/little_endian.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_BYTEORDER_LITTLE_ENDIAN_H
 #define _UAPI_LINUX_BYTEORDER_LITTLE_ENDIAN_H
 #ifndef __LITTLE_ENDIAN
diff --git a/libc/kernel/uapi/linux/cachefiles.h b/libc/kernel/uapi/linux/cachefiles.h
index f5a58a5..838d1f6 100644
--- a/libc/kernel/uapi/linux/cachefiles.h
+++ b/libc/kernel/uapi/linux/cachefiles.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _LINUX_CACHEFILES_H
 #define _LINUX_CACHEFILES_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/caif/caif_socket.h b/libc/kernel/uapi/linux/caif/caif_socket.h
index 999d1b7..bef723a 100644
--- a/libc/kernel/uapi/linux/caif/caif_socket.h
+++ b/libc/kernel/uapi/linux/caif/caif_socket.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _LINUX_CAIF_SOCKET_H
 #define _LINUX_CAIF_SOCKET_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/caif/if_caif.h b/libc/kernel/uapi/linux/caif/if_caif.h
index 36dfe08..28b1688 100644
--- a/libc/kernel/uapi/linux/caif/if_caif.h
+++ b/libc/kernel/uapi/linux/caif/if_caif.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef IF_CAIF_H_
 #define IF_CAIF_H_
 #include <linux/sockios.h>
diff --git a/libc/kernel/uapi/linux/can.h b/libc/kernel/uapi/linux/can.h
index 1365dba..a913d73 100644
--- a/libc/kernel/uapi/linux/can.h
+++ b/libc/kernel/uapi/linux/can.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_CAN_H
 #define _UAPI_CAN_H
 #include <linux/types.h>
@@ -67,6 +55,9 @@
 };
 #define CANXL_XLF 0x80
 #define CANXL_SEC 0x01
+#define CANXL_VCID_OFFSET 16
+#define CANXL_VCID_VAL_MASK 0xFFUL
+#define CANXL_VCID_MASK (CANXL_VCID_VAL_MASK << CANXL_VCID_OFFSET)
 struct canxl_frame {
   canid_t prio;
   __u8 flags;
@@ -109,5 +100,4 @@
   canid_t can_mask;
 };
 #define CAN_INV_FILTER 0x20000000U
-#define CAN_RAW_FILTER_MAX 512
 #endif
diff --git a/libc/kernel/uapi/linux/can/bcm.h b/libc/kernel/uapi/linux/can/bcm.h
index f5ab2c2..a52f8e3 100644
--- a/libc/kernel/uapi/linux/can/bcm.h
+++ b/libc/kernel/uapi/linux/can/bcm.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_CAN_BCM_H
 #define _UAPI_CAN_BCM_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/can/error.h b/libc/kernel/uapi/linux/can/error.h
index f585d2c..5ac603e 100644
--- a/libc/kernel/uapi/linux/can/error.h
+++ b/libc/kernel/uapi/linux/can/error.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_CAN_ERROR_H
 #define _UAPI_CAN_ERROR_H
 #define CAN_ERR_DLC 8
diff --git a/libc/kernel/uapi/linux/can/gw.h b/libc/kernel/uapi/linux/can/gw.h
index f76bafb..4b42ac8 100644
--- a/libc/kernel/uapi/linux/can/gw.h
+++ b/libc/kernel/uapi/linux/can/gw.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_CAN_GW_H
 #define _UAPI_CAN_GW_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/can/isotp.h b/libc/kernel/uapi/linux/can/isotp.h
index f51aa59..407f6ca 100644
--- a/libc/kernel/uapi/linux/can/isotp.h
+++ b/libc/kernel/uapi/linux/can/isotp.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_CAN_ISOTP_H
 #define _UAPI_CAN_ISOTP_H
 #include <linux/types.h>
@@ -57,6 +45,7 @@
 #define CAN_ISOTP_WAIT_TX_DONE 0x0400
 #define CAN_ISOTP_SF_BROADCAST 0x0800
 #define CAN_ISOTP_CF_BROADCAST 0x1000
+#define CAN_ISOTP_DYN_FC_PARMS 0x2000
 #define CAN_ISOTP_DEFAULT_FLAGS 0
 #define CAN_ISOTP_DEFAULT_EXT_ADDRESS 0x00
 #define CAN_ISOTP_DEFAULT_PAD_CONTENT 0xCC
diff --git a/libc/kernel/uapi/linux/can/j1939.h b/libc/kernel/uapi/linux/can/j1939.h
index 42dbf15..24bf3f4 100644
--- a/libc/kernel/uapi/linux/can/j1939.h
+++ b/libc/kernel/uapi/linux/can/j1939.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_CAN_J1939_H_
 #define _UAPI_CAN_J1939_H_
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/can/netlink.h b/libc/kernel/uapi/linux/can/netlink.h
index f4086c0..c9b455b 100644
--- a/libc/kernel/uapi/linux/can/netlink.h
+++ b/libc/kernel/uapi/linux/can/netlink.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_CAN_NETLINK_H
 #define _UAPI_CAN_NETLINK_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/can/raw.h b/libc/kernel/uapi/linux/can/raw.h
index f8de179..8e47899 100644
--- a/libc/kernel/uapi/linux/can/raw.h
+++ b/libc/kernel/uapi/linux/can/raw.h
@@ -1,25 +1,14 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_CAN_RAW_H
 #define _UAPI_CAN_RAW_H
 #include <linux/can.h>
 #define SOL_CAN_RAW (SOL_CAN_BASE + CAN_RAW)
+#define CAN_RAW_FILTER_MAX 512
 enum {
   SCM_CAN_RAW_ERRQUEUE = 1,
 };
@@ -31,5 +20,15 @@
   CAN_RAW_FD_FRAMES,
   CAN_RAW_JOIN_FILTERS,
   CAN_RAW_XL_FRAMES,
+  CAN_RAW_XL_VCID_OPTS,
 };
+struct can_raw_vcid_options {
+  __u8 flags;
+  __u8 tx_vcid;
+  __u8 rx_vcid;
+  __u8 rx_vcid_mask;
+};
+#define CAN_RAW_XL_VCID_TX_SET 0x01
+#define CAN_RAW_XL_VCID_TX_PASS 0x02
+#define CAN_RAW_XL_VCID_RX_FILTER 0x04
 #endif
diff --git a/libc/kernel/uapi/linux/can/vxcan.h b/libc/kernel/uapi/linux/can/vxcan.h
index 950b645..9f6c1c0 100644
--- a/libc/kernel/uapi/linux/can/vxcan.h
+++ b/libc/kernel/uapi/linux/can/vxcan.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_CAN_VXCAN_H
 #define _UAPI_CAN_VXCAN_H
 enum {
diff --git a/libc/kernel/uapi/linux/capability.h b/libc/kernel/uapi/linux/capability.h
index 8f3281e..a49059e 100644
--- a/libc/kernel/uapi/linux/capability.h
+++ b/libc/kernel/uapi/linux/capability.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_CAPABILITY_H
 #define _UAPI_LINUX_CAPABILITY_H
 #include <linux/types.h>
@@ -29,11 +17,12 @@
   __u32 version;
   int pid;
 }  * cap_user_header_t;
-typedef struct __user_cap_data_struct {
+struct __user_cap_data_struct {
   __u32 effective;
   __u32 permitted;
   __u32 inheritable;
-}  * cap_user_data_t;
+};
+typedef struct __user_cap_data_struct  * cap_user_data_t;
 #define VFS_CAP_REVISION_MASK 0xFF000000
 #define VFS_CAP_REVISION_SHIFT 24
 #define VFS_CAP_FLAGS_MASK ~VFS_CAP_REVISION_MASK
diff --git a/libc/kernel/uapi/linux/capi.h b/libc/kernel/uapi/linux/capi.h
index a09f9bc..d81ce05 100644
--- a/libc/kernel/uapi/linux/capi.h
+++ b/libc/kernel/uapi/linux/capi.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __LINUX_CAPI_H__
 #define __LINUX_CAPI_H__
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/cciss_defs.h b/libc/kernel/uapi/linux/cciss_defs.h
index 99d8e56..ab9376e 100644
--- a/libc/kernel/uapi/linux/cciss_defs.h
+++ b/libc/kernel/uapi/linux/cciss_defs.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef CCISS_DEFS_H
 #define CCISS_DEFS_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/cciss_ioctl.h b/libc/kernel/uapi/linux/cciss_ioctl.h
index 827e6a0..0de724a 100644
--- a/libc/kernel/uapi/linux/cciss_ioctl.h
+++ b/libc/kernel/uapi/linux/cciss_ioctl.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPICCISS_IOCTLH
 #define _UAPICCISS_IOCTLH
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/ccs.h b/libc/kernel/uapi/linux/ccs.h
index 53c88af..2c3c0fe 100644
--- a/libc/kernel/uapi/linux/ccs.h
+++ b/libc/kernel/uapi/linux/ccs.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __UAPI_CCS_H__
 #define __UAPI_CCS_H__
 #include <linux/v4l2-controls.h>
diff --git a/libc/kernel/uapi/linux/cdrom.h b/libc/kernel/uapi/linux/cdrom.h
index bd1d7df..52078f0 100644
--- a/libc/kernel/uapi/linux/cdrom.h
+++ b/libc/kernel/uapi/linux/cdrom.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_CDROM_H
 #define _UAPI_LINUX_CDROM_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/cec-funcs.h b/libc/kernel/uapi/linux/cec-funcs.h
index 650dc19..511673d 100644
--- a/libc/kernel/uapi/linux/cec-funcs.h
+++ b/libc/kernel/uapi/linux/cec-funcs.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _CEC_UAPI_FUNCS_H
 #define _CEC_UAPI_FUNCS_H
 #include <linux/cec.h>
diff --git a/libc/kernel/uapi/linux/cec.h b/libc/kernel/uapi/linux/cec.h
index 3953fe3..43e8456 100644
--- a/libc/kernel/uapi/linux/cec.h
+++ b/libc/kernel/uapi/linux/cec.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _CEC_UAPI_H
 #define _CEC_UAPI_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/cfm_bridge.h b/libc/kernel/uapi/linux/cfm_bridge.h
index de9d023..f4b4042 100644
--- a/libc/kernel/uapi/linux/cfm_bridge.h
+++ b/libc/kernel/uapi/linux/cfm_bridge.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_CFM_BRIDGE_H_
 #define _UAPI_LINUX_CFM_BRIDGE_H_
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/cgroupstats.h b/libc/kernel/uapi/linux/cgroupstats.h
index 3d6a037..343aed4 100644
--- a/libc/kernel/uapi/linux/cgroupstats.h
+++ b/libc/kernel/uapi/linux/cgroupstats.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _LINUX_CGROUPSTATS_H
 #define _LINUX_CGROUPSTATS_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/chio.h b/libc/kernel/uapi/linux/chio.h
index 74f286f..89be987 100644
--- a/libc/kernel/uapi/linux/chio.h
+++ b/libc/kernel/uapi/linux/chio.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_CHIO_H
 #define _UAPI_LINUX_CHIO_H
 #define CHET_MT 0
diff --git a/libc/kernel/uapi/linux/cifs/cifs_mount.h b/libc/kernel/uapi/linux/cifs/cifs_mount.h
index 33f6fd6..0da3b94 100644
--- a/libc/kernel/uapi/linux/cifs/cifs_mount.h
+++ b/libc/kernel/uapi/linux/cifs/cifs_mount.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _CIFS_MOUNT_H
 #define _CIFS_MOUNT_H
 #define CIFS_MAX_DOMAINNAME_LEN 256
diff --git a/libc/kernel/uapi/linux/cifs/cifs_netlink.h b/libc/kernel/uapi/linux/cifs/cifs_netlink.h
index 7286cfa..a6da6fb 100644
--- a/libc/kernel/uapi/linux/cifs/cifs_netlink.h
+++ b/libc/kernel/uapi/linux/cifs/cifs_netlink.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPILINUX_CIFS_NETLINK_H
 #define _UAPILINUX_CIFS_NETLINK_H
 #define CIFS_GENL_NAME "cifs"
diff --git a/libc/kernel/uapi/linux/close_range.h b/libc/kernel/uapi/linux/close_range.h
index 279e4bb..58fc715 100644
--- a/libc/kernel/uapi/linux/close_range.h
+++ b/libc/kernel/uapi/linux/close_range.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_CLOSE_RANGE_H
 #define _UAPI_LINUX_CLOSE_RANGE_H
 #define CLOSE_RANGE_UNSHARE (1U << 1)
diff --git a/libc/kernel/uapi/linux/cm4000_cs.h b/libc/kernel/uapi/linux/cm4000_cs.h
deleted file mode 100644
index 41b7aa7..0000000
--- a/libc/kernel/uapi/linux/cm4000_cs.h
+++ /dev/null
@@ -1,54 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef _UAPI_CM4000_H_
-#define _UAPI_CM4000_H_
-#include <linux/types.h>
-#include <linux/ioctl.h>
-#define MAX_ATR 33
-#define CM4000_MAX_DEV 4
-typedef struct atreq {
-  __s32 atr_len;
-  unsigned char atr[64];
-  __s32 power_act;
-  unsigned char bIFSD;
-  unsigned char bIFSC;
-} atreq_t;
-typedef struct ptsreq {
-  __u32 protocol;
-  unsigned char flags;
-  unsigned char pts1;
-  unsigned char pts2;
-  unsigned char pts3;
-} ptsreq_t;
-#define CM_IOC_MAGIC 'c'
-#define CM_IOC_MAXNR 255
-#define CM_IOCGSTATUS _IOR(CM_IOC_MAGIC, 0, unsigned char *)
-#define CM_IOCGATR _IOWR(CM_IOC_MAGIC, 1, atreq_t *)
-#define CM_IOCSPTS _IOW(CM_IOC_MAGIC, 2, ptsreq_t *)
-#define CM_IOCSRDR _IO(CM_IOC_MAGIC, 3)
-#define CM_IOCARDOFF _IO(CM_IOC_MAGIC, 4)
-#define CM_IOSDBGLVL _IOW(CM_IOC_MAGIC, 250, int *)
-#define CM_CARD_INSERTED 0x01
-#define CM_CARD_POWERED 0x02
-#define CM_ATR_PRESENT 0x04
-#define CM_ATR_VALID 0x08
-#define CM_STATE_VALID 0x0f
-#define CM_NO_READER 0x10
-#define CM_BAD_CARD 0x20
-#endif
diff --git a/libc/kernel/uapi/linux/cn_proc.h b/libc/kernel/uapi/linux/cn_proc.h
index 411b725..7ac0dd1 100644
--- a/libc/kernel/uapi/linux/cn_proc.h
+++ b/libc/kernel/uapi/linux/cn_proc.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPICN_PROC_H
 #define _UAPICN_PROC_H
 #include <linux/types.h>
@@ -23,19 +11,26 @@
   PROC_CN_MCAST_LISTEN = 1,
   PROC_CN_MCAST_IGNORE = 2
 };
+#define PROC_EVENT_ALL (PROC_EVENT_FORK | PROC_EVENT_EXEC | PROC_EVENT_UID | PROC_EVENT_GID | PROC_EVENT_SID | PROC_EVENT_PTRACE | PROC_EVENT_COMM | PROC_EVENT_NONZERO_EXIT | PROC_EVENT_COREDUMP | PROC_EVENT_EXIT)
+enum proc_cn_event {
+  PROC_EVENT_NONE = 0x00000000,
+  PROC_EVENT_FORK = 0x00000001,
+  PROC_EVENT_EXEC = 0x00000002,
+  PROC_EVENT_UID = 0x00000004,
+  PROC_EVENT_GID = 0x00000040,
+  PROC_EVENT_SID = 0x00000080,
+  PROC_EVENT_PTRACE = 0x00000100,
+  PROC_EVENT_COMM = 0x00000200,
+  PROC_EVENT_NONZERO_EXIT = 0x20000000,
+  PROC_EVENT_COREDUMP = 0x40000000,
+  PROC_EVENT_EXIT = 0x80000000
+};
+struct proc_input {
+  enum proc_cn_mcast_op mcast_op;
+  enum proc_cn_event event_type;
+};
 struct proc_event {
-  enum what {
-    PROC_EVENT_NONE = 0x00000000,
-    PROC_EVENT_FORK = 0x00000001,
-    PROC_EVENT_EXEC = 0x00000002,
-    PROC_EVENT_UID = 0x00000004,
-    PROC_EVENT_GID = 0x00000040,
-    PROC_EVENT_SID = 0x00000080,
-    PROC_EVENT_PTRACE = 0x00000100,
-    PROC_EVENT_COMM = 0x00000200,
-    PROC_EVENT_COREDUMP = 0x40000000,
-    PROC_EVENT_EXIT = 0x80000000
-  } what;
+  enum proc_cn_event what;
   __u32 cpu;
   __u64 __attribute__((aligned(8))) timestamp_ns;
   union {
diff --git a/libc/kernel/uapi/linux/coda.h b/libc/kernel/uapi/linux/coda.h
index 5795cdf..b1e429b 100644
--- a/libc/kernel/uapi/linux/coda.h
+++ b/libc/kernel/uapi/linux/coda.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_CODA_HEADER_
 #define _UAPI_CODA_HEADER_
 #if defined(__NetBSD__) || (defined(DJGPP) || defined(__CYGWIN32__)) && !defined(KERNEL)
diff --git a/libc/kernel/uapi/linux/coff.h b/libc/kernel/uapi/linux/coff.h
index 8f93b61..6e329b2 100644
--- a/libc/kernel/uapi/linux/coff.h
+++ b/libc/kernel/uapi/linux/coff.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_COFF_H
 #define _UAPI_LINUX_COFF_H
 #define E_SYMNMLEN 8
diff --git a/libc/kernel/uapi/linux/comedi.h b/libc/kernel/uapi/linux/comedi.h
index 465d1bf..dedab34 100644
--- a/libc/kernel/uapi/linux/comedi.h
+++ b/libc/kernel/uapi/linux/comedi.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _COMEDI_H
 #define _COMEDI_H
 #define COMEDI_MAJORVERSION 0
diff --git a/libc/kernel/uapi/linux/connector.h b/libc/kernel/uapi/linux/connector.h
index e3891e3..12f5c83 100644
--- a/libc/kernel/uapi/linux/connector.h
+++ b/libc/kernel/uapi/linux/connector.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI__CONNECTOR_H
 #define _UAPI__CONNECTOR_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/const.h b/libc/kernel/uapi/linux/const.h
index c62a702..c091f8d 100644
--- a/libc/kernel/uapi/linux/const.h
+++ b/libc/kernel/uapi/linux/const.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_CONST_H
 #define _UAPI_LINUX_CONST_H
 #ifdef __ASSEMBLY__
@@ -30,7 +18,7 @@
 #define _ULL(x) (_AC(x, ULL))
 #define _BITUL(x) (_UL(1) << (x))
 #define _BITULL(x) (_ULL(1) << (x))
-#define __ALIGN_KERNEL(x,a) __ALIGN_KERNEL_MASK(x, (typeof(x)) (a) - 1)
+#define __ALIGN_KERNEL(x,a) __ALIGN_KERNEL_MASK(x, (__typeof__(x)) (a) - 1)
 #define __ALIGN_KERNEL_MASK(x,mask) (((x) + (mask)) & ~(mask))
 #define __KERNEL_DIV_ROUND_UP(n,d) (((n) + (d) - 1) / (d))
 #endif
diff --git a/libc/kernel/uapi/linux/coresight-stm.h b/libc/kernel/uapi/linux/coresight-stm.h
index 86d80ca..27d88cf 100644
--- a/libc/kernel/uapi/linux/coresight-stm.h
+++ b/libc/kernel/uapi/linux/coresight-stm.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __UAPI_CORESIGHT_STM_H_
 #define __UAPI_CORESIGHT_STM_H_
 #include <linux/const.h>
diff --git a/libc/kernel/uapi/linux/counter.h b/libc/kernel/uapi/linux/counter.h
index f986365..5d6f01f 100644
--- a/libc/kernel/uapi/linux/counter.h
+++ b/libc/kernel/uapi/linux/counter.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_COUNTER_H_
 #define _UAPI_COUNTER_H_
 #include <linux/ioctl.h>
@@ -71,6 +59,12 @@
   COUNTER_COUNT_MODE_RANGE_LIMIT,
   COUNTER_COUNT_MODE_NON_RECYCLE,
   COUNTER_COUNT_MODE_MODULO_N,
+  COUNTER_COUNT_MODE_INTERRUPT_ON_TERMINAL_COUNT,
+  COUNTER_COUNT_MODE_HARDWARE_RETRIGGERABLE_ONESHOT,
+  COUNTER_COUNT_MODE_RATE_GENERATOR,
+  COUNTER_COUNT_MODE_SQUARE_WAVE_MODE,
+  COUNTER_COUNT_MODE_SOFTWARE_TRIGGERED_STROBE,
+  COUNTER_COUNT_MODE_HARDWARE_TRIGGERED_STROBE,
 };
 enum counter_function {
   COUNTER_FUNCTION_INCREASE,
diff --git a/libc/kernel/uapi/linux/cramfs_fs.h b/libc/kernel/uapi/linux/cramfs_fs.h
index 8872914..77bacce 100644
--- a/libc/kernel/uapi/linux/cramfs_fs.h
+++ b/libc/kernel/uapi/linux/cramfs_fs.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI__CRAMFS_H
 #define _UAPI__CRAMFS_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/cryptouser.h b/libc/kernel/uapi/linux/cryptouser.h
index 1d145bd..9ffab6d 100644
--- a/libc/kernel/uapi/linux/cryptouser.h
+++ b/libc/kernel/uapi/linux/cryptouser.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_CRYPTOUSER_H
 #define _UAPI_LINUX_CRYPTOUSER_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/cuda.h b/libc/kernel/uapi/linux/cuda.h
index 64393db..3a99b9e 100644
--- a/libc/kernel/uapi/linux/cuda.h
+++ b/libc/kernel/uapi/linux/cuda.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_CUDA_H
 #define _UAPI_LINUX_CUDA_H
 #define CUDA_WARM_START 0
diff --git a/libc/kernel/uapi/linux/cxl_mem.h b/libc/kernel/uapi/linux/cxl_mem.h
index c94af87..abe6573 100644
--- a/libc/kernel/uapi/linux/cxl_mem.h
+++ b/libc/kernel/uapi/linux/cxl_mem.h
@@ -1,43 +1,41 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_CXL_MEM_H_
 #define _UAPI_CXL_MEM_H_
 #include <linux/types.h>
 #define CXL_MEM_QUERY_COMMANDS _IOR(0xCE, 1, struct cxl_mem_query_commands)
 #define CXL_MEM_SEND_COMMAND _IOWR(0xCE, 2, struct cxl_send_command)
-#define CXL_CMDS ___C(INVALID, "Invalid Command"), ___C(IDENTIFY, "Identify Command"), ___C(RAW, "Raw device command"), ___C(GET_SUPPORTED_LOGS, "Get Supported Logs"), ___C(GET_FW_INFO, "Get FW Info"), ___C(GET_PARTITION_INFO, "Get Partition Information"), ___C(GET_LSA, "Get Label Storage Area"), ___C(GET_HEALTH_INFO, "Get Health Info"), ___C(GET_LOG, "Get Log"), ___C(SET_PARTITION_INFO, "Set Partition Information"), ___C(SET_LSA, "Set Label Storage Area"), ___C(GET_ALERT_CONFIG, "Get Alert Configuration"), ___C(SET_ALERT_CONFIG, "Set Alert Configuration"), ___C(GET_SHUTDOWN_STATE, "Get Shutdown State"), ___C(SET_SHUTDOWN_STATE, "Set Shutdown State"), ___C(GET_POISON, "Get Poison List"), ___C(INJECT_POISON, "Inject Poison"), ___C(CLEAR_POISON, "Clear Poison"), ___C(GET_SCAN_MEDIA_CAPS, "Get Scan Media Capabilities"), ___C(SCAN_MEDIA, "Scan Media"), ___C(GET_SCAN_MEDIA, "Get Scan Media Results"), ___C(MAX, "invalid / last command")
+#define CXL_CMDS ___C(INVALID, "Invalid Command"), ___C(IDENTIFY, "Identify Command"), ___C(RAW, "Raw device command"), ___C(GET_SUPPORTED_LOGS, "Get Supported Logs"), ___C(GET_FW_INFO, "Get FW Info"), ___C(GET_PARTITION_INFO, "Get Partition Information"), ___C(GET_LSA, "Get Label Storage Area"), ___C(GET_HEALTH_INFO, "Get Health Info"), ___C(GET_LOG, "Get Log"), ___C(SET_PARTITION_INFO, "Set Partition Information"), ___C(SET_LSA, "Set Label Storage Area"), ___C(GET_ALERT_CONFIG, "Get Alert Configuration"), ___C(SET_ALERT_CONFIG, "Set Alert Configuration"), ___C(GET_SHUTDOWN_STATE, "Get Shutdown State"), ___C(SET_SHUTDOWN_STATE, "Set Shutdown State"), ___DEPRECATED(GET_POISON, "Get Poison List"), ___DEPRECATED(INJECT_POISON, "Inject Poison"), ___DEPRECATED(CLEAR_POISON, "Clear Poison"), ___C(GET_SCAN_MEDIA_CAPS, "Get Scan Media Capabilities"), ___DEPRECATED(SCAN_MEDIA, "Scan Media"), ___DEPRECATED(GET_SCAN_MEDIA, "Get Scan Media Results"), ___C(GET_TIMESTAMP, "Get Timestamp"), ___C(GET_LOG_CAPS, "Get Log Capabilities"), ___C(CLEAR_LOG, "Clear Log"), ___C(GET_SUP_LOG_SUBLIST, "Get Supported Logs Sub-List"), ___C(MAX, "invalid / last command")
 #define ___C(a,b) CXL_MEM_COMMAND_ID_ ##a
+#define ___DEPRECATED(a,b) CXL_MEM_DEPRECATED_ID_ ##a
 enum {
   CXL_CMDS
 };
 #undef ___C
+#undef ___DEPRECATED
 #define ___C(a,b) { b }
+#define ___DEPRECATED(a,b) { "Deprecated " b }
 static const struct {
   const char * name;
 } cxl_command_names[] __attribute__((__unused__)) = {
   CXL_CMDS
 };
 #undef ___C
+#undef ___DEPRECATED
+#define ___C(a,b) (0)
+#define ___DEPRECATED(a,b) (1)
+#undef ___C
+#undef ___DEPRECATED
 struct cxl_command_info {
   __u32 id;
   __u32 flags;
-#define CXL_MEM_COMMAND_FLAG_MASK GENMASK(0, 0)
+#define CXL_MEM_COMMAND_FLAG_MASK GENMASK(1, 0)
+#define CXL_MEM_COMMAND_FLAG_ENABLED BIT(0)
+#define CXL_MEM_COMMAND_FLAG_EXCLUSIVE BIT(1)
   __u32 size_in;
   __u32 size_out;
 };
diff --git a/libc/kernel/uapi/linux/cyclades.h b/libc/kernel/uapi/linux/cyclades.h
index c0aa7aa..85f5a24 100644
--- a/libc/kernel/uapi/linux/cyclades.h
+++ b/libc/kernel/uapi/linux/cyclades.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_CYCLADES_H
 #define _UAPI_LINUX_CYCLADES_H
 #warning "Support for features provided by this header has been removed"
diff --git a/libc/kernel/uapi/linux/cycx_cfm.h b/libc/kernel/uapi/linux/cycx_cfm.h
index 230b58d..799e5ee 100644
--- a/libc/kernel/uapi/linux/cycx_cfm.h
+++ b/libc/kernel/uapi/linux/cycx_cfm.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _CYCX_CFM_H
 #define _CYCX_CFM_H
 #define CFM_VERSION 2
diff --git a/libc/kernel/uapi/linux/dcbnl.h b/libc/kernel/uapi/linux/dcbnl.h
index bc88387..90e0514 100644
--- a/libc/kernel/uapi/linux/dcbnl.h
+++ b/libc/kernel/uapi/linux/dcbnl.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __LINUX_DCBNL_H__
 #define __LINUX_DCBNL_H__
 #include <linux/types.h>
@@ -181,6 +169,7 @@
   DCB_ATTR_IEEE_QCN_STATS,
   DCB_ATTR_DCB_BUFFER,
   DCB_ATTR_DCB_APP_TRUST_TABLE,
+  DCB_ATTR_DCB_REWR_TABLE,
   __DCB_ATTR_IEEE_MAX
 };
 #define DCB_ATTR_IEEE_MAX (__DCB_ATTR_IEEE_MAX - 1)
diff --git a/libc/kernel/uapi/linux/dccp.h b/libc/kernel/uapi/linux/dccp.h
index 9ed840d..b4f03cc 100644
--- a/libc/kernel/uapi/linux/dccp.h
+++ b/libc/kernel/uapi/linux/dccp.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_DCCP_H
 #define _UAPI_LINUX_DCCP_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/devlink.h b/libc/kernel/uapi/linux/devlink.h
index b7705c3..d87c189 100644
--- a/libc/kernel/uapi/linux/devlink.h
+++ b/libc/kernel/uapi/linux/devlink.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_DEVLINK_H_
 #define _UAPI_LINUX_DEVLINK_H_
 #include <linux/const.h>
@@ -109,6 +97,7 @@
   DEVLINK_CMD_LINECARD_DEL,
   DEVLINK_CMD_SELFTESTS_GET,
   DEVLINK_CMD_SELFTESTS_RUN,
+  DEVLINK_CMD_NOTIFY_FILTER_SET,
   __DEVLINK_CMD_MAX,
   DEVLINK_CMD_MAX = __DEVLINK_CMD_MAX - 1
 };
@@ -181,7 +170,7 @@
   __DEVLINK_ATTR_STATS_MAX,
   DEVLINK_ATTR_STATS_MAX = __DEVLINK_ATTR_STATS_MAX - 1
 };
-enum {
+enum devlink_flash_overwrite {
   DEVLINK_FLASH_OVERWRITE_SETTINGS_BIT,
   DEVLINK_FLASH_OVERWRITE_IDENTIFIERS_BIT,
   __DEVLINK_FLASH_OVERWRITE_MAX_BIT,
@@ -462,16 +451,22 @@
 enum devlink_port_fn_attr_cap {
   DEVLINK_PORT_FN_ATTR_CAP_ROCE_BIT,
   DEVLINK_PORT_FN_ATTR_CAP_MIGRATABLE_BIT,
+  DEVLINK_PORT_FN_ATTR_CAP_IPSEC_CRYPTO_BIT,
+  DEVLINK_PORT_FN_ATTR_CAP_IPSEC_PACKET_BIT,
   __DEVLINK_PORT_FN_ATTR_CAPS_MAX,
 };
 #define DEVLINK_PORT_FN_CAP_ROCE _BITUL(DEVLINK_PORT_FN_ATTR_CAP_ROCE_BIT)
 #define DEVLINK_PORT_FN_CAP_MIGRATABLE _BITUL(DEVLINK_PORT_FN_ATTR_CAP_MIGRATABLE_BIT)
+#define DEVLINK_PORT_FN_CAP_IPSEC_CRYPTO _BITUL(DEVLINK_PORT_FN_ATTR_CAP_IPSEC_CRYPTO_BIT)
+#define DEVLINK_PORT_FN_CAP_IPSEC_PACKET _BITUL(DEVLINK_PORT_FN_ATTR_CAP_IPSEC_PACKET_BIT)
 enum devlink_port_function_attr {
   DEVLINK_PORT_FUNCTION_ATTR_UNSPEC,
   DEVLINK_PORT_FUNCTION_ATTR_HW_ADDR,
   DEVLINK_PORT_FN_ATTR_STATE,
   DEVLINK_PORT_FN_ATTR_OPSTATE,
   DEVLINK_PORT_FN_ATTR_CAPS,
+  DEVLINK_PORT_FN_ATTR_DEVLINK,
+  DEVLINK_PORT_FN_ATTR_MAX_IO_EQS,
   __DEVLINK_PORT_FUNCTION_ATTR_MAX,
   DEVLINK_PORT_FUNCTION_ATTR_MAX = __DEVLINK_PORT_FUNCTION_ATTR_MAX - 1
 };
diff --git a/libc/kernel/uapi/linux/dlm.h b/libc/kernel/uapi/linux/dlm.h
index 499baad..1344f9b 100644
--- a/libc/kernel/uapi/linux/dlm.h
+++ b/libc/kernel/uapi/linux/dlm.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI__DLM_DOT_H__
 #define _UAPI__DLM_DOT_H__
 #include <linux/dlmconstants.h>
@@ -32,4 +20,5 @@
 };
 #define DLM_LSFL_TIMEWARN 0x00000002
 #define DLM_LSFL_NEWEXCL 0x00000008
+#define __DLM_LSFL_RESERVED0 0x00000010
 #endif
diff --git a/libc/kernel/uapi/linux/dlm_device.h b/libc/kernel/uapi/linux/dlm_device.h
index e1b0c6d..5189f1d 100644
--- a/libc/kernel/uapi/linux/dlm_device.h
+++ b/libc/kernel/uapi/linux/dlm_device.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _LINUX_DLM_DEVICE_H
 #define _LINUX_DLM_DEVICE_H
 #include <linux/dlm.h>
diff --git a/libc/kernel/uapi/linux/dlm_netlink.h b/libc/kernel/uapi/linux/dlm_netlink.h
deleted file mode 100644
index 0c655fa..0000000
--- a/libc/kernel/uapi/linux/dlm_netlink.h
+++ /dev/null
@@ -1,59 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef _DLM_NETLINK_H
-#define _DLM_NETLINK_H
-#include <linux/types.h>
-#include <linux/dlmconstants.h>
-enum {
-  DLM_STATUS_WAITING = 1,
-  DLM_STATUS_GRANTED = 2,
-  DLM_STATUS_CONVERT = 3,
-};
-#define DLM_LOCK_DATA_VERSION 1
-struct dlm_lock_data {
-  __u16 version;
-  __u32 lockspace_id;
-  int nodeid;
-  int ownpid;
-  __u32 id;
-  __u32 remid;
-  __u64 xid;
-  __s8 status;
-  __s8 grmode;
-  __s8 rqmode;
-  unsigned long timestamp;
-  int resource_namelen;
-  char resource_name[DLM_RESNAME_MAXLEN];
-};
-enum {
-  DLM_CMD_UNSPEC = 0,
-  DLM_CMD_HELLO,
-  DLM_CMD_TIMEOUT,
-  __DLM_CMD_MAX,
-};
-#define DLM_CMD_MAX (__DLM_CMD_MAX - 1)
-enum {
-  DLM_TYPE_UNSPEC = 0,
-  DLM_TYPE_LOCK,
-  __DLM_TYPE_MAX,
-};
-#define DLM_TYPE_MAX (__DLM_TYPE_MAX - 1)
-#define DLM_GENL_VERSION 0x1
-#define DLM_GENL_NAME "DLM"
-#endif
diff --git a/libc/kernel/uapi/linux/dlm_plock.h b/libc/kernel/uapi/linux/dlm_plock.h
index 332397b..23726d8 100644
--- a/libc/kernel/uapi/linux/dlm_plock.h
+++ b/libc/kernel/uapi/linux/dlm_plock.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI__DLM_PLOCK_DOT_H__
 #define _UAPI__DLM_PLOCK_DOT_H__
 #include <linux/types.h>
@@ -27,6 +15,7 @@
   DLM_PLOCK_OP_LOCK = 1,
   DLM_PLOCK_OP_UNLOCK,
   DLM_PLOCK_OP_GET,
+  DLM_PLOCK_OP_CANCEL,
 };
 #define DLM_PLOCK_FL_CLOSE 1
 struct dlm_plock_info {
diff --git a/libc/kernel/uapi/linux/dlmconstants.h b/libc/kernel/uapi/linux/dlmconstants.h
index e1b1cb5..766d1f8 100644
--- a/libc/kernel/uapi/linux/dlmconstants.h
+++ b/libc/kernel/uapi/linux/dlmconstants.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __DLMCONSTANTS_DOT_H__
 #define __DLMCONSTANTS_DOT_H__
 #define DLM_LOCKSPACE_LEN 64
diff --git a/libc/kernel/uapi/linux/dm-ioctl.h b/libc/kernel/uapi/linux/dm-ioctl.h
index f0ff78c..f24b441 100644
--- a/libc/kernel/uapi/linux/dm-ioctl.h
+++ b/libc/kernel/uapi/linux/dm-ioctl.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _LINUX_DM_IOCTL_V4_H
 #define _LINUX_DM_IOCTL_V4_H
 #include <linux/types.h>
@@ -106,9 +94,9 @@
 #define DM_TARGET_MSG _IOWR(DM_IOCTL, DM_TARGET_MSG_CMD, struct dm_ioctl)
 #define DM_DEV_SET_GEOMETRY _IOWR(DM_IOCTL, DM_DEV_SET_GEOMETRY_CMD, struct dm_ioctl)
 #define DM_VERSION_MAJOR 4
-#define DM_VERSION_MINOR 47
+#define DM_VERSION_MINOR 48
 #define DM_VERSION_PATCHLEVEL 0
-#define DM_VERSION_EXTRA "-ioctl(2022-07-28)"
+#define DM_VERSION_EXTRA "-ioctl(2023-03-01)"
 #define DM_READONLY_FLAG (1 << 0)
 #define DM_SUSPEND_FLAG (1 << 1)
 #define DM_PERSISTENT_DEV_FLAG (1 << 3)
diff --git a/libc/kernel/uapi/linux/dm-log-userspace.h b/libc/kernel/uapi/linux/dm-log-userspace.h
index 37feee6..22fee6f 100644
--- a/libc/kernel/uapi/linux/dm-log-userspace.h
+++ b/libc/kernel/uapi/linux/dm-log-userspace.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __DM_LOG_USERSPACE_H__
 #define __DM_LOG_USERSPACE_H__
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/dm-user.h b/libc/kernel/uapi/linux/dm-user.h
index 39624c8..65aa6b1 100644
--- a/libc/kernel/uapi/linux/dm-user.h
+++ b/libc/kernel/uapi/linux/dm-user.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _LINUX_DM_USER_H
 #define _LINUX_DM_USER_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/dma-buf.h b/libc/kernel/uapi/linux/dma-buf.h
index 7462c15..5511a4e 100644
--- a/libc/kernel/uapi/linux/dma-buf.h
+++ b/libc/kernel/uapi/linux/dma-buf.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _DMA_BUF_UAPI_H_
 #define _DMA_BUF_UAPI_H_
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/dma-heap.h b/libc/kernel/uapi/linux/dma-heap.h
index a2746e3..ac86b59 100644
--- a/libc/kernel/uapi/linux/dma-heap.h
+++ b/libc/kernel/uapi/linux/dma-heap.h
@@ -1,27 +1,15 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_DMABUF_POOL_H
 #define _UAPI_LINUX_DMABUF_POOL_H
 #include <linux/ioctl.h>
 #include <linux/types.h>
 #define DMA_HEAP_VALID_FD_FLAGS (O_CLOEXEC | O_ACCMODE)
-#define DMA_HEAP_VALID_HEAP_FLAGS (0)
+#define DMA_HEAP_VALID_HEAP_FLAGS (0ULL)
 struct dma_heap_allocation_data {
   __u64 len;
   __u32 fd;
diff --git a/libc/kernel/uapi/linux/dns_resolver.h b/libc/kernel/uapi/linux/dns_resolver.h
index e7113d0..cd9df83 100644
--- a/libc/kernel/uapi/linux/dns_resolver.h
+++ b/libc/kernel/uapi/linux/dns_resolver.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_DNS_RESOLVER_H
 #define _UAPI_LINUX_DNS_RESOLVER_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/dpll.h b/libc/kernel/uapi/linux/dpll.h
new file mode 100644
index 0000000..dd692f6
--- /dev/null
+++ b/libc/kernel/uapi/linux/dpll.h
@@ -0,0 +1,131 @@
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
+#ifndef _UAPI_LINUX_DPLL_H
+#define _UAPI_LINUX_DPLL_H
+#define DPLL_FAMILY_NAME "dpll"
+#define DPLL_FAMILY_VERSION 1
+enum dpll_mode {
+  DPLL_MODE_MANUAL = 1,
+  DPLL_MODE_AUTOMATIC,
+  __DPLL_MODE_MAX,
+  DPLL_MODE_MAX = (__DPLL_MODE_MAX - 1)
+};
+enum dpll_lock_status {
+  DPLL_LOCK_STATUS_UNLOCKED = 1,
+  DPLL_LOCK_STATUS_LOCKED,
+  DPLL_LOCK_STATUS_LOCKED_HO_ACQ,
+  DPLL_LOCK_STATUS_HOLDOVER,
+  __DPLL_LOCK_STATUS_MAX,
+  DPLL_LOCK_STATUS_MAX = (__DPLL_LOCK_STATUS_MAX - 1)
+};
+enum dpll_lock_status_error {
+  DPLL_LOCK_STATUS_ERROR_NONE = 1,
+  DPLL_LOCK_STATUS_ERROR_UNDEFINED,
+  DPLL_LOCK_STATUS_ERROR_MEDIA_DOWN,
+  DPLL_LOCK_STATUS_ERROR_FRACTIONAL_FREQUENCY_OFFSET_TOO_HIGH,
+  __DPLL_LOCK_STATUS_ERROR_MAX,
+  DPLL_LOCK_STATUS_ERROR_MAX = (__DPLL_LOCK_STATUS_ERROR_MAX - 1)
+};
+#define DPLL_TEMP_DIVIDER 1000
+enum dpll_type {
+  DPLL_TYPE_PPS = 1,
+  DPLL_TYPE_EEC,
+  __DPLL_TYPE_MAX,
+  DPLL_TYPE_MAX = (__DPLL_TYPE_MAX - 1)
+};
+enum dpll_pin_type {
+  DPLL_PIN_TYPE_MUX = 1,
+  DPLL_PIN_TYPE_EXT,
+  DPLL_PIN_TYPE_SYNCE_ETH_PORT,
+  DPLL_PIN_TYPE_INT_OSCILLATOR,
+  DPLL_PIN_TYPE_GNSS,
+  __DPLL_PIN_TYPE_MAX,
+  DPLL_PIN_TYPE_MAX = (__DPLL_PIN_TYPE_MAX - 1)
+};
+enum dpll_pin_direction {
+  DPLL_PIN_DIRECTION_INPUT = 1,
+  DPLL_PIN_DIRECTION_OUTPUT,
+  __DPLL_PIN_DIRECTION_MAX,
+  DPLL_PIN_DIRECTION_MAX = (__DPLL_PIN_DIRECTION_MAX - 1)
+};
+#define DPLL_PIN_FREQUENCY_1_HZ 1
+#define DPLL_PIN_FREQUENCY_10_KHZ 10000
+#define DPLL_PIN_FREQUENCY_77_5_KHZ 77500
+#define DPLL_PIN_FREQUENCY_10_MHZ 10000000
+enum dpll_pin_state {
+  DPLL_PIN_STATE_CONNECTED = 1,
+  DPLL_PIN_STATE_DISCONNECTED,
+  DPLL_PIN_STATE_SELECTABLE,
+  __DPLL_PIN_STATE_MAX,
+  DPLL_PIN_STATE_MAX = (__DPLL_PIN_STATE_MAX - 1)
+};
+enum dpll_pin_capabilities {
+  DPLL_PIN_CAPABILITIES_DIRECTION_CAN_CHANGE = 1,
+  DPLL_PIN_CAPABILITIES_PRIORITY_CAN_CHANGE = 2,
+  DPLL_PIN_CAPABILITIES_STATE_CAN_CHANGE = 4,
+};
+#define DPLL_PHASE_OFFSET_DIVIDER 1000
+enum dpll_a {
+  DPLL_A_ID = 1,
+  DPLL_A_MODULE_NAME,
+  DPLL_A_PAD,
+  DPLL_A_CLOCK_ID,
+  DPLL_A_MODE,
+  DPLL_A_MODE_SUPPORTED,
+  DPLL_A_LOCK_STATUS,
+  DPLL_A_TEMP,
+  DPLL_A_TYPE,
+  DPLL_A_LOCK_STATUS_ERROR,
+  __DPLL_A_MAX,
+  DPLL_A_MAX = (__DPLL_A_MAX - 1)
+};
+enum dpll_a_pin {
+  DPLL_A_PIN_ID = 1,
+  DPLL_A_PIN_PARENT_ID,
+  DPLL_A_PIN_MODULE_NAME,
+  DPLL_A_PIN_PAD,
+  DPLL_A_PIN_CLOCK_ID,
+  DPLL_A_PIN_BOARD_LABEL,
+  DPLL_A_PIN_PANEL_LABEL,
+  DPLL_A_PIN_PACKAGE_LABEL,
+  DPLL_A_PIN_TYPE,
+  DPLL_A_PIN_DIRECTION,
+  DPLL_A_PIN_FREQUENCY,
+  DPLL_A_PIN_FREQUENCY_SUPPORTED,
+  DPLL_A_PIN_FREQUENCY_MIN,
+  DPLL_A_PIN_FREQUENCY_MAX,
+  DPLL_A_PIN_PRIO,
+  DPLL_A_PIN_STATE,
+  DPLL_A_PIN_CAPABILITIES,
+  DPLL_A_PIN_PARENT_DEVICE,
+  DPLL_A_PIN_PARENT_PIN,
+  DPLL_A_PIN_PHASE_ADJUST_MIN,
+  DPLL_A_PIN_PHASE_ADJUST_MAX,
+  DPLL_A_PIN_PHASE_ADJUST,
+  DPLL_A_PIN_PHASE_OFFSET,
+  DPLL_A_PIN_FRACTIONAL_FREQUENCY_OFFSET,
+  __DPLL_A_PIN_MAX,
+  DPLL_A_PIN_MAX = (__DPLL_A_PIN_MAX - 1)
+};
+enum dpll_cmd {
+  DPLL_CMD_DEVICE_ID_GET = 1,
+  DPLL_CMD_DEVICE_GET,
+  DPLL_CMD_DEVICE_SET,
+  DPLL_CMD_DEVICE_CREATE_NTF,
+  DPLL_CMD_DEVICE_DELETE_NTF,
+  DPLL_CMD_DEVICE_CHANGE_NTF,
+  DPLL_CMD_PIN_ID_GET,
+  DPLL_CMD_PIN_GET,
+  DPLL_CMD_PIN_SET,
+  DPLL_CMD_PIN_CREATE_NTF,
+  DPLL_CMD_PIN_DELETE_NTF,
+  DPLL_CMD_PIN_CHANGE_NTF,
+  __DPLL_CMD_MAX,
+  DPLL_CMD_MAX = (__DPLL_CMD_MAX - 1)
+};
+#define DPLL_MCGRP_MONITOR "monitor"
+#endif
diff --git a/libc/kernel/uapi/linux/dqblk_xfs.h b/libc/kernel/uapi/linux/dqblk_xfs.h
index 6164991..aba6deb 100644
--- a/libc/kernel/uapi/linux/dqblk_xfs.h
+++ b/libc/kernel/uapi/linux/dqblk_xfs.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _LINUX_DQBLK_XFS_H
 #define _LINUX_DQBLK_XFS_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/dvb/audio.h b/libc/kernel/uapi/linux/dvb/audio.h
index 0a527c1..30e4e0f 100644
--- a/libc/kernel/uapi/linux/dvb/audio.h
+++ b/libc/kernel/uapi/linux/dvb/audio.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _DVBAUDIO_H_
 #define _DVBAUDIO_H_
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/dvb/ca.h b/libc/kernel/uapi/linux/dvb/ca.h
index fa977c7..d1c2573 100644
--- a/libc/kernel/uapi/linux/dvb/ca.h
+++ b/libc/kernel/uapi/linux/dvb/ca.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _DVBCA_H_
 #define _DVBCA_H_
 struct ca_slot_info {
diff --git a/libc/kernel/uapi/linux/dvb/dmx.h b/libc/kernel/uapi/linux/dvb/dmx.h
index e142e57..3246321 100644
--- a/libc/kernel/uapi/linux/dvb/dmx.h
+++ b/libc/kernel/uapi/linux/dvb/dmx.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_DVBDMX_H_
 #define _UAPI_DVBDMX_H_
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/dvb/frontend.h b/libc/kernel/uapi/linux/dvb/frontend.h
index 2ea7d9d..9428cc0 100644
--- a/libc/kernel/uapi/linux/dvb/frontend.h
+++ b/libc/kernel/uapi/linux/dvb/frontend.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _DVBFRONTEND_H_
 #define _DVBFRONTEND_H_
 #include <linux/types.h>
@@ -138,6 +126,10 @@
   FEC_28_45,
   FEC_32_45,
   FEC_77_90,
+  FEC_11_45,
+  FEC_4_15,
+  FEC_14_45,
+  FEC_7_15,
 };
 enum fe_modulation {
   QPSK,
@@ -349,7 +341,7 @@
   union {
     __u64 uvalue;
     __s64 svalue;
-  };
+  } __attribute__((packed));
 } __attribute__((packed));
 #define MAX_DTV_STATS 4
 struct dtv_fe_stats {
diff --git a/libc/kernel/uapi/linux/dvb/net.h b/libc/kernel/uapi/linux/dvb/net.h
index 4809e64..5b70258 100644
--- a/libc/kernel/uapi/linux/dvb/net.h
+++ b/libc/kernel/uapi/linux/dvb/net.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _DVBNET_H_
 #define _DVBNET_H_
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/dvb/osd.h b/libc/kernel/uapi/linux/dvb/osd.h
index 379294e..9cf8bf5 100644
--- a/libc/kernel/uapi/linux/dvb/osd.h
+++ b/libc/kernel/uapi/linux/dvb/osd.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _DVBOSD_H_
 #define _DVBOSD_H_
 #include <linux/compiler.h>
diff --git a/libc/kernel/uapi/linux/dvb/version.h b/libc/kernel/uapi/linux/dvb/version.h
index 47c8c74..2f37de0 100644
--- a/libc/kernel/uapi/linux/dvb/version.h
+++ b/libc/kernel/uapi/linux/dvb/version.h
@@ -1,23 +1,11 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _DVBVERSION_H_
 #define _DVBVERSION_H_
 #define DVB_API_VERSION 5
-#define DVB_API_VERSION_MINOR 11
+#define DVB_API_VERSION_MINOR 12
 #endif
diff --git a/libc/kernel/uapi/linux/dvb/video.h b/libc/kernel/uapi/linux/dvb/video.h
index 2458766..bf14e0a 100644
--- a/libc/kernel/uapi/linux/dvb/video.h
+++ b/libc/kernel/uapi/linux/dvb/video.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_DVBVIDEO_H_
 #define _UAPI_DVBVIDEO_H_
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/dw100.h b/libc/kernel/uapi/linux/dw100.h
index 13d8487..211942f 100644
--- a/libc/kernel/uapi/linux/dw100.h
+++ b/libc/kernel/uapi/linux/dw100.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __UAPI_DW100_H__
 #define __UAPI_DW100_H__
 #include <linux/v4l2-controls.h>
diff --git a/libc/kernel/uapi/linux/edd.h b/libc/kernel/uapi/linux/edd.h
index cc6e973..f538849 100644
--- a/libc/kernel/uapi/linux/edd.h
+++ b/libc/kernel/uapi/linux/edd.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_EDD_H
 #define _UAPI_LINUX_EDD_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/efs_fs_sb.h b/libc/kernel/uapi/linux/efs_fs_sb.h
index 9b861c8..160b534 100644
--- a/libc/kernel/uapi/linux/efs_fs_sb.h
+++ b/libc/kernel/uapi/linux/efs_fs_sb.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __EFS_FS_SB_H__
 #define __EFS_FS_SB_H__
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/elf-em.h b/libc/kernel/uapi/linux/elf-em.h
index 92da93d..4847c3f 100644
--- a/libc/kernel/uapi/linux/elf-em.h
+++ b/libc/kernel/uapi/linux/elf-em.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _LINUX_ELF_EM_H
 #define _LINUX_ELF_EM_H
 #define EM_NONE 0
diff --git a/libc/kernel/uapi/linux/elf-fdpic.h b/libc/kernel/uapi/linux/elf-fdpic.h
index 4e81292..8f8274f 100644
--- a/libc/kernel/uapi/linux/elf-fdpic.h
+++ b/libc/kernel/uapi/linux/elf-fdpic.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_ELF_FDPIC_H
 #define _UAPI_LINUX_ELF_FDPIC_H
 #include <linux/elf.h>
@@ -31,4 +19,15 @@
   struct elf32_fdpic_loadseg segs[];
 };
 #define ELF32_FDPIC_LOADMAP_VERSION 0x0000
+struct elf64_fdpic_loadseg {
+  Elf64_Addr addr;
+  Elf64_Addr p_vaddr;
+  Elf64_Word p_memsz;
+};
+struct elf64_fdpic_loadmap {
+  Elf64_Half version;
+  Elf64_Half nsegs;
+  struct elf64_fdpic_loadseg segs[];
+};
+#define ELF64_FDPIC_LOADMAP_VERSION 0x0000
 #endif
diff --git a/libc/kernel/uapi/linux/elf.h b/libc/kernel/uapi/linux/elf.h
index 28c8426..f1cf522 100644
--- a/libc/kernel/uapi/linux/elf.h
+++ b/libc/kernel/uapi/linux/elf.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_ELF_H
 #define _UAPI_LINUX_ELF_H
 #include <linux/types.h>
@@ -117,7 +105,7 @@
 #define ELF32_ST_TYPE(x) ELF_ST_TYPE(x)
 #define ELF64_ST_BIND(x) ELF_ST_BIND(x)
 #define ELF64_ST_TYPE(x) ELF_ST_TYPE(x)
-typedef struct dynamic {
+typedef struct {
   Elf32_Sword d_tag;
   union {
     Elf32_Sword d_val;
@@ -335,9 +323,12 @@
 #define NT_PPC_TM_CPPR 0x10e
 #define NT_PPC_TM_CDSCR 0x10f
 #define NT_PPC_PKEY 0x110
+#define NT_PPC_DEXCR 0x111
+#define NT_PPC_HASHKEYR 0x112
 #define NT_386_TLS 0x200
 #define NT_386_IOPERM 0x201
 #define NT_X86_XSTATE 0x202
+#define NT_X86_SHSTK 0x204
 #define NT_S390_HIGH_GPRS 0x300
 #define NT_S390_TIMER 0x301
 #define NT_S390_TODCMP 0x302
@@ -366,16 +357,22 @@
 #define NT_ARM_PAC_ENABLED_KEYS 0x40a
 #define NT_ARM_SSVE 0x40b
 #define NT_ARM_ZA 0x40c
+#define NT_ARM_ZT 0x40d
+#define NT_ARM_FPMR 0x40e
 #define NT_ARC_V2 0x600
 #define NT_VMCOREDD 0x700
 #define NT_MIPS_DSP 0x800
 #define NT_MIPS_FP_MODE 0x801
 #define NT_MIPS_MSA 0x802
+#define NT_RISCV_CSR 0x900
+#define NT_RISCV_VECTOR 0x901
 #define NT_LOONGARCH_CPUCFG 0xa00
 #define NT_LOONGARCH_CSR 0xa01
 #define NT_LOONGARCH_LSX 0xa02
 #define NT_LOONGARCH_LASX 0xa03
 #define NT_LOONGARCH_LBT 0xa04
+#define NT_LOONGARCH_HW_BREAK 0xa05
+#define NT_LOONGARCH_HW_WATCH 0xa06
 #define NT_GNU_PROPERTY_TYPE_0 5
 typedef struct elf32_note {
   Elf32_Word n_namesz;
diff --git a/libc/kernel/uapi/linux/errno.h b/libc/kernel/uapi/linux/errno.h
index 01399c5..3083c42 100644
--- a/libc/kernel/uapi/linux/errno.h
+++ b/libc/kernel/uapi/linux/errno.h
@@ -1,19 +1,7 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #include <asm/errno.h>
diff --git a/libc/kernel/uapi/linux/errqueue.h b/libc/kernel/uapi/linux/errqueue.h
index e93bad2..790ae1e 100644
--- a/libc/kernel/uapi/linux/errqueue.h
+++ b/libc/kernel/uapi/linux/errqueue.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_ERRQUEUE_H
 #define _UAPI_LINUX_ERRQUEUE_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/erspan.h b/libc/kernel/uapi/linux/erspan.h
index 790a85e..c906281 100644
--- a/libc/kernel/uapi/linux/erspan.h
+++ b/libc/kernel/uapi/linux/erspan.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_ERSPAN_H
 #define _UAPI_ERSPAN_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/ethtool.h b/libc/kernel/uapi/linux/ethtool.h
index a58be6f..e213ba1 100644
--- a/libc/kernel/uapi/linux/ethtool.h
+++ b/libc/kernel/uapi/linux/ethtool.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_ETHTOOL_H
 #define _UAPI_LINUX_ETHTOOL_H
 #include <linux/const.h>
@@ -269,6 +257,11 @@
   ETH_SS_STATS_RMON,
   ETH_SS_COUNT
 };
+enum ethtool_mac_stats_src {
+  ETHTOOL_MAC_STATS_SRC_AGGREGATE,
+  ETHTOOL_MAC_STATS_SRC_EMAC,
+  ETHTOOL_MAC_STATS_SRC_PMAC,
+};
 enum ethtool_module_power_mode_policy {
   ETHTOOL_MODULE_POWER_MODE_POLICY_HIGH = 1,
   ETHTOOL_MODULE_POWER_MODE_POLICY_AUTO,
@@ -277,6 +270,75 @@
   ETHTOOL_MODULE_POWER_MODE_LOW = 1,
   ETHTOOL_MODULE_POWER_MODE_HIGH,
 };
+enum ethtool_c33_pse_ext_state {
+  ETHTOOL_C33_PSE_EXT_STATE_ERROR_CONDITION = 1,
+  ETHTOOL_C33_PSE_EXT_STATE_MR_MPS_VALID,
+  ETHTOOL_C33_PSE_EXT_STATE_MR_PSE_ENABLE,
+  ETHTOOL_C33_PSE_EXT_STATE_OPTION_DETECT_TED,
+  ETHTOOL_C33_PSE_EXT_STATE_OPTION_VPORT_LIM,
+  ETHTOOL_C33_PSE_EXT_STATE_OVLD_DETECTED,
+  ETHTOOL_C33_PSE_EXT_STATE_PD_DLL_POWER_TYPE,
+  ETHTOOL_C33_PSE_EXT_STATE_POWER_NOT_AVAILABLE,
+  ETHTOOL_C33_PSE_EXT_STATE_SHORT_DETECTED,
+};
+enum ethtool_c33_pse_ext_substate_mr_mps_valid {
+  ETHTOOL_C33_PSE_EXT_SUBSTATE_MR_MPS_VALID_DETECTED_UNDERLOAD = 1,
+  ETHTOOL_C33_PSE_EXT_SUBSTATE_MR_MPS_VALID_CONNECTION_OPEN,
+};
+enum ethtool_c33_pse_ext_substate_error_condition {
+  ETHTOOL_C33_PSE_EXT_SUBSTATE_ERROR_CONDITION_NON_EXISTING_PORT = 1,
+  ETHTOOL_C33_PSE_EXT_SUBSTATE_ERROR_CONDITION_UNDEFINED_PORT,
+  ETHTOOL_C33_PSE_EXT_SUBSTATE_ERROR_CONDITION_INTERNAL_HW_FAULT,
+  ETHTOOL_C33_PSE_EXT_SUBSTATE_ERROR_CONDITION_COMM_ERROR_AFTER_FORCE_ON,
+  ETHTOOL_C33_PSE_EXT_SUBSTATE_ERROR_CONDITION_UNKNOWN_PORT_STATUS,
+  ETHTOOL_C33_PSE_EXT_SUBSTATE_ERROR_CONDITION_HOST_CRASH_TURN_OFF,
+  ETHTOOL_C33_PSE_EXT_SUBSTATE_ERROR_CONDITION_HOST_CRASH_FORCE_SHUTDOWN,
+  ETHTOOL_C33_PSE_EXT_SUBSTATE_ERROR_CONDITION_CONFIG_CHANGE,
+  ETHTOOL_C33_PSE_EXT_SUBSTATE_ERROR_CONDITION_DETECTED_OVER_TEMP,
+};
+enum ethtool_c33_pse_ext_substate_mr_pse_enable {
+  ETHTOOL_C33_PSE_EXT_SUBSTATE_MR_PSE_ENABLE_DISABLE_PIN_ACTIVE = 1,
+};
+enum ethtool_c33_pse_ext_substate_option_detect_ted {
+  ETHTOOL_C33_PSE_EXT_SUBSTATE_OPTION_DETECT_TED_DET_IN_PROCESS = 1,
+  ETHTOOL_C33_PSE_EXT_SUBSTATE_OPTION_DETECT_TED_CONNECTION_CHECK_ERROR,
+};
+enum ethtool_c33_pse_ext_substate_option_vport_lim {
+  ETHTOOL_C33_PSE_EXT_SUBSTATE_OPTION_VPORT_LIM_HIGH_VOLTAGE = 1,
+  ETHTOOL_C33_PSE_EXT_SUBSTATE_OPTION_VPORT_LIM_LOW_VOLTAGE,
+  ETHTOOL_C33_PSE_EXT_SUBSTATE_OPTION_VPORT_LIM_VOLTAGE_INJECTION,
+};
+enum ethtool_c33_pse_ext_substate_ovld_detected {
+  ETHTOOL_C33_PSE_EXT_SUBSTATE_OVLD_DETECTED_OVERLOAD = 1,
+};
+enum ethtool_c33_pse_ext_substate_power_not_available {
+  ETHTOOL_C33_PSE_EXT_SUBSTATE_POWER_NOT_AVAILABLE_BUDGET_EXCEEDED = 1,
+  ETHTOOL_C33_PSE_EXT_SUBSTATE_POWER_NOT_AVAILABLE_PORT_PW_LIMIT_EXCEEDS_CONTROLLER_BUDGET,
+  ETHTOOL_C33_PSE_EXT_SUBSTATE_POWER_NOT_AVAILABLE_PD_REQUEST_EXCEEDS_PORT_LIMIT,
+  ETHTOOL_C33_PSE_EXT_SUBSTATE_POWER_NOT_AVAILABLE_HW_PW_LIMIT,
+};
+enum ethtool_c33_pse_ext_substate_short_detected {
+  ETHTOOL_C33_PSE_EXT_SUBSTATE_SHORT_DETECTED_SHORT_CONDITION = 1,
+};
+enum ethtool_pse_types {
+  ETHTOOL_PSE_UNKNOWN = 1 << 0,
+  ETHTOOL_PSE_PODL = 1 << 1,
+  ETHTOOL_PSE_C33 = 1 << 2,
+};
+enum ethtool_c33_pse_admin_state {
+  ETHTOOL_C33_PSE_ADMIN_STATE_UNKNOWN = 1,
+  ETHTOOL_C33_PSE_ADMIN_STATE_DISABLED,
+  ETHTOOL_C33_PSE_ADMIN_STATE_ENABLED,
+};
+enum ethtool_c33_pse_pw_d_status {
+  ETHTOOL_C33_PSE_PW_D_STATUS_UNKNOWN = 1,
+  ETHTOOL_C33_PSE_PW_D_STATUS_DISABLED,
+  ETHTOOL_C33_PSE_PW_D_STATUS_SEARCHING,
+  ETHTOOL_C33_PSE_PW_D_STATUS_DELIVERING,
+  ETHTOOL_C33_PSE_PW_D_STATUS_TEST,
+  ETHTOOL_C33_PSE_PW_D_STATUS_FAULT,
+  ETHTOOL_C33_PSE_PW_D_STATUS_OTHERFAULT,
+};
 enum ethtool_podl_pse_admin_state {
   ETHTOOL_PODL_PSE_ADMIN_STATE_UNKNOWN = 1,
   ETHTOOL_PODL_PSE_ADMIN_STATE_DISABLED,
@@ -291,6 +353,20 @@
   ETHTOOL_PODL_PSE_PW_D_STATUS_IDLE,
   ETHTOOL_PODL_PSE_PW_D_STATUS_ERROR,
 };
+enum ethtool_mm_verify_status {
+  ETHTOOL_MM_VERIFY_STATUS_UNKNOWN,
+  ETHTOOL_MM_VERIFY_STATUS_INITIAL,
+  ETHTOOL_MM_VERIFY_STATUS_VERIFYING,
+  ETHTOOL_MM_VERIFY_STATUS_SUCCEEDED,
+  ETHTOOL_MM_VERIFY_STATUS_FAILED,
+  ETHTOOL_MM_VERIFY_STATUS_DISABLED,
+};
+enum ethtool_module_fw_flash_status {
+  ETHTOOL_MODULE_FW_FLASH_STATUS_STARTED = 1,
+  ETHTOOL_MODULE_FW_FLASH_STATUS_IN_PROGRESS,
+  ETHTOOL_MODULE_FW_FLASH_STATUS_COMPLETED,
+  ETHTOOL_MODULE_FW_FLASH_STATUS_ERROR,
+};
 struct ethtool_gstrings {
   __u32 cmd;
   __u32 string_set;
@@ -419,7 +495,7 @@
     __u32 rule_cnt;
     __u32 rss_context;
   };
-  __u32 rule_locs[0];
+  __u32 rule_locs[];
 };
 struct ethtool_rxfh_indir {
   __u32 cmd;
@@ -432,7 +508,8 @@
   __u32 indir_size;
   __u32 key_size;
   __u8 hfunc;
-  __u8 rsvd8[3];
+  __u8 input_xfrm;
+  __u8 rsvd8[2];
   __u32 rsvd32;
   __u32 rss_config[];
 };
@@ -725,6 +802,10 @@
   ETHTOOL_LINK_MODE_800000baseDR8_2_Full_BIT = 96,
   ETHTOOL_LINK_MODE_800000baseSR8_Full_BIT = 97,
   ETHTOOL_LINK_MODE_800000baseVR8_Full_BIT = 98,
+  ETHTOOL_LINK_MODE_10baseT1S_Full_BIT = 99,
+  ETHTOOL_LINK_MODE_10baseT1S_Half_BIT = 100,
+  ETHTOOL_LINK_MODE_10baseT1S_P2MP_Half_BIT = 101,
+  ETHTOOL_LINK_MODE_10baseT1BRR_Full_BIT = 102,
   __ETHTOOL_LINK_MODE_MASK_NBITS
 };
 #define __ETHTOOL_LINK_MODE_LEGACY_MASK(base_name) (1UL << (ETHTOOL_LINK_MODE_ ##base_name ##_BIT))
@@ -853,6 +934,8 @@
 #define WAKE_MAGICSECURE (1 << 6)
 #define WAKE_FILTER (1 << 7)
 #define WOL_MODE_COUNT 8
+#define RXH_XFRM_SYM_XOR (1 << 0)
+#define RXH_XFRM_NO_CHANGE 0xff
 #define TCP_V4_FLOW 0x01
 #define UDP_V4_FLOW 0x02
 #define SCTP_V4_FLOW 0x03
@@ -871,6 +954,18 @@
 #define IPV4_FLOW 0x10
 #define IPV6_FLOW 0x11
 #define ETHER_FLOW 0x12
+#define GTPU_V4_FLOW 0x13
+#define GTPU_V6_FLOW 0x14
+#define GTPC_V4_FLOW 0x15
+#define GTPC_V6_FLOW 0x16
+#define GTPC_TEID_V4_FLOW 0x17
+#define GTPC_TEID_V6_FLOW 0x18
+#define GTPU_EH_V4_FLOW 0x19
+#define GTPU_EH_V6_FLOW 0x1a
+#define GTPU_UL_V4_FLOW 0x1b
+#define GTPU_UL_V6_FLOW 0x1c
+#define GTPU_DL_V4_FLOW 0x1d
+#define GTPU_DL_V6_FLOW 0x1e
 #define FLOW_EXT 0x80000000
 #define FLOW_MAC_EXT 0x40000000
 #define FLOW_RSS 0x20000000
@@ -881,6 +976,7 @@
 #define RXH_IP_DST (1 << 5)
 #define RXH_L4_B_0_1 (1 << 6)
 #define RXH_L4_B_2_3 (1 << 7)
+#define RXH_GTP_TEID (1 << 8)
 #define RXH_DISCARD (1 << 31)
 #define RX_CLS_FLOW_DISC 0xffffffffffffffffULL
 #define RX_CLS_FLOW_WAKE 0xfffffffffffffffeULL
diff --git a/libc/kernel/uapi/linux/ethtool_netlink.h b/libc/kernel/uapi/linux/ethtool_netlink.h
index cc9c53c..ac6391a 100644
--- a/libc/kernel/uapi/linux/ethtool_netlink.h
+++ b/libc/kernel/uapi/linux/ethtool_netlink.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_ETHTOOL_NETLINK_H_
 #define _UAPI_LINUX_ETHTOOL_NETLINK_H_
 #include <linux/ethtool.h>
@@ -59,6 +47,12 @@
   ETHTOOL_MSG_PSE_GET,
   ETHTOOL_MSG_PSE_SET,
   ETHTOOL_MSG_RSS_GET,
+  ETHTOOL_MSG_PLCA_GET_CFG,
+  ETHTOOL_MSG_PLCA_SET_CFG,
+  ETHTOOL_MSG_PLCA_GET_STATUS,
+  ETHTOOL_MSG_MM_GET,
+  ETHTOOL_MSG_MM_SET,
+  ETHTOOL_MSG_MODULE_FW_FLASH_ACT,
   __ETHTOOL_MSG_USER_CNT,
   ETHTOOL_MSG_USER_MAX = __ETHTOOL_MSG_USER_CNT - 1
 };
@@ -102,12 +96,20 @@
   ETHTOOL_MSG_MODULE_NTF,
   ETHTOOL_MSG_PSE_GET_REPLY,
   ETHTOOL_MSG_RSS_GET_REPLY,
+  ETHTOOL_MSG_PLCA_GET_CFG_REPLY,
+  ETHTOOL_MSG_PLCA_GET_STATUS_REPLY,
+  ETHTOOL_MSG_PLCA_NTF,
+  ETHTOOL_MSG_MM_GET_REPLY,
+  ETHTOOL_MSG_MM_NTF,
+  ETHTOOL_MSG_MODULE_FW_FLASH_NTF,
   __ETHTOOL_MSG_KERNEL_CNT,
   ETHTOOL_MSG_KERNEL_MAX = __ETHTOOL_MSG_KERNEL_CNT - 1
 };
-#define ETHTOOL_FLAG_COMPACT_BITSETS (1 << 0)
-#define ETHTOOL_FLAG_OMIT_REPLY (1 << 1)
-#define ETHTOOL_FLAG_STATS (1 << 2)
+enum ethtool_header_flags {
+  ETHTOOL_FLAG_COMPACT_BITSETS = 1 << 0,
+  ETHTOOL_FLAG_OMIT_REPLY = 1 << 1,
+  ETHTOOL_FLAG_STATS = 1 << 2,
+};
 #define ETHTOOL_FLAG_ALL (ETHTOOL_FLAG_COMPACT_BITSETS | ETHTOOL_FLAG_OMIT_REPLY | ETHTOOL_FLAG_STATS)
 enum {
   ETHTOOL_A_HEADER_UNSPEC,
@@ -266,6 +268,9 @@
   ETHTOOL_A_RINGS_TCP_DATA_SPLIT,
   ETHTOOL_A_RINGS_CQE_SIZE,
   ETHTOOL_A_RINGS_TX_PUSH,
+  ETHTOOL_A_RINGS_RX_PUSH,
+  ETHTOOL_A_RINGS_TX_PUSH_BUF_LEN,
+  ETHTOOL_A_RINGS_TX_PUSH_BUF_LEN_MAX,
   __ETHTOOL_A_RINGS_CNT,
   ETHTOOL_A_RINGS_MAX = (__ETHTOOL_A_RINGS_CNT - 1)
 };
@@ -310,16 +315,36 @@
   ETHTOOL_A_COALESCE_RATE_SAMPLE_INTERVAL,
   ETHTOOL_A_COALESCE_USE_CQE_MODE_TX,
   ETHTOOL_A_COALESCE_USE_CQE_MODE_RX,
+  ETHTOOL_A_COALESCE_TX_AGGR_MAX_BYTES,
+  ETHTOOL_A_COALESCE_TX_AGGR_MAX_FRAMES,
+  ETHTOOL_A_COALESCE_TX_AGGR_TIME_USECS,
+  ETHTOOL_A_COALESCE_RX_PROFILE,
+  ETHTOOL_A_COALESCE_TX_PROFILE,
   __ETHTOOL_A_COALESCE_CNT,
   ETHTOOL_A_COALESCE_MAX = (__ETHTOOL_A_COALESCE_CNT - 1)
 };
 enum {
+  ETHTOOL_A_PROFILE_UNSPEC,
+  ETHTOOL_A_PROFILE_IRQ_MODERATION,
+  __ETHTOOL_A_PROFILE_CNT,
+  ETHTOOL_A_PROFILE_MAX = (__ETHTOOL_A_PROFILE_CNT - 1)
+};
+enum {
+  ETHTOOL_A_IRQ_MODERATION_UNSPEC,
+  ETHTOOL_A_IRQ_MODERATION_USEC,
+  ETHTOOL_A_IRQ_MODERATION_PKTS,
+  ETHTOOL_A_IRQ_MODERATION_COMPS,
+  __ETHTOOL_A_IRQ_MODERATION_CNT,
+  ETHTOOL_A_IRQ_MODERATION_MAX = (__ETHTOOL_A_IRQ_MODERATION_CNT - 1)
+};
+enum {
   ETHTOOL_A_PAUSE_UNSPEC,
   ETHTOOL_A_PAUSE_HEADER,
   ETHTOOL_A_PAUSE_AUTONEG,
   ETHTOOL_A_PAUSE_RX,
   ETHTOOL_A_PAUSE_TX,
   ETHTOOL_A_PAUSE_STATS,
+  ETHTOOL_A_PAUSE_STATS_SRC,
   __ETHTOOL_A_PAUSE_CNT,
   ETHTOOL_A_PAUSE_MAX = (__ETHTOOL_A_PAUSE_CNT - 1)
 };
@@ -350,10 +375,19 @@
   ETHTOOL_A_TSINFO_TX_TYPES,
   ETHTOOL_A_TSINFO_RX_FILTERS,
   ETHTOOL_A_TSINFO_PHC_INDEX,
+  ETHTOOL_A_TSINFO_STATS,
   __ETHTOOL_A_TSINFO_CNT,
   ETHTOOL_A_TSINFO_MAX = (__ETHTOOL_A_TSINFO_CNT - 1)
 };
 enum {
+  ETHTOOL_A_TS_STAT_UNSPEC,
+  ETHTOOL_A_TS_STAT_TX_PKTS,
+  ETHTOOL_A_TS_STAT_TX_LOST,
+  ETHTOOL_A_TS_STAT_TX_ERR,
+  __ETHTOOL_A_TS_STAT_CNT,
+  ETHTOOL_A_TS_STAT_MAX = (__ETHTOOL_A_TS_STAT_CNT - 1)
+};
+enum {
   ETHTOOL_A_PHC_VCLOCKS_UNSPEC,
   ETHTOOL_A_PHC_VCLOCKS_HEADER,
   ETHTOOL_A_PHC_VCLOCKS_NUM,
@@ -373,6 +407,7 @@
   ETHTOOL_A_CABLE_RESULT_CODE_OPEN,
   ETHTOOL_A_CABLE_RESULT_CODE_SAME_SHORT,
   ETHTOOL_A_CABLE_RESULT_CODE_CROSS_SHORT,
+  ETHTOOL_A_CABLE_RESULT_CODE_IMPEDANCE_MISMATCH,
 };
 enum {
   ETHTOOL_A_CABLE_PAIR_A,
@@ -538,6 +573,7 @@
   ETHTOOL_A_STATS_HEADER,
   ETHTOOL_A_STATS_GROUPS,
   ETHTOOL_A_STATS_GRP,
+  ETHTOOL_A_STATS_SRC,
   __ETHTOOL_A_STATS_CNT,
   ETHTOOL_A_STATS_MAX = (__ETHTOOL_A_STATS_CNT - 1)
 };
@@ -560,7 +596,7 @@
   ETHTOOL_A_STATS_GRP_HIST_BKT_HI,
   ETHTOOL_A_STATS_GRP_HIST_VAL,
   __ETHTOOL_A_STATS_GRP_CNT,
-  ETHTOOL_A_STATS_GRP_MAX = (__ETHTOOL_A_STATS_CNT - 1)
+  ETHTOOL_A_STATS_GRP_MAX = (__ETHTOOL_A_STATS_GRP_CNT - 1)
 };
 enum {
   ETHTOOL_A_STATS_ETH_PHY_5_SYM_ERR,
@@ -617,11 +653,25 @@
   ETHTOOL_A_MODULE_MAX = (__ETHTOOL_A_MODULE_CNT - 1)
 };
 enum {
+  ETHTOOL_A_C33_PSE_PW_LIMIT_UNSPEC,
+  ETHTOOL_A_C33_PSE_PW_LIMIT_MIN,
+  ETHTOOL_A_C33_PSE_PW_LIMIT_MAX,
+};
+enum {
   ETHTOOL_A_PSE_UNSPEC,
   ETHTOOL_A_PSE_HEADER,
   ETHTOOL_A_PODL_PSE_ADMIN_STATE,
   ETHTOOL_A_PODL_PSE_ADMIN_CONTROL,
   ETHTOOL_A_PODL_PSE_PW_D_STATUS,
+  ETHTOOL_A_C33_PSE_ADMIN_STATE,
+  ETHTOOL_A_C33_PSE_ADMIN_CONTROL,
+  ETHTOOL_A_C33_PSE_PW_D_STATUS,
+  ETHTOOL_A_C33_PSE_PW_CLASS,
+  ETHTOOL_A_C33_PSE_ACTUAL_PW,
+  ETHTOOL_A_C33_PSE_EXT_STATE,
+  ETHTOOL_A_C33_PSE_EXT_SUBSTATE,
+  ETHTOOL_A_C33_PSE_AVAIL_PW_LIMIT,
+  ETHTOOL_A_C33_PSE_PW_LIMIT_RANGES,
   __ETHTOOL_A_PSE_CNT,
   ETHTOOL_A_PSE_MAX = (__ETHTOOL_A_PSE_CNT - 1)
 };
@@ -632,9 +682,64 @@
   ETHTOOL_A_RSS_HFUNC,
   ETHTOOL_A_RSS_INDIR,
   ETHTOOL_A_RSS_HKEY,
+  ETHTOOL_A_RSS_INPUT_XFRM,
   __ETHTOOL_A_RSS_CNT,
   ETHTOOL_A_RSS_MAX = (__ETHTOOL_A_RSS_CNT - 1),
 };
+enum {
+  ETHTOOL_A_PLCA_UNSPEC,
+  ETHTOOL_A_PLCA_HEADER,
+  ETHTOOL_A_PLCA_VERSION,
+  ETHTOOL_A_PLCA_ENABLED,
+  ETHTOOL_A_PLCA_STATUS,
+  ETHTOOL_A_PLCA_NODE_CNT,
+  ETHTOOL_A_PLCA_NODE_ID,
+  ETHTOOL_A_PLCA_TO_TMR,
+  ETHTOOL_A_PLCA_BURST_CNT,
+  ETHTOOL_A_PLCA_BURST_TMR,
+  __ETHTOOL_A_PLCA_CNT,
+  ETHTOOL_A_PLCA_MAX = (__ETHTOOL_A_PLCA_CNT - 1)
+};
+enum {
+  ETHTOOL_A_MM_STAT_UNSPEC,
+  ETHTOOL_A_MM_STAT_PAD,
+  ETHTOOL_A_MM_STAT_REASSEMBLY_ERRORS,
+  ETHTOOL_A_MM_STAT_SMD_ERRORS,
+  ETHTOOL_A_MM_STAT_REASSEMBLY_OK,
+  ETHTOOL_A_MM_STAT_RX_FRAG_COUNT,
+  ETHTOOL_A_MM_STAT_TX_FRAG_COUNT,
+  ETHTOOL_A_MM_STAT_HOLD_COUNT,
+  __ETHTOOL_A_MM_STAT_CNT,
+  ETHTOOL_A_MM_STAT_MAX = (__ETHTOOL_A_MM_STAT_CNT - 1)
+};
+enum {
+  ETHTOOL_A_MM_UNSPEC,
+  ETHTOOL_A_MM_HEADER,
+  ETHTOOL_A_MM_PMAC_ENABLED,
+  ETHTOOL_A_MM_TX_ENABLED,
+  ETHTOOL_A_MM_TX_ACTIVE,
+  ETHTOOL_A_MM_TX_MIN_FRAG_SIZE,
+  ETHTOOL_A_MM_RX_MIN_FRAG_SIZE,
+  ETHTOOL_A_MM_VERIFY_ENABLED,
+  ETHTOOL_A_MM_VERIFY_STATUS,
+  ETHTOOL_A_MM_VERIFY_TIME,
+  ETHTOOL_A_MM_MAX_VERIFY_TIME,
+  ETHTOOL_A_MM_STATS,
+  __ETHTOOL_A_MM_CNT,
+  ETHTOOL_A_MM_MAX = (__ETHTOOL_A_MM_CNT - 1)
+};
+enum {
+  ETHTOOL_A_MODULE_FW_FLASH_UNSPEC,
+  ETHTOOL_A_MODULE_FW_FLASH_HEADER,
+  ETHTOOL_A_MODULE_FW_FLASH_FILE_NAME,
+  ETHTOOL_A_MODULE_FW_FLASH_PASSWORD,
+  ETHTOOL_A_MODULE_FW_FLASH_STATUS,
+  ETHTOOL_A_MODULE_FW_FLASH_STATUS_MSG,
+  ETHTOOL_A_MODULE_FW_FLASH_DONE,
+  ETHTOOL_A_MODULE_FW_FLASH_TOTAL,
+  __ETHTOOL_A_MODULE_FW_FLASH_CNT,
+  ETHTOOL_A_MODULE_FW_FLASH_MAX = (__ETHTOOL_A_MODULE_FW_FLASH_CNT - 1)
+};
 #define ETHTOOL_GENL_NAME "ethtool"
 #define ETHTOOL_GENL_VERSION 1
 #define ETHTOOL_MCGRP_MONITOR_NAME "monitor"
diff --git a/libc/kernel/uapi/linux/eventfd.h b/libc/kernel/uapi/linux/eventfd.h
new file mode 100644
index 0000000..366df87
--- /dev/null
+++ b/libc/kernel/uapi/linux/eventfd.h
@@ -0,0 +1,13 @@
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
+#ifndef _UAPI_LINUX_EVENTFD_H
+#define _UAPI_LINUX_EVENTFD_H
+#include <linux/fcntl.h>
+#define EFD_SEMAPHORE (1 << 0)
+#define EFD_CLOEXEC O_CLOEXEC
+#define EFD_NONBLOCK O_NONBLOCK
+#endif
diff --git a/libc/kernel/uapi/linux/eventpoll.h b/libc/kernel/uapi/linux/eventpoll.h
index de4c1f1..7704cb3 100644
--- a/libc/kernel/uapi/linux/eventpoll.h
+++ b/libc/kernel/uapi/linux/eventpoll.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_EVENTPOLL_H
 #define _UAPI_LINUX_EVENTPOLL_H
 #include <bits/epoll_event.h>
@@ -47,4 +35,13 @@
 #else
 #define EPOLL_PACKED
 #endif
+struct epoll_params {
+  __u32 busy_poll_usecs;
+  __u16 busy_poll_budget;
+  __u8 prefer_busy_poll;
+  __u8 __pad;
+};
+#define EPOLL_IOC_TYPE 0x8A
+#define EPIOCSPARAMS _IOW(EPOLL_IOC_TYPE, 0x01, struct epoll_params)
+#define EPIOCGPARAMS _IOR(EPOLL_IOC_TYPE, 0x02, struct epoll_params)
 #endif
diff --git a/libc/kernel/uapi/linux/ext4.h b/libc/kernel/uapi/linux/ext4.h
new file mode 100644
index 0000000..d902806
--- /dev/null
+++ b/libc/kernel/uapi/linux/ext4.h
@@ -0,0 +1,76 @@
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
+#ifndef _UAPI_LINUX_EXT4_H
+#define _UAPI_LINUX_EXT4_H
+#include <linux/fiemap.h>
+#include <linux/fs.h>
+#include <linux/ioctl.h>
+#include <linux/types.h>
+#define EXT4_IOC_GETVERSION _IOR('f', 3, long)
+#define EXT4_IOC_SETVERSION _IOW('f', 4, long)
+#define EXT4_IOC_GETVERSION_OLD FS_IOC_GETVERSION
+#define EXT4_IOC_SETVERSION_OLD FS_IOC_SETVERSION
+#define EXT4_IOC_GETRSVSZ _IOR('f', 5, long)
+#define EXT4_IOC_SETRSVSZ _IOW('f', 6, long)
+#define EXT4_IOC_GROUP_EXTEND _IOW('f', 7, unsigned long)
+#define EXT4_IOC_GROUP_ADD _IOW('f', 8, struct ext4_new_group_input)
+#define EXT4_IOC_MIGRATE _IO('f', 9)
+#define EXT4_IOC_ALLOC_DA_BLKS _IO('f', 12)
+#define EXT4_IOC_MOVE_EXT _IOWR('f', 15, struct move_extent)
+#define EXT4_IOC_RESIZE_FS _IOW('f', 16, __u64)
+#define EXT4_IOC_SWAP_BOOT _IO('f', 17)
+#define EXT4_IOC_PRECACHE_EXTENTS _IO('f', 18)
+#define EXT4_IOC_CLEAR_ES_CACHE _IO('f', 40)
+#define EXT4_IOC_GETSTATE _IOW('f', 41, __u32)
+#define EXT4_IOC_GET_ES_CACHE _IOWR('f', 42, struct fiemap)
+#define EXT4_IOC_CHECKPOINT _IOW('f', 43, __u32)
+#define EXT4_IOC_GETFSUUID _IOR('f', 44, struct fsuuid)
+#define EXT4_IOC_SETFSUUID _IOW('f', 44, struct fsuuid)
+#define EXT4_IOC_SHUTDOWN _IOR('X', 125, __u32)
+#define EXT4_IOC32_GETVERSION _IOR('f', 3, int)
+#define EXT4_IOC32_SETVERSION _IOW('f', 4, int)
+#define EXT4_IOC32_GETRSVSZ _IOR('f', 5, int)
+#define EXT4_IOC32_SETRSVSZ _IOW('f', 6, int)
+#define EXT4_IOC32_GROUP_EXTEND _IOW('f', 7, unsigned int)
+#define EXT4_IOC32_GROUP_ADD _IOW('f', 8, struct compat_ext4_new_group_input)
+#define EXT4_IOC32_GETVERSION_OLD FS_IOC32_GETVERSION
+#define EXT4_IOC32_SETVERSION_OLD FS_IOC32_SETVERSION
+#define EXT4_STATE_FLAG_EXT_PRECACHED 0x00000001
+#define EXT4_STATE_FLAG_NEW 0x00000002
+#define EXT4_STATE_FLAG_NEWENTRY 0x00000004
+#define EXT4_STATE_FLAG_DA_ALLOC_CLOSE 0x00000008
+#define EXT4_IOC_CHECKPOINT_FLAG_DISCARD 0x1
+#define EXT4_IOC_CHECKPOINT_FLAG_ZEROOUT 0x2
+#define EXT4_IOC_CHECKPOINT_FLAG_DRY_RUN 0x4
+#define EXT4_IOC_CHECKPOINT_FLAG_VALID (EXT4_IOC_CHECKPOINT_FLAG_DISCARD | EXT4_IOC_CHECKPOINT_FLAG_ZEROOUT | EXT4_IOC_CHECKPOINT_FLAG_DRY_RUN)
+struct fsuuid {
+  __u32 fsu_len;
+  __u32 fsu_flags;
+  __u8 fsu_uuid[];
+};
+struct move_extent {
+  __u32 reserved;
+  __u32 donor_fd;
+  __u64 orig_start;
+  __u64 donor_start;
+  __u64 len;
+  __u64 moved_len;
+};
+#define EXT4_GOING_FLAGS_DEFAULT 0x0
+#define EXT4_GOING_FLAGS_LOGFLUSH 0x1
+#define EXT4_GOING_FLAGS_NOLOGFLUSH 0x2
+struct ext4_new_group_input {
+  __u32 group;
+  __u64 block_bitmap;
+  __u64 inode_bitmap;
+  __u64 inode_table;
+  __u32 blocks_count;
+  __u16 reserved_blocks;
+  __u16 unused;
+};
+#define EXT4_FIEMAP_EXTENT_HOLE 0x08000000
+#endif
diff --git a/libc/kernel/uapi/linux/f2fs.h b/libc/kernel/uapi/linux/f2fs.h
index 7c9629a..c4c8a65 100644
--- a/libc/kernel/uapi/linux/f2fs.h
+++ b/libc/kernel/uapi/linux/f2fs.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_F2FS_H
 #define _UAPI_LINUX_F2FS_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/fadvise.h b/libc/kernel/uapi/linux/fadvise.h
index 21d884c..19d6370 100644
--- a/libc/kernel/uapi/linux/fadvise.h
+++ b/libc/kernel/uapi/linux/fadvise.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef FADVISE_H_INCLUDED
 #define FADVISE_H_INCLUDED
 #define POSIX_FADV_NORMAL 0
diff --git a/libc/kernel/uapi/linux/falloc.h b/libc/kernel/uapi/linux/falloc.h
index 7015b03..cca488e 100644
--- a/libc/kernel/uapi/linux/falloc.h
+++ b/libc/kernel/uapi/linux/falloc.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_FALLOC_H_
 #define _UAPI_FALLOC_H_
 #define FALLOC_FL_KEEP_SIZE 0x01
diff --git a/libc/kernel/uapi/linux/fanotify.h b/libc/kernel/uapi/linux/fanotify.h
index 9815a64..8a5a4f0 100644
--- a/libc/kernel/uapi/linux/fanotify.h
+++ b/libc/kernel/uapi/linux/fanotify.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_FANOTIFY_H
 #define _UAPI_LINUX_FANOTIFY_H
 #include <linux/types.h>
@@ -113,13 +101,27 @@
   __s32 error;
   __u32 error_count;
 };
+#define FAN_RESPONSE_INFO_NONE 0
+#define FAN_RESPONSE_INFO_AUDIT_RULE 1
 struct fanotify_response {
   __s32 fd;
   __u32 response;
 };
+struct fanotify_response_info_header {
+  __u8 type;
+  __u8 pad;
+  __u16 len;
+};
+struct fanotify_response_info_audit_rule {
+  struct fanotify_response_info_header hdr;
+  __u32 rule_number;
+  __u32 subj_trust;
+  __u32 obj_trust;
+};
 #define FAN_ALLOW 0x01
 #define FAN_DENY 0x02
 #define FAN_AUDIT 0x10
+#define FAN_INFO 0x20
 #define FAN_NOFD - 1
 #define FAN_NOPIDFD FAN_NOFD
 #define FAN_EPIDFD - 2
diff --git a/libc/kernel/uapi/linux/fb.h b/libc/kernel/uapi/linux/fb.h
index a0ef0c4..82f35e7 100644
--- a/libc/kernel/uapi/linux/fb.h
+++ b/libc/kernel/uapi/linux/fb.h
@@ -1,25 +1,14 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_FB_H
 #define _UAPI_LINUX_FB_H
 #include <linux/types.h>
 #include <linux/i2c.h>
+#include <linux/vesa.h>
 #define FB_MAX 32
 #define FBIOGET_VSCREENINFO 0x4600
 #define FBIOPUT_VSCREENINFO 0x4601
@@ -247,10 +236,6 @@
   __u32 console;
   __u32 framebuffer;
 };
-#define VESA_NO_BLANKING 0
-#define VESA_VSYNC_SUSPEND 1
-#define VESA_HSYNC_SUSPEND 2
-#define VESA_POWERDOWN 3
 enum {
   FB_BLANK_UNBLANK = VESA_NO_BLANKING,
   FB_BLANK_NORMAL = VESA_NO_BLANKING + 1,
diff --git a/libc/kernel/uapi/linux/fcntl.h b/libc/kernel/uapi/linux/fcntl.h
index a46726b..9f32f9f 100644
--- a/libc/kernel/uapi/linux/fcntl.h
+++ b/libc/kernel/uapi/linux/fcntl.h
@@ -1,30 +1,19 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_FCNTL_H
 #define _UAPI_LINUX_FCNTL_H
 #include <asm/fcntl.h>
 #include <linux/openat2.h>
 #define F_SETLEASE (F_LINUX_SPECIFIC_BASE + 0)
 #define F_GETLEASE (F_LINUX_SPECIFIC_BASE + 1)
+#define F_NOTIFY (F_LINUX_SPECIFIC_BASE + 2)
+#define F_DUPFD_QUERY (F_LINUX_SPECIFIC_BASE + 3)
 #define F_CANCELLK (F_LINUX_SPECIFIC_BASE + 5)
 #define F_DUPFD_CLOEXEC (F_LINUX_SPECIFIC_BASE + 6)
-#define F_NOTIFY (F_LINUX_SPECIFIC_BASE + 2)
 #define F_SETPIPE_SZ (F_LINUX_SPECIFIC_BASE + 7)
 #define F_GETPIPE_SZ (F_LINUX_SPECIFIC_BASE + 8)
 #define F_ADD_SEALS (F_LINUX_SPECIFIC_BASE + 9)
@@ -34,6 +23,7 @@
 #define F_SEAL_GROW 0x0004
 #define F_SEAL_WRITE 0x0008
 #define F_SEAL_FUTURE_WRITE 0x0010
+#define F_SEAL_EXEC 0x0020
 #define F_GET_RW_HINT (F_LINUX_SPECIFIC_BASE + 11)
 #define F_SET_RW_HINT (F_LINUX_SPECIFIC_BASE + 12)
 #define F_GET_FILE_RW_HINT (F_LINUX_SPECIFIC_BASE + 13)
@@ -64,4 +54,5 @@
 #define AT_STATX_FORCE_SYNC 0x2000
 #define AT_STATX_DONT_SYNC 0x4000
 #define AT_RECURSIVE 0x8000
+#define AT_HANDLE_FID AT_REMOVEDIR
 #endif
diff --git a/libc/kernel/uapi/linux/fd.h b/libc/kernel/uapi/linux/fd.h
index dc1d444..352620d 100644
--- a/libc/kernel/uapi/linux/fd.h
+++ b/libc/kernel/uapi/linux/fd.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_FD_H
 #define _UAPI_LINUX_FD_H
 #include <linux/ioctl.h>
diff --git a/libc/kernel/uapi/linux/fdreg.h b/libc/kernel/uapi/linux/fdreg.h
index 2aeaf9a..276f648 100644
--- a/libc/kernel/uapi/linux/fdreg.h
+++ b/libc/kernel/uapi/linux/fdreg.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _LINUX_FDREG_H
 #define _LINUX_FDREG_H
 #define FD_SRA 0
diff --git a/libc/kernel/uapi/linux/fib_rules.h b/libc/kernel/uapi/linux/fib_rules.h
index 733c1b1..ee9cabc 100644
--- a/libc/kernel/uapi/linux/fib_rules.h
+++ b/libc/kernel/uapi/linux/fib_rules.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __LINUX_FIB_RULES_H
 #define __LINUX_FIB_RULES_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/fiemap.h b/libc/kernel/uapi/linux/fiemap.h
index a67a5fe..314a0b1 100644
--- a/libc/kernel/uapi/linux/fiemap.h
+++ b/libc/kernel/uapi/linux/fiemap.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_FIEMAP_H
 #define _UAPI_LINUX_FIEMAP_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/filter.h b/libc/kernel/uapi/linux/filter.h
index 57fe2fb..f46b716 100644
--- a/libc/kernel/uapi/linux/filter.h
+++ b/libc/kernel/uapi/linux/filter.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI__LINUX_FILTER_H__
 #define _UAPI__LINUX_FILTER_H__
 #include <linux/compiler.h>
diff --git a/libc/kernel/uapi/linux/firewire-cdev.h b/libc/kernel/uapi/linux/firewire-cdev.h
index a54191c..cb576b2 100644
--- a/libc/kernel/uapi/linux/firewire-cdev.h
+++ b/libc/kernel/uapi/linux/firewire-cdev.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _LINUX_FIREWIRE_CDEV_H
 #define _LINUX_FIREWIRE_CDEV_H
 #include <linux/ioctl.h>
@@ -31,6 +19,10 @@
 #define FW_CDEV_EVENT_PHY_PACKET_SENT 0x07
 #define FW_CDEV_EVENT_PHY_PACKET_RECEIVED 0x08
 #define FW_CDEV_EVENT_ISO_INTERRUPT_MULTICHANNEL 0x09
+#define FW_CDEV_EVENT_REQUEST3 0x0a
+#define FW_CDEV_EVENT_RESPONSE2 0x0b
+#define FW_CDEV_EVENT_PHY_PACKET_SENT2 0x0c
+#define FW_CDEV_EVENT_PHY_PACKET_RECEIVED2 0x0d
 struct fw_cdev_event_common {
   __u64 closure;
   __u32 type;
@@ -52,6 +44,16 @@
   __u32 length;
   __u32 data[];
 };
+struct fw_cdev_event_response2 {
+  __u64 closure;
+  __u32 type;
+  __u32 rcode;
+  __u32 length;
+  __u32 request_tstamp;
+  __u32 response_tstamp;
+  __u32 padding;
+  __u32 data[];
+};
 struct fw_cdev_event_request {
   __u64 closure;
   __u32 type;
@@ -74,6 +76,21 @@
   __u32 length;
   __u32 data[];
 };
+struct fw_cdev_event_request3 {
+  __u64 closure;
+  __u32 type;
+  __u32 tcode;
+  __u64 offset;
+  __u32 source_node_id;
+  __u32 destination_node_id;
+  __u32 card;
+  __u32 generation;
+  __u32 handle;
+  __u32 length;
+  __u32 tstamp;
+  __u32 padding;
+  __u32 data[];
+};
 struct fw_cdev_event_iso_interrupt {
   __u64 closure;
   __u32 type;
@@ -100,6 +117,14 @@
   __u32 length;
   __u32 data[];
 };
+struct fw_cdev_event_phy_packet2 {
+  __u64 closure;
+  __u32 type;
+  __u32 rcode;
+  __u32 length;
+  __u32 tstamp;
+  __u32 data[];
+};
 union fw_cdev_event {
   struct fw_cdev_event_common common;
   struct fw_cdev_event_bus_reset bus_reset;
@@ -110,6 +135,9 @@
   struct fw_cdev_event_iso_interrupt_mc iso_interrupt_mc;
   struct fw_cdev_event_iso_resource iso_resource;
   struct fw_cdev_event_phy_packet phy_packet;
+  struct fw_cdev_event_request3 request3;
+  struct fw_cdev_event_response2 response2;
+  struct fw_cdev_event_phy_packet2 phy_packet2;
 };
 #define FW_CDEV_IOC_GET_INFO _IOWR('#', 0x00, struct fw_cdev_get_info)
 #define FW_CDEV_IOC_SEND_REQUEST _IOW('#', 0x01, struct fw_cdev_send_request)
diff --git a/libc/kernel/uapi/linux/firewire-constants.h b/libc/kernel/uapi/linux/firewire-constants.h
index b599852..e00cdd3 100644
--- a/libc/kernel/uapi/linux/firewire-constants.h
+++ b/libc/kernel/uapi/linux/firewire-constants.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _LINUX_FIREWIRE_CONSTANTS_H
 #define _LINUX_FIREWIRE_CONSTANTS_H
 #define TCODE_WRITE_QUADLET_REQUEST 0x0
diff --git a/libc/kernel/uapi/linux/fou.h b/libc/kernel/uapi/linux/fou.h
index a16b8c6..c473ed7 100644
--- a/libc/kernel/uapi/linux/fou.h
+++ b/libc/kernel/uapi/linux/fou.h
@@ -1,25 +1,18 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_FOU_H
 #define _UAPI_LINUX_FOU_H
 #define FOU_GENL_NAME "fou"
-#define FOU_GENL_VERSION 0x1
+#define FOU_GENL_VERSION 1
+enum {
+  FOU_ENCAP_UNSPEC,
+  FOU_ENCAP_DIRECT,
+  FOU_ENCAP_GUE,
+};
 enum {
   FOU_ATTR_UNSPEC,
   FOU_ATTR_PORT,
@@ -33,7 +26,7 @@
   FOU_ATTR_PEER_V6,
   FOU_ATTR_PEER_PORT,
   FOU_ATTR_IFINDEX,
-  __FOU_ATTR_MAX,
+  __FOU_ATTR_MAX
 };
 #define FOU_ATTR_MAX (__FOU_ATTR_MAX - 1)
 enum {
@@ -41,12 +34,7 @@
   FOU_CMD_ADD,
   FOU_CMD_DEL,
   FOU_CMD_GET,
-  __FOU_CMD_MAX,
-};
-enum {
-  FOU_ENCAP_UNSPEC,
-  FOU_ENCAP_DIRECT,
-  FOU_ENCAP_GUE,
+  __FOU_CMD_MAX
 };
 #define FOU_CMD_MAX (__FOU_CMD_MAX - 1)
 #endif
diff --git a/libc/kernel/uapi/linux/fpga-dfl.h b/libc/kernel/uapi/linux/fpga-dfl.h
index 54b93d0..b52de35 100644
--- a/libc/kernel/uapi/linux/fpga-dfl.h
+++ b/libc/kernel/uapi/linux/fpga-dfl.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_FPGA_DFL_H
 #define _UAPI_LINUX_FPGA_DFL_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/fs.h b/libc/kernel/uapi/linux/fs.h
index b8bfaac..adab56f 100644
--- a/libc/kernel/uapi/linux/fs.h
+++ b/libc/kernel/uapi/linux/fs.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_FS_H
 #define _UAPI_LINUX_FS_H
 #include <linux/limits.h>
@@ -48,6 +36,14 @@
   __u64 len;
   __u64 minlen;
 };
+struct fsuuid2 {
+  __u8 len;
+  __u8 uuid[16];
+};
+struct fs_sysfs_path {
+  __u8 len;
+  __u8 name[128];
+};
 #define FILE_DEDUPE_RANGE_SAME 0
 #define FILE_DEDUPE_RANGE_DIFFERS 1
 struct file_dedupe_range_info {
@@ -153,6 +149,8 @@
 #define FS_IOC_FSSETXATTR _IOW('X', 32, struct fsxattr)
 #define FS_IOC_GETFSLABEL _IOR(0x94, 49, char[FSLABEL_MAX])
 #define FS_IOC_SETFSLABEL _IOW(0x94, 50, char[FSLABEL_MAX])
+#define FS_IOC_GETFSUUID _IOR(0x15, 0, struct fsuuid2)
+#define FS_IOC_GETFSSYSFSPATH _IOR(0x15, 1, struct fs_sysfs_path)
 #define FS_SECRM_FL 0x00000001
 #define FS_UNRM_FL 0x00000002
 #define FS_COMPR_FL 0x00000004
@@ -195,5 +193,64 @@
 #define RWF_SYNC (( __kernel_rwf_t) 0x00000004)
 #define RWF_NOWAIT (( __kernel_rwf_t) 0x00000008)
 #define RWF_APPEND (( __kernel_rwf_t) 0x00000010)
-#define RWF_SUPPORTED (RWF_HIPRI | RWF_DSYNC | RWF_SYNC | RWF_NOWAIT | RWF_APPEND)
+#define RWF_NOAPPEND (( __kernel_rwf_t) 0x00000020)
+#define RWF_ATOMIC (( __kernel_rwf_t) 0x00000040)
+#define RWF_SUPPORTED (RWF_HIPRI | RWF_DSYNC | RWF_SYNC | RWF_NOWAIT | RWF_APPEND | RWF_NOAPPEND | RWF_ATOMIC)
+#define PROCFS_IOCTL_MAGIC 'f'
+#define PAGEMAP_SCAN _IOWR(PROCFS_IOCTL_MAGIC, 16, struct pm_scan_arg)
+#define PAGE_IS_WPALLOWED (1 << 0)
+#define PAGE_IS_WRITTEN (1 << 1)
+#define PAGE_IS_FILE (1 << 2)
+#define PAGE_IS_PRESENT (1 << 3)
+#define PAGE_IS_SWAPPED (1 << 4)
+#define PAGE_IS_PFNZERO (1 << 5)
+#define PAGE_IS_HUGE (1 << 6)
+#define PAGE_IS_SOFT_DIRTY (1 << 7)
+struct page_region {
+  __u64 start;
+  __u64 end;
+  __u64 categories;
+};
+#define PM_SCAN_WP_MATCHING (1 << 0)
+#define PM_SCAN_CHECK_WPASYNC (1 << 1)
+struct pm_scan_arg {
+  __u64 size;
+  __u64 flags;
+  __u64 start;
+  __u64 end;
+  __u64 walk_end;
+  __u64 vec;
+  __u64 vec_len;
+  __u64 max_pages;
+  __u64 category_inverted;
+  __u64 category_mask;
+  __u64 category_anyof_mask;
+  __u64 return_mask;
+};
+#define PROCMAP_QUERY _IOWR(PROCFS_IOCTL_MAGIC, 17, struct procmap_query)
+enum procmap_query_flags {
+  PROCMAP_QUERY_VMA_READABLE = 0x01,
+  PROCMAP_QUERY_VMA_WRITABLE = 0x02,
+  PROCMAP_QUERY_VMA_EXECUTABLE = 0x04,
+  PROCMAP_QUERY_VMA_SHARED = 0x08,
+  PROCMAP_QUERY_COVERING_OR_NEXT_VMA = 0x10,
+  PROCMAP_QUERY_FILE_BACKED_VMA = 0x20,
+};
+struct procmap_query {
+  __u64 size;
+  __u64 query_flags;
+  __u64 query_addr;
+  __u64 vma_start;
+  __u64 vma_end;
+  __u64 vma_flags;
+  __u64 vma_page_size;
+  __u64 vma_offset;
+  __u64 inode;
+  __u32 dev_major;
+  __u32 dev_minor;
+  __u32 vma_name_size;
+  __u32 build_id_size;
+  __u64 vma_name_addr;
+  __u64 build_id_addr;
+};
 #endif
diff --git a/libc/kernel/uapi/linux/fscrypt.h b/libc/kernel/uapi/linux/fscrypt.h
index 9efafae..9a53f4c 100644
--- a/libc/kernel/uapi/linux/fscrypt.h
+++ b/libc/kernel/uapi/linux/fscrypt.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_FSCRYPT_H
 #define _UAPI_LINUX_FSCRYPT_H
 #include <linux/ioctl.h>
@@ -60,7 +48,8 @@
   __u8 contents_encryption_mode;
   __u8 filenames_encryption_mode;
   __u8 flags;
-  __u8 __reserved[4];
+  __u8 log2_data_unit_size;
+  __u8 __reserved[3];
   __u8 master_key_identifier[FSCRYPT_KEY_IDENTIFIER_SIZE];
 };
 struct fscrypt_get_policy_ex_arg {
diff --git a/libc/kernel/uapi/linux/fsi.h b/libc/kernel/uapi/linux/fsi.h
index b080c21..2c28cf2 100644
--- a/libc/kernel/uapi/linux/fsi.h
+++ b/libc/kernel/uapi/linux/fsi.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_FSI_H
 #define _UAPI_LINUX_FSI_H
 #include <linux/types.h>
@@ -48,5 +36,6 @@
 #define FSI_SCOM_READ _IOWR('s', 0x01, struct scom_access)
 #define FSI_SCOM_WRITE _IOWR('s', 0x02, struct scom_access)
 #define FSI_SCOM_RESET _IOW('s', 0x03, __u32)
+#define FSI_SBEFIFO_CMD_TIMEOUT_SECONDS _IOW('s', 0x01, __u32)
 #define FSI_SBEFIFO_READ_TIMEOUT_SECONDS _IOW('s', 0x00, __u32)
 #endif
diff --git a/libc/kernel/uapi/linux/fsl_hypervisor.h b/libc/kernel/uapi/linux/fsl_hypervisor.h
index 7d00973..a207fc7 100644
--- a/libc/kernel/uapi/linux/fsl_hypervisor.h
+++ b/libc/kernel/uapi/linux/fsl_hypervisor.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPIFSL_HYPERVISOR_H
 #define _UAPIFSL_HYPERVISOR_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/fsl_mc.h b/libc/kernel/uapi/linux/fsl_mc.h
index 721da93..7baa932 100644
--- a/libc/kernel/uapi/linux/fsl_mc.h
+++ b/libc/kernel/uapi/linux/fsl_mc.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_FSL_MC_H_
 #define _UAPI_FSL_MC_H_
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/fsmap.h b/libc/kernel/uapi/linux/fsmap.h
index fcfea79..e5e6a31 100644
--- a/libc/kernel/uapi/linux/fsmap.h
+++ b/libc/kernel/uapi/linux/fsmap.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _LINUX_FSMAP_H
 #define _LINUX_FSMAP_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/fsverity.h b/libc/kernel/uapi/linux/fsverity.h
index ff1603c..395d983 100644
--- a/libc/kernel/uapi/linux/fsverity.h
+++ b/libc/kernel/uapi/linux/fsverity.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_FSVERITY_H
 #define _UAPI_LINUX_FSVERITY_H
 #include <linux/ioctl.h>
diff --git a/libc/kernel/uapi/linux/fuse.h b/libc/kernel/uapi/linux/fuse.h
index f1eec4d..4ac2d2c 100644
--- a/libc/kernel/uapi/linux/fuse.h
+++ b/libc/kernel/uapi/linux/fuse.h
@@ -1,26 +1,14 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _LINUX_FUSE_H
 #define _LINUX_FUSE_H
 #include <stdint.h>
 #define FUSE_KERNEL_VERSION 7
-#define FUSE_KERNEL_MINOR_VERSION 38
+#define FUSE_KERNEL_MINOR_VERSION 40
 #define FUSE_ROOT_ID 1
 struct fuse_attr {
   uint64_t ino;
@@ -40,6 +28,34 @@
   uint32_t blksize;
   uint32_t flags;
 };
+struct fuse_sx_time {
+  int64_t tv_sec;
+  uint32_t tv_nsec;
+  int32_t __reserved;
+};
+struct fuse_statx {
+  uint32_t mask;
+  uint32_t blksize;
+  uint64_t attributes;
+  uint32_t nlink;
+  uint32_t uid;
+  uint32_t gid;
+  uint16_t mode;
+  uint16_t __spare0[1];
+  uint64_t ino;
+  uint64_t size;
+  uint64_t blocks;
+  uint64_t attributes_mask;
+  struct fuse_sx_time atime;
+  struct fuse_sx_time btime;
+  struct fuse_sx_time ctime;
+  struct fuse_sx_time mtime;
+  uint32_t rdev_major;
+  uint32_t rdev_minor;
+  uint32_t dev_major;
+  uint32_t dev_minor;
+  uint64_t __spare2[14];
+};
 struct fuse_kstatfs {
   uint64_t blocks;
   uint64_t bfree;
@@ -77,6 +93,7 @@
 #define FOPEN_STREAM (1 << 4)
 #define FOPEN_NOFLUSH (1 << 5)
 #define FOPEN_PARALLEL_DIRECT_WRITES (1 << 6)
+#define FOPEN_PASSTHROUGH (1 << 7)
 #define FUSE_ASYNC_READ (1 << 0)
 #define FUSE_POSIX_LOCKS (1 << 1)
 #define FUSE_FILE_OPS (1 << 2)
@@ -111,11 +128,13 @@
 #define FUSE_INIT_RESERVED (1 << 31)
 #define FUSE_SECURITY_CTX (1ULL << 32)
 #define FUSE_HAS_INODE_DAX (1ULL << 33)
-#if FUSE_KERNEL_VERSION > 7 || FUSE_KERNEL_VERSION == 7 && FUSE_KERNEL_MINOR_VERSION >= 36
-#define FUSE_PASSTHROUGH (1ULL << 63)
-#else
-#define FUSE_PASSTHROUGH (1 << 31)
-#endif
+#define FUSE_CREATE_SUPP_GROUP (1ULL << 34)
+#define FUSE_HAS_EXPIRE_ONLY (1ULL << 35)
+#define FUSE_DIRECT_IO_ALLOW_MMAP (1ULL << 36)
+#define FUSE_PASSTHROUGH (1ULL << 37)
+#define FUSE_NO_EXPORT_SUPPORT (1ULL << 38)
+#define FUSE_HAS_RESEND (1ULL << 39)
+#define FUSE_DIRECT_IO_RELAX FUSE_DIRECT_IO_ALLOW_MMAP
 #define CUSE_UNRESTRICTED_IOCTL (1 << 0)
 #define FUSE_RELEASE_FLUSH (1 << 0)
 #define FUSE_RELEASE_FLOCK_UNLOCK (1 << 1)
@@ -140,6 +159,10 @@
 #define FUSE_OPEN_KILL_SUIDGID (1 << 0)
 #define FUSE_SETXATTR_ACL_KILL_SGID (1 << 0)
 #define FUSE_EXPIRE_ONLY (1 << 0)
+enum fuse_ext_type {
+  FUSE_MAX_NR_SECCTX = 31,
+  FUSE_EXT_GROUPS = 32,
+};
 enum fuse_opcode {
   FUSE_LOOKUP = 1,
   FUSE_FORGET = 2,
@@ -190,7 +213,7 @@
   FUSE_REMOVEMAPPING = 49,
   FUSE_SYNCFS = 50,
   FUSE_TMPFILE = 51,
-  FUSE_CANONICAL_PATH = 2016,
+  FUSE_STATX = 52,
   CUSE_INIT = 4096,
   CUSE_INIT_BSWAP_RESERVED = 1048576,
   FUSE_INIT_BSWAP_RESERVED = 436207616,
@@ -202,6 +225,7 @@
   FUSE_NOTIFY_STORE = 4,
   FUSE_NOTIFY_RETRIEVE = 5,
   FUSE_NOTIFY_DELETE = 6,
+  FUSE_NOTIFY_RESEND = 7,
   FUSE_NOTIFY_CODE_MAX,
 };
 #define FUSE_MIN_READ_BUFFER 8192
@@ -238,6 +262,20 @@
   uint32_t dummy;
   struct fuse_attr attr;
 };
+struct fuse_statx_in {
+  uint32_t getattr_flags;
+  uint32_t reserved;
+  uint64_t fh;
+  uint32_t sx_flags;
+  uint32_t sx_mask;
+};
+struct fuse_statx_out {
+  uint64_t attr_valid;
+  uint32_t attr_valid_nsec;
+  uint32_t flags;
+  uint64_t spare[2];
+  struct fuse_statx stat;
+};
 #define FUSE_COMPAT_MKNOD_IN_SIZE 8
 struct fuse_mknod_in {
   uint32_t mode;
@@ -291,7 +329,7 @@
 struct fuse_open_out {
   uint64_t fh;
   uint32_t open_flags;
-  uint32_t passthrough_fh;
+  int32_t backing_id;
 };
 struct fuse_release_in {
   uint64_t fh;
@@ -388,7 +426,8 @@
   uint16_t max_pages;
   uint16_t map_alignment;
   uint32_t flags2;
-  uint32_t unused[7];
+  uint32_t max_stack_depth;
+  uint32_t unused[6];
 };
 #define CUSE_INIT_INFO_MAX 4096
 struct cuse_init_in {
@@ -457,6 +496,7 @@
   uint32_t mode;
   uint32_t padding;
 };
+#define FUSE_UNIQUE_RESEND (1ULL << 63)
 struct fuse_in_header {
   uint32_t len;
   uint32_t opcode;
@@ -465,7 +505,8 @@
   uint32_t uid;
   uint32_t gid;
   uint32_t pid;
-  uint32_t padding;
+  uint16_t total_extlen;
+  uint16_t padding;
 };
 struct fuse_out_header {
   uint32_t len;
@@ -526,9 +567,15 @@
   uint64_t dummy3;
   uint64_t dummy4;
 };
+struct fuse_backing_map {
+  int32_t fd;
+  uint32_t flags;
+  uint64_t padding;
+};
 #define FUSE_DEV_IOC_MAGIC 229
 #define FUSE_DEV_IOC_CLONE _IOR(FUSE_DEV_IOC_MAGIC, 0, uint32_t)
-#define FUSE_DEV_IOC_PASSTHROUGH_OPEN _IOW(FUSE_DEV_IOC_MAGIC, 126, uint32_t)
+#define FUSE_DEV_IOC_BACKING_OPEN _IOW(FUSE_DEV_IOC_MAGIC, 1, struct fuse_backing_map)
+#define FUSE_DEV_IOC_BACKING_CLOSE _IOW(FUSE_DEV_IOC_MAGIC, 2, uint32_t)
 struct fuse_lseek_in {
   uint64_t fh;
   uint64_t offset;
@@ -575,4 +622,12 @@
   uint32_t size;
   uint32_t nr_secctx;
 };
+struct fuse_ext_header {
+  uint32_t size;
+  uint32_t type;
+};
+struct fuse_supp_groups {
+  uint32_t nr_groups;
+  uint32_t groups[];
+};
 #endif
diff --git a/libc/kernel/uapi/linux/futex.h b/libc/kernel/uapi/linux/futex.h
index 8d1a2a4..32c9d28 100644
--- a/libc/kernel/uapi/linux/futex.h
+++ b/libc/kernel/uapi/linux/futex.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_FUTEX_H
 #define _UAPI_LINUX_FUTEX_H
 #include <linux/compiler.h>
@@ -50,7 +38,14 @@
 #define FUTEX_WAKE_BITSET_PRIVATE (FUTEX_WAKE_BITSET | FUTEX_PRIVATE_FLAG)
 #define FUTEX_WAIT_REQUEUE_PI_PRIVATE (FUTEX_WAIT_REQUEUE_PI | FUTEX_PRIVATE_FLAG)
 #define FUTEX_CMP_REQUEUE_PI_PRIVATE (FUTEX_CMP_REQUEUE_PI | FUTEX_PRIVATE_FLAG)
-#define FUTEX_32 2
+#define FUTEX2_SIZE_U8 0x00
+#define FUTEX2_SIZE_U16 0x01
+#define FUTEX2_SIZE_U32 0x02
+#define FUTEX2_SIZE_U64 0x03
+#define FUTEX2_NUMA 0x04
+#define FUTEX2_PRIVATE FUTEX_PRIVATE_FLAG
+#define FUTEX2_SIZE_MASK 0x03
+#define FUTEX_32 FUTEX2_SIZE_U32
 #define FUTEX_WAITV_MAX 128
 struct futex_waitv {
   __u64 val;
diff --git a/libc/kernel/uapi/linux/gameport.h b/libc/kernel/uapi/linux/gameport.h
index c29864e..837d7f4 100644
--- a/libc/kernel/uapi/linux/gameport.h
+++ b/libc/kernel/uapi/linux/gameport.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_GAMEPORT_H
 #define _UAPI_GAMEPORT_H
 #define GAMEPORT_MODE_DISABLED 0
diff --git a/libc/kernel/uapi/linux/gen_stats.h b/libc/kernel/uapi/linux/gen_stats.h
index 2df6616..c95fbbc 100644
--- a/libc/kernel/uapi/linux/gen_stats.h
+++ b/libc/kernel/uapi/linux/gen_stats.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __LINUX_GEN_STATS_H
 #define __LINUX_GEN_STATS_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/genetlink.h b/libc/kernel/uapi/linux/genetlink.h
index 0f86331..87fc216 100644
--- a/libc/kernel/uapi/linux/genetlink.h
+++ b/libc/kernel/uapi/linux/genetlink.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI__LINUX_GENERIC_NETLINK_H
 #define _UAPI__LINUX_GENERIC_NETLINK_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/genwqe/genwqe_card.h b/libc/kernel/uapi/linux/genwqe/genwqe_card.h
index d14c251..9b65f36 100644
--- a/libc/kernel/uapi/linux/genwqe/genwqe_card.h
+++ b/libc/kernel/uapi/linux/genwqe/genwqe_card.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __GENWQE_CARD_H__
 #define __GENWQE_CARD_H__
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/gfs2_ondisk.h b/libc/kernel/uapi/linux/gfs2_ondisk.h
index 1ce4278..14687ac 100644
--- a/libc/kernel/uapi/linux/gfs2_ondisk.h
+++ b/libc/kernel/uapi/linux/gfs2_ondisk.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __GFS2_ONDISK_DOT_H__
 #define __GFS2_ONDISK_DOT_H__
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/gpio.h b/libc/kernel/uapi/linux/gpio.h
index e760321..98d95b9 100644
--- a/libc/kernel/uapi/linux/gpio.h
+++ b/libc/kernel/uapi/linux/gpio.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_GPIO_H_
 #define _UAPI_GPIO_H_
 #include <linux/const.h>
diff --git a/libc/kernel/uapi/linux/gsmmux.h b/libc/kernel/uapi/linux/gsmmux.h
index 4e6920a..e6fc6b5 100644
--- a/libc/kernel/uapi/linux/gsmmux.h
+++ b/libc/kernel/uapi/linux/gsmmux.h
@@ -1,26 +1,16 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _LINUX_GSMMUX_H
 #define _LINUX_GSMMUX_H
+#include <linux/const.h>
 #include <linux/if.h>
 #include <linux/ioctl.h>
 #include <linux/types.h>
+#define GSM_FL_RESTART _BITUL(0)
 struct gsm_config {
   unsigned int adaption;
   unsigned int encapsulation;
@@ -47,4 +37,24 @@
 #define GSMIOC_ENABLE_NET _IOW('G', 2, struct gsm_netconfig)
 #define GSMIOC_DISABLE_NET _IO('G', 3)
 #define GSMIOC_GETFIRST _IOR('G', 4, __u32)
+struct gsm_config_ext {
+  __u32 keep_alive;
+  __u32 wait_config;
+  __u32 flags;
+  __u32 reserved[5];
+};
+#define GSMIOC_GETCONF_EXT _IOR('G', 5, struct gsm_config_ext)
+#define GSMIOC_SETCONF_EXT _IOW('G', 6, struct gsm_config_ext)
+struct gsm_dlci_config {
+  __u32 channel;
+  __u32 adaption;
+  __u32 mtu;
+  __u32 priority;
+  __u32 i;
+  __u32 k;
+  __u32 flags;
+  __u32 reserved[7];
+};
+#define GSMIOC_GETCONF_DLCI _IOWR('G', 7, struct gsm_dlci_config)
+#define GSMIOC_SETCONF_DLCI _IOW('G', 8, struct gsm_dlci_config)
 #endif
diff --git a/libc/kernel/uapi/linux/gtp.h b/libc/kernel/uapi/linux/gtp.h
index 20bc3d6..5a8cdde 100644
--- a/libc/kernel/uapi/linux/gtp.h
+++ b/libc/kernel/uapi/linux/gtp.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_GTP_H_
 #define _UAPI_LINUX_GTP_H_
 #define GTP_GENL_MCGRP_NAME "gtp"
@@ -43,7 +31,10 @@
   GTPA_I_TEI,
   GTPA_O_TEI,
   GTPA_PAD,
+  GTPA_PEER_ADDR6,
+  GTPA_MS_ADDR6,
+  GTPA_FAMILY,
   __GTPA_MAX,
 };
-#define GTPA_MAX (__GTPA_MAX + 1)
+#define GTPA_MAX (__GTPA_MAX - 1)
 #endif
diff --git a/libc/kernel/uapi/linux/handshake.h b/libc/kernel/uapi/linux/handshake.h
new file mode 100644
index 0000000..a6f35c3
--- /dev/null
+++ b/libc/kernel/uapi/linux/handshake.h
@@ -0,0 +1,61 @@
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
+#ifndef _UAPI_LINUX_HANDSHAKE_H
+#define _UAPI_LINUX_HANDSHAKE_H
+#define HANDSHAKE_FAMILY_NAME "handshake"
+#define HANDSHAKE_FAMILY_VERSION 1
+enum handshake_handler_class {
+  HANDSHAKE_HANDLER_CLASS_NONE,
+  HANDSHAKE_HANDLER_CLASS_TLSHD,
+  HANDSHAKE_HANDLER_CLASS_MAX,
+};
+enum handshake_msg_type {
+  HANDSHAKE_MSG_TYPE_UNSPEC,
+  HANDSHAKE_MSG_TYPE_CLIENTHELLO,
+  HANDSHAKE_MSG_TYPE_SERVERHELLO,
+};
+enum handshake_auth {
+  HANDSHAKE_AUTH_UNSPEC,
+  HANDSHAKE_AUTH_UNAUTH,
+  HANDSHAKE_AUTH_PSK,
+  HANDSHAKE_AUTH_X509,
+};
+enum {
+  HANDSHAKE_A_X509_CERT = 1,
+  HANDSHAKE_A_X509_PRIVKEY,
+  __HANDSHAKE_A_X509_MAX,
+  HANDSHAKE_A_X509_MAX = (__HANDSHAKE_A_X509_MAX - 1)
+};
+enum {
+  HANDSHAKE_A_ACCEPT_SOCKFD = 1,
+  HANDSHAKE_A_ACCEPT_HANDLER_CLASS,
+  HANDSHAKE_A_ACCEPT_MESSAGE_TYPE,
+  HANDSHAKE_A_ACCEPT_TIMEOUT,
+  HANDSHAKE_A_ACCEPT_AUTH_MODE,
+  HANDSHAKE_A_ACCEPT_PEER_IDENTITY,
+  HANDSHAKE_A_ACCEPT_CERTIFICATE,
+  HANDSHAKE_A_ACCEPT_PEERNAME,
+  __HANDSHAKE_A_ACCEPT_MAX,
+  HANDSHAKE_A_ACCEPT_MAX = (__HANDSHAKE_A_ACCEPT_MAX - 1)
+};
+enum {
+  HANDSHAKE_A_DONE_STATUS = 1,
+  HANDSHAKE_A_DONE_SOCKFD,
+  HANDSHAKE_A_DONE_REMOTE_AUTH,
+  __HANDSHAKE_A_DONE_MAX,
+  HANDSHAKE_A_DONE_MAX = (__HANDSHAKE_A_DONE_MAX - 1)
+};
+enum {
+  HANDSHAKE_CMD_READY = 1,
+  HANDSHAKE_CMD_ACCEPT,
+  HANDSHAKE_CMD_DONE,
+  __HANDSHAKE_CMD_MAX,
+  HANDSHAKE_CMD_MAX = (__HANDSHAKE_CMD_MAX - 1)
+};
+#define HANDSHAKE_MCGRP_NONE "none"
+#define HANDSHAKE_MCGRP_TLSHD "tlshd"
+#endif
diff --git a/libc/kernel/uapi/linux/hash_info.h b/libc/kernel/uapi/linux/hash_info.h
index 824b71a..f59010f 100644
--- a/libc/kernel/uapi/linux/hash_info.h
+++ b/libc/kernel/uapi/linux/hash_info.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_HASH_INFO_H
 #define _UAPI_LINUX_HASH_INFO_H
 enum hash_algo {
@@ -39,6 +27,9 @@
   HASH_ALGO_SM3_256,
   HASH_ALGO_STREEBOG_256,
   HASH_ALGO_STREEBOG_512,
+  HASH_ALGO_SHA3_256,
+  HASH_ALGO_SHA3_384,
+  HASH_ALGO_SHA3_512,
   HASH_ALGO__LAST
 };
 #endif
diff --git a/libc/kernel/uapi/linux/hdlc.h b/libc/kernel/uapi/linux/hdlc.h
index 10e3983..8710d17 100644
--- a/libc/kernel/uapi/linux/hdlc.h
+++ b/libc/kernel/uapi/linux/hdlc.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI__HDLC_H
 #define _UAPI__HDLC_H
 #define HDLC_MAX_MTU 1500
diff --git a/libc/kernel/uapi/linux/hdlc/ioctl.h b/libc/kernel/uapi/linux/hdlc/ioctl.h
index 3c727c5..61888f9 100644
--- a/libc/kernel/uapi/linux/hdlc/ioctl.h
+++ b/libc/kernel/uapi/linux/hdlc/ioctl.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __HDLC_IOCTL_H__
 #define __HDLC_IOCTL_H__
 #define GENERIC_HDLC_VERSION 4
diff --git a/libc/kernel/uapi/linux/hdlcdrv.h b/libc/kernel/uapi/linux/hdlcdrv.h
index 9f6cdb7..b94f78d 100644
--- a/libc/kernel/uapi/linux/hdlcdrv.h
+++ b/libc/kernel/uapi/linux/hdlcdrv.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_HDLCDRV_H
 #define _UAPI_HDLCDRV_H
 struct hdlcdrv_params {
diff --git a/libc/kernel/uapi/linux/hdreg.h b/libc/kernel/uapi/linux/hdreg.h
index 29a2c24..21de0df 100644
--- a/libc/kernel/uapi/linux/hdreg.h
+++ b/libc/kernel/uapi/linux/hdreg.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _LINUX_HDREG_H
 #define _LINUX_HDREG_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/hid.h b/libc/kernel/uapi/linux/hid.h
index 37ab462..19a7a15 100644
--- a/libc/kernel/uapi/linux/hid.h
+++ b/libc/kernel/uapi/linux/hid.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI__HID_H
 #define _UAPI__HID_H
 #define USB_INTERFACE_CLASS_HID 3
diff --git a/libc/kernel/uapi/linux/hiddev.h b/libc/kernel/uapi/linux/hiddev.h
index a7553ca..95e812b 100644
--- a/libc/kernel/uapi/linux/hiddev.h
+++ b/libc/kernel/uapi/linux/hiddev.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_HIDDEV_H
 #define _UAPI_HIDDEV_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/hidraw.h b/libc/kernel/uapi/linux/hidraw.h
index 65020ac..25a9a17 100644
--- a/libc/kernel/uapi/linux/hidraw.h
+++ b/libc/kernel/uapi/linux/hidraw.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_HIDRAW_H
 #define _UAPI_HIDRAW_H
 #include <linux/hid.h>
diff --git a/libc/kernel/uapi/linux/hpet.h b/libc/kernel/uapi/linux/hpet.h
index ab944b4..6ae1dd7 100644
--- a/libc/kernel/uapi/linux/hpet.h
+++ b/libc/kernel/uapi/linux/hpet.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI__HPET__
 #define _UAPI__HPET__
 #include <linux/compiler.h>
diff --git a/libc/kernel/uapi/linux/hsi/cs-protocol.h b/libc/kernel/uapi/linux/hsi/cs-protocol.h
index baac345..f81534c 100644
--- a/libc/kernel/uapi/linux/hsi/cs-protocol.h
+++ b/libc/kernel/uapi/linux/hsi/cs-protocol.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _CS_PROTOCOL_H
 #define _CS_PROTOCOL_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/hsi/hsi_char.h b/libc/kernel/uapi/linux/hsi/hsi_char.h
index e127a35..b471c34 100644
--- a/libc/kernel/uapi/linux/hsi/hsi_char.h
+++ b/libc/kernel/uapi/linux/hsi/hsi_char.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __HSI_CHAR_H
 #define __HSI_CHAR_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/hsr_netlink.h b/libc/kernel/uapi/linux/hsr_netlink.h
index e410e57..c786b57 100644
--- a/libc/kernel/uapi/linux/hsr_netlink.h
+++ b/libc/kernel/uapi/linux/hsr_netlink.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __UAPI_HSR_NETLINK_H
 #define __UAPI_HSR_NETLINK_H
 enum {
diff --git a/libc/kernel/uapi/linux/hw_breakpoint.h b/libc/kernel/uapi/linux/hw_breakpoint.h
index 74acd53..bf54b23 100644
--- a/libc/kernel/uapi/linux/hw_breakpoint.h
+++ b/libc/kernel/uapi/linux/hw_breakpoint.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_HW_BREAKPOINT_H
 #define _UAPI_LINUX_HW_BREAKPOINT_H
 enum {
@@ -36,9 +24,4 @@
   HW_BREAKPOINT_X = 4,
   HW_BREAKPOINT_INVALID = HW_BREAKPOINT_RW | HW_BREAKPOINT_X,
 };
-enum bp_type_idx {
-  TYPE_INST = 0,
-  TYPE_DATA = 1,
-  TYPE_MAX
-};
 #endif
diff --git a/libc/kernel/uapi/linux/hyperv.h b/libc/kernel/uapi/linux/hyperv.h
index 4790bbf..50ab068 100644
--- a/libc/kernel/uapi/linux/hyperv.h
+++ b/libc/kernel/uapi/linux/hyperv.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_HYPERV_H
 #define _UAPI_HYPERV_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/i2c-dev.h b/libc/kernel/uapi/linux/i2c-dev.h
index 7a25e20..9aefbdf 100644
--- a/libc/kernel/uapi/linux/i2c-dev.h
+++ b/libc/kernel/uapi/linux/i2c-dev.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_I2C_DEV_H
 #define _UAPI_LINUX_I2C_DEV_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/i2c.h b/libc/kernel/uapi/linux/i2c.h
index fe578e8..bf7481c 100644
--- a/libc/kernel/uapi/linux/i2c.h
+++ b/libc/kernel/uapi/linux/i2c.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_I2C_H
 #define _UAPI_LINUX_I2C_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/i2o-dev.h b/libc/kernel/uapi/linux/i2o-dev.h
index afaae74..8745c16 100644
--- a/libc/kernel/uapi/linux/i2o-dev.h
+++ b/libc/kernel/uapi/linux/i2o-dev.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _I2O_DEV_H
 #define _I2O_DEV_H
 #define MAX_I2O_CONTROLLERS 32
diff --git a/libc/kernel/uapi/linux/i8k.h b/libc/kernel/uapi/linux/i8k.h
index 47ada4b..423682f 100644
--- a/libc/kernel/uapi/linux/i8k.h
+++ b/libc/kernel/uapi/linux/i8k.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _LINUX_I8K_H
 #define _LINUX_I8K_H
 #define I8K_PROC "/proc/i8k"
diff --git a/libc/kernel/uapi/linux/icmp.h b/libc/kernel/uapi/linux/icmp.h
index 77cb328..d7e37af 100644
--- a/libc/kernel/uapi/linux/icmp.h
+++ b/libc/kernel/uapi/linux/icmp.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_ICMP_H
 #define _UAPI_LINUX_ICMP_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/icmpv6.h b/libc/kernel/uapi/linux/icmpv6.h
index 5285698..a2ca922 100644
--- a/libc/kernel/uapi/linux/icmpv6.h
+++ b/libc/kernel/uapi/linux/icmpv6.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_ICMPV6_H
 #define _UAPI_LINUX_ICMPV6_H
 #include <linux/types.h>
@@ -93,6 +81,7 @@
 #define ICMPV6_MOBILE_PREFIX_SOL 146
 #define ICMPV6_MOBILE_PREFIX_ADV 147
 #define ICMPV6_MRDISC_ADV 151
+#define ICMPV6_MRDISC_SOL 152
 #define ICMPV6_MSG_MAX 255
 #define ICMPV6_NOROUTE 0
 #define ICMPV6_ADM_PROHIBITED 1
diff --git a/libc/kernel/uapi/linux/idxd.h b/libc/kernel/uapi/linux/idxd.h
index 01c62f2..d8ca23c 100644
--- a/libc/kernel/uapi/linux/idxd.h
+++ b/libc/kernel/uapi/linux/idxd.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _USR_IDXD_H_
 #define _USR_IDXD_H_
 #include <stdint.h>
@@ -39,6 +27,8 @@
   IDXD_SCMD_WQ_NO_PRIV = 0x800f0000,
   IDXD_SCMD_WQ_IRQ_ERR = 0x80100000,
   IDXD_SCMD_WQ_USER_NO_IOMMU = 0x80110000,
+  IDXD_SCMD_DEV_EVL_ERR = 0x80120000,
+  IDXD_SCMD_WQ_NO_DRV_NAME = 0x80200000,
 };
 #define IDXD_SCMD_SOFTERR_MASK 0x80000000
 #define IDXD_SCMD_SOFTERR_SHIFT 16
@@ -74,12 +64,14 @@
   DSA_OPCODE_CR_DELTA,
   DSA_OPCODE_AP_DELTA,
   DSA_OPCODE_DUALCAST,
+  DSA_OPCODE_TRANSL_FETCH,
   DSA_OPCODE_CRCGEN = 0x10,
   DSA_OPCODE_COPY_CRC,
   DSA_OPCODE_DIF_CHECK,
   DSA_OPCODE_DIF_INS,
   DSA_OPCODE_DIF_STRP,
   DSA_OPCODE_DIF_UPDT,
+  DSA_OPCODE_DIX_GEN = 0x17,
   DSA_OPCODE_CFLUSH = 0x20,
 };
 enum iax_opcode {
@@ -131,6 +123,8 @@
   DSA_COMP_HW_ERR1,
   DSA_COMP_HW_ERR_DRB,
   DSA_COMP_TRANSLATION_FAIL,
+  DSA_COMP_DRAIN_EVL = 0x26,
+  DSA_COMP_BATCH_EVL_ERR,
 };
 enum iax_completion_status {
   IAX_COMP_NONE = 0,
@@ -164,6 +158,7 @@
 };
 #define DSA_COMP_STATUS_MASK 0x7f
 #define DSA_COMP_STATUS_WRITE 0x80
+#define DSA_COMP_STATUS(status) ((status) & DSA_COMP_STATUS_MASK)
 struct dsa_hw_desc {
   uint32_t pasid : 20;
   uint32_t rsvd : 11;
@@ -176,6 +171,8 @@
     uint64_t rdback_addr;
     uint64_t pattern;
     uint64_t desc_list_addr;
+    uint64_t pattern_lower;
+    uint64_t transl_fetch_addr;
   };
   union {
     uint64_t dst_addr;
@@ -186,6 +183,7 @@
   union {
     uint32_t xfer_size;
     uint32_t desc_count;
+    uint32_t region_size;
   };
   uint16_t int_handle;
   uint16_t rsvd1;
@@ -234,6 +232,20 @@
       uint16_t dest_app_tag_mask;
       uint16_t dest_app_tag_seed;
     };
+    uint64_t pattern_upper;
+    struct {
+      uint64_t transl_fetch_res;
+      uint32_t region_stride;
+    };
+    struct {
+      uint8_t dix_gen_res;
+      uint8_t dest_dif_flags;
+      uint8_t dif_flags;
+      uint8_t dix_gen_res2[13];
+      uint32_t ref_tag_seed;
+      uint16_t app_tag_mask;
+      uint16_t app_tag_seed;
+    };
     uint8_t op_specific[24];
   };
 } __attribute__((packed));
@@ -267,8 +279,12 @@
     uint8_t result;
     uint8_t dif_status;
   };
-  uint16_t rsvd;
-  uint32_t bytes_completed;
+  uint8_t fault_info;
+  uint8_t rsvd;
+  union {
+    uint32_t bytes_completed;
+    uint32_t descs_completed;
+  };
   uint64_t fault_addr;
   union {
     struct {
@@ -296,6 +312,12 @@
       uint16_t dif_upd_dest_app_tag_mask;
       uint16_t dif_upd_dest_app_tag;
     };
+    struct {
+      uint64_t dix_gen_res;
+      uint32_t dix_ref_tag;
+      uint16_t dix_app_tag_mask;
+      uint16_t dix_app_tag;
+    };
     uint8_t op_specific[16];
   };
 } __attribute__((packed));
@@ -305,7 +327,8 @@
 struct iax_completion_record {
   volatile uint8_t status;
   uint8_t error_code;
-  uint16_t rsvd;
+  uint8_t fault_info;
+  uint8_t rsvd;
   uint32_t bytes_completed;
   uint64_t fault_addr;
   uint32_t invalid_flags;
diff --git a/libc/kernel/uapi/linux/if.h b/libc/kernel/uapi/linux/if.h
index fc6d20d..8e551eb 100644
--- a/libc/kernel/uapi/linux/if.h
+++ b/libc/kernel/uapi/linux/if.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _LINUX_IF_H
 #define _LINUX_IF_H
 #include <linux/libc-compat.h>
diff --git a/libc/kernel/uapi/linux/if_addr.h b/libc/kernel/uapi/linux/if_addr.h
index a225e69..aa27d70 100644
--- a/libc/kernel/uapi/linux/if_addr.h
+++ b/libc/kernel/uapi/linux/if_addr.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __LINUX_IF_ADDR_H
 #define __LINUX_IF_ADDR_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/if_addrlabel.h b/libc/kernel/uapi/linux/if_addrlabel.h
index cf73767..c622b87 100644
--- a/libc/kernel/uapi/linux/if_addrlabel.h
+++ b/libc/kernel/uapi/linux/if_addrlabel.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __LINUX_IF_ADDRLABEL_H
 #define __LINUX_IF_ADDRLABEL_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/if_alg.h b/libc/kernel/uapi/linux/if_alg.h
index 41ba868..00e0123 100644
--- a/libc/kernel/uapi/linux/if_alg.h
+++ b/libc/kernel/uapi/linux/if_alg.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _LINUX_IF_ALG_H
 #define _LINUX_IF_ALG_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/if_arcnet.h b/libc/kernel/uapi/linux/if_arcnet.h
index 65b07e1..188ce17 100644
--- a/libc/kernel/uapi/linux/if_arcnet.h
+++ b/libc/kernel/uapi/linux/if_arcnet.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _LINUX_IF_ARCNET_H
 #define _LINUX_IF_ARCNET_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/if_arp.h b/libc/kernel/uapi/linux/if_arp.h
index 1cd23ef..787092c 100644
--- a/libc/kernel/uapi/linux/if_arp.h
+++ b/libc/kernel/uapi/linux/if_arp.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_IF_ARP_H
 #define _UAPI_LINUX_IF_ARP_H
 #include <linux/netdevice.h>
diff --git a/libc/kernel/uapi/linux/if_bonding.h b/libc/kernel/uapi/linux/if_bonding.h
index 60abfde..304dcf3 100644
--- a/libc/kernel/uapi/linux/if_bonding.h
+++ b/libc/kernel/uapi/linux/if_bonding.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _LINUX_IF_BONDING_H
 #define _LINUX_IF_BONDING_H
 #include <linux/if.h>
diff --git a/libc/kernel/uapi/linux/if_bridge.h b/libc/kernel/uapi/linux/if_bridge.h
index 702363e..97c0fb6 100644
--- a/libc/kernel/uapi/linux/if_bridge.h
+++ b/libc/kernel/uapi/linux/if_bridge.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_IF_BRIDGE_H
 #define _UAPI_LINUX_IF_BRIDGE_H
 #include <linux/types.h>
@@ -435,6 +423,9 @@
   BRIDGE_VLANDB_ENTRY_TUNNEL_INFO,
   BRIDGE_VLANDB_ENTRY_STATS,
   BRIDGE_VLANDB_ENTRY_MCAST_ROUTER,
+  BRIDGE_VLANDB_ENTRY_MCAST_N_GROUPS,
+  BRIDGE_VLANDB_ENTRY_MCAST_MAX_GROUPS,
+  BRIDGE_VLANDB_ENTRY_NEIGH_SUPPRESS,
   __BRIDGE_VLANDB_ENTRY_MAX,
 };
 #define BRIDGE_VLANDB_ENTRY_MAX (__BRIDGE_VLANDB_ENTRY_MAX - 1)
@@ -504,6 +495,11 @@
   MDBA_MDB_EATTR_GROUP_MODE,
   MDBA_MDB_EATTR_SOURCE,
   MDBA_MDB_EATTR_RTPROT,
+  MDBA_MDB_EATTR_DST,
+  MDBA_MDB_EATTR_DST_PORT,
+  MDBA_MDB_EATTR_VNI,
+  MDBA_MDB_EATTR_IFINDEX,
+  MDBA_MDB_EATTR_SRC_VNI,
   __MDBA_MDB_EATTR_MAX
 };
 #define MDBA_MDB_EATTR_MAX (__MDBA_MDB_EATTR_MAX - 1)
@@ -574,11 +570,24 @@
 };
 #define MDBA_SET_ENTRY_MAX (__MDBA_SET_ENTRY_MAX - 1)
 enum {
+  MDBA_GET_ENTRY_UNSPEC,
+  MDBA_GET_ENTRY,
+  MDBA_GET_ENTRY_ATTRS,
+  __MDBA_GET_ENTRY_MAX,
+};
+#define MDBA_GET_ENTRY_MAX (__MDBA_GET_ENTRY_MAX - 1)
+enum {
   MDBE_ATTR_UNSPEC,
   MDBE_ATTR_SOURCE,
   MDBE_ATTR_SRC_LIST,
   MDBE_ATTR_GROUP_MODE,
   MDBE_ATTR_RTPROT,
+  MDBE_ATTR_DST,
+  MDBE_ATTR_DST_PORT,
+  MDBE_ATTR_VNI,
+  MDBE_ATTR_IFINDEX,
+  MDBE_ATTR_SRC_VNI,
+  MDBE_ATTR_STATE_MASK,
   __MDBE_ATTR_MAX,
 };
 #define MDBE_ATTR_MAX (__MDBE_ATTR_MAX - 1)
diff --git a/libc/kernel/uapi/linux/if_cablemodem.h b/libc/kernel/uapi/linux/if_cablemodem.h
index 172c287..79b3017 100644
--- a/libc/kernel/uapi/linux/if_cablemodem.h
+++ b/libc/kernel/uapi/linux/if_cablemodem.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _LINUX_CABLEMODEM_H_
 #define _LINUX_CABLEMODEM_H_
 #define SIOCGCMSTATS (SIOCDEVPRIVATE + 0)
diff --git a/libc/kernel/uapi/linux/if_eql.h b/libc/kernel/uapi/linux/if_eql.h
index 11432ce..4c37377 100644
--- a/libc/kernel/uapi/linux/if_eql.h
+++ b/libc/kernel/uapi/linux/if_eql.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_IF_EQL_H
 #define _UAPI_LINUX_IF_EQL_H
 #define EQL_DEFAULT_SLAVE_PRIORITY 28800
diff --git a/libc/kernel/uapi/linux/if_ether.h b/libc/kernel/uapi/linux/if_ether.h
index 6043921..0a0c632 100644
--- a/libc/kernel/uapi/linux/if_ether.h
+++ b/libc/kernel/uapi/linux/if_ether.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_IF_ETHER_H
 #define _UAPI_LINUX_IF_ETHER_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/if_fc.h b/libc/kernel/uapi/linux/if_fc.h
index b655178..52a1890 100644
--- a/libc/kernel/uapi/linux/if_fc.h
+++ b/libc/kernel/uapi/linux/if_fc.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _LINUX_IF_FC_H
 #define _LINUX_IF_FC_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/if_fddi.h b/libc/kernel/uapi/linux/if_fddi.h
index 4b5074b..6f26604 100644
--- a/libc/kernel/uapi/linux/if_fddi.h
+++ b/libc/kernel/uapi/linux/if_fddi.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_IF_FDDI_H
 #define _UAPI_LINUX_IF_FDDI_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/if_hippi.h b/libc/kernel/uapi/linux/if_hippi.h
index 29691d9..a17d118 100644
--- a/libc/kernel/uapi/linux/if_hippi.h
+++ b/libc/kernel/uapi/linux/if_hippi.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _LINUX_IF_HIPPI_H
 #define _LINUX_IF_HIPPI_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/if_infiniband.h b/libc/kernel/uapi/linux/if_infiniband.h
index 7f1a58c..185fbd5 100644
--- a/libc/kernel/uapi/linux/if_infiniband.h
+++ b/libc/kernel/uapi/linux/if_infiniband.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _LINUX_IF_INFINIBAND_H
 #define _LINUX_IF_INFINIBAND_H
 #define INFINIBAND_ALEN 20
diff --git a/libc/kernel/uapi/linux/if_link.h b/libc/kernel/uapi/linux/if_link.h
index 19c6346..c2483a2 100644
--- a/libc/kernel/uapi/linux/if_link.h
+++ b/libc/kernel/uapi/linux/if_link.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_IF_LINK_H
 #define _UAPI_LINUX_IF_LINK_H
 #include <linux/types.h>
@@ -167,6 +155,9 @@
   IFLA_TSO_MAX_SEGS,
   IFLA_ALLMULTI,
   IFLA_DEVLINK_PORT,
+  IFLA_GSO_IPV4_MAX_SIZE,
+  IFLA_GRO_IPV4_MAX_SIZE,
+  IFLA_DPLL_PIN,
   __IFLA_MAX
 };
 #define IFLA_MAX (__IFLA_MAX - 1)
@@ -254,6 +245,8 @@
   IFLA_BR_VLAN_STATS_PER_PORT,
   IFLA_BR_MULTI_BOOLOPT,
   IFLA_BR_MCAST_QUERIER_STATE,
+  IFLA_BR_FDB_N_LEARNED,
+  IFLA_BR_FDB_MAX_LEARNED,
   __IFLA_BR_MAX,
 };
 #define IFLA_BR_MAX (__IFLA_BR_MAX - 1)
@@ -307,6 +300,10 @@
   IFLA_BRPORT_MCAST_EHT_HOSTS_CNT,
   IFLA_BRPORT_LOCKED,
   IFLA_BRPORT_MAB,
+  IFLA_BRPORT_MCAST_N_GROUPS,
+  IFLA_BRPORT_MCAST_MAX_GROUPS,
+  IFLA_BRPORT_NEIGH_VLAN_SUPPRESS,
+  IFLA_BRPORT_BACKUP_NHID,
   __IFLA_BRPORT_MAX
 };
 #define IFLA_BRPORT_MAX (__IFLA_BRPORT_MAX - 1)
@@ -360,6 +357,7 @@
   IFLA_MACVLAN_MACADDR_COUNT,
   IFLA_MACVLAN_BC_QUEUE_LEN,
   IFLA_MACVLAN_BC_QUEUE_LEN_USED,
+  IFLA_MACVLAN_BC_CUTOFF,
   __IFLA_MACVLAN_MAX,
 };
 #define IFLA_MACVLAN_MAX (__IFLA_MACVLAN_MAX - 1)
@@ -453,6 +451,26 @@
   __u16 reserved2;
   __u32 ifindex;
 };
+enum netkit_action {
+  NETKIT_NEXT = - 1,
+  NETKIT_PASS = 0,
+  NETKIT_DROP = 2,
+  NETKIT_REDIRECT = 7,
+};
+enum netkit_mode {
+  NETKIT_L2,
+  NETKIT_L3,
+};
+enum {
+  IFLA_NETKIT_UNSPEC,
+  IFLA_NETKIT_PEER_INFO,
+  IFLA_NETKIT_PRIMARY,
+  IFLA_NETKIT_POLICY,
+  IFLA_NETKIT_PEER_POLICY,
+  IFLA_NETKIT_MODE,
+  __IFLA_NETKIT_MAX,
+};
+#define IFLA_NETKIT_MAX (__IFLA_NETKIT_MAX - 1)
 #define TUNNEL_MSG_FLAG_STATS 0x01
 #define TUNNEL_MSG_VALID_USER_FLAGS TUNNEL_MSG_FLAG_STATS
 enum {
@@ -517,6 +535,8 @@
   IFLA_VXLAN_TTL_INHERIT,
   IFLA_VXLAN_DF,
   IFLA_VXLAN_VNIFILTER,
+  IFLA_VXLAN_LOCALBYPASS,
+  IFLA_VXLAN_LABEL_POLICY,
   __IFLA_VXLAN_MAX
 };
 #define IFLA_VXLAN_MAX (__IFLA_VXLAN_MAX - 1)
@@ -531,6 +551,12 @@
   __VXLAN_DF_END,
   VXLAN_DF_MAX = __VXLAN_DF_END - 1,
 };
+enum ifla_vxlan_label_policy {
+  VXLAN_LABEL_FIXED = 0,
+  VXLAN_LABEL_INHERIT = 1,
+  __VXLAN_LABEL_END,
+  VXLAN_LABEL_MAX = __VXLAN_LABEL_END - 1,
+};
 enum {
   IFLA_GENEVE_UNSPEC,
   IFLA_GENEVE_ID,
@@ -584,6 +610,8 @@
   IFLA_GTP_ROLE,
   IFLA_GTP_CREATE_SOCKETS,
   IFLA_GTP_RESTART_COUNT,
+  IFLA_GTP_LOCAL,
+  IFLA_GTP_LOCAL6,
   __IFLA_GTP_MAX,
 };
 #define IFLA_GTP_MAX (__IFLA_GTP_MAX - 1)
@@ -620,6 +648,7 @@
   IFLA_BOND_AD_LACP_ACTIVE,
   IFLA_BOND_MISSED_MAX,
   IFLA_BOND_NS_IP6_TARGET,
+  IFLA_BOND_COUPLED_CONTROL,
   __IFLA_BOND_MAX,
 };
 #define IFLA_BOND_MAX (__IFLA_BOND_MAX - 1)
@@ -818,6 +847,7 @@
   IFLA_HSR_SEQ_NR,
   IFLA_HSR_VERSION,
   IFLA_HSR_PROTOCOL,
+  IFLA_HSR_INTERLINK,
   __IFLA_HSR_MAX,
 };
 #define IFLA_HSR_MAX (__IFLA_HSR_MAX - 1)
@@ -943,7 +973,8 @@
 #define IFLA_MCTP_MAX (__IFLA_MCTP_MAX - 1)
 enum {
   IFLA_DSA_UNSPEC,
-  IFLA_DSA_MASTER,
+  IFLA_DSA_CONDUIT,
+  IFLA_DSA_MASTER = IFLA_DSA_CONDUIT,
   __IFLA_DSA_MAX,
 };
 #define IFLA_DSA_MAX (__IFLA_DSA_MAX - 1)
diff --git a/libc/kernel/uapi/linux/if_ltalk.h b/libc/kernel/uapi/linux/if_ltalk.h
index 9dbd6ec..bc6c1a8 100644
--- a/libc/kernel/uapi/linux/if_ltalk.h
+++ b/libc/kernel/uapi/linux/if_ltalk.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI__LINUX_LTALK_H
 #define _UAPI__LINUX_LTALK_H
 #define LTALK_HLEN 1
diff --git a/libc/kernel/uapi/linux/if_macsec.h b/libc/kernel/uapi/linux/if_macsec.h
index 7b51f80..dfcdfbd 100644
--- a/libc/kernel/uapi/linux/if_macsec.h
+++ b/libc/kernel/uapi/linux/if_macsec.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_MACSEC_H
 #define _UAPI_MACSEC_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/if_packet.h b/libc/kernel/uapi/linux/if_packet.h
index 340b2ee..362b5b7 100644
--- a/libc/kernel/uapi/linux/if_packet.h
+++ b/libc/kernel/uapi/linux/if_packet.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __LINUX_IF_PACKET_H
 #define __LINUX_IF_PACKET_H
 #include <asm/byteorder.h>
@@ -65,6 +53,7 @@
 #define PACKET_ROLLOVER_STATS 21
 #define PACKET_FANOUT_DATA 22
 #define PACKET_IGNORE_OUTGOING 23
+#define PACKET_VNET_HDR_SZ 24
 #define PACKET_FANOUT_HASH 0
 #define PACKET_FANOUT_LB 1
 #define PACKET_FANOUT_CPU 2
@@ -113,6 +102,7 @@
 #define TP_STATUS_BLK_TMO (1 << 5)
 #define TP_STATUS_VLAN_TPID_VALID (1 << 6)
 #define TP_STATUS_CSUM_VALID (1 << 7)
+#define TP_STATUS_GSO_TCP (1 << 8)
 #define TP_STATUS_AVAILABLE 0
 #define TP_STATUS_SEND_REQUEST (1 << 0)
 #define TP_STATUS_SENDING (1 << 1)
diff --git a/libc/kernel/uapi/linux/if_phonet.h b/libc/kernel/uapi/linux/if_phonet.h
index 058d0d9..9f27e64 100644
--- a/libc/kernel/uapi/linux/if_phonet.h
+++ b/libc/kernel/uapi/linux/if_phonet.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPILINUX_IF_PHONET_H
 #define _UAPILINUX_IF_PHONET_H
 #define PHONET_MIN_MTU 6
diff --git a/libc/kernel/uapi/linux/if_plip.h b/libc/kernel/uapi/linux/if_plip.h
index 4cd6beb..cef0d6d 100644
--- a/libc/kernel/uapi/linux/if_plip.h
+++ b/libc/kernel/uapi/linux/if_plip.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _LINUX_IF_PLIP_H
 #define _LINUX_IF_PLIP_H
 #include <linux/sockios.h>
diff --git a/libc/kernel/uapi/linux/if_ppp.h b/libc/kernel/uapi/linux/if_ppp.h
index 68f3ce5..900c5eb 100644
--- a/libc/kernel/uapi/linux/if_ppp.h
+++ b/libc/kernel/uapi/linux/if_ppp.h
@@ -1,19 +1,7 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #include <linux/ppp-ioctl.h>
diff --git a/libc/kernel/uapi/linux/if_pppol2tp.h b/libc/kernel/uapi/linux/if_pppol2tp.h
index 1ca3238..f2f6a97 100644
--- a/libc/kernel/uapi/linux/if_pppol2tp.h
+++ b/libc/kernel/uapi/linux/if_pppol2tp.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI__LINUX_IF_PPPOL2TP_H
 #define _UAPI__LINUX_IF_PPPOL2TP_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/if_pppox.h b/libc/kernel/uapi/linux/if_pppox.h
index 2acafdf..580ffd9 100644
--- a/libc/kernel/uapi/linux/if_pppox.h
+++ b/libc/kernel/uapi/linux/if_pppox.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI__LINUX_IF_PPPOX_H
 #define _UAPI__LINUX_IF_PPPOX_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/if_slip.h b/libc/kernel/uapi/linux/if_slip.h
index 845fec3..c7e4751 100644
--- a/libc/kernel/uapi/linux/if_slip.h
+++ b/libc/kernel/uapi/linux/if_slip.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __LINUX_SLIP_H
 #define __LINUX_SLIP_H
 #define SL_MODE_SLIP 0
diff --git a/libc/kernel/uapi/linux/if_team.h b/libc/kernel/uapi/linux/if_team.h
index 2f591e0..9985f63 100644
--- a/libc/kernel/uapi/linux/if_team.h
+++ b/libc/kernel/uapi/linux/if_team.h
@@ -1,45 +1,28 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef _UAPI_LINUX_IF_TEAM_H_
-#define _UAPI_LINUX_IF_TEAM_H_
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
+#ifndef _UAPI_LINUX_IF_TEAM_H
+#define _UAPI_LINUX_IF_TEAM_H
+#define TEAM_GENL_NAME "team"
+#define TEAM_GENL_VERSION 1
 #define TEAM_STRING_MAX_LEN 32
-enum {
-  TEAM_CMD_NOOP,
-  TEAM_CMD_OPTIONS_SET,
-  TEAM_CMD_OPTIONS_GET,
-  TEAM_CMD_PORT_LIST_GET,
-  __TEAM_CMD_MAX,
-  TEAM_CMD_MAX = (__TEAM_CMD_MAX - 1),
-};
+#define TEAM_GENL_CHANGE_EVENT_MC_GRP_NAME "change_event"
 enum {
   TEAM_ATTR_UNSPEC,
   TEAM_ATTR_TEAM_IFINDEX,
   TEAM_ATTR_LIST_OPTION,
   TEAM_ATTR_LIST_PORT,
   __TEAM_ATTR_MAX,
-  TEAM_ATTR_MAX = __TEAM_ATTR_MAX - 1,
+  TEAM_ATTR_MAX = (__TEAM_ATTR_MAX - 1)
 };
 enum {
   TEAM_ATTR_ITEM_OPTION_UNSPEC,
   TEAM_ATTR_ITEM_OPTION,
   __TEAM_ATTR_ITEM_OPTION_MAX,
-  TEAM_ATTR_ITEM_OPTION_MAX = __TEAM_ATTR_ITEM_OPTION_MAX - 1,
+  TEAM_ATTR_ITEM_OPTION_MAX = (__TEAM_ATTR_ITEM_OPTION_MAX - 1)
 };
 enum {
   TEAM_ATTR_OPTION_UNSPEC,
@@ -51,13 +34,13 @@
   TEAM_ATTR_OPTION_PORT_IFINDEX,
   TEAM_ATTR_OPTION_ARRAY_INDEX,
   __TEAM_ATTR_OPTION_MAX,
-  TEAM_ATTR_OPTION_MAX = __TEAM_ATTR_OPTION_MAX - 1,
+  TEAM_ATTR_OPTION_MAX = (__TEAM_ATTR_OPTION_MAX - 1)
 };
 enum {
   TEAM_ATTR_ITEM_PORT_UNSPEC,
   TEAM_ATTR_ITEM_PORT,
   __TEAM_ATTR_ITEM_PORT_MAX,
-  TEAM_ATTR_ITEM_PORT_MAX = __TEAM_ATTR_ITEM_PORT_MAX - 1,
+  TEAM_ATTR_ITEM_PORT_MAX = (__TEAM_ATTR_ITEM_PORT_MAX - 1)
 };
 enum {
   TEAM_ATTR_PORT_UNSPEC,
@@ -68,9 +51,14 @@
   TEAM_ATTR_PORT_DUPLEX,
   TEAM_ATTR_PORT_REMOVED,
   __TEAM_ATTR_PORT_MAX,
-  TEAM_ATTR_PORT_MAX = __TEAM_ATTR_PORT_MAX - 1,
+  TEAM_ATTR_PORT_MAX = (__TEAM_ATTR_PORT_MAX - 1)
 };
-#define TEAM_GENL_NAME "team"
-#define TEAM_GENL_VERSION 0x1
-#define TEAM_GENL_CHANGE_EVENT_MC_GRP_NAME "change_event"
+enum {
+  TEAM_CMD_NOOP,
+  TEAM_CMD_OPTIONS_SET,
+  TEAM_CMD_OPTIONS_GET,
+  TEAM_CMD_PORT_LIST_GET,
+  __TEAM_CMD_MAX,
+  TEAM_CMD_MAX = (__TEAM_CMD_MAX - 1)
+};
 #endif
diff --git a/libc/kernel/uapi/linux/if_tun.h b/libc/kernel/uapi/linux/if_tun.h
index 93bac9c..284ab2e 100644
--- a/libc/kernel/uapi/linux/if_tun.h
+++ b/libc/kernel/uapi/linux/if_tun.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI__IF_TUN_H
 #define _UAPI__IF_TUN_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/if_tunnel.h b/libc/kernel/uapi/linux/if_tunnel.h
index 9b85568..fa6825a 100644
--- a/libc/kernel/uapi/linux/if_tunnel.h
+++ b/libc/kernel/uapi/linux/if_tunnel.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_IF_TUNNEL_H_
 #define _UAPI_IF_TUNNEL_H_
 #include <linux/types.h>
@@ -171,4 +159,26 @@
 #define TUNNEL_ERSPAN_OPT __cpu_to_be16(0x4000)
 #define TUNNEL_GTP_OPT __cpu_to_be16(0x8000)
 #define TUNNEL_OPTIONS_PRESENT (TUNNEL_GENEVE_OPT | TUNNEL_VXLAN_OPT | TUNNEL_ERSPAN_OPT | TUNNEL_GTP_OPT)
+enum {
+  IP_TUNNEL_CSUM_BIT = 0U,
+  IP_TUNNEL_ROUTING_BIT,
+  IP_TUNNEL_KEY_BIT,
+  IP_TUNNEL_SEQ_BIT,
+  IP_TUNNEL_STRICT_BIT,
+  IP_TUNNEL_REC_BIT,
+  IP_TUNNEL_VERSION_BIT,
+  IP_TUNNEL_NO_KEY_BIT,
+  IP_TUNNEL_DONT_FRAGMENT_BIT,
+  IP_TUNNEL_OAM_BIT,
+  IP_TUNNEL_CRIT_OPT_BIT,
+  IP_TUNNEL_GENEVE_OPT_BIT,
+  IP_TUNNEL_VXLAN_OPT_BIT,
+  IP_TUNNEL_NOCACHE_BIT,
+  IP_TUNNEL_ERSPAN_OPT_BIT,
+  IP_TUNNEL_GTP_OPT_BIT,
+  IP_TUNNEL_VTI_BIT,
+  IP_TUNNEL_SIT_ISATAP_BIT = IP_TUNNEL_VTI_BIT,
+  IP_TUNNEL_PFCP_OPT_BIT,
+  __IP_TUNNEL_FLAG_NUM,
+};
 #endif
diff --git a/libc/kernel/uapi/linux/if_vlan.h b/libc/kernel/uapi/linux/if_vlan.h
index 8ca8900..17c6700 100644
--- a/libc/kernel/uapi/linux/if_vlan.h
+++ b/libc/kernel/uapi/linux/if_vlan.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_IF_VLAN_H_
 #define _UAPI_LINUX_IF_VLAN_H_
 enum vlan_ioctl_cmds {
diff --git a/libc/kernel/uapi/linux/if_x25.h b/libc/kernel/uapi/linux/if_x25.h
index e266f5e..9b2ad0a 100644
--- a/libc/kernel/uapi/linux/if_x25.h
+++ b/libc/kernel/uapi/linux/if_x25.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _IF_X25_H
 #define _IF_X25_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/if_xdp.h b/libc/kernel/uapi/linux/if_xdp.h
index d2b6bfd..7201e06 100644
--- a/libc/kernel/uapi/linux/if_xdp.h
+++ b/libc/kernel/uapi/linux/if_xdp.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _LINUX_IF_XDP_H
 #define _LINUX_IF_XDP_H
 #include <linux/types.h>
@@ -23,7 +11,10 @@
 #define XDP_COPY (1 << 1)
 #define XDP_ZEROCOPY (1 << 2)
 #define XDP_USE_NEED_WAKEUP (1 << 3)
+#define XDP_USE_SG (1 << 4)
 #define XDP_UMEM_UNALIGNED_CHUNK_FLAG (1 << 0)
+#define XDP_UMEM_TX_SW_CSUM (1 << 1)
+#define XDP_UMEM_TX_METADATA_LEN (1 << 2)
 struct sockaddr_xdp {
   __u16 sxdp_family;
   __u16 sxdp_flags;
@@ -58,6 +49,7 @@
   __u32 chunk_size;
   __u32 headroom;
   __u32 flags;
+  __u32 tx_metadata_len;
 };
 struct xdp_statistics {
   __u64 rx_dropped;
@@ -77,9 +69,25 @@
 #define XDP_UMEM_PGOFF_COMPLETION_RING 0x180000000ULL
 #define XSK_UNALIGNED_BUF_OFFSET_SHIFT 48
 #define XSK_UNALIGNED_BUF_ADDR_MASK ((1ULL << XSK_UNALIGNED_BUF_OFFSET_SHIFT) - 1)
+#define XDP_TXMD_FLAGS_TIMESTAMP (1 << 0)
+#define XDP_TXMD_FLAGS_CHECKSUM (1 << 1)
+struct xsk_tx_metadata {
+  __u64 flags;
+  union {
+    struct {
+      __u16 csum_start;
+      __u16 csum_offset;
+    } request;
+    struct {
+      __u64 tx_timestamp;
+    } completion;
+  };
+};
 struct xdp_desc {
   __u64 addr;
   __u32 len;
   __u32 options;
 };
+#define XDP_PKT_CONTD (1 << 0)
+#define XDP_TX_METADATA (1 << 1)
 #endif
diff --git a/libc/kernel/uapi/linux/ife.h b/libc/kernel/uapi/linux/ife.h
index 0cfc583..fbf80da 100644
--- a/libc/kernel/uapi/linux/ife.h
+++ b/libc/kernel/uapi/linux/ife.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __UAPI_IFE_H
 #define __UAPI_IFE_H
 #define IFE_METAHDRLEN 2
diff --git a/libc/kernel/uapi/linux/igmp.h b/libc/kernel/uapi/linux/igmp.h
index 71c2c8d..c429668 100644
--- a/libc/kernel/uapi/linux/igmp.h
+++ b/libc/kernel/uapi/linux/igmp.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_IGMP_H
 #define _UAPI_LINUX_IGMP_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/iio/buffer.h b/libc/kernel/uapi/linux/iio/buffer.h
index ba2f5e3..7e03a8c 100644
--- a/libc/kernel/uapi/linux/iio/buffer.h
+++ b/libc/kernel/uapi/linux/iio/buffer.h
@@ -1,22 +1,21 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_IIO_BUFFER_H_
 #define _UAPI_IIO_BUFFER_H_
+#include <linux/types.h>
+#define IIO_BUFFER_DMABUF_CYCLIC (1 << 0)
+#define IIO_BUFFER_DMABUF_SUPPORTED_FLAGS 0x00000001
+struct iio_dmabuf {
+  __u32 fd;
+  __u32 flags;
+  __u64 bytes_used;
+};
 #define IIO_BUFFER_GET_FD_IOCTL _IOWR('i', 0x91, int)
+#define IIO_BUFFER_DMABUF_ATTACH_IOCTL _IOW('i', 0x92, int)
+#define IIO_BUFFER_DMABUF_DETACH_IOCTL _IOW('i', 0x93, int)
+#define IIO_BUFFER_DMABUF_ENQUEUE_IOCTL _IOW('i', 0x94, struct iio_dmabuf)
 #endif
diff --git a/libc/kernel/uapi/linux/iio/events.h b/libc/kernel/uapi/linux/iio/events.h
index 5a23eef..3c98a6f 100644
--- a/libc/kernel/uapi/linux/iio/events.h
+++ b/libc/kernel/uapi/linux/iio/events.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_IIO_EVENTS_H_
 #define _UAPI_IIO_EVENTS_H_
 #include <linux/ioctl.h>
diff --git a/libc/kernel/uapi/linux/iio/types.h b/libc/kernel/uapi/linux/iio/types.h
index af7bdda..f40cb95 100644
--- a/libc/kernel/uapi/linux/iio/types.h
+++ b/libc/kernel/uapi/linux/iio/types.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_IIO_TYPES_H_
 #define _UAPI_IIO_TYPES_H_
 enum iio_chan_type {
@@ -54,6 +42,10 @@
   IIO_POSITIONRELATIVE,
   IIO_PHASE,
   IIO_MASSCONCENTRATION,
+  IIO_DELTA_ANGL,
+  IIO_DELTA_VELOCITY,
+  IIO_COLORTEMP,
+  IIO_CHROMATICITY,
 };
 enum iio_modifier {
   IIO_NO_MOD,
@@ -107,6 +99,8 @@
   IIO_MOD_PITCH,
   IIO_MOD_YAW,
   IIO_MOD_ROLL,
+  IIO_MOD_LIGHT_UVA,
+  IIO_MOD_LIGHT_UVB,
 };
 enum iio_event_type {
   IIO_EV_TYPE_THRESH,
diff --git a/libc/kernel/uapi/linux/ila.h b/libc/kernel/uapi/linux/ila.h
index 75de8eb..fefc495 100644
--- a/libc/kernel/uapi/linux/ila.h
+++ b/libc/kernel/uapi/linux/ila.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_ILA_H
 #define _UAPI_LINUX_ILA_H
 #define ILA_GENL_NAME "ila"
diff --git a/libc/kernel/uapi/linux/in.h b/libc/kernel/uapi/linux/in.h
index 53d3074..97bf493 100644
--- a/libc/kernel/uapi/linux/in.h
+++ b/libc/kernel/uapi/linux/in.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_IN_H
 #define _UAPI_LINUX_IN_H
 #include <bits/ip_msfilter.h>
@@ -81,6 +69,8 @@
 #define IPPROTO_ETHERNET IPPROTO_ETHERNET
   IPPROTO_RAW = 255,
 #define IPPROTO_RAW IPPROTO_RAW
+  IPPROTO_SMC = 256,
+#define IPPROTO_SMC IPPROTO_SMC
   IPPROTO_MPTCP = 262,
 #define IPPROTO_MPTCP IPPROTO_MPTCP
   IPPROTO_MAX
@@ -141,6 +131,8 @@
 #define MCAST_MSFILTER 48
 #define IP_MULTICAST_ALL 49
 #define IP_UNICAST_IF 50
+#define IP_LOCAL_PORT_RANGE 51
+#define IP_PROTOCOL 52
 #define MCAST_EXCLUDE 0
 #define MCAST_INCLUDE 1
 #define IP_DEFAULT_MULTICAST_TTL 1
@@ -158,32 +150,32 @@
 #define IP_MSFILTER_SIZE(numsrc) (sizeof(struct ip_msfilter) - sizeof(__u32) + (numsrc) * sizeof(__u32))
 struct group_req {
   __u32 gr_interface;
-  struct __kernel_sockaddr_storage gr_group;
+  struct sockaddr_storage gr_group;
 };
 struct group_source_req {
   __u32 gsr_interface;
-  struct __kernel_sockaddr_storage gsr_group;
-  struct __kernel_sockaddr_storage gsr_source;
+  struct sockaddr_storage gsr_group;
+  struct sockaddr_storage gsr_source;
 };
 struct group_filter {
   union {
     struct {
       __u32 gf_interface_aux;
-      struct __kernel_sockaddr_storage gf_group_aux;
+      struct sockaddr_storage gf_group_aux;
       __u32 gf_fmode_aux;
       __u32 gf_numsrc_aux;
-      struct __kernel_sockaddr_storage gf_slist[1];
+      struct sockaddr_storage gf_slist[1];
     };
     struct {
       __u32 gf_interface;
-      struct __kernel_sockaddr_storage gf_group;
+      struct sockaddr_storage gf_group;
       __u32 gf_fmode;
       __u32 gf_numsrc;
-      struct __kernel_sockaddr_storage gf_slist_flex[];
+      struct sockaddr_storage gf_slist_flex[];
     };
   };
 };
-#define GROUP_FILTER_SIZE(numsrc) (sizeof(struct group_filter) - sizeof(struct __kernel_sockaddr_storage) + (numsrc) * sizeof(struct __kernel_sockaddr_storage))
+#define GROUP_FILTER_SIZE(numsrc) (sizeof(struct group_filter) - sizeof(struct sockaddr_storage) + (numsrc) * sizeof(struct sockaddr_storage))
 #endif
 #if __UAPI_DEF_IN_PKTINFO
 struct in_pktinfo {
diff --git a/libc/kernel/uapi/linux/in6.h b/libc/kernel/uapi/linux/in6.h
index 49efe3c..2cede30 100644
--- a/libc/kernel/uapi/linux/in6.h
+++ b/libc/kernel/uapi/linux/in6.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_IN6_H
 #define _UAPI_LINUX_IN6_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/in_route.h b/libc/kernel/uapi/linux/in_route.h
index f7326e2..0d7fc9a 100644
--- a/libc/kernel/uapi/linux/in_route.h
+++ b/libc/kernel/uapi/linux/in_route.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _LINUX_IN_ROUTE_H
 #define _LINUX_IN_ROUTE_H
 #define RTCF_DEAD RTNH_F_DEAD
diff --git a/libc/kernel/uapi/linux/incrementalfs.h b/libc/kernel/uapi/linux/incrementalfs.h
index 0804cc2..65b554c 100644
--- a/libc/kernel/uapi/linux/incrementalfs.h
+++ b/libc/kernel/uapi/linux/incrementalfs.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_INCREMENTALFS_H
 #define _UAPI_LINUX_INCREMENTALFS_H
 #include <linux/limits.h>
diff --git a/libc/kernel/uapi/linux/inet_diag.h b/libc/kernel/uapi/linux/inet_diag.h
index 27f390b..6d559bb 100644
--- a/libc/kernel/uapi/linux/inet_diag.h
+++ b/libc/kernel/uapi/linux/inet_diag.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_INET_DIAG_H_
 #define _UAPI_INET_DIAG_H_
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/inotify.h b/libc/kernel/uapi/linux/inotify.h
index 3b4b577..764e7d8 100644
--- a/libc/kernel/uapi/linux/inotify.h
+++ b/libc/kernel/uapi/linux/inotify.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_INOTIFY_H
 #define _UAPI_LINUX_INOTIFY_H
 #include <linux/fcntl.h>
diff --git a/libc/kernel/uapi/linux/input-event-codes.h b/libc/kernel/uapi/linux/input-event-codes.h
index 712a9db..4f93d5e 100644
--- a/libc/kernel/uapi/linux/input-event-codes.h
+++ b/libc/kernel/uapi/linux/input-event-codes.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_INPUT_EVENT_CODES_H
 #define _UAPI_INPUT_EVENT_CODES_H
 #define INPUT_PROP_POINTER 0x00
@@ -540,6 +528,7 @@
 #define BTN_DPAD_RIGHT 0x223
 #define KEY_ALS_TOGGLE 0x230
 #define KEY_ROTATE_LOCK_TOGGLE 0x231
+#define KEY_REFRESH_RATE_TOGGLE 0x232
 #define KEY_BUTTONCONFIG 0x240
 #define KEY_TASKMANAGER 0x241
 #define KEY_JOURNAL 0x242
@@ -554,6 +543,8 @@
 #define KEY_CAMERA_ACCESS_ENABLE 0x24b
 #define KEY_CAMERA_ACCESS_DISABLE 0x24c
 #define KEY_CAMERA_ACCESS_TOGGLE 0x24d
+#define KEY_ACCESSIBILITY 0x24e
+#define KEY_DO_NOT_DISTURB 0x24f
 #define KEY_BRIGHTNESS_MIN 0x250
 #define KEY_BRIGHTNESS_MAX 0x251
 #define KEY_KBDINPUTASSIST_PREV 0x260
diff --git a/libc/kernel/uapi/linux/input.h b/libc/kernel/uapi/linux/input.h
index 1df1398..e107211 100644
--- a/libc/kernel/uapi/linux/input.h
+++ b/libc/kernel/uapi/linux/input.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_INPUT_H
 #define _UAPI_INPUT_H
 #include <sys/time.h>
diff --git a/libc/kernel/uapi/linux/io_uring.h b/libc/kernel/uapi/linux/io_uring.h
index 5561448..6b4f2ea 100644
--- a/libc/kernel/uapi/linux/io_uring.h
+++ b/libc/kernel/uapi/linux/io_uring.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef LINUX_IO_URING_H
 #define LINUX_IO_URING_H
 #include <linux/fs.h>
@@ -42,6 +30,10 @@
   union {
     __u64 addr;
     __u64 splice_off_in;
+    struct {
+      __u32 level;
+      __u32 optname;
+    };
   };
   __u32 len;
   union {
@@ -64,6 +56,10 @@
     __u32 xattr_flags;
     __u32 msg_ring_flags;
     __u32 uring_cmd_flags;
+    __u32 waitid_flags;
+    __u32 futex_flags;
+    __u32 install_fd_flags;
+    __u32 nop_flags;
   };
   __u64 user_data;
   union {
@@ -74,6 +70,7 @@
   union {
     __s32 splice_fd_in;
     __u32 file_index;
+    __u32 optlen;
     struct {
       __u16 addr_len;
       __u16 __pad3[1];
@@ -84,11 +81,12 @@
       __u64 addr3;
       __u64 __pad2[1];
     };
+    __u64 optval;
     __u8 cmd[0];
   };
 };
 #define IORING_FILE_INDEX_ALLOC (~0U)
-enum {
+enum io_uring_sqe_flags_bit {
   IOSQE_FIXED_FILE_BIT,
   IOSQE_IO_DRAIN_BIT,
   IOSQE_IO_LINK_BIT,
@@ -118,6 +116,9 @@
 #define IORING_SETUP_CQE32 (1U << 11)
 #define IORING_SETUP_SINGLE_ISSUER (1U << 12)
 #define IORING_SETUP_DEFER_TASKRUN (1U << 13)
+#define IORING_SETUP_NO_MMAP (1U << 14)
+#define IORING_SETUP_REGISTERED_FD_ONLY (1U << 15)
+#define IORING_SETUP_NO_SQARRAY (1U << 16)
 enum io_uring_op {
   IORING_OP_NOP,
   IORING_OP_READV,
@@ -168,9 +169,19 @@
   IORING_OP_URING_CMD,
   IORING_OP_SEND_ZC,
   IORING_OP_SENDMSG_ZC,
+  IORING_OP_READ_MULTISHOT,
+  IORING_OP_WAITID,
+  IORING_OP_FUTEX_WAIT,
+  IORING_OP_FUTEX_WAKE,
+  IORING_OP_FUTEX_WAITV,
+  IORING_OP_FIXED_FD_INSTALL,
+  IORING_OP_FTRUNCATE,
+  IORING_OP_BIND,
+  IORING_OP_LISTEN,
   IORING_OP_LAST,
 };
 #define IORING_URING_CMD_FIXED (1U << 0)
+#define IORING_URING_CMD_MASK IORING_URING_CMD_FIXED
 #define IORING_FSYNC_DATASYNC (1U << 0)
 #define IORING_TIMEOUT_ABS (1U << 0)
 #define IORING_TIMEOUT_UPDATE (1U << 1)
@@ -178,6 +189,7 @@
 #define IORING_TIMEOUT_REALTIME (1U << 3)
 #define IORING_LINK_TIMEOUT_UPDATE (1U << 4)
 #define IORING_TIMEOUT_ETIME_SUCCESS (1U << 5)
+#define IORING_TIMEOUT_MULTISHOT (1U << 6)
 #define IORING_TIMEOUT_CLOCK_MASK (IORING_TIMEOUT_BOOTTIME | IORING_TIMEOUT_REALTIME)
 #define IORING_TIMEOUT_UPDATE_MASK (IORING_TIMEOUT_UPDATE | IORING_LINK_TIMEOUT_UPDATE)
 #define SPLICE_F_FD_IN_FIXED (1U << 31)
@@ -189,17 +201,25 @@
 #define IORING_ASYNC_CANCEL_FD (1U << 1)
 #define IORING_ASYNC_CANCEL_ANY (1U << 2)
 #define IORING_ASYNC_CANCEL_FD_FIXED (1U << 3)
+#define IORING_ASYNC_CANCEL_USERDATA (1U << 4)
+#define IORING_ASYNC_CANCEL_OP (1U << 5)
 #define IORING_RECVSEND_POLL_FIRST (1U << 0)
 #define IORING_RECV_MULTISHOT (1U << 1)
 #define IORING_RECVSEND_FIXED_BUF (1U << 2)
 #define IORING_SEND_ZC_REPORT_USAGE (1U << 3)
+#define IORING_RECVSEND_BUNDLE (1U << 4)
 #define IORING_NOTIF_USAGE_ZC_COPIED (1U << 31)
 #define IORING_ACCEPT_MULTISHOT (1U << 0)
-enum {
+#define IORING_ACCEPT_DONTWAIT (1U << 1)
+#define IORING_ACCEPT_POLL_FIRST (1U << 2)
+enum io_uring_msg_ring_flags {
   IORING_MSG_DATA,
   IORING_MSG_SEND_FD,
 };
 #define IORING_MSG_RING_CQE_SKIP (1U << 0)
+#define IORING_MSG_RING_FLAGS_PASS (1U << 1)
+#define IORING_FIXED_FD_NO_CLOEXEC (1U << 0)
+#define IORING_NOP_INJECT_RESULT (1U << 0)
 struct io_uring_cqe {
   __u64 user_data;
   __s32 res;
@@ -210,12 +230,13 @@
 #define IORING_CQE_F_MORE (1U << 1)
 #define IORING_CQE_F_SOCK_NONEMPTY (1U << 2)
 #define IORING_CQE_F_NOTIF (1U << 3)
-enum {
-  IORING_CQE_BUFFER_SHIFT = 16,
-};
+#define IORING_CQE_BUFFER_SHIFT 16
 #define IORING_OFF_SQ_RING 0ULL
 #define IORING_OFF_CQ_RING 0x8000000ULL
 #define IORING_OFF_SQES 0x10000000ULL
+#define IORING_OFF_PBUF_RING 0x80000000ULL
+#define IORING_OFF_PBUF_SHIFT 16
+#define IORING_OFF_MMAP_MASK 0xf8000000ULL
 struct io_sqring_offsets {
   __u32 head;
   __u32 tail;
@@ -225,7 +246,7 @@
   __u32 dropped;
   __u32 array;
   __u32 resv1;
-  __u64 resv2;
+  __u64 user_addr;
 };
 #define IORING_SQ_NEED_WAKEUP (1U << 0)
 #define IORING_SQ_CQ_OVERFLOW (1U << 1)
@@ -239,7 +260,7 @@
   __u32 cqes;
   __u32 flags;
   __u32 resv1;
-  __u64 resv2;
+  __u64 user_addr;
 };
 #define IORING_CQ_EVENTFD_DISABLED (1U << 0)
 #define IORING_ENTER_GETEVENTS (1U << 0)
@@ -272,7 +293,9 @@
 #define IORING_FEAT_RSRC_TAGS (1U << 10)
 #define IORING_FEAT_CQE_SKIP (1U << 11)
 #define IORING_FEAT_LINKED_FILE (1U << 12)
-enum {
+#define IORING_FEAT_REG_REG_RING (1U << 13)
+#define IORING_FEAT_RECVSEND_BUNDLE (1U << 14)
+enum io_uring_register_op {
   IORING_REGISTER_BUFFERS = 0,
   IORING_UNREGISTER_BUFFERS = 1,
   IORING_REGISTER_FILES = 2,
@@ -299,9 +322,13 @@
   IORING_UNREGISTER_PBUF_RING = 23,
   IORING_REGISTER_SYNC_CANCEL = 24,
   IORING_REGISTER_FILE_ALLOC_RANGE = 25,
-  IORING_REGISTER_LAST
+  IORING_REGISTER_PBUF_STATUS = 26,
+  IORING_REGISTER_NAPI = 27,
+  IORING_UNREGISTER_NAPI = 28,
+  IORING_REGISTER_LAST,
+  IORING_REGISTER_USE_REGISTERED_RING = 1U << 31
 };
-enum {
+enum io_wq_type {
   IO_WQ_BOUND,
   IO_WQ_UNBOUND,
 };
@@ -331,17 +358,6 @@
   __u32 nr;
   __u32 resv2;
 };
-struct io_uring_notification_slot {
-  __u64 tag;
-  __u64 resv[3];
-};
-struct io_uring_notification_register {
-  __u32 nr_slots;
-  __u32 resv;
-  __u64 resv2;
-  __u64 data;
-  __u64 resv3;
-};
 #define IORING_REGISTER_FILES_SKIP (- 2)
 #define IO_URING_OP_SUPPORTED (1U << 0)
 struct io_uring_probe_op {
@@ -381,17 +397,31 @@
       __u16 resv3;
       __u16 tail;
     };
-    struct io_uring_buf bufs[0];
+    __DECLARE_FLEX_ARRAY(struct io_uring_buf, bufs);
   };
 };
+enum io_uring_register_pbuf_ring_flags {
+  IOU_PBUF_RING_MMAP = 1,
+};
 struct io_uring_buf_reg {
   __u64 ring_addr;
   __u32 ring_entries;
   __u16 bgid;
-  __u16 pad;
+  __u16 flags;
   __u64 resv[3];
 };
-enum {
+struct io_uring_buf_status {
+  __u32 buf_group;
+  __u32 head;
+  __u32 resv[8];
+};
+struct io_uring_napi {
+  __u32 busy_poll_to;
+  __u8 prefer_busy_poll;
+  __u8 pad[3];
+  __u64 resv;
+};
+enum io_uring_register_restriction_op {
   IORING_RESTRICTION_REGISTER_OP = 0,
   IORING_RESTRICTION_SQE_OP = 1,
   IORING_RESTRICTION_SQE_FLAGS_ALLOWED = 2,
@@ -409,7 +439,9 @@
   __s32 fd;
   __u32 flags;
   struct __kernel_timespec timeout;
-  __u64 pad[4];
+  __u8 opcode;
+  __u8 pad[7];
+  __u64 pad2[3];
 };
 struct io_uring_file_index_range {
   __u32 off;
@@ -422,6 +454,12 @@
   __u32 payloadlen;
   __u32 flags;
 };
+enum io_uring_socket_op {
+  SOCKET_URING_OP_SIOCINQ = 0,
+  SOCKET_URING_OP_SIOCOUTQ,
+  SOCKET_URING_OP_GETSOCKOPT,
+  SOCKET_URING_OP_SETSOCKOPT,
+};
 #ifdef __cplusplus
 }
 #endif
diff --git a/libc/kernel/uapi/linux/ioam6.h b/libc/kernel/uapi/linux/ioam6.h
index e32c8e9..51a2122 100644
--- a/libc/kernel/uapi/linux/ioam6.h
+++ b/libc/kernel/uapi/linux/ioam6.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_IOAM6_H
 #define _UAPI_LINUX_IOAM6_H
 #include <asm/byteorder.h>
@@ -58,6 +46,6 @@
 #error "Please fix <asm/byteorder.h>"
 #endif
 #define IOAM6_TRACE_DATA_SIZE_MAX 244
-  __u8 data[0];
+  __u8 data[];
 } __attribute__((packed));
 #endif
diff --git a/libc/kernel/uapi/linux/ioam6_genl.h b/libc/kernel/uapi/linux/ioam6_genl.h
index 1d00c47..216cd31 100644
--- a/libc/kernel/uapi/linux/ioam6_genl.h
+++ b/libc/kernel/uapi/linux/ioam6_genl.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_IOAM6_GENL_H
 #define _UAPI_LINUX_IOAM6_GENL_H
 #define IOAM6_GENL_NAME "IOAM6"
@@ -45,4 +33,18 @@
   __IOAM6_CMD_MAX,
 };
 #define IOAM6_CMD_MAX (__IOAM6_CMD_MAX - 1)
+#define IOAM6_GENL_EV_GRP_NAME "ioam6_events"
+enum ioam6_event_type {
+  IOAM6_EVENT_UNSPEC,
+  IOAM6_EVENT_TRACE,
+};
+enum ioam6_event_attr {
+  IOAM6_EVENT_ATTR_UNSPEC,
+  IOAM6_EVENT_ATTR_TRACE_NAMESPACE,
+  IOAM6_EVENT_ATTR_TRACE_NODELEN,
+  IOAM6_EVENT_ATTR_TRACE_TYPE,
+  IOAM6_EVENT_ATTR_TRACE_DATA,
+  __IOAM6_EVENT_ATTR_MAX
+};
+#define IOAM6_EVENT_ATTR_MAX (__IOAM6_EVENT_ATTR_MAX - 1)
 #endif
diff --git a/libc/kernel/uapi/linux/ioam6_iptunnel.h b/libc/kernel/uapi/linux/ioam6_iptunnel.h
index ec1a6a8..34317fc 100644
--- a/libc/kernel/uapi/linux/ioam6_iptunnel.h
+++ b/libc/kernel/uapi/linux/ioam6_iptunnel.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_IOAM6_IPTUNNEL_H
 #define _UAPI_LINUX_IOAM6_IPTUNNEL_H
 enum {
diff --git a/libc/kernel/uapi/linux/ioctl.h b/libc/kernel/uapi/linux/ioctl.h
index 98e3c06..08da063 100644
--- a/libc/kernel/uapi/linux/ioctl.h
+++ b/libc/kernel/uapi/linux/ioctl.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _LINUX_IOCTL_H
 #define _LINUX_IOCTL_H
 #include <asm/ioctl.h>
diff --git a/libc/kernel/uapi/linux/iommu.h b/libc/kernel/uapi/linux/iommu.h
deleted file mode 100644
index 0304a32..0000000
--- a/libc/kernel/uapi/linux/iommu.h
+++ /dev/null
@@ -1,88 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef _UAPI_IOMMU_H
-#define _UAPI_IOMMU_H
-#include <linux/types.h>
-#define IOMMU_FAULT_PERM_READ (1 << 0)
-#define IOMMU_FAULT_PERM_WRITE (1 << 1)
-#define IOMMU_FAULT_PERM_EXEC (1 << 2)
-#define IOMMU_FAULT_PERM_PRIV (1 << 3)
-enum iommu_fault_type {
-  IOMMU_FAULT_DMA_UNRECOV = 1,
-  IOMMU_FAULT_PAGE_REQ,
-};
-enum iommu_fault_reason {
-  IOMMU_FAULT_REASON_UNKNOWN = 0,
-  IOMMU_FAULT_REASON_PASID_FETCH,
-  IOMMU_FAULT_REASON_BAD_PASID_ENTRY,
-  IOMMU_FAULT_REASON_PASID_INVALID,
-  IOMMU_FAULT_REASON_WALK_EABT,
-  IOMMU_FAULT_REASON_PTE_FETCH,
-  IOMMU_FAULT_REASON_PERMISSION,
-  IOMMU_FAULT_REASON_ACCESS,
-  IOMMU_FAULT_REASON_OOR_ADDRESS,
-};
-struct iommu_fault_unrecoverable {
-  __u32 reason;
-#define IOMMU_FAULT_UNRECOV_PASID_VALID (1 << 0)
-#define IOMMU_FAULT_UNRECOV_ADDR_VALID (1 << 1)
-#define IOMMU_FAULT_UNRECOV_FETCH_ADDR_VALID (1 << 2)
-  __u32 flags;
-  __u32 pasid;
-  __u32 perm;
-  __u64 addr;
-  __u64 fetch_addr;
-};
-struct iommu_fault_page_request {
-#define IOMMU_FAULT_PAGE_REQUEST_PASID_VALID (1 << 0)
-#define IOMMU_FAULT_PAGE_REQUEST_LAST_PAGE (1 << 1)
-#define IOMMU_FAULT_PAGE_REQUEST_PRIV_DATA (1 << 2)
-#define IOMMU_FAULT_PAGE_RESPONSE_NEEDS_PASID (1 << 3)
-  __u32 flags;
-  __u32 pasid;
-  __u32 grpid;
-  __u32 perm;
-  __u64 addr;
-  __u64 private_data[2];
-};
-struct iommu_fault {
-  __u32 type;
-  __u32 padding;
-  union {
-    struct iommu_fault_unrecoverable event;
-    struct iommu_fault_page_request prm;
-    __u8 padding2[56];
-  };
-};
-enum iommu_page_response_code {
-  IOMMU_PAGE_RESP_SUCCESS = 0,
-  IOMMU_PAGE_RESP_INVALID,
-  IOMMU_PAGE_RESP_FAILURE,
-};
-struct iommu_page_response {
-  __u32 argsz;
-#define IOMMU_PAGE_RESP_VERSION_1 1
-  __u32 version;
-#define IOMMU_PAGE_RESP_PASID_VALID (1 << 0)
-  __u32 flags;
-  __u32 pasid;
-  __u32 grpid;
-  __u32 code;
-};
-#endif
diff --git a/libc/kernel/uapi/linux/iommufd.h b/libc/kernel/uapi/linux/iommufd.h
index b7f5815..6f663b4 100644
--- a/libc/kernel/uapi/linux/iommufd.h
+++ b/libc/kernel/uapi/linux/iommufd.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_IOMMUFD_H
 #define _UAPI_IOMMUFD_H
 #include <linux/types.h>
@@ -24,14 +12,20 @@
 enum {
   IOMMUFD_CMD_BASE = 0x80,
   IOMMUFD_CMD_DESTROY = IOMMUFD_CMD_BASE,
-  IOMMUFD_CMD_IOAS_ALLOC,
-  IOMMUFD_CMD_IOAS_ALLOW_IOVAS,
-  IOMMUFD_CMD_IOAS_COPY,
-  IOMMUFD_CMD_IOAS_IOVA_RANGES,
-  IOMMUFD_CMD_IOAS_MAP,
-  IOMMUFD_CMD_IOAS_UNMAP,
-  IOMMUFD_CMD_OPTION,
-  IOMMUFD_CMD_VFIO_IOAS,
+  IOMMUFD_CMD_IOAS_ALLOC = 0x81,
+  IOMMUFD_CMD_IOAS_ALLOW_IOVAS = 0x82,
+  IOMMUFD_CMD_IOAS_COPY = 0x83,
+  IOMMUFD_CMD_IOAS_IOVA_RANGES = 0x84,
+  IOMMUFD_CMD_IOAS_MAP = 0x85,
+  IOMMUFD_CMD_IOAS_UNMAP = 0x86,
+  IOMMUFD_CMD_OPTION = 0x87,
+  IOMMUFD_CMD_VFIO_IOAS = 0x88,
+  IOMMUFD_CMD_HWPT_ALLOC = 0x89,
+  IOMMUFD_CMD_GET_HW_INFO = 0x8a,
+  IOMMUFD_CMD_HWPT_SET_DIRTY_TRACKING = 0x8b,
+  IOMMUFD_CMD_HWPT_GET_DIRTY_BITMAP = 0x8c,
+  IOMMUFD_CMD_HWPT_INVALIDATE = 0x8d,
+  IOMMUFD_CMD_FAULT_QUEUE_ALLOC = 0x8e,
 };
 struct iommu_destroy {
   __u32 size;
@@ -126,4 +120,146 @@
   __u16 __reserved;
 };
 #define IOMMU_VFIO_IOAS _IO(IOMMUFD_TYPE, IOMMUFD_CMD_VFIO_IOAS)
+enum iommufd_hwpt_alloc_flags {
+  IOMMU_HWPT_ALLOC_NEST_PARENT = 1 << 0,
+  IOMMU_HWPT_ALLOC_DIRTY_TRACKING = 1 << 1,
+  IOMMU_HWPT_FAULT_ID_VALID = 1 << 2,
+};
+enum iommu_hwpt_vtd_s1_flags {
+  IOMMU_VTD_S1_SRE = 1 << 0,
+  IOMMU_VTD_S1_EAFE = 1 << 1,
+  IOMMU_VTD_S1_WPE = 1 << 2,
+};
+struct iommu_hwpt_vtd_s1 {
+  __aligned_u64 flags;
+  __aligned_u64 pgtbl_addr;
+  __u32 addr_width;
+  __u32 __reserved;
+};
+enum iommu_hwpt_data_type {
+  IOMMU_HWPT_DATA_NONE = 0,
+  IOMMU_HWPT_DATA_VTD_S1 = 1,
+};
+struct iommu_hwpt_alloc {
+  __u32 size;
+  __u32 flags;
+  __u32 dev_id;
+  __u32 pt_id;
+  __u32 out_hwpt_id;
+  __u32 __reserved;
+  __u32 data_type;
+  __u32 data_len;
+  __aligned_u64 data_uptr;
+  __u32 fault_id;
+  __u32 __reserved2;
+};
+#define IOMMU_HWPT_ALLOC _IO(IOMMUFD_TYPE, IOMMUFD_CMD_HWPT_ALLOC)
+enum iommu_hw_info_vtd_flags {
+  IOMMU_HW_INFO_VTD_ERRATA_772415_SPR17 = 1 << 0,
+};
+struct iommu_hw_info_vtd {
+  __u32 flags;
+  __u32 __reserved;
+  __aligned_u64 cap_reg;
+  __aligned_u64 ecap_reg;
+};
+enum iommu_hw_info_type {
+  IOMMU_HW_INFO_TYPE_NONE = 0,
+  IOMMU_HW_INFO_TYPE_INTEL_VTD = 1,
+};
+enum iommufd_hw_capabilities {
+  IOMMU_HW_CAP_DIRTY_TRACKING = 1 << 0,
+};
+struct iommu_hw_info {
+  __u32 size;
+  __u32 flags;
+  __u32 dev_id;
+  __u32 data_len;
+  __aligned_u64 data_uptr;
+  __u32 out_data_type;
+  __u32 __reserved;
+  __aligned_u64 out_capabilities;
+};
+#define IOMMU_GET_HW_INFO _IO(IOMMUFD_TYPE, IOMMUFD_CMD_GET_HW_INFO)
+enum iommufd_hwpt_set_dirty_tracking_flags {
+  IOMMU_HWPT_DIRTY_TRACKING_ENABLE = 1,
+};
+struct iommu_hwpt_set_dirty_tracking {
+  __u32 size;
+  __u32 flags;
+  __u32 hwpt_id;
+  __u32 __reserved;
+};
+#define IOMMU_HWPT_SET_DIRTY_TRACKING _IO(IOMMUFD_TYPE, IOMMUFD_CMD_HWPT_SET_DIRTY_TRACKING)
+enum iommufd_hwpt_get_dirty_bitmap_flags {
+  IOMMU_HWPT_GET_DIRTY_BITMAP_NO_CLEAR = 1,
+};
+struct iommu_hwpt_get_dirty_bitmap {
+  __u32 size;
+  __u32 hwpt_id;
+  __u32 flags;
+  __u32 __reserved;
+  __aligned_u64 iova;
+  __aligned_u64 length;
+  __aligned_u64 page_size;
+  __aligned_u64 data;
+};
+#define IOMMU_HWPT_GET_DIRTY_BITMAP _IO(IOMMUFD_TYPE, IOMMUFD_CMD_HWPT_GET_DIRTY_BITMAP)
+enum iommu_hwpt_invalidate_data_type {
+  IOMMU_HWPT_INVALIDATE_DATA_VTD_S1 = 0,
+};
+enum iommu_hwpt_vtd_s1_invalidate_flags {
+  IOMMU_VTD_INV_FLAGS_LEAF = 1 << 0,
+};
+struct iommu_hwpt_vtd_s1_invalidate {
+  __aligned_u64 addr;
+  __aligned_u64 npages;
+  __u32 flags;
+  __u32 __reserved;
+};
+struct iommu_hwpt_invalidate {
+  __u32 size;
+  __u32 hwpt_id;
+  __aligned_u64 data_uptr;
+  __u32 data_type;
+  __u32 entry_len;
+  __u32 entry_num;
+  __u32 __reserved;
+};
+#define IOMMU_HWPT_INVALIDATE _IO(IOMMUFD_TYPE, IOMMUFD_CMD_HWPT_INVALIDATE)
+enum iommu_hwpt_pgfault_flags {
+  IOMMU_PGFAULT_FLAGS_PASID_VALID = (1 << 0),
+  IOMMU_PGFAULT_FLAGS_LAST_PAGE = (1 << 1),
+};
+enum iommu_hwpt_pgfault_perm {
+  IOMMU_PGFAULT_PERM_READ = (1 << 0),
+  IOMMU_PGFAULT_PERM_WRITE = (1 << 1),
+  IOMMU_PGFAULT_PERM_EXEC = (1 << 2),
+  IOMMU_PGFAULT_PERM_PRIV = (1 << 3),
+};
+struct iommu_hwpt_pgfault {
+  __u32 flags;
+  __u32 dev_id;
+  __u32 pasid;
+  __u32 grpid;
+  __u32 perm;
+  __u64 addr;
+  __u32 length;
+  __u32 cookie;
+};
+enum iommufd_page_response_code {
+  IOMMUFD_PAGE_RESP_SUCCESS = 0,
+  IOMMUFD_PAGE_RESP_INVALID = 1,
+};
+struct iommu_hwpt_page_response {
+  __u32 cookie;
+  __u32 code;
+};
+struct iommu_fault_alloc {
+  __u32 size;
+  __u32 flags;
+  __u32 out_fault_id;
+  __u32 out_fault_fd;
+};
+#define IOMMU_FAULT_QUEUE_ALLOC _IO(IOMMUFD_TYPE, IOMMUFD_CMD_FAULT_QUEUE_ALLOC)
 #endif
diff --git a/libc/kernel/uapi/linux/ioprio.h b/libc/kernel/uapi/linux/ioprio.h
index 7a90d87..2b6a842 100644
--- a/libc/kernel/uapi/linux/ioprio.h
+++ b/libc/kernel/uapi/linux/ioprio.h
@@ -1,36 +1,30 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_IOPRIO_H
 #define _UAPI_LINUX_IOPRIO_H
+#include <linux/stddef.h>
+#include <linux/types.h>
 #define IOPRIO_CLASS_SHIFT 13
-#define IOPRIO_CLASS_MASK 0x07
+#define IOPRIO_NR_CLASSES 8
+#define IOPRIO_CLASS_MASK (IOPRIO_NR_CLASSES - 1)
 #define IOPRIO_PRIO_MASK ((1UL << IOPRIO_CLASS_SHIFT) - 1)
 #define IOPRIO_PRIO_CLASS(ioprio) (((ioprio) >> IOPRIO_CLASS_SHIFT) & IOPRIO_CLASS_MASK)
 #define IOPRIO_PRIO_DATA(ioprio) ((ioprio) & IOPRIO_PRIO_MASK)
-#define IOPRIO_PRIO_VALUE(class,data) ((((class) & IOPRIO_CLASS_MASK) << IOPRIO_CLASS_SHIFT) | ((data) & IOPRIO_PRIO_MASK))
 enum {
-  IOPRIO_CLASS_NONE,
-  IOPRIO_CLASS_RT,
-  IOPRIO_CLASS_BE,
-  IOPRIO_CLASS_IDLE,
+  IOPRIO_CLASS_NONE = 0,
+  IOPRIO_CLASS_RT = 1,
+  IOPRIO_CLASS_BE = 2,
+  IOPRIO_CLASS_IDLE = 3,
+  IOPRIO_CLASS_INVALID = 7,
 };
-#define IOPRIO_NR_LEVELS 8
+#define IOPRIO_LEVEL_NR_BITS 3
+#define IOPRIO_NR_LEVELS (1 << IOPRIO_LEVEL_NR_BITS)
+#define IOPRIO_LEVEL_MASK (IOPRIO_NR_LEVELS - 1)
+#define IOPRIO_PRIO_LEVEL(ioprio) ((ioprio) & IOPRIO_LEVEL_MASK)
 #define IOPRIO_BE_NR IOPRIO_NR_LEVELS
 enum {
   IOPRIO_WHO_PROCESS = 1,
@@ -39,4 +33,26 @@
 };
 #define IOPRIO_NORM 4
 #define IOPRIO_BE_NORM IOPRIO_NORM
+#define IOPRIO_HINT_SHIFT IOPRIO_LEVEL_NR_BITS
+#define IOPRIO_HINT_NR_BITS 10
+#define IOPRIO_NR_HINTS (1 << IOPRIO_HINT_NR_BITS)
+#define IOPRIO_HINT_MASK (IOPRIO_NR_HINTS - 1)
+#define IOPRIO_PRIO_HINT(ioprio) (((ioprio) >> IOPRIO_HINT_SHIFT) & IOPRIO_HINT_MASK)
+enum {
+  IOPRIO_HINT_NONE = 0,
+  IOPRIO_HINT_DEV_DURATION_LIMIT_1 = 1,
+  IOPRIO_HINT_DEV_DURATION_LIMIT_2 = 2,
+  IOPRIO_HINT_DEV_DURATION_LIMIT_3 = 3,
+  IOPRIO_HINT_DEV_DURATION_LIMIT_4 = 4,
+  IOPRIO_HINT_DEV_DURATION_LIMIT_5 = 5,
+  IOPRIO_HINT_DEV_DURATION_LIMIT_6 = 6,
+  IOPRIO_HINT_DEV_DURATION_LIMIT_7 = 7,
+};
+#define IOPRIO_BAD_VALUE(val,max) ((val) < 0 || (val) >= (max))
+static __always_inline __u16 ioprio_value(int prioclass, int priolevel, int priohint) {
+  if(IOPRIO_BAD_VALUE(prioclass, IOPRIO_NR_CLASSES) || IOPRIO_BAD_VALUE(priolevel, IOPRIO_NR_LEVELS) || IOPRIO_BAD_VALUE(priohint, IOPRIO_NR_HINTS)) return IOPRIO_CLASS_INVALID << IOPRIO_CLASS_SHIFT;
+  return(prioclass << IOPRIO_CLASS_SHIFT) | (priohint << IOPRIO_HINT_SHIFT) | priolevel;
+}
+#define IOPRIO_PRIO_VALUE(prioclass,priolevel) ioprio_value(prioclass, priolevel, IOPRIO_HINT_NONE)
+#define IOPRIO_PRIO_VALUE_HINT(prioclass,priolevel,priohint) ioprio_value(prioclass, priolevel, priohint)
 #endif
diff --git a/libc/kernel/uapi/linux/ip.h b/libc/kernel/uapi/linux/ip.h
index 9249f5c..332c447 100644
--- a/libc/kernel/uapi/linux/ip.h
+++ b/libc/kernel/uapi/linux/ip.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_IP_H
 #define _UAPI_LINUX_IP_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/ip6_tunnel.h b/libc/kernel/uapi/linux/ip6_tunnel.h
index ba59235..54a379c 100644
--- a/libc/kernel/uapi/linux/ip6_tunnel.h
+++ b/libc/kernel/uapi/linux/ip6_tunnel.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _IP6_TUNNEL_H
 #define _IP6_TUNNEL_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/ip_vs.h b/libc/kernel/uapi/linux/ip_vs.h
index 916fcf0..4c95a2a 100644
--- a/libc/kernel/uapi/linux/ip_vs.h
+++ b/libc/kernel/uapi/linux/ip_vs.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _IP_VS_H
 #define _IP_VS_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/ipc.h b/libc/kernel/uapi/linux/ipc.h
index 4ca9ee1..66529c4 100644
--- a/libc/kernel/uapi/linux/ipc.h
+++ b/libc/kernel/uapi/linux/ipc.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_IPC_H
 #define _UAPI_LINUX_IPC_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/ipmi.h b/libc/kernel/uapi/linux/ipmi.h
index bd73b3c..7a949f0 100644
--- a/libc/kernel/uapi/linux/ipmi.h
+++ b/libc/kernel/uapi/linux/ipmi.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI__LINUX_IPMI_H
 #define _UAPI__LINUX_IPMI_H
 #include <linux/ipmi_msgdefs.h>
diff --git a/libc/kernel/uapi/linux/ipmi_bmc.h b/libc/kernel/uapi/linux/ipmi_bmc.h
index 18f8b9d..5891a5a 100644
--- a/libc/kernel/uapi/linux/ipmi_bmc.h
+++ b/libc/kernel/uapi/linux/ipmi_bmc.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_IPMI_BMC_H
 #define _UAPI_LINUX_IPMI_BMC_H
 #include <linux/ioctl.h>
diff --git a/libc/kernel/uapi/linux/ipmi_msgdefs.h b/libc/kernel/uapi/linux/ipmi_msgdefs.h
index cfd435f..3989b66 100644
--- a/libc/kernel/uapi/linux/ipmi_msgdefs.h
+++ b/libc/kernel/uapi/linux/ipmi_msgdefs.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __LINUX_IPMI_MSGDEFS_H
 #define __LINUX_IPMI_MSGDEFS_H
 #define IPMI_NETFN_SENSOR_EVENT_REQUEST 0x04
diff --git a/libc/kernel/uapi/linux/ipmi_ssif_bmc.h b/libc/kernel/uapi/linux/ipmi_ssif_bmc.h
index 866ed17..0082296 100644
--- a/libc/kernel/uapi/linux/ipmi_ssif_bmc.h
+++ b/libc/kernel/uapi/linux/ipmi_ssif_bmc.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_IPMI_SSIF_BMC_H
 #define _UAPI_LINUX_IPMI_SSIF_BMC_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/ipsec.h b/libc/kernel/uapi/linux/ipsec.h
index 4fef750..3fe7a1b 100644
--- a/libc/kernel/uapi/linux/ipsec.h
+++ b/libc/kernel/uapi/linux/ipsec.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _LINUX_IPSEC_H
 #define _LINUX_IPSEC_H
 #include <linux/pfkeyv2.h>
diff --git a/libc/kernel/uapi/linux/ipv6.h b/libc/kernel/uapi/linux/ipv6.h
index d62d269..c7e4d67 100644
--- a/libc/kernel/uapi/linux/ipv6.h
+++ b/libc/kernel/uapi/linux/ipv6.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_IPV6_H
 #define _UAPI_IPV6_H
 #include <linux/libc-compat.h>
@@ -62,7 +50,7 @@
 struct rt0_hdr {
   struct ipv6_rt_hdr rt_hdr;
   __u32 reserved;
-  struct in6_addr addr[0];
+  struct in6_addr addr[];
 #define rt0_type rt_hdr.type
 };
 struct rt2_hdr {
@@ -151,6 +139,7 @@
   DEVCONF_IOAM6_ID_WIDE,
   DEVCONF_NDISC_EVICT_NOCARRIER,
   DEVCONF_ACCEPT_UNTRACKED_NA,
+  DEVCONF_ACCEPT_RA_MIN_LFT,
   DEVCONF_MAX
 };
 #endif
diff --git a/libc/kernel/uapi/linux/ipv6_route.h b/libc/kernel/uapi/linux/ipv6_route.h
index b7271a7..3fec186 100644
--- a/libc/kernel/uapi/linux/ipv6_route.h
+++ b/libc/kernel/uapi/linux/ipv6_route.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_IPV6_ROUTE_H
 #define _UAPI_LINUX_IPV6_ROUTE_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/irqnr.h b/libc/kernel/uapi/linux/irqnr.h
index 878419c..02e56b8 100644
--- a/libc/kernel/uapi/linux/irqnr.h
+++ b/libc/kernel/uapi/linux/irqnr.h
@@ -1,18 +1,6 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
diff --git a/libc/kernel/uapi/linux/isdn/capicmd.h b/libc/kernel/uapi/linux/isdn/capicmd.h
index 419b278..95069d9 100644
--- a/libc/kernel/uapi/linux/isdn/capicmd.h
+++ b/libc/kernel/uapi/linux/isdn/capicmd.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __CAPICMD_H__
 #define __CAPICMD_H__
 #define CAPI_MSG_BASELEN 8
diff --git a/libc/kernel/uapi/linux/iso_fs.h b/libc/kernel/uapi/linux/iso_fs.h
index f9c4f48..cbe547d 100644
--- a/libc/kernel/uapi/linux/iso_fs.h
+++ b/libc/kernel/uapi/linux/iso_fs.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _ISOFS_FS_H
 #define _ISOFS_FS_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/isst_if.h b/libc/kernel/uapi/linux/isst_if.h
index 322f70d..8d0b64a 100644
--- a/libc/kernel/uapi/linux/isst_if.h
+++ b/libc/kernel/uapi/linux/isst_if.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __ISST_IF_H
 #define __ISST_IF_H
 #include <linux/types.h>
@@ -67,10 +55,136 @@
   __u32 cmd_count;
   struct isst_if_msr_cmd msr_cmd[1];
 };
+struct isst_core_power {
+  __u8 get_set;
+  __u8 socket_id;
+  __u8 power_domain_id;
+  __u8 enable;
+  __u8 supported;
+  __u8 priority_type;
+};
+struct isst_clos_param {
+  __u8 get_set;
+  __u8 socket_id;
+  __u8 power_domain_id;
+  __u8 clos;
+  __u16 min_freq_mhz;
+  __u16 max_freq_mhz;
+  __u8 prop_prio;
+};
+struct isst_if_clos_assoc {
+  __u8 socket_id;
+  __u8 power_domain_id;
+  __u16 logical_cpu;
+  __u16 clos;
+};
+struct isst_if_clos_assoc_cmds {
+  __u16 cmd_count;
+  __u16 get_set;
+  __u16 punit_cpu_map;
+  struct isst_if_clos_assoc assoc_info[1];
+};
+struct isst_tpmi_instance_count {
+  __u8 socket_id;
+  __u8 count;
+  __u16 valid_mask;
+};
+struct isst_perf_level_info {
+  __u8 socket_id;
+  __u8 power_domain_id;
+  __u8 max_level;
+  __u8 feature_rev;
+  __u8 level_mask;
+  __u8 current_level;
+  __u8 feature_state;
+  __u8 locked;
+  __u8 enabled;
+  __u8 sst_tf_support;
+  __u8 sst_bf_support;
+};
+struct isst_perf_level_control {
+  __u8 socket_id;
+  __u8 power_domain_id;
+  __u8 level;
+};
+struct isst_perf_feature_control {
+  __u8 socket_id;
+  __u8 power_domain_id;
+  __u8 feature;
+};
+#define TRL_MAX_BUCKETS 8
+#define TRL_MAX_LEVELS 6
+struct isst_perf_level_data_info {
+  __u8 socket_id;
+  __u8 power_domain_id;
+  __u16 level;
+  __u16 tdp_ratio;
+  __u16 base_freq_mhz;
+  __u16 base_freq_avx2_mhz;
+  __u16 base_freq_avx512_mhz;
+  __u16 base_freq_amx_mhz;
+  __u16 thermal_design_power_w;
+  __u16 tjunction_max_c;
+  __u16 max_memory_freq_mhz;
+  __u16 cooling_type;
+  __u16 p0_freq_mhz;
+  __u16 p1_freq_mhz;
+  __u16 pn_freq_mhz;
+  __u16 pm_freq_mhz;
+  __u16 p0_fabric_freq_mhz;
+  __u16 p1_fabric_freq_mhz;
+  __u16 pn_fabric_freq_mhz;
+  __u16 pm_fabric_freq_mhz;
+  __u16 max_buckets;
+  __u16 max_trl_levels;
+  __u16 bucket_core_counts[TRL_MAX_BUCKETS];
+  __u16 trl_freq_mhz[TRL_MAX_LEVELS][TRL_MAX_BUCKETS];
+};
+struct isst_perf_level_cpu_mask {
+  __u8 socket_id;
+  __u8 power_domain_id;
+  __u8 level;
+  __u8 punit_cpu_map;
+  __u64 mask;
+  __u16 cpu_buffer_size;
+  __s8 cpu_buffer[1];
+};
+struct isst_base_freq_info {
+  __u8 socket_id;
+  __u8 power_domain_id;
+  __u16 level;
+  __u16 high_base_freq_mhz;
+  __u16 low_base_freq_mhz;
+  __u16 tjunction_max_c;
+  __u16 thermal_design_power_w;
+};
+struct isst_turbo_freq_info {
+  __u8 socket_id;
+  __u8 power_domain_id;
+  __u16 level;
+  __u16 max_clip_freqs;
+  __u16 max_buckets;
+  __u16 max_trl_levels;
+  __u16 lp_clip_freq_mhz[TRL_MAX_LEVELS];
+  __u16 bucket_core_counts[TRL_MAX_BUCKETS];
+  __u16 trl_freq_mhz[TRL_MAX_LEVELS][TRL_MAX_BUCKETS];
+};
 #define ISST_IF_MAGIC 0xFE
 #define ISST_IF_GET_PLATFORM_INFO _IOR(ISST_IF_MAGIC, 0, struct isst_if_platform_info *)
 #define ISST_IF_GET_PHY_ID _IOWR(ISST_IF_MAGIC, 1, struct isst_if_cpu_map *)
 #define ISST_IF_IO_CMD _IOW(ISST_IF_MAGIC, 2, struct isst_if_io_regs *)
 #define ISST_IF_MBOX_COMMAND _IOWR(ISST_IF_MAGIC, 3, struct isst_if_mbox_cmds *)
 #define ISST_IF_MSR_COMMAND _IOWR(ISST_IF_MAGIC, 4, struct isst_if_msr_cmds *)
+#define ISST_IF_COUNT_TPMI_INSTANCES _IOR(ISST_IF_MAGIC, 5, struct isst_tpmi_instance_count *)
+#define ISST_IF_CORE_POWER_STATE _IOWR(ISST_IF_MAGIC, 6, struct isst_core_power *)
+#define ISST_IF_CLOS_PARAM _IOWR(ISST_IF_MAGIC, 7, struct isst_clos_param *)
+#define ISST_IF_CLOS_ASSOC _IOWR(ISST_IF_MAGIC, 8, struct isst_if_clos_assoc_cmds *)
+#define ISST_IF_PERF_LEVELS _IOWR(ISST_IF_MAGIC, 9, struct isst_perf_level_info *)
+#define ISST_IF_PERF_SET_LEVEL _IOW(ISST_IF_MAGIC, 10, struct isst_perf_level_control *)
+#define ISST_IF_PERF_SET_FEATURE _IOW(ISST_IF_MAGIC, 11, struct isst_perf_feature_control *)
+#define ISST_IF_GET_PERF_LEVEL_INFO _IOR(ISST_IF_MAGIC, 12, struct isst_perf_level_data_info *)
+#define ISST_IF_GET_PERF_LEVEL_CPU_MASK _IOR(ISST_IF_MAGIC, 13, struct isst_perf_level_cpu_mask *)
+#define ISST_IF_GET_BASE_FREQ_INFO _IOR(ISST_IF_MAGIC, 14, struct isst_base_freq_info *)
+#define ISST_IF_GET_BASE_FREQ_CPU_MASK _IOR(ISST_IF_MAGIC, 15, struct isst_perf_level_cpu_mask *)
+#define ISST_IF_GET_TURBO_FREQ_INFO _IOR(ISST_IF_MAGIC, 16, struct isst_turbo_freq_info *)
 #endif
diff --git a/libc/kernel/uapi/linux/ivtv.h b/libc/kernel/uapi/linux/ivtv.h
index bdd526e..e41203d 100644
--- a/libc/kernel/uapi/linux/ivtv.h
+++ b/libc/kernel/uapi/linux/ivtv.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __LINUX_IVTV_H__
 #define __LINUX_IVTV_H__
 #include <linux/compiler.h>
diff --git a/libc/kernel/uapi/linux/ivtvfb.h b/libc/kernel/uapi/linux/ivtvfb.h
index 171be74..c00658e 100644
--- a/libc/kernel/uapi/linux/ivtvfb.h
+++ b/libc/kernel/uapi/linux/ivtvfb.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __LINUX_IVTVFB_H__
 #define __LINUX_IVTVFB_H__
 #include <linux/compiler.h>
diff --git a/libc/kernel/uapi/linux/jffs2.h b/libc/kernel/uapi/linux/jffs2.h
index 643aa2e..f2ea901 100644
--- a/libc/kernel/uapi/linux/jffs2.h
+++ b/libc/kernel/uapi/linux/jffs2.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __LINUX_JFFS2_H__
 #define __LINUX_JFFS2_H__
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/joystick.h b/libc/kernel/uapi/linux/joystick.h
index 3f16f11..69952ef 100644
--- a/libc/kernel/uapi/linux/joystick.h
+++ b/libc/kernel/uapi/linux/joystick.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_JOYSTICK_H
 #define _UAPI_LINUX_JOYSTICK_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/kcm.h b/libc/kernel/uapi/linux/kcm.h
index 04bf5f5..23a95c2 100644
--- a/libc/kernel/uapi/linux/kcm.h
+++ b/libc/kernel/uapi/linux/kcm.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef KCM_KERNEL_H
 #define KCM_KERNEL_H
 struct kcm_attach {
diff --git a/libc/kernel/uapi/linux/kcmp.h b/libc/kernel/uapi/linux/kcmp.h
index d185c0a..22769ca 100644
--- a/libc/kernel/uapi/linux/kcmp.h
+++ b/libc/kernel/uapi/linux/kcmp.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_KCMP_H
 #define _UAPI_LINUX_KCMP_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/kcov.h b/libc/kernel/uapi/linux/kcov.h
index 5b6f6b1..f7ee9d1 100644
--- a/libc/kernel/uapi/linux/kcov.h
+++ b/libc/kernel/uapi/linux/kcov.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _LINUX_KCOV_IOCTLS_H
 #define _LINUX_KCOV_IOCTLS_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/kd.h b/libc/kernel/uapi/linux/kd.h
index 903681b..441e4dc 100644
--- a/libc/kernel/uapi/linux/kd.h
+++ b/libc/kernel/uapi/linux/kd.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_KD_H
 #define _UAPI_LINUX_KD_H
 #include <linux/types.h>
@@ -158,5 +146,7 @@
 #define KD_FONT_OP_GET 1
 #define KD_FONT_OP_SET_DEFAULT 2
 #define KD_FONT_OP_COPY 3
+#define KD_FONT_OP_SET_TALL 4
+#define KD_FONT_OP_GET_TALL 5
 #define KD_FONT_FLAG_DONT_RECALC 1
 #endif
diff --git a/libc/kernel/uapi/linux/kdev_t.h b/libc/kernel/uapi/linux/kdev_t.h
index 7dfceca..4affdab 100644
--- a/libc/kernel/uapi/linux/kdev_t.h
+++ b/libc/kernel/uapi/linux/kdev_t.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_KDEV_T_H
 #define _UAPI_LINUX_KDEV_T_H
 #define MAJOR(dev) ((dev) >> 8)
diff --git a/libc/kernel/uapi/linux/kernel-page-flags.h b/libc/kernel/uapi/linux/kernel-page-flags.h
index d66cd7f..05ebed3 100644
--- a/libc/kernel/uapi/linux/kernel-page-flags.h
+++ b/libc/kernel/uapi/linux/kernel-page-flags.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPILINUX_KERNEL_PAGE_FLAGS_H
 #define _UAPILINUX_KERNEL_PAGE_FLAGS_H
 #define KPF_LOCKED 0
diff --git a/libc/kernel/uapi/linux/kernel.h b/libc/kernel/uapi/linux/kernel.h
index 7506a41..b257960 100644
--- a/libc/kernel/uapi/linux/kernel.h
+++ b/libc/kernel/uapi/linux/kernel.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_KERNEL_H
 #define _UAPI_LINUX_KERNEL_H
 #include <linux/sysinfo.h>
diff --git a/libc/kernel/uapi/linux/kernelcapi.h b/libc/kernel/uapi/linux/kernelcapi.h
index 519a043..daab01f 100644
--- a/libc/kernel/uapi/linux/kernelcapi.h
+++ b/libc/kernel/uapi/linux/kernelcapi.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI__KERNELCAPI_H__
 #define _UAPI__KERNELCAPI_H__
 #define CAPI_MAXAPPL 240
diff --git a/libc/kernel/uapi/linux/kexec.h b/libc/kernel/uapi/linux/kexec.h
index 438c07b..d34f065 100644
--- a/libc/kernel/uapi/linux/kexec.h
+++ b/libc/kernel/uapi/linux/kexec.h
@@ -1,30 +1,21 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPILINUX_KEXEC_H
 #define _UAPILINUX_KEXEC_H
 #include <linux/types.h>
 #define KEXEC_ON_CRASH 0x00000001
 #define KEXEC_PRESERVE_CONTEXT 0x00000002
+#define KEXEC_UPDATE_ELFCOREHDR 0x00000004
+#define KEXEC_CRASH_HOTPLUG_SUPPORT 0x00000008
 #define KEXEC_ARCH_MASK 0xffff0000
 #define KEXEC_FILE_UNLOAD 0x00000001
 #define KEXEC_FILE_ON_CRASH 0x00000002
 #define KEXEC_FILE_NO_INITRAMFS 0x00000004
+#define KEXEC_FILE_DEBUG 0x00000008
 #define KEXEC_ARCH_DEFAULT (0 << 16)
 #define KEXEC_ARCH_386 (3 << 16)
 #define KEXEC_ARCH_68K (4 << 16)
diff --git a/libc/kernel/uapi/linux/keyboard.h b/libc/kernel/uapi/linux/keyboard.h
index a05438b..6036ae2 100644
--- a/libc/kernel/uapi/linux/keyboard.h
+++ b/libc/kernel/uapi/linux/keyboard.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI__LINUX_KEYBOARD_H
 #define _UAPI__LINUX_KEYBOARD_H
 #include <linux/wait.h>
diff --git a/libc/kernel/uapi/linux/keyctl.h b/libc/kernel/uapi/linux/keyctl.h
index b534f5e..0ca3272 100644
--- a/libc/kernel/uapi/linux/keyctl.h
+++ b/libc/kernel/uapi/linux/keyctl.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _LINUX_KEYCTL_H
 #define _LINUX_KEYCTL_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/kfd_ioctl.h b/libc/kernel/uapi/linux/kfd_ioctl.h
index d21e0fc..193dd8e 100644
--- a/libc/kernel/uapi/linux/kfd_ioctl.h
+++ b/libc/kernel/uapi/linux/kfd_ioctl.h
@@ -1,27 +1,15 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef KFD_IOCTL_H_INCLUDED
 #define KFD_IOCTL_H_INCLUDED
 #include <drm/drm.h>
 #include <linux/ioctl.h>
 #define KFD_IOCTL_MAJOR_VERSION 1
-#define KFD_IOCTL_MINOR_VERSION 11
+#define KFD_IOCTL_MINOR_VERSION 16
 struct kfd_ioctl_get_version_args {
   __u32 major_version;
   __u32 minor_version;
@@ -77,6 +65,31 @@
   __u32 gpu_id;
   __u32 pad;
 };
+struct kfd_dbg_device_info_entry {
+  __u64 exception_status;
+  __u64 lds_base;
+  __u64 lds_limit;
+  __u64 scratch_base;
+  __u64 scratch_limit;
+  __u64 gpuvm_base;
+  __u64 gpuvm_limit;
+  __u32 gpu_id;
+  __u32 location_id;
+  __u32 vendor_id;
+  __u32 device_id;
+  __u32 revision_id;
+  __u32 subsystem_vendor_id;
+  __u32 subsystem_device_id;
+  __u32 fw_version;
+  __u32 gfx_target_version;
+  __u32 simd_count;
+  __u32 max_waves_per_simd;
+  __u32 array_count;
+  __u32 simd_arrays_per_engine;
+  __u32 num_xcc;
+  __u32 capability;
+  __u32 debug_prop;
+};
 #define KFD_IOC_CACHE_POLICY_COHERENT 0
 #define KFD_IOC_CACHE_POLICY_NONCOHERENT 1
 struct kfd_ioctl_set_memory_policy_args {
@@ -198,10 +211,14 @@
   __u32 memory_lost;
   __u32 gpu_id;
 };
+struct kfd_hsa_signal_event_data {
+  __u64 last_event_age;
+};
 struct kfd_event_data {
   union {
     struct kfd_hsa_memory_exception_data memory_exception_data;
     struct kfd_hsa_hw_exception_data hw_exception_data;
+    struct kfd_hsa_signal_event_data signal_event_data;
   };
   __u64 kfd_event_data_ext;
   __u32 event_id;
@@ -251,6 +268,8 @@
 #define KFD_IOC_ALLOC_MEM_FLAGS_AQL_QUEUE_MEM (1 << 27)
 #define KFD_IOC_ALLOC_MEM_FLAGS_COHERENT (1 << 26)
 #define KFD_IOC_ALLOC_MEM_FLAGS_UNCACHED (1 << 25)
+#define KFD_IOC_ALLOC_MEM_FLAGS_EXT_COHERENT (1 << 24)
+#define KFD_IOC_ALLOC_MEM_FLAGS_CONTIGUOUS (1 << 23)
 struct kfd_ioctl_alloc_memory_of_gpu_args {
   __u64 va_addr;
   __u64 size;
@@ -294,6 +313,11 @@
   __u32 gpu_id;
   __u32 dmabuf_fd;
 };
+struct kfd_ioctl_export_dmabuf_args {
+  __u64 handle;
+  __u32 flags;
+  __u32 dmabuf_fd;
+};
 enum kfd_smi_event {
   KFD_SMI_EVENT_NONE = 0,
   KFD_SMI_EVENT_VMFAULT = 1,
@@ -379,6 +403,7 @@
 #define KFD_IOCTL_SVM_FLAG_GPU_EXEC 0x00000010
 #define KFD_IOCTL_SVM_FLAG_GPU_READ_MOSTLY 0x00000020
 #define KFD_IOCTL_SVM_FLAG_GPU_ALWAYS_MAPPED 0x00000040
+#define KFD_IOCTL_SVM_FLAG_EXT_COHERENT 0x00000080
 enum kfd_ioctl_svm_op {
   KFD_IOCTL_SVM_OP_SET_ATTR,
   KFD_IOCTL_SVM_OP_GET_ATTR
@@ -411,6 +436,234 @@
 struct kfd_ioctl_set_xnack_mode_args {
   __s32 xnack_enabled;
 };
+enum kfd_dbg_trap_override_mode {
+  KFD_DBG_TRAP_OVERRIDE_OR = 0,
+  KFD_DBG_TRAP_OVERRIDE_REPLACE = 1
+};
+enum kfd_dbg_trap_mask {
+  KFD_DBG_TRAP_MASK_FP_INVALID = 1,
+  KFD_DBG_TRAP_MASK_FP_INPUT_DENORMAL = 2,
+  KFD_DBG_TRAP_MASK_FP_DIVIDE_BY_ZERO = 4,
+  KFD_DBG_TRAP_MASK_FP_OVERFLOW = 8,
+  KFD_DBG_TRAP_MASK_FP_UNDERFLOW = 16,
+  KFD_DBG_TRAP_MASK_FP_INEXACT = 32,
+  KFD_DBG_TRAP_MASK_INT_DIVIDE_BY_ZERO = 64,
+  KFD_DBG_TRAP_MASK_DBG_ADDRESS_WATCH = 128,
+  KFD_DBG_TRAP_MASK_DBG_MEMORY_VIOLATION = 256,
+  KFD_DBG_TRAP_MASK_TRAP_ON_WAVE_START = (1 << 30),
+  KFD_DBG_TRAP_MASK_TRAP_ON_WAVE_END = (1 << 31)
+};
+enum kfd_dbg_trap_wave_launch_mode {
+  KFD_DBG_TRAP_WAVE_LAUNCH_MODE_NORMAL = 0,
+  KFD_DBG_TRAP_WAVE_LAUNCH_MODE_HALT = 1,
+  KFD_DBG_TRAP_WAVE_LAUNCH_MODE_DEBUG = 3
+};
+enum kfd_dbg_trap_address_watch_mode {
+  KFD_DBG_TRAP_ADDRESS_WATCH_MODE_READ = 0,
+  KFD_DBG_TRAP_ADDRESS_WATCH_MODE_NONREAD = 1,
+  KFD_DBG_TRAP_ADDRESS_WATCH_MODE_ATOMIC = 2,
+  KFD_DBG_TRAP_ADDRESS_WATCH_MODE_ALL = 3
+};
+enum kfd_dbg_trap_flags {
+  KFD_DBG_TRAP_FLAG_SINGLE_MEM_OP = 1,
+  KFD_DBG_TRAP_FLAG_SINGLE_ALU_OP = 2,
+};
+enum kfd_dbg_trap_exception_code {
+  EC_NONE = 0,
+  EC_QUEUE_WAVE_ABORT = 1,
+  EC_QUEUE_WAVE_TRAP = 2,
+  EC_QUEUE_WAVE_MATH_ERROR = 3,
+  EC_QUEUE_WAVE_ILLEGAL_INSTRUCTION = 4,
+  EC_QUEUE_WAVE_MEMORY_VIOLATION = 5,
+  EC_QUEUE_WAVE_APERTURE_VIOLATION = 6,
+  EC_QUEUE_PACKET_DISPATCH_DIM_INVALID = 16,
+  EC_QUEUE_PACKET_DISPATCH_GROUP_SEGMENT_SIZE_INVALID = 17,
+  EC_QUEUE_PACKET_DISPATCH_CODE_INVALID = 18,
+  EC_QUEUE_PACKET_RESERVED = 19,
+  EC_QUEUE_PACKET_UNSUPPORTED = 20,
+  EC_QUEUE_PACKET_DISPATCH_WORK_GROUP_SIZE_INVALID = 21,
+  EC_QUEUE_PACKET_DISPATCH_REGISTER_INVALID = 22,
+  EC_QUEUE_PACKET_VENDOR_UNSUPPORTED = 23,
+  EC_QUEUE_PREEMPTION_ERROR = 30,
+  EC_QUEUE_NEW = 31,
+  EC_DEVICE_QUEUE_DELETE = 32,
+  EC_DEVICE_MEMORY_VIOLATION = 33,
+  EC_DEVICE_RAS_ERROR = 34,
+  EC_DEVICE_FATAL_HALT = 35,
+  EC_DEVICE_NEW = 36,
+  EC_PROCESS_RUNTIME = 48,
+  EC_PROCESS_DEVICE_REMOVE = 49,
+  EC_MAX
+};
+#define KFD_EC_MASK(ecode) (1ULL << (ecode - 1))
+#define KFD_EC_MASK_QUEUE (KFD_EC_MASK(EC_QUEUE_WAVE_ABORT) | KFD_EC_MASK(EC_QUEUE_WAVE_TRAP) | KFD_EC_MASK(EC_QUEUE_WAVE_MATH_ERROR) | KFD_EC_MASK(EC_QUEUE_WAVE_ILLEGAL_INSTRUCTION) | KFD_EC_MASK(EC_QUEUE_WAVE_MEMORY_VIOLATION) | KFD_EC_MASK(EC_QUEUE_WAVE_APERTURE_VIOLATION) | KFD_EC_MASK(EC_QUEUE_PACKET_DISPATCH_DIM_INVALID) | KFD_EC_MASK(EC_QUEUE_PACKET_DISPATCH_GROUP_SEGMENT_SIZE_INVALID) | KFD_EC_MASK(EC_QUEUE_PACKET_DISPATCH_CODE_INVALID) | KFD_EC_MASK(EC_QUEUE_PACKET_RESERVED) | KFD_EC_MASK(EC_QUEUE_PACKET_UNSUPPORTED) | KFD_EC_MASK(EC_QUEUE_PACKET_DISPATCH_WORK_GROUP_SIZE_INVALID) | KFD_EC_MASK(EC_QUEUE_PACKET_DISPATCH_REGISTER_INVALID) | KFD_EC_MASK(EC_QUEUE_PACKET_VENDOR_UNSUPPORTED) | KFD_EC_MASK(EC_QUEUE_PREEMPTION_ERROR) | KFD_EC_MASK(EC_QUEUE_NEW))
+#define KFD_EC_MASK_DEVICE (KFD_EC_MASK(EC_DEVICE_QUEUE_DELETE) | KFD_EC_MASK(EC_DEVICE_RAS_ERROR) | KFD_EC_MASK(EC_DEVICE_FATAL_HALT) | KFD_EC_MASK(EC_DEVICE_MEMORY_VIOLATION) | KFD_EC_MASK(EC_DEVICE_NEW))
+#define KFD_EC_MASK_PROCESS (KFD_EC_MASK(EC_PROCESS_RUNTIME) | KFD_EC_MASK(EC_PROCESS_DEVICE_REMOVE))
+#define KFD_EC_MASK_PACKET (KFD_EC_MASK(EC_QUEUE_PACKET_DISPATCH_DIM_INVALID) | KFD_EC_MASK(EC_QUEUE_PACKET_DISPATCH_GROUP_SEGMENT_SIZE_INVALID) | KFD_EC_MASK(EC_QUEUE_PACKET_DISPATCH_CODE_INVALID) | KFD_EC_MASK(EC_QUEUE_PACKET_RESERVED) | KFD_EC_MASK(EC_QUEUE_PACKET_UNSUPPORTED) | KFD_EC_MASK(EC_QUEUE_PACKET_DISPATCH_WORK_GROUP_SIZE_INVALID) | KFD_EC_MASK(EC_QUEUE_PACKET_DISPATCH_REGISTER_INVALID) | KFD_EC_MASK(EC_QUEUE_PACKET_VENDOR_UNSUPPORTED))
+#define KFD_DBG_EC_IS_VALID(ecode) (ecode > EC_NONE && ecode < EC_MAX)
+#define KFD_DBG_EC_TYPE_IS_QUEUE(ecode) (KFD_DBG_EC_IS_VALID(ecode) && ! ! (KFD_EC_MASK(ecode) & KFD_EC_MASK_QUEUE))
+#define KFD_DBG_EC_TYPE_IS_DEVICE(ecode) (KFD_DBG_EC_IS_VALID(ecode) && ! ! (KFD_EC_MASK(ecode) & KFD_EC_MASK_DEVICE))
+#define KFD_DBG_EC_TYPE_IS_PROCESS(ecode) (KFD_DBG_EC_IS_VALID(ecode) && ! ! (KFD_EC_MASK(ecode) & KFD_EC_MASK_PROCESS))
+#define KFD_DBG_EC_TYPE_IS_PACKET(ecode) (KFD_DBG_EC_IS_VALID(ecode) && ! ! (KFD_EC_MASK(ecode) & KFD_EC_MASK_PACKET))
+enum kfd_dbg_runtime_state {
+  DEBUG_RUNTIME_STATE_DISABLED = 0,
+  DEBUG_RUNTIME_STATE_ENABLED = 1,
+  DEBUG_RUNTIME_STATE_ENABLED_BUSY = 2,
+  DEBUG_RUNTIME_STATE_ENABLED_ERROR = 3
+};
+struct kfd_runtime_info {
+  __u64 r_debug;
+  __u32 runtime_state;
+  __u32 ttmp_setup;
+};
+#define KFD_RUNTIME_ENABLE_MODE_ENABLE_MASK 1
+#define KFD_RUNTIME_ENABLE_MODE_TTMP_SAVE_MASK 2
+struct kfd_ioctl_runtime_enable_args {
+  __u64 r_debug;
+  __u32 mode_mask;
+  __u32 capabilities_mask;
+};
+struct kfd_queue_snapshot_entry {
+  __u64 exception_status;
+  __u64 ring_base_address;
+  __u64 write_pointer_address;
+  __u64 read_pointer_address;
+  __u64 ctx_save_restore_address;
+  __u32 queue_id;
+  __u32 gpu_id;
+  __u32 ring_size;
+  __u32 queue_type;
+  __u32 ctx_save_restore_area_size;
+  __u32 reserved;
+};
+#define KFD_DBG_QUEUE_ERROR_BIT 30
+#define KFD_DBG_QUEUE_INVALID_BIT 31
+#define KFD_DBG_QUEUE_ERROR_MASK (1 << KFD_DBG_QUEUE_ERROR_BIT)
+#define KFD_DBG_QUEUE_INVALID_MASK (1 << KFD_DBG_QUEUE_INVALID_BIT)
+struct kfd_context_save_area_header {
+  struct {
+    __u32 control_stack_offset;
+    __u32 control_stack_size;
+    __u32 wave_state_offset;
+    __u32 wave_state_size;
+  } wave_state;
+  __u32 debug_offset;
+  __u32 debug_size;
+  __u64 err_payload_addr;
+  __u32 err_event_id;
+  __u32 reserved1;
+};
+enum kfd_dbg_trap_operations {
+  KFD_IOC_DBG_TRAP_ENABLE = 0,
+  KFD_IOC_DBG_TRAP_DISABLE = 1,
+  KFD_IOC_DBG_TRAP_SEND_RUNTIME_EVENT = 2,
+  KFD_IOC_DBG_TRAP_SET_EXCEPTIONS_ENABLED = 3,
+  KFD_IOC_DBG_TRAP_SET_WAVE_LAUNCH_OVERRIDE = 4,
+  KFD_IOC_DBG_TRAP_SET_WAVE_LAUNCH_MODE = 5,
+  KFD_IOC_DBG_TRAP_SUSPEND_QUEUES = 6,
+  KFD_IOC_DBG_TRAP_RESUME_QUEUES = 7,
+  KFD_IOC_DBG_TRAP_SET_NODE_ADDRESS_WATCH = 8,
+  KFD_IOC_DBG_TRAP_CLEAR_NODE_ADDRESS_WATCH = 9,
+  KFD_IOC_DBG_TRAP_SET_FLAGS = 10,
+  KFD_IOC_DBG_TRAP_QUERY_DEBUG_EVENT = 11,
+  KFD_IOC_DBG_TRAP_QUERY_EXCEPTION_INFO = 12,
+  KFD_IOC_DBG_TRAP_GET_QUEUE_SNAPSHOT = 13,
+  KFD_IOC_DBG_TRAP_GET_DEVICE_SNAPSHOT = 14
+};
+struct kfd_ioctl_dbg_trap_enable_args {
+  __u64 exception_mask;
+  __u64 rinfo_ptr;
+  __u32 rinfo_size;
+  __u32 dbg_fd;
+};
+struct kfd_ioctl_dbg_trap_send_runtime_event_args {
+  __u64 exception_mask;
+  __u32 gpu_id;
+  __u32 queue_id;
+};
+struct kfd_ioctl_dbg_trap_set_exceptions_enabled_args {
+  __u64 exception_mask;
+};
+struct kfd_ioctl_dbg_trap_set_wave_launch_override_args {
+  __u32 override_mode;
+  __u32 enable_mask;
+  __u32 support_request_mask;
+  __u32 pad;
+};
+struct kfd_ioctl_dbg_trap_set_wave_launch_mode_args {
+  __u32 launch_mode;
+  __u32 pad;
+};
+struct kfd_ioctl_dbg_trap_suspend_queues_args {
+  __u64 exception_mask;
+  __u64 queue_array_ptr;
+  __u32 num_queues;
+  __u32 grace_period;
+};
+struct kfd_ioctl_dbg_trap_resume_queues_args {
+  __u64 queue_array_ptr;
+  __u32 num_queues;
+  __u32 pad;
+};
+struct kfd_ioctl_dbg_trap_set_node_address_watch_args {
+  __u64 address;
+  __u32 mode;
+  __u32 mask;
+  __u32 gpu_id;
+  __u32 id;
+};
+struct kfd_ioctl_dbg_trap_clear_node_address_watch_args {
+  __u32 gpu_id;
+  __u32 id;
+};
+struct kfd_ioctl_dbg_trap_set_flags_args {
+  __u32 flags;
+  __u32 pad;
+};
+struct kfd_ioctl_dbg_trap_query_debug_event_args {
+  __u64 exception_mask;
+  __u32 gpu_id;
+  __u32 queue_id;
+};
+struct kfd_ioctl_dbg_trap_query_exception_info_args {
+  __u64 info_ptr;
+  __u32 info_size;
+  __u32 source_id;
+  __u32 exception_code;
+  __u32 clear_exception;
+};
+struct kfd_ioctl_dbg_trap_queue_snapshot_args {
+  __u64 exception_mask;
+  __u64 snapshot_buf_ptr;
+  __u32 num_queues;
+  __u32 entry_size;
+};
+struct kfd_ioctl_dbg_trap_device_snapshot_args {
+  __u64 exception_mask;
+  __u64 snapshot_buf_ptr;
+  __u32 num_devices;
+  __u32 entry_size;
+};
+struct kfd_ioctl_dbg_trap_args {
+  __u32 pid;
+  __u32 op;
+  union {
+    struct kfd_ioctl_dbg_trap_enable_args enable;
+    struct kfd_ioctl_dbg_trap_send_runtime_event_args send_runtime_event;
+    struct kfd_ioctl_dbg_trap_set_exceptions_enabled_args set_exceptions_enabled;
+    struct kfd_ioctl_dbg_trap_set_wave_launch_override_args launch_override;
+    struct kfd_ioctl_dbg_trap_set_wave_launch_mode_args launch_mode;
+    struct kfd_ioctl_dbg_trap_suspend_queues_args suspend_queues;
+    struct kfd_ioctl_dbg_trap_resume_queues_args resume_queues;
+    struct kfd_ioctl_dbg_trap_set_node_address_watch_args set_node_address_watch;
+    struct kfd_ioctl_dbg_trap_clear_node_address_watch_args clear_node_address_watch;
+    struct kfd_ioctl_dbg_trap_set_flags_args set_flags;
+    struct kfd_ioctl_dbg_trap_query_debug_event_args query_debug_event;
+    struct kfd_ioctl_dbg_trap_query_exception_info_args query_exception_info;
+    struct kfd_ioctl_dbg_trap_queue_snapshot_args queue_snapshot;
+    struct kfd_ioctl_dbg_trap_device_snapshot_args device_snapshot;
+  };
+};
 #define AMDKFD_IOCTL_BASE 'K'
 #define AMDKFD_IO(nr) _IO(AMDKFD_IOCTL_BASE, nr)
 #define AMDKFD_IOR(nr,type) _IOR(AMDKFD_IOCTL_BASE, nr, type)
@@ -451,6 +704,9 @@
 #define AMDKFD_IOC_SET_XNACK_MODE AMDKFD_IOWR(0x21, struct kfd_ioctl_set_xnack_mode_args)
 #define AMDKFD_IOC_CRIU_OP AMDKFD_IOWR(0x22, struct kfd_ioctl_criu_args)
 #define AMDKFD_IOC_AVAILABLE_MEMORY AMDKFD_IOWR(0x23, struct kfd_ioctl_get_available_memory_args)
+#define AMDKFD_IOC_EXPORT_DMABUF AMDKFD_IOWR(0x24, struct kfd_ioctl_export_dmabuf_args)
+#define AMDKFD_IOC_RUNTIME_ENABLE AMDKFD_IOWR(0x25, struct kfd_ioctl_runtime_enable_args)
+#define AMDKFD_IOC_DBG_TRAP AMDKFD_IOWR(0x26, struct kfd_ioctl_dbg_trap_args)
 #define AMDKFD_COMMAND_START 0x01
-#define AMDKFD_COMMAND_END 0x24
+#define AMDKFD_COMMAND_END 0x27
 #endif
diff --git a/libc/kernel/uapi/linux/kfd_sysfs.h b/libc/kernel/uapi/linux/kfd_sysfs.h
index 9604b03..7771582 100644
--- a/libc/kernel/uapi/linux/kfd_sysfs.h
+++ b/libc/kernel/uapi/linux/kfd_sysfs.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef KFD_SYSFS_H_INCLUDED
 #define KFD_SYSFS_H_INCLUDED
 #define HSA_CAP_HOT_PLUGGABLE 0x00000001
@@ -34,6 +22,10 @@
 #define HSA_CAP_DOORBELL_TYPE_1_0 0x1
 #define HSA_CAP_DOORBELL_TYPE_2_0 0x2
 #define HSA_CAP_AQL_QUEUE_DOUBLE_MAP 0x00004000
+#define HSA_CAP_TRAP_DEBUG_SUPPORT 0x00008000
+#define HSA_CAP_TRAP_DEBUG_WAVE_LAUNCH_TRAP_OVERRIDE_SUPPORTED 0x00010000
+#define HSA_CAP_TRAP_DEBUG_WAVE_LAUNCH_MODE_SUPPORTED 0x00020000
+#define HSA_CAP_TRAP_DEBUG_PRECISE_MEMORY_OPERATIONS_SUPPORTED 0x00040000
 #define HSA_CAP_RESERVED_WAS_SRAM_EDCSUPPORTED 0x00080000
 #define HSA_CAP_MEM_EDCSUPPORTED 0x00100000
 #define HSA_CAP_RASEVENTNOTIFY 0x00200000
@@ -42,7 +34,16 @@
 #define HSA_CAP_SRAM_EDCSUPPORTED 0x04000000
 #define HSA_CAP_SVMAPI_SUPPORTED 0x08000000
 #define HSA_CAP_FLAGS_COHERENTHOSTACCESS 0x10000000
-#define HSA_CAP_RESERVED 0xe00f8000
+#define HSA_CAP_TRAP_DEBUG_FIRMWARE_SUPPORTED 0x20000000
+#define HSA_CAP_TRAP_DEBUG_PRECISE_ALU_OPERATIONS_SUPPORTED 0x40000000
+#define HSA_CAP_RESERVED 0x800f8000
+#define HSA_DBG_WATCH_ADDR_MASK_LO_BIT_MASK 0x0000000f
+#define HSA_DBG_WATCH_ADDR_MASK_LO_BIT_SHIFT 0
+#define HSA_DBG_WATCH_ADDR_MASK_HI_BIT_MASK 0x000003f0
+#define HSA_DBG_WATCH_ADDR_MASK_HI_BIT_SHIFT 4
+#define HSA_DBG_DISPATCH_INFO_ALWAYS_VALID 0x00000400
+#define HSA_DBG_WATCHPOINTS_EXCLUSIVE 0x00000800
+#define HSA_DBG_RESERVED 0xfffffffffffff000ull
 #define HSA_MEM_HEAP_TYPE_SYSTEM 0
 #define HSA_MEM_HEAP_TYPE_FB_PUBLIC 1
 #define HSA_MEM_HEAP_TYPE_FB_PRIVATE 2
diff --git a/libc/kernel/uapi/linux/kvm.h b/libc/kernel/uapi/linux/kvm.h
index 9d33399..297a09d 100644
--- a/libc/kernel/uapi/linux/kvm.h
+++ b/libc/kernel/uapi/linux/kvm.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __LINUX_KVM_H
 #define __LINUX_KVM_H
 #include <linux/const.h>
@@ -24,59 +12,7 @@
 #include <linux/ioctl.h>
 #include <asm/kvm.h>
 #define KVM_API_VERSION 12
-#define KVM_TRC_SHIFT 16
-#define KVM_TRC_ENTRYEXIT (1 << KVM_TRC_SHIFT)
-#define KVM_TRC_HANDLER (1 << (KVM_TRC_SHIFT + 1))
-#define KVM_TRC_VMENTRY (KVM_TRC_ENTRYEXIT + 0x01)
-#define KVM_TRC_VMEXIT (KVM_TRC_ENTRYEXIT + 0x02)
-#define KVM_TRC_PAGE_FAULT (KVM_TRC_HANDLER + 0x01)
-#define KVM_TRC_HEAD_SIZE 12
-#define KVM_TRC_CYCLE_SIZE 8
-#define KVM_TRC_EXTRA_MAX 7
-#define KVM_TRC_INJ_VIRQ (KVM_TRC_HANDLER + 0x02)
-#define KVM_TRC_REDELIVER_EVT (KVM_TRC_HANDLER + 0x03)
-#define KVM_TRC_PEND_INTR (KVM_TRC_HANDLER + 0x04)
-#define KVM_TRC_IO_READ (KVM_TRC_HANDLER + 0x05)
-#define KVM_TRC_IO_WRITE (KVM_TRC_HANDLER + 0x06)
-#define KVM_TRC_CR_READ (KVM_TRC_HANDLER + 0x07)
-#define KVM_TRC_CR_WRITE (KVM_TRC_HANDLER + 0x08)
-#define KVM_TRC_DR_READ (KVM_TRC_HANDLER + 0x09)
-#define KVM_TRC_DR_WRITE (KVM_TRC_HANDLER + 0x0A)
-#define KVM_TRC_MSR_READ (KVM_TRC_HANDLER + 0x0B)
-#define KVM_TRC_MSR_WRITE (KVM_TRC_HANDLER + 0x0C)
-#define KVM_TRC_CPUID (KVM_TRC_HANDLER + 0x0D)
-#define KVM_TRC_INTR (KVM_TRC_HANDLER + 0x0E)
-#define KVM_TRC_NMI (KVM_TRC_HANDLER + 0x0F)
-#define KVM_TRC_VMMCALL (KVM_TRC_HANDLER + 0x10)
-#define KVM_TRC_HLT (KVM_TRC_HANDLER + 0x11)
-#define KVM_TRC_CLTS (KVM_TRC_HANDLER + 0x12)
-#define KVM_TRC_LMSW (KVM_TRC_HANDLER + 0x13)
-#define KVM_TRC_APIC_ACCESS (KVM_TRC_HANDLER + 0x14)
-#define KVM_TRC_TDP_FAULT (KVM_TRC_HANDLER + 0x15)
-#define KVM_TRC_GTLB_WRITE (KVM_TRC_HANDLER + 0x16)
-#define KVM_TRC_STLB_WRITE (KVM_TRC_HANDLER + 0x17)
-#define KVM_TRC_STLB_INVAL (KVM_TRC_HANDLER + 0x18)
-#define KVM_TRC_PPC_INSTR (KVM_TRC_HANDLER + 0x19)
-struct kvm_user_trace_setup {
-  __u32 buf_size;
-  __u32 buf_nr;
-};
-#define __KVM_DEPRECATED_MAIN_W_0x06 _IOW(KVMIO, 0x06, struct kvm_user_trace_setup)
-#define __KVM_DEPRECATED_MAIN_0x07 _IO(KVMIO, 0x07)
-#define __KVM_DEPRECATED_MAIN_0x08 _IO(KVMIO, 0x08)
-#define __KVM_DEPRECATED_VM_R_0x70 _IOR(KVMIO, 0x70, struct kvm_assigned_irq)
-struct kvm_breakpoint {
-  __u32 enabled;
-  __u32 padding;
-  __u64 address;
-};
-struct kvm_debug_guest {
-  __u32 enabled;
-  __u32 pad;
-  struct kvm_breakpoint breakpoints[4];
-  __u32 singlestep;
-};
-#define __KVM_DEPRECATED_VCPU_W_0x87 _IOW(KVMIO, 0x87, struct kvm_debug_guest)
+#define __KVM_HAVE_GUEST_DEBUG
 struct kvm_userspace_memory_region {
   __u32 slot;
   __u32 flags;
@@ -84,8 +20,20 @@
   __u64 memory_size;
   __u64 userspace_addr;
 };
+struct kvm_userspace_memory_region2 {
+  __u32 slot;
+  __u32 flags;
+  __u64 guest_phys_addr;
+  __u64 memory_size;
+  __u64 userspace_addr;
+  __u64 guest_memfd_offset;
+  __u32 guest_memfd;
+  __u32 pad1;
+  __u64 pad2[14];
+};
 #define KVM_MEM_LOG_DIRTY_PAGES (1UL << 0)
 #define KVM_MEM_READONLY (1UL << 1)
+#define KVM_MEM_GUEST_MEMFD (1UL << 2)
 struct kvm_irq_level {
   union {
     __u32 irq;
@@ -111,24 +59,6 @@
   __u32 pad[15];
 };
 #define KVM_PIT_SPEAKER_DUMMY 1
-struct kvm_s390_skeys {
-  __u64 start_gfn;
-  __u64 count;
-  __u64 skeydata_addr;
-  __u32 flags;
-  __u32 reserved[9];
-};
-#define KVM_S390_CMMA_PEEK (1 << 0)
-struct kvm_s390_cmma_log {
-  __u64 start_gfn;
-  __u32 count;
-  __u32 flags;
-  union {
-    __u64 remaining;
-    __u64 mask;
-  };
-  __u64 values;
-};
 struct kvm_hyperv_exit {
 #define KVM_EXIT_HYPERV_SYNIC 1
 #define KVM_EXIT_HYPERV_HCALL 2
@@ -212,14 +142,17 @@
 #define KVM_EXIT_RISCV_SBI 35
 #define KVM_EXIT_RISCV_CSR 36
 #define KVM_EXIT_NOTIFY 37
+#define KVM_EXIT_LOONGARCH_IOCSR 38
+#define KVM_EXIT_MEMORY_FAULT 39
 #define KVM_INTERNAL_ERROR_EMULATION 1
 #define KVM_INTERNAL_ERROR_SIMUL_EX 2
 #define KVM_INTERNAL_ERROR_DELIVERY_EV 3
 #define KVM_INTERNAL_ERROR_UNEXPECTED_EXIT_REASON 4
 #define KVM_INTERNAL_ERROR_EMULATION_FLAG_INSTRUCTION_BYTES (1ULL << 0)
+#define HINT_UNSAFE_IN_KVM(_symbol) _symbol
 struct kvm_run {
   __u8 request_interrupt_window;
-  __u8 immediate_exit;
+  __u8 HINT_UNSAFE_IN_KVM(immediate_exit);
   __u8 padding1[6];
   __u32 exit_reason;
   __u8 ready_for_interrupt_injection;
@@ -262,11 +195,19 @@
       __u8 is_write;
     } mmio;
     struct {
+      __u64 phys_addr;
+      __u8 data[8];
+      __u32 len;
+      __u8 is_write;
+    } iocsr_io;
+    struct {
       __u64 nr;
       __u64 args[6];
       __u64 ret;
-      __u32 longmode;
-      __u32 pad;
+      union {
+        __u32 longmode;
+        __u64 flags;
+      };
     } hypercall;
     struct {
       __u64 rip;
@@ -278,11 +219,6 @@
       __u16 ipa;
       __u32 ipb;
     } s390_sieic;
-#define KVM_S390_RESET_POR 1
-#define KVM_S390_RESET_CLEAR 2
-#define KVM_S390_RESET_SUBSYSTEM 4
-#define KVM_S390_RESET_CPU_INIT 8
-#define KVM_S390_RESET_IPL 16
     __u64 s390_reset_flags;
     struct {
       __u64 trans_exc_code;
@@ -386,6 +322,12 @@
 #define KVM_NOTIFY_CONTEXT_INVALID (1 << 0)
       __u32 flags;
     } notify;
+    struct {
+#define KVM_MEMORY_EXIT_FLAG_PRIVATE (1ULL << 3)
+      __u64 flags;
+      __u64 gpa;
+      __u64 size;
+    } memory_fault;
     char padding[256];
   };
 #define SYNC_REGS_SIZE_BYTES 2048
@@ -426,30 +368,6 @@
   __u8 usermode;
   __u8 pad[5];
 };
-struct kvm_s390_mem_op {
-  __u64 gaddr;
-  __u64 flags;
-  __u32 size;
-  __u32 op;
-  __u64 buf;
-  union {
-    struct {
-      __u8 ar;
-      __u8 key;
-    };
-    __u32 sida_offset;
-    __u8 reserved[32];
-  };
-};
-#define KVM_S390_MEMOP_LOGICAL_READ 0
-#define KVM_S390_MEMOP_LOGICAL_WRITE 1
-#define KVM_S390_MEMOP_SIDA_READ 2
-#define KVM_S390_MEMOP_SIDA_WRITE 3
-#define KVM_S390_MEMOP_ABSOLUTE_READ 4
-#define KVM_S390_MEMOP_ABSOLUTE_WRITE 5
-#define KVM_S390_MEMOP_F_CHECK_ONLY (1ULL << 0)
-#define KVM_S390_MEMOP_F_INJECT_EXCEPTION (1ULL << 1)
-#define KVM_S390_MEMOP_F_SKEY_PROTECTION (1ULL << 2)
 struct kvm_interrupt {
   __u32 irq;
 };
@@ -496,104 +414,6 @@
 struct kvm_mp_state {
   __u32 mp_state;
 };
-struct kvm_s390_psw {
-  __u64 mask;
-  __u64 addr;
-};
-#define KVM_S390_SIGP_STOP 0xfffe0000u
-#define KVM_S390_PROGRAM_INT 0xfffe0001u
-#define KVM_S390_SIGP_SET_PREFIX 0xfffe0002u
-#define KVM_S390_RESTART 0xfffe0003u
-#define KVM_S390_INT_PFAULT_INIT 0xfffe0004u
-#define KVM_S390_INT_PFAULT_DONE 0xfffe0005u
-#define KVM_S390_MCHK 0xfffe1000u
-#define KVM_S390_INT_CLOCK_COMP 0xffff1004u
-#define KVM_S390_INT_CPU_TIMER 0xffff1005u
-#define KVM_S390_INT_VIRTIO 0xffff2603u
-#define KVM_S390_INT_SERVICE 0xffff2401u
-#define KVM_S390_INT_EMERGENCY 0xffff1201u
-#define KVM_S390_INT_EXTERNAL_CALL 0xffff1202u
-#define KVM_S390_INT_IO(ai,cssid,ssid,schid) (((schid)) | ((ssid) << 16) | ((cssid) << 18) | ((ai) << 26))
-#define KVM_S390_INT_IO_MIN 0x00000000u
-#define KVM_S390_INT_IO_MAX 0xfffdffffu
-#define KVM_S390_INT_IO_AI_MASK 0x04000000u
-struct kvm_s390_interrupt {
-  __u32 type;
-  __u32 parm;
-  __u64 parm64;
-};
-struct kvm_s390_io_info {
-  __u16 subchannel_id;
-  __u16 subchannel_nr;
-  __u32 io_int_parm;
-  __u32 io_int_word;
-};
-struct kvm_s390_ext_info {
-  __u32 ext_params;
-  __u32 pad;
-  __u64 ext_params2;
-};
-struct kvm_s390_pgm_info {
-  __u64 trans_exc_code;
-  __u64 mon_code;
-  __u64 per_address;
-  __u32 data_exc_code;
-  __u16 code;
-  __u16 mon_class_nr;
-  __u8 per_code;
-  __u8 per_atmid;
-  __u8 exc_access_id;
-  __u8 per_access_id;
-  __u8 op_access_id;
-#define KVM_S390_PGM_FLAGS_ILC_VALID 0x01
-#define KVM_S390_PGM_FLAGS_ILC_0 0x02
-#define KVM_S390_PGM_FLAGS_ILC_1 0x04
-#define KVM_S390_PGM_FLAGS_ILC_MASK 0x06
-#define KVM_S390_PGM_FLAGS_NO_REWIND 0x08
-  __u8 flags;
-  __u8 pad[2];
-};
-struct kvm_s390_prefix_info {
-  __u32 address;
-};
-struct kvm_s390_extcall_info {
-  __u16 code;
-};
-struct kvm_s390_emerg_info {
-  __u16 code;
-};
-#define KVM_S390_STOP_FLAG_STORE_STATUS 0x01
-struct kvm_s390_stop_info {
-  __u32 flags;
-};
-struct kvm_s390_mchk_info {
-  __u64 cr14;
-  __u64 mcic;
-  __u64 failing_storage_address;
-  __u32 ext_damage_code;
-  __u32 pad;
-  __u8 fixed_logout[16];
-};
-struct kvm_s390_irq {
-  __u64 type;
-  union {
-    struct kvm_s390_io_info io;
-    struct kvm_s390_ext_info ext;
-    struct kvm_s390_pgm_info pgm;
-    struct kvm_s390_emerg_info emerg;
-    struct kvm_s390_extcall_info extcall;
-    struct kvm_s390_prefix_info prefix;
-    struct kvm_s390_stop_info stop;
-    struct kvm_s390_mchk_info mchk;
-    char reserved[64];
-  } u;
-};
-struct kvm_s390_irq_state {
-  __u64 buf;
-  __u32 flags;
-  __u32 len;
-  __u32 reserved[4];
-};
 #define KVM_GUESTDBG_ENABLE 0x00000001
 #define KVM_GUESTDBG_SINGLESTEP 0x00000002
 struct kvm_guest_debug {
@@ -633,37 +453,6 @@
   __u64 args[4];
   __u8 pad[64];
 };
-#define KVM_PPC_PVINFO_FLAGS_EV_IDLE (1 << 0)
-struct kvm_ppc_pvinfo {
-  __u32 flags;
-  __u32 hcall[4];
-  __u8 pad[108];
-};
-#define KVM_PPC_PAGE_SIZES_MAX_SZ 8
-struct kvm_ppc_one_page_size {
-  __u32 page_shift;
-  __u32 pte_enc;
-};
-struct kvm_ppc_one_seg_page_size {
-  __u32 page_shift;
-  __u32 slb_enc;
-  struct kvm_ppc_one_page_size enc[KVM_PPC_PAGE_SIZES_MAX_SZ];
-};
-#define KVM_PPC_PAGE_SIZES_REAL 0x00000001
-#define KVM_PPC_1T_SEGMENTS 0x00000002
-#define KVM_PPC_NO_HASH 0x00000004
-struct kvm_ppc_smmu_info {
-  __u64 flags;
-  __u32 slb_size;
-  __u16 data_keys;
-  __u16 instr_keys;
-  struct kvm_ppc_one_seg_page_size sps[KVM_PPC_PAGE_SIZES_MAX_SZ];
-};
-struct kvm_ppc_resize_hpt {
-  __u64 flags;
-  __u32 shift;
-  __u32 pad;
-};
 #define KVMIO 0xAE
 #define KVM_VM_S390_UCONTROL 1
 #define KVM_VM_PPC_HV 1
@@ -681,9 +470,6 @@
 #define KVM_CHECK_EXTENSION _IO(KVMIO, 0x03)
 #define KVM_GET_VCPU_MMAP_SIZE _IO(KVMIO, 0x04)
 #define KVM_GET_SUPPORTED_CPUID _IOWR(KVMIO, 0x05, struct kvm_cpuid2)
-#define KVM_TRACE_ENABLE __KVM_DEPRECATED_MAIN_W_0x06
-#define KVM_TRACE_PAUSE __KVM_DEPRECATED_MAIN_0x07
-#define KVM_TRACE_DISABLE __KVM_DEPRECATED_MAIN_0x08
 #define KVM_GET_EMULATED_CPUID _IOWR(KVMIO, 0x09, struct kvm_cpuid2)
 #define KVM_GET_MSR_FEATURE_INDEX_LIST _IOWR(KVMIO, 0x0a, struct kvm_msr_list)
 #define KVM_CAP_IRQCHIP 0
@@ -705,9 +491,7 @@
 #define KVM_CAP_IOMMU 18
 #define KVM_CAP_DESTROY_MEMORY_REGION_WORKS 21
 #define KVM_CAP_USER_NMI 22
-#ifdef __KVM_HAVE_GUEST_DEBUG
 #define KVM_CAP_SET_GUEST_DEBUG 23
-#endif
 #ifdef __KVM_HAVE_PIT
 #define KVM_CAP_REINJECT_CONTROL 24
 #endif
@@ -926,7 +710,19 @@
 #define KVM_CAP_DIRTY_LOG_RING_ACQ_REL 223
 #define KVM_CAP_S390_PROTECTED_ASYNC_DISABLE 224
 #define KVM_CAP_DIRTY_LOG_RING_WITH_BITMAP 225
-#ifdef KVM_CAP_IRQ_ROUTING
+#define KVM_CAP_PMU_EVENT_MASKED_EVENTS 226
+#define KVM_CAP_COUNTER_OFFSET 227
+#define KVM_CAP_ARM_EAGER_SPLIT_CHUNK_SIZE 228
+#define KVM_CAP_ARM_SUPPORTED_BLOCK_SIZES 229
+#define KVM_CAP_ARM_SUPPORTED_REG_MASK_RANGES 230
+#define KVM_CAP_USER_MEMORY2 231
+#define KVM_CAP_MEMORY_FAULT_INFO 232
+#define KVM_CAP_MEMORY_ATTRIBUTES 233
+#define KVM_CAP_GUEST_MEMFD 234
+#define KVM_CAP_VM_TYPES 235
+#define KVM_CAP_PRE_FAULT_MEMORY 236
+#define KVM_CAP_X86_APIC_BUS_CYCLES_NS 237
+#define KVM_CAP_X86_GUEST_MODE 238
 struct kvm_irq_routing_irqchip {
   __u32 irqchip;
   __u32 pin;
@@ -981,36 +777,6 @@
   __u32 flags;
   struct kvm_irq_routing_entry entries[];
 };
-#endif
-#ifdef KVM_CAP_MCE
-struct kvm_x86_mce {
-  __u64 status;
-  __u64 addr;
-  __u64 misc;
-  __u64 mcg_status;
-  __u8 bank;
-  __u8 pad1[7];
-  __u64 pad2[3];
-};
-#endif
-#ifdef KVM_CAP_XEN_HVM
-#define KVM_XEN_HVM_CONFIG_HYPERCALL_MSR (1 << 0)
-#define KVM_XEN_HVM_CONFIG_INTERCEPT_HCALL (1 << 1)
-#define KVM_XEN_HVM_CONFIG_SHARED_INFO (1 << 2)
-#define KVM_XEN_HVM_CONFIG_RUNSTATE (1 << 3)
-#define KVM_XEN_HVM_CONFIG_EVTCHN_2LEVEL (1 << 4)
-#define KVM_XEN_HVM_CONFIG_EVTCHN_SEND (1 << 5)
-#define KVM_XEN_HVM_CONFIG_RUNSTATE_UPDATE_FLAG (1 << 6)
-struct kvm_xen_hvm_config {
-  __u32 flags;
-  __u32 msr;
-  __u64 blob_addr_32;
-  __u64 blob_addr_64;
-  __u8 blob_size_32;
-  __u8 blob_size_64;
-  __u8 pad2[30];
-};
-#endif
 #define KVM_IRQFD_FLAG_DEASSIGN (1 << 0)
 #define KVM_IRQFD_FLAG_RESAMPLE (1 << 1)
 struct kvm_irqfd {
@@ -1053,6 +819,7 @@
 #define KVM_REG_ARM64 0x6000000000000000ULL
 #define KVM_REG_MIPS 0x7000000000000000ULL
 #define KVM_REG_RISCV 0x8000000000000000ULL
+#define KVM_REG_LOONGARCH 0x9000000000000000ULL
 #define KVM_REG_SIZE_SHIFT 52
 #define KVM_REG_SIZE_MASK 0x00f0000000000000ULL
 #define KVM_REG_SIZE_U8 0x0000000000000000ULL
@@ -1097,9 +864,12 @@
   __u64 attr;
   __u64 addr;
 };
-#define KVM_DEV_VFIO_GROUP 1
-#define KVM_DEV_VFIO_GROUP_ADD 1
-#define KVM_DEV_VFIO_GROUP_DEL 2
+#define KVM_DEV_VFIO_FILE 1
+#define KVM_DEV_VFIO_FILE_ADD 1
+#define KVM_DEV_VFIO_FILE_DEL 2
+#define KVM_DEV_VFIO_GROUP KVM_DEV_VFIO_FILE
+#define KVM_DEV_VFIO_GROUP_ADD KVM_DEV_VFIO_FILE_ADD
+#define KVM_DEV_VFIO_GROUP_DEL KVM_DEV_VFIO_FILE_DEL
 #define KVM_DEV_VFIO_GROUP_SET_SPAPR_TCE 3
 enum kvm_device_type {
   KVM_DEV_TYPE_FSL_MPIC_20 = 1,
@@ -1122,6 +892,8 @@
 #define KVM_DEV_TYPE_XIVE KVM_DEV_TYPE_XIVE
   KVM_DEV_TYPE_ARM_PV_TIME,
 #define KVM_DEV_TYPE_ARM_PV_TIME KVM_DEV_TYPE_ARM_PV_TIME
+  KVM_DEV_TYPE_RISCV_AIA,
+#define KVM_DEV_TYPE_RISCV_AIA KVM_DEV_TYPE_RISCV_AIA
   KVM_DEV_TYPE_MAX,
 };
 struct kvm_vfio_spapr_tce {
@@ -1135,11 +907,7 @@
 #define KVM_SET_USER_MEMORY_REGION _IOW(KVMIO, 0x46, struct kvm_userspace_memory_region)
 #define KVM_SET_TSS_ADDR _IO(KVMIO, 0x47)
 #define KVM_SET_IDENTITY_MAP_ADDR _IOW(KVMIO, 0x48, __u64)
-struct kvm_s390_ucas_mapping {
-  __u64 user_addr;
-  __u64 vcpu_addr;
-  __u64 length;
-};
+#define KVM_SET_USER_MEMORY_REGION2 _IOW(KVMIO, 0x49, struct kvm_userspace_memory_region2)
 #define KVM_S390_UCAS_MAP _IOW(KVMIO, 0x50, struct kvm_s390_ucas_mapping)
 #define KVM_S390_UCAS_UNMAP _IOW(KVMIO, 0x51, struct kvm_s390_ucas_mapping)
 #define KVM_S390_VCPU_FAULT _IOW(KVMIO, 0x52, unsigned long)
@@ -1153,15 +921,8 @@
 #define KVM_IRQ_LINE_STATUS _IOWR(KVMIO, 0x67, struct kvm_irq_level)
 #define KVM_REGISTER_COALESCED_MMIO _IOW(KVMIO, 0x67, struct kvm_coalesced_mmio_zone)
 #define KVM_UNREGISTER_COALESCED_MMIO _IOW(KVMIO, 0x68, struct kvm_coalesced_mmio_zone)
-#define KVM_ASSIGN_PCI_DEVICE _IOR(KVMIO, 0x69, struct kvm_assigned_pci_dev)
 #define KVM_SET_GSI_ROUTING _IOW(KVMIO, 0x6a, struct kvm_irq_routing)
-#define KVM_ASSIGN_IRQ __KVM_DEPRECATED_VM_R_0x70
-#define KVM_ASSIGN_DEV_IRQ _IOW(KVMIO, 0x70, struct kvm_assigned_irq)
 #define KVM_REINJECT_CONTROL _IO(KVMIO, 0x71)
-#define KVM_DEASSIGN_PCI_DEVICE _IOW(KVMIO, 0x72, struct kvm_assigned_pci_dev)
-#define KVM_ASSIGN_SET_MSIX_NR _IOW(KVMIO, 0x73, struct kvm_assigned_msix_nr)
-#define KVM_ASSIGN_SET_MSIX_ENTRY _IOW(KVMIO, 0x74, struct kvm_assigned_msix_entry)
-#define KVM_DEASSIGN_DEV_IRQ _IOW(KVMIO, 0x75, struct kvm_assigned_irq)
 #define KVM_IRQFD _IOW(KVMIO, 0x76, struct kvm_irqfd)
 #define KVM_CREATE_PIT2 _IOW(KVMIO, 0x77, struct kvm_pit_config)
 #define KVM_SET_BOOT_CPU_ID _IO(KVMIO, 0x78)
@@ -1174,7 +935,6 @@
 #define KVM_PPC_GET_PVINFO _IOW(KVMIO, 0xa1, struct kvm_ppc_pvinfo)
 #define KVM_SET_TSC_KHZ _IO(KVMIO, 0xa2)
 #define KVM_GET_TSC_KHZ _IO(KVMIO, 0xa3)
-#define KVM_ASSIGN_SET_INTX_MASK _IOW(KVMIO, 0xa4, struct kvm_assigned_pci_dev)
 #define KVM_SIGNAL_MSI _IOW(KVMIO, 0xa5, struct kvm_msi)
 #define KVM_PPC_GET_SMMU_INFO _IOR(KVMIO, 0xa6, struct kvm_ppc_smmu_info)
 #define KVM_PPC_ALLOCATE_HTAB _IOWR(KVMIO, 0xa7, __u32)
@@ -1192,6 +952,8 @@
 #define KVM_SET_PMU_EVENT_FILTER _IOW(KVMIO, 0xb2, struct kvm_pmu_event_filter)
 #define KVM_PPC_SVM_OFF _IO(KVMIO, 0xb3)
 #define KVM_ARM_MTE_COPY_TAGS _IOR(KVMIO, 0xb4, struct kvm_arm_copy_mte_tags)
+#define KVM_ARM_SET_COUNTER_OFFSET _IOW(KVMIO, 0xb5, struct kvm_arm_counter_offset)
+#define KVM_ARM_GET_REG_WRITABLE_MASKS _IOR(KVMIO, 0xb6, struct reg_mask_range)
 #define KVM_CREATE_DEVICE _IOWR(KVMIO, 0xe0, struct kvm_create_device)
 #define KVM_SET_DEVICE_ATTR _IOW(KVMIO, 0xe1, struct kvm_device_attr)
 #define KVM_GET_DEVICE_ATTR _IOW(KVMIO, 0xe2, struct kvm_device_attr)
@@ -1203,7 +965,6 @@
 #define KVM_SET_SREGS _IOW(KVMIO, 0x84, struct kvm_sregs)
 #define KVM_TRANSLATE _IOWR(KVMIO, 0x85, struct kvm_translation)
 #define KVM_INTERRUPT _IOW(KVMIO, 0x86, struct kvm_interrupt)
-#define KVM_DEBUG_GUEST __KVM_DEPRECATED_VCPU_W_0x87
 #define KVM_GET_MSRS _IOWR(KVMIO, 0x88, struct kvm_msrs)
 #define KVM_SET_MSRS _IOW(KVMIO, 0x89, struct kvm_msrs)
 #define KVM_SET_CPUID _IOW(KVMIO, 0x8a, struct kvm_cpuid)
@@ -1269,322 +1030,16 @@
 #define KVM_ARM_VCPU_FINALIZE _IOW(KVMIO, 0xc2, int)
 #define KVM_S390_NORMAL_RESET _IO(KVMIO, 0xc3)
 #define KVM_S390_CLEAR_RESET _IO(KVMIO, 0xc4)
-struct kvm_s390_pv_sec_parm {
-  __u64 origin;
-  __u64 length;
-};
-struct kvm_s390_pv_unp {
-  __u64 addr;
-  __u64 size;
-  __u64 tweak;
-};
-enum pv_cmd_dmp_id {
-  KVM_PV_DUMP_INIT,
-  KVM_PV_DUMP_CONFIG_STOR_STATE,
-  KVM_PV_DUMP_COMPLETE,
-  KVM_PV_DUMP_CPU,
-};
-struct kvm_s390_pv_dmp {
-  __u64 subcmd;
-  __u64 buff_addr;
-  __u64 buff_len;
-  __u64 gaddr;
-  __u64 reserved[4];
-};
-enum pv_cmd_info_id {
-  KVM_PV_INFO_VM,
-  KVM_PV_INFO_DUMP,
-};
-struct kvm_s390_pv_info_dump {
-  __u64 dump_cpu_buffer_len;
-  __u64 dump_config_mem_buffer_per_1m;
-  __u64 dump_config_finalize_len;
-};
-struct kvm_s390_pv_info_vm {
-  __u64 inst_calls_list[4];
-  __u64 max_cpus;
-  __u64 max_guests;
-  __u64 max_guest_addr;
-  __u64 feature_indication;
-};
-struct kvm_s390_pv_info_header {
-  __u32 id;
-  __u32 len_max;
-  __u32 len_written;
-  __u32 reserved;
-};
-struct kvm_s390_pv_info {
-  struct kvm_s390_pv_info_header header;
-  union {
-    struct kvm_s390_pv_info_dump dump;
-    struct kvm_s390_pv_info_vm vm;
-  };
-};
-enum pv_cmd_id {
-  KVM_PV_ENABLE,
-  KVM_PV_DISABLE,
-  KVM_PV_SET_SEC_PARMS,
-  KVM_PV_UNPACK,
-  KVM_PV_VERIFY,
-  KVM_PV_PREP_RESET,
-  KVM_PV_UNSHARE_ALL,
-  KVM_PV_INFO,
-  KVM_PV_DUMP,
-  KVM_PV_ASYNC_CLEANUP_PREPARE,
-  KVM_PV_ASYNC_CLEANUP_PERFORM,
-};
-struct kvm_pv_cmd {
-  __u32 cmd;
-  __u16 rc;
-  __u16 rrc;
-  __u64 data;
-  __u32 flags;
-  __u32 reserved[3];
-};
 #define KVM_S390_PV_COMMAND _IOWR(KVMIO, 0xc5, struct kvm_pv_cmd)
 #define KVM_X86_SET_MSR_FILTER _IOW(KVMIO, 0xc6, struct kvm_msr_filter)
 #define KVM_RESET_DIRTY_RINGS _IO(KVMIO, 0xc7)
 #define KVM_XEN_HVM_GET_ATTR _IOWR(KVMIO, 0xc8, struct kvm_xen_hvm_attr)
 #define KVM_XEN_HVM_SET_ATTR _IOW(KVMIO, 0xc9, struct kvm_xen_hvm_attr)
-struct kvm_xen_hvm_attr {
-  __u16 type;
-  __u16 pad[3];
-  union {
-    __u8 long_mode;
-    __u8 vector;
-    __u8 runstate_update_flag;
-    struct {
-      __u64 gfn;
-#define KVM_XEN_INVALID_GFN ((__u64) - 1)
-    } shared_info;
-    struct {
-      __u32 send_port;
-      __u32 type;
-      __u32 flags;
-#define KVM_XEN_EVTCHN_DEASSIGN (1 << 0)
-#define KVM_XEN_EVTCHN_UPDATE (1 << 1)
-#define KVM_XEN_EVTCHN_RESET (1 << 2)
-      union {
-        struct {
-          __u32 port;
-          __u32 vcpu;
-          __u32 priority;
-        } port;
-        struct {
-          __u32 port;
-          __s32 fd;
-        } eventfd;
-        __u32 padding[4];
-      } deliver;
-    } evtchn;
-    __u32 xen_version;
-    __u64 pad[8];
-  } u;
-};
-#define KVM_XEN_ATTR_TYPE_LONG_MODE 0x0
-#define KVM_XEN_ATTR_TYPE_SHARED_INFO 0x1
-#define KVM_XEN_ATTR_TYPE_UPCALL_VECTOR 0x2
-#define KVM_XEN_ATTR_TYPE_EVTCHN 0x3
-#define KVM_XEN_ATTR_TYPE_XEN_VERSION 0x4
-#define KVM_XEN_ATTR_TYPE_RUNSTATE_UPDATE_FLAG 0x5
 #define KVM_XEN_VCPU_GET_ATTR _IOWR(KVMIO, 0xca, struct kvm_xen_vcpu_attr)
 #define KVM_XEN_VCPU_SET_ATTR _IOW(KVMIO, 0xcb, struct kvm_xen_vcpu_attr)
 #define KVM_XEN_HVM_EVTCHN_SEND _IOW(KVMIO, 0xd0, struct kvm_irq_routing_xen_evtchn)
 #define KVM_GET_SREGS2 _IOR(KVMIO, 0xcc, struct kvm_sregs2)
 #define KVM_SET_SREGS2 _IOW(KVMIO, 0xcd, struct kvm_sregs2)
-struct kvm_xen_vcpu_attr {
-  __u16 type;
-  __u16 pad[3];
-  union {
-    __u64 gpa;
-#define KVM_XEN_INVALID_GPA ((__u64) - 1)
-    __u64 pad[8];
-    struct {
-      __u64 state;
-      __u64 state_entry_time;
-      __u64 time_running;
-      __u64 time_runnable;
-      __u64 time_blocked;
-      __u64 time_offline;
-    } runstate;
-    __u32 vcpu_id;
-    struct {
-      __u32 port;
-      __u32 priority;
-      __u64 expires_ns;
-    } timer;
-    __u8 vector;
-  } u;
-};
-#define KVM_XEN_VCPU_ATTR_TYPE_VCPU_INFO 0x0
-#define KVM_XEN_VCPU_ATTR_TYPE_VCPU_TIME_INFO 0x1
-#define KVM_XEN_VCPU_ATTR_TYPE_RUNSTATE_ADDR 0x2
-#define KVM_XEN_VCPU_ATTR_TYPE_RUNSTATE_CURRENT 0x3
-#define KVM_XEN_VCPU_ATTR_TYPE_RUNSTATE_DATA 0x4
-#define KVM_XEN_VCPU_ATTR_TYPE_RUNSTATE_ADJUST 0x5
-#define KVM_XEN_VCPU_ATTR_TYPE_VCPU_ID 0x6
-#define KVM_XEN_VCPU_ATTR_TYPE_TIMER 0x7
-#define KVM_XEN_VCPU_ATTR_TYPE_UPCALL_VECTOR 0x8
-enum sev_cmd_id {
-  KVM_SEV_INIT = 0,
-  KVM_SEV_ES_INIT,
-  KVM_SEV_LAUNCH_START,
-  KVM_SEV_LAUNCH_UPDATE_DATA,
-  KVM_SEV_LAUNCH_UPDATE_VMSA,
-  KVM_SEV_LAUNCH_SECRET,
-  KVM_SEV_LAUNCH_MEASURE,
-  KVM_SEV_LAUNCH_FINISH,
-  KVM_SEV_SEND_START,
-  KVM_SEV_SEND_UPDATE_DATA,
-  KVM_SEV_SEND_UPDATE_VMSA,
-  KVM_SEV_SEND_FINISH,
-  KVM_SEV_RECEIVE_START,
-  KVM_SEV_RECEIVE_UPDATE_DATA,
-  KVM_SEV_RECEIVE_UPDATE_VMSA,
-  KVM_SEV_RECEIVE_FINISH,
-  KVM_SEV_GUEST_STATUS,
-  KVM_SEV_DBG_DECRYPT,
-  KVM_SEV_DBG_ENCRYPT,
-  KVM_SEV_CERT_EXPORT,
-  KVM_SEV_GET_ATTESTATION_REPORT,
-  KVM_SEV_SEND_CANCEL,
-  KVM_SEV_NR_MAX,
-};
-struct kvm_sev_cmd {
-  __u32 id;
-  __u64 data;
-  __u32 error;
-  __u32 sev_fd;
-};
-struct kvm_sev_launch_start {
-  __u32 handle;
-  __u32 policy;
-  __u64 dh_uaddr;
-  __u32 dh_len;
-  __u64 session_uaddr;
-  __u32 session_len;
-};
-struct kvm_sev_launch_update_data {
-  __u64 uaddr;
-  __u32 len;
-};
-struct kvm_sev_launch_secret {
-  __u64 hdr_uaddr;
-  __u32 hdr_len;
-  __u64 guest_uaddr;
-  __u32 guest_len;
-  __u64 trans_uaddr;
-  __u32 trans_len;
-};
-struct kvm_sev_launch_measure {
-  __u64 uaddr;
-  __u32 len;
-};
-struct kvm_sev_guest_status {
-  __u32 handle;
-  __u32 policy;
-  __u32 state;
-};
-struct kvm_sev_dbg {
-  __u64 src_uaddr;
-  __u64 dst_uaddr;
-  __u32 len;
-};
-struct kvm_sev_attestation_report {
-  __u8 mnonce[16];
-  __u64 uaddr;
-  __u32 len;
-};
-struct kvm_sev_send_start {
-  __u32 policy;
-  __u64 pdh_cert_uaddr;
-  __u32 pdh_cert_len;
-  __u64 plat_certs_uaddr;
-  __u32 plat_certs_len;
-  __u64 amd_certs_uaddr;
-  __u32 amd_certs_len;
-  __u64 session_uaddr;
-  __u32 session_len;
-};
-struct kvm_sev_send_update_data {
-  __u64 hdr_uaddr;
-  __u32 hdr_len;
-  __u64 guest_uaddr;
-  __u32 guest_len;
-  __u64 trans_uaddr;
-  __u32 trans_len;
-};
-struct kvm_sev_receive_start {
-  __u32 handle;
-  __u32 policy;
-  __u64 pdh_uaddr;
-  __u32 pdh_len;
-  __u64 session_uaddr;
-  __u32 session_len;
-};
-struct kvm_sev_receive_update_data {
-  __u64 hdr_uaddr;
-  __u32 hdr_len;
-  __u64 guest_uaddr;
-  __u32 guest_len;
-  __u64 trans_uaddr;
-  __u32 trans_len;
-};
-#define KVM_DEV_ASSIGN_ENABLE_IOMMU (1 << 0)
-#define KVM_DEV_ASSIGN_PCI_2_3 (1 << 1)
-#define KVM_DEV_ASSIGN_MASK_INTX (1 << 2)
-struct kvm_assigned_pci_dev {
-  __u32 assigned_dev_id;
-  __u32 busnr;
-  __u32 devfn;
-  __u32 flags;
-  __u32 segnr;
-  union {
-    __u32 reserved[11];
-  };
-};
-#define KVM_DEV_IRQ_HOST_INTX (1 << 0)
-#define KVM_DEV_IRQ_HOST_MSI (1 << 1)
-#define KVM_DEV_IRQ_HOST_MSIX (1 << 2)
-#define KVM_DEV_IRQ_GUEST_INTX (1 << 8)
-#define KVM_DEV_IRQ_GUEST_MSI (1 << 9)
-#define KVM_DEV_IRQ_GUEST_MSIX (1 << 10)
-#define KVM_DEV_IRQ_HOST_MASK 0x00ff
-#define KVM_DEV_IRQ_GUEST_MASK 0xff00
-struct kvm_assigned_irq {
-  __u32 assigned_dev_id;
-  __u32 host_irq;
-  __u32 guest_irq;
-  __u32 flags;
-  union {
-    __u32 reserved[12];
-  };
-};
-struct kvm_assigned_msix_nr {
-  __u32 assigned_dev_id;
-  __u16 entry_nr;
-  __u16 padding;
-};
-#define KVM_MAX_MSIX_PER_DEV 256
-struct kvm_assigned_msix_entry {
-  __u32 assigned_dev_id;
-  __u32 gsi;
-  __u16 entry;
-  __u16 padding[3];
-};
-#define KVM_X2APIC_API_USE_32BIT_IDS (1ULL << 0)
-#define KVM_X2APIC_API_DISABLE_BROADCAST_QUIRK (1ULL << 1)
-#define KVM_ARM_DEV_EL1_VTIMER (1 << 0)
-#define KVM_ARM_DEV_EL1_PTIMER (1 << 1)
-#define KVM_ARM_DEV_PMU (1 << 2)
-struct kvm_hyperv_eventfd {
-  __u32 conn_id;
-  __s32 fd;
-  __u32 flags;
-  __u32 padding[3];
-};
-#define KVM_HYPERV_CONN_ID_MASK 0x00ffffff
-#define KVM_HYPERV_EVENTFD_DEASSIGN (1 << 0)
 #define KVM_DIRTY_LOG_MANUAL_PROTECT_ENABLE (1 << 0)
 #define KVM_DIRTY_LOG_INITIALLY_SET (1 << 1)
 #ifndef KVM_DIRTY_LOG_PAGE_OFFSET
@@ -1644,24 +1099,25 @@
 #define KVM_X86_NOTIFY_VMEXIT_ENABLED (1ULL << 0)
 #define KVM_X86_NOTIFY_VMEXIT_USER (1ULL << 1)
 #define KVM_S390_ZPCI_OP _IOW(KVMIO, 0xd1, struct kvm_s390_zpci_op)
-struct kvm_s390_zpci_op {
-  __u32 fh;
-  __u8 op;
-  __u8 pad[3];
-  union {
-    struct {
-      __u64 ibv;
-      __u64 sb;
-      __u32 flags;
-      __u32 noi;
-      __u8 isc;
-      __u8 sbo;
-      __u16 pad;
-    } reg_aen;
-    __u64 reserved[8];
-  } u;
+#define KVM_SET_MEMORY_ATTRIBUTES _IOW(KVMIO, 0xd2, struct kvm_memory_attributes)
+struct kvm_memory_attributes {
+  __u64 address;
+  __u64 size;
+  __u64 attributes;
+  __u64 flags;
 };
-#define KVM_S390_ZPCIOP_REG_AEN 0
-#define KVM_S390_ZPCIOP_DEREG_AEN 1
-#define KVM_S390_ZPCIOP_REGAEN_HOST (1 << 0)
+#define KVM_MEMORY_ATTRIBUTE_PRIVATE (1ULL << 3)
+#define KVM_CREATE_GUEST_MEMFD _IOWR(KVMIO, 0xd4, struct kvm_create_guest_memfd)
+struct kvm_create_guest_memfd {
+  __u64 size;
+  __u64 flags;
+  __u64 reserved[6];
+};
+#define KVM_PRE_FAULT_MEMORY _IOWR(KVMIO, 0xd5, struct kvm_pre_fault_memory)
+struct kvm_pre_fault_memory {
+  __u64 gpa;
+  __u64 size;
+  __u64 flags;
+  __u64 padding[5];
+};
 #endif
diff --git a/libc/kernel/uapi/linux/kvm_para.h b/libc/kernel/uapi/linux/kvm_para.h
index 85084c2..762bd9c 100644
--- a/libc/kernel/uapi/linux/kvm_para.h
+++ b/libc/kernel/uapi/linux/kvm_para.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI__LINUX_KVM_PARA_H
 #define _UAPI__LINUX_KVM_PARA_H
 #define KVM_ENOSYS 1000
diff --git a/libc/kernel/uapi/linux/l2tp.h b/libc/kernel/uapi/linux/l2tp.h
index dee634e..d814716 100644
--- a/libc/kernel/uapi/linux/l2tp.h
+++ b/libc/kernel/uapi/linux/l2tp.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_L2TP_H_
 #define _UAPI_LINUX_L2TP_H_
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/landlock.h b/libc/kernel/uapi/linux/landlock.h
index c284ea4..f903ae6 100644
--- a/libc/kernel/uapi/linux/landlock.h
+++ b/libc/kernel/uapi/linux/landlock.h
@@ -1,35 +1,29 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_LANDLOCK_H
 #define _UAPI_LINUX_LANDLOCK_H
 #include <linux/types.h>
 struct landlock_ruleset_attr {
   __u64 handled_access_fs;
+  __u64 handled_access_net;
 };
 #define LANDLOCK_CREATE_RULESET_VERSION (1U << 0)
 enum landlock_rule_type {
   LANDLOCK_RULE_PATH_BENEATH = 1,
+  LANDLOCK_RULE_NET_PORT,
 };
 struct landlock_path_beneath_attr {
   __u64 allowed_access;
   __s32 parent_fd;
 } __attribute__((packed));
+struct landlock_net_port_attr {
+  __u64 allowed_access;
+  __u64 port;
+};
 #define LANDLOCK_ACCESS_FS_EXECUTE (1ULL << 0)
 #define LANDLOCK_ACCESS_FS_WRITE_FILE (1ULL << 1)
 #define LANDLOCK_ACCESS_FS_READ_FILE (1ULL << 2)
@@ -45,4 +39,7 @@
 #define LANDLOCK_ACCESS_FS_MAKE_SYM (1ULL << 12)
 #define LANDLOCK_ACCESS_FS_REFER (1ULL << 13)
 #define LANDLOCK_ACCESS_FS_TRUNCATE (1ULL << 14)
+#define LANDLOCK_ACCESS_FS_IOCTL_DEV (1ULL << 15)
+#define LANDLOCK_ACCESS_NET_BIND_TCP (1ULL << 0)
+#define LANDLOCK_ACCESS_NET_CONNECT_TCP (1ULL << 1)
 #endif
diff --git a/libc/kernel/uapi/linux/libc-compat.h b/libc/kernel/uapi/linux/libc-compat.h
index 447a46a..289b7c5 100644
--- a/libc/kernel/uapi/linux/libc-compat.h
+++ b/libc/kernel/uapi/linux/libc-compat.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LIBC_COMPAT_H
 #define _UAPI_LIBC_COMPAT_H
 #ifdef __GLIBC__
diff --git a/libc/kernel/uapi/linux/limits.h b/libc/kernel/uapi/linux/limits.h
index 101b7aa..e2d5103 100644
--- a/libc/kernel/uapi/linux/limits.h
+++ b/libc/kernel/uapi/linux/limits.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_LIMITS_H
 #define _UAPI_LINUX_LIMITS_H
 #define NR_OPEN 1024
diff --git a/libc/kernel/uapi/linux/lirc.h b/libc/kernel/uapi/linux/lirc.h
index dff0b63..2dea732 100644
--- a/libc/kernel/uapi/linux/lirc.h
+++ b/libc/kernel/uapi/linux/lirc.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _LINUX_LIRC_H
 #define _LINUX_LIRC_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/llc.h b/libc/kernel/uapi/linux/llc.h
index e6f778f..9e2d632 100644
--- a/libc/kernel/uapi/linux/llc.h
+++ b/libc/kernel/uapi/linux/llc.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI__LINUX_LLC_H
 #define _UAPI__LINUX_LLC_H
 #include <linux/socket.h>
diff --git a/libc/kernel/uapi/linux/loadpin.h b/libc/kernel/uapi/linux/loadpin.h
index 2641939..69b9507 100644
--- a/libc/kernel/uapi/linux/loadpin.h
+++ b/libc/kernel/uapi/linux/loadpin.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_LOOP_LOADPIN_H
 #define _UAPI_LINUX_LOOP_LOADPIN_H
 #define LOADPIN_IOC_MAGIC 'L'
diff --git a/libc/kernel/uapi/linux/loop.h b/libc/kernel/uapi/linux/loop.h
index 56eba91..eb6ba1b 100644
--- a/libc/kernel/uapi/linux/loop.h
+++ b/libc/kernel/uapi/linux/loop.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_LOOP_H
 #define _UAPI_LINUX_LOOP_H
 #define LO_NAME_SIZE 64
diff --git a/libc/kernel/uapi/linux/lp.h b/libc/kernel/uapi/linux/lp.h
index 35d5d5a..277b3de 100644
--- a/libc/kernel/uapi/linux/lp.h
+++ b/libc/kernel/uapi/linux/lp.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_LP_H
 #define _UAPI_LINUX_LP_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/lsm.h b/libc/kernel/uapi/linux/lsm.h
new file mode 100644
index 0000000..3a3f152
--- /dev/null
+++ b/libc/kernel/uapi/linux/lsm.h
@@ -0,0 +1,41 @@
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
+#ifndef _UAPI_LINUX_LSM_H
+#define _UAPI_LINUX_LSM_H
+#include <linux/stddef.h>
+#include <linux/types.h>
+#include <linux/unistd.h>
+struct lsm_ctx {
+  __u64 id;
+  __u64 flags;
+  __u64 len;
+  __u64 ctx_len;
+  __u8 ctx[] __counted_by(ctx_len);
+};
+#define LSM_ID_UNDEF 0
+#define LSM_ID_CAPABILITY 100
+#define LSM_ID_SELINUX 101
+#define LSM_ID_SMACK 102
+#define LSM_ID_TOMOYO 103
+#define LSM_ID_APPARMOR 104
+#define LSM_ID_YAMA 105
+#define LSM_ID_LOADPIN 106
+#define LSM_ID_SAFESETID 107
+#define LSM_ID_LOCKDOWN 108
+#define LSM_ID_BPF 109
+#define LSM_ID_LANDLOCK 110
+#define LSM_ID_IMA 111
+#define LSM_ID_EVM 112
+#define LSM_ATTR_UNDEF 0
+#define LSM_ATTR_CURRENT 100
+#define LSM_ATTR_EXEC 101
+#define LSM_ATTR_FSCREATE 102
+#define LSM_ATTR_KEYCREATE 103
+#define LSM_ATTR_PREV 104
+#define LSM_ATTR_SOCKCREATE 105
+#define LSM_FLAG_SINGLE 0x0001
+#endif
diff --git a/libc/kernel/uapi/linux/lwtunnel.h b/libc/kernel/uapi/linux/lwtunnel.h
index 94011dd..5cb0901 100644
--- a/libc/kernel/uapi/linux/lwtunnel.h
+++ b/libc/kernel/uapi/linux/lwtunnel.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LWTUNNEL_H_
 #define _UAPI_LWTUNNEL_H_
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/magic.h b/libc/kernel/uapi/linux/magic.h
index ac2a0f3..5f2a2a2 100644
--- a/libc/kernel/uapi/linux/magic.h
+++ b/libc/kernel/uapi/linux/magic.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __LINUX_MAGIC_H__
 #define __LINUX_MAGIC_H__
 #define ADFS_SUPER_MAGIC 0xadf5
@@ -53,6 +41,7 @@
 #define HOSTFS_SUPER_MAGIC 0x00c0ffee
 #define OVERLAYFS_SUPER_MAGIC 0x794c7630
 #define FUSE_SUPER_MAGIC 0x65735546
+#define BCACHEFS_SUPER_MAGIC 0xca451a4e
 #define MINIX_SUPER_MAGIC 0x137F
 #define MINIX_SUPER_MAGIC2 0x138F
 #define MINIX2_SUPER_MAGIC 0x2468
@@ -102,4 +91,5 @@
 #define DMA_BUF_MAGIC 0x444d4142
 #define DEVMEM_MAGIC 0x454d444d
 #define SECRETMEM_MAGIC 0x5345434d
+#define PID_FS_MAGIC 0x50494446
 #endif
diff --git a/libc/kernel/uapi/linux/major.h b/libc/kernel/uapi/linux/major.h
index f5e2cfb..24667ea 100644
--- a/libc/kernel/uapi/linux/major.h
+++ b/libc/kernel/uapi/linux/major.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _LINUX_MAJOR_H
 #define _LINUX_MAJOR_H
 #define UNNAMED_MAJOR 0
diff --git a/libc/kernel/uapi/linux/map_to_14segment.h b/libc/kernel/uapi/linux/map_to_14segment.h
index 657df6c..9e4baa6 100644
--- a/libc/kernel/uapi/linux/map_to_14segment.h
+++ b/libc/kernel/uapi/linux/map_to_14segment.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef MAP_TO_14SEGMENT_H
 #define MAP_TO_14SEGMENT_H
 #include <linux/errno.h>
diff --git a/libc/kernel/uapi/linux/map_to_7segment.h b/libc/kernel/uapi/linux/map_to_7segment.h
index ccb76d3..cd2053b 100644
--- a/libc/kernel/uapi/linux/map_to_7segment.h
+++ b/libc/kernel/uapi/linux/map_to_7segment.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef MAP_TO_7SEGMENT_H
 #define MAP_TO_7SEGMENT_H
 #include <linux/errno.h>
diff --git a/libc/kernel/uapi/linux/matroxfb.h b/libc/kernel/uapi/linux/matroxfb.h
index 37f6322..fe854ce 100644
--- a/libc/kernel/uapi/linux/matroxfb.h
+++ b/libc/kernel/uapi/linux/matroxfb.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __LINUX_MATROXFB_H__
 #define __LINUX_MATROXFB_H__
 #include <asm/ioctl.h>
diff --git a/libc/kernel/uapi/linux/max2175.h b/libc/kernel/uapi/linux/max2175.h
index e6998e1..995a9ba 100644
--- a/libc/kernel/uapi/linux/max2175.h
+++ b/libc/kernel/uapi/linux/max2175.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __UAPI_MAX2175_H_
 #define __UAPI_MAX2175_H_
 #include <linux/v4l2-controls.h>
diff --git a/libc/kernel/uapi/linux/mctp.h b/libc/kernel/uapi/linux/mctp.h
index f02c12f..0057842 100644
--- a/libc/kernel/uapi/linux/mctp.h
+++ b/libc/kernel/uapi/linux/mctp.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __UAPI_MCTP_H
 #define __UAPI_MCTP_H
 #include <linux/types.h>
@@ -50,9 +38,18 @@
 #define MCTP_OPT_ADDR_EXT 1
 #define SIOCMCTPALLOCTAG (SIOCPROTOPRIVATE + 0)
 #define SIOCMCTPDROPTAG (SIOCPROTOPRIVATE + 1)
+#define SIOCMCTPALLOCTAG2 (SIOCPROTOPRIVATE + 2)
+#define SIOCMCTPDROPTAG2 (SIOCPROTOPRIVATE + 3)
 struct mctp_ioc_tag_ctl {
   mctp_eid_t peer_addr;
   __u8 tag;
   __u16 flags;
 };
+struct mctp_ioc_tag_ctl2 {
+  unsigned int net;
+  mctp_eid_t peer_addr;
+  mctp_eid_t local_addr;
+  __u16 flags;
+  __u8 tag;
+};
 #endif
diff --git a/libc/kernel/uapi/linux/mdio.h b/libc/kernel/uapi/linux/mdio.h
index 7a2c9af..7b51b73 100644
--- a/libc/kernel/uapi/linux/mdio.h
+++ b/libc/kernel/uapi/linux/mdio.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI__LINUX_MDIO_H__
 #define _UAPI__LINUX_MDIO_H__
 #include <linux/types.h>
@@ -78,7 +66,11 @@
 #define MDIO_AN_T1_LP_L 517
 #define MDIO_AN_T1_LP_M 518
 #define MDIO_AN_T1_LP_H 519
+#define MDIO_AN_10BT1_AN_CTRL 526
+#define MDIO_AN_10BT1_AN_STAT 527
 #define MDIO_PMA_PMD_BT1_CTRL 2100
+#define MDIO_PCS_1000BT1_CTRL 2304
+#define MDIO_PCS_1000BT1_STAT 2305
 #define MDIO_PMA_LASI_RXCTRL 0x9000
 #define MDIO_PMA_LASI_TXCTRL 0x9001
 #define MDIO_PMA_LASI_CTRL 0x9002
@@ -118,6 +110,8 @@
 #define MDIO_PMA_SPEED_1000 0x0010
 #define MDIO_PMA_SPEED_100 0x0020
 #define MDIO_PMA_SPEED_10 0x0040
+#define MDIO_PMA_SPEED_2_5G 0x2000
+#define MDIO_PMA_SPEED_5G 0x4000
 #define MDIO_PCS_SPEED_10P2B 0x0002
 #define MDIO_PCS_SPEED_2_5G 0x0040
 #define MDIO_PCS_SPEED_5G 0x0080
@@ -200,6 +194,28 @@
 #define MDIO_PMA_EXTABLE_10BT 0x0100
 #define MDIO_PMA_EXTABLE_BT1 0x0800
 #define MDIO_PMA_EXTABLE_NBT 0x4000
+#define MDIO_AN_C73_0_S_MASK GENMASK(4, 0)
+#define MDIO_AN_C73_0_E_MASK GENMASK(9, 5)
+#define MDIO_AN_C73_0_PAUSE BIT(10)
+#define MDIO_AN_C73_0_ASM_DIR BIT(11)
+#define MDIO_AN_C73_0_C2 BIT(12)
+#define MDIO_AN_C73_0_RF BIT(13)
+#define MDIO_AN_C73_0_ACK BIT(14)
+#define MDIO_AN_C73_0_NP BIT(15)
+#define MDIO_AN_C73_1_T_MASK GENMASK(4, 0)
+#define MDIO_AN_C73_1_1000BASE_KX BIT(5)
+#define MDIO_AN_C73_1_10GBASE_KX4 BIT(6)
+#define MDIO_AN_C73_1_10GBASE_KR BIT(7)
+#define MDIO_AN_C73_1_40GBASE_KR4 BIT(8)
+#define MDIO_AN_C73_1_40GBASE_CR4 BIT(9)
+#define MDIO_AN_C73_1_100GBASE_CR10 BIT(10)
+#define MDIO_AN_C73_1_100GBASE_KP4 BIT(11)
+#define MDIO_AN_C73_1_100GBASE_KR4 BIT(12)
+#define MDIO_AN_C73_1_100GBASE_CR4 BIT(13)
+#define MDIO_AN_C73_1_25GBASE_R_S BIT(14)
+#define MDIO_AN_C73_1_25GBASE_R BIT(15)
+#define MDIO_AN_C73_2_2500BASE_KX BIT(0)
+#define MDIO_AN_C73_2_5GBASE_KR BIT(1)
 #define MDIO_PHYXS_LNSTAT_SYNC0 0x0001
 #define MDIO_PHYXS_LNSTAT_SYNC1 0x0002
 #define MDIO_PHYXS_LNSTAT_SYNC2 0x0004
@@ -249,6 +265,8 @@
 #define MDIO_PMA_10T1L_STAT_LB_ABLE 0x2000
 #define MDIO_PCS_10T1L_CTRL_LB 0x4000
 #define MDIO_PCS_10T1L_CTRL_RESET 0x8000
+#define MDIO_PMA_PMD_BT1_B100_ABLE 0x0001
+#define MDIO_PMA_PMD_BT1_B1000_ABLE 0x0002
 #define MDIO_PMA_PMD_BT1_B10L_ABLE 0x0004
 #define MDIO_AN_T1_ADV_L_PAUSE_CAP ADVERTISE_PAUSE_CAP
 #define MDIO_AN_T1_ADV_L_PAUSE_ASYM ADVERTISE_PAUSE_ASYM
@@ -257,6 +275,8 @@
 #define MDIO_AN_T1_ADV_L_ACK ADVERTISE_LPACK
 #define MDIO_AN_T1_ADV_L_NEXT_PAGE_REQ ADVERTISE_NPAGE
 #define MDIO_AN_T1_ADV_M_B10L 0x4000
+#define MDIO_AN_T1_ADV_M_1000BT1 0x0080
+#define MDIO_AN_T1_ADV_M_100BT1 0x0020
 #define MDIO_AN_T1_ADV_M_MST 0x0010
 #define MDIO_AN_T1_ADV_H_10L_TX_HI_REQ 0x1000
 #define MDIO_AN_T1_ADV_H_10L_TX_HI 0x2000
@@ -270,7 +290,16 @@
 #define MDIO_AN_T1_LP_M_B10L 0x4000
 #define MDIO_AN_T1_LP_H_10L_TX_HI_REQ 0x1000
 #define MDIO_AN_T1_LP_H_10L_TX_HI 0x2000
+#define MDIO_AN_10BT1_AN_CTRL_ADV_EEE_T1L 0x4000
+#define MDIO_AN_10BT1_AN_STAT_LPA_EEE_T1L 0x4000
+#define MDIO_PMA_PMD_BT1_CTRL_STRAP 0x000F
+#define MDIO_PMA_PMD_BT1_CTRL_STRAP_B1000 0x0001
 #define MDIO_PMA_PMD_BT1_CTRL_CFG_MST 0x4000
+#define MDIO_PCS_1000BT1_CTRL_LOW_POWER 0x0800
+#define MDIO_PCS_1000BT1_CTRL_DISABLE_TX 0x4000
+#define MDIO_PCS_1000BT1_CTRL_RESET 0x8000
+#define MDIO_PCS_1000BT1_STAT_LINK 0x0004
+#define MDIO_PCS_1000BT1_STAT_FAULT 0x0080
 #define MDIO_AN_EEE_ADV_100TX 0x0002
 #define MDIO_AN_EEE_ADV_1000T 0x0004
 #define MDIO_EEE_100TX MDIO_AN_EEE_ADV_100TX
diff --git a/libc/kernel/uapi/linux/media-bus-format.h b/libc/kernel/uapi/linux/media-bus-format.h
index 87614cf..cb36554 100644
--- a/libc/kernel/uapi/linux/media-bus-format.h
+++ b/libc/kernel/uapi/linux/media-bus-format.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __LINUX_MEDIA_BUS_FORMAT_H
 #define __LINUX_MEDIA_BUS_FORMAT_H
 #define MEDIA_BUS_FMT_FIXED 0x0001
@@ -30,8 +18,12 @@
 #define MEDIA_BUS_FMT_RGB565_2X8_BE 0x1007
 #define MEDIA_BUS_FMT_RGB565_2X8_LE 0x1008
 #define MEDIA_BUS_FMT_RGB666_1X18 0x1009
+#define MEDIA_BUS_FMT_RGB666_2X9_BE 0x1025
+#define MEDIA_BUS_FMT_BGR666_1X18 0x1023
 #define MEDIA_BUS_FMT_RBG888_1X24 0x100e
 #define MEDIA_BUS_FMT_RGB666_1X24_CPADHI 0x1015
+#define MEDIA_BUS_FMT_BGR666_1X24_CPADHI 0x1024
+#define MEDIA_BUS_FMT_RGB565_1X24_CPADHI 0x1022
 #define MEDIA_BUS_FMT_RGB666_1X7X3_SPWG 0x1010
 #define MEDIA_BUS_FMT_BGR888_1X24 0x1013
 #define MEDIA_BUS_FMT_BGR888_3X8 0x101b
@@ -134,4 +126,11 @@
 #define MEDIA_BUS_FMT_S5C_UYVY_JPEG_1X8 0x5001
 #define MEDIA_BUS_FMT_AHSV8888_1X32 0x6001
 #define MEDIA_BUS_FMT_METADATA_FIXED 0x7001
+#define MEDIA_BUS_FMT_META_8 0x8001
+#define MEDIA_BUS_FMT_META_10 0x8002
+#define MEDIA_BUS_FMT_META_12 0x8003
+#define MEDIA_BUS_FMT_META_14 0x8004
+#define MEDIA_BUS_FMT_META_16 0x8005
+#define MEDIA_BUS_FMT_META_20 0x8006
+#define MEDIA_BUS_FMT_META_24 0x8007
 #endif
diff --git a/libc/kernel/uapi/linux/media.h b/libc/kernel/uapi/linux/media.h
index fe97e90..a8c40c4 100644
--- a/libc/kernel/uapi/linux/media.h
+++ b/libc/kernel/uapi/linux/media.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __LINUX_MEDIA_H
 #define __LINUX_MEDIA_H
 #include <linux/ioctl.h>
@@ -66,8 +54,8 @@
 #define MEDIA_ENT_F_ATV_DECODER (MEDIA_ENT_F_OLD_SUBDEV_BASE + 4)
 #define MEDIA_ENT_F_DV_DECODER (MEDIA_ENT_F_BASE + 0x6001)
 #define MEDIA_ENT_F_DV_ENCODER (MEDIA_ENT_F_BASE + 0x6002)
-#define MEDIA_ENT_FL_DEFAULT (1 << 0)
-#define MEDIA_ENT_FL_CONNECTOR (1 << 1)
+#define MEDIA_ENT_FL_DEFAULT (1U << 0)
+#define MEDIA_ENT_FL_CONNECTOR (1U << 1)
 #define MEDIA_ENT_ID_FLAG_NEXT (1U << 31)
 struct media_entity_desc {
   __u32 id;
@@ -101,22 +89,22 @@
     __u8 raw[184];
   };
 };
-#define MEDIA_PAD_FL_SINK (1 << 0)
-#define MEDIA_PAD_FL_SOURCE (1 << 1)
-#define MEDIA_PAD_FL_MUST_CONNECT (1 << 2)
+#define MEDIA_PAD_FL_SINK (1U << 0)
+#define MEDIA_PAD_FL_SOURCE (1U << 1)
+#define MEDIA_PAD_FL_MUST_CONNECT (1U << 2)
 struct media_pad_desc {
   __u32 entity;
   __u16 index;
   __u32 flags;
   __u32 reserved[2];
 };
-#define MEDIA_LNK_FL_ENABLED (1 << 0)
-#define MEDIA_LNK_FL_IMMUTABLE (1 << 1)
-#define MEDIA_LNK_FL_DYNAMIC (1 << 2)
+#define MEDIA_LNK_FL_ENABLED (1U << 0)
+#define MEDIA_LNK_FL_IMMUTABLE (1U << 1)
+#define MEDIA_LNK_FL_DYNAMIC (1U << 2)
 #define MEDIA_LNK_FL_LINK_TYPE (0xf << 28)
-#define MEDIA_LNK_FL_DATA_LINK (0 << 28)
-#define MEDIA_LNK_FL_INTERFACE_LINK (1 << 28)
-#define MEDIA_LNK_FL_ANCILLARY_LINK (2 << 28)
+#define MEDIA_LNK_FL_DATA_LINK (0U << 28)
+#define MEDIA_LNK_FL_INTERFACE_LINK (1U << 28)
+#define MEDIA_LNK_FL_ANCILLARY_LINK (2U << 28)
 struct media_link_desc {
   struct media_pad_desc source;
   struct media_pad_desc sink;
@@ -146,7 +134,7 @@
 #define MEDIA_INTF_T_ALSA_PCM_CAPTURE (MEDIA_INTF_T_ALSA_BASE)
 #define MEDIA_INTF_T_ALSA_PCM_PLAYBACK (MEDIA_INTF_T_ALSA_BASE + 1)
 #define MEDIA_INTF_T_ALSA_CONTROL (MEDIA_INTF_T_ALSA_BASE + 2)
-#define MEDIA_V2_ENTITY_HAS_FLAGS(media_version) ((media_version) >= ((4 << 16) | (19 << 8) | 0))
+#define MEDIA_V2_ENTITY_HAS_FLAGS(media_version) ((media_version) >= ((4U << 16) | (19U << 8) | 0U))
 struct media_v2_entity {
   __u32 id;
   char name[64];
@@ -168,7 +156,7 @@
     __u32 raw[16];
   };
 } __attribute__((packed));
-#define MEDIA_V2_PAD_HAS_INDEX(media_version) ((media_version) >= ((4 << 16) | (19 << 8) | 0))
+#define MEDIA_V2_PAD_HAS_INDEX(media_version) ((media_version) >= ((4U << 16) | (19U << 8) | 0U))
 struct media_v2_pad {
   __u32 id;
   __u32 entity_id;
@@ -229,5 +217,5 @@
 #define MEDIA_INTF_T_ALSA_HWDEP (MEDIA_INTF_T_ALSA_BASE + 5)
 #define MEDIA_INTF_T_ALSA_SEQUENCER (MEDIA_INTF_T_ALSA_BASE + 6)
 #define MEDIA_INTF_T_ALSA_TIMER (MEDIA_INTF_T_ALSA_BASE + 7)
-#define MEDIA_API_VERSION ((0 << 16) | (1 << 8) | 0)
+#define MEDIA_API_VERSION ((0U << 16) | (1U << 8) | 0U)
 #endif
diff --git a/libc/kernel/uapi/linux/media/raspberrypi/pisp_be_config.h b/libc/kernel/uapi/linux/media/raspberrypi/pisp_be_config.h
new file mode 100644
index 0000000..2e981ad
--- /dev/null
+++ b/libc/kernel/uapi/linux/media/raspberrypi/pisp_be_config.h
@@ -0,0 +1,418 @@
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
+#ifndef _UAPI_PISP_BE_CONFIG_H_
+#define _UAPI_PISP_BE_CONFIG_H_
+#include <linux/types.h>
+#include "pisp_common.h"
+#define PISP_BACK_END_INPUT_ALIGN 4u
+#define PISP_BACK_END_COMPRESSED_ALIGN 8u
+#define PISP_BACK_END_OUTPUT_MIN_ALIGN 16u
+#define PISP_BACK_END_OUTPUT_MAX_ALIGN 64u
+#define PISP_BACK_END_MIN_TILE_WIDTH 16u
+#define PISP_BACK_END_MIN_TILE_HEIGHT 16u
+#define PISP_BACK_END_NUM_OUTPUTS 2
+#define PISP_BACK_END_HOG_OUTPUT 1
+#define PISP_BACK_END_NUM_TILES 64
+enum pisp_be_bayer_enable {
+  PISP_BE_BAYER_ENABLE_INPUT = 0x000001,
+  PISP_BE_BAYER_ENABLE_DECOMPRESS = 0x000002,
+  PISP_BE_BAYER_ENABLE_DPC = 0x000004,
+  PISP_BE_BAYER_ENABLE_GEQ = 0x000008,
+  PISP_BE_BAYER_ENABLE_TDN_INPUT = 0x000010,
+  PISP_BE_BAYER_ENABLE_TDN_DECOMPRESS = 0x000020,
+  PISP_BE_BAYER_ENABLE_TDN = 0x000040,
+  PISP_BE_BAYER_ENABLE_TDN_COMPRESS = 0x000080,
+  PISP_BE_BAYER_ENABLE_TDN_OUTPUT = 0x000100,
+  PISP_BE_BAYER_ENABLE_SDN = 0x000200,
+  PISP_BE_BAYER_ENABLE_BLC = 0x000400,
+  PISP_BE_BAYER_ENABLE_STITCH_INPUT = 0x000800,
+  PISP_BE_BAYER_ENABLE_STITCH_DECOMPRESS = 0x001000,
+  PISP_BE_BAYER_ENABLE_STITCH = 0x002000,
+  PISP_BE_BAYER_ENABLE_STITCH_COMPRESS = 0x004000,
+  PISP_BE_BAYER_ENABLE_STITCH_OUTPUT = 0x008000,
+  PISP_BE_BAYER_ENABLE_WBG = 0x010000,
+  PISP_BE_BAYER_ENABLE_CDN = 0x020000,
+  PISP_BE_BAYER_ENABLE_LSC = 0x040000,
+  PISP_BE_BAYER_ENABLE_TONEMAP = 0x080000,
+  PISP_BE_BAYER_ENABLE_CAC = 0x100000,
+  PISP_BE_BAYER_ENABLE_DEBIN = 0x200000,
+  PISP_BE_BAYER_ENABLE_DEMOSAIC = 0x400000,
+};
+enum pisp_be_rgb_enable {
+  PISP_BE_RGB_ENABLE_INPUT = 0x000001,
+  PISP_BE_RGB_ENABLE_CCM = 0x000002,
+  PISP_BE_RGB_ENABLE_SAT_CONTROL = 0x000004,
+  PISP_BE_RGB_ENABLE_YCBCR = 0x000008,
+  PISP_BE_RGB_ENABLE_FALSE_COLOUR = 0x000010,
+  PISP_BE_RGB_ENABLE_SHARPEN = 0x000020,
+  PISP_BE_RGB_ENABLE_YCBCR_INVERSE = 0x000080,
+  PISP_BE_RGB_ENABLE_GAMMA = 0x000100,
+  PISP_BE_RGB_ENABLE_CSC0 = 0x000200,
+  PISP_BE_RGB_ENABLE_CSC1 = 0x000400,
+  PISP_BE_RGB_ENABLE_DOWNSCALE0 = 0x001000,
+  PISP_BE_RGB_ENABLE_DOWNSCALE1 = 0x002000,
+  PISP_BE_RGB_ENABLE_RESAMPLE0 = 0x008000,
+  PISP_BE_RGB_ENABLE_RESAMPLE1 = 0x010000,
+  PISP_BE_RGB_ENABLE_OUTPUT0 = 0x040000,
+  PISP_BE_RGB_ENABLE_OUTPUT1 = 0x080000,
+  PISP_BE_RGB_ENABLE_HOG = 0x200000
+};
+#define PISP_BE_RGB_ENABLE_CSC(i) (PISP_BE_RGB_ENABLE_CSC0 << (i))
+#define PISP_BE_RGB_ENABLE_DOWNSCALE(i) (PISP_BE_RGB_ENABLE_DOWNSCALE0 << (i))
+#define PISP_BE_RGB_ENABLE_RESAMPLE(i) (PISP_BE_RGB_ENABLE_RESAMPLE0 << (i))
+#define PISP_BE_RGB_ENABLE_OUTPUT(i) (PISP_BE_RGB_ENABLE_OUTPUT0 << (i))
+enum pisp_be_dirty {
+  PISP_BE_DIRTY_GLOBAL = 0x0001,
+  PISP_BE_DIRTY_SH_FC_COMBINE = 0x0002,
+  PISP_BE_DIRTY_CROP = 0x0004
+};
+struct pisp_be_global_config {
+  __u32 bayer_enables;
+  __u32 rgb_enables;
+  __u8 bayer_order;
+  __u8 pad[3];
+} __attribute__((packed));
+struct pisp_be_input_buffer_config {
+  __u32 addr[3][2];
+} __attribute__((packed));
+struct pisp_be_dpc_config {
+  __u8 coeff_level;
+  __u8 coeff_range;
+  __u8 pad;
+#define PISP_BE_DPC_FLAG_FOLDBACK 1
+  __u8 flags;
+} __attribute__((packed));
+struct pisp_be_geq_config {
+  __u16 offset;
+#define PISP_BE_GEQ_SHARPER (1U << 15)
+#define PISP_BE_GEQ_SLOPE ((1 << 10) - 1)
+  __u16 slope_sharper;
+  __u16 min;
+  __u16 max;
+} __attribute__((packed));
+struct pisp_be_tdn_input_buffer_config {
+  __u32 addr[2];
+} __attribute__((packed));
+struct pisp_be_tdn_config {
+  __u16 black_level;
+  __u16 ratio;
+  __u16 noise_constant;
+  __u16 noise_slope;
+  __u16 threshold;
+  __u8 reset;
+  __u8 pad;
+} __attribute__((packed));
+struct pisp_be_tdn_output_buffer_config {
+  __u32 addr[2];
+} __attribute__((packed));
+struct pisp_be_sdn_config {
+  __u16 black_level;
+  __u8 leakage;
+  __u8 pad;
+  __u16 noise_constant;
+  __u16 noise_slope;
+  __u16 noise_constant2;
+  __u16 noise_slope2;
+} __attribute__((packed));
+struct pisp_be_stitch_input_buffer_config {
+  __u32 addr[2];
+} __attribute__((packed));
+#define PISP_BE_STITCH_STREAMING_LONG 0x8000
+#define PISP_BE_STITCH_EXPOSURE_RATIO_MASK 0x7fff
+struct pisp_be_stitch_config {
+  __u16 threshold_lo;
+  __u8 threshold_diff_power;
+  __u8 pad;
+  __u16 exposure_ratio;
+  __u8 motion_threshold_256;
+  __u8 motion_threshold_recip;
+} __attribute__((packed));
+struct pisp_be_stitch_output_buffer_config {
+  __u32 addr[2];
+} __attribute__((packed));
+struct pisp_be_cdn_config {
+  __u16 thresh;
+  __u8 iir_strength;
+  __u8 g_adjust;
+} __attribute__((packed));
+#define PISP_BE_LSC_LOG_GRID_SIZE 5
+#define PISP_BE_LSC_GRID_SIZE (1 << PISP_BE_LSC_LOG_GRID_SIZE)
+#define PISP_BE_LSC_STEP_PRECISION 18
+struct pisp_be_lsc_config {
+  __u16 grid_step_x;
+  __u16 grid_step_y;
+#define PISP_BE_LSC_LUT_SIZE (PISP_BE_LSC_GRID_SIZE + 1)
+  __u32 lut_packed[PISP_BE_LSC_LUT_SIZE][PISP_BE_LSC_LUT_SIZE];
+} __attribute__((packed));
+struct pisp_be_lsc_extra {
+  __u16 offset_x;
+  __u16 offset_y;
+} __attribute__((packed));
+#define PISP_BE_CAC_LOG_GRID_SIZE 3
+#define PISP_BE_CAC_GRID_SIZE (1 << PISP_BE_CAC_LOG_GRID_SIZE)
+#define PISP_BE_CAC_STEP_PRECISION 20
+struct pisp_be_cac_config {
+  __u16 grid_step_x;
+  __u16 grid_step_y;
+#define PISP_BE_CAC_LUT_SIZE (PISP_BE_CAC_GRID_SIZE + 1)
+  __s8 lut[PISP_BE_CAC_LUT_SIZE][PISP_BE_CAC_LUT_SIZE][2][2];
+} __attribute__((packed));
+struct pisp_be_cac_extra {
+  __u16 offset_x;
+  __u16 offset_y;
+} __attribute__((packed));
+#define PISP_BE_DEBIN_NUM_COEFFS 4
+struct pisp_be_debin_config {
+  __s8 coeffs[PISP_BE_DEBIN_NUM_COEFFS];
+  __s8 h_enable;
+  __s8 v_enable;
+  __s8 pad[2];
+} __attribute__((packed));
+#define PISP_BE_TONEMAP_LUT_SIZE 64
+struct pisp_be_tonemap_config {
+  __u16 detail_constant;
+  __u16 detail_slope;
+  __u16 iir_strength;
+  __u16 strength;
+  __u32 lut[PISP_BE_TONEMAP_LUT_SIZE];
+} __attribute__((packed));
+struct pisp_be_demosaic_config {
+  __u8 sharper;
+  __u8 fc_mode;
+  __u8 pad[2];
+} __attribute__((packed));
+struct pisp_be_ccm_config {
+  __s16 coeffs[9];
+  __u8 pad[2];
+  __s32 offsets[3];
+} __attribute__((packed));
+struct pisp_be_sat_control_config {
+  __u8 shift_r;
+  __u8 shift_g;
+  __u8 shift_b;
+  __u8 pad;
+} __attribute__((packed));
+struct pisp_be_false_colour_config {
+  __u8 distance;
+  __u8 pad[3];
+} __attribute__((packed));
+#define PISP_BE_SHARPEN_SIZE 5
+#define PISP_BE_SHARPEN_FUNC_NUM_POINTS 9
+struct pisp_be_sharpen_config {
+  __s8 kernel0[PISP_BE_SHARPEN_SIZE * PISP_BE_SHARPEN_SIZE];
+  __s8 pad0[3];
+  __s8 kernel1[PISP_BE_SHARPEN_SIZE * PISP_BE_SHARPEN_SIZE];
+  __s8 pad1[3];
+  __s8 kernel2[PISP_BE_SHARPEN_SIZE * PISP_BE_SHARPEN_SIZE];
+  __s8 pad2[3];
+  __s8 kernel3[PISP_BE_SHARPEN_SIZE * PISP_BE_SHARPEN_SIZE];
+  __s8 pad3[3];
+  __s8 kernel4[PISP_BE_SHARPEN_SIZE * PISP_BE_SHARPEN_SIZE];
+  __s8 pad4[3];
+  __u16 threshold_offset0;
+  __u16 threshold_slope0;
+  __u16 scale0;
+  __u16 pad5;
+  __u16 threshold_offset1;
+  __u16 threshold_slope1;
+  __u16 scale1;
+  __u16 pad6;
+  __u16 threshold_offset2;
+  __u16 threshold_slope2;
+  __u16 scale2;
+  __u16 pad7;
+  __u16 threshold_offset3;
+  __u16 threshold_slope3;
+  __u16 scale3;
+  __u16 pad8;
+  __u16 threshold_offset4;
+  __u16 threshold_slope4;
+  __u16 scale4;
+  __u16 pad9;
+  __u16 positive_strength;
+  __u16 positive_pre_limit;
+  __u16 positive_func[PISP_BE_SHARPEN_FUNC_NUM_POINTS];
+  __u16 positive_limit;
+  __u16 negative_strength;
+  __u16 negative_pre_limit;
+  __u16 negative_func[PISP_BE_SHARPEN_FUNC_NUM_POINTS];
+  __u16 negative_limit;
+  __u8 enables;
+  __u8 white;
+  __u8 black;
+  __u8 grey;
+} __attribute__((packed));
+struct pisp_be_sh_fc_combine_config {
+  __u8 y_factor;
+  __u8 c1_factor;
+  __u8 c2_factor;
+  __u8 pad;
+} __attribute__((packed));
+#define PISP_BE_GAMMA_LUT_SIZE 64
+struct pisp_be_gamma_config {
+  __u32 lut[PISP_BE_GAMMA_LUT_SIZE];
+} __attribute__((packed));
+struct pisp_be_crop_config {
+  __u16 offset_x, offset_y;
+  __u16 width, height;
+} __attribute__((packed));
+#define PISP_BE_RESAMPLE_FILTER_SIZE 96
+struct pisp_be_resample_config {
+  __u16 scale_factor_h, scale_factor_v;
+  __s16 coef[PISP_BE_RESAMPLE_FILTER_SIZE];
+} __attribute__((packed));
+struct pisp_be_resample_extra {
+  __u16 scaled_width;
+  __u16 scaled_height;
+  __s16 initial_phase_h[3];
+  __s16 initial_phase_v[3];
+} __attribute__((packed));
+struct pisp_be_downscale_config {
+  __u16 scale_factor_h;
+  __u16 scale_factor_v;
+  __u16 scale_recip_h;
+  __u16 scale_recip_v;
+} __attribute__((packed));
+struct pisp_be_downscale_extra {
+  __u16 scaled_width;
+  __u16 scaled_height;
+} __attribute__((packed));
+struct pisp_be_hog_config {
+  __u8 compute_signed;
+  __u8 channel_mix[3];
+  __u32 stride;
+} __attribute__((packed));
+struct pisp_be_axi_config {
+  __u8 r_qos;
+  __u8 r_cache_prot;
+  __u8 w_qos;
+  __u8 w_cache_prot;
+} __attribute__((packed));
+enum pisp_be_transform {
+  PISP_BE_TRANSFORM_NONE = 0x0,
+  PISP_BE_TRANSFORM_HFLIP = 0x1,
+  PISP_BE_TRANSFORM_VFLIP = 0x2,
+  PISP_BE_TRANSFORM_ROT180 = (PISP_BE_TRANSFORM_HFLIP | PISP_BE_TRANSFORM_VFLIP)
+};
+struct pisp_be_output_format_config {
+  struct pisp_image_format_config image;
+  __u8 transform;
+  __u8 pad[3];
+  __u16 lo;
+  __u16 hi;
+  __u16 lo2;
+  __u16 hi2;
+} __attribute__((packed));
+struct pisp_be_output_buffer_config {
+  __u32 addr[3][2];
+} __attribute__((packed));
+struct pisp_be_hog_buffer_config {
+  __u32 addr[2];
+} __attribute__((packed));
+struct pisp_be_config {
+  struct pisp_be_input_buffer_config input_buffer;
+  struct pisp_be_tdn_input_buffer_config tdn_input_buffer;
+  struct pisp_be_stitch_input_buffer_config stitch_input_buffer;
+  struct pisp_be_tdn_output_buffer_config tdn_output_buffer;
+  struct pisp_be_stitch_output_buffer_config stitch_output_buffer;
+  struct pisp_be_output_buffer_config output_buffer[PISP_BACK_END_NUM_OUTPUTS];
+  struct pisp_be_hog_buffer_config hog_buffer;
+  struct pisp_be_global_config global;
+  struct pisp_image_format_config input_format;
+  struct pisp_decompress_config decompress;
+  struct pisp_be_dpc_config dpc;
+  struct pisp_be_geq_config geq;
+  struct pisp_image_format_config tdn_input_format;
+  struct pisp_decompress_config tdn_decompress;
+  struct pisp_be_tdn_config tdn;
+  struct pisp_compress_config tdn_compress;
+  struct pisp_image_format_config tdn_output_format;
+  struct pisp_be_sdn_config sdn;
+  struct pisp_bla_config blc;
+  struct pisp_compress_config stitch_compress;
+  struct pisp_image_format_config stitch_output_format;
+  struct pisp_image_format_config stitch_input_format;
+  struct pisp_decompress_config stitch_decompress;
+  struct pisp_be_stitch_config stitch;
+  struct pisp_be_lsc_config lsc;
+  struct pisp_wbg_config wbg;
+  struct pisp_be_cdn_config cdn;
+  struct pisp_be_cac_config cac;
+  struct pisp_be_debin_config debin;
+  struct pisp_be_tonemap_config tonemap;
+  struct pisp_be_demosaic_config demosaic;
+  struct pisp_be_ccm_config ccm;
+  struct pisp_be_sat_control_config sat_control;
+  struct pisp_be_ccm_config ycbcr;
+  struct pisp_be_sharpen_config sharpen;
+  struct pisp_be_false_colour_config false_colour;
+  struct pisp_be_sh_fc_combine_config sh_fc_combine;
+  struct pisp_be_ccm_config ycbcr_inverse;
+  struct pisp_be_gamma_config gamma;
+  struct pisp_be_ccm_config csc[PISP_BACK_END_NUM_OUTPUTS];
+  struct pisp_be_downscale_config downscale[PISP_BACK_END_NUM_OUTPUTS];
+  struct pisp_be_resample_config resample[PISP_BACK_END_NUM_OUTPUTS];
+  struct pisp_be_output_format_config output_format[PISP_BACK_END_NUM_OUTPUTS];
+  struct pisp_be_hog_config hog;
+  struct pisp_be_axi_config axi;
+  struct pisp_be_lsc_extra lsc_extra;
+  struct pisp_be_cac_extra cac_extra;
+  struct pisp_be_downscale_extra downscale_extra[PISP_BACK_END_NUM_OUTPUTS];
+  struct pisp_be_resample_extra resample_extra[PISP_BACK_END_NUM_OUTPUTS];
+  struct pisp_be_crop_config crop;
+  struct pisp_image_format_config hog_format;
+  __u32 dirty_flags_bayer;
+  __u32 dirty_flags_rgb;
+  __u32 dirty_flags_extra;
+} __attribute__((packed));
+enum pisp_tile_edge {
+  PISP_LEFT_EDGE = (1 << 0),
+  PISP_RIGHT_EDGE = (1 << 1),
+  PISP_TOP_EDGE = (1 << 2),
+  PISP_BOTTOM_EDGE = (1 << 3)
+};
+struct pisp_tile {
+  __u8 edge;
+  __u8 pad0[3];
+  __u32 input_addr_offset;
+  __u32 input_addr_offset2;
+  __u16 input_offset_x;
+  __u16 input_offset_y;
+  __u16 input_width;
+  __u16 input_height;
+  __u32 tdn_input_addr_offset;
+  __u32 tdn_output_addr_offset;
+  __u32 stitch_input_addr_offset;
+  __u32 stitch_output_addr_offset;
+  __u32 lsc_grid_offset_x;
+  __u32 lsc_grid_offset_y;
+  __u32 cac_grid_offset_x;
+  __u32 cac_grid_offset_y;
+  __u16 crop_x_start[PISP_BACK_END_NUM_OUTPUTS];
+  __u16 crop_x_end[PISP_BACK_END_NUM_OUTPUTS];
+  __u16 crop_y_start[PISP_BACK_END_NUM_OUTPUTS];
+  __u16 crop_y_end[PISP_BACK_END_NUM_OUTPUTS];
+  __u16 downscale_phase_x[3 * PISP_BACK_END_NUM_OUTPUTS];
+  __u16 downscale_phase_y[3 * PISP_BACK_END_NUM_OUTPUTS];
+  __u16 resample_in_width[PISP_BACK_END_NUM_OUTPUTS];
+  __u16 resample_in_height[PISP_BACK_END_NUM_OUTPUTS];
+  __u16 resample_phase_x[3 * PISP_BACK_END_NUM_OUTPUTS];
+  __u16 resample_phase_y[3 * PISP_BACK_END_NUM_OUTPUTS];
+  __u16 output_offset_x[PISP_BACK_END_NUM_OUTPUTS];
+  __u16 output_offset_y[PISP_BACK_END_NUM_OUTPUTS];
+  __u16 output_width[PISP_BACK_END_NUM_OUTPUTS];
+  __u16 output_height[PISP_BACK_END_NUM_OUTPUTS];
+  __u32 output_addr_offset[PISP_BACK_END_NUM_OUTPUTS];
+  __u32 output_addr_offset2[PISP_BACK_END_NUM_OUTPUTS];
+  __u32 output_hog_addr_offset;
+} __attribute__((packed));
+struct pisp_be_tiles_config {
+  struct pisp_be_config config;
+  struct pisp_tile tiles[PISP_BACK_END_NUM_TILES];
+  __u32 num_tiles;
+} __attribute__((packed));
+#endif
diff --git a/libc/kernel/uapi/linux/media/raspberrypi/pisp_common.h b/libc/kernel/uapi/linux/media/raspberrypi/pisp_common.h
new file mode 100644
index 0000000..0e0b23f
--- /dev/null
+++ b/libc/kernel/uapi/linux/media/raspberrypi/pisp_common.h
@@ -0,0 +1,119 @@
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
+#ifndef _UAPI_PISP_COMMON_H_
+#define _UAPI_PISP_COMMON_H_
+#include <linux/types.h>
+struct pisp_image_format_config {
+  __u16 width;
+  __u16 height;
+  __u32 format;
+  __s32 stride;
+  __s32 stride2;
+} __attribute__((packed));
+enum pisp_bayer_order {
+  PISP_BAYER_ORDER_RGGB = 0,
+  PISP_BAYER_ORDER_GBRG = 1,
+  PISP_BAYER_ORDER_BGGR = 2,
+  PISP_BAYER_ORDER_GRBG = 3,
+  PISP_BAYER_ORDER_GREYSCALE = 128
+};
+enum pisp_image_format {
+  PISP_IMAGE_FORMAT_BPS_8 = 0x00000000,
+  PISP_IMAGE_FORMAT_BPS_10 = 0x00000001,
+  PISP_IMAGE_FORMAT_BPS_12 = 0x00000002,
+  PISP_IMAGE_FORMAT_BPS_16 = 0x00000003,
+  PISP_IMAGE_FORMAT_BPS_MASK = 0x00000003,
+  PISP_IMAGE_FORMAT_PLANARITY_INTERLEAVED = 0x00000000,
+  PISP_IMAGE_FORMAT_PLANARITY_SEMI_PLANAR = 0x00000010,
+  PISP_IMAGE_FORMAT_PLANARITY_PLANAR = 0x00000020,
+  PISP_IMAGE_FORMAT_PLANARITY_MASK = 0x00000030,
+  PISP_IMAGE_FORMAT_SAMPLING_444 = 0x00000000,
+  PISP_IMAGE_FORMAT_SAMPLING_422 = 0x00000100,
+  PISP_IMAGE_FORMAT_SAMPLING_420 = 0x00000200,
+  PISP_IMAGE_FORMAT_SAMPLING_MASK = 0x00000300,
+  PISP_IMAGE_FORMAT_ORDER_NORMAL = 0x00000000,
+  PISP_IMAGE_FORMAT_ORDER_SWAPPED = 0x00001000,
+  PISP_IMAGE_FORMAT_SHIFT_0 = 0x00000000,
+  PISP_IMAGE_FORMAT_SHIFT_1 = 0x00010000,
+  PISP_IMAGE_FORMAT_SHIFT_2 = 0x00020000,
+  PISP_IMAGE_FORMAT_SHIFT_3 = 0x00030000,
+  PISP_IMAGE_FORMAT_SHIFT_4 = 0x00040000,
+  PISP_IMAGE_FORMAT_SHIFT_5 = 0x00050000,
+  PISP_IMAGE_FORMAT_SHIFT_6 = 0x00060000,
+  PISP_IMAGE_FORMAT_SHIFT_7 = 0x00070000,
+  PISP_IMAGE_FORMAT_SHIFT_8 = 0x00080000,
+  PISP_IMAGE_FORMAT_SHIFT_MASK = 0x000f0000,
+  PISP_IMAGE_FORMAT_BPP_32 = 0x00100000,
+  PISP_IMAGE_FORMAT_UNCOMPRESSED = 0x00000000,
+  PISP_IMAGE_FORMAT_COMPRESSION_MODE_1 = 0x01000000,
+  PISP_IMAGE_FORMAT_COMPRESSION_MODE_2 = 0x02000000,
+  PISP_IMAGE_FORMAT_COMPRESSION_MODE_3 = 0x03000000,
+  PISP_IMAGE_FORMAT_COMPRESSION_MASK = 0x03000000,
+  PISP_IMAGE_FORMAT_HOG_SIGNED = 0x04000000,
+  PISP_IMAGE_FORMAT_HOG_UNSIGNED = 0x08000000,
+  PISP_IMAGE_FORMAT_INTEGRAL_IMAGE = 0x10000000,
+  PISP_IMAGE_FORMAT_WALLPAPER_ROLL = 0x20000000,
+  PISP_IMAGE_FORMAT_THREE_CHANNEL = 0x40000000,
+  PISP_IMAGE_FORMAT_SINGLE_16 = PISP_IMAGE_FORMAT_BPS_16,
+  PISP_IMAGE_FORMAT_THREE_16 = PISP_IMAGE_FORMAT_BPS_16 | PISP_IMAGE_FORMAT_THREE_CHANNEL
+};
+#define PISP_IMAGE_FORMAT_BPS_8(fmt) (((fmt) & PISP_IMAGE_FORMAT_BPS_MASK) == PISP_IMAGE_FORMAT_BPS_8)
+#define PISP_IMAGE_FORMAT_BPS_10(fmt) (((fmt) & PISP_IMAGE_FORMAT_BPS_MASK) == PISP_IMAGE_FORMAT_BPS_10)
+#define PISP_IMAGE_FORMAT_BPS_12(fmt) (((fmt) & PISP_IMAGE_FORMAT_BPS_MASK) == PISP_IMAGE_FORMAT_BPS_12)
+#define PISP_IMAGE_FORMAT_BPS_16(fmt) (((fmt) & PISP_IMAGE_FORMAT_BPS_MASK) == PISP_IMAGE_FORMAT_BPS_16)
+#define PISP_IMAGE_FORMAT_BPS(fmt) (((fmt) & PISP_IMAGE_FORMAT_BPS_MASK) ? 8 + (2 << (((fmt) & PISP_IMAGE_FORMAT_BPS_MASK) - 1)) : 8)
+#define PISP_IMAGE_FORMAT_SHIFT(fmt) (((fmt) & PISP_IMAGE_FORMAT_SHIFT_MASK) / PISP_IMAGE_FORMAT_SHIFT_1)
+#define PISP_IMAGE_FORMAT_THREE_CHANNEL(fmt) ((fmt) & PISP_IMAGE_FORMAT_THREE_CHANNEL)
+#define PISP_IMAGE_FORMAT_SINGLE_CHANNEL(fmt) (! ((fmt) & PISP_IMAGE_FORMAT_THREE_CHANNEL))
+#define PISP_IMAGE_FORMAT_COMPRESSED(fmt) (((fmt) & PISP_IMAGE_FORMAT_COMPRESSION_MASK) != PISP_IMAGE_FORMAT_UNCOMPRESSED)
+#define PISP_IMAGE_FORMAT_SAMPLING_444(fmt) (((fmt) & PISP_IMAGE_FORMAT_SAMPLING_MASK) == PISP_IMAGE_FORMAT_SAMPLING_444)
+#define PISP_IMAGE_FORMAT_SAMPLING_422(fmt) (((fmt) & PISP_IMAGE_FORMAT_SAMPLING_MASK) == PISP_IMAGE_FORMAT_SAMPLING_422)
+#define PISP_IMAGE_FORMAT_SAMPLING_420(fmt) (((fmt) & PISP_IMAGE_FORMAT_SAMPLING_MASK) == PISP_IMAGE_FORMAT_SAMPLING_420)
+#define PISP_IMAGE_FORMAT_ORDER_NORMAL(fmt) (! ((fmt) & PISP_IMAGE_FORMAT_ORDER_SWAPPED))
+#define PISP_IMAGE_FORMAT_ORDER_SWAPPED(fmt) ((fmt) & PISP_IMAGE_FORMAT_ORDER_SWAPPED)
+#define PISP_IMAGE_FORMAT_INTERLEAVED(fmt) (((fmt) & PISP_IMAGE_FORMAT_PLANARITY_MASK) == PISP_IMAGE_FORMAT_PLANARITY_INTERLEAVED)
+#define PISP_IMAGE_FORMAT_SEMIPLANAR(fmt) (((fmt) & PISP_IMAGE_FORMAT_PLANARITY_MASK) == PISP_IMAGE_FORMAT_PLANARITY_SEMI_PLANAR)
+#define PISP_IMAGE_FORMAT_PLANAR(fmt) (((fmt) & PISP_IMAGE_FORMAT_PLANARITY_MASK) == PISP_IMAGE_FORMAT_PLANARITY_PLANAR)
+#define PISP_IMAGE_FORMAT_WALLPAPER(fmt) ((fmt) & PISP_IMAGE_FORMAT_WALLPAPER_ROLL)
+#define PISP_IMAGE_FORMAT_BPP_32(fmt) ((fmt) & PISP_IMAGE_FORMAT_BPP_32)
+#define PISP_IMAGE_FORMAT_HOG(fmt) ((fmt) & (PISP_IMAGE_FORMAT_HOG_SIGNED | PISP_IMAGE_FORMAT_HOG_UNSIGNED))
+#define PISP_WALLPAPER_WIDTH 128
+struct pisp_bla_config {
+  __u16 black_level_r;
+  __u16 black_level_gr;
+  __u16 black_level_gb;
+  __u16 black_level_b;
+  __u16 output_black_level;
+  __u8 pad[2];
+} __attribute__((packed));
+struct pisp_wbg_config {
+  __u16 gain_r;
+  __u16 gain_g;
+  __u16 gain_b;
+  __u8 pad[2];
+} __attribute__((packed));
+struct pisp_compress_config {
+  __u16 offset;
+  __u8 pad;
+  __u8 mode;
+} __attribute__((packed));
+struct pisp_decompress_config {
+  __u16 offset;
+  __u8 pad;
+  __u8 mode;
+} __attribute__((packed));
+enum pisp_axi_flags {
+  PISP_AXI_FLAG_ALIGN = 128,
+  PISP_AXI_FLAG_PAD = 64,
+  PISP_AXI_FLAG_PANIC = 32,
+};
+struct pisp_axi_config {
+  __u8 maxlen_flags;
+  __u8 cache_prot;
+  __u16 qos;
+} __attribute__((packed));
+#endif
diff --git a/libc/kernel/uapi/linux/mei.h b/libc/kernel/uapi/linux/mei.h
index ed37abd..f99def1 100644
--- a/libc/kernel/uapi/linux/mei.h
+++ b/libc/kernel/uapi/linux/mei.h
@@ -1,24 +1,12 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _LINUX_MEI_H
 #define _LINUX_MEI_H
-#include <linux/uuid.h>
+#include <linux/mei_uuid.h>
 #define IOCTL_MEI_CONNECT_CLIENT _IOWR('H', 0x01, struct mei_connect_client_data)
 struct mei_client {
   __u32 max_msg_length;
diff --git a/libc/kernel/uapi/linux/mei_uuid.h b/libc/kernel/uapi/linux/mei_uuid.h
new file mode 100644
index 0000000..a862f6f
--- /dev/null
+++ b/libc/kernel/uapi/linux/mei_uuid.h
@@ -0,0 +1,17 @@
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
+#ifndef _UAPI_LINUX_MEI_UUID_H_
+#define _UAPI_LINUX_MEI_UUID_H_
+#include <linux/types.h>
+typedef struct {
+  __u8 b[16];
+} uuid_le;
+#define UUID_LE(a,b,c,d0,d1,d2,d3,d4,d5,d6,d7) \
+((uuid_le) \
+{ { (a) & 0xff, ((a) >> 8) & 0xff, ((a) >> 16) & 0xff, ((a) >> 24) & 0xff, (b) & 0xff, ((b) >> 8) & 0xff, (c) & 0xff, ((c) >> 8) & 0xff, (d0), (d1), (d2), (d3), (d4), (d5), (d6), (d7) } })
+#define NULL_UUID_LE UUID_LE(0x00000000, 0x0000, 0x0000, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
+#endif
diff --git a/libc/kernel/uapi/linux/membarrier.h b/libc/kernel/uapi/linux/membarrier.h
index 43c103b..febca56 100644
--- a/libc/kernel/uapi/linux/membarrier.h
+++ b/libc/kernel/uapi/linux/membarrier.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_MEMBARRIER_H
 #define _UAPI_LINUX_MEMBARRIER_H
 enum membarrier_cmd {
@@ -29,6 +17,7 @@
   MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_SYNC_CORE = (1 << 6),
   MEMBARRIER_CMD_PRIVATE_EXPEDITED_RSEQ = (1 << 7),
   MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_RSEQ = (1 << 8),
+  MEMBARRIER_CMD_GET_REGISTRATIONS = (1 << 9),
   MEMBARRIER_CMD_SHARED = MEMBARRIER_CMD_GLOBAL,
 };
 enum membarrier_cmd_flag {
diff --git a/libc/kernel/uapi/linux/memfd.h b/libc/kernel/uapi/linux/memfd.h
index 914c076..5403c7a 100644
--- a/libc/kernel/uapi/linux/memfd.h
+++ b/libc/kernel/uapi/linux/memfd.h
@@ -1,27 +1,17 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_MEMFD_H
 #define _UAPI_LINUX_MEMFD_H
 #include <asm-generic/hugetlb_encode.h>
 #define MFD_CLOEXEC 0x0001U
 #define MFD_ALLOW_SEALING 0x0002U
 #define MFD_HUGETLB 0x0004U
+#define MFD_NOEXEC_SEAL 0x0008U
+#define MFD_EXEC 0x0010U
 #define MFD_HUGE_SHIFT HUGETLB_FLAG_ENCODE_SHIFT
 #define MFD_HUGE_MASK HUGETLB_FLAG_ENCODE_MASK
 #define MFD_HUGE_64KB HUGETLB_FLAG_ENCODE_64KB
diff --git a/libc/kernel/uapi/linux/mempolicy.h b/libc/kernel/uapi/linux/mempolicy.h
index f92970f..09ce41e 100644
--- a/libc/kernel/uapi/linux/mempolicy.h
+++ b/libc/kernel/uapi/linux/mempolicy.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_MEMPOLICY_H
 #define _UAPI_LINUX_MEMPOLICY_H
 #include <linux/errno.h>
@@ -26,6 +14,7 @@
   MPOL_INTERLEAVE,
   MPOL_LOCAL,
   MPOL_PREFERRED_MANY,
+  MPOL_WEIGHTED_INTERLEAVE,
   MPOL_MAX,
 };
 #define MPOL_F_STATIC_NODES (1 << 15)
diff --git a/libc/kernel/uapi/linux/meye.h b/libc/kernel/uapi/linux/meye.h
deleted file mode 100644
index a1112c4..0000000
--- a/libc/kernel/uapi/linux/meye.h
+++ /dev/null
@@ -1,38 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef _MEYE_H_
-#define _MEYE_H_
-struct meye_params {
-  unsigned char subsample;
-  unsigned char quality;
-  unsigned char sharpness;
-  unsigned char agc;
-  unsigned char picture;
-  unsigned char framerate;
-};
-#define MEYEIOC_G_PARAMS _IOR('v', BASE_VIDIOC_PRIVATE + 0, struct meye_params)
-#define MEYEIOC_S_PARAMS _IOW('v', BASE_VIDIOC_PRIVATE + 1, struct meye_params)
-#define MEYEIOC_QBUF_CAPT _IOW('v', BASE_VIDIOC_PRIVATE + 2, int)
-#define MEYEIOC_SYNC _IOWR('v', BASE_VIDIOC_PRIVATE + 3, int)
-#define MEYEIOC_STILLCAPT _IO('v', BASE_VIDIOC_PRIVATE + 4)
-#define MEYEIOC_STILLJCAPT _IOR('v', BASE_VIDIOC_PRIVATE + 5, int)
-#define V4L2_CID_MEYE_AGC (V4L2_CID_USER_MEYE_BASE + 0)
-#define V4L2_CID_MEYE_PICTURE (V4L2_CID_USER_MEYE_BASE + 1)
-#define V4L2_CID_MEYE_FRAMERATE (V4L2_CID_USER_MEYE_BASE + 2)
-#endif
diff --git a/libc/kernel/uapi/linux/mii.h b/libc/kernel/uapi/linux/mii.h
index a489015..6db2710 100644
--- a/libc/kernel/uapi/linux/mii.h
+++ b/libc/kernel/uapi/linux/mii.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI__LINUX_MII_H__
 #define _UAPI__LINUX_MII_H__
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/minix_fs.h b/libc/kernel/uapi/linux/minix_fs.h
index 0878efe..0e6c271 100644
--- a/libc/kernel/uapi/linux/minix_fs.h
+++ b/libc/kernel/uapi/linux/minix_fs.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _LINUX_MINIX_FS_H
 #define _LINUX_MINIX_FS_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/misc/bcm_vk.h b/libc/kernel/uapi/linux/misc/bcm_vk.h
index b1b966d..5ee9723 100644
--- a/libc/kernel/uapi/linux/misc/bcm_vk.h
+++ b/libc/kernel/uapi/linux/misc/bcm_vk.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __UAPI_LINUX_MISC_BCM_VK_H
 #define __UAPI_LINUX_MISC_BCM_VK_H
 #include <linux/ioctl.h>
diff --git a/libc/kernel/uapi/linux/mman.h b/libc/kernel/uapi/linux/mman.h
index 9fdccf6..f50b51c 100644
--- a/libc/kernel/uapi/linux/mman.h
+++ b/libc/kernel/uapi/linux/mman.h
@@ -1,25 +1,14 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_MMAN_H
 #define _UAPI_LINUX_MMAN_H
 #include <asm/mman.h>
 #include <asm-generic/hugetlb_encode.h>
+#include <linux/types.h>
 #define MREMAP_MAYMOVE 1
 #define MREMAP_FIXED 2
 #define MREMAP_DONTUNMAP 4
@@ -29,6 +18,7 @@
 #define MAP_SHARED 0x01
 #define MAP_PRIVATE 0x02
 #define MAP_SHARED_VALIDATE 0x03
+#define MAP_DROPPABLE 0x08
 #define MAP_HUGE_SHIFT HUGETLB_FLAG_ENCODE_SHIFT
 #define MAP_HUGE_MASK HUGETLB_FLAG_ENCODE_MASK
 #define MAP_HUGE_16KB HUGETLB_FLAG_ENCODE_16KB
@@ -44,4 +34,15 @@
 #define MAP_HUGE_1GB HUGETLB_FLAG_ENCODE_1GB
 #define MAP_HUGE_2GB HUGETLB_FLAG_ENCODE_2GB
 #define MAP_HUGE_16GB HUGETLB_FLAG_ENCODE_16GB
+struct cachestat_range {
+  __u64 off;
+  __u64 len;
+};
+struct cachestat {
+  __u64 nr_cache;
+  __u64 nr_dirty;
+  __u64 nr_writeback;
+  __u64 nr_evicted;
+  __u64 nr_recently_evicted;
+};
 #endif
diff --git a/libc/kernel/uapi/linux/mmc/ioctl.h b/libc/kernel/uapi/linux/mmc/ioctl.h
index 451134b..1989981 100644
--- a/libc/kernel/uapi/linux/mmc/ioctl.h
+++ b/libc/kernel/uapi/linux/mmc/ioctl.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef LINUX_MMC_IOCTL_H
 #define LINUX_MMC_IOCTL_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/mmtimer.h b/libc/kernel/uapi/linux/mmtimer.h
index babdb24..867ddd6 100644
--- a/libc/kernel/uapi/linux/mmtimer.h
+++ b/libc/kernel/uapi/linux/mmtimer.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _LINUX_MMTIMER_H
 #define _LINUX_MMTIMER_H
 #define MMTIMER_IOCTL_BASE 'm'
diff --git a/libc/kernel/uapi/linux/module.h b/libc/kernel/uapi/linux/module.h
index 34a4c56..17c103f 100644
--- a/libc/kernel/uapi/linux/module.h
+++ b/libc/kernel/uapi/linux/module.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_MODULE_H
 #define _UAPI_LINUX_MODULE_H
 #define MODULE_INIT_IGNORE_MODVERSIONS 1
diff --git a/libc/kernel/uapi/linux/mount.h b/libc/kernel/uapi/linux/mount.h
index 2099b48..c4278b5 100644
--- a/libc/kernel/uapi/linux/mount.h
+++ b/libc/kernel/uapi/linux/mount.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_MOUNT_H
 #define _UAPI_LINUX_MOUNT_H
 #include <linux/types.h>
@@ -63,7 +51,8 @@
 #define MOVE_MOUNT_T_AUTOMOUNTS 0x00000020
 #define MOVE_MOUNT_T_EMPTY_PATH 0x00000040
 #define MOVE_MOUNT_SET_GROUP 0x00000100
-#define MOVE_MOUNT__MASK 0x00000177
+#define MOVE_MOUNT_BENEATH 0x00000200
+#define MOVE_MOUNT__MASK 0x00000377
 #define FSOPEN_CLOEXEC 0x00000001
 #define FSPICK_CLOEXEC 0x00000001
 #define FSPICK_SYMLINK_NOFOLLOW 0x00000002
@@ -78,6 +67,7 @@
   FSCONFIG_SET_FD = 5,
   FSCONFIG_CMD_CREATE = 6,
   FSCONFIG_CMD_RECONFIGURE = 7,
+  FSCONFIG_CMD_CREATE_EXCL = 8,
 };
 #define FSMOUNT_CLOEXEC 0x00000001
 #define MOUNT_ATTR_RDONLY 0x00000001
@@ -98,4 +88,47 @@
   __u64 userns_fd;
 };
 #define MOUNT_ATTR_SIZE_VER0 32
+struct statmount {
+  __u32 size;
+  __u32 mnt_opts;
+  __u64 mask;
+  __u32 sb_dev_major;
+  __u32 sb_dev_minor;
+  __u64 sb_magic;
+  __u32 sb_flags;
+  __u32 fs_type;
+  __u64 mnt_id;
+  __u64 mnt_parent_id;
+  __u32 mnt_id_old;
+  __u32 mnt_parent_id_old;
+  __u64 mnt_attr;
+  __u64 mnt_propagation;
+  __u64 mnt_peer_group;
+  __u64 mnt_master;
+  __u64 propagate_from;
+  __u32 mnt_root;
+  __u32 mnt_point;
+  __u64 mnt_ns_id;
+  __u64 __spare2[49];
+  char str[];
+};
+struct mnt_id_req {
+  __u32 size;
+  __u32 spare;
+  __u64 mnt_id;
+  __u64 param;
+  __u64 mnt_ns_id;
+};
+#define MNT_ID_REQ_SIZE_VER0 24
+#define MNT_ID_REQ_SIZE_VER1 32
+#define STATMOUNT_SB_BASIC 0x00000001U
+#define STATMOUNT_MNT_BASIC 0x00000002U
+#define STATMOUNT_PROPAGATE_FROM 0x00000004U
+#define STATMOUNT_MNT_ROOT 0x00000008U
+#define STATMOUNT_MNT_POINT 0x00000010U
+#define STATMOUNT_FS_TYPE 0x00000020U
+#define STATMOUNT_MNT_NS_ID 0x00000040U
+#define STATMOUNT_MNT_OPTS 0x00000080U
+#define LSMT_ROOT 0xffffffffffffffff
+#define LISTMOUNT_REVERSE (1 << 0)
 #endif
diff --git a/libc/kernel/uapi/linux/mpls.h b/libc/kernel/uapi/linux/mpls.h
index 86d8e07..0e5a06f 100644
--- a/libc/kernel/uapi/linux/mpls.h
+++ b/libc/kernel/uapi/linux/mpls.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_MPLS_H
 #define _UAPI_MPLS_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/mpls_iptunnel.h b/libc/kernel/uapi/linux/mpls_iptunnel.h
index 473cb0d..ea152e8 100644
--- a/libc/kernel/uapi/linux/mpls_iptunnel.h
+++ b/libc/kernel/uapi/linux/mpls_iptunnel.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_MPLS_IPTUNNEL_H
 #define _UAPI_LINUX_MPLS_IPTUNNEL_H
 enum {
diff --git a/libc/kernel/uapi/linux/mptcp.h b/libc/kernel/uapi/linux/mptcp.h
index 9f7215c..03d3691 100644
--- a/libc/kernel/uapi/linux/mptcp.h
+++ b/libc/kernel/uapi/linux/mptcp.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_MPTCP_H
 #define _UAPI_MPTCP_H
 #include <netinet/in.h>
@@ -34,71 +22,16 @@
 #define MPTCP_SUBFLOW_FLAG_FULLY_ESTABLISHED _BITUL(6)
 #define MPTCP_SUBFLOW_FLAG_CONNECTED _BITUL(7)
 #define MPTCP_SUBFLOW_FLAG_MAPVALID _BITUL(8)
-enum {
-  MPTCP_SUBFLOW_ATTR_UNSPEC,
-  MPTCP_SUBFLOW_ATTR_TOKEN_REM,
-  MPTCP_SUBFLOW_ATTR_TOKEN_LOC,
-  MPTCP_SUBFLOW_ATTR_RELWRITE_SEQ,
-  MPTCP_SUBFLOW_ATTR_MAP_SEQ,
-  MPTCP_SUBFLOW_ATTR_MAP_SFSEQ,
-  MPTCP_SUBFLOW_ATTR_SSN_OFFSET,
-  MPTCP_SUBFLOW_ATTR_MAP_DATALEN,
-  MPTCP_SUBFLOW_ATTR_FLAGS,
-  MPTCP_SUBFLOW_ATTR_ID_REM,
-  MPTCP_SUBFLOW_ATTR_ID_LOC,
-  MPTCP_SUBFLOW_ATTR_PAD,
-  __MPTCP_SUBFLOW_ATTR_MAX
-};
-#define MPTCP_SUBFLOW_ATTR_MAX (__MPTCP_SUBFLOW_ATTR_MAX - 1)
-#define MPTCP_PM_NAME "mptcp_pm"
 #define MPTCP_PM_CMD_GRP_NAME "mptcp_pm_cmds"
 #define MPTCP_PM_EV_GRP_NAME "mptcp_pm_events"
-#define MPTCP_PM_VER 0x1
-enum {
-  MPTCP_PM_ATTR_UNSPEC,
-  MPTCP_PM_ATTR_ADDR,
-  MPTCP_PM_ATTR_RCV_ADD_ADDRS,
-  MPTCP_PM_ATTR_SUBFLOWS,
-  MPTCP_PM_ATTR_TOKEN,
-  MPTCP_PM_ATTR_LOC_ID,
-  MPTCP_PM_ATTR_ADDR_REMOTE,
-  __MPTCP_PM_ATTR_MAX
-};
-#define MPTCP_PM_ATTR_MAX (__MPTCP_PM_ATTR_MAX - 1)
-enum {
-  MPTCP_PM_ADDR_ATTR_UNSPEC,
-  MPTCP_PM_ADDR_ATTR_FAMILY,
-  MPTCP_PM_ADDR_ATTR_ID,
-  MPTCP_PM_ADDR_ATTR_ADDR4,
-  MPTCP_PM_ADDR_ATTR_ADDR6,
-  MPTCP_PM_ADDR_ATTR_PORT,
-  MPTCP_PM_ADDR_ATTR_FLAGS,
-  MPTCP_PM_ADDR_ATTR_IF_IDX,
-  __MPTCP_PM_ADDR_ATTR_MAX
-};
-#define MPTCP_PM_ADDR_ATTR_MAX (__MPTCP_PM_ADDR_ATTR_MAX - 1)
+#include <linux/mptcp_pm.h>
+#define MPTCP_INFO_FLAG_FALLBACK _BITUL(0)
+#define MPTCP_INFO_FLAG_REMOTE_KEY_RECEIVED _BITUL(1)
 #define MPTCP_PM_ADDR_FLAG_SIGNAL (1 << 0)
 #define MPTCP_PM_ADDR_FLAG_SUBFLOW (1 << 1)
 #define MPTCP_PM_ADDR_FLAG_BACKUP (1 << 2)
 #define MPTCP_PM_ADDR_FLAG_FULLMESH (1 << 3)
 #define MPTCP_PM_ADDR_FLAG_IMPLICIT (1 << 4)
-enum {
-  MPTCP_PM_CMD_UNSPEC,
-  MPTCP_PM_CMD_ADD_ADDR,
-  MPTCP_PM_CMD_DEL_ADDR,
-  MPTCP_PM_CMD_GET_ADDR,
-  MPTCP_PM_CMD_FLUSH_ADDRS,
-  MPTCP_PM_CMD_SET_LIMITS,
-  MPTCP_PM_CMD_GET_LIMITS,
-  MPTCP_PM_CMD_SET_FLAGS,
-  MPTCP_PM_CMD_ANNOUNCE,
-  MPTCP_PM_CMD_REMOVE,
-  MPTCP_PM_CMD_SUBFLOW_CREATE,
-  MPTCP_PM_CMD_SUBFLOW_DESTROY,
-  __MPTCP_PM_CMD_AFTER_LAST
-};
-#define MPTCP_INFO_FLAG_FALLBACK _BITUL(0)
-#define MPTCP_INFO_FLAG_REMOTE_KEY_RECEIVED _BITUL(1)
 struct mptcp_info {
   __u8 mptcpi_subflows;
   __u8 mptcpi_add_addr_signal;
@@ -114,43 +47,17 @@
   __u8 mptcpi_local_addr_used;
   __u8 mptcpi_local_addr_max;
   __u8 mptcpi_csum_enabled;
+  __u32 mptcpi_retransmits;
+  __u64 mptcpi_bytes_retrans;
+  __u64 mptcpi_bytes_sent;
+  __u64 mptcpi_bytes_received;
+  __u64 mptcpi_bytes_acked;
+  __u8 mptcpi_subflows_total;
+  __u8 reserved[3];
+  __u32 mptcpi_last_data_sent;
+  __u32 mptcpi_last_data_recv;
+  __u32 mptcpi_last_ack_recv;
 };
-enum mptcp_event_type {
-  MPTCP_EVENT_UNSPEC = 0,
-  MPTCP_EVENT_CREATED = 1,
-  MPTCP_EVENT_ESTABLISHED = 2,
-  MPTCP_EVENT_CLOSED = 3,
-  MPTCP_EVENT_ANNOUNCED = 6,
-  MPTCP_EVENT_REMOVED = 7,
-  MPTCP_EVENT_SUB_ESTABLISHED = 10,
-  MPTCP_EVENT_SUB_CLOSED = 11,
-  MPTCP_EVENT_SUB_PRIORITY = 13,
-  MPTCP_EVENT_LISTENER_CREATED = 15,
-  MPTCP_EVENT_LISTENER_CLOSED = 16,
-};
-enum mptcp_event_attr {
-  MPTCP_ATTR_UNSPEC = 0,
-  MPTCP_ATTR_TOKEN,
-  MPTCP_ATTR_FAMILY,
-  MPTCP_ATTR_LOC_ID,
-  MPTCP_ATTR_REM_ID,
-  MPTCP_ATTR_SADDR4,
-  MPTCP_ATTR_SADDR6,
-  MPTCP_ATTR_DADDR4,
-  MPTCP_ATTR_DADDR6,
-  MPTCP_ATTR_SPORT,
-  MPTCP_ATTR_DPORT,
-  MPTCP_ATTR_BACKUP,
-  MPTCP_ATTR_ERROR,
-  MPTCP_ATTR_FLAGS,
-  MPTCP_ATTR_TIMEOUT,
-  MPTCP_ATTR_IF_IDX,
-  MPTCP_ATTR_RESET_REASON,
-  MPTCP_ATTR_RESET_FLAGS,
-  MPTCP_ATTR_SERVER_SIDE,
-  __MPTCP_ATTR_AFTER_LAST
-};
-#define MPTCP_ATTR_MAX (__MPTCP_ATTR_AFTER_LAST - 1)
 #define MPTCP_RST_EUNSPEC 0
 #define MPTCP_RST_EMPTCP 1
 #define MPTCP_RST_ERESOURCE 2
@@ -170,16 +77,32 @@
     struct sockaddr sa_local;
     struct sockaddr_in sin_local;
     struct sockaddr_in6 sin6_local;
-    struct __kernel_sockaddr_storage ss_local;
+    struct sockaddr_storage ss_local;
   };
   union {
     struct sockaddr sa_remote;
     struct sockaddr_in sin_remote;
     struct sockaddr_in6 sin6_remote;
-    struct __kernel_sockaddr_storage ss_remote;
+    struct sockaddr_storage ss_remote;
   };
 };
+struct mptcp_subflow_info {
+  __u32 id;
+  struct mptcp_subflow_addrs addrs;
+};
+struct mptcp_full_info {
+  __u32 size_tcpinfo_kernel;
+  __u32 size_tcpinfo_user;
+  __u32 size_sfinfo_kernel;
+  __u32 size_sfinfo_user;
+  __u32 num_subflows;
+  __u32 size_arrays_user;
+  __aligned_u64 subflow_info;
+  __aligned_u64 tcp_info;
+  struct mptcp_info mptcp_info;
+};
 #define MPTCP_INFO 1
 #define MPTCP_TCPINFO 2
 #define MPTCP_SUBFLOW_ADDRS 3
+#define MPTCP_FULL_INFO 4
 #endif
diff --git a/libc/kernel/uapi/linux/mptcp_pm.h b/libc/kernel/uapi/linux/mptcp_pm.h
new file mode 100644
index 0000000..dfabc75
--- /dev/null
+++ b/libc/kernel/uapi/linux/mptcp_pm.h
@@ -0,0 +1,107 @@
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
+#ifndef _UAPI_LINUX_MPTCP_PM_H
+#define _UAPI_LINUX_MPTCP_PM_H
+#define MPTCP_PM_NAME "mptcp_pm"
+#define MPTCP_PM_VER 1
+enum mptcp_event_type {
+  MPTCP_EVENT_UNSPEC,
+  MPTCP_EVENT_CREATED,
+  MPTCP_EVENT_ESTABLISHED,
+  MPTCP_EVENT_CLOSED,
+  MPTCP_EVENT_ANNOUNCED = 6,
+  MPTCP_EVENT_REMOVED,
+  MPTCP_EVENT_SUB_ESTABLISHED = 10,
+  MPTCP_EVENT_SUB_CLOSED,
+  MPTCP_EVENT_SUB_PRIORITY = 13,
+  MPTCP_EVENT_LISTENER_CREATED = 15,
+  MPTCP_EVENT_LISTENER_CLOSED,
+};
+enum {
+  MPTCP_PM_ADDR_ATTR_UNSPEC,
+  MPTCP_PM_ADDR_ATTR_FAMILY,
+  MPTCP_PM_ADDR_ATTR_ID,
+  MPTCP_PM_ADDR_ATTR_ADDR4,
+  MPTCP_PM_ADDR_ATTR_ADDR6,
+  MPTCP_PM_ADDR_ATTR_PORT,
+  MPTCP_PM_ADDR_ATTR_FLAGS,
+  MPTCP_PM_ADDR_ATTR_IF_IDX,
+  __MPTCP_PM_ADDR_ATTR_MAX
+};
+#define MPTCP_PM_ADDR_ATTR_MAX (__MPTCP_PM_ADDR_ATTR_MAX - 1)
+enum {
+  MPTCP_SUBFLOW_ATTR_UNSPEC,
+  MPTCP_SUBFLOW_ATTR_TOKEN_REM,
+  MPTCP_SUBFLOW_ATTR_TOKEN_LOC,
+  MPTCP_SUBFLOW_ATTR_RELWRITE_SEQ,
+  MPTCP_SUBFLOW_ATTR_MAP_SEQ,
+  MPTCP_SUBFLOW_ATTR_MAP_SFSEQ,
+  MPTCP_SUBFLOW_ATTR_SSN_OFFSET,
+  MPTCP_SUBFLOW_ATTR_MAP_DATALEN,
+  MPTCP_SUBFLOW_ATTR_FLAGS,
+  MPTCP_SUBFLOW_ATTR_ID_REM,
+  MPTCP_SUBFLOW_ATTR_ID_LOC,
+  MPTCP_SUBFLOW_ATTR_PAD,
+  __MPTCP_SUBFLOW_ATTR_MAX
+};
+#define MPTCP_SUBFLOW_ATTR_MAX (__MPTCP_SUBFLOW_ATTR_MAX - 1)
+enum {
+  MPTCP_PM_ENDPOINT_ADDR = 1,
+  __MPTCP_PM_ENDPOINT_MAX
+};
+#define MPTCP_PM_ENDPOINT_MAX (__MPTCP_PM_ENDPOINT_MAX - 1)
+enum {
+  MPTCP_PM_ATTR_UNSPEC,
+  MPTCP_PM_ATTR_ADDR,
+  MPTCP_PM_ATTR_RCV_ADD_ADDRS,
+  MPTCP_PM_ATTR_SUBFLOWS,
+  MPTCP_PM_ATTR_TOKEN,
+  MPTCP_PM_ATTR_LOC_ID,
+  MPTCP_PM_ATTR_ADDR_REMOTE,
+  __MPTCP_ATTR_AFTER_LAST
+};
+#define MPTCP_PM_ATTR_MAX (__MPTCP_ATTR_AFTER_LAST - 1)
+enum mptcp_event_attr {
+  MPTCP_ATTR_UNSPEC,
+  MPTCP_ATTR_TOKEN,
+  MPTCP_ATTR_FAMILY,
+  MPTCP_ATTR_LOC_ID,
+  MPTCP_ATTR_REM_ID,
+  MPTCP_ATTR_SADDR4,
+  MPTCP_ATTR_SADDR6,
+  MPTCP_ATTR_DADDR4,
+  MPTCP_ATTR_DADDR6,
+  MPTCP_ATTR_SPORT,
+  MPTCP_ATTR_DPORT,
+  MPTCP_ATTR_BACKUP,
+  MPTCP_ATTR_ERROR,
+  MPTCP_ATTR_FLAGS,
+  MPTCP_ATTR_TIMEOUT,
+  MPTCP_ATTR_IF_IDX,
+  MPTCP_ATTR_RESET_REASON,
+  MPTCP_ATTR_RESET_FLAGS,
+  MPTCP_ATTR_SERVER_SIDE,
+  __MPTCP_ATTR_MAX
+};
+#define MPTCP_ATTR_MAX (__MPTCP_ATTR_MAX - 1)
+enum {
+  MPTCP_PM_CMD_UNSPEC,
+  MPTCP_PM_CMD_ADD_ADDR,
+  MPTCP_PM_CMD_DEL_ADDR,
+  MPTCP_PM_CMD_GET_ADDR,
+  MPTCP_PM_CMD_FLUSH_ADDRS,
+  MPTCP_PM_CMD_SET_LIMITS,
+  MPTCP_PM_CMD_GET_LIMITS,
+  MPTCP_PM_CMD_SET_FLAGS,
+  MPTCP_PM_CMD_ANNOUNCE,
+  MPTCP_PM_CMD_REMOVE,
+  MPTCP_PM_CMD_SUBFLOW_CREATE,
+  MPTCP_PM_CMD_SUBFLOW_DESTROY,
+  __MPTCP_PM_CMD_AFTER_LAST
+};
+#define MPTCP_PM_CMD_MAX (__MPTCP_PM_CMD_AFTER_LAST - 1)
+#endif
diff --git a/libc/kernel/uapi/linux/mqueue.h b/libc/kernel/uapi/linux/mqueue.h
index a540830..fae9a27 100644
--- a/libc/kernel/uapi/linux/mqueue.h
+++ b/libc/kernel/uapi/linux/mqueue.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _LINUX_MQUEUE_H
 #define _LINUX_MQUEUE_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/mroute.h b/libc/kernel/uapi/linux/mroute.h
index e934d09..0ecce42 100644
--- a/libc/kernel/uapi/linux/mroute.h
+++ b/libc/kernel/uapi/linux/mroute.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI__LINUX_MROUTE_H
 #define _UAPI__LINUX_MROUTE_H
 #include <linux/sockios.h>
diff --git a/libc/kernel/uapi/linux/mroute6.h b/libc/kernel/uapi/linux/mroute6.h
index 68480de..47d2031 100644
--- a/libc/kernel/uapi/linux/mroute6.h
+++ b/libc/kernel/uapi/linux/mroute6.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI__LINUX_MROUTE6_H
 #define _UAPI__LINUX_MROUTE6_H
 #include <linux/const.h>
diff --git a/libc/kernel/uapi/linux/mrp_bridge.h b/libc/kernel/uapi/linux/mrp_bridge.h
index 0f93514..e55fddf 100644
--- a/libc/kernel/uapi/linux/mrp_bridge.h
+++ b/libc/kernel/uapi/linux/mrp_bridge.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_MRP_BRIDGE_H_
 #define _UAPI_LINUX_MRP_BRIDGE_H_
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/msdos_fs.h b/libc/kernel/uapi/linux/msdos_fs.h
index 4b777db..f512cfa 100644
--- a/libc/kernel/uapi/linux/msdos_fs.h
+++ b/libc/kernel/uapi/linux/msdos_fs.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_MSDOS_FS_H
 #define _UAPI_LINUX_MSDOS_FS_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/msg.h b/libc/kernel/uapi/linux/msg.h
index bb32b93..a973814 100644
--- a/libc/kernel/uapi/linux/msg.h
+++ b/libc/kernel/uapi/linux/msg.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_MSG_H
 #define _UAPI_LINUX_MSG_H
 #include <linux/ipc.h>
diff --git a/libc/kernel/uapi/linux/mtio.h b/libc/kernel/uapi/linux/mtio.h
index b87c1fa..07d998f 100644
--- a/libc/kernel/uapi/linux/mtio.h
+++ b/libc/kernel/uapi/linux/mtio.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _LINUX_MTIO_H
 #define _LINUX_MTIO_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/nbd-netlink.h b/libc/kernel/uapi/linux/nbd-netlink.h
index dffb077..242cbbe 100644
--- a/libc/kernel/uapi/linux/nbd-netlink.h
+++ b/libc/kernel/uapi/linux/nbd-netlink.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPILINUX_NBD_NETLINK_H
 #define _UAPILINUX_NBD_NETLINK_H
 #define NBD_GENL_FAMILY_NAME "nbd"
diff --git a/libc/kernel/uapi/linux/nbd.h b/libc/kernel/uapi/linux/nbd.h
index 3b74393..d47c28f 100644
--- a/libc/kernel/uapi/linux/nbd.h
+++ b/libc/kernel/uapi/linux/nbd.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPILINUX_NBD_H
 #define _UAPILINUX_NBD_H
 #include <linux/types.h>
@@ -51,13 +39,19 @@
 struct nbd_request {
   __be32 magic;
   __be32 type;
-  char handle[8];
+  union {
+    __be64 cookie;
+    char handle[8];
+  };
   __be64 from;
   __be32 len;
 } __attribute__((packed));
 struct nbd_reply {
   __be32 magic;
   __be32 error;
-  char handle[8];
+  union {
+    __be64 cookie;
+    char handle[8];
+  };
 };
 #endif
diff --git a/libc/kernel/uapi/linux/ncsi.h b/libc/kernel/uapi/linux/ncsi.h
index 6334a8a..7887630 100644
--- a/libc/kernel/uapi/linux/ncsi.h
+++ b/libc/kernel/uapi/linux/ncsi.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __UAPI_NCSI_NETLINK_H__
 #define __UAPI_NCSI_NETLINK_H__
 enum ncsi_nl_commands {
diff --git a/libc/kernel/uapi/linux/ndctl.h b/libc/kernel/uapi/linux/ndctl.h
index 7e0d560..28d8b49 100644
--- a/libc/kernel/uapi/linux/ndctl.h
+++ b/libc/kernel/uapi/linux/ndctl.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __NDCTL_H__
 #define __NDCTL_H__
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/neighbour.h b/libc/kernel/uapi/linux/neighbour.h
index 4b479a1..7a67601 100644
--- a/libc/kernel/uapi/linux/neighbour.h
+++ b/libc/kernel/uapi/linux/neighbour.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __LINUX_NEIGHBOUR_H
 #define __LINUX_NEIGHBOUR_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/net.h b/libc/kernel/uapi/linux/net.h
index a53b329..fda0f81 100644
--- a/libc/kernel/uapi/linux/net.h
+++ b/libc/kernel/uapi/linux/net.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_NET_H
 #define _UAPI_LINUX_NET_H
 #include <linux/socket.h>
diff --git a/libc/kernel/uapi/linux/net_dropmon.h b/libc/kernel/uapi/linux/net_dropmon.h
index 4d2c336..2d75388 100644
--- a/libc/kernel/uapi/linux/net_dropmon.h
+++ b/libc/kernel/uapi/linux/net_dropmon.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __NET_DROPMON_H
 #define __NET_DROPMON_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/net_namespace.h b/libc/kernel/uapi/linux/net_namespace.h
index a54c9e1..e3641b5 100644
--- a/libc/kernel/uapi/linux/net_namespace.h
+++ b/libc/kernel/uapi/linux/net_namespace.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_NET_NAMESPACE_H_
 #define _UAPI_LINUX_NET_NAMESPACE_H_
 enum {
diff --git a/libc/kernel/uapi/linux/net_tstamp.h b/libc/kernel/uapi/linux/net_tstamp.h
index d79d98a..9bbd309 100644
--- a/libc/kernel/uapi/linux/net_tstamp.h
+++ b/libc/kernel/uapi/linux/net_tstamp.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _NET_TIMESTAMPING_H
 #define _NET_TIMESTAMPING_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/netconf.h b/libc/kernel/uapi/linux/netconf.h
index 27d3854..6629950 100644
--- a/libc/kernel/uapi/linux/netconf.h
+++ b/libc/kernel/uapi/linux/netconf.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_NETCONF_H_
 #define _UAPI_LINUX_NETCONF_H_
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/netdev.h b/libc/kernel/uapi/linux/netdev.h
new file mode 100644
index 0000000..b084297
--- /dev/null
+++ b/libc/kernel/uapi/linux/netdev.h
@@ -0,0 +1,142 @@
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
+#ifndef _UAPI_LINUX_NETDEV_H
+#define _UAPI_LINUX_NETDEV_H
+#define NETDEV_FAMILY_NAME "netdev"
+#define NETDEV_FAMILY_VERSION 1
+enum netdev_xdp_act {
+  NETDEV_XDP_ACT_BASIC = 1,
+  NETDEV_XDP_ACT_REDIRECT = 2,
+  NETDEV_XDP_ACT_NDO_XMIT = 4,
+  NETDEV_XDP_ACT_XSK_ZEROCOPY = 8,
+  NETDEV_XDP_ACT_HW_OFFLOAD = 16,
+  NETDEV_XDP_ACT_RX_SG = 32,
+  NETDEV_XDP_ACT_NDO_XMIT_SG = 64,
+  NETDEV_XDP_ACT_MASK = 127,
+};
+enum netdev_xdp_rx_metadata {
+  NETDEV_XDP_RX_METADATA_TIMESTAMP = 1,
+  NETDEV_XDP_RX_METADATA_HASH = 2,
+  NETDEV_XDP_RX_METADATA_VLAN_TAG = 4,
+};
+enum netdev_xsk_flags {
+  NETDEV_XSK_FLAGS_TX_TIMESTAMP = 1,
+  NETDEV_XSK_FLAGS_TX_CHECKSUM = 2,
+};
+enum netdev_queue_type {
+  NETDEV_QUEUE_TYPE_RX,
+  NETDEV_QUEUE_TYPE_TX,
+};
+enum netdev_qstats_scope {
+  NETDEV_QSTATS_SCOPE_QUEUE = 1,
+};
+enum {
+  NETDEV_A_DEV_IFINDEX = 1,
+  NETDEV_A_DEV_PAD,
+  NETDEV_A_DEV_XDP_FEATURES,
+  NETDEV_A_DEV_XDP_ZC_MAX_SEGS,
+  NETDEV_A_DEV_XDP_RX_METADATA_FEATURES,
+  NETDEV_A_DEV_XSK_FEATURES,
+  __NETDEV_A_DEV_MAX,
+  NETDEV_A_DEV_MAX = (__NETDEV_A_DEV_MAX - 1)
+};
+enum {
+  NETDEV_A_PAGE_POOL_ID = 1,
+  NETDEV_A_PAGE_POOL_IFINDEX,
+  NETDEV_A_PAGE_POOL_NAPI_ID,
+  NETDEV_A_PAGE_POOL_INFLIGHT,
+  NETDEV_A_PAGE_POOL_INFLIGHT_MEM,
+  NETDEV_A_PAGE_POOL_DETACH_TIME,
+  __NETDEV_A_PAGE_POOL_MAX,
+  NETDEV_A_PAGE_POOL_MAX = (__NETDEV_A_PAGE_POOL_MAX - 1)
+};
+enum {
+  NETDEV_A_PAGE_POOL_STATS_INFO = 1,
+  NETDEV_A_PAGE_POOL_STATS_ALLOC_FAST = 8,
+  NETDEV_A_PAGE_POOL_STATS_ALLOC_SLOW,
+  NETDEV_A_PAGE_POOL_STATS_ALLOC_SLOW_HIGH_ORDER,
+  NETDEV_A_PAGE_POOL_STATS_ALLOC_EMPTY,
+  NETDEV_A_PAGE_POOL_STATS_ALLOC_REFILL,
+  NETDEV_A_PAGE_POOL_STATS_ALLOC_WAIVE,
+  NETDEV_A_PAGE_POOL_STATS_RECYCLE_CACHED,
+  NETDEV_A_PAGE_POOL_STATS_RECYCLE_CACHE_FULL,
+  NETDEV_A_PAGE_POOL_STATS_RECYCLE_RING,
+  NETDEV_A_PAGE_POOL_STATS_RECYCLE_RING_FULL,
+  NETDEV_A_PAGE_POOL_STATS_RECYCLE_RELEASED_REFCNT,
+  __NETDEV_A_PAGE_POOL_STATS_MAX,
+  NETDEV_A_PAGE_POOL_STATS_MAX = (__NETDEV_A_PAGE_POOL_STATS_MAX - 1)
+};
+enum {
+  NETDEV_A_NAPI_IFINDEX = 1,
+  NETDEV_A_NAPI_ID,
+  NETDEV_A_NAPI_IRQ,
+  NETDEV_A_NAPI_PID,
+  __NETDEV_A_NAPI_MAX,
+  NETDEV_A_NAPI_MAX = (__NETDEV_A_NAPI_MAX - 1)
+};
+enum {
+  NETDEV_A_QUEUE_ID = 1,
+  NETDEV_A_QUEUE_IFINDEX,
+  NETDEV_A_QUEUE_TYPE,
+  NETDEV_A_QUEUE_NAPI_ID,
+  __NETDEV_A_QUEUE_MAX,
+  NETDEV_A_QUEUE_MAX = (__NETDEV_A_QUEUE_MAX - 1)
+};
+enum {
+  NETDEV_A_QSTATS_IFINDEX = 1,
+  NETDEV_A_QSTATS_QUEUE_TYPE,
+  NETDEV_A_QSTATS_QUEUE_ID,
+  NETDEV_A_QSTATS_SCOPE,
+  NETDEV_A_QSTATS_RX_PACKETS = 8,
+  NETDEV_A_QSTATS_RX_BYTES,
+  NETDEV_A_QSTATS_TX_PACKETS,
+  NETDEV_A_QSTATS_TX_BYTES,
+  NETDEV_A_QSTATS_RX_ALLOC_FAIL,
+  NETDEV_A_QSTATS_RX_HW_DROPS,
+  NETDEV_A_QSTATS_RX_HW_DROP_OVERRUNS,
+  NETDEV_A_QSTATS_RX_CSUM_COMPLETE,
+  NETDEV_A_QSTATS_RX_CSUM_UNNECESSARY,
+  NETDEV_A_QSTATS_RX_CSUM_NONE,
+  NETDEV_A_QSTATS_RX_CSUM_BAD,
+  NETDEV_A_QSTATS_RX_HW_GRO_PACKETS,
+  NETDEV_A_QSTATS_RX_HW_GRO_BYTES,
+  NETDEV_A_QSTATS_RX_HW_GRO_WIRE_PACKETS,
+  NETDEV_A_QSTATS_RX_HW_GRO_WIRE_BYTES,
+  NETDEV_A_QSTATS_RX_HW_DROP_RATELIMITS,
+  NETDEV_A_QSTATS_TX_HW_DROPS,
+  NETDEV_A_QSTATS_TX_HW_DROP_ERRORS,
+  NETDEV_A_QSTATS_TX_CSUM_NONE,
+  NETDEV_A_QSTATS_TX_NEEDS_CSUM,
+  NETDEV_A_QSTATS_TX_HW_GSO_PACKETS,
+  NETDEV_A_QSTATS_TX_HW_GSO_BYTES,
+  NETDEV_A_QSTATS_TX_HW_GSO_WIRE_PACKETS,
+  NETDEV_A_QSTATS_TX_HW_GSO_WIRE_BYTES,
+  NETDEV_A_QSTATS_TX_HW_DROP_RATELIMITS,
+  NETDEV_A_QSTATS_TX_STOP,
+  NETDEV_A_QSTATS_TX_WAKE,
+  __NETDEV_A_QSTATS_MAX,
+  NETDEV_A_QSTATS_MAX = (__NETDEV_A_QSTATS_MAX - 1)
+};
+enum {
+  NETDEV_CMD_DEV_GET = 1,
+  NETDEV_CMD_DEV_ADD_NTF,
+  NETDEV_CMD_DEV_DEL_NTF,
+  NETDEV_CMD_DEV_CHANGE_NTF,
+  NETDEV_CMD_PAGE_POOL_GET,
+  NETDEV_CMD_PAGE_POOL_ADD_NTF,
+  NETDEV_CMD_PAGE_POOL_DEL_NTF,
+  NETDEV_CMD_PAGE_POOL_CHANGE_NTF,
+  NETDEV_CMD_PAGE_POOL_STATS_GET,
+  NETDEV_CMD_QUEUE_GET,
+  NETDEV_CMD_NAPI_GET,
+  NETDEV_CMD_QSTATS_GET,
+  __NETDEV_CMD_MAX,
+  NETDEV_CMD_MAX = (__NETDEV_CMD_MAX - 1)
+};
+#define NETDEV_MCGRP_MGMT "mgmt"
+#define NETDEV_MCGRP_PAGE_POOL "page-pool"
+#endif
diff --git a/libc/kernel/uapi/linux/netdevice.h b/libc/kernel/uapi/linux/netdevice.h
index ff2d959..695c1cd 100644
--- a/libc/kernel/uapi/linux/netdevice.h
+++ b/libc/kernel/uapi/linux/netdevice.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_NETDEVICE_H
 #define _UAPI_LINUX_NETDEVICE_H
 #include <linux/if.h>
diff --git a/libc/kernel/uapi/linux/netfilter.h b/libc/kernel/uapi/linux/netfilter.h
index 77b8a91..65b3196 100644
--- a/libc/kernel/uapi/linux/netfilter.h
+++ b/libc/kernel/uapi/linux/netfilter.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI__LINUX_NETFILTER_H
 #define _UAPI__LINUX_NETFILTER_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/netfilter/ipset/ip_set.h b/libc/kernel/uapi/linux/netfilter/ipset/ip_set.h
index a5aa6bc..0b0fac8 100644
--- a/libc/kernel/uapi/linux/netfilter/ipset/ip_set.h
+++ b/libc/kernel/uapi/linux/netfilter/ipset/ip_set.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_IP_SET_H
 #define _UAPI_IP_SET_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/netfilter/ipset/ip_set_bitmap.h b/libc/kernel/uapi/linux/netfilter/ipset/ip_set_bitmap.h
index e323396..3188b93 100644
--- a/libc/kernel/uapi/linux/netfilter/ipset/ip_set_bitmap.h
+++ b/libc/kernel/uapi/linux/netfilter/ipset/ip_set_bitmap.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI__IP_SET_BITMAP_H
 #define _UAPI__IP_SET_BITMAP_H
 #include <linux/netfilter/ipset/ip_set.h>
diff --git a/libc/kernel/uapi/linux/netfilter/ipset/ip_set_hash.h b/libc/kernel/uapi/linux/netfilter/ipset/ip_set_hash.h
index d4aadcb..2e084cd 100644
--- a/libc/kernel/uapi/linux/netfilter/ipset/ip_set_hash.h
+++ b/libc/kernel/uapi/linux/netfilter/ipset/ip_set_hash.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI__IP_SET_HASH_H
 #define _UAPI__IP_SET_HASH_H
 #include <linux/netfilter/ipset/ip_set.h>
diff --git a/libc/kernel/uapi/linux/netfilter/ipset/ip_set_list.h b/libc/kernel/uapi/linux/netfilter/ipset/ip_set_list.h
index d3b5165..d70a277 100644
--- a/libc/kernel/uapi/linux/netfilter/ipset/ip_set_list.h
+++ b/libc/kernel/uapi/linux/netfilter/ipset/ip_set_list.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI__IP_SET_LIST_H
 #define _UAPI__IP_SET_LIST_H
 #include <linux/netfilter/ipset/ip_set.h>
diff --git a/libc/kernel/uapi/linux/netfilter/nf_conntrack_common.h b/libc/kernel/uapi/linux/netfilter/nf_conntrack_common.h
index 3ff6030..9f93d34 100644
--- a/libc/kernel/uapi/linux/netfilter/nf_conntrack_common.h
+++ b/libc/kernel/uapi/linux/netfilter/nf_conntrack_common.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_NF_CONNTRACK_COMMON_H
 #define _UAPI_NF_CONNTRACK_COMMON_H
 enum ip_conntrack_info {
diff --git a/libc/kernel/uapi/linux/netfilter/nf_conntrack_ftp.h b/libc/kernel/uapi/linux/netfilter/nf_conntrack_ftp.h
index 0c79774..8961b9e 100644
--- a/libc/kernel/uapi/linux/netfilter/nf_conntrack_ftp.h
+++ b/libc/kernel/uapi/linux/netfilter/nf_conntrack_ftp.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_NF_CONNTRACK_FTP_H
 #define _UAPI_NF_CONNTRACK_FTP_H
 enum nf_ct_ftp_type {
diff --git a/libc/kernel/uapi/linux/netfilter/nf_conntrack_sctp.h b/libc/kernel/uapi/linux/netfilter/nf_conntrack_sctp.h
index 060059c..5f248ac 100644
--- a/libc/kernel/uapi/linux/netfilter/nf_conntrack_sctp.h
+++ b/libc/kernel/uapi/linux/netfilter/nf_conntrack_sctp.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_NF_CONNTRACK_SCTP_H
 #define _UAPI_NF_CONNTRACK_SCTP_H
 #include <linux/netfilter/nf_conntrack_tuple_common.h>
diff --git a/libc/kernel/uapi/linux/netfilter/nf_conntrack_tcp.h b/libc/kernel/uapi/linux/netfilter/nf_conntrack_tcp.h
index 8894aa1..0995d5f 100644
--- a/libc/kernel/uapi/linux/netfilter/nf_conntrack_tcp.h
+++ b/libc/kernel/uapi/linux/netfilter/nf_conntrack_tcp.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_NF_CONNTRACK_TCP_H
 #define _UAPI_NF_CONNTRACK_TCP_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/netfilter/nf_conntrack_tuple_common.h b/libc/kernel/uapi/linux/netfilter/nf_conntrack_tuple_common.h
index b2f795c..bcc698f 100644
--- a/libc/kernel/uapi/linux/netfilter/nf_conntrack_tuple_common.h
+++ b/libc/kernel/uapi/linux/netfilter/nf_conntrack_tuple_common.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _NF_CONNTRACK_TUPLE_COMMON_H
 #define _NF_CONNTRACK_TUPLE_COMMON_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/netfilter/nf_log.h b/libc/kernel/uapi/linux/netfilter/nf_log.h
index f7a729d..2e5d90e 100644
--- a/libc/kernel/uapi/linux/netfilter/nf_log.h
+++ b/libc/kernel/uapi/linux/netfilter/nf_log.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _NETFILTER_NF_LOG_H
 #define _NETFILTER_NF_LOG_H
 #define NF_LOG_TCPSEQ 0x01
diff --git a/libc/kernel/uapi/linux/netfilter/nf_nat.h b/libc/kernel/uapi/linux/netfilter/nf_nat.h
index 84373ed..2dd14a0 100644
--- a/libc/kernel/uapi/linux/netfilter/nf_nat.h
+++ b/libc/kernel/uapi/linux/netfilter/nf_nat.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _NETFILTER_NF_NAT_H
 #define _NETFILTER_NF_NAT_H
 #include <linux/netfilter.h>
diff --git a/libc/kernel/uapi/linux/netfilter/nf_synproxy.h b/libc/kernel/uapi/linux/netfilter/nf_synproxy.h
index 474838e..9311c56 100644
--- a/libc/kernel/uapi/linux/netfilter/nf_synproxy.h
+++ b/libc/kernel/uapi/linux/netfilter/nf_synproxy.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _NF_SYNPROXY_H
 #define _NF_SYNPROXY_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/netfilter/nf_tables.h b/libc/kernel/uapi/linux/netfilter/nf_tables.h
index f07d7c7..bfc6e25 100644
--- a/libc/kernel/uapi/linux/netfilter/nf_tables.h
+++ b/libc/kernel/uapi/linux/netfilter/nf_tables.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _LINUX_NF_TABLES_H
 #define _LINUX_NF_TABLES_H
 #define NFT_NAME_MAXLEN 256
@@ -87,6 +75,14 @@
   NFT_MSG_GETFLOWTABLE,
   NFT_MSG_DELFLOWTABLE,
   NFT_MSG_GETRULE_RESET,
+  NFT_MSG_DESTROYTABLE,
+  NFT_MSG_DESTROYCHAIN,
+  NFT_MSG_DESTROYRULE,
+  NFT_MSG_DESTROYSET,
+  NFT_MSG_DESTROYSETELEM,
+  NFT_MSG_DESTROYOBJ,
+  NFT_MSG_DESTROYFLOWTABLE,
+  NFT_MSG_GETSETELEM_RESET,
   NFT_MSG_MAX,
 };
 enum nft_list_attributes {
@@ -107,8 +103,9 @@
 enum nft_table_flags {
   NFT_TABLE_F_DORMANT = 0x1,
   NFT_TABLE_F_OWNER = 0x2,
+  NFT_TABLE_F_PERSIST = 0x4,
 };
-#define NFT_TABLE_F_MASK (NFT_TABLE_F_DORMANT | NFT_TABLE_F_OWNER)
+#define NFT_TABLE_F_MASK (NFT_TABLE_F_DORMANT | NFT_TABLE_F_OWNER | NFT_TABLE_F_PERSIST)
 enum nft_table_attributes {
   NFTA_TABLE_UNSPEC,
   NFTA_TABLE_NAME,
@@ -161,6 +158,7 @@
 };
 #define NFTA_RULE_MAX (__NFTA_RULE_MAX - 1)
 enum nft_rule_compat_flags {
+  NFT_RULE_COMPAT_F_UNUSED = (1 << 0),
   NFT_RULE_COMPAT_F_INV = (1 << 1),
   NFT_RULE_COMPAT_F_MASK = NFT_RULE_COMPAT_F_INV,
 };
@@ -441,6 +439,7 @@
   NFT_EXTHDR_OP_TCPOPT,
   NFT_EXTHDR_OP_IPV4,
   NFT_EXTHDR_OP_SCTP,
+  NFT_EXTHDR_OP_DCCP,
   __NFT_EXTHDR_OP_MAX
 };
 #define NFT_EXTHDR_OP_MAX (__NFT_EXTHDR_OP_MAX - 1)
@@ -493,6 +492,7 @@
   NFT_META_TIME_HOUR,
   NFT_META_SDIF,
   NFT_META_SDIFNAME,
+  NFT_META_BRI_BROUTE,
   __NFT_META_IIFTYPE,
 };
 enum nft_rt_keys {
@@ -695,7 +695,7 @@
   __NFTA_SECMARK_MAX,
 };
 #define NFTA_SECMARK_MAX (__NFTA_SECMARK_MAX - 1)
-#define NFT_SECMARK_CTX_MAXLEN 256
+#define NFT_SECMARK_CTX_MAXLEN 4096
 enum nft_reject_types {
   NFT_REJECT_ICMP_UNREACH,
   NFT_REJECT_TCP_RST,
diff --git a/libc/kernel/uapi/linux/netfilter/nf_tables_compat.h b/libc/kernel/uapi/linux/netfilter/nf_tables_compat.h
index 32c129d..0359196 100644
--- a/libc/kernel/uapi/linux/netfilter/nf_tables_compat.h
+++ b/libc/kernel/uapi/linux/netfilter/nf_tables_compat.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _NFT_COMPAT_NFNETLINK_H_
 #define _NFT_COMPAT_NFNETLINK_H_
 enum nft_target_attributes {
diff --git a/libc/kernel/uapi/linux/netfilter/nfnetlink.h b/libc/kernel/uapi/linux/netfilter/nfnetlink.h
index 705de74..38696db 100644
--- a/libc/kernel/uapi/linux/netfilter/nfnetlink.h
+++ b/libc/kernel/uapi/linux/netfilter/nfnetlink.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_NFNETLINK_H
 #define _UAPI_NFNETLINK_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/netfilter/nfnetlink_acct.h b/libc/kernel/uapi/linux/netfilter/nfnetlink_acct.h
index 497337b..4089e6f 100644
--- a/libc/kernel/uapi/linux/netfilter/nfnetlink_acct.h
+++ b/libc/kernel/uapi/linux/netfilter/nfnetlink_acct.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_NFNL_ACCT_H_
 #define _UAPI_NFNL_ACCT_H_
 #ifndef NFACCT_NAME_MAX
diff --git a/libc/kernel/uapi/linux/netfilter/nfnetlink_compat.h b/libc/kernel/uapi/linux/netfilter/nfnetlink_compat.h
index 07110bf..93cb511 100644
--- a/libc/kernel/uapi/linux/netfilter/nfnetlink_compat.h
+++ b/libc/kernel/uapi/linux/netfilter/nfnetlink_compat.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _NFNETLINK_COMPAT_H
 #define _NFNETLINK_COMPAT_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/netfilter/nfnetlink_conntrack.h b/libc/kernel/uapi/linux/netfilter/nfnetlink_conntrack.h
index 200f1a0..b0a1d41 100644
--- a/libc/kernel/uapi/linux/netfilter/nfnetlink_conntrack.h
+++ b/libc/kernel/uapi/linux/netfilter/nfnetlink_conntrack.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _IPCONNTRACK_NETLINK_H
 #define _IPCONNTRACK_NETLINK_H
 #include <linux/netfilter/nfnetlink.h>
diff --git a/libc/kernel/uapi/linux/netfilter/nfnetlink_cthelper.h b/libc/kernel/uapi/linux/netfilter/nfnetlink_cthelper.h
index e8c2825..3145793 100644
--- a/libc/kernel/uapi/linux/netfilter/nfnetlink_cthelper.h
+++ b/libc/kernel/uapi/linux/netfilter/nfnetlink_cthelper.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _NFNL_CTHELPER_H_
 #define _NFNL_CTHELPER_H_
 #define NFCT_HELPER_STATUS_DISABLED 0
diff --git a/libc/kernel/uapi/linux/netfilter/nfnetlink_cttimeout.h b/libc/kernel/uapi/linux/netfilter/nfnetlink_cttimeout.h
index da9fe71..b8bfd31 100644
--- a/libc/kernel/uapi/linux/netfilter/nfnetlink_cttimeout.h
+++ b/libc/kernel/uapi/linux/netfilter/nfnetlink_cttimeout.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _CTTIMEOUT_NETLINK_H
 #define _CTTIMEOUT_NETLINK_H
 #include <linux/netfilter/nfnetlink.h>
diff --git a/libc/kernel/uapi/linux/netfilter/nfnetlink_hook.h b/libc/kernel/uapi/linux/netfilter/nfnetlink_hook.h
index ce1692c..d6ffb3d 100644
--- a/libc/kernel/uapi/linux/netfilter/nfnetlink_hook.h
+++ b/libc/kernel/uapi/linux/netfilter/nfnetlink_hook.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _NFNL_HOOK_H_
 #define _NFNL_HOOK_H_
 enum nfnl_hook_msg_types {
@@ -50,5 +38,12 @@
 #define NFNLA_CHAIN_MAX (__NFNLA_CHAIN_MAX - 1)
 enum nfnl_hook_chaintype {
   NFNL_HOOK_TYPE_NFTABLES = 0x1,
+  NFNL_HOOK_TYPE_BPF,
 };
+enum nfnl_hook_bpf_attributes {
+  NFNLA_HOOK_BPF_UNSPEC,
+  NFNLA_HOOK_BPF_ID,
+  __NFNLA_HOOK_BPF_MAX,
+};
+#define NFNLA_HOOK_BPF_MAX (__NFNLA_HOOK_BPF_MAX - 1)
 #endif
diff --git a/libc/kernel/uapi/linux/netfilter/nfnetlink_log.h b/libc/kernel/uapi/linux/netfilter/nfnetlink_log.h
index f6a2708..08babdc 100644
--- a/libc/kernel/uapi/linux/netfilter/nfnetlink_log.h
+++ b/libc/kernel/uapi/linux/netfilter/nfnetlink_log.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _NFNETLINK_LOG_H
 #define _NFNETLINK_LOG_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/netfilter/nfnetlink_osf.h b/libc/kernel/uapi/linux/netfilter/nfnetlink_osf.h
index 3f930da..ad6867e 100644
--- a/libc/kernel/uapi/linux/netfilter/nfnetlink_osf.h
+++ b/libc/kernel/uapi/linux/netfilter/nfnetlink_osf.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _NF_OSF_H
 #define _NF_OSF_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/netfilter/nfnetlink_queue.h b/libc/kernel/uapi/linux/netfilter/nfnetlink_queue.h
index d100dec..314788d 100644
--- a/libc/kernel/uapi/linux/netfilter/nfnetlink_queue.h
+++ b/libc/kernel/uapi/linux/netfilter/nfnetlink_queue.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _NFNETLINK_QUEUE_H
 #define _NFNETLINK_QUEUE_H
 #include <linux/types.h>
@@ -71,6 +59,7 @@
   NFQA_VLAN,
   NFQA_L2HDR,
   NFQA_PRIORITY,
+  NFQA_CGROUP_CLASSID,
   __NFQA_MAX
 };
 #define NFQA_MAX (__NFQA_MAX - 1)
diff --git a/libc/kernel/uapi/linux/netfilter/x_tables.h b/libc/kernel/uapi/linux/netfilter/x_tables.h
index 0993265..b22440a 100644
--- a/libc/kernel/uapi/linux/netfilter/x_tables.h
+++ b/libc/kernel/uapi/linux/netfilter/x_tables.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_X_TABLES_H
 #define _UAPI_X_TABLES_H
 #include <linux/const.h>
diff --git a/libc/kernel/uapi/linux/netfilter/xt_AUDIT.h b/libc/kernel/uapi/linux/netfilter/xt_AUDIT.h
index a238375..5b64a32 100644
--- a/libc/kernel/uapi/linux/netfilter/xt_AUDIT.h
+++ b/libc/kernel/uapi/linux/netfilter/xt_AUDIT.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _XT_AUDIT_TARGET_H
 #define _XT_AUDIT_TARGET_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/netfilter/xt_CHECKSUM.h b/libc/kernel/uapi/linux/netfilter/xt_CHECKSUM.h
index ecbce0e..06f9628 100644
--- a/libc/kernel/uapi/linux/netfilter/xt_CHECKSUM.h
+++ b/libc/kernel/uapi/linux/netfilter/xt_CHECKSUM.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _XT_CHECKSUM_TARGET_H
 #define _XT_CHECKSUM_TARGET_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/netfilter/xt_CLASSIFY.h b/libc/kernel/uapi/linux/netfilter/xt_CLASSIFY.h
index df0fcd2..e53bd4b 100644
--- a/libc/kernel/uapi/linux/netfilter/xt_CLASSIFY.h
+++ b/libc/kernel/uapi/linux/netfilter/xt_CLASSIFY.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _XT_CLASSIFY_H
 #define _XT_CLASSIFY_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/netfilter/xt_CONNMARK.h b/libc/kernel/uapi/linux/netfilter/xt_CONNMARK.h
index 449511e..9816e4b 100644
--- a/libc/kernel/uapi/linux/netfilter/xt_CONNMARK.h
+++ b/libc/kernel/uapi/linux/netfilter/xt_CONNMARK.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _XT_CONNMARK_H_target
 #define _XT_CONNMARK_H_target
 #include <linux/netfilter/xt_connmark.h>
diff --git a/libc/kernel/uapi/linux/netfilter/xt_CONNSECMARK.h b/libc/kernel/uapi/linux/netfilter/xt_CONNSECMARK.h
index d58385a..9384bf9 100644
--- a/libc/kernel/uapi/linux/netfilter/xt_CONNSECMARK.h
+++ b/libc/kernel/uapi/linux/netfilter/xt_CONNSECMARK.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _XT_CONNSECMARK_H_target
 #define _XT_CONNSECMARK_H_target
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/netfilter/xt_CT.h b/libc/kernel/uapi/linux/netfilter/xt_CT.h
index 9c4b255..9425156 100644
--- a/libc/kernel/uapi/linux/netfilter/xt_CT.h
+++ b/libc/kernel/uapi/linux/netfilter/xt_CT.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _XT_CT_H
 #define _XT_CT_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/netfilter/xt_DSCP.h b/libc/kernel/uapi/linux/netfilter/xt_DSCP.h
index adc3785..ab786a8 100644
--- a/libc/kernel/uapi/linux/netfilter/xt_DSCP.h
+++ b/libc/kernel/uapi/linux/netfilter/xt_DSCP.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _XT_DSCP_TARGET_H
 #define _XT_DSCP_TARGET_H
 #include <linux/netfilter/xt_dscp.h>
diff --git a/libc/kernel/uapi/linux/netfilter/xt_HMARK.h b/libc/kernel/uapi/linux/netfilter/xt_HMARK.h
index b72c23c..7c411d6 100644
--- a/libc/kernel/uapi/linux/netfilter/xt_HMARK.h
+++ b/libc/kernel/uapi/linux/netfilter/xt_HMARK.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef XT_HMARK_H_
 #define XT_HMARK_H_
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/netfilter/xt_IDLETIMER.h b/libc/kernel/uapi/linux/netfilter/xt_IDLETIMER.h
index f4defb6..7fd1ec1 100644
--- a/libc/kernel/uapi/linux/netfilter/xt_IDLETIMER.h
+++ b/libc/kernel/uapi/linux/netfilter/xt_IDLETIMER.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _XT_IDLETIMER_H
 #define _XT_IDLETIMER_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/netfilter/xt_LED.h b/libc/kernel/uapi/linux/netfilter/xt_LED.h
index cbd1522..c43debe 100644
--- a/libc/kernel/uapi/linux/netfilter/xt_LED.h
+++ b/libc/kernel/uapi/linux/netfilter/xt_LED.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _XT_LED_H
 #define _XT_LED_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/netfilter/xt_LOG.h b/libc/kernel/uapi/linux/netfilter/xt_LOG.h
index c80c936..b19a190 100644
--- a/libc/kernel/uapi/linux/netfilter/xt_LOG.h
+++ b/libc/kernel/uapi/linux/netfilter/xt_LOG.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _XT_LOG_H
 #define _XT_LOG_H
 #define XT_LOG_TCPSEQ 0x01
diff --git a/libc/kernel/uapi/linux/netfilter/xt_MARK.h b/libc/kernel/uapi/linux/netfilter/xt_MARK.h
index e091cc6..c309c28 100644
--- a/libc/kernel/uapi/linux/netfilter/xt_MARK.h
+++ b/libc/kernel/uapi/linux/netfilter/xt_MARK.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _XT_MARK_H_target
 #define _XT_MARK_H_target
 #include <linux/netfilter/xt_mark.h>
diff --git a/libc/kernel/uapi/linux/netfilter/xt_NFLOG.h b/libc/kernel/uapi/linux/netfilter/xt_NFLOG.h
index 135109c..c05b8bf 100644
--- a/libc/kernel/uapi/linux/netfilter/xt_NFLOG.h
+++ b/libc/kernel/uapi/linux/netfilter/xt_NFLOG.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _XT_NFLOG_TARGET
 #define _XT_NFLOG_TARGET
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/netfilter/xt_NFQUEUE.h b/libc/kernel/uapi/linux/netfilter/xt_NFQUEUE.h
index 977ba5f..51ecd9c 100644
--- a/libc/kernel/uapi/linux/netfilter/xt_NFQUEUE.h
+++ b/libc/kernel/uapi/linux/netfilter/xt_NFQUEUE.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _XT_NFQ_TARGET_H
 #define _XT_NFQ_TARGET_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/netfilter/xt_RATEEST.h b/libc/kernel/uapi/linux/netfilter/xt_RATEEST.h
index 0517d79..2f4ade3 100644
--- a/libc/kernel/uapi/linux/netfilter/xt_RATEEST.h
+++ b/libc/kernel/uapi/linux/netfilter/xt_RATEEST.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _XT_RATEEST_TARGET_H
 #define _XT_RATEEST_TARGET_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/netfilter/xt_SECMARK.h b/libc/kernel/uapi/linux/netfilter/xt_SECMARK.h
index 6dd8dbc..a26c486 100644
--- a/libc/kernel/uapi/linux/netfilter/xt_SECMARK.h
+++ b/libc/kernel/uapi/linux/netfilter/xt_SECMARK.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _XT_SECMARK_H_target
 #define _XT_SECMARK_H_target
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/netfilter/xt_SYNPROXY.h b/libc/kernel/uapi/linux/netfilter/xt_SYNPROXY.h
index 4d7f436..1178dcb 100644
--- a/libc/kernel/uapi/linux/netfilter/xt_SYNPROXY.h
+++ b/libc/kernel/uapi/linux/netfilter/xt_SYNPROXY.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _XT_SYNPROXY_H
 #define _XT_SYNPROXY_H
 #include <linux/netfilter/nf_synproxy.h>
diff --git a/libc/kernel/uapi/linux/netfilter/xt_TCPMSS.h b/libc/kernel/uapi/linux/netfilter/xt_TCPMSS.h
index ec6adc6..3c3093a 100644
--- a/libc/kernel/uapi/linux/netfilter/xt_TCPMSS.h
+++ b/libc/kernel/uapi/linux/netfilter/xt_TCPMSS.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _XT_TCPMSS_H
 #define _XT_TCPMSS_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/netfilter/xt_TCPOPTSTRIP.h b/libc/kernel/uapi/linux/netfilter/xt_TCPOPTSTRIP.h
index 7b7a25b..0c1d715 100644
--- a/libc/kernel/uapi/linux/netfilter/xt_TCPOPTSTRIP.h
+++ b/libc/kernel/uapi/linux/netfilter/xt_TCPOPTSTRIP.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _XT_TCPOPTSTRIP_H
 #define _XT_TCPOPTSTRIP_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/netfilter/xt_TEE.h b/libc/kernel/uapi/linux/netfilter/xt_TEE.h
index 4dca1d7..94a9572 100644
--- a/libc/kernel/uapi/linux/netfilter/xt_TEE.h
+++ b/libc/kernel/uapi/linux/netfilter/xt_TEE.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _XT_TEE_TARGET_H
 #define _XT_TEE_TARGET_H
 #include <linux/netfilter.h>
diff --git a/libc/kernel/uapi/linux/netfilter/xt_TPROXY.h b/libc/kernel/uapi/linux/netfilter/xt_TPROXY.h
index 3cfbc90..5a8c92c 100644
--- a/libc/kernel/uapi/linux/netfilter/xt_TPROXY.h
+++ b/libc/kernel/uapi/linux/netfilter/xt_TPROXY.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _XT_TPROXY_H
 #define _XT_TPROXY_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/netfilter/xt_addrtype.h b/libc/kernel/uapi/linux/netfilter/xt_addrtype.h
index a4acc5d..f5eefd6 100644
--- a/libc/kernel/uapi/linux/netfilter/xt_addrtype.h
+++ b/libc/kernel/uapi/linux/netfilter/xt_addrtype.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _XT_ADDRTYPE_H
 #define _XT_ADDRTYPE_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/netfilter/xt_bpf.h b/libc/kernel/uapi/linux/netfilter/xt_bpf.h
index 043af45..b91c2af 100644
--- a/libc/kernel/uapi/linux/netfilter/xt_bpf.h
+++ b/libc/kernel/uapi/linux/netfilter/xt_bpf.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _XT_BPF_H
 #define _XT_BPF_H
 #include <linux/filter.h>
diff --git a/libc/kernel/uapi/linux/netfilter/xt_cgroup.h b/libc/kernel/uapi/linux/netfilter/xt_cgroup.h
index 6d939ea..1386d1e 100644
--- a/libc/kernel/uapi/linux/netfilter/xt_cgroup.h
+++ b/libc/kernel/uapi/linux/netfilter/xt_cgroup.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_XT_CGROUP_H
 #define _UAPI_XT_CGROUP_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/netfilter/xt_cluster.h b/libc/kernel/uapi/linux/netfilter/xt_cluster.h
index e532f7d..3a2a3ed 100644
--- a/libc/kernel/uapi/linux/netfilter/xt_cluster.h
+++ b/libc/kernel/uapi/linux/netfilter/xt_cluster.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _XT_CLUSTER_MATCH_H
 #define _XT_CLUSTER_MATCH_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/netfilter/xt_comment.h b/libc/kernel/uapi/linux/netfilter/xt_comment.h
index 2b44718..39c268f 100644
--- a/libc/kernel/uapi/linux/netfilter/xt_comment.h
+++ b/libc/kernel/uapi/linux/netfilter/xt_comment.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _XT_COMMENT_H
 #define _XT_COMMENT_H
 #define XT_MAX_COMMENT_LEN 256
diff --git a/libc/kernel/uapi/linux/netfilter/xt_connbytes.h b/libc/kernel/uapi/linux/netfilter/xt_connbytes.h
index a3efa02..df51bb6 100644
--- a/libc/kernel/uapi/linux/netfilter/xt_connbytes.h
+++ b/libc/kernel/uapi/linux/netfilter/xt_connbytes.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _XT_CONNBYTES_H
 #define _XT_CONNBYTES_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/netfilter/xt_connlabel.h b/libc/kernel/uapi/linux/netfilter/xt_connlabel.h
index 7548fa1..9c27f98 100644
--- a/libc/kernel/uapi/linux/netfilter/xt_connlabel.h
+++ b/libc/kernel/uapi/linux/netfilter/xt_connlabel.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_XT_CONNLABEL_H
 #define _UAPI_XT_CONNLABEL_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/netfilter/xt_connlimit.h b/libc/kernel/uapi/linux/netfilter/xt_connlimit.h
index 9ff2de9..43603a7 100644
--- a/libc/kernel/uapi/linux/netfilter/xt_connlimit.h
+++ b/libc/kernel/uapi/linux/netfilter/xt_connlimit.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _XT_CONNLIMIT_H
 #define _XT_CONNLIMIT_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/netfilter/xt_connmark.h b/libc/kernel/uapi/linux/netfilter/xt_connmark.h
index f14474f..95bedf5 100644
--- a/libc/kernel/uapi/linux/netfilter/xt_connmark.h
+++ b/libc/kernel/uapi/linux/netfilter/xt_connmark.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _XT_CONNMARK_H
 #define _XT_CONNMARK_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/netfilter/xt_conntrack.h b/libc/kernel/uapi/linux/netfilter/xt_conntrack.h
index 5472cc5..dafa665 100644
--- a/libc/kernel/uapi/linux/netfilter/xt_conntrack.h
+++ b/libc/kernel/uapi/linux/netfilter/xt_conntrack.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _XT_CONNTRACK_H
 #define _XT_CONNTRACK_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/netfilter/xt_cpu.h b/libc/kernel/uapi/linux/netfilter/xt_cpu.h
index 76e8134..800134c 100644
--- a/libc/kernel/uapi/linux/netfilter/xt_cpu.h
+++ b/libc/kernel/uapi/linux/netfilter/xt_cpu.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _XT_CPU_H
 #define _XT_CPU_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/netfilter/xt_dccp.h b/libc/kernel/uapi/linux/netfilter/xt_dccp.h
index b4e5748..dff62d8 100644
--- a/libc/kernel/uapi/linux/netfilter/xt_dccp.h
+++ b/libc/kernel/uapi/linux/netfilter/xt_dccp.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _XT_DCCP_H_
 #define _XT_DCCP_H_
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/netfilter/xt_devgroup.h b/libc/kernel/uapi/linux/netfilter/xt_devgroup.h
index 639484a..7566c72 100644
--- a/libc/kernel/uapi/linux/netfilter/xt_devgroup.h
+++ b/libc/kernel/uapi/linux/netfilter/xt_devgroup.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _XT_DEVGROUP_H
 #define _XT_DEVGROUP_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/netfilter/xt_dscp.h b/libc/kernel/uapi/linux/netfilter/xt_dscp.h
index f34afc0..8050e12 100644
--- a/libc/kernel/uapi/linux/netfilter/xt_dscp.h
+++ b/libc/kernel/uapi/linux/netfilter/xt_dscp.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _XT_DSCP_H
 #define _XT_DSCP_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/netfilter/xt_ecn.h b/libc/kernel/uapi/linux/netfilter/xt_ecn.h
index aee7d84..9a5cc0e 100644
--- a/libc/kernel/uapi/linux/netfilter/xt_ecn.h
+++ b/libc/kernel/uapi/linux/netfilter/xt_ecn.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _XT_ECN_H
 #define _XT_ECN_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/netfilter/xt_esp.h b/libc/kernel/uapi/linux/netfilter/xt_esp.h
index 22e7632..b565858 100644
--- a/libc/kernel/uapi/linux/netfilter/xt_esp.h
+++ b/libc/kernel/uapi/linux/netfilter/xt_esp.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _XT_ESP_H
 #define _XT_ESP_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/netfilter/xt_hashlimit.h b/libc/kernel/uapi/linux/netfilter/xt_hashlimit.h
index 572c85d..4f2ab6a 100644
--- a/libc/kernel/uapi/linux/netfilter/xt_hashlimit.h
+++ b/libc/kernel/uapi/linux/netfilter/xt_hashlimit.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_XT_HASHLIMIT_H
 #define _UAPI_XT_HASHLIMIT_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/netfilter/xt_helper.h b/libc/kernel/uapi/linux/netfilter/xt_helper.h
index d792274..8051382 100644
--- a/libc/kernel/uapi/linux/netfilter/xt_helper.h
+++ b/libc/kernel/uapi/linux/netfilter/xt_helper.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _XT_HELPER_H
 #define _XT_HELPER_H
 struct xt_helper_info {
diff --git a/libc/kernel/uapi/linux/netfilter/xt_ipcomp.h b/libc/kernel/uapi/linux/netfilter/xt_ipcomp.h
index 4e99d70..a654f1c 100644
--- a/libc/kernel/uapi/linux/netfilter/xt_ipcomp.h
+++ b/libc/kernel/uapi/linux/netfilter/xt_ipcomp.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _XT_IPCOMP_H
 #define _XT_IPCOMP_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/netfilter/xt_iprange.h b/libc/kernel/uapi/linux/netfilter/xt_iprange.h
index 57ab108..8e73458 100644
--- a/libc/kernel/uapi/linux/netfilter/xt_iprange.h
+++ b/libc/kernel/uapi/linux/netfilter/xt_iprange.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _LINUX_NETFILTER_XT_IPRANGE_H
 #define _LINUX_NETFILTER_XT_IPRANGE_H 1
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/netfilter/xt_ipvs.h b/libc/kernel/uapi/linux/netfilter/xt_ipvs.h
index 6f649b1..414f427 100644
--- a/libc/kernel/uapi/linux/netfilter/xt_ipvs.h
+++ b/libc/kernel/uapi/linux/netfilter/xt_ipvs.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _XT_IPVS_H
 #define _XT_IPVS_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/netfilter/xt_l2tp.h b/libc/kernel/uapi/linux/netfilter/xt_l2tp.h
index cad9921..93d0721 100644
--- a/libc/kernel/uapi/linux/netfilter/xt_l2tp.h
+++ b/libc/kernel/uapi/linux/netfilter/xt_l2tp.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _LINUX_NETFILTER_XT_L2TP_H
 #define _LINUX_NETFILTER_XT_L2TP_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/netfilter/xt_length.h b/libc/kernel/uapi/linux/netfilter/xt_length.h
index 4a0792a..4394d06 100644
--- a/libc/kernel/uapi/linux/netfilter/xt_length.h
+++ b/libc/kernel/uapi/linux/netfilter/xt_length.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _XT_LENGTH_H
 #define _XT_LENGTH_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/netfilter/xt_limit.h b/libc/kernel/uapi/linux/netfilter/xt_limit.h
index 785679f..05f3329 100644
--- a/libc/kernel/uapi/linux/netfilter/xt_limit.h
+++ b/libc/kernel/uapi/linux/netfilter/xt_limit.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _XT_RATE_H
 #define _XT_RATE_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/netfilter/xt_mac.h b/libc/kernel/uapi/linux/netfilter/xt_mac.h
index bc7b7c8..bbc9980 100644
--- a/libc/kernel/uapi/linux/netfilter/xt_mac.h
+++ b/libc/kernel/uapi/linux/netfilter/xt_mac.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _XT_MAC_H
 #define _XT_MAC_H
 #include <linux/if_ether.h>
diff --git a/libc/kernel/uapi/linux/netfilter/xt_mark.h b/libc/kernel/uapi/linux/netfilter/xt_mark.h
index 0ec01e9..f828919 100644
--- a/libc/kernel/uapi/linux/netfilter/xt_mark.h
+++ b/libc/kernel/uapi/linux/netfilter/xt_mark.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _XT_MARK_H
 #define _XT_MARK_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/netfilter/xt_multiport.h b/libc/kernel/uapi/linux/netfilter/xt_multiport.h
index fff7045..b70b0f5 100644
--- a/libc/kernel/uapi/linux/netfilter/xt_multiport.h
+++ b/libc/kernel/uapi/linux/netfilter/xt_multiport.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _XT_MULTIPORT_H
 #define _XT_MULTIPORT_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/netfilter/xt_nfacct.h b/libc/kernel/uapi/linux/netfilter/xt_nfacct.h
index a2b042e..8686c43 100644
--- a/libc/kernel/uapi/linux/netfilter/xt_nfacct.h
+++ b/libc/kernel/uapi/linux/netfilter/xt_nfacct.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _XT_NFACCT_MATCH_H
 #define _XT_NFACCT_MATCH_H
 #include <linux/netfilter/nfnetlink_acct.h>
diff --git a/libc/kernel/uapi/linux/netfilter/xt_osf.h b/libc/kernel/uapi/linux/netfilter/xt_osf.h
index 892ad40..8149ed3 100644
--- a/libc/kernel/uapi/linux/netfilter/xt_osf.h
+++ b/libc/kernel/uapi/linux/netfilter/xt_osf.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _XT_OSF_H
 #define _XT_OSF_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/netfilter/xt_owner.h b/libc/kernel/uapi/linux/netfilter/xt_owner.h
index e077aad..259f288 100644
--- a/libc/kernel/uapi/linux/netfilter/xt_owner.h
+++ b/libc/kernel/uapi/linux/netfilter/xt_owner.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _XT_OWNER_MATCH_H
 #define _XT_OWNER_MATCH_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/netfilter/xt_physdev.h b/libc/kernel/uapi/linux/netfilter/xt_physdev.h
index be3734c..2c0746c 100644
--- a/libc/kernel/uapi/linux/netfilter/xt_physdev.h
+++ b/libc/kernel/uapi/linux/netfilter/xt_physdev.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_XT_PHYSDEV_H
 #define _UAPI_XT_PHYSDEV_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/netfilter/xt_pkttype.h b/libc/kernel/uapi/linux/netfilter/xt_pkttype.h
index f9b2f3f..dee4b04 100644
--- a/libc/kernel/uapi/linux/netfilter/xt_pkttype.h
+++ b/libc/kernel/uapi/linux/netfilter/xt_pkttype.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _XT_PKTTYPE_H
 #define _XT_PKTTYPE_H
 struct xt_pkttype_info {
diff --git a/libc/kernel/uapi/linux/netfilter/xt_policy.h b/libc/kernel/uapi/linux/netfilter/xt_policy.h
index 495aeb0..5d36ee6 100644
--- a/libc/kernel/uapi/linux/netfilter/xt_policy.h
+++ b/libc/kernel/uapi/linux/netfilter/xt_policy.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _XT_POLICY_H
 #define _XT_POLICY_H
 #include <linux/netfilter.h>
diff --git a/libc/kernel/uapi/linux/netfilter/xt_quota.h b/libc/kernel/uapi/linux/netfilter/xt_quota.h
index 96743f4..51322ec 100644
--- a/libc/kernel/uapi/linux/netfilter/xt_quota.h
+++ b/libc/kernel/uapi/linux/netfilter/xt_quota.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _XT_QUOTA_H
 #define _XT_QUOTA_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/netfilter/xt_rateest.h b/libc/kernel/uapi/linux/netfilter/xt_rateest.h
index 5d509b3..d020f23 100644
--- a/libc/kernel/uapi/linux/netfilter/xt_rateest.h
+++ b/libc/kernel/uapi/linux/netfilter/xt_rateest.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _XT_RATEEST_MATCH_H
 #define _XT_RATEEST_MATCH_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/netfilter/xt_realm.h b/libc/kernel/uapi/linux/netfilter/xt_realm.h
index 6c78694..cb408eb 100644
--- a/libc/kernel/uapi/linux/netfilter/xt_realm.h
+++ b/libc/kernel/uapi/linux/netfilter/xt_realm.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _XT_REALM_H
 #define _XT_REALM_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/netfilter/xt_recent.h b/libc/kernel/uapi/linux/netfilter/xt_recent.h
index d7b3609..f3b98ef 100644
--- a/libc/kernel/uapi/linux/netfilter/xt_recent.h
+++ b/libc/kernel/uapi/linux/netfilter/xt_recent.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _LINUX_NETFILTER_XT_RECENT_H
 #define _LINUX_NETFILTER_XT_RECENT_H 1
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/netfilter/xt_rpfilter.h b/libc/kernel/uapi/linux/netfilter/xt_rpfilter.h
index 958d92a..1751fa9 100644
--- a/libc/kernel/uapi/linux/netfilter/xt_rpfilter.h
+++ b/libc/kernel/uapi/linux/netfilter/xt_rpfilter.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _XT_RPATH_H
 #define _XT_RPATH_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/netfilter/xt_sctp.h b/libc/kernel/uapi/linux/netfilter/xt_sctp.h
index 98dd0d1..91ef326 100644
--- a/libc/kernel/uapi/linux/netfilter/xt_sctp.h
+++ b/libc/kernel/uapi/linux/netfilter/xt_sctp.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _XT_SCTP_H_
 #define _XT_SCTP_H_
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/netfilter/xt_set.h b/libc/kernel/uapi/linux/netfilter/xt_set.h
index 5374159..c55fff7 100644
--- a/libc/kernel/uapi/linux/netfilter/xt_set.h
+++ b/libc/kernel/uapi/linux/netfilter/xt_set.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _XT_SET_H
 #define _XT_SET_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/netfilter/xt_socket.h b/libc/kernel/uapi/linux/netfilter/xt_socket.h
index 055b579..eff17cb 100644
--- a/libc/kernel/uapi/linux/netfilter/xt_socket.h
+++ b/libc/kernel/uapi/linux/netfilter/xt_socket.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _XT_SOCKET_H
 #define _XT_SOCKET_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/netfilter/xt_state.h b/libc/kernel/uapi/linux/netfilter/xt_state.h
index d692e60..5f40f8b 100644
--- a/libc/kernel/uapi/linux/netfilter/xt_state.h
+++ b/libc/kernel/uapi/linux/netfilter/xt_state.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _XT_STATE_H
 #define _XT_STATE_H
 #define XT_STATE_BIT(ctinfo) (1 << ((ctinfo) % IP_CT_IS_REPLY + 1))
diff --git a/libc/kernel/uapi/linux/netfilter/xt_statistic.h b/libc/kernel/uapi/linux/netfilter/xt_statistic.h
index 3aae832..19f9e3c 100644
--- a/libc/kernel/uapi/linux/netfilter/xt_statistic.h
+++ b/libc/kernel/uapi/linux/netfilter/xt_statistic.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _XT_STATISTIC_H
 #define _XT_STATISTIC_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/netfilter/xt_string.h b/libc/kernel/uapi/linux/netfilter/xt_string.h
index 9296dfb..ee7ef74 100644
--- a/libc/kernel/uapi/linux/netfilter/xt_string.h
+++ b/libc/kernel/uapi/linux/netfilter/xt_string.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _XT_STRING_H
 #define _XT_STRING_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/netfilter/xt_tcpmss.h b/libc/kernel/uapi/linux/netfilter/xt_tcpmss.h
index 87a9fdd..b256ca2 100644
--- a/libc/kernel/uapi/linux/netfilter/xt_tcpmss.h
+++ b/libc/kernel/uapi/linux/netfilter/xt_tcpmss.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _XT_TCPMSS_MATCH_H
 #define _XT_TCPMSS_MATCH_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/netfilter/xt_tcpudp.h b/libc/kernel/uapi/linux/netfilter/xt_tcpudp.h
index 4bca77f..8408c48 100644
--- a/libc/kernel/uapi/linux/netfilter/xt_tcpudp.h
+++ b/libc/kernel/uapi/linux/netfilter/xt_tcpudp.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _XT_TCPUDP_H
 #define _XT_TCPUDP_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/netfilter/xt_time.h b/libc/kernel/uapi/linux/netfilter/xt_time.h
index ded53b8..81161a8 100644
--- a/libc/kernel/uapi/linux/netfilter/xt_time.h
+++ b/libc/kernel/uapi/linux/netfilter/xt_time.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _XT_TIME_H
 #define _XT_TIME_H 1
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/netfilter/xt_u32.h b/libc/kernel/uapi/linux/netfilter/xt_u32.h
index d7de9c9..1af1748 100644
--- a/libc/kernel/uapi/linux/netfilter/xt_u32.h
+++ b/libc/kernel/uapi/linux/netfilter/xt_u32.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _XT_U32_H
 #define _XT_U32_H 1
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/netfilter_arp.h b/libc/kernel/uapi/linux/netfilter_arp.h
index a5e427c..e0f2579 100644
--- a/libc/kernel/uapi/linux/netfilter_arp.h
+++ b/libc/kernel/uapi/linux/netfilter_arp.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __LINUX_ARP_NETFILTER_H
 #define __LINUX_ARP_NETFILTER_H
 #include <linux/netfilter.h>
diff --git a/libc/kernel/uapi/linux/netfilter_arp/arp_tables.h b/libc/kernel/uapi/linux/netfilter_arp/arp_tables.h
index b1fb537..7b0fddd 100644
--- a/libc/kernel/uapi/linux/netfilter_arp/arp_tables.h
+++ b/libc/kernel/uapi/linux/netfilter_arp/arp_tables.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_ARPTABLES_H
 #define _UAPI_ARPTABLES_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/netfilter_arp/arpt_mangle.h b/libc/kernel/uapi/linux/netfilter_arp/arpt_mangle.h
index ff07a0a..09e121d 100644
--- a/libc/kernel/uapi/linux/netfilter_arp/arpt_mangle.h
+++ b/libc/kernel/uapi/linux/netfilter_arp/arpt_mangle.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _ARPT_MANGLE_H
 #define _ARPT_MANGLE_H
 #include <linux/netfilter_arp/arp_tables.h>
diff --git a/libc/kernel/uapi/linux/netfilter_bridge.h b/libc/kernel/uapi/linux/netfilter_bridge.h
index e1434f4..7aef50b 100644
--- a/libc/kernel/uapi/linux/netfilter_bridge.h
+++ b/libc/kernel/uapi/linux/netfilter_bridge.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI__LINUX_BRIDGE_NETFILTER_H
 #define _UAPI__LINUX_BRIDGE_NETFILTER_H
 #include <linux/in.h>
diff --git a/libc/kernel/uapi/linux/netfilter_bridge/ebt_802_3.h b/libc/kernel/uapi/linux/netfilter_bridge/ebt_802_3.h
index 5f11ba4..f794560 100644
--- a/libc/kernel/uapi/linux/netfilter_bridge/ebt_802_3.h
+++ b/libc/kernel/uapi/linux/netfilter_bridge/ebt_802_3.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI__LINUX_BRIDGE_EBT_802_3_H
 #define _UAPI__LINUX_BRIDGE_EBT_802_3_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/netfilter_bridge/ebt_among.h b/libc/kernel/uapi/linux/netfilter_bridge/ebt_among.h
index aa39c5b..2df333e 100644
--- a/libc/kernel/uapi/linux/netfilter_bridge/ebt_among.h
+++ b/libc/kernel/uapi/linux/netfilter_bridge/ebt_among.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __LINUX_BRIDGE_EBT_AMONG_H
 #define __LINUX_BRIDGE_EBT_AMONG_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/netfilter_bridge/ebt_arp.h b/libc/kernel/uapi/linux/netfilter_bridge/ebt_arp.h
index 17fb19f..0c84f98 100644
--- a/libc/kernel/uapi/linux/netfilter_bridge/ebt_arp.h
+++ b/libc/kernel/uapi/linux/netfilter_bridge/ebt_arp.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __LINUX_BRIDGE_EBT_ARP_H
 #define __LINUX_BRIDGE_EBT_ARP_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/netfilter_bridge/ebt_arpreply.h b/libc/kernel/uapi/linux/netfilter_bridge/ebt_arpreply.h
index c880f01..b28312e 100644
--- a/libc/kernel/uapi/linux/netfilter_bridge/ebt_arpreply.h
+++ b/libc/kernel/uapi/linux/netfilter_bridge/ebt_arpreply.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __LINUX_BRIDGE_EBT_ARPREPLY_H
 #define __LINUX_BRIDGE_EBT_ARPREPLY_H
 #include <linux/if_ether.h>
diff --git a/libc/kernel/uapi/linux/netfilter_bridge/ebt_ip.h b/libc/kernel/uapi/linux/netfilter_bridge/ebt_ip.h
index 6ee8afb..d1a7888 100644
--- a/libc/kernel/uapi/linux/netfilter_bridge/ebt_ip.h
+++ b/libc/kernel/uapi/linux/netfilter_bridge/ebt_ip.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __LINUX_BRIDGE_EBT_IP_H
 #define __LINUX_BRIDGE_EBT_IP_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/netfilter_bridge/ebt_ip6.h b/libc/kernel/uapi/linux/netfilter_bridge/ebt_ip6.h
index d49e074..3448145 100644
--- a/libc/kernel/uapi/linux/netfilter_bridge/ebt_ip6.h
+++ b/libc/kernel/uapi/linux/netfilter_bridge/ebt_ip6.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __LINUX_BRIDGE_EBT_IP6_H
 #define __LINUX_BRIDGE_EBT_IP6_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/netfilter_bridge/ebt_limit.h b/libc/kernel/uapi/linux/netfilter_bridge/ebt_limit.h
index 80e1a09..c81c9ea 100644
--- a/libc/kernel/uapi/linux/netfilter_bridge/ebt_limit.h
+++ b/libc/kernel/uapi/linux/netfilter_bridge/ebt_limit.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __LINUX_BRIDGE_EBT_LIMIT_H
 #define __LINUX_BRIDGE_EBT_LIMIT_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/netfilter_bridge/ebt_log.h b/libc/kernel/uapi/linux/netfilter_bridge/ebt_log.h
index dbe3fec..7e2e123 100644
--- a/libc/kernel/uapi/linux/netfilter_bridge/ebt_log.h
+++ b/libc/kernel/uapi/linux/netfilter_bridge/ebt_log.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __LINUX_BRIDGE_EBT_LOG_H
 #define __LINUX_BRIDGE_EBT_LOG_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/netfilter_bridge/ebt_mark_m.h b/libc/kernel/uapi/linux/netfilter_bridge/ebt_mark_m.h
index cc35658..86a9c71 100644
--- a/libc/kernel/uapi/linux/netfilter_bridge/ebt_mark_m.h
+++ b/libc/kernel/uapi/linux/netfilter_bridge/ebt_mark_m.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __LINUX_BRIDGE_EBT_MARK_M_H
 #define __LINUX_BRIDGE_EBT_MARK_M_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/netfilter_bridge/ebt_mark_t.h b/libc/kernel/uapi/linux/netfilter_bridge/ebt_mark_t.h
index 5b662f9..c7854c9 100644
--- a/libc/kernel/uapi/linux/netfilter_bridge/ebt_mark_t.h
+++ b/libc/kernel/uapi/linux/netfilter_bridge/ebt_mark_t.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __LINUX_BRIDGE_EBT_MARK_T_H
 #define __LINUX_BRIDGE_EBT_MARK_T_H
 #define MARK_SET_VALUE (0xfffffff0)
diff --git a/libc/kernel/uapi/linux/netfilter_bridge/ebt_nat.h b/libc/kernel/uapi/linux/netfilter_bridge/ebt_nat.h
index c0b58c0..70b7771 100644
--- a/libc/kernel/uapi/linux/netfilter_bridge/ebt_nat.h
+++ b/libc/kernel/uapi/linux/netfilter_bridge/ebt_nat.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __LINUX_BRIDGE_EBT_NAT_H
 #define __LINUX_BRIDGE_EBT_NAT_H
 #include <linux/if_ether.h>
diff --git a/libc/kernel/uapi/linux/netfilter_bridge/ebt_nflog.h b/libc/kernel/uapi/linux/netfilter_bridge/ebt_nflog.h
index de50e04..2774821 100644
--- a/libc/kernel/uapi/linux/netfilter_bridge/ebt_nflog.h
+++ b/libc/kernel/uapi/linux/netfilter_bridge/ebt_nflog.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __LINUX_BRIDGE_EBT_NFLOG_H
 #define __LINUX_BRIDGE_EBT_NFLOG_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/netfilter_bridge/ebt_pkttype.h b/libc/kernel/uapi/linux/netfilter_bridge/ebt_pkttype.h
index dfb7e70..19df1c9 100644
--- a/libc/kernel/uapi/linux/netfilter_bridge/ebt_pkttype.h
+++ b/libc/kernel/uapi/linux/netfilter_bridge/ebt_pkttype.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __LINUX_BRIDGE_EBT_PKTTYPE_H
 #define __LINUX_BRIDGE_EBT_PKTTYPE_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/netfilter_bridge/ebt_redirect.h b/libc/kernel/uapi/linux/netfilter_bridge/ebt_redirect.h
index e329c74..f9950e0 100644
--- a/libc/kernel/uapi/linux/netfilter_bridge/ebt_redirect.h
+++ b/libc/kernel/uapi/linux/netfilter_bridge/ebt_redirect.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __LINUX_BRIDGE_EBT_REDIRECT_H
 #define __LINUX_BRIDGE_EBT_REDIRECT_H
 struct ebt_redirect_info {
diff --git a/libc/kernel/uapi/linux/netfilter_bridge/ebt_stp.h b/libc/kernel/uapi/linux/netfilter_bridge/ebt_stp.h
index 47565e3..a73c18c 100644
--- a/libc/kernel/uapi/linux/netfilter_bridge/ebt_stp.h
+++ b/libc/kernel/uapi/linux/netfilter_bridge/ebt_stp.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __LINUX_BRIDGE_EBT_STP_H
 #define __LINUX_BRIDGE_EBT_STP_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/netfilter_bridge/ebt_vlan.h b/libc/kernel/uapi/linux/netfilter_bridge/ebt_vlan.h
index 9cc2420..5cdddf5 100644
--- a/libc/kernel/uapi/linux/netfilter_bridge/ebt_vlan.h
+++ b/libc/kernel/uapi/linux/netfilter_bridge/ebt_vlan.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __LINUX_BRIDGE_EBT_VLAN_H
 #define __LINUX_BRIDGE_EBT_VLAN_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/netfilter_bridge/ebtables.h b/libc/kernel/uapi/linux/netfilter_bridge/ebtables.h
index d87d65e..b698b8b 100644
--- a/libc/kernel/uapi/linux/netfilter_bridge/ebtables.h
+++ b/libc/kernel/uapi/linux/netfilter_bridge/ebtables.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI__LINUX_BRIDGE_EFF_H
 #define _UAPI__LINUX_BRIDGE_EFF_H
 #include <linux/types.h>
@@ -63,7 +51,7 @@
   unsigned int counter_offset;
   int policy;
   unsigned int nentries;
-  char data[0] __attribute__((aligned(__alignof__(struct ebt_replace))));
+  char data[] __attribute__((aligned(__alignof__(struct ebt_replace))));
 };
 #define EBT_ENTRY_OR_ENTRIES 0x01
 #define EBT_NOPROTO 0x02
@@ -88,7 +76,7 @@
     struct xt_match * match;
   } u;
   unsigned int match_size;
-  unsigned char data[0] __attribute__((aligned(__alignof__(struct ebt_replace))));
+  unsigned char data[] __attribute__((aligned(__alignof__(struct ebt_replace))));
 };
 struct ebt_entry_watcher {
   union {
@@ -99,7 +87,7 @@
     struct xt_target * watcher;
   } u;
   unsigned int watcher_size;
-  unsigned char data[0] __attribute__((aligned(__alignof__(struct ebt_replace))));
+  unsigned char data[] __attribute__((aligned(__alignof__(struct ebt_replace))));
 };
 struct ebt_entry_target {
   union {
@@ -129,10 +117,11 @@
   unsigned char sourcemsk[ETH_ALEN];
   unsigned char destmac[ETH_ALEN];
   unsigned char destmsk[ETH_ALEN];
-  unsigned int watchers_offset;
+  __struct_group(, offsets,, unsigned int watchers_offset;
   unsigned int target_offset;
   unsigned int next_offset;
-  unsigned char elems[0] __attribute__((aligned(__alignof__(struct ebt_replace))));
+ );
+  unsigned char elems[] __attribute__((aligned(__alignof__(struct ebt_replace))));
 };
 #define EBT_BASE_CTL 128
 #define EBT_SO_SET_ENTRIES (EBT_BASE_CTL)
diff --git a/libc/kernel/uapi/linux/netfilter_ipv4.h b/libc/kernel/uapi/linux/netfilter_ipv4.h
index bb2a1d9..2ce710a 100644
--- a/libc/kernel/uapi/linux/netfilter_ipv4.h
+++ b/libc/kernel/uapi/linux/netfilter_ipv4.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI__LINUX_IP_NETFILTER_H
 #define _UAPI__LINUX_IP_NETFILTER_H
 #include <linux/netfilter.h>
diff --git a/libc/kernel/uapi/linux/netfilter_ipv4/ip_tables.h b/libc/kernel/uapi/linux/netfilter_ipv4/ip_tables.h
index 5179be4..0b9b9eb 100644
--- a/libc/kernel/uapi/linux/netfilter_ipv4/ip_tables.h
+++ b/libc/kernel/uapi/linux/netfilter_ipv4/ip_tables.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_IPTABLES_H
 #define _UAPI_IPTABLES_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/netfilter_ipv4/ipt_CLUSTERIP.h b/libc/kernel/uapi/linux/netfilter_ipv4/ipt_CLUSTERIP.h
index b5376b8..17320d0 100644
--- a/libc/kernel/uapi/linux/netfilter_ipv4/ipt_CLUSTERIP.h
+++ b/libc/kernel/uapi/linux/netfilter_ipv4/ipt_CLUSTERIP.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _IPT_CLUSTERIP_H_target
 #define _IPT_CLUSTERIP_H_target
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/netfilter_ipv4/ipt_ECN.h b/libc/kernel/uapi/linux/netfilter_ipv4/ipt_ECN.h
index a67f997..46e14e8 100644
--- a/libc/kernel/uapi/linux/netfilter_ipv4/ipt_ECN.h
+++ b/libc/kernel/uapi/linux/netfilter_ipv4/ipt_ECN.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _IPT_ECN_TARGET_H
 #define _IPT_ECN_TARGET_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/netfilter_ipv4/ipt_LOG.h b/libc/kernel/uapi/linux/netfilter_ipv4/ipt_LOG.h
index c049244..68870b4 100644
--- a/libc/kernel/uapi/linux/netfilter_ipv4/ipt_LOG.h
+++ b/libc/kernel/uapi/linux/netfilter_ipv4/ipt_LOG.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _IPT_LOG_H
 #define _IPT_LOG_H
 #define IPT_LOG_TCPSEQ 0x01
diff --git a/libc/kernel/uapi/linux/netfilter_ipv4/ipt_REJECT.h b/libc/kernel/uapi/linux/netfilter_ipv4/ipt_REJECT.h
index 2650d04..e6bf388 100644
--- a/libc/kernel/uapi/linux/netfilter_ipv4/ipt_REJECT.h
+++ b/libc/kernel/uapi/linux/netfilter_ipv4/ipt_REJECT.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _IPT_REJECT_H
 #define _IPT_REJECT_H
 enum ipt_reject_with {
diff --git a/libc/kernel/uapi/linux/netfilter_ipv4/ipt_TTL.h b/libc/kernel/uapi/linux/netfilter_ipv4/ipt_TTL.h
index d4509ac..a2896d8 100644
--- a/libc/kernel/uapi/linux/netfilter_ipv4/ipt_TTL.h
+++ b/libc/kernel/uapi/linux/netfilter_ipv4/ipt_TTL.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _IPT_TTL_H
 #define _IPT_TTL_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/netfilter_ipv4/ipt_ah.h b/libc/kernel/uapi/linux/netfilter_ipv4/ipt_ah.h
index 652db9c..0d8932e 100644
--- a/libc/kernel/uapi/linux/netfilter_ipv4/ipt_ah.h
+++ b/libc/kernel/uapi/linux/netfilter_ipv4/ipt_ah.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _IPT_AH_H
 #define _IPT_AH_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/netfilter_ipv4/ipt_ecn.h b/libc/kernel/uapi/linux/netfilter_ipv4/ipt_ecn.h
index a892af5..7fb8cb8 100644
--- a/libc/kernel/uapi/linux/netfilter_ipv4/ipt_ecn.h
+++ b/libc/kernel/uapi/linux/netfilter_ipv4/ipt_ecn.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _IPT_ECN_H
 #define _IPT_ECN_H
 #include <linux/netfilter/xt_ecn.h>
diff --git a/libc/kernel/uapi/linux/netfilter_ipv4/ipt_ttl.h b/libc/kernel/uapi/linux/netfilter_ipv4/ipt_ttl.h
index 26c1a4f..14f1a95 100644
--- a/libc/kernel/uapi/linux/netfilter_ipv4/ipt_ttl.h
+++ b/libc/kernel/uapi/linux/netfilter_ipv4/ipt_ttl.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _IPT_TTL_H
 #define _IPT_TTL_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/netfilter_ipv6.h b/libc/kernel/uapi/linux/netfilter_ipv6.h
index f454eb6..5f885a2 100644
--- a/libc/kernel/uapi/linux/netfilter_ipv6.h
+++ b/libc/kernel/uapi/linux/netfilter_ipv6.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI__LINUX_IP6_NETFILTER_H
 #define _UAPI__LINUX_IP6_NETFILTER_H
 #include <linux/netfilter.h>
diff --git a/libc/kernel/uapi/linux/netfilter_ipv6/ip6_tables.h b/libc/kernel/uapi/linux/netfilter_ipv6/ip6_tables.h
index 8c4ec88..6dfe302 100644
--- a/libc/kernel/uapi/linux/netfilter_ipv6/ip6_tables.h
+++ b/libc/kernel/uapi/linux/netfilter_ipv6/ip6_tables.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_IP6_TABLES_H
 #define _UAPI_IP6_TABLES_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/netfilter_ipv6/ip6t_HL.h b/libc/kernel/uapi/linux/netfilter_ipv6/ip6t_HL.h
index 85983c6..8060e3b 100644
--- a/libc/kernel/uapi/linux/netfilter_ipv6/ip6t_HL.h
+++ b/libc/kernel/uapi/linux/netfilter_ipv6/ip6t_HL.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _IP6T_HL_H
 #define _IP6T_HL_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/netfilter_ipv6/ip6t_LOG.h b/libc/kernel/uapi/linux/netfilter_ipv6/ip6t_LOG.h
index eb3f26a..2bf5df0 100644
--- a/libc/kernel/uapi/linux/netfilter_ipv6/ip6t_LOG.h
+++ b/libc/kernel/uapi/linux/netfilter_ipv6/ip6t_LOG.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _IP6T_LOG_H
 #define _IP6T_LOG_H
 #define IP6T_LOG_TCPSEQ 0x01
diff --git a/libc/kernel/uapi/linux/netfilter_ipv6/ip6t_NPT.h b/libc/kernel/uapi/linux/netfilter_ipv6/ip6t_NPT.h
index 4f41cde..5296a5b 100644
--- a/libc/kernel/uapi/linux/netfilter_ipv6/ip6t_NPT.h
+++ b/libc/kernel/uapi/linux/netfilter_ipv6/ip6t_NPT.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __NETFILTER_IP6T_NPT
 #define __NETFILTER_IP6T_NPT
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/netfilter_ipv6/ip6t_REJECT.h b/libc/kernel/uapi/linux/netfilter_ipv6/ip6t_REJECT.h
index 96fcdbe..2a89f1a 100644
--- a/libc/kernel/uapi/linux/netfilter_ipv6/ip6t_REJECT.h
+++ b/libc/kernel/uapi/linux/netfilter_ipv6/ip6t_REJECT.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _IP6T_REJECT_H
 #define _IP6T_REJECT_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/netfilter_ipv6/ip6t_ah.h b/libc/kernel/uapi/linux/netfilter_ipv6/ip6t_ah.h
index a566e6c..ec24d2b 100644
--- a/libc/kernel/uapi/linux/netfilter_ipv6/ip6t_ah.h
+++ b/libc/kernel/uapi/linux/netfilter_ipv6/ip6t_ah.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _IP6T_AH_H
 #define _IP6T_AH_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/netfilter_ipv6/ip6t_frag.h b/libc/kernel/uapi/linux/netfilter_ipv6/ip6t_frag.h
index accbe18..f4779fa 100644
--- a/libc/kernel/uapi/linux/netfilter_ipv6/ip6t_frag.h
+++ b/libc/kernel/uapi/linux/netfilter_ipv6/ip6t_frag.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _IP6T_FRAG_H
 #define _IP6T_FRAG_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/netfilter_ipv6/ip6t_hl.h b/libc/kernel/uapi/linux/netfilter_ipv6/ip6t_hl.h
index 048636d..27de0c0 100644
--- a/libc/kernel/uapi/linux/netfilter_ipv6/ip6t_hl.h
+++ b/libc/kernel/uapi/linux/netfilter_ipv6/ip6t_hl.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _IP6T_HL_H
 #define _IP6T_HL_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/netfilter_ipv6/ip6t_ipv6header.h b/libc/kernel/uapi/linux/netfilter_ipv6/ip6t_ipv6header.h
index 3c5dca5..1c6e3a5 100644
--- a/libc/kernel/uapi/linux/netfilter_ipv6/ip6t_ipv6header.h
+++ b/libc/kernel/uapi/linux/netfilter_ipv6/ip6t_ipv6header.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __IPV6HEADER_H
 #define __IPV6HEADER_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/netfilter_ipv6/ip6t_mh.h b/libc/kernel/uapi/linux/netfilter_ipv6/ip6t_mh.h
index 849119f..c736090 100644
--- a/libc/kernel/uapi/linux/netfilter_ipv6/ip6t_mh.h
+++ b/libc/kernel/uapi/linux/netfilter_ipv6/ip6t_mh.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _IP6T_MH_H
 #define _IP6T_MH_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/netfilter_ipv6/ip6t_opts.h b/libc/kernel/uapi/linux/netfilter_ipv6/ip6t_opts.h
index 21052ee..0c632d4 100644
--- a/libc/kernel/uapi/linux/netfilter_ipv6/ip6t_opts.h
+++ b/libc/kernel/uapi/linux/netfilter_ipv6/ip6t_opts.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _IP6T_OPTS_H
 #define _IP6T_OPTS_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/netfilter_ipv6/ip6t_rt.h b/libc/kernel/uapi/linux/netfilter_ipv6/ip6t_rt.h
index 2203b82..d948475 100644
--- a/libc/kernel/uapi/linux/netfilter_ipv6/ip6t_rt.h
+++ b/libc/kernel/uapi/linux/netfilter_ipv6/ip6t_rt.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _IP6T_RT_H
 #define _IP6T_RT_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/netfilter_ipv6/ip6t_srh.h b/libc/kernel/uapi/linux/netfilter_ipv6/ip6t_srh.h
index a9474e7..6373231 100644
--- a/libc/kernel/uapi/linux/netfilter_ipv6/ip6t_srh.h
+++ b/libc/kernel/uapi/linux/netfilter_ipv6/ip6t_srh.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _IP6T_SRH_H
 #define _IP6T_SRH_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/netlink.h b/libc/kernel/uapi/linux/netlink.h
index 17d5291..7621869 100644
--- a/libc/kernel/uapi/linux/netlink.h
+++ b/libc/kernel/uapi/linux/netlink.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI__LINUX_NETLINK_H
 #define _UAPI__LINUX_NETLINK_H
 #include <linux/const.h>
@@ -180,6 +168,8 @@
   NL_ATTR_TYPE_NESTED,
   NL_ATTR_TYPE_NESTED_ARRAY,
   NL_ATTR_TYPE_BITFIELD32,
+  NL_ATTR_TYPE_SINT,
+  NL_ATTR_TYPE_UINT,
 };
 enum netlink_policy_type_attr {
   NL_POLICY_TYPE_ATTR_UNSPEC,
diff --git a/libc/kernel/uapi/linux/netlink_diag.h b/libc/kernel/uapi/linux/netlink_diag.h
index afe1521..aef637d 100644
--- a/libc/kernel/uapi/linux/netlink_diag.h
+++ b/libc/kernel/uapi/linux/netlink_diag.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __NETLINK_DIAG_H__
 #define __NETLINK_DIAG_H__
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/netrom.h b/libc/kernel/uapi/linux/netrom.h
index 917b850..1a978d5 100644
--- a/libc/kernel/uapi/linux/netrom.h
+++ b/libc/kernel/uapi/linux/netrom.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef NETROM_KERNEL_H
 #define NETROM_KERNEL_H
 #include <linux/ax25.h>
diff --git a/libc/kernel/uapi/linux/nexthop.h b/libc/kernel/uapi/linux/nexthop.h
index 4bc9ff0..5726a66 100644
--- a/libc/kernel/uapi/linux/nexthop.h
+++ b/libc/kernel/uapi/linux/nexthop.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_NEXTHOP_H
 #define _UAPI_LINUX_NEXTHOP_H
 #include <linux/types.h>
@@ -38,6 +26,8 @@
   __NEXTHOP_GRP_TYPE_MAX,
 };
 #define NEXTHOP_GRP_TYPE_MAX (__NEXTHOP_GRP_TYPE_MAX - 1)
+#define NHA_OP_FLAG_DUMP_STATS BIT(0)
+#define NHA_OP_FLAG_DUMP_HW_STATS BIT(1)
 enum {
   NHA_UNSPEC,
   NHA_ID,
@@ -53,6 +43,10 @@
   NHA_FDB,
   NHA_RES_GROUP,
   NHA_RES_BUCKET,
+  NHA_OP_FLAGS,
+  NHA_GROUP_STATS,
+  NHA_HW_STATS_ENABLE,
+  NHA_HW_STATS_USED,
   __NHA_MAX,
 };
 #define NHA_MAX (__NHA_MAX - 1)
@@ -75,4 +69,18 @@
   __NHA_RES_BUCKET_MAX,
 };
 #define NHA_RES_BUCKET_MAX (__NHA_RES_BUCKET_MAX - 1)
+enum {
+  NHA_GROUP_STATS_UNSPEC,
+  NHA_GROUP_STATS_ENTRY,
+  __NHA_GROUP_STATS_MAX,
+};
+#define NHA_GROUP_STATS_MAX (__NHA_GROUP_STATS_MAX - 1)
+enum {
+  NHA_GROUP_STATS_ENTRY_UNSPEC,
+  NHA_GROUP_STATS_ENTRY_ID,
+  NHA_GROUP_STATS_ENTRY_PACKETS,
+  NHA_GROUP_STATS_ENTRY_PACKETS_HW,
+  __NHA_GROUP_STATS_ENTRY_MAX,
+};
+#define NHA_GROUP_STATS_ENTRY_MAX (__NHA_GROUP_STATS_ENTRY_MAX - 1)
 #endif
diff --git a/libc/kernel/uapi/linux/nfc.h b/libc/kernel/uapi/linux/nfc.h
index ff980f4..393ce7c 100644
--- a/libc/kernel/uapi/linux/nfc.h
+++ b/libc/kernel/uapi/linux/nfc.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __LINUX_NFC_H
 #define __LINUX_NFC_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/nfs.h b/libc/kernel/uapi/linux/nfs.h
index e8c0499..7b18f1f 100644
--- a/libc/kernel/uapi/linux/nfs.h
+++ b/libc/kernel/uapi/linux/nfs.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_NFS_H
 #define _UAPI_LINUX_NFS_H
 #include <linux/types.h>
@@ -59,7 +47,6 @@
   NFSERR_NOSPC = 28,
   NFSERR_ROFS = 30,
   NFSERR_MLINK = 31,
-  NFSERR_OPNOTSUPP = 45,
   NFSERR_NAMETOOLONG = 63,
   NFSERR_NOTEMPTY = 66,
   NFSERR_DQUOT = 69,
diff --git a/libc/kernel/uapi/linux/nfs2.h b/libc/kernel/uapi/linux/nfs2.h
index 4cbca12..110a816 100644
--- a/libc/kernel/uapi/linux/nfs2.h
+++ b/libc/kernel/uapi/linux/nfs2.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _LINUX_NFS2_H
 #define _LINUX_NFS2_H
 #define NFS2_PORT 2049
diff --git a/libc/kernel/uapi/linux/nfs3.h b/libc/kernel/uapi/linux/nfs3.h
index af0d668..71ff8ac 100644
--- a/libc/kernel/uapi/linux/nfs3.h
+++ b/libc/kernel/uapi/linux/nfs3.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_NFS3_H
 #define _UAPI_LINUX_NFS3_H
 #define NFS3_PORT 2049
diff --git a/libc/kernel/uapi/linux/nfs4.h b/libc/kernel/uapi/linux/nfs4.h
index ef860e2..6512901 100644
--- a/libc/kernel/uapi/linux/nfs4.h
+++ b/libc/kernel/uapi/linux/nfs4.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_NFS4_H
 #define _UAPI_LINUX_NFS4_H
 #include <linux/types.h>
@@ -46,6 +34,7 @@
 #define NFS4_OPEN_RESULT_CONFIRM 0x0002
 #define NFS4_OPEN_RESULT_LOCKTYPE_POSIX 0x0004
 #define NFS4_OPEN_RESULT_PRESERVE_UNLINKED 0x0008
+#define NFS4_OPEN_RESULT_NO_OPEN_STATEID 0x0010
 #define NFS4_OPEN_RESULT_MAY_NOTIFY_LOCK 0x0020
 #define NFS4_SHARE_ACCESS_MASK 0x000F
 #define NFS4_SHARE_ACCESS_READ 0x0001
@@ -64,6 +53,8 @@
 #define NFS4_SHARE_WHEN_MASK 0xF0000
 #define NFS4_SHARE_SIGNAL_DELEG_WHEN_RESRC_AVAIL 0x10000
 #define NFS4_SHARE_PUSH_DELEG_WHEN_UNCONTENDED 0x20000
+#define NFS4_SHARE_WANT_DELEG_TIMESTAMPS 0x100000
+#define NFS4_SHARE_WANT_OPEN_XOR_DELEGATION 0x200000
 #define NFS4_CDFC4_FORE 0x1
 #define NFS4_CDFC4_BACK 0x2
 #define NFS4_CDFC4_BOTH 0x3
diff --git a/libc/kernel/uapi/linux/nfs4_mount.h b/libc/kernel/uapi/linux/nfs4_mount.h
index 9b9c9f8..3dee4cf 100644
--- a/libc/kernel/uapi/linux/nfs4_mount.h
+++ b/libc/kernel/uapi/linux/nfs4_mount.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _LINUX_NFS4_MOUNT_H
 #define _LINUX_NFS4_MOUNT_H
 #define NFS4_MOUNT_VERSION 1
diff --git a/libc/kernel/uapi/linux/nfs_fs.h b/libc/kernel/uapi/linux/nfs_fs.h
index f8228ec..7c2b704 100644
--- a/libc/kernel/uapi/linux/nfs_fs.h
+++ b/libc/kernel/uapi/linux/nfs_fs.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_NFS_FS_H
 #define _UAPI_LINUX_NFS_FS_H
 #include <linux/magic.h>
diff --git a/libc/kernel/uapi/linux/nfs_idmap.h b/libc/kernel/uapi/linux/nfs_idmap.h
index 6287cc6..01d30c0 100644
--- a/libc/kernel/uapi/linux/nfs_idmap.h
+++ b/libc/kernel/uapi/linux/nfs_idmap.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPINFS_IDMAP_H
 #define _UAPINFS_IDMAP_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/nfs_mount.h b/libc/kernel/uapi/linux/nfs_mount.h
index 5b00222..0e33fff 100644
--- a/libc/kernel/uapi/linux/nfs_mount.h
+++ b/libc/kernel/uapi/linux/nfs_mount.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _LINUX_NFS_MOUNT_H
 #define _LINUX_NFS_MOUNT_H
 #include <linux/in.h>
diff --git a/libc/kernel/uapi/linux/nfsacl.h b/libc/kernel/uapi/linux/nfsacl.h
index 65dccad..c624a58 100644
--- a/libc/kernel/uapi/linux/nfsacl.h
+++ b/libc/kernel/uapi/linux/nfsacl.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI__LINUX_NFSACL_H
 #define _UAPI__LINUX_NFSACL_H
 #define NFS_ACL_PROGRAM 100227
diff --git a/libc/kernel/uapi/linux/nfsd/cld.h b/libc/kernel/uapi/linux/nfsd/cld.h
index 92b89c0..35f11e0 100644
--- a/libc/kernel/uapi/linux/nfsd/cld.h
+++ b/libc/kernel/uapi/linux/nfsd/cld.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _NFSD_CLD_H
 #define _NFSD_CLD_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/nfsd/debug.h b/libc/kernel/uapi/linux/nfsd/debug.h
index d4ccf69..9196f28 100644
--- a/libc/kernel/uapi/linux/nfsd/debug.h
+++ b/libc/kernel/uapi/linux/nfsd/debug.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPILINUX_NFSD_DEBUG_H
 #define _UAPILINUX_NFSD_DEBUG_H
 #include <linux/sunrpc/debug.h>
diff --git a/libc/kernel/uapi/linux/nfsd/export.h b/libc/kernel/uapi/linux/nfsd/export.h
index 4716fb1..8b9cfc2 100644
--- a/libc/kernel/uapi/linux/nfsd/export.h
+++ b/libc/kernel/uapi/linux/nfsd/export.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPINFSD_EXPORT_H
 #define _UAPINFSD_EXPORT_H
 #include <linux/types.h>
@@ -41,4 +29,9 @@
 #define NFSEXP_PNFS 0x20000
 #define NFSEXP_ALLFLAGS 0x3FEFF
 #define NFSEXP_SECINFO_FLAGS (NFSEXP_READONLY | NFSEXP_ROOTSQUASH | NFSEXP_ALLSQUASH | NFSEXP_INSECURE_PORT)
+#define NFSEXP_XPRTSEC_NONE 0x0001
+#define NFSEXP_XPRTSEC_TLS 0x0002
+#define NFSEXP_XPRTSEC_MTLS 0x0004
+#define NFSEXP_XPRTSEC_NUM (3)
+#define NFSEXP_XPRTSEC_ALL (NFSEXP_XPRTSEC_NONE | NFSEXP_XPRTSEC_TLS | NFSEXP_XPRTSEC_MTLS)
 #endif
diff --git a/libc/kernel/uapi/linux/nfsd/stats.h b/libc/kernel/uapi/linux/nfsd/stats.h
index 91b4a74..45205a3 100644
--- a/libc/kernel/uapi/linux/nfsd/stats.h
+++ b/libc/kernel/uapi/linux/nfsd/stats.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPILINUX_NFSD_STATS_H
 #define _UAPILINUX_NFSD_STATS_H
 #include <linux/nfs4.h>
diff --git a/libc/kernel/uapi/linux/nfsd_netlink.h b/libc/kernel/uapi/linux/nfsd_netlink.h
new file mode 100644
index 0000000..bd3f02c
--- /dev/null
+++ b/libc/kernel/uapi/linux/nfsd_netlink.h
@@ -0,0 +1,79 @@
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
+#ifndef _UAPI_LINUX_NFSD_NETLINK_H
+#define _UAPI_LINUX_NFSD_NETLINK_H
+#define NFSD_FAMILY_NAME "nfsd"
+#define NFSD_FAMILY_VERSION 1
+enum {
+  NFSD_A_RPC_STATUS_XID = 1,
+  NFSD_A_RPC_STATUS_FLAGS,
+  NFSD_A_RPC_STATUS_PROG,
+  NFSD_A_RPC_STATUS_VERSION,
+  NFSD_A_RPC_STATUS_PROC,
+  NFSD_A_RPC_STATUS_SERVICE_TIME,
+  NFSD_A_RPC_STATUS_PAD,
+  NFSD_A_RPC_STATUS_SADDR4,
+  NFSD_A_RPC_STATUS_DADDR4,
+  NFSD_A_RPC_STATUS_SADDR6,
+  NFSD_A_RPC_STATUS_DADDR6,
+  NFSD_A_RPC_STATUS_SPORT,
+  NFSD_A_RPC_STATUS_DPORT,
+  NFSD_A_RPC_STATUS_COMPOUND_OPS,
+  __NFSD_A_RPC_STATUS_MAX,
+  NFSD_A_RPC_STATUS_MAX = (__NFSD_A_RPC_STATUS_MAX - 1)
+};
+enum {
+  NFSD_A_SERVER_THREADS = 1,
+  NFSD_A_SERVER_GRACETIME,
+  NFSD_A_SERVER_LEASETIME,
+  NFSD_A_SERVER_SCOPE,
+  __NFSD_A_SERVER_MAX,
+  NFSD_A_SERVER_MAX = (__NFSD_A_SERVER_MAX - 1)
+};
+enum {
+  NFSD_A_VERSION_MAJOR = 1,
+  NFSD_A_VERSION_MINOR,
+  NFSD_A_VERSION_ENABLED,
+  __NFSD_A_VERSION_MAX,
+  NFSD_A_VERSION_MAX = (__NFSD_A_VERSION_MAX - 1)
+};
+enum {
+  NFSD_A_SERVER_PROTO_VERSION = 1,
+  __NFSD_A_SERVER_PROTO_MAX,
+  NFSD_A_SERVER_PROTO_MAX = (__NFSD_A_SERVER_PROTO_MAX - 1)
+};
+enum {
+  NFSD_A_SOCK_ADDR = 1,
+  NFSD_A_SOCK_TRANSPORT_NAME,
+  __NFSD_A_SOCK_MAX,
+  NFSD_A_SOCK_MAX = (__NFSD_A_SOCK_MAX - 1)
+};
+enum {
+  NFSD_A_SERVER_SOCK_ADDR = 1,
+  __NFSD_A_SERVER_SOCK_MAX,
+  NFSD_A_SERVER_SOCK_MAX = (__NFSD_A_SERVER_SOCK_MAX - 1)
+};
+enum {
+  NFSD_A_POOL_MODE_MODE = 1,
+  NFSD_A_POOL_MODE_NPOOLS,
+  __NFSD_A_POOL_MODE_MAX,
+  NFSD_A_POOL_MODE_MAX = (__NFSD_A_POOL_MODE_MAX - 1)
+};
+enum {
+  NFSD_CMD_RPC_STATUS_GET = 1,
+  NFSD_CMD_THREADS_SET,
+  NFSD_CMD_THREADS_GET,
+  NFSD_CMD_VERSION_SET,
+  NFSD_CMD_VERSION_GET,
+  NFSD_CMD_LISTENER_SET,
+  NFSD_CMD_LISTENER_GET,
+  NFSD_CMD_POOL_MODE_SET,
+  NFSD_CMD_POOL_MODE_GET,
+  __NFSD_CMD_MAX,
+  NFSD_CMD_MAX = (__NFSD_CMD_MAX - 1)
+};
+#endif
diff --git a/libc/kernel/uapi/linux/nilfs2_api.h b/libc/kernel/uapi/linux/nilfs2_api.h
index d6a6b8f..993f1fd 100644
--- a/libc/kernel/uapi/linux/nilfs2_api.h
+++ b/libc/kernel/uapi/linux/nilfs2_api.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _LINUX_NILFS2_API_H
 #define _LINUX_NILFS2_API_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/nilfs2_ondisk.h b/libc/kernel/uapi/linux/nilfs2_ondisk.h
index a05e7b7..9df95cb 100644
--- a/libc/kernel/uapi/linux/nilfs2_ondisk.h
+++ b/libc/kernel/uapi/linux/nilfs2_ondisk.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _LINUX_NILFS2_ONDISK_H
 #define _LINUX_NILFS2_ONDISK_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/nitro_enclaves.h b/libc/kernel/uapi/linux/nitro_enclaves.h
index 20b26ef..5256cf3 100644
--- a/libc/kernel/uapi/linux/nitro_enclaves.h
+++ b/libc/kernel/uapi/linux/nitro_enclaves.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_NITRO_ENCLAVES_H_
 #define _UAPI_LINUX_NITRO_ENCLAVES_H_
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/nl80211-vnd-intel.h b/libc/kernel/uapi/linux/nl80211-vnd-intel.h
index 9ade75a..4a6d94a 100644
--- a/libc/kernel/uapi/linux/nl80211-vnd-intel.h
+++ b/libc/kernel/uapi/linux/nl80211-vnd-intel.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __VENDOR_CMD_INTEL_H__
 #define __VENDOR_CMD_INTEL_H__
 #define INTEL_OUI 0x001735
diff --git a/libc/kernel/uapi/linux/nl80211.h b/libc/kernel/uapi/linux/nl80211.h
index 83fe597..1bad2f2 100644
--- a/libc/kernel/uapi/linux/nl80211.h
+++ b/libc/kernel/uapi/linux/nl80211.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __LINUX_NL80211_H
 #define __LINUX_NL80211_H
 #include <linux/types.h>
@@ -190,6 +178,9 @@
   NL80211_CMD_ADD_LINK_STA,
   NL80211_CMD_MODIFY_LINK_STA,
   NL80211_CMD_REMOVE_LINK_STA,
+  NL80211_CMD_SET_HW_TIMESTAMP,
+  NL80211_CMD_LINKS_REMOVED,
+  NL80211_CMD_SET_TID_TO_LINK_MAPPING,
   __NL80211_CMD_AFTER_LAST,
   NL80211_CMD_MAX = __NL80211_CMD_AFTER_LAST - 1
 };
@@ -528,6 +519,17 @@
   NL80211_ATTR_TX_HW_TIMESTAMP,
   NL80211_ATTR_RX_HW_TIMESTAMP,
   NL80211_ATTR_TD_BITMAP,
+  NL80211_ATTR_PUNCT_BITMAP,
+  NL80211_ATTR_MAX_HW_TIMESTAMP_PEERS,
+  NL80211_ATTR_HW_TIMESTAMP_ENABLED,
+  NL80211_ATTR_EMA_RNR_ELEMS,
+  NL80211_ATTR_MLO_LINK_DISABLED,
+  NL80211_ATTR_BSS_DUMP_INCLUDE_USE_DATA,
+  NL80211_ATTR_MLO_TTLM_DLINK,
+  NL80211_ATTR_MLO_TTLM_ULINK,
+  NL80211_ATTR_ASSOC_SPP_AMSDU,
+  NL80211_ATTR_WIPHY_RADIOS,
+  NL80211_ATTR_WIPHY_INTERFACE_COMBINATIONS,
   __NL80211_ATTR_AFTER_LAST,
   NUM_NL80211_ATTR = __NL80211_ATTR_AFTER_LAST,
   NL80211_ATTR_MAX = __NL80211_ATTR_AFTER_LAST - 1
@@ -603,6 +605,7 @@
   NL80211_STA_FLAG_AUTHENTICATED,
   NL80211_STA_FLAG_TDLS_PEER,
   NL80211_STA_FLAG_ASSOCIATED,
+  NL80211_STA_FLAG_SPP_AMSDU,
   __NL80211_STA_FLAG_AFTER_LAST,
   NL80211_STA_FLAG_MAX = __NL80211_STA_FLAG_AFTER_LAST - 1
 };
@@ -682,6 +685,13 @@
   NL80211_RATE_INFO_EHT_NSS,
   NL80211_RATE_INFO_EHT_GI,
   NL80211_RATE_INFO_EHT_RU_ALLOC,
+  NL80211_RATE_INFO_S1G_MCS,
+  NL80211_RATE_INFO_S1G_NSS,
+  NL80211_RATE_INFO_1_MHZ_WIDTH,
+  NL80211_RATE_INFO_2_MHZ_WIDTH,
+  NL80211_RATE_INFO_4_MHZ_WIDTH,
+  NL80211_RATE_INFO_8_MHZ_WIDTH,
+  NL80211_RATE_INFO_16_MHZ_WIDTH,
   __NL80211_RATE_INFO_AFTER_LAST,
   NL80211_RATE_INFO_MAX = __NL80211_RATE_INFO_AFTER_LAST - 1
 };
@@ -821,6 +831,8 @@
   NL80211_BAND_ATTR_IFTYPE_DATA,
   NL80211_BAND_ATTR_EDMG_CHANNELS,
   NL80211_BAND_ATTR_EDMG_BW_CONFIG,
+  NL80211_BAND_ATTR_S1G_MCS_NSS_SET,
+  NL80211_BAND_ATTR_S1G_CAPA,
   __NL80211_BAND_ATTR_AFTER_LAST,
   NL80211_BAND_ATTR_MAX = __NL80211_BAND_ATTR_AFTER_LAST - 1
 };
@@ -863,6 +875,12 @@
   NL80211_FREQUENCY_ATTR_16MHZ,
   NL80211_FREQUENCY_ATTR_NO_320MHZ,
   NL80211_FREQUENCY_ATTR_NO_EHT,
+  NL80211_FREQUENCY_ATTR_PSD,
+  NL80211_FREQUENCY_ATTR_DFS_CONCURRENT,
+  NL80211_FREQUENCY_ATTR_NO_6GHZ_VLP_CLIENT,
+  NL80211_FREQUENCY_ATTR_NO_6GHZ_AFC_CLIENT,
+  NL80211_FREQUENCY_ATTR_CAN_MONITOR,
+  NL80211_FREQUENCY_ATTR_ALLOW_6GHZ_VLP_AP,
   __NL80211_FREQUENCY_ATTR_AFTER_LAST,
   NL80211_FREQUENCY_ATTR_MAX = __NL80211_FREQUENCY_ATTR_AFTER_LAST - 1
 };
@@ -871,6 +889,8 @@
 #define NL80211_FREQUENCY_ATTR_NO_IBSS NL80211_FREQUENCY_ATTR_NO_IR
 #define NL80211_FREQUENCY_ATTR_NO_IR NL80211_FREQUENCY_ATTR_NO_IR
 #define NL80211_FREQUENCY_ATTR_GO_CONCURRENT NL80211_FREQUENCY_ATTR_IR_CONCURRENT
+#define NL80211_FREQUENCY_ATTR_NO_UHB_VLP_CLIENT NL80211_FREQUENCY_ATTR_NO_6GHZ_VLP_CLIENT
+#define NL80211_FREQUENCY_ATTR_NO_UHB_AFC_CLIENT NL80211_FREQUENCY_ATTR_NO_6GHZ_AFC_CLIENT
 enum nl80211_bitrate_attr {
   __NL80211_BITRATE_ATTR_INVALID,
   NL80211_BITRATE_ATTR_RATE,
@@ -899,6 +919,7 @@
   NL80211_ATTR_POWER_RULE_MAX_ANT_GAIN,
   NL80211_ATTR_POWER_RULE_MAX_EIRP,
   NL80211_ATTR_DFS_CAC_TIME,
+  NL80211_ATTR_POWER_RULE_PSD,
   __NL80211_REG_RULE_ATTR_AFTER_LAST,
   NL80211_REG_RULE_ATTR_MAX = __NL80211_REG_RULE_ATTR_AFTER_LAST - 1
 };
@@ -932,12 +953,20 @@
   NL80211_RRF_NO_160MHZ = 1 << 16,
   NL80211_RRF_NO_HE = 1 << 17,
   NL80211_RRF_NO_320MHZ = 1 << 18,
+  NL80211_RRF_NO_EHT = 1 << 19,
+  NL80211_RRF_PSD = 1 << 20,
+  NL80211_RRF_DFS_CONCURRENT = 1 << 21,
+  NL80211_RRF_NO_6GHZ_VLP_CLIENT = 1 << 22,
+  NL80211_RRF_NO_6GHZ_AFC_CLIENT = 1 << 23,
+  NL80211_RRF_ALLOW_6GHZ_VLP_AP = 1 << 24,
 };
 #define NL80211_RRF_PASSIVE_SCAN NL80211_RRF_NO_IR
 #define NL80211_RRF_NO_IBSS NL80211_RRF_NO_IR
 #define NL80211_RRF_NO_IR NL80211_RRF_NO_IR
 #define NL80211_RRF_NO_HT40 (NL80211_RRF_NO_HT40MINUS | NL80211_RRF_NO_HT40PLUS)
 #define NL80211_RRF_GO_CONCURRENT NL80211_RRF_IR_CONCURRENT
+#define NL80211_RRF_NO_UHB_VLP_CLIENT NL80211_RRF_NO_6GHZ_VLP_CLIENT
+#define NL80211_RRF_NO_UHB_AFC_CLIENT NL80211_RRF_NO_6GHZ_AFC_CLIENT
 #define NL80211_RRF_NO_IR_ALL (NL80211_RRF_NO_IR | __NL80211_RRF_NO_IBSS)
 enum nl80211_dfs_regions {
   NL80211_DFS_UNSET = 0,
@@ -1096,6 +1125,15 @@
   NL80211_BSS_CHAN_WIDTH_1,
   NL80211_BSS_CHAN_WIDTH_2,
 };
+enum nl80211_bss_use_for {
+  NL80211_BSS_USE_FOR_NORMAL = 1 << 0,
+  NL80211_BSS_USE_FOR_MLD_LINK = 1 << 1,
+};
+enum nl80211_bss_cannot_use_reasons {
+  NL80211_BSS_CANNOT_USE_NSTR_NONPRIMARY = 1 << 0,
+  NL80211_BSS_CANNOT_USE_6GHZ_PWR_MISMATCH = 1 << 1,
+};
+#define NL80211_BSS_CANNOT_USE_UHB_PWR_MISMATCH NL80211_BSS_CANNOT_USE_6GHZ_PWR_MISMATCH
 enum nl80211_bss {
   __NL80211_BSS_INVALID,
   NL80211_BSS_BSSID,
@@ -1120,6 +1158,8 @@
   NL80211_BSS_FREQUENCY_OFFSET,
   NL80211_BSS_MLO_LINK_ID,
   NL80211_BSS_MLD_ADDR,
+  NL80211_BSS_USE_FOR,
+  NL80211_BSS_CANNOT_USE_REASONS,
   __NL80211_BSS_AFTER_LAST,
   NL80211_BSS_MAX = __NL80211_BSS_AFTER_LAST - 1
 };
@@ -1310,6 +1350,7 @@
   NL80211_WOWLAN_TRIG_WAKEUP_TCP_NOMORETOKENS,
   NL80211_WOWLAN_TRIG_NET_DETECT,
   NL80211_WOWLAN_TRIG_NET_DETECT_RESULTS,
+  NL80211_WOWLAN_TRIG_UNPROTECTED_DEAUTH_DISASSOC,
   NUM_NL80211_WOWLAN_TRIG,
   MAX_NL80211_WOWLAN_TRIG = NUM_NL80211_WOWLAN_TRIG - 1
 };
@@ -1386,7 +1427,7 @@
   NUM_NL80211_PLINK_STATES,
   MAX_NL80211_PLINK_STATES = NUM_NL80211_PLINK_STATES - 1
 };
-enum plink_actions {
+enum nl80211_plink_action {
   NL80211_PLINK_ACTION_NO_ACTION,
   NL80211_PLINK_ACTION_OPEN,
   NL80211_PLINK_ACTION_BLOCK,
@@ -1396,6 +1437,7 @@
 #define NL80211_KEK_LEN 16
 #define NL80211_KCK_EXT_LEN 24
 #define NL80211_KEK_EXT_LEN 32
+#define NL80211_KCK_EXT_LEN_32 32
 #define NL80211_REPLAY_CTR_LEN 8
 enum nl80211_rekey_data {
   __NL80211_REKEY_DATA_INVALID,
@@ -1533,6 +1575,13 @@
   NL80211_EXT_FEATURE_FILS_CRYPTO_OFFLOAD,
   NL80211_EXT_FEATURE_RADAR_BACKGROUND,
   NL80211_EXT_FEATURE_POWERED_ADDR_CHANGE,
+  NL80211_EXT_FEATURE_PUNCT,
+  NL80211_EXT_FEATURE_SECURE_NAN,
+  NL80211_EXT_FEATURE_AUTH_AND_DEAUTH_RANDOM_TA,
+  NL80211_EXT_FEATURE_OWE_OFFLOAD,
+  NL80211_EXT_FEATURE_OWE_OFFLOAD_AP,
+  NL80211_EXT_FEATURE_DFS_CONCURRENT,
+  NL80211_EXT_FEATURE_SPP_AMSDU_SUPPORT,
   NUM_NL80211_EXT_FEATURES,
   MAX_NL80211_EXT_FEATURES = NUM_NL80211_EXT_FEATURES - 1
 };
@@ -1928,4 +1977,19 @@
   NL80211_AP_SETTINGS_EXTERNAL_AUTH_SUPPORT = 1 << 0,
   NL80211_AP_SETTINGS_SA_QUERY_OFFLOAD_SUPPORT = 1 << 1,
 };
+enum nl80211_wiphy_radio_attrs {
+  __NL80211_WIPHY_RADIO_ATTR_INVALID,
+  NL80211_WIPHY_RADIO_ATTR_INDEX,
+  NL80211_WIPHY_RADIO_ATTR_FREQ_RANGE,
+  NL80211_WIPHY_RADIO_ATTR_INTERFACE_COMBINATION,
+  __NL80211_WIPHY_RADIO_ATTR_LAST,
+  NL80211_WIPHY_RADIO_ATTR_MAX = __NL80211_WIPHY_RADIO_ATTR_LAST - 1,
+};
+enum nl80211_wiphy_radio_freq_range {
+  __NL80211_WIPHY_RADIO_FREQ_ATTR_INVALID,
+  NL80211_WIPHY_RADIO_FREQ_ATTR_START,
+  NL80211_WIPHY_RADIO_FREQ_ATTR_END,
+  __NL80211_WIPHY_RADIO_FREQ_ATTR_LAST,
+  NL80211_WIPHY_RADIO_FREQ_ATTR_MAX = __NL80211_WIPHY_RADIO_FREQ_ATTR_LAST - 1,
+};
 #endif
diff --git a/libc/kernel/uapi/linux/npcm-video.h b/libc/kernel/uapi/linux/npcm-video.h
new file mode 100644
index 0000000..64cd3cc
--- /dev/null
+++ b/libc/kernel/uapi/linux/npcm-video.h
@@ -0,0 +1,16 @@
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
+#ifndef _UAPI_LINUX_NPCM_VIDEO_H
+#define _UAPI_LINUX_NPCM_VIDEO_H
+#include <linux/v4l2-controls.h>
+#define V4L2_CID_NPCM_CAPTURE_MODE (V4L2_CID_USER_NPCM_BASE + 0)
+enum v4l2_npcm_capture_mode {
+  V4L2_NPCM_CAPTURE_MODE_COMPLETE = 0,
+  V4L2_NPCM_CAPTURE_MODE_DIFF = 1,
+};
+#define V4L2_CID_NPCM_RECT_COUNT (V4L2_CID_USER_NPCM_BASE + 1)
+#endif
diff --git a/libc/kernel/uapi/linux/nsfs.h b/libc/kernel/uapi/linux/nsfs.h
index d32d31c..c8f2208 100644
--- a/libc/kernel/uapi/linux/nsfs.h
+++ b/libc/kernel/uapi/linux/nsfs.h
@@ -1,27 +1,21 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __LINUX_NSFS_H
 #define __LINUX_NSFS_H
 #include <linux/ioctl.h>
+#include <linux/types.h>
 #define NSIO 0xb7
 #define NS_GET_USERNS _IO(NSIO, 0x1)
 #define NS_GET_PARENT _IO(NSIO, 0x2)
 #define NS_GET_NSTYPE _IO(NSIO, 0x3)
 #define NS_GET_OWNER_UID _IO(NSIO, 0x4)
+#define NS_GET_MNTNS_ID _IOR(NSIO, 0x5, __u64)
+#define NS_GET_PID_FROM_PIDNS _IOR(NSIO, 0x6, int)
+#define NS_GET_TGID_FROM_PIDNS _IOR(NSIO, 0x7, int)
+#define NS_GET_PID_IN_PIDNS _IOR(NSIO, 0x8, int)
+#define NS_GET_TGID_IN_PIDNS _IOR(NSIO, 0x9, int)
 #endif
diff --git a/libc/kernel/uapi/linux/nsm.h b/libc/kernel/uapi/linux/nsm.h
new file mode 100644
index 0000000..5c8e27d
--- /dev/null
+++ b/libc/kernel/uapi/linux/nsm.h
@@ -0,0 +1,23 @@
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
+#ifndef __UAPI_LINUX_NSM_H
+#define __UAPI_LINUX_NSM_H
+#include <linux/ioctl.h>
+#include <linux/types.h>
+#define NSM_MAGIC 0x0A
+#define NSM_REQUEST_MAX_SIZE 0x1000
+#define NSM_RESPONSE_MAX_SIZE 0x3000
+struct nsm_iovec {
+  __u64 addr;
+  __u64 len;
+};
+struct nsm_raw {
+  struct nsm_iovec request;
+  struct nsm_iovec response;
+};
+#define NSM_IOCTL_RAW _IOWR(NSM_MAGIC, 0x0, struct nsm_raw)
+#endif
diff --git a/libc/kernel/uapi/linux/ntsync.h b/libc/kernel/uapi/linux/ntsync.h
new file mode 100644
index 0000000..857b31b
--- /dev/null
+++ b/libc/kernel/uapi/linux/ntsync.h
@@ -0,0 +1,17 @@
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
+#ifndef __LINUX_NTSYNC_H
+#define __LINUX_NTSYNC_H
+#include <linux/types.h>
+struct ntsync_sem_args {
+  __u32 sem;
+  __u32 count;
+  __u32 max;
+};
+#define NTSYNC_IOC_CREATE_SEM _IOWR('N', 0x80, struct ntsync_sem_args)
+#define NTSYNC_IOC_SEM_POST _IOWR('N', 0x81, __u32)
+#endif
diff --git a/libc/kernel/uapi/linux/nubus.h b/libc/kernel/uapi/linux/nubus.h
index 141c2f2..2170f1f 100644
--- a/libc/kernel/uapi/linux/nubus.h
+++ b/libc/kernel/uapi/linux/nubus.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPILINUX_NUBUS_H
 #define _UAPILINUX_NUBUS_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/nvme_ioctl.h b/libc/kernel/uapi/linux/nvme_ioctl.h
index 388e83f..b68cdff 100644
--- a/libc/kernel/uapi/linux/nvme_ioctl.h
+++ b/libc/kernel/uapi/linux/nvme_ioctl.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_NVME_IOCTL_H
 #define _UAPI_LINUX_NVME_IOCTL_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/nvram.h b/libc/kernel/uapi/linux/nvram.h
index 575b49a..221c825 100644
--- a/libc/kernel/uapi/linux/nvram.h
+++ b/libc/kernel/uapi/linux/nvram.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_NVRAM_H
 #define _UAPI_LINUX_NVRAM_H
 #include <linux/ioctl.h>
diff --git a/libc/kernel/uapi/linux/omap3isp.h b/libc/kernel/uapi/linux/omap3isp.h
index 1834658..48bfe63 100644
--- a/libc/kernel/uapi/linux/omap3isp.h
+++ b/libc/kernel/uapi/linux/omap3isp.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef OMAP3_ISP_USER_H
 #define OMAP3_ISP_USER_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/omapfb.h b/libc/kernel/uapi/linux/omapfb.h
index 632e468..c69281f 100644
--- a/libc/kernel/uapi/linux/omapfb.h
+++ b/libc/kernel/uapi/linux/omapfb.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI__LINUX_OMAPFB_H__
 #define _UAPI__LINUX_OMAPFB_H__
 #include <linux/fb.h>
diff --git a/libc/kernel/uapi/linux/oom.h b/libc/kernel/uapi/linux/oom.h
index 2fcdd29..192ff92 100644
--- a/libc/kernel/uapi/linux/oom.h
+++ b/libc/kernel/uapi/linux/oom.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI__INCLUDE_LINUX_OOM_H
 #define _UAPI__INCLUDE_LINUX_OOM_H
 #define OOM_SCORE_ADJ_MIN (- 1000)
diff --git a/libc/kernel/uapi/linux/openat2.h b/libc/kernel/uapi/linux/openat2.h
index d397a00..085d67d 100644
--- a/libc/kernel/uapi/linux/openat2.h
+++ b/libc/kernel/uapi/linux/openat2.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_OPENAT2_H
 #define _UAPI_LINUX_OPENAT2_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/openvswitch.h b/libc/kernel/uapi/linux/openvswitch.h
index 0226e93..98c8037 100644
--- a/libc/kernel/uapi/linux/openvswitch.h
+++ b/libc/kernel/uapi/linux/openvswitch.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI__LINUX_OPENVSWITCH_H
 #define _UAPI__LINUX_OPENVSWITCH_H 1
 #include <linux/types.h>
@@ -396,6 +384,7 @@
 };
 enum ovs_hash_alg {
   OVS_HASH_ALG_L4,
+  OVS_HASH_ALG_SYM_L4,
 };
 struct ovs_action_hash {
   __u32 hash_alg;
@@ -440,6 +429,13 @@
   __OVS_CHECK_PKT_LEN_ATTR_MAX,
 };
 #define OVS_CHECK_PKT_LEN_ATTR_MAX (__OVS_CHECK_PKT_LEN_ATTR_MAX - 1)
+#define OVS_PSAMPLE_COOKIE_MAX_SIZE 16
+enum ovs_psample_attr {
+  OVS_PSAMPLE_ATTR_GROUP = 1,
+  OVS_PSAMPLE_ATTR_COOKIE,
+  __OVS_PSAMPLE_ATTR_MAX
+};
+#define OVS_PSAMPLE_ATTR_MAX (__OVS_PSAMPLE_ATTR_MAX - 1)
 enum ovs_action_attr {
   OVS_ACTION_ATTR_UNSPEC,
   OVS_ACTION_ATTR_OUTPUT,
@@ -465,6 +461,8 @@
   OVS_ACTION_ATTR_CHECK_PKT_LEN,
   OVS_ACTION_ATTR_ADD_MPLS,
   OVS_ACTION_ATTR_DEC_TTL,
+  OVS_ACTION_ATTR_DROP,
+  OVS_ACTION_ATTR_PSAMPLE,
   __OVS_ACTION_ATTR_MAX,
 };
 #define OVS_ACTION_ATTR_MAX (__OVS_ACTION_ATTR_MAX - 1)
diff --git a/libc/kernel/uapi/linux/packet_diag.h b/libc/kernel/uapi/linux/packet_diag.h
index 35d5413..1d7ef4a 100644
--- a/libc/kernel/uapi/linux/packet_diag.h
+++ b/libc/kernel/uapi/linux/packet_diag.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __PACKET_DIAG_H__
 #define __PACKET_DIAG_H__
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/papr_pdsm.h b/libc/kernel/uapi/linux/papr_pdsm.h
new file mode 100644
index 0000000..f466caa
--- /dev/null
+++ b/libc/kernel/uapi/linux/papr_pdsm.h
@@ -0,0 +1,64 @@
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
+#ifndef _UAPI_ASM_POWERPC_PAPR_PDSM_H_
+#define _UAPI_ASM_POWERPC_PAPR_PDSM_H_
+#include <linux/types.h>
+#include <linux/ndctl.h>
+#define ND_PDSM_PAYLOAD_MAX_SIZE 184
+#define ND_PDSM_HDR_SIZE (sizeof(struct nd_pkg_pdsm) - ND_PDSM_PAYLOAD_MAX_SIZE)
+#define PAPR_PDSM_DIMM_HEALTHY 0
+#define PAPR_PDSM_DIMM_UNHEALTHY 1
+#define PAPR_PDSM_DIMM_CRITICAL 2
+#define PAPR_PDSM_DIMM_FATAL 3
+#define PDSM_DIMM_HEALTH_RUN_GAUGE_VALID 1
+#define PDSM_DIMM_DSC_VALID 2
+struct nd_papr_pdsm_health {
+  union {
+    struct {
+      __u32 extension_flags;
+      __u8 dimm_unarmed;
+      __u8 dimm_bad_shutdown;
+      __u8 dimm_bad_restore;
+      __u8 dimm_scrubbed;
+      __u8 dimm_locked;
+      __u8 dimm_encrypted;
+      __u16 dimm_health;
+      __u16 dimm_fuel_gauge;
+      __u64 dimm_dsc;
+    };
+    __u8 buf[ND_PDSM_PAYLOAD_MAX_SIZE];
+  };
+};
+#define PDSM_SMART_INJECT_HEALTH_FATAL (1 << 0)
+#define PDSM_SMART_INJECT_BAD_SHUTDOWN (1 << 1)
+struct nd_papr_pdsm_smart_inject {
+  union {
+    struct {
+      __u32 flags;
+      __u8 fatal_enable;
+      __u8 unsafe_shutdown_enable;
+    };
+    __u8 buf[ND_PDSM_PAYLOAD_MAX_SIZE];
+  };
+};
+enum papr_pdsm {
+  PAPR_PDSM_MIN = 0x0,
+  PAPR_PDSM_HEALTH,
+  PAPR_PDSM_SMART_INJECT,
+  PAPR_PDSM_MAX,
+};
+union nd_pdsm_payload {
+  struct nd_papr_pdsm_health health;
+  struct nd_papr_pdsm_smart_inject smart_inject;
+  __u8 buf[ND_PDSM_PAYLOAD_MAX_SIZE];
+} __attribute__((__packed__));
+struct nd_pkg_pdsm {
+  __s32 cmd_status;
+  __u16 reserved[2];
+  union nd_pdsm_payload payload;
+} __attribute__((__packed__));
+#endif
diff --git a/libc/kernel/uapi/linux/param.h b/libc/kernel/uapi/linux/param.h
index be5bb63..5f89b3a 100644
--- a/libc/kernel/uapi/linux/param.h
+++ b/libc/kernel/uapi/linux/param.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _LINUX_PARAM_H
 #define _LINUX_PARAM_H
 #include <asm/param.h>
diff --git a/libc/kernel/uapi/linux/parport.h b/libc/kernel/uapi/linux/parport.h
index 8152224..6fa9766 100644
--- a/libc/kernel/uapi/linux/parport.h
+++ b/libc/kernel/uapi/linux/parport.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_PARPORT_H_
 #define _UAPI_PARPORT_H_
 #define PARPORT_MAX 16
@@ -75,4 +63,7 @@
 #define IEEE1284_DATA 0
 #define PARPORT_EPP_FAST (1 << 0)
 #define PARPORT_W91284PIC (1 << 1)
+#define PARPORT_EPP_FAST_32 PARPORT_EPP_FAST
+#define PARPORT_EPP_FAST_16 (1 << 2)
+#define PARPORT_EPP_FAST_8 (1 << 3)
 #endif
diff --git a/libc/kernel/uapi/linux/patchkey.h b/libc/kernel/uapi/linux/patchkey.h
index 12c2731..bea7149 100644
--- a/libc/kernel/uapi/linux/patchkey.h
+++ b/libc/kernel/uapi/linux/patchkey.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _LINUX_PATCHKEY_H_INDIRECT
 #error "patchkey.h included directly"
 #endif
diff --git a/libc/kernel/uapi/linux/pci.h b/libc/kernel/uapi/linux/pci.h
index 14a68e4..d318126 100644
--- a/libc/kernel/uapi/linux/pci.h
+++ b/libc/kernel/uapi/linux/pci.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPILINUX_PCI_H
 #define _UAPILINUX_PCI_H
 #include <linux/pci_regs.h>
diff --git a/libc/kernel/uapi/linux/pci_regs.h b/libc/kernel/uapi/linux/pci_regs.h
index f932c18..703d398 100644
--- a/libc/kernel/uapi/linux/pci_regs.h
+++ b/libc/kernel/uapi/linux/pci_regs.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef LINUX_PCI_REGS_H
 #define LINUX_PCI_REGS_H
 #define PCI_CFG_SPACE_SIZE 256
@@ -64,6 +52,7 @@
 #define PCI_HEADER_TYPE_NORMAL 0
 #define PCI_HEADER_TYPE_BRIDGE 1
 #define PCI_HEADER_TYPE_CARDBUS 2
+#define PCI_HEADER_TYPE_MFD 0x80
 #define PCI_BIST 0x0f
 #define PCI_BIST_CODE_MASK 0x0f
 #define PCI_BIST_START 0x40
@@ -546,6 +535,7 @@
 #define PCI_EXP_RTCAP 0x1e
 #define PCI_EXP_RTCAP_CRSVIS 0x0001
 #define PCI_EXP_RTSTA 0x20
+#define PCI_EXP_RTSTA_PME_RQ_ID 0x0000ffff
 #define PCI_EXP_RTSTA_PME 0x00010000
 #define PCI_EXP_RTSTA_PENDING 0x00020000
 #define PCI_EXP_DEVCAP2 0x24
@@ -594,6 +584,7 @@
 #define PCI_EXP_LNKCTL2_TX_MARGIN 0x0380
 #define PCI_EXP_LNKCTL2_HASD 0x0020
 #define PCI_EXP_LNKSTA2 0x32
+#define PCI_EXP_LNKSTA2_FLIT 0x0400
 #define PCI_CAP_EXP_ENDPOINT_SIZEOF_V2 0x32
 #define PCI_EXP_SLTCAP2 0x34
 #define PCI_EXP_SLTCAP2_IBPD 0x00000001
@@ -635,6 +626,7 @@
 #define PCI_EXT_CAP_ID_DVSEC 0x23
 #define PCI_EXT_CAP_ID_DLF 0x25
 #define PCI_EXT_CAP_ID_PL_16GT 0x26
+#define PCI_EXT_CAP_ID_PL_32GT 0x2A
 #define PCI_EXT_CAP_ID_DOE 0x2E
 #define PCI_EXT_CAP_ID_MAX PCI_EXT_CAP_ID_DOE
 #define PCI_EXT_CAP_DSN_SIZEOF 12
@@ -794,12 +786,13 @@
 #define PCI_PRI_ALLOC_REQ 0x0c
 #define PCI_EXT_CAP_PRI_SIZEOF 16
 #define PCI_PASID_CAP 0x04
-#define PCI_PASID_CAP_EXEC 0x02
-#define PCI_PASID_CAP_PRIV 0x04
+#define PCI_PASID_CAP_EXEC 0x0002
+#define PCI_PASID_CAP_PRIV 0x0004
+#define PCI_PASID_CAP_WIDTH 0x1f00
 #define PCI_PASID_CTRL 0x06
-#define PCI_PASID_CTRL_ENABLE 0x01
-#define PCI_PASID_CTRL_EXEC 0x02
-#define PCI_PASID_CTRL_PRIV 0x04
+#define PCI_PASID_CTRL_ENABLE 0x0001
+#define PCI_PASID_CTRL_EXEC 0x0002
+#define PCI_PASID_CTRL_PRIV 0x0004
 #define PCI_EXT_CAP_PASID_SIZEOF 8
 #define PCI_SRIOV_CAP 0x04
 #define PCI_SRIOV_CAP_VFM 0x00000001
@@ -836,6 +829,8 @@
 #define PCI_LTR_VALUE_MASK 0x000003ff
 #define PCI_LTR_SCALE_MASK 0x00001c00
 #define PCI_LTR_SCALE_SHIFT 10
+#define PCI_LTR_NOSNOOP_VALUE 0x03ff0000
+#define PCI_LTR_NOSNOOP_SCALE 0x1c000000
 #define PCI_EXT_CAP_LTR_SIZEOF 8
 #define PCI_ACS_CAP 0x04
 #define PCI_ACS_SV 0x0001
@@ -888,9 +883,16 @@
 #define PCI_EXP_DPC_STATUS 0x08
 #define PCI_EXP_DPC_STATUS_TRIGGER 0x0001
 #define PCI_EXP_DPC_STATUS_TRIGGER_RSN 0x0006
+#define PCI_EXP_DPC_STATUS_TRIGGER_RSN_UNCOR 0x0000
+#define PCI_EXP_DPC_STATUS_TRIGGER_RSN_NFE 0x0002
+#define PCI_EXP_DPC_STATUS_TRIGGER_RSN_FE 0x0004
+#define PCI_EXP_DPC_STATUS_TRIGGER_RSN_IN_EXT 0x0006
 #define PCI_EXP_DPC_STATUS_INTERRUPT 0x0008
 #define PCI_EXP_DPC_RP_BUSY 0x0010
 #define PCI_EXP_DPC_STATUS_TRIGGER_RSN_EXT 0x0060
+#define PCI_EXP_DPC_STATUS_TRIGGER_RSN_RP_PIO 0x0000
+#define PCI_EXP_DPC_STATUS_TRIGGER_RSN_SW_TRIGGER 0x0020
+#define PCI_EXP_DPC_RP_PIO_FEP 0x1f00
 #define PCI_EXP_DPC_SOURCE_ID 0x0A
 #define PCI_EXP_DPC_RP_PIO_STATUS 0x0C
 #define PCI_EXP_DPC_RP_PIO_MASK 0x10
@@ -928,6 +930,8 @@
 #define PCI_L1SS_CTL1_LTR_L12_TH_VALUE 0x03ff0000
 #define PCI_L1SS_CTL1_LTR_L12_TH_SCALE 0xe0000000
 #define PCI_L1SS_CTL2 0x0c
+#define PCI_L1SS_CTL2_T_PWR_ON_SCALE 0x00000003
+#define PCI_L1SS_CTL2_T_PWR_ON_VALUE 0x000000f8
 #define PCI_DVSEC_HEADER1 0x4
 #define PCI_DVSEC_HEADER1_VID(x) ((x) & 0xffff)
 #define PCI_DVSEC_HEADER1_REV(x) (((x) >> 16) & 0xf)
@@ -959,7 +963,11 @@
 #define PCI_DOE_DATA_OBJECT_HEADER_1_TYPE 0x00ff0000
 #define PCI_DOE_DATA_OBJECT_HEADER_2_LENGTH 0x0003ffff
 #define PCI_DOE_DATA_OBJECT_DISC_REQ_3_INDEX 0x000000ff
+#define PCI_DOE_DATA_OBJECT_DISC_REQ_3_VER 0x0000ff00
 #define PCI_DOE_DATA_OBJECT_DISC_RSP_3_VID 0x0000ffff
 #define PCI_DOE_DATA_OBJECT_DISC_RSP_3_PROTOCOL 0x00ff0000
 #define PCI_DOE_DATA_OBJECT_DISC_RSP_3_NEXT_INDEX 0xff000000
+#define PCI_DVSEC_CXL_PORT 3
+#define PCI_DVSEC_CXL_PORT_CTL 0x0c
+#define PCI_DVSEC_CXL_PORT_CTL_UNMASK_SBR 0x00000001
 #endif
diff --git a/libc/kernel/uapi/linux/pcitest.h b/libc/kernel/uapi/linux/pcitest.h
index 98248bd..38e498d 100644
--- a/libc/kernel/uapi/linux/pcitest.h
+++ b/libc/kernel/uapi/linux/pcitest.h
@@ -1,25 +1,14 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __UAPI_LINUX_PCITEST_H
 #define __UAPI_LINUX_PCITEST_H
 #define PCITEST_BAR _IO('P', 0x1)
-#define PCITEST_LEGACY_IRQ _IO('P', 0x2)
+#define PCITEST_INTX_IRQ _IO('P', 0x2)
+#define PCITEST_LEGACY_IRQ PCITEST_INTX_IRQ
 #define PCITEST_MSI _IOW('P', 0x3, int)
 #define PCITEST_WRITE _IOW('P', 0x4, unsigned long)
 #define PCITEST_READ _IOW('P', 0x5, unsigned long)
diff --git a/libc/kernel/uapi/linux/perf_event.h b/libc/kernel/uapi/linux/perf_event.h
index 8f081ed..ec9b856 100644
--- a/libc/kernel/uapi/linux/perf_event.h
+++ b/libc/kernel/uapi/linux/perf_event.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_PERF_EVENT_H
 #define _UAPI_LINUX_PERF_EVENT_H
 #include <linux/types.h>
@@ -130,6 +118,7 @@
   PERF_SAMPLE_BRANCH_TYPE_SAVE_SHIFT = 16,
   PERF_SAMPLE_BRANCH_HW_INDEX_SHIFT = 17,
   PERF_SAMPLE_BRANCH_PRIV_SAVE_SHIFT = 18,
+  PERF_SAMPLE_BRANCH_COUNTERS_SHIFT = 19,
   PERF_SAMPLE_BRANCH_MAX_SHIFT
 };
 enum perf_branch_sample_type {
@@ -152,6 +141,7 @@
   PERF_SAMPLE_BRANCH_TYPE_SAVE = 1U << PERF_SAMPLE_BRANCH_TYPE_SAVE_SHIFT,
   PERF_SAMPLE_BRANCH_HW_INDEX = 1U << PERF_SAMPLE_BRANCH_HW_INDEX_SHIFT,
   PERF_SAMPLE_BRANCH_PRIV_SAVE = 1U << PERF_SAMPLE_BRANCH_PRIV_SAVE_SHIFT,
+  PERF_SAMPLE_BRANCH_COUNTERS = 1U << PERF_SAMPLE_BRANCH_COUNTERS_SHIFT,
   PERF_SAMPLE_BRANCH_MAX = 1U << PERF_SAMPLE_BRANCH_MAX_SHIFT,
 };
 enum {
@@ -237,6 +227,7 @@
 #define PERF_ATTR_SIZE_VER5 112
 #define PERF_ATTR_SIZE_VER6 120
 #define PERF_ATTR_SIZE_VER7 128
+#define PERF_ATTR_SIZE_VER8 136
 struct perf_event_attr {
   __u32 type;
   __u32 size;
@@ -276,6 +267,7 @@
   __u32 aux_sample_size;
   __u32 __reserved_3;
   __u64 sig_data;
+  __u64 config3;
 };
 struct perf_event_query_bpf {
   __u32 ids_len;
@@ -468,6 +460,9 @@
 #define PERF_MEM_LVLNUM_L2 0x02
 #define PERF_MEM_LVLNUM_L3 0x03
 #define PERF_MEM_LVLNUM_L4 0x04
+#define PERF_MEM_LVLNUM_L2_MHB 0x05
+#define PERF_MEM_LVLNUM_MSC 0x06
+#define PERF_MEM_LVLNUM_UNC 0x08
 #define PERF_MEM_LVLNUM_CXL 0x09
 #define PERF_MEM_LVLNUM_IO 0x0a
 #define PERF_MEM_LVLNUM_ANY_CACHE 0x0b
@@ -511,6 +506,7 @@
   __u64 to;
   __u64 mispred : 1, predicted : 1, in_tx : 1, abort : 1, cycles : 16, type : 4, spec : 2, new_type : 4, priv : 3, reserved : 31;
 };
+#define PERF_BRANCH_ENTRY_INFO_BITS_MAX 33
 union perf_sample_weight {
   __u64 full;
 #ifdef __LITTLE_ENDIAN_BITFIELD
diff --git a/libc/kernel/uapi/linux/personality.h b/libc/kernel/uapi/linux/personality.h
index 1db5026..27424de 100644
--- a/libc/kernel/uapi/linux/personality.h
+++ b/libc/kernel/uapi/linux/personality.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_PERSONALITY_H
 #define _UAPI_LINUX_PERSONALITY_H
 enum {
diff --git a/libc/kernel/uapi/linux/pfkeyv2.h b/libc/kernel/uapi/linux/pfkeyv2.h
index d1e5486..f5e6d22 100644
--- a/libc/kernel/uapi/linux/pfkeyv2.h
+++ b/libc/kernel/uapi/linux/pfkeyv2.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _LINUX_PFKEY2_H
 #define _LINUX_PFKEY2_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/pfrut.h b/libc/kernel/uapi/linux/pfrut.h
index 14f713f..2bb7058 100644
--- a/libc/kernel/uapi/linux/pfrut.h
+++ b/libc/kernel/uapi/linux/pfrut.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __PFRUT_H__
 #define __PFRUT_H__
 #include <linux/ioctl.h>
diff --git a/libc/kernel/uapi/linux/pg.h b/libc/kernel/uapi/linux/pg.h
index dd52282..6128ab8 100644
--- a/libc/kernel/uapi/linux/pg.h
+++ b/libc/kernel/uapi/linux/pg.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_PG_H
 #define _UAPI_LINUX_PG_H
 #define PG_MAGIC 'P'
diff --git a/libc/kernel/uapi/linux/phantom.h b/libc/kernel/uapi/linux/phantom.h
index 2016cc5..596e43b 100644
--- a/libc/kernel/uapi/linux/phantom.h
+++ b/libc/kernel/uapi/linux/phantom.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __PHANTOM_H
 #define __PHANTOM_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/phonet.h b/libc/kernel/uapi/linux/phonet.h
index 8134016..a98105f 100644
--- a/libc/kernel/uapi/linux/phonet.h
+++ b/libc/kernel/uapi/linux/phonet.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPILINUX_PHONET_H
 #define _UAPILINUX_PHONET_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/pidfd.h b/libc/kernel/uapi/linux/pidfd.h
index cd60118..9068727 100644
--- a/libc/kernel/uapi/linux/pidfd.h
+++ b/libc/kernel/uapi/linux/pidfd.h
@@ -1,24 +1,28 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_PIDFD_H
 #define _UAPI_LINUX_PIDFD_H
 #include <linux/types.h>
 #include <linux/fcntl.h>
+#include <linux/ioctl.h>
 #define PIDFD_NONBLOCK O_NONBLOCK
+#define PIDFD_THREAD O_EXCL
+#define PIDFD_SIGNAL_THREAD (1UL << 0)
+#define PIDFD_SIGNAL_THREAD_GROUP (1UL << 1)
+#define PIDFD_SIGNAL_PROCESS_GROUP (1UL << 2)
+#define PIDFS_IOCTL_MAGIC 0xFF
+#define PIDFD_GET_CGROUP_NAMESPACE _IO(PIDFS_IOCTL_MAGIC, 1)
+#define PIDFD_GET_IPC_NAMESPACE _IO(PIDFS_IOCTL_MAGIC, 2)
+#define PIDFD_GET_MNT_NAMESPACE _IO(PIDFS_IOCTL_MAGIC, 3)
+#define PIDFD_GET_NET_NAMESPACE _IO(PIDFS_IOCTL_MAGIC, 4)
+#define PIDFD_GET_PID_NAMESPACE _IO(PIDFS_IOCTL_MAGIC, 5)
+#define PIDFD_GET_PID_FOR_CHILDREN_NAMESPACE _IO(PIDFS_IOCTL_MAGIC, 6)
+#define PIDFD_GET_TIME_NAMESPACE _IO(PIDFS_IOCTL_MAGIC, 7)
+#define PIDFD_GET_TIME_FOR_CHILDREN_NAMESPACE _IO(PIDFS_IOCTL_MAGIC, 8)
+#define PIDFD_GET_USER_NAMESPACE _IO(PIDFS_IOCTL_MAGIC, 9)
+#define PIDFD_GET_UTS_NAMESPACE _IO(PIDFS_IOCTL_MAGIC, 10)
 #endif
diff --git a/libc/kernel/uapi/linux/pkt_cls.h b/libc/kernel/uapi/linux/pkt_cls.h
index 876cb73..bdca553 100644
--- a/libc/kernel/uapi/linux/pkt_cls.h
+++ b/libc/kernel/uapi/linux/pkt_cls.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __LINUX_PKT_CLS_H
 #define __LINUX_PKT_CLS_H
 #include <linux/types.h>
@@ -217,30 +205,6 @@
 #define TC_U32_EAT 8
 #define TC_U32_MAXDEPTH 8
 enum {
-  TCA_RSVP_UNSPEC,
-  TCA_RSVP_CLASSID,
-  TCA_RSVP_DST,
-  TCA_RSVP_SRC,
-  TCA_RSVP_PINFO,
-  TCA_RSVP_POLICE,
-  TCA_RSVP_ACT,
-  __TCA_RSVP_MAX
-};
-#define TCA_RSVP_MAX (__TCA_RSVP_MAX - 1)
-struct tc_rsvp_gpi {
-  __u32 key;
-  __u32 mask;
-  int offset;
-};
-struct tc_rsvp_pinfo {
-  struct tc_rsvp_gpi dpi;
-  struct tc_rsvp_gpi spi;
-  __u8 protocol;
-  __u8 tunnelid;
-  __u8 tunnelhdr;
-  __u8 pad;
-};
-enum {
   TCA_ROUTE4_UNSPEC,
   TCA_ROUTE4_CLASSID,
   TCA_ROUTE4_TO,
@@ -262,18 +226,6 @@
 };
 #define TCA_FW_MAX (__TCA_FW_MAX - 1)
 enum {
-  TCA_TCINDEX_UNSPEC,
-  TCA_TCINDEX_HASH,
-  TCA_TCINDEX_MASK,
-  TCA_TCINDEX_SHIFT,
-  TCA_TCINDEX_FALL_THROUGH,
-  TCA_TCINDEX_CLASSID,
-  TCA_TCINDEX_POLICE,
-  TCA_TCINDEX_ACT,
-  __TCA_TCINDEX_MAX
-};
-#define TCA_TCINDEX_MAX (__TCA_TCINDEX_MAX - 1)
-enum {
   FLOW_KEY_SRC,
   FLOW_KEY_DST,
   FLOW_KEY_PROTO,
@@ -463,6 +415,12 @@
   TCA_FLOWER_KEY_PPPOE_SID,
   TCA_FLOWER_KEY_PPP_PROTO,
   TCA_FLOWER_KEY_L2TPV3_SID,
+  TCA_FLOWER_L2_MISS,
+  TCA_FLOWER_KEY_CFM,
+  TCA_FLOWER_KEY_SPI,
+  TCA_FLOWER_KEY_SPI_MASK,
+  TCA_FLOWER_KEY_ENC_FLAGS,
+  TCA_FLOWER_KEY_ENC_FLAGS_MASK,
   __TCA_FLOWER_MAX,
 };
 #define TCA_FLOWER_MAX (__TCA_FLOWER_MAX - 1)
@@ -481,6 +439,7 @@
   TCA_FLOWER_KEY_ENC_OPTS_VXLAN,
   TCA_FLOWER_KEY_ENC_OPTS_ERSPAN,
   TCA_FLOWER_KEY_ENC_OPTS_GTP,
+  TCA_FLOWER_KEY_ENC_OPTS_PFCP,
   __TCA_FLOWER_KEY_ENC_OPTS_MAX,
 };
 #define TCA_FLOWER_KEY_ENC_OPTS_MAX (__TCA_FLOWER_KEY_ENC_OPTS_MAX - 1)
@@ -515,6 +474,13 @@
 };
 #define TCA_FLOWER_KEY_ENC_OPT_GTP_MAX (__TCA_FLOWER_KEY_ENC_OPT_GTP_MAX - 1)
 enum {
+  TCA_FLOWER_KEY_ENC_OPT_PFCP_UNSPEC,
+  TCA_FLOWER_KEY_ENC_OPT_PFCP_TYPE,
+  TCA_FLOWER_KEY_ENC_OPT_PFCP_SEID,
+  __TCA_FLOWER_KEY_ENC_OPT_PFCP_MAX,
+};
+#define TCA_FLOWER_KEY_ENC_OPT_PFCP_MAX (__TCA_FLOWER_KEY_ENC_OPT_PFCP_MAX - 1)
+enum {
   TCA_FLOWER_KEY_MPLS_OPTS_UNSPEC,
   TCA_FLOWER_KEY_MPLS_OPTS_LSE,
   __TCA_FLOWER_KEY_MPLS_OPTS_MAX,
@@ -533,7 +499,20 @@
 enum {
   TCA_FLOWER_KEY_FLAGS_IS_FRAGMENT = (1 << 0),
   TCA_FLOWER_KEY_FLAGS_FRAG_IS_FIRST = (1 << 1),
+  TCA_FLOWER_KEY_FLAGS_TUNNEL_CSUM = (1 << 2),
+  TCA_FLOWER_KEY_FLAGS_TUNNEL_DONT_FRAGMENT = (1 << 3),
+  TCA_FLOWER_KEY_FLAGS_TUNNEL_OAM = (1 << 4),
+  TCA_FLOWER_KEY_FLAGS_TUNNEL_CRIT_OPT = (1 << 5),
+  __TCA_FLOWER_KEY_FLAGS_MAX,
 };
+#define TCA_FLOWER_KEY_FLAGS_MAX (__TCA_FLOWER_KEY_FLAGS_MAX - 1)
+enum {
+  TCA_FLOWER_KEY_CFM_OPT_UNSPEC,
+  TCA_FLOWER_KEY_CFM_MD_LEVEL,
+  TCA_FLOWER_KEY_CFM_OPCODE,
+  __TCA_FLOWER_KEY_CFM_OPT_MAX,
+};
+#define TCA_FLOWER_KEY_CFM_OPT_MAX (__TCA_FLOWER_KEY_CFM_OPT_MAX - 1)
 #define TCA_FLOWER_MASK_FLAGS_RANGE (1 << 0)
 struct tc_matchall_pcnt {
   __u64 rhit;
diff --git a/libc/kernel/uapi/linux/pkt_sched.h b/libc/kernel/uapi/linux/pkt_sched.h
index c31b8bb..c3488c2 100644
--- a/libc/kernel/uapi/linux/pkt_sched.h
+++ b/libc/kernel/uapi/linux/pkt_sched.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __LINUX_PKT_SCHED_H
 #define __LINUX_PKT_SCHED_H
 #include <linux/const.h>
@@ -339,95 +327,6 @@
   __TCA_HFSC_MAX,
 };
 #define TCA_HFSC_MAX (__TCA_HFSC_MAX - 1)
-#define TC_CBQ_MAXPRIO 8
-#define TC_CBQ_MAXLEVEL 8
-#define TC_CBQ_DEF_EWMA 5
-struct tc_cbq_lssopt {
-  unsigned char change;
-  unsigned char flags;
-#define TCF_CBQ_LSS_BOUNDED 1
-#define TCF_CBQ_LSS_ISOLATED 2
-  unsigned char ewma_log;
-  unsigned char level;
-#define TCF_CBQ_LSS_FLAGS 1
-#define TCF_CBQ_LSS_EWMA 2
-#define TCF_CBQ_LSS_MAXIDLE 4
-#define TCF_CBQ_LSS_MINIDLE 8
-#define TCF_CBQ_LSS_OFFTIME 0x10
-#define TCF_CBQ_LSS_AVPKT 0x20
-  __u32 maxidle;
-  __u32 minidle;
-  __u32 offtime;
-  __u32 avpkt;
-};
-struct tc_cbq_wrropt {
-  unsigned char flags;
-  unsigned char priority;
-  unsigned char cpriority;
-  unsigned char __reserved;
-  __u32 allot;
-  __u32 weight;
-};
-struct tc_cbq_ovl {
-  unsigned char strategy;
-#define TC_CBQ_OVL_CLASSIC 0
-#define TC_CBQ_OVL_DELAY 1
-#define TC_CBQ_OVL_LOWPRIO 2
-#define TC_CBQ_OVL_DROP 3
-#define TC_CBQ_OVL_RCLASSIC 4
-  unsigned char priority2;
-  __u16 pad;
-  __u32 penalty;
-};
-struct tc_cbq_police {
-  unsigned char police;
-  unsigned char __res1;
-  unsigned short __res2;
-};
-struct tc_cbq_fopt {
-  __u32 split;
-  __u32 defmap;
-  __u32 defchange;
-};
-struct tc_cbq_xstats {
-  __u32 borrows;
-  __u32 overactions;
-  __s32 avgidle;
-  __s32 undertime;
-};
-enum {
-  TCA_CBQ_UNSPEC,
-  TCA_CBQ_LSSOPT,
-  TCA_CBQ_WRROPT,
-  TCA_CBQ_FOPT,
-  TCA_CBQ_OVL_STRATEGY,
-  TCA_CBQ_RATE,
-  TCA_CBQ_RTAB,
-  TCA_CBQ_POLICE,
-  __TCA_CBQ_MAX,
-};
-#define TCA_CBQ_MAX (__TCA_CBQ_MAX - 1)
-enum {
-  TCA_DSMARK_UNSPEC,
-  TCA_DSMARK_INDICES,
-  TCA_DSMARK_DEFAULT_INDEX,
-  TCA_DSMARK_SET_TC_INDEX,
-  TCA_DSMARK_MASK,
-  TCA_DSMARK_VALUE,
-  __TCA_DSMARK_MAX,
-};
-#define TCA_DSMARK_MAX (__TCA_DSMARK_MAX - 1)
-enum {
-  TCA_ATM_UNSPEC,
-  TCA_ATM_FD,
-  TCA_ATM_PTR,
-  TCA_ATM_HDR,
-  TCA_ATM_EXCESS,
-  TCA_ATM_ADDR,
-  TCA_ATM_STATE,
-  __TCA_ATM_MAX,
-};
-#define TCA_ATM_MAX (__TCA_ATM_MAX - 1)
 enum {
   TCA_NETEM_UNSPEC,
   TCA_NETEM_CORR,
@@ -443,6 +342,7 @@
   TCA_NETEM_JITTER64,
   TCA_NETEM_SLOT,
   TCA_NETEM_SLOT_DIST,
+  TCA_NETEM_PRNG_SEED,
   __TCA_NETEM_MAX,
 };
 #define TCA_NETEM_MAX (__TCA_NETEM_MAX - 1)
@@ -532,6 +432,10 @@
   __TC_MQPRIO_SHAPER_MAX
 };
 #define __TC_MQPRIO_SHAPER_MAX (__TC_MQPRIO_SHAPER_MAX - 1)
+enum {
+  TC_FP_EXPRESS = 1,
+  TC_FP_PREEMPTIBLE = 2,
+};
 struct tc_mqprio_qopt {
   __u8 num_tc;
   __u8 prio_tc_map[TC_QOPT_BITMASK + 1];
@@ -544,11 +448,19 @@
 #define TC_MQPRIO_F_MIN_RATE 0x4
 #define TC_MQPRIO_F_MAX_RATE 0x8
 enum {
+  TCA_MQPRIO_TC_ENTRY_UNSPEC,
+  TCA_MQPRIO_TC_ENTRY_INDEX,
+  TCA_MQPRIO_TC_ENTRY_FP,
+  __TCA_MQPRIO_TC_ENTRY_CNT,
+  TCA_MQPRIO_TC_ENTRY_MAX = (__TCA_MQPRIO_TC_ENTRY_CNT - 1)
+};
+enum {
   TCA_MQPRIO_UNSPEC,
   TCA_MQPRIO_MODE,
   TCA_MQPRIO_SHAPER,
   TCA_MQPRIO_MIN_RATE64,
   TCA_MQPRIO_MAX_RATE64,
+  TCA_MQPRIO_TC_ENTRY,
   __TCA_MQPRIO_MAX,
 };
 #define TCA_MQPRIO_MAX (__TCA_MQPRIO_MAX - 1)
@@ -677,9 +589,13 @@
   TCA_FQ_TIMER_SLACK,
   TCA_FQ_HORIZON,
   TCA_FQ_HORIZON_DROP,
+  TCA_FQ_PRIOMAP,
+  TCA_FQ_WEIGHTS,
   __TCA_FQ_MAX
 };
 #define TCA_FQ_MAX (__TCA_FQ_MAX - 1)
+#define FQ_BANDS 3
+#define FQ_MIN_WEIGHT 16384
 struct tc_fq_qd_stats {
   __u64 gc_flows;
   __u64 highprio_packets;
@@ -696,6 +612,10 @@
   __u64 ce_mark;
   __u64 horizon_drops;
   __u64 horizon_caps;
+  __u64 fastpath_packets;
+  __u64 band_drops[FQ_BANDS];
+  __u32 band_pkt_count[FQ_BANDS];
+  __u32 pad;
 };
 enum {
   TCA_HHF_UNSPEC,
@@ -927,10 +847,18 @@
   TCA_TAPRIO_TC_ENTRY_UNSPEC,
   TCA_TAPRIO_TC_ENTRY_INDEX,
   TCA_TAPRIO_TC_ENTRY_MAX_SDU,
+  TCA_TAPRIO_TC_ENTRY_FP,
   __TCA_TAPRIO_TC_ENTRY_CNT,
   TCA_TAPRIO_TC_ENTRY_MAX = (__TCA_TAPRIO_TC_ENTRY_CNT - 1)
 };
 enum {
+  TCA_TAPRIO_OFFLOAD_STATS_PAD = 1,
+  TCA_TAPRIO_OFFLOAD_STATS_WINDOW_DROPS,
+  TCA_TAPRIO_OFFLOAD_STATS_TX_OVERRUNS,
+  __TCA_TAPRIO_OFFLOAD_STATS_CNT,
+  TCA_TAPRIO_OFFLOAD_STATS_MAX = (__TCA_TAPRIO_OFFLOAD_STATS_CNT - 1)
+};
+enum {
   TCA_TAPRIO_ATTR_UNSPEC,
   TCA_TAPRIO_ATTR_PRIOMAP,
   TCA_TAPRIO_ATTR_SCHED_ENTRY_LIST,
diff --git a/libc/kernel/uapi/linux/pktcdvd.h b/libc/kernel/uapi/linux/pktcdvd.h
index eed22f8..cd2b0df 100644
--- a/libc/kernel/uapi/linux/pktcdvd.h
+++ b/libc/kernel/uapi/linux/pktcdvd.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI__PKTCDVD_H
 #define _UAPI__PKTCDVD_H
 #include <linux/types.h>
@@ -23,7 +11,6 @@
 #define MAX_WRITERS 8
 #define PKT_RB_POOL_SIZE 512
 #define PACKET_WAIT_TIME (HZ * 5 / 1000)
-#define USE_WCACHING 0
 #define PACKET_CDR 1
 #define PACKET_CDRW 2
 #define PACKET_DVDR 3
diff --git a/libc/kernel/uapi/linux/pmu.h b/libc/kernel/uapi/linux/pmu.h
index d3d08b0..d3c52b6 100644
--- a/libc/kernel/uapi/linux/pmu.h
+++ b/libc/kernel/uapi/linux/pmu.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_PMU_H
 #define _UAPI_LINUX_PMU_H
 #define PMU_DRIVER_VERSION 2
diff --git a/libc/kernel/uapi/linux/poll.h b/libc/kernel/uapi/linux/poll.h
index cd542e6..0572c8e 100644
--- a/libc/kernel/uapi/linux/poll.h
+++ b/libc/kernel/uapi/linux/poll.h
@@ -1,19 +1,7 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #include <asm/poll.h>
diff --git a/libc/kernel/uapi/linux/posix_acl.h b/libc/kernel/uapi/linux/posix_acl.h
index 96c302a..865c224 100644
--- a/libc/kernel/uapi/linux/posix_acl.h
+++ b/libc/kernel/uapi/linux/posix_acl.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __UAPI_POSIX_ACL_H
 #define __UAPI_POSIX_ACL_H
 #define ACL_UNDEFINED_ID (- 1)
diff --git a/libc/kernel/uapi/linux/posix_acl_xattr.h b/libc/kernel/uapi/linux/posix_acl_xattr.h
index c66bfa7..3901ca6 100644
--- a/libc/kernel/uapi/linux/posix_acl_xattr.h
+++ b/libc/kernel/uapi/linux/posix_acl_xattr.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __UAPI_POSIX_ACL_XATTR_H
 #define __UAPI_POSIX_ACL_XATTR_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/posix_types.h b/libc/kernel/uapi/linux/posix_types.h
index 19fdf48..b21f63f 100644
--- a/libc/kernel/uapi/linux/posix_types.h
+++ b/libc/kernel/uapi/linux/posix_types.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _LINUX_POSIX_TYPES_H
 #define _LINUX_POSIX_TYPES_H
 #include <linux/stddef.h>
diff --git a/libc/kernel/uapi/linux/ppdev.h b/libc/kernel/uapi/linux/ppdev.h
index 450d6fd..a4265bf 100644
--- a/libc/kernel/uapi/linux/ppdev.h
+++ b/libc/kernel/uapi/linux/ppdev.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_PPDEV_H
 #define _UAPI_LINUX_PPDEV_H
 #define PP_IOCTL 'p'
diff --git a/libc/kernel/uapi/linux/ppp-comp.h b/libc/kernel/uapi/linux/ppp-comp.h
index 08aeab3..e33acf9 100644
--- a/libc/kernel/uapi/linux/ppp-comp.h
+++ b/libc/kernel/uapi/linux/ppp-comp.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_NET_PPP_COMP_H
 #define _UAPI_NET_PPP_COMP_H
 #define CCP_CONFREQ 1
diff --git a/libc/kernel/uapi/linux/ppp-ioctl.h b/libc/kernel/uapi/linux/ppp-ioctl.h
index 165d447..b34cacc 100644
--- a/libc/kernel/uapi/linux/ppp-ioctl.h
+++ b/libc/kernel/uapi/linux/ppp-ioctl.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _PPP_IOCTL_H
 #define _PPP_IOCTL_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/ppp_defs.h b/libc/kernel/uapi/linux/ppp_defs.h
index 84c23d9..ada8b10 100644
--- a/libc/kernel/uapi/linux/ppp_defs.h
+++ b/libc/kernel/uapi/linux/ppp_defs.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #include <linux/types.h>
 #ifndef _UAPI_PPP_DEFS_H_
 #define _UAPI_PPP_DEFS_H_
diff --git a/libc/kernel/uapi/linux/pps.h b/libc/kernel/uapi/linux/pps.h
index 4bfe30d..2d90c1d 100644
--- a/libc/kernel/uapi/linux/pps.h
+++ b/libc/kernel/uapi/linux/pps.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _PPS_H_
 #define _PPS_H_
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/pr.h b/libc/kernel/uapi/linux/pr.h
index b3128ee..4377692 100644
--- a/libc/kernel/uapi/linux/pr.h
+++ b/libc/kernel/uapi/linux/pr.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_PR_H
 #define _UAPI_PR_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/prctl.h b/libc/kernel/uapi/linux/prctl.h
index 1dac726..136a10f 100644
--- a/libc/kernel/uapi/linux/prctl.h
+++ b/libc/kernel/uapi/linux/prctl.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _LINUX_PRCTL_H
 #define _LINUX_PRCTL_H
 #include <linux/types.h>
@@ -184,6 +172,39 @@
 #define PR_SME_GET_VL 64
 #define PR_SME_VL_LEN_MASK 0xffff
 #define PR_SME_VL_INHERIT (1 << 17)
+#define PR_SET_MDWE 65
+#define PR_MDWE_REFUSE_EXEC_GAIN (1UL << 0)
+#define PR_MDWE_NO_INHERIT (1UL << 1)
+#define PR_GET_MDWE 66
 #define PR_SET_VMA 0x53564d41
 #define PR_SET_VMA_ANON_NAME 0
+#define PR_GET_AUXV 0x41555856
+#define PR_SET_MEMORY_MERGE 67
+#define PR_GET_MEMORY_MERGE 68
+#define PR_RISCV_V_SET_CONTROL 69
+#define PR_RISCV_V_GET_CONTROL 70
+#define PR_RISCV_V_VSTATE_CTRL_DEFAULT 0
+#define PR_RISCV_V_VSTATE_CTRL_OFF 1
+#define PR_RISCV_V_VSTATE_CTRL_ON 2
+#define PR_RISCV_V_VSTATE_CTRL_INHERIT (1 << 4)
+#define PR_RISCV_V_VSTATE_CTRL_CUR_MASK 0x3
+#define PR_RISCV_V_VSTATE_CTRL_NEXT_MASK 0xc
+#define PR_RISCV_V_VSTATE_CTRL_MASK 0x1f
+#define PR_RISCV_SET_ICACHE_FLUSH_CTX 71
+#define PR_RISCV_CTX_SW_FENCEI_ON 0
+#define PR_RISCV_CTX_SW_FENCEI_OFF 1
+#define PR_RISCV_SCOPE_PER_PROCESS 0
+#define PR_RISCV_SCOPE_PER_THREAD 1
+#define PR_PPC_GET_DEXCR 72
+#define PR_PPC_SET_DEXCR 73
+#define PR_PPC_DEXCR_SBHE 0
+#define PR_PPC_DEXCR_IBRTPD 1
+#define PR_PPC_DEXCR_SRAPD 2
+#define PR_PPC_DEXCR_NPHIE 3
+#define PR_PPC_DEXCR_CTRL_EDITABLE 0x1
+#define PR_PPC_DEXCR_CTRL_SET 0x2
+#define PR_PPC_DEXCR_CTRL_CLEAR 0x4
+#define PR_PPC_DEXCR_CTRL_SET_ONEXEC 0x8
+#define PR_PPC_DEXCR_CTRL_CLEAR_ONEXEC 0x10
+#define PR_PPC_DEXCR_CTRL_MASK 0x1f
 #endif
diff --git a/libc/kernel/uapi/linux/psample.h b/libc/kernel/uapi/linux/psample.h
index efb1c24..f9f979c 100644
--- a/libc/kernel/uapi/linux/psample.h
+++ b/libc/kernel/uapi/linux/psample.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __UAPI_PSAMPLE_H
 #define __UAPI_PSAMPLE_H
 enum {
@@ -34,6 +22,8 @@
   PSAMPLE_ATTR_LATENCY,
   PSAMPLE_ATTR_TIMESTAMP,
   PSAMPLE_ATTR_PROTO,
+  PSAMPLE_ATTR_USER_COOKIE,
+  PSAMPLE_ATTR_SAMPLE_PROBABILITY,
   __PSAMPLE_ATTR_MAX
 };
 enum psample_command {
diff --git a/libc/kernel/uapi/linux/psci.h b/libc/kernel/uapi/linux/psci.h
index ea8ce59..343268f 100644
--- a/libc/kernel/uapi/linux/psci.h
+++ b/libc/kernel/uapi/linux/psci.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_PSCI_H
 #define _UAPI_LINUX_PSCI_H
 #define PSCI_0_2_FN_BASE 0x84000000
diff --git a/libc/kernel/uapi/linux/psp-dbc.h b/libc/kernel/uapi/linux/psp-dbc.h
new file mode 100644
index 0000000..b981f97
--- /dev/null
+++ b/libc/kernel/uapi/linux/psp-dbc.h
@@ -0,0 +1,45 @@
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
+#ifndef __PSP_DBC_USER_H__
+#define __PSP_DBC_USER_H__
+#include <linux/types.h>
+#define DBC_NONCE_SIZE 16
+#define DBC_SIG_SIZE 32
+#define DBC_UID_SIZE 16
+struct dbc_user_nonce {
+  __u32 auth_needed;
+  __u8 nonce[DBC_NONCE_SIZE];
+  __u8 signature[DBC_SIG_SIZE];
+} __attribute__((__packed__));
+struct dbc_user_setuid {
+  __u8 uid[DBC_UID_SIZE];
+  __u8 signature[DBC_SIG_SIZE];
+} __attribute__((__packed__));
+struct dbc_user_param {
+  __u32 msg_index;
+  __u32 param;
+  __u8 signature[DBC_SIG_SIZE];
+} __attribute__((__packed__));
+#define DBC_IOC_TYPE 'D'
+#define DBCIOCNONCE _IOWR(DBC_IOC_TYPE, 0x1, struct dbc_user_nonce)
+#define DBCIOCUID _IOW(DBC_IOC_TYPE, 0x2, struct dbc_user_setuid)
+#define DBCIOCPARAM _IOWR(DBC_IOC_TYPE, 0x3, struct dbc_user_param)
+enum dbc_cmd_msg {
+  PARAM_GET_FMAX_CAP = 0x3,
+  PARAM_SET_FMAX_CAP = 0x4,
+  PARAM_GET_PWR_CAP = 0x5,
+  PARAM_SET_PWR_CAP = 0x6,
+  PARAM_GET_GFX_MODE = 0x7,
+  PARAM_SET_GFX_MODE = 0x8,
+  PARAM_GET_CURR_TEMP = 0x9,
+  PARAM_GET_FMAX_MAX = 0xA,
+  PARAM_GET_FMAX_MIN = 0xB,
+  PARAM_GET_SOC_PWR_MAX = 0xC,
+  PARAM_GET_SOC_PWR_MIN = 0xD,
+  PARAM_GET_SOC_PWR_CUR = 0xE,
+};
+#endif
diff --git a/libc/kernel/uapi/linux/psp-sev.h b/libc/kernel/uapi/linux/psp-sev.h
index 8c9ec80..7274081 100644
--- a/libc/kernel/uapi/linux/psp-sev.h
+++ b/libc/kernel/uapi/linux/psp-sev.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __PSP_SEV_USER_H__
 #define __PSP_SEV_USER_H__
 #include <linux/types.h>
@@ -29,13 +17,19 @@
   SEV_PEK_CERT_IMPORT,
   SEV_GET_ID,
   SEV_GET_ID2,
+  SNP_PLATFORM_STATUS,
+  SNP_COMMIT,
+  SNP_SET_CONFIG,
+  SNP_VLEK_LOAD,
   SEV_MAX,
 };
 typedef enum {
+  SEV_RET_NO_FW_CALL = - 1,
   SEV_RET_SUCCESS = 0,
   SEV_RET_INVALID_PLATFORM_STATE,
   SEV_RET_INVALID_GUEST_STATE,
   SEV_RET_INAVLID_CONFIG,
+  SEV_RET_INVALID_CONFIG = SEV_RET_INAVLID_CONFIG,
   SEV_RET_INVALID_LEN,
   SEV_RET_ALREADY_OWNED,
   SEV_RET_INVALID_CERTIFICATE,
@@ -57,6 +51,13 @@
   SEV_RET_INVALID_PARAM,
   SEV_RET_RESOURCE_LIMIT,
   SEV_RET_SECURE_DATA_INVALID,
+  SEV_RET_INVALID_KEY = 0x27,
+  SEV_RET_INVALID_PAGE_SIZE,
+  SEV_RET_INVALID_PAGE_STATE,
+  SEV_RET_INVALID_MDATA_ENTRY,
+  SEV_RET_INVALID_PAGE_OWNER,
+  SEV_RET_INVALID_PAGE_AEAD_OFLOW,
+  SEV_RET_RMP_INIT_REQUIRED,
   SEV_RET_MAX,
 } sev_ret_code;
 struct sev_user_data_status {
@@ -92,6 +93,37 @@
   __u64 address;
   __u32 length;
 } __attribute__((__packed__));
+struct sev_user_data_snp_status {
+  __u8 api_major;
+  __u8 api_minor;
+  __u8 state;
+  __u8 is_rmp_initialized : 1;
+  __u8 rsvd : 7;
+  __u32 build_id;
+  __u32 mask_chip_id : 1;
+  __u32 mask_chip_key : 1;
+  __u32 vlek_en : 1;
+  __u32 rsvd1 : 29;
+  __u32 guest_count;
+  __u64 current_tcb_version;
+  __u64 reported_tcb_version;
+} __attribute__((__packed__));
+struct sev_user_data_snp_config {
+  __u64 reported_tcb;
+  __u32 mask_chip_id : 1;
+  __u32 mask_chip_key : 1;
+  __u32 rsvd : 30;
+  __u8 rsvd1[52];
+} __attribute__((__packed__));
+struct sev_user_data_snp_vlek_load {
+  __u32 len;
+  __u8 vlek_wrapped_version;
+  __u8 rsvd[3];
+  __u64 vlek_wrapped_address;
+} __attribute__((__packed__));
+struct sev_user_data_snp_wrapped_vlek_hashstick {
+  __u8 data[432];
+} __attribute__((__packed__));
 struct sev_issue_cmd {
   __u32 cmd;
   __u64 data;
diff --git a/libc/kernel/uapi/linux/ptp_clock.h b/libc/kernel/uapi/linux/ptp_clock.h
index ca6f3c3..5014936 100644
--- a/libc/kernel/uapi/linux/ptp_clock.h
+++ b/libc/kernel/uapi/linux/ptp_clock.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _PTP_CLOCK_H_
 #define _PTP_CLOCK_H_
 #include <linux/ioctl.h>
@@ -24,9 +12,11 @@
 #define PTP_RISING_EDGE (1 << 1)
 #define PTP_FALLING_EDGE (1 << 2)
 #define PTP_STRICT_FLAGS (1 << 3)
+#define PTP_EXT_OFFSET (1 << 4)
 #define PTP_EXTTS_EDGES (PTP_RISING_EDGE | PTP_FALLING_EDGE)
-#define PTP_EXTTS_VALID_FLAGS (PTP_ENABLE_FEATURE | PTP_RISING_EDGE | PTP_FALLING_EDGE | PTP_STRICT_FLAGS)
+#define PTP_EXTTS_VALID_FLAGS (PTP_ENABLE_FEATURE | PTP_RISING_EDGE | PTP_FALLING_EDGE | PTP_STRICT_FLAGS | PTP_EXT_OFFSET)
 #define PTP_EXTTS_V1_VALID_FLAGS (PTP_ENABLE_FEATURE | PTP_RISING_EDGE | PTP_FALLING_EDGE)
+#define PTP_EXTTS_EVENT_VALID (PTP_ENABLE_FEATURE)
 #define PTP_PEROUT_ONE_SHOT (1 << 0)
 #define PTP_PEROUT_DUTY_CYCLE (1 << 1)
 #define PTP_PEROUT_PHASE (1 << 2)
@@ -46,7 +36,8 @@
   int n_pins;
   int cross_timestamping;
   int adjust_phase;
-  int rsv[12];
+  int max_phase_adj;
+  int rsv[11];
 };
 struct ptp_extts_request {
   unsigned int index;
@@ -115,6 +106,8 @@
 #define PTP_PIN_SETFUNC2 _IOW(PTP_CLK_MAGIC, 16, struct ptp_pin_desc)
 #define PTP_SYS_OFFSET_PRECISE2 _IOWR(PTP_CLK_MAGIC, 17, struct ptp_sys_offset_precise)
 #define PTP_SYS_OFFSET_EXTENDED2 _IOWR(PTP_CLK_MAGIC, 18, struct ptp_sys_offset_extended)
+#define PTP_MASK_CLEAR_ALL _IO(PTP_CLK_MAGIC, 19)
+#define PTP_MASK_EN_SINGLE _IOW(PTP_CLK_MAGIC, 20, unsigned int)
 struct ptp_extts_event {
   struct ptp_clock_time t;
   unsigned int index;
diff --git a/libc/kernel/uapi/linux/ptrace.h b/libc/kernel/uapi/linux/ptrace.h
index 4bfa59a..7bb5b09 100644
--- a/libc/kernel/uapi/linux/ptrace.h
+++ b/libc/kernel/uapi/linux/ptrace.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_PTRACE_H
 #define _UAPI_LINUX_PTRACE_H
 #include <linux/types.h>
@@ -90,6 +78,14 @@
   __u32 flags;
   __u32 pad;
 };
+#define PTRACE_SET_SYSCALL_USER_DISPATCH_CONFIG 0x4210
+#define PTRACE_GET_SYSCALL_USER_DISPATCH_CONFIG 0x4211
+struct ptrace_sud_config {
+  __u64 mode;
+  __u64 selector;
+  __u64 offset;
+  __u64 len;
+};
 #define PTRACE_EVENTMSG_SYSCALL_ENTRY 1
 #define PTRACE_EVENTMSG_SYSCALL_EXIT 2
 #define PTRACE_PEEKSIGINFO_SHARED (1 << 0)
diff --git a/libc/kernel/uapi/linux/qemu_fw_cfg.h b/libc/kernel/uapi/linux/qemu_fw_cfg.h
index 173af1f..2c35275 100644
--- a/libc/kernel/uapi/linux/qemu_fw_cfg.h
+++ b/libc/kernel/uapi/linux/qemu_fw_cfg.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _LINUX_FW_CFG_H
 #define _LINUX_FW_CFG_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/qnx4_fs.h b/libc/kernel/uapi/linux/qnx4_fs.h
index c6f1a8e..74c4b62 100644
--- a/libc/kernel/uapi/linux/qnx4_fs.h
+++ b/libc/kernel/uapi/linux/qnx4_fs.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _LINUX_QNX4_FS_H
 #define _LINUX_QNX4_FS_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/qnxtypes.h b/libc/kernel/uapi/linux/qnxtypes.h
index d313361..c702594 100644
--- a/libc/kernel/uapi/linux/qnxtypes.h
+++ b/libc/kernel/uapi/linux/qnxtypes.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _QNX4TYPES_H
 #define _QNX4TYPES_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/qrtr.h b/libc/kernel/uapi/linux/qrtr.h
index ee56aca..024a5be 100644
--- a/libc/kernel/uapi/linux/qrtr.h
+++ b/libc/kernel/uapi/linux/qrtr.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _LINUX_QRTR_H
 #define _LINUX_QRTR_H
 #include <linux/socket.h>
diff --git a/libc/kernel/uapi/linux/quota.h b/libc/kernel/uapi/linux/quota.h
index 280b396..9698370 100644
--- a/libc/kernel/uapi/linux/quota.h
+++ b/libc/kernel/uapi/linux/quota.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_QUOTA_
 #define _UAPI_LINUX_QUOTA_
 #include <linux/types.h>
@@ -42,6 +30,7 @@
 #define QFMT_VFS_V0 2
 #define QFMT_OCFS2 3
 #define QFMT_VFS_V1 4
+#define QFMT_SHMEM 5
 #define QIF_DQBLKSIZE_BITS 10
 #define QIF_DQBLKSIZE (1 << QIF_DQBLKSIZE_BITS)
 enum {
diff --git a/libc/kernel/uapi/linux/radeonfb.h b/libc/kernel/uapi/linux/radeonfb.h
index b7a6b9d..83adcd7 100644
--- a/libc/kernel/uapi/linux/radeonfb.h
+++ b/libc/kernel/uapi/linux/radeonfb.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __LINUX_RADEONFB_H__
 #define __LINUX_RADEONFB_H__
 #include <asm/ioctl.h>
diff --git a/libc/kernel/uapi/linux/raid/md_p.h b/libc/kernel/uapi/linux/raid/md_p.h
index dc3084a..dafeb16 100644
--- a/libc/kernel/uapi/linux/raid/md_p.h
+++ b/libc/kernel/uapi/linux/raid/md_p.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _MD_P_H
 #define _MD_P_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/raid/md_u.h b/libc/kernel/uapi/linux/raid/md_u.h
index 8c7fadc..f291f64 100644
--- a/libc/kernel/uapi/linux/raid/md_u.h
+++ b/libc/kernel/uapi/linux/raid/md_u.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_MD_U_H
 #define _UAPI_MD_U_H
 #define MD_MAJOR_VERSION 0
@@ -69,9 +57,6 @@
   int layout;
   int chunk_size;
 } mdu_array_info_t;
-#define LEVEL_MULTIPATH (- 4)
-#define LEVEL_LINEAR (- 1)
-#define LEVEL_FAULTY (- 5)
 #define LEVEL_NONE (- 1000000)
 typedef struct mdu_disk_info_s {
   int number;
diff --git a/libc/kernel/uapi/linux/random.h b/libc/kernel/uapi/linux/random.h
index 8df411b..64f62d9 100644
--- a/libc/kernel/uapi/linux/random.h
+++ b/libc/kernel/uapi/linux/random.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_RANDOM_H
 #define _UAPI_LINUX_RANDOM_H
 #include <linux/types.h>
@@ -36,4 +24,10 @@
 #define GRND_NONBLOCK 0x0001
 #define GRND_RANDOM 0x0002
 #define GRND_INSECURE 0x0004
+struct vgetrandom_opaque_params {
+  __u32 size_of_opaque_state;
+  __u32 mmap_prot;
+  __u32 mmap_flags;
+  __u32 reserved[13];
+};
 #endif
diff --git a/libc/kernel/uapi/linux/rds.h b/libc/kernel/uapi/linux/rds.h
index 7006c87..e2a7a38 100644
--- a/libc/kernel/uapi/linux/rds.h
+++ b/libc/kernel/uapi/linux/rds.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _LINUX_RDS_H
 #define _LINUX_RDS_H
 #include <linux/types.h>
@@ -217,7 +205,7 @@
   __u64 flags;
 };
 struct rds_get_mr_for_dest_args {
-  struct __kernel_sockaddr_storage dest_addr;
+  struct sockaddr_storage dest_addr;
   struct rds_iovec vec;
   __u64 cookie_addr;
   __u64 flags;
diff --git a/libc/kernel/uapi/linux/reboot.h b/libc/kernel/uapi/linux/reboot.h
index 6bf017a..b6fde46 100644
--- a/libc/kernel/uapi/linux/reboot.h
+++ b/libc/kernel/uapi/linux/reboot.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_REBOOT_H
 #define _UAPI_LINUX_REBOOT_H
 #define LINUX_REBOOT_MAGIC1 0xfee1dead
diff --git a/libc/kernel/uapi/linux/reiserfs_fs.h b/libc/kernel/uapi/linux/reiserfs_fs.h
index 5485b1f..e0bd0a0 100644
--- a/libc/kernel/uapi/linux/reiserfs_fs.h
+++ b/libc/kernel/uapi/linux/reiserfs_fs.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _LINUX_REISER_FS_H
 #define _LINUX_REISER_FS_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/reiserfs_xattr.h b/libc/kernel/uapi/linux/reiserfs_xattr.h
index 16a7a08..2caed30 100644
--- a/libc/kernel/uapi/linux/reiserfs_xattr.h
+++ b/libc/kernel/uapi/linux/reiserfs_xattr.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _LINUX_REISERFS_XATTR_H
 #define _LINUX_REISERFS_XATTR_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/remoteproc_cdev.h b/libc/kernel/uapi/linux/remoteproc_cdev.h
index a10ff01..ca47e73 100644
--- a/libc/kernel/uapi/linux/remoteproc_cdev.h
+++ b/libc/kernel/uapi/linux/remoteproc_cdev.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_REMOTEPROC_CDEV_H_
 #define _UAPI_REMOTEPROC_CDEV_H_
 #include <linux/ioctl.h>
diff --git a/libc/kernel/uapi/linux/resource.h b/libc/kernel/uapi/linux/resource.h
index 6f531a0..05e201b 100644
--- a/libc/kernel/uapi/linux/resource.h
+++ b/libc/kernel/uapi/linux/resource.h
@@ -1,24 +1,12 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_RESOURCE_H
 #define _UAPI_LINUX_RESOURCE_H
-#include <linux/time.h>
+#include <linux/time_types.h>
 #include <linux/types.h>
 #define RUSAGE_SELF 0
 #define RUSAGE_CHILDREN (- 1)
diff --git a/libc/kernel/uapi/linux/rfkill.h b/libc/kernel/uapi/linux/rfkill.h
index b90e67c..6d435f3 100644
--- a/libc/kernel/uapi/linux/rfkill.h
+++ b/libc/kernel/uapi/linux/rfkill.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI__RFKILL_H
 #define _UAPI__RFKILL_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/rio_cm_cdev.h b/libc/kernel/uapi/linux/rio_cm_cdev.h
index 39799bc..ce1d026 100644
--- a/libc/kernel/uapi/linux/rio_cm_cdev.h
+++ b/libc/kernel/uapi/linux/rio_cm_cdev.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _RIO_CM_CDEV_H_
 #define _RIO_CM_CDEV_H_
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/rio_mport_cdev.h b/libc/kernel/uapi/linux/rio_mport_cdev.h
index 3e6d6de..1d90f2b 100644
--- a/libc/kernel/uapi/linux/rio_mport_cdev.h
+++ b/libc/kernel/uapi/linux/rio_mport_cdev.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _RIO_MPORT_CDEV_H_
 #define _RIO_MPORT_CDEV_H_
 #include <linux/ioctl.h>
diff --git a/libc/kernel/uapi/linux/rkisp1-config.h b/libc/kernel/uapi/linux/rkisp1-config.h
index 7175c23..d4206a0 100644
--- a/libc/kernel/uapi/linux/rkisp1-config.h
+++ b/libc/kernel/uapi/linux/rkisp1-config.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_RKISP1_CONFIG_H
 #define _UAPI_RKISP1_CONFIG_H
 #include <linux/types.h>
@@ -109,6 +97,7 @@
   RKISP1_V11,
   RKISP1_V12,
   RKISP1_V13,
+  RKISP1_V_IMX8MP,
 };
 enum rkisp1_cif_isp_histogram_mode {
   RKISP1_CIF_ISP_HISTOGRAM_MODE_DISABLE,
diff --git a/libc/kernel/uapi/linux/romfs_fs.h b/libc/kernel/uapi/linux/romfs_fs.h
index bffbaf9..8fcd139 100644
--- a/libc/kernel/uapi/linux/romfs_fs.h
+++ b/libc/kernel/uapi/linux/romfs_fs.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __LINUX_ROMFS_FS_H
 #define __LINUX_ROMFS_FS_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/rose.h b/libc/kernel/uapi/linux/rose.h
index fa813c7..3a1d05a 100644
--- a/libc/kernel/uapi/linux/rose.h
+++ b/libc/kernel/uapi/linux/rose.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef ROSE_KERNEL_H
 #define ROSE_KERNEL_H
 #include <linux/socket.h>
diff --git a/libc/kernel/uapi/linux/route.h b/libc/kernel/uapi/linux/route.h
index f33327c..4aa3560 100644
--- a/libc/kernel/uapi/linux/route.h
+++ b/libc/kernel/uapi/linux/route.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _LINUX_ROUTE_H
 #define _LINUX_ROUTE_H
 #include <linux/if.h>
diff --git a/libc/kernel/uapi/linux/rpl.h b/libc/kernel/uapi/linux/rpl.h
index 3648bfc..90bd60e 100644
--- a/libc/kernel/uapi/linux/rpl.h
+++ b/libc/kernel/uapi/linux/rpl.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_RPL_H
 #define _UAPI_LINUX_RPL_H
 #include <asm/byteorder.h>
@@ -34,8 +22,8 @@
 #error "Please fix <asm/byteorder.h>"
 #endif
   union {
-    struct in6_addr addr[0];
-    __u8 data[0];
+    __DECLARE_FLEX_ARRAY(struct in6_addr, addr);
+    __DECLARE_FLEX_ARRAY(__u8, data);
   } segments;
 } __attribute__((packed));
 #define rpl_segaddr segments.addr
diff --git a/libc/kernel/uapi/linux/rpl_iptunnel.h b/libc/kernel/uapi/linux/rpl_iptunnel.h
index c61725d..1dd4378 100644
--- a/libc/kernel/uapi/linux/rpl_iptunnel.h
+++ b/libc/kernel/uapi/linux/rpl_iptunnel.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_RPL_IPTUNNEL_H
 #define _UAPI_LINUX_RPL_IPTUNNEL_H
 enum {
diff --git a/libc/kernel/uapi/linux/rpmsg.h b/libc/kernel/uapi/linux/rpmsg.h
index 9ceccdd..ea75dce 100644
--- a/libc/kernel/uapi/linux/rpmsg.h
+++ b/libc/kernel/uapi/linux/rpmsg.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_RPMSG_H_
 #define _UAPI_RPMSG_H_
 #include <linux/ioctl.h>
@@ -30,4 +18,6 @@
 #define RPMSG_DESTROY_EPT_IOCTL _IO(0xb5, 0x2)
 #define RPMSG_CREATE_DEV_IOCTL _IOW(0xb5, 0x3, struct rpmsg_endpoint_info)
 #define RPMSG_RELEASE_DEV_IOCTL _IOW(0xb5, 0x4, struct rpmsg_endpoint_info)
+#define RPMSG_GET_OUTGOING_FLOWCONTROL _IOR(0xb5, 0x5, int)
+#define RPMSG_SET_INCOMING_FLOWCONTROL _IOR(0xb5, 0x6, int)
 #endif
diff --git a/libc/kernel/uapi/linux/rpmsg_types.h b/libc/kernel/uapi/linux/rpmsg_types.h
index 6599f4c..85cf317 100644
--- a/libc/kernel/uapi/linux/rpmsg_types.h
+++ b/libc/kernel/uapi/linux/rpmsg_types.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_RPMSG_TYPES_H
 #define _UAPI_LINUX_RPMSG_TYPES_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/rseq.h b/libc/kernel/uapi/linux/rseq.h
index 29a9457..54190b6 100644
--- a/libc/kernel/uapi/linux/rseq.h
+++ b/libc/kernel/uapi/linux/rseq.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_RSEQ_H
 #define _UAPI_LINUX_RSEQ_H
 #include <linux/types.h>
@@ -49,5 +37,8 @@
   __u32 cpu_id;
   __u64 rseq_cs;
   __u32 flags;
+  __u32 node_id;
+  __u32 mm_cid;
+  char end[];
 } __attribute__((aligned(4 * sizeof(__u64))));
 #endif
diff --git a/libc/kernel/uapi/linux/rtc.h b/libc/kernel/uapi/linux/rtc.h
index d75bc45..3871f66 100644
--- a/libc/kernel/uapi/linux/rtc.h
+++ b/libc/kernel/uapi/linux/rtc.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_RTC_H_
 #define _UAPI_LINUX_RTC_H_
 #include <linux/const.h>
diff --git a/libc/kernel/uapi/linux/rtnetlink.h b/libc/kernel/uapi/linux/rtnetlink.h
index 7201827..70038f2 100644
--- a/libc/kernel/uapi/linux/rtnetlink.h
+++ b/libc/kernel/uapi/linux/rtnetlink.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI__LINUX_RTNETLINK_H
 #define _UAPI__LINUX_RTNETLINK_H
 #include <linux/types.h>
@@ -380,7 +368,8 @@
 #define RTAX_FEATURE_SACK (1 << 1)
 #define RTAX_FEATURE_TIMESTAMP (1 << 2)
 #define RTAX_FEATURE_ALLFRAG (1 << 3)
-#define RTAX_FEATURE_MASK (RTAX_FEATURE_ECN | RTAX_FEATURE_SACK | RTAX_FEATURE_TIMESTAMP | RTAX_FEATURE_ALLFRAG)
+#define RTAX_FEATURE_TCP_USEC_TS (1 << 4)
+#define RTAX_FEATURE_MASK (RTAX_FEATURE_ECN | RTAX_FEATURE_SACK | RTAX_FEATURE_TIMESTAMP | RTAX_FEATURE_ALLFRAG | RTAX_FEATURE_TCP_USEC_TS)
 struct rta_session {
   __u8 proto;
   __u8 pad1;
@@ -463,6 +452,7 @@
   TCA_INGRESS_BLOCK,
   TCA_EGRESS_BLOCK,
   TCA_DUMP_FLAGS,
+  TCA_EXT_WARN_MSG,
   __TCA_MAX
 };
 #define TCA_MAX (__TCA_MAX - 1)
@@ -589,6 +579,7 @@
   TCA_ROOT_FLAGS,
   TCA_ROOT_COUNT,
   TCA_ROOT_TIME_DELTA,
+  TCA_ROOT_EXT_WARN_MSG,
   __TCA_ROOT_MAX,
 #define TCA_ROOT_MAX (__TCA_ROOT_MAX - 1)
 };
diff --git a/libc/kernel/uapi/linux/rxrpc.h b/libc/kernel/uapi/linux/rxrpc.h
index 16207dd..5b60716 100644
--- a/libc/kernel/uapi/linux/rxrpc.h
+++ b/libc/kernel/uapi/linux/rxrpc.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_RXRPC_H
 #define _UAPI_LINUX_RXRPC_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/scc.h b/libc/kernel/uapi/linux/scc.h
index a2a5503..f3640d7 100644
--- a/libc/kernel/uapi/linux/scc.h
+++ b/libc/kernel/uapi/linux/scc.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_SCC_H
 #define _UAPI_SCC_H
 #include <linux/sockios.h>
diff --git a/libc/kernel/uapi/linux/sched.h b/libc/kernel/uapi/linux/sched.h
index f9c00df..ae914f7 100644
--- a/libc/kernel/uapi/linux/sched.h
+++ b/libc/kernel/uapi/linux/sched.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_SCHED_H
 #define _UAPI_LINUX_SCHED_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/sched/types.h b/libc/kernel/uapi/linux/sched/types.h
index 385b21a..e3bcbd2 100644
--- a/libc/kernel/uapi/linux/sched/types.h
+++ b/libc/kernel/uapi/linux/sched/types.h
@@ -1,27 +1,12 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_SCHED_TYPES_H
 #define _UAPI_LINUX_SCHED_TYPES_H
 #include <linux/types.h>
-struct sched_param {
-  int sched_priority;
-};
 #define SCHED_ATTR_SIZE_VER0 48
 #define SCHED_ATTR_SIZE_VER1 56
 struct sched_attr {
diff --git a/libc/kernel/uapi/linux/scif_ioctl.h b/libc/kernel/uapi/linux/scif_ioctl.h
index 14e199c..60cff79 100644
--- a/libc/kernel/uapi/linux/scif_ioctl.h
+++ b/libc/kernel/uapi/linux/scif_ioctl.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef SCIF_IOCTL_H
 #define SCIF_IOCTL_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/screen_info.h b/libc/kernel/uapi/linux/screen_info.h
index 7dfadba..e1856c7 100644
--- a/libc/kernel/uapi/linux/screen_info.h
+++ b/libc/kernel/uapi/linux/screen_info.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_SCREEN_INFO_H
 #define _UAPI_SCREEN_INFO_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/sctp.h b/libc/kernel/uapi/linux/sctp.h
index 4bf2412..760309d 100644
--- a/libc/kernel/uapi/linux/sctp.h
+++ b/libc/kernel/uapi/linux/sctp.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_SCTP_H
 #define _UAPI_SCTP_H
 #include <linux/types.h>
@@ -709,7 +697,9 @@
   SCTP_SS_DEFAULT = SCTP_SS_FCFS,
   SCTP_SS_PRIO,
   SCTP_SS_RR,
-  SCTP_SS_MAX = SCTP_SS_RR
+  SCTP_SS_FC,
+  SCTP_SS_WFQ,
+  SCTP_SS_MAX = SCTP_SS_WFQ
 };
 struct sctp_probeinterval {
   sctp_assoc_t spi_assoc_id;
diff --git a/libc/kernel/uapi/linux/seccomp.h b/libc/kernel/uapi/linux/seccomp.h
index cc506ae..5264cdd 100644
--- a/libc/kernel/uapi/linux/seccomp.h
+++ b/libc/kernel/uapi/linux/seccomp.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_SECCOMP_H
 #define _UAPI_LINUX_SECCOMP_H
 #include <linux/compiler.h>
@@ -69,6 +57,7 @@
   __s32 error;
   __u32 flags;
 };
+#define SECCOMP_USER_NOTIF_FD_SYNC_WAKE_UP (1UL << 0)
 #define SECCOMP_ADDFD_FLAG_SETFD (1UL << 0)
 #define SECCOMP_ADDFD_FLAG_SEND (1UL << 1)
 struct seccomp_notif_addfd {
@@ -87,4 +76,5 @@
 #define SECCOMP_IOCTL_NOTIF_SEND SECCOMP_IOWR(1, struct seccomp_notif_resp)
 #define SECCOMP_IOCTL_NOTIF_ID_VALID SECCOMP_IOW(2, __u64)
 #define SECCOMP_IOCTL_NOTIF_ADDFD SECCOMP_IOW(3, struct seccomp_notif_addfd)
+#define SECCOMP_IOCTL_NOTIF_SET_FLAGS SECCOMP_IOW(4, __u64)
 #endif
diff --git a/libc/kernel/uapi/linux/securebits.h b/libc/kernel/uapi/linux/securebits.h
index b73053e..b50eec9 100644
--- a/libc/kernel/uapi/linux/securebits.h
+++ b/libc/kernel/uapi/linux/securebits.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_SECUREBITS_H
 #define _UAPI_LINUX_SECUREBITS_H
 #define issecure_mask(X) (1 << (X))
diff --git a/libc/kernel/uapi/linux/sed-opal.h b/libc/kernel/uapi/linux/sed-opal.h
index 4c66231..6274ede 100644
--- a/libc/kernel/uapi/linux/sed-opal.h
+++ b/libc/kernel/uapi/linux/sed-opal.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_SED_OPAL_H
 #define _UAPI_SED_OPAL_H
 #include <linux/types.h>
@@ -49,12 +37,20 @@
 enum opal_lock_flags {
   OPAL_SAVE_FOR_LOCK = 0x01,
 };
+enum opal_key_type {
+  OPAL_INCLUDED = 0,
+  OPAL_KEYRING,
+};
 struct opal_key {
   __u8 lr;
   __u8 key_len;
-  __u8 __align[6];
+  __u8 key_type;
+  __u8 __align[5];
   __u8 key[OPAL_KEY_MAX];
 };
+enum opal_revert_lsp_opts {
+  OPAL_PRESERVE = 0x01,
+};
 struct opal_lr_act {
   struct opal_key key;
   __u32 sum;
@@ -74,6 +70,15 @@
   __u32 WLE;
   struct opal_session_info session;
 };
+struct opal_lr_status {
+  struct opal_session_info session;
+  __u64 range_start;
+  __u64 range_length;
+  __u32 RLE;
+  __u32 WLE;
+  __u32 l_state;
+  __u8 align[4];
+};
 struct opal_lock_unlock {
   struct opal_session_info session;
   __u32 l_state;
@@ -122,10 +127,27 @@
 #define OPAL_FL_LOCKED 0x00000008
 #define OPAL_FL_MBR_ENABLED 0x00000010
 #define OPAL_FL_MBR_DONE 0x00000020
+#define OPAL_FL_SUM_SUPPORTED 0x00000040
 struct opal_status {
   __u32 flags;
   __u32 reserved;
 };
+struct opal_geometry {
+  __u8 align;
+  __u32 logical_block_size;
+  __u64 alignment_granularity;
+  __u64 lowest_aligned_lba;
+  __u8 __align[3];
+};
+struct opal_discovery {
+  __u64 data;
+  __u64 size;
+};
+struct opal_revert_lsp {
+  struct opal_key key;
+  __u32 options;
+  __u32 __pad;
+};
 #define IOC_OPAL_SAVE _IOW('p', 220, struct opal_lock_unlock)
 #define IOC_OPAL_LOCK_UNLOCK _IOW('p', 221, struct opal_lock_unlock)
 #define IOC_OPAL_TAKE_OWNERSHIP _IOW('p', 222, struct opal_key)
@@ -143,4 +165,8 @@
 #define IOC_OPAL_WRITE_SHADOW_MBR _IOW('p', 234, struct opal_shadow_mbr)
 #define IOC_OPAL_GENERIC_TABLE_RW _IOW('p', 235, struct opal_read_write_table)
 #define IOC_OPAL_GET_STATUS _IOR('p', 236, struct opal_status)
+#define IOC_OPAL_GET_LR_STATUS _IOW('p', 237, struct opal_lr_status)
+#define IOC_OPAL_GET_GEOMETRY _IOR('p', 238, struct opal_geometry)
+#define IOC_OPAL_DISCOVERY _IOW('p', 239, struct opal_discovery)
+#define IOC_OPAL_REVERT_LSP _IOW('p', 240, struct opal_revert_lsp)
 #endif
diff --git a/libc/kernel/uapi/linux/seg6.h b/libc/kernel/uapi/linux/seg6.h
index b8206cc..c1958c8 100644
--- a/libc/kernel/uapi/linux/seg6.h
+++ b/libc/kernel/uapi/linux/seg6.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_SEG6_H
 #define _UAPI_LINUX_SEG6_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/seg6_genl.h b/libc/kernel/uapi/linux/seg6_genl.h
index bcd5f36..713842e 100644
--- a/libc/kernel/uapi/linux/seg6_genl.h
+++ b/libc/kernel/uapi/linux/seg6_genl.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_SEG6_GENL_H
 #define _UAPI_LINUX_SEG6_GENL_H
 #define SEG6_GENL_NAME "SEG6"
diff --git a/libc/kernel/uapi/linux/seg6_hmac.h b/libc/kernel/uapi/linux/seg6_hmac.h
index d5ef671..1d44e61 100644
--- a/libc/kernel/uapi/linux/seg6_hmac.h
+++ b/libc/kernel/uapi/linux/seg6_hmac.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_SEG6_HMAC_H
 #define _UAPI_LINUX_SEG6_HMAC_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/seg6_iptunnel.h b/libc/kernel/uapi/linux/seg6_iptunnel.h
index 19d8ba4..74499f5 100644
--- a/libc/kernel/uapi/linux/seg6_iptunnel.h
+++ b/libc/kernel/uapi/linux/seg6_iptunnel.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_SEG6_IPTUNNEL_H
 #define _UAPI_LINUX_SEG6_IPTUNNEL_H
 #include <linux/seg6.h>
diff --git a/libc/kernel/uapi/linux/seg6_local.h b/libc/kernel/uapi/linux/seg6_local.h
index 4d062e8..4ae2b2c 100644
--- a/libc/kernel/uapi/linux/seg6_local.h
+++ b/libc/kernel/uapi/linux/seg6_local.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_SEG6_LOCAL_H
 #define _UAPI_LINUX_SEG6_LOCAL_H
 #include <linux/seg6.h>
diff --git a/libc/kernel/uapi/linux/selinux_netlink.h b/libc/kernel/uapi/linux/selinux_netlink.h
index 16d928d..d3c4e14 100644
--- a/libc/kernel/uapi/linux/selinux_netlink.h
+++ b/libc/kernel/uapi/linux/selinux_netlink.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _LINUX_SELINUX_NETLINK_H
 #define _LINUX_SELINUX_NETLINK_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/sem.h b/libc/kernel/uapi/linux/sem.h
index c2f25e7..8b173a6 100644
--- a/libc/kernel/uapi/linux/sem.h
+++ b/libc/kernel/uapi/linux/sem.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_SEM_H
 #define _UAPI_LINUX_SEM_H
 #include <linux/ipc.h>
diff --git a/libc/kernel/uapi/linux/serial.h b/libc/kernel/uapi/linux/serial.h
index 5a83c62..ed5ed66 100644
--- a/libc/kernel/uapi/linux/serial.h
+++ b/libc/kernel/uapi/linux/serial.h
@@ -1,23 +1,12 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_SERIAL_H
 #define _UAPI_LINUX_SERIAL_H
+#include <linux/const.h>
 #include <linux/types.h>
 #include <linux/tty_flags.h>
 struct serial_struct {
@@ -91,14 +80,15 @@
 };
 struct serial_rs485 {
   __u32 flags;
-#define SER_RS485_ENABLED (1 << 0)
-#define SER_RS485_RTS_ON_SEND (1 << 1)
-#define SER_RS485_RTS_AFTER_SEND (1 << 2)
-#define SER_RS485_RX_DURING_TX (1 << 4)
-#define SER_RS485_TERMINATE_BUS (1 << 5)
-#define SER_RS485_ADDRB (1 << 6)
-#define SER_RS485_ADDR_RECV (1 << 7)
-#define SER_RS485_ADDR_DEST (1 << 8)
+#define SER_RS485_ENABLED _BITUL(0)
+#define SER_RS485_RTS_ON_SEND _BITUL(1)
+#define SER_RS485_RTS_AFTER_SEND _BITUL(2)
+#define SER_RS485_RX_DURING_TX _BITUL(4)
+#define SER_RS485_TERMINATE_BUS _BITUL(5)
+#define SER_RS485_ADDRB _BITUL(6)
+#define SER_RS485_ADDR_RECV _BITUL(7)
+#define SER_RS485_ADDR_DEST _BITUL(8)
+#define SER_RS485_MODE_RS422 _BITUL(9)
   __u32 delay_rts_before_send;
   __u32 delay_rts_after_send;
   union {
diff --git a/libc/kernel/uapi/linux/serial_core.h b/libc/kernel/uapi/linux/serial_core.h
index 1e04429..23b049a 100644
--- a/libc/kernel/uapi/linux/serial_core.h
+++ b/libc/kernel/uapi/linux/serial_core.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPILINUX_SERIAL_CORE_H
 #define _UAPILINUX_SERIAL_CORE_H
 #include <linux/serial.h>
@@ -59,32 +47,21 @@
 #define PORT_SCI 52
 #define PORT_SCIF 53
 #define PORT_IRDA 54
-#define PORT_S3C2410 55
 #define PORT_IP22ZILOG 56
-#define PORT_LH7A40X 57
 #define PORT_CPM 58
 #define PORT_MPC52xx 59
 #define PORT_ICOM 60
-#define PORT_S3C2440 61
 #define PORT_IMX 62
-#define PORT_MPSC 63
 #define PORT_TXX9 64
-#define PORT_S3C2400 67
-#define PORT_M32R_SIO 68
 #define PORT_JSM 69
 #define PORT_SUNHV 72
-#define PORT_S3C2412 73
 #define PORT_UARTLITE 74
-#define PORT_BFIN 75
+#define PORT_BCM7271 76
 #define PORT_SB1250_DUART 77
 #define PORT_MCF 78
-#define PORT_BFIN_SPORT 79
-#define PORT_MN10300 80
-#define PORT_MN10300_CTS 81
 #define PORT_SC26XX 82
 #define PORT_SCIFA 83
 #define PORT_S3C6400 84
-#define PORT_NWPSERIAL 85
 #define PORT_MAX3100 86
 #define PORT_TIMBUART 87
 #define PORT_MSM 88
@@ -99,18 +76,17 @@
 #define PORT_VT8500 97
 #define PORT_XUARTPS 98
 #define PORT_AR933X 99
+#define PORT_MCHP16550A 100
 #define PORT_ARC 101
 #define PORT_RP2 102
 #define PORT_LPUART 103
 #define PORT_HSCIF 104
 #define PORT_ASC 105
-#define PORT_TILEGX 106
 #define PORT_MEN_Z135 107
 #define PORT_SC16IS7XX 108
 #define PORT_MESON 109
 #define PORT_DIGICOLOR 110
 #define PORT_SPRD 111
-#define PORT_CRIS 112
 #define PORT_STM32 113
 #define PORT_MVEBU 114
 #define PORT_PIC32 115
@@ -122,4 +98,5 @@
 #define PORT_SUNIX 121
 #define PORT_LINFLEXUART 122
 #define PORT_SUNPLUS 123
+#define PORT_GENERIC (- 1)
 #endif
diff --git a/libc/kernel/uapi/linux/serial_reg.h b/libc/kernel/uapi/linux/serial_reg.h
index e41e649..7f53277 100644
--- a/libc/kernel/uapi/linux/serial_reg.h
+++ b/libc/kernel/uapi/linux/serial_reg.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _LINUX_SERIAL_REG_H
 #define _LINUX_SERIAL_REG_H
 #define UART_RX 0
@@ -37,6 +25,12 @@
 #define UART_IIR_RX_TIMEOUT 0x0c
 #define UART_IIR_XOFF 0x10
 #define UART_IIR_CTS_RTS_DSR 0x20
+#define UART_IIR_64BYTE_FIFO 0x20
+#define UART_IIR_FIFO_ENABLED 0xc0
+#define UART_IIR_FIFO_ENABLED_8250 0x00
+#define UART_IIR_FIFO_ENABLED_16550 0x80
+#define UART_IIR_FIFO_ENABLED_16550A 0xc0
+#define UART_IIR_FIFO_ENABLED_16750 0xe0
 #define UART_FCR 2
 #define UART_FCR_ENABLE_FIFO 0x01
 #define UART_FCR_CLEAR_RCVR 0x02
diff --git a/libc/kernel/uapi/linux/serio.h b/libc/kernel/uapi/linux/serio.h
index 605a4e4..424144e 100644
--- a/libc/kernel/uapi/linux/serio.h
+++ b/libc/kernel/uapi/linux/serio.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_SERIO_H
 #define _UAPI_SERIO_H
 #include <linux/const.h>
diff --git a/libc/kernel/uapi/linux/sev-guest.h b/libc/kernel/uapi/linux/sev-guest.h
index 796479a..a722641 100644
--- a/libc/kernel/uapi/linux/sev-guest.h
+++ b/libc/kernel/uapi/linux/sev-guest.h
@@ -1,26 +1,15 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __UAPI_LINUX_SEV_GUEST_H_
 #define __UAPI_LINUX_SEV_GUEST_H_
 #include <linux/types.h>
+#define SNP_REPORT_USER_DATA_SIZE 64
 struct snp_report_req {
-  __u8 user_data[64];
+  __u8 user_data[SNP_REPORT_USER_DATA_SIZE];
   __u32 vmpl;
   __u8 rsvd[28];
 };
@@ -42,7 +31,13 @@
   __u8 msg_version;
   __u64 req_data;
   __u64 resp_data;
-  __u64 fw_err;
+  union {
+    __u64 exitinfo2;
+    struct {
+      __u32 fw_error;
+      __u32 vmm_error;
+    };
+  };
 };
 struct snp_ext_report_req {
   struct snp_report_req data;
@@ -53,4 +48,11 @@
 #define SNP_GET_REPORT _IOWR(SNP_GUEST_REQ_IOC_TYPE, 0x0, struct snp_guest_request_ioctl)
 #define SNP_GET_DERIVED_KEY _IOWR(SNP_GUEST_REQ_IOC_TYPE, 0x1, struct snp_guest_request_ioctl)
 #define SNP_GET_EXT_REPORT _IOWR(SNP_GUEST_REQ_IOC_TYPE, 0x2, struct snp_guest_request_ioctl)
+#define SNP_GUEST_FW_ERR_MASK GENMASK_ULL(31, 0)
+#define SNP_GUEST_VMM_ERR_SHIFT 32
+#define SNP_GUEST_VMM_ERR(x) (((u64) x) << SNP_GUEST_VMM_ERR_SHIFT)
+#define SNP_GUEST_FW_ERR(x) ((x) & SNP_GUEST_FW_ERR_MASK)
+#define SNP_GUEST_ERR(vmm_err,fw_err) (SNP_GUEST_VMM_ERR(vmm_err) | SNP_GUEST_FW_ERR(fw_err))
+#define SNP_GUEST_VMM_ERR_INVALID_LEN 1
+#define SNP_GUEST_VMM_ERR_BUSY 2
 #endif
diff --git a/libc/kernel/uapi/linux/shm.h b/libc/kernel/uapi/linux/shm.h
index 72ee715..10b798a 100644
--- a/libc/kernel/uapi/linux/shm.h
+++ b/libc/kernel/uapi/linux/shm.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_SHM_H_
 #define _UAPI_LINUX_SHM_H_
 #include <linux/ipc.h>
diff --git a/libc/kernel/uapi/linux/signal.h b/libc/kernel/uapi/linux/signal.h
index dd00a32..1035b54 100644
--- a/libc/kernel/uapi/linux/signal.h
+++ b/libc/kernel/uapi/linux/signal.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_SIGNAL_H
 #define _UAPI_LINUX_SIGNAL_H
 #include <asm/signal.h>
diff --git a/libc/kernel/uapi/linux/signalfd.h b/libc/kernel/uapi/linux/signalfd.h
index 5108ef0..928021f 100644
--- a/libc/kernel/uapi/linux/signalfd.h
+++ b/libc/kernel/uapi/linux/signalfd.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_SIGNALFD_H
 #define _UAPI_LINUX_SIGNALFD_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/smc.h b/libc/kernel/uapi/linux/smc.h
index 200c9b6..5e75fac 100644
--- a/libc/kernel/uapi/linux/smc.h
+++ b/libc/kernel/uapi/linux/smc.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_SMC_H_
 #define _UAPI_LINUX_SMC_H_
 enum {
@@ -97,6 +85,8 @@
 enum {
   SMC_NLA_LGR_R_V2_UNSPEC,
   SMC_NLA_LGR_R_V2_DIRECT,
+  SMC_NLA_LGR_R_V2_MAX_CONNS,
+  SMC_NLA_LGR_R_V2_MAX_LINKS,
   __SMC_NLA_LGR_R_V2_MAX,
   SMC_NLA_LGR_R_V2_MAX = __SMC_NLA_LGR_R_V2_MAX - 1
 };
@@ -142,6 +132,8 @@
   SMC_NLA_LGR_D_CHID,
   SMC_NLA_LGR_D_PAD,
   SMC_NLA_LGR_D_V2_COMMON,
+  SMC_NLA_LGR_D_EXT_GID,
+  SMC_NLA_LGR_D_PEER_EXT_GID,
   __SMC_NLA_LGR_D_MAX,
   SMC_NLA_LGR_D_MAX = __SMC_NLA_LGR_D_MAX - 1
 };
diff --git a/libc/kernel/uapi/linux/smc_diag.h b/libc/kernel/uapi/linux/smc_diag.h
index 30e0fa2..b358acf 100644
--- a/libc/kernel/uapi/linux/smc_diag.h
+++ b/libc/kernel/uapi/linux/smc_diag.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_SMC_DIAG_H_
 #define _UAPI_SMC_DIAG_H_
 #include <linux/types.h>
@@ -97,5 +85,7 @@
   __aligned_u64 my_gid;
   __aligned_u64 token;
   __aligned_u64 peer_token;
+  __aligned_u64 peer_gid_ext;
+  __aligned_u64 my_gid_ext;
 };
 #endif
diff --git a/libc/kernel/uapi/linux/smiapp.h b/libc/kernel/uapi/linux/smiapp.h
index 3dd54cc..f04cee4 100644
--- a/libc/kernel/uapi/linux/smiapp.h
+++ b/libc/kernel/uapi/linux/smiapp.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __UAPI_LINUX_SMIAPP_H_
 #define __UAPI_LINUX_SMIAPP_H_
 #define V4L2_SMIAPP_TEST_PATTERN_MODE_DISABLED 0
diff --git a/libc/kernel/uapi/linux/snmp.h b/libc/kernel/uapi/linux/snmp.h
index e3d6ee3..0f72302 100644
--- a/libc/kernel/uapi/linux/snmp.h
+++ b/libc/kernel/uapi/linux/snmp.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _LINUX_SNMP_H
 #define _LINUX_SNMP_H
 enum {
@@ -24,7 +12,7 @@
   IPSTATS_MIB_INOCTETS,
   IPSTATS_MIB_INDELIVERS,
   IPSTATS_MIB_OUTFORWDATAGRAMS,
-  IPSTATS_MIB_OUTPKTS,
+  IPSTATS_MIB_OUTREQUESTS,
   IPSTATS_MIB_OUTOCTETS,
   IPSTATS_MIB_INHDRERRORS,
   IPSTATS_MIB_INTOOBIGERRORS,
@@ -56,6 +44,7 @@
   IPSTATS_MIB_ECT0PKTS,
   IPSTATS_MIB_CEPKTS,
   IPSTATS_MIB_REASM_OVERLAPS,
+  IPSTATS_MIB_OUTPKTS,
   __IPSTATS_MIB_MAX
 };
 enum {
@@ -87,6 +76,8 @@
   ICMP_MIB_OUTADDRMASKS,
   ICMP_MIB_OUTADDRMASKREPS,
   ICMP_MIB_CSUMERRORS,
+  ICMP_MIB_RATELIMITGLOBAL,
+  ICMP_MIB_RATELIMITHOST,
   __ICMP_MIB_MAX
 };
 #define __ICMPMSG_MIB_MAX 512
@@ -97,6 +88,7 @@
   ICMP6_MIB_OUTMSGS,
   ICMP6_MIB_OUTERRORS,
   ICMP6_MIB_CSUMERRORS,
+  ICMP6_MIB_RATELIMITHOST,
   __ICMP6_MIB_MAX
 };
 #define __ICMP6MSG_MIB_MAX 512
@@ -260,6 +252,11 @@
   LINUX_MIB_TCPMIGRATEREQSUCCESS,
   LINUX_MIB_TCPMIGRATEREQFAILURE,
   LINUX_MIB_TCPPLBREHASH,
+  LINUX_MIB_TCPAOREQUIRED,
+  LINUX_MIB_TCPAOBAD,
+  LINUX_MIB_TCPAOKEYNOTFOUND,
+  LINUX_MIB_TCPAOGOOD,
+  LINUX_MIB_TCPAODROPPEDICMPS,
   __LINUX_MIB_MAX
 };
 enum {
@@ -292,6 +289,8 @@
   LINUX_MIB_XFRMFWDHDRERROR,
   LINUX_MIB_XFRMOUTSTATEINVALID,
   LINUX_MIB_XFRMACQUIREERROR,
+  LINUX_MIB_XFRMOUTSTATEDIRERROR,
+  LINUX_MIB_XFRMINSTATEDIRERROR,
   __LINUX_MIB_XFRMMAX
 };
 enum {
diff --git a/libc/kernel/uapi/linux/sock_diag.h b/libc/kernel/uapi/linux/sock_diag.h
index a4e40d9..3430984 100644
--- a/libc/kernel/uapi/linux/sock_diag.h
+++ b/libc/kernel/uapi/linux/sock_diag.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI__SOCK_DIAG_H__
 #define _UAPI__SOCK_DIAG_H__
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/socket.h b/libc/kernel/uapi/linux/socket.h
index 4a530a8..27890a4 100644
--- a/libc/kernel/uapi/linux/socket.h
+++ b/libc/kernel/uapi/linux/socket.h
@@ -1,34 +1,14 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_SOCKET_H
 #define _UAPI_LINUX_SOCKET_H
+#include <bits/sockaddr_storage.h>
 #define _K_SS_MAXSIZE 128
 typedef unsigned short __kernel_sa_family_t;
-struct __kernel_sockaddr_storage {
-  union {
-    struct {
-      __kernel_sa_family_t ss_family;
-      char __data[_K_SS_MAXSIZE - sizeof(unsigned short)];
-    };
-    void * __align;
-  };
-};
 #define SOCK_SNDBUF_LOCK 1
 #define SOCK_RCVBUF_LOCK 2
 #define SOCK_BUF_LOCK_MASK (SOCK_SNDBUF_LOCK | SOCK_RCVBUF_LOCK)
diff --git a/libc/kernel/uapi/linux/sockios.h b/libc/kernel/uapi/linux/sockios.h
index 2d13d93..4835e7c 100644
--- a/libc/kernel/uapi/linux/sockios.h
+++ b/libc/kernel/uapi/linux/sockios.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _LINUX_SOCKIOS_H
 #define _LINUX_SOCKIOS_H
 #include <asm/bitsperlong.h>
diff --git a/libc/kernel/uapi/linux/sonet.h b/libc/kernel/uapi/linux/sonet.h
index ca10ec2..0064a68 100644
--- a/libc/kernel/uapi/linux/sonet.h
+++ b/libc/kernel/uapi/linux/sonet.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPILINUX_SONET_H
 #define _UAPILINUX_SONET_H
 #define __SONET_ITEMS __HANDLE_ITEM(section_bip); __HANDLE_ITEM(line_bip); __HANDLE_ITEM(path_bip); __HANDLE_ITEM(line_febe); __HANDLE_ITEM(path_febe); __HANDLE_ITEM(corr_hcs); __HANDLE_ITEM(uncorr_hcs); __HANDLE_ITEM(tx_cells); __HANDLE_ITEM(rx_cells);
diff --git a/libc/kernel/uapi/linux/sonypi.h b/libc/kernel/uapi/linux/sonypi.h
index 84befde..3f9ea20 100644
--- a/libc/kernel/uapi/linux/sonypi.h
+++ b/libc/kernel/uapi/linux/sonypi.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_SONYPI_H_
 #define _UAPI_SONYPI_H_
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/sound.h b/libc/kernel/uapi/linux/sound.h
index c303564..3459fe8 100644
--- a/libc/kernel/uapi/linux/sound.h
+++ b/libc/kernel/uapi/linux/sound.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_SOUND_H
 #define _UAPI_LINUX_SOUND_H
 #include <linux/fs.h>
diff --git a/libc/kernel/uapi/linux/soundcard.h b/libc/kernel/uapi/linux/soundcard.h
index 1c345bd..7ae13b9 100644
--- a/libc/kernel/uapi/linux/soundcard.h
+++ b/libc/kernel/uapi/linux/soundcard.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPISOUNDCARD_H
 #define _UAPISOUNDCARD_H
 #define SOUND_VERSION 0x030802
diff --git a/libc/kernel/uapi/linux/spi/spi.h b/libc/kernel/uapi/linux/spi/spi.h
index 693e752..45c45cd 100644
--- a/libc/kernel/uapi/linux/spi/spi.h
+++ b/libc/kernel/uapi/linux/spi/spi.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_SPI_H
 #define _UAPI_SPI_H
 #include <linux/const.h>
@@ -41,5 +29,6 @@
 #define SPI_RX_OCTAL _BITUL(14)
 #define SPI_3WIRE_HIZ _BITUL(15)
 #define SPI_RX_CPHA_FLIP _BITUL(16)
-#define SPI_MODE_USER_MASK (_BITUL(17) - 1)
+#define SPI_MOSI_IDLE_LOW _BITUL(17)
+#define SPI_MODE_USER_MASK (_BITUL(18) - 1)
 #endif
diff --git a/libc/kernel/uapi/linux/spi/spidev.h b/libc/kernel/uapi/linux/spi/spidev.h
index 19d1d84..2a9320e 100644
--- a/libc/kernel/uapi/linux/spi/spidev.h
+++ b/libc/kernel/uapi/linux/spi/spidev.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef SPIDEV_H
 #define SPIDEV_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/stat.h b/libc/kernel/uapi/linux/stat.h
index 89304ce..aae9ed4 100644
--- a/libc/kernel/uapi/linux/stat.h
+++ b/libc/kernel/uapi/linux/stat.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_STAT_H
 #define _UAPI_LINUX_STAT_H
 #include <linux/types.h>
@@ -80,7 +68,12 @@
   __u64 stx_mnt_id;
   __u32 stx_dio_mem_align;
   __u32 stx_dio_offset_align;
-  __u64 __spare3[12];
+  __u64 stx_subvol;
+  __u32 stx_atomic_write_unit_min;
+  __u32 stx_atomic_write_unit_max;
+  __u32 stx_atomic_write_segments_max;
+  __u32 __spare1[1];
+  __u64 __spare3[9];
 };
 #define STATX_TYPE 0x00000001U
 #define STATX_MODE 0x00000002U
@@ -97,6 +90,9 @@
 #define STATX_BTIME 0x00000800U
 #define STATX_MNT_ID 0x00001000U
 #define STATX_DIOALIGN 0x00002000U
+#define STATX_MNT_ID_UNIQUE 0x00004000U
+#define STATX_SUBVOL 0x00008000U
+#define STATX_WRITE_ATOMIC 0x00010000U
 #define STATX__RESERVED 0x80000000U
 #define STATX_ALL 0x00000fffU
 #define STATX_ATTR_COMPRESSED 0x00000004
@@ -108,4 +104,5 @@
 #define STATX_ATTR_MOUNT_ROOT 0x00002000
 #define STATX_ATTR_VERITY 0x00100000
 #define STATX_ATTR_DAX 0x00200000
+#define STATX_ATTR_WRITE_ATOMIC 0x00400000
 #endif
diff --git a/libc/kernel/uapi/linux/stddef.h b/libc/kernel/uapi/linux/stddef.h
index 6bc6925..dc37c6f 100644
--- a/libc/kernel/uapi/linux/stddef.h
+++ b/libc/kernel/uapi/linux/stddef.h
@@ -1,27 +1,28 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_STDDEF_H
 #define _UAPI_LINUX_STDDEF_H
 #include <linux/compiler_types.h>
 #ifndef __always_inline
 #define __always_inline inline
 #endif
-#define __struct_group(TAG,NAME,ATTRS,MEMBERS...) union { struct { MEMBERS } ATTRS; struct TAG { MEMBERS } ATTRS NAME; }
+#define __struct_group(TAG,NAME,ATTRS,MEMBERS...) union { struct { MEMBERS } ATTRS; struct TAG { MEMBERS } ATTRS NAME; } ATTRS
+#ifdef __cplusplus
+#define __DECLARE_FLEX_ARRAY(T,member) T member[0]
+#else
 #define __DECLARE_FLEX_ARRAY(TYPE,NAME) struct { struct { } __empty_ ##NAME; TYPE NAME[]; }
 #endif
+#ifndef __counted_by
+#define __counted_by(m)
+#endif
+#ifndef __counted_by_le
+#define __counted_by_le(m)
+#endif
+#ifndef __counted_by_be
+#define __counted_by_be(m)
+#endif
+#endif
diff --git a/libc/kernel/uapi/linux/stm.h b/libc/kernel/uapi/linux/stm.h
index b1453f7..4d65e4f 100644
--- a/libc/kernel/uapi/linux/stm.h
+++ b/libc/kernel/uapi/linux/stm.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_STM_H
 #define _UAPI_LINUX_STM_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/string.h b/libc/kernel/uapi/linux/string.h
index 2ff62f2..53e2480 100644
--- a/libc/kernel/uapi/linux/string.h
+++ b/libc/kernel/uapi/linux/string.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_STRING_H_
 #define _UAPI_LINUX_STRING_H_
 #include <string.h>
diff --git a/libc/kernel/uapi/linux/sunrpc/debug.h b/libc/kernel/uapi/linux/sunrpc/debug.h
index 86c4d86..80eeefc 100644
--- a/libc/kernel/uapi/linux/sunrpc/debug.h
+++ b/libc/kernel/uapi/linux/sunrpc/debug.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_SUNRPC_DEBUG_H_
 #define _UAPI_LINUX_SUNRPC_DEBUG_H_
 #define RPCDBG_XPRT 0x0001
diff --git a/libc/kernel/uapi/linux/surface_aggregator/cdev.h b/libc/kernel/uapi/linux/surface_aggregator/cdev.h
index 2e097f0..46ddec4 100644
--- a/libc/kernel/uapi/linux/surface_aggregator/cdev.h
+++ b/libc/kernel/uapi/linux/surface_aggregator/cdev.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_SURFACE_AGGREGATOR_CDEV_H
 #define _UAPI_LINUX_SURFACE_AGGREGATOR_CDEV_H
 #include <linux/ioctl.h>
diff --git a/libc/kernel/uapi/linux/surface_aggregator/dtx.h b/libc/kernel/uapi/linux/surface_aggregator/dtx.h
index dde5ad3..e118e0d 100644
--- a/libc/kernel/uapi/linux/surface_aggregator/dtx.h
+++ b/libc/kernel/uapi/linux/surface_aggregator/dtx.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_SURFACE_AGGREGATOR_DTX_H
 #define _UAPI_LINUX_SURFACE_AGGREGATOR_DTX_H
 #include <linux/ioctl.h>
diff --git a/libc/kernel/uapi/linux/suspend_ioctls.h b/libc/kernel/uapi/linux/suspend_ioctls.h
index b011d93..cabff2e 100644
--- a/libc/kernel/uapi/linux/suspend_ioctls.h
+++ b/libc/kernel/uapi/linux/suspend_ioctls.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _LINUX_SUSPEND_IOCTLS_H
 #define _LINUX_SUSPEND_IOCTLS_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/swab.h b/libc/kernel/uapi/linux/swab.h
index 332023a..5d240e1 100644
--- a/libc/kernel/uapi/linux/swab.h
+++ b/libc/kernel/uapi/linux/swab.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_SWAB_H
 #define _UAPI_LINUX_SWAB_H
 #include <linux/types.h>
@@ -27,29 +15,14 @@
 #define ___constant_swab64(x) ((__u64) ((((__u64) (x) & (__u64) 0x00000000000000ffULL) << 56) | (((__u64) (x) & (__u64) 0x000000000000ff00ULL) << 40) | (((__u64) (x) & (__u64) 0x0000000000ff0000ULL) << 24) | (((__u64) (x) & (__u64) 0x00000000ff000000ULL) << 8) | (((__u64) (x) & (__u64) 0x000000ff00000000ULL) >> 8) | (((__u64) (x) & (__u64) 0x0000ff0000000000ULL) >> 24) | (((__u64) (x) & (__u64) 0x00ff000000000000ULL) >> 40) | (((__u64) (x) & (__u64) 0xff00000000000000ULL) >> 56)))
 #define ___constant_swahw32(x) ((__u32) ((((__u32) (x) & (__u32) 0x0000ffffUL) << 16) | (((__u32) (x) & (__u32) 0xffff0000UL) >> 16)))
 #define ___constant_swahb32(x) ((__u32) ((((__u32) (x) & (__u32) 0x00ff00ffUL) << 8) | (((__u32) (x) & (__u32) 0xff00ff00UL) >> 8)))
-#ifdef __arch_swab16
-#else
-#endif
-#ifdef __arch_swab32
-#else
-#endif
-#ifdef __arch_swab64
-#elif defined(__SWAB_64_THRU_32__)
+#ifdef __SWAB_64_THRU_32__
 #else
 #endif
 static inline __attribute__((__const__)) __u32 __fswahw32(__u32 val) {
-#ifdef __arch_swahw32
-  return __arch_swahw32(val);
-#else
   return ___constant_swahw32(val);
-#endif
 }
 static inline __attribute__((__const__)) __u32 __fswahb32(__u32 val) {
-#ifdef __arch_swahb32
-  return __arch_swahb32(val);
-#else
   return ___constant_swahb32(val);
-#endif
 }
 #define __swab16(x) (__u16) __builtin_bswap16((__u16) (x))
 #define __swab32(x) (__u32) __builtin_bswap32((__u32) (x))
@@ -60,73 +33,33 @@
 #define __swahw32(x) (__builtin_constant_p((__u32) (x)) ? ___constant_swahw32(x) : __fswahw32(x))
 #define __swahb32(x) (__builtin_constant_p((__u32) (x)) ? ___constant_swahb32(x) : __fswahb32(x))
 static __always_inline __u16 __swab16p(const __u16 * p) {
-#ifdef __arch_swab16p
-  return __arch_swab16p(p);
-#else
   return __swab16(* p);
-#endif
 }
 static __always_inline __u32 __swab32p(const __u32 * p) {
-#ifdef __arch_swab32p
-  return __arch_swab32p(p);
-#else
   return __swab32(* p);
-#endif
 }
 static __always_inline __u64 __swab64p(const __u64 * p) {
-#ifdef __arch_swab64p
-  return __arch_swab64p(p);
-#else
   return __swab64(* p);
-#endif
 }
 static inline __u32 __swahw32p(const __u32 * p) {
-#ifdef __arch_swahw32p
-  return __arch_swahw32p(p);
-#else
   return __swahw32(* p);
-#endif
 }
 static inline __u32 __swahb32p(const __u32 * p) {
-#ifdef __arch_swahb32p
-  return __arch_swahb32p(p);
-#else
   return __swahb32(* p);
-#endif
 }
 static inline void __swab16s(__u16 * p) {
-#ifdef __arch_swab16s
-  __arch_swab16s(p);
-#else
   * p = __swab16p(p);
-#endif
 }
 static __always_inline void __swab32s(__u32 * p) {
-#ifdef __arch_swab32s
-  __arch_swab32s(p);
-#else
   * p = __swab32p(p);
-#endif
 }
 static __always_inline void __swab64s(__u64 * p) {
-#ifdef __arch_swab64s
-  __arch_swab64s(p);
-#else
   * p = __swab64p(p);
-#endif
 }
 static inline void __swahw32s(__u32 * p) {
-#ifdef __arch_swahw32s
-  __arch_swahw32s(p);
-#else
   * p = __swahw32p(p);
-#endif
 }
 static inline void __swahb32s(__u32 * p) {
-#ifdef __arch_swahb32s
-  __arch_swahb32s(p);
-#else
   * p = __swahb32p(p);
-#endif
 }
 #endif
diff --git a/libc/kernel/uapi/linux/switchtec_ioctl.h b/libc/kernel/uapi/linux/switchtec_ioctl.h
index 204839d..e5a1b17 100644
--- a/libc/kernel/uapi/linux/switchtec_ioctl.h
+++ b/libc/kernel/uapi/linux/switchtec_ioctl.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_SWITCHTEC_IOCTL_H
 #define _UAPI_LINUX_SWITCHTEC_IOCTL_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/sync_file.h b/libc/kernel/uapi/linux/sync_file.h
index 497300e..bde8c16 100644
--- a/libc/kernel/uapi/linux/sync_file.h
+++ b/libc/kernel/uapi/linux/sync_file.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_SYNC_H
 #define _UAPI_LINUX_SYNC_H
 #include <linux/ioctl.h>
@@ -42,7 +30,12 @@
   __u32 pad;
   __u64 sync_fence_info;
 };
+struct sync_set_deadline {
+  __u64 deadline_ns;
+  __u64 pad;
+};
 #define SYNC_IOC_MAGIC '>'
 #define SYNC_IOC_MERGE _IOWR(SYNC_IOC_MAGIC, 3, struct sync_merge_data)
 #define SYNC_IOC_FILE_INFO _IOWR(SYNC_IOC_MAGIC, 4, struct sync_file_info)
+#define SYNC_IOC_SET_DEADLINE _IOW(SYNC_IOC_MAGIC, 5, struct sync_set_deadline)
 #endif
diff --git a/libc/kernel/uapi/linux/synclink.h b/libc/kernel/uapi/linux/synclink.h
index ba8ecb9..d84f6c7 100644
--- a/libc/kernel/uapi/linux/synclink.h
+++ b/libc/kernel/uapi/linux/synclink.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_SYNCLINK_H_
 #define _UAPI_SYNCLINK_H_
 #define SYNCLINK_H_VERSION 3.6
diff --git a/libc/kernel/uapi/linux/sysctl.h b/libc/kernel/uapi/linux/sysctl.h
index 5714323..6768979 100644
--- a/libc/kernel/uapi/linux/sysctl.h
+++ b/libc/kernel/uapi/linux/sysctl.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_SYSCTL_H
 #define _UAPI_LINUX_SYSCTL_H
 #include <linux/const.h>
diff --git a/libc/kernel/uapi/linux/sysinfo.h b/libc/kernel/uapi/linux/sysinfo.h
index 6501a8c..d9b54b0 100644
--- a/libc/kernel/uapi/linux/sysinfo.h
+++ b/libc/kernel/uapi/linux/sysinfo.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _LINUX_SYSINFO_H
 #define _LINUX_SYSINFO_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/target_core_user.h b/libc/kernel/uapi/linux/target_core_user.h
index 83e155e..d363251 100644
--- a/libc/kernel/uapi/linux/target_core_user.h
+++ b/libc/kernel/uapi/linux/target_core_user.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __TARGET_CORE_USER_H
 #define __TARGET_CORE_USER_H
 #include <linux/types.h>
@@ -61,7 +49,7 @@
       __u64 cdb_off;
       __u64 __pad1;
       __u64 __pad2;
-      struct iovec iov[0];
+      __DECLARE_FLEX_ARRAY(struct iovec, iov);
     } req;
     struct {
       __u8 scsi_status;
diff --git a/libc/kernel/uapi/linux/taskstats.h b/libc/kernel/uapi/linux/taskstats.h
index c1cda52..4914b2f 100644
--- a/libc/kernel/uapi/linux/taskstats.h
+++ b/libc/kernel/uapi/linux/taskstats.h
@@ -1,25 +1,13 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _LINUX_TASKSTATS_H
 #define _LINUX_TASKSTATS_H
 #include <linux/types.h>
-#define TASKSTATS_VERSION 13
+#define TASKSTATS_VERSION 14
 #define TS_COMM_LEN 32
 struct taskstats {
   __u16 version;
@@ -77,6 +65,8 @@
   __u64 ac_exe_inode;
   __u64 wpcopy_count;
   __u64 wpcopy_delay_total;
+  __u64 irq_count;
+  __u64 irq_delay_total;
 };
 enum {
   TASKSTATS_CMD_UNSPEC = 0,
diff --git a/libc/kernel/uapi/linux/tc_act/tc_bpf.h b/libc/kernel/uapi/linux/tc_act/tc_bpf.h
index 48094d4..a9d59af 100644
--- a/libc/kernel/uapi/linux/tc_act/tc_bpf.h
+++ b/libc/kernel/uapi/linux/tc_act/tc_bpf.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __LINUX_TC_BPF_H
 #define __LINUX_TC_BPF_H
 #include <linux/pkt_cls.h>
diff --git a/libc/kernel/uapi/linux/tc_act/tc_connmark.h b/libc/kernel/uapi/linux/tc_act/tc_connmark.h
index 5fe979c..a38c351 100644
--- a/libc/kernel/uapi/linux/tc_act/tc_connmark.h
+++ b/libc/kernel/uapi/linux/tc_act/tc_connmark.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __UAPI_TC_CONNMARK_H
 #define __UAPI_TC_CONNMARK_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/tc_act/tc_csum.h b/libc/kernel/uapi/linux/tc_act/tc_csum.h
index 1fcd00d..ce6b60a 100644
--- a/libc/kernel/uapi/linux/tc_act/tc_csum.h
+++ b/libc/kernel/uapi/linux/tc_act/tc_csum.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __LINUX_TC_CSUM_H
 #define __LINUX_TC_CSUM_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/tc_act/tc_ct.h b/libc/kernel/uapi/linux/tc_act/tc_ct.h
index be83c60..9563d3e 100644
--- a/libc/kernel/uapi/linux/tc_act/tc_ct.h
+++ b/libc/kernel/uapi/linux/tc_act/tc_ct.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __UAPI_TC_CT_H
 #define __UAPI_TC_CT_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/tc_act/tc_ctinfo.h b/libc/kernel/uapi/linux/tc_act/tc_ctinfo.h
index 18fdf60..ffccd3e 100644
--- a/libc/kernel/uapi/linux/tc_act/tc_ctinfo.h
+++ b/libc/kernel/uapi/linux/tc_act/tc_ctinfo.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __UAPI_TC_CTINFO_H
 #define __UAPI_TC_CTINFO_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/tc_act/tc_defact.h b/libc/kernel/uapi/linux/tc_act/tc_defact.h
index f3fb529..40d8d55 100644
--- a/libc/kernel/uapi/linux/tc_act/tc_defact.h
+++ b/libc/kernel/uapi/linux/tc_act/tc_defact.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __LINUX_TC_DEF_H
 #define __LINUX_TC_DEF_H
 #include <linux/pkt_cls.h>
diff --git a/libc/kernel/uapi/linux/tc_act/tc_gact.h b/libc/kernel/uapi/linux/tc_act/tc_gact.h
index ac96dff..39bf5a4 100644
--- a/libc/kernel/uapi/linux/tc_act/tc_gact.h
+++ b/libc/kernel/uapi/linux/tc_act/tc_gact.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __LINUX_TC_GACT_H
 #define __LINUX_TC_GACT_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/tc_act/tc_gate.h b/libc/kernel/uapi/linux/tc_act/tc_gate.h
index f0a6412..dca6f29 100644
--- a/libc/kernel/uapi/linux/tc_act/tc_gate.h
+++ b/libc/kernel/uapi/linux/tc_act/tc_gate.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __LINUX_TC_GATE_H
 #define __LINUX_TC_GATE_H
 #include <linux/pkt_cls.h>
diff --git a/libc/kernel/uapi/linux/tc_act/tc_ife.h b/libc/kernel/uapi/linux/tc_act/tc_ife.h
index 346ebac..61e88e4 100644
--- a/libc/kernel/uapi/linux/tc_act/tc_ife.h
+++ b/libc/kernel/uapi/linux/tc_act/tc_ife.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __UAPI_TC_IFE_H
 #define __UAPI_TC_IFE_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/tc_act/tc_ipt.h b/libc/kernel/uapi/linux/tc_act/tc_ipt.h
deleted file mode 100644
index d578ce7..0000000
--- a/libc/kernel/uapi/linux/tc_act/tc_ipt.h
+++ /dev/null
@@ -1,34 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef __LINUX_TC_IPT_H
-#define __LINUX_TC_IPT_H
-#include <linux/pkt_cls.h>
-enum {
-  TCA_IPT_UNSPEC,
-  TCA_IPT_TABLE,
-  TCA_IPT_HOOK,
-  TCA_IPT_INDEX,
-  TCA_IPT_CNT,
-  TCA_IPT_TM,
-  TCA_IPT_TARG,
-  TCA_IPT_PAD,
-  __TCA_IPT_MAX
-};
-#define TCA_IPT_MAX (__TCA_IPT_MAX - 1)
-#endif
diff --git a/libc/kernel/uapi/linux/tc_act/tc_mirred.h b/libc/kernel/uapi/linux/tc_act/tc_mirred.h
index af04d03..dc51bc7 100644
--- a/libc/kernel/uapi/linux/tc_act/tc_mirred.h
+++ b/libc/kernel/uapi/linux/tc_act/tc_mirred.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __LINUX_TC_MIR_H
 #define __LINUX_TC_MIR_H
 #include <linux/types.h>
@@ -34,6 +22,7 @@
   TCA_MIRRED_TM,
   TCA_MIRRED_PARMS,
   TCA_MIRRED_PAD,
+  TCA_MIRRED_BLOCKID,
   __TCA_MIRRED_MAX
 };
 #define TCA_MIRRED_MAX (__TCA_MIRRED_MAX - 1)
diff --git a/libc/kernel/uapi/linux/tc_act/tc_mpls.h b/libc/kernel/uapi/linux/tc_act/tc_mpls.h
index 5e23fde..8a45549 100644
--- a/libc/kernel/uapi/linux/tc_act/tc_mpls.h
+++ b/libc/kernel/uapi/linux/tc_act/tc_mpls.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __LINUX_TC_MPLS_H
 #define __LINUX_TC_MPLS_H
 #include <linux/pkt_cls.h>
diff --git a/libc/kernel/uapi/linux/tc_act/tc_nat.h b/libc/kernel/uapi/linux/tc_act/tc_nat.h
index 14aeffb..9f35f70 100644
--- a/libc/kernel/uapi/linux/tc_act/tc_nat.h
+++ b/libc/kernel/uapi/linux/tc_act/tc_nat.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __LINUX_TC_NAT_H
 #define __LINUX_TC_NAT_H
 #include <linux/pkt_cls.h>
diff --git a/libc/kernel/uapi/linux/tc_act/tc_pedit.h b/libc/kernel/uapi/linux/tc_act/tc_pedit.h
index cb8bd22..9635370 100644
--- a/libc/kernel/uapi/linux/tc_act/tc_pedit.h
+++ b/libc/kernel/uapi/linux/tc_act/tc_pedit.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __LINUX_TC_PED_H
 #define __LINUX_TC_PED_H
 #include <linux/types.h>
@@ -65,7 +53,7 @@
   tc_gen;
   unsigned char nkeys;
   unsigned char flags;
-  struct tc_pedit_key keys[0];
+  struct tc_pedit_key keys[] __counted_by(nkeys);
 };
 #define tc_pedit tc_pedit_sel
 #endif
diff --git a/libc/kernel/uapi/linux/tc_act/tc_sample.h b/libc/kernel/uapi/linux/tc_act/tc_sample.h
index 7d9a32e..80c86ed 100644
--- a/libc/kernel/uapi/linux/tc_act/tc_sample.h
+++ b/libc/kernel/uapi/linux/tc_act/tc_sample.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __LINUX_TC_SAMPLE_H
 #define __LINUX_TC_SAMPLE_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/tc_act/tc_skbedit.h b/libc/kernel/uapi/linux/tc_act/tc_skbedit.h
index b041a6a..853c4ae 100644
--- a/libc/kernel/uapi/linux/tc_act/tc_skbedit.h
+++ b/libc/kernel/uapi/linux/tc_act/tc_skbedit.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __LINUX_TC_SKBEDIT_H
 #define __LINUX_TC_SKBEDIT_H
 #include <linux/pkt_cls.h>
diff --git a/libc/kernel/uapi/linux/tc_act/tc_skbmod.h b/libc/kernel/uapi/linux/tc_act/tc_skbmod.h
index f0cd928..7eaea38 100644
--- a/libc/kernel/uapi/linux/tc_act/tc_skbmod.h
+++ b/libc/kernel/uapi/linux/tc_act/tc_skbmod.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __LINUX_TC_SKBMOD_H
 #define __LINUX_TC_SKBMOD_H
 #include <linux/pkt_cls.h>
diff --git a/libc/kernel/uapi/linux/tc_act/tc_tunnel_key.h b/libc/kernel/uapi/linux/tc_act/tc_tunnel_key.h
index e137ae8..bca7cb5 100644
--- a/libc/kernel/uapi/linux/tc_act/tc_tunnel_key.h
+++ b/libc/kernel/uapi/linux/tc_act/tc_tunnel_key.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __LINUX_TC_TUNNEL_KEY_H
 #define __LINUX_TC_TUNNEL_KEY_H
 #include <linux/pkt_cls.h>
@@ -40,6 +28,7 @@
   TCA_TUNNEL_KEY_ENC_OPTS,
   TCA_TUNNEL_KEY_ENC_TOS,
   TCA_TUNNEL_KEY_ENC_TTL,
+  TCA_TUNNEL_KEY_NO_FRAG,
   __TCA_TUNNEL_KEY_MAX,
 };
 #define TCA_TUNNEL_KEY_MAX (__TCA_TUNNEL_KEY_MAX - 1)
diff --git a/libc/kernel/uapi/linux/tc_act/tc_vlan.h b/libc/kernel/uapi/linux/tc_act/tc_vlan.h
index 004c7ae..c617ea7 100644
--- a/libc/kernel/uapi/linux/tc_act/tc_vlan.h
+++ b/libc/kernel/uapi/linux/tc_act/tc_vlan.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __LINUX_TC_VLAN_H
 #define __LINUX_TC_VLAN_H
 #include <linux/pkt_cls.h>
diff --git a/libc/kernel/uapi/linux/tc_ematch/tc_em_cmp.h b/libc/kernel/uapi/linux/tc_ematch/tc_em_cmp.h
index 4e01cf5..e686bf2 100644
--- a/libc/kernel/uapi/linux/tc_ematch/tc_em_cmp.h
+++ b/libc/kernel/uapi/linux/tc_ematch/tc_em_cmp.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __LINUX_TC_EM_CMP_H
 #define __LINUX_TC_EM_CMP_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/tc_ematch/tc_em_ipt.h b/libc/kernel/uapi/linux/tc_ematch/tc_em_ipt.h
index 8cd06ee..666c905 100644
--- a/libc/kernel/uapi/linux/tc_ematch/tc_em_ipt.h
+++ b/libc/kernel/uapi/linux/tc_ematch/tc_em_ipt.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __LINUX_TC_EM_IPT_H
 #define __LINUX_TC_EM_IPT_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/tc_ematch/tc_em_meta.h b/libc/kernel/uapi/linux/tc_ematch/tc_em_meta.h
index 1b91cd1..fea9dc0 100644
--- a/libc/kernel/uapi/linux/tc_ematch/tc_em_meta.h
+++ b/libc/kernel/uapi/linux/tc_ematch/tc_em_meta.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __LINUX_TC_EM_META_H
 #define __LINUX_TC_EM_META_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/tc_ematch/tc_em_nbyte.h b/libc/kernel/uapi/linux/tc_ematch/tc_em_nbyte.h
index cce2d2c..5489bed 100644
--- a/libc/kernel/uapi/linux/tc_ematch/tc_em_nbyte.h
+++ b/libc/kernel/uapi/linux/tc_ematch/tc_em_nbyte.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __LINUX_TC_EM_NBYTE_H
 #define __LINUX_TC_EM_NBYTE_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/tc_ematch/tc_em_text.h b/libc/kernel/uapi/linux/tc_ematch/tc_em_text.h
index 9d0ab65..794c69a 100644
--- a/libc/kernel/uapi/linux/tc_ematch/tc_em_text.h
+++ b/libc/kernel/uapi/linux/tc_ematch/tc_em_text.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __LINUX_TC_EM_TEXT_H
 #define __LINUX_TC_EM_TEXT_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/tcp.h b/libc/kernel/uapi/linux/tcp.h
index 7a93208..c71715c 100644
--- a/libc/kernel/uapi/linux/tcp.h
+++ b/libc/kernel/uapi/linux/tcp.h
@@ -1,42 +1,15 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_TCP_H
 #define _UAPI_LINUX_TCP_H
+#include <bits/tcphdr.h>
 #include <linux/types.h>
 #include <asm/byteorder.h>
 #include <linux/socket.h>
-struct tcphdr {
-  __be16 source;
-  __be16 dest;
-  __be32 seq;
-  __be32 ack_seq;
-#ifdef __LITTLE_ENDIAN_BITFIELD
-  __u16 res1 : 4, doff : 4, fin : 1, syn : 1, rst : 1, psh : 1, ack : 1, urg : 1, ece : 1, cwr : 1;
-#elif defined(__BIG_ENDIAN_BITFIELD)
-  __u16 doff : 4, res1 : 4, cwr : 1, ece : 1, urg : 1, ack : 1, psh : 1, rst : 1, syn : 1, fin : 1;
-#else
-#error "Adjust your <asm/byteorder.h> defines"
-#endif
-  __be16 window;
-  __sum16 check;
-  __be16 urg_ptr;
-};
 union tcp_word_hdr {
   struct tcphdr hdr;
   __be32 words[5];
@@ -93,6 +66,12 @@
 #define TCP_INQ 36
 #define TCP_CM_INQ TCP_INQ
 #define TCP_TX_DELAY 37
+#define TCP_AO_ADD_KEY 38
+#define TCP_AO_DEL_KEY 39
+#define TCP_AO_INFO 40
+#define TCP_AO_GET_KEYS 41
+#define TCP_AO_REPAIR 42
+#define TCP_IS_MPTCP 43
 #define TCP_REPAIR_ON 1
 #define TCP_REPAIR_OFF 0
 #define TCP_REPAIR_OFF_NO_WP - 1
@@ -125,6 +104,7 @@
 #define TCPI_OPT_ECN 8
 #define TCPI_OPT_ECN_SEEN 16
 #define TCPI_OPT_SYN_DATA 32
+#define TCPI_OPT_USEC_TS 64
 enum tcp_ca_state {
   TCP_CA_Open = 0,
 #define TCPF_CA_Open (1 << TCP_CA_Open)
@@ -194,6 +174,9 @@
   __u32 tcpi_snd_wnd;
   __u32 tcpi_rcv_wnd;
   __u32 tcpi_rehash;
+  __u16 tcpi_total_rto;
+  __u16 tcpi_total_rto_recoveries;
+  __u32 tcpi_total_rto_time;
 };
 enum {
   TCP_NLA_PAD,
@@ -229,7 +212,7 @@
 #define TCP_MD5SIG_FLAG_PREFIX 0x1
 #define TCP_MD5SIG_FLAG_IFINDEX 0x2
 struct tcp_md5sig {
-  struct __kernel_sockaddr_storage tcpm_addr;
+  struct sockaddr_storage tcpm_addr;
   __u8 tcpm_flags;
   __u8 tcpm_prefixlen;
   __u16 tcpm_keylen;
@@ -243,6 +226,68 @@
   __be32 tcpm_addr[4];
   __u8 tcpm_key[TCP_MD5SIG_MAXKEYLEN];
 };
+#define TCP_AO_MAXKEYLEN 80
+#define TCP_AO_KEYF_IFINDEX (1 << 0)
+#define TCP_AO_KEYF_EXCLUDE_OPT (1 << 1)
+struct tcp_ao_add {
+  struct sockaddr_storage addr;
+  char alg_name[64];
+  __s32 ifindex;
+  __u32 set_current : 1, set_rnext : 1, reserved : 30;
+  __u16 reserved2;
+  __u8 prefix;
+  __u8 sndid;
+  __u8 rcvid;
+  __u8 maclen;
+  __u8 keyflags;
+  __u8 keylen;
+  __u8 key[TCP_AO_MAXKEYLEN];
+} __attribute__((aligned(8)));
+struct tcp_ao_del {
+  struct sockaddr_storage addr;
+  __s32 ifindex;
+  __u32 set_current : 1, set_rnext : 1, del_async : 1, reserved : 29;
+  __u16 reserved2;
+  __u8 prefix;
+  __u8 sndid;
+  __u8 rcvid;
+  __u8 current_key;
+  __u8 rnext;
+  __u8 keyflags;
+} __attribute__((aligned(8)));
+struct tcp_ao_info_opt {
+  __u32 set_current : 1, set_rnext : 1, ao_required : 1, set_counters : 1, accept_icmps : 1, reserved : 27;
+  __u16 reserved2;
+  __u8 current_key;
+  __u8 rnext;
+  __u64 pkt_good;
+  __u64 pkt_bad;
+  __u64 pkt_key_not_found;
+  __u64 pkt_ao_required;
+  __u64 pkt_dropped_icmp;
+} __attribute__((aligned(8)));
+struct tcp_ao_getsockopt {
+  struct sockaddr_storage addr;
+  char alg_name[64];
+  __u8 key[TCP_AO_MAXKEYLEN];
+  __u32 nkeys;
+  __u16 is_current : 1, is_rnext : 1, get_all : 1, reserved : 13;
+  __u8 sndid;
+  __u8 rcvid;
+  __u8 prefix;
+  __u8 maclen;
+  __u8 keyflags;
+  __u8 keylen;
+  __s32 ifindex;
+  __u64 pkt_good;
+  __u64 pkt_bad;
+} __attribute__((aligned(8)));
+struct tcp_ao_repair {
+  __be32 snt_isn;
+  __be32 rcv_isn;
+  __u32 snd_sne;
+  __u32 rcv_sne;
+} __attribute__((aligned(8)));
 #define TCP_RECEIVE_ZEROCOPY_FLAG_TLB_CLEAN_HINT 0x1
 struct tcp_zerocopy_receive {
   __u64 address;
diff --git a/libc/kernel/uapi/linux/tcp_metrics.h b/libc/kernel/uapi/linux/tcp_metrics.h
index b9eb141..46ca141 100644
--- a/libc/kernel/uapi/linux/tcp_metrics.h
+++ b/libc/kernel/uapi/linux/tcp_metrics.h
@@ -1,23 +1,11 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef _LINUX_TCP_METRICS_H
-#define _LINUX_TCP_METRICS_H
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
+#ifndef _UAPI_LINUX_TCP_METRICS_H
+#define _UAPI_LINUX_TCP_METRICS_H
 #include <linux/types.h>
 #define TCP_METRICS_GENL_NAME "tcp_metrics"
 #define TCP_METRICS_GENL_VERSION 0x1
@@ -33,6 +21,17 @@
 };
 #define TCP_METRIC_MAX (__TCP_METRIC_MAX - 1)
 enum {
+  TCP_METRICS_A_METRICS_RTT = 1,
+  TCP_METRICS_A_METRICS_RTTVAR,
+  TCP_METRICS_A_METRICS_SSTHRESH,
+  TCP_METRICS_A_METRICS_CWND,
+  TCP_METRICS_A_METRICS_REODERING,
+  TCP_METRICS_A_METRICS_RTT_US,
+  TCP_METRICS_A_METRICS_RTTVAR_US,
+  __TCP_METRICS_A_METRICS_MAX
+};
+#define TCP_METRICS_A_METRICS_MAX (__TCP_METRICS_A_METRICS_MAX - 1)
+enum {
   TCP_METRICS_ATTR_UNSPEC,
   TCP_METRICS_ATTR_ADDR_IPV4,
   TCP_METRICS_ATTR_ADDR_IPV6,
diff --git a/libc/kernel/uapi/linux/tdx-guest.h b/libc/kernel/uapi/linux/tdx-guest.h
index 50f9c62..3e84a0d 100644
--- a/libc/kernel/uapi/linux/tdx-guest.h
+++ b/libc/kernel/uapi/linux/tdx-guest.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_TDX_GUEST_H_
 #define _UAPI_LINUX_TDX_GUEST_H_
 #include <linux/ioctl.h>
diff --git a/libc/kernel/uapi/linux/tee.h b/libc/kernel/uapi/linux/tee.h
index 404b7b2..6e4cff3 100644
--- a/libc/kernel/uapi/linux/tee.h
+++ b/libc/kernel/uapi/linux/tee.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __TEE_H
 #define __TEE_H
 #include <linux/ioctl.h>
@@ -30,6 +18,7 @@
 #define TEE_MEMREF_NULL (__u64) (- 1)
 #define TEE_IMPL_ID_OPTEE 1
 #define TEE_IMPL_ID_AMDTEE 2
+#define TEE_IMPL_ID_TSTEE 3
 #define TEE_OPTEE_CAP_TZ (1 << 0)
 struct tee_ioctl_version_data {
   __u32 impl_id;
diff --git a/libc/kernel/uapi/linux/termios.h b/libc/kernel/uapi/linux/termios.h
index cde4099..fb693e9 100644
--- a/libc/kernel/uapi/linux/termios.h
+++ b/libc/kernel/uapi/linux/termios.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _LINUX_TERMIOS_H
 #define _LINUX_TERMIOS_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/thermal.h b/libc/kernel/uapi/linux/thermal.h
index 2f9dccb..f9d67c5 100644
--- a/libc/kernel/uapi/linux/thermal.h
+++ b/libc/kernel/uapi/linux/thermal.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_THERMAL_H
 #define _UAPI_LINUX_THERMAL_H
 #define THERMAL_NAME_LENGTH 20
diff --git a/libc/kernel/uapi/linux/thp7312.h b/libc/kernel/uapi/linux/thp7312.h
new file mode 100644
index 0000000..fbd5571
--- /dev/null
+++ b/libc/kernel/uapi/linux/thp7312.h
@@ -0,0 +1,14 @@
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
+#ifndef __UAPI_THP7312_H_
+#define __UAPI_THP7312_H_
+#include <linux/v4l2-controls.h>
+#define V4L2_CID_THP7312_LOW_LIGHT_COMPENSATION (V4L2_CID_USER_THP7312_BASE + 0x01)
+#define V4L2_CID_THP7312_AUTO_FOCUS_METHOD (V4L2_CID_USER_THP7312_BASE + 0x02)
+#define V4L2_CID_THP7312_NOISE_REDUCTION_AUTO (V4L2_CID_USER_THP7312_BASE + 0x03)
+#define V4L2_CID_THP7312_NOISE_REDUCTION_ABSOLUTE (V4L2_CID_USER_THP7312_BASE + 0x04)
+#endif
diff --git a/libc/kernel/uapi/linux/time.h b/libc/kernel/uapi/linux/time.h
index 55d0e6e..a10e586 100644
--- a/libc/kernel/uapi/linux/time.h
+++ b/libc/kernel/uapi/linux/time.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_TIME_H
 #define _UAPI_LINUX_TIME_H
 #include <bits/timespec.h>
diff --git a/libc/kernel/uapi/linux/time_types.h b/libc/kernel/uapi/linux/time_types.h
index 8c70a56..bca8698 100644
--- a/libc/kernel/uapi/linux/time_types.h
+++ b/libc/kernel/uapi/linux/time_types.h
@@ -1,23 +1,12 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_TIME_TYPES_H
 #define _UAPI_LINUX_TIME_TYPES_H
+#include <linux/time.h>
 #include <linux/types.h>
 struct __kernel_timespec {
   __kernel_time64_t tv_sec;
diff --git a/libc/kernel/uapi/linux/timerfd.h b/libc/kernel/uapi/linux/timerfd.h
index eaa415a..efc6219 100644
--- a/libc/kernel/uapi/linux/timerfd.h
+++ b/libc/kernel/uapi/linux/timerfd.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_TIMERFD_H
 #define _UAPI_LINUX_TIMERFD_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/times.h b/libc/kernel/uapi/linux/times.h
index b204b78..30e2e98 100644
--- a/libc/kernel/uapi/linux/times.h
+++ b/libc/kernel/uapi/linux/times.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _LINUX_TIMES_H
 #define _LINUX_TIMES_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/timex.h b/libc/kernel/uapi/linux/timex.h
index 803eaec..1841e98 100644
--- a/libc/kernel/uapi/linux/timex.h
+++ b/libc/kernel/uapi/linux/timex.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_TIMEX_H
 #define _UAPI_LINUX_TIMEX_H
 #include <linux/time.h>
diff --git a/libc/kernel/uapi/linux/tiocl.h b/libc/kernel/uapi/linux/tiocl.h
index 4649607..c4297ad 100644
--- a/libc/kernel/uapi/linux/tiocl.h
+++ b/libc/kernel/uapi/linux/tiocl.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _LINUX_TIOCL_H
 #define _LINUX_TIOCL_H
 #define TIOCL_SETSEL 2
diff --git a/libc/kernel/uapi/linux/tipc.h b/libc/kernel/uapi/linux/tipc.h
index c66754c..2313af5 100644
--- a/libc/kernel/uapi/linux/tipc.h
+++ b/libc/kernel/uapi/linux/tipc.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _LINUX_TIPC_H_
 #define _LINUX_TIPC_H_
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/tipc_config.h b/libc/kernel/uapi/linux/tipc_config.h
index c6ee1d1..cd781d9 100644
--- a/libc/kernel/uapi/linux/tipc_config.h
+++ b/libc/kernel/uapi/linux/tipc_config.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _LINUX_TIPC_CONFIG_H_
 #define _LINUX_TIPC_CONFIG_H_
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/tipc_netlink.h b/libc/kernel/uapi/linux/tipc_netlink.h
index 39be948..afc4518 100644
--- a/libc/kernel/uapi/linux/tipc_netlink.h
+++ b/libc/kernel/uapi/linux/tipc_netlink.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _LINUX_TIPC_NETLINK_H_
 #define _LINUX_TIPC_NETLINK_H_
 #define TIPC_GENL_V2_NAME "TIPCv2"
diff --git a/libc/kernel/uapi/linux/tipc_sockets_diag.h b/libc/kernel/uapi/linux/tipc_sockets_diag.h
index 7d7d016..066d2ec 100644
--- a/libc/kernel/uapi/linux/tipc_sockets_diag.h
+++ b/libc/kernel/uapi/linux/tipc_sockets_diag.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI__TIPC_SOCKETS_DIAG_H__
 #define _UAPI__TIPC_SOCKETS_DIAG_H__
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/tls.h b/libc/kernel/uapi/linux/tls.h
index fcab74b..2720476 100644
--- a/libc/kernel/uapi/linux/tls.h
+++ b/libc/kernel/uapi/linux/tls.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_TLS_H
 #define _UAPI_LINUX_TLS_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/toshiba.h b/libc/kernel/uapi/linux/toshiba.h
index 5b59d69..775efbb 100644
--- a/libc/kernel/uapi/linux/toshiba.h
+++ b/libc/kernel/uapi/linux/toshiba.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_TOSHIBA_H
 #define _UAPI_LINUX_TOSHIBA_H
 #define TOSH_PROC "/proc/toshiba"
diff --git a/libc/kernel/uapi/linux/tps6594_pfsm.h b/libc/kernel/uapi/linux/tps6594_pfsm.h
new file mode 100644
index 0000000..38788e0
--- /dev/null
+++ b/libc/kernel/uapi/linux/tps6594_pfsm.h
@@ -0,0 +1,24 @@
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
+#ifndef __TPS6594_PFSM_H
+#define __TPS6594_PFSM_H
+#include <linux/const.h>
+#include <linux/ioctl.h>
+#include <linux/types.h>
+struct pmic_state_opt {
+  __u8 gpio_retention;
+  __u8 ddr_retention;
+  __u8 mcu_only_startup_dest;
+};
+#define PMIC_BASE 'P'
+#define PMIC_GOTO_STANDBY _IO(PMIC_BASE, 0)
+#define PMIC_GOTO_LP_STANDBY _IO(PMIC_BASE, 1)
+#define PMIC_UPDATE_PGM _IO(PMIC_BASE, 2)
+#define PMIC_SET_ACTIVE_STATE _IO(PMIC_BASE, 3)
+#define PMIC_SET_MCU_ONLY_STATE _IOW(PMIC_BASE, 4, struct pmic_state_opt)
+#define PMIC_SET_RETENTION_STATE _IOW(PMIC_BASE, 5, struct pmic_state_opt)
+#endif
diff --git a/libc/kernel/uapi/linux/trace_mmap.h b/libc/kernel/uapi/linux/trace_mmap.h
new file mode 100644
index 0000000..e891a7e
--- /dev/null
+++ b/libc/kernel/uapi/linux/trace_mmap.h
@@ -0,0 +1,28 @@
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
+#ifndef _TRACE_MMAP_H_
+#define _TRACE_MMAP_H_
+#include <linux/types.h>
+struct trace_buffer_meta {
+  __u32 meta_page_size;
+  __u32 meta_struct_len;
+  __u32 subbuf_size;
+  __u32 nr_subbufs;
+  struct {
+    __u64 lost_events;
+    __u32 id;
+    __u32 read;
+  } reader;
+  __u64 flags;
+  __u64 entries;
+  __u64 overrun;
+  __u64 read;
+  __u64 Reserved1;
+  __u64 Reserved2;
+};
+#define TRACE_MMAP_IOCTL_GET_READER _IO('R', 0x20)
+#endif
diff --git a/libc/kernel/uapi/linux/tty.h b/libc/kernel/uapi/linux/tty.h
index a94e6e6..9faa842 100644
--- a/libc/kernel/uapi/linux/tty.h
+++ b/libc/kernel/uapi/linux/tty.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_TTY_H
 #define _UAPI_LINUX_TTY_H
 #define N_TTY 0
diff --git a/libc/kernel/uapi/linux/tty_flags.h b/libc/kernel/uapi/linux/tty_flags.h
index b8354cf..b916161 100644
--- a/libc/kernel/uapi/linux/tty_flags.h
+++ b/libc/kernel/uapi/linux/tty_flags.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _LINUX_TTY_FLAGS_H
 #define _LINUX_TTY_FLAGS_H
 #define ASYNCB_HUP_NOTIFY 0
diff --git a/libc/kernel/uapi/linux/types.h b/libc/kernel/uapi/linux/types.h
index f41d676..2f57e85 100644
--- a/libc/kernel/uapi/linux/types.h
+++ b/libc/kernel/uapi/linux/types.h
@@ -1,26 +1,18 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_TYPES_H
 #define _UAPI_LINUX_TYPES_H
 #include <asm/types.h>
 #ifndef __ASSEMBLY__
 #include <linux/posix_types.h>
+#ifdef __SIZEOF_INT128__
+typedef __signed__ __int128 __s128 __attribute__((aligned(16)));
+typedef unsigned __int128 __u128 __attribute__((aligned(16)));
+#endif
 #define __bitwise
 #define __bitwise__ __bitwise
 typedef __u16 __bitwise __le16;
diff --git a/libc/kernel/uapi/linux/ublk_cmd.h b/libc/kernel/uapi/linux/ublk_cmd.h
index 8c9cbeb..8e7732b 100644
--- a/libc/kernel/uapi/linux/ublk_cmd.h
+++ b/libc/kernel/uapi/linux/ublk_cmd.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef USER_BLK_DRV_CMD_INC_H
 #define USER_BLK_DRV_CMD_INC_H
 #include <linux/types.h>
@@ -29,20 +17,54 @@
 #define UBLK_CMD_GET_PARAMS 0x09
 #define UBLK_CMD_START_USER_RECOVERY 0x10
 #define UBLK_CMD_END_USER_RECOVERY 0x11
+#define UBLK_CMD_GET_DEV_INFO2 0x12
+#define UBLK_U_CMD_GET_QUEUE_AFFINITY _IOR('u', UBLK_CMD_GET_QUEUE_AFFINITY, struct ublksrv_ctrl_cmd)
+#define UBLK_U_CMD_GET_DEV_INFO _IOR('u', UBLK_CMD_GET_DEV_INFO, struct ublksrv_ctrl_cmd)
+#define UBLK_U_CMD_ADD_DEV _IOWR('u', UBLK_CMD_ADD_DEV, struct ublksrv_ctrl_cmd)
+#define UBLK_U_CMD_DEL_DEV _IOWR('u', UBLK_CMD_DEL_DEV, struct ublksrv_ctrl_cmd)
+#define UBLK_U_CMD_START_DEV _IOWR('u', UBLK_CMD_START_DEV, struct ublksrv_ctrl_cmd)
+#define UBLK_U_CMD_STOP_DEV _IOWR('u', UBLK_CMD_STOP_DEV, struct ublksrv_ctrl_cmd)
+#define UBLK_U_CMD_SET_PARAMS _IOWR('u', UBLK_CMD_SET_PARAMS, struct ublksrv_ctrl_cmd)
+#define UBLK_U_CMD_GET_PARAMS _IOR('u', UBLK_CMD_GET_PARAMS, struct ublksrv_ctrl_cmd)
+#define UBLK_U_CMD_START_USER_RECOVERY _IOWR('u', UBLK_CMD_START_USER_RECOVERY, struct ublksrv_ctrl_cmd)
+#define UBLK_U_CMD_END_USER_RECOVERY _IOWR('u', UBLK_CMD_END_USER_RECOVERY, struct ublksrv_ctrl_cmd)
+#define UBLK_U_CMD_GET_DEV_INFO2 _IOR('u', UBLK_CMD_GET_DEV_INFO2, struct ublksrv_ctrl_cmd)
+#define UBLK_U_CMD_GET_FEATURES _IOR('u', 0x13, struct ublksrv_ctrl_cmd)
+#define UBLK_U_CMD_DEL_DEV_ASYNC _IOR('u', 0x14, struct ublksrv_ctrl_cmd)
+#define UBLK_FEATURES_LEN 8
 #define UBLK_IO_FETCH_REQ 0x20
 #define UBLK_IO_COMMIT_AND_FETCH_REQ 0x21
 #define UBLK_IO_NEED_GET_DATA 0x22
+#define UBLK_U_IO_FETCH_REQ _IOWR('u', UBLK_IO_FETCH_REQ, struct ublksrv_io_cmd)
+#define UBLK_U_IO_COMMIT_AND_FETCH_REQ _IOWR('u', UBLK_IO_COMMIT_AND_FETCH_REQ, struct ublksrv_io_cmd)
+#define UBLK_U_IO_NEED_GET_DATA _IOWR('u', UBLK_IO_NEED_GET_DATA, struct ublksrv_io_cmd)
 #define UBLK_IO_RES_OK 0
 #define UBLK_IO_RES_NEED_GET_DATA 1
 #define UBLK_IO_RES_ABORT (- ENODEV)
 #define UBLKSRV_CMD_BUF_OFFSET 0
 #define UBLKSRV_IO_BUF_OFFSET 0x80000000
 #define UBLK_MAX_QUEUE_DEPTH 4096
+#define UBLK_IO_BUF_OFF 0
+#define UBLK_IO_BUF_BITS 25
+#define UBLK_IO_BUF_BITS_MASK ((1ULL << UBLK_IO_BUF_BITS) - 1)
+#define UBLK_TAG_OFF UBLK_IO_BUF_BITS
+#define UBLK_TAG_BITS 16
+#define UBLK_TAG_BITS_MASK ((1ULL << UBLK_TAG_BITS) - 1)
+#define UBLK_QID_OFF (UBLK_TAG_OFF + UBLK_TAG_BITS)
+#define UBLK_QID_BITS 12
+#define UBLK_QID_BITS_MASK ((1ULL << UBLK_QID_BITS) - 1)
+#define UBLK_MAX_NR_QUEUES (1U << UBLK_QID_BITS)
+#define UBLKSRV_IO_BUF_TOTAL_BITS (UBLK_QID_OFF + UBLK_QID_BITS)
+#define UBLKSRV_IO_BUF_TOTAL_SIZE (1ULL << UBLKSRV_IO_BUF_TOTAL_BITS)
 #define UBLK_F_SUPPORT_ZERO_COPY (1ULL << 0)
 #define UBLK_F_URING_CMD_COMP_IN_TASK (1ULL << 1)
 #define UBLK_F_NEED_GET_DATA (1UL << 2)
 #define UBLK_F_USER_RECOVERY (1UL << 3)
 #define UBLK_F_USER_RECOVERY_REISSUE (1UL << 4)
+#define UBLK_F_UNPRIVILEGED_DEV (1UL << 5)
+#define UBLK_F_CMD_IOCTL_ENCODE (1UL << 6)
+#define UBLK_F_USER_COPY (1UL << 7)
+#define UBLK_F_ZONED (1ULL << 8)
 #define UBLK_S_DEV_DEAD 0
 #define UBLK_S_DEV_LIVE 1
 #define UBLK_S_DEV_QUIESCED 2
@@ -51,7 +73,10 @@
   __u16 queue_id;
   __u16 len;
   __u64 addr;
-  __u64 data[2];
+  __u64 data[1];
+  __u16 dev_path_len;
+  __u16 pad;
+  __u32 reserved;
 };
 struct ublksrv_ctrl_dev_info {
   __u16 nr_hw_queues;
@@ -64,7 +89,8 @@
   __u32 pad1;
   __u64 flags;
   __u64 ublksrv_flags;
-  __u64 reserved0;
+  __u32 owner_uid;
+  __u32 owner_gid;
   __u64 reserved1;
   __u64 reserved2;
 };
@@ -74,6 +100,13 @@
 #define UBLK_IO_OP_DISCARD 3
 #define UBLK_IO_OP_WRITE_SAME 4
 #define UBLK_IO_OP_WRITE_ZEROES 5
+#define UBLK_IO_OP_ZONE_OPEN 10
+#define UBLK_IO_OP_ZONE_CLOSE 11
+#define UBLK_IO_OP_ZONE_FINISH 12
+#define UBLK_IO_OP_ZONE_APPEND 13
+#define UBLK_IO_OP_ZONE_RESET_ALL 14
+#define UBLK_IO_OP_ZONE_RESET 15
+#define UBLK_IO_OP_REPORT_ZONES 18
 #define UBLK_IO_F_FAILFAST_DEV (1U << 8)
 #define UBLK_IO_F_FAILFAST_TRANSPORT (1U << 9)
 #define UBLK_IO_F_FAILFAST_DRIVER (1U << 10)
@@ -83,7 +116,10 @@
 #define UBLK_IO_F_SWAP (1U << 16)
 struct ublksrv_io_desc {
   __u32 op_flags;
-  __u32 nr_sectors;
+  union {
+    __u32 nr_sectors;
+    __u32 nr_zones;
+  };
   __u64 start_sector;
   __u64 addr;
 };
@@ -91,7 +127,10 @@
   __u16 q_id;
   __u16 tag;
   __s32 result;
-  __u64 addr;
+  union {
+    __u64 addr;
+    __u64 zone_append_lba;
+  };
 };
 struct ublk_param_basic {
 #define UBLK_ATTR_READ_ONLY (1 << 0)
@@ -116,12 +155,28 @@
   __u16 max_discard_segments;
   __u16 reserved0;
 };
+struct ublk_param_devt {
+  __u32 char_major;
+  __u32 char_minor;
+  __u32 disk_major;
+  __u32 disk_minor;
+};
+struct ublk_param_zoned {
+  __u32 max_open_zones;
+  __u32 max_active_zones;
+  __u32 max_zone_append_sectors;
+  __u8 reserved[20];
+};
 struct ublk_params {
   __u32 len;
 #define UBLK_PARAM_TYPE_BASIC (1 << 0)
 #define UBLK_PARAM_TYPE_DISCARD (1 << 1)
+#define UBLK_PARAM_TYPE_DEVT (1 << 2)
+#define UBLK_PARAM_TYPE_ZONED (1 << 3)
   __u32 types;
   struct ublk_param_basic basic;
   struct ublk_param_discard discard;
+  struct ublk_param_devt devt;
+  struct ublk_param_zoned zoned;
 };
 #endif
diff --git a/libc/kernel/uapi/linux/udf_fs_i.h b/libc/kernel/uapi/linux/udf_fs_i.h
index e175034..73af903 100644
--- a/libc/kernel/uapi/linux/udf_fs_i.h
+++ b/libc/kernel/uapi/linux/udf_fs_i.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UDF_FS_I_H
 #define _UDF_FS_I_H 1
 #define UDF_GETEASIZE _IOR('l', 0x40, int)
diff --git a/libc/kernel/uapi/linux/udmabuf.h b/libc/kernel/uapi/linux/udmabuf.h
index 70cf49f..1c99a05 100644
--- a/libc/kernel/uapi/linux/udmabuf.h
+++ b/libc/kernel/uapi/linux/udmabuf.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_UDMABUF_H
 #define _UAPI_LINUX_UDMABUF_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/udp.h b/libc/kernel/uapi/linux/udp.h
index 802c686..0367ad9 100644
--- a/libc/kernel/uapi/linux/udp.h
+++ b/libc/kernel/uapi/linux/udp.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_UDP_H
 #define _UAPI_LINUX_UDP_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/uhid.h b/libc/kernel/uapi/linux/uhid.h
index 1d471f8..12e75bd 100644
--- a/libc/kernel/uapi/linux/uhid.h
+++ b/libc/kernel/uapi/linux/uhid.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __UHID_H_
 #define __UHID_H_
 #include <linux/input.h>
diff --git a/libc/kernel/uapi/linux/uinput.h b/libc/kernel/uapi/linux/uinput.h
index 806f962..27e8ee5 100644
--- a/libc/kernel/uapi/linux/uinput.h
+++ b/libc/kernel/uapi/linux/uinput.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI__UINPUT_H_
 #define _UAPI__UINPUT_H_
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/uio.h b/libc/kernel/uapi/linux/uio.h
index 04814c7..70d6962 100644
--- a/libc/kernel/uapi/linux/uio.h
+++ b/libc/kernel/uapi/linux/uio.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI__LINUX_UIO_H
 #define _UAPI__LINUX_UIO_H
 #include <linux/compiler.h>
diff --git a/libc/kernel/uapi/linux/uleds.h b/libc/kernel/uapi/linux/uleds.h
index 5605b78..7ee60df 100644
--- a/libc/kernel/uapi/linux/uleds.h
+++ b/libc/kernel/uapi/linux/uleds.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI__ULEDS_H_
 #define _UAPI__ULEDS_H_
 #define LED_MAX_NAME_SIZE 64
diff --git a/libc/kernel/uapi/linux/ultrasound.h b/libc/kernel/uapi/linux/ultrasound.h
index 1111891..9c44e75 100644
--- a/libc/kernel/uapi/linux/ultrasound.h
+++ b/libc/kernel/uapi/linux/ultrasound.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _ULTRASOUND_H_
 #define _ULTRASOUND_H_
 #define _GUS_NUMVOICES 0x00
diff --git a/libc/kernel/uapi/linux/um_timetravel.h b/libc/kernel/uapi/linux/um_timetravel.h
index 220324f..49eeb28 100644
--- a/libc/kernel/uapi/linux/um_timetravel.h
+++ b/libc/kernel/uapi/linux/um_timetravel.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_UM_TIMETRAVEL_H
 #define _UAPI_LINUX_UM_TIMETRAVEL_H
 #include <linux/types.h>
@@ -24,6 +12,15 @@
   __u32 seq;
   __u64 time;
 };
+#define UM_TIMETRAVEL_MAX_FDS 2
+enum um_timetravel_shared_mem_fds {
+  UM_TIMETRAVEL_SHARED_MEMFD,
+  UM_TIMETRAVEL_SHARED_LOGFD,
+  UM_TIMETRAVEL_SHARED_MAX_FDS,
+};
+enum um_timetravel_start_ack {
+  UM_TIMETRAVEL_START_ACK_ID = 0xffff,
+};
 enum um_timetravel_ops {
   UM_TIMETRAVEL_ACK = 0,
   UM_TIMETRAVEL_START = 1,
@@ -34,5 +31,36 @@
   UM_TIMETRAVEL_RUN = 6,
   UM_TIMETRAVEL_FREE_UNTIL = 7,
   UM_TIMETRAVEL_GET_TOD = 8,
+  UM_TIMETRAVEL_BROADCAST = 9,
+};
+#define UM_TIMETRAVEL_SCHEDSHM_VERSION 2
+enum um_timetravel_schedshm_cap {
+  UM_TIMETRAVEL_SCHEDSHM_CAP_TIME_SHARE = 0x1,
+};
+enum um_timetravel_schedshm_flags {
+  UM_TIMETRAVEL_SCHEDSHM_FLAGS_REQ_RUN = 0x1,
+};
+union um_timetravel_schedshm_client {
+  struct {
+    __u32 capa;
+    __u32 flags;
+    __u64 req_time;
+    __u64 name;
+  };
+  char reserve[128];
+};
+struct um_timetravel_schedshm {
+  union {
+    struct {
+      __u32 version;
+      __u32 len;
+      __u64 free_until;
+      __u64 current_time;
+      __u16 running_id;
+      __u16 max_clients;
+    };
+    char hdr[4096];
+  };
+  union um_timetravel_schedshm_client clients[];
 };
 #endif
diff --git a/libc/kernel/uapi/linux/un.h b/libc/kernel/uapi/linux/un.h
index fefbf5b..12cf622 100644
--- a/libc/kernel/uapi/linux/un.h
+++ b/libc/kernel/uapi/linux/un.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _LINUX_UN_H
 #define _LINUX_UN_H
 #include <linux/socket.h>
diff --git a/libc/kernel/uapi/linux/unistd.h b/libc/kernel/uapi/linux/unistd.h
index 0ed4a0f..9001bba 100644
--- a/libc/kernel/uapi/linux/unistd.h
+++ b/libc/kernel/uapi/linux/unistd.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _LINUX_UNISTD_H_
 #define _LINUX_UNISTD_H_
 #include <asm/unistd.h>
diff --git a/libc/kernel/uapi/linux/unix_diag.h b/libc/kernel/uapi/linux/unix_diag.h
index 4bcc47a..d97ed8e 100644
--- a/libc/kernel/uapi/linux/unix_diag.h
+++ b/libc/kernel/uapi/linux/unix_diag.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __UNIX_DIAG_H__
 #define __UNIX_DIAG_H__
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/usb/audio.h b/libc/kernel/uapi/linux/usb/audio.h
index bfda540..b69a2d5 100644
--- a/libc/kernel/uapi/linux/usb/audio.h
+++ b/libc/kernel/uapi/linux/usb/audio.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI__LINUX_USB_AUDIO_H
 #define _UAPI__LINUX_USB_AUDIO_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/usb/cdc-wdm.h b/libc/kernel/uapi/linux/usb/cdc-wdm.h
index 5a86268..b14104b 100644
--- a/libc/kernel/uapi/linux/usb/cdc-wdm.h
+++ b/libc/kernel/uapi/linux/usb/cdc-wdm.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI__LINUX_USB_CDC_WDM_H
 #define _UAPI__LINUX_USB_CDC_WDM_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/usb/cdc.h b/libc/kernel/uapi/linux/usb/cdc.h
index bbfc4db..836b616 100644
--- a/libc/kernel/uapi/linux/usb/cdc.h
+++ b/libc/kernel/uapi/linux/usb/cdc.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __UAPI_LINUX_USB_CDC_H
 #define __UAPI_LINUX_USB_CDC_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/usb/ch11.h b/libc/kernel/uapi/linux/usb/ch11.h
index 55387fe..d876729 100644
--- a/libc/kernel/uapi/linux/usb/ch11.h
+++ b/libc/kernel/uapi/linux/usb/ch11.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __LINUX_CH11_H
 #define __LINUX_CH11_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/usb/ch9.h b/libc/kernel/uapi/linux/usb/ch9.h
index 49eb5fa..6762773 100644
--- a/libc/kernel/uapi/linux/usb/ch9.h
+++ b/libc/kernel/uapi/linux/usb/ch9.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI__LINUX_USB_CH9_H
 #define _UAPI__LINUX_USB_CH9_H
 #include <linux/types.h>
@@ -203,7 +191,10 @@
 struct usb_string_descriptor {
   __u8 bLength;
   __u8 bDescriptorType;
-  __le16 wData[1];
+  union {
+    __le16 legacy_padding;
+    __DECLARE_FLEX_ARRAY(__le16, wData);
+  };
 } __attribute__((packed));
 struct usb_interface_descriptor {
   __u8 bLength;
@@ -295,6 +286,7 @@
 #define USB_OTG_SRP (1 << 0)
 #define USB_OTG_HNP (1 << 1)
 #define USB_OTG_ADP (1 << 2)
+#define USB_OTG_RSP (1 << 3)
 #define OTG_STS_SELECTOR 0xF000
 struct usb_debug_descriptor {
   __u8 bLength;
@@ -417,6 +409,16 @@
   __u8 ContainerID[16];
 } __attribute__((packed));
 #define USB_DT_USB_SS_CONTN_ID_SIZE 20
+#define USB_PLAT_DEV_CAP_TYPE 5
+struct usb_plat_dev_cap_descriptor {
+  __u8 bLength;
+  __u8 bDescriptorType;
+  __u8 bDevCapabilityType;
+  __u8 bReserved;
+  __u8 UUID[16];
+  __u8 CapabilityData[];
+} __attribute__((packed));
+#define USB_DT_USB_PLAT_DEV_CAP_SIZE(capability_data_size) (20 + capability_data_size)
 #define USB_SSP_CAP_TYPE 0xa
 struct usb_ssp_cap_descriptor {
   __u8 bLength;
@@ -431,7 +433,10 @@
 #define USB_SSP_MIN_RX_LANE_COUNT (0xf << 8)
 #define USB_SSP_MIN_TX_LANE_COUNT (0xf << 12)
   __le16 wReserved;
-  __le32 bmSublinkSpeedAttr[1];
+  union {
+    __le32 legacy_padding;
+    __DECLARE_FLEX_ARRAY(__le32, bmSublinkSpeedAttr);
+  };
 #define USB_SSP_SUBLINK_SPEED_SSID (0xf)
 #define USB_SSP_SUBLINK_SPEED_LSE (0x3 << 4)
 #define USB_SSP_SUBLINK_SPEED_LSE_BPS 0
diff --git a/libc/kernel/uapi/linux/usb/charger.h b/libc/kernel/uapi/linux/usb/charger.h
index e53f7d6..342bc74 100644
--- a/libc/kernel/uapi/linux/usb/charger.h
+++ b/libc/kernel/uapi/linux/usb/charger.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI__LINUX_USB_CHARGER_H
 #define _UAPI__LINUX_USB_CHARGER_H
 enum usb_charger_type {
diff --git a/libc/kernel/uapi/linux/usb/f_accessory.h b/libc/kernel/uapi/linux/usb/f_accessory.h
deleted file mode 100644
index d4c5efe..0000000
--- a/libc/kernel/uapi/linux/usb/f_accessory.h
+++ /dev/null
@@ -1,46 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef _UAPI_LINUX_USB_F_ACCESSORY_H
-#define _UAPI_LINUX_USB_F_ACCESSORY_H
-#define USB_ACCESSORY_VENDOR_ID 0x18D1
-#define USB_ACCESSORY_PRODUCT_ID 0x2D00
-#define USB_ACCESSORY_ADB_PRODUCT_ID 0x2D01
-#define ACCESSORY_STRING_MANUFACTURER 0
-#define ACCESSORY_STRING_MODEL 1
-#define ACCESSORY_STRING_DESCRIPTION 2
-#define ACCESSORY_STRING_VERSION 3
-#define ACCESSORY_STRING_URI 4
-#define ACCESSORY_STRING_SERIAL 5
-#define ACCESSORY_GET_PROTOCOL 51
-#define ACCESSORY_SEND_STRING 52
-#define ACCESSORY_START 53
-#define ACCESSORY_REGISTER_HID 54
-#define ACCESSORY_UNREGISTER_HID 55
-#define ACCESSORY_SET_HID_REPORT_DESC 56
-#define ACCESSORY_SEND_HID_EVENT 57
-#define ACCESSORY_SET_AUDIO_MODE 58
-#define ACCESSORY_GET_STRING_MANUFACTURER _IOW('M', 1, char[256])
-#define ACCESSORY_GET_STRING_MODEL _IOW('M', 2, char[256])
-#define ACCESSORY_GET_STRING_DESCRIPTION _IOW('M', 3, char[256])
-#define ACCESSORY_GET_STRING_VERSION _IOW('M', 4, char[256])
-#define ACCESSORY_GET_STRING_URI _IOW('M', 5, char[256])
-#define ACCESSORY_GET_STRING_SERIAL _IOW('M', 6, char[256])
-#define ACCESSORY_IS_START_REQUESTED _IO('M', 7)
-#define ACCESSORY_GET_AUDIO_MODE _IO('M', 8)
-#endif
diff --git a/libc/kernel/uapi/linux/usb/functionfs.h b/libc/kernel/uapi/linux/usb/functionfs.h
index 7a5d1a2..095e937 100644
--- a/libc/kernel/uapi/linux/usb/functionfs.h
+++ b/libc/kernel/uapi/linux/usb/functionfs.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI__LINUX_FUNCTIONFS_H__
 #define _UAPI__LINUX_FUNCTIONFS_H__
 #include <linux/types.h>
@@ -71,8 +59,9 @@
 struct usb_ext_compat_desc {
   __u8 bFirstInterfaceNumber;
   __u8 Reserved1;
-  __u8 CompatibleID[8];
+  __struct_group(, IDs,, __u8 CompatibleID[8];
   __u8 SubCompatibleID[8];
+ );
   __u8 Reserved2[6];
 };
 struct usb_ext_prop_desc {
@@ -80,6 +69,12 @@
   __le32 dwPropertyDataType;
   __le16 wPropertyNameLength;
 } __attribute__((packed));
+#define USB_FFS_DMABUF_TRANSFER_MASK 0x0
+struct usb_ffs_dmabuf_transfer_req {
+  int fd;
+  __u32 flags;
+  __u64 length;
+} __attribute__((packed));
 struct usb_functionfs_strings_head {
   __le32 magic;
   __le32 length;
@@ -108,4 +103,7 @@
 #define FUNCTIONFS_INTERFACE_REVMAP _IO('g', 128)
 #define FUNCTIONFS_ENDPOINT_REVMAP _IO('g', 129)
 #define FUNCTIONFS_ENDPOINT_DESC _IOR('g', 130, struct usb_endpoint_descriptor)
+#define FUNCTIONFS_DMABUF_ATTACH _IOW('g', 131, int)
+#define FUNCTIONFS_DMABUF_DETACH _IOW('g', 132, int)
+#define FUNCTIONFS_DMABUF_TRANSFER _IOW('g', 133, struct usb_ffs_dmabuf_transfer_req)
 #endif
diff --git a/libc/kernel/uapi/linux/usb/g_printer.h b/libc/kernel/uapi/linux/usb/g_printer.h
index 71200ed..dca14ff 100644
--- a/libc/kernel/uapi/linux/usb/g_printer.h
+++ b/libc/kernel/uapi/linux/usb/g_printer.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __LINUX_USB_G_PRINTER_H
 #define __LINUX_USB_G_PRINTER_H
 #define PRINTER_NOT_ERROR 0x08
diff --git a/libc/kernel/uapi/linux/usb/g_uvc.h b/libc/kernel/uapi/linux/usb/g_uvc.h
index 40fad1d..ec81da4 100644
--- a/libc/kernel/uapi/linux/usb/g_uvc.h
+++ b/libc/kernel/uapi/linux/usb/g_uvc.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __LINUX_USB_G_UVC_H
 #define __LINUX_USB_G_UVC_H
 #include <linux/ioctl.h>
diff --git a/libc/kernel/uapi/linux/usb/gadgetfs.h b/libc/kernel/uapi/linux/usb/gadgetfs.h
index 7f45889..4fb6a71 100644
--- a/libc/kernel/uapi/linux/usb/gadgetfs.h
+++ b/libc/kernel/uapi/linux/usb/gadgetfs.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __LINUX_USB_GADGETFS_H
 #define __LINUX_USB_GADGETFS_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/usb/midi.h b/libc/kernel/uapi/linux/usb/midi.h
index 0431e65..c8af04b 100644
--- a/libc/kernel/uapi/linux/usb/midi.h
+++ b/libc/kernel/uapi/linux/usb/midi.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __LINUX_USB_MIDI_H
 #define __LINUX_USB_MIDI_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/usb/raw_gadget.h b/libc/kernel/uapi/linux/usb/raw_gadget.h
index 8b60c8d..d09dc1d 100644
--- a/libc/kernel/uapi/linux/usb/raw_gadget.h
+++ b/libc/kernel/uapi/linux/usb/raw_gadget.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI__LINUX_USB_RAW_GADGET_H
 #define _UAPI__LINUX_USB_RAW_GADGET_H
 #include <asm/ioctl.h>
@@ -31,6 +19,10 @@
   USB_RAW_EVENT_INVALID = 0,
   USB_RAW_EVENT_CONNECT = 1,
   USB_RAW_EVENT_CONTROL = 2,
+  USB_RAW_EVENT_SUSPEND = 3,
+  USB_RAW_EVENT_RESUME = 4,
+  USB_RAW_EVENT_RESET = 5,
+  USB_RAW_EVENT_DISCONNECT = 6,
 };
 struct usb_raw_event {
   __u32 type;
diff --git a/libc/kernel/uapi/linux/usb/tmc.h b/libc/kernel/uapi/linux/usb/tmc.h
index b267290..05f8442 100644
--- a/libc/kernel/uapi/linux/usb/tmc.h
+++ b/libc/kernel/uapi/linux/usb/tmc.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __LINUX_USB_TMC_H
 #define __LINUX_USB_TMC_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/usb/video.h b/libc/kernel/uapi/linux/usb/video.h
index c3d360a..8b688e1 100644
--- a/libc/kernel/uapi/linux/usb/video.h
+++ b/libc/kernel/uapi/linux/usb/video.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __LINUX_USB_VIDEO_H
 #define __LINUX_USB_VIDEO_H
 #include <linux/types.h>
@@ -139,6 +127,32 @@
 #define UVC_CONTROL_CAP_DISABLED (1 << 2)
 #define UVC_CONTROL_CAP_AUTOUPDATE (1 << 3)
 #define UVC_CONTROL_CAP_ASYNCHRONOUS (1 << 4)
+enum uvc_color_primaries_values {
+  UVC_COLOR_PRIMARIES_UNSPECIFIED,
+  UVC_COLOR_PRIMARIES_BT_709_SRGB,
+  UVC_COLOR_PRIMARIES_BT_470_2_M,
+  UVC_COLOR_PRIMARIES_BT_470_2_B_G,
+  UVC_COLOR_PRIMARIES_SMPTE_170M,
+  UVC_COLOR_PRIMARIES_SMPTE_240M,
+};
+enum uvc_transfer_characteristics_values {
+  UVC_TRANSFER_CHARACTERISTICS_UNSPECIFIED,
+  UVC_TRANSFER_CHARACTERISTICS_BT_709,
+  UVC_TRANSFER_CHARACTERISTICS_BT_470_2_M,
+  UVC_TRANSFER_CHARACTERISTICS_BT_470_2_B_G,
+  UVC_TRANSFER_CHARACTERISTICS_SMPTE_170M,
+  UVC_TRANSFER_CHARACTERISTICS_SMPTE_240M,
+  UVC_TRANSFER_CHARACTERISTICS_LINEAR,
+  UVC_TRANSFER_CHARACTERISTICS_SRGB,
+};
+enum uvc_matrix_coefficients {
+  UVC_MATRIX_COEFFICIENTS_UNSPECIFIED,
+  UVC_MATRIX_COEFFICIENTS_BT_709,
+  UVC_MATRIX_COEFFICIENTS_FCC,
+  UVC_MATRIX_COEFFICIENTS_BT_470_2_B_G,
+  UVC_MATRIX_COEFFICIENTS_SMPTE_170M,
+  UVC_MATRIX_COEFFICIENTS_SMPTE_240M,
+};
 struct uvc_descriptor_header {
   __u8 bLength;
   __u8 bDescriptorType;
diff --git a/libc/kernel/uapi/linux/usbdevice_fs.h b/libc/kernel/uapi/linux/usbdevice_fs.h
index af8681b..f77ebe3 100644
--- a/libc/kernel/uapi/linux/usbdevice_fs.h
+++ b/libc/kernel/uapi/linux/usbdevice_fs.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_USBDEVICE_FS_H
 #define _UAPI_LINUX_USBDEVICE_FS_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/usbip.h b/libc/kernel/uapi/linux/usbip.h
index b0c1067..3e96b8f 100644
--- a/libc/kernel/uapi/linux/usbip.h
+++ b/libc/kernel/uapi/linux/usbip.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_USBIP_H
 #define _UAPI_LINUX_USBIP_H
 enum usbip_device_status {
diff --git a/libc/kernel/uapi/linux/user_events.h b/libc/kernel/uapi/linux/user_events.h
new file mode 100644
index 0000000..37bf66b
--- /dev/null
+++ b/libc/kernel/uapi/linux/user_events.h
@@ -0,0 +1,40 @@
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
+#ifndef _UAPI_LINUX_USER_EVENTS_H
+#define _UAPI_LINUX_USER_EVENTS_H
+#include <linux/types.h>
+#include <linux/ioctl.h>
+#define USER_EVENTS_SYSTEM "user_events"
+#define USER_EVENTS_MULTI_SYSTEM "user_events_multi"
+#define USER_EVENTS_PREFIX "u:"
+#define DYN_LOC(offset,size) ((size) << 16 | (offset))
+enum user_reg_flag {
+  USER_EVENT_REG_PERSIST = 1U << 0,
+  USER_EVENT_REG_MULTI_FORMAT = 1U << 1,
+  USER_EVENT_REG_MAX = 1U << 2,
+};
+struct user_reg {
+  __u32 size;
+  __u8 enable_bit;
+  __u8 enable_size;
+  __u16 flags;
+  __u64 enable_addr;
+  __u64 name_args;
+  __u32 write_index;
+} __attribute__((__packed__));
+struct user_unreg {
+  __u32 size;
+  __u8 disable_bit;
+  __u8 __reserved;
+  __u16 __reserved2;
+  __u64 disable_addr;
+} __attribute__((__packed__));
+#define DIAG_IOC_MAGIC '*'
+#define DIAG_IOCSREG _IOWR(DIAG_IOC_MAGIC, 0, struct user_reg *)
+#define DIAG_IOCSDEL _IOW(DIAG_IOC_MAGIC, 1, char *)
+#define DIAG_IOCSUNREG _IOW(DIAG_IOC_MAGIC, 2, struct user_unreg *)
+#endif
diff --git a/libc/kernel/uapi/linux/userfaultfd.h b/libc/kernel/uapi/linux/userfaultfd.h
index 09e0d80..1dc2d79 100644
--- a/libc/kernel/uapi/linux/userfaultfd.h
+++ b/libc/kernel/uapi/linux/userfaultfd.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _LINUX_USERFAULTFD_H
 #define _LINUX_USERFAULTFD_H
 #include <linux/types.h>
@@ -23,17 +11,19 @@
 #define USERFAULTFD_IOC_NEW _IO(USERFAULTFD_IOC, 0x00)
 #define UFFD_API ((__u64) 0xAA)
 #define UFFD_API_REGISTER_MODES (UFFDIO_REGISTER_MODE_MISSING | UFFDIO_REGISTER_MODE_WP | UFFDIO_REGISTER_MODE_MINOR)
-#define UFFD_API_FEATURES (UFFD_FEATURE_PAGEFAULT_FLAG_WP | UFFD_FEATURE_EVENT_FORK | UFFD_FEATURE_EVENT_REMAP | UFFD_FEATURE_EVENT_REMOVE | UFFD_FEATURE_EVENT_UNMAP | UFFD_FEATURE_MISSING_HUGETLBFS | UFFD_FEATURE_MISSING_SHMEM | UFFD_FEATURE_SIGBUS | UFFD_FEATURE_THREAD_ID | UFFD_FEATURE_MINOR_HUGETLBFS | UFFD_FEATURE_MINOR_SHMEM | UFFD_FEATURE_EXACT_ADDRESS | UFFD_FEATURE_WP_HUGETLBFS_SHMEM)
+#define UFFD_API_FEATURES (UFFD_FEATURE_PAGEFAULT_FLAG_WP | UFFD_FEATURE_EVENT_FORK | UFFD_FEATURE_EVENT_REMAP | UFFD_FEATURE_EVENT_REMOVE | UFFD_FEATURE_EVENT_UNMAP | UFFD_FEATURE_MISSING_HUGETLBFS | UFFD_FEATURE_MISSING_SHMEM | UFFD_FEATURE_SIGBUS | UFFD_FEATURE_THREAD_ID | UFFD_FEATURE_MINOR_HUGETLBFS | UFFD_FEATURE_MINOR_SHMEM | UFFD_FEATURE_EXACT_ADDRESS | UFFD_FEATURE_WP_HUGETLBFS_SHMEM | UFFD_FEATURE_WP_UNPOPULATED | UFFD_FEATURE_POISON | UFFD_FEATURE_WP_ASYNC | UFFD_FEATURE_MOVE)
 #define UFFD_API_IOCTLS ((__u64) 1 << _UFFDIO_REGISTER | (__u64) 1 << _UFFDIO_UNREGISTER | (__u64) 1 << _UFFDIO_API)
-#define UFFD_API_RANGE_IOCTLS ((__u64) 1 << _UFFDIO_WAKE | (__u64) 1 << _UFFDIO_COPY | (__u64) 1 << _UFFDIO_ZEROPAGE | (__u64) 1 << _UFFDIO_WRITEPROTECT | (__u64) 1 << _UFFDIO_CONTINUE)
-#define UFFD_API_RANGE_IOCTLS_BASIC ((__u64) 1 << _UFFDIO_WAKE | (__u64) 1 << _UFFDIO_COPY | (__u64) 1 << _UFFDIO_CONTINUE | (__u64) 1 << _UFFDIO_WRITEPROTECT)
+#define UFFD_API_RANGE_IOCTLS ((__u64) 1 << _UFFDIO_WAKE | (__u64) 1 << _UFFDIO_COPY | (__u64) 1 << _UFFDIO_ZEROPAGE | (__u64) 1 << _UFFDIO_MOVE | (__u64) 1 << _UFFDIO_WRITEPROTECT | (__u64) 1 << _UFFDIO_CONTINUE | (__u64) 1 << _UFFDIO_POISON)
+#define UFFD_API_RANGE_IOCTLS_BASIC ((__u64) 1 << _UFFDIO_WAKE | (__u64) 1 << _UFFDIO_COPY | (__u64) 1 << _UFFDIO_WRITEPROTECT | (__u64) 1 << _UFFDIO_CONTINUE | (__u64) 1 << _UFFDIO_POISON)
 #define _UFFDIO_REGISTER (0x00)
 #define _UFFDIO_UNREGISTER (0x01)
 #define _UFFDIO_WAKE (0x02)
 #define _UFFDIO_COPY (0x03)
 #define _UFFDIO_ZEROPAGE (0x04)
+#define _UFFDIO_MOVE (0x05)
 #define _UFFDIO_WRITEPROTECT (0x06)
 #define _UFFDIO_CONTINUE (0x07)
+#define _UFFDIO_POISON (0x08)
 #define _UFFDIO_API (0x3F)
 #define UFFDIO 0xAA
 #define UFFDIO_API _IOWR(UFFDIO, _UFFDIO_API, struct uffdio_api)
@@ -42,8 +32,10 @@
 #define UFFDIO_WAKE _IOR(UFFDIO, _UFFDIO_WAKE, struct uffdio_range)
 #define UFFDIO_COPY _IOWR(UFFDIO, _UFFDIO_COPY, struct uffdio_copy)
 #define UFFDIO_ZEROPAGE _IOWR(UFFDIO, _UFFDIO_ZEROPAGE, struct uffdio_zeropage)
+#define UFFDIO_MOVE _IOWR(UFFDIO, _UFFDIO_MOVE, struct uffdio_move)
 #define UFFDIO_WRITEPROTECT _IOWR(UFFDIO, _UFFDIO_WRITEPROTECT, struct uffdio_writeprotect)
 #define UFFDIO_CONTINUE _IOWR(UFFDIO, _UFFDIO_CONTINUE, struct uffdio_continue)
+#define UFFDIO_POISON _IOWR(UFFDIO, _UFFDIO_POISON, struct uffdio_poison)
 struct uffd_msg {
   __u8 event;
   __u8 reserved1;
@@ -99,6 +91,10 @@
 #define UFFD_FEATURE_MINOR_SHMEM (1 << 10)
 #define UFFD_FEATURE_EXACT_ADDRESS (1 << 11)
 #define UFFD_FEATURE_WP_HUGETLBFS_SHMEM (1 << 12)
+#define UFFD_FEATURE_WP_UNPOPULATED (1 << 13)
+#define UFFD_FEATURE_POISON (1 << 14)
+#define UFFD_FEATURE_WP_ASYNC (1 << 15)
+#define UFFD_FEATURE_MOVE (1 << 16)
   __u64 features;
   __u64 ioctls;
 };
@@ -138,8 +134,24 @@
 struct uffdio_continue {
   struct uffdio_range range;
 #define UFFDIO_CONTINUE_MODE_DONTWAKE ((__u64) 1 << 0)
+#define UFFDIO_CONTINUE_MODE_WP ((__u64) 1 << 1)
   __u64 mode;
   __s64 mapped;
 };
+struct uffdio_poison {
+  struct uffdio_range range;
+#define UFFDIO_POISON_MODE_DONTWAKE ((__u64) 1 << 0)
+  __u64 mode;
+  __s64 updated;
+};
+struct uffdio_move {
+  __u64 dst;
+  __u64 src;
+  __u64 len;
+#define UFFDIO_MOVE_MODE_DONTWAKE ((__u64) 1 << 0)
+#define UFFDIO_MOVE_MODE_ALLOW_SRC_HOLES ((__u64) 1 << 1)
+  __u64 mode;
+  __s64 move;
+};
 #define UFFD_USER_MODE_ONLY 1
 #endif
diff --git a/libc/kernel/uapi/linux/userio.h b/libc/kernel/uapi/linux/userio.h
index c1040f8..abcbb3c 100644
--- a/libc/kernel/uapi/linux/userio.h
+++ b/libc/kernel/uapi/linux/userio.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _USERIO_H
 #define _USERIO_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/utime.h b/libc/kernel/uapi/linux/utime.h
index 8ed98b9..70deee9 100644
--- a/libc/kernel/uapi/linux/utime.h
+++ b/libc/kernel/uapi/linux/utime.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _LINUX_UTIME_H
 #define _LINUX_UTIME_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/utsname.h b/libc/kernel/uapi/linux/utsname.h
index f4356d3..520f695 100644
--- a/libc/kernel/uapi/linux/utsname.h
+++ b/libc/kernel/uapi/linux/utsname.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_UTSNAME_H
 #define _UAPI_LINUX_UTSNAME_H
 #define __OLD_UTS_LEN 8
diff --git a/libc/kernel/uapi/linux/uuid.h b/libc/kernel/uapi/linux/uuid.h
index d0f82c1..75140d2 100644
--- a/libc/kernel/uapi/linux/uuid.h
+++ b/libc/kernel/uapi/linux/uuid.h
@@ -1,31 +1,7 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef _UAPI_LINUX_UUID_H_
-#define _UAPI_LINUX_UUID_H_
-#include <linux/types.h>
-typedef struct {
-  __u8 b[16];
-} guid_t;
-#define GUID_INIT(a,b,c,d0,d1,d2,d3,d4,d5,d6,d7) \
-((guid_t) \
-{ { (a) & 0xff, ((a) >> 8) & 0xff, ((a) >> 16) & 0xff, ((a) >> 24) & 0xff, (b) & 0xff, ((b) >> 8) & 0xff, (c) & 0xff, ((c) >> 8) & 0xff, (d0), (d1), (d2), (d3), (d4), (d5), (d6), (d7) } })
-typedef guid_t uuid_le;
-#define UUID_LE(a,b,c,d0,d1,d2,d3,d4,d5,d6,d7) GUID_INIT(a, b, c, d0, d1, d2, d3, d4, d5, d6, d7)
-#define NULL_UUID_LE UUID_LE(0x00000000, 0x0000, 0x0000, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
-#endif
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
+#include <linux/mei_uuid.h>
diff --git a/libc/kernel/uapi/linux/uvcvideo.h b/libc/kernel/uapi/linux/uvcvideo.h
index f15ed78..cdaf6a5 100644
--- a/libc/kernel/uapi/linux/uvcvideo.h
+++ b/libc/kernel/uapi/linux/uvcvideo.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __LINUX_UVCVIDEO_H_
 #define __LINUX_UVCVIDEO_H_
 #include <linux/ioctl.h>
@@ -36,9 +24,10 @@
 #define UVC_CTRL_FLAG_AUTO_UPDATE (1 << 7)
 #define UVC_CTRL_FLAG_ASYNCHRONOUS (1 << 8)
 #define UVC_CTRL_FLAG_GET_RANGE (UVC_CTRL_FLAG_GET_CUR | UVC_CTRL_FLAG_GET_MIN | UVC_CTRL_FLAG_GET_MAX | UVC_CTRL_FLAG_GET_RES | UVC_CTRL_FLAG_GET_DEF)
+#define UVC_MENU_NAME_LEN 32
 struct uvc_menu_info {
   __u32 value;
-  __u8 name[32];
+  __u8 name[UVC_MENU_NAME_LEN];
 };
 struct uvc_xu_control_mapping {
   __u32 id;
diff --git a/libc/kernel/uapi/linux/v4l2-common.h b/libc/kernel/uapi/linux/v4l2-common.h
index 021be85..91f30e7 100644
--- a/libc/kernel/uapi/linux/v4l2-common.h
+++ b/libc/kernel/uapi/linux/v4l2-common.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __V4L2_COMMON__
 #define __V4L2_COMMON__
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/v4l2-controls.h b/libc/kernel/uapi/linux/v4l2-controls.h
index a6e70c0..f6ef26c 100644
--- a/libc/kernel/uapi/linux/v4l2-controls.h
+++ b/libc/kernel/uapi/linux/v4l2-controls.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __LINUX_V4L2_CONTROLS_H
 #define __LINUX_V4L2_CONTROLS_H
 #include <linux/const.h>
@@ -122,6 +110,8 @@
 #define V4L2_CID_USER_ISL7998X_BASE (V4L2_CID_USER_BASE + 0x1180)
 #define V4L2_CID_USER_DW100_BASE (V4L2_CID_USER_BASE + 0x1190)
 #define V4L2_CID_USER_ASPEED_BASE (V4L2_CID_USER_BASE + 0x11a0)
+#define V4L2_CID_USER_NPCM_BASE (V4L2_CID_USER_BASE + 0x11b0)
+#define V4L2_CID_USER_THP7312_BASE (V4L2_CID_USER_BASE + 0x11c0)
 #define V4L2_CID_CODEC_BASE (V4L2_CTRL_CLASS_CODEC | 0x900)
 #define V4L2_CID_CODEC_CLASS (V4L2_CTRL_CLASS_CODEC | 1)
 #define V4L2_CID_MPEG_STREAM_TYPE (V4L2_CID_CODEC_BASE + 0)
@@ -691,6 +681,40 @@
 #define V4L2_CID_MPEG_VIDEO_HEVC_B_FRAME_MAX_QP (V4L2_CID_CODEC_BASE + 652)
 #define V4L2_CID_MPEG_VIDEO_DEC_DISPLAY_DELAY (V4L2_CID_CODEC_BASE + 653)
 #define V4L2_CID_MPEG_VIDEO_DEC_DISPLAY_DELAY_ENABLE (V4L2_CID_CODEC_BASE + 654)
+#define V4L2_CID_MPEG_VIDEO_AV1_PROFILE (V4L2_CID_CODEC_BASE + 655)
+enum v4l2_mpeg_video_av1_profile {
+  V4L2_MPEG_VIDEO_AV1_PROFILE_MAIN = 0,
+  V4L2_MPEG_VIDEO_AV1_PROFILE_HIGH = 1,
+  V4L2_MPEG_VIDEO_AV1_PROFILE_PROFESSIONAL = 2,
+};
+#define V4L2_CID_MPEG_VIDEO_AV1_LEVEL (V4L2_CID_CODEC_BASE + 656)
+enum v4l2_mpeg_video_av1_level {
+  V4L2_MPEG_VIDEO_AV1_LEVEL_2_0 = 0,
+  V4L2_MPEG_VIDEO_AV1_LEVEL_2_1 = 1,
+  V4L2_MPEG_VIDEO_AV1_LEVEL_2_2 = 2,
+  V4L2_MPEG_VIDEO_AV1_LEVEL_2_3 = 3,
+  V4L2_MPEG_VIDEO_AV1_LEVEL_3_0 = 4,
+  V4L2_MPEG_VIDEO_AV1_LEVEL_3_1 = 5,
+  V4L2_MPEG_VIDEO_AV1_LEVEL_3_2 = 6,
+  V4L2_MPEG_VIDEO_AV1_LEVEL_3_3 = 7,
+  V4L2_MPEG_VIDEO_AV1_LEVEL_4_0 = 8,
+  V4L2_MPEG_VIDEO_AV1_LEVEL_4_1 = 9,
+  V4L2_MPEG_VIDEO_AV1_LEVEL_4_2 = 10,
+  V4L2_MPEG_VIDEO_AV1_LEVEL_4_3 = 11,
+  V4L2_MPEG_VIDEO_AV1_LEVEL_5_0 = 12,
+  V4L2_MPEG_VIDEO_AV1_LEVEL_5_1 = 13,
+  V4L2_MPEG_VIDEO_AV1_LEVEL_5_2 = 14,
+  V4L2_MPEG_VIDEO_AV1_LEVEL_5_3 = 15,
+  V4L2_MPEG_VIDEO_AV1_LEVEL_6_0 = 16,
+  V4L2_MPEG_VIDEO_AV1_LEVEL_6_1 = 17,
+  V4L2_MPEG_VIDEO_AV1_LEVEL_6_2 = 18,
+  V4L2_MPEG_VIDEO_AV1_LEVEL_6_3 = 19,
+  V4L2_MPEG_VIDEO_AV1_LEVEL_7_0 = 20,
+  V4L2_MPEG_VIDEO_AV1_LEVEL_7_1 = 21,
+  V4L2_MPEG_VIDEO_AV1_LEVEL_7_2 = 22,
+  V4L2_MPEG_VIDEO_AV1_LEVEL_7_3 = 23
+};
+#define V4L2_CID_MPEG_VIDEO_AVERAGE_QP (V4L2_CID_CODEC_BASE + 657)
 #define V4L2_CID_CODEC_CX2341X_BASE (V4L2_CTRL_CLASS_CODEC | 0x1000)
 #define V4L2_CID_MPEG_CX2341X_VIDEO_SPATIAL_FILTER_MODE (V4L2_CID_CODEC_CX2341X_BASE + 0)
 enum v4l2_mpeg_cx2341x_video_spatial_filter_mode {
@@ -1520,7 +1544,8 @@
   __u8 poc_st_curr_before[V4L2_HEVC_DPB_ENTRIES_NUM_MAX];
   __u8 poc_st_curr_after[V4L2_HEVC_DPB_ENTRIES_NUM_MAX];
   __u8 poc_lt_curr[V4L2_HEVC_DPB_ENTRIES_NUM_MAX];
-  __u8 reserved[4];
+  __u8 num_delta_pocs_of_ref_rps_idx;
+  __u8 reserved[3];
   struct v4l2_hevc_dpb_entry dpb[V4L2_HEVC_DPB_ENTRIES_NUM_MAX];
   __u64 flags;
 };
@@ -1684,6 +1709,271 @@
   __u8 partition[16][3];
   struct v4l2_vp9_mv_probs mv;
 };
+#define V4L2_AV1_TOTAL_REFS_PER_FRAME 8
+#define V4L2_AV1_CDEF_MAX 8
+#define V4L2_AV1_NUM_PLANES_MAX 3
+#define V4L2_AV1_MAX_SEGMENTS 8
+#define V4L2_AV1_MAX_OPERATING_POINTS (1 << 5)
+#define V4L2_AV1_REFS_PER_FRAME 7
+#define V4L2_AV1_MAX_NUM_Y_POINTS (1 << 4)
+#define V4L2_AV1_MAX_NUM_CB_POINTS (1 << 4)
+#define V4L2_AV1_MAX_NUM_CR_POINTS (1 << 4)
+#define V4L2_AV1_AR_COEFFS_SIZE 25
+#define V4L2_AV1_MAX_NUM_PLANES 3
+#define V4L2_AV1_MAX_TILE_COLS 64
+#define V4L2_AV1_MAX_TILE_ROWS 64
+#define V4L2_AV1_MAX_TILE_COUNT 512
+#define V4L2_AV1_SEQUENCE_FLAG_STILL_PICTURE 0x00000001
+#define V4L2_AV1_SEQUENCE_FLAG_USE_128X128_SUPERBLOCK 0x00000002
+#define V4L2_AV1_SEQUENCE_FLAG_ENABLE_FILTER_INTRA 0x00000004
+#define V4L2_AV1_SEQUENCE_FLAG_ENABLE_INTRA_EDGE_FILTER 0x00000008
+#define V4L2_AV1_SEQUENCE_FLAG_ENABLE_INTERINTRA_COMPOUND 0x00000010
+#define V4L2_AV1_SEQUENCE_FLAG_ENABLE_MASKED_COMPOUND 0x00000020
+#define V4L2_AV1_SEQUENCE_FLAG_ENABLE_WARPED_MOTION 0x00000040
+#define V4L2_AV1_SEQUENCE_FLAG_ENABLE_DUAL_FILTER 0x00000080
+#define V4L2_AV1_SEQUENCE_FLAG_ENABLE_ORDER_HINT 0x00000100
+#define V4L2_AV1_SEQUENCE_FLAG_ENABLE_JNT_COMP 0x00000200
+#define V4L2_AV1_SEQUENCE_FLAG_ENABLE_REF_FRAME_MVS 0x00000400
+#define V4L2_AV1_SEQUENCE_FLAG_ENABLE_SUPERRES 0x00000800
+#define V4L2_AV1_SEQUENCE_FLAG_ENABLE_CDEF 0x00001000
+#define V4L2_AV1_SEQUENCE_FLAG_ENABLE_RESTORATION 0x00002000
+#define V4L2_AV1_SEQUENCE_FLAG_MONO_CHROME 0x00004000
+#define V4L2_AV1_SEQUENCE_FLAG_COLOR_RANGE 0x00008000
+#define V4L2_AV1_SEQUENCE_FLAG_SUBSAMPLING_X 0x00010000
+#define V4L2_AV1_SEQUENCE_FLAG_SUBSAMPLING_Y 0x00020000
+#define V4L2_AV1_SEQUENCE_FLAG_FILM_GRAIN_PARAMS_PRESENT 0x00040000
+#define V4L2_AV1_SEQUENCE_FLAG_SEPARATE_UV_DELTA_Q 0x00080000
+#define V4L2_CID_STATELESS_AV1_SEQUENCE (V4L2_CID_CODEC_STATELESS_BASE + 500)
+struct v4l2_ctrl_av1_sequence {
+  __u32 flags;
+  __u8 seq_profile;
+  __u8 order_hint_bits;
+  __u8 bit_depth;
+  __u8 reserved;
+  __u16 max_frame_width_minus_1;
+  __u16 max_frame_height_minus_1;
+};
+#define V4L2_CID_STATELESS_AV1_TILE_GROUP_ENTRY (V4L2_CID_CODEC_STATELESS_BASE + 501)
+struct v4l2_ctrl_av1_tile_group_entry {
+  __u32 tile_offset;
+  __u32 tile_size;
+  __u32 tile_row;
+  __u32 tile_col;
+};
+enum v4l2_av1_warp_model {
+  V4L2_AV1_WARP_MODEL_IDENTITY = 0,
+  V4L2_AV1_WARP_MODEL_TRANSLATION = 1,
+  V4L2_AV1_WARP_MODEL_ROTZOOM = 2,
+  V4L2_AV1_WARP_MODEL_AFFINE = 3,
+};
+enum v4l2_av1_reference_frame {
+  V4L2_AV1_REF_INTRA_FRAME = 0,
+  V4L2_AV1_REF_LAST_FRAME = 1,
+  V4L2_AV1_REF_LAST2_FRAME = 2,
+  V4L2_AV1_REF_LAST3_FRAME = 3,
+  V4L2_AV1_REF_GOLDEN_FRAME = 4,
+  V4L2_AV1_REF_BWDREF_FRAME = 5,
+  V4L2_AV1_REF_ALTREF2_FRAME = 6,
+  V4L2_AV1_REF_ALTREF_FRAME = 7,
+};
+#define V4L2_AV1_GLOBAL_MOTION_IS_INVALID(ref) (1 << (ref))
+#define V4L2_AV1_GLOBAL_MOTION_FLAG_IS_GLOBAL 0x1
+#define V4L2_AV1_GLOBAL_MOTION_FLAG_IS_ROT_ZOOM 0x2
+#define V4L2_AV1_GLOBAL_MOTION_FLAG_IS_TRANSLATION 0x4
+struct v4l2_av1_global_motion {
+  __u8 flags[V4L2_AV1_TOTAL_REFS_PER_FRAME];
+  enum v4l2_av1_warp_model type[V4L2_AV1_TOTAL_REFS_PER_FRAME];
+  __s32 params[V4L2_AV1_TOTAL_REFS_PER_FRAME][6];
+  __u8 invalid;
+  __u8 reserved[3];
+};
+enum v4l2_av1_frame_restoration_type {
+  V4L2_AV1_FRAME_RESTORE_NONE = 0,
+  V4L2_AV1_FRAME_RESTORE_WIENER = 1,
+  V4L2_AV1_FRAME_RESTORE_SGRPROJ = 2,
+  V4L2_AV1_FRAME_RESTORE_SWITCHABLE = 3,
+};
+#define V4L2_AV1_LOOP_RESTORATION_FLAG_USES_LR 0x1
+#define V4L2_AV1_LOOP_RESTORATION_FLAG_USES_CHROMA_LR 0x2
+struct v4l2_av1_loop_restoration {
+  __u8 flags;
+  __u8 lr_unit_shift;
+  __u8 lr_uv_shift;
+  __u8 reserved;
+  enum v4l2_av1_frame_restoration_type frame_restoration_type[V4L2_AV1_NUM_PLANES_MAX];
+  __u32 loop_restoration_size[V4L2_AV1_MAX_NUM_PLANES];
+};
+struct v4l2_av1_cdef {
+  __u8 damping_minus_3;
+  __u8 bits;
+  __u8 y_pri_strength[V4L2_AV1_CDEF_MAX];
+  __u8 y_sec_strength[V4L2_AV1_CDEF_MAX];
+  __u8 uv_pri_strength[V4L2_AV1_CDEF_MAX];
+  __u8 uv_sec_strength[V4L2_AV1_CDEF_MAX];
+};
+#define V4L2_AV1_SEGMENTATION_FLAG_ENABLED 0x1
+#define V4L2_AV1_SEGMENTATION_FLAG_UPDATE_MAP 0x2
+#define V4L2_AV1_SEGMENTATION_FLAG_TEMPORAL_UPDATE 0x4
+#define V4L2_AV1_SEGMENTATION_FLAG_UPDATE_DATA 0x8
+#define V4L2_AV1_SEGMENTATION_FLAG_SEG_ID_PRE_SKIP 0x10
+enum v4l2_av1_segment_feature {
+  V4L2_AV1_SEG_LVL_ALT_Q = 0,
+  V4L2_AV1_SEG_LVL_ALT_LF_Y_V = 1,
+  V4L2_AV1_SEG_LVL_REF_FRAME = 5,
+  V4L2_AV1_SEG_LVL_REF_SKIP = 6,
+  V4L2_AV1_SEG_LVL_REF_GLOBALMV = 7,
+  V4L2_AV1_SEG_LVL_MAX = 8
+};
+#define V4L2_AV1_SEGMENT_FEATURE_ENABLED(id) (1 << (id))
+struct v4l2_av1_segmentation {
+  __u8 flags;
+  __u8 last_active_seg_id;
+  __u8 feature_enabled[V4L2_AV1_MAX_SEGMENTS];
+  __s16 feature_data[V4L2_AV1_MAX_SEGMENTS][V4L2_AV1_SEG_LVL_MAX];
+};
+#define V4L2_AV1_LOOP_FILTER_FLAG_DELTA_ENABLED 0x1
+#define V4L2_AV1_LOOP_FILTER_FLAG_DELTA_UPDATE 0x2
+#define V4L2_AV1_LOOP_FILTER_FLAG_DELTA_LF_PRESENT 0x4
+#define V4L2_AV1_LOOP_FILTER_FLAG_DELTA_LF_MULTI 0x8
+struct v4l2_av1_loop_filter {
+  __u8 flags;
+  __u8 level[4];
+  __u8 sharpness;
+  __s8 ref_deltas[V4L2_AV1_TOTAL_REFS_PER_FRAME];
+  __s8 mode_deltas[2];
+  __u8 delta_lf_res;
+};
+#define V4L2_AV1_QUANTIZATION_FLAG_DIFF_UV_DELTA 0x1
+#define V4L2_AV1_QUANTIZATION_FLAG_USING_QMATRIX 0x2
+#define V4L2_AV1_QUANTIZATION_FLAG_DELTA_Q_PRESENT 0x4
+struct v4l2_av1_quantization {
+  __u8 flags;
+  __u8 base_q_idx;
+  __s8 delta_q_y_dc;
+  __s8 delta_q_u_dc;
+  __s8 delta_q_u_ac;
+  __s8 delta_q_v_dc;
+  __s8 delta_q_v_ac;
+  __u8 qm_y;
+  __u8 qm_u;
+  __u8 qm_v;
+  __u8 delta_q_res;
+};
+#define V4L2_AV1_TILE_INFO_FLAG_UNIFORM_TILE_SPACING 0x1
+struct v4l2_av1_tile_info {
+  __u8 flags;
+  __u8 context_update_tile_id;
+  __u8 tile_cols;
+  __u8 tile_rows;
+  __u32 mi_col_starts[V4L2_AV1_MAX_TILE_COLS + 1];
+  __u32 mi_row_starts[V4L2_AV1_MAX_TILE_ROWS + 1];
+  __u32 width_in_sbs_minus_1[V4L2_AV1_MAX_TILE_COLS];
+  __u32 height_in_sbs_minus_1[V4L2_AV1_MAX_TILE_ROWS];
+  __u8 tile_size_bytes;
+  __u8 reserved[3];
+};
+enum v4l2_av1_frame_type {
+  V4L2_AV1_KEY_FRAME = 0,
+  V4L2_AV1_INTER_FRAME = 1,
+  V4L2_AV1_INTRA_ONLY_FRAME = 2,
+  V4L2_AV1_SWITCH_FRAME = 3
+};
+enum v4l2_av1_interpolation_filter {
+  V4L2_AV1_INTERPOLATION_FILTER_EIGHTTAP = 0,
+  V4L2_AV1_INTERPOLATION_FILTER_EIGHTTAP_SMOOTH = 1,
+  V4L2_AV1_INTERPOLATION_FILTER_EIGHTTAP_SHARP = 2,
+  V4L2_AV1_INTERPOLATION_FILTER_BILINEAR = 3,
+  V4L2_AV1_INTERPOLATION_FILTER_SWITCHABLE = 4,
+};
+enum v4l2_av1_tx_mode {
+  V4L2_AV1_TX_MODE_ONLY_4X4 = 0,
+  V4L2_AV1_TX_MODE_LARGEST = 1,
+  V4L2_AV1_TX_MODE_SELECT = 2
+};
+#define V4L2_AV1_FRAME_FLAG_SHOW_FRAME 0x00000001
+#define V4L2_AV1_FRAME_FLAG_SHOWABLE_FRAME 0x00000002
+#define V4L2_AV1_FRAME_FLAG_ERROR_RESILIENT_MODE 0x00000004
+#define V4L2_AV1_FRAME_FLAG_DISABLE_CDF_UPDATE 0x00000008
+#define V4L2_AV1_FRAME_FLAG_ALLOW_SCREEN_CONTENT_TOOLS 0x00000010
+#define V4L2_AV1_FRAME_FLAG_FORCE_INTEGER_MV 0x00000020
+#define V4L2_AV1_FRAME_FLAG_ALLOW_INTRABC 0x00000040
+#define V4L2_AV1_FRAME_FLAG_USE_SUPERRES 0x00000080
+#define V4L2_AV1_FRAME_FLAG_ALLOW_HIGH_PRECISION_MV 0x00000100
+#define V4L2_AV1_FRAME_FLAG_IS_MOTION_MODE_SWITCHABLE 0x00000200
+#define V4L2_AV1_FRAME_FLAG_USE_REF_FRAME_MVS 0x00000400
+#define V4L2_AV1_FRAME_FLAG_DISABLE_FRAME_END_UPDATE_CDF 0x00000800
+#define V4L2_AV1_FRAME_FLAG_ALLOW_WARPED_MOTION 0x00001000
+#define V4L2_AV1_FRAME_FLAG_REFERENCE_SELECT 0x00002000
+#define V4L2_AV1_FRAME_FLAG_REDUCED_TX_SET 0x00004000
+#define V4L2_AV1_FRAME_FLAG_SKIP_MODE_ALLOWED 0x00008000
+#define V4L2_AV1_FRAME_FLAG_SKIP_MODE_PRESENT 0x00010000
+#define V4L2_AV1_FRAME_FLAG_FRAME_SIZE_OVERRIDE 0x00020000
+#define V4L2_AV1_FRAME_FLAG_BUFFER_REMOVAL_TIME_PRESENT 0x00040000
+#define V4L2_AV1_FRAME_FLAG_FRAME_REFS_SHORT_SIGNALING 0x00080000
+#define V4L2_CID_STATELESS_AV1_FRAME (V4L2_CID_CODEC_STATELESS_BASE + 502)
+struct v4l2_ctrl_av1_frame {
+  struct v4l2_av1_tile_info tile_info;
+  struct v4l2_av1_quantization quantization;
+  __u8 superres_denom;
+  struct v4l2_av1_segmentation segmentation;
+  struct v4l2_av1_loop_filter loop_filter;
+  struct v4l2_av1_cdef cdef;
+  __u8 skip_mode_frame[2];
+  __u8 primary_ref_frame;
+  struct v4l2_av1_loop_restoration loop_restoration;
+  struct v4l2_av1_global_motion global_motion;
+  __u32 flags;
+  enum v4l2_av1_frame_type frame_type;
+  __u32 order_hint;
+  __u32 upscaled_width;
+  enum v4l2_av1_interpolation_filter interpolation_filter;
+  enum v4l2_av1_tx_mode tx_mode;
+  __u32 frame_width_minus_1;
+  __u32 frame_height_minus_1;
+  __u16 render_width_minus_1;
+  __u16 render_height_minus_1;
+  __u32 current_frame_id;
+  __u32 buffer_removal_time[V4L2_AV1_MAX_OPERATING_POINTS];
+  __u8 reserved[4];
+  __u32 order_hints[V4L2_AV1_TOTAL_REFS_PER_FRAME];
+  __u64 reference_frame_ts[V4L2_AV1_TOTAL_REFS_PER_FRAME];
+  __s8 ref_frame_idx[V4L2_AV1_REFS_PER_FRAME];
+  __u8 refresh_frame_flags;
+};
+#define V4L2_AV1_FILM_GRAIN_FLAG_APPLY_GRAIN 0x1
+#define V4L2_AV1_FILM_GRAIN_FLAG_UPDATE_GRAIN 0x2
+#define V4L2_AV1_FILM_GRAIN_FLAG_CHROMA_SCALING_FROM_LUMA 0x4
+#define V4L2_AV1_FILM_GRAIN_FLAG_OVERLAP 0x8
+#define V4L2_AV1_FILM_GRAIN_FLAG_CLIP_TO_RESTRICTED_RANGE 0x10
+#define V4L2_CID_STATELESS_AV1_FILM_GRAIN (V4L2_CID_CODEC_STATELESS_BASE + 505)
+struct v4l2_ctrl_av1_film_grain {
+  __u8 flags;
+  __u8 cr_mult;
+  __u16 grain_seed;
+  __u8 film_grain_params_ref_idx;
+  __u8 num_y_points;
+  __u8 point_y_value[V4L2_AV1_MAX_NUM_Y_POINTS];
+  __u8 point_y_scaling[V4L2_AV1_MAX_NUM_Y_POINTS];
+  __u8 num_cb_points;
+  __u8 point_cb_value[V4L2_AV1_MAX_NUM_CB_POINTS];
+  __u8 point_cb_scaling[V4L2_AV1_MAX_NUM_CB_POINTS];
+  __u8 num_cr_points;
+  __u8 point_cr_value[V4L2_AV1_MAX_NUM_CR_POINTS];
+  __u8 point_cr_scaling[V4L2_AV1_MAX_NUM_CR_POINTS];
+  __u8 grain_scaling_minus_8;
+  __u8 ar_coeff_lag;
+  __u8 ar_coeffs_y_plus_128[V4L2_AV1_AR_COEFFS_SIZE];
+  __u8 ar_coeffs_cb_plus_128[V4L2_AV1_AR_COEFFS_SIZE];
+  __u8 ar_coeffs_cr_plus_128[V4L2_AV1_AR_COEFFS_SIZE];
+  __u8 ar_coeff_shift_minus_6;
+  __u8 grain_scale_shift;
+  __u8 cb_mult;
+  __u8 cb_luma_mult;
+  __u8 cr_luma_mult;
+  __u16 cb_offset;
+  __u16 cr_offset;
+  __u8 reserved[4];
+};
 #define V4L2_CTRL_CLASS_MPEG V4L2_CTRL_CLASS_CODEC
 #define V4L2_CID_MPEG_CLASS V4L2_CID_CODEC_CLASS
 #define V4L2_CID_MPEG_BASE V4L2_CID_CODEC_BASE
diff --git a/libc/kernel/uapi/linux/v4l2-dv-timings.h b/libc/kernel/uapi/linux/v4l2-dv-timings.h
index 29596d1..5552c5c 100644
--- a/libc/kernel/uapi/linux/v4l2-dv-timings.h
+++ b/libc/kernel/uapi/linux/v4l2-dv-timings.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _V4L2_DV_TIMINGS_H
 #define _V4L2_DV_TIMINGS_H
 #if __GNUC__ < 4 || __GNUC__ == 4 && __GNUC_MINOR__ < 6
diff --git a/libc/kernel/uapi/linux/v4l2-mediabus.h b/libc/kernel/uapi/linux/v4l2-mediabus.h
index 157c0ac..8a52f58 100644
--- a/libc/kernel/uapi/linux/v4l2-mediabus.h
+++ b/libc/kernel/uapi/linux/v4l2-mediabus.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __LINUX_V4L2_MEDIABUS_H
 #define __LINUX_V4L2_MEDIABUS_H
 #include <linux/media-bus-format.h>
diff --git a/libc/kernel/uapi/linux/v4l2-subdev.h b/libc/kernel/uapi/linux/v4l2-subdev.h
index 2954dc3..b5a0c87 100644
--- a/libc/kernel/uapi/linux/v4l2-subdev.h
+++ b/libc/kernel/uapi/linux/v4l2-subdev.h
@@ -1,23 +1,12 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __LINUX_V4L2_SUBDEV_H
 #define __LINUX_V4L2_SUBDEV_H
+#include <linux/const.h>
 #include <linux/ioctl.h>
 #include <linux/types.h>
 #include <linux/v4l2-common.h>
@@ -30,13 +19,15 @@
   __u32 which;
   __u32 pad;
   struct v4l2_mbus_framefmt format;
-  __u32 reserved[8];
+  __u32 stream;
+  __u32 reserved[7];
 };
 struct v4l2_subdev_crop {
   __u32 which;
   __u32 pad;
   struct v4l2_rect rect;
-  __u32 reserved[8];
+  __u32 stream;
+  __u32 reserved[7];
 };
 #define V4L2_SUBDEV_MBUS_CODE_CSC_COLORSPACE 0x00000001
 #define V4L2_SUBDEV_MBUS_CODE_CSC_XFER_FUNC 0x00000002
@@ -49,7 +40,8 @@
   __u32 code;
   __u32 which;
   __u32 flags;
-  __u32 reserved[7];
+  __u32 stream;
+  __u32 reserved[6];
 };
 struct v4l2_subdev_frame_size_enum {
   __u32 index;
@@ -60,12 +52,15 @@
   __u32 min_height;
   __u32 max_height;
   __u32 which;
-  __u32 reserved[8];
+  __u32 stream;
+  __u32 reserved[7];
 };
 struct v4l2_subdev_frame_interval {
   __u32 pad;
   struct v4l2_fract interval;
-  __u32 reserved[9];
+  __u32 stream;
+  __u32 which;
+  __u32 reserved[7];
 };
 struct v4l2_subdev_frame_interval_enum {
   __u32 index;
@@ -75,7 +70,8 @@
   __u32 height;
   struct v4l2_fract interval;
   __u32 which;
-  __u32 reserved[8];
+  __u32 stream;
+  __u32 reserved[7];
 };
 struct v4l2_subdev_selection {
   __u32 which;
@@ -83,7 +79,8 @@
   __u32 target;
   __u32 flags;
   struct v4l2_rect r;
-  __u32 reserved[8];
+  __u32 stream;
+  __u32 reserved[7];
 };
 struct v4l2_subdev_capability {
   __u32 version;
@@ -91,6 +88,28 @@
   __u32 reserved[14];
 };
 #define V4L2_SUBDEV_CAP_RO_SUBDEV 0x00000001
+#define V4L2_SUBDEV_CAP_STREAMS 0x00000002
+#define V4L2_SUBDEV_ROUTE_FL_ACTIVE (1U << 0)
+struct v4l2_subdev_route {
+  __u32 sink_pad;
+  __u32 sink_stream;
+  __u32 source_pad;
+  __u32 source_stream;
+  __u32 flags;
+  __u32 reserved[5];
+};
+struct v4l2_subdev_routing {
+  __u32 which;
+  __u32 len_routes;
+  __u64 routes;
+  __u32 num_routes;
+  __u32 reserved[11];
+};
+#define V4L2_SUBDEV_CLIENT_CAP_STREAMS (1ULL << 0)
+#define V4L2_SUBDEV_CLIENT_CAP_INTERVAL_USES_WHICH (1ULL << 1)
+struct v4l2_subdev_client_capability {
+  __u64 capabilities;
+};
 #define v4l2_subdev_edid v4l2_edid
 #define VIDIOC_SUBDEV_QUERYCAP _IOR('V', 0, struct v4l2_subdev_capability)
 #define VIDIOC_SUBDEV_G_FMT _IOWR('V', 4, struct v4l2_subdev_format)
@@ -104,6 +123,10 @@
 #define VIDIOC_SUBDEV_S_CROP _IOWR('V', 60, struct v4l2_subdev_crop)
 #define VIDIOC_SUBDEV_G_SELECTION _IOWR('V', 61, struct v4l2_subdev_selection)
 #define VIDIOC_SUBDEV_S_SELECTION _IOWR('V', 62, struct v4l2_subdev_selection)
+#define VIDIOC_SUBDEV_G_ROUTING _IOWR('V', 38, struct v4l2_subdev_routing)
+#define VIDIOC_SUBDEV_S_ROUTING _IOWR('V', 39, struct v4l2_subdev_routing)
+#define VIDIOC_SUBDEV_G_CLIENT_CAP _IOR('V', 101, struct v4l2_subdev_client_capability)
+#define VIDIOC_SUBDEV_S_CLIENT_CAP _IOWR('V', 102, struct v4l2_subdev_client_capability)
 #define VIDIOC_SUBDEV_G_STD _IOR('V', 23, v4l2_std_id)
 #define VIDIOC_SUBDEV_S_STD _IOW('V', 24, v4l2_std_id)
 #define VIDIOC_SUBDEV_ENUMSTD _IOWR('V', 25, struct v4l2_standard)
diff --git a/libc/kernel/uapi/linux/vbox_err.h b/libc/kernel/uapi/linux/vbox_err.h
index dec3574..ba4a045 100644
--- a/libc/kernel/uapi/linux/vbox_err.h
+++ b/libc/kernel/uapi/linux/vbox_err.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __UAPI_VBOX_ERR_H__
 #define __UAPI_VBOX_ERR_H__
 #define VINF_SUCCESS 0
diff --git a/libc/kernel/uapi/linux/vbox_vmmdev_types.h b/libc/kernel/uapi/linux/vbox_vmmdev_types.h
index 777a2bb..7123c02 100644
--- a/libc/kernel/uapi/linux/vbox_vmmdev_types.h
+++ b/libc/kernel/uapi/linux/vbox_vmmdev_types.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __UAPI_VBOX_VMMDEV_TYPES_H__
 #define __UAPI_VBOX_VMMDEV_TYPES_H__
 #include <asm/bitsperlong.h>
diff --git a/libc/kernel/uapi/linux/vboxguest.h b/libc/kernel/uapi/linux/vboxguest.h
index 342c020..edaf71f 100644
--- a/libc/kernel/uapi/linux/vboxguest.h
+++ b/libc/kernel/uapi/linux/vboxguest.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __UAPI_VBOXGUEST_H__
 #define __UAPI_VBOXGUEST_H__
 #include <asm/bitsperlong.h>
diff --git a/libc/kernel/uapi/linux/vdpa.h b/libc/kernel/uapi/linux/vdpa.h
index 989a61b..462d579 100644
--- a/libc/kernel/uapi/linux/vdpa.h
+++ b/libc/kernel/uapi/linux/vdpa.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_VDPA_H_
 #define _UAPI_LINUX_VDPA_H_
 #define VDPA_GENL_NAME "vdpa"
@@ -53,6 +41,22 @@
   VDPA_ATTR_DEV_VENDOR_ATTR_NAME,
   VDPA_ATTR_DEV_VENDOR_ATTR_VALUE,
   VDPA_ATTR_DEV_FEATURES,
+  VDPA_ATTR_DEV_BLK_CFG_CAPACITY,
+  VDPA_ATTR_DEV_BLK_CFG_SIZE_MAX,
+  VDPA_ATTR_DEV_BLK_CFG_BLK_SIZE,
+  VDPA_ATTR_DEV_BLK_CFG_SEG_MAX,
+  VDPA_ATTR_DEV_BLK_CFG_NUM_QUEUES,
+  VDPA_ATTR_DEV_BLK_CFG_PHY_BLK_EXP,
+  VDPA_ATTR_DEV_BLK_CFG_ALIGN_OFFSET,
+  VDPA_ATTR_DEV_BLK_CFG_MIN_IO_SIZE,
+  VDPA_ATTR_DEV_BLK_CFG_OPT_IO_SIZE,
+  VDPA_ATTR_DEV_BLK_CFG_MAX_DISCARD_SEC,
+  VDPA_ATTR_DEV_BLK_CFG_MAX_DISCARD_SEG,
+  VDPA_ATTR_DEV_BLK_CFG_DISCARD_SEC_ALIGN,
+  VDPA_ATTR_DEV_BLK_CFG_MAX_WRITE_ZEROES_SEC,
+  VDPA_ATTR_DEV_BLK_CFG_MAX_WRITE_ZEROES_SEG,
+  VDPA_ATTR_DEV_BLK_READ_ONLY,
+  VDPA_ATTR_DEV_BLK_FLUSH,
   VDPA_ATTR_MAX,
 };
 #endif
diff --git a/libc/kernel/uapi/linux/vduse.h b/libc/kernel/uapi/linux/vduse.h
index f0b6d6b..934dab7 100644
--- a/libc/kernel/uapi/linux/vduse.h
+++ b/libc/kernel/uapi/linux/vduse.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_VDUSE_H_
 #define _UAPI_VDUSE_H_
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/version.h b/libc/kernel/uapi/linux/version.h
index 0d50613..0cc45cf 100644
--- a/libc/kernel/uapi/linux/version.h
+++ b/libc/kernel/uapi/linux/version.h
@@ -1,23 +1,11 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
-#define LINUX_VERSION_CODE 393728
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
+#define LINUX_VERSION_CODE 396032
 #define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + ((c) > 255 ? 255 : (c)))
 #define LINUX_VERSION_MAJOR 6
-#define LINUX_VERSION_PATCHLEVEL 2
+#define LINUX_VERSION_PATCHLEVEL 11
 #define LINUX_VERSION_SUBLEVEL 0
diff --git a/libc/kernel/uapi/linux/vesa.h b/libc/kernel/uapi/linux/vesa.h
new file mode 100644
index 0000000..1bf9946
--- /dev/null
+++ b/libc/kernel/uapi/linux/vesa.h
@@ -0,0 +1,20 @@
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
+#ifndef _UAPI_LINUX_VESA_H
+#define _UAPI_LINUX_VESA_H
+enum vesa_blank_mode {
+  VESA_NO_BLANKING = 0,
+#define VESA_NO_BLANKING VESA_NO_BLANKING
+  VESA_VSYNC_SUSPEND = 1,
+#define VESA_VSYNC_SUSPEND VESA_VSYNC_SUSPEND
+  VESA_HSYNC_SUSPEND = 2,
+#define VESA_HSYNC_SUSPEND VESA_HSYNC_SUSPEND
+  VESA_POWERDOWN = VESA_VSYNC_SUSPEND | VESA_HSYNC_SUSPEND,
+#define VESA_POWERDOWN VESA_POWERDOWN
+  VESA_BLANK_MAX = VESA_POWERDOWN,
+};
+#endif
diff --git a/libc/kernel/uapi/linux/veth.h b/libc/kernel/uapi/linux/veth.h
index 7f79830..5d457da 100644
--- a/libc/kernel/uapi/linux/veth.h
+++ b/libc/kernel/uapi/linux/veth.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __NET_VETH_H_
 #define __NET_VETH_H_
 enum {
diff --git a/libc/kernel/uapi/linux/vfio.h b/libc/kernel/uapi/linux/vfio.h
index 3c1821c..5910e40 100644
--- a/libc/kernel/uapi/linux/vfio.h
+++ b/libc/kernel/uapi/linux/vfio.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPIVFIO_H
 #define _UAPIVFIO_H
 #include <linux/types.h>
@@ -62,9 +50,11 @@
 #define VFIO_DEVICE_FLAGS_AP (1 << 5)
 #define VFIO_DEVICE_FLAGS_FSL_MC (1 << 6)
 #define VFIO_DEVICE_FLAGS_CAPS (1 << 7)
+#define VFIO_DEVICE_FLAGS_CDX (1 << 8)
   __u32 num_regions;
   __u32 num_irqs;
   __u32 cap_offset;
+  __u32 pad;
 };
 #define VFIO_DEVICE_GET_INFO _IO(VFIO_TYPE, VFIO_BASE + 7)
 #define VFIO_DEVICE_API_PCI_STRING "vfio-pci"
@@ -76,6 +66,15 @@
 #define VFIO_DEVICE_INFO_CAP_ZPCI_GROUP 2
 #define VFIO_DEVICE_INFO_CAP_ZPCI_UTIL 3
 #define VFIO_DEVICE_INFO_CAP_ZPCI_PFIP 4
+#define VFIO_DEVICE_INFO_CAP_PCI_ATOMIC_COMP 5
+struct vfio_device_info_cap_pci_atomic_comp {
+  struct vfio_info_cap_header header;
+  __u32 flags;
+#define VFIO_PCI_ATOMIC_COMP32 (1 << 0)
+#define VFIO_PCI_ATOMIC_COMP64 (1 << 1)
+#define VFIO_PCI_ATOMIC_COMP128 (1 << 2)
+  __u32 reserved;
+};
 struct vfio_region_info {
   __u32 argsz;
   __u32 flags;
@@ -85,14 +84,14 @@
 #define VFIO_REGION_INFO_FLAG_CAPS (1 << 3)
   __u32 index;
   __u32 cap_offset;
-  __u64 size;
-  __u64 offset;
+  __aligned_u64 size;
+  __aligned_u64 offset;
 };
 #define VFIO_DEVICE_GET_REGION_INFO _IO(VFIO_TYPE, VFIO_BASE + 8)
 #define VFIO_REGION_INFO_CAP_SPARSE_MMAP 1
 struct vfio_region_sparse_mmap_area {
-  __u64 offset;
-  __u64 size;
+  __aligned_u64 offset;
+  __aligned_u64 size;
 };
 struct vfio_region_info_cap_sparse_mmap {
   struct vfio_info_cap_header header;
@@ -142,15 +141,15 @@
 #define VFIO_DEVICE_STATE_IS_ERROR(state) ((state & VFIO_DEVICE_STATE_MASK) == (VFIO_DEVICE_STATE_V1_SAVING | VFIO_DEVICE_STATE_V1_RESUMING))
 #define VFIO_DEVICE_STATE_SET_ERROR(state) ((state & ~VFIO_DEVICE_STATE_MASK) | VFIO_DEVICE_STATE_V1_SAVING | VFIO_DEVICE_STATE_V1_RESUMING)
   __u32 reserved;
-  __u64 pending_bytes;
-  __u64 data_offset;
-  __u64 data_size;
+  __aligned_u64 pending_bytes;
+  __aligned_u64 data_offset;
+  __aligned_u64 data_size;
 };
 #define VFIO_REGION_INFO_CAP_MSIX_MAPPABLE 3
 #define VFIO_REGION_INFO_CAP_NVLINK2_SSATGT 4
 struct vfio_region_info_cap_nvlink2_ssatgt {
   struct vfio_info_cap_header header;
-  __u64 tgt;
+  __aligned_u64 tgt;
 };
 #define VFIO_REGION_INFO_CAP_NVLINK2_LNKSPD 5
 struct vfio_region_info_cap_nvlink2_lnkspd {
@@ -217,8 +216,17 @@
   VFIO_CCW_REQ_IRQ_INDEX,
   VFIO_CCW_NUM_IRQS
 };
+enum {
+  VFIO_AP_REQ_IRQ_INDEX,
+  VFIO_AP_NUM_IRQS
+};
 struct vfio_pci_dependent_device {
-  __u32 group_id;
+  union {
+    __u32 group_id;
+    __u32 devid;
+#define VFIO_PCI_DEVID_OWNED 0
+#define VFIO_PCI_DEVID_NOT_OWNED - 1
+  };
   __u16 segment;
   __u8 bus;
   __u8 devfn;
@@ -226,6 +234,8 @@
 struct vfio_pci_hot_reset_info {
   __u32 argsz;
   __u32 flags;
+#define VFIO_PCI_HOT_RESET_FLAG_DEV_ID (1 << 0)
+#define VFIO_PCI_HOT_RESET_FLAG_DEV_ID_OWNED (1 << 1)
   __u32 count;
   struct vfio_pci_dependent_device devices[];
 };
@@ -245,7 +255,7 @@
 #define VFIO_GFX_PLANE_TYPE_REGION (1 << 2)
   __u32 drm_plane_type;
   __u32 drm_format;
-  __u64 drm_format_mod;
+  __aligned_u64 drm_format_mod;
   __u32 width;
   __u32 height;
   __u32 stride;
@@ -258,6 +268,7 @@
     __u32 region_index;
     __u32 dmabuf_id;
   };
+  __u32 reserved;
 };
 #define VFIO_DEVICE_QUERY_GFX_PLANE _IO(VFIO_TYPE, VFIO_BASE + 14)
 #define VFIO_DEVICE_GET_GFX_DMABUF _IO(VFIO_TYPE, VFIO_BASE + 15)
@@ -269,9 +280,10 @@
 #define VFIO_DEVICE_IOEVENTFD_32 (1 << 2)
 #define VFIO_DEVICE_IOEVENTFD_64 (1 << 3)
 #define VFIO_DEVICE_IOEVENTFD_SIZE_MASK (0xf)
-  __u64 offset;
-  __u64 data;
+  __aligned_u64 offset;
+  __aligned_u64 data;
   __s32 fd;
+  __u32 reserved;
 };
 #define VFIO_DEVICE_IOEVENTFD _IO(VFIO_TYPE, VFIO_BASE + 16)
 struct vfio_device_feature {
@@ -284,6 +296,24 @@
   __u8 data[];
 };
 #define VFIO_DEVICE_FEATURE _IO(VFIO_TYPE, VFIO_BASE + 17)
+struct vfio_device_bind_iommufd {
+  __u32 argsz;
+  __u32 flags;
+  __s32 iommufd;
+  __u32 out_devid;
+};
+#define VFIO_DEVICE_BIND_IOMMUFD _IO(VFIO_TYPE, VFIO_BASE + 18)
+struct vfio_device_attach_iommufd_pt {
+  __u32 argsz;
+  __u32 flags;
+  __u32 pt_id;
+};
+#define VFIO_DEVICE_ATTACH_IOMMUFD_PT _IO(VFIO_TYPE, VFIO_BASE + 19)
+struct vfio_device_detach_iommufd_pt {
+  __u32 argsz;
+  __u32 flags;
+};
+#define VFIO_DEVICE_DETACH_IOMMUFD_PT _IO(VFIO_TYPE, VFIO_BASE + 20)
 #define VFIO_DEVICE_FEATURE_PCI_VF_TOKEN (0)
 struct vfio_device_feature_migration {
   __aligned_u64 flags;
@@ -306,6 +336,7 @@
   VFIO_DEVICE_STATE_RUNNING_P2P = 5,
   VFIO_DEVICE_STATE_PRE_COPY = 6,
   VFIO_DEVICE_STATE_PRE_COPY_P2P = 7,
+  VFIO_DEVICE_STATE_NR,
 };
 struct vfio_precopy_info {
   __u32 argsz;
@@ -344,13 +375,20 @@
   __aligned_u64 stop_copy_length;
 };
 #define VFIO_DEVICE_FEATURE_MIG_DATA_SIZE 9
+struct vfio_device_feature_bus_master {
+  __u32 op;
+#define VFIO_DEVICE_FEATURE_CLEAR_MASTER 0
+#define VFIO_DEVICE_FEATURE_SET_MASTER 1
+};
+#define VFIO_DEVICE_FEATURE_BUS_MASTER 10
 struct vfio_iommu_type1_info {
   __u32 argsz;
   __u32 flags;
 #define VFIO_IOMMU_INFO_PGSIZES (1 << 0)
 #define VFIO_IOMMU_INFO_CAPS (1 << 1)
-  __u64 iova_pgsizes;
+  __aligned_u64 iova_pgsizes;
   __u32 cap_offset;
+  __u32 pad;
 };
 #define VFIO_IOMMU_TYPE1_INFO_CAP_IOVA_RANGE 1
 struct vfio_iova_range {
diff --git a/libc/kernel/uapi/linux/vfio_ccw.h b/libc/kernel/uapi/linux/vfio_ccw.h
index 7bf08f5..aa5a87e 100644
--- a/libc/kernel/uapi/linux/vfio_ccw.h
+++ b/libc/kernel/uapi/linux/vfio_ccw.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _VFIO_CCW_H_
 #define _VFIO_CCW_H_
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/vfio_zdev.h b/libc/kernel/uapi/linux/vfio_zdev.h
index 1c3a943..03efc77 100644
--- a/libc/kernel/uapi/linux/vfio_zdev.h
+++ b/libc/kernel/uapi/linux/vfio_zdev.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _VFIO_ZDEV_H_
 #define _VFIO_ZDEV_H_
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/vhost.h b/libc/kernel/uapi/linux/vhost.h
index e5b1327..a93212e 100644
--- a/libc/kernel/uapi/linux/vhost.h
+++ b/libc/kernel/uapi/linux/vhost.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _LINUX_VHOST_H
 #define _LINUX_VHOST_H
 #include <linux/vhost_types.h>
@@ -30,6 +18,8 @@
 #define VHOST_SET_MEM_TABLE _IOW(VHOST_VIRTIO, 0x03, struct vhost_memory)
 #define VHOST_SET_LOG_BASE _IOW(VHOST_VIRTIO, 0x04, __u64)
 #define VHOST_SET_LOG_FD _IOW(VHOST_VIRTIO, 0x07, int)
+#define VHOST_NEW_WORKER _IOR(VHOST_VIRTIO, 0x8, struct vhost_worker_state)
+#define VHOST_FREE_WORKER _IOW(VHOST_VIRTIO, 0x9, struct vhost_worker_state)
 #define VHOST_SET_VRING_NUM _IOW(VHOST_VIRTIO, 0x10, struct vhost_vring_state)
 #define VHOST_SET_VRING_ADDR _IOW(VHOST_VIRTIO, 0x11, struct vhost_vring_addr)
 #define VHOST_SET_VRING_BASE _IOW(VHOST_VIRTIO, 0x12, struct vhost_vring_state)
@@ -38,6 +28,8 @@
 #define VHOST_VRING_BIG_ENDIAN 1
 #define VHOST_SET_VRING_ENDIAN _IOW(VHOST_VIRTIO, 0x13, struct vhost_vring_state)
 #define VHOST_GET_VRING_ENDIAN _IOW(VHOST_VIRTIO, 0x14, struct vhost_vring_state)
+#define VHOST_ATTACH_VRING_WORKER _IOW(VHOST_VIRTIO, 0x15, struct vhost_vring_worker)
+#define VHOST_GET_VRING_WORKER _IOWR(VHOST_VIRTIO, 0x16, struct vhost_vring_worker)
 #define VHOST_SET_VRING_KICK _IOW(VHOST_VIRTIO, 0x20, struct vhost_vring_file)
 #define VHOST_SET_VRING_CALL _IOW(VHOST_VIRTIO, 0x21, struct vhost_vring_file)
 #define VHOST_SET_VRING_ERR _IOW(VHOST_VIRTIO, 0x22, struct vhost_vring_file)
@@ -63,10 +55,13 @@
 #define VHOST_VDPA_SET_CONFIG_CALL _IOW(VHOST_VIRTIO, 0x77, int)
 #define VHOST_VDPA_GET_IOVA_RANGE _IOR(VHOST_VIRTIO, 0x78, struct vhost_vdpa_iova_range)
 #define VHOST_VDPA_GET_CONFIG_SIZE _IOR(VHOST_VIRTIO, 0x79, __u32)
-#define VHOST_VDPA_GET_VQS_COUNT _IOR(VHOST_VIRTIO, 0x80, __u32)
-#define VHOST_VDPA_GET_GROUP_NUM _IOR(VHOST_VIRTIO, 0x81, __u32)
 #define VHOST_VDPA_GET_AS_NUM _IOR(VHOST_VIRTIO, 0x7A, unsigned int)
 #define VHOST_VDPA_GET_VRING_GROUP _IOWR(VHOST_VIRTIO, 0x7B, struct vhost_vring_state)
 #define VHOST_VDPA_SET_GROUP_ASID _IOW(VHOST_VIRTIO, 0x7C, struct vhost_vring_state)
 #define VHOST_VDPA_SUSPEND _IO(VHOST_VIRTIO, 0x7D)
+#define VHOST_VDPA_RESUME _IO(VHOST_VIRTIO, 0x7E)
+#define VHOST_VDPA_GET_VRING_DESC_GROUP _IOWR(VHOST_VIRTIO, 0x7F, struct vhost_vring_state)
+#define VHOST_VDPA_GET_VQS_COUNT _IOR(VHOST_VIRTIO, 0x80, __u32)
+#define VHOST_VDPA_GET_GROUP_NUM _IOR(VHOST_VIRTIO, 0x81, __u32)
+#define VHOST_VDPA_GET_VRING_SIZE _IOWR(VHOST_VIRTIO, 0x82, struct vhost_vring_state)
 #endif
diff --git a/libc/kernel/uapi/linux/vhost_types.h b/libc/kernel/uapi/linux/vhost_types.h
index 32efa85..cd9a9fb 100644
--- a/libc/kernel/uapi/linux/vhost_types.h
+++ b/libc/kernel/uapi/linux/vhost_types.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _LINUX_VHOST_TYPES_H
 #define _LINUX_VHOST_TYPES_H
 #include <linux/types.h>
@@ -39,6 +27,13 @@
   __u64 avail_user_addr;
   __u64 log_guest_addr;
 };
+struct vhost_worker_state {
+  unsigned int worker_id;
+};
+struct vhost_vring_worker {
+  unsigned int index;
+  unsigned int worker_id;
+};
 struct vhost_iotlb_msg {
   __u64 iova;
   __u64 size;
@@ -106,4 +101,8 @@
 #define VHOST_BACKEND_F_IOTLB_BATCH 0x2
 #define VHOST_BACKEND_F_IOTLB_ASID 0x3
 #define VHOST_BACKEND_F_SUSPEND 0x4
+#define VHOST_BACKEND_F_RESUME 0x5
+#define VHOST_BACKEND_F_ENABLE_AFTER_DRIVER_OK 0x6
+#define VHOST_BACKEND_F_DESC_ASID 0x7
+#define VHOST_BACKEND_F_IOTLB_PERSIST 0x8
 #endif
diff --git a/libc/kernel/uapi/linux/videodev2.h b/libc/kernel/uapi/linux/videodev2.h
index 4fb0a25..fb69a8a 100644
--- a/libc/kernel/uapi/linux/videodev2.h
+++ b/libc/kernel/uapi/linux/videodev2.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI__LINUX_VIDEODEV2_H
 #define _UAPI__LINUX_VIDEODEV2_H
 #include <sys/time.h>
@@ -244,17 +232,27 @@
 #define V4L2_PIX_FMT_RGBX32 v4l2_fourcc('X', 'B', '2', '4')
 #define V4L2_PIX_FMT_ARGB32 v4l2_fourcc('B', 'A', '2', '4')
 #define V4L2_PIX_FMT_XRGB32 v4l2_fourcc('B', 'X', '2', '4')
+#define V4L2_PIX_FMT_RGBX1010102 v4l2_fourcc('R', 'X', '3', '0')
+#define V4L2_PIX_FMT_RGBA1010102 v4l2_fourcc('R', 'A', '3', '0')
+#define V4L2_PIX_FMT_ARGB2101010 v4l2_fourcc('A', 'R', '3', '0')
+#define V4L2_PIX_FMT_BGR48_12 v4l2_fourcc('B', '3', '1', '2')
+#define V4L2_PIX_FMT_BGR48 v4l2_fourcc('B', 'G', 'R', '6')
+#define V4L2_PIX_FMT_RGB48 v4l2_fourcc('R', 'G', 'B', '6')
+#define V4L2_PIX_FMT_ABGR64_12 v4l2_fourcc('B', '4', '1', '2')
 #define V4L2_PIX_FMT_GREY v4l2_fourcc('G', 'R', 'E', 'Y')
 #define V4L2_PIX_FMT_Y4 v4l2_fourcc('Y', '0', '4', ' ')
 #define V4L2_PIX_FMT_Y6 v4l2_fourcc('Y', '0', '6', ' ')
 #define V4L2_PIX_FMT_Y10 v4l2_fourcc('Y', '1', '0', ' ')
 #define V4L2_PIX_FMT_Y12 v4l2_fourcc('Y', '1', '2', ' ')
+#define V4L2_PIX_FMT_Y012 v4l2_fourcc('Y', '0', '1', '2')
 #define V4L2_PIX_FMT_Y14 v4l2_fourcc('Y', '1', '4', ' ')
 #define V4L2_PIX_FMT_Y16 v4l2_fourcc('Y', '1', '6', ' ')
 #define V4L2_PIX_FMT_Y16_BE v4l2_fourcc_be('Y', '1', '6', ' ')
 #define V4L2_PIX_FMT_Y10BPACK v4l2_fourcc('Y', '1', '0', 'B')
 #define V4L2_PIX_FMT_Y10P v4l2_fourcc('Y', '1', '0', 'P')
 #define V4L2_PIX_FMT_IPU3_Y10 v4l2_fourcc('i', 'p', '3', 'y')
+#define V4L2_PIX_FMT_Y12P v4l2_fourcc('Y', '1', '2', 'P')
+#define V4L2_PIX_FMT_Y14P v4l2_fourcc('Y', '1', '4', 'P')
 #define V4L2_PIX_FMT_PAL8 v4l2_fourcc('P', 'A', 'L', '8')
 #define V4L2_PIX_FMT_UV8 v4l2_fourcc('U', 'V', '8', ' ')
 #define V4L2_PIX_FMT_YUYV v4l2_fourcc('Y', 'U', 'Y', 'V')
@@ -275,6 +273,10 @@
 #define V4L2_PIX_FMT_YUVA32 v4l2_fourcc('Y', 'U', 'V', 'A')
 #define V4L2_PIX_FMT_YUVX32 v4l2_fourcc('Y', 'U', 'V', 'X')
 #define V4L2_PIX_FMT_M420 v4l2_fourcc('M', '4', '2', '0')
+#define V4L2_PIX_FMT_YUV48_12 v4l2_fourcc('Y', '3', '1', '2')
+#define V4L2_PIX_FMT_Y210 v4l2_fourcc('Y', '2', '1', '0')
+#define V4L2_PIX_FMT_Y212 v4l2_fourcc('Y', '2', '1', '2')
+#define V4L2_PIX_FMT_Y216 v4l2_fourcc('Y', '2', '1', '6')
 #define V4L2_PIX_FMT_NV12 v4l2_fourcc('N', 'V', '1', '2')
 #define V4L2_PIX_FMT_NV21 v4l2_fourcc('N', 'V', '2', '1')
 #define V4L2_PIX_FMT_NV16 v4l2_fourcc('N', 'V', '1', '6')
@@ -282,10 +284,12 @@
 #define V4L2_PIX_FMT_NV24 v4l2_fourcc('N', 'V', '2', '4')
 #define V4L2_PIX_FMT_NV42 v4l2_fourcc('N', 'V', '4', '2')
 #define V4L2_PIX_FMT_P010 v4l2_fourcc('P', '0', '1', '0')
+#define V4L2_PIX_FMT_P012 v4l2_fourcc('P', '0', '1', '2')
 #define V4L2_PIX_FMT_NV12M v4l2_fourcc('N', 'M', '1', '2')
 #define V4L2_PIX_FMT_NV21M v4l2_fourcc('N', 'M', '2', '1')
 #define V4L2_PIX_FMT_NV16M v4l2_fourcc('N', 'M', '1', '6')
 #define V4L2_PIX_FMT_NV61M v4l2_fourcc('N', 'M', '6', '1')
+#define V4L2_PIX_FMT_P012M v4l2_fourcc('P', 'M', '1', '2')
 #define V4L2_PIX_FMT_YUV410 v4l2_fourcc('Y', 'U', 'V', '9')
 #define V4L2_PIX_FMT_YVU410 v4l2_fourcc('Y', 'V', 'U', '9')
 #define V4L2_PIX_FMT_YUV411P v4l2_fourcc('4', '1', '1', 'P')
@@ -301,6 +305,7 @@
 #define V4L2_PIX_FMT_NV12_4L4 v4l2_fourcc('V', 'T', '1', '2')
 #define V4L2_PIX_FMT_NV12_16L16 v4l2_fourcc('H', 'M', '1', '2')
 #define V4L2_PIX_FMT_NV12_32L32 v4l2_fourcc('S', 'T', '1', '2')
+#define V4L2_PIX_FMT_NV15_4L4 v4l2_fourcc('V', 'T', '1', '5')
 #define V4L2_PIX_FMT_P010_4L4 v4l2_fourcc('T', '0', '1', '0')
 #define V4L2_PIX_FMT_NV12_8L128 v4l2_fourcc('A', 'T', '1', '2')
 #define V4L2_PIX_FMT_NV12_10BE_8L128 v4l2_fourcc_be('A', 'X', '1', '2')
@@ -374,6 +379,10 @@
 #define V4L2_PIX_FMT_FWHT_STATELESS v4l2_fourcc('S', 'F', 'W', 'H')
 #define V4L2_PIX_FMT_H264_SLICE v4l2_fourcc('S', '2', '6', '4')
 #define V4L2_PIX_FMT_HEVC_SLICE v4l2_fourcc('S', '2', '6', '5')
+#define V4L2_PIX_FMT_AV1_FRAME v4l2_fourcc('A', 'V', '1', 'F')
+#define V4L2_PIX_FMT_SPK v4l2_fourcc('S', 'P', 'K', '0')
+#define V4L2_PIX_FMT_RV30 v4l2_fourcc('R', 'V', '3', '0')
+#define V4L2_PIX_FMT_RV40 v4l2_fourcc('R', 'V', '4', '0')
 #define V4L2_PIX_FMT_CPIA1 v4l2_fourcc('C', 'P', 'I', 'A')
 #define V4L2_PIX_FMT_WNVA v4l2_fourcc('W', 'N', 'V', 'A')
 #define V4L2_PIX_FMT_SN9C10X v4l2_fourcc('S', '9', '1', '0')
@@ -405,16 +414,29 @@
 #define V4L2_PIX_FMT_Z16 v4l2_fourcc('Z', '1', '6', ' ')
 #define V4L2_PIX_FMT_MT21C v4l2_fourcc('M', 'T', '2', '1')
 #define V4L2_PIX_FMT_MM21 v4l2_fourcc('M', 'M', '2', '1')
+#define V4L2_PIX_FMT_MT2110T v4l2_fourcc('M', 'T', '2', 'T')
+#define V4L2_PIX_FMT_MT2110R v4l2_fourcc('M', 'T', '2', 'R')
 #define V4L2_PIX_FMT_INZI v4l2_fourcc('I', 'N', 'Z', 'I')
 #define V4L2_PIX_FMT_CNF4 v4l2_fourcc('C', 'N', 'F', '4')
 #define V4L2_PIX_FMT_HI240 v4l2_fourcc('H', 'I', '2', '4')
 #define V4L2_PIX_FMT_QC08C v4l2_fourcc('Q', '0', '8', 'C')
 #define V4L2_PIX_FMT_QC10C v4l2_fourcc('Q', '1', '0', 'C')
 #define V4L2_PIX_FMT_AJPG v4l2_fourcc('A', 'J', 'P', 'G')
+#define V4L2_PIX_FMT_HEXTILE v4l2_fourcc('H', 'X', 'T', 'L')
 #define V4L2_PIX_FMT_IPU3_SBGGR10 v4l2_fourcc('i', 'p', '3', 'b')
 #define V4L2_PIX_FMT_IPU3_SGBRG10 v4l2_fourcc('i', 'p', '3', 'g')
 #define V4L2_PIX_FMT_IPU3_SGRBG10 v4l2_fourcc('i', 'p', '3', 'G')
 #define V4L2_PIX_FMT_IPU3_SRGGB10 v4l2_fourcc('i', 'p', '3', 'r')
+#define V4L2_PIX_FMT_PISP_COMP1_RGGB v4l2_fourcc('P', 'C', '1', 'R')
+#define V4L2_PIX_FMT_PISP_COMP1_GRBG v4l2_fourcc('P', 'C', '1', 'G')
+#define V4L2_PIX_FMT_PISP_COMP1_GBRG v4l2_fourcc('P', 'C', '1', 'g')
+#define V4L2_PIX_FMT_PISP_COMP1_BGGR v4l2_fourcc('P', 'C', '1', 'B')
+#define V4L2_PIX_FMT_PISP_COMP1_MONO v4l2_fourcc('P', 'C', '1', 'M')
+#define V4L2_PIX_FMT_PISP_COMP2_RGGB v4l2_fourcc('P', 'C', '2', 'R')
+#define V4L2_PIX_FMT_PISP_COMP2_GRBG v4l2_fourcc('P', 'C', '2', 'G')
+#define V4L2_PIX_FMT_PISP_COMP2_GBRG v4l2_fourcc('P', 'C', '2', 'g')
+#define V4L2_PIX_FMT_PISP_COMP2_BGGR v4l2_fourcc('P', 'C', '2', 'B')
+#define V4L2_PIX_FMT_PISP_COMP2_MONO v4l2_fourcc('P', 'C', '2', 'M')
 #define V4L2_SDR_FMT_CU8 v4l2_fourcc('C', 'U', '0', '8')
 #define V4L2_SDR_FMT_CU16LE v4l2_fourcc('C', 'U', '1', '6')
 #define V4L2_SDR_FMT_CS8 v4l2_fourcc('C', 'S', '0', '8')
@@ -434,6 +456,7 @@
 #define V4L2_META_FMT_VIVID v4l2_fourcc('V', 'I', 'V', 'D')
 #define V4L2_META_FMT_RK_ISP1_PARAMS v4l2_fourcc('R', 'K', '1', 'P')
 #define V4L2_META_FMT_RK_ISP1_STAT_3A v4l2_fourcc('R', 'K', '1', 'S')
+#define V4L2_META_FMT_RPI_BE_CFG v4l2_fourcc('R', 'P', 'B', 'C')
 #define V4L2_PIX_FMT_PRIV_MAGIC 0xfeedcafe
 #define V4L2_PIX_FMT_FLAG_PREMUL_ALPHA 0x00000001
 #define V4L2_PIX_FMT_FLAG_SET_CSC 0x00000002
@@ -456,6 +479,7 @@
 #define V4L2_FMT_FLAG_CSC_YCBCR_ENC 0x0080
 #define V4L2_FMT_FLAG_CSC_HSV_ENC V4L2_FMT_FLAG_CSC_YCBCR_ENC
 #define V4L2_FMT_FLAG_CSC_QUANTIZATION 0x0100
+#define V4L2_FMT_FLAG_META_LINE_BASED 0x0200
 enum v4l2_frmsizetypes {
   V4L2_FRMSIZE_TYPE_DISCRETE = 1,
   V4L2_FRMSIZE_TYPE_CONTINUOUS = 2,
@@ -554,6 +578,8 @@
 #define V4L2_BUF_CAP_SUPPORTS_ORPHANED_BUFS (1 << 4)
 #define V4L2_BUF_CAP_SUPPORTS_M2M_HOLD_CAPTURE_BUF (1 << 5)
 #define V4L2_BUF_CAP_SUPPORTS_MMAP_CACHE_HINTS (1 << 6)
+#define V4L2_BUF_CAP_SUPPORTS_MAX_NUM_BUFFERS (1 << 7)
+#define V4L2_BUF_CAP_SUPPORTS_REMOVE_BUFS (1 << 8)
 struct v4l2_plane {
   __u32 bytesused;
   __u32 length;
@@ -899,11 +925,11 @@
     __u8  * p_u8;
     __u16  * p_u16;
     __u32  * p_u32;
-    __u32  * p_s32;
-    __u32  * p_s64;
+    __s32  * p_s32;
+    __s64  * p_s64;
     struct v4l2_area  * p_area;
     struct v4l2_ctrl_h264_sps  * p_h264_sps;
-    struct v4l2_ctrl_h264_pps * p_h264_pps;
+    struct v4l2_ctrl_h264_pps  * p_h264_pps;
     struct v4l2_ctrl_h264_scaling_matrix  * p_h264_scaling_matrix;
     struct v4l2_ctrl_h264_pred_weights  * p_h264_pred_weights;
     struct v4l2_ctrl_h264_slice_params  * p_h264_slice_params;
@@ -920,8 +946,14 @@
     struct v4l2_ctrl_hevc_slice_params  * p_hevc_slice_params;
     struct v4l2_ctrl_hevc_scaling_matrix  * p_hevc_scaling_matrix;
     struct v4l2_ctrl_hevc_decode_params  * p_hevc_decode_params;
+    struct v4l2_ctrl_av1_sequence  * p_av1_sequence;
+    struct v4l2_ctrl_av1_tile_group_entry  * p_av1_tile_group_entry;
+    struct v4l2_ctrl_av1_frame  * p_av1_frame;
+    struct v4l2_ctrl_av1_film_grain  * p_av1_film_grain;
+    struct v4l2_ctrl_hdr10_cll_info  * p_hdr10_cll_info;
+    struct v4l2_ctrl_hdr10_mastering_display  * p_hdr10_mastering_display;
     void  * ptr;
-  };
+  } __attribute__((packed));
 } __attribute__((packed));
 struct v4l2_ext_controls {
   union {
@@ -977,6 +1009,10 @@
   V4L2_CTRL_TYPE_HEVC_SLICE_PARAMS = 0x0272,
   V4L2_CTRL_TYPE_HEVC_SCALING_MATRIX = 0x0273,
   V4L2_CTRL_TYPE_HEVC_DECODE_PARAMS = 0x0274,
+  V4L2_CTRL_TYPE_AV1_SEQUENCE = 0x280,
+  V4L2_CTRL_TYPE_AV1_TILE_GROUP_ENTRY = 0x281,
+  V4L2_CTRL_TYPE_AV1_FRAME = 0x282,
+  V4L2_CTRL_TYPE_AV1_FILM_GRAIN = 0x283,
 };
 struct v4l2_queryctrl {
   __u32 id;
@@ -1292,6 +1328,9 @@
 struct v4l2_meta_format {
   __u32 dataformat;
   __u32 buffersize;
+  __u32 width;
+  __u32 height;
+  __u32 bytesperline;
 } __attribute__((packed));
 struct v4l2_format {
   __u32 type;
@@ -1413,7 +1452,14 @@
   struct v4l2_format format;
   __u32 capabilities;
   __u32 flags;
-  __u32 reserved[6];
+  __u32 max_num_buffers;
+  __u32 reserved[5];
+};
+struct v4l2_remove_buffers {
+  __u32 index;
+  __u32 count;
+  __u32 type;
+  __u32 reserved[13];
 };
 #define VIDIOC_QUERYCAP _IOR('V', 0, struct v4l2_capability)
 #define VIDIOC_ENUM_FMT _IOWR('V', 2, struct v4l2_fmtdesc)
@@ -1497,6 +1543,7 @@
 #define VIDIOC_ENUM_FREQ_BANDS _IOWR('V', 101, struct v4l2_frequency_band)
 #define VIDIOC_DBG_G_CHIP_INFO _IOWR('V', 102, struct v4l2_dbg_chip_info)
 #define VIDIOC_QUERY_EXT_CTRL _IOWR('V', 103, struct v4l2_query_ext_ctrl)
+#define VIDIOC_REMOVE_BUFS _IOWR('V', 104, struct v4l2_remove_buffers)
 #define BASE_VIDIOC_PRIVATE 192
 #define V4L2_PIX_FMT_HM12 V4L2_PIX_FMT_NV12_16L16
 #define V4L2_PIX_FMT_SUNXI_TILED_NV12 V4L2_PIX_FMT_NV12_32L32
diff --git a/libc/kernel/uapi/linux/virtio_9p.h b/libc/kernel/uapi/linux/virtio_9p.h
index 2e05786..519680a 100644
--- a/libc/kernel/uapi/linux/virtio_9p.h
+++ b/libc/kernel/uapi/linux/virtio_9p.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _LINUX_VIRTIO_9P_H
 #define _LINUX_VIRTIO_9P_H
 #include <linux/virtio_types.h>
diff --git a/libc/kernel/uapi/linux/virtio_balloon.h b/libc/kernel/uapi/linux/virtio_balloon.h
index d145caa..f37c148 100644
--- a/libc/kernel/uapi/linux/virtio_balloon.h
+++ b/libc/kernel/uapi/linux/virtio_balloon.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _LINUX_VIRTIO_BALLOON_H
 #define _LINUX_VIRTIO_BALLOON_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/virtio_blk.h b/libc/kernel/uapi/linux/virtio_blk.h
index 0dd08c5..7cc5139 100644
--- a/libc/kernel/uapi/linux/virtio_blk.h
+++ b/libc/kernel/uapi/linux/virtio_blk.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _LINUX_VIRTIO_BLK_H
 #define _LINUX_VIRTIO_BLK_H
 #include <linux/types.h>
@@ -32,6 +20,7 @@
 #define VIRTIO_BLK_F_DISCARD 13
 #define VIRTIO_BLK_F_WRITE_ZEROES 14
 #define VIRTIO_BLK_F_SECURE_ERASE 16
+#define VIRTIO_BLK_F_ZONED 17
 #ifndef VIRTIO_BLK_NO_LEGACY
 #define VIRTIO_BLK_F_BARRIER 0
 #define VIRTIO_BLK_F_SCSI 7
@@ -67,6 +56,15 @@
   __virtio32 max_secure_erase_sectors;
   __virtio32 max_secure_erase_seg;
   __virtio32 secure_erase_sector_alignment;
+  struct virtio_blk_zoned_characteristics {
+    __virtio32 zone_sectors;
+    __virtio32 max_open_zones;
+    __virtio32 max_active_zones;
+    __virtio32 max_append_sectors;
+    __virtio32 write_granularity;
+    __u8 model;
+    __u8 unused2[3];
+  } zoned;
 } __attribute__((packed));
 #define VIRTIO_BLK_T_IN 0
 #define VIRTIO_BLK_T_OUT 1
@@ -78,6 +76,13 @@
 #define VIRTIO_BLK_T_DISCARD 11
 #define VIRTIO_BLK_T_WRITE_ZEROES 13
 #define VIRTIO_BLK_T_SECURE_ERASE 14
+#define VIRTIO_BLK_T_ZONE_APPEND 15
+#define VIRTIO_BLK_T_ZONE_REPORT 16
+#define VIRTIO_BLK_T_ZONE_OPEN 18
+#define VIRTIO_BLK_T_ZONE_CLOSE 20
+#define VIRTIO_BLK_T_ZONE_FINISH 22
+#define VIRTIO_BLK_T_ZONE_RESET 24
+#define VIRTIO_BLK_T_ZONE_RESET_ALL 26
 #ifndef VIRTIO_BLK_NO_LEGACY
 #define VIRTIO_BLK_T_BARRIER 0x80000000
 #endif
@@ -86,6 +91,33 @@
   __virtio32 ioprio;
   __virtio64 sector;
 };
+#define VIRTIO_BLK_Z_NONE 0
+#define VIRTIO_BLK_Z_HM 1
+#define VIRTIO_BLK_Z_HA 2
+struct virtio_blk_zone_descriptor {
+  __virtio64 z_cap;
+  __virtio64 z_start;
+  __virtio64 z_wp;
+  __u8 z_type;
+  __u8 z_state;
+  __u8 reserved[38];
+};
+struct virtio_blk_zone_report {
+  __virtio64 nr_zones;
+  __u8 reserved[56];
+  struct virtio_blk_zone_descriptor zones[];
+};
+#define VIRTIO_BLK_ZT_CONV 1
+#define VIRTIO_BLK_ZT_SWR 2
+#define VIRTIO_BLK_ZT_SWP 3
+#define VIRTIO_BLK_ZS_NOT_WP 0
+#define VIRTIO_BLK_ZS_EMPTY 1
+#define VIRTIO_BLK_ZS_IOPEN 2
+#define VIRTIO_BLK_ZS_EOPEN 3
+#define VIRTIO_BLK_ZS_CLOSED 4
+#define VIRTIO_BLK_ZS_RDONLY 13
+#define VIRTIO_BLK_ZS_FULL 14
+#define VIRTIO_BLK_ZS_OFFLINE 15
 #define VIRTIO_BLK_WRITE_ZEROES_FLAG_UNMAP 0x00000001
 struct virtio_blk_discard_write_zeroes {
   __le64 sector;
@@ -103,4 +135,8 @@
 #define VIRTIO_BLK_S_OK 0
 #define VIRTIO_BLK_S_IOERR 1
 #define VIRTIO_BLK_S_UNSUPP 2
+#define VIRTIO_BLK_S_ZONE_INVALID_CMD 3
+#define VIRTIO_BLK_S_ZONE_UNALIGNED_WP 4
+#define VIRTIO_BLK_S_ZONE_OPEN_RESOURCE 5
+#define VIRTIO_BLK_S_ZONE_ACTIVE_RESOURCE 6
 #endif
diff --git a/libc/kernel/uapi/linux/virtio_bt.h b/libc/kernel/uapi/linux/virtio_bt.h
index 9049adc..8799b66 100644
--- a/libc/kernel/uapi/linux/virtio_bt.h
+++ b/libc/kernel/uapi/linux/virtio_bt.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_VIRTIO_BT_H
 #define _UAPI_LINUX_VIRTIO_BT_H
 #include <linux/virtio_types.h>
@@ -25,7 +13,6 @@
 #define VIRTIO_BT_F_CONFIG_V2 3
 enum virtio_bt_config_type {
   VIRTIO_BT_CONFIG_TYPE_PRIMARY = 0,
-  VIRTIO_BT_CONFIG_TYPE_AMP = 1,
 };
 enum virtio_bt_config_vendor {
   VIRTIO_BT_CONFIG_VENDOR_NONE = 0,
diff --git a/libc/kernel/uapi/linux/virtio_config.h b/libc/kernel/uapi/linux/virtio_config.h
index bdd2e73..021845c 100644
--- a/libc/kernel/uapi/linux/virtio_config.h
+++ b/libc/kernel/uapi/linux/virtio_config.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_VIRTIO_CONFIG_H
 #define _UAPI_LINUX_VIRTIO_CONFIG_H
 #include <linux/types.h>
@@ -26,7 +14,7 @@
 #define VIRTIO_CONFIG_S_NEEDS_RESET 0x40
 #define VIRTIO_CONFIG_S_FAILED 0x80
 #define VIRTIO_TRANSPORT_F_START 28
-#define VIRTIO_TRANSPORT_F_END 41
+#define VIRTIO_TRANSPORT_F_END 42
 #ifndef VIRTIO_CONFIG_NO_LEGACY
 #define VIRTIO_F_NOTIFY_ON_EMPTY 24
 #define VIRTIO_F_ANY_LAYOUT 27
@@ -38,5 +26,8 @@
 #define VIRTIO_F_IN_ORDER 35
 #define VIRTIO_F_ORDER_PLATFORM 36
 #define VIRTIO_F_SR_IOV 37
+#define VIRTIO_F_NOTIFICATION_DATA 38
+#define VIRTIO_F_NOTIF_CONFIG_DATA 39
 #define VIRTIO_F_RING_RESET 40
+#define VIRTIO_F_ADMIN_VQ 41
 #endif
diff --git a/libc/kernel/uapi/linux/virtio_console.h b/libc/kernel/uapi/linux/virtio_console.h
index 6eb4d2a..a16bd5b 100644
--- a/libc/kernel/uapi/linux/virtio_console.h
+++ b/libc/kernel/uapi/linux/virtio_console.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_VIRTIO_CONSOLE_H
 #define _UAPI_LINUX_VIRTIO_CONSOLE_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/virtio_crypto.h b/libc/kernel/uapi/linux/virtio_crypto.h
index 7d7561d..1bd4d73 100644
--- a/libc/kernel/uapi/linux/virtio_crypto.h
+++ b/libc/kernel/uapi/linux/virtio_crypto.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _VIRTIO_CRYPTO_H
 #define _VIRTIO_CRYPTO_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/virtio_fs.h b/libc/kernel/uapi/linux/virtio_fs.h
index 62c57cf..2d857e0 100644
--- a/libc/kernel/uapi/linux/virtio_fs.h
+++ b/libc/kernel/uapi/linux/virtio_fs.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_VIRTIO_FS_H
 #define _UAPI_LINUX_VIRTIO_FS_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/virtio_gpio.h b/libc/kernel/uapi/linux/virtio_gpio.h
index 543fe76..de25bf9 100644
--- a/libc/kernel/uapi/linux/virtio_gpio.h
+++ b/libc/kernel/uapi/linux/virtio_gpio.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _LINUX_VIRTIO_GPIO_H
 #define _LINUX_VIRTIO_GPIO_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/virtio_gpu.h b/libc/kernel/uapi/linux/virtio_gpu.h
index 8a21afd..c3f0fcc 100644
--- a/libc/kernel/uapi/linux/virtio_gpu.h
+++ b/libc/kernel/uapi/linux/virtio_gpu.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef VIRTIO_GPU_HW_H
 #define VIRTIO_GPU_HW_H
 #include <linux/types.h>
@@ -206,6 +194,7 @@
 };
 #define VIRTIO_GPU_CAPSET_VIRGL 1
 #define VIRTIO_GPU_CAPSET_VIRGL2 2
+#define VIRTIO_GPU_CAPSET_VENUS 4
 struct virtio_gpu_get_capset_info {
   struct virtio_gpu_ctrl_hdr hdr;
   __le32 capset_index;
diff --git a/libc/kernel/uapi/linux/virtio_i2c.h b/libc/kernel/uapi/linux/virtio_i2c.h
index 9540f26..f33e557 100644
--- a/libc/kernel/uapi/linux/virtio_i2c.h
+++ b/libc/kernel/uapi/linux/virtio_i2c.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_VIRTIO_I2C_H
 #define _UAPI_LINUX_VIRTIO_I2C_H
 #include <linux/const.h>
diff --git a/libc/kernel/uapi/linux/virtio_ids.h b/libc/kernel/uapi/linux/virtio_ids.h
index b31ed93..f8120dc 100644
--- a/libc/kernel/uapi/linux/virtio_ids.h
+++ b/libc/kernel/uapi/linux/virtio_ids.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _LINUX_VIRTIO_IDS_H
 #define _LINUX_VIRTIO_IDS_H
 #define VIRTIO_ID_NET 1
diff --git a/libc/kernel/uapi/linux/virtio_input.h b/libc/kernel/uapi/linux/virtio_input.h
index 188b0bb..ab5d3ee 100644
--- a/libc/kernel/uapi/linux/virtio_input.h
+++ b/libc/kernel/uapi/linux/virtio_input.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _LINUX_VIRTIO_INPUT_H
 #define _LINUX_VIRTIO_INPUT_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/virtio_iommu.h b/libc/kernel/uapi/linux/virtio_iommu.h
index ec8def8..2e2b333 100644
--- a/libc/kernel/uapi/linux/virtio_iommu.h
+++ b/libc/kernel/uapi/linux/virtio_iommu.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_VIRTIO_IOMMU_H
 #define _UAPI_LINUX_VIRTIO_IOMMU_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/virtio_mem.h b/libc/kernel/uapi/linux/virtio_mem.h
index 66ffce1..770623a 100644
--- a/libc/kernel/uapi/linux/virtio_mem.h
+++ b/libc/kernel/uapi/linux/virtio_mem.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _LINUX_VIRTIO_MEM_H
 #define _LINUX_VIRTIO_MEM_H
 #include <linux/types.h>
@@ -24,6 +12,7 @@
 #include <linux/virtio_config.h>
 #define VIRTIO_MEM_F_ACPI_PXM 0
 #define VIRTIO_MEM_F_UNPLUGGED_INACCESSIBLE 1
+#define VIRTIO_MEM_F_PERSISTENT_SUSPEND 2
 #define VIRTIO_MEM_REQ_PLUG 0
 #define VIRTIO_MEM_REQ_UNPLUG 1
 #define VIRTIO_MEM_REQ_UNPLUG_ALL 2
diff --git a/libc/kernel/uapi/linux/virtio_mmio.h b/libc/kernel/uapi/linux/virtio_mmio.h
index a420fdc..a3bc216 100644
--- a/libc/kernel/uapi/linux/virtio_mmio.h
+++ b/libc/kernel/uapi/linux/virtio_mmio.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _LINUX_VIRTIO_MMIO_H
 #define _LINUX_VIRTIO_MMIO_H
 #define VIRTIO_MMIO_MAGIC_VALUE 0x000
diff --git a/libc/kernel/uapi/linux/virtio_net.h b/libc/kernel/uapi/linux/virtio_net.h
index da7285e..26ff301 100644
--- a/libc/kernel/uapi/linux/virtio_net.h
+++ b/libc/kernel/uapi/linux/virtio_net.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_VIRTIO_NET_H
 #define _UAPI_LINUX_VIRTIO_NET_H
 #include <linux/types.h>
@@ -45,11 +33,14 @@
 #define VIRTIO_NET_F_GUEST_ANNOUNCE 21
 #define VIRTIO_NET_F_MQ 22
 #define VIRTIO_NET_F_CTRL_MAC_ADDR 23
+#define VIRTIO_NET_F_DEVICE_STATS 50
+#define VIRTIO_NET_F_VQ_NOTF_COAL 52
 #define VIRTIO_NET_F_NOTF_COAL 53
 #define VIRTIO_NET_F_GUEST_USO4 54
 #define VIRTIO_NET_F_GUEST_USO6 55
 #define VIRTIO_NET_F_HOST_USO 56
 #define VIRTIO_NET_F_HASH_REPORT 57
+#define VIRTIO_NET_F_GUEST_HDRLEN 59
 #define VIRTIO_NET_F_RSS 60
 #define VIRTIO_NET_F_RSC_EXT 61
 #define VIRTIO_NET_F_STANDBY 62
@@ -140,7 +131,7 @@
 };
 #endif
 struct virtio_net_ctrl_hdr {
-  __u8 class;
+  __u8 __linux_class;
   __u8 cmd;
 } __attribute__((packed));
 typedef __u8 virtio_net_ctrl_ack;
@@ -202,4 +193,114 @@
   __le32 rx_usecs;
 };
 #define VIRTIO_NET_CTRL_NOTF_COAL_RX_SET 1
+#define VIRTIO_NET_CTRL_NOTF_COAL_VQ_SET 2
+#define VIRTIO_NET_CTRL_NOTF_COAL_VQ_GET 3
+struct virtio_net_ctrl_coal {
+  __le32 max_packets;
+  __le32 max_usecs;
+};
+struct virtio_net_ctrl_coal_vq {
+  __le16 vqn;
+  __le16 reserved;
+  struct virtio_net_ctrl_coal coal;
+};
+#define VIRTIO_NET_CTRL_STATS 8
+#define VIRTIO_NET_CTRL_STATS_QUERY 0
+#define VIRTIO_NET_CTRL_STATS_GET 1
+struct virtio_net_stats_capabilities {
+#define VIRTIO_NET_STATS_TYPE_CVQ (1ULL << 32)
+#define VIRTIO_NET_STATS_TYPE_RX_BASIC (1ULL << 0)
+#define VIRTIO_NET_STATS_TYPE_RX_CSUM (1ULL << 1)
+#define VIRTIO_NET_STATS_TYPE_RX_GSO (1ULL << 2)
+#define VIRTIO_NET_STATS_TYPE_RX_SPEED (1ULL << 3)
+#define VIRTIO_NET_STATS_TYPE_TX_BASIC (1ULL << 16)
+#define VIRTIO_NET_STATS_TYPE_TX_CSUM (1ULL << 17)
+#define VIRTIO_NET_STATS_TYPE_TX_GSO (1ULL << 18)
+#define VIRTIO_NET_STATS_TYPE_TX_SPEED (1ULL << 19)
+  __le64 supported_stats_types[1];
+};
+struct virtio_net_ctrl_queue_stats {
+  struct {
+    __le16 vq_index;
+    __le16 reserved[3];
+    __le64 types_bitmap[1];
+  } stats[1];
+};
+struct virtio_net_stats_reply_hdr {
+#define VIRTIO_NET_STATS_TYPE_REPLY_CVQ 32
+#define VIRTIO_NET_STATS_TYPE_REPLY_RX_BASIC 0
+#define VIRTIO_NET_STATS_TYPE_REPLY_RX_CSUM 1
+#define VIRTIO_NET_STATS_TYPE_REPLY_RX_GSO 2
+#define VIRTIO_NET_STATS_TYPE_REPLY_RX_SPEED 3
+#define VIRTIO_NET_STATS_TYPE_REPLY_TX_BASIC 16
+#define VIRTIO_NET_STATS_TYPE_REPLY_TX_CSUM 17
+#define VIRTIO_NET_STATS_TYPE_REPLY_TX_GSO 18
+#define VIRTIO_NET_STATS_TYPE_REPLY_TX_SPEED 19
+  __u8 type;
+  __u8 reserved;
+  __le16 vq_index;
+  __le16 reserved1;
+  __le16 size;
+};
+struct virtio_net_stats_cvq {
+  struct virtio_net_stats_reply_hdr hdr;
+  __le64 command_num;
+  __le64 ok_num;
+};
+struct virtio_net_stats_rx_basic {
+  struct virtio_net_stats_reply_hdr hdr;
+  __le64 rx_notifications;
+  __le64 rx_packets;
+  __le64 rx_bytes;
+  __le64 rx_interrupts;
+  __le64 rx_drops;
+  __le64 rx_drop_overruns;
+};
+struct virtio_net_stats_tx_basic {
+  struct virtio_net_stats_reply_hdr hdr;
+  __le64 tx_notifications;
+  __le64 tx_packets;
+  __le64 tx_bytes;
+  __le64 tx_interrupts;
+  __le64 tx_drops;
+  __le64 tx_drop_malformed;
+};
+struct virtio_net_stats_rx_csum {
+  struct virtio_net_stats_reply_hdr hdr;
+  __le64 rx_csum_valid;
+  __le64 rx_needs_csum;
+  __le64 rx_csum_none;
+  __le64 rx_csum_bad;
+};
+struct virtio_net_stats_tx_csum {
+  struct virtio_net_stats_reply_hdr hdr;
+  __le64 tx_csum_none;
+  __le64 tx_needs_csum;
+};
+struct virtio_net_stats_rx_gso {
+  struct virtio_net_stats_reply_hdr hdr;
+  __le64 rx_gso_packets;
+  __le64 rx_gso_bytes;
+  __le64 rx_gso_packets_coalesced;
+  __le64 rx_gso_bytes_coalesced;
+};
+struct virtio_net_stats_tx_gso {
+  struct virtio_net_stats_reply_hdr hdr;
+  __le64 tx_gso_packets;
+  __le64 tx_gso_bytes;
+  __le64 tx_gso_segments;
+  __le64 tx_gso_segments_bytes;
+  __le64 tx_gso_packets_noseg;
+  __le64 tx_gso_bytes_noseg;
+};
+struct virtio_net_stats_rx_speed {
+  struct virtio_net_stats_reply_hdr hdr;
+  __le64 rx_ratelimit_packets;
+  __le64 rx_ratelimit_bytes;
+};
+struct virtio_net_stats_tx_speed {
+  struct virtio_net_stats_reply_hdr hdr;
+  __le64 tx_ratelimit_packets;
+  __le64 tx_ratelimit_bytes;
+};
 #endif
diff --git a/libc/kernel/uapi/linux/virtio_pci.h b/libc/kernel/uapi/linux/virtio_pci.h
index 94ca0a2..8921155 100644
--- a/libc/kernel/uapi/linux/virtio_pci.h
+++ b/libc/kernel/uapi/linux/virtio_pci.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _LINUX_VIRTIO_PCI_H
 #define _LINUX_VIRTIO_PCI_H
 #include <linux/types.h>
@@ -86,6 +74,13 @@
   __le32 queue_used_lo;
   __le32 queue_used_hi;
 };
+struct virtio_pci_modern_common_cfg {
+  struct virtio_pci_common_cfg cfg;
+  __le16 queue_notify_data;
+  __le16 queue_reset;
+  __le16 admin_queue_index;
+  __le16 admin_queue_num;
+};
 struct virtio_pci_cfg_cap {
   struct virtio_pci_cap cap;
   __u8 pci_cfg_data[4];
@@ -119,5 +114,48 @@
 #define VIRTIO_PCI_COMMON_Q_USEDHI 52
 #define VIRTIO_PCI_COMMON_Q_NDATA 56
 #define VIRTIO_PCI_COMMON_Q_RESET 58
+#define VIRTIO_PCI_COMMON_ADM_Q_IDX 60
+#define VIRTIO_PCI_COMMON_ADM_Q_NUM 62
 #endif
+#define VIRTIO_ADMIN_STATUS_OK 0
+#define VIRTIO_ADMIN_CMD_LIST_QUERY 0x0
+#define VIRTIO_ADMIN_CMD_LIST_USE 0x1
+#define VIRTIO_ADMIN_GROUP_TYPE_SRIOV 0x1
+#define VIRTIO_ADMIN_CMD_LEGACY_COMMON_CFG_WRITE 0x2
+#define VIRTIO_ADMIN_CMD_LEGACY_COMMON_CFG_READ 0x3
+#define VIRTIO_ADMIN_CMD_LEGACY_DEV_CFG_WRITE 0x4
+#define VIRTIO_ADMIN_CMD_LEGACY_DEV_CFG_READ 0x5
+#define VIRTIO_ADMIN_CMD_LEGACY_NOTIFY_INFO 0x6
+struct virtio_admin_cmd_hdr {
+  __le16 opcode;
+  __le16 group_type;
+  __u8 reserved1[12];
+  __le64 group_member_id;
+};
+struct virtio_admin_cmd_status {
+  __le16 status;
+  __le16 status_qualifier;
+  __u8 reserved2[4];
+};
+struct virtio_admin_cmd_legacy_wr_data {
+  __u8 offset;
+  __u8 reserved[7];
+  __u8 registers[];
+};
+struct virtio_admin_cmd_legacy_rd_data {
+  __u8 offset;
+};
+#define VIRTIO_ADMIN_CMD_NOTIFY_INFO_FLAGS_END 0
+#define VIRTIO_ADMIN_CMD_NOTIFY_INFO_FLAGS_OWNER_DEV 0x1
+#define VIRTIO_ADMIN_CMD_NOTIFY_INFO_FLAGS_OWNER_MEM 0x2
+#define VIRTIO_ADMIN_CMD_MAX_NOTIFY_INFO 4
+struct virtio_admin_cmd_notify_info_data {
+  __u8 flags;
+  __u8 bar;
+  __u8 padding[6];
+  __le64 offset;
+};
+struct virtio_admin_cmd_notify_info_result {
+  struct virtio_admin_cmd_notify_info_data entries[VIRTIO_ADMIN_CMD_MAX_NOTIFY_INFO];
+};
 #endif
diff --git a/libc/kernel/uapi/linux/virtio_pcidev.h b/libc/kernel/uapi/linux/virtio_pcidev.h
index 01c5869..4a67a5d 100644
--- a/libc/kernel/uapi/linux/virtio_pcidev.h
+++ b/libc/kernel/uapi/linux/virtio_pcidev.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_VIRTIO_PCIDEV_H
 #define _UAPI_LINUX_VIRTIO_PCIDEV_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/virtio_pmem.h b/libc/kernel/uapi/linux/virtio_pmem.h
index 838f9d6..da0f764 100644
--- a/libc/kernel/uapi/linux/virtio_pmem.h
+++ b/libc/kernel/uapi/linux/virtio_pmem.h
@@ -1,26 +1,16 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_VIRTIO_PMEM_H
 #define _UAPI_LINUX_VIRTIO_PMEM_H
 #include <linux/types.h>
 #include <linux/virtio_ids.h>
 #include <linux/virtio_config.h>
+#define VIRTIO_PMEM_F_SHMEM_REGION 0
+#define VIRTIO_PMEM_SHMEM_REGION_ID 0
 struct virtio_pmem_config {
   __le64 start;
   __le64 size;
diff --git a/libc/kernel/uapi/linux/virtio_ring.h b/libc/kernel/uapi/linux/virtio_ring.h
index 24cf671..ce26caf 100644
--- a/libc/kernel/uapi/linux/virtio_ring.h
+++ b/libc/kernel/uapi/linux/virtio_ring.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_VIRTIO_RING_H
 #define _UAPI_LINUX_VIRTIO_RING_H
 #include <stdint.h>
diff --git a/libc/kernel/uapi/linux/virtio_rng.h b/libc/kernel/uapi/linux/virtio_rng.h
index b6471fd..76a3735 100644
--- a/libc/kernel/uapi/linux/virtio_rng.h
+++ b/libc/kernel/uapi/linux/virtio_rng.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _LINUX_VIRTIO_RNG_H
 #define _LINUX_VIRTIO_RNG_H
 #include <linux/virtio_ids.h>
diff --git a/libc/kernel/uapi/linux/virtio_scmi.h b/libc/kernel/uapi/linux/virtio_scmi.h
index 7907ed4..1b77fcb 100644
--- a/libc/kernel/uapi/linux/virtio_scmi.h
+++ b/libc/kernel/uapi/linux/virtio_scmi.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_VIRTIO_SCMI_H
 #define _UAPI_LINUX_VIRTIO_SCMI_H
 #include <linux/virtio_types.h>
diff --git a/libc/kernel/uapi/linux/virtio_scsi.h b/libc/kernel/uapi/linux/virtio_scsi.h
index 74e6ac8..83f0030 100644
--- a/libc/kernel/uapi/linux/virtio_scsi.h
+++ b/libc/kernel/uapi/linux/virtio_scsi.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _LINUX_VIRTIO_SCSI_H
 #define _LINUX_VIRTIO_SCSI_H
 #include <linux/virtio_types.h>
diff --git a/libc/kernel/uapi/linux/virtio_snd.h b/libc/kernel/uapi/linux/virtio_snd.h
index 60dfa62..7318e29 100644
--- a/libc/kernel/uapi/linux/virtio_snd.h
+++ b/libc/kernel/uapi/linux/virtio_snd.h
@@ -1,28 +1,20 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef VIRTIO_SND_IF_H
 #define VIRTIO_SND_IF_H
 #include <linux/virtio_types.h>
+enum {
+  VIRTIO_SND_F_CTLS = 0
+};
 struct virtio_snd_config {
   __le32 jacks;
   __le32 streams;
   __le32 chmaps;
+  __le32 controls;
 };
 enum {
   VIRTIO_SND_VQ_CONTROL = 0,
@@ -45,10 +37,18 @@
   VIRTIO_SND_R_PCM_START,
   VIRTIO_SND_R_PCM_STOP,
   VIRTIO_SND_R_CHMAP_INFO = 0x0200,
+  VIRTIO_SND_R_CTL_INFO = 0x0300,
+  VIRTIO_SND_R_CTL_ENUM_ITEMS,
+  VIRTIO_SND_R_CTL_READ,
+  VIRTIO_SND_R_CTL_WRITE,
+  VIRTIO_SND_R_CTL_TLV_READ,
+  VIRTIO_SND_R_CTL_TLV_WRITE,
+  VIRTIO_SND_R_CTL_TLV_COMMAND,
   VIRTIO_SND_EVT_JACK_CONNECTED = 0x1000,
   VIRTIO_SND_EVT_JACK_DISCONNECTED,
   VIRTIO_SND_EVT_PCM_PERIOD_ELAPSED = 0x1100,
   VIRTIO_SND_EVT_PCM_XRUN,
+  VIRTIO_SND_EVT_CTL_NOTIFY = 0x1200,
   VIRTIO_SND_S_OK = 0x8000,
   VIRTIO_SND_S_BAD_MSG,
   VIRTIO_SND_S_NOT_SUPP,
@@ -221,4 +221,83 @@
   __u8 channels;
   __u8 positions[VIRTIO_SND_CHMAP_MAX_SIZE];
 };
+struct virtio_snd_ctl_hdr {
+  struct virtio_snd_hdr hdr;
+  __le32 control_id;
+};
+enum {
+  VIRTIO_SND_CTL_ROLE_UNDEFINED = 0,
+  VIRTIO_SND_CTL_ROLE_VOLUME,
+  VIRTIO_SND_CTL_ROLE_MUTE,
+  VIRTIO_SND_CTL_ROLE_GAIN
+};
+enum {
+  VIRTIO_SND_CTL_TYPE_BOOLEAN = 0,
+  VIRTIO_SND_CTL_TYPE_INTEGER,
+  VIRTIO_SND_CTL_TYPE_INTEGER64,
+  VIRTIO_SND_CTL_TYPE_ENUMERATED,
+  VIRTIO_SND_CTL_TYPE_BYTES,
+  VIRTIO_SND_CTL_TYPE_IEC958
+};
+enum {
+  VIRTIO_SND_CTL_ACCESS_READ = 0,
+  VIRTIO_SND_CTL_ACCESS_WRITE,
+  VIRTIO_SND_CTL_ACCESS_VOLATILE,
+  VIRTIO_SND_CTL_ACCESS_INACTIVE,
+  VIRTIO_SND_CTL_ACCESS_TLV_READ,
+  VIRTIO_SND_CTL_ACCESS_TLV_WRITE,
+  VIRTIO_SND_CTL_ACCESS_TLV_COMMAND
+};
+struct virtio_snd_ctl_info {
+  struct virtio_snd_info hdr;
+  __le32 role;
+  __le32 type;
+  __le32 access;
+  __le32 count;
+  __le32 index;
+  __u8 name[44];
+  union {
+    struct {
+      __le32 min;
+      __le32 max;
+      __le32 step;
+    } integer;
+    struct {
+      __le64 min;
+      __le64 max;
+      __le64 step;
+    } integer64;
+    struct {
+      __le32 items;
+    } enumerated;
+  } value;
+};
+struct virtio_snd_ctl_enum_item {
+  __u8 item[64];
+};
+struct virtio_snd_ctl_iec958 {
+  __u8 status[24];
+  __u8 subcode[147];
+  __u8 pad;
+  __u8 dig_subframe[4];
+};
+struct virtio_snd_ctl_value {
+  union {
+    __le32 integer[128];
+    __le64 integer64[64];
+    __le32 enumerated[128];
+    __u8 bytes[512];
+    struct virtio_snd_ctl_iec958 iec958;
+  } value;
+};
+enum {
+  VIRTIO_SND_CTL_EVT_MASK_VALUE = 0,
+  VIRTIO_SND_CTL_EVT_MASK_INFO,
+  VIRTIO_SND_CTL_EVT_MASK_TLV
+};
+struct virtio_snd_ctl_event {
+  struct virtio_snd_hdr hdr;
+  __le16 control_id;
+  __le16 mask;
+};
 #endif
diff --git a/libc/kernel/uapi/linux/virtio_types.h b/libc/kernel/uapi/linux/virtio_types.h
index b04e6e6..1f023a0 100644
--- a/libc/kernel/uapi/linux/virtio_types.h
+++ b/libc/kernel/uapi/linux/virtio_types.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_VIRTIO_TYPES_H
 #define _UAPI_LINUX_VIRTIO_TYPES_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/virtio_vsock.h b/libc/kernel/uapi/linux/virtio_vsock.h
index 73b5d49..3eac719 100644
--- a/libc/kernel/uapi/linux/virtio_vsock.h
+++ b/libc/kernel/uapi/linux/virtio_vsock.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_VIRTIO_VSOCK_H
 #define _UAPI_LINUX_VIRTIO_VSOCK_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/vm_sockets.h b/libc/kernel/uapi/linux/vm_sockets.h
index 58f720d..bd84f44 100644
--- a/libc/kernel/uapi/linux/vm_sockets.h
+++ b/libc/kernel/uapi/linux/vm_sockets.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_VM_SOCKETS_H
 #define _UAPI_VM_SOCKETS_H
 #include <linux/socket.h>
@@ -52,4 +40,6 @@
   unsigned char svm_zero[sizeof(struct sockaddr) - sizeof(sa_family_t) - sizeof(unsigned short) - sizeof(unsigned int) - sizeof(unsigned int) - sizeof(__u8)];
 };
 #define IOCTL_VM_SOCKETS_GET_LOCAL_CID _IO(7, 0xb9)
+#define SOL_VSOCK 287
+#define VSOCK_RECVERR 1
 #endif
diff --git a/libc/kernel/uapi/linux/vm_sockets_diag.h b/libc/kernel/uapi/linux/vm_sockets_diag.h
index 2f9840b..28a1d17 100644
--- a/libc/kernel/uapi/linux/vm_sockets_diag.h
+++ b/libc/kernel/uapi/linux/vm_sockets_diag.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI__VM_SOCKETS_DIAG_H__
 #define _UAPI__VM_SOCKETS_DIAG_H__
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/vmcore.h b/libc/kernel/uapi/linux/vmcore.h
index 3fa7fee..aef56ac 100644
--- a/libc/kernel/uapi/linux/vmcore.h
+++ b/libc/kernel/uapi/linux/vmcore.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_VMCORE_H
 #define _UAPI_VMCORE_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/vsockmon.h b/libc/kernel/uapi/linux/vsockmon.h
index 6435b5a..8e2e902 100644
--- a/libc/kernel/uapi/linux/vsockmon.h
+++ b/libc/kernel/uapi/linux/vsockmon.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_VSOCKMON_H
 #define _UAPI_VSOCKMON_H
 #include <linux/virtio_vsock.h>
diff --git a/libc/kernel/uapi/linux/vt.h b/libc/kernel/uapi/linux/vt.h
index 1a708cc..a89e78c 100644
--- a/libc/kernel/uapi/linux/vt.h
+++ b/libc/kernel/uapi/linux/vt.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_VT_H
 #define _UAPI_LINUX_VT_H
 #define MIN_NR_CONSOLES 1
diff --git a/libc/kernel/uapi/linux/vtpm_proxy.h b/libc/kernel/uapi/linux/vtpm_proxy.h
index 0ab0536..6121c86 100644
--- a/libc/kernel/uapi/linux/vtpm_proxy.h
+++ b/libc/kernel/uapi/linux/vtpm_proxy.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_VTPM_PROXY_H
 #define _UAPI_LINUX_VTPM_PROXY_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/wait.h b/libc/kernel/uapi/linux/wait.h
index 385e882..800135e 100644
--- a/libc/kernel/uapi/linux/wait.h
+++ b/libc/kernel/uapi/linux/wait.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_WAIT_H
 #define _UAPI_LINUX_WAIT_H
 #define WNOHANG 0x00000001
diff --git a/libc/kernel/uapi/linux/watch_queue.h b/libc/kernel/uapi/linux/watch_queue.h
index 4c4fd01..ef5e8ef 100644
--- a/libc/kernel/uapi/linux/watch_queue.h
+++ b/libc/kernel/uapi/linux/watch_queue.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_WATCH_QUEUE_H
 #define _UAPI_LINUX_WATCH_QUEUE_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/watchdog.h b/libc/kernel/uapi/linux/watchdog.h
index cac0816..63c5f5f 100644
--- a/libc/kernel/uapi/linux/watchdog.h
+++ b/libc/kernel/uapi/linux/watchdog.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_WATCHDOG_H
 #define _UAPI_LINUX_WATCHDOG_H
 #include <linux/ioctl.h>
diff --git a/libc/kernel/uapi/linux/wireguard.h b/libc/kernel/uapi/linux/wireguard.h
index 6a4128b..2d3cbfd 100644
--- a/libc/kernel/uapi/linux/wireguard.h
+++ b/libc/kernel/uapi/linux/wireguard.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _WG_UAPI_WIREGUARD_H
 #define _WG_UAPI_WIREGUARD_H
 #define WG_GENL_NAME "wireguard"
diff --git a/libc/kernel/uapi/linux/wireless.h b/libc/kernel/uapi/linux/wireless.h
index eb57fff..a727167 100644
--- a/libc/kernel/uapi/linux/wireless.h
+++ b/libc/kernel/uapi/linux/wireless.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_WIRELESS_H
 #define _UAPI_LINUX_WIRELESS_H
 #include <linux/types.h>
@@ -314,7 +302,7 @@
   struct sockaddr addr;
   __u16 alg;
   __u16 key_len;
-  __u8 key[0];
+  __u8 key[];
 };
 struct iw_mlme {
   __u16 cmd;
diff --git a/libc/kernel/uapi/linux/wmi.h b/libc/kernel/uapi/linux/wmi.h
index 7b72056..052800c 100644
--- a/libc/kernel/uapi/linux/wmi.h
+++ b/libc/kernel/uapi/linux/wmi.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_WMI_H
 #define _UAPI_LINUX_WMI_H
 #include <linux/ioctl.h>
diff --git a/libc/kernel/uapi/linux/wwan.h b/libc/kernel/uapi/linux/wwan.h
index 9f68713..d849c14 100644
--- a/libc/kernel/uapi/linux/wwan.h
+++ b/libc/kernel/uapi/linux/wwan.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_WWAN_H_
 #define _UAPI_WWAN_H_
 enum {
diff --git a/libc/kernel/uapi/linux/x25.h b/libc/kernel/uapi/linux/x25.h
index 6655bf9..5a2e40f 100644
--- a/libc/kernel/uapi/linux/x25.h
+++ b/libc/kernel/uapi/linux/x25.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef X25_KERNEL_H
 #define X25_KERNEL_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/xattr.h b/libc/kernel/uapi/linux/xattr.h
index fd02159..e126151 100644
--- a/libc/kernel/uapi/linux/xattr.h
+++ b/libc/kernel/uapi/linux/xattr.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #include <linux/libc-compat.h>
 #ifndef _UAPI_LINUX_XATTR_H
 #define _UAPI_LINUX_XATTR_H
diff --git a/libc/kernel/uapi/linux/xdp_diag.h b/libc/kernel/uapi/linux/xdp_diag.h
index 1fe9d49..73a7d18 100644
--- a/libc/kernel/uapi/linux/xdp_diag.h
+++ b/libc/kernel/uapi/linux/xdp_diag.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _LINUX_XDP_DIAG_H
 #define _LINUX_XDP_DIAG_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/xfrm.h b/libc/kernel/uapi/linux/xfrm.h
index b8a2efc..9509efe 100644
--- a/libc/kernel/uapi/linux/xfrm.h
+++ b/libc/kernel/uapi/linux/xfrm.h
@@ -1,25 +1,14 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _LINUX_XFRM_H
 #define _LINUX_XFRM_H
 #include <linux/in6.h>
 #include <linux/types.h>
+#include <linux/stddef.h>
 typedef union {
   __be32 a4;
   __be32 a6[4];
@@ -35,7 +24,7 @@
   __u8 ctx_alg;
   __u16 ctx_len;
   __u32 ctx_sid;
-  char ctx_str[];
+  char ctx_str[] __counted_by(ctx_len);
 };
 #define XFRM_SC_DOI_RESERVED 0
 #define XFRM_SC_DOI_LSM 1
@@ -122,6 +111,10 @@
   XFRM_POLICY_MASK = 3,
   XFRM_POLICY_MAX = 3
 };
+enum xfrm_sa_dir {
+  XFRM_SA_DIR_IN = 1,
+  XFRM_SA_DIR_OUT = 2
+};
 enum {
   XFRM_SHARE_ANY,
   XFRM_SHARE_SESSION,
@@ -266,6 +259,8 @@
   XFRMA_SET_MARK_MASK,
   XFRMA_IF_ID,
   XFRMA_MTIMER_THRESH,
+  XFRMA_SA_DIR,
+  XFRMA_NAT_KEEPALIVE_INTERVAL,
   __XFRMA_MAX
 #define XFRMA_OUTPUT_MARK XFRMA_SET_MARK
 #define XFRMA_MAX (__XFRMA_MAX - 1)
diff --git a/libc/kernel/uapi/linux/xilinx-v4l2-controls.h b/libc/kernel/uapi/linux/xilinx-v4l2-controls.h
index 75c3628..b5c1e3d 100644
--- a/libc/kernel/uapi/linux/xilinx-v4l2-controls.h
+++ b/libc/kernel/uapi/linux/xilinx-v4l2-controls.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __UAPI_XILINX_V4L2_CONTROLS_H__
 #define __UAPI_XILINX_V4L2_CONTROLS_H__
 #include <linux/v4l2-controls.h>
diff --git a/libc/kernel/uapi/linux/zorro.h b/libc/kernel/uapi/linux/zorro.h
index 86320aa..e27e1ef 100644
--- a/libc/kernel/uapi/linux/zorro.h
+++ b/libc/kernel/uapi/linux/zorro.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_ZORRO_H
 #define _UAPI_LINUX_ZORRO_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/linux/zorro_ids.h b/libc/kernel/uapi/linux/zorro_ids.h
index 99687a3..05239cd 100644
--- a/libc/kernel/uapi/linux/zorro_ids.h
+++ b/libc/kernel/uapi/linux/zorro_ids.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #define ZORRO_MANUF_PACIFIC_PERIPHERALS 0x00D3
 #define ZORRO_PROD_PACIFIC_PERIPHERALS_SE_2000_A500 ZORRO_ID(PACIFIC_PERIPHERALS, 0x00, 0)
 #define ZORRO_PROD_PACIFIC_PERIPHERALS_SCSI ZORRO_ID(PACIFIC_PERIPHERALS, 0x0A, 0)
@@ -366,6 +354,8 @@
 #define ZORRO_MANUF_VMC 0x1389
 #define ZORRO_PROD_VMC_ISDN_BLASTER_Z2 ZORRO_ID(VMC, 0x01, 0)
 #define ZORRO_PROD_VMC_HYPERCOM_4 ZORRO_ID(VMC, 0x02, 0)
+#define ZORRO_MANUF_CSLAB 0x1400
+#define ZORRO_PROD_CSLAB_WARP_1260 ZORRO_ID(CSLAB, 0x65, 0)
 #define ZORRO_MANUF_INFORMATION 0x157C
 #define ZORRO_PROD_INFORMATION_ISDN_ENGINE_I ZORRO_ID(INFORMATION, 0x64, 0)
 #define ZORRO_MANUF_VORTEX 0x2017
diff --git a/libc/kernel/uapi/misc/cxl.h b/libc/kernel/uapi/misc/cxl.h
index 64b5992..d05ef53 100644
--- a/libc/kernel/uapi/misc/cxl.h
+++ b/libc/kernel/uapi/misc/cxl.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_MISC_CXL_H
 #define _UAPI_MISC_CXL_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/misc/fastrpc.h b/libc/kernel/uapi/misc/fastrpc.h
index 336ecf2..09d21eb 100644
--- a/libc/kernel/uapi/misc/fastrpc.h
+++ b/libc/kernel/uapi/misc/fastrpc.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __QCOM_FASTRPC_H__
 #define __QCOM_FASTRPC_H__
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/misc/mrvl_cn10k_dpi.h b/libc/kernel/uapi/misc/mrvl_cn10k_dpi.h
new file mode 100644
index 0000000..7d8671f
--- /dev/null
+++ b/libc/kernel/uapi/misc/mrvl_cn10k_dpi.h
@@ -0,0 +1,26 @@
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
+#ifndef __MRVL_CN10K_DPI_H__
+#define __MRVL_CN10K_DPI_H__
+#include <linux/types.h>
+#define DPI_MAX_ENGINES 6
+struct dpi_mps_mrrs_cfg {
+  __u16 max_read_req_sz;
+  __u16 max_payload_sz;
+  __u16 port;
+  __u16 reserved;
+};
+struct dpi_engine_cfg {
+  __u64 fifo_mask;
+  __u16 molr[DPI_MAX_ENGINES];
+  __u16 update_molr;
+  __u16 reserved;
+};
+#define DPI_MAGIC_NUM 0xB8
+#define DPI_MPS_MRRS_CFG _IOW(DPI_MAGIC_NUM, 1, struct dpi_mps_mrrs_cfg)
+#define DPI_ENGINE_CFG _IOW(DPI_MAGIC_NUM, 2, struct dpi_engine_cfg)
+#endif
diff --git a/libc/kernel/uapi/misc/ocxl.h b/libc/kernel/uapi/misc/ocxl.h
index 676aaf8..a7d3d7f 100644
--- a/libc/kernel/uapi/misc/ocxl.h
+++ b/libc/kernel/uapi/misc/ocxl.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_MISC_OCXL_H
 #define _UAPI_MISC_OCXL_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/misc/pvpanic.h b/libc/kernel/uapi/misc/pvpanic.h
index 18edcd8..8e1be62 100644
--- a/libc/kernel/uapi/misc/pvpanic.h
+++ b/libc/kernel/uapi/misc/pvpanic.h
@@ -1,23 +1,13 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __PVPANIC_H__
 #define __PVPANIC_H__
-#define PVPANIC_PANICKED (1 << 0)
-#define PVPANIC_CRASH_LOADED (1 << 1)
+#include <linux/const.h>
+#define PVPANIC_PANICKED _BITUL(0)
+#define PVPANIC_CRASH_LOADED _BITUL(1)
+#define PVPANIC_SHUTDOWN _BITUL(2)
 #endif
diff --git a/libc/kernel/uapi/misc/uacce/hisi_qm.h b/libc/kernel/uapi/misc/uacce/hisi_qm.h
index d2509d0..b5611d1 100644
--- a/libc/kernel/uapi/misc/uacce/hisi_qm.h
+++ b/libc/kernel/uapi/misc/uacce/hisi_qm.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_HISI_QM_H
 #define _UAPI_HISI_QM_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/misc/uacce/uacce.h b/libc/kernel/uapi/misc/uacce/uacce.h
index 469d188..f6ecfaa 100644
--- a/libc/kernel/uapi/misc/uacce/uacce.h
+++ b/libc/kernel/uapi/misc/uacce/uacce.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPIUUACCE_H
 #define _UAPIUUACCE_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/misc/xilinx_sdfec.h b/libc/kernel/uapi/misc/xilinx_sdfec.h
index 8dde40d..1a42307 100644
--- a/libc/kernel/uapi/misc/xilinx_sdfec.h
+++ b/libc/kernel/uapi/misc/xilinx_sdfec.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __XILINX_SDFEC_H__
 #define __XILINX_SDFEC_H__
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/mtd/inftl-user.h b/libc/kernel/uapi/mtd/inftl-user.h
index 6d5059e..accbccb 100644
--- a/libc/kernel/uapi/mtd/inftl-user.h
+++ b/libc/kernel/uapi/mtd/inftl-user.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __MTD_INFTL_USER_H__
 #define __MTD_INFTL_USER_H__
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/mtd/mtd-abi.h b/libc/kernel/uapi/mtd/mtd-abi.h
index aed2acc..009a8e9 100644
--- a/libc/kernel/uapi/mtd/mtd-abi.h
+++ b/libc/kernel/uapi/mtd/mtd-abi.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __MTD_ABI_H__
 #define __MTD_ABI_H__
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/mtd/mtd-user.h b/libc/kernel/uapi/mtd/mtd-user.h
index a7ad6ad..73ac8e1 100644
--- a/libc/kernel/uapi/mtd/mtd-user.h
+++ b/libc/kernel/uapi/mtd/mtd-user.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __MTD_USER_H__
 #define __MTD_USER_H__
 #include <mtd/mtd-abi.h>
diff --git a/libc/kernel/uapi/mtd/nftl-user.h b/libc/kernel/uapi/mtd/nftl-user.h
index 99ac366..a446798 100644
--- a/libc/kernel/uapi/mtd/nftl-user.h
+++ b/libc/kernel/uapi/mtd/nftl-user.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __MTD_NFTL_USER_H__
 #define __MTD_NFTL_USER_H__
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/mtd/ubi-user.h b/libc/kernel/uapi/mtd/ubi-user.h
index db203d5..bb9a6cb 100644
--- a/libc/kernel/uapi/mtd/ubi-user.h
+++ b/libc/kernel/uapi/mtd/ubi-user.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __UBI_USER_H__
 #define __UBI_USER_H__
 #include <linux/types.h>
@@ -57,7 +45,8 @@
   __s32 vid_hdr_offset;
   __s16 max_beb_per1024;
   __s8 disable_fm;
-  __s8 padding[9];
+  __s8 need_resv_pool;
+  __s8 padding[8];
 };
 enum {
   UBI_VOL_SKIP_CRC_CHECK_FLG = 0x1,
diff --git a/libc/kernel/uapi/rdma/bnxt_re-abi.h b/libc/kernel/uapi/rdma/bnxt_re-abi.h
index 62ba685..50f8b8a 100644
--- a/libc/kernel/uapi/rdma/bnxt_re-abi.h
+++ b/libc/kernel/uapi/rdma/bnxt_re-abi.h
@@ -1,24 +1,13 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __BNXT_RE_UVERBS_ABI_H__
 #define __BNXT_RE_UVERBS_ABI_H__
 #include <linux/types.h>
+#include <rdma/ib_user_ioctl_cmds.h>
 #define BNXT_RE_ABI_VERSION 1
 #define BNXT_RE_CHIP_ID0_CHIP_NUM_SFT 0x00
 #define BNXT_RE_CHIP_ID0_CHIP_REV_SFT 0x10
@@ -26,12 +15,22 @@
 enum {
   BNXT_RE_UCNTX_CMASK_HAVE_CCTX = 0x1ULL,
   BNXT_RE_UCNTX_CMASK_HAVE_MODE = 0x02ULL,
+  BNXT_RE_UCNTX_CMASK_WC_DPI_ENABLED = 0x04ULL,
+  BNXT_RE_UCNTX_CMASK_DBR_PACING_ENABLED = 0x08ULL,
+  BNXT_RE_UCNTX_CMASK_POW2_DISABLED = 0x10ULL,
+  BNXT_RE_UCNTX_CMASK_MSN_TABLE_ENABLED = 0x40,
 };
 enum bnxt_re_wqe_mode {
   BNXT_QPLIB_WQE_MODE_STATIC = 0x00,
   BNXT_QPLIB_WQE_MODE_VARIABLE = 0x01,
   BNXT_QPLIB_WQE_MODE_INVALID = 0x02,
 };
+enum {
+  BNXT_RE_COMP_MASK_REQ_UCNTX_POW2_SUPPORT = 0x01,
+};
+struct bnxt_re_uctx_req {
+  __aligned_u64 comp_mask;
+};
 struct bnxt_re_uctx_resp {
   __u32 dev_id;
   __u32 max_qp;
@@ -54,11 +53,18 @@
   __aligned_u64 cq_va;
   __aligned_u64 cq_handle;
 };
+enum bnxt_re_cq_mask {
+  BNXT_RE_CQ_TOGGLE_PAGE_SUPPORT = 0x1,
+};
 struct bnxt_re_cq_resp {
   __u32 cqid;
   __u32 tail;
   __u32 phase;
   __u32 rsvd;
+  __aligned_u64 comp_mask;
+};
+struct bnxt_re_resize_cq_req {
+  __aligned_u64 cq_va;
 };
 struct bnxt_re_qp_req {
   __aligned_u64 qpsva;
@@ -82,4 +88,50 @@
   BNXT_RE_AVID_SIZE = 0x04,
   BNXT_RE_END_RESV_OFFT = 0xFF0
 };
+enum bnxt_re_objects {
+  BNXT_RE_OBJECT_ALLOC_PAGE = (1U << UVERBS_ID_NS_SHIFT),
+  BNXT_RE_OBJECT_NOTIFY_DRV,
+  BNXT_RE_OBJECT_GET_TOGGLE_MEM,
+};
+enum bnxt_re_alloc_page_type {
+  BNXT_RE_ALLOC_WC_PAGE = 0,
+  BNXT_RE_ALLOC_DBR_BAR_PAGE,
+  BNXT_RE_ALLOC_DBR_PAGE,
+};
+enum bnxt_re_var_alloc_page_attrs {
+  BNXT_RE_ALLOC_PAGE_HANDLE = (1U << UVERBS_ID_NS_SHIFT),
+  BNXT_RE_ALLOC_PAGE_TYPE,
+  BNXT_RE_ALLOC_PAGE_DPI,
+  BNXT_RE_ALLOC_PAGE_MMAP_OFFSET,
+  BNXT_RE_ALLOC_PAGE_MMAP_LENGTH,
+};
+enum bnxt_re_alloc_page_attrs {
+  BNXT_RE_DESTROY_PAGE_HANDLE = (1U << UVERBS_ID_NS_SHIFT),
+};
+enum bnxt_re_alloc_page_methods {
+  BNXT_RE_METHOD_ALLOC_PAGE = (1U << UVERBS_ID_NS_SHIFT),
+  BNXT_RE_METHOD_DESTROY_PAGE,
+};
+enum bnxt_re_notify_drv_methods {
+  BNXT_RE_METHOD_NOTIFY_DRV = (1U << UVERBS_ID_NS_SHIFT),
+};
+enum bnxt_re_get_toggle_mem_type {
+  BNXT_RE_CQ_TOGGLE_MEM = 0,
+  BNXT_RE_SRQ_TOGGLE_MEM,
+};
+enum bnxt_re_var_toggle_mem_attrs {
+  BNXT_RE_TOGGLE_MEM_HANDLE = (1U << UVERBS_ID_NS_SHIFT),
+  BNXT_RE_TOGGLE_MEM_TYPE,
+  BNXT_RE_TOGGLE_MEM_RES_ID,
+  BNXT_RE_TOGGLE_MEM_MMAP_PAGE,
+  BNXT_RE_TOGGLE_MEM_MMAP_OFFSET,
+  BNXT_RE_TOGGLE_MEM_MMAP_LENGTH,
+};
+enum bnxt_re_toggle_mem_attrs {
+  BNXT_RE_RELEASE_TOGGLE_MEM_HANDLE = (1U << UVERBS_ID_NS_SHIFT),
+};
+enum bnxt_re_toggle_mem_methods {
+  BNXT_RE_METHOD_GET_TOGGLE_MEM = (1U << UVERBS_ID_NS_SHIFT),
+  BNXT_RE_METHOD_RELEASE_TOGGLE_MEM,
+};
 #endif
diff --git a/libc/kernel/uapi/rdma/cxgb4-abi.h b/libc/kernel/uapi/rdma/cxgb4-abi.h
index 5433ce6..5e84fba 100644
--- a/libc/kernel/uapi/rdma/cxgb4-abi.h
+++ b/libc/kernel/uapi/rdma/cxgb4-abi.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef CXGB4_ABI_USER_H
 #define CXGB4_ABI_USER_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/rdma/efa-abi.h b/libc/kernel/uapi/rdma/efa-abi.h
index bfb3f18..d4a9089 100644
--- a/libc/kernel/uapi/rdma/efa-abi.h
+++ b/libc/kernel/uapi/rdma/efa-abi.h
@@ -1,24 +1,13 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef EFA_ABI_USER_H
 #define EFA_ABI_USER_H
 #include <linux/types.h>
+#include <rdma/ib_user_ioctl_cmds.h>
 #define EFA_UVERBS_ABI_VERSION 1
 enum {
   EFA_ALLOC_UCONTEXT_CMD_COMP_TX_BATCH = 1 << 0,
@@ -74,11 +63,16 @@
 enum {
   EFA_QP_DRIVER_TYPE_SRD = 0,
 };
+enum {
+  EFA_CREATE_QP_WITH_UNSOLICITED_WRITE_RECV = 1 << 0,
+};
 struct efa_ibv_create_qp {
   __u32 comp_mask;
   __u32 rq_ring_size;
   __u32 sq_ring_size;
   __u32 driver_qp_type;
+  __u16 flags;
+  __u8 reserved_90[6];
 };
 struct efa_ibv_create_qp_resp {
   __u32 comp_mask;
@@ -104,6 +98,9 @@
   EFA_QUERY_DEVICE_CAPS_RNR_RETRY = 1 << 1,
   EFA_QUERY_DEVICE_CAPS_CQ_NOTIFICATIONS = 1 << 2,
   EFA_QUERY_DEVICE_CAPS_CQ_WITH_SGID = 1 << 3,
+  EFA_QUERY_DEVICE_CAPS_DATA_POLLING_128 = 1 << 4,
+  EFA_QUERY_DEVICE_CAPS_RDMA_WRITE = 1 << 5,
+  EFA_QUERY_DEVICE_CAPS_UNSOLICITED_WRITE_RECV = 1 << 6,
 };
 struct efa_ibv_ex_query_device_resp {
   __u32 comp_mask;
@@ -114,4 +111,19 @@
   __u32 max_rdma_size;
   __u32 device_caps;
 };
+enum {
+  EFA_QUERY_MR_VALIDITY_RECV_IC_ID = 1 << 0,
+  EFA_QUERY_MR_VALIDITY_RDMA_READ_IC_ID = 1 << 1,
+  EFA_QUERY_MR_VALIDITY_RDMA_RECV_IC_ID = 1 << 2,
+};
+enum efa_query_mr_attrs {
+  EFA_IB_ATTR_QUERY_MR_HANDLE = (1U << UVERBS_ID_NS_SHIFT),
+  EFA_IB_ATTR_QUERY_MR_RESP_IC_ID_VALIDITY,
+  EFA_IB_ATTR_QUERY_MR_RESP_RECV_IC_ID,
+  EFA_IB_ATTR_QUERY_MR_RESP_RDMA_READ_IC_ID,
+  EFA_IB_ATTR_QUERY_MR_RESP_RDMA_RECV_IC_ID,
+};
+enum efa_mr_methods {
+  EFA_IB_METHOD_MR_QUERY = (1U << UVERBS_ID_NS_SHIFT),
+};
 #endif
diff --git a/libc/kernel/uapi/rdma/erdma-abi.h b/libc/kernel/uapi/rdma/erdma-abi.h
index 4df1757..23afddc 100644
--- a/libc/kernel/uapi/rdma/erdma-abi.h
+++ b/libc/kernel/uapi/rdma/erdma-abi.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __ERDMA_USER_H__
 #define __ERDMA_USER_H__
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/rdma/hfi/hfi1_ioctl.h b/libc/kernel/uapi/rdma/hfi/hfi1_ioctl.h
index a430650..783aa6b 100644
--- a/libc/kernel/uapi/rdma/hfi/hfi1_ioctl.h
+++ b/libc/kernel/uapi/rdma/hfi/hfi1_ioctl.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _LINUX__HFI1_IOCTL_H
 #define _LINUX__HFI1_IOCTL_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/rdma/hfi/hfi1_user.h b/libc/kernel/uapi/rdma/hfi/hfi1_user.h
index 6d58600..81c3f7f 100644
--- a/libc/kernel/uapi/rdma/hfi/hfi1_user.h
+++ b/libc/kernel/uapi/rdma/hfi/hfi1_user.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _LINUX__HFI1_USER_H
 #define _LINUX__HFI1_USER_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/rdma/hns-abi.h b/libc/kernel/uapi/rdma/hns-abi.h
index 0407571..b76e45c 100644
--- a/libc/kernel/uapi/rdma/hns-abi.h
+++ b/libc/kernel/uapi/rdma/hns-abi.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef HNS_ABI_USER_H
 #define HNS_ABI_USER_H
 #include <linux/types.h>
@@ -32,14 +20,31 @@
   __aligned_u64 cqn;
   __aligned_u64 cap_flags;
 };
+enum hns_roce_srq_cap_flags {
+  HNS_ROCE_SRQ_CAP_RECORD_DB = 1 << 0,
+};
+enum hns_roce_srq_cap_flags_resp {
+  HNS_ROCE_RSP_SRQ_CAP_RECORD_DB = 1 << 0,
+};
 struct hns_roce_ib_create_srq {
   __aligned_u64 buf_addr;
   __aligned_u64 db_addr;
   __aligned_u64 que_addr;
+  __u32 req_cap_flags;
+  __u32 reserved;
 };
 struct hns_roce_ib_create_srq_resp {
   __u32 srqn;
-  __u32 reserved;
+  __u32 cap_flags;
+};
+enum hns_roce_congest_type_flags {
+  HNS_ROCE_CREATE_QP_FLAGS_DCQCN,
+  HNS_ROCE_CREATE_QP_FLAGS_LDCP,
+  HNS_ROCE_CREATE_QP_FLAGS_HC3,
+  HNS_ROCE_CREATE_QP_FLAGS_DIP,
+};
+enum hns_roce_create_qp_comp_mask {
+  HNS_ROCE_CREATE_QP_MASK_CONGEST_TYPE = 1 << 0,
 };
 struct hns_roce_ib_create_qp {
   __aligned_u64 buf_addr;
@@ -49,6 +54,9 @@
   __u8 sq_no_prefetch;
   __u8 reserved[5];
   __aligned_u64 sdb_addr;
+  __aligned_u64 comp_mask;
+  __aligned_u64 create_flags;
+  __aligned_u64 cong_type_flags;
 };
 enum hns_roce_qp_cap_flags {
   HNS_ROCE_QP_CAP_RQ_RECORD_DB = 1 << 0,
@@ -60,11 +68,20 @@
   __aligned_u64 cap_flags;
   __aligned_u64 dwqe_mmap_key;
 };
+struct hns_roce_ib_modify_qp_resp {
+  __u8 tc_mode;
+  __u8 priority;
+  __u8 reserved[6];
+};
 enum {
   HNS_ROCE_EXSGE_FLAGS = 1 << 0,
+  HNS_ROCE_RQ_INLINE_FLAGS = 1 << 1,
+  HNS_ROCE_CQE_INLINE_FLAGS = 1 << 2,
 };
 enum {
   HNS_ROCE_RSP_EXSGE_FLAGS = 1 << 0,
+  HNS_ROCE_RSP_RQ_INLINE_FLAGS = 1 << 1,
+  HNS_ROCE_RSP_CQE_INLINE_FLAGS = 1 << 2,
 };
 struct hns_roce_ib_alloc_ucontext_resp {
   __u32 qp_tab_size;
@@ -73,6 +90,8 @@
   __u32 reserved;
   __u32 config;
   __u32 max_inline_data;
+  __u8 congest_type;
+  __u8 reserved0[7];
 };
 struct hns_roce_ib_alloc_ucontext {
   __u32 config;
@@ -81,4 +100,9 @@
 struct hns_roce_ib_alloc_pd_resp {
   __u32 pdn;
 };
+struct hns_roce_ib_create_ah_resp {
+  __u8 dmac[6];
+  __u8 priority;
+  __u8 tc_mode;
+};
 #endif
diff --git a/libc/kernel/uapi/rdma/ib_user_ioctl_cmds.h b/libc/kernel/uapi/rdma/ib_user_ioctl_cmds.h
index f96b4e8..5f5c426 100644
--- a/libc/kernel/uapi/rdma/ib_user_ioctl_cmds.h
+++ b/libc/kernel/uapi/rdma/ib_user_ioctl_cmds.h
@@ -1,27 +1,13 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef IB_USER_IOCTL_CMDS_H
 #define IB_USER_IOCTL_CMDS_H
 #define UVERBS_ID_NS_MASK 0xF000
 #define UVERBS_ID_NS_SHIFT 12
-#define UVERBS_UDATA_DRIVER_DATA_NS 1
-#define UVERBS_UDATA_DRIVER_DATA_FLAG (1UL << UVERBS_ID_NS_SHIFT)
 enum uverbs_default_objects {
   UVERBS_OBJECT_DEVICE,
   UVERBS_OBJECT_PD,
@@ -42,8 +28,10 @@
   UVERBS_OBJECT_ASYNC_EVENT,
 };
 enum {
-  UVERBS_ATTR_UHW_IN = UVERBS_UDATA_DRIVER_DATA_FLAG,
+  UVERBS_ID_DRIVER_NS = 1UL << UVERBS_ID_NS_SHIFT,
+  UVERBS_ATTR_UHW_IN = UVERBS_ID_DRIVER_NS,
   UVERBS_ATTR_UHW_OUT,
+  UVERBS_ID_DRIVER_NS_WITH_UHW,
 };
 enum uverbs_methods_device {
   UVERBS_METHOD_INVOKE_WRITE,
diff --git a/libc/kernel/uapi/rdma/ib_user_ioctl_verbs.h b/libc/kernel/uapi/rdma/ib_user_ioctl_verbs.h
index 6b9a436..9feec8e 100644
--- a/libc/kernel/uapi/rdma/ib_user_ioctl_verbs.h
+++ b/libc/kernel/uapi/rdma/ib_user_ioctl_verbs.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef IB_USER_IOCTL_VERBS_H
 #define IB_USER_IOCTL_VERBS_H
 #include <linux/types.h>
@@ -163,7 +151,8 @@
 struct ib_uverbs_query_port_resp_ex {
   struct ib_uverbs_query_port_resp legacy_resp;
   __u16 port_cap_flags2;
-  __u8 reserved[6];
+  __u8 reserved[2];
+  __u32 active_speed_ex;
 };
 struct ib_uverbs_qp_cap {
   __u32 max_send_wr;
diff --git a/libc/kernel/uapi/rdma/ib_user_mad.h b/libc/kernel/uapi/rdma/ib_user_mad.h
index 04b9f08..b0ce93a 100644
--- a/libc/kernel/uapi/rdma/ib_user_mad.h
+++ b/libc/kernel/uapi/rdma/ib_user_mad.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef IB_USER_MAD_H
 #define IB_USER_MAD_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/rdma/ib_user_sa.h b/libc/kernel/uapi/rdma/ib_user_sa.h
index c999320..0254936 100644
--- a/libc/kernel/uapi/rdma/ib_user_sa.h
+++ b/libc/kernel/uapi/rdma/ib_user_sa.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef IB_USER_SA_H
 #define IB_USER_SA_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/rdma/ib_user_verbs.h b/libc/kernel/uapi/rdma/ib_user_verbs.h
index 6894bf1..6e27db4 100644
--- a/libc/kernel/uapi/rdma/ib_user_verbs.h
+++ b/libc/kernel/uapi/rdma/ib_user_verbs.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef IB_USER_VERBS_H
 #define IB_USER_VERBS_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/rdma/irdma-abi.h b/libc/kernel/uapi/rdma/irdma-abi.h
index b6840cf..32a2190 100644
--- a/libc/kernel/uapi/rdma/irdma-abi.h
+++ b/libc/kernel/uapi/rdma/irdma-abi.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef IRDMA_ABI_H
 #define IRDMA_ABI_H
 #include <linux/types.h>
@@ -25,10 +13,15 @@
   IRDMA_MEMREG_TYPE_QP = 1,
   IRDMA_MEMREG_TYPE_CQ = 2,
 };
+enum {
+  IRDMA_ALLOC_UCTX_USE_RAW_ATTR = 1 << 0,
+  IRDMA_ALLOC_UCTX_MIN_HW_WQ_SIZE = 1 << 1,
+};
 struct irdma_alloc_ucontext_req {
   __u32 rsvd32;
   __u8 userspace_ver;
   __u8 rsvd8[3];
+  __aligned_u64 comp_mask;
 };
 struct irdma_alloc_ucontext_resp {
   __u32 max_pds;
@@ -48,6 +41,9 @@
   __u16 max_hw_sq_chunk;
   __u8 hw_rev;
   __u8 rsvd2;
+  __aligned_u64 comp_mask;
+  __u16 min_hw_wq_size;
+  __u8 rsvd3[6];
 };
 struct irdma_alloc_pd_resp {
   __u32 pd_id;
diff --git a/libc/kernel/uapi/rdma/mana-abi.h b/libc/kernel/uapi/rdma/mana-abi.h
index 4f1a73f..02bb061 100644
--- a/libc/kernel/uapi/rdma/mana-abi.h
+++ b/libc/kernel/uapi/rdma/mana-abi.h
@@ -1,28 +1,26 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef MANA_ABI_USER_H
 #define MANA_ABI_USER_H
 #include <linux/types.h>
 #include <rdma/ib_user_ioctl_verbs.h>
 #define MANA_IB_UVERBS_ABI_VERSION 1
+enum mana_ib_create_cq_flags {
+  MANA_IB_CREATE_RNIC_CQ = 1 << 0,
+};
 struct mana_ib_create_cq {
   __aligned_u64 buf_addr;
+  __u16 flags;
+  __u16 reserved0;
+  __u32 reserved1;
+};
+struct mana_ib_create_cq_resp {
+  __u32 cqid;
+  __u32 reserved;
 };
 struct mana_ib_create_qp {
   __aligned_u64 sq_buf_addr;
@@ -35,6 +33,13 @@
   __u32 tx_vp_offset;
   __u32 reserved;
 };
+struct mana_ib_create_rc_qp {
+  __aligned_u64 queue_buf[4];
+  __u32 queue_size[4];
+};
+struct mana_ib_create_rc_qp_resp {
+  __u32 queue_id[4];
+};
 struct mana_ib_create_wq {
   __aligned_u64 wq_buf_addr;
   __u32 wq_buf_size;
diff --git a/libc/kernel/uapi/rdma/mlx4-abi.h b/libc/kernel/uapi/rdma/mlx4-abi.h
index 121762b..4c2055c 100644
--- a/libc/kernel/uapi/rdma/mlx4-abi.h
+++ b/libc/kernel/uapi/rdma/mlx4-abi.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef MLX4_ABI_USER_H
 #define MLX4_ABI_USER_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/rdma/mlx5-abi.h b/libc/kernel/uapi/rdma/mlx5-abi.h
index f41c887..22cf99e 100644
--- a/libc/kernel/uapi/rdma/mlx5-abi.h
+++ b/libc/kernel/uapi/rdma/mlx5-abi.h
@@ -1,26 +1,15 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef MLX5_ABI_USER_H
 #define MLX5_ABI_USER_H
 #include <linux/types.h>
 #include <linux/if_ether.h>
 #include <rdma/ib_user_ioctl_verbs.h>
+#include <rdma/mlx5_user_ioctl_verbs.h>
 enum {
   MLX5_QP_FLAG_SIGNATURE = 1 << 0,
   MLX5_QP_FLAG_SCATTER_CQE = 1 << 1,
@@ -198,6 +187,7 @@
   __u32 tunnel_offloads_caps;
   struct mlx5_ib_dci_streams_caps dci_streams_caps;
   __u16 reserved;
+  struct mlx5_ib_uapi_reg reg_c0;
 };
 enum mlx5_ib_create_cq_flags {
   MLX5_IB_CREATE_CQ_FLAGS_CQE_128B_PAD = 1 << 0,
diff --git a/libc/kernel/uapi/rdma/mlx5_user_ioctl_cmds.h b/libc/kernel/uapi/rdma/mlx5_user_ioctl_cmds.h
index c060482..ebafb00 100644
--- a/libc/kernel/uapi/rdma/mlx5_user_ioctl_cmds.h
+++ b/libc/kernel/uapi/rdma/mlx5_user_ioctl_cmds.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef MLX5_USER_IOCTL_CMDS_H
 #define MLX5_USER_IOCTL_CMDS_H
 #include <linux/types.h>
@@ -213,6 +201,9 @@
 enum mlx5_ib_device_query_context_attrs {
   MLX5_IB_ATTR_QUERY_CONTEXT_RESP_UCTX = (1U << UVERBS_ID_NS_SHIFT),
 };
+enum mlx5_ib_create_cq_attrs {
+  MLX5_IB_ATTR_CREATE_CQ_UAR_INDEX = UVERBS_ID_DRIVER_NS_WITH_UHW,
+};
 #define MLX5_IB_DW_MATCH_PARAM 0xA0
 struct mlx5_ib_match_params {
   __u32 match_params[MLX5_IB_DW_MATCH_PARAM];
diff --git a/libc/kernel/uapi/rdma/mlx5_user_ioctl_verbs.h b/libc/kernel/uapi/rdma/mlx5_user_ioctl_verbs.h
index f68c0b3..f087ee8 100644
--- a/libc/kernel/uapi/rdma/mlx5_user_ioctl_verbs.h
+++ b/libc/kernel/uapi/rdma/mlx5_user_ioctl_verbs.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef MLX5_USER_IOCTL_VERBS_H
 #define MLX5_USER_IOCTL_VERBS_H
 #include <linux/types.h>
@@ -44,6 +32,7 @@
   MLX5_IB_UAPI_DM_TYPE_STEERING_SW_ICM,
   MLX5_IB_UAPI_DM_TYPE_HEADER_MODIFY_SW_ICM,
   MLX5_IB_UAPI_DM_TYPE_HEADER_MODIFY_PATTERN_SW_ICM,
+  MLX5_IB_UAPI_DM_TYPE_ENCAP_SW_ICM,
 };
 enum mlx5_ib_uapi_devx_create_event_channel_flags {
   MLX5_IB_UAPI_DEVX_CR_EV_CH_FLAGS_OMIT_DATA = 1 << 0,
diff --git a/libc/kernel/uapi/rdma/mthca-abi.h b/libc/kernel/uapi/rdma/mthca-abi.h
index 86224f2..7719d8c 100644
--- a/libc/kernel/uapi/rdma/mthca-abi.h
+++ b/libc/kernel/uapi/rdma/mthca-abi.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef MTHCA_ABI_USER_H
 #define MTHCA_ABI_USER_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/rdma/ocrdma-abi.h b/libc/kernel/uapi/rdma/ocrdma-abi.h
index 007f0e1..ae7752b 100644
--- a/libc/kernel/uapi/rdma/ocrdma-abi.h
+++ b/libc/kernel/uapi/rdma/ocrdma-abi.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef OCRDMA_ABI_USER_H
 #define OCRDMA_ABI_USER_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/rdma/qedr-abi.h b/libc/kernel/uapi/rdma/qedr-abi.h
index bf6dc76..b9a84bb 100644
--- a/libc/kernel/uapi/rdma/qedr-abi.h
+++ b/libc/kernel/uapi/rdma/qedr-abi.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __QEDR_USER_H__
 #define __QEDR_USER_H__
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/rdma/rdma_netlink.h b/libc/kernel/uapi/rdma/rdma_netlink.h
index bdb5fdd..ac027ac 100644
--- a/libc/kernel/uapi/rdma/rdma_netlink.h
+++ b/libc/kernel/uapi/rdma/rdma_netlink.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_RDMA_NETLINK_H
 #define _UAPI_RDMA_NETLINK_H
 #include <linux/types.h>
@@ -210,6 +198,9 @@
   RDMA_NLDEV_CMD_RES_CTX_GET,
   RDMA_NLDEV_CMD_RES_SRQ_GET,
   RDMA_NLDEV_CMD_STAT_GET_STATUS,
+  RDMA_NLDEV_CMD_RES_SRQ_GET_RAW,
+  RDMA_NLDEV_CMD_NEWDEV,
+  RDMA_NLDEV_CMD_DELDEV,
   RDMA_NLDEV_NUM_OPS
 };
 enum rdma_nldev_print_type {
@@ -314,6 +305,12 @@
   RDMA_NLDEV_SYS_ATTR_COPY_ON_FORK,
   RDMA_NLDEV_ATTR_STAT_HWCOUNTER_INDEX,
   RDMA_NLDEV_ATTR_STAT_HWCOUNTER_DYNAMIC,
+  RDMA_NLDEV_SYS_ATTR_PRIVILEGED_QKEY_MODE,
+  RDMA_NLDEV_ATTR_DRIVER_DETAILS,
+  RDMA_NLDEV_ATTR_RES_SUBTYPE,
+  RDMA_NLDEV_ATTR_DEV_TYPE,
+  RDMA_NLDEV_ATTR_PARENT_NAME,
+  RDMA_NLDEV_ATTR_NAME_ASSIGN_TYPE,
   RDMA_NLDEV_ATTR_MAX
 };
 enum rdma_nl_counter_mode {
@@ -326,4 +323,11 @@
   RDMA_COUNTER_MASK_QP_TYPE = 1,
   RDMA_COUNTER_MASK_PID = 1 << 1,
 };
+enum rdma_nl_dev_type {
+  RDMA_DEVICE_TYPE_SMI = 1,
+};
+enum rdma_nl_name_assign_type {
+  RDMA_NAME_ASSIGN_TYPE_UNKNOWN = 0,
+  RDMA_NAME_ASSIGN_TYPE_USER = 1,
+};
 #endif
diff --git a/libc/kernel/uapi/rdma/rdma_user_cm.h b/libc/kernel/uapi/rdma/rdma_user_cm.h
index 37927f8..5228e62 100644
--- a/libc/kernel/uapi/rdma/rdma_user_cm.h
+++ b/libc/kernel/uapi/rdma/rdma_user_cm.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef RDMA_USER_CM_H
 #define RDMA_USER_CM_H
 #include <linux/types.h>
@@ -88,7 +76,7 @@
   __u32 id;
   __u16 addr_size;
   __u16 reserved;
-  struct __kernel_sockaddr_storage addr;
+  struct sockaddr_storage addr;
 };
 struct rdma_ucm_resolve_ip {
   struct sockaddr_in6 src_addr;
@@ -102,8 +90,8 @@
   __u16 src_size;
   __u16 dst_size;
   __u32 reserved;
-  struct __kernel_sockaddr_storage src_addr;
-  struct __kernel_sockaddr_storage dst_addr;
+  struct sockaddr_storage src_addr;
+  struct sockaddr_storage dst_addr;
 };
 struct rdma_ucm_resolve_route {
   __u32 id;
@@ -137,8 +125,8 @@
   __u16 pkey;
   __u16 src_size;
   __u16 dst_size;
-  struct __kernel_sockaddr_storage src_addr;
-  struct __kernel_sockaddr_storage dst_addr;
+  struct sockaddr_storage src_addr;
+  struct sockaddr_storage dst_addr;
   __u32 ibdev_index;
   __u32 reserved1;
 };
@@ -225,7 +213,7 @@
   __u32 id;
   __u16 addr_size;
   __u16 join_flags;
-  struct __kernel_sockaddr_storage addr;
+  struct sockaddr_storage addr;
 };
 struct rdma_ucm_get_event {
   __aligned_u64 response;
diff --git a/libc/kernel/uapi/rdma/rdma_user_ioctl.h b/libc/kernel/uapi/rdma/rdma_user_ioctl.h
index 2f532d3..d367547 100644
--- a/libc/kernel/uapi/rdma/rdma_user_ioctl.h
+++ b/libc/kernel/uapi/rdma/rdma_user_ioctl.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef RDMA_USER_IOCTL_H
 #define RDMA_USER_IOCTL_H
 #include <rdma/ib_user_mad.h>
diff --git a/libc/kernel/uapi/rdma/rdma_user_ioctl_cmds.h b/libc/kernel/uapi/rdma/rdma_user_ioctl_cmds.h
index dbaf9ed..fa67359 100644
--- a/libc/kernel/uapi/rdma/rdma_user_ioctl_cmds.h
+++ b/libc/kernel/uapi/rdma/rdma_user_ioctl_cmds.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef RDMA_USER_IOCTL_CMDS_H
 #define RDMA_USER_IOCTL_CMDS_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/rdma/rdma_user_rxe.h b/libc/kernel/uapi/rdma/rdma_user_rxe.h
index e7619d8..57b6467 100644
--- a/libc/kernel/uapi/rdma/rdma_user_rxe.h
+++ b/libc/kernel/uapi/rdma/rdma_user_rxe.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef RDMA_USER_RXE_H
 #define RDMA_USER_RXE_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/rdma/rvt-abi.h b/libc/kernel/uapi/rdma/rvt-abi.h
index 49632ee..13c7a6e 100644
--- a/libc/kernel/uapi/rdma/rvt-abi.h
+++ b/libc/kernel/uapi/rdma/rvt-abi.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef RVT_ABI_USER_H
 #define RVT_ABI_USER_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/rdma/siw-abi.h b/libc/kernel/uapi/rdma/siw-abi.h
index e2363a1..297794a 100644
--- a/libc/kernel/uapi/rdma/siw-abi.h
+++ b/libc/kernel/uapi/rdma/siw-abi.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _SIW_USER_H
 #define _SIW_USER_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/rdma/vmw_pvrdma-abi.h b/libc/kernel/uapi/rdma/vmw_pvrdma-abi.h
index f4444c4..54fa907 100644
--- a/libc/kernel/uapi/rdma/vmw_pvrdma-abi.h
+++ b/libc/kernel/uapi/rdma/vmw_pvrdma-abi.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __VMW_PVRDMA_ABI_H__
 #define __VMW_PVRDMA_ABI_H__
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/regulator/regulator.h b/libc/kernel/uapi/regulator/regulator.h
new file mode 100644
index 0000000..23ce7c6
--- /dev/null
+++ b/libc/kernel/uapi/regulator/regulator.h
@@ -0,0 +1,47 @@
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
+#ifndef _UAPI_REGULATOR_H
+#define _UAPI_REGULATOR_H
+#include <stdint.h>
+#define REGULATOR_EVENT_UNDER_VOLTAGE 0x01
+#define REGULATOR_EVENT_OVER_CURRENT 0x02
+#define REGULATOR_EVENT_REGULATION_OUT 0x04
+#define REGULATOR_EVENT_FAIL 0x08
+#define REGULATOR_EVENT_OVER_TEMP 0x10
+#define REGULATOR_EVENT_FORCE_DISABLE 0x20
+#define REGULATOR_EVENT_VOLTAGE_CHANGE 0x40
+#define REGULATOR_EVENT_DISABLE 0x80
+#define REGULATOR_EVENT_PRE_VOLTAGE_CHANGE 0x100
+#define REGULATOR_EVENT_ABORT_VOLTAGE_CHANGE 0x200
+#define REGULATOR_EVENT_PRE_DISABLE 0x400
+#define REGULATOR_EVENT_ABORT_DISABLE 0x800
+#define REGULATOR_EVENT_ENABLE 0x1000
+#define REGULATOR_EVENT_UNDER_VOLTAGE_WARN 0x2000
+#define REGULATOR_EVENT_OVER_CURRENT_WARN 0x4000
+#define REGULATOR_EVENT_OVER_VOLTAGE_WARN 0x8000
+#define REGULATOR_EVENT_OVER_TEMP_WARN 0x10000
+#define REGULATOR_EVENT_WARN_MASK 0x1E000
+struct reg_genl_event {
+  char reg_name[32];
+  uint64_t event;
+};
+enum {
+  REG_GENL_ATTR_UNSPEC,
+  REG_GENL_ATTR_EVENT,
+  __REG_GENL_ATTR_MAX,
+};
+#define REG_GENL_ATTR_MAX (__REG_GENL_ATTR_MAX - 1)
+enum {
+  REG_GENL_CMD_UNSPEC,
+  REG_GENL_CMD_EVENT,
+  __REG_GENL_CMD_MAX,
+};
+#define REG_GENL_CMD_MAX (__REG_GENL_CMD_MAX - 1)
+#define REG_GENL_FAMILY_NAME "reg_event"
+#define REG_GENL_VERSION 0x01
+#define REG_GENL_MCAST_GROUP_NAME "reg_mc_group"
+#endif
diff --git a/libc/kernel/uapi/scsi/cxlflash_ioctl.h b/libc/kernel/uapi/scsi/cxlflash_ioctl.h
index 9781905..008b77c 100644
--- a/libc/kernel/uapi/scsi/cxlflash_ioctl.h
+++ b/libc/kernel/uapi/scsi/cxlflash_ioctl.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _CXLFLASH_IOCTL_H
 #define _CXLFLASH_IOCTL_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/scsi/fc/fc_els.h b/libc/kernel/uapi/scsi/fc/fc_els.h
index d29287d..8bd37ea 100644
--- a/libc/kernel/uapi/scsi/fc/fc_els.h
+++ b/libc/kernel/uapi/scsi/fc/fc_els.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _FC_ELS_H_
 #define _FC_ELS_H_
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/scsi/fc/fc_fs.h b/libc/kernel/uapi/scsi/fc/fc_fs.h
index 510d361..4583e97 100644
--- a/libc/kernel/uapi/scsi/fc/fc_fs.h
+++ b/libc/kernel/uapi/scsi/fc/fc_fs.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _FC_FS_H_
 #define _FC_FS_H_
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/scsi/fc/fc_gs.h b/libc/kernel/uapi/scsi/fc/fc_gs.h
index bcbf7a3..8f3f6b7 100644
--- a/libc/kernel/uapi/scsi/fc/fc_gs.h
+++ b/libc/kernel/uapi/scsi/fc/fc_gs.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _FC_GS_H_
 #define _FC_GS_H_
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/scsi/fc/fc_ns.h b/libc/kernel/uapi/scsi/fc/fc_ns.h
index 58fee9a..d926b61 100644
--- a/libc/kernel/uapi/scsi/fc/fc_ns.h
+++ b/libc/kernel/uapi/scsi/fc/fc_ns.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _FC_NS_H_
 #define _FC_NS_H_
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/scsi/scsi_bsg_fc.h b/libc/kernel/uapi/scsi/scsi_bsg_fc.h
index 2647249..78a2e5d 100644
--- a/libc/kernel/uapi/scsi/scsi_bsg_fc.h
+++ b/libc/kernel/uapi/scsi/scsi_bsg_fc.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef SCSI_BSG_FC_H
 #define SCSI_BSG_FC_H
 #include <linux/types.h>
@@ -69,7 +57,7 @@
   __u32 vendor_cmd[];
 };
 struct fc_bsg_host_vendor_reply {
-  __u32 vendor_rsp[0];
+  __DECLARE_FLEX_ARRAY(__u32, vendor_rsp);
 };
 struct fc_bsg_rport_els {
   __u8 els_code;
diff --git a/libc/kernel/uapi/scsi/scsi_bsg_mpi3mr.h b/libc/kernel/uapi/scsi/scsi_bsg_mpi3mr.h
index fcba8cd..fe3094e 100644
--- a/libc/kernel/uapi/scsi/scsi_bsg_mpi3mr.h
+++ b/libc/kernel/uapi/scsi/scsi_bsg_mpi3mr.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef SCSI_BSG_MPI3MR_H_INCLUDED
 #define SCSI_BSG_MPI3MR_H_INCLUDED
 #include <linux/types.h>
@@ -156,7 +144,7 @@
 };
 struct mpi3mr_bsg_in_hdb_status {
   __u8 num_hdb_types;
-  __u8 rsvd1;
+  __u8 element_trigger_format;
   __u16 rsvd2;
   __u32 rsvd3;
   struct mpi3mr_hdb_entry entry[1];
@@ -188,7 +176,7 @@
   __u8 mpi_reply_type;
   __u8 rsvd1;
   __u16 rsvd2;
-  __u8 reply_buf[1];
+  __u8 reply_buf[];
 };
 struct mpi3mr_buf_entry {
   __u8 buf_type;
@@ -220,9 +208,6 @@
     struct mpi3mr_bsg_mptcmd mptcmd;
   } cmd;
 };
-#ifndef MPI3_NVME_ENCAP_CMD_MAX
-#define MPI3_NVME_ENCAP_CMD_MAX (1)
-#endif
 struct mpi3_nvme_encapsulated_request {
   __le16 host_tag;
   __u8 ioc_use_only02;
@@ -236,7 +221,7 @@
   __le16 flags;
   __le32 data_length;
   __le32 reserved14[3];
-  __le32 command[MPI3_NVME_ENCAP_CMD_MAX];
+  __le32 command[];
 };
 struct mpi3_nvme_encapsulated_error_reply {
   __le16 host_tag;
@@ -257,6 +242,8 @@
 #define MPI3MR_NVME_DATA_FORMAT_PRP 0
 #define MPI3MR_NVME_DATA_FORMAT_SGL1 1
 #define MPI3MR_NVME_DATA_FORMAT_SGL2 2
+#define MPI3MR_NVMESGL_DATA_SEGMENT 0x00
+#define MPI3MR_NVMESGL_LAST_SEGMENT 0x03
 struct mpi3_scsi_task_mgmt_request {
   __le16 host_tag;
   __u8 ioc_use_only02;
diff --git a/libc/kernel/uapi/scsi/scsi_bsg_ufs.h b/libc/kernel/uapi/scsi/scsi_bsg_ufs.h
index ae5c757..5a4b1b2 100644
--- a/libc/kernel/uapi/scsi/scsi_bsg_ufs.h
+++ b/libc/kernel/uapi/scsi/scsi_bsg_ufs.h
@@ -1,31 +1,62 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef SCSI_BSG_UFS_H
 #define SCSI_BSG_UFS_H
+#include <asm/byteorder.h>
 #include <linux/types.h>
 #define UFS_CDB_SIZE 16
-#define UPIU_TRANSACTION_UIC_CMD 0x1F
 #define UIC_CMD_SIZE (sizeof(__u32) * 4)
+enum ufs_bsg_msg_code {
+  UPIU_TRANSACTION_UIC_CMD = 0x1F,
+  UPIU_TRANSACTION_ARPMB_CMD,
+};
+enum ufs_rpmb_op_type {
+  UFS_RPMB_WRITE_KEY = 0x01,
+  UFS_RPMB_READ_CNT = 0x02,
+  UFS_RPMB_WRITE = 0x03,
+  UFS_RPMB_READ = 0x04,
+  UFS_RPMB_READ_RESP = 0x05,
+  UFS_RPMB_SEC_CONF_WRITE = 0x06,
+  UFS_RPMB_SEC_CONF_READ = 0x07,
+  UFS_RPMB_PURGE_ENABLE = 0x08,
+  UFS_RPMB_PURGE_STATUS_READ = 0x09,
+};
 struct utp_upiu_header {
-  __be32 dword_0;
-  __be32 dword_1;
-  __be32 dword_2;
+  union {
+    struct {
+      __be32 dword_0;
+      __be32 dword_1;
+      __be32 dword_2;
+    };
+    struct {
+      __u8 transaction_code;
+      __u8 flags;
+      __u8 lun;
+      __u8 task_tag;
+#ifdef __BIG_ENDIAN
+      __u8 iid : 4;
+      __u8 command_set_type : 4;
+#elif defined(__LITTLE_ENDIAN)
+      __u8 command_set_type : 4;
+      __u8 iid : 4;
+#else
+#error 
+#endif
+      union {
+        __u8 tm_function;
+        __u8 query_function;
+      } __attribute__((packed));
+      __u8 response;
+      __u8 status;
+      __u8 ehs_length;
+      __u8 device_information;
+      __be16 data_segment_length;
+    };
+  };
 };
 struct utp_upiu_query {
   __u8 opcode;
@@ -37,6 +68,18 @@
   __be32 value;
   __be32 reserved[2];
 };
+struct utp_upiu_query_v4_0 {
+  __u8 opcode;
+  __u8 idn;
+  __u8 index;
+  __u8 selector;
+  __u8 osf3;
+  __u8 osf4;
+  __be16 osf5;
+  __be32 osf6;
+  __be32 osf7;
+  __be32 reserved;
+};
 struct utp_upiu_cmd {
   __be32 exp_data_transfer_len;
   __u8 cdb[UFS_CDB_SIZE];
@@ -49,13 +92,36 @@
     struct utp_upiu_query uc;
   };
 };
+struct ufs_arpmb_meta {
+  __be16 req_resp_type;
+  __u8 nonce[16];
+  __be32 write_counter;
+  __be16 addr_lun;
+  __be16 block_count;
+  __be16 result;
+} __attribute__((__packed__));
+struct ufs_ehs {
+  __u8 length;
+  __u8 ehs_type;
+  __be16 ehssub_type;
+  struct ufs_arpmb_meta meta;
+  __u8 mac_key[32];
+} __attribute__((__packed__));
 struct ufs_bsg_request {
   __u32 msgcode;
   struct utp_upiu_req upiu_req;
 };
 struct ufs_bsg_reply {
-  __u32 result;
+  int result;
   __u32 reply_payload_rcv_len;
   struct utp_upiu_req upiu_rsp;
 };
+struct ufs_rpmb_request {
+  struct ufs_bsg_request bsg_request;
+  struct ufs_ehs ehs_req;
+};
+struct ufs_rpmb_reply {
+  struct ufs_bsg_reply bsg_reply;
+  struct ufs_ehs ehs_rsp;
+};
 #endif
diff --git a/libc/kernel/uapi/scsi/scsi_netlink.h b/libc/kernel/uapi/scsi/scsi_netlink.h
index 2e1b6cf..154a934 100644
--- a/libc/kernel/uapi/scsi/scsi_netlink.h
+++ b/libc/kernel/uapi/scsi/scsi_netlink.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef SCSI_NETLINK_H
 #define SCSI_NETLINK_H
 #include <linux/netlink.h>
diff --git a/libc/kernel/uapi/scsi/scsi_netlink_fc.h b/libc/kernel/uapi/scsi/scsi_netlink_fc.h
index 6eeb866..5d82af4 100644
--- a/libc/kernel/uapi/scsi/scsi_netlink_fc.h
+++ b/libc/kernel/uapi/scsi/scsi_netlink_fc.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef SCSI_NETLINK_FC_H
 #define SCSI_NETLINK_FC_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/sound/asequencer.h b/libc/kernel/uapi/sound/asequencer.h
index 01a5058..a3826a5 100644
--- a/libc/kernel/uapi/sound/asequencer.h
+++ b/libc/kernel/uapi/sound/asequencer.h
@@ -1,25 +1,13 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI__SOUND_ASEQUENCER_H
 #define _UAPI__SOUND_ASEQUENCER_H
 #include <sound/asound.h>
-#define SNDRV_SEQ_VERSION SNDRV_PROTOCOL_VERSION(1, 0, 2)
+#define SNDRV_SEQ_VERSION SNDRV_PROTOCOL_VERSION(1, 0, 4)
 #define SNDRV_SEQ_EVENT_SYSTEM 0
 #define SNDRV_SEQ_EVENT_RESULT 1
 #define SNDRV_SEQ_EVENT_NOTE 5
@@ -106,6 +94,7 @@
 #define SNDRV_SEQ_PRIORITY_NORMAL (0 << 4)
 #define SNDRV_SEQ_PRIORITY_HIGH (1 << 4)
 #define SNDRV_SEQ_PRIORITY_MASK (1 << 4)
+#define SNDRV_SEQ_EVENT_UMP (1 << 5)
 struct snd_seq_ev_note {
   unsigned char channel;
   unsigned char note;
@@ -128,7 +117,7 @@
 struct snd_seq_ev_ext {
   unsigned int len;
   void * ptr;
-} __attribute__((packed));
+} __attribute__((__packed__));
 struct snd_seq_result {
   int event;
   int result;
@@ -162,7 +151,20 @@
   struct snd_seq_addr origin;
   unsigned short value;
   struct snd_seq_event * event;
-} __attribute__((packed));
+} __attribute__((__packed__));
+union snd_seq_event_data {
+  struct snd_seq_ev_note note;
+  struct snd_seq_ev_ctrl control;
+  struct snd_seq_ev_raw8 raw8;
+  struct snd_seq_ev_raw32 raw32;
+  struct snd_seq_ev_ext ext;
+  struct snd_seq_ev_queue_control queue;
+  union snd_seq_timestamp time;
+  struct snd_seq_addr addr;
+  struct snd_seq_connect connect;
+  struct snd_seq_result result;
+  struct snd_seq_ev_quote quote;
+};
 struct snd_seq_event {
   snd_seq_event_type_t type;
   unsigned char flags;
@@ -171,19 +173,20 @@
   union snd_seq_timestamp time;
   struct snd_seq_addr source;
   struct snd_seq_addr dest;
+  union snd_seq_event_data data;
+};
+struct snd_seq_ump_event {
+  snd_seq_event_type_t type;
+  unsigned char flags;
+  char tag;
+  unsigned char queue;
+  union snd_seq_timestamp time;
+  struct snd_seq_addr source;
+  struct snd_seq_addr dest;
   union {
-    struct snd_seq_ev_note note;
-    struct snd_seq_ev_ctrl control;
-    struct snd_seq_ev_raw8 raw8;
-    struct snd_seq_ev_raw32 raw32;
-    struct snd_seq_ev_ext ext;
-    struct snd_seq_ev_queue_control queue;
-    union snd_seq_timestamp time;
-    struct snd_seq_addr addr;
-    struct snd_seq_connect connect;
-    struct snd_seq_result result;
-    struct snd_seq_ev_quote quote;
-  } data;
+    union snd_seq_event_data data;
+    unsigned int ump[4];
+  };
 };
 struct snd_seq_event_bounce {
   int err;
@@ -215,6 +218,7 @@
 #define SNDRV_SEQ_FILTER_BROADCAST (1U << 0)
 #define SNDRV_SEQ_FILTER_MULTICAST (1U << 1)
 #define SNDRV_SEQ_FILTER_BOUNCE (1U << 2)
+#define SNDRV_SEQ_FILTER_NO_CONVERT (1U << 30)
 #define SNDRV_SEQ_FILTER_USE_EVENT (1U << 31)
 struct snd_seq_client_info {
   int client;
@@ -227,8 +231,13 @@
   int event_lost;
   int card;
   int pid;
-  char reserved[56];
+  unsigned int midi_version;
+  unsigned int group_filter;
+  char reserved[48];
 };
+#define SNDRV_SEQ_CLIENT_LEGACY_MIDI 0
+#define SNDRV_SEQ_CLIENT_UMP_MIDI_1_0 1
+#define SNDRV_SEQ_CLIENT_UMP_MIDI_2_0 2
 struct snd_seq_client_pool {
   int client;
   int output_pool;
@@ -268,6 +277,8 @@
 #define SNDRV_SEQ_PORT_CAP_SUBS_READ (1 << 5)
 #define SNDRV_SEQ_PORT_CAP_SUBS_WRITE (1 << 6)
 #define SNDRV_SEQ_PORT_CAP_NO_EXPORT (1 << 7)
+#define SNDRV_SEQ_PORT_CAP_INACTIVE (1 << 8)
+#define SNDRV_SEQ_PORT_CAP_UMP_ENDPOINT (1 << 9)
 #define SNDRV_SEQ_PORT_TYPE_SPECIFIC (1 << 0)
 #define SNDRV_SEQ_PORT_TYPE_MIDI_GENERIC (1 << 1)
 #define SNDRV_SEQ_PORT_TYPE_MIDI_GM (1 << 2)
@@ -275,6 +286,7 @@
 #define SNDRV_SEQ_PORT_TYPE_MIDI_XG (1 << 4)
 #define SNDRV_SEQ_PORT_TYPE_MIDI_MT32 (1 << 5)
 #define SNDRV_SEQ_PORT_TYPE_MIDI_GM2 (1 << 6)
+#define SNDRV_SEQ_PORT_TYPE_MIDI_UMP (1 << 7)
 #define SNDRV_SEQ_PORT_TYPE_SYNTH (1 << 10)
 #define SNDRV_SEQ_PORT_TYPE_DIRECT_SAMPLE (1 << 11)
 #define SNDRV_SEQ_PORT_TYPE_SAMPLE (1 << 12)
@@ -286,6 +298,10 @@
 #define SNDRV_SEQ_PORT_FLG_GIVEN_PORT (1 << 0)
 #define SNDRV_SEQ_PORT_FLG_TIMESTAMP (1 << 1)
 #define SNDRV_SEQ_PORT_FLG_TIME_REAL (1 << 2)
+#define SNDRV_SEQ_PORT_DIR_UNKNOWN 0
+#define SNDRV_SEQ_PORT_DIR_INPUT 1
+#define SNDRV_SEQ_PORT_DIR_OUTPUT 2
+#define SNDRV_SEQ_PORT_DIR_BIDIRECTION 3
 struct snd_seq_port_info {
   struct snd_seq_addr addr;
   char name[64];
@@ -299,7 +315,9 @@
   void * kernel;
   unsigned int flags;
   unsigned char time_queue;
-  char reserved[59];
+  unsigned char direction;
+  unsigned char ump_group;
+  char reserved[57];
 };
 #define SNDRV_SEQ_QUEUE_FLG_SYNC (1 << 0)
 struct snd_seq_queue_info {
@@ -325,7 +343,8 @@
   int ppq;
   unsigned int skew_value;
   unsigned int skew_base;
-  char reserved[24];
+  unsigned short tempo_base;
+  char reserved[22];
 };
 #define SNDRV_SEQ_TIMER_ALSA 0
 #define SNDRV_SEQ_TIMER_MIDI_CLOCK 1
@@ -371,12 +390,22 @@
   unsigned int flags;
   char reserved[64];
 };
+#define SNDRV_SEQ_CLIENT_UMP_INFO_ENDPOINT 0
+#define SNDRV_SEQ_CLIENT_UMP_INFO_BLOCK 1
+struct snd_seq_client_ump_info {
+  int client;
+  int type;
+  unsigned char info[512];
+} __attribute__((__packed__));
 #define SNDRV_SEQ_IOCTL_PVERSION _IOR('S', 0x00, int)
 #define SNDRV_SEQ_IOCTL_CLIENT_ID _IOR('S', 0x01, int)
 #define SNDRV_SEQ_IOCTL_SYSTEM_INFO _IOWR('S', 0x02, struct snd_seq_system_info)
 #define SNDRV_SEQ_IOCTL_RUNNING_MODE _IOWR('S', 0x03, struct snd_seq_running_info)
+#define SNDRV_SEQ_IOCTL_USER_PVERSION _IOW('S', 0x04, int)
 #define SNDRV_SEQ_IOCTL_GET_CLIENT_INFO _IOWR('S', 0x10, struct snd_seq_client_info)
 #define SNDRV_SEQ_IOCTL_SET_CLIENT_INFO _IOW('S', 0x11, struct snd_seq_client_info)
+#define SNDRV_SEQ_IOCTL_GET_CLIENT_UMP_INFO _IOWR('S', 0x12, struct snd_seq_client_ump_info)
+#define SNDRV_SEQ_IOCTL_SET_CLIENT_UMP_INFO _IOWR('S', 0x13, struct snd_seq_client_ump_info)
 #define SNDRV_SEQ_IOCTL_CREATE_PORT _IOWR('S', 0x20, struct snd_seq_port_info)
 #define SNDRV_SEQ_IOCTL_DELETE_PORT _IOW('S', 0x21, struct snd_seq_port_info)
 #define SNDRV_SEQ_IOCTL_GET_PORT_INFO _IOWR('S', 0x22, struct snd_seq_port_info)
diff --git a/libc/kernel/uapi/sound/asoc.h b/libc/kernel/uapi/sound/asoc.h
index 1940e5d..f7992cb 100644
--- a/libc/kernel/uapi/sound/asoc.h
+++ b/libc/kernel/uapi/sound/asoc.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __LINUX_UAPI_SND_ASOC_H
 #define __LINUX_UAPI_SND_ASOC_H
 #include <linux/types.h>
@@ -149,9 +137,9 @@
   __le32 type;
   __le32 num_elems;
   union {
-    struct snd_soc_tplg_vendor_uuid_elem uuid[0];
-    struct snd_soc_tplg_vendor_value_elem value[0];
-    struct snd_soc_tplg_vendor_string_elem string[0];
+    __DECLARE_FLEX_ARRAY(struct snd_soc_tplg_vendor_uuid_elem, uuid);
+    __DECLARE_FLEX_ARRAY(struct snd_soc_tplg_vendor_value_elem, value);
+    __DECLARE_FLEX_ARRAY(struct snd_soc_tplg_vendor_string_elem, string);
   };
 } __attribute__((packed));
 struct snd_soc_tplg_private {
@@ -348,48 +336,4 @@
   __le32 flags;
   struct snd_soc_tplg_private priv;
 } __attribute__((packed));
-struct snd_soc_tplg_manifest_v4 {
-  __le32 size;
-  __le32 control_elems;
-  __le32 widget_elems;
-  __le32 graph_elems;
-  __le32 pcm_elems;
-  __le32 dai_link_elems;
-  struct snd_soc_tplg_private priv;
-} __attribute__((__packed__));
-struct snd_soc_tplg_stream_caps_v4 {
-  __le32 size;
-  char name[SNDRV_CTL_ELEM_ID_NAME_MAXLEN];
-  __le64 formats;
-  __le32 rates;
-  __le32 rate_min;
-  __le32 rate_max;
-  __le32 channels_min;
-  __le32 channels_max;
-  __le32 periods_min;
-  __le32 periods_max;
-  __le32 period_size_min;
-  __le32 period_size_max;
-  __le32 buffer_size_min;
-  __le32 buffer_size_max;
-} __attribute__((__packed__));
-struct snd_soc_tplg_pcm_v4 {
-  __le32 size;
-  char pcm_name[SNDRV_CTL_ELEM_ID_NAME_MAXLEN];
-  char dai_name[SNDRV_CTL_ELEM_ID_NAME_MAXLEN];
-  __le32 pcm_id;
-  __le32 dai_id;
-  __le32 playback;
-  __le32 capture;
-  __le32 compress;
-  struct snd_soc_tplg_stream stream[SND_SOC_TPLG_STREAM_CONFIG_MAX];
-  __le32 num_streams;
-  struct snd_soc_tplg_stream_caps_v4 caps[2];
-} __attribute__((__packed__));
-struct snd_soc_tplg_link_config_v4 {
-  __le32 size;
-  __le32 id;
-  struct snd_soc_tplg_stream stream[SND_SOC_TPLG_STREAM_CONFIG_MAX];
-  __le32 num_streams;
-} __attribute__((__packed__));
 #endif
diff --git a/libc/kernel/uapi/sound/asound.h b/libc/kernel/uapi/sound/asound.h
index 9c1a3ae..cfe9f66 100644
--- a/libc/kernel/uapi/sound/asound.h
+++ b/libc/kernel/uapi/sound/asound.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI__SOUND_ASOUND_H
 #define _UAPI__SOUND_ASOUND_H
 #ifdef __linux__
@@ -104,7 +92,7 @@
 #define SNDRV_HWDEP_IOCTL_INFO _IOR('H', 0x01, struct snd_hwdep_info)
 #define SNDRV_HWDEP_IOCTL_DSP_STATUS _IOR('H', 0x02, struct snd_hwdep_dsp_status)
 #define SNDRV_HWDEP_IOCTL_DSP_LOAD _IOW('H', 0x03, struct snd_hwdep_dsp_image)
-#define SNDRV_PCM_VERSION SNDRV_PROTOCOL_VERSION(2, 0, 15)
+#define SNDRV_PCM_VERSION SNDRV_PROTOCOL_VERSION(2, 0, 18)
 typedef unsigned long snd_pcm_uframes_t;
 typedef signed long snd_pcm_sframes_t;
 enum {
@@ -213,12 +201,16 @@
 #endif
 typedef int __bitwise snd_pcm_subformat_t;
 #define SNDRV_PCM_SUBFORMAT_STD (( snd_pcm_subformat_t) 0)
-#define SNDRV_PCM_SUBFORMAT_LAST SNDRV_PCM_SUBFORMAT_STD
+#define SNDRV_PCM_SUBFORMAT_MSBITS_MAX (( snd_pcm_subformat_t) 1)
+#define SNDRV_PCM_SUBFORMAT_MSBITS_20 (( snd_pcm_subformat_t) 2)
+#define SNDRV_PCM_SUBFORMAT_MSBITS_24 (( snd_pcm_subformat_t) 3)
+#define SNDRV_PCM_SUBFORMAT_LAST SNDRV_PCM_SUBFORMAT_MSBITS_24
 #define SNDRV_PCM_INFO_MMAP 0x00000001
 #define SNDRV_PCM_INFO_MMAP_VALID 0x00000002
 #define SNDRV_PCM_INFO_DOUBLE 0x00000004
 #define SNDRV_PCM_INFO_BATCH 0x00000010
 #define SNDRV_PCM_INFO_SYNC_APPLPTR 0x00000020
+#define SNDRV_PCM_INFO_PERFECT_DRAIN 0x00000040
 #define SNDRV_PCM_INFO_INTERLEAVED 0x00000100
 #define SNDRV_PCM_INFO_NONINTERLEAVED 0x00000200
 #define SNDRV_PCM_INFO_COMPLEX 0x00000400
@@ -271,7 +263,7 @@
   unsigned char id[16];
   unsigned short id16[8];
   unsigned int id32[4];
-};
+} __attribute__((deprecated));
 struct snd_pcm_info {
   unsigned int device;
   unsigned int subdevice;
@@ -284,7 +276,7 @@
   int dev_subclass;
   unsigned int subdevices_count;
   unsigned int subdevices_avail;
-  union snd_pcm_sync_id sync;
+  unsigned char pad1[16];
   unsigned char reserved[64];
 };
 typedef int snd_pcm_hw_param_t;
@@ -310,6 +302,7 @@
 #define SNDRV_PCM_HW_PARAMS_NORESAMPLE (1 << 0)
 #define SNDRV_PCM_HW_PARAMS_EXPORT_BUFFER (1 << 1)
 #define SNDRV_PCM_HW_PARAMS_NO_PERIOD_WAKEUP (1 << 2)
+#define SNDRV_PCM_HW_PARAMS_NO_DRAIN_SILENCE (1 << 3)
 struct snd_interval {
   unsigned int min, max;
   unsigned int openmin : 1, openmax : 1, integer : 1, empty : 1;
@@ -331,7 +324,8 @@
   unsigned int rate_num;
   unsigned int rate_den;
   snd_pcm_uframes_t fifo_size;
-  unsigned char reserved[64];
+  unsigned char sync[16];
+  unsigned char reserved[48];
 };
 enum {
   SNDRV_PCM_TSTAMP_NONE = 0,
@@ -565,7 +559,7 @@
 #define SNDRV_PCM_IOCTL_READN_FRAMES _IOR('A', 0x53, struct snd_xfern)
 #define SNDRV_PCM_IOCTL_LINK _IOW('A', 0x60, int)
 #define SNDRV_PCM_IOCTL_UNLINK _IO('A', 0x61)
-#define SNDRV_RAWMIDI_VERSION SNDRV_PROTOCOL_VERSION(2, 0, 2)
+#define SNDRV_RAWMIDI_VERSION SNDRV_PROTOCOL_VERSION(2, 0, 4)
 enum {
   SNDRV_RAWMIDI_STREAM_OUTPUT = 0,
   SNDRV_RAWMIDI_STREAM_INPUT,
@@ -574,6 +568,7 @@
 #define SNDRV_RAWMIDI_INFO_OUTPUT 0x00000001
 #define SNDRV_RAWMIDI_INFO_INPUT 0x00000002
 #define SNDRV_RAWMIDI_INFO_DUPLEX 0x00000004
+#define SNDRV_RAWMIDI_INFO_UMP 0x00000008
 struct snd_rawmidi_info {
   unsigned int device;
   unsigned int subdevice;
@@ -622,6 +617,56 @@
   size_t xruns;
   unsigned char reserved[16];
 };
+#define SNDRV_UMP_EP_INFO_STATIC_BLOCKS 0x01
+#define SNDRV_UMP_EP_INFO_PROTO_MIDI_MASK 0x0300
+#define SNDRV_UMP_EP_INFO_PROTO_MIDI1 0x0100
+#define SNDRV_UMP_EP_INFO_PROTO_MIDI2 0x0200
+#define SNDRV_UMP_EP_INFO_PROTO_JRTS_MASK 0x0003
+#define SNDRV_UMP_EP_INFO_PROTO_JRTS_TX 0x0001
+#define SNDRV_UMP_EP_INFO_PROTO_JRTS_RX 0x0002
+struct snd_ump_endpoint_info {
+  int card;
+  int device;
+  unsigned int flags;
+  unsigned int protocol_caps;
+  unsigned int protocol;
+  unsigned int num_blocks;
+  unsigned short version;
+  unsigned short family_id;
+  unsigned short model_id;
+  unsigned int manufacturer_id;
+  unsigned char sw_revision[4];
+  unsigned short padding;
+  unsigned char name[128];
+  unsigned char product_id[128];
+  unsigned char reserved[32];
+} __attribute__((__packed__));
+#define SNDRV_UMP_DIR_INPUT 0x01
+#define SNDRV_UMP_DIR_OUTPUT 0x02
+#define SNDRV_UMP_DIR_BIDIRECTION 0x03
+#define SNDRV_UMP_BLOCK_IS_MIDI1 (1U << 0)
+#define SNDRV_UMP_BLOCK_IS_LOWSPEED (1U << 1)
+#define SNDRV_UMP_BLOCK_UI_HINT_UNKNOWN 0x00
+#define SNDRV_UMP_BLOCK_UI_HINT_RECEIVER 0x01
+#define SNDRV_UMP_BLOCK_UI_HINT_SENDER 0x02
+#define SNDRV_UMP_BLOCK_UI_HINT_BOTH 0x03
+#define SNDRV_UMP_MAX_GROUPS 16
+#define SNDRV_UMP_MAX_BLOCKS 32
+struct snd_ump_block_info {
+  int card;
+  int device;
+  unsigned char block_id;
+  unsigned char direction;
+  unsigned char active;
+  unsigned char first_group;
+  unsigned char num_groups;
+  unsigned char midi_ci_version;
+  unsigned char sysex8_streams;
+  unsigned char ui_hint;
+  unsigned int flags;
+  unsigned char name[128];
+  unsigned char reserved[32];
+} __attribute__((__packed__));
 #define SNDRV_RAWMIDI_IOCTL_PVERSION _IOR('W', 0x00, int)
 #define SNDRV_RAWMIDI_IOCTL_INFO _IOR('W', 0x01, struct snd_rawmidi_info)
 #define SNDRV_RAWMIDI_IOCTL_USER_PVERSION _IOW('W', 0x02, int)
@@ -629,6 +674,8 @@
 #define SNDRV_RAWMIDI_IOCTL_STATUS _IOWR('W', 0x20, struct snd_rawmidi_status)
 #define SNDRV_RAWMIDI_IOCTL_DROP _IOW('W', 0x30, int)
 #define SNDRV_RAWMIDI_IOCTL_DRAIN _IOW('W', 0x31, int)
+#define SNDRV_UMP_IOCTL_ENDPOINT_INFO _IOR('W', 0x40, struct snd_ump_endpoint_info)
+#define SNDRV_UMP_IOCTL_BLOCK_INFO _IOR('W', 0x41, struct snd_ump_block_info)
 #define SNDRV_TIMER_VERSION SNDRV_PROTOCOL_VERSION(2, 0, 7)
 enum {
   SNDRV_TIMER_CLASS_NONE = - 1,
@@ -763,7 +810,7 @@
   unsigned int val;
   __time_pad pad2;
 };
-#define SNDRV_CTL_VERSION SNDRV_PROTOCOL_VERSION(2, 0, 8)
+#define SNDRV_CTL_VERSION SNDRV_PROTOCOL_VERSION(2, 0, 9)
 struct snd_ctl_card_info {
   int card;
   int pad;
@@ -909,6 +956,9 @@
 #define SNDRV_CTL_IOCTL_RAWMIDI_NEXT_DEVICE _IOWR('U', 0x40, int)
 #define SNDRV_CTL_IOCTL_RAWMIDI_INFO _IOWR('U', 0x41, struct snd_rawmidi_info)
 #define SNDRV_CTL_IOCTL_RAWMIDI_PREFER_SUBDEVICE _IOW('U', 0x42, int)
+#define SNDRV_CTL_IOCTL_UMP_NEXT_DEVICE _IOWR('U', 0x43, int)
+#define SNDRV_CTL_IOCTL_UMP_ENDPOINT_INFO _IOWR('U', 0x44, struct snd_ump_endpoint_info)
+#define SNDRV_CTL_IOCTL_UMP_BLOCK_INFO _IOWR('U', 0x45, struct snd_ump_block_info)
 #define SNDRV_CTL_IOCTL_POWER _IOWR('U', 0xd0, int)
 #define SNDRV_CTL_IOCTL_POWER_STATE _IOR('U', 0xd1, int)
 enum sndrv_ctl_event_type {
diff --git a/libc/kernel/uapi/sound/asound_fm.h b/libc/kernel/uapi/sound/asound_fm.h
index 03909ae..2c2c833 100644
--- a/libc/kernel/uapi/sound/asound_fm.h
+++ b/libc/kernel/uapi/sound/asound_fm.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __SOUND_ASOUND_FM_H
 #define __SOUND_ASOUND_FM_H
 #define SNDRV_DM_FM_MODE_OPL2 0x00
diff --git a/libc/kernel/uapi/sound/compress_offload.h b/libc/kernel/uapi/sound/compress_offload.h
index 60688bc..db72c29 100644
--- a/libc/kernel/uapi/sound/compress_offload.h
+++ b/libc/kernel/uapi/sound/compress_offload.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __COMPRESS_OFFLOAD_H
 #define __COMPRESS_OFFLOAD_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/sound/compress_params.h b/libc/kernel/uapi/sound/compress_params.h
index ee6c000..800f8f9 100644
--- a/libc/kernel/uapi/sound/compress_params.h
+++ b/libc/kernel/uapi/sound/compress_params.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __SND_COMPRESS_PARAMS_H
 #define __SND_COMPRESS_PARAMS_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/sound/emu10k1.h b/libc/kernel/uapi/sound/emu10k1.h
index 483309e..9b1fab6 100644
--- a/libc/kernel/uapi/sound/emu10k1.h
+++ b/libc/kernel/uapi/sound/emu10k1.h
@@ -1,28 +1,14 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI__SOUND_EMU10K1_H
 #define _UAPI__SOUND_EMU10K1_H
 #ifdef __linux__
 #include <linux/types.h>
 #endif
-#define EMU10K1_CARD_CREATIVE 0x00000000
-#define EMU10K1_CARD_EMUAPS 0x00000001
 #define EMU10K1_FX8010_PCM_COUNT 8
 #define __EMU10K1_DECLARE_BITMAP(name,bits) unsigned long name[(bits) / (sizeof(unsigned long) * 8)]
 #define iMAC0 0x00
@@ -41,10 +27,29 @@
 #define iEXP 0x0d
 #define iINTERP 0x0e
 #define iSKIP 0x0f
+#define LOWORD_OPX_MASK 0x000ffc00
+#define LOWORD_OPY_MASK 0x000003ff
+#define HIWORD_OPCODE_MASK 0x00f00000
+#define HIWORD_RESULT_MASK 0x000ffc00
+#define HIWORD_OPA_MASK 0x000003ff
+#define A_LOWORD_OPX_MASK 0x007ff000
+#define A_LOWORD_OPY_MASK 0x000007ff
+#define A_HIWORD_OPCODE_MASK 0x0f000000
+#define A_HIWORD_RESULT_MASK 0x007ff000
+#define A_HIWORD_OPA_MASK 0x000007ff
 #define FXBUS(x) (0x00 + (x))
 #define EXTIN(x) (0x10 + (x))
 #define EXTOUT(x) (0x20 + (x))
 #define FXBUS2(x) (0x30 + (x))
+#define A_FXBUS(x) (0x00 + (x))
+#define A_EXTIN(x) (0x40 + (x))
+#define A_P16VIN(x) (0x50 + (x))
+#define A_EXTOUT(x) (0x60 + (x))
+#define A_FXBUS2(x) (0x80 + (x))
+#define A_EMU32OUTH(x) (0xa0 + (x))
+#define A_EMU32OUTL(x) (0xb0 + (x))
+#define A3_EMU32IN(x) (0x160 + (x))
+#define A3_EMU32OUT(x) (0x1E0 + (x))
 #define C_00000000 0x40
 #define C_00000001 0x41
 #define C_00000002 0x42
@@ -73,33 +78,71 @@
 #define GPR_NOISE1 0x59
 #define GPR_IRQ 0x5a
 #define GPR_DBAC 0x5b
+#define A_C_00000000 0xc0
+#define A_C_00000001 0xc1
+#define A_C_00000002 0xc2
+#define A_C_00000003 0xc3
+#define A_C_00000004 0xc4
+#define A_C_00000008 0xc5
+#define A_C_00000010 0xc6
+#define A_C_00000020 0xc7
+#define A_C_00000100 0xc8
+#define A_C_00010000 0xc9
+#define A_C_00000800 0xca
+#define A_C_10000000 0xcb
+#define A_C_20000000 0xcc
+#define A_C_40000000 0xcd
+#define A_C_80000000 0xce
+#define A_C_7fffffff 0xcf
+#define A_C_ffffffff 0xd0
+#define A_C_fffffffe 0xd1
+#define A_C_c0000000 0xd2
+#define A_C_4f1bbcdc 0xd3
+#define A_C_5a7ef9db 0xd4
+#define A_C_00100000 0xd5
+#define A_GPR_ACCU 0xd6
+#define A_GPR_COND 0xd7
+#define A_GPR_NOISE0 0xd8
+#define A_GPR_NOISE1 0xd9
+#define A_GPR_IRQ 0xda
+#define A_GPR_DBAC 0xdb
+#define A_GPR_DBACE 0xde
+#define FXGPREGBASE 0x100
+#define A_FXGPREGBASE 0x400
+#define A_TANKMEMCTLREGBASE 0x100
+#define A_TANKMEMCTLREG_MASK 0x1f
+#define TANKMEMDATAREGBASE 0x200
+#define TANKMEMDATAREG_MASK 0x000fffff
+#define TANKMEMADDRREGBASE 0x300
+#define TANKMEMADDRREG_ADDR_MASK 0x000fffff
+#define TANKMEMADDRREG_CLEAR 0x00800000
+#define TANKMEMADDRREG_ALIGN 0x00400000
+#define TANKMEMADDRREG_WRITE 0x00200000
+#define TANKMEMADDRREG_READ 0x00100000
 #define GPR(x) (FXGPREGBASE + (x))
 #define ITRAM_DATA(x) (TANKMEMDATAREGBASE + 0x00 + (x))
 #define ETRAM_DATA(x) (TANKMEMDATAREGBASE + 0x80 + (x))
 #define ITRAM_ADDR(x) (TANKMEMADDRREGBASE + 0x00 + (x))
 #define ETRAM_ADDR(x) (TANKMEMADDRREGBASE + 0x80 + (x))
+#define A_GPR(x) (A_FXGPREGBASE + (x))
 #define A_ITRAM_DATA(x) (TANKMEMDATAREGBASE + 0x00 + (x))
 #define A_ETRAM_DATA(x) (TANKMEMDATAREGBASE + 0xc0 + (x))
 #define A_ITRAM_ADDR(x) (TANKMEMADDRREGBASE + 0x00 + (x))
 #define A_ETRAM_ADDR(x) (TANKMEMADDRREGBASE + 0xc0 + (x))
 #define A_ITRAM_CTL(x) (A_TANKMEMCTLREGBASE + 0x00 + (x))
 #define A_ETRAM_CTL(x) (A_TANKMEMCTLREGBASE + 0xc0 + (x))
-#define A_FXBUS(x) (0x00 + (x))
-#define A_EXTIN(x) (0x40 + (x))
-#define A_P16VIN(x) (0x50 + (x))
-#define A_EXTOUT(x) (0x60 + (x))
-#define A_FXBUS2(x) (0x80 + (x))
-#define A_EMU32OUTH(x) (0xa0 + (x))
-#define A_EMU32OUTL(x) (0xb0 + (x))
-#define A3_EMU32IN(x) (0x160 + (x))
-#define A3_EMU32OUT(x) (0x1E0 + (x))
-#define A_GPR(x) (A_FXGPREGBASE + (x))
 #define CC_REG_NORMALIZED C_00000001
 #define CC_REG_BORROW C_00000002
 #define CC_REG_MINUS C_00000004
 #define CC_REG_ZERO C_00000008
 #define CC_REG_SATURATE C_00000010
 #define CC_REG_NONZERO C_00000100
+#define A_CC_REG_NORMALIZED A_C_00000001
+#define A_CC_REG_BORROW A_C_00000002
+#define A_CC_REG_MINUS A_C_00000004
+#define A_CC_REG_ZERO A_C_00000008
+#define A_CC_REG_SATURATE A_C_00000010
+#define A_CC_REG_NONZERO A_C_00000100
 #define FXBUS_PCM_LEFT 0x00
 #define FXBUS_PCM_RIGHT 0x01
 #define FXBUS_PCM_LEFT_REAR 0x02
@@ -180,35 +223,6 @@
 #define A_EXTOUT_ADC_CAP_L 0x16
 #define A_EXTOUT_ADC_CAP_R 0x17
 #define A_EXTOUT_MIC_CAP 0x18
-#define A_C_00000000 0xc0
-#define A_C_00000001 0xc1
-#define A_C_00000002 0xc2
-#define A_C_00000003 0xc3
-#define A_C_00000004 0xc4
-#define A_C_00000008 0xc5
-#define A_C_00000010 0xc6
-#define A_C_00000020 0xc7
-#define A_C_00000100 0xc8
-#define A_C_00010000 0xc9
-#define A_C_00000800 0xca
-#define A_C_10000000 0xcb
-#define A_C_20000000 0xcc
-#define A_C_40000000 0xcd
-#define A_C_80000000 0xce
-#define A_C_7fffffff 0xcf
-#define A_C_ffffffff 0xd0
-#define A_C_fffffffe 0xd1
-#define A_C_c0000000 0xd2
-#define A_C_4f1bbcdc 0xd3
-#define A_C_5a7ef9db 0xd4
-#define A_C_00100000 0xd5
-#define A_GPR_ACCU 0xd6
-#define A_GPR_COND 0xd7
-#define A_GPR_NOISE0 0xd8
-#define A_GPR_NOISE1 0xd9
-#define A_GPR_IRQ 0xda
-#define A_GPR_DBAC 0xdb
-#define A_GPR_DBACE 0xde
 #define EMU10K1_DBG_ZC 0x80000000
 #define EMU10K1_DBG_SATURATION_OCCURED 0x02000000
 #define EMU10K1_DBG_SATURATION_ADDR 0x01ff0000
@@ -216,11 +230,13 @@
 #define EMU10K1_DBG_STEP 0x00004000
 #define EMU10K1_DBG_CONDITION_CODE 0x00003e00
 #define EMU10K1_DBG_SINGLE_STEP_ADDR 0x000001ff
-#define TANKMEMADDRREG_ADDR_MASK 0x000fffff
-#define TANKMEMADDRREG_CLEAR 0x00800000
-#define TANKMEMADDRREG_ALIGN 0x00400000
-#define TANKMEMADDRREG_WRITE 0x00200000
-#define TANKMEMADDRREG_READ 0x00100000
+#define A_DBG_ZC 0x40000000
+#define A_DBG_SATURATION_OCCURED 0x20000000
+#define A_DBG_SATURATION_ADDR 0x0ffc0000
+#define A_DBG_SINGLE_STEP 0x00020000
+#define A_DBG_STEP 0x00010000
+#define A_DBG_CONDITION_CODE 0x0000f800
+#define A_DBG_STEP_ADDR 0x000003ff
 struct snd_emu10k1_fx8010_info {
   unsigned int internal_tram_size;
   unsigned int external_tram_size;
@@ -234,6 +250,8 @@
 #define EMU10K1_GPR_TRANSLATION_BASS 2
 #define EMU10K1_GPR_TRANSLATION_TREBLE 3
 #define EMU10K1_GPR_TRANSLATION_ONOFF 4
+#define EMU10K1_GPR_TRANSLATION_NEGATE 5
+#define EMU10K1_GPR_TRANSLATION_NEG_TABLE100 6
 enum emu10k1_ctl_elem_iface {
   EMU10K1_CTL_ELEM_IFACE_MIXER = 2,
   EMU10K1_CTL_ELEM_IFACE_PCM = 3,
@@ -251,9 +269,9 @@
   unsigned int vcount;
   unsigned int count;
   unsigned short gpr[32];
-  unsigned int value[32];
-  unsigned int min;
-  unsigned int max;
+  int value[32];
+  int min;
+  int max;
   unsigned int translation;
   const unsigned int * tlv;
 };
diff --git a/libc/kernel/uapi/sound/firewire.h b/libc/kernel/uapi/sound/firewire.h
index d26d722..99cf3d4 100644
--- a/libc/kernel/uapi/sound/firewire.h
+++ b/libc/kernel/uapi/sound/firewire.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_SOUND_FIREWIRE_H_INCLUDED
 #define _UAPI_SOUND_FIREWIRE_H_INCLUDED
 #include <linux/ioctl.h>
@@ -27,6 +15,7 @@
 #define SNDRV_FIREWIRE_EVENT_MOTU_NOTIFICATION 0x64776479
 #define SNDRV_FIREWIRE_EVENT_TASCAM_CONTROL 0x7473636d
 #define SNDRV_FIREWIRE_EVENT_MOTU_REGISTER_DSP_CHANGE 0x4d545244
+#define SNDRV_FIREWIRE_EVENT_FF400_MESSAGE 0x4f6c6761
 struct snd_firewire_event_common {
   unsigned int type;
 };
@@ -74,6 +63,14 @@
   __u32 count;
   __u32 changes[];
 };
+struct snd_firewire_event_ff400_message {
+  unsigned int type;
+  unsigned int message_count;
+  struct {
+    __u32 message;
+    __u32 tstamp;
+  } messages[];
+};
 union snd_firewire_event {
   struct snd_firewire_event_common common;
   struct snd_firewire_event_lock_status lock_status;
@@ -83,6 +80,7 @@
   struct snd_firewire_event_tascam_control tascam_control;
   struct snd_firewire_event_motu_notification motu_notification;
   struct snd_firewire_event_motu_register_dsp_change motu_register_dsp_change;
+  struct snd_firewire_event_ff400_message ff400_message;
 };
 #define SNDRV_FIREWIRE_IOCTL_GET_INFO _IOR('H', 0xf8, struct snd_firewire_get_info)
 #define SNDRV_FIREWIRE_IOCTL_LOCK _IO('H', 0xf9)
diff --git a/libc/kernel/uapi/sound/hdsp.h b/libc/kernel/uapi/sound/hdsp.h
index 2fec371..6a673d4 100644
--- a/libc/kernel/uapi/sound/hdsp.h
+++ b/libc/kernel/uapi/sound/hdsp.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __SOUND_HDSP_H
 #define __SOUND_HDSP_H
 #ifdef __linux__
diff --git a/libc/kernel/uapi/sound/hdspm.h b/libc/kernel/uapi/sound/hdspm.h
index bd28e8c..546f466 100644
--- a/libc/kernel/uapi/sound/hdspm.h
+++ b/libc/kernel/uapi/sound/hdspm.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __SOUND_HDSPM_H
 #define __SOUND_HDSPM_H
 #ifdef __linux__
diff --git a/libc/kernel/uapi/sound/intel/avs/tokens.h b/libc/kernel/uapi/sound/intel/avs/tokens.h
index b6b3002..01b20a5 100644
--- a/libc/kernel/uapi/sound/intel/avs/tokens.h
+++ b/libc/kernel/uapi/sound/intel/avs/tokens.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __UAPI_SOUND_INTEL_AVS_TOKENS_H
 #define __UAPI_SOUND_INTEL_AVS_TOKENS_H
 enum avs_tplg_token {
@@ -27,6 +15,8 @@
   AVS_TKN_MANIFEST_NUM_MODCFGS_EXT_U32 = 6,
   AVS_TKN_MANIFEST_NUM_PPLCFGS_U32 = 7,
   AVS_TKN_MANIFEST_NUM_BINDINGS_U32 = 8,
+  AVS_TKN_MANIFEST_NUM_CONDPATH_TMPLS_U32 = 9,
+  AVS_TKN_MANIFEST_NUM_INIT_CONFIGS_U32 = 10,
   AVS_TKN_LIBRARY_ID_U32 = 101,
   AVS_TKN_LIBRARY_NAME_STRING = 102,
   AVS_TKN_AFMT_ID_U32 = 201,
@@ -100,6 +90,9 @@
   AVS_TKN_MOD_CORE_ID_U8 = 1704,
   AVS_TKN_MOD_PROC_DOMAIN_U8 = 1705,
   AVS_TKN_MOD_MODCFG_EXT_ID_U32 = 1706,
+  AVS_TKN_MOD_KCONTROL_ID_U32 = 1707,
+  AVS_TKN_MOD_INIT_CONFIG_NUM_IDS_U32 = 1708,
+  AVS_TKN_MOD_INIT_CONFIG_ID_U32 = 1709,
   AVS_TKN_PATH_TMPL_ID_U32 = 1801,
   AVS_TKN_PATH_ID_U32 = 1901,
   AVS_TKN_PATH_FE_FMT_ID_U32 = 1902,
@@ -107,5 +100,9 @@
   AVS_TKN_PIN_FMT_INDEX_U32 = 2201,
   AVS_TKN_PIN_FMT_IOBS_U32 = 2202,
   AVS_TKN_PIN_FMT_AFMT_ID_U32 = 2203,
+  AVS_TKN_KCONTROL_ID_U32 = 2301,
+  AVS_TKN_INIT_CONFIG_ID_U32 = 2401,
+  AVS_TKN_INIT_CONFIG_PARAM_U8 = 2402,
+  AVS_TKN_INIT_CONFIG_LENGTH_U32 = 2403,
 };
 #endif
diff --git a/libc/kernel/uapi/sound/sb16_csp.h b/libc/kernel/uapi/sound/sb16_csp.h
index 31f7064..5082a5e 100644
--- a/libc/kernel/uapi/sound/sb16_csp.h
+++ b/libc/kernel/uapi/sound/sb16_csp.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI__SOUND_SB16_CSP_H
 #define _UAPI__SOUND_SB16_CSP_H
 #define SNDRV_SB_CSP_MODE_NONE 0x00
diff --git a/libc/kernel/uapi/sound/scarlett2.h b/libc/kernel/uapi/sound/scarlett2.h
new file mode 100644
index 0000000..13e6abe
--- /dev/null
+++ b/libc/kernel/uapi/sound/scarlett2.h
@@ -0,0 +1,30 @@
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
+#ifndef __UAPI_SOUND_SCARLETT2_H
+#define __UAPI_SOUND_SCARLETT2_H
+#include <linux/types.h>
+#include <linux/ioctl.h>
+#define SCARLETT2_HWDEP_MAJOR 1
+#define SCARLETT2_HWDEP_MINOR 0
+#define SCARLETT2_HWDEP_SUBMINOR 0
+#define SCARLETT2_HWDEP_VERSION ((SCARLETT2_HWDEP_MAJOR << 16) | (SCARLETT2_HWDEP_MINOR << 8) | SCARLETT2_HWDEP_SUBMINOR)
+#define SCARLETT2_HWDEP_VERSION_MAJOR(v) (((v) >> 16) & 0xFF)
+#define SCARLETT2_HWDEP_VERSION_MINOR(v) (((v) >> 8) & 0xFF)
+#define SCARLETT2_HWDEP_VERSION_SUBMINOR(v) ((v) & 0xFF)
+#define SCARLETT2_IOCTL_PVERSION _IOR('S', 0x60, int)
+#define SCARLETT2_IOCTL_REBOOT _IO('S', 0x61)
+#define SCARLETT2_SEGMENT_ID_SETTINGS 0
+#define SCARLETT2_SEGMENT_ID_FIRMWARE 1
+#define SCARLETT2_SEGMENT_ID_COUNT 2
+#define SCARLETT2_IOCTL_SELECT_FLASH_SEGMENT _IOW('S', 0x62, int)
+#define SCARLETT2_IOCTL_ERASE_FLASH_SEGMENT _IO('S', 0x63)
+struct scarlett2_flash_segment_erase_progress {
+  unsigned char progress;
+  unsigned char num_blocks;
+};
+#define SCARLETT2_IOCTL_GET_ERASE_PROGRESS _IOR('S', 0x64, struct scarlett2_flash_segment_erase_progress)
+#endif
diff --git a/libc/kernel/uapi/sound/sfnt_info.h b/libc/kernel/uapi/sound/sfnt_info.h
index 87e1738..accdfd2 100644
--- a/libc/kernel/uapi/sound/sfnt_info.h
+++ b/libc/kernel/uapi/sound/sfnt_info.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __SOUND_SFNT_INFO_H
 #define __SOUND_SFNT_INFO_H
 #include <sound/asound.h>
diff --git a/libc/kernel/uapi/sound/skl-tplg-interface.h b/libc/kernel/uapi/sound/skl-tplg-interface.h
index 6dd9655..d613c7f 100644
--- a/libc/kernel/uapi/sound/skl-tplg-interface.h
+++ b/libc/kernel/uapi/sound/skl-tplg-interface.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __HDA_TPLG_INTERFACE_H__
 #define __HDA_TPLG_INTERFACE_H__
 #include <linux/types.h>
@@ -47,7 +35,8 @@
   SKL_CH_CFG_DUAL_MONO = 9,
   SKL_CH_CFG_I2S_DUAL_STEREO_0 = 10,
   SKL_CH_CFG_I2S_DUAL_STEREO_1 = 11,
-  SKL_CH_CFG_4_CHANNEL = 12,
+  SKL_CH_CFG_7_1 = 12,
+  SKL_CH_CFG_4_CHANNEL = SKL_CH_CFG_7_1,
   SKL_CH_CFG_INVALID
 };
 enum skl_module_type {
@@ -120,66 +109,4 @@
   SKL_TYPE_TUPLE,
   SKL_TYPE_DATA
 };
-struct skl_dfw_v4_module_pin {
-  __u16 module_id;
-  __u16 instance_id;
-} __attribute__((__packed__));
-struct skl_dfw_v4_module_fmt {
-  __u32 channels;
-  __u32 freq;
-  __u32 bit_depth;
-  __u32 valid_bit_depth;
-  __u32 ch_cfg;
-  __u32 interleaving_style;
-  __u32 sample_type;
-  __u32 ch_map;
-} __attribute__((__packed__));
-struct skl_dfw_v4_module_caps {
-  __u32 set_params : 2;
-  __u32 rsvd : 30;
-  __u32 param_id;
-  __u32 caps_size;
-  __u32 caps[HDA_SST_CFG_MAX];
-} __attribute__((__packed__));
-struct skl_dfw_v4_pipe {
-  __u8 pipe_id;
-  __u8 pipe_priority;
-  __u16 conn_type : 4;
-  __u16 rsvd : 4;
-  __u16 memory_pages : 8;
-} __attribute__((__packed__));
-struct skl_dfw_v4_module {
-  char uuid[SKL_UUID_STR_SZ];
-  __u16 module_id;
-  __u16 instance_id;
-  __u32 max_mcps;
-  __u32 mem_pages;
-  __u32 obs;
-  __u32 ibs;
-  __u32 vbus_id;
-  __u32 max_in_queue : 8;
-  __u32 max_out_queue : 8;
-  __u32 time_slot : 8;
-  __u32 core_id : 4;
-  __u32 rsvd1 : 4;
-  __u32 module_type : 8;
-  __u32 conn_type : 4;
-  __u32 dev_type : 4;
-  __u32 hw_conn_type : 4;
-  __u32 rsvd2 : 12;
-  __u32 params_fixup : 8;
-  __u32 converter : 8;
-  __u32 input_pin_type : 1;
-  __u32 output_pin_type : 1;
-  __u32 is_dynamic_in_pin : 1;
-  __u32 is_dynamic_out_pin : 1;
-  __u32 is_loadable : 1;
-  __u32 rsvd3 : 11;
-  struct skl_dfw_v4_pipe pipe;
-  struct skl_dfw_v4_module_fmt in_fmt[MAX_IN_QUEUE];
-  struct skl_dfw_v4_module_fmt out_fmt[MAX_OUT_QUEUE];
-  struct skl_dfw_v4_module_pin in_pin[MAX_IN_QUEUE];
-  struct skl_dfw_v4_module_pin out_pin[MAX_OUT_QUEUE];
-  struct skl_dfw_v4_module_caps caps;
-} __attribute__((__packed__));
 #endif
diff --git a/libc/kernel/uapi/sound/snd_ar_tokens.h b/libc/kernel/uapi/sound/snd_ar_tokens.h
index 7b87caa..57d2886 100644
--- a/libc/kernel/uapi/sound/snd_ar_tokens.h
+++ b/libc/kernel/uapi/sound/snd_ar_tokens.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __SND_AR_TOKENS_H__
 #define __SND_AR_TOKENS_H__
 #define APM_SUB_GRAPH_PERF_MODE_LOW_POWER 0x1
diff --git a/libc/kernel/uapi/sound/snd_sst_tokens.h b/libc/kernel/uapi/sound/snd_sst_tokens.h
index bf012fa..1f49810 100644
--- a/libc/kernel/uapi/sound/snd_sst_tokens.h
+++ b/libc/kernel/uapi/sound/snd_sst_tokens.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __SND_SST_TOKENS_H__
 #define __SND_SST_TOKENS_H__
 enum SKL_TKNS {
diff --git a/libc/kernel/uapi/sound/sof/abi.h b/libc/kernel/uapi/sound/sof/abi.h
index dc4e525..ed66131 100644
--- a/libc/kernel/uapi/sound/sof/abi.h
+++ b/libc/kernel/uapi/sound/sof/abi.h
@@ -1,27 +1,15 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __INCLUDE_UAPI_SOUND_SOF_ABI_H__
 #define __INCLUDE_UAPI_SOUND_SOF_ABI_H__
 #include <linux/types.h>
 #define SOF_ABI_MAJOR 3
 #define SOF_ABI_MINOR 23
-#define SOF_ABI_PATCH 0
+#define SOF_ABI_PATCH 1
 #define SOF_ABI_MAJOR_SHIFT 24
 #define SOF_ABI_MAJOR_MASK 0xff
 #define SOF_ABI_MINOR_SHIFT 12
@@ -35,4 +23,5 @@
 #define SOF_ABI_VERSION_INCOMPATIBLE(sof_ver,client_ver) (SOF_ABI_VERSION_MAJOR((sof_ver)) != SOF_ABI_VERSION_MAJOR((client_ver)))
 #define SOF_ABI_VERSION SOF_ABI_VER(SOF_ABI_MAJOR, SOF_ABI_MINOR, SOF_ABI_PATCH)
 #define SOF_ABI_MAGIC 0x00464F53
+#define SOF_IPC4_ABI_MAGIC 0x34464F53
 #endif
diff --git a/libc/kernel/uapi/sound/sof/fw.h b/libc/kernel/uapi/sound/sof/fw.h
index 97b7de3..3d94024 100644
--- a/libc/kernel/uapi/sound/sof/fw.h
+++ b/libc/kernel/uapi/sound/sof/fw.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __INCLUDE_UAPI_SOF_FW_H__
 #define __INCLUDE_UAPI_SOF_FW_H__
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/sound/sof/header.h b/libc/kernel/uapi/sound/sof/header.h
index 7514550..56bad86 100644
--- a/libc/kernel/uapi/sound/sof/header.h
+++ b/libc/kernel/uapi/sound/sof/header.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __INCLUDE_UAPI_SOUND_SOF_USER_HEADER_H__
 #define __INCLUDE_UAPI_SOUND_SOF_USER_HEADER_H__
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/sound/sof/tokens.h b/libc/kernel/uapi/sound/sof/tokens.h
index 3726546..c4257d9 100644
--- a/libc/kernel/uapi/sound/sof/tokens.h
+++ b/libc/kernel/uapi/sound/sof/tokens.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __INCLUDE_UAPI_SOF_TOPOLOGY_H__
 #define __INCLUDE_UAPI_SOF_TOPOLOGY_H__
 #define SOF_TPLG_KCTL_VOL_ID 256
@@ -27,6 +15,7 @@
 #define SOF_TPLG_KCTL_BYTES_WO_ID 262
 #define SOF_TKN_BUF_SIZE 100
 #define SOF_TKN_BUF_CAPS 101
+#define SOF_TKN_BUF_FLAGS 102
 #define SOF_TKN_DAI_TYPE 154
 #define SOF_TKN_DAI_INDEX 155
 #define SOF_TKN_DAI_DIRECTION 156
@@ -39,6 +28,7 @@
 #define SOF_TKN_SCHED_DYNAMIC_PIPELINE 206
 #define SOF_TKN_SCHED_LP_MODE 207
 #define SOF_TKN_SCHED_MEM_USAGE 208
+#define SOF_TKN_SCHED_USE_CHAIN_DMA 209
 #define SOF_TKN_VOLUME_RAMP_STEP_TYPE 250
 #define SOF_TKN_VOLUME_RAMP_STEP_MS 251
 #define SOF_TKN_GAIN_RAMP_TYPE 260
@@ -59,10 +49,13 @@
 #define SOF_TKN_COMP_CPC 406
 #define SOF_TKN_COMP_IS_PAGES 409
 #define SOF_TKN_COMP_NUM_AUDIO_FORMATS 410
-#define SOF_TKN_COMP_NUM_SINK_PINS 411
-#define SOF_TKN_COMP_NUM_SOURCE_PINS 412
-#define SOF_TKN_COMP_SINK_PIN_BINDING_WNAME 413
-#define SOF_TKN_COMP_SRC_PIN_BINDING_WNAME 414
+#define SOF_TKN_COMP_NUM_INPUT_PINS 411
+#define SOF_TKN_COMP_NUM_OUTPUT_PINS 412
+#define SOF_TKN_COMP_INPUT_PIN_BINDING_WNAME 413
+#define SOF_TKN_COMP_OUTPUT_PIN_BINDING_WNAME 414
+#define SOF_TKN_COMP_NUM_INPUT_AUDIO_FORMATS 415
+#define SOF_TKN_COMP_NUM_OUTPUT_AUDIO_FORMATS 416
+#define SOF_TKN_COMP_NO_WNAME_IN_KCONTROL_NAME 417
 #define SOF_TKN_INTEL_SSP_CLKS_CONTROL 500
 #define SOF_TKN_INTEL_SSP_MCLK_ID 501
 #define SOF_TKN_INTEL_SSP_SAMPLE_BITS 502
@@ -107,27 +100,34 @@
 #define SOF_TKN_AMD_ACPDMIC_CH 1801
 #define SOF_TKN_CAVS_AUDIO_FORMAT_IN_RATE 1900
 #define SOF_TKN_CAVS_AUDIO_FORMAT_IN_BIT_DEPTH 1901
-#define SOF_TKN_CAVS_AUDIO_FORMAT_IN_VALID_BIT 1902
+#define SOF_TKN_CAVS_AUDIO_FORMAT_IN_VALID_BIT_DEPTH 1902
 #define SOF_TKN_CAVS_AUDIO_FORMAT_IN_CHANNELS 1903
 #define SOF_TKN_CAVS_AUDIO_FORMAT_IN_CH_MAP 1904
 #define SOF_TKN_CAVS_AUDIO_FORMAT_IN_CH_CFG 1905
 #define SOF_TKN_CAVS_AUDIO_FORMAT_IN_INTERLEAVING_STYLE 1906
 #define SOF_TKN_CAVS_AUDIO_FORMAT_IN_FMT_CFG 1907
 #define SOF_TKN_CAVS_AUDIO_FORMAT_IN_SAMPLE_TYPE 1908
+#define SOF_TKN_CAVS_AUDIO_FORMAT_INPUT_PIN_INDEX 1909
 #define SOF_TKN_CAVS_AUDIO_FORMAT_OUT_RATE 1930
 #define SOF_TKN_CAVS_AUDIO_FORMAT_OUT_BIT_DEPTH 1931
-#define SOF_TKN_CAVS_AUDIO_FORMAT_OUT_VALID_BIT 1932
+#define SOF_TKN_CAVS_AUDIO_FORMAT_OUT_VALID_BIT_DEPTH 1932
 #define SOF_TKN_CAVS_AUDIO_FORMAT_OUT_CHANNELS 1933
 #define SOF_TKN_CAVS_AUDIO_FORMAT_OUT_CH_MAP 1934
 #define SOF_TKN_CAVS_AUDIO_FORMAT_OUT_CH_CFG 1935
 #define SOF_TKN_CAVS_AUDIO_FORMAT_OUT_INTERLEAVING_STYLE 1936
 #define SOF_TKN_CAVS_AUDIO_FORMAT_OUT_FMT_CFG 1937
 #define SOF_TKN_CAVS_AUDIO_FORMAT_OUT_SAMPLE_TYPE 1938
+#define SOF_TKN_CAVS_AUDIO_FORMAT_OUTPUT_PIN_INDEX 1939
 #define SOF_TKN_CAVS_AUDIO_FORMAT_IBS 1970
 #define SOF_TKN_CAVS_AUDIO_FORMAT_OBS 1971
 #define SOF_TKN_CAVS_AUDIO_FORMAT_DMA_BUFFER_SIZE 1972
 #define SOF_TKN_INTEL_COPIER_NODE_TYPE 1980
+#define SOF_TKN_INTEL_COPIER_DEEP_BUFFER_DMA_MS 1981
 #define SOF_TKN_AMD_ACPI2S_RATE 1700
 #define SOF_TKN_AMD_ACPI2S_CH 1701
 #define SOF_TKN_AMD_ACPI2S_TDM_MODE 1702
+#define SOF_TKN_IMX_MICFIL_RATE 2000
+#define SOF_TKN_IMX_MICFIL_CH 2001
+#define SOF_TKN_AMD_ACP_SDW_RATE 2100
+#define SOF_TKN_AMD_ACP_SDW_CH 2101
 #endif
diff --git a/libc/kernel/uapi/sound/tlv.h b/libc/kernel/uapi/sound/tlv.h
index 0822429..d9df82f 100644
--- a/libc/kernel/uapi/sound/tlv.h
+++ b/libc/kernel/uapi/sound/tlv.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __UAPI_SOUND_TLV_H
 #define __UAPI_SOUND_TLV_H
 #define SNDRV_CTL_TLVT_CONTAINER 0
diff --git a/libc/kernel/uapi/sound/usb_stream.h b/libc/kernel/uapi/sound/usb_stream.h
index ac87c31..1f8dc2a 100644
--- a/libc/kernel/uapi/sound/usb_stream.h
+++ b/libc/kernel/uapi/sound/usb_stream.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI__SOUND_USB_STREAM_H
 #define _UAPI__SOUND_USB_STREAM_H
 #define USB_STREAM_INTERFACE_VERSION 2
diff --git a/libc/kernel/uapi/video/edid.h b/libc/kernel/uapi/video/edid.h
index 0269d64..ed08315 100644
--- a/libc/kernel/uapi/video/edid.h
+++ b/libc/kernel/uapi/video/edid.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI__linux_video_edid_h__
 #define _UAPI__linux_video_edid_h__
 struct edid_info {
diff --git a/libc/kernel/uapi/video/sisfb.h b/libc/kernel/uapi/video/sisfb.h
index 1feeda0..cbe525a 100644
--- a/libc/kernel/uapi/video/sisfb.h
+++ b/libc/kernel/uapi/video/sisfb.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_LINUX_SISFB_H_
 #define _UAPI_LINUX_SISFB_H_
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/video/uvesafb.h b/libc/kernel/uapi/video/uvesafb.h
index d0dca96..6a8b2bf 100644
--- a/libc/kernel/uapi/video/uvesafb.h
+++ b/libc/kernel/uapi/video/uvesafb.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef _UAPI_UVESAFB_H
 #define _UAPI_UVESAFB_H
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/xen/evtchn.h b/libc/kernel/uapi/xen/evtchn.h
index aa4aaaf..4a12c8c 100644
--- a/libc/kernel/uapi/xen/evtchn.h
+++ b/libc/kernel/uapi/xen/evtchn.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __LINUX_PUBLIC_EVTCHN_H__
 #define __LINUX_PUBLIC_EVTCHN_H__
 #define IOCTL_EVTCHN_BIND_VIRQ _IOC(_IOC_NONE, 'E', 0, sizeof(struct ioctl_evtchn_bind_virq))
@@ -43,4 +31,8 @@
 struct ioctl_evtchn_restrict_domid {
   domid_t domid;
 };
+#define IOCTL_EVTCHN_BIND_STATIC _IOC(_IOC_NONE, 'E', 7, sizeof(struct ioctl_evtchn_bind))
+struct ioctl_evtchn_bind {
+  unsigned int port;
+};
 #endif
diff --git a/libc/kernel/uapi/xen/gntalloc.h b/libc/kernel/uapi/xen/gntalloc.h
index d306b22..4f0e7b8 100644
--- a/libc/kernel/uapi/xen/gntalloc.h
+++ b/libc/kernel/uapi/xen/gntalloc.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __LINUX_PUBLIC_GNTALLOC_H__
 #define __LINUX_PUBLIC_GNTALLOC_H__
 #include <linux/types.h>
@@ -25,7 +13,10 @@
   __u16 flags;
   __u32 count;
   __u64 index;
-  __u32 gref_ids[1];
+  union {
+    __u32 gref_ids[1];
+    __DECLARE_FLEX_ARRAY(__u32, gref_ids_flex);
+  };
 };
 #define GNTALLOC_FLAG_WRITABLE 1
 #define IOCTL_GNTALLOC_DEALLOC_GREF _IOC(_IOC_NONE, 'G', 6, sizeof(struct ioctl_gntalloc_dealloc_gref))
diff --git a/libc/kernel/uapi/xen/gntdev.h b/libc/kernel/uapi/xen/gntdev.h
index eada73c..bda1ad6 100644
--- a/libc/kernel/uapi/xen/gntdev.h
+++ b/libc/kernel/uapi/xen/gntdev.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __LINUX_PUBLIC_GNTDEV_H__
 #define __LINUX_PUBLIC_GNTDEV_H__
 #include <linux/types.h>
diff --git a/libc/kernel/uapi/xen/privcmd.h b/libc/kernel/uapi/xen/privcmd.h
index 21d9f84..0597247 100644
--- a/libc/kernel/uapi/xen/privcmd.h
+++ b/libc/kernel/uapi/xen/privcmd.h
@@ -1,21 +1,9 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
 #ifndef __LINUX_PUBLIC_PRIVCMD_H__
 #define __LINUX_PUBLIC_PRIVCMD_H__
 #include <linux/types.h>
@@ -67,6 +55,28 @@
   __u64 num;
   __u64 addr;
 };
+#define PRIVCMD_IRQFD_FLAG_DEASSIGN (1 << 0)
+struct privcmd_irqfd {
+  __u64 dm_op;
+  __u32 size;
+  __u32 fd;
+  __u32 flags;
+  domid_t dom;
+  __u8 pad[2];
+};
+#define PRIVCMD_IOEVENTFD_FLAG_DEASSIGN (1 << 0)
+struct privcmd_ioeventfd {
+  __u64 ioreq;
+  __u64 ports;
+  __u64 addr;
+  __u32 addr_len;
+  __u32 event_fd;
+  __u32 vcpus;
+  __u32 vq;
+  __u32 flags;
+  domid_t dom;
+  __u8 pad[2];
+};
 #define IOCTL_PRIVCMD_HYPERCALL _IOC(_IOC_NONE, 'P', 0, sizeof(struct privcmd_hypercall))
 #define IOCTL_PRIVCMD_MMAP _IOC(_IOC_NONE, 'P', 2, sizeof(struct privcmd_mmap))
 #define IOCTL_PRIVCMD_MMAPBATCH _IOC(_IOC_NONE, 'P', 3, sizeof(struct privcmd_mmapbatch))
@@ -74,4 +84,6 @@
 #define IOCTL_PRIVCMD_DM_OP _IOC(_IOC_NONE, 'P', 5, sizeof(struct privcmd_dm_op))
 #define IOCTL_PRIVCMD_RESTRICT _IOC(_IOC_NONE, 'P', 6, sizeof(domid_t))
 #define IOCTL_PRIVCMD_MMAP_RESOURCE _IOC(_IOC_NONE, 'P', 7, sizeof(struct privcmd_mmap_resource))
+#define IOCTL_PRIVCMD_IRQFD _IOW('P', 8, struct privcmd_irqfd)
+#define IOCTL_PRIVCMD_IOEVENTFD _IOW('P', 9, struct privcmd_ioeventfd)
 #endif
diff --git a/libc/libc.map.txt b/libc/libc.map.txt
index c75b13a..86dcc39 100644
--- a/libc/libc.map.txt
+++ b/libc/libc.map.txt
@@ -8,29 +8,29 @@
     __atomic_swap; # arm
     __b64_ntop;
     __b64_pton;
-    __cmsg_nxthdr; # introduced=21
-    __connect; # arm x86 introduced=21
-    __ctype_get_mb_cur_max; # introduced=21
+    __cmsg_nxthdr;
+    __connect; # arm x86
+    __ctype_get_mb_cur_max;
     __cxa_atexit;
     __cxa_finalize;
     __cxa_thread_atexit_impl; # introduced=23
     __dn_comp;
     __dn_count_labels;
     __dn_skipname;
-    __epoll_pwait; # arm x86 introduced=21
+    __epoll_pwait; # arm x86
     __errno;
-    __exit; # arm x86 introduced=21
-    __fadvise64; # x86 introduced=21
+    __exit; # arm x86
+    __fadvise64; # x86
     __fbufsize; # introduced=23
     __fcntl64; # arm x86
-    __FD_CLR_chk; # introduced=21
-    __FD_ISSET_chk; # introduced=21
-    __FD_SET_chk; # introduced=21
-    __fgets_chk; # introduced-arm=17 introduced-arm64=21 introduced-x86=17 introduced-x86_64=21
+    __FD_CLR_chk;
+    __FD_ISSET_chk;
+    __FD_SET_chk;
+    __fgets_chk;
     __flbf; # introduced=23
     __fp_nquery;
     __fp_query;
-    __fpclassify; # introduced=21
+    __fpclassify;
     __fpclassifyd;
     __fpclassifyf;
     __fpclassifyl;
@@ -41,9 +41,9 @@
     __fstatfs64; # arm x86
     __fwritable; # introduced=23
     __get_h_errno;
-    __getcpu; # arm x86 introduced-arm=12 introduced-x86=12
+    __getcpu; # arm x86
     __getcwd; # arm x86
-    __getpid; # arm x86 introduced=21
+    __getpid; # arm x86
     __getpriority; # arm x86
     __gnu_basename; # introduced=23
     __gnu_strerror_r; # introduced=23
@@ -55,50 +55,50 @@
     __isinf;
     __isinff;
     __isinfl;
-    __isnan; # introduced=21
-    __isnanf; # introduced=21
+    __isnan;
+    __isnanf;
     __isnanl;
     __isnormal;
     __isnormalf;
     __isnormall;
     __isthreaded; # arm x86 var
-    __libc_current_sigrtmax; # introduced=21
-    __libc_current_sigrtmin; # introduced=21
+    __libc_current_sigrtmax;
+    __libc_current_sigrtmin;
     __libc_init;
     __llseek; # arm x86
     __loc_aton;
     __loc_ntoa;
     __memchr_chk; # introduced=23
-    __memcpy_chk; # introduced-arm=17 introduced-arm64=21 introduced-x86=17 introduced-x86_64=21
-    __memmove_chk; # introduced-arm=17 introduced-arm64=21 introduced-x86=17 introduced-x86_64=21
+    __memcpy_chk;
+    __memmove_chk;
     __memrchr_chk; # introduced=23
-    __memset_chk; # introduced-arm=17 introduced-arm64=21 introduced-x86=17 introduced-x86_64=21
+    __memset_chk;
     __mmap2; # arm x86
-    __ns_format_ttl; # arm x86
-    __ns_get16; # arm x86
-    __ns_get32; # arm x86
-    __ns_initparse; # arm x86
-    __ns_makecanon; # arm x86
-    __ns_msg_getflag; # arm x86
-    __ns_name_compress; # arm x86
-    __ns_name_ntol; # arm x86
-    __ns_name_ntop; # arm x86
-    __ns_name_pack; # arm x86
-    __ns_name_pton; # arm x86
-    __ns_name_rollback; # arm x86
-    __ns_name_skip; # arm x86
-    __ns_name_uncompress; # arm x86
-    __ns_name_unpack; # arm x86
-    __ns_parserr; # arm x86
-    __ns_put16; # arm x86
-    __ns_put32; # arm x86
-    __ns_samename; # arm x86
-    __ns_skiprr; # arm x86
-    __ns_sprintrr; # arm x86
-    __ns_sprintrrf; # arm x86
-    __open_2; # introduced-arm=17 introduced-arm64=21 introduced-x86=17 introduced-x86_64=21
+    __ns_format_ttl; # arm x86 introduced=22
+    __ns_get16; # arm x86 introduced=22
+    __ns_get32; # arm x86 introduced=22
+    __ns_initparse; # arm x86 introduced=22
+    __ns_makecanon; # arm x86 introduced=22
+    __ns_msg_getflag; # arm x86 introduced=22
+    __ns_name_compress; # arm x86 introduced=22
+    __ns_name_ntol; # arm x86 introduced=22
+    __ns_name_ntop; # arm x86 introduced=22
+    __ns_name_pack; # arm x86 introduced=22
+    __ns_name_pton; # arm x86 introduced=22
+    __ns_name_rollback; # arm x86 introduced=22
+    __ns_name_skip; # arm x86 introduced=22
+    __ns_name_uncompress; # arm x86 introduced=22
+    __ns_name_unpack; # arm x86 introduced=22
+    __ns_parserr; # arm x86 introduced=22
+    __ns_put16; # arm x86 introduced=22
+    __ns_put32; # arm x86 introduced=22
+    __ns_samename; # arm x86 introduced=22
+    __ns_skiprr; # arm x86 introduced=22
+    __ns_sprintrr; # arm x86 introduced=22
+    __ns_sprintrrf; # arm x86 introduced=22
+    __open_2;
     __openat; # arm x86
-    __openat_2; # introduced-arm=17 introduced-arm64=21 introduced-x86=17 introduced-x86_64=21
+    __openat_2;
     __p_cdname;
     __p_cdnname;
     __p_class;
@@ -113,23 +113,23 @@
     __p_type;
     __p_type_syms; # var
     __poll_chk; # introduced=23
-    __ppoll; # arm x86 introduced=21
+    __ppoll; # arm x86
     __ppoll_chk; # introduced=23
     __ppoll64_chk; # introduced=28
     __pread64_chk; # introduced=23
     __pread_chk; # introduced=23
     __progname; # var
-    __pselect6; # arm x86 introduced=21
+    __pselect6; # arm x86
     __pthread_cleanup_pop;
     __pthread_cleanup_push;
     __ptrace; # arm x86
     __putlong;
     __putshort;
-    __read_chk; # introduced=21
+    __read_chk;
     __readlink_chk; # introduced=23
     __readlinkat_chk; # introduced=23
     __reboot; # arm x86
-    __recvfrom_chk; # introduced=21
+    __recvfrom_chk;
     __register_atfork; # introduced=23
     __res_close;
     __res_dnok;
@@ -152,83 +152,83 @@
     __res_send_setqhook;
     __res_send_setrhook;
     __rt_sigaction; # arm x86
-    __rt_sigpending; # arm x86 introduced=21
+    __rt_sigpending; # arm x86
     __rt_sigprocmask; # arm x86
-    __rt_sigsuspend; # arm x86 introduced=21
+    __rt_sigsuspend; # arm x86
     __rt_sigtimedwait; # arm x86
-    __sched_cpualloc; # introduced-arm=12 introduced-arm64=21 introduced-x86=12 introduced-x86_64=21
-    __sched_cpucount; # introduced-arm=12 introduced-arm64=21 introduced-x86=12 introduced-x86_64=21
-    __sched_cpufree; # introduced-arm=12 introduced-arm64=21 introduced-x86=12 introduced-x86_64=21
-    __sched_getaffinity; # arm x86 introduced=12
+    __sched_cpualloc;
+    __sched_cpucount;
+    __sched_cpufree;
+    __sched_getaffinity; # arm x86
     __set_thread_area; # x86
-    __set_tid_address; # arm x86 introduced=21
+    __set_tid_address; # arm x86
     __set_tls; # arm
     __sF; # var
-    __sigaction; # arm x86 introduced=21
-    __snprintf_chk; # introduced-arm=17 introduced-arm64=21 introduced-x86=17 introduced-x86_64=21
-    __socket; # arm x86 introduced=21
-    __sprintf_chk; # introduced-arm=17 introduced-arm64=21 introduced-x86=17 introduced-x86_64=21
+    __sigaction; # arm x86
+    __snprintf_chk;
+    __socket; # arm x86
+    __sprintf_chk;
     __stack_chk_fail;
     __stack_chk_guard; # var
     __statfs64; # arm x86
-    __stpcpy_chk; # introduced=21
-    __stpncpy_chk; # introduced=21
-    __stpncpy_chk2; # introduced=21
-    __strcat_chk; # introduced-arm=17 introduced-arm64=21 introduced-x86=17 introduced-x86_64=21
-    __strchr_chk; # introduced-arm=18 introduced-arm64=21 introduced-x86=18 introduced-x86_64=21
-    __strcpy_chk; # introduced-arm=17 introduced-arm64=21 introduced-x86=17 introduced-x86_64=21
-    __strlcat_chk; # introduced-arm=17 introduced-arm64=21 introduced-x86=17 introduced-x86_64=21
-    __strlcpy_chk; # introduced-arm=17 introduced-arm64=21 introduced-x86=17 introduced-x86_64=21
-    __strlen_chk; # introduced-arm=17 introduced-arm64=21 introduced-x86=17 introduced-x86_64=21
-    __strncat_chk; # introduced-arm=17 introduced-arm64=21 introduced-x86=17 introduced-x86_64=21
-    __strncpy_chk; # introduced-arm=17 introduced-arm64=21 introduced-x86=17 introduced-x86_64=21
-    __strncpy_chk2; # introduced=21
-    __strrchr_chk; # introduced-arm=18 introduced-arm64=21 introduced-x86=18 introduced-x86_64=21
+    __stpcpy_chk;
+    __stpncpy_chk;
+    __stpncpy_chk2;
+    __strcat_chk;
+    __strchr_chk;
+    __strcpy_chk;
+    __strlcat_chk;
+    __strlcpy_chk;
+    __strlen_chk;
+    __strncat_chk;
+    __strncpy_chk;
+    __strncpy_chk2;
+    __strrchr_chk;
     __sym_ntop;
     __sym_ntos;
     __sym_ston;
     __system_property_area_serial; # introduced=23
     __system_property_find;
     __system_property_find_nth;
-    __system_property_foreach; # introduced-arm=19 introduced-arm64=21 introduced-x86=19 introduced-x86_64=21
+    __system_property_foreach;
     __system_property_get;
     __system_property_read;
-    __system_property_serial; # introduced-arm=19 introduced-arm64=21 introduced-x86=19 introduced-x86_64=21
-    __system_property_set; # introduced-arm=12 introduced-arm64=21 introduced-x86=12 introduced-x86_64=21
+    __system_property_serial;
+    __system_property_set;
     __timer_create; # arm x86
     __timer_delete; # arm x86
     __timer_getoverrun; # arm x86
     __timer_gettime; # arm x86
     __timer_settime; # arm x86
-    __umask_chk; # introduced-arm=18 introduced-arm64=21 introduced-x86=18 introduced-x86_64=21
-    __vsnprintf_chk; # introduced-arm=17 introduced-arm64=21 introduced-x86=17 introduced-x86_64=21
-    __vsprintf_chk; # introduced-arm=17 introduced-arm64=21 introduced-x86=17 introduced-x86_64=21
+    __umask_chk;
+    __vsnprintf_chk;
+    __vsprintf_chk;
     __waitid; # arm x86
     _ctype_; # var
-    _Exit; # introduced=21
+    _Exit;
     _exit;
     _flushlbf; # introduced=23
     _getlong;
     _getshort;
     _longjmp;
-    _resolv_delete_cache_for_net; # introduced=21
-    _resolv_flush_cache_for_net; # introduced=21
-    _resolv_set_nameservers_for_net; # introduced=21
+    _resolv_delete_cache_for_net;
+    _resolv_flush_cache_for_net;
+    _resolv_set_nameservers_for_net;
     _setjmp;
-    _tolower; # introduced=21
+    _tolower;
     _tolower_tab_; # arm x86 var
-    _toupper; # introduced=21
+    _toupper;
     _toupper_tab_; # arm x86 var
     abort;
-    abs; # introduced-arm=19 introduced-arm64=21 introduced-x86=19 introduced-x86_64=21
+    abs;
     accept;
-    accept4; # introduced=21
+    accept4;
     access;
     acct;
     alarm;
     alphasort;
-    alphasort64; # introduced=21
-    android_set_abort_message; # introduced=21
+    alphasort64;
+    android_set_abort_message;
     arc4random;
     arc4random_buf;
     arc4random_uniform;
@@ -237,8 +237,8 @@
     asctime64_r; # arm x86
     asctime_r;
     asprintf;
-    at_quick_exit; # introduced=21
-    atof; # introduced=21
+    at_quick_exit;
+    atof;
     atoi;
     atol;
     atoll;
@@ -249,18 +249,18 @@
     brk;
     bsearch;
     btowc;
-    c16rtomb; # introduced=21
-    c32rtomb; # introduced=21
+    c16rtomb;
+    c32rtomb;
     cacheflush; # arm
     calloc;
     capget;
     capset;
-    cfgetispeed; # introduced=21
-    cfgetospeed; # introduced=21
-    cfmakeraw; # introduced=21
-    cfsetispeed; # introduced=21
-    cfsetospeed; # introduced=21
-    cfsetspeed; # introduced=21
+    cfgetispeed;
+    cfgetospeed;
+    cfmakeraw;
+    cfsetispeed;
+    cfsetospeed;
+    cfsetspeed;
     chdir;
     chmod;
     chown;
@@ -274,13 +274,13 @@
     clock_gettime;
     clock_nanosleep;
     clock_settime;
-    clone; # introduced-arm=9 introduced-arm64=21 introduced-x86=17 introduced-x86_64=21
+    clone;
     close;
     closedir;
     closelog;
     connect;
     creat;
-    creat64; # introduced=21
+    creat64;
     ctime;
     ctime64; # arm x86
     ctime64_r; # arm x86
@@ -294,20 +294,20 @@
     dirname_r; # arm x86
     div;
     dn_expand;
-    dprintf; # introduced=21
+    dprintf;
     drand48;
     dup;
     dup2;
-    dup3; # introduced=21
-    duplocale; # introduced=21
-    endmntent; # introduced=21
+    dup3;
+    duplocale;
+    endmntent;
     endservent;
     endutent;
     environ; # var
     epoll_create;
-    epoll_create1; # introduced=21
+    epoll_create1;
     epoll_ctl;
-    epoll_pwait; # introduced=21
+    epoll_pwait;
     epoll_wait;
     erand48;
     err;
@@ -317,10 +317,10 @@
     error_one_per_line; # var introduced=23
     error_print_progname; # var introduced=23
     errx;
-    ether_aton; # introduced-arm=12 introduced-arm64=21 introduced-x86=12 introduced-x86_64=21
-    ether_aton_r; # introduced-arm=12 introduced-arm64=21 introduced-x86=12 introduced-x86_64=21
-    ether_ntoa; # introduced-arm=12 introduced-arm64=21 introduced-x86=12 introduced-x86_64=21
-    ether_ntoa_r; # introduced-arm=12 introduced-arm64=21 introduced-x86=12 introduced-x86_64=21
+    ether_aton;
+    ether_aton_r;
+    ether_ntoa;
+    ether_ntoa_r;
     eventfd;
     eventfd_read;
     eventfd_write;
@@ -330,11 +330,11 @@
     execv;
     execve;
     execvp;
-    execvpe; # introduced=21
+    execvpe;
     exit;
     faccessat;
-    fallocate; # introduced=21
-    fallocate64; # introduced=21
+    fallocate;
+    fallocate64;
     fchdir;
     fchmod;
     fchmodat;
@@ -351,7 +351,7 @@
     ferror;
     ferror_unlocked; # introduced=23
     fflush;
-    ffs; # introduced-arm=9 introduced-arm64=21 introduced-x86=18 introduced-x86_64=21
+    ffs;
     fgetc;
     fgetln;
     fgetpos;
@@ -378,7 +378,7 @@
     fread;
     free;
     freeaddrinfo;
-    freelocale; # introduced=21
+    freelocale;
     fremovexattr;
     freopen;
     fscanf;
@@ -387,30 +387,30 @@
     fsetpos;
     fsetxattr;
     fstat;
-    fstat64; # introduced=21
+    fstat64;
     fstatat;
-    fstatat64; # introduced=21
+    fstatat64;
     fstatfs;
-    fstatfs64; # introduced=21
-    fstatvfs; # introduced-arm=19 introduced-arm64=21 introduced-x86=19 introduced-x86_64=21
-    fstatvfs64; # introduced=21
+    fstatfs64;
+    fstatvfs;
+    fstatvfs64;
     fsync;
     ftell;
     ftello;
     ftok;
     ftruncate;
-    ftruncate64; # introduced-arm=12 introduced-arm64=21 introduced-x86=12 introduced-x86_64=21
+    ftruncate64;
     ftrylockfile;
-    fts_children; # introduced=21
-    fts_close; # introduced=21
-    fts_open; # introduced=21
-    fts_read; # introduced=21
-    fts_set; # introduced=21
-    ftw; # introduced-arm=17 introduced-arm64=21 introduced-x86=17 introduced-x86_64=21
-    ftw64; # introduced=21
+    fts_children;
+    fts_close;
+    fts_open;
+    fts_read;
+    fts_set;
+    ftw;
+    ftw64;
     funlockfile;
     funopen;
-    futimens; # introduced-arm=19 introduced-arm64=21 introduced-x86=19 introduced-x86_64=21
+    futimens;
     fwide;
     fwprintf;
     fwrite;
@@ -421,13 +421,13 @@
     get_nprocs_conf; # introduced=23
     get_phys_pages; # introduced=23
     getaddrinfo;
-    getauxval; # introduced-arm=18 introduced-arm64=21 introduced-x86=18 introduced-x86_64=21
+    getauxval;
     getc;
     getc_unlocked;
     getchar;
     getchar_unlocked;
     getcwd;
-    getdelim; # introduced-arm=18 introduced-arm64=21 introduced-x86=18 introduced-x86_64=21
+    getdelim;
     getegid;
     getenv;
     geteuid;
@@ -445,41 +445,41 @@
     gethostent;
     gethostname;
     getitimer;
-    getline; # introduced-arm=18 introduced-arm64=21 introduced-x86=18 introduced-x86_64=21
+    getline;
     getlogin;
     getmntent;
-    getmntent_r; # introduced=21
+    getmntent_r;
     getnameinfo;
     getnetbyaddr;
     getnetbyname;
     getopt;
     getopt_long;
     getopt_long_only;
-    getpagesize; # introduced=21
+    getpagesize;
     getpeername;
     getpgid;
     getpgrp;
     getpid;
     getppid;
     getpriority;
-    getprogname; # introduced=21
+    getprogname;
     getprotobyname;
     getprotobynumber;
     getpt;
     getpwnam;
-    getpwnam_r; # introduced-arm=12 introduced-arm64=21 introduced-x86=12 introduced-x86_64=21
+    getpwnam_r;
     getpwuid;
-    getpwuid_r; # introduced-arm=12 introduced-arm64=21 introduced-x86=12 introduced-x86_64=21
+    getpwuid_r;
     getresgid;
     getresuid;
     getrlimit;
-    getrlimit64; # introduced=21
+    getrlimit64;
     getrusage;
     gets;
     getservbyname;
     getservbyport;
     getservent;
-    getsid; # introduced-arm=17 introduced-arm64=21 introduced-x86=17 introduced-x86_64=21
+    getsid;
     getsockname;
     getsockopt;
     gettid;
@@ -493,21 +493,21 @@
     gmtime64; # arm x86
     gmtime64_r; # arm x86
     gmtime_r;
-    grantpt; # introduced=21
+    grantpt;
     herror;
     hstrerror;
-    htonl; # introduced=21
-    htons; # introduced=21
+    htonl;
+    htons;
     if_indextoname;
     if_nametoindex;
-    imaxabs; # introduced-arm=19 introduced-arm64=21 introduced-x86=19 introduced-x86_64=21
-    imaxdiv; # introduced-arm=19 introduced-arm64=21 introduced-x86=19 introduced-x86_64=21
+    imaxabs;
+    imaxdiv;
     inet_addr;
     inet_aton;
-    inet_lnaof; # introduced=21
-    inet_makeaddr; # introduced=21
-    inet_netof; # introduced=21
-    inet_network; # introduced=21
+    inet_lnaof;
+    inet_makeaddr;
+    inet_netof;
+    inet_network;
     inet_nsap_addr;
     inet_nsap_ntoa;
     inet_ntoa;
@@ -515,96 +515,96 @@
     inet_pton;
     init_module;
     initgroups;
-    initstate; # introduced=21
+    initstate;
     inotify_add_watch;
     inotify_init;
-    inotify_init1; # introduced=21
+    inotify_init1;
     inotify_rm_watch;
-    insque; # introduced=21
+    insque;
     ioctl;
     isalnum;
-    isalnum_l; # introduced=21
+    isalnum_l;
     isalpha;
-    isalpha_l; # introduced=21
+    isalpha_l;
     isascii;
     isatty;
     isblank;
-    isblank_l; # introduced=21
+    isblank_l;
     iscntrl;
-    iscntrl_l; # introduced=21
+    iscntrl_l;
     isdigit;
-    isdigit_l; # introduced=21
-    isfinite; # introduced=21
-    isfinitef; # introduced=21
-    isfinitel; # introduced=21
+    isdigit_l;
+    isfinite;
+    isfinitef;
+    isfinitel;
     isgraph;
-    isgraph_l; # introduced=21
-    isinf; # introduced=21
-    isinff; # introduced=21
-    isinfl; # introduced=21
+    isgraph_l;
+    isinf;
+    isinff;
+    isinfl;
     islower;
-    islower_l; # introduced=21
+    islower_l;
     isnan;
     isnanf;
-    isnanl; # introduced=21
-    isnormal; # introduced=21
-    isnormalf; # introduced=21
-    isnormall; # introduced=21
+    isnanl;
+    isnormal;
+    isnormalf;
+    isnormall;
     isprint;
-    isprint_l; # introduced=21
+    isprint_l;
     ispunct;
-    ispunct_l; # introduced=21
+    ispunct_l;
     isspace;
-    isspace_l; # introduced=21
+    isspace_l;
     isupper;
-    isupper_l; # introduced=21
+    isupper_l;
     iswalnum;
-    iswalnum_l; # introduced=21
+    iswalnum_l;
     iswalpha;
-    iswalpha_l; # introduced=21
-    iswblank; # introduced=21
-    iswblank_l; # introduced=21
+    iswalpha_l;
+    iswblank;
+    iswblank_l;
     iswcntrl;
-    iswcntrl_l; # introduced=21
+    iswcntrl_l;
     iswctype;
-    iswctype_l; # introduced=21
+    iswctype_l;
     iswdigit;
-    iswdigit_l; # introduced=21
+    iswdigit_l;
     iswgraph;
-    iswgraph_l; # introduced=21
+    iswgraph_l;
     iswlower;
-    iswlower_l; # introduced=21
+    iswlower_l;
     iswprint;
-    iswprint_l; # introduced=21
+    iswprint_l;
     iswpunct;
-    iswpunct_l; # introduced=21
+    iswpunct_l;
     iswspace;
-    iswspace_l; # introduced=21
+    iswspace_l;
     iswupper;
-    iswupper_l; # introduced=21
+    iswupper_l;
     iswxdigit;
-    iswxdigit_l; # introduced=21
+    iswxdigit_l;
     isxdigit;
-    isxdigit_l; # introduced=21
+    isxdigit_l;
     jrand48;
     kill;
     killpg;
     klogctl;
-    labs; # introduced-arm=19 introduced-arm64=21 introduced-x86=19 introduced-x86_64=21
+    labs;
     lchown;
     lcong48; # introduced=23
     ldexp;
     ldiv;
-    lfind; # introduced=21
+    lfind;
     lgetxattr;
     link;
-    linkat; # introduced=21
+    linkat;
     listen;
     listxattr;
-    llabs; # introduced-arm=19 introduced-arm64=21 introduced-x86=19 introduced-x86_64=21
+    llabs;
     lldiv;
     llistxattr;
-    localeconv; # introduced=21
+    localeconv;
     localtime;
     localtime64; # arm x86
     localtime64_r; # arm x86
@@ -613,26 +613,26 @@
     longjmp;
     lrand48;
     lremovexattr;
-    lsearch; # introduced=21
+    lsearch;
     lseek;
     lseek64;
     lsetxattr;
     lstat;
-    lstat64; # introduced=21
+    lstat64;
     madvise;
     mallinfo;
     malloc;
     malloc_info; # introduced=23
-    malloc_usable_size; # introduced-arm=17 introduced-arm64=21 introduced-x86=17 introduced-x86_64=21
+    malloc_usable_size;
     mbrlen;
-    mbrtoc16; # introduced=21
-    mbrtoc32; # introduced=21
+    mbrtoc16;
+    mbrtoc32;
     mbrtowc;
     mbsinit;
-    mbsnrtowcs; # introduced=21
+    mbsnrtowcs;
     mbsrtowcs;
-    mbstowcs; # introduced=21
-    mbtowc; # introduced=21
+    mbstowcs;
+    mbtowc;
     memalign;
     memccpy;
     memchr;
@@ -647,37 +647,37 @@
     mkdir;
     mkdirat;
     mkdtemp;
-    mkfifo; # introduced=21
+    mkfifo;
     mkfifoat; # introduced=23
     mknod;
-    mknodat; # introduced=21
+    mknodat;
     mkostemp; # introduced=23
     mkostemp64; # introduced=23
     mkostemps; # introduced=23
     mkostemps64; # introduced=23
     mkstemp;
-    mkstemp64; # introduced=21
+    mkstemp64;
     mkstemps;
     mkstemps64; # introduced=23
     mktemp;
     mktime;
     mktime64; # arm x86
     mlock;
-    mlockall; # introduced-arm=17 introduced-arm64=21 introduced-x86=17 introduced-x86_64=21
+    mlockall;
     mmap;
-    mmap64; # introduced=21
+    mmap64;
     mount;
     mprotect;
     mrand48;
     mremap;
     msync;
     munlock;
-    munlockall; # introduced-arm=17 introduced-arm64=21 introduced-x86=17 introduced-x86_64=21
+    munlockall;
     munmap;
     nanosleep;
-    newlocale; # introduced=21
-    nftw; # introduced-arm=17 introduced-arm64=21 introduced-x86=17 introduced-x86_64=21
-    nftw64; # introduced=21
+    newlocale;
+    nftw;
+    nftw64;
     nice;
     nrand48;
     ns_format_ttl; # arm64 x86_64 riscv64 introduced=22
@@ -703,14 +703,14 @@
     ns_sprintrr; # arm64 x86_64 riscv64 introduced=22
     ns_sprintrrf; # arm64 x86_64 riscv64 introduced=22
     nsdispatch;
-    ntohl; # introduced=21
-    ntohs; # introduced=21
+    ntohl;
+    ntohs;
     open;
-    open64; # introduced=21
+    open64;
     open_memstream; # introduced=23
     open_wmemstream; # introduced=23
     openat;
-    openat64; # introduced=21
+    openat64;
     opendir;
     openlog;
     openpty; # introduced=23
@@ -728,26 +728,26 @@
     pipe2;
     poll;
     popen;
-    posix_fadvise; # introduced=21
-    posix_fadvise64; # introduced=21
-    posix_fallocate; # introduced=21
-    posix_fallocate64; # introduced=21
+    posix_fadvise;
+    posix_fadvise64;
+    posix_fallocate;
+    posix_fallocate64;
     posix_madvise; # introduced=23
-    posix_memalign; # introduced=17
-    posix_openpt; # introduced=21
-    ppoll; # introduced=21
+    posix_memalign;
+    posix_openpt;
+    ppoll;
     prctl;
     pread;
-    pread64; # introduced-arm=12 introduced-arm64=21 introduced-x86=12 introduced-x86_64=21
+    pread64;
     printf;
     prlimit; # arm64 x86_64 riscv64
-    prlimit64; # introduced=21
+    prlimit64;
     process_vm_readv; # introduced=23
     process_vm_writev; # introduced=23
     pselect;
-    psiginfo; # introduced-arm=17 introduced-arm64=21 introduced-x86=17 introduced-x86_64=21
-    psignal; # introduced-arm=17 introduced-arm64=21 introduced-x86=17 introduced-x86_64=21
-    pthread_atfork; # introduced-arm=12 introduced-arm64=21 introduced-x86=12 introduced-x86_64=21
+    psiginfo;
+    psignal;
+    pthread_atfork;
     pthread_attr_destroy;
     pthread_attr_getdetachstate;
     pthread_attr_getguardsize;
@@ -770,15 +770,15 @@
     pthread_cond_signal;
     pthread_cond_timedwait;
     pthread_cond_timedwait_monotonic; # arm x86
-    pthread_cond_timedwait_monotonic_np; # introduced-arm=9 introduced-x86=9 introduced-arm64=28 introduced-x64_64=28
+    pthread_cond_timedwait_monotonic_np; # introduced-arm=9 introduced-x86=9 introduced-arm64=28 introduced-x64_64=28 introduced-riscv64=28
     pthread_cond_timedwait_relative_np; # arm x86
     pthread_cond_timeout_np; # arm x86
     pthread_cond_wait;
     pthread_condattr_destroy;
-    pthread_condattr_getclock; # introduced=21
+    pthread_condattr_getclock;
     pthread_condattr_getpshared;
     pthread_condattr_init;
-    pthread_condattr_setclock; # introduced=21
+    pthread_condattr_setclock;
     pthread_condattr_setpshared;
     pthread_create;
     pthread_detach;
@@ -788,7 +788,7 @@
     pthread_getcpuclockid;
     pthread_getschedparam;
     pthread_getspecific;
-    pthread_gettid_np; # introduced=21
+    pthread_gettid_np;
     pthread_join;
     pthread_key_create;
     pthread_key_delete;
@@ -797,7 +797,7 @@
     pthread_mutex_init;
     pthread_mutex_lock;
     pthread_mutex_lock_timeout_np; # arm x86
-    pthread_mutex_timedlock; # introduced=21
+    pthread_mutex_timedlock;
     pthread_mutex_trylock;
     pthread_mutex_unlock;
     pthread_mutexattr_destroy;
@@ -840,30 +840,30 @@
     putw; # arm x86
     putwc;
     putwchar;
-    pvalloc; # arm x86 introduced=17
+    pvalloc; # arm x86
     pwrite;
-    pwrite64; # introduced-arm=12 introduced-arm64=21 introduced-x86=12 introduced-x86_64=21
+    pwrite64;
     qsort;
-    quick_exit; # introduced=21
+    quick_exit;
     raise;
-    rand; # introduced=21
-    rand_r; # introduced=21
-    random; # introduced=21
+    rand;
+    rand_r;
+    random;
     read;
     readahead;
     readdir;
-    readdir64; # introduced=21
-    readdir64_r; # introduced=21
+    readdir64;
+    readdir64_r;
     readdir_r;
     readlink;
-    readlinkat; # introduced=21
+    readlinkat;
     readv;
     realloc;
     realpath;
     reboot;
     recv;
     recvfrom;
-    recvmmsg; # introduced=21
+    recvmmsg;
     recvmsg;
     regcomp;
     regerror;
@@ -871,7 +871,7 @@
     regfree;
     remove;
     removexattr;
-    remque; # introduced=21
+    remque;
     rename;
     renameat;
     res_init;
@@ -883,16 +883,16 @@
     rmdir;
     sbrk;
     scandir;
-    scandir64; # introduced=21
+    scandir64;
     scanf;
     sched_get_priority_max;
     sched_get_priority_min;
-    sched_getaffinity; # introduced-arm=12 introduced-arm64=21 introduced-x86=12 introduced-x86_64=21
-    sched_getcpu; # introduced-arm=12 introduced-arm64=21 introduced-x86=12 introduced-x86_64=21
+    sched_getaffinity;
+    sched_getcpu;
     sched_getparam;
     sched_getscheduler;
     sched_rr_get_interval;
-    sched_setaffinity; # introduced-arm=12 introduced-arm64=21 introduced-x86=12 introduced-x86_64=21
+    sched_setaffinity;
     sched_setparam;
     sched_setscheduler;
     sched_yield;
@@ -911,8 +911,8 @@
     sem_wait;
     send;
     sendfile;
-    sendfile64; # introduced=21
-    sendmmsg; # introduced=21
+    sendfile64;
+    sendmmsg;
     sendmsg;
     sendto;
     setbuf;
@@ -920,8 +920,8 @@
     setegid;
     setenv;
     seteuid;
-    setfsgid; # introduced=21
-    setfsuid; # introduced=21
+    setfsgid;
+    setfsuid;
     setgid;
     setgroups;
     sethostname; # introduced=23
@@ -930,22 +930,22 @@
     setlinebuf;
     setlocale;
     setlogmask;
-    setmntent; # introduced=21
-    setns; # introduced=21
+    setmntent;
+    setns;
     setpgid;
     setpgrp;
     setpriority;
-    setprogname; # introduced=21
+    setprogname;
     setregid;
     setresgid;
     setresuid;
     setreuid;
     setrlimit;
-    setrlimit64; # introduced=21
+    setrlimit64;
     setservent;
     setsid;
     setsockopt;
-    setstate; # introduced=21
+    setstate;
     settimeofday;
     setuid;
     setutent;
@@ -953,21 +953,21 @@
     setxattr;
     shutdown;
     sigaction;
-    sigaddset; # introduced=21
+    sigaddset;
     sigaltstack;
     sigblock;
-    sigdelset; # introduced=21
-    sigemptyset; # introduced=21
-    sigfillset; # introduced=21
+    sigdelset;
+    sigemptyset;
+    sigfillset;
     siginterrupt;
-    sigismember; # introduced=21
-    siglongjmp; # introduced-arm=9 introduced-arm64=21 introduced-x86=12 introduced-x86_64=21
-    signal; # introduced=21
-    signalfd; # introduced-arm=18 introduced-arm64=21 introduced-x86=18 introduced-x86_64=21
+    sigismember;
+    siglongjmp;
+    signal;
+    signalfd;
     sigpending;
     sigprocmask;
     sigqueue; # introduced=23
-    sigsetjmp; # introduced-arm=9 introduced-arm64=21 introduced-x86=12 introduced-x86_64=21
+    sigsetjmp;
     sigsetmask;
     sigsuspend;
     sigtimedwait; # introduced=23
@@ -977,23 +977,23 @@
     snprintf;
     socket;
     socketpair;
-    splice; # introduced=21
+    splice;
     sprintf;
-    srand; # introduced=21
+    srand;
     srand48;
-    srandom; # introduced=21
+    srandom;
     sscanf;
     stat;
-    stat64; # introduced=21
+    stat64;
     statfs;
-    statfs64; # introduced=21
-    statvfs; # introduced-arm=19 introduced-arm64=21 introduced-x86=19 introduced-x86_64=21
-    statvfs64; # introduced=21
+    statfs64;
+    statvfs;
+    statvfs64;
     stderr; # var introduced=23
     stdin; # var introduced=23
     stdout; # var introduced=23
-    stpcpy; # introduced=21
-    stpncpy; # introduced=21
+    stpcpy;
+    stpncpy;
     strcasecmp;
     strcasecmp_l; # introduced=23
     strcasestr;
@@ -1001,7 +1001,7 @@
     strchr;
     strcmp;
     strcoll;
-    strcoll_l; # introduced=21
+    strcoll_l;
     strcpy;
     strcspn;
     strdup;
@@ -1009,7 +1009,7 @@
     strerror_l; # introduced=23
     strerror_r;
     strftime;
-    strftime_l; # introduced=21
+    strftime_l;
     strlcat;
     strlcpy;
     strlen;
@@ -1028,27 +1028,27 @@
     strspn;
     strstr;
     strtod;
-    strtof; # introduced=21
+    strtof;
     strtoimax;
     strtok;
     strtok_r;
     strtol;
-    strtold; # introduced=21
-    strtold_l; # introduced=21
+    strtold;
+    strtold_l;
     strtoll;
-    strtoll_l; # introduced=21
+    strtoll_l;
     strtoul;
     strtoull;
-    strtoull_l; # introduced=21
+    strtoull_l;
     strtoumax;
     strxfrm;
-    strxfrm_l; # introduced=21
-    swapoff; # introduced-arm=19 introduced-arm64=21 introduced-x86=19 introduced-x86_64=21
-    swapon; # introduced-arm=19 introduced-arm64=21 introduced-x86=19 introduced-x86_64=21
+    strxfrm_l;
+    swapoff;
+    swapon;
     swprintf;
     swscanf;
     symlink;
-    symlinkat; # introduced=21
+    symlinkat;
     sync;
     sys_siglist; # var
     sys_signame; # var
@@ -1057,54 +1057,54 @@
     sysinfo;
     syslog;
     system;
-    tcdrain; # introduced=21
-    tcflow; # introduced=21
-    tcflush; # introduced=21
-    tcgetattr; # introduced=21
+    tcdrain;
+    tcflow;
+    tcflush;
+    tcgetattr;
     tcgetpgrp;
-    tcgetsid; # introduced=21
-    tcsendbreak; # introduced=21
-    tcsetattr; # introduced=21
+    tcgetsid;
+    tcsendbreak;
+    tcsetattr;
     tcsetpgrp;
     tdelete;
     tdestroy;
-    tee; # introduced=21
+    tee;
     telldir; # introduced=23
     tempnam;
     tfind;
     tgkill;
     time;
-    timegm; # introduced-arm=12 introduced-arm64=21 introduced-x86=12 introduced-x86_64=21
+    timegm;
     timegm64; # arm x86
-    timelocal; # introduced-arm=12 introduced-arm64=21 introduced-x86=12 introduced-x86_64=21
+    timelocal;
     timelocal64; # arm x86
     timer_create;
     timer_delete;
     timer_getoverrun;
     timer_gettime;
     timer_settime;
-    timerfd_create; # introduced-arm=19 introduced-arm64=21 introduced-x86=19 introduced-x86_64=21
-    timerfd_gettime; # introduced-arm=19 introduced-arm64=21 introduced-x86=19 introduced-x86_64=21
-    timerfd_settime; # introduced-arm=19 introduced-arm64=21 introduced-x86=19 introduced-x86_64=21
+    timerfd_create;
+    timerfd_gettime;
+    timerfd_settime;
     times;
     timezone; # var
     tmpfile;
     tmpnam;
     toascii;
     tolower;
-    tolower_l; # introduced=21
+    tolower_l;
     toupper;
-    toupper_l; # introduced=21
+    toupper_l;
     towlower;
-    towlower_l; # introduced=21
+    towlower_l;
     towupper;
-    towupper_l; # introduced=21
+    towupper_l;
     truncate;
-    truncate64; # introduced=21
+    truncate64;
     tsearch;
     ttyname;
     ttyname_r;
-    twalk; # introduced=21
+    twalk;
     tzname; # var
     tzset;
     umask;
@@ -1117,16 +1117,16 @@
     unlinkat;
     unlockpt;
     unsetenv;
-    unshare; # introduced-arm=17 introduced-arm64=21 introduced-x86=17 introduced-x86_64=21
-    uselocale; # introduced=21
+    unshare;
+    uselocale;
     usleep;
     utime;
-    utimensat; # introduced-arm=12 introduced-arm64=21 introduced-x86=12 introduced-x86_64=21
+    utimensat;
     utimes;
     utmpname;
     valloc; # arm x86
     vasprintf;
-    vdprintf; # introduced=21
+    vdprintf;
     verr;
     verrx;
     vfdprintf; # arm x86 versioned=28
@@ -1134,22 +1134,22 @@
     vfprintf;
     vfscanf;
     vfwprintf;
-    vfwscanf; # introduced=21
-    vmsplice; # introduced=21
+    vfwscanf;
+    vmsplice;
     vprintf;
     vscanf;
     vsnprintf;
     vsprintf;
     vsscanf;
     vswprintf;
-    vswscanf; # introduced=21
+    vswscanf;
     vsyslog;
     vwarn;
     vwarnx;
     vwprintf;
-    vwscanf; # introduced=21
+    vwscanf;
     wait;
-    wait4; # introduced-arm=18 introduced-arm64=21 introduced-x86=18 introduced-x86_64=21
+    wait4;
     waitid;
     waitpid;
     warn;
@@ -1163,7 +1163,7 @@
     wcschr;
     wcscmp;
     wcscoll;
-    wcscoll_l; # introduced=21
+    wcscoll_l;
     wcscpy;
     wcscspn;
     wcsdup;
@@ -1177,33 +1177,33 @@
     wcsncmp;
     wcsncpy;
     wcsnlen;
-    wcsnrtombs; # introduced=21
+    wcsnrtombs;
     wcspbrk;
     wcsrchr;
     wcsrtombs;
     wcsspn;
     wcsstr;
     wcstod;
-    wcstof; # introduced=21
-    wcstoimax; # introduced=21
+    wcstof;
+    wcstoimax;
     wcstok;
     wcstol;
-    wcstold; # introduced=21
-    wcstold_l; # introduced=21
-    wcstoll; # introduced=21
-    wcstoll_l; # introduced=21
-    wcstombs; # introduced=21
+    wcstold;
+    wcstold_l;
+    wcstoll;
+    wcstoll_l;
+    wcstombs;
     wcstoul;
-    wcstoull; # introduced=21
-    wcstoull_l; # introduced=21
-    wcstoumax; # introduced=21
+    wcstoull;
+    wcstoull_l;
+    wcstoumax;
     wcswidth;
     wcsxfrm;
-    wcsxfrm_l; # introduced=21
+    wcsxfrm_l;
     wctob;
-    wctomb; # introduced=21
+    wctomb;
     wctype;
-    wctype_l; # introduced=21
+    wctype_l;
     wcwidth;
     wmemchr;
     wmemcmp;
@@ -1341,7 +1341,7 @@
     wctrans_l; # introduced=26
 } LIBC_N;
 
-LIBC_P { # introduced=P
+LIBC_P { # introduced=28
   global:
     __freading;
     __free_hook;
@@ -1442,7 +1442,7 @@
     wcstoul_l;
 } LIBC_O;
 
-LIBC_Q { # introduced=Q
+LIBC_Q { # introduced=29
   global:
     ___tls_get_addr; # x86
     __aeabi_read_tp; # arm
@@ -1478,7 +1478,7 @@
     android_mallopt; # apex llndk
 } LIBC_P;
 
-LIBC_R { # introduced=R
+LIBC_R { # introduced=30
   global:
     __mempcpy_chk;
     __tls_get_addr; # arm64
@@ -1548,7 +1548,7 @@
     _Unwind_VRS_Set; # arm
 } LIBC_Q;
 
-LIBC_S { # introduced=S
+LIBC_S { # introduced=31
   global:
     __libc_get_static_tls_bounds;
     __libc_register_thread_exit_callback;
@@ -1563,7 +1563,7 @@
     process_madvise;
 } LIBC_R;
 
-LIBC_T { # introduced=Tiramisu
+LIBC_T { # introduced=33
   global:
     backtrace;
     backtrace_symbols;
@@ -1574,7 +1574,7 @@
     pwritev64v2;
 } LIBC_S;
 
-LIBC_U { # introduced=UpsideDownCake
+LIBC_U { # introduced=34
   global:
     __freadahead;
     close_range;
@@ -1584,6 +1584,41 @@
     posix_spawn_file_actions_addfchdir_np;
 } LIBC_T;
 
+LIBC_V { # introduced=35
+  global:
+    android_crash_detail_register;
+    android_crash_detail_unregister;
+    android_crash_detail_replace_name;
+    android_crash_detail_replace_data;
+    epoll_pwait2;
+    epoll_pwait2_64;
+    _Fork;
+    localtime_rz;
+    mbsrtowcs_l;
+    mktime_z;
+    __riscv_flush_icache; # riscv64
+    __riscv_hwprobe; # riscv64
+    strerrorname_np;
+    tcgetwinsize;
+    tcsetwinsize;
+    timespec_getres;
+    tzalloc;
+    tzfree;
+    wcsrtombs_l;
+    __system_properties_zygote_reload; # apex
+} LIBC_U;
+
+LIBC_36 { # introduced=36
+  global:
+    lchmod;
+    mseal;
+    pthread_getaffinity_np;
+    pthread_setaffinity_np;
+    qsort_r;
+    sig2str;
+    str2sig;
+} LIBC_V;
+
 LIBC_PRIVATE {
   global:
     __accept4; # arm x86
diff --git a/libc/malloc_debug/Android.bp b/libc/malloc_debug/Android.bp
index 373d497..5d61801 100644
--- a/libc/malloc_debug/Android.bp
+++ b/libc/malloc_debug/Android.bp
@@ -3,6 +3,7 @@
 // ==============================================================
 // Used by libmemunreachable
 package {
+    default_team: "trendy_team_native_tools_libraries",
     // See: http://go/android-license-faq
     // A large-scale-change added 'default_applicable_licenses' to import
     // all of the 'license_kinds' from "bionic_libc_license"
@@ -61,6 +62,7 @@
         "DebugData.cpp",
         "debug_disable.cpp",
         "GuardData.cpp",
+        "LogAllocatorStats.cpp",
         "malloc_debug.cpp",
         "PointerData.cpp",
         "RecordData.cpp",
@@ -77,6 +79,10 @@
         "libmemunreachable",
     ],
 
+    whole_static_libs: [
+        "libmemory_trace",
+    ],
+
     shared_libs: [
         "libunwindstack",
     ],
@@ -197,4 +203,5 @@
         "-O0",
     ],
     test_suites: ["general-tests"],
+    test_config: "tests/AndroidTest.xml",
 }
diff --git a/libc/malloc_debug/Config.cpp b/libc/malloc_debug/Config.cpp
index be577bc..6be899d 100644
--- a/libc/malloc_debug/Config.cpp
+++ b/libc/malloc_debug/Config.cpp
@@ -187,6 +187,10 @@
         "record_allocs_file",
         {0, &Config::SetRecordAllocsFile},
     },
+    {
+        "record_allocs_on_exit",
+        {0, &Config::SetRecordAllocsOnExit},
+    },
 
     {
         "verify_pointers",
@@ -204,6 +208,14 @@
         "check_unreachable_on_signal",
         {CHECK_UNREACHABLE_ON_SIGNAL, &Config::VerifyValueEmpty},
     },
+    {
+        "log_allocator_stats_on_signal",
+        {LOG_ALLOCATOR_STATS_ON_SIGNAL, &Config::VerifyValueEmpty},
+    },
+    {
+        "log_allocator_stats_on_exit",
+        {LOG_ALLOCATOR_STATS_ON_EXIT, &Config::VerifyValueEmpty},
+    },
 };
 
 bool Config::ParseValue(const std::string& option, const std::string& value, size_t min_value,
@@ -397,6 +409,14 @@
   return true;
 }
 
+bool Config::SetRecordAllocsOnExit(const std::string& option, const std::string& value) {
+  if (Config::VerifyValueEmpty(option, value)) {
+    record_allocs_on_exit_ = true;
+    return true;
+  }
+  return false;
+}
+
 bool Config::VerifyValueEmpty(const std::string& option, const std::string& value) {
   if (!value.empty()) {
     // This is not valid.
@@ -409,7 +429,8 @@
 
 void Config::LogUsage() const {
   error_log("For malloc debug option descriptions go to:");
-  error_log("  https://android.googlesource.com/platform/bionic/+/master/libc/malloc_debug/README.md");
+  error_log(
+      "  https://android.googlesource.com/platform/bionic/+/main/libc/malloc_debug/README.md");
 }
 
 bool Config::GetOption(const char** options_str, std::string* option, std::string* value) {
@@ -466,6 +487,7 @@
   backtrace_min_size_bytes_ = 0;
   backtrace_max_size_bytes_ = SIZE_MAX;
   check_unreachable_signal_ = SIGRTMAX - 16;
+  log_allocator_stats_signal_ = SIGRTMAX - 15;
 
   // Process each option name we can find.
   std::string option;
diff --git a/libc/malloc_debug/Config.h b/libc/malloc_debug/Config.h
index ef1d2a9..4840d43 100644
--- a/libc/malloc_debug/Config.h
+++ b/libc/malloc_debug/Config.h
@@ -48,6 +48,8 @@
 constexpr uint64_t VERBOSE = 0x1000;
 constexpr uint64_t CHECK_UNREACHABLE_ON_SIGNAL = 0x2000;
 constexpr uint64_t BACKTRACE_SPECIFIC_SIZES = 0x4000;
+constexpr uint64_t LOG_ALLOCATOR_STATS_ON_SIGNAL = 0x8000;
+constexpr uint64_t LOG_ALLOCATOR_STATS_ON_EXIT = 0x10000;
 
 // In order to guarantee posix compliance, set the minimum alignment
 // to 8 bytes for 32 bit systems and 16 bytes for 64 bit systems.
@@ -97,9 +99,12 @@
   int record_allocs_signal() const { return record_allocs_signal_; }
   size_t record_allocs_num_entries() const { return record_allocs_num_entries_; }
   const std::string& record_allocs_file() const { return record_allocs_file_; }
+  bool record_allocs_on_exit() const { return record_allocs_on_exit_; }
 
   int check_unreachable_signal() const { return check_unreachable_signal_; }
 
+  int log_allocator_stats_signal() const { return log_allocator_stats_signal_; }
+
  private:
   struct OptionInfo {
     uint64_t option;
@@ -136,6 +141,7 @@
 
   bool SetRecordAllocs(const std::string& option, const std::string& value);
   bool SetRecordAllocsFile(const std::string& option, const std::string& value);
+  bool SetRecordAllocsOnExit(const std::string& option, const std::string& value);
 
   bool VerifyValueEmpty(const std::string& option, const std::string& value);
 
@@ -167,6 +173,7 @@
   int record_allocs_signal_ = 0;
   size_t record_allocs_num_entries_ = 0;
   std::string record_allocs_file_;
+  bool record_allocs_on_exit_ = false;
 
   uint64_t options_ = 0;
   uint8_t fill_alloc_value_;
@@ -175,4 +182,5 @@
   uint8_t rear_guard_value_;
 
   int check_unreachable_signal_ = 0;
+  int log_allocator_stats_signal_ = 0;
 };
diff --git a/libc/malloc_debug/DebugData.cpp b/libc/malloc_debug/DebugData.cpp
index 44c4a10..885cc95 100644
--- a/libc/malloc_debug/DebugData.cpp
+++ b/libc/malloc_debug/DebugData.cpp
@@ -31,6 +31,7 @@
 #include "Config.h"
 #include "DebugData.h"
 #include "GuardData.h"
+#include "LogAllocatorStats.h"
 #include "PointerData.h"
 #include "debug_disable.h"
 #include "malloc_debug.h"
@@ -75,6 +76,13 @@
   if (config_.options() & EXPAND_ALLOC) {
     extra_bytes_ += config_.expand_alloc_bytes();
   }
+
+  if (config_.options() & LOG_ALLOCATOR_STATS_ON_SIGNAL) {
+    if (!LogAllocatorStats::Initialize(config_)) {
+      return false;
+    }
+  }
+
   return true;
 }
 
diff --git a/libc/malloc_debug/LogAllocatorStats.cpp b/libc/malloc_debug/LogAllocatorStats.cpp
new file mode 100644
index 0000000..ee6bfdf
--- /dev/null
+++ b/libc/malloc_debug/LogAllocatorStats.cpp
@@ -0,0 +1,77 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *  * Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *  * Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in
+ *    the documentation and/or other materials provided with the
+ *    distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#include <errno.h>
+#include <malloc.h>
+#include <signal.h>
+#include <unistd.h>
+
+#include "Config.h"
+#include "LogAllocatorStats.h"
+#include "debug_log.h"
+
+namespace LogAllocatorStats {
+
+static std::atomic_bool g_call_mallopt = {};
+
+static void CallMalloptLogStats(int, struct siginfo*, void*) {
+  g_call_mallopt = true;
+}
+
+void Log() {
+  info_log("Logging allocator stats...");
+  if (mallopt(M_LOG_STATS, 0) == 0) {
+    error_log("mallopt(M_LOG_STATS, 0) call failed.");
+  }
+}
+
+void CheckIfShouldLog() {
+  bool expected = true;
+  if (g_call_mallopt.compare_exchange_strong(expected, false)) {
+    Log();
+  }
+}
+
+bool Initialize(const Config& config) {
+  struct sigaction64 log_stats_act = {};
+  log_stats_act.sa_sigaction = CallMalloptLogStats;
+  log_stats_act.sa_flags = SA_RESTART | SA_SIGINFO | SA_ONSTACK;
+  if (sigaction64(config.log_allocator_stats_signal(), &log_stats_act, nullptr) != 0) {
+    error_log("Unable to set up log allocator stats signal function: %s", strerror(errno));
+    return false;
+  }
+
+  if (config.options() & VERBOSE) {
+    info_log("%s: Run: 'kill -%d %d' to log allocator stats.", getprogname(),
+             config.log_allocator_stats_signal(), getpid());
+  }
+
+  return true;
+}
+
+}  // namespace LogAllocatorStats
diff --git a/libm/fenv-access.h b/libc/malloc_debug/LogAllocatorStats.h
similarity index 84%
copy from libm/fenv-access.h
copy to libc/malloc_debug/LogAllocatorStats.h
index 7acb34d..ded4f94 100644
--- a/libm/fenv-access.h
+++ b/libc/malloc_debug/LogAllocatorStats.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2021 The Android Open Source Project
+ * Copyright (C) 2023 The Android Open Source Project
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -28,6 +28,15 @@
 
 #pragma once
 
-#if defined(__x86_64__) || defined(__i386__)
-#pragma STDC FENV_ACCESS ON
-#endif
+// Forward declarations
+class ConfigData;
+
+namespace LogAllocatorStats {
+
+bool Initialize(const Config& config);
+
+void Log();
+
+void CheckIfShouldLog();
+
+}  // namespace LogAllocatorStats
diff --git a/libc/malloc_debug/MapData.cpp b/libc/malloc_debug/MapData.cpp
index b22c109..c58882a 100644
--- a/libc/malloc_debug/MapData.cpp
+++ b/libc/malloc_debug/MapData.cpp
@@ -34,6 +34,8 @@
 #include <stdlib.h>
 #include <string.h>
 #include <sys/mman.h>
+#include <sys/uio.h>
+#include <unistd.h>
 
 #include <vector>
 
@@ -69,148 +71,132 @@
 
   MapEntry* entry = new MapEntry(start, end, offset, name, name_len, flags);
   if (!(flags & PROT_READ)) {
-    // Any unreadable map will just get a zero load bias.
-    entry->load_bias = 0;
-    entry->init = true;
-    entry->valid = false;
+    // This will make sure that an unreadable map will prevent attempts to read
+    // elf data from the map.
+    entry->SetInvalid();
   }
   return entry;
 }
 
-template <typename T>
-static inline bool get_val(MapEntry* entry, uintptr_t addr, T* store) {
-  if (!(entry->flags & PROT_READ) || addr < entry->start || addr + sizeof(T) > entry->end) {
-    return false;
+void MapEntry::Init() {
+  if (init_) {
+    return;
   }
-  // Make sure the address is aligned properly.
-  if (addr & (sizeof(T) - 1)) {
-    return false;
-  }
-  *store = *reinterpret_cast<T*>(addr);
-  return true;
-}
+  init_ = true;
 
-static bool valid_elf(MapEntry* entry) {
-  uintptr_t addr = entry->start;
-  uintptr_t end;
-  if (__builtin_add_overflow(addr, SELFMAG, &end) || end >= entry->end) {
-    return false;
+  uintptr_t end_addr;
+  if (__builtin_add_overflow(start_, SELFMAG, &end_addr) || end_addr >= end_) {
+    return;
   }
 
-  return memcmp(reinterpret_cast<void*>(addr), ELFMAG, SELFMAG) == 0;
-}
-
-static void read_loadbias(MapEntry* entry) {
-  entry->load_bias = 0;
-  uintptr_t addr = entry->start;
   ElfW(Ehdr) ehdr;
-  if (!get_val<ElfW(Half)>(entry, addr + offsetof(ElfW(Ehdr), e_phnum), &ehdr.e_phnum)) {
-    return;
+  struct iovec src_io = {.iov_base = reinterpret_cast<void*>(start_), .iov_len = SELFMAG};
+  struct iovec dst_io = {.iov_base = ehdr.e_ident, .iov_len = SELFMAG};
+  ssize_t rc = process_vm_readv(getpid(), &dst_io, 1, &src_io, 1, 0);
+  valid_ = rc == SELFMAG && IS_ELF(ehdr);
+}
+
+uintptr_t MapEntry::GetLoadBias() {
+  if (!valid_) {
+    return 0;
   }
-  if (!get_val<ElfW(Off)>(entry, addr + offsetof(ElfW(Ehdr), e_phoff), &ehdr.e_phoff)) {
-    return;
+
+  if (load_bias_read_) {
+    return load_bias_;
   }
-  addr += ehdr.e_phoff;
+
+  load_bias_read_ = true;
+
+  ElfW(Ehdr) ehdr;
+  struct iovec src_io = {.iov_base = reinterpret_cast<void*>(start_), .iov_len = sizeof(ehdr)};
+  struct iovec dst_io = {.iov_base = &ehdr, .iov_len = sizeof(ehdr)};
+  ssize_t rc = process_vm_readv(getpid(), &dst_io, 1, &src_io, 1, 0);
+  if (rc != sizeof(ehdr)) {
+    return 0;
+  }
+
+  uintptr_t addr = start_ + ehdr.e_phoff;
   for (size_t i = 0; i < ehdr.e_phnum; i++) {
     ElfW(Phdr) phdr;
-    if (!get_val<ElfW(Word)>(entry, addr + offsetof(ElfW(Phdr), p_type), &phdr.p_type)) {
-      return;
-    }
-    if (!get_val<ElfW(Word)>(entry, addr + offsetof(ElfW(Phdr), p_flags), &phdr.p_flags)) {
-      return;
-    }
-    if (!get_val<ElfW(Off)>(entry, addr + offsetof(ElfW(Phdr), p_offset), &phdr.p_offset)) {
-      return;
+
+    src_io.iov_base = reinterpret_cast<void*>(addr);
+    src_io.iov_len = sizeof(phdr);
+    dst_io.iov_base = &phdr;
+    dst_io.iov_len = sizeof(phdr);
+    rc = process_vm_readv(getpid(), &dst_io, 1, &src_io, 1, 0);
+    if (rc != sizeof(phdr)) {
+      return 0;
     }
     if ((phdr.p_type == PT_LOAD) && (phdr.p_flags & PF_X) ) {
-      if (!get_val<ElfW(Addr)>(entry, addr + offsetof(ElfW(Phdr), p_vaddr), &phdr.p_vaddr)) {
-        return;
-      }
-      entry->load_bias = phdr.p_vaddr - phdr.p_offset;
-      return;
+      load_bias_ = phdr.p_vaddr - phdr.p_offset;
+      return load_bias_;
     }
     addr += sizeof(phdr);
   }
+  return 0;
 }
 
-static void inline init(MapEntry* entry) {
-  if (entry->init) {
-    return;
-  }
-  entry->init = true;
-  if (valid_elf(entry)) {
-    entry->valid = true;
-    read_loadbias(entry);
-  }
-}
-
-bool MapData::ReadMaps() {
+void MapData::ReadMaps() {
+  std::lock_guard<std::mutex> lock(m_);
   FILE* fp = fopen("/proc/self/maps", "re");
   if (fp == nullptr) {
-    return false;
+    return;
   }
 
+  ClearEntries();
+
   std::vector<char> buffer(1024);
   while (fgets(buffer.data(), buffer.size(), fp) != nullptr) {
     MapEntry* entry = parse_line(buffer.data());
     if (entry == nullptr) {
-      fclose(fp);
-      return false;
+      break;
     }
-
-    auto it = entries_.find(entry);
-    if (it == entries_.end()) {
-      entries_.insert(entry);
-    } else {
-      delete entry;
-    }
+    entries_.insert(entry);
   }
   fclose(fp);
-  return true;
 }
 
-MapData::~MapData() {
+void MapData::ClearEntries() {
   for (auto* entry : entries_) {
     delete entry;
   }
   entries_.clear();
 }
 
+MapData::~MapData() {
+  ClearEntries();
+}
+
 // Find the containing map info for the PC.
 const MapEntry* MapData::find(uintptr_t pc, uintptr_t* rel_pc) {
   MapEntry pc_entry(pc);
 
   std::lock_guard<std::mutex> lock(m_);
-
   auto it = entries_.find(&pc_entry);
   if (it == entries_.end()) {
-    ReadMaps();
-  }
-  it = entries_.find(&pc_entry);
-  if (it == entries_.end()) {
     return nullptr;
   }
 
   MapEntry* entry = *it;
-  init(entry);
+  entry->Init();
 
   if (rel_pc != nullptr) {
     // Need to check to see if this is a read-execute map and the read-only
     // map is the previous one.
-    if (!entry->valid && it != entries_.begin()) {
+    if (!entry->valid() && it != entries_.begin()) {
       MapEntry* prev_entry = *--it;
-      if (prev_entry->flags == PROT_READ && prev_entry->offset < entry->offset &&
-          prev_entry->name == entry->name) {
-        init(prev_entry);
+      if (prev_entry->flags() == PROT_READ && prev_entry->offset() < entry->offset() &&
+          prev_entry->name() == entry->name()) {
+        prev_entry->Init();
 
-        if (prev_entry->valid) {
-          entry->elf_start_offset = prev_entry->offset;
-          *rel_pc = pc - entry->start + entry->offset + prev_entry->load_bias;
+        if (prev_entry->valid()) {
+          entry->set_elf_start_offset(prev_entry->offset());
+          *rel_pc = pc - entry->start() + entry->offset() + prev_entry->GetLoadBias();
           return entry;
         }
       }
     }
-    *rel_pc = pc - entry->start + entry->offset + entry->load_bias;
+    *rel_pc = pc - entry->start() + entry->offset() + entry->GetLoadBias();
   }
   return entry;
 }
diff --git a/libc/malloc_debug/MapData.h b/libc/malloc_debug/MapData.h
index f2b3c1c..13bf9cb 100644
--- a/libc/malloc_debug/MapData.h
+++ b/libc/malloc_debug/MapData.h
@@ -36,26 +36,50 @@
 
 #include <platform/bionic/macros.h>
 
-struct MapEntry {
-  MapEntry(uintptr_t start, uintptr_t end, uintptr_t offset, const char* name, size_t name_len, int flags)
-      : start(start), end(end), offset(offset), name(name, name_len), flags(flags) {}
+class MapEntry {
+ public:
+  MapEntry() = default;
+  MapEntry(uintptr_t start, uintptr_t end, uintptr_t offset, const char* name, size_t name_len,
+           int flags)
+      : start_(start), end_(end), offset_(offset), name_(name, name_len), flags_(flags) {}
 
-  explicit MapEntry(uintptr_t pc) : start(pc), end(pc) {}
+  explicit MapEntry(uintptr_t pc) : start_(pc), end_(pc) {}
 
-  uintptr_t start;
-  uintptr_t end;
-  uintptr_t offset;
-  uintptr_t load_bias;
-  uintptr_t elf_start_offset = 0;
-  std::string name;
-  int flags;
-  bool init = false;
-  bool valid = false;
+  void Init();
+
+  uintptr_t GetLoadBias();
+
+  void SetInvalid() {
+    valid_ = false;
+    init_ = true;
+    load_bias_read_ = true;
+  }
+
+  bool valid() { return valid_; }
+  uintptr_t start() const { return start_; }
+  uintptr_t end() const { return end_; }
+  uintptr_t offset() const { return offset_; }
+  uintptr_t elf_start_offset() const { return elf_start_offset_; }
+  void set_elf_start_offset(uintptr_t elf_start_offset) { elf_start_offset_ = elf_start_offset; }
+  const std::string& name() const { return name_; }
+  int flags() const { return flags_; }
+
+ private:
+  uintptr_t start_;
+  uintptr_t end_;
+  uintptr_t offset_;
+  uintptr_t load_bias_ = 0;
+  uintptr_t elf_start_offset_ = 0;
+  std::string name_;
+  int flags_;
+  bool init_ = false;
+  bool valid_ = false;
+  bool load_bias_read_ = false;
 };
 
 // Ordering comparator that returns equivalence for overlapping entries
 struct compare_entries {
-  bool operator()(const MapEntry* a, const MapEntry* b) const { return a->end <= b->start; }
+  bool operator()(const MapEntry* a, const MapEntry* b) const { return a->end() <= b->start(); }
 };
 
 class MapData {
@@ -65,11 +89,15 @@
 
   const MapEntry* find(uintptr_t pc, uintptr_t* rel_pc = nullptr);
 
- private:
-  bool ReadMaps();
+  size_t NumMaps() { return entries_.size(); }
 
+  void ReadMaps();
+
+ private:
   std::mutex m_;
   std::set<MapEntry*, compare_entries> entries_;
 
+  void ClearEntries();
+
   BIONIC_DISALLOW_COPY_AND_ASSIGN(MapData);
 };
diff --git a/libm/fenv-access.h b/libc/malloc_debug/Nanotime.h
similarity index 82%
copy from libm/fenv-access.h
copy to libc/malloc_debug/Nanotime.h
index 7acb34d..d7c3f60 100644
--- a/libm/fenv-access.h
+++ b/libc/malloc_debug/Nanotime.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2021 The Android Open Source Project
+ * Copyright (C) 2012 The Android Open Source Project
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -28,6 +28,11 @@
 
 #pragma once
 
-#if defined(__x86_64__) || defined(__i386__)
-#pragma STDC FENV_ACCESS ON
-#endif
+#include <stdint.h>
+#include <time.h>
+
+static inline __always_inline uint64_t Nanotime() {
+  struct timespec t = {};
+  clock_gettime(CLOCK_MONOTONIC, &t);
+  return static_cast<uint64_t>(t.tv_sec) * 1000000000LL + t.tv_nsec;
+}
diff --git a/libc/malloc_debug/README.md b/libc/malloc_debug/README.md
index fddc4a3..750a469 100644
--- a/libc/malloc_debug/README.md
+++ b/libc/malloc_debug/README.md
@@ -170,7 +170,7 @@
 overrides this option, and should not be used at the same time.
 
 This option can also be used in combination with other tools such
-as [libmemunreachable](https://android.googlesource.com/platform/system/memory/libmemunreachable/+/master/README.md)
+as [libmemunreachable](https://android.googlesource.com/platform/system/memory/libmemunreachable/+/main/README.md)
 to only get backtraces for sizes of allocations listed as being leaked.
 
 ### backtrace\_max\_size=ALLOCATION\_SIZE\_BYTES
@@ -183,7 +183,7 @@
 overrides this option, and should not be used at the same time.
 
 This option can also be used in combination with other tools such
-as [libmemunreachable](https://android.googlesource.com/platform/system/memory/libmemunreachable/+/master/README.md)
+as [libmemunreachable](https://android.googlesource.com/platform/system/memory/libmemunreachable/+/main/README.md)
 to only get backtraces for sizes of allocations listed as being leaked.
 
 ### backtrace\_size=ALLOCATION\_SIZE\_BYTES
@@ -192,7 +192,7 @@
 This option overrides the backtrace\_min\_size and the backtrace\_max\_size.
 
 This option can also be used in combination with other tools such
-as [libmemunreachable](https://android.googlesource.com/platform/system/memory/libmemunreachable/+/master/README.md)
+as [libmemunreachable](https://android.googlesource.com/platform/system/memory/libmemunreachable/+/main/README.md)
 to only get backtraces for sizes of allocations listed as being leaked.
 
 ### backtrace\_full
@@ -340,6 +340,16 @@
     04-15 12:35:33.305  7412  7412 E malloc_debug:           #02  pc 000a9e38  /system/lib/libc++.so
     04-15 12:35:33.305  7412  7412 E malloc_debug:           #03  pc 000a28a8  /system/lib/libc++.so
 
+### log\_allocator\_stats\_on\_signal
+As of Android V, this option will trigger a call to:
+
+    mallopt(M_LOG_STATS, 0);
+
+When a process receives the signal SIGRTMAX - 15 (which is 49 on Android
+devices). The mallopt call is not async safe and is not called from the
+signal handler directly. Instead, the next time any allocation call occurs,
+the mallopt is called.
+
 ### record\_allocs[=TOTAL\_ENTRIES]
 Keep track of every allocation/free made on every thread and dump them
 to a file when the signal SIGRTMAX - 18 (which is 46 on Android devices)
@@ -446,6 +456,19 @@
 
 **NOTE**: This option is not available until the O release of Android.
 
+### record\_allocs\_on\_exit
+This option only has meaning if record\_allocs is set. It indicates that
+when the process terminates, the record file should be created
+automatically.
+
+The only caveat to this option is that when the process terminates,
+the file that will contain the records will be the normal file name
+with **.PID** appended. Where PID is the pid of the process that has
+terminated. This is to avoid cases where a number of processes exit
+at the same time and attempt to write to the same file.
+
+**NOTE**: This option is not available until the V release of Android.
+
 ### verify\_pointers
 Track all live allocations to determine if a pointer is used that does not
 exist. This option is a lightweight way to verify that all
diff --git a/libc/malloc_debug/RecordData.cpp b/libc/malloc_debug/RecordData.cpp
index 8a77170..1641732 100644
--- a/libc/malloc_debug/RecordData.cpp
+++ b/libc/malloc_debug/RecordData.cpp
@@ -39,72 +39,19 @@
 #include <mutex>
 
 #include <android-base/stringprintf.h>
+#include <memory_trace/MemoryTrace.h>
 
 #include "Config.h"
 #include "DebugData.h"
+#include "Nanotime.h"
 #include "RecordData.h"
 #include "debug_disable.h"
 #include "debug_log.h"
 
-RecordEntry::RecordEntry() : tid_(gettid()) {
-}
-
-bool ThreadCompleteEntry::Write(int fd) const {
-  return dprintf(fd, "%d: thread_done 0x0\n", tid_) > 0;
-}
-
-AllocEntry::AllocEntry(void* pointer, uint64_t start_ns, uint64_t end_ns)
-    : pointer_(pointer), start_ns_(start_ns), end_ns_(end_ns) {}
-
-MallocEntry::MallocEntry(void* pointer, size_t size, uint64_t start_ns, uint64_t end_ns)
-    : AllocEntry(pointer, start_ns, end_ns), size_(size) {}
-
-bool MallocEntry::Write(int fd) const {
-  return dprintf(fd, "%d: malloc %p %zu %" PRIu64 " %" PRIu64 "\n", tid_, pointer_, size_,
-                 start_ns_, end_ns_) > 0;
-}
-
-FreeEntry::FreeEntry(void* pointer, uint64_t start_ns, uint64_t end_ns)
-    : AllocEntry(pointer, start_ns, end_ns) {}
-
-bool FreeEntry::Write(int fd) const {
-  return dprintf(fd, "%d: free %p %" PRIu64 " %" PRIu64 "\n", tid_, pointer_, start_ns_, end_ns_) >
-         0;
-}
-
-CallocEntry::CallocEntry(void* pointer, size_t nmemb, size_t size, uint64_t start_ns,
-                         uint64_t end_ns)
-    : MallocEntry(pointer, size, start_ns, end_ns), nmemb_(nmemb) {}
-
-bool CallocEntry::Write(int fd) const {
-  return dprintf(fd, "%d: calloc %p %zu %zu %" PRIu64 " %" PRIu64 "\n", tid_, pointer_, nmemb_,
-                 size_, start_ns_, end_ns_) > 0;
-}
-
-ReallocEntry::ReallocEntry(void* pointer, size_t size, void* old_pointer, uint64_t start_ns,
-                           uint64_t end_ns)
-    : MallocEntry(pointer, size, start_ns, end_ns), old_pointer_(old_pointer) {}
-
-bool ReallocEntry::Write(int fd) const {
-  return dprintf(fd, "%d: realloc %p %p %zu %" PRIu64 " %" PRIu64 "\n", tid_, pointer_,
-                 old_pointer_, size_, start_ns_, end_ns_) > 0;
-}
-
-// aligned_alloc, posix_memalign, memalign, pvalloc, valloc all recorded with this class.
-MemalignEntry::MemalignEntry(void* pointer, size_t size, size_t alignment, uint64_t start_ns,
-                             uint64_t end_ns)
-    : MallocEntry(pointer, size, start_ns, end_ns), alignment_(alignment) {}
-
-bool MemalignEntry::Write(int fd) const {
-  return dprintf(fd, "%d: memalign %p %zu %zu %" PRIu64 " %" PRIu64 "\n", tid_, pointer_,
-                 alignment_, size_, start_ns_, end_ns_) > 0;
-}
-
 struct ThreadData {
-  ThreadData(RecordData* record_data, ThreadCompleteEntry* entry)
-      : record_data(record_data), entry(entry) {}
-  RecordData* record_data;
-  ThreadCompleteEntry* entry;
+  ThreadData(RecordData* record_data) : record_data(record_data) {}
+
+  RecordData* record_data = nullptr;
   size_t count = 0;
 };
 
@@ -117,7 +64,8 @@
   if (thread_data->count == 4) {
     ScopedDisableDebugCalls disable;
 
-    thread_data->record_data->AddEntryOnly(thread_data->entry);
+    thread_data->record_data->AddEntryOnly(memory_trace::Entry{
+        .tid = gettid(), .type = memory_trace::THREAD_DONE, .end_ns = Nanotime()});
     delete thread_data;
   } else {
     pthread_setspecific(thread_data->record_data->key(), data);
@@ -131,22 +79,35 @@
   record_obj_->WriteEntries();
 }
 
+void RecordData::WriteEntriesOnExit() {
+  if (record_obj_ == nullptr) return;
+
+  // Append the current pid to the file name to avoid multiple processes
+  // writing to the same file.
+  std::string file(record_obj_->file());
+  file += "." + std::to_string(getpid());
+  record_obj_->WriteEntries(file);
+}
+
 void RecordData::WriteEntries() {
+  WriteEntries(file_);
+}
+
+void RecordData::WriteEntries(const std::string& file) {
   std::lock_guard<std::mutex> entries_lock(entries_lock_);
   if (cur_index_ == 0) {
     info_log("No alloc entries to write.");
     return;
   }
 
-  int dump_fd =
-      open(dump_file_.c_str(), O_WRONLY | O_CREAT | O_TRUNC | O_CLOEXEC | O_NOFOLLOW, 0755);
+  int dump_fd = open(file.c_str(), O_WRONLY | O_CREAT | O_TRUNC | O_CLOEXEC | O_NOFOLLOW, 0755);
   if (dump_fd == -1) {
-    error_log("Cannot create record alloc file %s: %s", dump_file_.c_str(), strerror(errno));
+    error_log("Cannot create record alloc file %s: %s", file.c_str(), strerror(errno));
     return;
   }
 
   for (size_t i = 0; i < cur_index_; i++) {
-    if (!entries_[i]->Write(dump_fd)) {
+    if (!memory_trace::WriteEntryToFd(dump_fd, entries_[i])) {
       error_log("Failed to write record alloc information: %s", strerror(errno));
       break;
     }
@@ -179,7 +140,7 @@
 
   entries_.resize(config.record_allocs_num_entries());
   cur_index_ = 0U;
-  dump_file_ = config.record_allocs_file();
+  file_ = config.record_allocs_file();
 
   return true;
 }
@@ -188,23 +149,23 @@
   pthread_key_delete(key_);
 }
 
-void RecordData::AddEntryOnly(const RecordEntry* entry) {
+void RecordData::AddEntryOnly(const memory_trace::Entry& entry) {
   std::lock_guard<std::mutex> entries_lock(entries_lock_);
   if (cur_index_ == entries_.size()) {
     // Maxed out, throw the entry away.
     return;
   }
 
-  entries_[cur_index_++].reset(entry);
+  entries_[cur_index_++] = entry;
   if (cur_index_ == entries_.size()) {
     info_log("Maximum number of records added, all new operations will be dropped.");
   }
 }
 
-void RecordData::AddEntry(const RecordEntry* entry) {
+void RecordData::AddEntry(const memory_trace::Entry& entry) {
   void* data = pthread_getspecific(key_);
   if (data == nullptr) {
-    ThreadData* thread_data = new ThreadData(this, new ThreadCompleteEntry());
+    ThreadData* thread_data = new ThreadData(this);
     pthread_setspecific(key_, thread_data);
   }
 
diff --git a/libc/malloc_debug/RecordData.h b/libc/malloc_debug/RecordData.h
index a02c956..f4b0d82 100644
--- a/libc/malloc_debug/RecordData.h
+++ b/libc/malloc_debug/RecordData.h
@@ -39,117 +39,9 @@
 #include <string>
 #include <vector>
 
+#include <memory_trace/MemoryTrace.h>
 #include <platform/bionic/macros.h>
 
-class RecordEntry {
- public:
-  RecordEntry();
-  virtual ~RecordEntry() = default;
-
-  virtual bool Write(int fd) const = 0;
-
- protected:
-  pid_t tid_;
-
- private:
-  BIONIC_DISALLOW_COPY_AND_ASSIGN(RecordEntry);
-};
-
-class ThreadCompleteEntry : public RecordEntry {
- public:
-  ThreadCompleteEntry() = default;
-  virtual ~ThreadCompleteEntry() = default;
-
-  bool Write(int fd) const override;
-
- private:
-  BIONIC_DISALLOW_COPY_AND_ASSIGN(ThreadCompleteEntry);
-};
-
-class AllocEntry : public RecordEntry {
- public:
-  explicit AllocEntry(void* pointer, uint64_t st, uint64_t et);
-  virtual ~AllocEntry() = default;
-
- protected:
-  void* pointer_;
-
-  // The start/end time of this operation.
-  uint64_t start_ns_;
-  uint64_t end_ns_;
-
- private:
-  BIONIC_DISALLOW_COPY_AND_ASSIGN(AllocEntry);
-};
-
-class MallocEntry : public AllocEntry {
- public:
-  MallocEntry(void* pointer, size_t size, uint64_t st, uint64_t et);
-  virtual ~MallocEntry() = default;
-
-  bool Write(int fd) const override;
-
- protected:
-  size_t size_;
-
- private:
-  BIONIC_DISALLOW_COPY_AND_ASSIGN(MallocEntry);
-};
-
-class FreeEntry : public AllocEntry {
- public:
-  explicit FreeEntry(void* pointer, uint64_t st, uint64_t et);
-  virtual ~FreeEntry() = default;
-
-  bool Write(int fd) const override;
-
- private:
-  BIONIC_DISALLOW_COPY_AND_ASSIGN(FreeEntry);
-};
-
-class CallocEntry : public MallocEntry {
- public:
-  CallocEntry(void* pointer, size_t nmemb, size_t size, uint64_t st, uint64_t et);
-  virtual ~CallocEntry() = default;
-
-  bool Write(int fd) const override;
-
- protected:
-  size_t nmemb_;
-
- private:
-  BIONIC_DISALLOW_COPY_AND_ASSIGN(CallocEntry);
-};
-
-class ReallocEntry : public MallocEntry {
- public:
-  ReallocEntry(void* pointer, size_t size, void* old_pointer, uint64_t st, uint64_t et);
-  virtual ~ReallocEntry() = default;
-
-  bool Write(int fd) const override;
-
- protected:
-  void* old_pointer_;
-
- private:
-  BIONIC_DISALLOW_COPY_AND_ASSIGN(ReallocEntry);
-};
-
-// aligned_alloc, posix_memalign, memalign, pvalloc, valloc all recorded with this class.
-class MemalignEntry : public MallocEntry {
- public:
-  MemalignEntry(void* pointer, size_t size, size_t alignment, uint64_t st, uint64_t et);
-  virtual ~MemalignEntry() = default;
-
-  bool Write(int fd) const override;
-
- protected:
-  size_t alignment_;
-
- private:
-  BIONIC_DISALLOW_COPY_AND_ASSIGN(MemalignEntry);
-};
-
 class Config;
 
 class RecordData {
@@ -159,22 +51,26 @@
 
   bool Initialize(const Config& config);
 
-  void AddEntry(const RecordEntry* entry);
-  void AddEntryOnly(const RecordEntry* entry);
+  void AddEntry(const memory_trace::Entry& entry);
+  void AddEntryOnly(const memory_trace::Entry& entry);
 
+  const std::string& file() { return file_; }
   pthread_key_t key() { return key_; }
 
+  static void WriteEntriesOnExit();
+
  private:
   static void WriteData(int, siginfo_t*, void*);
   static RecordData* record_obj_;
 
   void WriteEntries();
+  void WriteEntries(const std::string& file);
 
   std::mutex entries_lock_;
   pthread_key_t key_;
-  std::vector<std::unique_ptr<const RecordEntry>> entries_;
+  std::vector<memory_trace::Entry> entries_;
   size_t cur_index_;
-  std::string dump_file_;
+  std::string file_;
 
   BIONIC_DISALLOW_COPY_AND_ASSIGN(RecordData);
 };
diff --git a/libc/malloc_debug/backtrace.cpp b/libc/malloc_debug/backtrace.cpp
index ecb3a80..6a32fca 100644
--- a/libc/malloc_debug/backtrace.cpp
+++ b/libc/malloc_debug/backtrace.cpp
@@ -50,7 +50,7 @@
 typedef struct _Unwind_Context __unwind_context;
 
 static MapData g_map_data;
-static const MapEntry* g_current_code_map = nullptr;
+static MapEntry g_current_code_map;
 
 static _Unwind_Reason_Code find_current_map(__unwind_context* context, void*) {
   uintptr_t ip = _Unwind_GetIP(context);
@@ -58,11 +58,15 @@
   if (ip == 0) {
     return _URC_END_OF_STACK;
   }
-  g_current_code_map = g_map_data.find(ip);
+  auto map = g_map_data.find(ip);
+  if (map != nullptr) {
+    g_current_code_map = *map;
+  }
   return _URC_END_OF_STACK;
 }
 
 void backtrace_startup() {
+  g_map_data.ReadMaps();
   _Unwind_Backtrace(find_current_map, nullptr);
 }
 
@@ -98,7 +102,8 @@
   }
 
   // Do not record the frames that fall in our own shared library.
-  if (g_current_code_map && (ip >= g_current_code_map->start) && ip < g_current_code_map->end) {
+  if (g_current_code_map.start() != 0 && (ip >= g_current_code_map.start()) &&
+      ip < g_current_code_map.end()) {
     return _URC_NO_REASON;
   }
 
@@ -113,6 +118,10 @@
 }
 
 std::string backtrace_string(const uintptr_t* frames, size_t frame_count) {
+  if (g_map_data.NumMaps() == 0) {
+    g_map_data.ReadMaps();
+  }
+
   std::string str;
 
   for (size_t frame_num = 0; frame_num < frame_count; frame_num++) {
@@ -130,14 +139,15 @@
     uintptr_t rel_pc = offset;
     const MapEntry* entry = g_map_data.find(frames[frame_num], &rel_pc);
 
-    const char* soname = (entry != nullptr) ? entry->name.c_str() : info.dli_fname;
+    const char* soname = (entry != nullptr) ? entry->name().c_str() : info.dli_fname;
     if (soname == nullptr) {
       soname = "<unknown>";
     }
 
     char offset_buf[128];
-    if (entry != nullptr && entry->elf_start_offset != 0) {
-      snprintf(offset_buf, sizeof(offset_buf), " (offset 0x%" PRIxPTR ")", entry->elf_start_offset);
+    if (entry != nullptr && entry->elf_start_offset() != 0) {
+      snprintf(offset_buf, sizeof(offset_buf), " (offset 0x%" PRIxPTR ")",
+               entry->elf_start_offset());
     } else {
       offset_buf[0] = '\0';
     }
@@ -167,5 +177,6 @@
 }
 
 void backtrace_log(const uintptr_t* frames, size_t frame_count) {
+  g_map_data.ReadMaps();
   error_log_string(backtrace_string(frames, frame_count).c_str());
 }
diff --git a/libc/malloc_debug/malloc_debug.cpp b/libc/malloc_debug/malloc_debug.cpp
index b06ec9e..c183897 100644
--- a/libc/malloc_debug/malloc_debug.cpp
+++ b/libc/malloc_debug/malloc_debug.cpp
@@ -53,6 +53,8 @@
 
 #include "Config.h"
 #include "DebugData.h"
+#include "LogAllocatorStats.h"
+#include "Nanotime.h"
 #include "Unreachable.h"
 #include "UnwindBacktrace.h"
 #include "backtrace.h"
@@ -69,12 +71,6 @@
 
 const MallocDispatch* g_dispatch;
 
-static __always_inline uint64_t Nanotime() {
-  struct timespec t = {};
-  clock_gettime(CLOCK_MONOTONIC, &t);
-  return static_cast<uint64_t>(t.tv_sec) * 1000000000LL + t.tv_nsec;
-}
-
 namespace {
 // A TimedResult contains the result of from malloc end_ns al. functions and the
 // start/end timestamps.
@@ -450,12 +446,20 @@
     PointerData::LogLeaks();
   }
 
+  if ((g_debug->config().options() & RECORD_ALLOCS) && g_debug->config().record_allocs_on_exit()) {
+    RecordData::WriteEntriesOnExit();
+  }
+
   if ((g_debug->config().options() & BACKTRACE) && g_debug->config().backtrace_dump_on_exit()) {
     debug_dump_heap(android::base::StringPrintf("%s.%d.exit.txt",
                                                 g_debug->config().backtrace_dump_prefix().c_str(),
                                                 getpid()).c_str());
   }
 
+  if (g_debug->config().options() & LOG_ALLOCATOR_STATS_ON_EXIT) {
+    LogAllocatorStats::Log();
+  }
+
   backtrace_shutdown();
 
   // In order to prevent any issues of threads freeing previous pointers
@@ -517,11 +521,15 @@
 }
 
 static TimedResult InternalMalloc(size_t size) {
-  if ((g_debug->config().options() & BACKTRACE) && g_debug->pointer->ShouldDumpAndReset()) {
+  uint64_t options = g_debug->config().options();
+  if ((options & BACKTRACE) && g_debug->pointer->ShouldDumpAndReset()) {
     debug_dump_heap(android::base::StringPrintf(
                         "%s.%d.txt", g_debug->config().backtrace_dump_prefix().c_str(), getpid())
                         .c_str());
   }
+  if (options & LOG_ALLOCATOR_STATS_ON_SIGNAL) {
+    LogAllocatorStats::CheckIfShouldLog();
+  }
 
   if (size == 0) {
     size = 1;
@@ -585,19 +593,28 @@
   TimedResult result = InternalMalloc(size);
 
   if (g_debug->config().options() & RECORD_ALLOCS) {
-    g_debug->record->AddEntry(new MallocEntry(result.getValue<void*>(), size,
-                                              result.GetStartTimeNS(), result.GetEndTimeNS()));
+    g_debug->record->AddEntry(
+        memory_trace::Entry{.tid = gettid(),
+                            .type = memory_trace::MALLOC,
+                            .ptr = reinterpret_cast<uint64_t>(result.getValue<void*>()),
+                            .size = size,
+                            .start_ns = result.GetStartTimeNS(),
+                            .end_ns = result.GetEndTimeNS()});
   }
 
   return result.getValue<void*>();
 }
 
 static TimedResult InternalFree(void* pointer) {
-  if ((g_debug->config().options() & BACKTRACE) && g_debug->pointer->ShouldDumpAndReset()) {
+  uint64_t options = g_debug->config().options();
+  if ((options & BACKTRACE) && g_debug->pointer->ShouldDumpAndReset()) {
     debug_dump_heap(android::base::StringPrintf(
                         "%s.%d.txt", g_debug->config().backtrace_dump_prefix().c_str(), getpid())
                         .c_str());
   }
+  if (options & LOG_ALLOCATOR_STATS_ON_SIGNAL) {
+    LogAllocatorStats::CheckIfShouldLog();
+  }
 
   void* free_pointer = pointer;
   size_t bytes;
@@ -670,8 +687,11 @@
   TimedResult result = InternalFree(pointer);
 
   if (g_debug->config().options() & RECORD_ALLOCS) {
-    g_debug->record->AddEntry(
-        new FreeEntry(pointer, result.GetStartTimeNS(), result.GetEndTimeNS()));
+    g_debug->record->AddEntry(memory_trace::Entry{.tid = gettid(),
+                                                  .type = memory_trace::FREE,
+                                                  .ptr = reinterpret_cast<uint64_t>(pointer),
+                                                  .start_ns = result.GetStartTimeNS(),
+                                                  .end_ns = result.GetEndTimeNS()});
   }
 }
 
@@ -754,8 +774,13 @@
     }
 
     if (g_debug->config().options() & RECORD_ALLOCS) {
-      g_debug->record->AddEntry(new MemalignEntry(pointer, bytes, alignment,
-                                                  result.GetStartTimeNS(), result.GetEndTimeNS()));
+      g_debug->record->AddEntry(memory_trace::Entry{.tid = gettid(),
+                                                    .type = memory_trace::MEMALIGN,
+                                                    .ptr = reinterpret_cast<uint64_t>(pointer),
+                                                    .size = bytes,
+                                                    .u.align = alignment,
+                                                    .start_ns = result.GetStartTimeNS(),
+                                                    .end_ns = result.GetEndTimeNS()});
     }
   }
 
@@ -774,11 +799,16 @@
 
   if (pointer == nullptr) {
     TimedResult result = InternalMalloc(bytes);
-    if (g_debug->config().options() & RECORD_ALLOCS) {
-      g_debug->record->AddEntry(new ReallocEntry(result.getValue<void*>(), bytes, nullptr,
-                                                 result.GetStartTimeNS(), result.GetEndTimeNS()));
-    }
     pointer = result.getValue<void*>();
+    if (g_debug->config().options() & RECORD_ALLOCS) {
+      g_debug->record->AddEntry(memory_trace::Entry{.tid = gettid(),
+                                                    .type = memory_trace::REALLOC,
+                                                    .ptr = reinterpret_cast<uint64_t>(pointer),
+                                                    .size = bytes,
+                                                    .u.old_ptr = 0,
+                                                    .start_ns = result.GetStartTimeNS(),
+                                                    .end_ns = result.GetEndTimeNS()});
+    }
     return pointer;
   }
 
@@ -790,8 +820,14 @@
     TimedResult result = InternalFree(pointer);
 
     if (g_debug->config().options() & RECORD_ALLOCS) {
-      g_debug->record->AddEntry(new ReallocEntry(nullptr, bytes, pointer, result.GetStartTimeNS(),
-                                                 result.GetEndTimeNS()));
+      g_debug->record->AddEntry(
+          memory_trace::Entry{.tid = gettid(),
+                              .type = memory_trace::REALLOC,
+                              .ptr = 0,
+                              .size = 0,
+                              .u.old_ptr = reinterpret_cast<uint64_t>(pointer),
+                              .start_ns = result.GetStartTimeNS(),
+                              .end_ns = result.GetEndTimeNS()});
     }
 
     return nullptr;
@@ -888,8 +924,13 @@
   }
 
   if (g_debug->config().options() & RECORD_ALLOCS) {
-    g_debug->record->AddEntry(new ReallocEntry(new_pointer, bytes, pointer, result.GetStartTimeNS(),
-                                               result.GetEndTimeNS()));
+    g_debug->record->AddEntry(memory_trace::Entry{.tid = gettid(),
+                                                  .type = memory_trace::REALLOC,
+                                                  .ptr = reinterpret_cast<uint64_t>(new_pointer),
+                                                  .size = bytes,
+                                                  .u.old_ptr = reinterpret_cast<uint64_t>(pointer),
+                                                  .start_ns = result.GetStartTimeNS(),
+                                                  .end_ns = result.GetEndTimeNS()});
   }
 
   return new_pointer;
@@ -945,8 +986,13 @@
   }
 
   if (g_debug->config().options() & RECORD_ALLOCS) {
-    g_debug->record->AddEntry(
-        new CallocEntry(pointer, nmemb, bytes, result.GetStartTimeNS(), result.GetEndTimeNS()));
+    g_debug->record->AddEntry(memory_trace::Entry{.tid = gettid(),
+                                                  .type = memory_trace::CALLOC,
+                                                  .ptr = reinterpret_cast<uint64_t>(pointer),
+                                                  .size = bytes,
+                                                  .u.n_elements = nmemb,
+                                                  .start_ns = result.GetStartTimeNS(),
+                                                  .end_ns = result.GetEndTimeNS()});
   }
 
   if (pointer != nullptr && g_debug->TrackPointers()) {
diff --git a/libc/malloc_debug/tests/AndroidTest.xml b/libc/malloc_debug/tests/AndroidTest.xml
new file mode 100644
index 0000000..c89cbb5
--- /dev/null
+++ b/libc/malloc_debug/tests/AndroidTest.xml
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2023 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<configuration description="Runs malloc_debug_system_tests.">
+    <option name="test-suite-tag" value="apct" />
+    <option name="test-suite-tag" value="apct-native" />
+
+    <!-- cannot be autogenerated: b/153565474 -->
+    <target_preparer class="com.android.tradefed.targetprep.RebootTargetPreparer">
+        <!-- flake mitigation, in case device is in bad state-->
+        <option name="pre-reboot" value="true" />
+        <!-- This test can become flaky if there are lots of other tests
+          running at the same time so do this to attempt to run this test
+          as isolated as possible.
+          tests. -->
+        <option name="post-reboot" value="true" />
+    </target_preparer>
+
+    <target_preparer class="com.android.tradefed.targetprep.RootTargetPreparer"/>
+
+    <target_preparer class="com.android.tradefed.targetprep.PushFilePreparer">
+        <option name="cleanup" value="true" />
+        <option name="push" value="malloc_debug_system_tests->/data/local/tests/unrestricted/malloc_debug_system_tests" />
+    </target_preparer>
+
+    <test class="com.android.tradefed.testtype.GTest" >
+        <option name="native-test-device-path" value="/data/local/tests/unrestricted/" />
+        <option name="module-name" value="malloc_debug_system_tests" />
+    </test>
+</configuration>
diff --git a/libc/malloc_debug/tests/malloc_debug_config_tests.cpp b/libc/malloc_debug/tests/malloc_debug_config_tests.cpp
index bc7af6d..d33f9cd 100644
--- a/libc/malloc_debug/tests/malloc_debug_config_tests.cpp
+++ b/libc/malloc_debug/tests/malloc_debug_config_tests.cpp
@@ -40,8 +40,9 @@
 };
 
 std::string usage_string(
-  "6 malloc_debug For malloc debug option descriptions go to:\n"
-  "6 malloc_debug   https://android.googlesource.com/platform/bionic/+/master/libc/malloc_debug/README.md\n");
+    "6 malloc_debug For malloc debug option descriptions go to:\n"
+    "6 malloc_debug   "
+    "https://android.googlesource.com/platform/bionic/+/main/libc/malloc_debug/README.md\n");
 
 TEST_F(MallocDebugConfigTest, unknown_option) {
 
@@ -570,6 +571,25 @@
   ASSERT_STREQ("", getFakeLogPrint().c_str());
 }
 
+TEST_F(MallocDebugConfigTest, record_allocs_on_exit) {
+  ASSERT_TRUE(InitConfig("record_allocs_on_exit")) << getFakeLogPrint();
+  ASSERT_EQ(0U, config->options());
+  ASSERT_TRUE(config->record_allocs_on_exit());
+
+  ASSERT_STREQ("", getFakeLogBuf().c_str());
+  ASSERT_STREQ("", getFakeLogPrint().c_str());
+}
+
+TEST_F(MallocDebugConfigTest, record_allocs_on_exit_error) {
+  ASSERT_FALSE(InitConfig("record_allocs_on_exit=something")) << getFakeLogPrint();
+
+  ASSERT_STREQ("", getFakeLogBuf().c_str());
+  std::string log_msg(
+      "6 malloc_debug malloc_testing: value set for option 'record_allocs_on_exit' "
+      "which does not take a value\n");
+  ASSERT_STREQ((log_msg + usage_string).c_str(), getFakeLogPrint().c_str());
+}
+
 TEST_F(MallocDebugConfigTest, guard_min_error) {
   ASSERT_FALSE(InitConfig("guard=0"));
 
@@ -823,6 +843,42 @@
   ASSERT_STREQ((log_msg + usage_string).c_str(), getFakeLogPrint().c_str());
 }
 
+TEST_F(MallocDebugConfigTest, log_allocator_stats_on_signal) {
+  ASSERT_TRUE(InitConfig("log_allocator_stats_on_signal")) << getFakeLogPrint();
+  ASSERT_EQ(LOG_ALLOCATOR_STATS_ON_SIGNAL, config->options());
+
+  ASSERT_STREQ("", getFakeLogBuf().c_str());
+  ASSERT_STREQ("", getFakeLogPrint().c_str());
+}
+
+TEST_F(MallocDebugConfigTest, trigger_log_allocator_stats_on_signal_fail) {
+  ASSERT_FALSE(InitConfig("log_allocator_stats_on_signal=200")) << getFakeLogPrint();
+
+  ASSERT_STREQ("", getFakeLogBuf().c_str());
+  std::string log_msg(
+      "6 malloc_debug malloc_testing: value set for option 'log_allocator_stats_on_signal' "
+      "which does not take a value\n");
+  ASSERT_STREQ((log_msg + usage_string).c_str(), getFakeLogPrint().c_str());
+}
+
+TEST_F(MallocDebugConfigTest, log_allocator_stats_on_exit) {
+  ASSERT_TRUE(InitConfig("log_allocator_stats_on_exit")) << getFakeLogPrint();
+  ASSERT_EQ(LOG_ALLOCATOR_STATS_ON_EXIT, config->options());
+
+  ASSERT_STREQ("", getFakeLogBuf().c_str());
+  ASSERT_STREQ("", getFakeLogPrint().c_str());
+}
+
+TEST_F(MallocDebugConfigTest, trigger_log_allocator_stats_on_exit_fail) {
+  ASSERT_FALSE(InitConfig("log_allocator_stats_on_exit=200")) << getFakeLogPrint();
+
+  ASSERT_STREQ("", getFakeLogBuf().c_str());
+  std::string log_msg(
+      "6 malloc_debug malloc_testing: value set for option 'log_allocator_stats_on_exit' "
+      "which does not take a value\n");
+  ASSERT_STREQ((log_msg + usage_string).c_str(), getFakeLogPrint().c_str());
+}
+
 TEST_F(MallocDebugConfigTest, size) {
   ASSERT_TRUE(InitConfig("backtrace_size=37")) << getFakeLogPrint();
   ASSERT_EQ(BACKTRACE_SPECIFIC_SIZES, config->options());
diff --git a/libc/malloc_debug/tests/malloc_debug_system_tests.cpp b/libc/malloc_debug/tests/malloc_debug_system_tests.cpp
index aee2572..d7a7a4f 100644
--- a/libc/malloc_debug/tests/malloc_debug_system_tests.cpp
+++ b/libc/malloc_debug/tests/malloc_debug_system_tests.cpp
@@ -77,7 +77,7 @@
       // This avoids accidentally grabbing data from a previous process with
       // the same pid.
       log_start_time_ = {};
-      logger_list* list = android_logger_list_open(LOG_ID_MAIN, ANDROID_LOG_NONBLOCK, 1000, 0);
+      logger_list* list = android_logger_list_open(LOG_ID_MAIN, ANDROID_LOG_NONBLOCK, INT_MAX, 0);
       if (list == nullptr) {
         return;
       }
@@ -111,7 +111,7 @@
       while (true) {
         // Do not use non-blocking mode so that the two threads
         // are essentially asleep and not consuming any cpu.
-        list = android_logger_list_open(log, 0, 1000, pid);
+        list = android_logger_list_open(log, 0, INT_MAX, pid);
         if (list != nullptr) {
           break;
         }
diff --git a/libc/malloc_debug/tests/malloc_debug_unit_tests.cpp b/libc/malloc_debug/tests/malloc_debug_unit_tests.cpp
index bf3ed14..c808dc0 100644
--- a/libc/malloc_debug/tests/malloc_debug_unit_tests.cpp
+++ b/libc/malloc_debug/tests/malloc_debug_unit_tests.cpp
@@ -185,6 +185,7 @@
 }
 
 static void VerifyRecords(std::vector<std::string>& expected, std::string& actual) {
+  ASSERT_TRUE(expected.size() != 0);
   size_t offset = 0;
   for (std::string& str : expected) {
     ASSERT_STREQ(str.c_str(), actual.substr(offset, str.size()).c_str());
@@ -267,6 +268,9 @@
         "4 malloc_debug malloc_testing: Run: 'kill -%d %d' to dump the allocation records.\n",
         SIGRTMAX - 18, getpid());
     expected_log += android::base::StringPrintf(
+        "4 malloc_debug malloc_testing: Run: 'kill -%d %d' to log allocator stats.\n",
+        SIGRTMAX - 15, getpid());
+    expected_log += android::base::StringPrintf(
         "4 malloc_debug malloc_testing: Run: 'kill -%d %d' to check for unreachable memory.\n",
         SIGRTMAX - 16, getpid());
   }
@@ -348,6 +352,16 @@
   ASSERT_STREQ(expected_log.c_str(), getFakeLogPrint().c_str());
 }
 
+TEST_F(MallocDebugTest, verbose_log_allocator_stats_on_signal) {
+  Init("verbose log_allocator_stats_on_signal");
+
+  std::string expected_log = android::base::StringPrintf(
+      "4 malloc_debug malloc_testing: Run: 'kill -%d %d' to log allocator stats.\n", SIGRTMAX - 15,
+      getpid());
+  expected_log += "4 malloc_debug malloc_testing: malloc debug enabled\n";
+  ASSERT_STREQ(expected_log.c_str(), getFakeLogPrint().c_str());
+}
+
 TEST_F(MallocDebugTest, fill_on_free) {
   Init("fill_on_free free_track free_track_backtrace_num_frames=0");
 
@@ -411,7 +425,8 @@
 TEST_F(MallocDebugTest, all_options) {
   Init(
       "guard backtrace backtrace_enable_on_signal fill expand_alloc free_track leak_track "
-      "record_allocs verify_pointers abort_on_error verbose check_unreachable_on_signal");
+      "record_allocs verify_pointers abort_on_error verbose check_unreachable_on_signal "
+      "log_allocator_stats_on_signal log_allocator_stats_on_exit");
   VerifyAllocCalls(true);
 }
 
@@ -1498,7 +1513,7 @@
 
     // Call the exit function manually.
     debug_finalize();
-    exit(0);
+    _exit(0);
   }
   ASSERT_NE(-1, pid);
   ASSERT_EQ(pid, TEMP_FAILURE_RETRY(waitpid(pid, nullptr, 0)));
@@ -1547,7 +1562,7 @@
 
     // Call the exit function manually.
     debug_finalize();
-    exit(0);
+    _exit(0);
   }
   ASSERT_NE(-1, pid);
   ASSERT_EQ(pid, TEMP_FAILURE_RETRY(waitpid(pid, nullptr, 0)));
@@ -1605,7 +1620,7 @@
 
     // Call the exit function manually.
     debug_finalize();
-    exit(0);
+    _exit(0);
   }
   ASSERT_NE(-1, pid);
   ASSERT_EQ(pid, TEMP_FAILURE_RETRY(waitpid(pid, nullptr, 0)));
@@ -2415,6 +2430,33 @@
   ASSERT_STREQ("", getFakeLogPrint().c_str());
 }
 
+TEST_F(MallocDebugTest, record_allocs_on_exit) {
+  InitRecordAllocs("record_allocs record_allocs_on_exit");
+
+  // The filename created on exit always appends the pid.
+  // Modify the variable so the file is deleted at the end of the test.
+  record_filename += '.' + std::to_string(getpid());
+
+  std::vector<std::string> expected;
+  void* ptr = debug_malloc(100);
+  expected.push_back(android::base::StringPrintf("%d: malloc %p 100", getpid(), ptr));
+  ptr = debug_malloc(200);
+  expected.push_back(android::base::StringPrintf("%d: malloc %p 200", getpid(), ptr));
+  ptr = debug_malloc(400);
+  expected.push_back(android::base::StringPrintf("%d: malloc %p 400", getpid(), ptr));
+
+  // Call the exit function manually.
+  debug_finalize();
+
+  // Read all of the contents.
+  std::string actual;
+  ASSERT_TRUE(android::base::ReadFileToString(record_filename, &actual));
+  VerifyRecords(expected, actual);
+
+  ASSERT_STREQ("", getFakeLogBuf().c_str());
+  ASSERT_STREQ("", getFakeLogPrint().c_str());
+}
+
 TEST_F(MallocDebugTest, verify_pointers) {
   Init("verify_pointers");
 
@@ -2781,6 +2823,46 @@
       getFakeLogPrint().c_str());
 }
 
+TEST_F(MallocDebugTest, log_allocator_stats_on_signal) {
+  Init("log_allocator_stats_on_signal");
+
+  ASSERT_TRUE(kill(getpid(), SIGRTMAX - 15) == 0);
+  sleep(1);
+
+  // The first unreachable check will pass.
+  void* pointer = debug_malloc(110);
+  ASSERT_TRUE(pointer != nullptr);
+  debug_free(pointer);
+
+  ASSERT_STREQ("", getFakeLogBuf().c_str());
+  if (!running_with_hwasan()) {
+    // Do an exact match because the mallopt should not fail in normal operation.
+    ASSERT_STREQ("4 malloc_debug Logging allocator stats...\n", getFakeLogPrint().c_str());
+  } else {
+    // mallopt fails with hwasan, so just verify that the message is present.
+    ASSERT_MATCH(getFakeLogPrint(), "4 malloc_debug Logging allocator stats...\\n");
+  }
+}
+
+TEST_F(MallocDebugTest, log_allocator_stats_on_exit) {
+  Init("log_allocator_stats_on_exit");
+
+  void* pointer = debug_malloc(110);
+  ASSERT_TRUE(pointer != nullptr);
+  debug_free(pointer);
+
+  debug_finalize();
+
+  ASSERT_STREQ("", getFakeLogBuf().c_str());
+  if (!running_with_hwasan()) {
+    // Do an exact match because the mallopt should not fail in normal operation.
+    ASSERT_STREQ("4 malloc_debug Logging allocator stats...\n", getFakeLogPrint().c_str());
+  } else {
+    // mallopt fails with hwasan, so just verify that the message is present.
+    ASSERT_MATCH(getFakeLogPrint(), "4 malloc_debug Logging allocator stats...\\n");
+  }
+}
+
 TEST_F(MallocDebugTest, backtrace_only_some_sizes_with_backtrace_size) {
   Init("leak_track backtrace backtrace_size=120");
 
diff --git a/libc/malloc_hooks/Android.bp b/libc/malloc_hooks/Android.bp
index 6b4e606..3f0640b 100644
--- a/libc/malloc_hooks/Android.bp
+++ b/libc/malloc_hooks/Android.bp
@@ -2,6 +2,7 @@
 // libc_malloc_hooks.so
 // ==============================================================
 package {
+    default_team: "trendy_team_native_tools_libraries",
     // See: http://go/android-license-faq
     // A large-scale-change added 'default_applicable_licenses' to import
     // all of the 'license_kinds' from "bionic_libc_license"
@@ -75,7 +76,7 @@
     local_include_dirs: ["tests"],
     include_dirs: [
         "bionic/libc",
-        "bionic"
+        "bionic",
     ],
     header_libs: [
         "bionic_libc_platform_headers",
@@ -84,7 +85,7 @@
     cflags: [
         "-Wall",
         "-Werror",
-        "-O1",  // FIXME: http://b/169206016 - issues with aligned_alloc and -O2
+        "-O1", // FIXME: http://b/169206016 - issues with aligned_alloc and -O2
     ],
     test_suites: ["general-tests"],
 }
diff --git a/libc/platform/bionic/android_unsafe_frame_pointer_chase.h b/libc/platform/bionic/android_unsafe_frame_pointer_chase.h
index 2b9a32f..406ad92 100644
--- a/libc/platform/bionic/android_unsafe_frame_pointer_chase.h
+++ b/libc/platform/bionic/android_unsafe_frame_pointer_chase.h
@@ -44,4 +44,4 @@
  * take stack traces efficiently. Normal applications should use APIs such as libunwindstack or
  * _Unwind_Backtrace.
  */
-extern "C" size_t android_unsafe_frame_pointer_chase(uintptr_t* buf, size_t num_entries);
+extern "C" size_t android_unsafe_frame_pointer_chase(uintptr_t* _Nonnull buf, size_t num_entries);
diff --git a/libm/fenv-access.h b/libc/platform/bionic/crash_detail_internal.h
similarity index 74%
copy from libm/fenv-access.h
copy to libc/platform/bionic/crash_detail_internal.h
index 7acb34d..d8508a5 100644
--- a/libm/fenv-access.h
+++ b/libc/platform/bionic/crash_detail_internal.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2021 The Android Open Source Project
+ * Copyright (C) 2024 The Android Open Source Project
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -28,6 +28,22 @@
 
 #pragma once
 
-#if defined(__x86_64__) || defined(__i386__)
-#pragma STDC FENV_ACCESS ON
-#endif
+#include <android/crash_detail.h>
+#include <stddef.h>
+#include <sys/cdefs.h>
+
+struct crash_detail_t {
+  const char* name;
+  size_t name_size;
+  const char* data;
+  size_t data_size;
+  crash_detail_t* prev_free;
+};
+
+constexpr auto kNumCrashDetails = 128;
+
+struct crash_detail_page_t {
+  struct crash_detail_page_t* prev;
+  size_t used;
+  struct crash_detail_t crash_details[kNumCrashDetails];
+};
diff --git a/libc/platform/bionic/fdtrack.h b/libc/platform/bionic/fdtrack.h
index fe6ca84..7fc304a 100644
--- a/libc/platform/bionic/fdtrack.h
+++ b/libc/platform/bionic/fdtrack.h
@@ -43,6 +43,8 @@
   ANDROID_FDTRACK_EVENT_TYPE_CLOSE,
 };
 
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wnullability-completeness"
 struct android_fdtrack_event {
   // File descriptor for which this event occurred.
   int fd;
@@ -57,12 +59,15 @@
     } create;
   } data;
 };
+#pragma clang diagnostic pop
 
 // Callback invoked upon file descriptor creation/closure.
-typedef void (*android_fdtrack_hook_t)(struct android_fdtrack_event*);
+typedef void (*_Nullable android_fdtrack_hook_t)(struct android_fdtrack_event* _Nullable);
 
 // Register a hook which is called to track fd lifecycle events.
-bool android_fdtrack_compare_exchange_hook(android_fdtrack_hook_t* expected, android_fdtrack_hook_t value) __INTRODUCED_IN(30);
+// Set value to null to disable tracking.
+bool android_fdtrack_compare_exchange_hook(android_fdtrack_hook_t* _Nonnull expected,
+                                           android_fdtrack_hook_t value) __INTRODUCED_IN(30);
 
 // Enable/disable fdtrack *on the current thread*.
 // This is primarily useful when performing operations which you don't want to track
diff --git a/libc/platform/bionic/macros.h b/libc/platform/bionic/macros.h
index 9e13e0d..b2d6f96 100644
--- a/libc/platform/bionic/macros.h
+++ b/libc/platform/bionic/macros.h
@@ -40,12 +40,12 @@
 }
 
 template <typename T>
-static inline T* align_down(T* p, size_t align) {
+static inline T* _Nonnull align_down(T* _Nonnull p, size_t align) {
   return reinterpret_cast<T*>(align_down(reinterpret_cast<uintptr_t>(p), align));
 }
 
 template <typename T>
-static inline T* align_up(T* p, size_t align) {
+static inline T* _Nonnull align_up(T* _Nonnull p, size_t align) {
   return reinterpret_cast<T*>(align_up(reinterpret_cast<uintptr_t>(p), align));
 }
 
@@ -94,6 +94,29 @@
 }
 
 template <typename T>
-static inline T* untag_address(T* p) {
+static inline T* _Nonnull untag_address(T* _Nonnull p) {
   return reinterpret_cast<T*>(untag_address(reinterpret_cast<uintptr_t>(p)));
 }
+
+// MTE globals protects internal and external global variables. One of the main
+// things that MTE globals does is force all global variable accesses to go
+// through the GOT. In the linker though, some global variables are accessed (or
+// address-taken) prior to relocations being processed. Because relocations
+// haven't run yet, the GOT entry hasn't been populated, and this leads to
+// crashes. Thus, any globals used by the linker prior to relocation should be
+// annotated with this attribute, which suppresses tagging of this global
+// variable, restoring the pc-relative address computation.
+//
+// A way to find global variables that need this attribute is to build the
+// linker/libc with `SANITIZE_TARGET=memtag_globals`, push them onto a device
+// (it doesn't have to be MTE capable), and then run an executable using
+// LD_LIBRARY_PATH and using the linker in interpreter mode (e.g.
+// `LD_LIBRARY_PATH=/data/tmp/ /data/tmp/linker64 /data/tmp/my_binary`). A
+// good heuristic is that the global variable is in a file that should be
+// compiled with `-ffreestanding` (but there are global variables there that
+// don't need this attribute).
+#if __has_feature(memtag_globals)
+#define BIONIC_USED_BEFORE_LINKER_RELOCATES __attribute__((no_sanitize("memtag")))
+#else  // __has_feature(memtag_globals)
+#define BIONIC_USED_BEFORE_LINKER_RELOCATES
+#endif  // __has_feature(memtag_globals)
diff --git a/libc/platform/bionic/malloc.h b/libc/platform/bionic/malloc.h
index 3c290fc..da85cf5 100644
--- a/libc/platform/bionic/malloc.h
+++ b/libc/platform/bionic/malloc.h
@@ -33,7 +33,8 @@
 #include <stdint.h>
 
 // Structures for android_mallopt.
-
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wnullability-completeness"
 typedef struct {
   // Pointer to the buffer allocated by a call to M_GET_MALLOC_LEAK_INFO.
   uint8_t* buffer;
@@ -47,7 +48,7 @@
   // The maximum number of backtrace entries.
   size_t backtrace_size;
 } android_mallopt_leak_info_t;
-
+#pragma clang diagnostic pop
 // Opcodes for android_mallopt.
 
 enum {
@@ -103,8 +104,17 @@
   // Query whether memtag stack is enabled for this process.
   M_MEMTAG_STACK_IS_ON = 11,
 #define M_MEMTAG_STACK_IS_ON M_MEMTAG_STACK_IS_ON
+  // Query whether the current process has the decay time enabled so that
+  // the memory from allocations are not immediately released to the OS.
+  // Result is assigned to the arg pointer's destination.
+  //   arg = bool*
+  //   arg_size = sizeof(bool)
+  M_GET_DECAY_TIME_ENABLED = 12,
+#define M_GET_DECAY_TIME_ENABLED M_GET_DECAY_TIME_ENABLED
 };
 
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wnullability-completeness"
 typedef struct {
   // The null-terminated name that the zygote is spawning. Because native
   // SpecializeCommon (where the GWP-ASan mallopt() is called from) happens
@@ -120,36 +130,59 @@
   // Worth noting, the "libc.debug.gwp_asan.*.app_default" sysprops *do not*
   // apply to system apps. They use the "libc.debug.gwp_asan.*.system_default"
   // sysprops.
-  enum Action {
-    // Enable GWP-ASan. This is used by apps that have `gwpAsanMode=always` in
-    // the manifest.
-    TURN_ON_FOR_APP,
-    // Enable GWP-ASan, but only a small percentage of the time. This is used by
-    // system processes and system apps, and we use a lottery to determine which
-    // processes have GWP-ASan enabled. This allows us to mitigate system-wide
-    // memory overhead concerns, as each GWP-ASan enabled process uses ~70KiB of
-    // extra memory.
-    TURN_ON_WITH_SAMPLING,
-    // Don't enable GWP-ASan, unless overwritten by a system property or
-    // environment variable. This is used by apps that have `gwpAsanMode=never`
-    // in the manifest. Prior to Android 14, this also was used by non-system
-    // apps that didn't specify a `gwpAsanMode` in their manifest.
-    DONT_TURN_ON_UNLESS_OVERRIDDEN,
-    // Enable GWP-ASan, but only a small percentage of the time, and enable it
-    // in the non-crashing ("recoverable") mode. In Android 14, this is used by
-    // apps that don't specify `gwpAsanMode` (or use `gwpAsanMode=default`) in
-    // their manifest. GWP-ASan will detect heap memory safety bugs in this
-    // mode, and bug reports will be created by debuggerd, however the process
-    // will recover and continue to function as if the memory safety bug wasn't
-    // detected.
-    TURN_ON_FOR_APP_SAMPLED_NON_CRASHING,
+  //
+  // In recoverable mode, GWP-ASan will detect heap memory safety bugs, and bug
+  // reports will be created by debuggerd, however the process will recover and
+  // continue to function as if the memory safety bug wasn't detected. This
+  // prevents any user-visible impact as apps and processes don't crash, and
+  // probably saves us some CPU time in restarting the process.
+  //
+  // Process sampling enables GWP-ASan, but only a small percentage of the time
+  // (~1%). This helps mitigate any recurring high-frequency problems in certain
+  // processes, as it's highly likely the next restart of said process won't
+  // have GWP-ASan. In addition, for system processes and system apps, this
+  // allows us to mitigate system-wide memory overhead concerns, as each
+  // GWP-ASan enabled process uses ~70KiB of extra memory.
+  enum Mode {
+    // Used by default for apps, or by those that have an explicit
+    // `gwpAsanMode=default` in the manifest.
+    //
+    // Result:
+    //  - Android 13 and before: GWP-ASan is not enabled.
+    //  - Android 14 and after: Enables GWP-ASan with process sampling in
+    //    recoverable mode.
+    APP_MANIFEST_DEFAULT = 3,
+    // This is used by apps that have `gwpAsanMode=always` in the manifest.
+    //
+    // Result:
+    //  - Android 14 and before: Enables GWP-ASan in non-recoverable mode,
+    //    without process sampling.
+    //  - Android 15 and after: Enables GWP-ASan in recoverable mode, without
+    //    process sampling.
+    APP_MANIFEST_ALWAYS = 0,
+    // This is used by apps that have `gwpAsanMode=never` in the manifest.
+    //
+    // Result:
+    //  - GWP-ASan is not enabled, unless it's force-enabled by a system
+    //    property or environment variable.
+    APP_MANIFEST_NEVER = 2,
+    // Used by system processes and system apps.
+    //
+    // Result:
+    //  - Android 14 and before: Enables GWP-ASan with process sampling in
+    //    non-recoverable mode.
+    //  - Android 15 and after: Enables GWP-ASan with process sampling in
+    //    recoverable mode.
+    SYSTEM_PROCESS_OR_SYSTEM_APP = 1,
+    // Next enum value = 4. Numbered non-sequentially above to preserve ABI
+    // stability, but now ordered more logically.
   };
 
-  Action desire = DONT_TURN_ON_UNLESS_OVERRIDDEN;
+  Mode mode = APP_MANIFEST_NEVER;
 } android_mallopt_gwp_asan_options_t;
-
+#pragma clang diagnostic pop
 // Manipulates bionic-specific handling of memory allocation APIs such as
 // malloc. Only for use by the Android platform and APEXes.
 //
 // On success, returns true. On failure, returns false and sets errno.
-extern "C" bool android_mallopt(int opcode, void* arg, size_t arg_size);
+extern "C" bool android_mallopt(int opcode, void* _Nullable arg, size_t arg_size);
diff --git a/libc/platform/bionic/mte.h b/libc/platform/bionic/mte.h
index 73cd821..610cb45 100644
--- a/libc/platform/bionic/mte.h
+++ b/libc/platform/bionic/mte.h
@@ -28,9 +28,13 @@
 
 #pragma once
 
+#include <stddef.h>
 #include <sys/auxv.h>
+#include <sys/mman.h>
 #include <sys/prctl.h>
 
+#include "page.h"
+
 // Note: Most PR_MTE_* constants come from the upstream kernel. This tag mask
 // allows for the hardware to provision any nonzero tag. Zero tags are reserved
 // for scudo to use for the chunk headers in order to prevent linear heap
@@ -46,6 +50,36 @@
   return supported;
 }
 
+inline void* get_tagged_address(const void* ptr) {
+#if defined(__aarch64__)
+  if (mte_supported()) {
+    __asm__ __volatile__(".arch_extension mte; ldg %0, [%0]" : "+r"(ptr));
+  }
+#endif  // aarch64
+  return const_cast<void*>(ptr);
+}
+
+// Inserts a random tag tag to `ptr`, using any of the set lower 16 bits in
+// `mask` to exclude the corresponding tag from being generated. Note: This does
+// not tag memory. This generates a pointer to be used with set_memory_tag.
+inline void* insert_random_tag(const void* ptr, __attribute__((unused)) uint64_t mask = 0) {
+#if defined(__aarch64__)
+  if (mte_supported() && ptr) {
+    __asm__ __volatile__(".arch_extension mte; irg %0, %0, %1" : "+r"(ptr) : "r"(mask));
+  }
+#endif  // aarch64
+  return const_cast<void*>(ptr);
+}
+
+// Stores the address tag in `ptr` to memory, at `ptr`.
+inline void set_memory_tag(__attribute__((unused)) void* ptr) {
+#if defined(__aarch64__)
+  if (mte_supported()) {
+    __asm__ __volatile__(".arch_extension mte; stg %0, [%0]" : "+r"(ptr));
+  }
+#endif  // aarch64
+}
+
 #ifdef __aarch64__
 class ScopedDisableMTE {
   size_t prev_tco_;
@@ -63,6 +97,71 @@
     }
   }
 };
+
+// N.B. that this is NOT the pagesize, but 4096. This is hardcoded in the codegen.
+// See
+// https://github.com/search?q=repo%3Allvm/llvm-project%20AArch64StackTagging%3A%3AinsertBaseTaggedPointer&type=code
+constexpr size_t kStackMteRingbufferSizeMultiplier = 4096;
+
+inline size_t stack_mte_ringbuffer_size(uintptr_t size_cls) {
+  return kStackMteRingbufferSizeMultiplier * (1 << size_cls);
+}
+
+inline size_t stack_mte_ringbuffer_size_from_pointer(uintptr_t ptr) {
+  // The size in the top byte is not the size_cls, but the number of "pages" (not OS pages, but
+  // kStackMteRingbufferSizeMultiplier).
+  return kStackMteRingbufferSizeMultiplier * (ptr >> 56ULL);
+}
+
+inline uintptr_t stack_mte_ringbuffer_size_add_to_pointer(uintptr_t ptr, uintptr_t size_cls) {
+  return ptr | ((1ULL << size_cls) << 56ULL);
+}
+
+inline void stack_mte_free_ringbuffer(uintptr_t stack_mte_tls) {
+  size_t size = stack_mte_ringbuffer_size_from_pointer(stack_mte_tls);
+  void* ptr = reinterpret_cast<void*>(stack_mte_tls & ((1ULL << 56ULL) - 1ULL));
+  munmap(ptr, size);
+}
+
+inline void* stack_mte_ringbuffer_allocate(size_t n, const char* name) {
+  if (n > 7) return nullptr;
+  // Allocation needs to be aligned to 2*size to make the fancy code-gen work.
+  // So we allocate 3*size - pagesz bytes, which will always contain size bytes
+  // aligned to 2*size, and unmap the unneeded part.
+  // See
+  // https://github.com/search?q=repo%3Allvm/llvm-project%20AArch64StackTagging%3A%3AinsertBaseTaggedPointer&type=code
+  //
+  // In the worst case, we get an allocation that is one page past the properly
+  // aligned address, in which case we have to unmap the previous
+  // 2*size - pagesz bytes. In that case, we still have size properly aligned
+  // bytes left.
+  size_t size = stack_mte_ringbuffer_size(n);
+  size_t pgsize = page_size();
+
+  size_t alloc_size = __BIONIC_ALIGN(3 * size - pgsize, pgsize);
+  void* allocation_ptr =
+      mmap(nullptr, alloc_size, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
+  if (allocation_ptr == MAP_FAILED)
+    return nullptr;
+  uintptr_t allocation = reinterpret_cast<uintptr_t>(allocation_ptr);
+
+  size_t alignment = 2 * size;
+  uintptr_t aligned_allocation = __BIONIC_ALIGN(allocation, alignment);
+  if (allocation != aligned_allocation) {
+    munmap(reinterpret_cast<void*>(allocation), aligned_allocation - allocation);
+  }
+  if (aligned_allocation + size != allocation + alloc_size) {
+    munmap(reinterpret_cast<void*>(aligned_allocation + size),
+           (allocation + alloc_size) - (aligned_allocation + size));
+  }
+
+  if (name) {
+    prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, reinterpret_cast<void*>(aligned_allocation), size, name);
+  }
+
+  // We store the size in the top byte of the pointer (which is ignored)
+  return reinterpret_cast<void*>(stack_mte_ringbuffer_size_add_to_pointer(aligned_allocation, n));
+}
 #else
 struct ScopedDisableMTE {
   // Silence unused variable warnings in non-aarch64 builds.
diff --git a/libc/platform/bionic/page.h b/libc/platform/bionic/page.h
index d063a98..4dbe4ba 100644
--- a/libc/platform/bionic/page.h
+++ b/libc/platform/bionic/page.h
@@ -16,15 +16,44 @@
 
 #pragma once
 
-// Get PAGE_SIZE and PAGE_MASK.
+#include <stddef.h>
+#include <stdint.h>
+#include <sys/auxv.h>
+
+// For PAGE_SIZE.
 #include <sys/user.h>
 
+inline size_t page_size() {
+#if defined(PAGE_SIZE)
+  return PAGE_SIZE;
+#else
+  static const size_t page_size = getauxval(AT_PAGESZ);
+  return page_size;
+#endif
+}
+
+// The maximum page size supported on any Android device. As
+// of API level 35, this is limited by ART.
+constexpr size_t max_android_page_size() {
+#if defined(PAGE_SIZE)
+  return PAGE_SIZE;
+#else
+  return 16384;
+#endif
+}
+
 // Returns the address of the page containing address 'x'.
-#define PAGE_START(x) ((x) & PAGE_MASK)
+inline uintptr_t page_start(uintptr_t x) {
+  return x & ~(page_size() - 1);
+}
 
 // Returns the offset of address 'x' in its page.
-#define PAGE_OFFSET(x) ((x) & ~PAGE_MASK)
+inline uintptr_t page_offset(uintptr_t x) {
+  return x & (page_size() - 1);
+}
 
 // Returns the address of the next page after address 'x', unless 'x' is
 // itself at the start of a page.
-#define PAGE_END(x) PAGE_START((x) + (PAGE_SIZE-1))
+inline uintptr_t page_end(uintptr_t x) {
+  return page_start(x + page_size() - 1);
+}
diff --git a/libc/platform/bionic/reserved_signals.h b/libc/platform/bionic/reserved_signals.h
index dab58af..eb423f6 100644
--- a/libc/platform/bionic/reserved_signals.h
+++ b/libc/platform/bionic/reserved_signals.h
@@ -44,6 +44,7 @@
 //   38 (__SIGRTMIN + 6)        heapprofd ART managed heap dumps
 //   39 (__SIGRTMIN + 7)        fdtrack
 //   40 (__SIGRTMIN + 8)        android_run_on_all_threads (bionic/pthread_internal.cpp)
+//   41 (__SIGRTMIN + 9)        re-enable MTE on thread
 
 #define BIONIC_SIGNAL_POSIX_TIMERS (__SIGRTMIN + 0)
 #define BIONIC_SIGNAL_BACKTRACE (__SIGRTMIN + 1)
@@ -52,8 +53,9 @@
 #define BIONIC_SIGNAL_ART_PROFILER (__SIGRTMIN + 6)
 #define BIONIC_SIGNAL_FDTRACK (__SIGRTMIN + 7)
 #define BIONIC_SIGNAL_RUN_ON_ALL_THREADS (__SIGRTMIN + 8)
+#define BIONIC_ENABLE_MTE (__SIGRTMIN + 9)
 
-#define __SIGRT_RESERVED 9
+#define __SIGRT_RESERVED 10
 static inline __always_inline sigset64_t filter_reserved_signals(sigset64_t sigset, int how) {
   int (*block)(sigset64_t*, int);
   int (*unblock)(sigset64_t*, int);
@@ -83,5 +85,6 @@
   unblock(&sigset, __SIGRTMIN + 6);
   unblock(&sigset, __SIGRTMIN + 7);
   unblock(&sigset, __SIGRTMIN + 8);
+  unblock(&sigset, __SIGRTMIN + 9);
   return sigset;
 }
diff --git a/libc/platform/bionic/tls_defines.h b/libc/platform/bionic/tls_defines.h
index 3e2efa3..06c6617 100644
--- a/libc/platform/bionic/tls_defines.h
+++ b/libc/platform/bionic/tls_defines.h
@@ -68,6 +68,11 @@
 //
 //  - TLS_SLOT_APP: Available for use by apps in Android Q and later. (This slot
 //    was used for errno in P and earlier.)
+//
+//  - TLS_SLOT_NATIVE_BRIDGE_GUEST_STATE: Pointer to the guest state for native
+//    bridge implementations. It is (to be) used by debuggerd to access this
+//    state for guest aware crash reporting of the binary translated code.
+//    (Introduced in V)
 
 #if defined(__arm__) || defined(__aarch64__)
 
@@ -80,7 +85,9 @@
 // [1] "Addenda to, and Errata in, the ABI for the ARM Architecture". Section 3.
 // http://infocenter.arm.com/help/topic/com.arm.doc.ihi0045e/IHI0045E_ABI_addenda.pdf
 
-#define MIN_TLS_SLOT            (-1) // update this value when reserving a slot
+#define MIN_TLS_SLOT (-3)  // update this value when reserving a slot
+#define TLS_SLOT_STACK_MTE (-3)
+#define TLS_SLOT_NATIVE_BRIDGE_GUEST_STATE (-2)
 #define TLS_SLOT_BIONIC_TLS     (-1)
 #define TLS_SLOT_DTV              0
 #define TLS_SLOT_THREAD_ID        1
@@ -112,7 +119,8 @@
 #define TLS_SLOT_ART_THREAD_SELF  7
 #define TLS_SLOT_DTV              8
 #define TLS_SLOT_BIONIC_TLS       9
-#define MAX_TLS_SLOT              9 // update this value when reserving a slot
+#define TLS_SLOT_NATIVE_BRIDGE_GUEST_STATE 10
+#define MAX_TLS_SLOT 10  // update this value when reserving a slot
 
 #elif defined(__riscv)
 
@@ -123,8 +131,9 @@
 // [1]: RISC-V ELF Specification. Section: Thread Local Storage
 // https://github.com/riscv-non-isa/riscv-elf-psabi-doc/blob/master/riscv-elf.adoc#thread-local-storage
 
-#define MIN_TLS_SLOT             (-9) // update this value when reserving a slot
+#define MIN_TLS_SLOT (-10)  // update this value when reserving a slot
 
+#define TLS_SLOT_NATIVE_BRIDGE_GUEST_STATE (-10)
 #define TLS_SLOT_BIONIC_TLS      (-9)
 #define TLS_SLOT_DTV             (-8)
 #define TLS_SLOT_THREAD_ID       (-7)
diff --git a/libc/platform/scudo_platform_tls_slot.h b/libc/platform/scudo_platform_tls_slot.h
index 9d017c0..a86b828 100644
--- a/libc/platform/scudo_platform_tls_slot.h
+++ b/libc/platform/scudo_platform_tls_slot.h
@@ -30,6 +30,6 @@
 
 #include "bionic/tls.h"
 
-inline uintptr_t *getPlatformAllocatorTlsSlot() {
+inline uintptr_t* _Nonnull getPlatformAllocatorTlsSlot() {
   return reinterpret_cast<uintptr_t*>(&__get_tls()[TLS_SLOT_SANITIZER]);
 }
diff --git a/libc/private/CFIShadow.h b/libc/private/CFIShadow.h
index ec87e3c..cbdf0f7 100644
--- a/libc/private/CFIShadow.h
+++ b/libc/private/CFIShadow.h
@@ -68,8 +68,7 @@
 #endif
 
   // Shadow is 2 -> 2**kShadowGranularity.
-  static constexpr uintptr_t kShadowSize =
-      align_up((kMaxTargetAddr >> (kShadowGranularity - 1)), PAGE_SIZE);
+  static constexpr uintptr_t kShadowSize = kMaxTargetAddr >> (kShadowGranularity - 1);
 
   // Returns offset inside the shadow region for an address.
   static constexpr uintptr_t MemToShadowOffset(uintptr_t x) {
diff --git a/libc/private/CachedProperty.h b/libc/private/CachedProperty.h
index bd67d74..7accdb3 100644
--- a/libc/private/CachedProperty.h
+++ b/libc/private/CachedProperty.h
@@ -29,9 +29,7 @@
 #pragma once
 
 #include <string.h>
-
-#define _REALLY_INCLUDE_SYS__SYSTEM_PROPERTIES_H_
-#include <sys/_system_properties.h>
+#include <sys/system_properties.h>
 
 // Cached system property lookup. For code that needs to read the same property multiple times,
 // this class helps optimize those lookups.
diff --git a/libc/private/KernelArgumentBlock.h b/libc/private/KernelArgumentBlock.h
index ee28d69..e1f655a 100644
--- a/libc/private/KernelArgumentBlock.h
+++ b/libc/private/KernelArgumentBlock.h
@@ -29,7 +29,7 @@
 // constituents for easy access.
 class KernelArgumentBlock {
  public:
-  explicit KernelArgumentBlock(void* raw_args) {
+  __attribute__((no_sanitize("hwaddress"))) explicit KernelArgumentBlock(void* raw_args) {
     uintptr_t* args = reinterpret_cast<uintptr_t*>(raw_args);
     argc = static_cast<int>(*args);
     argv = reinterpret_cast<char**>(args + 1);
@@ -48,7 +48,7 @@
 
   // Similar to ::getauxval but doesn't require the libc global variables to be set up,
   // so it's safe to call this really early on.
-  unsigned long getauxval(unsigned long type) {
+  __attribute__((no_sanitize("hwaddress"))) unsigned long getauxval(unsigned long type) {
     for (ElfW(auxv_t)* v = auxv; v->a_type != AT_NULL; ++v) {
       if (v->a_type == type) {
         return v->a_un.a_val;
diff --git a/libc/private/SigSetConverter.h b/libc/private/SigSetConverter.h
index 7d0b215..9e9df73 100644
--- a/libc/private/SigSetConverter.h
+++ b/libc/private/SigSetConverter.h
@@ -28,8 +28,45 @@
 
 #pragma once
 
-union SigSetConverter {
-  int bsd;
-  sigset_t sigset;
-  sigset64_t sigset64;
+// Android's 32-bit ABI shipped with a sigset_t too small to include any
+// of the realtime signals, so we have both sigset_t and sigset64_t. Many
+// new system calls only accept a sigset64_t, so this helps paper over
+// the difference at zero cost to LP64 in most cases after the optimizer
+// removes the unnecessary temporary `ptr`.
+struct SigSetConverter {
+ public:
+  SigSetConverter(const sigset_t* s) : SigSetConverter(const_cast<sigset_t*>(s)) {}
+
+  SigSetConverter(sigset_t* s) {
+#if defined(__LP64__)
+    // sigset_t == sigset64_t on LP64.
+    ptr = s;
+#else
+    sigset64 = {};
+    if (s != nullptr) {
+      original_ptr = s;
+      sigset = *s;
+      ptr = &sigset64;
+    } else {
+      ptr = nullptr;
+    }
+#endif
+  }
+
+  void copy_out() {
+#if defined(__LP64__)
+    // We used the original pointer directly, so no copy needed.
+#else
+    *original_ptr = sigset;
+#endif
+  }
+
+  sigset64_t* ptr;
+
+ private:
+  [[maybe_unused]] sigset_t* original_ptr;
+  union {
+    sigset_t sigset;
+    sigset64_t sigset64;
+  };
 };
diff --git a/libc/private/WriteProtected.h b/libc/private/WriteProtected.h
index 746f72a..f269125 100644
--- a/libc/private/WriteProtected.h
+++ b/libc/private/WriteProtected.h
@@ -25,15 +25,16 @@
 #include <async_safe/log.h>
 
 #include "platform/bionic/macros.h"
+#include "platform/bionic/page.h"
 
 template <typename T>
 union WriteProtectedContents {
   T value;
-  char padding[PAGE_SIZE];
+  char padding[max_android_page_size()];
 
   WriteProtectedContents() = default;
   BIONIC_DISALLOW_COPY_AND_ASSIGN(WriteProtectedContents);
-} __attribute__((aligned(PAGE_SIZE)));
+} __attribute__((aligned(max_android_page_size())));
 
 // Write protected wrapper class that aligns its contents to a page boundary,
 // and sets the memory protection to be non-writable, except when being modified
@@ -41,9 +42,8 @@
 template <typename T>
 class WriteProtected {
  public:
-  static_assert(sizeof(T) < PAGE_SIZE,
-                "WriteProtected only supports contents up to PAGE_SIZE");
-  static_assert(__is_pod(T), "WriteProtected only supports POD contents");
+  static_assert(sizeof(T) < max_android_page_size(),
+                "WriteProtected only supports contents up to max_android_page_size()");
 
   WriteProtected() = default;
   BIONIC_DISALLOW_COPY_AND_ASSIGN(WriteProtected);
@@ -51,36 +51,45 @@
   void initialize() {
     // Not strictly necessary, but this will hopefully segfault if we initialize
     // multiple times by accident.
-    memset(&contents, 0, sizeof(contents));
+    memset(contents_addr(), 0, sizeof(contents));
     set_protection(PROT_READ);
   }
 
   const T* operator->() {
-    return &contents.value;
+    return &contents_addr()->value;
   }
 
   const T& operator*() {
-    return contents.value;
+    return contents_addr()->value;
   }
 
   template <typename Mutator>
   void mutate(Mutator mutator) {
     set_protection(PROT_READ | PROT_WRITE);
-    mutator(&contents.value);
+    mutator(&contents_addr()->value);
     set_protection(PROT_READ);
   }
 
  private:
   WriteProtectedContents<T> contents;
 
-  void set_protection(int prot) {
+  WriteProtectedContents<T>* contents_addr() {
     auto addr = &contents;
+    // Hide the fact that we're returning the address of contents from the compiler.
+    // Otherwise it may generate code assuming alignment of 64KB even though the
+    // variable is only guaranteed to have 4KB alignment.
+    __asm__ __volatile__("" : "+r"(addr));
+    return addr;
+  }
+
+  void set_protection(int prot) {
+    auto addr = contents_addr();
 #if __has_feature(hwaddress_sanitizer)
     // The mprotect system call does not currently untag pointers, so do it
     // ourselves.
     addr = untag_address(addr);
 #endif
-    if (mprotect(reinterpret_cast<void*>(addr), PAGE_SIZE, prot) == -1) {
+    if (mprotect(reinterpret_cast<void*>(addr), max_android_page_size(), prot) == -1) {
       async_safe_fatal("WriteProtected mprotect %x failed: %s", prot, strerror(errno));
     }
   }
diff --git a/libc/private/bionic_allocator.h b/libc/private/bionic_allocator.h
index 342fd51..9872669 100644
--- a/libc/private/bionic_allocator.h
+++ b/libc/private/bionic_allocator.h
@@ -28,13 +28,9 @@
 
 #pragma once
 
-#include <errno.h>
-#include <stdlib.h>
 #include <sys/cdefs.h>
-#include <sys/mman.h>
-#include <sys/prctl.h>
 #include <stddef.h>
-#include <unistd.h>
+#include <stdint.h>
 
 const uint32_t kSmallObjectMaxSizeLog2 = 10;
 const uint32_t kSmallObjectMinSizeLog2 = 4;
@@ -120,7 +116,8 @@
   inline void* alloc_impl(size_t align, size_t size);
   inline page_info* get_page_info_unchecked(void* ptr);
   inline page_info* get_page_info(void* ptr);
-  BionicSmallObjectAllocator* get_small_object_allocator(uint32_t type);
+  BionicSmallObjectAllocator* get_small_object_allocator_unchecked(uint32_t type);
+  BionicSmallObjectAllocator* get_small_object_allocator(page_info* pi, void* ptr);
   void initialize_allocators();
 
   BionicSmallObjectAllocator* allocators_;
diff --git a/libc/private/bionic_asm.h b/libc/private/bionic_asm.h
index 78e5046..b3b2b47 100644
--- a/libc/private/bionic_asm.h
+++ b/libc/private/bionic_asm.h
@@ -51,42 +51,63 @@
 #include <private/bionic_asm_x86_64.h>
 #endif
 
-#define ENTRY_NO_DWARF(f) \
-    .text; \
-    .globl f; \
-    .balign __bionic_asm_align; \
-    .type f, __bionic_asm_function_type; \
-    f: \
-    __bionic_asm_custom_entry(f); \
+// Starts a normal assembler routine.
+#define ENTRY(__f) __ENTRY_WITH_BINDING(__f, .globl)
 
-#define ENTRY(f) \
-    ENTRY_NO_DWARF(f) \
-    .cfi_startproc \
+// Starts an assembler routine with hidden visibility.
+#define ENTRY_PRIVATE(__f)           \
+  __ENTRY_WITH_BINDING(__f, .globl); \
+  .hidden __f;
 
-#define END_NO_DWARF(f) \
-    .size f, .-f; \
-    __bionic_asm_custom_end(f) \
+// Starts an assembler routine that's weak so native bridges can override it.
+#define ENTRY_WEAK_FOR_NATIVE_BRIDGE(__f) __ENTRY_WITH_BINDING(__f, .weak)
 
-#define END(f) \
-    .cfi_endproc; \
-    END_NO_DWARF(f) \
+// Starts an assembler routine with hidden visibility and no DWARF information.
+// Only used for internal functions passed via sa_restorer.
+// TODO: can't we just delete all those and let the kernel do its thing?
+#define ENTRY_NO_DWARF_PRIVATE(__f) \
+  __ENTRY_NO_DWARF(__f, .globl);    \
+  .hidden __f;
 
-/* Like ENTRY, but with hidden visibility. */
-#define ENTRY_PRIVATE(f) \
-    ENTRY(f); \
-    .hidden f \
+// (Implementation detail.)
+#define __ENTRY_NO_DWARF(__f, __binding) \
+  .text;                                 \
+  __binding __f;                         \
+  .balign __bionic_asm_align;            \
+  .type __f, __bionic_asm_function_type; \
+  __f:                                   \
+  __bionic_asm_custom_entry(__f);
 
-/* Like ENTRY_NO_DWARF, but with hidden visibility. */
-#define ENTRY_PRIVATE_NO_DWARF(f) \
-    ENTRY_NO_DWARF(f); \
-    .hidden f \
+// (Implementation detail.)
+#define __ENTRY_WITH_BINDING(__f, __binding) \
+  __ENTRY_NO_DWARF(__f, __binding);          \
+  .cfi_startproc;
 
-#define __BIONIC_WEAK_ASM_FOR_NATIVE_BRIDGE(f) \
-    .weak f; \
+// Ends a normal assembler routine.
+#define END(__f) \
+  .cfi_endproc;  \
+  END_NO_DWARF(__f)
 
+// Ends an assembler routine with no DWARF information.
+// Only used for internal functions passed via sa_restorer.
+// TODO: can't we just delete all those and let the kernel do its thing?
+#define END_NO_DWARF(__f) \
+  .size __f, .- __f;      \
+  __bionic_asm_custom_end(__f)
+
+// Creates an alias `alias` for the symbol `original`.
 #define ALIAS_SYMBOL(alias, original) \
-    .globl alias; \
-    .equ alias, original
+  .globl alias;                       \
+  .equ alias, original
 
-#define NOTE_GNU_PROPERTY() \
-    __bionic_asm_custom_note_gnu_section()
+// Creates an alias `alias` for the symbol `original` that's weak so it can be
+// separately overridden by native bridges.
+#define ALIAS_SYMBOL_WEAK_FOR_NATIVE_BRIDGE(alias, original) \
+  .weak alias;                                               \
+  .equ alias, original
+
+// Adds a GNU property ELF note. Important on arm64 to declare PAC/BTI support.
+#define NOTE_GNU_PROPERTY() __bionic_asm_custom_note_gnu_section()
+
+// Gives local labels a more convenient and readable syntax.
+#define L(__label) .L##__label
diff --git a/libc/private/bionic_asm_arm.h b/libc/private/bionic_asm_arm.h
index d8381d3..9ca5f38 100644
--- a/libc/private/bionic_asm_arm.h
+++ b/libc/private/bionic_asm_arm.h
@@ -37,7 +37,7 @@
 
 #pragma once
 
-#define __bionic_asm_align 0
+#define __bionic_asm_align 64
 
 #undef __bionic_asm_custom_entry
 #undef __bionic_asm_custom_end
diff --git a/libc/private/bionic_asm_arm64.h b/libc/private/bionic_asm_arm64.h
index ffc7181..1e907a1 100644
--- a/libc/private/bionic_asm_arm64.h
+++ b/libc/private/bionic_asm_arm64.h
@@ -37,7 +37,7 @@
 
 #pragma once
 
-#define __bionic_asm_align 16
+#define __bionic_asm_align 64
 
 #undef __bionic_asm_function_type
 #define __bionic_asm_function_type %function
diff --git a/libc/private/bionic_asm_note.h b/libc/private/bionic_asm_note.h
index d8559ff..9a533c0 100644
--- a/libc/private/bionic_asm_note.h
+++ b/libc/private/bionic_asm_note.h
@@ -31,3 +31,4 @@
 #define NT_ANDROID_TYPE_IDENT 1
 #define NT_ANDROID_TYPE_KUSER 3
 #define NT_ANDROID_TYPE_MEMTAG 4
+#define NT_ANDROID_TYPE_PAD_SEGMENT 5
diff --git a/libc/private/bionic_constants.h b/libc/private/bionic_constants.h
index d7f4474..ce484d8 100644
--- a/libc/private/bionic_constants.h
+++ b/libc/private/bionic_constants.h
@@ -16,12 +16,15 @@
 
 #pragma once
 
-#define NS_PER_S 1000000000
+#define US_PER_S 1'000'000LL
+#define NS_PER_S 1'000'000'000LL
 
 // Size of the shadow call stack. This can be small because these stacks only
 // contain return addresses. This must be a power of 2 so the mask trick works.
 // See the SCS commentary in pthread_internal.h for more detail.
-#define SCS_SIZE (8 * 1024)
+// SCS_SIZE must be a multiple of page size.
+// We used 8KiB until V but switched to 16KiB in V to experiment with 16KiB pages.
+#define SCS_SIZE (16 * 1024)
 #define SCS_MASK (SCS_SIZE - 1)
 
 // The shadow call stack is allocated at an aligned address within a guard region of this size. The
diff --git a/libm/fenv-access.h b/libc/private/bionic_elf_dtv_offset.h
similarity index 66%
copy from libm/fenv-access.h
copy to libc/private/bionic_elf_dtv_offset.h
index 7acb34d..8d9f3b9 100644
--- a/libm/fenv-access.h
+++ b/libc/private/bionic_elf_dtv_offset.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2021 The Android Open Source Project
+ * Copyright (C) 2024 The Android Open Source Project
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -28,6 +28,17 @@
 
 #pragma once
 
-#if defined(__x86_64__) || defined(__i386__)
-#pragma STDC FENV_ACCESS ON
+#if defined(__riscv)
+// TLS_DTV_OFFSET is a constant used in relocation fields, defined in RISC-V ELF Specification[1]
+// The front of the TCB contains a pointer to the DTV, and each pointer in DTV
+// points to 0x800 past the start of a TLS block to make full use of the range
+// of load/store instructions, refer to [2].
+//
+// [1]: RISC-V ELF Specification.
+// https://github.com/riscv-non-isa/riscv-elf-psabi-doc/blob/master/riscv-elf.adoc#constants
+// [2]: Documentation of TLS data structures
+// https://github.com/riscv-non-isa/riscv-elf-psabi-doc/issues/53
+#define TLS_DTV_OFFSET 0x800
+#else
+#define TLS_DTV_OFFSET 0
 #endif
diff --git a/libc/private/bionic_elf_tls.h b/libc/private/bionic_elf_tls.h
index 79ffcc4..04297ad 100644
--- a/libc/private/bionic_elf_tls.h
+++ b/libc/private/bionic_elf_tls.h
@@ -34,11 +34,32 @@
 #include <stdint.h>
 #include <sys/cdefs.h>
 
+#include "bionic_elf_dtv_offset.h"
+
 __LIBC_HIDDEN__ extern _Atomic(size_t) __libc_tls_generation_copy;
 
-struct TlsSegment {
+struct TlsAlign {
+  size_t value = 1;
+  size_t skew = 0;  // p_vaddr % p_align
+
+  template <typename T>
+  static constexpr TlsAlign of_type() {
+    return TlsAlign{.value = alignof(T)};
+  }
+};
+
+struct TlsAlignedSize {
   size_t size = 0;
-  size_t alignment = 1;
+  TlsAlign align;
+
+  template <typename T>
+  static constexpr TlsAlignedSize of_type() {
+    return TlsAlignedSize{.size = sizeof(T), .align = TlsAlign::of_type<T>()};
+  }
+};
+
+struct TlsSegment {
+  TlsAlignedSize aligned_size;
   const void* init_ptr = "";    // Field is non-null even when init_size is 0.
   size_t init_size = 0;
 };
@@ -46,44 +67,50 @@
 __LIBC_HIDDEN__ bool __bionic_get_tls_segment(const ElfW(Phdr)* phdr_table, size_t phdr_count,
                                               ElfW(Addr) load_bias, TlsSegment* out);
 
-__LIBC_HIDDEN__ bool __bionic_check_tls_alignment(size_t* alignment);
+__LIBC_HIDDEN__ bool __bionic_check_tls_align(size_t align);
 
 struct StaticTlsLayout {
   constexpr StaticTlsLayout() {}
 
-private:
-  size_t offset_ = 0;
-  size_t alignment_ = 1;
-  bool overflowed_ = false;
-
-  // Offsets to various Bionic TLS structs from the beginning of static TLS.
-  size_t offset_bionic_tcb_ = SIZE_MAX;
-  size_t offset_bionic_tls_ = SIZE_MAX;
-
 public:
   size_t offset_bionic_tcb() const { return offset_bionic_tcb_; }
   size_t offset_bionic_tls() const { return offset_bionic_tls_; }
   size_t offset_thread_pointer() const;
+  size_t offset_exe() const { return offset_exe_; }
 
-  size_t size() const { return offset_; }
-  size_t alignment() const { return alignment_; }
-  bool overflowed() const { return overflowed_; }
+  size_t size() const { return cursor_; }
 
   size_t reserve_exe_segment_and_tcb(const TlsSegment* exe_segment, const char* progname);
-  void reserve_bionic_tls();
-  size_t reserve_solib_segment(const TlsSegment& segment) {
-    return reserve(segment.size, segment.alignment);
-  }
+  size_t reserve_bionic_tls();
+  size_t reserve_solib_segment(const TlsSegment& segment) { return reserve(segment.aligned_size); }
   void finish_layout();
 
-private:
-  size_t reserve(size_t size, size_t alignment);
+#if !defined(STATIC_TLS_LAYOUT_TEST)
+ private:
+#endif
+  size_t cursor_ = 0;
+  size_t align_ = 1;
+
+  // Offsets to various Bionic TLS structs from the beginning of static TLS.
+  size_t offset_bionic_tcb_ = SIZE_MAX;
+  size_t offset_bionic_tls_ = SIZE_MAX;
+
+  size_t offset_exe_ = SIZE_MAX;
+
+  struct TpAllocations {
+    size_t before;
+    size_t tp;
+    size_t after;
+  };
+
+  size_t align_cursor(TlsAlign align);
+  size_t align_cursor_unskewed(size_t align);
+  size_t reserve(TlsAlignedSize aligned_size);
+  TpAllocations reserve_tp_pair(TlsAlignedSize before, TlsAlignedSize after);
 
   template <typename T> size_t reserve_type() {
-    return reserve(sizeof(T), alignof(T));
+    return reserve(TlsAlignedSize::of_type<T>());
   }
-
-  size_t round_up_with_overflow_check(size_t value, size_t alignment);
 };
 
 static constexpr size_t kTlsGenerationNone = 0;
@@ -189,30 +216,16 @@
 };
 
 #if defined(__i386__)
-#define TLS_GET_ADDR_CCONV __attribute__((regparm(1)))
+#define TLS_GET_ADDR_CALLING_CONVENTION __attribute__((regparm(1)))
 #define TLS_GET_ADDR ___tls_get_addr
 #else
-#define TLS_GET_ADDR_CCONV
+#define TLS_GET_ADDR_CALLING_CONVENTION
 #define TLS_GET_ADDR __tls_get_addr
 #endif
 
-extern "C" void* TLS_GET_ADDR(const TlsIndex* ti) TLS_GET_ADDR_CCONV;
+extern "C" void* TLS_GET_ADDR(const TlsIndex* ti) TLS_GET_ADDR_CALLING_CONVENTION;
 
 struct bionic_tcb;
 void __free_dynamic_tls(bionic_tcb* tcb);
 void __notify_thread_exit_callbacks();
 
-#if defined(__riscv)
-// TLS_DTV_OFFSET is a constant used in relocation fields, defined in RISC-V ELF Specification[1]
-// The front of the TCB contains a pointer to the DTV, and each pointer in DTV
-// points to 0x800 past the start of a TLS block to make full use of the range
-// of load/store instructions, refer to [2].
-//
-// [1]: RISC-V ELF Specification.
-// https://github.com/riscv-non-isa/riscv-elf-psabi-doc/blob/master/riscv-elf.adoc#constants
-// [2]: Documentation of TLS data structures
-// https://github.com/riscv-non-isa/riscv-elf-psabi-doc/issues/53
-#define TLS_DTV_OFFSET 0x800
-#else
-#define TLS_DTV_OFFSET 0
-#endif
diff --git a/libc/private/bionic_errdefs.h b/libc/private/bionic_errdefs.h
new file mode 100644
index 0000000..435d49b
--- /dev/null
+++ b/libc/private/bionic_errdefs.h
@@ -0,0 +1,171 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *  * Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *  * Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in
+ *    the documentation and/or other materials provided with the
+ *    distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+/*
+ * This header is used to define error constants and names;
+ * it might be included several times.
+ */
+
+#ifndef __BIONIC_ERRDEF
+#error __BIONIC_ERRDEF not defined
+#endif
+
+__BIONIC_ERRDEF(0, "Success")
+__BIONIC_ERRDEF(EPERM, "Operation not permitted")
+__BIONIC_ERRDEF(ENOENT, "No such file or directory")
+__BIONIC_ERRDEF(ESRCH, "No such process")
+__BIONIC_ERRDEF(EINTR, "Interrupted system call")
+__BIONIC_ERRDEF(EIO, "I/O error")
+__BIONIC_ERRDEF(ENXIO, "No such device or address")
+__BIONIC_ERRDEF(E2BIG, "Argument list too long")
+__BIONIC_ERRDEF(ENOEXEC, "Exec format error")
+__BIONIC_ERRDEF(EBADF, "Bad file descriptor")
+__BIONIC_ERRDEF(ECHILD, "No child processes")
+__BIONIC_ERRDEF(EAGAIN, "Try again")
+__BIONIC_ERRDEF(ENOMEM, "Out of memory")
+__BIONIC_ERRDEF(EACCES, "Permission denied")
+__BIONIC_ERRDEF(EFAULT, "Bad address")
+__BIONIC_ERRDEF(ENOTBLK, "Block device required")
+__BIONIC_ERRDEF(EBUSY, "Device or resource busy")
+__BIONIC_ERRDEF(EEXIST, "File exists")
+__BIONIC_ERRDEF(EXDEV, "Cross-device link")
+__BIONIC_ERRDEF(ENODEV, "No such device")
+__BIONIC_ERRDEF(ENOTDIR, "Not a directory")
+__BIONIC_ERRDEF(EISDIR, "Is a directory")
+__BIONIC_ERRDEF(EINVAL, "Invalid argument")
+__BIONIC_ERRDEF(ENFILE, "File table overflow")
+__BIONIC_ERRDEF(EMFILE, "Too many open files")
+__BIONIC_ERRDEF(ENOTTY, "Inappropriate ioctl for device")
+__BIONIC_ERRDEF(ETXTBSY, "Text file busy")
+__BIONIC_ERRDEF(EFBIG, "File too large")
+__BIONIC_ERRDEF(ENOSPC, "No space left on device")
+__BIONIC_ERRDEF(ESPIPE, "Illegal seek")
+__BIONIC_ERRDEF(EROFS, "Read-only file system")
+__BIONIC_ERRDEF(EMLINK, "Too many links")
+__BIONIC_ERRDEF(EPIPE, "Broken pipe")
+__BIONIC_ERRDEF(EDOM, "Math argument out of domain of func")
+__BIONIC_ERRDEF(ERANGE, "Math result not representable")
+__BIONIC_ERRDEF(EDEADLK, "Resource deadlock would occur")
+__BIONIC_ERRDEF(ENAMETOOLONG, "File name too long")
+__BIONIC_ERRDEF(ENOLCK, "No record locks available")
+__BIONIC_ERRDEF(ENOSYS, "Function not implemented")
+__BIONIC_ERRDEF(ENOTEMPTY, "Directory not empty")
+__BIONIC_ERRDEF(ELOOP, "Too many symbolic links encountered")
+__BIONIC_ERRDEF(ENOMSG, "No message of desired type")
+__BIONIC_ERRDEF(EIDRM, "Identifier removed")
+__BIONIC_ERRDEF(ECHRNG, "Channel number out of range")
+__BIONIC_ERRDEF(EL2NSYNC, "Level 2 not synchronized")
+__BIONIC_ERRDEF(EL3HLT, "Level 3 halted")
+__BIONIC_ERRDEF(EL3RST, "Level 3 reset")
+__BIONIC_ERRDEF(ELNRNG, "Link number out of range")
+__BIONIC_ERRDEF(EUNATCH, "Protocol driver not attached")
+__BIONIC_ERRDEF(ENOCSI, "No CSI structure available")
+__BIONIC_ERRDEF(EL2HLT, "Level 2 halted")
+__BIONIC_ERRDEF(EBADE, "Invalid exchange")
+__BIONIC_ERRDEF(EBADR, "Invalid request descriptor")
+__BIONIC_ERRDEF(EXFULL, "Exchange full")
+__BIONIC_ERRDEF(ENOANO, "No anode")
+__BIONIC_ERRDEF(EBADRQC, "Invalid request code")
+__BIONIC_ERRDEF(EBADSLT, "Invalid slot")
+__BIONIC_ERRDEF(EBFONT, "Bad font file format")
+__BIONIC_ERRDEF(ENOSTR, "Device not a stream")
+__BIONIC_ERRDEF(ENODATA, "No data available")
+__BIONIC_ERRDEF(ETIME, "Timer expired")
+__BIONIC_ERRDEF(ENOSR, "Out of streams resources")
+__BIONIC_ERRDEF(ENONET, "Machine is not on the network")
+__BIONIC_ERRDEF(ENOPKG, "Package not installed")
+__BIONIC_ERRDEF(EREMOTE, "Object is remote")
+__BIONIC_ERRDEF(ENOLINK, "Link has been severed")
+__BIONIC_ERRDEF(EADV, "Advertise error")
+__BIONIC_ERRDEF(ESRMNT, "Srmount error")
+__BIONIC_ERRDEF(ECOMM, "Communication error on send")
+__BIONIC_ERRDEF(EPROTO, "Protocol error")
+__BIONIC_ERRDEF(EMULTIHOP, "Multihop attempted")
+__BIONIC_ERRDEF(EDOTDOT, "RFS specific error")
+__BIONIC_ERRDEF(EBADMSG, "Not a data message")
+__BIONIC_ERRDEF(EOVERFLOW, "Value too large for defined data type")
+__BIONIC_ERRDEF(ENOTUNIQ, "Name not unique on network")
+__BIONIC_ERRDEF(EBADFD, "File descriptor in bad state")
+__BIONIC_ERRDEF(EREMCHG, "Remote address changed")
+__BIONIC_ERRDEF(ELIBACC, "Can not access a needed shared library")
+__BIONIC_ERRDEF(ELIBBAD, "Accessing a corrupted shared library")
+__BIONIC_ERRDEF(ELIBSCN, ".lib section in a.out corrupted")
+__BIONIC_ERRDEF(ELIBMAX, "Attempting to link in too many shared libraries")
+__BIONIC_ERRDEF(ELIBEXEC, "Cannot exec a shared library directly")
+__BIONIC_ERRDEF(EILSEQ, "Illegal byte sequence")
+__BIONIC_ERRDEF(ERESTART, "Interrupted system call should be restarted")
+__BIONIC_ERRDEF(ESTRPIPE, "Streams pipe error")
+__BIONIC_ERRDEF(EUSERS, "Too many users")
+__BIONIC_ERRDEF(ENOTSOCK, "Socket operation on non-socket")
+__BIONIC_ERRDEF(EDESTADDRREQ, "Destination address required")
+__BIONIC_ERRDEF(EMSGSIZE, "Message too long")
+__BIONIC_ERRDEF(EPROTOTYPE, "Protocol wrong type for socket")
+__BIONIC_ERRDEF(ENOPROTOOPT, "Protocol not available")
+__BIONIC_ERRDEF(EPROTONOSUPPORT, "Protocol not supported")
+__BIONIC_ERRDEF(ESOCKTNOSUPPORT, "Socket type not supported")
+__BIONIC_ERRDEF(EOPNOTSUPP, "Operation not supported on transport endpoint")
+__BIONIC_ERRDEF(EPFNOSUPPORT, "Protocol family not supported")
+__BIONIC_ERRDEF(EAFNOSUPPORT, "Address family not supported by protocol")
+__BIONIC_ERRDEF(EADDRINUSE, "Address already in use")
+__BIONIC_ERRDEF(EADDRNOTAVAIL, "Cannot assign requested address")
+__BIONIC_ERRDEF(ENETDOWN, "Network is down")
+__BIONIC_ERRDEF(ENETUNREACH, "Network is unreachable")
+__BIONIC_ERRDEF(ENETRESET, "Network dropped connection because of reset")
+__BIONIC_ERRDEF(ECONNABORTED, "Software caused connection abort")
+__BIONIC_ERRDEF(ECONNRESET, "Connection reset by peer")
+__BIONIC_ERRDEF(ENOBUFS, "No buffer space available")
+__BIONIC_ERRDEF(EISCONN, "Transport endpoint is already connected")
+__BIONIC_ERRDEF(ENOTCONN, "Transport endpoint is not connected")
+__BIONIC_ERRDEF(ESHUTDOWN, "Cannot send after transport endpoint shutdown")
+__BIONIC_ERRDEF(ETOOMANYREFS, "Too many references: cannot splice")
+__BIONIC_ERRDEF(ETIMEDOUT, "Connection timed out")
+__BIONIC_ERRDEF(ECONNREFUSED, "Connection refused")
+__BIONIC_ERRDEF(EHOSTDOWN, "Host is down")
+__BIONIC_ERRDEF(EHOSTUNREACH, "No route to host")
+__BIONIC_ERRDEF(EALREADY, "Operation already in progress")
+__BIONIC_ERRDEF(EINPROGRESS, "Operation now in progress")
+__BIONIC_ERRDEF(ESTALE, "Stale NFS file handle")
+__BIONIC_ERRDEF(EUCLEAN, "Structure needs cleaning")
+__BIONIC_ERRDEF(ENOTNAM, "Not a XENIX named type file")
+__BIONIC_ERRDEF(ENAVAIL, "No XENIX semaphores available")
+__BIONIC_ERRDEF(EISNAM, "Is a named type file")
+__BIONIC_ERRDEF(EREMOTEIO, "Remote I/O error")
+__BIONIC_ERRDEF(EDQUOT, "Quota exceeded")
+__BIONIC_ERRDEF(ENOMEDIUM, "No medium found")
+__BIONIC_ERRDEF(EMEDIUMTYPE, "Wrong medium type")
+__BIONIC_ERRDEF(ECANCELED, "Operation Canceled")
+__BIONIC_ERRDEF(ENOKEY, "Required key not available")
+__BIONIC_ERRDEF(EKEYEXPIRED, "Key has expired")
+__BIONIC_ERRDEF(EKEYREVOKED, "Key has been revoked")
+__BIONIC_ERRDEF(EKEYREJECTED, "Key was rejected by service")
+__BIONIC_ERRDEF(EOWNERDEAD, "Owner died")
+__BIONIC_ERRDEF(ENOTRECOVERABLE, "State not recoverable")
+__BIONIC_ERRDEF(ERFKILL, "Operation not possible due to RF-kill")
+__BIONIC_ERRDEF(EHWPOISON, "Memory page has hardware error")
+
+#undef __BIONIC_ERRDEF
diff --git a/libc/private/bionic_globals.h b/libc/private/bionic_globals.h
index c375cc4..cd6dca9 100644
--- a/libc/private/bionic_globals.h
+++ b/libc/private/bionic_globals.h
@@ -47,7 +47,8 @@
   vdso_entry vdso[VDSO_END];
   long setjmp_cookie;
   uintptr_t heap_pointer_tag;
-  _Atomic(bool) memtag_stack;
+  _Atomic(bool) decay_time_enabled;
+  _Atomic(bool) memtag;
 
   // In order to allow a complete switch between dispatch tables without
   // the need for copying each function by function in the structure,
@@ -65,9 +66,36 @@
   MallocDispatch malloc_dispatch_table;
 };
 
+struct memtag_dynamic_entries_t {
+  void* memtag_globals;
+  size_t memtag_globalssz;
+  bool has_memtag_mode;
+  unsigned memtag_mode;
+  bool memtag_heap;
+  bool memtag_stack;
+};
+
 __LIBC_HIDDEN__ extern WriteProtected<libc_globals> __libc_globals;
+// These cannot be in __libc_globals, because we cannot access the
+// WriteProtected in a thread-safe way.
+// See b/328256432.
+//
+// __libc_memtag_stack says whether stack MTE is enabled on the process, i.e.
+// whether the stack pages are mapped with PROT_MTE. This is always false if
+// MTE is disabled for the process (i.e. libc_globals.memtag is false).
+__LIBC_HIDDEN__ extern _Atomic(bool) __libc_memtag_stack;
+// __libc_memtag_stack_abi says whether the process contains any code that was
+// compiled with memtag-stack. This is true even if the process does not have
+// MTE enabled (e.g. because it was overridden using MEMTAG_OPTIONS, or because
+// MTE is disabled for the device).
+// Code compiled with memtag-stack needs a stack history buffer in
+// TLS_SLOT_STACK_MTE, because the codegen will emit an unconditional
+// (to keep the code branchless) write to it.
+// Protected by g_heap_creation_lock.
+__LIBC_HIDDEN__ extern bool __libc_memtag_stack_abi;
 
 struct abort_msg_t;
+struct crash_detail_page_t;
 namespace gwp_asan {
 struct AllocatorState;
 struct AllocationMetadata;
@@ -115,13 +143,24 @@
   const char* scudo_region_info = nullptr;
   const char* scudo_ring_buffer = nullptr;
   size_t scudo_ring_buffer_size = 0;
+  size_t scudo_stack_depot_size = 0;
 
   HeapTaggingLevel initial_heap_tagging_level = M_HEAP_TAGGING_LEVEL_NONE;
+  // See comments for __libc_memtag_stack / __libc_memtag_stack_abi above.
   bool initial_memtag_stack = false;
+  bool initial_memtag_stack_abi = false;
   int64_t heap_tagging_upgrade_timer_sec = 0;
+
+  void (*memtag_stack_dlopen_callback)() = nullptr;
+  pthread_mutex_t crash_detail_page_lock = PTHREAD_MUTEX_INITIALIZER;
+  crash_detail_page_t* crash_detail_page = nullptr;
 };
 
 __LIBC_HIDDEN__ libc_shared_globals* __libc_shared_globals();
+__LIBC_HIDDEN__ bool __libc_mte_enabled();
+__LIBC_HIDDEN__ void __libc_init_mte(const memtag_dynamic_entries_t*, const void*, size_t,
+                                     uintptr_t);
+__LIBC_HIDDEN__ void __libc_init_mte_stack(void*);
 __LIBC_HIDDEN__ void __libc_init_fdsan();
 __LIBC_HIDDEN__ void __libc_init_fdtrack();
 __LIBC_HIDDEN__ void __libc_init_profiling_handlers();
diff --git a/libc/private/bionic_ifuncs.h b/libc/private/bionic_ifuncs.h
index e6b349a..b31c903 100644
--- a/libc/private/bionic_ifuncs.h
+++ b/libc/private/bionic_ifuncs.h
@@ -31,6 +31,8 @@
 #include <stdint.h>
 #include <sys/ifunc.h>
 
+#include <private/bionic_call_ifunc_resolver.h>
+
 #if defined(__aarch64__)
 #define IFUNC_ARGS (uint64_t hwcap __attribute__((unused)), \
                     __ifunc_arg_t* arg __attribute__((unused)))
@@ -40,14 +42,6 @@
 #define IFUNC_ARGS ()
 #endif
 
-// We can't have HWASAN enabled in resolvers because they may be called before HWASAN is
-// initialized.
-#define DEFINE_IFUNC_FOR(name) \
-    name##_func name __attribute__((ifunc(#name "_resolver"))); \
-    __attribute__((visibility("hidden"))) \
-    __attribute__((no_sanitize("hwaddress"))) \
-    name##_func* name##_resolver IFUNC_ARGS
-
 #define DECLARE_FUNC(type, name) \
     __attribute__((visibility("hidden"))) \
     type name
@@ -56,3 +50,137 @@
         DECLARE_FUNC(type, name); \
         return name; \
     }
+
+#if defined(BIONIC_DYNAMIC_DISPATCH)
+
+// We can't have HWASAN enabled in resolvers because they may be called before
+// HWASAN is initialized.
+#define DEFINE_IFUNC_FOR(name)                                  \
+  name##_func_t name __attribute__((ifunc(#name "_resolver"))); \
+  __attribute__((visibility("hidden")))                         \
+  __attribute__((no_sanitize("hwaddress"))) name##_func_t* name##_resolver IFUNC_ARGS
+
+#define DEFINE_STATIC_SHIM(x)
+
+#elif defined(BIONIC_STATIC_DISPATCH)
+
+#define DEFINE_IFUNC_FOR(name)               \
+  name##_func_t* name##_resolver IFUNC_ARGS; \
+  __attribute__((visibility("hidden")))      \
+  __attribute__((no_sanitize("hwaddress"))) name##_func_t* name##_resolver IFUNC_ARGS
+
+#define DEFINE_STATIC_SHIM(x) x
+
+#define FORWARD(name)                                                               \
+  static name##_func_t* fn = reinterpret_cast<name##_func_t*>(                      \
+      __bionic_call_ifunc_resolver(reinterpret_cast<ElfW(Addr)>(name##_resolver))); \
+  return fn
+
+#else
+#error neither dynamic nor static dispatch?!
+#endif
+
+typedef void* memchr_func_t(const void*, int, size_t);
+#define MEMCHR_SHIM()                                                  \
+  DEFINE_STATIC_SHIM(void* memchr(const void* src, int ch, size_t n) { \
+    FORWARD(memchr)(src, ch, n);                                       \
+  })
+
+typedef int memcmp_func_t(const void*, const void*, size_t);
+#define MEMCMP_SHIM()                                                         \
+  DEFINE_STATIC_SHIM(int memcmp(const void* lhs, const void* rhs, size_t n) { \
+    FORWARD(memcmp)(lhs, rhs, n);                                             \
+  })
+
+typedef void* memcpy_func_t(void*, const void*, size_t);
+#define MEMCPY_SHIM()                                                     \
+  DEFINE_STATIC_SHIM(void* memcpy(void* dst, const void* src, size_t n) { \
+    FORWARD(memcpy)(dst, src, n);                                         \
+  })
+
+typedef void* memmove_func_t(void*, const void*, size_t);
+#define MEMMOVE_SHIM()                                                     \
+  DEFINE_STATIC_SHIM(void* memmove(void* dst, const void* src, size_t n) { \
+    FORWARD(memmove)(dst, src, n);                                         \
+  })
+
+typedef int memrchr_func_t(const void*, int, size_t);
+#define MEMRCHR_SHIM()                                                \
+  DEFINE_STATIC_SHIM(int memrchr(const void* src, int ch, size_t n) { \
+    FORWARD(memrchr)(src, ch, n);                                     \
+  })
+
+typedef void* memset_func_t(void*, int, size_t);
+#define MEMSET_SHIM() \
+  DEFINE_STATIC_SHIM(void* memset(void* dst, int ch, size_t n) { FORWARD(memset)(dst, ch, n); })
+
+typedef void* __memset_chk_func_t(void*, int, size_t, size_t);
+#define __MEMSET_CHK_SHIM()                                                       \
+  DEFINE_STATIC_SHIM(void* __memset_chk(void* dst, int ch, size_t n, size_t n2) { \
+    FORWARD(__memset_chk)(dst, ch, n, n2);                                        \
+  })
+
+typedef char* stpcpy_func_t(char*, const char*);
+#define STPCPY_SHIM() \
+  DEFINE_STATIC_SHIM(char* stpcpy(char* dst, const char* src) { FORWARD(stpcpy)(dst, src); })
+
+typedef char* strcat_func_t(char*, const char*);
+#define STRCAT_SHIM() \
+  DEFINE_STATIC_SHIM(char* strcat(char* dst, const char* src) { FORWARD(strcat)(dst, src); })
+
+typedef char* __strcat_chk_func_t(char*, const char*, size_t);
+#define __STRCAT_CHK_SHIM()                                                                \
+  DEFINE_STATIC_SHIM(char* __strcat_chk(char* dst, const char* src, size_t dst_buf_size) { \
+    FORWARD(__strcat_chk)(dst, src, dst_buf_size);                                         \
+  })
+
+typedef char* strchr_func_t(const char*, int);
+#define STRCHR_SHIM() \
+  DEFINE_STATIC_SHIM(char* strchr(const char* src, int ch) { FORWARD(strchr)(src, ch); })
+
+typedef char* strchrnul_func_t(const char*, int);
+#define STRCHRNUL_SHIM() \
+  DEFINE_STATIC_SHIM(char* strchrnul(const char* src, int ch) { FORWARD(strchrnul)(src, ch); })
+
+typedef int strcmp_func_t(const char*, const char*);
+#define STRCMP_SHIM() \
+  DEFINE_STATIC_SHIM(int strcmp(char* lhs, const char* rhs) { FORWARD(strcmp)(lhs, rhs); })
+
+typedef char* strcpy_func_t(char*, const char*);
+#define STRCPY_SHIM() \
+  DEFINE_STATIC_SHIM(char* strcpy(char* dst, const char* src) { FORWARD(strcpy)(dst, src); })
+
+typedef char* __strcpy_chk_func_t(char*, const char*, size_t);
+#define __STRCPY_CHK_SHIM()                                                           \
+  DEFINE_STATIC_SHIM(char* __strcpy_chk(char* dst, const char* src, size_t dst_len) { \
+    FORWARD(__strcpy_chk)(dst, src, dst_len);                                         \
+  })
+
+typedef size_t strlen_func_t(const char*);
+#define STRLEN_SHIM() DEFINE_STATIC_SHIM(size_t strlen(const char* s) { FORWARD(strlen)(s); })
+
+typedef char* strncat_func_t(char*, const char*, size_t);
+#define STRNCAT_SHIM()                                                     \
+  DEFINE_STATIC_SHIM(char* strncat(char* dst, const char* src, size_t n) { \
+    FORWARD(strncat)(dst, src, n);                                         \
+  })
+
+typedef int strncmp_func_t(const char*, const char*, size_t);
+#define STRNCMP_SHIM()                                                         \
+  DEFINE_STATIC_SHIM(int strncmp(const char* lhs, const char* rhs, size_t n) { \
+    FORWARD(strncmp)(lhs, rhs, n);                                             \
+  })
+
+typedef char* strncpy_func_t(char*, const char*, size_t);
+#define STRNCPY_SHIM()                                                     \
+  DEFINE_STATIC_SHIM(char* strncpy(char* dst, const char* src, size_t n) { \
+    FORWARD(strncpy)(dst, src, n);                                         \
+  })
+
+typedef size_t strnlen_func_t(const char*, size_t);
+#define STRNLEN_SHIM() \
+  DEFINE_STATIC_SHIM(size_t strnlen(const char* s, size_t n) { FORWARD(strnlen)(s, n); })
+
+typedef char* strrchr_func_t(const char*, int);
+#define STRRCHR_SHIM() \
+  DEFINE_STATIC_SHIM(char* strrchr(const char* src, int ch) { FORWARD(strrchr)(src, ch); })
diff --git a/libc/private/bionic_inline_raise.h b/libc/private/bionic_inline_raise.h
index 8565c80..82a564d 100644
--- a/libc/private/bionic_inline_raise.h
+++ b/libc/private/bionic_inline_raise.h
@@ -60,6 +60,13 @@
   register long x3 __asm__("x3") = reinterpret_cast<long>(&info);
   register long x8 __asm__("x8") = __NR_rt_tgsigqueueinfo;
   __asm__("svc #0" : "=r"(x0) : "r"(x0), "r"(x1), "r"(x2), "r"(x3), "r"(x8) : "memory");
+#elif defined(__riscv)
+  register long a0 __asm__("a0") = pid;
+  register long a1 __asm__("a1") = tid;
+  register long a2 __asm__("a2") = sig;
+  register long a3 __asm__("a3") = reinterpret_cast<long>(&info);
+  register long a7 __asm__("a7") = __NR_rt_tgsigqueueinfo;
+  __asm__("ecall" : "=r"(a0) : "r"(a0), "r"(a1), "r"(a2), "r"(a3), "r"(a7) : "memory");
 #elif defined(__x86_64__)
   register long rax __asm__("rax") = __NR_rt_tgsigqueueinfo;
   register long rdi __asm__("rdi") = pid;
diff --git a/libc/private/bionic_lock.h b/libc/private/bionic_lock.h
index 8ed4939..d0c6d5e 100644
--- a/libc/private/bionic_lock.h
+++ b/libc/private/bionic_lock.h
@@ -46,7 +46,7 @@
 
  public:
   void init(bool process_shared) {
-    atomic_init(&state, Unlocked);
+    atomic_store_explicit(&state, Unlocked, memory_order_relaxed);
     this->process_shared = process_shared;
   }
 
diff --git a/libc/private/bionic_mbstate.h b/libc/private/bionic_mbstate.h
index 243b220..fb85775 100644
--- a/libc/private/bionic_mbstate.h
+++ b/libc/private/bionic_mbstate.h
@@ -34,21 +34,15 @@
 
 __BEGIN_DECLS
 
-/*
- * These return values are specified by POSIX for multibyte conversion
- * functions.
- */
-#define __MB_ERR_ILLEGAL_SEQUENCE static_cast<size_t>(-1)
-#define __MB_ERR_INCOMPLETE_SEQUENCE static_cast<size_t>(-2)
+#define __MB_IS_ERR(rv)                              \
+  (rv == BIONIC_MULTIBYTE_RESULT_ILLEGAL_SEQUENCE || \
+   rv == BIONIC_MULTIBYTE_RESULT_INCOMPLETE_SEQUENCE)
 
-#define __MB_IS_ERR(rv) (rv == __MB_ERR_ILLEGAL_SEQUENCE || \
-                         rv == __MB_ERR_INCOMPLETE_SEQUENCE)
-
-static inline __wur bool mbstate_is_initial(const mbstate_t* ps) {
+static inline __nodiscard bool mbstate_is_initial(const mbstate_t* ps) {
   return *(reinterpret_cast<const uint32_t*>(ps->__seq)) == 0;
 }
 
-static inline __wur size_t mbstate_bytes_so_far(const mbstate_t* ps) {
+static inline __nodiscard size_t mbstate_bytes_so_far(const mbstate_t* ps) {
   return
       (ps->__seq[2] != 0) ? 3 :
       (ps->__seq[1] != 0) ? 2 :
@@ -59,18 +53,22 @@
   ps->__seq[i] = static_cast<uint8_t>(byte);
 }
 
-static inline __wur uint8_t mbstate_get_byte(const mbstate_t* ps, int n) {
+static inline __nodiscard uint8_t mbstate_get_byte(const mbstate_t* ps, int n) {
   return ps->__seq[n];
 }
 
-static inline __wur size_t mbstate_reset_and_return_illegal(int _errno, mbstate_t* ps) {
-  errno = _errno;
+static inline void mbstate_reset(mbstate_t* ps) {
   *(reinterpret_cast<uint32_t*>(ps->__seq)) = 0;
-  return __MB_ERR_ILLEGAL_SEQUENCE;
 }
 
-static inline __wur size_t mbstate_reset_and_return(int _return, mbstate_t* ps) {
-  *(reinterpret_cast<uint32_t*>(ps->__seq)) = 0;
+static inline __nodiscard size_t mbstate_reset_and_return_illegal(int _errno, mbstate_t* ps) {
+  errno = _errno;
+  mbstate_reset(ps);
+  return BIONIC_MULTIBYTE_RESULT_ILLEGAL_SEQUENCE;
+}
+
+static inline __nodiscard size_t mbstate_reset_and_return(size_t _return, mbstate_t* ps) {
+  mbstate_reset(ps);
   return _return;
 }
 
diff --git a/libc/private/bionic_sigdefs.h b/libc/private/bionic_sigdefs.h
index 44d60d9..7e1b477 100644
--- a/libc/private/bionic_sigdefs.h
+++ b/libc/private/bionic_sigdefs.h
@@ -27,8 +27,8 @@
  */
 
 /*
- * this header is used to define signal constants and names;
- * it might be included several times
+ * This header is used to define signal constants and names;
+ * it might be included several times.
  */
 
 #ifndef __BIONIC_SIGDEF
@@ -41,9 +41,6 @@
 __BIONIC_SIGDEF(SIGILL,    "Illegal instruction")
 __BIONIC_SIGDEF(SIGTRAP,   "Trap")
 __BIONIC_SIGDEF(SIGABRT,   "Aborted")
-#ifdef SIGEMT
-__BIONIC_SIGDEF(SIGEMT,    "EMT")
-#endif
 __BIONIC_SIGDEF(SIGFPE,    "Floating point exception")
 __BIONIC_SIGDEF(SIGKILL,   "Killed")
 __BIONIC_SIGDEF(SIGBUS,    "Bus error")
@@ -67,9 +64,7 @@
 __BIONIC_SIGDEF(SIGPROF,   "Profiling timer expired")
 __BIONIC_SIGDEF(SIGXCPU,   "CPU time limit exceeded")
 __BIONIC_SIGDEF(SIGXFSZ,   "File size limit exceeded")
-#if defined(SIGSTKFLT)
 __BIONIC_SIGDEF(SIGSTKFLT, "Stack fault")
-#endif
 __BIONIC_SIGDEF(SIGSYS,    "Bad system call")
 
 #undef __BIONIC_SIGDEF
diff --git a/libc/private/bionic_time_conversions.h b/libc/private/bionic_time_conversions.h
index fb049f2..ce7de0d 100644
--- a/libc/private/bionic_time_conversions.h
+++ b/libc/private/bionic_time_conversions.h
@@ -26,8 +26,7 @@
  * SUCH DAMAGE.
  */
 
-#ifndef _BIONIC_TIME_CONVERSIONS_H
-#define _BIONIC_TIME_CONVERSIONS_H
+#pragma once
 
 #include <errno.h>
 #include <time.h>
@@ -35,17 +34,21 @@
 
 #include "private/bionic_constants.h"
 
-__BEGIN_DECLS
+bool timespec_from_timeval(timespec& ts, const timeval& tv);
+void timespec_from_ms(timespec& ts, const int ms);
 
-__LIBC_HIDDEN__ bool timespec_from_timeval(timespec& ts, const timeval& tv);
-__LIBC_HIDDEN__ void timespec_from_ms(timespec& ts, const int ms);
+void timeval_from_timespec(timeval& tv, const timespec& ts);
 
-__LIBC_HIDDEN__ void timeval_from_timespec(timeval& tv, const timespec& ts);
+void monotonic_time_from_realtime_time(timespec& monotonic_time, const timespec& realtime_time);
+void realtime_time_from_monotonic_time(timespec& realtime_time, const timespec& monotonic_time);
 
-__LIBC_HIDDEN__ void monotonic_time_from_realtime_time(timespec& monotonic_time,
-                                                       const timespec& realtime_time);
+static inline int64_t to_ns(const timespec& ts) {
+  return ts.tv_sec * NS_PER_S + ts.tv_nsec;
+}
 
-__END_DECLS
+static inline int64_t to_us(const timeval& tv) {
+  return tv.tv_sec * US_PER_S + tv.tv_usec;
+}
 
 static inline int check_timespec(const timespec* ts, bool null_allowed) {
   if (null_allowed && ts == nullptr) {
@@ -73,5 +76,3 @@
   }
 }
 #endif
-
-#endif
diff --git a/libc/private/bionic_vdso.h b/libc/private/bionic_vdso.h
index da19b29..406b064 100644
--- a/libc/private/bionic_vdso.h
+++ b/libc/private/bionic_vdso.h
@@ -26,26 +26,23 @@
  * SUCH DAMAGE.
  */
 
-#ifndef _PRIVATE_BIONIC_VDSO_H
-#define _PRIVATE_BIONIC_VDSO_H
-
-#include <time.h>
+#pragma once
 
 #if defined(__aarch64__)
 #define VDSO_CLOCK_GETTIME_SYMBOL "__kernel_clock_gettime"
-#define VDSO_CLOCK_GETRES_SYMBOL  "__kernel_clock_getres"
-#define VDSO_GETTIMEOFDAY_SYMBOL  "__kernel_gettimeofday"
-#define VDSO_TIME_SYMBOL          "__kernel_time"
+#define VDSO_CLOCK_GETRES_SYMBOL "__kernel_clock_getres"
+#define VDSO_GETTIMEOFDAY_SYMBOL "__kernel_gettimeofday"
 #else
 #define VDSO_CLOCK_GETTIME_SYMBOL "__vdso_clock_gettime"
-#define VDSO_CLOCK_GETRES_SYMBOL  "__vdso_clock_getres"
-#define VDSO_GETTIMEOFDAY_SYMBOL  "__vdso_gettimeofday"
-#define VDSO_TIME_SYMBOL          "__vdso_time"
+#define VDSO_CLOCK_GETRES_SYMBOL "__vdso_clock_getres"
+#define VDSO_GETTIMEOFDAY_SYMBOL "__vdso_gettimeofday"
 #endif
-
-extern "C" int __clock_gettime(int, timespec*);
-extern "C" int __clock_getres(int, timespec*);
-extern "C" int __gettimeofday(timeval*, struct timezone*);
+#if defined(__riscv)
+#define VDSO_RISCV_HWPROBE_SYMBOL "__vdso_riscv_hwprobe"
+#endif
+#if defined(__i386__) || defined(__x86_64__)
+#define VDSO_TIME_SYMBOL "__vdso_time"
+#endif
 
 struct vdso_entry {
   const char* name;
@@ -56,8 +53,11 @@
   VDSO_CLOCK_GETTIME = 0,
   VDSO_CLOCK_GETRES,
   VDSO_GETTIMEOFDAY,
+#if defined(VDSO_TIME_SYMBOL)
   VDSO_TIME,
+#endif
+#if defined(VDSO_RISCV_HWPROBE_SYMBOL)
+  VDSO_RISCV_HWPROBE,
+#endif
   VDSO_END
 };
-
-#endif  // _PRIVATE_BIONIC_VDSO_H
diff --git a/libc/private/bsd_sys_param.h b/libc/private/bsd_sys_param.h
deleted file mode 100644
index be5f692..0000000
--- a/libc/private/bsd_sys_param.h
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
- * Copyright (C) 2014 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#pragma once
-
-#include <inttypes.h>
-
-/* OpenBSD has these in <sys/param.h>, but "ALIGN" isn't something we want to reserve. */
-#define ALIGNBYTES (sizeof(uintptr_t) - 1)
-#define ALIGN(p) (((uintptr_t)(p) + ALIGNBYTES) & ~ALIGNBYTES)
diff --git a/libm/fenv-access.h b/libc/private/elf_note.h
similarity index 66%
copy from libm/fenv-access.h
copy to libc/private/elf_note.h
index 7acb34d..6a9399b 100644
--- a/libm/fenv-access.h
+++ b/libc/private/elf_note.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2021 The Android Open Source Project
+ * Copyright (C) 2024 The Android Open Source Project
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -28,6 +28,15 @@
 
 #pragma once
 
-#if defined(__x86_64__) || defined(__i386__)
-#pragma STDC FENV_ACCESS ON
-#endif
+#include <elf.h>
+#include <link.h>
+
+// Get desired ELF note (Nhdr/desc) from mmapped PT_NOTE
+bool __get_elf_note(unsigned note_type, const char* note_name, const ElfW(Addr) note_addr,
+                    const ElfW(Phdr)* phdr_note, const ElfW(Nhdr)** note_hdr,
+                    const char** note_desc);
+
+// Search all mapped PT_NOTE's for the desired ELF note (Nhdr/desc)
+bool __find_elf_note(unsigned int note_type, const char* note_name, const ElfW(Phdr)* phdr_start,
+                     size_t phdr_ct, const ElfW(Nhdr)** note_hdr, const char** note_desc,
+                     const ElfW(Addr) load_bias);
diff --git a/libc/private/icu.h b/libc/private/icu.h
index a671e98..8e4aa80 100644
--- a/libc/private/icu.h
+++ b/libc/private/icu.h
@@ -80,7 +80,8 @@
 
 int8_t __icu_charType(wint_t wc);
 int32_t __icu_getIntPropertyValue(wint_t wc, UProperty property);
-bool __icu_hasBinaryProperty(wint_t wc, UProperty property, int (*fallback)(int));
+
+typedef UBool (*u_hasBinaryProperty_t)(UChar32, UProperty);
 
 void* __find_icu_symbol(const char* symbol_name);
 
diff --git a/libc/private/thread_private.h b/libc/private/thread_private.h
index 1f9eeb6..1a13690 100644
--- a/libc/private/thread_private.h
+++ b/libc/private/thread_private.h
@@ -29,7 +29,6 @@
 
 #define _ARC4_LOCK() _thread_arc4_lock()
 #define _ARC4_UNLOCK() _thread_arc4_unlock()
-#define _ARC4_ATFORK(f) pthread_atfork(NULL, NULL, (f))
 
 extern volatile sig_atomic_t _rs_forked;
 
diff --git a/libc/stdio/fmemopen.cpp b/libc/stdio/fmemopen.cpp
index 6e333ba..f069da4 100644
--- a/libc/stdio/fmemopen.cpp
+++ b/libc/stdio/fmemopen.cpp
@@ -33,8 +33,8 @@
 
 #include "local.h"
 
-// See http://pubs.opengroup.org/onlinepubs/9699919799/functions/fmemopen.html
-// and http://man7.org/linux/man-pages/man3/fmemopen.3.html for documentation.
+// See https://pubs.opengroup.org/onlinepubs/9799919799.2024edition/functions/fmemopen.html
+// and https://man7.org/linux/man-pages/man3/fmemopen.3.html for documentation.
 
 struct fmemopen_cookie {
   char* buf;
diff --git a/libc/stdio/local.h b/libc/stdio/local.h
index 2fc12a0..a60468e 100644
--- a/libc/stdio/local.h
+++ b/libc/stdio/local.h
@@ -51,11 +51,7 @@
 
 struct __sbuf {
   unsigned char* _base;
-#if defined(__LP64__)
   size_t _size;
-#else
-  int _size;
-#endif
 };
 
 struct __sFILE {
@@ -236,7 +232,7 @@
 /* OpenBSD exposes these in <stdio.h>, but we only want them exposed to the implementation. */
 #define __sferror(p) (((p)->_flags & __SERR) != 0)
 #define __sclearerr(p) ((void)((p)->_flags &= ~(__SERR | __SEOF)))
-#define __sgetc(p) (--(p)->_r < 0 ? __srget(p) : (int)(*(p)->_p++))
+#define __sgetc(p) (--(p)->_r < 0 ? __srget(p) : __BIONIC_CAST(static_cast, int, *(p)->_p++))
 
 /* OpenBSD declares these in fvwrite.h, but we share them with C++ parts of the implementation. */
 struct __siov {
@@ -288,19 +284,23 @@
 char* __hldtoa(long double, const char*, int, int*, int*, char**);
 char* __ldtoa(long double*, int, int, int*, int*, char**);
 
-#define WCIO_GET(fp) (_EXT(fp) ? &(_EXT(fp)->_wcio) : (struct wchar_io_data*)0)
+#define WCIO_GET(fp) (_EXT(fp) ? &(_EXT(fp)->_wcio) : NULL)
 
-#define _SET_ORIENTATION(fp, mode)                                 \
-  do {                                                             \
-    struct wchar_io_data* _wcio = WCIO_GET(fp);                    \
-    if (_wcio && _wcio->wcio_mode == 0) _wcio->wcio_mode = (mode); \
+#define ORIENT_BYTES (-1)
+#define ORIENT_UNKNOWN 0
+#define ORIENT_CHARS 1
+
+#define _SET_ORIENTATION(fp, mode)                                              \
+  do {                                                                          \
+    struct wchar_io_data* _wcio = WCIO_GET(fp);                                 \
+    if (_wcio && _wcio->wcio_mode == ORIENT_UNKNOWN) _wcio->wcio_mode = (mode); \
   } while (0)
 
 #define WCIO_FREE(fp)                           \
   do {                                          \
     struct wchar_io_data* _wcio = WCIO_GET(fp); \
     if (_wcio) {                                \
-      _wcio->wcio_mode = 0;                     \
+      _wcio->wcio_mode = ORIENT_UNKNOWN;        \
       _wcio->wcio_ungetwc_inbuf = 0;            \
     }                                           \
   } while (0)
diff --git a/libc/stdio/printf_common.h b/libc/stdio/printf_common.h
index b0055f0..653bba2 100644
--- a/libc/stdio/printf_common.h
+++ b/libc/stdio/printf_common.h
@@ -85,6 +85,10 @@
 // Helper function for `fprintf to unbuffered unix file': creates a
 // temporary buffer.  We only work on write-only files; this avoids
 // worries about ungetc buffers and so forth.
+//
+// We prevent inlining because this massively increases the printf()
+// family's stack usage to support a rare case.
+__attribute__((__noinline__))
 static int __sbprintf(FILE* fp, const CHAR_TYPE* fmt, va_list ap) {
   FILE fake;
   struct __sfileext fakeext;
@@ -528,17 +532,29 @@
       case 'b':
         ADDUARG();
         break;
-      case 'w':
+      case 'w': {
         n = 0;
+        bool fast = false;
         ch = *fmt++;
+        if (ch == 'f') {
+          fast = true;
+          ch = *fmt++;
+        }
         while (is_digit(ch)) {
           APPEND_DIGIT(n, ch);
           ch = *fmt++;
         }
         if (n == 64) {
           flags |= LLONGINT;
+        } else {
+          if (n != 8 && fast) {
+#if defined(__LP64__)
+            flags |= LLONGINT;
+#endif
+          }
         }
         goto reswitch;
+      }
       default: /* "%?" prints ?, unless ? is NUL */
         if (ch == '\0') goto done;
         break;
@@ -774,7 +790,7 @@
   //
   // Returns NULL on failure.
   // To find out what happened check errno for ENOMEM, EILSEQ and EINVAL.
-  static wchar_t* mbsconv(char* mbsarg, int prec) {
+  static wchar_t* mbsconv(const char* mbsarg, int prec) {
     mbstate_t mbs;
     const char* p;
     size_t insize, nchars, nconv;
@@ -824,4 +840,15 @@
     return convbuf;
   }
 
+  // Trasnlate a fixed size integer argument for the %w/%wf format to a
+  // flag representation. Supported sizes are 8, 16, 32, and 64 so far.
+  // See details in bionic/libc/include/stdint.h
+  static int w_to_flag(int size, bool fast) {
+    static constexpr int fast_size = sizeof(void*) == 8 ? LLONGINT : 0;
+    if (size == 8) return CHARINT;
+    if (size == 16) return fast ? fast_size : SHORTINT;
+    if (size == 32) return fast ? fast_size : 0;
+    if (size == 64) return LLONGINT;
+    __fortify_fatal("%%w%s%d is unsupported", fast ? "f" : "", size);
+  }
 };
diff --git a/libc/stdio/scanf_common.h b/libc/stdio/scanf_common.h
new file mode 100644
index 0000000..1b6b87f
--- /dev/null
+++ b/libc/stdio/scanf_common.h
@@ -0,0 +1,115 @@
+/*	$OpenBSD: vfscanf.c,v 1.31 2014/03/19 05:17:01 guenther Exp $ */
+/*-
+ * Copyright (c) 1990, 1993
+ *	The Regents of the University of California.  All rights reserved.
+ *
+ * This code is derived from software contributed to Berkeley by
+ * Chris Torek.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#include <ctype.h>
+#include <inttypes.h>
+#include <limits.h>
+#include <locale.h>
+#include <stdarg.h>
+#include <stddef.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <sys/param.h>
+#include <wctype.h>
+#include "local.h"
+
+#include <platform/bionic/macros.h>
+#include <private/bionic_fortify.h>
+#include <private/bionic_mbstate.h>
+
+#define BUF 513 /* Maximum length of numeric string. */
+
+// Flags used during conversion.
+// Size/type:
+#define LONG 0x00001        // l: long or double
+#define LONGDBL 0x00002     // L: long double
+#define SHORT 0x00004       // h: short
+#define SHORTSHORT 0x00008  // hh: 8 bit integer
+#define LLONG 0x00010       // ll: long long (+ deprecated q: quad)
+#define POINTER 0x00020     // p: void* (as hex)
+#define SIZEINT 0x00040     // z: (signed) size_t
+#define MAXINT 0x00080      // j: intmax_t
+#define PTRINT 0x00100      // t: ptrdiff_t
+#define NOSKIP 0x00200      // [ or c: do not skip blanks
+// Modifiers:
+#define SUPPRESS 0x00400  // *: suppress assignment
+#define UNSIGNED 0x00800  // %[oupxX] conversions
+#define ALLOCATE 0x01000  // m: allocate a char*
+// Internal use during integer parsing:
+#define SIGNOK 0x02000    // +/- is (still) legal
+#define HAVESIGN 0x04000  // Sign detected
+#define NDIGITS 0x08000   // No digits detected
+#define PFXOK 0x10000     // "0x" prefix is (still) legal
+#define PFBOK 0x20000     // "0b" prefix is (still) legal
+#define NZDIGITS 0x40000  // No zero digits detected
+
+// Conversion types.
+#define CT_CHAR 0    // %c conversion
+#define CT_CCL 1     // %[...] conversion
+#define CT_STRING 2  // %s conversion
+#define CT_INT 3     // Integer: strtoimax/strtoumax
+#define CT_FLOAT 4   // Float: strtod
+
+#define to_digit(c) static_cast<int>((c) - '0')
+#define is_digit(c) (static_cast<unsigned>(to_digit(c)) <= 9)
+
+// Append a digit to a value and check for overflow.
+#define APPEND_DIGIT(val, dig)               \
+  do {                                       \
+    if ((val) > INT_MAX / 10)                \
+      errno = ENOMEM;                        \
+    else {                                   \
+      (val) *= 10;                           \
+      if ((val) > INT_MAX - to_digit((dig))) \
+        errno = ENOMEM;                      \
+      else                                   \
+        (val) += to_digit((dig));            \
+    }                                        \
+  } while (0)
+
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wunused-function"
+// Trasnlate a fixed size integer argument for the %w/%wf format to a
+// flag representation. Supported sizes are 8, 16, 32, and 64 so far.
+// See details in bionic/libc/include/stdint.h
+static int w_to_flag(int size, bool fast) {
+  static constexpr int fast_size = sizeof(void*) == 8 ? LLONG : 0;
+  if (size == 8) return SHORTSHORT;
+  if (size == 16) return fast ? fast_size : SHORT;
+  if (size == 32) return fast ? fast_size : 0;
+  if (size == 64) return LLONG;
+  __fortify_fatal("%%w%s%d is unsupported", fast ? "f" : "", size);
+}
+
+#pragma clang diagnostic pop
diff --git a/libc/stdio/stdio.cpp b/libc/stdio/stdio.cpp
index 645aefa..a5f2f81 100644
--- a/libc/stdio/stdio.cpp
+++ b/libc/stdio/stdio.cpp
@@ -58,8 +58,6 @@
 #include "private/bionic_fortify.h"
 #include "private/thread_private.h"
 
-#include "private/bsd_sys_param.h" // For ALIGN/ALIGNBYTES.
-
 #define	NDYNAMIC 10		/* add ten more whenever necessary */
 
 #define PRINTF_IMPL(expr) \
@@ -135,12 +133,14 @@
 };
 
 static glue* moreglue(int n) {
-  char* data = new char[sizeof(glue) + ALIGNBYTES + n * sizeof(FILE) + n * sizeof(__sfileext)];
+  char* data = new char[sizeof(glue) +
+                        alignof(FILE) + n * sizeof(FILE) +
+                        alignof(__sfileext) + n * sizeof(__sfileext)];
   if (data == nullptr) return nullptr;
 
   glue* g = reinterpret_cast<glue*>(data);
-  FILE* p = reinterpret_cast<FILE*>(ALIGN(data + sizeof(*g)));
-  __sfileext* pext = reinterpret_cast<__sfileext*>(ALIGN(data + sizeof(*g)) + n * sizeof(FILE));
+  FILE* p = reinterpret_cast<FILE*>(__builtin_align_up(g + 1, alignof(FILE)));
+  __sfileext* pext = reinterpret_cast<__sfileext*>(__builtin_align_up(p + n, alignof(__sfileext)));
   g->next = nullptr;
   g->niobs = n;
   g->iobs = p;
@@ -773,7 +773,7 @@
 char* fgets_unlocked(char* buf, int n, FILE* fp) {
   if (n <= 0) __fortify_fatal("fgets: buffer size %d <= 0", n);
 
-  _SET_ORIENTATION(fp, -1);
+  _SET_ORIENTATION(fp, ORIENT_BYTES);
 
   char* s = buf;
   n--; // Leave space for NUL.
@@ -903,7 +903,7 @@
     errno = EBADF;
     return EOF;
   }
-  _SET_ORIENTATION(fp, -1);
+  _SET_ORIENTATION(fp, ORIENT_BYTES);
   if (--fp->_w >= 0 || (fp->_w >= fp->_lbfsize && c != '\n')) {
     return (*fp->_p++ = c);
   }
@@ -1079,6 +1079,26 @@
   return __sflush(fp);
 }
 
+int fpurge(FILE* fp) {
+  CHECK_FP(fp);
+
+  ScopedFileLock sfl(fp);
+
+  if (fp->_flags == 0) {
+    // Already freed!
+    errno = EBADF;
+    return EOF;
+  }
+
+  if (HASUB(fp)) FREEUB(fp);
+  WCIO_FREE(fp);
+  fp->_p = fp->_bf._base;
+  fp->_r = 0;
+  fp->_w = fp->_flags & (__SLBF | __SNBF) ? 0 : fp->_bf._size;
+  return 0;
+}
+__strong_alias(__fpurge, fpurge);
+
 size_t fread(void* buf, size_t size, size_t count, FILE* fp) {
   CHECK_FP(fp);
   ScopedFileLock sfl(fp);
@@ -1098,7 +1118,7 @@
   size_t total = desired_total;
   if (total == 0) return 0;
 
-  _SET_ORIENTATION(fp, -1);
+  _SET_ORIENTATION(fp, ORIENT_BYTES);
 
   // TODO: how can this ever happen?!
   if (fp->_r < 0) fp->_r = 0;
@@ -1165,7 +1185,7 @@
   __siov iov = { .iov_base = const_cast<void*>(buf), .iov_len = n };
   __suio uio = { .uio_iov = &iov, .uio_iovcnt = 1, .uio_resid = n };
 
-  _SET_ORIENTATION(fp, -1);
+  _SET_ORIENTATION(fp, ORIENT_BYTES);
 
   // The usual case is success (__sfvwrite returns 0); skip the divide if this happens,
   // since divides are generally slow.
diff --git a/libc/stdio/stdio_ext.cpp b/libc/stdio/stdio_ext.cpp
index 99a8af7..3eb2f33 100644
--- a/libc/stdio/stdio_ext.cpp
+++ b/libc/stdio/stdio_ext.cpp
@@ -59,10 +59,6 @@
   return (fp->_flags & __SLBF) != 0;
 }
 
-void __fpurge(FILE* fp) {
-  fpurge(fp);
-}
-
 size_t __fpending(FILE* fp) {
   return fp->_p - fp->_bf._base;
 }
diff --git a/libc/stdio/vfprintf.cpp b/libc/stdio/vfprintf.cpp
index b7c68dd..354317c 100644
--- a/libc/stdio/vfprintf.cpp
+++ b/libc/stdio/vfprintf.cpp
@@ -39,7 +39,27 @@
 #define CHAR_TYPE_inf "inf"
 #define CHAR_TYPE_NAN "NAN"
 #define CHAR_TYPE_nan "nan"
-#define CHAR_TYPE_ORIENTATION -1
+#define CHAR_TYPE_ORIENTATION ORIENT_BYTES
+
+#define PRINT(ptr, len)                          \
+  do {                                           \
+    iovp->iov_base = (void*)(ptr);               \
+    iovp->iov_len = (len);                       \
+    uio.uio_resid += (len);                      \
+    iovp++;                                      \
+    if (++uio.uio_iovcnt >= NIOV) {              \
+      if (helpers::sprint(fp, &uio)) goto error; \
+      iovp = iov;                                \
+    }                                            \
+  } while (0)
+
+#define FLUSH()                                                 \
+  do {                                                          \
+    if (uio.uio_resid && helpers::sprint(fp, &uio)) goto error; \
+    uio.uio_iovcnt = 0;                                         \
+    iovp = iov;                                                 \
+  } while (0)
+
 #include "printf_common.h"
 
 int FUNCTION_NAME(FILE* fp, const CHAR_TYPE* fmt0, va_list ap) {
@@ -105,34 +125,16 @@
    * below longer.
    */
 #define PADSIZE 16 /* pad chunk size */
-  static CHAR_TYPE blanks[PADSIZE] = {
+  static const CHAR_TYPE blanks[PADSIZE] = {
     ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' '
   };
-  static CHAR_TYPE zeroes[PADSIZE] = {
+  static const CHAR_TYPE zeroes[PADSIZE] = {
     '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0'
   };
 
   static const char xdigs_lower[] = "0123456789abcdef";
   static const char xdigs_upper[] = "0123456789ABCDEF";
 
-#define PRINT(ptr, len)                   \
-  do {                                    \
-    iovp->iov_base = (ptr);               \
-    iovp->iov_len = (len);                \
-    uio.uio_resid += (len);               \
-    iovp++;                               \
-    if (++uio.uio_iovcnt >= NIOV) {       \
-      if (helpers::sprint(fp, &uio)) goto error; \
-      iovp = iov;                         \
-    }                                     \
-  } while (0)
-#define FLUSH()                                          \
-  do {                                                   \
-    if (uio.uio_resid && helpers::sprint(fp, &uio)) goto error; \
-    uio.uio_iovcnt = 0;                                  \
-    iovp = iov;                                          \
-  } while (0)
-
   _SET_ORIENTATION(fp, CHAR_TYPE_ORIENTATION);
 
   // Writing "" to a read only file returns EOF, not 0.
@@ -338,6 +340,7 @@
       case 'd':
       case 'i':
         _umax = SARG();
+signed_decimal:
         if ((intmax_t)_umax < 0) {
           _umax = -_umax;
           sign = '-';
@@ -359,14 +362,14 @@
         if (dtoaresult) __freedtoa(dtoaresult);
         if (flags & LONGDBL) {
           fparg.ldbl = GETARG(long double);
-          dtoaresult = cp = __hldtoa(fparg.ldbl, xdigs, prec, &expt, &signflag, &dtoaend);
+          dtoaresult = __hldtoa(fparg.ldbl, xdigs, prec, &expt, &signflag, &dtoaend);
           if (dtoaresult == nullptr) {
             errno = ENOMEM;
             goto error;
           }
         } else {
           fparg.dbl = GETARG(double);
-          dtoaresult = cp = __hdtoa(fparg.dbl, xdigs, prec, &expt, &signflag, &dtoaend);
+          dtoaresult = __hdtoa(fparg.dbl, xdigs, prec, &expt, &signflag, &dtoaend);
           if (dtoaresult == nullptr) {
             errno = ENOMEM;
             goto error;
@@ -396,14 +399,14 @@
         if (dtoaresult) __freedtoa(dtoaresult);
         if (flags & LONGDBL) {
           fparg.ldbl = GETARG(long double);
-          dtoaresult = cp = __ldtoa(&fparg.ldbl, expchar ? 2 : 3, prec, &expt, &signflag, &dtoaend);
+          dtoaresult = __ldtoa(&fparg.ldbl, expchar ? 2 : 3, prec, &expt, &signflag, &dtoaend);
           if (dtoaresult == nullptr) {
             errno = ENOMEM;
             goto error;
           }
         } else {
           fparg.dbl = GETARG(double);
-          dtoaresult = cp = __dtoa(fparg.dbl, expchar ? 2 : 3, prec, &expt, &signflag, &dtoaend);
+          dtoaresult = __dtoa(fparg.dbl, expchar ? 2 : 3, prec, &expt, &signflag, &dtoaend);
           if (dtoaresult == nullptr) {
             errno = ENOMEM;
             goto error;
@@ -411,6 +414,13 @@
           if (expt == 9999) expt = INT_MAX;
         }
       fp_common:
+#if CHAR_TYPE_ORIENTATION == ORIENT_BYTES
+        cp = dtoaresult;
+#else
+        free(convbuf);
+        cp = convbuf = helpers::mbsconv(dtoaresult, -1);
+        if (cp == nullptr) goto error;
+#endif
         if (signflag) sign = '-';
         if (expt == INT_MAX) { /* inf or nan */
           if (*cp == 'N') {
@@ -423,7 +433,7 @@
           break;
         }
         flags |= FPT;
-        ndig = dtoaend - cp;
+        ndig = dtoaend - dtoaresult;
         if (ch == 'g' || ch == 'G') {
           if (expt > -4 && expt <= prec) {
             /* Make %[gG] smell like %[fF] */
@@ -459,7 +469,15 @@
       case 'n':
         __fortify_fatal("%%n not allowed on Android");
       case 'm':
-        cp = strerror_r(caller_errno, buf, sizeof(buf));
+        if (flags & ALT) {
+          cp = const_cast<char*>(strerrorname_np(caller_errno));
+          if (cp == nullptr) {
+            _umax = caller_errno;
+            goto signed_decimal;
+          }
+        } else {
+          cp = strerror_r(caller_errno, buf, sizeof(buf));
+        }
         goto string;
       case 'O':
         flags |= LONGINT;
@@ -521,34 +539,21 @@
         _umax = UARG();
         base = DEC;
         goto nosign;
-      case 'w':
+      case 'w': {
         n = 0;
+        bool fast = false;
         ch = *fmt++;
+        if (ch == 'f') {
+          fast = true;
+          ch = *fmt++;
+        }
         while (is_digit(ch)) {
           APPEND_DIGIT(n, ch);
           ch = *fmt++;
         }
-        switch (n) {
-          case 8: {
-            flags |= CHARINT;
-            goto reswitch;
-          }
-          case 16: {
-            flags |= SHORTINT;
-            goto reswitch;
-          }
-          case 32: {
-            goto reswitch;
-          }
-          case 64: {
-            flags |= LLONGINT;
-            goto reswitch;
-          }
-          default: {
-            __fortify_fatal("%%w%d is unsupported", n);
-            break;
-          }
-        }
+        flags |= helpers::w_to_flag(n, fast);
+        goto reswitch;
+      }
       case 'X':
         xdigs = xdigs_upper;
         goto hex;
@@ -673,6 +678,7 @@
     } else { /* glue together f_p fragments */
       if (decimal_point == nullptr) decimal_point = nl_langinfo(RADIXCHAR);
       if (!expchar) { /* %[fF] or sufficiently short %[gG] */
+        CHAR_TYPE* end = cp + ndig;
         if (expt <= 0) {
           PRINT(zeroes, 1);
           if (prec || flags & ALT) PRINT(decimal_point, 1);
@@ -680,11 +686,11 @@
           /* already handled initial 0's */
           prec += expt;
         } else {
-          PRINTANDPAD(cp, dtoaend, lead, zeroes);
+          PRINTANDPAD(cp, end, lead, zeroes);
           cp += lead;
           if (prec || flags & ALT) PRINT(decimal_point, 1);
         }
-        PRINTANDPAD(cp, dtoaend, prec, zeroes);
+        PRINTANDPAD(cp, end, prec, zeroes);
       } else { /* %[eE] or sufficiently long %[gG] */
         if (prec > 1 || flags & ALT) {
           buf[0] = *cp++;
diff --git a/libc/stdio/vfscanf.cpp b/libc/stdio/vfscanf.cpp
index d05a3a6..92ff541 100644
--- a/libc/stdio/vfscanf.cpp
+++ b/libc/stdio/vfscanf.cpp
@@ -31,53 +31,7 @@
  * SUCH DAMAGE.
  */
 
-#include <ctype.h>
-#include <inttypes.h>
-#include <stdarg.h>
-#include <stddef.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <sys/param.h>
-#include <wctype.h>
-#include "local.h"
-
-#include <private/bionic_fortify.h>
-#include <platform/bionic/macros.h>
-#include <private/bionic_mbstate.h>
-
-#define BUF 513 /* Maximum length of numeric string. */
-
-// Flags used during conversion.
-// Size/type:
-#define LONG       0x00001 // l: long or double
-#define LONGDBL    0x00002 // L: long double
-#define SHORT      0x00004 // h: short
-#define SHORTSHORT 0x00008 // hh: 8 bit integer
-#define LLONG      0x00010 // ll: long long (+ deprecated q: quad)
-#define POINTER    0x00020 // p: void* (as hex)
-#define SIZEINT    0x00040 // z: (signed) size_t
-#define MAXINT     0x00080 // j: intmax_t
-#define PTRINT     0x00100 // t: ptrdiff_t
-#define NOSKIP     0x00200 // [ or c: do not skip blanks
-// Modifiers:
-#define SUPPRESS   0x00400 // *: suppress assignment
-#define UNSIGNED   0x00800 // %[oupxX] conversions
-#define ALLOCATE   0x01000 // m: allocate a char*
-// Internal use during integer parsing:
-#define SIGNOK     0x02000 // +/- is (still) legal
-#define HAVESIGN   0x04000 // Sign detected
-#define NDIGITS    0x08000 // No digits detected
-#define PFXOK      0x10000 // "0x" prefix is (still) legal
-#define PFBOK      0x20000 // "0b" prefix is (still) legal
-#define NZDIGITS   0x40000 // No zero digits detected
-
-// Conversion types.
-#define CT_CHAR 0   // %c conversion
-#define CT_CCL 1    // %[...] conversion
-#define CT_STRING 2 // %s conversion
-#define CT_INT 3    // Integer: strtoimax/strtoumax
-#define CT_FLOAT 4  // Float: strtod
+#include "scanf_common.h"
 
 static const unsigned char* __sccl(char*, const unsigned char*);
 
@@ -102,7 +56,7 @@
   void* allocation = nullptr; // Allocated but unassigned result for %mc/%ms/%m[.
   size_t capacity = 0; // Number of char/wchar_t units allocated in `allocation`.
 
-  _SET_ORIENTATION(fp, -1);
+  _SET_ORIENTATION(fp, ORIENT_BYTES);
 
   nassigned = 0;
   nread = 0;
@@ -122,6 +76,7 @@
      */
 again:
     c = *fmt++;
+reswitch:
     switch (c) {
       case '%':
 literal:
@@ -220,6 +175,22 @@
         base = 10;
         break;
 
+      case 'w': {
+        int size = 0;
+        bool fast = false;
+        c = *fmt++;
+        if (c == 'f') {
+          fast = true;
+          c = *fmt++;
+        }
+        while (is_digit(c)) {
+          APPEND_DIGIT(size, c);
+          c = *fmt++;
+        }
+        flags |= w_to_flag(size, fast);
+        goto reswitch;
+      }
+
       case 'X':
       case 'x':
         flags |= PFXOK; /* enable 0x prefixing */
@@ -356,12 +327,12 @@
             fp->_r--;
             memset(&mbs, 0, sizeof(mbs));
             nconv = mbrtowc(wcp, buf, bytes, &mbs);
-            if (nconv == __MB_ERR_ILLEGAL_SEQUENCE) {
+            if (nconv == BIONIC_MULTIBYTE_RESULT_ILLEGAL_SEQUENCE) {
               fp->_flags |= __SERR;
               goto input_failure;
             }
             if (nconv == 0 && !(flags & SUPPRESS)) *wcp = L'\0';
-            if (nconv != __MB_ERR_INCOMPLETE_SEQUENCE) {
+            if (nconv != BIONIC_MULTIBYTE_RESULT_INCOMPLETE_SEQUENCE) {
               nread += bytes;
               width--;
               if (!(flags & SUPPRESS)) wcp++;
@@ -446,11 +417,11 @@
             wchar_t wc = L'\0';
             memset(&mbs, 0, sizeof(mbs));
             nconv = mbrtowc(&wc, buf, bytes, &mbs);
-            if (nconv == __MB_ERR_ILLEGAL_SEQUENCE) {
+            if (nconv == BIONIC_MULTIBYTE_RESULT_ILLEGAL_SEQUENCE) {
               fp->_flags |= __SERR;
               goto input_failure;
             }
-            if (nconv != __MB_ERR_INCOMPLETE_SEQUENCE) {
+            if (nconv != BIONIC_MULTIBYTE_RESULT_INCOMPLETE_SEQUENCE) {
               if ((c == CT_CCL && wctob(wc) != EOF && !ccltab[wctob(wc)]) || (c == CT_STRING && iswspace(wc))) {
                 while (bytes != 0) {
                   bytes--;
@@ -658,10 +629,10 @@
          * as `[-+]0`.
          */
         if (flags & NDIGITS) {
-          if (p > buf) (void)ungetc(*(u_char*)--p, fp);
+          if (p > buf) ungetc(*reinterpret_cast<u_char*>(--p), fp);
           goto match_failure;
         }
-        c = ((u_char*)p)[-1];
+        c = reinterpret_cast<u_char*>(p)[-1];
         if ((base == 2 && (c == 'b' || c == 'B')) || c == 'x' || c == 'X') {
           --p;
           (void)ungetc(c, fp);
@@ -676,7 +647,7 @@
             res = strtoimax(buf, nullptr, base);
           }
           if (flags & POINTER) {
-            *va_arg(ap, void**) = (void*)(uintptr_t)res;
+            *va_arg(ap, void**) = reinterpret_cast<void*>(res);
           } else if (flags & MAXINT) {
             *va_arg(ap, intmax_t*) = res;
           } else if (flags & LLONG) {
@@ -714,7 +685,7 @@
             float res = strtof(buf, &p);
             *va_arg(ap, float*) = res;
           }
-          if ((size_t)(p - buf) != width) abort();
+          if (static_cast<size_t>(p - buf) != width) abort();
           nassigned++;
         }
         nread += width;
diff --git a/libc/stdio/vfwprintf.cpp b/libc/stdio/vfwprintf.cpp
index 52ae64b..89e889e 100644
--- a/libc/stdio/vfwprintf.cpp
+++ b/libc/stdio/vfwprintf.cpp
@@ -39,9 +39,32 @@
 #define CHAR_TYPE_inf L"inf"
 #define CHAR_TYPE_NAN L"NAN"
 #define CHAR_TYPE_nan L"nan"
-#define CHAR_TYPE_ORIENTATION 1
+#define CHAR_TYPE_ORIENTATION ORIENT_CHARS
+
+#define PRINT(ptr, len)                                          \
+  do {                                                           \
+    for (int n3 = 0; n3 < (len); n3++) {                         \
+      if ((helpers::xfputwc((ptr)[n3], fp)) == WEOF) goto error; \
+    }                                                            \
+  } while (0)
+
+#define FLUSH()
+
 #include "printf_common.h"
 
+#define print_utf8(utf8, prec) \
+  do { \
+    free(convbuf); \
+    convbuf = helpers::mbsconv(utf8, prec); \
+    if (convbuf == nullptr) { \
+      fp->_flags |= __SERR; \
+      goto error; \
+    } else { \
+      cp = convbuf; \
+    } \
+    goto string; \
+  } while (0)
+
 int FUNCTION_NAME(FILE* fp, const CHAR_TYPE* fmt0, va_list ap) {
   int caller_errno = errno;
   int n, n2;
@@ -105,23 +128,16 @@
    * below longer.
    */
 #define PADSIZE 16 /* pad chunk size */
-  static CHAR_TYPE blanks[PADSIZE] = {
+  static const CHAR_TYPE blanks[PADSIZE] = {
     ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' '
   };
-  static CHAR_TYPE zeroes[PADSIZE] = {
+  static const CHAR_TYPE zeroes[PADSIZE] = {
     '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0'
   };
 
   static const char xdigs_lower[] = "0123456789abcdef";
   static const char xdigs_upper[] = "0123456789ABCDEF";
 
-#define PRINT(ptr, len)                                   \
-  do {                                                    \
-    for (int n3 = 0; n3 < (len); n3++) {                      \
-      if ((helpers::xfputwc((ptr)[n3], fp)) == WEOF) goto error; \
-    }                                                     \
-  } while (0)
-
   _SET_ORIENTATION(fp, CHAR_TYPE_ORIENTATION);
 
   // Writing "" to a read only file returns EOF, not 0.
@@ -316,6 +332,7 @@
       case 'd':
       case 'i':
         _umax = SARG();
+signed_decimal:
         if ((intmax_t)_umax < 0) {
           _umax = -_umax;
           sign = '-';
@@ -352,10 +369,6 @@
         }
         if (prec < 0) prec = dtoaend - dtoaresult;
         if (expt == INT_MAX) ox[1] = '\0';
-        free(convbuf);
-        cp = convbuf = helpers::mbsconv(dtoaresult, -1);
-        if (cp == nullptr) goto error;
-        ndig = dtoaend - dtoaresult;
         goto fp_common;
       case 'e':
       case 'E':
@@ -392,11 +405,14 @@
           }
           if (expt == 9999) expt = INT_MAX;
         }
+      fp_common:
+#if CHAR_TYPE_ORIENTATION == ORIENT_BYTES
+        cp = dtoaresult;
+#else
         free(convbuf);
         cp = convbuf = helpers::mbsconv(dtoaresult, -1);
         if (cp == nullptr) goto error;
-        ndig = dtoaend - dtoaresult;
-      fp_common:
+#endif
         if (signflag) sign = '-';
         if (expt == INT_MAX) { /* inf or nan */
           if (*cp == 'N') {
@@ -409,6 +425,7 @@
           break;
         }
         flags |= FPT;
+        ndig = dtoaend - dtoaresult;
         if (ch == 'g' || ch == 'G') {
           if (expt > -4 && expt <= prec) {
             /* Make %[gG] smell like %[fF] */
@@ -444,16 +461,13 @@
       case 'n':
         __fortify_fatal("%%n not allowed on Android");
       case 'm':
-        free(convbuf);
-        convbuf = helpers::mbsconv(strerror_r(caller_errno,
-                                              reinterpret_cast<char*>(buf), sizeof(buf)), prec);
-        if (convbuf == nullptr) {
-            fp->_flags |= __SERR;
-            goto error;
-        } else {
-            cp = convbuf;
+        if (flags & ALT) {
+          const char* name = strerrorname_np(caller_errno);
+          if (name) print_utf8(name, prec);
+          _umax = caller_errno;
+          goto signed_decimal;
         }
-        goto string;
+        print_utf8(strerror_r(caller_errno, reinterpret_cast<char*>(buf), sizeof(buf)), prec);
       case 'O':
         flags |= LONGINT;
         __BIONIC_FALLTHROUGH;
@@ -483,14 +497,7 @@
         } else {
           char* mbsarg;
           if ((mbsarg = GETARG(char*)) == nullptr) mbsarg = const_cast<char*>("(null)");
-          free(convbuf);
-          convbuf = helpers::mbsconv(mbsarg, prec);
-          if (convbuf == nullptr) {
-            fp->_flags |= __SERR;
-            goto error;
-          } else {
-            cp = convbuf;
-          }
+          print_utf8(mbsarg, prec);
         }
   string:
         if (prec >= 0) {
@@ -510,34 +517,21 @@
         _umax = UARG();
         base = DEC;
         goto nosign;
-      case 'w':
+      case 'w': {
         n = 0;
+        bool fast = false;
         ch = *fmt++;
+        if (ch == 'f') {
+          fast = true;
+          ch = *fmt++;
+        }
         while (is_digit(ch)) {
           APPEND_DIGIT(n, ch);
           ch = *fmt++;
         }
-        switch (n) {
-          case 8: {
-            flags |= CHARINT;
-            goto reswitch;
-          }
-          case 16: {
-            flags |= SHORTINT;
-            goto reswitch;
-          }
-          case 32: {
-            goto reswitch;
-          }
-          case 64: {
-            flags |= LLONGINT;
-            goto reswitch;
-          }
-          default: {
-            __fortify_fatal("%%w%d is unsupported", n);
-            break;
-          }
-        }
+        flags |= helpers::w_to_flag(n, fast);
+        goto reswitch;
+      }
       case 'X':
         xdigs = xdigs_upper;
         goto hex;
@@ -662,6 +656,7 @@
     } else { /* glue together f_p fragments */
       if (decimal_point == nullptr) decimal_point = nl_langinfo(RADIXCHAR);
       if (!expchar) { /* %[fF] or sufficiently short %[gG] */
+        CHAR_TYPE* end = cp + ndig;
         if (expt <= 0) {
           PRINT(zeroes, 1);
           if (prec || flags & ALT) PRINT(decimal_point, 1);
@@ -669,11 +664,11 @@
           /* already handled initial 0's */
           prec += expt;
         } else {
-          PRINTANDPAD(cp, convbuf + ndig, lead, zeroes);
+          PRINTANDPAD(cp, end, lead, zeroes);
           cp += lead;
           if (prec || flags & ALT) PRINT(decimal_point, 1);
         }
-        PRINTANDPAD(cp, convbuf + ndig, prec, zeroes);
+        PRINTANDPAD(cp, end, prec, zeroes);
       } else { /* %[eE] or sufficiently long %[gG] */
         if (prec > 1 || flags & ALT) {
           buf[0] = *cp++;
@@ -694,8 +689,11 @@
     if (width < realsz) width = realsz;
     if (width > INT_MAX - ret) goto overflow;
     ret += width;
+
+    FLUSH(); /* copy out the I/O vectors */
   }
 done:
+  FLUSH();
 error:
   va_end(orgap);
   if (__sferror(fp)) ret = -1;
diff --git a/libc/stdio/vfwscanf.cpp b/libc/stdio/vfwscanf.cpp
index 06f706a..21d1783 100644
--- a/libc/stdio/vfwscanf.cpp
+++ b/libc/stdio/vfwscanf.cpp
@@ -31,61 +31,7 @@
  * SUCH DAMAGE.
  */
 
-#include <inttypes.h>
-#include <limits.h>
-#include <locale.h>
-#include <stdarg.h>
-#include <stddef.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <wctype.h>
-#include "local.h"
-
-#include <platform/bionic/macros.h>
-
-#define BUF 513 /* Maximum length of numeric string. */
-
-/*
- * Flags used during conversion.
- */
-#define LONG 0x00001       /* l: long or double */
-#define LONGDBL 0x00002    /* L: long double */
-#define SHORT 0x00004      /* h: short */
-#define SHORTSHORT 0x00008 /* hh: 8 bit integer */
-#define LLONG 0x00010      /* ll: long long (+ deprecated q: quad) */
-#define POINTER 0x00020    /* p: void * (as hex) */
-#define SIZEINT 0x00040    /* z: (signed) size_t */
-#define MAXINT 0x00080     /* j: intmax_t */
-#define PTRINT 0x00100     /* t: ptrdiff_t */
-#define NOSKIP 0x00200     /* [ or c: do not skip blanks */
-#define SUPPRESS 0x00400   /* *: suppress assignment */
-#define UNSIGNED 0x00800   /* %[oupxX] conversions */
-
-/*
- * The following are used in numeric conversions only:
- * SIGNOK, HAVESIGN, NDIGITS, DPTOK, and EXPOK are for floating point;
- * SIGNOK, HAVESIGN, NDIGITS, PFXOK, and NZDIGITS are for integral.
- */
-#define SIGNOK   0x01000  /* +/- is (still) legal */
-#define HAVESIGN 0x02000 /* sign detected */
-#define NDIGITS  0x04000 /* no digits detected */
-
-#define DPTOK    0x08000 /* (float) decimal point is still legal */
-#define EXPOK    0x10000 /* (float) exponent (e+3, etc) still legal */
-
-#define PFBOK    0x20000 /* 0x prefix is (still) legal */
-#define PFXOK    0x40000 /* 0x prefix is (still) legal */
-#define NZDIGITS 0x80000 /* no zero digits detected */
-
-/*
- * Conversion types.
- */
-#define CT_CHAR 0   /* %c conversion */
-#define CT_CCL 1    /* %[...] conversion */
-#define CT_STRING 2 /* %s conversion */
-#define CT_INT 3    /* integer, i.e., strtoimax or strtoumax */
-#define CT_FLOAT 4  /* floating, i.e., strtod */
+#include "scanf_common.h"
 
 // An interpretive version of __sccl from vfscanf.c --- a table of all wchar_t values would
 // be a little too expensive, and some kind of compressed version isn't worth the trouble.
@@ -150,7 +96,7 @@
   char mbbuf[MB_LEN_MAX]; /* temporary mb. character buffer */
   mbstate_t mbs;
 
-  _SET_ORIENTATION(fp, 1);
+  _SET_ORIENTATION(fp, ORIENT_CHARS);
 
   nassigned = 0;
   nconversions = 0;
@@ -176,6 +122,7 @@
      */
   again:
     c = *fmt++;
+  reswitch:
     switch (c) {
       case '%':
       literal:
@@ -273,6 +220,22 @@
         base = 10;
         break;
 
+      case 'w': {
+        int size = 0;
+        bool fast = false;
+        c = *fmt++;
+        if (c == 'f') {
+          fast = true;
+          c = *fmt++;
+        }
+        while (is_digit(c)) {
+          APPEND_DIGIT(size, c);
+          c = *fmt++;
+        }
+        flags |= w_to_flag(size, fast);
+        goto reswitch;
+      }
+
       case 'X':
       case 'x':
         flags |= PFXOK; /* enable 0x prefixing */
@@ -373,7 +336,7 @@
           if (!(flags & SUPPRESS)) p = va_arg(ap, wchar_t*);
           n = 0;
           while (width-- != 0 && (wi = __fgetwc_unlock(fp)) != WEOF) {
-            if (!(flags & SUPPRESS)) *p++ = (wchar_t)wi;
+            if (!(flags & SUPPRESS)) *p++ = static_cast<wchar_t>(wi);
             n++;
           }
           if (n == 0) goto input_failure;
@@ -386,10 +349,10 @@
           while (width != 0 && (wi = __fgetwc_unlock(fp)) != WEOF) {
             if (width >= MB_CUR_MAX && !(flags & SUPPRESS)) {
               nconv = wcrtomb(mbp, wi, &mbs);
-              if (nconv == (size_t)-1) goto input_failure;
+              if (nconv == static_cast<size_t>(-1)) goto input_failure;
             } else {
               nconv = wcrtomb(mbbuf, wi, &mbs);
-              if (nconv == (size_t)-1) goto input_failure;
+              if (nconv == static_cast<size_t>(-1)) goto input_failure;
               if (nconv > width) {
                 __ungetwc(wi, fp);
                 break;
@@ -411,7 +374,7 @@
       case CT_STRING:
         // CT_CCL: scan a (nonempty) character class (sets NOSKIP).
         // CT_STRING: like CCL, but zero-length string OK, & no NOSKIP.
-        if (width == 0) width = (size_t)~0; // 'infinity'.
+        if (width == 0) width = SIZE_MAX; // 'infinity'.
         if ((flags & SUPPRESS) && (flags & LONG)) {
           n = 0;
           while ((wi = __fgetwc_unlock(fp)) != WEOF && width-- != 0 && ((c == CT_CCL && in_ccl(wi, ccl)) || (c == CT_STRING && !iswspace(wi)))) n++;
@@ -419,7 +382,7 @@
         } else if (flags & LONG) {
           p0 = p = va_arg(ap, wchar_t*);
           while ((wi = __fgetwc_unlock(fp)) != WEOF && width-- != 0 && ((c == CT_CCL && in_ccl(wi, ccl)) || (c == CT_STRING && !iswspace(wi)))) {
-            *p++ = (wchar_t)wi;
+            *p++ = static_cast<wchar_t>(wi);
           }
           if (wi != WEOF) __ungetwc(wi, fp);
           n = p - p0;
@@ -430,10 +393,10 @@
           while ((wi = __fgetwc_unlock(fp)) != WEOF && width != 0 && ((c == CT_CCL && in_ccl(wi, ccl)) || (c == CT_STRING && !iswspace(wi)))) {
             if (width >= MB_CUR_MAX && !(flags & SUPPRESS)) {
               nconv = wcrtomb(mbp, wi, &mbs);
-              if (nconv == (size_t)-1) goto input_failure;
+              if (nconv == static_cast<size_t>(-1)) goto input_failure;
             } else {
               nconv = wcrtomb(mbbuf, wi, &mbs);
-              if (nconv == (size_t)-1) goto input_failure;
+              if (nconv == static_cast<size_t>(-1)) goto input_failure;
               if (nconv > width) break;
               if (!(flags & SUPPRESS)) memcpy(mbp, mbbuf, nconv);
             }
@@ -523,7 +486,7 @@
             case 'e':
             case 'f':
               if (base == 0) base = 10;
-              if (base != 16 && (int)(c - '0') >= base) break; /* not legal here */
+              if (base != 16 && static_cast<int>(c - '0') >= base) break; /* not legal here */
               flags &= ~(SIGNOK | PFBOK | PFXOK | NDIGITS);
               goto ok;
 
@@ -561,7 +524,7 @@
           /*
            * c is legal: store it and look at the next.
            */
-          *p++ = (wchar_t)c;
+          *p++ = static_cast<wchar_t>(c);
         }
         /*
          * If we had only a sign, it is no good; push back the sign.
@@ -586,7 +549,7 @@
           else
             res = wcstoumax(buf, NULL, base);
           if (flags & POINTER)
-            *va_arg(ap, void**) = (void*)(uintptr_t)res;
+            *va_arg(ap, void**) = reinterpret_cast<void*>(res);
           else if (flags & MAXINT)
             *va_arg(ap, intmax_t*) = res;
           else if (flags & LLONG)
@@ -625,7 +588,7 @@
             float res = wcstof(buf, &p);
             *va_arg(ap, float*) = res;
           }
-          if (p - buf != (ptrdiff_t)width) abort();
+          if (static_cast<size_t>(p - buf) != width) abort();
           nassigned++;
         }
         nread += width;
diff --git a/libc/system_properties/Android.bp b/libc/system_properties/Android.bp
index af8bda9..e2fce34 100644
--- a/libc/system_properties/Android.bp
+++ b/libc/system_properties/Android.bp
@@ -1,4 +1,5 @@
 package {
+    default_team: "trendy_team_native_tools_libraries",
     // See: http://go/android-license-faq
     // A large-scale-change added 'default_applicable_licenses' to import
     // all of the 'license_kinds' from "bionic_libc_license"
@@ -10,7 +11,10 @@
 
 cc_library_static {
     name: "libsystemproperties",
-    defaults: ["libc_defaults"],
+    defaults: [
+        "libc_defaults",
+        "large_system_property_node_defaults",
+    ],
     native_bridge_supported: true,
     srcs: [
         "context_node.cpp",
@@ -32,6 +36,9 @@
         "bionic/libstdc++/include",
     ],
     export_include_dirs: ["include"],
+    apex_available: [
+        "com.android.runtime",
+    ],
 }
 
 cc_benchmark {
@@ -50,3 +57,11 @@
         "libasync_safe",
     ],
 }
+
+cc_defaults {
+    name: "large_system_property_node_defaults",
+    cflags: select(release_flag("RELEASE_LARGE_SYSTEM_PROPERTY_NODE"), {
+        true: ["-DLARGE_SYSTEM_PROPERTY_NODE=1"],
+        default: [],
+    }),
+}
diff --git a/libc/system_properties/context_lookup_benchmark_data.h b/libc/system_properties/context_lookup_benchmark_data.h
index b928875..1d7250c 100644
--- a/libc/system_properties/context_lookup_benchmark_data.h
+++ b/libc/system_properties/context_lookup_benchmark_data.h
@@ -321,7 +321,7 @@
 persist.vendor.         u:object_r:vendor_default_prop:s0
 vendor.                 u:object_r:vendor_default_prop:s0
 
-# Properties that relate to time / time zone detection behavior.
+# Properties that relate to time / timezone detection behavior.
 persist.time.           u:object_r:time_prop:s0
 
 # Properties that relate to server configurable flags
diff --git a/libc/system_properties/context_node.cpp b/libc/system_properties/context_node.cpp
index d392c0a..572bf97 100644
--- a/libc/system_properties/context_node.cpp
+++ b/libc/system_properties/context_node.cpp
@@ -49,17 +49,11 @@
     return true;
   }
 
-  char filename[PROP_FILENAME_MAX];
-  int len = async_safe_format_buffer(filename, sizeof(filename), "%s/%s", filename_, context_);
-  if (len < 0 || len >= PROP_FILENAME_MAX) {
-    lock_.unlock();
-    return false;
-  }
-
+  PropertiesFilename filename(filename_, context_);
   if (access_rw) {
-    pa_ = prop_area::map_prop_area_rw(filename, context_, fsetxattr_failed);
+    pa_ = prop_area::map_prop_area_rw(filename.c_str(), context_, fsetxattr_failed);
   } else {
-    pa_ = prop_area::map_prop_area(filename);
+    pa_ = prop_area::map_prop_area(filename.c_str());
   }
   lock_.unlock();
   return pa_;
@@ -84,13 +78,8 @@
 }
 
 bool ContextNode::CheckAccess() {
-  char filename[PROP_FILENAME_MAX];
-  int len = async_safe_format_buffer(filename, sizeof(filename), "%s/%s", filename_, context_);
-  if (len < 0 || len >= PROP_FILENAME_MAX) {
-    return false;
-  }
-
-  return access(filename, R_OK) == 0;
+  PropertiesFilename filename(filename_, context_);
+  return access(filename.c_str(), R_OK) == 0;
 }
 
 void ContextNode::Unmap() {
diff --git a/libc/system_properties/contexts_serialized.cpp b/libc/system_properties/contexts_serialized.cpp
index 6ccd46c..73c9136 100644
--- a/libc/system_properties/contexts_serialized.cpp
+++ b/libc/system_properties/contexts_serialized.cpp
@@ -38,6 +38,7 @@
 #include <new>
 
 #include <async_safe/log.h>
+#include <private/android_filesystem_config.h>
 
 #include "system_properties/system_properties.h"
 
@@ -59,31 +60,28 @@
   context_nodes_mmap_size_ = context_nodes_mmap_size;
 
   for (size_t i = 0; i < num_context_nodes; ++i) {
-    new (&context_nodes_[i]) ContextNode(property_info_area_file_->context(i), filename_);
+    new (&context_nodes_[i]) ContextNode(property_info_area_file_->context(i), dirname_);
   }
 
   return true;
 }
 
 bool ContextsSerialized::MapSerialPropertyArea(bool access_rw, bool* fsetxattr_failed) {
-  char filename[PROP_FILENAME_MAX];
-  int len = async_safe_format_buffer(filename, sizeof(filename), "%s/properties_serial", filename_);
-  if (len < 0 || len >= PROP_FILENAME_MAX) {
-    serial_prop_area_ = nullptr;
-    return false;
-  }
-
   if (access_rw) {
-    serial_prop_area_ =
-        prop_area::map_prop_area_rw(filename, "u:object_r:properties_serial:s0", fsetxattr_failed);
+    serial_prop_area_ = prop_area::map_prop_area_rw(
+        serial_filename_.c_str(), "u:object_r:properties_serial:s0", fsetxattr_failed);
   } else {
-    serial_prop_area_ = prop_area::map_prop_area(filename);
+    serial_prop_area_ = prop_area::map_prop_area(serial_filename_.c_str());
   }
   return serial_prop_area_;
 }
 
-bool ContextsSerialized::InitializeProperties() {
-  if (!property_info_area_file_.LoadDefaultPath()) {
+// Note: load_default_path is only used for testing, as it will cause properties to be loaded from
+// one file (specified by PropertyInfoAreaFile.LoadDefaultPath), but be written to "filename".
+bool ContextsSerialized::InitializeProperties(bool load_default_path) {
+  if (load_default_path && !property_info_area_file_.LoadDefaultPath()) {
+    return false;
+  } else if (!load_default_path && !property_info_area_file_.LoadPath(tree_filename_.c_str())) {
     return false;
   }
 
@@ -95,14 +93,20 @@
   return true;
 }
 
-bool ContextsSerialized::Initialize(bool writable, const char* filename, bool* fsetxattr_failed) {
-  filename_ = filename;
-  if (!InitializeProperties()) {
+// Note: load_default_path is only used for testing, as it will cause properties to be loaded from
+// one file (specified by PropertyInfoAreaFile.LoadDefaultPath), but be written to "filename".
+bool ContextsSerialized::Initialize(bool writable, const char* dirname, bool* fsetxattr_failed,
+                                    bool load_default_path) {
+  dirname_ = dirname;
+  tree_filename_ = PropertiesFilename(dirname, "property_info");
+  serial_filename_ = PropertiesFilename(dirname, "properties_serial");
+
+  if (!InitializeProperties(load_default_path)) {
     return false;
   }
 
   if (writable) {
-    mkdir(filename_, S_IRWXU | S_IXGRP | S_IXOTH);
+    mkdir(dirname_, S_IRWXU | S_IXGRP | S_IXOTH);
     bool open_failed = false;
     if (fsetxattr_failed) {
       *fsetxattr_failed = false;
diff --git a/libc/system_properties/contexts_split.cpp b/libc/system_properties/contexts_split.cpp
index 7ba835a..78bdc64 100644
--- a/libc/system_properties/contexts_split.cpp
+++ b/libc/system_properties/contexts_split.cpp
@@ -192,18 +192,12 @@
 }
 
 bool ContextsSplit::MapSerialPropertyArea(bool access_rw, bool* fsetxattr_failed) {
-  char filename[PROP_FILENAME_MAX];
-  int len = async_safe_format_buffer(filename, sizeof(filename), "%s/properties_serial", filename_);
-  if (len < 0 || len >= PROP_FILENAME_MAX) {
-    serial_prop_area_ = nullptr;
-    return false;
-  }
-
+  PropertiesFilename filename(filename_, "properties_serial");
   if (access_rw) {
-    serial_prop_area_ =
-        prop_area::map_prop_area_rw(filename, "u:object_r:properties_serial:s0", fsetxattr_failed);
+    serial_prop_area_ = prop_area::map_prop_area_rw(
+        filename.c_str(), "u:object_r:properties_serial:s0", fsetxattr_failed);
   } else {
-    serial_prop_area_ = prop_area::map_prop_area(filename);
+    serial_prop_area_ = prop_area::map_prop_area(filename.c_str());
   }
   return serial_prop_area_;
 }
@@ -287,7 +281,7 @@
   return true;
 }
 
-bool ContextsSplit::Initialize(bool writable, const char* filename, bool* fsetxattr_failed) {
+bool ContextsSplit::Initialize(bool writable, const char* filename, bool* fsetxattr_failed, bool) {
   filename_ = filename;
   if (!InitializeProperties()) {
     return false;
diff --git a/libc/system_properties/include/system_properties/contexts.h b/libc/system_properties/include/system_properties/contexts.h
index 670f808..df8c5a2 100644
--- a/libc/system_properties/include/system_properties/contexts.h
+++ b/libc/system_properties/include/system_properties/contexts.h
@@ -36,7 +36,8 @@
   virtual ~Contexts() {
   }
 
-  virtual bool Initialize(bool writable, const char* filename, bool* fsetxattr_failed) = 0;
+  virtual bool Initialize(bool writable, const char* filename, bool* fsetxattr_failed,
+                          bool load_default_path = false) = 0;
   virtual prop_area* GetPropAreaForName(const char* name) = 0;
   virtual prop_area* GetSerialPropArea() = 0;
   virtual void ForEach(void (*propfn)(const prop_info* pi, void* cookie), void* cookie) = 0;
diff --git a/libc/system_properties/include/system_properties/contexts_pre_split.h b/libc/system_properties/include/system_properties/contexts_pre_split.h
index 6e695e9..a6cd039 100644
--- a/libc/system_properties/include/system_properties/contexts_pre_split.h
+++ b/libc/system_properties/include/system_properties/contexts_pre_split.h
@@ -38,7 +38,7 @@
   }
 
   // We'll never initialize this legacy option as writable, so don't even check the arg.
-  virtual bool Initialize(bool, const char* filename, bool*) override {
+  virtual bool Initialize(bool, const char* filename, bool*, bool) override {
     pre_split_prop_area_ = prop_area::map_prop_area(filename);
     return pre_split_prop_area_ != nullptr;
   }
diff --git a/libc/system_properties/include/system_properties/contexts_serialized.h b/libc/system_properties/include/system_properties/contexts_serialized.h
index 93d6ac1..8bb0b11 100644
--- a/libc/system_properties/include/system_properties/contexts_serialized.h
+++ b/libc/system_properties/include/system_properties/contexts_serialized.h
@@ -32,13 +32,15 @@
 
 #include "context_node.h"
 #include "contexts.h"
+#include "properties_filename.h"
 
 class ContextsSerialized : public Contexts {
  public:
   virtual ~ContextsSerialized() override {
   }
 
-  virtual bool Initialize(bool writable, const char* filename, bool* fsetxattr_failed) override;
+  virtual bool Initialize(bool writable, const char* dirname, bool* fsetxattr_failed,
+                          bool load_default_path) override;
   virtual prop_area* GetPropAreaForName(const char* name) override;
   virtual prop_area* GetSerialPropArea() override {
     return serial_prop_area_;
@@ -49,10 +51,12 @@
 
  private:
   bool InitializeContextNodes();
-  bool InitializeProperties();
+  bool InitializeProperties(bool load_default_path);
   bool MapSerialPropertyArea(bool access_rw, bool* fsetxattr_failed);
 
-  const char* filename_;
+  const char* dirname_;
+  PropertiesFilename tree_filename_;
+  PropertiesFilename serial_filename_;
   android::properties::PropertyInfoAreaFile property_info_area_file_;
   ContextNode* context_nodes_ = nullptr;
   size_t num_context_nodes_ = 0;
diff --git a/libc/system_properties/include/system_properties/contexts_split.h b/libc/system_properties/include/system_properties/contexts_split.h
index 1d954cc..321cfd2 100644
--- a/libc/system_properties/include/system_properties/contexts_split.h
+++ b/libc/system_properties/include/system_properties/contexts_split.h
@@ -38,7 +38,8 @@
   virtual ~ContextsSplit() override {
   }
 
-  virtual bool Initialize(bool writable, const char* filename, bool* fsetxattr_failed) override;
+  virtual bool Initialize(bool writable, const char* filename, bool* fsetxattr_failed,
+                          bool) override;
   virtual prop_area* GetPropAreaForName(const char* name) override;
   virtual prop_area* GetSerialPropArea() override {
     return serial_prop_area_;
diff --git a/libc/system_properties/include/system_properties/prop_area.h b/libc/system_properties/include/system_properties/prop_area.h
index e32a8d7..089cf52 100644
--- a/libc/system_properties/include/system_properties/prop_area.h
+++ b/libc/system_properties/include/system_properties/prop_area.h
@@ -53,14 +53,14 @@
 //                  +-----+   +-----+     +-----+            +===========+
 
 // Represents a node in the trie.
-struct prop_bt {
+struct prop_trie_node {
   uint32_t namelen;
 
   // The property trie is updated only by the init process (single threaded) which provides
   // property service. And it can be read by multiple threads at the same time.
   // As the property trie is not protected by locks, we use atomic_uint_least32_t types for the
   // left, right, children "pointers" in the trie node. To make sure readers who see the
-  // change of "pointers" can also notice the change of prop_bt structure contents pointed by
+  // change of "pointers" can also notice the change of prop_trie_node structure contents pointed by
   // the "pointers", we always use release-consume ordering pair when accessing these "pointers".
 
   // prop "points" to prop_info structure if there is a propery associated with the trie node.
@@ -79,14 +79,14 @@
 
   char name[0];
 
-  prop_bt(const char* name, const uint32_t name_length) {
+  prop_trie_node(const char* name, const uint32_t name_length) {
     this->namelen = name_length;
     memcpy(this->name, name, name_length);
     this->name[name_length] = '\0';
   }
 
  private:
-  BIONIC_DISALLOW_COPY_AND_ASSIGN(prop_bt);
+  BIONIC_DISALLOW_COPY_AND_ASSIGN(prop_trie_node);
 };
 
 class prop_area {
@@ -102,10 +102,10 @@
   }
 
   prop_area(const uint32_t magic, const uint32_t version) : magic_(magic), version_(version) {
-    atomic_init(&serial_, 0u);
+    atomic_store_explicit(&serial_, 0u, memory_order_relaxed);
     memset(reserved_, 0, sizeof(reserved_));
     // Allocate enough space for the root node.
-    bytes_used_ = sizeof(prop_bt);
+    bytes_used_ = sizeof(prop_trie_node);
     // To make property reads wait-free, we reserve a
     // PROP_VALUE_MAX-sized block of memory, the "dirty backup area",
     // just after the root node. When we're about to modify a
@@ -136,30 +136,29 @@
   uint32_t version() const {
     return version_;
   }
-  char* dirty_backup_area() {
-    return data_ + sizeof (prop_bt);
-  }
+  char* dirty_backup_area() { return data_ + sizeof(prop_trie_node); }
 
  private:
   static prop_area* map_fd_ro(const int fd);
 
   void* allocate_obj(const size_t size, uint_least32_t* const off);
-  prop_bt* new_prop_bt(const char* name, uint32_t namelen, uint_least32_t* const off);
+  prop_trie_node* new_prop_trie_node(const char* name, uint32_t namelen, uint_least32_t* const off);
   prop_info* new_prop_info(const char* name, uint32_t namelen, const char* value, uint32_t valuelen,
                            uint_least32_t* const off);
   void* to_prop_obj(uint_least32_t off);
-  prop_bt* to_prop_bt(atomic_uint_least32_t* off_p);
+  prop_trie_node* to_prop_trie_node(atomic_uint_least32_t* off_p);
   prop_info* to_prop_info(atomic_uint_least32_t* off_p);
 
-  prop_bt* root_node();
+  prop_trie_node* root_node();
 
-  prop_bt* find_prop_bt(prop_bt* const bt, const char* name, uint32_t namelen, bool alloc_if_needed);
+  prop_trie_node* find_prop_trie_node(prop_trie_node* const trie, const char* name,
+                                      uint32_t namelen, bool alloc_if_needed);
 
-  const prop_info* find_property(prop_bt* const trie, const char* name, uint32_t namelen,
+  const prop_info* find_property(prop_trie_node* const trie, const char* name, uint32_t namelen,
                                  const char* value, uint32_t valuelen, bool alloc_if_needed);
 
-  bool foreach_property(prop_bt* const trie, void (*propfn)(const prop_info* pi, void* cookie),
-                        void* cookie);
+  bool foreach_property(prop_trie_node* const trie,
+                        void (*propfn)(const prop_info* pi, void* cookie), void* cookie);
 
   // The original design doesn't include pa_size or pa_data_size in the prop_area struct itself.
   // Since we'll need to be backwards compatible with that design, we don't gain much by adding it
diff --git a/libc/system_properties/include/system_properties/prop_info.h b/libc/system_properties/include/system_properties/prop_info.h
index 3ebe7c5..e2236b0 100644
--- a/libc/system_properties/include/system_properties/prop_info.h
+++ b/libc/system_properties/include/system_properties/prop_info.h
@@ -45,14 +45,14 @@
   // Read only properties will not set anything but the bottom most bit of serial and the top byte.
   // We borrow the 2nd from the top byte for extra flags, and use the bottom most bit of that for
   // our first user, kLongFlag.
-  constexpr static uint32_t kLongFlag = 1 << 16;
+  static constexpr uint32_t kLongFlag = 1 << 16;
 
   // The error message fits in part of a union with the previous 92 char property value so there
   // must be room left over after the error message for the offset to the new longer property value
   // and future expansion fields if needed. Note that this value cannot ever increase.  The offset
   // to the new longer property value appears immediately after it, so an increase of this size will
   // break compatibility.
-  constexpr static size_t kLongLegacyErrorBufferSize = 56;
+  static constexpr size_t kLongLegacyErrorBufferSize = 56;
 
  public:
   atomic_uint_least32_t serial;
diff --git a/libm/fenv-access.h b/libc/system_properties/include/system_properties/properties_filename.h
similarity index 63%
copy from libm/fenv-access.h
copy to libc/system_properties/include/system_properties/properties_filename.h
index 7acb34d..743d291 100644
--- a/libm/fenv-access.h
+++ b/libc/system_properties/include/system_properties/properties_filename.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2021 The Android Open Source Project
+ * Copyright (C) 2023 The Android Open Source Project
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -28,6 +28,26 @@
 
 #pragma once
 
-#if defined(__x86_64__) || defined(__i386__)
-#pragma STDC FENV_ACCESS ON
-#endif
+#include <stdint.h>
+
+class PropertiesFilename {
+ public:
+  PropertiesFilename() = default;
+  PropertiesFilename(const char* dir, const char* file) {
+    if (snprintf(filename_, sizeof(filename_), "%s/%s", dir, file) >=
+        static_cast<int>(sizeof(filename_))) {
+      abort();
+    }
+  }
+  void operator=(const char* value) {
+    if (strlen(value) >= sizeof(filename_)) abort();
+    strcpy(filename_, value);
+  }
+  const char* c_str() { return filename_; }
+
+ private:
+  // Typically something like "/dev/__properties__/properties_serial", but can be as long as
+  // "/data/local/tmp/TemporaryDir-fntJb8/appcompat_override/u:object_r:PROPERTY_NAME_prop:s0"
+  // when running CTS.
+  char filename_[256];
+};
diff --git a/libc/system_properties/include/system_properties/system_properties.h b/libc/system_properties/include/system_properties/system_properties.h
index 0666e28..ea4f339 100644
--- a/libc/system_properties/include/system_properties/system_properties.h
+++ b/libc/system_properties/include/system_properties/system_properties.h
@@ -28,7 +28,6 @@
 
 #pragma once
 
-#include <stdint.h>
 #include <sys/param.h>
 #include <sys/system_properties.h>
 
@@ -37,8 +36,6 @@
 #include "contexts_serialized.h"
 #include "contexts_split.h"
 
-constexpr int PROP_FILENAME_MAX = 1024;
-
 class SystemProperties {
  public:
   friend struct LocalPropertyTestState;
@@ -55,7 +52,9 @@
   BIONIC_DISALLOW_COPY_AND_ASSIGN(SystemProperties);
 
   bool Init(const char* filename);
+  bool Reload(bool load_default_path);
   bool AreaInit(const char* filename, bool* fsetxattr_failed);
+  bool AreaInit(const char* filename, bool* fsetxattr_failed, bool load_default_path);
   uint32_t AreaSerial();
   const prop_info* Find(const char* name);
   int Read(const prop_info* pi, char* name, char* value);
@@ -83,8 +82,14 @@
   static constexpr size_t kMaxContextsSize =
       MAX(sizeof(ContextsSerialized), MAX(sizeof(ContextsSplit), sizeof(ContextsPreSplit)));
   alignas(kMaxContextsAlign) char contexts_data_[kMaxContextsSize];
+  alignas(kMaxContextsAlign) char appcompat_override_contexts_data_[kMaxContextsSize];
   Contexts* contexts_;
+  // See http://b/291816546#comment#3 for more explanation of appcompat_override
+  Contexts* appcompat_override_contexts_;
+
+  bool InitContexts(bool load_default_path);
 
   bool initialized_;
-  char property_filename_[PROP_FILENAME_MAX];
+  PropertiesFilename properties_filename_;
+  PropertiesFilename appcompat_filename_;
 };
diff --git a/libc/system_properties/prop_area.cpp b/libc/system_properties/prop_area.cpp
index 42bee9f..9b153ca 100644
--- a/libc/system_properties/prop_area.cpp
+++ b/libc/system_properties/prop_area.cpp
@@ -41,7 +41,11 @@
 
 #include <async_safe/log.h>
 
+#ifdef LARGE_SYSTEM_PROPERTY_NODE
+constexpr size_t PA_SIZE = 1024 * 1024;
+#else
 constexpr size_t PA_SIZE = 128 * 1024;
+#endif
 constexpr uint32_t PROP_AREA_MAGIC = 0x504f5250;
 constexpr uint32_t PROP_AREA_VERSION = 0xfc6ed0ab;
 
@@ -154,16 +158,15 @@
   return data_ + *off;
 }
 
-prop_bt* prop_area::new_prop_bt(const char* name, uint32_t namelen, uint_least32_t* const off) {
+prop_trie_node* prop_area::new_prop_trie_node(const char* name, uint32_t namelen,
+                                              uint_least32_t* const off) {
   uint_least32_t new_offset;
-  void* const p = allocate_obj(sizeof(prop_bt) + namelen + 1, &new_offset);
-  if (p != nullptr) {
-    prop_bt* bt = new (p) prop_bt(name, namelen);
-    *off = new_offset;
-    return bt;
-  }
+  void* const p = allocate_obj(sizeof(prop_trie_node) + namelen + 1, &new_offset);
+  if (p == nullptr) return nullptr;
 
-  return nullptr;
+  prop_trie_node* node = new (p) prop_trie_node(name, namelen);
+  *off = new_offset;
+  return node;
 }
 
 prop_info* prop_area::new_prop_info(const char* name, uint32_t namelen, const char* value,
@@ -200,9 +203,9 @@
   return (data_ + off);
 }
 
-inline prop_bt* prop_area::to_prop_bt(atomic_uint_least32_t* off_p) {
+inline prop_trie_node* prop_area::to_prop_trie_node(atomic_uint_least32_t* off_p) {
   uint_least32_t off = atomic_load_explicit(off_p, memory_order_consume);
-  return reinterpret_cast<prop_bt*>(to_prop_obj(off));
+  return reinterpret_cast<prop_trie_node*>(to_prop_obj(off));
 }
 
 inline prop_info* prop_area::to_prop_info(atomic_uint_least32_t* off_p) {
@@ -210,8 +213,8 @@
   return reinterpret_cast<prop_info*>(to_prop_obj(off));
 }
 
-inline prop_bt* prop_area::root_node() {
-  return reinterpret_cast<prop_bt*>(to_prop_obj(0));
+inline prop_trie_node* prop_area::root_node() {
+  return reinterpret_cast<prop_trie_node*>(to_prop_obj(0));
 }
 
 static int cmp_prop_name(const char* one, uint32_t one_len, const char* two, uint32_t two_len) {
@@ -223,9 +226,9 @@
     return strncmp(one, two, one_len);
 }
 
-prop_bt* prop_area::find_prop_bt(prop_bt* const bt, const char* name, uint32_t namelen,
-                                 bool alloc_if_needed) {
-  prop_bt* current = bt;
+prop_trie_node* prop_area::find_prop_trie_node(prop_trie_node* const trie, const char* name,
+                                               uint32_t namelen, bool alloc_if_needed) {
+  prop_trie_node* current = trie;
   while (true) {
     if (!current) {
       return nullptr;
@@ -239,46 +242,46 @@
     if (ret < 0) {
       uint_least32_t left_offset = atomic_load_explicit(&current->left, memory_order_relaxed);
       if (left_offset != 0) {
-        current = to_prop_bt(&current->left);
+        current = to_prop_trie_node(&current->left);
       } else {
         if (!alloc_if_needed) {
           return nullptr;
         }
 
         uint_least32_t new_offset;
-        prop_bt* new_bt = new_prop_bt(name, namelen, &new_offset);
-        if (new_bt) {
+        prop_trie_node* new_node = new_prop_trie_node(name, namelen, &new_offset);
+        if (new_node) {
           atomic_store_explicit(&current->left, new_offset, memory_order_release);
         }
-        return new_bt;
+        return new_node;
       }
     } else {
       uint_least32_t right_offset = atomic_load_explicit(&current->right, memory_order_relaxed);
       if (right_offset != 0) {
-        current = to_prop_bt(&current->right);
+        current = to_prop_trie_node(&current->right);
       } else {
         if (!alloc_if_needed) {
           return nullptr;
         }
 
         uint_least32_t new_offset;
-        prop_bt* new_bt = new_prop_bt(name, namelen, &new_offset);
-        if (new_bt) {
+        prop_trie_node* new_node = new_prop_trie_node(name, namelen, &new_offset);
+        if (new_node) {
           atomic_store_explicit(&current->right, new_offset, memory_order_release);
         }
-        return new_bt;
+        return new_node;
       }
     }
   }
 }
 
-const prop_info* prop_area::find_property(prop_bt* const trie, const char* name, uint32_t namelen,
-                                          const char* value, uint32_t valuelen,
+const prop_info* prop_area::find_property(prop_trie_node* const trie, const char* name,
+                                          uint32_t namelen, const char* value, uint32_t valuelen,
                                           bool alloc_if_needed) {
   if (!trie) return nullptr;
 
   const char* remaining_name = name;
-  prop_bt* current = trie;
+  prop_trie_node* current = trie;
   while (true) {
     const char* sep = strchr(remaining_name, '.');
     const bool want_subtree = (sep != nullptr);
@@ -288,13 +291,13 @@
       return nullptr;
     }
 
-    prop_bt* root = nullptr;
+    prop_trie_node* root = nullptr;
     uint_least32_t children_offset = atomic_load_explicit(&current->children, memory_order_relaxed);
     if (children_offset != 0) {
-      root = to_prop_bt(&current->children);
+      root = to_prop_trie_node(&current->children);
     } else if (alloc_if_needed) {
       uint_least32_t new_offset;
-      root = new_prop_bt(remaining_name, substr_size, &new_offset);
+      root = new_prop_trie_node(remaining_name, substr_size, &new_offset);
       if (root) {
         atomic_store_explicit(&current->children, new_offset, memory_order_release);
       }
@@ -304,7 +307,7 @@
       return nullptr;
     }
 
-    current = find_prop_bt(root, remaining_name, substr_size, alloc_if_needed);
+    current = find_prop_trie_node(root, remaining_name, substr_size, alloc_if_needed);
     if (!current) {
       return nullptr;
     }
@@ -330,14 +333,13 @@
   }
 }
 
-bool prop_area::foreach_property(prop_bt* const trie,
+bool prop_area::foreach_property(prop_trie_node* const trie,
                                  void (*propfn)(const prop_info* pi, void* cookie), void* cookie) {
   if (!trie) return false;
 
   uint_least32_t left_offset = atomic_load_explicit(&trie->left, memory_order_relaxed);
   if (left_offset != 0) {
-    const int err = foreach_property(to_prop_bt(&trie->left), propfn, cookie);
-    if (err < 0) return false;
+    if (!foreach_property(to_prop_trie_node(&trie->left), propfn, cookie)) return false;
   }
   uint_least32_t prop_offset = atomic_load_explicit(&trie->prop, memory_order_relaxed);
   if (prop_offset != 0) {
@@ -347,13 +349,11 @@
   }
   uint_least32_t children_offset = atomic_load_explicit(&trie->children, memory_order_relaxed);
   if (children_offset != 0) {
-    const int err = foreach_property(to_prop_bt(&trie->children), propfn, cookie);
-    if (err < 0) return false;
+    if (!foreach_property(to_prop_trie_node(&trie->children), propfn, cookie)) return false;
   }
   uint_least32_t right_offset = atomic_load_explicit(&trie->right, memory_order_relaxed);
   if (right_offset != 0) {
-    const int err = foreach_property(to_prop_bt(&trie->right), propfn, cookie);
-    if (err < 0) return false;
+    if (!foreach_property(to_prop_trie_node(&trie->right), propfn, cookie)) return false;
   }
 
   return true;
@@ -368,6 +368,6 @@
   return find_property(root_node(), name, namelen, value, valuelen, true);
 }
 
-bool prop_area::foreach (void (*propfn)(const prop_info* pi, void* cookie), void* cookie) {
+bool prop_area::foreach(void (*propfn)(const prop_info* pi, void* cookie), void* cookie) {
   return foreach_property(root_node(), propfn, cookie);
 }
diff --git a/libc/system_properties/prop_info.cpp b/libc/system_properties/prop_info.cpp
index 890d1cf..499b36a 100644
--- a/libc/system_properties/prop_info.cpp
+++ b/libc/system_properties/prop_info.cpp
@@ -30,7 +30,7 @@
 
 #include <string.h>
 
-constexpr static const char kLongLegacyError[] =
+static constexpr const char kLongLegacyError[] =
     "Must use __system_property_read_callback() to read";
 static_assert(sizeof(kLongLegacyError) < prop_info::kLongLegacyErrorBufferSize,
               "Error message for long properties read by legacy libc must fit within 56 chars");
@@ -38,7 +38,7 @@
 prop_info::prop_info(const char* name, uint32_t namelen, const char* value, uint32_t valuelen) {
   memcpy(this->name, name, namelen);
   this->name[namelen] = '\0';
-  atomic_init(&this->serial, valuelen << 24);
+  atomic_store_explicit(&this->serial, valuelen << 24, memory_order_relaxed);
   memcpy(this->value, value, valuelen);
   this->value[valuelen] = '\0';
 }
@@ -48,7 +48,7 @@
   this->name[namelen] = '\0';
 
   auto error_value_len = sizeof(kLongLegacyError) - 1;
-  atomic_init(&this->serial, error_value_len << 24 | kLongFlag);
+  atomic_store_explicit(&this->serial, error_value_len << 24 | kLongFlag, memory_order_relaxed);
   memcpy(this->long_property.error_message, kLongLegacyError, sizeof(kLongLegacyError));
 
   this->long_property.offset = long_offset;
diff --git a/libc/system_properties/system_properties.cpp b/libc/system_properties/system_properties.cpp
index 1cb15c3..e0d38a8 100644
--- a/libc/system_properties/system_properties.cpp
+++ b/libc/system_properties/system_properties.cpp
@@ -29,6 +29,7 @@
 #include "system_properties/system_properties.h"
 
 #include <errno.h>
+#include <private/android_filesystem_config.h>
 #include <stdatomic.h>
 #include <stdlib.h>
 #include <string.h>
@@ -38,6 +39,7 @@
 
 #include <new>
 
+#include <async_safe/CHECK.h>
 #include <async_safe/log.h>
 
 #include "private/ErrnoRestorer.h"
@@ -49,6 +51,7 @@
 
 #define SERIAL_DIRTY(serial) ((serial)&1)
 #define SERIAL_VALUE_LEN(serial) ((serial) >> 24)
+#define APPCOMPAT_PREFIX "ro.appcompat_override."
 
 static bool is_dir(const char* pathname) {
   struct stat info;
@@ -67,47 +70,81 @@
     return true;
   }
 
-  if (strlen(filename) >= PROP_FILENAME_MAX) {
+  properties_filename_ = filename;
+
+  if (!InitContexts(false)) {
     return false;
   }
-  strcpy(property_filename_, filename);
 
-  if (is_dir(property_filename_)) {
-    if (access("/dev/__properties__/property_info", R_OK) == 0) {
-      contexts_ = new (contexts_data_) ContextsSerialized();
-      if (!contexts_->Initialize(false, property_filename_, nullptr)) {
+  initialized_ = true;
+  return true;
+}
+
+bool SystemProperties::InitContexts(bool load_default_path) {
+  if (is_dir(properties_filename_.c_str())) {
+    if (access(PROP_TREE_FILE, R_OK) == 0) {
+      auto serial_contexts = new (contexts_data_) ContextsSerialized();
+      contexts_ = serial_contexts;
+      if (!serial_contexts->Initialize(false, properties_filename_.c_str(), nullptr,
+                                       load_default_path)) {
         return false;
       }
     } else {
       contexts_ = new (contexts_data_) ContextsSplit();
-      if (!contexts_->Initialize(false, property_filename_, nullptr)) {
+      if (!contexts_->Initialize(false, properties_filename_.c_str(), nullptr)) {
         return false;
       }
     }
   } else {
     contexts_ = new (contexts_data_) ContextsPreSplit();
-    if (!contexts_->Initialize(false, property_filename_, nullptr)) {
+    if (!contexts_->Initialize(false, properties_filename_.c_str(), nullptr)) {
       return false;
     }
   }
-  initialized_ = true;
   return true;
 }
 
 bool SystemProperties::AreaInit(const char* filename, bool* fsetxattr_failed) {
-  if (strlen(filename) >= PROP_FILENAME_MAX) {
-    return false;
-  }
-  strcpy(property_filename_, filename);
+  return AreaInit(filename, fsetxattr_failed, false);
+}
 
-  contexts_ = new (contexts_data_) ContextsSerialized();
-  if (!contexts_->Initialize(true, property_filename_, fsetxattr_failed)) {
+// Note: load_default_path is only used for testing, as it will cause properties to be loaded from
+// one file (specified by PropertyInfoAreaFile.LoadDefaultPath), but be written to "filename".
+bool SystemProperties::AreaInit(const char* filename, bool* fsetxattr_failed,
+                                bool load_default_path) {
+  properties_filename_ = filename;
+  auto serial_contexts = new (contexts_data_) ContextsSerialized();
+  contexts_ = serial_contexts;
+  if (!serial_contexts->Initialize(true, properties_filename_.c_str(), fsetxattr_failed,
+                                   load_default_path)) {
     return false;
   }
+
+  appcompat_filename_ = PropertiesFilename(properties_filename_.c_str(), "appcompat_override");
+  appcompat_override_contexts_ = nullptr;
+  if (access(appcompat_filename_.c_str(), F_OK) != -1) {
+    auto* appcompat_contexts = new (appcompat_override_contexts_data_) ContextsSerialized();
+    if (!appcompat_contexts->Initialize(true, appcompat_filename_.c_str(), fsetxattr_failed,
+                                        load_default_path)) {
+      // The appcompat folder exists, but initializing it failed
+      return false;
+    } else {
+      appcompat_override_contexts_ = appcompat_contexts;
+    }
+  }
+
   initialized_ = true;
   return true;
 }
 
+bool SystemProperties::Reload(bool load_default_path) {
+  if (!initialized_) {
+    return true;
+  }
+
+  return InitContexts(load_default_path);
+}
+
 uint32_t SystemProperties::AreaSerial() {
   if (!initialized_) {
     return -1;
@@ -136,6 +173,10 @@
   return pa->find(name);
 }
 
+static bool is_appcompat_override(const char* name) {
+  return strncmp(name, APPCOMPAT_PREFIX, strlen(APPCOMPAT_PREFIX)) == 0;
+}
+
 static bool is_read_only(const char* name) {
   return strncmp(name, "ro.", 3) == 0;
 }
@@ -234,16 +275,24 @@
   if (!initialized_) {
     return -1;
   }
+  bool have_override = appcompat_override_contexts_ != nullptr;
 
   prop_area* serial_pa = contexts_->GetSerialPropArea();
+  prop_area* override_serial_pa =
+      have_override ? appcompat_override_contexts_->GetSerialPropArea() : nullptr;
   if (!serial_pa) {
     return -1;
   }
   prop_area* pa = contexts_->GetPropAreaForName(pi->name);
+  prop_area* override_pa =
+      have_override ? appcompat_override_contexts_->GetPropAreaForName(pi->name) : nullptr;
   if (__predict_false(!pa)) {
     async_safe_format_log(ANDROID_LOG_ERROR, "libc", "Could not find area for \"%s\"", pi->name);
     return -1;
   }
+  CHECK(!have_override || (override_pa && override_serial_pa));
+
+  auto* override_pi = const_cast<prop_info*>(have_override ? override_pa->find(pi->name) : nullptr);
 
   uint32_t serial = atomic_load_explicit(&pi->serial, memory_order_relaxed);
   unsigned int old_len = SERIAL_VALUE_LEN(serial);
@@ -253,18 +302,34 @@
   // that we publish our dirty area update before allowing readers to see a
   // dirty serial.
   memcpy(pa->dirty_backup_area(), pi->value, old_len + 1);
+  if (have_override) {
+    memcpy(override_pa->dirty_backup_area(), override_pi->value, old_len + 1);
+  }
   atomic_thread_fence(memory_order_release);
   serial |= 1;
   atomic_store_explicit(&pi->serial, serial, memory_order_relaxed);
   strlcpy(pi->value, value, len + 1);
+  if (have_override) {
+    atomic_store_explicit(&override_pi->serial, serial, memory_order_relaxed);
+    strlcpy(override_pi->value, value, len + 1);
+  }
   // Now the primary value property area is up-to-date. Let readers know that they should
   // look at the property value instead of the backup area.
   atomic_thread_fence(memory_order_release);
-  atomic_store_explicit(&pi->serial, (len << 24) | ((serial + 1) & 0xffffff), memory_order_relaxed);
+  int new_serial = (len << 24) | ((serial + 1) & 0xffffff);
+  atomic_store_explicit(&pi->serial, new_serial, memory_order_relaxed);
+  if (have_override) {
+    atomic_store_explicit(&override_pi->serial, new_serial, memory_order_relaxed);
+  }
   __futex_wake(&pi->serial, INT32_MAX);  // Fence by side effect
   atomic_store_explicit(serial_pa->serial(),
                         atomic_load_explicit(serial_pa->serial(), memory_order_relaxed) + 1,
                         memory_order_release);
+  if (have_override) {
+    atomic_store_explicit(override_serial_pa->serial(),
+                          atomic_load_explicit(serial_pa->serial(), memory_order_relaxed) + 1,
+                          memory_order_release);
+  }
   __futex_wake(serial_pa->serial(), INT32_MAX);
 
   return 0;
@@ -272,34 +337,73 @@
 
 int SystemProperties::Add(const char* name, unsigned int namelen, const char* value,
                           unsigned int valuelen) {
-  if (valuelen >= PROP_VALUE_MAX && !is_read_only(name)) {
+  if (namelen < 1) {
+    async_safe_format_log(ANDROID_LOG_ERROR, "libc",
+                          "__system_property_add failed: name length 0");
     return -1;
   }
 
-  if (namelen < 1) {
+  if (valuelen >= PROP_VALUE_MAX && !is_read_only(name)) {
+    async_safe_format_log(ANDROID_LOG_ERROR, "libc",
+                          "__system_property_add failed: \"%s\" value too long: %d >= PROP_VALUE_MAX",
+                          name, valuelen);
     return -1;
   }
 
   if (!initialized_) {
+    async_safe_format_log(ANDROID_LOG_ERROR, "libc",
+                          "__system_property_add failed: properties not initialized");
     return -1;
   }
 
   prop_area* serial_pa = contexts_->GetSerialPropArea();
   if (serial_pa == nullptr) {
+    async_safe_format_log(ANDROID_LOG_ERROR, "libc",
+                          "__system_property_add failed: property area not found");
     return -1;
   }
 
   prop_area* pa = contexts_->GetPropAreaForName(name);
   if (!pa) {
-    async_safe_format_log(ANDROID_LOG_ERROR, "libc", "Access denied adding property \"%s\"", name);
+    async_safe_format_log(ANDROID_LOG_ERROR, "libc",
+                          "__system_property_add failed: access denied for \"%s\"", name);
     return -1;
   }
 
-  bool ret = pa->add(name, namelen, value, valuelen);
-  if (!ret) {
+  if (!pa->add(name, namelen, value, valuelen)) {
+    async_safe_format_log(ANDROID_LOG_ERROR, "libc",
+                          "__system_property_add failed: add failed for \"%s\"", name);
     return -1;
   }
 
+  if (appcompat_override_contexts_ != nullptr) {
+    bool is_override = is_appcompat_override(name);
+    const char* override_name = name;
+    if (is_override) override_name += strlen(APPCOMPAT_PREFIX);
+    prop_area* other_pa = appcompat_override_contexts_->GetPropAreaForName(override_name);
+    prop_area* other_serial_pa = appcompat_override_contexts_->GetSerialPropArea();
+    CHECK(other_pa && other_serial_pa);
+    // We may write a property twice to overrides, once for the ro.*, and again for the
+    // ro.appcompat_override.ro.* property. If we've already written, then we should essentially
+    // perform an Update, not an Add.
+    auto other_pi = const_cast<prop_info*>(other_pa->find(override_name));
+    if (!other_pi) {
+      if (other_pa->add(override_name, strlen(override_name), value, valuelen)) {
+        atomic_store_explicit(
+            other_serial_pa->serial(),
+            atomic_load_explicit(other_serial_pa->serial(), memory_order_relaxed) + 1,
+            memory_order_release);
+      }
+    } else if (is_override) {
+      // We already wrote the ro.*, but appcompat_override.ro.* should override that. We don't
+      // need to do the usual dirty bit setting, as this only happens during the init process,
+      // before any readers are started. Check that only init or root can write appcompat props.
+      CHECK(getpid() == 1 || getuid() == 0);
+      atomic_thread_fence(memory_order_release);
+      strlcpy(other_pi->value, value, valuelen + 1);
+    }
+  }
+
   // There is only a single mutator, but we want to make sure that
   // updates are visible to a reader waiting for the update.
   atomic_store_explicit(serial_pa->serial(),
diff --git a/libc/tools/generate_notice.py b/libc/tools/generate_notice.py
index e004d74..c998e32 100755
--- a/libc/tools/generate_notice.py
+++ b/libc/tools/generate_notice.py
@@ -33,6 +33,7 @@
         ".pyc",
         ".swp",
         ".txt",
+        ".xml",
     ]
     if path.suffix in uninteresting_extensions:
         return False
@@ -44,14 +45,6 @@
     return True
 
 
-def is_auto_generated(content):
-    if "Generated by gensyscalls.py" in content or "generated by genserv.py" in content:
-        return True
-    if "This header was automatically generated from a Linux kernel header" in content:
-        return True
-    return False
-
-
 def is_copyright_end(line: str, first_line_was_hash: bool) -> bool:
     endings = [
         " $FreeBSD: ",
@@ -116,8 +109,6 @@
         line = re.sub(r"^ \* ", "", line)
         line = line.replace("** ", "")
         line = line.replace("# ", "")
-        if "SPDX-License-Identifier:" in line:
-            continue
         if line.startswith("++Copyright++"):
             continue
         line = line.replace("--Copyright--", "")
@@ -152,10 +143,6 @@
         warn_verbose("ignoring short file %s" % path)
         return
 
-    if is_auto_generated(content):
-        warn_verbose("ignoring auto-generated file %s" % path)
-        return
-
     if not "Copyright" in content:
         if "public domain" in content.lower():
             warn_verbose("ignoring public domain file %s" % path)
diff --git a/libc/tools/gensyscalls.py b/libc/tools/gensyscalls.py
index 558b004..d7afe2a 100755
--- a/libc/tools/gensyscalls.py
+++ b/libc/tools/gensyscalls.py
@@ -27,7 +27,7 @@
 # ARM assembler templates for each syscall stub
 #
 
-arm_eabi_call_default = syscall_stub_header + """\
+arm_call_default = syscall_stub_header + """\
     mov     ip, r7
     .cfi_register r7, ip
     ldr     r7, =%(__NR_name)s
@@ -41,7 +41,7 @@
 END(%(func)s)
 """
 
-arm_eabi_call_long = syscall_stub_header + """\
+arm_call_long = syscall_stub_header + """\
     mov     ip, sp
     stmfd   sp!, {r4, r5, r6, r7}
     .cfi_def_cfa_offset 16
@@ -88,7 +88,7 @@
     ecall
 
     li      a7, -MAX_ERRNO
-    bgtu    a0, a7, 1f
+    bgeu    a0, a7, 1f
 
     ret
 1:
@@ -227,19 +227,14 @@
     aliases = syscall["aliases"]
     for alias in aliases:
         stub += "\nALIAS_SYMBOL(%s, %s)\n" % (alias, syscall["func"])
-
-    # Use hidden visibility on LP64 for any functions beginning with underscores.
-    if pointer_length == 64 and syscall["func"].startswith("__"):
-        stub += '.hidden ' + syscall["func"] + '\n'
-
     return stub
 
 
-def arm_eabi_genstub(syscall):
+def arm_genstub(syscall):
     num_regs = count_arm_param_registers(syscall["params"])
     if num_regs > 4:
-        return arm_eabi_call_long % syscall
-    return arm_eabi_call_default % syscall
+        return arm_call_long % syscall
+    return arm_call_default % syscall
 
 
 def arm64_genstub(syscall):
@@ -461,7 +456,7 @@
         syscall["__NR_name"] = make__NR_name(syscall["name"])
 
         if "arm" in syscall:
-            syscall["asm-arm"] = add_footer(32, arm_eabi_genstub(syscall), syscall)
+            syscall["asm-arm"] = add_footer(32, arm_genstub(syscall), syscall)
 
         if "arm64" in syscall:
             syscall["asm-arm64"] = add_footer(64, arm64_genstub(syscall), syscall)
diff --git a/libc/tzcode/asctime.c b/libc/tzcode/asctime.c
index ce5d4be..4cdfd13 100644
--- a/libc/tzcode/asctime.c
+++ b/libc/tzcode/asctime.c
@@ -17,12 +17,6 @@
 #include <stdio.h>
 
 /*
-** Some systems only handle "%.2d"; others only handle "%02d";
-** "%02.2d" makes (most) everybody happy.
-** At least some versions of gcc warn about the %02.2d;
-** we conditionalize below to avoid the warning.
-*/
-/*
 ** All years associated with 32-bit time_t values are exactly four digits long;
 ** some years associated with 64-bit time_t values are not.
 ** Vintage programs are coded for years that are always four digits long
@@ -34,24 +28,16 @@
 ** The ISO C and POSIX standards prohibit padding the year,
 ** but many implementations pad anyway; most likely the standards are buggy.
 */
-#ifdef __GNUC__
-#define ASCTIME_FMT	"%s %s%3d %2.2d:%2.2d:%2.2d %-4s\n"
-#else /* !defined __GNUC__ */
-#define ASCTIME_FMT	"%s %s%3d %02.2d:%02.2d:%02.2d %-4s\n"
-#endif /* !defined __GNUC__ */
+static char const ASCTIME_FMT[] = "%s %s%3d %.2d:%.2d:%.2d %-4s\n";
 /*
 ** For years that are more than four digits we put extra spaces before the year
 ** so that code trying to overwrite the newline won't end up overwriting
 ** a digit within a year and truncating the year (operating on the assumption
 ** that no output is better than wrong output).
 */
-#ifdef __GNUC__
-#define ASCTIME_FMT_B	"%s %s%3d %2.2d:%2.2d:%2.2d     %s\n"
-#else /* !defined __GNUC__ */
-#define ASCTIME_FMT_B	"%s %s%3d %02.2d:%02.2d:%02.2d     %s\n"
-#endif /* !defined __GNUC__ */
+static char const ASCTIME_FMT_B[] = "%s %s%3d %.2d:%.2d:%.2d     %s\n";
 
-#define STD_ASCTIME_BUF_SIZE	26
+enum { STD_ASCTIME_BUF_SIZE = 26 };
 /*
 ** Big enough for something such as
 ** ??? ???-2147483648 -2147483648:-2147483648:-2147483648     -2147483648\n
@@ -59,15 +45,23 @@
 ** seven explicit spaces, two explicit colons, a newline,
 ** and a trailing NUL byte).
 ** The values above are for systems where an int is 32 bits and are provided
-** as an example; the define below calculates the maximum for the system at
+** as an example; the size expression below is a bound for the system at
 ** hand.
 */
-#define MAX_ASCTIME_BUF_SIZE	(2*3+5*INT_STRLEN_MAXIMUM(int)+7+2+1+1)
+static char buf_asctime[2*3 + 5*INT_STRLEN_MAXIMUM(int) + 7 + 2 + 1 + 1];
 
-static char	buf_asctime[MAX_ASCTIME_BUF_SIZE];
+/* A similar buffer for ctime.
+   C89 requires that they be the same buffer.
+   This requirement was removed in C99, so support it only if requested,
+   as support is more likely to lead to bugs in badly written programs.  */
+#if SUPPORT_C89
+# define buf_ctime buf_asctime
+#else
+static char buf_ctime[sizeof buf_asctime];
+#endif
 
 char *
-asctime_r(register const struct tm *timeptr, char *buf)
+asctime_r(struct tm const *restrict timeptr, char *restrict buf)
 {
 	static const char	wday_name[][4] = {
 		"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"
@@ -79,7 +73,7 @@
 	register const char *	wn;
 	register const char *	mn;
 	char			year[INT_STRLEN_MAXIMUM(int) + 2];
-	char			result[MAX_ASCTIME_BUF_SIZE];
+	char result[sizeof buf_asctime];
 
 	if (timeptr == NULL) {
 		errno = EINVAL;
@@ -107,7 +101,8 @@
 		timeptr->tm_mday, timeptr->tm_hour,
 		timeptr->tm_min, timeptr->tm_sec,
 		year);
-	if (strlen(result) < STD_ASCTIME_BUF_SIZE || buf == buf_asctime)
+	if (strlen(result) < STD_ASCTIME_BUF_SIZE
+	    || buf == buf_ctime || buf == buf_asctime)
 		return strcpy(buf, result);
 	else {
 		errno = EOVERFLOW;
@@ -120,3 +115,17 @@
 {
 	return asctime_r(timeptr, buf_asctime);
 }
+
+char *
+ctime_r(const time_t *timep, char *buf)
+{
+  struct tm mytm;
+  struct tm *tmp = localtime_r(timep, &mytm);
+  return tmp ? asctime_r(tmp, buf) : NULL;
+}
+
+char *
+ctime(const time_t *timep)
+{
+  return ctime_r(timep, buf_ctime);
+}
diff --git a/libc/tzcode/bionic.cpp b/libc/tzcode/bionic.cpp
index d2b5d80..7091707 100644
--- a/libc/tzcode/bionic.cpp
+++ b/libc/tzcode/bionic.cpp
@@ -36,10 +36,45 @@
 #include "private/CachedProperty.h"
 
 extern "C" void tzset_unlocked(void);
+extern "C" void __bionic_get_system_tz(char* buf, size_t n);
 extern "C" int __bionic_open_tzdata(const char*, int32_t*);
 
 extern "C" void tzsetlcl(char const*);
 
+void __bionic_get_system_tz(char* buf, size_t n) {
+  static CachedProperty persist_sys_timezone("persist.sys.timezone");
+  const char* name = persist_sys_timezone.Get();
+
+  // If the system property is not set, perhaps because this is called
+  // before the default value has been set (the recovery image being a
+  // classic example), fall back to GMT.
+  if (name == nullptr) name = "GMT";
+
+  strlcpy(buf, name, n);
+
+  if (!strcmp(buf, "GMT")) {
+    // Typically we'll set the system property to an Olson ID, but
+    // java.util.TimeZone also supports the "GMT+xxxx" style, and at
+    // least historically (see http://b/25463955) some Android-based set
+    // top boxes would get the timezone from the TV network in this format
+    // and use it directly in the system property. This caused trouble
+    // for native code because POSIX and Java disagree about the sign in
+    // a timezone string. For POSIX, "GMT+3" means "3 hours west/behind",
+    // but for Java it means "3 hours east/ahead". Since (a) Java is the
+    // one that matches human expectations and (b) this system property is
+    // used directly by Java, we flip the sign here to translate from Java
+    // to POSIX. We only need to worry about the "GMT+xxxx" case because
+    // the expectation is that these are valid java.util.TimeZone ids,
+    // not general POSIX custom timezone specifications (which is why this
+    // code only applies to the system property, and not to the environment
+    // variable).
+    char sign = buf[3];
+    if (sign == '-' || sign == '+') {
+      buf[3] = (sign == '-') ? '+' : '-';
+    }
+  }
+}
+
 void tzset_unlocked() {
   // The TZ environment variable is meant to override the system-wide setting.
   const char* name = getenv("TZ");
@@ -47,26 +82,10 @@
 
   // If that's not set, look at the "persist.sys.timezone" system property.
   if (name == nullptr) {
-    static CachedProperty persist_sys_timezone("persist.sys.timezone");
-
-    if ((name = persist_sys_timezone.Get()) != nullptr && strlen(name) > 3) {
-      // POSIX and Java disagree about the sign in a timezone string. For POSIX, "GMT+3" means
-      // "3 hours west/behind", but for Java it means "3 hours east/ahead". Since (a) Java is
-      // the one that matches human expectations and (b) this system property is used directly
-      // by Java, we flip the sign here to translate from Java to POSIX. http://b/25463955.
-      char sign = name[3];
-      if (sign == '-' || sign == '+') {
-        strlcpy(buf, name, sizeof(buf));
-        buf[3] = (sign == '-') ? '+' : '-';
-        name = buf;
-      }
-    }
+    __bionic_get_system_tz(buf, sizeof(buf));
+    name = buf;
   }
 
-  // If the system property is also not available (because you're running AOSP on a WiFi-only
-  // device, say), fall back to GMT.
-  if (name == nullptr) name = "GMT";
-
   tzsetlcl(name);
 }
 
@@ -192,14 +211,14 @@
     close(fd);
     // This file descriptor (-1) is passed to localtime.c. In invalid fd case
     // upstream passes errno value around methods and having 0 there will
-    // indicate that time zone was found and read successfully and localtime's
+    // indicate that timezone was found and read successfully and localtime's
     // internal state was properly initialized (which wasn't as we couldn't find
-    // requested time zone in the tzdata file).
+    // requested timezone in the tzdata file).
     // If we reached this point errno is unlikely to be touched. It is only
     // close(fd) which can do it, but that is very unlikely to happen. And
     // even if it happens we can't extract any useful insights from it.
     // We are overriding it to ENOENT as it matches upstream expectations -
-    // time zone is absent in the tzdata file == there is no TZif file in
+    // timezone is absent in the tzdata file == there is no TZif file in
     // /usr/share/zoneinfo.
     errno = ENOENT;
     return -1;
@@ -219,7 +238,7 @@
   int fd;
 
   // Try the two locations for the tzdata file in a strict order:
-  // 1: The time zone data module which contains the main copy. This is the
+  // 1: The timezone data module which contains the main copy. This is the
   //    common case for current devices.
   // 2: The ultimate fallback: the non-updatable copy in /system.
 
diff --git a/libc/tzcode/localtime.c b/libc/tzcode/localtime.c
index 8ff5cee..018acad 100644
--- a/libc/tzcode/localtime.c
+++ b/libc/tzcode/localtime.c
@@ -28,29 +28,22 @@
 static void unlock(void) { }
 #endif
 
-#ifndef TZ_ABBR_MAX_LEN
-#define TZ_ABBR_MAX_LEN 16
-#endif /* !defined TZ_ABBR_MAX_LEN */
-
 #ifndef TZ_ABBR_CHAR_SET
-#define TZ_ABBR_CHAR_SET \
+# define TZ_ABBR_CHAR_SET \
     "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 :+-._"
 #endif /* !defined TZ_ABBR_CHAR_SET */
 
 #ifndef TZ_ABBR_ERR_CHAR
-#define TZ_ABBR_ERR_CHAR    '_'
+# define TZ_ABBR_ERR_CHAR    '_'
 #endif /* !defined TZ_ABBR_ERR_CHAR */
 
 /*
-** SunOS 4.1.1 headers lack O_BINARY.
++** Support non-POSIX platforms that distinguish between text and binary files.
 */
 
-#ifdef O_BINARY
-#define OPEN_MODE   (O_RDONLY | O_BINARY)
-#endif /* defined O_BINARY */
 #ifndef O_BINARY
-#define OPEN_MODE   O_RDONLY
-#endif /* !defined O_BINARY */
+# define O_BINARY 0
+#endif
 
 #ifndef WILDABBR
 /*
@@ -72,12 +65,13 @@
 ** manual page of what this "time zone abbreviation" means (doing this so
 ** that tzname[0] has the "normal" length of three characters).
 */
-#define WILDABBR    "   "
+# define WILDABBR    "   "
 #endif /* !defined WILDABBR */
 
 static const char       wildabbr[] = WILDABBR;
 
-static const char gmt[] = "GMT";
+static char const etc_utc[] = "Etc/UTC";
+static char const *utc = etc_utc + sizeof "Etc/" - 1;
 
 /*
 ** The DST rules to use if TZ has no rules and we can't load TZDEFRULES.
@@ -86,7 +80,7 @@
 ** for historical reasons, US rules are a common default.
 */
 #ifndef TZDEFRULESTRING
-#define TZDEFRULESTRING ",M3.2.0,M11.1.0"
+# define TZDEFRULESTRING ",M3.2.0,M11.1.0"
 #endif
 
 struct ttinfo {              /* time type information */
@@ -102,9 +96,6 @@
     int_fast32_t ls_corr;    /* correction to apply */
 };
 
-#define SMALLEST(a, b)	(((a) < (b)) ? (a) : (b))
-#define BIGGEST(a, b)   (((a) > (b)) ? (a) : (b))
-
 /* This abbreviation means local time is unspecified.  */
 static char const UNSPEC[] = "-00";
 
@@ -112,14 +103,13 @@
    This needs to be at least 1 for null termination in case the input
    data isn't properly terminated, and it also needs to be big enough
    for ttunspecified to work without crashing.  */
-enum { CHARS_EXTRA = BIGGEST(sizeof UNSPEC, 2) - 1 };
+enum { CHARS_EXTRA = max(sizeof UNSPEC, 2) - 1 };
 
-#ifdef TZNAME_MAX
-#define MY_TZNAME_MAX   TZNAME_MAX
-#endif /* defined TZNAME_MAX */
-#ifndef TZNAME_MAX
-#define MY_TZNAME_MAX   255
-#endif /* !defined TZNAME_MAX */
+/* Limit to time zone abbreviation length in POSIX-style TZ strings.
+   This is distinct from TZ_MAX_CHARS, which limits TZif file contents.  */
+#ifndef TZNAME_MAXIMUM
+# define TZNAME_MAXIMUM 255
+#endif
 
 struct state {
     int           leapcnt;
@@ -131,9 +121,8 @@
     time_t        ats[TZ_MAX_TIMES];
     unsigned char types[TZ_MAX_TIMES];
     struct ttinfo ttis[TZ_MAX_TYPES];
-    char          chars[BIGGEST(BIGGEST(TZ_MAX_CHARS + CHARS_EXTRA,
-                            sizeof gmt),
-                  (2 * (MY_TZNAME_MAX + 1)))];
+    char chars[max(max(TZ_MAX_CHARS + CHARS_EXTRA, sizeof "UTC"),
+		         2 * (TZNAME_MAXIMUM + 1))];
     struct lsinfo lsis[TZ_MAX_LEAPS];
     /* The time type to use for early times or if no transitions.
        It is always zero for recent tzdb releases.
@@ -174,12 +163,12 @@
 #ifndef ALL_STATE
 static struct state lclmem;
 static struct state gmtmem;
-#define lclptr      (&lclmem)
-#define gmtptr      (&gmtmem)
+static struct state *const lclptr = &lclmem;
+static struct state *const gmtptr = &gmtmem;
 #endif /* State Farm */
 
 #ifndef TZ_STRLEN_MAX
-#define TZ_STRLEN_MAX 255
+# define TZ_STRLEN_MAX 255
 #endif /* !defined TZ_STRLEN_MAX */
 
 static char lcl_TZname[TZ_STRLEN_MAX + 1];
@@ -191,9 +180,14 @@
 **  ctime, gmtime, localtime] return values in one of two static
 **  objects: a broken-down time structure and an array of char.
 ** Thanks to Paul Eggert for noting this.
+**
+** This requirement was removed in C99, so support it only if requested,
+** as support is more likely to lead to bugs in badly written programs.
 */
 
+#if SUPPORT_C89
 static struct tm	tm;
+#endif
 
 #if 2 <= HAVE_TZNAME + TZ_TIME_T
 char *			tzname[2] = {
@@ -321,7 +315,7 @@
 	int stddst_mask = 0;
 
 #if HAVE_TZNAME
-	tzname[0] = tzname[1] = (char *) (sp ? wildabbr : gmt);
+	tzname[0] = tzname[1] = (char *) (sp ? wildabbr : utc);
 	stddst_mask = 3;
 #endif
 #if USG_COMPAT
@@ -346,27 +340,28 @@
 #endif
 }
 
-static void
+/* Replace bogus characters in time zone abbreviations.
+   Return 0 on success, an errno value if a time zone abbreviation is
+   too long.  */
+static int
 scrub_abbrs(struct state *sp)
 {
 	int i;
-	/*
-	** First, replace bogus characters.
-	*/
+
+	/* Reject overlong abbreviations.  */
+	for (i = 0; i < sp->charcnt - (TZNAME_MAXIMUM + 1); ) {
+	  int len = strlen(&sp->chars[i]);
+	  if (TZNAME_MAXIMUM < len)
+	    return EOVERFLOW;
+	  i += len + 1;
+	}
+
+	/* Replace bogus characters.  */
 	for (i = 0; i < sp->charcnt; ++i)
 		if (strchr(TZ_ABBR_CHAR_SET, sp->chars[i]) == NULL)
 			sp->chars[i] = TZ_ABBR_ERR_CHAR;
-	/*
-	** Second, truncate long abbreviations.
-	*/
-	for (i = 0; i < sp->typecnt; ++i) {
-		register const struct ttinfo * const	ttisp = &sp->ttis[i];
-		char *cp = &sp->chars[ttisp->tt_desigidx];
 
-		if (strlen(cp) > TZ_ABBR_MAX_LEN &&
-			strcmp(cp, GRANDPARENTED) != 0)
-				*(cp + TZ_ABBR_MAX_LEN) = '\0';
-	}
+	return 0;
 }
 
 /* Input buffer for data read from a compiled tz file.  */
@@ -379,8 +374,11 @@
      + 4 * TZ_MAX_TIMES];
 };
 
-// Android-removed: There is no directory with file-per-time zone on Android.
-#ifndef __BIONIC__
+#if defined(__BIONIC__)
+// Android: there is no directory with one file per timezone on Android,
+// but we do have a system property instead.
+#include <sys/system_properties.h>
+#else
 /* TZDIR with a trailing '/' rather than a trailing '\0'.  */
 static char const tzdirslash[sizeof TZDIR] = TZDIR "/";
 #endif
@@ -399,8 +397,7 @@
   // Android-removed: There is no directory with file-per-time zone on Android.
   #ifndef __BIONIC__
   /* The file name to be opened.  */
-  char fullname[BIGGEST(sizeof(struct file_analysis),
-      sizeof tzdirslash + 1024)];
+  char fullname[max(sizeof(struct file_analysis), sizeof tzdirslash + 1024)];
   #endif
 };
 
@@ -421,13 +418,20 @@
 #endif
 	register union input_buffer *up = &lsp->u.u;
 	register int tzheadsize = sizeof(struct tzhead);
+	char system_tz_name[PROP_VALUE_MAX];
 
 	sp->goback = sp->goahead = false;
 
 	if (! name) {
+#if defined(__BIONIC__)
+		extern void __bionic_get_system_tz(char* , size_t);
+		__bionic_get_system_tz(system_tz_name, sizeof(system_tz_name));
+		name = system_tz_name;
+#else
 		name = TZDEFAULT;
 		if (! name)
 		  return EINVAL;
+#endif
 	}
 
 #if defined(__BIONIC__)
@@ -446,8 +450,7 @@
 #endif
 	if (!doaccess) {
 		char const *dot;
-		size_t namelen = strlen(name);
-		if (sizeof lsp->fullname - sizeof tzdirslash <= namelen)
+		if (sizeof lsp->fullname - sizeof tzdirslash <= strlen(name))
 		  return ENAMETOOLONG;
 
 		/* Create a string "TZDIR/NAME".  Using sprintf here
@@ -470,7 +473,7 @@
 	}
 	if (doaccess && access(name, R_OK) != 0)
 	  return errno;
-	fid = open(name, OPEN_MODE);
+  fid = open(name, O_RDONLY | O_BINARY);
 #endif
 	if (fid < 0)
 	  return errno;
@@ -828,12 +831,14 @@
 		b < 0 || b >= sp->typecnt)
 			result = false;
 	else {
+		/* Compare the relevant members of *AP and *BP.
+		   Ignore tt_ttisstd and tt_ttisut, as they are
+		   irrelevant now and counting them could cause
+		   sp->goahead to mistakenly remain false.  */
 		register const struct ttinfo *	ap = &sp->ttis[a];
 		register const struct ttinfo *	bp = &sp->ttis[b];
 		result = (ap->tt_utoff == bp->tt_utoff
 			  && ap->tt_isdst == bp->tt_isdst
-			  && ap->tt_ttisstd == bp->tt_ttisstd
-			  && ap->tt_ttisut == bp->tt_ttisut
 			  && (strcmp(&sp->chars[ap->tt_desigidx],
 				     &sp->chars[bp->tt_desigidx])
 			      == 0));
@@ -863,7 +868,7 @@
 ** Return a pointer to that character.
 */
 
-static ATTRIBUTE_PURE const char *
+ATTRIBUTE_REPRODUCIBLE static const char *
 getzname(register const char *strp)
 {
 	register char	c;
@@ -884,7 +889,7 @@
 ** We don't do any checking here; checking is done later in common-case code.
 */
 
-static ATTRIBUTE_PURE const char *
+ATTRIBUTE_REPRODUCIBLE static const char *
 getqzname(register const char *strp, const int delim)
 {
 	register int	c;
@@ -1122,7 +1127,7 @@
             value += mon_lengths[leapyear][i] * SECSPERDAY;
         break;
 
-        default: UNREACHABLE();
+        default: unreachable();
     }
 
     /*
@@ -1144,13 +1149,11 @@
 {
 	const char *			stdname;
 	const char *			dstname;
-	size_t				stdlen;
-	size_t				dstlen;
-	size_t				charcnt;
 	int_fast32_t			stdoffset;
 	int_fast32_t			dstoffset;
 	register char *			cp;
 	register bool			load_ok;
+	ptrdiff_t stdlen, dstlen, charcnt;
 	time_t atlo = TIME_T_MIN, leaplo = TIME_T_MIN;
 
 	stdname = name;
@@ -1166,14 +1169,12 @@
 	  name = getzname(name);
 	  stdlen = name - stdname;
 	}
-	if (!stdlen)
+	if (! (0 < stdlen && stdlen <= TZNAME_MAXIMUM))
 	  return false;
 	name = getoffset(name, &stdoffset);
 	if (name == NULL)
 	  return false;
 	charcnt = stdlen + 1;
-	if (sizeof sp->chars < charcnt)
-	  return false;
 	if (basep) {
 	  if (0 < basep->timecnt)
 	    atlo = basep->ats[basep->timecnt - 1];
@@ -1200,11 +1201,9 @@
 			name = getzname(name);
 			dstlen = name - dstname; /* length of DST abbr. */
 		}
-		if (!dstlen)
+		if (! (0 < dstlen && dstlen <= TZNAME_MAXIMUM))
 		  return false;
 		charcnt += dstlen + 1;
-		if (sizeof sp->chars < charcnt)
-		  return false;
 		if (*name != '\0' && *name != ',' && *name != ';') {
 			name = getoffset(name, &dstoffset);
 			if (name == NULL)
@@ -1420,8 +1419,8 @@
 static void
 gmtload(struct state *const sp)
 {
-	if (tzload(gmt, sp, true) != 0)
-	  tzparse("GMT0", sp, NULL);
+	if (tzload(etc_utc, sp, true) != 0)
+	  tzparse("UTC0", sp, NULL);
 }
 
 /* Initialize *SP to a value appropriate for the TZ setting NAME.
@@ -1439,7 +1438,7 @@
     sp->charcnt = 0;
     sp->goback = sp->goahead = false;
     init_ttinfo(&sp->ttis[0], 0, false, 0);
-    strcpy(sp->chars, gmt);
+    strcpy(sp->chars, utc);
     sp->defaulttype = 0;
     return 0;
   } else {
@@ -1447,7 +1446,7 @@
     if (err != 0 && name && name[0] != ':' && tzparse(name, sp, NULL))
       err = 0;
     if (err == 0)
-      scrub_abbrs(sp);
+      err = scrub_abbrs(sp);
     return err;
   }
 }
@@ -1557,7 +1556,7 @@
 ** set the applicable parts of tzname, timezone and altzone;
 ** however, it's OK to omit this step if the timezone is POSIX-compatible,
 ** since in that case tzset should have already done this step correctly.
-** SETNAME's type is intfast32_t for compatibility with gmtsub,
+** SETNAME's type is int_fast32_t for compatibility with gmtsub,
 ** but it is actually a boolean and its value should be 0 or 1.
 */
 
@@ -1601,6 +1600,14 @@
 					return NULL;	/* "cannot happen" */
 			result = localsub(sp, &newt, setname, tmp);
 			if (result) {
+#if defined ckd_add && defined ckd_sub
+				if (t < sp->ats[0]
+				    ? ckd_sub(&result->tm_year,
+					      result->tm_year, years)
+				    : ckd_add(&result->tm_year,
+					      result->tm_year, years))
+				  return NULL;
+#else
 				register int_fast64_t newy;
 
 				newy = result->tm_year;
@@ -1610,6 +1617,7 @@
 				if (! (INT_MIN <= newy && newy <= INT_MAX))
 					return NULL;
 				result->tm_year = newy;
+#endif
 			}
 			return result;
 	}
@@ -1650,7 +1658,8 @@
 #if NETBSD_INSPIRED
 
 struct tm *
-localtime_rz(struct state *sp, time_t const *timep, struct tm *tmp)
+localtime_rz(struct state *restrict sp, time_t const *restrict timep,
+	     struct tm *restrict tmp)
 {
   return localsub(sp, timep, 0, tmp);
 }
@@ -1681,11 +1690,14 @@
 struct tm *
 localtime(const time_t *timep)
 {
+#if !SUPPORT_C89
+  static struct tm tm;
+#endif
   return localtime_tzset(timep, &tm);
 }
 
 struct tm *
-localtime_r(const time_t *timep, struct tm *tmp)
+localtime_r(const time_t *restrict timep, struct tm *restrict tmp)
 {
   return localtime_tzset(timep, tmp);
 }
@@ -1695,8 +1707,8 @@
 */
 
 static struct tm *
-gmtsub(struct state const *sp, time_t const *timep, int_fast32_t offset,
-       struct tm *tmp)
+gmtsub(ATTRIBUTE_MAYBE_UNUSED struct state const *sp, time_t const *timep,
+       int_fast32_t offset, struct tm *tmp)
 {
 	register struct tm *	result;
 
@@ -1708,7 +1720,7 @@
 	** but this is no time for a treasure hunt.
 	*/
 	tmp->TM_ZONE = ((char *)
-			(offset ? wildabbr : gmtptr ? gmtptr->chars : gmt));
+			(offset ? wildabbr : gmtptr ? gmtptr->chars : utc));
 #endif /* defined TM_ZONE */
 	return result;
 }
@@ -1718,7 +1730,7 @@
 */
 
 struct tm *
-gmtime_r(const time_t *timep, struct tm *tmp)
+gmtime_r(time_t const *restrict timep, struct tm *restrict tmp)
 {
   gmtcheck();
   return gmtsub(gmtptr, timep, 0, tmp);
@@ -1727,19 +1739,26 @@
 struct tm *
 gmtime(const time_t *timep)
 {
+#if !SUPPORT_C89
+  static struct tm tm;
+#endif
   return gmtime_r(timep, &tm);
 }
 
-#ifdef STD_INSPIRED
+#if STD_INSPIRED
 
 struct tm *
 offtime(const time_t *timep, long offset)
 {
   gmtcheck();
+
+#if !SUPPORT_C89
+  static struct tm tm;
+#endif
   return gmtsub(gmtptr, timep, offset, &tm);
 }
 
-#endif /* defined STD_INSPIRED */
+#endif
 
 /*
 ** Return the number of leap years through the end of the given year
@@ -1825,6 +1844,12 @@
 		y = newy;
 	}
 
+#ifdef ckd_add
+	if (ckd_add(&tmp->tm_year, y, -TM_YEAR_BASE)) {
+	  errno = EOVERFLOW;
+	  return NULL;
+	}
+#else
 	if (!TYPE_SIGNED(time_t) && y < TM_YEAR_BASE) {
 	  int signed_y = y;
 	  tmp->tm_year = signed_y - TM_YEAR_BASE;
@@ -1835,6 +1860,7 @@
 	  errno = EOVERFLOW;
 	  return NULL;
 	}
+#endif
 	tmp->tm_yday = idays;
 	/*
 	** The "extra" mods below avoid overflow problems.
@@ -1868,27 +1894,6 @@
 	return tmp;
 }
 
-char *
-ctime(const time_t *timep)
-{
-/*
-** Section 4.12.3.2 of X3.159-1989 requires that
-**	The ctime function converts the calendar time pointed to by timer
-**	to local time in the form of a string. It is equivalent to
-**		asctime(localtime(timer))
-*/
-  struct tm *tmp = localtime(timep);
-  return tmp ? asctime(tmp) : NULL;
-}
-
-char *
-ctime_r(const time_t *timep, char *buf)
-{
-  struct tm mytm;
-  struct tm *tmp = localtime_r(timep, &mytm);
-  return tmp ? asctime_r(tmp, buf) : NULL;
-}
-
 /*
 ** Adapted from code provided by Robert Elz, who writes:
 **	The "best" way to do mktime I think is based on an idea of Bob
@@ -1899,7 +1904,7 @@
 */
 
 #ifndef WRONG
-#define WRONG	(-1)
+# define WRONG (-1)
 #endif /* !defined WRONG */
 
 /*
@@ -1909,6 +1914,9 @@
 static bool
 increment_overflow(int *ip, int j)
 {
+#ifdef ckd_add
+	return ckd_add(ip, *ip, j);
+#else
 	register int const	i = *ip;
 
 	/*
@@ -1921,22 +1929,30 @@
 		return true;
 	*ip += j;
 	return false;
+#endif
 }
 
 static bool
 increment_overflow32(int_fast32_t *const lp, int const m)
 {
+#ifdef ckd_add
+	return ckd_add(lp, *lp, m);
+#else
 	register int_fast32_t const	l = *lp;
 
 	if ((l >= 0) ? (m > INT_FAST32_MAX - l) : (m < INT_FAST32_MIN - l))
 		return true;
 	*lp += m;
 	return false;
+#endif
 }
 
 static bool
 increment_overflow_time(time_t *tp, int_fast32_t j)
 {
+#ifdef ckd_add
+	return ckd_add(tp, *tp, j);
+#else
 	/*
 	** This is like
 	** 'if (! (TIME_T_MIN <= *tp + j && *tp + j <= TIME_T_MAX)) ...',
@@ -1948,6 +1964,7 @@
 		return true;
 	*tp += j;
 	return false;
+#endif
 }
 
 static bool
@@ -1990,6 +2007,23 @@
 	return result;
 }
 
+/* Copy to *DEST from *SRC.  Copy only the members needed for mktime,
+   as other members might not be initialized.  */
+static void
+mktmcpy(struct tm *dest, struct tm const *src)
+{
+  dest->tm_sec = src->tm_sec;
+  dest->tm_min = src->tm_min;
+  dest->tm_hour = src->tm_hour;
+  dest->tm_mday = src->tm_mday;
+  dest->tm_mon = src->tm_mon;
+  dest->tm_year = src->tm_year;
+  dest->tm_isdst = src->tm_isdst;
+#if defined TM_GMTOFF && ! UNINIT_TRAP
+  dest->TM_GMTOFF = src->TM_GMTOFF;
+#endif
+}
+
 static time_t
 time2sub(struct tm *const tmp,
 	 struct tm *(*funcp)(struct state const *, time_t const *,
@@ -2011,7 +2045,8 @@
 	struct tm			yourtm, mytm;
 
 	*okayp = false;
-	yourtm = *tmp;
+	mktmcpy(&yourtm, tmp);
+
 	if (do_norm_secs) {
 		if (normalize_overflow(&yourtm.tm_min, &yourtm.tm_sec,
 			SECSPERMIN))
@@ -2053,14 +2088,19 @@
 				return WRONG;
 		}
 	}
+#ifdef ckd_add
+	if (ckd_add(&yourtm.tm_year, y, -TM_YEAR_BASE))
+	  return WRONG;
+#else
 	if (increment_overflow32(&y, -TM_YEAR_BASE))
 		return WRONG;
 	if (! (INT_MIN <= y && y <= INT_MAX))
 		return WRONG;
 	yourtm.tm_year = y;
+#endif
 	if (yourtm.tm_sec >= 0 && yourtm.tm_sec < SECSPERMIN)
 		saved_seconds = 0;
-	else if (y + TM_YEAR_BASE < EPOCH_YEAR) {
+	else if (yourtm.tm_year < EPOCH_YEAR - TM_YEAR_BASE) {
 		/*
 		** We can't set tm_sec to 0, because that might push the
 		** time below the minimum representable time.
@@ -2120,10 +2160,10 @@
 		    && (yourtm.TM_GMTOFF < 0
 			? (-SECSPERDAY <= yourtm.TM_GMTOFF
 			   && (mytm.TM_GMTOFF <=
-			       (SMALLEST(INT_FAST32_MAX, LONG_MAX)
+			       (min(INT_FAST32_MAX, LONG_MAX)
 				+ yourtm.TM_GMTOFF)))
 			: (yourtm.TM_GMTOFF <= SECSPERDAY
-			   && ((BIGGEST(INT_FAST32_MIN, LONG_MIN)
+			   && ((max(INT_FAST32_MIN, LONG_MIN)
 				+ yourtm.TM_GMTOFF)
 			       <= mytm.TM_GMTOFF)))) {
 		  /* MYTM matches YOURTM except with the wrong UT offset.
@@ -2294,7 +2334,7 @@
 #if NETBSD_INSPIRED
 
 time_t
-mktime_z(struct state *sp, struct tm *tmp)
+mktime_z(struct state *restrict sp, struct tm *restrict tmp)
 {
   return mktime_tzname(sp, tmp, false);
 }
@@ -2324,8 +2364,7 @@
   return t;
 }
 
-#ifdef STD_INSPIRED
-
+#if STD_INSPIRED
 time_t
 timelocal(struct tm *tmp)
 {
@@ -2333,13 +2372,9 @@
 		tmp->tm_isdst = -1;	/* in case it wasn't initialized */
 	return mktime(tmp);
 }
-
-time_t
-timegm(struct tm *tmp)
-{
-  return timeoff(tmp, 0);
-}
-
+#else
+static
+#endif
 time_t
 timeoff(struct tm *tmp, long offset)
 {
@@ -2349,7 +2384,18 @@
   return time1(tmp, gmtsub, gmtptr, offset);
 }
 
-#endif /* defined STD_INSPIRED */
+time_t
+timegm(struct tm *tmp)
+{
+  time_t t;
+  struct tm tmcpy;
+  mktmcpy(&tmcpy, tmp);
+  tmcpy.tm_wday = -1;
+  t = timeoff(&tmcpy, 0);
+  if (0 <= tmcpy.tm_wday)
+    *tmp = tmcpy;
+  return t;
+}
 
 static int_fast32_t
 leapcorr(struct state const *sp, time_t t)
@@ -2370,7 +2416,7 @@
 ** XXX--is the below the right way to conditionalize??
 */
 
-#ifdef STD_INSPIRED
+#if STD_INSPIRED
 
 /* NETBSD_INSPIRED_EXTERN functions are exported to callers if
    NETBSD_INSPIRED is defined, and are private otherwise.  */
@@ -2455,7 +2501,7 @@
   return t;
 }
 
-#endif /* defined STD_INSPIRED */
+#endif /* STD_INSPIRED */
 
 #if TZ_TIME_T
 
diff --git a/libc/tzcode/private.h b/libc/tzcode/private.h
index 4c03324..838ab2b 100644
--- a/libc/tzcode/private.h
+++ b/libc/tzcode/private.h
@@ -17,6 +17,36 @@
 ** Thank you!
 */
 
+/* PORT_TO_C89 means the code should work even if the underlying
+   compiler and library support only C89.  SUPPORT_C89 means the
+   tzcode library should support C89 callers in addition to the usual
+   support for C99-and-later callers.  These macros are obsolescent,
+   and the plan is to remove them along with any code needed only when
+   they are nonzero.  */
+#ifndef PORT_TO_C89
+# define PORT_TO_C89 0
+#endif
+#ifndef SUPPORT_C89
+# define SUPPORT_C89 0
+#endif
+
+#ifndef __STDC_VERSION__
+# define __STDC_VERSION__ 0
+#endif
+
+/* Define true, false and bool if they don't work out of the box.  */
+#if PORT_TO_C89 && __STDC_VERSION__ < 199901
+# define true 1
+# define false 0
+# define bool int
+#elif __STDC_VERSION__ < 202311
+# include <stdbool.h>
+#endif
+
+#if __STDC_VERSION__ < 202311
+# define static_assert(cond) extern int static_assert_check[(cond) ? 1 : -1]
+#endif
+
 /*
 ** zdump has been made independent of the rest of the time
 ** conversion package to increase confidence in the verification it provides.
@@ -36,79 +66,86 @@
 */
 
 #ifndef HAVE_DECL_ASCTIME_R
-#define HAVE_DECL_ASCTIME_R 1
+# define HAVE_DECL_ASCTIME_R 1
 #endif
 
-#if !defined HAVE_GENERIC && defined __has_extension
+#if !defined HAVE__GENERIC && defined __has_extension
 # if __has_extension(c_generic_selections)
-#  define HAVE_GENERIC 1
+#  define HAVE__GENERIC 1
 # else
-#  define HAVE_GENERIC 0
+#  define HAVE__GENERIC 0
 # endif
 #endif
 /* _Generic is buggy in pre-4.9 GCC.  */
-#if !defined HAVE_GENERIC && defined __GNUC__
-# define HAVE_GENERIC (4 < __GNUC__ + (9 <= __GNUC_MINOR__))
+#if !defined HAVE__GENERIC && defined __GNUC__ && !defined __STRICT_ANSI__
+# define HAVE__GENERIC (4 < __GNUC__ + (9 <= __GNUC_MINOR__))
 #endif
-#ifndef HAVE_GENERIC
-# define HAVE_GENERIC (201112 <= __STDC_VERSION__)
+#ifndef HAVE__GENERIC
+# define HAVE__GENERIC (201112 <= __STDC_VERSION__)
 #endif
 
+#if !defined HAVE_GETTEXT && defined __has_include
+# if __has_include(<libintl.h>)
+#  define HAVE_GETTEXT true
+# endif
+#endif
 #ifndef HAVE_GETTEXT
-#define HAVE_GETTEXT		0
-#endif /* !defined HAVE_GETTEXT */
+# define HAVE_GETTEXT false
+#endif
 
 #ifndef HAVE_INCOMPATIBLE_CTIME_R
-#define HAVE_INCOMPATIBLE_CTIME_R	0
+# define HAVE_INCOMPATIBLE_CTIME_R 0
 #endif
 
 #ifndef HAVE_LINK
-#define HAVE_LINK		1
+# define HAVE_LINK 1
 #endif /* !defined HAVE_LINK */
 
 #ifndef HAVE_MALLOC_ERRNO
-#define HAVE_MALLOC_ERRNO 1
+# define HAVE_MALLOC_ERRNO 1
 #endif
 
 #ifndef HAVE_POSIX_DECLS
-#define HAVE_POSIX_DECLS 1
+# define HAVE_POSIX_DECLS 1
 #endif
 
-#ifndef HAVE_STDBOOL_H
-#define HAVE_STDBOOL_H (199901 <= __STDC_VERSION__)
+#ifndef HAVE_SETENV
+# define HAVE_SETENV 1
 #endif
 
 #ifndef HAVE_STRDUP
-#define HAVE_STRDUP 1
-#endif
-
-#ifndef HAVE_STRTOLL
-#define HAVE_STRTOLL 1
+# define HAVE_STRDUP 1
 #endif
 
 #ifndef HAVE_SYMLINK
-#define HAVE_SYMLINK		1
+# define HAVE_SYMLINK 1
 #endif /* !defined HAVE_SYMLINK */
 
+#if !defined HAVE_SYS_STAT_H && defined __has_include
+# if !__has_include(<sys/stat.h>)
+#  define HAVE_SYS_STAT_H false
+# endif
+#endif
 #ifndef HAVE_SYS_STAT_H
-#define HAVE_SYS_STAT_H		1
-#endif /* !defined HAVE_SYS_STAT_H */
+# define HAVE_SYS_STAT_H true
+#endif
 
+#if !defined HAVE_UNISTD_H && defined __has_include
+# if !__has_include(<unistd.h>)
+#  define HAVE_UNISTD_H false
+# endif
+#endif
 #ifndef HAVE_UNISTD_H
-#define HAVE_UNISTD_H		1
-#endif /* !defined HAVE_UNISTD_H */
-
-#ifndef HAVE_UTMPX_H
-#define HAVE_UTMPX_H		1
-#endif /* !defined HAVE_UTMPX_H */
+# define HAVE_UNISTD_H true
+#endif
 
 #ifndef NETBSD_INSPIRED
 # define NETBSD_INSPIRED 1
 #endif
 
 #if HAVE_INCOMPATIBLE_CTIME_R
-#define asctime_r _incompatible_asctime_r
-#define ctime_r _incompatible_ctime_r
+# define asctime_r _incompatible_asctime_r
+# define ctime_r _incompatible_ctime_r
 #endif /* HAVE_INCOMPATIBLE_CTIME_R */
 
 /* Enable tm_gmtoff, tm_zone, and environ on GNUish systems.  */
@@ -118,15 +155,17 @@
 /* Enable strtoimax on pre-C99 Solaris 11.  */
 #define __EXTENSIONS__ 1
 
-/* To avoid having 'stat' fail unnecessarily with errno == EOVERFLOW,
-   enable large files on GNUish systems ...  */
+/* On GNUish systems where time_t might be 32 or 64 bits, use 64.
+   On these platforms _FILE_OFFSET_BITS must also be 64; otherwise
+   setting _TIME_BITS to 64 does not work.  The code does not
+   otherwise rely on _FILE_OFFSET_BITS being 64, since it does not
+   use off_t or functions like 'stat' that depend on off_t.  */
 #ifndef _FILE_OFFSET_BITS
 # define _FILE_OFFSET_BITS 64
 #endif
-/* ... and on AIX ...  */
-#define _LARGE_FILES 1
-/* ... and enable large inode numbers on Mac OS X 10.5 and later.  */
-#define _DARWIN_USE_64_BIT_INODE 1
+#if !defined _TIME_BITS && _FILE_OFFSET_BITS == 64
+# define _TIME_BITS 64
+#endif
 
 /*
 ** Nested includes
@@ -157,8 +196,11 @@
 #undef tzalloc
 #undef tzfree
 
-#include <sys/types.h>	/* for time_t */
+#include <stddef.h>
 #include <string.h>
+#if !PORT_TO_C89
+# include <inttypes.h>
+#endif
 #include <limits.h>	/* for CHAR_BIT et al. */
 #include <stdlib.h>
 
@@ -168,6 +210,9 @@
 # define EINVAL ERANGE
 #endif
 
+#ifndef ELOOP
+# define ELOOP EINVAL
+#endif
 #ifndef ENAMETOOLONG
 # define ENAMETOOLONG EINVAL
 #endif
@@ -182,11 +227,11 @@
 #endif
 
 #if HAVE_GETTEXT
-#include <libintl.h>
+# include <libintl.h>
 #endif /* HAVE_GETTEXT */
 
 #if HAVE_UNISTD_H
-#include <unistd.h>	/* for R_OK, and other POSIX goodness */
+# include <unistd.h> /* for R_OK, and other POSIX goodness */
 #endif /* HAVE_UNISTD_H */
 
 #ifndef HAVE_STRFTIME_L
@@ -222,24 +267,29 @@
 #endif
 
 #ifndef R_OK
-#define R_OK	4
+# define R_OK 4
 #endif /* !defined R_OK */
 
+#if PORT_TO_C89
+
 /*
 ** Define HAVE_STDINT_H's default value here, rather than at the
 ** start, since __GLIBC__ and INTMAX_MAX's values depend on
-** previously-included files.  glibc 2.1 and Solaris 10 and later have
+** previously included files.  glibc 2.1 and Solaris 10 and later have
 ** stdint.h, even with pre-C99 compilers.
 */
+#if !defined HAVE_STDINT_H && defined __has_include
+# define HAVE_STDINT_H true /* C23 __has_include implies C99 stdint.h.  */
+#endif
 #ifndef HAVE_STDINT_H
-#define HAVE_STDINT_H \
+# define HAVE_STDINT_H \
    (199901 <= __STDC_VERSION__ \
-    || 2 < __GLIBC__ + (1 <= __GLIBC_MINOR__)	\
+    || 2 < __GLIBC__ + (1 <= __GLIBC_MINOR__) \
     || __CYGWIN__ || INTMAX_MAX)
 #endif /* !defined HAVE_STDINT_H */
 
 #if HAVE_STDINT_H
-#include <stdint.h>
+# include <stdint.h>
 #endif /* !HAVE_STDINT_H */
 
 #ifndef HAVE_INTTYPES_H
@@ -250,36 +300,36 @@
 #endif
 
 /* Pre-C99 GCC compilers define __LONG_LONG_MAX__ instead of LLONG_MAX.  */
-#ifdef __LONG_LONG_MAX__
+#if defined __LONG_LONG_MAX__ && !defined __STRICT_ANSI__
 # ifndef LLONG_MAX
 #  define LLONG_MAX __LONG_LONG_MAX__
 # endif
 # ifndef LLONG_MIN
 #  define LLONG_MIN (-1 - LLONG_MAX)
 # endif
+# ifndef ULLONG_MAX
+#  define ULLONG_MAX (LLONG_MAX * 2ull + 1)
+# endif
 #endif
 
 #ifndef INT_FAST64_MAX
-# ifdef LLONG_MAX
-typedef long long	int_fast64_t;
-#  define INT_FAST64_MIN LLONG_MIN
-#  define INT_FAST64_MAX LLONG_MAX
-# else
-#  if LONG_MAX >> 31 < 0xffffffff
-Please use a compiler that supports a 64-bit integer type (or wider);
-you may need to compile with "-DHAVE_STDINT_H".
-#  endif
-typedef long		int_fast64_t;
+# if 1 <= LONG_MAX >> 31 >> 31
+typedef long int_fast64_t;
 #  define INT_FAST64_MIN LONG_MIN
 #  define INT_FAST64_MAX LONG_MAX
+# else
+/* If this fails, compile with -DHAVE_STDINT_H or with a better compiler.  */
+typedef long long int_fast64_t;
+#  define INT_FAST64_MIN LLONG_MIN
+#  define INT_FAST64_MAX LLONG_MAX
 # endif
 #endif
 
 #ifndef PRIdFAST64
-# if INT_FAST64_MAX == LLONG_MAX
-#  define PRIdFAST64 "lld"
-# else
+# if INT_FAST64_MAX == LONG_MAX
 #  define PRIdFAST64 "ld"
+# else
+#  define PRIdFAST64 "lld"
 # endif
 #endif
 
@@ -302,6 +352,9 @@
 #ifndef INTMAX_MAX
 # ifdef LLONG_MAX
 typedef long long intmax_t;
+#  ifndef HAVE_STRTOLL
+#   define HAVE_STRTOLL true
+#  endif
 #  if HAVE_STRTOLL
 #   define strtoimax strtoll
 #  endif
@@ -325,70 +378,183 @@
 # endif
 #endif
 
+#ifndef PTRDIFF_MAX
+# define PTRDIFF_MAX MAXVAL(ptrdiff_t, TYPE_BIT(ptrdiff_t))
+#endif
+
 #ifndef UINT_FAST32_MAX
 typedef unsigned long uint_fast32_t;
 #endif
 
 #ifndef UINT_FAST64_MAX
-# if defined ULLONG_MAX || defined __LONG_LONG_MAX__
-typedef unsigned long long uint_fast64_t;
+# if 3 <= ULONG_MAX >> 31 >> 31
+typedef unsigned long uint_fast64_t;
+#  define UINT_FAST64_MAX ULONG_MAX
 # else
-#  if ULONG_MAX >> 31 >> 1 < 0xffffffff
-Please use a compiler that supports a 64-bit integer type (or wider);
-you may need to compile with "-DHAVE_STDINT_H".
-#  endif
-typedef unsigned long	uint_fast64_t;
+/* If this fails, compile with -DHAVE_STDINT_H or with a better compiler.  */
+typedef unsigned long long uint_fast64_t;
+#  define UINT_FAST64_MAX ULLONG_MAX
 # endif
 #endif
 
 #ifndef UINTMAX_MAX
-# if defined ULLONG_MAX || defined __LONG_LONG_MAX__
+# ifdef ULLONG_MAX
 typedef unsigned long long uintmax_t;
+#  define UINTMAX_MAX ULLONG_MAX
 # else
 typedef unsigned long uintmax_t;
+#  define UINTMAX_MAX ULONG_MAX
 # endif
 #endif
 
 #ifndef PRIuMAX
-# if defined ULLONG_MAX || defined __LONG_LONG_MAX__
+# ifdef ULLONG_MAX
 #  define PRIuMAX "llu"
 # else
 #  define PRIuMAX "lu"
 # endif
 #endif
 
-#ifndef INT32_MAX
-#define INT32_MAX 0x7fffffff
-#endif /* !defined INT32_MAX */
-#ifndef INT32_MIN
-#define INT32_MIN (-1 - INT32_MAX)
-#endif /* !defined INT32_MIN */
-
 #ifndef SIZE_MAX
-#define SIZE_MAX ((size_t) -1)
+# define SIZE_MAX ((size_t) -1)
+#endif
+
+#endif /* PORT_TO_C89 */
+
+/* The maximum size of any created object, as a signed integer.
+   Although the C standard does not outright prohibit larger objects,
+   behavior is undefined if the result of pointer subtraction does not
+   fit into ptrdiff_t, and the code assumes in several places that
+   pointer subtraction works.  As a practical matter it's OK to not
+   support objects larger than this.  */
+#define INDEX_MAX ((ptrdiff_t) min(PTRDIFF_MAX, SIZE_MAX))
+
+/* Support ckd_add, ckd_sub, ckd_mul on C23 or recent-enough GCC-like
+   hosts, unless compiled with -DHAVE_STDCKDINT_H=0 or with pre-C23 EDG.  */
+#if !defined HAVE_STDCKDINT_H && defined __has_include
+# if __has_include(<stdckdint.h>)
+#  define HAVE_STDCKDINT_H true
+# endif
+#endif
+#ifdef HAVE_STDCKDINT_H
+# if HAVE_STDCKDINT_H
+#  include <stdckdint.h>
+# endif
+#elif defined __EDG__
+/* Do nothing, to work around EDG bug <https://bugs.gnu.org/53256>.  */
+#elif defined __has_builtin
+# if __has_builtin(__builtin_add_overflow)
+#  define ckd_add(r, a, b) __builtin_add_overflow(a, b, r)
+# endif
+# if __has_builtin(__builtin_sub_overflow)
+#  define ckd_sub(r, a, b) __builtin_sub_overflow(a, b, r)
+# endif
+# if __has_builtin(__builtin_mul_overflow)
+#  define ckd_mul(r, a, b) __builtin_mul_overflow(a, b, r)
+# endif
+#elif 7 <= __GNUC__
+# define ckd_add(r, a, b) __builtin_add_overflow(a, b, r)
+# define ckd_sub(r, a, b) __builtin_sub_overflow(a, b, r)
+# define ckd_mul(r, a, b) __builtin_mul_overflow(a, b, r)
 #endif
 
 #if 3 <= __GNUC__
-# define ATTRIBUTE_CONST __attribute__((const))
-# define ATTRIBUTE_MALLOC __attribute__((__malloc__))
-# define ATTRIBUTE_PURE __attribute__((__pure__))
-# define ATTRIBUTE_FORMAT(spec) __attribute__((__format__ spec))
+# define ATTRIBUTE_MALLOC __attribute__((malloc))
+# define ATTRIBUTE_FORMAT(spec) __attribute__((format spec))
 #else
-# define ATTRIBUTE_CONST /* empty */
 # define ATTRIBUTE_MALLOC /* empty */
-# define ATTRIBUTE_PURE /* empty */
 # define ATTRIBUTE_FORMAT(spec) /* empty */
 #endif
 
-#if !defined _Noreturn && __STDC_VERSION__ < 201112
-# if 2 < __GNUC__ + (8 <= __GNUC_MINOR__)
-#  define _Noreturn __attribute__((__noreturn__))
+#if (defined __has_c_attribute \
+     && (202311 <= __STDC_VERSION__ || !defined __STRICT_ANSI__))
+# define HAVE___HAS_C_ATTRIBUTE true
+#else
+# define HAVE___HAS_C_ATTRIBUTE false
+#endif
+
+#if HAVE___HAS_C_ATTRIBUTE
+# if __has_c_attribute(deprecated)
+#  define ATTRIBUTE_DEPRECATED [[deprecated]]
+# endif
+#endif
+#ifndef ATTRIBUTE_DEPRECATED
+# if 3 < __GNUC__ + (2 <= __GNUC_MINOR__)
+#  define ATTRIBUTE_DEPRECATED __attribute__((deprecated))
 # else
-#  define _Noreturn
+#  define ATTRIBUTE_DEPRECATED /* empty */
 # endif
 #endif
 
-#if __STDC_VERSION__ < 199901 && !defined restrict
+#if HAVE___HAS_C_ATTRIBUTE
+# if __has_c_attribute(fallthrough)
+#  define ATTRIBUTE_FALLTHROUGH [[fallthrough]]
+# endif
+#endif
+#ifndef ATTRIBUTE_FALLTHROUGH
+# if 7 <= __GNUC__
+#  define ATTRIBUTE_FALLTHROUGH __attribute__((fallthrough))
+# else
+#  define ATTRIBUTE_FALLTHROUGH ((void) 0)
+# endif
+#endif
+
+#if HAVE___HAS_C_ATTRIBUTE
+# if __has_c_attribute(maybe_unused)
+#  define ATTRIBUTE_MAYBE_UNUSED [[maybe_unused]]
+# endif
+#endif
+#ifndef ATTRIBUTE_MAYBE_UNUSED
+# if 2 < __GNUC__ + (7 <= __GNUC_MINOR__)
+#  define ATTRIBUTE_MAYBE_UNUSED __attribute__((unused))
+# else
+#  define ATTRIBUTE_MAYBE_UNUSED /* empty */
+# endif
+#endif
+
+#if HAVE___HAS_C_ATTRIBUTE
+# if __has_c_attribute(noreturn)
+#  define ATTRIBUTE_NORETURN [[noreturn]]
+# endif
+#endif
+#ifndef ATTRIBUTE_NORETURN
+# if 201112 <= __STDC_VERSION__
+#  define ATTRIBUTE_NORETURN _Noreturn
+# elif 2 < __GNUC__ + (8 <= __GNUC_MINOR__)
+#  define ATTRIBUTE_NORETURN __attribute__((noreturn))
+# else
+#  define ATTRIBUTE_NORETURN /* empty */
+# endif
+#endif
+
+#if HAVE___HAS_C_ATTRIBUTE
+# if __has_c_attribute(reproducible)
+#  define ATTRIBUTE_REPRODUCIBLE [[reproducible]]
+# endif
+#endif
+#ifndef ATTRIBUTE_REPRODUCIBLE
+# if 3 <= __GNUC__
+#  define ATTRIBUTE_REPRODUCIBLE __attribute__((pure))
+# else
+#  define ATTRIBUTE_REPRODUCIBLE /* empty */
+# endif
+#endif
+
+#if HAVE___HAS_C_ATTRIBUTE
+# if __has_c_attribute(unsequenced)
+#  define ATTRIBUTE_UNSEQUENCED [[unsequenced]]
+# endif
+#endif
+#ifndef ATTRIBUTE_UNSEQUENCED
+# if 3 <= __GNUC__
+#  define ATTRIBUTE_UNSEQUENCED __attribute__((const))
+# else
+#  define ATTRIBUTE_UNSEQUENCED /* empty */
+# endif
+#endif
+
+#if (__STDC_VERSION__ < 199901 && !defined restrict \
+     && (PORT_TO_C89 || defined _MSC_VER))
 # define restrict /* empty */
 #endif
 
@@ -505,11 +671,16 @@
 #  define altzone tz_altzone
 # endif
 
-char *asctime(struct tm const *);
+# if __STDC_VERSION__ < 202311
+#  define DEPRECATED_IN_C23 /* empty */
+# else
+#  define DEPRECATED_IN_C23 ATTRIBUTE_DEPRECATED
+# endif
+DEPRECATED_IN_C23 char *asctime(struct tm const *);
 char *asctime_r(struct tm const *restrict, char *restrict);
-char *ctime(time_t const *);
+DEPRECATED_IN_C23 char *ctime(time_t const *);
 char *ctime_r(time_t const *, char *);
-double difftime(time_t, time_t) ATTRIBUTE_CONST;
+ATTRIBUTE_UNSEQUENCED double difftime(time_t, time_t);
 size_t strftime(char *restrict, size_t, char const *restrict,
 		struct tm const *restrict);
 # if HAVE_STRFTIME_L
@@ -522,9 +693,24 @@
 struct tm *localtime_r(time_t const *restrict, struct tm *restrict);
 time_t mktime(struct tm *);
 time_t time(time_t *);
+time_t timegm(struct tm *);
 void tzset(void);
 #endif
 
+#ifndef HAVE_DECL_TIMEGM
+# if (202311 <= __STDC_VERSION__ \
+      || defined __GLIBC__ || defined __tm_zone /* musl */ \
+      || defined __FreeBSD__ || defined __NetBSD__ || defined __OpenBSD__ \
+      || (defined __APPLE__ && defined __MACH__))
+#  define HAVE_DECL_TIMEGM true
+# else
+#  define HAVE_DECL_TIMEGM false
+# endif
+#endif
+#if !HAVE_DECL_TIMEGM && !defined timegm
+time_t timegm(struct tm *);
+#endif
+
 #if !HAVE_DECL_ASCTIME_R && !defined asctime_r
 extern char *asctime_r(struct tm const *restrict, char *restrict);
 #endif
@@ -557,13 +743,13 @@
 ** declarations if time_tz is defined.
 */
 
-#ifdef STD_INSPIRED
+#ifndef STD_INSPIRED
+# define STD_INSPIRED 0
+#endif
+#if STD_INSPIRED
 # if TZ_TIME_T || !defined offtime
 struct tm *offtime(time_t const *, long);
 # endif
-# if TZ_TIME_T || !defined timegm
-time_t timegm(struct tm *);
-# endif
 # if TZ_TIME_T || !defined timelocal
 time_t timelocal(struct tm *);
 # endif
@@ -581,6 +767,7 @@
 /* Infer TM_ZONE on systems where this information is known, but suppress
    guessing if NO_TM_ZONE is defined.  Similarly for TM_GMTOFF.  */
 #if (defined __GLIBC__ \
+     || defined __tm_zone /* musl */ \
      || defined __FreeBSD__ || defined __NetBSD__ || defined __OpenBSD__ \
      || (defined __APPLE__ && defined __MACH__))
 # if !defined TM_GMTOFF && !defined NO_TM_GMTOFF
@@ -606,12 +793,12 @@
 time_t mktime_z(timezone_t restrict, struct tm *restrict);
 timezone_t tzalloc(char const *);
 void tzfree(timezone_t);
-# ifdef STD_INSPIRED
+# if STD_INSPIRED
 #  if TZ_TIME_T || !defined posix2time_z
-time_t posix2time_z(timezone_t, time_t) ATTRIBUTE_PURE;
+ATTRIBUTE_REPRODUCIBLE time_t posix2time_z(timezone_t, time_t);
 #  endif
 #  if TZ_TIME_T || !defined time2posix_z
-time_t time2posix_z(timezone_t, time_t) ATTRIBUTE_PURE;
+ATTRIBUTE_REPRODUCIBLE time_t time2posix_z(timezone_t, time_t);
 #  endif
 # endif
 #endif
@@ -620,18 +807,15 @@
 ** Finally, some convenience items.
 */
 
-#if HAVE_STDBOOL_H
-# include <stdbool.h>
-#else
-# define true 1
-# define false 0
-# define bool int
-#endif
-
-#define TYPE_BIT(type)	(sizeof(type) * CHAR_BIT)
+#define TYPE_BIT(type) (CHAR_BIT * (ptrdiff_t) sizeof(type))
 #define TYPE_SIGNED(type) (((type) -1) < 0)
 #define TWOS_COMPLEMENT(t) ((t) ~ (t) 0 < 0)
 
+/* Minimum and maximum of two values.  Use lower case to avoid
+   naming clashes with standard include files.  */
+#define max(a, b) ((a) > (b) ? (a) : (b))
+#define min(a, b) ((a) < (b) ? (a) : (b))
+
 /* Max and min values of the integer type T, of which only the bottom
    B bits are used, and where the highest-order used bit is considered
    to be a sign bit if T is signed.  */
@@ -651,7 +835,7 @@
    This implementation assumes no padding if time_t is signed and
    either the compiler lacks support for _Generic or time_t is not one
    of the standard signed integer types.  */
-#if HAVE_GENERIC
+#if HAVE__GENERIC
 # define TIME_T_MIN \
     _Generic((time_t) 0, \
 	     signed char: SCHAR_MIN, short: SHRT_MIN, \
@@ -664,10 +848,23 @@
 		int: INT_MAX, long: LONG_MAX, long long: LLONG_MAX, \
 		default: TIME_T_MAX_NO_PADDING)			    \
      : (time_t) -1)
+enum { SIGNED_PADDING_CHECK_NEEDED
+         = _Generic((time_t) 0,
+		    signed char: false, short: false,
+		    int: false, long: false, long long: false,
+		    default: true) };
 #else
 # define TIME_T_MIN TIME_T_MIN_NO_PADDING
 # define TIME_T_MAX TIME_T_MAX_NO_PADDING
+enum { SIGNED_PADDING_CHECK_NEEDED = true };
 #endif
+/* Try to check the padding assumptions.  Although TIME_T_MAX and the
+   following check can both have undefined behavior on oddball
+   platforms due to shifts exceeding widths of signed integers, these
+   platforms' compilers are likely to diagnose these issues in integer
+   constant expressions, so it shouldn't hurt to check statically.  */
+static_assert(! TYPE_SIGNED(time_t) || ! SIGNED_PADDING_CHECK_NEEDED
+	      || TIME_T_MAX >> (TYPE_BIT(time_t) - 2) == 1);
 
 /*
 ** 302 / 1000 is log10(2.0) rounded up.
@@ -689,21 +886,30 @@
 # define INITIALIZE(x)
 #endif
 
+/* Whether memory access must strictly follow the C standard.
+   If 0, it's OK to read uninitialized storage so long as the value is
+   not relied upon.  Defining it to 0 lets mktime access parts of
+   struct tm that might be uninitialized, as a heuristic when the
+   standard doesn't say what to return and when tm_gmtoff can help
+   mktime likely infer a better value.  */
 #ifndef UNINIT_TRAP
 # define UNINIT_TRAP 0
 #endif
 
 #ifdef DEBUG
-# define UNREACHABLE() abort()
-#elif 4 < __GNUC__ + (5 <= __GNUC_MINOR__)
-# define UNREACHABLE() __builtin_unreachable()
-#elif defined __has_builtin
-# if __has_builtin(__builtin_unreachable)
-#  define UNREACHABLE() __builtin_unreachable()
+# undef unreachable
+# define unreachable() abort()
+#elif !defined unreachable
+# ifdef __has_builtin
+#  if __has_builtin(__builtin_unreachable)
+#   define unreachable() __builtin_unreachable()
+#  endif
+# elif 4 < __GNUC__ + (5 <= __GNUC_MINOR__)
+#  define unreachable() __builtin_unreachable()
 # endif
-#endif
-#ifndef UNREACHABLE
-# define UNREACHABLE() ((void) 0)
+# ifndef unreachable
+#  define unreachable() ((void) 0)
+# endif
 #endif
 
 /*
@@ -725,53 +931,61 @@
 #if HAVE_INCOMPATIBLE_CTIME_R
 #undef asctime_r
 #undef ctime_r
-char *asctime_r(struct tm const *, char *);
+char *asctime_r(struct tm const *restrict, char *restrict);
 char *ctime_r(time_t const *, char *);
 #endif /* HAVE_INCOMPATIBLE_CTIME_R */
 
 /* Handy macros that are independent of tzfile implementation.  */
 
-#define SECSPERMIN	60
-#define MINSPERHOUR	60
-#define HOURSPERDAY	24
-#define DAYSPERWEEK	7
-#define DAYSPERNYEAR	365
-#define DAYSPERLYEAR	366
-#define SECSPERHOUR	(SECSPERMIN * MINSPERHOUR)
-#define SECSPERDAY	((int_fast32_t) SECSPERHOUR * HOURSPERDAY)
-#define MONSPERYEAR	12
+enum {
+  SECSPERMIN = 60,
+  MINSPERHOUR = 60,
+  SECSPERHOUR = SECSPERMIN * MINSPERHOUR,
+  HOURSPERDAY = 24,
+  DAYSPERWEEK = 7,
+  DAYSPERNYEAR = 365,
+  DAYSPERLYEAR = DAYSPERNYEAR + 1,
+  MONSPERYEAR = 12,
+  YEARSPERREPEAT = 400	/* years before a Gregorian repeat */
+};
 
-#define YEARSPERREPEAT		400	/* years before a Gregorian repeat */
+#define SECSPERDAY	((int_fast32_t) SECSPERHOUR * HOURSPERDAY)
+
 #define DAYSPERREPEAT		((int_fast32_t) 400 * 365 + 100 - 4 + 1)
 #define SECSPERREPEAT		((int_fast64_t) DAYSPERREPEAT * SECSPERDAY)
 #define AVGSECSPERYEAR		(SECSPERREPEAT / YEARSPERREPEAT)
 
-#define TM_SUNDAY	0
-#define TM_MONDAY	1
-#define TM_TUESDAY	2
-#define TM_WEDNESDAY	3
-#define TM_THURSDAY	4
-#define TM_FRIDAY	5
-#define TM_SATURDAY	6
+enum {
+  TM_SUNDAY,
+  TM_MONDAY,
+  TM_TUESDAY,
+  TM_WEDNESDAY,
+  TM_THURSDAY,
+  TM_FRIDAY,
+  TM_SATURDAY
+};
 
-#define TM_JANUARY	0
-#define TM_FEBRUARY	1
-#define TM_MARCH	2
-#define TM_APRIL	3
-#define TM_MAY		4
-#define TM_JUNE		5
-#define TM_JULY		6
-#define TM_AUGUST	7
-#define TM_SEPTEMBER	8
-#define TM_OCTOBER	9
-#define TM_NOVEMBER	10
-#define TM_DECEMBER	11
+enum {
+  TM_JANUARY,
+  TM_FEBRUARY,
+  TM_MARCH,
+  TM_APRIL,
+  TM_MAY,
+  TM_JUNE,
+  TM_JULY,
+  TM_AUGUST,
+  TM_SEPTEMBER,
+  TM_OCTOBER,
+  TM_NOVEMBER,
+  TM_DECEMBER
+};
 
-#define TM_YEAR_BASE	1900
-#define TM_WDAY_BASE	TM_MONDAY
-
-#define EPOCH_YEAR	1970
-#define EPOCH_WDAY	TM_THURSDAY
+enum {
+  TM_YEAR_BASE = 1900,
+  TM_WDAY_BASE = TM_MONDAY,
+  EPOCH_YEAR = 1970,
+  EPOCH_WDAY = TM_THURSDAY
+};
 
 #define isleap(y) (((y) % 4) == 0 && (((y) % 100) != 0 || ((y) % 400) == 0))
 
diff --git a/libc/tzcode/strftime.c b/libc/tzcode/strftime.c
index d04c5ba..4cde556 100644
--- a/libc/tzcode/strftime.c
+++ b/libc/tzcode/strftime.c
@@ -71,8 +71,6 @@
     const char *    date_fmt;
 };
 
-#define Locale  (&C_time_locale)
-
 static const struct lc_time_T   C_time_locale = {
     {
         "Jan", "Feb", "Mar", "Apr", "May", "Jun",
@@ -128,13 +126,14 @@
 static char *   _yconv(int, int, bool, bool, char *, const char *, int);
 
 #ifndef YEAR_2000_NAME
-#define YEAR_2000_NAME  "CHECK_STRFTIME_FORMATS_FOR_TWO_DIGIT_YEARS"
+# define YEAR_2000_NAME  "CHECK_STRFTIME_FORMATS_FOR_TWO_DIGIT_YEARS"
 #endif /* !defined YEAR_2000_NAME */
 
 #if HAVE_STRFTIME_L
 size_t
-strftime_l(char *s, size_t maxsize, char const *format, struct tm const *t,
-	   locale_t locale)
+strftime_l(char *restrict s, size_t maxsize, char const *restrict format,
+	   struct tm const *restrict t,
+	   ATTRIBUTE_MAYBE_UNUSED locale_t locale)
 {
   /* Just call strftime, as only the C locale is supported.  */
   return strftime(s, maxsize, format, t);
@@ -144,7 +143,8 @@
 #define FORCE_LOWER_CASE 0x100 /* Android extension. */
 
 size_t
-strftime(char *s, size_t maxsize, const char *format, const struct tm *t)
+strftime(char *restrict s, size_t maxsize, char const *restrict format,
+	 struct tm const *restrict t)
 {
     char *  p;
     int saved_errno = errno;
@@ -217,6 +217,8 @@
 _fmt(const char *format, const struct tm *t, char *pt,
         const char *ptlim, enum warn *warnp)
 {
+	struct lc_time_T const *Locale = &C_time_locale;
+
     for ( ; *format; ++format) {
         if (*format == '%') {
             int modifier = 0;
@@ -378,12 +380,21 @@
                     char buf[INT_STRLEN_MAXIMUM(time64_t) + 1] __attribute__((__uninitialized__));
                     time64_t    mkt;
 
-                    tm = *t;
+          					tm.tm_sec = t->tm_sec;
+					          tm.tm_min = t->tm_min;
+          					tm.tm_hour = t->tm_hour;
+					          tm.tm_mday = t->tm_mday;
+          					tm.tm_mon = t->tm_mon;
+					          tm.tm_year = t->tm_year;
+          					tm.tm_isdst = t->tm_isdst;
+#if defined TM_GMTOFF && ! UNINIT_TRAP
+					          tm.TM_GMTOFF = t->TM_GMTOFF;
+#endif
                     mkt = mktime64(&tm);
-					/* There is no portable, definitive
-					   test for whether whether mktime
-					   succeeded, so treat (time_t) -1 as
-					   the success that it might be.  */
+					/* If mktime fails, %s expands to the
+              value of (time_t) -1 as a failure
+              marker; this is better in practice
+              than strftime failing.  */
                     if (TYPE_SIGNED(time64_t)) {
                       intmax_t n = mkt;
                       sprintf(buf, "%"PRIdMAX, n);
@@ -607,19 +618,19 @@
 # endif
                 negative = diff < 0;
                 if (diff == 0) {
-#ifdef TM_ZONE
+# ifdef TM_ZONE
                   // Android-changed: do not use TM_ZONE as it is as it may be null.
                   {
                     const char* zone = _safe_tm_zone(t);
                     negative = zone[0] == '-';
                   }
-#else
+# else
                     negative = t->tm_isdst < 0;
-# if HAVE_TZNAME
+#  if HAVE_TZNAME
                     if (tzname[t->tm_isdst != 0][0] == '-')
                         negative = true;
+#  endif
 # endif
-#endif
                 }
                 if (negative) {
                     sign = "-";
@@ -748,7 +759,7 @@
     register int    lead;
     register int    trail;
 
-#define DIVISOR 100
+    int DIVISOR = 100;
     trail = a % DIVISOR + b % DIVISOR;
     lead = a / DIVISOR + b / DIVISOR + trail / DIVISOR;
     trail %= DIVISOR;
diff --git a/libc/tzcode/strptime.c b/libc/tzcode/strptime.c
index d31a501..20160c9 100644
--- a/libc/tzcode/strptime.c
+++ b/libc/tzcode/strptime.c
@@ -28,6 +28,8 @@
  * POSSIBILITY OF SUCH DAMAGE.
  */
 
+#include "private.h"
+
 #include <ctype.h>
 #include <errno.h>
 #include <limits.h>
@@ -37,7 +39,6 @@
 #include <time.h>
 
 #include "localedef.h"
-#include "private.h"
 #include "tzfile.h"
 
 // Android: ignore OpenBSD's DEF_WEAK() stuff.
@@ -67,8 +68,8 @@
 #define FIELD_TM_YDAY	(1 << 3)
 #define FIELD_TM_YEAR	(1 << 4)
 
-static char gmt[] = { "GMT" };
-static char utc[] = { "UTC" };
+static const char gmt[] = { "GMT" };
+static const char utc[] = { "UTC" };
 /* RFC-822/RFC-2822 */
 static const char * const nast[5] = {
        "EST",    "CST",    "MST",    "PST",    "\0\0\0"
@@ -96,6 +97,7 @@
 	return(_strptime(buf, fmt, tm, 1));
 }
 DEF_WEAK(strptime);
+__strong_alias(strptime_l, strptime);
 
 static char *
 _strptime(const char *buf, const char *fmt, struct tm *tm, int initialize)
diff --git a/libc/tzcode/tzfile.h b/libc/tzcode/tzfile.h
index c5f9967..7ac8b51 100644
--- a/libc/tzcode/tzfile.h
+++ b/libc/tzcode/tzfile.h
@@ -22,15 +22,15 @@
 */
 
 #ifndef TZDIR
-#define TZDIR	"/usr/share/zoneinfo" /* Time zone object file directory */
+# define TZDIR "/usr/share/zoneinfo" /* Time zone object file directory */
 #endif /* !defined TZDIR */
 
 #ifndef TZDEFAULT
-#define TZDEFAULT	"/etc/localtime"
+# define TZDEFAULT "/etc/localtime"
 #endif /* !defined TZDEFAULT */
 
 #ifndef TZDEFRULES
-#define TZDEFRULES	"posixrules"
+# define TZDEFRULES "posixrules"
 #endif /* !defined TZDEFRULES */
 
 
@@ -103,21 +103,25 @@
 */
 
 #ifndef TZ_MAX_TIMES
-#define TZ_MAX_TIMES	2000
+/* This must be at least 242 for Europe/London with 'zic -b fat'.  */
+# define TZ_MAX_TIMES 2000
 #endif /* !defined TZ_MAX_TIMES */
 
 #ifndef TZ_MAX_TYPES
-/* This must be at least 17 for Europe/Samara and Europe/Vilnius.  */
-#define TZ_MAX_TYPES	256 /* Limited by what (unsigned char)'s can hold */
+/* This must be at least 18 for Europe/Vilnius with 'zic -b fat'.  */
+# define TZ_MAX_TYPES 256 /* Limited by what (unsigned char)'s can hold */
 #endif /* !defined TZ_MAX_TYPES */
 
 #ifndef TZ_MAX_CHARS
-#define TZ_MAX_CHARS	50	/* Maximum number of abbreviation characters */
+/* This must be at least 40 for America/Anchorage.  */
+# define TZ_MAX_CHARS 50	/* Maximum number of abbreviation characters */
 				/* (limited by what unsigned chars can hold) */
 #endif /* !defined TZ_MAX_CHARS */
 
 #ifndef TZ_MAX_LEAPS
-#define TZ_MAX_LEAPS	50	/* Maximum number of leap second corrections */
+/* This must be at least 27 for leap seconds from 1972 through mid-2023.
+   There's a plan to discontinue leap seconds by 2035.  */
+# define TZ_MAX_LEAPS 50	/* Maximum number of leap second corrections */
 #endif /* !defined TZ_MAX_LEAPS */
 
 #define SECSPERMIN	60
diff --git a/libc/upstream-freebsd/android/include/libc_private.h b/libc/upstream-freebsd/android/include/libc_private.h
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/libc/upstream-freebsd/android/include/libc_private.h
diff --git a/libm/fenv-access.h b/libc/upstream-freebsd/android/include/xlocale_private.h
similarity index 88%
copy from libm/fenv-access.h
copy to libc/upstream-freebsd/android/include/xlocale_private.h
index 7acb34d..010d70c 100644
--- a/libm/fenv-access.h
+++ b/libc/upstream-freebsd/android/include/xlocale_private.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2021 The Android Open Source Project
+ * Copyright (C) 2023 The Android Open Source Project
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -28,6 +28,8 @@
 
 #pragma once
 
-#if defined(__x86_64__) || defined(__i386__)
-#pragma STDC FENV_ACCESS ON
-#endif
+#include <locale.h>
+
+#define __get_locale() LC_GLOBAL_LOCALE
+
+#define FIX_LOCALE(__l) /* Nothing. */
diff --git a/libc/upstream-freebsd/lib/libc/gen/ldexp.c b/libc/upstream-freebsd/lib/libc/gen/ldexp.c
deleted file mode 100644
index 887f673..0000000
--- a/libc/upstream-freebsd/lib/libc/gen/ldexp.c
+++ /dev/null
@@ -1,123 +0,0 @@
-/* @(#)s_scalbn.c 5.1 93/09/24 */
-/* @(#)fdlibm.h 5.1 93/09/24 */
-/*
- * ====================================================
- * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
- *
- * Developed at SunPro, a Sun Microsystems, Inc. business.
- * Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice
- * is preserved.
- * ====================================================
- */
-
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
-#include <sys/types.h>
-#include <machine/endian.h>
-#include <math.h>
-
-/* Bit fiddling routines copied from msun/src/math_private.h,v 1.15 */
-
-#if BYTE_ORDER == BIG_ENDIAN
-
-typedef union
-{
-  double value;
-  struct
-  {
-    u_int32_t msw;
-    u_int32_t lsw;
-  } parts;
-} ieee_double_shape_type;
-
-#endif
-
-#if BYTE_ORDER == LITTLE_ENDIAN
-
-typedef union
-{
-  double value;
-  struct
-  {
-    u_int32_t lsw;
-    u_int32_t msw;
-  } parts;
-} ieee_double_shape_type;
-
-#endif
-
-/* Get two 32 bit ints from a double.  */
-
-#define EXTRACT_WORDS(ix0,ix1,d)				\
-do {								\
-  ieee_double_shape_type ew_u;					\
-  ew_u.value = (d);						\
-  (ix0) = ew_u.parts.msw;					\
-  (ix1) = ew_u.parts.lsw;					\
-} while (0)
-
-/* Get the more significant 32 bit int from a double.  */
-
-#define GET_HIGH_WORD(i,d)					\
-do {								\
-  ieee_double_shape_type gh_u;					\
-  gh_u.value = (d);						\
-  (i) = gh_u.parts.msw;						\
-} while (0)
-
-/* Set the more significant 32 bits of a double from an int.  */
-
-#define SET_HIGH_WORD(d,v)					\
-do {								\
-  ieee_double_shape_type sh_u;					\
-  sh_u.value = (d);						\
-  sh_u.parts.msw = (v);						\
-  (d) = sh_u.value;						\
-} while (0)
-
-
-static const double
-two54   =  1.80143985094819840000e+16, /* 0x43500000, 0x00000000 */
-twom54  =  5.55111512312578270212e-17, /* 0x3C900000, 0x00000000 */
-huge   = 1.0e+300,
-tiny   = 1.0e-300;
-
-static double
-_copysign(double x, double y)
-{
-	u_int32_t hx,hy;
-	GET_HIGH_WORD(hx,x);
-	GET_HIGH_WORD(hy,y);
-	SET_HIGH_WORD(x,(hx&0x7fffffff)|(hy&0x80000000));
-	return x;
-}
-
-double
-ldexp(double x, int n)
-{
-	int32_t k,hx,lx;
-	EXTRACT_WORDS(hx,lx,x);
-        k = (hx&0x7ff00000)>>20;		/* extract exponent */
-        if (k==0) {				/* 0 or subnormal x */
-            if ((lx|(hx&0x7fffffff))==0) return x; /* +-0 */
-	    x *= two54;
-	    GET_HIGH_WORD(hx,x);
-	    k = ((hx&0x7ff00000)>>20) - 54;
-            if (n< -50000) return tiny*x; 	/*underflow*/
-	    }
-        if (k==0x7ff) return x+x;		/* NaN or Inf */
-        k = k+n;
-        if (k >  0x7fe) return huge*_copysign(huge,x); /* overflow  */
-        if (k > 0) 				/* normal result */
-	    {SET_HIGH_WORD(x,(hx&0x800fffff)|(k<<20)); return x;}
-        if (k <= -54) {
-            if (n > 50000) 	/* in case integer overflow in n+k */
-		return huge*_copysign(huge,x);	/*overflow*/
-	    else return tiny*_copysign(tiny,x); 	/*underflow*/
-	}
-        k += 54;				/* subnormal result */
-	SET_HIGH_WORD(x,(hx&0x800fffff)|(k<<20));
-        return x*twom54;
-}
diff --git a/libc/upstream-freebsd/lib/libc/locale/wcsftime.c b/libc/upstream-freebsd/lib/libc/locale/wcsftime.c
new file mode 100644
index 0000000..4fe6ad5
--- /dev/null
+++ b/libc/upstream-freebsd/lib/libc/locale/wcsftime.c
@@ -0,0 +1,124 @@
+/*-
+ * SPDX-License-Identifier: BSD-2-Clause
+ *
+ * Copyright (c) 2002 Tim J. Robbins
+ * All rights reserved.
+ *
+ * Copyright (c) 2011 The FreeBSD Foundation
+ *
+ * Portions of this software were developed by David Chisnall
+ * under sponsorship from the FreeBSD Foundation.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#include <sys/cdefs.h>
+__FBSDID("$FreeBSD$");
+
+#include <errno.h>
+#include <limits.h>
+#include <stdlib.h>
+#include <time.h>
+#include <wchar.h>
+#include "xlocale_private.h"
+
+/*
+ * Convert date and time to a wide-character string.
+ *
+ * This is the wide-character counterpart of strftime(). So that we do not
+ * have to duplicate the code of strftime(), we convert the format string to
+ * multibyte, call strftime(), then convert the result back into wide
+ * characters.
+ *
+ * This technique loses in the presence of stateful multibyte encoding if any
+ * of the conversions in the format string change conversion state. When
+ * stateful encoding is implemented, we will need to reset the state between
+ * format specifications in the format string.
+ */
+size_t
+wcsftime_l(wchar_t * __restrict wcs, size_t maxsize,
+	const wchar_t * __restrict format, const struct tm * __restrict timeptr,
+	locale_t locale)
+{
+	static const mbstate_t initial;
+	mbstate_t mbs;
+	char *dst, *sformat;
+	const char *dstp;
+	const wchar_t *formatp;
+	size_t n, sflen;
+	int sverrno;
+	FIX_LOCALE(locale);
+
+	sformat = dst = NULL;
+
+	/*
+	 * Convert the supplied format string to a multibyte representation
+	 * for strftime(), which only handles single-byte characters.
+	 */
+	mbs = initial;
+	formatp = format;
+	sflen = wcsrtombs_l(NULL, &formatp, 0, &mbs, locale);
+	if (sflen == (size_t)-1)
+		goto error;
+	if ((sformat = malloc(sflen + 1)) == NULL)
+		goto error;
+	mbs = initial;
+	wcsrtombs_l(sformat, &formatp, sflen + 1, &mbs, locale);
+
+	/*
+	 * Allocate memory for longest multibyte sequence that will fit
+	 * into the caller's buffer and call strftime() to fill it.
+	 * Then, copy and convert the result back into wide characters in
+	 * the caller's buffer.
+	 */
+	if (SIZE_T_MAX / MB_CUR_MAX <= maxsize) {
+		/* maxsize is prepostorously large - avoid int. overflow. */
+		errno = EINVAL;
+		goto error;
+	}
+	if ((dst = malloc(maxsize * MB_CUR_MAX)) == NULL)
+		goto error;
+	if (strftime_l(dst, maxsize, sformat, timeptr, locale) == 0)
+		goto error;
+	dstp = dst;
+	mbs = initial;
+	n = mbsrtowcs_l(wcs, &dstp, maxsize, &mbs, locale);
+	if (n == (size_t)-2 || n == (size_t)-1 || dstp != NULL)
+		goto error;
+
+	free(sformat);
+	free(dst);
+	return (n);
+
+error:
+	sverrno = errno;
+	free(sformat);
+	free(dst);
+	errno = sverrno;
+	return (0);
+}
+size_t
+wcsftime(wchar_t * __restrict wcs, size_t maxsize,
+	const wchar_t * __restrict format, const struct tm * __restrict timeptr)
+{
+	return wcsftime_l(wcs, maxsize, format, timeptr, __get_locale());
+}
diff --git a/libc/upstream-freebsd/lib/libc/stdlib/getopt_long.c b/libc/upstream-freebsd/lib/libc/stdlib/getopt_long.c
index 6a3067c..1f3548b 100644
--- a/libc/upstream-freebsd/lib/libc/stdlib/getopt_long.c
+++ b/libc/upstream-freebsd/lib/libc/stdlib/getopt_long.c
@@ -55,7 +55,7 @@
 #endif /* LIBC_SCCS and not lint */
 #endif
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: head/lib/libc/stdlib/getopt_long.c 342757 2019-01-04 03:13:24Z kevans $");
+__FBSDID("$FreeBSD$");
 
 #include <err.h>
 #include <errno.h>
@@ -88,7 +88,7 @@
 #define	BADARG		((*options == ':') ? (int)':' : (int)'?')
 #define	INORDER 	(int)1
 
-#define	EMSG		""
+static char EMSG[] = "";
 
 #ifdef GNU_COMPATIBLE
 #define NO_PREFIX	(-1)
@@ -194,7 +194,7 @@
 {
 	char *current_argv, *has_equal;
 #ifdef GNU_COMPATIBLE
-	char *current_dash;
+	const char *current_dash;
 #endif
 	size_t current_argv_len;
 	int i, match, exact_match, second_partial_match;
diff --git a/libc/upstream-freebsd/lib/libc/stdlib/hcreate.c b/libc/upstream-freebsd/lib/libc/stdlib/hcreate.c
index b175d34..c9a0847 100644
--- a/libc/upstream-freebsd/lib/libc/stdlib/hcreate.c
+++ b/libc/upstream-freebsd/lib/libc/stdlib/hcreate.c
@@ -1,5 +1,5 @@
 /*-
- * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+ * SPDX-License-Identifier: BSD-2-Clause
  *
  * Copyright (c) 2015 Nuxi, https://nuxi.nl/
  *
@@ -26,7 +26,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: head/lib/libc/stdlib/hcreate.c 326193 2017-11-25 17:12:48Z pfg $");
+__FBSDID("$FreeBSD$");
 
 #include <search.h>
 #include <stdbool.h>
diff --git a/libc/upstream-freebsd/lib/libc/stdlib/hcreate_r.c b/libc/upstream-freebsd/lib/libc/stdlib/hcreate_r.c
index 34db88e..83e322a 100644
--- a/libc/upstream-freebsd/lib/libc/stdlib/hcreate_r.c
+++ b/libc/upstream-freebsd/lib/libc/stdlib/hcreate_r.c
@@ -24,7 +24,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: head/lib/libc/stdlib/hcreate_r.c 292767 2015-12-27 07:50:11Z ed $");
+__FBSDID("$FreeBSD$");
 
 #include <search.h>
 #include <stdlib.h>
diff --git a/libc/upstream-freebsd/lib/libc/stdlib/hdestroy_r.c b/libc/upstream-freebsd/lib/libc/stdlib/hdestroy_r.c
index 76d8a42..890bd08 100644
--- a/libc/upstream-freebsd/lib/libc/stdlib/hdestroy_r.c
+++ b/libc/upstream-freebsd/lib/libc/stdlib/hdestroy_r.c
@@ -24,7 +24,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: head/lib/libc/stdlib/hdestroy_r.c 292767 2015-12-27 07:50:11Z ed $");
+__FBSDID("$FreeBSD$");
 
 #include <search.h>
 #include <stdlib.h>
diff --git a/libc/upstream-freebsd/lib/libc/stdlib/hsearch.h b/libc/upstream-freebsd/lib/libc/stdlib/hsearch.h
index a0542b5..649933d 100644
--- a/libc/upstream-freebsd/lib/libc/stdlib/hsearch.h
+++ b/libc/upstream-freebsd/lib/libc/stdlib/hsearch.h
@@ -22,7 +22,7 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $FreeBSD: head/lib/libc/stdlib/hsearch.h 292767 2015-12-27 07:50:11Z ed $
+ * $FreeBSD$
  */
 
 #ifndef HSEARCH_H
diff --git a/libc/upstream-freebsd/lib/libc/stdlib/hsearch_r.c b/libc/upstream-freebsd/lib/libc/stdlib/hsearch_r.c
index 9a859d3..2fb5991 100644
--- a/libc/upstream-freebsd/lib/libc/stdlib/hsearch_r.c
+++ b/libc/upstream-freebsd/lib/libc/stdlib/hsearch_r.c
@@ -24,7 +24,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: head/lib/libc/stdlib/hsearch_r.c 292767 2015-12-27 07:50:11Z ed $");
+__FBSDID("$FreeBSD$");
 
 #include <errno.h>
 #include <limits.h>
diff --git a/libc/upstream-freebsd/lib/libc/stdlib/qsort.c b/libc/upstream-freebsd/lib/libc/stdlib/qsort.c
index e0db4f3..0d65cd1 100644
--- a/libc/upstream-freebsd/lib/libc/stdlib/qsort.c
+++ b/libc/upstream-freebsd/lib/libc/stdlib/qsort.c
@@ -33,12 +33,20 @@
 static char sccsid[] = "@(#)qsort.c	8.1 (Berkeley) 6/4/93";
 #endif /* LIBC_SCCS and not lint */
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: head/lib/libc/stdlib/qsort.c 334928 2018-06-10 17:54:44Z kib $");
+__FBSDID("$FreeBSD$");
 
+#include <errno.h>
+#include <stdint.h>
 #include <stdlib.h>
+#include <string.h>
+#include "libc_private.h"
 
-#ifdef I_AM_QSORT_R
+#if defined(I_AM_QSORT_R)
+typedef int		 cmp_t(const void *, const void *, void *);
+#elif defined(I_AM_QSORT_R_COMPAT)
 typedef int		 cmp_t(void *, const void *, const void *);
+#elif defined(I_AM_QSORT_S)
+typedef int		 cmp_t(const void *, const void *, void *);
 #else
 typedef int		 cmp_t(const void *, const void *);
 #endif
@@ -65,15 +73,19 @@
 #define	vecswap(a, b, n)				\
 	if ((n) > 0) swapfunc(a, b, n)
 
-#ifdef I_AM_QSORT_R
+#if defined(I_AM_QSORT_R)
+#define	CMP(t, x, y) (cmp((x), (y), (t)))
+#elif defined(I_AM_QSORT_R_COMPAT)
 #define	CMP(t, x, y) (cmp((t), (x), (y)))
+#elif defined(I_AM_QSORT_S)
+#define	CMP(t, x, y) (cmp((x), (y), (t)))
 #else
 #define	CMP(t, x, y) (cmp((x), (y)))
 #endif
 
 static inline char *
 med3(char *a, char *b, char *c, cmp_t *cmp, void *thunk
-#ifndef I_AM_QSORT_R
+#if !defined(I_AM_QSORT_R) && !defined(I_AM_QSORT_R_COMPAT) && !defined(I_AM_QSORT_S)
 __unused
 #endif
 )
@@ -83,20 +95,28 @@
 	      :(CMP(thunk, b, c) > 0 ? b : (CMP(thunk, a, c) < 0 ? a : c ));
 }
 
-#ifdef I_AM_QSORT_R
-void
-qsort_r(void *a, size_t n, size_t es, void *thunk, cmp_t *cmp)
-#else
-#define	thunk NULL
-void
-qsort(void *a, size_t n, size_t es, cmp_t *cmp)
+/*
+ * The actual qsort() implementation is static to avoid preemptible calls when
+ * recursing. Also give them different names for improved debugging.
+ */
+#if defined(I_AM_QSORT_R)
+#define local_qsort local_qsort_r
+#elif defined(I_AM_QSORT_R_COMPAT)
+#define local_qsort local_qsort_r_compat
+#elif defined(I_AM_QSORT_S)
+#define local_qsort local_qsort_s
 #endif
+static void
+local_qsort(void *a, size_t n, size_t es, cmp_t *cmp, void *thunk)
 {
 	char *pa, *pb, *pc, *pd, *pl, *pm, *pn;
 	size_t d1, d2;
 	int cmp_result;
 	int swap_cnt;
 
+	/* if there are less than 2 elements, then sorting is not needed */
+	if (__predict_false(n < 2))
+		return;
 loop:
 	swap_cnt = 0;
 	if (n < 7) {
@@ -160,7 +180,12 @@
 	pn = (char *)a + n * es;
 	d1 = MIN(pa - (char *)a, pb - pa);
 	vecswap(a, pb - d1, d1);
-	d1 = MIN(pd - pc, pn - pd - es);
+	/*
+	 * Cast es to preserve signedness of right-hand side of MIN()
+	 * expression, to avoid sign ambiguity in the implied comparison.  es
+	 * is safely within [0, SSIZE_MAX].
+	 */
+	d1 = MIN(pd - pc, pn - pd - (ssize_t)es);
 	vecswap(pb, pn - d1, d1);
 
 	d1 = pb - pa;
@@ -168,11 +193,7 @@
 	if (d1 <= d2) {
 		/* Recurse on left partition, then iterate on right partition */
 		if (d1 > es) {
-#ifdef I_AM_QSORT_R
-			qsort_r(a, d1 / es, es, thunk, cmp);
-#else
-			qsort(a, d1 / es, es, cmp);
-#endif
+			local_qsort(a, d1 / es, es, cmp, thunk);
 		}
 		if (d2 > es) {
 			/* Iterate rather than recurse to save stack space */
@@ -184,11 +205,7 @@
 	} else {
 		/* Recurse on right partition, then iterate on left partition */
 		if (d2 > es) {
-#ifdef I_AM_QSORT_R
-			qsort_r(pn - d2, d2 / es, es, thunk, cmp);
-#else
-			qsort(pn - d2, d2 / es, es, cmp);
-#endif
+			local_qsort(pn - d2, d2 / es, es, cmp, thunk);
 		}
 		if (d1 > es) {
 			/* Iterate rather than recurse to save stack space */
@@ -198,3 +215,53 @@
 		}
 	}
 }
+
+#if defined(I_AM_QSORT_R)
+void
+(qsort_r)(void *a, size_t n, size_t es, cmp_t *cmp, void *thunk)
+{
+	local_qsort_r(a, n, es, cmp, thunk);
+}
+#elif defined(I_AM_QSORT_R_COMPAT)
+void
+__qsort_r_compat(void *a, size_t n, size_t es, void *thunk, cmp_t *cmp)
+{
+	local_qsort_r_compat(a, n, es, cmp, thunk);
+}
+#elif defined(I_AM_QSORT_S)
+errno_t
+qsort_s(void *a, rsize_t n, rsize_t es, cmp_t *cmp, void *thunk)
+{
+	if (n > RSIZE_MAX) {
+		__throw_constraint_handler_s("qsort_s : n > RSIZE_MAX", EINVAL);
+		return (EINVAL);
+	} else if (es > RSIZE_MAX) {
+		__throw_constraint_handler_s("qsort_s : es > RSIZE_MAX",
+		    EINVAL);
+		return (EINVAL);
+	} else if (n != 0) {
+		if (a == NULL) {
+			__throw_constraint_handler_s("qsort_s : a == NULL",
+			    EINVAL);
+			return (EINVAL);
+		} else if (cmp == NULL) {
+			__throw_constraint_handler_s("qsort_s : cmp == NULL",
+			    EINVAL);
+			return (EINVAL);
+		} else if (es <= 0) {
+			__throw_constraint_handler_s("qsort_s : es <= 0",
+			    EINVAL);
+			return (EINVAL);
+		}
+	}
+
+	local_qsort_s(a, n, es, cmp, thunk);
+	return (0);
+}
+#else
+void
+qsort(void *a, size_t n, size_t es, cmp_t *cmp)
+{
+	local_qsort(a, n, es, cmp, NULL);
+}
+#endif
diff --git a/libc/upstream-freebsd/lib/libc/stdlib/qsort_r.c b/libc/upstream-freebsd/lib/libc/stdlib/qsort_r.c
new file mode 100644
index 0000000..b382b40
--- /dev/null
+++ b/libc/upstream-freebsd/lib/libc/stdlib/qsort_r.c
@@ -0,0 +1,6 @@
+/*
+ * This file is in the public domain.  Originally written by Garrett
+ * A. Wollman.
+ */
+#define I_AM_QSORT_R
+#include "qsort.c"
diff --git a/libc/upstream-freebsd/lib/libc/stdlib/quick_exit.c b/libc/upstream-freebsd/lib/libc/stdlib/quick_exit.c
index 9e4e79d..d486b1a 100644
--- a/libc/upstream-freebsd/lib/libc/stdlib/quick_exit.c
+++ b/libc/upstream-freebsd/lib/libc/stdlib/quick_exit.c
@@ -1,5 +1,5 @@
 /*-
- * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+ * SPDX-License-Identifier: BSD-2-Clause
  *
  * Copyright (c) 2011 David Chisnall
  * All rights reserved.
@@ -25,7 +25,7 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $FreeBSD: head/lib/libc/stdlib/quick_exit.c 326193 2017-11-25 17:12:48Z pfg $
+ * $FreeBSD$
  */
 
 #include <sys/types.h>
diff --git a/libc/upstream-freebsd/lib/libc/string/memcpy.c b/libc/upstream-freebsd/lib/libc/string/memcpy.c
deleted file mode 100644
index ed03856..0000000
--- a/libc/upstream-freebsd/lib/libc/string/memcpy.c
+++ /dev/null
@@ -1,5 +0,0 @@
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
-#define	MEMCOPY
-#include "bcopy.c"
diff --git a/libc/upstream-freebsd/lib/libc/string/memmove.c b/libc/upstream-freebsd/lib/libc/string/memmove.c
deleted file mode 100644
index 05cf75a..0000000
--- a/libc/upstream-freebsd/lib/libc/string/memmove.c
+++ /dev/null
@@ -1,5 +0,0 @@
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
-#define	MEMMOVE
-#include "bcopy.c"
diff --git a/libc/upstream-freebsd/lib/libc/string/wcpcpy.c b/libc/upstream-freebsd/lib/libc/string/wcpcpy.c
index e040dba..41b7c51 100644
--- a/libc/upstream-freebsd/lib/libc/string/wcpcpy.c
+++ b/libc/upstream-freebsd/lib/libc/string/wcpcpy.c
@@ -35,7 +35,7 @@
 static char sccsid[] = "@(#)strcpy.c	8.1 (Berkeley) 6/4/93";
 #endif /* LIBC_SCCS and not lint */
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: head/lib/libc/string/wcpcpy.c 326025 2017-11-20 19:49:47Z pfg $");
+__FBSDID("$FreeBSD$");
 
 #include <wchar.h>
 
diff --git a/libc/upstream-freebsd/lib/libc/string/wcpncpy.c b/libc/upstream-freebsd/lib/libc/string/wcpncpy.c
index 8bf6e87..ccc64cd 100644
--- a/libc/upstream-freebsd/lib/libc/string/wcpncpy.c
+++ b/libc/upstream-freebsd/lib/libc/string/wcpncpy.c
@@ -1,5 +1,5 @@
 /*-
- * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+ * SPDX-License-Identifier: BSD-2-Clause
  *
  * Copyright (c) 2009 David Schultz <das@FreeBSD.org>
  * All rights reserved.
@@ -27,7 +27,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: head/lib/libc/string/wcpncpy.c 326193 2017-11-25 17:12:48Z pfg $");
+__FBSDID("$FreeBSD$");
 
 #include <wchar.h>
 
diff --git a/libc/upstream-freebsd/lib/libc/string/wcscasecmp.c b/libc/upstream-freebsd/lib/libc/string/wcscasecmp.c
index 5bd468d..03a61f8 100644
--- a/libc/upstream-freebsd/lib/libc/string/wcscasecmp.c
+++ b/libc/upstream-freebsd/lib/libc/string/wcscasecmp.c
@@ -1,5 +1,5 @@
 /*-
- * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+ * SPDX-License-Identifier: BSD-2-Clause
  *
  * Copyright (c) 2009 David Schultz <das@FreeBSD.org>
  * All rights reserved.
@@ -27,7 +27,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: head/lib/libc/string/wcscasecmp.c 326193 2017-11-25 17:12:48Z pfg $");
+__FBSDID("$FreeBSD$");
 
 #include <wchar.h>
 #include <wctype.h>
diff --git a/libc/upstream-freebsd/lib/libc/string/wcscat.c b/libc/upstream-freebsd/lib/libc/string/wcscat.c
index 792f61e..777a576 100644
--- a/libc/upstream-freebsd/lib/libc/string/wcscat.c
+++ b/libc/upstream-freebsd/lib/libc/string/wcscat.c
@@ -1,5 +1,5 @@
 /*-
- * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+ * SPDX-License-Identifier: BSD-2-Clause
  *
  * Copyright (c)1999 Citrus Project,
  * All rights reserved.
@@ -34,7 +34,7 @@
 __RCSID("$NetBSD: wcscat.c,v 1.1 2000/12/23 23:14:36 itojun Exp $");
 #endif /* LIBC_SCCS and not lint */
 #endif
-__FBSDID("$FreeBSD: head/lib/libc/string/wcscat.c 326193 2017-11-25 17:12:48Z pfg $");
+__FBSDID("$FreeBSD$");
 
 #include <wchar.h>
 
diff --git a/libc/upstream-freebsd/lib/libc/string/wcschr.c b/libc/upstream-freebsd/lib/libc/string/wcschr.c
index ca740c0..a7f1de0 100644
--- a/libc/upstream-freebsd/lib/libc/string/wcschr.c
+++ b/libc/upstream-freebsd/lib/libc/string/wcschr.c
@@ -1,5 +1,5 @@
 /*-
- * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+ * SPDX-License-Identifier: BSD-2-Clause
  *
  * Copyright (c) 2002 Tim J. Robbins
  * All rights reserved.
@@ -27,7 +27,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: head/lib/libc/string/wcschr.c 326193 2017-11-25 17:12:48Z pfg $");
+__FBSDID("$FreeBSD$");
 
 #include <wchar.h>
 
diff --git a/libc/upstream-freebsd/lib/libc/string/wcscmp.c b/libc/upstream-freebsd/lib/libc/string/wcscmp.c
index db01892..7205238 100644
--- a/libc/upstream-freebsd/lib/libc/string/wcscmp.c
+++ b/libc/upstream-freebsd/lib/libc/string/wcscmp.c
@@ -39,7 +39,7 @@
 __RCSID("$NetBSD: wcscmp.c,v 1.3 2001/01/05 12:13:12 itojun Exp $");
 #endif
 #endif /* LIBC_SCCS and not lint */
-__FBSDID("$FreeBSD: head/lib/libc/string/wcscmp.c 326025 2017-11-20 19:49:47Z pfg $");
+__FBSDID("$FreeBSD$");
 
 #include <wchar.h>
 
diff --git a/libc/upstream-freebsd/lib/libc/string/wcscpy.c b/libc/upstream-freebsd/lib/libc/string/wcscpy.c
index a639e74..b400fae 100644
--- a/libc/upstream-freebsd/lib/libc/string/wcscpy.c
+++ b/libc/upstream-freebsd/lib/libc/string/wcscpy.c
@@ -34,7 +34,7 @@
 __RCSID("$NetBSD: wcscpy.c,v 1.1 2000/12/23 23:14:36 itojun Exp $");
 #endif /* LIBC_SCCS and not lint */
 #endif
-__FBSDID("$FreeBSD: head/lib/libc/string/wcscpy.c 326193 2017-11-25 17:12:48Z pfg $");
+__FBSDID("$FreeBSD$");
 
 #include <wchar.h>
 
diff --git a/libc/upstream-freebsd/lib/libc/string/wcscspn.c b/libc/upstream-freebsd/lib/libc/string/wcscspn.c
index 8a7682f..a0db715 100644
--- a/libc/upstream-freebsd/lib/libc/string/wcscspn.c
+++ b/libc/upstream-freebsd/lib/libc/string/wcscspn.c
@@ -34,7 +34,7 @@
 __RCSID("$NetBSD: wcscspn.c,v 1.1 2000/12/23 23:14:36 itojun Exp $");
 #endif /* LIBC_SCCS and not lint */
 #endif
-__FBSDID("$FreeBSD: head/lib/libc/string/wcscspn.c 326193 2017-11-25 17:12:48Z pfg $");
+__FBSDID("$FreeBSD$");
 
 #include <wchar.h>
 
diff --git a/libc/upstream-freebsd/lib/libc/string/wcsdup.c b/libc/upstream-freebsd/lib/libc/string/wcsdup.c
index b97f766..327574b 100644
--- a/libc/upstream-freebsd/lib/libc/string/wcsdup.c
+++ b/libc/upstream-freebsd/lib/libc/string/wcsdup.c
@@ -1,5 +1,5 @@
 /*-
- * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+ * SPDX-License-Identifier: BSD-2-Clause
  *
  * Copyright (c) 2005 Tim J. Robbins.
  * All rights reserved.
@@ -27,7 +27,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: head/lib/libc/string/wcsdup.c 326193 2017-11-25 17:12:48Z pfg $");
+__FBSDID("$FreeBSD$");
 
 #include <stdlib.h>
 #include <wchar.h>
diff --git a/libc/upstream-freebsd/lib/libc/string/wcslcat.c b/libc/upstream-freebsd/lib/libc/string/wcslcat.c
index 9706fa6..f954b73 100644
--- a/libc/upstream-freebsd/lib/libc/string/wcslcat.c
+++ b/libc/upstream-freebsd/lib/libc/string/wcslcat.c
@@ -35,7 +35,7 @@
 __RCSID("$NetBSD: wcslcat.c,v 1.1 2000/12/23 23:14:36 itojun Exp $");
 #endif /* LIBC_SCCS and not lint */
 #endif
-__FBSDID("$FreeBSD: head/lib/libc/string/wcslcat.c 326193 2017-11-25 17:12:48Z pfg $");
+__FBSDID("$FreeBSD$");
 
 #include <sys/types.h>
 #include <wchar.h>
diff --git a/libc/upstream-freebsd/lib/libc/string/wcslen.c b/libc/upstream-freebsd/lib/libc/string/wcslen.c
index c596825..cfd3aa2 100644
--- a/libc/upstream-freebsd/lib/libc/string/wcslen.c
+++ b/libc/upstream-freebsd/lib/libc/string/wcslen.c
@@ -34,7 +34,7 @@
 __RCSID("$NetBSD: wcslen.c,v 1.1 2000/12/23 23:14:36 itojun Exp $");
 #endif /* LIBC_SCCS and not lint */
 #endif
-__FBSDID("$FreeBSD: head/lib/libc/string/wcslen.c 326193 2017-11-25 17:12:48Z pfg $");
+__FBSDID("$FreeBSD$");
 
 #include <wchar.h>
 
diff --git a/libc/upstream-freebsd/lib/libc/string/wcsncasecmp.c b/libc/upstream-freebsd/lib/libc/string/wcsncasecmp.c
index a963444..39f58be 100644
--- a/libc/upstream-freebsd/lib/libc/string/wcsncasecmp.c
+++ b/libc/upstream-freebsd/lib/libc/string/wcsncasecmp.c
@@ -1,5 +1,5 @@
 /*-
- * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+ * SPDX-License-Identifier: BSD-2-Clause
  *
  * Copyright (c) 2009 David Schultz <das@FreeBSD.org>
  * All rights reserved.
@@ -27,7 +27,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: head/lib/libc/string/wcsncasecmp.c 326193 2017-11-25 17:12:48Z pfg $");
+__FBSDID("$FreeBSD$");
 
 #include <wchar.h>
 #include <wctype.h>
diff --git a/libc/upstream-freebsd/lib/libc/string/wcsncat.c b/libc/upstream-freebsd/lib/libc/string/wcsncat.c
index 0214af4..eb13fab 100644
--- a/libc/upstream-freebsd/lib/libc/string/wcsncat.c
+++ b/libc/upstream-freebsd/lib/libc/string/wcsncat.c
@@ -34,7 +34,7 @@
 __RCSID("$NetBSD: wcsncat.c,v 1.1 2000/12/23 23:14:36 itojun Exp $");
 #endif /* LIBC_SCCS and not lint */
 #endif
-__FBSDID("$FreeBSD: head/lib/libc/string/wcsncat.c 326193 2017-11-25 17:12:48Z pfg $");
+__FBSDID("$FreeBSD$");
 
 #include <wchar.h>
 
diff --git a/libc/upstream-freebsd/lib/libc/string/wcsncmp.c b/libc/upstream-freebsd/lib/libc/string/wcsncmp.c
index 77b709c..55c88f6 100644
--- a/libc/upstream-freebsd/lib/libc/string/wcsncmp.c
+++ b/libc/upstream-freebsd/lib/libc/string/wcsncmp.c
@@ -36,7 +36,7 @@
 __RCSID("$NetBSD: wcsncmp.c,v 1.3 2001/01/05 12:13:13 itojun Exp $");
 #endif /* LIBC_SCCS and not lint */
 #endif
-__FBSDID("$FreeBSD: head/lib/libc/string/wcsncmp.c 326025 2017-11-20 19:49:47Z pfg $");
+__FBSDID("$FreeBSD$");
 
 #include <wchar.h>
 
diff --git a/libc/upstream-freebsd/lib/libc/string/wcsncpy.c b/libc/upstream-freebsd/lib/libc/string/wcsncpy.c
index 4075ecc..f86e40f 100644
--- a/libc/upstream-freebsd/lib/libc/string/wcsncpy.c
+++ b/libc/upstream-freebsd/lib/libc/string/wcsncpy.c
@@ -38,7 +38,7 @@
 #endif /* LIBC_SCCS and not lint */
 #endif
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: head/lib/libc/string/wcsncpy.c 326025 2017-11-20 19:49:47Z pfg $");
+__FBSDID("$FreeBSD$");
 
 #include <wchar.h>
 
diff --git a/libc/upstream-freebsd/lib/libc/string/wcsnlen.c b/libc/upstream-freebsd/lib/libc/string/wcsnlen.c
index 271d341..15fd520 100644
--- a/libc/upstream-freebsd/lib/libc/string/wcsnlen.c
+++ b/libc/upstream-freebsd/lib/libc/string/wcsnlen.c
@@ -1,5 +1,5 @@
 /*-
- * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+ * SPDX-License-Identifier: BSD-2-Clause
  *
  * Copyright (c) 2009 David Schultz <das@FreeBSD.org>
  * All rights reserved.
@@ -27,7 +27,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: head/lib/libc/string/wcsnlen.c 326193 2017-11-25 17:12:48Z pfg $");
+__FBSDID("$FreeBSD$");
 
 #include <wchar.h>
 
diff --git a/libc/upstream-freebsd/lib/libc/string/wcspbrk.c b/libc/upstream-freebsd/lib/libc/string/wcspbrk.c
index 63efb01..0e9ccf6 100644
--- a/libc/upstream-freebsd/lib/libc/string/wcspbrk.c
+++ b/libc/upstream-freebsd/lib/libc/string/wcspbrk.c
@@ -34,7 +34,7 @@
 __RCSID("$NetBSD: wcspbrk.c,v 1.1 2000/12/23 23:14:37 itojun Exp $");
 #endif /* LIBC_SCCS and not lint */
 #endif
-__FBSDID("$FreeBSD: head/lib/libc/string/wcspbrk.c 326193 2017-11-25 17:12:48Z pfg $");
+__FBSDID("$FreeBSD$");
 
 #include <wchar.h>
 
diff --git a/libc/upstream-freebsd/lib/libc/string/wcsrchr.c b/libc/upstream-freebsd/lib/libc/string/wcsrchr.c
index 97665ca..cc5e7f2 100644
--- a/libc/upstream-freebsd/lib/libc/string/wcsrchr.c
+++ b/libc/upstream-freebsd/lib/libc/string/wcsrchr.c
@@ -1,5 +1,5 @@
 /*-
- * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+ * SPDX-License-Identifier: BSD-2-Clause
  *
  * Copyright (c) 2002 Tim J. Robbins
  * All rights reserved.
@@ -27,7 +27,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: head/lib/libc/string/wcsrchr.c 326193 2017-11-25 17:12:48Z pfg $");
+__FBSDID("$FreeBSD$");
 
 #include <wchar.h>
 
diff --git a/libc/upstream-freebsd/lib/libc/string/wcsspn.c b/libc/upstream-freebsd/lib/libc/string/wcsspn.c
index b08a39e..2b08acb 100644
--- a/libc/upstream-freebsd/lib/libc/string/wcsspn.c
+++ b/libc/upstream-freebsd/lib/libc/string/wcsspn.c
@@ -34,7 +34,7 @@
 __RCSID("$NetBSD: wcsspn.c,v 1.1 2000/12/23 23:14:37 itojun Exp $");
 #endif /* LIBC_SCCS and not lint */
 #endif
-__FBSDID("$FreeBSD: head/lib/libc/string/wcsspn.c 326193 2017-11-25 17:12:48Z pfg $");
+__FBSDID("$FreeBSD$");
 
 #include <wchar.h>
 
diff --git a/libc/upstream-freebsd/lib/libc/string/wcsstr.c b/libc/upstream-freebsd/lib/libc/string/wcsstr.c
index 4309025..74921fe 100644
--- a/libc/upstream-freebsd/lib/libc/string/wcsstr.c
+++ b/libc/upstream-freebsd/lib/libc/string/wcsstr.c
@@ -38,7 +38,7 @@
 #endif /* LIBC_SCCS and not lint */
 #endif
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: head/lib/libc/string/wcsstr.c 326025 2017-11-20 19:49:47Z pfg $");
+__FBSDID("$FreeBSD$");
 
 #include <wchar.h>
 
diff --git a/libc/upstream-freebsd/lib/libc/string/wcstok.c b/libc/upstream-freebsd/lib/libc/string/wcstok.c
index 8d62bf7..b4bdc86 100644
--- a/libc/upstream-freebsd/lib/libc/string/wcstok.c
+++ b/libc/upstream-freebsd/lib/libc/string/wcstok.c
@@ -35,7 +35,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: head/lib/libc/string/wcstok.c 326025 2017-11-20 19:49:47Z pfg $");
+__FBSDID("$FreeBSD$");
 
 #include <wchar.h>
 
diff --git a/libc/upstream-freebsd/lib/libc/string/wmemchr.c b/libc/upstream-freebsd/lib/libc/string/wmemchr.c
index 412a276..42ae286 100644
--- a/libc/upstream-freebsd/lib/libc/string/wmemchr.c
+++ b/libc/upstream-freebsd/lib/libc/string/wmemchr.c
@@ -34,7 +34,7 @@
 __RCSID("$NetBSD: wmemchr.c,v 1.1 2000/12/23 23:14:37 itojun Exp $");
 #endif /* LIBC_SCCS and not lint */
 #endif
-__FBSDID("$FreeBSD: head/lib/libc/string/wmemchr.c 326193 2017-11-25 17:12:48Z pfg $");
+__FBSDID("$FreeBSD$");
 
 #include <wchar.h>
 
diff --git a/libc/upstream-freebsd/lib/libc/string/wmemcmp.c b/libc/upstream-freebsd/lib/libc/string/wmemcmp.c
index c1e9f3c..f1b1b00 100644
--- a/libc/upstream-freebsd/lib/libc/string/wmemcmp.c
+++ b/libc/upstream-freebsd/lib/libc/string/wmemcmp.c
@@ -34,7 +34,7 @@
 __RCSID("$NetBSD: wmemcmp.c,v 1.1 2000/12/23 23:14:37 itojun Exp $");
 #endif /* LIBC_SCCS and not lint */
 #endif
-__FBSDID("$FreeBSD: head/lib/libc/string/wmemcmp.c 326193 2017-11-25 17:12:48Z pfg $");
+__FBSDID("$FreeBSD$");
 
 #include <wchar.h>
 
diff --git a/libc/upstream-freebsd/lib/libc/string/wmemcpy.c b/libc/upstream-freebsd/lib/libc/string/wmemcpy.c
index e0d6c04..30956eb 100644
--- a/libc/upstream-freebsd/lib/libc/string/wmemcpy.c
+++ b/libc/upstream-freebsd/lib/libc/string/wmemcpy.c
@@ -34,7 +34,7 @@
 __RCSID("$NetBSD: wmemcpy.c,v 1.1 2000/12/23 23:14:37 itojun Exp $");
 #endif /* LIBC_SCCS and not lint */
 #endif
-__FBSDID("$FreeBSD: head/lib/libc/string/wmemcpy.c 326193 2017-11-25 17:12:48Z pfg $");
+__FBSDID("$FreeBSD$");
 
 #include <string.h>
 #include <wchar.h>
diff --git a/libc/upstream-freebsd/lib/libc/string/wmemmove.c b/libc/upstream-freebsd/lib/libc/string/wmemmove.c
index b84c2c0..5e8da9f 100644
--- a/libc/upstream-freebsd/lib/libc/string/wmemmove.c
+++ b/libc/upstream-freebsd/lib/libc/string/wmemmove.c
@@ -34,7 +34,7 @@
 __RCSID("$NetBSD: wmemmove.c,v 1.1 2000/12/23 23:14:37 itojun Exp $");
 #endif /* LIBC_SCCS and not lint */
 #endif
-__FBSDID("$FreeBSD: head/lib/libc/string/wmemmove.c 326193 2017-11-25 17:12:48Z pfg $");
+__FBSDID("$FreeBSD$");
 
 #include <string.h>
 #include <wchar.h>
diff --git a/libc/upstream-freebsd/lib/libc/string/wmemset.c b/libc/upstream-freebsd/lib/libc/string/wmemset.c
index d4d6308..fcf40ef 100644
--- a/libc/upstream-freebsd/lib/libc/string/wmemset.c
+++ b/libc/upstream-freebsd/lib/libc/string/wmemset.c
@@ -34,7 +34,7 @@
 __RCSID("$NetBSD: wmemset.c,v 1.1 2000/12/23 23:14:37 itojun Exp $");
 #endif /* LIBC_SCCS and not lint */
 #endif
-__FBSDID("$FreeBSD: head/lib/libc/string/wmemset.c 326193 2017-11-25 17:12:48Z pfg $");
+__FBSDID("$FreeBSD$");
 
 #include <wchar.h>
 
diff --git a/libc/upstream-netbsd/lib/libc/regex/regcomp.c b/libc/upstream-netbsd/lib/libc/regex/regcomp.c
index 957f8ac..86321c1 100644
--- a/libc/upstream-netbsd/lib/libc/regex/regcomp.c
+++ b/libc/upstream-netbsd/lib/libc/regex/regcomp.c
@@ -1,4 +1,4 @@
-/*	$NetBSD: regcomp.c,v 1.46 2021/03/11 15:00:29 christos Exp $	*/
+/*	$NetBSD: regcomp.c,v 1.47 2022/12/21 17:44:15 wiz Exp $	*/
 
 /*-
  * SPDX-License-Identifier: BSD-3-Clause
@@ -51,9 +51,7 @@
 static char sccsid[] = "@(#)regcomp.c	8.5 (Berkeley) 3/20/94";
 __FBSDID("$FreeBSD: head/lib/libc/regex/regcomp.c 368359 2020-12-05 03:18:48Z kevans $");
 #endif
-__RCSID("$NetBSD: regcomp.c,v 1.46 2021/03/11 15:00:29 christos Exp $");
-
-#define _OPENBSD_SOURCE
+__RCSID("$NetBSD: regcomp.c,v 1.47 2022/12/21 17:44:15 wiz Exp $");
 
 #ifndef LIBHACK
 #define REGEX_GNU_EXTENSIONS
diff --git a/libc/upstream-netbsd/lib/libc/stdlib/bsearch.c b/libc/upstream-netbsd/lib/libc/stdlib/bsearch.c
deleted file mode 100644
index e48fe85..0000000
--- a/libc/upstream-netbsd/lib/libc/stdlib/bsearch.c
+++ /dev/null
@@ -1,85 +0,0 @@
-/*	$NetBSD: bsearch.c,v 1.16 2022/05/31 08:43:14 andvar Exp $	*/
-
-/*
- * Copyright (c) 1990, 1993
- *	The Regents of the University of California.  All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the University nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#include <sys/cdefs.h>
-#if defined(LIBC_SCCS) && !defined(lint)
-#if 0
-static char sccsid[] = "@(#)bsearch.c	8.1 (Berkeley) 6/4/93";
-#else
-__RCSID("$NetBSD: bsearch.c,v 1.16 2022/05/31 08:43:14 andvar Exp $");
-#endif
-#endif /* LIBC_SCCS and not lint */
-
-#include <assert.h>
-#include <errno.h>
-#include <stdlib.h>
-
-/*
- * Perform a binary search.
- *
- * The code below is a bit sneaky.  After a comparison fails, we
- * divide the work in half by moving either left or right. If lim
- * is odd, moving left simply involves halving lim: e.g., when lim
- * is 5 we look at item 2, so we change lim to 2 so that we will
- * look at items 0 & 1.  If lim is even, the same applies.  If lim
- * is odd, moving right again involves halving lim, this time moving
- * the base up one item past p: e.g., when lim is 5 we change base
- * to item 3 and make lim 2 so that we will look at items 3 and 4.
- * If lim is even, however, we have to shrink it by one before
- * halving: e.g., when lim is 4, we still looked at item 2, so we
- * have to make lim 3, then halve, obtaining 1, so that we will only
- * look at item 3.
- */
-void *
-bsearch(const void *key, const void *base0, size_t nmemb, size_t size,
-    int (*compar)(const void *, const void *))
-{
-	const char *base = base0;
-	size_t lim;
-	int cmp;
-	const void *p;
-
-	_DIAGASSERT(key != NULL);
-	_DIAGASSERT(base0 != NULL || nmemb == 0);
-	_DIAGASSERT(compar != NULL);
-
-	for (lim = nmemb; lim != 0; lim >>= 1) {
-		p = base + (lim >> 1) * size;
-		cmp = (*compar)(key, p);
-		if (cmp == 0)
-			return __UNCONST(p);
-		if (cmp > 0) {	/* key > p: move right */
-			base = (const char *)p + size;
-			lim--;
-		}		/* else move left */
-	}
-	return (NULL);
-}
diff --git a/libc/upstream-netbsd/android/include/rand48.h b/libc/upstream-netbsd/lib/libc/stdlib/rand48.h
similarity index 80%
rename from libc/upstream-netbsd/android/include/rand48.h
rename to libc/upstream-netbsd/lib/libc/stdlib/rand48.h
index 1279906..1ad8b0d 100644
--- a/libc/upstream-netbsd/android/include/rand48.h
+++ b/libc/upstream-netbsd/lib/libc/stdlib/rand48.h
@@ -18,10 +18,10 @@
 
 #include <stdlib.h>
 
-__LIBC_HIDDEN__ void		__dorand48(unsigned short[3]);
-__LIBC_HIDDEN__ unsigned short	__rand48_seed[3];
-__LIBC_HIDDEN__ unsigned short	__rand48_mult[3];
-__LIBC_HIDDEN__ unsigned short	__rand48_add;
+extern void		__dorand48(unsigned short[3]);
+extern unsigned short	__rand48_seed[3];
+extern unsigned short	__rand48_mult[3];
+extern unsigned short	__rand48_add;
 
 #define	RAND48_SEED_0	(0x330e)
 #define	RAND48_SEED_1	(0xabcd)
diff --git a/libc/upstream-openbsd/android/include/openbsd-compat.h b/libc/upstream-openbsd/android/include/openbsd-compat.h
index 8e6f87d..ac6840a 100644
--- a/libc/upstream-openbsd/android/include/openbsd-compat.h
+++ b/libc/upstream-openbsd/android/include/openbsd-compat.h
@@ -25,8 +25,6 @@
 
 #include <sys/random.h> // For getentropy.
 
-#include "private/bsd_sys_param.h"
-
 #define __BEGIN_HIDDEN_DECLS _Pragma("GCC visibility push(hidden)")
 #define __END_HIDDEN_DECLS _Pragma("GCC visibility pop")
 
@@ -42,23 +40,8 @@
 
 #define PROTO_NORMAL(x)
 
-/* OpenBSD's <ctype.h> uses these names, which conflicted with stlport.
- * Additionally, we changed the numeric/digit type from N to D for libcxx.
- */
-#define _U _CTYPE_U
-#define _L _CTYPE_L
-#define _N _CTYPE_D
-#define _S _CTYPE_S
-#define _P _CTYPE_P
-#define _C _CTYPE_C
-#define _X _CTYPE_X
-#define _B _CTYPE_B
-
-/* OpenBSD has this, but we can't really implement it correctly on Linux. */
-#define issetugid() 0
-
 #if !defined(ANDROID_HOST_MUSL)
-#define explicit_bzero(p, s) memset(p, 0, s)
+#define explicit_bzero(p, s) memset_explicit(p, 0, s)
 #endif
 
 #if defined(ANDROID_HOST_MUSL)
diff --git a/libc/upstream-openbsd/lib/libc/crypt/arc4random.c b/libc/upstream-openbsd/lib/libc/crypt/arc4random.c
index 8a4ecc9..0737cf3 100644
--- a/libc/upstream-openbsd/lib/libc/crypt/arc4random.c
+++ b/libc/upstream-openbsd/lib/libc/crypt/arc4random.c
@@ -1,4 +1,4 @@
-/*	$OpenBSD: arc4random.c,v 1.54 2015/09/13 08:31:47 guenther Exp $	*/
+/*	$OpenBSD: arc4random.c,v 1.58 2022/07/31 13:41:45 tb Exp $	*/
 
 /*
  * Copyright (c) 1996, David Mazieres <dm@uun.org>
@@ -49,6 +49,8 @@
 #define BLOCKSZ	64
 #define RSBUFSZ	(16*BLOCKSZ)
 
+#define REKEY_BASE	(1024*1024) /* NB. should be a power of 2 */
+
 /* Marked MAP_INHERIT_ZERO, so zero'd out in fork children. */
 static struct _rs {
 	size_t		rs_have;	/* valid bytes at end of rs_buf */
@@ -78,7 +80,7 @@
 			abort();
 	}
 
-	chacha_keysetup(&rsx->rs_chacha, buf, KEYSZ * 8, 0);
+	chacha_keysetup(&rsx->rs_chacha, buf, KEYSZ * 8);
 	chacha_ivsetup(&rsx->rs_chacha, buf + KEYSZ);
 }
 
@@ -86,6 +88,7 @@
 _rs_stir(void)
 {
 	u_char rnd[KEYSZ + IVSZ];
+	uint32_t rekey_fuzz = 0;
 
 	if (getentropy(rnd, sizeof rnd) == -1)
 		_getentropy_fail();
@@ -100,7 +103,10 @@
 	rs->rs_have = 0;
 	memset(rsx->rs_buf, 0, sizeof(rsx->rs_buf));
 
-	rs->rs_count = 1600000;
+	/* rekey interval should not be predictable */
+	chacha_encrypt_bytes(&rsx->rs_chacha, (uint8_t *)&rekey_fuzz,
+	    (uint8_t *)&rekey_fuzz, sizeof(rekey_fuzz));
+	rs->rs_count = REKEY_BASE + (rekey_fuzz % REKEY_BASE);
 }
 
 static inline void
diff --git a/libc/upstream-openbsd/lib/libc/crypt/chacha_private.h b/libc/upstream-openbsd/lib/libc/crypt/chacha_private.h
index 7c3680f..b0427b6 100644
--- a/libc/upstream-openbsd/lib/libc/crypt/chacha_private.h
+++ b/libc/upstream-openbsd/lib/libc/crypt/chacha_private.h
@@ -4,7 +4,7 @@
 Public domain.
 */
 
-/* $OpenBSD: chacha_private.h,v 1.2 2013/10/04 07:02:27 djm Exp $ */
+/* $OpenBSD: chacha_private.h,v 1.3 2022/02/28 21:56:29 dtucker Exp $ */
 
 typedef unsigned char u8;
 typedef unsigned int u32;
@@ -52,7 +52,7 @@
 static const char tau[16] = "expand 16-byte k";
 
 static void
-chacha_keysetup(chacha_ctx *x,const u8 *k,u32 kbits,u32 ivbits)
+chacha_keysetup(chacha_ctx *x,const u8 *k,u32 kbits)
 {
   const char *constants;
 
diff --git a/libc/upstream-openbsd/lib/libc/gen/ctype_.c b/libc/upstream-openbsd/lib/libc/gen/ctype_.c
index 8972244..9742c9f 100644
--- a/libc/upstream-openbsd/lib/libc/gen/ctype_.c
+++ b/libc/upstream-openbsd/lib/libc/gen/ctype_.c
@@ -1,4 +1,4 @@
-/*	$OpenBSD: ctype_.c,v 1.12 2015/09/19 04:02:21 guenther Exp $ */
+/*	$OpenBSD: ctype_.c,v 1.13 2024/02/04 13:03:18 jca Exp $ */
 /*
  * Copyright (c) 1989 The Regents of the University of California.
  * All rights reserved.
@@ -36,6 +36,16 @@
 #include <ctype.h>
 #include "ctype_private.h"
 
+/* Shorter names for the defines provided by <ctype.h> */
+#define	_U	_CTYPE_U
+#define	_L	_CTYPE_L
+#define	_N	_CTYPE_N
+#define	_S	_CTYPE_S
+#define	_P	_CTYPE_P
+#define	_C	_CTYPE_C
+#define	_X	_CTYPE_X
+#define	_B	_CTYPE_B
+
 const char _C_ctype_[1 + CTYPE_NUM_CHARS] = {
 	0,
 	_C,	_C,	_C,	_C,	_C,	_C,	_C,	_C,
diff --git a/libc/upstream-openbsd/lib/libc/gen/fnmatch.c b/libc/upstream-openbsd/lib/libc/gen/fnmatch.c
index ff6b26e..3ec0222 100644
--- a/libc/upstream-openbsd/lib/libc/gen/fnmatch.c
+++ b/libc/upstream-openbsd/lib/libc/gen/fnmatch.c
@@ -46,11 +46,11 @@
  *
  * Derived from The Open Group Base Specifications Issue 7, IEEE Std 1003.1-2008
  * as described in;
- *   http://pubs.opengroup.org/onlinepubs/9699919799/functions/fnmatch.html
+ *   https://pubs.opengroup.org/onlinepubs/9799919799.2024edition/functions/fnmatch.html
  *
  * Filename pattern matches defined in section 2.13, "Pattern Matching Notation"
  * from chapter 2. "Shell Command Language"
- *   http://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html#tag_18_13
+ *   https://pubs.opengroup.org/onlinepubs/9799919799.2024edition/utilities/V3_chap02.html#tag_18_13
  * where; 1. A bracket expression starting with an unquoted <circumflex> '^'
  * character CONTINUES to specify a non-matching list; 2. an explicit <period> '.'
  * in a bracket expression matching list, e.g. "[.abc]" does NOT match a leading
@@ -61,7 +61,7 @@
  *
  * Bracket expansion defined in section 9.3.5, "RE Bracket Expression",
  * from chapter 9, "Regular Expressions"
- *   http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap09.html#tag_09_03_05
+ *   https://pubs.opengroup.org/onlinepubs/9799919799.2024edition/basedefs/V1_chap09.html#tag_09_03_05
  * with no support for collating symbols, equivalence class expressions or
  * character class expressions.  A partial range expression with a leading
  * hyphen following a valid range expression will match only the ordinary
diff --git a/libc/upstream-openbsd/lib/libc/net/htonl.c b/libc/upstream-openbsd/lib/libc/net/htonl.c
index 6ee6e7e..58bfb46 100644
--- a/libc/upstream-openbsd/lib/libc/net/htonl.c
+++ b/libc/upstream-openbsd/lib/libc/net/htonl.c
@@ -1,6 +1,5 @@
-/*	$OpenBSD: htonl.c,v 1.7 2014/07/21 01:51:10 guenther Exp $ */
+/*	$OpenBSD: htonl.c,v 1.8 2024/04/15 14:30:48 naddy Exp $ */
 /*
- * Written by J.T. Conklin <jtc@netbsd.org>.
  * Public domain.
  */
 
@@ -9,13 +8,8 @@
 
 #undef htonl
 
-u_int32_t
-htonl(u_int32_t x)
+uint32_t
+htonl(uint32_t x)
 {
-#if BYTE_ORDER == LITTLE_ENDIAN
-	u_char *s = (u_char *)&x;
-	return (u_int32_t)(s[0] << 24 | s[1] << 16 | s[2] << 8 | s[3]);
-#else
-	return x;
-#endif
+	return htobe32(x);
 }
diff --git a/libc/upstream-openbsd/lib/libc/net/htons.c b/libc/upstream-openbsd/lib/libc/net/htons.c
index f48d91e..28b13ce 100644
--- a/libc/upstream-openbsd/lib/libc/net/htons.c
+++ b/libc/upstream-openbsd/lib/libc/net/htons.c
@@ -1,6 +1,5 @@
-/*	$OpenBSD: htons.c,v 1.9 2014/07/21 01:51:10 guenther Exp $ */
+/*	$OpenBSD: htons.c,v 1.10 2024/04/15 14:30:48 naddy Exp $ */
 /*
- * Written by J.T. Conklin <jtc@netbsd.org>.
  * Public domain.
  */
 
@@ -9,13 +8,8 @@
 
 #undef htons
 
-u_int16_t
-htons(u_int16_t x)
+uint16_t
+htons(uint16_t x)
 {
-#if BYTE_ORDER == LITTLE_ENDIAN
-	u_char *s = (u_char *) &x;
-	return (u_int16_t)(s[0] << 8 | s[1]);
-#else
-	return x;
-#endif
+	return htobe16(x);
 }
diff --git a/libc/upstream-openbsd/lib/libc/net/ntohl.c b/libc/upstream-openbsd/lib/libc/net/ntohl.c
index 0d05bac..7592398 100644
--- a/libc/upstream-openbsd/lib/libc/net/ntohl.c
+++ b/libc/upstream-openbsd/lib/libc/net/ntohl.c
@@ -1,6 +1,5 @@
-/*	$OpenBSD: ntohl.c,v 1.7 2014/07/21 01:51:10 guenther Exp $ */
+/*	$OpenBSD: ntohl.c,v 1.8 2024/04/15 14:30:48 naddy Exp $ */
 /*
- * Written by J.T. Conklin <jtc@netbsd.org>.
  * Public domain.
  */
 
@@ -9,13 +8,8 @@
 
 #undef ntohl
 
-u_int32_t
-ntohl(u_int32_t x)
+uint32_t
+ntohl(uint32_t x)
 {
-#if BYTE_ORDER == LITTLE_ENDIAN
-	u_char *s = (u_char *)&x;
-	return (u_int32_t)(s[0] << 24 | s[1] << 16 | s[2] << 8 | s[3]);
-#else
-	return x;
-#endif
+	return be32toh(x);
 }
diff --git a/libc/upstream-openbsd/lib/libc/net/ntohs.c b/libc/upstream-openbsd/lib/libc/net/ntohs.c
index b5ea361..ef22ea3 100644
--- a/libc/upstream-openbsd/lib/libc/net/ntohs.c
+++ b/libc/upstream-openbsd/lib/libc/net/ntohs.c
@@ -1,6 +1,5 @@
-/*	$OpenBSD: ntohs.c,v 1.9 2014/07/21 01:51:10 guenther Exp $ */
+/*	$OpenBSD: ntohs.c,v 1.10 2024/04/15 14:30:48 naddy Exp $ */
 /*
- * Written by J.T. Conklin <jtc@netbsd.org>.
  * Public domain.
  */
 
@@ -9,13 +8,8 @@
 
 #undef ntohs
 
-u_int16_t
-ntohs(u_int16_t x)
+uint16_t
+ntohs(uint16_t x)
 {
-#if BYTE_ORDER == LITTLE_ENDIAN
-	u_char *s = (u_char *) &x;
-	return (u_int16_t)(s[0] << 8 | s[1]);
-#else
-	return x;
-#endif
+	return be16toh(x);
 }
diff --git a/libc/upstream-openbsd/lib/libc/stdio/fpurge.c b/libc/upstream-openbsd/lib/libc/stdio/fpurge.c
deleted file mode 100644
index 8dd8a91..0000000
--- a/libc/upstream-openbsd/lib/libc/stdio/fpurge.c
+++ /dev/null
@@ -1,62 +0,0 @@
-/*	$OpenBSD: fpurge.c,v 1.10 2015/08/31 02:53:57 guenther Exp $ */
-/*-
- * Copyright (c) 1990, 1993
- *	The Regents of the University of California.  All rights reserved.
- *
- * This code is derived from software contributed to Berkeley by
- * Chris Torek.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the University nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#include <errno.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include "local.h"
-
-/*
- * fpurge: like fflush, but without writing anything: leave the
- * given FILE's buffer empty.
- */
-int
-fpurge(FILE *fp)
-{
-	FLOCKFILE(fp);
-	if (!fp->_flags) {
-		FUNLOCKFILE(fp);
-		errno = EBADF;
-		return(EOF);
-	}
-
-	if (HASUB(fp))
-		FREEUB(fp);
-	WCIO_FREE(fp);
-	fp->_p = fp->_bf._base;
-	fp->_r = 0;
-	fp->_w = fp->_flags & (__SLBF|__SNBF) ? 0 : fp->_bf._size;
-	FUNLOCKFILE(fp);
-	return (0);
-}
-DEF_WEAK(fpurge);
diff --git a/libc/upstream-openbsd/lib/libc/stdio/fvwrite.c b/libc/upstream-openbsd/lib/libc/stdio/fvwrite.c
index ba58f9d..d615245 100644
--- a/libc/upstream-openbsd/lib/libc/stdio/fvwrite.c
+++ b/libc/upstream-openbsd/lib/libc/stdio/fvwrite.c
@@ -1,4 +1,4 @@
-/*	$OpenBSD: fvwrite.c,v 1.20 2017/03/17 16:06:33 millert Exp $ */
+/*	$OpenBSD: fvwrite.c,v 1.22 2024/04/28 14:28:02 millert Exp $ */
 /*-
  * Copyright (c) 1990, 1993
  *	The Regents of the University of California.  All rights reserved.
@@ -31,10 +31,10 @@
  * SUCH DAMAGE.
  */
 
+#include <limits.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
-#include <errno.h>
 #include <unistd.h>
 #include "local.h"
 #include "fvwrite.h"
@@ -58,10 +58,8 @@
 	if ((len = uio->uio_resid) == 0)
 		return (0);
 	/* make sure we can write */
-	if (cantwrite(fp)) {
-		errno = EBADF;
+	if (cantwrite(fp))
 		return (EOF);
-	}
 
 #define	MIN(a, b) ((a) < (b) ? (a) : (b))
 #define	COPY(n)	  (void)memcpy(fp->_p, p, n)
@@ -79,11 +77,12 @@
 	}
 	if (fp->_flags & __SNBF) {
 		/*
-		 * Unbuffered: write up to BUFSIZ bytes at a time.
+		 * Unbuffered: write up to INT_MAX bytes at a time, to not
+		 * truncate the value of len if it is greater than 2^31 bytes.
 		 */
 		do {
 			GETIOV(;);
-			w = (*fp->_write)(fp->_cookie, p, MIN(len, BUFSIZ));
+			w = (*fp->_write)(fp->_cookie, p, MIN(len, INT_MAX));
 			if (w <= 0)
 				goto err;
 			p += w;
@@ -93,7 +92,8 @@
 		/*
 		 * Fully buffered: fill partially full buffer, if any,
 		 * and then flush.  If there is no partial buffer, write
-		 * one _bf._size byte chunk directly (without copying).
+		 * entire payload directly (without copying) up to a
+		 * multiple of the buffer size.
 		 *
 		 * String output is a special case: write as many bytes
 		 * as fit, but pretend we wrote everything.  This makes
@@ -137,7 +137,15 @@
 				if (__sflush(fp))
 					goto err;
 			} else if (len >= (w = fp->_bf._size)) {
-				/* write directly */
+				/*
+				 * Write directly up to INT_MAX or greatest
+				 * multiple of buffer size (whichever is
+				 * smaller), keeping in the memory buffer the
+				 * remaining part of payload that is smaller
+				 * than buffer size.
+				 */
+				if (w != 0)
+					w = MIN(w * (len / w), INT_MAX);
 				w = (*fp->_write)(fp->_cookie, p, w);
 				if (w <= 0)
 					goto err;
diff --git a/libc/upstream-openbsd/lib/libc/stdio/open_memstream.c b/libc/upstream-openbsd/lib/libc/stdio/open_memstream.c
index 6ee5a5c..af0169f 100644
--- a/libc/upstream-openbsd/lib/libc/stdio/open_memstream.c
+++ b/libc/upstream-openbsd/lib/libc/stdio/open_memstream.c
@@ -1,4 +1,4 @@
-/*	$OpenBSD: open_memstream.c,v 1.8 2019/05/02 08:30:10 yasuoka Exp $	*/
+/*	$OpenBSD: open_memstream.c,v 1.10 2023/07/11 12:14:16 claudio Exp $	*/
 
 /*
  * Copyright (c) 2011 Martin Pieuchot <mpi@openbsd.org>
@@ -53,7 +53,6 @@
 		p = recallocarray(st->string, st->size, sz, 1);
 		if (!p)
 			return (-1);
-		bzero(p + st->size, sz - st->size);
 		*st->pbuf = st->string = p;
 		st->size = sz;
 	}
@@ -136,7 +135,6 @@
 		return (NULL);
 	}
 
-	*st->string = '\0';
 	st->pos = 0;
 	st->len = 0;
 	st->pbuf = pbuf;
diff --git a/libc/upstream-openbsd/lib/libc/stdio/open_wmemstream.c b/libc/upstream-openbsd/lib/libc/stdio/open_wmemstream.c
index aceef35..fca0b71 100644
--- a/libc/upstream-openbsd/lib/libc/stdio/open_wmemstream.c
+++ b/libc/upstream-openbsd/lib/libc/stdio/open_wmemstream.c
@@ -1,4 +1,4 @@
-/*	$OpenBSD: open_wmemstream.c,v 1.8 2015/09/12 16:23:14 guenther Exp $	*/
+/*	$OpenBSD: open_wmemstream.c,v 1.10 2023/07/11 12:14:16 claudio Exp $	*/
 
 /*
  * Copyright (c) 2011 Martin Pieuchot <mpi@openbsd.org>
@@ -52,10 +52,9 @@
 
 		if (sz < end + 1)
 			sz = end + 1;
-		p = reallocarray(st->string, sz, sizeof(wchar_t));
+		p = recallocarray(st->string, st->size, sz, sizeof(wchar_t));
 		if (!p)
 			return (-1);
-		bzero(p + st->size, (sz - st->size) * sizeof(wchar_t));
 		*st->pbuf = st->string = p;
 		st->size = sz;
 	}
@@ -146,7 +145,6 @@
 		return (NULL);
 	}
 
-	*st->string = L'\0';
 	st->pos = 0;
 	st->len = 0;
 	st->pbuf = pbuf;
diff --git a/libc/upstream-openbsd/lib/libc/stdio/wbuf.c b/libc/upstream-openbsd/lib/libc/stdio/wbuf.c
index 2d07750..edb6a50 100644
--- a/libc/upstream-openbsd/lib/libc/stdio/wbuf.c
+++ b/libc/upstream-openbsd/lib/libc/stdio/wbuf.c
@@ -1,4 +1,4 @@
-/*	$OpenBSD: wbuf.c,v 1.13 2015/08/31 02:53:57 guenther Exp $ */
+/*	$OpenBSD: wbuf.c,v 1.14 2023/10/06 16:41:02 millert Exp $ */
 /*-
  * Copyright (c) 1990, 1993
  *	The Regents of the University of California.  All rights reserved.
@@ -32,7 +32,6 @@
  */
 
 #include <stdio.h>
-#include <errno.h>
 #include "local.h"
 
 /*
@@ -54,10 +53,8 @@
 	 * calls might wrap _w from negative to positive.
 	 */
 	fp->_w = fp->_lbfsize;
-	if (cantwrite(fp)) {
-		errno = EBADF;
+	if (cantwrite(fp))
 		return (EOF);
-	}
 	c = (unsigned char)c;
 
 	/*
diff --git a/libc/upstream-openbsd/lib/libc/stdio/wsetup.c b/libc/upstream-openbsd/lib/libc/stdio/wsetup.c
index 0834223..842036b 100644
--- a/libc/upstream-openbsd/lib/libc/stdio/wsetup.c
+++ b/libc/upstream-openbsd/lib/libc/stdio/wsetup.c
@@ -1,4 +1,4 @@
-/*	$OpenBSD: wsetup.c,v 1.7 2005/08/08 08:05:36 espie Exp $ */
+/*	$OpenBSD: wsetup.c,v 1.8 2023/10/06 16:41:02 millert Exp $ */
 /*-
  * Copyright (c) 1990, 1993
  *	The Regents of the University of California.  All rights reserved.
@@ -31,6 +31,7 @@
  * SUCH DAMAGE.
  */
 
+#include <errno.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include "local.h"
@@ -38,7 +39,7 @@
 /*
  * Various output routines call wsetup to be sure it is safe to write,
  * because either _flags does not include __SWR, or _buf is NULL.
- * _wsetup returns 0 if OK to write, nonzero otherwise.
+ * __swsetup returns 0 if OK to write, nonzero otherwise, setting errno.
  */
 int
 __swsetup(FILE *fp)
@@ -51,8 +52,11 @@
 	 * If we are not writing, we had better be reading and writing.
 	 */
 	if ((fp->_flags & __SWR) == 0) {
-		if ((fp->_flags & __SRW) == 0)
+		if ((fp->_flags & __SRW) == 0) {
+			errno = EBADF;
+			fp->_flags |= __SERR;
 			return (EOF);
+		}
 		if (fp->_flags & __SRD) {
 			/* clobber any ungetc data */
 			if (HASUB(fp))
@@ -68,8 +72,11 @@
 	 * Make a buffer if necessary, then set _w.
 	 */
 	if (fp->_bf._base == NULL) {
-		if ((fp->_flags & (__SSTR | __SALC)) == __SSTR)
+		if ((fp->_flags & (__SSTR | __SALC)) == __SSTR) {
+			errno = EINVAL;
+			fp->_flags |= __SERR;
 			return (EOF);
+		}
 		__smakebuf(fp);
 	}
 	if (fp->_flags & __SLBF) {
diff --git a/libc/upstream-openbsd/lib/libc/string/strlcat.c b/libc/upstream-openbsd/lib/libc/string/strlcat.c
deleted file mode 100644
index aa3db7ab..0000000
--- a/libc/upstream-openbsd/lib/libc/string/strlcat.c
+++ /dev/null
@@ -1,56 +0,0 @@
-/*	$OpenBSD: strlcat.c,v 1.19 2019/01/25 00:19:25 millert Exp $	*/
-
-/*
- * Copyright (c) 1998, 2015 Todd C. Miller <millert@openbsd.org>
- *
- * Permission to use, copy, modify, and distribute this software for any
- * purpose with or without fee is hereby granted, provided that the above
- * copyright notice and this permission notice appear in all copies.
- *
- * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
- * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
- * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
- * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
- * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- */
-
-#include <sys/types.h>
-#include <string.h>
-
-/*
- * Appends src to string dst of size dsize (unlike strncat, dsize is the
- * full size of dst, not space left).  At most dsize-1 characters
- * will be copied.  Always NUL terminates (unless dsize <= strlen(dst)).
- * Returns strlen(src) + MIN(dsize, strlen(initial dst)).
- * If retval >= dsize, truncation occurred.
- */
-size_t
-strlcat(char *dst, const char *src, size_t dsize)
-{
-	const char *odst = dst;
-	const char *osrc = src;
-	size_t n = dsize;
-	size_t dlen;
-
-	/* Find the end of dst and adjust bytes left but don't go past end. */
-	while (n-- != 0 && *dst != '\0')
-		dst++;
-	dlen = dst - odst;
-	n = dsize - dlen;
-
-	if (n-- == 0)
-		return(dlen + strlen(src));
-	while (*src != '\0') {
-		if (n != 0) {
-			*dst++ = *src;
-			n--;
-		}
-		src++;
-	}
-	*dst = '\0';
-
-	return(dlen + (src - osrc));	/* count does not include NUL */
-}
-DEF_WEAK(strlcat);
diff --git a/libc/upstream-openbsd/lib/libc/string/strlcpy.c b/libc/upstream-openbsd/lib/libc/string/strlcpy.c
deleted file mode 100644
index 7e3b9ae..0000000
--- a/libc/upstream-openbsd/lib/libc/string/strlcpy.c
+++ /dev/null
@@ -1,51 +0,0 @@
-/*	$OpenBSD: strlcpy.c,v 1.16 2019/01/25 00:19:25 millert Exp $	*/
-
-/*
- * Copyright (c) 1998, 2015 Todd C. Miller <millert@openbsd.org>
- *
- * Permission to use, copy, modify, and distribute this software for any
- * purpose with or without fee is hereby granted, provided that the above
- * copyright notice and this permission notice appear in all copies.
- *
- * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
- * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
- * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
- * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
- * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- */
-
-#include <sys/types.h>
-#include <string.h>
-
-/*
- * Copy string src to buffer dst of size dsize.  At most dsize-1
- * chars will be copied.  Always NUL terminates (unless dsize == 0).
- * Returns strlen(src); if retval >= dsize, truncation occurred.
- */
-size_t
-strlcpy(char *dst, const char *src, size_t dsize)
-{
-	const char *osrc = src;
-	size_t nleft = dsize;
-
-	/* Copy as many bytes as will fit. */
-	if (nleft != 0) {
-		while (--nleft != 0) {
-			if ((*dst++ = *src++) == '\0')
-				break;
-		}
-	}
-
-	/* Not enough room in dst, add NUL and traverse rest of src. */
-	if (nleft == 0) {
-		if (dsize != 0)
-			*dst = '\0';		/* NUL-terminate dst */
-		while (*src++)
-			;
-	}
-
-	return(src - osrc - 1);	/* count does not include NUL */
-}
-DEF_WEAK(strlcpy);
diff --git a/libc/upstream-openbsd/lib/libc/time/wcsftime.c b/libc/upstream-openbsd/lib/libc/time/wcsftime.c
deleted file mode 100644
index 6870871..0000000
--- a/libc/upstream-openbsd/lib/libc/time/wcsftime.c
+++ /dev/null
@@ -1,550 +0,0 @@
-/*	$OpenBSD: wcsftime.c,v 1.7 2019/05/12 12:49:52 schwarze Exp $ */
-/*
-** Based on the UCB version with the ID appearing below.
-** This is ANSIish only when "multibyte character == plain character".
-**
-** Copyright (c) 1989, 1993
-**	The Regents of the University of California.  All rights reserved.
-**
-** Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions
-** are met:
-** 1. Redistributions of source code must retain the above copyright
-**    notice, this list of conditions and the following disclaimer.
-** 2. Redistributions in binary form must reproduce the above copyright
-**    notice, this list of conditions and the following disclaimer in the
-**    documentation and/or other materials provided with the distribution.
-** 3. Neither the name of the University nor the names of its contributors
-**    may be used to endorse or promote products derived from this software
-**    without specific prior written permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
-** ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-** IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-** ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
-** FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-** DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-** OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-** HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-** LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-** OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-** SUCH DAMAGE.
-*/
-
-#include <fcntl.h>
-#include <locale.h>
-#include <wchar.h>
-
-#include "private.h"
-#include "tzfile.h"
-
-struct lc_time_T {
-	const wchar_t *	mon[MONSPERYEAR];
-	const wchar_t *	month[MONSPERYEAR];
-	const wchar_t *	wday[DAYSPERWEEK];
-	const wchar_t *	weekday[DAYSPERWEEK];
-	const wchar_t *	X_fmt;
-	const wchar_t *	x_fmt;
-	const wchar_t *	c_fmt;
-	const wchar_t *	am;
-	const wchar_t *	pm;
-	const wchar_t *	date_fmt;
-};
-
-#define Locale	(&C_time_locale)
-
-static const struct lc_time_T	C_time_locale = {
-	{
-		L"Jan", L"Feb", L"Mar", L"Apr", L"May", L"Jun",
-		L"Jul", L"Aug", L"Sep", L"Oct", L"Nov", L"Dec"
-	}, {
-		L"January", L"February", L"March", L"April", L"May", L"June",
-		L"July", L"August", L"September", L"October", L"November", 
-		L"December"
-	}, {
-		L"Sun", L"Mon", L"Tue", L"Wed",
-		L"Thu", L"Fri", L"Sat"
-	}, {
-		L"Sunday", L"Monday", L"Tuesday", L"Wednesday",
-		L"Thursday", L"Friday", L"Saturday"
-	},
-
-	/* X_fmt */
-	L"%H:%M:%S",
-
-	/*
-	** x_fmt
-	** C99 requires this format.
-	** Using just numbers (as here) makes Quakers happier;
-	** it's also compatible with SVR4.
-	*/
-	L"%m/%d/%y",
-
-	/*
-	** c_fmt
-	** C99 requires this format.
-	** Previously this code used "%D %X", but we now conform to C99.
-	** Note that
-	**	"%a %b %d %H:%M:%S %Y"
-	** is used by Solaris 2.3.
-	*/
-	L"%a %b %e %T %Y",
-
-	/* am */
-	L"AM",
-
-	/* pm */
-	L"PM",
-
-	/* date_fmt */
-	L"%a %b %e %H:%M:%S %Z %Y"
-};
-
-#define UNKNOWN L"?"
-static wchar_t *	_add(const wchar_t *, wchar_t *, const wchar_t *);
-static wchar_t *	_sadd(const char *, wchar_t *, const wchar_t *);
-static wchar_t *	_conv(int, const wchar_t *, wchar_t *, const wchar_t *);
-static wchar_t *	_fmt(const wchar_t *, const struct tm *, wchar_t *, const wchar_t *,
-			int *);
-static wchar_t *	_yconv(int, int, int, int, wchar_t *, const wchar_t *);
-
-extern char *	tzname[];
-
-#define IN_NONE	0
-#define IN_SOME	1
-#define IN_THIS	2
-#define IN_ALL	3
-
-size_t
-wcsftime(wchar_t *__restrict s, size_t maxsize, 
-    const wchar_t *__restrict format, const struct tm *__restrict t)
-{
-	wchar_t *p;
-	int	warn;
-
-	tzset();
-	warn = IN_NONE;
-	p = _fmt(((format == NULL) ? L"%c" : format), t, s, s + maxsize, &warn);
-	if (p == s + maxsize) {
-		if (maxsize > 0)
-			s[maxsize - 1] = '\0';
-		return 0;
-	}
-	*p = L'\0';
-	return p - s;
-}
-
-static wchar_t *
-_fmt(const wchar_t *format, const struct tm *t, wchar_t *pt, 
-    const wchar_t *ptlim, int *warnp)
-{
-	for ( ; *format; ++format) {
-		if (*format != L'%') {
-			if (pt == ptlim)
-				break;
-			*pt++ = *format;
-			continue;
-		}
-label:
-		switch (*++format) {
-		case '\0':
-			--format;
-			break;
-		case 'A':
-			pt = _add((t->tm_wday < 0 ||
-				t->tm_wday >= DAYSPERWEEK) ?
-				UNKNOWN : Locale->weekday[t->tm_wday],
-				pt, ptlim);
-			continue;
-		case 'a':
-			pt = _add((t->tm_wday < 0 ||
-				t->tm_wday >= DAYSPERWEEK) ?
-				UNKNOWN : Locale->wday[t->tm_wday],
-				pt, ptlim);
-			continue;
-		case 'B':
-			pt = _add((t->tm_mon < 0 ||
-				t->tm_mon >= MONSPERYEAR) ?
-				UNKNOWN : Locale->month[t->tm_mon],
-				pt, ptlim);
-			continue;
-		case 'b':
-		case 'h':
-			pt = _add((t->tm_mon < 0 ||
-				t->tm_mon >= MONSPERYEAR) ?
-				UNKNOWN : Locale->mon[t->tm_mon],
-				pt, ptlim);
-			continue;
-		case 'C':
-			/*
-			** %C used to do a...
-			**	_fmt("%a %b %e %X %Y", t);
-			** ...whereas now POSIX 1003.2 calls for
-			** something completely different.
-			** (ado, 1993-05-24)
-			*/
-			pt = _yconv(t->tm_year, TM_YEAR_BASE, 1, 0,
-				pt, ptlim);
-			continue;
-		case 'c':
-			{
-			int warn2 = IN_SOME;
-
-			pt = _fmt(Locale->c_fmt, t, pt, ptlim, &warn2);
-			if (warn2 == IN_ALL)
-				warn2 = IN_THIS;
-			if (warn2 > *warnp)
-				*warnp = warn2;
-			}
-			continue;
-		case 'D':
-			pt = _fmt(L"%m/%d/%y", t, pt, ptlim, warnp);
-			continue;
-		case 'd':
-			pt = _conv(t->tm_mday, L"%02d", pt, ptlim);
-			continue;
-		case 'E':
-		case 'O':
-			/*
-			** C99 locale modifiers.
-			** The sequences
-			**	%Ec %EC %Ex %EX %Ey %EY
-			**	%Od %oe %OH %OI %Om %OM
-			**	%OS %Ou %OU %OV %Ow %OW %Oy
-			** are supposed to provide alternate
-			** representations.
-			*/
-			goto label;
-		case 'e':
-			pt = _conv(t->tm_mday, L"%2d", pt, ptlim);
-			continue;
-		case 'F':
-			pt = _fmt(L"%Y-%m-%d", t, pt, ptlim, warnp);
-			continue;
-		case 'H':
-			pt = _conv(t->tm_hour, L"%02d", pt, ptlim);
-			continue;
-		case 'I':
-			pt = _conv((t->tm_hour % 12) ?
-				(t->tm_hour % 12) : 12,
-				L"%02d", pt, ptlim);
-			continue;
-		case 'j':
-			pt = _conv(t->tm_yday + 1, L"%03d", pt, ptlim);
-			continue;
-		case 'k':
-			/*
-			** This used to be...
-			**	_conv(t->tm_hour % 12 ?
-			**		t->tm_hour % 12 : 12, 2, ' ');
-			** ...and has been changed to the below to
-			** match SunOS 4.1.1 and Arnold Robbins'
-			** strftime version 3.0. That is, "%k" and
-			** "%l" have been swapped.
-			** (ado, 1993-05-24)
-			*/
-			pt = _conv(t->tm_hour, L"%2d", pt, ptlim);
-			continue;
-		case 'l':
-			/*
-			** This used to be...
-			**	_conv(t->tm_hour, 2, ' ');
-			** ...and has been changed to the below to
-			** match SunOS 4.1.1 and Arnold Robbin's
-			** strftime version 3.0. That is, "%k" and
-			** "%l" have been swapped.
-			** (ado, 1993-05-24)
-			*/
-			pt = _conv((t->tm_hour % 12) ?
-				(t->tm_hour % 12) : 12,
-				L"%2d", pt, ptlim);
-			continue;
-		case 'M':
-			pt = _conv(t->tm_min, L"%02d", pt, ptlim);
-			continue;
-		case 'm':
-			pt = _conv(t->tm_mon + 1, L"%02d", pt, ptlim);
-			continue;
-		case 'n':
-			pt = _add(L"\n", pt, ptlim);
-			continue;
-		case 'p':
-			pt = _add((t->tm_hour >= (HOURSPERDAY / 2)) ?
-				Locale->pm :
-				Locale->am,
-				pt, ptlim);
-			continue;
-		case 'R':
-			pt = _fmt(L"%H:%M", t, pt, ptlim, warnp);
-			continue;
-		case 'r':
-			pt = _fmt(L"%I:%M:%S %p", t, pt, ptlim, warnp);
-			continue;
-		case 'S':
-			pt = _conv(t->tm_sec, L"%02d", pt, ptlim);
-			continue;
-		case 's':
-			{
-				struct tm	tm;
-				wchar_t		buf[INT_STRLEN_MAXIMUM(
-							time_t) + 1];
-				time_t		mkt;
-
-				tm = *t;
-				mkt = mktime(&tm);
-				(void) swprintf(buf, 
-				    sizeof buf/sizeof buf[0],
-				    L"%ld", (long) mkt);
-				pt = _add(buf, pt, ptlim);
-			}
-			continue;
-		case 'T':
-			pt = _fmt(L"%H:%M:%S", t, pt, ptlim, warnp);
-			continue;
-		case 't':
-			pt = _add(L"\t", pt, ptlim);
-			continue;
-		case 'U':
-			pt = _conv((t->tm_yday + DAYSPERWEEK -
-				t->tm_wday) / DAYSPERWEEK,
-				L"%02d", pt, ptlim);
-			continue;
-		case 'u':
-			/*
-			** From Arnold Robbins' strftime version 3.0:
-			** "ISO 8601: Weekday as a decimal number
-			** [1 (Monday) - 7]"
-			** (ado, 1993-05-24)
-			*/
-			pt = _conv((t->tm_wday == 0) ?
-				DAYSPERWEEK : t->tm_wday,
-				L"%d", pt, ptlim);
-			continue;
-		case 'V':	/* ISO 8601 week number */
-		case 'G':	/* ISO 8601 year (four digits) */
-		case 'g':	/* ISO 8601 year (two digits) */
-/*
-** From Arnold Robbins' strftime version 3.0: "the week number of the
-** year (the first Monday as the first day of week 1) as a decimal number
-** (01-53)."
-** (ado, 1993-05-24)
-**
-** From "http://www.ft.uni-erlangen.de/~mskuhn/iso-time.html" by Markus Kuhn:
-** "Week 01 of a year is per definition the first week which has the
-** Thursday in this year, which is equivalent to the week which contains
-** the fourth day of January. In other words, the first week of a new year
-** is the week which has the majority of its days in the new year. Week 01
-** might also contain days from the previous year and the week before week
-** 01 of a year is the last week (52 or 53) of the previous year even if
-** it contains days from the new year. A week starts with Monday (day 1)
-** and ends with Sunday (day 7). For example, the first week of the year
-** 1997 lasts from 1996-12-30 to 1997-01-05..."
-** (ado, 1996-01-02)
-*/
-			{
-			int	year;
-			int	base;
-			int	yday;
-			int	wday;
-			int	w;
-
-			year = t->tm_year;
-			base = TM_YEAR_BASE;
-			yday = t->tm_yday;
-			wday = t->tm_wday;
-			for ( ; ; ) {
-				int	len;
-				int	bot;
-				int	top;
-
-				len = isleap_sum(year, base) ?
-					DAYSPERLYEAR :
-					DAYSPERNYEAR;
-				/*
-				** What yday (-3 ... 3) does the ISO year 
-				** begin on?
-				*/
-				bot = ((yday + 11 - wday) % DAYSPERWEEK) - 3;
-				/*
-				** What yday does the NEXT ISO year begin on?
-				*/
-				top = bot - (len % DAYSPERWEEK);
-				if (top < -3)
-					top += DAYSPERWEEK;
-				top += len;
-				if (yday >= top) {
-					++base;
-					w = 1;
-					break;
-				}
-				if (yday >= bot) {
-					w = 1 + ((yday - bot) / DAYSPERWEEK);
-					break;
-				}
-				--base;
-				yday += isleap_sum(year, base) ?
-					DAYSPERLYEAR :
-					DAYSPERNYEAR;
-			}
-			if ((w == 52 && t->tm_mon == TM_JANUARY) ||
-				(w == 1 && t->tm_mon == TM_DECEMBER))
-					w = 53;
-			if (*format == 'V')
-				pt = _conv(w, L"%02d", pt, ptlim);
-			else if (*format == 'g') {
-				*warnp = IN_ALL;
-				pt = _yconv(year, base, 0, 1, pt, ptlim);
-			} else	
-				pt = _yconv(year, base, 1, 1, pt, ptlim);
-			}
-			continue;
-		case 'v':
-			/*
-			** From Arnold Robbins' strftime version 3.0:
-			** "date as dd-bbb-YYYY"
-			** (ado, 1993-05-24)
-			*/
-			pt = _fmt(L"%e-%b-%Y", t, pt, ptlim, warnp);
-			continue;
-		case 'W':
-			pt = _conv((t->tm_yday + DAYSPERWEEK -
-				(t->tm_wday ?
-				(t->tm_wday - 1) :
-				(DAYSPERWEEK - 1))) / DAYSPERWEEK,
-				L"%02d", pt, ptlim);
-			continue;
-		case 'w':
-			pt = _conv(t->tm_wday, L"%d", pt, ptlim);
-			continue;
-		case 'X':
-			pt = _fmt(Locale->X_fmt, t, pt, ptlim, warnp);
-			continue;
-		case 'x':
-			{
-			int	warn2 = IN_SOME;
-
-			pt = _fmt(Locale->x_fmt, t, pt, ptlim, &warn2);
-			if (warn2 == IN_ALL)
-				warn2 = IN_THIS;
-			if (warn2 > *warnp)
-				*warnp = warn2;
-			}
-			continue;
-		case 'y':
-			*warnp = IN_ALL;
-			pt = _yconv(t->tm_year, TM_YEAR_BASE, 0, 1, pt, ptlim);
-			continue;
-		case 'Y':
-			pt = _yconv(t->tm_year, TM_YEAR_BASE, 1, 1, pt, ptlim);
-			continue;
-		case 'Z':
-			if (t->tm_zone != NULL)
-				pt = _sadd(t->tm_zone, pt, ptlim);
-			else
-				if (t->tm_isdst >= 0)
-					pt = _sadd(tzname[t->tm_isdst != 0], 
-					    pt, ptlim);
-			/*
-			** C99 says that %Z must be replaced by the
-			** empty string if the time zone is not
-			** determinable.
-			*/
-			continue;
-		case 'z':
-			{
-			int		diff;
-			wchar_t const *	sign;
-
-			if (t->tm_isdst < 0)
-				continue;
-			diff = t->tm_gmtoff;
-			if (diff < 0) {
-				sign = L"-";
-				diff = -diff;
-			} else	
-				sign = L"+";
-			pt = _add(sign, pt, ptlim);
-			diff /= SECSPERMIN;
-			diff = (diff / MINSPERHOUR) * 100 +
-				(diff % MINSPERHOUR);
-			pt = _conv(diff, L"%04d", pt, ptlim);
-			}
-			continue;
-		case '+':
-			pt = _fmt(Locale->date_fmt, t, pt, ptlim, warnp);
-			continue;
-		case '%':
-		/*
-		** X311J/88-090 (4.12.3.5): if conversion wchar_t is
-		** undefined, behavior is undefined. Print out the
-		** character itself as printf(3) also does.
-		*/
-		default:
-			if (pt != ptlim)
-				*pt++ = *format;
-			break;
-		}
-	}
-	return pt;
-}
-
-static wchar_t *
-_conv(int n, const wchar_t *format, wchar_t *pt, const wchar_t *ptlim)
-{
-	wchar_t	buf[INT_STRLEN_MAXIMUM(int) + 1];
-
-	(void) swprintf(buf, sizeof buf/sizeof buf[0], format, n);
-	return _add(buf, pt, ptlim);
-}
-
-static wchar_t *
-_add(const wchar_t *str, wchar_t *pt, const wchar_t *ptlim)
-{
-	while (pt < ptlim && (*pt = *str++) != L'\0')
-		++pt;
-	return pt;
-}
-
-static wchar_t *
-_sadd(const char *str, wchar_t *pt, const wchar_t *ptlim)
-{
-	while (pt < ptlim && (*pt = btowc(*str++)) != L'\0')
-		++pt;
-	return pt;
-}
-/*
-** POSIX and the C Standard are unclear or inconsistent about
-** what %C and %y do if the year is negative or exceeds 9999.
-** Use the convention that %C concatenated with %y yields the
-** same output as %Y, and that %Y contains at least 4 bytes,
-** with more only if necessary.
-*/
-
-static wchar_t *
-_yconv(int a, int b, int convert_top, int convert_yy, wchar_t *pt, 
-    const wchar_t *ptlim)
-{
-	int	lead;
-	int	trail;
-
-#define DIVISOR	100
-	trail = a % DIVISOR + b % DIVISOR;
-	lead = a / DIVISOR + b / DIVISOR + trail / DIVISOR;
-	trail %= DIVISOR;
-	if (trail < 0 && lead > 0) {
-		trail += DIVISOR;
-		--lead;
-	} else if (lead < 0 && trail > 0) {
-		trail -= DIVISOR;
-		++lead;
-	}
-	if (convert_top) {
-		if (lead == 0 && trail < 0)
-			pt = _add(L"-0", pt, ptlim);
-		else	pt = _conv(lead, L"%02d", pt, ptlim);
-	}
-	if (convert_yy)
-		pt = _conv(((trail < 0) ? -trail : trail), L"%02d", pt, ptlim);
-	return pt;
-}
-
diff --git a/libc/versioner-dependencies/arm/kernel_uapi_asm-arm b/libc/versioner-dependencies/arm/kernel_uapi_asm-arm
deleted file mode 120000
index 3c7584d..0000000
--- a/libc/versioner-dependencies/arm/kernel_uapi_asm-arm
+++ /dev/null
@@ -1 +0,0 @@
-../../kernel/uapi/asm-arm
\ No newline at end of file
diff --git a/libc/versioner-dependencies/arm64/kernel_uapi_asm-arm64 b/libc/versioner-dependencies/arm64/kernel_uapi_asm-arm64
deleted file mode 120000
index 7ee6fd2..0000000
--- a/libc/versioner-dependencies/arm64/kernel_uapi_asm-arm64
+++ /dev/null
@@ -1 +0,0 @@
-../../kernel/uapi/asm-arm64
\ No newline at end of file
diff --git a/libc/versioner-dependencies/common/clang-builtins b/libc/versioner-dependencies/common/clang-builtins
deleted file mode 120000
index 148dd2b..0000000
--- a/libc/versioner-dependencies/common/clang-builtins
+++ /dev/null
@@ -1 +0,0 @@
-../../../../prebuilts/clang-tools/linux-x86/clang-headers
\ No newline at end of file
diff --git a/libc/versioner-dependencies/common/kernel_android_uapi b/libc/versioner-dependencies/common/kernel_android_uapi
deleted file mode 120000
index fd78315..0000000
--- a/libc/versioner-dependencies/common/kernel_android_uapi
+++ /dev/null
@@ -1 +0,0 @@
-../../kernel/android/uapi/
\ No newline at end of file
diff --git a/libc/versioner-dependencies/common/kernel_uapi b/libc/versioner-dependencies/common/kernel_uapi
deleted file mode 120000
index d5cb8ee..0000000
--- a/libc/versioner-dependencies/common/kernel_uapi
+++ /dev/null
@@ -1 +0,0 @@
-../../kernel/uapi/
\ No newline at end of file
diff --git a/libc/versioner-dependencies/riscv64/kernel_uapi_asm-riscv64 b/libc/versioner-dependencies/riscv64/kernel_uapi_asm-riscv64
deleted file mode 120000
index 61353cb..0000000
--- a/libc/versioner-dependencies/riscv64/kernel_uapi_asm-riscv64
+++ /dev/null
@@ -1 +0,0 @@
-../../kernel/uapi/asm-riscv/
\ No newline at end of file
diff --git a/libc/versioner-dependencies/x86/kernel_uapi_asm-x86 b/libc/versioner-dependencies/x86/kernel_uapi_asm-x86
deleted file mode 120000
index 1b7a73d..0000000
--- a/libc/versioner-dependencies/x86/kernel_uapi_asm-x86
+++ /dev/null
@@ -1 +0,0 @@
-../../kernel/uapi/asm-x86/
\ No newline at end of file
diff --git a/libc/versioner-dependencies/x86_64/kernel_uapi_asm-x86 b/libc/versioner-dependencies/x86_64/kernel_uapi_asm-x86
deleted file mode 120000
index 1b7a73d..0000000
--- a/libc/versioner-dependencies/x86_64/kernel_uapi_asm-x86
+++ /dev/null
@@ -1 +0,0 @@
-../../kernel/uapi/asm-x86/
\ No newline at end of file
diff --git a/libdl/Android.bp b/libdl/Android.bp
index fde3dfc..87db4b1 100644
--- a/libdl/Android.bp
+++ b/libdl/Android.bp
@@ -47,6 +47,9 @@
     sanitize: {
         never: true,
     },
+    apex_available: [
+        "com.android.runtime",
+    ],
 }
 
 cc_library {
@@ -57,33 +60,14 @@
     native_bridge_supported: true,
     static_ndk_lib: true,
 
-    defaults: ["linux_bionic_supported"],
-
-    // NOTE: --exclude-libs=libgcc.a makes sure that any symbols libdl.so pulls from
-    // libgcc.a are made static to libdl.so.  This in turn ensures that libraries that
-    // a) pull symbols from libgcc.a and b) depend on libdl.so will not rely on libdl.so
-    // to provide those symbols, but will instead pull them from libgcc.a.  Specifically,
-    // we use this property to make sure libc.so has its own copy of the code from
-    // libgcc.a it uses.
-    //
-    // DO NOT REMOVE --exclude-libs!
-
-    ldflags: [
-        "-Wl,--exclude-libs=libgcc.a",
-        "-Wl,--exclude-libs=libgcc_stripped.a",
-        "-Wl,--exclude-libs=libclang_rt.builtins-arm-android.a",
-        "-Wl,--exclude-libs=libclang_rt.builtins-aarch64-android.a",
-        "-Wl,--exclude-libs=libclang_rt.builtins-i686-android.a",
-        "-Wl,--exclude-libs=libclang_rt.builtins-riscv64-android.a",
-        "-Wl,--exclude-libs=libclang_rt.builtins-x86_64-android.a",
+    defaults: [
+        "linux_bionic_supported",
+        "bug_24465209_workaround",
     ],
 
-    // for x86, exclude libgcc_eh.a for the same reasons as above
     arch: {
         arm: {
             version_script: ":libdl.arm.map",
-            pack_relocations: false,
-            ldflags: ["-Wl,--hash-style=both"],
         },
         arm64: {
             version_script: ":libdl.arm64.map",
@@ -92,15 +76,9 @@
             version_script: ":libdl.riscv64.map",
         },
         x86: {
-            pack_relocations: false,
-            ldflags: [
-                "-Wl,--exclude-libs=libgcc_eh.a",
-                "-Wl,--hash-style=both",
-            ],
             version_script: ":libdl.x86.map",
         },
         x86_64: {
-            ldflags: ["-Wl,--exclude-libs=libgcc_eh.a"],
             version_script: ":libdl.x86_64.map",
         },
     },
@@ -145,13 +123,8 @@
     },
 
     apex_available: [
-        "//apex_available:platform",
         "com.android.runtime",
     ],
-
-    lto: {
-        never: true,
-    },
 }
 
 cc_library {
@@ -163,38 +136,7 @@
     recovery_available: true,
     native_bridge_supported: true,
 
-    // NOTE: --exclude-libs=libgcc.a makes sure that any symbols libdl.so pulls from
-    // libgcc.a are made static to libdl.so.  This in turn ensures that libraries that
-    // a) pull symbols from libgcc.a and b) depend on libdl.so will not rely on libdl.so
-    // to provide those symbols, but will instead pull them from libgcc.a.  Specifically,
-    // we use this property to make sure libc.so has its own copy of the code from
-    // libgcc.a it uses.
-    //
-    // DO NOT REMOVE --exclude-libs!
-
-    ldflags: [
-        "-Wl,--exclude-libs=libgcc.a",
-        "-Wl,--exclude-libs=libgcc_stripped.a",
-        "-Wl,--exclude-libs=libclang_rt.builtins-arm-android.a",
-        "-Wl,--exclude-libs=libclang_rt.builtins-aarch64-android.a",
-        "-Wl,--exclude-libs=libclang_rt.builtins-i686-android.a",
-        "-Wl,--exclude-libs=libclang_rt.builtins-riscv64-android.a",
-        "-Wl,--exclude-libs=libclang_rt.builtins-x86_64-android.a",
-    ],
-
-    // for x86, exclude libgcc_eh.a for the same reasons as above
-    arch: {
-        x86: {
-            ldflags: [
-                "-Wl,--exclude-libs=libgcc_eh.a",
-            ],
-        },
-        x86_64: {
-            ldflags: ["-Wl,--exclude-libs=libgcc_eh.a"],
-        },
-    },
-
-    srcs: [ "libdl_android.cpp" ],
+    srcs: ["libdl_android.cpp"],
     version_script: "libdl_android.map.txt",
 
     cflags: [
@@ -227,13 +169,8 @@
     },
 
     apex_available: [
-        "//apex_available:platform",
         "com.android.runtime",
     ],
-
-    lto: {
-        never: true,
-    },
 }
 
 ndk_library {
diff --git a/libdl/libdl_android.cpp b/libdl/libdl_android.cpp
index 47a164a..f0959eb 100644
--- a/libdl/libdl_android.cpp
+++ b/libdl/libdl_android.cpp
@@ -59,6 +59,9 @@
 __attribute__((__weak__, visibility("default")))
 struct android_namespace_t* __loader_android_get_exported_namespace(const char* name);
 
+__attribute__((__weak__, visibility("default"))) void __loader_android_set_16kb_appcompat_mode(
+    bool enable_app_compat);
+
 // Proxy calls to bionic loader
 __attribute__((__weak__))
 void android_get_LD_LIBRARY_PATH(char* buffer, size_t buffer_size) {
@@ -115,4 +118,8 @@
   return __loader_android_get_exported_namespace(name);
 }
 
+__attribute__((__weak__)) void android_set_16kb_appcompat_mode(bool enable_app_compat) {
+  __loader_android_set_16kb_appcompat_mode(enable_app_compat);
+}
+
 } // extern "C"
diff --git a/libdl/libdl_android.map.txt b/libdl/libdl_android.map.txt
index 7afcd9c..efbc841 100644
--- a/libdl/libdl_android.map.txt
+++ b/libdl/libdl_android.map.txt
@@ -24,6 +24,7 @@
     android_init_anonymous_namespace; # apex
     android_link_namespaces; # apex
     android_set_application_target_sdk_version; # apex
+    android_set_16kb_appcompat_mode; #apex
   local:
     *;
 };
diff --git a/libdl/libdl_cfi.cpp b/libdl/libdl_cfi.cpp
index 3b68fc7..8adc342 100644
--- a/libdl/libdl_cfi.cpp
+++ b/libdl/libdl_cfi.cpp
@@ -26,15 +26,15 @@
 // dlopen/dlclose.
 static struct {
   uintptr_t v;
-  char padding[PAGE_SIZE - sizeof(v)];
-} shadow_base_storage alignas(PAGE_SIZE);
+  char padding[max_android_page_size() - sizeof(v)];
+} shadow_base_storage alignas(max_android_page_size());
 
 // __cfi_init is called by the loader as soon as the shadow is mapped. This may happen very early
 // during startup, before libdl.so global constructors, and, on i386, even before __libc_sysinfo is
 // initialized. This function should not do any system calls.
 extern "C" uintptr_t* __cfi_init(uintptr_t shadow_base) {
   shadow_base_storage.v = shadow_base;
-  static_assert(sizeof(shadow_base_storage) == PAGE_SIZE, "");
+  static_assert(sizeof(shadow_base_storage) == max_android_page_size(), "");
   return &shadow_base_storage.v;
 }
 
diff --git a/libfdtrack/Android.bp b/libfdtrack/Android.bp
index 83ea7cb..644d46d 100644
--- a/libfdtrack/Android.bp
+++ b/libfdtrack/Android.bp
@@ -1,4 +1,5 @@
 package {
+    default_team: "trendy_team_native_tools_libraries",
     default_applicable_licenses: ["bionic_libfdtrack_license"],
 }
 
@@ -22,10 +23,17 @@
     static_libs: [
         "libasync_safe",
         "libbase",
+        "libdexfile_support",
         "libunwindstack",
         "liblzma",
         "liblog",
+        "libz",
     ],
+    target: {
+        recovery: {
+            exclude_static_libs: ["libdexfile_support"],
+        },
+    },
     version_script: "libfdtrack.map.txt",
 
     allow_undefined_symbols: true,
diff --git a/libfdtrack/fdtrack.cpp b/libfdtrack/fdtrack.cpp
index b064401..e446f56 100644
--- a/libfdtrack/fdtrack.cpp
+++ b/libfdtrack/fdtrack.cpp
@@ -45,10 +45,8 @@
 #include <android-base/thread_annotations.h>
 #include <async_safe/log.h>
 #include <bionic/reserved_signals.h>
-#include <unwindstack/Maps.h>
-#include <unwindstack/Regs.h>
-#include <unwindstack/RegsGetLocal.h>
-#include <unwindstack/Unwinder.h>
+
+#include <unwindstack/AndroidUnwinder.h>
 
 struct FdEntry {
   std::mutex mutex;
@@ -70,22 +68,16 @@
 // Only unwind up to 32 frames outside of libfdtrack.so.
 static constexpr size_t kStackDepth = 32;
 
-// Skip any initial frames from libfdtrack.so.
-// Also ignore frames from ART (http://b/236197847) because we'd rather spend
-// our precious few frames on the actual Java calling code rather than the
-// implementation of JNI!
-static std::vector<std::string> kSkipFdtrackLib
-    [[clang::no_destroy]] = {"libfdtrack.so", "libart.so"};
-
 static bool installed = false;
 static std::array<FdEntry, kFdTableSize> stack_traces [[clang::no_destroy]];
-static unwindstack::LocalUpdatableMaps& Maps() {
-  static android::base::NoDestructor<unwindstack::LocalUpdatableMaps> maps;
-  return *maps.get();
-}
-static std::shared_ptr<unwindstack::Memory>& ProcessMemory() {
-  static android::base::NoDestructor<std::shared_ptr<unwindstack::Memory>> process_memory;
-  return *process_memory.get();
+static unwindstack::AndroidLocalUnwinder& Unwinder() {
+  // Skip any initial frames from libfdtrack.so.
+  // Also ignore frames from ART (http://b/236197847) because we'd rather spend
+  // our precious few frames on the actual Java calling code rather than the
+  // implementation of JNI!
+  static android::base::NoDestructor<unwindstack::AndroidLocalUnwinder> unwinder(
+      std::vector<std::string>{"libfdtrack.so", "libart.so"});
+  return *unwinder.get();
 }
 
 __attribute__((constructor)) static void ctor() {
@@ -104,8 +96,8 @@
   sa.sa_flags = SA_SIGINFO | SA_ONSTACK;
   sigaction(BIONIC_SIGNAL_FDTRACK, &sa, nullptr);
 
-  if (Maps().Parse()) {
-    ProcessMemory() = unwindstack::Memory::CreateProcessMemoryThreadCached(getpid());
+  unwindstack::ErrorData error;
+  if (Unwinder().Initialize(error)) {
     android_fdtrack_hook_t expected = nullptr;
     installed = android_fdtrack_compare_exchange_hook(&expected, &fd_hook);
   }
@@ -133,11 +125,10 @@
       std::lock_guard<std::mutex> lock(entry->mutex);
       entry->backtrace.clear();
 
-      std::unique_ptr<unwindstack::Regs> regs(unwindstack::Regs::CreateFromLocal());
-      unwindstack::RegsGetLocal(regs.get());
-      unwindstack::Unwinder unwinder(kStackDepth, &Maps(), regs.get(), ProcessMemory());
-      unwinder.Unwind(&kSkipFdtrackLib);
-      entry->backtrace = unwinder.ConsumeFrames();
+      unwindstack::AndroidUnwinderData data(kStackDepth);
+      if (Unwinder().Unwind(data)) {
+        entry->backtrace = std::move(data.frames);
+      }
     }
   } else if (event->type == ANDROID_FDTRACK_EVENT_TYPE_CLOSE) {
     if (FdEntry* entry = GetFdEntry(event->fd); entry) {
@@ -278,8 +269,10 @@
   if (fatal) {
     // Find the most common stack.
     size_t max = 0;
+    size_t total = 0;
     StackInfo* stack = nullptr;
     for (size_t i = 0; i < stacks.count; ++i) {
+      total += stacks.data[i].count;
       if (stacks.data[i].count > max) {
         stack = &stacks.data[i];
         max = stack->count;
@@ -290,11 +283,13 @@
 
     if (!stack) {
       async_safe_format_buffer(buf, sizeof(buf),
-                               "aborting due to fd leak: failed to find most common stack");
+                               "aborting due to fd leak: see \"open files\" in the tombstone; "
+                               "no stacks?!");
     } else {
       char* p = buf;
       p += async_safe_format_buffer(buf, sizeof(buf),
-                                    "aborting due to fd leak: most common stack =\n");
+                                    "aborting due to fd leak: see \"open files\" in the tombstone; "
+                                    "most common stack (%zu/%zu) is\n", max, total);
 
       for (size_t i = 0; i < stack->stack_depth; ++i) {
         ssize_t bytes_left = buf + sizeof(buf) - p;
diff --git a/libm/Android.bp b/libm/Android.bp
index 13fbf9a..ee86959 100644
--- a/libm/Android.bp
+++ b/libm/Android.bp
@@ -21,7 +21,10 @@
 
 cc_library {
     name: "libm",
-    defaults: ["linux_bionic_supported"],
+    defaults: [
+        "linux_bionic_supported",
+        "bug_24465209_workaround",
+    ],
     ramdisk_available: true,
     vendor_ramdisk_available: true,
     recovery_available: true,
@@ -158,8 +161,6 @@
         "upstream-freebsd/lib/msun/src/s_nextafterf.c",
         "upstream-freebsd/lib/msun/src/s_remquo.c",
         "upstream-freebsd/lib/msun/src/s_remquof.c",
-        "upstream-freebsd/lib/msun/src/s_rint.c",
-        "upstream-freebsd/lib/msun/src/s_rintf.c",
         "upstream-freebsd/lib/msun/src/s_round.c",
         "upstream-freebsd/lib/msun/src/s_roundf.c",
         "upstream-freebsd/lib/msun/src/s_scalbln.c",
@@ -176,17 +177,15 @@
         "upstream-freebsd/lib/msun/src/s_tanh.c",
         "upstream-freebsd/lib/msun/src/s_tanhf.c",
         "upstream-freebsd/lib/msun/src/s_tgammaf.c",
-        "upstream-freebsd/lib/msun/src/s_trunc.c",
-        "upstream-freebsd/lib/msun/src/s_truncf.c",
         "upstream-freebsd/lib/msun/src/w_cabs.c",
         "upstream-freebsd/lib/msun/src/w_cabsf.c",
         "upstream-freebsd/lib/msun/src/w_cabsl.c",
         "upstream-freebsd/lib/msun/src/w_drem.c",
         "upstream-freebsd/lib/msun/src/w_dremf.c",
 
-        // The FreeBSD complex functions appear to be better, but they're incomplete.
-        // We take the FreeBSD implementations when they exist, but fill out the rest
-        // of <complex.h> from NetBSD...
+        // The FreeBSD complex function implementations appear to be better
+        // than the other BSDs', but they're incomplete. We take the FreeBSD
+        // implementations when they exist, but fill out the rest from NetBSD...
         "upstream-netbsd/lib/libm/complex/ccoshl.c",
         "upstream-netbsd/lib/libm/complex/ccosl.c",
         "upstream-netbsd/lib/libm/complex/cephes_subrl.c",
@@ -196,11 +195,6 @@
         "upstream-netbsd/lib/libm/complex/ctanhl.c",
         "upstream-netbsd/lib/libm/complex/ctanl.c",
 
-        // TODO: this comes from from upstream's libc, not libm, but it's an
-        // implementation detail that should have hidden visibility, so it needs
-        // to be in whatever library the math code is in.
-        "digittoint.c",
-
         // Functionality not in the BSDs.
         "significandl.c",
         "fake_long_double.c",
@@ -277,24 +271,37 @@
     arch: {
         arm: {
             srcs: [
-                "arm/fenv.c",
-                "upstream-freebsd/lib/msun/src/s_ceil.c",
-                "upstream-freebsd/lib/msun/src/s_ceilf.c",
+                "fenv-arm.c",
             ],
+            armv7_a_neon: {
+                // armv7 arm32 has no instructions to implement these as
+                // builtins, so we build the portable implementations for armv7,
+                // because the NDK still supports armv7.
+                srcs: [
+                    "upstream-freebsd/lib/msun/src/s_ceil.c",
+                    "upstream-freebsd/lib/msun/src/s_ceilf.c",
+                    "upstream-freebsd/lib/msun/src/s_floor.c",
+                    "upstream-freebsd/lib/msun/src/s_floorf.c",
+                    "upstream-freebsd/lib/msun/src/s_rint.c",
+                    "upstream-freebsd/lib/msun/src/s_rintf.c",
+                    "upstream-freebsd/lib/msun/src/s_trunc.c",
+                    "upstream-freebsd/lib/msun/src/s_truncf.c",
+                ],
+            },
             instruction_set: "arm",
-            pack_relocations: false,
-            ldflags: ["-Wl,--hash-style=both"],
             version_script: ":libm.arm.map",
             no_libcrt: true,
             shared: {
                 // For backwards-compatibility, some arm32 builtins are exported from libm.so.
                 static_libs: ["libclang_rt.builtins-exported"],
             },
+            // "#pragma STDC FENV_ACCESS ON" in e_sqrtl.c is not supported for arm32.
+            cflags: ["-Wno-ignored-pragmas"],
         },
 
         arm64: {
             srcs: [
-                "arm64/fenv.c",
+                "fenv-arm64.c",
             ],
             exclude_srcs: [
                 "upstream-freebsd/lib/msun/src/s_fma.c",
@@ -311,19 +318,15 @@
                 "upstream-freebsd/lib/msun/src/s_lrintf.c",
                 "upstream-freebsd/lib/msun/src/s_lround.c",
                 "upstream-freebsd/lib/msun/src/s_lroundf.c",
-                "upstream-freebsd/lib/msun/src/s_rint.c",
-                "upstream-freebsd/lib/msun/src/s_rintf.c",
                 "upstream-freebsd/lib/msun/src/s_round.c",
                 "upstream-freebsd/lib/msun/src/s_roundf.c",
-                "upstream-freebsd/lib/msun/src/s_trunc.c",
-                "upstream-freebsd/lib/msun/src/s_truncf.c",
             ],
             version_script: ":libm.arm64.map",
         },
 
         riscv64: {
             srcs: [
-                "riscv64/fenv.c",
+                "fenv-riscv64.c",
             ],
 
             exclude_srcs: [
@@ -341,54 +344,37 @@
                 "upstream-freebsd/lib/msun/src/s_lrintf.c",
                 "upstream-freebsd/lib/msun/src/s_lround.c",
                 "upstream-freebsd/lib/msun/src/s_lroundf.c",
-                "upstream-freebsd/lib/msun/src/s_rint.c",
-                "upstream-freebsd/lib/msun/src/s_rintf.c",
                 "upstream-freebsd/lib/msun/src/s_round.c",
                 "upstream-freebsd/lib/msun/src/s_roundf.c",
-                "upstream-freebsd/lib/msun/src/s_trunc.c",
-                "upstream-freebsd/lib/msun/src/s_truncf.c",
             ],
             version_script: ":libm.riscv64.map",
         },
 
         x86: {
             srcs: [
-                "i387/fenv.c",
-                "x86/lrint.S",
-                "x86/lrintf.S",
-            ],
-            exclude_srcs: [
-                "upstream-freebsd/lib/msun/src/s_lrint.c",
-                "upstream-freebsd/lib/msun/src/s_lrintf.c",
-                "upstream-freebsd/lib/msun/src/s_rint.c",
-                "upstream-freebsd/lib/msun/src/s_rintf.c",
-                "upstream-freebsd/lib/msun/src/s_trunc.c",
-                "upstream-freebsd/lib/msun/src/s_truncf.c",
-            ],
-            local_include_dirs: ["i387"],
-            pack_relocations: false,
-            // The x86 ABI doesn't include this, which is needed for the
-            // roundss/roundsd instructions that we've used since Android M.
-            cflags: ["-msse4.1"],
-            ldflags: ["-Wl,--hash-style=both"],
-            version_script: ":libm.x86.map",
-        },
-
-        x86_64: {
-            srcs: [
-                "amd64/fenv.c",
-                "x86_64/lrint.S",
-                "x86_64/lrintf.S",
+                "fenv-x86.c",
             ],
             exclude_srcs: [
                 "upstream-freebsd/lib/msun/src/s_llrint.c",
                 "upstream-freebsd/lib/msun/src/s_llrintf.c",
                 "upstream-freebsd/lib/msun/src/s_lrint.c",
                 "upstream-freebsd/lib/msun/src/s_lrintf.c",
-                "upstream-freebsd/lib/msun/src/s_rint.c",
-                "upstream-freebsd/lib/msun/src/s_rintf.c",
-                "upstream-freebsd/lib/msun/src/s_trunc.c",
-                "upstream-freebsd/lib/msun/src/s_truncf.c",
+            ],
+            // The x86 ABI doesn't include this, which is needed for the
+            // roundss/roundsd instructions that we've used since Android M.
+            cflags: ["-msse4.1"],
+            version_script: ":libm.x86.map",
+        },
+
+        x86_64: {
+            srcs: [
+                "fenv-x86_64.c",
+            ],
+            exclude_srcs: [
+                "upstream-freebsd/lib/msun/src/s_llrint.c",
+                "upstream-freebsd/lib/msun/src/s_llrintf.c",
+                "upstream-freebsd/lib/msun/src/s_lrint.c",
+                "upstream-freebsd/lib/msun/src/s_lrintf.c",
             ],
             version_script: ":libm.x86_64.map",
         },
@@ -400,16 +386,11 @@
     ],
 
     cflags: [
-        "-D__BIONIC_LP32_USE_LONG_DOUBLE",
-        "-D_BSD_SOURCE",
-        "-DFLT_EVAL_METHOD=0",
         "-include freebsd-compat.h",
-        "-include fenv-access.h",
         "-fno-builtin",
         "-fno-math-errno",
         "-Wall",
         "-Werror",
-        "-Wno-ignored-pragmas",
         "-Wno-missing-braces",
         "-Wno-parentheses",
         "-Wno-sign-compare",
@@ -454,7 +435,6 @@
     },
 
     apex_available: [
-        "//apex_available:platform",
         "com.android.runtime",
     ],
 
@@ -467,8 +447,6 @@
     name: "libm",
     symbol_file: "libm.map.txt",
     first_version: "9",
-    // APIs implemented in asm don't have debug info: http://b/190554910.
-    allow_untyped_symbols: true,
 }
 
 genrule {
@@ -510,3 +488,10 @@
     tools: ["generate-version-script"],
     cmd: "$(location generate-version-script) x86_64 $(in) $(out)",
 }
+
+// Because of a historical accidnt, ldexp() is in libc,
+// even though ldexpf() and ldexpl() are in libm.
+filegroup {
+    name: "libc_ldexp_srcs",
+    srcs: ["upstream-freebsd/lib/msun/src/s_scalbn.c"],
+}
diff --git a/libm/NOTICE b/libm/NOTICE
index 5e2f8ca..bcdce54 100644
--- a/libm/NOTICE
+++ b/libm/NOTICE
@@ -140,15 +140,6 @@
 -------------------------------------------------------------------
 
 ====================================================
-Copyright (C) 2004 by Sun Microsystems, Inc. All rights reserved.
-
-Permission to use, copy, modify, and distribute this
-software is freely granted, provided that this notice
-is preserved.
-
--------------------------------------------------------------------
-
-====================================================
 Copyright 2004 Sun Microsystems, Inc.  All Rights Reserved.
 
 Permission to use, copy, modify, and distribute this
@@ -253,34 +244,6 @@
 
 -------------------------------------------------------------------
 
-Copyright (C) 2021 The Android Open Source Project
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions
-are met:
- * Redistributions of source code must retain the above copyright
-   notice, this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright
-   notice, this list of conditions and the following disclaimer in
-   the documentation and/or other materials provided with the
-   distribution.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
-FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
-BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
-OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
-AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
-OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-SUCH DAMAGE.
-
--------------------------------------------------------------------
-
 Copyright (C) 2022 The Android Open Source Project
 All rights reserved.
 
@@ -309,125 +272,6 @@
 
 -------------------------------------------------------------------
 
-Copyright (c) 1985, 1993
-   The Regents of the University of California.  All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions
-are met:
-1. Redistributions of source code must retain the above copyright
-   notice, this list of conditions and the following disclaimer.
-2. Redistributions in binary form must reproduce the above copyright
-   notice, this list of conditions and the following disclaimer in the
-   documentation and/or other materials provided with the distribution.
-3. Neither the name of the University nor the names of its contributors
-   may be used to endorse or promote products derived from this software
-   without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
-FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-SUCH DAMAGE.
-
--------------------------------------------------------------------
-
-Copyright (c) 1988, 1993
-   The Regents of the University of California.  All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions
-are met:
-1. Redistributions of source code must retain the above copyright
-   notice, this list of conditions and the following disclaimer.
-2. Redistributions in binary form must reproduce the above copyright
-   notice, this list of conditions and the following disclaimer in the
-   documentation and/or other materials provided with the distribution.
-3. All advertising materials mentioning features or use of this software
-   must display the following acknowledgement:
-   This product includes software developed by the University of
-   California, Berkeley and its contributors.
-4. Neither the name of the University nor the names of its contributors
-   may be used to endorse or promote products derived from this software
-   without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
-FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-SUCH DAMAGE.
-
--------------------------------------------------------------------
-
-Copyright (c) 1992, 1993
-   The Regents of the University of California.  All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions
-are met:
-1. Redistributions of source code must retain the above copyright
-   notice, this list of conditions and the following disclaimer.
-2. Redistributions in binary form must reproduce the above copyright
-   notice, this list of conditions and the following disclaimer in the
-   documentation and/or other materials provided with the distribution.
-3. Neither the name of the University nor the names of its contributors
-   may be used to endorse or promote products derived from this software
-   without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
-FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-SUCH DAMAGE.
-
--------------------------------------------------------------------
-
-Copyright (c) 2003 Dag-Erling Smørgrav
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions
-are met:
-1. Redistributions of source code must retain the above copyright
-   notice, this list of conditions and the following disclaimer
-   in this position and unchanged.
-2. Redistributions in binary form must reproduce the above copyright
-   notice, this list of conditions and the following disclaimer in the
-   documentation and/or other materials provided with the distribution.
-3. The name of the author may not be used to endorse or promote products
-   derived from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
-IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
-OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
-THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
--------------------------------------------------------------------
-
 Copyright (c) 2003 Mike Barcroft <mike@FreeBSD.org>
 Copyright (c) 2002 David Schultz <das@FreeBSD.ORG>
 All rights reserved.
@@ -455,32 +299,6 @@
 
 -------------------------------------------------------------------
 
-Copyright (c) 2003, Steven G. Kargl
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions
-are met:
-1. Redistributions of source code must retain the above copyright
-   notice unmodified, this list of conditions, and the following
-   disclaimer.
-2. Redistributions in binary form must reproduce the above copyright
-   notice, this list of conditions and the following disclaimer in the
-   documentation and/or other materials provided with the distribution.
-
-THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
-IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
-OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
-THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
--------------------------------------------------------------------
-
 Copyright (c) 2004 David Schultz <das@FreeBSD.ORG>
 All rights reserved.
 
@@ -507,32 +325,6 @@
 
 -------------------------------------------------------------------
 
-Copyright (c) 2004 Stefan Farfeleder
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions
-are met:
-1. Redistributions of source code must retain the above copyright
-   notice, this list of conditions and the following disclaimer.
-2. Redistributions in binary form must reproduce the above copyright
-   notice, this list of conditions and the following disclaimer in the
-   documentation and/or other materials provided with the distribution.
-
-THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS ``AS IS'' AND
-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-ARE DISCLAIMED.  IN NO EVENT SHALL AUTHOR OR CONTRIBUTORS BE LIABLE
-FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-SUCH DAMAGE.
-
--------------------------------------------------------------------
-
 Copyright (c) 2004-2005 David Schultz <das (at) FreeBSD.ORG>
 All rights reserved.
 
@@ -585,231 +377,15 @@
 
 -------------------------------------------------------------------
 
-Copyright (c) 2005 Bruce D. Evans and Steven G. Kargl
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions
-are met:
-1. Redistributions of source code must retain the above copyright
-   notice unmodified, this list of conditions, and the following
-   disclaimer.
-2. Redistributions in binary form must reproduce the above copyright
-   notice, this list of conditions and the following disclaimer in the
-   documentation and/or other materials provided with the distribution.
-
-THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
-IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
-OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
-THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
--------------------------------------------------------------------
-
-Copyright (c) 2005 David Schultz <das@FreeBSD.ORG>
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions
-are met:
-1. Redistributions of source code must retain the above copyright
-   notice, this list of conditions and the following disclaimer.
-2. Redistributions in binary form must reproduce the above copyright
-   notice, this list of conditions and the following disclaimer in the
-   documentation and/or other materials provided with the distribution.
-
-THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
-FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-SUCH DAMAGE.
-
--------------------------------------------------------------------
-
-Copyright (c) 2005-2008 David Schultz <das@FreeBSD.ORG>
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions
-are met:
-1. Redistributions of source code must retain the above copyright
-   notice, this list of conditions and the following disclaimer.
-2. Redistributions in binary form must reproduce the above copyright
-   notice, this list of conditions and the following disclaimer in the
-   documentation and/or other materials provided with the distribution.
-
-THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
-FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-SUCH DAMAGE.
-
--------------------------------------------------------------------
-
-Copyright (c) 2005-2011 David Schultz <das@FreeBSD.ORG>
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions
-are met:
-1. Redistributions of source code must retain the above copyright
-   notice, this list of conditions and the following disclaimer.
-2. Redistributions in binary form must reproduce the above copyright
-   notice, this list of conditions and the following disclaimer in the
-   documentation and/or other materials provided with the distribution.
-
-THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
-FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-SUCH DAMAGE.
-
--------------------------------------------------------------------
-
 Copyright (c) 2005-2020 Rich Felker, et al.
 
+SPDX-License-Identifier: MIT
 
 Please see https://git.musl-libc.org/cgit/musl/tree/COPYRIGHT
 for all contributors to musl.
 
 -------------------------------------------------------------------
 
-Copyright (c) 2007 David Schultz
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions
-are met:
-1. Redistributions of source code must retain the above copyright
-   notice, this list of conditions and the following disclaimer.
-2. Redistributions in binary form must reproduce the above copyright
-   notice, this list of conditions and the following disclaimer in the
-   documentation and/or other materials provided with the distribution.
-
-THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS ``AS IS'' AND
-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-ARE DISCLAIMED.  IN NO EVENT SHALL AUTHOR OR CONTRIBUTORS BE LIABLE
-FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-SUCH DAMAGE.
-
--------------------------------------------------------------------
-
-Copyright (c) 2007 David Schultz <das@FreeBSD.ORG>
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions
-are met:
-1. Redistributions of source code must retain the above copyright
-   notice, this list of conditions and the following disclaimer.
-2. Redistributions in binary form must reproduce the above copyright
-   notice, this list of conditions and the following disclaimer in the
-   documentation and/or other materials provided with the distribution.
-
-THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
-FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-SUCH DAMAGE.
-
--------------------------------------------------------------------
-
-Copyright (c) 2007 David Schultz <das@FreeBSD.ORG>
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions
-are met:
-1. Redistributions of source code must retain the above copyright
-   notice, this list of conditions and the following disclaimer.
-2. Redistributions in binary form must reproduce the above copyright
-   notice, this list of conditions and the following disclaimer in the
-   documentation and/or other materials provided with the distribution.
-
-THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
-FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-SUCH DAMAGE.
-
-Derived from s_modf.c, which has the following Copyright:
-====================================================
-Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
-
-Developed at SunPro, a Sun Microsystems, Inc. business.
-Permission to use, copy, modify, and distribute this
-software is freely granted, provided that this notice
-is preserved.
-
--------------------------------------------------------------------
-
-Copyright (c) 2007 Steven G. Kargl
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions
-are met:
-1. Redistributions of source code must retain the above copyright
-   notice unmodified, this list of conditions, and the following
-   disclaimer.
-2. Redistributions in binary form must reproduce the above copyright
-   notice, this list of conditions and the following disclaimer in the
-   documentation and/or other materials provided with the distribution.
-
-THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
-IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
-OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
-THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
--------------------------------------------------------------------
-
 Copyright (c) 2007 The NetBSD Foundation, Inc.
 All rights reserved.
 
@@ -867,84 +443,6 @@
 
 -------------------------------------------------------------------
 
-Copyright (c) 2007-2008 David Schultz <das@FreeBSD.ORG>
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions
-are met:
-1. Redistributions of source code must retain the above copyright
-   notice, this list of conditions and the following disclaimer.
-2. Redistributions in binary form must reproduce the above copyright
-   notice, this list of conditions and the following disclaimer in the
-   documentation and/or other materials provided with the distribution.
-
-THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
-FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-SUCH DAMAGE.
-
--------------------------------------------------------------------
-
-Copyright (c) 2007-2013 Bruce D. Evans
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions
-are met:
-1. Redistributions of source code must retain the above copyright
-   notice unmodified, this list of conditions, and the following
-   disclaimer.
-2. Redistributions in binary form must reproduce the above copyright
-   notice, this list of conditions and the following disclaimer in the
-   documentation and/or other materials provided with the distribution.
-
-THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
-IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
-OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
-THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
--------------------------------------------------------------------
-
-Copyright (c) 2008 David Schultz <das@FreeBSD.ORG>
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions
-are met:
-1. Redistributions of source code must retain the above copyright
-   notice, this list of conditions and the following disclaimer.
-2. Redistributions in binary form must reproduce the above copyright
-   notice, this list of conditions and the following disclaimer in the
-   documentation and/or other materials provided with the distribution.
-
-THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
-FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-SUCH DAMAGE.
-
--------------------------------------------------------------------
-
 Copyright (c) 2008 Stephen L. Moshier <steve@moshier.net>
 
 Permission to use, copy, modify, and distribute this software for any
@@ -961,112 +459,6 @@
 
 -------------------------------------------------------------------
 
-Copyright (c) 2009-2013 Steven G. Kargl
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions
-are met:
-1. Redistributions of source code must retain the above copyright
-   notice unmodified, this list of conditions, and the following
-   disclaimer.
-2. Redistributions in binary form must reproduce the above copyright
-   notice, this list of conditions and the following disclaimer in the
-   documentation and/or other materials provided with the distribution.
-
-THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
-IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
-OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
-THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-Optimized by Bruce D. Evans.
-
--------------------------------------------------------------------
-
-Copyright (c) 2011 David Schultz
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions
-are met:
-1. Redistributions of source code must retain the above copyright
-   notice unmodified, this list of conditions, and the following
-   disclaimer.
-2. Redistributions in binary form must reproduce the above copyright
-   notice, this list of conditions and the following disclaimer in the
-   documentation and/or other materials provided with the distribution.
-
-THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
-IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
-OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
-THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
--------------------------------------------------------------------
-
-Copyright (c) 2011 David Schultz <das@FreeBSD.ORG>
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions
-are met:
-1. Redistributions of source code must retain the above copyright
-   notice, this list of conditions and the following disclaimer.
-2. Redistributions in binary form must reproduce the above copyright
-   notice, this list of conditions and the following disclaimer in the
-   documentation and/or other materials provided with the distribution.
-
-THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
-FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-SUCH DAMAGE.
-
--------------------------------------------------------------------
-
-Copyright (c) 2012 Stephen Montgomery-Smith <stephen@FreeBSD.ORG>
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions
-are met:
-1. Redistributions of source code must retain the above copyright
-   notice, this list of conditions and the following disclaimer.
-2. Redistributions in binary form must reproduce the above copyright
-   notice, this list of conditions and the following disclaimer in the
-   documentation and/or other materials provided with the distribution.
-
-THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
-FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-SUCH DAMAGE.
-
--------------------------------------------------------------------
-
 Copyright (c) 2012 Stephen Montgomery-Smith <stephen@FreeBSD.ORG>
 Copyright (c) 2017 Mahdi Mokhtari <mmokhi@FreeBSD.org>
 All rights reserved.
@@ -1120,36 +512,6 @@
 
 -------------------------------------------------------------------
 
-Copyright (c) 2014, Intel Corporation
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
-    * Redistributions of source code must retain the above copyright notice,
-    * this list of conditions and the following disclaimer.
-
-    * Redistributions in binary form must reproduce the above copyright notice,
-    * this list of conditions and the following disclaimer in the documentation
-    * and/or other materials provided with the distribution.
-
-    * Neither the name of Intel Corporation nor the names of its contributors
-    * may be used to endorse or promote products derived from this software
-    * without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
-ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
--------------------------------------------------------------------
-
 Copyright (c) 2017 Steven G. Kargl
 All rights reserved.
 
@@ -1176,7 +538,339 @@
 
 -------------------------------------------------------------------
 
-From: @(#)s_ilogb.c 5.1 93/09/24
+Copyright (c) 2017, 2023 Steven G. Kargl
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+1. Redistributions of source code must retain the above copyright
+   notice unmodified, this list of conditions, and the following
+   disclaimer.
+2. Redistributions in binary form must reproduce the above copyright
+   notice, this list of conditions and the following disclaimer in the
+   documentation and/or other materials provided with the distribution.
+
+THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+-------------------------------------------------------------------
+
+SPDX-License-Identifier: BSD-2-Clause
+
+Copyright (c) 2003, Steven G. Kargl
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+1. Redistributions of source code must retain the above copyright
+   notice unmodified, this list of conditions, and the following
+   disclaimer.
+2. Redistributions in binary form must reproduce the above copyright
+   notice, this list of conditions and the following disclaimer in the
+   documentation and/or other materials provided with the distribution.
+
+THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+-------------------------------------------------------------------
+
+SPDX-License-Identifier: BSD-2-Clause
+
+Copyright (c) 2004 David Schultz <das@FreeBSD.ORG>
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+1. Redistributions of source code must retain the above copyright
+   notice, this list of conditions and the following disclaimer.
+2. Redistributions in binary form must reproduce the above copyright
+   notice, this list of conditions and the following disclaimer in the
+   documentation and/or other materials provided with the distribution.
+
+THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGE.
+
+-------------------------------------------------------------------
+
+SPDX-License-Identifier: BSD-2-Clause
+
+Copyright (c) 2004 Stefan Farfeleder
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+1. Redistributions of source code must retain the above copyright
+   notice, this list of conditions and the following disclaimer.
+2. Redistributions in binary form must reproduce the above copyright
+   notice, this list of conditions and the following disclaimer in the
+   documentation and/or other materials provided with the distribution.
+
+THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED.  IN NO EVENT SHALL AUTHOR OR CONTRIBUTORS BE LIABLE
+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGE.
+
+-------------------------------------------------------------------
+
+SPDX-License-Identifier: BSD-2-Clause
+
+Copyright (c) 2004-2005 David Schultz <das@FreeBSD.ORG>
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+1. Redistributions of source code must retain the above copyright
+   notice, this list of conditions and the following disclaimer.
+2. Redistributions in binary form must reproduce the above copyright
+   notice, this list of conditions and the following disclaimer in the
+   documentation and/or other materials provided with the distribution.
+
+THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGE.
+
+-------------------------------------------------------------------
+
+SPDX-License-Identifier: BSD-2-Clause
+
+Copyright (c) 2005 Bruce D. Evans and Steven G. Kargl
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+1. Redistributions of source code must retain the above copyright
+   notice unmodified, this list of conditions, and the following
+   disclaimer.
+2. Redistributions in binary form must reproduce the above copyright
+   notice, this list of conditions and the following disclaimer in the
+   documentation and/or other materials provided with the distribution.
+
+THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+-------------------------------------------------------------------
+
+SPDX-License-Identifier: BSD-2-Clause
+
+Copyright (c) 2005 David Schultz <das@FreeBSD.ORG>
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+1. Redistributions of source code must retain the above copyright
+   notice, this list of conditions and the following disclaimer.
+2. Redistributions in binary form must reproduce the above copyright
+   notice, this list of conditions and the following disclaimer in the
+   documentation and/or other materials provided with the distribution.
+
+THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGE.
+
+-------------------------------------------------------------------
+
+SPDX-License-Identifier: BSD-2-Clause
+
+Copyright (c) 2005-2008 David Schultz <das@FreeBSD.ORG>
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+1. Redistributions of source code must retain the above copyright
+   notice, this list of conditions and the following disclaimer.
+2. Redistributions in binary form must reproduce the above copyright
+   notice, this list of conditions and the following disclaimer in the
+   documentation and/or other materials provided with the distribution.
+
+THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGE.
+
+-------------------------------------------------------------------
+
+SPDX-License-Identifier: BSD-2-Clause
+
+Copyright (c) 2005-2011 David Schultz <das@FreeBSD.ORG>
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+1. Redistributions of source code must retain the above copyright
+   notice, this list of conditions and the following disclaimer.
+2. Redistributions in binary form must reproduce the above copyright
+   notice, this list of conditions and the following disclaimer in the
+   documentation and/or other materials provided with the distribution.
+
+THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGE.
+
+-------------------------------------------------------------------
+
+SPDX-License-Identifier: BSD-2-Clause
+
+Copyright (c) 2007 David Schultz
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+1. Redistributions of source code must retain the above copyright
+   notice, this list of conditions and the following disclaimer.
+2. Redistributions in binary form must reproduce the above copyright
+   notice, this list of conditions and the following disclaimer in the
+   documentation and/or other materials provided with the distribution.
+
+THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED.  IN NO EVENT SHALL AUTHOR OR CONTRIBUTORS BE LIABLE
+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGE.
+
+-------------------------------------------------------------------
+
+SPDX-License-Identifier: BSD-2-Clause
+
+Copyright (c) 2007 David Schultz <das@FreeBSD.ORG>
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+1. Redistributions of source code must retain the above copyright
+   notice, this list of conditions and the following disclaimer.
+2. Redistributions in binary form must reproduce the above copyright
+   notice, this list of conditions and the following disclaimer in the
+   documentation and/or other materials provided with the distribution.
+
+THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGE.
+
+-------------------------------------------------------------------
+
+SPDX-License-Identifier: BSD-2-Clause
+
+Copyright (c) 2007 David Schultz <das@FreeBSD.ORG>
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+1. Redistributions of source code must retain the above copyright
+   notice, this list of conditions and the following disclaimer.
+2. Redistributions in binary form must reproduce the above copyright
+   notice, this list of conditions and the following disclaimer in the
+   documentation and/or other materials provided with the distribution.
+
+THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGE.
+
+Derived from s_modf.c, which has the following Copyright:
 ====================================================
 Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
 
@@ -1187,3 +881,291 @@
 
 -------------------------------------------------------------------
 
+SPDX-License-Identifier: BSD-2-Clause
+
+Copyright (c) 2007 Steven G. Kargl
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+1. Redistributions of source code must retain the above copyright
+   notice unmodified, this list of conditions, and the following
+   disclaimer.
+2. Redistributions in binary form must reproduce the above copyright
+   notice, this list of conditions and the following disclaimer in the
+   documentation and/or other materials provided with the distribution.
+
+THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+-------------------------------------------------------------------
+
+SPDX-License-Identifier: BSD-2-Clause
+
+Copyright (c) 2007-2008 David Schultz <das@FreeBSD.ORG>
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+1. Redistributions of source code must retain the above copyright
+   notice, this list of conditions and the following disclaimer.
+2. Redistributions in binary form must reproduce the above copyright
+   notice, this list of conditions and the following disclaimer in the
+   documentation and/or other materials provided with the distribution.
+
+THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGE.
+
+-------------------------------------------------------------------
+
+SPDX-License-Identifier: BSD-2-Clause
+
+Copyright (c) 2007-2013 Bruce D. Evans
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+1. Redistributions of source code must retain the above copyright
+   notice unmodified, this list of conditions, and the following
+   disclaimer.
+2. Redistributions in binary form must reproduce the above copyright
+   notice, this list of conditions and the following disclaimer in the
+   documentation and/or other materials provided with the distribution.
+
+THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+-------------------------------------------------------------------
+
+SPDX-License-Identifier: BSD-2-Clause
+
+Copyright (c) 2008 David Schultz <das@FreeBSD.ORG>
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+1. Redistributions of source code must retain the above copyright
+   notice, this list of conditions and the following disclaimer.
+2. Redistributions in binary form must reproduce the above copyright
+   notice, this list of conditions and the following disclaimer in the
+   documentation and/or other materials provided with the distribution.
+
+THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGE.
+
+-------------------------------------------------------------------
+
+SPDX-License-Identifier: BSD-2-Clause
+
+Copyright (c) 2009-2013 Steven G. Kargl
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+1. Redistributions of source code must retain the above copyright
+   notice unmodified, this list of conditions, and the following
+   disclaimer.
+2. Redistributions in binary form must reproduce the above copyright
+   notice, this list of conditions and the following disclaimer in the
+   documentation and/or other materials provided with the distribution.
+
+THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+Optimized by Bruce D. Evans.
+
+-------------------------------------------------------------------
+
+SPDX-License-Identifier: BSD-2-Clause
+
+Copyright (c) 2011 David Schultz
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+1. Redistributions of source code must retain the above copyright
+   notice unmodified, this list of conditions, and the following
+   disclaimer.
+2. Redistributions in binary form must reproduce the above copyright
+   notice, this list of conditions and the following disclaimer in the
+   documentation and/or other materials provided with the distribution.
+
+THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+-------------------------------------------------------------------
+
+SPDX-License-Identifier: BSD-2-Clause
+
+Copyright (c) 2011 David Schultz <das@FreeBSD.ORG>
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+1. Redistributions of source code must retain the above copyright
+   notice, this list of conditions and the following disclaimer.
+2. Redistributions in binary form must reproduce the above copyright
+   notice, this list of conditions and the following disclaimer in the
+   documentation and/or other materials provided with the distribution.
+
+THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGE.
+
+-------------------------------------------------------------------
+
+SPDX-License-Identifier: BSD-2-Clause
+
+Copyright (c) 2012 Stephen Montgomery-Smith <stephen@FreeBSD.ORG>
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+1. Redistributions of source code must retain the above copyright
+   notice, this list of conditions and the following disclaimer.
+2. Redistributions in binary form must reproduce the above copyright
+   notice, this list of conditions and the following disclaimer in the
+   documentation and/or other materials provided with the distribution.
+
+THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGE.
+
+-------------------------------------------------------------------
+
+SPDX-License-Identifier: BSD-3-Clause
+
+Copyright (c) 1985, 1993
+   The Regents of the University of California.  All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+1. Redistributions of source code must retain the above copyright
+   notice, this list of conditions and the following disclaimer.
+2. Redistributions in binary form must reproduce the above copyright
+   notice, this list of conditions and the following disclaimer in the
+   documentation and/or other materials provided with the distribution.
+3. Neither the name of the University nor the names of its contributors
+   may be used to endorse or promote products derived from this software
+   without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGE.
+
+-------------------------------------------------------------------
+
+SPDX-License-Identifier: BSD-3-Clause
+
+Copyright (c) 1992, 1993
+   The Regents of the University of California.  All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+1. Redistributions of source code must retain the above copyright
+   notice, this list of conditions and the following disclaimer.
+2. Redistributions in binary form must reproduce the above copyright
+   notice, this list of conditions and the following disclaimer in the
+   documentation and/or other materials provided with the distribution.
+3. Neither the name of the University nor the names of its contributors
+   may be used to endorse or promote products derived from this software
+   without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGE.
+
+-------------------------------------------------------------------
+
diff --git a/libm/builtins.cpp b/libm/builtins.cpp
index 41e145b..97db425 100644
--- a/libm/builtins.cpp
+++ b/libm/builtins.cpp
@@ -18,13 +18,12 @@
 
 #include "fpmath.h"
 
-double fabs(double x) { return __builtin_fabs(x); }
-float fabsf(float x) { return __builtin_fabsf(x); }
-long double fabsl(long double x) { return __builtin_fabsl(x); }
-
-#if defined(__aarch64__) || defined(__riscv) || defined(__i386__) || defined(__x86_64__)
-float ceilf(float x) { return __builtin_ceilf(x); }
+#if defined(__arm__) && (__ARM_ARCH <= 7)
+// armv7 arm32 has no instructions to implement these builtins,
+// so we include the msun source in the .bp file instead.
+#else
 double ceil(double x) { return __builtin_ceil(x); }
+float ceilf(float x) { return __builtin_ceilf(x); }
 #if defined(__ILP32__)
 __weak_reference(ceil, ceill);
 #endif
@@ -34,21 +33,16 @@
 float copysignf(float x, float y) { return __builtin_copysignf(x, y); }
 long double copysignl(long double x, long double y) { return __builtin_copysignl(x, y); }
 
-#if defined(__arm__) && (__ARM_ARCH < 8)
-// armv8 arm32 has a single-instruction implementation for these, but
-// armv7 arm32 doesn't, so __builtin_ doesn't work for arm32.
-#include "math_private.h"
-namespace s_floor {
-#include "upstream-freebsd/lib/msun/src/s_floor.c"
-}
-namespace s_floorf {
-#include "upstream-freebsd/lib/msun/src/s_floorf.c"
-}
-float floorf(float x) { return s_floorf::floorf(x); }
-double floor(double x) { return s_floor::floor(x); }
+double fabs(double x) { return __builtin_fabs(x); }
+float fabsf(float x) { return __builtin_fabsf(x); }
+long double fabsl(long double x) { return __builtin_fabsl(x); }
+
+#if defined(__arm__) && (__ARM_ARCH <= 7)
+// armv7 arm32 has no instructions to implement these builtins,
+// so we include the msun source in the .bp file instead.
 #else
-float floorf(float x) { return __builtin_floorf(x); }
 double floor(double x) { return __builtin_floor(x); }
+float floorf(float x) { return __builtin_floorf(x); }
 #if defined(__ILP32__)
 __weak_reference(floor, floorl);
 #endif
@@ -65,7 +59,7 @@
 double fmin(double x, double y) { return __builtin_fmin(x, y); }
 #endif
 
-#if defined(__aarch64__) || defined(__riscv)
+#if defined(__aarch64__) || defined(__riscv) || defined(__i386__) || defined(__x86_64__)
 long lrint(double x) { return __builtin_lrint(x); }
 long lrintf(float x) { return __builtin_lrintf(x); }
 long long llrint(double x) { return __builtin_llrint(x); }
@@ -79,28 +73,34 @@
 long long llroundf(float x) { return __builtin_llroundf(x); }
 #endif
 
-#if defined(__aarch64__) || defined(__riscv) || defined(__i386__) || defined(__x86_64__)
-float rintf(float x) { return __builtin_rintf(x); }
+#if defined(__arm__) && (__ARM_ARCH <= 7)
+// armv7 arm32 has no instructions to implement these builtins,
+// so we include the msun source in the .bp file instead.
+#else
 double rint(double x) { return __builtin_rint(x); }
+float rintf(float x) { return __builtin_rintf(x); }
 #if defined(__ILP32__)
 __weak_reference(rint, rintl);
 #endif
 #endif
 
 #if defined(__aarch64__) || defined(__riscv)
-float roundf(float x) { return __builtin_roundf(x); }
 double round(double x) { return __builtin_round(x); }
+float roundf(float x) { return __builtin_roundf(x); }
 #endif
 
-float sqrtf(float x) { return __builtin_sqrtf(x); }
 double sqrt(double x) { return __builtin_sqrt(x); }
+float sqrtf(float x) { return __builtin_sqrtf(x); }
 #if defined(__ILP32__)
 __weak_reference(sqrt, sqrtl);
 #endif
 
-#if defined(__aarch64__) || defined(__riscv) || defined(__i386__) || defined(__x86_64__)
-float truncf(float x) { return __builtin_truncf(x); }
+#if defined(__arm__) && (__ARM_ARCH <= 7)
+// armv7 arm32 has no instructions to implement these builtins,
+// so we include the msun source in the .bp file instead.
+#else
 double trunc(double x) { return __builtin_trunc(x); }
+float truncf(float x) { return __builtin_truncf(x); }
 #if defined(__ILP32__)
 __weak_reference(trunc, truncl);
 #endif
diff --git a/libm/digittoint.c b/libm/digittoint.c
deleted file mode 100644
index 1824788..0000000
--- a/libm/digittoint.c
+++ /dev/null
@@ -1,46 +0,0 @@
-/*-
- * Copyright (c) 2007 David Schultz
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL AUTHOR OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- * $FreeBSD$
- */
-
-#include <sys/cdefs.h>
-
-/* digittoint is in the FreeBSD C library, but implemented in terms of locale stuff. */
-__LIBC_HIDDEN__ int digittoint(char ch) {
-  int d = ch - '0';
-  if ((unsigned) d < 10) {
-    return d;
-  }
-  d = ch - 'a';
-  if ((unsigned) d < 6) {
-    return d + 10;
-  }
-  d = ch - 'A';
-  if ((unsigned) d < 6) {
-    return d + 10;
-  }
-  return -1;
-}
diff --git a/libm/fake_long_double.c b/libm/fake_long_double.c
index 5f9b980..68492bc 100644
--- a/libm/fake_long_double.c
+++ b/libm/fake_long_double.c
@@ -29,9 +29,7 @@
 long double fminl(long double a1, long double a2) { return fmin(a1, a2); }
 int ilogbl(long double a1) { return ilogb(a1); }
 long long llrintl(long double a1) { return llrint(a1); }
-#if !defined(__i386__) // x86 has an assembler lrint/lrintl.
 long lrintl(long double a1) { return lrint(a1); }
-#endif
 long long llroundl(long double a1) { return llround(a1); }
 long lroundl(long double a1) { return lround(a1); }
 long double modfl(long double a1, long double* a2) { double i; double f = modf(a1, &i); *a2 = i; return f; }
diff --git a/libm/arm/fenv.c b/libm/fenv-arm.c
similarity index 100%
rename from libm/arm/fenv.c
rename to libm/fenv-arm.c
diff --git a/libm/arm64/fenv.c b/libm/fenv-arm64.c
similarity index 100%
rename from libm/arm64/fenv.c
rename to libm/fenv-arm64.c
diff --git a/libm/riscv64/fenv.c b/libm/fenv-riscv64.c
similarity index 100%
rename from libm/riscv64/fenv.c
rename to libm/fenv-riscv64.c
diff --git a/libm/i387/fenv.c b/libm/fenv-x86.c
similarity index 100%
rename from libm/i387/fenv.c
rename to libm/fenv-x86.c
diff --git a/libm/amd64/fenv.c b/libm/fenv-x86_64.c
similarity index 100%
rename from libm/amd64/fenv.c
rename to libm/fenv-x86_64.c
diff --git a/libm/freebsd-compat.h b/libm/freebsd-compat.h
index 7accc55..9555ff9 100644
--- a/libm/freebsd-compat.h
+++ b/libm/freebsd-compat.h
@@ -16,9 +16,12 @@
 
 #pragma once
 
+// Since we're implementing all the extensions,
+// we need to make sure we get all their declarations when we include <math.h>.
+#define _BSD_SOURCE
+
 // Some FreeBSD source includes <complex.h> and assumes <math.h> from that.
 #include <math.h>
-#include <float.h>
 
 #define __weak_reference(sym,alias)     \
     __asm__(".weak " #alias);           \
@@ -27,18 +30,12 @@
 #define __strong_reference(sym,aliassym) \
     extern __typeof (sym) aliassym __attribute__ ((__alias__ (#sym)))
 
-#define __warn_references(sym,msg) /* ignored */
-
-// digittoint is in BSD's <ctype.h>, but not ours, so we have a secret
-// implementation in libm. We reuse parts of libm in the NDK's
-// libandroid_support, where it's a static library, so we want all our
-// "hidden" functions start with a double underscore --- being HIDDEN
-// in the ELF sense is not sufficient.
-#define digittoint __libm_digittoint
-int digittoint(char ch);
-
-// Similarly rename _scan_nan.
-#define _scan_nan __libm_scan_nan
+// digittoint is in BSD's <ctype.h> but not ours.
+#include <ctype.h>
+static inline int digittoint(char ch) {
+  if (!isxdigit(ch)) return -1;
+  return isdigit(ch) ? (ch - '0') : (_tolower(ch) - 'a');
+}
 
 // FreeBSD exports these in <math.h> but we don't.
 double cospi(double);
diff --git a/libm/libm.map.txt b/libm/libm.map.txt
index a931b93..b9a0db2 100644
--- a/libm/libm.map.txt
+++ b/libm/libm.map.txt
@@ -8,23 +8,23 @@
     acosf;
     acosh;
     acoshf;
-    acoshl; # introduced=21
-    acosl; # introduced=21
+    acoshl;
+    acosl;
     asin;
     asinf;
     asinh;
     asinhf;
-    asinhl; # introduced=21
-    asinl; # introduced=21
+    asinhl;
+    asinl;
     atan;
     atan2;
     atan2f;
-    atan2l; # introduced=21
+    atan2l;
     atanf;
     atanh;
     atanhf;
-    atanhl; # introduced=21
-    atanl; # introduced=21
+    atanhl;
+    atanl;
     cabs; # introduced=23
     cabsf; # introduced=23
     cabsl; # introduced-arm=21 introduced-arm64=23 introduced-x86=21 introduced-x86_64=23
@@ -45,7 +45,7 @@
     catanhf; # introduced=23
     cbrt;
     cbrtf;
-    cbrtl; # introduced=21
+    cbrtl;
     ccos; # introduced=23
     ccosf; # introduced=23
     ccosh; # introduced=23
@@ -68,8 +68,8 @@
     cosf;
     cosh;
     coshf;
-    coshl; # introduced=21
-    cosl; # introduced=21
+    coshl;
+    cosl;
     cproj; # introduced=23
     cprojf; # introduced=23
     cprojl; # introduced-arm=21 introduced-arm64=23 introduced-x86=21 introduced-x86_64=23
@@ -92,38 +92,38 @@
     erf;
     erfc;
     erfcf;
-    erfcl; # introduced=21
+    erfcl;
     erff;
-    erfl; # introduced=21
+    erfl;
     exp;
     exp2;
     exp2f;
-    exp2l; # introduced=21
+    exp2l;
     expf;
-    expl; # introduced=21
+    expl;
     expm1;
     expm1f;
-    expm1l; # introduced=21
+    expm1l;
     fabs;
     fabsf;
     fabsl;
     fdim;
     fdimf;
     fdiml;
-    feclearexcept; # introduced-arm=21 introduced-arm64=21 introduced-x86=9 introduced-x86_64=21
-    fedisableexcept; # introduced-arm=21 introduced-arm64=21 introduced-x86=9 introduced-x86_64=21
-    feenableexcept; # introduced-arm=21 introduced-arm64=21 introduced-x86=9 introduced-x86_64=21
-    fegetenv; # introduced-arm=21 introduced-arm64=21 introduced-x86=9 introduced-x86_64=21
-    fegetexcept; # introduced-arm=21 introduced-arm64=21 introduced-x86=9 introduced-x86_64=21
-    fegetexceptflag; # introduced-arm=21 introduced-arm64=21 introduced-x86=9 introduced-x86_64=21
-    fegetround; # introduced-arm=21 introduced-arm64=21 introduced-x86=9 introduced-x86_64=21
-    feholdexcept; # introduced-arm=21 introduced-arm64=21 introduced-x86=9 introduced-x86_64=21
-    feraiseexcept; # introduced-arm=21 introduced-arm64=21 introduced-x86=9 introduced-x86_64=21
-    fesetenv; # introduced-arm=21 introduced-arm64=21 introduced-x86=9 introduced-x86_64=21
-    fesetexceptflag; # introduced-arm=21 introduced-arm64=21 introduced-x86=9 introduced-x86_64=21
-    fesetround; # introduced-arm=21 introduced-arm64=21 introduced-x86=9 introduced-x86_64=21
-    fetestexcept; # introduced-arm=21 introduced-arm64=21 introduced-x86=9 introduced-x86_64=21
-    feupdateenv; # introduced-arm=21 introduced-arm64=21 introduced-x86=9 introduced-x86_64=21
+    feclearexcept;
+    fedisableexcept;
+    feenableexcept;
+    fegetenv;
+    fegetexcept;
+    fegetexceptflag;
+    fegetround;
+    feholdexcept;
+    feraiseexcept;
+    fesetenv;
+    fesetexceptflag;
+    fesetround;
+    fetestexcept;
+    feupdateenv;
     finite;
     finitef;
     floor;
@@ -131,7 +131,7 @@
     floorl;
     fma;
     fmaf;
-    fmal; # introduced=21
+    fmal;
     fmax;
     fmaxf;
     fmaxl;
@@ -140,17 +140,17 @@
     fminl;
     fmod;
     fmodf;
-    fmodl; # introduced=21
+    fmodl;
     frexp;
     frexpf;
-    frexpl; # introduced=21
+    frexpl;
     gamma;
     gamma_r;
     gammaf;
     gammaf_r;
     hypot;
     hypotf;
-    hypotl; # introduced=21
+    hypotl;
     ilogb;
     ilogbf;
     ilogbl;
@@ -166,77 +166,77 @@
     lgamma_r;
     lgammaf;
     lgammaf_r;
-    lgammal; # introduced=21
+    lgammal;
     lgammal_r; # introduced=23
     llrint;
     llrintf;
-    llrintl; # introduced=21
+    llrintl;
     llround;
     llroundf;
     llroundl;
     log;
     log10;
     log10f;
-    log10l; # introduced=21
+    log10l;
     log1p;
     log1pf;
-    log1pl; # introduced=21
-    log2; # introduced-arm=18 introduced-arm64=21 introduced-x86=18 introduced-x86_64=21
-    log2f; # introduced-arm=18 introduced-arm64=21 introduced-x86=18 introduced-x86_64=21
-    log2l; # introduced-arm=18 introduced-arm64=21 introduced-x86=18 introduced-x86_64=21
+    log1pl;
+    log2;
+    log2f;
+    log2l;
     logb;
     logbf;
-    logbl; # introduced-arm=18 introduced-arm64=21 introduced-x86=18 introduced-x86_64=21
+    logbl;
     logf;
-    logl; # introduced=21
+    logl;
     lrint;
     lrintf;
-    lrintl; # introduced=21
+    lrintl;
     lround;
     lroundf;
     lroundl;
     modf;
     modff;
-    modfl; # introduced=21
-    nan; # introduced-arm=13 introduced-arm64=21 introduced-x86=9 introduced-x86_64=21
-    nanf; # introduced-arm=13 introduced-arm64=21 introduced-x86=9 introduced-x86_64=21
-    nanl; # introduced-arm=13 introduced-arm64=21 introduced-x86=13 introduced-x86_64=21
+    modfl;
+    nan;
+    nanf;
+    nanl;
     nearbyint;
     nearbyintf;
-    nearbyintl; # introduced=21
+    nearbyintl;
     nextafter;
     nextafterf;
-    nextafterl; # introduced=21
-    nexttoward; # introduced-arm=18 introduced-arm64=21 introduced-x86=18 introduced-x86_64=21
+    nextafterl;
+    nexttoward;
     nexttowardf;
-    nexttowardl; # introduced-arm=18 introduced-arm64=21 introduced-x86=18 introduced-x86_64=21
+    nexttowardl;
     pow;
     powf;
-    powl; # introduced=21
+    powl;
     remainder;
     remainderf;
-    remainderl; # introduced=21
+    remainderl;
     remquo;
     remquof;
-    remquol; # introduced=21
+    remquol;
     rint;
     rintf;
-    rintl; # introduced=21
+    rintl;
     round;
     roundf;
     roundl;
     scalb;
     scalbf;
-    scalbln; # introduced-arm=9 introduced-arm64=21 introduced-x86=18 introduced-x86_64=21
-    scalblnf; # introduced-arm=9 introduced-arm64=21 introduced-x86=18 introduced-x86_64=21
-    scalblnl; # introduced-arm=9 introduced-arm64=21 introduced-x86=18 introduced-x86_64=21
+    scalbln;
+    scalblnf;
+    scalblnl;
     scalbn;
     scalbnf;
     scalbnl;
     signgam; # var
     significand;
     significandf;
-    significandl; # introduced=21
+    significandl;
     sin;
     sincos;
     sincosf;
@@ -244,20 +244,20 @@
     sinf;
     sinh;
     sinhf;
-    sinhl; # introduced=21
-    sinl; # introduced=21
+    sinhl;
+    sinl;
     sqrt;
     sqrtf;
-    sqrtl; # introduced=21
+    sqrtl;
     tan;
     tanf;
     tanh;
     tanhf;
-    tanhl; # introduced=21
-    tanl; # introduced=21
+    tanhl;
+    tanl;
     tgamma;
-    tgammaf; # introduced-arm=13 introduced-arm64=21 introduced-x86=9 introduced-x86_64=21
-    tgammal; # introduced=21
+    tgammaf;
+    tgammal;
     trunc;
     truncf;
     truncl;
@@ -271,7 +271,7 @@
     *;
 };
 
-LIBC_O { # introduced=O
+LIBC_O { # introduced=26
   global:
     cacoshl;
     cacosl;
diff --git a/libm/significandl.c b/libm/significandl.c
index c5d7dd4..b672110 100644
--- a/libm/significandl.c
+++ b/libm/significandl.c
@@ -22,11 +22,13 @@
  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
- *
  */
 
 #include <math.h>
 
+// This function is only in glibc.
+// musl and NetBSD/OpenBSD just have the double and float variants,
+// while FreeBSD and iOS/macOS have none.
 long double significandl(long double x) {
   return scalbnl(x, -ilogbl(x));
 }
diff --git a/libm/upstream-freebsd/lib/msun/bsdsrc/b_exp.c b/libm/upstream-freebsd/lib/msun/bsdsrc/b_exp.c
index c667293..44cd519 100644
--- a/libm/upstream-freebsd/lib/msun/bsdsrc/b_exp.c
+++ b/libm/upstream-freebsd/lib/msun/bsdsrc/b_exp.c
@@ -29,10 +29,6 @@
  * SUCH DAMAGE.
  */
 
-/* @(#)exp.c	8.1 (Berkeley) 6/4/93 */
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 /* EXP(X)
  * RETURN THE EXPONENTIAL OF X
  * DOUBLE PRECISION (IEEE 53 bits, VAX D FORMAT 56 BITS)
diff --git a/libm/upstream-freebsd/lib/msun/bsdsrc/b_log.c b/libm/upstream-freebsd/lib/msun/bsdsrc/b_log.c
index 9d09ac7..a82140b 100644
--- a/libm/upstream-freebsd/lib/msun/bsdsrc/b_log.c
+++ b/libm/upstream-freebsd/lib/msun/bsdsrc/b_log.c
@@ -29,10 +29,6 @@
  * SUCH DAMAGE.
  */
 
-/* @(#)log.c	8.2 (Berkeley) 11/30/93 */
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 /* Table-driven natural logarithm.
  *
  * This code was derived, with minor modifications, from:
diff --git a/libm/upstream-freebsd/lib/msun/bsdsrc/b_tgamma.c b/libm/upstream-freebsd/lib/msun/bsdsrc/b_tgamma.c
index 493ced3..8369477 100644
--- a/libm/upstream-freebsd/lib/msun/bsdsrc/b_tgamma.c
+++ b/libm/upstream-freebsd/lib/msun/bsdsrc/b_tgamma.c
@@ -42,10 +42,6 @@
  *  porting to other precisions.
  */
 
-/* @(#)gamma.c	8.1 (Berkeley) 6/4/93 */
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 #include <float.h>
 
 #include "math.h"
diff --git a/libm/upstream-freebsd/lib/msun/bsdsrc/mathimpl.h b/libm/upstream-freebsd/lib/msun/bsdsrc/mathimpl.h
deleted file mode 100644
index abf2996..0000000
--- a/libm/upstream-freebsd/lib/msun/bsdsrc/mathimpl.h
+++ /dev/null
@@ -1,76 +0,0 @@
-/*-
- * SPDX-License-Identifier: BSD-4-Clause
- *
- * Copyright (c) 1988, 1993
- *	The Regents of the University of California.  All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *	This product includes software developed by the University of
- *	California, Berkeley and its contributors.
- * 4. Neither the name of the University nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- *	@(#)mathimpl.h	8.1 (Berkeley) 6/4/93
- * $FreeBSD$
- */
-
-#ifndef _MATHIMPL_H_
-#define	_MATHIMPL_H_
-
-#include <sys/cdefs.h>
-#include <math.h>
-
-#include "../src/math_private.h"
-
-/*
- * TRUNC() is a macro that sets the trailing 27 bits in the mantissa of an
- * IEEE double variable to zero.  It must be expression-like for syntactic
- * reasons, and we implement this expression using an inline function
- * instead of a pure macro to avoid depending on the gcc feature of
- * statement-expressions.
- */
-#define	TRUNC(d)	(_b_trunc(&(d)))
-
-static __inline void
-_b_trunc(volatile double *_dp)
-{
-	uint32_t _lw;
-
-	GET_LOW_WORD(_lw, *_dp);
-	SET_LOW_WORD(*_dp, _lw & 0xf8000000);
-}
-
-struct Double {
-	double	a;
-	double	b;
-};
-
-/*
- * Functions internal to the math package, yet not static.
- */
-double	__exp__D(double, double);
-struct Double __log__D(double);
-
-#endif /* !_MATHIMPL_H_ */
diff --git a/libm/upstream-freebsd/lib/msun/ld128/e_lgammal_r.c b/libm/upstream-freebsd/lib/msun/ld128/e_lgammal_r.c
index 53d3af1..f8079b7 100644
--- a/libm/upstream-freebsd/lib/msun/ld128/e_lgammal_r.c
+++ b/libm/upstream-freebsd/lib/msun/ld128/e_lgammal_r.c
@@ -1,4 +1,3 @@
-/* @(#)e_lgamma_r.c 1.3 95/01/18 */
 /*
  * ====================================================
  * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
@@ -10,9 +9,6 @@
  * ====================================================
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 /*
  * See e_lgamma_r.c for complete comments.
  *
diff --git a/libm/upstream-freebsd/lib/msun/ld128/e_powl.c b/libm/upstream-freebsd/lib/msun/ld128/e_powl.c
index 12b92a1..f5a993c 100644
--- a/libm/upstream-freebsd/lib/msun/ld128/e_powl.c
+++ b/libm/upstream-freebsd/lib/msun/ld128/e_powl.c
@@ -59,9 +59,6 @@
  *
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 #include <float.h>
 #include <math.h>
 
diff --git a/libm/upstream-freebsd/lib/msun/ld128/e_rem_pio2l.h b/libm/upstream-freebsd/lib/msun/ld128/e_rem_pio2l.h
index fcef399..0ea1a70 100644
--- a/libm/upstream-freebsd/lib/msun/ld128/e_rem_pio2l.h
+++ b/libm/upstream-freebsd/lib/msun/ld128/e_rem_pio2l.h
@@ -1,4 +1,3 @@
-/* From: @(#)e_rem_pio2.c 1.4 95/01/18 */
 /*
  * ====================================================
  * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
@@ -13,9 +12,6 @@
  * Optimized by Bruce D. Evans.
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 /* ld128 version of __ieee754_rem_pio2l(x,y)
  * 
  * return the remainder of x rem pi/2 in y[0]+y[1] 
@@ -58,7 +54,7 @@
 pio2_3  =  2.0670321098263988236499468110329591e-43L,	/*  0x127044533e63a0105e00000000000.0p-254 */
 pio2_3t = -2.5650587247459238361625433492959285e-65L;	/* -0x159c4ec64ddaeb5f78671cbfb2210.0p-327 */
 
-static inline __always_inline int
+static __always_inline int
 __ieee754_rem_pio2l(long double x, long double *y)
 {
 	union IEEEl2bits u,u1;
diff --git a/libm/upstream-freebsd/lib/msun/ld128/invtrig.c b/libm/upstream-freebsd/lib/msun/ld128/invtrig.c
index ab93732..75aef7b 100644
--- a/libm/upstream-freebsd/lib/msun/ld128/invtrig.c
+++ b/libm/upstream-freebsd/lib/msun/ld128/invtrig.c
@@ -1,5 +1,5 @@
 /*-
- * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+ * SPDX-License-Identifier: BSD-2-Clause
  *
  * Copyright (c) 2008 David Schultz <das@FreeBSD.ORG>
  * All rights reserved.
@@ -26,9 +26,6 @@
  * SUCH DAMAGE.
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 #include "invtrig.h"
 
 /*
diff --git a/libm/upstream-freebsd/lib/msun/ld128/invtrig.h b/libm/upstream-freebsd/lib/msun/ld128/invtrig.h
index 423b568..4876be8 100644
--- a/libm/upstream-freebsd/lib/msun/ld128/invtrig.h
+++ b/libm/upstream-freebsd/lib/msun/ld128/invtrig.h
@@ -1,5 +1,5 @@
 /*-
- * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+ * SPDX-License-Identifier: BSD-2-Clause
  *
  * Copyright (c) 2008 David Schultz <das@FreeBSD.ORG>
  * All rights reserved.
@@ -24,8 +24,6 @@
  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
- *
- * $FreeBSD$
  */
 
 #include <float.h>
diff --git a/libm/upstream-freebsd/lib/msun/ld128/k_cosl.c b/libm/upstream-freebsd/lib/msun/ld128/k_cosl.c
index 422357b..c756266 100644
--- a/libm/upstream-freebsd/lib/msun/ld128/k_cosl.c
+++ b/libm/upstream-freebsd/lib/msun/ld128/k_cosl.c
@@ -1,4 +1,3 @@
-/* From: @(#)k_cos.c 1.3 95/01/18 */
 /*
  * ====================================================
  * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
@@ -11,9 +10,6 @@
  * ====================================================
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 /*
  * ld128 version of k_cos.c.  See ../src/k_cos.c for most comments.
  */
diff --git a/libm/upstream-freebsd/lib/msun/ld128/k_expl.h b/libm/upstream-freebsd/lib/msun/ld128/k_expl.h
index 159338f..86811dd 100644
--- a/libm/upstream-freebsd/lib/msun/ld128/k_expl.h
+++ b/libm/upstream-freebsd/lib/msun/ld128/k_expl.h
@@ -1,7 +1,7 @@
 /* from: FreeBSD: head/lib/msun/ld128/s_expl.c 251345 2013-06-03 20:09:22Z kargl */
 
 /*-
- * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+ * SPDX-License-Identifier: BSD-2-Clause
  *
  * Copyright (c) 2009-2013 Steven G. Kargl
  * All rights reserved.
@@ -30,9 +30,6 @@
  * Optimized by Bruce D. Evans.
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 /*
  * ld128 version of k_expl.h.  See ../ld80/s_expl.c for most comments.
  *
diff --git a/libm/upstream-freebsd/lib/msun/ld128/k_sinl.c b/libm/upstream-freebsd/lib/msun/ld128/k_sinl.c
index 09472d6..f2b17ba 100644
--- a/libm/upstream-freebsd/lib/msun/ld128/k_sinl.c
+++ b/libm/upstream-freebsd/lib/msun/ld128/k_sinl.c
@@ -1,4 +1,3 @@
-/* From: @(#)k_sin.c 1.3 95/01/18 */
 /*
  * ====================================================
  * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
@@ -11,9 +10,6 @@
  * ====================================================
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 /*
  * ld128 version of k_sin.c.  See ../src/k_sin.c for most comments.
  */
diff --git a/libm/upstream-freebsd/lib/msun/ld128/k_tanl.c b/libm/upstream-freebsd/lib/msun/ld128/k_tanl.c
index d7ec0b9..8aff0d1 100644
--- a/libm/upstream-freebsd/lib/msun/ld128/k_tanl.c
+++ b/libm/upstream-freebsd/lib/msun/ld128/k_tanl.c
@@ -1,5 +1,3 @@
-/* From: @(#)k_tan.c 1.5 04/04/22 SMI */
-
 /*
  * ====================================================
  * Copyright 2004 Sun Microsystems, Inc.  All Rights Reserved.
@@ -11,9 +9,6 @@
  * ====================================================
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 /*
  * ld128 version of k_tan.c.  See ../src/k_tan.c for most comments.
  */
diff --git a/libm/upstream-freebsd/lib/msun/ld128/s_erfl.c b/libm/upstream-freebsd/lib/msun/ld128/s_erfl.c
index e29c969..227c31f 100644
--- a/libm/upstream-freebsd/lib/msun/ld128/s_erfl.c
+++ b/libm/upstream-freebsd/lib/msun/ld128/s_erfl.c
@@ -1,4 +1,3 @@
-/* @(#)s_erf.c 5.1 93/09/24 */
 /*
  * ====================================================
  * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
@@ -10,9 +9,6 @@
  * ====================================================
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 /*
  * See s_erf.c for complete comments.
  *
diff --git a/libm/upstream-freebsd/lib/msun/ld128/s_exp2l.c b/libm/upstream-freebsd/lib/msun/ld128/s_exp2l.c
index ee3d2c7..249cb4c 100644
--- a/libm/upstream-freebsd/lib/msun/ld128/s_exp2l.c
+++ b/libm/upstream-freebsd/lib/msun/ld128/s_exp2l.c
@@ -1,5 +1,5 @@
 /*-
- * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+ * SPDX-License-Identifier: BSD-2-Clause
  *
  * Copyright (c) 2005-2008 David Schultz <das@FreeBSD.ORG>
  * All rights reserved.
@@ -26,9 +26,6 @@
  * SUCH DAMAGE.
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 #include <float.h>
 #include <stdint.h>
 
diff --git a/libm/upstream-freebsd/lib/msun/ld128/s_expl.c b/libm/upstream-freebsd/lib/msun/ld128/s_expl.c
index 5b786af..e1358e2 100644
--- a/libm/upstream-freebsd/lib/msun/ld128/s_expl.c
+++ b/libm/upstream-freebsd/lib/msun/ld128/s_expl.c
@@ -1,5 +1,5 @@
 /*-
- * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+ * SPDX-License-Identifier: BSD-2-Clause
  *
  * Copyright (c) 2009-2013 Steven G. Kargl
  * All rights reserved.
@@ -28,9 +28,6 @@
  * Optimized by Bruce D. Evans.
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 /*
  * ld128 version of s_expl.c.  See ../ld80/s_expl.c for most comments.
  */
@@ -65,8 +62,6 @@
 	int k;
 	uint16_t hx, ix;
 
-	DOPRINT_START(&x);
-
 	/* Filter out exceptional cases. */
 	u.e = x;
 	hx = u.xbits.expsign;
@@ -74,15 +69,15 @@
 	if (ix >= BIAS + 13) {		/* |x| >= 8192 or x is NaN */
 		if (ix == BIAS + LDBL_MAX_EXP) {
 			if (hx & 0x8000)  /* x is -Inf or -NaN */
-				RETURNP(-1 / x);
-			RETURNP(x + x);	/* x is +Inf or +NaN */
+				RETURNF(-1 / x);
+			RETURNF(x + x);	/* x is +Inf or +NaN */
 		}
 		if (x > o_threshold)
-			RETURNP(huge * huge);
+			RETURNF(huge * huge);
 		if (x < u_threshold)
-			RETURNP(tiny * tiny);
+			RETURNF(tiny * tiny);
 	} else if (ix < BIAS - 114) {	/* |x| < 0x1p-114 */
-		RETURN2P(1, x);		/* 1 with inexact iff x != 0 */
+		RETURNF(1 + x);		/* 1 with inexact iff x != 0 */
 	}
 
 	ENTERI();
@@ -210,8 +205,6 @@
 	int k, n, n2;
 	uint16_t hx, ix;
 
-	DOPRINT_START(&x);
-
 	/* Filter out exceptional cases. */
 	u.e = x;
 	hx = u.xbits.expsign;
@@ -219,11 +212,11 @@
 	if (ix >= BIAS + 7) {		/* |x| >= 128 or x is NaN */
 		if (ix == BIAS + LDBL_MAX_EXP) {
 			if (hx & 0x8000)  /* x is -Inf or -NaN */
-				RETURNP(-1 / x - 1);
-			RETURNP(x + x);	/* x is +Inf or +NaN */
+				RETURNF(-1 / x - 1);
+			RETURNF(x + x);	/* x is +Inf or +NaN */
 		}
 		if (x > o_threshold)
-			RETURNP(huge * huge);
+			RETURNF(huge * huge);
 		/*
 		 * expm1l() never underflows, but it must avoid
 		 * unrepresentable large negative exponents.  We used a
@@ -232,7 +225,7 @@
 		 * in the same way as large ones here.
 		 */
 		if (hx & 0x8000)	/* x <= -128 */
-			RETURN2P(tiny, -1);	/* good for x < -114ln2 - eps */
+			RETURNF(tiny - 1);	/* good for x < -114ln2 - eps */
 	}
 
 	ENTERI();
@@ -244,7 +237,7 @@
 		if (x < T3) {
 			if (ix < BIAS - 113) {	/* |x| < 0x1p-113 */
 				/* x (rounded) with inexact if x != 0: */
-				RETURNPI(x == 0 ? x :
+				RETURNI(x == 0 ? x :
 				    (0x1p200 * x + fabsl(x)) * 0x1p-200);
 			}
 			q = x * x2 * C3 + x2 * x2 * (C4 + x * (C5 + x * (C6 +
@@ -265,9 +258,9 @@
 		hx2_hi = x_hi * x_hi / 2;
 		hx2_lo = x_lo * (x + x_hi) / 2;
 		if (ix >= BIAS - 7)
-			RETURN2PI(hx2_hi + x_hi, hx2_lo + x_lo + q);
+			RETURNI((hx2_hi + x_hi) + (hx2_lo + x_lo + q));
 		else
-			RETURN2PI(x, hx2_lo + q + hx2_hi);
+			RETURNI(x + (hx2_lo + q + hx2_hi));
 	}
 
 	/* Reduce x to (k*ln2 + endpoint[n2] + r1 + r2). */
diff --git a/libm/upstream-freebsd/lib/msun/ld128/s_logl.c b/libm/upstream-freebsd/lib/msun/ld128/s_logl.c
index 4774a27..e9133ec 100644
--- a/libm/upstream-freebsd/lib/msun/ld128/s_logl.c
+++ b/libm/upstream-freebsd/lib/msun/ld128/s_logl.c
@@ -1,5 +1,5 @@
 /*-
- * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+ * SPDX-License-Identifier: BSD-2-Clause
  *
  * Copyright (c) 2007-2013 Bruce D. Evans
  * All rights reserved.
@@ -26,9 +26,6 @@
  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 /**
  * Implementation of the natural logarithm of x for 128-bit format.
  *
@@ -447,7 +444,7 @@
 #endif
 
 #ifdef STRUCT_RETURN
-static inline __always_inline void
+static __always_inline void
 k_logl(long double x, struct ld *rp)
 #else
 long double
@@ -573,24 +570,23 @@
 	int i, k;
 	int16_t ax, hx;
 
-	DOPRINT_START(&x);
 	EXTRACT_LDBL128_WORDS(hx, lx, llx, x);
 	if (hx < 0x3fff) {		/* x < 1, or x neg NaN */
 		ax = hx & 0x7fff;
 		if (ax >= 0x3fff) {	/* x <= -1, or x neg NaN */
 			if (ax == 0x3fff && (lx | llx) == 0)
-				RETURNP(-1 / zero);	/* log1p(-1) = -Inf */
+				RETURNF(-1 / zero);	/* log1p(-1) = -Inf */
 			/* log1p(x < 1, or x NaN) = qNaN: */
-			RETURNP((x - x) / (x - x));
+			RETURNF((x - x) / (x - x));
 		}
 		if (ax <= 0x3f8d) {	/* |x| < 2**-113 */
 			if ((int)x == 0)
-				RETURNP(x);	/* x with inexact if x != 0 */
+				RETURNF(x);	/* x with inexact if x != 0 */
 		}
 		f_hi = 1;
 		f_lo = x;
 	} else if (hx >= 0x7fff) {	/* x +Inf or non-neg NaN */
-		RETURNP(x + x);		/* log1p(Inf or NaN) = Inf or qNaN */
+		RETURNF(x + x);		/* log1p(Inf or NaN) = Inf or qNaN */
 	} else if (hx < 0x40e1) {	/* 1 <= x < 2**226 */
 		f_hi = x;
 		f_lo = 1;
@@ -669,7 +665,7 @@
 #endif
 
 	_3sumF(val_hi, val_lo, F_hi(i) + dk * ln2_hi);
-	RETURN2PI(val_hi, val_lo);
+	RETURNI(val_hi + val_lo);
 }
 
 #ifdef STRUCT_RETURN
@@ -680,7 +676,6 @@
 	struct ld r;
 
 	ENTERI();
-	DOPRINT_START(&x);
 	k_logl(x, &r);
 	RETURNSPI(&r);
 }
@@ -708,15 +703,13 @@
 	long double hi, lo;
 
 	ENTERI();
-	DOPRINT_START(&x);
 	k_logl(x, &r);
 	if (!r.lo_set)
-		RETURNPI(r.hi);
+		RETURNI(r.hi);
 	_2sumF(r.hi, r.lo);
 	hi = (float)r.hi;
 	lo = r.lo + (r.hi - hi);
-	RETURN2PI(invln10_hi * hi,
-	    invln10_lo_plus_hi * lo + invln10_lo * hi);
+	RETURNI(invln10_hi * hi + (invln10_lo_plus_hi * lo + invln10_lo * hi));
 }
 
 long double
@@ -726,15 +719,13 @@
 	long double hi, lo;
 
 	ENTERI();
-	DOPRINT_START(&x);
 	k_logl(x, &r);
 	if (!r.lo_set)
-		RETURNPI(r.hi);
+		RETURNI(r.hi);
 	_2sumF(r.hi, r.lo);
 	hi = (float)r.hi;
 	lo = r.lo + (r.hi - hi);
-	RETURN2PI(invln2_hi * hi,
-	    invln2_lo_plus_hi * lo + invln2_lo * hi);
+	RETURNI(invln2_hi * hi + (invln2_lo_plus_hi * lo + invln2_lo * hi));
 }
 
 #endif /* STRUCT_RETURN */
diff --git a/libm/upstream-freebsd/lib/msun/ld128/s_nanl.c b/libm/upstream-freebsd/lib/msun/ld128/s_nanl.c
index 45d10e5..b90d024 100644
--- a/libm/upstream-freebsd/lib/msun/ld128/s_nanl.c
+++ b/libm/upstream-freebsd/lib/msun/ld128/s_nanl.c
@@ -1,5 +1,5 @@
 /*-
- * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+ * SPDX-License-Identifier: BSD-2-Clause
  *
  * Copyright (c) 2007 David Schultz
  * All rights reserved.
@@ -24,8 +24,6 @@
  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
- *
- * $FreeBSD$
  */
 
 #include <math.h>
diff --git a/libm/upstream-freebsd/lib/msun/src/catrig.c b/libm/upstream-freebsd/lib/msun/src/catrig.c
index 431d8e6..45af164 100644
--- a/libm/upstream-freebsd/lib/msun/src/catrig.c
+++ b/libm/upstream-freebsd/lib/msun/src/catrig.c
@@ -1,5 +1,5 @@
 /*-
- * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+ * SPDX-License-Identifier: BSD-2-Clause
  *
  * Copyright (c) 2012 Stephen Montgomery-Smith <stephen@FreeBSD.ORG>
  * All rights reserved.
@@ -26,9 +26,6 @@
  * SUCH DAMAGE.
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 #include <complex.h>
 #include <float.h>
 
diff --git a/libm/upstream-freebsd/lib/msun/src/catrigf.c b/libm/upstream-freebsd/lib/msun/src/catrigf.c
index 62bcd39..da90629 100644
--- a/libm/upstream-freebsd/lib/msun/src/catrigf.c
+++ b/libm/upstream-freebsd/lib/msun/src/catrigf.c
@@ -1,5 +1,5 @@
 /*-
- * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+ * SPDX-License-Identifier: BSD-2-Clause
  *
  * Copyright (c) 2012 Stephen Montgomery-Smith <stephen@FreeBSD.ORG>
  * All rights reserved.
@@ -40,9 +40,6 @@
  * a few comments on the right of declarations remain.
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 #include <complex.h>
 #include <float.h>
 
diff --git a/libm/upstream-freebsd/lib/msun/src/catrigl.c b/libm/upstream-freebsd/lib/msun/src/catrigl.c
index e66f87a..faf9d29 100644
--- a/libm/upstream-freebsd/lib/msun/src/catrigl.c
+++ b/libm/upstream-freebsd/lib/msun/src/catrigl.c
@@ -39,9 +39,6 @@
  * a few comments on the right of declarations remain.
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 #include <complex.h>
 #include <float.h>
 
diff --git a/libm/upstream-freebsd/lib/msun/src/e_acos.c b/libm/upstream-freebsd/lib/msun/src/e_acos.c
index 1f6dca5..af51fe1 100644
--- a/libm/upstream-freebsd/lib/msun/src/e_acos.c
+++ b/libm/upstream-freebsd/lib/msun/src/e_acos.c
@@ -1,5 +1,4 @@
 
-/* @(#)e_acos.c 1.3 95/01/18 */
 /*
  * ====================================================
  * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
@@ -11,10 +10,7 @@
  * ====================================================
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
-/* __ieee754_acos(x)
+/* acos(x)
  * Method :                  
  *	acos(x)  = pi/2 - asin(x)
  *	acos(-x) = pi/2 + asin(x)
@@ -62,7 +58,7 @@
 qS4 =  7.70381505559019352791e-02; /* 0x3FB3B8C5, 0xB12E9282 */
 
 double
-__ieee754_acos(double x)
+acos(double x)
 {
 	double z,p,q,r,w,s,c,df;
 	int32_t hx,ix;
diff --git a/libm/upstream-freebsd/lib/msun/src/e_acosf.c b/libm/upstream-freebsd/lib/msun/src/e_acosf.c
index c9f62cc..ede552e 100644
--- a/libm/upstream-freebsd/lib/msun/src/e_acosf.c
+++ b/libm/upstream-freebsd/lib/msun/src/e_acosf.c
@@ -13,9 +13,6 @@
  * ====================================================
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 #include "math.h"
 #include "math_private.h"
 
@@ -25,14 +22,20 @@
 pio2_hi =  1.5707962513e+00; /* 0x3fc90fda */
 static volatile float
 pio2_lo =  7.5497894159e-08; /* 0x33a22168 */
+
+/*
+ * The coefficients for the rational approximation were generated over
+ *  0x1p-12f <= x <= 0.5f.  The maximum error satisfies log2(e) < -30.084.
+ */
 static const float
-pS0 =  1.6666586697e-01,
-pS1 = -4.2743422091e-02,
-pS2 = -8.6563630030e-03,
-qS1 = -7.0662963390e-01;
+pS0 =  1.66666672e-01f, /* 0x3e2aaaab */
+pS1 = -1.19510300e-01f, /* 0xbdf4c1d1 */
+pS2 =  5.47002675e-03f, /* 0x3bb33de9 */
+qS1 = -1.16706085e+00f, /* 0xbf956240 */
+qS2 =  2.90115148e-01f; /* 0x3e9489f9 */
 
 float
-__ieee754_acosf(float x)
+acosf(float x)
 {
 	float z,p,q,r,w,s,c,df;
 	int32_t hx,ix;
@@ -49,13 +52,13 @@
 	    if(ix<=0x32800000) return pio2_hi+pio2_lo;/*if|x|<2**-26*/
 	    z = x*x;
 	    p = z*(pS0+z*(pS1+z*pS2));
-	    q = one+z*qS1;
+	    q = one+z*(qS1+z*qS2);
 	    r = p/q;
 	    return pio2_hi - (x - (pio2_lo-x*r));
 	} else  if (hx<0) {		/* x < -0.5 */
 	    z = (one+x)*(float)0.5;
 	    p = z*(pS0+z*(pS1+z*pS2));
-	    q = one+z*qS1;
+	    q = one+z*(qS1+z*qS2);
 	    s = sqrtf(z);
 	    r = p/q;
 	    w = r*s-pio2_lo;
@@ -69,7 +72,7 @@
 	    SET_FLOAT_WORD(df,idf&0xfffff000);
 	    c  = (z-df*df)/(s+df);
 	    p = z*(pS0+z*(pS1+z*pS2));
-	    q = one+z*qS1;
+	    q = one+z*(qS1+z*qS2);
 	    r = p/q;
 	    w = r*s+c;
 	    return (float)2.0*(df+w);
diff --git a/libm/upstream-freebsd/lib/msun/src/e_acosh.c b/libm/upstream-freebsd/lib/msun/src/e_acosh.c
index 358c8bd..0e5640b 100644
--- a/libm/upstream-freebsd/lib/msun/src/e_acosh.c
+++ b/libm/upstream-freebsd/lib/msun/src/e_acosh.c
@@ -1,5 +1,4 @@
 
-/* @(#)e_acosh.c 1.3 95/01/18 */
 /*
  * ====================================================
  * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
@@ -12,10 +11,7 @@
  *
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
-/* __ieee754_acosh(x)
+/* acosh(x)
  * Method :
  *	Based on 
  *		acosh(x) = log [ x + sqrt(x*x-1) ]
@@ -39,7 +35,7 @@
 ln2	= 6.93147180559945286227e-01;  /* 0x3FE62E42, 0xFEFA39EF */
 
 double
-__ieee754_acosh(double x)
+acosh(double x)
 {
 	double t;
 	int32_t hx;
@@ -51,12 +47,12 @@
 	    if(hx >=0x7ff00000) {	/* x is inf of NaN */
 	        return x+x;
 	    } else 
-		return __ieee754_log(x)+ln2;	/* acosh(huge)=log(2x) */
+		return log(x)+ln2;	/* acosh(huge)=log(2x) */
 	} else if(((hx-0x3ff00000)|lx)==0) {
 	    return 0.0;			/* acosh(1) = 0 */
 	} else if (hx > 0x40000000) {	/* 2**28 > x > 2 */
 	    t=x*x;
-	    return __ieee754_log(2.0*x-one/(x+sqrt(t-one)));
+	    return log(2.0*x-one/(x+sqrt(t-one)));
 	} else {			/* 1<x<2 */
 	    t = x-one;
 	    return log1p(t+sqrt(2.0*t+t*t));
diff --git a/libm/upstream-freebsd/lib/msun/src/e_acoshf.c b/libm/upstream-freebsd/lib/msun/src/e_acoshf.c
index f529b20..b6fbd2c 100644
--- a/libm/upstream-freebsd/lib/msun/src/e_acoshf.c
+++ b/libm/upstream-freebsd/lib/msun/src/e_acoshf.c
@@ -13,9 +13,6 @@
  * ====================================================
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 #include "math.h"
 #include "math_private.h"
 
@@ -24,7 +21,7 @@
 ln2	= 6.9314718246e-01;  /* 0x3f317218 */
 
 float
-__ieee754_acoshf(float x)
+acoshf(float x)
 {
 	float t;
 	int32_t hx;
@@ -35,14 +32,14 @@
 	    if(hx >=0x7f800000) {	/* x is inf of NaN */
 	        return x+x;
 	    } else
-		return __ieee754_logf(x)+ln2;	/* acosh(huge)=log(2x) */
+		return logf(x)+ln2;	/* acosh(huge)=log(2x) */
 	} else if (hx==0x3f800000) {
 	    return 0.0;			/* acosh(1) = 0 */
 	} else if (hx > 0x40000000) {	/* 2**28 > x > 2 */
 	    t=x*x;
-	    return __ieee754_logf((float)2.0*x-one/(x+__ieee754_sqrtf(t-one)));
+	    return logf((float)2.0*x-one/(x+sqrtf(t-one)));
 	} else {			/* 1<x<2 */
 	    t = x-one;
-	    return log1pf(t+__ieee754_sqrtf((float)2.0*t+t*t));
+	    return log1pf(t+sqrtf((float)2.0*t+t*t));
 	}
 }
diff --git a/libm/upstream-freebsd/lib/msun/src/e_acoshl.c b/libm/upstream-freebsd/lib/msun/src/e_acoshl.c
index b9f3aed..6bfa624 100644
--- a/libm/upstream-freebsd/lib/msun/src/e_acoshl.c
+++ b/libm/upstream-freebsd/lib/msun/src/e_acoshl.c
@@ -1,6 +1,5 @@
 /* from: FreeBSD: head/lib/msun/src/e_acosh.c 176451 2008-02-22 02:30:36Z das */
 
-/* @(#)e_acosh.c 1.3 95/01/18 */
 /*
  * ====================================================
  * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
@@ -13,9 +12,6 @@
  *
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 /*
  * See e_acosh.c for complete comments.
  *
diff --git a/libm/upstream-freebsd/lib/msun/src/e_acosl.c b/libm/upstream-freebsd/lib/msun/src/e_acosl.c
index d33c8fe..2098143 100644
--- a/libm/upstream-freebsd/lib/msun/src/e_acosl.c
+++ b/libm/upstream-freebsd/lib/msun/src/e_acosl.c
@@ -1,5 +1,4 @@
 
-/* @(#)e_acos.c 1.3 95/01/18 */
 /* FreeBSD: head/lib/msun/src/e_acos.c 176451 2008-02-22 02:30:36Z das */
 /*
  * ====================================================
@@ -12,9 +11,6 @@
  * ====================================================
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 /*
  * See comments in e_acos.c.
  * Converted to long double by David Schultz <das@FreeBSD.ORG>.
diff --git a/libm/upstream-freebsd/lib/msun/src/e_asin.c b/libm/upstream-freebsd/lib/msun/src/e_asin.c
index 931b270..530bf79 100644
--- a/libm/upstream-freebsd/lib/msun/src/e_asin.c
+++ b/libm/upstream-freebsd/lib/msun/src/e_asin.c
@@ -1,5 +1,4 @@
 
-/* @(#)e_asin.c 1.3 95/01/18 */
 /*
  * ====================================================
  * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
@@ -11,10 +10,7 @@
  * ====================================================
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
-/* __ieee754_asin(x)
+/* asin(x)
  * Method :                  
  *	Since  asin(x) = x + x^3/6 + x^5*3/40 + x^7*15/336 + ...
  *	we approximate asin(x) on [0,0.5] by
@@ -68,7 +64,7 @@
 qS4 =  7.70381505559019352791e-02; /* 0x3FB3B8C5, 0xB12E9282 */
 
 double
-__ieee754_asin(double x)
+asin(double x)
 {
 	double t=0.0,w,p,q,c,r,s;
 	int32_t hx,ix;
diff --git a/libm/upstream-freebsd/lib/msun/src/e_asinf.c b/libm/upstream-freebsd/lib/msun/src/e_asinf.c
index deaabb6..8d1aca2 100644
--- a/libm/upstream-freebsd/lib/msun/src/e_asinf.c
+++ b/libm/upstream-freebsd/lib/msun/src/e_asinf.c
@@ -13,26 +13,29 @@
  * ====================================================
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 #include "math.h"
 #include "math_private.h"
 
 static const float
 one =  1.0000000000e+00, /* 0x3F800000 */
-huge =  1.000e+30,
-	/* coefficient for R(x^2) */
-pS0 =  1.6666586697e-01,
-pS1 = -4.2743422091e-02,
-pS2 = -8.6563630030e-03,
-qS1 = -7.0662963390e-01;
+huge =  1.000e+30;
+
+/*
+ * The coefficients for the rational approximation were generated over
+ *  0x1p-12f <= x <= 0.5f.  The maximum error satisfies log2(e) < -30.084.
+ */
+static const float
+pS0 =  1.66666672e-01f, /* 0x3e2aaaab */
+pS1 = -1.19510300e-01f, /* 0xbdf4c1d1 */
+pS2 =  5.47002675e-03f, /* 0x3bb33de9 */
+qS1 = -1.16706085e+00f, /* 0xbf956240 */
+qS2 =  2.90115148e-01f; /* 0x3e9489f9 */
 
 static const double
 pio2 =  1.570796326794896558e+00;
 
 float
-__ieee754_asinf(float x)
+asinf(float x)
 {
 	double s;
 	float t,w,p,q;
@@ -49,7 +52,7 @@
 	    }
 	    t = x*x;
 	    p = t*(pS0+t*(pS1+t*pS2));
-	    q = one+t*qS1;
+	    q = one+t*(qS1+t*qS2);
 	    w = p/q;
 	    return x+x*w;
 	}
@@ -57,7 +60,7 @@
 	w = one-fabsf(x);
 	t = w*(float)0.5;
 	p = t*(pS0+t*(pS1+t*pS2));
-	q = one+t*qS1;
+	q = one+t*(qS1+t*qS2);
 	s = sqrt(t);
 	w = p/q;
 	t = pio2-2.0*(s+s*w);
diff --git a/libm/upstream-freebsd/lib/msun/src/e_asinl.c b/libm/upstream-freebsd/lib/msun/src/e_asinl.c
index a85765f..bb2320e 100644
--- a/libm/upstream-freebsd/lib/msun/src/e_asinl.c
+++ b/libm/upstream-freebsd/lib/msun/src/e_asinl.c
@@ -1,5 +1,4 @@
 
-/* @(#)e_asin.c 1.3 95/01/18 */
 /* FreeBSD: head/lib/msun/src/e_asin.c 176451 2008-02-22 02:30:36Z das */
 /*
  * ====================================================
@@ -12,9 +11,6 @@
  * ====================================================
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 /*
  * See comments in e_asin.c.
  * Converted to long double by David Schultz <das@FreeBSD.ORG>.
diff --git a/libm/upstream-freebsd/lib/msun/src/e_atan2.c b/libm/upstream-freebsd/lib/msun/src/e_atan2.c
index 231a161..ab5fc72 100644
--- a/libm/upstream-freebsd/lib/msun/src/e_atan2.c
+++ b/libm/upstream-freebsd/lib/msun/src/e_atan2.c
@@ -1,5 +1,4 @@
 
-/* @(#)e_atan2.c 1.3 95/01/18 */
 /*
  * ====================================================
  * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
@@ -12,10 +11,7 @@
  *
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
-/* __ieee754_atan2(y,x)
+/* atan2(y,x)
  * Method :
  *	1. Reduce y to positive by atan2(y,x)=-atan2(-y,x).
  *	2. Reduce x to positive by (if x and y are unexceptional): 
@@ -58,7 +54,7 @@
 pi_lo   = 1.2246467991473531772E-16; /* 0x3CA1A626, 0x33145C07 */
 
 double
-__ieee754_atan2(double y, double x)
+atan2(double y, double x)
 {
 	double z;
 	int32_t k,m,hx,hy,ix,iy;
diff --git a/libm/upstream-freebsd/lib/msun/src/e_atan2f.c b/libm/upstream-freebsd/lib/msun/src/e_atan2f.c
index 346d767..408f364 100644
--- a/libm/upstream-freebsd/lib/msun/src/e_atan2f.c
+++ b/libm/upstream-freebsd/lib/msun/src/e_atan2f.c
@@ -13,9 +13,6 @@
  * ====================================================
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 #include "math.h"
 #include "math_private.h"
 
@@ -30,7 +27,7 @@
 pi_lo   = -8.7422776573e-08; /* 0xb3bbbd2e */
 
 float
-__ieee754_atan2f(float y, float x)
+atan2f(float y, float x)
 {
 	float z;
 	int32_t k,m,hx,hy,ix,iy;
diff --git a/libm/upstream-freebsd/lib/msun/src/e_atan2l.c b/libm/upstream-freebsd/lib/msun/src/e_atan2l.c
index 94ebdec..a27fd3e 100644
--- a/libm/upstream-freebsd/lib/msun/src/e_atan2l.c
+++ b/libm/upstream-freebsd/lib/msun/src/e_atan2l.c
@@ -1,5 +1,4 @@
 
-/* @(#)e_atan2.c 1.3 95/01/18 */
 /* FreeBSD: head/lib/msun/src/e_atan2.c 176451 2008-02-22 02:30:36Z das */
 /*
  * ====================================================
@@ -13,9 +12,6 @@
  *
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 /*
  * See comments in e_atan2.c.
  * Converted to long double by David Schultz <das@FreeBSD.ORG>.
diff --git a/libm/upstream-freebsd/lib/msun/src/e_atanh.c b/libm/upstream-freebsd/lib/msun/src/e_atanh.c
index 422ff26..0cc0b92 100644
--- a/libm/upstream-freebsd/lib/msun/src/e_atanh.c
+++ b/libm/upstream-freebsd/lib/msun/src/e_atanh.c
@@ -1,5 +1,4 @@
 
-/* @(#)e_atanh.c 1.3 95/01/18 */
 /*
  * ====================================================
  * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
@@ -12,10 +11,7 @@
  *
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
-/* __ieee754_atanh(x)
+/* atanh(x)
  * Method :
  *    1.Reduced x to positive by atanh(-x) = -atanh(x)
  *    2.For x>=0.5
@@ -42,7 +38,7 @@
 static const double zero = 0.0;
 
 double
-__ieee754_atanh(double x)
+atanh(double x)
 {
 	double t;
 	int32_t hx,ix;
diff --git a/libm/upstream-freebsd/lib/msun/src/e_atanhf.c b/libm/upstream-freebsd/lib/msun/src/e_atanhf.c
index 4bd6a8f..a2d6b69 100644
--- a/libm/upstream-freebsd/lib/msun/src/e_atanhf.c
+++ b/libm/upstream-freebsd/lib/msun/src/e_atanhf.c
@@ -13,9 +13,6 @@
  * ====================================================
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 #include "math.h"
 #include "math_private.h"
 
@@ -24,7 +21,7 @@
 static const float zero = 0.0;
 
 float
-__ieee754_atanhf(float x)
+atanhf(float x)
 {
 	float t;
 	int32_t hx,ix;
diff --git a/libm/upstream-freebsd/lib/msun/src/e_atanhl.c b/libm/upstream-freebsd/lib/msun/src/e_atanhl.c
index 11d56ea..cb70727 100644
--- a/libm/upstream-freebsd/lib/msun/src/e_atanhl.c
+++ b/libm/upstream-freebsd/lib/msun/src/e_atanhl.c
@@ -1,6 +1,5 @@
 /* from: FreeBSD: head/lib/msun/src/e_atanh.c 176451 2008-02-22 02:30:36Z das */
 
-/* @(#)e_atanh.c 1.3 95/01/18 */
 /*
  * ====================================================
  * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
@@ -13,9 +12,6 @@
  *
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 /*
  * See e_atanh.c for complete comments.
  *
diff --git a/libm/upstream-freebsd/lib/msun/src/e_cosh.c b/libm/upstream-freebsd/lib/msun/src/e_cosh.c
index 246b5fb..5c3614e 100644
--- a/libm/upstream-freebsd/lib/msun/src/e_cosh.c
+++ b/libm/upstream-freebsd/lib/msun/src/e_cosh.c
@@ -1,5 +1,4 @@
 
-/* @(#)e_cosh.c 1.3 95/01/18 */
 /*
  * ====================================================
  * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
@@ -11,10 +10,7 @@
  * ====================================================
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
-/* __ieee754_cosh(x)
+/* cosh(x)
  * Method : 
  * mathematically cosh(x) if defined to be (exp(x)+exp(-x))/2
  *	1. Replace x by |x| (cosh(x) = cosh(-x)). 
@@ -43,7 +39,7 @@
 static const double one = 1.0, half=0.5, huge = 1.0e300;
 
 double
-__ieee754_cosh(double x)
+cosh(double x)
 {
 	double t,w;
 	int32_t ix;
@@ -65,12 +61,12 @@
 
     /* |x| in [0.5*ln2,22], return (exp(|x|)+1/exp(|x|)/2; */
 	if (ix < 0x40360000) {
-		t = __ieee754_exp(fabs(x));
+		t = exp(fabs(x));
 		return half*t+half/t;
 	}
 
     /* |x| in [22, log(maxdouble)] return half*exp(|x|) */
-	if (ix < 0x40862E42)  return half*__ieee754_exp(fabs(x));
+	if (ix < 0x40862E42)  return half*exp(fabs(x));
 
     /* |x| in [log(maxdouble), overflowthresold] */
 	if (ix<=0x408633CE)
diff --git a/libm/upstream-freebsd/lib/msun/src/e_coshf.c b/libm/upstream-freebsd/lib/msun/src/e_coshf.c
index 95a0d6e..40443b8 100644
--- a/libm/upstream-freebsd/lib/msun/src/e_coshf.c
+++ b/libm/upstream-freebsd/lib/msun/src/e_coshf.c
@@ -13,16 +13,13 @@
  * ====================================================
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 #include "math.h"
 #include "math_private.h"
 
 static const float one = 1.0, half=0.5, huge = 1.0e30;
 
 float
-__ieee754_coshf(float x)
+coshf(float x)
 {
 	float t,w;
 	int32_t ix;
@@ -43,12 +40,12 @@
 
     /* |x| in [0.5*ln2,9], return (exp(|x|)+1/exp(|x|))/2; */
 	if (ix < 0x41100000) {
-		t = __ieee754_expf(fabsf(x));
+		t = expf(fabsf(x));
 		return half*t+half/t;
 	}
 
     /* |x| in [9, log(maxfloat)] return half*exp(|x|) */
-	if (ix < 0x42b17217)  return half*__ieee754_expf(fabsf(x));
+	if (ix < 0x42b17217)  return half*expf(fabsf(x));
 
     /* |x| in [log(maxfloat), overflowthresold] */
 	if (ix<=0x42b2d4fc)
diff --git a/libm/upstream-freebsd/lib/msun/src/e_coshl.c b/libm/upstream-freebsd/lib/msun/src/e_coshl.c
index 4e3b283..efb5094 100644
--- a/libm/upstream-freebsd/lib/msun/src/e_coshl.c
+++ b/libm/upstream-freebsd/lib/msun/src/e_coshl.c
@@ -11,9 +11,6 @@
  * ====================================================
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 /*
  * See e_cosh.c for complete comments.
  *
diff --git a/libm/upstream-freebsd/lib/msun/src/e_exp.c b/libm/upstream-freebsd/lib/msun/src/e_exp.c
deleted file mode 100644
index dd04d8e..0000000
--- a/libm/upstream-freebsd/lib/msun/src/e_exp.c
+++ /dev/null
@@ -1,164 +0,0 @@
-
-/* @(#)e_exp.c 1.6 04/04/22 */
-/*
- * ====================================================
- * Copyright (C) 2004 by Sun Microsystems, Inc. All rights reserved.
- *
- * Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice 
- * is preserved.
- * ====================================================
- */
-
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
-/* __ieee754_exp(x)
- * Returns the exponential of x.
- *
- * Method
- *   1. Argument reduction:
- *      Reduce x to an r so that |r| <= 0.5*ln2 ~ 0.34658.
- *	Given x, find r and integer k such that
- *
- *               x = k*ln2 + r,  |r| <= 0.5*ln2.  
- *
- *      Here r will be represented as r = hi-lo for better 
- *	accuracy.
- *
- *   2. Approximation of exp(r) by a special rational function on
- *	the interval [0,0.34658]:
- *	Write
- *	    R(r**2) = r*(exp(r)+1)/(exp(r)-1) = 2 + r*r/6 - r**4/360 + ...
- *      We use a special Remes algorithm on [0,0.34658] to generate 
- * 	a polynomial of degree 5 to approximate R. The maximum error 
- *	of this polynomial approximation is bounded by 2**-59. In
- *	other words,
- *	    R(z) ~ 2.0 + P1*z + P2*z**2 + P3*z**3 + P4*z**4 + P5*z**5
- *  	(where z=r*r, and the values of P1 to P5 are listed below)
- *	and
- *	    |                  5          |     -59
- *	    | 2.0+P1*z+...+P5*z   -  R(z) | <= 2 
- *	    |                             |
- *	The computation of exp(r) thus becomes
- *                             2*r
- *		exp(r) = 1 + -------
- *		              R - r
- *                                 r*R1(r)	
- *		       = 1 + r + ----------- (for better accuracy)
- *		                  2 - R1(r)
- *	where
- *			         2       4             10
- *		R1(r) = r - (P1*r  + P2*r  + ... + P5*r   ).
- *	
- *   3. Scale back to obtain exp(x):
- *	From step 1, we have
- *	   exp(x) = 2^k * exp(r)
- *
- * Special cases:
- *	exp(INF) is INF, exp(NaN) is NaN;
- *	exp(-INF) is 0, and
- *	for finite argument, only exp(0)=1 is exact.
- *
- * Accuracy:
- *	according to an error analysis, the error is always less than
- *	1 ulp (unit in the last place).
- *
- * Misc. info.
- *	For IEEE double 
- *	    if x >  7.09782712893383973096e+02 then exp(x) overflow
- *	    if x < -7.45133219101941108420e+02 then exp(x) underflow
- *
- * Constants:
- * The hexadecimal values are the intended ones for the following 
- * constants. The decimal values may be used, provided that the 
- * compiler will convert from decimal to binary accurately enough
- * to produce the hexadecimal values shown.
- */
-
-#include <float.h>
-
-#include "math.h"
-#include "math_private.h"
-
-static const double
-one	= 1.0,
-halF[2]	= {0.5,-0.5,},
-o_threshold=  7.09782712893383973096e+02,  /* 0x40862E42, 0xFEFA39EF */
-u_threshold= -7.45133219101941108420e+02,  /* 0xc0874910, 0xD52D3051 */
-ln2HI[2]   ={ 6.93147180369123816490e-01,  /* 0x3fe62e42, 0xfee00000 */
-	     -6.93147180369123816490e-01,},/* 0xbfe62e42, 0xfee00000 */
-ln2LO[2]   ={ 1.90821492927058770002e-10,  /* 0x3dea39ef, 0x35793c76 */
-	     -1.90821492927058770002e-10,},/* 0xbdea39ef, 0x35793c76 */
-invln2 =  1.44269504088896338700e+00, /* 0x3ff71547, 0x652b82fe */
-P1   =  1.66666666666666019037e-01, /* 0x3FC55555, 0x5555553E */
-P2   = -2.77777777770155933842e-03, /* 0xBF66C16C, 0x16BEBD93 */
-P3   =  6.61375632143793436117e-05, /* 0x3F11566A, 0xAF25DE2C */
-P4   = -1.65339022054652515390e-06, /* 0xBEBBBD41, 0xC5D26BF1 */
-P5   =  4.13813679705723846039e-08; /* 0x3E663769, 0x72BEA4D0 */
-
-static volatile double
-huge	= 1.0e+300,
-twom1000= 9.33263618503218878990e-302;     /* 2**-1000=0x01700000,0*/
-
-double
-__ieee754_exp(double x)	/* default IEEE double exp */
-{
-	double y,hi=0.0,lo=0.0,c,t,twopk;
-	int32_t k=0,xsb;
-	u_int32_t hx;
-
-	GET_HIGH_WORD(hx,x);
-	xsb = (hx>>31)&1;		/* sign bit of x */
-	hx &= 0x7fffffff;		/* high word of |x| */
-
-    /* filter out non-finite argument */
-	if(hx >= 0x40862E42) {			/* if |x|>=709.78... */
-            if(hx>=0x7ff00000) {
-	        u_int32_t lx;
-		GET_LOW_WORD(lx,x);
-		if(((hx&0xfffff)|lx)!=0)
-		     return x+x; 		/* NaN */
-		else return (xsb==0)? x:0.0;	/* exp(+-inf)={inf,0} */
-	    }
-	    if(x > o_threshold) return huge*huge; /* overflow */
-	    if(x < u_threshold) return twom1000*twom1000; /* underflow */
-	}
-
-    /* argument reduction */
-	if(hx > 0x3fd62e42) {		/* if  |x| > 0.5 ln2 */ 
-	    if(hx < 0x3FF0A2B2) {	/* and |x| < 1.5 ln2 */
-		hi = x-ln2HI[xsb]; lo=ln2LO[xsb]; k = 1-xsb-xsb;
-	    } else {
-		k  = (int)(invln2*x+halF[xsb]);
-		t  = k;
-		hi = x - t*ln2HI[0];	/* t*ln2HI is exact here */
-		lo = t*ln2LO[0];
-	    }
-	    STRICT_ASSIGN(double, x, hi - lo);
-	} 
-	else if(hx < 0x3e300000)  {	/* when |x|<2**-28 */
-	    if(huge+x>one) return one+x;/* trigger inexact */
-	}
-	else k = 0;
-
-    /* x is now in primary range */
-	t  = x*x;
-	if(k >= -1021)
-	    INSERT_WORDS(twopk,((u_int32_t)(0x3ff+k))<<20, 0);
-	else
-	    INSERT_WORDS(twopk,((u_int32_t)(0x3ff+(k+1000)))<<20, 0);
-	c  = x - t*(P1+t*(P2+t*(P3+t*(P4+t*P5))));
-	if(k==0) 	return one-((x*c)/(c-2.0)-x); 
-	else 		y = one-((lo-(x*c)/(2.0-c))-hi);
-	if(k >= -1021) {
-	    if (k==1024) return y*2.0*0x1p1023;
-	    return y*twopk;
-	} else {
-	    return y*twopk*twom1000;
-	}
-}
-
-#if (LDBL_MANT_DIG == 53)
-__weak_reference(exp, expl);
-#endif
diff --git a/libm/upstream-freebsd/lib/msun/src/e_expf.c b/libm/upstream-freebsd/lib/msun/src/e_expf.c
deleted file mode 100644
index 4903d55..0000000
--- a/libm/upstream-freebsd/lib/msun/src/e_expf.c
+++ /dev/null
@@ -1,98 +0,0 @@
-/* e_expf.c -- float version of e_exp.c.
- * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com.
- */
-
-/*
- * ====================================================
- * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
- *
- * Developed at SunPro, a Sun Microsystems, Inc. business.
- * Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice
- * is preserved.
- * ====================================================
- */
-
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
-#include <float.h>
-
-#include "math.h"
-#include "math_private.h"
-
-static const float
-one	= 1.0,
-halF[2]	= {0.5,-0.5,},
-o_threshold=  8.8721679688e+01,  /* 0x42b17180 */
-u_threshold= -1.0397208405e+02,  /* 0xc2cff1b5 */
-ln2HI[2]   ={ 6.9314575195e-01,		/* 0x3f317200 */
-	     -6.9314575195e-01,},	/* 0xbf317200 */
-ln2LO[2]   ={ 1.4286067653e-06,  	/* 0x35bfbe8e */
-	     -1.4286067653e-06,},	/* 0xb5bfbe8e */
-invln2 =  1.4426950216e+00, 		/* 0x3fb8aa3b */
-/*
- * Domain [-0.34568, 0.34568], range ~[-4.278e-9, 4.447e-9]:
- * |x*(exp(x)+1)/(exp(x)-1) - p(x)| < 2**-27.74
- */
-P1 =  1.6666625440e-1,		/*  0xaaaa8f.0p-26 */
-P2 = -2.7667332906e-3;		/* -0xb55215.0p-32 */
-
-static volatile float
-huge	= 1.0e+30,
-twom100 = 7.8886090522e-31;      /* 2**-100=0x0d800000 */
-
-float
-__ieee754_expf(float x)
-{
-	float y,hi=0.0,lo=0.0,c,t,twopk;
-	int32_t k=0,xsb;
-	u_int32_t hx;
-
-	GET_FLOAT_WORD(hx,x);
-	xsb = (hx>>31)&1;		/* sign bit of x */
-	hx &= 0x7fffffff;		/* high word of |x| */
-
-    /* filter out non-finite argument */
-	if(hx >= 0x42b17218) {			/* if |x|>=88.721... */
-	    if(hx>0x7f800000)
-		 return x+x;	 		/* NaN */
-            if(hx==0x7f800000)
-		return (xsb==0)? x:0.0;		/* exp(+-inf)={inf,0} */
-	    if(x > o_threshold) return huge*huge; /* overflow */
-	    if(x < u_threshold) return twom100*twom100; /* underflow */
-	}
-
-    /* argument reduction */
-	if(hx > 0x3eb17218) {		/* if  |x| > 0.5 ln2 */
-	    if(hx < 0x3F851592) {	/* and |x| < 1.5 ln2 */
-		hi = x-ln2HI[xsb]; lo=ln2LO[xsb]; k = 1-xsb-xsb;
-	    } else {
-		k  = invln2*x+halF[xsb];
-		t  = k;
-		hi = x - t*ln2HI[0];	/* t*ln2HI is exact here */
-		lo = t*ln2LO[0];
-	    }
-	    STRICT_ASSIGN(float, x, hi - lo);
-	}
-	else if(hx < 0x39000000)  {	/* when |x|<2**-14 */
-	    if(huge+x>one) return one+x;/* trigger inexact */
-	}
-	else k = 0;
-
-    /* x is now in primary range */
-	t  = x*x;
-	if(k >= -125)
-	    SET_FLOAT_WORD(twopk,((u_int32_t)(0x7f+k))<<23);
-	else
-	    SET_FLOAT_WORD(twopk,((u_int32_t)(0x7f+(k+100)))<<23);
-	c  = x - t*(P1+t*P2);
-	if(k==0) 	return one-((x*c)/(c-(float)2.0)-x);
-	else 		y = one-((lo-(x*c)/((float)2.0-c))-hi);
-	if(k >= -125) {
-	    if(k==128) return y*2.0F*0x1p127F;
-	    return y*twopk;
-	} else {
-	    return y*twopk*twom100;
-	}
-}
diff --git a/libm/upstream-freebsd/lib/msun/src/e_fmod.c b/libm/upstream-freebsd/lib/msun/src/e_fmod.c
index 3a28dc4..77afd11 100644
--- a/libm/upstream-freebsd/lib/msun/src/e_fmod.c
+++ b/libm/upstream-freebsd/lib/msun/src/e_fmod.c
@@ -1,5 +1,4 @@
 
-/* @(#)e_fmod.c 1.3 95/01/18 */
 /*
  * ====================================================
  * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
@@ -11,11 +10,8 @@
  * ====================================================
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 /* 
- * __ieee754_fmod(x,y)
+ * fmod(x,y)
  * Return x mod y in exact arithmetic
  * Method: shift and subtract
  */
@@ -28,7 +24,7 @@
 static const double one = 1.0, Zero[] = {0.0, -0.0,};
 
 double
-__ieee754_fmod(double x, double y)
+fmod(double x, double y)
 {
 	int32_t n,hx,hy,hz,ix,iy,sx,i;
 	u_int32_t lx,ly,lz;
diff --git a/libm/upstream-freebsd/lib/msun/src/e_fmodf.c b/libm/upstream-freebsd/lib/msun/src/e_fmodf.c
index 1b6bf36..a7d1a0c 100644
--- a/libm/upstream-freebsd/lib/msun/src/e_fmodf.c
+++ b/libm/upstream-freebsd/lib/msun/src/e_fmodf.c
@@ -13,11 +13,8 @@
  * ====================================================
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 /*
- * __ieee754_fmodf(x,y)
+ * fmodf(x,y)
  * Return x mod y in exact arithmetic
  * Method: shift and subtract
  */
@@ -28,7 +25,7 @@
 static const float one = 1.0, Zero[] = {0.0, -0.0,};
 
 float
-__ieee754_fmodf(float x, float y)
+fmodf(float x, float y)
 {
 	int32_t n,hx,hy,hz,ix,iy,sx,i;
 
diff --git a/libm/upstream-freebsd/lib/msun/src/e_fmodl.c b/libm/upstream-freebsd/lib/msun/src/e_fmodl.c
index ad3bcc3..d5997e1 100644
--- a/libm/upstream-freebsd/lib/msun/src/e_fmodl.c
+++ b/libm/upstream-freebsd/lib/msun/src/e_fmodl.c
@@ -1,4 +1,3 @@
-/* @(#)e_fmod.c 1.3 95/01/18 */
 /*-
  * ====================================================
  * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
@@ -10,9 +9,6 @@
  * ====================================================
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 #include <float.h>
 #include <stdint.h>
 
diff --git a/libm/upstream-freebsd/lib/msun/src/e_gamma.c b/libm/upstream-freebsd/lib/msun/src/e_gamma.c
index 28fb5cc..43541ad 100644
--- a/libm/upstream-freebsd/lib/msun/src/e_gamma.c
+++ b/libm/upstream-freebsd/lib/msun/src/e_gamma.c
@@ -1,5 +1,4 @@
 
-/* @(#)e_gamma.c 1.3 95/01/18 */
 /*
  * ====================================================
  * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
@@ -12,13 +11,10 @@
  *
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
-/* __ieee754_gamma(x)
+/* gamma(x)
  * Return the logarithm of the Gamma function of x.
  *
- * Method: call __ieee754_gamma_r
+ * Method: call gamma_r
  */
 
 #include "math.h"
@@ -27,7 +23,7 @@
 extern int signgam;
 
 double
-__ieee754_gamma(double x)
+gamma(double x)
 {
-	return __ieee754_gamma_r(x,&signgam);
+	return gamma_r(x,&signgam);
 }
diff --git a/libm/upstream-freebsd/lib/msun/src/e_gamma_r.c b/libm/upstream-freebsd/lib/msun/src/e_gamma_r.c
index 2c423dc..f317ae4 100644
--- a/libm/upstream-freebsd/lib/msun/src/e_gamma_r.c
+++ b/libm/upstream-freebsd/lib/msun/src/e_gamma_r.c
@@ -1,5 +1,4 @@
 
-/* @(#)e_gamma_r.c 1.3 95/01/18 */
 /*
  * ====================================================
  * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
@@ -12,21 +11,18 @@
  *
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
-/* __ieee754_gamma_r(x, signgamp)
+/* gamma_r(x, signgamp)
  * Reentrant version of the logarithm of the Gamma function 
  * with user provide pointer for the sign of Gamma(x). 
  *
- * Method: See __ieee754_lgamma_r
+ * Method: See lgamma_r
  */
 
 #include "math.h"
 #include "math_private.h"
 
 double
-__ieee754_gamma_r(double x, int *signgamp)
+gamma_r(double x, int *signgamp)
 {
-	return __ieee754_lgamma_r(x,signgamp);
+	return lgamma_r(x,signgamp);
 }
diff --git a/libm/upstream-freebsd/lib/msun/src/e_gammaf.c b/libm/upstream-freebsd/lib/msun/src/e_gammaf.c
index c1b1668..98da571 100644
--- a/libm/upstream-freebsd/lib/msun/src/e_gammaf.c
+++ b/libm/upstream-freebsd/lib/msun/src/e_gammaf.c
@@ -13,13 +13,10 @@
  * ====================================================
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
-/* __ieee754_gammaf(x)
+/* gammaf(x)
  * Return the logarithm of the Gamma function of x.
  *
- * Method: call __ieee754_gammaf_r
+ * Method: call gammaf_r
  */
 
 #include "math.h"
@@ -28,7 +25,7 @@
 extern int signgam;
 
 float
-__ieee754_gammaf(float x)
+gammaf(float x)
 {
-	return __ieee754_gammaf_r(x,&signgam);
+	return gammaf_r(x,&signgam);
 }
diff --git a/libm/upstream-freebsd/lib/msun/src/e_gammaf_r.c b/libm/upstream-freebsd/lib/msun/src/e_gammaf_r.c
index 9d7831b..ae80c1b 100644
--- a/libm/upstream-freebsd/lib/msun/src/e_gammaf_r.c
+++ b/libm/upstream-freebsd/lib/msun/src/e_gammaf_r.c
@@ -13,21 +13,18 @@
  * ====================================================
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
-/* __ieee754_gammaf_r(x, signgamp)
+/* gammaf_r(x, signgamp)
  * Reentrant version of the logarithm of the Gamma function
  * with user provide pointer for the sign of Gamma(x).
  *
- * Method: See __ieee754_lgammaf_r
+ * Method: See lgammaf_r
  */
 
 #include "math.h"
 #include "math_private.h"
 
 float
-__ieee754_gammaf_r(float x, int *signgamp)
+gammaf_r(float x, int *signgamp)
 {
-	return __ieee754_lgammaf_r(x,signgamp);
+	return lgammaf_r(x,signgamp);
 }
diff --git a/libm/upstream-freebsd/lib/msun/src/e_hypot.c b/libm/upstream-freebsd/lib/msun/src/e_hypot.c
index 7c455bb..a291af5 100644
--- a/libm/upstream-freebsd/lib/msun/src/e_hypot.c
+++ b/libm/upstream-freebsd/lib/msun/src/e_hypot.c
@@ -1,5 +1,4 @@
 
-/* @(#)e_hypot.c 1.3 95/01/18 */
 /*
  * ====================================================
  * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
@@ -11,10 +10,7 @@
  * ====================================================
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
-/* __ieee754_hypot(x,y)
+/* hypot(x,y)
  *
  * Method :                  
  *	If (assume round-to-nearest) z=x*x+y*y 
@@ -52,7 +48,7 @@
 #include "math_private.h"
 
 double
-__ieee754_hypot(double x, double y)
+hypot(double x, double y)
 {
 	double a,b,t1,t2,y1,y2,w;
 	int32_t j,k,ha,hb;
diff --git a/libm/upstream-freebsd/lib/msun/src/e_hypotf.c b/libm/upstream-freebsd/lib/msun/src/e_hypotf.c
index 0061026..e45486e 100644
--- a/libm/upstream-freebsd/lib/msun/src/e_hypotf.c
+++ b/libm/upstream-freebsd/lib/msun/src/e_hypotf.c
@@ -13,14 +13,11 @@
  * ====================================================
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 #include "math.h"
 #include "math_private.h"
 
 float
-__ieee754_hypotf(float x, float y)
+hypotf(float x, float y)
 {
 	float a,b,t1,t2,y1,y2,w;
 	int32_t j,k,ha,hb;
@@ -67,14 +64,14 @@
 	if (w>b) {
 	    SET_FLOAT_WORD(t1,ha&0xfffff000);
 	    t2 = a-t1;
-	    w  = __ieee754_sqrtf(t1*t1-(b*(-b)-t2*(a+t1)));
+	    w  = sqrtf(t1*t1-(b*(-b)-t2*(a+t1)));
 	} else {
 	    a  = a+a;
 	    SET_FLOAT_WORD(y1,hb&0xfffff000);
 	    y2 = b - y1;
 	    SET_FLOAT_WORD(t1,(ha+0x00800000)&0xfffff000);
 	    t2 = a - t1;
-	    w  = __ieee754_sqrtf(t1*y1-(w*(-w)-(t1*y2+t2*b)));
+	    w  = sqrtf(t1*y1-(w*(-w)-(t1*y2+t2*b)));
 	}
 	if(k!=0) {
 	    SET_FLOAT_WORD(t1,(127+k)<<23);
diff --git a/libm/upstream-freebsd/lib/msun/src/e_hypotl.c b/libm/upstream-freebsd/lib/msun/src/e_hypotl.c
index fc43538..d8e060a 100644
--- a/libm/upstream-freebsd/lib/msun/src/e_hypotl.c
+++ b/libm/upstream-freebsd/lib/msun/src/e_hypotl.c
@@ -1,4 +1,3 @@
-/* From: @(#)e_hypot.c 1.3 95/01/18 */
 /*
  * ====================================================
  * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
@@ -10,9 +9,6 @@
  * ====================================================
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 /* long double version of hypot().  See e_hypot.c for most comments. */
 
 #include <float.h>
diff --git a/libm/upstream-freebsd/lib/msun/src/e_j0.c b/libm/upstream-freebsd/lib/msun/src/e_j0.c
index 5d862b6..b19661c 100644
--- a/libm/upstream-freebsd/lib/msun/src/e_j0.c
+++ b/libm/upstream-freebsd/lib/msun/src/e_j0.c
@@ -1,4 +1,3 @@
-/* @(#)e_j0.c 1.3 95/01/18 */
 /*
  * ====================================================
  * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
@@ -10,10 +9,7 @@
  * ====================================================
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
-/* __ieee754_j0(x), __ieee754_y0(x)
+/* j0(x), y0(x)
  * Bessel function of the first and second kinds of order zero.
  * Method -- j0(x):
  *	1. For tiny x, we use j0(x) = 1 - x^2/4 + x^4/64 - ...
@@ -83,7 +79,7 @@
 static const double zero = 0, qrtr = 0.25;
 
 double
-__ieee754_j0(double x)
+j0(double x)
 {
 	double z, s,c,ss,cc,r,u,v;
 	int32_t hx,ix;
@@ -143,7 +139,7 @@
 v04  =  4.41110311332675467403e-10; /* 0x3DFE5018, 0x3BD6D9EF */
 
 double
-__ieee754_y0(double x)
+y0(double x)
 {
 	double z, s,c,ss,cc,u,v;
 	int32_t hx,ix,lx;
@@ -192,12 +188,12 @@
                 return z;
 	}
 	if(ix<=0x3e400000) {	/* x < 2**-27 */
-	    return(u00 + tpi*__ieee754_log(x));
+	    return(u00 + tpi*log(x));
 	}
 	z = x*x;
 	u = u00+z*(u01+z*(u02+z*(u03+z*(u04+z*(u05+z*u06)))));
 	v = one+z*(v01+z*(v02+z*(v03+z*v04)));
-	return(u/v + tpi*(__ieee754_j0(x)*__ieee754_log(x)));
+	return(u/v + tpi*(j0(x)*log(x)));
 }
 
 /* The asymptotic expansions of pzero is
diff --git a/libm/upstream-freebsd/lib/msun/src/e_j0f.c b/libm/upstream-freebsd/lib/msun/src/e_j0f.c
index 1c5ef4d..de04a9f 100644
--- a/libm/upstream-freebsd/lib/msun/src/e_j0f.c
+++ b/libm/upstream-freebsd/lib/msun/src/e_j0f.c
@@ -13,9 +13,6 @@
  * ====================================================
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 /*
  * See e_j0.c for complete comments.
  */
@@ -45,7 +42,7 @@
 static const float zero = 0, qrtr = 0.25;
 
 float
-__ieee754_j0f(float x)
+j0f(float x)
 {
 	float z, s,c,ss,cc,r,u,v;
 	int32_t hx,ix;
@@ -105,7 +102,7 @@
 v04  =  4.4111031494e-10; /* 0x2ff280c2 */
 
 float
-__ieee754_y0f(float x)
+y0f(float x)
 {
 	float z, s,c,ss,cc,u,v;
 	int32_t hx,ix;
@@ -147,12 +144,12 @@
                 return z;
 	}
 	if(ix<=0x39000000) {	/* x < 2**-13 */
-	    return(u00 + tpi*__ieee754_logf(x));
+	    return(u00 + tpi*logf(x));
 	}
 	z = x*x;
 	u = u00+z*(u01+z*(u02+z*(u03+z*(u04+z*(u05+z*u06)))));
 	v = one+z*(v01+z*(v02+z*(v03+z*v04)));
-	return(u/v + tpi*(__ieee754_j0f(x)*__ieee754_logf(x)));
+	return(u/v + tpi*(j0f(x)*logf(x)));
 }
 
 /* The asymptotic expansions of pzero is
diff --git a/libm/upstream-freebsd/lib/msun/src/e_j1.c b/libm/upstream-freebsd/lib/msun/src/e_j1.c
index fb44627..06a74b0 100644
--- a/libm/upstream-freebsd/lib/msun/src/e_j1.c
+++ b/libm/upstream-freebsd/lib/msun/src/e_j1.c
@@ -1,4 +1,3 @@
-/* @(#)e_j1.c 1.3 95/01/18 */
 /*
  * ====================================================
  * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
@@ -10,10 +9,7 @@
  * ====================================================
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
-/* __ieee754_j1(x), __ieee754_y1(x)
+/* j1(x), y1(x)
  * Bessel function of the first and second kinds of order zero.
  * Method -- j1(x):
  *	1. For tiny x, we use j1(x) = x/2 - x^3/16 + x^5/384 - ...
@@ -84,7 +80,7 @@
 static const double zero    = 0.0;
 
 double
-__ieee754_j1(double x)
+j1(double x)
 {
 	double z, s,c,ss,cc,r,u,v,y;
 	int32_t hx,ix;
@@ -140,7 +136,7 @@
 };
 
 double
-__ieee754_y1(double x)
+y1(double x)
 {
 	double z, s,c,ss,cc,u,v;
 	int32_t hx,ix,lx;
@@ -190,7 +186,7 @@
         z = x*x;
         u = U0[0]+z*(U0[1]+z*(U0[2]+z*(U0[3]+z*U0[4])));
         v = one+z*(V0[0]+z*(V0[1]+z*(V0[2]+z*(V0[3]+z*V0[4]))));
-        return(x*(u/v) + tpi*(__ieee754_j1(x)*__ieee754_log(x)-one/x));
+        return(x*(u/v) + tpi*(j1(x)*log(x)-one/x));
 }
 
 /* For x >= 8, the asymptotic expansions of pone is
diff --git a/libm/upstream-freebsd/lib/msun/src/e_j1f.c b/libm/upstream-freebsd/lib/msun/src/e_j1f.c
index c6c45c1..28cee8e 100644
--- a/libm/upstream-freebsd/lib/msun/src/e_j1f.c
+++ b/libm/upstream-freebsd/lib/msun/src/e_j1f.c
@@ -13,9 +13,6 @@
  * ====================================================
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 /*
  * See e_j1.c for complete comments.
  */
@@ -46,7 +43,7 @@
 static const float zero    = 0.0;
 
 float
-__ieee754_j1f(float x)
+j1f(float x)
 {
 	float z, s,c,ss,cc,r,u,v,y;
 	int32_t hx,ix;
@@ -102,7 +99,7 @@
 };
 
 float
-__ieee754_y1f(float x)
+y1f(float x)
 {
 	float z, s,c,ss,cc,u,v;
 	int32_t hx,ix;
@@ -145,7 +142,7 @@
         z = x*x;
         u = U0[0]+z*(U0[1]+z*(U0[2]+z*(U0[3]+z*U0[4])));
         v = one+z*(V0[0]+z*(V0[1]+z*(V0[2]+z*(V0[3]+z*V0[4]))));
-        return(x*(u/v) + tpi*(__ieee754_j1f(x)*__ieee754_logf(x)-one/x));
+        return(x*(u/v) + tpi*(j1f(x)*logf(x)-one/x));
 }
 
 /* For x >= 8, the asymptotic expansions of pone is
diff --git a/libm/upstream-freebsd/lib/msun/src/e_jn.c b/libm/upstream-freebsd/lib/msun/src/e_jn.c
index c7ba7da..0a71566 100644
--- a/libm/upstream-freebsd/lib/msun/src/e_jn.c
+++ b/libm/upstream-freebsd/lib/msun/src/e_jn.c
@@ -1,4 +1,3 @@
-/* @(#)e_jn.c 1.4 95/01/18 */
 /*
  * ====================================================
  * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
@@ -10,11 +9,8 @@
  * ====================================================
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 /*
- * __ieee754_jn(n, x), __ieee754_yn(n, x)
+ * jn(n, x), yn(n, x)
  * floating point Bessel's function of the 1st and 2nd kind
  * of order n
  *
@@ -22,15 +18,15 @@
  *	y0(0)=y1(0)=yn(n,0) = -inf with division by zero signal;
  *	y0(-ve)=y1(-ve)=yn(n,-ve) are NaN with invalid signal.
  * Note 2. About jn(n,x), yn(n,x)
- *	For n=0, j0(x) is called,
- *	for n=1, j1(x) is called,
- *	for n<x, forward recursion us used starting
+ *	For n=0, j0(x) is called.
+ *	For n=1, j1(x) is called.
+ *	For n<x, forward recursion is used starting
  *	from values of j0(x) and j1(x).
- *	for n>x, a continued fraction approximation to
+ *	For n>x, a continued fraction approximation to
  *	j(n,x)/j(n-1,x) is evaluated and then backward
  *	recursion is used starting from a supposed value
- *	for j(n,x). The resulting value of j(0,x) is
- *	compared with the actual value to correct the
+ *	for j(n,x). The resulting values of j(0,x) or j(1,x) are
+ *	compared with the actual values to correct the
  *	supposed value of j(n,x).
  *
  *	yn(n,x) is similar in all respects, except
@@ -51,7 +47,7 @@
 static const double zero  =  0.00000000000000000000e+00;
 
 double
-__ieee754_jn(int n, double x)
+jn(int n, double x)
 {
 	int32_t i,hx,ix,lx, sgn;
 	double a, b, c, s, temp, di;
@@ -69,8 +65,8 @@
 		x = -x;
 		hx ^= 0x80000000;
 	}
-	if(n==0) return(__ieee754_j0(x));
-	if(n==1) return(__ieee754_j1(x));
+	if(n==0) return(j0(x));
+	if(n==1) return(j1(x));
 	sgn = (n&1)&(hx>>31);	/* even n -- 0, odd n -- sign(x) */
 	x = fabs(x);
 	if((ix|lx)==0||ix>=0x7ff00000) 	/* if x is 0 or inf */
@@ -100,8 +96,8 @@
 		}
 		b = invsqrtpi*temp/sqrt(x);
 	    } else {
-	        a = __ieee754_j0(x);
-	        b = __ieee754_j1(x);
+	        a = j0(x);
+	        b = j1(x);
 	        for(i=1;i<n;i++){
 		    temp = b;
 		    b = b*((double)(i+i)/x) - a; /* avoid underflow */
@@ -177,7 +173,7 @@
 		 */
 		tmp = n;
 		v = two/x;
-		tmp = tmp*__ieee754_log(fabs(v*tmp));
+		tmp = tmp*log(fabs(v*tmp));
 		if(tmp<7.09782712893383973096e+02) {
 	    	    for(i=n-1,di=(double)(i+i);i>0;i--){
 		        temp = b;
@@ -201,8 +197,8 @@
 			}
 	     	    }
 		}
-		z = __ieee754_j0(x);
-		w = __ieee754_j1(x);
+		z = j0(x);
+		w = j1(x);
 		if (fabs(z) >= fabs(w))
 		    b = (t*z/b);
 		else
@@ -213,7 +209,7 @@
 }
 
 double
-__ieee754_yn(int n, double x)
+yn(int n, double x)
 {
 	int32_t i,hx,ix,lx;
 	int32_t sign;
@@ -232,8 +228,8 @@
 		n = -n;
 		sign = 1 - ((n&1)<<1);
 	}
-	if(n==0) return(__ieee754_y0(x));
-	if(n==1) return(sign*__ieee754_y1(x));
+	if(n==0) return(y0(x));
+	if(n==1) return(sign*y1(x));
 	if(ix==0x7ff00000) return zero;
 	if(ix>=0x52D00000) { /* x > 2**302 */
     /* (x >> n**2)
@@ -259,8 +255,8 @@
 		b = invsqrtpi*temp/sqrt(x);
 	} else {
 	    u_int32_t high;
-	    a = __ieee754_y0(x);
-	    b = __ieee754_y1(x);
+	    a = y0(x);
+	    b = y1(x);
 	/* quit if b is -inf */
 	    GET_HIGH_WORD(high,b);
 	    for(i=1;i<n&&high!=0xfff00000;i++){
diff --git a/libm/upstream-freebsd/lib/msun/src/e_jnf.c b/libm/upstream-freebsd/lib/msun/src/e_jnf.c
index 965feeb..b55eaf5 100644
--- a/libm/upstream-freebsd/lib/msun/src/e_jnf.c
+++ b/libm/upstream-freebsd/lib/msun/src/e_jnf.c
@@ -13,9 +13,6 @@
  * ====================================================
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 /*
  * See e_jn.c for complete comments.
  */
@@ -32,7 +29,7 @@
 static const float zero  =  0.0000000000e+00;
 
 float
-__ieee754_jnf(int n, float x)
+jnf(int n, float x)
 {
 	int32_t i,hx,ix, sgn;
 	float a, b, temp, di;
@@ -50,16 +47,16 @@
 		x = -x;
 		hx ^= 0x80000000;
 	}
-	if(n==0) return(__ieee754_j0f(x));
-	if(n==1) return(__ieee754_j1f(x));
+	if(n==0) return(j0f(x));
+	if(n==1) return(j1f(x));
 	sgn = (n&1)&(hx>>31);	/* even n -- 0, odd n -- sign(x) */
 	x = fabsf(x);
 	if(ix==0||ix>=0x7f800000) 	/* if x is 0 or inf */
 	    b = zero;
 	else if((float)n<=x) {
 		/* Safe to use J(n+1,x)=2n/x *J(n,x)-J(n-1,x) */
-	    a = __ieee754_j0f(x);
-	    b = __ieee754_j1f(x);
+	    a = j0f(x);
+	    b = j1f(x);
 	    for(i=1;i<n;i++){
 		temp = b;
 		b = b*((float)(i+i)/x) - a; /* avoid underflow */
@@ -134,7 +131,7 @@
 		 */
 		tmp = n;
 		v = two/x;
-		tmp = tmp*__ieee754_logf(fabsf(v*tmp));
+		tmp = tmp*logf(fabsf(v*tmp));
 		if(tmp<(float)8.8721679688e+01) {
 	    	    for(i=n-1,di=(float)(i+i);i>0;i--){
 		        temp = b;
@@ -158,8 +155,8 @@
 			}
 	     	    }
 		}
-		z = __ieee754_j0f(x);
-		w = __ieee754_j1f(x);
+		z = j0f(x);
+		w = j1f(x);
 		if (fabsf(z) >= fabsf(w))
 		    b = (t*z/b);
 		else
@@ -170,7 +167,7 @@
 }
 
 float
-__ieee754_ynf(int n, float x)
+ynf(int n, float x)
 {
 	int32_t i,hx,ix,ib;
 	int32_t sign;
@@ -186,12 +183,12 @@
 		n = -n;
 		sign = 1 - ((n&1)<<1);
 	}
-	if(n==0) return(__ieee754_y0f(x));
-	if(n==1) return(sign*__ieee754_y1f(x));
+	if(n==0) return(y0f(x));
+	if(n==1) return(sign*y1f(x));
 	if(ix==0x7f800000) return zero;
 
-	a = __ieee754_y0f(x);
-	b = __ieee754_y1f(x);
+	a = y0f(x);
+	b = y1f(x);
 	/* quit if b is -inf */
 	GET_FLOAT_WORD(ib,b);
 	for(i=1;i<n&&ib!=0xff800000;i++){
diff --git a/libm/upstream-freebsd/lib/msun/src/e_lgamma.c b/libm/upstream-freebsd/lib/msun/src/e_lgamma.c
index 43f5175..46e7c25 100644
--- a/libm/upstream-freebsd/lib/msun/src/e_lgamma.c
+++ b/libm/upstream-freebsd/lib/msun/src/e_lgamma.c
@@ -1,5 +1,4 @@
 
-/* @(#)e_lgamma.c 1.3 95/01/18 */
 /*
  * ====================================================
  * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
@@ -12,13 +11,10 @@
  *
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
-/* __ieee754_lgamma(x)
+/* lgamma(x)
  * Return the logarithm of the Gamma function of x.
  *
- * Method: call __ieee754_lgamma_r
+ * Method: call lgamma_r
  */
 
 #include <float.h>
@@ -29,9 +25,9 @@
 extern int signgam;
 
 double
-__ieee754_lgamma(double x)
+lgamma(double x)
 {
-	return __ieee754_lgamma_r(x,&signgam);
+	return lgamma_r(x,&signgam);
 }
 
 #if (LDBL_MANT_DIG == 53)
diff --git a/libm/upstream-freebsd/lib/msun/src/e_lgamma_r.c b/libm/upstream-freebsd/lib/msun/src/e_lgamma_r.c
index be70767..30edd65 100644
--- a/libm/upstream-freebsd/lib/msun/src/e_lgamma_r.c
+++ b/libm/upstream-freebsd/lib/msun/src/e_lgamma_r.c
@@ -1,4 +1,3 @@
-/* @(#)e_lgamma_r.c 1.3 95/01/18 */
 /*
  * ====================================================
  * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
@@ -10,10 +9,7 @@
  * ====================================================
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
-/* __ieee754_lgamma_r(x, signgamp)
+/* lgamma_r(x, signgamp)
  * Reentrant version of the logarithm of the Gamma function
  * with user provide pointer for the sign of Gamma(x).
  *
@@ -27,7 +23,7 @@
  *			    = log(6.3*5.3) + lgamma(5.3)
  *			    = log(6.3*5.3*4.3*3.3*2.3) + lgamma(2.3)
  *   2. Polynomial approximation of lgamma around its
- *	minimun ymin=1.461632144968362245 to maintain monotonicity.
+ *	minimum ymin=1.461632144968362245 to maintain monotonicity.
  *	On [ymin-0.23, ymin+0.27] (i.e., [1.23164,1.73163]), use
  *		Let z = x-ymin;
  *		lgamma(x) = -1.214862905358496078218 + z^2*poly(z)
@@ -199,7 +195,7 @@
 
 
 double
-__ieee754_lgamma_r(double x, int *signgamp)
+lgamma_r(double x, int *signgamp)
 {
 	double nadj,p,p1,p2,p3,q,r,t,w,y,z;
 	int32_t hx;
@@ -217,7 +213,7 @@
 	if(ix<0x3c700000) {	/* |x|<2**-56, return -log(|x|) */
 	    if((ix|lx)==0)
 	        return one/vzero;
-	    return -__ieee754_log(fabs(x));
+	    return -log(fabs(x));
 	}
 
     /* purge negative integers and start evaluation for other x < 0 */
@@ -227,7 +223,7 @@
 		return one/vzero;
 	    t = sin_pi(x);
 	    if(t==zero) return one/vzero; /* -integer */
-	    nadj = __ieee754_log(pi/fabs(t*x));
+	    nadj = log(pi/fabs(t*x));
 	    if(t<zero) *signgamp = -1;
 	    x = -x;
 	}
@@ -237,7 +233,7 @@
     /* for x < 2.0 */
 	else if(ix<0x40000000) {
 	    if(ix<=0x3feccccc) { 	/* lgamma(x) = lgamma(x+1)-log(x) */
-		r = -__ieee754_log(x);
+		r = -log(x);
 		if(ix>=0x3FE76944) {y = one-x; i= 0;}
 		else if(ix>=0x3FCDA661) {y= x-(tc-one); i=1;}
 	  	else {y = x; i=2;}
@@ -282,18 +278,18 @@
 	    case 5: z *= (y+4);		/* FALLTHRU */
 	    case 4: z *= (y+3);		/* FALLTHRU */
 	    case 3: z *= (y+2);		/* FALLTHRU */
-		    r += __ieee754_log(z); break;
+		    r += log(z); break;
 	    }
     /* 8.0 <= x < 2**56 */
 	} else if (ix < 0x43700000) {
-	    t = __ieee754_log(x);
+	    t = log(x);
 	    z = one/x;
 	    y = z*z;
 	    w = w0+z*(w1+y*(w2+y*(w3+y*(w4+y*(w5+y*w6)))));
 	    r = (x-half)*(t-one)+w;
 	} else
     /* 2**56 <= x <= inf */
-	    r =  x*(__ieee754_log(x)-one);
+	    r =  x*(log(x)-one);
 	if(hx<0) r = nadj - r;
 	return r;
 }
diff --git a/libm/upstream-freebsd/lib/msun/src/e_lgammaf.c b/libm/upstream-freebsd/lib/msun/src/e_lgammaf.c
index 1e2c552..cc34e44 100644
--- a/libm/upstream-freebsd/lib/msun/src/e_lgammaf.c
+++ b/libm/upstream-freebsd/lib/msun/src/e_lgammaf.c
@@ -13,13 +13,10 @@
  * ====================================================
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
-/* __ieee754_lgammaf(x)
+/* lgammaf(x)
  * Return the logarithm of the Gamma function of x.
  *
- * Method: call __ieee754_lgammaf_r
+ * Method: call lgammaf_r
  */
 
 #include "math.h"
@@ -28,7 +25,7 @@
 extern int signgam;
 
 float
-__ieee754_lgammaf(float x)
+lgammaf(float x)
 {
-	return __ieee754_lgammaf_r(x,&signgam);
+	return lgammaf_r(x,&signgam);
 }
diff --git a/libm/upstream-freebsd/lib/msun/src/e_lgammaf_r.c b/libm/upstream-freebsd/lib/msun/src/e_lgammaf_r.c
index 48346c3..3f863ce 100644
--- a/libm/upstream-freebsd/lib/msun/src/e_lgammaf_r.c
+++ b/libm/upstream-freebsd/lib/msun/src/e_lgammaf_r.c
@@ -14,9 +14,6 @@
  * ====================================================
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 #include "math.h"
 #include "math_private.h"
 
@@ -120,7 +117,7 @@
 
 
 float
-__ieee754_lgammaf_r(float x, int *signgamp)
+lgammaf_r(float x, int *signgamp)
 {
 	float nadj,p,p1,p2,q,r,t,w,y,z;
 	int32_t hx;
@@ -138,7 +135,7 @@
 	if(ix<0x32000000) {		/* |x|<2**-27, return -log(|x|) */
 	    if(ix==0)
 	        return one/vzero;
-	    return -__ieee754_logf(fabsf(x));
+	    return -logf(fabsf(x));
 	}
 
     /* purge negative integers and start evaluation for other x < 0 */
@@ -148,7 +145,7 @@
 		return one/vzero;
 	    t = sin_pif(x);
 	    if(t==zero) return one/vzero; /* -integer */
-	    nadj = __ieee754_logf(pi/fabsf(t*x));
+	    nadj = logf(pi/fabsf(t*x));
 	    if(t<zero) *signgamp = -1;
 	    x = -x;
 	}
@@ -158,7 +155,7 @@
     /* for x < 2.0 */
 	else if(ix<0x40000000) {
 	    if(ix<=0x3f666666) { 	/* lgamma(x) = lgamma(x+1)-log(x) */
-		r = -__ieee754_logf(x);
+		r = -logf(x);
 		if(ix>=0x3f3b4a20) {y = one-x; i= 0;}
 		else if(ix>=0x3e6d3308) {y= x-(tc-one); i=1;}
 	  	else {y = x; i=2;}
@@ -198,18 +195,18 @@
 	    case 5: z *= (y+4);		/* FALLTHRU */
 	    case 4: z *= (y+3);		/* FALLTHRU */
 	    case 3: z *= (y+2);		/* FALLTHRU */
-		    r += __ieee754_logf(z); break;
+		    r += logf(z); break;
 	    }
     /* 8.0 <= x < 2**27 */
 	} else if (ix < 0x4d000000) {
-	    t = __ieee754_logf(x);
+	    t = logf(x);
 	    z = one/x;
 	    y = z*z;
 	    w = w0+z*(w1+y*w2);
 	    r = (x-half)*(t-one)+w;
 	} else
     /* 2**27 <= x <= inf */
-	    r =  x*(__ieee754_logf(x)-one);
+	    r =  x*(logf(x)-one);
 	if(hx<0) r = nadj - r;
 	return r;
 }
diff --git a/libm/upstream-freebsd/lib/msun/src/e_lgammal.c b/libm/upstream-freebsd/lib/msun/src/e_lgammal.c
index ebc2fc7..51e3216 100644
--- a/libm/upstream-freebsd/lib/msun/src/e_lgammal.c
+++ b/libm/upstream-freebsd/lib/msun/src/e_lgammal.c
@@ -1,4 +1,3 @@
-/* @(#)e_lgamma.c 1.3 95/01/18 */
 /*
  * ====================================================
  * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
@@ -10,9 +9,6 @@
  * ====================================================
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 #include "math.h"
 #include "math_private.h"
 
diff --git a/libm/upstream-freebsd/lib/msun/src/e_log.c b/libm/upstream-freebsd/lib/msun/src/e_log.c
deleted file mode 100644
index 68bc107..0000000
--- a/libm/upstream-freebsd/lib/msun/src/e_log.c
+++ /dev/null
@@ -1,147 +0,0 @@
-
-/* @(#)e_log.c 1.3 95/01/18 */
-/*
- * ====================================================
- * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
- *
- * Developed at SunSoft, a Sun Microsystems, Inc. business.
- * Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice 
- * is preserved.
- * ====================================================
- */
-
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
-/* __ieee754_log(x)
- * Return the logrithm of x
- *
- * Method :                  
- *   1. Argument Reduction: find k and f such that 
- *			x = 2^k * (1+f), 
- *	   where  sqrt(2)/2 < 1+f < sqrt(2) .
- *
- *   2. Approximation of log(1+f).
- *	Let s = f/(2+f) ; based on log(1+f) = log(1+s) - log(1-s)
- *		 = 2s + 2/3 s**3 + 2/5 s**5 + .....,
- *	     	 = 2s + s*R
- *      We use a special Reme algorithm on [0,0.1716] to generate 
- * 	a polynomial of degree 14 to approximate R The maximum error 
- *	of this polynomial approximation is bounded by 2**-58.45. In
- *	other words,
- *		        2      4      6      8      10      12      14
- *	    R(z) ~ Lg1*s +Lg2*s +Lg3*s +Lg4*s +Lg5*s  +Lg6*s  +Lg7*s
- *  	(the values of Lg1 to Lg7 are listed in the program)
- *	and
- *	    |      2          14          |     -58.45
- *	    | Lg1*s +...+Lg7*s    -  R(z) | <= 2 
- *	    |                             |
- *	Note that 2s = f - s*f = f - hfsq + s*hfsq, where hfsq = f*f/2.
- *	In order to guarantee error in log below 1ulp, we compute log
- *	by
- *		log(1+f) = f - s*(f - R)	(if f is not too large)
- *		log(1+f) = f - (hfsq - s*(hfsq+R)).	(better accuracy)
- *	
- *	3. Finally,  log(x) = k*ln2 + log(1+f).  
- *			    = k*ln2_hi+(f-(hfsq-(s*(hfsq+R)+k*ln2_lo)))
- *	   Here ln2 is split into two floating point number: 
- *			ln2_hi + ln2_lo,
- *	   where n*ln2_hi is always exact for |n| < 2000.
- *
- * Special cases:
- *	log(x) is NaN with signal if x < 0 (including -INF) ; 
- *	log(+INF) is +INF; log(0) is -INF with signal;
- *	log(NaN) is that NaN with no signal.
- *
- * Accuracy:
- *	according to an error analysis, the error is always less than
- *	1 ulp (unit in the last place).
- *
- * Constants:
- * The hexadecimal values are the intended ones for the following 
- * constants. The decimal values may be used, provided that the 
- * compiler will convert from decimal to binary accurately enough 
- * to produce the hexadecimal values shown.
- */
-
-#include <float.h>
-
-#include "math.h"
-#include "math_private.h"
-
-static const double
-ln2_hi  =  6.93147180369123816490e-01,	/* 3fe62e42 fee00000 */
-ln2_lo  =  1.90821492927058770002e-10,	/* 3dea39ef 35793c76 */
-two54   =  1.80143985094819840000e+16,  /* 43500000 00000000 */
-Lg1 = 6.666666666666735130e-01,  /* 3FE55555 55555593 */
-Lg2 = 3.999999999940941908e-01,  /* 3FD99999 9997FA04 */
-Lg3 = 2.857142874366239149e-01,  /* 3FD24924 94229359 */
-Lg4 = 2.222219843214978396e-01,  /* 3FCC71C5 1D8E78AF */
-Lg5 = 1.818357216161805012e-01,  /* 3FC74664 96CB03DE */
-Lg6 = 1.531383769920937332e-01,  /* 3FC39A09 D078C69F */
-Lg7 = 1.479819860511658591e-01;  /* 3FC2F112 DF3E5244 */
-
-static const double zero   =  0.0;
-static volatile double vzero = 0.0;
-
-double
-__ieee754_log(double x)
-{
-	double hfsq,f,s,z,R,w,t1,t2,dk;
-	int32_t k,hx,i,j;
-	u_int32_t lx;
-
-	EXTRACT_WORDS(hx,lx,x);
-
-	k=0;
-	if (hx < 0x00100000) {			/* x < 2**-1022  */
-	    if (((hx&0x7fffffff)|lx)==0) 
-		return -two54/vzero;		/* log(+-0)=-inf */
-	    if (hx<0) return (x-x)/zero;	/* log(-#) = NaN */
-	    k -= 54; x *= two54; /* subnormal number, scale up x */
-	    GET_HIGH_WORD(hx,x);
-	} 
-	if (hx >= 0x7ff00000) return x+x;
-	k += (hx>>20)-1023;
-	hx &= 0x000fffff;
-	i = (hx+0x95f64)&0x100000;
-	SET_HIGH_WORD(x,hx|(i^0x3ff00000));	/* normalize x or x/2 */
-	k += (i>>20);
-	f = x-1.0;
-	if((0x000fffff&(2+hx))<3) {	/* -2**-20 <= f < 2**-20 */
-	    if(f==zero) {
-		if(k==0) {
-		    return zero;
-		} else {
-		    dk=(double)k;
-		    return dk*ln2_hi+dk*ln2_lo;
-		}
-	    }
-	    R = f*f*(0.5-0.33333333333333333*f);
-	    if(k==0) return f-R; else {dk=(double)k;
-	    	     return dk*ln2_hi-((R-dk*ln2_lo)-f);}
-	}
- 	s = f/(2.0+f); 
-	dk = (double)k;
-	z = s*s;
-	i = hx-0x6147a;
-	w = z*z;
-	j = 0x6b851-hx;
-	t1= w*(Lg2+w*(Lg4+w*Lg6)); 
-	t2= z*(Lg1+w*(Lg3+w*(Lg5+w*Lg7))); 
-	i |= j;
-	R = t2+t1;
-	if(i>0) {
-	    hfsq=0.5*f*f;
-	    if(k==0) return f-(hfsq-s*(hfsq+R)); else
-		     return dk*ln2_hi-((hfsq-(s*(hfsq+R)+dk*ln2_lo))-f);
-	} else {
-	    if(k==0) return f-s*(f-R); else
-		     return dk*ln2_hi-((s*(f-R)-dk*ln2_lo)-f);
-	}
-}
-
-#if (LDBL_MANT_DIG == 53)
-__weak_reference(log, logl);
-#endif
diff --git a/libm/upstream-freebsd/lib/msun/src/e_log10.c b/libm/upstream-freebsd/lib/msun/src/e_log10.c
index 3c89ed2..3647fb0 100644
--- a/libm/upstream-freebsd/lib/msun/src/e_log10.c
+++ b/libm/upstream-freebsd/lib/msun/src/e_log10.c
@@ -1,5 +1,4 @@
 
-/* @(#)e_log10.c 1.3 95/01/18 */
 /*
  * ====================================================
  * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
@@ -11,9 +10,6 @@
  * ====================================================
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 /*
  * Return the base 10 logarithm of x.  See e_log.c and k_log.h for most
  * comments.
@@ -39,7 +35,7 @@
 static volatile double vzero = 0.0;
 
 double
-__ieee754_log10(double x)
+log10(double x)
 {
 	double f,hfsq,hi,lo,r,val_hi,val_lo,w,y,y2;
 	int32_t i,k,hx;
diff --git a/libm/upstream-freebsd/lib/msun/src/e_log10f.c b/libm/upstream-freebsd/lib/msun/src/e_log10f.c
index 9856df2..ee01d6f 100644
--- a/libm/upstream-freebsd/lib/msun/src/e_log10f.c
+++ b/libm/upstream-freebsd/lib/msun/src/e_log10f.c
@@ -9,9 +9,6 @@
  * ====================================================
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 /*
  * Float version of e_log10.c.  See the latter for most comments.
  */
@@ -31,7 +28,7 @@
 static volatile float vzero = 0.0;
 
 float
-__ieee754_log10f(float x)
+log10f(float x)
 {
 	float f,hfsq,hi,lo,r,y;
 	int32_t i,k,hx;
diff --git a/libm/upstream-freebsd/lib/msun/src/e_log2.c b/libm/upstream-freebsd/lib/msun/src/e_log2.c
deleted file mode 100644
index 4766cdb..0000000
--- a/libm/upstream-freebsd/lib/msun/src/e_log2.c
+++ /dev/null
@@ -1,117 +0,0 @@
-
-/* @(#)e_log10.c 1.3 95/01/18 */
-/*
- * ====================================================
- * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
- *
- * Developed at SunSoft, a Sun Microsystems, Inc. business.
- * Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice 
- * is preserved.
- * ====================================================
- */
-
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
-/*
- * Return the base 2 logarithm of x.  See e_log.c and k_log.h for most
- * comments.
- *
- * This reduces x to {k, 1+f} exactly as in e_log.c, then calls the kernel,
- * then does the combining and scaling steps
- *    log2(x) = (f - 0.5*f*f + k_log1p(f)) / ln2 + k
- * in not-quite-routine extra precision.
- */
-
-#include <float.h>
-
-#include "math.h"
-#include "math_private.h"
-#include "k_log.h"
-
-static const double
-two54      =  1.80143985094819840000e+16, /* 0x43500000, 0x00000000 */
-ivln2hi    =  1.44269504072144627571e+00, /* 0x3ff71547, 0x65200000 */
-ivln2lo    =  1.67517131648865118353e-10; /* 0x3de705fc, 0x2eefa200 */
-
-static const double zero   =  0.0;
-static volatile double vzero = 0.0;
-
-double
-__ieee754_log2(double x)
-{
-	double f,hfsq,hi,lo,r,val_hi,val_lo,w,y;
-	int32_t i,k,hx;
-	u_int32_t lx;
-
-	EXTRACT_WORDS(hx,lx,x);
-
-	k=0;
-	if (hx < 0x00100000) {			/* x < 2**-1022  */
-	    if (((hx&0x7fffffff)|lx)==0)
-		return -two54/vzero;		/* log(+-0)=-inf */
-	    if (hx<0) return (x-x)/zero;	/* log(-#) = NaN */
-	    k -= 54; x *= two54; /* subnormal number, scale up x */
-	    GET_HIGH_WORD(hx,x);
-	}
-	if (hx >= 0x7ff00000) return x+x;
-	if (hx == 0x3ff00000 && lx == 0)
-	    return zero;			/* log(1) = +0 */
-	k += (hx>>20)-1023;
-	hx &= 0x000fffff;
-	i = (hx+0x95f64)&0x100000;
-	SET_HIGH_WORD(x,hx|(i^0x3ff00000));	/* normalize x or x/2 */
-	k += (i>>20);
-	y = (double)k;
-	f = x - 1.0;
-	hfsq = 0.5*f*f;
-	r = k_log1p(f);
-
-	/*
-	 * f-hfsq must (for args near 1) be evaluated in extra precision
-	 * to avoid a large cancellation when x is near sqrt(2) or 1/sqrt(2).
-	 * This is fairly efficient since f-hfsq only depends on f, so can
-	 * be evaluated in parallel with R.  Not combining hfsq with R also
-	 * keeps R small (though not as small as a true `lo' term would be),
-	 * so that extra precision is not needed for terms involving R.
-	 *
-	 * Compiler bugs involving extra precision used to break Dekker's
-	 * theorem for spitting f-hfsq as hi+lo, unless double_t was used
-	 * or the multi-precision calculations were avoided when double_t
-	 * has extra precision.  These problems are now automatically
-	 * avoided as a side effect of the optimization of combining the
-	 * Dekker splitting step with the clear-low-bits step.
-	 *
-	 * y must (for args near sqrt(2) and 1/sqrt(2)) be added in extra
-	 * precision to avoid a very large cancellation when x is very near
-	 * these values.  Unlike the above cancellations, this problem is
-	 * specific to base 2.  It is strange that adding +-1 is so much
-	 * harder than adding +-ln2 or +-log10_2.
-	 *
-	 * This uses Dekker's theorem to normalize y+val_hi, so the
-	 * compiler bugs are back in some configurations, sigh.  And I
-	 * don't want to used double_t to avoid them, since that gives a
-	 * pessimization and the support for avoiding the pessimization
-	 * is not yet available.
-	 *
-	 * The multi-precision calculations for the multiplications are
-	 * routine.
-	 */
-	hi = f - hfsq;
-	SET_LOW_WORD(hi,0);
-	lo = (f - hi) - hfsq + r;
-	val_hi = hi*ivln2hi;
-	val_lo = (lo+hi)*ivln2lo + lo*ivln2hi;
-
-	/* spadd(val_hi, val_lo, y), except for not using double_t: */
-	w = y + val_hi;
-	val_lo += (y - w) + val_hi;
-	val_hi = w;
-
-	return val_lo + val_hi;
-}
-
-#if (LDBL_MANT_DIG == 53)
-__weak_reference(log2, log2l);
-#endif
diff --git a/libm/upstream-freebsd/lib/msun/src/e_log2f.c b/libm/upstream-freebsd/lib/msun/src/e_log2f.c
deleted file mode 100644
index 1794484..0000000
--- a/libm/upstream-freebsd/lib/msun/src/e_log2f.c
+++ /dev/null
@@ -1,82 +0,0 @@
-/*
- * ====================================================
- * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
- *
- * Developed at SunPro, a Sun Microsystems, Inc. business.
- * Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice
- * is preserved.
- * ====================================================
- */
-
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
-/*
- * Float version of e_log2.c.  See the latter for most comments.
- */
-
-#include "math.h"
-#include "math_private.h"
-#include "k_logf.h"
-
-static const float
-two25      =  3.3554432000e+07, /* 0x4c000000 */
-ivln2hi    =  1.4428710938e+00, /* 0x3fb8b000 */
-ivln2lo    = -1.7605285393e-04; /* 0xb9389ad4 */
-
-static const float zero   =  0.0;
-static volatile float vzero = 0.0;
-
-float
-__ieee754_log2f(float x)
-{
-	float f,hfsq,hi,lo,r,y;
-	int32_t i,k,hx;
-
-	GET_FLOAT_WORD(hx,x);
-
-	k=0;
-	if (hx < 0x00800000) {			/* x < 2**-126  */
-	    if ((hx&0x7fffffff)==0)
-		return -two25/vzero;		/* log(+-0)=-inf */
-	    if (hx<0) return (x-x)/zero;	/* log(-#) = NaN */
-	    k -= 25; x *= two25; /* subnormal number, scale up x */
-	    GET_FLOAT_WORD(hx,x);
-	}
-	if (hx >= 0x7f800000) return x+x;
-	if (hx == 0x3f800000)
-	    return zero;			/* log(1) = +0 */
-	k += (hx>>23)-127;
-	hx &= 0x007fffff;
-	i = (hx+(0x4afb0d))&0x800000;
-	SET_FLOAT_WORD(x,hx|(i^0x3f800000));	/* normalize x or x/2 */
-	k += (i>>23);
-	y = (float)k;
-	f = x - (float)1.0;
-	hfsq = (float)0.5*f*f;
-	r = k_log1pf(f);
-
-	/*
-	 * We no longer need to avoid falling into the multi-precision
-	 * calculations due to compiler bugs breaking Dekker's theorem.
-	 * Keep avoiding this as an optimization.  See e_log2.c for more
-	 * details (some details are here only because the optimization
-	 * is not yet available in double precision).
-	 *
-	 * Another compiler bug turned up.  With gcc on i386,
-	 * (ivln2lo + ivln2hi) would be evaluated in float precision
-	 * despite runtime evaluations using double precision.  So we
-	 * must cast one of its terms to float_t.  This makes the whole
-	 * expression have type float_t, so return is forced to waste
-	 * time clobbering its extra precision.
-	 */
-	if (sizeof(float_t) > sizeof(float))
-		return (r - hfsq + f) * ((float_t)ivln2lo + ivln2hi) + y;
-
-	hi = f - hfsq;
-	GET_FLOAT_WORD(hx,hi);
-	SET_FLOAT_WORD(hi,hx&0xfffff000);
-	lo = (f - hi) - hfsq + r;
-	return (lo+hi)*ivln2lo + lo*ivln2hi + hi*ivln2hi + y;
-}
diff --git a/libm/upstream-freebsd/lib/msun/src/e_logf.c b/libm/upstream-freebsd/lib/msun/src/e_logf.c
deleted file mode 100644
index ec3985f..0000000
--- a/libm/upstream-freebsd/lib/msun/src/e_logf.c
+++ /dev/null
@@ -1,89 +0,0 @@
-/* e_logf.c -- float version of e_log.c.
- * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com.
- */
-
-/*
- * ====================================================
- * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
- *
- * Developed at SunPro, a Sun Microsystems, Inc. business.
- * Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice
- * is preserved.
- * ====================================================
- */
-
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
-#include "math.h"
-#include "math_private.h"
-
-static const float
-ln2_hi =   6.9313812256e-01,	/* 0x3f317180 */
-ln2_lo =   9.0580006145e-06,	/* 0x3717f7d1 */
-two25 =    3.355443200e+07,	/* 0x4c000000 */
-/* |(log(1+s)-log(1-s))/s - Lg(s)| < 2**-34.24 (~[-4.95e-11, 4.97e-11]). */
-Lg1 =      0xaaaaaa.0p-24,	/* 0.66666662693 */
-Lg2 =      0xccce13.0p-25,	/* 0.40000972152 */
-Lg3 =      0x91e9ee.0p-25,	/* 0.28498786688 */
-Lg4 =      0xf89e26.0p-26;	/* 0.24279078841 */
-
-static const float zero   =  0.0;
-static volatile float vzero = 0.0;
-
-float
-__ieee754_logf(float x)
-{
-	float hfsq,f,s,z,R,w,t1,t2,dk;
-	int32_t k,ix,i,j;
-
-	GET_FLOAT_WORD(ix,x);
-
-	k=0;
-	if (ix < 0x00800000) {			/* x < 2**-126  */
-	    if ((ix&0x7fffffff)==0)
-		return -two25/vzero;		/* log(+-0)=-inf */
-	    if (ix<0) return (x-x)/zero;	/* log(-#) = NaN */
-	    k -= 25; x *= two25; /* subnormal number, scale up x */
-	    GET_FLOAT_WORD(ix,x);
-	}
-	if (ix >= 0x7f800000) return x+x;
-	k += (ix>>23)-127;
-	ix &= 0x007fffff;
-	i = (ix+(0x95f64<<3))&0x800000;
-	SET_FLOAT_WORD(x,ix|(i^0x3f800000));	/* normalize x or x/2 */
-	k += (i>>23);
-	f = x-(float)1.0;
-	if((0x007fffff&(0x8000+ix))<0xc000) {	/* -2**-9 <= f < 2**-9 */
-	    if(f==zero) {
-		if(k==0) {
-		    return zero;
-		} else {
-		    dk=(float)k;
-		    return dk*ln2_hi+dk*ln2_lo;
-		}
-	    }
-	    R = f*f*((float)0.5-(float)0.33333333333333333*f);
-	    if(k==0) return f-R; else {dk=(float)k;
-	    	     return dk*ln2_hi-((R-dk*ln2_lo)-f);}
-	}
- 	s = f/((float)2.0+f);
-	dk = (float)k;
-	z = s*s;
-	i = ix-(0x6147a<<3);
-	w = z*z;
-	j = (0x6b851<<3)-ix;
-	t1= w*(Lg2+w*Lg4);
-	t2= z*(Lg1+w*Lg3);
-	i |= j;
-	R = t2+t1;
-	if(i>0) {
-	    hfsq=(float)0.5*f*f;
-	    if(k==0) return f-(hfsq-s*(hfsq+R)); else
-		     return dk*ln2_hi-((hfsq-(s*(hfsq+R)+dk*ln2_lo))-f);
-	} else {
-	    if(k==0) return f-s*(f-R); else
-		     return dk*ln2_hi-((s*(f-R)-dk*ln2_lo)-f);
-	}
-}
diff --git a/libm/upstream-freebsd/lib/msun/src/e_pow.c b/libm/upstream-freebsd/lib/msun/src/e_pow.c
deleted file mode 100644
index 52b2f5c..0000000
--- a/libm/upstream-freebsd/lib/msun/src/e_pow.c
+++ /dev/null
@@ -1,314 +0,0 @@
-/* @(#)e_pow.c 1.5 04/04/22 SMI */
-/*
- * ====================================================
- * Copyright (C) 2004 by Sun Microsystems, Inc. All rights reserved.
- *
- * Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice
- * is preserved.
- * ====================================================
- */
-
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
-/* __ieee754_pow(x,y) return x**y
- *
- *		      n
- * Method:  Let x =  2   * (1+f)
- *	1. Compute and return log2(x) in two pieces:
- *		log2(x) = w1 + w2,
- *	   where w1 has 53-24 = 29 bit trailing zeros.
- *	2. Perform y*log2(x) = n+y' by simulating multi-precision
- *	   arithmetic, where |y'|<=0.5.
- *	3. Return x**y = 2**n*exp(y'*log2)
- *
- * Special cases:
- *	1.  (anything) ** 0  is 1
- *	2.  (anything) ** 1  is itself
- *	3.  (anything) ** NAN is NAN except 1 ** NAN = 1
- *	4.  NAN ** (anything except 0) is NAN
- *	5.  +-(|x| > 1) **  +INF is +INF
- *	6.  +-(|x| > 1) **  -INF is +0
- *	7.  +-(|x| < 1) **  +INF is +0
- *	8.  +-(|x| < 1) **  -INF is +INF
- *	9.  +-1         ** +-INF is 1
- *	10. +0 ** (+anything except 0, NAN)               is +0
- *	11. -0 ** (+anything except 0, NAN, odd integer)  is +0
- *	12. +0 ** (-anything except 0, NAN)               is +INF
- *	13. -0 ** (-anything except 0, NAN, odd integer)  is +INF
- *	14. -0 ** (odd integer) = -( +0 ** (odd integer) )
- *	15. +INF ** (+anything except 0,NAN) is +INF
- *	16. +INF ** (-anything except 0,NAN) is +0
- *	17. -INF ** (anything)  = -0 ** (-anything)
- *	18. (-anything) ** (integer) is (-1)**(integer)*(+anything**integer)
- *	19. (-anything except 0 and inf) ** (non-integer) is NAN
- *
- * Accuracy:
- *	pow(x,y) returns x**y nearly rounded. In particular
- *			pow(integer,integer)
- *	always returns the correct integer provided it is
- *	representable.
- *
- * Constants :
- * The hexadecimal values are the intended ones for the following
- * constants. The decimal values may be used, provided that the
- * compiler will convert from decimal to binary accurately enough
- * to produce the hexadecimal values shown.
- */
-
-#include <float.h>
-#include "math.h"
-#include "math_private.h"
-
-static const double
-bp[] = {1.0, 1.5,},
-dp_h[] = { 0.0, 5.84962487220764160156e-01,}, /* 0x3FE2B803, 0x40000000 */
-dp_l[] = { 0.0, 1.35003920212974897128e-08,}, /* 0x3E4CFDEB, 0x43CFD006 */
-zero    =  0.0,
-half    =  0.5,
-qrtr    =  0.25,
-thrd    =  3.3333333333333331e-01, /* 0x3fd55555, 0x55555555 */
-one	=  1.0,
-two	=  2.0,
-two53	=  9007199254740992.0,	/* 0x43400000, 0x00000000 */
-huge	=  1.0e300,
-tiny    =  1.0e-300,
-	/* poly coefs for (3/2)*(log(x)-2s-2/3*s**3 */
-L1  =  5.99999999999994648725e-01, /* 0x3FE33333, 0x33333303 */
-L2  =  4.28571428578550184252e-01, /* 0x3FDB6DB6, 0xDB6FABFF */
-L3  =  3.33333329818377432918e-01, /* 0x3FD55555, 0x518F264D */
-L4  =  2.72728123808534006489e-01, /* 0x3FD17460, 0xA91D4101 */
-L5  =  2.30660745775561754067e-01, /* 0x3FCD864A, 0x93C9DB65 */
-L6  =  2.06975017800338417784e-01, /* 0x3FCA7E28, 0x4A454EEF */
-P1   =  1.66666666666666019037e-01, /* 0x3FC55555, 0x5555553E */
-P2   = -2.77777777770155933842e-03, /* 0xBF66C16C, 0x16BEBD93 */
-P3   =  6.61375632143793436117e-05, /* 0x3F11566A, 0xAF25DE2C */
-P4   = -1.65339022054652515390e-06, /* 0xBEBBBD41, 0xC5D26BF1 */
-P5   =  4.13813679705723846039e-08, /* 0x3E663769, 0x72BEA4D0 */
-lg2  =  6.93147180559945286227e-01, /* 0x3FE62E42, 0xFEFA39EF */
-lg2_h  =  6.93147182464599609375e-01, /* 0x3FE62E43, 0x00000000 */
-lg2_l  = -1.90465429995776804525e-09, /* 0xBE205C61, 0x0CA86C39 */
-ovt =  8.0085662595372944372e-0017, /* -(1024-log2(ovfl+.5ulp)) */
-cp    =  9.61796693925975554329e-01, /* 0x3FEEC709, 0xDC3A03FD =2/(3ln2) */
-cp_h  =  9.61796700954437255859e-01, /* 0x3FEEC709, 0xE0000000 =(float)cp */
-cp_l  = -7.02846165095275826516e-09, /* 0xBE3E2FE0, 0x145B01F5 =tail of cp_h*/
-ivln2    =  1.44269504088896338700e+00, /* 0x3FF71547, 0x652B82FE =1/ln2 */
-ivln2_h  =  1.44269502162933349609e+00, /* 0x3FF71547, 0x60000000 =24b 1/ln2*/
-ivln2_l  =  1.92596299112661746887e-08; /* 0x3E54AE0B, 0xF85DDF44 =1/ln2 tail*/
-
-double
-__ieee754_pow(double x, double y)
-{
-	double z,ax,z_h,z_l,p_h,p_l;
-	double y1,t1,t2,r,s,t,u,v,w;
-	int32_t i,j,k,yisint,n;
-	int32_t hx,hy,ix,iy;
-	u_int32_t lx,ly;
-
-	EXTRACT_WORDS(hx,lx,x);
-	EXTRACT_WORDS(hy,ly,y);
-	ix = hx&0x7fffffff;  iy = hy&0x7fffffff;
-
-    /* y==zero: x**0 = 1 */
-	if((iy|ly)==0) return one;
-
-    /* x==1: 1**y = 1, even if y is NaN */
-	if (hx==0x3ff00000 && lx == 0) return one;
-
-    /* y!=zero: result is NaN if either arg is NaN */
-	if(ix > 0x7ff00000 || ((ix==0x7ff00000)&&(lx!=0)) ||
-	   iy > 0x7ff00000 || ((iy==0x7ff00000)&&(ly!=0)))
-	    return nan_mix(x, y);
-
-    /* determine if y is an odd int when x < 0
-     * yisint = 0	... y is not an integer
-     * yisint = 1	... y is an odd int
-     * yisint = 2	... y is an even int
-     */
-	yisint  = 0;
-	if(hx<0) {
-	    if(iy>=0x43400000) yisint = 2; /* even integer y */
-	    else if(iy>=0x3ff00000) {
-		k = (iy>>20)-0x3ff;	   /* exponent */
-		if(k>20) {
-		    j = ly>>(52-k);
-		    if(((u_int32_t)j<<(52-k))==ly) yisint = 2-(j&1);
-		} else if(ly==0) {
-		    j = iy>>(20-k);
-		    if((j<<(20-k))==iy) yisint = 2-(j&1);
-		}
-	    }
-	}
-
-    /* special value of y */
-	if(ly==0) {
-	    if (iy==0x7ff00000) {	/* y is +-inf */
-	        if(((ix-0x3ff00000)|lx)==0)
-		    return  one;	/* (-1)**+-inf is 1 */
-	        else if (ix >= 0x3ff00000)/* (|x|>1)**+-inf = inf,0 */
-		    return (hy>=0)? y: zero;
-	        else			/* (|x|<1)**-,+inf = inf,0 */
-		    return (hy<0)?-y: zero;
-	    }
-	    if(iy==0x3ff00000) {	/* y is  +-1 */
-		if(hy<0) return one/x; else return x;
-	    }
-	    if(hy==0x40000000) return x*x; /* y is  2 */
-	    if(hy==0x3fe00000) {	/* y is  0.5 */
-		if(hx>=0)	/* x >= +0 */
-		return sqrt(x);
-	    }
-	}
-
-	ax   = fabs(x);
-    /* special value of x */
-	if(lx==0) {
-	    if(ix==0x7ff00000||ix==0||ix==0x3ff00000){
-		z = ax;			/*x is +-0,+-inf,+-1*/
-		if(hy<0) z = one/z;	/* z = (1/|x|) */
-		if(hx<0) {
-		    if(((ix-0x3ff00000)|yisint)==0) {
-			z = (z-z)/(z-z); /* (-1)**non-int is NaN */
-		    } else if(yisint==1)
-			z = -z;		/* (x<0)**odd = -(|x|**odd) */
-		}
-		return z;
-	    }
-	}
-
-    /* CYGNUS LOCAL + fdlibm-5.3 fix: This used to be
-	n = (hx>>31)+1;
-       but ANSI C says a right shift of a signed negative quantity is
-       implementation defined.  */
-	n = ((u_int32_t)hx>>31)-1;
-
-    /* (x<0)**(non-int) is NaN */
-	if((n|yisint)==0) return (x-x)/(x-x);
-
-	s = one; /* s (sign of result -ve**odd) = -1 else = 1 */
-	if((n|(yisint-1))==0) s = -one;/* (-ve)**(odd int) */
-
-    /* |y| is huge */
-	if(iy>0x41e00000) { /* if |y| > 2**31 */
-	    if(iy>0x43f00000){	/* if |y| > 2**64, must o/uflow */
-		if(ix<=0x3fefffff) return (hy<0)? huge*huge:tiny*tiny;
-		if(ix>=0x3ff00000) return (hy>0)? huge*huge:tiny*tiny;
-	    }
-	/* over/underflow if x is not close to one */
-	    if(ix<0x3fefffff) return (hy<0)? s*huge*huge:s*tiny*tiny;
-	    if(ix>0x3ff00000) return (hy>0)? s*huge*huge:s*tiny*tiny;
-	/* now |1-x| is tiny <= 2**-20, suffice to compute
-	   log(x) by x-x^2/2+x^3/3-x^4/4 */
-	    t = ax-one;		/* t has 20 trailing zeros */
-	    w = (t*t)*(half-t*(thrd-t*qrtr));
-	    u = ivln2_h*t;	/* ivln2_h has 21 sig. bits */
-	    v = t*ivln2_l-w*ivln2;
-	    t1 = u+v;
-	    SET_LOW_WORD(t1,0);
-	    t2 = v-(t1-u);
-	} else {
-	    double ss,s2,s_h,s_l,t_h,t_l;
-	    n = 0;
-	/* take care subnormal number */
-	    if(ix<0x00100000)
-		{ax *= two53; n -= 53; GET_HIGH_WORD(ix,ax); }
-	    n  += ((ix)>>20)-0x3ff;
-	    j  = ix&0x000fffff;
-	/* determine interval */
-	    ix = j|0x3ff00000;		/* normalize ix */
-	    if(j<=0x3988E) k=0;		/* |x|<sqrt(3/2) */
-	    else if(j<0xBB67A) k=1;	/* |x|<sqrt(3)   */
-	    else {k=0;n+=1;ix -= 0x00100000;}
-	    SET_HIGH_WORD(ax,ix);
-
-	/* compute ss = s_h+s_l = (x-1)/(x+1) or (x-1.5)/(x+1.5) */
-	    u = ax-bp[k];		/* bp[0]=1.0, bp[1]=1.5 */
-	    v = one/(ax+bp[k]);
-	    ss = u*v;
-	    s_h = ss;
-	    SET_LOW_WORD(s_h,0);
-	/* t_h=ax+bp[k] High */
-	    t_h = zero;
-	    SET_HIGH_WORD(t_h,((ix>>1)|0x20000000)+0x00080000+(k<<18));
-	    t_l = ax - (t_h-bp[k]);
-	    s_l = v*((u-s_h*t_h)-s_h*t_l);
-	/* compute log(ax) */
-	    s2 = ss*ss;
-	    r = s2*s2*(L1+s2*(L2+s2*(L3+s2*(L4+s2*(L5+s2*L6)))));
-	    r += s_l*(s_h+ss);
-	    s2  = s_h*s_h;
-	    t_h = 3+s2+r;
-	    SET_LOW_WORD(t_h,0);
-	    t_l = r-((t_h-3)-s2);
-	/* u+v = ss*(1+...) */
-	    u = s_h*t_h;
-	    v = s_l*t_h+t_l*ss;
-	/* 2/(3log2)*(ss+...) */
-	    p_h = u+v;
-	    SET_LOW_WORD(p_h,0);
-	    p_l = v-(p_h-u);
-	    z_h = cp_h*p_h;		/* cp_h+cp_l = 2/(3*log2) */
-	    z_l = cp_l*p_h+p_l*cp+dp_l[k];
-	/* log2(ax) = (ss+..)*2/(3*log2) = n + dp_h + z_h + z_l */
-	    t = n;
-	    t1 = (((z_h+z_l)+dp_h[k])+t);
-	    SET_LOW_WORD(t1,0);
-	    t2 = z_l-(((t1-t)-dp_h[k])-z_h);
-	}
-
-    /* split up y into y1+y2 and compute (y1+y2)*(t1+t2) */
-	y1  = y;
-	SET_LOW_WORD(y1,0);
-	p_l = (y-y1)*t1+y*t2;
-	p_h = y1*t1;
-	z = p_l+p_h;
-	EXTRACT_WORDS(j,i,z);
-	if (j>=0x40900000) {				/* z >= 1024 */
-	    if(((j-0x40900000)|i)!=0)			/* if z > 1024 */
-		return s*huge*huge;			/* overflow */
-	    else {
-		if(p_l+ovt>z-p_h) return s*huge*huge;	/* overflow */
-	    }
-	} else if((j&0x7fffffff)>=0x4090cc00 ) {	/* z <= -1075 */
-	    if(((j-0xc090cc00)|i)!=0) 		/* z < -1075 */
-		return s*tiny*tiny;		/* underflow */
-	    else {
-		if(p_l<=z-p_h) return s*tiny*tiny;	/* underflow */
-	    }
-	}
-    /*
-     * compute 2**(p_h+p_l)
-     */
-	i = j&0x7fffffff;
-	k = (i>>20)-0x3ff;
-	n = 0;
-	if(i>0x3fe00000) {		/* if |z| > 0.5, set n = [z+0.5] */
-	    n = j+(0x00100000>>(k+1));
-	    k = ((n&0x7fffffff)>>20)-0x3ff;	/* new k for n */
-	    t = zero;
-	    SET_HIGH_WORD(t,n&~(0x000fffff>>k));
-	    n = ((n&0x000fffff)|0x00100000)>>(20-k);
-	    if(j<0) n = -n;
-	    p_h -= t;
-	}
-	t = p_l+p_h;
-	SET_LOW_WORD(t,0);
-	u = t*lg2_h;
-	v = (p_l-(t-p_h))*lg2+t*lg2_l;
-	z = u+v;
-	w = v-(z-u);
-	t  = z*z;
-	t1  = z - t*(P1+t*(P2+t*(P3+t*(P4+t*P5))));
-	r  = (z*t1)/(t1-two)-(w+z*w);
-	z  = one-(r-z);
-	GET_HIGH_WORD(j,z);
-	j += (n<<20);
-	if((j>>20)<=0) z = scalbn(z,n);	/* subnormal output */
-	else SET_HIGH_WORD(z,j);
-	return s*z;
-}
-
-#if (LDBL_MANT_DIG == 53)
-__weak_reference(pow, powl);
-#endif
diff --git a/libm/upstream-freebsd/lib/msun/src/e_powf.c b/libm/upstream-freebsd/lib/msun/src/e_powf.c
deleted file mode 100644
index 122da45..0000000
--- a/libm/upstream-freebsd/lib/msun/src/e_powf.c
+++ /dev/null
@@ -1,252 +0,0 @@
-/* e_powf.c -- float version of e_pow.c.
- * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com.
- */
-
-/*
- * ====================================================
- * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
- *
- * Developed at SunPro, a Sun Microsystems, Inc. business.
- * Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice
- * is preserved.
- * ====================================================
- */
-
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
-#include "math.h"
-#include "math_private.h"
-
-static const float
-bp[] = {1.0, 1.5,},
-dp_h[] = { 0.0, 5.84960938e-01,}, /* 0x3f15c000 */
-dp_l[] = { 0.0, 1.56322085e-06,}, /* 0x35d1cfdc */
-zero    =  0.0,
-half    =  0.5,
-qrtr    =  0.25,
-thrd    =  3.33333343e-01, /* 0x3eaaaaab */
-one	=  1.0,
-two	=  2.0,
-two24	=  16777216.0,	/* 0x4b800000 */
-huge	=  1.0e30,
-tiny    =  1.0e-30,
-	/* poly coefs for (3/2)*(log(x)-2s-2/3*s**3 */
-L1  =  6.0000002384e-01, /* 0x3f19999a */
-L2  =  4.2857143283e-01, /* 0x3edb6db7 */
-L3  =  3.3333334327e-01, /* 0x3eaaaaab */
-L4  =  2.7272811532e-01, /* 0x3e8ba305 */
-L5  =  2.3066075146e-01, /* 0x3e6c3255 */
-L6  =  2.0697501302e-01, /* 0x3e53f142 */
-P1   =  1.6666667163e-01, /* 0x3e2aaaab */
-P2   = -2.7777778450e-03, /* 0xbb360b61 */
-P3   =  6.6137559770e-05, /* 0x388ab355 */
-P4   = -1.6533901999e-06, /* 0xb5ddea0e */
-P5   =  4.1381369442e-08, /* 0x3331bb4c */
-lg2  =  6.9314718246e-01, /* 0x3f317218 */
-lg2_h  =  6.93145752e-01, /* 0x3f317200 */
-lg2_l  =  1.42860654e-06, /* 0x35bfbe8c */
-ovt =  4.2995665694e-08, /* -(128-log2(ovfl+.5ulp)) */
-cp    =  9.6179670095e-01, /* 0x3f76384f =2/(3ln2) */
-cp_h  =  9.6191406250e-01, /* 0x3f764000 =12b cp */
-cp_l  = -1.1736857402e-04, /* 0xb8f623c6 =tail of cp_h */
-ivln2    =  1.4426950216e+00, /* 0x3fb8aa3b =1/ln2 */
-ivln2_h  =  1.4426879883e+00, /* 0x3fb8aa00 =16b 1/ln2*/
-ivln2_l  =  7.0526075433e-06; /* 0x36eca570 =1/ln2 tail*/
-
-float
-__ieee754_powf(float x, float y)
-{
-	float z,ax,z_h,z_l,p_h,p_l;
-	float y1,t1,t2,r,s,sn,t,u,v,w;
-	int32_t i,j,k,yisint,n;
-	int32_t hx,hy,ix,iy,is;
-
-	GET_FLOAT_WORD(hx,x);
-	GET_FLOAT_WORD(hy,y);
-	ix = hx&0x7fffffff;  iy = hy&0x7fffffff;
-
-    /* y==zero: x**0 = 1 */
-	if(iy==0) return one;
-
-    /* x==1: 1**y = 1, even if y is NaN */
-	if (hx==0x3f800000) return one;
-
-    /* y!=zero: result is NaN if either arg is NaN */
-	if(ix > 0x7f800000 ||
-	   iy > 0x7f800000)
-	    return nan_mix(x, y);
-
-    /* determine if y is an odd int when x < 0
-     * yisint = 0	... y is not an integer
-     * yisint = 1	... y is an odd int
-     * yisint = 2	... y is an even int
-     */
-	yisint  = 0;
-	if(hx<0) {
-	    if(iy>=0x4b800000) yisint = 2; /* even integer y */
-	    else if(iy>=0x3f800000) {
-		k = (iy>>23)-0x7f;	   /* exponent */
-		j = iy>>(23-k);
-		if((j<<(23-k))==iy) yisint = 2-(j&1);
-	    }
-	}
-
-    /* special value of y */
-	if (iy==0x7f800000) {	/* y is +-inf */
-	    if (ix==0x3f800000)
-	        return  one;	/* (-1)**+-inf is NaN */
-	    else if (ix > 0x3f800000)/* (|x|>1)**+-inf = inf,0 */
-	        return (hy>=0)? y: zero;
-	    else			/* (|x|<1)**-,+inf = inf,0 */
-	        return (hy<0)?-y: zero;
-	}
-	if(iy==0x3f800000) {	/* y is  +-1 */
-	    if(hy<0) return one/x; else return x;
-	}
-	if(hy==0x40000000) return x*x; /* y is  2 */
-	if(hy==0x3f000000) {	/* y is  0.5 */
-	    if(hx>=0)	/* x >= +0 */
-	    return __ieee754_sqrtf(x);
-	}
-
-	ax   = fabsf(x);
-    /* special value of x */
-	if(ix==0x7f800000||ix==0||ix==0x3f800000){
-	    z = ax;			/*x is +-0,+-inf,+-1*/
-	    if(hy<0) z = one/z;	/* z = (1/|x|) */
-	    if(hx<0) {
-		if(((ix-0x3f800000)|yisint)==0) {
-		    z = (z-z)/(z-z); /* (-1)**non-int is NaN */
-		} else if(yisint==1)
-		    z = -z;		/* (x<0)**odd = -(|x|**odd) */
-	    }
-	    return z;
-	}
-
-	n = ((u_int32_t)hx>>31)-1;
-
-    /* (x<0)**(non-int) is NaN */
-	if((n|yisint)==0) return (x-x)/(x-x);
-
-	sn = one; /* s (sign of result -ve**odd) = -1 else = 1 */
-	if((n|(yisint-1))==0) sn = -one;/* (-ve)**(odd int) */
-
-    /* |y| is huge */
-	if(iy>0x4d000000) { /* if |y| > 2**27 */
-	/* over/underflow if x is not close to one */
-	    if(ix<0x3f7ffff6) return (hy<0)? sn*huge*huge:sn*tiny*tiny;
-	    if(ix>0x3f800007) return (hy>0)? sn*huge*huge:sn*tiny*tiny;
-	/* now |1-x| is tiny <= 2**-20, suffice to compute
-	   log(x) by x-x^2/2+x^3/3-x^4/4 */
-	    t = ax-1;		/* t has 20 trailing zeros */
-	    w = (t*t)*(half-t*(thrd-t*qrtr));
-	    u = ivln2_h*t;	/* ivln2_h has 16 sig. bits */
-	    v = t*ivln2_l-w*ivln2;
-	    t1 = u+v;
-	    GET_FLOAT_WORD(is,t1);
-	    SET_FLOAT_WORD(t1,is&0xfffff000);
-	    t2 = v-(t1-u);
-	} else {
-	    float s2,s_h,s_l,t_h,t_l;
-	    n = 0;
-	/* take care subnormal number */
-	    if(ix<0x00800000)
-		{ax *= two24; n -= 24; GET_FLOAT_WORD(ix,ax); }
-	    n  += ((ix)>>23)-0x7f;
-	    j  = ix&0x007fffff;
-	/* determine interval */
-	    ix = j|0x3f800000;		/* normalize ix */
-	    if(j<=0x1cc471) k=0;	/* |x|<sqrt(3/2) */
-	    else if(j<0x5db3d7) k=1;	/* |x|<sqrt(3)   */
-	    else {k=0;n+=1;ix -= 0x00800000;}
-	    SET_FLOAT_WORD(ax,ix);
-
-	/* compute s = s_h+s_l = (x-1)/(x+1) or (x-1.5)/(x+1.5) */
-	    u = ax-bp[k];		/* bp[0]=1.0, bp[1]=1.5 */
-	    v = one/(ax+bp[k]);
-	    s = u*v;
-	    s_h = s;
-	    GET_FLOAT_WORD(is,s_h);
-	    SET_FLOAT_WORD(s_h,is&0xfffff000);
-	/* t_h=ax+bp[k] High */
-	    is = ((ix>>1)&0xfffff000)|0x20000000;
-	    SET_FLOAT_WORD(t_h,is+0x00400000+(k<<21));
-	    t_l = ax - (t_h-bp[k]);
-	    s_l = v*((u-s_h*t_h)-s_h*t_l);
-	/* compute log(ax) */
-	    s2 = s*s;
-	    r = s2*s2*(L1+s2*(L2+s2*(L3+s2*(L4+s2*(L5+s2*L6)))));
-	    r += s_l*(s_h+s);
-	    s2  = s_h*s_h;
-	    t_h = 3+s2+r;
-	    GET_FLOAT_WORD(is,t_h);
-	    SET_FLOAT_WORD(t_h,is&0xfffff000);
-	    t_l = r-((t_h-3)-s2);
-	/* u+v = s*(1+...) */
-	    u = s_h*t_h;
-	    v = s_l*t_h+t_l*s;
-	/* 2/(3log2)*(s+...) */
-	    p_h = u+v;
-	    GET_FLOAT_WORD(is,p_h);
-	    SET_FLOAT_WORD(p_h,is&0xfffff000);
-	    p_l = v-(p_h-u);
-	    z_h = cp_h*p_h;		/* cp_h+cp_l = 2/(3*log2) */
-	    z_l = cp_l*p_h+p_l*cp+dp_l[k];
-	/* log2(ax) = (s+..)*2/(3*log2) = n + dp_h + z_h + z_l */
-	    t = n;
-	    t1 = (((z_h+z_l)+dp_h[k])+t);
-	    GET_FLOAT_WORD(is,t1);
-	    SET_FLOAT_WORD(t1,is&0xfffff000);
-	    t2 = z_l-(((t1-t)-dp_h[k])-z_h);
-	}
-
-    /* split up y into y1+y2 and compute (y1+y2)*(t1+t2) */
-	GET_FLOAT_WORD(is,y);
-	SET_FLOAT_WORD(y1,is&0xfffff000);
-	p_l = (y-y1)*t1+y*t2;
-	p_h = y1*t1;
-	z = p_l+p_h;
-	GET_FLOAT_WORD(j,z);
-	if (j>0x43000000)				/* if z > 128 */
-	    return sn*huge*huge;			/* overflow */
-	else if (j==0x43000000) {			/* if z == 128 */
-	    if(p_l+ovt>z-p_h) return sn*huge*huge;	/* overflow */
-	}
-	else if ((j&0x7fffffff)>0x43160000)		/* z <= -150 */
-	    return sn*tiny*tiny;			/* underflow */
-	else if (j==0xc3160000){			/* z == -150 */
-	    if(p_l<=z-p_h) return sn*tiny*tiny;		/* underflow */
-	}
-    /*
-     * compute 2**(p_h+p_l)
-     */
-	i = j&0x7fffffff;
-	k = (i>>23)-0x7f;
-	n = 0;
-	if(i>0x3f000000) {		/* if |z| > 0.5, set n = [z+0.5] */
-	    n = j+(0x00800000>>(k+1));
-	    k = ((n&0x7fffffff)>>23)-0x7f;	/* new k for n */
-	    SET_FLOAT_WORD(t,n&~(0x007fffff>>k));
-	    n = ((n&0x007fffff)|0x00800000)>>(23-k);
-	    if(j<0) n = -n;
-	    p_h -= t;
-	}
-	t = p_l+p_h;
-	GET_FLOAT_WORD(is,t);
-	SET_FLOAT_WORD(t,is&0xffff8000);
-	u = t*lg2_h;
-	v = (p_l-(t-p_h))*lg2+t*lg2_l;
-	z = u+v;
-	w = v-(z-u);
-	t  = z*z;
-	t1  = z - t*(P1+t*(P2+t*(P3+t*(P4+t*P5))));
-	r  = (z*t1)/(t1-two)-(w+z*w);
-	z  = one-(r-z);
-	GET_FLOAT_WORD(j,z);
-	j += (n<<23);
-	if((j>>23)<=0) z = scalbnf(z,n);	/* subnormal output */
-	else SET_FLOAT_WORD(z,j);
-	return sn*z;
-}
diff --git a/libm/upstream-freebsd/lib/msun/src/e_rem_pio2.c b/libm/upstream-freebsd/lib/msun/src/e_rem_pio2.c
index 47b6513..16a57a0 100644
--- a/libm/upstream-freebsd/lib/msun/src/e_rem_pio2.c
+++ b/libm/upstream-freebsd/lib/msun/src/e_rem_pio2.c
@@ -1,5 +1,4 @@
 
-/* @(#)e_rem_pio2.c 1.4 95/01/18 */
 /*
  * ====================================================
  * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
@@ -13,9 +12,6 @@
  * Optimized by Bruce D. Evans.
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 /* __ieee754_rem_pio2(x,y)
  * 
  * return the remainder of x rem pi/2 in y[0]+y[1] 
@@ -49,7 +45,7 @@
 pio2_3t =  8.47842766036889956997e-32; /* 0x397B839A, 0x252049C1 */
 
 #ifdef INLINE_REM_PIO2
-static __inline __always_inline
+static __always_inline
 #endif
 int
 __ieee754_rem_pio2(double x, double *y)
@@ -166,7 +162,7 @@
     /* set z = scalbn(|x|,ilogb(x)-23) */
 	GET_LOW_WORD(low,x);
 	e0 	= (ix>>20)-1046;	/* e0 = ilogb(z)-23; */
-	INSERT_WORDS(z, ix - ((int32_t)(e0<<20)), low);
+	INSERT_WORDS(z, ix - ((int32_t)((u_int32_t)e0<<20)), low);
 	for(i=0;i<2;i++) {
 		tx[i] = (double)((int32_t)(z));
 		z     = (z-tx[i])*two24;
diff --git a/libm/upstream-freebsd/lib/msun/src/e_rem_pio2f.c b/libm/upstream-freebsd/lib/msun/src/e_rem_pio2f.c
index 597f613..84cd9bf 100644
--- a/libm/upstream-freebsd/lib/msun/src/e_rem_pio2f.c
+++ b/libm/upstream-freebsd/lib/msun/src/e_rem_pio2f.c
@@ -14,9 +14,6 @@
  * ====================================================
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 /* __ieee754_rem_pio2f(x,y)
  *
  * return the remainder of x rem pi/2 in *y
@@ -41,7 +38,7 @@
 pio2_1t =  1.58932547735281966916e-08; /* 0x3E5110b4, 0x611A6263 */
 
 #ifdef INLINE_REM_PIO2F
-static __inline __always_inline
+static __always_inline
 #endif
 int
 __ieee754_rem_pio2f(float x, double *y)
@@ -70,7 +67,7 @@
 	}
     /* set z = scalbn(|x|,ilogb(|x|)-23) */
 	e0 = (ix>>23)-150;		/* e0 = ilogb(|x|)-23; */
-	SET_FLOAT_WORD(z, ix - ((int32_t)(e0<<23)));
+	SET_FLOAT_WORD(z, ix - ((int32_t)((u_int32_t)e0<<23)));
 	tx[0] = z;
 	n  =  __kernel_rem_pio2(tx,ty,e0,1,0);
 	if(hx<0) {*y = -ty[0]; return -n;}
diff --git a/libm/upstream-freebsd/lib/msun/src/e_remainder.c b/libm/upstream-freebsd/lib/msun/src/e_remainder.c
index a4ae0b7..a5fb714 100644
--- a/libm/upstream-freebsd/lib/msun/src/e_remainder.c
+++ b/libm/upstream-freebsd/lib/msun/src/e_remainder.c
@@ -1,5 +1,4 @@
 
-/* @(#)e_remainder.c 1.3 95/01/18 */
 /*
  * ====================================================
  * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
@@ -11,10 +10,7 @@
  * ====================================================
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
-/* __ieee754_remainder(x,p)
+/* remainder(x,p)
  * Return :                  
  * 	returns  x REM p  =  x - [x/p]*p as if in infinite 
  * 	precise arithmetic, where [x/p] is the (infinite bit) 
@@ -32,7 +28,7 @@
 
 
 double
-__ieee754_remainder(double x, double p)
+remainder(double x, double p)
 {
 	int32_t hx,hp;
 	u_int32_t sx,lx,lp;
@@ -52,7 +48,7 @@
 	    return nan_mix_op(x, p, *)/nan_mix_op(x, p, *);
 
 
-	if (hp<=0x7fdfffff) x = __ieee754_fmod(x,p+p);	/* now x < 2p */
+	if (hp<=0x7fdfffff) x = fmod(x,p+p);	/* now x < 2p */
 	if (((hx-hp)|(lx-lp))==0) return zero*x;
 	x  = fabs(x);
 	p  = fabs(p);
diff --git a/libm/upstream-freebsd/lib/msun/src/e_remainderf.c b/libm/upstream-freebsd/lib/msun/src/e_remainderf.c
index 8004493..4a6ff63 100644
--- a/libm/upstream-freebsd/lib/msun/src/e_remainderf.c
+++ b/libm/upstream-freebsd/lib/msun/src/e_remainderf.c
@@ -13,9 +13,6 @@
  * ====================================================
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 #include "math.h"
 #include "math_private.h"
 
@@ -23,7 +20,7 @@
 
 
 float
-__ieee754_remainderf(float x, float p)
+remainderf(float x, float p)
 {
 	int32_t hx,hp;
 	u_int32_t sx;
@@ -42,7 +39,7 @@
 	    return nan_mix_op(x, p, *)/nan_mix_op(x, p, *);
 
 
-	if (hp<=0x7effffff) x = __ieee754_fmodf(x,p+p);	/* now x < 2p */
+	if (hp<=0x7effffff) x = fmodf(x,p+p);	/* now x < 2p */
 	if ((hx-hp)==0) return zero*x;
 	x  = fabsf(x);
 	p  = fabsf(p);
diff --git a/libm/upstream-freebsd/lib/msun/src/e_remainderl.c b/libm/upstream-freebsd/lib/msun/src/e_remainderl.c
index 4a67863..7a681cd 100644
--- a/libm/upstream-freebsd/lib/msun/src/e_remainderl.c
+++ b/libm/upstream-freebsd/lib/msun/src/e_remainderl.c
@@ -1,5 +1,5 @@
 /*-
- * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+ * SPDX-License-Identifier: BSD-2-Clause
  *
  * Copyright (c) 2008 David Schultz <das@FreeBSD.ORG>
  * All rights reserved.
@@ -26,9 +26,6 @@
  * SUCH DAMAGE.
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 #include <math.h>
 
 long double
diff --git a/libm/upstream-freebsd/lib/msun/src/e_scalb.c b/libm/upstream-freebsd/lib/msun/src/e_scalb.c
index c0a7b5b..28d2ae6 100644
--- a/libm/upstream-freebsd/lib/msun/src/e_scalb.c
+++ b/libm/upstream-freebsd/lib/msun/src/e_scalb.c
@@ -1,5 +1,4 @@
 
-/* @(#)e_scalb.c 1.3 95/01/18 */
 /*
  * ====================================================
  * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
@@ -11,11 +10,8 @@
  * ====================================================
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 /*
- * __ieee754_scalb(x, fn) is provide for
+ * scalb(x, fn) is provide for
  * passing various standard test suite. One 
  * should use scalbn() instead.
  */
@@ -25,10 +21,10 @@
 
 #ifdef _SCALB_INT
 double
-__ieee754_scalb(double x, int fn)
+scalb(double x, int fn)
 #else
 double
-__ieee754_scalb(double x, double fn)
+scalb(double x, double fn)
 #endif
 {
 #ifdef _SCALB_INT
diff --git a/libm/upstream-freebsd/lib/msun/src/e_scalbf.c b/libm/upstream-freebsd/lib/msun/src/e_scalbf.c
index d49e904..557a5a0 100644
--- a/libm/upstream-freebsd/lib/msun/src/e_scalbf.c
+++ b/libm/upstream-freebsd/lib/msun/src/e_scalbf.c
@@ -13,18 +13,15 @@
  * ====================================================
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 #include "math.h"
 #include "math_private.h"
 
 #ifdef _SCALB_INT
 float
-__ieee754_scalbf(float x, int fn)
+scalbf(float x, int fn)
 #else
 float
-__ieee754_scalbf(float x, float fn)
+scalbf(float x, float fn)
 #endif
 {
 #ifdef _SCALB_INT
diff --git a/libm/upstream-freebsd/lib/msun/src/e_sinh.c b/libm/upstream-freebsd/lib/msun/src/e_sinh.c
index 6c01f4a..5eec75e 100644
--- a/libm/upstream-freebsd/lib/msun/src/e_sinh.c
+++ b/libm/upstream-freebsd/lib/msun/src/e_sinh.c
@@ -1,5 +1,4 @@
 
-/* @(#)e_sinh.c 1.3 95/01/18 */
 /*
  * ====================================================
  * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
@@ -11,10 +10,7 @@
  * ====================================================
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
-/* __ieee754_sinh(x)
+/* sinh(x)
  * Method : 
  * mathematically sinh(x) if defined to be (exp(x)-exp(-x))/2
  *	1. Replace x by |x| (sinh(-x) = -sinh(x)). 
@@ -40,7 +36,7 @@
 static const double one = 1.0, shuge = 1.0e307;
 
 double
-__ieee754_sinh(double x)
+sinh(double x)
 {
 	double t,h;
 	int32_t ix,jx;
@@ -64,7 +60,7 @@
 	}
 
     /* |x| in [22, log(maxdouble)] return 0.5*exp(|x|) */
-	if (ix < 0x40862E42)  return h*__ieee754_exp(fabs(x));
+	if (ix < 0x40862E42)  return h*exp(fabs(x));
 
     /* |x| in [log(maxdouble), overflowthresold] */
 	if (ix<=0x408633CE)
diff --git a/libm/upstream-freebsd/lib/msun/src/e_sinhf.c b/libm/upstream-freebsd/lib/msun/src/e_sinhf.c
index 1be2dc3..e9fe732 100644
--- a/libm/upstream-freebsd/lib/msun/src/e_sinhf.c
+++ b/libm/upstream-freebsd/lib/msun/src/e_sinhf.c
@@ -13,16 +13,13 @@
  * ====================================================
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 #include "math.h"
 #include "math_private.h"
 
 static const float one = 1.0, shuge = 1.0e37;
 
 float
-__ieee754_sinhf(float x)
+sinhf(float x)
 {
 	float t,h;
 	int32_t ix,jx;
@@ -45,7 +42,7 @@
 	}
 
     /* |x| in [9, logf(maxfloat)] return 0.5*exp(|x|) */
-	if (ix < 0x42b17217)  return h*__ieee754_expf(fabsf(x));
+	if (ix < 0x42b17217)  return h*expf(fabsf(x));
 
     /* |x| in [logf(maxfloat), overflowthresold] */
 	if (ix<=0x42b2d4fc)
diff --git a/libm/upstream-freebsd/lib/msun/src/e_sinhl.c b/libm/upstream-freebsd/lib/msun/src/e_sinhl.c
index 38d3df1..cf481b2 100644
--- a/libm/upstream-freebsd/lib/msun/src/e_sinhl.c
+++ b/libm/upstream-freebsd/lib/msun/src/e_sinhl.c
@@ -11,9 +11,6 @@
  * ====================================================
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 /*
  * See e_sinh.c for complete comments.
  *
diff --git a/libm/upstream-freebsd/lib/msun/src/e_sqrtl.c b/libm/upstream-freebsd/lib/msun/src/e_sqrtl.c
index 565d963..a785536 100644
--- a/libm/upstream-freebsd/lib/msun/src/e_sqrtl.c
+++ b/libm/upstream-freebsd/lib/msun/src/e_sqrtl.c
@@ -1,5 +1,5 @@
 /*-
- * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+ * SPDX-License-Identifier: BSD-2-Clause
  *
  * Copyright (c) 2007 Steven G. Kargl
  * All rights reserved.
@@ -26,9 +26,6 @@
  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 #include <fenv.h>
 #include <float.h>
 
diff --git a/libm/upstream-freebsd/lib/msun/src/k_cos.c b/libm/upstream-freebsd/lib/msun/src/k_cos.c
index c4702e6..2eb5e04 100644
--- a/libm/upstream-freebsd/lib/msun/src/k_cos.c
+++ b/libm/upstream-freebsd/lib/msun/src/k_cos.c
@@ -1,5 +1,4 @@
 
-/* @(#)k_cos.c 1.3 95/01/18 */
 /*
  * ====================================================
  * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
@@ -11,9 +10,6 @@
  * ====================================================
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 /*
  * __kernel_cos( x,  y )
  * kernel cos function on [-pi/4, pi/4], pi/4 ~ 0.785398164
diff --git a/libm/upstream-freebsd/lib/msun/src/k_cosf.c b/libm/upstream-freebsd/lib/msun/src/k_cosf.c
index f7a2c0a..934c1c7 100644
--- a/libm/upstream-freebsd/lib/msun/src/k_cosf.c
+++ b/libm/upstream-freebsd/lib/msun/src/k_cosf.c
@@ -14,11 +14,6 @@
  * ====================================================
  */
 
-#ifndef INLINE_KERNEL_COSDF
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-#endif
-
 #include "math.h"
 #include "math_private.h"
 
diff --git a/libm/upstream-freebsd/lib/msun/src/k_exp.c b/libm/upstream-freebsd/lib/msun/src/k_exp.c
index dd15ff4..383616d 100644
--- a/libm/upstream-freebsd/lib/msun/src/k_exp.c
+++ b/libm/upstream-freebsd/lib/msun/src/k_exp.c
@@ -1,5 +1,5 @@
 /*-
- * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+ * SPDX-License-Identifier: BSD-2-Clause
  *
  * Copyright (c) 2011 David Schultz <das@FreeBSD.ORG>
  * All rights reserved.
@@ -26,9 +26,6 @@
  * SUCH DAMAGE.
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 #include <complex.h>
 
 #include "math.h"
diff --git a/libm/upstream-freebsd/lib/msun/src/k_expf.c b/libm/upstream-freebsd/lib/msun/src/k_expf.c
index 80e629b..2af0c6d 100644
--- a/libm/upstream-freebsd/lib/msun/src/k_expf.c
+++ b/libm/upstream-freebsd/lib/msun/src/k_expf.c
@@ -1,5 +1,5 @@
 /*-
- * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+ * SPDX-License-Identifier: BSD-2-Clause
  *
  * Copyright (c) 2011 David Schultz <das@FreeBSD.ORG>
  * All rights reserved.
@@ -26,9 +26,6 @@
  * SUCH DAMAGE.
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 #include <complex.h>
 
 #include "math.h"
diff --git a/libm/upstream-freebsd/lib/msun/src/k_log.h b/libm/upstream-freebsd/lib/msun/src/k_log.h
index aaff8bd..da8f008 100644
--- a/libm/upstream-freebsd/lib/msun/src/k_log.h
+++ b/libm/upstream-freebsd/lib/msun/src/k_log.h
@@ -1,5 +1,4 @@
 
-/* @(#)e_log.c 1.3 95/01/18 */
 /*
  * ====================================================
  * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
@@ -11,9 +10,6 @@
  * ====================================================
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 /*
  * k_log1p(f):
  * Return log(1+f) - f for 1+f in ~[sqrt(2)/2, sqrt(2)].
diff --git a/libm/upstream-freebsd/lib/msun/src/k_logf.h b/libm/upstream-freebsd/lib/msun/src/k_logf.h
index 71c547e..72b6751 100644
--- a/libm/upstream-freebsd/lib/msun/src/k_logf.h
+++ b/libm/upstream-freebsd/lib/msun/src/k_logf.h
@@ -9,9 +9,6 @@
  * ====================================================
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 /*
  * Float version of k_log.h.  See the latter for most comments.
  */
diff --git a/libm/upstream-freebsd/lib/msun/src/k_rem_pio2.c b/libm/upstream-freebsd/lib/msun/src/k_rem_pio2.c
index 0a717f7..3d49d14 100644
--- a/libm/upstream-freebsd/lib/msun/src/k_rem_pio2.c
+++ b/libm/upstream-freebsd/lib/msun/src/k_rem_pio2.c
@@ -1,5 +1,4 @@
 
-/* @(#)k_rem_pio2.c 1.3 95/01/18 */
 /*
  * ====================================================
  * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
@@ -11,9 +10,6 @@
  * ====================================================
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 /*
  * __kernel_rem_pio2(x,y,e0,nx,prec)
  * double x[],y[]; int e0,nx,prec;
diff --git a/libm/upstream-freebsd/lib/msun/src/k_sin.c b/libm/upstream-freebsd/lib/msun/src/k_sin.c
index 12ee8c1..5b97d86 100644
--- a/libm/upstream-freebsd/lib/msun/src/k_sin.c
+++ b/libm/upstream-freebsd/lib/msun/src/k_sin.c
@@ -1,5 +1,4 @@
 
-/* @(#)k_sin.c 1.3 95/01/18 */
 /*
  * ====================================================
  * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
@@ -11,9 +10,6 @@
  * ====================================================
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 /* __kernel_sin( x, y, iy)
  * kernel sin function on ~[-pi/4, pi/4] (except on -0), pi/4 ~ 0.7854
  * Input x is assumed to be bounded by ~pi/4 in magnitude.
diff --git a/libm/upstream-freebsd/lib/msun/src/k_sincos.h b/libm/upstream-freebsd/lib/msun/src/k_sincos.h
index 6f03be2..796e72a 100644
--- a/libm/upstream-freebsd/lib/msun/src/k_sincos.h
+++ b/libm/upstream-freebsd/lib/msun/src/k_sincos.h
@@ -11,9 +11,6 @@
  * k_sin.c and k_cos.c merged by Steven G. Kargl.
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 static const double
 S1  = -1.66666666666666324348e-01, /* 0xBFC55555, 0x55555549 */
 S2  =  8.33333333332248946124e-03, /* 0x3F811111, 0x1110F8A6 */
diff --git a/libm/upstream-freebsd/lib/msun/src/k_sincosf.h b/libm/upstream-freebsd/lib/msun/src/k_sincosf.h
index 073986d..f031016 100644
--- a/libm/upstream-freebsd/lib/msun/src/k_sincosf.h
+++ b/libm/upstream-freebsd/lib/msun/src/k_sincosf.h
@@ -11,9 +11,6 @@
  * k_sinf.c and k_cosf.c merged by Steven G. Kargl.
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 /* |sin(x)/x - s(x)| < 2**-37.5 (~[-4.89e-12, 4.824e-12]). */
 static const double
 S1 = -0x15555554cbac77.0p-55,	/* -0.166666666416265235595 */
diff --git a/libm/upstream-freebsd/lib/msun/src/k_sincosl.h b/libm/upstream-freebsd/lib/msun/src/k_sincosl.h
index 6425f14..cf8536c 100644
--- a/libm/upstream-freebsd/lib/msun/src/k_sincosl.h
+++ b/libm/upstream-freebsd/lib/msun/src/k_sincosl.h
@@ -12,9 +12,6 @@
  * k_sinl.c and k_cosl.c merged by Steven G. Kargl
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 #if LDBL_MANT_DIG == 64		/* ld80 version of k_sincosl.c. */
 
 #if defined(__amd64__) || defined(__i386__)
diff --git a/libm/upstream-freebsd/lib/msun/src/k_sinf.c b/libm/upstream-freebsd/lib/msun/src/k_sinf.c
index 0841759..ebebd96 100644
--- a/libm/upstream-freebsd/lib/msun/src/k_sinf.c
+++ b/libm/upstream-freebsd/lib/msun/src/k_sinf.c
@@ -14,11 +14,6 @@
  * ====================================================
  */
 
-#ifndef INLINE_KERNEL_SINDF
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-#endif
-
 #include "math.h"
 #include "math_private.h"
 
diff --git a/libm/upstream-freebsd/lib/msun/src/k_tan.c b/libm/upstream-freebsd/lib/msun/src/k_tan.c
index 2e86c3b..92f30a6 100644
--- a/libm/upstream-freebsd/lib/msun/src/k_tan.c
+++ b/libm/upstream-freebsd/lib/msun/src/k_tan.c
@@ -1,5 +1,3 @@
-/* @(#)k_tan.c 1.5 04/04/22 SMI */
-
 /*
  * ====================================================
  * Copyright 2004 Sun Microsystems, Inc.  All Rights Reserved.
@@ -10,10 +8,6 @@
  * ====================================================
  */
 
-/* INDENT OFF */
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 /* __kernel_tan( x, y, k )
  * kernel tan function on ~[-pi/4, pi/4] (except on -0), pi/4 ~ 0.7854
  * Input x is assumed to be bounded by ~pi/4 in magnitude.
diff --git a/libm/upstream-freebsd/lib/msun/src/k_tanf.c b/libm/upstream-freebsd/lib/msun/src/k_tanf.c
index 52f1aaa..83bfad9 100644
--- a/libm/upstream-freebsd/lib/msun/src/k_tanf.c
+++ b/libm/upstream-freebsd/lib/msun/src/k_tanf.c
@@ -13,11 +13,6 @@
  * ====================================================
  */
 
-#ifndef INLINE_KERNEL_TANDF
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-#endif
-
 #include "math.h"
 #include "math_private.h"
 
@@ -50,7 +45,7 @@
 	 * We add the small terms from lowest degree up for efficiency on
 	 * non-sequential machines (the lowest degree terms tend to be ready
 	 * earlier).  Apart from this, we don't care about order of
-	 * operations, and don't need to to care since we have precision to
+	 * operations, and don't need to care since we have precision to
 	 * spare.  However, the chosen splitting is good for accuracy too,
 	 * and would give results as accurate as Horner's method if the
 	 * small terms were added from highest degree down.
diff --git a/libm/upstream-freebsd/lib/msun/src/math_private.h b/libm/upstream-freebsd/lib/msun/src/math_private.h
index df526e7..1595f90 100644
--- a/libm/upstream-freebsd/lib/msun/src/math_private.h
+++ b/libm/upstream-freebsd/lib/msun/src/math_private.h
@@ -10,8 +10,6 @@
  */
 
 /*
- * from: @(#)fdlibm.h 5.1 93/09/24
- * $FreeBSD$
  */
 
 #ifndef _MATH_PRIVATE_H_
@@ -407,7 +405,7 @@
  * any extra precision into the type of 'a' -- 'a' should have type float_t,
  * double_t or long double.  b's type should be no larger than 'a's type.
  * Callers should use these types with scopes as large as possible, to
- * reduce their own extra-precision and efficiciency problems.  In
+ * reduce their own extra-precision and efficiency problems.  In
  * particular, they shouldn't convert back and forth just to call here.
  */
 #ifdef DEBUG
@@ -624,7 +622,7 @@
  * The complications for extra precision are smaller for rnintl() since it
  * can safely assume that the rounding precision has been increased from
  * its default to FP_PE on x86.  We don't exploit that here to get small
- * optimizations from limiting the rangle to double.  We just need it for
+ * optimizations from limiting the range to double.  We just need it for
  * the magic number to work with long doubles.  ld128 callers should use
  * rnint() instead of this if possible.  ld80 callers should prefer
  * rnintl() since for amd64 this avoids swapping the register set, while
@@ -688,6 +686,59 @@
 }
 #endif
 
+/*
+ * The following are fast floor macros for 0 <= |x| < 0x1p(N-1), where
+ * N is the precision of the type of x. These macros are used in the
+ * half-cycle trignometric functions (e.g., sinpi(x)).
+ */
+#define	FFLOORF(x, j0, ix) do {			\
+	(j0) = (((ix) >> 23) & 0xff) - 0x7f;	\
+	(ix) &= ~(0x007fffff >> (j0));		\
+	SET_FLOAT_WORD((x), (ix));		\
+} while (0)
+
+#define	FFLOOR(x, j0, ix, lx) do {				\
+	(j0) = (((ix) >> 20) & 0x7ff) - 0x3ff;			\
+	if ((j0) < 20) {					\
+		(ix) &= ~(0x000fffff >> (j0));			\
+		(lx) = 0;					\
+	} else {						\
+		(lx) &= ~((uint32_t)0xffffffff >> ((j0) - 20));	\
+	}							\
+	INSERT_WORDS((x), (ix), (lx));				\
+} while (0)
+
+#define	FFLOORL80(x, j0, ix, lx) do {			\
+	j0 = ix - 0x3fff + 1;				\
+	if ((j0) < 32) {				\
+		(lx) = ((lx) >> 32) << 32;		\
+		(lx) &= ~((((lx) << 32)-1) >> (j0));	\
+	} else {					\
+		uint64_t _m;				\
+		_m = (uint64_t)-1 >> (j0);		\
+		if ((lx) & _m) (lx) &= ~_m;		\
+	}						\
+	INSERT_LDBL80_WORDS((x), (ix), (lx));		\
+} while (0)
+
+#define FFLOORL128(x, ai, ar) do {			\
+	union IEEEl2bits u;				\
+	uint64_t m;					\
+	int e;						\
+	u.e = (x);					\
+	e = u.bits.exp - 16383;				\
+	if (e < 48) {					\
+		m = ((1llu << 49) - 1) >> (e + 1);	\
+		u.bits.manh &= ~m;			\
+		u.bits.manl = 0;			\
+	} else {					\
+		m = (uint64_t)-1 >> (e - 48);		\
+		u.bits.manl &= ~m;			\
+	}						\
+	(ai) = u.e;					\
+	(ar) = (x) - (ai);				\
+} while (0)
+
 #ifdef DEBUG
 #if defined(__amd64__) || defined(__i386__)
 #define	breakpoint()	asm("int $3")
@@ -698,191 +749,25 @@
 #endif
 #endif
 
-/* Write a pari script to test things externally. */
-#ifdef DOPRINT
-#include <stdio.h>
-
-#ifndef DOPRINT_SWIZZLE
-#define	DOPRINT_SWIZZLE		0
-#endif
-
-#ifdef DOPRINT_LD80
-
-#define	DOPRINT_START(xp) do {						\
-	uint64_t __lx;							\
-	uint16_t __hx;							\
-									\
-	/* Hack to give more-problematic args. */			\
-	EXTRACT_LDBL80_WORDS(__hx, __lx, *xp);				\
-	__lx ^= DOPRINT_SWIZZLE;					\
-	INSERT_LDBL80_WORDS(*xp, __hx, __lx);				\
-	printf("x = %.21Lg; ", (long double)*xp);			\
-} while (0)
-#define	DOPRINT_END1(v)							\
-	printf("y = %.21Lg; z = 0; show(x, y, z);\n", (long double)(v))
-#define	DOPRINT_END2(hi, lo)						\
-	printf("y = %.21Lg; z = %.21Lg; show(x, y, z);\n",		\
-	    (long double)(hi), (long double)(lo))
-
-#elif defined(DOPRINT_D64)
-
-#define	DOPRINT_START(xp) do {						\
-	uint32_t __hx, __lx;						\
-									\
-	EXTRACT_WORDS(__hx, __lx, *xp);					\
-	__lx ^= DOPRINT_SWIZZLE;					\
-	INSERT_WORDS(*xp, __hx, __lx);					\
-	printf("x = %.21Lg; ", (long double)*xp);			\
-} while (0)
-#define	DOPRINT_END1(v)							\
-	printf("y = %.21Lg; z = 0; show(x, y, z);\n", (long double)(v))
-#define	DOPRINT_END2(hi, lo)						\
-	printf("y = %.21Lg; z = %.21Lg; show(x, y, z);\n",		\
-	    (long double)(hi), (long double)(lo))
-
-#elif defined(DOPRINT_F32)
-
-#define	DOPRINT_START(xp) do {						\
-	uint32_t __hx;							\
-									\
-	GET_FLOAT_WORD(__hx, *xp);					\
-	__hx ^= DOPRINT_SWIZZLE;					\
-	SET_FLOAT_WORD(*xp, __hx);					\
-	printf("x = %.21Lg; ", (long double)*xp);			\
-} while (0)
-#define	DOPRINT_END1(v)							\
-	printf("y = %.21Lg; z = 0; show(x, y, z);\n", (long double)(v))
-#define	DOPRINT_END2(hi, lo)						\
-	printf("y = %.21Lg; z = %.21Lg; show(x, y, z);\n",		\
-	    (long double)(hi), (long double)(lo))
-
-#else /* !DOPRINT_LD80 && !DOPRINT_D64 (LD128 only) */
-
-#ifndef DOPRINT_SWIZZLE_HIGH
-#define	DOPRINT_SWIZZLE_HIGH	0
-#endif
-
-#define	DOPRINT_START(xp) do {						\
-	uint64_t __lx, __llx;						\
-	uint16_t __hx;							\
-									\
-	EXTRACT_LDBL128_WORDS(__hx, __lx, __llx, *xp);			\
-	__llx ^= DOPRINT_SWIZZLE;					\
-	__lx ^= DOPRINT_SWIZZLE_HIGH;					\
-	INSERT_LDBL128_WORDS(*xp, __hx, __lx, __llx);			\
-	printf("x = %.36Lg; ", (long double)*xp);					\
-} while (0)
-#define	DOPRINT_END1(v)							\
-	printf("y = %.36Lg; z = 0; show(x, y, z);\n", (long double)(v))
-#define	DOPRINT_END2(hi, lo)						\
-	printf("y = %.36Lg; z = %.36Lg; show(x, y, z);\n",		\
-	    (long double)(hi), (long double)(lo))
-
-#endif /* DOPRINT_LD80 */
-
-#else /* !DOPRINT */
-#define	DOPRINT_START(xp)
-#define	DOPRINT_END1(v)
-#define	DOPRINT_END2(hi, lo)
-#endif /* DOPRINT */
-
-#define	RETURNP(x) do {			\
-	DOPRINT_END1(x);		\
-	RETURNF(x);			\
-} while (0)
-#define	RETURNPI(x) do {		\
-	DOPRINT_END1(x);		\
-	RETURNI(x);			\
-} while (0)
-#define	RETURN2P(x, y) do {		\
-	DOPRINT_END2((x), (y));		\
-	RETURNF((x) + (y));		\
-} while (0)
-#define	RETURN2PI(x, y) do {		\
-	DOPRINT_END2((x), (y));		\
-	RETURNI((x) + (y));		\
-} while (0)
 #ifdef STRUCT_RETURN
 #define	RETURNSP(rp) do {		\
 	if (!(rp)->lo_set)		\
-		RETURNP((rp)->hi);	\
-	RETURN2P((rp)->hi, (rp)->lo);	\
+		RETURNF((rp)->hi);	\
+	RETURNF((rp)->hi + (rp)->lo);	\
 } while (0)
 #define	RETURNSPI(rp) do {		\
 	if (!(rp)->lo_set)		\
-		RETURNPI((rp)->hi);	\
-	RETURN2PI((rp)->hi, (rp)->lo);	\
+		RETURNI((rp)->hi);	\
+	RETURNI((rp)->hi + (rp)->lo);	\
 } while (0)
 #endif
+
 #define	SUM2P(x, y) ({			\
 	const __typeof (x) __x = (x);	\
 	const __typeof (y) __y = (y);	\
-					\
-	DOPRINT_END2(__x, __y);		\
 	__x + __y;			\
 })
 
-/*
- * ieee style elementary functions
- *
- * We rename functions here to improve other sources' diffability
- * against fdlibm.
- */
-#define	__ieee754_sqrt	sqrt
-#define	__ieee754_acos	acos
-#define	__ieee754_acosh	acosh
-#define	__ieee754_log	log
-#define	__ieee754_log2	log2
-#define	__ieee754_atanh	atanh
-#define	__ieee754_asin	asin
-#define	__ieee754_atan2	atan2
-#define	__ieee754_exp	exp
-#define	__ieee754_cosh	cosh
-#define	__ieee754_fmod	fmod
-#define	__ieee754_pow	pow
-#define	__ieee754_lgamma lgamma
-#define	__ieee754_gamma	gamma
-#define	__ieee754_lgamma_r lgamma_r
-#define	__ieee754_gamma_r gamma_r
-#define	__ieee754_log10	log10
-#define	__ieee754_sinh	sinh
-#define	__ieee754_hypot	hypot
-#define	__ieee754_j0	j0
-#define	__ieee754_j1	j1
-#define	__ieee754_y0	y0
-#define	__ieee754_y1	y1
-#define	__ieee754_jn	jn
-#define	__ieee754_yn	yn
-#define	__ieee754_remainder remainder
-#define	__ieee754_scalb	scalb
-#define	__ieee754_sqrtf	sqrtf
-#define	__ieee754_acosf	acosf
-#define	__ieee754_acoshf acoshf
-#define	__ieee754_logf	logf
-#define	__ieee754_atanhf atanhf
-#define	__ieee754_asinf	asinf
-#define	__ieee754_atan2f atan2f
-#define	__ieee754_expf	expf
-#define	__ieee754_coshf	coshf
-#define	__ieee754_fmodf	fmodf
-#define	__ieee754_powf	powf
-#define	__ieee754_lgammaf lgammaf
-#define	__ieee754_gammaf gammaf
-#define	__ieee754_lgammaf_r lgammaf_r
-#define	__ieee754_gammaf_r gammaf_r
-#define	__ieee754_log10f log10f
-#define	__ieee754_log2f log2f
-#define	__ieee754_sinhf	sinhf
-#define	__ieee754_hypotf hypotf
-#define	__ieee754_j0f	j0f
-#define	__ieee754_j1f	j1f
-#define	__ieee754_y0f	y0f
-#define	__ieee754_y1f	y1f
-#define	__ieee754_jnf	jnf
-#define	__ieee754_ynf	ynf
-#define	__ieee754_remainderf remainderf
-#define	__ieee754_scalbf scalbf
-
 /* fdlibm kernel function */
 int	__kernel_rem_pio2(double*,double*,int,int,int);
 
diff --git a/libm/upstream-freebsd/lib/msun/src/s_asinh.c b/libm/upstream-freebsd/lib/msun/src/s_asinh.c
index cbb3d46..daebf21 100644
--- a/libm/upstream-freebsd/lib/msun/src/s_asinh.c
+++ b/libm/upstream-freebsd/lib/msun/src/s_asinh.c
@@ -1,4 +1,3 @@
-/* @(#)s_asinh.c 5.1 93/09/24 */
 /*
  * ====================================================
  * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
@@ -10,9 +9,6 @@
  * ====================================================
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 /* asinh(x)
  * Method :
  *	Based on
@@ -46,13 +42,13 @@
 	    if(huge+x>one) return x;	/* return x inexact except 0 */
 	}
 	if(ix>0x41b00000) {	/* |x| > 2**28 */
-	    w = __ieee754_log(fabs(x))+ln2;
+	    w = log(fabs(x))+ln2;
 	} else if (ix>0x40000000) {	/* 2**28 > |x| > 2.0 */
 	    t = fabs(x);
-	    w = __ieee754_log(2.0*t+one/(__ieee754_sqrt(x*x+one)+t));
+	    w = log(2.0*t+one/(sqrt(x*x+one)+t));
 	} else {		/* 2.0 > |x| > 2**-28 */
 	    t = x*x;
-	    w =log1p(fabs(x)+t/(one+__ieee754_sqrt(one+t)));
+	    w =log1p(fabs(x)+t/(one+sqrt(one+t)));
 	}
 	if(hx>0) return w; else return -w;
 }
diff --git a/libm/upstream-freebsd/lib/msun/src/s_asinhf.c b/libm/upstream-freebsd/lib/msun/src/s_asinhf.c
index c1620dd..4e622d5 100644
--- a/libm/upstream-freebsd/lib/msun/src/s_asinhf.c
+++ b/libm/upstream-freebsd/lib/msun/src/s_asinhf.c
@@ -13,9 +13,6 @@
  * ====================================================
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 #include "math.h"
 #include "math_private.h"
 
@@ -36,13 +33,13 @@
 	    if(huge+x>one) return x;	/* return x inexact except 0 */
 	}
 	if(ix>0x4d800000) {	/* |x| > 2**28 */
-	    w = __ieee754_logf(fabsf(x))+ln2;
+	    w = logf(fabsf(x))+ln2;
 	} else if (ix>0x40000000) {	/* 2**28 > |x| > 2.0 */
 	    t = fabsf(x);
-	    w = __ieee754_logf((float)2.0*t+one/(__ieee754_sqrtf(x*x+one)+t));
+	    w = logf((float)2.0*t+one/(sqrtf(x*x+one)+t));
 	} else {		/* 2.0 > |x| > 2**-28 */
 	    t = x*x;
-	    w =log1pf(fabsf(x)+t/(one+__ieee754_sqrtf(one+t)));
+	    w =log1pf(fabsf(x)+t/(one+sqrtf(one+t)));
 	}
 	if(hx>0) return w; else return -w;
 }
diff --git a/libm/upstream-freebsd/lib/msun/src/s_asinhl.c b/libm/upstream-freebsd/lib/msun/src/s_asinhl.c
index ba28f59..b939fae 100644
--- a/libm/upstream-freebsd/lib/msun/src/s_asinhl.c
+++ b/libm/upstream-freebsd/lib/msun/src/s_asinhl.c
@@ -1,6 +1,5 @@
 /* from: FreeBSD: head/lib/msun/src/e_acosh.c 176451 2008-02-22 02:30:36Z das */
 
-/* @(#)s_asinh.c 5.1 93/09/24 */
 /*
  * ====================================================
  * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
@@ -12,9 +11,6 @@
  * ====================================================
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 /*
  * See s_asinh.c for complete comments.
  *
diff --git a/libm/upstream-freebsd/lib/msun/src/s_atan.c b/libm/upstream-freebsd/lib/msun/src/s_atan.c
index 566f5dc..bff8b5c 100644
--- a/libm/upstream-freebsd/lib/msun/src/s_atan.c
+++ b/libm/upstream-freebsd/lib/msun/src/s_atan.c
@@ -1,4 +1,3 @@
-/* @(#)s_atan.c 5.1 93/09/24 */
 /*
  * ====================================================
  * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
@@ -10,9 +9,6 @@
  * ====================================================
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 /* atan(x)
  * Method
  *   1. Reduce x to positive by atan(x) = -atan(-x).
diff --git a/libm/upstream-freebsd/lib/msun/src/s_atanf.c b/libm/upstream-freebsd/lib/msun/src/s_atanf.c
index b3a371f..2c38014 100644
--- a/libm/upstream-freebsd/lib/msun/src/s_atanf.c
+++ b/libm/upstream-freebsd/lib/msun/src/s_atanf.c
@@ -13,9 +13,6 @@
  * ====================================================
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 #include "math.h"
 #include "math_private.h"
 
diff --git a/libm/upstream-freebsd/lib/msun/src/s_atanl.c b/libm/upstream-freebsd/lib/msun/src/s_atanl.c
index ff29c3c..d9e6174 100644
--- a/libm/upstream-freebsd/lib/msun/src/s_atanl.c
+++ b/libm/upstream-freebsd/lib/msun/src/s_atanl.c
@@ -1,4 +1,3 @@
-/* @(#)s_atan.c 5.1 93/09/24 */
 /* FreeBSD: head/lib/msun/src/s_atan.c 176451 2008-02-22 02:30:36Z das */
 /*
  * ====================================================
@@ -11,9 +10,6 @@
  * ====================================================
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 /*
  * See comments in s_atan.c.
  * Converted to long double by David Schultz <das@FreeBSD.ORG>.
diff --git a/libm/upstream-freebsd/lib/msun/src/s_carg.c b/libm/upstream-freebsd/lib/msun/src/s_carg.c
index 1611b9d..ea7edfd 100644
--- a/libm/upstream-freebsd/lib/msun/src/s_carg.c
+++ b/libm/upstream-freebsd/lib/msun/src/s_carg.c
@@ -1,5 +1,5 @@
 /*-
- * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+ * SPDX-License-Identifier: BSD-2-Clause
  *
  * Copyright (c) 2005 David Schultz <das@FreeBSD.ORG>
  * All rights reserved.
@@ -26,9 +26,6 @@
  * SUCH DAMAGE.
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 #include <complex.h>
 #include <math.h>
 
diff --git a/libm/upstream-freebsd/lib/msun/src/s_cargf.c b/libm/upstream-freebsd/lib/msun/src/s_cargf.c
index 71c705d..25ab65e 100644
--- a/libm/upstream-freebsd/lib/msun/src/s_cargf.c
+++ b/libm/upstream-freebsd/lib/msun/src/s_cargf.c
@@ -1,5 +1,5 @@
 /*-
- * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+ * SPDX-License-Identifier: BSD-2-Clause
  *
  * Copyright (c) 2005 David Schultz <das@FreeBSD.ORG>
  * All rights reserved.
@@ -26,9 +26,6 @@
  * SUCH DAMAGE.
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 #include <complex.h>
 #include <math.h>
 
diff --git a/libm/upstream-freebsd/lib/msun/src/s_cargl.c b/libm/upstream-freebsd/lib/msun/src/s_cargl.c
index 96c3336..8a1a108 100644
--- a/libm/upstream-freebsd/lib/msun/src/s_cargl.c
+++ b/libm/upstream-freebsd/lib/msun/src/s_cargl.c
@@ -1,5 +1,5 @@
 /*-
- * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+ * SPDX-License-Identifier: BSD-2-Clause
  *
  * Copyright (c) 2005-2008 David Schultz <das@FreeBSD.ORG>
  * All rights reserved.
@@ -26,9 +26,6 @@
  * SUCH DAMAGE.
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 #include <complex.h>
 #include <math.h>
 
diff --git a/libm/upstream-freebsd/lib/msun/src/s_cbrt.c b/libm/upstream-freebsd/lib/msun/src/s_cbrt.c
index 0e609e1..6bf8424 100644
--- a/libm/upstream-freebsd/lib/msun/src/s_cbrt.c
+++ b/libm/upstream-freebsd/lib/msun/src/s_cbrt.c
@@ -1,4 +1,3 @@
-/* @(#)s_cbrt.c 5.1 93/09/24 */
 /*
  * ====================================================
  * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
@@ -12,9 +11,6 @@
  * Optimized by Bruce D. Evans.
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 #include <float.h>
 #include "math.h"
 #include "math_private.h"
@@ -108,7 +104,7 @@
 	r=x/s;				/* error <= 0.5 ulps; |r| < |t| */
 	w=t+t;				/* t+t is exact */
 	r=(r-t)/(w+r);			/* r-t is exact; w+r ~= 3*t */
-	t=t+t*r;			/* error <= 0.5 + 0.5/3 + epsilon */
+	t=t+t*r;			/* error <= (0.5 + 0.5/3) * ulp */
 
 	return(t);
 }
diff --git a/libm/upstream-freebsd/lib/msun/src/s_cbrtf.c b/libm/upstream-freebsd/lib/msun/src/s_cbrtf.c
index 454f974..a225d3e 100644
--- a/libm/upstream-freebsd/lib/msun/src/s_cbrtf.c
+++ b/libm/upstream-freebsd/lib/msun/src/s_cbrtf.c
@@ -14,9 +14,6 @@
  * ====================================================
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 #include "math.h"
 #include "math_private.h"
 
diff --git a/libm/upstream-freebsd/lib/msun/src/s_cbrtl.c b/libm/upstream-freebsd/lib/msun/src/s_cbrtl.c
index 2236c0f..f1950e2 100644
--- a/libm/upstream-freebsd/lib/msun/src/s_cbrtl.c
+++ b/libm/upstream-freebsd/lib/msun/src/s_cbrtl.c
@@ -14,9 +14,6 @@
  * and David A. Schultz.
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 #include <float.h>
 #ifdef __i386__
 #include <ieeefp.h>
@@ -136,7 +133,7 @@
 	r=x/s;				/* error <= 0.5 ulps; |r| < |t| */
 	w=t+t;				/* t+t is exact */
 	r=(r-t)/(w+r);			/* r-t is exact; w+r ~= 3*t */
-	t=t+t*r;			/* error <= 0.5 + 0.5/3 + epsilon */
+	t=t+t*r;			/* error <= (0.5 + 0.5/3) * ulp */
 
 	t *= v.e;
 	RETURNI(t);
diff --git a/libm/upstream-freebsd/lib/msun/src/s_ccosh.c b/libm/upstream-freebsd/lib/msun/src/s_ccosh.c
index 7652b3c..3d46c99 100644
--- a/libm/upstream-freebsd/lib/msun/src/s_ccosh.c
+++ b/libm/upstream-freebsd/lib/msun/src/s_ccosh.c
@@ -1,5 +1,5 @@
 /*-
- * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+ * SPDX-License-Identifier: BSD-2-Clause
  *
  * Copyright (c) 2005 Bruce D. Evans and Steven G. Kargl
  * All rights reserved.
@@ -38,9 +38,6 @@
  * must satisfy both cosh(conj(z)) == conj(cosh(z)) and cosh(-z) == cosh(z).
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 #include <complex.h>
 #include <math.h>
 
diff --git a/libm/upstream-freebsd/lib/msun/src/s_ccoshf.c b/libm/upstream-freebsd/lib/msun/src/s_ccoshf.c
index 5d7a09b..aeb2dec 100644
--- a/libm/upstream-freebsd/lib/msun/src/s_ccoshf.c
+++ b/libm/upstream-freebsd/lib/msun/src/s_ccoshf.c
@@ -1,5 +1,5 @@
 /*-
- * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+ * SPDX-License-Identifier: BSD-2-Clause
  *
  * Copyright (c) 2005 Bruce D. Evans and Steven G. Kargl
  * All rights reserved.
@@ -30,9 +30,6 @@
  * Float version of ccosh().  See s_ccosh.c for details.
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 #include <complex.h>
 #include <math.h>
 
diff --git a/libm/upstream-freebsd/lib/msun/src/s_ceil.c b/libm/upstream-freebsd/lib/msun/src/s_ceil.c
index 929f813..e6699bc 100644
--- a/libm/upstream-freebsd/lib/msun/src/s_ceil.c
+++ b/libm/upstream-freebsd/lib/msun/src/s_ceil.c
@@ -1,4 +1,3 @@
-/* @(#)s_ceil.c 5.1 93/09/24 */
 /*
  * ====================================================
  * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
@@ -10,9 +9,6 @@
  * ====================================================
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 /*
  * ceil(x)
  * Return x rounded toward -inf to integral value
diff --git a/libm/upstream-freebsd/lib/msun/src/s_ceilf.c b/libm/upstream-freebsd/lib/msun/src/s_ceilf.c
index 23bfe04..cc19afa 100644
--- a/libm/upstream-freebsd/lib/msun/src/s_ceilf.c
+++ b/libm/upstream-freebsd/lib/msun/src/s_ceilf.c
@@ -13,9 +13,6 @@
  * ====================================================
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 #include "math.h"
 #include "math_private.h"
 
diff --git a/libm/upstream-freebsd/lib/msun/src/s_ceill.c b/libm/upstream-freebsd/lib/msun/src/s_ceill.c
index 2d1045f..ded36c1 100644
--- a/libm/upstream-freebsd/lib/msun/src/s_ceill.c
+++ b/libm/upstream-freebsd/lib/msun/src/s_ceill.c
@@ -7,13 +7,8 @@
  * software is freely granted, provided that this notice
  * is preserved.
  * ====================================================
- *
- * From: @(#)s_ceil.c 5.1 93/09/24
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 /*
  * ceill(x)
  * Return x rounded toward -inf to integral value
diff --git a/libm/upstream-freebsd/lib/msun/src/s_cexp.c b/libm/upstream-freebsd/lib/msun/src/s_cexp.c
index a1f853e..0151768 100644
--- a/libm/upstream-freebsd/lib/msun/src/s_cexp.c
+++ b/libm/upstream-freebsd/lib/msun/src/s_cexp.c
@@ -1,5 +1,5 @@
 /*-
- * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+ * SPDX-License-Identifier: BSD-2-Clause
  *
  * Copyright (c) 2011 David Schultz <das@FreeBSD.ORG>
  * All rights reserved.
@@ -26,9 +26,6 @@
  * SUCH DAMAGE.
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 #include <complex.h>
 #include <float.h>
 #include <math.h>
diff --git a/libm/upstream-freebsd/lib/msun/src/s_cexpf.c b/libm/upstream-freebsd/lib/msun/src/s_cexpf.c
index d905b74..a6c0c99 100644
--- a/libm/upstream-freebsd/lib/msun/src/s_cexpf.c
+++ b/libm/upstream-freebsd/lib/msun/src/s_cexpf.c
@@ -1,5 +1,5 @@
 /*-
- * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+ * SPDX-License-Identifier: BSD-2-Clause
  *
  * Copyright (c) 2011 David Schultz <das@FreeBSD.ORG>
  * All rights reserved.
@@ -26,9 +26,6 @@
  * SUCH DAMAGE.
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 #include <complex.h>
 #include <math.h>
 
diff --git a/libm/upstream-freebsd/lib/msun/src/s_cimag.c b/libm/upstream-freebsd/lib/msun/src/s_cimag.c
index 1f383cb..5779b2a 100644
--- a/libm/upstream-freebsd/lib/msun/src/s_cimag.c
+++ b/libm/upstream-freebsd/lib/msun/src/s_cimag.c
@@ -1,5 +1,5 @@
 /*-
- * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+ * SPDX-License-Identifier: BSD-2-Clause
  *
  * Copyright (c) 2004 Stefan Farfeleder
  * All rights reserved.
@@ -24,8 +24,6 @@
  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
- *
- * $FreeBSD$
  */
 
 #include <complex.h>
diff --git a/libm/upstream-freebsd/lib/msun/src/s_cimagf.c b/libm/upstream-freebsd/lib/msun/src/s_cimagf.c
index 86a43c1..ca2bdf2 100644
--- a/libm/upstream-freebsd/lib/msun/src/s_cimagf.c
+++ b/libm/upstream-freebsd/lib/msun/src/s_cimagf.c
@@ -1,5 +1,5 @@
 /*-
- * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+ * SPDX-License-Identifier: BSD-2-Clause
  *
  * Copyright (c) 2004 Stefan Farfeleder
  * All rights reserved.
@@ -24,8 +24,6 @@
  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
- *
- * $FreeBSD$
  */
 
 #include <complex.h>
diff --git a/libm/upstream-freebsd/lib/msun/src/s_cimagl.c b/libm/upstream-freebsd/lib/msun/src/s_cimagl.c
index 6d87950..3986430 100644
--- a/libm/upstream-freebsd/lib/msun/src/s_cimagl.c
+++ b/libm/upstream-freebsd/lib/msun/src/s_cimagl.c
@@ -1,5 +1,5 @@
 /*-
- * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+ * SPDX-License-Identifier: BSD-2-Clause
  *
  * Copyright (c) 2004 Stefan Farfeleder
  * All rights reserved.
@@ -24,8 +24,6 @@
  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
- *
- * $FreeBSD$
  */
 
 #include <complex.h>
diff --git a/libm/upstream-freebsd/lib/msun/src/s_clog.c b/libm/upstream-freebsd/lib/msun/src/s_clog.c
index 8150fa7..2129890 100644
--- a/libm/upstream-freebsd/lib/msun/src/s_clog.c
+++ b/libm/upstream-freebsd/lib/msun/src/s_clog.c
@@ -24,9 +24,6 @@
  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 #include <complex.h>
 #include <float.h>
 
diff --git a/libm/upstream-freebsd/lib/msun/src/s_clogf.c b/libm/upstream-freebsd/lib/msun/src/s_clogf.c
index 19a9445..2204e1e 100644
--- a/libm/upstream-freebsd/lib/msun/src/s_clogf.c
+++ b/libm/upstream-freebsd/lib/msun/src/s_clogf.c
@@ -24,9 +24,6 @@
  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 #include <complex.h>
 #include <float.h>
 
diff --git a/libm/upstream-freebsd/lib/msun/src/s_clogl.c b/libm/upstream-freebsd/lib/msun/src/s_clogl.c
index e59a137..075bdb4 100644
--- a/libm/upstream-freebsd/lib/msun/src/s_clogl.c
+++ b/libm/upstream-freebsd/lib/msun/src/s_clogl.c
@@ -24,9 +24,6 @@
  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 #include <complex.h>
 #include <float.h>
 #ifdef __i386__
diff --git a/libm/upstream-freebsd/lib/msun/src/s_conj.c b/libm/upstream-freebsd/lib/msun/src/s_conj.c
index dc56f48..1203ba6 100644
--- a/libm/upstream-freebsd/lib/msun/src/s_conj.c
+++ b/libm/upstream-freebsd/lib/msun/src/s_conj.c
@@ -1,5 +1,5 @@
 /*-
- * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+ * SPDX-License-Identifier: BSD-2-Clause
  *
  * Copyright (c) 2004 Stefan Farfeleder
  * All rights reserved.
@@ -24,8 +24,6 @@
  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
- *
- * $FreeBSD$
  */
 
 #include <complex.h>
diff --git a/libm/upstream-freebsd/lib/msun/src/s_conjf.c b/libm/upstream-freebsd/lib/msun/src/s_conjf.c
index 3fd8b8f..9720998 100644
--- a/libm/upstream-freebsd/lib/msun/src/s_conjf.c
+++ b/libm/upstream-freebsd/lib/msun/src/s_conjf.c
@@ -1,5 +1,5 @@
 /*-
- * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+ * SPDX-License-Identifier: BSD-2-Clause
  *
  * Copyright (c) 2004 Stefan Farfeleder
  * All rights reserved.
@@ -24,8 +24,6 @@
  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
- *
- * $FreeBSD$
  */
 
 #include <complex.h>
diff --git a/libm/upstream-freebsd/lib/msun/src/s_conjl.c b/libm/upstream-freebsd/lib/msun/src/s_conjl.c
index d2f8d0f..ef084f4 100644
--- a/libm/upstream-freebsd/lib/msun/src/s_conjl.c
+++ b/libm/upstream-freebsd/lib/msun/src/s_conjl.c
@@ -1,5 +1,5 @@
 /*-
- * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+ * SPDX-License-Identifier: BSD-2-Clause
  *
  * Copyright (c) 2004 Stefan Farfeleder
  * All rights reserved.
@@ -24,8 +24,6 @@
  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
- *
- * $FreeBSD$
  */
 
 #include <complex.h>
diff --git a/libm/upstream-freebsd/lib/msun/src/s_copysign.c b/libm/upstream-freebsd/lib/msun/src/s_copysign.c
deleted file mode 100644
index a5f3870..0000000
--- a/libm/upstream-freebsd/lib/msun/src/s_copysign.c
+++ /dev/null
@@ -1,33 +0,0 @@
-/* @(#)s_copysign.c 5.1 93/09/24 */
-/*
- * ====================================================
- * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
- *
- * Developed at SunPro, a Sun Microsystems, Inc. business.
- * Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice
- * is preserved.
- * ====================================================
- */
-
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
-/*
- * copysign(double x, double y)
- * copysign(x,y) returns a value with the magnitude of x and
- * with the sign bit of y.
- */
-
-#include "math.h"
-#include "math_private.h"
-
-double
-copysign(double x, double y)
-{
-	u_int32_t hx,hy;
-	GET_HIGH_WORD(hx,x);
-	GET_HIGH_WORD(hy,y);
-	SET_HIGH_WORD(x,(hx&0x7fffffff)|(hy&0x80000000));
-        return x;
-}
diff --git a/libm/upstream-freebsd/lib/msun/src/s_copysignf.c b/libm/upstream-freebsd/lib/msun/src/s_copysignf.c
deleted file mode 100644
index 05ca1e3..0000000
--- a/libm/upstream-freebsd/lib/msun/src/s_copysignf.c
+++ /dev/null
@@ -1,36 +0,0 @@
-/* s_copysignf.c -- float version of s_copysign.c.
- * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com.
- */
-
-/*
- * ====================================================
- * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
- *
- * Developed at SunPro, a Sun Microsystems, Inc. business.
- * Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice
- * is preserved.
- * ====================================================
- */
-
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
-/*
- * copysignf(float x, float y)
- * copysignf(x,y) returns a value with the magnitude of x and
- * with the sign bit of y.
- */
-
-#include "math.h"
-#include "math_private.h"
-
-float
-copysignf(float x, float y)
-{
-	u_int32_t ix,iy;
-	GET_FLOAT_WORD(ix,x);
-	GET_FLOAT_WORD(iy,y);
-	SET_FLOAT_WORD(x,(ix&0x7fffffff)|(iy&0x80000000));
-        return x;
-}
diff --git a/libm/upstream-freebsd/lib/msun/src/s_copysignl.c b/libm/upstream-freebsd/lib/msun/src/s_copysignl.c
deleted file mode 100644
index bd67447..0000000
--- a/libm/upstream-freebsd/lib/msun/src/s_copysignl.c
+++ /dev/null
@@ -1,44 +0,0 @@
-/*-
- * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
- *
- * Copyright (c) 2004 Stefan Farfeleder
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL AUTHOR OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- * $FreeBSD$
- */
-
-#include <math.h>
-
-#include "fpmath.h"
-
-long double
-copysignl(long double x, long double y)
-{
-	union IEEEl2bits ux, uy;
-
-	ux.e = x;
-	uy.e = y;
-	ux.bits.sign = uy.bits.sign;
-	return (ux.e);
-}
diff --git a/libm/upstream-freebsd/lib/msun/src/s_cos.c b/libm/upstream-freebsd/lib/msun/src/s_cos.c
index 29804f4..44ecad9 100644
--- a/libm/upstream-freebsd/lib/msun/src/s_cos.c
+++ b/libm/upstream-freebsd/lib/msun/src/s_cos.c
@@ -1,4 +1,3 @@
-/* @(#)s_cos.c 5.1 93/09/24 */
 /*
  * ====================================================
  * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
@@ -10,9 +9,6 @@
  * ====================================================
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 /* cos(x)
  * Return cosine function of x.
  *
diff --git a/libm/upstream-freebsd/lib/msun/src/s_cosf.c b/libm/upstream-freebsd/lib/msun/src/s_cosf.c
deleted file mode 100644
index b701fd2..0000000
--- a/libm/upstream-freebsd/lib/msun/src/s_cosf.c
+++ /dev/null
@@ -1,87 +0,0 @@
-/* s_cosf.c -- float version of s_cos.c.
- * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com.
- * Optimized by Bruce D. Evans.
- */
-
-/*
- * ====================================================
- * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
- *
- * Developed at SunPro, a Sun Microsystems, Inc. business.
- * Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice
- * is preserved.
- * ====================================================
- */
-
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
-#include <float.h>
-
-#include "math.h"
-#define	INLINE_KERNEL_COSDF
-#define	INLINE_KERNEL_SINDF
-#define INLINE_REM_PIO2F
-#include "math_private.h"
-#include "e_rem_pio2f.c"
-#include "k_cosf.c"
-#include "k_sinf.c"
-
-/* Small multiples of pi/2 rounded to double precision. */
-static const double
-c1pio2 = 1*M_PI_2,			/* 0x3FF921FB, 0x54442D18 */
-c2pio2 = 2*M_PI_2,			/* 0x400921FB, 0x54442D18 */
-c3pio2 = 3*M_PI_2,			/* 0x4012D97C, 0x7F3321D2 */
-c4pio2 = 4*M_PI_2;			/* 0x401921FB, 0x54442D18 */
-
-float
-cosf(float x)
-{
-	double y;
-	int32_t n, hx, ix;
-
-	GET_FLOAT_WORD(hx,x);
-	ix = hx & 0x7fffffff;
-
-	if(ix <= 0x3f490fda) {		/* |x| ~<= pi/4 */
-	    if(ix<0x39800000)		/* |x| < 2**-12 */
-		if(((int)x)==0) return 1.0;	/* 1 with inexact if x != 0 */
-	    return __kernel_cosdf(x);
-	}
-	if(ix<=0x407b53d1) {		/* |x| ~<= 5*pi/4 */
-	    if(ix>0x4016cbe3)		/* |x|  ~> 3*pi/4 */
-		return -__kernel_cosdf(x + (hx > 0 ? -c2pio2 : c2pio2));
-	    else {
-		if(hx>0)
-		    return __kernel_sindf(c1pio2 - x);
-		else
-		    return __kernel_sindf(x + c1pio2);
-	    }
-	}
-	if(ix<=0x40e231d5) {		/* |x| ~<= 9*pi/4 */
-	    if(ix>0x40afeddf)		/* |x|  ~> 7*pi/4 */
-		return __kernel_cosdf(x + (hx > 0 ? -c4pio2 : c4pio2));
-	    else {
-		if(hx>0)
-		    return __kernel_sindf(x - c3pio2);
-		else
-		    return __kernel_sindf(-c3pio2 - x);
-	    }
-	}
-
-    /* cos(Inf or NaN) is NaN */
-	else if (ix>=0x7f800000) return x-x;
-
-    /* general argument reduction needed */
-	else {
-	    n = __ieee754_rem_pio2f(x,&y);
-	    switch(n&3) {
-		case 0: return  __kernel_cosdf(y);
-		case 1: return  __kernel_sindf(-y);
-		case 2: return -__kernel_cosdf(y);
-		default:
-		        return  __kernel_sindf(y);
-	    }
-	}
-}
diff --git a/libm/upstream-freebsd/lib/msun/src/s_cosl.c b/libm/upstream-freebsd/lib/msun/src/s_cosl.c
index 3d06648..32fc8b2 100644
--- a/libm/upstream-freebsd/lib/msun/src/s_cosl.c
+++ b/libm/upstream-freebsd/lib/msun/src/s_cosl.c
@@ -1,5 +1,5 @@
 /*-
- * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+ * SPDX-License-Identifier: BSD-2-Clause
  *
  * Copyright (c) 2007 Steven G. Kargl
  * All rights reserved.
@@ -26,9 +26,6 @@
  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 /*
  * Limited testing on pseudorandom numbers drawn within [-2e8:4e8] shows
  * an accuracy of <= 0.7412 ULP.
diff --git a/libm/upstream-freebsd/lib/msun/src/s_cospi.c b/libm/upstream-freebsd/lib/msun/src/s_cospi.c
index 860219e..f97570d 100644
--- a/libm/upstream-freebsd/lib/msun/src/s_cospi.c
+++ b/libm/upstream-freebsd/lib/msun/src/s_cospi.c
@@ -1,5 +1,5 @@
 /*-
- * Copyright (c) 2017 Steven G. Kargl
+ * Copyright (c) 2017, 2023 Steven G. Kargl
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -104,20 +104,10 @@
 	}
 
 	if (ix < 0x43300000) {		/* 1 <= |x| < 0x1p52 */
-		/* Determine integer part of ax. */
-		j0 = ((ix >> 20) & 0x7ff) - 0x3ff;
-		if (j0 < 20) {
-			ix &= ~(0x000fffff >> j0);
-			lx = 0;
-		} else {
-			lx &= ~((uint32_t)0xffffffff >> (j0 - 20));
-		}
-		INSERT_WORDS(x, ix, lx);
-
+		FFLOOR(x, j0, ix, lx);	/* Integer part of ax. */
 		ax -= x;
 		EXTRACT_WORDS(ix, lx, ax);
 
-
 		if (ix < 0x3fe00000) {		/* |x| < 0.5 */
 			if (ix < 0x3fd00000)	/* |x| < 0.25 */
 				c = ix == 0 ? 1 : __kernel_cospi(ax);
@@ -138,13 +128,16 @@
 		return (j0 & 1 ? -c : c);
 	}
 
-	if (ix >= 0x7f800000)
+	/* x = +-inf or nan. */
+	if (ix >= 0x7ff00000)
 		return (vzero / vzero);
 
 	/*
-	 * |x| >= 0x1p52 is always an even integer, so return 1.
+	 * For 0x1p52 <= |x| < 0x1p53 need to determine if x is an even
+	 * or odd integer to return +1 or -1.
+	 * For |x| >= 0x1p53, it is always an even integer, so return 1.
 	 */
-	return (1);
+	return (ix < 0x43400000 ? ((lx & 1) ? -1 : 1) : 1);
 }
 
 #if LDBL_MANT_DIG == 53
diff --git a/libm/upstream-freebsd/lib/msun/src/s_cpow.c b/libm/upstream-freebsd/lib/msun/src/s_cpow.c
index cdc57bd..b887db5 100644
--- a/libm/upstream-freebsd/lib/msun/src/s_cpow.c
+++ b/libm/upstream-freebsd/lib/msun/src/s_cpow.c
@@ -43,9 +43,6 @@
  *
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 #include <complex.h>
 #include <float.h>
 #include <math.h>
diff --git a/libm/upstream-freebsd/lib/msun/src/s_cpowf.c b/libm/upstream-freebsd/lib/msun/src/s_cpowf.c
index aeb773b..1442910 100644
--- a/libm/upstream-freebsd/lib/msun/src/s_cpowf.c
+++ b/libm/upstream-freebsd/lib/msun/src/s_cpowf.c
@@ -43,9 +43,6 @@
  *
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 #include <complex.h>
 #include <math.h>
 #include "math_private.h"
diff --git a/libm/upstream-freebsd/lib/msun/src/s_cpowl.c b/libm/upstream-freebsd/lib/msun/src/s_cpowl.c
index 5d43b55..39797ca 100644
--- a/libm/upstream-freebsd/lib/msun/src/s_cpowl.c
+++ b/libm/upstream-freebsd/lib/msun/src/s_cpowl.c
@@ -43,9 +43,6 @@
  *
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 #include <complex.h>
 #include <math.h>
 #include "math_private.h"
diff --git a/libm/upstream-freebsd/lib/msun/src/s_cproj.c b/libm/upstream-freebsd/lib/msun/src/s_cproj.c
index 38e7747..9eebb45 100644
--- a/libm/upstream-freebsd/lib/msun/src/s_cproj.c
+++ b/libm/upstream-freebsd/lib/msun/src/s_cproj.c
@@ -1,5 +1,5 @@
 /*-
- * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+ * SPDX-License-Identifier: BSD-2-Clause
  *
  * Copyright (c) 2008 David Schultz <das@FreeBSD.ORG>
  * All rights reserved.
@@ -26,9 +26,6 @@
  * SUCH DAMAGE.
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 #include <complex.h>
 #include <float.h>
 #include <math.h>
diff --git a/libm/upstream-freebsd/lib/msun/src/s_cprojf.c b/libm/upstream-freebsd/lib/msun/src/s_cprojf.c
index af4c3a8..13d90ba 100644
--- a/libm/upstream-freebsd/lib/msun/src/s_cprojf.c
+++ b/libm/upstream-freebsd/lib/msun/src/s_cprojf.c
@@ -1,5 +1,5 @@
 /*-
- * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+ * SPDX-License-Identifier: BSD-2-Clause
  *
  * Copyright (c) 2008 David Schultz <das@FreeBSD.ORG>
  * All rights reserved.
@@ -26,9 +26,6 @@
  * SUCH DAMAGE.
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 #include <complex.h>
 #include <math.h>
 
diff --git a/libm/upstream-freebsd/lib/msun/src/s_cprojl.c b/libm/upstream-freebsd/lib/msun/src/s_cprojl.c
index 16df514..083b5fa 100644
--- a/libm/upstream-freebsd/lib/msun/src/s_cprojl.c
+++ b/libm/upstream-freebsd/lib/msun/src/s_cprojl.c
@@ -1,5 +1,5 @@
 /*-
- * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+ * SPDX-License-Identifier: BSD-2-Clause
  *
  * Copyright (c) 2008 David Schultz <das@FreeBSD.ORG>
  * All rights reserved.
@@ -26,9 +26,6 @@
  * SUCH DAMAGE.
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 #include <complex.h>
 #include <math.h>
 
diff --git a/libm/upstream-freebsd/lib/msun/src/s_creal.c b/libm/upstream-freebsd/lib/msun/src/s_creal.c
index 69a10f2..b3a82f0 100644
--- a/libm/upstream-freebsd/lib/msun/src/s_creal.c
+++ b/libm/upstream-freebsd/lib/msun/src/s_creal.c
@@ -1,5 +1,5 @@
 /*-
- * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+ * SPDX-License-Identifier: BSD-2-Clause
  *
  * Copyright (c) 2004 Stefan Farfeleder
  * All rights reserved.
@@ -24,8 +24,6 @@
  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
- *
- * $FreeBSD$
  */
 
 #include <complex.h>
diff --git a/libm/upstream-freebsd/lib/msun/src/s_crealf.c b/libm/upstream-freebsd/lib/msun/src/s_crealf.c
index 83e4d46..36fc115 100644
--- a/libm/upstream-freebsd/lib/msun/src/s_crealf.c
+++ b/libm/upstream-freebsd/lib/msun/src/s_crealf.c
@@ -1,5 +1,5 @@
 /*-
- * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+ * SPDX-License-Identifier: BSD-2-Clause
  *
  * Copyright (c) 2004 Stefan Farfeleder
  * All rights reserved.
@@ -24,8 +24,6 @@
  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
- *
- * $FreeBSD$
  */
 
 #include <complex.h>
diff --git a/libm/upstream-freebsd/lib/msun/src/s_creall.c b/libm/upstream-freebsd/lib/msun/src/s_creall.c
index 538b7d5..b56143a 100644
--- a/libm/upstream-freebsd/lib/msun/src/s_creall.c
+++ b/libm/upstream-freebsd/lib/msun/src/s_creall.c
@@ -1,5 +1,5 @@
 /*-
- * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+ * SPDX-License-Identifier: BSD-2-Clause
  *
  * Copyright (c) 2004 Stefan Farfeleder
  * All rights reserved.
@@ -24,8 +24,6 @@
  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
- *
- * $FreeBSD$
  */
 
 #include <complex.h>
diff --git a/libm/upstream-freebsd/lib/msun/src/s_csinh.c b/libm/upstream-freebsd/lib/msun/src/s_csinh.c
index 09b2dcb..e7ed10e 100644
--- a/libm/upstream-freebsd/lib/msun/src/s_csinh.c
+++ b/libm/upstream-freebsd/lib/msun/src/s_csinh.c
@@ -1,5 +1,5 @@
 /*-
- * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+ * SPDX-License-Identifier: BSD-2-Clause
  *
  * Copyright (c) 2005 Bruce D. Evans and Steven G. Kargl
  * All rights reserved.
@@ -38,9 +38,6 @@
  * must satisfy both sinh(conj(z)) == conj(sinh(z)) and sinh(-z) == -sinh(z).
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 #include <complex.h>
 #include <math.h>
 
diff --git a/libm/upstream-freebsd/lib/msun/src/s_csinhf.c b/libm/upstream-freebsd/lib/msun/src/s_csinhf.c
index ba1a794..c439275 100644
--- a/libm/upstream-freebsd/lib/msun/src/s_csinhf.c
+++ b/libm/upstream-freebsd/lib/msun/src/s_csinhf.c
@@ -1,5 +1,5 @@
 /*-
- * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+ * SPDX-License-Identifier: BSD-2-Clause
  *
  * Copyright (c) 2005 Bruce D. Evans and Steven G. Kargl
  * All rights reserved.
@@ -30,9 +30,6 @@
  * Float version of csinh().  See s_csinh.c for details.
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 #include <complex.h>
 #include <math.h>
 
diff --git a/libm/upstream-freebsd/lib/msun/src/s_csqrt.c b/libm/upstream-freebsd/lib/msun/src/s_csqrt.c
index d172efc..c40b5a6 100644
--- a/libm/upstream-freebsd/lib/msun/src/s_csqrt.c
+++ b/libm/upstream-freebsd/lib/msun/src/s_csqrt.c
@@ -1,5 +1,5 @@
 /*-
- * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+ * SPDX-License-Identifier: BSD-2-Clause
  *
  * Copyright (c) 2007 David Schultz <das@FreeBSD.ORG>
  * All rights reserved.
@@ -26,9 +26,6 @@
  * SUCH DAMAGE.
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 #include <complex.h>
 #include <float.h>
 #include <math.h>
diff --git a/libm/upstream-freebsd/lib/msun/src/s_csqrtf.c b/libm/upstream-freebsd/lib/msun/src/s_csqrtf.c
index 6836a39..b572451 100644
--- a/libm/upstream-freebsd/lib/msun/src/s_csqrtf.c
+++ b/libm/upstream-freebsd/lib/msun/src/s_csqrtf.c
@@ -1,5 +1,5 @@
 /*-
- * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+ * SPDX-License-Identifier: BSD-2-Clause
  *
  * Copyright (c) 2007 David Schultz <das@FreeBSD.ORG>
  * All rights reserved.
@@ -26,9 +26,6 @@
  * SUCH DAMAGE.
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 #include <complex.h>
 #include <math.h>
 
diff --git a/libm/upstream-freebsd/lib/msun/src/s_csqrtl.c b/libm/upstream-freebsd/lib/msun/src/s_csqrtl.c
index 40bc59d..0f375f3 100644
--- a/libm/upstream-freebsd/lib/msun/src/s_csqrtl.c
+++ b/libm/upstream-freebsd/lib/msun/src/s_csqrtl.c
@@ -1,5 +1,5 @@
 /*-
- * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+ * SPDX-License-Identifier: BSD-2-Clause
  *
  * Copyright (c) 2007-2008 David Schultz <das@FreeBSD.ORG>
  * All rights reserved.
@@ -26,9 +26,6 @@
  * SUCH DAMAGE.
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 #include <complex.h>
 #include <float.h>
 #include <math.h>
diff --git a/libm/upstream-freebsd/lib/msun/src/s_ctanh.c b/libm/upstream-freebsd/lib/msun/src/s_ctanh.c
index e5840a1..6904363 100644
--- a/libm/upstream-freebsd/lib/msun/src/s_ctanh.c
+++ b/libm/upstream-freebsd/lib/msun/src/s_ctanh.c
@@ -1,5 +1,5 @@
 /*-
- * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+ * SPDX-License-Identifier: BSD-2-Clause
  *
  * Copyright (c) 2011 David Schultz
  * All rights reserved.
@@ -65,9 +65,6 @@
  *   precision.  I also handle large x differently.
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 #include <complex.h>
 #include <math.h>
 
diff --git a/libm/upstream-freebsd/lib/msun/src/s_ctanhf.c b/libm/upstream-freebsd/lib/msun/src/s_ctanhf.c
index c46f86d..551e143 100644
--- a/libm/upstream-freebsd/lib/msun/src/s_ctanhf.c
+++ b/libm/upstream-freebsd/lib/msun/src/s_ctanhf.c
@@ -1,5 +1,5 @@
 /*-
- * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+ * SPDX-License-Identifier: BSD-2-Clause
  *
  * Copyright (c) 2011 David Schultz
  * All rights reserved.
@@ -30,9 +30,6 @@
  * Hyperbolic tangent of a complex argument z.  See s_ctanh.c for details.
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 #include <complex.h>
 #include <math.h>
 
diff --git a/libm/upstream-freebsd/lib/msun/src/s_erf.c b/libm/upstream-freebsd/lib/msun/src/s_erf.c
index 5f22847..a9de122 100644
--- a/libm/upstream-freebsd/lib/msun/src/s_erf.c
+++ b/libm/upstream-freebsd/lib/msun/src/s_erf.c
@@ -1,4 +1,3 @@
-/* @(#)s_erf.c 5.1 93/09/24 */
 /*
  * ====================================================
  * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
@@ -10,9 +9,6 @@
  * ====================================================
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 /* double erf(double x)
  * double erfc(double x)
  *			     x
@@ -238,7 +234,7 @@
 	}
 	z  = x;
 	SET_LOW_WORD(z,0);
-	r  =  __ieee754_exp(-z*z-0.5625)*__ieee754_exp((z-x)*(z+x)+R/S);
+	r  =  exp(-z*z-0.5625)*exp((z-x)*(z+x)+R/S);
 	if(hx>=0) return one-r/x; else return  r/x-one;
 }
 
@@ -297,7 +293,7 @@
 	    }
 	    z  = x;
 	    SET_LOW_WORD(z,0);
-	    r  =  __ieee754_exp(-z*z-0.5625)*__ieee754_exp((z-x)*(z+x)+R/S);
+	    r  =  exp(-z*z-0.5625)*exp((z-x)*(z+x)+R/S);
 	    if(hx>0) return r/x; else return two-r/x;
 	} else {
 	    if(hx>0) return tiny*tiny; else return two-tiny;
diff --git a/libm/upstream-freebsd/lib/msun/src/s_erff.c b/libm/upstream-freebsd/lib/msun/src/s_erff.c
index d6cfbd2..6c8f406 100644
--- a/libm/upstream-freebsd/lib/msun/src/s_erff.c
+++ b/libm/upstream-freebsd/lib/msun/src/s_erff.c
@@ -13,9 +13,6 @@
  * ====================================================
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 #include "math.h"
 #include "math_private.h"
 
diff --git a/libm/upstream-freebsd/lib/msun/src/s_exp2.c b/libm/upstream-freebsd/lib/msun/src/s_exp2.c
deleted file mode 100644
index bc36e55..0000000
--- a/libm/upstream-freebsd/lib/msun/src/s_exp2.c
+++ /dev/null
@@ -1,399 +0,0 @@
-/*-
- * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
- *
- * Copyright (c) 2005 David Schultz <das@FreeBSD.ORG>
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
-#include <float.h>
-
-#include "math.h"
-#include "math_private.h"
-
-#define	TBLBITS	8
-#define	TBLSIZE	(1 << TBLBITS)
-
-static const double
-    redux    = 0x1.8p52 / TBLSIZE,
-    P1	     = 0x1.62e42fefa39efp-1,
-    P2	     = 0x1.ebfbdff82c575p-3,
-    P3	     = 0x1.c6b08d704a0a6p-5,
-    P4	     = 0x1.3b2ab88f70400p-7,
-    P5	     = 0x1.5d88003875c74p-10;
-
-static volatile double
-    huge     = 0x1p1000,
-    twom1000 = 0x1p-1000;
-
-static const double tbl[TBLSIZE * 2] = {
-/*	exp2(z + eps)		eps	*/
-	0x1.6a09e667f3d5dp-1,	 0x1.9880p-44,
-	0x1.6b052fa751744p-1,	 0x1.8000p-50,
-	0x1.6c012750bd9fep-1,	-0x1.8780p-45,
-	0x1.6cfdcddd476bfp-1,	 0x1.ec00p-46,
-	0x1.6dfb23c651a29p-1,	-0x1.8000p-50,
-	0x1.6ef9298593ae3p-1,	-0x1.c000p-52,
-	0x1.6ff7df9519386p-1,	-0x1.fd80p-45,
-	0x1.70f7466f42da3p-1,	-0x1.c880p-45,
-	0x1.71f75e8ec5fc3p-1,	 0x1.3c00p-46,
-	0x1.72f8286eacf05p-1,	-0x1.8300p-44,
-	0x1.73f9a48a58152p-1,	-0x1.0c00p-47,
-	0x1.74fbd35d7ccfcp-1,	 0x1.f880p-45,
-	0x1.75feb564267f1p-1,	 0x1.3e00p-47,
-	0x1.77024b1ab6d48p-1,	-0x1.7d00p-45,
-	0x1.780694fde5d38p-1,	-0x1.d000p-50,
-	0x1.790b938ac1d00p-1,	 0x1.3000p-49,
-	0x1.7a11473eb0178p-1,	-0x1.d000p-49,
-	0x1.7b17b0976d060p-1,	 0x1.0400p-45,
-	0x1.7c1ed0130c133p-1,	 0x1.0000p-53,
-	0x1.7d26a62ff8636p-1,	-0x1.6900p-45,
-	0x1.7e2f336cf4e3bp-1,	-0x1.2e00p-47,
-	0x1.7f3878491c3e8p-1,	-0x1.4580p-45,
-	0x1.80427543e1b4ep-1,	 0x1.3000p-44,
-	0x1.814d2add1071ap-1,	 0x1.f000p-47,
-	0x1.82589994ccd7ep-1,	-0x1.1c00p-45,
-	0x1.8364c1eb942d0p-1,	 0x1.9d00p-45,
-	0x1.8471a4623cab5p-1,	 0x1.7100p-43,
-	0x1.857f4179f5bbcp-1,	 0x1.2600p-45,
-	0x1.868d99b4491afp-1,	-0x1.2c40p-44,
-	0x1.879cad931a395p-1,	-0x1.3000p-45,
-	0x1.88ac7d98a65b8p-1,	-0x1.a800p-45,
-	0x1.89bd0a4785800p-1,	-0x1.d000p-49,
-	0x1.8ace5422aa223p-1,	 0x1.3280p-44,
-	0x1.8be05bad619fap-1,	 0x1.2b40p-43,
-	0x1.8cf3216b54383p-1,	-0x1.ed00p-45,
-	0x1.8e06a5e08664cp-1,	-0x1.0500p-45,
-	0x1.8f1ae99157807p-1,	 0x1.8280p-45,
-	0x1.902fed0282c0ep-1,	-0x1.cb00p-46,
-	0x1.9145b0b91ff96p-1,	-0x1.5e00p-47,
-	0x1.925c353aa2ff9p-1,	 0x1.5400p-48,
-	0x1.93737b0cdc64ap-1,	 0x1.7200p-46,
-	0x1.948b82b5f98aep-1,	-0x1.9000p-47,
-	0x1.95a44cbc852cbp-1,	 0x1.5680p-45,
-	0x1.96bdd9a766f21p-1,	-0x1.6d00p-44,
-	0x1.97d829fde4e2ap-1,	-0x1.1000p-47,
-	0x1.98f33e47a23a3p-1,	 0x1.d000p-45,
-	0x1.9a0f170ca0604p-1,	-0x1.8a40p-44,
-	0x1.9b2bb4d53ff89p-1,	 0x1.55c0p-44,
-	0x1.9c49182a3f15bp-1,	 0x1.6b80p-45,
-	0x1.9d674194bb8c5p-1,	-0x1.c000p-49,
-	0x1.9e86319e3238ep-1,	 0x1.7d00p-46,
-	0x1.9fa5e8d07f302p-1,	 0x1.6400p-46,
-	0x1.a0c667b5de54dp-1,	-0x1.5000p-48,
-	0x1.a1e7aed8eb8f6p-1,	 0x1.9e00p-47,
-	0x1.a309bec4a2e27p-1,	 0x1.ad80p-45,
-	0x1.a42c980460a5dp-1,	-0x1.af00p-46,
-	0x1.a5503b23e259bp-1,	 0x1.b600p-47,
-	0x1.a674a8af46213p-1,	 0x1.8880p-44,
-	0x1.a799e1330b3a7p-1,	 0x1.1200p-46,
-	0x1.a8bfe53c12e8dp-1,	 0x1.6c00p-47,
-	0x1.a9e6b5579fcd2p-1,	-0x1.9b80p-45,
-	0x1.ab0e521356fb8p-1,	 0x1.b700p-45,
-	0x1.ac36bbfd3f381p-1,	 0x1.9000p-50,
-	0x1.ad5ff3a3c2780p-1,	 0x1.4000p-49,
-	0x1.ae89f995ad2a3p-1,	-0x1.c900p-45,
-	0x1.afb4ce622f367p-1,	 0x1.6500p-46,
-	0x1.b0e07298db790p-1,	 0x1.fd40p-45,
-	0x1.b20ce6c9a89a9p-1,	 0x1.2700p-46,
-	0x1.b33a2b84f1a4bp-1,	 0x1.d470p-43,
-	0x1.b468415b747e7p-1,	-0x1.8380p-44,
-	0x1.b59728de5593ap-1,	 0x1.8000p-54,
-	0x1.b6c6e29f1c56ap-1,	 0x1.ad00p-47,
-	0x1.b7f76f2fb5e50p-1,	 0x1.e800p-50,
-	0x1.b928cf22749b2p-1,	-0x1.4c00p-47,
-	0x1.ba5b030a10603p-1,	-0x1.d700p-47,
-	0x1.bb8e0b79a6f66p-1,	 0x1.d900p-47,
-	0x1.bcc1e904bc1ffp-1,	 0x1.2a00p-47,
-	0x1.bdf69c3f3a16fp-1,	-0x1.f780p-46,
-	0x1.bf2c25bd71db8p-1,	-0x1.0a00p-46,
-	0x1.c06286141b2e9p-1,	-0x1.1400p-46,
-	0x1.c199bdd8552e0p-1,	 0x1.be00p-47,
-	0x1.c2d1cd9fa64eep-1,	-0x1.9400p-47,
-	0x1.c40ab5fffd02fp-1,	-0x1.ed00p-47,
-	0x1.c544778fafd15p-1,	 0x1.9660p-44,
-	0x1.c67f12e57d0cbp-1,	-0x1.a100p-46,
-	0x1.c7ba88988c1b6p-1,	-0x1.8458p-42,
-	0x1.c8f6d9406e733p-1,	-0x1.a480p-46,
-	0x1.ca3405751c4dfp-1,	 0x1.b000p-51,
-	0x1.cb720dcef9094p-1,	 0x1.1400p-47,
-	0x1.ccb0f2e6d1689p-1,	 0x1.0200p-48,
-	0x1.cdf0b555dc412p-1,	 0x1.3600p-48,
-	0x1.cf3155b5bab3bp-1,	-0x1.6900p-47,
-	0x1.d072d4a0789bcp-1,	 0x1.9a00p-47,
-	0x1.d1b532b08c8fap-1,	-0x1.5e00p-46,
-	0x1.d2f87080d8a85p-1,	 0x1.d280p-46,
-	0x1.d43c8eacaa203p-1,	 0x1.1a00p-47,
-	0x1.d5818dcfba491p-1,	 0x1.f000p-50,
-	0x1.d6c76e862e6a1p-1,	-0x1.3a00p-47,
-	0x1.d80e316c9834ep-1,	-0x1.cd80p-47,
-	0x1.d955d71ff6090p-1,	 0x1.4c00p-48,
-	0x1.da9e603db32aep-1,	 0x1.f900p-48,
-	0x1.dbe7cd63a8325p-1,	 0x1.9800p-49,
-	0x1.dd321f301b445p-1,	-0x1.5200p-48,
-	0x1.de7d5641c05bfp-1,	-0x1.d700p-46,
-	0x1.dfc97337b9aecp-1,	-0x1.6140p-46,
-	0x1.e11676b197d5ep-1,	 0x1.b480p-47,
-	0x1.e264614f5a3e7p-1,	 0x1.0ce0p-43,
-	0x1.e3b333b16ee5cp-1,	 0x1.c680p-47,
-	0x1.e502ee78b3fb4p-1,	-0x1.9300p-47,
-	0x1.e653924676d68p-1,	-0x1.5000p-49,
-	0x1.e7a51fbc74c44p-1,	-0x1.7f80p-47,
-	0x1.e8f7977cdb726p-1,	-0x1.3700p-48,
-	0x1.ea4afa2a490e8p-1,	 0x1.5d00p-49,
-	0x1.eb9f4867ccae4p-1,	 0x1.61a0p-46,
-	0x1.ecf482d8e680dp-1,	 0x1.5500p-48,
-	0x1.ee4aaa2188514p-1,	 0x1.6400p-51,
-	0x1.efa1bee615a13p-1,	-0x1.e800p-49,
-	0x1.f0f9c1cb64106p-1,	-0x1.a880p-48,
-	0x1.f252b376bb963p-1,	-0x1.c900p-45,
-	0x1.f3ac948dd7275p-1,	 0x1.a000p-53,
-	0x1.f50765b6e4524p-1,	-0x1.4f00p-48,
-	0x1.f6632798844fdp-1,	 0x1.a800p-51,
-	0x1.f7bfdad9cbe38p-1,	 0x1.abc0p-48,
-	0x1.f91d802243c82p-1,	-0x1.4600p-50,
-	0x1.fa7c1819e908ep-1,	-0x1.b0c0p-47,
-	0x1.fbdba3692d511p-1,	-0x1.0e00p-51,
-	0x1.fd3c22b8f7194p-1,	-0x1.0de8p-46,
-	0x1.fe9d96b2a23eep-1,	 0x1.e430p-49,
-	0x1.0000000000000p+0,	 0x0.0000p+0,
-	0x1.00b1afa5abcbep+0,	-0x1.3400p-52,
-	0x1.0163da9fb3303p+0,	-0x1.2170p-46,
-	0x1.02168143b0282p+0,	 0x1.a400p-52,
-	0x1.02c9a3e77806cp+0,	 0x1.f980p-49,
-	0x1.037d42e11bbcap+0,	-0x1.7400p-51,
-	0x1.04315e86e7f89p+0,	 0x1.8300p-50,
-	0x1.04e5f72f65467p+0,	-0x1.a3f0p-46,
-	0x1.059b0d315855ap+0,	-0x1.2840p-47,
-	0x1.0650a0e3c1f95p+0,	 0x1.1600p-48,
-	0x1.0706b29ddf71ap+0,	 0x1.5240p-46,
-	0x1.07bd42b72a82dp+0,	-0x1.9a00p-49,
-	0x1.0874518759bd0p+0,	 0x1.6400p-49,
-	0x1.092bdf66607c8p+0,	-0x1.0780p-47,
-	0x1.09e3ecac6f383p+0,	-0x1.8000p-54,
-	0x1.0a9c79b1f3930p+0,	 0x1.fa00p-48,
-	0x1.0b5586cf988fcp+0,	-0x1.ac80p-48,
-	0x1.0c0f145e46c8ap+0,	 0x1.9c00p-50,
-	0x1.0cc922b724816p+0,	 0x1.5200p-47,
-	0x1.0d83b23395dd8p+0,	-0x1.ad00p-48,
-	0x1.0e3ec32d3d1f3p+0,	 0x1.bac0p-46,
-	0x1.0efa55fdfa9a6p+0,	-0x1.4e80p-47,
-	0x1.0fb66affed2f0p+0,	-0x1.d300p-47,
-	0x1.1073028d7234bp+0,	 0x1.1500p-48,
-	0x1.11301d0125b5bp+0,	 0x1.c000p-49,
-	0x1.11edbab5e2af9p+0,	 0x1.6bc0p-46,
-	0x1.12abdc06c31d5p+0,	 0x1.8400p-49,
-	0x1.136a814f2047dp+0,	-0x1.ed00p-47,
-	0x1.1429aaea92de9p+0,	 0x1.8e00p-49,
-	0x1.14e95934f3138p+0,	 0x1.b400p-49,
-	0x1.15a98c8a58e71p+0,	 0x1.5300p-47,
-	0x1.166a45471c3dfp+0,	 0x1.3380p-47,
-	0x1.172b83c7d5211p+0,	 0x1.8d40p-45,
-	0x1.17ed48695bb9fp+0,	-0x1.5d00p-47,
-	0x1.18af9388c8d93p+0,	-0x1.c880p-46,
-	0x1.1972658375d66p+0,	 0x1.1f00p-46,
-	0x1.1a35beb6fcba7p+0,	 0x1.0480p-46,
-	0x1.1af99f81387e3p+0,	-0x1.7390p-43,
-	0x1.1bbe084045d54p+0,	 0x1.4e40p-45,
-	0x1.1c82f95281c43p+0,	-0x1.a200p-47,
-	0x1.1d4873168b9b2p+0,	 0x1.3800p-49,
-	0x1.1e0e75eb44031p+0,	 0x1.ac00p-49,
-	0x1.1ed5022fcd938p+0,	 0x1.1900p-47,
-	0x1.1f9c18438cdf7p+0,	-0x1.b780p-46,
-	0x1.2063b88628d8fp+0,	 0x1.d940p-45,
-	0x1.212be3578a81ep+0,	 0x1.8000p-50,
-	0x1.21f49917ddd41p+0,	 0x1.b340p-45,
-	0x1.22bdda2791323p+0,	 0x1.9f80p-46,
-	0x1.2387a6e7561e7p+0,	-0x1.9c80p-46,
-	0x1.2451ffb821427p+0,	 0x1.2300p-47,
-	0x1.251ce4fb2a602p+0,	-0x1.3480p-46,
-	0x1.25e85711eceb0p+0,	 0x1.2700p-46,
-	0x1.26b4565e27d16p+0,	 0x1.1d00p-46,
-	0x1.2780e341de00fp+0,	 0x1.1ee0p-44,
-	0x1.284dfe1f5633ep+0,	-0x1.4c00p-46,
-	0x1.291ba7591bb30p+0,	-0x1.3d80p-46,
-	0x1.29e9df51fdf09p+0,	 0x1.8b00p-47,
-	0x1.2ab8a66d10e9bp+0,	-0x1.27c0p-45,
-	0x1.2b87fd0dada3ap+0,	 0x1.a340p-45,
-	0x1.2c57e39771af9p+0,	-0x1.0800p-46,
-	0x1.2d285a6e402d9p+0,	-0x1.ed00p-47,
-	0x1.2df961f641579p+0,	-0x1.4200p-48,
-	0x1.2ecafa93e2ecfp+0,	-0x1.4980p-45,
-	0x1.2f9d24abd8822p+0,	-0x1.6300p-46,
-	0x1.306fe0a31b625p+0,	-0x1.2360p-44,
-	0x1.31432edeea50bp+0,	-0x1.0df8p-40,
-	0x1.32170fc4cd7b8p+0,	-0x1.2480p-45,
-	0x1.32eb83ba8e9a2p+0,	-0x1.5980p-45,
-	0x1.33c08b2641766p+0,	 0x1.ed00p-46,
-	0x1.3496266e3fa27p+0,	-0x1.c000p-50,
-	0x1.356c55f929f0fp+0,	-0x1.0d80p-44,
-	0x1.36431a2de88b9p+0,	 0x1.2c80p-45,
-	0x1.371a7373aaa39p+0,	 0x1.0600p-45,
-	0x1.37f26231e74fep+0,	-0x1.6600p-46,
-	0x1.38cae6d05d838p+0,	-0x1.ae00p-47,
-	0x1.39a401b713ec3p+0,	-0x1.4720p-43,
-	0x1.3a7db34e5a020p+0,	 0x1.8200p-47,
-	0x1.3b57fbfec6e95p+0,	 0x1.e800p-44,
-	0x1.3c32dc313a8f2p+0,	 0x1.f800p-49,
-	0x1.3d0e544ede122p+0,	-0x1.7a00p-46,
-	0x1.3dea64c1234bbp+0,	 0x1.6300p-45,
-	0x1.3ec70df1c4eccp+0,	-0x1.8a60p-43,
-	0x1.3fa4504ac7e8cp+0,	-0x1.cdc0p-44,
-	0x1.40822c367a0bbp+0,	 0x1.5b80p-45,
-	0x1.4160a21f72e95p+0,	 0x1.ec00p-46,
-	0x1.423fb27094646p+0,	-0x1.3600p-46,
-	0x1.431f5d950a920p+0,	 0x1.3980p-45,
-	0x1.43ffa3f84b9ebp+0,	 0x1.a000p-48,
-	0x1.44e0860618919p+0,	-0x1.6c00p-48,
-	0x1.45c2042a7d201p+0,	-0x1.bc00p-47,
-	0x1.46a41ed1d0016p+0,	-0x1.2800p-46,
-	0x1.4786d668b3326p+0,	 0x1.0e00p-44,
-	0x1.486a2b5c13c00p+0,	-0x1.d400p-45,
-	0x1.494e1e192af04p+0,	 0x1.c200p-47,
-	0x1.4a32af0d7d372p+0,	-0x1.e500p-46,
-	0x1.4b17dea6db801p+0,	 0x1.7800p-47,
-	0x1.4bfdad53629e1p+0,	-0x1.3800p-46,
-	0x1.4ce41b817c132p+0,	 0x1.0800p-47,
-	0x1.4dcb299fddddbp+0,	 0x1.c700p-45,
-	0x1.4eb2d81d8ab96p+0,	-0x1.ce00p-46,
-	0x1.4f9b2769d2d02p+0,	 0x1.9200p-46,
-	0x1.508417f4531c1p+0,	-0x1.8c00p-47,
-	0x1.516daa2cf662ap+0,	-0x1.a000p-48,
-	0x1.5257de83f51eap+0,	 0x1.a080p-43,
-	0x1.5342b569d4edap+0,	-0x1.6d80p-45,
-	0x1.542e2f4f6ac1ap+0,	-0x1.2440p-44,
-	0x1.551a4ca5d94dbp+0,	 0x1.83c0p-43,
-	0x1.56070dde9116bp+0,	 0x1.4b00p-45,
-	0x1.56f4736b529dep+0,	 0x1.15a0p-43,
-	0x1.57e27dbe2c40ep+0,	-0x1.9e00p-45,
-	0x1.58d12d497c76fp+0,	-0x1.3080p-45,
-	0x1.59c0827ff0b4cp+0,	 0x1.dec0p-43,
-	0x1.5ab07dd485427p+0,	-0x1.4000p-51,
-	0x1.5ba11fba87af4p+0,	 0x1.0080p-44,
-	0x1.5c9268a59460bp+0,	-0x1.6c80p-45,
-	0x1.5d84590998e3fp+0,	 0x1.69a0p-43,
-	0x1.5e76f15ad20e1p+0,	-0x1.b400p-46,
-	0x1.5f6a320dcebcap+0,	 0x1.7700p-46,
-	0x1.605e1b976dcb8p+0,	 0x1.6f80p-45,
-	0x1.6152ae6cdf715p+0,	 0x1.1000p-47,
-	0x1.6247eb03a5531p+0,	-0x1.5d00p-46,
-	0x1.633dd1d1929b5p+0,	-0x1.2d00p-46,
-	0x1.6434634ccc313p+0,	-0x1.a800p-49,
-	0x1.652b9febc8efap+0,	-0x1.8600p-45,
-	0x1.6623882553397p+0,	 0x1.1fe0p-40,
-	0x1.671c1c708328ep+0,	-0x1.7200p-44,
-	0x1.68155d44ca97ep+0,	 0x1.6800p-49,
-	0x1.690f4b19e9471p+0,	-0x1.9780p-45,
-};
-
-/*
- * exp2(x): compute the base 2 exponential of x
- *
- * Accuracy: Peak error < 0.503 ulp for normalized results.
- *
- * Method: (accurate tables)
- *
- *   Reduce x:
- *     x = 2**k + y, for integer k and |y| <= 1/2.
- *     Thus we have exp2(x) = 2**k * exp2(y).
- *
- *   Reduce y:
- *     y = i/TBLSIZE + z - eps[i] for integer i near y * TBLSIZE.
- *     Thus we have exp2(y) = exp2(i/TBLSIZE) * exp2(z - eps[i]),
- *     with |z - eps[i]| <= 2**-9 + 2**-39 for the table used.
- *
- *   We compute exp2(i/TBLSIZE) via table lookup and exp2(z - eps[i]) via
- *   a degree-5 minimax polynomial with maximum error under 1.3 * 2**-61.
- *   The values in exp2t[] and eps[] are chosen such that
- *   exp2t[i] = exp2(i/TBLSIZE + eps[i]), and eps[i] is a small offset such
- *   that exp2t[i] is accurate to 2**-64.
- *
- *   Note that the range of i is +-TBLSIZE/2, so we actually index the tables
- *   by i0 = i + TBLSIZE/2.  For cache efficiency, exp2t[] and eps[] are
- *   virtual tables, interleaved in the real table tbl[].
- *
- *   This method is due to Gal, with many details due to Gal and Bachelis:
- *
- *	Gal, S. and Bachelis, B.  An Accurate Elementary Mathematical Library
- *	for the IEEE Floating Point Standard.  TOMS 17(1), 26-46 (1991).
- */
-double
-exp2(double x)
-{
-	double r, t, twopk, twopkp1000, z;
-	uint32_t hx, ix, lx, i0;
-	int k;
-
-	/* Filter out exceptional cases. */
-	GET_HIGH_WORD(hx,x);
-	ix = hx & 0x7fffffff;		/* high word of |x| */
-	if(ix >= 0x40900000) {			/* |x| >= 1024 */
-		if(ix >= 0x7ff00000) {
-			GET_LOW_WORD(lx,x);
-			if(((ix & 0xfffff) | lx) != 0 || (hx & 0x80000000) == 0)
-				return (x + x);	/* x is NaN or +Inf */
-			else 
-				return (0.0);	/* x is -Inf */
-		}
-		if(x >= 0x1.0p10)
-			return (huge * huge); /* overflow */
-		if(x <= -0x1.0ccp10)
-			return (twom1000 * twom1000); /* underflow */
-	} else if (ix < 0x3c900000) {		/* |x| < 0x1p-54 */
-		return (1.0 + x);
-	}
-
-	/* Reduce x, computing z, i0, and k. */
-	STRICT_ASSIGN(double, t, x + redux);
-	GET_LOW_WORD(i0, t);
-	i0 += TBLSIZE / 2;
-	k = (i0 >> TBLBITS) << 20;
-	i0 = (i0 & (TBLSIZE - 1)) << 1;
-	t -= redux;
-	z = x - t;
-
-	/* Compute r = exp2(y) = exp2t[i0] * p(z - eps[i]). */
-	t = tbl[i0];		/* exp2t[i0] */
-	z -= tbl[i0 + 1];	/* eps[i0]   */
-	if (k >= -(1021 << 20))
-		INSERT_WORDS(twopk, 0x3ff00000 + k, 0);
-	else
-		INSERT_WORDS(twopkp1000, 0x3ff00000 + k + (1000 << 20), 0);
-	r = t + t * z * (P1 + z * (P2 + z * (P3 + z * (P4 + z * P5))));
-
-	/* Scale by 2**(k>>20). */
-	if(k >= -(1021 << 20)) {
-		if (k == 1024 << 20)
-			return (r * 2.0 * 0x1p1023);
-		return (r * twopk);
-	} else {
-		return (r * twopkp1000 * twom1000);
-	}
-}
-
-#if (LDBL_MANT_DIG == 53)
-__weak_reference(exp2, exp2l);
-#endif
diff --git a/libm/upstream-freebsd/lib/msun/src/s_exp2f.c b/libm/upstream-freebsd/lib/msun/src/s_exp2f.c
deleted file mode 100644
index c082924..0000000
--- a/libm/upstream-freebsd/lib/msun/src/s_exp2f.c
+++ /dev/null
@@ -1,139 +0,0 @@
-/*-
- * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
- *
- * Copyright (c) 2005 David Schultz <das@FreeBSD.ORG>
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
-#include <float.h>
-
-#include "math.h"
-#include "math_private.h"
-
-#define	TBLBITS	4
-#define	TBLSIZE	(1 << TBLBITS)
-
-static const float
-    redux   = 0x1.8p23f / TBLSIZE,
-    P1	    = 0x1.62e430p-1f,
-    P2	    = 0x1.ebfbe0p-3f,
-    P3	    = 0x1.c6b348p-5f,
-    P4	    = 0x1.3b2c9cp-7f;
-
-static volatile float
-    huge    = 0x1p100f,
-    twom100 = 0x1p-100f;
-
-static const double exp2ft[TBLSIZE] = {
-	0x1.6a09e667f3bcdp-1,
-	0x1.7a11473eb0187p-1,
-	0x1.8ace5422aa0dbp-1,
-	0x1.9c49182a3f090p-1,
-	0x1.ae89f995ad3adp-1,
-	0x1.c199bdd85529cp-1,
-	0x1.d5818dcfba487p-1,
-	0x1.ea4afa2a490dap-1,
-	0x1.0000000000000p+0,
-	0x1.0b5586cf9890fp+0,
-	0x1.172b83c7d517bp+0,
-	0x1.2387a6e756238p+0,
-	0x1.306fe0a31b715p+0,
-	0x1.3dea64c123422p+0,
-	0x1.4bfdad5362a27p+0,
-	0x1.5ab07dd485429p+0,
-};
-	
-/*
- * exp2f(x): compute the base 2 exponential of x
- *
- * Accuracy: Peak error < 0.501 ulp; location of peak: -0.030110927.
- *
- * Method: (equally-spaced tables)
- *
- *   Reduce x:
- *     x = 2**k + y, for integer k and |y| <= 1/2.
- *     Thus we have exp2f(x) = 2**k * exp2(y).
- *
- *   Reduce y:
- *     y = i/TBLSIZE + z for integer i near y * TBLSIZE.
- *     Thus we have exp2(y) = exp2(i/TBLSIZE) * exp2(z),
- *     with |z| <= 2**-(TBLSIZE+1).
- *
- *   We compute exp2(i/TBLSIZE) via table lookup and exp2(z) via a
- *   degree-4 minimax polynomial with maximum error under 1.4 * 2**-33.
- *   Using double precision for everything except the reduction makes
- *   roundoff error insignificant and simplifies the scaling step.
- *
- *   This method is due to Tang, but I do not use his suggested parameters:
- *
- *	Tang, P.  Table-driven Implementation of the Exponential Function
- *	in IEEE Floating-Point Arithmetic.  TOMS 15(2), 144-157 (1989).
- */
-float
-exp2f(float x)
-{
-	double tv, twopk, u, z;
-	float t;
-	uint32_t hx, ix, i0;
-	int32_t k;
-
-	/* Filter out exceptional cases. */
-	GET_FLOAT_WORD(hx, x);
-	ix = hx & 0x7fffffff;		/* high word of |x| */
-	if(ix >= 0x43000000) {			/* |x| >= 128 */
-		if(ix >= 0x7f800000) {
-			if ((ix & 0x7fffff) != 0 || (hx & 0x80000000) == 0)
-				return (x + x);	/* x is NaN or +Inf */
-			else 
-				return (0.0);	/* x is -Inf */
-		}
-		if(x >= 0x1.0p7f)
-			return (huge * huge);	/* overflow */
-		if(x <= -0x1.2cp7f)
-			return (twom100 * twom100); /* underflow */
-	} else if (ix <= 0x33000000) {		/* |x| <= 0x1p-25 */
-		return (1.0f + x);
-	}
-
-	/* Reduce x, computing z, i0, and k. */
-	STRICT_ASSIGN(float, t, x + redux);
-	GET_FLOAT_WORD(i0, t);
-	i0 += TBLSIZE / 2;
-	k = (i0 >> TBLBITS) << 20;
-	i0 &= TBLSIZE - 1;
-	t -= redux;
-	z = x - t;
-	INSERT_WORDS(twopk, 0x3ff00000 + k, 0);
-
-	/* Compute r = exp2(y) = exp2ft[i0] * p(z). */
-	tv = exp2ft[i0];
-	u = tv * z;
-	tv = tv + u * (P1 + z * P2) + u * (z * z) * (P3 + z * P4);
-
-	/* Scale by 2**(k>>20). */
-	return (tv * twopk);
-}
diff --git a/libm/upstream-freebsd/lib/msun/src/s_expm1.c b/libm/upstream-freebsd/lib/msun/src/s_expm1.c
index 844f103..cdc225e 100644
--- a/libm/upstream-freebsd/lib/msun/src/s_expm1.c
+++ b/libm/upstream-freebsd/lib/msun/src/s_expm1.c
@@ -1,4 +1,3 @@
-/* @(#)s_expm1.c 5.1 93/09/24 */
 /*
  * ====================================================
  * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
@@ -10,9 +9,6 @@
  * ====================================================
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 /* expm1(x)
  * Returns exp(x)-1, the exponential of x minus 1.
  *
diff --git a/libm/upstream-freebsd/lib/msun/src/s_expm1f.c b/libm/upstream-freebsd/lib/msun/src/s_expm1f.c
index b47daac..6887bf2 100644
--- a/libm/upstream-freebsd/lib/msun/src/s_expm1f.c
+++ b/libm/upstream-freebsd/lib/msun/src/s_expm1f.c
@@ -13,9 +13,6 @@
  * ====================================================
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 #include <float.h>
 
 #include "math.h"
diff --git a/libm/upstream-freebsd/lib/msun/src/s_fabsl.c b/libm/upstream-freebsd/lib/msun/src/s_fabsl.c
deleted file mode 100644
index 5076d8a..0000000
--- a/libm/upstream-freebsd/lib/msun/src/s_fabsl.c
+++ /dev/null
@@ -1,45 +0,0 @@
-/*-
- * SPDX-License-Identifier: BSD-3-Clause
- *
- * Copyright (c) 2003 Dag-Erling Smørgrav
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer
- *    in this position and unchanged.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. The name of the author may not be used to endorse or promote products
- *    derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * $FreeBSD$
- */
-
-#include <math.h>
-
-#include "fpmath.h"
-
-long double
-fabsl(long double x)
-{
-	union IEEEl2bits u;
-
-	u.e = x;
-	u.bits.sign = 0;
-	return (u.e);
-}
diff --git a/libm/upstream-freebsd/lib/msun/src/s_fdim.c b/libm/upstream-freebsd/lib/msun/src/s_fdim.c
index c40c3e9..4f56ee4 100644
--- a/libm/upstream-freebsd/lib/msun/src/s_fdim.c
+++ b/libm/upstream-freebsd/lib/msun/src/s_fdim.c
@@ -1,5 +1,5 @@
 /*-
- * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+ * SPDX-License-Identifier: BSD-2-Clause
  *
  * Copyright (c) 2004 David Schultz <das@FreeBSD.ORG>
  * All rights reserved.
@@ -26,9 +26,6 @@
  * SUCH DAMAGE.
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 #include <math.h>
 
 #define	DECL(type, fn)			\
diff --git a/libm/upstream-freebsd/lib/msun/src/s_finite.c b/libm/upstream-freebsd/lib/msun/src/s_finite.c
index 4c51352..a3fd599 100644
--- a/libm/upstream-freebsd/lib/msun/src/s_finite.c
+++ b/libm/upstream-freebsd/lib/msun/src/s_finite.c
@@ -1,4 +1,3 @@
-/* @(#)s_finite.c 5.1 93/09/24 */
 /*
  * ====================================================
  * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
@@ -10,9 +9,6 @@
  * ====================================================
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 /*
  * finite(x) returns 1 is x is finite, else 0;
  * no branching!
diff --git a/libm/upstream-freebsd/lib/msun/src/s_finitef.c b/libm/upstream-freebsd/lib/msun/src/s_finitef.c
index c62239e..9a4a876 100644
--- a/libm/upstream-freebsd/lib/msun/src/s_finitef.c
+++ b/libm/upstream-freebsd/lib/msun/src/s_finitef.c
@@ -13,9 +13,6 @@
  * ====================================================
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 /*
  * finitef(x) returns 1 is x is finite, else 0;
  * no branching!
diff --git a/libm/upstream-freebsd/lib/msun/src/s_floor.c b/libm/upstream-freebsd/lib/msun/src/s_floor.c
index 65f696a..7ca65b1 100644
--- a/libm/upstream-freebsd/lib/msun/src/s_floor.c
+++ b/libm/upstream-freebsd/lib/msun/src/s_floor.c
@@ -1,4 +1,3 @@
-/* @(#)s_floor.c 5.1 93/09/24 */
 /*
  * ====================================================
  * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
@@ -10,9 +9,6 @@
  * ====================================================
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 /*
  * floor(x)
  * Return x rounded toward -inf to integral value
diff --git a/libm/upstream-freebsd/lib/msun/src/s_floorf.c b/libm/upstream-freebsd/lib/msun/src/s_floorf.c
index 6b510de..d497157 100644
--- a/libm/upstream-freebsd/lib/msun/src/s_floorf.c
+++ b/libm/upstream-freebsd/lib/msun/src/s_floorf.c
@@ -13,9 +13,6 @@
  * ====================================================
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 /*
  * floorf(x)
  * Return x rounded toward -inf to integral value
diff --git a/libm/upstream-freebsd/lib/msun/src/s_floorl.c b/libm/upstream-freebsd/lib/msun/src/s_floorl.c
index 6cec3e7..3b54cab 100644
--- a/libm/upstream-freebsd/lib/msun/src/s_floorl.c
+++ b/libm/upstream-freebsd/lib/msun/src/s_floorl.c
@@ -7,13 +7,8 @@
  * software is freely granted, provided that this notice
  * is preserved.
  * ====================================================
- *
- * From: @(#)s_floor.c 5.1 93/09/24
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 /*
  * floorl(x)
  * Return x rounded toward -inf to integral value
diff --git a/libm/upstream-freebsd/lib/msun/src/s_fma.c b/libm/upstream-freebsd/lib/msun/src/s_fma.c
index 95cffd0..23a8449 100644
--- a/libm/upstream-freebsd/lib/msun/src/s_fma.c
+++ b/libm/upstream-freebsd/lib/msun/src/s_fma.c
@@ -1,5 +1,5 @@
 /*-
- * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+ * SPDX-License-Identifier: BSD-2-Clause
  *
  * Copyright (c) 2005-2011 David Schultz <das@FreeBSD.ORG>
  * All rights reserved.
@@ -26,9 +26,6 @@
  * SUCH DAMAGE.
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 #include <fenv.h>
 #include <float.h>
 #include <math.h>
@@ -225,17 +222,17 @@
 		case FE_TONEAREST:
 			return (z);
 		case FE_TOWARDZERO:
-			if (x > 0.0 ^ y < 0.0 ^ z < 0.0)
+			if ((x > 0.0) ^ (y < 0.0) ^ (z < 0.0))
 				return (z);
 			else
 				return (nextafter(z, 0));
 		case FE_DOWNWARD:
-			if (x > 0.0 ^ y < 0.0)
+			if ((x > 0.0) ^ (y < 0.0))
 				return (z);
 			else
 				return (nextafter(z, -INFINITY));
 		default:	/* FE_UPWARD */
-			if (x > 0.0 ^ y < 0.0)
+			if ((x > 0.0) ^ (y < 0.0))
 				return (nextafter(z, INFINITY));
 			else
 				return (z);
@@ -247,7 +244,7 @@
 		zs = copysign(DBL_MIN, zs);
 
 	fesetround(FE_TONEAREST);
-	/* work around clang bug 8100 */
+	/* work around clang issue #8472 */
 	volatile double vxs = xs;
 
 	/*
@@ -263,14 +260,14 @@
 
 	spread = ex + ey;
 
-	if (r.hi == 0.0) {
+	if (r.hi == 0.0 && xy.lo == 0) {
 		/*
 		 * When the addends cancel to 0, ensure that the result has
 		 * the correct sign.
 		 */
 		fesetround(oround);
 		volatile double vzs = zs; /* XXX gcc CSE bug workaround */
-		return (xy.hi + vzs + ldexp(xy.lo, spread));
+		return (xy.hi + vzs);
 	}
 
 	if (oround != FE_TONEAREST) {
@@ -279,7 +276,7 @@
 		 * rounding modes.
 		 */
 		fesetround(oround);
-		/* work around clang bug 8100 */
+		/* work around clang issue #8472 */
 		volatile double vrlo = r.lo;
 		adj = vrlo + xy.lo;
 		return (ldexp(r.hi + adj, spread));
diff --git a/libm/upstream-freebsd/lib/msun/src/s_fmaf.c b/libm/upstream-freebsd/lib/msun/src/s_fmaf.c
index 4591cc2..5f3d5d1 100644
--- a/libm/upstream-freebsd/lib/msun/src/s_fmaf.c
+++ b/libm/upstream-freebsd/lib/msun/src/s_fmaf.c
@@ -1,5 +1,5 @@
 /*-
- * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+ * SPDX-License-Identifier: BSD-2-Clause
  *
  * Copyright (c) 2005-2011 David Schultz <das@FreeBSD.ORG>
  * All rights reserved.
@@ -26,9 +26,6 @@
  * SUCH DAMAGE.
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 #include <fenv.h>
 
 #include "math.h"
diff --git a/libm/upstream-freebsd/lib/msun/src/s_fmal.c b/libm/upstream-freebsd/lib/msun/src/s_fmal.c
index a379346..2fca206 100644
--- a/libm/upstream-freebsd/lib/msun/src/s_fmal.c
+++ b/libm/upstream-freebsd/lib/msun/src/s_fmal.c
@@ -1,5 +1,5 @@
 /*-
- * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+ * SPDX-License-Identifier: BSD-2-Clause
  *
  * Copyright (c) 2005-2011 David Schultz <das@FreeBSD.ORG>
  * All rights reserved.
@@ -26,9 +26,6 @@
  * SUCH DAMAGE.
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 #include <fenv.h>
 #include <float.h>
 #include <math.h>
@@ -206,17 +203,17 @@
 		case FE_TONEAREST:
 			return (z);
 		case FE_TOWARDZERO:
-			if (x > 0.0 ^ y < 0.0 ^ z < 0.0)
+			if ((x > 0.0) ^ (y < 0.0) ^ (z < 0.0))
 				return (z);
 			else
 				return (nextafterl(z, 0));
 		case FE_DOWNWARD:
-			if (x > 0.0 ^ y < 0.0)
+			if ((x > 0.0) ^ (y < 0.0))
 				return (z);
 			else
 				return (nextafterl(z, -INFINITY));
 		default:	/* FE_UPWARD */
-			if (x > 0.0 ^ y < 0.0)
+			if ((x > 0.0) ^ (y < 0.0))
 				return (nextafterl(z, INFINITY));
 			else
 				return (z);
@@ -228,7 +225,7 @@
 		zs = copysignl(LDBL_MIN, zs);
 
 	fesetround(FE_TONEAREST);
-	/* work around clang bug 8100 */
+	/* work around clang issue #8472 */
 	volatile long double vxs = xs;
 
 	/*
@@ -244,14 +241,14 @@
 
 	spread = ex + ey;
 
-	if (r.hi == 0.0) {
+	if (r.hi == 0.0 && xy.lo == 0) {
 		/*
 		 * When the addends cancel to 0, ensure that the result has
 		 * the correct sign.
 		 */
 		fesetround(oround);
 		volatile long double vzs = zs; /* XXX gcc CSE bug workaround */
-		return (xy.hi + vzs + ldexpl(xy.lo, spread));
+		return (xy.hi + vzs);
 	}
 
 	if (oround != FE_TONEAREST) {
@@ -260,7 +257,7 @@
 		 * rounding modes.
 		 */
 		fesetround(oround);
-		/* work around clang bug 8100 */
+		/* work around clang issue #8472 */
 		volatile long double vrlo = r.lo;
 		adj = vrlo + xy.lo;
 		return (ldexpl(r.hi + adj, spread));
diff --git a/libm/upstream-freebsd/lib/msun/src/s_fmax.c b/libm/upstream-freebsd/lib/msun/src/s_fmax.c
index b53b1e6..5d437fc 100644
--- a/libm/upstream-freebsd/lib/msun/src/s_fmax.c
+++ b/libm/upstream-freebsd/lib/msun/src/s_fmax.c
@@ -1,5 +1,5 @@
 /*-
- * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+ * SPDX-License-Identifier: BSD-2-Clause
  *
  * Copyright (c) 2004 David Schultz <das@FreeBSD.ORG>
  * All rights reserved.
@@ -26,9 +26,6 @@
  * SUCH DAMAGE.
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 #include <float.h>
 #include <math.h>
 
diff --git a/libm/upstream-freebsd/lib/msun/src/s_fmaxf.c b/libm/upstream-freebsd/lib/msun/src/s_fmaxf.c
index 8d3d14f..1572572 100644
--- a/libm/upstream-freebsd/lib/msun/src/s_fmaxf.c
+++ b/libm/upstream-freebsd/lib/msun/src/s_fmaxf.c
@@ -1,5 +1,5 @@
 /*-
- * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+ * SPDX-License-Identifier: BSD-2-Clause
  *
  * Copyright (c) 2004 David Schultz <das@FreeBSD.ORG>
  * All rights reserved.
@@ -26,9 +26,6 @@
  * SUCH DAMAGE.
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 #include <math.h>
 
 #include "fpmath.h"
diff --git a/libm/upstream-freebsd/lib/msun/src/s_fmaxl.c b/libm/upstream-freebsd/lib/msun/src/s_fmaxl.c
index c0d7c88..73e2a4b 100644
--- a/libm/upstream-freebsd/lib/msun/src/s_fmaxl.c
+++ b/libm/upstream-freebsd/lib/msun/src/s_fmaxl.c
@@ -1,5 +1,5 @@
 /*-
- * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+ * SPDX-License-Identifier: BSD-2-Clause
  *
  * Copyright (c) 2004 David Schultz <das@FreeBSD.ORG>
  * All rights reserved.
@@ -26,9 +26,6 @@
  * SUCH DAMAGE.
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 #include <math.h>
 
 #include "fpmath.h"
diff --git a/libm/upstream-freebsd/lib/msun/src/s_fmin.c b/libm/upstream-freebsd/lib/msun/src/s_fmin.c
index 53f36c1..a349e5d 100644
--- a/libm/upstream-freebsd/lib/msun/src/s_fmin.c
+++ b/libm/upstream-freebsd/lib/msun/src/s_fmin.c
@@ -1,5 +1,5 @@
 /*-
- * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+ * SPDX-License-Identifier: BSD-2-Clause
  *
  * Copyright (c) 2004 David Schultz <das@FreeBSD.ORG>
  * All rights reserved.
@@ -26,9 +26,6 @@
  * SUCH DAMAGE.
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 #include <float.h>
 #include <math.h>
 
diff --git a/libm/upstream-freebsd/lib/msun/src/s_fminf.c b/libm/upstream-freebsd/lib/msun/src/s_fminf.c
index 58b6a48..5c2537e 100644
--- a/libm/upstream-freebsd/lib/msun/src/s_fminf.c
+++ b/libm/upstream-freebsd/lib/msun/src/s_fminf.c
@@ -1,5 +1,5 @@
 /*-
- * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+ * SPDX-License-Identifier: BSD-2-Clause
  *
  * Copyright (c) 2004 David Schultz <das@FreeBSD.ORG>
  * All rights reserved.
@@ -26,9 +26,6 @@
  * SUCH DAMAGE.
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 #include <math.h>
 
 #include "fpmath.h"
diff --git a/libm/upstream-freebsd/lib/msun/src/s_fminl.c b/libm/upstream-freebsd/lib/msun/src/s_fminl.c
index 97604b3..7ac17e3 100644
--- a/libm/upstream-freebsd/lib/msun/src/s_fminl.c
+++ b/libm/upstream-freebsd/lib/msun/src/s_fminl.c
@@ -1,5 +1,5 @@
 /*-
- * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+ * SPDX-License-Identifier: BSD-2-Clause
  *
  * Copyright (c) 2004 David Schultz <das@FreeBSD.ORG>
  * All rights reserved.
@@ -26,9 +26,6 @@
  * SUCH DAMAGE.
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 #include <math.h>
 
 #include "fpmath.h"
diff --git a/libm/upstream-freebsd/lib/msun/src/s_frexp.c b/libm/upstream-freebsd/lib/msun/src/s_frexp.c
index 318a991..90aea67 100644
--- a/libm/upstream-freebsd/lib/msun/src/s_frexp.c
+++ b/libm/upstream-freebsd/lib/msun/src/s_frexp.c
@@ -1,4 +1,3 @@
-/* @(#)s_frexp.c 5.1 93/09/24 */
 /*
  * ====================================================
  * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
@@ -10,9 +9,6 @@
  * ====================================================
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 /*
  * for non-zero x
  *	x = frexp(arg,&exp);
diff --git a/libm/upstream-freebsd/lib/msun/src/s_frexpf.c b/libm/upstream-freebsd/lib/msun/src/s_frexpf.c
index 5a7c486..bca27b5 100644
--- a/libm/upstream-freebsd/lib/msun/src/s_frexpf.c
+++ b/libm/upstream-freebsd/lib/msun/src/s_frexpf.c
@@ -13,9 +13,6 @@
  * ====================================================
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 #include "math.h"
 #include "math_private.h"
 
diff --git a/libm/upstream-freebsd/lib/msun/src/s_frexpl.c b/libm/upstream-freebsd/lib/msun/src/s_frexpl.c
index 66e284f..32f1264 100644
--- a/libm/upstream-freebsd/lib/msun/src/s_frexpl.c
+++ b/libm/upstream-freebsd/lib/msun/src/s_frexpl.c
@@ -1,5 +1,5 @@
 /*-
- * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+ * SPDX-License-Identifier: BSD-2-Clause
  *
  * Copyright (c) 2004-2005 David Schultz <das@FreeBSD.ORG>
  * All rights reserved.
@@ -24,8 +24,6 @@
  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
- *
- * $FreeBSD$
  */
 
 #include <float.h>
diff --git a/libm/upstream-freebsd/lib/msun/src/s_ilogb.c b/libm/upstream-freebsd/lib/msun/src/s_ilogb.c
index a930bc9..27e0bbb 100644
--- a/libm/upstream-freebsd/lib/msun/src/s_ilogb.c
+++ b/libm/upstream-freebsd/lib/msun/src/s_ilogb.c
@@ -1,4 +1,3 @@
-/* @(#)s_ilogb.c 5.1 93/09/24 */
 /*
  * ====================================================
  * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
@@ -10,9 +9,6 @@
  * ====================================================
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 /* ilogb(double x)
  * return the binary exponent of non-zero x
  * ilogb(0) = FP_ILOGB0
diff --git a/libm/upstream-freebsd/lib/msun/src/s_ilogbf.c b/libm/upstream-freebsd/lib/msun/src/s_ilogbf.c
index 93fe295..e0f8fee 100644
--- a/libm/upstream-freebsd/lib/msun/src/s_ilogbf.c
+++ b/libm/upstream-freebsd/lib/msun/src/s_ilogbf.c
@@ -13,9 +13,6 @@
  * ====================================================
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 #include <limits.h>
 
 #include "math.h"
diff --git a/libm/upstream-freebsd/lib/msun/src/s_ilogbl.c b/libm/upstream-freebsd/lib/msun/src/s_ilogbl.c
index 3211f44..4d8fb8f 100644
--- a/libm/upstream-freebsd/lib/msun/src/s_ilogbl.c
+++ b/libm/upstream-freebsd/lib/msun/src/s_ilogbl.c
@@ -1,5 +1,4 @@
 /*
- * From: @(#)s_ilogb.c 5.1 93/09/24
  * ====================================================
  * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
  *
@@ -10,9 +9,6 @@
  * ====================================================
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 #include <float.h>
 #include <limits.h>
 #include <math.h>
diff --git a/libm/upstream-freebsd/lib/msun/src/s_llrint.c b/libm/upstream-freebsd/lib/msun/src/s_llrint.c
index 7c959ec..5e27603 100644
--- a/libm/upstream-freebsd/lib/msun/src/s_llrint.c
+++ b/libm/upstream-freebsd/lib/msun/src/s_llrint.c
@@ -1,6 +1,3 @@
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 #define type		double
 #define	roundit		rint
 #define dtype		long long
diff --git a/libm/upstream-freebsd/lib/msun/src/s_llrintf.c b/libm/upstream-freebsd/lib/msun/src/s_llrintf.c
index 7ec6015..b117f7c 100644
--- a/libm/upstream-freebsd/lib/msun/src/s_llrintf.c
+++ b/libm/upstream-freebsd/lib/msun/src/s_llrintf.c
@@ -1,6 +1,3 @@
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 #define type		float
 #define	roundit		rintf
 #define dtype		long long
diff --git a/libm/upstream-freebsd/lib/msun/src/s_llrintl.c b/libm/upstream-freebsd/lib/msun/src/s_llrintl.c
index 6ef8375..82f4529 100644
--- a/libm/upstream-freebsd/lib/msun/src/s_llrintl.c
+++ b/libm/upstream-freebsd/lib/msun/src/s_llrintl.c
@@ -1,6 +1,3 @@
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 #define type		long double
 #define	roundit		rintl
 #define dtype		long long
diff --git a/libm/upstream-freebsd/lib/msun/src/s_llround.c b/libm/upstream-freebsd/lib/msun/src/s_llround.c
index 827dfc1..3983ce1 100644
--- a/libm/upstream-freebsd/lib/msun/src/s_llround.c
+++ b/libm/upstream-freebsd/lib/msun/src/s_llround.c
@@ -1,6 +1,3 @@
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 #define type		double
 #define	roundit		round
 #define dtype		long long
diff --git a/libm/upstream-freebsd/lib/msun/src/s_llroundf.c b/libm/upstream-freebsd/lib/msun/src/s_llroundf.c
index c037a18..827d915 100644
--- a/libm/upstream-freebsd/lib/msun/src/s_llroundf.c
+++ b/libm/upstream-freebsd/lib/msun/src/s_llroundf.c
@@ -1,6 +1,3 @@
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 #define type		float
 #define	roundit		roundf
 #define dtype		long long
diff --git a/libm/upstream-freebsd/lib/msun/src/s_llroundl.c b/libm/upstream-freebsd/lib/msun/src/s_llroundl.c
index 02c44eb..40cad84 100644
--- a/libm/upstream-freebsd/lib/msun/src/s_llroundl.c
+++ b/libm/upstream-freebsd/lib/msun/src/s_llroundl.c
@@ -1,6 +1,3 @@
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 #define type		long double
 #define	roundit		roundl
 #define dtype		long long
diff --git a/libm/upstream-freebsd/lib/msun/src/s_log1p.c b/libm/upstream-freebsd/lib/msun/src/s_log1p.c
index 3cc77bd..7131bea 100644
--- a/libm/upstream-freebsd/lib/msun/src/s_log1p.c
+++ b/libm/upstream-freebsd/lib/msun/src/s_log1p.c
@@ -1,4 +1,3 @@
-/* @(#)s_log1p.c 5.1 93/09/24 */
 /*
  * ====================================================
  * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
@@ -10,9 +9,6 @@
  * ====================================================
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 /* double log1p(double x)
  *
  * Method :
diff --git a/libm/upstream-freebsd/lib/msun/src/s_log1pf.c b/libm/upstream-freebsd/lib/msun/src/s_log1pf.c
index df04c67..dad567b 100644
--- a/libm/upstream-freebsd/lib/msun/src/s_log1pf.c
+++ b/libm/upstream-freebsd/lib/msun/src/s_log1pf.c
@@ -13,9 +13,6 @@
  * ====================================================
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 #include <float.h>
 
 #include "math.h"
diff --git a/libm/upstream-freebsd/lib/msun/src/s_logb.c b/libm/upstream-freebsd/lib/msun/src/s_logb.c
index a47e354..ec777fd 100644
--- a/libm/upstream-freebsd/lib/msun/src/s_logb.c
+++ b/libm/upstream-freebsd/lib/msun/src/s_logb.c
@@ -1,4 +1,3 @@
-/* @(#)s_logb.c 5.1 93/09/24 */
 /*
  * ====================================================
  * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
@@ -10,9 +9,6 @@
  * ====================================================
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 /*
  * double logb(x)
  * IEEE 754 logb. Included to pass IEEE test suite. Not recommend.
diff --git a/libm/upstream-freebsd/lib/msun/src/s_logbf.c b/libm/upstream-freebsd/lib/msun/src/s_logbf.c
index 3ab190d..0416a9c 100644
--- a/libm/upstream-freebsd/lib/msun/src/s_logbf.c
+++ b/libm/upstream-freebsd/lib/msun/src/s_logbf.c
@@ -13,9 +13,6 @@
  * ====================================================
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 #include "math.h"
 #include "math_private.h"
 
diff --git a/libm/upstream-freebsd/lib/msun/src/s_logbl.c b/libm/upstream-freebsd/lib/msun/src/s_logbl.c
index ee1a91f..1641dfb 100644
--- a/libm/upstream-freebsd/lib/msun/src/s_logbl.c
+++ b/libm/upstream-freebsd/lib/msun/src/s_logbl.c
@@ -1,5 +1,4 @@
 /*
- * From: @(#)s_ilogb.c 5.1 93/09/24
  * ====================================================
  * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
  *
@@ -10,9 +9,6 @@
  * ====================================================
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 #include <float.h>
 #include <limits.h>
 #include <math.h>
diff --git a/libm/upstream-freebsd/lib/msun/src/s_lrint.c b/libm/upstream-freebsd/lib/msun/src/s_lrint.c
index ad9b978..b1e9654 100644
--- a/libm/upstream-freebsd/lib/msun/src/s_lrint.c
+++ b/libm/upstream-freebsd/lib/msun/src/s_lrint.c
@@ -1,5 +1,5 @@
 /*-
- * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+ * SPDX-License-Identifier: BSD-2-Clause
  *
  * Copyright (c) 2005 David Schultz <das@FreeBSD.ORG>
  * All rights reserved.
@@ -26,12 +26,10 @@
  * SUCH DAMAGE.
  */
 
-#include <sys/cdefs.h>
 #include <fenv.h>
 #include <math.h>
 
 #ifndef type
-__FBSDID("$FreeBSD$");
 #define type		double
 #define	roundit		rint
 #define dtype		long
diff --git a/libm/upstream-freebsd/lib/msun/src/s_lrintf.c b/libm/upstream-freebsd/lib/msun/src/s_lrintf.c
index a757ded..1c040e8 100644
--- a/libm/upstream-freebsd/lib/msun/src/s_lrintf.c
+++ b/libm/upstream-freebsd/lib/msun/src/s_lrintf.c
@@ -1,6 +1,3 @@
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 #define type		float
 #define	roundit		rintf
 #define dtype		long
diff --git a/libm/upstream-freebsd/lib/msun/src/s_lrintl.c b/libm/upstream-freebsd/lib/msun/src/s_lrintl.c
index 497b442..91614e8 100644
--- a/libm/upstream-freebsd/lib/msun/src/s_lrintl.c
+++ b/libm/upstream-freebsd/lib/msun/src/s_lrintl.c
@@ -1,6 +1,3 @@
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 #define type		long double
 #define	roundit		rintl
 #define dtype		long
diff --git a/libm/upstream-freebsd/lib/msun/src/s_lround.c b/libm/upstream-freebsd/lib/msun/src/s_lround.c
index 1dd8e69..ae2f5ce 100644
--- a/libm/upstream-freebsd/lib/msun/src/s_lround.c
+++ b/libm/upstream-freebsd/lib/msun/src/s_lround.c
@@ -1,5 +1,5 @@
 /*-
- * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+ * SPDX-License-Identifier: BSD-2-Clause
  *
  * Copyright (c) 2005 David Schultz <das@FreeBSD.ORG>
  * All rights reserved.
@@ -26,13 +26,11 @@
  * SUCH DAMAGE.
  */
 
-#include <sys/cdefs.h>
 #include <sys/limits.h>
 #include <fenv.h>
 #include <math.h>
 
 #ifndef type
-__FBSDID("$FreeBSD$");
 #define type		double
 #define	roundit		round
 #define dtype		long
diff --git a/libm/upstream-freebsd/lib/msun/src/s_lroundf.c b/libm/upstream-freebsd/lib/msun/src/s_lroundf.c
index e24fe7f..86e63cc 100644
--- a/libm/upstream-freebsd/lib/msun/src/s_lroundf.c
+++ b/libm/upstream-freebsd/lib/msun/src/s_lroundf.c
@@ -1,6 +1,3 @@
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 #define type		float
 #define	roundit		roundf
 #define dtype		long
diff --git a/libm/upstream-freebsd/lib/msun/src/s_lroundl.c b/libm/upstream-freebsd/lib/msun/src/s_lroundl.c
index e410827..57a2e90 100644
--- a/libm/upstream-freebsd/lib/msun/src/s_lroundl.c
+++ b/libm/upstream-freebsd/lib/msun/src/s_lroundl.c
@@ -1,6 +1,3 @@
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 #define type		long double
 #define	roundit		roundl
 #define dtype		long
diff --git a/libm/upstream-freebsd/lib/msun/src/s_modf.c b/libm/upstream-freebsd/lib/msun/src/s_modf.c
index ab13191..6ee2d5a 100644
--- a/libm/upstream-freebsd/lib/msun/src/s_modf.c
+++ b/libm/upstream-freebsd/lib/msun/src/s_modf.c
@@ -1,4 +1,3 @@
-/* @(#)s_modf.c 5.1 93/09/24 */
 /*
  * ====================================================
  * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
@@ -10,10 +9,6 @@
  * ====================================================
  */
 
-#ifndef lint
-static char rcsid[] = "$FreeBSD$";
-#endif
-
 /*
  * modf(double x, double *iptr)
  * return fraction part of x, and return x's integral part in *iptr.
diff --git a/libm/upstream-freebsd/lib/msun/src/s_modff.c b/libm/upstream-freebsd/lib/msun/src/s_modff.c
index 062259c..39f6c1c 100644
--- a/libm/upstream-freebsd/lib/msun/src/s_modff.c
+++ b/libm/upstream-freebsd/lib/msun/src/s_modff.c
@@ -13,9 +13,6 @@
  * ====================================================
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 #include "math.h"
 #include "math_private.h"
 
diff --git a/libm/upstream-freebsd/lib/msun/src/s_modfl.c b/libm/upstream-freebsd/lib/msun/src/s_modfl.c
index 2d83bbe..32470eb 100644
--- a/libm/upstream-freebsd/lib/msun/src/s_modfl.c
+++ b/libm/upstream-freebsd/lib/msun/src/s_modfl.c
@@ -1,5 +1,5 @@
 /*-
- * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+ * SPDX-License-Identifier: BSD-2-Clause
  *
  * Copyright (c) 2007 David Schultz <das@FreeBSD.ORG>
  * All rights reserved.
@@ -34,8 +34,6 @@
  * software is freely granted, provided that this notice
  * is preserved.
  * ====================================================
- *
- * $FreeBSD$
  */
 
 #include <float.h>
diff --git a/libm/upstream-freebsd/lib/msun/src/s_nan.c b/libm/upstream-freebsd/lib/msun/src/s_nan.c
index 1769244..d129a55 100644
--- a/libm/upstream-freebsd/lib/msun/src/s_nan.c
+++ b/libm/upstream-freebsd/lib/msun/src/s_nan.c
@@ -1,5 +1,5 @@
 /*-
- * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+ * SPDX-License-Identifier: BSD-2-Clause
  *
  * Copyright (c) 2007 David Schultz
  * All rights reserved.
@@ -24,8 +24,6 @@
  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
- *
- * $FreeBSD$
  */
 
 #include <sys/endian.h>
diff --git a/libm/upstream-freebsd/lib/msun/src/s_nearbyint.c b/libm/upstream-freebsd/lib/msun/src/s_nearbyint.c
index 796dbaf..3dcaf98 100644
--- a/libm/upstream-freebsd/lib/msun/src/s_nearbyint.c
+++ b/libm/upstream-freebsd/lib/msun/src/s_nearbyint.c
@@ -1,5 +1,5 @@
 /*-
- * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+ * SPDX-License-Identifier: BSD-2-Clause
  *
  * Copyright (c) 2004 David Schultz <das@FreeBSD.ORG>
  * All rights reserved.
@@ -26,9 +26,6 @@
  * SUCH DAMAGE.
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 #include <fenv.h>
 #include <math.h>
 
diff --git a/libm/upstream-freebsd/lib/msun/src/s_nextafter.c b/libm/upstream-freebsd/lib/msun/src/s_nextafter.c
index 52dd21c..1b394e5 100644
--- a/libm/upstream-freebsd/lib/msun/src/s_nextafter.c
+++ b/libm/upstream-freebsd/lib/msun/src/s_nextafter.c
@@ -1,4 +1,3 @@
-/* @(#)s_nextafter.c 5.1 93/09/24 */
 /*
  * ====================================================
  * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
@@ -10,9 +9,6 @@
  * ====================================================
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 /* IEEE functions
  *	nextafter(x,y)
  *	return the next machine floating-point number of x in the
diff --git a/libm/upstream-freebsd/lib/msun/src/s_nextafterf.c b/libm/upstream-freebsd/lib/msun/src/s_nextafterf.c
index 96e21ef..418b126 100644
--- a/libm/upstream-freebsd/lib/msun/src/s_nextafterf.c
+++ b/libm/upstream-freebsd/lib/msun/src/s_nextafterf.c
@@ -13,9 +13,6 @@
  * ====================================================
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 #include "math.h"
 #include "math_private.h"
 
diff --git a/libm/upstream-freebsd/lib/msun/src/s_nextafterl.c b/libm/upstream-freebsd/lib/msun/src/s_nextafterl.c
index 9c61a43..fe5a010 100644
--- a/libm/upstream-freebsd/lib/msun/src/s_nextafterl.c
+++ b/libm/upstream-freebsd/lib/msun/src/s_nextafterl.c
@@ -1,4 +1,3 @@
-/* @(#)s_nextafter.c 5.1 93/09/24 */
 /*
  * ====================================================
  * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
@@ -10,9 +9,6 @@
  * ====================================================
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 /* IEEE functions
  *	nextafter(x,y)
  *	return the next machine floating-point number of x in the
diff --git a/libm/upstream-freebsd/lib/msun/src/s_nexttoward.c b/libm/upstream-freebsd/lib/msun/src/s_nexttoward.c
index b2a50d3..5482dc2 100644
--- a/libm/upstream-freebsd/lib/msun/src/s_nexttoward.c
+++ b/libm/upstream-freebsd/lib/msun/src/s_nexttoward.c
@@ -1,4 +1,3 @@
-/* @(#)s_nextafter.c 5.1 93/09/24 */
 /*
  * ====================================================
  * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
@@ -10,9 +9,6 @@
  * ====================================================
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 /*
  * We assume that a long double has a 15-bit exponent.  On systems
  * where long double is the same as double, nexttoward() is an alias
diff --git a/libm/upstream-freebsd/lib/msun/src/s_nexttowardf.c b/libm/upstream-freebsd/lib/msun/src/s_nexttowardf.c
index 9ddfff9..05c89f4 100644
--- a/libm/upstream-freebsd/lib/msun/src/s_nexttowardf.c
+++ b/libm/upstream-freebsd/lib/msun/src/s_nexttowardf.c
@@ -9,9 +9,6 @@
  * ====================================================
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 #include <float.h>
 
 #include "fpmath.h"
diff --git a/libm/upstream-freebsd/lib/msun/src/s_remquo.c b/libm/upstream-freebsd/lib/msun/src/s_remquo.c
index 6a111df..206d290 100644
--- a/libm/upstream-freebsd/lib/msun/src/s_remquo.c
+++ b/libm/upstream-freebsd/lib/msun/src/s_remquo.c
@@ -1,4 +1,3 @@
-/* @(#)e_fmod.c 1.3 95/01/18 */
 /*-
  * ====================================================
  * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
@@ -10,9 +9,6 @@
  * ====================================================
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 #include <float.h>
 
 #include "math.h"
diff --git a/libm/upstream-freebsd/lib/msun/src/s_remquof.c b/libm/upstream-freebsd/lib/msun/src/s_remquof.c
index f4c1016..9cd1485 100644
--- a/libm/upstream-freebsd/lib/msun/src/s_remquof.c
+++ b/libm/upstream-freebsd/lib/msun/src/s_remquof.c
@@ -1,4 +1,3 @@
-/* @(#)e_fmod.c 1.3 95/01/18 */
 /*-
  * ====================================================
  * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
@@ -10,9 +9,6 @@
  * ====================================================
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 #include "math.h"
 #include "math_private.h"
 
diff --git a/libm/upstream-freebsd/lib/msun/src/s_remquol.c b/libm/upstream-freebsd/lib/msun/src/s_remquol.c
index a9f5813..0dadcea 100644
--- a/libm/upstream-freebsd/lib/msun/src/s_remquol.c
+++ b/libm/upstream-freebsd/lib/msun/src/s_remquol.c
@@ -1,4 +1,3 @@
-/* @(#)e_fmod.c 1.3 95/01/18 */
 /*-
  * ====================================================
  * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
@@ -10,9 +9,6 @@
  * ====================================================
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 #include <float.h>
 #include <stdint.h>
 
diff --git a/libm/upstream-freebsd/lib/msun/src/s_rint.c b/libm/upstream-freebsd/lib/msun/src/s_rint.c
index c56f8fb..d82a9d0 100644
--- a/libm/upstream-freebsd/lib/msun/src/s_rint.c
+++ b/libm/upstream-freebsd/lib/msun/src/s_rint.c
@@ -1,4 +1,3 @@
-/* @(#)s_rint.c 5.1 93/09/24 */
 /*
  * ====================================================
  * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
@@ -10,9 +9,6 @@
  * ====================================================
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 /*
  * rint(x)
  * Return x rounded to integral value according to the prevailing
diff --git a/libm/upstream-freebsd/lib/msun/src/s_rintf.c b/libm/upstream-freebsd/lib/msun/src/s_rintf.c
index f8743a4..3f0cb90 100644
--- a/libm/upstream-freebsd/lib/msun/src/s_rintf.c
+++ b/libm/upstream-freebsd/lib/msun/src/s_rintf.c
@@ -13,9 +13,6 @@
  * ====================================================
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 #include <float.h>
 #include <stdint.h>
 
diff --git a/libm/upstream-freebsd/lib/msun/src/s_rintl.c b/libm/upstream-freebsd/lib/msun/src/s_rintl.c
index 1e9824d..72c9cab 100644
--- a/libm/upstream-freebsd/lib/msun/src/s_rintl.c
+++ b/libm/upstream-freebsd/lib/msun/src/s_rintl.c
@@ -1,5 +1,5 @@
 /*-
- * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+ * SPDX-License-Identifier: BSD-2-Clause
  *
  * Copyright (c) 2008 David Schultz <das@FreeBSD.ORG>
  * All rights reserved.
@@ -26,9 +26,6 @@
  * SUCH DAMAGE.
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 #include <float.h>
 #include <math.h>
 
diff --git a/libm/upstream-freebsd/lib/msun/src/s_round.c b/libm/upstream-freebsd/lib/msun/src/s_round.c
index ca25f8e..c1b55f5 100644
--- a/libm/upstream-freebsd/lib/msun/src/s_round.c
+++ b/libm/upstream-freebsd/lib/msun/src/s_round.c
@@ -1,5 +1,5 @@
 /*-
- * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+ * SPDX-License-Identifier: BSD-2-Clause
  *
  * Copyright (c) 2003, Steven G. Kargl
  * All rights reserved.
@@ -26,9 +26,6 @@
  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 #include <float.h>
 
 #include "math.h"
diff --git a/libm/upstream-freebsd/lib/msun/src/s_roundf.c b/libm/upstream-freebsd/lib/msun/src/s_roundf.c
index 5bbf6b3..7c09e09 100644
--- a/libm/upstream-freebsd/lib/msun/src/s_roundf.c
+++ b/libm/upstream-freebsd/lib/msun/src/s_roundf.c
@@ -1,5 +1,5 @@
 /*-
- * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+ * SPDX-License-Identifier: BSD-2-Clause
  *
  * Copyright (c) 2003, Steven G. Kargl
  * All rights reserved.
@@ -26,9 +26,6 @@
  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 #include "math.h"
 #include "math_private.h"
 
diff --git a/libm/upstream-freebsd/lib/msun/src/s_roundl.c b/libm/upstream-freebsd/lib/msun/src/s_roundl.c
index 8d1c02a..bc5dfe5 100644
--- a/libm/upstream-freebsd/lib/msun/src/s_roundl.c
+++ b/libm/upstream-freebsd/lib/msun/src/s_roundl.c
@@ -1,5 +1,5 @@
 /*-
- * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+ * SPDX-License-Identifier: BSD-2-Clause
  *
  * Copyright (c) 2003, Steven G. Kargl
  * All rights reserved.
@@ -26,9 +26,6 @@
  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 #include <float.h>
 #ifdef __i386__
 #include <ieeefp.h>
diff --git a/libm/upstream-freebsd/lib/msun/src/s_scalbln.c b/libm/upstream-freebsd/lib/msun/src/s_scalbln.c
index c27420c..42e4669 100644
--- a/libm/upstream-freebsd/lib/msun/src/s_scalbln.c
+++ b/libm/upstream-freebsd/lib/msun/src/s_scalbln.c
@@ -1,5 +1,5 @@
 /*-
- * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+ * SPDX-License-Identifier: BSD-2-Clause
  *
  * Copyright (c) 2004 David Schultz <das@FreeBSD.ORG>
  * All rights reserved.
@@ -26,9 +26,6 @@
  * SUCH DAMAGE.
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 #include <math.h>
 
 #define	NMAX	65536
diff --git a/libm/upstream-freebsd/lib/msun/src/s_significand.c b/libm/upstream-freebsd/lib/msun/src/s_significand.c
index 356e300..62571bb 100644
--- a/libm/upstream-freebsd/lib/msun/src/s_significand.c
+++ b/libm/upstream-freebsd/lib/msun/src/s_significand.c
@@ -1,4 +1,3 @@
-/* @(#)s_signif.c 5.1 93/09/24 */
 /*
  * ====================================================
  * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
@@ -10,9 +9,6 @@
  * ====================================================
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 /*
  * significand(x) computes just
  * 	scalb(x, (double) -ilogb(x)),
@@ -25,5 +21,5 @@
 double
 significand(double x)
 {
-	return __ieee754_scalb(x,(double) -ilogb(x));
+	return scalb(x,(double) -ilogb(x));
 }
diff --git a/libm/upstream-freebsd/lib/msun/src/s_significandf.c b/libm/upstream-freebsd/lib/msun/src/s_significandf.c
index ad030e2..3cdaa4d 100644
--- a/libm/upstream-freebsd/lib/msun/src/s_significandf.c
+++ b/libm/upstream-freebsd/lib/msun/src/s_significandf.c
@@ -13,14 +13,11 @@
  * ====================================================
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 #include "math.h"
 #include "math_private.h"
 
 float
 significandf(float x)
 {
-	return __ieee754_scalbf(x,(float) -ilogbf(x));
+	return scalbf(x,(float) -ilogbf(x));
 }
diff --git a/libm/upstream-freebsd/lib/msun/src/s_sin.c b/libm/upstream-freebsd/lib/msun/src/s_sin.c
index 17ea846..614bcc2 100644
--- a/libm/upstream-freebsd/lib/msun/src/s_sin.c
+++ b/libm/upstream-freebsd/lib/msun/src/s_sin.c
@@ -1,4 +1,3 @@
-/* @(#)s_sin.c 5.1 93/09/24 */
 /*
  * ====================================================
  * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
@@ -10,9 +9,6 @@
  * ====================================================
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 /* sin(x)
  * Return sine function of x.
  *
diff --git a/libm/upstream-freebsd/lib/msun/src/s_sincos.c b/libm/upstream-freebsd/lib/msun/src/s_sincos.c
index 85e8d74..4e819ea 100644
--- a/libm/upstream-freebsd/lib/msun/src/s_sincos.c
+++ b/libm/upstream-freebsd/lib/msun/src/s_sincos.c
@@ -12,9 +12,6 @@
  * algorithms are contained in the original files.
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 #include <float.h>
 
 #include "math.h"
diff --git a/libm/upstream-freebsd/lib/msun/src/s_sincosf.c b/libm/upstream-freebsd/lib/msun/src/s_sincosf.c
deleted file mode 100644
index 755ff05..0000000
--- a/libm/upstream-freebsd/lib/msun/src/s_sincosf.c
+++ /dev/null
@@ -1,126 +0,0 @@
-/*-
- * ====================================================
- * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
- *
- * Developed at SunPro, a Sun Microsystems, Inc. business.
- * Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice
- * is preserved.
- * ====================================================
- */
-
-/* s_sincosf.c -- float version of s_sincos.c.
- * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com.
- * Optimized by Bruce D. Evans.
- * Merged s_sinf.c and s_cosf.c by Steven G. Kargl.
- */
-
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
-#include <float.h>
-
-#include "math.h"
-#define INLINE_REM_PIO2F
-#include "math_private.h"
-#include "e_rem_pio2f.c"
-#include "k_sincosf.h"
-
-/* Small multiples of pi/2 rounded to double precision. */
-static const double
-p1pio2 = 1*M_PI_2,			/* 0x3FF921FB, 0x54442D18 */
-p2pio2 = 2*M_PI_2,			/* 0x400921FB, 0x54442D18 */
-p3pio2 = 3*M_PI_2,			/* 0x4012D97C, 0x7F3321D2 */
-p4pio2 = 4*M_PI_2;			/* 0x401921FB, 0x54442D18 */
-
-void
-sincosf(float x, float *sn, float *cs)
-{
-	float c, s;
-	double y;
-	int32_t n, hx, ix;
-
-	GET_FLOAT_WORD(hx, x);
-	ix = hx & 0x7fffffff;
-
-	if (ix <= 0x3f490fda) {		/* |x| ~<= pi/4 */
-		if (ix < 0x39800000) {	/* |x| < 2**-12 */
-			if ((int)x == 0) {
-				*sn = x;	/* x with inexact if x != 0 */
-				*cs = 1;
-				return;
-			}
-		}
-		__kernel_sincosdf(x, sn, cs);
-		return;
-	}
-
-	if (ix <= 0x407b53d1) {		/* |x| ~<= 5*pi/4 */
-		if (ix <= 0x4016cbe3) {	/* |x| ~<= 3pi/4 */
-			if (hx > 0) {
-				__kernel_sincosdf(x - p1pio2, cs, sn);
-				*cs = -*cs;
-			} else {
-				__kernel_sincosdf(x + p1pio2, cs, sn);
-				*sn = -*sn;
-			}
-		} else {
-			if (hx > 0)
-				__kernel_sincosdf(x - p2pio2, sn, cs);
-			else
-				__kernel_sincosdf(x + p2pio2, sn, cs);
-			*sn = -*sn;
-			*cs = -*cs;
-		}
-		return;
-	}
-
-	if (ix <= 0x40e231d5) {		/* |x| ~<= 9*pi/4 */
-		if (ix <= 0x40afeddf) {	/* |x| ~<= 7*pi/4 */
-			if (hx > 0) {
-				__kernel_sincosdf(x - p3pio2, cs, sn);
-				*sn = -*sn;
-			} else {
-				__kernel_sincosdf(x + p3pio2, cs, sn);
-				*cs = -*cs;
-			}
-		} else {
-			if (hx > 0)
-				__kernel_sincosdf(x - p4pio2, sn, cs);
-			else
-				__kernel_sincosdf(x + p4pio2, sn, cs);
-		}
-		return;
-	}
-
-	/* If x = Inf or NaN, then sin(x) = NaN and cos(x) = NaN. */
-	if (ix >= 0x7f800000) {
-		*sn = x - x;
-		*cs = x - x;
-		return;
-	}
-
-	/* Argument reduction. */
-	n = __ieee754_rem_pio2f(x, &y);
-	__kernel_sincosdf(y, &s, &c);
-
-	switch(n & 3) {
-	case 0:
-		*sn = s;
-		*cs = c;
-		break;
-	case 1:
-		*sn = c;
-		*cs = -s;
-		break;
-	case 2:
-		*sn = -s;
-		*cs = -c;
-		break;
-	default:
-		*sn = -c;
-		*cs = s;
-	}
-}
-
-
diff --git a/libm/upstream-freebsd/lib/msun/src/s_sincosl.c b/libm/upstream-freebsd/lib/msun/src/s_sincosl.c
index 3dd3457..7fb69aa 100644
--- a/libm/upstream-freebsd/lib/msun/src/s_sincosl.c
+++ b/libm/upstream-freebsd/lib/msun/src/s_sincosl.c
@@ -26,9 +26,6 @@
  * s_sinl.c and s_cosl.c merged by Steven G. Kargl.
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 #include <float.h>
 #ifdef __i386__
 #include <ieeefp.h>
diff --git a/libm/upstream-freebsd/lib/msun/src/s_sinf.c b/libm/upstream-freebsd/lib/msun/src/s_sinf.c
deleted file mode 100644
index 41b5dc1..0000000
--- a/libm/upstream-freebsd/lib/msun/src/s_sinf.c
+++ /dev/null
@@ -1,85 +0,0 @@
-/* s_sinf.c -- float version of s_sin.c.
- * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com.
- * Optimized by Bruce D. Evans.
- */
-
-/*
- * ====================================================
- * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
- *
- * Developed at SunPro, a Sun Microsystems, Inc. business.
- * Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice
- * is preserved.
- * ====================================================
- */
-
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
-#include <float.h>
-
-#include "math.h"
-#define	INLINE_KERNEL_COSDF
-#define	INLINE_KERNEL_SINDF
-#define INLINE_REM_PIO2F
-#include "math_private.h"
-#include "e_rem_pio2f.c"
-#include "k_cosf.c"
-#include "k_sinf.c"
-
-/* Small multiples of pi/2 rounded to double precision. */
-static const double
-s1pio2 = 1*M_PI_2,			/* 0x3FF921FB, 0x54442D18 */
-s2pio2 = 2*M_PI_2,			/* 0x400921FB, 0x54442D18 */
-s3pio2 = 3*M_PI_2,			/* 0x4012D97C, 0x7F3321D2 */
-s4pio2 = 4*M_PI_2;			/* 0x401921FB, 0x54442D18 */
-
-float
-sinf(float x)
-{
-	double y;
-	int32_t n, hx, ix;
-
-	GET_FLOAT_WORD(hx,x);
-	ix = hx & 0x7fffffff;
-
-	if(ix <= 0x3f490fda) {		/* |x| ~<= pi/4 */
-	    if(ix<0x39800000)		/* |x| < 2**-12 */
-		if(((int)x)==0) return x;	/* x with inexact if x != 0 */
-	    return __kernel_sindf(x);
-	}
-	if(ix<=0x407b53d1) {		/* |x| ~<= 5*pi/4 */
-	    if(ix<=0x4016cbe3) {	/* |x| ~<= 3pi/4 */
-		if(hx>0)
-		    return __kernel_cosdf(x - s1pio2);
-		else
-		    return -__kernel_cosdf(x + s1pio2);
-	    } else
-		return __kernel_sindf((hx > 0 ? s2pio2 : -s2pio2) - x);
-	}
-	if(ix<=0x40e231d5) {		/* |x| ~<= 9*pi/4 */
-	    if(ix<=0x40afeddf) {	/* |x| ~<= 7*pi/4 */
-		if(hx>0)
-		    return -__kernel_cosdf(x - s3pio2);
-		else
-		    return __kernel_cosdf(x + s3pio2);
-	    } else
-		return __kernel_sindf(x + (hx > 0 ? -s4pio2 : s4pio2));
-	}
-
-    /* sin(Inf or NaN) is NaN */
-	else if (ix>=0x7f800000) return x-x;
-
-    /* general argument reduction needed */
-	else {
-	    n = __ieee754_rem_pio2f(x,&y);
-	    switch(n&3) {
-		case 0: return  __kernel_sindf(y);
-		case 1: return  __kernel_cosdf(y);
-		case 2: return  __kernel_sindf(-y);
-		default:
-			return -__kernel_cosdf(y);
-	    }
-	}
-}
diff --git a/libm/upstream-freebsd/lib/msun/src/s_sinl.c b/libm/upstream-freebsd/lib/msun/src/s_sinl.c
index f1ef84c..d0b7b34 100644
--- a/libm/upstream-freebsd/lib/msun/src/s_sinl.c
+++ b/libm/upstream-freebsd/lib/msun/src/s_sinl.c
@@ -1,5 +1,5 @@
 /*-
- * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+ * SPDX-License-Identifier: BSD-2-Clause
  *
  * Copyright (c) 2007 Steven G. Kargl
  * All rights reserved.
@@ -26,9 +26,6 @@
  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 #include <float.h>
 #ifdef __i386__
 #include <ieeefp.h>
diff --git a/libm/upstream-freebsd/lib/msun/src/s_sinpi.c b/libm/upstream-freebsd/lib/msun/src/s_sinpi.c
index 858459a..8b388de 100644
--- a/libm/upstream-freebsd/lib/msun/src/s_sinpi.c
+++ b/libm/upstream-freebsd/lib/msun/src/s_sinpi.c
@@ -1,5 +1,5 @@
 /*-
- * Copyright (c) 2017 Steven G. Kargl
+ * Copyright (c) 2017, 2023 Steven G. Kargl
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -118,16 +118,7 @@
 	}
 
 	if (ix < 0x43300000) {			/* 1 <= |x| < 0x1p52 */
-		/* Determine integer part of ax. */
-		j0 = ((ix >> 20) & 0x7ff) - 0x3ff;
-		if (j0 < 20) {
-			ix &= ~(0x000fffff >> j0);
-			lx = 0;
-		} else {
-			lx &= ~((uint32_t)0xffffffff >> (j0 - 20));
-		}
-		INSERT_WORDS(x, ix, lx);
-
+		FFLOOR(x, j0, ix, lx);	/* Integer part of ax. */
 		ax -= x;
 		EXTRACT_WORDS(ix, lx, ax);
 
@@ -155,7 +146,8 @@
 		return ((hx & 0x80000000) ? -s : s);
 	}
 
-	if (ix >= 0x7f800000)
+	/* x = +-inf or nan. */
+	if (ix >= 0x7ff00000)
 		return (vzero / vzero);
 
 	/*
diff --git a/libm/upstream-freebsd/lib/msun/src/s_tan.c b/libm/upstream-freebsd/lib/msun/src/s_tan.c
index 196c27e..20b9516 100644
--- a/libm/upstream-freebsd/lib/msun/src/s_tan.c
+++ b/libm/upstream-freebsd/lib/msun/src/s_tan.c
@@ -1,4 +1,3 @@
-/* @(#)s_tan.c 5.1 93/09/24 */
 /*
  * ====================================================
  * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
@@ -10,9 +9,6 @@
  * ====================================================
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 /* tan(x)
  * Return tangent function of x.
  *
diff --git a/libm/upstream-freebsd/lib/msun/src/s_tanf.c b/libm/upstream-freebsd/lib/msun/src/s_tanf.c
index 4fe8c17..2462f96 100644
--- a/libm/upstream-freebsd/lib/msun/src/s_tanf.c
+++ b/libm/upstream-freebsd/lib/msun/src/s_tanf.c
@@ -14,9 +14,6 @@
  * ====================================================
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 #include <float.h>
 
 #include "math.h"
diff --git a/libm/upstream-freebsd/lib/msun/src/s_tanh.c b/libm/upstream-freebsd/lib/msun/src/s_tanh.c
index 6d26c69..cc8daed 100644
--- a/libm/upstream-freebsd/lib/msun/src/s_tanh.c
+++ b/libm/upstream-freebsd/lib/msun/src/s_tanh.c
@@ -1,4 +1,3 @@
-/* @(#)s_tanh.c 5.1 93/09/24 */
 /*
  * ====================================================
  * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
@@ -10,9 +9,6 @@
  * ====================================================
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 /* Tanh(x)
  * Return the Hyperbolic Tangent of x
  *
diff --git a/libm/upstream-freebsd/lib/msun/src/s_tanhf.c b/libm/upstream-freebsd/lib/msun/src/s_tanhf.c
index f537be4..e56813a 100644
--- a/libm/upstream-freebsd/lib/msun/src/s_tanhf.c
+++ b/libm/upstream-freebsd/lib/msun/src/s_tanhf.c
@@ -13,9 +13,6 @@
  * ====================================================
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 #include "math.h"
 #include "math_private.h"
 
diff --git a/libm/upstream-freebsd/lib/msun/src/s_tanhl.c b/libm/upstream-freebsd/lib/msun/src/s_tanhl.c
index b753186..3285b9a 100644
--- a/libm/upstream-freebsd/lib/msun/src/s_tanhl.c
+++ b/libm/upstream-freebsd/lib/msun/src/s_tanhl.c
@@ -1,6 +1,5 @@
 /* from: FreeBSD: head/lib/msun/src/s_tanhl.c XXX */
 
-/* @(#)s_tanh.c 5.1 93/09/24 */
 /*
  * ====================================================
  * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
@@ -12,9 +11,6 @@
  * ====================================================
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 /*
  * See s_tanh.c for complete comments.
  *
diff --git a/libm/upstream-freebsd/lib/msun/src/s_tanl.c b/libm/upstream-freebsd/lib/msun/src/s_tanl.c
index 0c5228e..3736477 100644
--- a/libm/upstream-freebsd/lib/msun/src/s_tanl.c
+++ b/libm/upstream-freebsd/lib/msun/src/s_tanl.c
@@ -1,5 +1,5 @@
 /*-
- * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+ * SPDX-License-Identifier: BSD-2-Clause
  *
  * Copyright (c) 2007 Steven G. Kargl
  * All rights reserved.
@@ -26,9 +26,6 @@
  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 /*
  * Limited testing on pseudorandom numbers drawn within [0:4e8] shows
  * an accuracy of <= 1.5 ULP where 247024 values of x out of 40 million
diff --git a/libm/upstream-freebsd/lib/msun/src/s_tgammaf.c b/libm/upstream-freebsd/lib/msun/src/s_tgammaf.c
index 1fd46e8..9fa9df9 100644
--- a/libm/upstream-freebsd/lib/msun/src/s_tgammaf.c
+++ b/libm/upstream-freebsd/lib/msun/src/s_tgammaf.c
@@ -1,5 +1,5 @@
 /*-
- * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+ * SPDX-License-Identifier: BSD-2-Clause
  *
  * Copyright (c) 2008 David Schultz <das@FreeBSD.ORG>
  * All rights reserved.
@@ -26,9 +26,6 @@
  * SUCH DAMAGE.
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 #include <math.h>
 
 /*
diff --git a/libm/upstream-freebsd/lib/msun/src/s_trunc.c b/libm/upstream-freebsd/lib/msun/src/s_trunc.c
index 63a6753..3ec59f2 100644
--- a/libm/upstream-freebsd/lib/msun/src/s_trunc.c
+++ b/libm/upstream-freebsd/lib/msun/src/s_trunc.c
@@ -1,4 +1,3 @@
-/* @(#)s_floor.c 5.1 93/09/24 */
 /*
  * ====================================================
  * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
@@ -10,9 +9,6 @@
  * ====================================================
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 /*
  * trunc(x)
  * Return x rounded toward 0 to integral value
diff --git a/libm/upstream-freebsd/lib/msun/src/s_truncf.c b/libm/upstream-freebsd/lib/msun/src/s_truncf.c
index 384eaee..3f4db30 100644
--- a/libm/upstream-freebsd/lib/msun/src/s_truncf.c
+++ b/libm/upstream-freebsd/lib/msun/src/s_truncf.c
@@ -1,4 +1,3 @@
-/* @(#)s_floor.c 5.1 93/09/24 */
 /*
  * ====================================================
  * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
@@ -10,9 +9,6 @@
  * ====================================================
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 /*
  * truncf(x)
  * Return x rounded toward 0 to integral value
diff --git a/libm/upstream-freebsd/lib/msun/src/s_truncl.c b/libm/upstream-freebsd/lib/msun/src/s_truncl.c
index 9e2b511..81e794d 100644
--- a/libm/upstream-freebsd/lib/msun/src/s_truncl.c
+++ b/libm/upstream-freebsd/lib/msun/src/s_truncl.c
@@ -7,13 +7,8 @@
  * software is freely granted, provided that this notice
  * is preserved.
  * ====================================================
- *
- * From: @(#)s_floor.c 5.1 93/09/24
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 /*
  * truncl(x)
  * Return x rounded toward 0 to integral value
diff --git a/libm/upstream-freebsd/lib/msun/src/w_cabs.c b/libm/upstream-freebsd/lib/msun/src/w_cabs.c
index 543b858..4986461 100644
--- a/libm/upstream-freebsd/lib/msun/src/w_cabs.c
+++ b/libm/upstream-freebsd/lib/msun/src/w_cabs.c
@@ -5,9 +5,6 @@
  * Placed into the Public Domain, 1994.
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 #include <complex.h>
 #include <float.h>
 #include <math.h>
diff --git a/libm/upstream-freebsd/lib/msun/src/w_cabsf.c b/libm/upstream-freebsd/lib/msun/src/w_cabsf.c
index b5065c8..aedbdef 100644
--- a/libm/upstream-freebsd/lib/msun/src/w_cabsf.c
+++ b/libm/upstream-freebsd/lib/msun/src/w_cabsf.c
@@ -5,11 +5,6 @@
  * Placed into the Public Domain, 1994.
  */
 
-#ifndef lint
-static const char rcsid[] =
-  "$FreeBSD$";
-#endif /* not lint */
-
 #include <complex.h>
 #include <math.h>
 #include "math_private.h"
diff --git a/libm/upstream-freebsd/lib/msun/src/w_cabsl.c b/libm/upstream-freebsd/lib/msun/src/w_cabsl.c
index b715e0c..1539944 100644
--- a/libm/upstream-freebsd/lib/msun/src/w_cabsl.c
+++ b/libm/upstream-freebsd/lib/msun/src/w_cabsl.c
@@ -7,9 +7,6 @@
  * Modified by Steven G. Kargl for the long double type.
  */
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
 #include <complex.h>
 #include <math.h>
 
diff --git a/libm/upstream-freebsd/lib/msun/src/w_dremf.c b/libm/upstream-freebsd/lib/msun/src/w_dremf.c
index 4bfcff2..18df078 100644
--- a/libm/upstream-freebsd/lib/msun/src/w_dremf.c
+++ b/libm/upstream-freebsd/lib/msun/src/w_dremf.c
@@ -4,7 +4,6 @@
  * Written by J.T. Conklin, <jtc@wimsey.com>
  * Placed into the Public Domain, 1994.
  */
-/* $FreeBSD$ */
 
 #include "math.h"
 #include "math_private.h"
diff --git a/libm/x86/lrint.S b/libm/x86/lrint.S
deleted file mode 100644
index df26b30..0000000
--- a/libm/x86/lrint.S
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
-Copyright (c) 2014, Intel Corporation
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
-    * Redistributions of source code must retain the above copyright notice,
-    * this list of conditions and the following disclaimer.
-
-    * Redistributions in binary form must reproduce the above copyright notice,
-    * this list of conditions and the following disclaimer in the documentation
-    * and/or other materials provided with the distribution.
-
-    * Neither the name of Intel Corporation nor the names of its contributors
-    * may be used to endorse or promote products derived from this software
-    * without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
-ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-
-#include <private/bionic_asm.h>
-
-ENTRY(lrint)
-  // LP32 sizeof(long) == 4.
-  movsd     0x4(%esp),%xmm0
-  cvtsd2si  %xmm0, %eax
-  ret
-END(lrint)
-
-// LP32 sizeof(long double) == sizeof(double).
-ALIAS_SYMBOL(lrintl, lrint);
diff --git a/libm/x86/lrintf.S b/libm/x86/lrintf.S
deleted file mode 100644
index d2dae03..0000000
--- a/libm/x86/lrintf.S
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
-Copyright (c) 2014, Intel Corporation
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
-    * Redistributions of source code must retain the above copyright notice,
-    * this list of conditions and the following disclaimer.
-
-    * Redistributions in binary form must reproduce the above copyright notice,
-    * this list of conditions and the following disclaimer in the documentation
-    * and/or other materials provided with the distribution.
-
-    * Neither the name of Intel Corporation nor the names of its contributors
-    * may be used to endorse or promote products derived from this software
-    * without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
-ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-
-#include <private/bionic_asm.h>
-
-ENTRY(lrintf)
-  // LP32 sizeof(long) == 4.
-  movss     0x4(%esp),%xmm0
-  cvtss2si  %xmm0, %eax
-  ret
-END(lrintf)
diff --git a/libm/x86_64/lrint.S b/libm/x86_64/lrint.S
deleted file mode 100644
index d678761..0000000
--- a/libm/x86_64/lrint.S
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
-Copyright (c) 2014, Intel Corporation
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
-    * Redistributions of source code must retain the above copyright notice,
-    * this list of conditions and the following disclaimer.
-
-    * Redistributions in binary form must reproduce the above copyright notice,
-    * this list of conditions and the following disclaimer in the documentation
-    * and/or other materials provided with the distribution.
-
-    * Neither the name of Intel Corporation nor the names of its contributors
-    * may be used to endorse or promote products derived from this software
-    * without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
-ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-
-#include <private/bionic_asm.h>
-
-ENTRY(lrint)
-  // LP64 sizeof(long) == 8.
-  cvtsd2si  %xmm0, %rax
-  ret
-END(lrint)
-
-// LP64 sizeof(long long) == sizeof(long).
-ALIAS_SYMBOL(llrint, lrint);
diff --git a/libm/x86_64/lrintf.S b/libm/x86_64/lrintf.S
deleted file mode 100644
index 3d3acfb..0000000
--- a/libm/x86_64/lrintf.S
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
-Copyright (c) 2014, Intel Corporation
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
-    * Redistributions of source code must retain the above copyright notice,
-    * this list of conditions and the following disclaimer.
-
-    * Redistributions in binary form must reproduce the above copyright notice,
-    * this list of conditions and the following disclaimer in the documentation
-    * and/or other materials provided with the distribution.
-
-    * Neither the name of Intel Corporation nor the names of its contributors
-    * may be used to endorse or promote products derived from this software
-    * without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
-ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-
-#include <private/bionic_asm.h>
-
-ENTRY(lrintf)
-  // LP64 sizeof(long) == 8.
-  cvtss2si  %xmm0, %rax
-  ret
-END(lrintf)
-
-// LP64 sizeof(long long) == sizeof(long).
-ALIAS_SYMBOL(llrintf, lrintf);
diff --git a/linker/Android.bp b/linker/Android.bp
index 020bd7d..4863b92 100644
--- a/linker/Android.bp
+++ b/linker/Android.bp
@@ -1,15 +1,5 @@
-// ========================================================
-// linker_wrapper - Linux Bionic (on the host)
-// ========================================================
-
-// This is used for bionic on (host) Linux to bootstrap our linker embedded into
-// a binary.
-//
-// Host bionic binaries do not have a PT_INTERP section, instead this gets
-// embedded as the entry point, and the linker is embedded as ELF sections in
-// each binary. There's a linker script that sets all of that up (generated by
-// extract_linker), and defines the extern symbols used in this file.
 package {
+    default_team: "trendy_team_native_tools_libraries",
     default_applicable_licenses: ["bionic_linker_license"],
 }
 
@@ -24,6 +14,27 @@
     ],
 }
 
+linker_common_flags = [
+    "-fno-stack-protector",
+    "-Wstrict-overflow=5",
+    "-fvisibility=hidden",
+    "-Wall",
+    "-Wextra",
+    "-Wunused",
+    "-Werror",
+]
+
+// ========================================================
+// linker_wrapper - Linux Bionic (on the host)
+// ========================================================
+
+// This is used for bionic on (host) Linux to bootstrap our linker embedded into
+// a binary.
+//
+// Host bionic binaries do not have a PT_INTERP section, instead this gets
+// embedded as the entry point, and the linker is embedded as ELF sections in
+// each binary. There's a linker script that sets all of that up (generated by
+// extract_linker), and defines the extern symbols used in this file.
 cc_object {
     name: "linker_wrapper",
     host_supported: true,
@@ -35,15 +46,7 @@
         },
     },
 
-    cflags: [
-        "-fno-stack-protector",
-        "-Wstrict-overflow=5",
-        "-fvisibility=hidden",
-        "-Wall",
-        "-Wextra",
-        "-Wno-unused",
-        "-Werror",
-    ],
+    cflags: linker_common_flags,
 
     srcs: [
         "linker_wrapper.cpp",
@@ -82,26 +85,8 @@
         },
     },
 
-    cflags: [
-        "-fno-stack-protector",
-        "-Wstrict-overflow=5",
-        "-fvisibility=hidden",
-        "-Wall",
-        "-Wextra",
-        "-Wunused",
-        "-Werror",
-    ],
-
-    // TODO: split out the asflags.
-    asflags: [
-        "-fno-stack-protector",
-        "-Wstrict-overflow=5",
-        "-fvisibility=hidden",
-        "-Wall",
-        "-Wextra",
-        "-Wunused",
-        "-Werror",
-    ],
+    cflags: linker_common_flags,
+    asflags: linker_common_flags,
 
     product_variables: {
         debuggable: {
@@ -123,6 +108,12 @@
 
     // We need to access Bionic private headers in the linker.
     include_dirs: ["bionic/libc"],
+
+    sanitize: {
+        // Supporting memtag_globals in the linker would be tricky,
+        // because it relocates itself very early.
+        memtag_globals: false,
+    },
 }
 
 // ========================================================
@@ -141,22 +132,37 @@
 
 cc_library_static {
     name: "liblinker_main",
-    defaults: ["linker_defaults", "linker_all_targets"],
+    defaults: [
+        "linker_defaults",
+        "linker_all_targets",
+    ],
     srcs: ["linker_main.cpp"],
 
     // Ensure that the compiler won't insert string function calls before ifuncs are resolved.
     cflags: ["-ffreestanding"],
+    apex_available: [
+        "com.android.runtime",
+    ],
 }
 
 cc_library_static {
     name: "liblinker_malloc",
-    defaults: ["linker_defaults", "linker_all_targets"],
+    defaults: [
+        "linker_defaults",
+        "linker_all_targets",
+    ],
     srcs: ["linker_memory.cpp"],
+    apex_available: [
+        "com.android.runtime",
+    ],
 }
 
 cc_library_static {
     name: "liblinker_debuggerd_stub",
-    defaults: ["linker_defaults", "linker_all_targets"],
+    defaults: [
+        "linker_defaults",
+        "linker_all_targets",
+    ],
     srcs: ["linker_debuggerd_stub.cpp"],
 }
 
@@ -169,6 +175,7 @@
     srcs: [
         "dlfcn.cpp",
         "linker.cpp",
+        "linker_auxv.cpp",
         "linker_block_allocator.cpp",
         "linker_dlwarning.cpp",
         "linker_cfi.cpp",
@@ -183,6 +190,7 @@
         "linker_mapped_file_fragment.cpp",
         "linker_note_gnu_property.cpp",
         "linker_phdr.cpp",
+        "linker_phdr_16kib_compat.cpp",
         "linker_relocate.cpp",
         "linker_sdk_versions.cpp",
         "linker_soinfo.cpp",
@@ -214,6 +222,7 @@
     name: "linker_sources_riscv64",
     srcs: [
         "arch/riscv64/begin.S",
+        "arch/riscv64/tlsdesc_resolver.S",
     ],
 }
 
@@ -234,123 +243,103 @@
 cc_defaults {
     name: "linker_version_script_overlay",
     arch: {
-        arm:     { version_script: "linker.arm.map"      },
-        arm64:   { version_script: "linker.generic.map"  },
-        riscv64: { version_script: "linker.generic.map"  },
-        x86:     { version_script: "linker.generic.map"  },
-        x86_64:  { version_script: "linker.generic.map"  },
+        arm: {
+            version_script: "linker.arm.map",
+        },
+        arm64: {
+            version_script: "linker.generic.map",
+        },
+        riscv64: {
+            version_script: "linker.generic.map",
+        },
+        x86: {
+            version_script: "linker.generic.map",
+        },
+        x86_64: {
+            version_script: "linker.generic.map",
+        },
     },
 }
 
 // A template for the linker binary. May be inherited by native bridge implementations.
 cc_defaults {
     name: "linker_bin_template",
-    defaults: ["linker_defaults"],
+    defaults: [
+        "linker_defaults",
+        "keep_symbols",
+    ],
 
     srcs: [":linker_sources"],
 
     arch: {
         arm: {
             srcs: [":linker_sources_arm"],
-
-            // Arm 32 bit does not produce complete exidx unwind information
-            // so keep the .debug_frame which is relatively small and does
-            // include needed unwind information.
-            // See b/242162222 for details.
-            strip: {
-                keep_symbols_and_debug_frame: true,
-            },
         },
         arm64: {
             srcs: [":linker_sources_arm64"],
-
-            // Leave the symbols in the shared library so that stack unwinders can produce
-            // meaningful name resolution.
-            strip: {
-                keep_symbols: true,
-            },
         },
         riscv64: {
             srcs: [":linker_sources_riscv64"],
-
-            // Leave the symbols in the shared library so that stack unwinders can produce
-            // meaningful name resolution.
-            strip: {
-                keep_symbols: true,
-            },
         },
         x86: {
             srcs: [":linker_sources_x86"],
-
-            // Leave the symbols in the shared library so that stack unwinders can produce
-            // meaningful name resolution.
-            strip: {
-                keep_symbols: true,
-            },
         },
         x86_64: {
             srcs: [":linker_sources_x86_64"],
-
-            // Leave the symbols in the shared library so that stack unwinders can produce
-            // meaningful name resolution.
-            strip: {
-                keep_symbols: true,
-            },
         },
     },
 
+    static_executable: true,
+
     // -shared is used to overwrite the -Bstatic and -static flags triggered by enabling
-    // static_executable. This dynamic linker is actually a shared object linked with static
+    // static_executable. The dynamic linker is actually a shared object linked with static
     // libraries.
     ldflags: [
         "-shared",
         "-Wl,-Bsymbolic",
         "-Wl,--exclude-libs,ALL",
         "-Wl,-soname,ld-android.so",
+        // When the linker applies its own IRELATIVE relocations, it will only read DT_REL[A] and
+        // DT_JMPREL, not DT_ANDROID_REL[A], which can also theoretically contain IRELATIVE
+        // relocations. lld has been taught to not store them there as a bug workaround (see
+        // https://llvm.org/pr86751) but the workaround could be removed at some point in the
+        // future. So we explicitly prevent it from doing so by disabling DT_ANDROID_REL[A] when
+        // linking the linker (DT_RELR cannot encode IRELATIVE relocations).
+        "-Wl,--pack-dyn-relocs=relr",
     ],
 
-    // we are going to link libc++_static manually because
-    // when stl is not set to "none" build system adds libdl
-    // to the list of static libraries which needs to be
-    // avoided in the case of building loader.
+    // We link libc++_static manually because otherwise the build system will
+    // automatically add libdl to the list of static libraries.
     stl: "none",
 
-    // we don't want crtbegin.o (because we have begin.o), so unset it
-    // just for this module
+    // We don't want crtbegin.o (because we have our own arch/*/begin.o),
+    // so unset it just for this module.
     nocrt: true,
 
-    static_executable: true,
-
     // Insert an extra objcopy step to add prefix to symbols. This is needed to prevent gdb
     // looking up symbols in the linker by mistake.
     prefix_symbols: "__dl_",
 
     sanitize: {
         hwaddress: false,
+        memtag_stack: false,
     },
 
     static_libs: [
         "liblinker_main",
         "liblinker_malloc",
 
-        "libc++_static",
+        // We use a version of libc++ built without exceptions,
+        // because accessing EH globals uses ELF TLS,
+        // which is not supported in the loader.
+        "libc++_static_noexcept",
+
         "libc_nomalloc",
         "libc_dynamic_dispatch",
         "libm",
         "libunwind",
     ],
 
-    // Ensure that if the linker needs __gnu_Unwind_Find_exidx, then the linker will have a
-    // definition of the symbol. The linker links against libgcc.a, whose arm32 unwinder has a weak
-    // reference to __gnu_Unwind_Find_exidx, which isn't sufficient to pull in the strong definition
-    // of __gnu_Unwind_Find_exidx from libc. An unresolved weak reference would create a
-    // non-relative dynamic relocation in the linker binary, which complicates linker startup.
-    //
-    // This line should be unnecessary because the linker's dependency on libunwind_llvm.a should
-    // override libgcc.a, but this line provides a simpler guarantee. It can be removed once the
-    // linker stops linking against libgcc.a's arm32 unwinder.
-    whole_static_libs: ["libc_unwind_static"],
-
     system_shared_libs: [],
 
     // Opt out of native_coverage when opting out of system_shared_libs
@@ -400,7 +389,7 @@
                 "linker_debuggerd_android.cpp",
             ],
             static_libs: [
-                "libc++demangle",
+                "libc++demangle_noexcept",
                 "libdebuggerd_handler_fallback",
             ],
         },
@@ -437,35 +426,6 @@
 }
 
 cc_library {
-    // NOTE: --exclude-libs=libgcc.a makes sure that any symbols ld-android.so pulls from
-    // libgcc.a are made static to ld-android.so.  This in turn ensures that libraries that
-    // a) pull symbols from libgcc.a and b) depend on ld-android.so will not rely on ld-android.so
-    // to provide those symbols, but will instead pull them from libgcc.a.  Specifically,
-    // we use this property to make sure libc.so has its own copy of the code from
-    // libgcc.a it uses.
-    //
-    // DO NOT REMOVE --exclude-libs!
-
-    ldflags: [
-        "-Wl,--exclude-libs=libgcc.a",
-        "-Wl,--exclude-libs=libgcc_stripped.a",
-        "-Wl,--exclude-libs=libclang_rt.builtins-arm-android.a",
-        "-Wl,--exclude-libs=libclang_rt.builtins-aarch64-android.a",
-        "-Wl,--exclude-libs=libclang_rt.builtins-riscv64-android.a",
-        "-Wl,--exclude-libs=libclang_rt.builtins-i686-android.a",
-        "-Wl,--exclude-libs=libclang_rt.builtins-x86_64-android.a",
-    ],
-
-    // for x86, exclude libgcc_eh.a for the same reasons as above
-    arch: {
-        x86: {
-            ldflags: ["-Wl,--exclude-libs=libgcc_eh.a"],
-        },
-        x86_64: {
-            ldflags: ["-Wl,--exclude-libs=libgcc_eh.a"],
-        },
-    },
-
     srcs: ["ld_android.cpp"],
     cflags: [
         "-Wall",
@@ -476,7 +436,10 @@
     stl: "none",
 
     name: "ld-android",
-    defaults: ["linux_bionic_supported", "linker_version_script_overlay"],
+    defaults: [
+        "linux_bionic_supported",
+        "linker_version_script_overlay",
+    ],
     ramdisk_available: true,
     vendor_ramdisk_available: true,
     recovery_available: true,
@@ -497,10 +460,6 @@
         "//apex_available:platform",
         "com.android.runtime",
     ],
-
-    lto: {
-        never: true,
-    },
 }
 
 cc_test {
@@ -527,20 +486,34 @@
         "linker_sleb128_test.cpp",
         "linker_utils_test.cpp",
         "linker_gnu_hash_test.cpp",
+        "linker_crt_pad_segment_test.cpp",
 
         // Parts of the linker that we're testing.
+        ":elf_note_sources",
         "linker_block_allocator.cpp",
         "linker_config.cpp",
         "linker_debug.cpp",
         "linker_note_gnu_property.cpp",
         "linker_test_globals.cpp",
         "linker_utils.cpp",
+        "linker_phdr.cpp",
+        "linker_mapped_file_fragment.cpp",
+        "linker_sdk_versions.cpp",
+        "linker_dlwarning.cpp",
+        "linker_phdr_16kib_compat.cpp"
     ],
 
     static_libs: [
         "libasync_safe",
         "libbase",
         "liblog_for_runtime_apex",
+        "libprocinfo", // For procinfo::MappedFileSize()
+    ],
+
+    data_libs: [
+        "crt_pad_segment_disabled",
+        "crt_pad_segment_enabled",
+        "no_crt_pad_segment",
     ],
 
     arch: {
diff --git a/linker/NOTICE b/linker/NOTICE
index d61a193..9b66b4e 100644
--- a/linker/NOTICE
+++ b/linker/NOTICE
@@ -362,3 +362,59 @@
 
 -------------------------------------------------------------------
 
+Copyright (C) 2023 The Android Open Source Project
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+ * Redistributions of source code must retain the above copyright
+   notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright
+   notice, this list of conditions and the following disclaimer in
+   the documentation and/or other materials provided with the
+   distribution.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGE.
+
+-------------------------------------------------------------------
+
+Copyright (C) 2024 The Android Open Source Project
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+ * Redistributions of source code must retain the above copyright
+   notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright
+   notice, this list of conditions and the following disclaimer in
+   the documentation and/or other materials provided with the
+   distribution.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGE.
+
+-------------------------------------------------------------------
+
diff --git a/linker/arch/arm64/tlsdesc_resolver.S b/linker/arch/arm64/tlsdesc_resolver.S
index ad155e2..84407dd 100644
--- a/linker/arch/arm64/tlsdesc_resolver.S
+++ b/linker/arch/arm64/tlsdesc_resolver.S
@@ -56,12 +56,12 @@
   ldr x22, [x0]                 // TlsDynamicResolverArg::generation
 
   cmp x21, x22
-  b.lo .fallback
+  b.lo L(fallback)
 
   ldr x21, [x0, #8]             // TlsIndex::module_id
   ldr x22, [x0, #16]            // TlsIndex::offset
   ldr x21, [x20, x21, lsl #3]   // TlsDtv::modules[module_id]
-  cbz x21, .fallback
+  cbz x21, L(fallback)
   add x0, x21, x22
   sub x0, x0, x19
 
@@ -75,7 +75,7 @@
   .cfi_restore x20
   ret
 
-.fallback:
+L(fallback):
   .cfi_restore_state
   ldp x21, x22, [sp, #16]
   .cfi_restore x21
diff --git a/linker/arch/riscv64/begin.S b/linker/arch/riscv64/begin.S
index f7509c6..21665cb 100644
--- a/linker/arch/riscv64/begin.S
+++ b/linker/arch/riscv64/begin.S
@@ -33,7 +33,7 @@
   .cfi_undefined ra
 
   mv a0, sp
-  jal __linker_init
+  call __linker_init
 
   // __linker_init returns the address of the entry point in the main image.
   jr a0
diff --git a/linker/arch/riscv64/tlsdesc_resolver.S b/linker/arch/riscv64/tlsdesc_resolver.S
new file mode 100644
index 0000000..fedc926
--- /dev/null
+++ b/linker/arch/riscv64/tlsdesc_resolver.S
@@ -0,0 +1,201 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *  * Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *  * Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in
+ *    the documentation and/or other materials provided with the
+ *    distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#include <platform/bionic/tls_defines.h>
+#include <private/bionic_asm.h>
+#include <private/bionic_elf_dtv_offset.h>
+
+#ifndef TLS_DTV_OFFSET
+  #error "TLS_DTV_OFFSET not defined"
+#endif
+
+.globl __tls_get_addr
+
+// spill a register onto the stack
+.macro spill reg, idx, f=
+  \f\()sd \reg, \idx*8(sp)
+  .cfi_rel_offset \reg, (\idx)*8
+.endm
+
+// reload a value from the stack
+.macro reload reg, idx, f=
+  \f\()ld \reg, \idx*8(sp)
+  .cfi_same_value \reg
+.endm
+
+.macro spill_vector_regs
+  csrr a3, vlenb
+  slli a3, a3, 3
+  sub sp, sp, a3
+  vs8r.v v0, (sp)
+  sub sp, sp, a3
+  vs8r.v v8, (sp)
+  sub sp, sp, a3
+  vs8r.v v16, (sp)
+  sub sp, sp, a3
+  vs8r.v v24, (sp)
+.endm
+
+.macro reload_vector_regs
+  csrr a3, vlenb
+  slli a3, a3, 3
+  vl8r.v v24, (sp)
+  add sp, sp, a3
+  vl8r.v v16, (sp)
+  add sp, sp, a3
+  vl8r.v v8, (sp)
+  add sp, sp, a3
+  vl8r.v v0, (sp)
+  add sp, sp, a3
+.endm
+
+// We save a total of 35 registers
+.macro for_each_saved_reg op max
+  \op ra, 1
+  \op a1, 2
+  \op a2, 3
+  \op a3, 4
+  \op a4, 5
+  \op a5, 6
+  \op a6, 7
+  \op a7, 8
+  \op t0, 9
+  \op t1, 10
+  \op t2, 11
+  \op t3, 12
+  \op t4, 13
+  \op t5, 14
+  \op t6, 15
+  // save floating point regs
+  \op ft0, 16, f
+  \op ft1, 17, f
+  \op ft2, 18, f
+  \op ft3, 19, f
+  \op ft4, 20, f
+  \op ft5, 21, f
+  \op ft6, 22, f
+  \op ft7, 23, f
+  \op ft8, 24, f
+  \op ft9, 25, f
+  \op ft10, 26, f
+  \op ft11, 27, f
+  \op fa0, 28, f
+  \op fa1, 29, f
+  \op fa2, 30, f
+  \op fa3, 31, f
+  \op fa4, 32, f
+  \op fa5, 33, f
+  \op fa6, 34, f
+  \op fa7, 35, f
+.endm
+
+// These resolver functions must preserve every register except a0. They set a0
+// to the offset of the TLS symbol relative to the thread pointer.
+
+ENTRY_PRIVATE(tlsdesc_resolver_static)
+  ld a0, 8(a0)
+  jr t0
+END(tlsdesc_resolver_static)
+
+ENTRY_PRIVATE(tlsdesc_resolver_dynamic)
+  // We only need 3 stack slots, but still require a 4th slot for alignment
+  addi sp, sp, -4*8
+  .cfi_def_cfa_offset 4*8
+  spill a1, 1
+  spill a2, 2
+  spill a3, 3
+
+  ld a2, (TLS_SLOT_DTV * 8)(tp) // a2 = &DTV
+  ld a1, (a2)                   // a1 = TlsDtv::generation (DTV[0])
+
+  ld a0, 8(a0)                  // a0 = TlsDynamicResolverArg*
+  ld a3, (a0)                   // a3 = TlsDynamicResolverArg::generation
+
+  // Fallback if TlsDtv::generation < TlsDynamicResolverArg::generation
+  // since we need to call __tls_get_addr
+  blt a1, a3, L(fallback)
+
+  // We can't modify a0 yet, since tlsdesc_resolver_dynamic_slow_path requires
+  // a pointer to the TlsIndex, which is the second field of the
+  // TlsDynamicResolverArg. As a result, we can't modify a0 until we will no
+  // longer fallback.
+  ld a1, 8(a0)                  // a1 = TlsIndex::module_id
+  slli a1, a1, 3                // a1 = module_id*8 -- scale the idx
+  add a1, a2, a1                // a1 = &TlsDtv::modules[module_id]
+  ld a1, (a1)                   // a1 = TlsDtv::modules[module_id]
+  beqz a1, L(fallback)
+  ld a3, 16(a0)                 // a3 = TlsIndex::offset
+  add a0, a1, a3                // a0 = TlsDtv::modules[module_id] + offset
+  sub a0, a0, tp                // a0 = TlsDtv::modules[module_id] + offset - tp
+
+  .cfi_remember_state
+  reload a3, 3
+  reload a2, 2
+  reload a1, 1
+  addi sp, sp, 4*8
+  .cfi_adjust_cfa_offset -4*8
+  jr t0
+
+L(fallback):
+  reload a3, 3
+  reload a2, 2
+  reload a1, 1
+  addi sp, sp, 4*8
+  .cfi_adjust_cfa_offset -4*8
+  j tlsdesc_resolver_dynamic_slow_path
+END(tlsdesc_resolver_dynamic)
+
+// On entry, a0 is the address of a TlsDynamicResolverArg object rather than
+// the TlsDescriptor address passed to the original resolver function.
+ENTRY_PRIVATE(tlsdesc_resolver_dynamic_slow_path)
+  // We save a total of 35 registers, but vector spills require an alignment
+  // of 16, so use an extra slot to align it correctly.
+  addi sp, sp, (-8*36)
+  .cfi_def_cfa_offset (8 * 36)
+  for_each_saved_reg spill, 36
+  spill_vector_regs
+
+  add a0, a0, 8
+  call __tls_get_addr
+  addi a0, a0, (-1 * TLS_DTV_OFFSET)  // Correct the address by TLS_DTV_OFFSET
+  sub a0, a0, tp
+
+  reload_vector_regs
+  for_each_saved_reg reload, 36
+  addi sp, sp, 8*36
+  .cfi_def_cfa_offset 0
+  jr t0
+END(tlsdesc_resolver_dynamic_slow_path)
+
+// The address of an unresolved weak TLS symbol evaluates to NULL with TLSDESC.
+// The value returned by this function is added to the thread pointer, so return
+// a negated thread pointer to cancel it out.
+ENTRY_PRIVATE(tlsdesc_resolver_unresolved_weak)
+  sub a0, zero, tp
+  jr t0
+END(tlsdesc_resolver_unresolved_weak)
diff --git a/linker/dlfcn.cpp b/linker/dlfcn.cpp
index a3f5246..f811d6d 100644
--- a/linker/dlfcn.cpp
+++ b/linker/dlfcn.cpp
@@ -89,6 +89,7 @@
                       const void* caller_addr) __LINKER_PUBLIC__;
 void __loader_add_thread_local_dtor(void* dso_handle) __LINKER_PUBLIC__;
 void __loader_remove_thread_local_dtor(void* dso_handle) __LINKER_PUBLIC__;
+void __loader_android_set_16kb_appcompat_mode(bool enable_app_compat) __LINKER_PUBLIC__;
 libc_shared_globals* __loader_shared_globals() __LINKER_PUBLIC__;
 #if defined(__arm__)
 _Unwind_Ptr __loader_dl_unwind_find_exidx(_Unwind_Ptr pc, int* pcount) __LINKER_PUBLIC__;
@@ -97,7 +98,7 @@
                                     void* context) __LINKER_PUBLIC__;
 }
 
-static pthread_mutex_t g_dl_mutex = PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP;
+pthread_mutex_t g_dl_mutex = PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP;
 
 static char* __bionic_set_dlerror(char* new_value) {
   char* old_value = __get_thread()->current_dlerror;
@@ -301,6 +302,11 @@
   decrement_dso_handle_reference_counter(dso_handle);
 }
 
+void __loader_android_set_16kb_appcompat_mode(bool enable_app_compat) {
+  ScopedPthreadMutexLocker locker(&g_dl_mutex);
+  set_16kb_appcompat_mode(enable_app_compat);
+}
+
 libc_shared_globals* __loader_shared_globals() {
   return __libc_shared_globals();
 }
@@ -331,6 +337,7 @@
     __libdl_info->gnu_bloom_filter_ = linker_si.gnu_bloom_filter_;
     __libdl_info->gnu_bucket_ = linker_si.gnu_bucket_;
     __libdl_info->gnu_chain_ = linker_si.gnu_chain_;
+    __libdl_info->memtag_dynamic_entries_ = linker_si.memtag_dynamic_entries_;
 
     __libdl_info->ref_count_ = 1;
     __libdl_info->strtab_size_ = linker_si.strtab_size_;
diff --git a/linker/ld_android.cpp b/linker/ld_android.cpp
index 1c03106..c938a16 100644
--- a/linker/ld_android.cpp
+++ b/linker/ld_android.cpp
@@ -55,6 +55,7 @@
 __strong_alias(__loader_add_thread_local_dtor, __internal_linker_error);
 __strong_alias(__loader_remove_thread_local_dtor, __internal_linker_error);
 __strong_alias(__loader_shared_globals, __internal_linker_error);
+__strong_alias(__loader_android_set_16kb_appcompat_mode, __internal_linker_error);
 #if defined(__arm__)
 __strong_alias(__loader_dl_unwind_find_exidx, __internal_linker_error);
 #endif
diff --git a/linker/linker.arm.map b/linker/linker.arm.map
index b805cd6..edfa249 100644
--- a/linker/linker.arm.map
+++ b/linker/linker.arm.map
@@ -25,6 +25,7 @@
     __loader_shared_globals;
     rtld_db_dlactivity;
     __loader_android_handle_signal;
+    __loader_android_set_16kb_appcompat_mode;
   local:
     *;
 };
diff --git a/linker/linker.cpp b/linker/linker.cpp
index 17b574f..8f78915 100644
--- a/linker/linker.cpp
+++ b/linker/linker.cpp
@@ -27,6 +27,7 @@
  */
 
 #include <android/api-level.h>
+#include <assert.h>
 #include <errno.h>
 #include <fcntl.h>
 #include <inttypes.h>
@@ -50,6 +51,7 @@
 #include <android-base/scopeguard.h>
 #include <async_safe/log.h>
 #include <bionic/pthread_internal.h>
+#include <platform/bionic/mte.h>
 
 // Private C library headers.
 
@@ -70,11 +72,12 @@
 #include "linker_translate_path.h"
 #include "linker_utils.h"
 
+#include "android-base/macros.h"
+#include "android-base/stringprintf.h"
+#include "android-base/strings.h"
+#include "private/bionic_asm_note.h"
 #include "private/bionic_call_ifunc_resolver.h"
 #include "private/bionic_globals.h"
-#include "android-base/macros.h"
-#include "android-base/strings.h"
-#include "android-base/stringprintf.h"
 #include "ziparchive/zip_archive.h"
 
 static std::unordered_map<void*, size_t> g_dso_handle_counters;
@@ -314,7 +317,7 @@
     async_safe_fatal("library name \"%s\" too long", name);
   }
 
-  TRACE("name %s: allocating soinfo for ns=%p", name, ns);
+  LD_DEBUG(any, "name %s: allocating soinfo for ns=%p", name, ns);
 
   soinfo* si = new (g_soinfo_allocator.alloc()) soinfo(ns, name, file_stat,
                                                        file_offset, rtld_flags);
@@ -324,7 +327,7 @@
   si->generate_handle();
   ns->add_soinfo(si);
 
-  TRACE("name %s: allocated soinfo @ %p", name, si);
+  LD_DEBUG(any, "name %s: allocated soinfo @ %p", name, si);
   return si;
 }
 
@@ -347,7 +350,7 @@
     munmap(reinterpret_cast<void*>(si->get_gap_start()), si->get_gap_size());
   }
 
-  TRACE("name %s: freeing soinfo @ %p", si->get_realpath(), si);
+  LD_DEBUG(any, "name %s: freeing soinfo @ %p", si->get_realpath(), si);
 
   if (!solist_remove_soinfo(si)) {
     async_safe_fatal("soinfo=%p is not in soinfo_list (double unload?)", si);
@@ -385,7 +388,7 @@
   auto length = readlink(proc_self_fd, buf, sizeof(buf));
   if (length == -1) {
     if (!is_first_stage_init()) {
-      PRINT("readlink(\"%s\") failed: %s [fd=%d]", proc_self_fd, strerror(errno), fd);
+      DL_WARN("readlink(\"%s\" [fd=%d]) failed: %m", proc_self_fd, fd);
     }
     return false;
   }
@@ -637,6 +640,12 @@
     si_->phdr = elf_reader.loaded_phdr();
     si_->set_gap_start(elf_reader.gap_start());
     si_->set_gap_size(elf_reader.gap_size());
+    si_->set_should_pad_segments(elf_reader.should_pad_segments());
+    si_->set_should_use_16kib_app_compat(elf_reader.should_use_16kib_app_compat());
+    if (si_->should_use_16kib_app_compat()) {
+      si_->set_compat_relro_start(elf_reader.compat_relro_start());
+      si_->set_compat_relro_size(elf_reader.compat_relro_size());
+    }
 
     return true;
   }
@@ -815,8 +824,8 @@
   }
 
   if (s != nullptr) {
-    TRACE_TYPE(LOOKUP, "%s s->st_value = %p, found->base = %p",
-               name, reinterpret_cast<void*>(s->st_value), reinterpret_cast<void*>((*found)->base));
+    LD_DEBUG(lookup, "%s s->st_value = %p, found->base = %p",
+             name, reinterpret_cast<void*>(s->st_value), reinterpret_cast<void*>((*found)->base));
   }
 
   return s;
@@ -920,7 +929,7 @@
   }
 
   const char* const path = normalized_path.c_str();
-  TRACE("Trying zip file open from path \"%s\" -> normalized \"%s\"", input_path, path);
+  LD_DEBUG(any, "Trying zip file open from path \"%s\" -> normalized \"%s\"", input_path, path);
 
   // Treat an '!/' separator inside a path as the separator between the name
   // of the zip file on disk and the subdirectory to search within it.
@@ -933,7 +942,7 @@
 
   char buf[512];
   if (strlcpy(buf, path, sizeof(buf)) >= sizeof(buf)) {
-    PRINT("Warning: ignoring very long library path: %s", path);
+    DL_WARN("ignoring very long library path: %s", path);
     return -1;
   }
 
@@ -962,7 +971,7 @@
   }
 
   // Check if it is properly stored
-  if (entry.method != kCompressStored || (entry.offset % PAGE_SIZE) != 0) {
+  if (entry.method != kCompressStored || (entry.offset % page_size()) != 0) {
     close(fd);
     return -1;
   }
@@ -973,8 +982,8 @@
     *realpath += separator;
   } else {
     if (!is_first_stage_init()) {
-      PRINT("warning: unable to get realpath for the library \"%s\". Will use given path.",
-            normalized_path.c_str());
+      DL_WARN("unable to get realpath for the library \"%s\". Will use given path.",
+              normalized_path.c_str());
     }
     *realpath = normalized_path;
   }
@@ -985,7 +994,7 @@
 static bool format_path(char* buf, size_t buf_size, const char* path, const char* name) {
   int n = async_safe_format_buffer(buf, buf_size, "%s/%s", path, name);
   if (n < 0 || n >= static_cast<int>(buf_size)) {
-    PRINT("Warning: ignoring very long library path: %s/%s", path, name);
+    DL_WARN("ignoring very long library path: %s/%s", path, name);
     return false;
   }
 
@@ -1006,8 +1015,7 @@
       *file_offset = 0;
       if (!realpath_fd(fd, realpath)) {
         if (!is_first_stage_init()) {
-          PRINT("warning: unable to get realpath for the library \"%s\". Will use given path.",
-                path);
+          DL_WARN("unable to get realpath for the library \"%s\". Will use given path.", path);
         }
         *realpath = path;
       }
@@ -1040,7 +1048,7 @@
                         ZipArchiveCache* zip_archive_cache,
                         const char* name, soinfo *needed_by,
                         off64_t* file_offset, std::string* realpath) {
-  TRACE("[ opening %s from namespace %s ]", name, ns->get_name());
+  LD_DEBUG(any, "[ opening %s from namespace %s ]", name, ns->get_name());
 
   // If the name contains a slash, we should attempt to open it directly and not search the paths.
   if (strchr(name, '/') != nullptr) {
@@ -1171,7 +1179,7 @@
          "load_library(ns=%s, task=%s, flags=0x%x, realpath=%s, search_linked_namespaces=%d)",
          ns->get_name(), name, rtld_flags, realpath.c_str(), search_linked_namespaces);
 
-  if ((file_offset % PAGE_SIZE) != 0) {
+  if ((file_offset % page_size()) != 0) {
     DL_OPEN_ERR("file offset for the library \"%s\" is not page-aligned: %" PRId64, name, file_offset);
     return false;
   }
@@ -1182,7 +1190,7 @@
 
   struct stat file_stat;
   if (TEMP_FAILURE_RETRY(fstat(task->get_fd(), &file_stat)) != 0) {
-    DL_OPEN_ERR("unable to stat file for the library \"%s\": %s", name, strerror(errno));
+    DL_OPEN_ERR("unable to stat file for the library \"%s\": %m", name);
     return false;
   }
   if (file_offset >= file_stat.st_size) {
@@ -1212,7 +1220,7 @@
 
   struct statfs fs_stat;
   if (TEMP_FAILURE_RETRY(fstatfs(task->get_fd(), &fs_stat)) != 0) {
-    DL_OPEN_ERR("unable to fstatfs file for the library \"%s\": %s", name, strerror(errno));
+    DL_OPEN_ERR("unable to fstatfs file for the library \"%s\": %m", name);
     return false;
   }
 
@@ -1246,15 +1254,15 @@
 
       // do not print this if a library is in the list of shared libraries for linked namespaces
       if (!maybe_accessible_via_namespace_links(ns, name)) {
-        PRINT("library \"%s\" (\"%s\") needed or dlopened by \"%s\" is not accessible for the"
-              " namespace: [name=\"%s\", ld_library_paths=\"%s\", default_library_paths=\"%s\","
-              " permitted_paths=\"%s\"]",
-              name, realpath.c_str(),
-              needed_or_dlopened_by,
-              ns->get_name(),
-              android::base::Join(ns->get_ld_library_paths(), ':').c_str(),
-              android::base::Join(ns->get_default_library_paths(), ':').c_str(),
-              android::base::Join(ns->get_permitted_paths(), ':').c_str());
+        DL_WARN("library \"%s\" (\"%s\") needed or dlopened by \"%s\" is not accessible for the"
+                " namespace: [name=\"%s\", ld_library_paths=\"%s\", default_library_paths=\"%s\","
+                " permitted_paths=\"%s\"]",
+                name, realpath.c_str(),
+                needed_or_dlopened_by,
+                ns->get_name(),
+                android::base::Join(ns->get_ld_library_paths(), ':').c_str(),
+                android::base::Join(ns->get_default_library_paths(), ':').c_str(),
+                android::base::Join(ns->get_permitted_paths(), ':').c_str());
       }
       return false;
     }
@@ -1327,10 +1335,9 @@
     std::string realpath;
     if (!realpath_fd(extinfo->library_fd, &realpath)) {
       if (!is_first_stage_init()) {
-        PRINT(
-            "warning: unable to get realpath for the library \"%s\" by extinfo->library_fd. "
-            "Will use given name.",
-            name);
+        DL_WARN("unable to get realpath for the library \"%s\" by extinfo->library_fd. "
+                "Will use given name.",
+                name);
       }
       realpath = name;
     }
@@ -1471,8 +1478,8 @@
 
   // Library might still be loaded, the accurate detection
   // of this fact is done by load_library.
-  TRACE("[ \"%s\" find_loaded_library_by_soname failed (*candidate=%s@%p). Trying harder... ]",
-        task->get_name(), candidate == nullptr ? "n/a" : candidate->get_realpath(), candidate);
+  LD_DEBUG(any, "[ \"%s\" find_loaded_library_by_soname failed (*candidate=%s@%p). Trying harder... ]",
+           task->get_name(), candidate == nullptr ? "n/a" : candidate->get_realpath(), candidate);
 
   if (load_library(ns, task, zip_archive_cache, load_tasks, rtld_flags,
                    true /* search_linked_namespaces */)) {
@@ -1691,14 +1698,40 @@
     }
   }
 
+  // The WebView loader uses RELRO sharing in order to promote page sharing of the large RELRO
+  // segment, as it's full of C++ vtables. Because MTE globals, by default, applies random tags to
+  // each global variable, the RELRO segment is polluted and unique for each process. In order to
+  // allow sharing, but still provide some protection, we use deterministic global tagging schemes
+  // for DSOs that are loaded through android_dlopen_ext, such as those loaded by WebView.
+  bool dlext_use_relro =
+      extinfo && extinfo->flags & (ANDROID_DLEXT_WRITE_RELRO | ANDROID_DLEXT_USE_RELRO);
+
   // Step 3: pre-link all DT_NEEDED libraries in breadth first order.
+  bool any_memtag_stack = false;
   for (auto&& task : load_tasks) {
     soinfo* si = task->get_soinfo();
-    if (!si->is_linked() && !si->prelink_image()) {
+    if (!si->is_linked() && !si->prelink_image(dlext_use_relro)) {
       return false;
     }
+    // si->memtag_stack() needs to be called after si->prelink_image() which populates
+    // the dynamic section.
+    if (si->memtag_stack()) {
+      any_memtag_stack = true;
+      LD_LOG(kLogDlopen,
+             "... load_library requesting stack MTE for: realpath=\"%s\", soname=\"%s\"",
+             si->get_realpath(), si->get_soname());
+    }
     register_soinfo_tls(si);
   }
+  if (any_memtag_stack) {
+    if (auto* cb = __libc_shared_globals()->memtag_stack_dlopen_callback) {
+      cb();
+    } else {
+      // find_library is used by the initial linking step, so we communicate that we
+      // want memtag_stack enabled to __libc_init_mte.
+      __libc_shared_globals()->initial_memtag_stack_abi = true;
+    }
+  }
 
   // Step 4: Construct the global group. DF_1_GLOBAL bit is force set for LD_PRELOADed libs because
   // they must be added to the global group. Note: The DF_1_GLOBAL bit for a library is normally set
@@ -1885,8 +1918,8 @@
     if (si->has_min_version(0)) {
       soinfo* child = nullptr;
       while ((child = si->get_children().pop_front()) != nullptr) {
-        TRACE("%s@%p needs to unload %s@%p", si->get_realpath(), si,
-            child->get_realpath(), child);
+        LD_DEBUG(any, "%s@%p needs to unload %s@%p", si->get_realpath(), si,
+                 child->get_realpath(), child);
 
         child->get_parents().remove(si);
 
@@ -2176,10 +2209,10 @@
       if (file_exists(translated_name_holder.c_str())) {
         soinfo* si = nullptr;
         if (find_loaded_library_by_realpath(ns, original_path, true, &si)) {
-          PRINT("linker_asan dlopen NOT translating \"%s\" -> \"%s\": library already loaded", name,
-                translated_name_holder.c_str());
+          DL_WARN("linker_asan dlopen NOT translating \"%s\" -> \"%s\": library already loaded", name,
+                  translated_name_holder.c_str());
         } else {
-          PRINT("linker_asan dlopen translating \"%s\" -> \"%s\"", name, translated_name);
+          DL_WARN("linker_asan dlopen translating \"%s\" -> \"%s\"", name, translated_name);
           translated_name = translated_name_holder.c_str();
         }
       }
@@ -2196,10 +2229,10 @@
       if (!translated_name_holder.empty() && file_exists(translated_name_holder.c_str())) {
         soinfo* si = nullptr;
         if (find_loaded_library_by_realpath(ns, original_path, true, &si)) {
-          PRINT("linker_hwasan dlopen NOT translating \"%s\" -> \"%s\": library already loaded", name,
-                translated_name_holder.c_str());
+          DL_WARN("linker_hwasan dlopen NOT translating \"%s\" -> \"%s\": library already loaded",
+                  name, translated_name_holder.c_str());
         } else {
-          PRINT("linker_hwasan dlopen translating \"%s\" -> \"%s\"", name, translated_name);
+          DL_WARN("linker_hwasan dlopen translating \"%s\" -> \"%s\"", name, translated_name);
           translated_name = translated_name_holder.c_str();
         }
       }
@@ -2337,7 +2370,7 @@
         void* tls_block = get_tls_block_for_this_thread(tls_module, /*should_alloc=*/true);
         *symbol = static_cast<char*>(tls_block) + sym->st_value;
       } else {
-        *symbol = reinterpret_cast<void*>(found->resolve_symbol_address(sym));
+        *symbol = get_tagged_address(reinterpret_cast<void*>(found->resolve_symbol_address(sym)));
       }
       failure_guard.Disable();
       LD_LOG(kLogDlsym,
@@ -2568,8 +2601,8 @@
   if (g_is_ldd) return 0;
 
   ElfW(Addr) ifunc_addr = __bionic_call_ifunc_resolver(resolver_addr);
-  TRACE_TYPE(RELO, "Called ifunc_resolver@%p. The result is %p",
-      reinterpret_cast<void *>(resolver_addr), reinterpret_cast<void*>(ifunc_addr));
+  LD_DEBUG(calls, "ifunc_resolver@%p returned %p",
+           reinterpret_cast<void *>(resolver_addr), reinterpret_cast<void*>(ifunc_addr));
 
   return ifunc_addr;
 }
@@ -2767,28 +2800,36 @@
   return true;
 }
 
-void soinfo::apply_relr_reloc(ElfW(Addr) offset) {
-  ElfW(Addr) address = offset + load_bias;
-  *reinterpret_cast<ElfW(Addr)*>(address) += load_bias;
+static void apply_relr_reloc(ElfW(Addr) offset, ElfW(Addr) load_bias, bool has_memtag_globals) {
+  ElfW(Addr) destination = offset + load_bias;
+  if (!has_memtag_globals) {
+    *reinterpret_cast<ElfW(Addr)*>(destination) += load_bias;
+    return;
+  }
+
+  ElfW(Addr)* tagged_destination =
+      reinterpret_cast<ElfW(Addr)*>(get_tagged_address(reinterpret_cast<void*>(destination)));
+  ElfW(Addr) tagged_value = reinterpret_cast<ElfW(Addr)>(
+      get_tagged_address(reinterpret_cast<void*>(*tagged_destination + load_bias)));
+  *tagged_destination = tagged_value;
 }
 
 // Process relocations in SHT_RELR section (experimental).
 // Details of the encoding are described in this post:
 //   https://groups.google.com/d/msg/generic-abi/bX460iggiKg/Pi9aSwwABgAJ
-bool soinfo::relocate_relr() {
-  ElfW(Relr)* begin = relr_;
-  ElfW(Relr)* end = relr_ + relr_count_;
+bool relocate_relr(const ElfW(Relr) * begin, const ElfW(Relr) * end, ElfW(Addr) load_bias,
+                   bool has_memtag_globals) {
   constexpr size_t wordsize = sizeof(ElfW(Addr));
 
   ElfW(Addr) base = 0;
-  for (ElfW(Relr)* current = begin; current < end; ++current) {
+  for (const ElfW(Relr)* current = begin; current < end; ++current) {
     ElfW(Relr) entry = *current;
     ElfW(Addr) offset;
 
     if ((entry&1) == 0) {
       // Even entry: encodes the offset for next relocation.
       offset = static_cast<ElfW(Addr)>(entry);
-      apply_relr_reloc(offset);
+      apply_relr_reloc(offset, load_bias, has_memtag_globals);
       // Set base offset for subsequent bitmap entries.
       base = offset + wordsize;
       continue;
@@ -2799,7 +2840,7 @@
     while (entry != 0) {
       entry >>= 1;
       if ((entry&1) != 0) {
-        apply_relr_reloc(offset);
+        apply_relr_reloc(offset, load_bias, has_memtag_globals);
       }
       offset += wordsize;
     }
@@ -2814,7 +2855,7 @@
 // An empty list of soinfos
 static soinfo_list_t g_empty_list;
 
-bool soinfo::prelink_image() {
+bool soinfo::prelink_image(bool dlext_use_relro) {
   if (flags_ & FLAG_PRELINKED) return true;
   /* Extract dynamic section */
   ElfW(Word) dynamic_flags = 0;
@@ -2823,8 +2864,8 @@
   /* We can't log anything until the linker is relocated */
   bool relocating_linker = (flags_ & FLAG_LINKER) != 0;
   if (!relocating_linker) {
-    INFO("[ Linking \"%s\" ]", get_realpath());
-    DEBUG("si->base = %p si->flags = 0x%08x", reinterpret_cast<void*>(base), flags_);
+    LD_DEBUG(any, "[ Linking \"%s\" ]", get_realpath());
+    LD_DEBUG(any, "si->base = %p si->flags = 0x%08x", reinterpret_cast<void*>(base), flags_);
   }
 
   if (dynamic == nullptr) {
@@ -2834,7 +2875,7 @@
     return false;
   } else {
     if (!relocating_linker) {
-      DEBUG("dynamic = %p", dynamic);
+      LD_DEBUG(dynamic, "dynamic section @%p", dynamic);
     }
   }
 
@@ -2845,11 +2886,12 @@
 
   TlsSegment tls_segment;
   if (__bionic_get_tls_segment(phdr, phnum, load_bias, &tls_segment)) {
-    if (!__bionic_check_tls_alignment(&tls_segment.alignment)) {
-      if (!relocating_linker) {
-        DL_ERR("TLS segment alignment in \"%s\" is not a power of 2: %zu",
-               get_realpath(), tls_segment.alignment);
-      }
+    // The loader does not (currently) support ELF TLS, so it shouldn't have
+    // a TLS segment.
+    CHECK(!relocating_linker && "TLS not supported in loader");
+    if (!__bionic_check_tls_align(tls_segment.aligned_size.align.value)) {
+      DL_ERR("TLS segment alignment in \"%s\" is not a power of 2: %zu", get_realpath(),
+             tls_segment.aligned_size.align.value);
       return false;
     }
     tls_ = std::make_unique<soinfo_tls>();
@@ -2863,8 +2905,8 @@
   // source: http://www.sco.com/developers/gabi/1998-04-29/ch5.dynamic.html
   uint32_t needed_count = 0;
   for (ElfW(Dyn)* d = dynamic; d->d_tag != DT_NULL; ++d) {
-    DEBUG("d = %p, d[0](tag) = %p d[1](val) = %p",
-          d, reinterpret_cast<void*>(d->d_tag), reinterpret_cast<void*>(d->d_un.d_val));
+    LD_DEBUG(dynamic, "dynamic entry @%p: d_tag=%p, d_val=%p",
+             d, reinterpret_cast<void*>(d->d_tag), reinterpret_cast<void*>(d->d_un.d_val));
     switch (d->d_tag) {
       case DT_SONAME:
         // this is parsed after we have strtab initialized (see below).
@@ -3078,17 +3120,17 @@
 
       case DT_INIT:
         init_func_ = reinterpret_cast<linker_ctor_function_t>(load_bias + d->d_un.d_ptr);
-        DEBUG("%s constructors (DT_INIT) found at %p", get_realpath(), init_func_);
+        LD_DEBUG(dynamic, "%s constructors (DT_INIT) found at %p", get_realpath(), init_func_);
         break;
 
       case DT_FINI:
         fini_func_ = reinterpret_cast<linker_dtor_function_t>(load_bias + d->d_un.d_ptr);
-        DEBUG("%s destructors (DT_FINI) found at %p", get_realpath(), fini_func_);
+        LD_DEBUG(dynamic, "%s destructors (DT_FINI) found at %p", get_realpath(), fini_func_);
         break;
 
       case DT_INIT_ARRAY:
         init_array_ = reinterpret_cast<linker_ctor_function_t*>(load_bias + d->d_un.d_ptr);
-        DEBUG("%s constructors (DT_INIT_ARRAY) found at %p", get_realpath(), init_array_);
+        LD_DEBUG(dynamic, "%s constructors (DT_INIT_ARRAY) found at %p", get_realpath(), init_array_);
         break;
 
       case DT_INIT_ARRAYSZ:
@@ -3097,7 +3139,7 @@
 
       case DT_FINI_ARRAY:
         fini_array_ = reinterpret_cast<linker_dtor_function_t*>(load_bias + d->d_un.d_ptr);
-        DEBUG("%s destructors (DT_FINI_ARRAY) found at %p", get_realpath(), fini_array_);
+        LD_DEBUG(dynamic, "%s destructors (DT_FINI_ARRAY) found at %p", get_realpath(), fini_array_);
         break;
 
       case DT_FINI_ARRAYSZ:
@@ -3106,7 +3148,7 @@
 
       case DT_PREINIT_ARRAY:
         preinit_array_ = reinterpret_cast<linker_ctor_function_t*>(load_bias + d->d_un.d_ptr);
-        DEBUG("%s constructors (DT_PREINIT_ARRAY) found at %p", get_realpath(), preinit_array_);
+        LD_DEBUG(dynamic, "%s constructors (DT_PREINIT_ARRAY) found at %p", get_realpath(), preinit_array_);
         break;
 
       case DT_PREINIT_ARRAYSZ:
@@ -3193,13 +3235,32 @@
       case DT_AARCH64_VARIANT_PCS:
         // Ignored: AArch64 processor-specific dynamic array tags.
         break;
-      // TODO(mitchp): Add support to libc_init_mte to use these dynamic array entries instead of
-      // the Android-specific ELF note.
       case DT_AARCH64_MEMTAG_MODE:
+        memtag_dynamic_entries_.has_memtag_mode = true;
+        memtag_dynamic_entries_.memtag_mode = d->d_un.d_val;
+        break;
       case DT_AARCH64_MEMTAG_HEAP:
+        memtag_dynamic_entries_.memtag_heap = d->d_un.d_val;
+        break;
+      // The AArch64 MemtagABI originally erroneously defined
+      // DT_AARCH64_MEMTAG_STACK as `d_ptr`, which is why the dynamic tag value
+      // is odd (`0x7000000c`). `d_val` is clearly the correct semantics, and so
+      // this was fixed in the ABI, but the value (0x7000000c) didn't change
+      // because we already had Android binaries floating around with dynamic
+      // entries, and didn't want to create a whole new dynamic entry and
+      // reserve a value just to fix that tiny mistake. P.S. lld was always
+      // outputting DT_AARCH64_MEMTAG_STACK as `d_val` anyway.
       case DT_AARCH64_MEMTAG_STACK:
+        memtag_dynamic_entries_.memtag_stack = d->d_un.d_val;
+        break;
+      // Same as above, except DT_AARCH64_MEMTAG_GLOBALS was incorrectly defined
+      // as `d_val` (hence an even value of `0x7000000d`), when it should have
+      // been `d_ptr` all along. lld has always outputted this as `d_ptr`.
       case DT_AARCH64_MEMTAG_GLOBALS:
+        memtag_dynamic_entries_.memtag_globals = reinterpret_cast<void*>(load_bias + d->d_un.d_ptr);
+        break;
       case DT_AARCH64_MEMTAG_GLOBALSSZ:
+        memtag_dynamic_entries_.memtag_globalssz = d->d_un.d_val;
         break;
 #endif
 
@@ -3227,8 +3288,8 @@
     }
   }
 
-  DEBUG("si->base = %p, si->strtab = %p, si->symtab = %p",
-        reinterpret_cast<void*>(base), strtab_, symtab_);
+  LD_DEBUG(dynamic, "si->base = %p, si->strtab = %p, si->symtab = %p",
+           reinterpret_cast<void*>(base), strtab_, symtab_);
 
   // Validity checks.
   if (relocating_linker && needed_count != 0) {
@@ -3283,6 +3344,18 @@
   // it each time we look up a symbol with a version.
   if (!validate_verdef_section(this)) return false;
 
+  // MTE globals requires remapping data segments with PROT_MTE as anonymous mappings, because file
+  // based mappings may not be backed by tag-capable memory (see "MAP_ANONYMOUS" on
+  // https://www.kernel.org/doc/html/latest/arch/arm64/memory-tagging-extension.html). This is only
+  // done if the binary has MTE globals (evidenced by the dynamic table entries), as it destroys
+  // page sharing. It's also only done on devices that support MTE, because the act of remapping
+  // pages is unnecessary on non-MTE devices (where we might still run MTE-globals enabled code).
+  if (should_tag_memtag_globals() &&
+      remap_memtag_globals_segments(phdr, phnum, base) == 0) {
+    tag_globals(dlext_use_relro);
+    protect_memtag_globals_ro_segments(phdr, phnum, base);
+  }
+
   flags_ |= FLAG_PRELINKED;
   return true;
 }
@@ -3324,25 +3397,26 @@
                               "\"%s\" has text relocations",
                               get_realpath());
     add_dlwarning(get_realpath(), "text relocations");
-    if (phdr_table_unprotect_segments(phdr, phnum, load_bias) < 0) {
-      DL_ERR("can't unprotect loadable segments for \"%s\": %s", get_realpath(), strerror(errno));
+    if (phdr_table_unprotect_segments(phdr, phnum, load_bias, should_pad_segments_,
+                                      should_use_16kib_app_compat_) < 0) {
+      DL_ERR("can't unprotect loadable segments for \"%s\": %m", get_realpath());
       return false;
     }
   }
 #endif
 
-  if (!relocate(lookup_list)) {
+  if (this != solist_get_vdso() && !relocate(lookup_list)) {
     return false;
   }
 
-  DEBUG("[ finished linking %s ]", get_realpath());
+  LD_DEBUG(any, "[ finished linking %s ]", get_realpath());
 
 #if !defined(__LP64__)
   if (has_text_relocations) {
     // All relocations are done, we can protect our segments back to read-only.
-    if (phdr_table_protect_segments(phdr, phnum, load_bias) < 0) {
-      DL_ERR("can't protect segments for \"%s\": %s",
-             get_realpath(), strerror(errno));
+    if (phdr_table_protect_segments(phdr, phnum, load_bias, should_pad_segments_,
+                                    should_use_16kib_app_compat_) < 0) {
+      DL_ERR("can't protect segments for \"%s\": %m", get_realpath());
       return false;
     }
   }
@@ -3354,19 +3428,24 @@
     return false;
   }
 
+  if (should_tag_memtag_globals()) {
+    std::list<std::string>* vma_names_ptr = vma_names();
+    // should_tag_memtag_globals -> __aarch64__ -> vma_names() != nullptr
+    CHECK(vma_names_ptr);
+    name_memtag_globals_segments(phdr, phnum, base, get_realpath(), vma_names_ptr);
+  }
+
   /* Handle serializing/sharing the RELRO segment */
   if (extinfo && (extinfo->flags & ANDROID_DLEXT_WRITE_RELRO)) {
     if (phdr_table_serialize_gnu_relro(phdr, phnum, load_bias,
                                        extinfo->relro_fd, relro_fd_offset) < 0) {
-      DL_ERR("failed serializing GNU RELRO section for \"%s\": %s",
-             get_realpath(), strerror(errno));
+      DL_ERR("failed serializing GNU RELRO section for \"%s\": %m", get_realpath());
       return false;
     }
   } else if (extinfo && (extinfo->flags & ANDROID_DLEXT_USE_RELRO)) {
     if (phdr_table_map_gnu_relro(phdr, phnum, load_bias,
                                  extinfo->relro_fd, relro_fd_offset) < 0) {
-      DL_ERR("failed mapping GNU RELRO section for \"%s\": %s",
-             get_realpath(), strerror(errno));
+      DL_ERR("failed mapping GNU RELRO section for \"%s\": %m", get_realpath());
       return false;
     }
   }
@@ -3378,14 +3457,70 @@
 }
 
 bool soinfo::protect_relro() {
-  if (phdr_table_protect_gnu_relro(phdr, phnum, load_bias) < 0) {
-    DL_ERR("can't enable GNU RELRO protection for \"%s\": %s",
-           get_realpath(), strerror(errno));
-    return false;
+  if (should_use_16kib_app_compat_) {
+    if (phdr_table_protect_gnu_relro_16kib_compat(compat_relro_start_, compat_relro_size_) < 0) {
+      DL_ERR("can't enable COMPAT GNU RELRO protection for \"%s\": %s", get_realpath(),
+             strerror(errno));
+      return false;
+    }
+  } else {
+    if (phdr_table_protect_gnu_relro(phdr, phnum, load_bias, should_pad_segments_,
+                                     should_use_16kib_app_compat_) < 0) {
+      DL_ERR("can't enable GNU RELRO protection for \"%s\": %m", get_realpath());
+      return false;
+    }
   }
   return true;
 }
 
+// https://github.com/ARM-software/abi-aa/blob/main/memtagabielf64/memtagabielf64.rst#global-variable-tagging
+void soinfo::tag_globals(bool dlext_use_relro) {
+  if (is_linked()) return;
+  if (flags_ & FLAG_GLOBALS_TAGGED) return;
+  flags_ |= FLAG_GLOBALS_TAGGED;
+
+  constexpr size_t kTagGranuleSize = 16;
+  const uint8_t* descriptor_stream = reinterpret_cast<const uint8_t*>(memtag_globals());
+
+  if (memtag_globalssz() == 0) {
+    DL_ERR("Invalid memtag descriptor pool size: %zu", memtag_globalssz());
+  }
+
+  uint64_t addr = load_bias;
+  uleb128_decoder decoder(descriptor_stream, memtag_globalssz());
+  // Don't ever generate tag zero, to easily distinguish between tagged and
+  // untagged globals in register/tag dumps.
+  uint64_t last_tag_mask = 1;
+  uint64_t last_tag = 1;
+  constexpr uint64_t kDistanceReservedBits = 3;
+
+  while (decoder.has_bytes()) {
+    uint64_t value = decoder.pop_front();
+    uint64_t distance = (value >> kDistanceReservedBits) * kTagGranuleSize;
+    uint64_t ngranules = value & ((1 << kDistanceReservedBits) - 1);
+    if (ngranules == 0) {
+      ngranules = decoder.pop_front() + 1;
+    }
+
+    addr += distance;
+    void* tagged_addr;
+    if (dlext_use_relro) {
+      tagged_addr = reinterpret_cast<void*>(addr | (last_tag++ << 56));
+      if (last_tag > (1 << kTagGranuleSize)) last_tag = 1;
+    } else {
+      tagged_addr = insert_random_tag(reinterpret_cast<void*>(addr), last_tag_mask);
+      uint64_t tag = (reinterpret_cast<uint64_t>(tagged_addr) >> 56) & 0x0f;
+      last_tag_mask = 1 | (1 << tag);
+    }
+
+    for (size_t k = 0; k < ngranules; k++) {
+      auto* granule = static_cast<uint8_t*>(tagged_addr) + k * kTagGranuleSize;
+      set_memory_tag(static_cast<void*>(granule));
+    }
+    addr += ngranules * kTagGranuleSize;
+  }
+}
+
 static std::vector<android_namespace_t*> init_default_namespace_no_config(bool is_asan, bool is_hwasan) {
   g_default_namespace.set_isolated(false);
   auto default_ld_paths = is_asan ? kAsanDefaultLdPaths : (
@@ -3521,7 +3656,7 @@
 
   {
     std::string ld_config_file_path = get_ld_config_file_path(executable_path);
-    INFO("[ Reading linker config \"%s\" ]", ld_config_file_path.c_str());
+    LD_DEBUG(any, "[ Reading linker config \"%s\" ]", ld_config_file_path.c_str());
     ScopedTrace trace(("linker config " + ld_config_file_path).c_str());
     std::string error_msg;
     if (!Config::read_binary_config(ld_config_file_path.c_str(), executable_path, g_is_asan, g_is_hwasan,
@@ -3556,7 +3691,7 @@
   // 2. Initialize other namespaces
 
   for (auto& ns_config : namespace_configs) {
-    if (namespaces.find(ns_config->name()) != namespaces.end()) {
+    if (namespaces.contains(ns_config->name())) {
       continue;
     }
 
diff --git a/linker/linker.generic.map b/linker/linker.generic.map
index 4d7f236..2beae65 100644
--- a/linker/linker.generic.map
+++ b/linker/linker.generic.map
@@ -24,6 +24,7 @@
     __loader_shared_globals;
     rtld_db_dlactivity;
     __loader_android_handle_signal;
+    __loader_android_set_16kb_appcompat_mode;
   local:
     *;
 };
diff --git a/linker/linker.h b/linker/linker.h
index a803424..7afa0d7 100644
--- a/linker/linker.h
+++ b/linker/linker.h
@@ -72,7 +72,7 @@
 };
 
 static constexpr const char* kBionicChangesUrl =
-    "https://android.googlesource.com/platform/bionic/+/master/"
+    "https://android.googlesource.com/platform/bionic/+/main/"
     "android-changes-for-ndk-developers.md";
 
 soinfo* get_libdl_info(const soinfo& linker_si);
@@ -103,15 +103,14 @@
 
 int do_dladdr(const void* addr, Dl_info* info);
 
-// void ___cfi_slowpath(uint64_t CallSiteTypeId, void *Ptr, void *Ret);
-// void ___cfi_slowpath_diag(uint64_t CallSiteTypeId, void *Ptr, void *DiagData, void *Ret);
-void ___cfi_fail(uint64_t CallSiteTypeId, void* Ptr, void *DiagData, void *Ret);
-
 void set_application_target_sdk_version(int target);
 int get_application_target_sdk_version();
 
 bool get_transparent_hugepages_supported();
 
+void set_16kb_appcompat_mode(bool enable_app_compat);
+bool get_16kb_appcompat_mode();
+
 enum {
   /* A regular namespace is the namespace with a custom search path that does
    * not impose any restrictions on the location of native libraries.
@@ -183,6 +182,8 @@
 int get_application_target_sdk_version();
 ElfW(Versym) find_verdef_version_index(const soinfo* si, const version_info* vi);
 bool validate_verdef_section(const soinfo* si);
+bool relocate_relr(const ElfW(Relr) * begin, const ElfW(Relr) * end, ElfW(Addr) load_bias,
+                   bool has_memtag_globals);
 
 struct platform_properties {
 #if defined(__aarch64__)
diff --git a/linker/linker_auxv.cpp b/linker/linker_auxv.cpp
new file mode 100644
index 0000000..23025f7
--- /dev/null
+++ b/linker/linker_auxv.cpp
@@ -0,0 +1,134 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *  * Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *  * Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in
+ *    the documentation and/or other materials provided with the
+ *    distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#include "linker_auxv.h"
+
+#include <elf.h>
+#include <stdio.h>
+#include <sys/auxv.h>
+#include <unistd.h>
+
+#include <async_safe/log.h>
+
+static const char* auxv_name(int at) {
+  switch (at) {
+  case AT_NULL: return "AT_NULL";
+  case AT_IGNORE: return "AT_IGNORE";
+  case AT_EXECFD: return "AT_EXECFD";
+  case AT_PHDR: return "AT_PHDR";
+  case AT_PHENT: return "AT_PHENT";
+  case AT_PHNUM: return "AT_PHNUM";
+  case AT_PAGESZ: return "AT_PAGESZ";
+  case AT_BASE: return "AT_BASE";
+  case AT_FLAGS: return "AT_FLAGS";
+  case AT_ENTRY: return "AT_ENTRY";
+  case AT_NOTELF: return "AT_NOTELF";
+  case AT_UID: return "AT_UID";
+  case AT_EUID: return "AT_EUID";
+  case AT_GID: return "AT_GID";
+  case AT_EGID: return "AT_EGID";
+  case AT_PLATFORM: return "AT_PLATFORM";
+  case AT_HWCAP: return "AT_HWCAP";
+  case AT_CLKTCK: return "AT_CLKTCK";
+  case AT_SECURE: return "AT_SECURE";
+  case AT_BASE_PLATFORM: return "AT_BASE_PLATFORM";
+  case AT_RANDOM: return "AT_RANDOM";
+  case AT_HWCAP2: return "AT_HWCAP2";
+  case AT_RSEQ_FEATURE_SIZE: return "AT_RSEQ_FEATURE_SIZE";
+  case AT_RSEQ_ALIGN: return "AT_RSEQ_ALIGN";
+  case AT_HWCAP3: return "AT_HWCAP3";
+  case AT_HWCAP4: return "AT_HWCAP4";
+  case AT_EXECFN: return "AT_EXECFN";
+  case AT_SYSINFO_EHDR: return "AT_SYSINFO_EHDR";
+  case AT_MINSIGSTKSZ: return "AT_MINSIGSTKSZ";
+#if defined(AT_VECTOR_SIZE_ARCH)
+  // AT_VECTOR_SIZE_ARCH isn't a value: it's the number of architecture-specific
+  // values that exist for the current architecture, so not relevant here.
+#endif
+#if defined(AT_SYSINFO)
+  case AT_SYSINFO: return "AT_SYSINFO";
+#endif
+#if defined(AT_L1I_CACHESIZE)
+  case AT_L1I_CACHESIZE: return "AT_L1I_CACHESIZE";
+#endif
+#if defined(AT_L1I_CACHEGEOMETRY)
+  case AT_L1I_CACHEGEOMETRY: return "AT_L1I_CACHEGEOMETRY";
+#endif
+#if defined(AT_L1D_CACHESIZE)
+  case AT_L1D_CACHESIZE: return "AT_L1D_CACHESIZE";
+#endif
+#if defined(AT_L1D_CACHEGEOMETRY)
+  case AT_L1D_CACHEGEOMETRY: return "AT_L1D_CACHEGEOMETRY";
+#endif
+#if defined(AT_L2_CACHESIZE)
+  case AT_L2_CACHESIZE: return "AT_L2_CACHESIZE";
+#endif
+#if defined(AT_L2_CACHEGEOMETRY)
+  case AT_L2_CACHEGEOMETRY: return "AT_L2_CACHEGEOMETRY";
+#endif
+#if defined(AT_L3_CACHESIZE)
+  case AT_L3_CACHESIZE: return "AT_L3_CACHESIZE";
+#endif
+#if defined(AT_L3_CACHEGEOMETRY)
+  case AT_L3_CACHEGEOMETRY: return "AT_L3_CACHEGEOMETRY";
+#endif
+  }
+  static char name[32];
+  snprintf(name, sizeof(name), "AT_??? (%d)", at);
+  return name;
+}
+
+void ld_show_auxv(ElfW(auxv_t)* auxv) {
+  for (ElfW(auxv_t)* v = auxv; v->a_type != AT_NULL; ++v) {
+    const char* name = auxv_name(v->a_type);
+    long value = v->a_un.a_val;
+    switch (v->a_type) {
+    case AT_SYSINFO_EHDR:
+    case AT_PHDR:
+    case AT_BASE:
+    case AT_ENTRY:
+    case AT_RANDOM:
+      async_safe_format_fd(STDOUT_FILENO, "%-20s %#lx\n", name, value);
+      break;
+    case AT_FLAGS:
+    case AT_HWCAP:
+    case AT_HWCAP2:
+    case AT_HWCAP3:
+    case AT_HWCAP4:
+      async_safe_format_fd(STDOUT_FILENO, "%-20s %#lb\n", name, value);
+      break;
+    case AT_EXECFN:
+    case AT_PLATFORM:
+      async_safe_format_fd(STDOUT_FILENO, "%-20s \"%s\"\n", name, reinterpret_cast<char*>(value));
+      break;
+    default:
+      async_safe_format_fd(STDOUT_FILENO, "%-20s %ld\n", name, value);
+      break;
+    }
+  }
+}
diff --git a/libm/fenv-access.h b/linker/linker_auxv.h
similarity index 90%
rename from libm/fenv-access.h
rename to linker/linker_auxv.h
index 7acb34d..c093283 100644
--- a/libm/fenv-access.h
+++ b/linker/linker_auxv.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2021 The Android Open Source Project
+ * Copyright (C) 2023 The Android Open Source Project
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -28,6 +28,7 @@
 
 #pragma once
 
-#if defined(__x86_64__) || defined(__i386__)
-#pragma STDC FENV_ACCESS ON
-#endif
+#include <elf.h>
+#include <link.h>
+
+void ld_show_auxv(ElfW(auxv_t)* auxv);
diff --git a/linker/linker_block_allocator.cpp b/linker/linker_block_allocator.cpp
index 60e5e1c..e70e6ae 100644
--- a/linker/linker_block_allocator.cpp
+++ b/linker/linker_block_allocator.cpp
@@ -37,8 +37,9 @@
 
 #include "linker_debug.h"
 
-static constexpr size_t kAllocateSize = PAGE_SIZE * 100;
-static_assert(kAllocateSize % PAGE_SIZE == 0, "Invalid kAllocateSize.");
+static constexpr size_t kMaxPageSize = 65536;
+static constexpr size_t kAllocateSize = kMaxPageSize * 6;
+static_assert(kAllocateSize % kMaxPageSize == 0, "Invalid kAllocateSize.");
 
 struct LinkerBlockAllocatorPage {
   LinkerBlockAllocatorPage* next;
diff --git a/linker/linker_cfi.cpp b/linker/linker_cfi.cpp
index 6bc2615..92ec53e 100644
--- a/linker/linker_cfi.cpp
+++ b/linker/linker_cfi.cpp
@@ -50,8 +50,8 @@
   ShadowWrite(uint16_t* s, uint16_t* e) {
     shadow_start = reinterpret_cast<char*>(s);
     shadow_end = reinterpret_cast<char*>(e);
-    aligned_start = reinterpret_cast<char*>(PAGE_START(reinterpret_cast<uintptr_t>(shadow_start)));
-    aligned_end = reinterpret_cast<char*>(PAGE_END(reinterpret_cast<uintptr_t>(shadow_end)));
+    aligned_start = reinterpret_cast<char*>(page_start(reinterpret_cast<uintptr_t>(shadow_start)));
+    aligned_end = reinterpret_cast<char*>(page_end(reinterpret_cast<uintptr_t>(shadow_end)));
     tmp_start =
         reinterpret_cast<char*>(mmap(nullptr, aligned_end - aligned_start, PROT_READ | PROT_WRITE,
                                      MAP_PRIVATE | MAP_ANONYMOUS, -1, 0));
@@ -166,13 +166,13 @@
   }
   uintptr_t cfi_check = soinfo_find_cfi_check(si);
   if (cfi_check == 0) {
-    INFO("[ CFI add 0x%zx + 0x%zx %s ]", static_cast<uintptr_t>(si->base),
+    LD_DEBUG(cfi, "[ CFI add 0x%zx + 0x%zx %s ]", static_cast<uintptr_t>(si->base),
          static_cast<uintptr_t>(si->size), si->get_soname());
     AddUnchecked(si->base, si->base + si->size);
     return true;
   }
 
-  INFO("[ CFI add 0x%zx + 0x%zx %s: 0x%zx ]", static_cast<uintptr_t>(si->base),
+  LD_DEBUG(cfi, "[ CFI add 0x%zx + 0x%zx %s: 0x%zx ]", static_cast<uintptr_t>(si->base),
        static_cast<uintptr_t>(si->size), si->get_soname(), cfi_check);
 #ifdef __arm__
   // Require Thumb encoding.
@@ -204,7 +204,7 @@
   shadow_start = reinterpret_cast<uintptr_t* (*)(uintptr_t)>(cfi_init)(p);
   CHECK(shadow_start != nullptr);
   CHECK(*shadow_start == p);
-  mprotect(shadow_start, PAGE_SIZE, PROT_READ);
+  mprotect(shadow_start, page_size(), PROT_READ);
   return true;
 }
 
@@ -263,8 +263,8 @@
 void CFIShadowWriter::BeforeUnload(soinfo* si) {
   if (shadow_start == nullptr) return;
   if (si->base == 0 || si->size == 0) return;
-  INFO("[ CFI remove 0x%zx + 0x%zx: %s ]", static_cast<uintptr_t>(si->base),
-       static_cast<uintptr_t>(si->size), si->get_soname());
+  LD_DEBUG(cfi, "[ CFI remove 0x%zx + 0x%zx: %s ]", static_cast<uintptr_t>(si->base),
+           static_cast<uintptr_t>(si->size), si->get_soname());
   AddInvalid(si->base, si->base + si->size);
   FixupVmaName();
 }
diff --git a/linker/linker_config.cpp b/linker/linker_config.cpp
index ad40c50..35a93fc 100644
--- a/linker/linker_config.cpp
+++ b/linker/linker_config.cpp
@@ -46,9 +46,6 @@
 #include <string>
 #include <unordered_map>
 
-#define _REALLY_INCLUDE_SYS__SYSTEM_PROPERTIES_H_
-#include <sys/_system_properties.h>
-
 class ConfigParser {
  public:
   enum {
@@ -254,11 +251,8 @@
         // the failure with INFO rather than DL_WARN. e.g. A binary in
         // /data/local/tmp may attempt to stat /postinstall. See
         // http://b/120996057.
-        INFO("%s:%zd: warning: path \"%s\" couldn't be resolved: %s",
-             ld_config_file_path,
-             cp.lineno(),
-             value.c_str(),
-             strerror(errno));
+        LD_DEBUG(any, "%s:%zd: warning: path \"%s\" couldn't be resolved: %m",
+                 ld_config_file_path, cp.lineno(), value.c_str());
         resolved_path = value;
       }
 
@@ -269,7 +263,7 @@
     }
   }
 
-  INFO("[ Using config section \"%s\" ]", section_name.c_str());
+  LD_DEBUG(any, "[ Using config section \"%s\" ]", section_name.c_str());
 
   // skip everything until we meet a correct section
   while (true) {
@@ -304,7 +298,7 @@
     }
 
     if (result == ConfigParser::kPropertyAssign) {
-      if (properties->find(name) != properties->end()) {
+      if (properties->contains(name)) {
         DL_WARN("%s:%zd: warning: redefining property \"%s\" (overriding previous value)",
                 ld_config_file_path,
                 cp.lineno(),
@@ -313,7 +307,7 @@
 
       (*properties)[name] = PropertyValue(std::move(value), cp.lineno());
     } else if (result == ConfigParser::kPropertyAppend) {
-      if (properties->find(name) == properties->end()) {
+      if (!properties->contains(name)) {
         DL_WARN("%s:%zd: warning: appending to undefined property \"%s\" (treating as assignment)",
                 ld_config_file_path,
                 cp.lineno(),
@@ -526,7 +520,7 @@
         properties.get_strings(property_name_prefix + ".links", &lineno);
 
     for (const auto& linked_ns_name : linked_namespaces) {
-      if (namespace_configs.find(linked_ns_name) == namespace_configs.end()) {
+      if (!namespace_configs.contains(linked_ns_name)) {
         *error_msg = create_error_msg(ld_config_file_path,
                                       lineno,
                                       std::string("undefined namespace: ") + linked_ns_name);
diff --git a/linker/linker_crt_pad_segment_test.cpp b/linker/linker_crt_pad_segment_test.cpp
new file mode 100644
index 0000000..c11df50
--- /dev/null
+++ b/linker/linker_crt_pad_segment_test.cpp
@@ -0,0 +1,93 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *  * Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *  * Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in
+ *    the documentation and/or other materials provided with the
+ *    distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#include <android-base/file.h>
+#include <android-base/unique_fd.h>
+
+#include "linker_phdr.h"
+
+#include <gtest/gtest.h>
+
+#include <fcntl.h>
+#include <string.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <unistd.h>
+
+#include <string>
+
+using ::android::base::GetExecutableDirectory;
+using ::android::base::unique_fd;
+
+namespace {
+
+static std::string GetTestElfPath(const std::string& filename) {
+  static std::string test_data_dir = GetExecutableDirectory();
+
+  return test_data_dir + "/" + filename;
+}
+
+bool GetPadSegment(const std::string& elf_path) {
+  std::string path = GetTestElfPath(elf_path);
+
+  unique_fd fd{TEMP_FAILURE_RETRY(open(path.c_str(), O_CLOEXEC | O_RDWR))};
+  EXPECT_GE(fd.get(), 0) << "Failed to open " << path << ": " << strerror(errno);
+
+  struct stat file_stat;
+  EXPECT_NE(TEMP_FAILURE_RETRY(fstat(fd.get(), &file_stat)), -1)
+        << "Failed to stat " << path << ": " << strerror(errno);
+
+  ElfReader elf_reader;
+  EXPECT_TRUE(elf_reader.Read(path.c_str(), fd.get(), 0, file_stat.st_size))
+        << "Failed to read ELF file";
+
+  return elf_reader.should_pad_segments();
+}
+
+};  // anonymous namespace
+
+TEST(crt_pad_segment, note_absent) {
+  if (!page_size_migration_supported()) {
+    GTEST_SKIP() << "Kernel does not support page size migration";
+  }
+  ASSERT_FALSE(GetPadSegment("no_crt_pad_segment.so"));
+}
+
+TEST(crt_pad_segment, note_present_and_enabled) {
+  if (!page_size_migration_supported()) {
+    GTEST_SKIP() << "Kernel does not support page size migration";
+  }
+  ASSERT_TRUE(GetPadSegment("crt_pad_segment_enabled.so"));
+}
+
+TEST(crt_pad_segment, note_present_and_disabled) {
+  if (!page_size_migration_supported()) {
+    GTEST_SKIP() << "Kernel does not support page size migration";
+  }
+  ASSERT_FALSE(GetPadSegment("crt_pad_segment_disabled.so"));
+}
diff --git a/linker/linker_debug.cpp b/linker/linker_debug.cpp
index b0aae79..430a151 100644
--- a/linker/linker_debug.cpp
+++ b/linker/linker_debug.cpp
@@ -30,18 +30,76 @@
 
 #include <unistd.h>
 
-void linker_log_va_list(int prio __unused, const char* fmt, va_list ap) {
-#if LINKER_DEBUG_TO_LOG
-  async_safe_format_log_va_list(5 - prio, "linker", fmt, ap);
-#else
-  async_safe_format_fd_va_list(STDOUT_FILENO, fmt, ap);
-  write(STDOUT_FILENO, "\n", 1);
-#endif
+#include <android-base/strings.h>
+
+LinkerDebugConfig g_linker_debug_config;
+
+void init_LD_DEBUG(const std::string& value) {
+  if (value.empty()) return;
+  std::vector<std::string> options = android::base::Split(value, ",");
+  for (const auto& o : options) {
+    if (o == "calls") g_linker_debug_config.calls = true;
+    else if (o == "cfi") g_linker_debug_config.cfi = true;
+    else if (o == "dynamic") g_linker_debug_config.dynamic = true;
+    else if (o == "lookup") g_linker_debug_config.lookup = true;
+    else if (o == "props") g_linker_debug_config.props = true;
+    else if (o == "reloc") g_linker_debug_config.reloc = true;
+    else if (o == "statistics") g_linker_debug_config.statistics = true;
+    else if (o == "timing") g_linker_debug_config.timing = true;
+    else if (o == "all") {
+      g_linker_debug_config.calls = true;
+      g_linker_debug_config.cfi = true;
+      g_linker_debug_config.dynamic = true;
+      g_linker_debug_config.lookup = true;
+      g_linker_debug_config.props = true;
+      g_linker_debug_config.reloc = true;
+      g_linker_debug_config.statistics = true;
+      g_linker_debug_config.timing = true;
+    } else {
+      __linker_error("$LD_DEBUG is a comma-separated list of:\n"
+                     "\n"
+                     "  calls       ctors/dtors/ifuncs\n"
+                     "  cfi         control flow integrity messages\n"
+                     "  dynamic     dynamic section processing\n"
+                     "  lookup      symbol lookup\n"
+                     "  props       ELF property processing\n"
+                     "  reloc       relocation resolution\n"
+                     "  statistics  relocation statistics\n"
+                     "  timing      timing information\n"
+                     "\n"
+                     "or 'all' for all of the above.\n");
+    }
+  }
+  if (g_linker_debug_config.calls || g_linker_debug_config.cfi ||
+      g_linker_debug_config.dynamic || g_linker_debug_config.lookup ||
+      g_linker_debug_config.props || g_linker_debug_config.reloc ||
+      g_linker_debug_config.statistics || g_linker_debug_config.timing) {
+    g_linker_debug_config.any = true;
+  }
 }
 
-void linker_log(int prio, const char* fmt, ...) {
+static void linker_log_va_list(int prio, const char* fmt, va_list ap) {
+  va_list ap2;
+  va_copy(ap2, ap);
+  async_safe_format_log_va_list(prio, "linker", fmt, ap2);
+  va_end(ap2);
+
+  async_safe_format_fd_va_list(STDERR_FILENO, fmt, ap);
+  write(STDERR_FILENO, "\n", 1);
+}
+
+void __linker_log(int prio, const char* fmt, ...) {
   va_list ap;
   va_start(ap, fmt);
   linker_log_va_list(prio, fmt, ap);
   va_end(ap);
 }
+
+void __linker_error(const char* fmt, ...) {
+  va_list ap;
+  va_start(ap, fmt);
+  linker_log_va_list(ANDROID_LOG_FATAL, fmt, ap);
+  va_end(ap);
+
+  _exit(EXIT_FAILURE);
+}
diff --git a/linker/linker_debug.h b/linker/linker_debug.h
index 477b009..e5f17c4 100644
--- a/linker/linker_debug.h
+++ b/linker/linker_debug.h
@@ -28,59 +28,45 @@
 
 #pragma once
 
-// You can increase the verbosity of debug traces by defining the LD_DEBUG
-// environment variable to a numeric value from 0 to 2 (corresponding to
-// INFO, TRACE, and DEBUG calls in the source). This will only
-// affect new processes being launched.
-
-// By default, traces are sent to logcat, with the "linker" tag. You can
-// change this to go to stdout instead by setting the definition of
-// LINKER_DEBUG_TO_LOG to 0.
-#define LINKER_DEBUG_TO_LOG  1
-
-#define TRACE_DEBUG          1
-#define DO_TRACE_LOOKUP      1
-#define DO_TRACE_RELO        1
-#define DO_TRACE_IFUNC       1
-#define TIMING               0
-#define STATS                0
-
-/*********************************************************************
- * You shouldn't need to modify anything below unless you are adding
- * more debugging information.
- *
- * To enable/disable specific debug options, change the defines above
- *********************************************************************/
-
 #include <stdarg.h>
 #include <unistd.h>
 
+#include <string>
+
 #include <async_safe/log.h>
 #include <async_safe/CHECK.h>
 
-#define LINKER_VERBOSITY_PRINT (-1)
-#define LINKER_VERBOSITY_INFO   0
-#define LINKER_VERBOSITY_TRACE  1
-#define LINKER_VERBOSITY_DEBUG  2
+struct LinkerDebugConfig {
+  // Set automatically if any of the more specific options are set.
+  bool any;
 
-__LIBC_HIDDEN__ extern int g_ld_debug_verbosity;
+  // Messages relating to calling ctors/dtors/ifuncs.
+  bool calls;
+  // Messages relating to CFI.
+  bool cfi;
+  // Messages relating to the dynamic section.
+  bool dynamic;
+  // Messages relating to symbol lookup.
+  bool lookup;
+  // Messages relating to relocation processing.
+  bool reloc;
+  // Messages relating to ELF properties.
+  bool props;
+  // TODO: "config" and "zip" seem likely to want to be separate?
 
-__LIBC_HIDDEN__ void linker_log_va_list(int prio, const char* fmt, va_list ap);
-__LIBC_HIDDEN__ void linker_log(int prio, const char* fmt, ...) __printflike(2, 3);
+  bool timing;
+  bool statistics;
+};
 
-#define _PRINTVF(v, x...) \
-    do { \
-      if (g_ld_debug_verbosity > (v)) linker_log((v), x); \
-    } while (0)
+extern LinkerDebugConfig g_linker_debug_config;
 
-#define PRINT(x...)          _PRINTVF(LINKER_VERBOSITY_PRINT, x)
-#define INFO(x...)           _PRINTVF(LINKER_VERBOSITY_INFO, x)
-#define TRACE(x...)          _PRINTVF(LINKER_VERBOSITY_TRACE, x)
+__LIBC_HIDDEN__ void init_LD_DEBUG(const std::string& value);
+__LIBC_HIDDEN__ void __linker_log(int prio, const char* fmt, ...) __printflike(2, 3);
+__LIBC_HIDDEN__ void __linker_error(const char* fmt, ...) __printflike(1, 2);
 
-#if TRACE_DEBUG
-#define DEBUG(x...)          _PRINTVF(LINKER_VERBOSITY_DEBUG, "DEBUG: " x)
-#else /* !TRACE_DEBUG */
-#define DEBUG(x...)          do {} while (0)
-#endif /* TRACE_DEBUG */
-
-#define TRACE_TYPE(t, x...)   do { if (DO_TRACE_##t) { TRACE(x); } } while (0)
+#define LD_DEBUG(what, x...) \
+  do { \
+    if (g_linker_debug_config.what) { \
+      __linker_log(ANDROID_LOG_INFO, x); \
+    } \
+  } while (false)
diff --git a/linker/linker_debuggerd_android.cpp b/linker/linker_debuggerd_android.cpp
index ab6fc30..9ded143 100644
--- a/linker/linker_debuggerd_android.cpp
+++ b/linker/linker_debuggerd_android.cpp
@@ -44,6 +44,8 @@
       .scudo_region_info = __libc_shared_globals()->scudo_region_info,
       .scudo_ring_buffer = __libc_shared_globals()->scudo_ring_buffer,
       .scudo_ring_buffer_size = __libc_shared_globals()->scudo_ring_buffer_size,
+      .scudo_stack_depot_size = __libc_shared_globals()->scudo_stack_depot_size,
+      .crash_detail_page = __libc_shared_globals()->crash_detail_page,
   };
 }
 
diff --git a/linker/linker_globals.h b/linker/linker_globals.h
index 0998629..2bfdccd 100644
--- a/linker/linker_globals.h
+++ b/linker/linker_globals.h
@@ -54,7 +54,7 @@
 #define DL_ERR_AND_LOG(fmt, x...) \
   do { \
     DL_ERR(fmt, ##x); \
-    PRINT(fmt, ##x); \
+    __linker_log(ANDROID_LOG_ERROR, fmt, ##x); \
   } while (false)
 
 #define DL_OPEN_ERR(fmt, x...) \
@@ -104,3 +104,4 @@
 };
 
 __LIBC_HIDDEN__ extern bool g_is_ldd;
+__LIBC_HIDDEN__ extern pthread_mutex_t g_dl_mutex;
diff --git a/linker/linker_main.cpp b/linker/linker_main.cpp
index 26e2228..f65f82d 100644
--- a/linker/linker_main.cpp
+++ b/linker/linker_main.cpp
@@ -29,9 +29,12 @@
 #include "linker_main.h"
 
 #include <link.h>
+#include <stdlib.h>
 #include <sys/auxv.h>
+#include <sys/prctl.h>
 
 #include "linker.h"
+#include "linker_auxv.h"
 #include "linker_cfi.h"
 #include "linker_debug.h"
 #include "linker_debuggerd.h"
@@ -43,10 +46,11 @@
 #include "linker_tls.h"
 #include "linker_utils.h"
 
+#include "platform/bionic/macros.h"
+#include "private/KernelArgumentBlock.h"
 #include "private/bionic_call_ifunc_resolver.h"
 #include "private/bionic_globals.h"
 #include "private/bionic_tls.h"
-#include "private/KernelArgumentBlock.h"
 
 #include "android-base/unique_fd.h"
 #include "android-base/strings.h"
@@ -67,8 +71,14 @@
 
 static void set_bss_vma_name(soinfo* si);
 
-void __libc_init_mte(const void* phdr_start, size_t phdr_count, uintptr_t load_bias,
-                     void* stack_top);
+void __libc_init_mte(const memtag_dynamic_entries_t* memtag_dynamic_entries, const void* phdr_start,
+                     size_t phdr_count, uintptr_t load_bias);
+
+void __libc_init_mte_stack(void* stack_top);
+
+static void __linker_cannot_link(const char* argv0) {
+  __linker_error("CANNOT LINK EXECUTABLE \"%s\": %s", argv0, linker_get_error_buffer());
+}
 
 // These should be preserved static to avoid emitting
 // RELATIVE relocations for the part of the code running
@@ -97,7 +107,7 @@
 
   if (trav == nullptr) {
     // si was not in solist
-    PRINT("name \"%s\"@%p is not in solist!", si->get_realpath(), si);
+    DL_WARN("name \"%s\"@%p is not in solist!", si->get_realpath(), si);
     return false;
   }
 
@@ -125,7 +135,6 @@
 }
 
 bool g_is_ldd;
-int g_ld_debug_verbosity;
 
 static std::vector<std::string> g_ld_preload_names;
 
@@ -164,22 +173,21 @@
     return;
   }
 
-  soinfo* si = soinfo_alloc(&g_default_namespace, "[vdso]", nullptr, 0, 0);
+  vdso = soinfo_alloc(&g_default_namespace, "[vdso]", nullptr, 0, 0);
 
-  si->phdr = reinterpret_cast<ElfW(Phdr)*>(reinterpret_cast<char*>(ehdr_vdso) + ehdr_vdso->e_phoff);
-  si->phnum = ehdr_vdso->e_phnum;
-  si->base = reinterpret_cast<ElfW(Addr)>(ehdr_vdso);
-  si->size = phdr_table_get_load_size(si->phdr, si->phnum);
-  si->load_bias = get_elf_exec_load_bias(ehdr_vdso);
+  vdso->phdr = reinterpret_cast<ElfW(Phdr)*>(reinterpret_cast<char*>(ehdr_vdso) + ehdr_vdso->e_phoff);
+  vdso->phnum = ehdr_vdso->e_phnum;
+  vdso->base = reinterpret_cast<ElfW(Addr)>(ehdr_vdso);
+  vdso->size = phdr_table_get_load_size(vdso->phdr, vdso->phnum);
+  vdso->load_bias = get_elf_exec_load_bias(ehdr_vdso);
 
-  si->prelink_image();
-  si->link_image(SymbolLookupList(si), si, nullptr, nullptr);
-  // prevents accidental unloads...
-  si->set_dt_flags_1(si->get_dt_flags_1() | DF_1_NODELETE);
-  si->set_linked();
-  si->call_constructors();
+  if (!vdso->prelink_image() || !vdso->link_image(SymbolLookupList(vdso), vdso, nullptr, nullptr)) {
+    __linker_cannot_link(g_argv[0]);
+  }
 
-  vdso = si;
+  // Prevent accidental unloads...
+  vdso->set_dt_flags_1(vdso->get_dt_flags_1() | DF_1_NODELETE);
+  vdso->set_linked();
 }
 
 // Initializes an soinfo's link_map_head field using other fields from the
@@ -200,6 +208,7 @@
   const ElfW(Phdr)* phdr;
   size_t phdr_count;
   ElfW(Addr) entry_point;
+  bool should_pad_segments;
 };
 
 static ExecutableInfo get_executable_info(const char* arg_path) {
@@ -212,20 +221,15 @@
   if (TEMP_FAILURE_RETRY(stat(exe_path, &result.file_stat) == -1)) {
     // Fallback to argv[0] for the case where /proc isn't available
     if (TEMP_FAILURE_RETRY(stat(arg_path, &result.file_stat) == -1)) {
-      async_safe_fatal("unable to stat either \"/proc/self/exe\" or \"%s\": %s",
-          arg_path, strerror(errno));
+      async_safe_fatal("unable to stat either \"/proc/self/exe\" or \"%s\": %m", arg_path);
     }
     exe_path = arg_path;
   }
 
-  // Path might be a symlink
+  // Path might be a symlink; we need the target so that we get the right
+  // linker configuration later.
   char sym_path[PATH_MAX];
-  ssize_t sym_path_len = readlink(exe_path, sym_path, sizeof(sym_path));
-  if (sym_path_len > 0 && sym_path_len < static_cast<ssize_t>(sizeof(sym_path))) {
-    result.path = std::string(sym_path, sym_path_len);
-  } else {
-    result.path = std::string(exe_path, strlen(exe_path));
-  }
+  result.path = std::string(realpath(exe_path, sym_path) != nullptr ? sym_path : exe_path);
 
   result.phdr = reinterpret_cast<const ElfW(Phdr)*>(getauxval(AT_PHDR));
   result.phdr_count = getauxval(AT_PHNUM);
@@ -233,33 +237,6 @@
   return result;
 }
 
-#if defined(__LP64__)
-static char kFallbackLinkerPath[] = "/system/bin/linker64";
-#else
-static char kFallbackLinkerPath[] = "/system/bin/linker";
-#endif
-
-__printflike(1, 2)
-static void __linker_error(const char* fmt, ...) {
-  va_list ap;
-
-  va_start(ap, fmt);
-  async_safe_format_fd_va_list(STDERR_FILENO, fmt, ap);
-  va_end(ap);
-
-  va_start(ap, fmt);
-  async_safe_format_log_va_list(ANDROID_LOG_FATAL, "linker", fmt, ap);
-  va_end(ap);
-
-  _exit(EXIT_FAILURE);
-}
-
-static void __linker_cannot_link(const char* argv0) {
-  __linker_error("CANNOT LINK EXECUTABLE \"%s\": %s\n",
-                 argv0,
-                 linker_get_error_buffer());
-}
-
 // Load an executable. Normally the kernel has already loaded the executable when the linker
 // starts. The linker can be invoked directly on an executable, though, and then the linker must
 // load it. This function doesn't load dependencies or resolve relocations.
@@ -267,31 +244,32 @@
   ExecutableInfo result = {};
 
   if (orig_path[0] != '/') {
-    __linker_error("error: expected absolute path: \"%s\"\n", orig_path);
+    __linker_error("error: expected absolute path: \"%s\"", orig_path);
   }
 
   off64_t file_offset;
   android::base::unique_fd fd(open_executable(orig_path, &file_offset, &result.path));
   if (fd.get() == -1) {
-    __linker_error("error: unable to open file \"%s\"\n", orig_path);
+    __linker_error("error: unable to open file \"%s\"", orig_path);
   }
 
   if (TEMP_FAILURE_RETRY(fstat(fd.get(), &result.file_stat)) == -1) {
-    __linker_error("error: unable to stat \"%s\": %s\n", result.path.c_str(), strerror(errno));
+    __linker_error("error: unable to stat \"%s\": %m", result.path.c_str());
   }
 
   ElfReader elf_reader;
   if (!elf_reader.Read(result.path.c_str(), fd.get(), file_offset, result.file_stat.st_size)) {
-    __linker_error("error: %s\n", linker_get_error_buffer());
+    __linker_error("error: %s", linker_get_error_buffer());
   }
   address_space_params address_space;
   if (!elf_reader.Load(&address_space)) {
-    __linker_error("error: %s\n", linker_get_error_buffer());
+    __linker_error("error: %s", linker_get_error_buffer());
   }
 
   result.phdr = elf_reader.loaded_phdr();
   result.phdr_count = elf_reader.phdr_count();
   result.entry_point = elf_reader.entry_point();
+  result.should_pad_segments = elf_reader.should_pad_segments();
   return result;
 }
 
@@ -305,10 +283,8 @@
 static ElfW(Addr) linker_main(KernelArgumentBlock& args, const char* exe_to_load) {
   ProtectedDataGuard guard;
 
-#if TIMING
-  struct timeval t0, t1;
-  gettimeofday(&t0, 0);
-#endif
+  timeval t0, t1;
+  gettimeofday(&t0, nullptr);
 
   // Sanitize the environment.
   __libc_init_AT_SECURE(args.envp);
@@ -324,17 +300,13 @@
 
   g_linker_logger.ResetState();
 
-  // Get a few environment variables.
+  // Enable debugging logs?
   const char* LD_DEBUG = getenv("LD_DEBUG");
-  if (LD_DEBUG != nullptr) {
-    g_ld_debug_verbosity = atoi(LD_DEBUG);
-  }
+  if (LD_DEBUG != nullptr) init_LD_DEBUG(LD_DEBUG);
 
-#if defined(__LP64__)
-  INFO("[ Android dynamic linker (64-bit) ]");
-#else
-  INFO("[ Android dynamic linker (32-bit) ]");
-#endif
+  if (getenv("LD_SHOW_AUXV") != nullptr) ld_show_auxv(args.auxv);
+
+  LD_DEBUG(any, "[ Android dynamic linker (" ABI_STRING ") ]");
 
   // These should have been sanitized by __libc_init_AT_SECURE, but the test
   // doesn't cost us anything.
@@ -343,18 +315,18 @@
   if (!getauxval(AT_SECURE)) {
     ldpath_env = getenv("LD_LIBRARY_PATH");
     if (ldpath_env != nullptr) {
-      INFO("[ LD_LIBRARY_PATH set to \"%s\" ]", ldpath_env);
+      LD_DEBUG(any, "[ LD_LIBRARY_PATH set to \"%s\" ]", ldpath_env);
     }
     ldpreload_env = getenv("LD_PRELOAD");
     if (ldpreload_env != nullptr) {
-      INFO("[ LD_PRELOAD set to \"%s\" ]", ldpreload_env);
+      LD_DEBUG(any, "[ LD_PRELOAD set to \"%s\" ]", ldpreload_env);
     }
   }
 
   const ExecutableInfo exe_info = exe_to_load ? load_executable(exe_to_load) :
                                                 get_executable_info(args.argv[0]);
 
-  INFO("[ Linking executable \"%s\" ]", exe_info.path.c_str());
+  LD_DEBUG(any, "[ Linking executable \"%s\" ]", exe_info.path.c_str());
 
   // Initialize the main exe's soinfo.
   soinfo* si = soinfo_alloc(&g_default_namespace,
@@ -363,6 +335,7 @@
   somain = si;
   si->phdr = exe_info.phdr;
   si->phnum = exe_info.phdr_count;
+  si->set_should_pad_segments(exe_info.should_pad_segments);
   get_elf_base_from_phdr(si->phdr, si->phnum, &si->base, &si->load_bias);
   si->size = phdr_table_get_load_size(si->phdr, si->phnum);
   si->dynamic = nullptr;
@@ -384,25 +357,30 @@
   if (interp == nullptr) {
     // This case can happen if the linker attempts to execute itself
     // (e.g. "linker64 /system/bin/linker64").
-    interp = kFallbackLinkerPath;
+#if defined(__LP64__)
+#define DEFAULT_INTERP "/system/bin/linker64"
+#else
+#define DEFAULT_INTERP "/system/bin/linker"
+#endif
+    interp = DEFAULT_INTERP;
   }
   solinker->set_realpath(interp);
   init_link_map_head(*solinker);
 
 #if defined(__aarch64__)
+  __libc_init_mte(somain->memtag_dynamic_entries(), somain->phdr, somain->phnum, somain->load_bias);
+
   if (exe_to_load == nullptr) {
     // Kernel does not add PROT_BTI to executable pages of the loaded ELF.
     // Apply appropriate protections here if it is needed.
     auto note_gnu_property = GnuPropertySection(somain);
     if (note_gnu_property.IsBTICompatible() &&
-        (phdr_table_protect_segments(somain->phdr, somain->phnum, somain->load_bias,
-                                     &note_gnu_property) < 0)) {
-      __linker_error("error: can't protect segments for \"%s\": %s", exe_info.path.c_str(),
-                     strerror(errno));
+        (phdr_table_protect_segments(
+             somain->phdr, somain->phnum, somain->load_bias, somain->should_pad_segments(),
+             somain->should_use_16kib_app_compat(), &note_gnu_property) < 0)) {
+      __linker_error("error: can't protect segments for \"%s\": %m", exe_info.path.c_str());
     }
   }
-
-  __libc_init_mte(somain->phdr, somain->phnum, somain->load_bias, args.argv);
 #endif
 
   // Register the main executable and the linker upfront to have
@@ -421,20 +399,11 @@
 
   ElfW(Ehdr)* elf_hdr = reinterpret_cast<ElfW(Ehdr)*>(si->base);
 
-  // We haven't supported non-PIE since Lollipop for security reasons.
+  // For security reasons we dropped non-PIE support in API level 21,
+  // and the NDK no longer supports earlier API levels.
   if (elf_hdr->e_type != ET_DYN) {
-    // We don't use async_safe_fatal here because we don't want a tombstone:
-    // even after several years we still find ourselves on app compatibility
-    // investigations because some app's trying to launch an executable that
-    // hasn't worked in at least three years, and we've "helpfully" dropped a
-    // tombstone for them. The tombstone never provided any detail relevant to
-    // fixing the problem anyway, and the utility of drawing extra attention
-    // to the problem is non-existent at this late date.
-    async_safe_format_fd(STDERR_FILENO,
-                         "\"%s\": error: Android 5.0 and later only support "
-                         "position-independent executables (-fPIE).\n",
-                         g_argv[0]);
-    _exit(EXIT_FAILURE);
+    __linker_error("error: %s: Android only supports position-independent "
+                   "executables (-fPIE)", exe_info.path.c_str());
   }
 
   // Use LD_LIBRARY_PATH and LD_PRELOAD (but only if we aren't setuid/setgid).
@@ -493,6 +462,17 @@
     si->increment_ref_count();
   }
 
+  // Exit early for ldd. We don't want to run the code that was loaded, so skip
+  // the constructor calls. Skip CFI setup because it would call __cfi_init in
+  // libdl.so.
+  if (g_is_ldd) _exit(EXIT_SUCCESS);
+
+#if defined(__aarch64__)
+  // This has to happen after the find_libraries, which will have collected any possible
+  // libraries that request memtag_stack in the dynamic section.
+  __libc_init_mte_stack(args.argv);
+#endif
+
   linker_finalize_static_tls();
   __libc_init_main_thread_final();
 
@@ -501,27 +481,22 @@
   si->call_pre_init_constructors();
   si->call_constructors();
 
-#if TIMING
-  gettimeofday(&t1, nullptr);
-  PRINT("LINKER TIME: %s: %d microseconds", g_argv[0],
-        static_cast<int>(((static_cast<long long>(t1.tv_sec) * 1000000LL) +
-                          static_cast<long long>(t1.tv_usec)) -
-                         ((static_cast<long long>(t0.tv_sec) * 1000000LL) +
-                          static_cast<long long>(t0.tv_usec))));
-#endif
-#if STATS
-  print_linker_stats();
-#endif
-#if TIMING || STATS
-  fflush(stdout);
-#endif
+  if (g_linker_debug_config.timing) {
+    gettimeofday(&t1, nullptr);
+    long long t0_us = (t0.tv_sec * 1000000LL) + t0.tv_usec;
+    long long t1_us = (t1.tv_sec * 1000000LL) + t1.tv_usec;
+    LD_DEBUG(timing, "LINKER TIME: %s: %lld microseconds", g_argv[0], t1_us - t0_us);
+  }
+  if (g_linker_debug_config.statistics) {
+    print_linker_stats();
+  }
 
   // We are about to hand control over to the executable loaded.  We don't want
   // to leave dirty pages behind unnecessarily.
   purge_unused_memory();
 
   ElfW(Addr) entry = exe_info.entry_point;
-  TRACE("[ Ready to execute \"%s\" @ %p ]", si->get_realpath(), reinterpret_cast<void*>(entry));
+  LD_DEBUG(any, "[ Ready to execute \"%s\" @ %p ]", si->get_realpath(), reinterpret_cast<void*>(entry));
   return entry;
 }
 
@@ -580,8 +555,8 @@
     }
 
     ElfW(Addr) seg_start = phdr->p_vaddr + si->load_bias;
-    ElfW(Addr) seg_page_end = PAGE_END(seg_start + phdr->p_memsz);
-    ElfW(Addr) seg_file_end = PAGE_END(seg_start + phdr->p_filesz);
+    ElfW(Addr) seg_page_end = page_end(seg_start + phdr->p_memsz);
+    ElfW(Addr) seg_file_end = page_end(seg_start + phdr->p_filesz);
 
     if (seg_page_end > seg_file_end) {
       prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME,
@@ -619,9 +594,10 @@
   }
 }
 
-static void call_ifunc_resolvers() {
-  // Find the IRELATIVE relocations using the DT_JMPREL and DT_PLTRELSZ, or DT_RELA? and DT_RELA?SZ
-  // dynamic tags.
+static void relocate_linker() {
+  // The linker should only have relative relocations (in RELR) and IRELATIVE
+  // relocations. Find the IRELATIVE relocations using the DT_JMPREL and
+  // DT_PLTRELSZ, or DT_RELA/DT_RELASZ (DT_REL/DT_RELSZ on ILP32).
   auto ehdr = reinterpret_cast<ElfW(Addr)>(&__ehdr_start);
   auto* phdr = reinterpret_cast<ElfW(Phdr)*>(ehdr + __ehdr_start.e_phoff);
   for (size_t i = 0; i != __ehdr_start.e_phnum; ++i) {
@@ -629,18 +605,38 @@
       continue;
     }
     auto *dyn = reinterpret_cast<ElfW(Dyn)*>(ehdr + phdr[i].p_vaddr);
-    ElfW(Addr) pltrel = 0, pltrelsz = 0, rel = 0, relsz = 0;
+    ElfW(Addr) relr = 0, relrsz = 0, pltrel = 0, pltrelsz = 0, rel = 0, relsz = 0;
     for (size_t j = 0, size = phdr[i].p_filesz / sizeof(ElfW(Dyn)); j != size; ++j) {
-      if (dyn[j].d_tag == DT_JMPREL) {
-        pltrel = dyn[j].d_un.d_ptr;
-      } else if (dyn[j].d_tag == DT_PLTRELSZ) {
-        pltrelsz = dyn[j].d_un.d_ptr;
-      } else if (dyn[j].d_tag == kRelTag) {
-        rel = dyn[j].d_un.d_ptr;
-      } else if (dyn[j].d_tag == kRelSzTag) {
-        relsz = dyn[j].d_un.d_ptr;
+      const auto tag = dyn[j].d_tag;
+      const auto val = dyn[j].d_un.d_ptr;
+      // We don't currently handle IRELATIVE relocations in DT_ANDROID_REL[A].
+      // We disabled DT_ANDROID_REL[A] at build time; verify that it was actually disabled.
+      CHECK(tag != DT_ANDROID_REL && tag != DT_ANDROID_RELA);
+      if (tag == DT_RELR || tag == DT_ANDROID_RELR) {
+        relr = val;
+      } else if (tag == DT_RELRSZ || tag == DT_ANDROID_RELRSZ) {
+        relrsz = val;
+      } else if (tag == DT_JMPREL) {
+        pltrel = val;
+      } else if (tag == DT_PLTRELSZ) {
+        pltrelsz = val;
+      } else if (tag == kRelTag) {
+        rel = val;
+      } else if (tag == kRelSzTag) {
+        relsz = val;
       }
     }
+    // Apply RELR relocations first so that the GOT is initialized for ifunc
+    // resolvers.
+    if (relr && relrsz) {
+      // Nothing has tagged the memtag globals here, so it is pointless either
+      // way to handle them, the tags will be zero anyway.
+      // That is moot though, because the linker does not use memtag_globals
+      // in the first place.
+      relocate_relr(reinterpret_cast<ElfW(Relr*)>(ehdr + relr),
+                    reinterpret_cast<ElfW(Relr*)>(ehdr + relr + relrsz), ehdr,
+                    /*has_memtag_globals=*/ false);
+    }
     if (pltrel && pltrelsz) {
       call_ifunc_resolvers_for_section(reinterpret_cast<RelType*>(ehdr + pltrel),
                                        reinterpret_cast<RelType*>(ehdr + pltrel + pltrelsz));
@@ -659,6 +655,16 @@
   }
 }
 
+// Remapping MTE globals segments happens before the linker relocates itself, and so can't use
+// memcpy() from string.h. This function is compiled with -ffreestanding.
+void linker_memcpy(void* dst, const void* src, size_t n) {
+  char* dst_bytes = reinterpret_cast<char*>(dst);
+  const char* src_bytes = reinterpret_cast<const char*>(src);
+  for (size_t i = 0; i < n; ++i) {
+    dst_bytes[i] = src_bytes[i];
+  }
+}
+
 // Detect an attempt to run the linker on itself. e.g.:
 //   /system/bin/linker64 /system/bin/linker64
 // Use priority-1 to run this constructor before other constructors.
@@ -674,7 +680,7 @@
   // fallback.
   __libc_sysinfo = reinterpret_cast<void*>(__libc_int0x80);
 #endif
-  __linker_error("error: linker cannot load itself\n");
+  __linker_error("error: linker cannot load itself");
 }
 
 static ElfW(Addr) __attribute__((noinline))
@@ -690,6 +696,13 @@
  * function, or other GOT reference will generate a segfault.
  */
 extern "C" ElfW(Addr) __linker_init(void* raw_args) {
+  // Unlock the loader mutex immediately before transferring to the executable's
+  // entry point. This must happen after destructors are called in this function
+  // (e.g. ~soinfo), so declare this variable very early.
+  struct DlMutexUnlocker {
+    ~DlMutexUnlocker() { pthread_mutex_unlock(&g_dl_mutex); }
+  } unlocker;
+
   // Initialize TLS early so system calls and errno work.
   KernelArgumentBlock args(raw_args);
   bionic_tcb temp_tcb __attribute__((uninitialized));
@@ -711,8 +724,12 @@
   ElfW(Ehdr)* elf_hdr = reinterpret_cast<ElfW(Ehdr)*>(linker_addr);
   ElfW(Phdr)* phdr = reinterpret_cast<ElfW(Phdr)*>(linker_addr + elf_hdr->e_phoff);
 
-  // string.h functions must not be used prior to calling the linker's ifunc resolvers.
-  call_ifunc_resolvers();
+  // Relocate the linker. This step will initialize the GOT, which is needed for
+  // accessing non-hidden global variables. (On some targets, the stack
+  // protector uses GOT accesses rather than TLS.) Relocating the linker will
+  // also call the linker's ifunc resolvers so that string.h functions can be
+  // used.
+  relocate_linker();
 
   soinfo tmp_linker_so(nullptr, nullptr, nullptr, 0, 0);
 
@@ -724,8 +741,9 @@
   tmp_linker_so.phnum = elf_hdr->e_phnum;
   tmp_linker_so.set_linker_flag();
 
-  // Prelink the linker so we can access linker globals.
   if (!tmp_linker_so.prelink_image()) __linker_cannot_link(args.argv[0]);
+  // There is special logic in soinfo::relocate to avoid duplicating the
+  // relocations we did in relocate_linker().
   if (!tmp_linker_so.link_image(SymbolLookupList(&tmp_linker_so), &tmp_linker_so, nullptr, nullptr)) __linker_cannot_link(args.argv[0]);
 
   return __linker_init_post_relocation(args, tmp_linker_so);
@@ -752,6 +770,11 @@
   // Initialize the linker's static libc's globals
   __libc_init_globals();
 
+  // A constructor could spawn a thread that calls into the loader, so as soon
+  // as we've called a constructor, we need to hold the lock until transferring
+  // to the entry point.
+  pthread_mutex_lock(&g_dl_mutex);
+
   // Initialize the linker's own global variables
   tmp_linker_so.call_constructors();
 
@@ -807,9 +830,7 @@
 
   ElfW(Addr) start_address = linker_main(args, exe_to_load);
 
-  if (g_is_ldd) _exit(EXIT_SUCCESS);
-
-  INFO("[ Jumping to _start (%p)... ]", reinterpret_cast<void*>(start_address));
+  LD_DEBUG(any, "[ Jumping to _start (%p)... ]", reinterpret_cast<void*>(start_address));
 
   // Return the address that the calling assembly stub should jump to.
   return start_address;
diff --git a/linker/linker_main.h b/linker/linker_main.h
index 724f43c..ffbcf0f 100644
--- a/linker/linker_main.h
+++ b/linker/linker_main.h
@@ -70,3 +70,5 @@
 soinfo* solist_get_head();
 soinfo* solist_get_somain();
 soinfo* solist_get_vdso();
+
+void linker_memcpy(void* dst, const void* src, size_t n);
diff --git a/linker/linker_mapped_file_fragment.cpp b/linker/linker_mapped_file_fragment.cpp
index cbe5f66..6be1b2b 100644
--- a/linker/linker_mapped_file_fragment.cpp
+++ b/linker/linker_mapped_file_fragment.cpp
@@ -29,6 +29,7 @@
 #include "linker_mapped_file_fragment.h"
 #include "linker_debug.h"
 #include "linker_utils.h"
+#include "platform/bionic/page.h"
 
 #include <inttypes.h>
 #include <stdlib.h>
diff --git a/linker/linker_memory.cpp b/linker/linker_memory.cpp
index 456d254..7ce53b8 100644
--- a/linker/linker_memory.cpp
+++ b/linker/linker_memory.cpp
@@ -76,6 +76,10 @@
   return get_allocator().memalign(alignment, byte_count);
 }
 
+void* aligned_alloc(size_t alignment, size_t byte_count) {
+  return get_allocator().memalign(alignment, byte_count);
+}
+
 void* calloc(size_t item_count, size_t item_size) {
   return get_allocator().alloc(item_count*item_size);
 }
diff --git a/linker/linker_namespaces.cpp b/linker/linker_namespaces.cpp
index 5182129..eb9dae9 100644
--- a/linker/linker_namespaces.cpp
+++ b/linker/linker_namespaces.cpp
@@ -100,7 +100,7 @@
     // be searched.
     if (allow_secondary) {
       const android_namespace_list_t& secondary_namespaces = si->get_secondary_namespaces();
-      if (secondary_namespaces.find(this) != secondary_namespaces.end()) {
+      if (secondary_namespaces.contains(this)) {
         return true;
       }
     }
diff --git a/linker/linker_note_gnu_property.cpp b/linker/linker_note_gnu_property.cpp
index be1aebc..082a604 100644
--- a/linker/linker_note_gnu_property.cpp
+++ b/linker/linker_note_gnu_property.cpp
@@ -62,7 +62,7 @@
         continue;
       }
 
-      TRACE("\"%s\" PT_GNU_PROPERTY: found at segment index %zu", name, i);
+      LD_DEBUG(props, "\"%s\" PT_GNU_PROPERTY: found at segment index %zu", name, i);
 
       // Check segment size.
       if (phdr[i].p_memsz < sizeof(ElfW(NhdrGNUProperty))) {
@@ -90,7 +90,7 @@
     }
   }
 
-  TRACE("\"%s\" PT_GNU_PROPERTY: not found", name);
+  LD_DEBUG(props, "\"%s\" PT_GNU_PROPERTY: not found", name);
   return nullptr;
 }
 
@@ -122,7 +122,7 @@
   // The total length of the program property array is in _bytes_.
   ElfW(Word) offset = 0;
   while (offset < note_nhdr->nhdr.n_descsz) {
-    DEBUG("\"%s\" .note.gnu.property: processing at offset 0x%x", name, offset);
+    LD_DEBUG(props, "\"%s\" .note.gnu.property: processing at offset 0x%x", name, offset);
 
     // At least the "header" part must fit.
     // The ABI doesn't say that pr_datasz can't be 0.
@@ -161,14 +161,14 @@
         const ElfW(Word) flags = *reinterpret_cast<const ElfW(Word)*>(&property->pr_data[0]);
         properties_.bti_compatible = (flags & GNU_PROPERTY_AARCH64_FEATURE_1_BTI) != 0;
         if (properties_.bti_compatible) {
-          INFO("[ BTI compatible: \"%s\" ]", name);
+          LD_DEBUG(props, "[ BTI compatible: \"%s\" ]", name);
         }
         break;
       }
 #endif
       default:
-        DEBUG("\"%s\" .note.gnu.property: found property pr_type %u pr_datasz 0x%x", name,
-              property->pr_type, property->pr_datasz);
+        LD_DEBUG(props, "\"%s\" .note.gnu.property: found property pr_type %u pr_datasz 0x%x",
+                 name, property->pr_type, property->pr_datasz);
         break;
     }
 
diff --git a/linker/linker_note_gnu_property_test.cpp b/linker/linker_note_gnu_property_test.cpp
index 41fc47b..960118c 100644
--- a/linker/linker_note_gnu_property_test.cpp
+++ b/linker/linker_note_gnu_property_test.cpp
@@ -137,18 +137,18 @@
     dump_member("entries ", entries);
     if (entries > 0) {
       std::cout << "    raw data:";
-      const uintptr_t offset = note->nhdr.n_descsz + 16;
-      for (uintptr_t offs = 16; offs < offset; ++offs) {
+      const uintptr_t end = note->nhdr.n_descsz + 16;
+      for (uintptr_t offset = 16; offset < end; ++offset) {
         std::cout << std::hex;
-        if ((offs % 8) == 0) {
+        if ((offset % 8) == 0) {
           std::cout << "\n   ";
         }
-        auto value = static_cast<unsigned>(section[offs]);
+        auto value = static_cast<unsigned>(section[offset]);
         std::cout << " ";
         if (value < 0x10) {
           std::cout << "0";
         }
-        std::cout << static_cast<unsigned>(section[offs]);
+        std::cout << static_cast<unsigned>(section[offset]);
       }
       std::cout << std::dec << "\n";
     }
diff --git a/linker/linker_phdr.cpp b/linker/linker_phdr.cpp
index 73cfced..e5369ac 100644
--- a/linker/linker_phdr.cpp
+++ b/linker/linker_phdr.cpp
@@ -37,12 +37,20 @@
 #include <unistd.h>
 
 #include "linker.h"
+#include "linker_debug.h"
 #include "linker_dlwarning.h"
 #include "linker_globals.h"
-#include "linker_debug.h"
+#include "linker_logger.h"
+#include "linker_main.h"
+#include "linker_soinfo.h"
 #include "linker_utils.h"
 
+#include "private/bionic_asm_note.h"
 #include "private/CFIShadow.h" // For kLibraryAlignment
+#include "private/elf_note.h"
+
+#include <android-base/file.h>
+#include <android-base/properties.h>
 
 static int GetTargetElfMachine() {
 #if defined(__arm__)
@@ -116,7 +124,7 @@
   can only memory-map at page boundaries, this means that the bias is
   computed as:
 
-       load_bias = phdr0_load_address - PAGE_START(phdr0->p_vaddr)
+       load_bias = phdr0_load_address - page_start(phdr0->p_vaddr)
 
   (NOTE: The value must be used as a 32-bit unsigned integer, to deal with
           possible wrap around UINT32_MAX for possible large p_vaddr values).
@@ -124,24 +132,29 @@
   And that the phdr0_load_address must start at a page boundary, with
   the segment's real content starting at:
 
-       phdr0_load_address + PAGE_OFFSET(phdr0->p_vaddr)
+       phdr0_load_address + page_offset(phdr0->p_vaddr)
 
   Note that ELF requires the following condition to make the mmap()-ing work:
 
-      PAGE_OFFSET(phdr0->p_vaddr) == PAGE_OFFSET(phdr0->p_offset)
+      page_offset(phdr0->p_vaddr) == page_offset(phdr0->p_offset)
 
   The load_bias must be added to any p_vaddr value read from the ELF file to
   determine the corresponding memory address.
 
  **/
 
-#define MAYBE_MAP_FLAG(x, from, to)  (((x) & (from)) ? (to) : 0)
-#define PFLAGS_TO_PROT(x)            (MAYBE_MAP_FLAG((x), PF_X, PROT_EXEC) | \
-                                      MAYBE_MAP_FLAG((x), PF_R, PROT_READ) | \
-                                      MAYBE_MAP_FLAG((x), PF_W, PROT_WRITE))
+static const size_t kPageSize = page_size();
 
-// Default PMD size for x86_64 and aarch64 (2MB).
-static constexpr size_t kPmdSize = (1UL << 21);
+/*
+ * Generic PMD size calculation:
+ *    - Each page table (PT) is of size 1 page.
+ *    - Each page table entry (PTE) is of size 64 bits.
+ *    - Each PTE locates one physical page frame (PFN) of size 1 page.
+ *    - A PMD entry locates 1 page table (PT)
+ *
+ *   PMD size = Num entries in a PT * page_size
+ */
+static const size_t kPmdSize = (kPageSize / sizeof(uint64_t)) * kPageSize;
 
 ElfReader::ElfReader()
     : did_read_(false), did_load_(false), fd_(-1), file_offset_(0), file_size_(0), phdr_num_(0),
@@ -163,10 +176,20 @@
       VerifyElfHeader() &&
       ReadProgramHeaders() &&
       ReadSectionHeaders() &&
-      ReadDynamicSection()) {
+      ReadDynamicSection() &&
+      ReadPadSegmentNote()) {
     did_read_ = true;
   }
 
+  if (kPageSize == 0x4000 && phdr_table_get_minimum_alignment(phdr_table_, phdr_num_) == 0x1000) {
+    // This prop needs to be read on 16KiB devices for each ELF where min_palign is 4KiB.
+    // It cannot be cached since the developer may toggle app compat on/off.
+    // This check will be removed once app compat is made the default on 16KiB devices.
+    should_use_16kib_app_compat_ =
+        ::android::base::GetBoolProperty("bionic.linker.16kb.app_compat.enabled", false) ||
+        get_16kb_appcompat_mode();
+  }
+
   return did_read_;
 }
 
@@ -182,8 +205,9 @@
 #if defined(__aarch64__)
     // For Armv8.5-A loaded executable segments may require PROT_BTI.
     if (note_gnu_property_.IsBTICompatible()) {
-      did_load_ = (phdr_table_protect_segments(phdr_table_, phdr_num_, load_bias_,
-                                               &note_gnu_property_) == 0);
+      did_load_ =
+          (phdr_table_protect_segments(phdr_table_, phdr_num_, load_bias_, should_pad_segments_,
+                                       should_use_16kib_app_compat_, &note_gnu_property_) == 0);
     }
 #endif
   }
@@ -283,7 +307,6 @@
   }
 
   if (header_.e_shentsize != sizeof(ElfW(Shdr))) {
-    // Fail if app is targeting Android O or above
     if (get_application_target_sdk_version() >= 26) {
       DL_ERR_AND_LOG("\"%s\" has unsupported e_shentsize: 0x%x (expected 0x%zx)",
                      name_.c_str(), header_.e_shentsize, sizeof(ElfW(Shdr)));
@@ -297,12 +320,10 @@
   }
 
   if (header_.e_shstrndx == 0) {
-    // Fail if app is targeting Android O or above
     if (get_application_target_sdk_version() >= 26) {
       DL_ERR_AND_LOG("\"%s\" has invalid e_shstrndx", name_.c_str());
       return false;
     }
-
     DL_WARN_documented_change(26,
                               "invalid-elf-header_section-headers-enforced-for-api-level-26",
                               "\"%s\" has invalid e_shstrndx", name_.c_str());
@@ -351,7 +372,7 @@
   }
 
   if (!phdr_fragment_.Map(fd_, file_offset_, header_.e_phoff, size)) {
-    DL_ERR("\"%s\" phdr mmap failed: %s", name_.c_str(), strerror(errno));
+    DL_ERR("\"%s\" phdr mmap failed: %m", name_.c_str());
     return false;
   }
 
@@ -377,7 +398,7 @@
   }
 
   if (!shdr_fragment_.Map(fd_, file_offset_, header_.e_shoff, size)) {
-    DL_ERR("\"%s\" shdr mmap failed: %s", name_.c_str(), strerror(errno));
+    DL_ERR("\"%s\" shdr mmap failed: %m", name_.c_str());
     return false;
   }
 
@@ -470,7 +491,7 @@
   }
 
   if (!dynamic_fragment_.Map(fd_, file_offset_, dynamic_shdr->sh_offset, dynamic_shdr->sh_size)) {
-    DL_ERR("\"%s\" dynamic section mmap failed: %s", name_.c_str(), strerror(errno));
+    DL_ERR("\"%s\" dynamic section mmap failed: %m", name_.c_str());
     return false;
   }
 
@@ -483,7 +504,7 @@
   }
 
   if (!strtab_fragment_.Map(fd_, file_offset_, strtab_shdr->sh_offset, strtab_shdr->sh_size)) {
-    DL_ERR("\"%s\" strtab section mmap failed: %s", name_.c_str(), strerror(errno));
+    DL_ERR("\"%s\" strtab section mmap failed: %m", name_.c_str());
     return false;
   }
 
@@ -529,8 +550,8 @@
     min_vaddr = 0;
   }
 
-  min_vaddr = PAGE_START(min_vaddr);
-  max_vaddr = PAGE_END(max_vaddr);
+  min_vaddr = page_start(min_vaddr);
+  max_vaddr = page_end(max_vaddr);
 
   if (out_min_vaddr != nullptr) {
     *out_min_vaddr = min_vaddr;
@@ -545,7 +566,7 @@
 // program header table. Used to determine whether the file should be loaded at
 // a specific virtual address alignment for use with huge pages.
 size_t phdr_table_get_maximum_alignment(const ElfW(Phdr)* phdr_table, size_t phdr_count) {
-  size_t maximum_alignment = PAGE_SIZE;
+  size_t maximum_alignment = page_size();
 
   for (size_t i = 0; i < phdr_count; ++i) {
     const ElfW(Phdr)* phdr = &phdr_table[i];
@@ -555,18 +576,40 @@
       continue;
     }
 
-    if (phdr->p_align > maximum_alignment) {
-      maximum_alignment = phdr->p_align;
-    }
+    maximum_alignment = std::max(maximum_alignment, static_cast<size_t>(phdr->p_align));
   }
 
 #if defined(__LP64__)
   return maximum_alignment;
 #else
-  return PAGE_SIZE;
+  return page_size();
 #endif
 }
 
+// Returns the minimum p_align associated with a loadable segment in the ELF
+// program header table. Used to determine if the program alignment is compatible
+// with the page size of this system.
+size_t phdr_table_get_minimum_alignment(const ElfW(Phdr)* phdr_table, size_t phdr_count) {
+  size_t minimum_alignment = page_size();
+
+  for (size_t i = 0; i < phdr_count; ++i) {
+    const ElfW(Phdr)* phdr = &phdr_table[i];
+
+    // p_align must be 0, 1, or a positive, integral power of two.
+    if (phdr->p_type != PT_LOAD || ((phdr->p_align & (phdr->p_align - 1)) != 0)) {
+      continue;
+    }
+
+    if (phdr->p_align <= 1) {
+      continue;
+    }
+
+    minimum_alignment = std::min(minimum_alignment, static_cast<size_t>(phdr->p_align));
+  }
+
+  return minimum_alignment;
+}
+
 // Reserve a virtual address range such that if it's limits were extended to the next 2**align
 // boundary, it would not overlap with any existing mappings.
 static void* ReserveWithAlignmentPadding(size_t size, size_t mapping_align, size_t start_align,
@@ -574,7 +617,7 @@
   int mmap_flags = MAP_PRIVATE | MAP_ANONYMOUS;
   // Reserve enough space to properly align the library's start address.
   mapping_align = std::max(mapping_align, start_align);
-  if (mapping_align == PAGE_SIZE) {
+  if (mapping_align == page_size()) {
     void* mmap_ptr = mmap(nullptr, size, PROT_NONE, mmap_flags, -1, 0);
     if (mmap_ptr == MAP_FAILED) {
       return nullptr;
@@ -593,7 +636,7 @@
   constexpr size_t kMaxGapUnits = 32;
   // Allocate enough space so that the end of the desired region aligned up is still inside the
   // mapping.
-  size_t mmap_size = align_up(size, mapping_align) + mapping_align - PAGE_SIZE;
+  size_t mmap_size = align_up(size, mapping_align) + mapping_align - page_size();
   uint8_t* mmap_ptr =
       reinterpret_cast<uint8_t*>(mmap(nullptr, mmap_size, PROT_NONE, mmap_flags, -1, 0));
   if (mmap_ptr == MAP_FAILED) {
@@ -610,7 +653,7 @@
     mapping_align = std::max(mapping_align, kGapAlignment);
     gap_size =
         kGapAlignment * (is_first_stage_init() ? 1 : arc4random_uniform(kMaxGapUnits - 1) + 1);
-    mmap_size = align_up(size + gap_size, mapping_align) + mapping_align - PAGE_SIZE;
+    mmap_size = align_up(size + gap_size, mapping_align) + mapping_align - page_size();
     mmap_ptr = reinterpret_cast<uint8_t*>(mmap(nullptr, mmap_size, PROT_NONE, mmap_flags, -1, 0));
     if (mmap_ptr == MAP_FAILED) {
       return nullptr;
@@ -656,6 +699,13 @@
     return false;
   }
 
+  if (should_use_16kib_app_compat_) {
+    // Reserve additional space for aligning the permission boundary in compat loading
+    // Up to kPageSize-kCompatPageSize additional space is needed, but reservation
+    // is done with mmap which gives kPageSize multiple-sized reservations.
+    load_size_ += kPageSize;
+  }
+
   uint8_t* addr = reinterpret_cast<uint8_t*>(min_vaddr);
   void* start;
 
@@ -665,12 +715,12 @@
              load_size_ - address_space->reserved_size, load_size_, name_.c_str());
       return false;
     }
-    size_t start_alignment = PAGE_SIZE;
+    size_t start_alignment = page_size();
     if (get_transparent_hugepages_supported() && get_application_target_sdk_version() >= 31) {
       size_t maximum_alignment = phdr_table_get_maximum_alignment(phdr_table_, phdr_num_);
       // Limit alignment to PMD size as other alignments reduce the number of
       // bits available for ASLR for no benefit.
-      start_alignment = maximum_alignment == kPmdSize ? kPmdSize : PAGE_SIZE;
+      start_alignment = maximum_alignment == kPmdSize ? kPmdSize : page_size();
     }
     start = ReserveWithAlignmentPadding(load_size_, kLibraryAlignment, start_alignment, &gap_start_,
                                         &gap_size_);
@@ -691,10 +741,291 @@
 
   load_start_ = start;
   load_bias_ = reinterpret_cast<uint8_t*>(start) - addr;
+
+  if (should_use_16kib_app_compat_) {
+    // In compat mode make the initial mapping RW since the ELF contents will be read
+    // into it; instead of mapped over it.
+    mprotect(reinterpret_cast<void*>(start), load_size_, PROT_READ | PROT_WRITE);
+  }
+
+  return true;
+}
+
+/*
+ * Returns true if the kernel supports page size migration for this process.
+ */
+bool page_size_migration_supported() {
+#if defined(__LP64__)
+  static bool pgsize_migration_enabled = []() {
+    std::string enabled;
+    if (!android::base::ReadFileToString("/sys/kernel/mm/pgsize_migration/enabled", &enabled)) {
+      return false;
+    }
+    return enabled.find("1") != std::string::npos;
+  }();
+  return pgsize_migration_enabled;
+#else
+  return false;
+#endif
+}
+
+// Find the ELF note of type NT_ANDROID_TYPE_PAD_SEGMENT and check that the desc value is 1.
+bool ElfReader::ReadPadSegmentNote() {
+  if (!page_size_migration_supported()) {
+    // Don't attempt to read the note, since segment extension isn't
+    // supported; but return true so that loading can continue normally.
+    return true;
+  }
+
+  // The ELF can have multiple PT_NOTE's, check them all
+  for (size_t i = 0; i < phdr_num_; ++i) {
+    const ElfW(Phdr)* phdr = &phdr_table_[i];
+
+    if (phdr->p_type != PT_NOTE) {
+      continue;
+    }
+
+    // Some obfuscated ELFs may contain "empty" PT_NOTE program headers that don't
+    // point to any part of the ELF (p_memsz == 0). Skip these since there is
+    // nothing to decode. See: b/324468126
+    if (phdr->p_memsz == 0) {
+      continue;
+    }
+
+    // If the PT_NOTE extends beyond the file. The ELF is doing something
+    // strange -- obfuscation, embedding hidden loaders, ...
+    //
+    // It doesn't contain the pad_segment note. Skip it to avoid SIGBUS
+    // by accesses beyond the file.
+    off64_t note_end_off = file_offset_ + phdr->p_offset + phdr->p_filesz;
+    if (note_end_off > file_size_) {
+      continue;
+    }
+
+    // note_fragment is scoped to within the loop so that there is
+    // at most 1 PT_NOTE mapped at anytime during this search.
+    MappedFileFragment note_fragment;
+    if (!note_fragment.Map(fd_, file_offset_, phdr->p_offset, phdr->p_memsz)) {
+      DL_ERR("\"%s\": PT_NOTE mmap(nullptr, %p, PROT_READ, MAP_PRIVATE, %d, %p) failed: %m",
+             name_.c_str(), reinterpret_cast<void*>(phdr->p_memsz), fd_,
+             reinterpret_cast<void*>(page_start(file_offset_ + phdr->p_offset)));
+      return false;
+    }
+
+    const ElfW(Nhdr)* note_hdr = nullptr;
+    const char* note_desc = nullptr;
+    if (!__get_elf_note(NT_ANDROID_TYPE_PAD_SEGMENT, "Android",
+                        reinterpret_cast<ElfW(Addr)>(note_fragment.data()),
+                        phdr, &note_hdr, &note_desc)) {
+      continue;
+    }
+
+    if (note_hdr->n_descsz != sizeof(ElfW(Word))) {
+      DL_ERR("\"%s\" NT_ANDROID_TYPE_PAD_SEGMENT note has unexpected n_descsz: %u",
+             name_.c_str(), reinterpret_cast<unsigned int>(note_hdr->n_descsz));
+      return false;
+    }
+
+    // 1 == enabled, 0 == disabled
+    should_pad_segments_ = *reinterpret_cast<const ElfW(Word)*>(note_desc) == 1;
+    return true;
+  }
+
+  return true;
+}
+
+static inline void _extend_load_segment_vma(const ElfW(Phdr)* phdr_table, size_t phdr_count,
+                                            size_t phdr_idx, ElfW(Addr)* p_memsz,
+                                            ElfW(Addr)* p_filesz, bool should_pad_segments,
+                                            bool should_use_16kib_app_compat) {
+  // NOTE: Segment extension is only applicable where the ELF's max-page-size > runtime page size;
+  // to save kernel VMA slab memory. 16KiB compat mode is the exact opposite scenario.
+  if (should_use_16kib_app_compat) {
+    return;
+  }
+
+  const ElfW(Phdr)* phdr = &phdr_table[phdr_idx];
+  const ElfW(Phdr)* next = nullptr;
+  size_t next_idx = phdr_idx + 1;
+
+  // Don't do segment extension for p_align > 64KiB, such ELFs already existed in the
+  // field e.g. 2MiB p_align for THPs and are relatively small in number.
+  //
+  // The kernel can only represent padding for p_align up to 64KiB. This is because
+  // the kernel uses 4 available bits in the vm_area_struct to represent padding
+  // extent; and so cannot enable mitigations to avoid breaking app compatibility for
+  // p_aligns > 64KiB.
+  //
+  // Don't perform segment extension on these to avoid app compatibility issues.
+  if (phdr->p_align <= kPageSize || phdr->p_align > 64*1024 || !should_pad_segments) {
+    return;
+  }
+
+  if (next_idx < phdr_count && phdr_table[next_idx].p_type == PT_LOAD) {
+    next = &phdr_table[next_idx];
+  }
+
+  // If this is the last LOAD segment, no extension is needed
+  if (!next || *p_memsz != *p_filesz) {
+    return;
+  }
+
+  ElfW(Addr) next_start = page_start(next->p_vaddr);
+  ElfW(Addr) curr_end = page_end(phdr->p_vaddr + *p_memsz);
+
+  // If adjacent segment mappings overlap, no extension is needed.
+  if (curr_end >= next_start) {
+    return;
+  }
+
+  // Extend the LOAD segment mapping to be contiguous with that of
+  // the next LOAD segment.
+  ElfW(Addr) extend = next_start - curr_end;
+  *p_memsz += extend;
+  *p_filesz += extend;
+}
+
+bool ElfReader::MapSegment(size_t seg_idx, size_t len) {
+  const ElfW(Phdr)* phdr = &phdr_table_[seg_idx];
+
+  void* start = reinterpret_cast<void*>(page_start(phdr->p_vaddr + load_bias_));
+
+  // The ELF could be being loaded directly from a zipped APK,
+  // the zip offset must be added to find the segment offset.
+  const ElfW(Addr) offset = file_offset_ + page_start(phdr->p_offset);
+
+  int prot = PFLAGS_TO_PROT(phdr->p_flags);
+
+  void* seg_addr = mmap64(start, len, prot, MAP_FIXED | MAP_PRIVATE, fd_, offset);
+
+  if (seg_addr == MAP_FAILED) {
+    DL_ERR("couldn't map \"%s\" segment %zd: %m", name_.c_str(), seg_idx);
+    return false;
+  }
+
+  // Mark segments as huge page eligible if they meet the requirements
+  if ((phdr->p_flags & PF_X) && phdr->p_align == kPmdSize &&
+      get_transparent_hugepages_supported()) {
+    madvise(seg_addr, len, MADV_HUGEPAGE);
+  }
+
+  return true;
+}
+
+void ElfReader::ZeroFillSegment(const ElfW(Phdr)* phdr) {
+  // NOTE: In 16KiB app compat mode, the ELF mapping is anonymous, meaning that
+  // RW segments are COW-ed from the kernel's zero page. So there is no need to
+  // explicitly zero-fill until the last page's limit.
+  if (should_use_16kib_app_compat_) {
+    return;
+  }
+
+  ElfW(Addr) seg_start = phdr->p_vaddr + load_bias_;
+  uint64_t unextended_seg_file_end = seg_start + phdr->p_filesz;
+
+  // If the segment is writable, and does not end on a page boundary,
+  // zero-fill it until the page limit.
+  //
+  // Do not attempt to zero the extended region past the first partial page,
+  // since doing so may:
+  //   1) Result in a SIGBUS, as the region is not backed by the underlying
+  //      file.
+  //   2) Break the COW backing, faulting in new anon pages for a region
+  //      that will not be used.
+  if ((phdr->p_flags & PF_W) != 0 && page_offset(unextended_seg_file_end) > 0) {
+    memset(reinterpret_cast<void*>(unextended_seg_file_end), 0,
+           kPageSize - page_offset(unextended_seg_file_end));
+  }
+}
+
+void ElfReader::DropPaddingPages(const ElfW(Phdr)* phdr, uint64_t seg_file_end) {
+  // NOTE: Padding pages are only applicable where the ELF's max-page-size > runtime page size;
+  // 16KiB compat mode is the exact opposite scenario.
+  if (should_use_16kib_app_compat_) {
+    return;
+  }
+
+  ElfW(Addr) seg_start = phdr->p_vaddr + load_bias_;
+  uint64_t unextended_seg_file_end = seg_start + phdr->p_filesz;
+
+  uint64_t pad_start = page_end(unextended_seg_file_end);
+  uint64_t pad_end = page_end(seg_file_end);
+  CHECK(pad_start <= pad_end);
+
+  uint64_t pad_len = pad_end - pad_start;
+  if (pad_len == 0 || !page_size_migration_supported()) {
+    return;
+  }
+
+  // Pages may be brought in due to readahead.
+  // Drop the padding (zero) pages, to avoid reclaim work later.
+  //
+  // NOTE: The madvise() here is special, as it also serves to hint to the
+  // kernel the portion of the LOAD segment that is padding.
+  //
+  // See: [1] https://android-review.googlesource.com/c/kernel/common/+/3032411
+  //      [2] https://android-review.googlesource.com/c/kernel/common/+/3048835
+  if (madvise(reinterpret_cast<void*>(pad_start), pad_len, MADV_DONTNEED)) {
+    DL_WARN("\"%s\": madvise(0x%" PRIx64 ", 0x%" PRIx64 ", MADV_DONTNEED) failed: %m",
+            name_.c_str(), pad_start, pad_len);
+  }
+}
+
+bool ElfReader::MapBssSection(const ElfW(Phdr)* phdr, ElfW(Addr) seg_page_end,
+                              ElfW(Addr) seg_file_end) {
+  // NOTE: We do not need to handle .bss in 16KiB compat mode since the mapping
+  // reservation is anonymous and RW to begin with.
+  if (should_use_16kib_app_compat_) {
+    return true;
+  }
+
+  // seg_file_end is now the first page address after the file content.
+  seg_file_end = page_end(seg_file_end);
+
+  if (seg_page_end <= seg_file_end) {
+    return true;
+  }
+
+  // If seg_page_end is larger than seg_file_end, we need to zero
+  // anything between them. This is done by using a private anonymous
+  // map for all extra pages
+  size_t zeromap_size = seg_page_end - seg_file_end;
+  void* zeromap =
+      mmap(reinterpret_cast<void*>(seg_file_end), zeromap_size, PFLAGS_TO_PROT(phdr->p_flags),
+           MAP_FIXED | MAP_ANONYMOUS | MAP_PRIVATE, -1, 0);
+  if (zeromap == MAP_FAILED) {
+    DL_ERR("couldn't map .bss section for \"%s\": %m", name_.c_str());
+    return false;
+  }
+
+  // Set the VMA name using prctl
+  prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, zeromap, zeromap_size, ".bss");
+
   return true;
 }
 
 bool ElfReader::LoadSegments() {
+  // NOTE: The compat(legacy) page size (4096) must be used when aligning
+  // the 4KiB segments for loading in compat mode. The larger 16KiB page size
+  // will lead to overwriting adjacent segments since the ELF's segment(s)
+  // are not 16KiB aligned.
+  size_t seg_align = should_use_16kib_app_compat_ ? kCompatPageSize : kPageSize;
+
+  size_t min_palign = phdr_table_get_minimum_alignment(phdr_table_, phdr_num_);
+  // Only enforce this on 16 KB systems with app compat disabled.
+  // Apps may rely on undefined behavior here on 4 KB systems,
+  // which is the norm before this change is introduced
+  if (kPageSize >= 16384 && min_palign < kPageSize && !should_use_16kib_app_compat_) {
+    DL_ERR("\"%s\" program alignment (%zu) cannot be smaller than system page size (%zu)",
+           name_.c_str(), min_palign, kPageSize);
+    return false;
+  }
+
+  if (!Setup16KiBAppCompat()) {
+    DL_ERR("\"%s\" failed to setup 16KiB App Compat", name_.c_str());
+    return false;
+  }
+
   for (size_t i = 0; i < phdr_num_; ++i) {
     const ElfW(Phdr)* phdr = &phdr_table_[i];
 
@@ -702,20 +1033,24 @@
       continue;
     }
 
+    ElfW(Addr) p_memsz = phdr->p_memsz;
+    ElfW(Addr) p_filesz = phdr->p_filesz;
+    _extend_load_segment_vma(phdr_table_, phdr_num_, i, &p_memsz, &p_filesz, should_pad_segments_,
+                             should_use_16kib_app_compat_);
+
     // Segment addresses in memory.
     ElfW(Addr) seg_start = phdr->p_vaddr + load_bias_;
-    ElfW(Addr) seg_end   = seg_start + phdr->p_memsz;
+    ElfW(Addr) seg_end = seg_start + p_memsz;
 
-    ElfW(Addr) seg_page_start = PAGE_START(seg_start);
-    ElfW(Addr) seg_page_end   = PAGE_END(seg_end);
+    ElfW(Addr) seg_page_end = align_up(seg_end, seg_align);
 
-    ElfW(Addr) seg_file_end   = seg_start + phdr->p_filesz;
+    ElfW(Addr) seg_file_end = seg_start + p_filesz;
 
     // File offsets.
     ElfW(Addr) file_start = phdr->p_offset;
-    ElfW(Addr) file_end   = file_start + phdr->p_filesz;
+    ElfW(Addr) file_end = file_start + p_filesz;
 
-    ElfW(Addr) file_page_start = PAGE_START(file_start);
+    ElfW(Addr) file_page_start = align_down(file_start, seg_align);
     ElfW(Addr) file_length = file_end - file_page_start;
 
     if (file_size_ <= 0) {
@@ -723,12 +1058,12 @@
       return false;
     }
 
-    if (file_end > static_cast<size_t>(file_size_)) {
+    if (file_start + phdr->p_filesz > static_cast<size_t>(file_size_)) {
       DL_ERR("invalid ELF file \"%s\" load segment[%zd]:"
           " p_offset (%p) + p_filesz (%p) ( = %p) past end of file (0x%" PRIx64 ")",
           name_.c_str(), i, reinterpret_cast<void*>(phdr->p_offset),
           reinterpret_cast<void*>(phdr->p_filesz),
-          reinterpret_cast<void*>(file_end), file_size_);
+          reinterpret_cast<void*>(file_start + phdr->p_filesz), file_size_);
       return false;
     }
 
@@ -747,51 +1082,24 @@
         add_dlwarning(name_.c_str(), "W+E load segments");
       }
 
-      void* seg_addr = mmap64(reinterpret_cast<void*>(seg_page_start),
-                            file_length,
-                            prot,
-                            MAP_FIXED|MAP_PRIVATE,
-                            fd_,
-                            file_offset_ + file_page_start);
-      if (seg_addr == MAP_FAILED) {
-        DL_ERR("couldn't map \"%s\" segment %zd: %s", name_.c_str(), i, strerror(errno));
-        return false;
-      }
-
-      // Mark segments as huge page eligible if they meet the requirements
-      // (executable and PMD aligned).
-      if ((phdr->p_flags & PF_X) && phdr->p_align == kPmdSize &&
-          get_transparent_hugepages_supported()) {
-        madvise(seg_addr, file_length, MADV_HUGEPAGE);
+      // Pass the file_length, since it may have been extended by _extend_load_segment_vma().
+      if (should_use_16kib_app_compat_) {
+        if (!CompatMapSegment(i, file_length)) {
+          return false;
+        }
+      } else {
+        if (!MapSegment(i, file_length)) {
+          return false;
+        }
       }
     }
 
-    // if the segment is writable, and does not end on a page boundary,
-    // zero-fill it until the page limit.
-    if ((phdr->p_flags & PF_W) != 0 && PAGE_OFFSET(seg_file_end) > 0) {
-      memset(reinterpret_cast<void*>(seg_file_end), 0, PAGE_SIZE - PAGE_OFFSET(seg_file_end));
-    }
+    ZeroFillSegment(phdr);
 
-    seg_file_end = PAGE_END(seg_file_end);
+    DropPaddingPages(phdr, seg_file_end);
 
-    // seg_file_end is now the first page address after the file
-    // content. If seg_end is larger, we need to zero anything
-    // between them. This is done by using a private anonymous
-    // map for all extra pages.
-    if (seg_page_end > seg_file_end) {
-      size_t zeromap_size = seg_page_end - seg_file_end;
-      void* zeromap = mmap(reinterpret_cast<void*>(seg_file_end),
-                           zeromap_size,
-                           PFLAGS_TO_PROT(phdr->p_flags),
-                           MAP_FIXED|MAP_ANONYMOUS|MAP_PRIVATE,
-                           -1,
-                           0);
-      if (zeromap == MAP_FAILED) {
-        DL_ERR("couldn't zero fill \"%s\" gap: %s", name_.c_str(), strerror(errno));
-        return false;
-      }
-
-      prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, zeromap, zeromap_size, ".bss");
+    if (!MapBssSection(phdr, seg_page_end, seg_file_end)) {
+      return false;
     }
   }
   return true;
@@ -802,17 +1110,22 @@
  * phdr_table_protect_segments and phdr_table_unprotect_segments.
  */
 static int _phdr_table_set_load_prot(const ElfW(Phdr)* phdr_table, size_t phdr_count,
-                                     ElfW(Addr) load_bias, int extra_prot_flags) {
-  const ElfW(Phdr)* phdr = phdr_table;
-  const ElfW(Phdr)* phdr_limit = phdr + phdr_count;
+                                     ElfW(Addr) load_bias, int extra_prot_flags,
+                                     bool should_pad_segments, bool should_use_16kib_app_compat) {
+  for (size_t i = 0; i < phdr_count; ++i) {
+    const ElfW(Phdr)* phdr = &phdr_table[i];
 
-  for (; phdr < phdr_limit; phdr++) {
     if (phdr->p_type != PT_LOAD || (phdr->p_flags & PF_W) != 0) {
       continue;
     }
 
-    ElfW(Addr) seg_page_start = PAGE_START(phdr->p_vaddr) + load_bias;
-    ElfW(Addr) seg_page_end   = PAGE_END(phdr->p_vaddr + phdr->p_memsz) + load_bias;
+    ElfW(Addr) p_memsz = phdr->p_memsz;
+    ElfW(Addr) p_filesz = phdr->p_filesz;
+    _extend_load_segment_vma(phdr_table, phdr_count, i, &p_memsz, &p_filesz, should_pad_segments,
+                             should_use_16kib_app_compat);
+
+    ElfW(Addr) seg_page_start = page_start(phdr->p_vaddr + load_bias);
+    ElfW(Addr) seg_page_end = page_end(phdr->p_vaddr + p_memsz + load_bias);
 
     int prot = PFLAGS_TO_PROT(phdr->p_flags) | extra_prot_flags;
     if ((prot & PROT_WRITE) != 0) {
@@ -847,19 +1160,143 @@
  *   phdr_table  -> program header table
  *   phdr_count  -> number of entries in tables
  *   load_bias   -> load bias
+ *   should_pad_segments -> Are segments extended to avoid gaps in the memory map
+ *   should_use_16kib_app_compat -> Is the ELF being loaded in 16KiB app compat mode.
  *   prop        -> GnuPropertySection or nullptr
  * Return:
- *   0 on error, -1 on failure (error code in errno).
+ *   0 on success, -1 on failure (error code in errno).
  */
 int phdr_table_protect_segments(const ElfW(Phdr)* phdr_table, size_t phdr_count,
-                                ElfW(Addr) load_bias, const GnuPropertySection* prop __unused) {
+                                ElfW(Addr) load_bias, bool should_pad_segments,
+                                bool should_use_16kib_app_compat,
+                                const GnuPropertySection* prop __unused) {
   int prot = 0;
 #if defined(__aarch64__)
   if ((prop != nullptr) && prop->IsBTICompatible()) {
     prot |= PROT_BTI;
   }
 #endif
-  return _phdr_table_set_load_prot(phdr_table, phdr_count, load_bias, prot);
+  return _phdr_table_set_load_prot(phdr_table, phdr_count, load_bias, prot, should_pad_segments,
+                                   should_use_16kib_app_compat);
+}
+
+static bool segment_needs_memtag_globals_remapping(const ElfW(Phdr) * phdr) {
+  // For now, MTE globals is only supported on writeable data segments.
+  return phdr->p_type == PT_LOAD && !(phdr->p_flags & PF_X) && (phdr->p_flags & PF_W);
+}
+
+/* When MTE globals are requested by the binary, and when the hardware supports
+ * it, remap the executable's PT_LOAD data pages to have PROT_MTE.
+ *
+ * Returns 0 on success, -1 on failure (error code in errno).
+ */
+int remap_memtag_globals_segments(const ElfW(Phdr) * phdr_table __unused,
+                                  size_t phdr_count __unused, ElfW(Addr) load_bias __unused) {
+#if defined(__aarch64__)
+  for (const ElfW(Phdr)* phdr = phdr_table; phdr < phdr_table + phdr_count; phdr++) {
+    if (!segment_needs_memtag_globals_remapping(phdr)) {
+      continue;
+    }
+
+    uintptr_t seg_page_start = page_start(phdr->p_vaddr) + load_bias;
+    uintptr_t seg_page_end = page_end(phdr->p_vaddr + phdr->p_memsz) + load_bias;
+    size_t seg_page_aligned_size = seg_page_end - seg_page_start;
+
+    int prot = PFLAGS_TO_PROT(phdr->p_flags);
+    // For anonymous private mappings, it may be possible to simply mprotect()
+    // the PROT_MTE flag over the top. For file-based mappings, this will fail,
+    // and we'll need to fall back. We also allow PROT_WRITE here to allow
+    // writing memory tags (in `soinfo::tag_globals()`), and set these sections
+    // back to read-only after tags are applied (similar to RELRO).
+    prot |= PROT_MTE;
+    if (mprotect(reinterpret_cast<void*>(seg_page_start), seg_page_aligned_size,
+                 prot | PROT_WRITE) == 0) {
+      continue;
+    }
+
+    void* mapping_copy = mmap(nullptr, seg_page_aligned_size, PROT_READ | PROT_WRITE,
+                              MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
+    linker_memcpy(mapping_copy, reinterpret_cast<void*>(seg_page_start), seg_page_aligned_size);
+
+    void* seg_addr = mmap(reinterpret_cast<void*>(seg_page_start), seg_page_aligned_size,
+                          prot | PROT_WRITE, MAP_FIXED | MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
+    if (seg_addr == MAP_FAILED) return -1;
+
+    linker_memcpy(seg_addr, mapping_copy, seg_page_aligned_size);
+    munmap(mapping_copy, seg_page_aligned_size);
+  }
+#endif  // defined(__aarch64__)
+  return 0;
+}
+
+void protect_memtag_globals_ro_segments(const ElfW(Phdr) * phdr_table __unused,
+                                        size_t phdr_count __unused, ElfW(Addr) load_bias __unused) {
+#if defined(__aarch64__)
+  for (const ElfW(Phdr)* phdr = phdr_table; phdr < phdr_table + phdr_count; phdr++) {
+    int prot = PFLAGS_TO_PROT(phdr->p_flags);
+    if (!segment_needs_memtag_globals_remapping(phdr) || (prot & PROT_WRITE)) {
+      continue;
+    }
+
+    prot |= PROT_MTE;
+
+    uintptr_t seg_page_start = page_start(phdr->p_vaddr) + load_bias;
+    uintptr_t seg_page_end = page_end(phdr->p_vaddr + phdr->p_memsz) + load_bias;
+    size_t seg_page_aligned_size = seg_page_end - seg_page_start;
+    mprotect(reinterpret_cast<void*>(seg_page_start), seg_page_aligned_size, prot);
+  }
+#endif  // defined(__aarch64__)
+}
+
+void name_memtag_globals_segments(const ElfW(Phdr) * phdr_table, size_t phdr_count,
+                                  ElfW(Addr) load_bias, const char* soname,
+                                  std::list<std::string>* vma_names) {
+  for (const ElfW(Phdr)* phdr = phdr_table; phdr < phdr_table + phdr_count; phdr++) {
+    if (!segment_needs_memtag_globals_remapping(phdr)) {
+      continue;
+    }
+
+    uintptr_t seg_page_start = page_start(phdr->p_vaddr) + load_bias;
+    uintptr_t seg_page_end = page_end(phdr->p_vaddr + phdr->p_memsz) + load_bias;
+    size_t seg_page_aligned_size = seg_page_end - seg_page_start;
+
+    // For file-based mappings that we're now forcing to be anonymous mappings, set the VMA name to
+    // make debugging easier.
+    // Once we are targeting only devices that run kernel 5.10 or newer (and thus include
+    // https://android-review.git.corp.google.com/c/kernel/common/+/1934723 which causes the
+    // VMA_ANON_NAME to be copied into the kernel), we can get rid of the storage here.
+    // For now, that is not the case:
+    // https://source.android.com/docs/core/architecture/kernel/android-common#compatibility-matrix
+    constexpr int kVmaNameLimit = 80;
+    std::string& vma_name = vma_names->emplace_back(kVmaNameLimit, '\0');
+    int full_vma_length =
+        async_safe_format_buffer(vma_name.data(), kVmaNameLimit, "mt:%s+%" PRIxPTR, soname,
+                                 page_start(phdr->p_vaddr)) +
+        /* include the null terminator */ 1;
+    // There's an upper limit of 80 characters, including the null terminator, in the anonymous VMA
+    // name. If we run over that limit, we end up truncating the segment offset and parts of the
+    // DSO's name, starting on the right hand side of the basename. Because the basename is the most
+    // important thing, chop off the soname from the left hand side first.
+    //
+    // Example (with '#' as the null terminator):
+    //   - "mt:/data/nativetest64/bionic-unit-tests/bionic-loader-test-libs/libdlext_test.so+e000#"
+    //     is a `full_vma_length` == 86.
+    //
+    // We need to left-truncate (86 - 80) 6 characters from the soname, plus the
+    // `vma_truncation_prefix`, so 9 characters total.
+    if (full_vma_length > kVmaNameLimit) {
+      const char vma_truncation_prefix[] = "...";
+      int soname_truncated_bytes =
+          full_vma_length - kVmaNameLimit + sizeof(vma_truncation_prefix) - 1;
+      async_safe_format_buffer(vma_name.data(), kVmaNameLimit, "mt:%s%s+%" PRIxPTR,
+                               vma_truncation_prefix, soname + soname_truncated_bytes,
+                               page_start(phdr->p_vaddr));
+    }
+    if (prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, reinterpret_cast<void*>(seg_page_start),
+              seg_page_aligned_size, vma_name.data()) != 0) {
+      DL_WARN("Failed to rename memtag global segment: %m");
+    }
+  }
 }
 
 /* Change the protection of all loaded segments in memory to writable.
@@ -875,19 +1312,85 @@
  *   phdr_table  -> program header table
  *   phdr_count  -> number of entries in tables
  *   load_bias   -> load bias
+ *   should_pad_segments -> Are segments extended to avoid gaps in the memory map
+ *   should_use_16kib_app_compat -> Is the ELF being loaded in 16KiB app compat mode.
  * Return:
- *   0 on error, -1 on failure (error code in errno).
+ *   0 on success, -1 on failure (error code in errno).
  */
-int phdr_table_unprotect_segments(const ElfW(Phdr)* phdr_table,
-                                  size_t phdr_count, ElfW(Addr) load_bias) {
-  return _phdr_table_set_load_prot(phdr_table, phdr_count, load_bias, PROT_WRITE);
+int phdr_table_unprotect_segments(const ElfW(Phdr)* phdr_table, size_t phdr_count,
+                                  ElfW(Addr) load_bias, bool should_pad_segments,
+                                  bool should_use_16kib_app_compat) {
+  return _phdr_table_set_load_prot(phdr_table, phdr_count, load_bias, PROT_WRITE,
+                                   should_pad_segments, should_use_16kib_app_compat);
+}
+
+static inline void _extend_gnu_relro_prot_end(const ElfW(Phdr)* relro_phdr,
+                                              const ElfW(Phdr)* phdr_table, size_t phdr_count,
+                                              ElfW(Addr) load_bias, ElfW(Addr)* seg_page_end,
+                                              bool should_pad_segments,
+                                              bool should_use_16kib_app_compat) {
+  // Find the index and phdr of the LOAD containing the GNU_RELRO segment
+  for (size_t index = 0; index < phdr_count; ++index) {
+    const ElfW(Phdr)* phdr = &phdr_table[index];
+
+    if (phdr->p_type == PT_LOAD && phdr->p_vaddr == relro_phdr->p_vaddr) {
+      // If the PT_GNU_RELRO mem size is not at least as large as the corresponding
+      // LOAD segment mem size, we need to protect only a partial region of the
+      // LOAD segment and therefore cannot avoid a VMA split.
+      //
+      // Note: Don't check the page-aligned mem sizes since the extended protection
+      // may incorrectly write protect non-relocation data.
+      //
+      // Example:
+      //
+      //               |---- 3K ----|-- 1K --|---- 3K ---- |-- 1K --|
+      //       ----------------------------------------------------------------
+      //               |            |        |             |        |
+      //        SEG X  |     RO     |   RO   |     RW      |        |   SEG Y
+      //               |            |        |             |        |
+      //       ----------------------------------------------------------------
+      //                            |        |             |
+      //                            |        |             |
+      //                            |        |             |
+      //                    relro_vaddr   relro_vaddr   relro_vaddr
+      //                    (load_vaddr)       +            +
+      //                                  relro_memsz   load_memsz
+      //
+      //       ----------------------------------------------------------------
+      //               |         PAGE        |         PAGE         |
+      //       ----------------------------------------------------------------
+      //                                     |       Potential      |
+      //                                     |----- Extended RO ----|
+      //                                     |      Protection      |
+      //
+      // If the check below uses  page aligned mem sizes it will cause incorrect write
+      // protection of the 3K RW part of the LOAD segment containing the GNU_RELRO.
+      if (relro_phdr->p_memsz < phdr->p_memsz) {
+        return;
+      }
+
+      ElfW(Addr) p_memsz = phdr->p_memsz;
+      ElfW(Addr) p_filesz = phdr->p_filesz;
+
+      // Attempt extending the VMA (mprotect range). Without extending the range,
+      // mprotect will only RO protect a part of the extended RW LOAD segment, which
+      // will leave an extra split RW VMA (the gap).
+      _extend_load_segment_vma(phdr_table, phdr_count, index, &p_memsz, &p_filesz,
+                               should_pad_segments, should_use_16kib_app_compat);
+
+      *seg_page_end = page_end(phdr->p_vaddr + p_memsz + load_bias);
+      return;
+    }
+  }
 }
 
 /* Used internally by phdr_table_protect_gnu_relro and
  * phdr_table_unprotect_gnu_relro.
  */
 static int _phdr_table_set_gnu_relro_prot(const ElfW(Phdr)* phdr_table, size_t phdr_count,
-                                          ElfW(Addr) load_bias, int prot_flags) {
+                                          ElfW(Addr) load_bias, int prot_flags,
+                                          bool should_pad_segments,
+                                          bool should_use_16kib_app_compat) {
   const ElfW(Phdr)* phdr = phdr_table;
   const ElfW(Phdr)* phdr_limit = phdr + phdr_count;
 
@@ -912,8 +1415,10 @@
     //       the program is likely to fail at runtime. So in effect the
     //       linker must only emit a PT_GNU_RELRO segment if it ensures
     //       that it starts on a page boundary.
-    ElfW(Addr) seg_page_start = PAGE_START(phdr->p_vaddr) + load_bias;
-    ElfW(Addr) seg_page_end   = PAGE_END(phdr->p_vaddr + phdr->p_memsz) + load_bias;
+    ElfW(Addr) seg_page_start = page_start(phdr->p_vaddr) + load_bias;
+    ElfW(Addr) seg_page_end = page_end(phdr->p_vaddr + phdr->p_memsz) + load_bias;
+    _extend_gnu_relro_prot_end(phdr, phdr_table, phdr_count, load_bias, &seg_page_end,
+                               should_pad_segments, should_use_16kib_app_compat);
 
     int ret = mprotect(reinterpret_cast<void*>(seg_page_start),
                        seg_page_end - seg_page_start,
@@ -938,12 +1443,30 @@
  *   phdr_table  -> program header table
  *   phdr_count  -> number of entries in tables
  *   load_bias   -> load bias
+ *   should_pad_segments -> Were segments extended to avoid gaps in the memory map
+ *   should_use_16kib_app_compat -> Is the ELF being loaded in 16KiB app compat mode.
  * Return:
- *   0 on error, -1 on failure (error code in errno).
+ *   0 on success, -1 on failure (error code in errno).
  */
-int phdr_table_protect_gnu_relro(const ElfW(Phdr)* phdr_table,
-                                 size_t phdr_count, ElfW(Addr) load_bias) {
-  return _phdr_table_set_gnu_relro_prot(phdr_table, phdr_count, load_bias, PROT_READ);
+int phdr_table_protect_gnu_relro(const ElfW(Phdr)* phdr_table, size_t phdr_count,
+                                 ElfW(Addr) load_bias, bool should_pad_segments,
+                                 bool should_use_16kib_app_compat) {
+  return _phdr_table_set_gnu_relro_prot(phdr_table, phdr_count, load_bias, PROT_READ,
+                                        should_pad_segments, should_use_16kib_app_compat);
+}
+
+/*
+ * Apply RX protection to the compat relro region of the ELF being loaded in
+ * 16KiB compat mode.
+ *
+ * Input:
+ *   start  -> start address of the compat relro region.
+ *   size   -> size of the compat relro region in bytes.
+ * Return:
+ *   0 on success, -1 on failure (error code in errno).
+ */
+int phdr_table_protect_gnu_relro_16kib_compat(ElfW(Addr) start, ElfW(Addr) size) {
+  return mprotect(reinterpret_cast<void*>(start), size, PROT_READ | PROT_EXEC);
 }
 
 /* Serialize the GNU relro segments to the given file descriptor. This can be
@@ -957,7 +1480,7 @@
  *   fd          -> writable file descriptor to use
  *   file_offset -> pointer to offset into file descriptor to use/update
  * Return:
- *   0 on error, -1 on failure (error code in errno).
+ *   0 on success, -1 on failure (error code in errno).
  */
 int phdr_table_serialize_gnu_relro(const ElfW(Phdr)* phdr_table,
                                    size_t phdr_count,
@@ -972,8 +1495,8 @@
       continue;
     }
 
-    ElfW(Addr) seg_page_start = PAGE_START(phdr->p_vaddr) + load_bias;
-    ElfW(Addr) seg_page_end   = PAGE_END(phdr->p_vaddr + phdr->p_memsz) + load_bias;
+    ElfW(Addr) seg_page_start = page_start(phdr->p_vaddr) + load_bias;
+    ElfW(Addr) seg_page_end = page_end(phdr->p_vaddr + phdr->p_memsz) + load_bias;
     ssize_t size = seg_page_end - seg_page_start;
 
     ssize_t written = TEMP_FAILURE_RETRY(write(fd, reinterpret_cast<void*>(seg_page_start), size));
@@ -1005,7 +1528,7 @@
  *   fd          -> readable file descriptor to use
  *   file_offset -> pointer to offset into file descriptor to use/update
  * Return:
- *   0 on error, -1 on failure (error code in errno).
+ *   0 on success, -1 on failure (error code in errno).
  */
 int phdr_table_map_gnu_relro(const ElfW(Phdr)* phdr_table,
                              size_t phdr_count,
@@ -1035,8 +1558,8 @@
       continue;
     }
 
-    ElfW(Addr) seg_page_start = PAGE_START(phdr->p_vaddr) + load_bias;
-    ElfW(Addr) seg_page_end   = PAGE_END(phdr->p_vaddr + phdr->p_memsz) + load_bias;
+    ElfW(Addr) seg_page_start = page_start(phdr->p_vaddr) + load_bias;
+    ElfW(Addr) seg_page_end = page_end(phdr->p_vaddr + phdr->p_memsz) + load_bias;
 
     char* file_base = static_cast<char*>(temp_mapping) + *file_offset;
     char* mem_base = reinterpret_cast<char*>(seg_page_start);
@@ -1053,15 +1576,15 @@
     while (match_offset < size) {
       // Skip over dissimilar pages.
       while (match_offset < size &&
-             memcmp(mem_base + match_offset, file_base + match_offset, PAGE_SIZE) != 0) {
-        match_offset += PAGE_SIZE;
+             memcmp(mem_base + match_offset, file_base + match_offset, page_size()) != 0) {
+        match_offset += page_size();
       }
 
       // Count similar pages.
       size_t mismatch_offset = match_offset;
       while (mismatch_offset < size &&
-             memcmp(mem_base + mismatch_offset, file_base + mismatch_offset, PAGE_SIZE) == 0) {
-        mismatch_offset += PAGE_SIZE;
+             memcmp(mem_base + mismatch_offset, file_base + mismatch_offset, page_size()) == 0) {
+        mismatch_offset += page_size();
       }
 
       // Map over similar pages.
@@ -1086,11 +1609,6 @@
 
 
 #if defined(__arm__)
-
-#  ifndef PT_ARM_EXIDX
-#    define PT_ARM_EXIDX    0x70000001      /* .ARM.exidx segment */
-#  endif
-
 /* Return the address and size of the .ARM.exidx section in memory,
  * if present.
  *
@@ -1102,7 +1620,7 @@
  *   arm_exidx       -> address of table in memory (null on failure).
  *   arm_exidx_count -> number of items in table (0 on failure).
  * Return:
- *   0 on error, -1 on failure (_no_ error code in errno)
+ *   0 on success, -1 on failure (_no_ error code in errno)
  */
 int phdr_table_get_arm_exidx(const ElfW(Phdr)* phdr_table, size_t phdr_count,
                              ElfW(Addr) load_bias,
diff --git a/linker/linker_phdr.h b/linker/linker_phdr.h
index 98bf020..e15ece4 100644
--- a/linker/linker_phdr.h
+++ b/linker/linker_phdr.h
@@ -39,12 +39,21 @@
 #include "linker_mapped_file_fragment.h"
 #include "linker_note_gnu_property.h"
 
+#include <list>
+
+#define MAYBE_MAP_FLAG(x, from, to)  (((x) & (from)) ? (to) : 0)
+#define PFLAGS_TO_PROT(x)            (MAYBE_MAP_FLAG((x), PF_X, PROT_EXEC) | \
+                                      MAYBE_MAP_FLAG((x), PF_R, PROT_READ) | \
+                                      MAYBE_MAP_FLAG((x), PF_W, PROT_WRITE))
+
+static constexpr size_t kCompatPageSize = 0x1000;
+
 class ElfReader {
  public:
   ElfReader();
 
-  bool Read(const char* name, int fd, off64_t file_offset, off64_t file_size);
-  bool Load(address_space_params* address_space);
+  [[nodiscard]] bool Read(const char* name, int fd, off64_t file_offset, off64_t file_size);
+  [[nodiscard]] bool Load(address_space_params* address_space);
 
   const char* name() const { return name_.c_str(); }
   size_t phdr_count() const { return phdr_num_; }
@@ -58,19 +67,33 @@
   const char* get_string(ElfW(Word) index) const;
   bool is_mapped_by_caller() const { return mapped_by_caller_; }
   ElfW(Addr) entry_point() const { return header_.e_entry + load_bias_; }
+  bool should_pad_segments() const { return should_pad_segments_; }
+  bool should_use_16kib_app_compat() const { return should_use_16kib_app_compat_; }
+  ElfW(Addr) compat_relro_start() const { return compat_relro_start_; }
+  ElfW(Addr) compat_relro_size() const { return compat_relro_size_; }
 
  private:
-  bool ReadElfHeader();
-  bool VerifyElfHeader();
-  bool ReadProgramHeaders();
-  bool ReadSectionHeaders();
-  bool ReadDynamicSection();
-  bool ReserveAddressSpace(address_space_params* address_space);
-  bool LoadSegments();
-  bool FindPhdr();
-  bool FindGnuPropertySection();
-  bool CheckPhdr(ElfW(Addr));
-  bool CheckFileRange(ElfW(Addr) offset, size_t size, size_t alignment);
+  [[nodiscard]] bool ReadElfHeader();
+  [[nodiscard]] bool VerifyElfHeader();
+  [[nodiscard]] bool ReadProgramHeaders();
+  [[nodiscard]] bool ReadSectionHeaders();
+  [[nodiscard]] bool ReadDynamicSection();
+  [[nodiscard]] bool ReadPadSegmentNote();
+  [[nodiscard]] bool ReserveAddressSpace(address_space_params* address_space);
+  [[nodiscard]] bool MapSegment(size_t seg_idx, size_t len);
+  [[nodiscard]] bool CompatMapSegment(size_t seg_idx, size_t len);
+  void ZeroFillSegment(const ElfW(Phdr)* phdr);
+  void DropPaddingPages(const ElfW(Phdr)* phdr, uint64_t seg_file_end);
+  [[nodiscard]] bool MapBssSection(const ElfW(Phdr)* phdr, ElfW(Addr) seg_page_end,
+                                   ElfW(Addr) seg_file_end);
+  [[nodiscard]] bool IsEligibleFor16KiBAppCompat(ElfW(Addr)* vaddr);
+  [[nodiscard]] bool HasAtMostOneRelroSegment(const ElfW(Phdr)** relro_phdr);
+  [[nodiscard]] bool Setup16KiBAppCompat();
+  [[nodiscard]] bool LoadSegments();
+  [[nodiscard]] bool FindPhdr();
+  [[nodiscard]] bool FindGnuPropertySection();
+  [[nodiscard]] bool CheckPhdr(ElfW(Addr));
+  [[nodiscard]] bool CheckFileRange(ElfW(Addr) offset, size_t size, size_t alignment);
 
   bool did_read_;
   bool did_load_;
@@ -113,6 +136,16 @@
   // Is map owned by the caller
   bool mapped_by_caller_;
 
+  // Pad gaps between segments when memory mapping?
+  bool should_pad_segments_ = false;
+
+  // Use app compat mode when loading 4KiB max-page-size ELFs on 16KiB page-size devices?
+  bool should_use_16kib_app_compat_ = false;
+
+  // RELRO region for 16KiB compat loading
+  ElfW(Addr) compat_relro_start_ = 0;
+  ElfW(Addr) compat_relro_size_ = 0;
+
   // Only used by AArch64 at the moment.
   GnuPropertySection note_gnu_property_ __unused;
 };
@@ -121,15 +154,22 @@
                                 ElfW(Addr)* min_vaddr = nullptr, ElfW(Addr)* max_vaddr = nullptr);
 
 size_t phdr_table_get_maximum_alignment(const ElfW(Phdr)* phdr_table, size_t phdr_count);
+size_t phdr_table_get_minimum_alignment(const ElfW(Phdr)* phdr_table, size_t phdr_count);
 
 int phdr_table_protect_segments(const ElfW(Phdr)* phdr_table, size_t phdr_count,
-                                ElfW(Addr) load_bias, const GnuPropertySection* prop = nullptr);
+                                ElfW(Addr) load_bias, bool should_pad_segments,
+                                bool should_use_16kib_app_compat,
+                                const GnuPropertySection* prop = nullptr);
 
 int phdr_table_unprotect_segments(const ElfW(Phdr)* phdr_table, size_t phdr_count,
-                                  ElfW(Addr) load_bias);
+                                  ElfW(Addr) load_bias, bool should_pad_segments,
+                                  bool should_use_16kib_app_compat);
 
 int phdr_table_protect_gnu_relro(const ElfW(Phdr)* phdr_table, size_t phdr_count,
-                                 ElfW(Addr) load_bias);
+                                 ElfW(Addr) load_bias, bool should_pad_segments,
+                                 bool should_use_16kib_app_compat);
+
+int phdr_table_protect_gnu_relro_16kib_compat(ElfW(Addr) start, ElfW(Addr) size);
 
 int phdr_table_serialize_gnu_relro(const ElfW(Phdr)* phdr_table, size_t phdr_count,
                                    ElfW(Addr) load_bias, int fd, size_t* file_offset);
@@ -148,3 +188,15 @@
 
 const char* phdr_table_get_interpreter_name(const ElfW(Phdr)* phdr_table, size_t phdr_count,
                                             ElfW(Addr) load_bias);
+
+bool page_size_migration_supported();
+
+int remap_memtag_globals_segments(const ElfW(Phdr) * phdr_table, size_t phdr_count,
+                                  ElfW(Addr) load_bias);
+
+void protect_memtag_globals_ro_segments(const ElfW(Phdr) * phdr_table, size_t phdr_count,
+                                        ElfW(Addr) load_bias);
+
+void name_memtag_globals_segments(const ElfW(Phdr) * phdr_table, size_t phdr_count,
+                                  ElfW(Addr) load_bias, const char* soname,
+                                  std::list<std::string>* vma_names);
diff --git a/linker/linker_phdr_16kib_compat.cpp b/linker/linker_phdr_16kib_compat.cpp
new file mode 100644
index 0000000..bad20ba
--- /dev/null
+++ b/linker/linker_phdr_16kib_compat.cpp
@@ -0,0 +1,247 @@
+/*
+ * Copyright (C) 2012 The Android Open Source Project
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *  * Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *  * Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in
+ *    the documentation and/or other materials provided with the
+ *    distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#include "linker_phdr.h"
+
+#include <linux/prctl.h>
+#include <sys/mman.h>
+#include <sys/prctl.h>
+#include <unistd.h>
+
+#include "linker_debug.h"
+#include "linker_dlwarning.h"
+#include "linker_globals.h"
+
+#include "platform/bionic/macros.h"
+#include "platform/bionic/page.h"
+
+#include <string>
+
+static bool g_enable_16kb_app_compat;
+
+static inline bool segment_contains_prefix(const ElfW(Phdr)* segment, const ElfW(Phdr)* prefix) {
+  return segment && prefix && segment->p_vaddr == prefix->p_vaddr;
+}
+
+void set_16kb_appcompat_mode(bool enable_app_compat) {
+  g_enable_16kb_app_compat = enable_app_compat;
+}
+
+bool get_16kb_appcompat_mode() {
+  return g_enable_16kb_app_compat;
+}
+
+/*
+ * Returns true if the ELF contains at most 1 RELRO segment; and populates @relro_phdr
+ * with the relro phdr or nullptr if none.
+ *
+ * Returns false if more than 1 RELRO segments are found.
+ */
+bool ElfReader::HasAtMostOneRelroSegment(const ElfW(Phdr)** relro_phdr) {
+  const ElfW(Phdr)* relro = nullptr;
+  for (size_t i = 0; i < phdr_num_; ++i) {
+    const ElfW(Phdr)* phdr = &phdr_table_[i];
+
+    if (phdr->p_type != PT_GNU_RELRO) {
+      continue;
+    }
+
+    if (relro == nullptr) {
+      relro = phdr;
+    } else {
+      return false;
+    }
+  }
+
+  *relro_phdr = relro;
+
+  return true;
+}
+
+/*
+ * In 16KiB compatibility mode ELFs with the following segment layout
+ * can be loaded successfully:
+ *
+ *         ┌────────────┬─────────────────────────┬────────────┐
+ *         │            │                         │            │
+ *         │  (RO|RX)*  │   (RW - RELRO prefix)?  │    (RW)*   │
+ *         │            │                         │            │
+ *         └────────────┴─────────────────────────┴────────────┘
+ *
+ * In other words, compatible layouts have:
+ *         - zero or more RO or RX segments;
+ *         - followed by zero or one RELRO prefix;
+ *         - followed by zero or more RW segments (this can include the RW
+ *           suffix from the segment containing the RELRO prefix, if any)
+ *
+ * In 16KiB compat mode, after relocation, the ELF is layout in virtual
+ * memory is as shown below:
+ *         ┌──────────────────────────────────────┬────────────┐
+ *         │                                      │            │
+ *         │                (RX)?                 │    (RW)?   │
+ *         │                                      │            │
+ *         └──────────────────────────────────────┴────────────┘
+ *
+ * In compat mode:
+ *         - the RO and RX segments along with the RELRO prefix are protected
+ *           as RX;
+ *         - and the RW segments along with RW suffix from the relro segment,
+ *           if any; are RW protected.
+ *
+ * This allows for the single RX|RW permission boundary to be aligned with
+ * a 16KiB page boundary; since a single page cannot share multiple
+ * permissions.
+ *
+ * IsEligibleFor16KiBAppCompat() identifies compatible ELFs and populates @vaddr
+ * with the boundary between RX|RW portions.
+ *
+ * Returns true if the ELF can be loaded in compat mode, else false.
+ */
+bool ElfReader::IsEligibleFor16KiBAppCompat(ElfW(Addr)* vaddr) {
+  const ElfW(Phdr)* relro_phdr = nullptr;
+  if (!HasAtMostOneRelroSegment(&relro_phdr)) {
+    DL_WARN("\"%s\": Compat loading failed: Multiple RELRO segments found", name_.c_str());
+    return false;
+  }
+
+  const ElfW(Phdr)* last_rw = nullptr;
+  const ElfW(Phdr)* first_rw = nullptr;
+
+  for (size_t i = 0; i < phdr_num_; ++i) {
+    const ElfW(Phdr)* curr = &phdr_table_[i];
+    const ElfW(Phdr)* prev = (i > 0) ? &phdr_table_[i - 1] : nullptr;
+
+    if (curr->p_type != PT_LOAD) {
+      continue;
+    }
+
+    int prot = PFLAGS_TO_PROT(curr->p_flags);
+
+    if ((prot & PROT_WRITE) && (prot & PROT_READ)) {
+      if (!first_rw) {
+        first_rw = curr;
+      }
+
+      if (last_rw && last_rw != prev) {
+        DL_WARN("\"%s\": Compat loading failed: ELF contains multiple non-adjacent RW segments",
+                name_.c_str());
+        return false;
+      }
+
+      last_rw = curr;
+    }
+  }
+
+  if (!relro_phdr) {
+    *vaddr = align_down(first_rw->p_vaddr, kCompatPageSize);
+    return true;
+  }
+
+  // The RELRO segment is present, it must be the prefix of the first RW segment.
+  if (!segment_contains_prefix(first_rw, relro_phdr)) {
+    DL_WARN("\"%s\": Compat loading failed: RELRO is not in the first RW segment",
+            name_.c_str());
+    return false;
+  }
+
+  uint64_t end;
+  if (__builtin_add_overflow(relro_phdr->p_vaddr, relro_phdr->p_memsz, &end)) {
+    DL_WARN("\"%s\": Compat loading failed: relro vaddr + memsz overflowed", name_.c_str());
+    return false;
+  }
+
+  *vaddr = align_up(end, kCompatPageSize);
+  return true;
+}
+
+/*
+ * Returns the offset/shift needed to align @vaddr to a page boundary.
+ */
+static inline ElfW(Addr) perm_boundary_offset(const ElfW(Addr) addr) {
+  ElfW(Addr) offset = page_offset(addr);
+
+  return offset ? page_size() - offset : 0;
+}
+
+bool ElfReader::Setup16KiBAppCompat() {
+  if (!should_use_16kib_app_compat_) {
+    return true;
+  }
+
+  ElfW(Addr) rx_rw_boundary;  // Permission bounadry for compat mode
+  if (!IsEligibleFor16KiBAppCompat(&rx_rw_boundary)) {
+    return false;
+  }
+
+  // Adjust the load_bias to position the RX|RW boundary on a page boundary
+  load_bias_ += perm_boundary_offset(rx_rw_boundary);
+
+  // RW region (.data, .bss ...)
+  ElfW(Addr) rw_start = load_bias_ + rx_rw_boundary;
+  ElfW(Addr) rw_size = load_size_ - (rw_start - reinterpret_cast<ElfW(Addr)>(load_start_));
+
+  CHECK(rw_start % getpagesize() == 0);
+  CHECK(rw_size % getpagesize() == 0);
+
+  // Compat RELRO (RX) region (.text, .data.relro, ...)
+  compat_relro_start_ = reinterpret_cast<ElfW(Addr)>(load_start_);
+  compat_relro_size_ = load_size_ - rw_size;
+
+  // Label the ELF VMA, since compat mode uses anonymous mappings.
+  std::string compat_name = name_ + " (compat loaded)";
+  prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, load_start_, load_size_, compat_name.c_str());
+
+  return true;
+}
+
+bool ElfReader::CompatMapSegment(size_t seg_idx, size_t len) {
+  const ElfW(Phdr)* phdr = &phdr_table_[seg_idx];
+
+  // NOTE: The compat(legacy) page size (4096) must be used when aligning
+  // the 4KiB segments for loading (reading). The larger 16KiB page size
+  // will lead to overwriting adjacent segments since the ELF's segment(s)
+  // are not 16KiB aligned.
+
+  void* start = reinterpret_cast<void*>(align_down(phdr->p_vaddr + load_bias_, kCompatPageSize));
+
+  // The ELF could be being loaded directly from a zipped APK,
+  // the zip offset must be added to find the segment offset.
+  const ElfW(Addr) offset = file_offset_ + align_down(phdr->p_offset, kCompatPageSize);
+
+  CHECK(should_use_16kib_app_compat_);
+
+  // Since the 4KiB max-page-size ELF is not properly aligned, loading it by
+  // directly mmapping the ELF file is not feasible.
+  // Instead, read the ELF contents into the anonymous RW mapping.
+  if (TEMP_FAILURE_RETRY(pread64(fd_, start, len, offset)) == -1) {
+    DL_ERR("Compat loading: \"%s\" failed to read LOAD segment %zu: %m", name_.c_str(), seg_idx);
+    return false;
+  }
+
+  return true;
+}
diff --git a/linker/linker_relocate.cpp b/linker/linker_relocate.cpp
index 952dade..bbf8359 100644
--- a/linker/linker_relocate.cpp
+++ b/linker/linker_relocate.cpp
@@ -44,6 +44,8 @@
 #include "linker_soinfo.h"
 #include "private/bionic_globals.h"
 
+#include <platform/bionic/mte.h>
+
 static bool is_tls_reloc(ElfW(Word) type) {
   switch (type) {
     case R_GENERIC_TLS_DTPMOD:
@@ -147,12 +149,13 @@
 }
 
 void print_linker_stats() {
-  PRINT("RELO STATS: %s: %d abs, %d rel, %d symbol (%d cached)",
-         g_argv[0],
-         linker_stats.count[kRelocAbsolute],
-         linker_stats.count[kRelocRelative],
-         linker_stats.count[kRelocSymbol],
-         linker_stats.count[kRelocSymbolCached]);
+  LD_DEBUG(statistics,
+           "RELO STATS: %s: %d abs, %d rel, %d symbol (%d cached)",
+           g_argv[0],
+           linker_stats.count[kRelocAbsolute],
+           linker_stats.count[kRelocRelative],
+           linker_stats.count[kRelocSymbol],
+           linker_stats.count[kRelocSymbolCached]);
 }
 
 static bool process_relocation_general(Relocator& relocator, const rel_t& reloc);
@@ -162,7 +165,8 @@
 static bool process_relocation_impl(Relocator& relocator, const rel_t& reloc) {
   constexpr bool IsGeneral = Mode == RelocMode::General;
 
-  void* const rel_target = reinterpret_cast<void*>(reloc.r_offset + relocator.si->load_bias);
+  void* const rel_target = reinterpret_cast<void*>(
+      relocator.si->apply_memtag_if_mte_globals(reloc.r_offset + relocator.si->load_bias));
   const uint32_t r_type = ELFW(R_TYPE)(reloc.r_info);
   const uint32_t r_sym = ELFW(R_SYM)(reloc.r_info);
 
@@ -187,9 +191,9 @@
   auto protect_segments = [&]() {
     // Make .text executable.
     if (phdr_table_protect_segments(relocator.si->phdr, relocator.si->phnum,
-                                    relocator.si->load_bias) < 0) {
-      DL_ERR("can't protect segments for \"%s\": %s",
-             relocator.si->get_realpath(), strerror(errno));
+                                    relocator.si->load_bias, relocator.si->should_pad_segments(),
+                                    relocator.si->should_use_16kib_app_compat()) < 0) {
+      DL_ERR("can't protect segments for \"%s\": %m", relocator.si->get_realpath());
       return false;
     }
     return true;
@@ -197,29 +201,19 @@
   auto unprotect_segments = [&]() {
     // Make .text writable.
     if (phdr_table_unprotect_segments(relocator.si->phdr, relocator.si->phnum,
-                                      relocator.si->load_bias) < 0) {
-      DL_ERR("can't unprotect loadable segments for \"%s\": %s",
-             relocator.si->get_realpath(), strerror(errno));
+                                      relocator.si->load_bias, relocator.si->should_pad_segments(),
+                                      relocator.si->should_use_16kib_app_compat()) < 0) {
+      DL_ERR("can't unprotect loadable segments for \"%s\": %m",
+             relocator.si->get_realpath());
       return false;
     }
     return true;
   };
 #endif
 
-  auto trace_reloc = [](const char* fmt, ...) __printflike(2, 3) {
-    if (IsGeneral &&
-        g_ld_debug_verbosity > LINKER_VERBOSITY_TRACE &&
-        DO_TRACE_RELO) {
-      va_list ap;
-      va_start(ap, fmt);
-      linker_log_va_list(LINKER_VERBOSITY_TRACE, fmt, ap);
-      va_end(ap);
-    }
-  };
-
   // Skip symbol lookup for R_GENERIC_NONE relocations.
   if (__predict_false(r_type == R_GENERIC_NONE)) {
-    trace_reloc("RELO NONE");
+    LD_DEBUG(reloc && IsGeneral, "RELO NONE");
     return true;
   }
 
@@ -312,8 +306,8 @@
     if (r_type == R_GENERIC_JUMP_SLOT) {
       count_relocation_if<IsGeneral>(kRelocAbsolute);
       const ElfW(Addr) result = sym_addr + get_addend_norel();
-      trace_reloc("RELO JMP_SLOT %16p <- %16p %s",
-                  rel_target, reinterpret_cast<void*>(result), sym_name);
+      LD_DEBUG(reloc && IsGeneral, "RELO JMP_SLOT %16p <- %16p %s",
+               rel_target, reinterpret_cast<void*>(result), sym_name);
       *static_cast<ElfW(Addr)*>(rel_target) = result;
       return true;
     }
@@ -325,9 +319,10 @@
     // common in non-platform binaries.
     if (r_type == R_GENERIC_ABSOLUTE) {
       count_relocation_if<IsGeneral>(kRelocAbsolute);
+      if (found_in) sym_addr = found_in->apply_memtag_if_mte_globals(sym_addr);
       const ElfW(Addr) result = sym_addr + get_addend_rel();
-      trace_reloc("RELO ABSOLUTE %16p <- %16p %s",
-                  rel_target, reinterpret_cast<void*>(result), sym_name);
+      LD_DEBUG(reloc && IsGeneral, "RELO ABSOLUTE %16p <- %16p %s",
+               rel_target, reinterpret_cast<void*>(result), sym_name);
       *static_cast<ElfW(Addr)*>(rel_target) = result;
       return true;
     } else if (r_type == R_GENERIC_GLOB_DAT) {
@@ -335,18 +330,30 @@
       // document (IHI0044F) specifies that R_ARM_GLOB_DAT has an addend, but Bionic isn't adding
       // it.
       count_relocation_if<IsGeneral>(kRelocAbsolute);
+      if (found_in) sym_addr = found_in->apply_memtag_if_mte_globals(sym_addr);
       const ElfW(Addr) result = sym_addr + get_addend_norel();
-      trace_reloc("RELO GLOB_DAT %16p <- %16p %s",
-                  rel_target, reinterpret_cast<void*>(result), sym_name);
+      LD_DEBUG(reloc && IsGeneral, "RELO GLOB_DAT %16p <- %16p %s",
+               rel_target, reinterpret_cast<void*>(result), sym_name);
       *static_cast<ElfW(Addr)*>(rel_target) = result;
       return true;
     } else if (r_type == R_GENERIC_RELATIVE) {
       // In practice, r_sym is always zero, but if it weren't, the linker would still look up the
       // referenced symbol (and abort if the symbol isn't found), even though it isn't used.
       count_relocation_if<IsGeneral>(kRelocRelative);
-      const ElfW(Addr) result = relocator.si->load_bias + get_addend_rel();
-      trace_reloc("RELO RELATIVE %16p <- %16p",
-                  rel_target, reinterpret_cast<void*>(result));
+      ElfW(Addr) result = relocator.si->load_bias + get_addend_rel();
+      // MTE globals reuses the place bits for additional tag-derivation metadata for
+      // R_AARCH64_RELATIVE relocations, which makes it incompatible with
+      // `-Wl,--apply-dynamic-relocs`. This is enforced by lld, however there's nothing stopping
+      // Android binaries (particularly prebuilts) from building with this linker flag if they're
+      // not built with MTE globals. Thus, don't use the new relocation semantics if this DSO
+      // doesn't have MTE globals.
+      if (relocator.si->should_tag_memtag_globals()) {
+        int64_t* place = static_cast<int64_t*>(rel_target);
+        int64_t offset = *place;
+        result = relocator.si->apply_memtag_if_mte_globals(result + offset) - offset;
+      }
+      LD_DEBUG(reloc && IsGeneral, "RELO RELATIVE %16p <- %16p",
+               rel_target, reinterpret_cast<void*>(result));
       *static_cast<ElfW(Addr)*>(rel_target) = result;
       return true;
     }
@@ -367,8 +374,8 @@
       if (!relocator.si->is_linker()) {
         count_relocation_if<IsGeneral>(kRelocRelative);
         const ElfW(Addr) ifunc_addr = relocator.si->load_bias + get_addend_rel();
-        trace_reloc("RELO IRELATIVE %16p <- %16p",
-                    rel_target, reinterpret_cast<void*>(ifunc_addr));
+        LD_DEBUG(reloc && IsGeneral, "RELO IRELATIVE %16p <- %16p",
+                 rel_target, reinterpret_cast<void*>(ifunc_addr));
         if (handle_text_relocs && !protect_segments()) return false;
         const ElfW(Addr) result = call_ifunc_resolver(ifunc_addr);
         if (handle_text_relocs && !unprotect_segments()) return false;
@@ -405,8 +412,8 @@
           }
         }
         tpoff += sym_addr + get_addend_rel();
-        trace_reloc("RELO TLS_TPREL %16p <- %16p %s",
-                    rel_target, reinterpret_cast<void*>(tpoff), sym_name);
+        LD_DEBUG(reloc && IsGeneral, "RELO TLS_TPREL %16p <- %16p %s",
+                 rel_target, reinterpret_cast<void*>(tpoff), sym_name);
         *static_cast<ElfW(Addr)*>(rel_target) = tpoff;
       }
       break;
@@ -419,9 +426,10 @@
         } else {
           CHECK(found_in->get_tls() != nullptr); // We rejected a missing TLS segment above.
           module_id = found_in->get_tls()->module_id;
+          CHECK(module_id != kTlsUninitializedModuleId);
         }
-        trace_reloc("RELO TLS_DTPMOD %16p <- %zu %s",
-                    rel_target, module_id, sym_name);
+        LD_DEBUG(reloc && IsGeneral, "RELO TLS_DTPMOD %16p <- %zu %s",
+                 rel_target, module_id, sym_name);
         *static_cast<ElfW(Addr)*>(rel_target) = module_id;
       }
       break;
@@ -429,15 +437,15 @@
       count_relocation_if<IsGeneral>(kRelocRelative);
       {
         const ElfW(Addr) result = sym_addr + get_addend_rel() - TLS_DTV_OFFSET;
-        trace_reloc("RELO TLS_DTPREL %16p <- %16p %s",
-                    rel_target, reinterpret_cast<void*>(result), sym_name);
+        LD_DEBUG(reloc && IsGeneral, "RELO TLS_DTPREL %16p <- %16p %s",
+                 rel_target, reinterpret_cast<void*>(result), sym_name);
         *static_cast<ElfW(Addr)*>(rel_target) = result;
       }
       break;
 
-#if defined(__aarch64__)
-    // Bionic currently only implements TLSDESC for arm64. This implementation should work with
-    // other architectures, as long as the resolver functions are implemented.
+#if defined(__aarch64__) || defined(__riscv)
+    // Bionic currently implements TLSDESC for arm64 and riscv64. This implementation should work
+    // with other architectures, as long as the resolver functions are implemented.
     case R_GENERIC_TLSDESC:
       count_relocation_if<IsGeneral>(kRelocRelative);
       {
@@ -447,8 +455,8 @@
           // Unresolved weak relocation.
           desc->func = tlsdesc_resolver_unresolved_weak;
           desc->arg = addend;
-          trace_reloc("RELO TLSDESC %16p <- unresolved weak, addend 0x%zx %s",
-                      rel_target, static_cast<size_t>(addend), sym_name);
+          LD_DEBUG(reloc && IsGeneral, "RELO TLSDESC %16p <- unresolved weak, addend 0x%zx %s",
+                   rel_target, static_cast<size_t>(addend), sym_name);
         } else {
           CHECK(found_in->get_tls() != nullptr); // We rejected a missing TLS segment above.
           size_t module_id = found_in->get_tls()->module_id;
@@ -456,10 +464,10 @@
           if (mod.static_offset != SIZE_MAX) {
             desc->func = tlsdesc_resolver_static;
             desc->arg = mod.static_offset - relocator.tls_tp_base + sym_addr + addend;
-            trace_reloc("RELO TLSDESC %16p <- static (0x%zx - 0x%zx + 0x%zx + 0x%zx) %s",
-                        rel_target, mod.static_offset, relocator.tls_tp_base,
-                        static_cast<size_t>(sym_addr), static_cast<size_t>(addend),
-                        sym_name);
+            LD_DEBUG(reloc && IsGeneral, "RELO TLSDESC %16p <- static (0x%zx - 0x%zx + 0x%zx + 0x%zx) %s",
+                     rel_target, mod.static_offset, relocator.tls_tp_base,
+                     static_cast<size_t>(sym_addr), static_cast<size_t>(addend),
+                     sym_name);
           } else {
             relocator.tlsdesc_args->push_back({
               .generation = mod.first_generation,
@@ -472,22 +480,22 @@
               desc, relocator.tlsdesc_args->size() - 1
             });
             const TlsDynamicResolverArg& desc_arg = relocator.tlsdesc_args->back();
-            trace_reloc("RELO TLSDESC %16p <- dynamic (gen %zu, mod %zu, off %zu) %s",
-                        rel_target, desc_arg.generation, desc_arg.index.module_id,
-                        desc_arg.index.offset, sym_name);
+            LD_DEBUG(reloc && IsGeneral, "RELO TLSDESC %16p <- dynamic (gen %zu, mod %zu, off %zu) %s",
+                     rel_target, desc_arg.generation, desc_arg.index.module_id,
+                     desc_arg.index.offset, sym_name);
           }
         }
       }
       break;
-#endif  // defined(__aarch64__)
+#endif  // defined(__aarch64__) || defined(__riscv)
 
 #if defined(__x86_64__)
     case R_X86_64_32:
       count_relocation_if<IsGeneral>(kRelocAbsolute);
       {
         const Elf32_Addr result = sym_addr + reloc.r_addend;
-        trace_reloc("RELO R_X86_64_32 %16p <- 0x%08x %s",
-                    rel_target, result, sym_name);
+        LD_DEBUG(reloc && IsGeneral, "RELO R_X86_64_32 %16p <- 0x%08x %s",
+                 rel_target, result, sym_name);
         *static_cast<Elf32_Addr*>(rel_target) = result;
       }
       break;
@@ -497,9 +505,9 @@
         const ElfW(Addr) target = sym_addr + reloc.r_addend;
         const ElfW(Addr) base = reinterpret_cast<ElfW(Addr)>(rel_target);
         const Elf32_Addr result = target - base;
-        trace_reloc("RELO R_X86_64_PC32 %16p <- 0x%08x (%16p - %16p) %s",
-                    rel_target, result, reinterpret_cast<void*>(target),
-                    reinterpret_cast<void*>(base), sym_name);
+        LD_DEBUG(reloc && IsGeneral, "RELO R_X86_64_PC32 %16p <- 0x%08x (%16p - %16p) %s",
+                 rel_target, result, reinterpret_cast<void*>(target),
+                 reinterpret_cast<void*>(base), sym_name);
         *static_cast<Elf32_Addr*>(rel_target) = result;
       }
       break;
@@ -510,9 +518,9 @@
         const ElfW(Addr) target = sym_addr + get_addend_rel();
         const ElfW(Addr) base = reinterpret_cast<ElfW(Addr)>(rel_target);
         const ElfW(Addr) result = target - base;
-        trace_reloc("RELO R_386_PC32 %16p <- 0x%08x (%16p - %16p) %s",
-                    rel_target, result, reinterpret_cast<void*>(target),
-                    reinterpret_cast<void*>(base), sym_name);
+        LD_DEBUG(reloc && IsGeneral, "RELO R_386_PC32 %16p <- 0x%08x (%16p - %16p) %s",
+                 rel_target, result, reinterpret_cast<void*>(target),
+                 reinterpret_cast<void*>(base), sym_name);
         *static_cast<ElfW(Addr)*>(rel_target) = result;
       }
       break;
@@ -557,15 +565,11 @@
 }
 
 static bool needs_slow_relocate_loop(const Relocator& relocator __unused) {
-#if STATS
-  // TODO: This could become a run-time flag.
-  return true;
-#endif
 #if !defined(__LP64__)
   if (relocator.si->has_text_relocations) return true;
 #endif
-  if (g_ld_debug_verbosity > LINKER_VERBOSITY_TRACE) {
-    // If linker TRACE() is enabled, then each relocation is logged.
+  // Both LD_DEBUG relocation logging and statistics need the slow path.
+  if (g_linker_debug_config.any || g_linker_debug_config.statistics) {
     return true;
   }
   return false;
@@ -586,6 +590,11 @@
 }
 
 bool soinfo::relocate(const SymbolLookupList& lookup_list) {
+  // For ldd, don't apply relocations because TLS segments are not registered.
+  // We don't care whether ldd diagnoses unresolved symbols.
+  if (g_is_ldd) {
+    return true;
+  }
 
   VersionTracker version_tracker;
 
@@ -601,6 +610,17 @@
   relocator.tlsdesc_args = &tlsdesc_args_;
   relocator.tls_tp_base = __libc_shared_globals()->static_tls_layout.offset_thread_pointer();
 
+  // The linker already applied its RELR relocations in an earlier pass, so
+  // skip the RELR relocations for the linker.
+  if (relr_ != nullptr && !is_linker()) {
+    LD_DEBUG(reloc, "[ relocating %s relr ]", get_realpath());
+    const ElfW(Relr)* begin = relr_;
+    const ElfW(Relr)* end = relr_ + relr_count_;
+    if (!relocate_relr(begin, end, load_bias, should_tag_memtag_globals())) {
+      return false;
+    }
+  }
+
   if (android_relocs_ != nullptr) {
     // check signature
     if (android_relocs_size_ > 3 &&
@@ -608,7 +628,7 @@
         android_relocs_[1] == 'P' &&
         android_relocs_[2] == 'S' &&
         android_relocs_[3] == '2') {
-      DEBUG("[ android relocating %s ]", get_realpath());
+      LD_DEBUG(reloc, "[ relocating %s android rel/rela ]", get_realpath());
 
       const uint8_t* packed_relocs = android_relocs_ + 4;
       const size_t packed_relocs_size = android_relocs_size_ - 4;
@@ -622,36 +642,29 @@
     }
   }
 
-  if (relr_ != nullptr) {
-    DEBUG("[ relocating %s relr ]", get_realpath());
-    if (!relocate_relr()) {
-      return false;
-    }
-  }
-
 #if defined(USE_RELA)
   if (rela_ != nullptr) {
-    DEBUG("[ relocating %s rela ]", get_realpath());
+    LD_DEBUG(reloc, "[ relocating %s rela ]", get_realpath());
 
     if (!plain_relocate<RelocMode::Typical>(relocator, rela_, rela_count_)) {
       return false;
     }
   }
   if (plt_rela_ != nullptr) {
-    DEBUG("[ relocating %s plt rela ]", get_realpath());
+    LD_DEBUG(reloc, "[ relocating %s plt rela ]", get_realpath());
     if (!plain_relocate<RelocMode::JumpTable>(relocator, plt_rela_, plt_rela_count_)) {
       return false;
     }
   }
 #else
   if (rel_ != nullptr) {
-    DEBUG("[ relocating %s rel ]", get_realpath());
+    LD_DEBUG(reloc, "[ relocating %s rel ]", get_realpath());
     if (!plain_relocate<RelocMode::Typical>(relocator, rel_, rel_count_)) {
       return false;
     }
   }
   if (plt_rel_ != nullptr) {
-    DEBUG("[ relocating %s plt rel ]", get_realpath());
+   LD_DEBUG(reloc, "[ relocating %s plt rel ]", get_realpath());
     if (!plain_relocate<RelocMode::JumpTable>(relocator, plt_rel_, plt_rel_count_)) {
       return false;
     }
@@ -660,14 +673,14 @@
 
   // Once the tlsdesc_args_ vector's size is finalized, we can write the addresses of its elements
   // into the TLSDESC relocations.
-#if defined(__aarch64__)
-  // Bionic currently only implements TLSDESC for arm64.
+#if defined(__aarch64__) || defined(__riscv)
+  // Bionic currently only implements TLSDESC for arm64 and riscv64.
   for (const std::pair<TlsDescriptor*, size_t>& pair : relocator.deferred_tlsdesc_relocs) {
     TlsDescriptor* desc = pair.first;
     desc->func = tlsdesc_resolver_dynamic;
     desc->arg = reinterpret_cast<size_t>(&tlsdesc_args_[pair.second]);
   }
-#endif
+#endif // defined(__aarch64__) || defined(__riscv)
 
   return true;
 }
diff --git a/linker/linker_relocs.h b/linker/linker_relocs.h
index 37a7880..54aad18 100644
--- a/linker/linker_relocs.h
+++ b/linker/linker_relocs.h
@@ -84,8 +84,7 @@
 #define R_GENERIC_TLS_DTPMOD    R_RISCV_TLS_DTPMOD64
 #define R_GENERIC_TLS_DTPREL    R_RISCV_TLS_DTPREL64
 #define R_GENERIC_TLS_TPREL     R_RISCV_TLS_TPREL64
-// TODO: https://github.com/riscv-non-isa/riscv-elf-psabi-doc/issues/94
-// #define R_GENERIC_TLSDESC       R_RISCV_TLS_DESC
+#define R_GENERIC_TLSDESC       R_RISCV_TLSDESC
 
 #elif defined (__x86_64__)
 
diff --git a/linker/linker_sleb128.h b/linker/linker_sleb128.h
index 6bb3199..f48fda8 100644
--- a/linker/linker_sleb128.h
+++ b/linker/linker_sleb128.h
@@ -69,3 +69,32 @@
   const uint8_t* current_;
   const uint8_t* const end_;
 };
+
+class uleb128_decoder {
+ public:
+  uleb128_decoder(const uint8_t* buffer, size_t count) : current_(buffer), end_(buffer + count) {}
+
+  uint64_t pop_front() {
+    uint64_t value = 0;
+
+    size_t shift = 0;
+    uint8_t byte;
+
+    do {
+      if (current_ >= end_) {
+        async_safe_fatal("uleb128_decoder ran out of bounds");
+      }
+      byte = *current_++;
+      value |= (static_cast<size_t>(byte & 127) << shift);
+      shift += 7;
+    } while (byte & 128);
+
+    return value;
+  }
+
+  bool has_bytes() { return current_ < end_; }
+
+ private:
+  const uint8_t* current_;
+  const uint8_t* const end_;
+};
diff --git a/linker/linker_soinfo.cpp b/linker/linker_soinfo.cpp
index 287e757..176c133 100644
--- a/linker/linker_soinfo.cpp
+++ b/linker/linker_soinfo.cpp
@@ -44,21 +44,18 @@
 #include "linker_logger.h"
 #include "linker_relocate.h"
 #include "linker_utils.h"
-
-// Enable the slow lookup path if symbol lookups should be logged.
-static bool is_lookup_tracing_enabled() {
-  return g_ld_debug_verbosity > LINKER_VERBOSITY_TRACE && DO_TRACE_LOOKUP;
-}
+#include "platform/bionic/mte.h"
+#include "private/bionic_globals.h"
 
 SymbolLookupList::SymbolLookupList(soinfo* si)
     : sole_lib_(si->get_lookup_lib()), begin_(&sole_lib_), end_(&sole_lib_ + 1) {
   CHECK(si != nullptr);
-  slow_path_count_ += is_lookup_tracing_enabled();
+  slow_path_count_ += !!g_linker_debug_config.lookup;
   slow_path_count_ += sole_lib_.needs_sysv_lookup();
 }
 
 SymbolLookupList::SymbolLookupList(const soinfo_list_t& global_group, const soinfo_list_t& local_group) {
-  slow_path_count_ += is_lookup_tracing_enabled();
+  slow_path_count_ += !!g_linker_debug_config.lookup;
   libs_.reserve(1 + global_group.size() + local_group.size());
 
   // Reserve a space in front for DT_SYMBOLIC lookup.
@@ -144,8 +141,8 @@
       }
 
       if (IsGeneral) {
-        TRACE_TYPE(LOOKUP, "SEARCH %s in %s@%p (gnu)",
-                   name, lib->si_->get_realpath(), reinterpret_cast<void*>(lib->si_->base));
+        LD_DEBUG(lookup, "SEARCH %s in %s@%p (gnu)",
+                 name, lib->si_->get_realpath(), reinterpret_cast<void*>(lib->si_->base));
       }
 
       const uint32_t word_num = (hash / kBloomMaskBits) & lib->gnu_maskwords_;
@@ -159,11 +156,6 @@
           break;
         }
       }
-
-      if (IsGeneral) {
-        TRACE_TYPE(LOOKUP, "NOT FOUND %s in %s@%p",
-                   name, lib->si_->get_realpath(), reinterpret_cast<void*>(lib->si_->base));
-      }
     }
 
     // Search the library's hash table chain.
@@ -186,21 +178,11 @@
             memcmp(lib->strtab_ + sym->st_name, name, name_len + 1) == 0 &&
             is_symbol_global_and_defined(lib->si_, sym)) {
           *si_found_in = lib->si_;
-          if (IsGeneral) {
-            TRACE_TYPE(LOOKUP, "FOUND %s in %s (%p) %zd",
-                       name, lib->si_->get_realpath(), reinterpret_cast<void*>(sym->st_value),
-                       static_cast<size_t>(sym->st_size));
-          }
           return sym;
         }
       }
       ++sym_idx;
     } while ((chain_value & 1) == 0);
-
-    if (IsGeneral) {
-      TRACE_TYPE(LOOKUP, "NOT FOUND %s in %s@%p",
-                 name, lib->si_->get_realpath(), reinterpret_cast<void*>(lib->si_->base));
-    }
   }
 }
 
@@ -211,11 +193,8 @@
       soinfo_do_lookup_impl<false>(name, vi, si_found_in, lookup_list);
 }
 
-soinfo::soinfo(android_namespace_t* ns, const char* realpath,
-               const struct stat* file_stat, off64_t file_offset,
-               int rtld_flags) {
-  memset(this, 0, sizeof(*this));
-
+soinfo::soinfo(android_namespace_t* ns, const char* realpath, const struct stat* file_stat,
+               off64_t file_offset, int rtld_flags) {
   if (realpath != nullptr) {
     realpath_ = realpath;
   }
@@ -327,6 +306,12 @@
   return is_gnu_hash() ? gnu_lookup(symbol_name, vi) : elf_lookup(symbol_name, vi);
 }
 
+ElfW(Addr) soinfo::apply_memtag_if_mte_globals(ElfW(Addr) sym_addr) const {
+  if (!should_tag_memtag_globals()) return sym_addr;
+  if (sym_addr == 0) return sym_addr;  // Handle undefined weak symbols.
+  return reinterpret_cast<ElfW(Addr)>(get_tagged_address(reinterpret_cast<void*>(sym_addr)));
+}
+
 const ElfW(Sym)* soinfo::gnu_lookup(SymbolName& symbol_name, const version_info* vi) const {
   const uint32_t hash = symbol_name.gnu_hash();
 
@@ -336,14 +321,11 @@
   const uint32_t h1 = hash % kBloomMaskBits;
   const uint32_t h2 = (hash >> gnu_shift2_) % kBloomMaskBits;
 
-  TRACE_TYPE(LOOKUP, "SEARCH %s in %s@%p (gnu)",
-      symbol_name.get_name(), get_realpath(), reinterpret_cast<void*>(base));
+  LD_DEBUG(lookup, "SEARCH %s in %s@%p (gnu)",
+           symbol_name.get_name(), get_realpath(), reinterpret_cast<void*>(base));
 
   // test against bloom filter
   if ((1 & (bloom_word >> h1) & (bloom_word >> h2)) == 0) {
-    TRACE_TYPE(LOOKUP, "NOT FOUND %s in %s@%p",
-        symbol_name.get_name(), get_realpath(), reinterpret_cast<void*>(base));
-
     return nullptr;
   }
 
@@ -351,9 +333,6 @@
   uint32_t n = gnu_bucket_[hash % gnu_nbucket_];
 
   if (n == 0) {
-    TRACE_TYPE(LOOKUP, "NOT FOUND %s in %s@%p",
-        symbol_name.get_name(), get_realpath(), reinterpret_cast<void*>(base));
-
     return nullptr;
   }
 
@@ -366,25 +345,19 @@
         check_symbol_version(versym, n, verneed) &&
         strcmp(get_string(s->st_name), symbol_name.get_name()) == 0 &&
         is_symbol_global_and_defined(this, s)) {
-      TRACE_TYPE(LOOKUP, "FOUND %s in %s (%p) %zd",
-          symbol_name.get_name(), get_realpath(), reinterpret_cast<void*>(s->st_value),
-          static_cast<size_t>(s->st_size));
       return symtab_ + n;
     }
   } while ((gnu_chain_[n++] & 1) == 0);
 
-  TRACE_TYPE(LOOKUP, "NOT FOUND %s in %s@%p",
-             symbol_name.get_name(), get_realpath(), reinterpret_cast<void*>(base));
-
   return nullptr;
 }
 
 const ElfW(Sym)* soinfo::elf_lookup(SymbolName& symbol_name, const version_info* vi) const {
   uint32_t hash = symbol_name.elf_hash();
 
-  TRACE_TYPE(LOOKUP, "SEARCH %s in %s@%p h=%x(elf) %zd",
-             symbol_name.get_name(), get_realpath(),
-             reinterpret_cast<void*>(base), hash, hash % nbucket_);
+  LD_DEBUG(lookup, "SEARCH %s in %s@%p h=%x(elf) %zd",
+           symbol_name.get_name(), get_realpath(),
+           reinterpret_cast<void*>(base), hash, hash % nbucket_);
 
   const ElfW(Versym) verneed = find_verdef_version_index(this, vi);
   const ElfW(Versym)* versym = get_versym_table();
@@ -395,18 +368,10 @@
     if (check_symbol_version(versym, n, verneed) &&
         strcmp(get_string(s->st_name), symbol_name.get_name()) == 0 &&
         is_symbol_global_and_defined(this, s)) {
-      TRACE_TYPE(LOOKUP, "FOUND %s in %s (%p) %zd",
-                 symbol_name.get_name(), get_realpath(),
-                 reinterpret_cast<void*>(s->st_value),
-                 static_cast<size_t>(s->st_size));
       return symtab_ + n;
     }
   }
 
-  TRACE_TYPE(LOOKUP, "NOT FOUND %s in %s@%p %x %zd",
-             symbol_name.get_name(), get_realpath(),
-             reinterpret_cast<void*>(base), hash, hash % nbucket_);
-
   return nullptr;
 }
 
@@ -467,9 +432,9 @@
     return;
   }
 
-  TRACE("[ Calling c-tor %s @ %p for '%s' ]", function_name, function, realpath);
+  LD_DEBUG(calls, "[ Calling c-tor %s @ %p for '%s' ]", function_name, function, realpath);
   function(g_argc, g_argv, g_envp);
-  TRACE("[ Done calling c-tor %s @ %p for '%s' ]", function_name, function, realpath);
+  LD_DEBUG(calls, "[ Done calling c-tor %s @ %p for '%s' ]", function_name, function, realpath);
 }
 
 static void call_function(const char* function_name __unused,
@@ -479,9 +444,9 @@
     return;
   }
 
-  TRACE("[ Calling d-tor %s @ %p for '%s' ]", function_name, function, realpath);
+  LD_DEBUG(calls, "[ Calling d-tor %s @ %p for '%s' ]", function_name, function, realpath);
   function();
-  TRACE("[ Done calling d-tor %s @ %p for '%s' ]", function_name, function, realpath);
+  LD_DEBUG(calls, "[ Done calling d-tor %s @ %p for '%s' ]", function_name, function, realpath);
 }
 
 template <typename F>
@@ -491,30 +456,28 @@
     return;
   }
 
-  TRACE("[ Calling %s (size %zd) @ %p for '%s' ]", array_name, count, functions, realpath);
+  LD_DEBUG(calls, "[ Calling %s (size %zd) @ %p for '%s' ]", array_name, count, functions, realpath);
 
   int begin = reverse ? (count - 1) : 0;
   int end = reverse ? -1 : count;
   int step = reverse ? -1 : 1;
 
   for (int i = begin; i != end; i += step) {
-    TRACE("[ %s[%d] == %p ]", array_name, i, functions[i]);
+    LD_DEBUG(calls, "[ %s[%d] == %p ]", array_name, i, functions[i]);
     call_function("function", functions[i], realpath);
   }
 
-  TRACE("[ Done calling %s for '%s' ]", array_name, realpath);
+  LD_DEBUG(calls, "[ Done calling %s for '%s' ]", array_name, realpath);
 }
 
 void soinfo::call_pre_init_constructors() {
-  if (g_is_ldd) return;
-
   // DT_PREINIT_ARRAY functions are called before any other constructors for executables,
   // but ignored in a shared library.
   call_array("DT_PREINIT_ARRAY", preinit_array_, preinit_array_count_, false, get_realpath());
 }
 
 void soinfo::call_constructors() {
-  if (constructors_called || g_is_ldd) {
+  if (constructors_called) {
     return;
   }
 
@@ -532,7 +495,7 @@
 
   if (!is_main_executable() && preinit_array_ != nullptr) {
     // The GNU dynamic linker silently ignores these, but we warn the developer.
-    PRINT("\"%s\": ignoring DT_PREINIT_ARRAY in shared library!", get_realpath());
+    DL_WARN("\"%s\": ignoring DT_PREINIT_ARRAY in shared library!", get_realpath());
   }
 
   get_children().for_each([] (soinfo* si) {
@@ -892,7 +855,7 @@
     handle_ = handle_ | 1;
   } while (handle_ == reinterpret_cast<uintptr_t>(RTLD_DEFAULT) ||
            handle_ == reinterpret_cast<uintptr_t>(RTLD_NEXT) ||
-           g_soinfo_handles_map.find(handle_) != g_soinfo_handles_map.end());
+           g_soinfo_handles_map.contains(handle_));
 
   g_soinfo_handles_map[handle_] = this;
 }
diff --git a/linker/linker_soinfo.h b/linker/linker_soinfo.h
index 9c589d6..4d02676 100644
--- a/linker/linker_soinfo.h
+++ b/linker/linker_soinfo.h
@@ -30,13 +30,16 @@
 
 #include <link.h>
 
+#include <list>
 #include <memory>
 #include <string>
 #include <vector>
 
-#include "private/bionic_elf_tls.h"
+#include "async_safe/CHECK.h"
 #include "linker_namespaces.h"
 #include "linker_tls.h"
+#include "private/bionic_elf_tls.h"
+#include "private/bionic_globals.h"
 
 #define FLAG_LINKED           0x00000001
 #define FLAG_EXE              0x00000004 // The main executable
@@ -64,6 +67,7 @@
                                          // soinfo is executed and this flag is
                                          // unset.
 #define FLAG_PRELINKED        0x00000400 // prelink_image has successfully processed this soinfo
+#define FLAG_GLOBALS_TAGGED   0x00000800 // globals have been tagged by MTE.
 #define FLAG_NEW_SOINFO       0x40000000 // new soinfo format
 
 #define SOINFO_VERSION 6
@@ -250,11 +254,14 @@
   void call_constructors();
   void call_destructors();
   void call_pre_init_constructors();
-  bool prelink_image();
+  bool prelink_image(bool deterministic_memtag_globals = false);
   bool link_image(const SymbolLookupList& lookup_list, soinfo* local_group_root,
                   const android_dlextinfo* extinfo, size_t* relro_fd_offset);
   bool protect_relro();
 
+  void tag_globals(bool deterministic_memtag_globals);
+  ElfW(Addr) apply_memtag_if_mte_globals(ElfW(Addr) sym_addr) const;
+
   void add_child(soinfo* child);
   void remove_all_links();
 
@@ -291,6 +298,9 @@
 #if defined(__work_around_b_24465209__)
     return (flags_ & FLAG_NEW_SOINFO) != 0 && version_ >= min_version;
 #else
+    // If you make this return non-true in the case where
+    // __work_around_b_24465209__ is not defined, you will have to change
+    // memtag_dynamic_entries() and vma_names().
     return true;
 #endif
   }
@@ -351,6 +361,68 @@
   void set_gap_size(size_t gap_size);
   size_t get_gap_size() const;
 
+  const memtag_dynamic_entries_t* memtag_dynamic_entries() const {
+#ifdef __aarch64__
+#ifdef __work_around_b_24465209__
+#error "Assuming aarch64 does not use versioned soinfo."
+#endif
+    return &memtag_dynamic_entries_;
+#endif
+    return nullptr;
+  }
+  void* memtag_globals() const {
+    const memtag_dynamic_entries_t* entries = memtag_dynamic_entries();
+    return entries ? entries->memtag_globals : nullptr;
+  }
+  size_t memtag_globalssz() const {
+    const memtag_dynamic_entries_t* entries = memtag_dynamic_entries();
+    return entries ? entries->memtag_globalssz : 0U;
+  }
+  bool has_memtag_mode() const {
+    const memtag_dynamic_entries_t* entries = memtag_dynamic_entries();
+    return entries ? entries->has_memtag_mode : false;
+  }
+  unsigned memtag_mode() const {
+    const memtag_dynamic_entries_t* entries = memtag_dynamic_entries();
+    return entries ? entries->memtag_mode : 0U;
+  }
+  bool memtag_heap() const {
+    const memtag_dynamic_entries_t* entries = memtag_dynamic_entries();
+    return entries ? entries->memtag_heap : false;
+  }
+  bool memtag_stack() const {
+    const memtag_dynamic_entries_t* entries = memtag_dynamic_entries();
+    return entries ? entries->memtag_stack : false;
+  }
+
+  void set_should_pad_segments(bool should_pad_segments) {
+   should_pad_segments_ = should_pad_segments;
+  }
+  bool should_pad_segments() const { return should_pad_segments_; }
+  bool should_tag_memtag_globals() const {
+    return !is_linker() && memtag_globals() && memtag_globalssz() > 0 && __libc_mte_enabled();
+  }
+  std::list<std::string>* vma_names() {
+#ifdef __aarch64__
+#ifdef __work_around_b_24465209__
+#error "Assuming aarch64 does not use versioned soinfo."
+#endif
+    return &vma_names_;
+#endif
+    return nullptr;
+};
+
+  void set_should_use_16kib_app_compat(bool should_use_16kib_app_compat) {
+    should_use_16kib_app_compat_ = should_use_16kib_app_compat;
+  }
+  bool should_use_16kib_app_compat() const { return should_use_16kib_app_compat_; }
+
+  void set_compat_relro_start(ElfW(Addr) start) { compat_relro_start_ = start; }
+  ElfW(Addr) compat_relro_start() const { return compat_relro_start_; }
+
+  void set_compat_relro_size(ElfW(Addr) size) { compat_relro_size_ = size; }
+  ElfW(Addr) compat_relro_size() const { return compat_relro_start_; }
+
  private:
   bool is_image_linked() const;
   void set_image_linked();
@@ -366,8 +438,6 @@
 
  private:
   bool relocate(const SymbolLookupList& lookup_list);
-  bool relocate_relr();
-  void apply_relr_reloc(ElfW(Addr) offset);
 
   // This part of the structure is only available
   // when FLAG_NEW_SOINFO is set in this->flags.
@@ -433,6 +503,20 @@
   // version >= 6
   ElfW(Addr) gap_start_;
   size_t gap_size_;
+
+  // __aarch64__ only, which does not use versioning.
+  memtag_dynamic_entries_t memtag_dynamic_entries_;
+  std::list<std::string> vma_names_;
+
+  // Pad gaps between segments when memory mapping?
+  bool should_pad_segments_ = false;
+
+  // Use app compat mode when loading 4KiB max-page-size ELFs on 16KiB page-size devices?
+  bool should_use_16kib_app_compat_ = false;
+
+  // RELRO region for 16KiB compat loading
+  ElfW(Addr) compat_relro_start_ = 0;
+  ElfW(Addr) compat_relro_size_ = 0;
 };
 
 // This function is used by dlvsym() to calculate hash of sym_ver
diff --git a/linker/linker_test_globals.cpp b/linker/linker_test_globals.cpp
index 33a78b0..27ec6f7 100644
--- a/linker/linker_test_globals.cpp
+++ b/linker/linker_test_globals.cpp
@@ -26,6 +26,8 @@
  * SUCH DAMAGE.
  */
 
-// To enable logging
-int g_ld_debug_verbosity = 0;
+// Stub some symbols to avoid linking issues
+void DL_WARN_documented_change(int api_level [[maybe_unused]],
+                               const char* doc_link [[maybe_unused]],
+                               const char* fmt [[maybe_unused]], ...) {}
 
diff --git a/linker/linker_tls.cpp b/linker/linker_tls.cpp
index 97892f4..e90b8cb 100644
--- a/linker/linker_tls.cpp
+++ b/linker/linker_tls.cpp
@@ -31,14 +31,15 @@
 #include <vector>
 
 #include "async_safe/CHECK.h"
+#include "linker_globals.h"
+#include "linker_main.h"
+#include "linker_soinfo.h"
 #include "private/ScopedRWLock.h"
 #include "private/ScopedSignalBlocker.h"
 #include "private/bionic_defs.h"
 #include "private/bionic_elf_tls.h"
 #include "private/bionic_globals.h"
 #include "private/linker_native_bridge.h"
-#include "linker_main.h"
-#include "linker_soinfo.h"
 
 static bool g_static_tls_finished;
 static std::vector<TlsModule> g_tls_modules;
@@ -109,7 +110,11 @@
 void linker_setup_exe_static_tls(const char* progname) {
   soinfo* somain = solist_get_somain();
   StaticTlsLayout& layout = __libc_shared_globals()->static_tls_layout;
-  if (somain->get_tls() == nullptr) {
+
+  // For ldd, don't add the executable's TLS segment to the static TLS layout.
+  // It is likely to trigger the underaligned TLS segment error on arm32/arm64
+  // when the ldd argument is actually a shared object.
+  if (somain->get_tls() == nullptr || g_is_ldd) {
     layout.reserve_exe_segment_and_tcb(nullptr, progname);
   } else {
     register_tls_module(somain, layout.reserve_exe_segment_and_tcb(&somain->get_tls()->segment, progname));
@@ -133,6 +138,11 @@
 }
 
 void register_soinfo_tls(soinfo* si) {
+  // ldd skips registration of the executable's TLS segment above to avoid the
+  // arm32/arm64 underalignment error. For consistency, also skip registration
+  // of TLS segments here, for shared objects.
+  if (g_is_ldd) return;
+
   soinfo_tls* si_tls = si->get_tls();
   if (si_tls == nullptr || si_tls->module_id != kTlsUninitializedModuleId) {
     return;
diff --git a/linker/linker_translate_path.cpp b/linker/linker_translate_path.cpp
index 4f3fdfb..b41669e 100644
--- a/linker/linker_translate_path.cpp
+++ b/linker/linker_translate_path.cpp
@@ -42,13 +42,13 @@
 // Workaround for dlopen(/system/lib(64)/<soname>) when .so is in /apex. http://b/121248172
 /**
  * Translate /system path to /apex path if needed
- * The workaround should work only when targetSdkVersion < Q.
+ * The workaround should work only when targetSdkVersion < 29.
  *
  * param out_name_to_apex pointing to /apex path
  * return true if translation is needed
  */
 bool translateSystemPathToApexPath(const char* name, std::string* out_name_to_apex) {
-  static constexpr const char* kPathTranslationQ[][2] = {
+  static constexpr const char* kPathTranslation[][2] = {
       APEX_LIB("com.android.i18n", "libicui18n.so"),
       APEX_LIB("com.android.i18n", "libicuuc.so")
   };
@@ -59,10 +59,10 @@
 
   auto comparator = [name](auto p) { return strcmp(name, p[0]) == 0; };
 
-  if (get_application_target_sdk_version() < __ANDROID_API_Q__) {
+  if (get_application_target_sdk_version() < 29) {
     if (auto it =
-            std::find_if(std::begin(kPathTranslationQ), std::end(kPathTranslationQ), comparator);
-        it != std::end(kPathTranslationQ)) {
+            std::find_if(std::begin(kPathTranslation), std::end(kPathTranslation), comparator);
+        it != std::end(kPathTranslation)) {
       *out_name_to_apex = (*it)[1];
       return true;
     }
diff --git a/linker/linker_utils.cpp b/linker/linker_utils.cpp
index 29110ed..f72716e 100644
--- a/linker/linker_utils.cpp
+++ b/linker/linker_utils.cpp
@@ -75,7 +75,7 @@
 bool normalize_path(const char* path, std::string* normalized_path) {
   // Input should be an absolute path
   if (path[0] != '/') {
-    PRINT("normalize_path - invalid input: \"%s\", the input path should be absolute", path);
+    DL_WARN("normalize_path - invalid input: \"%s\", the input path should be absolute", path);
     return false;
   }
 
@@ -144,7 +144,7 @@
   }
 
   const char* const path = normalized_path.c_str();
-  TRACE("Trying zip file open from path \"%s\" -> normalized \"%s\"", input_path, path);
+  LD_DEBUG(any, "Trying zip file open from path \"%s\" -> normalized \"%s\"", input_path, path);
 
   // Treat an '!/' separator inside a path as the separator between the name
   // of the zip file on disk and the subdirectory to search within it.
@@ -157,7 +157,7 @@
 
   char buf[512];
   if (strlcpy(buf, path, sizeof(buf)) >= sizeof(buf)) {
-    PRINT("Warning: ignoring very long library path: %s", path);
+    DL_WARN("ignoring very long library path: %s", path);
     return false;
   }
 
@@ -169,12 +169,6 @@
   return true;
 }
 
-constexpr off64_t kPageMask = ~static_cast<off64_t>(PAGE_SIZE-1);
-
-off64_t page_start(off64_t offset) {
-  return offset & kPageMask;
-}
-
 bool safe_add(off64_t* out, off64_t a, size_t b) {
   CHECK(a >= 0);
   if (static_cast<uint64_t>(INT64_MAX - a) < b) {
@@ -185,10 +179,6 @@
   return true;
 }
 
-size_t page_offset(off64_t offset) {
-  return static_cast<size_t>(offset & (PAGE_SIZE-1));
-}
-
 void split_path(const char* path, const char* delimiters,
                 std::vector<std::string>* paths) {
   if (path != nullptr && path[0] != 0) {
@@ -217,7 +207,7 @@
   if (realpath(original_path, resolved_path) != nullptr) {
     struct stat s;
     if (stat(resolved_path, &s) == -1) {
-      DL_WARN("Warning: cannot stat file \"%s\": %s (ignoring)", resolved_path, strerror(errno));
+      DL_WARN("Warning: cannot stat file \"%s\": %m (ignoring)", resolved_path);
       return "";
     }
     if (!S_ISDIR(s.st_mode)) {
@@ -236,8 +226,7 @@
     std::string entry_path;
     if (parse_zip_path(normalized_path.c_str(), &zip_path, &entry_path)) {
       if (realpath(zip_path.c_str(), resolved_path) == nullptr) {
-        DL_WARN("Warning: unable to resolve \"%s\": %s (ignoring)",
-                zip_path.c_str(), strerror(errno));
+        DL_WARN("Warning: unable to resolve \"%s\": %m (ignoring)", zip_path.c_str());
         return "";
       }
 
diff --git a/linker/linker_utils.h b/linker/linker_utils.h
index 5073b10..3049e53 100644
--- a/linker/linker_utils.h
+++ b/linker/linker_utils.h
@@ -55,7 +55,5 @@
 
 std::string dirname(const char* path);
 
-off64_t page_start(off64_t offset);
-size_t page_offset(off64_t offset);
 bool safe_add(off64_t* out, off64_t a, size_t b);
 bool is_first_stage_init();
diff --git a/linker/linker_utils_test.cpp b/linker/linker_utils_test.cpp
index 44907da..ac98416 100644
--- a/linker/linker_utils_test.cpp
+++ b/linker/linker_utils_test.cpp
@@ -33,6 +33,7 @@
 #include <gtest/gtest.h>
 
 #include "linker_utils.h"
+#include "platform/bionic/page.h"
 
 TEST(linker_utils, format_string) {
   std::vector<std::pair<std::string, std::string>> params = {{ "LIB", "lib32"}, { "SDKVER", "42"}};
@@ -104,15 +105,35 @@
 }
 
 TEST(linker_utils, page_start) {
-  ASSERT_EQ(0x0001000, page_start(0x0001000));
-  ASSERT_EQ(0x3002000, page_start(0x300222f));
-  ASSERT_EQ(0x6001000, page_start(0x6001fff));
+  const size_t kPageSize = page_size();
+
+  if (kPageSize == 4096) {
+    ASSERT_EQ(0x0001000U, page_start(0x0001000));
+    ASSERT_EQ(0x3002000U, page_start(0x300222f));
+    ASSERT_EQ(0x6001000U, page_start(0x6001fff));
+  } else if (kPageSize == 16384) {
+    ASSERT_EQ(0x0004000U, page_start(0x0004000));
+    ASSERT_EQ(0x3008000U, page_start(0x300822f));
+    ASSERT_EQ(0x6004000U, page_start(0x6004fff));
+  } else {
+    FAIL() << "Page size not supported " << kPageSize;
+  }
 }
 
 TEST(linker_utils, page_offset) {
-  ASSERT_EQ(0x0U, page_offset(0x0001000));
-  ASSERT_EQ(0x22fU, page_offset(0x300222f));
-  ASSERT_EQ(0xfffU, page_offset(0x6001fff));
+  const size_t kPageSize = page_size();
+
+  if (kPageSize == 4096) {
+    ASSERT_EQ(0x0U, page_offset(0x0001000));
+    ASSERT_EQ(0x22fU, page_offset(0x30222f));
+    ASSERT_EQ(0xfffU, page_offset(0x6001fff));
+  } else if (kPageSize == 16384) {
+    ASSERT_EQ(0x0U, page_offset(0x0004000));
+    ASSERT_EQ(0x322fU, page_offset(0x30322f));
+    ASSERT_EQ(0x3fffU, page_offset(0x6003fff));
+  } else {
+    FAIL() << "Page size not supported " << kPageSize;
+  }
 }
 
 TEST(linker_utils, safe_add) {
diff --git a/linker/testdata/Android.bp b/linker/testdata/Android.bp
new file mode 100644
index 0000000..f998180
--- /dev/null
+++ b/linker/testdata/Android.bp
@@ -0,0 +1,38 @@
+// Copyright (C) 2024 The Android Open Source Project
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package {
+    default_applicable_licenses: ["Android-Apache-2.0"],
+}
+
+cc_library_shared {
+    name: "crt_pad_segment_enabled",
+    srcs: ["hello_world.c"],
+}
+
+cc_library_shared {
+    name: "crt_pad_segment_disabled",
+    srcs: [
+        "hello_world.c",
+        "crt_pad_segment_disabled.S",
+    ],
+    include_dirs: ["bionic/libc"], // bionic_asm_note.h
+    no_crt_pad_segment: true,
+}
+
+cc_library_shared {
+    name: "no_crt_pad_segment",
+    srcs: ["hello_world.c"],
+    no_crt_pad_segment: true,
+}
diff --git a/libm/fenv-access.h b/linker/testdata/crt_pad_segment_disabled.S
similarity index 74%
copy from libm/fenv-access.h
copy to linker/testdata/crt_pad_segment_disabled.S
index 7acb34d..cc2d266 100644
--- a/libm/fenv-access.h
+++ b/linker/testdata/crt_pad_segment_disabled.S
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2021 The Android Open Source Project
+ * Copyright (C) 2024 The Android Open Source Project
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -26,8 +26,18 @@
  * SUCH DAMAGE.
  */
 
-#pragma once
+#include <private/bionic_asm_note.h>
 
-#if defined(__x86_64__) || defined(__i386__)
-#pragma STDC FENV_ACCESS ON
-#endif
+  .section ".note.android.pad_segment", "a", %note
+  .balign 4
+  .long 1f - 0f                       // int32_t namesz
+  .long 3f - 2f                       // int32_t descsz
+  .long NT_ANDROID_TYPE_PAD_SEGMENT   // int32_t type
+0:
+  .asciz "Android"                    // char name[]
+1:
+  .balign 2
+2:
+  .long 0    // Disabled
+3:
+  .balign 2
diff --git a/libm/fenv-access.h b/linker/testdata/hello_world.c
similarity index 89%
copy from libm/fenv-access.h
copy to linker/testdata/hello_world.c
index 7acb34d..ad179f6 100644
--- a/libm/fenv-access.h
+++ b/linker/testdata/hello_world.c
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2021 The Android Open Source Project
+ * Copyright (C) 2024 The Android Open Source Project
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -26,8 +26,8 @@
  * SUCH DAMAGE.
  */
 
-#pragma once
+#include <stdio.h>
 
-#if defined(__x86_64__) || defined(__i386__)
-#pragma STDC FENV_ACCESS ON
-#endif
+void hello_world(void) {
+    printf("Hello world\n");
+}
diff --git a/tests/Android.bp b/tests/Android.bp
index 30f52ca..a97f5a8 100644
--- a/tests/Android.bp
+++ b/tests/Android.bp
@@ -15,6 +15,7 @@
 //
 
 package {
+    default_team: "trendy_team_native_tools_libraries",
     default_applicable_licenses: ["bionic_tests_license"],
 }
 
@@ -59,12 +60,12 @@
         // Needed to test pthread_internal_t layout.
         "-Wno-invalid-offsetof",
 
-        // For glibc.
-        "-D__STDC_LIMIT_MACROS",
+        // This warning does not provide any benefit to the tests.
+        "-Wno-reorder-init-list",
     ],
     header_libs: [
         "libcutils_headers",
-        "gwp_asan_headers"
+        "gwp_asan_headers",
     ],
     stl: "libc++",
 
@@ -360,15 +361,17 @@
 cc_test_library {
     name: "clang_diagnostic_tests",
     cflags: [
-        "-Xclang",
-        "-verify",
+        "-Xclang -verify",
     ],
     srcs: ["sys_ioctl_diag_test.cpp"],
 }
 
 cc_test_library {
     name: "libBionicStandardTests",
-    defaults: ["bionic_tests_defaults"],
+    defaults: [
+        "bionic_tests_defaults",
+        "large_system_property_node_defaults",
+    ],
     tidy_disabled_srcs: [
         "malloc_test.cpp", // timed out with clang-tidy, and too many warnings
     ],
@@ -386,7 +389,9 @@
         "bug_26110743_test.cpp",
         "byteswap_test.cpp",
         "complex_test.cpp",
-        "complex_force_long_double_test.cpp",
+        // Disabled while investigating
+        // b/378304366, b/375525252
+        // "cpu_target_features_test.cpp",
         "ctype_test.cpp",
         "dirent_test.cpp",
         "elf_test.cpp",
@@ -401,6 +406,7 @@
         "_FILE_OFFSET_BITS_test.cpp",
         "float_test.cpp",
         "fnmatch_test.cpp",
+        "fts_test.cpp",
         "ftw_test.cpp",
         "getauxval_test.cpp",
         "getcwd_test.cpp",
@@ -423,14 +429,15 @@
         "malloc_iterate_test.cpp",
         "malloc_test.cpp",
         "math_test.cpp",
-        "math_force_long_double_test.cpp",
         "membarrier_test.cpp",
+        "memtag_globals_test.cpp",
         "memtag_stack_test.cpp",
         "mntent_test.cpp",
         "mte_test.cpp",
         "netdb_test.cpp",
         "net_if_test.cpp",
         "netinet_ether_test.cpp",
+        "netinet_igmp_test.cpp",
         "netinet_in_test.cpp",
         "netinet_ip_icmp_test.cpp",
         "netinet_udp_test.cpp",
@@ -472,7 +479,10 @@
         "struct_layout_test.cpp",
         "sstream_test.cpp",
         "sys_auxv_test.cpp",
+        "sys_cachectl_test.cpp",
         "sys_epoll_test.cpp",
+        "sys_hwprobe_test.cpp",
+        "sys_io_test.cpp",
         "sys_mman_test.cpp",
         "sys_msg_test.cpp",
         "sys_param_test.cpp",
@@ -503,6 +513,7 @@
         "sys_vfs_test.cpp",
         "sys_wait_test.cpp",
         "sys_xattr_test.cpp",
+        "syslog_test.cpp",
         "system_properties_test.cpp",
         "system_properties_test2.cpp",
         "termios_test.cpp",
@@ -559,12 +570,6 @@
     },
 
     generated_headers: ["generated_android_ids"],
-
-    // Bug: http://b/218788252 IR verifier too strict for ifunc resolver that
-    // accept parameters.
-    lto: {
-        never: true,
-    },
 }
 
 cc_test_library {
@@ -576,21 +581,12 @@
     include_dirs: [
         "bionic/libc",
     ],
+    static_libs: [
+        "libbase",
+    ],
     shared: {
         enabled: false,
     },
-    cflags: [
-        "-fno-emulated-tls",
-    ],
-    // With fuzzer builds, compiler instrumentation generates a reference to the
-    // __sancov_lowest_stack variable, which (for now) is defined by the fuzzer
-    // library as an emutls symbol. The -fno-emulated-tls flag above configures
-    // the compiler to reference an ordinary ELF TLS __sancov_lowest_stack
-    // symbol instead, which isn't defined. Disable the fuzzer for this test
-    // until the platform is switched to ELF TLS.
-    sanitize: {
-        fuzzer: false,
-    },
 }
 
 cc_test_library {
@@ -609,18 +605,6 @@
     shared: {
         enabled: false,
     },
-    cflags: [
-        "-fno-emulated-tls",
-    ],
-    // With fuzzer builds, compiler instrumentation generates a reference to the
-    // __sancov_lowest_stack variable, which (for now) is defined by the fuzzer
-    // library as an emutls symbol. The -fno-emulated-tls flag above configures
-    // the compiler to reference an ordinary ELF TLS __sancov_lowest_stack
-    // symbol instead, which isn't defined. Disable the fuzzer for this test
-    // until the platform is switched to ELF TLS.
-    sanitize: {
-        fuzzer: false,
-    },
 }
 
 cc_test_library {
@@ -675,22 +659,6 @@
     },
 }
 
-// Ensures that FORTIFY checks aren't run when ASAN is on.
-cc_test {
-    name: "bionic-fortify-runtime-asan-test",
-    defaults: [
-        "bionic_clang_fortify_tests_w_flags",
-    ],
-    cflags: [
-        "-Werror",
-        "-D_FORTIFY_SOURCE=2",
-    ],
-    sanitize: {
-        address: true,
-    },
-    srcs: ["clang_fortify_asan.cpp"],
-}
-
 // Ensure we don't use FORTIFY'ed functions with the static analyzer/clang-tidy:
 // it can confuse these tools pretty easily. If this builds successfully, then
 // __clang_analyzer__ overrode FORTIFY. Otherwise, FORTIFY was incorrectly
@@ -749,11 +717,6 @@
     ],
     srcs: ["clang_fortify_tests.cpp"],
     tidy: false,
-    target: {
-        host: {
-            cflags: ["-D__clang__"],
-        },
-    },
 }
 
 cc_test_library {
@@ -786,6 +749,40 @@
     },
 }
 
+cc_defaults {
+    name: "bionic_fortify_c_tests_defaults",
+    defaults: [
+        "bionic_clang_fortify_tests_w_flags",
+        "bionic_tests_defaults",
+    ],
+    cflags: [
+        "-U_FORTIFY_SOURCE",
+        // -fbuiltin is required here to counteract -fno-builtin from
+        // `bionic_tests_defaults`. With `-fno-builtin`, Clang won't
+        // const-evaluate calls to `strlen`, which is tested for here.
+        "-fbuiltin",
+    ],
+    srcs: [
+        "clang_fortify_c_only_tests.c",
+    ],
+    tidy: false,
+    shared: {
+        enabled: false,
+    },
+}
+
+cc_test_library {
+    name: "libfortify1-c-tests-clang",
+    defaults: ["bionic_fortify_c_tests_defaults"],
+    cflags: ["-D_FORTIFY_SOURCE=1"],
+}
+
+cc_test_library {
+    name: "libfortify2-c-tests-clang",
+    defaults: ["bionic_fortify_c_tests_defaults"],
+    cflags: ["-D_FORTIFY_SOURCE=2"],
+}
+
 // -----------------------------------------------------------------------------
 // Library of all tests (excluding the dynamic linker tests).
 // -----------------------------------------------------------------------------
@@ -797,8 +794,10 @@
         "libBionicStandardTests",
         "libBionicElfTlsTests",
         "libBionicFramePointerTests",
+        "libfortify1-c-tests-clang",
         "libfortify1-tests-clang",
         "libfortify1-new-tests-clang",
+        "libfortify2-c-tests-clang",
         "libfortify2-tests-clang",
         "libfortify2-new-tests-clang",
     ],
@@ -819,13 +818,16 @@
         "dlfcn_test.cpp",
         "execinfo_test.cpp",
         "link_test.cpp",
+        "page_size_16kib_compat_test.cpp",
         "pthread_dlfcn_test.cpp",
     ],
     static_libs: [
         "libbase",
+        "libprocinfo",
     ],
     include_dirs: [
         "bionic/libc",
+        "bionic/tests/libs",
     ],
     shared: {
         enabled: false,
@@ -871,7 +873,10 @@
     data_bins: [
         "cfi_test_helper",
         "cfi_test_helper2",
+        "elftls_align_test_helper",
         "elftls_dlopen_ie_error_helper",
+        "elftls_dtv_resize_helper",
+        "elftls_skew_align_test_helper",
         "exec_linker_helper",
         "exec_linker_helper_lib",
         "heap_tagging_async_helper",
@@ -889,6 +894,11 @@
         "ld_preload_test_helper",
         "ld_preload_test_helper_lib1",
         "ld_preload_test_helper_lib2",
+        "memtag_globals_binary",
+        "memtag_globals_binary_static",
+        "memtag_globals_dso",
+        "mte_globals_relr_regression_test_b_314038442",
+        "mte_globals_relr_regression_test_b_314038442_mte",
         "ns_hidden_child_helper",
         "preinit_getauxval_test_helper",
         "preinit_syscall_test_helper",
@@ -970,10 +980,13 @@
         "libtest_dt_runpath_d",
         "libtest_dt_runpath_x",
         "libtest_dt_runpath_y",
+        "libtest_elf_max_page_size_4kib",
         "libtest_elftls_dynamic",
         "libtest_elftls_dynamic_filler_1",
         "libtest_elftls_dynamic_filler_2",
         "libtest_elftls_dynamic_filler_3",
+        "libtest_elftls_dynamic_filler_4",
+        "libtest_elftls_dynamic_filler_5",
         "libtest_elftls_shared_var",
         "libtest_elftls_shared_var_ie",
         "libtest_elftls_tprel",
@@ -1118,8 +1131,8 @@
     ],
 }
 
-cc_test {
-    name: "hwasan_test",
+cc_defaults {
+    name: "hwasan_test_defaults",
     enabled: false,
     // This does not use bionic_tests_defaults because it is not supported on
     // host.
@@ -1134,10 +1147,90 @@
     srcs: [
         "hwasan_test.cpp",
     ],
+    data_libs: [
+        "libtest_simple_hwasan",
+        "libtest_simple_hwasan_nohwasan",
+    ],
+    header_libs: ["bionic_libc_platform_headers"],
+    test_suites: ["device-tests"],
+}
+
+cc_test {
+    name: "hwasan_test",
+    defaults: ["hwasan_test_defaults"],
     shared_libs: [
         "libbase",
     ],
-    data_libs: ["libtest_simple_hwasan", "libtest_simple_hwasan_nohwasan"],
+}
+
+cc_test {
+    name: "hwasan_test_static",
+    defaults: ["hwasan_test_defaults"],
+    static_libs: [
+        "libbase",
+    ],
+    static_executable: true,
+    cflags: ["-DHWASAN_TEST_STATIC"],
+}
+
+cc_test {
+    name: "memtag_stack_dlopen_test",
+    enabled: false,
+    // This does not use bionic_tests_defaults because it is not supported on
+    // host.
+    arch: {
+        arm64: {
+            enabled: true,
+        },
+    },
+    sanitize: {
+        memtag_heap: true,
+        memtag_stack: false,
+    },
+    srcs: [
+        "memtag_stack_dlopen_test.cpp",
+    ],
+    shared_libs: [
+        "libbase",
+    ],
+    data_libs: [
+        "libtest_simple_memtag_stack",
+        "libtest_depends_on_simple_memtag_stack",
+    ],
+    data_bins: [
+        "testbinary_depends_on_simple_memtag_stack",
+        "testbinary_depends_on_depends_on_simple_memtag_stack",
+        "testbinary_is_stack_mte_after_dlopen",
+    ],
+    header_libs: ["bionic_libc_platform_headers"],
+    test_suites: ["device-tests"],
+}
+
+cc_test {
+    name: "memtag_stack_abi_test",
+    enabled: false,
+    // This does not use bionic_tests_defaults because it is not supported on
+    // host.
+    arch: {
+        arm64: {
+            enabled: true,
+        },
+    },
+    // We don't use `sanitize:` so we generate the appropriate ELF note, but
+    // still support non-MTE devices.
+    // TODO(fmayer): also add a test that enables stack MTE for MTE devices,
+    // which would test for more bugs.
+    ldflags: ["-fsanitize=memtag-stack"],
+    // Turn off all other sanitizers from SANITIZE_TARGET.
+    sanitize: {
+        never: true,
+    },
+    shared_libs: [
+        "libbase",
+    ],
+    srcs: [
+        "memtag_stack_abi_test.cpp",
+    ],
     header_libs: ["bionic_libc_platform_headers"],
     test_suites: ["device-tests"],
 }
@@ -1161,6 +1254,7 @@
 
     shared_libs: [
         "libbase",
+        "liblog",
     ],
 
     target: {
@@ -1190,9 +1284,9 @@
         "gtest_globals.cpp",
         "gtest_main.cpp",
 
-        // The Bionic allocator has its own C++ API. It isn't packaged into its
-        // own library, so it can only be tested when it's part of libc.a.
+        // Test internal parts of Bionic that aren't exposed via libc.so.
         "bionic_allocator_test.cpp",
+        "static_tls_layout_test.cpp",
     ],
     include_dirs: [
         "bionic/libc",
@@ -1222,12 +1316,19 @@
         never: true,
     },
     data_bins: [
+        "elftls_align_test_helper",
+        "elftls_skew_align_test_helper",
         "heap_tagging_async_helper",
         "heap_tagging_disabled_helper",
         "heap_tagging_static_async_helper",
         "heap_tagging_static_disabled_helper",
         "heap_tagging_static_sync_helper",
         "heap_tagging_sync_helper",
+        "memtag_globals_binary",
+        "memtag_globals_binary_static",
+        "memtag_globals_dso",
+        "mte_globals_relr_regression_test_b_314038442",
+        "mte_globals_relr_regression_test_b_314038442_mte",
         "stack_tagging_helper",
         "stack_tagging_static_helper",
     ],
@@ -1309,4 +1410,47 @@
     },
 }
 
-subdirs = ["*"]
+cc_defaults {
+    name: "bionic_compile_time_tests_defaults",
+    enabled: false,
+    target: {
+        linux_x86: {
+            enabled: true,
+        },
+        linux_x86_64: {
+            enabled: true,
+        },
+    },
+    tidy: false,
+    clang_verify: true,
+    cflags: [
+        "-Wall",
+        "-Wno-error",
+        "-fno-color-diagnostics",
+        "-ferror-limit=10000",
+        "-DCOMPILATION_TESTS=1",
+        "-Wformat-nonliteral",
+        "-U_FORTIFY_SOURCE",
+    ],
+    srcs: ["clang_fortify_tests.cpp"],
+}
+
+cc_library_static {
+    name: "bionic-compile-time-tests1-clang++",
+    defaults: [
+        "bionic_compile_time_tests_defaults",
+    ],
+    cppflags: [
+        "-D_FORTIFY_SOURCE=1",
+    ],
+}
+
+cc_library_static {
+    name: "bionic-compile-time-tests2-clang++",
+    defaults: [
+        "bionic_compile_time_tests_defaults",
+    ],
+    cppflags: [
+        "-D_FORTIFY_SOURCE=2",
+    ],
+}
diff --git a/tests/Android.mk b/tests/Android.mk
deleted file mode 100644
index 5ad4045..0000000
--- a/tests/Android.mk
+++ /dev/null
@@ -1,33 +0,0 @@
-#
-# Copyright (C) 2012 The Android Open Source Project
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-LOCAL_PATH := $(call my-dir)
-
-ifeq ($(HOST_OS)-$(HOST_ARCH),$(filter $(HOST_OS)-$(HOST_ARCH),linux-x86 linux-x86_64))
-
-# -----------------------------------------------------------------------------
-# Compile time tests.
-# -----------------------------------------------------------------------------
-
-FORTIFY_LEVEL := 1
-include $(LOCAL_PATH)/make_fortify_compile_test.mk
-
-FORTIFY_LEVEL := 2
-include $(LOCAL_PATH)/make_fortify_compile_test.mk
-
-endif # linux-x86
-
-include $(call first-makefiles-under,$(LOCAL_PATH))
diff --git a/tools/versioner/src/Preprocessor.h b/tests/DoNotOptimize.h
similarity index 63%
rename from tools/versioner/src/Preprocessor.h
rename to tests/DoNotOptimize.h
index 2a17534..711d339 100644
--- a/tools/versioner/src/Preprocessor.h
+++ b/tests/DoNotOptimize.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2016 The Android Open Source Project
+ * Copyright (C) 2012 The Android Open Source Project
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -16,9 +16,12 @@
 
 #pragma once
 
-#include <string>
-
-class HeaderDatabase;
-
-bool preprocessHeaders(const std::string& preprocessor_output_path, const std::string& source_dir,
-                       HeaderDatabase* database);
+// From <benchmark/benchmark.h>.
+template <class Tp>
+static inline void DoNotOptimize(Tp const& value) {
+  asm volatile("" : : "r,m"(value) : "memory");
+}
+template <class Tp>
+static inline void DoNotOptimize(Tp& value) {
+  asm volatile("" : "+r,m"(value) : : "memory");
+}
diff --git a/tests/NOTICE b/tests/NOTICE
index cc99d20..de95698 100644
--- a/tests/NOTICE
+++ b/tests/NOTICE
@@ -454,3 +454,31 @@
 
 -------------------------------------------------------------------
 
+Copyright (C) 2024 The Android Open Source Project
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+ * Redistributions of source code must retain the above copyright
+   notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright
+   notice, this list of conditions and the following disclaimer in
+   the documentation and/or other materials provided with the
+   distribution.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGE.
+
+-------------------------------------------------------------------
+
diff --git a/tests/__cxa_demangle_test.cpp b/tests/__cxa_demangle_test.cpp
index d400619..e13410c 100644
--- a/tests/__cxa_demangle_test.cpp
+++ b/tests/__cxa_demangle_test.cpp
@@ -28,11 +28,39 @@
 
 #include <cxxabi.h>
 #include <gtest/gtest.h>
+#include <string.h>
 
 TEST(__cxa_demangle, cxa_demangle_fuzz_152588929) {
 #if defined(__aarch64__)
+  // Test the C++ demangler on an invalid mangled string. libc++abi currently
+  // parses it like so:
+  //    (1 "\006") (I (L e "eeEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE" E) E)
+  // There are a few interesting things about this mangled input:
+  //  - The IA64 C++ ABI specifies that an FP literal's hex chars are lowercase.
+  //    The libc++abi demangler currently accepts uppercase A-F digits, which is
+  //    confusing because 'E' is supposed to mark the end of the <expr-primary>.
+  //  - libc++abi uses snprintf("%a") which puts an unspecified number of bits
+  //    in the digit before the decimal point.
+  //  - The identifier name is "\006", and the IA64 C++ ABI spec is explicit
+  //    about not specifying the encoding for characters outside of
+  //    [_A-Za-z0-9].
+  //  - The 'e' type is documented as "long double, __float80", and in practice
+  //    the length of the literal depends on the arch. For arm64, it is a
+  //    128-bit FP type encoded using 32 hex chars. The situation with x86-64
+  //    Android OTOH is messy because Clang uses 'g' for its 128-bit
+  //    long double.
   char* p = abi::__cxa_demangle("1\006ILeeeEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE", 0, 0, 0);
-  ASSERT_STREQ("\x6<-0x1.cecececececececececececececep+11983", p);
+  if (p && !strcmp(p, "\x6<-0x1.cecececececececececececececep+11983")) {
+    // Prior to llvm.org/D77924, libc++abi left off the "L>" suffix.
+  } else if (p && !strcmp(p, "\x6<-0x1.cecececececececececececececep+11983L>")) {
+    // After llvm.org/D77924, the "L>" suffix is present. libc++abi
+    // accepts A-F digits but decodes each using (digit - 'a' + 10), turning 'E'
+    // into -18.
+  } else {
+    // TODO: Remove the other accepted outputs, because libc++abi probably
+    // should reject this input.
+    ASSERT_EQ(nullptr, p) << p;
+  }
   free(p);
 #endif
 }
diff --git a/tests/android_get_device_api_level.cpp b/tests/android_get_device_api_level.cpp
index 9bd6b3a..2e51022 100644
--- a/tests/android_get_device_api_level.cpp
+++ b/tests/android_get_device_api_level.cpp
@@ -28,12 +28,12 @@
 
 #include <gtest/gtest.h>
 
-#if __BIONIC__
+#if __has_include(<android/api-level.h>)
 #include <android/api-level.h>
 #endif
 
 TEST(android_get_device_api_level, smoke) {
-#if __BIONIC__
+#if defined(__BIONIC__)
   // This will fail if you run the tests on an old device, but who does that?
   ASSERT_GE(android_get_device_api_level(), 29);
 #endif
diff --git a/tests/async_safe_test.cpp b/tests/async_safe_test.cpp
index dc4db07..ffb8651 100644
--- a/tests/async_safe_test.cpp
+++ b/tests/async_safe_test.cpp
@@ -45,6 +45,15 @@
   async_safe_format_buffer(buf, sizeof(buf), "aa%scc", "bb");
   EXPECT_STREQ("aabbcc", buf);
 
+  async_safe_format_buffer(buf, sizeof(buf), "a%bb", 1234);
+  EXPECT_STREQ("a10011010010b", buf);
+
+  async_safe_format_buffer(buf, sizeof(buf), "a%#bb", 1234);
+  EXPECT_STREQ("a0b10011010010b", buf);
+
+  async_safe_format_buffer(buf, sizeof(buf), "a%#Bb", 1234);
+  EXPECT_STREQ("a0B10011010010b", buf);
+
   async_safe_format_buffer(buf, sizeof(buf), "a%cc", 'b');
   EXPECT_STREQ("abc", buf);
 
@@ -70,15 +79,33 @@
   async_safe_format_buffer(buf, sizeof(buf), "a%mZ");
   EXPECT_STREQ("aInvalid argumentZ", buf);
 
+#if __ANDROID_API_LEVEL__ >= 35
+  errno = EINVAL;
+  async_safe_format_buffer(buf, sizeof(buf), "a%#mZ");
+  EXPECT_STREQ("aEINVALZ", buf);
+#endif
+
+#if __ANDROID_API_LEVEL__ >= 35
+  errno = -1;
+  async_safe_format_buffer(buf, sizeof(buf), "a%#mZ");
+  EXPECT_STREQ("a-1Z", buf);
+#endif
+
   async_safe_format_buffer(buf, sizeof(buf), "a%pb", reinterpret_cast<void*>(0xb0001234));
   EXPECT_STREQ("a0xb0001234b", buf);
 
   async_safe_format_buffer(buf, sizeof(buf), "a%xz", 0x12ab);
   EXPECT_STREQ("a12abz", buf);
 
+  async_safe_format_buffer(buf, sizeof(buf), "a%#xz", 0x12ab);
+  EXPECT_STREQ("a0x12abz", buf);
+
   async_safe_format_buffer(buf, sizeof(buf), "a%Xz", 0x12ab);
   EXPECT_STREQ("a12ABz", buf);
 
+  async_safe_format_buffer(buf, sizeof(buf), "a%#Xz", 0x12ab);
+  EXPECT_STREQ("a0X12ABz", buf);
+
   async_safe_format_buffer(buf, sizeof(buf), "a%08xz", 0x123456);
   EXPECT_STREQ("a00123456z", buf);
 
diff --git a/tests/bionic_allocator_test.cpp b/tests/bionic_allocator_test.cpp
index fdcf868..d543d26 100644
--- a/tests/bionic_allocator_test.cpp
+++ b/tests/bionic_allocator_test.cpp
@@ -238,23 +238,27 @@
 TEST(bionic_allocator, test_memalign_large) {
   BionicAllocator allocator;
   void* ptr;
+  size_t alignment;
 
-  // a large object with alignment < PAGE_SIZE
-  ptr = allocator.memalign(0x100, 0x2000);
+  // a large object with alignment < kPageSize
+  alignment = kPageSize >> 1;
+  ptr = allocator.memalign(alignment, 0x2000);
   ASSERT_TRUE(ptr != nullptr);
-  ASSERT_EQ(0U, reinterpret_cast<uintptr_t>(ptr) % 0x100);
+  ASSERT_EQ(0U, reinterpret_cast<uintptr_t>(ptr) % alignment);
   allocator.free(ptr);
 
-  // a large object with alignment == PAGE_SIZE
-  ptr = allocator.memalign(0x1000, 0x2000);
+  // a large object with alignment == kPageSize
+  alignment = kPageSize;
+  ptr = allocator.memalign(alignment, 0x2000);
   ASSERT_TRUE(ptr != nullptr);
-  ASSERT_EQ(0U, reinterpret_cast<uintptr_t>(ptr) % 0x1000);
+  ASSERT_EQ(0U, reinterpret_cast<uintptr_t>(ptr) % alignment);
   allocator.free(ptr);
 
-  // A large object with alignment > PAGE_SIZE is only guaranteed to have page
+  // A large object with alignment > kPageSize is only guaranteed to have page
   // alignment.
-  ptr = allocator.memalign(0x2000, 0x4000);
+  alignment = kPageSize << 1;
+  ptr = allocator.memalign(alignment, 0x4000);
   ASSERT_TRUE(ptr != nullptr);
-  ASSERT_EQ(0U, reinterpret_cast<uintptr_t>(ptr) % 0x1000);
+  ASSERT_EQ(0U, reinterpret_cast<uintptr_t>(ptr) % kPageSize);
   allocator.free(ptr);
 }
diff --git a/tests/cfi_test.cpp b/tests/cfi_test.cpp
index 1c45946..79a9e35 100644
--- a/tests/cfi_test.cpp
+++ b/tests/cfi_test.cpp
@@ -70,21 +70,8 @@
   struct sigaction64 previous_sigtrap_;
 };
 
-static bool KilledByCfi(int status) {
-  return WIFSIGNALED(status) &&
-         (WTERMSIG(status) == SIGTRAP || WTERMSIG(status) == SIGILL || WTERMSIG(status) == SIGSEGV);
-}
-
 static void f() {}
 
-static void test_cfi_slowpath_with_alloc() {
-  std::vector<void*> allocs;
-  for (size_t i = 0; i < 1000; i++) {
-    allocs.push_back(malloc(4096));
-    __cfi_slowpath(46, allocs.back());
-  }
-}
-
 TEST_F(cfi_test_DeathTest, basic) {
 #if defined(__BIONIC__)
   void* handle;
@@ -135,12 +122,6 @@
   EXPECT_EQ(get_global_address(), get_last_address());
   EXPECT_EQ(c, get_count());
 
-  // CFI check for a heap address.
-  // It's possible that this allocation could wind up in the same CFI granule as
-  // an unchecked library, which means the below might not crash. To force a
-  // crash keep allocating up to a max until there is a crash.
-  EXPECT_EXIT(test_cfi_slowpath_with_alloc(), KilledByCfi, "");
-
   // Check all the addresses.
   const size_t bss_size = 1024 * 1024;
   static_assert(bss_size >= kLibraryAlignment * 2, "test range not big enough");
@@ -162,10 +143,6 @@
 
   dlclose(handle);
   dlclose(handle2);
-
-  // CFI check for a function inside the unloaded DSO. This is always invalid and gets the process
-  // killed.
-  EXPECT_EXIT(__cfi_slowpath(45, reinterpret_cast<void*>(code_ptr)), KilledByCfi, "");
 #endif
 }
 
@@ -183,8 +160,7 @@
 // cfi_test_helper exports __cfi_check, which triggers CFI initialization at startup.
 TEST(cfi_test, early_init) {
 #if defined(__BIONIC__)
-  std::string helper = GetTestlibRoot() + "/cfi_test_helper";
-  chmod(helper.c_str(), 0755); // TODO: "x" lost in CTS, b/34945607
+  std::string helper = GetTestLibRoot() + "/cfi_test_helper";
   ExecTestHelper eth;
   eth.SetArgs({ helper.c_str(), nullptr });
   eth.Run([&]() { execve(helper.c_str(), eth.GetArgs(), eth.GetEnv()); }, 0, nullptr);
@@ -195,8 +171,7 @@
 // at startup.
 TEST(cfi_test, early_init2) {
 #if defined(__BIONIC__)
-  std::string helper = GetTestlibRoot() + "/cfi_test_helper2";
-  chmod(helper.c_str(), 0755); // TODO: "x" lost in CTS, b/34945607
+  std::string helper = GetTestLibRoot() + "/cfi_test_helper2";
   ExecTestHelper eth;
   eth.SetArgs({ helper.c_str(), nullptr });
   eth.Run([&]() { execve(helper.c_str(), eth.GetArgs(), eth.GetEnv()); }, 0, nullptr);
diff --git a/tests/clang_fortify_asan.cpp b/tests/clang_fortify_asan.cpp
deleted file mode 100644
index 51656eb..0000000
--- a/tests/clang_fortify_asan.cpp
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * Copyright (C) 2019 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/*
- * This test ensures that ensures that FORTIFY's run-time bits aren't enabled with ASAN on. Most
- * ways of getting FORTIFY to break turn into UB unless you get creative. Rather than remaking the
- * entire FORTIFY test-suite with this added constraint, we pick a function with well-defined
- * behavior when a FORTIFY check would fail (umask), and hope that the success of that is indicative
- * of the rest working.
- */
-
-#ifndef __clang__
-#error "Non-clang isn't supported"
-#endif
-
-#ifndef _FORTIFY_SOURCE
-#error "_FORTIFY_SOURCE must be defined"
-#endif
-
-#include <sys/cdefs.h>
-
-#if defined(__BIONIC__) && __has_feature(address_sanitizer)
-#include <sys/stat.h>
-#include <gtest/gtest.h>
-
-TEST(ClangFortifyASAN, NoRuntimeChecksAreEnabled) {
-  volatile mode_t unknown = 01000;
-  mode_t previous = umask(unknown);
-
-  // Not necessary, but polite.
-  umask(previous);
-}
-#endif
diff --git a/libc/bionic/strnlen.c b/tests/clang_fortify_c_only_tests.c
similarity index 79%
copy from libc/bionic/strnlen.c
copy to tests/clang_fortify_c_only_tests.c
index 2c6f60a..3bec848 100644
--- a/libc/bionic/strnlen.c
+++ b/tests/clang_fortify_c_only_tests.c
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2008 The Android Open Source Project
+ * Copyright (C) 2024 The Android Open Source Project
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -25,14 +25,14 @@
  * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  */
+
 #include <string.h>
 
-size_t  strnlen(const char*  str, size_t  maxlen)
-{
-    char*  p = memchr(str, 0, maxlen);
+// This is a test specifically of bionic's FORTIFY machinery. Other stdlibs need not apply.
+#ifdef __BIONIC__
 
-    if (p == NULL)
-        return maxlen;
-    else
-        return (p - str);
-}
+// Ensure that strlen can be evaluated at compile-time. Clang doesn't support
+// this in C++, but does in C.
+_Static_assert(strlen("foo") == 3, "");
+
+#endif  // __BIONIC__
diff --git a/tests/clang_fortify_tests.cpp b/tests/clang_fortify_tests.cpp
index 544af43..da7926d 100644
--- a/tests/clang_fortify_tests.cpp
+++ b/tests/clang_fortify_tests.cpp
@@ -14,10 +14,6 @@
  * limitations under the License.
  */
 
-#ifndef __clang__
-#error "Non-clang isn't supported"
-#endif
-
 //
 // Clang compile-time and run-time tests for Bionic's FORTIFY.
 //
@@ -93,6 +89,10 @@
 #include <unistd.h>
 #include <wchar.h>
 
+#include <array>
+
+#include "DoNotOptimize.h"
+
 #ifndef COMPILATION_TESTS
 #include <android-base/silent_death_test.h>
 #include <gtest/gtest.h>
@@ -137,6 +137,24 @@
 
 const static int kBogusFD = -1;
 
+FORTIFY_TEST(strlen) {
+  auto run_strlen_with_contents = [&](std::array<char, 3> contents) {
+    // A lot of cruft is necessary to make this test DTRT. LLVM and Clang love to fold/optimize
+    // strlen calls, and that's the opposite of what we want to happen.
+
+    // Loop to convince LLVM that `contents` can never be known (since `xor volatile_value` can flip
+    // any bit in each elem of `contents`).
+    volatile char always_zero = 0;
+    for (char& c : contents) {
+      c ^= always_zero;
+    }
+    DoNotOptimize(strlen(&contents.front()));
+  };
+
+  EXPECT_NO_DEATH(run_strlen_with_contents({'f', 'o', '\0'}));
+  EXPECT_FORTIFY_DEATH(run_strlen_with_contents({'f', 'o', 'o'}));
+}
+
 FORTIFY_TEST(string) {
   char small_buffer[8] = {};
 
@@ -164,9 +182,7 @@
     const char large_string[] = "Hello!!!";
     static_assert(sizeof(large_string) > sizeof(small_buffer), "");
 
-#if __clang_major__ > 13
-    // expected-error@+3{{will always overflow}}
-#endif
+    // expected-error@+2{{will always overflow}}
     // expected-error@+1{{string bigger than buffer}}
     EXPECT_FORTIFY_DEATH(strcpy(small_buffer, large_string));
     // expected-error@+1{{string bigger than buffer}}
@@ -204,9 +220,7 @@
     static_assert(sizeof(small_string) > sizeof(split.tiny_buffer), "");
 
 #if _FORTIFY_SOURCE > 1
-#if __clang_major__ > 13
-    // expected-error@+4{{will always overflow}}
-#endif
+    // expected-error@+3{{will always overflow}}
     // expected-error@+2{{string bigger than buffer}}
 #endif
     EXPECT_FORTIFY_DEATH_STRUCT(strcpy(split.tiny_buffer, small_string));
diff --git a/tests/complex_force_long_double_test.cpp b/tests/complex_force_long_double_test.cpp
deleted file mode 100644
index 2ea7bd4..0000000
--- a/tests/complex_force_long_double_test.cpp
+++ /dev/null
@@ -1,2 +0,0 @@
-#define __BIONIC_LP32_USE_LONG_DOUBLE
-#include "complex_test.cpp"
diff --git a/tests/complex_test.cpp b/tests/complex_test.cpp
index f015b2c..ed0109a 100644
--- a/tests/complex_test.cpp
+++ b/tests/complex_test.cpp
@@ -14,20 +14,14 @@
  * limitations under the License.
  */
 
-#if defined(__BIONIC_LP32_USE_LONG_DOUBLE)
-#define COMPLEX_TEST complex_h_force_long_double
-#else
-#define COMPLEX_TEST complex_h
-#endif
-
 // This file is compiled against both glibc and bionic, and our complex.h
 // depends on bionic-specific macros, so hack around that.
 #include <sys/cdefs.h>
 #if !defined(__INTRODUCED_IN)
 #define __INTRODUCED_IN(x)
-#define __INTRODUCED_IN_32(x)
-#define __INTRODUCED_IN_64(x)
-#define __RENAME_LDBL(a,b,c)
+#endif
+#if !defined(__BIONIC_AVAILABILITY_GUARD)
+#define __BIONIC_AVAILABILITY_GUARD(x) 1
 #endif
 
 // libc++ actively gets in the way of including <complex.h> from C++, so we
@@ -41,7 +35,11 @@
 #include <math.h> // For M_PI_2/M_PI_2l.
 
 // Prettify gtest Complex printing.
+// Macro 'complex' defined in complex.h conflicts with iostream.
+#pragma push_macro("complex")
+#undef complex
 #include <iostream>
+#pragma pop_macro("complex")
 namespace testing {
 namespace internal {
 inline void PrintTo(const double _Complex& c, std::ostream* os) {
@@ -62,259 +60,259 @@
 #include <gtest/gtest.h>
 #pragma pop_macro("I")
 
-TEST(COMPLEX_TEST, cabs) {
+TEST(complex_h, cabs) {
   ASSERT_EQ(0.0, cabs(0));
 }
 
-TEST(COMPLEX_TEST, cabsf) {
+TEST(complex_h, cabsf) {
   ASSERT_EQ(0.0, cabsf(0));
 }
 
-TEST(COMPLEX_TEST, cabsl) {
+TEST(complex_h, cabsl) {
   ASSERT_EQ(0.0, cabsl(0));
 }
 
-TEST(COMPLEX_TEST, cacos) {
+TEST(complex_h, cacos) {
   ASSERT_EQ(M_PI_2, cacos(0.0));
 }
 
-TEST(COMPLEX_TEST, cacosf) {
+TEST(complex_h, cacosf) {
   ASSERT_EQ(static_cast<float>(M_PI_2), cacosf(0.0));
 }
 
-TEST(COMPLEX_TEST, cacosl) {
+TEST(complex_h, cacosl) {
   ASSERT_EQ(M_PI_2l, cacosl(0.0));
 }
 
-TEST(COMPLEX_TEST, cacosh) {
+TEST(complex_h, cacosh) {
   ASSERT_EQ(0.0, cacosh(1.0));
 }
 
-TEST(COMPLEX_TEST, cacoshl) {
+TEST(complex_h, cacoshl) {
   ASSERT_EQ(0.0, cacoshl(1.0));
 }
 
-TEST(COMPLEX_TEST, cacoshf) {
+TEST(complex_h, cacoshf) {
   ASSERT_EQ(0.0, cacoshf(1.0));
 }
 
-TEST(COMPLEX_TEST, carg) {
+TEST(complex_h, carg) {
   ASSERT_EQ(0.0, carg(0));
 }
 
-TEST(COMPLEX_TEST, cargf) {
+TEST(complex_h, cargf) {
   ASSERT_EQ(0.0, cargf(0));
 }
 
-TEST(COMPLEX_TEST, cargl) {
+TEST(complex_h, cargl) {
   ASSERT_EQ(0.0, cargl(0));
 }
 
-TEST(COMPLEX_TEST, casin) {
+TEST(complex_h, casin) {
   ASSERT_EQ(0.0, casin(0));
 }
 
-TEST(COMPLEX_TEST, casinf) {
+TEST(complex_h, casinf) {
   ASSERT_EQ(0.0, casinf(0));
 }
 
-TEST(COMPLEX_TEST, casinl) {
+TEST(complex_h, casinl) {
   ASSERT_EQ(0.0, casinl(0));
 }
 
-TEST(COMPLEX_TEST, casinh) {
+TEST(complex_h, casinh) {
   ASSERT_EQ(0.0, casinh(0));
 }
 
-TEST(COMPLEX_TEST, casinhf) {
+TEST(complex_h, casinhf) {
   ASSERT_EQ(0.0, casinhf(0));
 }
 
-TEST(COMPLEX_TEST, casinhl) {
+TEST(complex_h, casinhl) {
   ASSERT_EQ(0.0, casinhl(0));
 }
 
-TEST(COMPLEX_TEST, catan) {
+TEST(complex_h, catan) {
   ASSERT_EQ(0.0, catan(0));
 }
 
-TEST(COMPLEX_TEST, catanf) {
+TEST(complex_h, catanf) {
   ASSERT_EQ(0.0, catanf(0));
 }
 
-TEST(COMPLEX_TEST, catanl) {
+TEST(complex_h, catanl) {
   ASSERT_EQ(0.0, catanl(0));
 }
 
-TEST(COMPLEX_TEST, catanh) {
+TEST(complex_h, catanh) {
   ASSERT_EQ(0.0, catanh(0));
 }
 
-TEST(COMPLEX_TEST, catanhf) {
+TEST(complex_h, catanhf) {
   ASSERT_EQ(0.0, catanhf(0));
 }
 
-TEST(COMPLEX_TEST, catanhl) {
+TEST(complex_h, catanhl) {
   ASSERT_EQ(0.0, catanhl(0));
 }
 
-TEST(COMPLEX_TEST, ccos) {
+TEST(complex_h, ccos) {
   ASSERT_EQ(1.0, ccos(0));
 }
 
-TEST(COMPLEX_TEST, ccosf) {
+TEST(complex_h, ccosf) {
   ASSERT_EQ(1.0, ccosf(0));
 }
 
-TEST(COMPLEX_TEST, ccosl) {
+TEST(complex_h, ccosl) {
   ASSERT_EQ(1.0, ccosl(0));
 }
 
-TEST(COMPLEX_TEST, ccosh) {
+TEST(complex_h, ccosh) {
   ASSERT_EQ(1.0, ccosh(0));
 }
 
-TEST(COMPLEX_TEST, ccoshf) {
+TEST(complex_h, ccoshf) {
   ASSERT_EQ(1.0, ccoshf(0));
 }
 
-TEST(COMPLEX_TEST, ccoshl) {
+TEST(complex_h, ccoshl) {
   ASSERT_EQ(1.0, ccoshl(0));
 }
 
-TEST(COMPLEX_TEST, cexp) {
+TEST(complex_h, cexp) {
   ASSERT_EQ(1.0, cexp(0));
 }
 
-TEST(COMPLEX_TEST, cexpf) {
+TEST(complex_h, cexpf) {
   ASSERT_EQ(1.0, cexpf(0));
 }
 
-TEST(COMPLEX_TEST, cexpl) {
+TEST(complex_h, cexpl) {
   ASSERT_EQ(1.0, cexpl(0));
 }
 
-TEST(COMPLEX_TEST, cimag) {
+TEST(complex_h, cimag) {
   ASSERT_EQ(0.0, cimag(0));
 }
 
-TEST(COMPLEX_TEST, cimagf) {
+TEST(complex_h, cimagf) {
   ASSERT_EQ(0.0f, cimagf(0));
 }
 
-TEST(COMPLEX_TEST, cimagl) {
+TEST(complex_h, cimagl) {
   ASSERT_EQ(0.0, cimagl(0));
 }
 
-TEST(COMPLEX_TEST, clog) {
+TEST(complex_h, clog) {
   ASSERT_EQ(0.0, clog(1.0));
 }
 
-TEST(COMPLEX_TEST, clogf) {
+TEST(complex_h, clogf) {
   ASSERT_EQ(0.0f, clogf(1.0f));
 }
 
-TEST(COMPLEX_TEST, clogl) {
+TEST(complex_h, clogl) {
   ASSERT_EQ(0.0L, clogl(1.0L));
 }
 
-TEST(COMPLEX_TEST, conj) {
+TEST(complex_h, conj) {
   ASSERT_EQ(0.0, conj(0));
 }
 
-TEST(COMPLEX_TEST, conjf) {
+TEST(complex_h, conjf) {
   ASSERT_EQ(0.0f, conjf(0));
 }
 
-TEST(COMPLEX_TEST, conjl) {
+TEST(complex_h, conjl) {
   ASSERT_EQ(0.0, conjl(0));
 }
 
-TEST(COMPLEX_TEST, cpow) {
+TEST(complex_h, cpow) {
   ASSERT_EQ(8.0, cpow(2.0, 3.0));
 }
 
-TEST(COMPLEX_TEST, cpowf) {
+TEST(complex_h, cpowf) {
   ASSERT_EQ(8.0f, cpowf(2.0f, 3.0f));
 }
 
-TEST(COMPLEX_TEST, cpowl) {
+TEST(complex_h, cpowl) {
   ASSERT_EQ(8.0L, cpowl(2.0L, 3.0L));
 }
 
-TEST(COMPLEX_TEST, cproj) {
+TEST(complex_h, cproj) {
   ASSERT_EQ(0.0, cproj(0));
 }
 
-TEST(COMPLEX_TEST, cprojf) {
+TEST(complex_h, cprojf) {
   ASSERT_EQ(0.0f, cprojf(0));
 }
 
-TEST(COMPLEX_TEST, cprojl) {
+TEST(complex_h, cprojl) {
   ASSERT_EQ(0.0, cprojl(0));
 }
 
-TEST(COMPLEX_TEST, creal) {
+TEST(complex_h, creal) {
   ASSERT_EQ(2.0, creal(2.0 + 3.0I));
 }
 
-TEST(COMPLEX_TEST, crealf) {
+TEST(complex_h, crealf) {
   ASSERT_EQ(2.0f, crealf(2.0f + 3.0fI));
 }
 
-TEST(COMPLEX_TEST, creall) {
+TEST(complex_h, creall) {
   ASSERT_EQ(2.0, creall(2.0L + 3.0LI));
 }
 
-TEST(COMPLEX_TEST, csin) {
+TEST(complex_h, csin) {
   ASSERT_EQ(0.0, csin(0));
 }
 
-TEST(COMPLEX_TEST, csinf) {
+TEST(complex_h, csinf) {
   ASSERT_EQ(0.0, csinf(0));
 }
 
-TEST(COMPLEX_TEST, csinl) {
+TEST(complex_h, csinl) {
   ASSERT_EQ(0.0, csinl(0));
 }
 
-TEST(COMPLEX_TEST, csinh) {
+TEST(complex_h, csinh) {
   ASSERT_EQ(0.0, csinh(0));
 }
 
-TEST(COMPLEX_TEST, csinhf) {
+TEST(complex_h, csinhf) {
   ASSERT_EQ(0.0, csinhf(0));
 }
 
-TEST(COMPLEX_TEST, csinhl) {
+TEST(complex_h, csinhl) {
   ASSERT_EQ(0.0, csinhl(0));
 }
 
-TEST(COMPLEX_TEST, csqrt) {
+TEST(complex_h, csqrt) {
   ASSERT_EQ(0.0, csqrt(0));
 }
 
-TEST(COMPLEX_TEST, csqrtf) {
+TEST(complex_h, csqrtf) {
   ASSERT_EQ(0.0f, csqrtf(0));
 }
 
-TEST(COMPLEX_TEST, csqrtl) {
+TEST(complex_h, csqrtl) {
   ASSERT_EQ(0.0, csqrtl(0));
 }
 
-TEST(COMPLEX_TEST, ctan) {
+TEST(complex_h, ctan) {
   ASSERT_EQ(0.0, ctan(0));
 }
 
-TEST(COMPLEX_TEST, ctanf) {
+TEST(complex_h, ctanf) {
   ASSERT_EQ(0.0, ctanf(0));
 }
 
-TEST(COMPLEX_TEST, ctanl) {
+TEST(complex_h, ctanl) {
   ASSERT_EQ(0.0, ctanl(0));
 }
 
-TEST(COMPLEX_TEST, ctanh) {
+TEST(complex_h, ctanh) {
   ASSERT_EQ(0.0, ctanh(0));
 
   double complex z;
@@ -335,7 +333,7 @@
   ASSERT_TRUE(isnan(cimag(z)));
 }
 
-TEST(COMPLEX_TEST, ctanhf) {
+TEST(complex_h, ctanhf) {
   ASSERT_EQ(0.0f, ctanhf(0.0f));
 
   float complex z;
@@ -356,7 +354,7 @@
   ASSERT_TRUE(isnan(cimagf(z)));
 }
 
-TEST(COMPLEX_TEST, ctanhl) {
+TEST(complex_h, ctanhl) {
   ASSERT_EQ(0.0L, ctanhl(0.0L));
 
   long double complex z;
diff --git a/libm/fenv-access.h b/tests/cpu_target_features_test.cpp
similarity index 60%
copy from libm/fenv-access.h
copy to tests/cpu_target_features_test.cpp
index 7acb34d..d773772 100644
--- a/libm/fenv-access.h
+++ b/tests/cpu_target_features_test.cpp
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2021 The Android Open Source Project
+ * Copyright (C) 2024 The Android Open Source Project
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -26,8 +26,31 @@
  * SUCH DAMAGE.
  */
 
-#pragma once
+#include <gtest/gtest.h>
+#include <stdlib.h>
 
+#include "utils.h"
+
+TEST(cpu_target_features, has_expected_x86_compiler_values) {
 #if defined(__x86_64__) || defined(__i386__)
-#pragma STDC FENV_ACCESS ON
+  ExecTestHelper eth;
+  char* const argv[] = {nullptr};
+  const auto invocation = [&] { execvp("cpu-target-features", argv); };
+  eth.Run(invocation, 0, "(^|\n)__AES__=1($|\n)");
+  eth.Run(invocation, 0, "(^|\n)__CRC32__=1($|\n)");
+#else
+  GTEST_SKIP() << "Not targeting an x86 architecture.";
 #endif
+}
+
+TEST(cpu_target_features, has_expected_aarch64_compiler_values) {
+#if defined(__aarch64__)
+  ExecTestHelper eth;
+  char* const argv[] = {nullptr};
+  const auto invocation = [&] { execvp("cpu-target-features", argv); };
+  eth.Run(invocation, 0, "(^|\n)__ARM_FEATURE_AES=1($|\n)");
+  eth.Run(invocation, 0, "(^|\n)__ARM_FEATURE_CRC32=1($|\n)");
+#else
+  GTEST_SKIP() << "Not targeting an aarch64 architecture.";
+#endif
+}
diff --git a/tests/ctype_test.cpp b/tests/ctype_test.cpp
index 826d39a..18fbfc0 100644
--- a/tests/ctype_test.cpp
+++ b/tests/ctype_test.cpp
@@ -293,40 +293,57 @@
 }
 
 TEST(ctype, toascii) {
-  EXPECT_EQ('a', toascii('a'));
-  EXPECT_EQ('a', toascii(0x80 | 'a'));
+  // POSIX explicitly says that toascii() returns (c & 0x7f),
+  // so there's no EOF-preserving behavior here and we start from 0.
+  for (int i = 0; i < kMax; ++i) {
+    if (i <= 0x7f) {
+      EXPECT_EQ(i, toascii(i));
+    } else {
+      EXPECT_EQ(i & 0x7f, toascii(i));
+    }
+  }
 }
 
 TEST(ctype, tolower) {
   EXPECT_EQ('!', tolower('!'));
   EXPECT_EQ('a', tolower('a'));
   EXPECT_EQ('a', tolower('A'));
+  EXPECT_EQ('z', tolower('z'));
+  EXPECT_EQ('z', tolower('Z'));
 }
 
 TEST(ctype, tolower_l) {
   EXPECT_EQ('!', tolower_l('!', LC_GLOBAL_LOCALE));
   EXPECT_EQ('a', tolower_l('a', LC_GLOBAL_LOCALE));
   EXPECT_EQ('a', tolower_l('A', LC_GLOBAL_LOCALE));
+  EXPECT_EQ('z', tolower_l('z', LC_GLOBAL_LOCALE));
+  EXPECT_EQ('z', tolower_l('Z', LC_GLOBAL_LOCALE));
 }
 
 TEST(ctype, _tolower) {
   // _tolower may mangle characters for which isupper is false.
   EXPECT_EQ('a', _tolower('A'));
+  EXPECT_EQ('z', _tolower('Z'));
 }
 
 TEST(ctype, toupper) {
   EXPECT_EQ('!', toupper('!'));
   EXPECT_EQ('A', toupper('a'));
   EXPECT_EQ('A', toupper('A'));
+  EXPECT_EQ('Z', toupper('z'));
+  EXPECT_EQ('Z', toupper('Z'));
 }
 
 TEST(ctype, toupper_l) {
   EXPECT_EQ('!', toupper_l('!', LC_GLOBAL_LOCALE));
   EXPECT_EQ('A', toupper_l('a', LC_GLOBAL_LOCALE));
   EXPECT_EQ('A', toupper_l('A', LC_GLOBAL_LOCALE));
+  EXPECT_EQ('Z', toupper_l('z', LC_GLOBAL_LOCALE));
+  EXPECT_EQ('Z', toupper_l('Z', LC_GLOBAL_LOCALE));
 }
 
 TEST(ctype, _toupper) {
   // _toupper may mangle characters for which islower is false.
   EXPECT_EQ('A', _toupper('a'));
+  EXPECT_EQ('Z', _toupper('z'));
 }
diff --git a/tests/dirent_test.cpp b/tests/dirent_test.cpp
index 3ea9cbd..cde2d11 100644
--- a/tests/dirent_test.cpp
+++ b/tests/dirent_test.cpp
@@ -29,13 +29,15 @@
 #include <set>
 #include <string>
 
+#include "utils.h"
+
 static void CheckProcSelf(std::set<std::string>& names) {
   // We have a good idea of what should be in /proc/self.
-  ASSERT_TRUE(names.find(".") != names.end());
-  ASSERT_TRUE(names.find("..") != names.end());
-  ASSERT_TRUE(names.find("cmdline") != names.end());
-  ASSERT_TRUE(names.find("fd") != names.end());
-  ASSERT_TRUE(names.find("stat") != names.end());
+  ASSERT_TRUE(names.contains("."));
+  ASSERT_TRUE(names.contains(".."));
+  ASSERT_TRUE(names.contains("cmdline"));
+  ASSERT_TRUE(names.contains("fd"));
+  ASSERT_TRUE(names.contains("stat"));
 }
 
 template <typename DirEntT>
@@ -124,7 +126,6 @@
 
 TEST(dirent, scandir_filter) {
   dirent** entries;
-  errno = 0;
   ASSERT_EQ(1, scandir("/proc", &entries, is_version_filter, nullptr));
   ASSERT_STREQ("version", entries[0]->d_name);
   free(entries);
@@ -134,14 +135,14 @@
   dirent** entries;
   errno = 0;
   ASSERT_EQ(-1, scandir("/does-not-exist", &entries, nullptr, nullptr));
-  ASSERT_EQ(ENOENT, errno);
+  ASSERT_ERRNO(ENOENT);
 }
 
 TEST(dirent, scandir64_ENOENT) {
   dirent64** entries;
   errno = 0;
   ASSERT_EQ(-1, scandir64("/does-not-exist", &entries, nullptr, nullptr));
-  ASSERT_EQ(ENOENT, errno);
+  ASSERT_ERRNO(ENOENT);
 }
 
 TEST(dirent, scandirat_ENOENT) {
@@ -151,7 +152,7 @@
   dirent** entries;
   errno = 0;
   ASSERT_EQ(-1, scandirat(root_fd, "does-not-exist", &entries, nullptr, nullptr));
-  ASSERT_EQ(ENOENT, errno);
+  ASSERT_ERRNO(ENOENT);
   close(root_fd);
 #else
   GTEST_SKIP() << "musl doesn't have scandirat or scandirat64";
@@ -165,7 +166,7 @@
   dirent64** entries;
   errno = 0;
   ASSERT_EQ(-1, scandirat64(root_fd, "does-not-exist", &entries, nullptr, nullptr));
-  ASSERT_EQ(ENOENT, errno);
+  ASSERT_ERRNO(ENOENT);
   close(root_fd);
 #else
   GTEST_SKIP() << "musl doesn't have scandirat or scandirat64";
@@ -174,12 +175,12 @@
 
 TEST(dirent, fdopendir_invalid) {
   ASSERT_TRUE(fdopendir(-1) == nullptr);
-  ASSERT_EQ(EBADF, errno);
+  ASSERT_ERRNO(EBADF);
 
   int fd = open("/dev/null", O_RDONLY);
   ASSERT_NE(fd, -1);
   ASSERT_TRUE(fdopendir(fd) == nullptr);
-  ASSERT_EQ(ENOTDIR, errno);
+  ASSERT_ERRNO(ENOTDIR);
   close(fd);
 }
 
@@ -193,15 +194,17 @@
 
   // fdopendir(3) took ownership, so closedir(3) closed our fd.
   ASSERT_EQ(close(fd), -1);
-  ASSERT_EQ(EBADF, errno);
+  ASSERT_ERRNO(EBADF);
 }
 
 TEST(dirent, opendir_invalid) {
+  errno = 0;
   ASSERT_TRUE(opendir("/does/not/exist") == nullptr);
-  ASSERT_EQ(ENOENT, errno);
+  ASSERT_ERRNO(ENOENT);
 
+  errno = 0;
   ASSERT_TRUE(opendir("/dev/null") == nullptr);
-  ASSERT_EQ(ENOTDIR, errno);
+  ASSERT_ERRNO(ENOTDIR);
 }
 
 TEST(dirent, opendir) {
@@ -215,7 +218,7 @@
 TEST(dirent, closedir_invalid) {
   DIR* d = nullptr;
   ASSERT_EQ(closedir(d), -1);
-  ASSERT_EQ(EINVAL, errno);
+  ASSERT_ERRNO(EINVAL);
 }
 
 TEST(dirent, closedir) {
@@ -235,7 +238,7 @@
   }
   // Reading to the end of the directory is not an error.
   // readdir(3) returns NULL, but leaves errno as 0.
-  ASSERT_EQ(0, errno);
+  ASSERT_ERRNO(0);
   ASSERT_EQ(closedir(d), 0);
 
   CheckProcSelf(name_set);
@@ -252,7 +255,7 @@
   }
   // Reading to the end of the directory is not an error.
   // readdir64(3) returns NULL, but leaves errno as 0.
-  ASSERT_EQ(0, errno);
+  ASSERT_ERRNO(0);
   ASSERT_EQ(closedir(d), 0);
 
   CheckProcSelf(name_set);
@@ -270,7 +273,7 @@
   }
   // Reading to the end of the directory is not an error.
   // readdir_r(3) returns NULL, but leaves errno as 0.
-  ASSERT_EQ(0, errno);
+  ASSERT_ERRNO(0);
   ASSERT_EQ(closedir(d), 0);
 
   CheckProcSelf(name_set);
@@ -288,7 +291,7 @@
   }
   // Reading to the end of the directory is not an error.
   // readdir64_r(3) returns NULL, but leaves errno as 0.
-  ASSERT_EQ(0, errno);
+  ASSERT_ERRNO(0);
   ASSERT_EQ(closedir(d), 0);
 
   CheckProcSelf(name_set);
@@ -365,7 +368,7 @@
   ASSERT_EQ(end_offset, telldir(d));
   errno = 0;
   ASSERT_EQ(nullptr, readdir(d));
-  ASSERT_EQ(0, errno);
+  ASSERT_ERRNO(0);
 
   ASSERT_EQ(0, closedir(d));
 }
diff --git a/tests/dl_test.cpp b/tests/dl_test.cpp
index 2f3e905..e986af2 100644
--- a/tests/dl_test.cpp
+++ b/tests/dl_test.cpp
@@ -118,7 +118,7 @@
 TEST(dl, exec_linker_load_file) {
 #if defined(__BIONIC__)
   const char* path_to_linker = PathToLinker();
-  std::string helper = GetTestlibRoot() + "/exec_linker_helper";
+  std::string helper = GetTestLibRoot() + "/exec_linker_helper";
   std::string expected_output =
       "ctor: argc=1 argv[0]=" + helper + "\n" +
       "main: argc=1 argv[0]=" + helper + "\n" +
@@ -134,7 +134,7 @@
 TEST(dl, exec_linker_load_from_zip) {
 #if defined(__BIONIC__)
   const char* path_to_linker = PathToLinker();
-  std::string helper = GetTestlibRoot() +
+  std::string helper = GetTestLibRoot() +
       "/libdlext_test_zip/libdlext_test_zip_zipaligned.zip!/libdir/exec_linker_helper";
   std::string expected_output =
       "ctor: argc=1 argv[0]=" + helper + "\n" +
@@ -161,8 +161,7 @@
 TEST(dl, preinit_system_calls) {
 #if defined(__BIONIC__)
   SKIP_WITH_HWASAN << "hwasan not initialized in preinit_array, b/124007027";
-  std::string helper = GetTestlibRoot() + "/preinit_syscall_test_helper";
-  chmod(helper.c_str(), 0755); // TODO: "x" lost in CTS, b/34945607
+  std::string helper = GetTestLibRoot() + "/preinit_syscall_test_helper";
   ExecTestHelper eth;
   eth.SetArgs({ helper.c_str(), nullptr });
   eth.Run([&]() { execve(helper.c_str(), eth.GetArgs(), eth.GetEnv()); }, 0, nullptr);
@@ -172,8 +171,7 @@
 TEST(dl, preinit_getauxval) {
 #if defined(__BIONIC__)
   SKIP_WITH_HWASAN << "hwasan not initialized in preinit_array, b/124007027";
-  std::string helper = GetTestlibRoot() + "/preinit_getauxval_test_helper";
-  chmod(helper.c_str(), 0755); // TODO: "x" lost in CTS, b/34945607
+  std::string helper = GetTestLibRoot() + "/preinit_getauxval_test_helper";
   ExecTestHelper eth;
   eth.SetArgs({ helper.c_str(), nullptr });
   eth.Run([&]() { execve(helper.c_str(), eth.GetArgs(), eth.GetEnv()); }, 0, nullptr);
@@ -186,8 +184,7 @@
 
 TEST(dl, exec_without_ld_preload) {
 #if defined(__BIONIC__)
-  std::string helper = GetTestlibRoot() + "/ld_preload_test_helper";
-  chmod(helper.c_str(), 0755);
+  std::string helper = GetTestLibRoot() + "/ld_preload_test_helper";
   ExecTestHelper eth;
   eth.SetArgs({ helper.c_str(), nullptr });
   eth.Run([&]() { execve(helper.c_str(), eth.GetArgs(), eth.GetEnv()); }, 0, "12345");
@@ -196,9 +193,8 @@
 
 TEST(dl, exec_with_ld_preload) {
 #if defined(__BIONIC__)
-  std::string helper = GetTestlibRoot() + "/ld_preload_test_helper";
-  std::string env = std::string("LD_PRELOAD=") + GetTestlibRoot() + "/ld_preload_test_helper_lib2.so";
-  chmod(helper.c_str(), 0755);
+  std::string helper = GetTestLibRoot() + "/ld_preload_test_helper";
+  std::string env = std::string("LD_PRELOAD=") + GetTestLibRoot() + "/ld_preload_test_helper_lib2.so";
   ExecTestHelper eth;
   eth.SetArgs({ helper.c_str(), nullptr });
   eth.SetEnv({ env.c_str(), nullptr });
@@ -222,11 +218,10 @@
 // The two libs are in ns2/ subdir.
 TEST(dl, exec_without_ld_config_file) {
 #if defined(__BIONIC__)
-  std::string error_message = "CANNOT LINK EXECUTABLE \"" + GetTestlibRoot() +
+  std::string error_message = "CANNOT LINK EXECUTABLE \"" + GetTestLibRoot() +
                               "/ld_config_test_helper\": library \"ld_config_test_helper_lib1.so\" "
                               "not found: needed by main executable\n";
-  std::string helper = GetTestlibRoot() + "/ld_config_test_helper";
-  chmod(helper.c_str(), 0755);
+  std::string helper = GetTestLibRoot() + "/ld_config_test_helper";
   ExecTestHelper eth;
   eth.SetArgs({ helper.c_str(), nullptr });
   eth.Run([&]() { execve(helper.c_str(), eth.GetArgs(), eth.GetEnv()); }, EXIT_FAILURE, error_message.c_str());
@@ -240,15 +235,15 @@
   android_get_LD_LIBRARY_PATH(default_search_paths, sizeof(default_search_paths));
 
   std::ofstream fout(config_file, std::ios::out);
-  fout << "dir.test = " << GetTestlibRoot() << "/" << std::endl
+  fout << "dir.test = " << GetTestLibRoot() << "/" << std::endl
        << "[test]" << std::endl
        << "additional.namespaces = ns2" << std::endl
-       << "namespace.default.search.paths = " << GetTestlibRoot() << std::endl
+       << "namespace.default.search.paths = " << GetTestLibRoot() << std::endl
        << "namespace.default.links = ns2" << std::endl
        << "namespace.default.link.ns2.shared_libs = "
           "libc.so:libm.so:libdl.so:ld_config_test_helper_lib1.so"
        << std::endl
-       << "namespace.ns2.search.paths = " << default_search_paths << ":" << GetTestlibRoot()
+       << "namespace.ns2.search.paths = " << default_search_paths << ":" << GetTestLibRoot()
        << "/ns2" << std::endl;
   fout.close();
 }
@@ -279,11 +274,10 @@
   if (is_user_build()) {
     GTEST_SKIP() << "LD_CONFIG_FILE is not supported on user build";
   }
-  std::string helper = GetTestlibRoot() + "/ld_config_test_helper";
+  std::string helper = GetTestLibRoot() + "/ld_config_test_helper";
   TemporaryFile config_file;
   create_ld_config_file(config_file.path);
   std::string env = std::string("LD_CONFIG_FILE=") + config_file.path;
-  chmod(helper.c_str(), 0755);
   ExecTestHelper eth;
   eth.SetArgs({ helper.c_str(), nullptr });
   eth.SetEnv({ env.c_str(), nullptr });
@@ -315,12 +309,11 @@
   if (is_user_build()) {
     GTEST_SKIP() << "LD_CONFIG_FILE is not supported on user build";
   }
-  std::string helper = GetTestlibRoot() + "/ld_config_test_helper";
+  std::string helper = GetTestLibRoot() + "/ld_config_test_helper";
   TemporaryFile config_file;
   create_ld_config_file(config_file.path);
   std::string env = std::string("LD_CONFIG_FILE=") + config_file.path;
-  std::string env2 = std::string("LD_PRELOAD=") + GetTestlibRoot() + "/ld_config_test_helper_lib3.so";
-  chmod(helper.c_str(), 0755);
+  std::string env2 = std::string("LD_PRELOAD=") + GetTestLibRoot() + "/ld_config_test_helper_lib3.so";
   ExecTestHelper eth;
   eth.SetArgs({ helper.c_str(), nullptr });
   eth.SetEnv({ env.c_str(), env2.c_str(), nullptr });
@@ -353,14 +346,13 @@
   }
 
   std::string error_message =
-      std::string("CANNOT LINK EXECUTABLE ") + "\"" + GetTestlibRoot() +
+      std::string("CANNOT LINK EXECUTABLE ") + "\"" + GetTestLibRoot() +
       "/ld_config_test_helper\": " +
       "library \"ld_config_test_helper_lib1.so\" not found: needed by main executable\n";
-  std::string helper = GetTestlibRoot() + "/ld_config_test_helper";
+  std::string helper = GetTestLibRoot() + "/ld_config_test_helper";
   TemporaryFile config_file;
   create_ld_config_file(config_file.path);
   std::string env = std::string("LD_CONFIG_FILE=") + config_file.path;
-  chmod(helper.c_str(), 0755);
   ExecTestHelper eth;
   eth.SetArgs({ helper.c_str(), nullptr });
   eth.SetEnv({ env.c_str(), nullptr });
@@ -371,7 +363,7 @@
 static void RelocationsTest(const char* lib, const char* expectation) {
 #if defined(__BIONIC__)
   // Does readelf think the .so file looks right?
-  const std::string path = GetTestlibRoot() + "/" + lib;
+  const std::string path = GetTestLibRoot() + "/" + lib;
   ExecTestHelper eth;
   eth.SetArgs({ "readelf", "-SW", path.c_str(), nullptr });
   eth.Run([&]() { execvpe("readelf", eth.GetArgs(), eth.GetEnv()); }, 0, nullptr);
diff --git a/tests/dlext_test.cpp b/tests/dlext_test.cpp
index ea28822..8b26cb0 100644
--- a/tests/dlext_test.cpp
+++ b/tests/dlext_test.cpp
@@ -21,6 +21,7 @@
 #include <errno.h>
 #include <fcntl.h>
 #include <inttypes.h>
+#include <link.h>
 #include <stdio.h>
 #include <string.h>
 #include <unistd.h>
@@ -31,6 +32,7 @@
 #include <android-base/test_utils.h>
 
 #include <sys/mman.h>
+#include <sys/stat.h>
 #include <sys/types.h>
 #include <sys/vfs.h>
 #include <sys/wait.h>
@@ -39,11 +41,13 @@
 #include <procinfo/process_map.h>
 #include <ziparchive/zip_archive.h>
 
+#include "bionic/mte.h"
+#include "bionic/page.h"
 #include "core_shared_libs.h"
-#include "gtest_globals.h"
-#include "utils.h"
 #include "dlext_private.h"
 #include "dlfcn_symlink_support.h"
+#include "gtest_globals.h"
+#include "utils.h"
 
 #define ASSERT_DL_NOTNULL(ptr) \
     ASSERT_TRUE((ptr) != nullptr) << "dlerror: " << dlerror()
@@ -85,6 +89,7 @@
   }
 
   void* handle_;
+  const size_t kPageSize = getpagesize();
 };
 
 TEST_F(DlExtTest, ExtInfoNull) {
@@ -106,7 +111,7 @@
 }
 
 TEST_F(DlExtTest, ExtInfoUseFd) {
-  const std::string lib_path = GetTestlibRoot() + "/libdlext_test_fd/libdlext_test_fd.so";
+  const std::string lib_path = GetTestLibRoot() + "/libdlext_test_fd/libdlext_test_fd.so";
 
   android_dlextinfo extinfo;
   extinfo.flags = ANDROID_DLEXT_USE_LIBRARY_FD;
@@ -124,7 +129,7 @@
 }
 
 TEST_F(DlExtTest, ExtInfoUseFdWithOffset) {
-  const std::string lib_path = GetTestlibRoot() + "/libdlext_test_zip/libdlext_test_zip_zipaligned.zip";
+  const std::string lib_path = GetTestLibRoot() + "/libdlext_test_zip/libdlext_test_zip_zipaligned.zip";
 
   android_dlextinfo extinfo;
   extinfo.flags = ANDROID_DLEXT_USE_LIBRARY_FD | ANDROID_DLEXT_USE_LIBRARY_FD_OFFSET;
@@ -147,7 +152,7 @@
 }
 
 TEST_F(DlExtTest, ExtInfoUseFdWithInvalidOffset) {
-  const std::string lib_path = GetTestlibRoot() + "/libdlext_test_zip/libdlext_test_zip_zipaligned.zip";
+  const std::string lib_path = GetTestLibRoot() + "/libdlext_test_zip/libdlext_test_zip_zipaligned.zip";
 
   android_dlextinfo extinfo;
   extinfo.flags = ANDROID_DLEXT_USE_LIBRARY_FD | ANDROID_DLEXT_USE_LIBRARY_FD_OFFSET;
@@ -159,12 +164,12 @@
   ASSERT_STREQ("dlopen failed: file offset for the library \"libname_placeholder\" is not page-aligned: 17", dlerror());
 
   // Test an address above 2^44, for http://b/18178121 .
-  extinfo.library_fd_offset = (5LL<<48) + PAGE_SIZE;
+  extinfo.library_fd_offset = (5LL << 48) + kPageSize;
   handle_ = android_dlopen_ext("libname_placeholder", RTLD_NOW, &extinfo);
   ASSERT_TRUE(handle_ == nullptr);
   ASSERT_SUBSTR("dlopen failed: file offset for the library \"libname_placeholder\" >= file size", dlerror());
 
-  extinfo.library_fd_offset = 0LL - PAGE_SIZE;
+  extinfo.library_fd_offset = 0LL - kPageSize;
   handle_ = android_dlopen_ext("libname_placeholder", RTLD_NOW, &extinfo);
   ASSERT_TRUE(handle_ == nullptr);
   ASSERT_SUBSTR("dlopen failed: file offset for the library \"libname_placeholder\" is negative", dlerror());
@@ -257,7 +262,7 @@
 
 TEST(dlfcn, dlopen_from_zip_absolute_path) {
   const std::string lib_zip_path = "/libdlext_test_zip/libdlext_test_zip_zipaligned.zip";
-  const std::string lib_path = GetTestlibRoot() + lib_zip_path;
+  const std::string lib_path = GetTestLibRoot() + lib_zip_path;
 
   void* handle = dlopen((lib_path + "!/libdir/libatest_simple_zip.so").c_str(), RTLD_NOW);
   ASSERT_TRUE(handle != nullptr) << dlerror();
@@ -271,7 +276,7 @@
 
 TEST(dlfcn, dlopen_from_zip_with_dt_runpath) {
   const std::string lib_zip_path = "/libdlext_test_runpath_zip/libdlext_test_runpath_zip_zipaligned.zip";
-  const std::string lib_path = GetTestlibRoot() + lib_zip_path;
+  const std::string lib_path = GetTestLibRoot() + lib_zip_path;
 
   void* handle = dlopen((lib_path + "!/libdir/libtest_dt_runpath_d_zip.so").c_str(), RTLD_NOW);
 
@@ -290,7 +295,7 @@
 
 TEST(dlfcn, dlopen_from_zip_ld_library_path) {
   const std::string lib_zip_path = "/libdlext_test_zip/libdlext_test_zip_zipaligned.zip";
-  const std::string lib_path = GetTestlibRoot() + lib_zip_path + "!/libdir";
+  const std::string lib_path = GetTestLibRoot() + lib_zip_path + "!/libdir";
 
   typedef void (*fn_t)(const char*);
   fn_t android_update_LD_LIBRARY_PATH =
@@ -340,17 +345,17 @@
   dlclose(handle_);
   handle_ = nullptr;
 
-  void* new_start = mmap(start, PAGE_SIZE, PROT_NONE, MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
+  void* new_start = mmap(start, kPageSize, PROT_NONE, MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
   ASSERT_NE(start, new_start) << "dlclose unmapped reserved space";
 }
 
 TEST_F(DlExtTest, ReservedTooSmall) {
-  void* start = mmap(nullptr, PAGE_SIZE, PROT_NONE, MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
+  void* start = mmap(nullptr, kPageSize, PROT_NONE, MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
   ASSERT_TRUE(start != MAP_FAILED);
   android_dlextinfo extinfo;
   extinfo.flags = ANDROID_DLEXT_RESERVED_ADDRESS;
   extinfo.reserved_addr = start;
-  extinfo.reserved_size = PAGE_SIZE;
+  extinfo.reserved_size = kPageSize;
   handle_ = android_dlopen_ext(kLibName, RTLD_NOW, &extinfo);
   EXPECT_EQ(nullptr, handle_);
 }
@@ -389,12 +394,12 @@
 }
 
 TEST_F(DlExtTest, ReservedRecursiveTooSmall) {
-  void* start = mmap(nullptr, PAGE_SIZE, PROT_NONE, MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
+  void* start = mmap(nullptr, kPageSize, PROT_NONE, MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
   ASSERT_TRUE(start != MAP_FAILED);
   android_dlextinfo extinfo;
   extinfo.flags = ANDROID_DLEXT_RESERVED_ADDRESS | ANDROID_DLEXT_RESERVED_ADDRESS_RECURSIVE;
   extinfo.reserved_addr = start;
-  extinfo.reserved_size = PAGE_SIZE;
+  extinfo.reserved_size = kPageSize;
   handle_ = android_dlopen_ext(kLibNameRecursive, RTLD_NOW, &extinfo);
   EXPECT_EQ(nullptr, handle_);
 }
@@ -417,19 +422,18 @@
 }
 
 TEST_F(DlExtTest, ReservedHintTooSmall) {
-  void* start = mmap(nullptr, PAGE_SIZE, PROT_NONE, MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
+  void* start = mmap(nullptr, kPageSize, PROT_NONE, MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
   ASSERT_TRUE(start != MAP_FAILED);
   android_dlextinfo extinfo;
   extinfo.flags = ANDROID_DLEXT_RESERVED_ADDRESS_HINT;
   extinfo.reserved_addr = start;
-  extinfo.reserved_size = PAGE_SIZE;
+  extinfo.reserved_size = kPageSize;
   handle_ = android_dlopen_ext(kLibName, RTLD_NOW, &extinfo);
   ASSERT_DL_NOTNULL(handle_);
   fn f = reinterpret_cast<fn>(dlsym(handle_, "getRandomNumber"));
   ASSERT_DL_NOTNULL(f);
   EXPECT_TRUE(reinterpret_cast<void*>(f) < start ||
-              (reinterpret_cast<void*>(f) >=
-               reinterpret_cast<char*>(start) + PAGE_SIZE));
+              (reinterpret_cast<void*>(f) >= reinterpret_cast<char*>(start) + kPageSize));
   EXPECT_EQ(4, f());
 }
 
@@ -742,7 +746,7 @@
                " \"(anonymous)\"->\"(default)\": the list of shared libraries is empty.",
                dlerror());
 
-  const std::string lib_public_path = GetTestlibRoot() + "/public_namespace_libs/" + g_public_lib;
+  const std::string lib_public_path = GetTestLibRoot() + "/public_namespace_libs/" + g_public_lib;
   void* handle_public = dlopen(lib_public_path.c_str(), RTLD_NOW);
   ASSERT_TRUE(handle_public != nullptr) << dlerror();
 
@@ -762,7 +766,7 @@
   android_namespace_t* ns1 =
           android_create_namespace("private",
                                    nullptr,
-                                   (GetTestlibRoot() + "/private_namespace_libs").c_str(),
+                                   (GetTestLibRoot() + "/private_namespace_libs").c_str(),
                                    ANDROID_NAMESPACE_TYPE_REGULAR,
                                    nullptr,
                                    nullptr);
@@ -772,7 +776,7 @@
   android_namespace_t* ns2 =
           android_create_namespace("private_isolated",
                                    nullptr,
-                                   (GetTestlibRoot() + "/private_namespace_libs").c_str(),
+                                   (GetTestLibRoot() + "/private_namespace_libs").c_str(),
                                    ANDROID_NAMESPACE_TYPE_ISOLATED,
                                    nullptr,
                                    nullptr);
@@ -916,10 +920,10 @@
 }
 
 TEST(dlext, dlopen_ext_use_o_tmpfile_fd) {
-  const std::string lib_path = GetTestlibRoot() + "/libtest_simple.so";
+  const std::string lib_path = GetTestLibRoot() + "/libtest_simple.so";
 
   int tmpfd = TEMP_FAILURE_RETRY(
-        open(GetTestlibRoot().c_str(), O_TMPFILE | O_CLOEXEC | O_RDWR | O_EXCL, 0));
+        open(GetTestLibRoot().c_str(), O_TMPFILE | O_CLOEXEC | O_RDWR | O_EXCL, 0));
 
   // Ignore kernels without O_TMPFILE flag support
   if (tmpfd == -1 && (errno == EISDIR || errno == EINVAL || errno == EOPNOTSUPP)) {
@@ -931,7 +935,7 @@
   android_namespace_t* ns =
           android_create_namespace("testing-o_tmpfile",
                                    nullptr,
-                                   GetTestlibRoot().c_str(),
+                                   GetTestLibRoot().c_str(),
                                    ANDROID_NAMESPACE_TYPE_ISOLATED,
                                    nullptr,
                                    nullptr);
@@ -960,14 +964,11 @@
 }
 
 TEST(dlext, dlopen_ext_use_memfd) {
-  const std::string lib_path = GetTestlibRoot() + "/libtest_simple.so";
+  const std::string lib_path = GetTestLibRoot() + "/libtest_simple.so";
 
   // create memfd
   int memfd = memfd_create("foobar", MFD_CLOEXEC);
-  if (memfd == -1 && errno == ENOSYS) {
-    return;
-  }
-
+  if (memfd == -1 && errno == ENOSYS) GTEST_SKIP() << "no memfd_create() in this kernel";
   ASSERT_TRUE(memfd != -1) << strerror(errno);
 
   // Check st.f_type is TMPFS_MAGIC for memfd
@@ -978,7 +979,7 @@
   android_namespace_t* ns =
           android_create_namespace("testing-memfd",
                                    nullptr,
-                                   GetTestlibRoot().c_str(),
+                                   GetTestLibRoot().c_str(),
                                    ANDROID_NAMESPACE_TYPE_ISOLATED,
                                    nullptr,
                                    nullptr);
@@ -1011,8 +1012,8 @@
   static const char* root_lib = "libnstest_root.so";
   ASSERT_TRUE(android_init_anonymous_namespace(g_core_shared_libs.c_str(), nullptr));
 
-  const std::string ns_search_path = GetTestlibRoot() + "/public_namespace_libs:" +
-                                     GetTestlibRoot() + "/private_namespace_libs";
+  const std::string ns_search_path = GetTestLibRoot() + "/public_namespace_libs:" +
+                                     GetTestLibRoot() + "/private_namespace_libs";
 
   android_namespace_t* ns =
           android_create_namespace("one",
@@ -1049,8 +1050,8 @@
   static const char* root_lib = "libnstest_root.so";
   ASSERT_TRUE(android_init_anonymous_namespace(g_core_shared_libs.c_str(), nullptr));
 
-  const std::string public_ns_search_path =  GetTestlibRoot() + "/public_namespace_libs";
-  const std::string private_ns_search_path = GetTestlibRoot() + "/private_namespace_libs";
+  const std::string public_ns_search_path =  GetTestLibRoot() + "/public_namespace_libs";
+  const std::string private_ns_search_path = GetTestLibRoot() + "/private_namespace_libs";
 
   android_namespace_t* ns_public =
           android_create_namespace("public",
@@ -1100,8 +1101,8 @@
   static const char* root_lib = "libnstest_root.so";
   ASSERT_TRUE(android_init_anonymous_namespace(g_core_shared_libs.c_str(), nullptr));
 
-  const std::string public_ns_search_path =  GetTestlibRoot() + "/public_namespace_libs";
-  const std::string private_ns_search_path = GetTestlibRoot() + "/private_namespace_libs";
+  const std::string public_ns_search_path =  GetTestLibRoot() + "/public_namespace_libs";
+  const std::string private_ns_search_path = GetTestLibRoot() + "/private_namespace_libs";
 
   android_namespace_t* ns_public =
           android_create_namespace("public",
@@ -1149,8 +1150,8 @@
 TEST(dlext, ns_unload_between_namespaces_missing_symbol_direct) {
   ASSERT_TRUE(android_init_anonymous_namespace(g_core_shared_libs.c_str(), nullptr));
 
-  const std::string public_ns_search_path =  GetTestlibRoot() + "/public_namespace_libs";
-  const std::string private_ns_search_path = GetTestlibRoot() + "/private_namespace_libs";
+  const std::string public_ns_search_path =  GetTestLibRoot() + "/public_namespace_libs";
+  const std::string private_ns_search_path = GetTestLibRoot() + "/private_namespace_libs";
 
   android_namespace_t* ns_public =
           android_create_namespace("public",
@@ -1189,8 +1190,8 @@
 TEST(dlext, ns_unload_between_namespaces_missing_symbol_indirect) {
   ASSERT_TRUE(android_init_anonymous_namespace(g_core_shared_libs.c_str(), nullptr));
 
-  const std::string public_ns_search_path =  GetTestlibRoot() + "/public_namespace_libs";
-  const std::string private_ns_search_path = GetTestlibRoot() + "/private_namespace_libs";
+  const std::string public_ns_search_path =  GetTestLibRoot() + "/public_namespace_libs";
+  const std::string private_ns_search_path = GetTestLibRoot() + "/private_namespace_libs";
 
   android_namespace_t* ns_public =
           android_create_namespace("public",
@@ -1230,7 +1231,7 @@
 TEST(dlext, ns_exempt_list_enabled) {
   ASSERT_TRUE(android_init_anonymous_namespace(g_core_shared_libs.c_str(), nullptr));
 
-  const std::string ns_search_path = GetTestlibRoot() + "/private_namespace_libs";
+  const std::string ns_search_path = GetTestLibRoot() + "/private_namespace_libs";
 
   android_namespace_t* ns =
           android_create_namespace("namespace",
@@ -1268,7 +1269,7 @@
 TEST(dlext, ns_exempt_list_disabled_by_default) {
   ASSERT_TRUE(android_init_anonymous_namespace(g_core_shared_libs.c_str(), nullptr));
 
-  const std::string ns_search_path = GetTestlibRoot() + "/private_namespace_libs";
+  const std::string ns_search_path = GetTestLibRoot() + "/private_namespace_libs";
 
   android_namespace_t* ns =
           android_create_namespace("namespace",
@@ -1295,7 +1296,7 @@
   ASSERT_TRUE(android_init_anonymous_namespace(g_core_shared_libs.c_str(), nullptr));
   std::string shared_libs = g_core_shared_libs + ":libthatdoesnotexist.so";
 
-  const std::string ns_search_path =  GetTestlibRoot() + "/public_namespace_libs";
+  const std::string ns_search_path =  GetTestLibRoot() + "/public_namespace_libs";
 
   android_namespace_t* ns1 =
           android_create_namespace("ns1",
@@ -1333,7 +1334,7 @@
   static const char* root_lib = "libnstest_root_not_isolated.so";
   std::string shared_libs = g_core_shared_libs + ":" + g_public_lib;
 
-  const std::string lib_public_path = GetTestlibRoot() + "/public_namespace_libs/" + g_public_lib;
+  const std::string lib_public_path = GetTestLibRoot() + "/public_namespace_libs/" + g_public_lib;
   void* handle_public = dlopen(lib_public_path.c_str(), RTLD_NOW);
   ASSERT_TRUE(handle_public != nullptr) << dlerror();
 
@@ -1344,7 +1345,7 @@
   android_namespace_t* ns_not_isolated =
           android_create_namespace("private",
                                    nullptr,
-                                   (GetTestlibRoot() + "/private_namespace_libs").c_str(),
+                                   (GetTestLibRoot() + "/private_namespace_libs").c_str(),
                                    ANDROID_NAMESPACE_TYPE_REGULAR,
                                    nullptr,
                                    nullptr);
@@ -1354,7 +1355,7 @@
   android_namespace_t* ns_isolated =
           android_create_namespace("private_isolated1",
                                    nullptr,
-                                   (GetTestlibRoot() + "/private_namespace_libs").c_str(),
+                                   (GetTestLibRoot() + "/private_namespace_libs").c_str(),
                                    ANDROID_NAMESPACE_TYPE_ISOLATED,
                                    nullptr,
                                    nullptr);
@@ -1363,10 +1364,10 @@
 
   android_namespace_t* ns_isolated2 =
           android_create_namespace("private_isolated2",
-                                   (GetTestlibRoot() + "/private_namespace_libs").c_str(),
+                                   (GetTestLibRoot() + "/private_namespace_libs").c_str(),
                                    nullptr,
                                    ANDROID_NAMESPACE_TYPE_ISOLATED,
-                                   GetTestlibRoot().c_str(),
+                                   GetTestLibRoot().c_str(),
                                    nullptr);
   ASSERT_TRUE(ns_isolated2 != nullptr) << dlerror();
   ASSERT_TRUE(android_link_namespaces(ns_isolated2, nullptr, shared_libs.c_str())) << dlerror();
@@ -1375,7 +1376,7 @@
   ASSERT_STREQ("dlopen failed: library \"libnstest_root_not_isolated.so\" not found", dlerror());
 
   std::string lib_private_external_path =
-      GetTestlibRoot() + "/private_namespace_libs_external/libnstest_private_external.so";
+      GetTestLibRoot() + "/private_namespace_libs_external/libnstest_private_external.so";
 
   // Load lib_private_external_path to default namespace
   // (it should remain invisible for the isolated namespaces after this)
@@ -1407,7 +1408,7 @@
 
   extinfo.library_namespace = ns_isolated2;
 
-  // this should work because isolation_path for private_isolated2 includes GetTestlibRoot()
+  // this should work because isolation_path for private_isolated2 includes GetTestLibRoot()
   handle2 = android_dlopen_ext(root_lib, RTLD_NOW, &extinfo);
   ASSERT_TRUE(handle2 != nullptr) << dlerror();
   dlclose(handle2);
@@ -1466,7 +1467,7 @@
   extinfo.flags = ANDROID_DLEXT_USE_NAMESPACE;
   extinfo.library_namespace = ns_parent;
 
-  const std::string lib_public_path = GetTestlibRoot() + "/public_namespace_libs/" + g_public_lib;
+  const std::string lib_public_path = GetTestLibRoot() + "/public_namespace_libs/" + g_public_lib;
   void* handle_public = android_dlopen_ext(lib_public_path.c_str(), RTLD_NOW, &extinfo);
   ASSERT_TRUE(handle_public != nullptr) << dlerror();
 
@@ -1477,7 +1478,7 @@
   // preload this library to the parent namespace to check if it
   // is shared later on.
   void* handle_dlopened =
-          android_dlopen_ext((GetTestlibRoot() + "/private_namespace_libs/libnstest_dlopened.so").c_str(), RTLD_NOW, &extinfo);
+          android_dlopen_ext((GetTestLibRoot() + "/private_namespace_libs/libnstest_dlopened.so").c_str(), RTLD_NOW, &extinfo);
   ASSERT_TRUE(handle_dlopened != nullptr) << dlerror();
 
   // create two child namespaces of 'ns_parent'. One with regular, the other
@@ -1485,7 +1486,7 @@
   android_namespace_t* ns_not_isolated =
           android_create_namespace("private",
                                    nullptr,
-                                   (GetTestlibRoot() + "/private_namespace_libs").c_str(),
+                                   (GetTestLibRoot() + "/private_namespace_libs").c_str(),
                                    ANDROID_NAMESPACE_TYPE_REGULAR,
                                    nullptr,
                                    ns_parent);
@@ -1496,7 +1497,7 @@
   android_namespace_t* ns_isolated_shared =
           android_create_namespace("private_isolated_shared",
                                    nullptr,
-                                   (GetTestlibRoot() + "/private_namespace_libs").c_str(),
+                                   (GetTestLibRoot() + "/private_namespace_libs").c_str(),
                                    ANDROID_NAMESPACE_TYPE_ISOLATED | ANDROID_NAMESPACE_TYPE_SHARED,
                                    nullptr,
                                    ns_parent);
@@ -1508,7 +1509,7 @@
   ASSERT_STREQ("dlopen failed: library \"libnstest_root_not_isolated.so\" not found", dlerror());
 
   std::string lib_private_external_path =
-      GetTestlibRoot() + "/private_namespace_libs_external/libnstest_private_external.so";
+      GetTestLibRoot() + "/private_namespace_libs_external/libnstest_private_external.so";
 
   // Load lib_private_external_path to the parent namespace
   // (it should remain invisible for the isolated namespaces after this)
@@ -1594,9 +1595,9 @@
   android_namespace_t* ns_isolated =
           android_create_namespace("private_isolated",
                                    nullptr,
-                                   (GetTestlibRoot() + "/private_namespace_libs").c_str(),
+                                   (GetTestLibRoot() + "/private_namespace_libs").c_str(),
                                    ANDROID_NAMESPACE_TYPE_ISOLATED,
-                                   (GetTestlibRoot() + "/public_namespace_libs").c_str(),
+                                   (GetTestLibRoot() + "/public_namespace_libs").c_str(),
                                    nullptr);
   ASSERT_TRUE(ns_isolated != nullptr) << dlerror();
   ASSERT_TRUE(android_link_namespaces(ns_isolated, nullptr, g_core_shared_libs.c_str())) << dlerror();
@@ -1630,7 +1631,7 @@
   // it has inherited permitted_when_isolated_path
   {
     void* handle = android_dlopen_ext(
-            (GetTestlibRoot() + "/public_namespace_libs/libnstest_public.so").c_str(),
+            (GetTestLibRoot() + "/public_namespace_libs/libnstest_public.so").c_str(),
             RTLD_NOW,
             &extinfo);
 
@@ -1645,7 +1646,7 @@
   // 3. Check that it is still isolated.
   {
     void* handle = android_dlopen_ext(
-            (GetTestlibRoot() + "/libtest_empty.so").c_str(),
+            (GetTestLibRoot() + "/libtest_empty.so").c_str(),
             RTLD_NOW,
             &extinfo);
 
@@ -1661,13 +1662,13 @@
   // preload this library to the default namespace to check if it
   // is shared later on.
   void* handle_dlopened =
-          dlopen((GetTestlibRoot() + "/private_namespace_libs/libnstest_dlopened.so").c_str(), RTLD_NOW);
+          dlopen((GetTestLibRoot() + "/private_namespace_libs/libnstest_dlopened.so").c_str(), RTLD_NOW);
   ASSERT_TRUE(handle_dlopened != nullptr) << dlerror();
 
   android_namespace_t* ns_isolated_shared =
           android_create_namespace("private_isolated_shared",
                                    nullptr,
-                                   (GetTestlibRoot() + "/private_namespace_libs").c_str(),
+                                   (GetTestLibRoot() + "/private_namespace_libs").c_str(),
                                    ANDROID_NAMESPACE_TYPE_ISOLATED | ANDROID_NAMESPACE_TYPE_SHARED,
                                    nullptr,
                                    nullptr);
@@ -1690,7 +1691,7 @@
   ASSERT_TRUE(handle == nullptr)
       << "Error: libnstest_dlopened.so is still accessible in shared namespace";
 
-  handle = android_dlopen_ext((GetTestlibRoot() + "/private_namespace_libs/libnstest_dlopened.so").c_str(),
+  handle = android_dlopen_ext((GetTestLibRoot() + "/private_namespace_libs/libnstest_dlopened.so").c_str(),
                               RTLD_NOW | RTLD_NOLOAD, &extinfo);
   ASSERT_TRUE(handle == nullptr)
       << "Error: libnstest_dlopened.so is still accessible in shared namespace";
@@ -1699,14 +1700,14 @@
   ASSERT_TRUE(handle == nullptr)
       << "Error: libnstest_dlopened.so is still accessible in default namespace";
 
-  handle = dlopen((GetTestlibRoot() + "/private_namespace_libs/libnstest_dlopened.so").c_str(),
+  handle = dlopen((GetTestLibRoot() + "/private_namespace_libs/libnstest_dlopened.so").c_str(),
                   RTLD_NOW | RTLD_NOLOAD);
   ASSERT_TRUE(handle == nullptr)
       << "Error: libnstest_dlopened.so is still accessible in default namespace";
 
   // Now lets see if the soinfo area gets reused in the wrong way:
   // load a library to default namespace.
-  const std::string lib_public_path = GetTestlibRoot() + "/public_namespace_libs/" + g_public_lib;
+  const std::string lib_public_path = GetTestLibRoot() + "/public_namespace_libs/" + g_public_lib;
   void* handle_public = dlopen(lib_public_path.c_str(), RTLD_NOW);
   ASSERT_TRUE(handle_public != nullptr) << dlerror();
 
@@ -1720,12 +1721,12 @@
   static const char* root_lib = "libnstest_root.so";
   ASSERT_TRUE(android_init_anonymous_namespace(g_core_shared_libs.c_str(), nullptr));
 
-  const std::string lib_public_path = GetTestlibRoot() + "/public_namespace_libs";
+  const std::string lib_public_path = GetTestLibRoot() + "/public_namespace_libs";
 
   android_namespace_t* ns1 =
           android_create_namespace("isolated1",
                                    nullptr,
-                                   (GetTestlibRoot() + "/private_namespace_libs").c_str(),
+                                   (GetTestLibRoot() + "/private_namespace_libs").c_str(),
                                    ANDROID_NAMESPACE_TYPE_ISOLATED,
                                    lib_public_path.c_str(),
                                    nullptr);
@@ -1735,7 +1736,7 @@
   android_namespace_t* ns2 =
           android_create_namespace("isolated2",
                                    nullptr,
-                                   (GetTestlibRoot() + "/private_namespace_libs").c_str(),
+                                   (GetTestLibRoot() + "/private_namespace_libs").c_str(),
                                    ANDROID_NAMESPACE_TYPE_ISOLATED,
                                    lib_public_path.c_str(),
                                    nullptr);
@@ -1755,7 +1756,7 @@
   android_namespace_t* ns1_child =
           android_create_namespace("isolated1_child",
                                    nullptr,
-                                   (GetTestlibRoot() + "/private_namespace_libs").c_str(),
+                                   (GetTestLibRoot() + "/private_namespace_libs").c_str(),
                                    ANDROID_NAMESPACE_TYPE_ISOLATED,
                                    nullptr,
                                    ns1);
@@ -1805,7 +1806,7 @@
   android_namespace_t* ns_a =
           android_create_namespace("ns_a",
                                    nullptr,
-                                   (GetTestlibRoot() + "/private_namespace_libs").c_str(),
+                                   (GetTestLibRoot() + "/private_namespace_libs").c_str(),
                                    ANDROID_NAMESPACE_TYPE_ISOLATED,
                                    nullptr,
                                    nullptr);
@@ -1815,7 +1816,7 @@
   android_namespace_t* ns_b =
           android_create_namespace("ns_b",
                                    nullptr,
-                                   GetTestlibRoot().c_str(),
+                                   GetTestLibRoot().c_str(),
                                    ANDROID_NAMESPACE_TYPE_ISOLATED,
                                    nullptr,
                                    nullptr);
@@ -1828,7 +1829,7 @@
   extinfo.flags = ANDROID_DLEXT_USE_NAMESPACE;
   extinfo.library_namespace = ns_a;
 
-  std::string library_path = GetTestlibRoot() + "/inaccessible_libs/libtestshared.so";
+  std::string library_path = GetTestLibRoot() + "/inaccessible_libs/libtestshared.so";
 
   void* handle = android_dlopen_ext(library_path.c_str(), RTLD_NOW, &extinfo);
   ASSERT_TRUE(handle == nullptr);
@@ -1849,7 +1850,7 @@
   android_namespace_t* ns =
           android_create_namespace("private",
                                    nullptr,
-                                   (GetTestlibRoot() + "/private_namespace_libs").c_str(),
+                                   (GetTestLibRoot() + "/private_namespace_libs").c_str(),
                                    ANDROID_NAMESPACE_TYPE_REGULAR,
                                    nullptr,
                                    nullptr);
@@ -1890,7 +1891,7 @@
   android_namespace_t* ns_a =
           android_create_namespace("ns_a",
                                    nullptr,
-                                   (GetTestlibRoot() + "/ns_a").c_str(),
+                                   (GetTestLibRoot() + "/ns_a").c_str(),
                                    ANDROID_NAMESPACE_TYPE_ISOLATED,
                                    nullptr,
                                    nullptr);
@@ -1900,7 +1901,7 @@
   android_namespace_t* ns_b =
           android_create_namespace("ns_b",
                                    nullptr,
-                                   (GetTestlibRoot() + "/ns_b").c_str(),
+                                   (GetTestLibRoot() + "/ns_b").c_str(),
                                    ANDROID_NAMESPACE_TYPE_ISOLATED,
                                    nullptr,
                                    nullptr);
@@ -1960,24 +1961,32 @@
   dlclose(ns_a_handle3);
 }
 
+static inline int MapPflagsToProtFlags(uint32_t flags) {
+  int prot_flags = 0;
+  if (PF_X & flags) prot_flags |= PROT_EXEC;
+  if (PF_W & flags) prot_flags |= PROT_WRITE;
+  if (PF_R & flags) prot_flags |= PROT_READ;
+  return prot_flags;
+}
+
 TEST(dlext, ns_anonymous) {
   static const char* root_lib = "libnstest_root.so";
   std::string shared_libs = g_core_shared_libs + ":" + g_public_lib;
 
-  const std::string lib_public_path = GetTestlibRoot() + "/public_namespace_libs/" + g_public_lib;
+  const std::string lib_public_path = GetTestLibRoot() + "/public_namespace_libs/" + g_public_lib;
   void* handle_public = dlopen(lib_public_path.c_str(), RTLD_NOW);
 
   ASSERT_TRUE(handle_public != nullptr) << dlerror();
 
   ASSERT_TRUE(
           android_init_anonymous_namespace(shared_libs.c_str(),
-                                           (GetTestlibRoot() + "/private_namespace_libs").c_str())
+                                           (GetTestLibRoot() + "/private_namespace_libs").c_str())
       ) << dlerror();
 
   android_namespace_t* ns =
           android_create_namespace("private",
                                    nullptr,
-                                   (GetTestlibRoot() + "/private_namespace_libs").c_str(),
+                                   (GetTestLibRoot() + "/private_namespace_libs").c_str(),
                                    ANDROID_NAMESPACE_TYPE_REGULAR,
                                    nullptr,
                                    nullptr);
@@ -1985,7 +1994,7 @@
   ASSERT_TRUE(ns != nullptr) << dlerror();
   ASSERT_TRUE(android_link_namespaces(ns, nullptr, shared_libs.c_str())) << dlerror();
 
-  std::string private_library_absolute_path = GetTestlibRoot() + "/private_namespace_libs/" + root_lib;
+  std::string private_library_absolute_path = GetTestLibRoot() + "/private_namespace_libs/" + root_lib;
 
   android_dlextinfo extinfo;
   extinfo.flags = ANDROID_DLEXT_USE_NAMESPACE;
@@ -2001,30 +2010,45 @@
   typedef const char* (*fn_t)();
   fn_t ns_get_dlopened_string_private = reinterpret_cast<fn_t>(ns_get_dlopened_string_addr);
 
-  std::vector<map_record> maps;
-  Maps::parse_maps(&maps);
-
+  Dl_info private_library_info;
+  ASSERT_NE(dladdr(reinterpret_cast<void*>(ns_get_dlopened_string_addr), &private_library_info), 0)
+      << dlerror();
+  std::vector<map_record> maps_to_copy;
+  bool has_executable_segment = false;
   uintptr_t addr_start = 0;
   uintptr_t addr_end = 0;
-  bool has_executable_segment = false;
-  std::vector<map_record> maps_to_copy;
+  std::tuple dl_iterate_arg = {&private_library_info, &maps_to_copy, &has_executable_segment,
+                               &addr_start, &addr_end};
+  ASSERT_EQ(
+      1, dl_iterate_phdr(
+             [](dl_phdr_info* info, size_t /*size*/, void* data) -> int {
+               auto [private_library_info, maps_to_copy, has_executable_segment, addr_start,
+                     addr_end] = *reinterpret_cast<decltype(dl_iterate_arg)*>(data);
+               if (info->dlpi_addr != reinterpret_cast<ElfW(Addr)>(private_library_info->dli_fbase))
+                 return 0;
 
-  for (const auto& rec : maps) {
-    if (rec.pathname == private_library_absolute_path) {
-      if (addr_start == 0) {
-        addr_start = rec.addr_start;
-      }
-      addr_end = rec.addr_end;
-      has_executable_segment = has_executable_segment || (rec.perms & PROT_EXEC) != 0;
-
-      maps_to_copy.push_back(rec);
-    }
-  }
+               for (size_t i = 0; i < info->dlpi_phnum; ++i) {
+                 const ElfW(Phdr)* phdr = info->dlpi_phdr + i;
+                 if (phdr->p_type != PT_LOAD) continue;
+                 *has_executable_segment |= phdr->p_flags & PF_X;
+                 uintptr_t mapping_start = page_start(info->dlpi_addr + phdr->p_vaddr);
+                 uintptr_t mapping_end = page_end(info->dlpi_addr + phdr->p_vaddr + phdr->p_memsz);
+                 if (*addr_start == 0 || mapping_start < *addr_start) *addr_start = mapping_start;
+                 if (*addr_end == 0 || mapping_end > *addr_end) *addr_end = mapping_end;
+                 maps_to_copy->push_back({
+                     .addr_start = mapping_start,
+                     .addr_end = mapping_end,
+                     .perms = MapPflagsToProtFlags(phdr->p_flags),
+                 });
+               }
+               return 1;
+             },
+             &dl_iterate_arg));
 
   // Some validity checks.
+  ASSERT_NE(maps_to_copy.size(), 0u);
   ASSERT_TRUE(addr_start > 0);
   ASSERT_TRUE(addr_end > 0);
-  ASSERT_TRUE(maps_to_copy.size() > 0);
   ASSERT_TRUE(ns_get_dlopened_string_addr > addr_start);
   ASSERT_TRUE(ns_get_dlopened_string_addr < addr_end);
 
@@ -2049,15 +2073,31 @@
                                                              -1, 0));
   ASSERT_TRUE(reinterpret_cast<void*>(reserved_addr) != MAP_FAILED);
 
-  for (const auto& rec : maps_to_copy) {
-    uintptr_t offset = rec.addr_start - addr_start;
-    size_t size = rec.addr_end - rec.addr_start;
-    void* addr = reinterpret_cast<void*>(reserved_addr + offset);
-    void* map = mmap(addr, size, PROT_READ | PROT_WRITE,
-                     MAP_ANON | MAP_PRIVATE | MAP_FIXED, -1, 0);
-    ASSERT_TRUE(map != MAP_FAILED);
-    memcpy(map, reinterpret_cast<void*>(rec.addr_start), size);
-    mprotect(map, size, rec.perms);
+  struct stat file_stat;
+  int ret = TEMP_FAILURE_RETRY(stat(private_library_absolute_path.c_str(), &file_stat));
+  ASSERT_EQ(ret, 0) << "Failed to stat library";
+  size_t file_size = file_stat.st_size;
+
+  {
+    // Disable MTE while copying the PROT_MTE-protected global variables from
+    // the existing mappings. We don't really care about turning on PROT_MTE for
+    // the new copy of the mappings, as this isn't the behaviour under test and
+    // tags will be ignored. This only applies for MTE-enabled devices.
+    ScopedDisableMTE disable_mte_for_copying_global_variables;
+    for (const auto& rec : maps_to_copy) {
+      uintptr_t offset = rec.addr_start - addr_start;
+      size_t size = rec.addr_end - rec.addr_start;
+      void* addr = reinterpret_cast<void*>(reserved_addr + offset);
+      void* map =
+          mmap(addr, size, PROT_READ | PROT_WRITE, MAP_ANON | MAP_PRIVATE | MAP_FIXED, -1, 0);
+      ASSERT_TRUE(map != MAP_FAILED);
+      // Attempting the below memcpy from a portion of the map that is off the end of
+      // the backing file will cause the kernel to throw a SIGBUS
+      size_t _size =
+          ::android::procinfo::MappedFileSize(rec.addr_start, rec.addr_end, rec.offset, file_size);
+      memcpy(map, reinterpret_cast<void*>(rec.addr_start), _size);
+      mprotect(map, size, rec.perms);
+    }
   }
 
   // call the function copy
@@ -2076,13 +2116,12 @@
 TEST(dlext, ns_hidden_child) {
   ExecTestHelper eth;
 
-  std::string helper = GetTestlibRoot() + "/ns_hidden_child_helper";
-  chmod(helper.c_str(), 0755); // TODO: "x" lost in CTS, b/34945607
-  std::string app_ns_dir = GetTestlibRoot() + "/ns_hidden_child_app";
+  std::string helper = GetTestLibRoot() + "/ns_hidden_child_helper";
+  std::string app_ns_dir = GetTestLibRoot() + "/ns_hidden_child_app";
   eth.SetArgs({ helper.c_str(), app_ns_dir.c_str(), nullptr });
 
   // Add the main libns_hidden_child_*.so libraries to the search path of the default namespace.
-  std::string env = "LD_LIBRARY_PATH=" + GetTestlibRoot();
+  std::string env = "LD_LIBRARY_PATH=" + GetTestLibRoot();
   eth.SetEnv({ env.c_str(), nullptr });
 
   eth.Run([&]() { execve(helper.c_str(), eth.GetArgs(), eth.GetEnv()); }, 0,
diff --git a/tests/dlfcn_test.cpp b/tests/dlfcn_test.cpp
index b68ee7b..c27adb6 100644
--- a/tests/dlfcn_test.cpp
+++ b/tests/dlfcn_test.cpp
@@ -824,6 +824,8 @@
 }
 
 TEST(dlfcn, dlclose_unload) {
+  const size_t kPageSize = getpagesize();
+
   void* handle = dlopen("libtest_simple.so", RTLD_NOW);
   ASSERT_TRUE(handle != nullptr) << dlerror();
   uint32_t* taxicab_number = static_cast<uint32_t*>(dlsym(handle, "dlopen_testlib_taxicab_number"));
@@ -833,9 +835,9 @@
   // Making sure that the library has been unmapped as part of library unload
   // process. Note that mprotect somewhat counter-intuitively returns ENOMEM in
   // this case.
-  uintptr_t page_start = reinterpret_cast<uintptr_t>(taxicab_number) & ~(PAGE_SIZE - 1);
-  ASSERT_TRUE(mprotect(reinterpret_cast<void*>(page_start), PAGE_SIZE, PROT_NONE) != 0);
-  ASSERT_EQ(ENOMEM, errno) << strerror(errno);
+  uintptr_t page_start = reinterpret_cast<uintptr_t>(taxicab_number) & ~(kPageSize - 1);
+  ASSERT_TRUE(mprotect(reinterpret_cast<void*>(page_start), kPageSize, PROT_NONE) != 0);
+  ASSERT_ERRNO(ENOMEM);
 }
 
 static void ConcurrentDlErrorFn(std::string& error) {
@@ -1299,7 +1301,7 @@
 }
 
 TEST(dlfcn, dt_runpath_absolute_path) {
-  std::string libpath = GetTestlibRoot() + "/libtest_dt_runpath_d.so";
+  std::string libpath = GetTestLibRoot() + "/libtest_dt_runpath_d.so";
   void* handle = dlopen(libpath.c_str(), RTLD_NOW);
   ASSERT_TRUE(handle != nullptr) << dlerror();
 
diff --git a/tests/elftls_dl_test.cpp b/tests/elftls_dl_test.cpp
index 56736e7..e409b72 100644
--- a/tests/elftls_dl_test.cpp
+++ b/tests/elftls_dl_test.cpp
@@ -29,10 +29,9 @@
 #include <dlfcn.h>
 #include <link.h>
 
-#include <android-base/file.h>
-#include <android-base/test_utils.h>
 #include <gtest/gtest.h>
 
+#include <string>
 #include <thread>
 
 #include "gtest_globals.h"
@@ -69,9 +68,9 @@
 }
 
 TEST(elftls_dl, dlopen_ie_error) {
-  std::string helper = GetTestlibRoot() + "/elftls_dlopen_ie_error_helper";
-  std::string src_path = GetTestlibRoot() + "/libtest_elftls_shared_var_ie.so";
-  std::string dst_path = GetTestlibRoot() + "/libtest_elftls_shared_var.so";
+  std::string helper = GetTestLibRoot() + "/elftls_dlopen_ie_error_helper";
+  std::string src_path = GetTestLibRoot() + "/libtest_elftls_shared_var_ie.so";
+  std::string dst_path = GetTestLibRoot() + "/libtest_elftls_shared_var.so";
 #if defined(__BIONIC__)
   std::string error =
       "dlerror: dlopen failed: TLS symbol \"elftls_shared_var\" in dlopened \"" + dst_path + "\" " +
@@ -81,7 +80,6 @@
   std::string error = "success\n";
 #endif
 
-  chmod(helper.c_str(), 0755); // TODO: "x" lost in CTS, b/34945607
   ExecTestHelper eth;
   eth.SetArgs({ helper.c_str(), nullptr });
   eth.Run([&]() { execve(helper.c_str(), eth.GetArgs(), eth.GetEnv()); }, 0, error.c_str());
@@ -109,6 +107,22 @@
   void* lib = dlopen("libtest_elftls_dynamic.so", RTLD_LOCAL | RTLD_NOW);
   ASSERT_NE(nullptr, lib);
 
+  auto get_local_var2 = reinterpret_cast<int(*)()>(dlsym(lib, "get_local_var2"));
+  ASSERT_NE(nullptr, get_local_var2);
+
+  auto get_local_var1 = reinterpret_cast<int(*)()>(dlsym(lib, "get_local_var1"));
+  ASSERT_NE(nullptr, get_local_var1);
+
+  auto get_local_var1_addr = reinterpret_cast<int*(*)()>(dlsym(lib, "get_local_var1_addr"));
+  ASSERT_NE(nullptr, get_local_var1_addr);
+
+  // Make sure subsequent accesses return the same pointer.
+  ASSERT_EQ(get_local_var1_addr(), get_local_var1_addr());
+
+  // Check the initial values are correct.
+  ASSERT_EQ(25, get_local_var2());
+  ASSERT_EQ(15, get_local_var1());
+
   auto bump_local_vars = reinterpret_cast<int(*)()>(dlsym(lib, "bump_local_vars"));
   ASSERT_NE(nullptr, bump_local_vars);
 
@@ -137,7 +151,7 @@
 // TLSDESC, the result is NULL. With __tls_get_addr, the result is the
 // generation count (or maybe undefined behavior)? This test only tests TLSDESC.
 TEST(elftls_dl, tlsdesc_missing_weak) {
-#if defined(__aarch64__)
+#if defined(__aarch64__) || defined(__riscv)
   void* lib = dlopen("libtest_elftls_dynamic.so", RTLD_LOCAL | RTLD_NOW);
   ASSERT_NE(nullptr, lib);
 
@@ -154,70 +168,11 @@
 }
 
 TEST(elftls_dl, dtv_resize) {
-  SKIP_WITH_HWASAN; // TODO(b/271243811): Fix for new toolchain
 #if defined(__BIONIC__)
-#define LOAD_LIB(soname) ({                           \
-    auto lib = dlopen(soname, RTLD_LOCAL | RTLD_NOW); \
-    ASSERT_NE(nullptr, lib);                          \
-    reinterpret_cast<int(*)()>(dlsym(lib, "bump"));   \
-  })
-
-  auto dtv = []() -> TlsDtv* { return __get_tcb_dtv(__get_bionic_tcb()); };
-
-  static_assert(sizeof(TlsDtv) == 3 * sizeof(void*),
-                "This test assumes that the Dtv has a 3-word header");
-
-  // Initially there are 4 modules:
-  //  - the main test executable
-  //  - libc
-  //  - libtest_elftls_shared_var
-  //  - libtest_elftls_tprel
-
-  // The initial DTV is an empty DTV with no generation and a size of 0.
-  TlsDtv* zero_dtv = dtv();
-  ASSERT_EQ(0u, zero_dtv->count);
-  ASSERT_EQ(nullptr, zero_dtv->next);
-  ASSERT_EQ(kTlsGenerationNone, zero_dtv->generation);
-
-  // Load the fifth module.
-  auto func1 = LOAD_LIB("libtest_elftls_dynamic_filler_1.so");
-  ASSERT_EQ(101, func1());
-
-  // After loading one module, the DTV should be initialized to the next
-  // power-of-2 size (including the header).
-  TlsDtv* initial_dtv = dtv();
-  ASSERT_EQ(5u, initial_dtv->count);
-  ASSERT_EQ(zero_dtv, initial_dtv->next);
-  ASSERT_LT(0u, initial_dtv->generation);
-
-  // Load module 6.
-  auto func2 = LOAD_LIB("libtest_elftls_dynamic_filler_2.so");
-  ASSERT_EQ(102, func1());
-
-#if defined(__aarch64__)
-  // The arm64 TLSDESC resolver doesn't update the DTV if it is new enough for
-  // the given access.
-  ASSERT_EQ(5u, dtv()->count);
-#else
-  // __tls_get_addr updates the DTV anytime the generation counter changes.
-  ASSERT_EQ(13u, dtv()->count);
-#endif
-
-  ASSERT_EQ(201, func2());
-  TlsDtv* new_dtv = dtv();
-  ASSERT_NE(initial_dtv, new_dtv);
-  ASSERT_EQ(initial_dtv, new_dtv->next);
-  ASSERT_EQ(13u, new_dtv->count);
-
-  // Load module 7.
-  auto func3 = LOAD_LIB("libtest_elftls_dynamic_filler_3.so");
-  ASSERT_EQ(103, func1());
-  ASSERT_EQ(202, func2());
-  ASSERT_EQ(301, func3());
-
-  ASSERT_EQ(new_dtv, dtv());
-
-#undef LOAD_LIB
+  std::string helper = GetTestLibRoot() + "/elftls_dtv_resize_helper";
+  ExecTestHelper eth;
+  eth.SetArgs({helper.c_str(), nullptr});
+  eth.Run([&]() { execve(helper.c_str(), eth.GetArgs(), eth.GetEnv()); }, 0, nullptr);
 #else
   GTEST_SKIP() << "test doesn't apply to glibc";
 #endif
@@ -332,7 +287,7 @@
   Dl_info info;
   ASSERT_NE(0, dladdr(local_addr, &info));
 
-  std::string libpath = GetTestlibRoot() + "/libtest_elftls_dynamic.so";
+  std::string libpath = GetTestLibRoot() + "/libtest_elftls_dynamic.so";
   char dli_realpath[PATH_MAX];
   ASSERT_TRUE(realpath(info.dli_fname, dli_realpath));
   ASSERT_STREQ(libpath.c_str(), dli_realpath);
diff --git a/tests/elftls_test.cpp b/tests/elftls_test.cpp
index 7c072b6..b3f511e 100644
--- a/tests/elftls_test.cpp
+++ b/tests/elftls_test.cpp
@@ -30,6 +30,9 @@
 
 #include <thread>
 
+#include "gtest_globals.h"
+#include "utils.h"
+
 // Specify the LE access model explicitly. This file is compiled into the
 // bionic-unit-tests executable, but the compiler sees an -fpic object file
 // output into a static library, so it defaults to dynamic TLS accesses.
@@ -87,3 +90,17 @@
     ASSERT_EQ(31, ++tlsvar_general);
   }).join();
 }
+
+TEST(elftls, align_test) {
+  std::string helper = GetTestLibRoot() + "/elftls_align_test_helper";
+  ExecTestHelper eth;
+  eth.SetArgs({helper.c_str(), nullptr});
+  eth.Run([&]() { execve(helper.c_str(), eth.GetArgs(), eth.GetEnv()); }, 0, nullptr);
+}
+
+TEST(elftls, skew_align_test) {
+  std::string helper = GetTestLibRoot() + "/elftls_skew_align_test_helper";
+  ExecTestHelper eth;
+  eth.SetArgs({helper.c_str(), nullptr});
+  eth.Run([&]() { execve(helper.c_str(), eth.GetArgs(), eth.GetEnv()); }, 0, nullptr);
+}
diff --git a/tests/eventfd_test.cpp b/tests/eventfd_test.cpp
index eb423c1..3107a46 100644
--- a/tests/eventfd_test.cpp
+++ b/tests/eventfd_test.cpp
@@ -34,7 +34,7 @@
 
   // Reading clears the counter.
   ASSERT_EQ(-1, eventfd_read(fd, &value));
-  ASSERT_EQ(EAGAIN, errno);
+  ASSERT_ERRNO(EAGAIN);
 
   // Values written are added until the next read.
   ASSERT_EQ(0, eventfd_write(fd, 1));
@@ -88,7 +88,7 @@
 
   // The counter is cleared after the initial value decrements to 0.
   ASSERT_EQ(-1, eventfd_read(fd, &value));
-  ASSERT_EQ(EAGAIN, errno);
+  ASSERT_ERRNO(EAGAIN);
 
   close(fd);
 }
diff --git a/tests/execinfo_test.cpp b/tests/execinfo_test.cpp
index b8e1325..1a0c51b 100644
--- a/tests/execinfo_test.cpp
+++ b/tests/execinfo_test.cpp
@@ -79,9 +79,13 @@
 }
 
 static size_t FindFunction(std::vector<void*>& frames, uintptr_t func_addr) {
+  Dl_info func_info;
+  if (!dladdr(reinterpret_cast<void*>(func_addr), &func_info)) {
+    return 0;
+  }
   for (size_t i = 0; i < frames.size(); i++) {
-    uintptr_t frame_addr = reinterpret_cast<uintptr_t>(frames[i]);
-    if (frame_addr >= func_addr && frame_addr <= func_addr + 0x100) {
+    Dl_info frame_info;
+    if (dladdr(frames[i], &frame_info) && func_info.dli_saddr == frame_info.dli_saddr) {
       return i + 1;
     }
   }
diff --git a/tests/fcntl_test.cpp b/tests/fcntl_test.cpp
index f9bfb30..57766ef 100644
--- a/tests/fcntl_test.cpp
+++ b/tests/fcntl_test.cpp
@@ -34,6 +34,8 @@
 #include <linux/magic.h>
 #endif
 
+#include "utils.h"
+
 using fcntl_DeathTest = SilentDeathTest;
 
 TEST(fcntl, fcntl_smoke) {
@@ -80,9 +82,9 @@
 
 TEST(fcntl, creat_creat64) {
   ASSERT_EQ(-1, creat("", 0666));
-  ASSERT_EQ(ENOENT, errno);
+  ASSERT_ERRNO(ENOENT);
   ASSERT_EQ(-1, creat64("", 0666));
-  ASSERT_EQ(ENOENT, errno);
+  ASSERT_ERRNO(ENOENT);
 }
 
 TEST(fcntl, posix_fadvise) {
@@ -90,16 +92,16 @@
   errno = 0;
 
   EXPECT_EQ(EBADF, posix_fadvise(-1, 0, 0, POSIX_FADV_NORMAL));
-  EXPECT_EQ(0, errno);
+  EXPECT_ERRNO(0);
 
   EXPECT_EQ(EBADF, posix_fadvise64(-1, 0, 0, POSIX_FADV_NORMAL));
-  EXPECT_EQ(0, errno);
+  EXPECT_ERRNO(0);
 
   EXPECT_EQ(EINVAL, posix_fadvise(tf.fd, 0, 0, -1));
-  EXPECT_EQ(0, errno);
+  EXPECT_ERRNO(0);
 
   EXPECT_EQ(EINVAL, posix_fadvise64(tf.fd, 0, 0, -1));
-  EXPECT_EQ(0, errno);
+  EXPECT_ERRNO(0);
 
   EXPECT_EQ(0, posix_fadvise(tf.fd, 0, 0, POSIX_FADV_NORMAL));
   EXPECT_EQ(0, posix_fadvise64(tf.fd, 0, 0, POSIX_FADV_NORMAL));
@@ -113,19 +115,19 @@
 
   errno = 0;
   ASSERT_EQ(-1, fallocate(tf.fd, 0, 0, -1));
-  ASSERT_EQ(EINVAL, errno);
+  ASSERT_ERRNO(EINVAL);
 
   errno = 0;
   ASSERT_EQ(-1, fallocate64(tf.fd, 0, 0, -1));
-  ASSERT_EQ(EINVAL, errno);
+  ASSERT_ERRNO(EINVAL);
 
   errno = 0;
   ASSERT_EQ(EINVAL, posix_fallocate(tf.fd, 0, -1));
-  ASSERT_EQ(0, errno);
+  ASSERT_ERRNO(0);
 
   errno = 0;
   ASSERT_EQ(EINVAL, posix_fallocate64(tf.fd, 0, -1));
-  ASSERT_EQ(0, errno);
+  ASSERT_ERRNO(0);
 }
 
 TEST(fcntl, fallocate) {
@@ -269,14 +271,14 @@
   // Just check that the function is available.
   errno = 0;
   ASSERT_EQ(-1, readahead(-1, 0, 123));
-  ASSERT_EQ(EBADF, errno);
+  ASSERT_ERRNO(EBADF);
 }
 
 TEST(fcntl, sync_file_range) {
   // Just check that the function is available.
   errno = 0;
   ASSERT_EQ(-1, sync_file_range(-1, 0, 0, 0));
-  ASSERT_EQ(EBADF, errno);
+  ASSERT_ERRNO(EBADF);
 
   TemporaryFile tf;
   ASSERT_EQ(0, sync_file_range(tf.fd, 0, 0, 0));
@@ -285,7 +287,7 @@
   // Check that the `flags` argument gets passed to the kernel correctly.
   errno = 0;
   ASSERT_EQ(-1, sync_file_range(tf.fd, 0, 0, ~0));
-  ASSERT_EQ(EINVAL, errno);
+  ASSERT_ERRNO(EINVAL);
 }
 
 static bool parse_kernel_release(long* const major, long* const minor) {
@@ -312,13 +314,12 @@
     ASSERT_EQ(0, fstatfs(tf.fd, &sfs));
     if (sfs.f_type == EXT4_SUPER_MAGIC) {
       ASSERT_EQ(-1, fallocate(tf.fd, FALLOC_FL_PUNCH_HOLE | FALLOC_FL_KEEP_SIZE, 0, 1));
-      ASSERT_EQ(errno, EOPNOTSUPP);
+      ASSERT_ERRNO(EOPNOTSUPP);
     }
   }
 }
 
 TEST(fcntl, open_O_TMPFILE_mode) {
-#if __BIONIC__ // Our glibc is too old for O_TMPFILE.
   TemporaryDir dir;
   // Without O_EXCL, we're allowed to give this a name later.
   // (This is unrelated to the O_CREAT interaction with O_EXCL.)
@@ -355,11 +356,10 @@
   ASSERT_EQ(-1, linkat(AT_FDCWD, android::base::StringPrintf("/proc/self/fd/%d", fd).c_str(),
                        AT_FDCWD, android::base::StringPrintf("%s/no_chance", dir.path).c_str(),
                        AT_SYMLINK_FOLLOW));
-  ASSERT_EQ(ENOENT, errno);
+  ASSERT_ERRNO(ENOENT);
   ASSERT_EQ(0, close(fd));
-#endif
 }
 
-TEST(fcntl_DeathTest, fcntl_F_SETFD) {
-  EXPECT_DEATH(fcntl(0, F_SETFD, O_NONBLOCK), "FD_CLOEXEC");
+TEST_F(fcntl_DeathTest, fcntl_F_SETFD) {
+  EXPECT_DEATH(fcntl(0, F_SETFD, O_NONBLOCK), "only supports FD_CLOEXEC");
 }
diff --git a/tests/fdsan_test.cpp b/tests/fdsan_test.cpp
index 016970f..c1e926b 100644
--- a/tests/fdsan_test.cpp
+++ b/tests/fdsan_test.cpp
@@ -33,7 +33,6 @@
 #include <android-base/silent_death_test.h>
 #include <android-base/unique_fd.h>
 
-#define FDSAN_TEST(test_name) TEST_F(FdsanTest, test_name)
 #define EXPECT_FDSAN_DEATH(expression, regex)                                                \
   EXPECT_DEATH((android_fdsan_set_error_level(ANDROID_FDSAN_ERROR_LEVEL_FATAL), expression), \
                (regex))
diff --git a/tests/fdtrack_test.cpp b/tests/fdtrack_test.cpp
index 9fcb402..5988bc4 100644
--- a/tests/fdtrack_test.cpp
+++ b/tests/fdtrack_test.cpp
@@ -40,6 +40,8 @@
 #include <android-base/logging.h>
 #include <android-base/unique_fd.h>
 
+#include "utils.h"
+
 using android::base::ReceiveFileDescriptors;
 using android::base::SendFileDescriptors;
 using android::base::unique_fd;
@@ -233,27 +235,22 @@
 
 FDTRACK_TEST(pidfd_open, ({
   int rc = pidfd_open(getpid(), 0);
-  if (rc == -1) {
-    ASSERT_EQ(ENOSYS, errno);
-    GTEST_SKIP() << "pidfd_open not available";
-  }
+  if (rc == -1 && errno == ENOSYS) GTEST_SKIP() << "no pidfd_open() in this kernel";
+  ASSERT_NE(-1, rc) << strerror(errno);
   rc;
 }));
 
 FDTRACK_TEST(pidfd_getfd, ({
   android_fdtrack_set_enabled(false);
   int pidfd_self = pidfd_open(getpid(), 0);
-  if (pidfd_self == -1) {
-    ASSERT_EQ(ENOSYS, errno);
-    GTEST_SKIP() << "pidfd_open not available";
-  }
+  if (pidfd_self == -1 && errno == ENOSYS) GTEST_SKIP() << "no pidfd_open() in this kernel";
+  ASSERT_NE(-1, pidfd_self) << strerror(errno);
+
   android_fdtrack_set_enabled(true);
 
   int rc = pidfd_getfd(pidfd_self, STDIN_FILENO, 0);
-  if (rc == -1) {
-    ASSERT_EQ(ENOSYS, errno);
-    GTEST_SKIP() << "pidfd_getfd not available";
-  }
+  if (rc == -1 && errno == ENOSYS) GTEST_SKIP() << "no pidfd_getfd() in this kernel";
+  ASSERT_NE(-1, rc) << strerror(errno);
 
   android_fdtrack_set_enabled(false);
   close(pidfd_self);
diff --git a/tests/fenv_test.cpp b/tests/fenv_test.cpp
index 9cf9d98..bbf339f 100644
--- a/tests/fenv_test.cpp
+++ b/tests/fenv_test.cpp
@@ -16,6 +16,7 @@
 
 #include <gtest/gtest.h>
 
+#include "DoNotOptimize.h"
 #include "utils.h"
 
 #include <fenv.h>
diff --git a/tests/float_test.cpp b/tests/float_test.cpp
index 3ef4593..a2b7ecb 100644
--- a/tests/float_test.cpp
+++ b/tests/float_test.cpp
@@ -122,3 +122,7 @@
 #error LDBL_HAS_SUBNORM
 #endif
 }
+
+TEST(float_h, FLT_EVAL_METHOD_exact) {
+  ASSERT_EQ(0, FLT_EVAL_METHOD);
+}
diff --git a/tests/fortify_test.cpp b/tests/fortify_test.cpp
index 4abee67..cb96f9f 100644
--- a/tests/fortify_test.cpp
+++ b/tests/fortify_test.cpp
@@ -29,7 +29,7 @@
 
 #include <android-base/silent_death_test.h>
 
-#if __BIONIC__
+#if defined(__BIONIC__)
 #define ASSERT_FORTIFY(expr) ASSERT_EXIT(expr, testing::KilledBySignal(SIGABRT), "FORTIFY")
 #else
 #define ASSERT_FORTIFY(expr) ASSERT_EXIT(expr, testing::KilledBySignal(SIGABRT), "")
@@ -412,9 +412,6 @@
   ASSERT_FORTIFY(sprintf(buf, "%s", source_buf));
 }
 
-#if !__has_attribute(alloc_size)
-// TODO: remove this after Clang prebuilt rebase.
-#else
 TEST_F(DEATHTEST, sprintf_malloc_fortified) {
   char* buf = (char *) malloc(10);
   char source_buf[11];
@@ -422,7 +419,6 @@
   ASSERT_FORTIFY(sprintf(buf, "%s", source_buf));
   free(buf);
 }
-#endif
 
 TEST_F(DEATHTEST, sprintf2_fortified) {
   char buf[5];
@@ -670,6 +666,10 @@
   ASSERT_FORTIFY(readlinkat(AT_FDCWD, "/dev/null", buf, ct));
 }
 
+TEST(TEST_NAME, snprintf_nullptr_valid) {
+  ASSERT_EQ(10, snprintf(nullptr, 0, "0123456789"));
+}
+
 extern "C" char* __strncat_chk(char*, const char*, size_t, size_t);
 extern "C" char* __strcat_chk(char*, const char*, size_t);
 
@@ -1010,7 +1010,7 @@
 }
 
 TEST_F(DEATHTEST, ppoll64_fortified) {
-#if __BIONIC__ // glibc doesn't have ppoll64.
+#if defined(__BIONIC__)        // glibc doesn't have ppoll64.
   nfds_t fd_count = atoi("2"); // suppress compiler optimizations
   pollfd buf[1] = {{0, POLLIN, 0}};
   // Set timeout to zero to prevent waiting in ppoll when fortify test fails.
@@ -1026,8 +1026,6 @@
 }
 
 TEST_F(DEATHTEST, open_O_TMPFILE_without_mode_fortified) {
-#if __BIONIC__ // Our glibc is too old for O_TMPFILE.
   int flags = O_TMPFILE; // Fool the compiler.
   ASSERT_FORTIFY(open("", flags));
-#endif
 }
diff --git a/libm/fenv-access.h b/tests/fts_test.cpp
similarity index 71%
copy from libm/fenv-access.h
copy to tests/fts_test.cpp
index 7acb34d..39e570b 100644
--- a/libm/fenv-access.h
+++ b/tests/fts_test.cpp
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2021 The Android Open Source Project
+ * Copyright (C) 2024 The Android Open Source Project
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -26,8 +26,23 @@
  * SUCH DAMAGE.
  */
 
-#pragma once
+#include <gtest/gtest.h>
 
-#if defined(__x86_64__) || defined(__i386__)
-#pragma STDC FENV_ACCESS ON
+#if !defined(__GLIBC__)
+#include <fts.h>
 #endif
+
+TEST(fts, smoke) {
+#if !defined(__GLIBC__)
+  char* const paths[] = { const_cast<char*>("."), NULL };
+  FTS* fts = fts_open(paths, FTS_PHYSICAL, NULL);
+  ASSERT_TRUE(fts != NULL);
+  FTSENT* e;
+  while ((e = fts_read(fts)) != NULL) {
+    ASSERT_EQ(0, fts_set(fts, e, FTS_SKIP));
+  }
+  ASSERT_EQ(0, fts_close(fts));
+#else
+  GTEST_SKIP() << "no _FILE_OFFSET_BITS=64 <fts.h> in our old glibc";
+#endif
+}
diff --git a/tests/ftw_test.cpp b/tests/ftw_test.cpp
index 6473f71..9d9c1d3 100644
--- a/tests/ftw_test.cpp
+++ b/tests/ftw_test.cpp
@@ -28,6 +28,8 @@
 #include <android-base/stringprintf.h>
 #include <gtest/gtest.h>
 
+#include "utils.h"
+
 static void MakeTree(const char* root) {
   char path[PATH_MAX];
 
@@ -167,35 +169,35 @@
 TEST(ftw, ftw_non_existent_ENOENT) {
   errno = 0;
   ASSERT_EQ(-1, ftw("/does/not/exist", null_ftw_callback<struct stat>, 128));
-  ASSERT_EQ(ENOENT, errno);
+  ASSERT_ERRNO(ENOENT);
   errno = 0;
   ASSERT_EQ(-1, ftw64("/does/not/exist", null_ftw_callback<struct stat64>, 128));
-  ASSERT_EQ(ENOENT, errno);
+  ASSERT_ERRNO(ENOENT);
 }
 
 TEST(ftw, nftw_non_existent_ENOENT) {
   errno = 0;
   ASSERT_EQ(-1, nftw("/does/not/exist", null_nftw_callback<struct stat>, 128, FTW_PHYS));
-  ASSERT_EQ(ENOENT, errno);
+  ASSERT_ERRNO(ENOENT);
   errno = 0;
   ASSERT_EQ(-1, nftw64("/does/not/exist", null_nftw_callback<struct stat64>, 128, FTW_PHYS));
-  ASSERT_EQ(ENOENT, errno);
+  ASSERT_ERRNO(ENOENT);
 }
 
 TEST(ftw, ftw_empty_ENOENT) {
   errno = 0;
   ASSERT_EQ(-1, ftw("", null_ftw_callback<struct stat>, 128));
-  ASSERT_EQ(ENOENT, errno);
+  ASSERT_ERRNO(ENOENT);
   errno = 0;
   ASSERT_EQ(-1, ftw64("", null_ftw_callback<struct stat64>, 128));
-  ASSERT_EQ(ENOENT, errno);
+  ASSERT_ERRNO(ENOENT);
 }
 
 TEST(ftw, nftw_empty_ENOENT) {
   errno = 0;
   ASSERT_EQ(-1, nftw("", null_nftw_callback<struct stat>, 128, FTW_PHYS));
-  ASSERT_EQ(ENOENT, errno);
+  ASSERT_ERRNO(ENOENT);
   errno = 0;
   ASSERT_EQ(-1, nftw64("", null_nftw_callback<struct stat64>, 128, FTW_PHYS));
-  ASSERT_EQ(ENOENT, errno);
+  ASSERT_ERRNO(ENOENT);
 }
diff --git a/tests/getauxval_test.cpp b/tests/getauxval_test.cpp
index f4ec7f5..3016432 100644
--- a/tests/getauxval_test.cpp
+++ b/tests/getauxval_test.cpp
@@ -21,6 +21,8 @@
 #include <sys/utsname.h>
 #include <gtest/gtest.h>
 
+#include "utils.h"
+
 TEST(getauxval, expected_values) {
   ASSERT_EQ(0UL, getauxval(AT_SECURE));
   ASSERT_EQ(getuid(), getauxval(AT_UID));
@@ -38,7 +40,7 @@
 TEST(getauxval, unexpected_values) {
   errno = 0;
   ASSERT_EQ(0UL, getauxval(0xdeadbeef));
-  ASSERT_EQ(ENOENT, errno);
+  ASSERT_ERRNO(ENOENT);
 }
 
 TEST(getauxval, arm_has_AT_HWCAP2) {
@@ -57,7 +59,7 @@
     // to check errno to see whether we got a "true" 0 or a "not found" 0.
     errno = 0;
     getauxval(AT_HWCAP2);
-    ASSERT_EQ(0, errno) << "64-bit kernel not reporting AT_HWCAP2 to 32-bit ARM process";
+    ASSERT_ERRNO(0) << "64-bit kernel not reporting AT_HWCAP2 to 32-bit ARM process";
     return;
   }
 #endif
diff --git a/tests/getcwd_test.cpp b/tests/getcwd_test.cpp
index 4fec40b..26ea75f 100644
--- a/tests/getcwd_test.cpp
+++ b/tests/getcwd_test.cpp
@@ -29,7 +29,7 @@
   errno = 0;
   char* cwd = getcwd(nullptr, 0);
   ASSERT_TRUE(cwd != nullptr);
-  ASSERT_EQ(0, errno);
+  ASSERT_ERRNO(0);
   ASSERT_GE(strlen(cwd), 1U);
   free(cwd);
 }
@@ -39,7 +39,7 @@
   errno = 0;
   char* cwd = getcwd(nullptr, PATH_MAX);
   ASSERT_TRUE(cwd != nullptr);
-  ASSERT_EQ(0, errno);
+  ASSERT_ERRNO(0);
   ASSERT_GE(strlen(cwd), 1U);
   free(cwd);
 }
@@ -49,7 +49,7 @@
   errno = 0;
   char* cwd = getcwd(nullptr, 1);
   ASSERT_TRUE(cwd == nullptr);
-  ASSERT_EQ(ERANGE, errno);
+  ASSERT_ERRNO(ERANGE);
 }
 
 TEST(getcwd, auto_too_large) {
@@ -58,7 +58,7 @@
   errno = 0;
   char* cwd = getcwd(nullptr, static_cast<size_t>(-1));
   ASSERT_TRUE(cwd == nullptr);
-  ASSERT_EQ(ENOMEM, errno);
+  ASSERT_ERRNO(ENOMEM);
 }
 
 TEST(getcwd, manual_too_small) {
@@ -67,7 +67,7 @@
   errno = 0;
   char* cwd = getcwd(tiny_buf, sizeof(tiny_buf));
   ASSERT_TRUE(cwd == nullptr);
-  ASSERT_EQ(ERANGE, errno);
+  ASSERT_ERRNO(ERANGE);
 }
 
 TEST(getcwd, manual_zero) {
@@ -76,7 +76,7 @@
   errno = 0;
   char* cwd = getcwd(tiny_buf, 0);
   ASSERT_TRUE(cwd == nullptr);
-  ASSERT_EQ(EINVAL, errno);
+  ASSERT_ERRNO(EINVAL);
 }
 
 TEST(getcwd, manual_path_max) {
@@ -84,7 +84,7 @@
   errno = 0;
   char* cwd = getcwd(buf, PATH_MAX);
   ASSERT_TRUE(cwd == buf);
-  ASSERT_EQ(0, errno);
+  ASSERT_ERRNO(0);
   ASSERT_GE(strlen(cwd), 1U);
   delete[] cwd;
 }
diff --git a/tests/grp_pwd_test.cpp b/tests/grp_pwd_test.cpp
index 3d5a933..3f93c8a 100644
--- a/tests/grp_pwd_test.cpp
+++ b/tests/grp_pwd_test.cpp
@@ -41,6 +41,8 @@
 // Generated android_ids array
 #include "generated_android_ids.h"
 
+#include "utils.h"
+
 using android::base::Join;
 using android::base::ReadFileToString;
 using android::base::Split;
@@ -86,7 +88,7 @@
                            bool check_username) {
   errno = 0;
   passwd* pwd = getpwuid(uid);
-  ASSERT_EQ(0, errno);
+  ASSERT_ERRNO(0);
   SCOPED_TRACE("getpwuid");
   check_passwd(pwd, username, uid, uid_type, check_username);
 }
@@ -95,7 +97,7 @@
                            bool check_username) {
   errno = 0;
   passwd* pwd = getpwnam(username);
-  ASSERT_EQ(0, errno);
+  ASSERT_ERRNO(0);
   SCOPED_TRACE("getpwnam");
   check_passwd(pwd, username, uid, uid_type, check_username);
 }
@@ -110,7 +112,7 @@
   passwd* pwd = nullptr;
   result = getpwuid_r(uid, &pwd_storage, buf, sizeof(buf), &pwd);
   ASSERT_EQ(0, result);
-  ASSERT_EQ(0, errno);
+  ASSERT_ERRNO(0);
   SCOPED_TRACE("getpwuid_r");
   check_passwd(pwd, username, uid, uid_type, check_username);
 }
@@ -125,7 +127,7 @@
   passwd* pwd = nullptr;
   result = getpwnam_r(username, &pwd_storage, buf, sizeof(buf), &pwd);
   ASSERT_EQ(0, result);
-  ASSERT_EQ(0, errno);
+  ASSERT_ERRNO(0);
   SCOPED_TRACE("getpwnam_r");
   check_passwd(pwd, username, uid, uid_type, check_username);
 }
@@ -145,7 +147,7 @@
   passwd* passwd = nullptr;
   passwd = getpwuid(uid);
   EXPECT_EQ(nullptr, passwd) << "name = '" << passwd->pw_name << "'";
-  EXPECT_EQ(ENOENT, errno);
+  EXPECT_ERRNO(ENOENT);
 
   struct passwd passwd_storage;
   char buf[512];
@@ -159,7 +161,7 @@
   passwd* passwd = nullptr;
   passwd = getpwnam(username);
   EXPECT_EQ(nullptr, passwd) << "name = '" << passwd->pw_name << "'";
-  EXPECT_EQ(ENOENT, errno);
+  EXPECT_ERRNO(ENOENT);
 
   struct passwd passwd_storage;
   char buf[512];
@@ -442,10 +444,9 @@
     return result;
   };
 
-  // AID_UPROBESTATS (1093) was added in V, but "trunk stable" means
-  // that the 2024Q builds don't have branches like the QPR builds used
-  // to, and are tested with the _previous_ release's CTS.
-  if (android::base::GetIntProperty("ro.build.version.sdk", 0) == __ANDROID_API_U__) {
+  // AID_UPROBESTATS (1093) was added in API level 35, but "trunk stable" means
+  // that the 2024Q* builds are tested with the _previous_ release's CTS.
+  if (android::base::GetIntProperty("ro.build.version.sdk", 0) == 34) {
 #if !defined(AID_UPROBESTATS)
 #define AID_UPROBESTATS 1093
 #endif
@@ -455,10 +456,9 @@
       EXPECT_STREQ(getpwuid(AID_UPROBESTATS)->pw_name, "uprobestats");
     }
   }
-  // AID_VIRTUALMACHINE (3013) was added in V, but "trunk stable" means
-  // that the 2024Q builds don't have branches like the QPR builds used
-  // to, and are tested with the _previous_ release's CTS.
-  if (android::base::GetIntProperty("ro.build.version.sdk", 0) == __ANDROID_API_U__) {
+  // AID_VIRTUALMACHINE (3013) was added in API level 35, but "trunk stable" means
+  // that the 2024Q* builds are tested with the _previous_ release's CTS.
+  if (android::base::GetIntProperty("ro.build.version.sdk", 0) == 34) {
 #if !defined(AID_VIRTUALMACHINE)
 #define AID_VIRTUALMACHINE 3013
 #endif
@@ -468,6 +468,30 @@
       EXPECT_STREQ(getpwuid(AID_VIRTUALMACHINE)->pw_name, "virtualmachine");
     }
   }
+  // AID_CROS_EC (1094) was added in API level 36, but "trunk stable" means
+  // that the 2024Q* builds are tested with the _previous_ release's CTS.
+  if (android::base::GetIntProperty("ro.build.version.sdk", 0) == 35) {
+#if !defined(AID_CROS_EC)
+#define AID_CROS_EC 1094
+#endif
+    ids.erase(AID_CROS_EC);
+    expected_ids.erase(AID_CROS_EC);
+    if (getpwuid(AID_CROS_EC)) {
+      EXPECT_STREQ(getpwuid(AID_CROS_EC)->pw_name, "cros_ec");
+    }
+  }
+  // AID_MMD (1095) was added in API level 36, but "trunk stable" means
+  // that the 2024Q* builds are tested with the _previous_ release's CTS.
+  if (android::base::GetIntProperty("ro.build.version.sdk", 0) == 35) {
+#if !defined(AID_MMD)
+#define AID_MMD 1095
+#endif
+    ids.erase(AID_MMD);
+    expected_ids.erase(AID_MMD);
+    if (getpwuid(AID_MMD)) {
+      EXPECT_STREQ(getpwuid(AID_MMD)->pw_name, "mmd");
+    }
+  }
 
   EXPECT_EQ(expected_ids, ids) << return_differences();
 }
@@ -524,7 +548,7 @@
 static void check_getgrgid(const char* group_name, gid_t gid, bool check_groupname) {
   errno = 0;
   group* grp = getgrgid(gid);
-  ASSERT_EQ(0, errno);
+  ASSERT_ERRNO(0);
   SCOPED_TRACE("getgrgid");
   check_group(grp, group_name, gid, check_groupname);
 }
@@ -532,7 +556,7 @@
 static void check_getgrnam(const char* group_name, gid_t gid, bool check_groupname) {
   errno = 0;
   group* grp = getgrnam(group_name);
-  ASSERT_EQ(0, errno);
+  ASSERT_ERRNO(0);
   SCOPED_TRACE("getgrnam");
   check_group(grp, group_name, gid, check_groupname);
 }
@@ -545,7 +569,7 @@
   errno = 0;
   int result = getgrgid_r(gid, &grp_storage, buf, sizeof(buf), &grp);
   ASSERT_EQ(0, result);
-  ASSERT_EQ(0, errno);
+  ASSERT_ERRNO(0);
   SCOPED_TRACE("getgrgid_r");
   check_group(grp, group_name, gid, check_groupname);
 }
@@ -558,7 +582,7 @@
   errno = 0;
   int result = getgrnam_r(group_name, &grp_storage, buf, sizeof(buf), &grp);
   ASSERT_EQ(0, result);
-  ASSERT_EQ(0, errno);
+  ASSERT_ERRNO(0);
   SCOPED_TRACE("getgrnam_r");
   check_group(grp, group_name, gid, check_groupname);
 }
@@ -577,7 +601,7 @@
   group* group = nullptr;
   group = getgrgid(gid);
   EXPECT_EQ(nullptr, group) << "name = '" << group->gr_name << "'";
-  EXPECT_EQ(ENOENT, errno);
+  EXPECT_ERRNO(ENOENT);
 
   struct group group_storage;
   char buf[512];
@@ -591,7 +615,7 @@
   group* group = nullptr;
   group = getgrnam(groupname);
   EXPECT_EQ(nullptr, group) << "name = '" << group->gr_name << "'";
-  EXPECT_EQ(ENOENT, errno);
+  EXPECT_ERRNO(ENOENT);
 
   struct group group_storage;
   char buf[512];
@@ -866,6 +890,11 @@
 #endif
 }
 
+TEST(grp, initgroups) {
+  if (getuid() != 0) GTEST_SKIP() << "test requires root";
+  ASSERT_EQ(0, initgroups("root", 0));
+}
+
 #if defined(__BIONIC__)
 static void TestAidNamePrefix(const std::string& file_path) {
   std::string file_contents;
diff --git a/tests/gtest_globals.cpp b/tests/gtest_globals.cpp
index 11b2dff..f146c08 100644
--- a/tests/gtest_globals.cpp
+++ b/tests/gtest_globals.cpp
@@ -23,7 +23,7 @@
 
 #include <string>
 
-std::string GetTestlibRoot() {
+std::string GetTestLibRoot() {
   // Typically the executable is /data/nativetest[64]/bionic-unit-tests/bionic-unit-tests, and the
   // test libraries are in /data/nativetest[64]/bionic-unit-tests/bionic-loader-test-libs.
   std::string path = android::base::GetExecutableDirectory();
diff --git a/tests/gtest_globals.h b/tests/gtest_globals.h
index 1bebb70..3b780a4 100644
--- a/tests/gtest_globals.h
+++ b/tests/gtest_globals.h
@@ -19,10 +19,10 @@
 
 #include <string>
 
-std::string GetTestlibRoot();
+std::string GetTestLibRoot();
 
 inline std::string GetPrebuiltElfDir() {
-  return GetTestlibRoot() + "/prebuilt-elf-files";
+  return GetTestLibRoot() + "/prebuilt-elf-files";
 }
 
 #endif  // _BIONIC_TESTS_GTEST_GLOBALS_H
diff --git a/tests/gwp_asan_test.cpp b/tests/gwp_asan_test.cpp
index c31f48c..709a939 100644
--- a/tests/gwp_asan_test.cpp
+++ b/tests/gwp_asan_test.cpp
@@ -34,12 +34,15 @@
 #if defined(__BIONIC__)
 
 #include "android-base/file.h"
+#include "android-base/silent_death_test.h"
 #include "android-base/test_utils.h"
 #include "gwp_asan/options.h"
 #include "platform/bionic/malloc.h"
 #include "sys/system_properties.h"
 #include "utils.h"
 
+using gwp_asan_integration_DeathTest = SilentDeathTest;
+
 // basename is a mess, use gnu basename explicitly to avoid the need for string
 // mutation.
 extern "C" const char* __gnu_basename(const char* path);
@@ -133,7 +136,7 @@
   }
 };
 
-TEST(gwp_asan_integration, DISABLED_assert_gwp_asan_enabled) {
+TEST_F(gwp_asan_integration_DeathTest, DISABLED_assert_gwp_asan_enabled) {
   std::string maps;
   EXPECT_TRUE(android::base::ReadFileToString("/proc/self/maps", &maps));
   EXPECT_TRUE(maps.find("GWP-ASan") != std::string::npos) << maps;
@@ -173,7 +176,7 @@
   __system_property_set((std::string("libc.debug.gwp_asan.max_allocs.") + basename).c_str(),
                         "40000");
 
-  RunSubtestNoEnv("gwp_asan_integration.DISABLED_assert_gwp_asan_enabled");
+  RunSubtestNoEnv("gwp_asan_integration_DeathTest.DISABLED_assert_gwp_asan_enabled");
 }
 
 TEST(gwp_asan_integration, sysprops_persist_program_specific) {
@@ -191,7 +194,7 @@
   __system_property_set((std::string("persist.libc.debug.gwp_asan.max_allocs.") + basename).c_str(),
                         "40000");
 
-  RunSubtestNoEnv("gwp_asan_integration.DISABLED_assert_gwp_asan_enabled");
+  RunSubtestNoEnv("gwp_asan_integration_DeathTest.DISABLED_assert_gwp_asan_enabled");
 }
 
 TEST(gwp_asan_integration, sysprops_non_persist_overrides_persist) {
@@ -235,7 +238,7 @@
   __system_property_set("libc.debug.gwp_asan.process_sampling.system_default", "0");
   __system_property_set("libc.debug.gwp_asan.max_allocs.system_default", "0");
 
-  RunSubtestNoEnv("gwp_asan_integration.DISABLED_assert_gwp_asan_enabled");
+  RunSubtestNoEnv("gwp_asan_integration_DeathTest.DISABLED_assert_gwp_asan_enabled");
 }
 
 TEST(gwp_asan_integration, sysprops_can_disable) {
@@ -261,7 +264,7 @@
   __system_property_set("libc.debug.gwp_asan.process_sampling.system_default", "0");
   __system_property_set("libc.debug.gwp_asan.max_allocs.system_default", "0");
 
-  RunGwpAsanTest("gwp_asan_integration.DISABLED_assert_gwp_asan_enabled");
+  RunGwpAsanTest("gwp_asan_integration_DeathTest.DISABLED_assert_gwp_asan_enabled");
 }
 
 #endif  // defined(__BIONIC__)
diff --git a/tests/headers/posix/README.md b/tests/headers/posix/README.md
new file mode 100644
index 0000000..e7c171a
--- /dev/null
+++ b/tests/headers/posix/README.md
@@ -0,0 +1,8 @@
+# POSIX header tests
+
+These compile-time tests check that each POSIX header contains _at
+least_ what POSIX says. Every POSIX header file gets a corresponding
+`.c` file in this directory. Every constant, macro, type, struct field,
+and function in the header gets a corresponding assertion in the file.
+
+See `header_checks.h` for the implementation of the assertions.
diff --git a/tests/headers/posix/limits_h.c b/tests/headers/posix/limits_h.c
index 7e92d81..0ca80a5 100644
--- a/tests/headers/posix/limits_h.c
+++ b/tests/headers/posix/limits_h.c
@@ -130,10 +130,10 @@
   MACRO(CHARCLASS_NAME_MAX);
   MACRO(COLL_WEIGHTS_MAX);
   MACRO(EXPR_NEST_MAX);
-  MACRO(LINE_MAX);
   MACRO(NGROUPS_MAX);
   MACRO(RE_DUP_MAX);
 #endif
+  MACRO(LINE_MAX);
 
   MACRO_VALUE(_POSIX_CLOCKRES_MIN, 20000000);
 
diff --git a/tests/headers/posix/signal_h.c b/tests/headers/posix/signal_h.c
index c2e544e..82751f4 100644
--- a/tests/headers/posix/signal_h.c
+++ b/tests/headers/posix/signal_h.c
@@ -63,6 +63,10 @@
   MACRO(SIGEV_SIGNAL);
   MACRO(SIGEV_THREAD);
 
+#if !defined(__GLIBC__)  // Our glibc is too old.
+  MACRO(SIG2STR_MAX);
+#endif
+
   TYPE(union sigval);
   STRUCT_MEMBER(union sigval, int, sival_int);
   STRUCT_MEMBER(union sigval, void*, sival_ptr);
@@ -205,6 +209,9 @@
   FUNCTION(pthread_kill, int (*f)(pthread_t, int));
   FUNCTION(pthread_sigmask, int (*f)(int, const sigset_t*, sigset_t*));
   FUNCTION(raise, int (*f)(int));
+#if !defined(__GLIBC__)  // Our glibc is too old.
+  FUNCTION(sig2str, int (*f)(int, char*));
+#endif
   FUNCTION(sigaction, int (*f)(int, const struct sigaction*, struct sigaction*));
   FUNCTION(sigaddset, int (*f)(sigset_t*, int));
   FUNCTION(sigaltstack, int (*f)(const stack_t*, stack_t*));
@@ -226,4 +233,7 @@
   FUNCTION(sigtimedwait, int (*f)(const sigset_t*, siginfo_t*, const struct timespec*));
   FUNCTION(sigwait, int (*f)(const sigset_t*, int*));
   FUNCTION(sigwaitinfo, int (*f)(const sigset_t*, siginfo_t*));
+#if !defined(__GLIBC__)  // Our glibc is too old.
+  FUNCTION(str2sig, int (*f)(const char*, int*));
+#endif
 }
diff --git a/tests/headers/posix/stdatomic_h.c b/tests/headers/posix/stdatomic_h.c
new file mode 100644
index 0000000..05be859
--- /dev/null
+++ b/tests/headers/posix/stdatomic_h.c
@@ -0,0 +1,175 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *  * Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *  * Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in
+ *    the documentation and/or other materials provided with the
+ *    distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#include <stdatomic.h>
+
+#include "header_checks.h"
+
+static void stdatomic_h() {
+  TYPE(atomic_flag);
+  TYPE(atomic_bool);
+  TYPE(atomic_char);
+  TYPE(atomic_schar);
+  TYPE(atomic_uchar);
+  TYPE(atomic_short);
+  TYPE(atomic_ushort);
+  TYPE(atomic_int);
+  TYPE(atomic_uint);
+  TYPE(atomic_long);
+  TYPE(atomic_ulong);
+  TYPE(atomic_llong);
+  TYPE(atomic_ullong);
+#if !defined(__GLIBC__)
+  TYPE(atomic_char16_t);
+  TYPE(atomic_char32_t);
+#endif
+  TYPE(atomic_wchar_t);
+  TYPE(atomic_int_least8_t);
+  TYPE(atomic_uint_least8_t);
+  TYPE(atomic_int_least16_t);
+  TYPE(atomic_uint_least16_t);
+  TYPE(atomic_int_least32_t);
+  TYPE(atomic_uint_least32_t);
+  TYPE(atomic_int_least64_t);
+  TYPE(atomic_uint_least64_t);
+  TYPE(atomic_int_fast8_t);
+  TYPE(atomic_uint_fast8_t);
+  TYPE(atomic_int_fast16_t);
+  TYPE(atomic_uint_fast16_t);
+  TYPE(atomic_int_fast32_t);
+  TYPE(atomic_uint_fast32_t);
+  TYPE(atomic_int_fast64_t);
+  TYPE(atomic_uint_fast64_t);
+  TYPE(atomic_intptr_t);
+  TYPE(atomic_uintptr_t);
+  TYPE(atomic_size_t);
+  TYPE(atomic_ptrdiff_t);
+  TYPE(atomic_intmax_t);
+  TYPE(atomic_uintmax_t);
+
+  memory_order m1 = memory_order_relaxed;
+  memory_order m2 = memory_order_consume;
+  memory_order m3 = memory_order_acquire;
+  memory_order m4 = memory_order_release;
+  memory_order m5 = memory_order_acq_rel;
+  memory_order m6 = memory_order_seq_cst;
+
+  MACRO(ATOMIC_BOOL_LOCK_FREE);
+  MACRO(ATOMIC_CHAR_LOCK_FREE);
+  MACRO(ATOMIC_CHAR16_T_LOCK_FREE);
+  MACRO(ATOMIC_CHAR32_T_LOCK_FREE);
+  MACRO(ATOMIC_WCHAR_T_LOCK_FREE);
+  MACRO(ATOMIC_SHORT_LOCK_FREE);
+  MACRO(ATOMIC_INT_LOCK_FREE);
+  MACRO(ATOMIC_LONG_LOCK_FREE);
+  MACRO(ATOMIC_LLONG_LOCK_FREE);
+  MACRO(ATOMIC_POINTER_LOCK_FREE);
+
+  atomic_flag f = ATOMIC_FLAG_INIT;
+  atomic_int i = ATOMIC_VAR_INIT(123);
+
+  // TODO: remove this #if after the next toolchain update (http://b/374104004).
+#if !defined(__GLIBC__)
+  i = kill_dependency(i);
+#endif
+
+#if !defined(atomic_compare_exchange_strong)
+#error atomic_compare_exchange_strong
+#endif
+#if !defined(atomic_compare_exchange_strong_explicit)
+#error atomic_compare_exchange_strong_explicit
+#endif
+#if !defined(atomic_compare_exchange_weak)
+#error atomic_compare_exchange_weak
+#endif
+#if !defined(atomic_compare_exchange_weak_explicit)
+#error atomic_compare_exchange_weak_explicit
+#endif
+#if !defined(atomic_exchange)
+#error atomic_exchange
+#endif
+#if !defined(atomic_exchange_explicit)
+#error atomic_exchange_explicit
+#endif
+#if !defined(atomic_fetch_add)
+#error atomic_fetch_add
+#endif
+#if !defined(atomic_fetch_add_explicit)
+#error atomic_fetch_add_explicit
+#endif
+#if !defined(atomic_fetch_and)
+#error atomic_fetch_and
+#endif
+#if !defined(atomic_fetch_and_explicit)
+#error atomic_fetch_and_explicit
+#endif
+#if !defined(atomic_fetch_or)
+#error atomic_fetch_or
+#endif
+#if !defined(atomic_fetch_or_explicit)
+#error atomic_fetch_or_explicit
+#endif
+#if !defined(atomic_fetch_sub)
+#error atomic_fetch_sub
+#endif
+#if !defined(atomic_fetch_sub_explicit)
+#error atomic_fetch_sub_explicit
+#endif
+#if !defined(atomic_fetch_xor)
+#error atomic_fetch_xor
+#endif
+#if !defined(atomic_fetch_xor_explicit)
+#error atomic_fetch_xor_explicit
+#endif
+#if !defined(atomic_init)
+#error atomic_init
+#endif
+#if !defined(atomic_is_lock_free)
+#error atomic_is_lock_free
+#endif
+#if !defined(atomic_load)
+#error atomic_load
+#endif
+#if !defined(atomic_load_explicit)
+#error atomic_load_explicit
+#endif
+#if !defined(atomic_store)
+#error atomic_store
+#endif
+#if !defined(atomic_store_explicit)
+#error atomic_store_explicit
+#endif
+
+  FUNCTION(atomic_flag_clear, void (*f)(volatile atomic_flag*));
+  FUNCTION(atomic_flag_clear_explicit, void (*f)(volatile atomic_flag*, memory_order));
+  FUNCTION(atomic_flag_test_and_set, bool (*f)(volatile atomic_flag*));
+  FUNCTION(atomic_flag_test_and_set_explicit, bool (*f)(volatile atomic_flag*, memory_order));
+
+  FUNCTION(atomic_signal_fence, void (*f)(memory_order));
+  FUNCTION(atomic_thread_fence, void (*f)(memory_order));
+}
diff --git a/tests/headers/posix/stdbool_h.c b/tests/headers/posix/stdbool_h.c
index f891a73..830c33c 100644
--- a/tests/headers/posix/stdbool_h.c
+++ b/tests/headers/posix/stdbool_h.c
@@ -31,10 +31,8 @@
 #include "header_checks.h"
 
 static void stdbool_h() {
-#if !defined(bool)
-#error bool
-#endif
-  MACRO_VALUE(true, 1);
-  MACRO_VALUE(false, 0);
+  TYPE(bool);
+  bool t = true;
+  bool f = false;
   MACRO_VALUE(__bool_true_false_are_defined, 1);
 }
diff --git a/tests/headers/posix/stdlib_h.c b/tests/headers/posix/stdlib_h.c
index 52580cf..95769b4 100644
--- a/tests/headers/posix/stdlib_h.c
+++ b/tests/headers/posix/stdlib_h.c
@@ -112,6 +112,9 @@
   FUNCTION(ptsname, char* (*f)(int));
   FUNCTION(putenv, int (*f)(char*));
   FUNCTION(qsort, void (*f)(void*, size_t, size_t, int (*)(const void*, const void*)));
+#if !defined(__GLIBC__) // Our glibc is too old.
+  FUNCTION(qsort_r, void (*f)(void*, size_t, size_t, int (*)(const void*, const void*, void*), void*));
+#endif
   FUNCTION(rand, int (*f)(void));
   FUNCTION(rand_r, int (*f)(unsigned*));
   FUNCTION(random, long (*f)(void));
diff --git a/tests/headers/posix/termios_h.c b/tests/headers/posix/termios_h.c
index 1255c16..0a67eaa 100644
--- a/tests/headers/posix/termios_h.c
+++ b/tests/headers/posix/termios_h.c
@@ -42,6 +42,12 @@
   STRUCT_MEMBER(struct termios, tcflag_t, c_lflag);
   STRUCT_MEMBER_ARRAY(struct termios, cc_t/*[]*/, c_cc);
 
+#if !defined(__GLIBC__)  // Our glibc is too old.
+  TYPE(struct winsize);
+  STRUCT_MEMBER(struct winsize, unsigned short, ws_row);
+  STRUCT_MEMBER(struct winsize, unsigned short, ws_col);
+#endif
+
   MACRO(NCCS);
 
   MACRO(VEOF);
@@ -162,6 +168,12 @@
   FUNCTION(tcflush, int (*f)(int, int));
   FUNCTION(tcgetattr, int (*f)(int, struct termios*));
   FUNCTION(tcgetsid, pid_t (*f)(int));
+#if !defined(__GLIBC__)  // Our glibc is too old.
+  FUNCTION(tcgetwinsize, int (*f)(int, struct winsize*));
+#endif
   FUNCTION(tcsendbreak, int (*f)(int, int));
   FUNCTION(tcsetattr, int (*f)(int, int, const struct termios*));
+#if !defined(__GLIBC__)  // Our glibc is too old.
+  FUNCTION(tcsetwinsize, int (*f)(int, const struct winsize*));
+#endif
 }
diff --git a/tests/headers/posix/unistd_h.c b/tests/headers/posix/unistd_h.c
index 0b2cee5..f66609d 100644
--- a/tests/headers/posix/unistd_h.c
+++ b/tests/headers/posix/unistd_h.c
@@ -331,6 +331,9 @@
   FUNCTION(fdatasync, int (*f)(int));
   FUNCTION(fexecve, int (*f)(int, char* const[], char* const[]));
   FUNCTION(fork, pid_t (*f)(void));
+#if !defined(__GLIBC__) // Our glibc is too old.
+  FUNCTION(_Fork, pid_t (*f)(void));
+#endif
   FUNCTION(fpathconf, long (*f)(int, int));
   FUNCTION(fsync, int (*f)(int));
   FUNCTION(ftruncate, int (*f)(int, off_t));
diff --git a/tests/heap_tagging_level_test.cpp b/tests/heap_tagging_level_test.cpp
index 917be37..c0aa176 100644
--- a/tests/heap_tagging_level_test.cpp
+++ b/tests/heap_tagging_level_test.cpp
@@ -19,6 +19,8 @@
 #include <malloc.h>
 #include <sys/prctl.h>
 
+#include <android-base/silent_death_test.h>
+
 #if defined(__BIONIC__)
 #include "gtest_globals.h"
 #include "platform/bionic/mte.h"
@@ -44,7 +46,9 @@
 }
 #endif
 
-TEST(heap_tagging_level, tagged_pointer_dies) {
+using heap_tagging_level_DeathTest = SilentDeathTest;
+
+TEST_F(heap_tagging_level_DeathTest, tagged_pointer_dies) {
 #if defined(__BIONIC__)
   if (!KernelSupportsTaggedPointers()) {
     GTEST_SKIP() << "Kernel doesn't support tagged pointers.";
@@ -221,6 +225,8 @@
 enum class MemtagNote { NONE, ASYNC, SYNC };
 class MemtagNoteTest : public testing::TestWithParam<std::tuple<MemtagNote, bool>> {};
 
+static const char* kNoteSuffix[] = {"disabled", "async", "sync"};
+
 TEST_P(MemtagNoteTest, SEGV) {
 #if defined(__BIONIC__) && defined(__aarch64__)
   SKIP_WITH_NATIVE_BRIDGE;  // http://b/242170715
@@ -229,29 +235,22 @@
   }
   // Note that we do not check running_with_hwasan() - what matters here is whether the test binary
   // itself is built with HWASan.
-  bool withHWASAN = __has_feature(hwaddress_sanitizer);
   bool withMTE = getauxval(AT_HWCAP2) & HWCAP2_MTE;
 
-  const char* kNoteSuffix[] = {"disabled", "async", "sync"};
-  const char* kExpectedOutputHWASAN[] = {".*tag-mismatch.*", ".*tag-mismatch.*",
-                                         ".*tag-mismatch.*"};
   // Note that we do not check the exact si_code of the "async" variant, as it may be auto-upgraded
   // to asymm or even sync.
   const char* kExpectedOutputMTE[] = {"normal exit\n", "SEGV_MTE[AS]ERR\n", "SEGV_MTESERR\n"};
   const char* kExpectedOutputNonMTE[] = {"normal exit\n", "normal exit\n", "normal exit\n"};
-  const char** kExpectedOutput =
-      withHWASAN ? kExpectedOutputHWASAN : (withMTE ? kExpectedOutputMTE : kExpectedOutputNonMTE);
-  const int kExpectedExitStatus = withHWASAN ? -SIGABRT : 0;
+  const char** kExpectedOutput = withMTE ? kExpectedOutputMTE : kExpectedOutputNonMTE;
 
   MemtagNote note = std::get<0>(GetParam());
   bool isStatic = std::get<1>(GetParam());
   std::string helper_base = std::string("heap_tagging_") + (isStatic ? "static_" : "") +
                             kNoteSuffix[static_cast<int>(note)] + "_helper";
-  std::string helper = GetTestlibRoot() + "/" + helper_base;
-  chmod(helper.c_str(), 0755);
+  std::string helper = GetTestLibRoot() + "/" + helper_base;
   ExecTestHelper eth;
   eth.SetArgs({helper.c_str(), nullptr});
-  eth.Run([&]() { execve(helper.c_str(), eth.GetArgs(), eth.GetEnv()); }, kExpectedExitStatus,
+  eth.Run([&]() { execve(helper.c_str(), eth.GetArgs(), eth.GetEnv()); }, 0,
           kExpectedOutput[static_cast<int>(note)]);
 #else
   GTEST_SKIP() << "bionic/arm64 only";
@@ -261,4 +260,10 @@
 INSTANTIATE_TEST_SUITE_P(, MemtagNoteTest,
                          testing::Combine(testing::Values(MemtagNote::NONE, MemtagNote::ASYNC,
                                                           MemtagNote::SYNC),
-                                          testing::Bool()));
+                                          testing::Bool()),
+                         [](const ::testing::TestParamInfo<MemtagNoteTest::ParamType>& info) {
+                           MemtagNote note = std::get<0>(info.param);
+                           std::string s = kNoteSuffix[static_cast<int>(note)];
+                           if (std::get<1>(info.param)) s += "_static";
+                           return s;
+                         });
diff --git a/tests/hwasan_test.cpp b/tests/hwasan_test.cpp
index 5c21495..ddf84cb 100644
--- a/tests/hwasan_test.cpp
+++ b/tests/hwasan_test.cpp
@@ -1,17 +1,29 @@
 /*
  * Copyright (C) 2023 The Android Open Source Project
+ * All rights reserved.
  *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *  * Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *  * Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in
+ *    the documentation and/or other materials provided with the
+ *    distribution.
  *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
  */
 
 #include <dlfcn.h>
@@ -24,7 +36,18 @@
 
 using HwasanDeathTest = SilentDeathTest;
 
-TEST_F(HwasanDeathTest, UseAfterFree) {
+
+#ifdef HWASAN_TEST_STATIC
+#define MAYBE_DlopenAbsolutePath DISABLED_DlopenAbsolutePath
+// TODO(fmayer): figure out why uaf is misclassified as out of bounds for
+// static executables.
+#define MAYBE_UseAfterFree DISABLED_UseAfterFree
+#else
+#define MAYBE_DlopenAbsolutePath DlopenAbsolutePath
+#define MAYBE_UseAfterFree UseAfterFree
+#endif
+
+TEST_F(HwasanDeathTest, MAYBE_UseAfterFree) {
   EXPECT_DEATH(
       {
         void* m = malloc(1);
@@ -47,7 +70,7 @@
 }
 
 // Check whether dlopen of /foo/bar.so checks /foo/hwasan/bar.so first.
-TEST(HwasanTest, DlopenAbsolutePath) {
+TEST(HwasanTest, MAYBE_DlopenAbsolutePath) {
   std::string path = android::base::GetExecutableDirectory() + "/libtest_simple_hwasan.so";
   ASSERT_EQ(0, access(path.c_str(), F_OK));  // Verify test setup.
   std::string hwasan_path =
diff --git a/tests/iconv_test.cpp b/tests/iconv_test.cpp
index bd99000..9a2a46f 100644
--- a/tests/iconv_test.cpp
+++ b/tests/iconv_test.cpp
@@ -18,18 +18,20 @@
 
 #include <iconv.h>
 
+#include "utils.h"
+
 #define INVALID_ICONV_T reinterpret_cast<iconv_t>(-1)
 
 TEST(iconv, iconv_open_EINVAL) {
   errno = 0;
   ASSERT_EQ(INVALID_ICONV_T, iconv_open("silly", "silly"));
-  ASSERT_EQ(EINVAL, errno);
+  ASSERT_ERRNO(EINVAL);
   errno = 0;
   ASSERT_EQ(INVALID_ICONV_T, iconv_open("silly", "UTF-8"));
-  ASSERT_EQ(EINVAL, errno);
+  ASSERT_ERRNO(EINVAL);
   errno = 0;
   ASSERT_EQ(INVALID_ICONV_T, iconv_open("UTF-8", "silly"));
-  ASSERT_EQ(EINVAL, errno);
+  ASSERT_ERRNO(EINVAL);
 }
 
 TEST(iconv, iconv_open_comparator) {
@@ -44,10 +46,10 @@
   // "...but not "utf-80" or "ut8"."
   errno = 0;
   ASSERT_EQ(INVALID_ICONV_T, iconv_open("UTF-8", "utf-80"));
-  ASSERT_EQ(EINVAL, errno);
+  ASSERT_ERRNO(EINVAL);
   errno = 0;
   ASSERT_EQ(INVALID_ICONV_T, iconv_open("UTF-8", "ut80"));
-  ASSERT_EQ(EINVAL, errno);
+  ASSERT_ERRNO(EINVAL);
 }
 
 TEST(iconv, iconv_smoke) {
@@ -122,7 +124,7 @@
   // With "//IGNORE", we just skip them (but return failure).
   errno = 0;
   EXPECT_EQ(static_cast<size_t>(-1), iconv(c, &in, &in_bytes, &out, &out_bytes));
-  EXPECT_EQ(EILSEQ, errno);
+  EXPECT_ERRNO(EILSEQ);
 
   EXPECT_EQ('a', buf[0]);
   EXPECT_EQ('z', buf[1]);
@@ -149,7 +151,7 @@
   // The second input character isn't representable as ASCII, so we stop there.
   errno = 0;
   EXPECT_EQ(static_cast<size_t>(-1), iconv(c, &in, &in_bytes, &out, &out_bytes));
-  EXPECT_EQ(EILSEQ, errno);
+  EXPECT_ERRNO(EILSEQ);
 
   EXPECT_EQ('a', buf[0]);
   EXPECT_EQ(0, buf[1]);
@@ -175,13 +177,13 @@
   // The second input byte is a malformed character, so we stop there.
   errno = 0;
   EXPECT_EQ(static_cast<size_t>(-1), iconv(c, &in, &in_bytes, &out, &out_bytes));
-  EXPECT_EQ(EILSEQ, errno);
+  EXPECT_ERRNO(EILSEQ);
   EXPECT_EQ('\xd9', *in); // *in is left pointing to the start of the invalid sequence.
   ++in;
   --in_bytes;
   errno = 0;
   EXPECT_EQ(0U, iconv(c, &in, &in_bytes, &out, &out_bytes));
-  EXPECT_EQ(0, errno);
+  EXPECT_ERRNO(0);
 
   EXPECT_EQ('a', buf[0]);
   EXPECT_EQ('z', buf[1]);
@@ -208,7 +210,7 @@
   // The second input byte is just the start of a character, and we don't have any more bytes.
   errno = 0;
   EXPECT_EQ(static_cast<size_t>(-1), iconv(c, &in, &in_bytes, &out, &out_bytes));
-  EXPECT_EQ(EINVAL, errno);
+  EXPECT_ERRNO(EINVAL);
   EXPECT_EQ('\xd9', *in); // *in is left pointing to the start of the incomplete sequence.
 
   EXPECT_EQ('a', buf[0]);
@@ -236,7 +238,7 @@
   out_bytes = 1;
   errno = 0;
   EXPECT_EQ(static_cast<size_t>(-1), iconv(c, &in, &in_bytes, &out, &out_bytes));
-  EXPECT_EQ(E2BIG, errno);
+  EXPECT_ERRNO(E2BIG);
   EXPECT_EQ(2U, in_bytes);
   EXPECT_EQ(0U, out_bytes);
 
@@ -244,7 +246,7 @@
   out_bytes = 0;
   errno = 0;
   EXPECT_EQ(static_cast<size_t>(-1), iconv(c, &in, &in_bytes, &out, &out_bytes));
-  EXPECT_EQ(E2BIG, errno);
+  EXPECT_ERRNO(E2BIG);
   EXPECT_EQ(2U, in_bytes);
   EXPECT_EQ(0U, out_bytes);
 
@@ -252,7 +254,7 @@
   out_bytes = 1;
   errno = 0;
   EXPECT_EQ(static_cast<size_t>(-1), iconv(c, &in, &in_bytes, &out, &out_bytes));
-  EXPECT_EQ(E2BIG, errno);
+  EXPECT_ERRNO(E2BIG);
   EXPECT_EQ(1U, in_bytes);
   EXPECT_EQ(0U, out_bytes);
 
@@ -260,7 +262,7 @@
   out_bytes = 1;
   errno = 0;
   EXPECT_EQ(0U, iconv(c, &in, &in_bytes, &out, &out_bytes));
-  EXPECT_EQ(0, errno);
+  EXPECT_ERRNO(0);
   EXPECT_EQ(0U, in_bytes);
   EXPECT_EQ(0U, out_bytes);
 
@@ -279,13 +281,13 @@
   size_t out_bytes = 0;
   errno = 0;
   ASSERT_EQ(static_cast<size_t>(-1), iconv(INVALID_ICONV_T, &in, &in_bytes, &out, &out_bytes));
-  ASSERT_EQ(EBADF, errno);
+  ASSERT_ERRNO(EBADF);
 }
 
 TEST(iconv, iconv_close_invalid_converter_EBADF) {
   errno = 0;
   ASSERT_EQ(-1, iconv_close(INVALID_ICONV_T));
-  ASSERT_EQ(EBADF, errno);
+  ASSERT_ERRNO(EBADF);
 }
 
 static void RoundTrip(const char* dst_enc, const char* expected_bytes, size_t n) {
@@ -368,7 +370,7 @@
   char* out = reinterpret_cast<char*>(out_buf);
   errno = 0;
   ASSERT_EQ(static_cast<size_t>(-1), iconv(c, &in, &in_bytes, &out, &out_bytes));
-  EXPECT_EQ(expected_errno, errno);
+  EXPECT_ERRNO(expected_errno);
   EXPECT_EQ(0, iconv_close(c));
 }
 
@@ -442,13 +444,13 @@
   // Points to a null pointer...
   errno = 0;
   ASSERT_EQ(static_cast<size_t>(0), iconv(c, &in, &in_bytes, &out, &out_bytes));
-  EXPECT_EQ(0, errno);
+  EXPECT_ERRNO(0);
   EXPECT_EQ(sizeof(out_buf), out_bytes);
 
   // Is a null pointer...
   errno = 0;
   ASSERT_EQ(static_cast<size_t>(0), iconv(c, nullptr, &in_bytes, &out, &out_bytes));
-  EXPECT_EQ(0, errno);
+  EXPECT_ERRNO(0);
   EXPECT_EQ(sizeof(out_buf), out_bytes);
 
   // Is a null pointer and so is in_bytes. This isn't specified by POSIX, but
@@ -456,7 +458,7 @@
   // https://issuetracker.google.com/180598400
   errno = 0;
   ASSERT_EQ(static_cast<size_t>(0), iconv(c, nullptr, nullptr, &out, &out_bytes));
-  EXPECT_EQ(0, errno);
+  EXPECT_ERRNO(0);
   EXPECT_EQ(sizeof(out_buf), out_bytes);
 
   EXPECT_EQ(0, iconv_close(c));
diff --git a/tests/ifaddrs_test.cpp b/tests/ifaddrs_test.cpp
index 4b9d4d8..da64770 100644
--- a/tests/ifaddrs_test.cpp
+++ b/tests/ifaddrs_test.cpp
@@ -20,18 +20,23 @@
 
 #include <dirent.h>
 #include <fcntl.h>
-#include <linux/if_packet.h>
 #include <net/ethernet.h>
 #include <net/if.h>
 #include <netdb.h>
 #include <netinet/in.h>
 #include <sys/ioctl.h>
 
+// (glibc as of 2.37 has redefinitions if you include these before <net/if.h>.)
+#include <linux/if.h>
+#include <linux/if_packet.h>
+
 #include <algorithm>
 #include <map>
 #include <thread>
 #include <vector>
 
+#include "utils.h"
+
 TEST(ifaddrs, freeifaddrs_null) {
   freeifaddrs(nullptr);
 }
@@ -132,7 +137,7 @@
   sockaddr_in* sock = reinterpret_cast<sockaddr_in*>(&ifr.ifr_addr);
   in_addr_t addr = sock->sin_addr.s_addr;
 
-  EXPECT_TRUE(addrs.find(addr) != addrs.end()) << if_name << ' ' << std::hex << ntohl(addr);
+  EXPECT_TRUE(addrs.contains(addr)) << if_name << ' ' << std::hex << ntohl(addr);
 }
 
 TEST(ifaddrs, getifaddrs_INET) {
@@ -209,15 +214,9 @@
   if ((flags & IFF_PORTSEL) != 0) result += " PORTSEL";
   if ((flags & IFF_AUTOMEDIA) != 0) result += " AUTOMEDIA";
   if ((flags & IFF_DYNAMIC) != 0) result += " DYNAMIC";
-#if defined(IFF_LOWER_UP)
   if ((flags & IFF_LOWER_UP) != 0) result += " LOWER_UP";
-#endif
-#if defined(IFF_DORMANT)
   if ((flags & IFF_DORMANT) != 0) result += " DORMANT";
-#endif
-#if defined(IFF_ECHO)
   if ((flags & IFF_ECHO) != 0) result += " ECHO";
-#endif
   return result;
 }
 
@@ -294,7 +293,7 @@
   while (true) {
     int fd = open("/dev/null", O_RDONLY|O_CLOEXEC);
     if (fd == -1) {
-      ASSERT_EQ(EMFILE, errno);
+      ASSERT_ERRNO(EMFILE);
       break;
     }
     fds.push_back(fd);
@@ -302,7 +301,7 @@
 
   ifaddrs* addrs;
   EXPECT_EQ(-1, getifaddrs(&addrs));
-  EXPECT_EQ(EMFILE, errno);
+  EXPECT_ERRNO(EMFILE);
 
   for (int fd : fds) close(fd);
 }
diff --git a/tests/ifunc_test.cpp b/tests/ifunc_test.cpp
index e3c437e..09d987d 100644
--- a/tests/ifunc_test.cpp
+++ b/tests/ifunc_test.cpp
@@ -60,6 +60,26 @@
   return ret42;
 }
 
+#elif defined(__riscv)
+
+#include <sys/hwprobe.h>
+
+static uint64_t g_hwcap;
+static __riscv_hwprobe_t g_hwprobe_ptr;
+static void* g_null;
+
+static riscv_hwprobe g_hwprobes[] = {{.key = RISCV_HWPROBE_KEY_IMA_EXT_0}};
+
+extern "C" fn_ptr_t hwcap_resolver(uint64_t hwcap, __riscv_hwprobe_t hwprobe_ptr, void* null) {
+  g_hwcap = hwcap;
+  g_hwprobe_ptr = hwprobe_ptr;
+  g_null = null;
+
+  // Ensure that __riscv_hwprobe() can be called from an ifunc.
+  if ((*hwprobe_ptr)(g_hwprobes, 1, 0, nullptr, 0) != 0) return nullptr;
+  return ret42;
+}
+
 #else
 
 extern "C" fn_ptr_t hwcap_resolver() {
@@ -81,6 +101,16 @@
   EXPECT_EQ(getauxval(AT_HWCAP2), g_arg._hwcap2);
 #elif defined(__arm__)
   EXPECT_EQ(getauxval(AT_HWCAP), g_hwcap);
+#elif defined(__riscv)
+  printf("hwcap=%lx hwprobe_ptr=%p (__riscv_hwprobe=%p) null=%p\n", g_hwcap, g_hwprobe_ptr,
+         __riscv_hwprobe, g_null);
+
+  EXPECT_EQ(getauxval(AT_HWCAP), g_hwcap);
+  EXPECT_EQ(nullptr, g_null);
+
+  riscv_hwprobe probes[] = {{.key = RISCV_HWPROBE_KEY_IMA_EXT_0}};
+  ASSERT_EQ(0, __riscv_hwprobe(probes, 1, 0, nullptr, 0));
+  EXPECT_EQ(probes[0].value, g_hwprobes[0].value);
 #endif
 }
 
diff --git a/tests/inttypes_test.cpp b/tests/inttypes_test.cpp
index f7dfdb5..70163e6 100644
--- a/tests/inttypes_test.cpp
+++ b/tests/inttypes_test.cpp
@@ -20,6 +20,8 @@
 #include <gtest/gtest.h>
 #include <stdio.h>
 
+#include "utils.h"
+
 #define PRINTF_TYPED(FMT_SUFFIX, TYPE_SUFFIX) \
   do { \
     char buf[512]; \
@@ -124,13 +126,13 @@
 TEST(inttypes, strtoimax_EINVAL) {
   errno = 0;
   strtoimax("123", nullptr, -1);
-  ASSERT_EQ(EINVAL, errno);
+  ASSERT_ERRNO(EINVAL);
   errno = 0;
   strtoimax("123", nullptr, 1);
-  ASSERT_EQ(EINVAL, errno);
+  ASSERT_ERRNO(EINVAL);
   errno = 0;
   strtoimax("123", nullptr, 37);
-  ASSERT_EQ(EINVAL, errno);
+  ASSERT_ERRNO(EINVAL);
 }
 
 TEST(inttypes, strtoumax_dec) {
@@ -154,37 +156,37 @@
 TEST(inttypes, strtoumax_EINVAL) {
   errno = 0;
   strtoumax("123", nullptr, -1);
-  ASSERT_EQ(EINVAL, errno);
+  ASSERT_ERRNO(EINVAL);
   errno = 0;
   strtoumax("123", nullptr, 1);
-  ASSERT_EQ(EINVAL, errno);
+  ASSERT_ERRNO(EINVAL);
   errno = 0;
   strtoumax("123", nullptr, 37);
-  ASSERT_EQ(EINVAL, errno);
+  ASSERT_ERRNO(EINVAL);
 }
 
 TEST(inttypes, wcstoimax_EINVAL) {
   errno = 0;
   wcstoimax(L"123", nullptr, -1);
-  ASSERT_EQ(EINVAL, errno);
+  ASSERT_ERRNO(EINVAL);
   errno = 0;
   wcstoimax(L"123", nullptr, 1);
-  ASSERT_EQ(EINVAL, errno);
+  ASSERT_ERRNO(EINVAL);
   errno = 0;
   wcstoimax(L"123", nullptr, 37);
-  ASSERT_EQ(EINVAL, errno);
+  ASSERT_ERRNO(EINVAL);
 }
 
 TEST(inttypes, wcstoumax_EINVAL) {
   errno = 0;
   wcstoumax(L"123", nullptr, -1);
-  ASSERT_EQ(EINVAL, errno);
+  ASSERT_ERRNO(EINVAL);
   errno = 0;
   wcstoumax(L"123", nullptr, 1);
-  ASSERT_EQ(EINVAL, errno);
+  ASSERT_ERRNO(EINVAL);
   errno = 0;
   wcstoumax(L"123", nullptr, 37);
-  ASSERT_EQ(EINVAL, errno);
+  ASSERT_ERRNO(EINVAL);
 }
 
 TEST(inttypes, div) {
diff --git a/tests/leak_test.cpp b/tests/leak_test.cpp
index 0a881e1..bdb0ca9 100644
--- a/tests/leak_test.cpp
+++ b/tests/leak_test.cpp
@@ -48,7 +48,7 @@
         if (syscall(__NR_tgkill, getpid(), tids[i], 0) == 0) {
           alive = true;
         } else {
-          EXPECT_EQ(errno, ESRCH);
+          EXPECT_ERRNO(ESRCH);
           tids[i] = 0;  // Skip in next loop.
         }
       }
diff --git a/tests/libs/Android.bp b/tests/libs/Android.bp
index a2fbe55..5b86e78 100644
--- a/tests/libs/Android.bp
+++ b/tests/libs/Android.bp
@@ -15,6 +15,7 @@
 //
 
 package {
+    default_team: "trendy_team_native_tools_libraries",
     default_applicable_licenses: ["bionic_tests_license"],
 }
 
@@ -29,11 +30,11 @@
         "-Wl,--rpath,${ORIGIN}",
         "-Wl,--enable-new-dtags",
     ],
+    static_libs: ["libbase"],
     relative_install_path: "bionic-loader-test-libs",
     gtest: false,
     sanitize: {
         address: false,
-        fuzzer: false,
     },
     stl: "libc++_static",
     target: {
@@ -47,20 +48,28 @@
 }
 
 // -----------------------------------------------------------------------------
+// Test library ELFs for linker page size related tests
+// -----------------------------------------------------------------------------
+cc_test_library {
+    name: "libtest_elf_max_page_size_4kib",
+    defaults: ["bionic_testlib_defaults"],
+    srcs: ["elf_max_page_size.c"],
+    ldflags: ["-z max-page-size=0x1000"],
+}
+
+// -----------------------------------------------------------------------------
 // Libraries and helper binaries for ELF TLS
 // -----------------------------------------------------------------------------
 cc_test_library {
     name: "libtest_elftls_shared_var",
     defaults: ["bionic_testlib_defaults"],
     srcs: ["elftls_shared_var.cpp"],
-    cflags: ["-fno-emulated-tls"],
 }
 
 cc_test_library {
     name: "libtest_elftls_shared_var_ie",
     defaults: ["bionic_testlib_defaults"],
     srcs: ["elftls_shared_var_ie.cpp"],
-    cflags: ["-fno-emulated-tls"],
     shared_libs: ["libtest_elftls_shared_var"],
 }
 
@@ -68,7 +77,6 @@
     name: "libtest_elftls_tprel",
     defaults: ["bionic_testlib_defaults"],
     srcs: ["elftls_tprel.cpp"],
-    cflags: ["-fno-emulated-tls"],
 }
 
 cc_test {
@@ -82,32 +90,27 @@
     name: "libtest_elftls_dynamic",
     defaults: ["bionic_testlib_defaults"],
     srcs: ["elftls_dynamic.cpp"],
-    cflags: ["-fno-emulated-tls"],
     shared_libs: ["libtest_elftls_shared_var"],
 }
 
 cc_test {
-   name: "thread_exit_cb_helper",
-   defaults: ["bionic_testlib_defaults"],
-   srcs: ["thread_exit_cb_helper.cpp"],
-   cflags: ["-fno-emulated-tls"],
+    name: "thread_exit_cb_helper",
+    defaults: ["bionic_testlib_defaults"],
+    srcs: ["thread_exit_cb_helper.cpp"],
 }
 
 cc_test {
-   name: "tls_properties_helper",
-   defaults: ["bionic_testlib_defaults"],
-   srcs: ["tls_properties_helper.cpp"],
-   cflags: ["-fno-emulated-tls"],
-   shared_libs: ["libtest_elftls_shared_var"],
+    name: "tls_properties_helper",
+    defaults: ["bionic_testlib_defaults"],
+    srcs: ["tls_properties_helper.cpp"],
+    shared_libs: ["libtest_elftls_shared_var"],
 }
 
-
 cc_test_library {
     name: "libtest_elftls_dynamic_filler_1",
     defaults: ["bionic_testlib_defaults"],
     srcs: ["elftls_dynamic_filler.cpp"],
     cflags: [
-        "-fno-emulated-tls",
         "-DTLS_FILLER=100",
     ],
 }
@@ -117,7 +120,6 @@
     defaults: ["bionic_testlib_defaults"],
     srcs: ["elftls_dynamic_filler.cpp"],
     cflags: [
-        "-fno-emulated-tls",
         "-DTLS_FILLER=200",
     ],
 }
@@ -127,11 +129,57 @@
     defaults: ["bionic_testlib_defaults"],
     srcs: ["elftls_dynamic_filler.cpp"],
     cflags: [
-        "-fno-emulated-tls",
         "-DTLS_FILLER=300",
     ],
 }
 
+cc_test_library {
+    name: "libtest_elftls_dynamic_filler_4",
+    defaults: ["bionic_testlib_defaults"],
+    srcs: ["elftls_dynamic_filler.cpp"],
+    cflags: [
+        "-DTLS_FILLER=400",
+    ],
+}
+
+cc_test_library {
+    name: "libtest_elftls_dynamic_filler_5",
+    defaults: ["bionic_testlib_defaults"],
+    srcs: ["elftls_dynamic_filler.cpp"],
+    cflags: [
+        "-DTLS_FILLER=500",
+    ],
+}
+
+cc_test {
+    name: "elftls_dtv_resize_helper",
+    defaults: [
+        "bionic_testlib_defaults",
+        "bionic_targets_only",
+    ],
+    srcs: ["elftls_dtv_resize_helper.cpp"],
+    include_dirs: [
+        "bionic/libc",
+    ],
+    static_libs: [
+        "libbase",
+    ],
+}
+
+cc_test {
+    name: "elftls_align_test_helper",
+    defaults: ["bionic_testlib_defaults"],
+    srcs: ["elftls_align_test_helper.cpp"],
+    stl: "none", // avoid including extra TLS variables in the executable
+}
+
+cc_test {
+    name: "elftls_skew_align_test_helper",
+    defaults: ["bionic_testlib_defaults"],
+    srcs: ["elftls_skew_align_test_helper.cpp"],
+    stl: "none", // avoid including extra TLS variables in the executable
+}
+
 // -----------------------------------------------------------------------------
 // Library to test gnu-styled hash
 // -----------------------------------------------------------------------------
@@ -243,6 +291,61 @@
 }
 
 // -----------------------------------------------------------------------------
+// Libraries and binaries used by memtag_stack_dlopen_test tests
+// -----------------------------------------------------------------------------
+cc_test_library {
+    name: "libtest_simple_memtag_stack",
+    sanitize: {
+        memtag_stack: true,
+    },
+    srcs: ["dlopen_testlib_simple.cpp"],
+}
+
+cc_test_library {
+    name: "libtest_depends_on_simple_memtag_stack",
+    sanitize: {
+        memtag_stack: false,
+    },
+    shared_libs: [
+        "libtest_simple_memtag_stack",
+    ],
+    srcs: ["dlopen_testlib_depends_on_simple.cpp"],
+}
+
+cc_binary {
+    name: "testbinary_is_stack_mte_after_dlopen",
+    sanitize: {
+        memtag_stack: false,
+        memtag_heap: true,
+    },
+    srcs: ["testbinary_is_stack_mte_after_dlopen.cpp"],
+}
+
+cc_binary {
+    name: "testbinary_depends_on_simple_memtag_stack",
+    sanitize: {
+        memtag_stack: false,
+        memtag_heap: true,
+    },
+    shared_libs: [
+        "libtest_simple_memtag_stack",
+    ],
+    srcs: ["testbinary_is_stack_mte.cpp"],
+}
+
+cc_binary {
+    name: "testbinary_depends_on_depends_on_simple_memtag_stack",
+    sanitize: {
+        memtag_stack: false,
+        memtag_heap: true,
+    },
+    shared_libs: [
+        "libtest_depends_on_simple_memtag_stack",
+    ],
+    srcs: ["testbinary_is_stack_mte.cpp"],
+}
+
+// -----------------------------------------------------------------------------
 // Libraries used by hwasan_test
 // -----------------------------------------------------------------------------
 cc_test_library {
@@ -645,7 +748,6 @@
     ],
     sanitize: {
         address: false,
-        fuzzer: false,
     },
     stl: "libc++_static",
     target: {
@@ -1502,7 +1604,7 @@
     shared_libs: ["ld_config_test_helper_lib2"],
     relative_install_path: "bionic-loader-test-libs/ns2",
     // Mark the library DF_1_GLOBAL so it is added to every linker namespace.
-    ldflags: ["-Wl,-z,global"]
+    ldflags: ["-Wl,-z,global"],
 }
 
 cc_test_library {
@@ -1551,7 +1653,6 @@
     srcs: ["segment_gap_inner.cpp"],
 }
 
-
 // -----------------------------------------------------------------------------
 // Check that we support all kinds of relocations: regular, "relocation packer",
 // and both the old and new SHT_RELR constants.
@@ -1600,121 +1701,153 @@
 }
 
 cc_defaults {
-  name: "bionic_targets_only",
-  enabled: false,
-  target: {
-     android: {
-       enabled: true,
-     },
-     linux_bionic: {
-       enabled: true,
-     },
-   },
+    name: "bionic_targets_only",
+    enabled: false,
+    target: {
+        android: {
+            enabled: true,
+        },
+        linux_bionic: {
+            enabled: true,
+        },
+    },
 }
 
 cc_test {
-   name: "heap_tagging_sync_helper",
-   defaults: ["bionic_testlib_defaults", "bionic_targets_only"],
-   srcs: ["heap_tagging_helper.cpp"],
-   sanitize: {
-     memtag_heap: true,
-     diag: {
-       memtag_heap: true,
-     },
-   },
+    name: "heap_tagging_sync_helper",
+    defaults: [
+        "bionic_testlib_defaults",
+        "bionic_targets_only",
+    ],
+    srcs: ["heap_tagging_helper.cpp"],
+    sanitize: {
+        memtag_heap: true,
+        diag: {
+            memtag_heap: true,
+        },
+        hwaddress: false,
+    },
 }
 
 cc_test {
-   name: "heap_tagging_async_helper",
-   defaults: ["bionic_testlib_defaults", "bionic_targets_only"],
-   srcs: ["heap_tagging_helper.cpp"],
-   sanitize: {
-     memtag_heap: true,
-     diag: {
-       memtag_heap: false,
-     },
-   },
+    name: "heap_tagging_async_helper",
+    defaults: [
+        "bionic_testlib_defaults",
+        "bionic_targets_only",
+    ],
+    srcs: ["heap_tagging_helper.cpp"],
+    sanitize: {
+        memtag_heap: true,
+        diag: {
+            memtag_heap: false,
+        },
+        hwaddress: false,
+    },
 }
 
 cc_test {
-   name: "heap_tagging_disabled_helper",
-   defaults: ["bionic_testlib_defaults", "bionic_targets_only"],
-   srcs: ["heap_tagging_helper.cpp"],
-   sanitize: {
-     memtag_heap: false,
-   },
+    name: "heap_tagging_disabled_helper",
+    defaults: [
+        "bionic_testlib_defaults",
+        "bionic_targets_only",
+    ],
+    srcs: ["heap_tagging_helper.cpp"],
+    sanitize: {
+        memtag_heap: false,
+        hwaddress: false,
+    },
 }
 
 cc_test {
-   name: "heap_tagging_static_sync_helper",
-   defaults: ["bionic_testlib_defaults", "bionic_targets_only"],
-   srcs: ["heap_tagging_helper.cpp"],
-   static_executable: true,
-   sanitize: {
-     memtag_heap: true,
-     diag: {
-       memtag_heap: true,
-     },
-   },
+    name: "heap_tagging_static_sync_helper",
+    defaults: [
+        "bionic_testlib_defaults",
+        "bionic_targets_only",
+    ],
+    srcs: ["heap_tagging_helper.cpp"],
+    static_executable: true,
+    sanitize: {
+        memtag_heap: true,
+        diag: {
+            memtag_heap: true,
+        },
+        hwaddress: false,
+    },
 }
 
 cc_test {
-   name: "heap_tagging_static_async_helper",
-   defaults: ["bionic_testlib_defaults", "bionic_targets_only"],
-   srcs: ["heap_tagging_helper.cpp"],
-   static_executable: true,
-   sanitize: {
-     memtag_heap: true,
-     diag: {
-       memtag_heap: false,
-     },
-   },
+    name: "heap_tagging_static_async_helper",
+    defaults: [
+        "bionic_testlib_defaults",
+        "bionic_targets_only",
+    ],
+    srcs: ["heap_tagging_helper.cpp"],
+    static_executable: true,
+    sanitize: {
+        memtag_heap: true,
+        diag: {
+            memtag_heap: false,
+        },
+        hwaddress: false,
+    },
 }
 
 cc_test {
-   name: "heap_tagging_static_disabled_helper",
-   defaults: ["bionic_testlib_defaults", "bionic_targets_only"],
-   srcs: ["heap_tagging_helper.cpp"],
-   static_executable: true,
-   sanitize: {
-     memtag_heap: false,
-   },
+    name: "heap_tagging_static_disabled_helper",
+    defaults: [
+        "bionic_testlib_defaults",
+        "bionic_targets_only",
+    ],
+    srcs: ["heap_tagging_helper.cpp"],
+    static_executable: true,
+    sanitize: {
+        memtag_heap: false,
+        hwaddress: false,
+    },
 }
 
 cc_test {
-   name: "stack_tagging_helper",
-   defaults: ["bionic_testlib_defaults", "bionic_targets_only"],
-   srcs: ["stack_tagging_helper.cpp"],
-   sanitize: {
-     memtag_heap: true,
-     memtag_stack: true,
-     diag: {
-       memtag_heap: true,
-     },
-   },
-   header_libs: ["bionic_libc_platform_headers"],
-   cflags: ["-fexceptions"],
+    name: "stack_tagging_helper",
+    defaults: [
+        "bionic_testlib_defaults",
+        "bionic_targets_only",
+    ],
+    srcs: ["stack_tagging_helper.cpp"],
+    sanitize: {
+        memtag_heap: true,
+        memtag_stack: true,
+        diag: {
+            memtag_heap: true,
+        },
+        hwaddress: false,
+    },
+    header_libs: ["bionic_libc_platform_headers"],
+    cflags: ["-fexceptions"],
 }
 
 cc_test {
-   name: "stack_tagging_static_helper",
-   defaults: ["bionic_testlib_defaults", "bionic_targets_only"],
-   srcs: ["stack_tagging_helper.cpp"],
-   static_executable: true,
-   sanitize: {
-     memtag_heap: true,
-     memtag_stack: true,
-     diag: {
-       memtag_heap: true,
-     },
-   },
-   header_libs: ["bionic_libc_platform_headers"],
-   cflags: ["-fexceptions"],
+    name: "stack_tagging_static_helper",
+    defaults: [
+        "bionic_testlib_defaults",
+        "bionic_targets_only",
+    ],
+    srcs: ["stack_tagging_helper.cpp"],
+    static_executable: true,
+    sanitize: {
+        memtag_heap: true,
+        memtag_stack: true,
+        diag: {
+            memtag_heap: true,
+        },
+        hwaddress: false,
+    },
+    header_libs: ["bionic_libc_platform_headers"],
+    cflags: ["-fexceptions"],
 }
 
 cc_genrule {
     name: "libdlext_test_zip_zipaligned",
-     out: ["bionic-loader-test-libs/libdlext_test_zip/libdlext_test_zip_zipaligned.zip"],
+    out: ["bionic-loader-test-libs/libdlext_test_zip/libdlext_test_zip_zipaligned.zip"],
     tools: [
         "soong_zip",
         "bionic_tests_zipalign",
@@ -1729,12 +1862,8 @@
         " cp $(in) $(genDir)/zipdir/libdir/ &&" +
         " touch $(genDir)/zipdir/empty_file.txt &&" +
         " $(location soong_zip) -o $(out).unaligned -L 0 -C $(genDir)/zipdir -D $(genDir)/zipdir &&" +
-        " $(location bionic_tests_zipalign) 4096 $(out).unaligned $(out)",
+        " $(location bionic_tests_zipalign) 16384 $(out).unaligned $(out)",
 
-    bazel_module: {
-        // Depends on soong_zip, which is not available yet.
-        bp2build_available: false
-    },
 }
 
 cc_genrule {
@@ -1772,10 +1901,91 @@
         " cp $(location :libtest_dt_runpath_y) $(genDir)/zipdir/libdir/dt_runpath_y/$$PRIVATE_LIB_OR_LIB64 &&" +
         " touch $(genDir)/zipdir/empty_file.txt &&" +
         " $(location soong_zip) -o $(out).unaligned -L 0 -C $(genDir)/zipdir -D $(genDir)/zipdir &&" +
-        " $(location bionic_tests_zipalign) 4096 $(out).unaligned $(out)",
+        " $(location bionic_tests_zipalign) 16384 $(out).unaligned $(out)",
+}
 
-    bazel_module: {
-        // Depends on soong_zip, which is not available yet.
-        bp2build_available: false
+cc_defaults {
+    name: "memtag_globals_defaults",
+    defaults: [
+        "bionic_testlib_defaults",
+        "bionic_targets_only"
+    ],
+    cflags: [
+        "-Wno-array-bounds",
+        "-Wno-unused-variable",
+    ],
+    header_libs: ["bionic_libc_platform_headers"],
+    sanitize: {
+        hwaddress: false,
+        memtag_heap: true,
+        memtag_globals: true,
+        diag: {
+            memtag_heap: true,
+        }
+    },
+}
+
+cc_test_library {
+    name: "memtag_globals_dso",
+    defaults: [ "memtag_globals_defaults" ],
+    srcs: ["memtag_globals_dso.cpp"],
+}
+
+cc_test {
+    name: "memtag_globals_binary",
+    defaults: [ "memtag_globals_defaults" ],
+    srcs: ["memtag_globals_binary.cpp"],
+    shared_libs: [ "memtag_globals_dso" ],
+    // This binary is used in the bionic-unit-tests as a data dependency, and is
+    // in the same folder as memtag_globals_dso. But, the default cc_test rules
+    // make this binary (when just explicitly built and shoved in
+    // /data/nativetest64/) end up in a subfolder called
+    // 'memtag_globals_binary'. When this happens, the explicit build fails to
+    // find the DSO because the default rpath is just ${ORIGIN}, and because we
+    // want this to be usable both from bionic-unit-tests and explicit builds,
+    // let's just not put it in a subdirectory.
+    no_named_install_directory: true,
+}
+
+cc_test {
+    name: "memtag_globals_binary_static",
+    defaults: [ "memtag_globals_defaults" ],
+    srcs: ["memtag_globals_binary.cpp"],
+    static_libs: [ "memtag_globals_dso" ],
+    no_named_install_directory: true,
+    static_executable: true,
+}
+
+// This is a regression test for b/314038442, where binaries built *without* MTE
+// globals would have out-of-bounds RELR relocations, which where then `ldg`'d,
+// which resulted in linker crashes.
+cc_test {
+  name: "mte_globals_relr_regression_test_b_314038442",
+  defaults: [
+        "bionic_testlib_defaults",
+        "bionic_targets_only"
+    ],
+    cflags: [ "-Wno-array-bounds" ],
+    ldflags: [ "-Wl,--pack-dyn-relocs=relr" ],
+    srcs: ["mte_globals_relr_regression_test_b_314038442.cpp"],
+    no_named_install_directory: true,
+    sanitize: {
+        memtag_globals: false,
+    },
+}
+
+// Same test as above, but also for MTE globals, just for the sake of it.
+cc_test {
+  name: "mte_globals_relr_regression_test_b_314038442_mte",
+  defaults: [
+        "bionic_testlib_defaults",
+        "bionic_targets_only"
+    ],
+    cflags: [ "-Wno-array-bounds" ],
+    ldflags: [ "-Wl,--pack-dyn-relocs=relr" ],
+    srcs: ["mte_globals_relr_regression_test_b_314038442.cpp"],
+    no_named_install_directory: true,
+    sanitize: {
+      memtag_globals: true,
     },
 }
diff --git a/tests/libs/CHECK.h b/tests/libs/CHECK.h
new file mode 100644
index 0000000..a590233
--- /dev/null
+++ b/tests/libs/CHECK.h
@@ -0,0 +1,34 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#pragma once
+
+// Tests proper can use libbase, but libraries for testing dlopen()
+// should probably avoid dependencies other than ones we're specifically
+// trying to test.
+
+#include <stdio.h>
+#include <stdlib.h>
+
+static inline void check_failure(const char* file, int line, const char* function,
+                                 const char* failed_expression) {
+  fprintf(stderr, "%s:%d: %s: assertion \"%s\" failed\n", file, line, function, failed_expression);
+  fflush(NULL);
+  abort();
+}
+
+#define CHECK(e) \
+  ((e) ? static_cast<void>(0) : check_failure(__FILE__, __LINE__, __PRETTY_FUNCTION__, #e))
diff --git a/tests/libs/cfi_test_helper.cpp b/tests/libs/cfi_test_helper.cpp
index c1a7b6d..71cdc89 100644
--- a/tests/libs/cfi_test_helper.cpp
+++ b/tests/libs/cfi_test_helper.cpp
@@ -14,11 +14,10 @@
  * limitations under the License.
  */
 
-#include <assert.h>
 #include <stdint.h>
 #include <stdlib.h>
 
-#include "libs_utils.h"
+#include "CHECK.h"
 
 // This library is built for all targets, including host tests, so __cfi_slowpath may not be
 // present. But it is only used in the bionic loader tests.
diff --git a/tests/libs/cfi_test_helper2.cpp b/tests/libs/cfi_test_helper2.cpp
index 11a6036..d7cd495 100644
--- a/tests/libs/cfi_test_helper2.cpp
+++ b/tests/libs/cfi_test_helper2.cpp
@@ -14,10 +14,9 @@
  * limitations under the License.
  */
 
-#include <assert.h>
 #include <dlfcn.h>
 
-#include "libs_utils.h"
+#include "CHECK.h"
 
 int main(void) {
   void* handle;
diff --git a/tests/libs/dlopen_b.cpp b/tests/libs/dlopen_b.cpp
index 092c96c..5b36242 100644
--- a/tests/libs/dlopen_b.cpp
+++ b/tests/libs/dlopen_b.cpp
@@ -1,8 +1,9 @@
 #include <dlfcn.h>
-extern "C" void *dlopen_b() {
-  // Work around for http://b/20049306, which isn't going to be fixed.
-  static int defeat_sibling_call_optimization = 0;
 
+// Work around for http://b/20049306, which isn't going to be fixed.
+int defeat_sibling_call_optimization = 0;
+
+extern "C" void* dlopen_b() {
   // This is supposed to succeed because this library has DT_RUNPATH
   // for libtest_dt_runpath_x.so which should be taken into account
   // by dlopen.
diff --git a/libm/fenv-access.h b/tests/libs/dlopen_testlib_depends_on_simple.cpp
similarity index 84%
copy from libm/fenv-access.h
copy to tests/libs/dlopen_testlib_depends_on_simple.cpp
index 7acb34d..3652be8 100644
--- a/libm/fenv-access.h
+++ b/tests/libs/dlopen_testlib_depends_on_simple.cpp
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2021 The Android Open Source Project
+ * Copyright (C) 2024 The Android Open Source Project
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -26,8 +26,11 @@
  * SUCH DAMAGE.
  */
 
-#pragma once
+#include <stdint.h>
+#include <stdlib.h>
 
-#if defined(__x86_64__) || defined(__i386__)
-#pragma STDC FENV_ACCESS ON
-#endif
+extern "C" bool dlopen_testlib_simple_func();
+
+extern "C" bool dlopen_testlib_call_simple_func() {
+  return dlopen_testlib_simple_func();
+}
diff --git a/tests/libs/dlopen_testlib_simple_hwasan.cpp b/tests/libs/dlopen_testlib_simple_hwasan.cpp
index b92e05f..ddf8a31 100644
--- a/tests/libs/dlopen_testlib_simple_hwasan.cpp
+++ b/tests/libs/dlopen_testlib_simple_hwasan.cpp
@@ -1,17 +1,29 @@
 /*
  * Copyright (C) 2023 The Android Open Source Project
+ * All rights reserved.
  *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *  * Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *  * Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in
+ *    the documentation and/or other materials provided with the
+ *    distribution.
  *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
  */
 
 #include <stdint.h>
diff --git a/libc/bionic/strnlen.c b/tests/libs/elf_max_page_size.c
similarity index 74%
copy from libc/bionic/strnlen.c
copy to tests/libs/elf_max_page_size.c
index 2c6f60a..24c7e89 100644
--- a/libc/bionic/strnlen.c
+++ b/tests/libs/elf_max_page_size.c
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2008 The Android Open Source Project
+ * Copyright (C) 2024 The Android Open Source Project
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -25,14 +25,26 @@
  * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  */
-#include <string.h>
 
-size_t  strnlen(const char*  str, size_t  maxlen)
-{
-    char*  p = memchr(str, 0, maxlen);
+#include "elf_max_page_size.h"
 
-    if (p == NULL)
-        return maxlen;
-    else
-        return (p - str);
+const int ro0 = RO0;
+const int ro1 = RO1;
+int rw0 = RW0;
+
+/* Force some padding alignment */
+int rw1 __attribute__((aligned(0x10000))) = RW1;
+
+int bss0, bss1;
+
+int* const prw0 = &rw0;
+
+int loader_test_func(void) {
+  rw0 += RW0_INCREMENT;
+  rw1 += RW1_INCREMENT;
+
+  bss0 += BSS0_INCREMENT;
+  bss1 += BSS1_INCREMENT;
+
+  return ro0 + ro1 + rw0 + rw1 + bss0 + bss1 + *prw0;
 }
diff --git a/libm/fenv-access.h b/tests/libs/elf_max_page_size.h
similarity index 72%
copy from libm/fenv-access.h
copy to tests/libs/elf_max_page_size.h
index 7acb34d..846a8b6 100644
--- a/libm/fenv-access.h
+++ b/tests/libs/elf_max_page_size.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2021 The Android Open Source Project
+ * Copyright (C) 2024 The Android Open Source Project
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -26,8 +26,20 @@
  * SUCH DAMAGE.
  */
 
-#pragma once
+#define RO0 23
+#define RO1 234
+#define RW0 2345
+#define RW1 23456
+#define BSS0 0
+#define BSS1 0
 
-#if defined(__x86_64__) || defined(__i386__)
-#pragma STDC FENV_ACCESS ON
-#endif
+#define RW0_INCREMENT 12
+#define RW1_INCREMENT 123
+#define BSS0_INCREMENT 1234
+#define BSS1_INCREMENT 12345
+
+#define TEST_RESULT_BASE (RO0 + RO1 + RW0 + RW1 + BSS0 + BSS1 + RW0)
+#define TEST_RESULT_INCREMENT \
+  (RW0_INCREMENT + RW1_INCREMENT + BSS0_INCREMENT + BSS1_INCREMENT + RW0_INCREMENT)
+
+typedef int (*loader_test_func_t)(void);
diff --git a/tests/libs/elftls_align_test_helper.cpp b/tests/libs/elftls_align_test_helper.cpp
new file mode 100644
index 0000000..72e81da
--- /dev/null
+++ b/tests/libs/elftls_align_test_helper.cpp
@@ -0,0 +1,63 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *  * Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *  * Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in
+ *    the documentation and/or other materials provided with the
+ *    distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#include <stdint.h>
+
+#include "CHECK.h"
+
+struct AlignedVar {
+  int field;
+  char buffer[0x1000 - sizeof(int)];
+} __attribute__((aligned(0x400)));
+
+struct SmallVar {
+  int field;
+  char buffer[0xeee - sizeof(int)];
+};
+
+// The single .tdata section should have a size that isn't a multiple of its
+// alignment.
+__thread struct AlignedVar var1 = {13};
+__thread struct AlignedVar var2 = {17};
+__thread struct SmallVar var3 = {19};
+
+static uintptr_t var_addr(void* value) {
+  // Maybe the optimizer would assume that the variable has the alignment it is
+  // declared with.
+  asm volatile("" : "+r,m"(value) : : "memory");
+  return reinterpret_cast<uintptr_t>(value);
+}
+
+int main() {
+  CHECK((var_addr(&var1) & 0x3ff) == 0);
+  CHECK((var_addr(&var2) & 0x3ff) == 0);
+  CHECK(var1.field == 13);
+  CHECK(var2.field == 17);
+  CHECK(var3.field == 19);
+  return 0;
+}
diff --git a/tests/libs/elftls_dtv_resize_helper.cpp b/tests/libs/elftls_dtv_resize_helper.cpp
new file mode 100644
index 0000000..7fb6fb5
--- /dev/null
+++ b/tests/libs/elftls_dtv_resize_helper.cpp
@@ -0,0 +1,222 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *  * Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *  * Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in
+ *    the documentation and/or other materials provided with the
+ *    distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#include <dlfcn.h>
+#include <stdio.h>
+#include <stdlib.h>
+
+#include <functional>
+#include <iostream>
+
+#include "bionic/pthread_internal.h"
+
+constexpr bool kDumpModulesForDebugging = false;
+
+// The old external/libcxx doesn't have operator<< for nullptr.
+// TODO(b/175635923): Remove this hack after upgrading libc++.
+template <class T>
+T fix_nullptr(T&& arg) {
+  return arg;
+}
+void* fix_nullptr(nullptr_t arg) {
+  return static_cast<void*>(arg);
+}
+
+template <class Val1, class Val2, class Compare>
+void check(int line, const char* val1_expr, Val1&& val1, const char* val2_expr, Val2&& val2,
+           Compare compare) {
+  if (!compare(val1, val2)) {
+    std::cerr << __FILE__ << ":" << line << ": assertion failed: LHS(" << val1_expr << ") is "
+              << fix_nullptr(val1) << ", RHS(" << val2_expr << ") is " << fix_nullptr(val2) << "\n"
+              << std::flush;
+    abort();
+  }
+}
+
+#define ASSERT_EQ(val1, val2) check(__LINE__, #val1, val1, #val2, val2, std::equal_to())
+#define ASSERT_NE(val1, val2) check(__LINE__, #val1, val1, #val2, val2, std::not_equal_to())
+#define ASSERT_LT(val1, val2) check(__LINE__, #val1, val1, #val2, val2, std::less())
+#define ASSERT_LE(val1, val2) check(__LINE__, #val1, val1, #val2, val2, std::less_equal())
+
+static size_t highest_loaded_modid() {
+  size_t result = 0;
+  auto update_result = [](struct dl_phdr_info* info, size_t size __unused, void* data) {
+    size_t& result = *reinterpret_cast<size_t*>(data);
+    if (kDumpModulesForDebugging) {
+      fprintf(stderr, "module %s: TLS modid %zu\n", info->dlpi_name, info->dlpi_tls_modid);
+    }
+    result = std::max(result, info->dlpi_tls_modid);
+    return 0;
+  };
+  dl_iterate_phdr(update_result, &result);
+  return result;
+}
+
+static TlsDtv* dtv() {
+  return __get_tcb_dtv(__get_bionic_tcb());
+}
+
+static size_t highest_modid_in_dtv() {
+  TlsDtv* current_dtv = dtv();
+  size_t result = 0;
+  for (size_t i = 0; i < current_dtv->count; ++i) {
+    if (current_dtv->modules[i] != nullptr) {
+      result = __tls_module_idx_to_id(i);
+    }
+  }
+  return result;
+}
+
+// Unused, but ensures that the test executable has a TLS segment. With a
+// new-enough libc++_static.a, the test executable will tend to has a TLS
+// segment to hold the libc++ EH globals pointer.
+__thread int g_tls_var_placeholder = 42;
+
+int main() {
+  // Prevent this TLS variable from being optimized away.
+  ASSERT_EQ(42, g_tls_var_placeholder);
+
+  auto load_lib = [](const char* soname) {
+    void* lib = dlopen(soname, RTLD_LOCAL | RTLD_NOW);
+    ASSERT_NE(nullptr, lib);
+    auto func = reinterpret_cast<int (*)()>(dlsym(lib, "bump"));
+    ASSERT_NE(nullptr, func);
+    return func;
+  };
+
+  static_assert(sizeof(TlsDtv) == 3 * sizeof(void*),
+                "This test assumes that the Dtv has a 3-word header");
+
+  // Initially there are 2-4 modules:
+  //  - 1: test executable
+  //  - 2: libc
+  //  - 3: libc++ (when using a new-enough libc++)
+  //  - 4: libclang_rt.hwasan (when running with HWASan)
+  size_t first_filler_modid = highest_loaded_modid() + 1;
+  ASSERT_LE(2, highest_loaded_modid());
+  ASSERT_LE(highest_loaded_modid(), 4);
+
+  // The initial DTV is an empty DTV with no generation and a size of 0.
+  TlsDtv* zero_dtv = dtv();
+  ASSERT_EQ(0u, zero_dtv->count);
+  ASSERT_EQ(nullptr, zero_dtv->next);
+  ASSERT_EQ(kTlsGenerationNone, zero_dtv->generation);
+
+  // Load a module. The DTV is still empty unless the TLS variable is accessed.
+  auto func1 = load_lib("libtest_elftls_dynamic_filler_1.so");
+  ASSERT_EQ(zero_dtv, dtv());
+  ASSERT_EQ(first_filler_modid, highest_loaded_modid());
+
+  // After accessing a TLS variable, the DTV should be initialized. It should be
+  // 8 words in size, with a 5-entry capacity.
+  ASSERT_EQ(101, func1());
+  TlsDtv* initial_dtv = dtv();
+  ASSERT_EQ(5u, dtv()->count);
+  ASSERT_EQ(zero_dtv, initial_dtv->next);
+  ASSERT_LT(0u, initial_dtv->generation);
+  ASSERT_EQ(first_filler_modid, highest_modid_in_dtv());
+  ASSERT_NE(nullptr, initial_dtv->modules[__tls_module_id_to_idx(first_filler_modid)]);
+
+  size_t current_generation = initial_dtv->generation;
+
+  // Fill the rest of the DTV up. (i.e. Ensure that exactly 5 modules with TLS
+  // segments are loaded.)
+  auto fill_entry = [&](size_t modid, const char* soname, int tls_var_value) {
+    if (highest_modid_in_dtv() == modid - 1) {
+      auto func = load_lib(soname);
+
+      // Loading the module doesn't affect the DTV yet.
+      ASSERT_EQ(initial_dtv, dtv());
+      ASSERT_EQ(modid, highest_loaded_modid());
+      ASSERT_EQ(modid - 1, highest_modid_in_dtv());
+      ASSERT_EQ(current_generation, initial_dtv->generation);
+
+      // Access the TLS variable, which will allocate it in the DTV.
+      ASSERT_EQ(tls_var_value, func());
+
+      // Verify allocation and a bumped generation.
+      ASSERT_EQ(initial_dtv, dtv());
+      ASSERT_EQ(modid, highest_modid_in_dtv());
+      ASSERT_LT(current_generation, initial_dtv->generation);
+      current_generation = initial_dtv->generation;
+    }
+  };
+
+  fill_entry(4u, "libtest_elftls_dynamic_filler_2.so", 201);
+  fill_entry(5u, "libtest_elftls_dynamic_filler_3.so", 301);
+  ASSERT_EQ(5u, highest_modid_in_dtv());
+
+  // Load module 6, which will require doubling the size of the DTV.
+  auto func4 = load_lib("libtest_elftls_dynamic_filler_4.so");
+  ASSERT_EQ(6u, highest_loaded_modid());
+  ASSERT_EQ(5u, highest_modid_in_dtv());
+  ASSERT_EQ(initial_dtv, dtv());
+
+  // Access a TLS variable from the first filler module.
+  ASSERT_EQ(102, func1());
+  ASSERT_EQ(5u, highest_modid_in_dtv());
+#if defined(__aarch64__) || defined(__riscv)
+  // The arm64 and riscv64 TLSDESC resolver doesn't update the DTV if it is new enough for
+  // the given access.
+  ASSERT_EQ(initial_dtv, dtv());
+  ASSERT_EQ(5u, dtv()->count);
+  ASSERT_EQ(current_generation, dtv()->generation);
+#else
+  // __tls_get_addr updates the DTV anytime the generation counter changes, but
+  // the highest modid in the DTV is still 5, because module 6 hasn't been
+  // allocated yet.
+  ASSERT_NE(initial_dtv, dtv());
+  ASSERT_EQ(13u, dtv()->count);
+  ASSERT_LT(current_generation, dtv()->generation);
+#endif
+
+  // Accessing the TLS variable in the latest module will always expand the DTV.
+  ASSERT_EQ(401, func4());
+  TlsDtv* new_dtv = dtv();
+  ASSERT_NE(initial_dtv, new_dtv);
+  ASSERT_EQ(initial_dtv, new_dtv->next);
+  ASSERT_EQ(13u, new_dtv->count);
+  ASSERT_LT(current_generation, new_dtv->generation);
+  ASSERT_EQ(6u, highest_modid_in_dtv());
+  current_generation = new_dtv->generation;
+
+  // Load one more filler, module 7.
+  auto func5 = load_lib("libtest_elftls_dynamic_filler_5.so");
+  ASSERT_EQ(103, func1());
+  ASSERT_EQ(402, func4());
+  ASSERT_EQ(6u, highest_modid_in_dtv());
+  ASSERT_EQ(501, func5());
+  ASSERT_EQ(7u, highest_modid_in_dtv());
+
+  // Verify that no new DTV has been allocated.
+  ASSERT_EQ(new_dtv, dtv());
+  ASSERT_EQ(13u, new_dtv->count);
+  ASSERT_LT(current_generation, new_dtv->generation);
+
+  return 0;
+}
diff --git a/tests/libs/elftls_dynamic.cpp b/tests/libs/elftls_dynamic.cpp
index 2500484..df3ad75 100644
--- a/tests/libs/elftls_dynamic.cpp
+++ b/tests/libs/elftls_dynamic.cpp
@@ -66,6 +66,18 @@
   return ++local_var_1 + ++local_var_2;
 }
 
+extern "C" int get_local_var1() {
+  return local_var_1;
+}
+
+extern "C" int* get_local_var1_addr() {
+  return &local_var_1;
+}
+
+extern "C" int get_local_var2() {
+  return local_var_2;
+}
+
 __attribute__((weak)) extern "C" __thread int missing_weak_dyn_tls;
 
 extern "C" int* missing_weak_dyn_tls_addr() {
diff --git a/tests/libs/elftls_skew_align_test_helper.cpp b/tests/libs/elftls_skew_align_test_helper.cpp
new file mode 100644
index 0000000..f7f082d
--- /dev/null
+++ b/tests/libs/elftls_skew_align_test_helper.cpp
@@ -0,0 +1,74 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *  * Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *  * Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in
+ *    the documentation and/or other materials provided with the
+ *    distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+// LLD tries not to generate a PT_TLS segment where (p_vaddr % p_align) is
+// non-zero. It can still do so if the p_align values are greater than a page.
+
+#include <stdint.h>
+#include <unistd.h>
+
+#include "CHECK.h"
+
+struct SmallVar {
+  int field;
+  char buffer[0x100 - sizeof(int)];
+};
+
+struct AlignedVar {
+  int field;
+  char buffer[0x20000 - sizeof(int)];
+} __attribute__((aligned(0x20000)));
+
+__thread struct SmallVar var1 = {13};
+__thread struct SmallVar var2 = {17};
+__thread struct AlignedVar var3;
+__thread struct AlignedVar var4;
+
+static uintptr_t var_addr(void* value) {
+  // Maybe the optimizer would assume that the variable has the alignment it is
+  // declared with.
+  asm volatile("" : "+r,m"(value) : : "memory");
+  return reinterpret_cast<uintptr_t>(value);
+}
+
+int main() {
+  // Bionic only allocates ELF TLS blocks with up to page alignment.
+  CHECK((var_addr(&var3) & (getpagesize() - 1)) == 0);
+  CHECK((var_addr(&var4) & (getpagesize() - 1)) == 0);
+
+  // TODO: These TLS accesses are broken with the current version of LLD. See
+  // https://github.com/llvm/llvm-project/issues/84743.
+#if !defined(__riscv)
+  CHECK(var1.field == 13);
+  CHECK(var2.field == 17);
+#endif
+
+  CHECK(var3.field == 0);
+  CHECK(var4.field == 0);
+  return 0;
+}
diff --git a/tests/libs/heap_tagging_helper.cpp b/tests/libs/heap_tagging_helper.cpp
index ed5601a..7aad392 100644
--- a/tests/libs/heap_tagging_helper.cpp
+++ b/tests/libs/heap_tagging_helper.cpp
@@ -16,12 +16,15 @@
 
 #include <signal.h>
 #include <stdio.h>
+#include <stdlib.h>
 #include <sys/auxv.h>
 #include <sys/cdefs.h>
 #include <sys/mman.h>
 #include <unistd.h>
 #include <memory>
 
+#include <android-base/stringprintf.h>
+
 void action(int signo, siginfo_t* info __unused, void*) {
 #ifdef __ANDROID__
   if (signo == 11 && info->si_code == SEGV_MTEAERR) {
@@ -89,6 +92,13 @@
   }
 #endif  // __aarch64__
 
+  // In fact, make sure that there are no tagged mappings at all.
+  auto cmd = android::base::StringPrintf("cat /proc/%d/smaps | grep -E 'VmFlags:.* mt'", getpid());
+  if (system(cmd.c_str()) == 0) {
+    fprintf(stderr, "unexpected PROT_MTE mappings found\n");
+    return 1;
+  }
+
   fprintf(stderr, "normal exit\n");
   return 0;
 }
diff --git a/tests/libs/libs_utils.h b/tests/libs/libs_utils.h
deleted file mode 100644
index 7dae241..0000000
--- a/tests/libs/libs_utils.h
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- * Copyright (C) 2017 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef LIBS_UTILS_H
-#define LIBS_UTILS_H
-
-#include <assert.h>
-#include <stdio.h>
-#include <stdlib.h>
-
-#define CHECK(e) \
-    ((e) ? static_cast<void>(0) : __assert2(__FILE__, __LINE__, __PRETTY_FUNCTION__, #e))
-
-#endif  // LIBS_UTILS_H
diff --git a/libm/fenv-access.h b/tests/libs/memtag_globals.h
similarity index 67%
copy from libm/fenv-access.h
copy to tests/libs/memtag_globals.h
index 7acb34d..a03abae 100644
--- a/libm/fenv-access.h
+++ b/tests/libs/memtag_globals.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2021 The Android Open Source Project
+ * Copyright (C) 2024 The Android Open Source Project
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -26,8 +26,18 @@
  * SUCH DAMAGE.
  */
 
-#pragma once
+#include <utility>
+#include <vector>
 
-#if defined(__x86_64__) || defined(__i386__)
-#pragma STDC FENV_ACCESS ON
-#endif
+void check_tagged(const void* a);
+void check_untagged(const void* a);
+void check_matching_tags(const void* a, const void* b);
+void check_eq(const void* a, const void* b);
+
+void dso_check_assertions(bool enforce_tagged);
+void dso_print_variables();
+
+void print_variable_address(const char* name, const void* ptr);
+void print_variables(const char* header,
+                     const std::vector<std::pair<const char*, const void*>>& tagged_variables,
+                     const std::vector<std::pair<const char*, const void*>>& untagged_variables);
diff --git a/tests/libs/memtag_globals_binary.cpp b/tests/libs/memtag_globals_binary.cpp
new file mode 100644
index 0000000..9248728
--- /dev/null
+++ b/tests/libs/memtag_globals_binary.cpp
@@ -0,0 +1,195 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *  * Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *  * Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in
+ *    the documentation and/or other materials provided with the
+ *    distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#include <stdint.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+#include <string>
+#include <vector>
+
+#include "memtag_globals.h"
+
+// Adapted from the LLD test suite: lld/test/ELF/Inputs/aarch64-memtag-globals.s
+
+/// Global variables defined here, of various semantics.
+char global[30] = {};
+__attribute__((no_sanitize("memtag"))) int global_untagged = 0;
+const int const_global = 0;
+static const int hidden_const_global = 0;
+static char hidden_global[12] = {};
+__attribute__((visibility("hidden"))) int hidden_attr_global = 0;
+__attribute__((visibility("hidden"))) const int hidden_attr_const_global = 0;
+
+/// Should be untagged.
+__thread int tls_global;
+__thread static int hidden_tls_global;
+
+/// Tagged, from the other file.
+extern int global_extern;
+/// Untagged, from the other file.
+extern __attribute__((no_sanitize("memtag"))) int global_extern_untagged;
+/// Tagged here, but untagged in the definition found in the sister objfile
+/// (explicitly).
+extern int global_extern_untagged_definition_but_tagged_import;
+
+/// ABS64 relocations. Also, forces symtab entries for local and external
+/// globals.
+char* pointer_to_global = &global[0];
+char* pointer_inside_global = &global[17];
+char* pointer_to_global_end = &global[30];
+char* pointer_past_global_end = &global[48];
+int* pointer_to_global_untagged = &global_untagged;
+const int* pointer_to_const_global = &const_global;
+/// RELATIVE relocations.
+const int* pointer_to_hidden_const_global = &hidden_const_global;
+char* pointer_to_hidden_global = &hidden_global[0];
+int* pointer_to_hidden_attr_global = &hidden_attr_global;
+const int* pointer_to_hidden_attr_const_global = &hidden_attr_const_global;
+/// RELATIVE relocations with special AArch64 MemtagABI semantics, with the
+/// offset ('12' or '16') encoded in the place.
+char* pointer_to_hidden_global_end = &hidden_global[12];
+char* pointer_past_hidden_global_end = &hidden_global[16];
+/// ABS64 relocations.
+int* pointer_to_global_extern = &global_extern;
+int* pointer_to_global_extern_untagged = &global_extern_untagged;
+int* pointer_to_global_extern_untagged_definition_but_tagged_import =
+    &global_extern_untagged_definition_but_tagged_import;
+
+// Force materialization of these globals into the symtab.
+int* get_address_to_tls_global() {
+  return &tls_global;
+}
+int* get_address_to_hidden_tls_global() {
+  return &hidden_tls_global;
+}
+
+static const std::vector<std::pair<const char*, const void*>>& get_expected_tagged_vars() {
+  static std::vector<std::pair<const char*, const void*>> expected_tagged_vars = {
+      {"global", &global},
+      {"pointer_inside_global", pointer_inside_global},
+      {"pointer_to_global_end", pointer_to_global_end},
+      {"pointer_past_global_end", pointer_past_global_end},
+      {"hidden_global", &hidden_global},
+      {"hidden_attr_global", &hidden_attr_global},
+      {"global_extern", &global_extern},
+  };
+  return expected_tagged_vars;
+}
+
+static const std::vector<std::pair<const char*, const void*>>& get_expected_untagged_vars() {
+  static std::vector<std::pair<const char*, const void*>> expected_untagged_vars = {
+      {"global_extern_untagged", &global_extern_untagged},
+      {"global_extern_untagged_definition_but_tagged_import",
+       &global_extern_untagged_definition_but_tagged_import},
+      {"global_untagged", &global_untagged},
+      {"const_global", &const_global},
+      {"hidden_const_global", &hidden_const_global},
+      {"hidden_attr_const_global", &hidden_attr_const_global},
+      {"tls_global", &tls_global},
+      {"hidden_tls_global", &hidden_tls_global},
+  };
+  return expected_untagged_vars;
+}
+
+void exe_print_variables() {
+  print_variables("  Variables accessible from the binary:\n", get_expected_tagged_vars(),
+                  get_expected_untagged_vars());
+}
+
+// Dump the addresses of the global variables to stderr
+void dso_print();
+void dso_print_others();
+
+void exe_check_assertions(bool check_pointers_are_tagged) {
+  // Check that non-const variables are writeable.
+  *pointer_to_global = 0;
+  *pointer_inside_global = 0;
+  *(pointer_to_global_end - 1) = 0;
+  *pointer_to_global_untagged = 0;
+  *pointer_to_hidden_global = 0;
+  *pointer_to_hidden_attr_global = 0;
+  *(pointer_to_hidden_global_end - 1) = 0;
+  *pointer_to_global_extern = 0;
+  *pointer_to_global_extern_untagged = 0;
+  *pointer_to_global_extern_untagged_definition_but_tagged_import = 0;
+
+  if (check_pointers_are_tagged) {
+    for (const auto& [_, pointer] : get_expected_tagged_vars()) {
+      check_tagged(pointer);
+    }
+  }
+
+  for (const auto& [_, pointer] : get_expected_untagged_vars()) {
+    check_untagged(pointer);
+  }
+
+  check_matching_tags(pointer_to_global, pointer_inside_global);
+  check_matching_tags(pointer_to_global, pointer_to_global_end);
+  check_matching_tags(pointer_to_global, pointer_past_global_end);
+  check_eq(pointer_inside_global, pointer_to_global + 17);
+  check_eq(pointer_to_global_end, pointer_to_global + 30);
+  check_eq(pointer_past_global_end, pointer_to_global + 48);
+
+  check_matching_tags(pointer_to_hidden_global, pointer_to_hidden_global_end);
+  check_matching_tags(pointer_to_hidden_global, pointer_past_hidden_global_end);
+  check_eq(pointer_to_hidden_global_end, pointer_to_hidden_global + 12);
+  check_eq(pointer_past_hidden_global_end, pointer_to_hidden_global + 16);
+}
+
+void crash() {
+  *pointer_past_global_end = 0;
+}
+
+int main(int argc, char** argv) {
+  bool check_pointers_are_tagged = false;
+  // For an MTE-capable device, provide argv[1] == '1' to enable the assertions
+  // that pointers should be tagged.
+  if (argc >= 2 && argv[1][0] == '1') {
+    check_pointers_are_tagged = true;
+  }
+
+  char* heap_ptr = static_cast<char*>(malloc(1));
+  print_variable_address("heap address", heap_ptr);
+  *heap_ptr = 0;
+  if (check_pointers_are_tagged) check_tagged(heap_ptr);
+  free(heap_ptr);
+
+  exe_print_variables();
+  dso_print_variables();
+
+  exe_check_assertions(check_pointers_are_tagged);
+  dso_check_assertions(check_pointers_are_tagged);
+
+  printf("Assertions were passed. Now doing a global-buffer-overflow.\n");
+  fflush(stdout);
+  crash();
+  printf("global-buffer-overflow went uncaught.\n");
+  return 0;
+}
diff --git a/tests/libs/memtag_globals_dso.cpp b/tests/libs/memtag_globals_dso.cpp
new file mode 100644
index 0000000..9ed264e
--- /dev/null
+++ b/tests/libs/memtag_globals_dso.cpp
@@ -0,0 +1,165 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *  * Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *  * Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in
+ *    the documentation and/or other materials provided with the
+ *    distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#include <stdint.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <vector>
+
+#include "memtag_globals.h"
+
+// Adapted from the LLD test suite: lld/test/ELF/Inputs/aarch64-memtag-globals.s
+
+int global_extern;
+static int global_extern_hidden;
+__attribute__((no_sanitize("memtag"))) int global_extern_untagged;
+__attribute__((no_sanitize("memtag"))) int global_extern_untagged_definition_but_tagged_import;
+
+void assertion_failure() {
+  exit(1);
+}
+
+void check_tagged(const void* a) {
+  uintptr_t a_uptr = reinterpret_cast<uintptr_t>(a);
+#if defined(__aarch64__)
+  if ((a_uptr >> 56) == 0) {
+    fprintf(stderr, "**********************************\n");
+    fprintf(stderr, "Failed assertion:\n");
+    fprintf(stderr, "  tag(0x%zx) != 0\n", a_uptr);
+    fprintf(stderr, "**********************************\n");
+
+    assertion_failure();
+  }
+#endif  // defined(__aarch64__)
+}
+
+void check_untagged(const void* a) {
+  uintptr_t a_uptr = reinterpret_cast<uintptr_t>(a);
+#if defined(__aarch64__)
+  if ((a_uptr >> 56) != 0) {
+    fprintf(stderr, "**********************************\n");
+    fprintf(stderr, "Failed assertion:\n");
+    fprintf(stderr, "  tag(0x%zx) == 0\n", a_uptr);
+    fprintf(stderr, "**********************************\n");
+
+    assertion_failure();
+  }
+#endif  // defined(__aarch64__)
+}
+
+void check_matching_tags(const void* a, const void* b) {
+  uintptr_t a_uptr = reinterpret_cast<uintptr_t>(a);
+  uintptr_t b_uptr = reinterpret_cast<uintptr_t>(b);
+#if defined(__aarch64__)
+  if (a_uptr >> 56 != b_uptr >> 56) {
+    fprintf(stderr, "**********************************\n");
+    fprintf(stderr, "Failed assertion:\n");
+    fprintf(stderr, "  tag(0x%zx) != tag(0x%zx)\n", a_uptr, b_uptr);
+    fprintf(stderr, "**********************************\n");
+
+    assertion_failure();
+  }
+#endif  // defined(__aarch64__)
+}
+
+void check_eq(const void* a, const void* b) {
+  if (a != b) {
+    fprintf(stderr, "**********************************\n");
+    fprintf(stderr, "Failed assertion:\n");
+    fprintf(stderr, "  %p != %p\n", a, b);
+    fprintf(stderr, "**********************************\n");
+
+    assertion_failure();
+  }
+}
+
+#define LONGEST_VARIABLE_NAME "51"
+void print_variable_address(const char* name, const void* ptr) {
+  printf("%" LONGEST_VARIABLE_NAME "s: %16p\n", name, ptr);
+}
+
+static const std::vector<std::pair<const char*, const void*>>& get_expected_tagged_vars() {
+  static std::vector<std::pair<const char*, const void*>> expected_tagged_vars = {
+      {"global_extern", &global_extern},
+      {"global_extern_hidden", &global_extern_hidden},
+  };
+  return expected_tagged_vars;
+}
+
+static const std::vector<std::pair<const char*, const void*>>& get_expected_untagged_vars() {
+  static std::vector<std::pair<const char*, const void*>> expected_untagged_vars = {
+      {"global_extern_untagged", &global_extern_untagged},
+      {"global_extern_untagged_definition_but_tagged_import",
+       &global_extern_untagged_definition_but_tagged_import},
+  };
+  return expected_untagged_vars;
+}
+
+void dso_print_variables() {
+  print_variables("  Variables declared in the DSO:\n", get_expected_tagged_vars(),
+                  get_expected_untagged_vars());
+}
+
+void print_variables(const char* header,
+                     const std::vector<std::pair<const char*, const void*>>& tagged_variables,
+                     const std::vector<std::pair<const char*, const void*>>& untagged_variables) {
+  printf("==========================================================\n");
+  printf("%s", header);
+  printf("==========================================================\n");
+  printf(" Variables expected to be tagged:\n");
+  printf("----------------------------------------------------------\n");
+  for (const auto& [name, pointer] : tagged_variables) {
+    print_variable_address(name, pointer);
+  }
+
+  printf("\n----------------------------------------------------------\n");
+  printf(" Variables expected to be untagged:\n");
+  printf("----------------------------------------------------------\n");
+  for (const auto& [name, pointer] : untagged_variables) {
+    print_variable_address(name, pointer);
+  }
+  printf("\n");
+}
+
+void dso_check_assertions(bool check_pointers_are_tagged) {
+  // Check that non-const variables are writeable.
+  global_extern = 0;
+  global_extern_hidden = 0;
+  global_extern_untagged = 0;
+  global_extern_untagged_definition_but_tagged_import = 0;
+
+  if (check_pointers_are_tagged) {
+    for (const auto& [_, pointer] : get_expected_tagged_vars()) {
+      check_tagged(pointer);
+    }
+  }
+
+  for (const auto& [_, pointer] : get_expected_untagged_vars()) {
+    check_untagged(pointer);
+  }
+}
diff --git a/libc/bionic/sched_cpucount.c b/tests/libs/mte_globals_relr_regression_test_b_314038442.cpp
similarity index 64%
copy from libc/bionic/sched_cpucount.c
copy to tests/libs/mte_globals_relr_regression_test_b_314038442.cpp
index 6f66589..20bbba9 100644
--- a/libc/bionic/sched_cpucount.c
+++ b/tests/libs/mte_globals_relr_regression_test_b_314038442.cpp
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2010 The Android Open Source Project
+ * Copyright (C) 2024 The Android Open Source Project
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -25,17 +25,31 @@
  * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  */
-#define _GNU_SOURCE 1
-#include <sched.h>
 
-int __sched_cpucount(size_t setsize, const cpu_set_t* set) {
-  int nn = 0;
-  int nn_max = setsize / sizeof(__CPU_BITTYPE);
-  int count = 0;
+#include <stdint.h>
+#include <stdio.h>
 
-  for ( ; nn < nn_max; nn++ ) {
-    count += __builtin_popcountl(set->__bits[nn]);
+static volatile char array[0x10000];
+volatile char* volatile oob_ptr = &array[0x111111111];
+
+unsigned char get_tag(__attribute__((unused)) volatile void* ptr) {
+#if defined(__aarch64__)
+  return static_cast<unsigned char>(reinterpret_cast<uintptr_t>(ptr) >> 56) & 0xf;
+#else   // !defined(__aarch64__)
+  return 0;
+#endif  // defined(__aarch64__)
+}
+
+int main() {
+  printf("Program loaded successfully. %p %p. ", array, oob_ptr);
+  if (get_tag(array) != get_tag(oob_ptr)) {
+    printf("Tags are mismatched!\n");
+    return 1;
   }
-
-  return count;
+  if (get_tag(array) == 0) {
+    printf("Tags are zero!\n");
+  } else {
+    printf("Tags are non-zero\n");
+  }
+  return 0;
 }
diff --git a/tests/libs/preinit_getauxval_test_helper.cpp b/tests/libs/preinit_getauxval_test_helper.cpp
index 2a79b97..53d4cc9 100644
--- a/tests/libs/preinit_getauxval_test_helper.cpp
+++ b/tests/libs/preinit_getauxval_test_helper.cpp
@@ -19,7 +19,7 @@
 #include <unistd.h>
 #include <sys/auxv.h>
 
-#include "libs_utils.h"
+#include "CHECK.h"
 
 static unsigned long g_AT_RANDOM;
 static unsigned long g_AT_PAGESZ;
diff --git a/tests/libs/preinit_syscall_test_helper.cpp b/tests/libs/preinit_syscall_test_helper.cpp
index 9b6b6df..3ca8131 100644
--- a/tests/libs/preinit_syscall_test_helper.cpp
+++ b/tests/libs/preinit_syscall_test_helper.cpp
@@ -19,7 +19,7 @@
 #include <unistd.h>
 #include <sys/auxv.h>
 
-#include "libs_utils.h"
+#include "CHECK.h"
 
 static ssize_t g_result;
 static int g_errno;
diff --git a/tests/libs/segment_gap_outer.cpp b/tests/libs/segment_gap_outer.cpp
index 3ba90d0..0328a99 100644
--- a/tests/libs/segment_gap_outer.cpp
+++ b/tests/libs/segment_gap_outer.cpp
@@ -1,6 +1,7 @@
 #include <android/dlext.h>
 #include <dlfcn.h>
 #include <stdlib.h>
+#include <unistd.h>
 
 extern "C" void __attribute__((section(".custom_text"))) text_before_start_of_gap() {}
 char __attribute__((section(".custom_bss"))) end_of_gap[0x1000];
@@ -10,8 +11,9 @@
   info.flags = ANDROID_DLEXT_RESERVED_ADDRESS;
 
   char* start_of_gap =
-      reinterpret_cast<char*>(reinterpret_cast<uintptr_t>(text_before_start_of_gap) & ~0xfffull) +
-      0x1000;
+      reinterpret_cast<char*>(
+          (reinterpret_cast<uintptr_t>(text_before_start_of_gap) &
+           ~(sysconf(_SC_PAGESIZE) - 1)) + sysconf(_SC_PAGESIZE));
   info.reserved_addr = start_of_gap;
   info.reserved_size = end_of_gap - start_of_gap;
 
diff --git a/tests/libs/segment_gap_outer.lds b/tests/libs/segment_gap_outer.lds
index 527f29e..758b6bc 100644
--- a/tests/libs/segment_gap_outer.lds
+++ b/tests/libs/segment_gap_outer.lds
@@ -3,17 +3,17 @@
   # appropriate alignment between them.
   . = SIZEOF_HEADERS;
   .rodata : {*(.rodata .rodata.*)}
-  . = ALIGN(0x1000);
+  . = ALIGN(CONSTANT (MAXPAGESIZE));
   .text : {*(.text .text.*)}
-  . = ALIGN(0x1000);
+  . = ALIGN(CONSTANT (MAXPAGESIZE));
   .dynamic : {*(.dynamic)}
-  . = ALIGN(0x1000);
+  . = ALIGN(CONSTANT (MAXPAGESIZE));
   .data : {*(.data .data.*)}
   .bss : {*(.bss .bss.*)}
 
   # Now create the gap. We need a text segment first to prevent the linker from
   # merging .bss with .custom_bss.
-  . = ALIGN(0x1000);
+  . = ALIGN(CONSTANT (MAXPAGESIZE));
   .custom_text : {
     *(.custom_text);
   }
diff --git a/tests/libs/stack_tagging_helper.cpp b/tests/libs/stack_tagging_helper.cpp
index d29844d..e7e26af 100644
--- a/tests/libs/stack_tagging_helper.cpp
+++ b/tests/libs/stack_tagging_helper.cpp
@@ -28,7 +28,7 @@
 
 #include <bionic/malloc.h>
 
-#include "libs_utils.h"
+#include "CHECK.h"
 
 #if defined(__aarch64__)
 
@@ -240,14 +240,14 @@
 }
 
 void test_longjmp_sigaltstack() {
-  constexpr size_t kAltStackSize = kStackAllocationSize + PAGE_SIZE * 16;
+  const size_t kAltStackSize = kStackAllocationSize + getpagesize() * 16;
   SigAltStackScoped sigAltStackScoped(kAltStackSize);
   SigActionScoped sigActionScoped(
       SIGUSR1, [](int, siginfo_t*, void*) { check_longjmp_restores_tags(); });
   raise(SIGUSR1);
 
   // same for a secondary thread
-  std::thread t([]() {
+  std::thread t([&]() {
     SigAltStackScoped sigAltStackScoped(kAltStackSize);
     raise(SIGUSR1);
   });
diff --git a/libc/bionic/sched_cpualloc.c b/tests/libs/testbinary_is_stack_mte.cpp
similarity index 73%
rename from libc/bionic/sched_cpualloc.c
rename to tests/libs/testbinary_is_stack_mte.cpp
index 345de91..0cdc466 100644
--- a/libc/bionic/sched_cpualloc.c
+++ b/tests/libs/testbinary_is_stack_mte.cpp
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2010 The Android Open Source Project
+ * Copyright (C) 2024 The Android Open Source Project
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -25,19 +25,28 @@
  * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  */
-#define _GNU_SOURCE 1
-#include <sched.h>
+
+#include <stdint.h>
+#include <stdio.h>
 #include <stdlib.h>
 
-cpu_set_t* __sched_cpualloc(size_t count)
-{
-    // The static analyzer complains that CPU_ALLOC_SIZE eventually expands to
-    // N * sizeof(unsigned long), which is incompatible with cpu_set_t. This is
-    // on purpose.
-    return (cpu_set_t*) malloc(CPU_ALLOC_SIZE(count)); // NOLINT
+#include "../mte_utils.h"
+#include "CHECK.h"
+
+#if defined(__BIONIC__) && defined(__aarch64__)
+
+extern "C" int main(int, char**) {
+  void* mte_tls_ptr = mte_tls();
+  *reinterpret_cast<uintptr_t*>(mte_tls_ptr) = 1;
+  int ret = is_stack_mte_on() && mte_tls_ptr != nullptr ? 0 : 1;
+  printf("RAN\n");
+  return ret;
 }
 
-void __sched_cpufree(cpu_set_t* set)
-{
-    free(set);
+#else
+
+extern "C" int main(int, char**) {
+  printf("RAN\n");
+  return 1;
 }
+#endif
diff --git a/tests/libs/testbinary_is_stack_mte_after_dlopen.cpp b/tests/libs/testbinary_is_stack_mte_after_dlopen.cpp
new file mode 100644
index 0000000..35af8f4
--- /dev/null
+++ b/tests/libs/testbinary_is_stack_mte_after_dlopen.cpp
@@ -0,0 +1,156 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *  * Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *  * Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in
+ *    the documentation and/or other materials provided with the
+ *    distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#include <stdint.h>
+#include <stdio.h>
+#include <stdlib.h>
+
+#include <condition_variable>
+#include <thread>
+
+#include <dlfcn.h>
+#include <inttypes.h>
+#include <stdlib.h>
+#include <unistd.h>
+
+#include "../mte_utils.h"
+#include "CHECK.h"
+
+#if defined(__BIONIC__) && defined(__aarch64__)
+
+enum State { kInit, kThreadStarted, kStackRemapped };
+
+// We can't use pthread_getattr_np because that uses the rlimit rather than the actual mapping
+// bounds.
+static void find_main_stack_limits(uintptr_t* low, uintptr_t* high) {
+  uintptr_t startstack = reinterpret_cast<uintptr_t>(__builtin_frame_address(0));
+
+  // Hunt for the region that contains that address.
+  FILE* fp = fopen("/proc/self/maps", "re");
+  if (fp == nullptr) {
+    abort();
+  }
+  char line[BUFSIZ];
+  while (fgets(line, sizeof(line), fp) != nullptr) {
+    uintptr_t lo, hi;
+    if (sscanf(line, "%" SCNxPTR "-%" SCNxPTR, &lo, &hi) == 2) {
+      if (lo <= startstack && startstack <= hi) {
+        *low = lo;
+        *high = hi;
+        fclose(fp);
+        return;
+      }
+    }
+  }
+  abort();
+}
+
+template <typename Fn>
+unsigned int fault_new_stack_page(uintptr_t low, Fn f) {
+  uintptr_t new_low;
+  uintptr_t new_high;
+  volatile char buf[4096];
+  buf[4095] = 1;
+  find_main_stack_limits(&new_low, &new_high);
+  if (new_low < low) {
+    f();
+    return new_high;
+  }
+  // Useless, but should defeat TCO.
+  return new_low + fault_new_stack_page(low, f);
+}
+extern "C" int main(int argc, char** argv) {
+  if (argc < 2) {
+    return 1;
+  }
+  const char* path = argv[1];
+  CHECK(access(path, F_OK) == 0);  // Verify test setup.
+  CHECK(!is_stack_mte_on());
+  std::mutex m;
+  std::condition_variable cv;
+  State state = kInit;
+
+  bool is_early_thread_mte_on = false;
+  void* early_thread_mte_tls = nullptr;
+  std::thread early_th([&] {
+    {
+      std::lock_guard lk(m);
+      state = kThreadStarted;
+    }
+    cv.notify_one();
+    {
+      std::unique_lock lk(m);
+      cv.wait(lk, [&] { return state == kStackRemapped; });
+    }
+    is_early_thread_mte_on = is_stack_mte_on();
+    early_thread_mte_tls = mte_tls();
+    *reinterpret_cast<uintptr_t*>(early_thread_mte_tls) = 1;
+  });
+  {
+    std::unique_lock lk(m);
+    cv.wait(lk, [&] { return state == kThreadStarted; });
+  }
+  void* handle = dlopen(path, RTLD_NOW);
+  {
+    std::lock_guard lk(m);
+    state = kStackRemapped;
+  }
+  cv.notify_one();
+  CHECK(handle != nullptr);
+  CHECK(is_stack_mte_on());
+  CHECK(mte_tls() != nullptr);
+
+  bool new_stack_page_mte_on = false;
+  uintptr_t low;
+  uintptr_t high;
+  find_main_stack_limits(&low, &high);
+  fault_new_stack_page(low, [&] { new_stack_page_mte_on = is_stack_mte_on(); });
+  CHECK(new_stack_page_mte_on);
+
+  bool is_late_thread_mte_on = false;
+  void* late_thread_mte_tls = nullptr;
+  std::thread late_th([&] {
+    is_late_thread_mte_on = is_stack_mte_on();
+    late_thread_mte_tls = mte_tls();
+    *reinterpret_cast<uintptr_t*>(late_thread_mte_tls) = 1;
+  });
+  late_th.join();
+  early_th.join();
+  CHECK(is_late_thread_mte_on);
+  CHECK(is_early_thread_mte_on);
+  CHECK(late_thread_mte_tls != nullptr);
+  CHECK(early_thread_mte_tls != nullptr);
+  printf("RAN\n");
+  return 0;
+}
+
+#else
+extern "C" int main(int, char**) {
+  return 1;
+}
+#endif
diff --git a/tests/limits_test.cpp b/tests/limits_test.cpp
index e5902ad..bc13a3f 100644
--- a/tests/limits_test.cpp
+++ b/tests/limits_test.cpp
@@ -21,6 +21,7 @@
 TEST(limits, macros) {
   ASSERT_EQ(8, CHAR_BIT);
   ASSERT_EQ(8 * static_cast<int>(sizeof(int)), WORD_BIT);
+  ASSERT_EQ(2048, LINE_MAX);
   ASSERT_EQ(20, NZERO);
 #if !defined(MB_LEN_MAX)
 #error MB_LEN_MAX
diff --git a/tests/link_test.cpp b/tests/link_test.cpp
index 127a3d9..ae3a1cd 100644
--- a/tests/link_test.cpp
+++ b/tests/link_test.cpp
@@ -195,7 +195,7 @@
     }
     void AddModule(dl_phdr_info* info, size_t s) {
       ASSERT_EQ(sizeof(dl_phdr_info), s);
-      ASSERT_TRUE(dl_iter_mods.find(info->dlpi_addr) == dl_iter_mods.end());
+      ASSERT_FALSE(dl_iter_mods.contains(info->dlpi_addr));
       ASSERT_TRUE(info->dlpi_name != nullptr);
       dl_iter_mods[info->dlpi_addr] = {
         .name = info->dlpi_name,
diff --git a/tests/locale_test.cpp b/tests/locale_test.cpp
index a220c83..a8ebca7 100644
--- a/tests/locale_test.cpp
+++ b/tests/locale_test.cpp
@@ -20,6 +20,8 @@
 #include <limits.h>
 #include <locale.h>
 
+#include "utils.h"
+
 TEST(locale, localeconv) {
   EXPECT_STREQ(".", localeconv()->decimal_point);
   EXPECT_STREQ("", localeconv()->thousands_sep);
@@ -53,10 +55,10 @@
 
   errno = 0;
   EXPECT_EQ(nullptr, setlocale(-1, nullptr));
-  EXPECT_EQ(EINVAL, errno);
+  EXPECT_ERRNO(EINVAL);
   errno = 0;
   EXPECT_EQ(nullptr, setlocale(13, nullptr));
-  EXPECT_EQ(EINVAL, errno);
+  EXPECT_ERRNO(EINVAL);
 
 #if defined(__BIONIC__)
   // The "" locale is implementation-defined. For bionic, it's the C.UTF-8 locale, which is
@@ -69,13 +71,13 @@
 
   errno = 0;
   EXPECT_EQ(nullptr, setlocale(LC_ALL, "this-is-not-a-locale"));
-  EXPECT_EQ(ENOENT, errno); // POSIX specified, not an implementation detail!
+  EXPECT_ERRNO(ENOENT);  // POSIX specified, not an implementation detail!
 }
 
 TEST(locale, newlocale_invalid_category_mask) {
   errno = 0;
   EXPECT_EQ(nullptr, newlocale(1 << 20, "C", nullptr));
-  EXPECT_EQ(EINVAL, errno);
+  EXPECT_ERRNO(EINVAL);
 }
 
 TEST(locale, newlocale_NULL_locale_name) {
@@ -83,14 +85,14 @@
 #pragma clang diagnostic ignored "-Wnonnull"
   errno = 0;
   EXPECT_EQ(nullptr, newlocale(LC_ALL, nullptr, nullptr));
-  EXPECT_EQ(EINVAL, errno);
+  EXPECT_ERRNO(EINVAL);
 #pragma clang diagnostic pop
 }
 
 TEST(locale, newlocale_bad_locale_name) {
   errno = 0;
   EXPECT_EQ(nullptr, newlocale(LC_ALL, "this-is-not-a-locale", nullptr));
-  EXPECT_EQ(ENOENT, errno); // POSIX specified, not an implementation detail!
+  EXPECT_ERRNO(ENOENT);  // POSIX specified, not an implementation detail!
 }
 
 TEST(locale, newlocale) {
diff --git a/tests/make_fortify_compile_test.mk b/tests/make_fortify_compile_test.mk
deleted file mode 100644
index ec0ba45..0000000
--- a/tests/make_fortify_compile_test.mk
+++ /dev/null
@@ -1,24 +0,0 @@
-include $(CLEAR_VARS)
-
-LOCAL_ADDITIONAL_DEPENDENCIES := \
-    $(LOCAL_PATH)/Android.mk \
-    $(LOCAL_PATH)/touch-obj-on-success
-
-LOCAL_CXX := $(LOCAL_PATH)/touch-obj-on-success \
-    $(LLVM_PREBUILTS_PATH)/clang++ \
-
-LOCAL_CLANG := true
-LOCAL_MODULE := bionic-compile-time-tests$(FORTIFY_LEVEL)-clang++
-LOCAL_LICENSE_KINDS := SPDX-license-identifier-Apache-2.0 SPDX-license-identifier-BSD
-LOCAL_LICENSE_CONDITIONS := notice
-LOCAL_NOTICE_FILE := $(LOCAL_PATH)/NOTICE
-LOCAL_TIDY := false
-LOCAL_CPPFLAGS := -Wall -Wno-error
-LOCAL_CPPFLAGS += -fno-color-diagnostics -ferror-limit=10000 -Xclang -verify
-LOCAL_CPPFLAGS += -DCOMPILATION_TESTS=1 -Wformat-nonliteral
-LOCAL_CPPFLAGS += -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=$(FORTIFY_LEVEL)
-LOCAL_SRC_FILES := clang_fortify_tests.cpp
-
-include $(BUILD_STATIC_LIBRARY)
-
-FORTIFY_LEVEL :=
diff --git a/tests/malloc_stress_test.cpp b/tests/malloc_stress_test.cpp
index b5b06ab..00f5919 100644
--- a/tests/malloc_stress_test.cpp
+++ b/tests/malloc_stress_test.cpp
@@ -27,10 +27,58 @@
 #include <thread>
 #include <vector>
 
-#include <android-base/strings.h>
 #if defined(__BIONIC__)
 #include <meminfo/procmeminfo.h>
 #include <procinfo/process_map.h>
+
+#include <log/log.h>
+#include <log/log_read.h>
+#endif
+
+#if defined(__BIONIC__)
+static void PrintLogStats(uint64_t& last_time) {
+  logger_list* logger =
+      android_logger_list_open(android_name_to_log_id("main"), ANDROID_LOG_NONBLOCK, 0, getpid());
+  if (logger == nullptr) {
+    printf("Failed to open log for main\n");
+    return;
+  }
+
+  uint64_t last_message_time = last_time;
+  while (true) {
+    log_msg entry;
+    ssize_t retval = android_logger_list_read(logger, &entry);
+    if (retval == 0) {
+      break;
+    }
+    if (retval < 0) {
+      if (retval == -EINTR) {
+        continue;
+      }
+      // EAGAIN means there is nothing left to read when ANDROID_LOG_NONBLOCK is set.
+      if (retval != -EAGAIN) {
+        printf("Failed to read log entry: %s\n", strerrordesc_np(retval));
+      }
+      break;
+    }
+    if (entry.msg() == nullptr) {
+      continue;
+    }
+    // Only print allocator tagged log entries.
+    std::string_view tag(entry.msg() + 1);
+    if (tag != "scudo" && tag != "jemalloc") {
+      continue;
+    }
+    if (entry.nsec() > last_time) {
+      printf("  %s\n", &tag.back() + 2);
+      // Only update the last time outside this loop just in case two or more
+      // messages have the same timestamp.
+      last_message_time = entry.nsec();
+    }
+  }
+  android_logger_list_close(logger);
+  last_time = last_message_time;
+}
 #endif
 
 TEST(malloc_stress, multiple_threads_forever) {
@@ -45,6 +93,8 @@
 #endif
   uint64_t mallinfo_min = UINT64_MAX;
   uint64_t mallinfo_max = 0;
+
+  uint64_t last_message_time = 0;
   for (size_t i = 0; ; i++) {
     printf("Pass %zu\n", i);
 
@@ -74,8 +124,8 @@
     uint64_t rss_bytes = 0;
     uint64_t vss_bytes = 0;
     for (auto& vma : maps) {
-      if (vma.name == "[anon:libc_malloc]" || android::base::StartsWith(vma.name, "[anon:scudo:") ||
-          android::base::StartsWith(vma.name, "[anon:GWP-ASan")) {
+      if (vma.name == "[anon:libc_malloc]" || vma.name.starts_with("[anon:scudo:") ||
+          vma.name.starts_with("[anon:GWP-ASan")) {
         android::meminfo::Vma update_vma(vma);
         ASSERT_TRUE(proc_mem.FillInVmaStats(update_vma));
         rss_bytes += update_vma.usage.rss;
@@ -112,5 +162,15 @@
     printf("Allocated memory %zu %0.2fMB\n", mallinfo_bytes, mallinfo_bytes / (1024.0 * 1024.0));
     printf("  Min %" PRIu64 " %0.2fMB\n", mallinfo_min, mallinfo_min / (1024.0 * 1024.0));
     printf("  Max %" PRIu64 " %0.2fMB\n", mallinfo_max, mallinfo_max / (1024.0 * 1024.0));
+
+#if defined(__BIONIC__)
+    if (((i + 1) % 100) == 0) {
+      // Send native allocator stats to the log
+      mallopt(M_LOG_STATS, 0);
+
+      printf("Log stats:\n");
+      PrintLogStats(last_message_time);
+    }
+#endif
   }
 }
diff --git a/tests/malloc_test.cpp b/tests/malloc_test.cpp
index 22905f4..3f1ba79 100644
--- a/tests/malloc_test.cpp
+++ b/tests/malloc_test.cpp
@@ -47,6 +47,7 @@
 #include <android-base/file.h>
 #include <android-base/test_utils.h>
 
+#include "DoNotOptimize.h"
 #include "utils.h"
 
 #if defined(__BIONIC__)
@@ -83,7 +84,7 @@
   SKIP_WITH_HWASAN;
   errno = 0;
   ASSERT_EQ(nullptr, malloc(SIZE_MAX));
-  ASSERT_EQ(ENOMEM, errno);
+  ASSERT_ERRNO(ENOMEM);
 }
 
 TEST(malloc, calloc_std) {
@@ -120,23 +121,23 @@
   SKIP_WITH_HWASAN;
   errno = 0;
   ASSERT_EQ(nullptr, calloc(-1, 100));
-  ASSERT_EQ(ENOMEM, errno);
+  ASSERT_ERRNO(ENOMEM);
 }
 
 TEST(malloc, calloc_overflow) {
   SKIP_WITH_HWASAN;
   errno = 0;
   ASSERT_EQ(nullptr, calloc(1, SIZE_MAX));
-  ASSERT_EQ(ENOMEM, errno);
+  ASSERT_ERRNO(ENOMEM);
   errno = 0;
   ASSERT_EQ(nullptr, calloc(SIZE_MAX, SIZE_MAX));
-  ASSERT_EQ(ENOMEM, errno);
+  ASSERT_ERRNO(ENOMEM);
   errno = 0;
   ASSERT_EQ(nullptr, calloc(2, SIZE_MAX));
-  ASSERT_EQ(ENOMEM, errno);
+  ASSERT_ERRNO(ENOMEM);
   errno = 0;
   ASSERT_EQ(nullptr, calloc(SIZE_MAX, 2));
-  ASSERT_EQ(ENOMEM, errno);
+  ASSERT_ERRNO(ENOMEM);
 }
 
 TEST(malloc, memalign_multiple) {
@@ -346,12 +347,12 @@
   SKIP_WITH_HWASAN;
   errno = 0;
   ASSERT_EQ(nullptr, realloc(nullptr, SIZE_MAX));
-  ASSERT_EQ(ENOMEM, errno);
+  ASSERT_ERRNO(ENOMEM);
   void* ptr = malloc(100);
   ASSERT_TRUE(ptr != nullptr);
   errno = 0;
   ASSERT_EQ(nullptr, realloc(ptr, SIZE_MAX));
-  ASSERT_EQ(ENOMEM, errno);
+  ASSERT_ERRNO(ENOMEM);
   free(ptr);
 }
 
@@ -669,7 +670,7 @@
   errno = 0;
   ASSERT_EQ(0, mallopt(-1000, 1));
   // mallopt doesn't set errno.
-  ASSERT_EQ(0, errno);
+  ASSERT_ERRNO(0);
 #else
   GTEST_SKIP() << "bionic-only test";
 #endif
@@ -678,11 +679,12 @@
 TEST(malloc, mallopt_decay) {
 #if defined(__BIONIC__)
   SKIP_WITH_HWASAN << "hwasan does not implement mallopt";
-  errno = 0;
+  ASSERT_EQ(1, mallopt(M_DECAY_TIME, -1));
   ASSERT_EQ(1, mallopt(M_DECAY_TIME, 1));
   ASSERT_EQ(1, mallopt(M_DECAY_TIME, 0));
   ASSERT_EQ(1, mallopt(M_DECAY_TIME, 1));
   ASSERT_EQ(1, mallopt(M_DECAY_TIME, 0));
+  ASSERT_EQ(1, mallopt(M_DECAY_TIME, -1));
 #else
   GTEST_SKIP() << "bionic-only test";
 #endif
@@ -691,7 +693,6 @@
 TEST(malloc, mallopt_purge) {
 #if defined(__BIONIC__)
   SKIP_WITH_HWASAN << "hwasan does not implement mallopt";
-  errno = 0;
   ASSERT_EQ(1, mallopt(M_PURGE, 0));
 #else
   GTEST_SKIP() << "bionic-only test";
@@ -701,13 +702,21 @@
 TEST(malloc, mallopt_purge_all) {
 #if defined(__BIONIC__)
   SKIP_WITH_HWASAN << "hwasan does not implement mallopt";
-  errno = 0;
   ASSERT_EQ(1, mallopt(M_PURGE_ALL, 0));
 #else
   GTEST_SKIP() << "bionic-only test";
 #endif
 }
 
+TEST(malloc, mallopt_log_stats) {
+#if defined(__BIONIC__)
+  SKIP_WITH_HWASAN << "hwasan does not implement mallopt";
+  ASSERT_EQ(1, mallopt(M_LOG_STATS, 0));
+#else
+  GTEST_SKIP() << "bionic-only test";
+#endif
+}
+
 // Verify that all of the mallopt values are unique.
 TEST(malloc, mallopt_unique_params) {
 #if defined(__BIONIC__)
@@ -722,6 +731,7 @@
       std::make_pair(M_TSDS_COUNT_MAX, "M_TSDS_COUNT_MAX"),
       std::make_pair(M_BIONIC_ZERO_INIT, "M_BIONIC_ZERO_INIT"),
       std::make_pair(M_BIONIC_SET_HEAP_TAGGING_LEVEL, "M_BIONIC_SET_HEAP_TAGGING_LEVEL"),
+      std::make_pair(M_LOG_STATS, "M_LOG_STATS"),
   };
 
   std::unordered_map<int, std::string> all_params;
@@ -787,11 +797,11 @@
 
   errno = 0;
   ASSERT_TRUE(reallocarray(nullptr, a, b) == nullptr);
-  ASSERT_EQ(ENOMEM, errno);
+  ASSERT_ERRNO(ENOMEM);
 
   errno = 0;
   ASSERT_TRUE(reallocarray(nullptr, b, a) == nullptr);
-  ASSERT_EQ(ENOMEM, errno);
+  ASSERT_ERRNO(ENOMEM);
 #else
   GTEST_SKIP() << "reallocarray not available";
 #endif
@@ -814,7 +824,7 @@
     8, 32, 128, 4096, 32768, 131072, 1024000, 10240000, 20480000, 300000000
   };
 
-  constexpr static size_t kMaxAllocs = 50;
+  static constexpr size_t kMaxAllocs = 50;
 
   for (size_t size : sizes) {
     // If some of these allocations are stuck in a thread cache, then keep
@@ -857,7 +867,7 @@
   SKIP_WITH_HWASAN << "hwasan does not implement mallinfo2";
   static size_t sizes[] = {8, 32, 128, 4096, 32768, 131072, 1024000, 10240000, 20480000, 300000000};
 
-  constexpr static size_t kMaxAllocs = 50;
+  static constexpr size_t kMaxAllocs = 50;
 
   for (size_t size : sizes) {
     // If some of these allocations are stuck in a thread cache, then keep
@@ -928,7 +938,8 @@
   size_t expected_alignment = alignof(Type);
   if (expected_alignment != 0) {
     ASSERT_EQ(0U, (expected_alignment - 1) & reinterpret_cast<uintptr_t>(floating))
-        << "Expected alignment " << expected_alignment << " ptr value " << floating;
+        << "Expected alignment " << expected_alignment << " ptr value "
+        << static_cast<void*>(floating);
   }
 }
 
@@ -1110,7 +1121,7 @@
   const int unrecognized_option = -1;
   errno = 0;
   EXPECT_EQ(false, android_mallopt(unrecognized_option, nullptr, 0));
-  EXPECT_EQ(ENOTSUP, errno);
+  EXPECT_ERRNO(ENOTSUP);
 #else
   GTEST_SKIP() << "bionic-only test";
 #endif
@@ -1141,11 +1152,11 @@
   errno = 0;
   if (IsDynamic()) {
     EXPECT_EQ(true, android_mallopt(M_INIT_ZYGOTE_CHILD_PROFILING, nullptr, 0));
-    EXPECT_EQ(0, errno);
+    EXPECT_ERRNO(0);
   } else {
     // Not supported in static executables.
     EXPECT_EQ(false, android_mallopt(M_INIT_ZYGOTE_CHILD_PROFILING, nullptr, 0));
-    EXPECT_EQ(ENOTSUP, errno);
+    EXPECT_ERRNO(ENOTSUP);
   }
 
   // Unexpected arguments rejected.
@@ -1153,9 +1164,9 @@
   char unexpected = 0;
   EXPECT_EQ(false, android_mallopt(M_INIT_ZYGOTE_CHILD_PROFILING, &unexpected, 1));
   if (IsDynamic()) {
-    EXPECT_EQ(EINVAL, errno);
+    EXPECT_ERRNO(EINVAL);
   } else {
-    EXPECT_EQ(ENOTSUP, errno);
+    EXPECT_ERRNO(ENOTSUP);
   }
 #else
   GTEST_SKIP() << "bionic-only test";
@@ -1337,45 +1348,44 @@
 }
 
 #if defined(__BIONIC__)
-static void* SetAllocationLimit(void* data) {
-  std::atomic_bool* go = reinterpret_cast<std::atomic_bool*>(data);
-  while (!go->load()) {
-  }
-  size_t limit = 500 * 1024 * 1024;
-  if (android_mallopt(M_SET_ALLOCATION_LIMIT_BYTES, &limit, sizeof(limit))) {
-    return reinterpret_cast<void*>(-1);
-  }
-  return nullptr;
-}
-
 static void SetAllocationLimitMultipleThreads() {
-  std::atomic_bool go;
-  go = false;
-
   static constexpr size_t kNumThreads = 4;
-  pthread_t threads[kNumThreads];
+  std::atomic_bool start_running = false;
+  std::atomic<size_t> num_running;
+  std::atomic<size_t> num_successful;
+  std::unique_ptr<std::thread> threads[kNumThreads];
   for (size_t i = 0; i < kNumThreads; i++) {
-    ASSERT_EQ(0, pthread_create(&threads[i], nullptr, SetAllocationLimit, &go));
+    threads[i].reset(new std::thread([&num_running, &start_running, &num_successful] {
+      ++num_running;
+      while (!start_running) {
+      }
+      size_t limit = 500 * 1024 * 1024;
+      if (android_mallopt(M_SET_ALLOCATION_LIMIT_BYTES, &limit, sizeof(limit))) {
+        ++num_successful;
+      }
+    }));
   }
 
-  // Let them go all at once.
-  go = true;
+  // Wait until all of the threads have started.
+  while (num_running != kNumThreads)
+    ;
+
+  // Now start all of the threads setting the mallopt at once.
+  start_running = true;
+
   // Send hardcoded signal (BIONIC_SIGNAL_PROFILER with value 0) to trigger
-  // heapprofd handler.
-  union sigval signal_value;
-  signal_value.sival_int = 0;
+  // heapprofd handler. This will verify that changing the limit while
+  // the allocation handlers are being changed at the same time works,
+  // or that the limit handler is changed first and this also works properly.
+  union sigval signal_value {};
   ASSERT_EQ(0, sigqueue(getpid(), BIONIC_SIGNAL_PROFILER, signal_value));
 
-  size_t num_successful = 0;
+  // Wait for all of the threads to finish.
   for (size_t i = 0; i < kNumThreads; i++) {
-    void* result;
-    ASSERT_EQ(0, pthread_join(threads[i], &result));
-    if (result != nullptr) {
-      num_successful++;
-    }
+    threads[i]->join();
   }
-  ASSERT_EQ(1U, num_successful);
-  exit(0);
+  ASSERT_EQ(1U, num_successful) << "Only one thread should be able to set the limit.";
+  _exit(0);
 }
 #endif
 
@@ -1403,15 +1413,15 @@
 }
 
 #if defined(__BIONIC__)
-using Action = android_mallopt_gwp_asan_options_t::Action;
+using Mode = android_mallopt_gwp_asan_options_t::Mode;
 TEST(android_mallopt, DISABLED_multiple_enable_gwp_asan) {
   android_mallopt_gwp_asan_options_t options;
   options.program_name = "";  // Don't infer GWP-ASan options from sysprops.
-  options.desire = Action::DONT_TURN_ON_UNLESS_OVERRIDDEN;
+  options.mode = Mode::APP_MANIFEST_NEVER;
   // GWP-ASan should already be enabled. Trying to enable or disable it should
   // always pass.
   ASSERT_TRUE(android_mallopt(M_INITIALIZE_GWP_ASAN, &options, sizeof(options)));
-  options.desire = Action::TURN_ON_WITH_SAMPLING;
+  options.mode = Mode::APP_MANIFEST_DEFAULT;
   ASSERT_TRUE(android_mallopt(M_INITIALIZE_GWP_ASAN, &options, sizeof(options)));
 }
 #endif  // defined(__BIONIC__)
@@ -1483,7 +1493,7 @@
   // release secondary allocations back to the OS) was modified to 0ms/1ms by
   // mallopt_decay. Ensure that we delay for at least a second before releasing
   // pages to the OS in order to avoid implicit zeroing by the kernel.
-  mallopt(M_DECAY_TIME, 1000);
+  mallopt(M_DECAY_TIME, 1);
   TestHeapZeroing(/* num_iterations */ 32, [](int iteration) -> int {
     return 1 << (19 + iteration % 4);
   });
@@ -1618,6 +1628,7 @@
 #if !defined(__BIONIC__)
   GTEST_SKIP() << "Only valid on bionic";
 #endif
+  SKIP_WITH_HWASAN << "Only test system allocator, not hwasan allocator.";
 
   if (IsLowRamDevice()) {
     GTEST_SKIP() << "Skipped on low memory devices.";
@@ -1648,6 +1659,7 @@
 #if !defined(__BIONIC__)
   GTEST_SKIP() << "Only valid on bionic";
 #endif
+  SKIP_WITH_HWASAN << "Only test system allocator, not hwasan allocator.";
 
   if (IsLowRamDevice()) {
     GTEST_SKIP() << "Skipped on low memory devices.";
@@ -1678,6 +1690,7 @@
 #if !defined(__BIONIC__)
   GTEST_SKIP() << "Only valid on bionic";
 #endif
+  SKIP_WITH_HWASAN << "Only test system allocator, not hwasan allocator.";
 
   if (IsLowRamDevice()) {
     GTEST_SKIP() << "Skipped on low memory devices.";
@@ -1728,3 +1741,40 @@
     }
   }
 }
+
+TEST(android_mallopt, get_decay_time_enabled_errors) {
+#if defined(__BIONIC__)
+  errno = 0;
+  EXPECT_FALSE(android_mallopt(M_GET_DECAY_TIME_ENABLED, nullptr, sizeof(bool)));
+  EXPECT_ERRNO(EINVAL);
+
+  errno = 0;
+  int value;
+  EXPECT_FALSE(android_mallopt(M_GET_DECAY_TIME_ENABLED, &value, sizeof(value)));
+  EXPECT_ERRNO(EINVAL);
+#else
+  GTEST_SKIP() << "bionic-only test";
+#endif
+}
+
+TEST(android_mallopt, get_decay_time_enabled) {
+#if defined(__BIONIC__)
+  SKIP_WITH_HWASAN << "hwasan does not implement mallopt";
+
+  EXPECT_EQ(1, mallopt(M_DECAY_TIME, 0));
+
+  bool value;
+  EXPECT_TRUE(android_mallopt(M_GET_DECAY_TIME_ENABLED, &value, sizeof(value)));
+  EXPECT_FALSE(value);
+
+  EXPECT_EQ(1, mallopt(M_DECAY_TIME, 1));
+  EXPECT_TRUE(android_mallopt(M_GET_DECAY_TIME_ENABLED, &value, sizeof(value)));
+  EXPECT_TRUE(value);
+
+  EXPECT_EQ(1, mallopt(M_DECAY_TIME, -1));
+  EXPECT_TRUE(android_mallopt(M_GET_DECAY_TIME_ENABLED, &value, sizeof(value)));
+  EXPECT_FALSE(value);
+#else
+  GTEST_SKIP() << "bionic-only test";
+#endif
+}
diff --git a/tests/math_force_long_double_test.cpp b/tests/math_force_long_double_test.cpp
deleted file mode 100644
index 432182b..0000000
--- a/tests/math_force_long_double_test.cpp
+++ /dev/null
@@ -1,2 +0,0 @@
-#define __BIONIC_LP32_USE_LONG_DOUBLE
-#include "math_test.cpp"
diff --git a/tests/math_test.cpp b/tests/math_test.cpp
index 60872f3..273ef97 100644
--- a/tests/math_test.cpp
+++ b/tests/math_test.cpp
@@ -17,42 +17,37 @@
 #define _GNU_SOURCE 1
 #include <math.h>
 
-// This include (and the associated definition of __test_capture_signbit)
-// must be placed before any files that include <cmath> (gtest.h in this case).
+// <math.h> is required to define type-generic macros: fpclassify, signbit,
+// isfinite, isinf, isnan, isnormal, isgreater, isgreaterequal, isless,
+// islessequal, islessgreater, and isunordered.
 //
-// <math.h> is required to define generic macros signbit, isfinite and
-// several other such functions.
+// <cmath> is required to #undef these macros and make equivalent sets of
+// _overloaded_ functions available in namespace std. So the isnan() macro,
+// for example, is replaced by std::isnan(float), std::isnan(double),
+// and std::isnan(long double).
 //
-// <cmath> is required to undef declarations of these macros in the global
-// namespace and make equivalent functions available in namespace std. Our
-// stlport implementation does this only for signbit, isfinite, isinf and
-// isnan.
-//
-// NOTE: We don't write our test using std::signbit because we want to be
-// sure that we're testing the bionic version of signbit. The C++ libraries
-// are free to reimplement signbit or delegate to compiler builtins if they
-// please.
+// We're trying to test the bionic macros rather than whatever libc++'s
+// implementation happens to be, so we #include <math.h> and "capture" the
+// macros in our own _template_ functions in the global namespace before
+// we #include any files that include <cmath>, such as <gtest.h>.
 
-namespace {
-template<typename T> inline int test_capture_signbit(const T in) {
-  return signbit(in);
-}
-template<typename T> inline int test_capture_isfinite(const T in) {
-  return isfinite(in);
-}
-template<typename T> inline int test_capture_isnan(const T in) {
-  return isnan(in);
-}
-template<typename T> inline int test_capture_isinf(const T in) {
-  return isinf(in);
-}
-}
+#define capture_generic_macro(capture_function_name, generic_macro_name) \
+  template <typename T> inline int capture_function_name(const T in) { \
+    return generic_macro_name(in); \
+  }
 
-#if defined(__BIONIC_LP32_USE_LONG_DOUBLE)
-#define MATH_TEST math_h_force_long_double
-#else
-#define MATH_TEST math_h
-#endif
+capture_generic_macro(test_capture_fpclassify, fpclassify)
+capture_generic_macro(test_capture_signbit, signbit)
+capture_generic_macro(test_capture_isfinite, isfinite)
+capture_generic_macro(test_capture_isinf, isinf)
+capture_generic_macro(test_capture_isnan, isnan)
+capture_generic_macro(test_capture_isnormal, isnormal)
+capture_generic_macro(test_capture_isgreater, isgreater)
+capture_generic_macro(test_capture_isgreaterequal, isgreaterequal)
+capture_generic_macro(test_capture_isless, isless)
+capture_generic_macro(test_capture_islessequal, islessequal)
+capture_generic_macro(test_capture_islessgreater, islessgreater)
+capture_generic_macro(test_capture_isunordered, isunordered)
 
 #include "math_data_test.h"
 
@@ -66,6 +61,22 @@
 
 #include <android-base/scopeguard.h>
 
+// Now we've included all the headers we need, we can redefine the generic
+// function-like macros to point to the bionic <math.h> versions we captured
+// earlier.
+#define fpclassify test_capture_fpclassify
+#define signbit test_capture_signbit
+#define isfinite test_capture_isfinite
+#define isinf test_capture_isinf
+#define isnan test_capture_isnan
+#define isnormal test_capture_isnormal
+#define isgreater test_capture_isgreater
+#define isgreaterequal test_capture_isgreaterequal
+#define isless test_capture_isless
+#define islessequal test_capture_islessequal
+#define islessgreater test_capture_islessgreater
+#define isunordered test_capture_isunordered
+
 static float float_subnormal() {
   union {
     float f;
@@ -103,7 +114,7 @@
   return u.e;
 }
 
-TEST(MATH_TEST, fpclassify) {
+TEST(math_h, fpclassify) {
   ASSERT_EQ(FP_INFINITE, fpclassify(INFINITY));
   ASSERT_EQ(FP_INFINITE, fpclassify(HUGE_VALF));
   ASSERT_EQ(FP_INFINITE, fpclassify(-HUGE_VALF));
@@ -129,40 +140,40 @@
   ASSERT_EQ(FP_ZERO, fpclassify(0.0L));
 }
 
-TEST(MATH_TEST, isfinite) {
-  ASSERT_TRUE(test_capture_isfinite(123.0f));
-  ASSERT_TRUE(test_capture_isfinite(123.0));
-  ASSERT_TRUE(test_capture_isfinite(123.0L));
-  ASSERT_FALSE(test_capture_isfinite(HUGE_VALF));
-  ASSERT_FALSE(test_capture_isfinite(-HUGE_VALF));
-  ASSERT_FALSE(test_capture_isfinite(HUGE_VAL));
-  ASSERT_FALSE(test_capture_isfinite(-HUGE_VAL));
-  ASSERT_FALSE(test_capture_isfinite(HUGE_VALL));
-  ASSERT_FALSE(test_capture_isfinite(-HUGE_VALL));
+TEST(math_h, isfinite) {
+  ASSERT_TRUE(isfinite(123.0f));
+  ASSERT_TRUE(isfinite(123.0));
+  ASSERT_TRUE(isfinite(123.0L));
+  ASSERT_FALSE(isfinite(HUGE_VALF));
+  ASSERT_FALSE(isfinite(-HUGE_VALF));
+  ASSERT_FALSE(isfinite(HUGE_VAL));
+  ASSERT_FALSE(isfinite(-HUGE_VAL));
+  ASSERT_FALSE(isfinite(HUGE_VALL));
+  ASSERT_FALSE(isfinite(-HUGE_VALL));
 }
 
-TEST(MATH_TEST, isinf) {
-  ASSERT_FALSE(test_capture_isinf(123.0f));
-  ASSERT_FALSE(test_capture_isinf(123.0));
-  ASSERT_FALSE(test_capture_isinf(123.0L));
-  ASSERT_TRUE(test_capture_isinf(HUGE_VALF));
-  ASSERT_TRUE(test_capture_isinf(-HUGE_VALF));
-  ASSERT_TRUE(test_capture_isinf(HUGE_VAL));
-  ASSERT_TRUE(test_capture_isinf(-HUGE_VAL));
-  ASSERT_TRUE(test_capture_isinf(HUGE_VALL));
-  ASSERT_TRUE(test_capture_isinf(-HUGE_VALL));
+TEST(math_h, isinf) {
+  ASSERT_FALSE(isinf(123.0f));
+  ASSERT_FALSE(isinf(123.0));
+  ASSERT_FALSE(isinf(123.0L));
+  ASSERT_TRUE(isinf(HUGE_VALF));
+  ASSERT_TRUE(isinf(-HUGE_VALF));
+  ASSERT_TRUE(isinf(HUGE_VAL));
+  ASSERT_TRUE(isinf(-HUGE_VAL));
+  ASSERT_TRUE(isinf(HUGE_VALL));
+  ASSERT_TRUE(isinf(-HUGE_VALL));
 }
 
-TEST(MATH_TEST, isnan) {
-  ASSERT_FALSE(test_capture_isnan(123.0f));
-  ASSERT_FALSE(test_capture_isnan(123.0));
-  ASSERT_FALSE(test_capture_isnan(123.0L));
-  ASSERT_TRUE(test_capture_isnan(nanf("")));
-  ASSERT_TRUE(test_capture_isnan(nan("")));
-  ASSERT_TRUE(test_capture_isnan(nanl("")));
+TEST(math_h, isnan) {
+  ASSERT_FALSE(isnan(123.0f));
+  ASSERT_FALSE(isnan(123.0));
+  ASSERT_FALSE(isnan(123.0L));
+  ASSERT_TRUE(isnan(nanf("")));
+  ASSERT_TRUE(isnan(nan("")));
+  ASSERT_TRUE(isnan(nanl("")));
 }
 
-TEST(MATH_TEST, isnormal) {
+TEST(math_h, isnormal) {
   ASSERT_TRUE(isnormal(123.0f));
   ASSERT_TRUE(isnormal(123.0));
   ASSERT_TRUE(isnormal(123.0L));
@@ -172,18 +183,18 @@
 }
 
 // TODO: isgreater, isgreaterequals, isless, islessequal, islessgreater, isunordered
-TEST(MATH_TEST, signbit) {
-  ASSERT_EQ(0, test_capture_signbit(0.0f));
-  ASSERT_EQ(0, test_capture_signbit(0.0));
-  ASSERT_EQ(0, test_capture_signbit(0.0L));
+TEST(math_h, signbit) {
+  ASSERT_EQ(0, signbit(0.0f));
+  ASSERT_EQ(0, signbit(0.0));
+  ASSERT_EQ(0, signbit(0.0L));
 
-  ASSERT_EQ(0, test_capture_signbit(1.0f));
-  ASSERT_EQ(0, test_capture_signbit(1.0));
-  ASSERT_EQ(0, test_capture_signbit(1.0L));
+  ASSERT_EQ(0, signbit(1.0f));
+  ASSERT_EQ(0, signbit(1.0));
+  ASSERT_EQ(0, signbit(1.0L));
 
-  ASSERT_NE(0, test_capture_signbit(-1.0f));
-  ASSERT_NE(0, test_capture_signbit(-1.0));
-  ASSERT_NE(0, test_capture_signbit(-1.0L));
+  ASSERT_NE(0, signbit(-1.0f));
+  ASSERT_NE(0, signbit(-1.0));
+  ASSERT_NE(0, signbit(-1.0L));
 }
 
 // Historical BSD cruft that isn't exposed in <math.h> any more.
@@ -192,7 +203,7 @@
 extern "C" int __fpclassifyf(float);
 extern "C" int __fpclassifyl(long double);
 
-TEST(MATH_TEST, __fpclassify) {
+TEST(math_h, __fpclassify) {
   ASSERT_EQ(FP_INFINITE, __fpclassify(HUGE_VAL));
   ASSERT_EQ(FP_INFINITE, __fpclassify(-HUGE_VAL));
   ASSERT_EQ(FP_NAN, __fpclassify(nan("")));
@@ -201,7 +212,7 @@
   ASSERT_EQ(FP_ZERO, __fpclassify(0.0));
 }
 
-TEST(MATH_TEST, __fpclassifyd) {
+TEST(math_h, __fpclassifyd) {
 #if defined(__GLIBC__) || defined(ANDROID_HOST_MUSL)
 #define __fpclassifyd __fpclassify
 #endif
@@ -213,7 +224,7 @@
   ASSERT_EQ(FP_ZERO, __fpclassifyd(0.0));
 }
 
-TEST(MATH_TEST, __fpclassifyf) {
+TEST(math_h, __fpclassifyf) {
   ASSERT_EQ(FP_INFINITE, __fpclassifyf(HUGE_VALF));
   ASSERT_EQ(FP_INFINITE, __fpclassifyf(-HUGE_VALF));
   ASSERT_EQ(FP_NAN, __fpclassifyf(nanf("")));
@@ -222,7 +233,7 @@
   ASSERT_EQ(FP_ZERO, __fpclassifyf(0.0f));
 }
 
-TEST(MATH_TEST, __fpclassifyl) {
+TEST(math_h, __fpclassifyl) {
   EXPECT_EQ(FP_INFINITE, __fpclassifyl(HUGE_VALL));
   EXPECT_EQ(FP_INFINITE, __fpclassifyl(-HUGE_VALL));
   EXPECT_EQ(FP_NAN, __fpclassifyl(nanl("")));
@@ -231,7 +242,7 @@
   EXPECT_EQ(FP_ZERO, __fpclassifyl(0.0L));
 }
 
-TEST(MATH_TEST, finitef) {
+TEST(math_h, finitef) {
   ASSERT_TRUE(finitef(123.0f));
   ASSERT_FALSE(finitef(HUGE_VALF));
   ASSERT_FALSE(finitef(-HUGE_VALF));
@@ -244,7 +255,7 @@
 extern "C" int __isfinitel(long double);
 extern "C" int isfinitel(long double);
 
-TEST(MATH_TEST, __isfinite) {
+TEST(math_h, __isfinite) {
 #if defined(__GLIBC__)
 #define __isfinite __finite
 #elif defined(ANDROID_HOST_MUSL)
@@ -255,7 +266,7 @@
   ASSERT_FALSE(__isfinite(-HUGE_VAL));
 }
 
-TEST(MATH_TEST, __isfinitef) {
+TEST(math_h, __isfinitef) {
 #if defined(__GLIBC__)
 #define __isfinitef __finitef
 #elif defined(ANDROID_HOST_MUSL)
@@ -266,7 +277,7 @@
   ASSERT_FALSE(__isfinitef(-HUGE_VALF));
 }
 
-TEST(MATH_TEST, isfinitef) {
+TEST(math_h, isfinitef) {
 #if defined(__GLIBC__)
 #define isfinitef __finitef
 #elif defined(ANDROID_HOST_MUSL)
@@ -277,7 +288,7 @@
   ASSERT_FALSE(isfinitef(-HUGE_VALF));
 }
 
-TEST(MATH_TEST, __isfinitel) {
+TEST(math_h, __isfinitel) {
 #if defined(__GLIBC__)
 #define __isfinitel __finitel
 #elif defined(ANDROID_HOST_MUSL)
@@ -288,7 +299,7 @@
   ASSERT_FALSE(__isfinitel(-HUGE_VALL));
 }
 
-TEST(MATH_TEST, isfinitel) {
+TEST(math_h, isfinitel) {
 #if defined(__GLIBC__)
 #define isfinitel __finitel
 #elif defined(ANDROID_HOST_MUSL)
@@ -299,13 +310,13 @@
   ASSERT_FALSE(isfinitel(-HUGE_VALL));
 }
 
-TEST(MATH_TEST, finite) {
+TEST(math_h, finite) {
   ASSERT_TRUE(finite(123.0));
   ASSERT_FALSE(finite(HUGE_VAL));
   ASSERT_FALSE(finite(-HUGE_VAL));
 }
 
-TEST(MATH_TEST, isinf_function) {
+TEST(math_h, isinf_function) {
   // The isinf macro deals with all three types; the isinf function is for doubles.
   ASSERT_FALSE((isinf)(123.0));
   ASSERT_TRUE((isinf)(HUGE_VAL));
@@ -315,11 +326,9 @@
 // Historical BSD cruft that isn't exposed in <math.h> any more.
 extern "C" int __isinf(double);
 extern "C" int __isinff(float);
-extern "C" int isinff(float);
 extern "C" int __isinfl(long double);
-extern "C" int isinfl(long double);
 
-TEST(MATH_TEST, __isinf) {
+TEST(math_h, __isinf) {
 #if defined(ANDROID_HOST_MUSL)
 #define __isinf isinf
 #endif
@@ -328,7 +337,7 @@
   ASSERT_TRUE(__isinf(-HUGE_VAL));
 }
 
-TEST(MATH_TEST, __isinff) {
+TEST(math_h, __isinff) {
 #if defined(ANDROID_HOST_MUSL)
 #define __isinff isinf
 #endif
@@ -337,7 +346,7 @@
   ASSERT_TRUE(__isinff(-HUGE_VALF));
 }
 
-TEST(MATH_TEST, isinff) {
+TEST(math_h, isinff) {
 #if defined(ANDROID_HOST_MUSL)
 #define isinff isinf
 #endif
@@ -346,7 +355,7 @@
   ASSERT_TRUE(isinff(-HUGE_VALF));
 }
 
-TEST(MATH_TEST, __isinfl) {
+TEST(math_h, __isinfl) {
 #if defined(ANDROID_HOST_MUSL)
 #define __isinfl isinf
 #endif
@@ -355,7 +364,7 @@
   ASSERT_TRUE(__isinfl(-HUGE_VALL));
 }
 
-TEST(MATH_TEST, isinfl) {
+TEST(math_h, isinfl) {
 #if defined(ANDROID_HOST_MUSL)
 #define isinfl isinf
 #endif
@@ -364,7 +373,7 @@
   ASSERT_TRUE(isinfl(-HUGE_VALL));
 }
 
-TEST(MATH_TEST, isnan_function) {
+TEST(math_h, isnan_function) {
   // The isnan macro deals with all three types; the isnan function is for doubles.
   ASSERT_FALSE((isnan)(123.0));
   ASSERT_TRUE((isnan)(nan("")));
@@ -373,11 +382,9 @@
 // Historical BSD cruft that isn't exposed in <math.h> any more.
 extern "C" int __isnan(double);
 extern "C" int __isnanf(float);
-extern "C" int isnanf(float);
 extern "C" int __isnanl(long double);
-extern "C" int isnanl(long double);
 
-TEST(MATH_TEST, __isnan) {
+TEST(math_h, __isnan) {
 #if defined(ANDROID_HOST_MUSL)
 #define __isnan isnan
 #endif
@@ -385,7 +392,7 @@
   ASSERT_TRUE(__isnan(nan("")));
 }
 
-TEST(MATH_TEST, __isnanf) {
+TEST(math_h, __isnanf) {
 #if defined(ANDROID_HOST_MUSL)
 #define __isnanf isnan
 #endif
@@ -393,7 +400,7 @@
   ASSERT_TRUE(__isnanf(nanf("")));
 }
 
-TEST(MATH_TEST, isnanf) {
+TEST(math_h, isnanf) {
 #if defined(ANDROID_HOST_MUSL)
 #define isnanf isnan
 #endif
@@ -401,7 +408,7 @@
   ASSERT_TRUE(isnanf(nanf("")));
 }
 
-TEST(MATH_TEST, __isnanl) {
+TEST(math_h, __isnanl) {
 #if defined(ANDROID_HOST_MUSL)
 #define __isnanl isnan
 #endif
@@ -409,7 +416,7 @@
   ASSERT_TRUE(__isnanl(nanl("")));
 }
 
-TEST(MATH_TEST, isnanl) {
+TEST(math_h, isnanl) {
 #if defined(ANDROID_HOST_MUSL)
 #define isnanl isnan
 #endif
@@ -424,7 +431,7 @@
 extern "C" int __isnormall(long double);
 extern "C" int isnormall(long double);
 
-TEST(MATH_TEST, __isnormal) {
+TEST(math_h, __isnormal) {
 #if defined(__BIONIC__)
   ASSERT_TRUE(__isnormal(123.0));
   ASSERT_FALSE(__isnormal(double_subnormal()));
@@ -433,7 +440,7 @@
 #endif // __BIONIC__
 }
 
-TEST(MATH_TEST, __isnormalf) {
+TEST(math_h, __isnormalf) {
 #if defined(__BIONIC__)
   ASSERT_TRUE(__isnormalf(123.0f));
   ASSERT_FALSE(__isnormalf(float_subnormal()));
@@ -442,7 +449,7 @@
 #endif // __BIONIC__
 }
 
-TEST(MATH_TEST, isnormalf) {
+TEST(math_h, isnormalf) {
 #if defined(__BIONIC__)
   ASSERT_TRUE(isnormalf(123.0f));
   ASSERT_FALSE(isnormalf(float_subnormal()));
@@ -451,7 +458,7 @@
 #endif // __BIONIC__
 }
 
-TEST(MATH_TEST, __isnormall) {
+TEST(math_h, __isnormall) {
 #if defined(__BIONIC__)
   ASSERT_TRUE(__isnormall(123.0L));
   ASSERT_FALSE(__isnormall(ldouble_subnormal()));
@@ -460,7 +467,7 @@
 #endif // __BIONIC__
 }
 
-TEST(MATH_TEST, isnormall) {
+TEST(math_h, isnormall) {
 #if defined(__BIONIC__)
   ASSERT_TRUE(isnormall(123.0L));
   ASSERT_FALSE(isnormall(ldouble_subnormal()));
@@ -474,370 +481,370 @@
 extern "C" int __signbitf(float);
 extern "C" int __signbitl(long double);
 
-TEST(MATH_TEST, __signbit) {
+TEST(math_h, __signbit) {
   ASSERT_EQ(0, __signbit(0.0));
   ASSERT_EQ(0, __signbit(1.0));
   ASSERT_NE(0, __signbit(-1.0));
 }
 
-TEST(MATH_TEST, __signbitf) {
+TEST(math_h, __signbitf) {
   ASSERT_EQ(0, __signbitf(0.0f));
   ASSERT_EQ(0, __signbitf(1.0f));
   ASSERT_NE(0, __signbitf(-1.0f));
 }
 
-TEST(MATH_TEST, __signbitl) {
+TEST(math_h, __signbitl) {
   ASSERT_EQ(0L, __signbitl(0.0L));
   ASSERT_EQ(0L, __signbitl(1.0L));
   ASSERT_NE(0L, __signbitl(-1.0L));
 }
 
-TEST(MATH_TEST, acos) {
+TEST(math_h, acos) {
   ASSERT_DOUBLE_EQ(M_PI/2.0, acos(0.0));
 }
 
-TEST(MATH_TEST, acosf) {
+TEST(math_h, acosf) {
   ASSERT_FLOAT_EQ(static_cast<float>(M_PI)/2.0f, acosf(0.0f));
 }
 
-TEST(MATH_TEST, acosl) {
+TEST(math_h, acosl) {
   ASSERT_DOUBLE_EQ(M_PI/2.0L, acosl(0.0L));
 }
 
-TEST(MATH_TEST, asin) {
+TEST(math_h, asin) {
   ASSERT_DOUBLE_EQ(0.0, asin(0.0));
 }
 
-TEST(MATH_TEST, asinf) {
+TEST(math_h, asinf) {
   ASSERT_FLOAT_EQ(0.0f, asinf(0.0f));
 }
 
-TEST(MATH_TEST, asinl) {
+TEST(math_h, asinl) {
   ASSERT_DOUBLE_EQ(0.0L, asinl(0.0L));
 }
 
-TEST(MATH_TEST, atan) {
+TEST(math_h, atan) {
   ASSERT_DOUBLE_EQ(0.0, atan(0.0));
 }
 
-TEST(MATH_TEST, atanf) {
+TEST(math_h, atanf) {
   ASSERT_FLOAT_EQ(0.0f, atanf(0.0f));
 }
 
-TEST(MATH_TEST, atanl) {
+TEST(math_h, atanl) {
   ASSERT_DOUBLE_EQ(0.0L, atanl(0.0L));
 }
 
-TEST(MATH_TEST, atan2) {
+TEST(math_h, atan2) {
   ASSERT_DOUBLE_EQ(0.0, atan2(0.0, 0.0));
 }
 
-TEST(MATH_TEST, atan2f) {
+TEST(math_h, atan2f) {
   ASSERT_FLOAT_EQ(0.0f, atan2f(0.0f, 0.0f));
 }
 
-TEST(MATH_TEST, atan2l) {
+TEST(math_h, atan2l) {
   ASSERT_DOUBLE_EQ(0.0L, atan2l(0.0L, 0.0L));
 }
 
-TEST(MATH_TEST, cos) {
+TEST(math_h, cos) {
   ASSERT_DOUBLE_EQ(1.0, cos(0.0));
 }
 
-TEST(MATH_TEST, cosf) {
+TEST(math_h, cosf) {
   ASSERT_FLOAT_EQ(1.0f, cosf(0.0f));
 }
 
-TEST(MATH_TEST, cosl) {
+TEST(math_h, cosl) {
   ASSERT_DOUBLE_EQ(1.0L, cosl(0.0L));
 }
 
-TEST(MATH_TEST, sin) {
+TEST(math_h, sin) {
   ASSERT_DOUBLE_EQ(0.0, sin(0.0));
 }
 
-TEST(MATH_TEST, sinf) {
+TEST(math_h, sinf) {
   ASSERT_FLOAT_EQ(0.0f, sinf(0.0f));
 }
 
-TEST(MATH_TEST, sinl) {
+TEST(math_h, sinl) {
   ASSERT_DOUBLE_EQ(0.0L, sinl(0.0L));
 }
 
-TEST(MATH_TEST, sincos) {
+TEST(math_h, sincos) {
   double s, c;
   sincos(0.0, &s, &c);
   ASSERT_DOUBLE_EQ(0.0, s);
   ASSERT_DOUBLE_EQ(1.0, c);
 }
 
-TEST(MATH_TEST, sincosf) {
+TEST(math_h, sincosf) {
   float s, c;
   sincosf(0.0f, &s, &c);
   ASSERT_FLOAT_EQ(0.0f, s);
   ASSERT_FLOAT_EQ(1.0f, c);
 }
 
-TEST(MATH_TEST, sincosl) {
+TEST(math_h, sincosl) {
   long double s, c;
   sincosl(0.0L, &s, &c);
   ASSERT_DOUBLE_EQ(0.0L, s);
   ASSERT_DOUBLE_EQ(1.0L, c);
 }
 
-TEST(MATH_TEST, tan) {
+TEST(math_h, tan) {
   ASSERT_DOUBLE_EQ(0.0, tan(0.0));
 }
 
-TEST(MATH_TEST, tanf) {
+TEST(math_h, tanf) {
   ASSERT_FLOAT_EQ(0.0f, tanf(0.0f));
 }
 
-TEST(MATH_TEST, tanl) {
+TEST(math_h, tanl) {
   ASSERT_DOUBLE_EQ(0.0L, tanl(0.0L));
 }
 
-TEST(MATH_TEST, acosh) {
+TEST(math_h, acosh) {
   ASSERT_DOUBLE_EQ(0.0, acosh(1.0));
 }
 
-TEST(MATH_TEST, acoshf) {
+TEST(math_h, acoshf) {
   ASSERT_FLOAT_EQ(0.0f, acoshf(1.0f));
 }
 
-TEST(MATH_TEST, acoshl) {
+TEST(math_h, acoshl) {
   ASSERT_DOUBLE_EQ(0.0L, acoshl(1.0L));
 }
 
-TEST(MATH_TEST, asinh) {
+TEST(math_h, asinh) {
   ASSERT_DOUBLE_EQ(0.0, asinh(0.0));
 }
 
-TEST(MATH_TEST, asinhf) {
+TEST(math_h, asinhf) {
   ASSERT_FLOAT_EQ(0.0f, asinhf(0.0f));
 }
 
-TEST(MATH_TEST, asinhl) {
+TEST(math_h, asinhl) {
   ASSERT_DOUBLE_EQ(0.0L, asinhl(0.0L));
 }
 
-TEST(MATH_TEST, atanh) {
+TEST(math_h, atanh) {
   ASSERT_DOUBLE_EQ(0.0, atanh(0.0));
 }
 
-TEST(MATH_TEST, atanhf) {
+TEST(math_h, atanhf) {
   ASSERT_FLOAT_EQ(0.0f, atanhf(0.0f));
 }
 
-TEST(MATH_TEST, atanhl) {
+TEST(math_h, atanhl) {
   ASSERT_DOUBLE_EQ(0.0L, atanhl(0.0L));
 }
 
-TEST(MATH_TEST, cosh) {
+TEST(math_h, cosh) {
   ASSERT_DOUBLE_EQ(1.0, cosh(0.0));
 }
 
-TEST(MATH_TEST, coshf) {
+TEST(math_h, coshf) {
   ASSERT_FLOAT_EQ(1.0f, coshf(0.0f));
 }
 
-TEST(MATH_TEST, coshl) {
+TEST(math_h, coshl) {
   ASSERT_DOUBLE_EQ(1.0L, coshl(0.0L));
 }
 
-TEST(MATH_TEST, sinh) {
+TEST(math_h, sinh) {
   ASSERT_DOUBLE_EQ(0.0, sinh(0.0));
 }
 
-TEST(MATH_TEST, sinhf) {
+TEST(math_h, sinhf) {
   ASSERT_FLOAT_EQ(0.0f, sinhf(0.0f));
 }
 
-TEST(MATH_TEST, sinhl) {
+TEST(math_h, sinhl) {
   ASSERT_DOUBLE_EQ(0.0L, sinhl(0.0L));
 }
 
-TEST(MATH_TEST, tanh) {
+TEST(math_h, tanh) {
   ASSERT_DOUBLE_EQ(0.0, tanh(0.0));
 }
 
-TEST(MATH_TEST, tanhf) {
+TEST(math_h, tanhf) {
   ASSERT_FLOAT_EQ(0.0f, tanhf(0.0f));
 }
 
-TEST(MATH_TEST, tanhl) {
+TEST(math_h, tanhl) {
   ASSERT_DOUBLE_EQ(0.0L, tanhl(0.0L));
 }
 
-TEST(MATH_TEST, log) {
+TEST(math_h, log) {
   ASSERT_DOUBLE_EQ(1.0, log(M_E));
 }
 
-TEST(MATH_TEST, logf) {
+TEST(math_h, logf) {
   ASSERT_FLOAT_EQ(1.0f, logf(static_cast<float>(M_E)));
 }
 
-TEST(MATH_TEST, logl) {
+TEST(math_h, logl) {
   ASSERT_DOUBLE_EQ(1.0L, logl(M_E));
 }
 
-TEST(MATH_TEST, log2) {
+TEST(math_h, log2) {
   ASSERT_DOUBLE_EQ(12.0, log2(4096.0));
 }
 
-TEST(MATH_TEST, log2f) {
+TEST(math_h, log2f) {
   ASSERT_FLOAT_EQ(12.0f, log2f(4096.0f));
 }
 
-TEST(MATH_TEST, log2l) {
+TEST(math_h, log2l) {
   ASSERT_DOUBLE_EQ(12.0L, log2l(4096.0L));
 }
 
-TEST(MATH_TEST, log10) {
+TEST(math_h, log10) {
   ASSERT_DOUBLE_EQ(3.0, log10(1000.0));
 }
 
-TEST(MATH_TEST, log10f) {
+TEST(math_h, log10f) {
   ASSERT_FLOAT_EQ(3.0f, log10f(1000.0f));
 }
 
-TEST(MATH_TEST, log10l) {
+TEST(math_h, log10l) {
   ASSERT_DOUBLE_EQ(3.0L, log10l(1000.0L));
 }
 
-TEST(MATH_TEST, cbrt) {
+TEST(math_h, cbrt) {
   ASSERT_DOUBLE_EQ(3.0, cbrt(27.0));
 }
 
-TEST(MATH_TEST, cbrtf) {
+TEST(math_h, cbrtf) {
   ASSERT_FLOAT_EQ(3.0f, cbrtf(27.0f));
 }
 
-TEST(MATH_TEST, cbrtl) {
+TEST(math_h, cbrtl) {
   ASSERT_DOUBLE_EQ(3.0L, cbrtl(27.0L));
 }
 
-TEST(MATH_TEST, sqrt) {
+TEST(math_h, sqrt) {
   ASSERT_DOUBLE_EQ(2.0, sqrt(4.0));
 }
 
-TEST(MATH_TEST, sqrtf) {
+TEST(math_h, sqrtf) {
   ASSERT_FLOAT_EQ(2.0f, sqrtf(4.0f));
 }
 
-TEST(MATH_TEST, sqrtl) {
+TEST(math_h, sqrtl) {
   ASSERT_DOUBLE_EQ(2.0L, sqrtl(4.0L));
 }
 
-TEST(MATH_TEST, exp) {
+TEST(math_h, exp) {
   ASSERT_DOUBLE_EQ(1.0, exp(0.0));
   ASSERT_DOUBLE_EQ(M_E, exp(1.0));
 }
 
-TEST(MATH_TEST, expf) {
+TEST(math_h, expf) {
   ASSERT_FLOAT_EQ(1.0f, expf(0.0f));
   ASSERT_FLOAT_EQ(static_cast<float>(M_E), expf(1.0f));
 }
 
-TEST(MATH_TEST, expl) {
+TEST(math_h, expl) {
   ASSERT_DOUBLE_EQ(1.0L, expl(0.0L));
   ASSERT_DOUBLE_EQ(M_E, expl(1.0L));
 }
 
-TEST(MATH_TEST, exp2) {
+TEST(math_h, exp2) {
   ASSERT_DOUBLE_EQ(8.0, exp2(3.0));
 }
 
-TEST(MATH_TEST, exp2f) {
+TEST(math_h, exp2f) {
   ASSERT_FLOAT_EQ(8.0f, exp2f(3.0f));
 }
 
-TEST(MATH_TEST, exp2l) {
+TEST(math_h, exp2l) {
   ASSERT_DOUBLE_EQ(8.0L, exp2l(3.0L));
 }
 
-TEST(MATH_TEST, expm1) {
+TEST(math_h, expm1) {
   ASSERT_DOUBLE_EQ(M_E - 1.0, expm1(1.0));
 }
 
-TEST(MATH_TEST, expm1f) {
+TEST(math_h, expm1f) {
   ASSERT_FLOAT_EQ(static_cast<float>(M_E) - 1.0f, expm1f(1.0f));
 }
 
-TEST(MATH_TEST, expm1l) {
+TEST(math_h, expm1l) {
   ASSERT_DOUBLE_EQ(M_E - 1.0L, expm1l(1.0L));
 }
 
-TEST(MATH_TEST, pow) {
+TEST(math_h, pow) {
   ASSERT_TRUE(isnan(pow(nan(""), 3.0)));
   ASSERT_DOUBLE_EQ(1.0, (pow(1.0, nan(""))));
   ASSERT_TRUE(isnan(pow(2.0, nan(""))));
   ASSERT_DOUBLE_EQ(8.0, pow(2.0, 3.0));
 }
 
-TEST(MATH_TEST, powf) {
+TEST(math_h, powf) {
   ASSERT_TRUE(isnanf(powf(nanf(""), 3.0f)));
   ASSERT_FLOAT_EQ(1.0f, (powf(1.0f, nanf(""))));
   ASSERT_TRUE(isnanf(powf(2.0f, nanf(""))));
   ASSERT_FLOAT_EQ(8.0f, powf(2.0f, 3.0f));
 }
 
-TEST(MATH_TEST, powl) {
+TEST(math_h, powl) {
   ASSERT_TRUE(__isnanl(powl(nanl(""), 3.0L)));
   ASSERT_DOUBLE_EQ(1.0L, (powl(1.0L, nanl(""))));
   ASSERT_TRUE(__isnanl(powl(2.0L, nanl(""))));
   ASSERT_DOUBLE_EQ(8.0L, powl(2.0L, 3.0L));
 }
 
-TEST(MATH_TEST, ceil) {
+TEST(math_h, ceil) {
   ASSERT_DOUBLE_EQ(1.0, ceil(0.9));
 }
 
-TEST(MATH_TEST, ceilf) {
+TEST(math_h, ceilf) {
   ASSERT_FLOAT_EQ(1.0f, ceilf(0.9f));
 }
 
-TEST(MATH_TEST, ceill) {
+TEST(math_h, ceill) {
   ASSERT_DOUBLE_EQ(1.0L, ceill(0.9L));
 }
 
-TEST(MATH_TEST, floor) {
+TEST(math_h, floor) {
   ASSERT_DOUBLE_EQ(1.0, floor(1.1));
 }
 
-TEST(MATH_TEST, floorf) {
+TEST(math_h, floorf) {
   ASSERT_FLOAT_EQ(1.0f, floorf(1.1f));
 }
 
-TEST(MATH_TEST, floorl) {
+TEST(math_h, floorl) {
   ASSERT_DOUBLE_EQ(1.0L, floorl(1.1L));
 }
 
-TEST(MATH_TEST, fabs) {
+TEST(math_h, fabs) {
   ASSERT_DOUBLE_EQ(1.0, fabs(-1.0));
 }
 
-TEST(MATH_TEST, fabsf) {
+TEST(math_h, fabsf) {
   ASSERT_FLOAT_EQ(1.0f, fabsf(-1.0f));
 }
 
-TEST(MATH_TEST, fabsl) {
+TEST(math_h, fabsl) {
   ASSERT_DOUBLE_EQ(1.0L, fabsl(-1.0L));
 }
 
-TEST(MATH_TEST, ldexp) {
+TEST(math_h, ldexp) {
   ASSERT_DOUBLE_EQ(16.0, ldexp(2.0, 3.0));
 }
 
-TEST(MATH_TEST, ldexpf) {
+TEST(math_h, ldexpf) {
   ASSERT_FLOAT_EQ(16.0f, ldexpf(2.0f, 3.0f));
 }
 
-TEST(MATH_TEST, ldexpl) {
+TEST(math_h, ldexpl) {
   ASSERT_DOUBLE_EQ(16.0L, ldexpl(2.0L, 3.0));
 }
 
-TEST(MATH_TEST, fmod) {
+TEST(math_h, fmod) {
   ASSERT_DOUBLE_EQ(2.0, fmod(12.0, 10.0));
 
   // If x is an infinity, NaN is returned.
@@ -852,7 +859,7 @@
   ASSERT_TRUE(isnan(fmod(3.0, 0.0)));
 }
 
-TEST(MATH_TEST, fmodf) {
+TEST(math_h, fmodf) {
   ASSERT_FLOAT_EQ(2.0f, fmodf(12.0f, 10.0f));
 
   // If x is an infinity, NaN is returned.
@@ -867,7 +874,7 @@
   ASSERT_TRUE(isnanf(fmodf(3.0f, 0.0f)));
 }
 
-TEST(MATH_TEST, fmodl) {
+TEST(math_h, fmodl) {
   ASSERT_DOUBLE_EQ(2.0L, fmodl(12.0L, 10.0L));
 
   // If x is an infinity, NaN is returned.
@@ -882,7 +889,7 @@
   ASSERT_TRUE(isnanl(fmodl(3.0L, 0.0L)));
 }
 
-TEST(MATH_TEST, remainder) {
+TEST(math_h, remainder) {
   ASSERT_DOUBLE_EQ(2.0, remainder(12.0, 10.0));
 
   // If x or y is a NaN, NaN is returned.
@@ -897,7 +904,7 @@
   ASSERT_TRUE(isnan(remainder(12.0, 0.0)));
 }
 
-TEST(MATH_TEST, remainderf) {
+TEST(math_h, remainderf) {
   ASSERT_FLOAT_EQ(2.0f, remainderf(12.0f, 10.0f));
 
   // If x or y is a NaN, NaN is returned.
@@ -912,7 +919,7 @@
   ASSERT_TRUE(isnanf(remainderf(12.0f, 0.0f)));
 }
 
-TEST(MATH_TEST, remainderl) {
+TEST(math_h, remainderl) {
   ASSERT_DOUBLE_EQ(2.0L, remainderl(12.0L, 10.0L));
 
   // If x or y is a NaN, NaN is returned.
@@ -927,63 +934,63 @@
   ASSERT_TRUE(isnanl(remainderl(12.0L, 0.0L)));
 }
 
-TEST(MATH_TEST, drem) {
+TEST(math_h, drem) {
   ASSERT_DOUBLE_EQ(2.0, drem(12.0, 10.0));
 }
 
-TEST(MATH_TEST, dremf) {
+TEST(math_h, dremf) {
   ASSERT_FLOAT_EQ(2.0f, dremf(12.0f, 10.0f));
 }
 
-TEST(MATH_TEST, fmax) {
+TEST(math_h, fmax) {
   ASSERT_DOUBLE_EQ(12.0, fmax(12.0, 10.0));
   ASSERT_DOUBLE_EQ(12.0, fmax(12.0, nan("")));
   ASSERT_DOUBLE_EQ(12.0, fmax(nan(""), 12.0));
 }
 
-TEST(MATH_TEST, fmaxf) {
+TEST(math_h, fmaxf) {
   ASSERT_FLOAT_EQ(12.0f, fmaxf(12.0f, 10.0f));
   ASSERT_FLOAT_EQ(12.0f, fmaxf(12.0f, nanf("")));
   ASSERT_FLOAT_EQ(12.0f, fmaxf(nanf(""), 12.0f));
 }
 
-TEST(MATH_TEST, fmaxl) {
+TEST(math_h, fmaxl) {
   ASSERT_DOUBLE_EQ(12.0L, fmaxl(12.0L, 10.0L));
   ASSERT_DOUBLE_EQ(12.0L, fmaxl(12.0L, nanl("")));
   ASSERT_DOUBLE_EQ(12.0L, fmaxl(nanl(""), 12.0L));
 }
 
-TEST(MATH_TEST, fmin) {
+TEST(math_h, fmin) {
   ASSERT_DOUBLE_EQ(10.0, fmin(12.0, 10.0));
   ASSERT_DOUBLE_EQ(12.0, fmin(12.0, nan("")));
   ASSERT_DOUBLE_EQ(12.0, fmin(nan(""), 12.0));
 }
 
-TEST(MATH_TEST, fminf) {
+TEST(math_h, fminf) {
   ASSERT_FLOAT_EQ(10.0f, fminf(12.0f, 10.0f));
   ASSERT_FLOAT_EQ(12.0f, fminf(12.0f, nanf("")));
   ASSERT_FLOAT_EQ(12.0f, fminf(nanf(""), 12.0f));
 }
 
-TEST(MATH_TEST, fminl) {
+TEST(math_h, fminl) {
   ASSERT_DOUBLE_EQ(10.0L, fminl(12.0L, 10.0L));
   ASSERT_DOUBLE_EQ(12.0L, fminl(12.0L, nanl("")));
   ASSERT_DOUBLE_EQ(12.0L, fminl(nanl(""), 12.0L));
 }
 
-TEST(MATH_TEST, fma) {
+TEST(math_h, fma) {
   ASSERT_DOUBLE_EQ(10.0, fma(2.0, 3.0, 4.0));
 }
 
-TEST(MATH_TEST, fmaf) {
+TEST(math_h, fmaf) {
   ASSERT_FLOAT_EQ(10.0f, fmaf(2.0f, 3.0f, 4.0f));
 }
 
-TEST(MATH_TEST, fmal) {
+TEST(math_h, fmal) {
   ASSERT_DOUBLE_EQ(10.0L, fmal(2.0L, 3.0L, 4.0L));
 }
 
-TEST(MATH_TEST, hypot) {
+TEST(math_h, hypot) {
   ASSERT_DOUBLE_EQ(5.0, hypot(3.0, 4.0));
 
   // If x or y is an infinity, returns positive infinity.
@@ -997,7 +1004,7 @@
   ASSERT_TRUE(isnan(hypot(nan(""), 4.0)));
 }
 
-TEST(MATH_TEST, hypotf) {
+TEST(math_h, hypotf) {
   ASSERT_FLOAT_EQ(5.0f, hypotf(3.0f, 4.0f));
 
   // If x or y is an infinity, returns positive infinity.
@@ -1011,7 +1018,7 @@
   ASSERT_TRUE(isnanf(hypotf(nanf(""), 4.0f)));
 }
 
-TEST(MATH_TEST, hypotl) {
+TEST(math_h, hypotl) {
   ASSERT_DOUBLE_EQ(5.0L, hypotl(3.0L, 4.0L));
 
   // If x or y is an infinity, returns positive infinity.
@@ -1025,31 +1032,31 @@
   ASSERT_TRUE(isnanl(hypotl(nanl(""), 4.0L)));
 }
 
-TEST(MATH_TEST, erf) {
+TEST(math_h, erf) {
   ASSERT_DOUBLE_EQ(0.84270079294971489, erf(1.0));
 }
 
-TEST(MATH_TEST, erff) {
+TEST(math_h, erff) {
   ASSERT_FLOAT_EQ(0.84270078f, erff(1.0f));
 }
 
-TEST(MATH_TEST, erfl) {
+TEST(math_h, erfl) {
   ASSERT_DOUBLE_EQ(0.84270079294971489L, erfl(1.0L));
 }
 
-TEST(MATH_TEST, erfc) {
+TEST(math_h, erfc) {
   ASSERT_DOUBLE_EQ(0.15729920705028513, erfc(1.0));
 }
 
-TEST(MATH_TEST, erfcf) {
+TEST(math_h, erfcf) {
   ASSERT_FLOAT_EQ(0.15729921f, erfcf(1.0f));
 }
 
-TEST(MATH_TEST, erfcl) {
+TEST(math_h, erfcl) {
   ASSERT_DOUBLE_EQ(0.15729920705028513L, erfcl(1.0L));
 }
 
-TEST(MATH_TEST, lrint) {
+TEST(math_h, lrint) {
   auto guard = android::base::make_scope_guard([]() { fesetenv(FE_DFL_ENV); });
 
   fesetround(FE_UPWARD); // lrint/lrintf/lrintl obey the rounding mode.
@@ -1071,7 +1078,7 @@
   EXPECT_EQ(1234L, llrintl(1234.01L));
 }
 
-TEST(MATH_TEST, rint) {
+TEST(math_h, rint) {
   auto guard = android::base::make_scope_guard([]() { fesetenv(FE_DFL_ENV); });
 
   fesetround(FE_UPWARD); // rint/rintf/rintl obey the rounding mode.
@@ -1099,7 +1106,7 @@
   ASSERT_EQ(1234.0, rintl(1234.01L));
 }
 
-TEST(MATH_TEST, nearbyint) {
+TEST(math_h, nearbyint) {
   auto guard = android::base::make_scope_guard([]() { fesetenv(FE_DFL_ENV); });
   fesetround(FE_UPWARD); // nearbyint/nearbyintf/nearbyintl obey the rounding mode.
   feclearexcept(FE_ALL_EXCEPT); // nearbyint/nearbyintf/nearbyintl don't set the FE_INEXACT flag.
@@ -1126,7 +1133,7 @@
   ASSERT_EQ(1234.0, nearbyintl(1234.01L));
 }
 
-TEST(MATH_TEST, lround) {
+TEST(math_h, lround) {
   auto guard = android::base::make_scope_guard([]() { fesetenv(FE_DFL_ENV); });
   fesetround(FE_UPWARD); // lround ignores the rounding mode.
   ASSERT_EQ(1234, lround(1234.01));
@@ -1134,7 +1141,7 @@
   ASSERT_EQ(1234, lroundl(1234.01L));
 }
 
-TEST(MATH_TEST, llround) {
+TEST(math_h, llround) {
   auto guard = android::base::make_scope_guard([]() { fesetenv(FE_DFL_ENV); });
   fesetround(FE_UPWARD); // llround ignores the rounding mode.
   ASSERT_EQ(1234L, llround(1234.01));
@@ -1142,7 +1149,7 @@
   ASSERT_EQ(1234L, llroundl(1234.01L));
 }
 
-TEST(MATH_TEST, ilogb) {
+TEST(math_h, ilogb) {
   ASSERT_EQ(FP_ILOGB0, ilogb(0.0));
   ASSERT_EQ(FP_ILOGBNAN, ilogb(nan("")));
   ASSERT_EQ(INT_MAX, ilogb(HUGE_VAL));
@@ -1151,7 +1158,7 @@
   ASSERT_EQ(3, ilogb(10.0));
 }
 
-TEST(MATH_TEST, ilogbf) {
+TEST(math_h, ilogbf) {
   ASSERT_EQ(FP_ILOGB0, ilogbf(0.0f));
   ASSERT_EQ(FP_ILOGBNAN, ilogbf(nanf("")));
   ASSERT_EQ(INT_MAX, ilogbf(HUGE_VALF));
@@ -1160,7 +1167,7 @@
   ASSERT_EQ(3, ilogbf(10.0f));
 }
 
-TEST(MATH_TEST, ilogbl) {
+TEST(math_h, ilogbl) {
   ASSERT_EQ(FP_ILOGB0, ilogbl(0.0L));
   ASSERT_EQ(FP_ILOGBNAN, ilogbl(nanl("")));
   ASSERT_EQ(INT_MAX, ilogbl(HUGE_VALL));
@@ -1169,7 +1176,7 @@
   ASSERT_EQ(3L, ilogbl(10.0L));
 }
 
-TEST(MATH_TEST, logb) {
+TEST(math_h, logb) {
   ASSERT_EQ(-HUGE_VAL, logb(0.0));
   ASSERT_TRUE(isnan(logb(nan(""))));
   ASSERT_TRUE(isinf(logb(HUGE_VAL)));
@@ -1178,7 +1185,7 @@
   ASSERT_EQ(3.0, logb(10.0));
 }
 
-TEST(MATH_TEST, logbf) {
+TEST(math_h, logbf) {
   ASSERT_EQ(-HUGE_VALF, logbf(0.0f));
   ASSERT_TRUE(isnanf(logbf(nanf(""))));
   ASSERT_TRUE(isinff(logbf(HUGE_VALF)));
@@ -1187,7 +1194,7 @@
   ASSERT_EQ(3.0f, logbf(10.0f));
 }
 
-TEST(MATH_TEST, logbl) {
+TEST(math_h, logbl) {
   ASSERT_EQ(-HUGE_VAL, logbl(0.0L));
   ASSERT_TRUE(isnan(logbl(nanl(""))));
   ASSERT_TRUE(isinf(logbl(HUGE_VALL)));
@@ -1196,7 +1203,7 @@
   ASSERT_EQ(3.0L, logbl(10.0L));
 }
 
-TEST(MATH_TEST, log1p) {
+TEST(math_h, log1p) {
   ASSERT_EQ(-HUGE_VAL, log1p(-1.0));
   ASSERT_TRUE(isnan(log1p(nan(""))));
   ASSERT_TRUE(isinf(log1p(HUGE_VAL)));
@@ -1204,7 +1211,7 @@
   ASSERT_DOUBLE_EQ(1.0, log1p(M_E - 1.0));
 }
 
-TEST(MATH_TEST, log1pf) {
+TEST(math_h, log1pf) {
   ASSERT_EQ(-HUGE_VALF, log1pf(-1.0f));
   ASSERT_TRUE(isnanf(log1pf(nanf(""))));
   ASSERT_TRUE(isinff(log1pf(HUGE_VALF)));
@@ -1212,7 +1219,7 @@
   ASSERT_FLOAT_EQ(1.0f, log1pf(static_cast<float>(M_E) - 1.0f));
 }
 
-TEST(MATH_TEST, log1pl) {
+TEST(math_h, log1pl) {
   ASSERT_EQ(-HUGE_VALL, log1pl(-1.0L));
   ASSERT_TRUE(isnanl(log1pl(nanl(""))));
   ASSERT_TRUE(isinfl(log1pl(HUGE_VALL)));
@@ -1220,25 +1227,25 @@
   ASSERT_DOUBLE_EQ(1.0L, log1pl(M_E - 1.0L));
 }
 
-TEST(MATH_TEST, fdim) {
+TEST(math_h, fdim) {
   ASSERT_DOUBLE_EQ(0.0, fdim(1.0, 1.0));
   ASSERT_DOUBLE_EQ(1.0, fdim(2.0, 1.0));
   ASSERT_DOUBLE_EQ(0.0, fdim(1.0, 2.0));
 }
 
-TEST(MATH_TEST, fdimf) {
+TEST(math_h, fdimf) {
   ASSERT_FLOAT_EQ(0.0f, fdimf(1.0f, 1.0f));
   ASSERT_FLOAT_EQ(1.0f, fdimf(2.0f, 1.0f));
   ASSERT_FLOAT_EQ(0.0f, fdimf(1.0f, 2.0f));
 }
 
-TEST(MATH_TEST, fdiml) {
+TEST(math_h, fdiml) {
   ASSERT_DOUBLE_EQ(0.0L, fdiml(1.0L, 1.0L));
   ASSERT_DOUBLE_EQ(1.0L, fdiml(2.0L, 1.0L));
   ASSERT_DOUBLE_EQ(0.0L, fdiml(1.0L, 2.0L));
 }
 
-TEST(MATH_TEST, round) {
+TEST(math_h, round) {
   auto guard = android::base::make_scope_guard([]() { fesetenv(FE_DFL_ENV); });
   fesetround(FE_TOWARDZERO); // round ignores the rounding mode and always rounds away from zero.
   ASSERT_DOUBLE_EQ(1.0, round(0.5));
@@ -1250,7 +1257,7 @@
   ASSERT_DOUBLE_EQ(-HUGE_VAL, round(-HUGE_VAL));
 }
 
-TEST(MATH_TEST, roundf) {
+TEST(math_h, roundf) {
   auto guard = android::base::make_scope_guard([]() { fesetenv(FE_DFL_ENV); });
   fesetround(FE_TOWARDZERO); // roundf ignores the rounding mode and always rounds away from zero.
   ASSERT_FLOAT_EQ(1.0f, roundf(0.5f));
@@ -1262,7 +1269,7 @@
   ASSERT_FLOAT_EQ(-HUGE_VALF, roundf(-HUGE_VALF));
 }
 
-TEST(MATH_TEST, roundl) {
+TEST(math_h, roundl) {
   auto guard = android::base::make_scope_guard([]() { fesetenv(FE_DFL_ENV); });
   fesetround(FE_TOWARDZERO); // roundl ignores the rounding mode and always rounds away from zero.
   ASSERT_DOUBLE_EQ(1.0L, roundl(0.5L));
@@ -1274,7 +1281,7 @@
   ASSERT_DOUBLE_EQ(-HUGE_VALL, roundl(-HUGE_VALL));
 }
 
-TEST(MATH_TEST, trunc) {
+TEST(math_h, trunc) {
   auto guard = android::base::make_scope_guard([]() { fesetenv(FE_DFL_ENV); });
   fesetround(FE_UPWARD); // trunc ignores the rounding mode and always rounds toward zero.
   ASSERT_DOUBLE_EQ(1.0, trunc(1.5));
@@ -1286,7 +1293,7 @@
   ASSERT_DOUBLE_EQ(-HUGE_VAL, trunc(-HUGE_VAL));
 }
 
-TEST(MATH_TEST, truncf) {
+TEST(math_h, truncf) {
   auto guard = android::base::make_scope_guard([]() { fesetenv(FE_DFL_ENV); });
   fesetround(FE_UPWARD); // truncf ignores the rounding mode and always rounds toward zero.
   ASSERT_FLOAT_EQ(1.0f, truncf(1.5f));
@@ -1298,7 +1305,7 @@
   ASSERT_FLOAT_EQ(-HUGE_VALF, truncf(-HUGE_VALF));
 }
 
-TEST(MATH_TEST, truncl) {
+TEST(math_h, truncl) {
   auto guard = android::base::make_scope_guard([]() { fesetenv(FE_DFL_ENV); });
   fesetround(FE_UPWARD); // truncl ignores the rounding mode and always rounds toward zero.
   ASSERT_DOUBLE_EQ(1.0L, truncl(1.5L));
@@ -1310,19 +1317,19 @@
   ASSERT_DOUBLE_EQ(-HUGE_VALL, truncl(-HUGE_VALL));
 }
 
-TEST(MATH_TEST, nextafter) {
+TEST(math_h, nextafter) {
   ASSERT_DOUBLE_EQ(0.0, nextafter(0.0, 0.0));
   ASSERT_DOUBLE_EQ(4.9406564584124654e-324, nextafter(0.0, 1.0));
   ASSERT_DOUBLE_EQ(-4.9406564584124654e-324, nextafter(0.0, -1.0));
 }
 
-TEST(MATH_TEST, nextafterf) {
+TEST(math_h, nextafterf) {
   ASSERT_FLOAT_EQ(0.0f, nextafterf(0.0f, 0.0f));
   ASSERT_FLOAT_EQ(1.4012985e-45f, nextafterf(0.0f, 1.0f));
   ASSERT_FLOAT_EQ(-1.4012985e-45f, nextafterf(0.0f, -1.0f));
 }
 
-TEST(MATH_TEST, nextafterl) {
+TEST(math_h, nextafterl) {
   ASSERT_DOUBLE_EQ(0.0L, nextafterl(0.0L, 0.0L));
   // Use a runtime value to accomodate the case when
   // sizeof(double) == sizeof(long double)
@@ -1331,19 +1338,19 @@
   ASSERT_DOUBLE_EQ(-smallest_positive, nextafterl(0.0L, -1.0L));
 }
 
-TEST(MATH_TEST, nexttoward) {
+TEST(math_h, nexttoward) {
   ASSERT_DOUBLE_EQ(0.0, nexttoward(0.0, 0.0L));
   ASSERT_DOUBLE_EQ(4.9406564584124654e-324, nexttoward(0.0, 1.0L));
   ASSERT_DOUBLE_EQ(-4.9406564584124654e-324, nexttoward(0.0, -1.0L));
 }
 
-TEST(MATH_TEST, nexttowardf) {
+TEST(math_h, nexttowardf) {
   ASSERT_FLOAT_EQ(0.0f, nexttowardf(0.0f, 0.0L));
   ASSERT_FLOAT_EQ(1.4012985e-45f, nexttowardf(0.0f, 1.0L));
   ASSERT_FLOAT_EQ(-1.4012985e-45f, nexttowardf(0.0f, -1.0L));
 }
 
-TEST(MATH_TEST, nexttowardl) {
+TEST(math_h, nexttowardl) {
   ASSERT_DOUBLE_EQ(0.0L, nexttowardl(0.0L, 0.0L));
   // Use a runtime value to accomodate the case when
   // sizeof(double) == sizeof(long double)
@@ -1352,40 +1359,40 @@
   ASSERT_DOUBLE_EQ(-smallest_positive, nexttowardl(0.0L, -1.0L));
 }
 
-TEST(MATH_TEST, copysign) {
+TEST(math_h, copysign) {
   ASSERT_DOUBLE_EQ(0.0, copysign(0.0, 1.0));
   ASSERT_DOUBLE_EQ(-0.0, copysign(0.0, -1.0));
   ASSERT_DOUBLE_EQ(2.0, copysign(2.0, 1.0));
   ASSERT_DOUBLE_EQ(-2.0, copysign(2.0, -1.0));
 }
 
-TEST(MATH_TEST, copysignf) {
+TEST(math_h, copysignf) {
   ASSERT_FLOAT_EQ(0.0f, copysignf(0.0f, 1.0f));
   ASSERT_FLOAT_EQ(-0.0f, copysignf(0.0f, -1.0f));
   ASSERT_FLOAT_EQ(2.0f, copysignf(2.0f, 1.0f));
   ASSERT_FLOAT_EQ(-2.0f, copysignf(2.0f, -1.0f));
 }
 
-TEST(MATH_TEST, copysignl) {
+TEST(math_h, copysignl) {
   ASSERT_DOUBLE_EQ(0.0L, copysignl(0.0L, 1.0L));
   ASSERT_DOUBLE_EQ(-0.0L, copysignl(0.0L, -1.0L));
   ASSERT_DOUBLE_EQ(2.0L, copysignl(2.0L, 1.0L));
   ASSERT_DOUBLE_EQ(-2.0L, copysignl(2.0L, -1.0L));
 }
 
-TEST(MATH_TEST, significand) {
+TEST(math_h, significand) {
   ASSERT_DOUBLE_EQ(0.0, significand(0.0));
   ASSERT_DOUBLE_EQ(1.2, significand(1.2));
   ASSERT_DOUBLE_EQ(1.53125, significand(12.25));
 }
 
-TEST(MATH_TEST, significandf) {
+TEST(math_h, significandf) {
   ASSERT_FLOAT_EQ(0.0f, significandf(0.0f));
   ASSERT_FLOAT_EQ(1.2f, significandf(1.2f));
   ASSERT_FLOAT_EQ(1.53125f, significandf(12.25f));
 }
 
-TEST(MATH_TEST, significandl) {
+TEST(math_h, significandl) {
 #if !defined(ANDROID_HOST_MUSL)
   ASSERT_DOUBLE_EQ(0.0L, significandl(0.0L));
   ASSERT_DOUBLE_EQ(1.2L, significandl(1.2L));
@@ -1395,40 +1402,39 @@
 #endif
 }
 
-
-TEST(MATH_TEST, scalb) {
+TEST(math_h, scalb) {
   ASSERT_DOUBLE_EQ(12.0, scalb(3.0, 2.0));
 }
 
-TEST(MATH_TEST, scalbf) {
+TEST(math_h, scalbf) {
   ASSERT_FLOAT_EQ(12.0f, scalbf(3.0f, 2.0f));
 }
 
-TEST(MATH_TEST, scalbln) {
+TEST(math_h, scalbln) {
   ASSERT_DOUBLE_EQ(12.0, scalbln(3.0, 2L));
 }
 
-TEST(MATH_TEST, scalblnf) {
+TEST(math_h, scalblnf) {
   ASSERT_FLOAT_EQ(12.0f, scalblnf(3.0f, 2L));
 }
 
-TEST(MATH_TEST, scalblnl) {
+TEST(math_h, scalblnl) {
   ASSERT_DOUBLE_EQ(12.0L, scalblnl(3.0L, 2L));
 }
 
-TEST(MATH_TEST, scalbn) {
+TEST(math_h, scalbn) {
   ASSERT_DOUBLE_EQ(12.0, scalbn(3.0, 2));
 }
 
-TEST(MATH_TEST, scalbnf) {
+TEST(math_h, scalbnf) {
   ASSERT_FLOAT_EQ(12.0f, scalbnf(3.0f, 2));
 }
 
-TEST(MATH_TEST, scalbnl) {
+TEST(math_h, scalbnl) {
   ASSERT_DOUBLE_EQ(12.0L, scalbnl(3.0L, 2));
 }
 
-TEST(MATH_TEST, gamma) {
+TEST(math_h, gamma) {
 #if !defined(ANDROID_HOST_MUSL)
   ASSERT_DOUBLE_EQ(log(24.0), gamma(5.0));
 #else
@@ -1436,7 +1442,7 @@
 #endif
 }
 
-TEST(MATH_TEST, gammaf) {
+TEST(math_h, gammaf) {
 #if !defined(ANDROID_HOST_MUSL)
   ASSERT_FLOAT_EQ(logf(24.0f), gammaf(5.0f));
 #else
@@ -1444,7 +1450,7 @@
 #endif
 }
 
-TEST(MATH_TEST, gamma_r) {
+TEST(math_h, gamma_r) {
 #if defined(__BIONIC__)
   int sign;
   ASSERT_DOUBLE_EQ(log(24.0), gamma_r(5.0, &sign));
@@ -1454,7 +1460,7 @@
 #endif // __BIONIC__
 }
 
-TEST(MATH_TEST, gammaf_r) {
+TEST(math_h, gammaf_r) {
 #if defined(__BIONIC__)
   int sign;
   ASSERT_FLOAT_EQ(logf(24.0f), gammaf_r(5.0f, &sign));
@@ -1464,25 +1470,25 @@
 #endif // __BIONIC__
 }
 
-TEST(MATH_TEST, lgamma) {
+TEST(math_h, lgamma) {
   ASSERT_DOUBLE_EQ(log(24.0), lgamma(5.0));
 }
 
-TEST(MATH_TEST, lgammaf) {
+TEST(math_h, lgammaf) {
   ASSERT_FLOAT_EQ(logf(24.0f), lgammaf(5.0f));
 }
 
-TEST(MATH_TEST, lgammal) {
+TEST(math_h, lgammal) {
   ASSERT_DOUBLE_EQ(logl(24.0L), lgammal(5.0L));
 }
 
-TEST(MATH_TEST, lgamma_r) {
+TEST(math_h, lgamma_r) {
   int sign;
   ASSERT_DOUBLE_EQ(log(24.0), lgamma_r(5.0, &sign));
   ASSERT_EQ(1, sign);
 }
 
-TEST(MATH_TEST, lgamma_r_17471883) {
+TEST(math_h, lgamma_r_17471883) {
   int sign;
 
   sign = 0;
@@ -1493,13 +1499,13 @@
   ASSERT_EQ(-1, sign);
 }
 
-TEST(MATH_TEST, lgammaf_r) {
+TEST(math_h, lgammaf_r) {
   int sign;
   ASSERT_FLOAT_EQ(logf(24.0f), lgammaf_r(5.0f, &sign));
   ASSERT_EQ(1, sign);
 }
 
-TEST(MATH_TEST, lgammaf_r_17471883) {
+TEST(math_h, lgammaf_r_17471883) {
   int sign;
 
   sign = 0;
@@ -1510,13 +1516,13 @@
   ASSERT_EQ(-1, sign);
 }
 
-TEST(MATH_TEST, lgammal_r) {
+TEST(math_h, lgammal_r) {
   int sign;
   ASSERT_DOUBLE_EQ(log(24.0L), lgamma_r(5.0L, &sign));
   ASSERT_EQ(1, sign);
 }
 
-TEST(MATH_TEST, lgammal_r_17471883) {
+TEST(math_h, lgammal_r_17471883) {
   int sign;
 
   sign = 0;
@@ -1527,142 +1533,142 @@
   ASSERT_EQ(-1, sign);
 }
 
-TEST(MATH_TEST, tgamma_NaN) {
+TEST(math_h, tgamma_NaN) {
   ASSERT_TRUE(isnan(tgamma(nan(""))));
   ASSERT_TRUE(isnanf(tgammaf(nanf(""))));
   ASSERT_TRUE(isnanl(tgammal(nanl(""))));
 }
 
-TEST(MATH_TEST, tgamma_inf) {
+TEST(math_h, tgamma_inf) {
   ASSERT_TRUE(isinf(tgamma(HUGE_VAL)));
   ASSERT_TRUE(isinff(tgammaf(HUGE_VALF)));
   ASSERT_TRUE(isinfl(tgammal(HUGE_VALL)));
 }
 
-TEST(MATH_TEST, tgamma_negative) {
+TEST(math_h, tgamma_negative) {
   ASSERT_TRUE(isnan(tgamma(-1.0)));
   ASSERT_TRUE(isnanf(tgammaf(-1.0f)));
   ASSERT_TRUE(isnanl(tgammal(-1.0L)));
 }
 
-TEST(MATH_TEST, tgamma) {
+TEST(math_h, tgamma) {
   ASSERT_DOUBLE_EQ(24.0, tgamma(5.0));
   ASSERT_DOUBLE_EQ(120.0, tgamma(6.0));
   ASSERT_TRUE(isinf(tgamma(172.0)));
 }
 
-TEST(MATH_TEST, tgammaf) {
+TEST(math_h, tgammaf) {
   ASSERT_FLOAT_EQ(24.0f, tgammaf(5.0f));
   ASSERT_FLOAT_EQ(120.0f, tgammaf(6.0f));
   ASSERT_TRUE(isinff(tgammaf(172.0f)));
 }
 
-TEST(MATH_TEST, tgammal) {
+TEST(math_h, tgammal) {
   ASSERT_DOUBLE_EQ(24.0L, tgammal(5.0L));
   ASSERT_DOUBLE_EQ(120.0L, tgammal(6.0L));
   ASSERT_TRUE(isinf(tgammal(172.0L)));
 }
 
-TEST(MATH_TEST, j0) {
+TEST(math_h, j0) {
   ASSERT_DOUBLE_EQ(1.0, j0(0.0));
   ASSERT_DOUBLE_EQ(0.76519768655796661, j0(1.0));
 }
 
-TEST(MATH_TEST, j0f) {
+TEST(math_h, j0f) {
   ASSERT_FLOAT_EQ(1.0f, j0f(0.0f));
   ASSERT_FLOAT_EQ(0.76519769f, j0f(1.0f));
 }
 
-TEST(MATH_TEST, j1) {
+TEST(math_h, j1) {
   ASSERT_DOUBLE_EQ(0.0, j1(0.0));
   ASSERT_DOUBLE_EQ(0.44005058574493355, j1(1.0));
 }
 
-TEST(MATH_TEST, j1f) {
+TEST(math_h, j1f) {
   ASSERT_FLOAT_EQ(0.0f, j1f(0.0f));
   ASSERT_FLOAT_EQ(0.44005057f, j1f(1.0f));
 }
 
-TEST(MATH_TEST, jn) {
+TEST(math_h, jn) {
   ASSERT_DOUBLE_EQ(0.0, jn(4, 0.0));
   ASSERT_DOUBLE_EQ(0.0024766389641099553, jn(4, 1.0));
 }
 
-TEST(MATH_TEST, jnf) {
+TEST(math_h, jnf) {
   ASSERT_FLOAT_EQ(0.0f, jnf(4, 0.0f));
   ASSERT_FLOAT_EQ(0.0024766389f, jnf(4, 1.0f));
 }
 
-TEST(MATH_TEST, y0) {
+TEST(math_h, y0) {
   ASSERT_DOUBLE_EQ(-HUGE_VAL, y0(0.0));
   ASSERT_DOUBLE_EQ(0.08825696421567697, y0(1.0));
 }
 
-TEST(MATH_TEST, y0f) {
+TEST(math_h, y0f) {
   ASSERT_FLOAT_EQ(-HUGE_VALF, y0f(0.0f));
   ASSERT_FLOAT_EQ(0.088256963f, y0f(1.0f));
 }
 
-TEST(MATH_TEST, y1) {
+TEST(math_h, y1) {
   ASSERT_DOUBLE_EQ(-HUGE_VAL, y1(0.0));
   ASSERT_DOUBLE_EQ(-0.78121282130028868, y1(1.0));
 }
 
-TEST(MATH_TEST, y1f) {
+TEST(math_h, y1f) {
   ASSERT_FLOAT_EQ(-HUGE_VALF, y1f(0.0f));
   ASSERT_FLOAT_EQ(-0.78121281f, y1f(1.0f));
 }
 
-TEST(MATH_TEST, yn) {
+TEST(math_h, yn) {
   ASSERT_DOUBLE_EQ(-HUGE_VAL, yn(4, 0.0));
   ASSERT_DOUBLE_EQ(-33.278423028972114, yn(4, 1.0));
 }
 
-TEST(MATH_TEST, ynf) {
+TEST(math_h, ynf) {
   ASSERT_FLOAT_EQ(-HUGE_VALF, ynf(4, 0.0f));
   ASSERT_FLOAT_EQ(-33.278423f, ynf(4, 1.0f));
 }
 
-TEST(MATH_TEST, frexp) {
+TEST(math_h, frexp) {
   int exp;
   double dr = frexp(1024.0, &exp);
   ASSERT_DOUBLE_EQ(1024.0, scalbn(dr, exp));
 }
 
-TEST(MATH_TEST, frexpf) {
+TEST(math_h, frexpf) {
   int exp;
   float fr = frexpf(1024.0f, &exp);
   ASSERT_FLOAT_EQ(1024.0f, scalbnf(fr, exp));
 }
 
-TEST(MATH_TEST, frexpl) {
+TEST(math_h, frexpl) {
   int exp;
   long double ldr = frexpl(1024.0L, &exp);
   ASSERT_DOUBLE_EQ(1024.0L, scalbnl(ldr, exp));
 }
 
-TEST(MATH_TEST, modf) {
+TEST(math_h, modf) {
   double di;
   double df = modf(123.75, &di);
   ASSERT_DOUBLE_EQ(123.0, di);
   ASSERT_DOUBLE_EQ(0.75, df);
 }
 
-TEST(MATH_TEST, modff) {
+TEST(math_h, modff) {
   float fi;
   float ff = modff(123.75f, &fi);
   ASSERT_FLOAT_EQ(123.0f, fi);
   ASSERT_FLOAT_EQ(0.75f, ff);
 }
 
-TEST(MATH_TEST, modfl) {
+TEST(math_h, modfl) {
   long double ldi;
   long double ldf = modfl(123.75L, &ldi);
   ASSERT_DOUBLE_EQ(123.0L, ldi);
   ASSERT_DOUBLE_EQ(0.75L, ldf);
 }
 
-TEST(MATH_TEST, remquo) {
+TEST(math_h, remquo) {
   int q;
   double d = remquo(13.0, 4.0, &q);
   ASSERT_EQ(3, q);
@@ -1680,7 +1686,7 @@
   ASSERT_TRUE(isnan(remquo(12.0, 0.0, &q)));
 }
 
-TEST(MATH_TEST, remquof) {
+TEST(math_h, remquof) {
   int q;
   float f = remquof(13.0f, 4.0f, &q);
   ASSERT_EQ(3, q);
@@ -1698,7 +1704,7 @@
   ASSERT_TRUE(isnanf(remquof(12.0f, 0.0f, &q)));
 }
 
-TEST(MATH_TEST, remquol) {
+TEST(math_h, remquol) {
   int q;
   long double ld = remquol(13.0L, 4.0L, &q);
   ASSERT_DOUBLE_EQ(3L, q);
@@ -1717,13 +1723,13 @@
 }
 
 // https://code.google.com/p/android/issues/detail?id=6697
-TEST(MATH_TEST, frexpf_public_bug_6697) {
+TEST(math_h, frexpf_public_bug_6697) {
   int exp;
   float fr = frexpf(14.1f, &exp);
   ASSERT_FLOAT_EQ(14.1f, scalbnf(fr, exp));
 }
 
-TEST(MATH_TEST, exp2_STRICT_ALIGN_OpenBSD_bug) {
+TEST(math_h, exp2_STRICT_ALIGN_OpenBSD_bug) {
   // OpenBSD/x86's libm had a bug here, but it was already fixed in FreeBSD:
   // http://svnweb.FreeBSD.org/base/head/lib/msun/src/math_private.h?revision=240827&view=markup
   ASSERT_DOUBLE_EQ(5.0, exp2(log2(5)));
@@ -1731,7 +1737,7 @@
   ASSERT_DOUBLE_EQ(5.0L, exp2l(log2l(5)));
 }
 
-TEST(MATH_TEST, nextafterl_OpenBSD_bug) {
+TEST(math_h, nextafterl_OpenBSD_bug) {
   // OpenBSD/x86's libm had a bug here.
   ASSERT_TRUE(nextafter(1.0, 0.0) - 1.0 < 0.0);
   ASSERT_TRUE(nextafterf(1.0f, 0.0f) - 1.0f < 0.0f);
@@ -1739,511 +1745,511 @@
 }
 
 #include "math_data/acos_intel_data.h"
-TEST(MATH_TEST, acos_intel) {
+TEST(math_h, acos_intel) {
   DoMathDataTest<1>(g_acos_intel_data, acos);
 }
 
 #include "math_data/acosf_intel_data.h"
-TEST(MATH_TEST, acosf_intel) {
+TEST(math_h, acosf_intel) {
   DoMathDataTest<1>(g_acosf_intel_data, acosf);
 }
 
 #include "math_data/acosh_intel_data.h"
-TEST(MATH_TEST, acosh_intel) {
+TEST(math_h, acosh_intel) {
   DoMathDataTest<2>(g_acosh_intel_data, acosh);
 }
 
 #include "math_data/acoshf_intel_data.h"
-TEST(MATH_TEST, acoshf_intel) {
+TEST(math_h, acoshf_intel) {
   DoMathDataTest<2>(g_acoshf_intel_data, acoshf);
 }
 
 #include "math_data/asin_intel_data.h"
-TEST(MATH_TEST, asin_intel) {
+TEST(math_h, asin_intel) {
   DoMathDataTest<1>(g_asin_intel_data, asin);
 }
 
 #include "math_data/asinf_intel_data.h"
-TEST(MATH_TEST, asinf_intel) {
+TEST(math_h, asinf_intel) {
   DoMathDataTest<1>(g_asinf_intel_data, asinf);
 }
 
 #include "math_data/asinh_intel_data.h"
-TEST(MATH_TEST, asinh_intel) {
+TEST(math_h, asinh_intel) {
   DoMathDataTest<2>(g_asinh_intel_data, asinh);
 }
 
 #include "math_data/asinhf_intel_data.h"
-TEST(MATH_TEST, asinhf_intel) {
+TEST(math_h, asinhf_intel) {
   DoMathDataTest<2>(g_asinhf_intel_data, asinhf);
 }
 
 #include "math_data/atan2_intel_data.h"
-TEST(MATH_TEST, atan2_intel) {
+TEST(math_h, atan2_intel) {
   DoMathDataTest<2>(g_atan2_intel_data, atan2);
 }
 
 #include "math_data/atan2f_intel_data.h"
-TEST(MATH_TEST, atan2f_intel) {
+TEST(math_h, atan2f_intel) {
   DoMathDataTest<2>(g_atan2f_intel_data, atan2f);
 }
 
 #include "math_data/atan_intel_data.h"
-TEST(MATH_TEST, atan_intel) {
+TEST(math_h, atan_intel) {
   DoMathDataTest<1>(g_atan_intel_data, atan);
 }
 
 #include "math_data/atanf_intel_data.h"
-TEST(MATH_TEST, atanf_intel) {
+TEST(math_h, atanf_intel) {
   DoMathDataTest<1>(g_atanf_intel_data, atanf);
 }
 
 #include "math_data/atanh_intel_data.h"
-TEST(MATH_TEST, atanh_intel) {
+TEST(math_h, atanh_intel) {
   DoMathDataTest<2>(g_atanh_intel_data, atanh);
 }
 
 #include "math_data/atanhf_intel_data.h"
-TEST(MATH_TEST, atanhf_intel) {
+TEST(math_h, atanhf_intel) {
   DoMathDataTest<2>(g_atanhf_intel_data, atanhf);
 }
 
 #include "math_data/cbrt_intel_data.h"
-TEST(MATH_TEST, cbrt_intel) {
+TEST(math_h, cbrt_intel) {
   DoMathDataTest<1>(g_cbrt_intel_data, cbrt);
 }
 
 #include "math_data/cbrtf_intel_data.h"
-TEST(MATH_TEST, cbrtf_intel) {
+TEST(math_h, cbrtf_intel) {
   DoMathDataTest<1>(g_cbrtf_intel_data, cbrtf);
 }
 
 #include "math_data/ceil_intel_data.h"
-TEST(MATH_TEST, ceil_intel) {
+TEST(math_h, ceil_intel) {
   DoMathDataTest<1>(g_ceil_intel_data, ceil);
 }
 
 #include "math_data/ceilf_intel_data.h"
-TEST(MATH_TEST, ceilf_intel) {
+TEST(math_h, ceilf_intel) {
   DoMathDataTest<1>(g_ceilf_intel_data, ceilf);
 }
 
 #include "math_data/copysign_intel_data.h"
-TEST(MATH_TEST, copysign_intel) {
+TEST(math_h, copysign_intel) {
   DoMathDataTest<1>(g_copysign_intel_data, copysign);
 }
 
 #include "math_data/copysignf_intel_data.h"
-TEST(MATH_TEST, copysignf_intel) {
+TEST(math_h, copysignf_intel) {
   DoMathDataTest<1>(g_copysignf_intel_data, copysignf);
 }
 
 #include "math_data/cos_intel_data.h"
-TEST(MATH_TEST, cos_intel) {
+TEST(math_h, cos_intel) {
   DoMathDataTest<1>(g_cos_intel_data, cos);
 }
 
 #include "math_data/cosf_intel_data.h"
-TEST(MATH_TEST, cosf_intel) {
+TEST(math_h, cosf_intel) {
   DoMathDataTest<1>(g_cosf_intel_data, cosf);
 }
 
 #include "math_data/cosh_intel_data.h"
-TEST(MATH_TEST, cosh_intel) {
+TEST(math_h, cosh_intel) {
   DoMathDataTest<2>(g_cosh_intel_data, cosh);
 }
 
 #include "math_data/coshf_intel_data.h"
-TEST(MATH_TEST, coshf_intel) {
+TEST(math_h, coshf_intel) {
   DoMathDataTest<2>(g_coshf_intel_data, coshf);
 }
 
 #include "math_data/exp_intel_data.h"
-TEST(MATH_TEST, exp_intel) {
+TEST(math_h, exp_intel) {
   DoMathDataTest<1>(g_exp_intel_data, exp);
 }
 
 #include "math_data/expf_intel_data.h"
-TEST(MATH_TEST, expf_intel) {
+TEST(math_h, expf_intel) {
   DoMathDataTest<1>(g_expf_intel_data, expf);
 }
 
 #include "math_data/exp2_intel_data.h"
-TEST(MATH_TEST, exp2_intel) {
+TEST(math_h, exp2_intel) {
   DoMathDataTest<1>(g_exp2_intel_data, exp2);
 }
 
 #include "math_data/exp2f_intel_data.h"
-TEST(MATH_TEST, exp2f_intel) {
+TEST(math_h, exp2f_intel) {
   DoMathDataTest<1>(g_exp2f_intel_data, exp2f);
 }
 
 #include "math_data/expm1_intel_data.h"
-TEST(MATH_TEST, expm1_intel) {
+TEST(math_h, expm1_intel) {
   DoMathDataTest<1>(g_expm1_intel_data, expm1);
 }
 
 #include "math_data/expm1f_intel_data.h"
-TEST(MATH_TEST, expm1f_intel) {
+TEST(math_h, expm1f_intel) {
   DoMathDataTest<1>(g_expm1f_intel_data, expm1f);
 }
 
 #include "math_data/fabs_intel_data.h"
-TEST(MATH_TEST, fabs_intel) {
+TEST(math_h, fabs_intel) {
   DoMathDataTest<1>(g_fabs_intel_data, fabs);
 }
 
 #include "math_data/fabsf_intel_data.h"
-TEST(MATH_TEST, fabsf_intel) {
+TEST(math_h, fabsf_intel) {
   DoMathDataTest<1>(g_fabsf_intel_data, fabsf);
 }
 
 #include "math_data/fdim_intel_data.h"
-TEST(MATH_TEST, fdim_intel) {
+TEST(math_h, fdim_intel) {
   DoMathDataTest<1>(g_fdim_intel_data, fdim);
 }
 
 #include "math_data/fdimf_intel_data.h"
-TEST(MATH_TEST, fdimf_intel) {
+TEST(math_h, fdimf_intel) {
   DoMathDataTest<1>(g_fdimf_intel_data, fdimf);
 }
 
 #include "math_data/floor_intel_data.h"
-TEST(MATH_TEST, floor_intel) {
+TEST(math_h, floor_intel) {
   DoMathDataTest<1>(g_floor_intel_data, floor);
 }
 
 #include "math_data/floorf_intel_data.h"
-TEST(MATH_TEST, floorf_intel) {
+TEST(math_h, floorf_intel) {
   DoMathDataTest<1>(g_floorf_intel_data, floorf);
 }
 
 #include "math_data/fma_intel_data.h"
-TEST(MATH_TEST, fma_intel) {
+TEST(math_h, fma_intel) {
   DoMathDataTest<1>(g_fma_intel_data, fma);
 }
 
 #include "math_data/fmaf_intel_data.h"
-TEST(MATH_TEST, fmaf_intel) {
+TEST(math_h, fmaf_intel) {
   DoMathDataTest<1>(g_fmaf_intel_data, fmaf);
 }
 
 #include "math_data/fmax_intel_data.h"
-TEST(MATH_TEST, fmax_intel) {
+TEST(math_h, fmax_intel) {
   DoMathDataTest<1>(g_fmax_intel_data, fmax);
 }
 
 #include "math_data/fmaxf_intel_data.h"
-TEST(MATH_TEST, fmaxf_intel) {
+TEST(math_h, fmaxf_intel) {
   DoMathDataTest<1>(g_fmaxf_intel_data, fmaxf);
 }
 
 #include "math_data/fmin_intel_data.h"
-TEST(MATH_TEST, fmin_intel) {
+TEST(math_h, fmin_intel) {
   DoMathDataTest<1>(g_fmin_intel_data, fmin);
 }
 
 #include "math_data/fminf_intel_data.h"
-TEST(MATH_TEST, fminf_intel) {
+TEST(math_h, fminf_intel) {
   DoMathDataTest<1>(g_fminf_intel_data, fminf);
 }
 
 #include "math_data/fmod_intel_data.h"
-TEST(MATH_TEST, fmod_intel) {
+TEST(math_h, fmod_intel) {
   DoMathDataTest<1>(g_fmod_intel_data, fmod);
 }
 
 #include "math_data/fmodf_intel_data.h"
-TEST(MATH_TEST, fmodf_intel) {
+TEST(math_h, fmodf_intel) {
   DoMathDataTest<1>(g_fmodf_intel_data, fmodf);
 }
 
 #include "math_data/frexp_intel_data.h"
-TEST(MATH_TEST, frexp_intel) {
+TEST(math_h, frexp_intel) {
   DoMathDataTest<1>(g_frexp_intel_data, frexp);
 }
 
 #include "math_data/frexpf_intel_data.h"
-TEST(MATH_TEST, frexpf_intel) {
+TEST(math_h, frexpf_intel) {
   DoMathDataTest<1>(g_frexpf_intel_data, frexpf);
 }
 
 #include "math_data/hypot_intel_data.h"
-TEST(MATH_TEST, hypot_intel) {
+TEST(math_h, hypot_intel) {
   DoMathDataTest<1>(g_hypot_intel_data, hypot);
 }
 
 #include "math_data/hypotf_intel_data.h"
-TEST(MATH_TEST, hypotf_intel) {
+TEST(math_h, hypotf_intel) {
   DoMathDataTest<1>(g_hypotf_intel_data, hypotf);
 }
 
 #include "math_data/ilogb_intel_data.h"
-TEST(MATH_TEST, ilogb_intel) {
+TEST(math_h, ilogb_intel) {
   DoMathDataTest<1>(g_ilogb_intel_data, ilogb);
 }
 
 #include "math_data/ilogbf_intel_data.h"
-TEST(MATH_TEST, ilogbf_intel) {
+TEST(math_h, ilogbf_intel) {
   DoMathDataTest<1>(g_ilogbf_intel_data, ilogbf);
 }
 
 #include "math_data/ldexp_intel_data.h"
-TEST(MATH_TEST, ldexp_intel) {
+TEST(math_h, ldexp_intel) {
   DoMathDataTest<1>(g_ldexp_intel_data, ldexp);
 }
 
 #include "math_data/ldexpf_intel_data.h"
-TEST(MATH_TEST, ldexpf_intel) {
+TEST(math_h, ldexpf_intel) {
   DoMathDataTest<1>(g_ldexpf_intel_data, ldexpf);
 }
 
 #include "math_data/llrint_intel_data.h"
-TEST(MATH_TEST, llrint_intel) {
+TEST(math_h, llrint_intel) {
   DoMathDataTest<1>(g_llrint_intel_data, llrint);
 }
 
 #include "math_data/llrintf_intel_data.h"
-TEST(MATH_TEST, llrintf_intel) {
+TEST(math_h, llrintf_intel) {
   DoMathDataTest<1>(g_llrintf_intel_data, llrintf);
 }
 
 #include "math_data/log_intel_data.h"
-TEST(MATH_TEST, log_intel) {
+TEST(math_h, log_intel) {
   DoMathDataTest<1>(g_log_intel_data, log);
 }
 
 #include "math_data/logf_intel_data.h"
-TEST(MATH_TEST, logf_intel) {
+TEST(math_h, logf_intel) {
   DoMathDataTest<1>(g_logf_intel_data, logf);
 }
 
 #include "math_data/log10_intel_data.h"
-TEST(MATH_TEST, log10_intel) {
+TEST(math_h, log10_intel) {
   DoMathDataTest<1>(g_log10_intel_data, log10);
 }
 
 #include "math_data/log10f_intel_data.h"
-TEST(MATH_TEST, log10f_intel) {
+TEST(math_h, log10f_intel) {
   DoMathDataTest<1>(g_log10f_intel_data, log10f);
 }
 
 #include "math_data/log1p_intel_data.h"
-TEST(MATH_TEST, log1p_intel) {
+TEST(math_h, log1p_intel) {
   DoMathDataTest<1>(g_log1p_intel_data, log1p);
 }
 
 #include "math_data/log1pf_intel_data.h"
-TEST(MATH_TEST, log1pf_intel) {
+TEST(math_h, log1pf_intel) {
   DoMathDataTest<1>(g_log1pf_intel_data, log1pf);
 }
 
 #include "math_data/log2_intel_data.h"
-TEST(MATH_TEST, log2_intel) {
+TEST(math_h, log2_intel) {
   DoMathDataTest<1>(g_log2_intel_data, log2);
 }
 
 #include "math_data/log2f_intel_data.h"
-TEST(MATH_TEST, log2f_intel) {
+TEST(math_h, log2f_intel) {
   DoMathDataTest<1>(g_log2f_intel_data, log2f);
 }
 
 #include "math_data/logb_intel_data.h"
-TEST(MATH_TEST, logb_intel) {
+TEST(math_h, logb_intel) {
   DoMathDataTest<1>(g_logb_intel_data, logb);
 }
 
 #include "math_data/logbf_intel_data.h"
-TEST(MATH_TEST, logbf_intel) {
+TEST(math_h, logbf_intel) {
   DoMathDataTest<1>(g_logbf_intel_data, logbf);
 }
 
 #include "math_data/lrint_intel_data.h"
-TEST(MATH_TEST, lrint_intel) {
+TEST(math_h, lrint_intel) {
   DoMathDataTest<1>(g_lrint_intel_data, lrint);
 }
 
 #include "math_data/lrintf_intel_data.h"
-TEST(MATH_TEST, lrintf_intel) {
+TEST(math_h, lrintf_intel) {
   DoMathDataTest<1>(g_lrintf_intel_data, lrintf);
 }
 
 #include "math_data/modf_intel_data.h"
-TEST(MATH_TEST, modf_intel) {
+TEST(math_h, modf_intel) {
   DoMathDataTest<1>(g_modf_intel_data, modf);
 }
 
 #include "math_data/modff_intel_data.h"
-TEST(MATH_TEST, modff_intel) {
+TEST(math_h, modff_intel) {
   DoMathDataTest<1>(g_modff_intel_data, modff);
 }
 
 #include "math_data/nearbyint_intel_data.h"
-TEST(MATH_TEST, nearbyint_intel) {
+TEST(math_h, nearbyint_intel) {
   DoMathDataTest<1>(g_nearbyint_intel_data, nearbyint);
 }
 
 #include "math_data/nearbyintf_intel_data.h"
-TEST(MATH_TEST, nearbyintf_intel) {
+TEST(math_h, nearbyintf_intel) {
   DoMathDataTest<1>(g_nearbyintf_intel_data, nearbyintf);
 }
 
 #include "math_data/nextafter_intel_data.h"
-TEST(MATH_TEST, nextafter_intel) {
+TEST(math_h, nextafter_intel) {
   DoMathDataTest<1>(g_nextafter_intel_data, nextafter);
 }
 
 #include "math_data/nextafterf_intel_data.h"
-TEST(MATH_TEST, nextafterf_intel) {
+TEST(math_h, nextafterf_intel) {
   DoMathDataTest<1>(g_nextafterf_intel_data, nextafterf);
 }
 
 #include "math_data/pow_intel_data.h"
-TEST(MATH_TEST, pow_intel) {
+TEST(math_h, pow_intel) {
   DoMathDataTest<1>(g_pow_intel_data, pow);
 }
 
 #include "math_data/powf_intel_data.h"
-TEST(MATH_TEST, powf_intel) {
+TEST(math_h, powf_intel) {
   DoMathDataTest<1>(g_powf_intel_data, powf);
 }
 
 #include "math_data/remainder_intel_data.h"
-TEST(MATH_TEST, remainder_intel) {
+TEST(math_h, remainder_intel) {
   DoMathDataTest<1>(g_remainder_intel_data, remainder);
 }
 
 #include "math_data/remainderf_intel_data.h"
-TEST(MATH_TEST, remainderf_intel) {
+TEST(math_h, remainderf_intel) {
   DoMathDataTest<1>(g_remainderf_intel_data, remainderf);
 }
 
 #include "math_data/remquo_intel_data.h"
-TEST(MATH_TEST, remquo_intel) {
+TEST(math_h, remquo_intel) {
   DoMathDataTest<1>(g_remquo_intel_data, remquo);
 }
 
 #include "math_data/remquof_intel_data.h"
-TEST(MATH_TEST, remquof_intel) {
+TEST(math_h, remquof_intel) {
   DoMathDataTest<1>(g_remquof_intel_data, remquof);
 }
 
 #include "math_data/rint_intel_data.h"
-TEST(MATH_TEST, rint_intel) {
+TEST(math_h, rint_intel) {
   DoMathDataTest<1>(g_rint_intel_data, rint);
 }
 
 #include "math_data/rintf_intel_data.h"
-TEST(MATH_TEST, rintf_intel) {
+TEST(math_h, rintf_intel) {
   DoMathDataTest<1>(g_rintf_intel_data, rintf);
 }
 
 #include "math_data/round_intel_data.h"
-TEST(MATH_TEST, round_intel) {
+TEST(math_h, round_intel) {
   DoMathDataTest<1>(g_round_intel_data, round);
 }
 
 #include "math_data/roundf_intel_data.h"
-TEST(MATH_TEST, roundf_intel) {
+TEST(math_h, roundf_intel) {
   DoMathDataTest<1>(g_roundf_intel_data, roundf);
 }
 
 #include "math_data/scalb_intel_data.h"
-TEST(MATH_TEST, scalb_intel) {
+TEST(math_h, scalb_intel) {
   DoMathDataTest<1>(g_scalb_intel_data, scalb);
 }
 
 #include "math_data/scalbf_intel_data.h"
-TEST(MATH_TEST, scalbf_intel) {
+TEST(math_h, scalbf_intel) {
   DoMathDataTest<1>(g_scalbf_intel_data, scalbf);
 }
 
 #include "math_data/scalbn_intel_data.h"
-TEST(MATH_TEST, scalbn_intel) {
+TEST(math_h, scalbn_intel) {
   DoMathDataTest<1>(g_scalbn_intel_data, scalbn);
 }
 
 #include "math_data/scalbnf_intel_data.h"
-TEST(MATH_TEST, scalbnf_intel) {
+TEST(math_h, scalbnf_intel) {
   DoMathDataTest<1>(g_scalbnf_intel_data, scalbnf);
 }
 
 #include "math_data/significand_intel_data.h"
-TEST(MATH_TEST, significand_intel) {
+TEST(math_h, significand_intel) {
   DoMathDataTest<1>(g_significand_intel_data, significand);
 }
 
 #include "math_data/significandf_intel_data.h"
-TEST(MATH_TEST, significandf_intel) {
+TEST(math_h, significandf_intel) {
   DoMathDataTest<1>(g_significandf_intel_data, significandf);
 }
 
 #include "math_data/sin_intel_data.h"
-TEST(MATH_TEST, sin_intel) {
+TEST(math_h, sin_intel) {
   DoMathDataTest<1>(g_sin_intel_data, sin);
 }
 
 #include "math_data/sinf_intel_data.h"
-TEST(MATH_TEST, sinf_intel) {
+TEST(math_h, sinf_intel) {
   DoMathDataTest<1>(g_sinf_intel_data, sinf);
 }
 
 #include "math_data/sinh_intel_data.h"
-TEST(MATH_TEST, sinh_intel) {
+TEST(math_h, sinh_intel) {
   DoMathDataTest<2>(g_sinh_intel_data, sinh);
 }
 
 #include "math_data/sinhf_intel_data.h"
-TEST(MATH_TEST, sinhf_intel) {
+TEST(math_h, sinhf_intel) {
   DoMathDataTest<2>(g_sinhf_intel_data, sinhf);
 }
 
 #include "math_data/sincos_intel_data.h"
-TEST(MATH_TEST, sincos_intel) {
+TEST(math_h, sincos_intel) {
   DoMathDataTest<1>(g_sincos_intel_data, sincos);
 }
 
 #include "math_data/sincosf_intel_data.h"
-TEST(MATH_TEST, sincosf_intel) {
+TEST(math_h, sincosf_intel) {
   DoMathDataTest<1>(g_sincosf_intel_data, sincosf);
 }
 
 #include "math_data/sqrt_intel_data.h"
-TEST(MATH_TEST, sqrt_intel) {
+TEST(math_h, sqrt_intel) {
   DoMathDataTest<1>(g_sqrt_intel_data, sqrt);
 }
 
 #include "math_data/sqrtf_intel_data.h"
-TEST(MATH_TEST, sqrtf_intel) {
+TEST(math_h, sqrtf_intel) {
   DoMathDataTest<1>(g_sqrtf_intel_data, sqrtf);
 }
 
 #include "math_data/tan_intel_data.h"
-TEST(MATH_TEST, tan_intel) {
+TEST(math_h, tan_intel) {
   DoMathDataTest<1>(g_tan_intel_data, tan);
 }
 
 #include "math_data/tanf_intel_data.h"
-TEST(MATH_TEST, tanf_intel) {
+TEST(math_h, tanf_intel) {
   DoMathDataTest<1>(g_tanf_intel_data, tanf);
 }
 
 #include "math_data/tanh_intel_data.h"
-TEST(MATH_TEST, tanh_intel) {
+TEST(math_h, tanh_intel) {
   DoMathDataTest<2>(g_tanh_intel_data, tanh);
 }
 
 #include "math_data/tanhf_intel_data.h"
-TEST(MATH_TEST, tanhf_intel) {
+TEST(math_h, tanhf_intel) {
   DoMathDataTest<2>(g_tanhf_intel_data, tanhf);
 }
 
 #include "math_data/trunc_intel_data.h"
-TEST(MATH_TEST, trunc_intel) {
+TEST(math_h, trunc_intel) {
   DoMathDataTest<1>(g_trunc_intel_data, trunc);
 }
 
 #include "math_data/truncf_intel_data.h"
-TEST(MATH_TEST, truncf_intel) {
+TEST(math_h, truncf_intel) {
   DoMathDataTest<1>(g_truncf_intel_data, truncf);
 }
diff --git a/tests/membarrier_test.cpp b/tests/membarrier_test.cpp
index 6f650e7..0cb7df4 100644
--- a/tests/membarrier_test.cpp
+++ b/tests/membarrier_test.cpp
@@ -22,13 +22,15 @@
 #include <linux/membarrier.h>
 #include <sys/syscall.h>
 
+#include "utils.h"
+
 class ScopedErrnoCleaner {
  public:
   ScopedErrnoCleaner() { errno = 0; }
   ~ScopedErrnoCleaner() { errno = 0; }
 };
 
-bool HasMembarrier(int membarrier_cmd) {
+static bool HasMembarrier(int membarrier_cmd) {
   ScopedErrnoCleaner errno_cleaner;
   int supported_cmds = syscall(__NR_membarrier, MEMBARRIER_CMD_QUERY, 0);
   return (supported_cmds > 0) && ((supported_cmds & membarrier_cmd) != 0);
@@ -37,11 +39,8 @@
 TEST(membarrier, query) {
   ScopedErrnoCleaner errno_cleaner;
   int supported = syscall(__NR_membarrier, MEMBARRIER_CMD_QUERY, 0);
-  if (errno == 0) {
-    ASSERT_TRUE(supported >= 0);
-  } else {
-    ASSERT_TRUE(errno == ENOSYS && supported == -1);
-  }
+  if (supported == -1 && errno == ENOSYS) GTEST_SKIP() << "no membarrier() in this kernel";
+  ASSERT_GE(supported, 0);
 }
 
 TEST(membarrier, global_barrier) {
@@ -92,7 +91,7 @@
   } else {
     // Private barrier should fail.
     ASSERT_EQ(-1, syscall(__NR_membarrier, membarrier_cmd_barrier, 0));
-    ASSERT_EQ(EPERM, errno);
+    ASSERT_ERRNO(EPERM);
     errno = 0;
   }
 
diff --git a/tests/memtag_globals_test.cpp b/tests/memtag_globals_test.cpp
new file mode 100644
index 0000000..ff93e7b
--- /dev/null
+++ b/tests/memtag_globals_test.cpp
@@ -0,0 +1,113 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *  * Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *  * Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in
+ *    the documentation and/or other materials provided with the
+ *    distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#include <gtest/gtest.h>
+
+#if defined(__BIONIC__)
+#include "gtest_globals.h"
+#include "utils.h"
+#endif  // defined(__BIONIC__)
+
+#include <android-base/test_utils.h>
+#include <sys/stat.h>
+#include <unistd.h>
+#include <string>
+#include <tuple>
+
+#include "platform/bionic/mte.h"
+
+class MemtagGlobalsTest : public testing::TestWithParam<bool> {};
+
+TEST_P(MemtagGlobalsTest, test) {
+  SKIP_WITH_HWASAN << "MTE globals tests are incompatible with HWASan";
+#if defined(__BIONIC__) && defined(__aarch64__)
+  std::string binary = GetTestLibRoot() + "/memtag_globals_binary";
+  bool is_static = MemtagGlobalsTest::GetParam();
+  if (is_static) {
+    binary += "_static";
+  }
+
+  chmod(binary.c_str(), 0755);
+  ExecTestHelper eth;
+  eth.SetArgs({binary.c_str(), nullptr});
+  eth.Run(
+      [&]() {
+        execve(binary.c_str(), eth.GetArgs(), eth.GetEnv());
+        GTEST_FAIL() << "Failed to execve: " << strerror(errno) << " " << binary.c_str();
+      },
+      // We catch the global-buffer-overflow and crash only when MTE globals is
+      // supported. Note that MTE globals is unsupported for fully static
+      // executables, but we should still make sure the binary passes its
+      // assertions, just that global variables won't be tagged.
+      (mte_supported() && !is_static) ? -SIGSEGV : 0, "Assertions were passed");
+#else
+  GTEST_SKIP() << "bionic/arm64 only";
+#endif
+}
+
+INSTANTIATE_TEST_SUITE_P(MemtagGlobalsTest, MemtagGlobalsTest, testing::Bool(),
+                         [](const ::testing::TestParamInfo<MemtagGlobalsTest::ParamType>& info) {
+                           if (info.param) return "MemtagGlobalsTest_static";
+                           return "MemtagGlobalsTest";
+                         });
+
+TEST(MemtagGlobalsTest, RelrRegressionTestForb314038442) {
+  SKIP_WITH_HWASAN << "MTE globals tests are incompatible with HWASan";
+#if defined(__BIONIC__) && defined(__aarch64__)
+  std::string binary = GetTestLibRoot() + "/mte_globals_relr_regression_test_b_314038442";
+  chmod(binary.c_str(), 0755);
+  ExecTestHelper eth;
+  eth.SetArgs({binary.c_str(), nullptr});
+  eth.Run(
+      [&]() {
+        execve(binary.c_str(), eth.GetArgs(), eth.GetEnv());
+        GTEST_FAIL() << "Failed to execve: " << strerror(errno) << " " << binary.c_str();
+      },
+      /* exit code */ 0, "Program loaded successfully.*Tags are zero!");
+#else
+  GTEST_SKIP() << "bionic/arm64 only";
+#endif
+}
+
+TEST(MemtagGlobalsTest, RelrRegressionTestForb314038442WithMteGlobals) {
+  if (!mte_supported()) GTEST_SKIP() << "Must have MTE support.";
+#if defined(__BIONIC__) && defined(__aarch64__)
+  std::string binary = GetTestLibRoot() + "/mte_globals_relr_regression_test_b_314038442_mte";
+  chmod(binary.c_str(), 0755);
+  ExecTestHelper eth;
+  eth.SetArgs({binary.c_str(), nullptr});
+  eth.Run(
+      [&]() {
+        execve(binary.c_str(), eth.GetArgs(), eth.GetEnv());
+        GTEST_FAIL() << "Failed to execve: " << strerror(errno) << " " << binary.c_str();
+      },
+      /* exit code */ 0, "Program loaded successfully.*Tags are non-zero");
+#else
+  GTEST_SKIP() << "bionic/arm64 only";
+#endif
+}
diff --git a/tests/memtag_stack_abi_test.cpp b/tests/memtag_stack_abi_test.cpp
new file mode 100644
index 0000000..4725c8d
--- /dev/null
+++ b/tests/memtag_stack_abi_test.cpp
@@ -0,0 +1,102 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *  * Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *  * Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in
+ *    the documentation and/or other materials provided with the
+ *    distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#include <filesystem>
+#include <fstream>
+#include <iterator>
+#include <string>
+#include <thread>
+
+#include <dlfcn.h>
+#include <stdlib.h>
+
+#include <android-base/logging.h>
+#include <gtest/gtest.h>
+
+static size_t NumberBuffers() {
+  size_t bufs = 0;
+  std::ifstream file("/proc/self/maps");
+  CHECK(file.is_open());
+  std::string line;
+  while (std::getline(file, line)) {
+    if (line.find("stack_mte_ring") != std::string::npos) {
+      ++bufs;
+    }
+  }
+  return bufs;
+}
+
+static size_t NumberThreads() {
+  std::filesystem::directory_iterator di("/proc/self/task");
+  return std::distance(begin(di), end(di));
+}
+
+TEST(MemtagStackAbiTest, MainThread) {
+#if defined(__BIONIC__) && defined(__aarch64__)
+  ASSERT_EQ(NumberBuffers(), 1U);
+  ASSERT_EQ(NumberBuffers(), NumberThreads());
+#else
+  GTEST_SKIP() << "requires bionic arm64";
+#endif
+}
+
+TEST(MemtagStackAbiTest, JoinableThread) {
+#if defined(__BIONIC__) && defined(__aarch64__)
+  ASSERT_EQ(NumberBuffers(), 1U);
+  ASSERT_EQ(NumberBuffers(), NumberThreads());
+  std::thread th([] {
+    ASSERT_EQ(NumberBuffers(), 2U);
+    ASSERT_EQ(NumberBuffers(), NumberThreads());
+  });
+  th.join();
+  ASSERT_EQ(NumberBuffers(), 1U);
+  ASSERT_EQ(NumberBuffers(), NumberThreads());
+#else
+  GTEST_SKIP() << "requires bionic arm64";
+#endif
+}
+
+TEST(MemtagStackAbiTest, DetachedThread) {
+#if defined(__BIONIC__) && defined(__aarch64__)
+  ASSERT_EQ(NumberBuffers(), 1U);
+  ASSERT_EQ(NumberBuffers(), NumberThreads());
+  std::thread th([] {
+    ASSERT_EQ(NumberBuffers(), 2U);
+    ASSERT_EQ(NumberBuffers(), NumberThreads());
+  });
+  th.detach();
+  // Leave the thread some time to exit.
+  for (int i = 0; NumberBuffers() != 1 && i < 3; ++i) {
+    sleep(1);
+  }
+  ASSERT_EQ(NumberBuffers(), 1U);
+  ASSERT_EQ(NumberBuffers(), NumberThreads());
+#else
+  GTEST_SKIP() << "requires bionic arm64";
+#endif
+}
diff --git a/tests/memtag_stack_dlopen_test.cpp b/tests/memtag_stack_dlopen_test.cpp
new file mode 100644
index 0000000..68ddb81
--- /dev/null
+++ b/tests/memtag_stack_dlopen_test.cpp
@@ -0,0 +1,117 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *  * Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *  * Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in
+ *    the documentation and/or other materials provided with the
+ *    distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#include <thread>
+
+#include <dlfcn.h>
+#include <stdlib.h>
+
+#include <gtest/gtest.h>
+
+#include <android-base/silent_death_test.h>
+#include <android-base/test_utils.h>
+#include "mte_utils.h"
+#include "utils.h"
+
+TEST(MemtagStackDlopenTest, DependentBinaryGetsMemtagStack) {
+#if defined(__BIONIC__) && defined(__aarch64__)
+  if (!running_with_mte()) GTEST_SKIP() << "Test requires MTE.";
+  if (is_stack_mte_on())
+    GTEST_SKIP() << "Stack MTE needs to be off for this test. Are you running fullmte?";
+
+  std::string path =
+      android::base::GetExecutableDirectory() + "/testbinary_depends_on_simple_memtag_stack";
+  ExecTestHelper eth;
+  std::string ld_library_path = "LD_LIBRARY_PATH=" + android::base::GetExecutableDirectory();
+  eth.SetArgs({path.c_str(), nullptr});
+  eth.SetEnv({ld_library_path.c_str(), nullptr});
+  eth.Run([&]() { execve(path.c_str(), eth.GetArgs(), eth.GetEnv()); }, 0, "RAN");
+#else
+  GTEST_SKIP() << "requires bionic arm64";
+#endif
+}
+
+TEST(MemtagStackDlopenTest, DependentBinaryGetsMemtagStack2) {
+#if defined(__BIONIC__) && defined(__aarch64__)
+  if (!running_with_mte()) GTEST_SKIP() << "Test requires MTE.";
+  if (is_stack_mte_on())
+    GTEST_SKIP() << "Stack MTE needs to be off for this test. Are you running fullmte?";
+
+  std::string path = android::base::GetExecutableDirectory() +
+                     "/testbinary_depends_on_depends_on_simple_memtag_stack";
+  ExecTestHelper eth;
+  std::string ld_library_path = "LD_LIBRARY_PATH=" + android::base::GetExecutableDirectory();
+  eth.SetArgs({path.c_str(), nullptr});
+  eth.SetEnv({ld_library_path.c_str(), nullptr});
+  eth.Run([&]() { execve(path.c_str(), eth.GetArgs(), eth.GetEnv()); }, 0, "RAN");
+#else
+  GTEST_SKIP() << "requires bionic arm64";
+#endif
+}
+
+TEST(MemtagStackDlopenTest, DlopenRemapsStack) {
+#if defined(__BIONIC__) && defined(__aarch64__)
+  // If this test is failing, look at crash logcat for why the test binary died.
+  if (!running_with_mte()) GTEST_SKIP() << "Test requires MTE.";
+  if (is_stack_mte_on())
+    GTEST_SKIP() << "Stack MTE needs to be off for this test. Are you running fullmte?";
+
+  std::string path =
+      android::base::GetExecutableDirectory() + "/testbinary_is_stack_mte_after_dlopen";
+  std::string lib_path =
+      android::base::GetExecutableDirectory() + "/libtest_simple_memtag_stack.so";
+  ExecTestHelper eth;
+  std::string ld_library_path = "LD_LIBRARY_PATH=" + android::base::GetExecutableDirectory();
+  eth.SetArgs({path.c_str(), lib_path.c_str(), nullptr});
+  eth.SetEnv({ld_library_path.c_str(), nullptr});
+  eth.Run([&]() { execve(path.c_str(), eth.GetArgs(), eth.GetEnv()); }, 0, "RAN");
+#else
+  GTEST_SKIP() << "requires bionic arm64";
+#endif
+}
+
+TEST(MemtagStackDlopenTest, DlopenRemapsStack2) {
+#if defined(__BIONIC__) && defined(__aarch64__)
+  // If this test is failing, look at crash logcat for why the test binary died.
+  if (!running_with_mte()) GTEST_SKIP() << "Test requires MTE.";
+  if (is_stack_mte_on())
+    GTEST_SKIP() << "Stack MTE needs to be off for this test. Are you running fullmte?";
+
+  std::string path =
+      android::base::GetExecutableDirectory() + "/testbinary_is_stack_mte_after_dlopen";
+  std::string lib_path =
+      android::base::GetExecutableDirectory() + "/libtest_depends_on_simple_memtag_stack.so";
+  ExecTestHelper eth;
+  std::string ld_library_path = "LD_LIBRARY_PATH=" + android::base::GetExecutableDirectory();
+  eth.SetArgs({path.c_str(), lib_path.c_str(), nullptr});
+  eth.SetEnv({ld_library_path.c_str(), nullptr});
+  eth.Run([&]() { execve(path.c_str(), eth.GetArgs(), eth.GetEnv()); }, 0, "RAN");
+#else
+  GTEST_SKIP() << "requires bionic arm64";
+#endif
+}
diff --git a/tests/memtag_stack_test.cpp b/tests/memtag_stack_test.cpp
index 97084ec..9d02830 100644
--- a/tests/memtag_stack_test.cpp
+++ b/tests/memtag_stack_test.cpp
@@ -33,9 +33,8 @@
   }
   bool is_static = std::get<1>(GetParam());
   std::string helper =
-      GetTestlibRoot() + (is_static ? "/stack_tagging_static_helper" : "/stack_tagging_helper");
+      GetTestLibRoot() + (is_static ? "/stack_tagging_static_helper" : "/stack_tagging_helper");
   const char* arg = std::get<0>(GetParam());
-  chmod(helper.c_str(), 0755);
   ExecTestHelper eth;
   eth.SetArgs({helper.c_str(), arg, nullptr});
   eth.Run([&]() { execve(helper.c_str(), eth.GetArgs(), eth.GetEnv()); }, 0, "");
diff --git a/tests/mntent_test.cpp b/tests/mntent_test.cpp
index 4b8fc9a..fd69ae1 100644
--- a/tests/mntent_test.cpp
+++ b/tests/mntent_test.cpp
@@ -59,9 +59,7 @@
   // indices                  1  1
   // of keys:      0    5   9 1  4
   char mnt_opts[]{"aa=b,a=b,b,bb,c=d"};
-  struct mntent ent;
-  memset(&ent, 0, sizeof(ent));
-  ent.mnt_opts = mnt_opts;
+  struct mntent ent = {.mnt_opts = mnt_opts};
 
   EXPECT_EQ(mnt_opts, hasmntopt(&ent, "aa"));
   EXPECT_EQ(mnt_opts + 5, hasmntopt(&ent, "a"));
@@ -71,3 +69,9 @@
   EXPECT_EQ(nullptr, hasmntopt(&ent, "d"));
   EXPECT_EQ(nullptr, hasmntopt(&ent, "e"));
 }
+
+TEST(mntent, hasmntopt_no_suffix_match) {
+  char mnt_opts[]{"noatime"};
+  struct mntent ent = {.mnt_opts = mnt_opts};
+  EXPECT_EQ(nullptr, hasmntopt(&ent, "atime"));
+}
diff --git a/libm/fenv-access.h b/tests/mte_utils.h
similarity index 72%
copy from libm/fenv-access.h
copy to tests/mte_utils.h
index 7acb34d..020faec 100644
--- a/libm/fenv-access.h
+++ b/tests/mte_utils.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2021 The Android Open Source Project
+ * Copyright (C) 2024 The Android Open Source Project
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -28,6 +28,22 @@
 
 #pragma once
 
-#if defined(__x86_64__) || defined(__i386__)
-#pragma STDC FENV_ACCESS ON
+#if defined(__BIONIC__) && defined(__aarch64__)
+
+__attribute__((target("mte"))) static bool is_stack_mte_on() {
+  alignas(16) int x = 0;
+  void* p = reinterpret_cast<void*>(reinterpret_cast<uintptr_t>(&x) + (1UL << 57));
+  void* p_cpy = p;
+  __builtin_arm_stg(p);
+  p = __builtin_arm_ldg(p);
+  __builtin_arm_stg(&x);
+  return p == p_cpy;
+}
+
+static void* mte_tls() {
+  void** dst;
+  __asm__("mrs %0, TPIDR_EL0" : "=r"(dst) :);
+  return dst[-3];
+}
+
 #endif
diff --git a/tests/netinet_ether_test.cpp b/tests/netinet_ether_test.cpp
index af020ec..d7b81eb 100644
--- a/tests/netinet_ether_test.cpp
+++ b/tests/netinet_ether_test.cpp
@@ -56,4 +56,5 @@
   ASSERT_TRUE(ether_aton_r("12:34:56:78:9a:bc ", &addr) == nullptr);
   ASSERT_TRUE(ether_aton_r("g2:34:56:78:9a:bc ", &addr) == nullptr);
   ASSERT_TRUE(ether_aton_r("1G:34:56:78:9a:bc ", &addr) == nullptr);
+  ASSERT_TRUE(ether_aton_r("123:34:56:78:9a:bc ", &addr) == nullptr);
 }
diff --git a/libc/bionic/strnlen.c b/tests/netinet_igmp_test.cpp
similarity index 79%
copy from libc/bionic/strnlen.c
copy to tests/netinet_igmp_test.cpp
index 2c6f60a..4cf7876 100644
--- a/libc/bionic/strnlen.c
+++ b/tests/netinet_igmp_test.cpp
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2008 The Android Open Source Project
+ * Copyright (C) 2024 The Android Open Source Project
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -25,14 +25,16 @@
  * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  */
-#include <string.h>
 
-size_t  strnlen(const char*  str, size_t  maxlen)
-{
-    char*  p = memchr(str, 0, maxlen);
+#include <gtest/gtest.h>
 
-    if (p == NULL)
-        return maxlen;
-    else
-        return (p - str);
+#include <netinet/igmp.h>
+
+TEST(netinet_igmp, smoke) {
+  // Just check that the fields exist, so code is likely to compile.
+  struct igmp i;
+  i.igmp_type = IGMP_MEMBERSHIP_QUERY;
+  i.igmp_code = 0;
+  i.igmp_cksum = 0;
+  i.igmp_group.s_addr = htonl(INADDR_ANY);
 }
diff --git a/tests/netinet_in_test.cpp b/tests/netinet_in_test.cpp
index b7dd7c5..48f438c 100644
--- a/tests/netinet_in_test.cpp
+++ b/tests/netinet_in_test.cpp
@@ -23,6 +23,8 @@
 
 #include <android-base/macros.h>
 
+#include "utils.h"
+
 static constexpr uint16_t le16 = 0x1234;
 static constexpr uint32_t le32 = 0x12345678;
 static constexpr uint64_t le64 = 0x123456789abcdef0;
@@ -41,7 +43,7 @@
   sockaddr_in sin = {.sin_family = AF_INET6};
   errno = 0;
   ASSERT_EQ(-1, bindresvport(-1, &sin));
-  ASSERT_EQ(EPFNOSUPPORT, errno);
+  ASSERT_ERRNO(EPFNOSUPPORT);
 #else
   GTEST_SKIP() << "musl doesn't support bindresvport";
 #endif
diff --git a/tests/nl_types_test.cpp b/tests/nl_types_test.cpp
index 2e3995b..6104d16 100644
--- a/tests/nl_types_test.cpp
+++ b/tests/nl_types_test.cpp
@@ -19,6 +19,8 @@
 #include <errno.h>
 #include <gtest/gtest.h>
 
+#include "utils.h"
+
 TEST(nl_types, smoke) {
   nl_catd cat = catopen("/does/not/exist", NL_CAT_LOCALE);
   ASSERT_EQ(reinterpret_cast<nl_catd>(-1), cat);
@@ -27,5 +29,5 @@
 
   errno = 0;
   ASSERT_EQ(-1, catclose(cat));
-  ASSERT_EQ(EBADF, errno);
+  ASSERT_ERRNO(EBADF);
 }
diff --git a/tests/page_size_16kib_compat_test.cpp b/tests/page_size_16kib_compat_test.cpp
new file mode 100644
index 0000000..a5d91b8
--- /dev/null
+++ b/tests/page_size_16kib_compat_test.cpp
@@ -0,0 +1,62 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *  * Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *  * Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in
+ *    the documentation and/or other materials provided with the
+ *    distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#include "page_size_compat_helpers.h"
+
+#include <android-base/properties.h>
+
+extern "C" void android_set_16kb_appcompat_mode(bool enable_app_compat);
+
+TEST(PageSize16KiBCompatTest, ElfAlignment4KiB_LoadElf) {
+  if (getpagesize() != 0x4000) {
+    GTEST_SKIP() << "This test is only applicable to 16kB page-size devices";
+  }
+
+  bool app_compat_enabled =
+      android::base::GetBoolProperty("bionic.linker.16kb.app_compat.enabled", false);
+  std::string lib = GetTestLibRoot() + "/libtest_elf_max_page_size_4kib.so";
+  void* handle = nullptr;
+
+  OpenTestLibrary(lib, !app_compat_enabled, &handle);
+
+  if (app_compat_enabled) CallTestFunction(handle);
+}
+
+TEST(PageSize16KiBCompatTest, ElfAlignment4KiB_LoadElf_perAppOption) {
+  if (getpagesize() != 0x4000) {
+    GTEST_SKIP() << "This test is only applicable to 16kB page-size devices";
+  }
+
+  android_set_16kb_appcompat_mode(true);
+  std::string lib = GetTestLibRoot() + "/libtest_elf_max_page_size_4kib.so";
+  void* handle = nullptr;
+
+  OpenTestLibrary(lib, false /*should_fail*/, &handle);
+  CallTestFunction(handle);
+  android_set_16kb_appcompat_mode(false);
+}
diff --git a/tests/page_size_compat_helpers.h b/tests/page_size_compat_helpers.h
new file mode 100644
index 0000000..2f0f1d0
--- /dev/null
+++ b/tests/page_size_compat_helpers.h
@@ -0,0 +1,75 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *  * Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *  * Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in
+ *    the documentation and/or other materials provided with the
+ *    distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#pragma once
+
+#include "elf_max_page_size.h"
+#include "gtest_globals.h"
+
+#include <android-base/stringprintf.h>
+
+#include <string>
+
+#include <dlfcn.h>
+#include <gtest/gtest.h>
+#include <unistd.h>
+
+static inline void OpenTestLibrary(std::string lib, bool expect_fail, void** handle) {
+  void* _handle = dlopen(lib.c_str(), RTLD_NODELETE);
+  const char* dlopen_error = dlerror();
+
+  if (expect_fail) {
+    ASSERT_EQ(_handle, nullptr);
+
+    const std::string expected_error = android::base::StringPrintf(
+        "dlopen failed: \"%s\" program alignment (%d) cannot be smaller than system page size (%d)",
+        lib.c_str(), 4096, getpagesize());
+
+    ASSERT_EQ(expected_error, dlopen_error);
+  } else {
+    ASSERT_NE(_handle, nullptr) << "Failed to dlopen shared library \"" << lib
+                                << "\": " << dlopen_error;
+  }
+
+  *handle = _handle;
+}
+
+static inline void CallTestFunction(void* handle) {
+  loader_test_func_t loader_test_func = (loader_test_func_t)dlsym(handle, "loader_test_func");
+  const char* dlsym_error = dlerror();
+
+  ASSERT_EQ(dlsym_error, nullptr) << "Failed to locate symbol \"loader_test_func\": "
+                                  << dlsym_error;
+
+  int res = loader_test_func();
+  ASSERT_EQ(res, TEST_RESULT_BASE + TEST_RESULT_INCREMENT);
+
+  // Call loader_test_func() twice to ensure we can modify writeable data and bss data
+  res = loader_test_func();
+  ASSERT_EQ(res, TEST_RESULT_BASE + (2 * TEST_RESULT_INCREMENT));
+}
diff --git a/tests/pidfd_test.cpp b/tests/pidfd_test.cpp
index b9fadb4..c01b93f 100644
--- a/tests/pidfd_test.cpp
+++ b/tests/pidfd_test.cpp
@@ -29,6 +29,8 @@
 #include <android-base/silent_death_test.h>
 #include <android-base/unique_fd.h>
 
+#include "utils.h"
+
 using android::base::unique_fd;
 using namespace std::chrono_literals;
 
@@ -43,15 +45,13 @@
   }
 
   unique_fd pidfd(pidfd_open(child, 0));
-  if (pidfd.get() == -1) {
-    ASSERT_EQ(ENOSYS, errno);
-    GTEST_SKIP() << "pidfd_open not available";
-  }
+  if (pidfd.get() == -1 && errno == ENOSYS) GTEST_SKIP() << "no pidfd_open() in this kernel";
+  ASSERT_NE(-1, pidfd.get()) << strerror(errno);
 
   siginfo_t siginfo;
   int rc = waitid(P_PIDFD, pidfd.get(), &siginfo, WEXITED);
   if (rc == -1) {
-    ASSERT_EQ(EINVAL, errno) << strerror(errno);
+    ASSERT_ERRNO(EINVAL);
     GTEST_SKIP() << "P_PIDFD not available";
   }
 
@@ -64,16 +64,12 @@
   unique_fd r, w;
   ASSERT_TRUE(android::base::Pipe(&r, &w));
   unique_fd self(pidfd_open(getpid(), 0));
-  if (self.get() == -1) {
-    ASSERT_EQ(ENOSYS, errno);
-    GTEST_SKIP() << "pidfd_open not available";
-  }
+  if (self.get() == -1 && errno == ENOSYS) GTEST_SKIP() << "no pidfd_open() in this kernel";
+  ASSERT_NE(-1, self.get()) << strerror(errno);
 
   unique_fd dup(pidfd_getfd(self.get(), r.get(), 0));
-  if (dup.get() == -1) {
-    ASSERT_EQ(ENOSYS, errno) << strerror(errno);
-    GTEST_SKIP() << "pidfd_getfd not available";
-  }
+  if (dup.get() == -1 && errno == ENOSYS) GTEST_SKIP() << "no pidfd_getfd() in this kernel";
+  ASSERT_NE(-1, dup.get()) << strerror(errno);
 
   ASSERT_NE(r.get(), dup.get());
   ASSERT_EQ(3, write(w.get(), "foo", 3));
@@ -86,15 +82,12 @@
 TEST_F(pidfd_DeathTest, pidfd_send_signal) {
 #if defined(__BIONIC__)
   unique_fd self(pidfd_open(getpid(), 0));
-  if (self.get() == -1) {
-    ASSERT_EQ(ENOSYS, errno);
-    GTEST_SKIP() << "pidfd_open not available";
-  }
+  if (self.get() == -1 && errno == ENOSYS) GTEST_SKIP() << "no pidfd_open() in this kernel";
+  ASSERT_NE(-1, self.get()) << strerror(errno);
 
-  if (pidfd_send_signal(self.get(), 0, nullptr, 0) == -1) {
-    ASSERT_EQ(ENOSYS, errno);
-    GTEST_SKIP() << "pidfd_send_signal not available";
-  }
+  int rc = pidfd_send_signal(self.get(), 0, nullptr, 0);
+  if (rc == -1 && errno == ENOSYS) GTEST_SKIP() << "no pidfd_send_signal() in this kernel";
+  ASSERT_EQ(0, rc) << strerror(errno);
 
   ASSERT_EXIT(({
                 // gtest will fork a child off for ASSERT_EXIT: `self` refers to the parent.
diff --git a/tests/poll_test.cpp b/tests/poll_test.cpp
index 2a3e5e0..5799fea 100644
--- a/tests/poll_test.cpp
+++ b/tests/poll_test.cpp
@@ -31,11 +31,13 @@
 #include <errno.h>
 #include <poll.h>
 
+#include "utils.h"
+
 TEST(poll, poll_null_fds) {
   // Because nanosleep(2) is relatively new to POSIX, code sometimes abuses poll.
   errno = 0;
   ASSERT_EQ(0, poll(nullptr, 0, 1));
-  ASSERT_EQ(0, errno);
+  ASSERT_ERRNO(0);
 }
 
 TEST(poll, ppoll_null_fds) {
@@ -43,15 +45,15 @@
   errno = 0;
   timespec ts = { .tv_nsec = 100 };
   ASSERT_EQ(0, ppoll(nullptr, 0, &ts, nullptr));
-  ASSERT_EQ(0, errno);
+  ASSERT_ERRNO(0);
 }
 
 TEST(poll, ppoll64_null_fds) {
-#if __BIONIC__
+#if defined(__BIONIC__)
   // Because nanosleep(2) is relatively new to POSIX, code sometimes abuses poll.
   errno = 0;
   timespec ts = { .tv_nsec = 100 };
   ASSERT_EQ(0, ppoll64(nullptr, 0, &ts, nullptr));
-  ASSERT_EQ(0, errno);
+  ASSERT_ERRNO(0);
 #endif
 }
diff --git a/tests/prebuilt-elf-files/arm64/libtest_empty.so b/tests/prebuilt-elf-files/arm64/libtest_empty.so
index d8775b6..76c569b 100755
--- a/tests/prebuilt-elf-files/arm64/libtest_empty.so
+++ b/tests/prebuilt-elf-files/arm64/libtest_empty.so
Binary files differ
diff --git a/tests/prebuilt-elf-files/arm64/libtest_invalid-empty_shdr_table.so b/tests/prebuilt-elf-files/arm64/libtest_invalid-empty_shdr_table.so
index c8b5430..21a8f26 100755
--- a/tests/prebuilt-elf-files/arm64/libtest_invalid-empty_shdr_table.so
+++ b/tests/prebuilt-elf-files/arm64/libtest_invalid-empty_shdr_table.so
Binary files differ
diff --git a/tests/prebuilt-elf-files/arm64/libtest_invalid-local-tls.so b/tests/prebuilt-elf-files/arm64/libtest_invalid-local-tls.so
index 20c5765..c902bbe 100755
--- a/tests/prebuilt-elf-files/arm64/libtest_invalid-local-tls.so
+++ b/tests/prebuilt-elf-files/arm64/libtest_invalid-local-tls.so
Binary files differ
diff --git a/tests/prebuilt-elf-files/arm64/libtest_invalid-rw_load_segment.so b/tests/prebuilt-elf-files/arm64/libtest_invalid-rw_load_segment.so
index 6463c6b..46af37f 100755
--- a/tests/prebuilt-elf-files/arm64/libtest_invalid-rw_load_segment.so
+++ b/tests/prebuilt-elf-files/arm64/libtest_invalid-rw_load_segment.so
Binary files differ
diff --git a/tests/prebuilt-elf-files/arm64/libtest_invalid-textrels.so b/tests/prebuilt-elf-files/arm64/libtest_invalid-textrels.so
index f83bbe4..c60b0d6 100755
--- a/tests/prebuilt-elf-files/arm64/libtest_invalid-textrels.so
+++ b/tests/prebuilt-elf-files/arm64/libtest_invalid-textrels.so
Binary files differ
diff --git a/tests/prebuilt-elf-files/arm64/libtest_invalid-textrels2.so b/tests/prebuilt-elf-files/arm64/libtest_invalid-textrels2.so
index fbf62c5..eb33692 100755
--- a/tests/prebuilt-elf-files/arm64/libtest_invalid-textrels2.so
+++ b/tests/prebuilt-elf-files/arm64/libtest_invalid-textrels2.so
Binary files differ
diff --git a/tests/prebuilt-elf-files/arm64/libtest_invalid-unaligned_shdr_offset.so b/tests/prebuilt-elf-files/arm64/libtest_invalid-unaligned_shdr_offset.so
index 6e5a6e3..fb86bca 100755
--- a/tests/prebuilt-elf-files/arm64/libtest_invalid-unaligned_shdr_offset.so
+++ b/tests/prebuilt-elf-files/arm64/libtest_invalid-unaligned_shdr_offset.so
Binary files differ
diff --git a/tests/prebuilt-elf-files/arm64/libtest_invalid-zero_shdr_table_content.so b/tests/prebuilt-elf-files/arm64/libtest_invalid-zero_shdr_table_content.so
index 14b80b5..0416db2 100755
--- a/tests/prebuilt-elf-files/arm64/libtest_invalid-zero_shdr_table_content.so
+++ b/tests/prebuilt-elf-files/arm64/libtest_invalid-zero_shdr_table_content.so
Binary files differ
diff --git a/tests/prebuilt-elf-files/arm64/libtest_invalid-zero_shdr_table_offset.so b/tests/prebuilt-elf-files/arm64/libtest_invalid-zero_shdr_table_offset.so
index 0aaca72..90892a6 100755
--- a/tests/prebuilt-elf-files/arm64/libtest_invalid-zero_shdr_table_offset.so
+++ b/tests/prebuilt-elf-files/arm64/libtest_invalid-zero_shdr_table_offset.so
Binary files differ
diff --git a/tests/prebuilt-elf-files/arm64/libtest_invalid-zero_shentsize.so b/tests/prebuilt-elf-files/arm64/libtest_invalid-zero_shentsize.so
index 4ffc7e8..c186b1d 100755
--- a/tests/prebuilt-elf-files/arm64/libtest_invalid-zero_shentsize.so
+++ b/tests/prebuilt-elf-files/arm64/libtest_invalid-zero_shentsize.so
Binary files differ
diff --git a/tests/prebuilt-elf-files/arm64/libtest_invalid-zero_shstrndx.so b/tests/prebuilt-elf-files/arm64/libtest_invalid-zero_shstrndx.so
index 9098310..857f702 100755
--- a/tests/prebuilt-elf-files/arm64/libtest_invalid-zero_shstrndx.so
+++ b/tests/prebuilt-elf-files/arm64/libtest_invalid-zero_shstrndx.so
Binary files differ
diff --git a/tests/prebuilt-elf-files/gen-libtest_invalid-local-tls.sh b/tests/prebuilt-elf-files/gen-libtest_invalid-local-tls.sh
index 0f3e736..98a2b00 100755
--- a/tests/prebuilt-elf-files/gen-libtest_invalid-local-tls.sh
+++ b/tests/prebuilt-elf-files/gen-libtest_invalid-local-tls.sh
@@ -19,12 +19,18 @@
 build() {
   arch=$1
   target=$2
+
+  if [[ "$arch" == "arm64" || "$arch" == "x86_64" ]]; then
+    alignment="-Wl,-z,max-page-size=16384"
+  fi
+
   $NDK21E/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -O2 --target=$target \
       -fpic -shared -o $arch/libtest_invalid-local-tls.so -fno-emulated-tls \
-      -fuse-ld=gold test.c test2.c
+      $alignment -fuse-ld=gold test.c test2.c
 }
 
 build arm armv7a-linux-androideabi29
 build arm64 aarch64-linux-android29
 build x86 i686-linux-android29
 build x86_64 x86_64-linux-android29
+
diff --git a/tests/prebuilt-elf-files/x86_64/libtest_empty.so b/tests/prebuilt-elf-files/x86_64/libtest_empty.so
index c3f3638..ce519b2 100755
--- a/tests/prebuilt-elf-files/x86_64/libtest_empty.so
+++ b/tests/prebuilt-elf-files/x86_64/libtest_empty.so
Binary files differ
diff --git a/tests/prebuilt-elf-files/x86_64/libtest_invalid-empty_shdr_table.so b/tests/prebuilt-elf-files/x86_64/libtest_invalid-empty_shdr_table.so
index af1538d..00fefd4 100755
--- a/tests/prebuilt-elf-files/x86_64/libtest_invalid-empty_shdr_table.so
+++ b/tests/prebuilt-elf-files/x86_64/libtest_invalid-empty_shdr_table.so
Binary files differ
diff --git a/tests/prebuilt-elf-files/x86_64/libtest_invalid-local-tls.so b/tests/prebuilt-elf-files/x86_64/libtest_invalid-local-tls.so
index 5b689ba..31d2b37 100755
--- a/tests/prebuilt-elf-files/x86_64/libtest_invalid-local-tls.so
+++ b/tests/prebuilt-elf-files/x86_64/libtest_invalid-local-tls.so
Binary files differ
diff --git a/tests/prebuilt-elf-files/x86_64/libtest_invalid-rw_load_segment.so b/tests/prebuilt-elf-files/x86_64/libtest_invalid-rw_load_segment.so
index 113e455..9d2c5f1 100755
--- a/tests/prebuilt-elf-files/x86_64/libtest_invalid-rw_load_segment.so
+++ b/tests/prebuilt-elf-files/x86_64/libtest_invalid-rw_load_segment.so
Binary files differ
diff --git a/tests/prebuilt-elf-files/x86_64/libtest_invalid-textrels.so b/tests/prebuilt-elf-files/x86_64/libtest_invalid-textrels.so
index 719fb5a..f231d11 100755
--- a/tests/prebuilt-elf-files/x86_64/libtest_invalid-textrels.so
+++ b/tests/prebuilt-elf-files/x86_64/libtest_invalid-textrels.so
Binary files differ
diff --git a/tests/prebuilt-elf-files/x86_64/libtest_invalid-textrels2.so b/tests/prebuilt-elf-files/x86_64/libtest_invalid-textrels2.so
index 9d0741e..97fb5c4 100755
--- a/tests/prebuilt-elf-files/x86_64/libtest_invalid-textrels2.so
+++ b/tests/prebuilt-elf-files/x86_64/libtest_invalid-textrels2.so
Binary files differ
diff --git a/tests/prebuilt-elf-files/x86_64/libtest_invalid-unaligned_shdr_offset.so b/tests/prebuilt-elf-files/x86_64/libtest_invalid-unaligned_shdr_offset.so
index 87631af..f9c310f 100755
--- a/tests/prebuilt-elf-files/x86_64/libtest_invalid-unaligned_shdr_offset.so
+++ b/tests/prebuilt-elf-files/x86_64/libtest_invalid-unaligned_shdr_offset.so
Binary files differ
diff --git a/tests/prebuilt-elf-files/x86_64/libtest_invalid-zero_shdr_table_content.so b/tests/prebuilt-elf-files/x86_64/libtest_invalid-zero_shdr_table_content.so
index 27d1138..3d1f5d3 100755
--- a/tests/prebuilt-elf-files/x86_64/libtest_invalid-zero_shdr_table_content.so
+++ b/tests/prebuilt-elf-files/x86_64/libtest_invalid-zero_shdr_table_content.so
Binary files differ
diff --git a/tests/prebuilt-elf-files/x86_64/libtest_invalid-zero_shdr_table_offset.so b/tests/prebuilt-elf-files/x86_64/libtest_invalid-zero_shdr_table_offset.so
index 3e2c1d1..aeea1d2 100755
--- a/tests/prebuilt-elf-files/x86_64/libtest_invalid-zero_shdr_table_offset.so
+++ b/tests/prebuilt-elf-files/x86_64/libtest_invalid-zero_shdr_table_offset.so
Binary files differ
diff --git a/tests/prebuilt-elf-files/x86_64/libtest_invalid-zero_shentsize.so b/tests/prebuilt-elf-files/x86_64/libtest_invalid-zero_shentsize.so
index 78fed79..8146676 100755
--- a/tests/prebuilt-elf-files/x86_64/libtest_invalid-zero_shentsize.so
+++ b/tests/prebuilt-elf-files/x86_64/libtest_invalid-zero_shentsize.so
Binary files differ
diff --git a/tests/prebuilt-elf-files/x86_64/libtest_invalid-zero_shstrndx.so b/tests/prebuilt-elf-files/x86_64/libtest_invalid-zero_shstrndx.so
index 0953633..4ac70f7 100755
--- a/tests/prebuilt-elf-files/x86_64/libtest_invalid-zero_shstrndx.so
+++ b/tests/prebuilt-elf-files/x86_64/libtest_invalid-zero_shstrndx.so
Binary files differ
diff --git a/tests/pthread_test.cpp b/tests/pthread_test.cpp
index aad2a4d..5ce7d4d 100644
--- a/tests/pthread_test.cpp
+++ b/tests/pthread_test.cpp
@@ -25,6 +25,7 @@
 #include <stdio.h>
 #include <sys/cdefs.h>
 #include <sys/mman.h>
+#include <sys/param.h>
 #include <sys/prctl.h>
 #include <sys/resource.h>
 #include <sys/syscall.h>
@@ -44,6 +45,7 @@
 #include <android-base/test_utils.h>
 
 #include "private/bionic_constants.h"
+#include "private/bionic_time_conversions.h"
 #include "SignalUtils.h"
 #include "utils.h"
 
@@ -585,7 +587,7 @@
   while (TEMP_FAILURE_RETRY(syscall(__NR_tgkill, getpid(), tid, 0)) != -1) {
     continue;
   }
-  ASSERT_EQ(ESRCH, errno);
+  ASSERT_ERRNO(ESRCH);
 
   ASSERT_EQ(ESRCH, pthread_kill(thread, 0));
 }
@@ -784,7 +786,7 @@
   size_t guard_size;
   ASSERT_EQ(0, pthread_attr_getguardsize(&attributes, &guard_size));
   ASSERT_EQ(128U, guard_size);
-  ASSERT_EQ(4096U, GetActualGuardSize(attributes));
+  ASSERT_EQ(static_cast<unsigned long>(getpagesize()), GetActualGuardSize(attributes));
 }
 
 TEST(pthread, pthread_attr_setguardsize_reasonable) {
@@ -808,7 +810,7 @@
   size_t guard_size;
   ASSERT_EQ(0, pthread_attr_getguardsize(&attributes, &guard_size));
   ASSERT_EQ(32*1024U + 1, guard_size);
-  ASSERT_EQ(36*1024U, GetActualGuardSize(attributes));
+  ASSERT_EQ(roundup(32 * 1024U + 1, getpagesize()), GetActualGuardSize(attributes));
 }
 
 TEST(pthread, pthread_attr_setguardsize_enormous) {
@@ -1422,10 +1424,11 @@
 static void AtForkChild1() { g_atfork_child_calls = (g_atfork_child_calls * 10) + 1; }
 static void AtForkChild2() { g_atfork_child_calls = (g_atfork_child_calls * 10) + 2; }
 
-TEST(pthread, pthread_atfork_smoke) {
+TEST(pthread, pthread_atfork_smoke_fork) {
   ASSERT_EQ(0, pthread_atfork(AtForkPrepare1, AtForkParent1, AtForkChild1));
   ASSERT_EQ(0, pthread_atfork(AtForkPrepare2, AtForkParent2, AtForkChild2));
 
+  g_atfork_prepare_calls = g_atfork_parent_calls = g_atfork_child_calls = 0;
   pid_t pid = fork();
   ASSERT_NE(-1, pid) << strerror(errno);
 
@@ -1441,6 +1444,44 @@
   AssertChildExited(pid, 0);
 }
 
+TEST(pthread, pthread_atfork_smoke_vfork) {
+  ASSERT_EQ(0, pthread_atfork(AtForkPrepare1, AtForkParent1, AtForkChild1));
+  ASSERT_EQ(0, pthread_atfork(AtForkPrepare2, AtForkParent2, AtForkChild2));
+
+  g_atfork_prepare_calls = g_atfork_parent_calls = g_atfork_child_calls = 0;
+  pid_t pid = vfork();
+  ASSERT_NE(-1, pid) << strerror(errno);
+
+  // atfork handlers are not called.
+  if (pid == 0) {
+    ASSERT_EQ(0, g_atfork_child_calls);
+    _exit(0);
+  }
+  ASSERT_EQ(0, g_atfork_parent_calls);
+  ASSERT_EQ(0, g_atfork_prepare_calls);
+  AssertChildExited(pid, 0);
+}
+
+TEST(pthread, pthread_atfork_smoke__Fork) {
+#if defined(__BIONIC__)
+  ASSERT_EQ(0, pthread_atfork(AtForkPrepare1, AtForkParent1, AtForkChild1));
+  ASSERT_EQ(0, pthread_atfork(AtForkPrepare2, AtForkParent2, AtForkChild2));
+
+  g_atfork_prepare_calls = g_atfork_parent_calls = g_atfork_child_calls = 0;
+  pid_t pid = _Fork();
+  ASSERT_NE(-1, pid) << strerror(errno);
+
+  // atfork handlers are not called.
+  if (pid == 0) {
+    ASSERT_EQ(0, g_atfork_child_calls);
+    _exit(0);
+  }
+  ASSERT_EQ(0, g_atfork_parent_calls);
+  ASSERT_EQ(0, g_atfork_prepare_calls);
+  AssertChildExited(pid, 0);
+#endif
+}
+
 TEST(pthread, pthread_attr_getscope) {
   pthread_attr_t attr;
   ASSERT_EQ(0, pthread_attr_init(&attr));
@@ -2397,9 +2438,25 @@
   ts.tv_sec = -1;
   ASSERT_EQ(ETIMEDOUT, lock_function(&m, &ts));
 
+  // Check we wait long enough for the lock before timing out...
+
+  // What time is it before we start?
+  ASSERT_EQ(0, clock_gettime(clock, &ts));
+  const int64_t start_ns = to_ns(ts);
+  // Add a second to get deadline, and wait until we time out.
+  ts.tv_sec += 1;
+  ASSERT_EQ(ETIMEDOUT, lock_function(&m, &ts));
+
+  // What time is it now we've timed out?
+  timespec ts2;
+  clock_gettime(clock, &ts2);
+  const int64_t end_ns = to_ns(ts2);
+
+  // The timedlock must have waited at least 1 second before returning.
+  ASSERT_GE(end_ns - start_ns, NS_PER_S);
+
   // If the mutex is unlocked, pthread_mutex_timedlock should succeed.
   ASSERT_EQ(0, pthread_mutex_unlock(&m));
-
   ASSERT_EQ(0, clock_gettime(clock, &ts));
   ts.tv_sec += 1;
   ASSERT_EQ(0, lock_function(&m, &ts));
@@ -2420,12 +2477,19 @@
 #endif  // __BIONIC__
 }
 
-TEST(pthread, pthread_mutex_clocklock) {
+TEST(pthread, pthread_mutex_clocklock_MONOTONIC) {
 #if defined(__BIONIC__)
   pthread_mutex_timedlock_helper(
       CLOCK_MONOTONIC, [](pthread_mutex_t* __mutex, const timespec* __timeout) {
         return pthread_mutex_clocklock(__mutex, CLOCK_MONOTONIC, __timeout);
       });
+#else   // __BIONIC__
+  GTEST_SKIP() << "pthread_mutex_clocklock not available";
+#endif  // __BIONIC__
+}
+
+TEST(pthread, pthread_mutex_clocklock_REALTIME) {
+#if defined(__BIONIC__)
   pthread_mutex_timedlock_helper(
       CLOCK_REALTIME, [](pthread_mutex_t* __mutex, const timespec* __timeout) {
         return pthread_mutex_clocklock(__mutex, CLOCK_REALTIME, __timeout);
@@ -2442,7 +2506,11 @@
 
   timespec ts;
   clock_gettime(clock, &ts);
+  const int64_t start_ns = ts.tv_sec * NS_PER_S + ts.tv_nsec;
+
+  // add a second to get deadline.
   ts.tv_sec += 1;
+
   ASSERT_EQ(0, lock_function(&m.lock, &ts));
 
   struct ThreadArgs {
@@ -2471,6 +2539,12 @@
   void* result;
   ASSERT_EQ(0, pthread_join(thread, &result));
   ASSERT_EQ(ETIMEDOUT, reinterpret_cast<intptr_t>(result));
+
+  // The timedlock must have waited at least 1 second before returning.
+  clock_gettime(clock, &ts);
+  const int64_t end_ns = ts.tv_sec * NS_PER_S + ts.tv_nsec;
+  ASSERT_GT(end_ns - start_ns, NS_PER_S);
+
   ASSERT_EQ(0, pthread_mutex_unlock(&m.lock));
 }
 
@@ -3063,3 +3137,39 @@
   GTEST_SKIP() << "bionic-only test";
 #endif
 }
+
+TEST(pthread, pthread_getaffinity_np_failure) {
+  // Trivial test of the errno-preserving/returning behavior.
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wnonnull"
+  errno = 0;
+  ASSERT_EQ(EINVAL, pthread_getaffinity_np(pthread_self(), 0, nullptr));
+  ASSERT_ERRNO(0);
+#pragma clang diagnostic pop
+}
+
+TEST(pthread, pthread_getaffinity) {
+  cpu_set_t set;
+  CPU_ZERO(&set);
+  ASSERT_EQ(0, pthread_getaffinity_np(pthread_self(), sizeof(set), &set));
+  ASSERT_GT(CPU_COUNT(&set), 0);
+}
+
+TEST(pthread, pthread_setaffinity_np_failure) {
+  // Trivial test of the errno-preserving/returning behavior.
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wnonnull"
+  errno = 0;
+  ASSERT_EQ(EINVAL, pthread_setaffinity_np(pthread_self(), 0, nullptr));
+  ASSERT_ERRNO(0);
+#pragma clang diagnostic pop
+}
+
+TEST(pthread, pthread_setaffinity) {
+  cpu_set_t set;
+  CPU_ZERO(&set);
+  ASSERT_EQ(0, pthread_getaffinity_np(pthread_self(), sizeof(set), &set));
+  // It's hard to make any more general claim than this,
+  // but it ought to be safe to ask for the same affinity you already have.
+  ASSERT_EQ(0, pthread_setaffinity_np(pthread_self(), sizeof(set), &set));
+}
diff --git a/tests/run-on-host.sh b/tests/run-on-host.sh
index fe2c25a..19bbacf 100755
--- a/tests/run-on-host.sh
+++ b/tests/run-on-host.sh
@@ -2,9 +2,14 @@
 
 . $(dirname $0)/../build/run-on-host.sh
 
-if [ "$1" = glibc ]; then
+if [ "$1" = glibc -o "$1" = musl ]; then
+  if [ "$1" = musl ]; then
+    BUILD_ARGS=USE_HOST_MUSL=true
+  else
+    BUILD_ARGS=
+  fi
   shift
-  m -j bionic-unit-tests-glibc
+  m -j $BUILD_ARGS bionic-unit-tests-glibc
   (
     cd ${ANDROID_BUILD_TOP}
     export ANDROID_DATA=${TARGET_OUT_DATA}
@@ -13,7 +18,7 @@
   )
   exit 0
 elif [ "$1" != 32 -a "$1" != 64 ]; then
-  echo "Usage: $0 [ 32 | 64 | glibc ] [gtest flags]"
+  echo "Usage: $0 [ 32 | 64 | glibc | musl ] [gtest flags]"
   exit 1
 fi
 
diff --git a/tests/sched_test.cpp b/tests/sched_test.cpp
index fa1a07f..448fae9 100644
--- a/tests/sched_test.cpp
+++ b/tests/sched_test.cpp
@@ -21,6 +21,8 @@
 #include <sys/types.h>
 #include <sys/wait.h>
 
+#include "utils.h"
+
 static int child_fn(void* i_ptr) {
   *reinterpret_cast<int*>(i_ptr) = 42;
   return 123;
@@ -57,14 +59,14 @@
   errno = 0;
   // If CLONE_THREAD is set, CLONE_SIGHAND must be set too.
   ASSERT_EQ(-1, clone(child_fn, &fake_child_stack[16], CLONE_THREAD, nullptr));
-  ASSERT_EQ(EINVAL, errno);
+  ASSERT_ERRNO(EINVAL);
 }
 
 TEST(sched, clone_null_child_stack) {
   int i = 0;
   errno = 0;
   ASSERT_EQ(-1, clone(child_fn, nullptr, CLONE_VM, &i));
-  ASSERT_EQ(EINVAL, errno);
+  ASSERT_ERRNO(EINVAL);
 }
 
 TEST(sched, cpu_set) {
@@ -289,7 +291,7 @@
   p.sched_priority = sched_get_priority_min(original_policy);
   errno = 0;
   ASSERT_EQ(-1, sched_setscheduler(getpid(), INT_MAX, &p));
-  ASSERT_EQ(EINVAL, errno);
+  ASSERT_ERRNO(EINVAL);
 
   ASSERT_EQ(0, sched_getparam(getpid(), &p));
   ASSERT_EQ(original_policy, sched_setscheduler(getpid(), SCHED_BATCH, &p));
@@ -303,8 +305,35 @@
 }
 
 TEST(sched, sched_getaffinity_failure) {
+  // Trivial test of the errno-preserving/returning behavior.
 #pragma clang diagnostic push
 #pragma clang diagnostic ignored "-Wnonnull"
   ASSERT_EQ(-1, sched_getaffinity(getpid(), 0, nullptr));
+  ASSERT_ERRNO(EINVAL);
 #pragma clang diagnostic pop
 }
+
+TEST(pthread, sched_getaffinity) {
+  cpu_set_t set;
+  CPU_ZERO(&set);
+  ASSERT_EQ(0, sched_getaffinity(getpid(), sizeof(set), &set));
+  ASSERT_GT(CPU_COUNT(&set), 0);
+}
+
+TEST(sched, sched_setaffinity_failure) {
+  // Trivial test of the errno-preserving/returning behavior.
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wnonnull"
+  ASSERT_EQ(-1, sched_setaffinity(getpid(), 0, nullptr));
+  ASSERT_ERRNO(EINVAL);
+#pragma clang diagnostic pop
+}
+
+TEST(pthread, sched_setaffinity) {
+  cpu_set_t set;
+  CPU_ZERO(&set);
+  ASSERT_EQ(0, sched_getaffinity(getpid(), sizeof(set), &set));
+  // It's hard to make any more general claim than this,
+  // but it ought to be safe to ask for the same affinity you already have.
+  ASSERT_EQ(0, sched_setaffinity(getpid(), sizeof(set), &set));
+}
diff --git a/tests/scs_test.cpp b/tests/scs_test.cpp
index 0776a43..3d5ebc1 100644
--- a/tests/scs_test.cpp
+++ b/tests/scs_test.cpp
@@ -16,8 +16,12 @@
 
 #include <gtest/gtest.h>
 
+#include <android-base/silent_death_test.h>
+
 #include "private/bionic_constants.h"
 
+using scs_DeathTest = SilentDeathTest;
+
 int recurse2(int count);
 
 __attribute__((weak, noinline)) int recurse1(int count) {
@@ -30,7 +34,7 @@
   return 0;
 }
 
-TEST(scs_test, stack_overflow) {
+TEST_F(scs_DeathTest, stack_overflow) {
 #if defined(__aarch64__) || defined(__riscv)
   ASSERT_EXIT(recurse1(SCS_SIZE), testing::KilledBySignal(SIGSEGV), "");
 #else
diff --git a/tests/search_test.cpp b/tests/search_test.cpp
index 8b8359d..5066709 100644
--- a/tests/search_test.cpp
+++ b/tests/search_test.cpp
@@ -18,6 +18,8 @@
 
 #include <search.h>
 
+#include "utils.h"
+
 static int int_cmp(const void* lhs, const void* rhs) {
   return *reinterpret_cast<const int*>(rhs) - *reinterpret_cast<const int*>(lhs);
 }
@@ -276,7 +278,7 @@
   // Check missing.
   errno = 0;
   ASSERT_EQ(0, hsearch_r(ENTRY{.key = const_cast<char*>("b"), .data = nullptr}, FIND, &e, &h1));
-  ASSERT_EQ(ESRCH, errno);
+  ASSERT_ERRNO(ESRCH);
 
   // Check present.
   ASSERT_EQ(1, hsearch_r(ENTRY{.key = const_cast<char*>("a"), .data = nullptr}, FIND, &e, &h1));
diff --git a/tests/semaphore_test.cpp b/tests/semaphore_test.cpp
index 6f8797f..5558134 100644
--- a/tests/semaphore_test.cpp
+++ b/tests/semaphore_test.cpp
@@ -28,6 +28,8 @@
 #include "SignalUtils.h"
 #include "private/bionic_constants.h"
 
+#include "utils.h"
+
 using semaphore_DeathTest = SilentDeathTest;
 
 TEST(semaphore, sem_init) {
@@ -41,7 +43,7 @@
   // Too small an initial value.
   errno = 0;
   ASSERT_EQ(-1, sem_init(&s, 0, -1));
-  ASSERT_EQ(EINVAL, errno);
+  ASSERT_ERRNO(EINVAL);
 
   ASSERT_EQ(SEM_VALUE_MAX, sysconf(_SC_SEM_VALUE_MAX));
 
@@ -50,8 +52,8 @@
 
   // Too large an initial value.
   errno = 0;
-  ASSERT_EQ(-1, sem_init(&s, 0, SEM_VALUE_MAX + 1));
-  ASSERT_EQ(EINVAL, errno);
+  ASSERT_EQ(-1, sem_init(&s, 0, static_cast<unsigned>(SEM_VALUE_MAX) + 1));
+  ASSERT_ERRNO(EINVAL);
 
   ASSERT_EQ(0, sem_destroy(&s));
 }
@@ -64,7 +66,7 @@
   ASSERT_EQ(0, sem_trywait(&s));
   errno = 0;
   ASSERT_EQ(-1, sem_trywait(&s));
-  ASSERT_EQ(EAGAIN, errno);
+  ASSERT_ERRNO(EAGAIN);
   ASSERT_EQ(0, sem_destroy(&s));
 }
 
@@ -116,23 +118,23 @@
 
   errno = 0;
   ASSERT_EQ(-1, wait_function(&s, &ts));
-  ASSERT_EQ(ETIMEDOUT, errno);
+  ASSERT_ERRNO(ETIMEDOUT);
 
   // A negative timeout is an error.
   errno = 0;
   ts.tv_nsec = -1;
   ASSERT_EQ(-1, wait_function(&s, &ts));
-  ASSERT_EQ(EINVAL, errno);
+  ASSERT_ERRNO(EINVAL);
   errno = 0;
   ts.tv_nsec = NS_PER_S;
   ASSERT_EQ(-1, wait_function(&s, &ts));
-  ASSERT_EQ(EINVAL, errno);
+  ASSERT_ERRNO(EINVAL);
 
   errno = 0;
   ts.tv_nsec = NS_PER_S - 1;
   ts.tv_sec = -1;
   ASSERT_EQ(-1, wait_function(&s, &ts));
-  ASSERT_EQ(ETIMEDOUT, errno);
+  ASSERT_ERRNO(ETIMEDOUT);
 
   ASSERT_EQ(0, sem_destroy(&s));
 }
diff --git a/tests/setjmp_test.cpp b/tests/setjmp_test.cpp
index 6ae8bfd..9469285 100644
--- a/tests/setjmp_test.cpp
+++ b/tests/setjmp_test.cpp
@@ -174,38 +174,65 @@
   }
 }
 
-#if defined(__aarch64__)
+#if defined(__arm__) || defined(__aarch64__)
+// arm and arm64 have the same callee save fp registers (8-15),
+// but use different instructions for accessing them.
+#if defined(__arm__)
+#define SET_FREG(n, v) asm volatile("vmov.f64 d"#n ", #"#v : : : "d"#n)
+#define GET_FREG(n) ({ double _r; asm volatile("fcpyd %P0, d"#n : "=w"(_r) : :); _r;})
+#define CLEAR_FREG(n) asm volatile("vmov.i64 d"#n ", #0x0" : : : "d"#n)
+#elif defined(__aarch64__)
 #define SET_FREG(n, v) asm volatile("fmov d"#n ", "#v : : : "d"#n)
+#define GET_FREG(n) ({ double _r; asm volatile("fmov %0, d"#n : "=r"(_r) : :); _r; })
 #define CLEAR_FREG(n) asm volatile("fmov d"#n ", xzr" : : : "d"#n)
+#endif
 #define SET_FREGS \
   SET_FREG(8, 8.0); SET_FREG(9, 9.0); SET_FREG(10, 10.0); SET_FREG(11, 11.0); \
-  SET_FREG(12, 12.0); SET_FREG(13, 13.0); SET_FREG(14, 14.0); SET_FREG(15, 15.0);
+  SET_FREG(12, 12.0); SET_FREG(13, 13.0); SET_FREG(14, 14.0); SET_FREG(15, 15.0)
 #define CLEAR_FREGS \
   CLEAR_FREG(8); CLEAR_FREG(9); CLEAR_FREG(10); CLEAR_FREG(11); \
-  CLEAR_FREG(12); CLEAR_FREG(13); CLEAR_FREG(14); CLEAR_FREG(15);
-#define GET_FREG(n) ({ double _r; asm volatile("fmov %0, d"#n : "=r"(_r) : :); _r; })
+  CLEAR_FREG(12); CLEAR_FREG(13); CLEAR_FREG(14); CLEAR_FREG(15)
 #define CHECK_FREGS \
-    EXPECT_EQ(8.0, GET_FREG(8)); EXPECT_EQ(9.0, GET_FREG(9)); \
-    EXPECT_EQ(10.0, GET_FREG(10)); EXPECT_EQ(11.0, GET_FREG(11)); \
-    EXPECT_EQ(12.0, GET_FREG(12)); EXPECT_EQ(13.0, GET_FREG(13)); \
-    EXPECT_EQ(14.0, GET_FREG(14)); EXPECT_EQ(15.0, GET_FREG(15));
-#elif defined(__arm__)
-#define SET_FREG(n, v) \
-  ({ const double _v{v}; asm volatile("fcpyd d"#n ", %P0" : : "w"(_v) : "d"#n); })
+  EXPECT_EQ(8.0, GET_FREG(8)); EXPECT_EQ(9.0, GET_FREG(9)); \
+  EXPECT_EQ(10.0, GET_FREG(10)); EXPECT_EQ(11.0, GET_FREG(11)); \
+  EXPECT_EQ(12.0, GET_FREG(12)); EXPECT_EQ(13.0, GET_FREG(13)); \
+  EXPECT_EQ(14.0, GET_FREG(14)); EXPECT_EQ(15.0, GET_FREG(15))
+
+#elif defined(__riscv)
+// riscv64 has callee save registers fs0-fs11.
+// TODO: use Zfa to get 1.0 rather than the one_p trick.
 #define SET_FREGS \
-  SET_FREG(8, 8); SET_FREG(9, 9); SET_FREG(10, 10); SET_FREG(11, 11); \
-  SET_FREG(12, 12); SET_FREG(13, 13); SET_FREG(14, 14); SET_FREG(15, 15);
+  double one = 1, *one_p = &one; \
+  asm volatile("fmv.d.x fs0, zero ; fld fs1, (%0) ; \
+                fadd.d fs2, fs1, fs1 ; fadd.d fs3, fs2, fs1 ; \
+                fadd.d fs4, fs3, fs1 ; fadd.d fs5, fs4, fs1 ; \
+                fadd.d fs6, fs5, fs1 ; fadd.d fs7, fs6, fs1 ; \
+                fadd.d fs8, fs7, fs1 ; fadd.d fs9, fs8, fs1 ; \
+                fadd.d fs10, fs9, fs1 ; fadd.d fs11, fs10, fs1" \
+               : \
+               : "r"(one_p) \
+               : "fs0", "fs1", "fs2", "fs3", "fs4", "fs5", \
+                  "fs6", "fs7", "fs8", "fs9", "fs10", "fs11")
 #define CLEAR_FREGS \
-  SET_FREG(8, 0); SET_FREG(9, 0); SET_FREG(10, 0); SET_FREG(11, 0); \
-  SET_FREG(12, 0); SET_FREG(13, 0); SET_FREG(14, 0); SET_FREG(15, 0);
-#define GET_FREG(n) ({ double _r; asm volatile("fcpyd %P0, d"#n : "=w"(_r) : :); _r;})
+  asm volatile("fmv.d.x fs0, zero ; fmv.d.x fs1, zero ; \
+                fmv.d.x fs2, zero ; fmv.d.x fs3, zero ; \
+                fmv.d.x fs4, zero ; fmv.d.x fs5, zero ; \
+                fmv.d.x fs6, zero ; fmv.d.x fs7, zero ; \
+                fmv.d.x fs8, zero ; fmv.d.x fs9, zero ; \
+                fmv.d.x fs10, zero ; fmv.d.x fs11, zero" \
+               : : : "fs0", "fs1", "fs2", "fs3", "fs4", "fs5", \
+                     "fs6", "fs7", "fs8", "fs9", "fs10", "fs11")
+#define GET_FREG(n) ({ double _r; asm volatile("fmv.d %0, fs"#n : "=f"(_r) : :); _r; })
 #define CHECK_FREGS \
-    EXPECT_EQ(8.0, GET_FREG(8)); EXPECT_EQ(9.0, GET_FREG(9)); \
-    EXPECT_EQ(10.0, GET_FREG(10)); EXPECT_EQ(11.0, GET_FREG(11)); \
-    EXPECT_EQ(12.0, GET_FREG(12)); EXPECT_EQ(13.0, GET_FREG(13)); \
-    EXPECT_EQ(14.0, GET_FREG(14)); EXPECT_EQ(15.0, GET_FREG(15));
+  EXPECT_EQ(0.0, GET_FREG(0)); EXPECT_EQ(1.0, GET_FREG(1)); \
+  EXPECT_EQ(2.0, GET_FREG(2)); EXPECT_EQ(3.0, GET_FREG(3)); \
+  EXPECT_EQ(4.0, GET_FREG(4)); EXPECT_EQ(5.0, GET_FREG(5)); \
+  EXPECT_EQ(6.0, GET_FREG(6)); EXPECT_EQ(7.0, GET_FREG(7)); \
+  EXPECT_EQ(8.0, GET_FREG(8)); EXPECT_EQ(9.0, GET_FREG(9)); \
+  EXPECT_EQ(10.0, GET_FREG(10)); EXPECT_EQ(11.0, GET_FREG(11))
+
 #else
-/* The other architectures don't save/restore fp registers. */
+// x86 and x86-64 don't save/restore fp registers.
 #define SET_FREGS
 #define CLEAR_FREGS
 #define CHECK_FREGS
diff --git a/tests/signal_test.cpp b/tests/signal_test.cpp
index fa648d2..c1719dc 100644
--- a/tests/signal_test.cpp
+++ b/tests/signal_test.cpp
@@ -56,13 +56,13 @@
   SigSetT* set_ptr = nullptr;
   errno = 0;
   ASSERT_EQ(-1, fn(set_ptr));
-  ASSERT_EQ(EINVAL, errno);
+  ASSERT_ERRNO(EINVAL);
 
   // Non-nullptr.
   SigSetT set = {};
   errno = 0;
   ASSERT_EQ(0, fn(&set));
-  ASSERT_EQ(0, errno);
+  ASSERT_ERRNO(0);
 }
 
 template <typename SigSetT>
@@ -71,26 +71,26 @@
   SigSetT* set_ptr = nullptr;
   errno = 0;
   ASSERT_EQ(-1, fn(set_ptr, SIGSEGV));
-  ASSERT_EQ(EINVAL, errno);
+  ASSERT_ERRNO(EINVAL);
 
   SigSetT set = {};
 
   // Bad signal number: too small.
   errno = 0;
   ASSERT_EQ(-1, fn(&set, 0));
-  ASSERT_EQ(EINVAL, errno);
+  ASSERT_ERRNO(EINVAL);
 
   // Bad signal number: too high.
   errno = 0;
   ASSERT_EQ(-1, fn(&set, SIGNAL_MAX(&set) + 1));
-  ASSERT_EQ(EINVAL, errno);
+  ASSERT_ERRNO(EINVAL);
 
   // Good signal numbers, low and high ends of range.
   errno = 0;
   ASSERT_EQ(0, fn(&set, SIGNAL_MIN()));
-  ASSERT_EQ(0, errno);
+  ASSERT_ERRNO(0);
   ASSERT_EQ(0, fn(&set, SIGNAL_MAX(&set)));
-  ASSERT_EQ(0, errno);
+  ASSERT_ERRNO(0);
 }
 
 TEST(signal, sigaddset_invalid) {
@@ -146,7 +146,7 @@
 TEST(signal, raise_invalid) {
   errno = 0;
   ASSERT_EQ(-1, raise(-1));
-  ASSERT_EQ(EINVAL, errno);
+  ASSERT_ERRNO(EINVAL);
 }
 
 static void raise_in_signal_handler_helper(int signal_number) {
@@ -199,7 +199,7 @@
   sigfillset(&not_SIGALRM);
   sigdelset(&not_SIGALRM, SIGALRM);
   ASSERT_EQ(-1, sigsuspend(&not_SIGALRM));
-  ASSERT_EQ(EINTR, errno);
+  ASSERT_ERRNO(EINTR);
   // ...and check that we now receive our pending SIGALRM.
   ASSERT_EQ(1, g_sigsuspend_signal_handler_call_count);
 }
@@ -241,7 +241,7 @@
   sigfillset64(&not_SIGRTMIN);
   sigdelset64(&not_SIGRTMIN, SIGRTMIN);
   ASSERT_EQ(-1, sigsuspend64(&not_SIGRTMIN));
-  ASSERT_EQ(EINTR, errno);
+  ASSERT_ERRNO(EINTR);
   // ...and check that we now receive our pending SIGRTMIN.
   ASSERT_EQ(1, g_sigsuspend64_signal_handler_call_count);
 }
@@ -530,14 +530,15 @@
 #endif
 }
 
-#if defined(__BIONIC__)
+#if defined(__BIONIC__) && !defined(__riscv)
 // Not exposed via headers, but the symbols are available if you declare them yourself.
 extern "C" int sigblock(int);
 extern "C" int sigsetmask(int);
+#define HAVE_SIGBLOCK_SIGSETMASK
 #endif
 
 TEST(signal, sigblock_filter) {
-#if defined(__BIONIC__)
+#if defined(HAVE_SIGBLOCK_SIGSETMASK)
   TestSignalMaskFunction([]() {
     sigblock(~0U);
   });
@@ -545,7 +546,7 @@
 }
 
 TEST(signal, sigsetmask_filter) {
-#if defined(__BIONIC__)
+#if defined(HAVE_SIGBLOCK_SIGSETMASK)
   TestSignalMaskFunction([]() {
     sigsetmask(~0U);
   });
@@ -597,7 +598,7 @@
   sigval sigval = {.sival_int = 1};
   errno = 0;
   ASSERT_EQ(0, sigqueue(getpid(), SIGALRM, sigval));
-  ASSERT_EQ(0, errno);
+  ASSERT_ERRNO(0);
   ASSERT_EQ(1, g_sigqueue_signal_handler_call_count);
 }
 
@@ -607,7 +608,7 @@
   sigval sigval = {.sival_int = 1};
   errno = 0;
   ASSERT_EQ(0, pthread_sigqueue(pthread_self(), SIGALRM, sigval));
-  ASSERT_EQ(0, errno);
+  ASSERT_ERRNO(0);
   ASSERT_EQ(1, g_sigqueue_signal_handler_call_count);
 #else
   GTEST_SKIP() << "musl doesn't have pthread_sigqueue";
@@ -635,7 +636,7 @@
 
   errno = 0;
   ASSERT_EQ(0, pthread_sigqueue(thread, SIGALRM, sigval));
-  ASSERT_EQ(0, errno);
+  ASSERT_ERRNO(0);
   pthread_join(thread, nullptr);
   ASSERT_EQ(1, g_sigqueue_signal_handler_call_count);
 #else
@@ -698,7 +699,7 @@
   siginfo_t info;
   errno = 0;
   ASSERT_EQ(SIGALRM, sigwaitinfo(&just_SIGALRM, &info));
-  ASSERT_EQ(0, errno);
+  ASSERT_ERRNO(0);
   ASSERT_EQ(SIGALRM, info.si_signo);
   ASSERT_EQ(1, info.si_value.sival_int);
 }
@@ -720,7 +721,7 @@
   siginfo_t info;
   errno = 0;
   ASSERT_EQ(SIGRTMIN, sigwaitinfo64(&just_SIGRTMIN, &info));
-  ASSERT_EQ(0, errno);
+  ASSERT_ERRNO(0);
   ASSERT_EQ(SIGRTMIN, info.si_signo);
   ASSERT_EQ(1, info.si_value.sival_int);
 }
@@ -743,7 +744,7 @@
   timespec timeout = { .tv_sec = 2, .tv_nsec = 0 };
   errno = 0;
   ASSERT_EQ(SIGALRM, sigtimedwait(&just_SIGALRM, &info, &timeout));
-  ASSERT_EQ(0, errno);
+  ASSERT_ERRNO(0);
 }
 
 TEST(signal, sigtimedwait64_SIGRTMIN) {
@@ -764,7 +765,7 @@
   timespec timeout = { .tv_sec = 2, .tv_nsec = 0 };
   errno = 0;
   ASSERT_EQ(SIGRTMIN, sigtimedwait64(&just_SIGRTMIN, &info, &timeout));
-  ASSERT_EQ(0, errno);
+  ASSERT_ERRNO(0);
 }
 
 TEST(signal, sigtimedwait_timeout) {
@@ -781,7 +782,7 @@
   timespec timeout = { .tv_sec = 0, .tv_nsec = 1000000 };
   errno = 0;
   ASSERT_EQ(-1, sigtimedwait(&just_SIGALRM, &info, &timeout));
-  ASSERT_EQ(EAGAIN, errno);
+  ASSERT_ERRNO(EAGAIN);
   auto t1 = std::chrono::steady_clock::now();
   ASSERT_GE(t1-t0, 1000000ns);
 
@@ -835,17 +836,17 @@
 TEST(signal, sigignore_EINVAL) {
   errno = 0;
   ASSERT_EQ(-1, sigignore(99999));
-  ASSERT_EQ(EINVAL, errno);
+  ASSERT_ERRNO(EINVAL);
 }
 
 TEST(signal, sigignore) {
   errno = 0;
   EXPECT_EQ(-1, sigignore(SIGKILL));
-  EXPECT_EQ(errno, EINVAL);
+  EXPECT_ERRNO(EINVAL);
 
   errno = 0;
   EXPECT_EQ(-1, sigignore(SIGSTOP));
-  EXPECT_EQ(errno, EINVAL);
+  EXPECT_ERRNO(EINVAL);
 
   ScopedSignalHandler sigalrm{SIGALRM};
   ASSERT_EQ(0, sigignore(SIGALRM));
@@ -858,19 +859,19 @@
 TEST(signal, sighold_EINVAL) {
   errno = 0;
   ASSERT_EQ(-1, sighold(99999));
-  ASSERT_EQ(EINVAL, errno);
+  ASSERT_ERRNO(EINVAL);
 }
 
 TEST(signal, sigpause_EINVAL) {
   errno = 0;
   ASSERT_EQ(-1, sigpause(99999));
-  ASSERT_EQ(EINVAL, errno);
+  ASSERT_ERRNO(EINVAL);
 }
 
 TEST(signal, sigrelse_EINVAL) {
   errno = 0;
   ASSERT_EQ(-1, sigpause(99999));
-  ASSERT_EQ(EINVAL, errno);
+  ASSERT_ERRNO(EINVAL);
 }
 
 static void TestSigholdSigpauseSigrelse(int sig) {
@@ -889,7 +890,7 @@
   ASSERT_EQ(0, signal_handler_call_count);
   // ... until sigpause(SIGALRM/SIGRTMIN) temporarily unblocks it.
   ASSERT_EQ(-1, sigpause(sig));
-  ASSERT_EQ(EINTR, errno);
+  ASSERT_ERRNO(EINTR);
   ASSERT_EQ(1, signal_handler_call_count);
 
   if (sig >= SIGRTMIN && sizeof(void*) == 8) {
@@ -917,7 +918,7 @@
 TEST(signal, sigset_EINVAL) {
   errno = 0;
   ASSERT_EQ(SIG_ERR, sigset(99999, SIG_DFL));
-  ASSERT_EQ(EINVAL, errno);
+  ASSERT_ERRNO(EINVAL);
 }
 
 TEST(signal, sigset_RT) {
@@ -979,5 +980,96 @@
   // and passes 0 through to kill(2).
   errno = 0;
   ASSERT_EQ(-1, killpg(-1, SIGKILL));
-  ASSERT_EQ(EINVAL, errno);
+  ASSERT_ERRNO(EINVAL);
+}
+
+TEST(signal, sig2str) {
+#if defined(__BIONIC__)
+  char str[SIG2STR_MAX];
+
+  // A regular signal.
+  ASSERT_EQ(0, sig2str(SIGHUP, str));
+  ASSERT_STREQ("HUP", str);
+
+  // A real-time signal.
+  ASSERT_EQ(0, sig2str(SIGRTMIN + 4, str));
+  ASSERT_STREQ("RTMIN+4", str);
+  ASSERT_EQ(0, sig2str(SIGRTMAX - 4, str));
+  ASSERT_STREQ("RTMAX-4", str);
+  // Special cases.
+  ASSERT_EQ(0, sig2str(SIGRTMAX, str));
+  ASSERT_STREQ("RTMAX", str);
+  ASSERT_EQ(0, sig2str(SIGRTMIN, str));
+  ASSERT_STREQ("RTMIN", str);
+  // One of the signals the C library keeps to itself.
+  ASSERT_EQ(-1, sig2str(32, str));  // __SIGRTMIN
+
+  // Errors.
+  ASSERT_EQ(-1, sig2str(-1, str));    // Too small.
+  ASSERT_EQ(-1, sig2str(0, str));     // Still too small.
+  ASSERT_EQ(-1, sig2str(1234, str));  // Too large.
+#else
+  GTEST_SKIP() << "our old glibc doesn't have sig2str";
+#endif
+}
+
+TEST(signal, str2sig) {
+#if defined(__BIONIC__)
+  int sig;
+
+  // A regular signal, by number.
+  sig = -1;
+  ASSERT_EQ(0, str2sig("9", &sig));
+  ASSERT_EQ(SIGKILL, sig);
+
+  // A regular signal, by name.
+  sig = -1;
+  ASSERT_EQ(0, str2sig("HUP", &sig));
+  ASSERT_EQ(SIGHUP, sig);
+
+  // A real-time signal, by number.
+  sig = -1;
+  ASSERT_EQ(0, str2sig("64", &sig));
+  ASSERT_EQ(SIGRTMAX, sig);
+
+  // A real-time signal, by name and offset.
+  sig = -1;
+  ASSERT_EQ(0, str2sig("RTMAX-4", &sig));
+  ASSERT_EQ(SIGRTMAX - 4, sig);
+  sig = -1;
+  ASSERT_EQ(0, str2sig("RTMIN+4", &sig));
+  ASSERT_EQ(SIGRTMIN + 4, sig);
+  // Unspecified by POSIX, but we try to be reasonable.
+  sig = -1;
+  ASSERT_EQ(0, str2sig("RTMAX-0", &sig));
+  ASSERT_EQ(SIGRTMAX, sig);
+  sig = -1;
+  ASSERT_EQ(0, str2sig("RTMIN+0", &sig));
+  ASSERT_EQ(SIGRTMIN, sig);
+  // One of the signals the C library keeps to itself, numerically.
+  ASSERT_EQ(-1, str2sig("32", &sig));  // __SIGRTMIN
+
+  // Special cases.
+  sig = -1;
+  ASSERT_EQ(0, str2sig("RTMAX", &sig));
+  ASSERT_EQ(SIGRTMAX, sig);
+  sig = -1;
+  ASSERT_EQ(0, str2sig("RTMIN", &sig));
+  ASSERT_EQ(SIGRTMIN, sig);
+
+  // Errors.
+  ASSERT_EQ(-1, str2sig("SIGHUP", &sig));     // No "SIG" prefix allowed.
+  ASSERT_EQ(-1, str2sig("-1", &sig));         // Too small.
+  ASSERT_EQ(-1, str2sig("0", &sig));          // Still too small.
+  ASSERT_EQ(-1, str2sig("1234", &sig));       // Too large.
+  ASSERT_EQ(-1, str2sig("RTMAX-666", &sig));  // Offset too small.
+  ASSERT_EQ(-1, str2sig("RTMIN+666", &sig));  // Offset too large.
+  ASSERT_EQ(-1, str2sig("RTMAX-+1", &sig));   // Silly.
+  ASSERT_EQ(-1, str2sig("RTMIN+-1", &sig));   // Silly.
+  ASSERT_EQ(-1, str2sig("HUPs", &sig));       // Trailing junk.
+  ASSERT_EQ(-1, str2sig("2b", &sig));         // Trailing junk.
+  ASSERT_EQ(-1, str2sig("RTMIN+2b", &sig));   // Trailing junk.
+#else
+  GTEST_SKIP() << "our old glibc doesn't have str2sig";
+#endif
 }
diff --git a/tests/stack_protector_test.cpp b/tests/stack_protector_test.cpp
index a95e037..5817a27 100644
--- a/tests/stack_protector_test.cpp
+++ b/tests/stack_protector_test.cpp
@@ -28,6 +28,7 @@
 
 #include <android-base/silent_death_test.h>
 
+#include "platform/bionic/mte.h"
 #include "private/bionic_tls.h"
 
 extern "C" pid_t gettid(); // glibc defines this but doesn't declare it anywhere.
@@ -47,7 +48,7 @@
     printf("[thread %d] TLS stack guard = %p\n", tid, guard);
 
     // Duplicate tid. gettid(2) bug? Seeing this would be very upsetting.
-    ASSERT_TRUE(tids.find(tid) == tids.end());
+    ASSERT_FALSE(tids.contains(tid));
 
     // Uninitialized guard. Our bug. Note this is potentially flaky; we _could_
     // get four random zero bytes, but it should be vanishingly unlikely.
@@ -100,16 +101,44 @@
 #endif
 }
 
+// Make sure that a stack variable (`*p`) is tagged under MTE, by forcing the
+// stack safety analysis to fail.
+int z;
+__attribute__((noinline)) void escape_stack_safety_analysis(int* p) {
+  *p = z;
+}
+
+bool stack_mte_enabled() {
+  if (!mte_supported()) return false;
+  int stack_variable;
+  escape_stack_safety_analysis(&stack_variable);
+#if defined(__aarch64__)
+  return reinterpret_cast<uintptr_t>(&stack_variable) & (0xfull << 56);
+#else   // !defined(__aarch64__)
+  return false;
+#endif  // defined(__aarch64__)
+}
+
+bool hwasan_enabled() {
+#if __has_feature(hwaddress_sanitizer)
+  return true;
+#else
+  return false;
+#endif  // __has_feature(hwaddress_sanitizer)
+}
+
 using stack_protector_DeathTest = SilentDeathTest;
 
 TEST_F(stack_protector_DeathTest, modify_stack_protector) {
   // In another file to prevent inlining, which removes stack protection.
   extern void modify_stack_protector_test();
-#if __has_feature(hwaddress_sanitizer)
-  ASSERT_EXIT(modify_stack_protector_test(),
-              testing::KilledBySignal(SIGABRT), "tag-mismatch");
-#else
-  ASSERT_EXIT(modify_stack_protector_test(),
-              testing::KilledBySignal(SIGABRT), "stack corruption detected");
-#endif
+
+  if (stack_mte_enabled()) {
+    GTEST_SKIP() << "Stack MTE is enabled, stack protector is not available";
+  } else if (hwasan_enabled()) {
+    GTEST_SKIP() << "HWASan is enabled, stack protector is not testable";
+  } else {
+    ASSERT_EXIT(modify_stack_protector_test(), testing::KilledBySignal(SIGABRT),
+                "stack corruption detected");
+  }
 }
diff --git a/tests/static_tls_layout_test.cpp b/tests/static_tls_layout_test.cpp
new file mode 100644
index 0000000..ada29a5
--- /dev/null
+++ b/tests/static_tls_layout_test.cpp
@@ -0,0 +1,217 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *  * Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *  * Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in
+ *    the documentation and/or other materials provided with the
+ *    distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#define STATIC_TLS_LAYOUT_TEST
+
+#include "private/bionic_elf_tls.h"
+
+#include <string>
+#include <tuple>
+
+#include <gtest/gtest.h>
+
+#include <android-base/silent_death_test.h>
+
+#include "private/bionic_tls.h"
+
+using namespace std::string_literals;
+
+struct AlignedSizeFlat {
+  size_t size = 0;
+  size_t align = 1;
+  size_t skew = 0;
+};
+
+static TlsAlignedSize unflatten_size(AlignedSizeFlat flat) {
+  return TlsAlignedSize{.size = flat.size,
+                        .align = TlsAlign{
+                            .value = flat.align,
+                            .skew = flat.skew,
+                        }};
+}
+
+TEST(static_tls_layout, reserve_tp_pair) {
+  auto reserve_tp = [](const AlignedSizeFlat& before, const AlignedSizeFlat& after,
+                       StaticTlsLayout layout = {}) {
+    auto allocs = layout.reserve_tp_pair(unflatten_size(before), unflatten_size(after));
+    return std::make_tuple(layout, allocs);
+  };
+
+  StaticTlsLayout layout;
+  StaticTlsLayout::TpAllocations allocs;
+
+  // Simple case.
+  std::tie(layout, allocs) = reserve_tp({.size = 8, .align = 2}, {.size = 16, .align = 2});
+  EXPECT_EQ(0u, allocs.before);
+  EXPECT_EQ(8u, allocs.tp);
+  EXPECT_EQ(8u, allocs.after);
+  EXPECT_EQ(24u, layout.size());
+  EXPECT_EQ(2u, layout.align_);
+
+  // Zero-sized `before`
+  std::tie(layout, allocs) = reserve_tp({.size = 0}, {.size = 64, .align = 8});
+  EXPECT_EQ(0u, allocs.before);
+  EXPECT_EQ(0u, allocs.tp);
+  EXPECT_EQ(0u, allocs.after);
+
+  // Zero-sized `after`
+  std::tie(layout, allocs) = reserve_tp({.size = 64, .align = 8}, {.size = 0});
+  EXPECT_EQ(0u, allocs.before);
+  EXPECT_EQ(64u, allocs.tp);
+  EXPECT_EQ(64u, allocs.after);
+
+  // The `before` allocation is shifted forward to the TP.
+  std::tie(layout, allocs) = reserve_tp({.size = 1}, {.size = 64, .align = 8});
+  EXPECT_EQ(7u, allocs.before);
+  EXPECT_EQ(8u, allocs.tp);
+  EXPECT_EQ(8u, allocs.after);
+
+  // Alignment gap between `before` and TP.
+  std::tie(layout, allocs) = reserve_tp({.size = 9, .align = 4}, {.size = 1});
+  EXPECT_EQ(0u, allocs.before);
+  EXPECT_EQ(12u, allocs.tp);
+  EXPECT_EQ(12u, allocs.after);
+  EXPECT_EQ(13u, layout.size());
+  EXPECT_EQ(4u, layout.align_);
+
+  // Alignment gap between `before` and TP.
+  std::tie(layout, allocs) = reserve_tp({.size = 9, .align = 4}, {.size = 128, .align = 64});
+  EXPECT_EQ(52u, allocs.before);
+  EXPECT_EQ(64u, allocs.tp);
+  EXPECT_EQ(64u, allocs.after);
+  EXPECT_EQ(192u, layout.size());
+  EXPECT_EQ(64u, layout.align_);
+
+  // Skew-aligned `before` with low alignment.
+  std::tie(layout, allocs) =
+      reserve_tp({.size = 1, .align = 4, .skew = 1}, {.size = 64, .align = 8});
+  EXPECT_EQ(5u, allocs.before);
+  EXPECT_EQ(8u, allocs.tp);
+
+  // Skew-aligned `before` with high alignment.
+  std::tie(layout, allocs) = reserve_tp({.size = 48, .align = 64, .skew = 17}, {.size = 1});
+  EXPECT_EQ(17u, allocs.before);
+  EXPECT_EQ(128u, allocs.tp);
+
+  // An unrelated byte precedes the pair in the layout. Make sure `before` is
+  // still aligned.
+  layout = {};
+  layout.reserve_type<char>();
+  std::tie(layout, allocs) = reserve_tp({.size = 12, .align = 16}, {.size = 1}, layout);
+  EXPECT_EQ(16u, allocs.before);
+  EXPECT_EQ(32u, allocs.tp);
+
+  // Skew-aligned `after`.
+  std::tie(layout, allocs) =
+      reserve_tp({.size = 32, .align = 8}, {.size = 16, .align = 4, .skew = 3});
+  EXPECT_EQ(0u, allocs.before);
+  EXPECT_EQ(32u, allocs.tp);
+  EXPECT_EQ(35u, allocs.after);
+  EXPECT_EQ(51u, layout.size());
+}
+
+// A "NUM_words" literal is the size in bytes of NUM words of memory.
+static size_t operator""_words(unsigned long long i) {
+  return i * sizeof(void*);
+}
+
+using static_tls_layout_DeathTest = SilentDeathTest;
+
+TEST_F(static_tls_layout_DeathTest, arm) {
+#if !defined(__arm__) && !defined(__aarch64__)
+  GTEST_SKIP() << "test only applies to arm32/arm64 targets";
+#endif
+
+  auto reserve_exe = [](const AlignedSizeFlat& config) {
+    StaticTlsLayout layout;
+    TlsSegment seg = {.aligned_size = unflatten_size(config)};
+    layout.reserve_exe_segment_and_tcb(&seg, "prog");
+    return layout;
+  };
+
+  auto underalign_error = [](size_t align, size_t offset) {
+    return R"(error: "prog": executable's TLS segment is underaligned: )"s
+           R"(alignment is )"s +
+           std::to_string(align) + R"( \(skew )" + std::to_string(offset) +
+           R"(\), needs to be at least (32 for ARM|64 for ARM64) Bionic)"s;
+  };
+
+  // Amount of memory needed for negative TLS slots, given a segment p_align of
+  // 8 or 16 words.
+  const size_t base8 = __BIONIC_ALIGN(-MIN_TLS_SLOT, 8) * sizeof(void*);
+  const size_t base16 = __BIONIC_ALIGN(-MIN_TLS_SLOT, 16) * sizeof(void*);
+
+  StaticTlsLayout layout;
+
+  // An executable with a single word.
+  layout = reserve_exe({.size = 1_words, .align = 8_words});
+  EXPECT_EQ(base8 + MIN_TLS_SLOT * sizeof(void*), layout.offset_bionic_tcb());
+  EXPECT_EQ(base8, layout.offset_thread_pointer());
+  EXPECT_EQ(base8 + 8_words, layout.offset_exe());
+  EXPECT_EQ(base8 + 9_words, layout.size());
+  EXPECT_EQ(8_words, layout.align_);
+
+  // Simple underalignment case.
+  EXPECT_DEATH(reserve_exe({.size = 1_words, .align = 1_words}), underalign_error(1_words, 0));
+
+  // Skewed by 1 word is OK.
+  layout = reserve_exe({.size = 1_words, .align = 8_words, .skew = 1_words});
+  EXPECT_EQ(base8, layout.offset_thread_pointer());
+  EXPECT_EQ(base8 + 9_words, layout.offset_exe());
+  EXPECT_EQ(base8 + 10_words, layout.size());
+  EXPECT_EQ(8_words, layout.align_);
+
+  // Skewed by 2 words would overlap Bionic slots, regardless of the p_align
+  // value.
+  EXPECT_DEATH(reserve_exe({.size = 1_words, .align = 8_words, .skew = 2_words}),
+               underalign_error(8_words, 2_words));
+  EXPECT_DEATH(reserve_exe({.size = 1_words, .align = 0x1000, .skew = 2_words}),
+               underalign_error(0x1000, 2_words));
+
+  // Skewed by 8 words is OK again.
+  layout = reserve_exe({.size = 1_words, .align = 16_words, .skew = 8_words});
+  EXPECT_EQ(base16, layout.offset_thread_pointer());
+  EXPECT_EQ(base16 + 8_words, layout.offset_exe());
+  EXPECT_EQ(base16 + 9_words, layout.size());
+  EXPECT_EQ(16_words, layout.align_);
+
+  // Skewed by 9 words is also OK. (The amount of skew doesn't need to be a
+  // multiple of anything.)
+  layout = reserve_exe({.size = 1_words, .align = 16_words, .skew = 9_words});
+  EXPECT_EQ(base16, layout.offset_thread_pointer());
+  EXPECT_EQ(base16 + 9_words, layout.offset_exe());
+  EXPECT_EQ(base16 + 10_words, layout.size());
+  EXPECT_EQ(16_words, layout.align_);
+
+  // Skew with large alignment.
+  layout = reserve_exe({.size = 1_words, .align = 256_words, .skew = 8_words});
+  EXPECT_EQ(256_words, layout.offset_thread_pointer());
+  EXPECT_EQ(264_words, layout.offset_exe());
+  EXPECT_EQ(265_words, layout.size());
+  EXPECT_EQ(256_words, layout.align_);
+}
diff --git a/tests/stdatomic_test.cpp b/tests/stdatomic_test.cpp
index 7b98df2..8a54080 100644
--- a/tests/stdatomic_test.cpp
+++ b/tests/stdatomic_test.cpp
@@ -37,10 +37,10 @@
 }
 
 TEST(stdatomic, init) {
-  atomic_int v = ATOMIC_VAR_INIT(123);
+  atomic_int v = 123;
   ASSERT_EQ(123, atomic_load(&v));
 
-  atomic_init(&v, 456);
+  atomic_store_explicit(&v, 456, memory_order_relaxed);
   ASSERT_EQ(456, atomic_load(&v));
 
   atomic_flag f = ATOMIC_FLAG_INIT;
@@ -145,35 +145,35 @@
 }
 
 TEST(stdatomic, atomic_fetch_add) {
-  atomic_int i = ATOMIC_VAR_INIT(123);
+  atomic_int i = 123;
   ASSERT_EQ(123, atomic_fetch_add(&i, 1));
   ASSERT_EQ(124, atomic_fetch_add_explicit(&i, 1, memory_order_relaxed));
   ASSERT_EQ(125, atomic_load(&i));
 }
 
 TEST(stdatomic, atomic_fetch_sub) {
-  atomic_int i = ATOMIC_VAR_INIT(123);
+  atomic_int i = 123;
   ASSERT_EQ(123, atomic_fetch_sub(&i, 1));
   ASSERT_EQ(122, atomic_fetch_sub_explicit(&i, 1, memory_order_relaxed));
   ASSERT_EQ(121, atomic_load(&i));
 }
 
 TEST(stdatomic, atomic_fetch_or) {
-  atomic_int i = ATOMIC_VAR_INIT(0x100);
+  atomic_int i = 0x100;
   ASSERT_EQ(0x100, atomic_fetch_or(&i, 0x020));
   ASSERT_EQ(0x120, atomic_fetch_or_explicit(&i, 0x003, memory_order_relaxed));
   ASSERT_EQ(0x123, atomic_load(&i));
 }
 
 TEST(stdatomic, atomic_fetch_xor) {
-  atomic_int i = ATOMIC_VAR_INIT(0x100);
+  atomic_int i = 0x100;
   ASSERT_EQ(0x100, atomic_fetch_xor(&i, 0x120));
   ASSERT_EQ(0x020, atomic_fetch_xor_explicit(&i, 0x103, memory_order_relaxed));
   ASSERT_EQ(0x123, atomic_load(&i));
 }
 
 TEST(stdatomic, atomic_fetch_and) {
-  atomic_int i = ATOMIC_VAR_INIT(0x123);
+  atomic_int i = 0x123;
   ASSERT_EQ(0x123, atomic_fetch_and(&i, 0x00f));
   ASSERT_EQ(0x003, atomic_fetch_and_explicit(&i, 0x2, memory_order_relaxed));
   ASSERT_EQ(0x002, atomic_load(&i));
@@ -181,7 +181,8 @@
 
 // And a rudimentary test of acquire-release memory ordering:
 
-constexpr static uint_least32_t BIG = 30'000'000ul; // Assumed even below.
+static constexpr uint_least32_t BIG = 30'000'000ul;
+static_assert((BIG % 2) == 0);  // Assumed below.
 
 struct three_atomics {
   atomic_uint_least32_t x;
@@ -192,6 +193,8 @@
   atomic_uint_least32_t z;
 };
 
+atomic_bool read_enough(false);
+
 // Very simple acquire/release memory ordering smoke test.
 static void* writer(void* arg) {
   three_atomics* a = reinterpret_cast<three_atomics*>(arg);
@@ -199,9 +202,18 @@
     atomic_store_explicit(&a->x, i, memory_order_relaxed);
     atomic_store_explicit(&a->z, i, memory_order_relaxed);
     atomic_store_explicit(&a->y, i, memory_order_release);
+
+    // Force stores to be visible in spite of being overwritten below.
+    asm volatile("" ::: "memory");
+
     atomic_store_explicit(&a->x, i+1, memory_order_relaxed);
     atomic_store_explicit(&a->z, i+1, memory_order_relaxed);
     atomic_store_explicit(&a->y, i+1, memory_order_release);
+    if (i >= BIG - 1000 && !atomic_load(&read_enough)) {
+      // Give reader a chance to catch up, at the expense of making the test
+      // less effective.
+      usleep(1000);
+    }
   }
   return nullptr;
 }
@@ -229,7 +241,11 @@
                     << xval << " < " << yval << ", " << zval <<  "\n";
       return nullptr; // Only report once.
     }
-    if (repeat < repeat_limit) ++repeat;
+    if (repeat < repeat_limit) {
+      ++repeat;
+    } else if (!atomic_load_explicit(&read_enough, memory_order_relaxed)) {
+      atomic_store_explicit(&read_enough, true, memory_order_relaxed);
+    }
   }
   // The following assertion is not technically guaranteed to hold.
   // But if it fails to hold, this test was useless, and we have a
@@ -242,9 +258,9 @@
   // Run a memory ordering smoke test.
   void* result;
   three_atomics a;
-  atomic_init(&a.x, 0ul);
-  atomic_init(&a.y, 0ul);
-  atomic_init(&a.z, 0ul);
+  atomic_store_explicit(&a.x, 0ul, memory_order_relaxed);
+  atomic_store_explicit(&a.y, 0ul, memory_order_relaxed);
+  atomic_store_explicit(&a.z, 0ul, memory_order_relaxed);
   pthread_t t1,t2;
   ASSERT_EQ(0, pthread_create(&t1, nullptr, reader, &a));
   ASSERT_EQ(0, pthread_create(&t2, nullptr, writer, &a));
diff --git a/tests/stdio_test.cpp b/tests/stdio_test.cpp
index 0e267c5..7cdfa42 100644
--- a/tests/stdio_test.cpp
+++ b/tests/stdio_test.cpp
@@ -99,10 +99,32 @@
   ASSERT_EQ(nullptr, fgets(line, sizeof(line), fp)) << "junk at end of file: " << line;
 }
 
+#define EXPECT_SNPRINTF_N(expected, n, fmt, ...)                        \
+  {                                                                     \
+    char buf[BUFSIZ];                                                   \
+    int w = snprintf(buf, sizeof(buf), fmt __VA_OPT__(, ) __VA_ARGS__); \
+    EXPECT_EQ(n, w);                                                    \
+    EXPECT_STREQ(expected, buf);                                        \
+  }
+
+#define EXPECT_SNPRINTF(expected, fmt, ...) \
+  EXPECT_SNPRINTF_N(expected, static_cast<int>(strlen(expected)), fmt __VA_OPT__(, ) __VA_ARGS__)
+
+#define EXPECT_SWPRINTF_N(expected, n, fmt, ...)                        \
+  {                                                                     \
+    wchar_t buf[BUFSIZ];                                                \
+    int w = swprintf(buf, sizeof(buf), fmt __VA_OPT__(, ) __VA_ARGS__); \
+    EXPECT_EQ(n, w);                                                    \
+    EXPECT_EQ(std::wstring(expected), std::wstring(buf, w));            \
+  }
+#define EXPECT_SWPRINTF(expected, fmt, ...) \
+  EXPECT_SWPRINTF_N(expected, static_cast<int>(wcslen(expected)), fmt __VA_OPT__(, ) __VA_ARGS__)
+
 TEST(STDIO_TEST, flockfile_18208568_stderr) {
-  // Check that we have a _recursive_ mutex for flockfile.
   flockfile(stderr);
-  feof(stderr); // We don't care about the result, but this needs to take the lock.
+  // Check that we're using a _recursive_ mutex for flockfile() by calling
+  // something that will take the lock.
+  ASSERT_EQ(0, feof(stderr));
   funlockfile(stderr);
 }
 
@@ -111,7 +133,9 @@
   FILE* fp = fopen("/dev/null", "w");
   ASSERT_TRUE(fp != nullptr);
   flockfile(fp);
-  feof(fp);
+  // Check that we're using a _recursive_ mutex for flockfile() by calling
+  // something that will take the lock.
+  ASSERT_EQ(0, feof(fp));
   funlockfile(fp);
   fclose(fp);
 }
@@ -199,7 +223,7 @@
   // It should set the end-of-file indicator for the stream, though.
   errno = 0;
   ASSERT_EQ(getdelim(&word_read, &allocated_length, ' ', fp), -1);
-  ASSERT_EQ(0, errno);
+  ASSERT_ERRNO(0);
   ASSERT_TRUE(feof(fp));
 
   free(word_read);
@@ -218,12 +242,12 @@
   // The first argument can't be NULL.
   errno = 0;
   ASSERT_EQ(getdelim(nullptr, &buffer_length, ' ', fp), -1);
-  ASSERT_EQ(EINVAL, errno);
+  ASSERT_ERRNO(EINVAL);
 
   // The second argument can't be NULL.
   errno = 0;
   ASSERT_EQ(getdelim(&buffer, nullptr, ' ', fp), -1);
-  ASSERT_EQ(EINVAL, errno);
+  ASSERT_ERRNO(EINVAL);
   fclose(fp);
 #pragma clang diagnostic pop
 }
@@ -272,7 +296,7 @@
   // It should set the end-of-file indicator for the stream, though.
   errno = 0;
   ASSERT_EQ(getline(&line_read, &allocated_length, fp), -1);
-  ASSERT_EQ(0, errno);
+  ASSERT_ERRNO(0);
   ASSERT_TRUE(feof(fp));
 
   free(line_read);
@@ -291,12 +315,12 @@
   // The first argument can't be NULL.
   errno = 0;
   ASSERT_EQ(getline(nullptr, &buffer_length, fp), -1);
-  ASSERT_EQ(EINVAL, errno);
+  ASSERT_ERRNO(EINVAL);
 
   // The second argument can't be NULL.
   errno = 0;
   ASSERT_EQ(getline(&buffer, nullptr, fp), -1);
-  ASSERT_EQ(EINVAL, errno);
+  ASSERT_ERRNO(EINVAL);
   fclose(fp);
 #pragma clang diagnostic pop
 }
@@ -309,21 +333,23 @@
   // error: format '%zd' expects argument of type 'signed size_t',
   //     but argument 4 has type 'ssize_t {aka long int}' [-Werror=format]
   ssize_t v = 1;
-  char buf[32];
-  snprintf(buf, sizeof(buf), "%zd", v);
+  EXPECT_SNPRINTF("1", "%zd", v);
+  EXPECT_SWPRINTF(L"1", L"%zd", v);
 }
 
 // https://code.google.com/p/android/issues/detail?id=64886
 TEST(STDIO_TEST, snprintf_a) {
-  char buf[BUFSIZ];
-  EXPECT_EQ(23, snprintf(buf, sizeof(buf), "<%a>", 9990.235));
-  EXPECT_STREQ("<0x1.3831e147ae148p+13>", buf);
+  EXPECT_SNPRINTF("<0x1.3831e147ae148p+13>", "<%a>", 9990.235);
+}
+
+// https://code.google.com/p/android/issues/detail?id=64886
+TEST(STDIO_TEST, swprintf_a) {
+  EXPECT_SWPRINTF(L"<0x1.3831e147ae148p+13>", L"<%a>", 9990.235);
 }
 
 // http://b/152588929
 TEST(STDIO_TEST, snprintf_La) {
 #if defined(__LP64__)
-  char buf[BUFSIZ];
   union {
     uint64_t a[2];
     long double v;
@@ -331,59 +357,98 @@
 
   u.a[0] = UINT64_C(0x9b9b9b9b9b9b9b9b);
   u.a[1] = UINT64_C(0xdfdfdfdfdfdfdfdf);
-  EXPECT_EQ(41, snprintf(buf, sizeof(buf), "<%La>", u.v));
-  EXPECT_STREQ("<-0x1.dfdfdfdfdfdf9b9b9b9b9b9b9b9bp+8160>", buf);
+  EXPECT_SNPRINTF("<-0x1.dfdfdfdfdfdf9b9b9b9b9b9b9b9bp+8160>", "<%La>", u.v);
 
   u.a[0] = UINT64_C(0xffffffffffffffff);
   u.a[1] = UINT64_C(0x7ffeffffffffffff);
-  EXPECT_EQ(41, snprintf(buf, sizeof(buf), "<%La>", u.v));
-  EXPECT_STREQ("<0x1.ffffffffffffffffffffffffffffp+16383>", buf);
+  EXPECT_SNPRINTF("<0x1.ffffffffffffffffffffffffffffp+16383>", "<%La>", u.v);
 
   u.a[0] = UINT64_C(0x0000000000000000);
   u.a[1] = UINT64_C(0x0000000000000000);
-  EXPECT_EQ(8, snprintf(buf, sizeof(buf), "<%La>", u.v));
-  EXPECT_STREQ("<0x0p+0>", buf);
+  EXPECT_SNPRINTF("<0x0p+0>", "<%La>", u.v);
+#else
+  GTEST_SKIP() << "no ld128";
+#endif
+}
+
+// http://b/152588929
+TEST(STDIO_TEST, swprintf_La) {
+#if defined(__LP64__)
+  union {
+    uint64_t a[2];
+    long double v;
+  } u;
+
+  u.a[0] = UINT64_C(0x9b9b9b9b9b9b9b9b);
+  u.a[1] = UINT64_C(0xdfdfdfdfdfdfdfdf);
+  EXPECT_SWPRINTF(L"<-0x1.dfdfdfdfdfdf9b9b9b9b9b9b9b9bp+8160>", L"<%La>", u.v);
+
+  u.a[0] = UINT64_C(0xffffffffffffffff);
+  u.a[1] = UINT64_C(0x7ffeffffffffffff);
+  EXPECT_SWPRINTF(L"<0x1.ffffffffffffffffffffffffffffp+16383>", L"<%La>", u.v);
+
+  u.a[0] = UINT64_C(0x0000000000000000);
+  u.a[1] = UINT64_C(0x0000000000000000);
+  EXPECT_SWPRINTF(L"<0x0p+0>", L"<%La>", u.v);
 #else
   GTEST_SKIP() << "no ld128";
 #endif
 }
 
 TEST(STDIO_TEST, snprintf_lc) {
-  char buf[BUFSIZ];
   wint_t wc = L'a';
-  EXPECT_EQ(3, snprintf(buf, sizeof(buf), "<%lc>", wc));
-  EXPECT_STREQ("<a>", buf);
+  EXPECT_SNPRINTF("<a>", "<%lc>", wc);
 }
 
-TEST(STDIO_TEST, snprintf_C) { // Synonym for %lc.
-  char buf[BUFSIZ];
+TEST(STDIO_TEST, swprintf_lc) {
+  wint_t wc = L'a';
+  EXPECT_SWPRINTF(L"<a>", L"<%lc>", wc);
+}
+
+TEST(STDIO_TEST, snprintf_C) {  // Synonym for %lc.
   wchar_t wc = L'a';
-  EXPECT_EQ(3, snprintf(buf, sizeof(buf), "<%C>", wc));
-  EXPECT_STREQ("<a>", buf);
+  EXPECT_SNPRINTF("<a>", "<%C>", wc);
+}
+
+TEST(STDIO_TEST, swprintf_C) {  // Synonym for %lc.
+  wchar_t wc = L'a';
+  EXPECT_SWPRINTF(L"<a>", L"<%C>", wc);
+}
+
+TEST(STDIO_TEST, snprintf_ls_null) {
+  EXPECT_SNPRINTF("<(null)>", "<%ls>", static_cast<wchar_t*>(nullptr));
+}
+
+TEST(STDIO_TEST, swprintf_ls_null) {
+  EXPECT_SWPRINTF(L"<(null)>", L"<%ls>", static_cast<wchar_t*>(nullptr));
 }
 
 TEST(STDIO_TEST, snprintf_ls) {
-  char buf[BUFSIZ];
-  wchar_t* ws = nullptr;
-  EXPECT_EQ(8, snprintf(buf, sizeof(buf), "<%ls>", ws));
-  EXPECT_STREQ("<(null)>", buf);
+  static const wchar_t chars[] = L"Hello\u0666 World";
+  EXPECT_SNPRINTF("<Hello\xd9\xa6 World>", "<%ls>", chars);
+}
 
-  wchar_t chars[] = { L'h', L'i', 0 };
-  ws = chars;
-  EXPECT_EQ(4, snprintf(buf, sizeof(buf), "<%ls>", ws));
-  EXPECT_STREQ("<hi>", buf);
+TEST(STDIO_TEST, swprintf_ls) {
+  static const wchar_t chars[] = L"Hello\u0666 World";
+  EXPECT_SWPRINTF(L"<Hello\u0666 World>", L"<%ls>", chars);
+}
+
+TEST(STDIO_TEST, snprintf_S_nullptr) {  // Synonym for %ls.
+  EXPECT_SNPRINTF("<(null)>", "<%S>", static_cast<wchar_t*>(nullptr));
+}
+
+TEST(STDIO_TEST, swprintf_S_nullptr) {  // Synonym for %ls.
+  EXPECT_SWPRINTF(L"<(null)>", L"<%S>", static_cast<wchar_t*>(nullptr));
 }
 
 TEST(STDIO_TEST, snprintf_S) { // Synonym for %ls.
-  char buf[BUFSIZ];
-  wchar_t* ws = nullptr;
-  EXPECT_EQ(8, snprintf(buf, sizeof(buf), "<%S>", ws));
-  EXPECT_STREQ("<(null)>", buf);
+  static const wchar_t chars[] = L"Hello\u0666 World";
+  EXPECT_SNPRINTF("<Hello\xd9\xa6 World>", "<%S>", chars);
+}
 
-  wchar_t chars[] = { L'h', L'i', 0 };
-  ws = chars;
-  EXPECT_EQ(4, snprintf(buf, sizeof(buf), "<%S>", ws));
-  EXPECT_STREQ("<hi>", buf);
+TEST(STDIO_TEST, swprintf_S) {  // Synonym for %ls.
+  static const wchar_t chars[] = L"Hello\u0666 World";
+  EXPECT_SWPRINTF(L"<Hello\u0666 World>", L"<%S>", chars);
 }
 
 TEST_F(STDIO_DEATHTEST, snprintf_n) {
@@ -400,106 +465,111 @@
 #endif
 }
 
+TEST_F(STDIO_DEATHTEST, swprintf_n) {
+#if defined(__BIONIC__)
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wformat"
+  // http://b/14492135 and http://b/31832608.
+  wchar_t buf[32];
+  int i = 1234;
+  EXPECT_DEATH(swprintf(buf, sizeof(buf), L"a %n b", &i), "%n not allowed on Android");
+#pragma clang diagnostic pop
+#else
+  GTEST_SKIP() << "glibc does allow %n";
+#endif
+}
+
 TEST(STDIO_TEST, snprintf_measure) {
-  char buf[16];
+  char buf[1] = {'x'};
   ASSERT_EQ(11, snprintf(buf, 0, "Hello %s", "world"));
+  ASSERT_EQ('x', buf[0]);
+}
+
+// Unlike snprintf(), you *can't* use swprintf() to measure.
+TEST(STDIO_TEST, swprintf_measure) {
+  wchar_t buf[1] = {L'x'};
+  ASSERT_EQ(-1, swprintf(buf, 0, L"Hello %S", L"world"));
+  ASSERT_EQ(L'x', buf[0]);
 }
 
 TEST(STDIO_TEST, snprintf_smoke) {
-  char buf[BUFSIZ];
+  EXPECT_SNPRINTF("a", "a");
+  EXPECT_SNPRINTF("%", "%%");
+  EXPECT_SNPRINTF("01234", "01234");
+  EXPECT_SNPRINTF("a01234b", "a%sb", "01234");
 
-  snprintf(buf, sizeof(buf), "a");
-  EXPECT_STREQ("a", buf);
+  EXPECT_SNPRINTF("a(null)b", "a%sb", static_cast<char*>(nullptr));
+  EXPECT_SNPRINTF("aabbcc", "aa%scc", "bb");
+  EXPECT_SNPRINTF("abc", "a%cc", 'b');
+  EXPECT_SNPRINTF("a1234b", "a%db", 1234);
+  EXPECT_SNPRINTF("a-8123b", "a%db", -8123);
+  EXPECT_SNPRINTF("a16b", "a%hdb", static_cast<short>(0x7fff0010));
+  EXPECT_SNPRINTF("a16b", "a%hhdb", static_cast<char>(0x7fffff10));
+  EXPECT_SNPRINTF("a68719476736b", "a%lldb", 0x1000000000LL);
+  EXPECT_SNPRINTF("a70000b", "a%ldb", 70000L);
+  EXPECT_SNPRINTF("a0xb0001234b", "a%pb", reinterpret_cast<void*>(0xb0001234));
+  EXPECT_SNPRINTF("a12abz", "a%xz", 0x12ab);
+  EXPECT_SNPRINTF("a12ABz", "a%Xz", 0x12ab);
+  EXPECT_SNPRINTF("a00123456z", "a%08xz", 0x123456);
+  EXPECT_SNPRINTF("a 1234z", "a%5dz", 1234);
+  EXPECT_SNPRINTF("a01234z", "a%05dz", 1234);
+  EXPECT_SNPRINTF("a    1234z", "a%8dz", 1234);
+  EXPECT_SNPRINTF("a1234    z", "a%-8dz", 1234);
+  EXPECT_SNPRINTF("Aabcdef     Z", "A%-11sZ", "abcdef");
+  EXPECT_SNPRINTF("Ahello:1234Z", "A%s:%dZ", "hello", 1234);
+  EXPECT_SNPRINTF("a005:5:05z", "a%03d:%d:%02dz", 5, 5, 5);
 
-  snprintf(buf, sizeof(buf), "%%");
-  EXPECT_STREQ("%", buf);
-
-  snprintf(buf, sizeof(buf), "01234");
-  EXPECT_STREQ("01234", buf);
-
-  snprintf(buf, sizeof(buf), "a%sb", "01234");
-  EXPECT_STREQ("a01234b", buf);
-
-  char* s = nullptr;
-  snprintf(buf, sizeof(buf), "a%sb", s);
-  EXPECT_STREQ("a(null)b", buf);
-
-  snprintf(buf, sizeof(buf), "aa%scc", "bb");
-  EXPECT_STREQ("aabbcc", buf);
-
-  snprintf(buf, sizeof(buf), "a%cc", 'b');
-  EXPECT_STREQ("abc", buf);
-
-  snprintf(buf, sizeof(buf), "a%db", 1234);
-  EXPECT_STREQ("a1234b", buf);
-
-  snprintf(buf, sizeof(buf), "a%db", -8123);
-  EXPECT_STREQ("a-8123b", buf);
-
-  snprintf(buf, sizeof(buf), "a%hdb", static_cast<short>(0x7fff0010));
-  EXPECT_STREQ("a16b", buf);
-
-  snprintf(buf, sizeof(buf), "a%hhdb", static_cast<char>(0x7fffff10));
-  EXPECT_STREQ("a16b", buf);
-
-  snprintf(buf, sizeof(buf), "a%lldb", 0x1000000000LL);
-  EXPECT_STREQ("a68719476736b", buf);
-
-  snprintf(buf, sizeof(buf), "a%ldb", 70000L);
-  EXPECT_STREQ("a70000b", buf);
-
-  snprintf(buf, sizeof(buf), "a%pb", reinterpret_cast<void*>(0xb0001234));
-  EXPECT_STREQ("a0xb0001234b", buf);
-
-  snprintf(buf, sizeof(buf), "a%xz", 0x12ab);
-  EXPECT_STREQ("a12abz", buf);
-
-  snprintf(buf, sizeof(buf), "a%Xz", 0x12ab);
-  EXPECT_STREQ("a12ABz", buf);
-
-  snprintf(buf, sizeof(buf), "a%08xz", 0x123456);
-  EXPECT_STREQ("a00123456z", buf);
-
-  snprintf(buf, sizeof(buf), "a%5dz", 1234);
-  EXPECT_STREQ("a 1234z", buf);
-
-  snprintf(buf, sizeof(buf), "a%05dz", 1234);
-  EXPECT_STREQ("a01234z", buf);
-
-  snprintf(buf, sizeof(buf), "a%8dz", 1234);
-  EXPECT_STREQ("a    1234z", buf);
-
-  snprintf(buf, sizeof(buf), "a%-8dz", 1234);
-  EXPECT_STREQ("a1234    z", buf);
-
-  snprintf(buf, sizeof(buf), "A%-11sZ", "abcdef");
-  EXPECT_STREQ("Aabcdef     Z", buf);
-
-  snprintf(buf, sizeof(buf), "A%s:%dZ", "hello", 1234);
-  EXPECT_STREQ("Ahello:1234Z", buf);
-
-  snprintf(buf, sizeof(buf), "a%03d:%d:%02dz", 5, 5, 5);
-  EXPECT_STREQ("a005:5:05z", buf);
-
-  void* p = nullptr;
-  snprintf(buf, sizeof(buf), "a%d,%pz", 5, p);
 #if defined(__BIONIC__)
-  EXPECT_STREQ("a5,0x0z", buf);
+  EXPECT_SNPRINTF("a5,0x0z", "a%d,%pz", 5, static_cast<void*>(nullptr));
 #else // __BIONIC__
-  EXPECT_STREQ("a5,(nil)z", buf);
+  EXPECT_SNPRINTF("a5,(nil)z", "a%d,%pz", 5, static_cast<void*>(nullptr));
 #endif // __BIONIC__
 
-  snprintf(buf, sizeof(buf), "a%lld,%d,%d,%dz", 0x1000000000LL, 6, 7, 8);
-  EXPECT_STREQ("a68719476736,6,7,8z", buf);
+  EXPECT_SNPRINTF("a68719476736,6,7,8z", "a%lld,%d,%d,%dz", 0x1000000000LL, 6, 7, 8);
 
-  snprintf(buf, sizeof(buf), "a_%f_b", 1.23f);
-  EXPECT_STREQ("a_1.230000_b", buf);
+  EXPECT_SNPRINTF("a_1.230000_b", "a_%f_b", 1.23f);
+  EXPECT_SNPRINTF("a_3.14_b", "a_%g_b", 3.14);
+  EXPECT_SNPRINTF("print_me_twice print_me_twice", "%1$s %1$s", "print_me_twice");
+}
 
-  snprintf(buf, sizeof(buf), "a_%g_b", 3.14);
-  EXPECT_STREQ("a_3.14_b", buf);
+TEST(STDIO_TEST, swprintf_smoke) {
+  EXPECT_SWPRINTF(L"a", L"a");
+  EXPECT_SWPRINTF(L"%", L"%%");
+  EXPECT_SWPRINTF(L"01234", L"01234");
+  EXPECT_SWPRINTF(L"a01234b", L"a%sb", "01234");
 
-  snprintf(buf, sizeof(buf), "%1$s %1$s", "print_me_twice");
-  EXPECT_STREQ("print_me_twice print_me_twice", buf);
+  EXPECT_SWPRINTF(L"a(null)b", L"a%sb", static_cast<char*>(nullptr));
+  EXPECT_SWPRINTF(L"aabbcc", L"aa%scc", "bb");
+  EXPECT_SWPRINTF(L"abc", L"a%cc", 'b');
+  EXPECT_SWPRINTF(L"a1234b", L"a%db", 1234);
+  EXPECT_SWPRINTF(L"a-8123b", L"a%db", -8123);
+  EXPECT_SWPRINTF(L"a16b", L"a%hdb", static_cast<short>(0x7fff0010));
+  EXPECT_SWPRINTF(L"a16b", L"a%hhdb", static_cast<char>(0x7fffff10));
+  EXPECT_SWPRINTF(L"a68719476736b", L"a%lldb", 0x1000000000LL);
+  EXPECT_SWPRINTF(L"a70000b", L"a%ldb", 70000L);
+  EXPECT_SWPRINTF(L"a0xb0001234b", L"a%pb", reinterpret_cast<void*>(0xb0001234));
+  EXPECT_SWPRINTF(L"a12abz", L"a%xz", 0x12ab);
+  EXPECT_SWPRINTF(L"a12ABz", L"a%Xz", 0x12ab);
+  EXPECT_SWPRINTF(L"a00123456z", L"a%08xz", 0x123456);
+  EXPECT_SWPRINTF(L"a 1234z", L"a%5dz", 1234);
+  EXPECT_SWPRINTF(L"a01234z", L"a%05dz", 1234);
+  EXPECT_SWPRINTF(L"a    1234z", L"a%8dz", 1234);
+  EXPECT_SWPRINTF(L"a1234    z", L"a%-8dz", 1234);
+  EXPECT_SWPRINTF(L"Aabcdef     Z", L"A%-11sZ", "abcdef");
+  EXPECT_SWPRINTF(L"Ahello:1234Z", L"A%s:%dZ", "hello", 1234);
+  EXPECT_SWPRINTF(L"a005:5:05z", L"a%03d:%d:%02dz", 5, 5, 5);
+
+#if defined(__BIONIC__)
+  EXPECT_SWPRINTF(L"a5,0x0z", L"a%d,%pz", 5, static_cast<void*>(nullptr));
+#else   // __BIONIC__
+  EXPECT_SWPRINTF(L"a5,(nil)z", L"a%d,%pz", 5, static_cast<void*>(nullptr));
+#endif  // __BIONIC__
+
+  EXPECT_SWPRINTF(L"a68719476736,6,7,8z", L"a%lld,%d,%d,%dz", 0x1000000000LL, 6, 7, 8);
+
+  EXPECT_SWPRINTF(L"a_1.230000_b", L"a_%f_b", 1.23f);
+  EXPECT_SWPRINTF(L"a_3.14_b", L"a_%g_b", 3.14);
+  EXPECT_SWPRINTF(L"print_me_twice print_me_twice", L"%1$s %1$s", "print_me_twice");
 }
 
 template <typename T>
@@ -634,227 +704,164 @@
               L"[-NAN]", L"[NAN]", L"[+NAN]");
 }
 
-TEST(STDIO_TEST, swprintf) {
-  constexpr size_t nchars = 32;
-  wchar_t buf[nchars];
-
-  ASSERT_EQ(2, swprintf(buf, nchars, L"ab")) << strerror(errno);
-  ASSERT_EQ(std::wstring(L"ab"), buf);
-  ASSERT_EQ(5, swprintf(buf, nchars, L"%s", "abcde"));
-  ASSERT_EQ(std::wstring(L"abcde"), buf);
-
-  // Unlike swprintf(), swprintf() returns -1 in case of truncation
-  // and doesn't necessarily zero-terminate the output!
-  ASSERT_EQ(-1, swprintf(buf, 4, L"%s", "abcde"));
-
-  const char kString[] = "Hello, World";
-  ASSERT_EQ(12, swprintf(buf, nchars, L"%s", kString));
-  ASSERT_EQ(std::wstring(L"Hello, World"), buf);
-  ASSERT_EQ(12, swprintf(buf, 13, L"%s", kString));
-  ASSERT_EQ(std::wstring(L"Hello, World"), buf);
-}
-
-TEST(STDIO_TEST, swprintf_a) {
-  constexpr size_t nchars = 32;
-  wchar_t buf[nchars];
-
-  ASSERT_EQ(20, swprintf(buf, nchars, L"%a", 3.1415926535));
-  ASSERT_EQ(std::wstring(L"0x1.921fb54411744p+1"), buf);
-}
-
-TEST(STDIO_TEST, swprintf_lc) {
-  constexpr size_t nchars = 32;
-  wchar_t buf[nchars];
-
-  wint_t wc = L'a';
-  EXPECT_EQ(3, swprintf(buf, nchars, L"<%lc>", wc));
-  EXPECT_EQ(std::wstring(L"<a>"), buf);
-}
-
-TEST(STDIO_TEST, swprintf_C) { // Synonym for %lc.
-  constexpr size_t nchars = 32;
-  wchar_t buf[nchars];
-
-  wint_t wc = L'a';
-  EXPECT_EQ(3, swprintf(buf, nchars, L"<%C>", wc));
-  EXPECT_EQ(std::wstring(L"<a>"), buf);
+TEST(STDIO_TEST, snprintf_jd_INTMAX_MAX) {
+  EXPECT_SNPRINTF("9223372036854775807", "%jd", INTMAX_MAX);
 }
 
 TEST(STDIO_TEST, swprintf_jd_INTMAX_MAX) {
-  constexpr size_t nchars = 32;
-  wchar_t buf[nchars];
-
-  swprintf(buf, nchars, L"%jd", INTMAX_MAX);
-  EXPECT_EQ(std::wstring(L"9223372036854775807"), buf);
-}
-
-TEST(STDIO_TEST, swprintf_jd_INTMAX_MIN) {
-  constexpr size_t nchars = 32;
-  wchar_t buf[nchars];
-
-  swprintf(buf, nchars, L"%jd", INTMAX_MIN);
-  EXPECT_EQ(std::wstring(L"-9223372036854775808"), buf);
-}
-
-TEST(STDIO_TEST, swprintf_ju_UINTMAX_MAX) {
-  constexpr size_t nchars = 32;
-  wchar_t buf[nchars];
-
-  swprintf(buf, nchars, L"%ju", UINTMAX_MAX);
-  EXPECT_EQ(std::wstring(L"18446744073709551615"), buf);
-}
-
-TEST(STDIO_TEST, swprintf_1$ju_UINTMAX_MAX) {
-  constexpr size_t nchars = 32;
-  wchar_t buf[nchars];
-
-  swprintf(buf, nchars, L"%1$ju", UINTMAX_MAX);
-  EXPECT_EQ(std::wstring(L"18446744073709551615"), buf);
-}
-
-TEST(STDIO_TEST, swprintf_ls) {
-  constexpr size_t nchars = 32;
-  wchar_t buf[nchars];
-
-  static const wchar_t kWideString[] = L"Hello\uff41 World";
-  ASSERT_EQ(12, swprintf(buf, nchars, L"%ls", kWideString));
-  ASSERT_EQ(std::wstring(kWideString), buf);
-  ASSERT_EQ(12, swprintf(buf, 13, L"%ls", kWideString));
-  ASSERT_EQ(std::wstring(kWideString), buf);
-}
-
-TEST(STDIO_TEST, swprintf_S) { // Synonym for %ls.
-  constexpr size_t nchars = 32;
-  wchar_t buf[nchars];
-
-  static const wchar_t kWideString[] = L"Hello\uff41 World";
-  ASSERT_EQ(12, swprintf(buf, nchars, L"%S", kWideString));
-  ASSERT_EQ(std::wstring(kWideString), buf);
-  ASSERT_EQ(12, swprintf(buf, 13, L"%S", kWideString));
-  ASSERT_EQ(std::wstring(kWideString), buf);
-}
-
-TEST(STDIO_TEST, snprintf_d_INT_MAX) {
-  char buf[BUFSIZ];
-  snprintf(buf, sizeof(buf), "%d", INT_MAX);
-  EXPECT_STREQ("2147483647", buf);
-}
-
-TEST(STDIO_TEST, snprintf_d_INT_MIN) {
-  char buf[BUFSIZ];
-  snprintf(buf, sizeof(buf), "%d", INT_MIN);
-  EXPECT_STREQ("-2147483648", buf);
-}
-
-TEST(STDIO_TEST, snprintf_jd_INTMAX_MAX) {
-  char buf[BUFSIZ];
-  snprintf(buf, sizeof(buf), "%jd", INTMAX_MAX);
-  EXPECT_STREQ("9223372036854775807", buf);
+  EXPECT_SWPRINTF(L"9223372036854775807", L"%jd", INTMAX_MAX);
 }
 
 TEST(STDIO_TEST, snprintf_jd_INTMAX_MIN) {
-  char buf[BUFSIZ];
-  snprintf(buf, sizeof(buf), "%jd", INTMAX_MIN);
-  EXPECT_STREQ("-9223372036854775808", buf);
+  EXPECT_SNPRINTF("-9223372036854775808", "%jd", INTMAX_MIN);
+}
+
+TEST(STDIO_TEST, swprintf_jd_INTMAX_MIN) {
+  EXPECT_SWPRINTF(L"-9223372036854775808", L"%jd", INTMAX_MIN);
 }
 
 TEST(STDIO_TEST, snprintf_ju_UINTMAX_MAX) {
-  char buf[BUFSIZ];
-  snprintf(buf, sizeof(buf), "%ju", UINTMAX_MAX);
-  EXPECT_STREQ("18446744073709551615", buf);
+  EXPECT_SNPRINTF("18446744073709551615", "%ju", UINTMAX_MAX);
+}
+
+TEST(STDIO_TEST, swprintf_ju_UINTMAX_MAX) {
+  EXPECT_SWPRINTF(L"18446744073709551615", L"%ju", UINTMAX_MAX);
 }
 
 TEST(STDIO_TEST, snprintf_1$ju_UINTMAX_MAX) {
-  char buf[BUFSIZ];
-  snprintf(buf, sizeof(buf), "%1$ju", UINTMAX_MAX);
-  EXPECT_STREQ("18446744073709551615", buf);
+  EXPECT_SNPRINTF("18446744073709551615", "%1$ju", UINTMAX_MAX);
+}
+
+TEST(STDIO_TEST, swprintf_1$ju_UINTMAX_MAX) {
+  EXPECT_SWPRINTF(L"18446744073709551615", L"%1$ju", UINTMAX_MAX);
+}
+
+TEST(STDIO_TEST, snprintf_d_INT_MAX) {
+  EXPECT_SNPRINTF("2147483647", "%d", INT_MAX);
+}
+
+TEST(STDIO_TEST, swprintf_d_INT_MAX) {
+  EXPECT_SWPRINTF(L"2147483647", L"%d", INT_MAX);
+}
+
+TEST(STDIO_TEST, snprintf_d_INT_MIN) {
+  EXPECT_SNPRINTF("-2147483648", "%d", INT_MIN);
+}
+
+TEST(STDIO_TEST, swprintf_d_INT_MIN) {
+  EXPECT_SWPRINTF(L"-2147483648", L"%d", INT_MIN);
 }
 
 TEST(STDIO_TEST, snprintf_ld_LONG_MAX) {
-  char buf[BUFSIZ];
-  snprintf(buf, sizeof(buf), "%ld", LONG_MAX);
 #if defined(__LP64__)
-  EXPECT_STREQ("9223372036854775807", buf);
+  EXPECT_SNPRINTF("9223372036854775807", "%ld", LONG_MAX);
 #else
-  EXPECT_STREQ("2147483647", buf);
+  EXPECT_SNPRINTF("2147483647", "%ld", LONG_MAX);
+#endif
+}
+
+TEST(STDIO_TEST, swprintf_ld_LONG_MAX) {
+#if defined(__LP64__)
+  EXPECT_SWPRINTF(L"9223372036854775807", L"%ld", LONG_MAX);
+#else
+  EXPECT_SWPRINTF(L"2147483647", L"%ld", LONG_MAX);
 #endif
 }
 
 TEST(STDIO_TEST, snprintf_ld_LONG_MIN) {
-  char buf[BUFSIZ];
-  snprintf(buf, sizeof(buf), "%ld", LONG_MIN);
 #if defined(__LP64__)
-  EXPECT_STREQ("-9223372036854775808", buf);
+  EXPECT_SNPRINTF("-9223372036854775808", "%ld", LONG_MIN);
 #else
-  EXPECT_STREQ("-2147483648", buf);
+  EXPECT_SNPRINTF("-2147483648", "%ld", LONG_MIN);
+#endif
+}
+
+TEST(STDIO_TEST, swprintf_ld_LONG_MIN) {
+#if defined(__LP64__)
+  EXPECT_SWPRINTF(L"-9223372036854775808", L"%ld", LONG_MIN);
+#else
+  EXPECT_SWPRINTF(L"-2147483648", L"%ld", LONG_MIN);
 #endif
 }
 
 TEST(STDIO_TEST, snprintf_lld_LLONG_MAX) {
-  char buf[BUFSIZ];
-  snprintf(buf, sizeof(buf), "%lld", LLONG_MAX);
-  EXPECT_STREQ("9223372036854775807", buf);
+  EXPECT_SNPRINTF("9223372036854775807", "%lld", LLONG_MAX);
+}
+
+TEST(STDIO_TEST, swprintf_lld_LLONG_MAX) {
+  EXPECT_SWPRINTF(L"9223372036854775807", L"%lld", LLONG_MAX);
 }
 
 TEST(STDIO_TEST, snprintf_lld_LLONG_MIN) {
-  char buf[BUFSIZ];
-  snprintf(buf, sizeof(buf), "%lld", LLONG_MIN);
-  EXPECT_STREQ("-9223372036854775808", buf);
+  EXPECT_SNPRINTF("-9223372036854775808", "%lld", LLONG_MIN);
+}
+
+TEST(STDIO_TEST, swprintf_lld_LLONG_MIN) {
+  EXPECT_SWPRINTF(L"-9223372036854775808", L"%lld", LLONG_MIN);
 }
 
 TEST(STDIO_TEST, snprintf_o_UINT_MAX) {
-  char buf[BUFSIZ];
-  snprintf(buf, sizeof(buf), "%o", UINT_MAX);
-  EXPECT_STREQ("37777777777", buf);
+  EXPECT_SNPRINTF("37777777777", "%o", UINT_MAX);
+}
+
+TEST(STDIO_TEST, swprintf_o_UINT_MAX) {
+  EXPECT_SWPRINTF(L"37777777777", L"%o", UINT_MAX);
 }
 
 TEST(STDIO_TEST, snprintf_u_UINT_MAX) {
-  char buf[BUFSIZ];
-  snprintf(buf, sizeof(buf), "%u", UINT_MAX);
-  EXPECT_STREQ("4294967295", buf);
+  EXPECT_SNPRINTF("4294967295", "%u", UINT_MAX);
+}
+
+TEST(STDIO_TEST, swprintf_u_UINT_MAX) {
+  EXPECT_SWPRINTF(L"4294967295", L"%u", UINT_MAX);
 }
 
 TEST(STDIO_TEST, snprintf_x_UINT_MAX) {
-  char buf[BUFSIZ];
-  snprintf(buf, sizeof(buf), "%x", UINT_MAX);
-  EXPECT_STREQ("ffffffff", buf);
+  EXPECT_SNPRINTF("ffffffff", "%x", UINT_MAX);
+}
+
+TEST(STDIO_TEST, swprintf_x_UINT_MAX) {
+  EXPECT_SWPRINTF(L"ffffffff", L"%x", UINT_MAX);
 }
 
 TEST(STDIO_TEST, snprintf_X_UINT_MAX) {
-  char buf[BUFSIZ];
-  snprintf(buf, sizeof(buf), "%X", UINT_MAX);
-  EXPECT_STREQ("FFFFFFFF", buf);
+  EXPECT_SNPRINTF("FFFFFFFF", "%X", UINT_MAX);
+}
+
+TEST(STDIO_TEST, swprintf_X_UINT_MAX) {
+  EXPECT_SWPRINTF(L"FFFFFFFF", L"%X", UINT_MAX);
 }
 
 TEST(STDIO_TEST, snprintf_e) {
-  char buf[BUFSIZ];
+  EXPECT_SNPRINTF("1.500000e+00", "%e", 1.5);
+  EXPECT_SNPRINTF("1.500000e+00", "%Le", 1.5L);
+}
 
-  snprintf(buf, sizeof(buf), "%e", 1.5);
-  EXPECT_STREQ("1.500000e+00", buf);
-
-  snprintf(buf, sizeof(buf), "%Le", 1.5L);
-  EXPECT_STREQ("1.500000e+00", buf);
+TEST(STDIO_TEST, swprintf_e) {
+  EXPECT_SWPRINTF(L"1.500000e+00", L"%e", 1.5);
+  EXPECT_SWPRINTF(L"1.500000e+00", L"%Le", 1.5L);
 }
 
 TEST(STDIO_TEST, snprintf_negative_zero_5084292) {
-  char buf[BUFSIZ];
+  EXPECT_SNPRINTF("-0.000000e+00", "%e", -0.0);
+  EXPECT_SNPRINTF("-0.000000E+00", "%E", -0.0);
+  EXPECT_SNPRINTF("-0.000000", "%f", -0.0);
+  EXPECT_SNPRINTF("-0.000000", "%F", -0.0);
+  EXPECT_SNPRINTF("-0", "%g", -0.0);
+  EXPECT_SNPRINTF("-0", "%G", -0.0);
+  EXPECT_SNPRINTF("-0x0p+0", "%a", -0.0);
+  EXPECT_SNPRINTF("-0X0P+0", "%A", -0.0);
+}
 
-  snprintf(buf, sizeof(buf), "%e", -0.0);
-  EXPECT_STREQ("-0.000000e+00", buf);
-  snprintf(buf, sizeof(buf), "%E", -0.0);
-  EXPECT_STREQ("-0.000000E+00", buf);
-  snprintf(buf, sizeof(buf), "%f", -0.0);
-  EXPECT_STREQ("-0.000000", buf);
-  snprintf(buf, sizeof(buf), "%F", -0.0);
-  EXPECT_STREQ("-0.000000", buf);
-  snprintf(buf, sizeof(buf), "%g", -0.0);
-  EXPECT_STREQ("-0", buf);
-  snprintf(buf, sizeof(buf), "%G", -0.0);
-  EXPECT_STREQ("-0", buf);
-  snprintf(buf, sizeof(buf), "%a", -0.0);
-  EXPECT_STREQ("-0x0p+0", buf);
-  snprintf(buf, sizeof(buf), "%A", -0.0);
-  EXPECT_STREQ("-0X0P+0", buf);
+TEST(STDIO_TEST, swprintf_negative_zero_5084292) {
+  EXPECT_SWPRINTF(L"-0.000000e+00", L"%e", -0.0);
+  EXPECT_SWPRINTF(L"-0.000000E+00", L"%E", -0.0);
+  EXPECT_SWPRINTF(L"-0.000000", L"%f", -0.0);
+  EXPECT_SWPRINTF(L"-0.000000", L"%F", -0.0);
+  EXPECT_SWPRINTF(L"-0", L"%g", -0.0);
+  EXPECT_SWPRINTF(L"-0", L"%G", -0.0);
+  EXPECT_SWPRINTF(L"-0x0p+0", L"%a", -0.0);
+  EXPECT_SWPRINTF(L"-0X0P+0", L"%A", -0.0);
 }
 
 TEST(STDIO_TEST, snprintf_utf8_15439554) {
@@ -912,21 +919,39 @@
   ASSERT_EQ(12, snprintf(buf, sizeof(buf), "%.2147483646s%c", "hello world", '!'));
   ASSERT_EQ(12, snprintf(buf, sizeof(buf), "%.2147483647s%c", "hello world", '!'));
   ASSERT_EQ(-1, snprintf(buf, sizeof(buf), "%.2147483648s%c", "hello world", '!'));
-  ASSERT_EQ(ENOMEM, errno);
+  ASSERT_ERRNO(ENOMEM);
+}
+
+TEST(STDIO_TEST, swprintf_asterisk_overflow) {
+  wchar_t buf[128];
+  ASSERT_EQ(5, swprintf(buf, sizeof(buf), L"%.*s%c", 4, "hello world", '!'));
+  ASSERT_EQ(12, swprintf(buf, sizeof(buf), L"%.*s%c", INT_MAX / 2, "hello world", '!'));
+  ASSERT_EQ(12, swprintf(buf, sizeof(buf), L"%.*s%c", INT_MAX - 1, "hello world", '!'));
+  ASSERT_EQ(12, swprintf(buf, sizeof(buf), L"%.*s%c", INT_MAX, "hello world", '!'));
+  ASSERT_EQ(12, swprintf(buf, sizeof(buf), L"%.*s%c", -1, "hello world", '!'));
+
+  // INT_MAX-1, INT_MAX, INT_MAX+1.
+  ASSERT_EQ(12, swprintf(buf, sizeof(buf), L"%.2147483646s%c", "hello world", '!'));
+  ASSERT_EQ(12, swprintf(buf, sizeof(buf), L"%.2147483647s%c", "hello world", '!'));
+  ASSERT_EQ(-1, swprintf(buf, sizeof(buf), L"%.2147483648s%c", "hello world", '!'));
+  ASSERT_ERRNO(ENOMEM);
 }
 
 // Inspired by https://github.com/landley/toybox/issues/163.
 TEST(STDIO_TEST, printf_NULL) {
-  char buf[128];
   char* null = nullptr;
-  EXPECT_EQ(4, snprintf(buf, sizeof(buf), "<%*.*s>", 2, 2, null));
-  EXPECT_STREQ("<(n>", buf);
-  EXPECT_EQ(8, snprintf(buf, sizeof(buf), "<%*.*s>", 2, 8, null));
-  EXPECT_STREQ("<(null)>", buf);
-  EXPECT_EQ(10, snprintf(buf, sizeof(buf), "<%*.*s>", 8, 2, null));
-  EXPECT_STREQ("<      (n>", buf);
-  EXPECT_EQ(10, snprintf(buf, sizeof(buf), "<%*.*s>", 8, 8, null));
-  EXPECT_STREQ("<  (null)>", buf);
+  EXPECT_SNPRINTF("<(n>", "<%*.*s>", 2, 2, null);
+  EXPECT_SNPRINTF("<(null)>", "<%*.*s>", 2, 8, null);
+  EXPECT_SNPRINTF("<      (n>", "<%*.*s>", 8, 2, null);
+  EXPECT_SNPRINTF("<  (null)>", "<%*.*s>", 8, 8, null);
+}
+
+TEST(STDIO_TEST, wprintf_NULL) {
+  char* null = nullptr;
+  EXPECT_SWPRINTF(L"<(n>", L"<%*.*s>", 2, 2, null);
+  EXPECT_SWPRINTF(L"<(null)>", L"<%*.*s>", 2, 8, null);
+  EXPECT_SWPRINTF(L"<      (n>", L"<%*.*s>", 8, 2, null);
+  EXPECT_SWPRINTF(L"<  (null)>", L"<%*.*s>", 8, 8, null);
 }
 
 TEST(STDIO_TEST, fprintf) {
@@ -1027,11 +1052,13 @@
 }
 
 TEST(STDIO_TEST, popen_return_value_signal) {
-  FILE* fp = popen("kill -7 $$", "r");
+  // Use a realtime signal to avoid creating a tombstone when running.
+  std::string cmd = android::base::StringPrintf("kill -%d $$", SIGRTMIN);
+  FILE* fp = popen(cmd.c_str(), "r");
   ASSERT_TRUE(fp != nullptr);
   int status = pclose(fp);
   EXPECT_TRUE(WIFSIGNALED(status));
-  EXPECT_EQ(7, WTERMSIG(status));
+  EXPECT_EQ(SIGRTMIN, WTERMSIG(status));
 }
 
 TEST(STDIO_TEST, getc) {
@@ -1378,30 +1405,30 @@
 
   errno = 0;
   EXPECT_EQ(EOF, putc('x', fp));
-  EXPECT_EQ(EBADF, errno);
+  EXPECT_ERRNO(EBADF);
 
   errno = 0;
   EXPECT_EQ(EOF, fprintf(fp, "hello"));
-  EXPECT_EQ(EBADF, errno);
+  EXPECT_ERRNO(EBADF);
 
   errno = 0;
   EXPECT_EQ(EOF, fwprintf(fp, L"hello"));
 #if defined(__BIONIC__)
-  EXPECT_EQ(EBADF, errno);
+  EXPECT_ERRNO(EBADF);
 #endif
 
   errno = 0;
   EXPECT_EQ(0U, fwrite("hello", 1, 2, fp));
-  EXPECT_EQ(EBADF, errno);
+  EXPECT_ERRNO(EBADF);
 
   errno = 0;
   EXPECT_EQ(EOF, fputs("hello", fp));
-  EXPECT_EQ(EBADF, errno);
+  EXPECT_ERRNO(EBADF);
 
   errno = 0;
   EXPECT_EQ(WEOF, fputwc(L'x', fp));
 #if defined(__BIONIC__)
-  EXPECT_EQ(EBADF, errno);
+  EXPECT_ERRNO(EBADF);
 #endif
 }
 
@@ -1516,7 +1543,7 @@
 
   // Reading from within a byte should produce an error.
   ASSERT_EQ(WEOF, fgetwc(fp));
-  ASSERT_EQ(EILSEQ, errno);
+  ASSERT_ERRNO(EILSEQ);
 
   // Reverting to a valid position should work.
   ASSERT_EQ(0, fsetpos(fp, &mb_two_bytes_pos));
@@ -1526,7 +1553,7 @@
   // produce an error.
   ASSERT_EQ(0, fsetpos(fp, &pos_inside_mb));
   ASSERT_EQ(WEOF, fgetwc(fp));
-  ASSERT_EQ(EILSEQ, errno);
+  ASSERT_ERRNO(EILSEQ);
 
   ASSERT_EQ(0, fclose(fp));
 }
@@ -1927,7 +1954,7 @@
   ASSERT_TRUE(fp != nullptr);
   errno = 0;
   ASSERT_EQ(-1, fileno(fp));
-  ASSERT_EQ(EBADF, errno);
+  ASSERT_ERRNO(EBADF);
   ASSERT_EQ(0, fclose(fp));
 }
 
@@ -1975,12 +2002,12 @@
   // Invalid buffer.
   errno = 0;
   ASSERT_EQ(nullptr, open_memstream(nullptr, &size));
-  ASSERT_EQ(EINVAL, errno);
+  ASSERT_ERRNO(EINVAL);
 
   // Invalid size.
   errno = 0;
   ASSERT_EQ(nullptr, open_memstream(&p, nullptr));
-  ASSERT_EQ(EINVAL, errno);
+  ASSERT_ERRNO(EINVAL);
 #pragma clang diagnostic pop
 #else
   GTEST_SKIP() << "glibc is broken";
@@ -2115,7 +2142,7 @@
   std::vector<char> buf(n, 0);
   errno = 0;
   ASSERT_EQ(0U, fread(&buf[0], n, 1, fp));
-  ASSERT_EQ(EBADF, errno);
+  ASSERT_ERRNO(EBADF);
   ASSERT_TRUE(ferror(fp));
   ASSERT_FALSE(feof(fp));
   fclose(fp);
@@ -2129,6 +2156,27 @@
   test_fread_from_write_only_stream(64*1024);
 }
 
+TEST(STDIO_TEST, fwrite_to_read_only_stream) {
+  FILE* fp = fopen("/proc/version", "re");
+  ASSERT_FALSE(ferror(fp));
+  ASSERT_EQ(0U, fwrite("hello", 1, 5, fp));
+  ASSERT_TRUE(ferror(fp));
+}
+
+TEST(STDIO_TEST, fputc_to_read_only_stream) {
+  FILE* fp = fopen("/proc/version", "re");
+  ASSERT_FALSE(ferror(fp));
+  ASSERT_EQ(EOF, fputc('x', fp));
+  ASSERT_TRUE(ferror(fp));
+}
+
+TEST(STDIO_TEST, fprintf_to_read_only_stream) {
+  FILE* fp = fopen("/proc/version", "re");
+  ASSERT_FALSE(ferror(fp));
+  ASSERT_EQ(-1, fprintf(fp, "%s%d", "hello", 123));
+  ASSERT_TRUE(ferror(fp));
+}
+
 static void test_fwrite_after_fread(size_t n) {
   TemporaryFile tf;
 
@@ -2247,7 +2295,7 @@
   // especially because they might actually correspond to a real stream.
   errno = 0;
   ASSERT_EQ(-1, fileno(stdin));
-  ASSERT_EQ(EBADF, errno);
+  ASSERT_ERRNO(EBADF);
 }
 
 TEST(STDIO_TEST, fseek_ftell_unseekable) {
@@ -2259,17 +2307,17 @@
   // Check that ftell balks on an unseekable FILE*.
   errno = 0;
   ASSERT_EQ(-1, ftell(fp));
-  ASSERT_EQ(ESPIPE, errno);
+  ASSERT_ERRNO(ESPIPE);
 
   // SEEK_CUR is rewritten as SEEK_SET internally...
   errno = 0;
   ASSERT_EQ(-1, fseek(fp, 0, SEEK_CUR));
-  ASSERT_EQ(ESPIPE, errno);
+  ASSERT_ERRNO(ESPIPE);
 
   // ...so it's worth testing the direct seek path too.
   errno = 0;
   ASSERT_EQ(-1, fseek(fp, 0, SEEK_SET));
-  ASSERT_EQ(ESPIPE, errno);
+  ASSERT_ERRNO(ESPIPE);
 
   fclose(fp);
 #else
@@ -2281,7 +2329,7 @@
 #if defined(__BIONIC__)
   errno = 0;
   ASSERT_EQ(nullptr, funopen(nullptr, nullptr, nullptr, nullptr, nullptr));
-  ASSERT_EQ(EINVAL, errno);
+  ASSERT_ERRNO(EINVAL);
 #else
   GTEST_SKIP() << "glibc uses fopencookie instead";
 #endif
@@ -2302,7 +2350,7 @@
   EXPECT_EQ(0xfedcba12LL, pos);
 #else
   EXPECT_EQ(-1, fgetpos(fp, &pos)) << strerror(errno);
-  EXPECT_EQ(EOVERFLOW, errno);
+  EXPECT_ERRNO(EOVERFLOW);
 #endif
 
   FILE* fp64 = funopen64(nullptr, read_fn, nullptr, seek64_fn, nullptr);
@@ -2404,24 +2452,24 @@
   // Bad whence.
   errno = 0;
   ASSERT_EQ(-1, fseek(fp, 0, 123));
-  ASSERT_EQ(EINVAL, errno);
+  ASSERT_ERRNO(EINVAL);
   errno = 0;
   ASSERT_EQ(-1, fseeko(fp, 0, 123));
-  ASSERT_EQ(EINVAL, errno);
+  ASSERT_ERRNO(EINVAL);
   errno = 0;
   ASSERT_EQ(-1, fseeko64(fp, 0, 123));
-  ASSERT_EQ(EINVAL, errno);
+  ASSERT_ERRNO(EINVAL);
 
   // Bad offset.
   errno = 0;
   ASSERT_EQ(-1, fseek(fp, -1, SEEK_SET));
-  ASSERT_EQ(EINVAL, errno);
+  ASSERT_ERRNO(EINVAL);
   errno = 0;
   ASSERT_EQ(-1, fseeko(fp, -1, SEEK_SET));
-  ASSERT_EQ(EINVAL, errno);
+  ASSERT_ERRNO(EINVAL);
   errno = 0;
   ASSERT_EQ(-1, fseeko64(fp, -1, SEEK_SET));
-  ASSERT_EQ(EINVAL, errno);
+  ASSERT_ERRNO(EINVAL);
 
   fclose(fp);
 }
@@ -2440,20 +2488,20 @@
   TemporaryFile tf;
   ASSERT_EQ(0, remove(tf.path));
   ASSERT_EQ(-1, lstat(tf.path, &sb));
-  ASSERT_EQ(ENOENT, errno);
+  ASSERT_ERRNO(ENOENT);
 
   TemporaryDir td;
   ASSERT_EQ(0, remove(td.path));
   ASSERT_EQ(-1, lstat(td.path, &sb));
-  ASSERT_EQ(ENOENT, errno);
+  ASSERT_ERRNO(ENOENT);
 
   errno = 0;
   ASSERT_EQ(-1, remove(tf.path));
-  ASSERT_EQ(ENOENT, errno);
+  ASSERT_ERRNO(ENOENT);
 
   errno = 0;
   ASSERT_EQ(-1, remove(td.path));
-  ASSERT_EQ(ENOENT, errno);
+  ASSERT_ERRNO(ENOENT);
 }
 
 TEST_F(STDIO_DEATHTEST, snprintf_30445072_known_buffer_size) {
@@ -2469,7 +2517,7 @@
 }
 
 TEST_F(STDIO_DEATHTEST, snprintf_30445072_unknown_buffer_size) {
-  std::string buf = "world";
+  std::string buf = "hello";  // So the compiler doesn't know the buffer size.
   ASSERT_EXIT(snprintf(&buf[0], atol("-1"), "hello"),
               testing::KilledBySignal(SIGABRT),
               "FORTIFY: vsnprintf: size .* > SSIZE_MAX");
@@ -2482,48 +2530,54 @@
 }
 
 TEST(STDIO_TEST, printf_m) {
-  char buf[BUFSIZ];
   errno = 0;
-  snprintf(buf, sizeof(buf), "<%m>");
-  ASSERT_STREQ("<Success>", buf);
+  EXPECT_SNPRINTF("<Success>", "<%m>");
   errno = -1;
-  snprintf(buf, sizeof(buf), "<%m>");
-  ASSERT_STREQ("<Unknown error -1>", buf);
+  EXPECT_SNPRINTF("<Unknown error -1>", "<%m>");
   errno = EINVAL;
-  snprintf(buf, sizeof(buf), "<%m>");
-  ASSERT_STREQ("<Invalid argument>", buf);
-}
-
-TEST(STDIO_TEST, printf_m_does_not_clobber_strerror) {
-  char buf[BUFSIZ];
-  const char* m = strerror(-1);
-  ASSERT_STREQ("Unknown error -1", m);
-  errno = -2;
-  snprintf(buf, sizeof(buf), "<%m>");
-  ASSERT_STREQ("<Unknown error -2>", buf);
-  ASSERT_STREQ("Unknown error -1", m);
+  EXPECT_SNPRINTF("<Invalid argument>", "<%m>");
 }
 
 TEST(STDIO_TEST, wprintf_m) {
-  wchar_t buf[BUFSIZ];
   errno = 0;
-  swprintf(buf, sizeof(buf), L"<%m>");
-  ASSERT_EQ(std::wstring(L"<Success>"), buf);
+  EXPECT_SWPRINTF(L"<Success>", L"<%m>");
   errno = -1;
-  swprintf(buf, sizeof(buf), L"<%m>");
-  ASSERT_EQ(std::wstring(L"<Unknown error -1>"), buf);
+  EXPECT_SWPRINTF(L"<Unknown error -1>", L"<%m>");
   errno = EINVAL;
-  swprintf(buf, sizeof(buf), L"<%m>");
-  ASSERT_EQ(std::wstring(L"<Invalid argument>"), buf);
+  EXPECT_SWPRINTF(L"<Invalid argument>", L"<%m>");
 }
 
-TEST(STDIO_TEST, wprintf_m_does_not_clobber_strerror) {
-  wchar_t buf[BUFSIZ];
+TEST(STDIO_TEST, printf_hash_m) {
+  errno = 0;
+  EXPECT_SNPRINTF("<0>", "<%#m>");
+  errno = -1;
+  EXPECT_SNPRINTF("<-1>", "<%#m>");
+  errno = EINVAL;
+  EXPECT_SNPRINTF("<EINVAL>", "<%#m>");
+}
+
+TEST(STDIO_TEST, wprintf_hash_m) {
+  errno = 0;
+  EXPECT_SWPRINTF(L"<0>", L"<%#m>");
+  errno = -1;
+  EXPECT_SWPRINTF(L"<-1>", L"<%#m>");
+  errno = EINVAL;
+  EXPECT_SWPRINTF(L"<EINVAL>", L"<%#m>");
+}
+
+TEST(STDIO_TEST, printf_m_does_not_clobber_strerror) {
   const char* m = strerror(-1);
   ASSERT_STREQ("Unknown error -1", m);
   errno = -2;
-  swprintf(buf, sizeof(buf), L"<%m>");
-  ASSERT_EQ(std::wstring(L"<Unknown error -2>"), buf);
+  EXPECT_SNPRINTF("<Unknown error -2>", "<%m>");
+  ASSERT_STREQ("Unknown error -1", m);
+}
+
+TEST(STDIO_TEST, wprintf_m_does_not_clobber_strerror) {
+  const char* m = strerror(-1);
+  ASSERT_STREQ("Unknown error -1", m);
+  errno = -2;
+  EXPECT_SWPRINTF(L"<Unknown error -2>", L"<%m>");
   ASSERT_STREQ("Unknown error -1", m);
 }
 
@@ -2676,7 +2730,7 @@
 #if defined(__BIONIC__) && !defined(__LP64__)
   ASSERT_EQ(0, fseek(fp, 0x7fff'ffff, SEEK_SET));
   ASSERT_EQ(-1, fseek(fp, 1, SEEK_CUR));
-  ASSERT_EQ(EOVERFLOW, errno);
+  ASSERT_ERRNO(EOVERFLOW);
 #endif
 
   // Neither Bionic nor glibc implement the overflow checking for SEEK_END.
@@ -2795,7 +2849,7 @@
 
   // Rename and check it moved.
   ASSERT_EQ(-1, renameat2(dirfd, "old", dirfd, "new", RENAME_NOREPLACE));
-  ASSERT_EQ(EEXIST, errno);
+  ASSERT_ERRNO(EEXIST);
 #endif
 }
 
@@ -2818,25 +2872,25 @@
   errno = 0;
   fp = fdopen(fd, "nonsense");
   ASSERT_TRUE(fp == nullptr);
-  ASSERT_EQ(EINVAL, errno);
+  ASSERT_ERRNO(EINVAL);
 
   // Mode that isn't a subset of the fd's actual mode.
   errno = 0;
   fp = fdopen(fd, "w");
   ASSERT_TRUE(fp == nullptr);
-  ASSERT_EQ(EINVAL, errno);
+  ASSERT_ERRNO(EINVAL);
 
   // Can't set append on the underlying fd.
   errno = 0;
   fp = fdopen(fd, "a");
   ASSERT_TRUE(fp == nullptr);
-  ASSERT_EQ(EINVAL, errno);
+  ASSERT_ERRNO(EINVAL);
 
   // Bad fd.
   errno = 0;
   fp = fdopen(-1, "re");
   ASSERT_TRUE(fp == nullptr);
-  ASSERT_EQ(EBADF, errno);
+  ASSERT_ERRNO(EBADF);
 
   close(fd);
 }
@@ -2845,14 +2899,14 @@
   errno = 0;
   FILE* fp = fmemopen(nullptr, 16, "nonsense");
   ASSERT_TRUE(fp == nullptr);
-  ASSERT_EQ(EINVAL, errno);
+  ASSERT_ERRNO(EINVAL);
 }
 
 TEST(STDIO_TEST, fopen_invalid_mode) {
   errno = 0;
   FILE* fp = fopen("/proc/version", "nonsense");
   ASSERT_TRUE(fp == nullptr);
-  ASSERT_EQ(EINVAL, errno);
+  ASSERT_ERRNO(EINVAL);
 }
 
 TEST(STDIO_TEST, freopen_invalid_mode) {
@@ -2862,7 +2916,7 @@
   errno = 0;
   fp = freopen("/proc/version", "nonsense", fp);
   ASSERT_TRUE(fp == nullptr);
-  ASSERT_EQ(EINVAL, errno);
+  ASSERT_ERRNO(EINVAL);
 }
 
 TEST(STDIO_TEST, asprintf_smoke) {
@@ -2876,7 +2930,7 @@
   errno = 0;
   FILE* fp = fopen("/proc/does-not-exist", "re");
   ASSERT_TRUE(fp == nullptr);
-  ASSERT_EQ(ENOENT, errno);
+  ASSERT_ERRNO(ENOENT);
 }
 
 static void tempnam_test(bool has_TMPDIR, const char* dir, const char* prefix, const char* re) {
@@ -3000,156 +3054,86 @@
 #endif
 }
 
-TEST(STDIO_TEST, snprintf_b) {
+TEST(STDIO_TEST, snprintf_b_B) {
 #if defined(__BIONIC__)
-  char buf[BUFSIZ];
-
   uint8_t b = 5;
-  EXPECT_EQ(5, snprintf(buf, sizeof(buf), "<%" PRIb8 ">", b));
-  EXPECT_STREQ("<101>", buf);
-  EXPECT_EQ(10, snprintf(buf, sizeof(buf), "<%08" PRIb8 ">", b));
-  EXPECT_STREQ("<00000101>", buf);
+  EXPECT_SNPRINTF("<101>", "<%" PRIb8 ">", b);
+  EXPECT_SNPRINTF("<101>", "<%" PRIB8 ">", b);
+  EXPECT_SNPRINTF("<00000101>", "<%08" PRIb8 ">", b);
+  EXPECT_SNPRINTF("<00000101>", "<%08" PRIB8 ">", b);
 
   uint16_t s = 0xaaaa;
-  EXPECT_EQ(18, snprintf(buf, sizeof(buf), "<%" PRIb16 ">", s));
-  EXPECT_STREQ("<1010101010101010>", buf);
-  EXPECT_EQ(20, snprintf(buf, sizeof(buf), "<%#" PRIb16 ">", s));
-  EXPECT_STREQ("<0b1010101010101010>", buf);
+  EXPECT_SNPRINTF("<1010101010101010>", "<%" PRIb16 ">", s);
+  EXPECT_SNPRINTF("<1010101010101010>", "<%" PRIB16 ">", s);
+  EXPECT_SNPRINTF("<0b1010101010101010>", "<%#" PRIb16 ">", s);
+  EXPECT_SNPRINTF("<0B1010101010101010>", "<%#" PRIB16 ">", s);
 
-  EXPECT_EQ(34, snprintf(buf, sizeof(buf), "<%" PRIb32 ">", 0xaaaaaaaa));
-  EXPECT_STREQ("<10101010101010101010101010101010>", buf);
-  EXPECT_EQ(36, snprintf(buf, sizeof(buf), "<%#" PRIb32 ">", 0xaaaaaaaa));
-  EXPECT_STREQ("<0b10101010101010101010101010101010>", buf);
+  EXPECT_SNPRINTF("<10101010101010101010101010101010>", "<%" PRIb32 ">", 0xaaaaaaaa);
+  EXPECT_SNPRINTF("<10101010101010101010101010101010>", "<%" PRIB32 ">", 0xaaaaaaaa);
+  EXPECT_SNPRINTF("<0b10101010101010101010101010101010>", "<%#" PRIb32 ">", 0xaaaaaaaa);
+  EXPECT_SNPRINTF("<0B10101010101010101010101010101010>", "<%#" PRIB32 ">", 0xaaaaaaaa);
 
   // clang doesn't like "%lb" (https://github.com/llvm/llvm-project/issues/62247)
 #pragma clang diagnostic push
 #pragma clang diagnostic ignored "-Wformat"
-  EXPECT_EQ(66, snprintf(buf, sizeof(buf), "<%" PRIb64 ">", 0xaaaaaaaa'aaaaaaaa));
-  EXPECT_STREQ("<1010101010101010101010101010101010101010101010101010101010101010>", buf);
-  EXPECT_EQ(68, snprintf(buf, sizeof(buf), "<%#" PRIb64 ">", 0xaaaaaaaa'aaaaaaaa));
-  EXPECT_STREQ("<0b1010101010101010101010101010101010101010101010101010101010101010>", buf);
+  EXPECT_SNPRINTF("<1010101010101010101010101010101010101010101010101010101010101010>",
+                  "<%" PRIb64 ">", 0xaaaaaaaa'aaaaaaaa);
+  EXPECT_SNPRINTF("<1010101010101010101010101010101010101010101010101010101010101010>",
+                  "<%" PRIB64 ">", 0xaaaaaaaa'aaaaaaaa);
+  EXPECT_SNPRINTF("<0b1010101010101010101010101010101010101010101010101010101010101010>",
+                  "<%#" PRIb64 ">", 0xaaaaaaaa'aaaaaaaa);
+  EXPECT_SNPRINTF("<0B1010101010101010101010101010101010101010101010101010101010101010>",
+                  "<%#" PRIB64 ">", 0xaaaaaaaa'aaaaaaaa);
 #pragma clang diagnostic pop
 
-  EXPECT_EQ(3, snprintf(buf, sizeof(buf), "<%#b>", 0));
-  EXPECT_STREQ("<0>", buf);
+  EXPECT_SNPRINTF("<0>", "<%#b>", 0);
+  EXPECT_SNPRINTF("<0>", "<%#B>", 0);
 #else
   GTEST_SKIP() << "no %b in glibc";
 #endif
 }
 
-TEST(STDIO_TEST, snprintf_B) {
+TEST(STDIO_TEST, swprintf_b_B) {
 #if defined(__BIONIC__)
-  char buf[BUFSIZ];
-
   uint8_t b = 5;
-  EXPECT_EQ(5, snprintf(buf, sizeof(buf), "<%" PRIB8 ">", b));
-  EXPECT_STREQ("<101>", buf);
-  EXPECT_EQ(10, snprintf(buf, sizeof(buf), "<%08" PRIB8 ">", b));
-  EXPECT_STREQ("<00000101>", buf);
+  EXPECT_SWPRINTF(L"<101>", L"<%" PRIb8 ">", b);
+  EXPECT_SWPRINTF(L"<101>", L"<%" PRIB8 ">", b);
+  EXPECT_SWPRINTF(L"<0b101>", L"<%#" PRIb8 ">", b);
+  EXPECT_SWPRINTF(L"<0B101>", L"<%#" PRIB8 ">", b);
+  EXPECT_SWPRINTF(L"<00000101>", L"<%08" PRIb8 ">", b);
+  EXPECT_SWPRINTF(L"<00000101>", L"<%08" PRIB8 ">", b);
 
   uint16_t s = 0xaaaa;
-  EXPECT_EQ(18, snprintf(buf, sizeof(buf), "<%" PRIB16 ">", s));
-  EXPECT_STREQ("<1010101010101010>", buf);
-  EXPECT_EQ(20, snprintf(buf, sizeof(buf), "<%#" PRIB16 ">", s));
-  EXPECT_STREQ("<0B1010101010101010>", buf);
+  EXPECT_SWPRINTF(L"<1010101010101010>", L"<%" PRIb16 ">", s);
+  EXPECT_SWPRINTF(L"<1010101010101010>", L"<%" PRIB16 ">", s);
+  EXPECT_SWPRINTF(L"<0b1010101010101010>", L"<%#" PRIb16 ">", s);
+  EXPECT_SWPRINTF(L"<0B1010101010101010>", L"<%#" PRIB16 ">", s);
 
-  EXPECT_EQ(34, snprintf(buf, sizeof(buf), "<%" PRIB32 ">", 0xaaaaaaaa));
-  EXPECT_STREQ("<10101010101010101010101010101010>", buf);
-  EXPECT_EQ(36, snprintf(buf, sizeof(buf), "<%#" PRIB32 ">", 0xaaaaaaaa));
-  EXPECT_STREQ("<0B10101010101010101010101010101010>", buf);
+  EXPECT_SWPRINTF(L"<10101010101010101010101010101010>", L"<%" PRIb32 ">", 0xaaaaaaaa);
+  EXPECT_SWPRINTF(L"<10101010101010101010101010101010>", L"<%" PRIB32 ">", 0xaaaaaaaa);
+  EXPECT_SWPRINTF(L"<0b10101010101010101010101010101010>", L"<%#" PRIb32 ">", 0xaaaaaaaa);
+  EXPECT_SWPRINTF(L"<0B10101010101010101010101010101010>", L"<%#" PRIB32 ">", 0xaaaaaaaa);
 
-  // clang doesn't like "%lB" (https://github.com/llvm/llvm-project/issues/62247)
+  // clang doesn't like "%lb" (https://github.com/llvm/llvm-project/issues/62247)
 #pragma clang diagnostic push
 #pragma clang diagnostic ignored "-Wformat"
-  EXPECT_EQ(66, snprintf(buf, sizeof(buf), "<%" PRIB64 ">", 0xaaaaaaaa'aaaaaaaa));
-  EXPECT_STREQ("<1010101010101010101010101010101010101010101010101010101010101010>", buf);
-  EXPECT_EQ(68, snprintf(buf, sizeof(buf), "<%#" PRIB64 ">", 0xaaaaaaaa'aaaaaaaa));
-  EXPECT_STREQ("<0B1010101010101010101010101010101010101010101010101010101010101010>", buf);
+  EXPECT_SWPRINTF(L"<1010101010101010101010101010101010101010101010101010101010101010>",
+                  L"<%" PRIb64 ">", 0xaaaaaaaa'aaaaaaaa);
+  EXPECT_SWPRINTF(L"<1010101010101010101010101010101010101010101010101010101010101010>",
+                  L"<%" PRIB64 ">", 0xaaaaaaaa'aaaaaaaa);
+  EXPECT_SWPRINTF(L"<0b1010101010101010101010101010101010101010101010101010101010101010>",
+                  L"<%#" PRIb64 ">", 0xaaaaaaaa'aaaaaaaa);
+  EXPECT_SWPRINTF(L"<0B1010101010101010101010101010101010101010101010101010101010101010>",
+                  L"<%#" PRIB64 ">", 0xaaaaaaaa'aaaaaaaa);
 #pragma clang diagnostic pop
 
-  EXPECT_EQ(3, snprintf(buf, sizeof(buf), "<%#b>", 0));
-  EXPECT_STREQ("<0>", buf);
-#else
-  GTEST_SKIP() << "no %B in glibc";
-#endif
-}
-
-TEST(STDIO_TEST, swprintf_b) {
-#if defined(__BIONIC__)
-  wchar_t buf[BUFSIZ];
-
-  uint8_t b = 5;
-  EXPECT_EQ(5, swprintf(buf, sizeof(buf), L"<%" PRIb8 ">", b));
-  EXPECT_EQ(std::wstring(L"<101>"), buf);
-  EXPECT_EQ(10, swprintf(buf, sizeof(buf), L"<%08" PRIb8 ">", b));
-  EXPECT_EQ(std::wstring(L"<00000101>"), buf);
-
-  uint16_t s = 0xaaaa;
-  EXPECT_EQ(18, swprintf(buf, sizeof(buf), L"<%" PRIb16 ">", s));
-  EXPECT_EQ(std::wstring(L"<1010101010101010>"), buf);
-  EXPECT_EQ(20, swprintf(buf, sizeof(buf), L"<%#" PRIb16 ">", s));
-  EXPECT_EQ(std::wstring(L"<0b1010101010101010>"), buf);
-
-  EXPECT_EQ(34, swprintf(buf, sizeof(buf), L"<%" PRIb32 ">", 0xaaaaaaaa));
-  EXPECT_EQ(std::wstring(L"<10101010101010101010101010101010>"), buf);
-  EXPECT_EQ(36, swprintf(buf, sizeof(buf), L"<%#" PRIb32 ">", 0xaaaaaaaa));
-  EXPECT_EQ(std::wstring(L"<0b10101010101010101010101010101010>"), buf);
-
-#pragma clang diagnostic push
-#pragma clang diagnostic ignored "-Wformat"  // clang doesn't like "%lb"
-  EXPECT_EQ(66, swprintf(buf, sizeof(buf), L"<%" PRIb64 ">", 0xaaaaaaaa'aaaaaaaa));
-  EXPECT_EQ(std::wstring(L"<1010101010101010101010101010101010101010101010101010101010101010>"),
-            buf);
-  EXPECT_EQ(68, swprintf(buf, sizeof(buf), L"<%#" PRIb64 ">", 0xaaaaaaaa'aaaaaaaa));
-  EXPECT_EQ(std::wstring(L"<0b1010101010101010101010101010101010101010101010101010101010101010>"),
-            buf);
-#pragma clang diagnostic pop
-
-  EXPECT_EQ(3, swprintf(buf, sizeof(buf), L"<%#b>", 0));
-  EXPECT_EQ(std::wstring(L"<0>"), buf);
+  EXPECT_SWPRINTF(L"<0>", L"<%#b>", 0);
+  EXPECT_SWPRINTF(L"<0>", L"<%#B>", 0);
 #else
   GTEST_SKIP() << "no %b in glibc";
 #endif
 }
 
-TEST(STDIO_TEST, swprintf_B) {
-#if defined(__BIONIC__)
-  wchar_t buf[BUFSIZ];
-
-  uint8_t b = 5;
-  EXPECT_EQ(5, swprintf(buf, sizeof(buf), L"<%" PRIB8 ">", b));
-  EXPECT_EQ(std::wstring(L"<101>"), buf);
-  EXPECT_EQ(10, swprintf(buf, sizeof(buf), L"<%08" PRIB8 ">", b));
-  EXPECT_EQ(std::wstring(L"<00000101>"), buf);
-
-  uint16_t s = 0xaaaa;
-  EXPECT_EQ(18, swprintf(buf, sizeof(buf), L"<%" PRIB16 ">", s));
-  EXPECT_EQ(std::wstring(L"<1010101010101010>"), buf);
-  EXPECT_EQ(20, swprintf(buf, sizeof(buf), L"<%#" PRIB16 ">", s));
-  EXPECT_EQ(std::wstring(L"<0B1010101010101010>"), buf);
-
-  EXPECT_EQ(34, swprintf(buf, sizeof(buf), L"<%" PRIB32 ">", 0xaaaaaaaa));
-  EXPECT_EQ(std::wstring(L"<10101010101010101010101010101010>"), buf);
-  EXPECT_EQ(36, swprintf(buf, sizeof(buf), L"<%#" PRIB32 ">", 0xaaaaaaaa));
-  EXPECT_EQ(std::wstring(L"<0B10101010101010101010101010101010>"), buf);
-
-#pragma clang diagnostic push
-#pragma clang diagnostic ignored "-Wformat"  // clang doesn't like "%lb"
-  EXPECT_EQ(66, swprintf(buf, sizeof(buf), L"<%" PRIB64 ">", 0xaaaaaaaa'aaaaaaaa));
-  EXPECT_EQ(std::wstring(L"<1010101010101010101010101010101010101010101010101010101010101010>"),
-            buf);
-  EXPECT_EQ(68, swprintf(buf, sizeof(buf), L"<%#" PRIB64 ">", 0xaaaaaaaa'aaaaaaaa));
-  EXPECT_EQ(std::wstring(L"<0B1010101010101010101010101010101010101010101010101010101010101010>"),
-            buf);
-#pragma clang diagnostic pop
-
-  EXPECT_EQ(3, swprintf(buf, sizeof(buf), L"<%#B>", 0));
-  EXPECT_EQ(std::wstring(L"<0>"), buf);
-#else
-  GTEST_SKIP() << "no %B in glibc";
-#endif
-}
-
 TEST(STDIO_TEST, scanf_i_decimal) {
   int i;
   EXPECT_EQ(1, sscanf("<123789>", "<%i>", &i));
@@ -3281,30 +3265,47 @@
 #pragma clang diagnostic push
 #pragma clang diagnostic ignored "-Wformat-invalid-specifier"
 #pragma clang diagnostic ignored "-Wconstant-conversion"
-  char buf[BUFSIZ];
   int8_t a = 0b101;
-  snprintf(buf, sizeof(buf), "<%w8b>", a);
-  EXPECT_STREQ("<101>", buf);
+  EXPECT_SNPRINTF("<101>", "<%w8b>", a);
   int8_t b1 = 0xFF;
-  snprintf(buf, sizeof(buf), "<%w8d>", b1);
-  EXPECT_STREQ("<-1>", buf);
+  EXPECT_SNPRINTF("<-1>", "<%w8d>", b1);
   int8_t b2 = 0x1FF;
-  snprintf(buf, sizeof(buf), "<%w8d>", b2);
-  EXPECT_STREQ("<-1>", buf);
+  EXPECT_SNPRINTF("<-1>", "<%w8d>", b2);
   int16_t c = 0xFFFF;
-  snprintf(buf, sizeof(buf), "<%w16i>", c);
-  EXPECT_STREQ("<-1>", buf);
+  EXPECT_SNPRINTF("<-1>", "<%w16i>", c);
   int32_t d = 021;
-  snprintf(buf, sizeof(buf), "<%w32o>", d);
-  EXPECT_STREQ("<21>", buf);
+  EXPECT_SNPRINTF("<21>", "<%w32o>", d);
   uint32_t e = -1;
-  snprintf(buf, sizeof(buf), "<%w32u>", e);
-  EXPECT_STREQ("<4294967295>", buf);
+  EXPECT_SNPRINTF("<4294967295>", "<%w32u>", e);
   int64_t f = 0x3b;
-  snprintf(buf, sizeof(buf), "<%w64x>", f);
-  EXPECT_STREQ("<3b>", buf);
-  snprintf(buf, sizeof(buf), "<%w64X>", f);
-  EXPECT_STREQ("<3B>", buf);
+  EXPECT_SNPRINTF("<3b>", "<%w64x>", f);
+  EXPECT_SNPRINTF("<3B>", "<%w64X>", f);
+#pragma clang diagnostic pop
+#else
+  GTEST_SKIP() << "no %w in glibc";
+#endif
+}
+
+TEST(STDIO_TEST, swprintf_w_base) {
+#if defined(__BIONIC__)
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wformat-invalid-specifier"
+#pragma clang diagnostic ignored "-Wconstant-conversion"
+  int8_t a = 0b101;
+  EXPECT_SWPRINTF(L"<101>", L"<%w8b>", a);
+  int8_t b1 = 0xFF;
+  EXPECT_SWPRINTF(L"<-1>", L"<%w8d>", b1);
+  int8_t b2 = 0x1FF;
+  EXPECT_SWPRINTF(L"<-1>", L"<%w8d>", b2);
+  int16_t c = 0xFFFF;
+  EXPECT_SWPRINTF(L"<-1>", L"<%w16i>", c);
+  int32_t d = 021;
+  EXPECT_SWPRINTF(L"<21>", L"<%w32o>", d);
+  uint32_t e = -1;
+  EXPECT_SWPRINTF(L"<4294967295>", L"<%w32u>", e);
+  int64_t f = 0x3b;
+  EXPECT_SWPRINTF(L"<3b>", L"<%w64x>", f);
+  EXPECT_SWPRINTF(L"<3B>", L"<%w64X>", f);
 #pragma clang diagnostic pop
 #else
   GTEST_SKIP() << "no %w in glibc";
@@ -3316,25 +3317,44 @@
 #pragma clang diagnostic push
 #pragma clang diagnostic ignored "-Wformat-invalid-specifier"
 #pragma clang diagnostic ignored "-Wformat-extra-args"
-  char buf[BUFSIZ];
   int32_t a = 0xaaaaaaaa;
   int64_t b = 0x11111111'22222222;
   int64_t c = 0x33333333'44444444;
   int64_t d = 0xaaaaaaaa'aaaaaaaa;
-  snprintf(buf, sizeof(buf), "<%2$w32b --- %1$w64x>", c, a);
-  EXPECT_STREQ("<10101010101010101010101010101010 --- 3333333344444444>", buf);
-  snprintf(buf, sizeof(buf), "<%3$w64b --- %1$w64x --- %2$w64x>", b, c, d);
-  EXPECT_STREQ(
+  EXPECT_SNPRINTF("<10101010101010101010101010101010 --- 3333333344444444>",
+                  "<%2$w32b --- %1$w64x>", c, a);
+  EXPECT_SNPRINTF(
       "<1010101010101010101010101010101010101010101010101010101010101010 --- 1111111122222222 --- "
       "3333333344444444>",
-      buf);
+      "<%3$w64b --- %1$w64x --- %2$w64x>", b, c, d);
 #pragma clang diagnostic pop
 #else
   GTEST_SKIP() << "no %w in glibc";
 #endif
 }
 
-TEST(STDIO_TEST, snprintf_invalid_w_width) {
+TEST(STDIO_TEST, swprintf_w_arguments_reordering) {
+#if defined(__BIONIC__)
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wformat-invalid-specifier"
+#pragma clang diagnostic ignored "-Wformat-extra-args"
+  int32_t a = 0xaaaaaaaa;
+  int64_t b = 0x11111111'22222222;
+  int64_t c = 0x33333333'44444444;
+  int64_t d = 0xaaaaaaaa'aaaaaaaa;
+  EXPECT_SWPRINTF(L"<10101010101010101010101010101010 --- 3333333344444444>",
+                  L"<%2$w32b --- %1$w64x>", c, a);
+  EXPECT_SWPRINTF(
+      L"<1010101010101010101010101010101010101010101010101010101010101010 --- 1111111122222222 --- "
+      L"3333333344444444>",
+      L"<%3$w64b --- %1$w64x --- %2$w64x>", b, c, d);
+#pragma clang diagnostic pop
+#else
+  GTEST_SKIP() << "no %w in glibc";
+#endif
+}
+
+TEST_F(STDIO_DEATHTEST, snprintf_invalid_w_width) {
 #if defined(__BIONIC__)
 #pragma clang diagnostic push
 #pragma clang diagnostic ignored "-Wformat-invalid-specifier"
@@ -3347,64 +3367,7 @@
 #endif
 }
 
-TEST(STDIO_TEST, swprintf_w_base) {
-#if defined(__BIONIC__)
-#pragma clang diagnostic push
-#pragma clang diagnostic ignored "-Wformat-invalid-specifier"
-#pragma clang diagnostic ignored "-Wconstant-conversion"
-  wchar_t buf[BUFSIZ];
-  int8_t a = 0b101;
-  swprintf(buf, sizeof(buf), L"<%w8b>", a);
-  EXPECT_EQ(std::wstring(L"<101>"), buf);
-  int8_t b1 = 0xFF;
-  swprintf(buf, sizeof(buf), L"<%w8d>", b1);
-  EXPECT_EQ(std::wstring(L"<-1>"), buf);
-  int8_t b2 = 0x1FF;
-  swprintf(buf, sizeof(buf), L"<%w8d>", b2);
-  EXPECT_EQ(std::wstring(L"<-1>"), buf);
-  int16_t c = 0xFFFF;
-  swprintf(buf, sizeof(buf), L"<%w16i>", c);
-  EXPECT_EQ(std::wstring(L"<-1>"), buf);
-  int32_t d = 021;
-  swprintf(buf, sizeof(buf), L"<%w32o>", d);
-  EXPECT_EQ(std::wstring(L"<21>"), buf);
-  uint32_t e = -1;
-  swprintf(buf, sizeof(buf), L"<%w32u>", e);
-  EXPECT_EQ(std::wstring(L"<4294967295>"), buf);
-  int64_t f = 0x3b;
-  swprintf(buf, sizeof(buf), L"<%w64x>", f);
-  EXPECT_EQ(std::wstring(L"<3b>"), buf);
-  swprintf(buf, sizeof(buf), L"<%w64X>", f);
-  EXPECT_EQ(std::wstring(L"<3B>"), buf);
-#pragma clang diagnostic pop
-#else
-  GTEST_SKIP() << "no %w in glibc";
-#endif
-}
-
-TEST(STDIO_TEST, swprintf_w_arguments_reordering) {
-#if defined(__BIONIC__)
-#pragma clang diagnostic push
-#pragma clang diagnostic ignored "-Wformat-invalid-specifier"
-#pragma clang diagnostic ignored "-Wformat-extra-args"
-  wchar_t buf[BUFSIZ];
-  int32_t a = 0xaaaaaaaa;
-  int64_t b = 0x11111111'22222222;
-  int64_t c = 0x33333333'44444444;
-  int64_t d = 0xaaaaaaaa'aaaaaaaa;
-  swprintf(buf, sizeof(buf), L"<%2$w32b --- %1$w64x>", c, a);
-  EXPECT_EQ(std::wstring(L"<10101010101010101010101010101010 --- 3333333344444444>"), buf);
-  swprintf(buf, sizeof(buf), L"<%3$w64b --- %1$w64x --- %2$w64x>", b, c, d);
-  EXPECT_EQ(std::wstring(L"<1010101010101010101010101010101010101010101010101010101010101010 --- "
-                         L"1111111122222222 --- 3333333344444444>"),
-            buf);
-#pragma clang diagnostic pop
-#else
-  GTEST_SKIP() << "no %w in glibc";
-#endif
-}
-
-TEST(STDIO_TEST, swprintf_invalid_w_width) {
+TEST_F(STDIO_DEATHTEST, swprintf_invalid_w_width) {
 #if defined(__BIONIC__)
 #pragma clang diagnostic push
 #pragma clang diagnostic ignored "-Wformat-invalid-specifier"
@@ -3415,4 +3378,362 @@
 #else
   GTEST_SKIP() << "no %w in glibc";
 #endif
-}
\ No newline at end of file
+}
+
+TEST(STDIO_TEST, snprintf_wf_base) {
+#if defined(__BIONIC__)
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wconstant-conversion"
+#pragma clang diagnostic ignored "-Wformat"
+#pragma clang diagnostic ignored "-Wformat-invalid-specifier"
+  int_fast8_t a = 0b101;
+  EXPECT_SNPRINTF("<101>", "<%wf8b>", a);
+  int_fast8_t b = 0x12341234'12341234;
+  EXPECT_SNPRINTF("<34>", "<%wf8x>", b);
+  uint_fast16_t c = 0x11111111'22222222;
+#if defined(__LP64__)
+  EXPECT_SNPRINTF("<1111111122222222>", "<%wf16x>", c);
+#else
+  EXPECT_SNPRINTF("<22222222>", "<%wf16x>", c);
+#endif
+  int_fast32_t d = 0x33333333'44444444;
+#if defined(__LP64__)
+  EXPECT_SNPRINTF("<3333333344444444>", "<%wf32x>", d);
+#else
+  EXPECT_SNPRINTF("<44444444>", "<%wf32x>", d);
+#endif
+  int_fast64_t e = 0xaaaaaaaa'aaaaaaaa;
+  EXPECT_SNPRINTF("<aaaaaaaaaaaaaaaa>", "<%wf64x>", e);
+  EXPECT_SNPRINTF("<AAAAAAAAAAAAAAAA>", "<%wf64X>", e);
+#pragma clang diagnostic pop
+#else
+  GTEST_SKIP() << "no %wf in glibc";
+#endif
+}
+TEST(STDIO_TEST, swprintf_wf_base) {
+#if defined(__BIONIC__)
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wconstant-conversion"
+#pragma clang diagnostic ignored "-Wformat"
+#pragma clang diagnostic ignored "-Wformat-invalid-specifier"
+  int_fast8_t a = 0b101;
+  EXPECT_SWPRINTF(L"<101>", L"<%wf8b>", a);
+  int_fast8_t b = 0x12341234'12341234;
+  EXPECT_SWPRINTF(L"<34>", L"<%wf8x>", b);
+  uint_fast16_t c = 0x11111111'22222222;
+#if defined(__LP64__)
+  EXPECT_SWPRINTF(L"<1111111122222222>", L"<%wf16x>", c);
+#else
+  EXPECT_SWPRINTF(L"<22222222>", L"<%wf16x>", c);
+#endif
+  int_fast32_t d = 0x33333333'44444444;
+#if defined(__LP64__)
+  EXPECT_SWPRINTF(L"<3333333344444444>", L"<%wf32x>", d);
+#else
+  EXPECT_SWPRINTF(L"<44444444>", L"<%wf32x>", d);
+#endif
+  int_fast64_t e = 0xaaaaaaaa'aaaaaaaa;
+  EXPECT_SWPRINTF(L"<aaaaaaaaaaaaaaaa>", L"<%wf64x>", e);
+  EXPECT_SWPRINTF(L"<AAAAAAAAAAAAAAAA>", L"<%wf64X>", e);
+#pragma clang diagnostic pop
+#else
+  GTEST_SKIP() << "no %wf in glibc";
+#endif
+}
+
+TEST(STDIO_TEST, snprintf_wf_arguments_reordering) {
+#if defined(__BIONIC__)
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wconstant-conversion"
+#pragma clang diagnostic ignored "-Wformat"
+#pragma clang diagnostic ignored "-Wformat-extra-args"
+#pragma clang diagnostic ignored "-Wformat-invalid-specifier"
+  int_fast16_t a = 0x11111111'22222222;
+  int_fast32_t b = 0x33333333'44444444;
+  int_fast32_t c = 0xaaaaaaaa'aaaaaaaa;
+#if defined(__LP64__)
+  EXPECT_SNPRINTF(
+      "<3333333344444444 --- 1010101010101010101010101010101010101010101010101010101010101010>",
+      "<%2$wf32x --- %1$wf32b>", c, b);
+
+  EXPECT_SNPRINTF(
+      "<1010101010101010101010101010101010101010101010101010101010101010 --- 1111111122222222 --- "
+      "3333333344444444>",
+      "<%3$wf32b --- %1$wf16x --- %2$wf32x>", a, b, c);
+#else
+  EXPECT_SNPRINTF("<44444444 --- 10101010101010101010101010101010>", "<%2$wf32x --- %1$wf32b>", c,
+                  b);
+  EXPECT_SNPRINTF("<10101010101010101010101010101010 --- 22222222 --- 44444444>",
+                  "<%3$wf32b --- %1$wf16x --- %2$wf32x>", a, b, c);
+#endif
+#pragma clang diagnostic pop
+#else
+  GTEST_SKIP() << "no %w in glibc";
+#endif
+}
+
+TEST(STDIO_TEST, swprintf_wf_arguments_reordering) {
+#if defined(__BIONIC__)
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wconstant-conversion"
+#pragma clang diagnostic ignored "-Wformat"
+#pragma clang diagnostic ignored "-Wformat-extra-args"
+#pragma clang diagnostic ignored "-Wformat-invalid-specifier"
+  int_fast16_t a = 0x11111111'22222222;
+  int_fast32_t b = 0x33333333'44444444;
+  int_fast32_t c = 0xaaaaaaaa'aaaaaaaa;
+#if defined(__LP64__)
+  EXPECT_SWPRINTF(
+      L"<3333333344444444 --- 1010101010101010101010101010101010101010101010101010101010101010>",
+      L"<%2$wf32x --- %1$wf32b>", c, b);
+
+  EXPECT_SWPRINTF(
+      L"<1010101010101010101010101010101010101010101010101010101010101010 --- 1111111122222222 --- "
+      L"3333333344444444>",
+      L"<%3$wf32b --- %1$wf16x --- %2$wf32x>", a, b, c);
+#else
+  EXPECT_SWPRINTF(L"<44444444 --- 10101010101010101010101010101010>", L"<%2$wf32x --- %1$wf32b>", c,
+                  b);
+  EXPECT_SWPRINTF(L"<10101010101010101010101010101010 --- 22222222 --- 44444444>",
+                  L"<%3$wf32b --- %1$wf16x --- %2$wf32x>", a, b, c);
+#endif
+#pragma clang diagnostic pop
+#else
+  GTEST_SKIP() << "no %w in glibc";
+#endif
+}
+
+TEST_F(STDIO_DEATHTEST, snprintf_invalid_wf_width) {
+#if defined(__BIONIC__)
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wformat"
+#pragma clang diagnostic ignored "-Wformat-invalid-specifier"
+  char buf[BUFSIZ];
+  int_fast32_t a = 100;
+  EXPECT_DEATH(snprintf(buf, sizeof(buf), "%wf20d", &a), "%wf20 is unsupported");
+#pragma clang diagnostic pop
+#else
+  GTEST_SKIP() << "no %w in glibc";
+#endif
+}
+
+TEST_F(STDIO_DEATHTEST, swprintf_invalid_wf_width) {
+#if defined(__BIONIC__)
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wformat"
+#pragma clang diagnostic ignored "-Wformat-invalid-specifier"
+  wchar_t buf[BUFSIZ];
+  int_fast32_t a = 100;
+  EXPECT_DEATH(swprintf(buf, sizeof(buf), L"%wf20d", &a), "%wf20 is unsupported");
+#pragma clang diagnostic pop
+#else
+  GTEST_SKIP() << "no %w in glibc";
+#endif
+}
+
+TEST(STDIO_TEST, sscanf_w_or_wf_base) {
+#if defined(__BIONIC__)
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wformat"
+#pragma clang diagnostic ignored "-Wformat-invalid-specifier"
+  int8_t a;
+  EXPECT_EQ(1, sscanf("<0b101>", "<%w8b>", &a));
+  EXPECT_EQ(0b101, a);
+  int_fast8_t fast_a;
+  EXPECT_EQ(1, sscanf("<0b101>", "<%wf8b>", &fast_a));
+  EXPECT_EQ(0b101, fast_a);
+  int8_t b1;
+  EXPECT_EQ(1, sscanf("<0xFF>", "<%w8i>", &b1));
+  EXPECT_EQ(-1, b1);
+  int8_t b2;
+  EXPECT_EQ(1, sscanf("<0x1FF>", "<%w8i>", &b2));
+  EXPECT_EQ(-1, b2);
+  int_fast8_t fast_b;
+  EXPECT_EQ(1, sscanf("<0x1234123412341234>", "<%wf8x>", &fast_b));
+  EXPECT_EQ(0x34, fast_b);
+  int16_t c1;
+  EXPECT_EQ(1, sscanf("<0xFFFF>", "<%w16i>", &c1));
+  EXPECT_EQ(-1, c1);
+  uint16_t c2;
+  EXPECT_EQ(1, sscanf("<64>", "<%w16d>", &c2));
+  EXPECT_EQ(64, c2);
+  int_fast16_t fast_c;
+#if defined(__LP64__)
+  EXPECT_EQ(1, sscanf("<0x1111111122222222>", "<%wf16x>", &fast_c));
+  EXPECT_EQ(0x1111111122222222, fast_c);
+#else
+  EXPECT_EQ(1, sscanf("<0x1111111122222222>", "<%wf16x>", &fast_c));
+  EXPECT_EQ(0x22222222, fast_c);
+#endif
+  int32_t d;
+  EXPECT_EQ(1, sscanf("<021>", "<%w32o>", &d));
+  EXPECT_EQ(021, d);
+  int_fast32_t fast_d;
+#if defined(__LP64__)
+  EXPECT_EQ(1, sscanf("<0x3333333344444444>", "<%wf32x>", &fast_d));
+  EXPECT_EQ(0x3333333344444444, fast_d);
+#else
+  EXPECT_EQ(1, sscanf("<0x3333333344444444>", "<%wf32x>", &fast_d));
+  EXPECT_EQ(0x44444444, fast_d);
+#endif
+  uint32_t e;
+  EXPECT_EQ(1, sscanf("<-1>", "<%w32u>", &e));
+  EXPECT_EQ(4294967295, e);
+  int64_t f;
+  EXPECT_EQ(1, sscanf("<0x3b>", "<%w64x>", &f));
+  EXPECT_EQ(0x3b, f);
+  EXPECT_EQ(1, sscanf("<0x3b>", "<%w64X>", &f));
+  EXPECT_EQ(0x3B, f);
+  uint_fast64_t fast_f;
+  EXPECT_EQ(1, sscanf("<0xaaaaaaaa>", "<%wf64x>", &fast_f));
+  EXPECT_EQ(0xaaaaaaaa, fast_f);
+  EXPECT_EQ(1, sscanf("<0xaaaaaaaa>", "<%wf64X>", &fast_f));
+  EXPECT_EQ(0xAAAAAAAA, fast_f);
+#pragma clang diagnostic pop
+#else
+  GTEST_SKIP() << "no %w in glibc";
+#endif
+}
+
+TEST(STDIO_TEST, sscanf_w_combination) {
+#if defined(__BIONIC__)
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wformat"
+#pragma clang diagnostic ignored "-Wformat-invalid-specifier"
+#pragma clang diagnostic ignored "-Wformat-extra-args"
+  uint32_t a;
+  int64_t b;
+  char c;
+
+  EXPECT_EQ(3, sscanf("<0b10101010101010101010101010101010 0x3333333344444444 1>",
+                      "<%w32b %w64x %c>", &a, &b, &c));
+  EXPECT_EQ(0xaaaaaaaa, a);
+  EXPECT_EQ(0x3333333344444444, b);
+  EXPECT_EQ('1', c);
+#pragma clang diagnostic pop
+#else
+  GTEST_SKIP() << "no %w in glibc";
+#endif
+}
+
+TEST_F(STDIO_DEATHTEST, sscanf_invalid_w_or_wf_width) {
+#if defined(__BIONIC__)
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wformat"
+#pragma clang diagnostic ignored "-Wformat-invalid-specifier"
+  int32_t a;
+  EXPECT_DEATH(sscanf("<100>", "<%w20d>", &a), "%w20 is unsupported");
+  int_fast32_t fast_a;
+  EXPECT_DEATH(sscanf("<100>", "<%wf20d>", &fast_a), "%wf20 is unsupported");
+#pragma clang diagnostic pop
+#else
+  GTEST_SKIP() << "no %w in glibc";
+#endif
+}
+
+TEST(STDIO_TEST, swscanf_w_or_wf_base) {
+#if defined(__BIONIC__)
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wformat"
+#pragma clang diagnostic ignored "-Wformat-invalid-specifier"
+  int8_t a;
+  EXPECT_EQ(1, swscanf(L"<0b101>", L"<%w8b>", &a));
+  EXPECT_EQ(0b101, a);
+  int_fast8_t fast_a;
+  EXPECT_EQ(1, swscanf(L"<0b101>", L"<%wf8b>", &fast_a));
+  EXPECT_EQ(0b101, fast_a);
+  int8_t b1;
+  EXPECT_EQ(1, swscanf(L"<0xFF>", L"<%w8i>", &b1));
+  EXPECT_EQ(-1, b1);
+  int8_t b2;
+  EXPECT_EQ(1, swscanf(L"<0x1FF>", L"<%w8i>", &b2));
+  EXPECT_EQ(-1, b2);
+  int_fast8_t fast_b;
+  EXPECT_EQ(1, swscanf(L"<0x1234123412341234>", L"<%wf8i>", &fast_b));
+  EXPECT_EQ(0x34, fast_b);
+  int16_t c1;
+  EXPECT_EQ(1, swscanf(L"<0xFFFF>", L"<%w16i>", &c1));
+  EXPECT_EQ(-1, c1);
+  uint16_t c2;
+  EXPECT_EQ(1, swscanf(L"<64>", L"<%w16d>", &c2));
+  EXPECT_EQ(64, c2);
+  int_fast16_t fast_c;
+#if defined(__LP64__)
+  EXPECT_EQ(1, swscanf(L"<0x1111111122222222>", L"<%wf16x>", &fast_c));
+  EXPECT_EQ(0x1111111122222222, fast_c);
+#else
+  EXPECT_EQ(1, swscanf(L"<0x1111111122222222>", L"<%wf16x>", &fast_c));
+  EXPECT_EQ(0x22222222, fast_c);
+#endif
+  int32_t d;
+  EXPECT_EQ(1, swscanf(L"<021>", L"<%w32o>", &d));
+  EXPECT_EQ(021, d);
+  int_fast32_t fast_d;
+#if defined(__LP64__)
+  EXPECT_EQ(1, swscanf(L"<0x3333333344444444>", L"<%wf32x>", &fast_d));
+  EXPECT_EQ(0x3333333344444444, fast_d);
+#else
+  EXPECT_EQ(1, swscanf(L"<0x3333333344444444>", L"<%wf32x>", &fast_d));
+  EXPECT_EQ(0x44444444, fast_d);
+#endif
+  uint32_t e;
+  EXPECT_EQ(1, swscanf(L"<-1>", L"<%w32u>", &e));
+  EXPECT_EQ(4294967295, e);
+  int64_t f;
+  EXPECT_EQ(1, swscanf(L"<0x3b>", L"<%w64x>", &f));
+  EXPECT_EQ(0x3b, f);
+  EXPECT_EQ(1, swscanf(L"<0x3b>", L"<%w64X>", &f));
+  EXPECT_EQ(0x3B, f);
+  uint_fast64_t fast_f;
+  EXPECT_EQ(1, swscanf(L"<0xaaaaaaaa>", L"<%wf64x>", &fast_f));
+  EXPECT_EQ(0xaaaaaaaa, fast_f);
+  EXPECT_EQ(1, swscanf(L"<0xaaaaaaaa>", L"<%wf64X>", &fast_f));
+  EXPECT_EQ(0xAAAAAAAA, fast_f);
+#pragma clang diagnostic pop
+#else
+  GTEST_SKIP() << "no %w in glibc";
+#endif
+}
+
+TEST(STDIO_TEST, swscanf_w_combination) {
+#if defined(__BIONIC__)
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wformat"
+#pragma clang diagnostic ignored "-Wformat-invalid-specifier"
+#pragma clang diagnostic ignored "-Wformat-extra-args"
+  uint32_t a;
+  int64_t b;
+  char c;
+
+  EXPECT_EQ(3, swscanf(L"<0b10101010101010101010101010101010 0x3333333344444444 1>",
+                       L"<%w32b %w64x %c>", &a, &b, &c));
+  EXPECT_EQ(0xaaaaaaaa, a);
+  EXPECT_EQ(0x3333333344444444, b);
+  EXPECT_EQ('1', c);
+#pragma clang diagnostic pop
+#else
+  GTEST_SKIP() << "no %w in glibc";
+#endif
+}
+
+TEST_F(STDIO_DEATHTEST, swscanf_invalid_w_or_wf_width) {
+#if defined(__BIONIC__)
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wformat"
+#pragma clang diagnostic ignored "-Wformat-invalid-specifier"
+  int32_t a;
+  EXPECT_DEATH(swscanf(L"<100>", L"<%w20d>", &a), "%w20 is unsupported");
+  int_fast32_t fast_a;
+  EXPECT_DEATH(swscanf(L"<100>", L"<%wf20d>", &fast_a), "%wf20 is unsupported");
+#pragma clang diagnostic pop
+#else
+  GTEST_SKIP() << "no %w in glibc";
+#endif
+}
+
+TEST(STDIO_TEST, printf_lc_0) {
+  // https://austingroupbugs.net/view.php?id=1647
+  char buf[BUFSIZ];
+  EXPECT_EQ(3, snprintf(buf, sizeof(buf), "<%lc>", L'\0'));
+  EXPECT_TRUE(!memcmp(buf, "<\0>", 3));
+}
diff --git a/tests/stdlib_test.cpp b/tests/stdlib_test.cpp
index 45169e3..fac9b9b 100644
--- a/tests/stdlib_test.cpp
+++ b/tests/stdlib_test.cpp
@@ -29,6 +29,7 @@
 
 #include <limits>
 #include <string>
+#include <thread>
 
 #include <android-base/file.h>
 #include <android-base/macros.h>
@@ -279,7 +280,7 @@
     for (size_t fail_align = last_align + 1; fail_align < align; fail_align++) {
       ASSERT_TRUE(aligned_alloc(fail_align, fail_align) == nullptr)
           << "Unexpected success at align " << fail_align;
-      ASSERT_EQ(EINVAL, errno) << "Unexpected errno at align " << fail_align;
+      ASSERT_ERRNO(EINVAL) << "Unexpected errno at align " << fail_align;
     }
     void* ptr = aligned_alloc(align, 2 * align);
     ASSERT_TRUE(ptr != nullptr) << "Unexpected failure at align " << align;
@@ -310,21 +311,21 @@
   const char* path = nullptr;
   char* p = realpath(path, nullptr);
   ASSERT_TRUE(p == nullptr);
-  ASSERT_EQ(EINVAL, errno);
+  ASSERT_ERRNO(EINVAL);
 }
 
 TEST(stdlib, realpath__empty_filename) {
   errno = 0;
   char* p = realpath("", nullptr);
   ASSERT_TRUE(p == nullptr);
-  ASSERT_EQ(ENOENT, errno);
+  ASSERT_ERRNO(ENOENT);
 }
 
 TEST(stdlib, realpath__ENOENT) {
   errno = 0;
   char* p = realpath("/this/directory/path/almost/certainly/does/not/exist", nullptr);
   ASSERT_TRUE(p == nullptr);
-  ASSERT_EQ(ENOENT, errno);
+  ASSERT_ERRNO(ENOENT);
 }
 
 TEST(stdlib, realpath__ELOOP) {
@@ -335,19 +336,19 @@
   errno = 0;
   char* p = realpath(link.c_str(), nullptr);
   ASSERT_TRUE(p == nullptr);
-  ASSERT_EQ(ELOOP, errno);
+  ASSERT_ERRNO(ELOOP);
 }
 
 TEST(stdlib, realpath__component_after_non_directory) {
   errno = 0;
   char* p = realpath("/dev/null/.", nullptr);
   ASSERT_TRUE(p == nullptr);
-  ASSERT_EQ(ENOTDIR, errno);
+  ASSERT_ERRNO(ENOTDIR);
 
   errno = 0;
   p = realpath("/dev/null/..", nullptr);
   ASSERT_TRUE(p == nullptr);
-  ASSERT_EQ(ENOTDIR, errno);
+  ASSERT_ERRNO(ENOTDIR);
 }
 
 TEST(stdlib, realpath) {
@@ -403,7 +404,7 @@
   errno = 0;
   char* result = realpath(path.c_str(), nullptr);
   ASSERT_EQ(nullptr, result) << result;
-  ASSERT_EQ(ENOENT, errno);
+  ASSERT_ERRNO(ENOENT);
   free(result);
 }
 
@@ -430,6 +431,31 @@
   ASSERT_STREQ("charlie", entries[2].name);
 }
 
+TEST(stdlib, qsort_r) {
+  struct s {
+    char name[16];
+    static int comparator(const void* lhs, const void* rhs, void* context) {
+      int* count_p = reinterpret_cast<int*>(context);
+      *count_p += 1;
+      return strcmp(reinterpret_cast<const s*>(lhs)->name, reinterpret_cast<const s*>(rhs)->name);
+    }
+  };
+  s entries[3];
+  strcpy(entries[0].name, "charlie");
+  strcpy(entries[1].name, "bravo");
+  strcpy(entries[2].name, "alpha");
+
+  int count;
+  void* context = &count;
+
+  count = 0;
+  qsort_r(entries, 3, sizeof(s), s::comparator, context);
+  ASSERT_STREQ("alpha", entries[0].name);
+  ASSERT_STREQ("bravo", entries[1].name);
+  ASSERT_STREQ("charlie", entries[2].name);
+  ASSERT_EQ(count, 3);
+}
+
 static void* TestBug57421_child(void* arg) {
   pthread_t main_thread = reinterpret_cast<pthread_t>(arg);
   pthread_join(main_thread, nullptr);
@@ -493,7 +519,7 @@
 
 TEST(stdlib, system_NULL) {
   // "The system() function shall always return non-zero when command is NULL."
-  // http://pubs.opengroup.org/onlinepubs/9699919799/functions/system.html
+  // https://pubs.opengroup.org/onlinepubs/9799919799.2024edition/functions/system.html
 #pragma clang diagnostic push
 #pragma clang diagnostic ignored "-Wnonnull"
   ASSERT_NE(0, system(nullptr));
@@ -650,6 +676,58 @@
   AssertChildExited(pid, 99);
 }
 
+static void exit_from_atexit_func4() {
+  std::thread([] { exit(4); }).detach();
+  usleep(1000);
+  fprintf(stderr, "4");
+}
+
+static void exit_from_atexit_func3() {
+  std::thread([] { exit(3); }).detach();
+  fprintf(stderr, "3");
+  usleep(1000);
+  // This should cause us to exit with status 99,
+  // but not before printing "4",
+  // and without re-running the previous atexit handlers.
+  exit(99);
+}
+
+static void exit_from_atexit_func2() {
+  std::thread([] { exit(2); }).detach();
+  fprintf(stderr, "2");
+  usleep(1000);
+  // Register another atexit handler from within an atexit handler.
+  atexit(exit_from_atexit_func3);
+}
+
+static void exit_from_atexit_func1() {
+  // These atexit handlers all spawn another thread that tries to exit,
+  // and sleep to try to lose the race.
+  // The lock in exit() should ensure that only the first thread to call
+  // exit() can ever win (but see exit_from_atexit_func3() for a subtelty).
+  std::thread([] { exit(1); }).detach();
+  usleep(1000);
+  fprintf(stderr, "1");
+}
+
+static void exit_torturer() {
+  atexit(exit_from_atexit_func4);
+  // We deliberately don't register exit_from_atexit_func3() here;
+  // see exit_from_atexit_func2().
+  atexit(exit_from_atexit_func2);
+  atexit(exit_from_atexit_func1);
+  exit(0);
+}
+
+TEST(stdlib, exit_torture) {
+  // Test that the atexit() handlers are run in the defined order (reverse
+  // order of registration), even though one of them is registered by another
+  // when it runs, and that we get the exit code from the last call to exit()
+  // on the first thread to call exit() (rather than one of the other threads
+  // or a deadlock from the second call on the same thread).
+  ASSERT_EXIT(exit_torturer(), testing::ExitedWithCode(99), "1234");
+}
+
 TEST(unistd, _Exit) {
   pid_t pid = fork();
   ASSERT_NE(-1, pid) << strerror(errno);
@@ -695,7 +773,7 @@
   errno = 0;
   char buf[128];
   ASSERT_EQ(ENOTTY, ptsname_r(STDOUT_FILENO, buf, sizeof(buf)));
-  ASSERT_EQ(ENOTTY, errno);
+  ASSERT_ERRNO(ENOTTY);
 }
 
 TEST(stdlib, ptsname_r_EINVAL) {
@@ -704,7 +782,7 @@
   errno = 0;
   char* buf = nullptr;
   ASSERT_EQ(EINVAL, ptsname_r(fd, buf, 128));
-  ASSERT_EQ(EINVAL, errno);
+  ASSERT_ERRNO(EINVAL);
   close(fd);
 }
 
@@ -714,7 +792,7 @@
   errno = 0;
   char buf[1];
   ASSERT_EQ(ERANGE, ptsname_r(fd, buf, sizeof(buf)));
-  ASSERT_EQ(ERANGE, errno);
+  ASSERT_ERRNO(ERANGE);
   close(fd);
 }
 
@@ -745,7 +823,7 @@
   errno = 0;
   char buf[128];
   ASSERT_EQ(ENOTTY, ttyname_r(fd, buf, sizeof(buf)));
-  ASSERT_EQ(ENOTTY, errno);
+  ASSERT_ERRNO(ENOTTY);
   close(fd);
 }
 
@@ -755,7 +833,7 @@
   errno = 0;
   char* buf = nullptr;
   ASSERT_EQ(EINVAL, ttyname_r(fd, buf, 128));
-  ASSERT_EQ(EINVAL, errno);
+  ASSERT_ERRNO(EINVAL);
   close(fd);
 }
 
@@ -765,7 +843,7 @@
   errno = 0;
   char buf[1];
   ASSERT_EQ(ERANGE, ttyname_r(fd, buf, sizeof(buf)));
-  ASSERT_EQ(ERANGE, errno);
+  ASSERT_ERRNO(ERANGE);
   close(fd);
 }
 
@@ -773,7 +851,7 @@
   int fd = open("/dev/null", O_WRONLY);
   errno = 0;
   ASSERT_EQ(-1, unlockpt(fd));
-  ASSERT_EQ(ENOTTY, errno);
+  ASSERT_ERRNO(ENOTTY);
   close(fd);
 }
 
@@ -830,17 +908,17 @@
   // Negative base => invalid.
   errno = 0;
   ASSERT_EQ(T(0), fn("123", &end_p, -1));
-  ASSERT_EQ(EINVAL, errno);
+  ASSERT_ERRNO(EINVAL);
 
   // Base 1 => invalid (base 0 means "please guess").
   errno = 0;
   ASSERT_EQ(T(0), fn("123", &end_p, 1));
-  ASSERT_EQ(EINVAL, errno);
+  ASSERT_ERRNO(EINVAL);
 
   // Base > 36 => invalid.
   errno = 0;
   ASSERT_EQ(T(0), fn("123", &end_p, 37));
-  ASSERT_EQ(EINVAL, errno);
+  ASSERT_ERRNO(EINVAL);
 
   // Both leading + or - are always allowed (even for the strtou* family).
   ASSERT_EQ(T(-123), fn("-123", &end_p, 10));
@@ -875,14 +953,14 @@
     end_p = nullptr;
     errno = 0;
     ASSERT_EQ(std::numeric_limits<T>::min(), fn(min.c_str(), &end_p, 0));
-    ASSERT_EQ(0, errno);
+    ASSERT_ERRNO(0);
     ASSERT_EQ('\0', *end_p);
     // Too negative (such as -129).
     min.back() = (min.back() + 1);
     end_p = nullptr;
     errno = 0;
     ASSERT_EQ(std::numeric_limits<T>::min(), fn(min.c_str(), &end_p, 0));
-    ASSERT_EQ(ERANGE, errno);
+    ASSERT_ERRNO(ERANGE);
     ASSERT_EQ('\0', *end_p);
   }
 
@@ -891,30 +969,36 @@
   end_p = nullptr;
   errno = 0;
   ASSERT_EQ(std::numeric_limits<T>::max(), fn(max.c_str(), &end_p, 0));
-  ASSERT_EQ(0, errno);
+  ASSERT_ERRNO(0);
   ASSERT_EQ('\0', *end_p);
   // Too positive (such as 128).
   max.back() = (max.back() + 1);
   end_p = nullptr;
   errno = 0;
   ASSERT_EQ(std::numeric_limits<T>::max(), fn(max.c_str(), &end_p, 0));
-  ASSERT_EQ(ERANGE, errno);
+  ASSERT_ERRNO(ERANGE);
   ASSERT_EQ('\0', *end_p);
 
+  // Junk at the end of a valid conversion.
+  errno = 0;
+  ASSERT_EQ(static_cast<T>(123), fn("123abc", &end_p, 0));
+  ASSERT_ERRNO(0);
+  ASSERT_STREQ("abc", end_p);
+
   // In case of overflow, strto* leaves us pointing past the end of the number,
   // not at the digit that overflowed.
   end_p = nullptr;
   errno = 0;
   ASSERT_EQ(std::numeric_limits<T>::max(),
             fn("99999999999999999999999999999999999999999999999999999abc", &end_p, 0));
-  ASSERT_EQ(ERANGE, errno);
+  ASSERT_ERRNO(ERANGE);
   ASSERT_STREQ("abc", end_p);
   if (std::numeric_limits<T>::is_signed) {
       end_p = nullptr;
       errno = 0;
       ASSERT_EQ(std::numeric_limits<T>::min(),
                 fn("-99999999999999999999999999999999999999999999999999999abc", &end_p, 0));
-      ASSERT_EQ(ERANGE, errno);
+      ASSERT_ERRNO(ERANGE);
       ASSERT_STREQ("abc", end_p);
   }
 }
diff --git a/tests/string_test.cpp b/tests/string_test.cpp
index 38957e2..502405f 100644
--- a/tests/string_test.cpp
+++ b/tests/string_test.cpp
@@ -29,6 +29,7 @@
 #include <vector>
 
 #include "buffer_tests.h"
+#include "utils.h"
 
 #if defined(NOFORTIFY)
 #define STRING_TEST string_nofortify
@@ -123,7 +124,7 @@
   ASSERT_EQ(buf, strerror_r(4567, buf, 2));
   ASSERT_STREQ("U", buf);
   // The GNU strerror_r doesn't set errno (the POSIX one sets it to ERANGE).
-  ASSERT_EQ(0, errno);
+  ASSERT_ERRNO(0);
 #else
   GTEST_SKIP() << "musl doesn't have GNU strerror_r";
 #endif
@@ -318,33 +319,34 @@
 // one byte target with "\0" source
 TEST(STRING_TEST, stpcpy2) {
   char buf[1];
+  memset(buf, 'A', sizeof(buf));
   char* orig = strdup("");
-  ASSERT_EQ(buf, stpcpy(buf, orig));
-  ASSERT_EQ('\0', buf[0]);
+  EXPECT_EQ(buf, stpcpy(buf, orig));
+  EXPECT_EQ('\0', buf[0]);
   free(orig);
 }
 
 // multibyte target where we under fill target
 TEST(STRING_TEST, stpcpy3) {
   char buf[10];
-  char* orig = strdup("12345");
   memset(buf, 'A', sizeof(buf));
-  ASSERT_EQ(buf+strlen(orig), stpcpy(buf, orig));
-  ASSERT_STREQ("12345", buf);
-  ASSERT_EQ('A',  buf[6]);
-  ASSERT_EQ('A',  buf[7]);
-  ASSERT_EQ('A',  buf[8]);
-  ASSERT_EQ('A',  buf[9]);
+  char* orig = strdup("12345");
+  EXPECT_EQ(buf+strlen(orig), stpcpy(buf, orig));
+  EXPECT_STREQ("12345", buf);
+  EXPECT_EQ('A',  buf[6]);
+  EXPECT_EQ('A',  buf[7]);
+  EXPECT_EQ('A',  buf[8]);
+  EXPECT_EQ('A',  buf[9]);
   free(orig);
 }
 
 // multibyte target where we fill target exactly
 TEST(STRING_TEST, stpcpy4) {
   char buf[10];
-  char* orig = strdup("123456789");
   memset(buf, 'A', sizeof(buf));
-  ASSERT_EQ(buf+strlen(orig), stpcpy(buf, orig));
-  ASSERT_STREQ("123456789", buf);
+  char* orig = strdup("123456789");
+  EXPECT_EQ(buf+strlen(orig), stpcpy(buf, orig));
+  EXPECT_STREQ("123456789", buf);
   free(orig);
 }
 
@@ -738,15 +740,11 @@
     // Set the second half of ptr to the expected pattern in ptr2.
     memset(state.ptr + state.MAX_LEN, '\1', state.MAX_LEN);
     memcpy(state.ptr + state.MAX_LEN, state.ptr1, copy_len);
-    size_t expected_end;
     if (copy_len > ptr1_len) {
       memset(state.ptr + state.MAX_LEN + ptr1_len, '\0', copy_len - ptr1_len);
-      expected_end = ptr1_len;
-    } else {
-      expected_end = copy_len;
     }
 
-    ASSERT_EQ(state.ptr2 + expected_end, stpncpy(state.ptr2, state.ptr1, copy_len));
+    ASSERT_EQ(state.ptr2, strncpy(state.ptr2, state.ptr1, copy_len));
 
     // Verify ptr1 was not modified.
     ASSERT_EQ(0, memcmp(state.ptr1, state.ptr, state.MAX_LEN));
@@ -1483,7 +1481,7 @@
   errno = 0;
   const char* out = basename(in);
   ASSERT_STREQ(expected_out, out) << in;
-  ASSERT_EQ(0, errno) << in;
+  ASSERT_ERRNO(0) << in;
 }
 #endif
 
@@ -1685,3 +1683,16 @@
   GTEST_SKIP() << "memset_explicit not available";
 #endif
 }
+
+TEST(STRING_TEST, strerrorname_np) {
+#if defined(__BIONIC__)
+  ASSERT_STREQ("0", strerrorname_np(0));
+  ASSERT_STREQ("EINVAL", strerrorname_np(EINVAL));
+  ASSERT_STREQ("ENOSYS", strerrorname_np(ENOSYS));
+
+  ASSERT_EQ(nullptr, strerrorname_np(-1));
+  ASSERT_EQ(nullptr, strerrorname_np(666));
+#else
+  GTEST_SKIP() << "strerrorname_np not available";
+#endif
+}
diff --git a/tests/struct_layout_test.cpp b/tests/struct_layout_test.cpp
index 10c100a..b9fd315 100644
--- a/tests/struct_layout_test.cpp
+++ b/tests/struct_layout_test.cpp
@@ -30,7 +30,7 @@
 #define CHECK_OFFSET(name, field, offset) \
     check_offset(#name, #field, offsetof(name, field), offset);
 #ifdef __LP64__
-  CHECK_SIZE(pthread_internal_t, 784);
+  CHECK_SIZE(pthread_internal_t, 824);
   CHECK_OFFSET(pthread_internal_t, next, 0);
   CHECK_OFFSET(pthread_internal_t, prev, 8);
   CHECK_OFFSET(pthread_internal_t, tid, 16);
@@ -55,7 +55,9 @@
   CHECK_OFFSET(pthread_internal_t, dlerror_buffer, 248);
   CHECK_OFFSET(pthread_internal_t, bionic_tls, 760);
   CHECK_OFFSET(pthread_internal_t, errno_value, 768);
-  CHECK_OFFSET(pthread_internal_t, vfork_child_stack_bottom, 776);
+  CHECK_OFFSET(pthread_internal_t, bionic_tcb, 776);
+  CHECK_OFFSET(pthread_internal_t, stack_mte_ringbuffer_vma_name_buffer, 784);
+  CHECK_OFFSET(pthread_internal_t, should_allocate_stack_mte_ringbuffer, 816);
   CHECK_SIZE(bionic_tls, 12200);
   CHECK_OFFSET(bionic_tls, key_data, 0);
   CHECK_OFFSET(bionic_tls, locale, 2080);
@@ -73,7 +75,7 @@
   CHECK_OFFSET(bionic_tls, bionic_systrace_disabled, 12193);
   CHECK_OFFSET(bionic_tls, padding, 12194);
 #else
-  CHECK_SIZE(pthread_internal_t, 672);
+  CHECK_SIZE(pthread_internal_t, 708);
   CHECK_OFFSET(pthread_internal_t, next, 0);
   CHECK_OFFSET(pthread_internal_t, prev, 4);
   CHECK_OFFSET(pthread_internal_t, tid, 8);
@@ -98,7 +100,9 @@
   CHECK_OFFSET(pthread_internal_t, dlerror_buffer, 148);
   CHECK_OFFSET(pthread_internal_t, bionic_tls, 660);
   CHECK_OFFSET(pthread_internal_t, errno_value, 664);
-  CHECK_OFFSET(pthread_internal_t, vfork_child_stack_bottom, 668);
+  CHECK_OFFSET(pthread_internal_t, bionic_tcb, 668);
+  CHECK_OFFSET(pthread_internal_t, stack_mte_ringbuffer_vma_name_buffer, 672);
+  CHECK_OFFSET(pthread_internal_t, should_allocate_stack_mte_ringbuffer, 704);
   CHECK_SIZE(bionic_tls, 11080);
   CHECK_OFFSET(bionic_tls, key_data, 0);
   CHECK_OFFSET(bionic_tls, locale, 1040);
diff --git a/libm/fenv-access.h b/tests/sys_cachectl_test.cpp
similarity index 68%
copy from libm/fenv-access.h
copy to tests/sys_cachectl_test.cpp
index 7acb34d..d9ece4f 100644
--- a/libm/fenv-access.h
+++ b/tests/sys_cachectl_test.cpp
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2021 The Android Open Source Project
+ * Copyright (C) 2023 The Android Open Source Project
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -26,8 +26,19 @@
  * SUCH DAMAGE.
  */
 
-#pragma once
+#include <gtest/gtest.h>
 
-#if defined(__x86_64__) || defined(__i386__)
-#pragma STDC FENV_ACCESS ON
+#if __has_include(<sys/cachectl.h>)
+#include <sys/cachectl.h>
 #endif
+
+TEST(sys_cachectl, __riscv_flush_icache) {
+#if defined(__riscv) && __has_include(<sys/cachectl.h>)
+  // As of Linux 6.4, the address range is ignored (so nullptr is fine),
+  // and the flags you actually want are 0 ("all threads"),
+  // but we test the unusual flag just to make sure it works.
+  ASSERT_EQ(0, __riscv_flush_icache(nullptr, nullptr, SYS_RISCV_FLUSH_ICACHE_LOCAL));
+#else
+  GTEST_SKIP() << "__riscv_flush_icache requires riscv64";
+#endif
+}
diff --git a/tests/sys_epoll_test.cpp b/tests/sys_epoll_test.cpp
index fb2a48f..744f1c9 100644
--- a/tests/sys_epoll_test.cpp
+++ b/tests/sys_epoll_test.cpp
@@ -24,33 +24,105 @@
 
 #include "utils.h"
 
-TEST(sys_epoll, smoke) {
+TEST(sys_epoll, epoll_wait) {
   int epoll_fd = epoll_create(1);
-  ASSERT_NE(-1, epoll_fd) << strerror(errno);
-  epoll_event events[1];
+  ASSERT_NE(-1, epoll_fd);
 
   // Regular epoll_wait.
+  epoll_event events[1] = {};
   ASSERT_EQ(0, epoll_wait(epoll_fd, events, 1, 1));
+}
+
+TEST(sys_epoll, epoll_pwait_no_sigset) {
+  int epoll_fd = epoll_create(1);
+  ASSERT_NE(-1, epoll_fd);
 
   // epoll_pwait without a sigset (which is equivalent to epoll_wait).
+  epoll_event events[1] = {};
   ASSERT_EQ(0, epoll_pwait(epoll_fd, events, 1, 1, nullptr));
+}
 
+TEST(sys_epoll, epoll_pwait64_no_sigset) {
 #if defined(__BIONIC__)
+  int epoll_fd = epoll_create(1);
+  ASSERT_NE(-1, epoll_fd);
+
   // epoll_pwait64 without a sigset (which is equivalent to epoll_wait).
+  epoll_event events[1] = {};
   ASSERT_EQ(0, epoll_pwait64(epoll_fd, events, 1, 1, nullptr));
+#else
+  GTEST_SKIP() << "epoll_pwait64 is bionic-only";
 #endif
+}
+
+TEST(sys_epoll, epoll_pwait2_no_sigset) {
+#if defined(__BIONIC__)
+  int epoll_fd = epoll_create(1);
+  ASSERT_NE(-1, epoll_fd);
+
+  // epoll_pwait2 without a sigset (which is equivalent to epoll_wait).
+  epoll_event events[1] = {};
+  timespec ts = {.tv_nsec = 500};
+  int rc = epoll_pwait2(epoll_fd, events, 1, &ts, nullptr);
+  if (rc == -1 && errno == ENOSYS) GTEST_SKIP() << "no epoll_pwait2() in this kernel";
+  ASSERT_EQ(0, rc) << strerror(errno);
+#else
+  GTEST_SKIP() << "epoll_pwait2 is only in glibc 2.35+";
+#endif
+}
+
+TEST(sys_epoll, epoll_pwait_with_sigset) {
+  int epoll_fd = epoll_create(1);
+  ASSERT_NE(-1, epoll_fd);
 
   // epoll_pwait with a sigset.
+  epoll_event events[1] = {};
   sigset_t ss;
   sigemptyset(&ss);
   sigaddset(&ss, SIGPIPE);
   ASSERT_EQ(0, epoll_pwait(epoll_fd, events, 1, 1, &ss));
 }
 
+TEST(sys_epoll, epoll_pwait2_with_sigset) {
+  int epoll_fd = epoll_create(1);
+  ASSERT_NE(-1, epoll_fd);
+
+#if defined(__BIONIC__)
+  epoll_event events[1] = {};
+  timespec ts = {.tv_nsec = 500};
+  sigset_t ss2;
+  sigemptyset(&ss2);
+  sigaddset(&ss2, SIGPIPE);
+  int rc = epoll_pwait2(epoll_fd, events, 1, &ts, &ss2);
+  if (rc == -1 && errno == ENOSYS) GTEST_SKIP() << "no epoll_pwait2() in this kernel";
+  ASSERT_EQ(0, rc) << strerror(errno);
+#else
+  GTEST_SKIP() << "epoll_pwait2 is only in glibc 2.35+";
+#endif
+}
+
+TEST(sys_epoll, epoll_pwait2_64_with_sigset) {
+  int epoll_fd = epoll_create(1);
+  ASSERT_NE(-1, epoll_fd);
+
+#if defined(__BIONIC__)
+  epoll_event events[1] = {};
+  timespec ts = {.tv_nsec = 500};
+  sigset64_t ss2;
+  sigemptyset64(&ss2);
+  sigaddset64(&ss2, SIGPIPE);
+  int rc = epoll_pwait2_64(epoll_fd, events, 1, &ts, &ss2);
+  if (rc == -1 && errno == ENOSYS) GTEST_SKIP() << "no epoll_pwait2() in this kernel";
+  ASSERT_EQ(0, rc) << strerror(errno);
+#else
+  GTEST_SKIP() << "epoll_pwait2_64 is bionic-only";
+#endif
+}
+
 TEST(sys_epoll, epoll_create_invalid_size) {
   errno = 0;
   ASSERT_EQ(-1, epoll_create(0));
-  ASSERT_EQ(EINVAL, errno);
+  ASSERT_ERRNO(EINVAL);
 }
 
 TEST(sys_epoll, epoll_event_data) {
diff --git a/tests/sys_hwprobe_test.cpp b/tests/sys_hwprobe_test.cpp
new file mode 100644
index 0000000..fd59e1d
--- /dev/null
+++ b/tests/sys_hwprobe_test.cpp
@@ -0,0 +1,147 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *  * Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *  * Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in
+ *    the documentation and/or other materials provided with the
+ *    distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#include <gtest/gtest.h>
+
+#if __has_include(<sys/hwprobe.h>)
+#include <sys/hwprobe.h>
+#include <sys/syscall.h>
+#endif
+
+
+#if defined(__riscv)
+#include <riscv_vector.h>
+
+__attribute__((noinline))
+uint64_t scalar_cast(uint8_t const* p) {
+  return *(uint64_t const*)p;
+}
+
+__attribute__((noinline))
+uint64_t scalar_memcpy(uint8_t const* p) {
+  uint64_t r;
+  __builtin_memcpy(&r, p, sizeof(r));
+  return r;
+}
+
+__attribute__((noinline))
+uint64_t vector_memcpy(uint8_t* d, uint8_t const* p) {
+  __builtin_memcpy(d, p, 16);
+  return *(uint64_t const*)d;
+}
+
+__attribute__((noinline))
+uint64_t vector_ldst(uint8_t* d, uint8_t const* p) {
+  __riscv_vse8(d, __riscv_vle8_v_u8m1(p, 16), 16);
+  return *(uint64_t const*)d;
+}
+
+__attribute__((noinline))
+uint64_t vector_ldst64(uint8_t* d, uint8_t const* p) {
+  __riscv_vse64((unsigned long *)d, __riscv_vle64_v_u64m1((const unsigned long *)p, 16), 16);
+  return *(uint64_t const*)d;
+}
+
+// For testing scalar and vector unaligned accesses.
+uint64_t tmp[3] = {1,1,1};
+uint64_t dst[3] = {1,1,1};
+#endif
+
+TEST(sys_hwprobe, __riscv_hwprobe_misaligned_scalar) {
+#if defined(__riscv)
+  uint8_t* p = (uint8_t*)tmp + 1;
+  ASSERT_NE(0U, scalar_cast(p));
+  ASSERT_NE(0U, scalar_memcpy(p));
+#else
+  GTEST_SKIP() << "__riscv_hwprobe requires riscv64";
+#endif
+}
+
+TEST(sys_hwprobe, __riscv_hwprobe_misaligned_vector) {
+#if defined(__riscv)
+  uint8_t* p = (uint8_t*)tmp + 1;
+  uint8_t* d = (uint8_t*)dst + 1;
+
+  ASSERT_NE(0U, vector_ldst(d, p));
+  ASSERT_NE(0U, vector_memcpy(d, p));
+  ASSERT_NE(0U, vector_ldst64(d, p));
+#else
+  GTEST_SKIP() << "__riscv_hwprobe requires riscv64";
+#endif
+}
+
+TEST(sys_hwprobe, __riscv_hwprobe) {
+#if defined(__riscv) && __has_include(<sys/hwprobe.h>)
+  riscv_hwprobe probes[] = {{.key = RISCV_HWPROBE_KEY_IMA_EXT_0},
+                            {.key = RISCV_HWPROBE_KEY_CPUPERF_0}};
+  ASSERT_EQ(0, __riscv_hwprobe(probes, 2, 0, nullptr, 0));
+  EXPECT_EQ(RISCV_HWPROBE_KEY_IMA_EXT_0, probes[0].key);
+  EXPECT_TRUE((probes[0].value & RISCV_HWPROBE_IMA_FD) != 0);
+  EXPECT_TRUE((probes[0].value & RISCV_HWPROBE_IMA_C) != 0);
+  EXPECT_TRUE((probes[0].value & RISCV_HWPROBE_IMA_V) != 0);
+  EXPECT_TRUE((probes[0].value & RISCV_HWPROBE_EXT_ZBA) != 0);
+  EXPECT_TRUE((probes[0].value & RISCV_HWPROBE_EXT_ZBB) != 0);
+  EXPECT_TRUE((probes[0].value & RISCV_HWPROBE_EXT_ZBS) != 0);
+
+  EXPECT_EQ(RISCV_HWPROBE_KEY_CPUPERF_0, probes[1].key);
+  EXPECT_TRUE((probes[1].value & RISCV_HWPROBE_MISALIGNED_MASK) == RISCV_HWPROBE_MISALIGNED_FAST);
+#else
+  GTEST_SKIP() << "__riscv_hwprobe requires riscv64";
+#endif
+}
+
+TEST(sys_hwprobe, __riscv_hwprobe_syscall_vdso) {
+#if defined(__riscv) && __has_include(<sys/hwprobe.h>)
+  riscv_hwprobe probes_vdso[] = {{.key = RISCV_HWPROBE_KEY_IMA_EXT_0},
+                                 {.key = RISCV_HWPROBE_KEY_CPUPERF_0}};
+  ASSERT_EQ(0, __riscv_hwprobe(probes_vdso, 2, 0, nullptr, 0));
+
+  riscv_hwprobe probes_syscall[] = {{.key = RISCV_HWPROBE_KEY_IMA_EXT_0},
+                                    {.key = RISCV_HWPROBE_KEY_CPUPERF_0}};
+  ASSERT_EQ(0, syscall(SYS_riscv_hwprobe, probes_syscall, 2, 0, nullptr, 0));
+
+  // Check we got the same answers from the vdso and the syscall.
+  EXPECT_EQ(RISCV_HWPROBE_KEY_IMA_EXT_0, probes_syscall[0].key);
+  EXPECT_EQ(probes_vdso[0].key, probes_syscall[0].key);
+  EXPECT_EQ(probes_vdso[0].value, probes_syscall[0].value);
+  EXPECT_EQ(RISCV_HWPROBE_KEY_CPUPERF_0, probes_syscall[1].key);
+  EXPECT_EQ(probes_vdso[1].key, probes_syscall[1].key);
+  EXPECT_EQ(probes_vdso[1].value, probes_syscall[1].value);
+#else
+  GTEST_SKIP() << "__riscv_hwprobe requires riscv64";
+#endif
+}
+
+TEST(sys_hwprobe, __riscv_hwprobe_fail) {
+#if defined(__riscv) && __has_include(<sys/hwprobe.h>)
+  riscv_hwprobe probes[] = {};
+  ASSERT_EQ(EINVAL, __riscv_hwprobe(probes, 0, 0, nullptr, ~0));
+#else
+  GTEST_SKIP() << "__riscv_hwprobe requires riscv64";
+#endif
+}
\ No newline at end of file
diff --git a/libm/fenv-access.h b/tests/sys_io_test.cpp
similarity index 71%
copy from libm/fenv-access.h
copy to tests/sys_io_test.cpp
index 7acb34d..293ceb2 100644
--- a/libm/fenv-access.h
+++ b/tests/sys_io_test.cpp
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2021 The Android Open Source Project
+ * Copyright (C) 2024 The Android Open Source Project
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -26,8 +26,28 @@
  * SUCH DAMAGE.
  */
 
-#pragma once
+#include <gtest/gtest.h>
 
-#if defined(__x86_64__) || defined(__i386__)
-#pragma STDC FENV_ACCESS ON
+#include <sys/io.h>
+
+#include "utils.h"
+
+TEST(sys_io, iopl) {
+#if defined(__i386__) || defined(__x86_64__)
+  errno = 0;
+  ASSERT_EQ(-1, iopl(4));
+  ASSERT_ERRNO(EINVAL);
+#else
+  GTEST_SKIP() << "iopl requires x86/x86-64";
 #endif
+}
+
+TEST(sys_io, ioperm) {
+#if defined(__i386__) || defined(__x86_64__)
+  errno = 0;
+  ASSERT_EQ(-1, ioperm(65535, 4, 0));
+  ASSERT_ERRNO(EINVAL);
+#else
+  GTEST_SKIP() << "ioperm requires x86/x86-64";
+#endif
+}
diff --git a/tests/sys_mman_test.cpp b/tests/sys_mman_test.cpp
index e403ea5..54a0b64 100644
--- a/tests/sys_mman_test.cpp
+++ b/tests/sys_mman_test.cpp
@@ -23,6 +23,10 @@
 #include <android-base/file.h>
 #include <gtest/gtest.h>
 
+#include "utils.h"
+
+static const size_t kPageSize = getpagesize();
+
 TEST(sys_mman, mmap_std) {
   void* map = mmap(nullptr, 4096, PROT_READ | PROT_WRITE, MAP_ANON | MAP_PRIVATE, -1, 0);
   ASSERT_NE(MAP_FAILED, map);
@@ -218,7 +222,10 @@
 }
 
 TEST(sys_mman, mremap) {
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wnonnull"
   ASSERT_EQ(MAP_FAILED, mremap(nullptr, 0, 0, 0));
+#pragma clang diagnostic pop
 }
 
 constexpr size_t kHuge = size_t(PTRDIFF_MAX) + 1;
@@ -228,42 +235,56 @@
 }
 
 TEST(sys_mman, mremap_PTRDIFF_MAX) {
-  void* map = mmap(nullptr, PAGE_SIZE, PROT_NONE, MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
+  void* map = mmap(nullptr, kPageSize, PROT_NONE, MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
   ASSERT_NE(MAP_FAILED, map);
 
-  ASSERT_EQ(MAP_FAILED, mremap(map, PAGE_SIZE, kHuge, MREMAP_MAYMOVE));
+  ASSERT_EQ(MAP_FAILED, mremap(map, kPageSize, kHuge, MREMAP_MAYMOVE));
 
-  ASSERT_EQ(0, munmap(map, PAGE_SIZE));
+  ASSERT_EQ(0, munmap(map, kPageSize));
+}
+
+TEST(sys_mman, mremap_MREMAP_FIXED) {
+  // We're not trying to test the kernel here; that's external/ltp's job.
+  // We just want to check that optional argument (mremap() is varargs)
+  // gets passed through in an MREMAP_FIXED call.
+  void* vma1 = mmap(NULL, getpagesize(), PROT_READ, MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
+  ASSERT_NE(MAP_FAILED, vma1);
+
+  void* vma2 = mmap(NULL, getpagesize(), PROT_READ, MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
+  ASSERT_NE(MAP_FAILED, vma2);
+
+  void* vma3 = mremap(vma1, getpagesize(), getpagesize(), MREMAP_FIXED | MREMAP_MAYMOVE, vma2);
+  ASSERT_EQ(vma2, vma3);
 }
 
 TEST(sys_mman, mmap_bug_27265969) {
-  char* base = reinterpret_cast<char*>(mmap(nullptr, PAGE_SIZE * 2, PROT_EXEC | PROT_READ,
-                                            MAP_ANONYMOUS | MAP_PRIVATE, -1, 0));
+  char* base = reinterpret_cast<char*>(
+      mmap(nullptr, kPageSize * 2, PROT_EXEC | PROT_READ, MAP_ANONYMOUS | MAP_PRIVATE, -1, 0));
   // Some kernels had bugs that would cause segfaults here...
-  __builtin___clear_cache(base, base + (PAGE_SIZE * 2));
+  __builtin___clear_cache(base, base + (kPageSize * 2));
 }
 
 TEST(sys_mman, mlock) {
-  void* map = mmap(nullptr, PAGE_SIZE, PROT_NONE, MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
+  void* map = mmap(nullptr, kPageSize, PROT_NONE, MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
   ASSERT_NE(MAP_FAILED, map);
 
   // Not really anything we can assert about this.
-  mlock(map, PAGE_SIZE);
+  mlock(map, kPageSize);
 
-  ASSERT_EQ(0, munmap(map, PAGE_SIZE));
+  ASSERT_EQ(0, munmap(map, kPageSize));
 }
 
 TEST(sys_mman, mlock2) {
 #if defined(__GLIBC__)
   GTEST_SKIP() << "needs glibc 2.27";
 #else
-  void* map = mmap(nullptr, PAGE_SIZE, PROT_NONE, MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
+  void* map = mmap(nullptr, kPageSize, PROT_NONE, MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
   ASSERT_NE(MAP_FAILED, map);
 
   // Not really anything we can assert about this.
-  mlock2(map, PAGE_SIZE, MLOCK_ONFAULT);
+  mlock2(map, kPageSize, MLOCK_ONFAULT);
 
-  ASSERT_EQ(0, munmap(map, PAGE_SIZE));
+  ASSERT_EQ(0, munmap(map, kPageSize));
 #endif
 }
 
@@ -274,10 +295,9 @@
   // Is the MFD_CLOEXEC flag obeyed?
   errno = 0;
   int fd = memfd_create("doesn't matter", 0);
-  if (fd == -1) {
-    ASSERT_EQ(ENOSYS, errno);
-    GTEST_SKIP() << "no memfd_create available";
-  }
+  if (fd == -1 && errno == ENOSYS) GTEST_SKIP() << "no memfd_create() in this kernel";
+  ASSERT_NE(-1, fd) << strerror(errno);
+
   int f = fcntl(fd, F_GETFD);
   ASSERT_NE(-1, f);
   ASSERT_FALSE(f & FD_CLOEXEC);
@@ -300,3 +320,30 @@
   close(fd);
 #endif
 }
+
+TEST(sys_mseal, mseal) {
+#if defined(__GLIBC__)
+  GTEST_SKIP() << "needs glibc 2.40";
+#else
+  void* map = mmap(nullptr, kPageSize, PROT_NONE, MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
+  ASSERT_NE(MAP_FAILED, map);
+
+#if defined(__LP64__)
+  int rc = mseal(map, kPageSize, 0);
+  if (rc == -1) {
+    ASSERT_ERRNO(ENOSYS);
+    GTEST_SKIP() << "needs kernel with mseal(2)";
+  }
+  ASSERT_EQ(-1, mprotect(map, kPageSize, PROT_READ));
+  ASSERT_ERRNO(EPERM);
+#else
+  // No mseal() for ILP32.
+  errno = 0;
+  ASSERT_EQ(-1, mseal(map, kPageSize, 0));
+  ASSERT_ERRNO(ENOSYS);
+  GTEST_SKIP() << "mseal(2) is LP64-only";
+#endif
+
+  // We can't munmap() our test mapping if mseal() actually succeeded :-)
+#endif
+}
diff --git a/tests/sys_msg_test.cpp b/tests/sys_msg_test.cpp
index da45087..b2d855d 100644
--- a/tests/sys_msg_test.cpp
+++ b/tests/sys_msg_test.cpp
@@ -56,16 +56,17 @@
     long type;
     char data[32];
   } msg = { 1, "hello world" };
-  ASSERT_EQ(0, msgsnd(id, &msg, sizeof(msg), 0));
+  ASSERT_EQ(0, msgsnd(id, &msg, sizeof(msg.data), 0));
 
   // Queue should be non-empty.
   ASSERT_EQ(0, msgctl(id, IPC_STAT, &ds));
   ASSERT_EQ(1U, ds.msg_qnum);
-  ASSERT_EQ(sizeof(msg), ds.msg_cbytes);
+  ASSERT_EQ(sizeof(msg.data), ds.msg_cbytes);
 
   // Read the message.
   memset(&msg, 0, sizeof(msg));
-  ASSERT_EQ(static_cast<ssize_t>(sizeof(msg)), msgrcv(id, &msg, sizeof(msg), 0, 0));
+  ASSERT_EQ(static_cast<ssize_t>(sizeof(msg.data)),
+            msgrcv(id, &msg, sizeof(msg.data), 0, 0));
   ASSERT_EQ(1, msg.type);
   ASSERT_STREQ("hello world", msg.data);
 
@@ -98,7 +99,11 @@
 }
 
 TEST(sys_msg, msgsnd_failure) {
+  struct {
+    long type;
+    char data[1];
+  } msg = { 1, "" };
   errno = 0;
-  ASSERT_EQ(-1, msgsnd(-1, "", 0, 0));
+  ASSERT_EQ(-1, msgsnd(-1, &msg, sizeof(msg.data), 0));
   ASSERT_TRUE(errno == EINVAL || errno == ENOSYS);
 }
diff --git a/tests/sys_prctl_test.cpp b/tests/sys_prctl_test.cpp
index 6d1fa1d..ea36d8a 100644
--- a/tests/sys_prctl_test.cpp
+++ b/tests/sys_prctl_test.cpp
@@ -31,9 +31,10 @@
 #include "android-base/file.h"
 #include "android-base/strings.h"
 
+#include "utils.h"
+
 // http://b/20017123.
 TEST(sys_prctl, bug_20017123) {
-#if defined(PR_SET_VMA) // PR_SET_VMA is only available in Android kernels.
   size_t page_size = static_cast<size_t>(sysconf(_SC_PAGESIZE));
   void* p = mmap(NULL, page_size * 3, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
   ASSERT_NE(MAP_FAILED, p);
@@ -60,15 +61,9 @@
   }
 
   ASSERT_EQ(0, munmap(p, page_size * 3));
-#else
-  GTEST_SKIP() << "PR_SET_VMA not available";
-#endif
 }
 
 TEST(sys_prctl, pr_cap_ambient) {
-// PR_CAP_AMBIENT was introduced in v4.3.  Android devices should always
-// have a backport, but we can't guarantee it's available on the host.
-#if defined(__ANDROID__) || defined(PR_CAP_AMBIENT)
   const std::string caps_sha =
       "https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/"
       "?id=58319057b7847667f0c9585b9de0e8932b0fdb08";
@@ -91,7 +86,7 @@
   // but they can check or lower it
   err = prctl(PR_CAP_AMBIENT, PR_CAP_AMBIENT_RAISE, CAP_SYS_ADMIN, 0, 0);
   EXPECT_EQ(-1, err);
-  EXPECT_EQ(EPERM, errno);
+  EXPECT_ERRNO(EPERM);
 
   err = prctl(PR_CAP_AMBIENT, PR_CAP_AMBIENT_IS_SET, CAP_SYS_ADMIN, 0, 0);
   EXPECT_EQ(0, err);
@@ -102,16 +97,13 @@
   // ULONG_MAX isn't a legal cap
   err = prctl(PR_CAP_AMBIENT, PR_CAP_AMBIENT_RAISE, ULONG_MAX, 0, 0);
   EXPECT_EQ(-1, err);
-  EXPECT_EQ(EINVAL, errno);
+  EXPECT_ERRNO(EINVAL);
 
   err = prctl(PR_CAP_AMBIENT, PR_CAP_AMBIENT_IS_SET, ULONG_MAX, 0, 0);
   EXPECT_EQ(-1, err);
-  EXPECT_EQ(EINVAL, errno);
+  EXPECT_ERRNO(EINVAL);
 
   err = prctl(PR_CAP_AMBIENT, PR_CAP_AMBIENT_LOWER, ULONG_MAX, 0, 0);
   EXPECT_EQ(-1, err);
-  EXPECT_EQ(EINVAL, errno);
-#else
-  GTEST_SKIP() << "PR_CAP_AMBIENT not available";
-#endif
+  EXPECT_ERRNO(EINVAL);
 }
diff --git a/tests/sys_ptrace_test.cpp b/tests/sys_ptrace_test.cpp
index b8c1537..499adbb 100644
--- a/tests/sys_ptrace_test.cpp
+++ b/tests/sys_ptrace_test.cpp
@@ -41,11 +41,6 @@
 
 using android::base::unique_fd;
 
-// Host libc does not define this.
-#ifndef TRAP_HWBKPT
-#define TRAP_HWBKPT 4
-#endif
-
 class ChildGuard {
  public:
   explicit ChildGuard(pid_t pid) : pid(pid) {}
@@ -64,10 +59,11 @@
 
 static void check_hw_feature_supported(pid_t child, HwFeature feature) {
 #if defined(__arm__)
+  errno = 0;
   long capabilities;
   long result = ptrace(PTRACE_GETHBPREGS, child, 0, &capabilities);
   if (result == -1) {
-    EXPECT_EQ(EIO, errno);
+    EXPECT_ERRNO(EIO);
     GTEST_SKIP() << "Hardware debug support disabled at kernel configuration time";
   }
   uint8_t hb_count = capabilities & 0xff;
@@ -88,10 +84,11 @@
   iov.iov_base = &dreg_state;
   iov.iov_len = sizeof(dreg_state);
 
+  errno = 0;
   long result = ptrace(PTRACE_GETREGSET, child,
                        feature == HwFeature::Watchpoint ? NT_ARM_HW_WATCH : NT_ARM_HW_BREAK, &iov);
   if (result == -1) {
-    ASSERT_EQ(EINVAL, errno);
+    ASSERT_ERRNO(EINVAL);
     GTEST_SKIP() << "Hardware support missing";
   } else if ((dreg_state.dbg_info & 0xff) == 0) {
     if (feature == HwFeature::Watchpoint) {
@@ -134,7 +131,7 @@
   ASSERT_EQ(0, ptrace(PTRACE_POKEUSER, child, offsetof(user, u_debugreg[0]), address)) << strerror(errno);
   errno = 0;
   unsigned data = ptrace(PTRACE_PEEKUSER, child, offsetof(user, u_debugreg[7]), nullptr);
-  ASSERT_EQ(0, errno);
+  ASSERT_ERRNO(0);
 
   const unsigned size_flag = (size == 8) ? 2 : size - 1;
   const unsigned enable = 1;
@@ -323,7 +320,7 @@
       << strerror(errno);
   errno = 0;
   unsigned data = ptrace(PTRACE_PEEKUSER, child, offsetof(user, u_debugreg[7]), nullptr);
-  ASSERT_EQ(0, errno);
+  ASSERT_ERRNO(0);
 
   const unsigned size = 0;
   const unsigned enable = 1;
diff --git a/tests/sys_random_test.cpp b/tests/sys_random_test.cpp
index e0cbf78..4425dba 100644
--- a/tests/sys_random_test.cpp
+++ b/tests/sys_random_test.cpp
@@ -34,6 +34,8 @@
 #include <errno.h>
 #include <gtest/gtest.h>
 
+#include "utils.h"
+
 TEST(sys_random, getentropy) {
 #if defined(HAVE_SYS_RANDOM)
   char buf1[64];
@@ -53,7 +55,7 @@
 #if defined(HAVE_SYS_RANDOM)
   errno = 0;
   ASSERT_EQ(-1, getentropy(nullptr, 1));
-  ASSERT_EQ(EFAULT, errno);
+  ASSERT_ERRNO(EFAULT);
 #else
   GTEST_SKIP() << "<sys/random.h> not available";
 #endif
@@ -67,7 +69,7 @@
 
   errno = 0;
   ASSERT_EQ(-1, getentropy(buf, sizeof(buf)));
-  ASSERT_EQ(EIO, errno);
+  ASSERT_ERRNO(EIO);
 #else
   GTEST_SKIP() << "<sys/random.h> not available";
 #endif
@@ -92,7 +94,7 @@
 #if defined(HAVE_SYS_RANDOM)
   errno = 0;
   ASSERT_EQ(-1, getrandom(nullptr, 256, 0));
-  ASSERT_EQ(EFAULT, errno);
+  ASSERT_ERRNO(EFAULT);
 #else
   GTEST_SKIP() << "<sys/random.h> not available";
 #endif
@@ -104,7 +106,7 @@
   errno = 0;
   char buf[64];
   ASSERT_EQ(-1, getrandom(buf, sizeof(buf), ~0));
-  ASSERT_EQ(EINVAL, errno);
+  ASSERT_ERRNO(EINVAL);
 #else
   GTEST_SKIP() << "<sys/random.h> not available";
 #endif
diff --git a/tests/sys_select_test.cpp b/tests/sys_select_test.cpp
index 5f019e2..076409d 100644
--- a/tests/sys_select_test.cpp
+++ b/tests/sys_select_test.cpp
@@ -90,7 +90,7 @@
 
   // Invalid max fd.
   ASSERT_EQ(-1, select(-1, &r, &w, &e, nullptr));
-  ASSERT_EQ(EINVAL, errno);
+  ASSERT_ERRNO(EINVAL);
 
   int num_fds = select(max, &r, &w, &e, nullptr);
   // If there is data to be read on STDIN, then the number of
@@ -108,7 +108,7 @@
   tv.tv_sec = -1;
   tv.tv_usec = 0;
   ASSERT_EQ(-1, select(max, &r, &w, &e, &tv));
-  ASSERT_EQ(EINVAL, errno);
+  ASSERT_ERRNO(EINVAL);
 
   // Valid timeout...
   tv.tv_sec = 1;
@@ -145,7 +145,7 @@
 
   // Invalid max fd.
   ASSERT_EQ(-1, pselect(-1, &r, &w, &e, nullptr, &ss));
-  ASSERT_EQ(EINVAL, errno);
+  ASSERT_ERRNO(EINVAL);
 
   // If there is data to be read on STDIN, then the number of
   // fds ready will be 3 instead of 2. Allow this case, but verify
@@ -163,7 +163,7 @@
   tv.tv_sec = -1;
   tv.tv_nsec = 0;
   ASSERT_EQ(-1, pselect(max, &r, &w, &e, &tv, &ss));
-  ASSERT_EQ(EINVAL, errno);
+  ASSERT_ERRNO(EINVAL);
 
   // Valid timeout...
   tv.tv_sec = 1;
diff --git a/tests/sys_sem_test.cpp b/tests/sys_sem_test.cpp
index b98926b..27943cf 100644
--- a/tests/sys_sem_test.cpp
+++ b/tests/sys_sem_test.cpp
@@ -33,6 +33,8 @@
 
 #include <android-base/file.h>
 
+#include "utils.h"
+
 TEST(sys_sem, smoke) {
   if (semctl(-1, 0, IPC_RMID) == -1 && errno == ENOSYS) {
     GTEST_SKIP() << "no <sys/sem.h> support in this kernel";
@@ -62,7 +64,7 @@
   ops[0] = { .sem_num = 0, .sem_op = 0, .sem_flg = 0 };
   errno = 0;
   ASSERT_EQ(-1, semtimedop(id, ops, 1, &ts));
-  ASSERT_EQ(EAGAIN, errno);
+  ASSERT_ERRNO(EAGAIN);
   ASSERT_EQ(1, semctl(id, 0, GETVAL));
 
   // Decrement.
@@ -87,15 +89,21 @@
 }
 
 TEST(sys_sem, semop_failure) {
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wnonnull"
   errno = 0;
   ASSERT_EQ(-1, semop(-1, nullptr, 0));
   ASSERT_TRUE(errno == EINVAL || errno == ENOSYS);
+#pragma clang diagnostic pop
 }
 
 TEST(sys_sem, semtimedop_failure) {
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wnonnull"
   errno = 0;
   ASSERT_EQ(-1, semtimedop(-1, nullptr, 0, nullptr));
   ASSERT_TRUE(errno == EINVAL || errno == ENOSYS);
+#pragma clang diagnostic pop
 }
 
 TEST(sys_sem, union_semun) {
diff --git a/tests/sys_shm_test.cpp b/tests/sys_shm_test.cpp
index fd5d424..65f9eba 100644
--- a/tests/sys_shm_test.cpp
+++ b/tests/sys_shm_test.cpp
@@ -73,9 +73,12 @@
 }
 
 TEST(sys_shm, shmdt_failure) {
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wnonnull"
   errno = 0;
   ASSERT_EQ(-1, shmdt(nullptr));
   ASSERT_TRUE(errno == EINVAL || errno == ENOSYS);
+#pragma clang diagnostic pop
 }
 
 TEST(sys_shm, shmget_failure) {
diff --git a/tests/sys_socket_test.cpp b/tests/sys_socket_test.cpp
index 421a817..1cfbfb2 100644
--- a/tests/sys_socket_test.cpp
+++ b/tests/sys_socket_test.cpp
@@ -100,7 +100,7 @@
 
 TEST(sys_socket, accept4_error) {
   ASSERT_EQ(-1, accept4(-1, nullptr, nullptr, 0));
-  ASSERT_EQ(EBADF, errno);
+  ASSERT_ERRNO(EBADF);
 }
 
 static void TestAccept4(struct sockaddr_un* addr, int fd) {
@@ -174,8 +174,11 @@
 }
 
 TEST(sys_socket, recvmmsg_error) {
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wnonnull"
   ASSERT_EQ(-1, recvmmsg(-1, nullptr, 0, 0, nullptr));
-  ASSERT_EQ(EBADF, errno);
+  ASSERT_ERRNO(EBADF);
+#pragma clang diagnostic pop
 }
 
 const char* g_SendMsgs[] = {
@@ -232,6 +235,9 @@
 }
 
 TEST(sys_socket, sendmmsg_error) {
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wnonnull"
   ASSERT_EQ(-1, sendmmsg(-1, nullptr, 0, 0));
-  ASSERT_EQ(EBADF, errno);
+  ASSERT_ERRNO(EBADF);
+#pragma clang diagnostic pop
 }
diff --git a/tests/sys_stat_test.cpp b/tests/sys_stat_test.cpp
index f36007e..50c50df 100644
--- a/tests/sys_stat_test.cpp
+++ b/tests/sys_stat_test.cpp
@@ -22,6 +22,8 @@
 #include <android-base/file.h>
 #include <gtest/gtest.h>
 
+#include "utils.h"
+
 #if defined(__BIONIC__)
 #define HAVE_STATX
 #elif defined(__GLIBC_PREREQ)
@@ -59,19 +61,19 @@
   times[1].tv_sec = 456;
   times[1].tv_nsec = 0;
   ASSERT_EQ(-1, futimens(-1, times));
-  ASSERT_EQ(EBADF, errno);
+  ASSERT_ERRNO(EBADF);
 }
 
 TEST(sys_stat, mkfifo_failure) {
   errno = 0;
   ASSERT_EQ(-1, mkfifo("/", 0666));
-  ASSERT_EQ(EEXIST, errno);
+  ASSERT_ERRNO(EEXIST);
 }
 
 TEST(sys_stat, mkfifoat_failure) {
   errno = 0;
   ASSERT_EQ(-1, mkfifoat(-2, "x", 0666));
-  ASSERT_EQ(EBADF, errno);
+  ASSERT_ERRNO(EBADF);
 }
 
 TEST(sys_stat, mkfifo) {
@@ -107,9 +109,7 @@
 #if defined(HAVE_STATX)
   struct statx sx;
   int rc = statx(AT_FDCWD, "/proc/version", AT_STATX_SYNC_AS_STAT, STATX_ALL, &sx);
-  if (rc == -1 && errno == ENOSYS) {
-    GTEST_SKIP() << "statx returned ENOSYS";
-  }
+  if (rc == -1 && errno == ENOSYS) GTEST_SKIP() << "no statx() in this kernel";
   ASSERT_EQ(0, rc);
   struct stat64 sb;
   ASSERT_EQ(0, stat64("/proc/version", &sb));
@@ -122,48 +122,48 @@
 
 TEST(sys_stat, fchmod_EBADF) {
   ASSERT_EQ(-1, fchmod(-1, 0751));
-  ASSERT_EQ(EBADF, errno);
+  ASSERT_ERRNO(EBADF);
 }
 
 TEST(sys_stat, fchmodat_EFAULT_file) {
   ASSERT_EQ(-1, fchmodat(AT_FDCWD, (char *) 0x1, 0751, 0));
-  ASSERT_EQ(EFAULT, errno);
+  ASSERT_ERRNO(EFAULT);
 }
 
 TEST(sys_stat, fchmodat_AT_SYMLINK_NOFOLLOW_EFAULT_file) {
   ASSERT_EQ(-1, fchmodat(AT_FDCWD, (char *) 0x1, 0751, AT_SYMLINK_NOFOLLOW));
 #if defined(__BIONIC__)
-  ASSERT_EQ(EFAULT, errno);
+  ASSERT_ERRNO(EFAULT);
 #else
   // glibc 2.19 does not implement AT_SYMLINK_NOFOLLOW and always
   // returns ENOTSUP
-  ASSERT_EQ(ENOTSUP, errno);
+  ASSERT_ERRNO(ENOTSUP);
 #endif
 }
 
 TEST(sys_stat, fchmodat_bad_flags) {
   ASSERT_EQ(-1, fchmodat(AT_FDCWD, "/blah", 0751, ~AT_SYMLINK_NOFOLLOW));
-  ASSERT_EQ(EINVAL, errno);
+  ASSERT_ERRNO(EINVAL);
 }
 
 TEST(sys_stat, fchmodat_bad_flags_ALL) {
   ASSERT_EQ(-1, fchmodat(AT_FDCWD, "/blah", 0751, ~0));
-  ASSERT_EQ(EINVAL, errno);
+  ASSERT_ERRNO(EINVAL);
 }
 
-TEST(sys_stat, fchmodat_nonexistant_file) {
+TEST(sys_stat, fchmodat_nonexistent_file) {
   ASSERT_EQ(-1, fchmodat(AT_FDCWD, "/blah", 0751, 0));
-  ASSERT_EQ(ENOENT, errno);
+  ASSERT_ERRNO(ENOENT);
 }
 
-TEST(sys_stat, fchmodat_AT_SYMLINK_NOFOLLOW_nonexistant_file) {
+TEST(sys_stat, fchmodat_AT_SYMLINK_NOFOLLOW_nonexistent_file) {
   ASSERT_EQ(-1, fchmodat(AT_FDCWD, "/blah", 0751, AT_SYMLINK_NOFOLLOW));
 #if defined(__BIONIC__)
-  ASSERT_EQ(ENOENT, errno);
+  ASSERT_ERRNO(ENOENT);
 #else
   // glibc 2.19 does not implement AT_SYMLINK_NOFOLLOW and always
   // returns ENOTSUP
-  ASSERT_EQ(ENOTSUP, errno);
+  ASSERT_ERRNO(ENOTSUP);
 #endif
 }
 
@@ -188,13 +188,13 @@
 
 #if defined(__BIONIC__)
   ASSERT_EQ(0, result);
-  ASSERT_EQ(0, errno);
+  ASSERT_ERRNO(0);
   AssertFileModeEquals(0751, tf.path);
 #else
   // glibc 2.19 does not implement AT_SYMLINK_NOFOLLOW and always
   // returns ENOTSUP
   ASSERT_EQ(-1, result);
-  ASSERT_EQ(ENOTSUP, errno);
+  ASSERT_ERRNO(ENOTSUP);
 #endif
 }
 
@@ -220,7 +220,7 @@
 
   ASSERT_EQ(0, symlink(target, linkname));
   ASSERT_EQ(-1, fchmodat(AT_FDCWD, linkname, 0751, 0));
-  ASSERT_EQ(ENOENT, errno);
+  ASSERT_ERRNO(ENOENT);
   unlink(linkname);
 }
 
@@ -246,7 +246,7 @@
     AssertSymlinkModeEquals(0751, linkname);
   } else {
     ASSERT_EQ(-1, result);
-    ASSERT_EQ(ENOTSUP, errno);
+    ASSERT_ERRNO(ENOTSUP);
   }
 
   // Target file mode shouldn't be modified.
@@ -269,7 +269,7 @@
     AssertSymlinkModeEquals(0751, linkname);
   } else {
     ASSERT_EQ(-1, result);
-    ASSERT_EQ(ENOTSUP, errno);
+    ASSERT_ERRNO(ENOTSUP);
   }
 
   unlink(linkname);
@@ -277,14 +277,14 @@
 
 TEST(sys_stat, faccessat_EINVAL) {
   ASSERT_EQ(-1, faccessat(AT_FDCWD, "/dev/null", F_OK, ~AT_SYMLINK_NOFOLLOW));
-  ASSERT_EQ(EINVAL, errno);
+  ASSERT_ERRNO(EINVAL);
 #if defined(__BIONIC__)
   ASSERT_EQ(-1, faccessat(AT_FDCWD, "/dev/null", ~(R_OK | W_OK | X_OK), 0));
-  ASSERT_EQ(EINVAL, errno);
+  ASSERT_ERRNO(EINVAL);
 #else
   ASSERT_EQ(0, faccessat(AT_FDCWD, "/dev/null", ~(R_OK | W_OK | X_OK), AT_SYMLINK_NOFOLLOW));
   ASSERT_EQ(-1, faccessat(AT_FDCWD, "/dev/null", ~(R_OK | W_OK | X_OK), 0));
-  ASSERT_EQ(EINVAL, errno);
+  ASSERT_ERRNO(EINVAL);
 #endif
 }
 
@@ -292,7 +292,7 @@
 #if defined(__BIONIC__)
   // Android doesn't support AT_SYMLINK_NOFOLLOW
   ASSERT_EQ(-1, faccessat(AT_FDCWD, "/dev/null", F_OK, AT_SYMLINK_NOFOLLOW));
-  ASSERT_EQ(EINVAL, errno);
+  ASSERT_ERRNO(EINVAL);
 #else
   ASSERT_EQ(0, faccessat(AT_FDCWD, "/dev/null", F_OK, AT_SYMLINK_NOFOLLOW));
 #endif
@@ -305,12 +305,35 @@
   ASSERT_EQ(0, faccessat(AT_FDCWD, "/dev/null", R_OK|W_OK, 0));
 }
 
-TEST(sys_stat, faccessat_nonexistant) {
+TEST(sys_stat, faccessat_nonexistent) {
   ASSERT_EQ(-1, faccessat(AT_FDCWD, "/blah", F_OK, AT_SYMLINK_NOFOLLOW));
 #if defined(__BIONIC__)
   // Android doesn't support AT_SYMLINK_NOFOLLOW
-  ASSERT_EQ(EINVAL, errno);
+  ASSERT_ERRNO(EINVAL);
 #else
-  ASSERT_EQ(ENOENT, errno);
+  ASSERT_ERRNO(ENOENT);
 #endif
 }
+
+TEST(sys_stat, lchmod) {
+  TemporaryFile tf;
+  struct stat tf_sb;
+  ASSERT_EQ(0, stat(tf.path, &tf_sb));
+
+  char linkname[255];
+  snprintf(linkname, sizeof(linkname), "%s.link", tf.path);
+
+  ASSERT_EQ(0, symlink(tf.path, linkname));
+  int result = lchmod(linkname, 0751);
+  // Whether or not chmod is allowed on a symlink depends on the kernel.
+  if (result == 0) {
+    AssertSymlinkModeEquals(0751, linkname);
+  } else {
+    ASSERT_EQ(-1, result);
+    ASSERT_ERRNO(ENOTSUP);
+  }
+
+  // The target file mode shouldn't be modified.
+  AssertFileModeEquals(tf_sb.st_mode, tf.path);
+  unlink(linkname);
+}
diff --git a/tests/sys_statvfs_test.cpp b/tests/sys_statvfs_test.cpp
index 73b2a96..25256ff 100644
--- a/tests/sys_statvfs_test.cpp
+++ b/tests/sys_statvfs_test.cpp
@@ -25,7 +25,15 @@
 #include <string>
 
 template <typename StatVfsT> void Check(StatVfsT& sb) {
-  EXPECT_EQ(4096U, sb.f_bsize);
+#if defined(__x86_64__)
+  // On x86_64 based 16kb page size targets, the page size in userspace is simulated to 16kb but
+  // the underlying filesystem block size would remain unchanged, i.e., 4kb.
+  // For more info:
+  // https://source.android.com/docs/core/architecture/16kb-page-size/getting-started-cf-x86-64-pgagnostic
+  EXPECT_EQ(4096, static_cast<int>(sb.f_bsize));
+#else
+  EXPECT_EQ(getpagesize(), static_cast<int>(sb.f_bsize));
+#endif
   EXPECT_EQ(0U, sb.f_bfree);
   EXPECT_EQ(0U, sb.f_ffree);
   EXPECT_EQ(255U, sb.f_namemax);
diff --git a/tests/sys_thread_properties_test.cpp b/tests/sys_thread_properties_test.cpp
index cf1a6ba..816be41 100644
--- a/tests/sys_thread_properties_test.cpp
+++ b/tests/sys_thread_properties_test.cpp
@@ -24,8 +24,6 @@
   const char expected_out[] =
       "got test_static_tls_bounds\niterate_cb i = 0\ndone_iterate_dynamic_tls\n";
   std::string helper = GetTestLibRoot() + "tls_properties_helper/tls_properties_helper";
-  chmod(helper.c_str(), 0755);  // TODO: "x" lost in CTS, b/34945607
-
   ExecTestHelper eth;
   eth.SetArgs({helper.c_str(), nullptr});
   eth.Run([&]() { execve(helper.c_str(), eth.GetArgs(), eth.GetEnv()); }, 0, expected_out);
@@ -37,11 +35,8 @@
   // tests/libs/thread_exit_cb_helper.cpp
   const char expected_out[] = "exit_cb_1 called exit_cb_2 called exit_cb_3 called";
   std::string helper = GetTestLibRoot() + "thread_exit_cb_helper/thread_exit_cb_helper";
-  chmod(helper.c_str(), 0755);  // TODO: "x" lost in CTS, b/34945607
-
   ExecTestHelper eth;
   eth.SetArgs({helper.c_str(), nullptr});
   eth.Run([&]() { execve(helper.c_str(), eth.GetArgs(), eth.GetEnv()); }, 0, expected_out);
-
 #endif
 }
diff --git a/tests/sys_time_test.cpp b/tests/sys_time_test.cpp
index 07394d6..b0e52aa 100644
--- a/tests/sys_time_test.cpp
+++ b/tests/sys_time_test.cpp
@@ -23,6 +23,9 @@
 
 #include <android-base/file.h>
 
+#include "private/bionic_time_conversions.h"
+#include "utils.h"
+
 // http://b/11383777
 TEST(sys_time, utimes_nullptr) {
   TemporaryFile tf;
@@ -36,19 +39,19 @@
 
   tv[0].tv_usec = -123;
   ASSERT_EQ(-1, utimes(tf.path, tv));
-  ASSERT_EQ(EINVAL, errno);
+  ASSERT_ERRNO(EINVAL);
   tv[0].tv_usec = 1234567;
   ASSERT_EQ(-1, utimes(tf.path, tv));
-  ASSERT_EQ(EINVAL, errno);
+  ASSERT_ERRNO(EINVAL);
 
   tv[0].tv_usec = 0;
 
   tv[1].tv_usec = -123;
   ASSERT_EQ(-1, utimes(tf.path, tv));
-  ASSERT_EQ(EINVAL, errno);
+  ASSERT_ERRNO(EINVAL);
   tv[1].tv_usec = 1234567;
   ASSERT_EQ(-1, utimes(tf.path, tv));
-  ASSERT_EQ(EINVAL, errno);
+  ASSERT_ERRNO(EINVAL);
 }
 
 TEST(sys_time, futimes_nullptr) {
@@ -63,19 +66,19 @@
 
   tv[0].tv_usec = -123;
   ASSERT_EQ(-1, futimes(tf.fd, tv));
-  ASSERT_EQ(EINVAL, errno);
+  ASSERT_ERRNO(EINVAL);
   tv[0].tv_usec = 1234567;
   ASSERT_EQ(-1, futimes(tf.fd, tv));
-  ASSERT_EQ(EINVAL, errno);
+  ASSERT_ERRNO(EINVAL);
 
   tv[0].tv_usec = 0;
 
   tv[1].tv_usec = -123;
   ASSERT_EQ(-1, futimes(tf.fd, tv));
-  ASSERT_EQ(EINVAL, errno);
+  ASSERT_ERRNO(EINVAL);
   tv[1].tv_usec = 1234567;
   ASSERT_EQ(-1, futimes(tf.fd, tv));
-  ASSERT_EQ(EINVAL, errno);
+  ASSERT_ERRNO(EINVAL);
 }
 
 TEST(sys_time, futimesat_nullptr) {
@@ -90,19 +93,19 @@
 
   tv[0].tv_usec = -123;
   ASSERT_EQ(-1, futimesat(AT_FDCWD, tf.path, tv));
-  ASSERT_EQ(EINVAL, errno);
+  ASSERT_ERRNO(EINVAL);
   tv[0].tv_usec = 1234567;
   ASSERT_EQ(-1, futimesat(AT_FDCWD, tf.path, tv));
-  ASSERT_EQ(EINVAL, errno);
+  ASSERT_ERRNO(EINVAL);
 
   tv[0].tv_usec = 0;
 
   tv[1].tv_usec = -123;
   ASSERT_EQ(-1, futimesat(AT_FDCWD, tf.path, tv));
-  ASSERT_EQ(EINVAL, errno);
+  ASSERT_ERRNO(EINVAL);
   tv[1].tv_usec = 1234567;
   ASSERT_EQ(-1, futimesat(AT_FDCWD, tf.path, tv));
-  ASSERT_EQ(EINVAL, errno);
+  ASSERT_ERRNO(EINVAL);
 }
 
 TEST(sys_time, lutimes_nullptr) {
@@ -117,19 +120,19 @@
 
   tv[0].tv_usec = -123;
   ASSERT_EQ(-1, lutimes(tf.path, tv));
-  ASSERT_EQ(EINVAL, errno);
+  ASSERT_ERRNO(EINVAL);
   tv[0].tv_usec = 1234567;
   ASSERT_EQ(-1, lutimes(tf.path, tv));
-  ASSERT_EQ(EINVAL, errno);
+  ASSERT_ERRNO(EINVAL);
 
   tv[0].tv_usec = 0;
 
   tv[1].tv_usec = -123;
   ASSERT_EQ(-1, lutimes(tf.path, tv));
-  ASSERT_EQ(EINVAL, errno);
+  ASSERT_ERRNO(EINVAL);
   tv[1].tv_usec = 1234567;
   ASSERT_EQ(-1, lutimes(tf.path, tv));
-  ASSERT_EQ(EINVAL, errno);
+  ASSERT_ERRNO(EINVAL);
 }
 
 // Musl doesn't define __NR_gettimeofday on 32-bit architectures.
@@ -145,14 +148,6 @@
   ASSERT_EQ(0, syscall(__NR_gettimeofday, &tv2, nullptr));
 
   // What's the difference between the two?
-  tv2.tv_sec -= tv1.tv_sec;
-  tv2.tv_usec -= tv1.tv_usec;
-  if (tv2.tv_usec < 0) {
-    --tv2.tv_sec;
-    tv2.tv_usec += 1000000;
-  }
-
   // To try to avoid flakiness we'll accept answers within 10,000us (0.01s).
-  ASSERT_EQ(0, tv2.tv_sec);
-  ASSERT_LT(tv2.tv_usec, 10'000);
+  ASSERT_LT(to_us(tv2) - to_us(tv1), 10'000);
 }
diff --git a/tests/sys_timex_test.cpp b/tests/sys_timex_test.cpp
index 1340ea4..44b73c9 100644
--- a/tests/sys_timex_test.cpp
+++ b/tests/sys_timex_test.cpp
@@ -27,21 +27,9 @@
   ASSERT_NE(-1, adjtimex(&t));
 }
 
-TEST(sys_timex, adjtimex_EFAULT) {
-  errno = 0;
-  ASSERT_EQ(-1, adjtimex(nullptr));
-  ASSERT_EQ(EFAULT, errno);
-}
-
 TEST(sys_timex, clock_adjtime_smoke) {
   timex t;
   memset(&t, 0, sizeof(t));
   // adjtimex/clock_adjtime return the clock state on success, -1 on failure.
   ASSERT_NE(-1, clock_adjtime(CLOCK_REALTIME, &t));
 }
-
-TEST(sys_timex, clock_adjtime_EFAULT) {
-  errno = 0;
-  ASSERT_EQ(-1, clock_adjtime(CLOCK_REALTIME, nullptr));
-  ASSERT_EQ(EFAULT, errno);
-}
diff --git a/tests/sys_uio_test.cpp b/tests/sys_uio_test.cpp
index aac08e7..97ba5d4 100644
--- a/tests/sys_uio_test.cpp
+++ b/tests/sys_uio_test.cpp
@@ -24,6 +24,8 @@
 
 #include <android-base/file.h>
 
+#include "utils.h"
+
 TEST(sys_uio, readv_writev) {
   TemporaryFile tf;
 
@@ -123,8 +125,9 @@
 
   // Reading from non-allocated memory should return an error
   remote = { nullptr, sizeof dst };
+  errno = 0;
   ASSERT_EQ(-1, process_vm_readv(getpid(), &local, 1, &remote, 1, 0));
-  ASSERT_EQ(EFAULT, errno);
+  ASSERT_ERRNO(EFAULT);
 }
 
 TEST(sys_uio, process_vm_writev) {
@@ -142,6 +145,7 @@
 
   // Writing to non-allocated memory should return an error
   remote = { nullptr, sizeof dst };
+  errno = 0;
   ASSERT_EQ(-1, process_vm_writev(getpid(), &local, 1, &remote, 1, 0));
-  ASSERT_EQ(EFAULT, errno);
+  ASSERT_ERRNO(EFAULT);
 }
diff --git a/tests/sys_vfs_test.cpp b/tests/sys_vfs_test.cpp
index 363e49b..90b6da9 100644
--- a/tests/sys_vfs_test.cpp
+++ b/tests/sys_vfs_test.cpp
@@ -24,8 +24,18 @@
 
 #include <string>
 
+#include "utils.h"
+
 template <typename StatFsT> void Check(StatFsT& sb) {
+#if defined(__x86_64__)
+  // On x86_64 based 16kb page size targets, the page size in userspace is simulated to 16kb but
+  // the underlying filesystem block size would remain unchanged, i.e., 4kb.
+  // For more info:
+  // https://source.android.com/docs/core/architecture/16kb-page-size/getting-started-cf-x86-64-pgagnostic
   EXPECT_EQ(4096, static_cast<int>(sb.f_bsize));
+#else
+  EXPECT_EQ(getpagesize(), static_cast<int>(sb.f_bsize));
+#endif
   EXPECT_EQ(0U, sb.f_bfree);
   EXPECT_EQ(0U, sb.f_ffree);
   EXPECT_EQ(255, static_cast<int>(sb.f_namelen));
@@ -59,7 +69,7 @@
   struct statfs sb;
   errno = 0;
   ASSERT_EQ(-1, statfs("/does-not-exist", &sb));
-  ASSERT_EQ(ENOENT, errno);
+  ASSERT_ERRNO(ENOENT);
 }
 
 TEST(sys_vfs, statfs64_smoke) {
@@ -72,7 +82,7 @@
   struct statfs64 sb;
   errno = 0;
   ASSERT_EQ(-1, statfs64("/does-not-exist", &sb));
-  ASSERT_EQ(ENOENT, errno);
+  ASSERT_ERRNO(ENOENT);
 }
 
 TEST(sys_vfs, fstatfs) {
@@ -87,7 +97,7 @@
   struct statfs sb;
   errno = 0;
   ASSERT_EQ(-1, fstatfs(-1, &sb));
-  ASSERT_EQ(EBADF, errno);
+  ASSERT_ERRNO(EBADF);
 }
 
 TEST(sys_vfs, fstatfs64_smoke) {
@@ -102,5 +112,5 @@
   struct statfs sb;
   errno = 0;
   ASSERT_EQ(-1, fstatfs(-1, &sb));
-  ASSERT_EQ(EBADF, errno);
+  ASSERT_ERRNO(EBADF);
 }
diff --git a/tests/sys_wait_test.cpp b/tests/sys_wait_test.cpp
index c006972..200fabe 100644
--- a/tests/sys_wait_test.cpp
+++ b/tests/sys_wait_test.cpp
@@ -42,3 +42,22 @@
   ASSERT_EQ(66, si.si_status);
   ASSERT_EQ(CLD_EXITED, si.si_code);
 }
+
+// https://github.com/android/ndk/issues/1878
+TEST(sys_wait, macros) {
+#if defined(__GLIBC__)
+  // glibc before 2016 requires an lvalue.
+#else
+  ASSERT_FALSE(WIFEXITED(0x7f));
+  ASSERT_TRUE(WIFSTOPPED(0x7f));
+  ASSERT_FALSE(WIFCONTINUED(0x7f));
+
+  ASSERT_TRUE(WIFEXITED(0x80));
+  ASSERT_FALSE(WIFSTOPPED(0x80));
+  ASSERT_FALSE(WIFCONTINUED(0x80));
+
+  ASSERT_FALSE(WIFEXITED(0xffff));
+  ASSERT_FALSE(WIFSTOPPED(0xffff));
+  ASSERT_TRUE(WIFCONTINUED(0xffff));
+#endif
+}
diff --git a/tests/sys_xattr_test.cpp b/tests/sys_xattr_test.cpp
index 45cf379..fa2aee4 100644
--- a/tests/sys_xattr_test.cpp
+++ b/tests/sys_xattr_test.cpp
@@ -21,6 +21,8 @@
 #include <android-base/file.h>
 #include <gtest/gtest.h>
 
+#include "utils.h"
+
 TEST(sys_xattr, setxattr) {
   TemporaryFile tf;
   char buf[10];
@@ -52,17 +54,17 @@
   char buf[10];
   ASSERT_EQ(0, fsetxattr(tf.fd, "user.foo", "01234567890123456789", 21, 0));
   ASSERT_EQ(-1, fgetxattr(tf.fd, "user.foo", buf, sizeof(buf)));
-  ASSERT_EQ(ERANGE, errno);
+  ASSERT_ERRNO(ERANGE);
 }
 
 TEST(sys_xattr, fsetxattr_invalid_fd) {
   char buf[10];
   errno = 0;
   ASSERT_EQ(-1, fsetxattr(-1, "user.foo", "0123", 5, 0));
-  ASSERT_EQ(EBADF, errno);
+  ASSERT_ERRNO(EBADF);
   errno = 0;
   ASSERT_EQ(-1, fgetxattr(-1, "user.foo", buf, sizeof(buf)));
-  ASSERT_EQ(EBADF, errno);
+  ASSERT_ERRNO(EBADF);
 }
 
 TEST(sys_xattr, fsetxattr_with_opath) {
@@ -78,7 +80,7 @@
   ASSERT_STREQ("bar", buf);
 #else
   ASSERT_EQ(-1, res);
-  ASSERT_EQ(EBADF, errno);
+  ASSERT_ERRNO(EBADF);
 #endif
   close(fd);
 }
@@ -93,10 +95,10 @@
   char buf[10];
   ASSERT_EQ(0, res);
   ASSERT_EQ(-1, fgetxattr(fd, "user.foo", buf, sizeof(buf)));
-  ASSERT_EQ(ERANGE, errno);
+  ASSERT_ERRNO(ERANGE);
 #else
   ASSERT_EQ(-1, res);
-  ASSERT_EQ(EBADF, errno);
+  ASSERT_ERRNO(EBADF);
 #endif
   close(fd);
 }
@@ -123,7 +125,7 @@
   ASSERT_TRUE(memmem(buf, res, "user.foo", 9) != nullptr);
 #else
   ASSERT_EQ(-1, res);
-  ASSERT_EQ(EBADF, errno);
+  ASSERT_ERRNO(EBADF);
 #endif
   close(fd);
 }
@@ -132,5 +134,5 @@
   char buf[65536];  // 64kB is max possible xattr list size. See "man 7 xattr".
   errno = 0;
   ASSERT_EQ(-1, flistxattr(-1, buf, sizeof(buf)));
-  ASSERT_EQ(EBADF, errno);
+  ASSERT_ERRNO(EBADF);
 }
diff --git a/tests/syslog_test.cpp b/tests/syslog_test.cpp
new file mode 100644
index 0000000..623d8a3
--- /dev/null
+++ b/tests/syslog_test.cpp
@@ -0,0 +1,108 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *  * Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *  * Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in
+ *    the documentation and/or other materials provided with the
+ *    distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#include <stddef.h>  // glibc's <syslog.h> breaks without this; musl seems fine.
+
+#define SYSLOG_NAMES
+#include <syslog.h>
+
+#include <errno.h>
+#include <gtest/gtest.h>
+
+#include "utils.h"
+
+TEST(syslog, syslog_percent_m) {
+  ExecTestHelper eth;
+  eth.Run(
+      [&]() {
+        openlog("foo", LOG_PERROR, LOG_AUTH);
+        errno = EINVAL;
+        syslog(LOG_ERR, "a b c: %m");
+        closelog();
+        exit(0);
+      },
+      0, "foo: a b c: Invalid argument\n");
+}
+
+TEST(syslog, syslog_empty) {
+  ExecTestHelper eth;
+  eth.Run(
+      [&]() {
+        openlog("foo", LOG_PERROR, LOG_AUTH);
+        errno = EINVAL;
+        syslog(LOG_ERR, "");
+        closelog();
+        exit(0);
+      },
+      0, "foo: \n");
+}
+
+TEST(syslog, syslog_truncation) {
+  ExecTestHelper eth;
+  eth.Run(
+      [&]() {
+        openlog("bar", LOG_PERROR, LOG_AUTH);
+        char too_long[2048] = {};
+        memset(too_long, 'x', sizeof(too_long) - 1);
+        syslog(LOG_ERR, "%s", too_long);
+        closelog();
+        exit(0);
+      },
+      0, "bar: x{1023}\n");
+}
+
+static int by_name(const CODE* array, const char* name) {
+  for (auto c = array; c->c_name != nullptr; c++) {
+    if (!strcmp(c->c_name, name)) return c->c_val;
+  }
+  return -1;
+}
+
+static const char* by_value(const CODE* array, int value) {
+  for (auto c = array; c->c_name != nullptr; c++) {
+    if (c->c_val == value) return c->c_name;
+  }
+  return nullptr;
+}
+
+TEST(syslog, facilitynames) {
+  ASSERT_STREQ("auth", by_value(facilitynames, LOG_AUTH));
+  ASSERT_STREQ("local7", by_value(facilitynames, LOG_LOCAL7));
+  ASSERT_EQ(LOG_AUTH, by_name(facilitynames, "auth"));
+  ASSERT_EQ(LOG_LOCAL7, by_name(facilitynames, "local7"));
+}
+
+TEST(syslog, prioritynames) {
+  ASSERT_STREQ("alert", by_value(prioritynames, LOG_ALERT));
+  ASSERT_STREQ("err", by_value(prioritynames, LOG_ERR));
+  ASSERT_STREQ("warn", by_value(prioritynames, LOG_WARNING));
+  ASSERT_EQ(LOG_ALERT, by_name(prioritynames, "alert"));
+  ASSERT_EQ(LOG_ERR, by_name(prioritynames, "err"));
+  ASSERT_EQ(LOG_WARNING, by_name(prioritynames, "warn"));
+  ASSERT_EQ(LOG_WARNING, by_name(prioritynames, "warning"));
+}
diff --git a/tests/system_properties_test.cpp b/tests/system_properties_test.cpp
index aa8fef4..5b5e009 100644
--- a/tests/system_properties_test.cpp
+++ b/tests/system_properties_test.cpp
@@ -25,31 +25,52 @@
 
 #include <android-base/file.h>
 #include <android-base/silent_death_test.h>
+#include <android-base/stringprintf.h>
+
+#include "utils.h"
 
 using namespace std::literals;
 
 #if defined(__BIONIC__)
 
-#define _REALLY_INCLUDE_SYS__SYSTEM_PROPERTIES_H_
-#include <sys/_system_properties.h>
+#include <stdlib.h>
+#include <sys/mount.h>
+#include <sys/system_properties.h>
 
 #include <system_properties/system_properties.h>
 
 class SystemPropertiesTest : public SystemProperties {
  public:
   SystemPropertiesTest() : SystemProperties(false) {
-    valid_ = AreaInit(dir_.path, nullptr);
+    appcompat_path = android::base::StringPrintf("%s/appcompat_override", dir_.path);
+    mount_path = android::base::StringPrintf("%s/__properties__", dir_.path);
+    mkdir(appcompat_path.c_str(), S_IRWXU | S_IXGRP | S_IXOTH);
+    valid_ = AreaInit(dir_.path, nullptr, true);
   }
   ~SystemPropertiesTest() {
     if (valid_) {
       contexts_->FreeAndUnmap();
     }
+    umount2(dir_.path, MNT_DETACH);
+    umount2(real_sysprop_dir.c_str(), MNT_DETACH);
   }
 
   bool valid() const {
     return valid_;
   }
 
+  const char* get_path() const { return dir_.path; }
+
+  const char* get_appcompat_path() const { return appcompat_path.c_str(); }
+
+  const char* get_mount_path() const { return mount_path.c_str(); }
+
+  const char* get_real_sysprop_dir() const { return real_sysprop_dir.c_str(); }
+
+  std::string appcompat_path;
+  std::string mount_path;
+  std::string real_sysprop_dir = "/dev/__properties__";
+
  private:
   TemporaryDir dir_;
   bool valid_;
@@ -125,6 +146,58 @@
 #endif // __BIONIC__
 }
 
+TEST(properties, __system_property_add_appcompat) {
+#if defined(__BIONIC__)
+    if (getuid() != 0) GTEST_SKIP() << "test requires root";
+    SystemPropertiesTest system_properties;
+    ASSERT_TRUE(system_properties.valid());
+
+    char name[] = "ro.property";
+    char override_name[] = "ro.appcompat_override.ro.property";
+    char name_not_written[] = "ro.property_other";
+    char override_with_no_real[] = "ro.appcompat_override.ro.property_other";
+    ASSERT_EQ(0, system_properties.Add(name, strlen(name), "value1", 6));
+    ASSERT_EQ(0, system_properties.Add(override_name, strlen(override_name), "value2", 6));
+    ASSERT_EQ(0, system_properties.Add(override_with_no_real, strlen(override_with_no_real),
+                                       "value3", 6));
+
+    char propvalue[PROP_VALUE_MAX];
+    ASSERT_EQ(6, system_properties.Get(name, propvalue));
+    ASSERT_STREQ(propvalue, "value1");
+
+    ASSERT_EQ(6, system_properties.Get(override_name, propvalue));
+    ASSERT_STREQ(propvalue, "value2");
+
+    ASSERT_EQ(0, system_properties.Get(name_not_written, propvalue));
+    ASSERT_STREQ(propvalue, "");
+
+    ASSERT_EQ(6, system_properties.Get(override_with_no_real, propvalue));
+    ASSERT_STREQ(propvalue, "value3");
+
+    int ret = mount(system_properties.get_appcompat_path(), system_properties.get_path(), nullptr,
+                    MS_BIND | MS_REC, nullptr);
+    if (ret != 0) {
+      ASSERT_ERRNO(0);
+    }
+    system_properties.Reload(true);
+
+    ASSERT_EQ(6, system_properties.Get(name, propvalue));
+    ASSERT_STREQ(propvalue, "value2");
+
+    ASSERT_EQ(0, system_properties.Get(override_name, propvalue));
+    ASSERT_STREQ(propvalue, "");
+
+    ASSERT_EQ(6, system_properties.Get(name_not_written, propvalue));
+    ASSERT_STREQ(propvalue, "value3");
+
+    ASSERT_EQ(0, system_properties.Get(override_with_no_real, propvalue));
+    ASSERT_STREQ(propvalue, "");
+
+#else   // __BIONIC__
+    GTEST_SKIP() << "bionic-only test";
+#endif  // __BIONIC__
+}
+
 TEST(properties, __system_property_update) {
 #if defined(__BIONIC__)
     SystemPropertiesTest system_properties;
@@ -432,7 +505,7 @@
 
   // This test only makes sense if we're talking to the real system property service.
   struct stat sb;
-  ASSERT_FALSE(stat(PROP_FILENAME, &sb) == -1 && errno == ENOENT);
+  ASSERT_FALSE(stat(PROP_DIRNAME, &sb) == -1 && errno == ENOENT);
 
   ASSERT_EXIT(__system_property_add("property", 8, "value", 5), KilledByFault(), "");
 #else // __BIONIC__
@@ -498,7 +571,7 @@
     check_with_read_callback(name, value);
   }
 
-  constexpr static const char* kExtraLongLegacyError =
+  static constexpr const char* kExtraLongLegacyError =
       "Must use __system_property_read_callback() to read";
   for (const auto& property : long_properties) {
     const std::string& name = property.first;
@@ -519,10 +592,106 @@
   ASSERT_TRUE(system_properties.valid());
 
   auto name = "ro.super_long_property"s;
+
+#ifdef LARGE_SYSTEM_PROPERTY_NODE
+  auto value = std::string(1024 * 1024 + 1, 'x');
+#else
   auto value = std::string(128 * 1024 + 1, 'x');
+#endif
+
   ASSERT_NE(0, system_properties.Add(name.c_str(), name.size(), value.c_str(), value.size()));
 
 #else   // __BIONIC__
   GTEST_SKIP() << "bionic-only test";
 #endif  // __BIONIC__
 }
+
+// Note that this test affects global state of the system
+// this tests tries to mitigate this by using utime+pid
+// prefix for the property name. It is still results in
+// pollution of property service since properties cannot
+// be removed.
+//
+// Note that there is also possibility to run into "out-of-memory"
+// if this test if it is executed often enough without reboot.
+TEST(properties, __system_property_reload_no_op) {
+#if defined(__BIONIC__)
+  std::string property_name =
+      android::base::StringPrintf("debug.test.%d.%" PRId64 ".property", getpid(), NanoTime());
+  ASSERT_EQ(0, __system_property_find(property_name.c_str()));
+  ASSERT_EQ(0, __system_property_set(property_name.c_str(), "test value"));
+  ASSERT_EQ(0, __system_properties_zygote_reload());
+  const prop_info* readptr = __system_property_find(property_name.c_str());
+  std::string expected_name = property_name;
+  __system_property_read_callback(
+      readptr,
+      [](void*, const char*, const char* value, unsigned) { ASSERT_STREQ("test value", value); },
+      &expected_name);
+#else   // __BIONIC__
+  GTEST_SKIP() << "bionic-only test";
+#endif  // __BIONIC__
+}
+
+TEST(properties, __system_property_reload_invalid) {
+#if defined(__BIONIC__)
+  if (getuid() != 0) GTEST_SKIP() << "test requires root";
+  SystemPropertiesTest system_properties;
+
+  // Create an invalid property_info file, so the system will attempt to initialize a
+  // ContextSerialized
+  std::string property_info_file =
+      android::base::StringPrintf("%s/property_info", system_properties.get_path());
+  fclose(fopen(property_info_file.c_str(), "w"));
+  int ret = mount(system_properties.get_path(), system_properties.get_real_sysprop_dir(), nullptr,
+                  MS_BIND | MS_REC, nullptr);
+  if (ret != 0) {
+    ASSERT_ERRNO(0);
+  }
+
+  ASSERT_EQ(-1, __system_properties_zygote_reload());
+#else   // __BIONIC__
+  GTEST_SKIP() << "bionic-only test";
+#endif  // __BIONIC__
+}
+
+// Note that this test affects global state of the system
+// this tests tries to mitigate this by using utime+pid
+// prefix for the property name. It is still results in
+// pollution of property service since properties cannot
+// be removed.
+//
+// Note that there is also possibility to run into "out-of-memory"
+// if this test if it is executed often enough without reboot.
+TEST(properties, __system_property_reload_valid) {
+#if defined(__BIONIC__)
+  if (getuid() != 0) GTEST_SKIP() << "test requires root";
+  SystemPropertiesTest system_properties;
+
+  // Copy the system properties files into the temp directory
+  std::string shell_cmd = android::base::StringPrintf(
+      "cp -r %s %s", system_properties.get_real_sysprop_dir(), system_properties.get_path());
+  system(shell_cmd.c_str());
+
+  // Write a system property to the current set of system properties
+  std::string property_name =
+      android::base::StringPrintf("debug.test.%d.%" PRId64 ".property", getpid(), NanoTime());
+  ASSERT_EQ(0, __system_property_find(property_name.c_str()));
+  ASSERT_EQ(0, __system_property_set(property_name.c_str(), "test value"));
+
+  // Mount the temp directory (which doesn't have the property we just wrote) in place of the
+  // real one
+  int ret = mount(system_properties.get_mount_path(), system_properties.get_real_sysprop_dir(),
+                  nullptr, MS_BIND | MS_REC, nullptr);
+  if (ret != 0) {
+    ASSERT_ERRNO(0);
+  }
+
+  // reload system properties in the new dir, and verify the property we wrote after we copied the
+  // files isn't there
+  ASSERT_EQ(0, __system_properties_zygote_reload());
+  ASSERT_EQ(0, __system_property_find(property_name.c_str()));
+
+#else   // __BIONIC__
+  GTEST_SKIP() << "bionic-only test";
+#endif  // __BIONIC__
+}
diff --git a/tests/system_properties_test2.cpp b/tests/system_properties_test2.cpp
index 0953bde..0795ccd 100644
--- a/tests/system_properties_test2.cpp
+++ b/tests/system_properties_test2.cpp
@@ -28,10 +28,6 @@
 
 #if defined(__BIONIC__)
 #include <sys/system_properties.h>
-int64_t NanoTime() {
-  auto t = std::chrono::time_point_cast<std::chrono::nanoseconds>(std::chrono::steady_clock::now());
-  return t.time_since_epoch().count();
-}
 #endif
 
 // Note that this test affects global state of the system
diff --git a/tests/termios_test.cpp b/tests/termios_test.cpp
index 6290771..19e9bfe 100644
--- a/tests/termios_test.cpp
+++ b/tests/termios_test.cpp
@@ -29,9 +29,13 @@
 #include <termios.h>
 
 #include <errno.h>
+#include <fcntl.h>
+#include <pty.h>
 
 #include <gtest/gtest.h>
 
+#include "utils.h"
+
 // TODO:
 // tcdrain
 // tcflow
@@ -51,7 +55,7 @@
   termios t = {};
   errno = 0;
   ASSERT_EQ(-1, cfsetispeed(&t, 1200));
-  ASSERT_EQ(EINVAL, errno);
+  ASSERT_ERRNO(EINVAL);
 }
 
 TEST(termios, cfgetospeed_cfsetospeed) {
@@ -64,7 +68,7 @@
   termios t = {};
   errno = 0;
   ASSERT_EQ(-1, cfsetospeed(&t, 1200));
-  ASSERT_EQ(EINVAL, errno);
+  ASSERT_ERRNO(EINVAL);
 }
 
 TEST(termios, cfsetspeed) {
@@ -80,7 +84,7 @@
   // glibc seems to allow 1200 as well as B1200 here, presumably for
   // BSD compatibility (where Bxxx == xxx, unlike Linux).
   ASSERT_EQ(-1, cfsetspeed(&t, 123));
-  ASSERT_EQ(EINVAL, errno);
+  ASSERT_ERRNO(EINVAL);
 }
 
 TEST(termios, cfmakeraw) {
@@ -92,7 +96,53 @@
   EXPECT_EQ(0U, (t.c_oflag & OPOST));
   EXPECT_EQ(0U, (t.c_lflag & (ECHO|ECHONL|ICANON|ISIG|IEXTEN)));
   EXPECT_EQ(0U, (t.c_cflag & PARENB));
-  EXPECT_EQ(CS8, static_cast<int>(t.c_cflag & CSIZE));
+  EXPECT_EQ(static_cast<unsigned>(CS8), (t.c_cflag & CSIZE));
   EXPECT_EQ(1, t.c_cc[VMIN]);
   EXPECT_EQ(0, t.c_cc[VTIME]);
 }
+
+TEST(termios, tcgetwinsize_tcsetwinsize_invalid) {
+#if !defined(__GLIBC__)
+  winsize ws = {};
+
+  errno = 0;
+  ASSERT_EQ(-1, tcgetwinsize(-1, &ws));
+  ASSERT_ERRNO(EBADF);
+
+  errno = 0;
+  ASSERT_EQ(-1, tcsetwinsize(-1, &ws));
+  ASSERT_ERRNO(EBADF);
+#else
+  GTEST_SKIP() << "glibc too old";
+#endif
+}
+
+TEST(termios, tcgetwinsize_tcsetwinsize) {
+#if !defined(__GLIBC__)
+  int pty, tty;
+  winsize ws = {123, 456, 9999, 9999};
+  ASSERT_EQ(0, openpty(&pty, &tty, nullptr, nullptr, &ws));
+
+  winsize actual = {};
+  ASSERT_EQ(0, tcgetwinsize(tty, &actual));
+  EXPECT_EQ(ws.ws_xpixel, actual.ws_xpixel);
+  EXPECT_EQ(ws.ws_ypixel, actual.ws_ypixel);
+  EXPECT_EQ(ws.ws_row, actual.ws_row);
+  EXPECT_EQ(ws.ws_col, actual.ws_col);
+
+  ws = {1, 2, 3, 4};
+  ASSERT_EQ(0, tcsetwinsize(tty, &ws));
+
+  actual = {};
+  ASSERT_EQ(0, tcgetwinsize(tty, &actual));
+  EXPECT_EQ(ws.ws_xpixel, actual.ws_xpixel);
+  EXPECT_EQ(ws.ws_ypixel, actual.ws_ypixel);
+  EXPECT_EQ(ws.ws_row, actual.ws_row);
+  EXPECT_EQ(ws.ws_col, actual.ws_col);
+
+  close(pty);
+  close(tty);
+#else
+  GTEST_SKIP() << "glibc too old";
+#endif
+}
diff --git a/tests/time_test.cpp b/tests/time_test.cpp
index 0dcbcd2..baafbf6 100644
--- a/tests/time_test.cpp
+++ b/tests/time_test.cpp
@@ -28,8 +28,11 @@
 
 #include <atomic>
 #include <chrono>
+#include <thread>
 
 #include "SignalUtils.h"
+#include "android-base/file.h"
+#include "android-base/strings.h"
 #include "utils.h"
 
 using namespace std::chrono_literals;
@@ -96,7 +99,7 @@
 
 static void* gmtime_no_stack_overflow_14313703_fn(void*) {
   const char* original_tz = getenv("TZ");
-  // Ensure we'll actually have to enter tzload by using a time zone that doesn't exist.
+  // Ensure we'll actually have to enter tzload by using a timezone that doesn't exist.
   setenv("TZ", "gmtime_stack_overflow_14313703", 1);
   tzset();
   if (original_tz != nullptr) {
@@ -149,7 +152,7 @@
 #if !defined(__LP64__)
   // 32-bit bionic has a signed 32-bit time_t.
   ASSERT_EQ(-1, mktime(&tm));
-  ASSERT_EQ(EOVERFLOW, errno);
+  ASSERT_ERRNO(EOVERFLOW);
 #else
   // Everyone else should be using a signed 64-bit time_t.
   ASSERT_GE(sizeof(time_t) * 8, 64U);
@@ -163,11 +166,11 @@
   // mktime to interpret that time as local standard, hence offset
   // is 8 hours, not 7.
   ASSERT_EQ(static_cast<time_t>(4108348800U), mktime(&tm));
-  ASSERT_EQ(0, errno);
+  ASSERT_ERRNO(0);
 #endif
 }
 
-TEST(time, DISABLED_mktime_EOVERFLOW) {
+TEST(time, mktime_EOVERFLOW) {
   setenv("TZ", "UTC", 1);
 
   struct tm t;
@@ -181,14 +184,29 @@
 
   errno = 0;
   ASSERT_NE(static_cast<time_t>(-1), mktime(&t));
-  ASSERT_EQ(0, errno);
+  ASSERT_ERRNO(0);
 
-  // This will overflow for LP32 or LP64.
+  // This will overflow for LP32.
   t.tm_year = INT_MAX;
 
   errno = 0;
+#if !defined(__LP64__)
   ASSERT_EQ(static_cast<time_t>(-1), mktime(&t));
-  ASSERT_EQ(EOVERFLOW, errno);
+  ASSERT_ERRNO(EOVERFLOW);
+#else
+  ASSERT_EQ(static_cast<time_t>(67768036166016000U), mktime(&t));
+  ASSERT_ERRNO(0);
+#endif
+
+  // This will overflow for LP32 or LP64.
+  // tm_year is int, this t struct points to INT_MAX + 1 no matter what TZ is.
+  t.tm_year = INT_MAX;
+  t.tm_mon = 11;
+  t.tm_mday = 45;
+
+  errno = 0;
+  ASSERT_EQ(static_cast<time_t>(-1), mktime(&t));
+  ASSERT_ERRNO(EOVERFLOW);
 }
 
 TEST(time, mktime_invalid_tm_TZ_combination) {
@@ -206,7 +224,7 @@
 
   EXPECT_EQ(static_cast<time_t>(-1), mktime(&t));
   // mktime sets errno to EOVERFLOW if result is unrepresentable.
-  EXPECT_EQ(EOVERFLOW, errno);
+  EXPECT_ERRNO(EOVERFLOW);
 }
 
 // Transitions in the tzdata file are generated up to the year 2100. Testing
@@ -217,14 +235,13 @@
 #if !defined(__LP64__)
   // 32-bit bionic has a signed 32-bit time_t.
   ASSERT_EQ(-1, mktime(&tm));
-  ASSERT_EQ(EOVERFLOW, errno);
+  ASSERT_ERRNO(EOVERFLOW);
 #else
   setenv("TZ", "Europe/London", 1);
   tzset();
   errno = 0;
-
   ASSERT_EQ(static_cast<time_t>(5686156800U), mktime(&tm));
-  ASSERT_EQ(0, errno);
+  ASSERT_ERRNO(0);
 #endif
 }
 
@@ -308,7 +325,7 @@
 
 // According to C language specification the only tm struct field needed to
 // find out replacement for %z and %Z in strftime is tm_isdst. Which is
-// wrong, as time zones change their standard offset and even DST savings.
+// wrong, as timezones change their standard offset and even DST savings.
 // tzcode deviates from C language specification and requires tm struct either
 // to be output of localtime-like functions or to be modified by mktime call
 // before passing to strftime. See tz mailing discussion for more details
@@ -544,7 +561,7 @@
   EXPECT_EQ(1, tm.tm_isdst);
   EXPECT_EQ(3600, tm.tm_gmtoff);
 
-  // And as long as we're in Europe/Berlin, those are the only time zone
+  // And as long as we're in Europe/Berlin, those are the only timezone
   // abbreviations that are recognized.
   tm = {};
   ASSERT_TRUE(strptime("PDT", "%Z", &tm) == nullptr);
@@ -633,7 +650,7 @@
   if (pid == 0) {
     // Timers are not inherited by the child.
     ASSERT_EQ(-1, timer_delete(timer_id));
-    ASSERT_EQ(EINVAL, errno);
+    ASSERT_ERRNO(EINVAL);
     _exit(0);
   }
 
@@ -782,21 +799,41 @@
   ASSERT_EQ(1, timer_create_NULL_signal_handler_invocation_count);
 }
 
+static int GetThreadCount() {
+  std::string status;
+  if (android::base::ReadFileToString("/proc/self/status", &status)) {
+    for (const auto& line : android::base::Split(status, "\n")) {
+      int thread_count;
+      if (sscanf(line.c_str(), "Threads: %d", &thread_count) == 1) {
+        return thread_count;
+      }
+    }
+  }
+  return -1;
+}
+
 TEST(time, timer_create_EINVAL) {
-  clockid_t invalid_clock = 16;
+  const clockid_t kInvalidClock = 16;
 
-  // A SIGEV_SIGNAL timer is easy; the kernel does all that.
+  // A SIGEV_SIGNAL timer failure is easy; that's the kernel's problem.
   timer_t timer_id;
-  ASSERT_EQ(-1, timer_create(invalid_clock, nullptr, &timer_id));
-  ASSERT_EQ(EINVAL, errno);
+  ASSERT_EQ(-1, timer_create(kInvalidClock, nullptr, &timer_id));
+  ASSERT_ERRNO(EINVAL);
 
-  // A SIGEV_THREAD timer is more interesting because we have stuff to clean up.
-  sigevent se;
-  memset(&se, 0, sizeof(se));
+  // A SIGEV_THREAD timer failure is more interesting because we have a thread
+  // to clean up (https://issuetracker.google.com/340125671).
+  sigevent se = {};
   se.sigev_notify = SIGEV_THREAD;
   se.sigev_notify_function = NoOpNotifyFunction;
-  ASSERT_EQ(-1, timer_create(invalid_clock, &se, &timer_id));
-  ASSERT_EQ(EINVAL, errno);
+  ASSERT_EQ(-1, timer_create(kInvalidClock, &se, &timer_id));
+  ASSERT_ERRNO(EINVAL);
+
+  // timer_create() doesn't guarantee that the thread will be dead _before_
+  // it returns because that would require extra synchronization that's
+  // unnecessary in the normal (successful) case. A timeout here means we
+  // leaked a thread.
+  while (GetThreadCount() > 1) {
+  }
 }
 
 TEST(time, timer_create_multiple) {
@@ -899,7 +936,7 @@
   cur_time = time(NULL);
   while ((kill(tdd.tid, 0) != -1 || errno != ESRCH) && (time(NULL) - cur_time) < 5);
   ASSERT_EQ(-1, kill(tdd.tid, 0));
-  ASSERT_EQ(ESRCH, errno);
+  ASSERT_ERRNO(ESRCH);
 #endif
 }
 
@@ -957,7 +994,7 @@
   errno = 0;
   timespec ts;
   ASSERT_EQ(-1, clock_gettime(-1, &ts));
-  ASSERT_EQ(EINVAL, errno);
+  ASSERT_ERRNO(EINVAL);
 }
 
 TEST(time, clock_getres_CLOCK_REALTIME) {
@@ -995,7 +1032,7 @@
   errno = 0;
   timespec ts = { -1, -1 };
   ASSERT_EQ(-1, clock_getres(-1, &ts));
-  ASSERT_EQ(EINVAL, errno);
+  ASSERT_ERRNO(EINVAL);
   ASSERT_EQ(-1, ts.tv_nsec);
   ASSERT_EQ(-1, ts.tv_sec);
 }
@@ -1048,14 +1085,14 @@
     << "commit/?id=e1b6b6ce55a0a25c8aa8af019095253b2133a41a\n"
     << "* https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/"
     << "commit/?id=c80ed088a519da53f27b798a69748eaabc66aadf\n";
-  ASSERT_EQ(0, errno);
+  ASSERT_ERRNO(0);
 }
 
 TEST(time, clock_settime) {
   errno = 0;
   timespec ts;
   ASSERT_EQ(-1, clock_settime(-1, &ts));
-  ASSERT_EQ(EINVAL, errno);
+  ASSERT_ERRNO(EINVAL);
 }
 
 TEST(time, clock_nanosleep_EINVAL) {
@@ -1091,7 +1128,7 @@
   timespec ts = {.tv_sec = -1};
   errno = 0;
   ASSERT_EQ(-1, nanosleep(&ts, nullptr));
-  ASSERT_EQ(EINVAL, errno);
+  ASSERT_ERRNO(EINVAL);
 }
 
 TEST(time, bug_31938693) {
@@ -1102,7 +1139,7 @@
   // Actual underlying bug (the code change, not the tzdata upgrade that first exposed the bug):
   // http://b/31848040
 
-  // This isn't a great test, because very few time zones were actually affected, and there's
+  // This isn't a great test, because very few timezones were actually affected, and there's
   // no real logic to which ones were affected: it was just a coincidence of the data that came
   // after them in the tzdata file.
 
@@ -1143,10 +1180,10 @@
 TEST(time, bug_31339449) {
   // POSIX says localtime acts as if it calls tzset.
   // tzset does two things:
-  //  1. it sets the time zone ctime/localtime/mktime/strftime will use.
+  //  1. it sets the timezone ctime/localtime/mktime/strftime will use.
   //  2. it sets the global `tzname`.
   // POSIX says localtime_r need not set `tzname` (2).
-  // Q: should localtime_r set the time zone (1)?
+  // Q: should localtime_r set the timezone (1)?
   // Upstream tzcode (and glibc) answer "no", everyone else answers "yes".
 
   // Pick a time, any time...
@@ -1254,10 +1291,41 @@
 }
 
 TEST(time, timespec_get) {
-#if __BIONIC__
+#if defined(__BIONIC__)
+  timespec ts = {};
+  ASSERT_EQ(TIME_UTC, timespec_get(&ts, TIME_UTC));
+  ASSERT_EQ(TIME_MONOTONIC, timespec_get(&ts, TIME_MONOTONIC));
+  ASSERT_EQ(TIME_ACTIVE, timespec_get(&ts, TIME_ACTIVE));
+  ASSERT_EQ(TIME_THREAD_ACTIVE, timespec_get(&ts, TIME_THREAD_ACTIVE));
+#else
+  GTEST_SKIP() << "glibc doesn't have timespec_get until 2.21";
+#endif
+}
+
+TEST(time, timespec_get_invalid) {
+#if defined(__BIONIC__)
   timespec ts = {};
   ASSERT_EQ(0, timespec_get(&ts, 123));
-  ASSERT_EQ(TIME_UTC, timespec_get(&ts, TIME_UTC));
+#else
+  GTEST_SKIP() << "glibc doesn't have timespec_get until 2.21";
+#endif
+}
+
+TEST(time, timespec_getres) {
+#if defined(__BIONIC__)
+  timespec ts = {};
+  ASSERT_EQ(TIME_UTC, timespec_getres(&ts, TIME_UTC));
+  ASSERT_EQ(1, ts.tv_nsec);
+  ASSERT_EQ(0, ts.tv_sec);
+#else
+  GTEST_SKIP() << "glibc doesn't have timespec_get until 2.21";
+#endif
+}
+
+TEST(time, timespec_getres_invalid) {
+#if defined(__BIONIC__)
+  timespec ts = {};
+  ASSERT_EQ(0, timespec_getres(&ts, 123));
 #else
   GTEST_SKIP() << "glibc doesn't have timespec_get until 2.21";
 #endif
@@ -1267,3 +1335,150 @@
   ASSERT_EQ(1.0, difftime(1, 0));
   ASSERT_EQ(-1.0, difftime(0, 1));
 }
+
+TEST(time, tzfree_null) {
+#if defined(__BIONIC__)
+  tzfree(nullptr);
+#else
+  GTEST_SKIP() << "glibc doesn't have timezone_t";
+#endif
+}
+
+TEST(time, localtime_rz) {
+#if defined(__BIONIC__)
+  setenv("TZ", "America/Los_Angeles", 1);
+  tzset();
+
+  auto AssertTmEq = [](const struct tm& rhs, int hour) {
+    ASSERT_EQ(93, rhs.tm_year);
+    ASSERT_EQ(0, rhs.tm_mon);
+    ASSERT_EQ(1, rhs.tm_mday);
+    ASSERT_EQ(hour, rhs.tm_hour);
+    ASSERT_EQ(0, rhs.tm_min);
+    ASSERT_EQ(0, rhs.tm_sec);
+  };
+
+  const time_t t = 725875200;
+
+  // Spam localtime_r() while we use localtime_rz().
+  std::atomic<bool> done = false;
+  std::thread thread{[&] {
+    while (!done) {
+      struct tm tm {};
+      ASSERT_EQ(&tm, localtime_r(&t, &tm));
+      AssertTmEq(tm, 0);
+    }
+  }};
+
+  struct tm tm;
+
+  timezone_t london{tzalloc("Europe/London")};
+  tm = {};
+  ASSERT_EQ(&tm, localtime_rz(london, &t, &tm));
+  AssertTmEq(tm, 8);
+
+  timezone_t seoul{tzalloc("Asia/Seoul")};
+  tm = {};
+  ASSERT_EQ(&tm, localtime_rz(seoul, &t, &tm));
+  AssertTmEq(tm, 17);
+
+  // Just check that mktime()'s timezone didn't change.
+  tm = {};
+  ASSERT_EQ(&tm, localtime_r(&t, &tm));
+  ASSERT_EQ(0, tm.tm_hour);
+  AssertTmEq(tm, 0);
+
+  done = true;
+  thread.join();
+
+  tzfree(london);
+  tzfree(seoul);
+#else
+  GTEST_SKIP() << "glibc doesn't have timezone_t";
+#endif
+}
+
+TEST(time, mktime_z) {
+#if defined(__BIONIC__)
+  setenv("TZ", "America/Los_Angeles", 1);
+  tzset();
+
+  // Spam mktime() while we use mktime_z().
+  std::atomic<bool> done = false;
+  std::thread thread{[&done] {
+    while (!done) {
+      struct tm tm {
+        .tm_year = 93, .tm_mday = 1
+      };
+      ASSERT_EQ(725875200, mktime(&tm));
+    }
+  }};
+
+  struct tm tm;
+
+  timezone_t london{tzalloc("Europe/London")};
+  tm = {.tm_year = 93, .tm_mday = 1};
+  ASSERT_EQ(725846400, mktime_z(london, &tm));
+
+  timezone_t seoul{tzalloc("Asia/Seoul")};
+  tm = {.tm_year = 93, .tm_mday = 1};
+  ASSERT_EQ(725814000, mktime_z(seoul, &tm));
+
+  // Just check that mktime()'s timezone didn't change.
+  tm = {.tm_year = 93, .tm_mday = 1};
+  ASSERT_EQ(725875200, mktime(&tm));
+
+  done = true;
+  thread.join();
+
+  tzfree(london);
+  tzfree(seoul);
+#else
+  GTEST_SKIP() << "glibc doesn't have timezone_t";
+#endif
+}
+
+TEST(time, tzalloc_nullptr) {
+#if defined(__BIONIC__)
+  // tzalloc(nullptr) returns the system timezone.
+  timezone_t default_tz = tzalloc(nullptr);
+  ASSERT_NE(nullptr, default_tz);
+
+  // Check that mktime_z() with the default timezone matches mktime().
+  // This assumes that the system timezone doesn't change during the test,
+  // but that should be unlikely, and we don't have much choice if we
+  // want to write a test at all.
+  // We unset $TZ before calling mktime() because mktime() honors $TZ.
+  unsetenv("TZ");
+  struct tm tm = {.tm_year = 93, .tm_mday = 1};
+  time_t t = mktime(&tm);
+  ASSERT_EQ(t, mktime_z(default_tz, &tm));
+
+  // Check that changing $TZ doesn't affect the tzalloc() default in
+  // the same way it would the mktime() default.
+  setenv("TZ", "America/Los_Angeles", 1);
+  tzset();
+  ASSERT_EQ(t, mktime_z(default_tz, &tm));
+
+  setenv("TZ", "Europe/London", 1);
+  tzset();
+  ASSERT_EQ(t, mktime_z(default_tz, &tm));
+
+  setenv("TZ", "Asia/Seoul", 1);
+  tzset();
+  ASSERT_EQ(t, mktime_z(default_tz, &tm));
+
+  tzfree(default_tz);
+#else
+  GTEST_SKIP() << "glibc doesn't have timezone_t";
+#endif
+}
+
+TEST(time, tzalloc_unique_ptr) {
+#if defined(__BIONIC__)
+  std::unique_ptr<std::remove_pointer_t<timezone_t>, decltype(&tzfree)> tz{tzalloc("Asia/Seoul"),
+                                                                           tzfree};
+#else
+  GTEST_SKIP() << "glibc doesn't have timezone_t";
+#endif
+}
diff --git a/tests/uchar_test.cpp b/tests/uchar_test.cpp
index 703f558..fd3b332 100644
--- a/tests/uchar_test.cpp
+++ b/tests/uchar_test.cpp
@@ -24,21 +24,65 @@
 #include <locale.h>
 #include <stdint.h>
 
+#include "utils.h"
+
+// Modern versions of UTF-8 (https://datatracker.ietf.org/doc/html/rfc3629 and
+// newer) explicitly disallow code points beyond U+10FFFF, which exclude all 5-
+// and 6-byte sequences. Earlier versions of UTF-8 allowed the wider range:
+// https://datatracker.ietf.org/doc/html/rfc2279.
+//
+// Bionic's unicode implementation was written after the high values were
+// excluded, so it has never supported them. Other implementations (at least
+// as of glibc 2.36), do support those sequences.
+#if defined(__ANDROID__) || defined(ANDROID_HOST_MUSL)
+constexpr bool kLibcRejectsOverLongUtf8Sequences = true;
+#elif defined(__GLIBC__)
+constexpr bool kLibcRejectsOverLongUtf8Sequences = false;
+#else
+#error kLibcRejectsOverLongUtf8Sequences must be configured for this platform
+#endif
+
 TEST(uchar, sizeof_uchar_t) {
   EXPECT_EQ(2U, sizeof(char16_t));
   EXPECT_EQ(4U, sizeof(char32_t));
 }
 
 TEST(uchar, start_state) {
+  // C23 does not appear to specify the behavior of the conversion functions if
+  // a state is reused before the character is completed. In the wchar.h section
+  // (7.31.6.3) it says:
+  //
+  //     If an mbstate_t object has been altered by any of the functions
+  //     described in this subclause, and is then used with a different
+  //     multibyte character sequence, or in the other conversion direction, or
+  //     with a different LC_CTYPE category setting than on earlier function
+  //     calls, the behavior is undefined.
+  //
+  // But "described in this subclause" refers to the wchar.h functions, not the
+  // uchar.h ones.
+  //
+  // Since C has no opinion, we need to make a choice. While no caller should
+  // ever do this (what does it mean to begin decoding a UTF-32 character while
+  // still in the middle of a UTF-8 sequence?), considering that a decoding
+  // error seems the least surprising. Bionic and glibc both have that behavior.
+  // musl ignores the state (it also doesn't make much sense to read the state
+  // when the entire conversion completes in a single call) and decodes the
+  // UTF-32 character.
+#if !defined(ANDROID_HOST_MUSL)
+  ASSERT_STREQ("C.UTF-8", setlocale(LC_CTYPE, "C.UTF-8"));
+  uselocale(LC_GLOBAL_LOCALE);
+
   char out[MB_LEN_MAX];
   mbstate_t ps;
 
-  // Any non-initial state is invalid when calling c32rtomb.
   memset(&ps, 0, sizeof(ps));
   EXPECT_EQ(static_cast<size_t>(-2), mbrtoc32(nullptr, "\xc2", 1, &ps));
   errno = 0;
   EXPECT_EQ(static_cast<size_t>(-1), c32rtomb(out, 0x00a2, &ps));
-  EXPECT_EQ(EILSEQ, errno);
+  EXPECT_ERRNO(EILSEQ);
+
+  // Similarly (but not in compliance with the standard afaict), musl seems to
+  // ignore the state entirely for the UTF-32 functions rather than reset it.
 
   // If the first argument to c32rtomb is nullptr or the second is L'\0' the shift
   // state should be reset.
@@ -51,14 +95,21 @@
   EXPECT_EQ(static_cast<size_t>(-2), mbrtoc32(nullptr, "\xf0\xa4", 1, &ps));
   EXPECT_EQ(1U, c32rtomb(out, L'\0', &ps));
   EXPECT_TRUE(mbsinit(&ps));
+#endif
 }
 
 TEST(uchar, c16rtomb_null_out) {
+  ASSERT_STREQ("C.UTF-8", setlocale(LC_CTYPE, "C.UTF-8"));
+  uselocale(LC_GLOBAL_LOCALE);
+
   EXPECT_EQ(1U, c16rtomb(nullptr, L'\0', nullptr));
   EXPECT_EQ(1U, c16rtomb(nullptr, L'h', nullptr));
 }
 
 TEST(uchar, c16rtomb_null_char) {
+  ASSERT_STREQ("C.UTF-8", setlocale(LC_CTYPE, "C.UTF-8"));
+  uselocale(LC_GLOBAL_LOCALE);
+
   char bytes[MB_LEN_MAX];
   EXPECT_EQ(1U, c16rtomb(bytes, L'\0', nullptr));
 }
@@ -99,6 +150,9 @@
 }
 
 TEST(uchar, c16rtomb_invalid) {
+  ASSERT_STREQ("C.UTF-8", setlocale(LC_CTYPE, "C.UTF-8"));
+  uselocale(LC_GLOBAL_LOCALE);
+
   char bytes[MB_LEN_MAX];
 
   memset(bytes, 0, sizeof(bytes));
@@ -109,23 +163,29 @@
 }
 
 TEST(uchar, mbrtoc16_null) {
+  ASSERT_STREQ("C.UTF-8", setlocale(LC_CTYPE, "C.UTF-8"));
+  uselocale(LC_GLOBAL_LOCALE);
+
   ASSERT_EQ(0U, mbrtoc16(nullptr, nullptr, 0, nullptr));
 }
 
-TEST(uchar, DISABLED_mbrtoc16_zero_len) {
+TEST(uchar, mbrtoc16_zero_len) {
+  ASSERT_STREQ("C.UTF-8", setlocale(LC_CTYPE, "C.UTF-8"));
+  uselocale(LC_GLOBAL_LOCALE);
+
   char16_t out;
 
   out = L'x';
-  ASSERT_EQ(0U, mbrtoc16(&out, "hello", 0, nullptr));
-  ASSERT_EQ(L'x', out);
+  EXPECT_EQ(static_cast<size_t>(-2), mbrtoc16(&out, "hello", 0, nullptr));
+  EXPECT_EQ(L'x', out);
 
-  ASSERT_EQ(0U, mbrtoc16(&out, "hello", 0, nullptr));
-  ASSERT_EQ(0U, mbrtoc16(&out, "", 0, nullptr));
-  ASSERT_EQ(1U, mbrtoc16(&out, "hello", 1, nullptr));
-  ASSERT_EQ(L'h', out);
+  EXPECT_EQ(static_cast<size_t>(-2), mbrtoc16(&out, "hello", 0, nullptr));
+  EXPECT_EQ(static_cast<size_t>(-2), mbrtoc16(&out, "", 0, nullptr));
+  EXPECT_EQ(1U, mbrtoc16(&out, "hello", 1, nullptr));
+  EXPECT_EQ(L'h', out);
 }
 
-TEST(uchar, DISABLED_mbrtoc16) {
+TEST(uchar, mbrtoc16) {
   char16_t out;
 
   ASSERT_STREQ("C.UTF-8", setlocale(LC_CTYPE, "C.UTF-8"));
@@ -141,27 +201,60 @@
   ASSERT_EQ(3U, mbrtoc16(&out, "\xe2\x82\xac" "def", 6, nullptr));
   ASSERT_EQ(static_cast<char16_t>(0x20ac), out);
   // 4-byte UTF-8 will be returned as a surrogate pair...
-  ASSERT_EQ(static_cast<size_t>(-3),
-            mbrtoc16(&out, "\xf4\x8a\xaf\x8d", 6, nullptr));
+  ASSERT_EQ(4U, mbrtoc16(&out, "\xf4\x8a\xaf\x8d", 6, nullptr));
   ASSERT_EQ(static_cast<char16_t>(0xdbea), out);
-  ASSERT_EQ(4U, mbrtoc16(&out, "\xf4\x8a\xaf\x8d" "ef", 6, nullptr));
+  ASSERT_EQ(static_cast<size_t>(-3), mbrtoc16(&out,
+                                              "\xf4\x8a\xaf\x8d"
+                                              "ef",
+                                              6, nullptr));
   ASSERT_EQ(static_cast<char16_t>(0xdfcd), out);
-  // Illegal 5-byte UTF-8.
+}
+
+TEST(uchar, mbrtoc16_long_sequences) {
+  ASSERT_STREQ("C.UTF-8", setlocale(LC_CTYPE, "C.UTF-8"));
+  uselocale(LC_GLOBAL_LOCALE);
+
+  char16_t out = u'\0';
   errno = 0;
-  ASSERT_EQ(static_cast<size_t>(-1), mbrtoc16(&out, "\xf8\xa1\xa2\xa3\xa4", 5, nullptr));
-  ASSERT_EQ(EILSEQ, errno);
+  auto result = mbrtoc16(&out, "\xf8\xa1\xa2\xa3\xa4", 5, nullptr);
+  if (kLibcRejectsOverLongUtf8Sequences) {
+    EXPECT_EQ(static_cast<size_t>(-1), result);
+    EXPECT_ERRNO(EILSEQ);
+    EXPECT_EQ(u'\0', out);
+  } else {
+    EXPECT_EQ(5U, result);
+    EXPECT_ERRNO(0);
+    EXPECT_EQ(u'\uf94a', out);
+  }
 }
 
 TEST(uchar, mbrtoc16_reserved_range) {
-  char16_t out;
-  ASSERT_EQ(static_cast<size_t>(-1),
-            mbrtoc16(&out, "\xf0\x80\xbf\xbf", 6, nullptr));
+  ASSERT_STREQ("C.UTF-8", setlocale(LC_CTYPE, "C.UTF-8"));
+  uselocale(LC_GLOBAL_LOCALE);
+
+  errno = 0;
+  char16_t out = u'\0';
+  EXPECT_EQ(static_cast<size_t>(-1), mbrtoc16(&out, "\xf0\x80\xbf\xbf", 6, nullptr));
+  EXPECT_EQ(u'\0', out);
+  EXPECT_ERRNO(EILSEQ);
 }
 
 TEST(uchar, mbrtoc16_beyond_range) {
-  char16_t out;
-  ASSERT_EQ(static_cast<size_t>(-1),
-            mbrtoc16(&out, "\xf5\x80\x80\x80", 6, nullptr));
+  ASSERT_STREQ("C.UTF-8", setlocale(LC_CTYPE, "C.UTF-8"));
+  uselocale(LC_GLOBAL_LOCALE);
+
+  errno = 0;
+  char16_t out = u'\0';
+  auto result = mbrtoc16(&out, "\xf5\x80\x80\x80", 6, nullptr);
+  if (kLibcRejectsOverLongUtf8Sequences) {
+    EXPECT_EQ(static_cast<size_t>(-1), result);
+    EXPECT_EQ(u'\0', out);
+    EXPECT_ERRNO(EILSEQ);
+  } else {
+    EXPECT_EQ(4U, result);
+    EXPECT_EQ(u'\xdcc0', out);
+    EXPECT_ERRNO(0);
+  }
 }
 
 void test_mbrtoc16_incomplete(mbstate_t* ps) {
@@ -183,9 +276,15 @@
   // 4-byte UTF-8.
   ASSERT_EQ(static_cast<size_t>(-2), mbrtoc16(&out, "\xf4", 1, ps));
   ASSERT_EQ(static_cast<size_t>(-2), mbrtoc16(&out, "\x8a\xaf", 2, ps));
-  ASSERT_EQ(static_cast<size_t>(-3), mbrtoc16(&out, "\x8d" "ef", 3, ps));
+  ASSERT_EQ(1U, mbrtoc16(&out,
+                         "\x8d"
+                         "ef",
+                         3, ps));
   ASSERT_EQ(static_cast<char16_t>(0xdbea), out);
-  ASSERT_EQ(1U, mbrtoc16(&out, "\x80" "ef", 3, ps));
+  ASSERT_EQ(static_cast<size_t>(-3), mbrtoc16(&out,
+                                              "\x80"
+                                              "ef",
+                                              3, ps));
   ASSERT_EQ(static_cast<char16_t>(0xdfcd), out);
   ASSERT_TRUE(mbsinit(ps));
 
@@ -193,10 +292,13 @@
   ASSERT_EQ(static_cast<size_t>(-2), mbrtoc16(&out, "\xc2", 1, ps));
   errno = 0;
   ASSERT_EQ(static_cast<size_t>(-1), mbrtoc16(&out, "\x20" "cdef", 5, ps));
-  ASSERT_EQ(EILSEQ, errno);
+  ASSERT_ERRNO(EILSEQ);
 }
 
-TEST(uchar, DISABLED_mbrtoc16_incomplete) {
+TEST(uchar, mbrtoc16_incomplete) {
+  ASSERT_STREQ("C.UTF-8", setlocale(LC_CTYPE, "C.UTF-8"));
+  uselocale(LC_GLOBAL_LOCALE);
+
   mbstate_t ps;
   memset(&ps, 0, sizeof(ps));
 
@@ -247,7 +349,7 @@
   // Invalid code point.
   errno = 0;
   EXPECT_EQ(static_cast<size_t>(-1), c32rtomb(bytes, 0xffffffff, nullptr));
-  EXPECT_EQ(EILSEQ, errno);
+  EXPECT_ERRNO(EILSEQ);
 }
 
 TEST(uchar, mbrtoc32_valid_non_characters) {
@@ -265,55 +367,78 @@
   ASSERT_STREQ("C.UTF-8", setlocale(LC_CTYPE, "C.UTF-8"));
   uselocale(LC_GLOBAL_LOCALE);
 
-  char32_t out[8] = {};
+  char32_t out = U'\0';
   errno = 0;
-  ASSERT_EQ(static_cast<size_t>(-1), mbrtoc32(out, "\xf5\x80\x80\x80", 4, nullptr));
-  ASSERT_EQ(EILSEQ, errno);
+  auto result = mbrtoc32(&out, "\xf5\x80\x80\x80", 4, nullptr);
+  if (kLibcRejectsOverLongUtf8Sequences) {
+    EXPECT_EQ(static_cast<size_t>(-1), result);
+    EXPECT_ERRNO(EILSEQ);
+    EXPECT_EQ(U'\0', out);
+  } else {
+    EXPECT_EQ(4U, result);
+    EXPECT_ERRNO(0);
+    EXPECT_EQ(U'\x140000', out);
+  }
 }
 
-TEST(uchar, DISABLED_mbrtoc32) {
+TEST(uchar, mbrtoc32) {
   char32_t out[8];
 
   out[0] = L'x';
-  ASSERT_EQ(0U, mbrtoc32(out, "hello", 0, nullptr));
-  ASSERT_EQ(static_cast<char32_t>(L'x'), out[0]);
+  EXPECT_EQ(static_cast<size_t>(-2), mbrtoc32(out, "hello", 0, nullptr));
+  EXPECT_EQ(static_cast<char32_t>(L'x'), out[0]);
 
-  ASSERT_EQ(0U, mbrtoc32(out, "hello", 0, nullptr));
-  ASSERT_EQ(0U, mbrtoc32(out, "", 0, nullptr));
-  ASSERT_EQ(1U, mbrtoc32(out, "hello", 1, nullptr));
-  ASSERT_EQ(static_cast<char32_t>(L'h'), out[0]);
+  EXPECT_EQ(static_cast<size_t>(-2), mbrtoc32(out, "hello", 0, nullptr));
+  EXPECT_EQ(static_cast<size_t>(-2), mbrtoc32(out, "", 0, nullptr));
+  EXPECT_EQ(1U, mbrtoc32(out, "hello", 1, nullptr));
+  EXPECT_EQ(static_cast<char32_t>(L'h'), out[0]);
 
-  ASSERT_EQ(0U, mbrtoc32(nullptr, "hello", 0, nullptr));
-  ASSERT_EQ(0U, mbrtoc32(nullptr, "", 0, nullptr));
-  ASSERT_EQ(1U, mbrtoc32(nullptr, "hello", 1, nullptr));
+  EXPECT_EQ(static_cast<size_t>(-2), mbrtoc32(nullptr, "hello", 0, nullptr));
+  EXPECT_EQ(static_cast<size_t>(-2), mbrtoc32(nullptr, "", 0, nullptr));
+  EXPECT_EQ(1U, mbrtoc32(nullptr, "hello", 1, nullptr));
 
-  ASSERT_EQ(0U, mbrtoc32(nullptr, nullptr, 0, nullptr));
+  EXPECT_EQ(0U, mbrtoc32(nullptr, nullptr, 0, nullptr));
 
   ASSERT_STREQ("C.UTF-8", setlocale(LC_CTYPE, "C.UTF-8"));
   uselocale(LC_GLOBAL_LOCALE);
 
   // 1-byte UTF-8.
-  ASSERT_EQ(1U, mbrtoc32(out, "abcdef", 6, nullptr));
-  ASSERT_EQ(static_cast<char32_t>(L'a'), out[0]);
+  EXPECT_EQ(1U, mbrtoc32(out, "abcdef", 6, nullptr));
+  EXPECT_EQ(static_cast<char32_t>(L'a'), out[0]);
   // 2-byte UTF-8.
-  ASSERT_EQ(2U, mbrtoc32(out, "\xc2\xa2" "cdef", 6, nullptr));
-  ASSERT_EQ(static_cast<char32_t>(0x00a2), out[0]);
+  EXPECT_EQ(2U, mbrtoc32(out,
+                         "\xc2\xa2"
+                         "cdef",
+                         6, nullptr));
+  EXPECT_EQ(static_cast<char32_t>(0x00a2), out[0]);
   // 3-byte UTF-8.
-  ASSERT_EQ(3U, mbrtoc32(out, "\xe2\x82\xac" "def", 6, nullptr));
-  ASSERT_EQ(static_cast<char32_t>(0x20ac), out[0]);
+  EXPECT_EQ(3U, mbrtoc32(out,
+                         "\xe2\x82\xac"
+                         "def",
+                         6, nullptr));
+  EXPECT_EQ(static_cast<char32_t>(0x20ac), out[0]);
   // 4-byte UTF-8.
-  ASSERT_EQ(4U, mbrtoc32(out, "\xf0\xa4\xad\xa2" "ef", 6, nullptr));
-  ASSERT_EQ(static_cast<char32_t>(0x24b62), out[0]);
+  EXPECT_EQ(4U, mbrtoc32(out,
+                         "\xf0\xa4\xad\xa2"
+                         "ef",
+                         6, nullptr));
+  EXPECT_EQ(static_cast<char32_t>(0x24b62), out[0]);
 #if defined(__BIONIC__) // glibc allows this.
   // Illegal 5-byte UTF-8.
   errno = 0;
-  ASSERT_EQ(static_cast<size_t>(-1), mbrtoc32(out, "\xf8\xa1\xa2\xa3\xa4" "f", 6, nullptr));
-  ASSERT_EQ(EILSEQ, errno);
+  EXPECT_EQ(static_cast<size_t>(-1), mbrtoc32(out,
+                                              "\xf8\xa1\xa2\xa3\xa4"
+                                              "f",
+                                              6, nullptr));
+  EXPECT_ERRNO(EILSEQ);
 #endif
   // Illegal over-long sequence.
   errno = 0;
-  ASSERT_EQ(static_cast<size_t>(-1), mbrtoc32(out, "\xf0\x82\x82\xac" "ef", 6, nullptr));
-  ASSERT_EQ(EILSEQ, errno);
+  EXPECT_EQ(static_cast<size_t>(-1), mbrtoc32(out,
+                                              "\xf0\x82\x82\xac"
+                                              "ef",
+                                              6, nullptr));
+  EXPECT_ERRNO(EILSEQ);
 }
 
 void test_mbrtoc32_incomplete(mbstate_t* ps) {
@@ -343,10 +468,13 @@
   ASSERT_EQ(static_cast<size_t>(-2), mbrtoc32(&out, "\xc2", 1, ps));
   errno = 0;
   ASSERT_EQ(static_cast<size_t>(-1), mbrtoc32(&out, "\x20" "cdef", 5, ps));
-  ASSERT_EQ(EILSEQ, errno);
+  ASSERT_ERRNO(EILSEQ);
 }
 
 TEST(uchar, mbrtoc32_incomplete) {
+  ASSERT_STREQ("C.UTF-8", setlocale(LC_CTYPE, "C.UTF-8"));
+  uselocale(LC_GLOBAL_LOCALE);
+
   mbstate_t ps;
   memset(&ps, 0, sizeof(ps));
 
diff --git a/tests/unistd_test.cpp b/tests/unistd_test.cpp
index 4c21627..9ad3b6d 100644
--- a/tests/unistd_test.cpp
+++ b/tests/unistd_test.cpp
@@ -16,6 +16,7 @@
 
 #include <gtest/gtest.h>
 
+#include "DoNotOptimize.h"
 #include "SignalUtils.h"
 #include "utils.h"
 
@@ -72,7 +73,7 @@
   void* new_break = reinterpret_cast<void*>(reinterpret_cast<uintptr_t>(initial_break) + 1);
   int ret = brk(new_break);
   if (ret == -1) {
-    ASSERT_EQ(errno, ENOMEM);
+    ASSERT_ERRNO(ENOMEM);
   } else {
     ASSERT_EQ(0, ret);
     ASSERT_GE(get_brk(), new_break);
@@ -82,7 +83,7 @@
   new_break = page_align(reinterpret_cast<uintptr_t>(initial_break) + sysconf(_SC_PAGE_SIZE));
   ret = brk(new_break);
   if (ret == -1) {
-    ASSERT_EQ(errno, ENOMEM);
+    ASSERT_ERRNO(ENOMEM);
   } else {
     ASSERT_EQ(0, ret);
     ASSERT_EQ(get_brk(), new_break);
@@ -91,7 +92,7 @@
 
 TEST(UNISTD_TEST, brk_ENOMEM) {
   ASSERT_EQ(-1, brk(reinterpret_cast<void*>(-1)));
-  ASSERT_EQ(ENOMEM, errno);
+  ASSERT_ERRNO(ENOMEM);
 }
 
 #if defined(__GLIBC__)
@@ -124,18 +125,18 @@
 
   // Can't increase by so much that we'd overflow.
   ASSERT_EQ(reinterpret_cast<void*>(-1), sbrk(PTRDIFF_MAX));
-  ASSERT_EQ(ENOMEM, errno);
+  ASSERT_ERRNO(ENOMEM);
 
   // Set the current break to a point that will cause an overflow.
   __bionic_brk = reinterpret_cast<void*>(static_cast<uintptr_t>(PTRDIFF_MAX));
 
   ASSERT_EQ(reinterpret_cast<void*>(-1), sbrk(PTRDIFF_MIN));
-  ASSERT_EQ(ENOMEM, errno);
+  ASSERT_ERRNO(ENOMEM);
 
   __bionic_brk = reinterpret_cast<void*>(static_cast<uintptr_t>(PTRDIFF_MAX) - 1);
 
   ASSERT_EQ(reinterpret_cast<void*>(-1), sbrk(PTRDIFF_MIN + 1));
-  ASSERT_EQ(ENOMEM, errno);
+  ASSERT_ERRNO(ENOMEM);
 #else
   class ScopedBrk {
   public:
@@ -154,7 +155,7 @@
     ASSERT_EQ(reinterpret_cast<void*>(-1), sbrk(SBRK_MIN));
 #if defined(__BIONIC__)
     // GLIBC does not set errno in overflow case.
-    ASSERT_EQ(ENOMEM, errno);
+    ASSERT_ERRNO(ENOMEM);
 #endif
   }
 
@@ -167,7 +168,7 @@
     ASSERT_EQ(reinterpret_cast<void*>(-1), sbrk(SBRK_MAX));
 #if defined(__BIONIC__)
     // GLIBC does not set errno in overflow case.
-    ASSERT_EQ(ENOMEM, errno);
+    ASSERT_ERRNO(ENOMEM);
 #endif
   }
 #endif
@@ -217,7 +218,7 @@
   TemporaryFile tf;
   errno = 0;
   ASSERT_EQ(-1, ftruncate(tf.fd, -123));
-  ASSERT_EQ(EINVAL, errno);
+  ASSERT_ERRNO(EINVAL);
 }
 
 static bool g_pause_test_flag = false;
@@ -253,7 +254,7 @@
   // our syscall stubs correctly return a 64-bit -1.
   char buf[1];
   ASSERT_EQ(-1, read(-1, buf, sizeof(buf)));
-  ASSERT_EQ(EBADF, errno);
+  ASSERT_ERRNO(EBADF);
 }
 
 TEST(UNISTD_TEST, syscall_long) {
@@ -288,27 +289,27 @@
 
 TEST(UNISTD_TEST, unsetenv_EINVAL) {
   EXPECT_EQ(-1, unsetenv(""));
-  EXPECT_EQ(EINVAL, errno);
+  EXPECT_ERRNO(EINVAL);
   EXPECT_EQ(-1, unsetenv("a=b"));
-  EXPECT_EQ(EINVAL, errno);
+  EXPECT_ERRNO(EINVAL);
 }
 
 TEST(UNISTD_TEST, setenv_EINVAL) {
 #pragma clang diagnostic push
 #pragma clang diagnostic ignored "-Wnonnull"
   EXPECT_EQ(-1, setenv(nullptr, "value", 0));
-  EXPECT_EQ(EINVAL, errno);
+  EXPECT_ERRNO(EINVAL);
   EXPECT_EQ(-1, setenv(nullptr, "value", 1));
-  EXPECT_EQ(EINVAL, errno);
+  EXPECT_ERRNO(EINVAL);
 #pragma clang diagnostic pop
   EXPECT_EQ(-1, setenv("", "value", 0));
-  EXPECT_EQ(EINVAL, errno);
+  EXPECT_ERRNO(EINVAL);
   EXPECT_EQ(-1, setenv("", "value", 1));
-  EXPECT_EQ(EINVAL, errno);
+  EXPECT_ERRNO(EINVAL);
   EXPECT_EQ(-1, setenv("a=b", "value", 0));
-  EXPECT_EQ(EINVAL, errno);
+  EXPECT_ERRNO(EINVAL);
   EXPECT_EQ(-1, setenv("a=b", "value", 1));
-  EXPECT_EQ(EINVAL, errno);
+  EXPECT_ERRNO(EINVAL);
 }
 
 TEST(UNISTD_TEST, setenv) {
@@ -394,7 +395,7 @@
   // Can't sync an invalid fd.
   errno = 0;
   EXPECT_EQ(-1, fn(-1));
-  EXPECT_EQ(EBADF, errno);
+  EXPECT_ERRNO(EBADF);
 
   // It doesn't matter whether you've opened a file for write or not.
   TemporaryFile tf;
@@ -424,7 +425,7 @@
   int fd = open("/proc/version", O_RDONLY);
   ASSERT_NE(-1, fd);
   EXPECT_EQ(-1, fn(fd));
-  EXPECT_EQ(EINVAL, errno);
+  EXPECT_ERRNO(EINVAL);
   close(fd);
 }
 
@@ -440,6 +441,22 @@
   TestSyncFunction(syncfs);
 }
 
+TEST(UNISTD_TEST, _Fork) {
+#if defined(__BIONIC__)
+  pid_t rc = _Fork();
+  ASSERT_NE(-1, rc);
+  if (rc == 0) {
+    _exit(66);
+  }
+
+  int status;
+  pid_t wait_result = waitpid(rc, &status, 0);
+  ASSERT_EQ(wait_result, rc);
+  ASSERT_TRUE(WIFEXITED(status));
+  ASSERT_EQ(66, WEXITSTATUS(status));
+#endif
+}
+
 TEST(UNISTD_TEST, vfork) {
 #if defined(__BIONIC__)
   pthread_internal_t* self = __get_thread();
@@ -737,7 +754,6 @@
   ASSERT_EQ(0, gethostname(hostname, HOST_NAME_MAX));
 
   // Can we get the hostname with a right-sized buffer?
-  errno = 0;
   ASSERT_EQ(0, gethostname(hostname, strlen(hostname) + 1));
 
   // Does uname(2) agree?
@@ -749,27 +765,41 @@
   // Do we correctly detect truncation?
   errno = 0;
   ASSERT_EQ(-1, gethostname(hostname, strlen(hostname)));
-  ASSERT_EQ(ENAMETOOLONG, errno);
+  ASSERT_ERRNO(ENAMETOOLONG);
 }
 
 TEST(UNISTD_TEST, pathconf_fpathconf) {
   TemporaryFile tf;
-  long rc = 0L;
+  long l;
+
   // As a file system's block size is always power of 2, the configure values
   // for ALLOC and XFER should be power of 2 as well.
-  rc = pathconf(tf.path, _PC_ALLOC_SIZE_MIN);
-  ASSERT_TRUE(rc > 0 && powerof2(rc));
-  rc = pathconf(tf.path, _PC_REC_MIN_XFER_SIZE);
-  ASSERT_TRUE(rc > 0 && powerof2(rc));
-  rc = pathconf(tf.path, _PC_REC_XFER_ALIGN);
-  ASSERT_TRUE(rc > 0 && powerof2(rc));
+  l = pathconf(tf.path, _PC_ALLOC_SIZE_MIN);
+  ASSERT_TRUE(l > 0 && powerof2(l));
+  l = pathconf(tf.path, _PC_REC_MIN_XFER_SIZE);
+  ASSERT_TRUE(l > 0 && powerof2(l));
+  l = pathconf(tf.path, _PC_REC_XFER_ALIGN);
+  ASSERT_TRUE(l > 0 && powerof2(l));
 
-  rc = fpathconf(tf.fd, _PC_ALLOC_SIZE_MIN);
-  ASSERT_TRUE(rc > 0 && powerof2(rc));
-  rc = fpathconf(tf.fd, _PC_REC_MIN_XFER_SIZE);
-  ASSERT_TRUE(rc > 0 && powerof2(rc));
-  rc = fpathconf(tf.fd, _PC_REC_XFER_ALIGN);
-  ASSERT_TRUE(rc > 0 && powerof2(rc));
+  l = fpathconf(tf.fd, _PC_ALLOC_SIZE_MIN);
+  ASSERT_TRUE(l > 0 && powerof2(l));
+  l = fpathconf(tf.fd, _PC_REC_MIN_XFER_SIZE);
+  ASSERT_TRUE(l > 0 && powerof2(l));
+  l = fpathconf(tf.fd, _PC_REC_XFER_ALIGN);
+  ASSERT_TRUE(l > 0 && powerof2(l));
+
+  // Check that the "I can't answer that, you'll have to try it and see"
+  // cases don't set errno.
+  int names[] = {
+      _PC_ASYNC_IO, _PC_PRIO_IO, _PC_REC_INCR_XFER_SIZE, _PC_REC_MAX_XFER_SIZE, _PC_SYMLINK_MAX,
+      _PC_SYNC_IO,  -1};
+  for (size_t i = 0; names[i] != -1; i++) {
+    errno = 0;
+    ASSERT_EQ(-1, pathconf(tf.path, names[i])) << names[i];
+    ASSERT_ERRNO(0) << names[i];
+    ASSERT_EQ(-1, fpathconf(tf.fd, names[i])) << names[i];
+    ASSERT_ERRNO(0) << names[i];
+  }
 }
 
 TEST(UNISTD_TEST, _POSIX_constants) {
@@ -969,7 +999,7 @@
   VERIFY_SYSCONF_POSIX_VERSION(_SC_CPUTIME);
   VERIFY_SYSCONF_POSITIVE(_SC_EXPR_NEST_MAX);
   VERIFY_SYSCONF_POSITIVE(_SC_LINE_MAX);
-  VERIFY_SYSCONF_POSITIVE(_SC_NGROUPS_MAX);
+  VerifySysconf(_SC_NGROUPS_MAX, "_SC_NGROUPS_MAX", [](long v){return v >= 0 && v <= NGROUPS_MAX;});
   VERIFY_SYSCONF_POSITIVE(_SC_OPEN_MAX);
   VERIFY_SYSCONF_POSITIVE(_SC_PASS_MAX);
   VERIFY_SYSCONF_POSIX_VERSION(_SC_2_C_BIND);
@@ -1128,8 +1158,8 @@
 
 TEST(UNISTD_TEST, sysconf_SC_ARG_MAX) {
   // Since Linux 2.6.23, ARG_MAX isn't a constant and depends on RLIMIT_STACK.
-  // See prepare_arg_pages() in the kernel for the gory details:
-  // https://elixir.bootlin.com/linux/v5.3.11/source/fs/exec.c#L451
+  // See setup_arg_pages() in the kernel for the gory details:
+  // https://elixir.bootlin.com/linux/v6.6.4/source/fs/exec.c#L749
 
   // Get our current limit, and set things up so we restore the limit.
   rlimit rl;
@@ -1146,19 +1176,24 @@
   // _SC_ARG_MAX should be 1/4 the stack size.
   EXPECT_EQ(static_cast<long>(rl.rlim_cur / 4), sysconf(_SC_ARG_MAX));
 
-  // If you have a really small stack, the kernel still guarantees "32 pages" (see fs/exec.c).
+  // If you have a really small stack, the kernel still guarantees a stack
+  // expansion of 128KiB (see setup_arg_pages() in fs/exec.c).
   rl.rlim_cur = 1024;
   rl.rlim_max = RLIM_INFINITY;
   ASSERT_EQ(0, setrlimit(RLIMIT_STACK, &rl));
 
-  EXPECT_EQ(static_cast<long>(32 * sysconf(_SC_PAGE_SIZE)), sysconf(_SC_ARG_MAX));
+  // The stack expansion number is defined in fs/exec.c.
+  // https://elixir.bootlin.com/linux/v6.6.4/source/fs/exec.c#L845
+  constexpr long kernel_stack_expansion = 131072;
+  EXPECT_EQ(kernel_stack_expansion, sysconf(_SC_ARG_MAX));
 
-  // With a 128-page stack limit, we know exactly what _SC_ARG_MAX should be...
-  rl.rlim_cur = 128 * sysconf(_SC_PAGE_SIZE);
+  // If you have a large stack, the kernel will keep the stack
+  // expansion to 128KiB (see setup_arg_pages() in fs/exec.c).
+  rl.rlim_cur = 524288;
   rl.rlim_max = RLIM_INFINITY;
   ASSERT_EQ(0, setrlimit(RLIMIT_STACK, &rl));
 
-  EXPECT_EQ(static_cast<long>((128 * sysconf(_SC_PAGE_SIZE)) / 4), sysconf(_SC_ARG_MAX));
+  EXPECT_EQ(kernel_stack_expansion, sysconf(_SC_ARG_MAX));
 }
 
 TEST(UNISTD_TEST, sysconf_unknown) {
@@ -1166,6 +1201,30 @@
   VERIFY_SYSCONF_UNKNOWN(666);
 }
 
+[[maybe_unused]] static void show_cache(const char* name, long size, long assoc, long line_size) {
+  printf("%s cache size: %ld bytes, line size %ld bytes, ", name, size, line_size);
+  if (assoc == 0) {
+    printf("fully");
+  } else {
+    printf("%ld-way", assoc);
+  }
+  printf(" associative\n");
+}
+
+TEST(UNISTD_TEST, sysconf_cache) {
+#if defined(ANDROID_HOST_MUSL)
+  GTEST_SKIP() << "musl does not have _SC_LEVEL?_?CACHE_SIZE";
+#else
+  // It's not obvious we can _test_ any of these, but we can at least
+  // show the output for humans to inspect.
+  show_cache("L1D", sysconf(_SC_LEVEL1_DCACHE_SIZE), sysconf(_SC_LEVEL1_DCACHE_ASSOC), sysconf(_SC_LEVEL1_DCACHE_LINESIZE));
+  show_cache("L1I", sysconf(_SC_LEVEL1_ICACHE_SIZE), sysconf(_SC_LEVEL1_ICACHE_ASSOC), sysconf(_SC_LEVEL1_ICACHE_LINESIZE));
+  show_cache("L2", sysconf(_SC_LEVEL2_CACHE_SIZE), sysconf(_SC_LEVEL2_CACHE_ASSOC), sysconf(_SC_LEVEL2_CACHE_LINESIZE));
+  show_cache("L3", sysconf(_SC_LEVEL3_CACHE_SIZE), sysconf(_SC_LEVEL3_CACHE_ASSOC), sysconf(_SC_LEVEL3_CACHE_LINESIZE));
+  show_cache("L4", sysconf(_SC_LEVEL4_CACHE_SIZE), sysconf(_SC_LEVEL4_CACHE_ASSOC), sysconf(_SC_LEVEL4_CACHE_LINESIZE));
+#endif
+}
+
 TEST(UNISTD_TEST, dup2_same) {
   // POSIX says of dup2:
   // If fildes2 is already a valid open file descriptor ...
@@ -1182,7 +1241,7 @@
   // Equal, but invalid.
   errno = 0;
   ASSERT_EQ(-1, dup2(fd, fd));
-  ASSERT_EQ(EBADF, errno);
+  ASSERT_ERRNO(EBADF);
 }
 
 TEST(UNISTD_TEST, dup3) {
@@ -1273,11 +1332,11 @@
     // Check that the child cannot lock the file.
     ASSERT_EQ(0, lseek64(tf.fd, 0, SEEK_SET));
     ASSERT_EQ(-1, lockf64(tf.fd, F_TLOCK, file_size));
-    ASSERT_EQ(EAGAIN, errno);
+    ASSERT_ERRNO(EAGAIN);
     // Check also that it reports itself as locked.
     ASSERT_EQ(0, lseek64(tf.fd, 0, SEEK_SET));
     ASSERT_EQ(-1, lockf64(tf.fd, F_TEST, file_size));
-    ASSERT_EQ(EACCES, errno);
+    ASSERT_ERRNO(EACCES);
     _exit(0);
   }
   AssertChildExited(pid, 0);
@@ -1303,11 +1362,11 @@
     // Check that the child cannot lock the first half.
     ASSERT_EQ(0, lseek64(tf.fd, 0, SEEK_SET));
     ASSERT_EQ(-1, lockf64(tf.fd, F_TEST, file_size/2));
-    ASSERT_EQ(EACCES, errno);
+    ASSERT_ERRNO(EACCES);
     // Check also that it reports itself as locked.
     ASSERT_EQ(0, lseek64(tf.fd, 0, SEEK_SET));
     ASSERT_EQ(-1, lockf64(tf.fd, F_TEST, file_size/2));
-    ASSERT_EQ(EACCES, errno);
+    ASSERT_ERRNO(EACCES);
     _exit(0);
   }
   AssertChildExited(pid, 0);
@@ -1329,7 +1388,7 @@
 #if defined(__BIONIC__)
   // bionic and glibc have different behaviors when len is too small
   ASSERT_EQ(-1, getdomainname(buf, strlen(u.domainname)));
-  EXPECT_EQ(EINVAL, errno);
+  EXPECT_ERRNO(EINVAL);
 #endif
 }
 
@@ -1354,7 +1413,7 @@
 
   const char* name = "newdomainname";
   ASSERT_EQ(-1, setdomainname(name, strlen(name)));
-  ASSERT_EQ(EPERM, errno);
+  ASSERT_ERRNO(EPERM);
 
   if (has_admin) {
     ASSERT_EQ(0, capset(&header, &old_caps[0])) << "failed to restore admin privileges";
@@ -1365,7 +1424,7 @@
   ExecTestHelper eth;
   errno = 0;
   ASSERT_EQ(-1, execve("/", eth.GetArgs(), eth.GetEnv()));
-  ASSERT_EQ(EACCES, errno);
+  ASSERT_ERRNO(EACCES);
 }
 
 static void append_llvm_cov_env_var(std::string& env_str) {
@@ -1395,7 +1454,7 @@
 TEST(UNISTD_TEST, execl_failure) {
   errno = 0;
   ASSERT_EQ(-1, execl("/", "/", nullptr));
-  ASSERT_EQ(EACCES, errno);
+  ASSERT_ERRNO(EACCES);
 }
 
 TEST(UNISTD_TEST, execl) {
@@ -1408,7 +1467,7 @@
   ExecTestHelper eth;
   errno = 0;
   ASSERT_EQ(-1, execle("/", "/", nullptr, eth.GetEnv()));
-  ASSERT_EQ(EACCES, errno);
+  ASSERT_ERRNO(EACCES);
 }
 
 TEST(UNISTD_TEST, execle) {
@@ -1427,7 +1486,7 @@
   ExecTestHelper eth;
   errno = 0;
   ASSERT_EQ(-1, execv("/", eth.GetArgs()));
-  ASSERT_EQ(EACCES, errno);
+  ASSERT_ERRNO(EACCES);
 }
 
 TEST(UNISTD_TEST, execv) {
@@ -1440,7 +1499,7 @@
 TEST(UNISTD_TEST, execlp_failure) {
   errno = 0;
   ASSERT_EQ(-1, execlp("/", "/", nullptr));
-  ASSERT_EQ(EACCES, errno);
+  ASSERT_ERRNO(EACCES);
 }
 
 TEST(UNISTD_TEST, execlp) {
@@ -1454,7 +1513,7 @@
   eth.SetArgs({nullptr});
   errno = 0;
   ASSERT_EQ(-1, execvp("/", eth.GetArgs()));
-  ASSERT_EQ(EACCES, errno);
+  ASSERT_ERRNO(EACCES);
 }
 
 TEST(UNISTD_TEST, execvp) {
@@ -1469,7 +1528,7 @@
   errno = 0;
   ASSERT_EQ(-1, execvpe("this-does-not-exist", eth.GetArgs(), eth.GetEnv()));
   // Running in CTS we might not even be able to search all directories in $PATH.
-  ASSERT_TRUE(errno == ENOENT || errno == EACCES);
+  ASSERT_TRUE(errno == ENOENT || errno == EACCES) << strerror(errno);
 }
 
 TEST(UNISTD_TEST, execvpe) {
@@ -1504,7 +1563,7 @@
   // It's not inherently executable.
   errno = 0;
   ASSERT_EQ(-1, execvpe(basename(tf.path), eth.GetArgs(), eth.GetEnv()));
-  ASSERT_EQ(EACCES, errno);
+  ASSERT_ERRNO(EACCES);
 
   // Make it executable (and keep it writable because we're going to rewrite it below).
   ASSERT_EQ(0, chmod(tf.path, 0777));
@@ -1512,7 +1571,7 @@
   // TemporaryFile will have a writable fd, so we can test ETXTBSY while we're here...
   errno = 0;
   ASSERT_EQ(-1, execvpe(basename(tf.path), eth.GetArgs(), eth.GetEnv()));
-  ASSERT_EQ(ETXTBSY, errno);
+  ASSERT_ERRNO(ETXTBSY);
 
   // 1. The simplest test: the kernel should handle this.
   ASSERT_EQ(0, close(tf.fd));
@@ -1533,7 +1592,7 @@
 
   errno = 0;
   ASSERT_EQ(-1, execvp("/system/bin/does-not-exist", eth.GetArgs()));
-  ASSERT_EQ(ENOENT, errno);
+  ASSERT_ERRNO(ENOENT);
 }
 
 TEST(UNISTD_TEST, exec_argv0_null) {
@@ -1560,7 +1619,7 @@
   int fd = open("/", O_RDONLY);
   ASSERT_NE(-1, fd);
   ASSERT_EQ(-1, fexecve(fd, eth.GetArgs(), eth.GetEnv()));
-  ASSERT_EQ(EACCES, errno);
+  ASSERT_ERRNO(EACCES);
   close(fd);
 }
 
@@ -1568,7 +1627,7 @@
   ExecTestHelper eth;
   errno = 0;
   ASSERT_EQ(-1, fexecve(-1, eth.GetArgs(), eth.GetEnv()));
-  ASSERT_EQ(EBADF, errno);
+  ASSERT_ERRNO(EBADF);
 }
 
 TEST(UNISTD_TEST, fexecve_args) {
@@ -1666,16 +1725,13 @@
   int fd = open("/proc/version", O_RDONLY);
   ASSERT_GE(fd, 0);
 
-  // Try to close the file descriptor (this requires a 5.9+ kernel)
-  if (close_range(fd, fd, 0) == 0) {
-    // we can't close it *again*
-    ASSERT_EQ(close(fd), -1);
-    ASSERT_EQ(errno, EBADF);
-  } else {
-    ASSERT_EQ(errno, ENOSYS);
-    // since close_range() failed, we can close it normally
-    ASSERT_EQ(close(fd), 0);
-  }
+  int rc = close_range(fd, fd, 0);
+  if (rc == -1 && errno == ENOSYS) GTEST_SKIP() << "no close_range() in this kernel";
+  ASSERT_EQ(0, rc) << strerror(errno);
+
+  // Check the fd is actually closed.
+  ASSERT_EQ(close(fd), -1);
+  ASSERT_ERRNO(EBADF);
 #endif  // __GLIBC__
 }
 
diff --git a/tests/utils.cpp b/tests/utils.cpp
index 92ab145..e123b42 100644
--- a/tests/utils.cpp
+++ b/tests/utils.cpp
@@ -28,6 +28,9 @@
 
 #include "utils.h"
 
+#include <string.h>
+#include <syscall.h>
+
 #include <string>
 
 #include <android-base/properties.h>
@@ -63,3 +66,34 @@
          (android::base::GetBoolProperty("ro.debuggable", false) &&
           android::base::GetBoolProperty("debug.force_low_ram", false));
 }
+
+#if defined(__GLIBC__) && __GLIBC_MINOR__ < 30
+pid_t gettid() {
+  return syscall(__NR_gettid);
+}
+#endif
+
+void PrintTo(const Errno& e, std::ostream* os) {
+  // Prefer EINVAL or whatever, but fall back to strerror() to print
+  // "Unknown error 666" for bogus values. Not that I've ever seen one,
+  // but we shouldn't be looking at an assertion failure unless something
+  // weird has happened!
+#if defined(__BIONIC__)
+  const char* errno_name = strerrorname_np(e.errno_);
+  if (errno_name != nullptr) {
+    *os << errno_name;
+  } else
+#endif
+  {
+    *os << strerror(e.errno_);
+  }
+}
+
+int64_t NanoTime() {
+  auto t = std::chrono::time_point_cast<std::chrono::nanoseconds>(std::chrono::steady_clock::now());
+  return t.time_since_epoch().count();
+}
+
+bool operator==(const Errno& lhs, const Errno& rhs) {
+  return lhs.errno_ == rhs.errno_;
+}
diff --git a/tests/utils.h b/tests/utils.h
index 2e00cc1..4740e59 100644
--- a/tests/utils.h
+++ b/tests/utils.h
@@ -38,6 +38,7 @@
 #endif
 
 #include <atomic>
+#include <iomanip>
 #include <string>
 #include <regex>
 
@@ -253,7 +254,7 @@
     AssertChildExited(pid, expected_exit_status, &error_msg);
     if (expected_output_regex != nullptr) {
       if (!std::regex_search(output_, std::regex(expected_output_regex))) {
-        FAIL() << "regex " << expected_output_regex << " didn't match " << output_;
+        FAIL() << "regex " << std::quoted(expected_output_regex) << " didn't match " << std::quoted(output_);
       }
     }
   }
@@ -294,16 +295,6 @@
   size_t start_count_ = CountOpenFds();
 };
 
-// From <benchmark/benchmark.h>.
-template <class Tp>
-static inline void DoNotOptimize(Tp const& value) {
-  asm volatile("" : : "r,m"(value) : "memory");
-}
-template <class Tp>
-static inline void DoNotOptimize(Tp& value) {
-  asm volatile("" : "+r,m"(value) : : "memory");
-}
-
 static inline bool running_with_mte() {
 #ifdef __aarch64__
   int level = prctl(PR_GET_TAGGED_ADDR_CTRL, 0, 0, 0, 0);
@@ -315,3 +306,15 @@
 }
 
 bool IsLowRamDevice();
+
+int64_t NanoTime();
+
+class Errno {
+ public:
+  Errno(int e) : errno_(e) {}
+  int errno_;
+};
+void PrintTo(const Errno& e, std::ostream* os);
+bool operator==(const Errno& lhs, const Errno& rhs);
+#define ASSERT_ERRNO(expected_errno) ASSERT_EQ(Errno(expected_errno), Errno(errno))
+#define EXPECT_ERRNO(expected_errno) EXPECT_EQ(Errno(expected_errno), Errno(errno))
diff --git a/tests/wchar_test.cpp b/tests/wchar_test.cpp
index 07eef1b..a811fd8 100644
--- a/tests/wchar_test.cpp
+++ b/tests/wchar_test.cpp
@@ -29,14 +29,45 @@
 
 #define NUM_WCHARS(num_bytes) ((num_bytes)/sizeof(wchar_t))
 
+#ifdef __GLIBC__
+// glibc immediately dereferences the locale passed to all wcsto*_l functions,
+// even if it won't be used, and even if it's LC_GLOBAL_LOCALE, which isn't a
+// pointer to valid memory.
+static locale_t SAFE_LC_GLOBAL_LOCALE = duplocale(LC_GLOBAL_LOCALE);
+#else
+static locale_t SAFE_LC_GLOBAL_LOCALE = LC_GLOBAL_LOCALE;
+#endif
+
+// Modern versions of UTF-8 (https://datatracker.ietf.org/doc/html/rfc3629 and
+// newer) explicitly disallow code points beyond U+10FFFF, which exclude all 5-
+// and 6-byte sequences. Earlier versions of UTF-8 allowed the wider range:
+// https://datatracker.ietf.org/doc/html/rfc2279.
+//
+// Bionic's unicode implementation was written after the high values were
+// excluded, so it has never supported them. Other implementations (at least
+// as of glibc 2.36), do support those sequences.
+#if defined(__ANDROID__) || defined(ANDROID_HOST_MUSL)
+constexpr bool kLibcRejectsOverLongUtf8Sequences = true;
+#elif defined(__GLIBC__)
+constexpr bool kLibcRejectsOverLongUtf8Sequences = false;
+#else
+#error kLibcRejectsOverLongUtf8Sequences must be configured for this platform
+#endif
+
+#if defined(__GLIBC__)
+constexpr bool kLibcSupportsParsingBinaryLiterals = __GLIBC_PREREQ(2, 38);
+#else
+constexpr bool kLibcSupportsParsingBinaryLiterals = true;
+#endif
+
 TEST(wchar, sizeof_wchar_t) {
   EXPECT_EQ(4U, sizeof(wchar_t));
   EXPECT_EQ(4U, sizeof(wint_t));
 }
 
-TEST(wchar, DISABLED_mbrlen) {
+TEST(wchar, mbrlen) {
   char bytes[] = { 'h', 'e', 'l', 'l', 'o', '\0' };
-  EXPECT_EQ(0U, mbrlen(&bytes[0], 0, nullptr));
+  EXPECT_EQ(static_cast<size_t>(-2), mbrlen(&bytes[0], 0, nullptr));
   EXPECT_EQ(1U, mbrlen(&bytes[0], 1, nullptr));
 
   EXPECT_EQ(1U, mbrlen(&bytes[4], 1, nullptr));
@@ -91,10 +122,13 @@
   EXPECT_EQ('\xa2', bytes[3]);
   // Invalid code point.
   EXPECT_EQ(static_cast<size_t>(-1), wcrtomb(bytes, 0xffffffff, nullptr));
-  EXPECT_EQ(EILSEQ, errno);
+  EXPECT_ERRNO(EILSEQ);
 }
 
 TEST(wchar, wcrtomb_start_state) {
+  ASSERT_STREQ("C.UTF-8", setlocale(LC_CTYPE, "C.UTF-8"));
+  uselocale(LC_GLOBAL_LOCALE);
+
   char out[MB_LEN_MAX];
   mbstate_t ps;
 
@@ -102,7 +136,7 @@
   memset(&ps, 0, sizeof(ps));
   EXPECT_EQ(static_cast<size_t>(-2), mbrtowc(nullptr, "\xc2", 1, &ps));
   EXPECT_EQ(static_cast<size_t>(-1), wcrtomb(out, 0x00a2, &ps));
-  EXPECT_EQ(EILSEQ, errno);
+  EXPECT_ERRNO(EILSEQ);
 
   // If the first argument to wcrtomb is NULL or the second is L'\0' the shift
   // state should be reset.
@@ -118,6 +152,9 @@
 }
 
 TEST(wchar, wcstombs_wcrtombs) {
+  ASSERT_STREQ("C.UTF-8", setlocale(LC_CTYPE, "C.UTF-8"));
+  uselocale(LC_GLOBAL_LOCALE);
+
   const wchar_t chars[] = { L'h', L'e', L'l', L'l', L'o', 0 };
   const wchar_t bad_chars[] = { L'h', L'i', static_cast<wchar_t>(0xffffffff), 0 };
   const wchar_t* src;
@@ -140,10 +177,10 @@
   // An unrepresentable char just returns an error from wcstombs...
   errno = 0;
   EXPECT_EQ(static_cast<size_t>(-1), wcstombs(nullptr, bad_chars, 0));
-  EXPECT_EQ(EILSEQ, errno);
+  EXPECT_ERRNO(EILSEQ);
   errno = 0;
   EXPECT_EQ(static_cast<size_t>(-1), wcstombs(nullptr, bad_chars, 256));
-  EXPECT_EQ(EILSEQ, errno);
+  EXPECT_ERRNO(EILSEQ);
 
   // And wcsrtombs doesn't tell us where it got stuck because we didn't ask it
   // to actually convert anything...
@@ -151,12 +188,12 @@
   src = bad_chars;
   EXPECT_EQ(static_cast<size_t>(-1), wcsrtombs(nullptr, &src, 0, nullptr));
   EXPECT_EQ(&bad_chars[0], src);
-  EXPECT_EQ(EILSEQ, errno);
+  EXPECT_ERRNO(EILSEQ);
   errno = 0;
   src = bad_chars;
   EXPECT_EQ(static_cast<size_t>(-1), wcsrtombs(nullptr, &src, 256, nullptr));
   EXPECT_EQ(&bad_chars[0], src);
-  EXPECT_EQ(EILSEQ, errno);
+  EXPECT_ERRNO(EILSEQ);
 
   // Okay, now let's test actually converting something...
   memset(bytes, 'x', sizeof(bytes));
@@ -174,7 +211,7 @@
   errno = 0;
   memset(bytes, 'x', sizeof(bytes));
   EXPECT_EQ(static_cast<size_t>(-1), wcstombs(bytes, bad_chars, 256));
-  EXPECT_EQ(EILSEQ, errno);
+  EXPECT_ERRNO(EILSEQ);
   bytes[3] = 0;
   EXPECT_STREQ("hix", bytes);
 
@@ -183,13 +220,13 @@
   src = chars;
   EXPECT_EQ(0U, wcsrtombs(bytes, &src, 0, nullptr));
   EXPECT_EQ(&chars[0], src); // No input consumed.
-  EXPECT_EQ(EILSEQ, errno);
+  EXPECT_ERRNO(EILSEQ);
 
   memset(bytes, 'x', sizeof(bytes));
   src = chars;
   EXPECT_EQ(4U, wcsrtombs(bytes, &src, 4, nullptr));
   EXPECT_EQ(&chars[4], src); // Some input consumed.
-  EXPECT_EQ(EILSEQ, errno);
+  EXPECT_ERRNO(EILSEQ);
   bytes[5] = 0;
   EXPECT_STREQ("hellx", bytes);
 
@@ -197,21 +234,21 @@
   src = chars;
   EXPECT_EQ(5U, wcsrtombs(bytes, &src, 256, nullptr));
   EXPECT_EQ(nullptr, src); // All input consumed!
-  EXPECT_EQ(EILSEQ, errno);
+  EXPECT_ERRNO(EILSEQ);
   EXPECT_STREQ("hello", bytes);
 
   memset(bytes, 'x', sizeof(bytes));
   src = chars;
   EXPECT_EQ(5U, wcsrtombs(bytes, &src, 6, nullptr));
   EXPECT_EQ(nullptr, src); // All input consumed.
-  EXPECT_EQ(EILSEQ, errno);
+  EXPECT_ERRNO(EILSEQ);
   EXPECT_STREQ("hello", bytes);
 
   memset(bytes, 'x', sizeof(bytes));
   src = bad_chars;
   EXPECT_EQ(static_cast<size_t>(-1), wcsrtombs(bytes, &src, 256, nullptr));
   EXPECT_EQ(&bad_chars[2], src);
-  EXPECT_EQ(EILSEQ, errno);
+  EXPECT_ERRNO(EILSEQ);
   bytes[3] = 0;
   EXPECT_STREQ("hix", bytes);
 
@@ -221,7 +258,7 @@
   memset(&ps, 0, sizeof(ps));
   ASSERT_EQ(static_cast<size_t>(-2), mbrtowc(nullptr, "\xc2", 1, &ps));
   EXPECT_EQ(static_cast<size_t>(-1), wcsrtombs(nullptr, &src, 0, &ps));
-  EXPECT_EQ(EILSEQ, errno);
+  EXPECT_ERRNO(EILSEQ);
 }
 
 TEST(wchar, limits) {
@@ -252,66 +289,106 @@
   ASSERT_TRUE(wcsstr(L"romrom", L"rom") != nullptr);
 }
 
-TEST(wchar, DISABLED_mbtowc) {
+TEST(wchar, mbtowc) {
   wchar_t out[8];
 
+  // mbtowc and all the mbrto* APIs behave slightly differently when n is 0:
+  //
+  // mbrtowc returns 0 "if the next n or fewer bytes complete the multibyte
+  // character that corresponds to the null wide character"
+  //
+  // mbrtoc (C23 7.24.7.2.4) says:
+  //
+  //     If s is not a null pointer, the mbtowc function either returns 0 (if s
+  //     points to the null character), or returns the number of bytes that are
+  //     contained in the converted multibyte character (if the next n or fewer
+  //     bytes form a valid multibyte character), or returns -1 (if they do not
+  //     form a valid multibyte character).
+  //
+  // glibc's interpretation differs from all the BSDs (including macOS) and
+  // bionic (by way of openbsd). glibc returns 0 since s does point to the null
+  // character, whereas the BSDs return -1 because the next 0 bytes do not form
+  // a valid multibyte chatacter. glibc's interpretation is probably more
+  // correct from a strict interpretation of the spec, but considering the other
+  // APIs behave more like the BSD interpretation that may be a bug in the spec.
+#ifdef __GLIBC__
+  int expected_result_for_zero_length_empty_string = 0;
+#else
+  int expected_result_for_zero_length_empty_string = -1;
+#endif
+
   out[0] = 'x';
-  ASSERT_EQ(0, mbtowc(out, "hello", 0));
-  ASSERT_EQ('x', out[0]);
+  EXPECT_EQ(-1, mbtowc(out, "hello", 0));
+  EXPECT_EQ('x', out[0]);
 
-  ASSERT_EQ(0, mbtowc(out, "hello", 0));
-  ASSERT_EQ(0, mbtowc(out, "", 0));
-  ASSERT_EQ(1, mbtowc(out, "hello", 1));
-  ASSERT_EQ(L'h', out[0]);
+  EXPECT_EQ(-1, mbtowc(out, "hello", 0));
+  EXPECT_EQ(expected_result_for_zero_length_empty_string, mbtowc(out, "", 0));
+  EXPECT_EQ(1, mbtowc(out, "hello", 1));
+  EXPECT_EQ(L'h', out[0]);
 
-  ASSERT_EQ(0, mbtowc(nullptr, "hello", 0));
-  ASSERT_EQ(0, mbtowc(nullptr, "", 0));
-  ASSERT_EQ(1, mbtowc(nullptr, "hello", 1));
+  EXPECT_EQ(-1, mbtowc(nullptr, "hello", 0));
+  EXPECT_EQ(expected_result_for_zero_length_empty_string, mbtowc(nullptr, "", 0));
+  EXPECT_EQ(1, mbtowc(nullptr, "hello", 1));
 
-  ASSERT_EQ(0, mbtowc(nullptr, nullptr, 0));
+  EXPECT_EQ(0, mbtowc(nullptr, nullptr, 0));
 }
 
-TEST(wchar, DISABLED_mbrtowc) {
+TEST(wchar, mbrtowc) {
   wchar_t out[8];
 
   out[0] = 'x';
-  ASSERT_EQ(0U, mbrtowc(out, "hello", 0, nullptr));
-  ASSERT_EQ('x', out[0]);
+  EXPECT_EQ(static_cast<size_t>(-2), mbrtowc(out, "hello", 0, nullptr));
+  EXPECT_EQ('x', out[0]);
 
-  ASSERT_EQ(0U, mbrtowc(out, "hello", 0, nullptr));
-  ASSERT_EQ(0U, mbrtowc(out, "", 0, nullptr));
-  ASSERT_EQ(1U, mbrtowc(out, "hello", 1, nullptr));
-  ASSERT_EQ(L'h', out[0]);
+  EXPECT_EQ(static_cast<size_t>(-2), mbrtowc(out, "hello", 0, nullptr));
+  EXPECT_EQ(static_cast<size_t>(-2), mbrtowc(out, "", 0, nullptr));
+  EXPECT_EQ(1U, mbrtowc(out, "hello", 1, nullptr));
+  EXPECT_EQ(L'h', out[0]);
 
-  ASSERT_EQ(0U, mbrtowc(nullptr, "hello", 0, nullptr));
-  ASSERT_EQ(0U, mbrtowc(nullptr, "", 0, nullptr));
-  ASSERT_EQ(1U, mbrtowc(nullptr, "hello", 1, nullptr));
+  EXPECT_EQ(static_cast<size_t>(-2), mbrtowc(nullptr, "hello", 0, nullptr));
+  EXPECT_EQ(static_cast<size_t>(-2), mbrtowc(nullptr, "", 0, nullptr));
+  EXPECT_EQ(1U, mbrtowc(nullptr, "hello", 1, nullptr));
 
-  ASSERT_EQ(0U, mbrtowc(nullptr, nullptr, 0, nullptr));
+  EXPECT_EQ(0U, mbrtowc(nullptr, nullptr, 0, nullptr));
 
-  ASSERT_STREQ("C.UTF-8", setlocale(LC_CTYPE, "C.UTF-8"));
+  EXPECT_STREQ("C.UTF-8", setlocale(LC_CTYPE, "C.UTF-8"));
   uselocale(LC_GLOBAL_LOCALE);
 
   // 1-byte UTF-8.
-  ASSERT_EQ(1U, mbrtowc(out, "abcdef", 6, nullptr));
-  ASSERT_EQ(L'a', out[0]);
+  EXPECT_EQ(1U, mbrtowc(out, "abcdef", 6, nullptr));
+  EXPECT_EQ(L'a', out[0]);
   // 2-byte UTF-8.
-  ASSERT_EQ(2U, mbrtowc(out, "\xc2\xa2" "cdef", 6, nullptr));
-  ASSERT_EQ(static_cast<wchar_t>(0x00a2), out[0]);
+  EXPECT_EQ(2U, mbrtowc(out,
+                        "\xc2\xa2"
+                        "cdef",
+                        6, nullptr));
+  EXPECT_EQ(static_cast<wchar_t>(0x00a2), out[0]);
   // 3-byte UTF-8.
-  ASSERT_EQ(3U, mbrtowc(out, "\xe2\x82\xac" "def", 6, nullptr));
-  ASSERT_EQ(static_cast<wchar_t>(0x20ac), out[0]);
+  EXPECT_EQ(3U, mbrtowc(out,
+                        "\xe2\x82\xac"
+                        "def",
+                        6, nullptr));
+  EXPECT_EQ(static_cast<wchar_t>(0x20ac), out[0]);
   // 4-byte UTF-8.
-  ASSERT_EQ(4U, mbrtowc(out, "\xf0\xa4\xad\xa2" "ef", 6, nullptr));
-  ASSERT_EQ(static_cast<wchar_t>(0x24b62), out[0]);
+  EXPECT_EQ(4U, mbrtowc(out,
+                        "\xf0\xa4\xad\xa2"
+                        "ef",
+                        6, nullptr));
+  EXPECT_EQ(static_cast<wchar_t>(0x24b62), out[0]);
 #if defined(__BIONIC__) // glibc allows this.
   // Illegal 5-byte UTF-8.
-  ASSERT_EQ(static_cast<size_t>(-1), mbrtowc(out, "\xf8\xa1\xa2\xa3\xa4" "f", 6, nullptr));
-  ASSERT_EQ(EILSEQ, errno);
+  EXPECT_EQ(static_cast<size_t>(-1), mbrtowc(out,
+                                             "\xf8\xa1\xa2\xa3\xa4"
+                                             "f",
+                                             6, nullptr));
+  EXPECT_ERRNO(EILSEQ);
 #endif
   // Illegal over-long sequence.
-  ASSERT_EQ(static_cast<size_t>(-1), mbrtowc(out, "\xf0\x82\x82\xac" "ef", 6, nullptr));
-  ASSERT_EQ(EILSEQ, errno);
+  EXPECT_EQ(static_cast<size_t>(-1), mbrtowc(out,
+                                             "\xf0\x82\x82\xac"
+                                             "ef",
+                                             6, nullptr));
+  EXPECT_ERRNO(EILSEQ);
 }
 
 TEST(wchar, mbrtowc_valid_non_characters) {
@@ -332,8 +409,14 @@
 
   wchar_t out[8] = {};
   errno = 0;
-  ASSERT_EQ(static_cast<size_t>(-1), mbrtowc(out, "\xf5\x80\x80\x80", 4, nullptr));
-  ASSERT_EQ(EILSEQ, errno);
+  auto result = mbrtowc(out, "\xf5\x80\x80\x80", 4, nullptr);
+  if (kLibcRejectsOverLongUtf8Sequences) {
+    ASSERT_EQ(static_cast<size_t>(-1), result);
+    ASSERT_ERRNO(EILSEQ);
+  } else {
+    ASSERT_EQ(4U, result);
+    ASSERT_ERRNO(0);
+  }
 }
 
 static void test_mbrtowc_incomplete(mbstate_t* ps) {
@@ -362,7 +445,7 @@
   // Invalid 2-byte
   ASSERT_EQ(static_cast<size_t>(-2), mbrtowc(&out, "\xc2", 1, ps));
   ASSERT_EQ(static_cast<size_t>(-1), mbrtowc(&out, "\x20" "cdef", 5, ps));
-  ASSERT_EQ(EILSEQ, errno);
+  ASSERT_ERRNO(EILSEQ);
 }
 
 TEST(wchar, mbrtowc_incomplete) {
@@ -400,12 +483,12 @@
 
   const char* invalid = INVALID;
   ASSERT_EQ(static_cast<size_t>(-1), mbsrtowcs(out, &invalid, 4, ps));
-  EXPECT_EQ(EILSEQ, errno);
+  EXPECT_ERRNO(EILSEQ);
   ASSERT_EQ('\xc2', *invalid);
 
   const char* incomplete = INCOMPLETE;
   ASSERT_EQ(static_cast<size_t>(-1), mbsrtowcs(out, &incomplete, 2, ps));
-  EXPECT_EQ(EILSEQ, errno);
+  EXPECT_ERRNO(EILSEQ);
   ASSERT_EQ('\xc2', *incomplete);
 
   // If dst is null, *src shouldn't be updated.
@@ -435,7 +518,7 @@
   wchar_t out;
   ASSERT_EQ(static_cast<size_t>(-2), mbrtowc(&out, "\xc2", 1, &ps));
   ASSERT_EQ(static_cast<size_t>(-1), mbsrtowcs(&out, &invalid, 1, &ps));
-  EXPECT_EQ(EILSEQ, errno);
+  EXPECT_ERRNO(EILSEQ);
   ASSERT_EQ('\x20', *invalid);
 }
 
@@ -446,8 +529,8 @@
 void TestSingleWcsToInt(WcsToIntFn<T> fn, const wchar_t* str, int base,
                         T expected_value, ptrdiff_t expected_len) {
   wchar_t* p;
-  ASSERT_EQ(expected_value, fn(str, &p, base));
-  ASSERT_EQ(expected_len, p - str) << str;
+  EXPECT_EQ(expected_value, fn(str, &p, base)) << str << " " << base;
+  EXPECT_EQ(expected_len, p - str) << str << " " << base;
 }
 
 template <typename T>
@@ -460,7 +543,9 @@
   TestSingleWcsToInt(fn, L"   123 45", 0, static_cast<T>(123), 6);
   TestSingleWcsToInt(fn, L"  -123", 0, static_cast<T>(-123), 6);
   TestSingleWcsToInt(fn, L"0x10000", 0, static_cast<T>(65536), 7);
-  TestSingleWcsToInt(fn, L"0b1011", 0, static_cast<T>(0b1011), 6);
+  if (kLibcSupportsParsingBinaryLiterals) {
+    TestSingleWcsToInt(fn, L"0b1011", 0, static_cast<T>(0b1011), 6);
+  }
 }
 
 template <typename T>
@@ -471,7 +556,7 @@
   } else {
     // If the subject sequence begins with a <hyphen-minus>, the value resulting
     // from the conversion shall be negated.
-    // http://pubs.opengroup.org/onlinepubs/9699919799/functions/strtoul.html
+    // https://pubs.opengroup.org/onlinepubs/9799919799.2024edition/functions/strtoul.html
     ASSERT_EQ(std::numeric_limits<T>::max(), fn(min_str, nullptr, 0)) << min_str;
   }
   ASSERT_EQ(std::numeric_limits<T>::max(), fn(max_str, nullptr, 0)) << max_str;
@@ -563,12 +648,12 @@
   src = incomplete;
   errno = 0;
   ASSERT_EQ(static_cast<size_t>(-1), mbsnrtowcs(dst, &src, SIZE_MAX, 3, nullptr));
-  ASSERT_EQ(EILSEQ, errno);
+  ASSERT_ERRNO(EILSEQ);
 
   src = incomplete;
   errno = 0;
   ASSERT_EQ(static_cast<size_t>(-1), mbsnrtowcs(nullptr, &src, SIZE_MAX, 3, nullptr));
-  ASSERT_EQ(EILSEQ, errno);
+  ASSERT_ERRNO(EILSEQ);
 }
 
 TEST(wchar, wcsftime__wcsftime_l) {
@@ -584,7 +669,7 @@
 
   EXPECT_EQ(24U, wcsftime(buf, sizeof(buf), L"%c", &t));
   EXPECT_STREQ(L"Sun Mar 10 00:00:00 2100", buf);
-  EXPECT_EQ(24U, wcsftime_l(buf, sizeof(buf), L"%c", &t, LC_GLOBAL_LOCALE));
+  EXPECT_EQ(24U, wcsftime_l(buf, sizeof(buf), L"%c", &t, SAFE_LC_GLOBAL_LOCALE));
   EXPECT_STREQ(L"Sun Mar 10 00:00:00 2100", buf);
 }
 
@@ -719,12 +804,12 @@
   // Invalid buffer.
   errno = 0;
   ASSERT_EQ(nullptr, open_wmemstream(nullptr, &size));
-  ASSERT_EQ(EINVAL, errno);
+  ASSERT_ERRNO(EINVAL);
 
   // Invalid size.
   errno = 0;
   ASSERT_EQ(nullptr, open_wmemstream(&p, nullptr));
-  ASSERT_EQ(EINVAL, errno);
+  ASSERT_ERRNO(EINVAL);
 #pragma clang diagnostic pop
 #else
   GTEST_SKIP() << "This test is bionic-specific";
@@ -734,73 +819,73 @@
 TEST(wchar, wcstol_EINVAL) {
   errno = 0;
   wcstol(L"123", nullptr, -1);
-  ASSERT_EQ(EINVAL, errno);
+  ASSERT_ERRNO(EINVAL);
   errno = 0;
   wcstol(L"123", nullptr, 1);
-  ASSERT_EQ(EINVAL, errno);
+  ASSERT_ERRNO(EINVAL);
   errno = 0;
   wcstol(L"123", nullptr, 37);
-  ASSERT_EQ(EINVAL, errno);
+  ASSERT_ERRNO(EINVAL);
 }
 
 TEST(wchar, wcstoll_EINVAL) {
   errno = 0;
   wcstoll(L"123", nullptr, -1);
-  ASSERT_EQ(EINVAL, errno);
+  ASSERT_ERRNO(EINVAL);
   errno = 0;
   wcstoll(L"123", nullptr, 1);
-  ASSERT_EQ(EINVAL, errno);
+  ASSERT_ERRNO(EINVAL);
   errno = 0;
   wcstoll(L"123", nullptr, 37);
-  ASSERT_EQ(EINVAL, errno);
+  ASSERT_ERRNO(EINVAL);
 }
 
 TEST(wchar, wcstoul_EINVAL) {
   errno = 0;
   wcstoul(L"123", nullptr, -1);
-  ASSERT_EQ(EINVAL, errno);
+  ASSERT_ERRNO(EINVAL);
   errno = 0;
   wcstoul(L"123", nullptr, 1);
-  ASSERT_EQ(EINVAL, errno);
+  ASSERT_ERRNO(EINVAL);
   errno = 0;
   wcstoul(L"123", nullptr, 37);
-  ASSERT_EQ(EINVAL, errno);
+  ASSERT_ERRNO(EINVAL);
 }
 
 TEST(wchar, wcstoull_EINVAL) {
   errno = 0;
   wcstoull(L"123", nullptr, -1);
-  ASSERT_EQ(EINVAL, errno);
+  ASSERT_ERRNO(EINVAL);
   errno = 0;
   wcstoull(L"123", nullptr, 1);
-  ASSERT_EQ(EINVAL, errno);
+  ASSERT_ERRNO(EINVAL);
   errno = 0;
   wcstoull(L"123", nullptr, 37);
-  ASSERT_EQ(EINVAL, errno);
+  ASSERT_ERRNO(EINVAL);
 }
 
 TEST(wchar, wcstoll_l_EINVAL) {
   errno = 0;
-  wcstoll_l(L"123", nullptr, -1, LC_GLOBAL_LOCALE);
-  ASSERT_EQ(EINVAL, errno);
+  wcstoll_l(L"123", nullptr, -1, SAFE_LC_GLOBAL_LOCALE);
+  ASSERT_ERRNO(EINVAL);
   errno = 0;
-  wcstoll_l(L"123", nullptr, 1, LC_GLOBAL_LOCALE);
-  ASSERT_EQ(EINVAL, errno);
+  wcstoll_l(L"123", nullptr, 1, SAFE_LC_GLOBAL_LOCALE);
+  ASSERT_ERRNO(EINVAL);
   errno = 0;
-  wcstoll_l(L"123", nullptr, 37, LC_GLOBAL_LOCALE);
-  ASSERT_EQ(EINVAL, errno);
+  wcstoll_l(L"123", nullptr, 37, SAFE_LC_GLOBAL_LOCALE);
+  ASSERT_ERRNO(EINVAL);
 }
 
 TEST(wchar, wcstoull_l_EINVAL) {
   errno = 0;
-  wcstoull_l(L"123", nullptr, -1, LC_GLOBAL_LOCALE);
-  ASSERT_EQ(EINVAL, errno);
+  wcstoull_l(L"123", nullptr, -1, SAFE_LC_GLOBAL_LOCALE);
+  ASSERT_ERRNO(EINVAL);
   errno = 0;
-  wcstoull_l(L"123", nullptr, 1, LC_GLOBAL_LOCALE);
-  ASSERT_EQ(EINVAL, errno);
+  wcstoull_l(L"123", nullptr, 1, SAFE_LC_GLOBAL_LOCALE);
+  ASSERT_ERRNO(EINVAL);
   errno = 0;
-  wcstoull_l(L"123", nullptr, 37, LC_GLOBAL_LOCALE);
-  ASSERT_EQ(EINVAL, errno);
+  wcstoull_l(L"123", nullptr, 37, SAFE_LC_GLOBAL_LOCALE);
+  ASSERT_ERRNO(EINVAL);
 }
 
 TEST(wchar, wmempcpy) {
@@ -922,7 +1007,7 @@
 
 TEST(wchar, wcstod_l) {
 #if !defined(ANDROID_HOST_MUSL)
-  EXPECT_EQ(1.23, wcstod_l(L"1.23", nullptr, LC_GLOBAL_LOCALE));
+  EXPECT_EQ(1.23, wcstod_l(L"1.23", nullptr, SAFE_LC_GLOBAL_LOCALE));
 #else
   GTEST_SKIP() << "musl doesn't have wcstod_l";
 #endif
@@ -930,7 +1015,7 @@
 
 TEST(wchar, wcstof_l) {
 #if !defined(ANDROID_HOST_MUSL)
-  EXPECT_EQ(1.23f, wcstof_l(L"1.23", nullptr, LC_GLOBAL_LOCALE));
+  EXPECT_EQ(1.23f, wcstof_l(L"1.23", nullptr, SAFE_LC_GLOBAL_LOCALE));
 #else
   GTEST_SKIP() << "musl doesn't have wcstof_l";
 #endif
@@ -938,30 +1023,30 @@
 
 TEST(wchar, wcstol_l) {
 #if !defined(ANDROID_HOST_MUSL)
-  EXPECT_EQ(123L, wcstol_l(L"123", nullptr, 10, LC_GLOBAL_LOCALE));
+  EXPECT_EQ(123L, wcstol_l(L"123", nullptr, 10, SAFE_LC_GLOBAL_LOCALE));
 #else
   GTEST_SKIP() << "musl doesn't have wcstol_l";
 #endif
 }
 
 TEST(wchar, wcstold_l) {
-  EXPECT_EQ(1.23L, wcstold_l(L"1.23", nullptr, LC_GLOBAL_LOCALE));
+  EXPECT_EQ(1.23L, wcstold_l(L"1.23", nullptr, SAFE_LC_GLOBAL_LOCALE));
 }
 
 TEST(wchar, wcstoll_l) {
-  EXPECT_EQ(123LL, wcstoll_l(L"123", nullptr, 10, LC_GLOBAL_LOCALE));
+  EXPECT_EQ(123LL, wcstoll_l(L"123", nullptr, 10, SAFE_LC_GLOBAL_LOCALE));
 }
 
 TEST(wchar, wcstoul_l) {
 #if !defined(ANDROID_HOST_MUSL)
-  EXPECT_EQ(123UL, wcstoul_l(L"123", nullptr, 10, LC_GLOBAL_LOCALE));
+  EXPECT_EQ(123UL, wcstoul_l(L"123", nullptr, 10, SAFE_LC_GLOBAL_LOCALE));
 #else
   GTEST_SKIP() << "musl doesn't have wcstoul_l";
 #endif
 }
 
 TEST(wchar, wcstoull_l) {
-  EXPECT_EQ(123ULL, wcstoull_l(L"123", nullptr, 10, LC_GLOBAL_LOCALE));
+  EXPECT_EQ(123ULL, wcstoull_l(L"123", nullptr, 10, SAFE_LC_GLOBAL_LOCALE));
 }
 
 static void AssertWcwidthRange(wchar_t begin, wchar_t end, int expected) {
@@ -990,10 +1075,39 @@
 
   EXPECT_EQ(0, wcwidth(0x0300)); // Combining grave.
   EXPECT_EQ(0, wcwidth(0x20dd)); // Combining enclosing circle.
-  EXPECT_EQ(0, wcwidth(0x00ad)); // Soft hyphen (SHY).
   EXPECT_EQ(0, wcwidth(0x200b)); // Zero width space.
 }
 
+TEST(wchar, wcwidth_non_spacing_special_cases) {
+  if (!have_dl()) return;
+
+  // U+00AD is a soft hyphen, which normally shouldn't be rendered at all.
+  // I think the assumption here is that you elide the soft hyphen character
+  // completely in that case, and never call wcwidth() if you don't want to
+  // render it as an actual hyphen. Whereas if you do want to render it,
+  // you call wcwidth(), and 1 is the right answer. This is what Markus Kuhn's
+  // original https://www.cl.cam.ac.uk/~mgk25/ucs/wcwidth.c did,
+  // and glibc and iOS do the same.
+  // See also: https://en.wikipedia.org/wiki/Soft_hyphen#Text_to_be_formatted_by_the_recipient
+  EXPECT_EQ(1, wcwidth(0x00ad)); // Soft hyphen (SHY).
+
+  // U+115F is the Hangeul choseong filler (for a degenerate composed
+  // character missing an initial consonant (as opposed to one with a
+  // leading ieung). Since the code points for combining jungseong (medial
+  // vowels) and jongseong (trailing consonants) have width 0, the choseong
+  // (initial consonant) has width 2 to cover the entire syllable. So unless
+  // U+115f has width 2, a degenerate composed "syllable" without an initial
+  // consonant or ieung would have a total width of 0, which is silly.
+  // The following sequence is effectively "약" without the leading ieung...
+  EXPECT_EQ(2, wcwidth(0x115f)); // Hangeul choseong filler.
+  EXPECT_EQ(0, wcwidth(0x1163)); // Hangeul jungseong "ya".
+  EXPECT_EQ(0, wcwidth(0x11a8)); // Hangeul jongseong "kiyeok".
+
+  // U+1160, the jungseong filler, has width 0 because it must have been
+  // preceded by either a choseong or choseong filler.
+  EXPECT_EQ(0, wcwidth(0x1160));
+}
+
 TEST(wchar, wcwidth_cjk) {
   if (!have_dl()) return;
 
@@ -1017,8 +1131,10 @@
   if (!have_dl()) return;
 
   EXPECT_EQ(2, wcwidth(0xac00)); // Start of block.
-  EXPECT_EQ(2, wcwidth(0xd7a3)); // End of defined code points in Unicode 7.
-  // Undefined characters at the end of the block have width 1.
+  EXPECT_EQ(2, wcwidth(0xd7a3)); // End of defined code points as of Unicode 15.
+
+  // Undefined characters at the end of the block currently have width 1,
+  // but since they're undefined, we don't test that.
 }
 
 TEST(wchar, wcwidth_kana) {
@@ -1052,11 +1168,21 @@
   EXPECT_EQ(0, wcwidth(0xe0000)); // ...through 0xe0fff.
 }
 
-TEST(wchar, wcwidth_korean_common_non_syllables) {
+TEST(wchar, wcwidth_hangeul_compatibility_jamo) {
   if (!have_dl()) return;
 
-  EXPECT_EQ(2, wcwidth(L'ㅜ')); // Korean "crying" emoticon.
-  EXPECT_EQ(2, wcwidth(L'ㅋ')); // Korean "laughing" emoticon.
+  // These are actually the *compatibility* jamo code points, *not* the regular
+  // jamo code points (U+1100-U+11FF) using a jungseong filler. If you use the
+  // Android IME to type any of these, you get these code points.
+
+  // (Half of) the Korean "crying" emoticon "ㅠㅠ".
+  // Actually U+3160 "Hangeul Letter Yu" from Hangeul Compatibility Jamo.
+  EXPECT_EQ(2, wcwidth(L'ㅠ'));
+  // The two halves of the Korean internet shorthand "ㄱㅅ" (short for 감사).
+  // Actually U+3131 "Hangeul Letter Kiyeok" and U+3145 "Hangeul Letter Sios"
+  // from Hangeul Compatibility Jamo.
+  EXPECT_EQ(2, wcwidth(L'ㄱ'));
+  EXPECT_EQ(2, wcwidth(L'ㅅ'));
 }
 
 TEST(wchar, wcswidth) {
diff --git a/tests/wctype_test.cpp b/tests/wctype_test.cpp
index 85a46aa..f4b7a8f 100644
--- a/tests/wctype_test.cpp
+++ b/tests/wctype_test.cpp
@@ -35,20 +35,24 @@
                          const wchar_t* falses) {
   UtfLocale l;
   for (const wchar_t* p = trues; *p; ++p) {
-    if (!have_dl() && *p > 0x7f) {
-      GTEST_LOG_(INFO) << "skipping unicode test " << *p;
+    const wchar_t val_ch = *p;
+    const int val_int = static_cast<int>(val_ch);
+    if (!have_dl() && val_ch > 0x7f) {
+      GTEST_LOG_(INFO) << "skipping unicode test " << val_int;
       continue;
     }
-    EXPECT_TRUE(fn(*p)) << *p;
-    EXPECT_TRUE(fn_l(*p, l.l)) << *p;
+    EXPECT_TRUE(fn(val_ch)) << val_int;
+    EXPECT_TRUE(fn_l(val_ch, l.l)) << val_int;
   }
   for (const wchar_t* p = falses; *p; ++p) {
-    if (!have_dl() && *p > 0x7f) {
-      GTEST_LOG_(INFO) << "skipping unicode test " << *p;
+    const wchar_t val_ch = *p;
+    const int val_int = static_cast<int>(val_ch);
+    if (!have_dl() && val_ch > 0x7f) {
+      GTEST_LOG_(INFO) << "skipping unicode test " << val_int;
       continue;
     }
-    EXPECT_FALSE(fn(*p)) << *p;
-    EXPECT_FALSE(fn_l(*p, l.l)) << *p;
+    EXPECT_FALSE(fn(val_ch)) << val_int;
+    EXPECT_FALSE(fn_l(val_ch, l.l)) << val_int;
   }
 }
 
@@ -105,6 +109,8 @@
   EXPECT_EQ(wint_t('!'), towlower(L'!'));
   EXPECT_EQ(wint_t('a'), towlower(L'a'));
   EXPECT_EQ(wint_t('a'), towlower(L'A'));
+  EXPECT_EQ(wint_t('z'), towlower(L'z'));
+  EXPECT_EQ(wint_t('z'), towlower(L'Z'));
   if (have_dl()) {
     EXPECT_EQ(wint_t(L'ç'), towlower(L'ç'));
     EXPECT_EQ(wint_t(L'ç'), towlower(L'Ç'));
@@ -121,6 +127,8 @@
   EXPECT_EQ(wint_t('!'), towlower_l(L'!', l.l));
   EXPECT_EQ(wint_t('a'), towlower_l(L'a', l.l));
   EXPECT_EQ(wint_t('a'), towlower_l(L'A', l.l));
+  EXPECT_EQ(wint_t('z'), towlower_l(L'z', l.l));
+  EXPECT_EQ(wint_t('z'), towlower_l(L'Z', l.l));
   if (have_dl()) {
     EXPECT_EQ(wint_t(L'ç'), towlower_l(L'ç', l.l));
     EXPECT_EQ(wint_t(L'ç'), towlower_l(L'Ç', l.l));
@@ -136,6 +144,8 @@
   EXPECT_EQ(wint_t('!'), towupper(L'!'));
   EXPECT_EQ(wint_t('A'), towupper(L'a'));
   EXPECT_EQ(wint_t('A'), towupper(L'A'));
+  EXPECT_EQ(wint_t('Z'), towupper(L'z'));
+  EXPECT_EQ(wint_t('Z'), towupper(L'Z'));
   if (have_dl()) {
     EXPECT_EQ(wint_t(L'Ç'), towupper(L'ç'));
     EXPECT_EQ(wint_t(L'Ç'), towupper(L'Ç'));
@@ -152,6 +162,8 @@
   EXPECT_EQ(wint_t('!'), towupper_l(L'!', l.l));
   EXPECT_EQ(wint_t('A'), towupper_l(L'a', l.l));
   EXPECT_EQ(wint_t('A'), towupper_l(L'A', l.l));
+  EXPECT_EQ(wint_t('Z'), towupper_l(L'z', l.l));
+  EXPECT_EQ(wint_t('Z'), towupper_l(L'Z', l.l));
   if (have_dl()) {
     EXPECT_EQ(wint_t(L'Ç'), towupper_l(L'ç', l.l));
     EXPECT_EQ(wint_t(L'Ç'), towupper_l(L'Ç', l.l));
@@ -214,34 +226,64 @@
   EXPECT_EQ(0, iswctype_l(WEOF, wctype_l("alnum", l.l), l.l));
 }
 
-TEST(wctype, towctrans) {
+TEST(wctype, wctrans) {
   EXPECT_TRUE(wctrans("tolower") != nullptr);
   EXPECT_TRUE(wctrans("toupper") != nullptr);
 
+  errno = 0;
   EXPECT_TRUE(wctrans("monkeys") == nullptr);
-}
-
-TEST(wctype, towctrans_l) {
-  UtfLocale l;
-  EXPECT_TRUE(wctrans_l("tolower", l.l) != nullptr);
-  EXPECT_TRUE(wctrans_l("toupper", l.l) != nullptr);
-
-  EXPECT_TRUE(wctrans_l("monkeys", l.l) == nullptr);
-}
-
-TEST(wctype, wctrans) {
-  EXPECT_EQ(wint_t('a'), towctrans(L'A', wctrans("tolower")));
-  EXPECT_EQ(WEOF, towctrans(WEOF, wctrans("tolower")));
-
-  EXPECT_EQ(wint_t('A'), towctrans(L'a', wctrans("toupper")));
-  EXPECT_EQ(WEOF, towctrans(WEOF, wctrans("toupper")));
+  #if defined(__BIONIC__)
+  // Android/FreeBSD/iOS set errno, but musl/glibc don't.
+  EXPECT_ERRNO(EINVAL);
+  #endif
 }
 
 TEST(wctype, wctrans_l) {
   UtfLocale l;
-  EXPECT_EQ(wint_t('a'), towctrans_l(L'A', wctrans_l("tolower", l.l), l.l));
-  EXPECT_EQ(WEOF, towctrans_l(WEOF, wctrans_l("tolower", l.l), l.l));
+  EXPECT_TRUE(wctrans_l("tolower", l.l) != nullptr);
+  EXPECT_TRUE(wctrans_l("toupper", l.l) != nullptr);
 
-  EXPECT_EQ(wint_t('A'), towctrans_l(L'a', wctrans_l("toupper", l.l), l.l));
-  EXPECT_EQ(WEOF, towctrans_l(WEOF, wctrans_l("toupper", l.l), l.l));
+  errno = 0;
+  EXPECT_TRUE(wctrans_l("monkeys", l.l) == nullptr);
+  #if defined(__BIONIC__)
+  // Android/FreeBSD/iOS set errno, but musl/glibc don't.
+  EXPECT_ERRNO(EINVAL);
+  #endif
+}
+
+TEST(wctype, towctrans) {
+  wctrans_t lower = wctrans("tolower");
+  EXPECT_EQ(wint_t('a'), towctrans(L'A', lower));
+  EXPECT_EQ(WEOF, towctrans(WEOF, lower));
+
+  wctrans_t upper = wctrans("toupper");
+  EXPECT_EQ(wint_t('A'), towctrans(L'a', upper));
+  EXPECT_EQ(WEOF, towctrans(WEOF, upper));
+
+  wctrans_t invalid = wctrans("monkeys");
+  errno = 0;
+  EXPECT_EQ(wint_t('a'), towctrans(L'a', invalid));
+  #if defined(__BIONIC__)
+  // Android/FreeBSD/iOS set errno, but musl/glibc don't.
+  EXPECT_ERRNO(EINVAL);
+  #endif
+}
+
+TEST(wctype, towctrans_l) {
+  UtfLocale l;
+  wctrans_t lower = wctrans_l("tolower", l.l);
+  EXPECT_EQ(wint_t('a'), towctrans_l(L'A', lower, l.l));
+  EXPECT_EQ(WEOF, towctrans_l(WEOF, lower, l.l));
+
+  wctrans_t upper = wctrans_l("toupper", l.l);
+  EXPECT_EQ(wint_t('A'), towctrans_l(L'a', upper, l.l));
+  EXPECT_EQ(WEOF, towctrans_l(WEOF, upper, l.l));
+
+  wctrans_t invalid = wctrans_l("monkeys", l.l);
+  errno = 0;
+  EXPECT_EQ(wint_t('a'), towctrans_l(L'a', invalid, l.l));
+  #if defined(__BIONIC__)
+  // Android/FreeBSD/iOS set errno, but musl/glibc don't.
+  EXPECT_ERRNO(EINVAL);
+  #endif
 }
diff --git a/tools/NOTICE b/tools/NOTICE
index a4ec954..e69de29 100644
--- a/tools/NOTICE
+++ b/tools/NOTICE
@@ -1,32 +0,0 @@
-Copyright (C) 2016 The Android Open Source Project
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
-     http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-
--------------------------------------------------------------------
-
-Copyright (C) 2018 The Android Open Source Project
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
-     http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-
--------------------------------------------------------------------
-
diff --git a/tools/update_notice.sh b/tools/update_notice.sh
index c45311a..69e090c 100755
--- a/tools/update_notice.sh
+++ b/tools/update_notice.sh
@@ -11,4 +11,4 @@
 python3 ./libc/tools/generate_notice.py linker > linker/NOTICE
 python3 ./libc/tools/generate_notice.py tests > tests/NOTICE
 python3 ./libc/tools/generate_notice.py tools > tools/NOTICE
-git diff --exit-code HEAD libc/NOTICE
+git diff --exit-code HEAD */NOTICE
diff --git a/tools/versioner/Android.bp b/tools/versioner/Android.bp
deleted file mode 100644
index cc4dbfa..0000000
--- a/tools/versioner/Android.bp
+++ /dev/null
@@ -1,7 +0,0 @@
-package {
-    default_applicable_licenses: ["bionic_tools_license"],
-}
-
-subdirs = [
-    "src",
-]
diff --git a/tools/versioner/README.md b/tools/versioner/README.md
deleted file mode 100644
index edb32be..0000000
--- a/tools/versioner/README.md
+++ /dev/null
@@ -1,8 +0,0 @@
-## versioner
-Use clang to verify the correctness of bionic's availability attributes against the NDK platform definitions.
-
-#### Build
-Build with `LLVM_BUILD_HOST_TOOLS=true mma -j48`
-
-#### Use
-`versioner -p platforms current dependencies`
diff --git a/tools/versioner/current b/tools/versioner/current
deleted file mode 120000
index 234dfe7..0000000
--- a/tools/versioner/current
+++ /dev/null
@@ -1 +0,0 @@
-../../libc/include
\ No newline at end of file
diff --git a/tools/versioner/dependencies b/tools/versioner/dependencies
deleted file mode 120000
index 4ec3391..0000000
--- a/tools/versioner/dependencies
+++ /dev/null
@@ -1 +0,0 @@
-../../libc/versioner-dependencies
\ No newline at end of file
diff --git a/tools/versioner/platforms/crtbegin.map.txt b/tools/versioner/platforms/crtbegin.map.txt
deleted file mode 100644
index b844c1e..0000000
--- a/tools/versioner/platforms/crtbegin.map.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-# This file lists the libc functions are included in `crtbegin.o` and not
-# exported by `libc.so`.
-
-CRTBEGIN {
-  global:
-    atexit;  # arm64 x86 x86_64
-};
diff --git a/tools/versioner/platforms/libc.map.txt b/tools/versioner/platforms/libc.map.txt
deleted file mode 120000
index 8527b2e..0000000
--- a/tools/versioner/platforms/libc.map.txt
+++ /dev/null
@@ -1 +0,0 @@
-../../../libc/libc.map.txt
\ No newline at end of file
diff --git a/tools/versioner/run_tests.py b/tools/versioner/run_tests.py
deleted file mode 100755
index 396f895..0000000
--- a/tools/versioner/run_tests.py
+++ /dev/null
@@ -1,85 +0,0 @@
-#!/usr/bin/env python3
-
-import os
-import subprocess
-import sys
-
-red = '\033[91m'
-green = '\033[92m'
-bold = '\033[1m'
-reset = '\033[0m'
-prefix_pass = bold + "[" + green + "PASS" + reset + bold + "]" + reset
-prefix_fail = bold + "[" + red + "FAIL" + reset + bold + "]" + reset
-
-
-def indent(text, spaces=4):
-    text = text.decode("utf-8")
-    prefix = "    "
-    return "\n".join([prefix + line for line in text.split("\n")])
-
-
-def run_test(test_name, path):
-    os.chdir(path)
-    process = subprocess.Popen(
-        ["/bin/sh", "run.sh"], stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
-    (output, _) = process.communicate()
-
-    if os.path.exists("expected_fail"):
-        with open("expected_fail", "rb") as f:
-            expected_output = f.read()
-            if process.returncode == 0:
-                print("{} {}: unexpected success:".format(prefix_fail, test_name))
-                print("")
-                print("  Expected:")
-                print(indent(expected_output))
-                print("  Actual:")
-                print(indent(output))
-                return False
-            elif not output.endswith(expected_output):
-                print("{} {}: expected output mismatch".format(
-                    prefix_fail, test_name))
-                print("")
-                print("  Expected:")
-                print(indent(expected_output))
-                print("  Actual:")
-                print(indent(output))
-                return False
-    elif process.returncode != 0:
-        print("{} {}: unexpected failure:".format(prefix_fail, test_name))
-        print("")
-        print(indent(output))
-        return False
-
-    print("{} {}".format(prefix_pass, test_name))
-    return True
-
-
-def usage():
-    print("Usage: run_tests.py [-f]")
-    print("    -f\t\tdon't run slow tests")
-    sys.exit(0)
-
-
-root_dir = os.path.dirname(os.path.realpath(__file__))
-test_dir = os.path.join(root_dir, "tests")
-tests = os.listdir(test_dir)
-run_slow = True
-
-if len(sys.argv) > 2:
-    usage()
-elif len(sys.argv) == 2:
-    if sys.argv[1] != "-f":
-        usage()
-    run_slow = False
-
-success = True
-for test in sorted(tests):
-    if test.startswith("slow") and not run_slow:
-        continue
-    path = os.path.join(test_dir, test)
-    if not os.path.isdir(path):
-        continue
-    if not run_test(test, path):
-        success = False
-
-sys.exit(0 if success else 1)
diff --git a/tools/versioner/src/Android.bp b/tools/versioner/src/Android.bp
deleted file mode 100644
index abcaaa3..0000000
--- a/tools/versioner/src/Android.bp
+++ /dev/null
@@ -1,51 +0,0 @@
-package {
-    default_applicable_licenses: ["bionic_tools_license"],
-}
-
-cc_binary_host {
-    name: "versioner",
-
-    defaults: ["llvm-build-host-tools-defaults"],
-
-    srcs: [
-        "versioner.cpp",
-        "Arch.cpp",
-        "CompilationType.cpp",
-        "DeclarationDatabase.cpp",
-        "Driver.cpp",
-        "Preprocessor.cpp",
-        "SymbolDatabase.cpp",
-        "SymbolFileParser.cpp",
-        "Utils.cpp",
-        "VFS.cpp",
-    ],
-
-    shared_libs: [
-        "libclang-cpp_host",
-        "libbase",
-    ],
-
-    cflags: [
-        "-Wall",
-        "-Wextra",
-        "-Werror",
-        "-Wno-unused-parameter",
-        "-fno-omit-frame-pointer",
-
-        "-D__STDC_CONSTANT_MACROS",
-        "-D__STDC_LIMIT_MACROS",
-
-        "-D_LIBCPP_ENABLE_CXX17_REMOVED_BINDERS",
-    ],
-
-    target: {
-        host: {
-            cppflags: [
-                "-fno-rtti",
-            ],
-        },
-        windows: {
-            enabled: false,
-        },
-    },
-}
diff --git a/tools/versioner/src/Arch.cpp b/tools/versioner/src/Arch.cpp
deleted file mode 100644
index d4d0208..0000000
--- a/tools/versioner/src/Arch.cpp
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- * Copyright (C) 2016 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "Arch.h"
-
-#include <err.h>
-
-#include <string>
-
-std::string to_string(const Arch& arch) {
-  switch (arch) {
-    case Arch::arm:
-      return "arm";
-
-    case Arch::arm64:
-      return "arm64";
-
-    case Arch::riscv64:
-      return "riscv64";
-
-    case Arch::x86:
-      return "x86";
-
-    case Arch::x86_64:
-      return "x86_64";
-  }
-
-  errx(1, "unknown arch '%zu'", size_t(arch));
-}
-
-static const std::unordered_map<std::string, Arch> arch_name_map{
-  {"arm", Arch::arm},
-  {"arm64", Arch::arm64},
-  {"riscv64", Arch::riscv64},
-  {"x86", Arch::x86},
-  {"x86_64", Arch::x86_64},
-};
-
-std::optional<Arch> arch_from_string(const std::string& name) {
-  auto it = arch_name_map.find(name);
-  if (it == arch_name_map.end()) {
-    return std::nullopt;
-  }
-  return std::make_optional(it->second);
-}
diff --git a/tools/versioner/src/Arch.h b/tools/versioner/src/Arch.h
deleted file mode 100644
index fd98abc..0000000
--- a/tools/versioner/src/Arch.h
+++ /dev/null
@@ -1,170 +0,0 @@
-/*
- * Copyright (C) 2016 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#pragma once
-
-#include <stdlib.h>
-
-#include <array>
-#include <initializer_list>
-#include <optional>
-#include <set>
-#include <string>
-#include <unordered_map>
-
-enum class Arch : size_t {
-  arm = 0,
-  arm64,
-  riscv64,
-  x86,
-  x86_64,
-};
-
-std::string to_string(const Arch& arch);
-std::optional<Arch> arch_from_string(const std::string& name);
-
-template <typename T>
-class ArchMapIterator;
-
-template <typename T>
-class ArchMap {
- public:
-  ArchMap() {
-  }
-
-  ArchMap(std::initializer_list<std::pair<Arch, T>> initializer) {
-    for (auto& pair : initializer) {
-      this->operator[](pair.first) = pair.second;
-    }
-  }
-
-  T& operator[](Arch arch) {
-    return data_[size_t(arch)];
-  }
-
-  const T& operator[](Arch arch) const {
-    return data_[size_t(arch)];
-  }
-
-  bool operator==(const ArchMap& other) const {
-    for (size_t i = 0; i < data_.size(); ++i) {
-      if (data_[i] != other.data_[i]) {
-        return false;
-      }
-    }
-    return true;
-  }
-
-  ArchMapIterator<T> begin() const {
-    return ArchMapIterator<T>(*this, Arch::arm);
-  }
-
-  ArchMapIterator<T> end() const {
-    return ArchMapIterator<T>(*this, Arch(size_t(Arch::x86_64) + 1));
-  }
-
- private:
-  std::array<T, size_t(Arch::x86_64) + 1> data_ = {};
-};
-
-template <typename T>
-class ArchMapIterator {
-  const ArchMap<T>& map_;
-  Arch arch_ = Arch::arm;
-
- public:
-  ArchMapIterator() = delete;
-
-  ArchMapIterator(const ArchMap<T>& map, Arch arch) : map_(map), arch_(arch) {
-  }
-
-  bool operator==(const ArchMapIterator<T>& rhs) const {
-    return map_ == rhs.map_ && arch_ == rhs.arch_;
-  }
-
-  bool operator!=(const ArchMapIterator<T>& rhs) const {
-    return !(*this == rhs);
-  }
-
-  ArchMapIterator& operator++() {
-    arch_ = Arch(size_t(arch_) + 1);
-    return *this;
-  }
-
-  ArchMapIterator operator++(int) {
-    ArchMapIterator result = *this;
-    ++*this;
-    return result;
-  }
-
-  std::pair<const Arch&, const T&> operator*() const {
-    return std::tie(arch_, map_[arch_]);
-  }
-
-  std::pair<const Arch&, const T&> operator->() const {
-    return std::tie(arch_, map_[arch_]);
-  }
-};
-
-static const std::set<Arch> supported_archs = {
-  Arch::arm,
-  Arch::arm64,
-  Arch::riscv64,
-  Arch::x86,
-  Arch::x86_64,
-};
-
-static ArchMap<std::string> arch_targets = {
-  { Arch::arm, "arm-linux-androideabi" },
-  { Arch::arm64, "aarch64-linux-android" },
-  { Arch::riscv64, "riscv64-linux-android" },
-  { Arch::x86, "i686-linux-android" },
-  { Arch::x86_64, "x86_64-linux-android" },
-};
-
-static const std::set<int> default_levels = {
-  14, 15, 16, 17, 18, 19, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 34,
-};
-
-static const ArchMap<int> arch_min_api = {
-  { Arch::arm, 9 },
-  { Arch::arm64, 21 },
-  { Arch::riscv64, 10000 },
-  { Arch::x86, 9 },
-  { Arch::x86_64, 21 },
-};
-
-static const std::unordered_map<std::string, int> api_codename_map{
-  {"G", 9},
-  {"I", 14},
-  {"J", 16},
-  {"J-MR1", 17},
-  {"J-MR2", 18},
-  {"K", 19},
-  {"L", 21},
-  {"L-MR1", 22},
-  {"M", 23},
-  {"N", 24},
-  {"N-MR1", 25},
-  {"O", 26},
-  {"O-MR1", 27},
-  {"P", 28},
-  {"Q", 29},
-  {"R", 30},
-  {"S", 31},
-  {"T", 33},
-  {"U", 34},
-};
diff --git a/tools/versioner/src/CompilationType.cpp b/tools/versioner/src/CompilationType.cpp
deleted file mode 100644
index 7e7bb5d..0000000
--- a/tools/versioner/src/CompilationType.cpp
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- * Copyright (C) 2016 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "CompilationType.h"
-
-#include <sstream>
-#include <string>
-
-std::string to_string(const CompilationType& type) {
-  std::stringstream ss;
-  ss << to_string(type.arch) << "-" << type.api_level << " [" << (type.cpp ? "c++" : "c")
-     << ", fob = " << type.file_offset_bits << "]";
-  return ss.str();
-}
diff --git a/tools/versioner/src/CompilationType.h b/tools/versioner/src/CompilationType.h
deleted file mode 100644
index 2f4cf5c..0000000
--- a/tools/versioner/src/CompilationType.h
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- * Copyright (C) 2016 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#pragma once
-
-#include <stdint.h>
-
-#include <functional>
-#include <utility>
-
-#include "Arch.h"
-
-struct CompilationType {
-  Arch arch;
-  bool cpp;
-  int api_level;
-  int file_offset_bits;
-
- private:
-  auto tie() const {
-    return std::tie(arch, cpp, api_level, file_offset_bits);
-  }
-
- public:
-  bool operator<(const CompilationType& other) const {
-    return tie() < other.tie();
-  }
-
-  bool operator==(const CompilationType& other) const {
-    return tie() == other.tie();
-  }
-};
-
-namespace std {
-template <>
-struct hash<CompilationType> {
-  size_t operator()(CompilationType type) const {
-    struct {
-      int32_t arch : 3;
-      int32_t cpp : 1;
-      int32_t api_level : 6;
-      int32_t file_offset_bits : 1;
-      int32_t padding : 21;
-    } packed;
-    packed.arch = static_cast<int32_t>(type.arch);
-    packed.cpp = type.cpp;
-    packed.api_level = type.api_level;
-    packed.file_offset_bits = (type.file_offset_bits == 64);
-    packed.padding = 0;
-    int32_t value;
-    memcpy(&value, &packed, sizeof(value));
-    return std::hash<int32_t>()(value);
-  }
-};
-}
-
-std::string to_string(const CompilationType& type);
diff --git a/tools/versioner/src/DeclarationDatabase.cpp b/tools/versioner/src/DeclarationDatabase.cpp
deleted file mode 100644
index a029c3b..0000000
--- a/tools/versioner/src/DeclarationDatabase.cpp
+++ /dev/null
@@ -1,403 +0,0 @@
-/*
- * Copyright (C) 2016 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "DeclarationDatabase.h"
-
-#include <err.h>
-
-#include <iostream>
-#include <map>
-#include <mutex>
-#include <set>
-#include <sstream>
-#include <string>
-#include <utility>
-
-#include <clang/AST/AST.h>
-#include <clang/AST/Attr.h>
-#include <clang/AST/Mangle.h>
-#include <clang/AST/RecursiveASTVisitor.h>
-#include <clang/Frontend/ASTUnit.h>
-#include <llvm/Support/raw_ostream.h>
-
-using namespace clang;
-
-static bool shouldMangle(MangleContext* mangler, NamedDecl* decl) {
-  // Passing a decl with static linkage to the mangler gives incorrect results.
-  // Check some things ourselves before handing it off to the mangler.
-  if (auto FD = dyn_cast<FunctionDecl>(decl)) {
-    if (FD->isExternC()) {
-      return false;
-    }
-
-    if (FD->isInExternCContext()) {
-      return false;
-    }
-  }
-
-  return mangler->shouldMangleDeclName(decl);
-}
-
-class Visitor : public RecursiveASTVisitor<Visitor> {
-  HeaderDatabase& database;
-  CompilationType type;
-  SourceManager& src_manager;
-  std::unique_ptr<MangleContext> mangler;
-
- public:
-  Visitor(HeaderDatabase& database, CompilationType type, ASTContext& ctx)
-      : database(database), type(type), src_manager(ctx.getSourceManager()) {
-    mangler.reset(ItaniumMangleContext::create(ctx, ctx.getDiagnostics()));
-  }
-
-  std::string getDeclName(NamedDecl* decl) {
-    if (auto var_decl = dyn_cast<VarDecl>(decl)) {
-      if (!var_decl->isFileVarDecl()) {
-        return "<local var>";
-      }
-    }
-
-    // <math.h> maps fool onto foo on 32-bit, since long double is the same as double.
-    if (auto asm_attr = decl->getAttr<AsmLabelAttr>()) {
-      return asm_attr->getLabel().str();
-    }
-
-    // The decl might not have a name (e.g. bitfields).
-    if (auto identifier = decl->getIdentifier()) {
-      if (shouldMangle(mangler.get(), decl)) {
-        std::string mangled;
-        llvm::raw_string_ostream ss(mangled);
-        mangler->mangleName(decl, ss);
-        return mangled;
-      }
-
-      return identifier->getName().str();
-    }
-
-    return "<unnamed>";
-  }
-
-  bool VisitDeclaratorDecl(DeclaratorDecl* decl, SourceRange range) {
-    // Skip declarations inside of functions (function arguments, variable declarations inside of
-    // inline functions, etc).
-    if (decl->getParentFunctionOrMethod()) {
-      return true;
-    }
-
-    auto named_decl = dyn_cast<NamedDecl>(decl);
-    if (!named_decl) {
-      return true;
-    }
-
-    std::string declaration_name = getDeclName(named_decl);
-    bool is_extern = named_decl->getFormalLinkage() == ExternalLinkage;
-    bool is_definition = false;
-    bool no_guard = false;
-    bool fortify_inline = false;
-
-    if (auto function_decl = dyn_cast<FunctionDecl>(decl)) {
-      is_definition = function_decl->isThisDeclarationADefinition();
-    } else if (auto var_decl = dyn_cast<VarDecl>(decl)) {
-      if (!var_decl->isFileVarDecl()) {
-        return true;
-      }
-
-      switch (var_decl->isThisDeclarationADefinition()) {
-        case VarDecl::DeclarationOnly:
-          is_definition = false;
-          break;
-
-        case VarDecl::Definition:
-          is_definition = true;
-          break;
-
-        case VarDecl::TentativeDefinition:
-          // Forbid tentative definitions in headers.
-          fprintf(stderr, "ERROR: declaration '%s' is a tentative definition\n",
-                  declaration_name.c_str());
-          decl->dump();
-          abort();
-      }
-    } else {
-      // We only care about function and variable declarations.
-      return true;
-    }
-
-    if (decl->hasAttr<UnavailableAttr>()) {
-      // Skip declarations that exist only for compile-time diagnostics.
-      return true;
-    }
-
-    DeclarationAvailability availability;
-
-    // Find and parse __ANDROID_AVAILABILITY_DUMP__ annotations.
-    for (const AnnotateAttr* attr : decl->specific_attrs<AnnotateAttr>()) {
-      llvm::StringRef annotation = attr->getAnnotation();
-      if (annotation == "versioner_no_guard") {
-        no_guard = true;
-      } else if (annotation == "versioner_fortify_inline") {
-        fortify_inline = true;
-      } else {
-        llvm::SmallVector<llvm::StringRef, 2> fragments;
-        annotation.split(fragments, "=");
-        if (fragments.size() != 2) {
-          continue;
-        }
-
-        auto& global_availability = availability.global_availability;
-        auto& arch_availability = availability.arch_availability;
-        std::map<std::string, std::vector<int*>> prefix_map = {
-          { "introduced_in", { &global_availability.introduced } },
-          { "deprecated_in", { &global_availability.deprecated } },
-          { "obsoleted_in", { &global_availability.obsoleted } },
-          { "introduced_in_arm", { &arch_availability[Arch::arm].introduced } },
-          { "introduced_in_x86", { &arch_availability[Arch::x86].introduced } },
-          { "introduced_in_32",
-            { &arch_availability[Arch::arm].introduced,
-              &arch_availability[Arch::x86].introduced } },
-          { "introduced_in_64",
-            { &arch_availability[Arch::arm64].introduced,
-              &arch_availability[Arch::riscv64].introduced,
-              &arch_availability[Arch::x86_64].introduced } },
-        };
-
-        if (auto it = prefix_map.find(fragments[0].str()); it != prefix_map.end()) {
-          int value;
-          if (fragments[1].getAsInteger(10, value)) {
-            errx(1, "invalid __ANDROID_AVAILABILITY_DUMP__ annotation: '%s'",
-                 annotation.str().c_str());
-          }
-
-          for (int* ptr : it->second) {
-            *ptr = value;
-          }
-        }
-      }
-    }
-
-    auto symbol_it = database.symbols.find(declaration_name);
-    if (symbol_it == database.symbols.end()) {
-      Symbol symbol = {.name = declaration_name };
-      bool unused;
-      std::tie(symbol_it, unused) = database.symbols.insert({declaration_name, symbol});
-    }
-
-    auto expansion_range = src_manager.getExpansionRange(range);
-    auto filename = src_manager.getFilename(expansion_range.getBegin());
-    if (filename != src_manager.getFilename(expansion_range.getEnd())) {
-      errx(1, "expansion range filenames don't match");
-    }
-
-    Location location = {
-      .filename = filename.str(),
-      .start = {
-        .line = src_manager.getExpansionLineNumber(expansion_range.getBegin()),
-        .column = src_manager.getExpansionColumnNumber(expansion_range.getBegin()),
-      },
-      .end = {
-        .line = src_manager.getExpansionLineNumber(expansion_range.getEnd()),
-        .column = src_manager.getExpansionColumnNumber(expansion_range.getEnd()),
-      }
-    };
-
-    // Find or insert an entry for the declaration.
-    if (auto declaration_it = symbol_it->second.declarations.find(location);
-        declaration_it != symbol_it->second.declarations.end()) {
-      if (declaration_it->second.is_extern != is_extern ||
-          declaration_it->second.is_definition != is_definition ||
-          declaration_it->second.no_guard != no_guard ||
-          declaration_it->second.fortify_inline != fortify_inline) {
-        errx(1, "varying declaration of '%s' at %s:%u:%u", declaration_name.c_str(),
-             location.filename.c_str(), location.start.line, location.start.column);
-      }
-      declaration_it->second.availability.insert(std::make_pair(type, availability));
-    } else {
-      Declaration declaration;
-      declaration.name = declaration_name;
-      declaration.location = location;
-      declaration.is_extern = is_extern;
-      declaration.is_definition = is_definition;
-      declaration.no_guard = no_guard;
-      declaration.fortify_inline = fortify_inline;
-      declaration.availability.insert(std::make_pair(type, availability));
-      symbol_it->second.declarations.insert(std::make_pair(location, declaration));
-    }
-
-    return true;
-  }
-
-  bool VisitDeclaratorDecl(DeclaratorDecl* decl) {
-    return VisitDeclaratorDecl(decl, decl->getSourceRange());
-  }
-
-  bool TraverseLinkageSpecDecl(LinkageSpecDecl* decl) {
-    // Make sure that we correctly calculate the SourceRange of a declaration that has a non-braced
-    // extern "C"/"C++".
-    if (!decl->hasBraces()) {
-      DeclaratorDecl* child = nullptr;
-      for (auto child_decl : decl->decls()) {
-        if (child != nullptr) {
-          errx(1, "LinkageSpecDecl has multiple children");
-        }
-
-        if (DeclaratorDecl* declarator_decl = dyn_cast<DeclaratorDecl>(child_decl)) {
-          child = declarator_decl;
-        } else {
-          errx(1, "child of LinkageSpecDecl is not a DeclaratorDecl");
-        }
-      }
-
-      return VisitDeclaratorDecl(child, decl->getSourceRange());
-    }
-
-    for (auto child : decl->decls()) {
-      if (!TraverseDecl(child)) {
-        return false;
-      }
-    }
-    return true;
-  }
-};
-
-bool DeclarationAvailability::merge(const DeclarationAvailability& other) {
-#define check_avail(expr) error |= (!this->expr.empty() && this->expr != other.expr);
-  bool error = false;
-
-  if (!other.global_availability.empty()) {
-    check_avail(global_availability);
-    this->global_availability = other.global_availability;
-  }
-
-  for (Arch arch : supported_archs) {
-    if (!other.arch_availability[arch].empty()) {
-      check_avail(arch_availability[arch]);
-      this->arch_availability[arch] = other.arch_availability[arch];
-    }
-  }
-#undef check_avail
-
-  return !error;
-}
-
-bool Declaration::calculateAvailability(DeclarationAvailability* output) const {
-  DeclarationAvailability avail;
-  for (const auto& it : this->availability) {
-    if (!avail.merge(it.second)) {
-      return false;
-    }
-  }
-  *output = avail;
-  return true;
-}
-
-bool Symbol::calculateAvailability(DeclarationAvailability* output) const {
-  DeclarationAvailability avail;
-  for (const auto& it : this->declarations) {
-    // Don't merge availability for inline functions (because they shouldn't have any).
-    if (it.second.is_definition) {
-      continue;
-    }
-
-    DeclarationAvailability decl_availability;
-    if (!it.second.calculateAvailability(&decl_availability)) {
-      return false;
-      abort();
-    }
-
-    if (!avail.merge(decl_availability)) {
-      return false;
-    }
-  }
-  *output = avail;
-  return true;
-}
-
-bool Symbol::hasDeclaration(const CompilationType& type) const {
-  for (const auto& decl_it : this->declarations) {
-    for (const auto& compilation_it : decl_it.second.availability) {
-      if (compilation_it.first == type) {
-        return true;
-      }
-    }
-  }
-  return false;
-}
-
-void HeaderDatabase::parseAST(CompilationType type, ASTContext& ctx) {
-  std::unique_lock<std::mutex> lock(this->mutex);
-  Visitor visitor(*this, type, ctx);
-  visitor.TraverseDecl(ctx.getTranslationUnitDecl());
-}
-
-std::string to_string(const AvailabilityValues& av) {
-  std::stringstream ss;
-
-  if (av.introduced != 0) {
-    ss << "introduced = " << av.introduced << ", ";
-  }
-
-  if (av.deprecated != 0) {
-    ss << "deprecated = " << av.deprecated << ", ";
-  }
-
-  if (av.obsoleted != 0) {
-    ss << "obsoleted = " << av.obsoleted << ", ";
-  }
-
-  std::string result = ss.str();
-  if (!result.empty()) {
-    result = result.substr(0, result.length() - 2);
-  }
-  return result;
-}
-
-std::string to_string(const DeclarationType& type) {
-  switch (type) {
-    case DeclarationType::function:
-      return "function";
-    case DeclarationType::variable:
-      return "variable";
-    case DeclarationType::inconsistent:
-      return "inconsistent";
-  }
-  abort();
-}
-
-std::string to_string(const DeclarationAvailability& decl_av) {
-  std::stringstream ss;
-  if (!decl_av.global_availability.empty()) {
-    ss << to_string(decl_av.global_availability) << ", ";
-  }
-
-  for (const auto& it : decl_av.arch_availability) {
-    if (!it.second.empty()) {
-      ss << to_string(it.first) << ": " << to_string(it.second) << ", ";
-    }
-  }
-
-  std::string result = ss.str();
-  if (result.size() == 0) {
-    return "no availability";
-  }
-
-  return result.substr(0, result.length() - 2);
-}
-
-std::string to_string(const Location& loc) {
-  std::stringstream ss;
-  ss << loc.filename << ":" << loc.start.line << ":" << loc.start.column;
-  return ss.str();
-}
diff --git a/tools/versioner/src/DeclarationDatabase.h b/tools/versioner/src/DeclarationDatabase.h
deleted file mode 100644
index 9a45227..0000000
--- a/tools/versioner/src/DeclarationDatabase.h
+++ /dev/null
@@ -1,212 +0,0 @@
-/*
- * Copyright (C) 2016 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#pragma once
-
-#include <stdio.h>
-
-#include <map>
-#include <mutex>
-#include <set>
-#include <string>
-#include <vector>
-
-#include <llvm/ADT/StringRef.h>
-
-#include "Arch.h"
-#include "CompilationType.h"
-#include "Utils.h"
-
-namespace clang {
-class ASTContext;
-class Decl;
-}
-
-enum class DeclarationType {
-  function,
-  variable,
-  inconsistent,
-};
-
-struct AvailabilityValues {
-  int introduced = 0;
-  int deprecated = 0;
-  int obsoleted = 0;
-
-  bool empty() const {
-    return !(introduced || deprecated || obsoleted);
-  }
-
-  bool operator==(const AvailabilityValues& rhs) const {
-    return std::tie(introduced, deprecated, obsoleted) ==
-           std::tie(rhs.introduced, rhs.deprecated, rhs.obsoleted);
-  }
-
-  bool operator!=(const AvailabilityValues& rhs) const {
-    return !(*this == rhs);
-  }
-};
-
-std::string to_string(const AvailabilityValues& av);
-
-struct DeclarationAvailability {
-  AvailabilityValues global_availability;
-  ArchMap<AvailabilityValues> arch_availability;
-
-  bool empty() const {
-    if (!global_availability.empty()) {
-      return false;
-    }
-
-    for (const auto& it : arch_availability) {
-      if (!it.second.empty()) {
-        return false;
-      }
-    }
-
-    return true;
-  }
-
-  bool operator==(const DeclarationAvailability& rhs) const {
-    return std::tie(global_availability, arch_availability) ==
-           std::tie(rhs.global_availability, rhs.arch_availability);
-  }
-
-  bool operator!=(const DeclarationAvailability& rhs) const {
-    return !(*this == rhs);
-  }
-
-  // Returns false if the availability declarations conflict.
-  bool merge(const DeclarationAvailability& other);
-};
-
-std::string to_string(const DeclarationAvailability& decl_av);
-
-struct FileLocation {
-  unsigned line;
-  unsigned column;
-
-  bool operator<(const FileLocation& rhs) const {
-    return std::tie(line, column) < std::tie(rhs.line, rhs.column);
-  }
-
-  bool operator==(const FileLocation& rhs) const {
-    return std::tie(line, column) == std::tie(rhs.line, rhs.column);
-  }
-};
-
-struct Location {
-  std::string filename;
-  FileLocation start;
-  FileLocation end;
-
-  bool operator<(const Location& rhs) const {
-    return std::tie(filename, start, end) < std::tie(rhs.filename, rhs.start, rhs.end);
-  }
-};
-
-std::string to_string(const Location& loc);
-
-struct Declaration {
-  std::string name;
-  Location location;
-
-  bool is_extern;
-  bool is_definition;
-  bool no_guard;
-  bool fortify_inline;
-  std::map<CompilationType, DeclarationAvailability> availability;
-
-  bool calculateAvailability(DeclarationAvailability* output) const;
-  bool operator<(const Declaration& rhs) const {
-    return location < rhs.location;
-  }
-
-  void dump(const std::string& base_path = "", FILE* out = stdout, unsigned indent = 0) const {
-    std::string indent_str(indent, ' ');
-    fprintf(out, "%s", indent_str.c_str());
-
-    fprintf(out, "%s ", is_extern ? "extern" : "static");
-    fprintf(out, "%s ", is_definition ? "definition" : "declaration");
-    if (no_guard) {
-      fprintf(out, "no_guard ");
-    }
-    if (fortify_inline) {
-      fprintf(out, "fortify_inline ");
-    }
-    fprintf(out, "@ %s:%u:%u", StripPrefix(location.filename, base_path).str().c_str(),
-            location.start.line, location.start.column);
-
-    if (!availability.empty()) {
-      DeclarationAvailability avail;
-
-      fprintf(out, "\n%s  ", indent_str.c_str());
-      if (!calculateAvailability(&avail)) {
-        fprintf(out, "invalid availability\n");
-      } else {
-        fprintf(out, "%s\n", to_string(avail).c_str());
-      }
-    }
-  }
-};
-
-struct Symbol {
-  std::string name;
-  std::map<Location, Declaration> declarations;
-
-  bool calculateAvailability(DeclarationAvailability* output) const;
-  bool hasDeclaration(const CompilationType& type) const;
-
-  bool operator<(const Symbol& rhs) const {
-    return name < rhs.name;
-  }
-
-  bool operator==(const Symbol& rhs) const {
-    return name == rhs.name;
-  }
-
-  void dump(const std::string& base_path = "", FILE* out = stdout) const {
-    DeclarationAvailability availability;
-    bool valid_availability = calculateAvailability(&availability);
-    fprintf(out, "  %s: ", name.c_str());
-
-    if (valid_availability) {
-      fprintf(out, "%s\n", to_string(availability).c_str());
-    } else {
-      fprintf(out, "invalid\n");
-    }
-
-    for (auto& it : declarations) {
-      it.second.dump(base_path, out, 4);
-    }
-  }
-};
-
-class HeaderDatabase {
-  std::mutex mutex;
-
- public:
-  std::map<std::string, Symbol> symbols;
-
-  void parseAST(CompilationType type, clang::ASTContext& ast);
-
-  void dump(const std::string& base_path = "", FILE* out = stdout) const {
-    fprintf(out, "HeaderDatabase contains %zu symbols:\n", symbols.size());
-    for (const auto& pair : symbols) {
-      pair.second.dump(base_path, out);
-    }
-  }
-};
diff --git a/tools/versioner/src/Driver.cpp b/tools/versioner/src/Driver.cpp
deleted file mode 100644
index 24dc5ec..0000000
--- a/tools/versioner/src/Driver.cpp
+++ /dev/null
@@ -1,265 +0,0 @@
-/*
- * Copyright (C) 2016 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "Driver.h"
-
-#include <err.h>
-#include <string.h>
-
-#include <chrono>
-#include <mutex>
-#include <string>
-#include <thread>
-#include <unordered_map>
-#include <vector>
-
-#include <clang/AST/ASTConsumer.h>
-#include <clang/Basic/Diagnostic.h>
-#include <clang/Basic/TargetInfo.h>
-#include <clang/Driver/Compilation.h>
-#include <clang/Driver/Driver.h>
-#include <clang/Frontend/CompilerInstance.h>
-#include <clang/Frontend/CompilerInvocation.h>
-#include <clang/Frontend/FrontendAction.h>
-#include <clang/Frontend/FrontendActions.h>
-#include <clang/Frontend/TextDiagnosticPrinter.h>
-#include <clang/Frontend/Utils.h>
-#include <clang/FrontendTool/Utils.h>
-#include <llvm/ADT/IntrusiveRefCntPtr.h>
-#include <llvm/ADT/SmallVector.h>
-#include <llvm/ADT/StringRef.h>
-#include <llvm/Option/Option.h>
-#include <llvm/Support/Host.h>
-#include <llvm/Support/VirtualFileSystem.h>
-
-#include "Arch.h"
-#include "DeclarationDatabase.h"
-#include "versioner.h"
-
-using namespace std::chrono_literals;
-using namespace std::string_literals;
-
-using namespace clang;
-
-class VersionerASTConsumer : public clang::ASTConsumer {
- public:
-  HeaderDatabase* header_database;
-  CompilationType type;
-
-  VersionerASTConsumer(HeaderDatabase* header_database, CompilationType type)
-      : header_database(header_database), type(type) {
-  }
-
-  void HandleTranslationUnit(ASTContext& ctx) override {
-    header_database->parseAST(type, ctx);
-  }
-};
-
-class VersionerASTAction : public clang::ASTFrontendAction {
- public:
-  HeaderDatabase* header_database;
-  CompilationType type;
-
-  VersionerASTAction(HeaderDatabase* header_database, CompilationType type)
-      : header_database(header_database), type(type) {
-  }
-
-  std::unique_ptr<ASTConsumer> CreateASTConsumer(CompilerInstance&, llvm::StringRef) override {
-    return std::make_unique<VersionerASTConsumer>(header_database, type);
-  }
-};
-
-static IntrusiveRefCntPtr<DiagnosticsEngine> constructDiags() {
-  IntrusiveRefCntPtr<DiagnosticOptions> diag_opts(new DiagnosticOptions());
-  auto diag_printer = std::make_unique<TextDiagnosticPrinter>(llvm::errs(), diag_opts.get());
-  IntrusiveRefCntPtr<DiagnosticIDs> diag_ids(new DiagnosticIDs());
-  IntrusiveRefCntPtr<DiagnosticsEngine> diags(
-      new DiagnosticsEngine(diag_ids.get(), diag_opts.get(), diag_printer.release()));
-  return diags;
-}
-
-// clang's driver is slow compared to the work it performs to compile our headers.
-// Run it once to generate flags for each target, and memoize the results.
-static std::unordered_map<CompilationType, std::vector<std::string>> cc1_flags;
-static const char* filename_placeholder = "__VERSIONER_PLACEHOLDER__";
-static void generateTargetCC1Flags(llvm::IntrusiveRefCntPtr<llvm::vfs::FileSystem> vfs,
-                                   CompilationType type,
-                                   const std::vector<std::string>& include_dirs) {
-  std::vector<std::string> cmd = { "versioner" };
-  if (type.cpp) {
-    cmd.push_back("-std=gnu++11");
-    cmd.push_back("-x");
-    cmd.push_back("c++");
-  } else {
-    cmd.push_back("-std=gnu11");
-    cmd.push_back("-x");
-    cmd.push_back("c");
-  }
-
-  cmd.push_back("-fsyntax-only");
-
-  cmd.push_back("-Wall");
-  cmd.push_back("-Wextra");
-  cmd.push_back("-Weverything");
-  cmd.push_back("-Werror");
-  cmd.push_back("-Wundef");
-  cmd.push_back("-Wno-unused-macros");
-  cmd.push_back("-Wno-unused-function");
-  cmd.push_back("-Wno-unused-variable");
-  cmd.push_back("-Wno-unknown-attributes");
-  cmd.push_back("-Wno-pragma-once-outside-header");
-
-  cmd.push_back("-target");
-  cmd.push_back(arch_targets[type.arch]);
-
-  cmd.push_back("-DANDROID");
-  cmd.push_back("-D__BIONIC_VERSIONER=1");
-  cmd.push_back("-D__ANDROID_API__="s + std::to_string(type.api_level));
-  cmd.push_back("-D_FORTIFY_SOURCE=2");
-  cmd.push_back("-D_GNU_SOURCE");
-  cmd.push_back("-D_FILE_OFFSET_BITS="s + std::to_string(type.file_offset_bits));
-
-  cmd.push_back("-nostdinc");
-
-  if (add_include) {
-    cmd.push_back("-include");
-    cmd.push_back("android/versioning.h");
-  }
-
-  for (const auto& dir : include_dirs) {
-    cmd.push_back("-isystem");
-    cmd.push_back(dir);
-  }
-
-  cmd.push_back("-include");
-  cmd.push_back(filename_placeholder);
-  cmd.push_back("-");
-
-  auto diags = constructDiags();
-  driver::Driver driver("versioner", llvm::sys::getDefaultTargetTriple(), *diags, "versioner", vfs);
-  driver.setCheckInputsExist(false);
-
-  llvm::SmallVector<const char*, 32> driver_args;
-  for (const std::string& str : cmd) {
-    driver_args.push_back(str.c_str());
-  }
-
-  std::unique_ptr<driver::Compilation> Compilation(driver.BuildCompilation(driver_args));
-  const driver::JobList& jobs = Compilation->getJobs();
-  if (jobs.size() != 1) {
-    errx(1, "driver returned %zu jobs for %s", jobs.size(), to_string(type).c_str());
-  }
-
-  const driver::Command& driver_cmd = llvm::cast<driver::Command>(*jobs.begin());
-  const llvm::opt::ArgStringList& cc_args = driver_cmd.getArguments();
-
-  if (cc_args.size() == 0) {
-    errx(1, "driver returned empty command for %s", to_string(type).c_str());
-  }
-
-  std::vector<std::string> result(cc_args.begin(), cc_args.end());
-
-  {
-    static std::mutex cc1_init_mutex;
-    std::unique_lock<std::mutex> lock(cc1_init_mutex);
-    if (cc1_flags.count(type) > 0) {
-      errx(1, "attemped to generate cc1 flags for existing CompilationType %s",
-           to_string(type).c_str());
-    }
-
-    cc1_flags.emplace(std::make_pair(type, std::move(result)));
-  }
-}
-
-static std::vector<const char*> getCC1Command(CompilationType type, const std::string& filename) {
-  const auto& target_flag_it = cc1_flags.find(type);
-  if (target_flag_it == cc1_flags.end()) {
-    errx(1, "failed to find target flags for CompilationType %s", to_string(type).c_str());
-  }
-
-  std::vector<const char*> result;
-  for (const std::string& flag : target_flag_it->second) {
-    if (flag == "-disable-free") {
-      continue;
-    } else if (flag == filename_placeholder) {
-      result.push_back(filename.c_str());
-    } else {
-      result.push_back(flag.c_str());
-    }
-  }
-  return result;
-}
-
-void initializeTargetCC1FlagCache(llvm::IntrusiveRefCntPtr<llvm::vfs::FileSystem> vfs,
-                                  const std::set<CompilationType>& types,
-                                  const std::unordered_map<Arch, CompilationRequirements>& reqs) {
-  if (!cc1_flags.empty()) {
-    errx(1, "reinitializing target CC1 flag cache?");
-  }
-
-  auto start = std::chrono::high_resolution_clock::now();
-  std::vector<std::thread> threads;
-  for (const CompilationType type : types) {
-    threads.emplace_back([type, &vfs, &reqs]() {
-      const auto& arch_req_it = reqs.find(type.arch);
-      if (arch_req_it == reqs.end()) {
-        errx(1, "CompilationRequirement map missing entry for CompilationType %s",
-             to_string(type).c_str());
-      }
-
-      generateTargetCC1Flags(vfs, type, arch_req_it->second.dependencies);
-    });
-  }
-  for (auto& thread : threads) {
-    thread.join();
-  }
-  auto end = std::chrono::high_resolution_clock::now();
-
-  if (verbose) {
-    auto diff = (end - start) / 1.0ms;
-    printf("Generated compiler flags for %zu targets in %0.2Lfms\n", types.size(), diff);
-  }
-
-  if (cc1_flags.empty()) {
-    errx(1, "failed to initialize target CC1 flag cache");
-  }
-}
-
-void compileHeader(llvm::IntrusiveRefCntPtr<llvm::vfs::FileSystem> vfs,
-                   HeaderDatabase* header_database, CompilationType type,
-                   const std::string& filename) {
-  auto diags = constructDiags();
-  std::vector<const char*> cc1_flags = getCC1Command(type, filename);
-  auto invocation = std::make_unique<CompilerInvocation>();
-  if (!CompilerInvocation::CreateFromArgs(*invocation.get(), cc1_flags, *diags)) {
-    errx(1, "failed to create CompilerInvocation");
-  }
-
-  clang::CompilerInstance Compiler;
-
-  Compiler.setInvocation(std::move(invocation));
-  Compiler.setDiagnostics(diags.get());
-  Compiler.createFileManager(vfs);
-
-  VersionerASTAction versioner_action(header_database, type);
-  if (!Compiler.ExecuteAction(versioner_action)) {
-    errx(1, "compilation generated warnings or errors");
-  }
-
-  if (diags->getNumWarnings() || diags->hasErrorOccurred()) {
-    errx(1, "compilation generated warnings or errors");
-  }
-}
diff --git a/tools/versioner/src/Driver.h b/tools/versioner/src/Driver.h
deleted file mode 100644
index 99e57ae..0000000
--- a/tools/versioner/src/Driver.h
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * Copyright (C) 2016 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#pragma once
-
-#include <set>
-#include <string>
-#include <unordered_map>
-
-#include <llvm/ADT/IntrusiveRefCntPtr.h>
-
-#include "Arch.h"
-#include "DeclarationDatabase.h"
-#include "VFS.h"
-
-struct CompilationRequirements {
-  std::vector<std::string> headers;
-  std::vector<std::string> dependencies;
-};
-
-void initializeTargetCC1FlagCache(llvm::IntrusiveRefCntPtr<llvm::vfs::FileSystem> vfs,
-                                  const std::set<CompilationType>& types,
-                                  const std::unordered_map<Arch, CompilationRequirements>& reqs);
-
-void compileHeader(llvm::IntrusiveRefCntPtr<llvm::vfs::FileSystem> vfs,
-                   HeaderDatabase* header_database, CompilationType type,
-                   const std::string& filename);
diff --git a/tools/versioner/src/Preprocessor.cpp b/tools/versioner/src/Preprocessor.cpp
deleted file mode 100644
index 14f80d8..0000000
--- a/tools/versioner/src/Preprocessor.cpp
+++ /dev/null
@@ -1,495 +0,0 @@
-/*
- * Copyright (C) 2016 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "Preprocessor.h"
-
-#include <err.h>
-#include <fcntl.h>
-#include <fts.h>
-#include <libgen.h>
-#include <string.h>
-#include <sys/stat.h>
-#include <sys/types.h>
-#include <unistd.h>
-
-#include <deque>
-#include <fstream>
-#include <string>
-#include <unordered_map>
-
-#include <llvm/ADT/StringRef.h>
-#include <llvm/ADT/Twine.h>
-#include <llvm/Support/FileSystem.h>
-#include <llvm/Support/Path.h>
-
-#include "Arch.h"
-#include "DeclarationDatabase.h"
-#include "versioner.h"
-
-using namespace std::string_literals;
-
-static DeclarationAvailability calculateRequiredGuard(const Declaration& declaration) {
-  // To avoid redundant macro guards, the availability calculated by this function is the set
-  // difference of 'targets marked-available' from 'targets the declaration is visible in'.
-  // For example, a declaration that is visible always and introduced in 9 would return introduced
-  // in 9, but the same declaration, except only visible in 9+ would return an empty
-  // DeclarationAvailability.
-
-  // This currently only handles __INTRODUCED_IN.
-  // TODO: Do the same for __REMOVED_IN.
-  int global_min_api_visible = 0;
-  ArchMap<int> arch_visibility;
-
-  for (const auto& it : declaration.availability) {
-    const CompilationType& type = it.first;
-
-    if (global_min_api_visible == 0 || global_min_api_visible > type.api_level) {
-      global_min_api_visible = type.api_level;
-    }
-
-    if (arch_visibility[type.arch] == 0 || arch_visibility[type.arch] > type.api_level) {
-      arch_visibility[type.arch] = type.api_level;
-    }
-  }
-
-  DeclarationAvailability decl_av;
-  if (!declaration.calculateAvailability(&decl_av)) {
-    fprintf(stderr, "versioner: failed to calculate availability while preprocessing:\n");
-    declaration.dump("", stderr, 2);
-    exit(1);
-  }
-
-  D("Calculating required guard for %s:\n", declaration.name.c_str());
-  D("  Declaration availability: %s\n", to_string(decl_av).c_str());
-
-  if (verbose) {
-    std::string arch_visibility_str;
-    for (Arch arch : supported_archs) {
-      if (arch_visibility[arch] != 0) {
-        arch_visibility_str += to_string(arch);
-        arch_visibility_str += ": ";
-        arch_visibility_str += std::to_string(arch_visibility[arch]);
-        arch_visibility_str += ", ";
-      }
-    }
-    if (!arch_visibility_str.empty()) {
-      arch_visibility_str.resize(arch_visibility_str.size() - 2);
-    }
-    D("  Declaration visibility: global = %d, arch = %s\n", global_min_api_visible,
-      arch_visibility_str.c_str());
-  }
-
-  DeclarationAvailability result = decl_av;
-  if (result.global_availability.introduced <= global_min_api_visible) {
-    result.global_availability.introduced = 0;
-  }
-
-  for (Arch arch : supported_archs) {
-    if (result.arch_availability[arch].introduced <= arch_visibility[arch]) {
-      result.arch_availability[arch].introduced = 0;
-    }
-  }
-
-  D("  Calculated result: %s\n", to_string(result).c_str());
-  D("\n");
-
-  return result;
-}
-
-static std::deque<std::string> readFileLines(const std::string& path) {
-  std::ifstream is(path.c_str());
-  std::deque<std::string> result;
-  std::string line;
-
-  while (std::getline(is, line)) {
-    result.push_back(std::move(line));
-  }
-
-  return result;
-}
-
-static void writeFileLines(const std::string& path, const std::deque<std::string>& lines) {
-  if (!mkdirs(dirname(path))) {
-    err(1, "failed to create directory '%s'", dirname(path).c_str());
-  }
-
-  std::ofstream os(path.c_str(), std::ios_base::out | std::ios_base::trunc);
-
-  for (const std::string& line : lines) {
-    os << line << "\n";
-  }
-}
-
-using GuardMap = std::map<Location, DeclarationAvailability>;
-
-static std::string generateGuardCondition(const DeclarationAvailability& avail) {
-  // Logically orred expressions that constitute the macro guard.
-  std::vector<std::string> expressions;
-  static const std::vector<std::pair<std::string, std::set<Arch>>> arch_sets = {
-    { "", supported_archs },
-    { "!defined(__LP64__)", { Arch::arm, Arch::x86 } },
-    { "defined(__LP64__)", { Arch::arm64, Arch::riscv64, Arch::x86_64 } },
-  };
-  std::map<Arch, std::string> individual_archs = {
-    { Arch::arm, "defined(__arm__)" },
-    { Arch::arm64, "defined(__aarch64__)" },
-    { Arch::riscv64, "defined(__riscv)" },
-    { Arch::x86, "defined(__i386__)" },
-    { Arch::x86_64, "defined(__x86_64__)" },
-  };
-
-  auto generate_guard = [](const std::string& arch_expr, int min_version) {
-    if (min_version == 0) {
-      return arch_expr;
-    }
-    return arch_expr + " && __ANDROID_API__ >= " + std::to_string(min_version);
-  };
-
-  D("Generating guard for availability: %s\n", to_string(avail).c_str());
-  if (!avail.global_availability.empty()) {
-    for (Arch arch : supported_archs) {
-      if (!avail.arch_availability[arch].empty()) {
-        errx(1, "attempted to generate guard with global and per-arch values: %s",
-             to_string(avail).c_str());
-      }
-    }
-
-    if (avail.global_availability.introduced == 0) {
-      fprintf(stderr, "warning: attempted to generate guard with empty availability: %s\n",
-              to_string(avail).c_str());
-      return "";
-    }
-
-    if (avail.global_availability.introduced <= 9) {
-      return "";
-    }
-
-    return "__ANDROID_API__ >= "s + std::to_string(avail.global_availability.introduced);
-  }
-
-  for (const auto& it : arch_sets) {
-    const std::string& arch_expr = it.first;
-    const std::set<Arch>& archs = it.second;
-
-    D("  Checking arch set '%s'\n", arch_expr.c_str());
-
-    int version = avail.arch_availability[*it.second.begin()].introduced;
-
-    // The maximum min_version of the set.
-    int max_min_version = 0;
-    for (Arch arch : archs) {
-      if (arch_min_api[arch] > max_min_version) {
-        max_min_version = arch_min_api[arch];
-      }
-
-      if (avail.arch_availability[arch].introduced != version) {
-        D("    Skipping arch set, availability for %s doesn't match %s\n",
-          to_string(*it.second.begin()).c_str(), to_string(arch).c_str());
-        goto skip;
-      }
-    }
-
-    // If all of the archs in the set have a min_api that satifies version, elide the check.
-    if (max_min_version >= version) {
-      version = 0;
-    }
-
-    expressions.emplace_back(generate_guard(arch_expr, version));
-
-    D("    Generated expression '%s'\n", expressions.rbegin()->c_str());
-
-    for (Arch arch : archs) {
-      individual_archs.erase(arch);
-    }
-
-  skip:
-    continue;
-  }
-
-  for (const auto& it : individual_archs) {
-    const std::string& arch_expr = it.second;
-    int introduced = avail.arch_availability[it.first].introduced;
-    if (introduced == 0) {
-      expressions.emplace_back(arch_expr);
-    } else {
-      expressions.emplace_back(generate_guard(arch_expr, introduced));
-    }
-  }
-
-  if (expressions.size() == 0) {
-    errx(1, "generated empty guard for availability %s", to_string(avail).c_str());
-  } else if (expressions.size() == 1) {
-    return expressions[0];
-  }
-
-  return "("s + Join(expressions, ") || (") + ")";
-}
-
-// Assumes that nothing weird is happening (e.g. having the semicolon be in a macro).
-static FileLocation findNextSemicolon(const std::deque<std::string>& lines, FileLocation start) {
-  unsigned current_line = start.line;
-  unsigned current_column = start.column;
-  while (current_line <= lines.size()) {
-    size_t result = lines[current_line - 1].find_first_of(';', current_column - 1);
-
-    if (result != std::string::npos) {
-      FileLocation loc = {
-        .line = current_line,
-        .column = unsigned(result) + 1,
-      };
-
-      return loc;
-    }
-
-    ++current_line;
-    current_column = 0;
-  }
-
-  errx(1, "failed to find semicolon starting from %u:%u", start.line, start.column);
-}
-
-// Merge adjacent blocks with identical guards.
-static void mergeGuards(std::deque<std::string>& file_lines, GuardMap& guard_map) {
-  if (guard_map.size() < 2) {
-    return;
-  }
-
-  auto current = guard_map.begin();
-  auto next = current;
-  ++next;
-
-  while (next != guard_map.end()) {
-    if (current->second != next->second) {
-      ++current;
-      ++next;
-      continue;
-    }
-
-    // Scan from the end of current to the beginning of next.
-    bool in_block_comment = false;
-    bool valid = true;
-
-    FileLocation current_location = current->first.end;
-    FileLocation end_location = next->first.start;
-
-    auto nextLine = [&current_location]() {
-      ++current_location.line;
-      current_location.column = 1;
-    };
-
-    auto nextCol = [&file_lines, &current_location, &nextLine]() {
-      if (current_location.column == file_lines[current_location.line - 1].length()) {
-        nextLine();
-      } else {
-        ++current_location.column;
-      }
-    };
-
-    // The end location will point to the semicolon, which we don't want to read, so skip it.
-    nextCol();
-
-    while (current_location < end_location) {
-      const std::string& line = file_lines[current_location.line - 1];
-      size_t line_index = current_location.column - 1;
-
-      if (in_block_comment) {
-        size_t pos = line.find("*/", line_index);
-        if (pos == std::string::npos) {
-          D("Didn't find block comment terminator, skipping line\n");
-          nextLine();
-          continue;
-        } else {
-          D("Found block comment terminator\n");
-          in_block_comment = false;
-          current_location.column = pos + 2;
-          nextCol();
-          continue;
-        }
-      } else {
-        size_t pos = line.find_first_not_of(" \t", line_index);
-        if (pos == std::string::npos) {
-          nextLine();
-          continue;
-        }
-
-        current_location.column = pos + 1;
-        if (line[pos] != '/') {
-          valid = false;
-          break;
-        }
-
-        nextCol();
-        if (line.length() <= pos + 1) {
-          // Trailing slash at the end of a line?
-          D("Trailing slash at end of line\n");
-          valid = false;
-          break;
-        }
-
-        if (line[pos + 1] == '/') {
-          // C++ style comment
-          nextLine();
-        } else if (line[pos + 1] == '*') {
-          // Block comment
-          nextCol();
-          in_block_comment = true;
-          D("In a block comment\n");
-        } else {
-          // Garbage?
-          D("Unexpected output after /: %s\n", line.substr(pos).c_str());
-          valid = false;
-          break;
-        }
-      }
-    }
-
-    if (!valid) {
-      D("Not merging blocks %s and %s\n", to_string(current->first).c_str(),
-        to_string(next->first).c_str());
-      ++current;
-      ++next;
-      continue;
-    }
-
-    D("Merging blocks %s and %s\n", to_string(current->first).c_str(),
-      to_string(next->first).c_str());
-
-    Location merged = current->first;
-    merged.end = next->first.end;
-
-    DeclarationAvailability avail = current->second;
-
-    guard_map.erase(current);
-    guard_map.erase(next);
-    bool unused;
-    std::tie(current, unused) = guard_map.insert(std::make_pair(merged, avail));
-    next = current;
-    ++next;
-  }
-}
-
-static void rewriteFile(const std::string& output_path, std::deque<std::string>& file_lines,
-                        const GuardMap& guard_map) {
-  for (auto it = guard_map.rbegin(); it != guard_map.rend(); ++it) {
-    const Location& loc = it->first;
-    const DeclarationAvailability& avail = it->second;
-
-    std::string condition = generateGuardCondition(avail);
-    if (condition.empty()) {
-      continue;
-    }
-
-    std::string prologue = "\n#if "s + condition + "\n";
-    std::string epilogue = "\n#endif /* " + condition + " */\n";
-
-    file_lines[loc.end.line - 1].insert(loc.end.column, epilogue);
-    file_lines[loc.start.line - 1].insert(loc.start.column - 1, prologue);
-  }
-
-  if (verbose) {
-    printf("Preprocessing %s...\n", output_path.c_str());
-  }
-  writeFileLines(output_path, file_lines);
-}
-
-bool preprocessHeaders(const std::string& dst_dir, const std::string& src_dir,
-                       HeaderDatabase* database) {
-  std::unordered_map<std::string, GuardMap> guards;
-  std::unordered_map<std::string, std::deque<std::string>> file_lines;
-
-  for (const auto& symbol_it : database->symbols) {
-    const Symbol& symbol = symbol_it.second;
-
-    for (const auto& decl_it : symbol.declarations) {
-      const Location& location = decl_it.first;
-      const Declaration& decl = decl_it.second;
-
-      if (decl.no_guard) {
-        // No guard required.
-        continue;
-      }
-
-      DeclarationAvailability macro_guard = calculateRequiredGuard(decl);
-      if (!macro_guard.empty()) {
-        guards[location.filename][location] = macro_guard;
-      }
-    }
-  }
-
-  // Copy over the original headers before preprocessing.
-  char* fts_paths[2] = { const_cast<char*>(src_dir.c_str()), nullptr };
-  std::unique_ptr<FTS, decltype(&fts_close)> fts(fts_open(fts_paths, FTS_LOGICAL, nullptr),
-                                                 fts_close);
-  if (!fts) {
-    err(1, "failed to open directory %s", src_dir.c_str());
-  }
-
-  while (FTSENT* ent = fts_read(fts.get())) {
-    llvm::StringRef path = ent->fts_path;
-    if (!path.startswith(src_dir)) {
-      err(1, "path '%s' doesn't start with source dir '%s'", ent->fts_path, src_dir.c_str());
-    }
-
-    if (ent->fts_info != FTS_F) {
-      continue;
-    }
-
-    std::string rel_path = path.substr(src_dir.length() + 1).str();
-    std::string dst_path = dst_dir + "/" + rel_path;
-    llvm::StringRef parent_path = llvm::sys::path::parent_path(dst_path);
-    if (llvm::sys::fs::create_directories(parent_path)) {
-      errx(1, "failed to ensure existence of directory '%s'", parent_path.str().c_str());
-    }
-    if (llvm::sys::fs::copy_file(path, dst_path)) {
-      errx(1, "failed to copy '%s/%s' to '%s'", src_dir.c_str(), path.str().c_str(),
-           dst_path.c_str());
-    }
-  }
-
-  for (const auto& file_it : guards) {
-    file_lines[file_it.first] = readFileLines(file_it.first);
-  }
-
-  for (auto& file_it : guards) {
-    llvm::StringRef file_path = file_it.first;
-    GuardMap& orig_guard_map = file_it.second;
-
-    // The end positions given to us are the end of the declaration, which is some point before the
-    // semicolon. Fix up the end positions by scanning for the next semicolon.
-    GuardMap guard_map;
-    for (const auto& it : orig_guard_map) {
-      Location loc = it.first;
-      loc.end = findNextSemicolon(file_lines[file_path.str()], loc.end);
-      guard_map[loc] = it.second;
-    }
-
-    // TODO: Make sure that the Locations don't overlap.
-    // TODO: Merge adjacent non-identical guards.
-    mergeGuards(file_lines[file_path.str()], guard_map);
-
-    if (!file_path.startswith(src_dir)) {
-      errx(1, "input file %s is not in %s\n", file_path.str().c_str(), src_dir.c_str());
-    }
-
-    // rel_path has a leading slash.
-    llvm::StringRef rel_path = file_path.substr(src_dir.size(), file_path.size() - src_dir.size());
-    std::string output_path = (llvm::Twine(dst_dir) + rel_path).str();
-
-    rewriteFile(output_path, file_lines[file_path.str()], guard_map);
-  }
-
-  return true;
-}
diff --git a/tools/versioner/src/SymbolDatabase.cpp b/tools/versioner/src/SymbolDatabase.cpp
deleted file mode 100644
index c483c0f..0000000
--- a/tools/versioner/src/SymbolDatabase.cpp
+++ /dev/null
@@ -1,115 +0,0 @@
-/*
- * Copyright (C) 2016 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "SymbolDatabase.h"
-
-#include "SymbolFileParser.h"
-
-#include <err.h>
-#include <stdio.h>
-#include <stdlib.h>
-
-#include <fstream>
-#include <streambuf>
-#include <string>
-#include <unordered_set>
-
-#include <llvm/ADT/SmallVector.h>
-#include <llvm/ADT/StringRef.h>
-#include <llvm/Object/Binary.h>
-#include <llvm/Object/ELFObjectFile.h>
-
-#include "versioner.h"
-
-using namespace llvm;
-using namespace llvm::object;
-
-std::unordered_set<std::string> getSymbols(const std::string& filename) {
-  std::unordered_set<std::string> result;
-  auto binaryOrError = createBinary(filename);
-  if (!binaryOrError) {
-    errx(1, "failed to open library at %s: %s\n", filename.c_str(),
-         llvm::toString(binaryOrError.takeError()).c_str());
-  }
-
-  ELFObjectFileBase* elf = dyn_cast_or_null<ELFObjectFileBase>(binaryOrError.get().getBinary());
-  if (!elf) {
-    errx(1, "failed to parse %s as ELF", filename.c_str());
-  }
-
-  for (const ELFSymbolRef symbol : elf->getDynamicSymbolIterators()) {
-    Expected<StringRef> symbolNameOrError = symbol.getName();
-
-    if (!symbolNameOrError) {
-      errx(1, "failed to get symbol name for symbol in %s: %s", filename.c_str(),
-           llvm::toString(symbolNameOrError.takeError()).c_str());
-    }
-
-    result.insert(symbolNameOrError.get().str());
-  }
-
-  return result;
-}
-
-static std::map<std::string, NdkSymbolType> parsePlatform(const CompilationType& type,
-                                                          const std::string& platform_dir) {
-  static const std::pair<const char*, bool> wanted_files[] = {
-    {"crtbegin.map.txt", false},
-    {"libc.map.txt", true},
-  };
-
-  std::map<std::string, NdkSymbolType> result;
-
-  for (auto&& [filename, required] : wanted_files) {
-    std::string path = platform_dir + "/" + filename;
-
-    std::optional<SymbolMap> symbols = parseSymbolFile(path, type);
-    if (!symbols) {
-      if (required) {
-        errx(1, "error: failed to load: %s", path.c_str());
-      }
-      continue;
-    }
-
-    for (auto&& [symbol_name, symbol_type] : *symbols) {
-      if (symbol_name.empty()) {
-        continue;
-      }
-
-      if (result.count(symbol_name) != 0) {
-        if (strict) {
-          printf("duplicated symbol '%s' in '%s'\n", symbol_name.c_str(), path.c_str());
-        }
-      }
-
-      result[symbol_name] = symbol_type;
-    }
-  }
-
-  return result;
-}
-
-std::optional<NdkSymbolDatabase> parsePlatforms(const std::set<CompilationType>& types,
-                                                const std::string& platform_dir) {
-  NdkSymbolDatabase result;
-  for (const CompilationType& type : types) {
-    std::map<std::string, NdkSymbolType> symbols = parsePlatform(type, platform_dir);
-    for (const auto& it : symbols) {
-      result[it.first][type] = it.second;
-    }
-  }
-  return std::make_optional(std::move(result));
-}
diff --git a/tools/versioner/src/SymbolDatabase.h b/tools/versioner/src/SymbolDatabase.h
deleted file mode 100644
index dbbba4f..0000000
--- a/tools/versioner/src/SymbolDatabase.h
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Copyright (C) 2016 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#pragma once
-
-#include <map>
-#include <optional>
-#include <set>
-#include <string>
-#include <unordered_set>
-
-#include "DeclarationDatabase.h"
-
-using LibrarySymbolDatabase = std::unordered_set<std::string>;
-std::unordered_set<std::string> getSymbols(const std::string& filename);
-
-enum class NdkSymbolType {
-  function,
-  variable,
-};
-
-using NdkSymbolDatabase = std::map<std::string, std::map<CompilationType, NdkSymbolType>>;
-std::optional<NdkSymbolDatabase> parsePlatforms(const std::set<CompilationType>& types,
-                                                const std::string& platform_dir);
diff --git a/tools/versioner/src/SymbolFileParser.cpp b/tools/versioner/src/SymbolFileParser.cpp
deleted file mode 100644
index 1b4adae..0000000
--- a/tools/versioner/src/SymbolFileParser.cpp
+++ /dev/null
@@ -1,308 +0,0 @@
-/*
- * Copyright (C) 2018 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "SymbolFileParser.h"
-
-#include "Arch.h"
-#include "CompilationType.h"
-
-#include <android-base/strings.h>
-
-#include <fstream>
-#include <ios>
-#include <optional>
-#include <string>
-#include <unordered_map>
-#include <vector>
-
-#include <err.h>
-
-namespace {
-
-using TagList = std::vector<std::string>;
-
-struct SymbolEnt {
-  std::string name;
-  TagList tags;
-};
-
-using SymbolList = std::vector<SymbolEnt>;
-
-struct Version {
-  std::string name;
-  std::string base;
-  SymbolList symbols;
-  TagList tags;
-};
-
-class SymbolFileParser {
- public:
-  SymbolFileParser(const std::string& path, const CompilationType& type)
-    : file_path(path),
-      compilation_type(type),
-      api_level_arch_prefix("api-level-" + to_string(type.arch) + "="),
-      intro_arch_perfix("introduced-" + to_string(type.arch) + "="),
-      file(path, std::ios_base::in),
-      curr_line_num(0) {
-  }
-
-  // Parse the version script and build a symbol map.
-  std::optional<SymbolMap> parse() {
-    if (!file) {
-      return std::nullopt;
-    }
-
-    SymbolMap symbol_map;
-    while (hasNextLine()) {
-      auto&& version = parseVersion();
-      if (!version) {
-        return std::nullopt;
-      }
-
-      if (isInArch(version->tags) && isInApi(version->tags)) {
-        for (auto&& [name, tags] : version->symbols) {
-          if (isInArch(tags) && isInApi(tags)) {
-            symbol_map[name] = getSymbolType(tags);
-          }
-        }
-      }
-    }
-    return std::make_optional(std::move(symbol_map));
-  }
-
- private:
-  // Read a non-empty line from the input and split at the first '#' character.
-  bool hasNextLine() {
-    std::string line;
-    while (std::getline(file, line)) {
-      ++curr_line_num;
-
-      size_t hash_pos = line.find('#');
-      curr_line = android::base::Trim(line.substr(0, hash_pos));
-      if (!curr_line.empty()) {
-        if (hash_pos != std::string::npos) {
-          curr_tags = parseTags(line.substr(hash_pos + 1));
-        } else {
-          curr_tags.clear();
-        }
-        return true;
-      }
-    }
-    return false;
-  }
-
-  // Tokenize the tags after the '#' character.
-  static std::vector<std::string> parseTags(const std::string& tags_line) {
-    std::vector<std::string> tags = android::base::Split(tags_line, " \t");
-    tags.erase(std::remove(tags.begin(), tags.end(), ""), tags.end());
-    return tags;
-  }
-
-  // Parse a version scope.
-  std::optional<Version> parseVersion() {
-    size_t start_line_num = curr_line_num;
-
-    std::string::size_type lparen_pos = curr_line.find('{');
-    if (lparen_pos == std::string::npos) {
-      errx(1, "%s:%zu: error: expected '{' cannot be found in this line",
-           file_path.c_str(), curr_line_num);
-    }
-
-    // Record the version name and version tags (before hasNextLine()).
-    std::string name = android::base::Trim(curr_line.substr(0, lparen_pos));
-    TagList tags = std::move(curr_tags);
-
-    // Read symbol lines.
-    SymbolList symbols;
-    bool global_scope = true;
-    bool cpp_scope = false;
-    while (hasNextLine()) {
-      size_t rparen_pos = curr_line.find('}');
-      if (rparen_pos != std::string::npos) {
-        size_t semicolon_pos = curr_line.find(';', rparen_pos + 1);
-        if (semicolon_pos == std::string::npos) {
-          errx(1, "%s:%zu: error: the line that ends a scope must end with ';'",
-               file_path.c_str(), curr_line_num);
-        }
-
-        if (cpp_scope) {
-          cpp_scope = false;
-          continue;
-        }
-
-        std::string base = android::base::Trim(
-          curr_line.substr(rparen_pos + 1, semicolon_pos - 1));
-
-        return std::make_optional(Version{std::move(name), std::move(base),
-                                          std::move(symbols), std::move(tags)});
-      }
-
-      if (android::base::StartsWith(curr_line, R"(extern "C++" {)")) {
-        cpp_scope = true;
-        continue;
-      }
-
-      if (cpp_scope) {
-        continue;
-      }
-
-      size_t colon_pos = curr_line.find(':');
-      if (colon_pos != std::string::npos) {
-        std::string visibility =
-          android::base::Trim(curr_line.substr(0, colon_pos));
-
-        if (visibility == "global") {
-          global_scope = true;
-        } else if (visibility == "local") {
-          global_scope = false;
-        } else {
-          errx(1, "%s:%zu: error: unknown version visibility: %s",
-               file_path.c_str(), curr_line_num, visibility.c_str());
-        }
-        continue;
-      }
-
-      if (global_scope) {
-        size_t semicolon_pos = curr_line.find(';');
-        if (semicolon_pos == std::string::npos) {
-          errx(1, "%s:%zu: error: symbol name line must end with ';'",
-               file_path.c_str(), curr_line_num);
-        }
-
-        std::string symbol_name =
-          android::base::Trim(curr_line.substr(0, semicolon_pos));
-
-        size_t asterisk_pos = symbol_name.find('*');
-        if (asterisk_pos != std::string::npos) {
-          errx(1, "%s:%zu: error: global symbol name must not have wildcards",
-               file_path.c_str(), curr_line_num);
-        }
-
-        symbols.push_back(SymbolEnt{std::move(symbol_name),
-                                    std::move(curr_tags)});
-      }
-    }
-
-    errx(1, "%s:%zu: error: scope started from %zu must be closed before EOF",
-         file_path.c_str(), curr_line_num, start_line_num);
-  }
-
-  static NdkSymbolType getSymbolType(const TagList& tags) {
-    for (auto&& tag : tags) {
-      if (tag == "var") {
-        return NdkSymbolType::variable;
-      }
-    }
-    return NdkSymbolType::function;
-  }
-
-  // isInArch() returns true if there is a matching arch-specific tag or there
-  // are no arch-specific tags.
-  bool isInArch(const TagList& tags) const {
-    bool has_arch_tags = false;
-    for (auto&& tag : tags) {
-      std::optional<Arch> arch = arch_from_string(tag);
-      if (!arch) {
-        continue;
-      }
-      if (*arch == compilation_type.arch) {
-        return true;
-      }
-      has_arch_tags = true;
-    }
-    return !has_arch_tags;
-  }
-
-  // isInApi() returns true if the specified API level is equal to the
-  // api-level tag, or the specified API level is greater than or equal to the
-  // introduced tag, or there are no api-level or introduced tags.
-  bool isInApi(const TagList& tags) const {
-    bool api_level_arch = false;
-    bool intro_arch = false;
-    std::string api_level;
-    std::string intro;
-
-    for (const std::string& tag : tags) {
-      // Check api-level tags.
-      if (android::base::StartsWith(tag, "api-level=") && !api_level_arch) {
-        api_level = tag;
-        continue;
-      }
-      if (android::base::StartsWith(tag, api_level_arch_prefix)) {
-        api_level = tag;
-        api_level_arch = true;
-        continue;
-      }
-
-      // Check introduced tags.
-      if (android::base::StartsWith(tag, "introduced=") && !intro_arch) {
-        intro = tag;
-        continue;
-      }
-      if (android::base::StartsWith(tag, intro_arch_perfix)) {
-        intro = tag;
-        intro_arch = true;
-        continue;
-      }
-    }
-
-    if (intro.empty() && api_level.empty()) {
-      return true;
-    }
-
-    if (!api_level.empty()) {
-      // If an api-level tag is specified, it must be an exact match (mainly
-      // for versioner unit tests).
-      return compilation_type.api_level == parseApiLevelValue(api_level);
-    }
-
-    return compilation_type.api_level >= parseApiLevelValue(intro);
-  }
-
-  // Parse the integer API level from api-level or introduced tags.
-  int parseApiLevelValue(const std::string& tag) const {
-    std::string api_level = tag.substr(tag.find('=') + 1);
-    auto it = api_codename_map.find(api_level);
-    if (it != api_codename_map.end()) {
-      return it->second;
-    }
-    if (api_level.find_first_not_of("0123456789") != std::string::npos) {
-      errx(1, "%s:%zu: error: unknown API level codename specified: \"%s\"",
-           file_path.c_str(), curr_line_num, tag.c_str());
-    }
-    return std::stoi(api_level);
-  }
-
- private:
-  const std::string& file_path;
-  const CompilationType& compilation_type;
-  const std::string api_level_arch_prefix;
-  const std::string intro_arch_perfix;
-
-  std::ifstream file;
-  std::string curr_line;
-  std::vector<std::string> curr_tags;
-  size_t curr_line_num;
-};
-
-}  // anonymous namespace
-
-
-std::optional<SymbolMap> parseSymbolFile(const std::string& file_path,
-                                         const CompilationType& type) {
-  SymbolFileParser parser(file_path, type);
-  return parser.parse();
-}
diff --git a/tools/versioner/src/SymbolFileParser.h b/tools/versioner/src/SymbolFileParser.h
deleted file mode 100644
index 5cdbf2f..0000000
--- a/tools/versioner/src/SymbolFileParser.h
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- * Copyright (C) 2018 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#pragma once
-
-#include <map>
-#include <string>
-#include <optional>
-
-#include "DeclarationDatabase.h"
-#include "SymbolDatabase.h"
-
-using SymbolMap = std::map<std::string, NdkSymbolType>;
-
-std::optional<SymbolMap> parseSymbolFile(const std::string &file,
-                                         const CompilationType& type);
diff --git a/tools/versioner/src/Utils.cpp b/tools/versioner/src/Utils.cpp
deleted file mode 100644
index dc6b5dd..0000000
--- a/tools/versioner/src/Utils.cpp
+++ /dev/null
@@ -1,90 +0,0 @@
-/*
- * Copyright (C) 2016 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "Utils.h"
-
-#include <err.h>
-#include <fts.h>
-#include <string.h>
-#include <unistd.h>
-
-#include <sstream>
-#include <string>
-#include <vector>
-
-#include <android-base/strings.h>
-
-#include "DeclarationDatabase.h"
-
-std::string getWorkingDir() {
-  char buf[PATH_MAX];
-  if (!getcwd(buf, sizeof(buf))) {
-    err(1, "getcwd failed");
-  }
-  return buf;
-}
-
-std::vector<std::string> collectHeaders(const std::string& directory,
-                                        const std::unordered_set<std::string>& ignored_directories) {
-  std::vector<std::string> headers;
-
-  char* dir_argv[2] = { const_cast<char*>(directory.c_str()), nullptr };
-  std::unique_ptr<FTS, decltype(&fts_close)> fts(
-      fts_open(dir_argv, FTS_LOGICAL | FTS_NOCHDIR, nullptr), fts_close);
-
-  if (!fts) {
-    err(1, "failed to open directory '%s'", directory.c_str());
-  }
-
-  FTSENT* skipping = nullptr;
-  while (FTSENT* ent = fts_read(fts.get())) {
-    if (ent->fts_info & FTS_DP) {
-      if (ent == skipping) {
-        skipping = nullptr;
-      }
-      continue;
-    }
-
-    if (skipping != nullptr) {
-      continue;
-    }
-
-    if (ent->fts_info & FTS_D) {
-      if (ignored_directories.count(ent->fts_path) != 0) {
-        // fts_read guarantees that `ent` is valid and okay to hold on to until
-        // after it's returned with FTS_DP set.
-        skipping = ent;
-      }
-      continue;
-    }
-
-    std::string path = ent->fts_path;
-    if (!android::base::EndsWith(path, ".h")) {
-      continue;
-    }
-
-    headers.push_back(std::move(path));
-  }
-
-  return headers;
-}
-
-llvm::StringRef StripPrefix(llvm::StringRef string, llvm::StringRef prefix) {
-  if (string.startswith(prefix)) {
-    return string.drop_front(prefix.size());
-  }
-  return string;
-}
diff --git a/tools/versioner/src/Utils.h b/tools/versioner/src/Utils.h
deleted file mode 100644
index 9b45dcd..0000000
--- a/tools/versioner/src/Utils.h
+++ /dev/null
@@ -1,93 +0,0 @@
-/*
- * Copyright (C) 2016 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#pragma once
-
-#include <errno.h>
-#include <libgen.h>
-#include <sys/stat.h>
-#include <unistd.h>
-
-#include <string>
-#include <unordered_set>
-#include <vector>
-
-#include <llvm/ADT/StringRef.h>
-
-std::string getWorkingDir();
-std::vector<std::string> collectHeaders(const std::string& directory,
-                                        const std::unordered_set<std::string>& ignored_directories);
-
-static inline std::string dirname(const std::string& path) {
-  std::unique_ptr<char, decltype(&free)> path_copy(strdup(path.c_str()), free);
-  return dirname(path_copy.get());
-}
-
-static inline bool is_directory(const std::string& path) {
-  struct stat st;
-  if (stat(path.c_str(), &st) == 0 && S_ISDIR(st.st_mode)) {
-    return true;
-  }
-  return false;
-}
-
-static inline bool mkdirs(const std::string& path) {
-  if (is_directory(path)) {
-    return true;
-  }
-
-  std::string parent = dirname(path);
-  if (parent == path) {
-    return false;
-  }
-
-  if (!mkdirs(parent)) {
-    return false;
-  }
-
-  if (mkdir(path.c_str(), 0700) != 0) {
-    if (errno != EEXIST) {
-      return false;
-    }
-    return is_directory(path);
-  }
-
-  return true;
-}
-
-static inline std::string to_string(const char* c) {
-  return c;
-}
-
-static inline const std::string& to_string(const std::string& str) {
-  return str;
-}
-
-template <typename Collection>
-static inline std::string Join(Collection c, const std::string& delimiter = ", ") {
-  std::string result;
-  for (const auto& item : c) {
-    using namespace std;
-    result.append(to_string(item));
-    result.append(delimiter);
-  }
-  if (!result.empty()) {
-    result.resize(result.length() - delimiter.length());
-  }
-  return result;
-}
-
-llvm::StringRef StripPrefix(llvm::StringRef string, llvm::StringRef prefix);
diff --git a/tools/versioner/src/VFS.cpp b/tools/versioner/src/VFS.cpp
deleted file mode 100644
index d797f82..0000000
--- a/tools/versioner/src/VFS.cpp
+++ /dev/null
@@ -1,92 +0,0 @@
-/*
- * Copyright (C) 2016 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include <err.h>
-#include <fcntl.h>
-#include <fts.h>
-#include <sys/stat.h>
-#include <sys/types.h>
-#include <unistd.h>
-
-#include <memory>
-#include <string>
-
-#include <android-base/unique_fd.h>
-#include <llvm/ADT/IntrusiveRefCntPtr.h>
-#include <llvm/Support/MemoryBuffer.h>
-#include <llvm/Support/VirtualFileSystem.h>
-
-#include "Utils.h"
-
-using android::base::unique_fd;
-using namespace llvm::vfs;
-
-static void addDirectoryToVFS(InMemoryFileSystem* vfs, const std::string& path) {
-  char* paths[] = { const_cast<char*>(path.c_str()), nullptr };
-  std::unique_ptr<FTS, decltype(&fts_close)> fts(
-      fts_open(paths, FTS_COMFOLLOW | FTS_LOGICAL | FTS_NOCHDIR, nullptr), fts_close);
-
-  if (!fts) {
-    err(1, "failed to open directory %s", path.c_str());
-  }
-
-  while (FTSENT* ent = fts_read(fts.get())) {
-    if ((ent->fts_info & FTS_F) == 0) {
-      continue;
-    }
-
-    const char* file_path = ent->fts_accpath;
-    unique_fd fd(open(file_path, O_RDONLY | O_CLOEXEC));
-    if (fd == -1) {
-      err(1, "failed to open header '%s'", file_path);
-    }
-
-    auto buffer_opt = llvm::MemoryBuffer::getOpenFile(fd, file_path, -1, false, false);
-    if (!buffer_opt) {
-      errx(1, "failed to map header '%s'", file_path);
-    }
-
-    if (!vfs->addFile(file_path, ent->fts_statp->st_mtime, std::move(buffer_opt.get()))) {
-      errx(1, "failed to add file '%s'", file_path);
-    }
-  }
-}
-
-llvm::IntrusiveRefCntPtr<FileSystem> createCommonVFS(const std::string& header_dir,
-                                                     const std::string& dependency_dir,
-                                                     bool add_versioning_header) {
-  auto vfs = std::make_unique<InMemoryFileSystem>();
-  addDirectoryToVFS(vfs.get(), header_dir);
-  if (!dependency_dir.empty()) {
-    addDirectoryToVFS(vfs.get(), dependency_dir);
-  }
-
-  if (add_versioning_header) {
-    const char* top = getenv("ANDROID_BUILD_TOP");
-    if (!top) {
-      errx(1, "-i passed, but ANDROID_BUILD_TOP is unset");
-    }
-
-    std::string header_path = std::string(top) + "/bionic/libc/include/android/versioning.h";
-    auto buffer_opt = llvm::MemoryBuffer::getFile(header_path);
-    if (!buffer_opt) {
-      err(1, "failed to open %s", header_path.c_str());
-    }
-    vfs->addFile("android/versioning.h", 0, std::move(buffer_opt.get()));
-  }
-
-  return llvm::IntrusiveRefCntPtr<FileSystem>(vfs.release());
-}
diff --git a/tools/versioner/src/VFS.h b/tools/versioner/src/VFS.h
deleted file mode 100644
index e4aac75..0000000
--- a/tools/versioner/src/VFS.h
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- * Copyright (C) 2016 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#pragma once
-
-#include <memory>
-#include <string>
-
-#include <llvm/ADT/IntrusiveRefCntPtr.h>
-#include <llvm/Support/VirtualFileSystem.h>
-
-llvm::IntrusiveRefCntPtr<llvm::vfs::FileSystem> createCommonVFS(const std::string& header_dir,
-                                                                const std::string& dependency_dir,
-                                                                bool add_versioning_header);
diff --git a/tools/versioner/src/versioner.cpp b/tools/versioner/src/versioner.cpp
deleted file mode 100644
index c818197..0000000
--- a/tools/versioner/src/versioner.cpp
+++ /dev/null
@@ -1,697 +0,0 @@
-/*
- * Copyright (C) 2016 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include <dirent.h>
-#include <err.h>
-#include <limits.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <sys/stat.h>
-#include <sys/types.h>
-#include <unistd.h>
-
-#if defined(__linux__)
-#include <sched.h>
-#endif
-
-#include <atomic>
-#include <chrono>
-#include <functional>
-#include <iostream>
-#include <map>
-#include <memory>
-#include <set>
-#include <sstream>
-#include <string>
-#include <string_view>
-#include <thread>
-#include <unordered_map>
-#include <vector>
-
-#include <llvm/ADT/StringRef.h>
-
-#include <android-base/file.h>
-#include <android-base/macros.h>
-#include <android-base/parseint.h>
-#include <android-base/strings.h>
-
-#include "Arch.h"
-#include "DeclarationDatabase.h"
-#include "Driver.h"
-#include "Preprocessor.h"
-#include "SymbolDatabase.h"
-#include "Utils.h"
-#include "VFS.h"
-
-#include "versioner.h"
-
-using namespace std::chrono_literals;
-using namespace std::string_literals;
-
-bool strict;
-bool verbose;
-bool add_include;
-
-static int getCpuCount();
-static int max_thread_count = getCpuCount();
-
-static int getCpuCount() {
-#if defined(__linux__)
-  cpu_set_t cpu_set;
-  int rc = sched_getaffinity(getpid(), sizeof(cpu_set), &cpu_set);
-  if (rc != 0) {
-    err(1, "sched_getaffinity failed");
-  }
-  return CPU_COUNT(&cpu_set);
-#else
-  return 1;
-#endif
-}
-
-namespace {
-struct HeaderLocationInformation {
-  std::string header_path;
-  std::string dependency_dir;
-  // Absolute paths to ignore all children -- including subdirectories -- of.
-  std::unordered_set<std::string> ignored_directories;
-};
-}
-
-static bool is_dir(const std::string& path) {
-  struct stat st;
-  return stat(path.c_str(), &st) == 0 && S_ISDIR(st.st_mode);
-}
-
-static CompilationRequirements collectRequirements(const Arch& arch,
-                                                   const HeaderLocationInformation& location) {
-  std::vector<std::string> headers =
-      collectHeaders(location.header_path, location.ignored_directories);
-  std::vector<std::string> dependencies;
-
-  if (is_dir(location.header_path)) {
-    dependencies.emplace_back(location.header_path);
-  }
-
-  if (!location.dependency_dir.empty()) {
-    auto collect_children = [&dependencies](const std::string& dir_path) {
-      DIR* dir = opendir(dir_path.c_str());
-      if (!dir) {
-        err(1, "failed to open dependency directory '%s'", dir_path.c_str());
-      }
-
-      struct dirent* dent;
-      while ((dent = readdir(dir))) {
-        if (dent->d_name[0] == '.') {
-          continue;
-        }
-
-        // TODO: Resolve symlinks.
-        std::string dependency = dir_path + "/" + dent->d_name;
-
-        struct stat st;
-        if (stat(dependency.c_str(), &st) != 0) {
-          err(1, "failed to stat dependency '%s'", dependency.c_str());
-        }
-
-        if (!S_ISDIR(st.st_mode)) {
-          errx(1, "'%s' is not a directory", dependency.c_str());
-        }
-
-        dependencies.push_back(dependency);
-      }
-
-      closedir(dir);
-    };
-
-    collect_children(location.dependency_dir + "/common");
-    collect_children(location.dependency_dir + "/" + to_string(arch));
-  }
-
-  auto new_end = std::remove_if(headers.begin(), headers.end(), [&arch](llvm::StringRef header) {
-    for (const auto& it : ignored_headers) {
-      if (it.second.find(arch) == it.second.end()) {
-        continue;
-      }
-
-      if (header.endswith("/" + it.first)) {
-        return true;
-      }
-    }
-    return false;
-  });
-
-  headers.erase(new_end, headers.end());
-
-  CompilationRequirements result = { .headers = headers, .dependencies = dependencies };
-  return result;
-}
-
-static std::set<CompilationType> generateCompilationTypes(const std::set<Arch> selected_architectures,
-                                                          const std::set<int>& selected_levels) {
-  std::set<CompilationType> result;
-  for (const auto& arch : selected_architectures) {
-    int min_api = arch_min_api[arch];
-    for (int api_level : selected_levels) {
-      if (api_level < min_api) {
-        continue;
-      }
-
-      for (int file_offset_bits : { 32, 64 }) {
-        for (bool cpp : { true, false }) {
-          CompilationType type = {
-            .arch = arch, .cpp = cpp, .api_level = api_level, .file_offset_bits = file_offset_bits
-          };
-          result.insert(type);
-        }
-      }
-    }
-  }
-  return result;
-}
-
-static std::unique_ptr<HeaderDatabase> compileHeaders(const std::set<CompilationType>& types,
-                                                      const HeaderLocationInformation& location) {
-  if (types.empty()) {
-    errx(1, "compileHeaders received no CompilationTypes");
-  }
-
-  auto vfs = createCommonVFS(location.header_path, location.dependency_dir, add_include);
-
-  size_t thread_count = max_thread_count;
-  std::vector<std::thread> threads;
-
-  std::map<CompilationType, HeaderDatabase> header_databases;
-  std::unordered_map<Arch, CompilationRequirements> requirements;
-
-  auto result = std::make_unique<HeaderDatabase>();
-  for (const auto& type : types) {
-    if (requirements.count(type.arch) == 0) {
-      requirements[type.arch] = collectRequirements(type.arch, location);
-    }
-  }
-
-  initializeTargetCC1FlagCache(vfs, types, requirements);
-
-  std::vector<std::pair<CompilationType, const std::string&>> jobs;
-  std::atomic<size_t> job_index(0);
-  for (CompilationType type : types) {
-    CompilationRequirements& req = requirements[type.arch];
-    for (const std::string& header : req.headers) {
-      jobs.emplace_back(type, header);
-    }
-  }
-
-  // Dup an empty file to stdin, so that we can use `clang -include a.h -` instead of `clang a.h`,
-  // since some warnings don't get generated in files that are compiled directly.
-  FILE* empty_file = tmpfile();
-  if (!empty_file) {
-    err(1, "failed to create temporary file");
-  }
-
-  int empty_file_fd = fileno(empty_file);
-  if (empty_file_fd == -1) {
-    errx(1, "fileno failed on tmpfile");
-  }
-
-  dup2(empty_file_fd, STDIN_FILENO);
-  fclose(empty_file);
-
-  thread_count = std::min(thread_count, jobs.size());
-
-  if (thread_count == 1) {
-    for (const auto& job : jobs) {
-      compileHeader(vfs, result.get(), job.first, job.second);
-    }
-  } else {
-    // Spawn threads.
-    for (size_t i = 0; i < thread_count; ++i) {
-      threads.emplace_back([&jobs, &job_index, &result, vfs]() {
-        while (true) {
-          size_t idx = job_index++;
-          if (idx >= jobs.size()) {
-            return;
-          }
-
-          const auto& job = jobs[idx];
-          compileHeader(vfs, result.get(), job.first, job.second);
-        }
-      });
-    }
-
-    // Reap them.
-    for (auto& thread : threads) {
-      thread.join();
-    }
-    threads.clear();
-  }
-
-  return result;
-}
-
-static std::set<CompilationType> getCompilationTypes(const Declaration* decl) {
-  std::set<CompilationType> result;
-  for (const auto& it : decl->availability) {
-    result.insert(it.first);
-  }
-  return result;
-}
-
-template<typename T>
-static std::vector<T> Intersection(const std::set<T>& a, const std::set<T>& b) {
-  std::vector<T> intersection;
-  std::set_intersection(a.begin(), a.end(), b.begin(), b.end(), std::back_inserter(intersection));
-  return intersection;
-}
-
-// Perform a validity check on a symbol's declarations, enforcing the following invariants:
-//   1. At most one inline definition of the function exists (overloaded inline functions for
-//      _FORTIFY_SOURCE do not count because they are usually introduced to intercept the original
-//      functions or usually have enable_if attributes).
-//   2. All of the availability declarations for a symbol are compatible.
-//      If a function is declared as an inline before a certain version, the inline definition
-//      should have no version tag.
-//   3. Each availability type must only be present globally or on a per-arch basis.
-//      (e.g. __INTRODUCED_IN_ARM(9) __INTRODUCED_IN_X86(10) __DEPRECATED_IN(11) is fine,
-//      but not __INTRODUCED_IN(9) __INTRODUCED_IN_X86(10))
-static bool checkSymbol(const Symbol& symbol) {
-  std::string cwd = getWorkingDir() + "/";
-
-  std::unordered_map<const Declaration*, std::set<CompilationType>> inline_definitions;
-  for (const auto& decl_it : symbol.declarations) {
-    const Declaration* decl = &decl_it.second;
-    if (decl->is_definition && !decl->fortify_inline) {
-      std::set<CompilationType> compilation_types = getCompilationTypes(decl);
-      for (const auto& inline_def_it : inline_definitions) {
-        auto intersection = Intersection(compilation_types, inline_def_it.second);
-        if (!intersection.empty()) {
-          fprintf(stderr, "versioner: conflicting inline definitions for symbol %s:\n",
-                  symbol.name.c_str());
-          fprintf(stderr, "  declarations visible in: %s\n", Join(intersection, ", ").c_str());
-          decl->dump(cwd, stderr, 4);
-          inline_def_it.first->dump(cwd, stderr, 4);
-          return false;
-        }
-      }
-
-      inline_definitions[decl] = std::move(compilation_types);
-    }
-
-    DeclarationAvailability availability;
-    if (!decl->calculateAvailability(&availability)) {
-      fprintf(stderr, "versioner: failed to calculate availability for declaration:\n");
-      decl->dump(cwd, stderr, 2);
-      return false;
-    }
-
-    if (decl->is_definition && !availability.empty()) {
-      fprintf(stderr, "versioner: inline definition has non-empty versioning information:\n");
-      decl->dump(cwd, stderr, 2);
-      return false;
-    }
-  }
-
-  DeclarationAvailability availability;
-  if (!symbol.calculateAvailability(&availability)) {
-    fprintf(stderr, "versioner: inconsistent availability for symbol '%s'\n", symbol.name.c_str());
-    symbol.dump(cwd);
-    return false;
-  }
-
-  // TODO: Check invariant #3.
-  return true;
-}
-
-static bool validityCheck(const HeaderDatabase* database) {
-  bool error = false;
-  std::string cwd = getWorkingDir() + "/";
-
-  for (const auto& symbol_it : database->symbols) {
-    if (!checkSymbol(symbol_it.second)) {
-      error = true;
-    }
-  }
-  return !error;
-}
-
-// Check that our symbol availability declarations match the actual NDK
-// platform symbol availability.
-static bool checkVersions(const std::set<CompilationType>& types,
-                          const HeaderDatabase* header_database,
-                          const NdkSymbolDatabase& symbol_database) {
-  std::string cwd = getWorkingDir() + "/";
-  bool failed = false;
-
-  std::map<Arch, std::set<CompilationType>> arch_types;
-  for (const CompilationType& type : types) {
-    arch_types[type.arch].insert(type);
-  }
-
-  std::set<std::string> completely_unavailable;
-  std::map<std::string, std::set<CompilationType>> missing_availability;
-  std::map<std::string, std::set<CompilationType>> extra_availability;
-
-  for (const auto& symbol_it : header_database->symbols) {
-    const auto& symbol_name = symbol_it.first;
-    DeclarationAvailability symbol_availability;
-
-    if (!symbol_it.second.calculateAvailability(&symbol_availability)) {
-      errx(1, "failed to calculate symbol availability");
-    }
-
-    const auto platform_availability_it = symbol_database.find(symbol_name);
-    if (platform_availability_it == symbol_database.end()) {
-      completely_unavailable.insert(symbol_name);
-      continue;
-    }
-
-    const auto& platform_availability = platform_availability_it->second;
-
-    for (const CompilationType& type : types) {
-      bool should_be_available = true;
-      const auto& global_availability = symbol_availability.global_availability;
-      const auto& arch_availability = symbol_availability.arch_availability[type.arch];
-      if (global_availability.introduced != 0 && global_availability.introduced > type.api_level) {
-        should_be_available = false;
-      }
-
-      if (arch_availability.introduced != 0 && arch_availability.introduced > type.api_level) {
-        should_be_available = false;
-      }
-
-      if (global_availability.obsoleted != 0 && global_availability.obsoleted <= type.api_level) {
-        should_be_available = false;
-      }
-
-      if (arch_availability.obsoleted != 0 && arch_availability.obsoleted <= type.api_level) {
-        should_be_available = false;
-      }
-
-      // The function declaration might be (validly) missing for the given CompilationType.
-      if (!symbol_it.second.hasDeclaration(type)) {
-        should_be_available = false;
-      }
-
-      bool is_available = platform_availability.count(type);
-
-      if (should_be_available != is_available) {
-        if (is_available) {
-          extra_availability[symbol_name].insert(type);
-        } else {
-          missing_availability[symbol_name].insert(type);
-        }
-      }
-    }
-  }
-
-  for (const auto& it : symbol_database) {
-    const std::string& symbol_name = it.first;
-
-    bool symbol_error = false;
-    if (auto missing_it = missing_availability.find(symbol_name);
-        missing_it != missing_availability.end()) {
-      printf("%s: declaration marked available but symbol missing in [%s]\n", symbol_name.c_str(),
-             Join(missing_it->second, ", ").c_str());
-      symbol_error = true;
-      failed = true;
-    }
-
-    if (strict) {
-      if (auto extra_it = extra_availability.find(symbol_name);
-          extra_it != extra_availability.end()) {
-        printf("%s: declaration marked unavailable but symbol available in [%s]\n",
-               symbol_name.c_str(), Join(extra_it->second, ", ").c_str());
-        symbol_error = true;
-        failed = true;
-      }
-    }
-
-    if (symbol_error) {
-      if (auto symbol_it = header_database->symbols.find(symbol_name);
-          symbol_it != header_database->symbols.end()) {
-        symbol_it->second.dump(cwd);
-      } else {
-        errx(1, "failed to find symbol in header database");
-      }
-    }
-  }
-
-  // TODO: Verify that function/variable declarations are actually function/variable symbols.
-  return !failed;
-}
-
-static void usage(bool help = false) {
-  fprintf(stderr, "Usage: versioner [OPTION]... [HEADER_PATH] [DEPS_PATH]\n");
-  if (!help) {
-    printf("Try 'versioner -h' for more information.\n");
-    exit(1);
-  } else {
-    fprintf(stderr, "Version headers at HEADER_PATH, with DEPS_PATH/ARCH/* on the include path\n");
-    fprintf(stderr, "Autodetects paths if HEADER_PATH and DEPS_PATH are not specified\n");
-    fprintf(stderr, "\n");
-    fprintf(stderr, "Target specification (defaults to all):\n");
-    fprintf(stderr, "  -a API_LEVEL\tbuild with specified API level (can be repeated)\n");
-    fprintf(stderr, "    \t\tdefaults to %s\n", Join(default_levels).c_str());
-    fprintf(stderr, "  -r ARCH\tbuild with specified architecture (can be repeated)\n");
-    fprintf(stderr, "    \t\tvalid architectures are %s\n", Join(supported_archs).c_str());
-    fprintf(stderr, "\n");
-    fprintf(stderr, "Validation:\n");
-    fprintf(stderr, "  -p PATH\tcompare against NDK platform at PATH\n");
-    fprintf(stderr, "  -s\t\tenable strict warnings\n");
-    fprintf(stderr, "\n");
-    fprintf(stderr, "Preprocessing:\n");
-    fprintf(stderr, "  -o PATH\tpreprocess header files and emit them at PATH\n");
-    fprintf(stderr, "  -f\t\tpreprocess header files even if validation fails\n");
-    fprintf(stderr, "\n");
-    fprintf(stderr, "Miscellaneous:\n");
-    fprintf(stderr, "  -F\t\tdo not ignore FORTIFY headers by default\n");
-    fprintf(stderr, "  -d\t\tdump function availability\n");
-    fprintf(stderr, "  -j THREADS\tmaximum number of threads to use\n");
-    fprintf(stderr, "  -v\t\tenable verbose logging\n");
-    fprintf(stderr, "  -h\t\tdisplay this message\n");
-    exit(0);
-  }
-}
-
-// versioner uses a prebuilt version of clang, which is not up-to-date wrt/
-// container annotations. So disable container overflow checking. b/37775238
-extern "C" const char* __asan_default_options() {
-  return "detect_container_overflow=0";
-}
-
-int main(int argc, char** argv) {
-  std::string cwd = getWorkingDir() + "/";
-  std::string platform_dir;
-  std::set<Arch> selected_architectures;
-  std::set<int> selected_levels;
-  std::string preprocessor_output_path;
-  bool force = false;
-  bool dump = false;
-  bool ignore_fortify_headers = true;
-
-  int c;
-  while ((c = getopt(argc, argv, "a:r:p:so:fdj:vhFi")) != -1) {
-    switch (c) {
-      case 'a': {
-        char* end;
-        int api_level = strtol(optarg, &end, 10);
-        if (end == optarg || strlen(end) > 0) {
-          usage();
-        }
-
-        selected_levels.insert(api_level);
-        break;
-      }
-
-      case 'r': {
-        std::optional<Arch> arch = arch_from_string(optarg);
-        if (!arch) {
-          errx(1, "unknown architecture '%s'", optarg);
-        }
-        selected_architectures.insert(*arch);
-        break;
-      }
-
-      case 'p': {
-        if (!platform_dir.empty()) {
-          usage();
-        }
-
-        platform_dir = optarg;
-
-        if (platform_dir.empty()) {
-          usage();
-        }
-
-        struct stat st;
-        if (stat(platform_dir.c_str(), &st) != 0) {
-          err(1, "failed to stat platform directory '%s'", platform_dir.c_str());
-        }
-        if (!S_ISDIR(st.st_mode) && !S_ISREG(st.st_mode)) {
-          errx(1, "'%s' is not a file or directory", optarg);
-        }
-        break;
-      }
-
-      case 's':
-        strict = true;
-        break;
-
-      case 'o':
-        if (!preprocessor_output_path.empty()) {
-          usage();
-        }
-        preprocessor_output_path = optarg;
-        if (preprocessor_output_path.empty()) {
-          usage();
-        }
-        break;
-
-      case 'f':
-        force = true;
-        break;
-
-      case 'd':
-        dump = true;
-        break;
-
-      case 'j':
-        if (!android::base::ParseInt<int>(optarg, &max_thread_count, 1)) {
-          usage();
-        }
-        break;
-
-      case 'v':
-        verbose = true;
-        break;
-
-      case 'h':
-        usage(true);
-        break;
-
-      case 'i':
-        // Secret option for tests to -include <android/versioning.h>.
-        add_include = true;
-        break;
-
-      case 'F':
-        ignore_fortify_headers = false;
-        break;
-
-      default:
-        usage();
-        break;
-    }
-  }
-
-  if (argc - optind > 2 || optind > argc) {
-    usage();
-  }
-
-  HeaderLocationInformation location;
-
-  const char* top = getenv("ANDROID_BUILD_TOP");
-  if (!top && (optind == argc || add_include)) {
-    fprintf(stderr, "versioner: failed to autodetect bionic paths. Is ANDROID_BUILD_TOP set?\n");
-    usage();
-  }
-
-  if (optind == argc) {
-    // Neither HEADER_PATH nor DEPS_PATH were specified, so try to figure them out.
-    std::string versioner_dir = to_string(top) + "/bionic/tools/versioner";
-    location.header_path = versioner_dir + "/current";
-    location.dependency_dir = versioner_dir + "/dependencies";
-    if (platform_dir.empty()) {
-      platform_dir = versioner_dir + "/platforms";
-    }
-  } else {
-    if (!android::base::Realpath(argv[optind], &location.header_path)) {
-      err(1, "failed to get realpath for path '%s'", argv[optind]);
-    }
-
-    if (argc - optind == 2) {
-      location.dependency_dir = argv[optind + 1];
-    }
-  }
-
-  // Every file that lives in bits/fortify is logically a part of a header outside of bits/fortify.
-  // This makes the files there impossible to build on their own.
-  if (ignore_fortify_headers) {
-    std::string fortify_path = location.header_path;
-    if (!android::base::EndsWith(location.header_path, "/")) {
-      fortify_path += '/';
-    }
-    fortify_path += "bits/fortify";
-    location.ignored_directories.insert(std::move(fortify_path));
-  }
-
-  if (selected_levels.empty()) {
-    selected_levels = default_levels;
-  }
-
-  if (selected_architectures.empty()) {
-    selected_architectures = supported_archs;
-  }
-
-
-  struct stat st;
-  if (const char *path = location.header_path.c_str(); stat(path, &st) != 0) {
-    err(1, "failed to stat '%s'", path);
-  }
-
-  std::set<CompilationType> compilation_types;
-  std::optional<NdkSymbolDatabase> symbol_database;
-
-  compilation_types = generateCompilationTypes(selected_architectures, selected_levels);
-
-  // Do this before compiling so that we can early exit if the platforms don't match what we
-  // expect.
-  if (!platform_dir.empty()) {
-    symbol_database = parsePlatforms(compilation_types, platform_dir);
-  }
-
-  auto start = std::chrono::high_resolution_clock::now();
-  std::unique_ptr<HeaderDatabase> declaration_database =
-      compileHeaders(compilation_types, location);
-  auto end = std::chrono::high_resolution_clock::now();
-
-  if (verbose) {
-    auto diff = (end - start) / 1.0ms;
-    printf("Compiled headers for %zu targets in %0.2LFms\n", compilation_types.size(), diff);
-  }
-
-  bool failed = false;
-  if (dump) {
-    declaration_database->dump(location.header_path + "/");
-  } else {
-    if (!validityCheck(declaration_database.get())) {
-      printf("versioner: validity check failed\n");
-      failed = true;
-    }
-
-    if (symbol_database) {
-      if (!checkVersions(compilation_types, declaration_database.get(), *symbol_database)) {
-        printf("versioner: version check failed\n");
-        failed = true;
-      }
-    }
-  }
-
-  if (!preprocessor_output_path.empty() && (force || !failed)) {
-    failed = !preprocessHeaders(preprocessor_output_path, location.header_path,
-                                declaration_database.get());
-  }
-  return failed;
-}
diff --git a/tools/versioner/src/versioner.h b/tools/versioner/src/versioner.h
deleted file mode 100644
index 225e14b..0000000
--- a/tools/versioner/src/versioner.h
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * Copyright (C) 2016 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#pragma once
-
-#include <map>
-#include <set>
-#include <string>
-#include <unordered_map>
-#include <unordered_set>
-
-extern bool strict;
-extern bool verbose;
-extern bool add_include;
-
-#define D(...)             \
-  do {                     \
-    if (verbose) {         \
-      printf(__VA_ARGS__); \
-    }                      \
-  } while (0)
-
-static const std::unordered_map<std::string, std::set<Arch>> ignored_headers = {
-  // Internal header.
-  // TODO: we should probably just admit we're never getting rid of this.
-  { "sys/_system_properties.h", supported_archs },
-
-  // time64.h #errors when included on LP64 archs.
-  { "time64.h", { Arch::arm64, Arch::riscv64, Arch::x86_64 } },
-};
diff --git a/tools/versioner/tests/.gitignore b/tools/versioner/tests/.gitignore
deleted file mode 100644
index 89f9ac0..0000000
--- a/tools/versioner/tests/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-out/
diff --git a/tools/versioner/tests/arch_specific/headers/foo.h b/tools/versioner/tests/arch_specific/headers/foo.h
deleted file mode 100644
index 4830a68..0000000
--- a/tools/versioner/tests/arch_specific/headers/foo.h
+++ /dev/null
@@ -1,13 +0,0 @@
-#if defined(__cplusplus)
-extern "C" {
-#endif
-
-int foo();
-
-#if defined(__i386__)
-int bar();
-#endif
-
-#if defined(__cplusplus)
-}
-#endif
diff --git a/tools/versioner/tests/arch_specific/platforms/libc.map.txt b/tools/versioner/tests/arch_specific/platforms/libc.map.txt
deleted file mode 100644
index 5aa11ed..0000000
--- a/tools/versioner/tests/arch_specific/platforms/libc.map.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-LIBC {
-  global:
-    foo;  # arm x86
-    bar;  # x86
-};
diff --git a/tools/versioner/tests/arch_specific/run.sh b/tools/versioner/tests/arch_specific/run.sh
deleted file mode 100644
index f0d95ae..0000000
--- a/tools/versioner/tests/arch_specific/run.sh
+++ /dev/null
@@ -1 +0,0 @@
-versioner headers -p platforms -r arm -r x86 -a 9 -i
\ No newline at end of file
diff --git a/tools/versioner/tests/compilation_error/expected_fail b/tools/versioner/tests/compilation_error/expected_fail
deleted file mode 100644
index f18b625..0000000
--- a/tools/versioner/tests/compilation_error/expected_fail
+++ /dev/null
@@ -1 +0,0 @@
-versioner: compilation generated warnings or errors
diff --git a/tools/versioner/tests/compilation_error/headers/foo.h b/tools/versioner/tests/compilation_error/headers/foo.h
deleted file mode 100644
index 51c087a..0000000
--- a/tools/versioner/tests/compilation_error/headers/foo.h
+++ /dev/null
@@ -1,9 +0,0 @@
-#if defined(__cplusplus)
-extern "C" {
-#endif
-
-#error foo
-
-#if defined(__cplusplus)
-}
-#endif
diff --git a/tools/versioner/tests/compilation_error/platforms/libc.map.txt b/tools/versioner/tests/compilation_error/platforms/libc.map.txt
deleted file mode 100644
index 6cc4a2e..0000000
--- a/tools/versioner/tests/compilation_error/platforms/libc.map.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-LIBC {
-  global:
-    foo;
-};
diff --git a/tools/versioner/tests/compilation_error/run.sh b/tools/versioner/tests/compilation_error/run.sh
deleted file mode 100644
index 7e8d489..0000000
--- a/tools/versioner/tests/compilation_error/run.sh
+++ /dev/null
@@ -1 +0,0 @@
-versioner headers -p platforms -r arm -a 9 -i -j1
diff --git a/tools/versioner/tests/dependencies/dependencies/arm/archdep/archdep.h b/tools/versioner/tests/dependencies/dependencies/arm/archdep/archdep.h
deleted file mode 100644
index b2d357a..0000000
--- a/tools/versioner/tests/dependencies/dependencies/arm/archdep/archdep.h
+++ /dev/null
@@ -1,9 +0,0 @@
-#if defined(__cplusplus)
-extern "C" {
-#endif
-
-typedef int arm_t;
-
-#if defined(__cplusplus)
-}
-#endif
diff --git a/tools/versioner/tests/dependencies/dependencies/common/foo/foodep.h b/tools/versioner/tests/dependencies/dependencies/common/foo/foodep.h
deleted file mode 100644
index baa5857..0000000
--- a/tools/versioner/tests/dependencies/dependencies/common/foo/foodep.h
+++ /dev/null
@@ -1,9 +0,0 @@
-#if defined(__cplusplus)
-extern "C" {
-#endif
-
-typedef int foo_t;
-
-#if defined(__cplusplus)
-}
-#endif
diff --git a/tools/versioner/tests/dependencies/dependencies/x86/archdep/archdep.h b/tools/versioner/tests/dependencies/dependencies/x86/archdep/archdep.h
deleted file mode 100644
index b73f7cc..0000000
--- a/tools/versioner/tests/dependencies/dependencies/x86/archdep/archdep.h
+++ /dev/null
@@ -1,9 +0,0 @@
-#if defined(__cplusplus)
-extern "C" {
-#endif
-
-typedef int x86_t;
-
-#if defined(__cplusplus)
-}
-#endif
diff --git a/tools/versioner/tests/dependencies/headers/foo.h b/tools/versioner/tests/dependencies/headers/foo.h
deleted file mode 100644
index 875de1b..0000000
--- a/tools/versioner/tests/dependencies/headers/foo.h
+++ /dev/null
@@ -1,16 +0,0 @@
-#if defined(__cplusplus)
-extern "C" {
-#endif
-
-#include <archdep.h>
-#include <foodep.h>
-
-#if defined(__i386__)
-x86_t foo(foo_t);
-#elif defined(__arm__)
-arm_t foo(foo_t);
-#endif
-
-#if defined(__cplusplus)
-}
-#endif
diff --git a/tools/versioner/tests/dependencies/platforms/libc.map.txt b/tools/versioner/tests/dependencies/platforms/libc.map.txt
deleted file mode 100644
index 6cc4a2e..0000000
--- a/tools/versioner/tests/dependencies/platforms/libc.map.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-LIBC {
-  global:
-    foo;
-};
diff --git a/tools/versioner/tests/dependencies/run.sh b/tools/versioner/tests/dependencies/run.sh
deleted file mode 100644
index 0c17907..0000000
--- a/tools/versioner/tests/dependencies/run.sh
+++ /dev/null
@@ -1 +0,0 @@
-versioner headers dependencies -p platforms -r arm -r x86 -a 9
\ No newline at end of file
diff --git a/tools/versioner/tests/extern_cpp/headers/string.h b/tools/versioner/tests/extern_cpp/headers/string.h
deleted file mode 100644
index 5ac43ac..0000000
--- a/tools/versioner/tests/extern_cpp/headers/string.h
+++ /dev/null
@@ -1,18 +0,0 @@
-#if defined(__cplusplus)
-extern "C" {
-#endif
-
-#define __RENAME(x) __asm__(#x)
-
-#if defined(__cplusplus)
-extern "C++" char* basename(char*) __RENAME(__gnu_basename) __INTRODUCED_IN(23);
-extern "C++" const char* basename(const char*) __RENAME(__gnu_basename) __INTRODUCED_IN(23);
-#else
-char* basename(const char*) __RENAME(__gnu_basename) __INTRODUCED_IN(23);
-#endif
-
-char* foo() __INTRODUCED_IN(8);
-
-#if defined(__cplusplus)
-}
-#endif
diff --git a/tools/versioner/tests/extern_cpp/platforms/libc.map.txt b/tools/versioner/tests/extern_cpp/platforms/libc.map.txt
deleted file mode 100644
index 297d1fb..0000000
--- a/tools/versioner/tests/extern_cpp/platforms/libc.map.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-LIBC {
-  global:
-    __gnu_basename;  # introduced=23
-};
diff --git a/tools/versioner/tests/extern_cpp/run.sh b/tools/versioner/tests/extern_cpp/run.sh
deleted file mode 100644
index e320c95..0000000
--- a/tools/versioner/tests/extern_cpp/run.sh
+++ /dev/null
@@ -1 +0,0 @@
-versioner headers -p platforms -r arm -a 21 -a 23 -i
diff --git a/tools/versioner/tests/extern_cpp_mismatch/headers/string.h b/tools/versioner/tests/extern_cpp_mismatch/headers/string.h
deleted file mode 100644
index 66133d8..0000000
--- a/tools/versioner/tests/extern_cpp_mismatch/headers/string.h
+++ /dev/null
@@ -1,16 +0,0 @@
-#if defined(__cplusplus)
-extern "C" {
-#endif
-
-#define __RENAME(x) __asm__(#x)
-
-#if defined(__cplusplus)
-extern "C++" char* basename(char*) __RENAME(__gnu_basename) __INTRODUCED_IN(23);
-extern "C++" const char* basename(const char*) __RENAME(__gnu_basename) __INTRODUCED_IN(23);
-#else
-char* basename(const char*) __RENAME(__gnu_basename) __INTRODUCED_IN(23);
-#endif
-
-#if defined(__cplusplus)
-}
-#endif
diff --git a/tools/versioner/tests/extern_cpp_mismatch/platforms/libc.map.txt b/tools/versioner/tests/extern_cpp_mismatch/platforms/libc.map.txt
deleted file mode 100644
index 6cc4a2e..0000000
--- a/tools/versioner/tests/extern_cpp_mismatch/platforms/libc.map.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-LIBC {
-  global:
-    foo;
-};
diff --git a/tools/versioner/tests/extern_cpp_mismatch/run.sh b/tools/versioner/tests/extern_cpp_mismatch/run.sh
deleted file mode 100644
index a34fda8..0000000
--- a/tools/versioner/tests/extern_cpp_mismatch/run.sh
+++ /dev/null
@@ -1 +0,0 @@
-versioner headers -p platforms -r arm -a 9 -i
\ No newline at end of file
diff --git a/tools/versioner/tests/fortify_inline/headers/fcntl.h b/tools/versioner/tests/fortify_inline/headers/fcntl.h
deleted file mode 100644
index dc81ef8..0000000
--- a/tools/versioner/tests/fortify_inline/headers/fcntl.h
+++ /dev/null
@@ -1,29 +0,0 @@
-#if defined(__cplusplus)
-extern "C" {
-#endif
-
-extern int open_real(const char* name, int flags, ...) __asm__("open");
-
-#define O_CREAT 00000100
-
-typedef unsigned int mode_t;
-
-static inline __attribute__((always_inline))
-int open(const char* name, int flags)
-    __attribute__((annotate("versioner_fortify_inline")))
-    __attribute__((overloadable))
-    __attribute__((enable_if(!(flags & O_CREAT), ""))) {
-  return open_real(name, flags);
-}
-
-static inline __attribute__((always_inline))
-int open(const char* name, int flags, mode_t mode)
-    __attribute__((annotate("versioner_fortify_inline")))
-    __attribute__((overloadable))
-    __attribute__((enable_if(flags & O_CREAT, ""))) {
-  return open_real(name, flags, mode);
-}
-
-#if defined(__cplusplus)
-}
-#endif
diff --git a/tools/versioner/tests/fortify_inline/platforms/libc.map.txt b/tools/versioner/tests/fortify_inline/platforms/libc.map.txt
deleted file mode 100644
index 2f09034..0000000
--- a/tools/versioner/tests/fortify_inline/platforms/libc.map.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-LIBC {
-  global:
-    open;
-};
diff --git a/tools/versioner/tests/fortify_inline/run.sh b/tools/versioner/tests/fortify_inline/run.sh
deleted file mode 100644
index 9bfbe6d..0000000
--- a/tools/versioner/tests/fortify_inline/run.sh
+++ /dev/null
@@ -1 +0,0 @@
-versioner headers -p platforms -r arm -a 9 -a 12 -i
\ No newline at end of file
diff --git a/tools/versioner/tests/inline/headers/foo.h b/tools/versioner/tests/inline/headers/foo.h
deleted file mode 100644
index a337f9c..0000000
--- a/tools/versioner/tests/inline/headers/foo.h
+++ /dev/null
@@ -1,15 +0,0 @@
-#if defined(__cplusplus)
-extern "C" {
-#endif
-
-#if __ANDROID_API__ < 12
-static int foo() {
-  return 0;
-}
-#else
-int foo() __INTRODUCED_IN(12);
-#endif
-
-#if defined(__cplusplus)
-}
-#endif
diff --git a/tools/versioner/tests/inline/platforms/libc.map.txt b/tools/versioner/tests/inline/platforms/libc.map.txt
deleted file mode 100644
index 4dced92..0000000
--- a/tools/versioner/tests/inline/platforms/libc.map.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-LIBC {
-  global:
-    foo;  # introduced=12
-};
diff --git a/tools/versioner/tests/inline/run.sh b/tools/versioner/tests/inline/run.sh
deleted file mode 100644
index 9bfbe6d..0000000
--- a/tools/versioner/tests/inline/run.sh
+++ /dev/null
@@ -1 +0,0 @@
-versioner headers -p platforms -r arm -a 9 -a 12 -i
\ No newline at end of file
diff --git a/tools/versioner/tests/missing_api/expected_fail b/tools/versioner/tests/missing_api/expected_fail
deleted file mode 100644
index 9f097f7..0000000
--- a/tools/versioner/tests/missing_api/expected_fail
+++ /dev/null
@@ -1,4 +0,0 @@
-  foo: introduced = 9
-    extern declaration @ headers/foo.h:5:1
-      introduced = 9
-versioner: version check failed
diff --git a/tools/versioner/tests/missing_api/headers/foo.h b/tools/versioner/tests/missing_api/headers/foo.h
deleted file mode 100644
index c201dbb..0000000
--- a/tools/versioner/tests/missing_api/headers/foo.h
+++ /dev/null
@@ -1,9 +0,0 @@
-#if defined(__cplusplus)
-extern "C" {
-#endif
-
-int foo() __INTRODUCED_IN(9);
-
-#if defined(__cplusplus)
-}
-#endif
diff --git a/tools/versioner/tests/missing_api/platforms/libc.map.txt b/tools/versioner/tests/missing_api/platforms/libc.map.txt
deleted file mode 100644
index 3701a9d..0000000
--- a/tools/versioner/tests/missing_api/platforms/libc.map.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-LIBC {
-  global:
-    foo;  # api-level=9
-};
diff --git a/tools/versioner/tests/missing_api/run.sh b/tools/versioner/tests/missing_api/run.sh
deleted file mode 100644
index 9bfbe6d..0000000
--- a/tools/versioner/tests/missing_api/run.sh
+++ /dev/null
@@ -1 +0,0 @@
-versioner headers -p platforms -r arm -a 9 -a 12 -i
\ No newline at end of file
diff --git a/tools/versioner/tests/missing_arch/expected_fail b/tools/versioner/tests/missing_arch/expected_fail
deleted file mode 100644
index 7b33e19..0000000
--- a/tools/versioner/tests/missing_arch/expected_fail
+++ /dev/null
@@ -1,4 +0,0 @@
-  foo: no availability
-    extern declaration @ headers/foo.h:5:1
-      no availability
-versioner: version check failed
diff --git a/tools/versioner/tests/missing_arch/headers/foo.h b/tools/versioner/tests/missing_arch/headers/foo.h
deleted file mode 100644
index 5ba4794..0000000
--- a/tools/versioner/tests/missing_arch/headers/foo.h
+++ /dev/null
@@ -1,9 +0,0 @@
-#if defined(__cplusplus)
-extern "C" {
-#endif
-
-int foo();
-
-#if defined(__cplusplus)
-}
-#endif
diff --git a/tools/versioner/tests/missing_arch/platforms/libc.map.txt b/tools/versioner/tests/missing_arch/platforms/libc.map.txt
deleted file mode 100644
index f56190e..0000000
--- a/tools/versioner/tests/missing_arch/platforms/libc.map.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-LIBC {
-  global:
-    foo;  # arm
-};
diff --git a/tools/versioner/tests/missing_arch/run.sh b/tools/versioner/tests/missing_arch/run.sh
deleted file mode 100644
index f0d95ae..0000000
--- a/tools/versioner/tests/missing_arch/run.sh
+++ /dev/null
@@ -1 +0,0 @@
-versioner headers -p platforms -r arm -r x86 -a 9 -i
\ No newline at end of file
diff --git a/tools/versioner/tests/multiple_decl/headers/bar.h b/tools/versioner/tests/multiple_decl/headers/bar.h
deleted file mode 100644
index b16617b..0000000
--- a/tools/versioner/tests/multiple_decl/headers/bar.h
+++ /dev/null
@@ -1,9 +0,0 @@
-#if defined(__cplusplus)
-extern "C" {
-#endif
-
-int foo() __REMOVED_IN(12);
-
-#if defined(__cplusplus)
-}
-#endif
diff --git a/tools/versioner/tests/multiple_decl/headers/foo.h b/tools/versioner/tests/multiple_decl/headers/foo.h
deleted file mode 100644
index b16617b..0000000
--- a/tools/versioner/tests/multiple_decl/headers/foo.h
+++ /dev/null
@@ -1,9 +0,0 @@
-#if defined(__cplusplus)
-extern "C" {
-#endif
-
-int foo() __REMOVED_IN(12);
-
-#if defined(__cplusplus)
-}
-#endif
diff --git a/tools/versioner/tests/multiple_decl/platforms/libc.map.txt b/tools/versioner/tests/multiple_decl/platforms/libc.map.txt
deleted file mode 100644
index 6cc4a2e..0000000
--- a/tools/versioner/tests/multiple_decl/platforms/libc.map.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-LIBC {
-  global:
-    foo;
-};
diff --git a/tools/versioner/tests/multiple_decl/run.sh b/tools/versioner/tests/multiple_decl/run.sh
deleted file mode 100644
index a34fda8..0000000
--- a/tools/versioner/tests/multiple_decl/run.sh
+++ /dev/null
@@ -1 +0,0 @@
-versioner headers -p platforms -r arm -a 9 -i
\ No newline at end of file
diff --git a/tools/versioner/tests/multiple_decl_mismatch/expected_fail b/tools/versioner/tests/multiple_decl_mismatch/expected_fail
deleted file mode 100644
index 30e7233..0000000
--- a/tools/versioner/tests/multiple_decl_mismatch/expected_fail
+++ /dev/null
@@ -1,8 +0,0 @@
-versioner: inconsistent availability for symbol 'foo'
-versioner: failed to calculate symbol availability
-  foo: invalid
-    extern declaration @ headers/bar.h:5:1
-      obsoleted = 12
-    extern declaration @ headers/foo.h:5:1
-      obsoleted = 9
-versioner: validity check failed
diff --git a/tools/versioner/tests/multiple_decl_mismatch/headers/bar.h b/tools/versioner/tests/multiple_decl_mismatch/headers/bar.h
deleted file mode 100644
index b16617b..0000000
--- a/tools/versioner/tests/multiple_decl_mismatch/headers/bar.h
+++ /dev/null
@@ -1,9 +0,0 @@
-#if defined(__cplusplus)
-extern "C" {
-#endif
-
-int foo() __REMOVED_IN(12);
-
-#if defined(__cplusplus)
-}
-#endif
diff --git a/tools/versioner/tests/multiple_decl_mismatch/headers/foo.h b/tools/versioner/tests/multiple_decl_mismatch/headers/foo.h
deleted file mode 100644
index 8e8f98c..0000000
--- a/tools/versioner/tests/multiple_decl_mismatch/headers/foo.h
+++ /dev/null
@@ -1,9 +0,0 @@
-#if defined(__cplusplus)
-extern "C" {
-#endif
-
-int foo() __REMOVED_IN(9);
-
-#if defined(__cplusplus)
-}
-#endif
diff --git a/tools/versioner/tests/multiple_decl_mismatch/platforms/libc.map.txt b/tools/versioner/tests/multiple_decl_mismatch/platforms/libc.map.txt
deleted file mode 100644
index 6cc4a2e..0000000
--- a/tools/versioner/tests/multiple_decl_mismatch/platforms/libc.map.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-LIBC {
-  global:
-    foo;
-};
diff --git a/tools/versioner/tests/multiple_decl_mismatch/run.sh b/tools/versioner/tests/multiple_decl_mismatch/run.sh
deleted file mode 100644
index a34fda8..0000000
--- a/tools/versioner/tests/multiple_decl_mismatch/run.sh
+++ /dev/null
@@ -1 +0,0 @@
-versioner headers -p platforms -r arm -a 9 -i
\ No newline at end of file
diff --git a/tools/versioner/tests/multiple_definition/expected_fail b/tools/versioner/tests/multiple_definition/expected_fail
deleted file mode 100644
index 5abb833..0000000
--- a/tools/versioner/tests/multiple_definition/expected_fail
+++ /dev/null
@@ -1,7 +0,0 @@
-versioner: conflicting inline definitions for symbol foo:
-  declarations visible in: arm-9 [c, fob = 32], arm-9 [c, fob = 64], arm-12 [c, fob = 32], arm-12 [c, fob = 64], arm-9 [c++, fob = 32], arm-9 [c++, fob = 64], arm-12 [c++, fob = 32], arm-12 [c++, fob = 64]
-    static definition @ headers/foo.h:5:1
-      no availability
-    static definition @ headers/bar.h:5:1
-      no availability
-versioner: validity check failed
diff --git a/tools/versioner/tests/multiple_definition/headers/bar.h b/tools/versioner/tests/multiple_definition/headers/bar.h
deleted file mode 100644
index 29592c6..0000000
--- a/tools/versioner/tests/multiple_definition/headers/bar.h
+++ /dev/null
@@ -1,11 +0,0 @@
-#if defined(__cplusplus)
-extern "C" {
-#endif
-
-static int foo() {
-  return 0;
-}
-
-#if defined(__cplusplus)
-}
-#endif
diff --git a/tools/versioner/tests/multiple_definition/headers/foo.h b/tools/versioner/tests/multiple_definition/headers/foo.h
deleted file mode 100644
index 29592c6..0000000
--- a/tools/versioner/tests/multiple_definition/headers/foo.h
+++ /dev/null
@@ -1,11 +0,0 @@
-#if defined(__cplusplus)
-extern "C" {
-#endif
-
-static int foo() {
-  return 0;
-}
-
-#if defined(__cplusplus)
-}
-#endif
diff --git a/tools/versioner/tests/multiple_definition/platforms/libc.map.txt b/tools/versioner/tests/multiple_definition/platforms/libc.map.txt
deleted file mode 100644
index 6cc4a2e..0000000
--- a/tools/versioner/tests/multiple_definition/platforms/libc.map.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-LIBC {
-  global:
-    foo;
-};
diff --git a/tools/versioner/tests/multiple_definition/run.sh b/tools/versioner/tests/multiple_definition/run.sh
deleted file mode 100644
index e4abbe7..0000000
--- a/tools/versioner/tests/multiple_definition/run.sh
+++ /dev/null
@@ -1 +0,0 @@
-versioner headers -p platforms -r arm -a 9 -a 12 -i
diff --git a/tools/versioner/tests/multiple_definition_ok/headers/bar.h b/tools/versioner/tests/multiple_definition_ok/headers/bar.h
deleted file mode 100644
index 6eced51..0000000
--- a/tools/versioner/tests/multiple_definition_ok/headers/bar.h
+++ /dev/null
@@ -1,13 +0,0 @@
-#if defined(__cplusplus)
-extern "C" {
-#endif
-
-#if __ANDROID_API__ == 12
-static int foo() {
-  return 0;
-}
-#endif
-
-#if defined(__cplusplus)
-}
-#endif
diff --git a/tools/versioner/tests/multiple_definition_ok/headers/foo.h b/tools/versioner/tests/multiple_definition_ok/headers/foo.h
deleted file mode 100644
index 773d274..0000000
--- a/tools/versioner/tests/multiple_definition_ok/headers/foo.h
+++ /dev/null
@@ -1,13 +0,0 @@
-#if defined(__cplusplus)
-extern "C" {
-#endif
-
-#if __ANDROID_API__ == 9
-static int foo() {
-  return 0;
-}
-#endif
-
-#if defined(__cplusplus)
-}
-#endif
diff --git a/tools/versioner/tests/multiple_definition_ok/platforms/libc.map.txt b/tools/versioner/tests/multiple_definition_ok/platforms/libc.map.txt
deleted file mode 100644
index 6cc4a2e..0000000
--- a/tools/versioner/tests/multiple_definition_ok/platforms/libc.map.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-LIBC {
-  global:
-    foo;
-};
diff --git a/tools/versioner/tests/multiple_definition_ok/run.sh b/tools/versioner/tests/multiple_definition_ok/run.sh
deleted file mode 100644
index e4abbe7..0000000
--- a/tools/versioner/tests/multiple_definition_ok/run.sh
+++ /dev/null
@@ -1 +0,0 @@
-versioner headers -p platforms -r arm -a 9 -a 12 -i
diff --git a/tools/versioner/tests/obsoleted/headers/foo.h b/tools/versioner/tests/obsoleted/headers/foo.h
deleted file mode 100644
index e9630e5..0000000
--- a/tools/versioner/tests/obsoleted/headers/foo.h
+++ /dev/null
@@ -1,9 +0,0 @@
-#if defined(__cplusplus)
-extern "C" {
-#endif
-
-int foo() __INTRODUCED_IN(9) __REMOVED_IN(11);
-
-#if defined(__cplusplus)
-}
-#endif
diff --git a/tools/versioner/tests/obsoleted/platforms/libc.map.txt b/tools/versioner/tests/obsoleted/platforms/libc.map.txt
deleted file mode 100644
index 3701a9d..0000000
--- a/tools/versioner/tests/obsoleted/platforms/libc.map.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-LIBC {
-  global:
-    foo;  # api-level=9
-};
diff --git a/tools/versioner/tests/obsoleted/run.sh b/tools/versioner/tests/obsoleted/run.sh
deleted file mode 100644
index 9bfbe6d..0000000
--- a/tools/versioner/tests/obsoleted/run.sh
+++ /dev/null
@@ -1 +0,0 @@
-versioner headers -p platforms -r arm -a 9 -a 12 -i
\ No newline at end of file
diff --git a/tools/versioner/tests/preprocessor/expected/foo.h b/tools/versioner/tests/preprocessor/expected/foo.h
deleted file mode 100644
index 769c37e..0000000
--- a/tools/versioner/tests/preprocessor/expected/foo.h
+++ /dev/null
@@ -1,76 +0,0 @@
-#if defined(__cplusplus)
-extern "C" {
-#endif
-
-int always_available();
-
-int also_always_available() __INTRODUCED_IN(9);
-
-
-#if __ANDROID_API__ >= 13
-int needs_guard() __INTRODUCED_IN(13);
-#endif /* __ANDROID_API__ >= 13 */
-
-
-#if __ANDROID_API__ >= 12
-
-#if __ANDROID_API__ >= 13
-int needs_guard_2() __INTRODUCED_IN(13);
-#endif /* __ANDROID_API__ >= 13 */
-
-#endif
-
-#if __ANDROID_API__ >= 13
-int already_guarded() __INTRODUCED_IN(13);
-#endif
-
-#if __ANDROID_API__ > 13
-int already_guarded_2() __INTRODUCED_IN(13);
-#endif
-
-#if defined(__arm__)
-
-#if __ANDROID_API__ >= 14
-int specific_arch() __INTRODUCED_IN(14);
-#endif /* __ANDROID_API__ >= 14 */
-
-
-#if __ANDROID_API__ >= 14
-int specific_arch_already_guarded() __INTRODUCED_IN(14);
-#endif
-
-#if __ANDROID_API__ > 14
-int specific_arch_already_guarded_2() __INTRODUCED_IN(14);
-#endif
-#endif
-
-#if defined(__arm__) || defined(__i386__)
-
-#if __ANDROID_API__ >= 14
-int multiple_archs() __INTRODUCED_IN(14);
-#endif /* __ANDROID_API__ >= 14 */
-
-#endif
-
-// __INTRODUCED_IN_64(21) should be ignored.
-
-#if (!defined(__LP64__) && __ANDROID_API__ >= 13) || (defined(__LP64__))
-int multiple_introduced_1() __INTRODUCED_IN_ARM(13) __INTRODUCED_IN_X86(13) __INTRODUCED_IN_64(21);
-#endif /* (!defined(__LP64__) && __ANDROID_API__ >= 13) || (defined(__LP64__)) */
-
-
-
-#if (!defined(__LP64__) && __ANDROID_API__ >= 13) || (defined(__LP64__) && __ANDROID_API__ >= 22)
-int multiple_introduced_2() __INTRODUCED_IN_ARM(13) __INTRODUCED_IN_X86(13) __INTRODUCED_IN_64(22);
-#endif /* (!defined(__LP64__) && __ANDROID_API__ >= 13) || (defined(__LP64__) && __ANDROID_API__ >= 22) */
-
-
-
-#if (!defined(__LP64__) && __ANDROID_API__ >= 12) || (defined(__LP64__))
-int group_lp32() __INTRODUCED_IN_ARM(12) __INTRODUCED_IN_X86(12);
-#endif /* (!defined(__LP64__) && __ANDROID_API__ >= 12) || (defined(__LP64__)) */
-
-
-#if defined(__cplusplus)
-}
-#endif
diff --git a/tools/versioner/tests/preprocessor/headers/foo.h b/tools/versioner/tests/preprocessor/headers/foo.h
deleted file mode 100644
index 782b44a..0000000
--- a/tools/versioner/tests/preprocessor/headers/foo.h
+++ /dev/null
@@ -1,48 +0,0 @@
-#if defined(__cplusplus)
-extern "C" {
-#endif
-
-int always_available();
-
-int also_always_available() __INTRODUCED_IN(9);
-
-int needs_guard() __INTRODUCED_IN(13);
-
-#if __ANDROID_API__ >= 12
-int needs_guard_2() __INTRODUCED_IN(13);
-#endif
-
-#if __ANDROID_API__ >= 13
-int already_guarded() __INTRODUCED_IN(13);
-#endif
-
-#if __ANDROID_API__ > 13
-int already_guarded_2() __INTRODUCED_IN(13);
-#endif
-
-#if defined(__arm__)
-int specific_arch() __INTRODUCED_IN(14);
-
-#if __ANDROID_API__ >= 14
-int specific_arch_already_guarded() __INTRODUCED_IN(14);
-#endif
-
-#if __ANDROID_API__ > 14
-int specific_arch_already_guarded_2() __INTRODUCED_IN(14);
-#endif
-#endif
-
-#if defined(__arm__) || defined(__i386__)
-int multiple_archs() __INTRODUCED_IN(14);
-#endif
-
-// __INTRODUCED_IN_64(21) should be ignored.
-int multiple_introduced_1() __INTRODUCED_IN_ARM(13) __INTRODUCED_IN_X86(13) __INTRODUCED_IN_64(21);
-
-int multiple_introduced_2() __INTRODUCED_IN_ARM(13) __INTRODUCED_IN_X86(13) __INTRODUCED_IN_64(22);
-
-int group_lp32() __INTRODUCED_IN_ARM(12) __INTRODUCED_IN_X86(12);
-
-#if defined(__cplusplus)
-}
-#endif
diff --git a/tools/versioner/tests/preprocessor/run.sh b/tools/versioner/tests/preprocessor/run.sh
deleted file mode 100644
index 50d9b5c..0000000
--- a/tools/versioner/tests/preprocessor/run.sh
+++ /dev/null
@@ -1,29 +0,0 @@
-set -e
-
-function run_test {
-  SRC=$1
-  DST=$2
-  rm -rf $2
-  versioner -a 9 -a 12 -a 13 -a 14 -a 15 $1 -i -o $2
-  diff -q -w -B $2 expected
-}
-
-run_test headers out
-run_test headers/ out
-run_test headers out/
-run_test headers/ out/
-
-run_test `pwd`/headers out
-run_test `pwd`/headers/ out
-run_test `pwd`/headers out/
-run_test `pwd`/headers/ out/
-
-run_test headers `pwd`/out
-run_test headers/ `pwd`/out
-run_test headers `pwd`/out/
-run_test headers/ `pwd`/out/
-
-run_test `pwd`/headers `pwd`/out
-run_test `pwd`/headers/ `pwd`/out
-run_test `pwd`/headers `pwd`/out/
-run_test `pwd`/headers/ `pwd`/out/
diff --git a/tools/versioner/tests/preprocessor_extern_cpp/expected/foo.h b/tools/versioner/tests/preprocessor_extern_cpp/expected/foo.h
deleted file mode 100644
index 9b2d122..0000000
--- a/tools/versioner/tests/preprocessor_extern_cpp/expected/foo.h
+++ /dev/null
@@ -1,27 +0,0 @@
-#define __RENAME(x) asm(#x)
-
-#if defined(__cplusplus)
-
-#if __ANDROID_API__ >= 24
-extern "C++" const char* strchrnul(const char*, int) __RENAME(strchrnul) __INTRODUCED_IN(24);
-#endif /* __ANDROID_API__ >= 24 */
-
-#endif
-
-#if defined(__cplusplus)
-extern "C" int foo();
-#endif
-
-#if defined(__cplusplus)
-extern "C" {
-#endif
-
-
-#if __ANDROID_API__ >= 24
-char* strchrnul(char*, int) __INTRODUCED_IN(24);
-#endif /* __ANDROID_API__ >= 24 */
-
-
-#if defined(__cplusplus)
-}
-#endif
diff --git a/tools/versioner/tests/preprocessor_extern_cpp/headers/foo.h b/tools/versioner/tests/preprocessor_extern_cpp/headers/foo.h
deleted file mode 100644
index de26d21..0000000
--- a/tools/versioner/tests/preprocessor_extern_cpp/headers/foo.h
+++ /dev/null
@@ -1,19 +0,0 @@
-#define __RENAME(x) asm(#x)
-
-#if defined(__cplusplus)
-extern "C++" const char* strchrnul(const char*, int) __RENAME(strchrnul) __INTRODUCED_IN(24);
-#endif
-
-#if defined(__cplusplus)
-extern "C" int foo();
-#endif
-
-#if defined(__cplusplus)
-extern "C" {
-#endif
-
-char* strchrnul(char*, int) __INTRODUCED_IN(24);
-
-#if defined(__cplusplus)
-}
-#endif
diff --git a/tools/versioner/tests/preprocessor_extern_cpp/run.sh b/tools/versioner/tests/preprocessor_extern_cpp/run.sh
deleted file mode 100644
index 50d9b5c..0000000
--- a/tools/versioner/tests/preprocessor_extern_cpp/run.sh
+++ /dev/null
@@ -1,29 +0,0 @@
-set -e
-
-function run_test {
-  SRC=$1
-  DST=$2
-  rm -rf $2
-  versioner -a 9 -a 12 -a 13 -a 14 -a 15 $1 -i -o $2
-  diff -q -w -B $2 expected
-}
-
-run_test headers out
-run_test headers/ out
-run_test headers out/
-run_test headers/ out/
-
-run_test `pwd`/headers out
-run_test `pwd`/headers/ out
-run_test `pwd`/headers out/
-run_test `pwd`/headers/ out/
-
-run_test headers `pwd`/out
-run_test headers/ `pwd`/out
-run_test headers `pwd`/out/
-run_test headers/ `pwd`/out/
-
-run_test `pwd`/headers `pwd`/out
-run_test `pwd`/headers/ `pwd`/out
-run_test `pwd`/headers `pwd`/out/
-run_test `pwd`/headers/ `pwd`/out/
diff --git a/tools/versioner/tests/preprocessor_file_offset_bits/expected/foo.h b/tools/versioner/tests/preprocessor_file_offset_bits/expected/foo.h
deleted file mode 100644
index dcfaaee..0000000
--- a/tools/versioner/tests/preprocessor_file_offset_bits/expected/foo.h
+++ /dev/null
@@ -1,42 +0,0 @@
-#if defined(__cplusplus)
-extern "C" {
-#endif
-
-typedef int off_t;
-typedef int ssize_t;
-typedef unsigned size_t;
-
-#if !defined(__LP64__) && defined(_FILE_OFFSET_BITS)
-#if _FILE_OFFSET_BITS == 64
-#define __USE_FILE_OFFSET64 1
-#endif
-#endif
-
-#define __RENAME(x) __asm__(#x)
-
-#if defined(__USE_FILE_OFFSET64) && __ANDROID_API__ >= 21
-int truncate(const char* __path, off_t __length) __RENAME(truncate64) __INTRODUCED_IN(21);
-#else
-int truncate(const char* __path, off_t __length);
-#endif
-
-#if defined(__USE_FILE_OFFSET64)
-
-#if __ANDROID_API__ >= 12
-ssize_t pread(int __fd, void* __buf, size_t __count, off_t __offset) __RENAME(pread64)
-    __INTRODUCED_IN(12);
-#endif /* __ANDROID_API__ >= 12 */
-
-#else
-ssize_t pread(int __fd, void* __buf, size_t __count, off_t __offset);
-#endif
-
-#if defined(__USE_FILE_OFFSET64)
-off_t lseek(int __fd, off_t __offset, int __whence) __RENAME(lseek64);
-#else
-off_t lseek(int __fd, off_t __offset, int __whence);
-#endif
-
-#if defined(__cplusplus)
-}
-#endif
diff --git a/tools/versioner/tests/preprocessor_file_offset_bits/headers/foo.h b/tools/versioner/tests/preprocessor_file_offset_bits/headers/foo.h
deleted file mode 100644
index 5ffffa8..0000000
--- a/tools/versioner/tests/preprocessor_file_offset_bits/headers/foo.h
+++ /dev/null
@@ -1,38 +0,0 @@
-#if defined(__cplusplus)
-extern "C" {
-#endif
-
-typedef int off_t;
-typedef int ssize_t;
-typedef unsigned size_t;
-
-#if !defined(__LP64__) && defined(_FILE_OFFSET_BITS)
-#if _FILE_OFFSET_BITS == 64
-#define __USE_FILE_OFFSET64 1
-#endif
-#endif
-
-#define __RENAME(x) __asm__(#x)
-
-#if defined(__USE_FILE_OFFSET64) && __ANDROID_API__ >= 21
-int truncate(const char* __path, off_t __length) __RENAME(truncate64) __INTRODUCED_IN(21);
-#else
-int truncate(const char* __path, off_t __length);
-#endif
-
-#if defined(__USE_FILE_OFFSET64)
-ssize_t pread(int __fd, void* __buf, size_t __count, off_t __offset) __RENAME(pread64)
-    __INTRODUCED_IN(12);
-#else
-ssize_t pread(int __fd, void* __buf, size_t __count, off_t __offset);
-#endif
-
-#if defined(__USE_FILE_OFFSET64)
-off_t lseek(int __fd, off_t __offset, int __whence) __RENAME(lseek64);
-#else
-off_t lseek(int __fd, off_t __offset, int __whence);
-#endif
-
-#if defined(__cplusplus)
-}
-#endif
diff --git a/tools/versioner/tests/preprocessor_file_offset_bits/run.sh b/tools/versioner/tests/preprocessor_file_offset_bits/run.sh
deleted file mode 100644
index d974cba..0000000
--- a/tools/versioner/tests/preprocessor_file_offset_bits/run.sh
+++ /dev/null
@@ -1,5 +0,0 @@
-set -e
-
-rm -rf out
-versioner headers -a 9 -a 12 -a 13 -i -o out
-diff -q -w -B out expected
diff --git a/tools/versioner/tests/preprocessor_idempotence/expected/foo.h b/tools/versioner/tests/preprocessor_idempotence/expected/foo.h
deleted file mode 100644
index bc442e5..0000000
--- a/tools/versioner/tests/preprocessor_idempotence/expected/foo.h
+++ /dev/null
@@ -1,20 +0,0 @@
-#if defined(__cplusplus)
-extern "C" {
-#endif
-
-#if __ANDROID_API__ >= 10
-int foo() __INTRODUCED_IN(10);
-#endif
-
-#if __ANDROID_API__ >= 21
-int bar(int) __INTRODUCED_IN(21);
-#endif
-
-#if __ANDROID_API__ >= 10
-int multiple_1() __INTRODUCED_IN(10);
-int multiple_2() __INTRODUCED_IN(10);
-#endif
-
-#if defined(__cplusplus)
-}
-#endif
diff --git a/tools/versioner/tests/preprocessor_idempotence/headers/foo.h b/tools/versioner/tests/preprocessor_idempotence/headers/foo.h
deleted file mode 100644
index bc442e5..0000000
--- a/tools/versioner/tests/preprocessor_idempotence/headers/foo.h
+++ /dev/null
@@ -1,20 +0,0 @@
-#if defined(__cplusplus)
-extern "C" {
-#endif
-
-#if __ANDROID_API__ >= 10
-int foo() __INTRODUCED_IN(10);
-#endif
-
-#if __ANDROID_API__ >= 21
-int bar(int) __INTRODUCED_IN(21);
-#endif
-
-#if __ANDROID_API__ >= 10
-int multiple_1() __INTRODUCED_IN(10);
-int multiple_2() __INTRODUCED_IN(10);
-#endif
-
-#if defined(__cplusplus)
-}
-#endif
diff --git a/tools/versioner/tests/preprocessor_idempotence/run.sh b/tools/versioner/tests/preprocessor_idempotence/run.sh
deleted file mode 100644
index 1b0aae2..0000000
--- a/tools/versioner/tests/preprocessor_idempotence/run.sh
+++ /dev/null
@@ -1,4 +0,0 @@
-rm -rf out
-set -e
-versioner headers -i -o out
-diff -q -w -B out expected
diff --git a/tools/versioner/tests/preprocessor_merging/expected/foo.h b/tools/versioner/tests/preprocessor_merging/expected/foo.h
deleted file mode 100644
index ecd7f71..0000000
--- a/tools/versioner/tests/preprocessor_merging/expected/foo.h
+++ /dev/null
@@ -1,17 +0,0 @@
-#if defined(__cplusplus)
-extern "C" {
-#endif
-
-
-#if __ANDROID_API__ >= 10
-int block_merging_1() __INTRODUCED_IN(10); // foo
-int block_merging_2() __INTRODUCED_IN(10); /* bar */
-int block_merging_3() __INTRODUCED_IN(10); /* baz
-//*/
-int block_merging_4() __INTRODUCED_IN(10);
-#endif /* __ANDROID_API__ >= 10 */
-
-
-#if defined(__cplusplus)
-}
-#endif
diff --git a/tools/versioner/tests/preprocessor_merging/headers/foo.h b/tools/versioner/tests/preprocessor_merging/headers/foo.h
deleted file mode 100644
index 7aaa471..0000000
--- a/tools/versioner/tests/preprocessor_merging/headers/foo.h
+++ /dev/null
@@ -1,13 +0,0 @@
-#if defined(__cplusplus)
-extern "C" {
-#endif
-
-int block_merging_1() __INTRODUCED_IN(10); // foo
-int block_merging_2() __INTRODUCED_IN(10); /* bar */
-int block_merging_3() __INTRODUCED_IN(10); /* baz
-//*/
-int block_merging_4() __INTRODUCED_IN(10);
-
-#if defined(__cplusplus)
-}
-#endif
diff --git a/tools/versioner/tests/preprocessor_merging/run.sh b/tools/versioner/tests/preprocessor_merging/run.sh
deleted file mode 100644
index 1929757..0000000
--- a/tools/versioner/tests/preprocessor_merging/run.sh
+++ /dev/null
@@ -1,4 +0,0 @@
-rm -rf out
-set -e
-versioner headers -a 9 -a 10 -a 11 -i -o out
-diff -q -w -B out expected
diff --git a/tools/versioner/tests/preprocessor_no_guard/expected/foo.h b/tools/versioner/tests/preprocessor_no_guard/expected/foo.h
deleted file mode 100644
index 3ef0c30..0000000
--- a/tools/versioner/tests/preprocessor_no_guard/expected/foo.h
+++ /dev/null
@@ -1,9 +0,0 @@
-#if defined(__cplusplus)
-extern "C" {
-#endif
-
-int foo() __VERSIONER_NO_GUARD __INTRODUCED_IN(14);
-
-#if defined(__cplusplus)
-}
-#endif
diff --git a/tools/versioner/tests/preprocessor_no_guard/headers/foo.h b/tools/versioner/tests/preprocessor_no_guard/headers/foo.h
deleted file mode 100644
index 3ef0c30..0000000
--- a/tools/versioner/tests/preprocessor_no_guard/headers/foo.h
+++ /dev/null
@@ -1,9 +0,0 @@
-#if defined(__cplusplus)
-extern "C" {
-#endif
-
-int foo() __VERSIONER_NO_GUARD __INTRODUCED_IN(14);
-
-#if defined(__cplusplus)
-}
-#endif
diff --git a/tools/versioner/tests/preprocessor_no_guard/run.sh b/tools/versioner/tests/preprocessor_no_guard/run.sh
deleted file mode 100644
index 1b0aae2..0000000
--- a/tools/versioner/tests/preprocessor_no_guard/run.sh
+++ /dev/null
@@ -1,4 +0,0 @@
-rm -rf out
-set -e
-versioner headers -i -o out
-diff -q -w -B out expected
diff --git a/tools/versioner/tests/slow_preprocessor_idempotence/run.sh b/tools/versioner/tests/slow_preprocessor_idempotence/run.sh
deleted file mode 100644
index 6426156..0000000
--- a/tools/versioner/tests/slow_preprocessor_idempotence/run.sh
+++ /dev/null
@@ -1,6 +0,0 @@
-rm -rf out
-set -e
-mkdir out
-versioner -o out/initial
-versioner out/initial ../../dependencies -o out/second
-diff -qrwB out/initial out/second
diff --git a/tools/versioner/tests/smoke/headers/foo.h b/tools/versioner/tests/smoke/headers/foo.h
deleted file mode 100644
index c201dbb..0000000
--- a/tools/versioner/tests/smoke/headers/foo.h
+++ /dev/null
@@ -1,9 +0,0 @@
-#if defined(__cplusplus)
-extern "C" {
-#endif
-
-int foo() __INTRODUCED_IN(9);
-
-#if defined(__cplusplus)
-}
-#endif
diff --git a/tools/versioner/tests/smoke/platforms/libc.map.txt b/tools/versioner/tests/smoke/platforms/libc.map.txt
deleted file mode 100644
index 6cc4a2e..0000000
--- a/tools/versioner/tests/smoke/platforms/libc.map.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-LIBC {
-  global:
-    foo;
-};
diff --git a/tools/versioner/tests/smoke/run.sh b/tools/versioner/tests/smoke/run.sh
deleted file mode 100644
index a34fda8..0000000
--- a/tools/versioner/tests/smoke/run.sh
+++ /dev/null
@@ -1 +0,0 @@
-versioner headers -p platforms -r arm -a 9 -i
\ No newline at end of file
diff --git a/tools/versioner/tests/unnamed_bitfield/headers/foo.h b/tools/versioner/tests/unnamed_bitfield/headers/foo.h
deleted file mode 100644
index 58686c3..0000000
--- a/tools/versioner/tests/unnamed_bitfield/headers/foo.h
+++ /dev/null
@@ -1,8 +0,0 @@
-// <sys/timex.h> was causing a segfault when compiled in C++ mode because
-// versioner was trying to mangle the name of an unnamed bitfield.
-struct foo {
-  int : 32;
-  int : 32;
-  int : 32;
-  int : 32;
-};
diff --git a/tools/versioner/tests/unnamed_bitfield/platforms/libc.map.txt b/tools/versioner/tests/unnamed_bitfield/platforms/libc.map.txt
deleted file mode 100644
index 6cc4a2e..0000000
--- a/tools/versioner/tests/unnamed_bitfield/platforms/libc.map.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-LIBC {
-  global:
-    foo;
-};
diff --git a/tools/versioner/tests/unnamed_bitfield/run.sh b/tools/versioner/tests/unnamed_bitfield/run.sh
deleted file mode 100644
index a34fda8..0000000
--- a/tools/versioner/tests/unnamed_bitfield/run.sh
+++ /dev/null
@@ -1 +0,0 @@
-versioner headers -p platforms -r arm -a 9 -i
\ No newline at end of file
diff --git a/tools/versioner/tests/version_mismatch/expected_fail b/tools/versioner/tests/version_mismatch/expected_fail
deleted file mode 100644
index 95d284b..0000000
--- a/tools/versioner/tests/version_mismatch/expected_fail
+++ /dev/null
@@ -1,8 +0,0 @@
-versioner: inconsistent availability for symbol 'foo'
-versioner: failed to calculate symbol availability
-  foo: invalid
-    extern declaration @ headers/foo.h:6:1
-      introduced = 9
-    extern declaration @ headers/foo.h:8:1
-      introduced = 10
-versioner: validity check failed
diff --git a/tools/versioner/tests/version_mismatch/headers/foo.h b/tools/versioner/tests/version_mismatch/headers/foo.h
deleted file mode 100644
index ea35f36..0000000
--- a/tools/versioner/tests/version_mismatch/headers/foo.h
+++ /dev/null
@@ -1,13 +0,0 @@
-#if defined(__cplusplus)
-extern "C" {
-#endif
-
-#if __ANDROID_API__ <= 9
-int foo() __INTRODUCED_IN(9);
-#else
-int foo() __INTRODUCED_IN(10);
-#endif
-
-#if defined(__cplusplus)
-}
-#endif
diff --git a/tools/versioner/tests/version_mismatch/platforms/libc.map.txt b/tools/versioner/tests/version_mismatch/platforms/libc.map.txt
deleted file mode 100644
index 6cc4a2e..0000000
--- a/tools/versioner/tests/version_mismatch/platforms/libc.map.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-LIBC {
-  global:
-    foo;
-};
diff --git a/tools/versioner/tests/version_mismatch/run.sh b/tools/versioner/tests/version_mismatch/run.sh
deleted file mode 100644
index 9bfbe6d..0000000
--- a/tools/versioner/tests/version_mismatch/run.sh
+++ /dev/null
@@ -1 +0,0 @@
-versioner headers -p platforms -r arm -a 9 -a 12 -i
\ No newline at end of file